@leavepulse/ui 0.20.7 → 0.20.9
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/{LpAddressInput-DaJ97mQ4.js → LpAddressInput-B411MOJa.js} +1 -1
- package/dist/chunks/{LpAppShell-Ds3WkurD.js → LpAppShell-CfM7fdr3.js} +2 -2
- package/dist/chunks/{LpConfirmDialog-Cwqzbfgo.js → LpConfirmDialog-D8pBGPOI.js} +1 -1
- package/dist/chunks/{LpDrawer-DcxlpxJ7.js → LpDrawer-B4cNj39a.js} +1 -1
- package/dist/chunks/{LpFileTree-BGNzXknB.js → LpFileTree-d9nXtSVo.js} +1 -1
- package/dist/chunks/{LpLogViewer-DQod8kXW.js → LpLogViewer-BXPBUV21.js} +1 -1
- package/dist/chunks/{LpModal-2YEJI45Q.js → LpModal-DKFdzKwV.js} +1 -1
- package/dist/chunks/{LpNotificationBell-D1gdEtuI.js → LpNotificationBell-Nges4kJk.js} +1 -1
- package/dist/chunks/{LpScrollArea-CXy8dkTN.js → LpScrollArea-Du8tW8c5.js} +2 -2
- package/dist/chunks/{LpSidebar-B_UD_yUx.js → LpSidebar-Bd0148dd.js} +2 -2
- package/dist/chunks/{LpSidebarNav-S1QPTGcg.js → LpSidebarNav-BqGpNr4S.js} +1 -1
- package/dist/chunks/{LpTable-pZmjnEti.js → LpTable-BBKlNR9j.js} +1 -1
- package/dist/chunks/{LpTabs-D7aTVPOb.js → LpTabs-Cefe_lys.js} +6 -1
- package/dist/components/LpAddressInput.vue.js +1 -1
- package/dist/components/LpAppShell.vue.js +1 -1
- package/dist/components/LpCommandPalette.vue.js +1 -1
- package/dist/components/LpConfirmDialog.vue.js +1 -1
- package/dist/components/LpDrawer.vue.js +1 -1
- package/dist/components/LpFileTree.vue.js +1 -1
- package/dist/components/LpLogViewer.vue.js +1 -1
- package/dist/components/LpModal.vue.js +1 -1
- package/dist/components/LpNotificationBell.vue.js +1 -1
- package/dist/components/LpScrollArea.vue.js +1 -1
- package/dist/components/LpSidebar.vue.js +1 -1
- package/dist/components/LpSidebarNav.vue.js +1 -1
- package/dist/components/LpTable.vue.js +1 -1
- package/dist/components/LpTabs.vue.d.ts +4 -4
- package/dist/components/LpTabs.vue.js +1 -1
- package/dist/index.js +12 -12
- package/package.json +1 -1
- package/src/components/LpScrollArea.vue +7 -2
- package/src/components/LpTabs.vue +20 -0
|
@@ -6,7 +6,7 @@ import { _ as _sfc_main$3 } from "./LpButton-5VXXCjwF.js";
|
|
|
6
6
|
import { _ as _sfc_main$1 } from "./LpFormField-Bn-ZwC6z.js";
|
|
7
7
|
import { _ as _sfc_main$4 } from "./LpIcon-CCnX5_2j.js";
|
|
8
8
|
import { _ as _sfc_main$5 } from "./LpInput-BauZRyzm.js";
|
|
9
|
-
import { _ as _sfc_main$7 } from "./LpModal-
|
|
9
|
+
import { _ as _sfc_main$7 } from "./LpModal-DKFdzKwV.js";
|
|
10
10
|
import { _ as _sfc_main$6 } from "./LpSelect-D5mU4cZO.js";
|
|
11
11
|
const _hoisted_1 = { class: "flex flex-col gap-3" };
|
|
12
12
|
const _hoisted_2 = { class: "flex items-stretch gap-2" };
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { defineComponent, computed, watch, openBlock, createElementBlock, createVNode, createSlots, withCtx, renderSlot, normalizeProps, guardReactiveProps, createElementVNode, normalizeClass, toDisplayString, createCommentVNode, createBlock } from "vue";
|
|
2
2
|
import { _ as _sfc_main$2 } from "./LpButton-5VXXCjwF.js";
|
|
3
3
|
import { _ as _sfc_main$3 } from "./LpIcon-CCnX5_2j.js";
|
|
4
|
-
import { _ as _sfc_main$4 } from "./LpScrollArea-
|
|
5
|
-
import { _ as _sfc_main$1 } from "./LpSidebar-
|
|
4
|
+
import { _ as _sfc_main$4 } from "./LpScrollArea-Du8tW8c5.js";
|
|
5
|
+
import { _ as _sfc_main$1 } from "./LpSidebar-Bd0148dd.js";
|
|
6
6
|
const _hoisted_1 = { class: "flex h-dvh overflow-hidden bg-surface text-ink" };
|
|
7
7
|
const _hoisted_2 = { class: "flex min-w-0 flex-1 flex-col" };
|
|
8
8
|
const _hoisted_3 = { class: "flex h-16 shrink-0 items-center gap-3 border-b border-line bg-surface px-4 md:px-6" };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { defineComponent, openBlock, createBlock, withCtx, renderSlot, createVNode, createTextVNode, toDisplayString } from "vue";
|
|
2
2
|
import { _ as _sfc_main$2 } from "./LpButton-5VXXCjwF.js";
|
|
3
|
-
import { _ as _sfc_main$1 } from "./LpModal-
|
|
3
|
+
import { _ as _sfc_main$1 } from "./LpModal-DKFdzKwV.js";
|
|
4
4
|
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
5
5
|
__name: "LpConfirmDialog",
|
|
6
6
|
props: {
|
|
@@ -3,7 +3,7 @@ import { usePointerSwipe } from "@vueuse/core";
|
|
|
3
3
|
import { DrawerRoot, DrawerPortal, DrawerOverlay, DrawerContent, DrawerHandle, DrawerTitle, DrawerDescription, DrawerClose } from "vaul-vue";
|
|
4
4
|
import { CLOSE_ICON } from "../components/dropdown.js";
|
|
5
5
|
import { _ as _sfc_main$1 } from "./LpIcon-CCnX5_2j.js";
|
|
6
|
-
import { _ as _sfc_main$2 } from "./LpScrollArea-
|
|
6
|
+
import { _ as _sfc_main$2 } from "./LpScrollArea-Du8tW8c5.js";
|
|
7
7
|
const _hoisted_1 = { class: "text-base font-semibold text-ink" };
|
|
8
8
|
const _hoisted_2 = { class: "flex flex-col gap-1" };
|
|
9
9
|
const _hoisted_3 = ["data-vaul-no-drag"];
|
|
@@ -2,7 +2,7 @@ import { defineComponent, ref, watch, computed, openBlock, createElementBlock, F
|
|
|
2
2
|
import { formatSize, sortNodes, computeStats, subtreeIds, ancestorIds } from "../components/fileTree.js";
|
|
3
3
|
import { _ as _sfc_main$1 } from "./LpEmptyState-CrfyRJUG.js";
|
|
4
4
|
import { _ as _sfc_main$3 } from "./LpFileTreeNode-DFg4PhOK.js";
|
|
5
|
-
import { _ as _sfc_main$2 } from "./LpScrollArea-
|
|
5
|
+
import { _ as _sfc_main$2 } from "./LpScrollArea-Du8tW8c5.js";
|
|
6
6
|
const _hoisted_1 = {
|
|
7
7
|
key: 0,
|
|
8
8
|
class: "flex h-full w-full min-w-0 flex-col gap-1 overflow-hidden"
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { defineComponent, computed, ref, watch, nextTick, onMounted, onBeforeUnmount, openBlock, createElementBlock, createVNode, normalizeStyle, withCtx, createElementVNode, toDisplayString, createCommentVNode, Fragment, createBlock, resolveDynamicComponent, TransitionGroup, mergeProps, renderList, normalizeClass, createTextVNode, Transition } from "vue";
|
|
2
2
|
import { _ as _sfc_main$3 } from "./LpContextMenu-D0mzXqA7.js";
|
|
3
3
|
import { _ as _sfc_main$2 } from "./LpIcon-CCnX5_2j.js";
|
|
4
|
-
import { _ as _sfc_main$1 } from "./LpScrollArea-
|
|
4
|
+
import { _ as _sfc_main$1 } from "./LpScrollArea-Du8tW8c5.js";
|
|
5
5
|
const _hoisted_1 = { class: "relative overflow-hidden rounded-card border border-line bg-surface font-mono text-xs leading-relaxed" };
|
|
6
6
|
const _hoisted_2 = {
|
|
7
7
|
key: 0,
|
|
@@ -2,7 +2,7 @@ import { defineComponent, computed, useSlots, ref, watch, onBeforeUnmount, openB
|
|
|
2
2
|
import { DialogRoot, DialogPortal, DialogOverlay, DialogContent, DialogTitle, DialogDescription, DialogClose } from "reka-ui";
|
|
3
3
|
import { CLOSE_ICON } from "../components/dropdown.js";
|
|
4
4
|
import { _ as _sfc_main$1 } from "./LpIcon-CCnX5_2j.js";
|
|
5
|
-
import { _ as _sfc_main$2 } from "./LpScrollArea-
|
|
5
|
+
import { _ as _sfc_main$2 } from "./LpScrollArea-Du8tW8c5.js";
|
|
6
6
|
const _hoisted_1 = { class: "fixed inset-0 z-(--z-modal) flex items-center justify-center pointer-events-none" };
|
|
7
7
|
const _hoisted_2 = {
|
|
8
8
|
key: 0,
|
|
@@ -5,7 +5,7 @@ import { _ as _sfc_main$4 } from "./LpContextMenu-D0mzXqA7.js";
|
|
|
5
5
|
import { _ as _sfc_main$2 } from "./LpEmptyState-CrfyRJUG.js";
|
|
6
6
|
import { _ as _sfc_main$5 } from "./LpIcon-CCnX5_2j.js";
|
|
7
7
|
import { _ as _sfc_main$1 } from "./LpPopover-8268UmlC.js";
|
|
8
|
-
import { _ as _sfc_main$3 } from "./LpScrollArea-
|
|
8
|
+
import { _ as _sfc_main$3 } from "./LpScrollArea-Du8tW8c5.js";
|
|
9
9
|
const _hoisted_1 = { class: "flex items-center justify-between gap-2 px-3 py-2.5" };
|
|
10
10
|
const _hoisted_2 = { class: "text-sm font-semibold" };
|
|
11
11
|
const _hoisted_3 = {
|
|
@@ -90,7 +90,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
90
90
|
createVNode(unref(ScrollAreaScrollbar), {
|
|
91
91
|
orientation: "vertical",
|
|
92
92
|
"force-mount": "",
|
|
93
|
-
class: normalizeClass(["group flex w-3.5 touch-none select-none justify-end py-px pl-2.5 pr-px", barFade]),
|
|
93
|
+
class: normalizeClass(["group z-1 flex w-3.5 touch-none select-none justify-end py-px pl-2.5 pr-px", barFade]),
|
|
94
94
|
style: normalizeStyle(__props.barInsetTop ? { marginTop: __props.barInsetTop } : void 0)
|
|
95
95
|
}, {
|
|
96
96
|
default: withCtx(() => [
|
|
@@ -103,7 +103,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
103
103
|
}, 8, ["style"]),
|
|
104
104
|
createVNode(unref(ScrollAreaScrollbar), {
|
|
105
105
|
orientation: "horizontal",
|
|
106
|
-
class: normalizeClass(["group flex h-3.5 flex-col touch-none select-none justify-end px-px pb-px pt-2.5", barFade])
|
|
106
|
+
class: normalizeClass(["group z-1 flex h-3.5 flex-col touch-none select-none justify-end px-px pb-px pt-2.5", barFade])
|
|
107
107
|
}, {
|
|
108
108
|
default: withCtx(() => [
|
|
109
109
|
createVNode(unref(ScrollAreaThumb), {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { defineComponent, computed, useId, openBlock, createElementBlock, Fragment, createElementVNode, mergeProps, normalizeClass, renderSlot, createCommentVNode, createVNode, createSlots, withCtx, normalizeProps, guardReactiveProps, createBlock } from "vue";
|
|
2
|
-
import { _ as _sfc_main$2 } from "./LpDrawer-
|
|
3
|
-
import { _ as _sfc_main$1 } from "./LpSidebarNav-
|
|
2
|
+
import { _ as _sfc_main$2 } from "./LpDrawer-B4cNj39a.js";
|
|
3
|
+
import { _ as _sfc_main$1 } from "./LpSidebarNav-BqGpNr4S.js";
|
|
4
4
|
const _hoisted_1 = {
|
|
5
5
|
key: 1,
|
|
6
6
|
class: "mt-2 flex shrink-0 flex-col gap-2"
|
|
@@ -4,7 +4,7 @@ import { usePillTransition } from "../composables/usePillTransition.js";
|
|
|
4
4
|
import { _ as _sfc_main$4 } from "./LpBadge-CXzBPnwO.js";
|
|
5
5
|
import { _ as _sfc_main$2 } from "./LpContextMenu-D0mzXqA7.js";
|
|
6
6
|
import { _ as _sfc_main$3 } from "./LpIcon-CCnX5_2j.js";
|
|
7
|
-
import { _ as _sfc_main$1 } from "./LpScrollArea-
|
|
7
|
+
import { _ as _sfc_main$1 } from "./LpScrollArea-Du8tW8c5.js";
|
|
8
8
|
const _hoisted_1 = {
|
|
9
9
|
key: 0,
|
|
10
10
|
class: "flex min-h-0 flex-1 flex-col gap-4"
|
|
@@ -2,7 +2,7 @@ import { defineComponent, computed, ref, watch, onBeforeUnmount, openBlock, crea
|
|
|
2
2
|
import { _ as _sfc_main$2 } from "./LpCheckbox-BO0zuuPh.js";
|
|
3
3
|
import { _ as _sfc_main$4 } from "./LpContextMenu-D0mzXqA7.js";
|
|
4
4
|
import { _ as _sfc_main$3 } from "./LpIcon-CCnX5_2j.js";
|
|
5
|
-
import { _ as _sfc_main$1 } from "./LpScrollArea-
|
|
5
|
+
import { _ as _sfc_main$1 } from "./LpScrollArea-Du8tW8c5.js";
|
|
6
6
|
const _hoisted_1 = { class: "w-full border-collapse text-sm" };
|
|
7
7
|
const _hoisted_2 = { class: "border-b border-line bg-surface-soft" };
|
|
8
8
|
const _hoisted_3 = {
|
|
@@ -25,6 +25,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
25
25
|
function pillUnder(value, active) {
|
|
26
26
|
return hovered.value ? hovered.value === value : active === value;
|
|
27
27
|
}
|
|
28
|
+
function releaseFocusAfterPointer(event) {
|
|
29
|
+
const target = event.currentTarget;
|
|
30
|
+
if (target instanceof HTMLElement) target.blur();
|
|
31
|
+
}
|
|
28
32
|
return (_ctx, _cache) => {
|
|
29
33
|
return openBlock(), createBlock(unref(TabsRoot), {
|
|
30
34
|
"model-value": __props.modelValue,
|
|
@@ -50,7 +54,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
50
54
|
__props.accent ? "data-[state=active]:text-brand" : "data-[state=active]:text-ink",
|
|
51
55
|
hovered.value === item.value ? "text-ink" : "text-muted"
|
|
52
56
|
]]),
|
|
53
|
-
onPointerenter: ($event) => hovered.value = item.value
|
|
57
|
+
onPointerenter: ($event) => hovered.value = item.value,
|
|
58
|
+
onPointerup: releaseFocusAfterPointer
|
|
54
59
|
}, {
|
|
55
60
|
default: withCtx(() => [
|
|
56
61
|
pillUnder(item.value, __props.modelValue) ? (openBlock(), createBlock(unref(Motion), {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { defineComponent, ref, computed, watch, nextTick, onMounted, onBeforeUnmount, openBlock, createBlock, unref, withCtx, createVNode, withModifiers, createTextVNode, createElementVNode, withDirectives, withKeys, vModelText, createElementBlock, toDisplayString, createCommentVNode, Fragment, renderList, normalizeClass } from "vue";
|
|
2
2
|
import { DialogRoot, DialogPortal, DialogOverlay, DialogContent, DialogTitle, DialogDescription } from "reka-ui";
|
|
3
3
|
import { _ as _sfc_main$1 } from "../chunks/LpIcon-CCnX5_2j.js";
|
|
4
|
-
import { _ as _sfc_main$2 } from "../chunks/LpScrollArea-
|
|
4
|
+
import { _ as _sfc_main$2 } from "../chunks/LpScrollArea-Du8tW8c5.js";
|
|
5
5
|
import '../assets/LpCommandPalette-C3LdDNHk.css';const _hoisted_1 = { class: "flex shrink-0 items-center gap-2.5 border-b border-line px-4" };
|
|
6
6
|
const _hoisted_2 = ["placeholder", "onKeydown"];
|
|
7
7
|
const _hoisted_3 = {
|
|
@@ -20,13 +20,13 @@ type __VLS_Props = {
|
|
|
20
20
|
/** Stretch the bar to full width with equal-share triggers. */
|
|
21
21
|
block?: boolean;
|
|
22
22
|
};
|
|
23
|
-
declare var
|
|
23
|
+
declare var __VLS_49: {
|
|
24
24
|
value: string;
|
|
25
|
-
},
|
|
25
|
+
}, __VLS_51: {};
|
|
26
26
|
type __VLS_Slots = {} & {
|
|
27
|
-
panel?: (props: typeof
|
|
27
|
+
panel?: (props: typeof __VLS_49) => any;
|
|
28
28
|
} & {
|
|
29
|
-
default?: (props: typeof
|
|
29
|
+
default?: (props: typeof __VLS_51) => any;
|
|
30
30
|
};
|
|
31
31
|
declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
|
|
32
32
|
"update:modelValue": (value: string) => any;
|
package/dist/index.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { _ } from "./chunks/LayoutCanvas-Dd20boUG.js";
|
|
2
|
-
import { _ as _2 } from "./chunks/LpAddressInput-
|
|
2
|
+
import { _ as _2 } from "./chunks/LpAddressInput-B411MOJa.js";
|
|
3
3
|
import { _ as _3 } from "./chunks/LpMapPicker-DFKrd1Ne.js";
|
|
4
4
|
import { OSM_TILES, createNominatimProvider, emptyAddress, formatAddress, project, tileUrl, unproject } from "./components/address.js";
|
|
5
5
|
import { _ as _4 } from "./chunks/LpAlert-BAYHDSS1.js";
|
|
6
|
-
import { _ as _5 } from "./chunks/LpAppShell-
|
|
6
|
+
import { _ as _5 } from "./chunks/LpAppShell-CfM7fdr3.js";
|
|
7
7
|
import { _ as _6 } from "./chunks/LpAutocomplete-DIgXmtCA.js";
|
|
8
8
|
import { _ as _7 } from "./chunks/LpAvatar-B1Ez0ZAx.js";
|
|
9
9
|
import { _ as _8 } from "./chunks/LpBadge-CXzBPnwO.js";
|
|
@@ -14,15 +14,15 @@ import { _ as _12 } from "./chunks/LpCard-BmrTvWOe.js";
|
|
|
14
14
|
import { _ as _13 } from "./chunks/LpCheckbox-BO0zuuPh.js";
|
|
15
15
|
import { _ as _14 } from "./chunks/LpCodeBlock-CSiOSPs8.js";
|
|
16
16
|
import { default as default2 } from "./components/LpCommandPalette.vue.js";
|
|
17
|
-
import { _ as _15 } from "./chunks/LpConfirmDialog-
|
|
17
|
+
import { _ as _15 } from "./chunks/LpConfirmDialog-D8pBGPOI.js";
|
|
18
18
|
import { _ as _16 } from "./chunks/LpContextMenu-D0mzXqA7.js";
|
|
19
19
|
import { _ as _17 } from "./chunks/LpDatePicker-dY2q4dr4.js";
|
|
20
20
|
import { _ as _18 } from "./chunks/LpDisclosure-DP6yfgfM.js";
|
|
21
21
|
import { _ as _19 } from "./chunks/LpDivider-CUX46KR0.js";
|
|
22
|
-
import { _ as _20 } from "./chunks/LpDrawer-
|
|
22
|
+
import { _ as _20 } from "./chunks/LpDrawer-B4cNj39a.js";
|
|
23
23
|
import { _ as _21 } from "./chunks/LpDropdownMenu-DJpoqRCb.js";
|
|
24
24
|
import { _ as _22 } from "./chunks/LpEmptyState-CrfyRJUG.js";
|
|
25
|
-
import { _ as _23 } from "./chunks/LpFileTree-
|
|
25
|
+
import { _ as _23 } from "./chunks/LpFileTree-d9nXtSVo.js";
|
|
26
26
|
import { ancestorIds, checkStateOf, checkedCount, computeStats, fileIcon, formatModified, formatSize, sortNodes, subtreeIds, subtreeSize } from "./components/fileTree.js";
|
|
27
27
|
import { _ as _24 } from "./chunks/LpFormField-Bn-ZwC6z.js";
|
|
28
28
|
import { _ as _25 } from "./chunks/LpIcon-CCnX5_2j.js";
|
|
@@ -31,9 +31,9 @@ import { _ as _27 } from "./chunks/LpInput-BauZRyzm.js";
|
|
|
31
31
|
import { _ as _28 } from "./chunks/LpLightbox-Ci35Y_xP.js";
|
|
32
32
|
import { fileNameOf } from "./components/lightbox.js";
|
|
33
33
|
import { _ as _29 } from "./chunks/LpLink-DHwOEp4e.js";
|
|
34
|
-
import { _ as _30 } from "./chunks/LpLogViewer-
|
|
35
|
-
import { _ as _31 } from "./chunks/LpModal-
|
|
36
|
-
import { _ as _32 } from "./chunks/LpNotificationBell-
|
|
34
|
+
import { _ as _30 } from "./chunks/LpLogViewer-BXPBUV21.js";
|
|
35
|
+
import { _ as _31 } from "./chunks/LpModal-DKFdzKwV.js";
|
|
36
|
+
import { _ as _32 } from "./chunks/LpNotificationBell-Nges4kJk.js";
|
|
37
37
|
import { _ as _33 } from "./chunks/LpNumberField-C5ar-OwE.js";
|
|
38
38
|
import { _ as _34 } from "./chunks/LpOtpInput-DqaT0Z75.js";
|
|
39
39
|
import { _ as _35 } from "./chunks/LpPagination-CeGuNe_q.js";
|
|
@@ -44,19 +44,19 @@ import { _ as _38 } from "./chunks/LpPopover-8268UmlC.js";
|
|
|
44
44
|
import { _ as _39 } from "./chunks/LpProgress-BhI0IbjC.js";
|
|
45
45
|
import { _ as _40 } from "./chunks/LpRadio-CL-pI0_O.js";
|
|
46
46
|
import { _ as _41 } from "./chunks/LpRadioGroup-B4yDTmi6.js";
|
|
47
|
-
import { _ as _42 } from "./chunks/LpScrollArea-
|
|
47
|
+
import { _ as _42 } from "./chunks/LpScrollArea-Du8tW8c5.js";
|
|
48
48
|
import { _ as _43 } from "./chunks/LpSegmented-BmpanyAo.js";
|
|
49
49
|
import { _ as _44 } from "./chunks/LpSelect-D5mU4cZO.js";
|
|
50
50
|
import { _ as _45 } from "./chunks/LpServiceNode-Dc-Ut5RS.js";
|
|
51
|
-
import { _ as _46 } from "./chunks/LpSidebar-
|
|
51
|
+
import { _ as _46 } from "./chunks/LpSidebar-Bd0148dd.js";
|
|
52
52
|
import { _ as _47 } from "./chunks/LpSkeleton-eSFIo4kD.js";
|
|
53
53
|
import { _ as _48 } from "./chunks/LpSlider-B1SF3pRV.js";
|
|
54
54
|
import { _ as _49 } from "./chunks/LpStat-CdbEFOvn.js";
|
|
55
55
|
import { _ as _50 } from "./chunks/LpStepper-5dFTrW21.js";
|
|
56
56
|
import { _ as _51 } from "./chunks/LpSwitch-v6fnccSM.js";
|
|
57
|
-
import { _ as _52 } from "./chunks/LpTable-
|
|
57
|
+
import { _ as _52 } from "./chunks/LpTable-BBKlNR9j.js";
|
|
58
58
|
import { _ as _53 } from "./chunks/LpTableOfContents-CjvxPMpU.js";
|
|
59
|
-
import { _ as _54 } from "./chunks/LpTabs-
|
|
59
|
+
import { _ as _54 } from "./chunks/LpTabs-Cefe_lys.js";
|
|
60
60
|
import { _ as _55 } from "./chunks/LpTextarea-CRAkhemZ.js";
|
|
61
61
|
import { p as presets, a as parseTheme, s as serializeTheme } from "./chunks/LpThemeSwitcher-B_kj0T2b.js";
|
|
62
62
|
import { D, _ as _56, N, T, b, c, d, e, f, g, i, l, h, j, n, r, t, k, m, u, v } from "./chunks/LpThemeSwitcher-B_kj0T2b.js";
|
package/package.json
CHANGED
|
@@ -184,10 +184,15 @@ function onThumbPointerDown() {
|
|
|
184
184
|
first hover — so before the pointer ever entered, the region silently
|
|
185
185
|
refused to scroll (wheel included). Mounting it up front fixes that;
|
|
186
186
|
the bar still only becomes visible on hover, via `barFade` below. -->
|
|
187
|
+
<!-- z-1: reka positions the bar absolutely but leaves it on `z-index: auto`,
|
|
188
|
+
and it sits BEFORE the viewport in the DOM — so any positioned row in
|
|
189
|
+
the content painted over it, and a row with an opaque hover background
|
|
190
|
+
swallowed the thumb wherever the pointer went. The bar only has to
|
|
191
|
+
clear its own content, not the page, so a local step is enough. -->
|
|
187
192
|
<ScrollAreaScrollbar
|
|
188
193
|
orientation="vertical"
|
|
189
194
|
force-mount
|
|
190
|
-
class="group flex w-3.5 touch-none select-none justify-end py-px pl-2.5 pr-px"
|
|
195
|
+
class="group z-1 flex w-3.5 touch-none select-none justify-end py-px pl-2.5 pr-px"
|
|
191
196
|
:class="barFade"
|
|
192
197
|
:style="barInsetTop ? { marginTop: barInsetTop } : undefined"
|
|
193
198
|
>
|
|
@@ -205,7 +210,7 @@ function onThumbPointerDown() {
|
|
|
205
210
|
|
|
206
211
|
<ScrollAreaScrollbar
|
|
207
212
|
orientation="horizontal"
|
|
208
|
-
class="group flex h-3.5 flex-col touch-none select-none justify-end px-px pb-px pt-2.5"
|
|
213
|
+
class="group z-1 flex h-3.5 flex-col touch-none select-none justify-end px-px pb-px pt-2.5"
|
|
209
214
|
:class="barFade"
|
|
210
215
|
>
|
|
211
216
|
<ScrollAreaThumb
|
|
@@ -57,6 +57,25 @@ const panelLayoutTransition = computed(() =>
|
|
|
57
57
|
function pillUnder(value: string, active?: string): boolean {
|
|
58
58
|
return hovered.value ? hovered.value === value : active === value
|
|
59
59
|
}
|
|
60
|
+
|
|
61
|
+
/*
|
|
62
|
+
* Drop focus after a mouse pick.
|
|
63
|
+
*
|
|
64
|
+
* Tabs implement the ARIA roving-focus pattern: while a trigger holds focus,
|
|
65
|
+
* ←/→ move between tabs. That is correct for keyboard users, but a *click*
|
|
66
|
+
* also leaves focus on the trigger — so afterwards the arrow keys silently
|
|
67
|
+
* belong to the tab strip, and any arrow-key handling the surrounding app has
|
|
68
|
+
* (walking a grid, moving a selection) appears to be broken until the user
|
|
69
|
+
* clicks somewhere else.
|
|
70
|
+
*
|
|
71
|
+
* Blurring on pointerup restores the arrows to the page without touching the
|
|
72
|
+
* keyboard path: Tab/←/→ navigation still focuses triggers and still works,
|
|
73
|
+
* because those never fire a pointer event.
|
|
74
|
+
*/
|
|
75
|
+
function releaseFocusAfterPointer(event: PointerEvent) {
|
|
76
|
+
const target = event.currentTarget
|
|
77
|
+
if (target instanceof HTMLElement) target.blur()
|
|
78
|
+
}
|
|
60
79
|
</script>
|
|
61
80
|
|
|
62
81
|
<template>
|
|
@@ -85,6 +104,7 @@ function pillUnder(value: string, active?: string): boolean {
|
|
|
85
104
|
hovered === item.value ? 'text-ink' : 'text-muted',
|
|
86
105
|
]"
|
|
87
106
|
@pointerenter="hovered = item.value"
|
|
107
|
+
@pointerup="releaseFocusAfterPointer"
|
|
88
108
|
>
|
|
89
109
|
<!-- Active marker: a bottom bar in "underline", a filled pill otherwise.
|
|
90
110
|
Both slide between tabs via the shared motion layoutId. -->
|