@leavepulse/ui 0.69.0 → 0.70.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 (640) hide show
  1. package/README.md +49 -0
  2. package/dist/assets/LoaderMark-DxBV2iDJ.css +43 -0
  3. package/dist/assets/LpActivityLine-B3EwNQEB.css +33 -0
  4. package/dist/assets/{LpCommandPalette-DxyjhYn_.css → LpCommandPalette-u-zOxKWa.css} +21 -31
  5. package/dist/assets/LpDock-Cbh0wQUv.css +17 -0
  6. package/dist/assets/{LpDropzone-Qb8k7cg4.css → LpDropzone-Bb1vBTeU.css} +12 -17
  7. package/dist/assets/{LpImageEditor-CElPDzpF.css → LpImageEditor-XM5bAziW.css} +6 -6
  8. package/dist/assets/LpLogViewer-BDNW6P52.css +38 -0
  9. package/dist/assets/{LpPalettePreview-CJmAKgYW.css → LpPalettePreview-B9VKDrvA.css} +2 -7
  10. package/dist/assets/LpRepeater-C1Cw27hj.css +21 -0
  11. package/dist/assets/{LpRollingText-BGnE6q9j.css → LpRollingText-dyOXedGO.css} +7 -0
  12. package/dist/assets/LpShinyText-D69cBYDR.css +61 -0
  13. package/dist/assets/LpStatus-430OGTZY.css +17 -0
  14. package/dist/assets/LpStepMark-Drvx33Vg.css +10 -0
  15. package/dist/assets/{LpTable-BPERfJIk.css → LpTable-DHxEQ_-3.css} +19 -19
  16. package/dist/assets/LpTabs-BJ-nrJuI.css +18 -0
  17. package/dist/assets/LpTextReveal-DjI1MsDS.css +35 -0
  18. package/dist/assets/LpTypewriter-CXAm9Nca.css +27 -0
  19. package/dist/chunks/AttentionDot-DCBf4aWg.js +25 -0
  20. package/dist/chunks/{ContextMenuItems-B7XFHksm.js → ContextMenuItems-6kxEivBI.js} +11 -5
  21. package/dist/chunks/{DropzoneLinkField-CjkrpDqO.js → DropzoneLinkField-Bw8Flkhk.js} +2 -2
  22. package/dist/chunks/FieldWrapper-BiennROB.js +43 -0
  23. package/dist/chunks/{LayoutCanvas-DF9CovaK.js → LayoutCanvas-BsJIzhdd.js} +1 -1
  24. package/dist/chunks/{LayoutNode-D9bIFzk0.js → LayoutNode-DJVhkSGk.js} +6 -8
  25. package/dist/chunks/LegendSwatch-BhRjrtzv.js +18 -0
  26. package/dist/chunks/LoaderMark-C1dubiKn.js +85 -0
  27. package/dist/chunks/{LpActionBar-MPKMu3pz.js → LpActionBar-CzOFar5t.js} +14 -20
  28. package/dist/chunks/LpActivityLine-CJvzrNpj.js +95 -0
  29. package/dist/chunks/{LpAddressInput-DG0BTqdH.js → LpAddressInput-Chv_Xf8q.js} +7 -7
  30. package/dist/chunks/LpAlert-C5igj802.js +119 -0
  31. package/dist/chunks/{LpAppShell-DPh1756q.js → LpAppShell-BiWByLmt.js} +15 -16
  32. package/dist/chunks/{LpAutocomplete-Dgn6hw3p.js → LpAutocomplete-D92niDHE.js} +15 -32
  33. package/dist/chunks/{LpAvatar-Bs0Fb1lC.js → LpAvatar-CLPl-qOF.js} +18 -6
  34. package/dist/chunks/LpBadge-BBq1Er9T.js +126 -0
  35. package/dist/chunks/LpBreadcrumbs-JKEi_yFF.js +144 -0
  36. package/dist/chunks/{LpButton-DNR-YAq5.js → LpButton-CVxBfGjd.js} +12 -4
  37. package/dist/chunks/{LpCalendar-BLya39Fh.js → LpCalendar-pVL91-Pl.js} +1 -1
  38. package/dist/chunks/{LpCard-Bf71NXZq.js → LpCard-CqKLnEhl.js} +18 -8
  39. package/dist/chunks/{LpCheckbox-Da5oZPHo.js → LpCheckbox-DHc2bHDe.js} +9 -6
  40. package/dist/chunks/{LpCodeBlock-lLbmslfs.js → LpCodeBlock-BGsQhxw8.js} +24 -32
  41. package/dist/chunks/LpCodeDisplay-CbJMs-IK.js +189 -0
  42. package/dist/chunks/LpCollapse-CWS9M_lm.js +115 -0
  43. package/dist/chunks/{LpColorPicker-DtEfBAcK.js → LpColorPicker-B7HSIFmn.js} +11 -6
  44. package/dist/chunks/{LpConfirmDialog-D7s4jakB.js → LpConfirmDialog-CfGCux8m.js} +3 -3
  45. package/dist/chunks/{LpConfirmHost-DrYI5y1K.js → LpConfirmHost-exB7JmcO.js} +1 -1
  46. package/dist/chunks/{LpContextMenu-CRnjoqSt.js → LpContextMenu-Cj96ENDC.js} +16 -7
  47. package/dist/chunks/LpCopyButton-DzHjnFs0.js +133 -0
  48. package/dist/chunks/LpCountdown-BQnmB4gq.js +231 -0
  49. package/dist/chunks/LpDataList-CHNYQw7h.js +121 -0
  50. package/dist/chunks/LpDatePicker-ac1_6o5P.js +169 -0
  51. package/dist/chunks/LpDateRangePicker-B15gYrZJ.js +127 -0
  52. package/dist/chunks/{LpDisclosure-6AplYBub.js → LpDisclosure-DOarzlAG.js} +22 -11
  53. package/dist/chunks/{LpDrawer-Q4SOxM4s.js → LpDrawer-DGNKRsGq.js} +9 -4
  54. package/dist/chunks/{LpDropdownMenu-DWTt0ooM.js → LpDropdownMenu-R4aYVtVV.js} +14 -6
  55. package/dist/chunks/LpEditable-Ws3DNQHn.js +238 -0
  56. package/dist/chunks/{LpEmptyState-om1UnFjV.js → LpEmptyState-KTKipws2.js} +1 -1
  57. package/dist/chunks/{LpFieldNotice-CHuDeLjc.js → LpFieldNotice-CurbNuXI.js} +1 -1
  58. package/dist/chunks/{LpFileTree-CW24YsVX.js → LpFileTree-DDNg34tJ.js} +5 -3
  59. package/dist/chunks/{LpFileTreeNode-BXhTHaKW.js → LpFileTreeNode-DmPuYNZ_.js} +42 -55
  60. package/dist/chunks/{LpFormField-DPb47HEm.js → LpFormField-BWwgm1E4.js} +23 -9
  61. package/dist/chunks/LpFrame-BVQCQLDI.js +155 -0
  62. package/dist/chunks/LpGauge-C14Z9503.js +204 -0
  63. package/dist/chunks/LpGlowBorder-B8V-QzIl.js +40 -0
  64. package/dist/chunks/{LpHintExample-C1eKYdeL.js → LpHintExample-9Py0wc-L.js} +11 -34
  65. package/dist/chunks/{LpHintLayer-7UOdWQG3.js → LpHintLayer-HvwUA5Ec.js} +27 -14
  66. package/dist/chunks/{LpHints-BUtBp9-w.js → LpHints-DxbPKOzQ.js} +3 -3
  67. package/dist/chunks/LpHoverCard-spGxyw7T.js +130 -0
  68. package/dist/chunks/{LpIcon-6tSrZ3Zy.js → LpIcon-HJP5xMz4.js} +1 -1
  69. package/dist/chunks/LpIdenticon-BzdC_qz9.js +63 -0
  70. package/dist/chunks/{LpInfraNode-Ds_8SZgN.js → LpInfraNode-D64hywJI.js} +39 -25
  71. package/dist/chunks/{LpInput-CUyr6PIE.js → LpInput-CDuwODJG.js} +44 -18
  72. package/dist/chunks/{LpLightbox-B9J8rzsj.js → LpLightbox-XJ0LpTcZ.js} +69 -69
  73. package/dist/chunks/LpLoader-DjJEX8hL.js +92 -0
  74. package/dist/chunks/{LpLogViewer-4QFc-sVN.js → LpLogViewer-DKK4ySZl.js} +225 -129
  75. package/dist/chunks/LpMagnetic-CtXKLa2Y.js +62 -0
  76. package/dist/chunks/{LpMapPicker-BTbkFeSG.js → LpMapPicker-BtIl7NOM.js} +34 -31
  77. package/dist/chunks/LpMasonry--k0571qG.js +185 -0
  78. package/dist/chunks/{LpMediaGallery-CuPcscx3.js → LpMediaGallery-rmI1DjKN.js} +3 -3
  79. package/dist/chunks/{LpModal-hk1noDcr.js → LpModal-eBMt2Fqn.js} +8 -3
  80. package/dist/chunks/{LpModalNav-DQd2keZm.js → LpModalNav-DiyFCHiZ.js} +4 -4
  81. package/dist/chunks/{LpNotificationBell-X84PJIxD.js → LpNotificationBell-D-WhE5m2.js} +32 -48
  82. package/dist/chunks/LpNumberField-B9k-h2HE.js +140 -0
  83. package/dist/chunks/{LpNumberFlow-z4WPZcZu.js → LpNumberFlow-Cfyh033Q.js} +8 -28
  84. package/dist/chunks/{LpOtpInput-PbeNJ5In.js → LpOtpInput-CeBPsM7D.js} +2 -1
  85. package/dist/chunks/{LpPagination-Bx-VG4Ag.js → LpPagination-VNCX6pFC.js} +37 -6
  86. package/dist/chunks/{LpPalettePreview-CFav_7co.js → LpPalettePreview-BNB8T_MY.js} +1 -1
  87. package/dist/chunks/{LpPasswordInput-CbnXitAS.js → LpPasswordInput-GL2KOFK8.js} +26 -22
  88. package/dist/chunks/{LpPhoneInput-DP69HONS.js → LpPhoneInput-C60tx1tC.js} +12 -7
  89. package/dist/chunks/{LpPie-yLF9-aDR.js → LpPie-BgXZ3xmm.js} +159 -48
  90. package/dist/chunks/LpPipeline-B31h41Mu.js +329 -0
  91. package/dist/chunks/{LpPopover-DVnkHaOu.js → LpPopover-DmZ3wUtP.js} +13 -7
  92. package/dist/chunks/{LpProgress-CA86wxXu.js → LpProgress-CE-m5OpD.js} +23 -63
  93. package/dist/chunks/LpQuota-DaL8TgNe.js +162 -0
  94. package/dist/chunks/{LpRadioGroup-8S5hf8lE.js → LpRadioGroup-CGBr5nIp.js} +1 -1
  95. package/dist/chunks/{LpRangeCalendar-ByQi-WUz.js → LpRangeCalendar-c5qj7YcC.js} +1 -1
  96. package/dist/chunks/{LpRangeSlider-C1yF9-nP.js → LpRangeSlider-Dv6lNvHY.js} +6 -2
  97. package/dist/chunks/LpRelativeTime-yin9uQP7.js +73 -0
  98. package/dist/chunks/LpRepeater-D0S7jjwr.js +180 -0
  99. package/dist/chunks/LpRevealOnScroll-DcQjexLy.js +76 -0
  100. package/dist/chunks/{LpRollingText-DB7upf-5.js → LpRollingText-DiL717LK.js} +4 -3
  101. package/dist/chunks/LpScramble-TDO5Kdou.js +85 -0
  102. package/dist/chunks/LpSecretField-CfWyHv9m.js +316 -0
  103. package/dist/chunks/{LpSection-BmRXe6ZP.js → LpSection-BW4xJ-Li.js} +1 -1
  104. package/dist/chunks/{LpSegmented-CW3bFHM4.js → LpSegmented-BO99Sr4m.js} +11 -14
  105. package/dist/chunks/{LpSelect-BCyDYoih.js → LpSelect-C_8cJtj6.js} +91 -111
  106. package/dist/chunks/LpShaderBackdrop-Bote0iuy.js +332 -0
  107. package/dist/chunks/LpShinyText-DX2ajtWq.js +48 -0
  108. package/dist/chunks/{LpSidebar-DfIiS-lB.js → LpSidebar-CZRXtvem.js} +5 -3
  109. package/dist/chunks/{LpSidebarNav-C5FDNI0t.js → LpSidebarNav-DBg1U1oW.js} +3 -3
  110. package/dist/chunks/{LpSlider-Cuzmrd7p.js → LpSlider-DuoRpOrH.js} +6 -2
  111. package/dist/chunks/{LpSparkline-DXT4KrSi.js → LpSparkline-CExIRDb3.js} +32 -27
  112. package/dist/chunks/LpSpotlight-4F3NeUMY.js +41 -0
  113. package/dist/chunks/{LpStat-iBMF5QNk.js → LpStat-DFKlPJgy.js} +38 -35
  114. package/dist/chunks/LpStatus-BsGLrpor.js +86 -0
  115. package/dist/chunks/LpStepMark-TrzOioa9.js +101 -0
  116. package/dist/chunks/LpStepper-BbnS5jUr.js +76 -0
  117. package/dist/chunks/{LpSwap-D82jiecV.js → LpSwap-DzE6M3Mg.js} +1 -1
  118. package/dist/chunks/LpSwitch-DrzKrZZV.js +112 -0
  119. package/dist/chunks/{LpTableFilter-CuIbgdW0.js → LpTableFilter-DyvHGbOk.js} +3 -2
  120. package/dist/chunks/{LpTableOfContents-C_4VBktT.js → LpTableOfContents-rYvo8z5T.js} +34 -21
  121. package/dist/chunks/{LpTagsInput-DiXrpYeE.js → LpTagsInput-DZg80W-B.js} +68 -71
  122. package/dist/chunks/LpTextReveal-CtAnOUkp.js +140 -0
  123. package/dist/chunks/{LpTextarea-xoQd5Lnp.js → LpTextarea-DiWjeVoJ.js} +12 -11
  124. package/dist/chunks/{LpThemeProvider-CQ2jC9TA.js → LpThemeProvider-DcbfOxsU.js} +1 -1
  125. package/dist/chunks/LpThemeStudio-DxVZMtzN.js +416 -0
  126. package/dist/chunks/LpThemeStudioSection-BwhqYDLf.js +20 -0
  127. package/dist/chunks/LpThemeSwitcher-CadVBTBn.js +278 -0
  128. package/dist/chunks/{LpTimeField-MFgAsNc5.js → LpTimeField-BFQVf_PW.js} +13 -5
  129. package/dist/chunks/{LpToaster-C4zE9zB7.js → LpToaster-Wv9ksj4q.js} +49 -82
  130. package/dist/chunks/{LpTooltip-suFCM34F.js → LpTooltip-Cz8SQwRt.js} +8 -3
  131. package/dist/chunks/{LpTopologyCanvas-6ozNrQKh.js → LpTopologyCanvas-C17A1XCb.js} +1 -1
  132. package/dist/chunks/{LpTour-BUp3Jt2e.js → LpTour-CY2bFXge.js} +24 -18
  133. package/dist/chunks/LpTruncate-D_5Pfv5B.js +112 -0
  134. package/dist/chunks/LpTypewriter-BCL_a6wE.js +159 -0
  135. package/dist/chunks/{LpUptimeBar-B6kHw4Cj.js → LpUptimeBar-Tew1Ykx4.js} +10 -9
  136. package/dist/chunks/{LpVideoBackdrop-qWRYBOTQ.js → LpVideoBackdrop-DS1wGv-X.js} +7 -8
  137. package/dist/chunks/{MenuTitle-obgek0B7.js → MenuTitle-BjQZX8tQ.js} +1 -1
  138. package/dist/chunks/OptionContent-CmYUUeWj.js +40 -0
  139. package/dist/chunks/PickerField-DoHv0WMH.js +125 -0
  140. package/dist/chunks/RevealToggle-C-KzaQGJ.js +65 -0
  141. package/dist/chunks/StepConnector-37OgEOXA.js +41 -0
  142. package/dist/chunks/TourCard-BJ8i7dk0.js +123 -0
  143. package/dist/chunks/backdrop-Dkf2vM81.js +59 -0
  144. package/dist/chunks/{icons-DVhZ_plB.js → icons-4IywzkHk.js} +1 -1
  145. package/dist/chunks/{useTheme-2qHG8NEU.js → useTheme-BOV_-AiY.js} +9 -65
  146. package/dist/component-names.d.ts +1 -1
  147. package/dist/components/AttentionDot.vue.d.ts +9 -0
  148. package/dist/components/AttentionDot.vue.js +4 -0
  149. package/dist/components/ContextMenuItems.vue.js +1 -1
  150. package/dist/components/DropzoneLinkField.vue.js +1 -1
  151. package/dist/components/FieldWrapper.vue.d.ts +25 -0
  152. package/dist/components/FieldWrapper.vue.js +4 -0
  153. package/dist/components/LayoutCanvas.vue.js +1 -1
  154. package/dist/components/LayoutNode.vue.d.ts +4 -4
  155. package/dist/components/LayoutNode.vue.js +1 -1
  156. package/dist/components/LegendSwatch.vue.d.ts +6 -0
  157. package/dist/components/LegendSwatch.vue.js +4 -0
  158. package/dist/components/LoaderMark.vue.d.ts +12 -0
  159. package/dist/components/LoaderMark.vue.js +4 -0
  160. package/dist/components/LpActionBar.vue.js +1 -1
  161. package/dist/components/LpActivityLine.vue.d.ts +58 -0
  162. package/dist/components/LpActivityLine.vue.js +4 -0
  163. package/dist/components/LpAddressInput.vue.js +1 -1
  164. package/dist/components/LpAlert.vue.d.ts +2 -2
  165. package/dist/components/LpAlert.vue.js +1 -1
  166. package/dist/components/LpAppShell.vue.d.ts +8 -7
  167. package/dist/components/LpAppShell.vue.js +1 -1
  168. package/dist/components/LpAutocomplete.vue.js +1 -1
  169. package/dist/components/LpAvatar.vue.d.ts +16 -0
  170. package/dist/components/LpAvatar.vue.js +1 -1
  171. package/dist/components/LpBadge.vue.d.ts +19 -5
  172. package/dist/components/LpBadge.vue.js +1 -1
  173. package/dist/components/LpBreadcrumbs.vue.js +1 -1
  174. package/dist/components/LpButton.vue.d.ts +2 -2
  175. package/dist/components/LpButton.vue.js +1 -1
  176. package/dist/components/LpCalendar.vue.js +1 -1
  177. package/dist/components/LpCard.vue.d.ts +24 -0
  178. package/dist/components/LpCard.vue.js +1 -1
  179. package/dist/components/LpChart.vue.js +131 -160
  180. package/dist/components/LpCheckbox.vue.d.ts +2 -2
  181. package/dist/components/LpCheckbox.vue.js +1 -1
  182. package/dist/components/LpCodeBlock.vue.js +1 -1
  183. package/dist/components/LpCodeDisplay.vue.d.ts +89 -0
  184. package/dist/components/LpCodeDisplay.vue.js +4 -0
  185. package/dist/components/LpCollapse.vue.d.ts +58 -0
  186. package/dist/components/LpCollapse.vue.js +4 -0
  187. package/dist/components/LpColorPicker.vue.d.ts +2 -2
  188. package/dist/components/LpColorPicker.vue.js +1 -1
  189. package/dist/components/LpCommandPalette.vue.js +34 -23
  190. package/dist/components/LpConfirmDialog.vue.js +1 -1
  191. package/dist/components/LpConfirmHost.vue.js +1 -1
  192. package/dist/components/LpContextMenu.vue.js +1 -1
  193. package/dist/components/LpCopyButton.vue.d.ts +82 -0
  194. package/dist/components/LpCopyButton.vue.js +4 -0
  195. package/dist/components/LpCountdown.vue.d.ts +100 -0
  196. package/dist/components/LpCountdown.vue.js +4 -0
  197. package/dist/components/LpDataList.vue.d.ts +66 -0
  198. package/dist/components/LpDataList.vue.js +4 -0
  199. package/dist/components/LpDatePicker.vue.d.ts +3 -1
  200. package/dist/components/LpDatePicker.vue.js +1 -1
  201. package/dist/components/LpDateRangePicker.vue.d.ts +3 -1
  202. package/dist/components/LpDateRangePicker.vue.js +1 -1
  203. package/dist/components/LpDisclosure.vue.js +1 -1
  204. package/dist/components/LpDock.vue.d.ts +74 -0
  205. package/dist/components/LpDock.vue.js +204 -0
  206. package/dist/components/LpDrawer.vue.js +1 -1
  207. package/dist/components/LpDropdownMenu.vue.js +1 -1
  208. package/dist/components/LpDropzone.vue.d.ts +8 -1
  209. package/dist/components/LpDropzone.vue.js +36 -15
  210. package/dist/components/LpEditable.vue.d.ts +85 -0
  211. package/dist/components/LpEditable.vue.js +4 -0
  212. package/dist/components/LpEmptyState.vue.js +1 -1
  213. package/dist/components/LpFieldNotice.vue.js +1 -1
  214. package/dist/components/LpFileTree.vue.js +1 -1
  215. package/dist/components/LpFileTreeNode.vue.js +1 -1
  216. package/dist/components/LpFormField.vue.js +1 -1
  217. package/dist/components/LpFrame.vue.d.ts +22 -0
  218. package/dist/components/LpFrame.vue.js +4 -0
  219. package/dist/components/LpGauge.vue.d.ts +116 -0
  220. package/dist/components/LpGauge.vue.js +4 -0
  221. package/dist/components/LpGlowBorder.vue.d.ts +47 -0
  222. package/dist/components/LpGlowBorder.vue.js +4 -0
  223. package/dist/components/LpHintExample.vue.d.ts +2 -2
  224. package/dist/components/LpHintExample.vue.js +1 -1
  225. package/dist/components/LpHintLayer.vue.js +1 -1
  226. package/dist/components/LpHints.vue.js +1 -1
  227. package/dist/components/LpHoverCard.vue.d.ts +60 -0
  228. package/dist/components/LpHoverCard.vue.js +4 -0
  229. package/dist/components/LpIcon.vue.js +1 -1
  230. package/dist/components/LpIdenticon.vue.d.ts +37 -0
  231. package/dist/components/LpIdenticon.vue.js +4 -0
  232. package/dist/components/LpImageEditor.vue.js +13 -19
  233. package/dist/components/LpInfraNode.vue.js +1 -1
  234. package/dist/components/LpInput.vue.d.ts +10 -0
  235. package/dist/components/LpInput.vue.js +1 -1
  236. package/dist/components/LpLightbox.vue.js +1 -1
  237. package/dist/components/LpLoader.vue.d.ts +106 -0
  238. package/dist/components/LpLoader.vue.js +4 -0
  239. package/dist/components/LpLogViewer.vue.js +1 -1
  240. package/dist/components/LpMagnetic.vue.d.ts +28 -0
  241. package/dist/components/LpMagnetic.vue.js +4 -0
  242. package/dist/components/LpMapPicker.vue.js +1 -1
  243. package/dist/components/LpMasonry.vue.d.ts +42 -0
  244. package/dist/components/LpMasonry.vue.js +4 -0
  245. package/dist/components/LpMediaGallery.vue.js +1 -1
  246. package/dist/components/LpModal.vue.js +1 -1
  247. package/dist/components/LpModalNav.vue.js +1 -1
  248. package/dist/components/LpNotificationBell.vue.d.ts +15 -6
  249. package/dist/components/LpNotificationBell.vue.js +1 -1
  250. package/dist/components/LpNumberField.vue.d.ts +57 -0
  251. package/dist/components/LpNumberField.vue.js +1 -1
  252. package/dist/components/LpNumberFlow.vue.js +1 -1
  253. package/dist/components/LpOtpInput.vue.d.ts +12 -4
  254. package/dist/components/LpOtpInput.vue.js +1 -1
  255. package/dist/components/LpPagination.vue.js +1 -1
  256. package/dist/components/LpPaletteFacts.vue.js +2 -2
  257. package/dist/components/LpPaletteHeader.vue.js +2 -2
  258. package/dist/components/LpPalettePreview.vue.js +1 -1
  259. package/dist/components/LpPaletteStats.vue.js +2 -2
  260. package/dist/components/LpPasswordInput.vue.d.ts +19 -2
  261. package/dist/components/LpPasswordInput.vue.js +1 -1
  262. package/dist/components/LpPhoneInput.vue.js +1 -1
  263. package/dist/components/LpPie.vue.d.ts +3 -1
  264. package/dist/components/LpPie.vue.js +1 -1
  265. package/dist/components/LpPipeline.vue.d.ts +91 -0
  266. package/dist/components/LpPipeline.vue.js +4 -0
  267. package/dist/components/LpPopover.vue.d.ts +2 -2
  268. package/dist/components/LpPopover.vue.js +1 -1
  269. package/dist/components/LpProgress.vue.d.ts +11 -4
  270. package/dist/components/LpProgress.vue.js +1 -1
  271. package/dist/components/LpQuota.vue.d.ts +68 -0
  272. package/dist/components/LpQuota.vue.js +4 -0
  273. package/dist/components/LpRadioGroup.vue.js +1 -1
  274. package/dist/components/LpRangeCalendar.vue.js +1 -1
  275. package/dist/components/LpRangeSlider.vue.js +1 -1
  276. package/dist/components/LpRelativeTime.vue.d.ts +41 -0
  277. package/dist/components/LpRelativeTime.vue.js +4 -0
  278. package/dist/components/LpRepeater.vue.d.ts +48 -0
  279. package/dist/components/LpRepeater.vue.js +4 -0
  280. package/dist/components/LpRevealOnScroll.vue.d.ts +67 -0
  281. package/dist/components/LpRevealOnScroll.vue.js +4 -0
  282. package/dist/components/LpRollingText.vue.d.ts +3 -1
  283. package/dist/components/LpRollingText.vue.js +1 -1
  284. package/dist/components/LpScramble.vue.d.ts +55 -0
  285. package/dist/components/LpScramble.vue.js +4 -0
  286. package/dist/components/LpScrollArea.vue.d.ts +1 -1
  287. package/dist/components/LpSecretField.vue.d.ts +108 -0
  288. package/dist/components/LpSecretField.vue.js +4 -0
  289. package/dist/components/LpSection.vue.js +1 -1
  290. package/dist/components/LpSegmented.vue.js +1 -1
  291. package/dist/components/LpSelect.vue.d.ts +2 -0
  292. package/dist/components/LpSelect.vue.js +1 -1
  293. package/dist/components/LpShaderBackdrop.vue.d.ts +39 -0
  294. package/dist/components/LpShaderBackdrop.vue.js +4 -0
  295. package/dist/components/LpShinyText.vue.d.ts +39 -0
  296. package/dist/components/LpShinyText.vue.js +4 -0
  297. package/dist/components/LpShortcutsDialog.vue.js +1 -1
  298. package/dist/components/LpSidebar.vue.js +1 -1
  299. package/dist/components/LpSidebarNav.vue.js +1 -1
  300. package/dist/components/LpSlider.vue.js +1 -1
  301. package/dist/components/LpSparkline.vue.d.ts +4 -3
  302. package/dist/components/LpSparkline.vue.js +1 -1
  303. package/dist/components/LpSpotlight.vue.d.ts +37 -0
  304. package/dist/components/LpSpotlight.vue.js +4 -0
  305. package/dist/components/LpStat.vue.js +1 -1
  306. package/dist/components/LpStatus.vue.d.ts +65 -0
  307. package/dist/components/LpStatus.vue.js +4 -0
  308. package/dist/components/LpStepMark.vue.d.ts +31 -0
  309. package/dist/components/LpStepMark.vue.js +4 -0
  310. package/dist/components/LpStepper.vue.js +1 -1
  311. package/dist/components/LpSwap.vue.js +1 -1
  312. package/dist/components/LpSwitch.vue.d.ts +2 -2
  313. package/dist/components/LpSwitch.vue.js +1 -1
  314. package/dist/components/LpTable.vue.js +104 -120
  315. package/dist/components/LpTableFilter.vue.js +1 -1
  316. package/dist/components/LpTableOfContents.vue.d.ts +6 -1
  317. package/dist/components/LpTableOfContents.vue.js +1 -1
  318. package/dist/components/LpTabs.vue.d.ts +5 -5
  319. package/dist/components/LpTabs.vue.js +25 -33
  320. package/dist/components/LpTagsInput.vue.js +1 -1
  321. package/dist/components/LpTextReveal.vue.d.ts +58 -0
  322. package/dist/components/LpTextReveal.vue.js +4 -0
  323. package/dist/components/LpTextarea.vue.js +1 -1
  324. package/dist/components/LpThemeProvider.vue.js +1 -1
  325. package/dist/components/LpThemeStudio.vue.d.ts +54 -0
  326. package/dist/components/LpThemeStudio.vue.js +4 -0
  327. package/dist/components/LpThemeStudioSection.vue.d.ts +16 -0
  328. package/dist/components/LpThemeStudioSection.vue.js +4 -0
  329. package/dist/components/LpThemeSwitcher.vue.d.ts +32 -1
  330. package/dist/components/LpThemeSwitcher.vue.js +1 -1
  331. package/dist/components/LpTimeField.vue.d.ts +2 -0
  332. package/dist/components/LpTimeField.vue.js +1 -1
  333. package/dist/components/LpToaster.vue.js +1 -1
  334. package/dist/components/LpTooltip.vue.d.ts +2 -2
  335. package/dist/components/LpTooltip.vue.js +1 -1
  336. package/dist/components/LpTopologyCanvas.vue.js +1 -1
  337. package/dist/components/LpTour.vue.js +1 -1
  338. package/dist/components/LpTruncate.vue.d.ts +34 -0
  339. package/dist/components/LpTruncate.vue.js +4 -0
  340. package/dist/components/LpTypewriter.vue.d.ts +61 -0
  341. package/dist/components/LpTypewriter.vue.js +4 -0
  342. package/dist/components/LpUptimeBar.vue.js +1 -1
  343. package/dist/components/LpVideoBackdrop.vue.js +1 -1
  344. package/dist/components/MenuTitle.vue.js +1 -1
  345. package/dist/components/OptionContent.vue.d.ts +7 -0
  346. package/dist/components/OptionContent.vue.js +4 -0
  347. package/dist/components/PickerField.vue.d.ts +45 -0
  348. package/dist/components/PickerField.vue.js +4 -0
  349. package/dist/components/RevealToggle.vue.d.ts +21 -0
  350. package/dist/components/RevealToggle.vue.js +4 -0
  351. package/dist/components/StepConnector.vue.d.ts +19 -0
  352. package/dist/components/StepConnector.vue.js +4 -0
  353. package/dist/components/TourCard.vue.js +1 -1
  354. package/dist/components/badge.d.ts +1 -0
  355. package/dist/components/badge.js +4 -0
  356. package/dist/components/chart.d.ts +5 -1
  357. package/dist/components/chart.js +2 -21
  358. package/dist/components/dateRange.d.ts +11 -0
  359. package/dist/components/dateRange.js +12 -0
  360. package/dist/components/dock.d.ts +19 -0
  361. package/dist/components/dock.js +16 -0
  362. package/dist/components/dropdown.d.ts +10 -1
  363. package/dist/components/dropdown.js +7 -2
  364. package/dist/components/fieldText.d.ts +38 -0
  365. package/dist/components/fieldText.js +53 -0
  366. package/dist/components/fileTree.d.ts +7 -3
  367. package/dist/components/fileTree.js +12 -18
  368. package/dist/components/format.d.ts +41 -0
  369. package/dist/components/format.js +67 -0
  370. package/dist/components/identicon.d.ts +38 -0
  371. package/dist/components/identicon.js +85 -0
  372. package/dist/components/masonry.d.ts +32 -0
  373. package/dist/components/masonry.js +40 -0
  374. package/dist/components/menuWhen.js +1 -1
  375. package/dist/components/meter.d.ts +64 -0
  376. package/dist/components/meter.js +53 -0
  377. package/dist/components/otp.d.ts +1 -1
  378. package/dist/components/otp.js +7 -2
  379. package/dist/components/pipeline.d.ts +55 -0
  380. package/dist/components/pipeline.js +51 -0
  381. package/dist/components/quota.d.ts +57 -0
  382. package/dist/components/quota.js +40 -0
  383. package/dist/components/relativeTime.d.ts +24 -0
  384. package/dist/components/relativeTime.js +56 -0
  385. package/dist/components/reveal.d.ts +18 -0
  386. package/dist/components/reveal.js +32 -0
  387. package/dist/components/scramble.d.ts +68 -0
  388. package/dist/components/scramble.js +58 -0
  389. package/dist/components/shaderBackdrop.d.ts +20 -0
  390. package/dist/components/shaderBackdrop.js +156 -0
  391. package/dist/components/slider.d.ts +5 -0
  392. package/dist/components/slider.js +24 -0
  393. package/dist/components/slotText.d.ts +2 -0
  394. package/dist/components/slotText.js +9 -0
  395. package/dist/components/status.d.ts +14 -0
  396. package/dist/components/status.js +22 -0
  397. package/dist/components/tableFacets.d.ts +8 -0
  398. package/dist/components/tableFacets.js +19 -0
  399. package/dist/components/textSplit.d.ts +17 -0
  400. package/dist/components/textSplit.js +24 -0
  401. package/dist/components/timeSpan.d.ts +78 -0
  402. package/dist/components/timeSpan.js +85 -0
  403. package/dist/components/tone.d.ts +43 -0
  404. package/dist/components/tone.js +82 -0
  405. package/dist/components/tour.js +3 -2
  406. package/dist/components/typewriter.d.ts +36 -0
  407. package/dist/components/typewriter.js +53 -0
  408. package/dist/components/videoBackdrop.js +5 -6
  409. package/dist/composables/easing.d.ts +22 -1
  410. package/dist/composables/easing.js +42 -1
  411. package/dist/composables/pseudoLocale.d.ts +15 -0
  412. package/dist/composables/pseudoLocale.js +96 -0
  413. package/dist/composables/scroll.js +5 -3
  414. package/dist/composables/useClipboard.d.ts +4 -1
  415. package/dist/composables/useClipboard.js +12 -2
  416. package/dist/composables/useField.d.ts +13 -0
  417. package/dist/composables/useField.js +26 -1
  418. package/dist/composables/useForm.js +32 -9
  419. package/dist/composables/useInView.d.ts +11 -0
  420. package/dist/composables/useInView.js +39 -0
  421. package/dist/composables/useLoadingGate.d.ts +8 -0
  422. package/dist/composables/useLoadingGate.js +38 -0
  423. package/dist/composables/useLpConfig.d.ts +10 -0
  424. package/dist/composables/useLpConfig.js +11 -1
  425. package/dist/composables/useMediaQuery.js +3 -1
  426. package/dist/composables/useNow.d.ts +16 -0
  427. package/dist/composables/useNow.js +39 -0
  428. package/dist/composables/usePersisted.js +14 -7
  429. package/dist/composables/usePillTransition.d.ts +5 -2
  430. package/dist/composables/usePillTransition.js +4 -3
  431. package/dist/composables/usePointerFrame.d.ts +18 -0
  432. package/dist/composables/usePointerFrame.js +31 -0
  433. package/dist/composables/useReducedMotion.d.ts +2 -0
  434. package/dist/composables/useReducedMotion.js +7 -0
  435. package/dist/composables/useRepeater.d.ts +17 -0
  436. package/dist/composables/useRepeater.js +31 -0
  437. package/dist/composables/useResizeObserver.d.ts +8 -0
  438. package/dist/composables/useResizeObserver.js +33 -0
  439. package/dist/composables/useRevealedValue.d.ts +31 -0
  440. package/dist/composables/useRevealedValue.js +26 -0
  441. package/dist/composables/useScramble.d.ts +42 -0
  442. package/dist/composables/useScramble.js +76 -0
  443. package/dist/composables/useShift.js +2 -10
  444. package/dist/composables/useSpotlight.d.ts +18 -0
  445. package/dist/composables/useSpotlight.js +53 -0
  446. package/dist/composables/useTilt.js +26 -18
  447. package/dist/composables/useTween.d.ts +43 -0
  448. package/dist/composables/useTween.js +69 -0
  449. package/dist/composables/useView.d.ts +18 -0
  450. package/dist/composables/useView.js +64 -0
  451. package/dist/icons-all.js +1 -1
  452. package/dist/index.d.ts +98 -1
  453. package/dist/index.js +263 -105
  454. package/dist/theme/define.d.ts +12 -0
  455. package/dist/theme/studio.d.ts +90 -0
  456. package/package.json +8 -2
  457. package/src/component-names.ts +33 -0
  458. package/src/components/AttentionDot.vue +27 -0
  459. package/src/components/ContextMenuItems.vue +5 -2
  460. package/src/components/FieldWrapper.vue +38 -0
  461. package/src/components/LayoutNode.vue +5 -9
  462. package/src/components/LegendSwatch.vue +15 -0
  463. package/src/components/LoaderMark.vue +90 -0
  464. package/src/components/LpActionBar.vue +12 -20
  465. package/src/components/LpActivityLine.vue +186 -0
  466. package/src/components/LpAlert.vue +54 -24
  467. package/src/components/LpAppShell.vue +7 -11
  468. package/src/components/LpAutocomplete.vue +16 -14
  469. package/src/components/LpAvatar.vue +17 -2
  470. package/src/components/LpBadge.vue +77 -13
  471. package/src/components/LpBreadcrumbs.vue +101 -35
  472. package/src/components/LpButton.vue +15 -3
  473. package/src/components/LpCard.vue +30 -7
  474. package/src/components/LpChart.vue +162 -171
  475. package/src/components/LpCheckbox.vue +10 -4
  476. package/src/components/LpCodeBlock.vue +11 -19
  477. package/src/components/LpCodeDisplay.vue +228 -0
  478. package/src/components/LpCollapse.vue +162 -0
  479. package/src/components/LpColorPicker.vue +10 -1
  480. package/src/components/LpCommandPalette.vue +38 -24
  481. package/src/components/LpContextMenu.vue +13 -3
  482. package/src/components/LpCopyButton.vue +185 -0
  483. package/src/components/LpCountdown.vue +308 -0
  484. package/src/components/LpDataList.vue +154 -0
  485. package/src/components/LpDatePicker.vue +55 -104
  486. package/src/components/LpDateRangePicker.vue +51 -95
  487. package/src/components/LpDisclosure.vue +58 -36
  488. package/src/components/LpDock.vue +274 -0
  489. package/src/components/LpDrawer.vue +10 -1
  490. package/src/components/LpDropdownMenu.vue +11 -2
  491. package/src/components/LpDropzone.vue +34 -13
  492. package/src/components/LpEditable.vue +295 -0
  493. package/src/components/LpFileTree.vue +5 -1
  494. package/src/components/LpFileTreeNode.vue +25 -50
  495. package/src/components/LpFormField.vue +22 -3
  496. package/src/components/LpFrame.vue +200 -0
  497. package/src/components/LpGauge.vue +287 -0
  498. package/src/components/LpGlowBorder.vue +60 -0
  499. package/src/components/LpHintExample.vue +9 -32
  500. package/src/components/LpHintLayer.vue +13 -3
  501. package/src/components/LpHoverCard.vue +175 -0
  502. package/src/components/LpIdenticon.vue +69 -0
  503. package/src/components/LpImageEditor.vue +15 -18
  504. package/src/components/LpInfraNode.vue +27 -16
  505. package/src/components/LpInput.vue +30 -16
  506. package/src/components/LpLightbox.vue +44 -23
  507. package/src/components/LpLoader.vue +145 -0
  508. package/src/components/LpLogViewer.vue +311 -82
  509. package/src/components/LpMagnetic.vue +97 -0
  510. package/src/components/LpMapPicker.vue +26 -28
  511. package/src/components/LpMasonry.vue +247 -0
  512. package/src/components/LpModal.vue +10 -1
  513. package/src/components/LpNotificationBell.vue +33 -49
  514. package/src/components/LpNumberField.vue +79 -14
  515. package/src/components/LpNumberFlow.vue +10 -35
  516. package/src/components/LpOtpInput.vue +7 -2
  517. package/src/components/LpPagination.vue +38 -4
  518. package/src/components/LpPalettePreview.vue +2 -7
  519. package/src/components/LpPasswordInput.vue +25 -18
  520. package/src/components/LpPhoneInput.vue +12 -3
  521. package/src/components/LpPie.vue +197 -36
  522. package/src/components/LpPipeline.vue +366 -0
  523. package/src/components/LpPopover.vue +14 -1
  524. package/src/components/LpProgress.vue +22 -84
  525. package/src/components/LpQuota.vue +197 -0
  526. package/src/components/LpRangeSlider.vue +5 -1
  527. package/src/components/LpRelativeTime.vue +90 -0
  528. package/src/components/LpRepeater.vue +131 -0
  529. package/src/components/LpRevealOnScroll.vue +125 -0
  530. package/src/components/LpRollingText.vue +12 -1
  531. package/src/components/LpScramble.vue +107 -0
  532. package/src/components/LpSecretField.vue +320 -0
  533. package/src/components/LpSegmented.vue +3 -10
  534. package/src/components/LpSelect.vue +74 -65
  535. package/src/components/LpShaderBackdrop.vue +434 -0
  536. package/src/components/LpShinyText.vue +139 -0
  537. package/src/components/LpSidebar.vue +2 -0
  538. package/src/components/LpSlider.vue +5 -1
  539. package/src/components/LpSparkline.vue +55 -37
  540. package/src/components/LpSpotlight.vue +51 -0
  541. package/src/components/LpStat.vue +6 -2
  542. package/src/components/LpStatus.vue +127 -0
  543. package/src/components/LpStepMark.vue +138 -0
  544. package/src/components/LpStepper.vue +37 -43
  545. package/src/components/LpSwap.vue +2 -2
  546. package/src/components/LpSwitch.vue +15 -22
  547. package/src/components/LpTable.vue +47 -63
  548. package/src/components/LpTableFilter.vue +1 -0
  549. package/src/components/LpTableOfContents.vue +53 -29
  550. package/src/components/LpTabs.vue +10 -21
  551. package/src/components/LpTagsInput.vue +53 -37
  552. package/src/components/LpTextReveal.vue +236 -0
  553. package/src/components/LpTextarea.vue +11 -11
  554. package/src/components/LpThemeStudio.vue +216 -0
  555. package/src/components/LpThemeStudioSection.vue +16 -0
  556. package/src/components/LpThemeSwitcher.vue +156 -47
  557. package/src/components/LpTimeField.vue +9 -1
  558. package/src/components/LpToaster.vue +63 -83
  559. package/src/components/LpTooltip.vue +10 -1
  560. package/src/components/LpTour.vue +24 -13
  561. package/src/components/LpTruncate.vue +135 -0
  562. package/src/components/LpTypewriter.vue +236 -0
  563. package/src/components/LpUptimeBar.vue +6 -5
  564. package/src/components/LpVideoBackdrop.vue +15 -13
  565. package/src/components/OptionContent.vue +17 -0
  566. package/src/components/PickerField.vue +59 -0
  567. package/src/components/RevealToggle.vue +51 -0
  568. package/src/components/StepConnector.vue +54 -0
  569. package/src/components/TourCard.vue +29 -16
  570. package/src/components/badge.ts +8 -0
  571. package/src/components/chart.ts +8 -23
  572. package/src/components/dateRange.ts +25 -0
  573. package/src/components/dock.ts +31 -0
  574. package/src/components/dropdown.ts +15 -3
  575. package/src/components/fieldText.ts +95 -0
  576. package/src/components/fileTree.ts +19 -21
  577. package/src/components/format.ts +136 -0
  578. package/src/components/identicon.ts +160 -0
  579. package/src/components/masonry.ts +73 -0
  580. package/src/components/meter.ts +122 -0
  581. package/src/components/otp.ts +14 -3
  582. package/src/components/pipeline.ts +101 -0
  583. package/src/components/quota.ts +111 -0
  584. package/src/components/relativeTime.ts +118 -0
  585. package/src/components/reveal.ts +56 -0
  586. package/src/components/scramble.ts +138 -0
  587. package/src/components/shaderBackdrop.ts +208 -0
  588. package/src/components/slider.ts +30 -0
  589. package/src/components/slotText.ts +13 -0
  590. package/src/components/status.ts +46 -0
  591. package/src/components/tableFacets.ts +25 -0
  592. package/src/components/textSplit.ts +55 -0
  593. package/src/components/timeSpan.ts +183 -0
  594. package/src/components/tone.ts +144 -0
  595. package/src/components/tour.ts +3 -2
  596. package/src/components/typewriter.ts +104 -0
  597. package/src/components/videoBackdrop.ts +7 -6
  598. package/src/composables/easing.ts +66 -1
  599. package/src/composables/pseudoLocale.ts +105 -0
  600. package/src/composables/scroll.ts +6 -3
  601. package/src/composables/useClipboard.ts +25 -3
  602. package/src/composables/useField.ts +38 -1
  603. package/src/composables/useForm.ts +41 -11
  604. package/src/composables/useInView.ts +61 -0
  605. package/src/composables/useLoadingGate.ts +63 -0
  606. package/src/composables/useLpConfig.ts +20 -1
  607. package/src/composables/useMediaQuery.ts +6 -2
  608. package/src/composables/useNow.ts +84 -0
  609. package/src/composables/usePersisted.ts +19 -8
  610. package/src/composables/usePillTransition.ts +21 -13
  611. package/src/composables/usePointerFrame.ts +72 -0
  612. package/src/composables/useReducedMotion.ts +22 -0
  613. package/src/composables/useRepeater.ts +44 -0
  614. package/src/composables/useResizeObserver.ts +59 -0
  615. package/src/composables/useRevealedValue.ts +84 -0
  616. package/src/composables/useScramble.ts +152 -0
  617. package/src/composables/useShift.ts +10 -16
  618. package/src/composables/useSpotlight.ts +82 -0
  619. package/src/composables/useTilt.ts +40 -23
  620. package/src/composables/useTween.ts +149 -0
  621. package/src/composables/useView.ts +96 -0
  622. package/src/index.css +1 -0
  623. package/src/index.ts +143 -1
  624. package/src/kit-icons.ts +1 -1
  625. package/src/theme/define.ts +65 -0
  626. package/src/theme/studio.ts +202 -0
  627. package/src/tokens/effects.css +151 -0
  628. package/src/tokens/tokens.css +131 -39
  629. package/src/tokens/utilities.css +81 -0
  630. package/dist/assets/LpTabs-Bk7v4bZz.css +0 -18
  631. package/dist/chunks/LpAlert-BdvxvcWE.js +0 -85
  632. package/dist/chunks/LpBadge-Fe0D1bYx.js +0 -62
  633. package/dist/chunks/LpBreadcrumbs-rzOKkLiI.js +0 -98
  634. package/dist/chunks/LpDatePicker-BMfM454Y.js +0 -243
  635. package/dist/chunks/LpDateRangePicker-CNb9X3eL.js +0 -195
  636. package/dist/chunks/LpNumberField-DO1ufKvE.js +0 -107
  637. package/dist/chunks/LpStepper-C2slwObu.js +0 -90
  638. package/dist/chunks/LpSwitch-CZy9_IoA.js +0 -132
  639. package/dist/chunks/LpThemeSwitcher-CDoziW0z.js +0 -166
  640. package/dist/chunks/TourCard-BKI7X9-r.js +0 -105
@@ -0,0 +1,162 @@
1
+ import { defineComponent, computed, openBlock, createElementBlock, mergeProps, unref, createElementVNode, normalizeClass, toDisplayString, createCommentVNode, createVNode, Fragment, renderList, normalizeStyle } from "vue";
2
+ import { useLabels } from "../composables/useLpConfig.js";
3
+ import { useLocale } from "../composables/useLocale.js";
4
+ import { useMergedAttrs } from "../composables/useMergedClass.js";
5
+ import { useRevealedValue } from "../composables/useRevealedValue.js";
6
+ import { _ as _sfc_main$2 } from "./LpIcon-HJP5xMz4.js";
7
+ import { _ as _sfc_main$1 } from "./LpNumberFlow-Cfyh033Q.js";
8
+ import { _ as _sfc_main$3 } from "./LpRollingText-DiL717LK.js";
9
+ import { METER_HEADER, METER_TRACK } from "../components/meter.js";
10
+ import { quotaState, quotaSegments, formatAmount } from "../components/quota.js";
11
+ import { toneLook } from "../components/tone.js";
12
+ const _hoisted_1 = ["role", "aria-valuenow", "aria-valuemin", "aria-valuemax", "aria-valuetext", "aria-label"];
13
+ const _hoisted_2 = {
14
+ key: 0,
15
+ class: "truncate text-ink"
16
+ };
17
+ const _hoisted_3 = { class: "ml-auto shrink-0 font-mono text-xs tabular-nums text-muted" };
18
+ const _hoisted_4 = { class: "flex h-full w-full gap-px overflow-hidden rounded-pill" };
19
+ const _hoisted_5 = {
20
+ key: 1,
21
+ class: "mt-1 flex flex-wrap gap-x-4 gap-y-1 text-xs text-muted"
22
+ };
23
+ const _hoisted_6 = { class: "font-mono tabular-nums text-muted-strong" };
24
+ const __default__ = { inheritAttrs: false };
25
+ const _sfc_main = /* @__PURE__ */ defineComponent({
26
+ ...__default__,
27
+ __name: "LpQuota",
28
+ props: {
29
+ used: {},
30
+ limit: { default: null },
31
+ label: {},
32
+ unit: {},
33
+ parts: {},
34
+ warnAt: { default: 0.8 },
35
+ dangerAt: { default: 0.9 },
36
+ hideLegend: { type: Boolean, default: false },
37
+ animateOnMount: { type: Boolean, default: true },
38
+ locale: {},
39
+ labels: {}
40
+ },
41
+ setup(__props) {
42
+ const props = __props;
43
+ const text = useLabels(
44
+ "quota",
45
+ {
46
+ left: "{amount} left",
47
+ over: "{amount} over the limit",
48
+ unlimited: "No limit",
49
+ reading: "{used} of {limit} used"
50
+ },
51
+ () => props.labels
52
+ );
53
+ const locale = useLocale(() => props.locale);
54
+ const state = computed(() => quotaState(props.used, props.limit, props.warnAt, props.dangerAt));
55
+ const look = computed(() => toneLook(state.value.tone));
56
+ const fmt = (v) => formatAmount(v, props.unit, locale.value);
57
+ const layout = computed(
58
+ () => quotaSegments(
59
+ props.parts?.length ? props.parts : [{ label: props.label ?? "", value: props.used, color: look.value.color }],
60
+ props.limit
61
+ )
62
+ );
63
+ const { el: revealAnchor, revealed, target: shownUsed } = useRevealedValue(() => props.used, {
64
+ animateOnMount: () => props.animateOnMount
65
+ });
66
+ const footer = computed(() => {
67
+ const s = state.value;
68
+ if (!s.limited) return text.value.unlimited;
69
+ if (s.over > 0) return text.value.over.replace("{amount}", fmt(s.over));
70
+ return text.value.left.replace("{amount}", fmt(s.remaining));
71
+ });
72
+ const valueText = computed(
73
+ () => state.value.limited ? `${text.value.reading.replace("{used}", fmt(props.used)).replace("{limit}", fmt(props.limit))}, ${footer.value}` : `${fmt(props.used)}, ${text.value.unlimited}`
74
+ );
75
+ const readingTone = computed(() => state.value.tone === "ok" ? "text-ink" : look.value.text);
76
+ const { class: rootClass, attrs: rest } = useMergedAttrs("flex w-full flex-col gap-1.5");
77
+ return (_ctx, _cache) => {
78
+ return openBlock(), createElementBlock("div", mergeProps({
79
+ ref: (el) => revealAnchor.value = el,
80
+ role: state.value.limited ? "meter" : "group",
81
+ "aria-valuenow": state.value.limited ? __props.used : void 0,
82
+ "aria-valuemin": state.value.limited ? 0 : void 0,
83
+ "aria-valuemax": state.value.limited ? __props.limit : void 0,
84
+ "aria-valuetext": state.value.limited ? valueText.value : void 0,
85
+ "aria-label": __props.label,
86
+ class: unref(rootClass)
87
+ }, unref(rest)), [
88
+ createElementVNode("div", {
89
+ class: normalizeClass([unref(METER_HEADER), "gap-3 text-sm"])
90
+ }, [
91
+ __props.label ? (openBlock(), createElementBlock("span", _hoisted_2, toDisplayString(__props.label), 1)) : createCommentVNode("", true),
92
+ createElementVNode("span", _hoisted_3, [
93
+ createVNode(_sfc_main$1, {
94
+ value: unref(shownUsed),
95
+ format: fmt,
96
+ "animate-on-mount": false,
97
+ class: normalizeClass(["transition-colors duration-(--duration-medium)", readingTone.value])
98
+ }, null, 8, ["value", "class"]),
99
+ state.value.limited ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
100
+ _cache[0] || (_cache[0] = createElementVNode("span", { class: "px-1" }, "/", -1)),
101
+ createVNode(_sfc_main$1, {
102
+ value: __props.limit,
103
+ format: fmt,
104
+ "animate-on-mount": false
105
+ }, null, 8, ["value"])
106
+ ], 64)) : createCommentVNode("", true)
107
+ ])
108
+ ], 2),
109
+ state.value.limited || __props.parts?.length ? (openBlock(), createElementBlock("div", {
110
+ key: 0,
111
+ class: normalizeClass(["relative", unref(METER_TRACK)]),
112
+ "aria-hidden": "true"
113
+ }, [
114
+ createElementVNode("div", _hoisted_4, [
115
+ (openBlock(true), createElementBlock(Fragment, null, renderList(layout.value.segments, (seg) => {
116
+ return openBlock(), createElementBlock("span", {
117
+ key: seg.label,
118
+ class: "h-full shrink-0 transition-[width,background-color] duration-700 ease-(--ease-emphasized) motion-reduce:transition-none",
119
+ style: normalizeStyle({ width: unref(revealed) ? `${seg.share * 100}%` : "0%", backgroundColor: seg.color })
120
+ }, null, 4);
121
+ }), 128))
122
+ ]),
123
+ createElementVNode("span", {
124
+ class: "absolute -inset-y-1 w-0.5 -translate-x-1/2 rounded-pill bg-ink transition-[left,opacity] duration-700 ease-(--ease-emphasized) motion-reduce:transition-none",
125
+ style: normalizeStyle({ left: `${(layout.value.limitAt ?? 1) * 100}%`, opacity: layout.value.limitAt != null && unref(revealed) ? 1 : 0 })
126
+ }, null, 4)
127
+ ], 2)) : createCommentVNode("", true),
128
+ createElementVNode("div", {
129
+ class: normalizeClass(["flex items-center gap-1 text-xs transition-colors duration-(--duration-medium)", state.value.over > 0 ? look.value.text : "text-muted"])
130
+ }, [
131
+ createVNode(_sfc_main$2, {
132
+ name: "lucide:triangle-alert",
133
+ size: 12,
134
+ class: normalizeClass(["shrink-0 transition-[opacity,width] duration-(--duration-medium)", state.value.over > 0 ? "w-3 opacity-100" : "w-0 opacity-0"])
135
+ }, null, 8, ["class"]),
136
+ createVNode(_sfc_main$3, {
137
+ value: footer.value,
138
+ align: "start"
139
+ }, null, 8, ["value"])
140
+ ], 2),
141
+ __props.parts?.length && !__props.hideLegend ? (openBlock(), createElementBlock("ul", _hoisted_5, [
142
+ (openBlock(true), createElementBlock(Fragment, null, renderList(layout.value.segments, (seg) => {
143
+ return openBlock(), createElementBlock("li", {
144
+ key: seg.label,
145
+ class: "flex items-center gap-1.5"
146
+ }, [
147
+ createElementVNode("span", {
148
+ class: "size-2 shrink-0 rounded-full",
149
+ style: normalizeStyle({ backgroundColor: seg.color })
150
+ }, null, 4),
151
+ createElementVNode("span", null, toDisplayString(seg.label), 1),
152
+ createElementVNode("span", _hoisted_6, toDisplayString(fmt(seg.value)), 1)
153
+ ]);
154
+ }), 128))
155
+ ])) : createCommentVNode("", true)
156
+ ], 16, _hoisted_1);
157
+ };
158
+ }
159
+ });
160
+ export {
161
+ _sfc_main as _
162
+ };
@@ -2,7 +2,7 @@ import { defineComponent, useId, openBlock, createBlock, unref, mergeProps, with
2
2
  import { RadioGroupRoot, RadioGroupItem, RadioGroupIndicator } from "reka-ui";
3
3
  import { useFieldControl } from "../composables/useField.js";
4
4
  import { useMergedAttrs } from "../composables/useMergedClass.js";
5
- import { _ as _sfc_main$1 } from "./LpIcon-6tSrZ3Zy.js";
5
+ import { _ as _sfc_main$1 } from "./LpIcon-HJP5xMz4.js";
6
6
  const _hoisted_1 = {
7
7
  key: 1,
8
8
  class: "flex min-w-0 flex-col"
@@ -5,7 +5,7 @@ import { useLabels } from "../composables/useLpConfig.js";
5
5
  import { useMergedAttrs } from "../composables/useMergedClass.js";
6
6
  import { CALENDAR_LABELS, CALENDAR_NAV, CALENDAR_FRAME } from "../components/calendar.js";
7
7
  import { normalizeRange, parseIsoDay, reshapeRange } from "../components/dateRange.js";
8
- import { _ as _sfc_main$1 } from "./LpIcon-6tSrZ3Zy.js";
8
+ import { _ as _sfc_main$1 } from "./LpIcon-HJP5xMz4.js";
9
9
  const _hoisted_1 = { class: "flex gap-4" };
10
10
  const __default__ = { inheritAttrs: false };
11
11
  const _sfc_main = /* @__PURE__ */ defineComponent({
@@ -2,6 +2,7 @@ import { defineComponent, openBlock, createBlock, unref, mergeProps, withCtx, cr
2
2
  import { SliderRoot, SliderTrack, SliderRange, SliderThumb } from "reka-ui";
3
3
  import { useFieldControl } from "../composables/useField.js";
4
4
  import { useMergedAttrs } from "../composables/useMergedClass.js";
5
+ import { useSliderDrag, SLIDER_GLIDE } from "../components/slider.js";
5
6
  const __default__ = { inheritAttrs: false };
6
7
  const _sfc_main = /* @__PURE__ */ defineComponent({
7
8
  ...__default__,
@@ -33,8 +34,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
33
34
  }
34
35
  const field = useFieldControl(() => ({ wrapped: false, disabled: props.disabled }));
35
36
  const { class: rootClass, attrs: rest } = useMergedAttrs(
36
- "relative flex h-5 w-full touch-none select-none items-center data-[disabled]:opacity-55"
37
+ `relative flex h-5 w-full touch-none select-none items-center data-[disabled]:opacity-55 ${SLIDER_GLIDE}`
37
38
  );
39
+ const { dragging, onPointerDown } = useSliderDrag();
38
40
  const thumbClass = "group/thumb relative block size-4 rounded-pill border-2 border-brand bg-surface shadow outline-none transition-transform duration-[var(--duration-fast)] ease-[var(--ease-emphasized)] hover:scale-110 active:scale-95 focus-visible:ring-2 focus-visible:ring-ring motion-reduce:hover:scale-100 motion-reduce:active:scale-100";
39
41
  const labelClass = "pointer-events-none absolute bottom-full left-1/2 mb-1.5 -translate-x-1/2 translate-y-0.5 rounded-control bg-surface-raised px-1.5 py-0.5 text-[11px] whitespace-nowrap text-ink tabular-nums opacity-0 shadow-sm transition-[opacity,translate] duration-[var(--duration-fast)] ease-[var(--ease-emphasized)] group-hover/thumb:translate-y-0 group-hover/thumb:opacity-100 group-focus-visible/thumb:translate-y-0 group-focus-visible/thumb:opacity-100 group-active/thumb:translate-y-0 group-active/thumb:opacity-100 motion-reduce:transition-none";
40
42
  return (_ctx, _cache) => {
@@ -47,6 +49,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
47
49
  disabled: unref(field).disabled,
48
50
  class: unref(rootClass)
49
51
  }, unref(rest), {
52
+ "data-dragging": unref(dragging) || void 0,
53
+ onPointerdown: unref(onPointerDown),
50
54
  "onUpdate:modelValue": onUpdate,
51
55
  onValueCommit: onCommit
52
56
  }), {
@@ -77,7 +81,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
77
81
  }), 64))
78
82
  ]),
79
83
  _: 1
80
- }, 16, ["model-value", "min", "max", "step", "min-steps-between-thumbs", "disabled", "class"]);
84
+ }, 16, ["model-value", "min", "max", "step", "min-steps-between-thumbs", "disabled", "class", "data-dragging", "onPointerdown"]);
81
85
  };
82
86
  }
83
87
  });
@@ -0,0 +1,73 @@
1
+ import { defineComponent, computed, openBlock, createBlock, withCtx, createElementVNode, mergeProps, unref, createVNode, createElementBlock } from "vue";
2
+ import { useLocale } from "../composables/useLocale.js";
3
+ import { useMergedAttrs } from "../composables/useMergedClass.js";
4
+ import { useNow } from "../composables/useNow.js";
5
+ import { _ as _sfc_main$2 } from "./LpRollingText-DiL717LK.js";
6
+ import { _ as _sfc_main$1 } from "./LpTooltip-Cz8SQwRt.js";
7
+ import { formatRelativeTime } from "../components/relativeTime.js";
8
+ import { toEpoch } from "../components/timeSpan.js";
9
+ const _hoisted_1 = ["datetime"];
10
+ const _hoisted_2 = ["datetime", "title"];
11
+ const __default__ = { inheritAttrs: false };
12
+ const _sfc_main = /* @__PURE__ */ defineComponent({
13
+ ...__default__,
14
+ __name: "LpRelativeTime",
15
+ props: {
16
+ date: {},
17
+ format: { default: "long" },
18
+ nowWithin: { default: 45e3 },
19
+ tooltip: { type: Boolean, default: true },
20
+ absolute: {},
21
+ locale: {}
22
+ },
23
+ setup(__props) {
24
+ const props = __props;
25
+ const locale = useLocale(() => props.locale);
26
+ const at = computed(() => toEpoch(props.date));
27
+ const options = computed(() => ({ locale: locale.value, style: props.format, nowWithin: props.nowWithin }));
28
+ const now = useNow(true, {
29
+ nextIn: (t) => formatRelativeTime(at.value, t, options.value).refreshIn,
30
+ restartOn: () => [at.value, locale.value, props.format, props.nowWithin]
31
+ });
32
+ const reading = computed(() => formatRelativeTime(at.value, now.value, options.value));
33
+ const exact = computed(() => {
34
+ if (!Number.isFinite(at.value)) return "";
35
+ return new Intl.DateTimeFormat(locale.value, props.absolute ?? { dateStyle: "full", timeStyle: "short" }).format(at.value);
36
+ });
37
+ const iso = computed(() => Number.isFinite(at.value) ? new Date(at.value).toISOString() : void 0);
38
+ const { class: rootClass, attrs: rest } = useMergedAttrs("inline-flex whitespace-nowrap tabular-nums");
39
+ return (_ctx, _cache) => {
40
+ return __props.tooltip && exact.value ? (openBlock(), createBlock(_sfc_main$1, {
41
+ key: 0,
42
+ content: exact.value
43
+ }, {
44
+ default: withCtx(() => [
45
+ createElementVNode("time", mergeProps({
46
+ datetime: iso.value,
47
+ tabindex: "0",
48
+ class: [unref(rootClass), "rounded-[3px] outline-none focus-visible:ring-2 focus-visible:ring-ring"]
49
+ }, unref(rest)), [
50
+ createVNode(_sfc_main$2, {
51
+ value: reading.value.text,
52
+ align: "start"
53
+ }, null, 8, ["value"])
54
+ ], 16, _hoisted_1)
55
+ ]),
56
+ _: 1
57
+ }, 8, ["content"])) : (openBlock(), createElementBlock("time", mergeProps({
58
+ key: 1,
59
+ datetime: iso.value,
60
+ title: exact.value || void 0,
61
+ class: unref(rootClass)
62
+ }, unref(rest)), [
63
+ createVNode(_sfc_main$2, {
64
+ value: reading.value.text,
65
+ align: "start"
66
+ }, null, 8, ["value"])
67
+ ], 16, _hoisted_2));
68
+ };
69
+ }
70
+ });
71
+ export {
72
+ _sfc_main as _
73
+ };
@@ -0,0 +1,180 @@
1
+ import { defineComponent, useModel, ref, openBlock, createElementBlock, mergeProps, unref, createElementVNode, toDisplayString, createCommentVNode, createVNode, withCtx, createTextVNode, TransitionGroup, Fragment, renderList, renderSlot, mergeModels, nextTick } from "vue";
2
+ import { useFieldControl } from "../composables/useField.js";
3
+ import { useLabels } from "../composables/useLpConfig.js";
4
+ import { useMergedAttrs } from "../composables/useMergedClass.js";
5
+ import { useRepeater } from "../composables/useRepeater.js";
6
+ import { usePrefersReducedMotion } from "../composables/useReducedMotion.js";
7
+ import { _ as _sfc_main$1 } from "./LpButton-CVxBfGjd.js";
8
+ import { _ as _sfc_main$2 } from "./LpIcon-HJP5xMz4.js";
9
+ import { _ as _sfc_main$3 } from "./LpShift-DXNsauQZ.js";
10
+ import '../assets/LpRepeater-C1Cw27hj.css';const _hoisted_1 = { class: "flex items-center justify-between gap-2" };
11
+ const _hoisted_2 = {
12
+ key: 0,
13
+ class: "text-sm font-medium text-ink"
14
+ };
15
+ const _hoisted_3 = { class: "min-w-0 flex-1" };
16
+ const _hoisted_4 = {
17
+ key: "empty",
18
+ class: "text-xs text-muted"
19
+ };
20
+ const focusable = 'input:not([type="hidden"]):not([disabled]), textarea:not([disabled]), select:not([disabled]), button:not([disabled]), [tabindex="0"], [contenteditable="true"]';
21
+ const _sfc_main = /* @__PURE__ */ defineComponent({
22
+ ...{ inheritAttrs: false },
23
+ __name: "LpRepeater",
24
+ props: /* @__PURE__ */ mergeModels({
25
+ createItem: { type: Function },
26
+ itemKey: { type: Function },
27
+ label: {},
28
+ disabled: { type: Boolean },
29
+ labels: {}
30
+ }, {
31
+ "modelValue": { default: () => [] },
32
+ "modelModifiers": {}
33
+ }),
34
+ emits: ["update:modelValue"],
35
+ setup(__props, { expose: __expose }) {
36
+ const props = __props;
37
+ const model = useModel(__props, "modelValue");
38
+ const field = useFieldControl(() => ({ wrapped: false, disabled: props.disabled }));
39
+ const text = useLabels("repeater", { add: "Add item", remove: "Remove item {index}", empty: "No items" }, () => props.labels);
40
+ const list = useRepeater({
41
+ value: () => model.value,
42
+ set: (items) => {
43
+ model.value = items;
44
+ },
45
+ createItem: () => props.createItem(),
46
+ itemKey: () => props.itemKey,
47
+ disabled: () => field.value.disabled
48
+ });
49
+ const { rows } = list;
50
+ const rowsHost = ref(null);
51
+ const reducedMotion = usePrefersReducedMotion();
52
+ const addButton = ref(null);
53
+ function focusRow(index) {
54
+ rowAt(index)?.querySelector(focusable)?.focus({ preventScroll: true });
55
+ }
56
+ function rowAt(index) {
57
+ return Array.from(rowsHost.value?.children ?? []).filter(
58
+ (node) => node.hasAttribute("data-lp-repeater-row") && !node.hasAttribute("inert")
59
+ )[index];
60
+ }
61
+ function beforeLeave(el) {
62
+ const row = el;
63
+ row.style.width = `${row.offsetWidth}px`;
64
+ row.style.top = `${row.offsetTop}px`;
65
+ row.setAttribute("inert", "");
66
+ row.setAttribute("aria-hidden", "true");
67
+ }
68
+ function beforeEnter(el) {
69
+ const row = el;
70
+ row.removeAttribute("inert");
71
+ row.removeAttribute("aria-hidden");
72
+ row.style.removeProperty("top");
73
+ row.style.removeProperty("width");
74
+ }
75
+ async function add() {
76
+ if (field.value.disabled) return;
77
+ list.add();
78
+ await nextTick();
79
+ focusRow(model.value.length - 1);
80
+ }
81
+ async function remove(index) {
82
+ if (field.value.disabled) return;
83
+ const row = rowAt(index);
84
+ const restore = row?.contains(row.ownerDocument.activeElement);
85
+ list.remove(index);
86
+ if (!restore) return;
87
+ await nextTick();
88
+ if (model.value.length) focusRow(Math.min(index, model.value.length - 1));
89
+ else addButton.value?.$el?.focus({ preventScroll: true });
90
+ }
91
+ __expose({ add, remove, update: list.update });
92
+ const { class: rootClass, attrs: rest } = useMergedAttrs("flex min-w-0 flex-col gap-2");
93
+ return (_ctx, _cache) => {
94
+ return openBlock(), createElementBlock("div", mergeProps(unref(rest), { class: unref(rootClass) }), [
95
+ createElementVNode("div", _hoisted_1, [
96
+ __props.label ? (openBlock(), createElementBlock("span", _hoisted_2, toDisplayString(__props.label), 1)) : createCommentVNode("", true),
97
+ createVNode(_sfc_main$1, {
98
+ ref_key: "addButton",
99
+ ref: addButton,
100
+ size: "xs",
101
+ variant: "ghost",
102
+ disabled: unref(field).disabled,
103
+ onClick: add
104
+ }, {
105
+ default: withCtx(() => [
106
+ createVNode(_sfc_main$2, {
107
+ name: "lucide:plus",
108
+ size: 14
109
+ }),
110
+ createTextVNode(toDisplayString(unref(text).add), 1)
111
+ ]),
112
+ _: 1
113
+ }, 8, ["disabled"])
114
+ ]),
115
+ createVNode(_sfc_main$3, { axis: "height" }, {
116
+ default: withCtx(() => [
117
+ createElementVNode("div", {
118
+ ref_key: "rowsHost",
119
+ ref: rowsHost,
120
+ class: "relative flex min-w-0 flex-col gap-2"
121
+ }, [
122
+ createVNode(TransitionGroup, {
123
+ name: "lp-repeater",
124
+ css: !unref(reducedMotion),
125
+ onBeforeEnter: beforeEnter,
126
+ onBeforeLeave: beforeLeave
127
+ }, {
128
+ default: withCtx(() => [
129
+ (openBlock(true), createElementBlock(Fragment, null, renderList(unref(rows), ({ item, key }, index) => {
130
+ return openBlock(), createElementBlock("div", {
131
+ key,
132
+ "data-lp-repeater-row": "",
133
+ class: "flex min-w-0 items-start gap-2"
134
+ }, [
135
+ createElementVNode("div", _hoisted_3, [
136
+ renderSlot(_ctx.$slots, "default", {
137
+ item,
138
+ index,
139
+ disabled: unref(field).disabled,
140
+ update: (next) => unref(list).update(index, next),
141
+ remove: () => remove(index)
142
+ })
143
+ ]),
144
+ createVNode(_sfc_main$1, {
145
+ variant: "ghost",
146
+ size: "sm",
147
+ square: "",
148
+ disabled: unref(field).disabled,
149
+ "aria-label": unref(text).remove.replace("{index}", String(index + 1)),
150
+ onClick: ($event) => remove(index)
151
+ }, {
152
+ default: withCtx(() => [
153
+ createVNode(_sfc_main$2, {
154
+ name: "lucide:x",
155
+ size: 14
156
+ })
157
+ ]),
158
+ _: 1
159
+ }, 8, ["disabled", "aria-label", "onClick"])
160
+ ]);
161
+ }), 128)),
162
+ !unref(rows).length ? (openBlock(), createElementBlock("div", _hoisted_4, [
163
+ renderSlot(_ctx.$slots, "empty", {}, () => [
164
+ createTextVNode(toDisplayString(unref(text).empty), 1)
165
+ ])
166
+ ])) : createCommentVNode("", true)
167
+ ]),
168
+ _: 3
169
+ }, 8, ["css"])
170
+ ], 512)
171
+ ]),
172
+ _: 3
173
+ })
174
+ ], 16);
175
+ };
176
+ }
177
+ });
178
+ export {
179
+ _sfc_main as _
180
+ };
@@ -0,0 +1,76 @@
1
+ import { defineComponent, ref, watch, computed, onBeforeUnmount, openBlock, createBlock, resolveDynamicComponent, mergeProps, unref, withCtx, renderSlot } from "vue";
2
+ import { prefersReducedMotion, easingToken } from "../composables/easing.js";
3
+ import { useMergedAttrs } from "../composables/useMergedClass.js";
4
+ import { useReveal } from "../composables/useReveal.js";
5
+ import { revealFrom, revealTo, staggerDelay } from "../components/reveal.js";
6
+ const __default__ = { inheritAttrs: false };
7
+ const _sfc_main = /* @__PURE__ */ defineComponent({
8
+ ...__default__,
9
+ __name: "LpRevealOnScroll",
10
+ props: {
11
+ preset: { default: "rise" },
12
+ direction: { default: "up" },
13
+ distance: { default: 16 },
14
+ delay: { default: 0 },
15
+ duration: { default: 520 },
16
+ stagger: { default: 0 },
17
+ immediate: { type: Boolean, default: false },
18
+ threshold: { default: 0.15 },
19
+ as: { default: "div" }
20
+ },
21
+ setup(__props) {
22
+ const props = __props;
23
+ const { el, revealed } = useReveal({ immediate: () => props.immediate, threshold: props.threshold });
24
+ const host = ref(null);
25
+ watch(host, (node) => el.value = node);
26
+ const { class: classes, attrs: rest } = useMergedAttrs(() => void 0);
27
+ const played = ref(false);
28
+ const hidden = computed(() => !played.value && !revealed.value);
29
+ const running = [];
30
+ function play(node) {
31
+ if (props.immediate || prefersReducedMotion() || typeof node.animate !== "function") return;
32
+ const from = revealFrom(props.preset, props.direction, props.distance);
33
+ const frames = [from, revealTo(from)];
34
+ const easing = easingToken("ease-emphasized");
35
+ const targets = props.stagger > 0 ? Array.from(node.children) : [node];
36
+ targets.forEach((target, index) => {
37
+ running.push(
38
+ target.animate(frames, {
39
+ duration: props.duration,
40
+ delay: props.stagger > 0 ? staggerDelay(index, props.delay, props.stagger) : props.delay,
41
+ easing,
42
+ fill: "backwards"
43
+ })
44
+ );
45
+ });
46
+ }
47
+ watch(
48
+ revealed,
49
+ (seen) => {
50
+ if (!seen || played.value) return;
51
+ played.value = true;
52
+ if (host.value) play(host.value);
53
+ },
54
+ { flush: "post", immediate: true }
55
+ );
56
+ onBeforeUnmount(() => {
57
+ for (const animation of running) animation.cancel();
58
+ });
59
+ return (_ctx, _cache) => {
60
+ return openBlock(), createBlock(resolveDynamicComponent(__props.as), mergeProps({
61
+ ref_key: "host",
62
+ ref: host,
63
+ class: unref(classes),
64
+ style: hidden.value ? { opacity: 0 } : void 0
65
+ }, unref(rest)), {
66
+ default: withCtx(() => [
67
+ renderSlot(_ctx.$slots, "default")
68
+ ]),
69
+ _: 3
70
+ }, 16, ["class", "style"]);
71
+ };
72
+ }
73
+ });
74
+ export {
75
+ _sfc_main as _
76
+ };
@@ -1,12 +1,13 @@
1
1
  import { defineComponent, computed, openBlock, createElementBlock, normalizeStyle, normalizeClass, createVNode, Transition, withCtx, renderSlot, createTextVNode, toDisplayString } from "vue";
2
- import '../assets/LpRollingText-BGnE6q9j.css';const _sfc_main = /* @__PURE__ */ defineComponent({
2
+ import '../assets/LpRollingText-dyOXedGO.css';const _sfc_main = /* @__PURE__ */ defineComponent({
3
3
  __name: "LpRollingText",
4
4
  props: {
5
5
  value: {},
6
6
  mode: { default: "slide" },
7
7
  direction: { default: "up" },
8
8
  duration: { default: 320 },
9
- align: { default: "center" }
9
+ align: { default: "center" },
10
+ wrap: { type: Boolean }
10
11
  },
11
12
  setup(__props) {
12
13
  const props = __props;
@@ -25,7 +26,7 @@ import '../assets/LpRollingText-BGnE6q9j.css';const _sfc_main = /* @__PURE__ */
25
26
  }));
26
27
  return (_ctx, _cache) => {
27
28
  return openBlock(), createElementBlock("span", {
28
- class: normalizeClass(["lp-roll relative inline-flex overflow-hidden align-bottom", justify.value]),
29
+ class: normalizeClass(["lp-roll relative inline-flex overflow-hidden align-bottom", [justify.value, __props.wrap && "lp-roll--wrap"]]),
29
30
  style: normalizeStyle(style.value)
30
31
  }, [
31
32
  createVNode(Transition, { name: name.value }, {
@@ -0,0 +1,85 @@
1
+ import { defineComponent, watch, onMounted, openBlock, createBlock, resolveDynamicComponent, mergeProps, unref, withCtx, createElementVNode, toDisplayString, createVNode, createElementBlock, Fragment, renderList, createTextVNode } from "vue";
2
+ import { prefersReducedMotion } from "../composables/easing.js";
3
+ import { useMergedAttrs } from "../composables/useMergedClass.js";
4
+ import { useReveal } from "../composables/useReveal.js";
5
+ import { useScramble } from "../composables/useScramble.js";
6
+ import { _ as _sfc_main$1 } from "./LpShift-DXNsauQZ.js";
7
+ const _hoisted_1 = { class: "sr-only" };
8
+ const _hoisted_2 = {
9
+ key: 1,
10
+ class: "lp-scramble__cell relative inline-block"
11
+ };
12
+ const _hoisted_3 = { class: "invisible" };
13
+ const _hoisted_4 = { class: "absolute inset-0 text-center opacity-60" };
14
+ const __default__ = { inheritAttrs: false };
15
+ const _sfc_main = /* @__PURE__ */ defineComponent({
16
+ ...__default__,
17
+ __name: "LpScramble",
18
+ props: {
19
+ value: {},
20
+ trigger: { default: "reveal" },
21
+ duration: { default: 900 },
22
+ order: { default: "sequential" },
23
+ glyphs: {},
24
+ animateChanges: { type: Boolean, default: true },
25
+ as: { default: "span" }
26
+ },
27
+ emits: ["done"],
28
+ setup(__props, { expose: __expose, emit: __emit }) {
29
+ const props = __props;
30
+ const emit = __emit;
31
+ const { class: rootClass, attrs: rest } = useMergedAttrs(() => "lp-scramble inline-block whitespace-pre align-baseline");
32
+ const masked = (props.trigger === "reveal" || props.trigger === "mount") && !prefersReducedMotion();
33
+ const { cells, running, play } = useScramble(() => props.value, {
34
+ duration: () => props.duration,
35
+ order: () => props.order,
36
+ glyphs: () => props.glyphs,
37
+ onChange: () => props.animateChanges,
38
+ start: masked ? "masked" : "settled",
39
+ onDone: () => emit("done")
40
+ });
41
+ const { el, revealed } = useReveal({ immediate: () => props.trigger !== "reveal" });
42
+ watch(revealed, (seen) => seen && props.trigger === "reveal" && play());
43
+ onMounted(() => {
44
+ if (props.trigger === "mount" || props.trigger === "reveal" && revealed.value) play();
45
+ });
46
+ function onEnter() {
47
+ if (props.trigger === "hover" && !running.value) play();
48
+ }
49
+ __expose({ play });
50
+ return (_ctx, _cache) => {
51
+ return openBlock(), createBlock(resolveDynamicComponent(__props.as), mergeProps({
52
+ ref_key: "el",
53
+ ref: el,
54
+ class: unref(rootClass)
55
+ }, unref(rest), { onPointerenter: onEnter }), {
56
+ default: withCtx(() => [
57
+ createElementVNode("span", _hoisted_1, toDisplayString(__props.value), 1),
58
+ createVNode(_sfc_main$1, {
59
+ axis: "width",
60
+ class: "inline-block align-baseline",
61
+ "aria-hidden": "true"
62
+ }, {
63
+ default: withCtx(() => [
64
+ (openBlock(true), createElementBlock(Fragment, null, renderList(unref(cells), (cell, i) => {
65
+ return openBlock(), createElementBlock(Fragment, { key: i }, [
66
+ cell.settled ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
67
+ createTextVNode(toDisplayString(cell.char), 1)
68
+ ], 64)) : (openBlock(), createElementBlock("span", _hoisted_2, [
69
+ createElementVNode("span", _hoisted_3, toDisplayString(cell.sizer), 1),
70
+ createElementVNode("span", _hoisted_4, toDisplayString(cell.char), 1)
71
+ ]))
72
+ ], 64);
73
+ }), 128))
74
+ ]),
75
+ _: 1
76
+ })
77
+ ]),
78
+ _: 1
79
+ }, 16, ["class"]);
80
+ };
81
+ }
82
+ });
83
+ export {
84
+ _sfc_main as _
85
+ };