@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.
- package/dist/chunks/{DropzoneLinkField-C-9BCGJn.js → DropzoneLinkField-BvWe0rHt.js} +2 -2
- package/dist/chunks/{FieldWrapper-CORPzo9s.js → FieldWrapper-D-GtSx5F.js} +1 -1
- package/dist/chunks/{LpActionBar-BP1ld7-S.js → LpActionBar-DlzVMdxD.js} +2 -2
- package/dist/chunks/{LpAddressInput-De_LTYM7.js → LpAddressInput-BmOTL66n.js} +4 -4
- package/dist/chunks/{LpAlert-n5XPAZfv.js → LpAlert-D65nvFrR.js} +2 -2
- package/dist/chunks/{LpAppShell-Cpy_t1U_.js → LpAppShell-4gV7G84j.js} +5 -5
- package/dist/chunks/{LpBadge-wUYLN4U9.js → LpBadge-DCikN2YX.js} +1 -1
- package/dist/chunks/{LpBottomNav-CbNQQPuL.js → LpBottomNav-BcFnSRiz.js} +1 -1
- package/dist/chunks/{LpBreadcrumbs-DPdbth-c.js → LpBreadcrumbs-DiniBg15.js} +1 -1
- package/dist/chunks/{LpButton-CFb44IjC.js → LpButton-Di-mz7qu.js} +1 -1
- package/dist/chunks/{LpCard-r13WRqox.js → LpCard-BhB1Hs2Y.js} +1 -1
- package/dist/chunks/{LpCheckbox-Cs4SHaHX.js → LpCheckbox-BY1CTjz-.js} +1 -1
- package/dist/chunks/{LpCodeBlock-DRC8VbXW.js → LpCodeBlock-Cfrq_Pii.js} +1 -1
- package/dist/chunks/{LpCodeDisplay-CE9TxCA4.js → LpCodeDisplay-iNbGnmji.js} +4 -4
- package/dist/chunks/{LpConfirmDialog-CphJR6Q9.js → LpConfirmDialog-2RwmGR5h.js} +2 -2
- package/dist/chunks/{LpConfirmHost-QSJ0zl63.js → LpConfirmHost-CAadxI-d.js} +1 -1
- package/dist/chunks/{LpCopyButton-xF7wFVoU.js → LpCopyButton-dwWGc2kq.js} +1 -1
- package/dist/chunks/{LpCountdown-DgeY3cLG.js → LpCountdown-Lr1F0ivE.js} +1 -1
- package/dist/chunks/{LpDataList-Jxyl9H5w.js → LpDataList-UYvxUUOF.js} +1 -1
- package/dist/chunks/{LpDrawer-DQZixOqJ.js → LpDrawer-CrG8t_KP.js} +1 -1
- package/dist/chunks/{LpEditable-Cy6GLbFx.js → LpEditable-Cn1g8jZO.js} +2 -2
- package/dist/chunks/{LpFileTree-zIFEgo3I.js → LpFileTree-DSPVLCUr.js} +2 -2
- package/dist/chunks/{LpFileTreeNode-cT6BIWvz.js → LpFileTreeNode-Bf7g4yzG.js} +3 -3
- package/dist/chunks/{LpFormField-Ch69Jd-X.js → LpFormField-CT2WrjeU.js} +1 -1
- package/dist/chunks/{LpHintLayer-CgObdUsM.js → LpHintLayer-BLTfhG1V.js} +2 -2
- package/dist/chunks/{LpHints-Bz-BlaSl.js → LpHints-XUrXxG-I.js} +3 -3
- package/dist/chunks/{LpInfraNode-46XOCkfq.js → LpInfraNode-CovQ07Bz.js} +2 -2
- package/dist/chunks/{LpInput-Tw-yxT4I.js → LpInput-BVws0fKl.js} +1 -1
- package/dist/chunks/{LpLightbox-B95yu22B.js → LpLightbox-DtPQalMu.js} +2 -2
- package/dist/chunks/{LpLoader-DVwkOmt9.js → LpLoader-BTubl9h6.js} +1 -1
- package/dist/chunks/{LpLogViewer-D25jM2_I.js → LpLogViewer-C0LXbxkJ.js} +4 -4
- package/dist/chunks/{LpMapPicker-DRGgh89B.js → LpMapPicker-BHQeQIYM.js} +1 -1
- package/dist/chunks/{LpMediaGallery-Bkram-MO.js → LpMediaGallery-D9yp_TSr.js} +1 -1
- package/dist/chunks/{LpModal-C0tGg_D_.js → LpModal-CoGhLTyH.js} +1 -1
- package/dist/chunks/{LpModalNav-iDDtT9c1.js → LpModalNav-DLuo9WNP.js} +3 -3
- package/dist/chunks/{LpNotificationBell-3244LUVc.js → LpNotificationBell-BSL6bG5g.js} +4 -4
- package/dist/chunks/{LpPaletteTheme-DiLYKQiZ.js → LpPaletteTheme-Dn7y0b7u.js} +3 -3
- package/dist/chunks/{LpPasswordInput-BkHKQDhM.js → LpPasswordInput-ck-SUAZo.js} +2 -2
- package/dist/chunks/{LpPie-DrZepi0p.js → LpPie-EiPCuK-Y.js} +2 -2
- package/dist/chunks/{LpPipeline-B3aOVOkV.js → LpPipeline-PqXZATqf.js} +2 -2
- package/dist/chunks/{LpRepeater-D7ZmnIYd.js → LpRepeater-COgFLjI8.js} +2 -2
- package/dist/chunks/{LpScramble-Bn9OoOtC.js → LpScramble-DoJPeIJM.js} +1 -1
- package/dist/chunks/{LpScrollArea-Hz3-JWUG.js → LpScrollArea-MyEnVB_5.js} +9 -8
- package/dist/chunks/{LpSecretField-BbmqM9ye.js → LpSecretField-DQ0XsXOU.js} +6 -6
- package/dist/chunks/{LpShift-CCq7dofl.js → LpShift-Bi4VB7yd.js} +2 -2
- package/dist/chunks/{LpSidebar-D6zO8vLm.js → LpSidebar-DzcojgKg.js} +3 -3
- package/dist/chunks/{LpSidebarNav-Bky8chrv.js → LpSidebarNav-DX_rDmsW.js} +3 -3
- package/dist/chunks/{LpSidebarRow-BRYhNDSo.js → LpSidebarRow-DMyPZkVB.js} +1 -1
- package/dist/chunks/{LpStat-f2LfDCJ4.js → LpStat-C6tiaChL.js} +1 -1
- package/dist/chunks/{LpStatus-DglxttQ7.js → LpStatus-Bm8HtCGH.js} +2 -2
- package/dist/chunks/{LpStepMark-DpzKVyh8.js → LpStepMark-BVwtjCFD.js} +1 -1
- package/dist/chunks/{LpStepper-DpsocBNJ.js → LpStepper-0K8anqck.js} +1 -1
- package/dist/chunks/{LpSwap-C96c0LWh.js → LpSwap-DuVu1CTs.js} +1 -1
- package/dist/chunks/{LpSwitch-BnXd1llc.js → LpSwitch-DLXJfGir.js} +1 -1
- package/dist/chunks/{LpTabFace-DPCwKkH2.js → LpTabFace-BdNV3A7p.js} +1 -1
- package/dist/chunks/{LpTableFilter-CiVBpaq0.js → LpTableFilter-BwbVCEeg.js} +3 -3
- package/dist/chunks/{LpTagsInput-C-mDG648.js → LpTagsInput-xSWftwra.js} +2 -2
- package/dist/chunks/{LpTextarea-TE-yZv2U.js → LpTextarea-Pj0ZYNSY.js} +1 -1
- package/dist/chunks/{LpThemeStudio-BpORDvH6.js → LpThemeStudio-BwX4uf3g.js} +2 -2
- package/dist/chunks/{LpThemeSwitcher-BnEn_mvf.js → LpThemeSwitcher-Byurs98d.js} +2 -2
- package/dist/chunks/{LpToaster-IwTXjbbU.js → LpToaster-DDzV1B2H.js} +1 -1
- package/dist/chunks/{LpTopologyCanvas-B1gIbS0n.js → LpTopologyCanvas-BlfSGRbI.js} +1 -1
- package/dist/chunks/{LpTour-BZq-mUMv.js → LpTour-CXA3FCey.js} +1 -1
- package/dist/chunks/{LpTruncate-CflAIwiJ.js → LpTruncate-Dg04QB9v.js} +1 -1
- package/dist/chunks/{LpUptimeBar-DqNvvMBK.js → LpUptimeBar-iKt3rELK.js} +2 -2
- package/dist/chunks/{RevealToggle-BEit1n6Z.js → RevealToggle-FTHOyJMg.js} +1 -1
- package/dist/chunks/{TourCard-DNclH3u_.js → TourCard-DV9wnmvR.js} +3 -3
- package/dist/components/DropzoneLinkField.vue.js +1 -1
- package/dist/components/FieldWrapper.vue.js +1 -1
- package/dist/components/LpActionBar.vue.js +1 -1
- package/dist/components/LpAddressInput.vue.js +1 -1
- package/dist/components/LpAlert.vue.js +1 -1
- package/dist/components/LpAppShell.vue.js +1 -1
- package/dist/components/LpBadge.vue.js +1 -1
- package/dist/components/LpBottomNav.vue.js +1 -1
- package/dist/components/LpBreadcrumbs.vue.js +1 -1
- package/dist/components/LpButton.vue.js +1 -1
- package/dist/components/LpCard.vue.js +1 -1
- package/dist/components/LpChart.vue.js +2 -2
- package/dist/components/LpCheckbox.vue.js +1 -1
- package/dist/components/LpCodeBlock.vue.js +1 -1
- package/dist/components/LpCodeDisplay.vue.js +1 -1
- package/dist/components/LpCommandPalette.vue.js +3 -3
- package/dist/components/LpConfirmDialog.vue.js +1 -1
- package/dist/components/LpConfirmHost.vue.js +1 -1
- package/dist/components/LpCopyButton.vue.js +1 -1
- package/dist/components/LpCountdown.vue.js +1 -1
- package/dist/components/LpDataList.vue.js +1 -1
- package/dist/components/LpDrawer.vue.js +1 -1
- package/dist/components/LpDropzone.vue.js +1 -1
- package/dist/components/LpEditable.vue.js +1 -1
- package/dist/components/LpFileTree.vue.js +1 -1
- package/dist/components/LpFileTreeNode.vue.js +1 -1
- package/dist/components/LpFormField.vue.js +1 -1
- package/dist/components/LpHintLayer.vue.js +1 -1
- package/dist/components/LpHints.vue.js +1 -1
- package/dist/components/LpImageEditor.vue.js +1 -1
- package/dist/components/LpInfraNode.vue.js +1 -1
- package/dist/components/LpInput.vue.js +1 -1
- package/dist/components/LpLightbox.vue.js +1 -1
- package/dist/components/LpLoader.vue.js +1 -1
- package/dist/components/LpLogViewer.vue.js +1 -1
- package/dist/components/LpMapPicker.vue.js +1 -1
- package/dist/components/LpMediaGallery.vue.js +1 -1
- package/dist/components/LpModal.vue.js +1 -1
- package/dist/components/LpModalNav.vue.js +1 -1
- package/dist/components/LpNotificationBell.vue.js +1 -1
- package/dist/components/LpPaletteTheme.vue.js +1 -1
- package/dist/components/LpPasswordInput.vue.js +1 -1
- package/dist/components/LpPie.vue.js +1 -1
- package/dist/components/LpPipeline.vue.js +1 -1
- package/dist/components/LpRepeater.vue.js +1 -1
- package/dist/components/LpScramble.vue.js +1 -1
- package/dist/components/LpScrollArea.vue.d.ts +2 -0
- package/dist/components/LpScrollArea.vue.js +1 -1
- package/dist/components/LpSecretField.vue.js +1 -1
- package/dist/components/LpShift.vue.js +1 -1
- package/dist/components/LpShortcutsDialog.vue.js +1 -1
- package/dist/components/LpSidebar.vue.js +1 -1
- package/dist/components/LpSidebarNav.vue.js +1 -1
- package/dist/components/LpSidebarRow.vue.js +1 -1
- package/dist/components/LpStat.vue.js +1 -1
- package/dist/components/LpStatus.vue.js +1 -1
- package/dist/components/LpStepMark.vue.js +1 -1
- package/dist/components/LpStepper.vue.js +1 -1
- package/dist/components/LpSwap.vue.js +1 -1
- package/dist/components/LpSwitch.vue.js +1 -1
- package/dist/components/LpTabFace.vue.js +1 -1
- package/dist/components/LpTable.vue.js +7 -7
- package/dist/components/LpTableFilter.vue.js +1 -1
- package/dist/components/LpTabs.vue.js +1 -1
- package/dist/components/LpTagsInput.vue.js +1 -1
- package/dist/components/LpTextarea.vue.js +1 -1
- package/dist/components/LpThemeStudio.vue.js +1 -1
- package/dist/components/LpThemeSwitcher.vue.js +1 -1
- package/dist/components/LpToaster.vue.js +1 -1
- package/dist/components/LpTopologyCanvas.vue.js +1 -1
- package/dist/components/LpTour.vue.js +1 -1
- package/dist/components/LpTruncate.vue.js +1 -1
- package/dist/components/LpUptimeBar.vue.js +1 -1
- package/dist/components/RevealToggle.vue.js +1 -1
- package/dist/components/TourCard.vue.js +1 -1
- package/dist/index.js +58 -58
- package/package.json +1 -1
- package/src/components/LpScrollArea.vue +14 -7
- 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
|
|
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
|
|
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
|
|
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
|
|
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`
|