@bysages/react 0.3.0 → 0.4.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/{ai-response-jZy-0Tvv.mjs → ai-response-B4DX7nmJ.mjs} +10 -4
- package/dist/chevron-a2nIZKN4.mjs +6 -0
- package/dist/components/accordion/index.d.mts +22 -4
- package/dist/components/accordion/index.mjs +31 -1
- package/dist/components/affix/index.d.mts +4 -1
- package/dist/components/affix/index.mjs +5 -3
- package/dist/components/ai/index.d.mts +2 -2
- package/dist/components/ai/index.mjs +29 -12
- package/dist/components/ai-action/index.d.mts +4 -1
- package/dist/components/ai-action/index.mjs +3 -1
- package/dist/components/ai-attachments/index.d.mts +10 -4
- package/dist/components/ai-attachments/index.mjs +19 -45
- package/dist/components/ai-message/index.d.mts +4 -1
- package/dist/components/ai-message/index.mjs +3 -1
- package/dist/components/ai-prompt-input/index.d.mts +5 -2
- package/dist/components/ai-prompt-input/index.mjs +17 -17
- package/dist/components/ai-reasoning/index.d.mts +4 -1
- package/dist/components/ai-reasoning/index.mjs +4 -2
- package/dist/components/ai-response/index.d.mts +8 -3
- package/dist/components/ai-response/index.mjs +1 -1
- package/dist/components/ai-source/index.d.mts +8 -2
- package/dist/components/ai-source/index.mjs +5 -2
- package/dist/components/ai-suggestion/index.d.mts +4 -1
- package/dist/components/ai-suggestion/index.mjs +3 -1
- package/dist/components/ai-tool/index.d.mts +4 -1
- package/dist/components/ai-tool/index.mjs +4 -2
- package/dist/components/alert/index.d.mts +2 -0
- package/dist/components/alert/index.mjs +11 -18
- package/dist/components/angle-slider/index.d.mts +19 -2
- package/dist/components/angle-slider/index.mjs +31 -8
- package/dist/components/aspect-ratio/index.d.mts +4 -1
- package/dist/components/aspect-ratio/index.mjs +3 -1
- package/dist/components/autocomplete/index.d.mts +3 -1
- package/dist/components/autocomplete/index.mjs +9 -2
- package/dist/components/avatar/index.d.mts +2 -2
- package/dist/components/avatar/index.mjs +9 -2
- package/dist/components/avatar-group/index.d.mts +4 -1
- package/dist/components/avatar-group/index.mjs +3 -1
- package/dist/components/back-top/index.d.mts +7 -1
- package/dist/components/back-top/index.mjs +12 -17
- package/dist/components/badge/index.d.mts +4 -1
- package/dist/components/badge/index.mjs +3 -1
- package/dist/components/banner/index.mjs +13 -18
- package/dist/components/block-ui/index.d.mts +4 -1
- package/dist/components/block-ui/index.mjs +3 -1
- package/dist/components/breadcrumb/index.d.mts +3 -8
- package/dist/components/breadcrumb/index.mjs +11 -1
- package/dist/components/button/index.d.mts +4 -1
- package/dist/components/button/index.mjs +3 -1
- package/dist/components/calendar/index.d.mts +3 -1
- package/dist/components/calendar/index.mjs +9 -10
- package/dist/components/carousel/index.d.mts +21 -1
- package/dist/components/carousel/index.mjs +43 -2
- package/dist/components/cascade-select/index.d.mts +6 -1
- package/dist/components/cascade-select/index.mjs +18 -37
- package/dist/components/checkbox/index.d.mts +20 -2
- package/dist/components/checkbox/index.mjs +28 -8
- package/dist/components/checkbox-group/index.d.mts +8 -6
- package/dist/components/checkbox-group/index.mjs +44 -48
- package/dist/components/chip/index.d.mts +4 -1
- package/dist/components/chip/index.mjs +3 -1
- package/dist/components/client-only/index.d.mts +7 -2
- package/dist/components/client-only/index.mjs +5 -1
- package/dist/components/clipboard/index.d.mts +17 -4
- package/dist/components/clipboard/index.mjs +33 -5
- package/dist/components/collapsible/index.d.mts +16 -4
- package/dist/components/collapsible/index.mjs +25 -1
- package/dist/components/color-picker/index.d.mts +20 -4
- package/dist/components/color-picker/index.mjs +56 -14
- package/dist/components/combobox/index.d.mts +27 -1
- package/dist/components/combobox/index.mjs +62 -5
- package/dist/components/command/index.d.mts +4 -1
- package/dist/components/command/index.mjs +15 -3
- package/dist/components/comment/index.d.mts +4 -1
- package/dist/components/comment/index.mjs +3 -1
- package/dist/components/config-provider/index.d.mts +8 -2
- package/dist/components/config-provider/index.mjs +5 -2
- package/dist/components/container/index.d.mts +4 -1
- package/dist/components/container/index.mjs +3 -1
- package/dist/components/data-view/index.d.mts +4 -1
- package/dist/components/data-view/index.mjs +7 -3
- package/dist/components/date-input/index.d.mts +19 -4
- package/dist/components/date-input/index.mjs +33 -9
- package/dist/components/date-picker/index.d.mts +21 -4
- package/dist/components/date-picker/index.mjs +58 -11
- package/dist/components/deferred-content/index.d.mts +4 -1
- package/dist/components/deferred-content/index.mjs +3 -1
- package/dist/components/descriptions/index.d.mts +10 -2
- package/dist/components/descriptions/index.mjs +13 -8
- package/dist/components/dialog/index.d.mts +18 -5
- package/dist/components/dialog/index.mjs +43 -1
- package/dist/components/download-trigger/index.d.mts +7 -2
- package/dist/components/download-trigger/index.mjs +5 -1
- package/dist/components/drawer/index.d.mts +18 -6
- package/dist/components/drawer/index.mjs +40 -1
- package/dist/components/dynamic-input/index.d.mts +4 -1
- package/dist/components/dynamic-input/index.mjs +13 -19
- package/dist/components/editable/index.d.mts +28 -7
- package/dist/components/editable/index.mjs +43 -4
- package/dist/components/ellipsis/index.d.mts +4 -1
- package/dist/components/ellipsis/index.mjs +3 -1
- package/dist/components/field/index.d.mts +30 -5
- package/dist/components/field/index.mjs +36 -3
- package/dist/components/fieldset/index.d.mts +19 -4
- package/dist/components/fieldset/index.mjs +28 -3
- package/dist/components/file-upload/index.d.mts +36 -9
- package/dist/components/file-upload/index.mjs +66 -11
- package/dist/components/float-button/index.mjs +3 -1
- package/dist/components/floating-panel/index.d.mts +18 -6
- package/dist/components/floating-panel/index.mjs +55 -1
- package/dist/components/focus-trap/index.d.mts +7 -2
- package/dist/components/focus-trap/index.mjs +5 -1
- package/dist/components/form/index.d.mts +1 -1
- package/dist/components/form/index.mjs +5 -2
- package/dist/components/frame/index.d.mts +4 -8
- package/dist/components/frame/index.mjs +13 -1
- package/dist/components/grid/index.d.mts +4 -1
- package/dist/components/grid/index.mjs +3 -1
- package/dist/components/highlight/index.d.mts +3 -5
- package/dist/components/highlight/index.mjs +6 -1
- package/dist/components/hover-card/index.d.mts +20 -4
- package/dist/components/hover-card/index.mjs +32 -1
- package/dist/components/icon/index.d.mts +10 -8
- package/dist/components/icon/index.mjs +5 -3
- package/dist/components/image/index.d.mts +11 -2
- package/dist/components/image/index.mjs +16 -29
- package/dist/components/image-cropper/index.d.mts +13 -2
- package/dist/components/image-cropper/index.mjs +34 -2
- package/dist/components/image-viewer/index.d.mts +2 -18
- package/dist/components/image-viewer/index.mjs +3 -109
- package/dist/components/input/index.d.mts +3 -1
- package/dist/components/input/index.mjs +1 -1
- package/dist/components/json-tree-view/index.d.mts +20 -4
- package/dist/components/json-tree-view/index.mjs +38 -4
- package/dist/components/kbd/index.d.mts +4 -1
- package/dist/components/kbd/index.mjs +3 -1
- package/dist/components/layout/index.d.mts +25 -7
- package/dist/components/layout/index.mjs +159 -63
- package/dist/components/link/index.d.mts +4 -1
- package/dist/components/link/index.mjs +3 -1
- package/dist/components/list/index.d.mts +5 -4
- package/dist/components/list/index.mjs +10 -1
- package/dist/components/listbox/index.d.mts +22 -1
- package/dist/components/listbox/index.mjs +36 -4
- package/dist/components/marquee/index.d.mts +18 -1
- package/dist/components/marquee/index.mjs +34 -2
- package/dist/components/masonry/index.d.mts +4 -1
- package/dist/components/masonry/index.mjs +3 -1
- package/dist/components/media-player/index.d.mts +2 -0
- package/dist/components/media-player/index.mjs +2 -0
- package/dist/components/mentions/index.d.mts +1 -1
- package/dist/components/mentions/index.mjs +1 -1
- package/dist/components/menu/index.d.mts +29 -11
- package/dist/components/menu/index.mjs +34 -12
- package/dist/components/menubar/index.d.mts +3 -1
- package/dist/components/menubar/index.mjs +7 -1
- package/dist/components/navigation-menu/index.d.mts +25 -1
- package/dist/components/navigation-menu/index.mjs +36 -1
- package/dist/components/number-input/index.d.mts +28 -6
- package/dist/components/number-input/index.mjs +33 -8
- package/dist/components/order-list/index.d.mts +4 -1
- package/dist/components/order-list/index.mjs +34 -33
- package/dist/components/pagination/index.d.mts +23 -3
- package/dist/components/pagination/index.mjs +57 -12
- package/dist/components/password-input/index.d.mts +24 -6
- package/dist/components/password-input/index.mjs +31 -8
- package/dist/components/pin-input/index.d.mts +23 -5
- package/dist/components/pin-input/index.mjs +29 -7
- package/dist/components/popconfirm/index.d.mts +9 -5
- package/dist/components/popconfirm/index.mjs +23 -18
- package/dist/components/popover/index.d.mts +2 -8
- package/dist/components/popover/index.mjs +44 -4
- package/dist/components/presence/index.d.mts +10 -2
- package/dist/components/presence/index.mjs +6 -1
- package/dist/components/progress/index.d.mts +18 -3
- package/dist/components/progress/index.mjs +34 -9
- package/dist/components/progress-group/index.d.mts +4 -1
- package/dist/components/progress-group/index.mjs +4 -2
- package/dist/components/qr-code/index.d.mts +14 -1
- package/dist/components/qr-code/index.mjs +26 -2
- package/dist/components/radio-group/index.d.mts +27 -2
- package/dist/components/radio-group/index.mjs +32 -8
- package/dist/components/rating-group/index.d.mts +20 -3
- package/dist/components/rating-group/index.mjs +26 -8
- package/dist/components/result/index.d.mts +1 -1
- package/dist/components/result/index.mjs +2 -2
- package/dist/components/scroll-area/index.d.mts +14 -1
- package/dist/components/scroll-area/index.mjs +32 -2
- package/dist/components/segment-group/index.d.mts +28 -2
- package/dist/components/segment-group/index.mjs +34 -7
- package/dist/components/select/index.d.mts +2 -2
- package/dist/components/select/index.mjs +1 -1
- package/dist/components/separator/index.d.mts +4 -1
- package/dist/components/separator/index.mjs +3 -1
- package/dist/components/signature-pad/index.d.mts +25 -5
- package/dist/components/signature-pad/index.mjs +37 -3
- package/dist/components/skeleton/index.d.mts +4 -1
- package/dist/components/skeleton/index.mjs +3 -1
- package/dist/components/slider/index.d.mts +21 -2
- package/dist/components/slider/index.mjs +31 -8
- package/dist/components/spinner/index.d.mts +4 -1
- package/dist/components/spinner/index.mjs +6 -2
- package/dist/components/split-button/index.d.mts +3 -1
- package/dist/components/split-button/index.mjs +15 -18
- package/dist/components/splitter/index.d.mts +17 -4
- package/dist/components/splitter/index.mjs +35 -1
- package/dist/components/spotlight/index.d.mts +4 -1
- package/dist/components/spotlight/index.mjs +3 -1
- package/dist/components/stack/index.d.mts +4 -1
- package/dist/components/stack/index.mjs +6 -4
- package/dist/components/steps/index.d.mts +27 -3
- package/dist/components/steps/index.mjs +36 -12
- package/dist/components/swap/index.d.mts +11 -5
- package/dist/components/swap/index.mjs +30 -3
- package/dist/components/switch/index.d.mts +20 -2
- package/dist/components/switch/index.mjs +27 -8
- package/dist/components/table/index.d.mts +4 -1
- package/dist/components/table/index.mjs +44 -70
- package/dist/components/tabs/index.d.mts +24 -2
- package/dist/components/tabs/index.mjs +25 -9
- package/dist/components/tags-input/index.d.mts +33 -8
- package/dist/components/tags-input/index.mjs +41 -9
- package/dist/components/terminal/index.d.mts +4 -1
- package/dist/components/terminal/index.mjs +8 -3
- package/dist/components/textarea/index.d.mts +4 -1
- package/dist/components/textarea/index.mjs +3 -1
- package/dist/components/timer/index.d.mts +18 -1
- package/dist/components/timer/index.mjs +51 -2
- package/dist/components/toast/index.d.mts +3 -6
- package/dist/components/toast/index.mjs +22 -2
- package/dist/components/toc/index.d.mts +24 -4
- package/dist/components/toc/index.mjs +41 -3
- package/dist/components/toggle/index.d.mts +11 -4
- package/dist/components/toggle/index.mjs +21 -1
- package/dist/components/toggle-group/index.d.mts +26 -2
- package/dist/components/toggle-group/index.mjs +31 -6
- package/dist/components/toolbar/index.d.mts +4 -1
- package/dist/components/toolbar/index.mjs +3 -1
- package/dist/components/tooltip/index.d.mts +17 -4
- package/dist/components/tooltip/index.mjs +28 -1
- package/dist/components/tour/index.d.mts +18 -9
- package/dist/components/tour/index.mjs +44 -2
- package/dist/components/transfer/index.d.mts +3 -1
- package/dist/components/transfer/index.mjs +20 -30
- package/dist/components/tree-select/index.d.mts +3 -1
- package/dist/components/tree-select/index.mjs +15 -24
- package/dist/components/tree-view/index.d.mts +30 -1
- package/dist/components/tree-view/index.mjs +69 -6
- package/dist/components/typography/index.d.mts +4 -0
- package/dist/components/typography/index.mjs +1 -0
- package/dist/components/user/index.d.mts +4 -1
- package/dist/components/user/index.mjs +3 -1
- package/dist/components/virtual-list/index.d.mts +4 -1
- package/dist/components/virtual-list/index.mjs +11 -12
- package/dist/components/watermark/index.d.mts +4 -1
- package/dist/components/watermark/index.mjs +4 -2
- package/dist/family-DE_GQeeM.mjs +9 -0
- package/dist/icon-BALgGtNK.mjs +18 -0
- package/dist/id-C37UYLwJ.mjs +13 -0
- package/dist/image-viewer-Cf6thHax.mjs +141 -0
- package/dist/{index-Uefyw7Im.d.mts → index-Bbg4heDO.d.mts} +12 -7
- package/dist/index-BcRdWGY-.d.mts +115 -0
- package/dist/{index-DFN9F5Zt.d.mts → index-D_iKc2Uw.d.mts} +32 -3
- package/dist/{index-CsfxYv6J.d.mts → index-DdNKngUQ.d.mts} +63 -39
- package/dist/index-Dj8S4eyJ.d.mts +41 -0
- package/dist/index-Eu-Bttta.d.mts +24 -0
- package/dist/{index-uPyYiWaL.d.mts → index-PsgGWW3m.d.mts} +8 -2
- package/dist/index.d.mts +36 -35
- package/dist/index.mjs +13 -12
- package/dist/{input-2oezH-dY.mjs → input-C21Zzuy6.mjs} +3 -1
- package/dist/media-player-gQrnxU52.mjs +554 -0
- package/dist/{mentions-DMIBCBOd.mjs → mentions-BuWibdci.mjs} +74 -42
- package/dist/messages-1jJWtaYU.mjs +16 -0
- package/dist/select-ozUFq0zd.mjs +121 -0
- package/package.json +3 -3
- package/dist/chevron-BeHvt46K.mjs +0 -17
- package/dist/select-D1xiT1oJ.mjs +0 -68
|
@@ -1,19 +1,105 @@
|
|
|
1
|
+
import { n as useComponentMessages } from "../../messages-1jJWtaYU.mjs";
|
|
1
2
|
import { injectComponentStyle } from "@bysages/core";
|
|
2
3
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { createContext, useContext, useEffect, useRef, useState } from "react";
|
|
4
|
+
import { createContext, useContext, useEffect, useMemo, useRef, useState } from "react";
|
|
5
|
+
import { Splitter } from "@ark-ui/react/splitter";
|
|
4
6
|
//#region src/components/layout/index.tsx
|
|
5
7
|
const LAYOUT_CONTEXT = createContext(null);
|
|
8
|
+
/** One step of Ark's keyboard resize, converted to a splitter percentage
|
|
9
|
+
* at render time so the public behavior remains a 16px move. */
|
|
10
|
+
const RESIZE_STEP = 16;
|
|
6
11
|
/**
|
|
7
12
|
* The application skeleton: Root, Header, Sider, Content, Footer —
|
|
8
13
|
* the admin arrangement dressed in the paper-and-ink surfaces. The
|
|
9
14
|
* root is a full-height grid; a declared `sider` turns the columns
|
|
10
15
|
* around to meet whichever edge the rail stands on.
|
|
11
16
|
*/
|
|
12
|
-
function Root({ sider, children, ...rest }) {
|
|
17
|
+
function Root({ sider, children, style, ...rest }) {
|
|
18
|
+
const [siderState, setSiderState] = useState(null);
|
|
19
|
+
const [rootWidth, setRootWidth] = useState(0);
|
|
20
|
+
const siderStateRef = useRef(siderState);
|
|
21
|
+
const resizeHandlers = useRef({
|
|
22
|
+
start: () => {},
|
|
23
|
+
resize: () => {},
|
|
24
|
+
end: () => {}
|
|
25
|
+
});
|
|
26
|
+
siderStateRef.current = siderState;
|
|
27
|
+
const splitterRoot = useRef(null);
|
|
28
|
+
const splitterActive = !!sider;
|
|
29
|
+
useEffect(() => {
|
|
30
|
+
const element = splitterActive ? splitterRoot.current : null;
|
|
31
|
+
if (!element || typeof ResizeObserver === "undefined") {
|
|
32
|
+
if (!element) setRootWidth(0);
|
|
33
|
+
else setRootWidth(element.getBoundingClientRect().width);
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
const observer = new ResizeObserver(() => {
|
|
37
|
+
setRootWidth(element.getBoundingClientRect().width);
|
|
38
|
+
});
|
|
39
|
+
observer.observe(element);
|
|
40
|
+
setRootWidth(element.getBoundingClientRect().width);
|
|
41
|
+
return () => observer.disconnect();
|
|
42
|
+
}, [splitterActive]);
|
|
43
|
+
const context = useMemo(() => ({
|
|
44
|
+
siderPlacement: () => sider,
|
|
45
|
+
getSiderState: () => siderStateRef.current,
|
|
46
|
+
setSiderState,
|
|
47
|
+
setResizeHandlers: (handlers) => {
|
|
48
|
+
resizeHandlers.current = handlers;
|
|
49
|
+
},
|
|
50
|
+
resizeStart: () => resizeHandlers.current.start(),
|
|
51
|
+
resize: (width) => resizeHandlers.current.resize(width),
|
|
52
|
+
resizeEnd: () => resizeHandlers.current.end()
|
|
53
|
+
}), [sider]);
|
|
54
|
+
const keyboardResizeBy = rootWidth > 0 ? RESIZE_STEP / rootWidth * 100 : RESIZE_STEP;
|
|
55
|
+
const panels = useMemo(() => {
|
|
56
|
+
if (!siderState) return [];
|
|
57
|
+
const rail = {
|
|
58
|
+
id: "sider",
|
|
59
|
+
minSize: siderState.minWidth,
|
|
60
|
+
maxSize: siderState.maxWidth
|
|
61
|
+
};
|
|
62
|
+
const flow = {
|
|
63
|
+
id: "flow",
|
|
64
|
+
minSize: "0px"
|
|
65
|
+
};
|
|
66
|
+
return sider === "end" ? [flow, rail] : [rail, flow];
|
|
67
|
+
}, [sider, siderState]);
|
|
68
|
+
const size = useMemo(() => sider === "end" ? [void 0, siderState?.width] : [siderState?.width, void 0], [sider, siderState?.width]);
|
|
69
|
+
const siderIndex = sider === "end" ? 1 : 0;
|
|
70
|
+
const callerStyle = style ?? {};
|
|
71
|
+
const gridStyle = {
|
|
72
|
+
...callerStyle,
|
|
73
|
+
display: callerStyle.display ?? "grid",
|
|
74
|
+
width: callerStyle.width ?? "auto",
|
|
75
|
+
height: callerStyle.height ?? "auto",
|
|
76
|
+
overflow: callerStyle.overflow ?? "visible"
|
|
77
|
+
};
|
|
13
78
|
return /* @__PURE__ */ jsx(LAYOUT_CONTEXT.Provider, {
|
|
14
|
-
value:
|
|
15
|
-
children: /* @__PURE__ */ jsx(
|
|
79
|
+
value: context,
|
|
80
|
+
children: splitterActive ? /* @__PURE__ */ jsx(Splitter.Root, {
|
|
81
|
+
ref: splitterRoot,
|
|
82
|
+
asChild: true,
|
|
83
|
+
panels,
|
|
84
|
+
size,
|
|
85
|
+
keyboardResizeBy,
|
|
86
|
+
onResize: (details) => {
|
|
87
|
+
const width = rootWidth * (details.size[siderIndex] ?? 0) / 100;
|
|
88
|
+
if (width > 0) context.resize(width);
|
|
89
|
+
},
|
|
90
|
+
onResizeStart: context.resizeStart,
|
|
91
|
+
onResizeEnd: context.resizeEnd,
|
|
92
|
+
children: /* @__PURE__ */ jsx("div", {
|
|
93
|
+
...rest,
|
|
94
|
+
style: gridStyle,
|
|
95
|
+
"data-scope": "layout",
|
|
96
|
+
"data-part": "root",
|
|
97
|
+
"data-sider": sider,
|
|
98
|
+
children
|
|
99
|
+
})
|
|
100
|
+
}) : /* @__PURE__ */ jsx("div", {
|
|
16
101
|
...rest,
|
|
102
|
+
style: gridStyle,
|
|
17
103
|
"data-scope": "layout",
|
|
18
104
|
"data-part": "root",
|
|
19
105
|
"data-sider": sider,
|
|
@@ -25,26 +111,59 @@ function Root({ sider, children, ...rest }) {
|
|
|
25
111
|
* main content each land on their native element and their grid area. */
|
|
26
112
|
function region(name, tag) {
|
|
27
113
|
const Tag = tag;
|
|
28
|
-
const Component = ({ children, ...rest }) =>
|
|
29
|
-
|
|
30
|
-
"
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
114
|
+
const Component = ({ children, ...rest }) => {
|
|
115
|
+
const layout = useContext(LAYOUT_CONTEXT);
|
|
116
|
+
const splitPanel = name === "Content" && !!layout?.siderPlacement() && !!layout.getSiderState()?.resizable && !layout.getSiderState().collapsed;
|
|
117
|
+
return /* @__PURE__ */ jsx(Tag, {
|
|
118
|
+
...rest,
|
|
119
|
+
"data-scope": "layout",
|
|
120
|
+
"data-part": name.toLowerCase(),
|
|
121
|
+
children: splitPanel ? /* @__PURE__ */ jsx(Splitter.Panel, {
|
|
122
|
+
id: "flow",
|
|
123
|
+
children
|
|
124
|
+
}) : children
|
|
125
|
+
});
|
|
126
|
+
};
|
|
34
127
|
Component.displayName = "Layout" + name;
|
|
35
128
|
return Component;
|
|
36
129
|
}
|
|
37
130
|
const Header = region("Header", "header");
|
|
38
131
|
const Content = region("Content", "main");
|
|
39
132
|
const Footer = region("Footer", "footer");
|
|
40
|
-
/** One step of the arrow-key resize, in px. */
|
|
41
|
-
const RESIZE_STEP = 16;
|
|
42
133
|
function Sider({ collapsed = false, width: widthProp, collapsedWidth = "3.5rem", resizable = false, minWidth = "12rem", maxWidth = "24rem", style, onCollapsedChange, onWidthChange, children, ...rest }) {
|
|
43
134
|
const layout = useContext(LAYOUT_CONTEXT);
|
|
44
|
-
const
|
|
135
|
+
const messages = useComponentMessages();
|
|
45
136
|
const [dragging, setDragging] = useState(false);
|
|
137
|
+
const active = resizable && !collapsed;
|
|
138
|
+
useEffect(() => {
|
|
139
|
+
if (!active) setDragging(false);
|
|
140
|
+
}, [active]);
|
|
46
141
|
const [innerWidth, setInnerWidth] = useState(widthProp ?? "16rem");
|
|
47
142
|
const width = widthProp !== void 0 ? widthProp : innerWidth;
|
|
143
|
+
useEffect(() => {
|
|
144
|
+
layout?.setSiderState((previous) => previous ? {
|
|
145
|
+
...previous,
|
|
146
|
+
resizable,
|
|
147
|
+
collapsed,
|
|
148
|
+
width,
|
|
149
|
+
minWidth,
|
|
150
|
+
maxWidth
|
|
151
|
+
} : {
|
|
152
|
+
resizable,
|
|
153
|
+
collapsed,
|
|
154
|
+
width,
|
|
155
|
+
minWidth,
|
|
156
|
+
maxWidth
|
|
157
|
+
});
|
|
158
|
+
}, [
|
|
159
|
+
layout,
|
|
160
|
+
resizable,
|
|
161
|
+
collapsed,
|
|
162
|
+
width,
|
|
163
|
+
minWidth,
|
|
164
|
+
maxWidth
|
|
165
|
+
]);
|
|
166
|
+
useEffect(() => () => layout?.setSiderState(null), [layout]);
|
|
48
167
|
const prevCollapsed = useRef(collapsed);
|
|
49
168
|
useEffect(() => {
|
|
50
169
|
if (prevCollapsed.current === collapsed) return;
|
|
@@ -58,55 +177,32 @@ function Sider({ collapsed = false, width: widthProp, collapsedWidth = "3.5rem",
|
|
|
58
177
|
setInnerWidth(widthProp);
|
|
59
178
|
onWidthChange?.(widthProp);
|
|
60
179
|
}, [widthProp, onWidthChange]);
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
};
|
|
77
|
-
const
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
const onKeyDown = (event) => {
|
|
87
|
-
if (event.key !== "ArrowLeft" && event.key !== "ArrowRight") return;
|
|
88
|
-
event.preventDefault();
|
|
89
|
-
const widen = (layout?.siderPlacement() ?? "start") === "end" ? event.key === "ArrowLeft" : event.key === "ArrowRight";
|
|
90
|
-
const current = rail.current ? rail.current.getBoundingClientRect().width : 0;
|
|
91
|
-
applyWidth(`${Math.round(current + (widen ? RESIZE_STEP : -16))}px`);
|
|
92
|
-
};
|
|
93
|
-
const handle = resizable && !collapsed ? /* @__PURE__ */ jsx("div", {
|
|
94
|
-
"data-scope": "layout",
|
|
95
|
-
"data-part": "sider-resize",
|
|
96
|
-
"data-dragging": dragging ? "" : void 0,
|
|
97
|
-
role: "separator",
|
|
98
|
-
"aria-orientation": "vertical",
|
|
99
|
-
tabIndex: 0,
|
|
100
|
-
"aria-label": "Resize sidebar",
|
|
101
|
-
"aria-valuenow": Math.round(rail.current ? rail.current.getBoundingClientRect().width : 0),
|
|
102
|
-
onPointerDown,
|
|
103
|
-
onPointerMove,
|
|
104
|
-
onPointerUp,
|
|
105
|
-
onKeyDown
|
|
106
|
-
}) : null;
|
|
107
|
-
return /* @__PURE__ */ jsxs("aside", {
|
|
180
|
+
useEffect(() => {
|
|
181
|
+
layout?.setResizeHandlers({
|
|
182
|
+
start: () => setDragging(true),
|
|
183
|
+
resize: (nextWidth) => {
|
|
184
|
+
const next = `${Math.round(nextWidth)}px`;
|
|
185
|
+
setInnerWidth(next);
|
|
186
|
+
onWidthChange?.(next);
|
|
187
|
+
},
|
|
188
|
+
end: () => setDragging(false)
|
|
189
|
+
});
|
|
190
|
+
return () => layout?.setResizeHandlers({
|
|
191
|
+
start: () => {},
|
|
192
|
+
resize: () => {},
|
|
193
|
+
end: () => {}
|
|
194
|
+
});
|
|
195
|
+
}, [layout, onWidthChange]);
|
|
196
|
+
const contents = typeof children === "function" ? children({ collapsed }) : children;
|
|
197
|
+
const body = active ? /* @__PURE__ */ jsxs(Splitter.Panel, {
|
|
198
|
+
id: "sider",
|
|
199
|
+
children: [contents, /* @__PURE__ */ jsx(Splitter.ResizeTrigger, {
|
|
200
|
+
id: layout?.siderPlacement() === "end" ? "flow:sider" : "sider:flow",
|
|
201
|
+
"aria-label": messages.sidebar.resize
|
|
202
|
+
})]
|
|
203
|
+
}) : contents;
|
|
204
|
+
return /* @__PURE__ */ jsx("aside", {
|
|
108
205
|
...rest,
|
|
109
|
-
ref: rail,
|
|
110
206
|
style: {
|
|
111
207
|
...style,
|
|
112
208
|
"--bs-layout-sider-width": collapsed ? collapsedWidth : width,
|
|
@@ -117,8 +213,8 @@ function Sider({ collapsed = false, width: widthProp, collapsedWidth = "3.5rem",
|
|
|
117
213
|
"data-part": "sider",
|
|
118
214
|
"data-collapsed": collapsed ? "" : void 0,
|
|
119
215
|
"data-dragging": dragging ? "" : void 0,
|
|
120
|
-
"data-resizable":
|
|
121
|
-
children:
|
|
216
|
+
"data-resizable": active ? "" : void 0,
|
|
217
|
+
children: body
|
|
122
218
|
});
|
|
123
219
|
}
|
|
124
220
|
const Layout = Object.assign(Root, {
|
|
@@ -6,5 +6,8 @@ export interface LinkProps extends AnchorHTMLAttributes<HTMLAnchorElement> {
|
|
|
6
6
|
/** A link is ink in the accent's voice: quiet at rest, deepening under
|
|
7
7
|
* the hand, the halo at focus. The underline follows the prose —
|
|
8
8
|
* always, on hover, or never. */
|
|
9
|
-
|
|
9
|
+
declare function LinkImpl({ underline, children, ...rest }: LinkProps): import("react").JSX.Element;
|
|
10
|
+
export declare const Link: typeof LinkImpl & {
|
|
11
|
+
Root: typeof LinkImpl;
|
|
12
|
+
};
|
|
10
13
|
//#endregion
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
+
import { t as withSelfRoot } from "../../family-DE_GQeeM.mjs";
|
|
1
2
|
import { injectComponentStyle } from "@bysages/core";
|
|
2
3
|
import { jsx } from "react/jsx-runtime";
|
|
3
4
|
//#region src/components/link/index.tsx
|
|
4
5
|
/** A link is ink in the accent's voice: quiet at rest, deepening under
|
|
5
6
|
* the hand, the halo at focus. The underline follows the prose —
|
|
6
7
|
* always, on hover, or never. */
|
|
7
|
-
function
|
|
8
|
+
function LinkImpl({ underline = "hover", children, ...rest }) {
|
|
8
9
|
injectComponentStyle("link");
|
|
9
10
|
return /* @__PURE__ */ jsx("a", {
|
|
10
11
|
...rest,
|
|
@@ -14,5 +15,6 @@ function Link({ underline = "hover", children, ...rest }) {
|
|
|
14
15
|
children
|
|
15
16
|
});
|
|
16
17
|
}
|
|
18
|
+
const Link = withSelfRoot(LinkImpl);
|
|
17
19
|
//#endregion
|
|
18
20
|
export { Link };
|
|
@@ -10,6 +10,10 @@ declare function Root({ bordered, hoverable, children, ...rest }: ListRootProps)
|
|
|
10
10
|
declare namespace Root {
|
|
11
11
|
var displayName: string;
|
|
12
12
|
}
|
|
13
|
+
declare function Item({ children, ...attrs }: HTMLAttributes<HTMLElement>): import("react").JSX.Element;
|
|
14
|
+
declare namespace Item {
|
|
15
|
+
var displayName: string;
|
|
16
|
+
}
|
|
13
17
|
/** The row's words: `title` and `description` ride their own slots, the
|
|
14
18
|
* children follow them for anything else. */
|
|
15
19
|
export interface ListContentProps extends Omit<HTMLAttributes<HTMLDivElement>, "title"> {
|
|
@@ -22,10 +26,7 @@ declare namespace Content {
|
|
|
22
26
|
}
|
|
23
27
|
export declare const List: typeof Root & {
|
|
24
28
|
Root: typeof Root;
|
|
25
|
-
Item:
|
|
26
|
-
({ children, ...rest }: HTMLAttributes<HTMLElement>): import("react").JSX.Element;
|
|
27
|
-
displayName: string;
|
|
28
|
-
};
|
|
29
|
+
Item: typeof Item;
|
|
29
30
|
Leading: {
|
|
30
31
|
({ children, ...rest }: HTMLAttributes<HTMLElement>): import("react").JSX.Element;
|
|
31
32
|
displayName: string;
|
|
@@ -30,7 +30,16 @@ function Root({ bordered = false, hoverable = false, children, ...rest }) {
|
|
|
30
30
|
});
|
|
31
31
|
}
|
|
32
32
|
Root.displayName = "ListRoot";
|
|
33
|
-
|
|
33
|
+
function Item({ children, ...attrs }) {
|
|
34
|
+
delete attrs.role;
|
|
35
|
+
return /* @__PURE__ */ jsx("li", {
|
|
36
|
+
...attrs,
|
|
37
|
+
"data-scope": "list",
|
|
38
|
+
"data-part": "item",
|
|
39
|
+
children
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
Item.displayName = "ListItem";
|
|
34
43
|
const Leading = part("Leading", "div");
|
|
35
44
|
const Actions = part("Actions", "div");
|
|
36
45
|
function Content({ title, description, children, ...rest }) {
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { CSSProperties } from "react";
|
|
1
2
|
import { CollectionItem } from "@ark-ui/react/collection";
|
|
2
3
|
import { Listbox as Listbox$1, ListboxRootComponentProps, createListCollection } from "@ark-ui/react/listbox";
|
|
3
4
|
//#region src/components/listbox/index.d.ts
|
|
@@ -11,7 +12,27 @@ type ListboxOwnProps = {
|
|
|
11
12
|
size?: "sm" | "md" | "lg";
|
|
12
13
|
};
|
|
13
14
|
declare function ListboxRoot<T extends CollectionItem>(props: ListboxRootComponentProps<T, ListboxOwnProps>): import("react").JSX.Element;
|
|
14
|
-
|
|
15
|
+
type ListboxOption = {
|
|
16
|
+
label: string;
|
|
17
|
+
value: string;
|
|
18
|
+
};
|
|
19
|
+
type ListboxFacadeValue = string | string[];
|
|
20
|
+
type ListboxFacadeProps = {
|
|
21
|
+
value?: ListboxFacadeValue;
|
|
22
|
+
defaultValue?: ListboxFacadeValue;
|
|
23
|
+
options: ListboxOption[];
|
|
24
|
+
multiple?: boolean;
|
|
25
|
+
disabled?: boolean;
|
|
26
|
+
label?: string;
|
|
27
|
+
size?: "sm" | "md" | "lg";
|
|
28
|
+
className?: string;
|
|
29
|
+
style?: CSSProperties;
|
|
30
|
+
onValueChange?: (value?: ListboxFacadeValue) => void;
|
|
31
|
+
};
|
|
32
|
+
/** The complete listbox behind one model value: options become rows and the
|
|
33
|
+
* label names the quiet register. */
|
|
34
|
+
declare function ListboxFacade(props: ListboxFacadeProps): import("react").JSX.Element;
|
|
35
|
+
export declare const Listbox: typeof ListboxFacade & Omit<typeof Listbox$1, "Root"> & {
|
|
15
36
|
Root: typeof ListboxRoot;
|
|
16
37
|
};
|
|
17
38
|
//#endregion
|
|
@@ -1,18 +1,50 @@
|
|
|
1
|
+
import { t as iconNode } from "../../icon-BALgGtNK.mjs";
|
|
2
|
+
import { t as useElementId } from "../../id-C37UYLwJ.mjs";
|
|
1
3
|
import { injectComponentStyle } from "@bysages/core";
|
|
2
|
-
import { jsx } from "react/jsx-runtime";
|
|
4
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
5
|
import { Listbox as Listbox$1, createListCollection } from "@ark-ui/react/listbox";
|
|
4
6
|
//#region src/components/listbox/index.tsx
|
|
5
7
|
function ListboxRoot(props) {
|
|
8
|
+
injectComponentStyle("listbox");
|
|
9
|
+
const id = useElementId("listbox", props);
|
|
6
10
|
const { size = "md", ...rest } = props;
|
|
7
11
|
return /* @__PURE__ */ jsx(Listbox$1.Root, {
|
|
8
12
|
...rest,
|
|
13
|
+
id,
|
|
9
14
|
"data-size": size
|
|
10
15
|
});
|
|
11
16
|
}
|
|
12
|
-
|
|
17
|
+
function toListboxValue(value) {
|
|
18
|
+
if (value === void 0) return void 0;
|
|
19
|
+
return Array.isArray(value) ? value : [value];
|
|
20
|
+
}
|
|
21
|
+
/** The complete listbox behind one model value: options become rows and the
|
|
22
|
+
* label names the quiet register. */
|
|
23
|
+
function ListboxFacade(props) {
|
|
24
|
+
const { value, defaultValue, options, multiple, disabled, label, size = "md", className, style, onValueChange } = props;
|
|
25
|
+
const collection = createListCollection({ items: options });
|
|
26
|
+
return /* @__PURE__ */ jsxs(ListboxRoot, {
|
|
27
|
+
size,
|
|
28
|
+
collection,
|
|
29
|
+
defaultValue: toListboxValue(defaultValue),
|
|
30
|
+
value: toListboxValue(value),
|
|
31
|
+
disabled,
|
|
32
|
+
selectionMode: multiple ? "multiple" : "single",
|
|
33
|
+
className,
|
|
34
|
+
style,
|
|
35
|
+
onValueChange: (event) => onValueChange?.(multiple ? event.value : event.value.at(0)),
|
|
36
|
+
children: [label ? /* @__PURE__ */ jsx(Listbox$1.Label, { children: label }) : null, /* @__PURE__ */ jsx(Listbox$1.Content, { children: collection.items.map((item) => /* @__PURE__ */ jsxs(Listbox$1.Item, {
|
|
37
|
+
item,
|
|
38
|
+
children: [/* @__PURE__ */ jsx(Listbox$1.ItemText, { children: item.label }), /* @__PURE__ */ jsx(Listbox$1.ItemIndicator, { children: iconNode("check", {
|
|
39
|
+
width: 14,
|
|
40
|
+
height: 14
|
|
41
|
+
}) })]
|
|
42
|
+
}, item.value)) })]
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
const Listbox = Object.assign(ListboxFacade, {
|
|
13
46
|
...Listbox$1,
|
|
14
47
|
Root: ListboxRoot
|
|
15
|
-
};
|
|
16
|
-
injectComponentStyle("listbox");
|
|
48
|
+
});
|
|
17
49
|
//#endregion
|
|
18
50
|
export { Listbox, createListCollection };
|
|
@@ -1,7 +1,24 @@
|
|
|
1
|
+
import { CSSProperties, ComponentProps } from "react";
|
|
1
2
|
import { Marquee as Marquee$1 } from "@ark-ui/react/marquee";
|
|
2
3
|
//#region src/components/marquee/index.d.ts
|
|
3
4
|
/** Ark's Marquee, dressed in the paper-and-ink system: a linear ribbon of
|
|
4
5
|
* seal-cut chips that dissolves into the paper at its edges rather than
|
|
5
6
|
* cutting off. The API is Ark's own — Root, Viewport, Content, Edge, Item. */
|
|
6
|
-
|
|
7
|
+
declare function MarqueeRoot(props: ComponentProps<typeof Marquee$1.Root>): import("react").JSX.Element;
|
|
8
|
+
type MarqueeItem = string | {
|
|
9
|
+
label: string;
|
|
10
|
+
};
|
|
11
|
+
type MarqueeFacadeProps = {
|
|
12
|
+
items: MarqueeItem[];
|
|
13
|
+
spacing?: string;
|
|
14
|
+
speed?: number;
|
|
15
|
+
label?: string;
|
|
16
|
+
className?: string;
|
|
17
|
+
style?: CSSProperties;
|
|
18
|
+
};
|
|
19
|
+
/** The complete ribbon behind a list of short marks. */
|
|
20
|
+
declare function MarqueeFacade(props: MarqueeFacadeProps): import("react").JSX.Element;
|
|
21
|
+
export declare const Marquee: typeof MarqueeFacade & Omit<typeof Marquee$1, "Root"> & {
|
|
22
|
+
Root: typeof MarqueeRoot;
|
|
23
|
+
};
|
|
7
24
|
//#endregion
|
|
@@ -1,10 +1,42 @@
|
|
|
1
|
+
import { t as useElementId } from "../../id-C37UYLwJ.mjs";
|
|
1
2
|
import { injectComponentStyle } from "@bysages/core";
|
|
3
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
4
|
import { Marquee as Marquee$1 } from "@ark-ui/react/marquee";
|
|
3
5
|
//#region src/components/marquee/index.tsx
|
|
4
6
|
/** Ark's Marquee, dressed in the paper-and-ink system: a linear ribbon of
|
|
5
7
|
* seal-cut chips that dissolves into the paper at its edges rather than
|
|
6
8
|
* cutting off. The API is Ark's own — Root, Viewport, Content, Edge, Item. */
|
|
7
|
-
|
|
8
|
-
injectComponentStyle("marquee");
|
|
9
|
+
function MarqueeRoot(props) {
|
|
10
|
+
injectComponentStyle("marquee");
|
|
11
|
+
const id = useElementId("marquee", props);
|
|
12
|
+
return /* @__PURE__ */ jsx(Marquee$1.Root, {
|
|
13
|
+
...props,
|
|
14
|
+
id
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
/** The complete ribbon behind a list of short marks. */
|
|
18
|
+
function MarqueeFacade(props) {
|
|
19
|
+
const { items, spacing, speed, label, className, style } = props;
|
|
20
|
+
const labels = items.map((item) => typeof item === "string" ? item : item.label);
|
|
21
|
+
return /* @__PURE__ */ jsx(MarqueeRoot, {
|
|
22
|
+
"aria-label": label,
|
|
23
|
+
spacing,
|
|
24
|
+
speed,
|
|
25
|
+
className,
|
|
26
|
+
style,
|
|
27
|
+
children: /* @__PURE__ */ jsx(Marquee$1.Viewport, { children: /* @__PURE__ */ jsx(Marquee$1.Content, { children: labels.map((item, index) => /* @__PURE__ */ jsxs(Marquee$1.Item, { children: [/* @__PURE__ */ jsx("svg", {
|
|
28
|
+
width: 16,
|
|
29
|
+
height: 16,
|
|
30
|
+
viewBox: "0 0 24 24",
|
|
31
|
+
fill: "currentColor",
|
|
32
|
+
"aria-hidden": "true",
|
|
33
|
+
children: /* @__PURE__ */ jsx("path", { d: "M12 3 3 9l9 12 9-12-9-6Z" })
|
|
34
|
+
}), /* @__PURE__ */ jsx("span", { children: item })] }, `${item}-${index}`)) }) })
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
const Marquee = Object.assign(MarqueeFacade, {
|
|
38
|
+
...Marquee$1,
|
|
39
|
+
Root: MarqueeRoot
|
|
40
|
+
});
|
|
9
41
|
//#endregion
|
|
10
42
|
export { Marquee };
|
|
@@ -7,5 +7,8 @@ export interface MasonryProps extends HTMLAttributes<HTMLDivElement> {
|
|
|
7
7
|
columns?: number;
|
|
8
8
|
gap?: "none" | "xs" | "sm" | "md" | "lg" | "xl";
|
|
9
9
|
}
|
|
10
|
-
|
|
10
|
+
declare function MasonryImpl({ columns, gap, ...rest }: MasonryProps): import("react").JSX.Element;
|
|
11
|
+
export declare const Masonry: typeof MasonryImpl & {
|
|
12
|
+
Root: typeof MasonryImpl;
|
|
13
|
+
};
|
|
11
14
|
//#endregion
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { t as withSelfRoot } from "../../family-DE_GQeeM.mjs";
|
|
1
2
|
import { injectComponentStyle } from "@bysages/core";
|
|
2
3
|
import { jsx } from "react/jsx-runtime";
|
|
3
4
|
//#region src/components/masonry/index.tsx
|
|
@@ -11,7 +12,7 @@ const gapVars = {
|
|
|
11
12
|
lg: "var(--bs-gap-lg)",
|
|
12
13
|
xl: "var(--bs-gap-xl)"
|
|
13
14
|
};
|
|
14
|
-
function
|
|
15
|
+
function MasonryImpl({ columns = 3, gap = "md", ...rest }) {
|
|
15
16
|
injectComponentStyle("masonry");
|
|
16
17
|
const style = {
|
|
17
18
|
...rest.style,
|
|
@@ -25,5 +26,6 @@ function Masonry({ columns = 3, gap = "md", ...rest }) {
|
|
|
25
26
|
"data-part": "root"
|
|
26
27
|
});
|
|
27
28
|
}
|
|
29
|
+
const Masonry = withSelfRoot(MasonryImpl);
|
|
28
30
|
//#endregion
|
|
29
31
|
export { Masonry };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { a as MediaTextTrackOption, i as MediaSourceOption, n as Video, o as formatMediaTime, r as MediaPlayerProps, t as Audio } from "../../index-BcRdWGY-.mjs";
|
|
2
|
+
export { Audio, type MediaPlayerProps, type MediaSourceOption, type MediaTextTrackOption, Video, formatMediaTime };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as MentionsVesselProps, c as useMentions, i as MentionsVessel, n as Mentions, o as UseMentionsHandlers, r as MentionsProps, s as UseMentionsOptions, t as MentionEntry } from "../../index-
|
|
1
|
+
import { a as MentionsVesselProps, c as useMentions, i as MentionsVessel, n as Mentions, o as UseMentionsHandlers, r as MentionsProps, s as UseMentionsOptions, t as MentionEntry } from "../../index-Bbg4heDO.mjs";
|
|
2
2
|
export { MentionEntry, Mentions, MentionsProps, MentionsVessel, MentionsVesselProps, type UseMentionsHandlers, type UseMentionsOptions, useMentions };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as MentionsVessel, r as useMentions, t as Mentions } from "../../mentions-
|
|
1
|
+
import { n as MentionsVessel, r as useMentions, t as Mentions } from "../../mentions-BuWibdci.mjs";
|
|
2
2
|
export { Mentions, MentionsVessel, useMentions };
|
|
@@ -1,20 +1,38 @@
|
|
|
1
|
+
import { ComponentProps } from "react";
|
|
1
2
|
import { Menu as Menu$1 } from "@ark-ui/react/menu";
|
|
2
3
|
//#region src/components/menu/index.d.ts
|
|
3
|
-
type MenuRootProps =
|
|
4
|
+
type MenuRootProps = ComponentProps<typeof Menu$1.Root> & {
|
|
4
5
|
/** One rung of the control-height ladder for the vessel's rows. */
|
|
5
6
|
size?: "sm" | "md" | "lg";
|
|
6
7
|
};
|
|
7
|
-
declare function MenuRoot(
|
|
8
|
-
declare function MenuContent(props:
|
|
9
|
-
/**
|
|
10
|
-
*
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
8
|
+
declare function MenuRoot(props: MenuRootProps): import("react").JSX.Element;
|
|
9
|
+
declare function MenuContent(props: ComponentProps<typeof Menu$1.Content>): import("react").JSX.Element;
|
|
10
|
+
/** One plain row in the callable menu; richer checkboxes, radios, and
|
|
11
|
+
* nested menus stay on the anatomy. */
|
|
12
|
+
export interface MenuItemOption {
|
|
13
|
+
label: string;
|
|
14
|
+
value: string;
|
|
15
|
+
disabled?: boolean;
|
|
16
|
+
}
|
|
17
|
+
type MenuPlacement = "top" | "top-start" | "top-end" | "bottom" | "bottom-start" | "bottom-end" | "left" | "left-start" | "left-end" | "right" | "right-start" | "right-end";
|
|
18
|
+
export interface MenuFacadeProps {
|
|
19
|
+
open?: boolean;
|
|
20
|
+
defaultOpen?: boolean;
|
|
21
|
+
trigger: string;
|
|
22
|
+
items: MenuItemOption[];
|
|
23
|
+
disabled?: boolean;
|
|
24
|
+
placement?: MenuPlacement;
|
|
25
|
+
size?: "sm" | "md" | "lg";
|
|
26
|
+
onSelect?: (value: string) => void;
|
|
27
|
+
onOpenChange?: (open: boolean) => void;
|
|
28
|
+
}
|
|
29
|
+
declare function MenuFacade({ open, defaultOpen, trigger, items, disabled, placement, size, onSelect, onOpenChange }: MenuFacadeProps): import("react").JSX.Element;
|
|
30
|
+
declare namespace MenuFacade {
|
|
31
|
+
var displayName: string;
|
|
32
|
+
}
|
|
33
|
+
type MenuParts = Omit<typeof Menu$1, "Root" | "Content"> & {
|
|
17
34
|
Root: typeof MenuRoot;
|
|
18
35
|
Content: typeof MenuContent;
|
|
19
36
|
};
|
|
37
|
+
export declare const Menu: typeof MenuFacade & MenuParts;
|
|
20
38
|
//#endregion
|