luxen-ui 0.3.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (385) hide show
  1. package/cdn/chunks/decorate.js +1 -1
  2. package/cdn/chunks/decorate.js.map +1 -1
  3. package/cdn/chunks/map.js +2 -0
  4. package/cdn/chunks/map.js.map +1 -0
  5. package/cdn/custom-elements.json +6707 -4242
  6. package/cdn/elements/avatar/avatar.d.ts +1 -1
  7. package/cdn/elements/avatar/avatar.d.ts.map +1 -1
  8. package/cdn/elements/avatar/avatar.js +3 -3
  9. package/cdn/elements/avatar/avatar.js.map +1 -1
  10. package/cdn/elements/avatar/index.d.ts +2 -2
  11. package/cdn/elements/avatar/index.d.ts.map +1 -1
  12. package/cdn/elements/avatar/index.js +1 -1
  13. package/cdn/elements/avatar/index.js.map +1 -1
  14. package/cdn/elements/badge/badge.d.ts +1 -1
  15. package/cdn/elements/badge/badge.d.ts.map +1 -1
  16. package/cdn/elements/badge/badge.js +1 -1
  17. package/cdn/elements/badge/badge.js.map +1 -1
  18. package/cdn/elements/badge/index.d.ts +2 -2
  19. package/cdn/elements/badge/index.d.ts.map +1 -1
  20. package/cdn/elements/badge/index.js +1 -1
  21. package/cdn/elements/badge/index.js.map +1 -1
  22. package/cdn/elements/carousel/carousel.d.ts +18 -11
  23. package/cdn/elements/carousel/carousel.d.ts.map +1 -1
  24. package/cdn/elements/carousel/carousel.js +21 -20
  25. package/cdn/elements/carousel/carousel.js.map +1 -1
  26. package/cdn/elements/carousel/index.d.ts +2 -2
  27. package/cdn/elements/carousel/index.d.ts.map +1 -1
  28. package/cdn/elements/carousel/index.js +1 -1
  29. package/cdn/elements/carousel/index.js.map +1 -1
  30. package/cdn/elements/carousel-item/carousel-item.d.ts +1 -1
  31. package/cdn/elements/carousel-item/carousel-item.d.ts.map +1 -1
  32. package/cdn/elements/carousel-item/carousel-item.js +1 -1
  33. package/cdn/elements/carousel-item/carousel-item.js.map +1 -1
  34. package/cdn/elements/carousel-item/index.d.ts +2 -2
  35. package/cdn/elements/carousel-item/index.d.ts.map +1 -1
  36. package/cdn/elements/carousel-item/index.js +1 -1
  37. package/cdn/elements/carousel-item/index.js.map +1 -1
  38. package/cdn/elements/dialog/dialog.d.ts +1 -1
  39. package/cdn/elements/dialog/dialog.d.ts.map +1 -1
  40. package/cdn/elements/dialog/dialog.js +2 -2
  41. package/cdn/elements/dialog/dialog.js.map +1 -1
  42. package/cdn/elements/dialog/dialog.styles.js.map +1 -1
  43. package/cdn/elements/dialog/index.d.ts +2 -2
  44. package/cdn/elements/dialog/index.d.ts.map +1 -1
  45. package/cdn/elements/dialog/index.js +1 -1
  46. package/cdn/elements/dialog/index.js.map +1 -1
  47. package/cdn/elements/divider/divider.d.ts +1 -1
  48. package/cdn/elements/divider/divider.d.ts.map +1 -1
  49. package/cdn/elements/divider/divider.js +1 -1
  50. package/cdn/elements/divider/divider.js.map +1 -1
  51. package/cdn/elements/divider/index.d.ts +2 -2
  52. package/cdn/elements/divider/index.d.ts.map +1 -1
  53. package/cdn/elements/divider/index.js +1 -1
  54. package/cdn/elements/divider/index.js.map +1 -1
  55. package/cdn/elements/drawer/drawer.d.ts +2 -2
  56. package/cdn/elements/drawer/drawer.d.ts.map +1 -1
  57. package/cdn/elements/drawer/drawer.js +1 -1
  58. package/cdn/elements/drawer/drawer.js.map +1 -1
  59. package/cdn/elements/drawer/index.d.ts +2 -2
  60. package/cdn/elements/drawer/index.d.ts.map +1 -1
  61. package/cdn/elements/drawer/index.js +1 -1
  62. package/cdn/elements/drawer/index.js.map +1 -1
  63. package/cdn/elements/dropdown/dropdown.d.ts +7 -4
  64. package/cdn/elements/dropdown/dropdown.d.ts.map +1 -1
  65. package/cdn/elements/dropdown/dropdown.js +7 -4
  66. package/cdn/elements/dropdown/dropdown.js.map +1 -1
  67. package/cdn/elements/dropdown/index.d.ts +2 -2
  68. package/cdn/elements/dropdown/index.d.ts.map +1 -1
  69. package/cdn/elements/dropdown/index.js +1 -1
  70. package/cdn/elements/dropdown/index.js.map +1 -1
  71. package/cdn/elements/dropdown-item/dropdown-item.d.ts +1 -1
  72. package/cdn/elements/dropdown-item/dropdown-item.d.ts.map +1 -1
  73. package/cdn/elements/dropdown-item/dropdown-item.js +2 -2
  74. package/cdn/elements/dropdown-item/dropdown-item.js.map +1 -1
  75. package/cdn/elements/dropdown-item/index.d.ts +2 -2
  76. package/cdn/elements/dropdown-item/index.d.ts.map +1 -1
  77. package/cdn/elements/dropdown-item/index.js +1 -1
  78. package/cdn/elements/dropdown-item/index.js.map +1 -1
  79. package/cdn/elements/icon/icon.d.ts +1 -1
  80. package/cdn/elements/icon/icon.d.ts.map +1 -1
  81. package/cdn/elements/icon/icon.js +2 -2
  82. package/cdn/elements/icon/icon.js.map +1 -1
  83. package/cdn/elements/icon/index.d.ts +2 -2
  84. package/cdn/elements/icon/index.d.ts.map +1 -1
  85. package/cdn/elements/icon/index.js +1 -1
  86. package/cdn/elements/icon/index.js.map +1 -1
  87. package/cdn/elements/input-otp/index.d.ts +2 -2
  88. package/cdn/elements/input-otp/index.d.ts.map +1 -1
  89. package/cdn/elements/input-otp/index.js +1 -1
  90. package/cdn/elements/input-otp/index.js.map +1 -1
  91. package/cdn/elements/input-otp/input-otp.d.ts +1 -1
  92. package/cdn/elements/input-otp/input-otp.d.ts.map +1 -1
  93. package/cdn/elements/input-otp/input-otp.js +1 -1
  94. package/cdn/elements/input-otp/input-otp.js.map +1 -1
  95. package/cdn/elements/input-stepper/index.d.ts +2 -2
  96. package/cdn/elements/input-stepper/index.d.ts.map +1 -1
  97. package/cdn/elements/input-stepper/index.js +1 -1
  98. package/cdn/elements/input-stepper/index.js.map +1 -1
  99. package/cdn/elements/input-stepper/input-stepper.d.ts +1 -1
  100. package/cdn/elements/input-stepper/input-stepper.d.ts.map +1 -1
  101. package/cdn/elements/input-stepper/input-stepper.js +1 -1
  102. package/cdn/elements/input-stepper/input-stepper.js.map +1 -1
  103. package/cdn/elements/popover/index.d.ts +2 -2
  104. package/cdn/elements/popover/index.d.ts.map +1 -1
  105. package/cdn/elements/popover/index.js +1 -1
  106. package/cdn/elements/popover/index.js.map +1 -1
  107. package/cdn/elements/popover/popover.d.ts +1 -1
  108. package/cdn/elements/popover/popover.d.ts.map +1 -1
  109. package/cdn/elements/popover/popover.js +2 -2
  110. package/cdn/elements/popover/popover.js.map +1 -1
  111. package/cdn/elements/rating/index.d.ts +2 -2
  112. package/cdn/elements/rating/index.d.ts.map +1 -1
  113. package/cdn/elements/rating/index.js +1 -1
  114. package/cdn/elements/rating/index.js.map +1 -1
  115. package/cdn/elements/rating/rating.d.ts +1 -1
  116. package/cdn/elements/rating/rating.d.ts.map +1 -1
  117. package/cdn/elements/rating/rating.js +2 -2
  118. package/cdn/elements/rating/rating.js.map +1 -1
  119. package/cdn/elements/skeleton/index.d.ts +2 -2
  120. package/cdn/elements/skeleton/index.d.ts.map +1 -1
  121. package/cdn/elements/skeleton/index.js +1 -1
  122. package/cdn/elements/skeleton/index.js.map +1 -1
  123. package/cdn/elements/skeleton/skeleton.d.ts +1 -1
  124. package/cdn/elements/skeleton/skeleton.d.ts.map +1 -1
  125. package/cdn/elements/skeleton/skeleton.js +1 -1
  126. package/cdn/elements/skeleton/skeleton.js.map +1 -1
  127. package/cdn/elements/spinner/index.d.ts +2 -2
  128. package/cdn/elements/spinner/index.d.ts.map +1 -1
  129. package/cdn/elements/spinner/index.js +1 -1
  130. package/cdn/elements/spinner/index.js.map +1 -1
  131. package/cdn/elements/spinner/spinner.d.ts +1 -1
  132. package/cdn/elements/spinner/spinner.d.ts.map +1 -1
  133. package/cdn/elements/spinner/spinner.js +1 -1
  134. package/cdn/elements/spinner/spinner.js.map +1 -1
  135. package/cdn/elements/sticky-bar/index.d.ts +8 -0
  136. package/cdn/elements/sticky-bar/index.d.ts.map +1 -0
  137. package/cdn/elements/sticky-bar/index.js +2 -0
  138. package/cdn/elements/sticky-bar/index.js.map +1 -0
  139. package/cdn/elements/sticky-bar/sticky-bar.d.ts +46 -0
  140. package/cdn/elements/sticky-bar/sticky-bar.d.ts.map +1 -0
  141. package/cdn/elements/sticky-bar/sticky-bar.js +2 -0
  142. package/cdn/elements/sticky-bar/sticky-bar.js.map +1 -0
  143. package/cdn/elements/stories/index.d.ts +8 -0
  144. package/cdn/elements/stories/index.d.ts.map +1 -0
  145. package/cdn/elements/stories/index.js +2 -0
  146. package/cdn/elements/stories/index.js.map +1 -0
  147. package/cdn/elements/stories/stories.d.ts +50 -0
  148. package/cdn/elements/stories/stories.d.ts.map +1 -0
  149. package/cdn/elements/stories/stories.js +2 -0
  150. package/cdn/elements/stories/stories.js.map +1 -0
  151. package/cdn/elements/stories-viewer/index.d.ts +8 -0
  152. package/cdn/elements/stories-viewer/index.d.ts.map +1 -0
  153. package/cdn/elements/stories-viewer/index.js +2 -0
  154. package/cdn/elements/stories-viewer/index.js.map +1 -0
  155. package/cdn/elements/stories-viewer/stories-viewer.d.ts +136 -0
  156. package/cdn/elements/stories-viewer/stories-viewer.d.ts.map +1 -0
  157. package/cdn/elements/stories-viewer/stories-viewer.js +160 -0
  158. package/cdn/elements/stories-viewer/stories-viewer.js.map +1 -0
  159. package/cdn/elements/story/index.d.ts +8 -0
  160. package/cdn/elements/story/index.d.ts.map +1 -0
  161. package/cdn/elements/story/index.js +2 -0
  162. package/cdn/elements/story/index.js.map +1 -0
  163. package/cdn/elements/story/story.d.ts +48 -0
  164. package/cdn/elements/story/story.d.ts.map +1 -0
  165. package/cdn/elements/story/story.js +35 -0
  166. package/cdn/elements/story/story.js.map +1 -0
  167. package/cdn/elements/tabs/index.d.ts +2 -2
  168. package/cdn/elements/tabs/index.d.ts.map +1 -1
  169. package/cdn/elements/tabs/index.js +1 -1
  170. package/cdn/elements/tabs/index.js.map +1 -1
  171. package/cdn/elements/tabs/tabs.d.ts +1 -1
  172. package/cdn/elements/tabs/tabs.d.ts.map +1 -1
  173. package/cdn/elements/tabs/tabs.js +1 -1
  174. package/cdn/elements/tabs/tabs.js.map +1 -1
  175. package/cdn/elements/toast/index.d.ts +3 -3
  176. package/cdn/elements/toast/index.d.ts.map +1 -1
  177. package/cdn/elements/toast/index.js +1 -1
  178. package/cdn/elements/toast/index.js.map +1 -1
  179. package/cdn/elements/toast/toast.d.ts +2 -2
  180. package/cdn/elements/toast/toast.d.ts.map +1 -1
  181. package/cdn/elements/toast/toast.js +1 -1
  182. package/cdn/elements/toast/toast.js.map +1 -1
  183. package/cdn/elements/tooltip/index.d.ts +2 -2
  184. package/cdn/elements/tooltip/index.d.ts.map +1 -1
  185. package/cdn/elements/tooltip/index.js +1 -1
  186. package/cdn/elements/tooltip/index.js.map +1 -1
  187. package/cdn/elements/tooltip/tooltip.d.ts +4 -4
  188. package/cdn/elements/tooltip/tooltip.d.ts.map +1 -1
  189. package/cdn/elements/tooltip/tooltip.js +2 -2
  190. package/cdn/elements/tooltip/tooltip.js.map +1 -1
  191. package/cdn/elements/tree/index.d.ts +2 -2
  192. package/cdn/elements/tree/index.d.ts.map +1 -1
  193. package/cdn/elements/tree/index.js +1 -1
  194. package/cdn/elements/tree/index.js.map +1 -1
  195. package/cdn/elements/tree/tree.d.ts +5 -5
  196. package/cdn/elements/tree/tree.d.ts.map +1 -1
  197. package/cdn/elements/tree/tree.js +2 -2
  198. package/cdn/elements/tree/tree.js.map +1 -1
  199. package/cdn/elements/tree-item/index.d.ts +2 -2
  200. package/cdn/elements/tree-item/index.d.ts.map +1 -1
  201. package/cdn/elements/tree-item/index.js +1 -1
  202. package/cdn/elements/tree-item/index.js.map +1 -1
  203. package/cdn/elements/tree-item/tree-item.d.ts +2 -2
  204. package/cdn/elements/tree-item/tree-item.d.ts.map +1 -1
  205. package/cdn/elements/tree-item/tree-item.js +2 -2
  206. package/cdn/elements/tree-item/tree-item.js.map +1 -1
  207. package/cdn/registry.d.ts +1 -1
  208. package/cdn/registry.d.ts.map +1 -1
  209. package/cdn/registry.js.map +1 -1
  210. package/cdn/shared/controllers/popover.js.map +1 -1
  211. package/cdn/shared/luxen-form-associated-element.js +1 -1
  212. package/cdn/shared/styles/host.styles.js.map +1 -1
  213. package/cdn/styles/elements/divider.css +7 -0
  214. package/cdn/styles/elements/select.css +3 -3
  215. package/cdn/styles/elements/stories.css +63 -0
  216. package/cdn/styles/elements/story.css +192 -0
  217. package/cdn/styles/index.css +3 -0
  218. package/dist/css/elements/divider.css +7 -0
  219. package/dist/css/elements/select.css +3 -3
  220. package/dist/css/elements/stories.css +63 -0
  221. package/dist/css/elements/story.css +192 -0
  222. package/dist/css/index.css +3 -0
  223. package/dist/custom-elements.json +6707 -4242
  224. package/dist/elements/avatar/avatar.css +13 -7
  225. package/dist/elements/avatar/avatar.d.ts +1 -1
  226. package/dist/elements/avatar/avatar.d.ts.map +1 -1
  227. package/dist/elements/avatar/avatar.js +11 -11
  228. package/dist/elements/avatar/index.d.ts +2 -2
  229. package/dist/elements/avatar/index.d.ts.map +1 -1
  230. package/dist/elements/avatar/index.js +2 -2
  231. package/dist/elements/badge/badge.d.ts +1 -1
  232. package/dist/elements/badge/badge.d.ts.map +1 -1
  233. package/dist/elements/badge/badge.js +5 -5
  234. package/dist/elements/badge/index.d.ts +2 -2
  235. package/dist/elements/badge/index.d.ts.map +1 -1
  236. package/dist/elements/badge/index.js +2 -2
  237. package/dist/elements/carousel/carousel.css +7 -0
  238. package/dist/elements/carousel/carousel.d.ts +18 -11
  239. package/dist/elements/carousel/carousel.d.ts.map +1 -1
  240. package/dist/elements/carousel/carousel.js +193 -167
  241. package/dist/elements/carousel/index.d.ts +2 -2
  242. package/dist/elements/carousel/index.d.ts.map +1 -1
  243. package/dist/elements/carousel/index.js +2 -2
  244. package/dist/elements/carousel-item/carousel-item.d.ts +1 -1
  245. package/dist/elements/carousel-item/carousel-item.d.ts.map +1 -1
  246. package/dist/elements/carousel-item/carousel-item.js +2 -2
  247. package/dist/elements/carousel-item/index.d.ts +2 -2
  248. package/dist/elements/carousel-item/index.d.ts.map +1 -1
  249. package/dist/elements/carousel-item/index.js +2 -2
  250. package/dist/elements/dialog/dialog.d.ts +1 -1
  251. package/dist/elements/dialog/dialog.d.ts.map +1 -1
  252. package/dist/elements/dialog/dialog.js +9 -9
  253. package/dist/elements/dialog/index.d.ts +2 -2
  254. package/dist/elements/dialog/index.d.ts.map +1 -1
  255. package/dist/elements/dialog/index.js +2 -2
  256. package/dist/elements/divider/divider.d.ts +1 -1
  257. package/dist/elements/divider/divider.d.ts.map +1 -1
  258. package/dist/elements/divider/divider.js +3 -3
  259. package/dist/elements/divider/index.d.ts +2 -2
  260. package/dist/elements/divider/index.d.ts.map +1 -1
  261. package/dist/elements/divider/index.js +2 -2
  262. package/dist/elements/drawer/drawer.d.ts +2 -2
  263. package/dist/elements/drawer/drawer.d.ts.map +1 -1
  264. package/dist/elements/drawer/drawer.js +4 -4
  265. package/dist/elements/drawer/index.d.ts +2 -2
  266. package/dist/elements/drawer/index.d.ts.map +1 -1
  267. package/dist/elements/drawer/index.js +2 -2
  268. package/dist/elements/dropdown/dropdown.css +14 -3
  269. package/dist/elements/dropdown/dropdown.d.ts +7 -4
  270. package/dist/elements/dropdown/dropdown.d.ts.map +1 -1
  271. package/dist/elements/dropdown/dropdown.js +41 -29
  272. package/dist/elements/dropdown/index.d.ts +2 -2
  273. package/dist/elements/dropdown/index.d.ts.map +1 -1
  274. package/dist/elements/dropdown/index.js +2 -2
  275. package/dist/elements/dropdown-item/dropdown-item.d.ts +1 -1
  276. package/dist/elements/dropdown-item/dropdown-item.d.ts.map +1 -1
  277. package/dist/elements/dropdown-item/dropdown-item.js +20 -20
  278. package/dist/elements/dropdown-item/index.d.ts +2 -2
  279. package/dist/elements/dropdown-item/index.d.ts.map +1 -1
  280. package/dist/elements/dropdown-item/index.js +2 -2
  281. package/dist/elements/icon/icon.d.ts +1 -1
  282. package/dist/elements/icon/icon.d.ts.map +1 -1
  283. package/dist/elements/icon/icon.js +4 -4
  284. package/dist/elements/icon/index.d.ts +2 -2
  285. package/dist/elements/icon/index.d.ts.map +1 -1
  286. package/dist/elements/icon/index.js +2 -2
  287. package/dist/elements/input-otp/index.d.ts +2 -2
  288. package/dist/elements/input-otp/index.d.ts.map +1 -1
  289. package/dist/elements/input-otp/index.js +2 -2
  290. package/dist/elements/input-otp/input-otp.d.ts +1 -1
  291. package/dist/elements/input-otp/input-otp.d.ts.map +1 -1
  292. package/dist/elements/input-otp/input-otp.js +2 -2
  293. package/dist/elements/input-stepper/index.d.ts +2 -2
  294. package/dist/elements/input-stepper/index.d.ts.map +1 -1
  295. package/dist/elements/input-stepper/index.js +2 -2
  296. package/dist/elements/input-stepper/input-stepper.d.ts +1 -1
  297. package/dist/elements/input-stepper/input-stepper.d.ts.map +1 -1
  298. package/dist/elements/input-stepper/input-stepper.js +8 -8
  299. package/dist/elements/popover/index.d.ts +2 -2
  300. package/dist/elements/popover/index.d.ts.map +1 -1
  301. package/dist/elements/popover/index.js +2 -2
  302. package/dist/elements/popover/popover.d.ts +1 -1
  303. package/dist/elements/popover/popover.d.ts.map +1 -1
  304. package/dist/elements/popover/popover.js +33 -33
  305. package/dist/elements/rating/index.d.ts +2 -2
  306. package/dist/elements/rating/index.d.ts.map +1 -1
  307. package/dist/elements/rating/index.js +2 -2
  308. package/dist/elements/rating/rating.d.ts +1 -1
  309. package/dist/elements/rating/rating.d.ts.map +1 -1
  310. package/dist/elements/rating/rating.js +48 -48
  311. package/dist/elements/skeleton/index.d.ts +2 -2
  312. package/dist/elements/skeleton/index.d.ts.map +1 -1
  313. package/dist/elements/skeleton/index.js +2 -2
  314. package/dist/elements/skeleton/skeleton.d.ts +1 -1
  315. package/dist/elements/skeleton/skeleton.d.ts.map +1 -1
  316. package/dist/elements/skeleton/skeleton.js +1 -1
  317. package/dist/elements/spinner/index.d.ts +2 -2
  318. package/dist/elements/spinner/index.d.ts.map +1 -1
  319. package/dist/elements/spinner/index.js +2 -2
  320. package/dist/elements/spinner/spinner.d.ts +1 -1
  321. package/dist/elements/spinner/spinner.d.ts.map +1 -1
  322. package/dist/elements/spinner/spinner.js +2 -2
  323. package/dist/elements/sticky-bar/index.d.ts +8 -0
  324. package/dist/elements/sticky-bar/index.d.ts.map +1 -0
  325. package/dist/elements/sticky-bar/index.js +4 -0
  326. package/dist/elements/sticky-bar/sticky-bar.css +56 -0
  327. package/dist/elements/sticky-bar/sticky-bar.d.ts +46 -0
  328. package/dist/elements/sticky-bar/sticky-bar.d.ts.map +1 -0
  329. package/dist/elements/sticky-bar/sticky-bar.js +146 -0
  330. package/dist/elements/stories/index.d.ts +8 -0
  331. package/dist/elements/stories/index.d.ts.map +1 -0
  332. package/dist/elements/stories/index.js +4 -0
  333. package/dist/elements/stories/stories.d.ts +50 -0
  334. package/dist/elements/stories/stories.d.ts.map +1 -0
  335. package/dist/elements/stories/stories.js +113 -0
  336. package/dist/elements/stories-viewer/index.d.ts +8 -0
  337. package/dist/elements/stories-viewer/index.d.ts.map +1 -0
  338. package/dist/elements/stories-viewer/index.js +4 -0
  339. package/dist/elements/stories-viewer/stories-viewer.css +337 -0
  340. package/dist/elements/stories-viewer/stories-viewer.d.ts +136 -0
  341. package/dist/elements/stories-viewer/stories-viewer.d.ts.map +1 -0
  342. package/dist/elements/stories-viewer/stories-viewer.js +719 -0
  343. package/dist/elements/story/index.d.ts +8 -0
  344. package/dist/elements/story/index.d.ts.map +1 -0
  345. package/dist/elements/story/index.js +4 -0
  346. package/dist/elements/story/story.d.ts +48 -0
  347. package/dist/elements/story/story.d.ts.map +1 -0
  348. package/dist/elements/story/story.js +161 -0
  349. package/dist/elements/tabs/index.d.ts +2 -2
  350. package/dist/elements/tabs/index.d.ts.map +1 -1
  351. package/dist/elements/tabs/index.js +2 -2
  352. package/dist/elements/tabs/tabs.d.ts +1 -1
  353. package/dist/elements/tabs/tabs.d.ts.map +1 -1
  354. package/dist/elements/tabs/tabs.js +5 -5
  355. package/dist/elements/toast/index.d.ts +3 -3
  356. package/dist/elements/toast/index.d.ts.map +1 -1
  357. package/dist/elements/toast/index.js +3 -3
  358. package/dist/elements/toast/toast.d.ts +2 -2
  359. package/dist/elements/toast/toast.d.ts.map +1 -1
  360. package/dist/elements/toast/toast.js +5 -5
  361. package/dist/elements/tooltip/index.d.ts +2 -2
  362. package/dist/elements/tooltip/index.d.ts.map +1 -1
  363. package/dist/elements/tooltip/index.js +2 -2
  364. package/dist/elements/tooltip/tooltip.css +15 -7
  365. package/dist/elements/tooltip/tooltip.d.ts +4 -4
  366. package/dist/elements/tooltip/tooltip.d.ts.map +1 -1
  367. package/dist/elements/tooltip/tooltip.js +32 -32
  368. package/dist/elements/tree/index.d.ts +2 -2
  369. package/dist/elements/tree/index.d.ts.map +1 -1
  370. package/dist/elements/tree/index.js +2 -2
  371. package/dist/elements/tree/tree.d.ts +5 -5
  372. package/dist/elements/tree/tree.d.ts.map +1 -1
  373. package/dist/elements/tree/tree.js +14 -16
  374. package/dist/elements/tree-item/index.d.ts +2 -2
  375. package/dist/elements/tree-item/index.d.ts.map +1 -1
  376. package/dist/elements/tree-item/index.js +2 -2
  377. package/dist/elements/tree-item/tree-item.d.ts +2 -2
  378. package/dist/elements/tree-item/tree-item.d.ts.map +1 -1
  379. package/dist/elements/tree-item/tree-item.js +28 -28
  380. package/dist/registry.d.ts +1 -1
  381. package/dist/registry.d.ts.map +1 -1
  382. package/dist/skills/luxen-ui/SKILL.md +1 -0
  383. package/dist/skills/luxen-ui/references/select.md +1 -1
  384. package/dist/skills/luxen-ui/references/sticky-bar.md +148 -0
  385. package/package.json +4 -4
@@ -0,0 +1,8 @@
1
+ import { StickyBar } from './sticky-bar';
2
+ export * from './sticky-bar';
3
+ declare global {
4
+ interface HTMLElementTagNameMap {
5
+ 'l-sticky-bar': StickyBar;
6
+ }
7
+ }
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/html/elements/sticky-bar/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,cAAc,cAAc,CAAC;AAG7B,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,cAAc,EAAE,SAAS,CAAC;KAC3B;CACF"}
@@ -0,0 +1,4 @@
1
+ import { define } from '../../define';
2
+ import { StickyBar } from './sticky-bar';
3
+ export * from './sticky-bar';
4
+ define('sticky-bar', StickyBar);
@@ -0,0 +1,56 @@
1
+ :host {
2
+ --show-duration: 200ms;
3
+ --hide-duration: 200ms;
4
+ --offset: 0px;
5
+
6
+ /* Override popover UA defaults. */
7
+ position: fixed;
8
+ inset: auto;
9
+ inset-inline: 0;
10
+ width: 100%;
11
+ margin: 0;
12
+ border: 0;
13
+ padding: 0;
14
+ background: transparent;
15
+ display: block;
16
+ opacity: 0;
17
+ transition:
18
+ opacity var(--hide-duration) ease,
19
+ translate var(--hide-duration) ease,
20
+ display var(--hide-duration) allow-discrete,
21
+ overlay var(--hide-duration) allow-discrete;
22
+ }
23
+
24
+ :host([placement='bottom']) {
25
+ bottom: var(--offset);
26
+ translate: 0 100%;
27
+ }
28
+
29
+ :host([placement='top']) {
30
+ top: var(--offset);
31
+ translate: 0 -100%;
32
+ }
33
+
34
+ :host(:popover-open) {
35
+ opacity: 1;
36
+ translate: 0 0;
37
+ transition-duration: var(--show-duration);
38
+ }
39
+
40
+ @starting-style {
41
+ :host([placement='bottom']:popover-open) {
42
+ opacity: 0;
43
+ translate: 0 100%;
44
+ }
45
+ :host([placement='top']:popover-open) {
46
+ opacity: 0;
47
+ translate: 0 -100%;
48
+ }
49
+ }
50
+
51
+ @media (prefers-reduced-motion: reduce) {
52
+ :host {
53
+ --show-duration: 0ms;
54
+ --hide-duration: 0ms;
55
+ }
56
+ }
@@ -0,0 +1,46 @@
1
+ import { type PropertyValues } from 'lit';
2
+ import { LuxenElement } from '../../shared/luxen-element';
3
+ /**
4
+ * @summary A bar docked to the viewport edge, revealed in the top layer when a referenced element scrolls out of view.
5
+ * @customElement l-sticky-bar
6
+ *
7
+ * Uses the native `popover="manual"` attribute, so the bar paints in the
8
+ * document's top layer. Pass `for="<id>"` to track an element; the bar
9
+ * reveals when that element leaves the viewport (e.g. an Add-to-cart
10
+ * button on a mobile product page). Omit `for` for a bar that stays
11
+ * visible permanently (cookie banners, promo notices, environment
12
+ * indicators).
13
+ *
14
+ * @slot - Bar content. Owns its own background, padding, and typography.
15
+ *
16
+ * @cssproperty --show-duration - Reveal animation duration. Default `200ms`.
17
+ * @cssproperty --hide-duration - Dismiss animation duration. Default `200ms`.
18
+ * @cssproperty --offset - Distance from the active edge. Default `0px`. Use to clear a sticky header when `placement="top"`.
19
+ *
20
+ * @event show - Fired before the bar reveals. Cancelable.
21
+ * @event after-show - Fired after the reveal animation completes.
22
+ * @event hide - Fired before the bar hides. Cancelable.
23
+ * @event after-hide - Fired after the hide animation completes.
24
+ */
25
+ export declare class StickyBar extends LuxenElement {
26
+ static styles: import("lit").CSSResult[];
27
+ /** HTML id of the element to track. When that element leaves the viewport, the bar reveals. Omit for a permanently visible bar. */
28
+ accessor for: string;
29
+ /** HTML id of the scrolling ancestor used as the IntersectionObserver root. Omit to use the viewport. Useful for nested scroll containers (CMS preview panes, modals). */
30
+ accessor root: string;
31
+ /** Edge to dock against. */
32
+ accessor placement: 'bottom' | 'top';
33
+ private _io?;
34
+ private _observed?;
35
+ connectedCallback(): void;
36
+ disconnectedCallback(): void;
37
+ updated(changed: PropertyValues<this>): void;
38
+ private get _target();
39
+ private _show;
40
+ private _hide;
41
+ private _onToggle;
42
+ private _setupObserver;
43
+ private _teardownObserver;
44
+ render(): import("lit").TemplateResult<1>;
45
+ }
46
+ //# sourceMappingURL=sticky-bar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sticky-bar.d.ts","sourceRoot":"","sources":["../../../src/html/elements/sticky-bar/sticky-bar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAO1D;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,SAAU,SAAQ,YAAY;IACzC,OAAgB,MAAM,4BAAwB;IAE9C,mIAAmI;IAEnI,QAAQ,CAAC,GAAG,SAAM;IAElB,0KAA0K;IAE1K,QAAQ,CAAC,IAAI,SAAM;IAEnB,4BAA4B;IAE5B,QAAQ,CAAC,SAAS,EAAE,QAAQ,GAAG,KAAK,CAAY;IAEhD,OAAO,CAAC,GAAG,CAAC,CAAuB;IACnC,OAAO,CAAC,SAAS,CAAC,CAAU;IAEnB,iBAAiB;IAMjB,oBAAoB;IAMpB,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC;IAY9C,OAAO,KAAK,OAAO,GAElB;IAED,OAAO,CAAC,KAAK;IAKb,OAAO,CAAC,KAAK;IAKb,OAAO,CAAC,SAAS,CAGf;IAEF,OAAO,CAAC,cAAc;IAqBtB,OAAO,CAAC,iBAAiB;IAShB,MAAM;CAGhB"}
@@ -0,0 +1,146 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
8
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
9
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
10
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
+ };
12
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
13
+ if (kind === "m") throw new TypeError("Private method is not writable");
14
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
15
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
16
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
17
+ };
18
+ var _StickyBar_for_accessor_storage, _StickyBar_root_accessor_storage, _StickyBar_placement_accessor_storage;
19
+ import { html, unsafeCSS } from 'lit';
20
+ import { LuxenElement } from '../../shared/luxen-element';
21
+ import { property } from 'lit/decorators.js';
22
+ import hostStyles from '../../shared/styles/host.styles';
23
+ import rawStyles from './sticky-bar.css?inline';
24
+ const styles = unsafeCSS(rawStyles);
25
+ /**
26
+ * @summary A bar docked to the viewport edge, revealed in the top layer when a referenced element scrolls out of view.
27
+ * @customElement l-sticky-bar
28
+ *
29
+ * Uses the native `popover="manual"` attribute, so the bar paints in the
30
+ * document's top layer. Pass `for="<id>"` to track an element; the bar
31
+ * reveals when that element leaves the viewport (e.g. an Add-to-cart
32
+ * button on a mobile product page). Omit `for` for a bar that stays
33
+ * visible permanently (cookie banners, promo notices, environment
34
+ * indicators).
35
+ *
36
+ * @slot - Bar content. Owns its own background, padding, and typography.
37
+ *
38
+ * @cssproperty --show-duration - Reveal animation duration. Default `200ms`.
39
+ * @cssproperty --hide-duration - Dismiss animation duration. Default `200ms`.
40
+ * @cssproperty --offset - Distance from the active edge. Default `0px`. Use to clear a sticky header when `placement="top"`.
41
+ *
42
+ * @event show - Fired before the bar reveals. Cancelable.
43
+ * @event after-show - Fired after the reveal animation completes.
44
+ * @event hide - Fired before the bar hides. Cancelable.
45
+ * @event after-hide - Fired after the hide animation completes.
46
+ */
47
+ export class StickyBar extends LuxenElement {
48
+ constructor() {
49
+ super(...arguments);
50
+ _StickyBar_for_accessor_storage.set(this, '');
51
+ _StickyBar_root_accessor_storage.set(this, '');
52
+ _StickyBar_placement_accessor_storage.set(this, 'bottom');
53
+ this._onToggle = (e) => {
54
+ const ev = e;
55
+ this.emit(ev.newState === 'open' ? 'after-show' : 'after-hide');
56
+ };
57
+ }
58
+ /** HTML id of the element to track. When that element leaves the viewport, the bar reveals. Omit for a permanently visible bar. */
59
+ get for() { return __classPrivateFieldGet(this, _StickyBar_for_accessor_storage, "f"); }
60
+ set for(value) { __classPrivateFieldSet(this, _StickyBar_for_accessor_storage, value, "f"); }
61
+ /** HTML id of the scrolling ancestor used as the IntersectionObserver root. Omit to use the viewport. Useful for nested scroll containers (CMS preview panes, modals). */
62
+ get root() { return __classPrivateFieldGet(this, _StickyBar_root_accessor_storage, "f"); }
63
+ set root(value) { __classPrivateFieldSet(this, _StickyBar_root_accessor_storage, value, "f"); }
64
+ /** Edge to dock against. */
65
+ get placement() { return __classPrivateFieldGet(this, _StickyBar_placement_accessor_storage, "f"); }
66
+ set placement(value) { __classPrivateFieldSet(this, _StickyBar_placement_accessor_storage, value, "f"); }
67
+ connectedCallback() {
68
+ super.connectedCallback();
69
+ this.popover = 'manual';
70
+ this.addEventListener('toggle', this._onToggle);
71
+ }
72
+ disconnectedCallback() {
73
+ super.disconnectedCallback();
74
+ this.removeEventListener('toggle', this._onToggle);
75
+ this._teardownObserver();
76
+ }
77
+ updated(changed) {
78
+ if (changed.has('for') || changed.has('root')) {
79
+ this._teardownObserver();
80
+ if (this.for) {
81
+ this._setupObserver();
82
+ }
83
+ else {
84
+ // No target → permanent bar. Reveal once on mount.
85
+ this._show();
86
+ }
87
+ }
88
+ }
89
+ get _target() {
90
+ return this.for ? this.getRootNode().getElementById(this.for) : null;
91
+ }
92
+ _show() {
93
+ if (this.matches(':popover-open'))
94
+ return;
95
+ if (this.emit('show', { cancelable: true }))
96
+ this.showPopover();
97
+ }
98
+ _hide() {
99
+ if (!this.matches(':popover-open'))
100
+ return;
101
+ if (this.emit('hide', { cancelable: true }))
102
+ this.hidePopover();
103
+ }
104
+ _setupObserver() {
105
+ const target = this._target;
106
+ if (!target)
107
+ return;
108
+ this._observed = target;
109
+ const root = this.root
110
+ ? this.getRootNode().getElementById(this.root)
111
+ : null;
112
+ // Use the element's own realm so an iframe-hosted bar observes the iframe's viewport.
113
+ const view = this.ownerDocument.defaultView ?? window;
114
+ this._io = new view.IntersectionObserver((entries) => {
115
+ for (const entry of entries) {
116
+ if (entry.isIntersecting)
117
+ this._hide();
118
+ else
119
+ this._show();
120
+ }
121
+ }, { root, threshold: 0 });
122
+ this._io.observe(target);
123
+ }
124
+ _teardownObserver() {
125
+ if (this._io && this._observed) {
126
+ this._io.unobserve(this._observed);
127
+ }
128
+ this._io?.disconnect();
129
+ this._io = undefined;
130
+ this._observed = undefined;
131
+ }
132
+ render() {
133
+ return html `<slot></slot>`;
134
+ }
135
+ }
136
+ _StickyBar_for_accessor_storage = new WeakMap(), _StickyBar_root_accessor_storage = new WeakMap(), _StickyBar_placement_accessor_storage = new WeakMap();
137
+ StickyBar.styles = [hostStyles, styles];
138
+ __decorate([
139
+ property()
140
+ ], StickyBar.prototype, "for", null);
141
+ __decorate([
142
+ property()
143
+ ], StickyBar.prototype, "root", null);
144
+ __decorate([
145
+ property({ reflect: true })
146
+ ], StickyBar.prototype, "placement", null);
@@ -0,0 +1,8 @@
1
+ import { LuxenStories } from './stories';
2
+ export * from './stories';
3
+ declare global {
4
+ interface HTMLElementTagNameMap {
5
+ 'l-stories': LuxenStories;
6
+ }
7
+ }
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/html/elements/stories/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,cAAc,WAAW,CAAC;AAG1B,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,WAAW,EAAE,YAAY,CAAC;KAC3B;CACF"}
@@ -0,0 +1,4 @@
1
+ import { define } from '../../define';
2
+ import { LuxenStories } from './stories';
3
+ export * from './stories';
4
+ define('stories', LuxenStories);
@@ -0,0 +1,50 @@
1
+ import { LuxenElement } from '../../shared/luxen-element';
2
+ import type { LuxenStory } from '../story/story';
3
+ export type StoriesAppearance = 'rounded' | 'squared' | 'portrait' | 'landscape';
4
+ /**
5
+ * @summary A horizontal row of `<l-story>` thumbnails. Click opens the linked
6
+ * `<l-stories-viewer>` (matched by `for` → `id`). If `for` is omitted and no
7
+ * viewer exists, a singleton viewer is appended to `<body>` on first click.
8
+ *
9
+ * @example
10
+ * ```html
11
+ * <l-stories for="brand">
12
+ * <l-story src="…video.mp4" poster="…jpg" label="Notre concept"></l-story>
13
+ * <l-story src="…video2.mp4" label="Collant Essentiel"></l-story>
14
+ * </l-stories>
15
+ * <l-stories-viewer id="brand"></l-stories-viewer>
16
+ * ```
17
+ *
18
+ * @event story-open - Fired when the viewer opens. Detail: `{ index: number, story: LuxenStory }`.
19
+ *
20
+ * @cssproperty --size - Thumbnail size (width). Default per appearance.
21
+ * @cssproperty --radius - Thumbnail border radius. Default per appearance (`--radius-full` for rounded, `1rem` for portrait).
22
+ * @cssproperty --gap - Gap between thumbnails. Default `1rem`.
23
+ * @cssproperty --ring-color - Ring color around fresh thumbnails.
24
+ * @cssproperty --ring-color-seen - Ring color for `[seen]` thumbnails.
25
+ * @cssproperty --ring-width - Ring width. Default `2px`.
26
+ * @cssproperty --label-color - Label text color.
27
+ *
28
+ * @customElement l-stories
29
+ */
30
+ export declare class LuxenStories extends LuxenElement {
31
+ createRenderRoot(): this;
32
+ /** ID of the linked `<l-stories-viewer>`. */
33
+ for: string;
34
+ /** Visual appearance of the thumbnails. */
35
+ appearance: StoriesAppearance;
36
+ connectedCallback(): void;
37
+ disconnectedCallback(): void;
38
+ /** Open the linked viewer at the given index. */
39
+ open(index?: number): void;
40
+ /** All `<l-story>` children. */
41
+ stories(): LuxenStory[];
42
+ private _onClick;
43
+ private _resolveViewer;
44
+ }
45
+ declare global {
46
+ interface HTMLElementTagNameMap {
47
+ 'l-stories': LuxenStories;
48
+ }
49
+ }
50
+ //# sourceMappingURL=stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stories.d.ts","sourceRoot":"","sources":["../../../src/html/elements/stories/stories.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEjD,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,GAAG,WAAW,CAAC;AAEjF;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qBAAa,YAAa,SAAQ,YAAY;IACnC,gBAAgB;IAIzB,6CAA6C;IAE7C,GAAG,SAAM;IAET,2CAA2C;IAE3C,UAAU,EAAE,iBAAiB,CAAa;IAEjC,iBAAiB;IAQjB,oBAAoB;IAK7B,iDAAiD;IACjD,IAAI,CAAC,KAAK,SAAI;IAYd,gCAAgC;IAChC,OAAO,IAAI,UAAU,EAAE;IAIvB,OAAO,CAAC,QAAQ,CASd;IAEF,OAAO,CAAC,cAAc;CAevB;AAaD,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,WAAW,EAAE,YAAY,CAAC;KAC3B;CACF"}
@@ -0,0 +1,113 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { property } from 'lit/decorators.js';
8
+ import { LuxenElement } from '../../shared/luxen-element';
9
+ /**
10
+ * @summary A horizontal row of `<l-story>` thumbnails. Click opens the linked
11
+ * `<l-stories-viewer>` (matched by `for` → `id`). If `for` is omitted and no
12
+ * viewer exists, a singleton viewer is appended to `<body>` on first click.
13
+ *
14
+ * @example
15
+ * ```html
16
+ * <l-stories for="brand">
17
+ * <l-story src="…video.mp4" poster="…jpg" label="Notre concept"></l-story>
18
+ * <l-story src="…video2.mp4" label="Collant Essentiel"></l-story>
19
+ * </l-stories>
20
+ * <l-stories-viewer id="brand"></l-stories-viewer>
21
+ * ```
22
+ *
23
+ * @event story-open - Fired when the viewer opens. Detail: `{ index: number, story: LuxenStory }`.
24
+ *
25
+ * @cssproperty --size - Thumbnail size (width). Default per appearance.
26
+ * @cssproperty --radius - Thumbnail border radius. Default per appearance (`--radius-full` for rounded, `1rem` for portrait).
27
+ * @cssproperty --gap - Gap between thumbnails. Default `1rem`.
28
+ * @cssproperty --ring-color - Ring color around fresh thumbnails.
29
+ * @cssproperty --ring-color-seen - Ring color for `[seen]` thumbnails.
30
+ * @cssproperty --ring-width - Ring width. Default `2px`.
31
+ * @cssproperty --label-color - Label text color.
32
+ *
33
+ * @customElement l-stories
34
+ */
35
+ export class LuxenStories extends LuxenElement {
36
+ constructor() {
37
+ super(...arguments);
38
+ /** ID of the linked `<l-stories-viewer>`. */
39
+ this.for = '';
40
+ /** Visual appearance of the thumbnails. */
41
+ this.appearance = 'rounded';
42
+ this._onClick = (e) => {
43
+ const trigger = e.target.closest('[data-story-trigger]');
44
+ if (!trigger)
45
+ return;
46
+ const story = trigger.closest('l-story');
47
+ if (!story)
48
+ return;
49
+ const index = this.stories().indexOf(story);
50
+ if (index < 0)
51
+ return;
52
+ e.preventDefault();
53
+ this.open(index);
54
+ };
55
+ }
56
+ createRenderRoot() {
57
+ return this;
58
+ }
59
+ connectedCallback() {
60
+ super.connectedCallback();
61
+ if (!this.hasAttribute('role')) {
62
+ this.setAttribute('role', 'list');
63
+ }
64
+ this.addEventListener('click', this._onClick);
65
+ }
66
+ disconnectedCallback() {
67
+ super.disconnectedCallback();
68
+ this.removeEventListener('click', this._onClick);
69
+ }
70
+ /** Open the linked viewer at the given index. */
71
+ open(index = 0) {
72
+ const stories = this.stories();
73
+ if (!stories.length)
74
+ return;
75
+ const viewer = this._resolveViewer();
76
+ if (!viewer)
77
+ return;
78
+ viewer.stories = stories;
79
+ viewer.source = this;
80
+ viewer.index = Math.max(0, Math.min(index, stories.length - 1));
81
+ viewer.open = true;
82
+ this.emit('story-open', { detail: { index, story: stories[index] } });
83
+ }
84
+ /** All `<l-story>` children. */
85
+ stories() {
86
+ return Array.from(this.querySelectorAll(':scope > l-story'));
87
+ }
88
+ _resolveViewer() {
89
+ if (this.for) {
90
+ const root = this.getRootNode();
91
+ const el = root.getElementById?.(this.for);
92
+ if (el && _isViewer(el))
93
+ return el;
94
+ }
95
+ // Auto-singleton fallback.
96
+ let auto = document.querySelector('l-stories-viewer[data-auto]');
97
+ if (!auto) {
98
+ auto = document.createElement('l-stories-viewer');
99
+ auto.setAttribute('data-auto', '');
100
+ document.body.appendChild(auto);
101
+ }
102
+ return auto;
103
+ }
104
+ }
105
+ __decorate([
106
+ property({ reflect: true })
107
+ ], LuxenStories.prototype, "for", void 0);
108
+ __decorate([
109
+ property({ reflect: true })
110
+ ], LuxenStories.prototype, "appearance", void 0);
111
+ function _isViewer(el) {
112
+ return el.tagName === 'L-STORIES-VIEWER';
113
+ }
@@ -0,0 +1,8 @@
1
+ import { LuxenStoriesViewer } from './stories-viewer';
2
+ export * from './stories-viewer';
3
+ declare global {
4
+ interface HTMLElementTagNameMap {
5
+ 'l-stories-viewer': LuxenStoriesViewer;
6
+ }
7
+ }
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/html/elements/stories-viewer/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,cAAc,kBAAkB,CAAC;AAGjC,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,kBAAkB,EAAE,kBAAkB,CAAC;KACxC;CACF"}
@@ -0,0 +1,4 @@
1
+ import { define } from '../../define';
2
+ import { LuxenStoriesViewer } from './stories-viewer';
3
+ export * from './stories-viewer';
4
+ define('stories-viewer', LuxenStoriesViewer);