@seekbuddy/dsh-ui 0.0.0-stage → 0.2.0-beta.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/CHANGELOG.md +83 -0
- package/LICENSE +22 -0
- package/README.md +175 -2
- package/README.zh.md +176 -0
- package/THIRD_PARTY_NOTICES.md +42 -0
- package/UPSTREAM.md +59 -0
- package/dist/blocks.js +1617 -0
- package/dist/chunks/chunk-23KOEBWJ.js +104 -0
- package/dist/chunks/chunk-6SGSJ5KW.js +57 -0
- package/dist/chunks/chunk-7NH2UOZO.js +155 -0
- package/dist/chunks/chunk-7SKW4S35.js +66 -0
- package/dist/chunks/chunk-B3EEK7A2.js +408 -0
- package/dist/chunks/chunk-CEBTQO6W.js +24 -0
- package/dist/chunks/chunk-ENKPNYOB.js +26 -0
- package/dist/chunks/chunk-EWAZFWLW.js +27 -0
- package/dist/chunks/chunk-F352IICS.js +57 -0
- package/dist/chunks/chunk-FFJ6TCCF.js +31 -0
- package/dist/chunks/chunk-FZXK4LTI.js +129 -0
- package/dist/chunks/chunk-JA3XDLIA.js +1115 -0
- package/dist/chunks/chunk-L7XALG4J.js +36 -0
- package/dist/chunks/chunk-OCAQFVT3.js +3172 -0
- package/dist/chunks/chunk-RAXDA2PT.js +202 -0
- package/dist/chunks/chunk-RNVSCTW7.js +24 -0
- package/dist/chunks/chunk-RZOP2PFC.js +152 -0
- package/dist/chunks/chunk-SN6RSUWC.js +61 -0
- package/dist/chunks/chunk-SNVSQWCU.js +22 -0
- package/dist/chunks/chunk-SO3DCAWG.js +170 -0
- package/dist/chunks/chunk-UAEFKTV3.js +144 -0
- package/dist/chunks/chunk-UGEORMLD.js +89 -0
- package/dist/chunks/chunk-W6FLI3AK.js +112 -0
- package/dist/chunks/chunk-WX46TSKP.js +328 -0
- package/dist/chunks/chunk-XL33IPCV.js +261 -0
- package/dist/chunks/chunk-XW4L4ZGL.js +967 -0
- package/dist/chunks/chunk-YOBY6PSL.js +850 -0
- package/dist/chunks/chunk-ZA47FP7C.js +7 -0
- package/dist/icons.js +859 -0
- package/dist/index.js +1675 -0
- package/dist/katex/fonts/KaTeX_AMS-Regular.woff2 +0 -0
- package/dist/katex/fonts/KaTeX_Caligraphic-Bold.woff2 +0 -0
- package/dist/katex/fonts/KaTeX_Caligraphic-Regular.woff2 +0 -0
- package/dist/katex/fonts/KaTeX_Fraktur-Bold.woff2 +0 -0
- package/dist/katex/fonts/KaTeX_Fraktur-Regular.woff2 +0 -0
- package/dist/katex/fonts/KaTeX_Main-Bold.woff2 +0 -0
- package/dist/katex/fonts/KaTeX_Main-BoldItalic.woff2 +0 -0
- package/dist/katex/fonts/KaTeX_Main-Italic.woff2 +0 -0
- package/dist/katex/fonts/KaTeX_Main-Regular.woff2 +0 -0
- package/dist/katex/fonts/KaTeX_Math-BoldItalic.woff2 +0 -0
- package/dist/katex/fonts/KaTeX_Math-Italic.woff2 +0 -0
- package/dist/katex/fonts/KaTeX_SansSerif-Bold.woff2 +0 -0
- package/dist/katex/fonts/KaTeX_SansSerif-Italic.woff2 +0 -0
- package/dist/katex/fonts/KaTeX_SansSerif-Regular.woff2 +0 -0
- package/dist/katex/fonts/KaTeX_Script-Regular.woff2 +0 -0
- package/dist/katex/fonts/KaTeX_Size1-Regular.woff2 +0 -0
- package/dist/katex/fonts/KaTeX_Size2-Regular.woff2 +0 -0
- package/dist/katex/fonts/KaTeX_Size3-Regular.woff2 +0 -0
- package/dist/katex/fonts/KaTeX_Size4-Regular.woff2 +0 -0
- package/dist/katex/fonts/KaTeX_Typewriter-Regular.woff2 +0 -0
- package/dist/katex.css +1 -0
- package/dist/katex.css.d.ts +2 -0
- package/dist/markdown.js +225 -0
- package/dist/meta.json +7575 -0
- package/dist/root-inputs.json +86 -0
- package/dist/seekbuddy-card.js +7 -0
- package/dist/seekbuddy-empty.js +8 -0
- package/dist/seekbuddy-internal/DangerButton.js +7 -0
- package/dist/seekbuddy-internal/Mark.js +7 -0
- package/dist/seekbuddy-internal/Message.js +10 -0
- package/dist/seekbuddy-internal/Pagination.js +9 -0
- package/dist/seekbuddy-internal/StatusBadge.js +7 -0
- package/dist/seekbuddy-internal/SubtleButton.js +7 -0
- package/dist/seekbuddy-internal/Switch.js +7 -0
- package/dist/seekbuddy-internal/Upload.js +7 -0
- package/dist/seekbuddy-internal/date/Calendar.js +8 -0
- package/dist/seekbuddy-internal/date/DatePicker.js +9 -0
- package/dist/seekbuddy-internal/date/DateRangePicker.js +9 -0
- package/dist/seekbuddy-internal/date/TimePicker.js +8 -0
- package/dist/seekbuddy-internal/date/fields.js +16 -0
- package/dist/seekbuddy-internal/qr/QrCode.js +7 -0
- package/dist/seekbuddy-spinner.js +7 -0
- package/dist/seekbuddy-tabs.js +7 -0
- package/dist/seekbuddy-timeline.js +8 -0
- package/dist/seekbuddy.js +89 -0
- package/dist/theme-bootstrap.js +13 -0
- package/dist/theme.js +37 -0
- package/dist/tokens.css +974 -0
- package/dist/tokens.css.d.ts +2 -0
- package/dist/types/AnimatedRows.d.ts +45 -0
- package/dist/types/Button.d.ts +18 -0
- package/dist/types/Checkbox.d.ts +19 -0
- package/dist/types/CodeFileIcon.d.ts +11 -0
- package/dist/types/CodeToolbar.d.ts +29 -0
- package/dist/types/CommandText.d.ts +15 -0
- package/dist/types/ConfigField.d.ts +32 -0
- package/dist/types/ConnectionIndicator.d.ts +25 -0
- package/dist/types/DetailDocument.d.ts +77 -0
- package/dist/types/DiffBlock.d.ts +51 -0
- package/dist/types/DisclosureRow.d.ts +37 -0
- package/dist/types/DraggableImage.d.ts +18 -0
- package/dist/types/FileTypeIcon.d.ts +42 -0
- package/dist/types/FoldToggle.d.ts +19 -0
- package/dist/types/HoverCard.d.ts +44 -0
- package/dist/types/HoverCardGroup.d.ts +24 -0
- package/dist/types/ImageLightbox.d.ts +29 -0
- package/dist/types/ImagePreview.d.ts +11 -0
- package/dist/types/InlineEditor.d.ts +22 -0
- package/dist/types/Input.d.ts +11 -0
- package/dist/types/JsonTree.d.ts +58 -0
- package/dist/types/LinkIcon.d.ts +33 -0
- package/dist/types/Menu.d.ts +163 -0
- package/dist/types/MenuGroup.d.ts +21 -0
- package/dist/types/MenuSurface.d.ts +24 -0
- package/dist/types/Modal.d.ts +43 -0
- package/dist/types/PermissionIcon.d.ts +50 -0
- package/dist/types/Pill.d.ts +12 -0
- package/dist/types/QuotePreview.d.ts +23 -0
- package/dist/types/ReadBlock.d.ts +47 -0
- package/dist/types/ReferenceIcon.d.ts +20 -0
- package/dist/types/RiskConfirmation.d.ts +19 -0
- package/dist/types/SearchBlock.d.ts +71 -0
- package/dist/types/SegmentedControl.d.ts +34 -0
- package/dist/types/SegmentedTabs.d.ts +27 -0
- package/dist/types/ShortcutKeys.d.ts +10 -0
- package/dist/types/SiteGlyph.d.ts +24 -0
- package/dist/types/StateDot.d.ts +19 -0
- package/dist/types/Switch.d.ts +19 -0
- package/dist/types/Tag.d.ts +31 -0
- package/dist/types/TerminalBlock.d.ts +85 -0
- package/dist/types/TextShimmer.d.ts +22 -0
- package/dist/types/Toast.d.ts +48 -0
- package/dist/types/Tooltip.d.ts +69 -0
- package/dist/types/UserMessageBubble.d.ts +10 -0
- package/dist/types/WebBlock.d.ts +60 -0
- package/dist/types/ZoomControls.d.ts +26 -0
- package/dist/types/ansi.d.ts +16 -0
- package/dist/types/blocks.d.ts +21 -0
- package/dist/types/clipboard.d.ts +8 -0
- package/dist/types/code-file-icon-artwork.d.ts +53 -0
- package/dist/types/code-file-types.d.ts +29 -0
- package/dist/types/code-highlighting.d.ts +11 -0
- package/dist/types/css-modules.d.ts +6 -0
- package/dist/types/darwin-desktop.d.ts +8 -0
- package/dist/types/document-zoom.d.ts +16 -0
- package/dist/types/file-drag-actions.d.ts +36 -0
- package/dist/types/file-size.d.ts +7 -0
- package/dist/types/focus.d.ts +15 -0
- package/dist/types/guide-artwork.d.ts +14 -0
- package/dist/types/head-tail-cap.d.ts +22 -0
- package/dist/types/icons/artwork.d.ts +421 -0
- package/dist/types/icons/index.d.ts +397 -0
- package/dist/types/icons/props.d.ts +8 -0
- package/dist/types/icons/shared-artwork.d.ts +36 -0
- package/dist/types/icons.d.ts +6 -0
- package/dist/types/image-drag.d.ts +16 -0
- package/dist/types/index.d.ts +71 -0
- package/dist/types/input-modality.d.ts +18 -0
- package/dist/types/keyboard-composition.d.ts +10 -0
- package/dist/types/markdown/CodeBlock.d.ts +34 -0
- package/dist/types/markdown/JsonBlock.d.ts +7 -0
- package/dist/types/markdown/MarkdownDelegate.d.ts +68 -0
- package/dist/types/markdown/MarkdownText.d.ts +54 -0
- package/dist/types/markdown/cjkFriendlyStrong.d.ts +8 -0
- package/dist/types/markdown/file-link.d.ts +22 -0
- package/dist/types/markdown/highlight.d.ts +169 -0
- package/dist/types/markdown/incremental.d.ts +79 -0
- package/dist/types/markdown/katex.d.ts +18 -0
- package/dist/types/markdown/local-image-syntax.d.ts +9 -0
- package/dist/types/markdown/mathCompatibility.d.ts +10 -0
- package/dist/types/markdown/parse.d.ts +24 -0
- package/dist/types/markdown/plain-text.d.ts +21 -0
- package/dist/types/markdown/quote-text.d.ts +7 -0
- package/dist/types/markdown/render.d.ts +145 -0
- package/dist/types/markdown/useViewportHighlighting.d.ts +10 -0
- package/dist/types/markdown/windows-path-destinations.d.ts +10 -0
- package/dist/types/markdown.d.ts +12 -0
- package/dist/types/overlay-top-margin.d.ts +14 -0
- package/dist/types/plugin-artwork.d.ts +16 -0
- package/dist/types/pointer-grace.d.ts +21 -0
- package/dist/types/rank-by-name.d.ts +21 -0
- package/dist/types/relative-time.d.ts +22 -0
- package/dist/types/seekbuddy/Card.d.ts +28 -0
- package/dist/types/seekbuddy/DangerButton.d.ts +31 -0
- package/dist/types/seekbuddy/Empty.d.ts +34 -0
- package/dist/types/seekbuddy/Mark.d.ts +27 -0
- package/dist/types/seekbuddy/Message.d.ts +52 -0
- package/dist/types/seekbuddy/Pagination.d.ts +66 -0
- package/dist/types/seekbuddy/Spinner.d.ts +20 -0
- package/dist/types/seekbuddy/StatusBadge.d.ts +33 -0
- package/dist/types/seekbuddy/SubtleButton.d.ts +30 -0
- package/dist/types/seekbuddy/Switch.d.ts +36 -0
- package/dist/types/seekbuddy/Tabs.d.ts +49 -0
- package/dist/types/seekbuddy/Timeline.d.ts +42 -0
- package/dist/types/seekbuddy/Upload.d.ts +101 -0
- package/dist/types/seekbuddy/date/Calendar.d.ts +94 -0
- package/dist/types/seekbuddy/date/DatePicker.d.ts +29 -0
- package/dist/types/seekbuddy/date/DateRangePicker.d.ts +41 -0
- package/dist/types/seekbuddy/date/TimePicker.d.ts +35 -0
- package/dist/types/seekbuddy/date/date.d.ts +79 -0
- package/dist/types/seekbuddy/date/fields.d.ts +45 -0
- package/dist/types/seekbuddy/index.d.ts +49 -0
- package/dist/types/seekbuddy/qr/QrCode.d.ts +37 -0
- package/dist/types/seekbuddy/qr/qr.d.ts +38 -0
- package/dist/types/theme-bootstrap.d.ts +3 -0
- package/dist/types/theme-core.d.ts +14 -0
- package/dist/types/theme.d.ts +4 -0
- package/dist/types/tooltip-placement.d.ts +34 -0
- package/dist/types/use-clipboard-copy.d.ts +13 -0
- package/dist/types/useAnchoredMaxHeight.d.ts +13 -0
- package/dist/types/useAnchoredPosition.d.ts +35 -0
- package/dist/types/useDismissOnOutsidePointer.d.ts +10 -0
- package/dist/types/useModalLayer.d.ts +26 -0
- package/dist/types/useRowDragPreview.d.ts +19 -0
- package/dist/types/user-text.d.ts +31 -0
- package/package.json +151 -4
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
// src/seekbuddy/Pagination.tsx
|
|
2
|
+
import clsx from "clsx";
|
|
3
|
+
import { useState } from "react";
|
|
4
|
+
import { Button } from "@seekbuddy/dsh-ui";
|
|
5
|
+
import { IconChevronLeftOutlineRegular, IconChevronRightOutlineRegular } from "@seekbuddy/dsh-ui/icons";
|
|
6
|
+
|
|
7
|
+
// .build/css/seekbuddy/Pagination.module.mjs
|
|
8
|
+
var id = "@seekbuddy/dsh-ui/seekbuddy/Pagination.module.css";
|
|
9
|
+
if (typeof document !== "undefined" && !document.querySelector('style[data-dsh-ui-primitives="' + id + '"]')) {
|
|
10
|
+
const element = document.createElement("style");
|
|
11
|
+
element.setAttribute("data-dsh-ui-primitives", id);
|
|
12
|
+
element.textContent = "._74CmUG_nav{flex-wrap:wrap;justify-content:center;align-items:center;gap:4px;display:flex}._74CmUG_total{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xs-13);margin-right:8px}._74CmUG_step{width:28px;min-width:28px;padding:0}._74CmUG_page{min-width:28px;font:var(--dsw-font-xs-13);font-variant-numeric:tabular-nums;padding:0 6px}._74CmUG_current{background:var(--dsw-alias-interactive-bg-active);color:var(--dsw-alias-label-primary);font-weight:600}._74CmUG_jump{color:var(--dsw-alias-label-tertiary);letter-spacing:1px}._74CmUG_arrows,._74CmUG_jump:hover:not(:disabled) ._74CmUG_dots,._74CmUG_jump:focus-visible ._74CmUG_dots{display:none}._74CmUG_jump:hover:not(:disabled) ._74CmUG_arrows,._74CmUG_jump:focus-visible ._74CmUG_arrows{display:inline}._74CmUG_simple{min-width:48px;color:var(--dsw-alias-label-secondary);text-align:center;font:var(--dsw-font-xs-13);font-variant-numeric:tabular-nums}";
|
|
13
|
+
document.head.appendChild(element);
|
|
14
|
+
}
|
|
15
|
+
var Pagination_module_default = { "total": "_74CmUG_total", "simple": "_74CmUG_simple", "nav": "_74CmUG_nav", "arrows": "_74CmUG_arrows", "current": "_74CmUG_current", "step": "_74CmUG_step", "dots": "_74CmUG_dots", "page": "_74CmUG_page", "jump": "_74CmUG_jump" };
|
|
16
|
+
|
|
17
|
+
// src/seekbuddy/Pagination.tsx
|
|
18
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
19
|
+
function pageItems(current, pages, lessItems = false) {
|
|
20
|
+
const window = lessItems ? 3 : 5;
|
|
21
|
+
if (pages <= window + 2) return Array.from({ length: pages }, (_, index) => ({ type: "page", page: index + 1 }));
|
|
22
|
+
const half = Math.floor(window / 2);
|
|
23
|
+
let start = Math.max(2, current - half);
|
|
24
|
+
let end = Math.min(pages - 1, current + half);
|
|
25
|
+
if (current - half < 2) end = Math.min(pages - 1, window);
|
|
26
|
+
if (current + half > pages - 1) start = Math.max(2, pages - window + 1);
|
|
27
|
+
const items = [{ type: "page", page: 1 }];
|
|
28
|
+
if (start > 2) items.push({ type: "jump-previous", page: Math.max(1, current - window) });
|
|
29
|
+
for (let page = start; page <= end; page += 1) items.push({ type: "page", page });
|
|
30
|
+
if (end < pages - 1) items.push({ type: "jump-next", page: Math.min(pages, current + window) });
|
|
31
|
+
items.push({ type: "page", page: pages });
|
|
32
|
+
return items;
|
|
33
|
+
}
|
|
34
|
+
function Pagination({
|
|
35
|
+
current,
|
|
36
|
+
defaultCurrent = 1,
|
|
37
|
+
pageSize,
|
|
38
|
+
defaultPageSize = 10,
|
|
39
|
+
total,
|
|
40
|
+
onChange,
|
|
41
|
+
showTotal,
|
|
42
|
+
hideOnSinglePage = true,
|
|
43
|
+
simple = false,
|
|
44
|
+
showLessItems = false,
|
|
45
|
+
disabled = false,
|
|
46
|
+
labels,
|
|
47
|
+
className
|
|
48
|
+
}) {
|
|
49
|
+
const [ownCurrent, setOwnCurrent] = useState(defaultCurrent);
|
|
50
|
+
const size = Math.max(1, pageSize ?? defaultPageSize);
|
|
51
|
+
const pages = Math.max(1, Math.ceil(Math.max(0, total) / size));
|
|
52
|
+
const page = Math.min(pages, Math.max(1, current ?? ownCurrent));
|
|
53
|
+
if (hideOnSinglePage && pages <= 1) return null;
|
|
54
|
+
const go = (target) => {
|
|
55
|
+
const next = Math.min(pages, Math.max(1, target));
|
|
56
|
+
if (next === page) return;
|
|
57
|
+
if (current === void 0) setOwnCurrent(next);
|
|
58
|
+
onChange?.(next, size);
|
|
59
|
+
};
|
|
60
|
+
const from = total === 0 ? 0 : (page - 1) * size + 1;
|
|
61
|
+
const to = Math.min(total, page * size);
|
|
62
|
+
return /* @__PURE__ */ jsxs("nav", { className: clsx(Pagination_module_default.nav, className), "aria-label": labels.navigation, children: [
|
|
63
|
+
showTotal === void 0 ? null : /* @__PURE__ */ jsx("span", { className: Pagination_module_default.total, children: showTotal(total, [from, to]) }),
|
|
64
|
+
/* @__PURE__ */ jsx(
|
|
65
|
+
Button,
|
|
66
|
+
{
|
|
67
|
+
variant: "ghost",
|
|
68
|
+
size: "sm",
|
|
69
|
+
className: Pagination_module_default.step,
|
|
70
|
+
"aria-label": labels.previous,
|
|
71
|
+
disabled: disabled || page <= 1,
|
|
72
|
+
icon: /* @__PURE__ */ jsx(IconChevronLeftOutlineRegular, {}),
|
|
73
|
+
onClick: () => go(page - 1)
|
|
74
|
+
}
|
|
75
|
+
),
|
|
76
|
+
simple ? /* @__PURE__ */ jsxs("span", { className: Pagination_module_default.simple, "aria-current": "page", children: [
|
|
77
|
+
page,
|
|
78
|
+
" / ",
|
|
79
|
+
pages
|
|
80
|
+
] }) : pageItems(page, pages, showLessItems).map(
|
|
81
|
+
(item) => item.type === "page" ? /* @__PURE__ */ jsx(
|
|
82
|
+
Button,
|
|
83
|
+
{
|
|
84
|
+
variant: "ghost",
|
|
85
|
+
size: "sm",
|
|
86
|
+
className: clsx(Pagination_module_default.page, item.page === page && Pagination_module_default.current),
|
|
87
|
+
"aria-label": labels.page(item.page),
|
|
88
|
+
"aria-current": item.page === page ? "page" : void 0,
|
|
89
|
+
disabled,
|
|
90
|
+
onClick: () => go(item.page),
|
|
91
|
+
children: item.page
|
|
92
|
+
},
|
|
93
|
+
item.page
|
|
94
|
+
) : /* @__PURE__ */ jsxs(
|
|
95
|
+
Button,
|
|
96
|
+
{
|
|
97
|
+
variant: "ghost",
|
|
98
|
+
size: "sm",
|
|
99
|
+
className: clsx(Pagination_module_default.page, Pagination_module_default.jump),
|
|
100
|
+
"aria-label": item.type === "jump-previous" ? labels.jumpPrevious : labels.jumpNext,
|
|
101
|
+
disabled,
|
|
102
|
+
onClick: () => go(item.page),
|
|
103
|
+
children: [
|
|
104
|
+
/* @__PURE__ */ jsx("span", { className: Pagination_module_default.dots, "aria-hidden": "true", children: "\u2022\u2022\u2022" }),
|
|
105
|
+
/* @__PURE__ */ jsx("span", { className: Pagination_module_default.arrows, "aria-hidden": "true", children: item.type === "jump-previous" ? "\xAB" : "\xBB" })
|
|
106
|
+
]
|
|
107
|
+
},
|
|
108
|
+
item.type
|
|
109
|
+
)
|
|
110
|
+
),
|
|
111
|
+
/* @__PURE__ */ jsx(
|
|
112
|
+
Button,
|
|
113
|
+
{
|
|
114
|
+
variant: "ghost",
|
|
115
|
+
size: "sm",
|
|
116
|
+
className: Pagination_module_default.step,
|
|
117
|
+
"aria-label": labels.next,
|
|
118
|
+
disabled: disabled || page >= pages,
|
|
119
|
+
icon: /* @__PURE__ */ jsx(IconChevronRightOutlineRegular, {}),
|
|
120
|
+
onClick: () => go(page + 1)
|
|
121
|
+
}
|
|
122
|
+
)
|
|
123
|
+
] });
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
export {
|
|
127
|
+
pageItems,
|
|
128
|
+
Pagination
|
|
129
|
+
};
|