@k2b/ui 0.4.1 → 0.5.0
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/browser/intl/messages.js +2 -0
- package/dist/browser/intl/messages.js.map +1 -1
- package/dist/browser/layout/AppOverview.js +29 -20
- package/dist/browser/layout/AppOverview.js.map +1 -1
- package/dist/browser/layout/AppWorkspace.js +60 -54
- package/dist/browser/layout/AppWorkspace.js.map +1 -1
- package/dist/browser/layout/BottomSheet.js +6 -1
- package/dist/browser/layout/BottomSheet.js.map +1 -1
- package/dist/browser/layout/PanelHeader.js +1 -1
- package/dist/browser/layout/PanelHeader.js.map +1 -1
- package/dist/browser/layout/PullToRefresh.js +217 -0
- package/dist/browser/layout/PullToRefresh.js.map +1 -0
- package/dist/browser/layout/index.js +1 -0
- package/dist/browser/layout/index.js.map +1 -1
- package/dist/browser/surfaces/LinkCard.js +13 -2
- package/dist/browser/surfaces/LinkCard.js.map +1 -1
- package/dist/ssr/intl/messages.js +2 -0
- package/dist/ssr/intl/messages.js.map +1 -1
- package/dist/ssr/layout/AppOverview.js +14 -5
- package/dist/ssr/layout/AppOverview.js.map +1 -1
- package/dist/ssr/layout/AppWorkspace.js +5 -2
- package/dist/ssr/layout/AppWorkspace.js.map +1 -1
- package/dist/ssr/layout/BottomSheet.js +6 -1
- package/dist/ssr/layout/BottomSheet.js.map +1 -1
- package/dist/ssr/layout/PanelHeader.js +1 -1
- package/dist/ssr/layout/PanelHeader.js.map +1 -1
- package/dist/ssr/layout/PullToRefresh.js +177 -0
- package/dist/ssr/layout/PullToRefresh.js.map +1 -0
- package/dist/ssr/layout/index.js +1 -0
- package/dist/ssr/layout/index.js.map +1 -1
- package/dist/ssr/surfaces/LinkCard.js +11 -2
- package/dist/ssr/surfaces/LinkCard.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/types/intl/messages.d.ts +1 -0
- package/dist/types/layout/AppOverview.d.ts +7 -0
- package/dist/types/layout/AppWorkspace.d.ts +14 -2
- package/dist/types/layout/BottomSheet.d.ts +1 -0
- package/dist/types/layout/PanelHeader.d.ts +1 -1
- package/dist/types/layout/PullToRefresh.d.ts +21 -0
- package/dist/types/layout/index.d.ts +3 -1
- package/dist/types/surfaces/LinkCard.d.ts +5 -2
- package/package.json +1 -1
|
@@ -11,9 +11,14 @@ var _tmpl$ = /*#__PURE__*/_$template(`<button type=button class=k2b-bottom-sheet
|
|
|
11
11
|
import { Show } from "solid-js";
|
|
12
12
|
import { useUiMessages } from "../intl/messages";
|
|
13
13
|
import PanelDialog from "./PanelDialog";
|
|
14
|
+
|
|
15
|
+
/** Initial focus goes to the first input of the top sheet; the drag handle never
|
|
16
|
+
* takes it, so a sheet that opens without a user gesture shows no focus ring. */
|
|
17
|
+
const sheetInitialFocus = dialog => dialog.lastElementChild?.querySelector("input:not([type='hidden']):not([disabled]), textarea:not([disabled]), select:not([disabled]), [role='combobox']:not([disabled]):not([aria-disabled='true'])") ?? null;
|
|
14
18
|
export const bottomSheetOptions = {
|
|
15
19
|
panelClassName: "k2b-dialog k2b-bottom-sheet-frame",
|
|
16
|
-
contentClassName: "k2b-panel-dialog-viewport k2b-bottom-sheet-viewport"
|
|
20
|
+
contentClassName: "k2b-panel-dialog-viewport k2b-bottom-sheet-viewport",
|
|
21
|
+
initialFocus: sheetInitialFocus
|
|
17
22
|
};
|
|
18
23
|
function BottomSheetRoot(props) {
|
|
19
24
|
const messages = useUiMessages();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Show","useUiMessages","PanelDialog","bottomSheetOptions","panelClassName","contentClassName","BottomSheetRoot","props","messages","pointer","suppressClick","dismiss","dismissDisabled","onDismiss","_$createComponent","children","when","handle","_el$","_$getNextElement","_tmpl$","$$click","event","detail","addEventListener","undefined","$$pointerup","id","pointerId","distance","clientY","y","Math","abs","$$pointerdown","isPrimary","button","currentTarget","setPointerCapture","_$effect","_p$","_v$","dismissLabel","close","_v$2","e","_$setAttribute","t","_$setProperty","_$runHydrationEvents","_$memo","BottomSheet","Object","assign","Header","Body","Footer","Section","Tabs","_$delegateEvents"],"sources":["layout/BottomSheet.tsx"],"sourcesContent":["import { type JSX, Show } from \"solid-js\";\nimport type { OpenDialogOptions } from \"../feedback/dialog-core\";\nimport { useUiMessages } from \"../intl/messages\";\nimport PanelDialog from \"./PanelDialog\";\n\nexport const bottomSheetOptions = {\n panelClassName: \"k2b-dialog k2b-bottom-sheet-frame\",\n contentClassName: \"k2b-panel-dialog-viewport k2b-bottom-sheet-viewport\",\n} satisfies OpenDialogOptions;\n\nexport type BottomSheetProps = {\n children: JSX.Element;\n /** Pass dialogCore's render context requestDismiss, never the completion callback. */\n onDismiss: () => void | Promise<void>;\n dismissDisabled?: boolean;\n dismissLabel?: string;\n handle?: boolean;\n};\n\nfunction BottomSheetRoot(props: BottomSheetProps) {\n const messages = useUiMessages();\n let pointer: { id: number; y: number } | undefined;\n let suppressClick = false;\n const dismiss = () => {\n if (!props.dismissDisabled) void props.onDismiss();\n };\n return (\n <PanelDialog>\n <Show when={props.handle !== false}>\n <button\n type=\"button\"\n class=\"k2b-bottom-sheet__handle\"\n aria-label={props.dismissLabel ?? messages().close}\n disabled={props.dismissDisabled}\n onPointerDown={(event) => {\n if (!event.isPrimary || event.button !== 0 || props.dismissDisabled) return;\n suppressClick = false;\n pointer = { id: event.pointerId, y: event.clientY };\n event.currentTarget.setPointerCapture(event.pointerId);\n }}\n onPointerUp={(event) => {\n if (pointer?.id !== event.pointerId) return;\n const distance = event.clientY - pointer.y;\n pointer = undefined;\n // A drag must not turn into a second dismiss request through click.\n suppressClick = Math.abs(distance) > 8;\n if (distance > 60) dismiss();\n }}\n onPointerCancel={() => {\n pointer = undefined;\n suppressClick = true;\n }}\n onLostPointerCapture={() => {\n if (pointer) {\n pointer = undefined;\n suppressClick = true;\n }\n }}\n onClick={(event) => {\n if (event.detail !== 0 && suppressClick) {\n suppressClick = false;\n return;\n }\n dismiss();\n }}\n >\n <span aria-hidden=\"true\" />\n </button>\n </Show>\n {props.children}\n </PanelDialog>\n );\n}\n\n/** Bottom-edge presentation; dialogCore continues to own all modal state. */\nconst BottomSheet = Object.assign(BottomSheetRoot, {\n Header: PanelDialog.Header,\n Body: PanelDialog.Body,\n Footer: PanelDialog.Footer,\n Section: PanelDialog.Section,\n Tabs: PanelDialog.Tabs,\n});\nexport default BottomSheet;\n"],"mappings":";;;;;;;;;;AAAA,SAAmBA,IAAI,QAAQ,UAAU;AAEzC,SAASC,aAAa,QAAQ,kBAAkB;AAChD,OAAOC,WAAW,MAAM,eAAe;
|
|
1
|
+
{"version":3,"names":["Show","useUiMessages","PanelDialog","sheetInitialFocus","dialog","lastElementChild","querySelector","bottomSheetOptions","panelClassName","contentClassName","initialFocus","BottomSheetRoot","props","messages","pointer","suppressClick","dismiss","dismissDisabled","onDismiss","_$createComponent","children","when","handle","_el$","_$getNextElement","_tmpl$","$$click","event","detail","addEventListener","undefined","$$pointerup","id","pointerId","distance","clientY","y","Math","abs","$$pointerdown","isPrimary","button","currentTarget","setPointerCapture","_$effect","_p$","_v$","dismissLabel","close","_v$2","e","_$setAttribute","t","_$setProperty","_$runHydrationEvents","_$memo","BottomSheet","Object","assign","Header","Body","Footer","Section","Tabs","_$delegateEvents"],"sources":["layout/BottomSheet.tsx"],"sourcesContent":["import { type JSX, Show } from \"solid-js\";\nimport type { OpenDialogOptions } from \"../feedback/dialog-core\";\nimport { useUiMessages } from \"../intl/messages\";\nimport PanelDialog from \"./PanelDialog\";\n\n/** Initial focus goes to the first input of the top sheet; the drag handle never\n * takes it, so a sheet that opens without a user gesture shows no focus ring. */\nconst sheetInitialFocus = (dialog: HTMLDialogElement): HTMLElement | null =>\n dialog.lastElementChild?.querySelector<HTMLElement>(\n \"input:not([type='hidden']):not([disabled]), textarea:not([disabled]), select:not([disabled]), [role='combobox']:not([disabled]):not([aria-disabled='true'])\",\n ) ?? null;\n\nexport const bottomSheetOptions = {\n panelClassName: \"k2b-dialog k2b-bottom-sheet-frame\",\n contentClassName: \"k2b-panel-dialog-viewport k2b-bottom-sheet-viewport\",\n initialFocus: sheetInitialFocus,\n} satisfies OpenDialogOptions;\n\nexport type BottomSheetProps = {\n children: JSX.Element;\n /** Pass dialogCore's render context requestDismiss, never the completion callback. */\n onDismiss: () => void | Promise<void>;\n dismissDisabled?: boolean;\n dismissLabel?: string;\n handle?: boolean;\n};\n\nfunction BottomSheetRoot(props: BottomSheetProps) {\n const messages = useUiMessages();\n let pointer: { id: number; y: number } | undefined;\n let suppressClick = false;\n const dismiss = () => {\n if (!props.dismissDisabled) void props.onDismiss();\n };\n return (\n <PanelDialog>\n <Show when={props.handle !== false}>\n <button\n type=\"button\"\n class=\"k2b-bottom-sheet__handle\"\n aria-label={props.dismissLabel ?? messages().close}\n disabled={props.dismissDisabled}\n onPointerDown={(event) => {\n if (!event.isPrimary || event.button !== 0 || props.dismissDisabled) return;\n suppressClick = false;\n pointer = { id: event.pointerId, y: event.clientY };\n event.currentTarget.setPointerCapture(event.pointerId);\n }}\n onPointerUp={(event) => {\n if (pointer?.id !== event.pointerId) return;\n const distance = event.clientY - pointer.y;\n pointer = undefined;\n // A drag must not turn into a second dismiss request through click.\n suppressClick = Math.abs(distance) > 8;\n if (distance > 60) dismiss();\n }}\n onPointerCancel={() => {\n pointer = undefined;\n suppressClick = true;\n }}\n onLostPointerCapture={() => {\n if (pointer) {\n pointer = undefined;\n suppressClick = true;\n }\n }}\n onClick={(event) => {\n if (event.detail !== 0 && suppressClick) {\n suppressClick = false;\n return;\n }\n dismiss();\n }}\n >\n <span aria-hidden=\"true\" />\n </button>\n </Show>\n {props.children}\n </PanelDialog>\n );\n}\n\n/** Bottom-edge presentation; dialogCore continues to own all modal state. */\nconst BottomSheet = Object.assign(BottomSheetRoot, {\n Header: PanelDialog.Header,\n Body: PanelDialog.Body,\n Footer: PanelDialog.Footer,\n Section: PanelDialog.Section,\n Tabs: PanelDialog.Tabs,\n});\nexport default BottomSheet;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -14,7 +14,7 @@ var _tmpl$ = /*#__PURE__*/_$template(`<h1>`),
|
|
|
14
14
|
_tmpl$6 = /*#__PURE__*/_$template(`<div><div class=k2b-panel-header__copy><!$><!/><!$><!/></div><!$><!/>`);
|
|
15
15
|
import { Show } from "solid-js";
|
|
16
16
|
const Heading = props => {
|
|
17
|
-
const className = `k2b-panel-header__title ${props.size === "md" ? "is-medium" : ""}`;
|
|
17
|
+
const className = `k2b-panel-header__title ${props.size === "md" ? "is-medium" : props.size === "lg" ? "is-large" : ""}`;
|
|
18
18
|
if (props.as === "h1") return (() => {
|
|
19
19
|
var _el$ = _$getNextElement(_tmpl$);
|
|
20
20
|
_$className(_el$, className);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Show","Heading","props","className","size","as","_el$","_$getNextElement","_tmpl$","_$className","_$insert","title","_el$2","_tmpl$2","_el$3","_tmpl$3","PanelHeader","_el$4","_tmpl$6","_el$5","firstChild","_el$7","_el$8","_co$","_$getNextMarker","nextSibling","_el$9","_el$0","_co$2","_el$10","_el$11","_co$3","_$createComponent","when","subtitle","children","_el$6","_tmpl$4","actions","_el$1","_tmpl$5","_$effect","_p$","_v$","class","_v$2","e","t","_$setAttribute","undefined"],"sources":["layout/PanelHeader.tsx"],"sourcesContent":["import { type JSX, Show } from \"solid-js\";\n\nexport type PanelHeaderProps = {\n title: JSX.Element;\n subtitle?: JSX.Element;\n actions?: JSX.Element;\n as?: \"h1\" | \"h2\" | \"h3\";\n size?: \"sm\" | \"md\";\n class?: string;\n};\n\nconst Heading = (props: Pick<PanelHeaderProps, \"as\" | \"size\" | \"title\">): JSX.Element => {\n const className = `k2b-panel-header__title ${props.size === \"md\" ? \"is-medium\" : \"\"}`;\n if (props.as === \"h1\") return <h1 class={className}>{props.title}</h1>;\n if (props.as === \"h3\") return <h3 class={className}>{props.title}</h3>;\n return <h2 class={className}>{props.title}</h2>;\n};\n\nexport function PanelHeader(props: PanelHeaderProps): JSX.Element {\n return (\n <div class={`k2b-panel-header ${props.class ?? \"\"}`} data-size={props.size ?? \"sm\"}>\n <div class=\"k2b-panel-header__copy\">\n <Heading as={props.as} size={props.size} title={props.title} />\n <Show when={props.subtitle}>\n <p class=\"k2b-panel-header__subtitle\">{props.subtitle}</p>\n </Show>\n </div>\n <Show when={props.actions}>\n <div class=\"k2b-panel-header__actions\">{props.actions}</div>\n </Show>\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;AAAA,SAAmBA,IAAI,QAAQ,UAAU;AAWzC,MAAMC,OAAO,GAAIC,KAAsD,IAAkB;EACvF,MAAMC,SAAS,GAAG,2BAA2BD,KAAK,CAACE,IAAI,KAAK,IAAI,GAAG,WAAW,GAAG,EAAE,EAAE;
|
|
1
|
+
{"version":3,"names":["Show","Heading","props","className","size","as","_el$","_$getNextElement","_tmpl$","_$className","_$insert","title","_el$2","_tmpl$2","_el$3","_tmpl$3","PanelHeader","_el$4","_tmpl$6","_el$5","firstChild","_el$7","_el$8","_co$","_$getNextMarker","nextSibling","_el$9","_el$0","_co$2","_el$10","_el$11","_co$3","_$createComponent","when","subtitle","children","_el$6","_tmpl$4","actions","_el$1","_tmpl$5","_$effect","_p$","_v$","class","_v$2","e","t","_$setAttribute","undefined"],"sources":["layout/PanelHeader.tsx"],"sourcesContent":["import { type JSX, Show } from \"solid-js\";\n\nexport type PanelHeaderProps = {\n title: JSX.Element;\n subtitle?: JSX.Element;\n actions?: JSX.Element;\n as?: \"h1\" | \"h2\" | \"h3\";\n size?: \"sm\" | \"md\" | \"lg\";\n class?: string;\n};\n\nconst Heading = (props: Pick<PanelHeaderProps, \"as\" | \"size\" | \"title\">): JSX.Element => {\n const className = `k2b-panel-header__title ${props.size === \"md\" ? \"is-medium\" : props.size === \"lg\" ? \"is-large\" : \"\"}`;\n if (props.as === \"h1\") return <h1 class={className}>{props.title}</h1>;\n if (props.as === \"h3\") return <h3 class={className}>{props.title}</h3>;\n return <h2 class={className}>{props.title}</h2>;\n};\n\nexport function PanelHeader(props: PanelHeaderProps): JSX.Element {\n return (\n <div class={`k2b-panel-header ${props.class ?? \"\"}`} data-size={props.size ?? \"sm\"}>\n <div class=\"k2b-panel-header__copy\">\n <Heading as={props.as} size={props.size} title={props.title} />\n <Show when={props.subtitle}>\n <p class=\"k2b-panel-header__subtitle\">{props.subtitle}</p>\n </Show>\n </div>\n <Show when={props.actions}>\n <div class=\"k2b-panel-header__actions\">{props.actions}</div>\n </Show>\n </div>\n );\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
import { template as _$template } from "solid-js/web";
|
|
2
|
+
import { setStyleProperty as _$setStyleProperty } from "solid-js/web";
|
|
3
|
+
import { setAttribute as _$setAttribute } from "solid-js/web";
|
|
4
|
+
import { className as _$className } from "solid-js/web";
|
|
5
|
+
import { effect as _$effect } from "solid-js/web";
|
|
6
|
+
import { getNextElement as _$getNextElement } from "solid-js/web";
|
|
7
|
+
import { getNextMarker as _$getNextMarker } from "solid-js/web";
|
|
8
|
+
import { insert as _$insert } from "solid-js/web";
|
|
9
|
+
import { memo as _$memo } from "solid-js/web";
|
|
10
|
+
import { use as _$use } from "solid-js/web";
|
|
11
|
+
var _tmpl$ = /*#__PURE__*/_$template(`<div><div class=k2b-pull-to-refresh__indicator role=status aria-live=polite><i aria-hidden=true></i><span class=k2b-sr-only></span></div><!$><!/>`);
|
|
12
|
+
import { createSignal, onCleanup, onMount } from "solid-js";
|
|
13
|
+
import { useUiMessages } from "../intl/messages";
|
|
14
|
+
|
|
15
|
+
/** Android's SwipeRefreshLayout triggers at 64dp; the pull is damped to half the input travel. */
|
|
16
|
+
const THRESHOLD = 64;
|
|
17
|
+
const MAX_DISTANCE = 96;
|
|
18
|
+
const RESISTANCE = 0.5;
|
|
19
|
+
/** A trackpad has no release event, so an idle gap ends the wheel gesture. */
|
|
20
|
+
const WHEEL_IDLE_MS = 300;
|
|
21
|
+
const LINE_HEIGHT = 16;
|
|
22
|
+
const INTERACTIVE = "a, button, input, textarea, select, [contenteditable], [role='button']";
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Turns a downward pull on a scroll container that is already at its top into
|
|
26
|
+
* one `onRefresh` call. Touch pulls, mouse or pen drags on non-interactive
|
|
27
|
+
* space, and trackpad or wheel overscroll share one gesture model. The gesture
|
|
28
|
+
* is an enhancement: keep a keyboard-reachable refresh (a button or the page
|
|
29
|
+
* reload) next to it.
|
|
30
|
+
*/
|
|
31
|
+
export function PullToRefresh(props) {
|
|
32
|
+
const messages = useUiMessages();
|
|
33
|
+
const [state, setState] = createSignal("idle");
|
|
34
|
+
const [distance, setDistance] = createSignal(0);
|
|
35
|
+
let root;
|
|
36
|
+
const active = () => !props.disabled && state() !== "refreshing";
|
|
37
|
+
const atTop = target => {
|
|
38
|
+
for (let node = target instanceof Element ? target : null; node && node !== root; node = node.parentElement) if (node.scrollTop > 0) return false;
|
|
39
|
+
return true;
|
|
40
|
+
};
|
|
41
|
+
const interactive = target => target instanceof Element && target.closest(INTERACTIVE) !== null;
|
|
42
|
+
/** Keeps the drag alive when the pointer leaves the wrapper; a pointer that is already gone must not end the gesture. */
|
|
43
|
+
const capture = id => {
|
|
44
|
+
try {
|
|
45
|
+
root.setPointerCapture(id);
|
|
46
|
+
} catch {}
|
|
47
|
+
};
|
|
48
|
+
const reset = () => {
|
|
49
|
+
setDistance(0);
|
|
50
|
+
setState("idle");
|
|
51
|
+
};
|
|
52
|
+
const pull = travel => {
|
|
53
|
+
const next = Math.min(MAX_DISTANCE, Math.max(0, travel * RESISTANCE));
|
|
54
|
+
setDistance(next);
|
|
55
|
+
setState(next >= THRESHOLD ? "ready" : next > 0 ? "pulling" : "idle");
|
|
56
|
+
};
|
|
57
|
+
const refresh = async () => {
|
|
58
|
+
if (state() === "refreshing") return;
|
|
59
|
+
setState("refreshing");
|
|
60
|
+
setDistance(THRESHOLD);
|
|
61
|
+
try {
|
|
62
|
+
await props.onRefresh();
|
|
63
|
+
} finally {
|
|
64
|
+
reset();
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
const release = () => {
|
|
68
|
+
if (state() === "ready") void refresh();else if (state() !== "refreshing") reset();
|
|
69
|
+
};
|
|
70
|
+
const abort = () => {
|
|
71
|
+
if (state() !== "refreshing") reset();
|
|
72
|
+
};
|
|
73
|
+
let wheelTravel = 0;
|
|
74
|
+
let wheelTimer;
|
|
75
|
+
const endWheel = () => {
|
|
76
|
+
wheelTravel = 0;
|
|
77
|
+
abort();
|
|
78
|
+
};
|
|
79
|
+
const onWheel = event => {
|
|
80
|
+
if (!active()) return;
|
|
81
|
+
clearTimeout(wheelTimer);
|
|
82
|
+
wheelTimer = setTimeout(endWheel, WHEEL_IDLE_MS);
|
|
83
|
+
if (event.deltaY >= 0 || !atTop(event.target)) return endWheel();
|
|
84
|
+
const scale = event.deltaMode === 1 ? LINE_HEIGHT : event.deltaMode === 2 ? root.clientHeight : 1;
|
|
85
|
+
wheelTravel -= event.deltaY * scale;
|
|
86
|
+
pull(wheelTravel);
|
|
87
|
+
if (state() === "ready") {
|
|
88
|
+
wheelTravel = 0;
|
|
89
|
+
void refresh();
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
let pointer = null;
|
|
93
|
+
const onPointerDown = event => {
|
|
94
|
+
if (event.pointerType === "touch" || event.button !== 0 || !active() || interactive(event.target) || !atTop(event.target)) return;
|
|
95
|
+
pointer = {
|
|
96
|
+
id: event.pointerId,
|
|
97
|
+
startY: event.clientY
|
|
98
|
+
};
|
|
99
|
+
};
|
|
100
|
+
const onPointerMove = event => {
|
|
101
|
+
if (!pointer || event.pointerId !== pointer.id) return;
|
|
102
|
+
const travel = event.clientY - pointer.startY;
|
|
103
|
+
if (travel <= 0 && state() === "idle") return;
|
|
104
|
+
if (state() === "idle") capture(pointer.id);
|
|
105
|
+
pull(travel);
|
|
106
|
+
if (state() !== "idle") event.preventDefault();
|
|
107
|
+
};
|
|
108
|
+
const onPointerUp = event => {
|
|
109
|
+
if (!pointer || event.pointerId !== pointer.id) return;
|
|
110
|
+
pointer = null;
|
|
111
|
+
release();
|
|
112
|
+
};
|
|
113
|
+
const onPointerCancel = event => {
|
|
114
|
+
if (!pointer || event.pointerId !== pointer.id) return;
|
|
115
|
+
pointer = null;
|
|
116
|
+
abort();
|
|
117
|
+
};
|
|
118
|
+
let touch = null;
|
|
119
|
+
const onTouchStart = event => {
|
|
120
|
+
const first = event.touches[0];
|
|
121
|
+
if (!first || event.touches.length !== 1 || !active() || !atTop(event.target)) return;
|
|
122
|
+
touch = {
|
|
123
|
+
id: first.identifier,
|
|
124
|
+
startY: first.clientY
|
|
125
|
+
};
|
|
126
|
+
};
|
|
127
|
+
const onTouchMove = event => {
|
|
128
|
+
if (!touch) return;
|
|
129
|
+
const current = Array.from(event.touches).find(item => item.identifier === touch?.id);
|
|
130
|
+
if (!current) return;
|
|
131
|
+
const travel = current.clientY - touch.startY;
|
|
132
|
+
if (travel <= 0 && state() === "idle") {
|
|
133
|
+
touch = null;
|
|
134
|
+
return;
|
|
135
|
+
}
|
|
136
|
+
pull(travel);
|
|
137
|
+
if (state() !== "idle" && event.cancelable) event.preventDefault();
|
|
138
|
+
};
|
|
139
|
+
const onTouchEnd = () => {
|
|
140
|
+
if (!touch) return;
|
|
141
|
+
touch = null;
|
|
142
|
+
release();
|
|
143
|
+
};
|
|
144
|
+
const onTouchCancel = () => {
|
|
145
|
+
if (!touch) return;
|
|
146
|
+
touch = null;
|
|
147
|
+
abort();
|
|
148
|
+
};
|
|
149
|
+
onMount(() => {
|
|
150
|
+
root.addEventListener("wheel", onWheel, {
|
|
151
|
+
passive: true
|
|
152
|
+
});
|
|
153
|
+
root.addEventListener("pointerdown", onPointerDown);
|
|
154
|
+
root.addEventListener("pointermove", onPointerMove);
|
|
155
|
+
root.addEventListener("pointerup", onPointerUp);
|
|
156
|
+
root.addEventListener("pointercancel", onPointerCancel);
|
|
157
|
+
root.addEventListener("touchstart", onTouchStart, {
|
|
158
|
+
passive: true
|
|
159
|
+
});
|
|
160
|
+
root.addEventListener("touchmove", onTouchMove, {
|
|
161
|
+
passive: false
|
|
162
|
+
});
|
|
163
|
+
root.addEventListener("touchend", onTouchEnd);
|
|
164
|
+
root.addEventListener("touchcancel", onTouchCancel);
|
|
165
|
+
onCleanup(() => {
|
|
166
|
+
clearTimeout(wheelTimer);
|
|
167
|
+
root.removeEventListener("wheel", onWheel);
|
|
168
|
+
root.removeEventListener("pointerdown", onPointerDown);
|
|
169
|
+
root.removeEventListener("pointermove", onPointerMove);
|
|
170
|
+
root.removeEventListener("pointerup", onPointerUp);
|
|
171
|
+
root.removeEventListener("pointercancel", onPointerCancel);
|
|
172
|
+
root.removeEventListener("touchstart", onTouchStart);
|
|
173
|
+
root.removeEventListener("touchmove", onTouchMove);
|
|
174
|
+
root.removeEventListener("touchend", onTouchEnd);
|
|
175
|
+
root.removeEventListener("touchcancel", onTouchCancel);
|
|
176
|
+
});
|
|
177
|
+
});
|
|
178
|
+
const className = () => props.class?.trim() ? `k2b-pull-to-refresh ${props.class.trim()}` : "k2b-pull-to-refresh";
|
|
179
|
+
const progress = () => Math.min(1, distance() / THRESHOLD);
|
|
180
|
+
return (() => {
|
|
181
|
+
var _el$ = _$getNextElement(_tmpl$),
|
|
182
|
+
_el$2 = _el$.firstChild,
|
|
183
|
+
_el$3 = _el$2.firstChild,
|
|
184
|
+
_el$4 = _el$3.nextSibling,
|
|
185
|
+
_el$5 = _el$2.nextSibling,
|
|
186
|
+
[_el$6, _co$] = _$getNextMarker(_el$5.nextSibling);
|
|
187
|
+
var _ref$ = root;
|
|
188
|
+
typeof _ref$ === "function" ? _$use(_ref$, _el$) : root = _el$;
|
|
189
|
+
_$insert(_el$4, (() => {
|
|
190
|
+
var _c$ = _$memo(() => state() === "refreshing");
|
|
191
|
+
return () => _c$() ? props.label ?? messages().refreshing : "";
|
|
192
|
+
})());
|
|
193
|
+
_$insert(_el$, () => props.children, _el$6, _co$);
|
|
194
|
+
_$effect(_p$ => {
|
|
195
|
+
var _v$ = className(),
|
|
196
|
+
_v$2 = state(),
|
|
197
|
+
_v$3 = `${distance()}px`,
|
|
198
|
+
_v$4 = String(progress()),
|
|
199
|
+
_v$5 = state() === "refreshing" ? "ti ti-loader-2 k2b-spin" : "ti ti-refresh";
|
|
200
|
+
_v$ !== _p$.e && _$className(_el$, _p$.e = _v$);
|
|
201
|
+
_v$2 !== _p$.t && _$setAttribute(_el$, "data-state", _p$.t = _v$2);
|
|
202
|
+
_v$3 !== _p$.a && _$setStyleProperty(_el$, "--k2b-pull-to-refresh-distance", _p$.a = _v$3);
|
|
203
|
+
_v$4 !== _p$.o && _$setStyleProperty(_el$, "--k2b-pull-to-refresh-progress", _p$.o = _v$4);
|
|
204
|
+
_v$5 !== _p$.i && _$className(_el$3, _p$.i = _v$5);
|
|
205
|
+
return _p$;
|
|
206
|
+
}, {
|
|
207
|
+
e: undefined,
|
|
208
|
+
t: undefined,
|
|
209
|
+
a: undefined,
|
|
210
|
+
o: undefined,
|
|
211
|
+
i: undefined
|
|
212
|
+
});
|
|
213
|
+
return _el$;
|
|
214
|
+
})();
|
|
215
|
+
}
|
|
216
|
+
export default PullToRefresh;
|
|
217
|
+
//# sourceMappingURL=PullToRefresh.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createSignal","onCleanup","onMount","useUiMessages","THRESHOLD","MAX_DISTANCE","RESISTANCE","WHEEL_IDLE_MS","LINE_HEIGHT","INTERACTIVE","PullToRefresh","props","messages","state","setState","distance","setDistance","root","active","disabled","atTop","target","node","Element","parentElement","scrollTop","interactive","closest","capture","id","setPointerCapture","reset","pull","travel","next","Math","min","max","refresh","onRefresh","release","abort","wheelTravel","wheelTimer","endWheel","onWheel","event","clearTimeout","setTimeout","deltaY","scale","deltaMode","clientHeight","pointer","onPointerDown","pointerType","button","pointerId","startY","clientY","onPointerMove","preventDefault","onPointerUp","onPointerCancel","touch","onTouchStart","first","touches","length","identifier","onTouchMove","current","Array","from","find","item","cancelable","onTouchEnd","onTouchCancel","addEventListener","passive","removeEventListener","className","class","trim","progress","_el$","_$getNextElement","_tmpl$","_el$2","firstChild","_el$3","_el$4","nextSibling","_el$5","_el$6","_co$","_$getNextMarker","_ref$","_$use","_$insert","_c$","_$memo","label","refreshing","children","_$effect","_p$","_v$","_v$2","_v$3","_v$4","String","_v$5","e","_$className","t","_$setAttribute","a","_$setStyleProperty","o","i","undefined"],"sources":["layout/PullToRefresh.tsx"],"sourcesContent":["import { createSignal, type JSX, onCleanup, onMount } from \"solid-js\";\nimport { useUiMessages } from \"../intl/messages\";\n\n/** Android's SwipeRefreshLayout triggers at 64dp; the pull is damped to half the input travel. */\nconst THRESHOLD = 64;\nconst MAX_DISTANCE = 96;\nconst RESISTANCE = 0.5;\n/** A trackpad has no release event, so an idle gap ends the wheel gesture. */\nconst WHEEL_IDLE_MS = 300;\nconst LINE_HEIGHT = 16;\n\nexport type PullToRefreshState = \"idle\" | \"pulling\" | \"ready\" | \"refreshing\";\n\nexport type PullToRefreshProps = {\n /** Reloads the wrapped content. The indicator stays busy until the promise settles. */\n onRefresh: () => Promise<void>;\n disabled?: boolean;\n /** Status text announced while refreshing. Defaults to the shared \"Refreshing\" message. */\n label?: string;\n class?: string;\n /** Exactly one scroll container; the gesture only starts while it is scrolled to the top. */\n children: JSX.Element;\n};\n\nconst INTERACTIVE = \"a, button, input, textarea, select, [contenteditable], [role='button']\";\n\n/**\n * Turns a downward pull on a scroll container that is already at its top into\n * one `onRefresh` call. Touch pulls, mouse or pen drags on non-interactive\n * space, and trackpad or wheel overscroll share one gesture model. The gesture\n * is an enhancement: keep a keyboard-reachable refresh (a button or the page\n * reload) next to it.\n */\nexport function PullToRefresh(props: PullToRefreshProps): JSX.Element {\n const messages = useUiMessages();\n const [state, setState] = createSignal<PullToRefreshState>(\"idle\");\n const [distance, setDistance] = createSignal(0);\n let root!: HTMLDivElement;\n\n const active = () => !props.disabled && state() !== \"refreshing\";\n const atTop = (target: EventTarget | null) => {\n for (let node = target instanceof Element ? target : null; node && node !== root; node = node.parentElement)\n if (node.scrollTop > 0) return false;\n return true;\n };\n const interactive = (target: EventTarget | null) => target instanceof Element && target.closest(INTERACTIVE) !== null;\n /** Keeps the drag alive when the pointer leaves the wrapper; a pointer that is already gone must not end the gesture. */\n const capture = (id: number) => {\n try {\n root.setPointerCapture(id);\n } catch {}\n };\n\n const reset = () => {\n setDistance(0);\n setState(\"idle\");\n };\n const pull = (travel: number) => {\n const next = Math.min(MAX_DISTANCE, Math.max(0, travel * RESISTANCE));\n setDistance(next);\n setState(next >= THRESHOLD ? \"ready\" : next > 0 ? \"pulling\" : \"idle\");\n };\n const refresh = async () => {\n if (state() === \"refreshing\") return;\n setState(\"refreshing\");\n setDistance(THRESHOLD);\n try {\n await props.onRefresh();\n } finally {\n reset();\n }\n };\n const release = () => {\n if (state() === \"ready\") void refresh();\n else if (state() !== \"refreshing\") reset();\n };\n const abort = () => {\n if (state() !== \"refreshing\") reset();\n };\n\n let wheelTravel = 0;\n let wheelTimer: ReturnType<typeof setTimeout> | undefined;\n const endWheel = () => {\n wheelTravel = 0;\n abort();\n };\n const onWheel = (event: WheelEvent) => {\n if (!active()) return;\n clearTimeout(wheelTimer);\n wheelTimer = setTimeout(endWheel, WHEEL_IDLE_MS);\n if (event.deltaY >= 0 || !atTop(event.target)) return endWheel();\n const scale = event.deltaMode === 1 ? LINE_HEIGHT : event.deltaMode === 2 ? root.clientHeight : 1;\n wheelTravel -= event.deltaY * scale;\n pull(wheelTravel);\n if (state() === \"ready\") {\n wheelTravel = 0;\n void refresh();\n }\n };\n\n let pointer: { id: number; startY: number } | null = null;\n const onPointerDown = (event: PointerEvent) => {\n if (event.pointerType === \"touch\" || event.button !== 0 || !active() || interactive(event.target) || !atTop(event.target)) return;\n pointer = { id: event.pointerId, startY: event.clientY };\n };\n const onPointerMove = (event: PointerEvent) => {\n if (!pointer || event.pointerId !== pointer.id) return;\n const travel = event.clientY - pointer.startY;\n if (travel <= 0 && state() === \"idle\") return;\n if (state() === \"idle\") capture(pointer.id);\n pull(travel);\n if (state() !== \"idle\") event.preventDefault();\n };\n const onPointerUp = (event: PointerEvent) => {\n if (!pointer || event.pointerId !== pointer.id) return;\n pointer = null;\n release();\n };\n const onPointerCancel = (event: PointerEvent) => {\n if (!pointer || event.pointerId !== pointer.id) return;\n pointer = null;\n abort();\n };\n\n let touch: { id: number; startY: number } | null = null;\n const onTouchStart = (event: TouchEvent) => {\n const first = event.touches[0];\n if (!first || event.touches.length !== 1 || !active() || !atTop(event.target)) return;\n touch = { id: first.identifier, startY: first.clientY };\n };\n const onTouchMove = (event: TouchEvent) => {\n if (!touch) return;\n const current = Array.from(event.touches).find((item) => item.identifier === touch?.id);\n if (!current) return;\n const travel = current.clientY - touch.startY;\n if (travel <= 0 && state() === \"idle\") {\n touch = null;\n return;\n }\n pull(travel);\n if (state() !== \"idle\" && event.cancelable) event.preventDefault();\n };\n const onTouchEnd = () => {\n if (!touch) return;\n touch = null;\n release();\n };\n const onTouchCancel = () => {\n if (!touch) return;\n touch = null;\n abort();\n };\n\n onMount(() => {\n root.addEventListener(\"wheel\", onWheel, { passive: true });\n root.addEventListener(\"pointerdown\", onPointerDown);\n root.addEventListener(\"pointermove\", onPointerMove);\n root.addEventListener(\"pointerup\", onPointerUp);\n root.addEventListener(\"pointercancel\", onPointerCancel);\n root.addEventListener(\"touchstart\", onTouchStart, { passive: true });\n root.addEventListener(\"touchmove\", onTouchMove, { passive: false });\n root.addEventListener(\"touchend\", onTouchEnd);\n root.addEventListener(\"touchcancel\", onTouchCancel);\n onCleanup(() => {\n clearTimeout(wheelTimer);\n root.removeEventListener(\"wheel\", onWheel);\n root.removeEventListener(\"pointerdown\", onPointerDown);\n root.removeEventListener(\"pointermove\", onPointerMove);\n root.removeEventListener(\"pointerup\", onPointerUp);\n root.removeEventListener(\"pointercancel\", onPointerCancel);\n root.removeEventListener(\"touchstart\", onTouchStart);\n root.removeEventListener(\"touchmove\", onTouchMove);\n root.removeEventListener(\"touchend\", onTouchEnd);\n root.removeEventListener(\"touchcancel\", onTouchCancel);\n });\n });\n\n const className = () => (props.class?.trim() ? `k2b-pull-to-refresh ${props.class.trim()}` : \"k2b-pull-to-refresh\");\n const progress = () => Math.min(1, distance() / THRESHOLD);\n\n return (\n <div\n ref={root}\n class={className()}\n data-state={state()}\n style={{ \"--k2b-pull-to-refresh-distance\": `${distance()}px`, \"--k2b-pull-to-refresh-progress\": String(progress()) }}\n >\n <div class=\"k2b-pull-to-refresh__indicator\" role=\"status\" aria-live=\"polite\">\n <i class={state() === \"refreshing\" ? \"ti ti-loader-2 k2b-spin\" : \"ti ti-refresh\"} aria-hidden=\"true\" />\n <span class=\"k2b-sr-only\">{state() === \"refreshing\" ? (props.label ?? messages().refreshing) : \"\"}</span>\n </div>\n {props.children}\n </div>\n );\n}\n\nexport default PullToRefresh;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -12,6 +12,7 @@ export { createNavigation, findNavigationItem } from "./navigation-model";
|
|
|
12
12
|
export { confirmDiscardIfDirty, default as PanelDialog, panelDialogFixedOptions, panelDialogFixedPanelClass, panelDialogOptions, panelDialogPanelClass, panelDialogWideOptions, panelDialogWidePanelClass, panelDialogWorkspaceOptions, panelDialogWorkspacePanelClass } from "./PanelDialog";
|
|
13
13
|
export { PanelHeader } from "./PanelHeader";
|
|
14
14
|
export { default as Panes } from "./Panes";
|
|
15
|
+
export { default as PullToRefresh } from "./PullToRefresh";
|
|
15
16
|
export { activatePanesItem, addPanesItem, applyPanesIntent, createPanesLayout, isPanesItemVisible, PANES_LAYOUT_VERSION, parsePanesLayout, reconcilePanesLayout, removePanesItem, resizePanesSplit } from "./panes-layout";
|
|
16
17
|
export { default as ScrollArea } from "./ScrollArea";
|
|
17
18
|
export { readSettingsError, SettingsField, SettingsGroup, SettingsPage, SettingsPanelFooter, SettingsSaveBar, SettingsSection, sameSettingValue } from "./Settings";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["default","AppOverview","AppWorkspace","installAppWorkspaceController","APP_WORKSPACE_DETAIL_DEFAULT","APP_WORKSPACE_DETAIL_MAX","APP_WORKSPACE_DETAIL_MIN","APP_WORKSPACE_DRAWER_DEFAULT","APP_WORKSPACE_DRAWER_MAX","APP_WORKSPACE_DRAWER_MIN","APP_WORKSPACE_MAIN_MIN","APP_WORKSPACE_MAIN_MIN_HEIGHT","APP_WORKSPACE_PANE_DEFAULT","APP_WORKSPACE_PANE_MAX","APP_WORKSPACE_PANE_MIN","APP_WORKSPACE_SIDEBAR_COLLAPSE_THRESHOLD","APP_WORKSPACE_SIDEBAR_COLLAPSED","APP_WORKSPACE_SIDEBAR_DEFAULT","APP_WORKSPACE_SIDEBAR_MAX","APP_WORKSPACE_SIDEBAR_MIN","appWorkspaceLayoutStyle","appWorkspacePanelVariable","appWorkspaceResizeLimits","normalizeAppWorkspaceLayoutState","parseAppWorkspaceLayoutState","resolveAppWorkspaceSidebarWidth","safeAppWorkspacePanelId","serializeAppWorkspaceLayoutState","shouldCollapseAppWorkspaceSidebar","bottomSheetOptions","BottomSheet","DataPanel","DetailPanel","Discussion","FloatingWindow","fitFloatingWindowRect","openFloatingWindow","Navigation","createNavigation","findNavigationItem","confirmDiscardIfDirty","PanelDialog","panelDialogFixedOptions","panelDialogFixedPanelClass","panelDialogOptions","panelDialogPanelClass","panelDialogWideOptions","panelDialogWidePanelClass","panelDialogWorkspaceOptions","panelDialogWorkspacePanelClass","PanelHeader","Panes","activatePanesItem","addPanesItem","applyPanesIntent","createPanesLayout","isPanesItemVisible","PANES_LAYOUT_VERSION","parsePanesLayout","reconcilePanesLayout","removePanesItem","resizePanesSplit","ScrollArea","readSettingsError","SettingsField","SettingsGroup","SettingsPage","SettingsPanelFooter","SettingsSaveBar","SettingsSection","sameSettingValue","SettingsCollection","SettingsModal"],"sources":["layout/index.ts"],"sourcesContent":["export type {\n AppOverviewEmptyStateProps,\n AppOverviewPanelProps,\n AppOverviewProps,\n} from \"./AppOverview\";\nexport { default as AppOverview } from \"./AppOverview\";\nexport type {\n AppWorkspaceBottomDrawerHeight,\n AppWorkspaceBottomDrawerProps,\n AppWorkspaceContentProps,\n AppWorkspaceDetailProps,\n AppWorkspaceDetailWidth,\n AppWorkspaceMainPaneProps,\n AppWorkspaceMainProps,\n AppWorkspaceNavTreeItemProps,\n AppWorkspaceNavTreeProps,\n AppWorkspaceProps,\n AppWorkspaceSidebarAccessoryVisibility,\n AppWorkspaceSidebarBodyProps,\n AppWorkspaceSidebarIconActionProps,\n AppWorkspaceSidebarIconActionTone,\n AppWorkspaceSidebarIconGridProps,\n AppWorkspaceSidebarItemActionProps,\n AppWorkspaceSidebarItemActionsProps,\n AppWorkspaceSidebarItemIconProps,\n AppWorkspaceSidebarItemLabelProps,\n AppWorkspaceSidebarItemMetaProps,\n AppWorkspaceSidebarItemProps,\n AppWorkspaceSidebarItemTone,\n AppWorkspaceSidebarProps,\n AppWorkspaceSidebarSectionProps,\n AppWorkspaceSidebarVisibility,\n} from \"./AppWorkspace\";\nexport { default as AppWorkspace } from \"./AppWorkspace\";\nexport type { AppWorkspaceControllerOptions } from \"./app-workspace-controller\";\nexport { installAppWorkspaceController } from \"./app-workspace-controller\";\nexport type {\n AppWorkspaceLayoutState,\n AppWorkspaceResizeKind,\n} from \"./app-workspace-state\";\nexport {\n APP_WORKSPACE_DETAIL_DEFAULT,\n APP_WORKSPACE_DETAIL_MAX,\n APP_WORKSPACE_DETAIL_MIN,\n APP_WORKSPACE_DRAWER_DEFAULT,\n APP_WORKSPACE_DRAWER_MAX,\n APP_WORKSPACE_DRAWER_MIN,\n APP_WORKSPACE_MAIN_MIN,\n APP_WORKSPACE_MAIN_MIN_HEIGHT,\n APP_WORKSPACE_PANE_DEFAULT,\n APP_WORKSPACE_PANE_MAX,\n APP_WORKSPACE_PANE_MIN,\n APP_WORKSPACE_SIDEBAR_COLLAPSE_THRESHOLD,\n APP_WORKSPACE_SIDEBAR_COLLAPSED,\n APP_WORKSPACE_SIDEBAR_DEFAULT,\n APP_WORKSPACE_SIDEBAR_MAX,\n APP_WORKSPACE_SIDEBAR_MIN,\n appWorkspaceLayoutStyle,\n appWorkspacePanelVariable,\n appWorkspaceResizeLimits,\n normalizeAppWorkspaceLayoutState,\n parseAppWorkspaceLayoutState,\n resolveAppWorkspaceSidebarWidth,\n safeAppWorkspacePanelId,\n serializeAppWorkspaceLayoutState,\n shouldCollapseAppWorkspaceSidebar,\n} from \"./app-workspace-state\";\nexport { type BottomSheetProps, bottomSheetOptions, default as BottomSheet } from \"./BottomSheet\";\nexport type { DataPanelProps } from \"./DataPanel\";\nexport { DataPanel } from \"./DataPanel\";\nexport type {\n DetailPanelActionButtonProps,\n DetailPanelActionLinkProps,\n DetailPanelActionProps,\n DetailPanelBodyProps,\n DetailPanelGroupProps,\n DetailPanelHeaderProps,\n DetailPanelProps,\n DetailPanelSectionProps,\n DetailPanelSummaryProps,\n DetailPanelTone,\n} from \"./DetailPanel\";\nexport { default as DetailPanel } from \"./DetailPanel\";\nexport type { DiscussionComposerProps, DiscussionItemProps, DiscussionListProps, DiscussionProps } from \"./Discussion\";\nexport { default as Discussion } from \"./Discussion\";\nexport type {\n FloatingWindowClose,\n FloatingWindowProps,\n OpenFloatingWindowOptions,\n} from \"./FloatingWindow\";\nexport {\n default as FloatingWindow,\n type FloatingWindowRect,\n fitFloatingWindowRect,\n openFloatingWindow,\n} from \"./FloatingWindow\";\nexport { default as Navigation, type NavigationProps } from \"./Navigation\";\nexport {\n createNavigation,\n findNavigationItem,\n type NavigationController,\n type NavigationItem,\n type NavigationOptions,\n} from \"./navigation-model\";\nexport type {\n PanelDialogBodyProps,\n PanelDialogFooterProps,\n PanelDialogHeaderProps,\n PanelDialogProps,\n PanelDialogSectionProps,\n PanelDialogSurface,\n PanelDialogTabOption,\n PanelDialogTabsProps,\n} from \"./PanelDialog\";\nexport {\n confirmDiscardIfDirty,\n default as PanelDialog,\n panelDialogFixedOptions,\n panelDialogFixedPanelClass,\n panelDialogOptions,\n panelDialogPanelClass,\n panelDialogWideOptions,\n panelDialogWidePanelClass,\n panelDialogWorkspaceOptions,\n panelDialogWorkspacePanelClass,\n} from \"./PanelDialog\";\nexport type { PanelHeaderProps } from \"./PanelHeader\";\nexport { PanelHeader } from \"./PanelHeader\";\nexport type { PanesItem, PanesProps } from \"./Panes\";\nexport { default as Panes } from \"./Panes\";\nexport type {\n AddPanesItemOptions,\n PanesDirection,\n PanesGroup,\n PanesIntent,\n PanesLayout,\n PanesNode,\n PanesPath,\n PanesPathSegment,\n PanesSide,\n PanesSplit,\n} from \"./panes-layout\";\nexport {\n activatePanesItem,\n addPanesItem,\n applyPanesIntent,\n createPanesLayout,\n isPanesItemVisible,\n PANES_LAYOUT_VERSION,\n parsePanesLayout,\n reconcilePanesLayout,\n removePanesItem,\n resizePanesSplit,\n} from \"./panes-layout\";\nexport type { ScrollAreaProps } from \"./ScrollArea\";\nexport { default as ScrollArea } from \"./ScrollArea\";\nexport type {\n SettingsFieldControlProps,\n SettingsFieldProps,\n SettingsGroupActionProps,\n SettingsGroupProps,\n SettingsPageProps,\n SettingsPanelFooterProps,\n SettingsSaveBarProps,\n SettingsSectionProps,\n} from \"./Settings\";\nexport {\n readSettingsError,\n SettingsField,\n SettingsGroup,\n SettingsPage,\n SettingsPanelFooter,\n SettingsSaveBar,\n SettingsSection,\n sameSettingValue,\n} from \"./Settings\";\nexport type {\n SettingsCollectionActionProps,\n SettingsCollectionItemActionsProps,\n SettingsCollectionItemProps,\n SettingsCollectionItemReorderProps,\n SettingsCollectionItemStatusProps,\n SettingsCollectionProps,\n} from \"./SettingsCollection\";\nexport { default as SettingsCollection } from \"./SettingsCollection\";\nexport type {\n SettingsModalFooterProps,\n SettingsModalGroupProps,\n SettingsModalProps,\n SettingsModalTabProps,\n SettingsModalTabTone,\n} from \"./SettingsModal\";\nexport { default as SettingsModal } from \"./SettingsModal\";\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["default","AppOverview","AppWorkspace","installAppWorkspaceController","APP_WORKSPACE_DETAIL_DEFAULT","APP_WORKSPACE_DETAIL_MAX","APP_WORKSPACE_DETAIL_MIN","APP_WORKSPACE_DRAWER_DEFAULT","APP_WORKSPACE_DRAWER_MAX","APP_WORKSPACE_DRAWER_MIN","APP_WORKSPACE_MAIN_MIN","APP_WORKSPACE_MAIN_MIN_HEIGHT","APP_WORKSPACE_PANE_DEFAULT","APP_WORKSPACE_PANE_MAX","APP_WORKSPACE_PANE_MIN","APP_WORKSPACE_SIDEBAR_COLLAPSE_THRESHOLD","APP_WORKSPACE_SIDEBAR_COLLAPSED","APP_WORKSPACE_SIDEBAR_DEFAULT","APP_WORKSPACE_SIDEBAR_MAX","APP_WORKSPACE_SIDEBAR_MIN","appWorkspaceLayoutStyle","appWorkspacePanelVariable","appWorkspaceResizeLimits","normalizeAppWorkspaceLayoutState","parseAppWorkspaceLayoutState","resolveAppWorkspaceSidebarWidth","safeAppWorkspacePanelId","serializeAppWorkspaceLayoutState","shouldCollapseAppWorkspaceSidebar","bottomSheetOptions","BottomSheet","DataPanel","DetailPanel","Discussion","FloatingWindow","fitFloatingWindowRect","openFloatingWindow","Navigation","createNavigation","findNavigationItem","confirmDiscardIfDirty","PanelDialog","panelDialogFixedOptions","panelDialogFixedPanelClass","panelDialogOptions","panelDialogPanelClass","panelDialogWideOptions","panelDialogWidePanelClass","panelDialogWorkspaceOptions","panelDialogWorkspacePanelClass","PanelHeader","Panes","PullToRefresh","activatePanesItem","addPanesItem","applyPanesIntent","createPanesLayout","isPanesItemVisible","PANES_LAYOUT_VERSION","parsePanesLayout","reconcilePanesLayout","removePanesItem","resizePanesSplit","ScrollArea","readSettingsError","SettingsField","SettingsGroup","SettingsPage","SettingsPanelFooter","SettingsSaveBar","SettingsSection","sameSettingValue","SettingsCollection","SettingsModal"],"sources":["layout/index.ts"],"sourcesContent":["export type {\n AppOverviewCardsProps,\n AppOverviewEmptyStateProps,\n AppOverviewPanelProps,\n AppOverviewProps,\n} from \"./AppOverview\";\nexport { default as AppOverview } from \"./AppOverview\";\nexport type {\n AppWorkspaceBottomDrawerHeight,\n AppWorkspaceBottomDrawerProps,\n AppWorkspaceContentProps,\n AppWorkspaceDetailProps,\n AppWorkspaceDetailWidth,\n AppWorkspaceMainPaneProps,\n AppWorkspaceMainProps,\n AppWorkspaceNavTreeItemProps,\n AppWorkspaceNavTreeProps,\n AppWorkspaceProps,\n AppWorkspaceSidebarAccessoryVisibility,\n AppWorkspaceSidebarBodyProps,\n AppWorkspaceSidebarIconActionProps,\n AppWorkspaceSidebarIconActionTone,\n AppWorkspaceSidebarIconGridProps,\n AppWorkspaceSidebarItemActionProps,\n AppWorkspaceSidebarItemActionsProps,\n AppWorkspaceSidebarItemIconProps,\n AppWorkspaceSidebarItemLabelProps,\n AppWorkspaceSidebarItemMetaProps,\n AppWorkspaceSidebarItemProps,\n AppWorkspaceSidebarItemTone,\n AppWorkspaceSidebarProps,\n AppWorkspaceSidebarSectionProps,\n AppWorkspaceSidebarVisibility,\n} from \"./AppWorkspace\";\nexport { default as AppWorkspace } from \"./AppWorkspace\";\nexport type { AppWorkspaceControllerOptions } from \"./app-workspace-controller\";\nexport { installAppWorkspaceController } from \"./app-workspace-controller\";\nexport type {\n AppWorkspaceLayoutState,\n AppWorkspaceResizeKind,\n} from \"./app-workspace-state\";\nexport {\n APP_WORKSPACE_DETAIL_DEFAULT,\n APP_WORKSPACE_DETAIL_MAX,\n APP_WORKSPACE_DETAIL_MIN,\n APP_WORKSPACE_DRAWER_DEFAULT,\n APP_WORKSPACE_DRAWER_MAX,\n APP_WORKSPACE_DRAWER_MIN,\n APP_WORKSPACE_MAIN_MIN,\n APP_WORKSPACE_MAIN_MIN_HEIGHT,\n APP_WORKSPACE_PANE_DEFAULT,\n APP_WORKSPACE_PANE_MAX,\n APP_WORKSPACE_PANE_MIN,\n APP_WORKSPACE_SIDEBAR_COLLAPSE_THRESHOLD,\n APP_WORKSPACE_SIDEBAR_COLLAPSED,\n APP_WORKSPACE_SIDEBAR_DEFAULT,\n APP_WORKSPACE_SIDEBAR_MAX,\n APP_WORKSPACE_SIDEBAR_MIN,\n appWorkspaceLayoutStyle,\n appWorkspacePanelVariable,\n appWorkspaceResizeLimits,\n normalizeAppWorkspaceLayoutState,\n parseAppWorkspaceLayoutState,\n resolveAppWorkspaceSidebarWidth,\n safeAppWorkspacePanelId,\n serializeAppWorkspaceLayoutState,\n shouldCollapseAppWorkspaceSidebar,\n} from \"./app-workspace-state\";\nexport { type BottomSheetProps, bottomSheetOptions, default as BottomSheet } from \"./BottomSheet\";\nexport type { DataPanelProps } from \"./DataPanel\";\nexport { DataPanel } from \"./DataPanel\";\nexport type {\n DetailPanelActionButtonProps,\n DetailPanelActionLinkProps,\n DetailPanelActionProps,\n DetailPanelBodyProps,\n DetailPanelGroupProps,\n DetailPanelHeaderProps,\n DetailPanelProps,\n DetailPanelSectionProps,\n DetailPanelSummaryProps,\n DetailPanelTone,\n} from \"./DetailPanel\";\nexport { default as DetailPanel } from \"./DetailPanel\";\nexport type { DiscussionComposerProps, DiscussionItemProps, DiscussionListProps, DiscussionProps } from \"./Discussion\";\nexport { default as Discussion } from \"./Discussion\";\nexport type {\n FloatingWindowClose,\n FloatingWindowProps,\n OpenFloatingWindowOptions,\n} from \"./FloatingWindow\";\nexport {\n default as FloatingWindow,\n type FloatingWindowRect,\n fitFloatingWindowRect,\n openFloatingWindow,\n} from \"./FloatingWindow\";\nexport { default as Navigation, type NavigationProps } from \"./Navigation\";\nexport {\n createNavigation,\n findNavigationItem,\n type NavigationController,\n type NavigationItem,\n type NavigationOptions,\n} from \"./navigation-model\";\nexport type {\n PanelDialogBodyProps,\n PanelDialogFooterProps,\n PanelDialogHeaderProps,\n PanelDialogProps,\n PanelDialogSectionProps,\n PanelDialogSurface,\n PanelDialogTabOption,\n PanelDialogTabsProps,\n} from \"./PanelDialog\";\nexport {\n confirmDiscardIfDirty,\n default as PanelDialog,\n panelDialogFixedOptions,\n panelDialogFixedPanelClass,\n panelDialogOptions,\n panelDialogPanelClass,\n panelDialogWideOptions,\n panelDialogWidePanelClass,\n panelDialogWorkspaceOptions,\n panelDialogWorkspacePanelClass,\n} from \"./PanelDialog\";\nexport type { PanelHeaderProps } from \"./PanelHeader\";\nexport { PanelHeader } from \"./PanelHeader\";\nexport type { PanesItem, PanesProps } from \"./Panes\";\nexport { default as Panes } from \"./Panes\";\nexport type { PullToRefreshProps, PullToRefreshState } from \"./PullToRefresh\";\nexport { default as PullToRefresh } from \"./PullToRefresh\";\nexport type {\n AddPanesItemOptions,\n PanesDirection,\n PanesGroup,\n PanesIntent,\n PanesLayout,\n PanesNode,\n PanesPath,\n PanesPathSegment,\n PanesSide,\n PanesSplit,\n} from \"./panes-layout\";\nexport {\n activatePanesItem,\n addPanesItem,\n applyPanesIntent,\n createPanesLayout,\n isPanesItemVisible,\n PANES_LAYOUT_VERSION,\n parsePanesLayout,\n reconcilePanesLayout,\n removePanesItem,\n resizePanesSplit,\n} from \"./panes-layout\";\nexport type { ScrollAreaProps } from \"./ScrollArea\";\nexport { default as ScrollArea } from \"./ScrollArea\";\nexport type {\n SettingsFieldControlProps,\n SettingsFieldProps,\n SettingsGroupActionProps,\n SettingsGroupProps,\n SettingsPageProps,\n SettingsPanelFooterProps,\n SettingsSaveBarProps,\n SettingsSectionProps,\n} from \"./Settings\";\nexport {\n readSettingsError,\n SettingsField,\n SettingsGroup,\n SettingsPage,\n SettingsPanelFooter,\n SettingsSaveBar,\n SettingsSection,\n sameSettingValue,\n} from \"./Settings\";\nexport type {\n SettingsCollectionActionProps,\n SettingsCollectionItemActionsProps,\n SettingsCollectionItemProps,\n SettingsCollectionItemReorderProps,\n SettingsCollectionItemStatusProps,\n SettingsCollectionProps,\n} from \"./SettingsCollection\";\nexport { default as SettingsCollection } from \"./SettingsCollection\";\nexport type {\n SettingsModalFooterProps,\n SettingsModalGroupProps,\n SettingsModalProps,\n SettingsModalTabProps,\n SettingsModalTabTone,\n} from \"./SettingsModal\";\nexport { default as SettingsModal } from \"./SettingsModal\";\n"],"mappings":"AAMA,SAASA,OAAO,IAAIC,WAAW,QAAQ,eAAe;AA4BtD,SAASD,OAAO,IAAIE,YAAY,QAAQ,gBAAgB;AAExD,SAASC,6BAA6B,QAAQ,4BAA4B;AAK1E,SACEC,4BAA4B,EAC5BC,wBAAwB,EACxBC,wBAAwB,EACxBC,4BAA4B,EAC5BC,wBAAwB,EACxBC,wBAAwB,EACxBC,sBAAsB,EACtBC,6BAA6B,EAC7BC,0BAA0B,EAC1BC,sBAAsB,EACtBC,sBAAsB,EACtBC,wCAAwC,EACxCC,+BAA+B,EAC/BC,6BAA6B,EAC7BC,yBAAyB,EACzBC,yBAAyB,EACzBC,uBAAuB,EACvBC,yBAAyB,EACzBC,wBAAwB,EACxBC,gCAAgC,EAChCC,4BAA4B,EAC5BC,+BAA+B,EAC/BC,uBAAuB,EACvBC,gCAAgC,EAChCC,iCAAiC,QAC5B,uBAAuB;AAC9B,SAAgCC,kBAAkB,EAAE7B,OAAO,IAAI8B,WAAW,QAAQ,eAAe;AAEjG,SAASC,SAAS,QAAQ,aAAa;AAavC,SAAS/B,OAAO,IAAIgC,WAAW,QAAQ,eAAe;AAEtD,SAAShC,OAAO,IAAIiC,UAAU,QAAQ,cAAc;AAMpD,SACEjC,OAAO,IAAIkC,cAAc,EAEzBC,qBAAqB,EACrBC,kBAAkB,QACb,kBAAkB;AACzB,SAASpC,OAAO,IAAIqC,UAAU,QAA8B,cAAc;AAC1E,SACEC,gBAAgB,EAChBC,kBAAkB,QAIb,oBAAoB;AAW3B,SACEC,qBAAqB,EACrBxC,OAAO,IAAIyC,WAAW,EACtBC,uBAAuB,EACvBC,0BAA0B,EAC1BC,kBAAkB,EAClBC,qBAAqB,EACrBC,sBAAsB,EACtBC,yBAAyB,EACzBC,2BAA2B,EAC3BC,8BAA8B,QACzB,eAAe;AAEtB,SAASC,WAAW,QAAQ,eAAe;AAE3C,SAASlD,OAAO,IAAImD,KAAK,QAAQ,SAAS;AAE1C,SAASnD,OAAO,IAAIoD,aAAa,QAAQ,iBAAiB;AAa1D,SACEC,iBAAiB,EACjBC,YAAY,EACZC,gBAAgB,EAChBC,iBAAiB,EACjBC,kBAAkB,EAClBC,oBAAoB,EACpBC,gBAAgB,EAChBC,oBAAoB,EACpBC,eAAe,EACfC,gBAAgB,QACX,gBAAgB;AAEvB,SAAS9D,OAAO,IAAI+D,UAAU,QAAQ,cAAc;AAWpD,SACEC,iBAAiB,EACjBC,aAAa,EACbC,aAAa,EACbC,YAAY,EACZC,mBAAmB,EACnBC,eAAe,EACfC,eAAe,EACfC,gBAAgB,QACX,YAAY;AASnB,SAASvE,OAAO,IAAIwE,kBAAkB,QAAQ,sBAAsB;AAQpE,SAASxE,OAAO,IAAIyE,aAAa,QAAQ,iBAAiB","ignoreList":[]}
|
|
@@ -6,7 +6,9 @@ import { effect as _$effect } from "solid-js/web";
|
|
|
6
6
|
import { getNextElement as _$getNextElement } from "solid-js/web";
|
|
7
7
|
var _tmpl$ = /*#__PURE__*/_$template(`<div class=k2b-link-card__icon><i aria-hidden=true>`),
|
|
8
8
|
_tmpl$2 = /*#__PURE__*/_$template(`<div class=k2b-link-card__copy><span class=k2b-link-card__title></span><p class=k2b-link-card__description>`),
|
|
9
|
-
_tmpl$3 = /*#__PURE__*/_$template(`<
|
|
9
|
+
_tmpl$3 = /*#__PURE__*/_$template(`<span class=k2b-link-card__meta>`),
|
|
10
|
+
_tmpl$4 = /*#__PURE__*/_$template(`<i class="ti ti-chevron-right k2b-link-card__chevron"aria-hidden=true>`);
|
|
11
|
+
import { Show } from "solid-js";
|
|
10
12
|
import { Paper } from "./Paper";
|
|
11
13
|
export function LinkCard(props) {
|
|
12
14
|
return _$createComponent(Paper, {
|
|
@@ -32,7 +34,16 @@ export function LinkCard(props) {
|
|
|
32
34
|
_$insert(_el$4, () => props.title);
|
|
33
35
|
_$insert(_el$5, () => props.description);
|
|
34
36
|
return _el$3;
|
|
35
|
-
})(), _$
|
|
37
|
+
})(), _$createComponent(Show, {
|
|
38
|
+
get when() {
|
|
39
|
+
return props.meta;
|
|
40
|
+
},
|
|
41
|
+
get children() {
|
|
42
|
+
var _el$6 = _$getNextElement(_tmpl$3);
|
|
43
|
+
_$insert(_el$6, () => props.meta);
|
|
44
|
+
return _el$6;
|
|
45
|
+
}
|
|
46
|
+
}), _$getNextElement(_tmpl$4)];
|
|
36
47
|
}
|
|
37
48
|
});
|
|
38
49
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Paper","LinkCard","props","_$createComponent","as","href","data-color","color","interactive","children","_el$","_$getNextElement","_tmpl$","_el$2","firstChild","_$effect","_$className","icon","_el$3","_tmpl$2","_el$4","_el$5","nextSibling","_$insert","title","description","_tmpl$3"],"sources":["surfaces/LinkCard.tsx"],"sourcesContent":["import type
|
|
1
|
+
{"version":3,"names":["Show","Paper","LinkCard","props","_$createComponent","as","href","data-color","color","interactive","children","_el$","_$getNextElement","_tmpl$","_el$2","firstChild","_$effect","_$className","icon","_el$3","_tmpl$2","_el$4","_el$5","nextSibling","_$insert","title","description","when","meta","_el$6","_tmpl$3","_tmpl$4"],"sources":["surfaces/LinkCard.tsx"],"sourcesContent":["import { type JSX, Show } from \"solid-js\";\nimport { Paper } from \"./Paper\";\n\nexport type LinkCardColor = \"blue\" | \"emerald\" | \"violet\" | \"orange\" | \"red\" | \"amber\" | \"zinc\" | \"cyan\" | \"rose\";\n\nexport type LinkCardProps = {\n href: string;\n title: string;\n description: string;\n icon: string;\n /** Glyph color. Omit it to use the host application's accent. */\n color?: LinkCardColor;\n /** One trailing fact, such as a count or a badge. */\n meta?: JSX.Element;\n};\n\nexport function LinkCard(props: LinkCardProps): JSX.Element {\n return (\n <Paper as=\"a\" href={props.href} class=\"k2b-link-card\" data-color={props.color} interactive>\n <div class=\"k2b-link-card__icon\">\n <i class={`${props.icon} k2b-link-card__glyph`} aria-hidden=\"true\" />\n </div>\n <div class=\"k2b-link-card__copy\">\n <span class=\"k2b-link-card__title\">{props.title}</span>\n <p class=\"k2b-link-card__description\">{props.description}</p>\n </div>\n <Show when={props.meta}>\n <span class=\"k2b-link-card__meta\">{props.meta}</span>\n </Show>\n <i class=\"ti ti-chevron-right k2b-link-card__chevron\" aria-hidden=\"true\" />\n </Paper>\n );\n}\n\nexport default LinkCard;\n"],"mappings":";;;;;;;;;;AAAA,SAAmBA,IAAI,QAAQ,UAAU;AACzC,SAASC,KAAK,QAAQ,SAAS;AAe/B,OAAO,SAASC,QAAQA,CAACC,KAAoB,EAAe;EAC1D,OAAAC,iBAAA,CACGH,KAAK;IAACI,EAAE;IAAA,IAAKC,IAAIA,CAAA;MAAA,OAAEH,KAAK,CAACG,IAAI;IAAA;IAAA;IAAA,kBAAAC,CAAA;MAAA,OAAoCJ,KAAK,CAACK,KAAK;IAAA;IAAEC,WAAW;IAAA,IAAAC,SAAA;MAAA;QAAA,IAAAC,IAAA,GAAAC,gBAAA,CAAAC,MAAA;UAAAC,KAAA,GAAAH,IAAA,CAAAI,UAAA;QAAAC,QAAA,OAAAC,WAAA,CAAAH,KAAA,EAE5E,GAAGX,KAAK,CAACe,IAAI,uBAAuB;QAAA,OAAAP,IAAA;MAAA;QAAA,IAAAQ,KAAA,GAAAP,gBAAA,CAAAQ,OAAA;UAAAC,KAAA,GAAAF,KAAA,CAAAJ,UAAA;UAAAO,KAAA,GAAAD,KAAA,CAAAE,WAAA;QAAAC,QAAA,CAAAH,KAAA,QAGVlB,KAAK,CAACsB,KAAK;QAAAD,QAAA,CAAAF,KAAA,QACRnB,KAAK,CAACuB,WAAW;QAAA,OAAAP,KAAA;MAAA,MAAAf,iBAAA,CAEzDJ,IAAI;QAAA,IAAC2B,IAAIA,CAAA;UAAA,OAAExB,KAAK,CAACyB,IAAI;QAAA;QAAA,IAAAlB,SAAA;UAAA,IAAAmB,KAAA,GAAAjB,gBAAA,CAAAkB,OAAA;UAAAN,QAAA,CAAAK,KAAA,QACe1B,KAAK,CAACyB,IAAI;UAAA,OAAAC,KAAA;QAAA;MAAA,IAAAjB,gBAAA,CAAAmB,OAAA;IAAA;EAAA;AAKrD;AAEA,eAAe7B,QAAQ","ignoreList":[]}
|
|
@@ -88,6 +88,7 @@ const uiMessages = i18n.define({
|
|
|
88
88
|
page
|
|
89
89
|
}) => `Go to page ${page}`,
|
|
90
90
|
retry: "Retry",
|
|
91
|
+
refreshing: "Refreshing",
|
|
91
92
|
reset: "Reset",
|
|
92
93
|
required: "required",
|
|
93
94
|
rename: "Rename",
|
|
@@ -520,6 +521,7 @@ const uiMessages = i18n.define({
|
|
|
520
521
|
page
|
|
521
522
|
}) => `Zu Seite ${page}`,
|
|
522
523
|
retry: "Erneut versuchen",
|
|
524
|
+
refreshing: "Wird aktualisiert",
|
|
523
525
|
reset: "Zurücksetzen",
|
|
524
526
|
required: "erforderlich",
|
|
525
527
|
rename: "Umbenennen",
|