@leavepulse/ui 0.76.1 → 0.77.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 (146) hide show
  1. package/dist/chunks/{DropzoneLinkField-C-9BCGJn.js → DropzoneLinkField-BvWe0rHt.js} +2 -2
  2. package/dist/chunks/{FieldWrapper-CORPzo9s.js → FieldWrapper-D-GtSx5F.js} +1 -1
  3. package/dist/chunks/{LpActionBar-BP1ld7-S.js → LpActionBar-DlzVMdxD.js} +2 -2
  4. package/dist/chunks/{LpAddressInput-De_LTYM7.js → LpAddressInput-BmOTL66n.js} +4 -4
  5. package/dist/chunks/{LpAlert-n5XPAZfv.js → LpAlert-D65nvFrR.js} +2 -2
  6. package/dist/chunks/{LpAppShell-Cpy_t1U_.js → LpAppShell-4gV7G84j.js} +5 -5
  7. package/dist/chunks/{LpBadge-wUYLN4U9.js → LpBadge-DCikN2YX.js} +1 -1
  8. package/dist/chunks/{LpBottomNav-CbNQQPuL.js → LpBottomNav-BcFnSRiz.js} +1 -1
  9. package/dist/chunks/{LpBreadcrumbs-DPdbth-c.js → LpBreadcrumbs-DiniBg15.js} +1 -1
  10. package/dist/chunks/{LpButton-CFb44IjC.js → LpButton-Di-mz7qu.js} +1 -1
  11. package/dist/chunks/{LpCard-r13WRqox.js → LpCard-BhB1Hs2Y.js} +1 -1
  12. package/dist/chunks/{LpCheckbox-Cs4SHaHX.js → LpCheckbox-BY1CTjz-.js} +1 -1
  13. package/dist/chunks/{LpCodeBlock-DRC8VbXW.js → LpCodeBlock-Cfrq_Pii.js} +1 -1
  14. package/dist/chunks/{LpCodeDisplay-CE9TxCA4.js → LpCodeDisplay-iNbGnmji.js} +4 -4
  15. package/dist/chunks/{LpConfirmDialog-CphJR6Q9.js → LpConfirmDialog-2RwmGR5h.js} +2 -2
  16. package/dist/chunks/{LpConfirmHost-QSJ0zl63.js → LpConfirmHost-CAadxI-d.js} +1 -1
  17. package/dist/chunks/{LpCopyButton-xF7wFVoU.js → LpCopyButton-dwWGc2kq.js} +1 -1
  18. package/dist/chunks/{LpCountdown-DgeY3cLG.js → LpCountdown-Lr1F0ivE.js} +1 -1
  19. package/dist/chunks/{LpDataList-Jxyl9H5w.js → LpDataList-UYvxUUOF.js} +1 -1
  20. package/dist/chunks/{LpDrawer-DQZixOqJ.js → LpDrawer-CrG8t_KP.js} +1 -1
  21. package/dist/chunks/{LpEditable-Cy6GLbFx.js → LpEditable-Cn1g8jZO.js} +2 -2
  22. package/dist/chunks/{LpFileTree-zIFEgo3I.js → LpFileTree-DSPVLCUr.js} +2 -2
  23. package/dist/chunks/{LpFileTreeNode-cT6BIWvz.js → LpFileTreeNode-Bf7g4yzG.js} +3 -3
  24. package/dist/chunks/{LpFormField-Ch69Jd-X.js → LpFormField-CT2WrjeU.js} +1 -1
  25. package/dist/chunks/{LpHintLayer-CgObdUsM.js → LpHintLayer-BLTfhG1V.js} +2 -2
  26. package/dist/chunks/{LpHints-Bz-BlaSl.js → LpHints-XUrXxG-I.js} +3 -3
  27. package/dist/chunks/{LpInfraNode-46XOCkfq.js → LpInfraNode-CovQ07Bz.js} +2 -2
  28. package/dist/chunks/{LpInput-Tw-yxT4I.js → LpInput-BVws0fKl.js} +1 -1
  29. package/dist/chunks/{LpLightbox-B95yu22B.js → LpLightbox-DtPQalMu.js} +2 -2
  30. package/dist/chunks/{LpLoader-DVwkOmt9.js → LpLoader-BTubl9h6.js} +1 -1
  31. package/dist/chunks/{LpLogViewer-D25jM2_I.js → LpLogViewer-C0LXbxkJ.js} +4 -4
  32. package/dist/chunks/{LpMapPicker-DRGgh89B.js → LpMapPicker-BHQeQIYM.js} +1 -1
  33. package/dist/chunks/{LpMediaGallery-Bkram-MO.js → LpMediaGallery-D9yp_TSr.js} +1 -1
  34. package/dist/chunks/{LpModal-C0tGg_D_.js → LpModal-CoGhLTyH.js} +1 -1
  35. package/dist/chunks/{LpModalNav-iDDtT9c1.js → LpModalNav-DLuo9WNP.js} +3 -3
  36. package/dist/chunks/{LpNotificationBell-3244LUVc.js → LpNotificationBell-BSL6bG5g.js} +4 -4
  37. package/dist/chunks/{LpPaletteTheme-DiLYKQiZ.js → LpPaletteTheme-Dn7y0b7u.js} +3 -3
  38. package/dist/chunks/{LpPasswordInput-BkHKQDhM.js → LpPasswordInput-ck-SUAZo.js} +2 -2
  39. package/dist/chunks/{LpPie-DrZepi0p.js → LpPie-EiPCuK-Y.js} +2 -2
  40. package/dist/chunks/{LpPipeline-B3aOVOkV.js → LpPipeline-PqXZATqf.js} +2 -2
  41. package/dist/chunks/{LpRepeater-D7ZmnIYd.js → LpRepeater-COgFLjI8.js} +2 -2
  42. package/dist/chunks/{LpScramble-Bn9OoOtC.js → LpScramble-DoJPeIJM.js} +1 -1
  43. package/dist/chunks/{LpScrollArea-Hz3-JWUG.js → LpScrollArea-MyEnVB_5.js} +9 -8
  44. package/dist/chunks/{LpSecretField-BbmqM9ye.js → LpSecretField-DQ0XsXOU.js} +6 -6
  45. package/dist/chunks/{LpShift-CCq7dofl.js → LpShift-Bi4VB7yd.js} +2 -2
  46. package/dist/chunks/{LpSidebar-D6zO8vLm.js → LpSidebar-DzcojgKg.js} +3 -3
  47. package/dist/chunks/{LpSidebarNav-Bky8chrv.js → LpSidebarNav-DX_rDmsW.js} +3 -3
  48. package/dist/chunks/{LpSidebarRow-BRYhNDSo.js → LpSidebarRow-DMyPZkVB.js} +1 -1
  49. package/dist/chunks/{LpStat-f2LfDCJ4.js → LpStat-C6tiaChL.js} +1 -1
  50. package/dist/chunks/{LpStatus-DglxttQ7.js → LpStatus-Bm8HtCGH.js} +2 -2
  51. package/dist/chunks/{LpStepMark-DpzKVyh8.js → LpStepMark-BVwtjCFD.js} +1 -1
  52. package/dist/chunks/{LpStepper-DpsocBNJ.js → LpStepper-0K8anqck.js} +1 -1
  53. package/dist/chunks/{LpSwap-C96c0LWh.js → LpSwap-DuVu1CTs.js} +1 -1
  54. package/dist/chunks/{LpSwitch-BnXd1llc.js → LpSwitch-DLXJfGir.js} +1 -1
  55. package/dist/chunks/{LpTabFace-DPCwKkH2.js → LpTabFace-BdNV3A7p.js} +1 -1
  56. package/dist/chunks/{LpTableFilter-CiVBpaq0.js → LpTableFilter-BwbVCEeg.js} +3 -3
  57. package/dist/chunks/{LpTagsInput-C-mDG648.js → LpTagsInput-xSWftwra.js} +2 -2
  58. package/dist/chunks/{LpTextarea-TE-yZv2U.js → LpTextarea-Pj0ZYNSY.js} +1 -1
  59. package/dist/chunks/{LpThemeStudio-BpORDvH6.js → LpThemeStudio-BwX4uf3g.js} +2 -2
  60. package/dist/chunks/{LpThemeSwitcher-BnEn_mvf.js → LpThemeSwitcher-Byurs98d.js} +2 -2
  61. package/dist/chunks/{LpToaster-IwTXjbbU.js → LpToaster-DDzV1B2H.js} +1 -1
  62. package/dist/chunks/{LpTopologyCanvas-B1gIbS0n.js → LpTopologyCanvas-BlfSGRbI.js} +1 -1
  63. package/dist/chunks/{LpTour-BZq-mUMv.js → LpTour-CXA3FCey.js} +1 -1
  64. package/dist/chunks/{LpTruncate-CflAIwiJ.js → LpTruncate-Dg04QB9v.js} +1 -1
  65. package/dist/chunks/{LpUptimeBar-DqNvvMBK.js → LpUptimeBar-iKt3rELK.js} +2 -2
  66. package/dist/chunks/{RevealToggle-BEit1n6Z.js → RevealToggle-FTHOyJMg.js} +1 -1
  67. package/dist/chunks/{TourCard-DNclH3u_.js → TourCard-DV9wnmvR.js} +3 -3
  68. package/dist/components/DropzoneLinkField.vue.js +1 -1
  69. package/dist/components/FieldWrapper.vue.js +1 -1
  70. package/dist/components/LpActionBar.vue.js +1 -1
  71. package/dist/components/LpAddressInput.vue.js +1 -1
  72. package/dist/components/LpAlert.vue.js +1 -1
  73. package/dist/components/LpAppShell.vue.js +1 -1
  74. package/dist/components/LpBadge.vue.js +1 -1
  75. package/dist/components/LpBottomNav.vue.js +1 -1
  76. package/dist/components/LpBreadcrumbs.vue.js +1 -1
  77. package/dist/components/LpButton.vue.js +1 -1
  78. package/dist/components/LpCard.vue.js +1 -1
  79. package/dist/components/LpChart.vue.js +2 -2
  80. package/dist/components/LpCheckbox.vue.js +1 -1
  81. package/dist/components/LpCodeBlock.vue.js +1 -1
  82. package/dist/components/LpCodeDisplay.vue.js +1 -1
  83. package/dist/components/LpCommandPalette.vue.js +3 -3
  84. package/dist/components/LpConfirmDialog.vue.js +1 -1
  85. package/dist/components/LpConfirmHost.vue.js +1 -1
  86. package/dist/components/LpCopyButton.vue.js +1 -1
  87. package/dist/components/LpCountdown.vue.js +1 -1
  88. package/dist/components/LpDataList.vue.js +1 -1
  89. package/dist/components/LpDrawer.vue.js +1 -1
  90. package/dist/components/LpDropzone.vue.js +1 -1
  91. package/dist/components/LpEditable.vue.js +1 -1
  92. package/dist/components/LpFileTree.vue.js +1 -1
  93. package/dist/components/LpFileTreeNode.vue.js +1 -1
  94. package/dist/components/LpFormField.vue.js +1 -1
  95. package/dist/components/LpHintLayer.vue.js +1 -1
  96. package/dist/components/LpHints.vue.js +1 -1
  97. package/dist/components/LpImageEditor.vue.js +1 -1
  98. package/dist/components/LpInfraNode.vue.js +1 -1
  99. package/dist/components/LpInput.vue.js +1 -1
  100. package/dist/components/LpLightbox.vue.js +1 -1
  101. package/dist/components/LpLoader.vue.js +1 -1
  102. package/dist/components/LpLogViewer.vue.js +1 -1
  103. package/dist/components/LpMapPicker.vue.js +1 -1
  104. package/dist/components/LpMediaGallery.vue.js +1 -1
  105. package/dist/components/LpModal.vue.js +1 -1
  106. package/dist/components/LpModalNav.vue.js +1 -1
  107. package/dist/components/LpNotificationBell.vue.js +1 -1
  108. package/dist/components/LpPaletteTheme.vue.js +1 -1
  109. package/dist/components/LpPasswordInput.vue.js +1 -1
  110. package/dist/components/LpPie.vue.js +1 -1
  111. package/dist/components/LpPipeline.vue.js +1 -1
  112. package/dist/components/LpRepeater.vue.js +1 -1
  113. package/dist/components/LpScramble.vue.js +1 -1
  114. package/dist/components/LpScrollArea.vue.d.ts +2 -0
  115. package/dist/components/LpScrollArea.vue.js +1 -1
  116. package/dist/components/LpSecretField.vue.js +1 -1
  117. package/dist/components/LpShift.vue.js +1 -1
  118. package/dist/components/LpShortcutsDialog.vue.js +1 -1
  119. package/dist/components/LpSidebar.vue.js +1 -1
  120. package/dist/components/LpSidebarNav.vue.js +1 -1
  121. package/dist/components/LpSidebarRow.vue.js +1 -1
  122. package/dist/components/LpStat.vue.js +1 -1
  123. package/dist/components/LpStatus.vue.js +1 -1
  124. package/dist/components/LpStepMark.vue.js +1 -1
  125. package/dist/components/LpStepper.vue.js +1 -1
  126. package/dist/components/LpSwap.vue.js +1 -1
  127. package/dist/components/LpSwitch.vue.js +1 -1
  128. package/dist/components/LpTabFace.vue.js +1 -1
  129. package/dist/components/LpTable.vue.js +7 -7
  130. package/dist/components/LpTableFilter.vue.js +1 -1
  131. package/dist/components/LpTabs.vue.js +1 -1
  132. package/dist/components/LpTagsInput.vue.js +1 -1
  133. package/dist/components/LpTextarea.vue.js +1 -1
  134. package/dist/components/LpThemeStudio.vue.js +1 -1
  135. package/dist/components/LpThemeSwitcher.vue.js +1 -1
  136. package/dist/components/LpToaster.vue.js +1 -1
  137. package/dist/components/LpTopologyCanvas.vue.js +1 -1
  138. package/dist/components/LpTour.vue.js +1 -1
  139. package/dist/components/LpTruncate.vue.js +1 -1
  140. package/dist/components/LpUptimeBar.vue.js +1 -1
  141. package/dist/components/RevealToggle.vue.js +1 -1
  142. package/dist/components/TourCard.vue.js +1 -1
  143. package/dist/index.js +58 -58
  144. package/package.json +1 -1
  145. package/src/components/LpScrollArea.vue +14 -7
  146. package/src/components/LpShift.vue +7 -0
@@ -23,6 +23,10 @@ import { prefersReducedMotion } from "../composables/easing"
23
23
  // `contentClass` styles the scrollable CONTENT container (the viewport's inner
24
24
  // wrapper) — put list layout here (display:grid / gap / padding), not on the
25
25
  // component root, since items live inside reka's viewport.
26
+ // `floating` is for a region that sits inside a card or a panel rather than
27
+ // against a wall: the bar keeps a gap from the edge and its thumb is rounded at
28
+ // both ends. Flush to a wall, a half-rounded thumb reads as part of the frame;
29
+ // in the middle of a card the same thumb looks sliced off.
26
30
  // `barInsetTop` (any CSS length) pulls the vertical scrollbar down by that much,
27
31
  // so it doesn't run under a sticky header pinned at the top of the viewport.
28
32
  // Wheel and keyboard scrolling ease by default. `instant` opts back out, and
@@ -35,10 +39,11 @@ const props = withDefaults(
35
39
  defineProps<{
36
40
  fade?: boolean
37
41
  instant?: boolean
42
+ floating?: boolean
38
43
  contentClass?: string
39
44
  barInsetTop?: string
40
45
  }>(),
41
- { fade: true, instant: false },
46
+ { fade: true, instant: false, floating: false },
42
47
  )
43
48
 
44
49
  // Re-emit the native scroll event of the underlying viewport so consumers that
@@ -251,8 +256,8 @@ function onThumbPointerDown() {
251
256
  <ScrollAreaScrollbar
252
257
  orientation="vertical"
253
258
  force-mount
254
- class="group z-1 flex w-3.5 touch-none select-none justify-end py-px pl-2.5 pr-px"
255
- :class="barFade"
259
+ class="group z-1 flex touch-none select-none justify-end pl-2.5"
260
+ :class="[barFade, floating ? 'w-4 py-1 pr-1' : 'w-3.5 py-px pr-px']"
256
261
  :style="barInsetTop ? { marginTop: barInsetTop } : undefined"
257
262
  @pointerdown.capture="onTrackPointerDown($event, 'y')"
258
263
  >
@@ -264,20 +269,22 @@ function onThumbPointerDown() {
264
269
  the positioning reka owns. -->
265
270
  <ScrollAreaThumb
266
271
  data-lp-thumb
267
- class="relative min-w-1 rounded-l-pill bg-brand/40 before:absolute before:inset-y-0 before:right-0 before:-left-2.5 before:content-[''] transition-[min-width,background-color] duration-[var(--duration-fast)] group-hover:min-w-1.5 group-hover:bg-brand"
272
+ class="relative min-w-1 bg-brand/40 before:absolute before:inset-y-0 before:right-0 before:-left-2.5 before:content-[''] transition-[min-width,background-color] duration-[var(--duration-fast)] group-hover:min-w-1.5 group-hover:bg-brand"
273
+ :class="floating ? 'rounded-pill' : 'rounded-l-pill'"
268
274
  @pointerdown="onThumbPointerDown"
269
275
  />
270
276
  </ScrollAreaScrollbar>
271
277
 
272
278
  <ScrollAreaScrollbar
273
279
  orientation="horizontal"
274
- class="group z-1 flex h-3.5 flex-col touch-none select-none justify-end px-px pb-px pt-2.5"
275
- :class="barFade"
280
+ class="group z-1 flex flex-col touch-none select-none justify-end pt-2.5"
281
+ :class="[barFade, floating ? 'h-4 px-1 pb-1' : 'h-3.5 px-px pb-px']"
276
282
  @pointerdown.capture="onTrackPointerDown($event, 'x')"
277
283
  >
278
284
  <ScrollAreaThumb
279
285
  data-lp-thumb
280
- class="relative min-h-1 rounded-t-pill bg-brand/40 before:absolute before:inset-x-0 before:bottom-0 before:-top-2.5 before:content-[''] transition-[min-height,background-color] duration-[var(--duration-fast)] group-hover:min-h-1.5 group-hover:bg-brand"
286
+ class="relative min-h-1 bg-brand/40 before:absolute before:inset-x-0 before:bottom-0 before:-top-2.5 before:content-[''] transition-[min-height,background-color] duration-[var(--duration-fast)] group-hover:min-h-1.5 group-hover:bg-brand"
287
+ :class="floating ? 'rounded-pill' : 'rounded-t-pill'"
281
288
  @pointerdown="onThumbPointerDown"
282
289
  />
283
290
  </ScrollAreaScrollbar>
@@ -295,8 +295,15 @@ defineExpose({ resizing })
295
295
  content spills past the easing edge. Dropped once settled, so nothing
296
296
  that legitimately overflows — a dropdown, a focus ring — is clipped at
297
297
  rest. -->
298
+ <!-- `flow-root` always: a child's margin stays inside the box whether or not
299
+ it is clipping. Without it the margin collapsed through the box at rest
300
+ but was held in while `overflow-hidden` was on, so the box measured
301
+ taller mid-tween than settled, and any text change inside (a ticking
302
+ counter) set off a tween to the other figure, every time: a pause
303
+ banner with `mb-4` jumped 16px once a second. -->
298
304
  <div
299
305
  ref="el"
306
+ class="flow-root"
300
307
  :class="[
301
308
  tweening && !disabled
302
309
  ? `${transitionClass} duration-fast ease-[var(--ease-emphasized)] motion-reduce:transition-none`