@luzmo/lucero 1.0.3-alpha.9 → 2.0.1

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 (424) hide show
  1. package/components/accordion/index.cjs +1 -1
  2. package/components/accordion/index.js +2 -2
  3. package/components/{accordion-DC7cjb1c.js → accordion-BDchhAjE.js} +4 -4
  4. package/components/accordion-DpsYMoeb.cjs +43 -0
  5. package/components/action-bar/index.cjs +1 -1
  6. package/components/action-bar/index.js +2 -2
  7. package/components/{action-bar-Dn4IDXEF.js → action-bar-2FGCCKMW.js} +7 -7
  8. package/components/action-bar-CXT4lT30.cjs +39 -0
  9. package/components/action-button/action-button.d.ts +12 -1
  10. package/components/action-button/index.cjs +1 -1
  11. package/components/action-button/index.d.ts +1 -1
  12. package/components/action-button/index.js +2 -2
  13. package/components/action-button-BKnzGQR6.cjs +22 -0
  14. package/components/action-button-OB5MM04X.js +137 -0
  15. package/components/action-group/index.cjs +1 -1
  16. package/components/action-group/index.js +2 -2
  17. package/components/{action-group-DYKpp-mz.js → action-group-BQ-fyPYS.js} +3 -3
  18. package/components/action-group-D1G30Iir.cjs +20 -0
  19. package/components/action-menu/index.cjs +1 -1
  20. package/components/action-menu/index.js +2 -2
  21. package/components/{action-menu-C1C1Gx39.cjs → action-menu-CtMswuyc.cjs} +15 -15
  22. package/components/{action-menu-BlR6cLpi.js → action-menu-Diehg1Kc.js} +21 -21
  23. package/components/avatar/avatar.d.ts +17 -1
  24. package/components/avatar/index.cjs +1 -1
  25. package/components/avatar/index.js +2 -2
  26. package/components/avatar-Cu9c0sCS.cjs +34 -0
  27. package/components/avatar-Nb0368Wi.js +98 -0
  28. package/components/badge/badge.d.ts +4 -1
  29. package/components/badge/index.cjs +1 -1
  30. package/components/badge/index.js +2 -2
  31. package/components/badge-CrUIOuV-.cjs +23 -0
  32. package/components/badge-DAGeawhJ.js +95 -0
  33. package/components/button/button-base.d.ts +4 -0
  34. package/components/button/button.d.ts +0 -1
  35. package/components/button/index.cjs +1 -1
  36. package/components/button/index.js +3 -3
  37. package/components/{button-D1a4B85S.js → button-DXWWEbir.js} +6 -6
  38. package/components/button-base-DiNxrttk.cjs +25 -0
  39. package/components/{button-base-CzTYjZND.js → button-base-DiPzVpp4.js} +38 -23
  40. package/components/button-group/index.cjs +1 -1
  41. package/components/button-group/index.js +2 -2
  42. package/components/button-group-6M8M-TUI.cjs +18 -0
  43. package/components/{button-group-BiQxYcQ2.js → button-group-DaANSInm.js} +2 -2
  44. package/components/button-l0fRopSN.cjs +20 -0
  45. package/components/calendar/index.cjs +1 -1
  46. package/components/calendar/index.js +2 -2
  47. package/components/{calendar-BNRjXf9B.js → calendar-C8u_88jX.js} +5 -9
  48. package/components/calendar-DZkKMs2L.cjs +138 -0
  49. package/components/chat-message/chat-message.d.ts +0 -1
  50. package/components/chat-message/index.cjs +1 -1
  51. package/components/chat-message/index.js +2 -2
  52. package/components/{chat-message-DJgocVNj.js → chat-message-CXq0Trjx.js} +757 -545
  53. package/components/chat-message-group/index.cjs +1 -1
  54. package/components/chat-message-group/index.js +2 -2
  55. package/components/chat-message-group-CzCwyW7F.cjs +24 -0
  56. package/components/{chat-message-group-B4U2MzHx.js → chat-message-group-D7vdn2gG.js} +2 -2
  57. package/components/chat-message-t4a0r3R6.cjs +148 -0
  58. package/components/checkbox/checkbox.d.ts +7 -0
  59. package/components/checkbox/index.cjs +1 -1
  60. package/components/checkbox/index.js +2 -2
  61. package/components/{checkbox-CPS-tR_i.js → checkbox-6YzkdHR4.js} +9 -5
  62. package/components/checkbox-DdatW4xE.cjs +25 -0
  63. package/components/{checkbox-mixin-C5sLMo5L.js → checkbox-mixin-jqmrh48O.js} +2 -2
  64. package/components/{checkbox-mixin-D4HeLrMj.cjs → checkbox-mixin-rFRXqyrK.cjs} +3 -3
  65. package/components/close-button-BntGLAcp.cjs +18 -0
  66. package/components/{close-button-MgaJT7yO.js → close-button-D12zZ9zC.js} +4 -4
  67. package/components/color-area/index.cjs +1 -1
  68. package/components/color-area/index.js +2 -2
  69. package/components/color-area-B_pRu9Vf.cjs +80 -0
  70. package/components/{color-area-mWOctRNt.js → color-area-DMpXKgPY.js} +13 -13
  71. package/components/color-controller-DbyPc33Y.cjs +18 -0
  72. package/components/color-field/index.cjs +1 -1
  73. package/components/color-field/index.js +2 -2
  74. package/components/{color-field-D7_7z2A2.cjs → color-field-BNGnBRSO.cjs} +2 -2
  75. package/components/{color-field-CxdIoSq6.js → color-field-CUdHxonc.js} +3 -3
  76. package/components/color-handle/index.cjs +1 -1
  77. package/components/color-handle/index.js +2 -2
  78. package/components/color-handle-DIoVrLRF.cjs +24 -0
  79. package/components/{color-handle-BOusOFFx.js → color-handle-TKbLs1ax.js} +2 -2
  80. package/components/color-loupe/index.cjs +1 -1
  81. package/components/color-loupe/index.js +2 -2
  82. package/components/{color-loupe-bEzi2P0y.js → color-loupe-DAxrNPJz.js} +2 -2
  83. package/components/color-loupe-sY1wOisV.cjs +56 -0
  84. package/components/color-menu/index.cjs +1 -1
  85. package/components/color-menu/index.js +2 -2
  86. package/components/color-menu-CdETqhbP.cjs +89 -0
  87. package/components/{color-menu-Cryp_5Gh.js → color-menu-jkdcr5ir.js} +24 -24
  88. package/components/color-palette/index.cjs +1 -1
  89. package/components/color-palette/index.js +2 -2
  90. package/components/color-palette-CidHsmE0.cjs +18 -0
  91. package/components/{color-palette-BAdaNySC.js → color-palette-FQyIMSwP.js} +3 -3
  92. package/components/color-palette-group/index.cjs +1 -1
  93. package/components/color-palette-group/index.js +2 -2
  94. package/components/color-palette-group-B4r4tPfY.cjs +28 -0
  95. package/components/{color-palette-group-D8Mavsd2.js → color-palette-group-o6bnF-Ir.js} +3 -3
  96. package/components/color-picker/index.cjs +1 -1
  97. package/components/color-picker/index.js +2 -2
  98. package/components/{color-picker-DL7rqWnW.cjs → color-picker-C4pvkA2k.cjs} +2 -2
  99. package/components/{color-picker-DgjqWiVd.js → color-picker-DF3gBQvH.js} +6 -6
  100. package/components/color-slider/index.cjs +1 -1
  101. package/components/color-slider/index.js +2 -2
  102. package/components/color-slider-DLEM1nGA.cjs +57 -0
  103. package/components/{color-slider-ihAIFt5p.js → color-slider-DejvUYrW.js} +6 -5
  104. package/components/{condition-attribute-with-id-DauPaLSS.cjs → condition-attribute-with-id-Cw92IbcP.cjs} +1 -1
  105. package/components/date-range-picker/index.cjs +1 -1
  106. package/components/date-range-picker/index.js +2 -2
  107. package/components/date-range-picker-9ioTuDZq.cjs +180 -0
  108. package/components/{date-range-picker-CcDzRDm5.js → date-range-picker-DCOv5PYH.js} +13 -13
  109. package/components/date-time-picker/index.cjs +1 -1
  110. package/components/date-time-picker/index.js +2 -2
  111. package/components/{date-time-picker-PHKHDgL9.js → date-time-picker-ClgATXBy.js} +11 -11
  112. package/components/date-time-picker-DRjQTyGS.cjs +105 -0
  113. package/components/{decorate-aGxJUVxg.js → decorate-CkCg3wfh.js} +1 -1
  114. package/components/decorate-Dq34MBGe.cjs +18 -0
  115. package/components/{dependency-manger-CHy9t__e.cjs → dependency-manger-BSaHw9ju.cjs} +1 -1
  116. package/components/divider/index.cjs +1 -1
  117. package/components/divider/index.js +2 -2
  118. package/components/{divider-cU0lVwOp.js → divider-CGbT-CL8.js} +3 -3
  119. package/components/divider-wana0uPI.cjs +18 -0
  120. package/components/{divider.module-CL60P_z8.cjs → divider.module-BV6tmpOY.cjs} +1 -1
  121. package/components/{element-resolution-C0aiOB0Y.cjs → element-resolution-BjaAlqwX.cjs} +1 -1
  122. package/components/field-group/index.cjs +1 -1
  123. package/components/field-group/index.js +2 -2
  124. package/components/{field-group-C7ROsWq3.js → field-group-C_kRq7pJ.js} +2 -2
  125. package/components/{field-group-OcI5Lgu7.cjs → field-group-Dd5xYczm.cjs} +2 -2
  126. package/components/field-label/index.cjs +1 -1
  127. package/components/field-label/index.js +2 -2
  128. package/components/{field-label-CtGCEmdp.js → field-label-B9S41b7c.js} +5 -5
  129. package/components/field-label-C5vdJ1ys.cjs +25 -0
  130. package/components/focus-group-C8lOjbi9.cjs +18 -0
  131. package/components/{focus-group-BshI1RpM.js → focus-group-DVPa1zxz.js} +1 -1
  132. package/components/{focus-visible-CrooVCUu.js → focus-visible-Bt2uDmuM.js} +2 -2
  133. package/components/focus-visible-DNHNlrty.cjs +18 -0
  134. package/components/focusable-B6h03pAe.cjs +18 -0
  135. package/components/{focusable-BmS8IzhH.js → focusable-DuP0-Kuy.js} +2 -2
  136. package/components/{focusable-selectors-5n5liBn0.cjs → focusable-selectors-DJqGLTJo.cjs} +1 -1
  137. package/components/{get-label-from-slot-LO_DZP60.cjs → get-label-from-slot-TV4APBYs.cjs} +1 -1
  138. package/components/icon/index.cjs +1 -1
  139. package/components/icon/index.js +2 -2
  140. package/components/icon-CSqR-OOO.cjs +18 -0
  141. package/components/{icon-CwBAE1eU.js → icon-DB1DRieA.js} +5 -2
  142. package/components/index.cjs +1 -1
  143. package/components/index.js +71 -69
  144. package/components/infield-button/index.cjs +1 -1
  145. package/components/infield-button/index.js +2 -2
  146. package/components/{infield-button-BvKsbtKr.js → infield-button-C1mz69Qf.js} +3 -3
  147. package/components/infield-button-CYO9V1eX.cjs +22 -0
  148. package/components/label/index.cjs +1 -1
  149. package/components/label/index.js +2 -2
  150. package/components/{label-ClJE2esm.js → label-B1HYQ4Pp.js} +1 -1
  151. package/components/label-DPG13Ib0.cjs +18 -0
  152. package/components/language-resolution-BaKYDD1a.js +115 -0
  153. package/components/language-resolution-CSjktYg5.cjs +18 -0
  154. package/components/{like-anchor-BZJXts_H.cjs → like-anchor-BX4PSB3d.cjs} +2 -2
  155. package/components/{like-anchor-DeOXX-MX.js → like-anchor-DXCaEv7O.js} +1 -1
  156. package/components/{manage-help-text-CF0xBh0F.js → manage-help-text-ByLb0QYX.js} +13 -10
  157. package/components/{manage-help-text-D9VbYRf_.cjs → manage-help-text-DtFJsl0k.cjs} +3 -3
  158. package/components/menu/index.cjs +1 -1
  159. package/components/menu/index.js +2 -2
  160. package/components/menu/menu-item.d.ts +1 -1
  161. package/components/menu/menu.d.ts +12 -1
  162. package/components/menu-Cq7BEv5Y.cjs +108 -0
  163. package/components/{menu-Cdz2FEB7.js → menu-DY8q8qyn.js} +82 -65
  164. package/components/multi-language-field/index.cjs +1 -1
  165. package/components/multi-language-field/index.js +2 -2
  166. package/components/{multi-language-field-DmoMyCBH.cjs → multi-language-field-Cfy3M_ZS.cjs} +2 -2
  167. package/components/{multi-language-field-BzY75rOY.js → multi-language-field-DhQ98r2D.js} +4 -4
  168. package/components/notice/index.cjs +18 -0
  169. package/components/notice/index.d.ts +8 -0
  170. package/components/notice/index.js +25 -0
  171. package/components/notice/notice.d.ts +121 -0
  172. package/components/notice-s6QHF_tq.js +218 -0
  173. package/components/notice-xgrLOiC0.cjs +60 -0
  174. package/components/number-field/index.cjs +1 -1
  175. package/components/number-field/index.js +2 -2
  176. package/components/number-field-04RFqrUa.cjs +57 -0
  177. package/components/{number-field-DrJURvoW.js → number-field-BqnZS9Gx.js} +55 -55
  178. package/components/observe-slot-presence-CS8pMePk.cjs +18 -0
  179. package/components/observe-slot-text-CvL-2ey3.cjs +18 -0
  180. package/components/{observe-slot-text-Ddf1OC6F.js → observe-slot-text-Db8Kx3P-.js} +7 -7
  181. package/components/options/index.cjs +1 -1
  182. package/components/options/index.d.ts +5 -3
  183. package/components/options/index.js +2 -2
  184. package/components/options/option.d.ts +0 -1
  185. package/components/options/options.d.ts +3 -0
  186. package/components/{options-BGwKMvng.js → options-BqFBNoKA.js} +23 -22
  187. package/components/options-Dh4FJuAu.cjs +102 -0
  188. package/components/overlay/index.cjs +1 -1
  189. package/components/overlay/index.d.ts +3 -2
  190. package/components/overlay/index.js +4 -4
  191. package/components/overlay/overlay-trigger.d.ts +1 -1
  192. package/components/overlay-B-gaxspw.cjs +47 -0
  193. package/components/{overlay-BGI4wOGe.cjs → overlay-CPZvL0Ic.cjs} +2 -2
  194. package/components/{overlay-BbQuYBxp.js → overlay-CyBsHuOL.js} +20 -15
  195. package/components/{overlay-mdk7-NOt.js → overlay-DdIs4w5M.js} +3 -3
  196. package/components/{pending-state-DFcNf5rd.js → pending-state-BeG7qBDP.js} +1 -1
  197. package/components/{pending-state-DIeF18qg.cjs → pending-state-a527YMWV.cjs} +2 -2
  198. package/components/picker/index.cjs +1 -1
  199. package/components/picker/index.js +2 -2
  200. package/components/picker/picker.d.ts +4 -0
  201. package/components/picker-D225VAbx.cjs +124 -0
  202. package/components/picker-button/index.cjs +1 -1
  203. package/components/picker-button/index.js +2 -2
  204. package/components/picker-button-BR7oM7_M.cjs +37 -0
  205. package/components/{picker-button-VAxzuhhg.js → picker-button-DVzLeTq8.js} +5 -5
  206. package/components/{picker-DOiM_cUu.js → picker-f4fSGZX8.js} +65 -66
  207. package/components/platform-BAjeJp2W.cjs +18 -0
  208. package/components/{platform-D4V_cOJF.js → platform-Ce9pNsR9.js} +2 -2
  209. package/components/popover/index.cjs +1 -1
  210. package/components/popover/index.js +2 -2
  211. package/components/{popover-DyC9xGhX.js → popover-DTsrgH-f.js} +4 -4
  212. package/components/popover-DWWYpY-k.cjs +30 -0
  213. package/components/progress-bar/index.cjs +1 -1
  214. package/components/progress-bar/index.js +2 -2
  215. package/components/{progress-bar-DHgFRml1.js → progress-bar-BJO8j1aX.js} +9 -6
  216. package/components/progress-bar-C7wJ5bxS.cjs +34 -0
  217. package/components/progress-circle/index.cjs +1 -1
  218. package/components/progress-circle/index.js +2 -2
  219. package/components/{progress-circle-Cg_ua9Ff.js → progress-circle-BVToDWX8.js} +3 -3
  220. package/components/progress-circle-DyApSKdm.cjs +33 -0
  221. package/components/progress-steps/index.cjs +1 -1
  222. package/components/progress-steps/index.js +2 -2
  223. package/components/progress-steps-Ba4VbAKR.cjs +96 -0
  224. package/components/{progress-steps-Da8aZWx3.js → progress-steps-nJ8Xw-nG.js} +10 -10
  225. package/components/prompt-box/index.cjs +1 -1
  226. package/components/prompt-box/index.js +2 -2
  227. package/components/prompt-box/prompt-box-templates.d.ts +1 -0
  228. package/components/prompt-box/prompt-box.d.ts +3 -0
  229. package/components/{prompt-box-DahvVbcc.js → prompt-box-BY1xKFZO.js} +102 -96
  230. package/components/prompt-box-Dg9S0C5x.cjs +314 -0
  231. package/components/question-box/index.cjs +18 -0
  232. package/components/question-box/index.d.ts +11 -0
  233. package/components/question-box/index.js +25 -0
  234. package/components/question-box/question-box-elicitation.d.ts +58 -0
  235. package/components/question-box/question-box-model.d.ts +25 -0
  236. package/components/question-box/question-box-templates.d.ts +65 -0
  237. package/components/question-box/question-box.d.ts +182 -0
  238. package/components/question-box/types.d.ts +124 -0
  239. package/components/question-box-5VO9CM8H.js +1171 -0
  240. package/components/question-box-DvXRIiVG.cjs +401 -0
  241. package/components/radio/index.cjs +1 -1
  242. package/components/radio/index.js +2 -2
  243. package/components/radio/radio-group.d.ts +5 -1
  244. package/components/radio/radio.d.ts +7 -1
  245. package/components/{radio-BzEPGUmQ.js → radio-DRI4on-W.js} +30 -26
  246. package/components/radio-O3a1rmCe.cjs +22 -0
  247. package/components/{random-id-B51lUxUB.cjs → random-id-BcUJAxUZ.cjs} +1 -1
  248. package/components/{random-id-Dd4boCPV.js → random-id-CiMDyX7v.js} +1 -1
  249. package/components/{roving-tabindex-B7x5ePUB.cjs → roving-tabindex-BoPao4td.cjs} +1 -1
  250. package/components/{roving-tabindex-BP6mQbXf.js → roving-tabindex-pomAn3z-.js} +1 -1
  251. package/components/{scaled-indicator-Bl-3A2gz.cjs → scaled-indicator-DLJIztx0.cjs} +2 -2
  252. package/components/search/index.cjs +1 -1
  253. package/components/search/index.js +2 -2
  254. package/components/search-BhMhfCBh.cjs +47 -0
  255. package/components/search-C-EPZmTG.js +100 -0
  256. package/components/segments-factory-DtPyN5sh.cjs +18 -0
  257. package/components/select/index.cjs +1 -1
  258. package/components/select/index.js +2 -2
  259. package/components/{select-C2gh8zRr.js → select-CFtAPE-U.js} +20 -20
  260. package/components/select-JFwtVyhG.cjs +158 -0
  261. package/components/{chunk-D-qHiVGv.cjs → sized-mixin-BT7cv-fT.cjs} +1 -1
  262. package/components/{sized-mixin-DaBoZkVS.js → sized-mixin-DzQTebN-.js} +1 -1
  263. package/components/skeleton-loader/index.cjs +1 -1
  264. package/components/skeleton-loader/index.js +2 -2
  265. package/components/{skeleton-loader-oJVESWls.js → skeleton-loader-C0LH3prK.js} +1 -1
  266. package/components/skeleton-loader-Cm50Ztzk.cjs +18 -0
  267. package/components/slider/controllers/slider-handle-controller.d.ts +79 -0
  268. package/components/slider/index.cjs +1 -1
  269. package/components/slider/index.d.ts +5 -1
  270. package/components/slider/index.js +3 -3
  271. package/components/slider/slider-control-templates.d.ts +36 -0
  272. package/components/slider/slider-handle.d.ts +62 -0
  273. package/components/slider/slider-model.d.ts +16 -0
  274. package/components/slider/slider-templates.d.ts +6 -0
  275. package/components/slider/slider.d.ts +197 -19
  276. package/components/slider/types.d.ts +57 -0
  277. package/components/slider-B7QAhDTM.js +921 -0
  278. package/components/slider-DxliwjT6.cjs +135 -0
  279. package/components/{slottable-request-event-gAcEQan2.cjs → slottable-request-event-C6eb7Ch3.cjs} +1 -1
  280. package/components/status-light/index.cjs +1 -1
  281. package/components/status-light/index.js +2 -2
  282. package/components/status-light/status-light.d.ts +3 -0
  283. package/components/status-light-BYBYorYy.cjs +21 -0
  284. package/components/status-light-DC8qqO8q.js +86 -0
  285. package/components/strategies-BwNbUXYS.cjs +18 -0
  286. package/components/{strategies-DhxJGIZT.js → strategies-Cl59wdNZ.js} +21 -19
  287. package/components/streaming-listener-Bfyk6Fsx.cjs +18 -0
  288. package/components/swatch/index.cjs +1 -1
  289. package/components/swatch/index.js +2 -2
  290. package/components/{swatch-BLuV-hlF.js → swatch-C2ty27bJ.js} +4 -4
  291. package/components/{swatch-G70JUe6I.cjs → swatch-DUmBmg4S.cjs} +2 -2
  292. package/components/switch/index.cjs +1 -1
  293. package/components/switch/index.js +2 -2
  294. package/components/switch-B-gu-War.cjs +22 -0
  295. package/components/{switch-CSuMgmAh.js → switch-DOuXlFwI.js} +5 -5
  296. package/components/tabs/index.cjs +1 -1
  297. package/components/tabs/index.js +2 -2
  298. package/components/tabs/tabs.d.ts +1 -2
  299. package/components/{tabs-B54ELQtU.js → tabs-CjY4eX9W.js} +11 -11
  300. package/components/{tabs-Jo_qqM_H.cjs → tabs-ZwcVrVub.cjs} +2 -2
  301. package/components/tags/index.cjs +1 -1
  302. package/components/tags/index.js +2 -2
  303. package/components/tags/tag.d.ts +7 -3
  304. package/components/tags-B28zWEic.cjs +47 -0
  305. package/components/tags-BCKNzEaH.js +207 -0
  306. package/components/text-field/help-text-manager.d.ts +3 -1
  307. package/components/text-field/help-text.d.ts +4 -0
  308. package/components/text-field/index.cjs +1 -1
  309. package/components/text-field/index.js +3 -3
  310. package/components/text-field/manage-help-text.d.ts +2 -1
  311. package/components/text-field/text-field.d.ts +9 -0
  312. package/components/{text-field-FJr8ZUhI.cjs → text-field-3fDtTQkR.cjs} +2 -2
  313. package/components/{text-field-BoGAvXvh.js → text-field-C2MHZbTp.js} +3 -3
  314. package/components/{text-field-Cs8HYRYL.js → text-field-CmSym2QK.js} +5 -5
  315. package/components/text-field-wJK2bzMT.cjs +21 -0
  316. package/components/{text-field.module-Btsve-VN.js → text-field.module-BHhBReKL.js} +1 -1
  317. package/components/{text-field.module-D5oDP7MB.cjs → text-field.module-l8CaTCwE.cjs} +1 -1
  318. package/components/toast/index.cjs +1 -1
  319. package/components/toast/index.js +2 -2
  320. package/components/toast-COQ7Xl5T.cjs +51 -0
  321. package/components/{toast-Bd0fleYT.js → toast-DlOeMDCI.js} +4 -4
  322. package/components/tooltip/index.cjs +1 -1
  323. package/components/tooltip/index.js +2 -2
  324. package/components/{tooltip-CVSSKlDP.js → tooltip-Byl1h4nN.js} +4 -4
  325. package/components/tooltip-Sm0pruxL.cjs +45 -0
  326. package/components/top-nav/index.cjs +1 -1
  327. package/components/top-nav/index.js +2 -2
  328. package/components/{top-nav-B3w3DZ56.js → top-nav-B9YKdtFB.js} +7 -11
  329. package/components/top-nav-BcZLCBP_.cjs +41 -0
  330. package/components/utils.cjs +1 -1
  331. package/components/utils.js +7 -7
  332. package/components/{voice-recorder-BUtmSvPO.cjs → voice-recorder-B1tBrGTV.cjs} +1 -1
  333. package/custom-elements.json +1 -1
  334. package/index.d.ts +2 -0
  335. package/package.json +15 -4
  336. package/utils/button-interaction-controllers/interaction-controller.d.ts +4 -2
  337. package/utils/reactive-controllers/language-resolution.d.ts +32 -2
  338. package/utils/reactive-controllers/match-media.d.ts +1 -0
  339. package/components/accordion-BHBIfsLU.cjs +0 -43
  340. package/components/action-bar-BSMX042X.cjs +0 -39
  341. package/components/action-button-Cr_QN4On.cjs +0 -22
  342. package/components/action-button-DC-ZFZTm.js +0 -135
  343. package/components/action-group-CH8FTW0i.cjs +0 -20
  344. package/components/avatar-CyY_ZSD0.js +0 -65
  345. package/components/avatar-PulwjkMI.cjs +0 -24
  346. package/components/badge-D1Ry32wi.cjs +0 -23
  347. package/components/badge-D6p2hPj8.js +0 -94
  348. package/components/button-C5hcfigl.cjs +0 -20
  349. package/components/button-base-Dj2qQqwO.cjs +0 -25
  350. package/components/button-group-DIz5TZvc.cjs +0 -18
  351. package/components/calendar-BWArK3rh.cjs +0 -142
  352. package/components/chat-message-CNE-mGuP.cjs +0 -149
  353. package/components/chat-message-group-COmhCN-R.cjs +0 -24
  354. package/components/checkbox-DFwDrIdY.cjs +0 -25
  355. package/components/close-button-_EXjp6_m.cjs +0 -18
  356. package/components/color-area-C3Y2d5cu.cjs +0 -80
  357. package/components/color-controller-DueaXfnX.cjs +0 -18
  358. package/components/color-handle-Cka48yPY.cjs +0 -24
  359. package/components/color-loupe-DMk8uWZW.cjs +0 -56
  360. package/components/color-menu-BAKmi_EI.cjs +0 -89
  361. package/components/color-palette-349EkPMg.cjs +0 -18
  362. package/components/color-palette-group-BvP09zmT.cjs +0 -28
  363. package/components/color-slider-DxjJ72ue.cjs +0 -57
  364. package/components/date-range-picker-A-XRRg1X.cjs +0 -180
  365. package/components/date-time-picker-Ca9GEA4N.cjs +0 -105
  366. package/components/decorate-B2wePfNm.cjs +0 -18
  367. package/components/divider-Dn8XqbB6.cjs +0 -18
  368. package/components/field-label-BCl6R1uO.cjs +0 -25
  369. package/components/focus-group-SF8Kj7iB.cjs +0 -18
  370. package/components/focus-visible-B0NNezGc.cjs +0 -18
  371. package/components/focusable-CupEoHmn.cjs +0 -18
  372. package/components/icon-B7hKwn_q.cjs +0 -18
  373. package/components/infield-button-D5cuBWE5.cjs +0 -22
  374. package/components/label-CqolZbJo.cjs +0 -18
  375. package/components/language-resolution-BYemISJC.cjs +0 -18
  376. package/components/language-resolution-BpfGTC29.js +0 -43
  377. package/components/menu-DFKS4sRU.cjs +0 -108
  378. package/components/number-field-BmWODnnR.cjs +0 -57
  379. package/components/observe-slot-presence-Dx8hzNzK.cjs +0 -18
  380. package/components/observe-slot-text-BhTcGuHY.cjs +0 -18
  381. package/components/options-CKi3VkNR.cjs +0 -101
  382. package/components/overlay-DU_p8MNs.cjs +0 -47
  383. package/components/picker-CssPvvau.cjs +0 -123
  384. package/components/picker-button-adl1JO5u.cjs +0 -37
  385. package/components/platform-B7Sk7Qon.cjs +0 -18
  386. package/components/popover-dgL04x6P.cjs +0 -30
  387. package/components/progress-bar-BR28tISC.cjs +0 -31
  388. package/components/progress-circle-DuzwUiGN.cjs +0 -33
  389. package/components/progress-steps-WriXaZpE.cjs +0 -96
  390. package/components/prompt-box-DfTe3nG0.cjs +0 -311
  391. package/components/radio-d-2GUbYE.cjs +0 -22
  392. package/components/search-CCvT87FX.cjs +0 -47
  393. package/components/search-Dtff2EzC.js +0 -100
  394. package/components/segments-factory-CHo9oQw7.cjs +0 -18
  395. package/components/select-qAKOLhmQ.cjs +0 -158
  396. package/components/sized-mixin-StFA4y0J.cjs +0 -18
  397. package/components/skeleton-loader-dNRfq6lt.cjs +0 -18
  398. package/components/slider-D8w2ipBg.cjs +0 -18
  399. package/components/slider-Fy-VeKrU.js +0 -96
  400. package/components/status-light-BG_kopZQ.cjs +0 -21
  401. package/components/status-light-DXWPBufE.js +0 -85
  402. package/components/strategies-kuvLVIKO.cjs +0 -18
  403. package/components/streaming-listener-BnDW38lt.cjs +0 -18
  404. package/components/switch-nuCOB2P3.cjs +0 -22
  405. package/components/tags-Bpl4u-eo.js +0 -206
  406. package/components/tags-Dj7Xm3KI.cjs +0 -47
  407. package/components/text-field-A4Obzs4l.cjs +0 -21
  408. package/components/toast-NZ0Z1lz9.cjs +0 -51
  409. package/components/tooltip-6y-g7e9V.cjs +0 -45
  410. package/components/top-nav-DZO8yZs6.cjs +0 -45
  411. /package/components/{color-controller-G2_v2xSl.js → color-controller-Rg_Zl0sT.js} +0 -0
  412. /package/components/{condition-attribute-with-id-Duo51HZ7.js → condition-attribute-with-id-BdnTdWKz.js} +0 -0
  413. /package/components/{dependency-manger-DMrulWcJ.js → dependency-manger-wHEXoU92.js} +0 -0
  414. /package/components/{divider.module-C65RfSUa.js → divider.module-CPEKsaqR.js} +0 -0
  415. /package/components/{element-resolution-Bs1x89vU.js → element-resolution-gap51AVo.js} +0 -0
  416. /package/components/{focusable-selectors-Bg60_Kra.js → focusable-selectors-BWpiuXz5.js} +0 -0
  417. /package/components/{get-label-from-slot-5vVnfSgN.js → get-label-from-slot-Bo9mqYCZ.js} +0 -0
  418. /package/components/{observe-slot-presence-BCqd3VSd.js → observe-slot-presence-BKY6n06-.js} +0 -0
  419. /package/components/{rolldown-runtime-CAFD8bLK.js → rolldown-runtime-Dy4uBu1J.js} +0 -0
  420. /package/components/{scaled-indicator-fMYan6VK.js → scaled-indicator-C-TupV4L.js} +0 -0
  421. /package/components/{segments-factory-D0IveW-q.js → segments-factory-BCRi1NKb.js} +0 -0
  422. /package/components/{slottable-request-event-DZ2Z_BLk.js → slottable-request-event-MRSZbgTu.js} +0 -0
  423. /package/components/{streaming-listener-2NcP7ys7.js → streaming-listener-CtcMpYfS.js} +0 -0
  424. /package/components/{voice-recorder-477xPHRU.js → voice-recorder-CTg3kRxx.js} +0 -0
@@ -0,0 +1,18 @@
1
+ /*! * Lucero - The design system for Luzmo.
2
+ *
3
+ * Copyright © 2025 Luzmo
4
+ * All rights reserved.
5
+ * Lucero (“Luzmo Design System”) must be used according to the Luzmo Terms of Service.
6
+ * This license allows users with a current active Luzmo account to use Lucero.
7
+ * This license terminates automatically if a user no longer has an active Luzmo account.
8
+ * Please view the Luzmo Terms of Service at: https://www.luzmo.com/information-pages/terms-of-use.
9
+ *
10
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
11
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
12
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
13
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
14
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
15
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
16
+ * SOFTWARE.
17
+ * */
18
+ const e=require("./decorate-Dq34MBGe.cjs");let t=require("lit"),n=require("lit/decorators.js");var r=`:host{box-sizing:border-box;background-color:var(--highcontrast-skeleton-loader-background-color,var(--luzmo-skeleton-loader-background-color,var(--skeleton-loader-background-color)));border-radius:var(--luzmo-skeleton-loader-border-radius,var(--skeleton-loader-border-radius));block-size:100%;inline-size:100%;display:block;position:relative;overflow:hidden;border-width:var(--luzmo-skeleton-loader-border-width,var(--skeleton-loader-border-width))!important;border-style:solid!important;border-color:var(--highcontrast-skeleton-loader-border-color,var(--luzmo-skeleton-loader-border-color,var(--skeleton-loader-border-color)))!important}.shimmer{background:linear-gradient(to right, transparent 0%, var(--luzmo-skeleton-loader-shimmer-color,var(--skeleton-loader-shimmer-color)) 50%, transparent 100%);inline-size:100%;position:absolute;inset-block:0;inset-inline-start:0;transform:translate(-100%)}@keyframes skeleton-loader-shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}@media (prefers-reduced-motion:no-preference){.shimmer{animation-name:skeleton-loader-shimmer;animation-duration:var(--luzmo-skeleton-loader-animation-duration,var(--skeleton-loader-animation-duration));will-change:transform;animation-timing-function:ease-in-out;animation-iteration-count:infinite}}@media (forced-colors:active){:host{--highcontrast-skeleton-loader-background-color:Canvas;--highcontrast-skeleton-loader-border-color:CanvasText;forced-color-adjust:none}.shimmer{display:none}}:host{--skeleton-loader-background-color:var(--luzmo-background-color-highlight);--skeleton-loader-shimmer-color:#ffffffb3;--skeleton-loader-border-color:var(--luzmo-border-color);--skeleton-loader-border-width:var(--luzmo-border-width);--skeleton-loader-border-radius:var(--luzmo-border-radius-xl);--skeleton-loader-animation-duration:1.5s}`,i=class extends e.n{static get styles(){return[(0,t.unsafeCSS)(r)]}render(){return t.html`<div class="shimmer" part="shimmer"></div>`}connectedCallback(){super.connectedCallback(),this.setAttribute(`aria-hidden`,`true`)}updated(e){super.updated(e),e.has(`width`)&&(this.style.inlineSize=this.width??``),e.has(`height`)&&(this.style.blockSize=this.height??``)}};e.t([(0,n.property)({type:String,reflect:!0})],i.prototype,`width`,void 0),e.t([(0,n.property)({type:String,reflect:!0})],i.prototype,`height`,void 0),customElements.get(`luzmo-skeleton-loader`)||customElements.define(`luzmo-skeleton-loader`,i),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return i}});
@@ -0,0 +1,79 @@
1
+ import type { ReactiveController, ReactiveControllerHost } from 'lit';
2
+ import type { LuzmoSliderHandle } from '../slider-handle';
3
+ import type { SliderHandleModel, SliderNormalization } from '../types';
4
+ /**
5
+ * The slice of `luzmo-slider` that the handle controller depends on. Keeping it
6
+ * narrow means the controller never reaches into the element's render tree.
7
+ */
8
+ export interface SliderHandleControllerHost extends ReactiveControllerHost, HTMLElement {
9
+ readonly label: string;
10
+ readonly min: number;
11
+ readonly max: number;
12
+ readonly step: number;
13
+ readonly value: number;
14
+ readonly defaultValue?: number;
15
+ readonly normalization: SliderNormalization;
16
+ }
17
+ /**
18
+ * Resolves the slider's slotted `luzmo-slider-handle` elements — or the
19
+ * implicit single handle — into an ordered, render-ready snapshot, and owns
20
+ * the value writes and event dispatch for each one.
21
+ */
22
+ export declare class SliderHandleController implements ReactiveController {
23
+ private readonly _applySingleValue;
24
+ private readonly _formatHandleValue;
25
+ private readonly _formatHandleLabel;
26
+ private readonly _host;
27
+ private _cachedModels?;
28
+ private _attachedHandles;
29
+ private _inputMap;
30
+ activeIndex: number;
31
+ draggingIndex: number;
32
+ constructor(host: SliderHandleControllerHost, _applySingleValue: (value: number) => void, _formatHandleValue: (model: SliderHandleModel) => string, _formatHandleLabel: (handle: LuzmoSliderHandle, index: number) => string);
33
+ hostConnected(): void;
34
+ hostDisconnected(): void;
35
+ /** Resolves the snapshot before the host renders, so `render()` stays pure. */
36
+ hostUpdate(): void;
37
+ hostUpdated(): void;
38
+ get handles(): LuzmoSliderHandle[];
39
+ /**
40
+ * The snapshot the host renders from. Reading it never writes the cache, so
41
+ * `render()` cannot mutate controller state; `hostUpdate()` fills the cache
42
+ * before every render and reads outside an update cycle resolve on demand.
43
+ */
44
+ get models(): readonly SliderHandleModel[];
45
+ get values(): Record<string, number>;
46
+ /** Drops the cached snapshot so the next read recomputes it. */
47
+ invalidate(): void;
48
+ /** Called by a handle whose own properties changed. */
49
+ requestHostUpdate(): void;
50
+ inputForHandle(handle: LuzmoSliderHandle): HTMLInputElement | undefined;
51
+ /**
52
+ * Writes a snapped value to the handle at `index`.
53
+ *
54
+ * @returns whether the stored value actually changed, so callers can skip
55
+ * emitting a value event for a no-op interaction.
56
+ */
57
+ setValue(index: number, rawValue: number): boolean;
58
+ setNormalizedValue(index: number, normalized: number): boolean;
59
+ nearestIndex(normalized: number): number;
60
+ /** Restores a handle's `default-value`. Returns whether anything changed. */
61
+ reset(index: number): boolean;
62
+ dispatchInput(index: number): void;
63
+ dispatchChange(index: number): void;
64
+ formatValue(index: number): string;
65
+ private _eventTarget;
66
+ private _syncInputReferences;
67
+ /**
68
+ * Pushes clamped values back onto the slotted handles after render, so the
69
+ * snapshot never mutates a handle while the template is being built.
70
+ */
71
+ private _commitClampedValues;
72
+ /** Keeps every current handle wired to this controller, and only those. */
73
+ private _syncAttachments;
74
+ private _detachHandles;
75
+ private _resolveModels;
76
+ private _resolveSingleModel;
77
+ private _resolveStep;
78
+ private _uniqueName;
79
+ }
@@ -15,4 +15,4 @@
15
15
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
16
16
  * SOFTWARE.
17
17
  * */
18
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../slider-D8w2ipBg.cjs`);exports.LuzmoSlider=e.t;
18
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../slider-DxliwjT6.cjs");exports.DEFAULT_SLIDER_LABELS=e.r,exports.LuzmoSlider=e.n,exports.LuzmoSliderHandle=e.t;
@@ -1,7 +1,11 @@
1
1
  import { LuzmoSlider } from './slider';
2
+ import { LuzmoSliderHandle } from './slider-handle';
2
3
  declare global {
3
4
  interface HTMLElementTagNameMap {
4
- 'luzmo-slider': LuzmoSlider;
5
+ 'luzmo-slider': LuzmoSlider & HTMLElement;
6
+ 'luzmo-slider-handle': LuzmoSliderHandle & HTMLElement;
5
7
  }
6
8
  }
7
9
  export { LuzmoSlider } from './slider';
10
+ export { LuzmoSliderHandle } from './slider-handle';
11
+ export { DEFAULT_SLIDER_LABELS, type SliderCombinedValueFormatter, type SliderHandleMax, type SliderHandleMin, type SliderHandleValueFormatter, type SliderLabelVisibility, type SliderLabels, type SliderNormalization, type SliderVariant } from './types';
@@ -18,8 +18,8 @@
18
18
  (() => {
19
19
  if (typeof document < "u" && !document.querySelector("style[data-luzmo-vars]")) {
20
20
  let e = document.createElement("style");
21
- e.setAttribute("data-luzmo-vars", ""), e.textContent = "html{--luzmo-animation-duration: 0.15s;--luzmo-border-color: rgba(var(--luzmo-border-color-rgb), 0.1);--luzmo-border-color-hover: rgba(var(--luzmo-border-color-rgb), 0.15);--luzmo-border-color-down: rgba(var(--luzmo-border-color-rgb), 0.3);--luzmo-border-color-focus: rgba(var(--luzmo-border-color-rgb), 0.15);--luzmo-border-color-rgb: 0, 0, 0;--luzmo-border-color-full: rgb(180, 180, 180);--luzmo-border-color-full-hover: color-mix(in oklch, var(--luzmo-border-color-full), black 25%);--luzmo-border-color-full-down: color-mix(in oklch, var(--luzmo-border-color-full), black 45%);--luzmo-border-color-full-focus: color-mix(in oklch, var(--luzmo-border-color-full), black 25%);--luzmo-border-color-disabled: #dddddd;--luzmo-border-radius: 6px;--luzmo-border-radius-s: 4px;--luzmo-border-radius-l: 8px;--luzmo-border-radius-xl: 12px;--luzmo-border-radius-full: 999rem;--luzmo-border-width: 1px;--luzmo-font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", Helvetica, Arial, sans-serif;--luzmo-font-size-xs: 10px;--luzmo-font-size-s: 12px;--luzmo-font-size-m: 14px;--luzmo-font-size: 14px;--luzmo-font-size-l: 16px;--luzmo-font-size-xl: 18px;--luzmo-font-size-xxl: 20px;--luzmo-font-style: normal;--luzmo-line-height: normal;--luzmo-font-weight: 400;--luzmo-font-weight-semibold: 500;--luzmo-font-weight-bold: 600;--luzmo-font-color: #333;--luzmo-font-color-disabled: var(--luzmo-disabled-color);--luzmo-font-color-extra-dimmed: #888;--luzmo-font-color-hover: color-mix(in oklch, var(--luzmo-font-color), black 8%);--luzmo-font-color-down: color-mix(in oklch, var(--luzmo-font-color), black 20%);--luzmo-font-color-focus: color-mix(in oklch, var(--luzmo-font-color), black 8%);--luzmo-primary: #4434ff;--luzmo-primary-hover: color-mix(in oklch, var(--luzmo-primary), black 8%);--luzmo-primary-down: color-mix(in oklch, var(--luzmo-primary), black 20%);--luzmo-primary-focus: color-mix(in oklch, var(--luzmo-primary), black 8%);--luzmo-primary-inverse-color: #ffffff;--luzmo-primary-rgb: 68, 52, 255;--luzmo-background-color: #ffffff;--luzmo-background-color-rgb: 255, 255, 255;--luzmo-background-color-disabled: #eeeeee;--luzmo-background-color-hover: color-mix(in oklch, color-mix(in oklch, var(--luzmo-background-color), var(--luzmo-primary) 5%), black 1.5%);--luzmo-background-color-down: color-mix(in oklch, color-mix(in oklch, var(--luzmo-background-color), var(--luzmo-primary) 7%), black 1%);--luzmo-background-color-focus: color-mix(in oklch, color-mix(in oklch, var(--luzmo-background-color), var(--luzmo-primary) 5%), black 1.5%);--luzmo-background-color-highlight: rgb(240, 240, 240);--luzmo-background-color-highlight-disabled: rgb(245, 245, 245);--luzmo-background-color-highlight-hover: color-mix(in oklch, var(--luzmo-background-color-highlight), black 10%);--luzmo-background-color-highlight-down: color-mix(in oklch, var(--luzmo-background-color-highlight), black 20%);--luzmo-background-color-highlight-focus: color-mix(in oklch, var(--luzmo-background-color-highlight), black 10%);--luzmo-secondary: #d000d0;--luzmo-secondary-hover: color-mix(in oklch, var(--luzmo-secondary), black 8%);--luzmo-secondary-down: color-mix(in oklch, var(--luzmo-secondary), black 20%);--luzmo-secondary-focus: color-mix(in oklch, var(--luzmo-secondary), black 8%);--luzmo-secondary-inverse-color: #ffffff;--luzmo-secondary-rgb: 208, 0, 208;--luzmo-scrollbar-size: 6px;--luzmo-scrollbar-thumb-background: rgba(var(--luzmo-border-color-rgb), 0.3);--luzmo-scrollbar-thumb-border-radius: var(--luzmo-border-radius-s);--luzmo-scrollbar-thumb-hover-background: rgba( var(--luzmo-border-color-rgb), 0.4 );--luzmo-scrollbar-track-background: transparent;--luzmo-scrollbar-track-border-radius: var(--luzmo-border-radius-s);--luzmo-scrollbar-width: thin;--luzmo-negative-color: #ca221c;--luzmo-negative-color-hover: color-mix(in oklch, var(--luzmo-negative-color), black 8%);--luzmo-negative-color-down: color-mix(in oklch, var(--luzmo-negative-color), black 20%);--luzmo-negative-color-focus: color-mix(in oklch, var(--luzmo-negative-color), black 8%);--luzmo-negative-color-rgb: 202, 34, 28;--luzmo-negative-inverse-color: #ffffff;--luzmo-positive-color: rgb(18, 133, 90);--luzmo-positive-color-hover: color-mix(in oklch, var(--luzmo-positive-color), black 8%);--luzmo-positive-color-down: color-mix(in oklch, var(--luzmo-positive-color), black 20%);--luzmo-positive-color-focus: color-mix(in oklch, var(--luzmo-positive-color), black 8%);--luzmo-positive-color-rgb: 18, 133, 90;--luzmo-positive-inverse-color: #ffffff;--luzmo-selected-color: rgb(110, 110, 110);--luzmo-selected-color-hover: color-mix(in oklch, var(--luzmo-selected-color), black 25%);--luzmo-selected-color-down: color-mix(in oklch, var(--luzmo-selected-color), black 45%);--luzmo-selected-color-focus: color-mix(in oklch, var(--luzmo-selected-color), black 25%);--luzmo-selected-color-hard: #1e1e1e;--luzmo-selected-color-hard-hover: color-mix(in oklch, var(--luzmo-selected-color-hard), black 25%);--luzmo-selected-color-hard-down: color-mix(in oklch, var(--luzmo-selected-color-hard), black 45%);--luzmo-selected-color-hard-focus: color-mix(in oklch, var(--luzmo-selected-color-hard), black 25%);--luzmo-informative-color: #1670dd;--luzmo-informative-color-rgb: 22, 112, 221;--luzmo-notice-color: rgb(229, 127, 0);--luzmo-seafoam-color: rgb(0, 140, 140);--luzmo-indigo-color: rgb(68, 52, 255);--luzmo-purple-color: rgb(112, 48, 210);--luzmo-fuchsia-color: rgb(205, 30, 170);--luzmo-magenta-color: rgb(203, 36, 98);--luzmo-yellow-color: rgb(228, 208, 0);--luzmo-gray-color: rgb(110, 110, 110);--luzmo-red-color: rgb(202, 34, 28);--luzmo-orange-color: rgb(218, 123, 17);--luzmo-chartreuse-color: rgb(85, 135, 0);--luzmo-celery-color: rgb(48, 134, 22);--luzmo-green-color: rgb(18, 133, 90);--luzmo-cyan-color: rgb(0, 134, 180);--luzmo-blue-color: rgb(22, 112, 221);--luzmo-disabled-color: #aaaaaa;--luzmo-spacing-1: 2px;--luzmo-spacing-2: 4px;--luzmo-spacing-3: 8px;--luzmo-spacing-4: 12px;--luzmo-spacing-5: 16px;--luzmo-indicator-gap: 2px;--luzmo-indicator-width: 1px;--luzmo-indicator-color: var(--luzmo-primary);--luzmo-component-height-xxs: 20px;--luzmo-component-height-xs: 24px;--luzmo-component-height-s: 28px;--luzmo-component-height: 32px;--luzmo-component-height-l: 40px;--luzmo-component-height-xl: 48px;--luzmo-component-height-xxl: 64px;--luzmo-icon-size-xxs: 10px;--luzmo-icon-size-xs: 12px;--luzmo-icon-size-s: 14px;--luzmo-icon-size-m: 16px;--luzmo-icon-size-l: 18px;--luzmo-icon-size-xl: 20px;--luzmo-icon-size-xxl: 32px}", document.head.appendChild(e);
21
+ e.setAttribute("data-luzmo-vars", ""), e.textContent = "html{--luzmo-animation-duration: 0.15s;--luzmo-border-color: rgba(var(--luzmo-border-color-rgb), 0.1);--luzmo-border-color-hover: rgba(var(--luzmo-border-color-rgb), 0.15);--luzmo-border-color-down: rgba(var(--luzmo-border-color-rgb), 0.3);--luzmo-border-color-focus: rgba(var(--luzmo-border-color-rgb), 0.15);--luzmo-border-color-rgb: 0, 0, 0;--luzmo-border-color-full: rgb(180, 180, 180);--luzmo-border-color-full-hover: color-mix(in oklch, var(--luzmo-border-color-full), black 25%);--luzmo-border-color-full-down: color-mix(in oklch, var(--luzmo-border-color-full), black 45%);--luzmo-border-color-full-focus: color-mix(in oklch, var(--luzmo-border-color-full), black 25%);--luzmo-border-color-disabled: #dddddd;--luzmo-border-radius: 6px;--luzmo-border-radius-s: 4px;--luzmo-border-radius-l: 8px;--luzmo-border-radius-xl: 12px;--luzmo-border-radius-full: 999rem;--luzmo-border-width: 1px;--luzmo-shadow-color-rgb: 0, 0, 0;--luzmo-shadow-opacity: 0.1;--luzmo-shadow-color: rgba( var(--luzmo-shadow-color-rgb), var(--luzmo-shadow-opacity) );--luzmo-font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", Helvetica, Arial, sans-serif;--luzmo-font-size-xs: 10px;--luzmo-font-size-s: 12px;--luzmo-font-size-m: 14px;--luzmo-font-size: 14px;--luzmo-font-size-l: 16px;--luzmo-font-size-xl: 18px;--luzmo-font-size-xxl: 20px;--luzmo-font-style: normal;--luzmo-line-height: normal;--luzmo-font-weight: 400;--luzmo-font-weight-semibold: 500;--luzmo-font-weight-bold: 600;--luzmo-font-color: #333;--luzmo-font-color-disabled: var(--luzmo-disabled-color);--luzmo-font-color-extra-dimmed: #888;--luzmo-font-color-hover: color-mix(in oklch, var(--luzmo-font-color), black 8%);--luzmo-font-color-down: color-mix(in oklch, var(--luzmo-font-color), black 20%);--luzmo-font-color-focus: color-mix(in oklch, var(--luzmo-font-color), black 8%);--luzmo-primary: #4434ff;--luzmo-primary-hover: color-mix(in oklch, var(--luzmo-primary), black 8%);--luzmo-primary-down: color-mix(in oklch, var(--luzmo-primary), black 20%);--luzmo-primary-focus: color-mix(in oklch, var(--luzmo-primary), black 8%);--luzmo-primary-inverse-color: #ffffff;--luzmo-accent-on-subtle-color: var(--luzmo-primary);--luzmo-primary-rgb: 68, 52, 255;--luzmo-background-color: #ffffff;--luzmo-background-color-rgb: 255, 255, 255;--luzmo-background-color-disabled: #eeeeee;--luzmo-background-color-hover: color-mix(in oklch, color-mix(in oklch, var(--luzmo-background-color), var(--luzmo-primary) 5%), black 1.5%);--luzmo-background-color-down: color-mix(in oklch, color-mix(in oklch, var(--luzmo-background-color), var(--luzmo-primary) 7%), black 1%);--luzmo-background-color-focus: color-mix(in oklch, color-mix(in oklch, var(--luzmo-background-color), var(--luzmo-primary) 5%), black 1.5%);--luzmo-background-color-highlight: rgb(240, 240, 240);--luzmo-background-color-highlight-disabled: rgb(245, 245, 245);--luzmo-background-color-highlight-hover: color-mix(in oklch, var(--luzmo-background-color-highlight), black 10%);--luzmo-background-color-highlight-down: color-mix(in oklch, var(--luzmo-background-color-highlight), black 20%);--luzmo-background-color-highlight-focus: color-mix(in oklch, var(--luzmo-background-color-highlight), black 10%);--luzmo-secondary: #d000d0;--luzmo-secondary-hover: color-mix(in oklch, var(--luzmo-secondary), black 8%);--luzmo-secondary-down: color-mix(in oklch, var(--luzmo-secondary), black 20%);--luzmo-secondary-focus: color-mix(in oklch, var(--luzmo-secondary), black 8%);--luzmo-secondary-inverse-color: #ffffff;--luzmo-secondary-rgb: 208, 0, 208;--luzmo-scrollbar-size: 6px;--luzmo-scrollbar-thumb-background: rgba(var(--luzmo-border-color-rgb), 0.3);--luzmo-scrollbar-thumb-border-radius: var(--luzmo-border-radius-s);--luzmo-scrollbar-thumb-hover-background: rgba( var(--luzmo-border-color-rgb), 0.4 );--luzmo-scrollbar-track-background: transparent;--luzmo-scrollbar-track-border-radius: var(--luzmo-border-radius-s);--luzmo-scrollbar-width: thin;--luzmo-negative-color: #ca221c;--luzmo-negative-color-hover: color-mix(in oklch, var(--luzmo-negative-color), black 8%);--luzmo-negative-color-down: color-mix(in oklch, var(--luzmo-negative-color), black 20%);--luzmo-negative-color-focus: color-mix(in oklch, var(--luzmo-negative-color), black 8%);--luzmo-negative-on-subtle-color: var(--luzmo-negative-color);--luzmo-negative-color-rgb: 202, 34, 28;--luzmo-negative-inverse-color: #ffffff;--luzmo-positive-color: rgb(18, 133, 90);--luzmo-positive-color-hover: color-mix(in oklch, var(--luzmo-positive-color), black 8%);--luzmo-positive-color-down: color-mix(in oklch, var(--luzmo-positive-color), black 20%);--luzmo-positive-color-focus: color-mix(in oklch, var(--luzmo-positive-color), black 8%);--luzmo-positive-on-subtle-color: color-mix( in oklch, var(--luzmo-positive-color), var(--luzmo-font-color) 11% );--luzmo-positive-color-rgb: 18, 133, 90;--luzmo-positive-inverse-color: #ffffff;--luzmo-selected-color: rgb(110, 110, 110);--luzmo-selected-color-hover: color-mix(in oklch, var(--luzmo-selected-color), black 25%);--luzmo-selected-color-down: color-mix(in oklch, var(--luzmo-selected-color), black 45%);--luzmo-selected-color-focus: color-mix(in oklch, var(--luzmo-selected-color), black 25%);--luzmo-selected-color-hard: #1e1e1e;--luzmo-selected-color-hard-hover: color-mix(in oklch, var(--luzmo-selected-color-hard), black 25%);--luzmo-selected-color-hard-down: color-mix(in oklch, var(--luzmo-selected-color-hard), black 45%);--luzmo-selected-color-hard-focus: color-mix(in oklch, var(--luzmo-selected-color-hard), black 25%);--luzmo-neutral-on-subtle-color: var(--luzmo-selected-color-hard);--luzmo-informative-color: #1670dd;--luzmo-informative-color-hover: color-mix(in oklch, var(--luzmo-informative-color), black 8%);--luzmo-informative-color-down: color-mix(in oklch, var(--luzmo-informative-color), black 20%);--luzmo-informative-color-focus: var(--luzmo-informative-color-hover);--luzmo-informative-on-subtle-color: color-mix( in oklch, var(--luzmo-informative-color), var(--luzmo-font-color) 9% );--luzmo-informative-color-rgb: 22, 112, 221;--luzmo-informative-inverse-color: #ffffff;--luzmo-notice-color: rgb(229, 127, 0);--luzmo-notice-color-hover: color-mix(in oklch, var(--luzmo-notice-color), black 8%);--luzmo-notice-color-down: color-mix(in oklch, var(--luzmo-notice-color), black 20%);--luzmo-notice-color-focus: var(--luzmo-notice-color-hover);--luzmo-notice-on-subtle-color: color-mix( in oklch, var(--luzmo-notice-color), var(--luzmo-font-color) 40% );--luzmo-notice-inverse-color: var(--luzmo-selected-color-hard);--luzmo-seafoam-color: rgb(0, 140, 140);--luzmo-indigo-color: rgb(68, 52, 255);--luzmo-purple-color: rgb(112, 48, 210);--luzmo-fuchsia-color: rgb(205, 30, 170);--luzmo-magenta-color: rgb(203, 36, 98);--luzmo-yellow-color: rgb(228, 208, 0);--luzmo-gray-color: rgb(110, 110, 110);--luzmo-red-color: rgb(202, 34, 28);--luzmo-orange-color: rgb(218, 123, 17);--luzmo-chartreuse-color: rgb(85, 135, 0);--luzmo-celery-color: rgb(48, 134, 22);--luzmo-green-color: rgb(18, 133, 90);--luzmo-cyan-color: rgb(0, 134, 180);--luzmo-blue-color: rgb(22, 112, 221);--luzmo-disabled-color: #aaaaaa;--luzmo-spacing-1: 2px;--luzmo-spacing-2: 4px;--luzmo-spacing-3: 8px;--luzmo-spacing-4: 12px;--luzmo-spacing-5: 16px;--luzmo-indicator-gap: 2px;--luzmo-indicator-width: 1px;--luzmo-indicator-color: var(--luzmo-primary);--luzmo-component-height-xxs: 20px;--luzmo-component-height-xs: 24px;--luzmo-component-height-s: 28px;--luzmo-component-height: 32px;--luzmo-component-height-l: 40px;--luzmo-component-height-xl: 48px;--luzmo-component-height-xxl: 64px;--luzmo-icon-size-xxs: 10px;--luzmo-icon-size-xs: 12px;--luzmo-icon-size-s: 14px;--luzmo-icon-size-m: 16px;--luzmo-icon-size-l: 18px;--luzmo-icon-size-xl: 20px;--luzmo-icon-size-xxl: 32px}html.dark,html.dark-theme,:where(.dark-theme){--luzmo-border-color: rgba(var(--luzmo-border-color-rgb), 0.2);--luzmo-border-color-hover: rgba(var(--luzmo-border-color-rgb), 0.3);--luzmo-border-color-down: rgba(var(--luzmo-border-color-rgb), 0.35);--luzmo-border-color-focus: rgba(var(--luzmo-border-color-rgb), 0.3);--luzmo-border-color-rgb: 255, 255, 255;--luzmo-border-color-full: #4c4c57;--luzmo-border-color-full-hover: color-mix(in oklch, var(--luzmo-border-color-full), white 20%);--luzmo-border-color-full-down: color-mix(in oklch, var(--luzmo-border-color-full), white 35%);--luzmo-border-color-full-focus: color-mix(in oklch, var(--luzmo-border-color-full), white 20%);--luzmo-border-color-disabled: #333;--luzmo-shadow-opacity: 0.35;--luzmo-shadow-color: rgba( var(--luzmo-shadow-color-rgb), var(--luzmo-shadow-opacity) );--luzmo-font-color: #ced4da;--luzmo-font-color-extra-dimmed: #72787f;--luzmo-font-color-hover: color-mix(in oklch, var(--luzmo-font-color), white 8%);--luzmo-font-color-down: color-mix(in oklch, var(--luzmo-font-color), white 20%);--luzmo-font-color-focus: color-mix(in oklch, var(--luzmo-font-color), white 8%);--luzmo-primary: #7b90ff;--luzmo-primary-hover: color-mix(in oklch, var(--luzmo-primary), white 12%);--luzmo-primary-down: color-mix(in oklch, var(--luzmo-primary), white 24%);--luzmo-primary-focus: color-mix(in oklch, var(--luzmo-primary), white 12%);--luzmo-accent-on-subtle-color: color-mix( in oklch, var(--luzmo-primary), var(--luzmo-font-color) 1% );--luzmo-background-color: #262626;--luzmo-background-color-rgb: 0, 0, 0;--luzmo-background-color-disabled: #939ea8;--luzmo-background-color-hover: color-mix(in oklch, color-mix(in oklch, var(--luzmo-background-color), var(--luzmo-primary) 3%), white 14%);--luzmo-background-color-down: color-mix(in oklch, color-mix(in oklch, var(--luzmo-background-color), var(--luzmo-primary) 3%), white 25%);--luzmo-background-color-focus: color-mix(in oklch, color-mix(in oklch, var(--luzmo-background-color), var(--luzmo-primary) 3%), white 14%);--luzmo-background-color-highlight: rgb(72, 72, 72);--luzmo-background-color-highlight-disabled: #313131;--luzmo-background-color-highlight-hover: color-mix(in oklch, var(--luzmo-background-color-highlight), white 20%);--luzmo-background-color-highlight-down: color-mix(in oklch, var(--luzmo-background-color-highlight), white 35%);--luzmo-background-color-highlight-focus: color-mix(in oklch, var(--luzmo-background-color-highlight), white 20%);--luzmo-primary-inverse-color: var(--luzmo-background-color);--luzmo-indicator-color: var(--luzmo-primary);--luzmo-primary-rgb: 94, 113, 208;--luzmo-secondary: #ebff00;--luzmo-secondary-inverse-color: #333;--luzmo-secondary-rgb: 200, 219, 0;--luzmo-negative-color: #f76d74;--luzmo-negative-color-hover: color-mix(in oklch, var(--luzmo-negative-color), white 12%);--luzmo-negative-color-down: color-mix(in oklch, var(--luzmo-negative-color), white 24%);--luzmo-negative-color-focus: color-mix(in oklch, var(--luzmo-negative-color), white 12%);--luzmo-negative-on-subtle-color: color-mix( in oklch, var(--luzmo-negative-color), var(--luzmo-font-color) 40% );--luzmo-negative-color-rgb: 247, 109, 116;--luzmo-negative-inverse-color: var(--luzmo-background-color);--luzmo-positive-color: #39a875;--luzmo-positive-color-hover: color-mix(in oklch, var(--luzmo-positive-color), white 12%);--luzmo-positive-color-down: color-mix(in oklch, var(--luzmo-positive-color), white 24%);--luzmo-positive-color-focus: color-mix(in oklch, var(--luzmo-positive-color), white 12%);--luzmo-positive-on-subtle-color: color-mix( in oklch, var(--luzmo-positive-color), var(--luzmo-font-color) 35% );--luzmo-positive-color-rgb: 57, 168, 117;--luzmo-positive-inverse-color: var(--luzmo-background-color);--luzmo-selected-color: #afafaf;--luzmo-selected-color-hover: color-mix(in oklch, var(--luzmo-selected-color), white 20%);--luzmo-selected-color-down: color-mix(in oklch, var(--luzmo-selected-color), white 35%);--luzmo-selected-color-focus: color-mix(in oklch, var(--luzmo-selected-color), white 20%);--luzmo-selected-color-hard: #e9e9e9;--luzmo-selected-color-hard-hover: color-mix(in oklch, var(--luzmo-selected-color-hard), white 20%);--luzmo-selected-color-hard-down: color-mix(in oklch, var(--luzmo-selected-color-hard), white 35%);--luzmo-selected-color-hard-focus: color-mix(in oklch, var(--luzmo-selected-color-hard), white 20%);--luzmo-neutral-on-subtle-color: var(--luzmo-selected-color-hard);--luzmo-informative-color: #5c94ff;--luzmo-informative-color-hover: color-mix(in oklch, var(--luzmo-informative-color), white 12%);--luzmo-informative-color-down: color-mix(in oklch, var(--luzmo-informative-color), white 24%);--luzmo-informative-color-focus: var(--luzmo-informative-color-hover);--luzmo-informative-on-subtle-color: color-mix( in oklch, var(--luzmo-informative-color), var(--luzmo-font-color) 36% );--luzmo-informative-color-rgb: 92, 148, 255;--luzmo-informative-inverse-color: var(--luzmo-background-color);--luzmo-notice-color-hover: color-mix(in oklch, var(--luzmo-notice-color), white 12%);--luzmo-notice-color-down: color-mix(in oklch, var(--luzmo-notice-color), white 24%);--luzmo-notice-color-focus: var(--luzmo-notice-color-hover);--luzmo-notice-on-subtle-color: var(--luzmo-notice-color);--luzmo-notice-inverse-color: var(--luzmo-background-color);--luzmo-disabled-color: #75797b}", document.head.appendChild(e);
22
22
  }
23
23
  })();
24
- import { t as e } from "../slider-Fy-VeKrU.js";
25
- export { e as LuzmoSlider };
24
+ import { n as e, r as t, t as n } from "../slider-B7QAhDTM.js";
25
+ export { t as DEFAULT_SLIDER_LABELS, e as LuzmoSlider, n as LuzmoSliderHandle };
@@ -0,0 +1,36 @@
1
+ import { TemplateResult } from 'lit';
2
+ import type { SliderHandleModel, SliderLabelVisibility } from './types';
3
+ type HandleTemplateOptions = {
4
+ model: SliderHandleModel;
5
+ index: number;
6
+ total: number;
7
+ grouped: boolean;
8
+ label: string;
9
+ appliedLabel: string;
10
+ helpTextId: string | undefined;
11
+ labelVisibility: SliderLabelVisibility;
12
+ formattedValue: string;
13
+ activeIndex: number;
14
+ draggingIndex: number;
15
+ focusedIndex: number;
16
+ invalid: boolean;
17
+ readonly: boolean;
18
+ disabled: boolean;
19
+ };
20
+ export declare function renderSliderHandle({ model, index, total, grouped, label, appliedLabel, helpTextId, labelVisibility, formattedValue, activeIndex, draggingIndex, focusedIndex, invalid, readonly, disabled }: HandleTemplateOptions): TemplateResult;
21
+ type EditableFieldTemplateOptions = {
22
+ model: SliderHandleModel;
23
+ label: string;
24
+ formatOptions: Intl.NumberFormatOptions;
25
+ size: string;
26
+ disabled: boolean;
27
+ invalid: boolean;
28
+ readonly: boolean;
29
+ hideStepper: boolean;
30
+ quiet: boolean;
31
+ indeterminate: boolean;
32
+ onInput: (event: Event) => void;
33
+ onChange: (event: Event) => void;
34
+ };
35
+ export declare function renderSliderEditableField({ model, label, formatOptions, size, disabled, invalid, readonly, hideStepper, quiet, indeterminate, onInput, onChange }: EditableFieldTemplateOptions): TemplateResult;
36
+ export {};
@@ -0,0 +1,62 @@
1
+ import { nothing, PropertyValues } from 'lit';
2
+ import { LuzmoElement } from '../../utils/base';
3
+ import type { SliderHandleMax, SliderHandleMin, SliderHandleValueFormatter, SliderNormalization } from './types';
4
+ /** The controller surface a handle needs; see `SliderHandleController`. */
5
+ type HandleHostController = {
6
+ inputForHandle(handle: LuzmoSliderHandle): HTMLInputElement | undefined;
7
+ requestHostUpdate(): void;
8
+ };
9
+ /**
10
+ * A value model for a handle slotted into `luzmo-slider`. It renders nothing
11
+ * itself; the parent slider draws the thumb and owns the interaction.
12
+ *
13
+ * @element luzmo-slider-handle
14
+ * @attr default-value - Value restored by Escape or double-click.
15
+ * @property normalization - Per-handle value normalization strategy.
16
+ * @property getAriaHandleText - Per-handle value formatter.
17
+ * @fires {Event} input - The handle value changed during user interaction.
18
+ * @fires {Event} change - The handle value change was committed.
19
+ */
20
+ export declare class LuzmoSliderHandle extends LuzmoElement {
21
+ #private;
22
+ /**
23
+ * Unique key in the parent slider's `values` object. When omitted or
24
+ * duplicated the slider derives a positional key such as `handle2`.
25
+ */
26
+ name: string;
27
+ /**
28
+ * Accessible name that distinguishes this handle from its siblings. Falls
29
+ * back to an explicitly authored `name`, then the slider label and position.
30
+ */
31
+ label: string;
32
+ /** Current handle value. Defaults to the midpoint of its own range. */
33
+ value: number;
34
+ /** Value restored by Escape or a double-click on this handle. */
35
+ defaultValue?: number;
36
+ /** Lower bound, or `previous` to stay above the preceding handle. */
37
+ min?: SliderHandleMin;
38
+ /** Upper bound, or `next` to stay below the following handle. */
39
+ max?: SliderHandleMax;
40
+ /** Value interval for this handle; falls back to the slider's `step`. */
41
+ step?: number;
42
+ /** Optional CSS color used for this handle's fill and border. */
43
+ color: string;
44
+ /** Per-handle options passed to `Intl.NumberFormat`. */
45
+ formatOptions?: Intl.NumberFormatOptions;
46
+ /** Per-handle value normalization strategy. */
47
+ set normalization(value: SliderNormalization | undefined);
48
+ get normalization(): SliderNormalization;
49
+ /** Formats this handle's tooltip, label, and `aria-valuetext`. */
50
+ getAriaHandleText?: SliderHandleValueFormatter;
51
+ private _normalization?;
52
+ /** @internal Wires this handle to its parent slider's handle controller. */
53
+ attachController(controller: HandleHostController): void;
54
+ /** @internal Releases the parent slider's handle controller. */
55
+ detachController(controller: HandleHostController): void;
56
+ /** @internal Whether a parent slider currently drives this handle. */
57
+ get hasController(): boolean;
58
+ focus(options?: FocusOptions): void;
59
+ protected render(): typeof nothing;
60
+ protected updated(changes: PropertyValues<this>): void;
61
+ }
62
+ export {};
@@ -0,0 +1,16 @@
1
+ import type { SliderNormalization } from './types';
2
+ /**
3
+ * Upper bound on generated ticks. A very small `tick-step` over a wide range
4
+ * would otherwise build an array large enough to stall the page, so tick
5
+ * rendering is dropped instead.
6
+ */
7
+ export declare const MAX_TICK_COUNT = 250;
8
+ export declare const defaultNormalization: SliderNormalization;
9
+ export declare const interpolate: (template: string, replacements: Record<string, string>) => string;
10
+ export declare const decimalPlaces: (value: number) => number;
11
+ export declare const clamp: (value: number, min: number, max: number) => number;
12
+ export declare const snapValue: (value: number, min: number, max: number, step: number) => number;
13
+ export declare const normalizeValue: (value: number, min: number, max: number, normalization?: SliderNormalization) => number;
14
+ export declare const denormalizeValue: (value: number, min: number, max: number, step: number, normalization?: SliderNormalization) => number;
15
+ export declare const createTicks: (min: number, max: number, tickStep: number) => number[];
16
+ export declare const fillBounds: (value: number, min: number, max: number, fillStart: number | true | undefined, normalization?: SliderNormalization) => [number, number];
@@ -0,0 +1,6 @@
1
+ import type { NumberFormatter } from '@internationalized/number';
2
+ import { nothing, TemplateResult } from 'lit';
3
+ import type { SliderHandleModel } from './types';
4
+ export declare function renderSliderTicks(ticks: readonly number[], min: number, max: number, formatter: NumberFormatter, showLabels: boolean): TemplateResult | typeof nothing;
5
+ export declare function renderSliderFill(models: readonly SliderHandleModel[], fillStart: number | true | undefined): TemplateResult | typeof nothing;
6
+ export declare function renderSliderRamp(models: readonly SliderHandleModel[], fillStart: number | true | undefined, hasFill: boolean): TemplateResult;
@@ -1,26 +1,204 @@
1
- import { API as NoUiSlider } from 'nouislider';
2
- import { LuzmoElement } from '../../utils/base';
3
- declare const LuzmoSlider_base: typeof LuzmoElement & {
1
+ import { CSSResultArray, PropertyValues, TemplateResult } from 'lit';
2
+ import { Focusable } from '../../utils/focusable';
3
+ import '../number-field';
4
+ import { type SliderCombinedValueFormatter, type SliderHandleValueFormatter, type SliderLabelVisibility, type SliderLabels, type SliderNormalization, type SliderVariant } from './types';
5
+ declare const LuzmoSlider_base: typeof Focusable & {
4
6
  new (...args: any[]): import("../..").SizedElementInterface;
5
7
  prototype: import("../..").SizedElementInterface;
8
+ } & {
9
+ new (...args: any[]): import("../text-field/manage-help-text").HelpTextElementInterface;
10
+ prototype: import("../text-field/manage-help-text").HelpTextElementInterface;
6
11
  };
12
+ /**
13
+ * A numeric slider with one or more handles.
14
+ *
15
+ * @element luzmo-slider
16
+ * @slot handle - One or more `luzmo-slider-handle` value models.
17
+ * @slot help-text - Descriptive text shown below the slider.
18
+ * @slot negative-help-text - Error text shown below the slider when `invalid`.
19
+ * @attr default-value - Value restored by Escape or double-click.
20
+ * @attr label-visibility - `none` or `value`.
21
+ * @attr fill-start - Optional numeric fill origin; bare means midpoint.
22
+ * @attr tick-step - Tick interval; falls back to `step`.
23
+ * @attr tick-labels - Displays formatted tick labels.
24
+ * @attr hide-stepper - Hides the editable number field's stepper buttons.
25
+ * @fires {Event} input - The value changes during user interaction.
26
+ * @fires {Event} change - A user value change is committed.
27
+ * @cssprop --luzmo-slider-item-height - Overall control height.
28
+ * @cssprop --luzmo-slider-font-family - Font family for labels and ticks.
29
+ * @cssprop --luzmo-slider-track-height - Track thickness.
30
+ * @cssprop --luzmo-slider-fill-background - Fill background; takes a colour or
31
+ * a gradient and applies to regular and ramp tracks.
32
+ * @cssprop --luzmo-slider-min-inline-size - Minimum inline size.
33
+ * @cssprop --luzmo-slider-top-to-track - Vertical offset of the track.
34
+ * @cssprop --luzmo-slider-top-to-handle - Vertical offset of the handles.
35
+ * @cssprop --luzmo-slider-edge-to-handle - Inline offset of the handles.
36
+ * @cssprop --luzmo-slider-handle-size - Handle size before scaling.
37
+ * @cssprop --luzmo-slider-handle-scale - Scale applied to the handle size.
38
+ * @cssprop --luzmo-slider-background-color-hover - Handle hover fill.
39
+ * @cssprop --luzmo-slider-background-color-disabled - Disabled track fill.
40
+ * @cssprop --luzmo-slider-background-color-disabled-hover - Disabled handle fill.
41
+ * @cssprop --luzmo-slider-tooltip-font-size - Value tooltip font size.
42
+ */
7
43
  export declare class LuzmoSlider extends LuzmoSlider_base {
8
- static styles: import("lit").CSSResult[];
9
- get _slider(): HTMLDivElement | null;
44
+ static get styles(): CSSResultArray;
45
+ /** Accessible name for the slider and its single handle. */
10
46
  label: string;
11
- value: number;
12
- min: number;
13
- max: number;
14
- step: number;
15
- disabled: boolean;
16
- debounce: number;
17
- noUiSlider: NoUiSlider;
18
- debounceTimeout: any;
19
- _doingUpdate: boolean;
20
- firstUpdated(): void;
21
- private _applyHandleLabels;
22
- updated(changedProperties: Map<string, any>): void;
23
- private setValue;
24
- render(): import("lit-html").TemplateResult<1>;
47
+ /** Localizable copy used to name otherwise-unlabelled range handles. */
48
+ labels: SliderLabels;
49
+ private _appliedLabel;
50
+ /**
51
+ * Receives the text from a `luzmo-field-label` that targets this slider.
52
+ * The field label remains responsible for rendering and positioning itself.
53
+ */
54
+ applyFocusElementLabel: (value: string) => void;
55
+ /**
56
+ * The value used when no handles are slotted. Reading it while unset
57
+ * resolves to the midpoint of the current range.
58
+ */
59
+ set value(value: number);
60
+ get value(): number;
61
+ /** The inclusive lower bound. Non-finite input falls back to `0`. */
62
+ set min(value: number);
63
+ get min(): number;
64
+ /**
65
+ * The inclusive upper bound. A bound that does not sit above `min` falls
66
+ * back to `min` plus 100.
67
+ */
68
+ set max(value: number);
69
+ get max(): number;
70
+ /** The amount changed by an arrow key or a single pointer step. */
71
+ set step(value: number);
72
+ get step(): number;
73
+ /** Value restored by Escape or a double-click on the handle. */
74
+ defaultValue?: number;
75
+ /** Fill treatment of the track or ramp. */
76
+ set variant(value: SliderVariant);
77
+ get variant(): SliderVariant;
78
+ /** Uses a widening ramp independently of fill, ticks, and handle count. */
79
+ ramp: boolean;
80
+ /** Displays ticks independently of fill, track shape, and handle count. */
81
+ ticks: boolean;
82
+ /** Controls which persistent text and value labels are displayed. */
83
+ set labelVisibility(value: SliderLabelVisibility);
84
+ get labelVisibility(): SliderLabelVisibility;
85
+ /** Numeric fill origin, or the midpoint when used as a bare attribute. */
86
+ fillStart?: number | true;
87
+ /**
88
+ * Tick interval; falls back to `step`. An interval that would produce more
89
+ * than 250 ticks renders none.
90
+ */
91
+ set tickStep(value: number);
92
+ get tickStep(): number;
93
+ /** Displays localized labels below ticks. */
94
+ tickLabels: boolean;
95
+ /** Displays a synchronized number field for single-handle sliders. */
96
+ editable: boolean;
97
+ /** Hides the editable number field's stepper buttons. */
98
+ hideStepper: boolean;
99
+ /** Renders the editable number field without its field chrome. */
100
+ quiet: boolean;
101
+ /** Displays an indeterminate value until the next interaction. */
102
+ indeterminate: boolean;
103
+ /** Whether the value held by the slider is invalid. */
104
+ invalid: boolean;
105
+ /** Prevents value changes while keeping the slider focusable. */
106
+ readonly: boolean;
107
+ /** Property-only options passed to `Intl.NumberFormat` for every handle. */
108
+ formatOptions: Intl.NumberFormatOptions;
109
+ /** Maps values onto track positions so the scale can be non-linear. */
110
+ set normalization(value: SliderNormalization | undefined);
111
+ get normalization(): SliderNormalization;
112
+ /** Formats one handle's tooltip, label, and `aria-valuetext`. */
113
+ set getAriaHandleText(value: SliderHandleValueFormatter | undefined);
114
+ get getAriaHandleText(): SliderHandleValueFormatter;
115
+ /**
116
+ * Combines every handle's formatted value for the end-of-slider label.
117
+ * The default uses `Intl.ListFormat` on the resolved language.
118
+ */
119
+ set getAriaValueText(value: SliderCombinedValueFormatter | undefined);
120
+ get getAriaValueText(): SliderCombinedValueFormatter;
121
+ private rangeInputs;
122
+ private readonly _languageResolver;
123
+ private readonly _handleController;
124
+ private _rawValue;
125
+ private _rawMin;
126
+ private _rawMax;
127
+ private _rawStep;
128
+ private _rawTickStep;
129
+ private _rawVariant;
130
+ private _rawLabelVisibility;
131
+ private _focusedIndex;
132
+ private _dragStartValue?;
133
+ private _capturedPointer?;
134
+ private _formatterCache;
135
+ private _formatterCacheLanguage?;
136
+ private _pendingCommits;
137
+ private _normalization?;
138
+ private _getAriaHandleText?;
139
+ private _getAriaValueText?;
140
+ private readonly _defaultAriaHandleText;
141
+ private readonly _defaultAriaValueText;
142
+ /** The current value of every handle, keyed by its resolved `name`. */
143
+ get values(): Record<string, number>;
144
+ get focusElement(): HTMLElement;
145
+ private _applySingleValue;
146
+ private _normalizeRawValue;
147
+ private _formatHandleValue;
148
+ private _formatHandleLabel;
149
+ disconnectedCallback(): void;
150
+ private _numberFormatter;
151
+ private _withDefaultPrecision;
152
+ /**
153
+ * Falls back to the same options without `style`/`unit` when the runtime
154
+ * rejects them. Consumers needing an unsupported unit supply their own
155
+ * `getAriaHandleText` rather than relying on appended text, which no
156
+ * locale-aware formatter can position correctly.
157
+ */
158
+ private _createNumberFormatter;
159
+ private _clearNumberFormatterCache;
160
+ private _formatValueList;
161
+ private get _formattedValues();
162
+ private get _combinedValueText();
163
+ /**
164
+ * Handle indices address a different handle after the slot changes, so any
165
+ * interaction in flight is abandoned rather than redirected.
166
+ */
167
+ private handleSlotChange;
168
+ private _normalizedPointerValue;
169
+ private _capturePointer;
170
+ private _releaseCapturedPointer;
171
+ private _endDrag;
172
+ private handlePointerDown;
173
+ private handlePointerMove;
174
+ private handlePointerUp;
175
+ /**
176
+ * A pointer capture lost to the browser (a gesture taken over by scrolling,
177
+ * a device disconnecting) ends the drag on the same terms as a cancellation.
178
+ * Releasing the capture ourselves also fires this, but only after the drag
179
+ * has already been cleared, so the guard below makes that a no-op.
180
+ */
181
+ private handleLostPointerCapture;
182
+ /** A cancelled pointer reverts to the pre-drag value and commits nothing. */
183
+ private handlePointerCancel;
184
+ private _applyInputValue;
185
+ private _commitValue;
186
+ private handleNativeInput;
187
+ private handleNativeChange;
188
+ private handleKeyDown;
189
+ private handleTrackInput;
190
+ private handleTrackChange;
191
+ private handleTrackKeyDown;
192
+ private handleTrackFocusIn;
193
+ private handleTrackFocusOut;
194
+ private handleTrackDoubleClick;
195
+ private handleNumberInput;
196
+ private handleNumberChange;
197
+ private get _hasFill();
198
+ private _renderTicks;
199
+ private _renderFill;
200
+ protected render(): TemplateResult;
201
+ protected willUpdate(changes: PropertyValues): void;
202
+ protected updated(changes: PropertyValues): void;
25
203
  }
26
204
  export {};
@@ -0,0 +1,57 @@
1
+ import type { NumberFormatter } from '@internationalized/number';
2
+ import type { LuzmoSliderHandle } from './slider-handle';
3
+ export type SliderVariant = 'filled' | 'unfilled';
4
+ export type SliderLabelVisibility = 'none' | 'value';
5
+ export type SliderLabels = {
6
+ /** `{label}` and `{position}` are replaced. */
7
+ handleName?: string;
8
+ };
9
+ export declare const DEFAULT_SLIDER_LABELS: Required<SliderLabels>;
10
+ /** Lower bound of a slotted handle; `previous` follows the handle before it. */
11
+ export type SliderHandleMin = number | 'previous';
12
+ /** Upper bound of a slotted handle; `next` follows the handle after it. */
13
+ export type SliderHandleMax = number | 'next';
14
+ /**
15
+ * Maps a value onto the 0–1 track position and back, so a slider can present
16
+ * a non-linear scale.
17
+ */
18
+ export type SliderNormalization = {
19
+ toNormalized(value: number, min: number, max: number): number;
20
+ fromNormalized(value: number, min: number, max: number): number;
21
+ };
22
+ /** Formats one handle's value for its tooltip, label, and `aria-valuetext`. */
23
+ export type SliderHandleValueFormatter = (value: number, formatter: NumberFormatter) => string;
24
+ /**
25
+ * Combines every handle's formatted value into the single string used by the
26
+ * end-of-slider value label. Keys are handle names.
27
+ */
28
+ export type SliderCombinedValueFormatter = (values: Map<string, string>) => string;
29
+ /** A resolved, render-ready snapshot of one handle. */
30
+ export type SliderHandleModel = {
31
+ /** The slotted element, or `undefined` for the implicit single handle. */
32
+ handle?: LuzmoSliderHandle;
33
+ /** Unique key in the slider's `values` object. */
34
+ name: string;
35
+ /** Accessible name for this handle. */
36
+ label: string;
37
+ /** Snapped value inside the effective bounds. */
38
+ value: number;
39
+ /** Lower bound used for track positioning. */
40
+ min: number;
41
+ /** Upper bound used for track positioning. */
42
+ max: number;
43
+ /** Lower bound the user can reach, after neighbour constraints. */
44
+ effectiveMin: number;
45
+ /** Upper bound the user can reach, after neighbour constraints. */
46
+ effectiveMax: number;
47
+ step: number;
48
+ /** Value restored by Escape or a double-click. */
49
+ defaultValue?: number;
50
+ /** Track position between 0 and 1. */
51
+ normalizedValue: number;
52
+ normalization: SliderNormalization;
53
+ };
54
+ /** Number of steps an arrow key is multiplied by for Page Up and Page Down. */
55
+ export declare const SLIDER_PAGE_STEP_MULTIPLIER = 5;
56
+ /** Span applied when a supplied `max` does not sit above `min`. */
57
+ export declare const SLIDER_FALLBACK_RANGE = 100;