@bysages/solid 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-ClGGptX3.mjs → ai-response-D2uINBIi.mjs} +17 -7
- package/dist/chevron-BHQrYKPM.mjs +8 -0
- package/dist/components/accordion/index.d.mts +22 -2
- package/dist/components/accordion/index.mjs +68 -2
- package/dist/components/affix/index.d.mts +3 -1
- package/dist/components/affix/index.mjs +5 -4
- package/dist/components/ai/index.d.mts +1 -1
- package/dist/components/ai/index.mjs +14 -16
- package/dist/components/ai-action/index.d.mts +3 -1
- package/dist/components/ai-action/index.mjs +3 -2
- package/dist/components/ai-attachments/index.d.mts +8 -4
- package/dist/components/ai-attachments/index.mjs +41 -37
- package/dist/components/ai-message/index.d.mts +3 -1
- package/dist/components/ai-message/index.mjs +3 -2
- package/dist/components/ai-prompt-input/index.d.mts +3 -1
- package/dist/components/ai-prompt-input/index.mjs +59 -46
- package/dist/components/ai-reasoning/index.d.mts +3 -1
- package/dist/components/ai-reasoning/index.mjs +4 -3
- package/dist/components/ai-response/index.d.mts +3 -1
- package/dist/components/ai-response/index.mjs +1 -1
- package/dist/components/ai-source/index.d.mts +6 -2
- package/dist/components/ai-source/index.mjs +5 -4
- package/dist/components/ai-suggestion/index.d.mts +3 -1
- package/dist/components/ai-suggestion/index.mjs +3 -2
- package/dist/components/ai-tool/index.d.mts +3 -1
- package/dist/components/ai-tool/index.mjs +4 -3
- package/dist/components/alert/index.mjs +31 -34
- package/dist/components/angle-slider/index.d.mts +1 -1
- package/dist/components/angle-slider/index.mjs +13 -5
- package/dist/components/aspect-ratio/index.d.mts +3 -1
- package/dist/components/aspect-ratio/index.mjs +3 -2
- package/dist/components/autocomplete/index.d.mts +4 -1
- package/dist/components/autocomplete/index.mjs +15 -2
- package/dist/components/avatar/index.d.mts +1 -1
- package/dist/components/avatar/index.mjs +10 -1
- package/dist/components/avatar-group/index.d.mts +3 -1
- package/dist/components/avatar-group/index.mjs +3 -2
- package/dist/components/back-top/index.d.mts +3 -1
- package/dist/components/back-top/index.mjs +9 -5
- package/dist/components/badge/index.d.mts +3 -1
- package/dist/components/badge/index.mjs +3 -2
- package/dist/components/banner/index.mjs +9 -3
- package/dist/components/block-ui/index.d.mts +3 -1
- package/dist/components/block-ui/index.mjs +3 -2
- package/dist/components/breadcrumb/index.mjs +5 -5
- package/dist/components/button/index.d.mts +3 -1
- package/dist/components/button/index.mjs +3 -2
- package/dist/components/calendar/index.d.mts +3 -1
- package/dist/components/calendar/index.mjs +29 -21
- package/dist/components/carousel/index.d.mts +5 -1
- package/dist/components/carousel/index.mjs +13 -1
- package/dist/components/cascade-select/index.d.mts +3 -1
- package/dist/components/cascade-select/index.mjs +82 -74
- package/dist/components/checkbox/index.d.mts +1 -1
- package/dist/components/checkbox/index.mjs +13 -5
- package/dist/components/checkbox-group/index.d.mts +4 -9
- package/dist/components/checkbox-group/index.mjs +65 -68
- package/dist/components/chip/index.d.mts +3 -1
- package/dist/components/chip/index.mjs +3 -2
- package/dist/components/client-only/index.d.mts +7 -2
- package/dist/components/client-only/index.mjs +8 -1
- package/dist/components/clipboard/index.d.mts +1 -1
- package/dist/components/clipboard/index.mjs +13 -5
- package/dist/components/collapsible/index.d.mts +15 -1
- package/dist/components/collapsible/index.mjs +39 -2
- package/dist/components/color-picker/index.d.mts +13 -2
- package/dist/components/color-picker/index.mjs +95 -8
- package/dist/components/combobox/index.d.mts +24 -1
- package/dist/components/combobox/index.mjs +129 -8
- package/dist/components/command/index.d.mts +4 -1
- package/dist/components/command/index.mjs +24 -4
- package/dist/components/comment/index.d.mts +3 -1
- package/dist/components/comment/index.mjs +3 -2
- package/dist/components/config-provider/index.d.mts +7 -2
- package/dist/components/config-provider/index.mjs +6 -3
- package/dist/components/container/index.d.mts +3 -1
- package/dist/components/container/index.mjs +3 -2
- package/dist/components/data-view/index.d.mts +3 -1
- package/dist/components/data-view/index.mjs +13 -8
- package/dist/components/date-input/index.d.mts +1 -1
- package/dist/components/date-input/index.mjs +13 -5
- package/dist/components/date-picker/index.d.mts +1 -1
- package/dist/components/date-picker/index.mjs +13 -5
- package/dist/components/deferred-content/index.d.mts +3 -1
- package/dist/components/deferred-content/index.mjs +3 -2
- package/dist/components/descriptions/index.d.mts +7 -0
- package/dist/components/descriptions/index.mjs +21 -2
- package/dist/components/dialog/index.d.mts +17 -1
- package/dist/components/dialog/index.mjs +84 -2
- package/dist/components/download-trigger/index.d.mts +7 -2
- package/dist/components/download-trigger/index.mjs +8 -1
- package/dist/components/drawer/index.d.mts +17 -1
- package/dist/components/drawer/index.mjs +83 -2
- package/dist/components/dynamic-input/index.d.mts +3 -1
- package/dist/components/dynamic-input/index.mjs +15 -7
- package/dist/components/editable/index.d.mts +1 -1
- package/dist/components/editable/index.mjs +13 -5
- package/dist/components/ellipsis/index.d.mts +3 -1
- package/dist/components/ellipsis/index.mjs +3 -2
- package/dist/components/field/index.d.mts +5 -1
- package/dist/components/field/index.mjs +13 -1
- package/dist/components/fieldset/index.d.mts +5 -1
- package/dist/components/fieldset/index.mjs +13 -1
- package/dist/components/file-upload/index.d.mts +1 -1
- package/dist/components/file-upload/index.mjs +24 -6
- package/dist/components/float-button/index.mjs +3 -1
- package/dist/components/floating-panel/index.d.mts +5 -1
- package/dist/components/floating-panel/index.mjs +13 -1
- package/dist/components/focus-trap/index.d.mts +7 -2
- package/dist/components/focus-trap/index.mjs +8 -1
- package/dist/components/form/index.d.mts +1 -1
- package/dist/components/form/index.mjs +10 -4
- package/dist/components/frame/index.d.mts +6 -1
- package/dist/components/frame/index.mjs +10 -1
- package/dist/components/grid/index.d.mts +3 -1
- package/dist/components/grid/index.mjs +3 -2
- package/dist/components/highlight/index.d.mts +3 -1
- package/dist/components/highlight/index.mjs +2 -1
- package/dist/components/hover-card/index.d.mts +19 -1
- package/dist/components/hover-card/index.mjs +91 -2
- package/dist/components/icon/index.d.mts +8 -7
- package/dist/components/icon/index.mjs +4 -3
- package/dist/components/image/index.d.mts +8 -2
- package/dist/components/image/index.mjs +40 -33
- package/dist/components/image-cropper/index.d.mts +5 -1
- package/dist/components/image-cropper/index.mjs +13 -1
- package/dist/components/image-viewer/index.d.mts +2 -19
- package/dist/components/image-viewer/index.mjs +3 -151
- 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 +5 -1
- package/dist/components/json-tree-view/index.mjs +22 -2
- package/dist/components/kbd/index.d.mts +3 -1
- package/dist/components/kbd/index.mjs +3 -2
- package/dist/components/layout/index.mjs +8 -4
- package/dist/components/link/index.d.mts +3 -1
- package/dist/components/link/index.mjs +3 -2
- package/dist/components/list/index.d.mts +2 -1
- package/dist/components/list/index.mjs +35 -26
- package/dist/components/listbox/index.d.mts +1 -1
- package/dist/components/listbox/index.mjs +13 -5
- package/dist/components/marquee/index.d.mts +5 -1
- package/dist/components/marquee/index.mjs +13 -1
- package/dist/components/masonry/index.d.mts +3 -1
- package/dist/components/masonry/index.mjs +3 -2
- 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 +2 -2
- package/dist/components/menu/index.d.mts +21 -1
- package/dist/components/menu/index.mjs +62 -5
- package/dist/components/menubar/index.d.mts +3 -1
- package/dist/components/menubar/index.mjs +31 -9
- package/dist/components/navigation-menu/index.d.mts +5 -1
- package/dist/components/navigation-menu/index.mjs +13 -1
- package/dist/components/number-input/index.d.mts +1 -1
- package/dist/components/number-input/index.mjs +13 -5
- package/dist/components/order-list/index.d.mts +3 -1
- package/dist/components/order-list/index.mjs +79 -67
- package/dist/components/pagination/index.d.mts +1 -1
- package/dist/components/pagination/index.mjs +13 -5
- package/dist/components/password-input/index.d.mts +1 -1
- package/dist/components/password-input/index.mjs +13 -5
- package/dist/components/pin-input/index.d.mts +1 -1
- package/dist/components/pin-input/index.mjs +13 -5
- package/dist/components/popconfirm/index.d.mts +3 -1
- package/dist/components/popconfirm/index.mjs +16 -8
- package/dist/components/popover/index.d.mts +19 -1
- package/dist/components/popover/index.mjs +91 -2
- package/dist/components/presence/index.d.mts +10 -2
- package/dist/components/presence/index.mjs +9 -1
- package/dist/components/progress/index.d.mts +1 -1
- package/dist/components/progress/index.mjs +13 -5
- package/dist/components/progress-group/index.d.mts +3 -1
- package/dist/components/progress-group/index.mjs +4 -3
- package/dist/components/qr-code/index.d.mts +5 -1
- package/dist/components/qr-code/index.mjs +13 -1
- package/dist/components/radio-group/index.d.mts +1 -1
- package/dist/components/radio-group/index.mjs +13 -5
- package/dist/components/rating-group/index.d.mts +2 -2
- package/dist/components/rating-group/index.mjs +13 -5
- package/dist/components/result/index.d.mts +1 -1
- package/dist/components/result/index.mjs +5 -3
- package/dist/components/scroll-area/index.d.mts +5 -1
- package/dist/components/scroll-area/index.mjs +13 -1
- package/dist/components/segment-group/index.d.mts +1 -1
- package/dist/components/segment-group/index.mjs +11 -6
- package/dist/components/select/index.d.mts +2 -2
- package/dist/components/select/index.mjs +1 -1
- package/dist/components/separator/index.d.mts +3 -1
- package/dist/components/separator/index.mjs +3 -2
- package/dist/components/signature-pad/index.d.mts +5 -1
- package/dist/components/signature-pad/index.mjs +13 -1
- package/dist/components/skeleton/index.d.mts +3 -1
- package/dist/components/skeleton/index.mjs +3 -2
- package/dist/components/slider/index.d.mts +1 -1
- package/dist/components/slider/index.mjs +13 -5
- package/dist/components/spinner/index.d.mts +3 -1
- package/dist/components/spinner/index.mjs +6 -3
- package/dist/components/split-button/index.d.mts +3 -1
- package/dist/components/split-button/index.mjs +19 -4
- package/dist/components/splitter/index.d.mts +5 -1
- package/dist/components/splitter/index.mjs +13 -1
- package/dist/components/spotlight/index.d.mts +3 -1
- package/dist/components/spotlight/index.mjs +3 -2
- package/dist/components/stack/index.d.mts +3 -1
- package/dist/components/stack/index.mjs +6 -5
- package/dist/components/steps/index.d.mts +25 -3
- package/dist/components/steps/index.mjs +73 -8
- package/dist/components/swap/index.d.mts +5 -1
- package/dist/components/swap/index.mjs +13 -1
- package/dist/components/switch/index.d.mts +1 -1
- package/dist/components/switch/index.mjs +13 -5
- package/dist/components/table/index.d.mts +3 -1
- package/dist/components/table/index.mjs +194 -164
- package/dist/components/tabs/index.d.mts +20 -2
- package/dist/components/tabs/index.mjs +59 -3
- package/dist/components/tags-input/index.d.mts +1 -1
- package/dist/components/tags-input/index.mjs +13 -5
- package/dist/components/terminal/index.d.mts +3 -1
- package/dist/components/terminal/index.mjs +6 -3
- package/dist/components/textarea/index.d.mts +3 -1
- package/dist/components/textarea/index.mjs +3 -2
- package/dist/components/timer/index.d.mts +5 -1
- package/dist/components/timer/index.mjs +13 -1
- package/dist/components/toast/index.d.mts +8 -2
- package/dist/components/toast/index.mjs +14 -2
- package/dist/components/toc/index.d.mts +5 -1
- package/dist/components/toc/index.mjs +1 -9
- package/dist/components/toggle/index.d.mts +5 -1
- package/dist/components/toggle/index.mjs +13 -1
- package/dist/components/toggle-group/index.d.mts +1 -1
- package/dist/components/toggle-group/index.mjs +13 -5
- package/dist/components/toolbar/index.d.mts +3 -1
- package/dist/components/toolbar/index.mjs +3 -2
- package/dist/components/tooltip/index.d.mts +16 -1
- package/dist/components/tooltip/index.mjs +55 -2
- package/dist/components/tour/index.d.mts +16 -3
- package/dist/components/tour/index.mjs +74 -9
- package/dist/components/transfer/index.d.mts +3 -1
- package/dist/components/transfer/index.mjs +68 -54
- package/dist/components/tree-select/index.d.mts +3 -1
- package/dist/components/tree-select/index.mjs +45 -35
- package/dist/components/tree-view/index.d.mts +1 -1
- package/dist/components/tree-view/index.mjs +26 -5
- package/dist/components/user/index.d.mts +3 -1
- package/dist/components/user/index.mjs +8 -2
- package/dist/components/virtual-list/index.d.mts +3 -1
- package/dist/components/virtual-list/index.mjs +14 -9
- package/dist/components/watermark/index.d.mts +3 -1
- package/dist/components/watermark/index.mjs +4 -3
- package/dist/element-dGIhOTJ6.mjs +16 -0
- package/dist/family-Cmd8HEyK.mjs +11 -0
- package/dist/icon-DTqmJCd5.mjs +48 -0
- package/dist/id-2ygNzPHF.mjs +12 -0
- package/dist/image-viewer-B9A5lXsk.mjs +228 -0
- package/dist/{index-B1xiJ5ki.d.mts → index-B1-quIrl.d.mts} +6 -2
- package/dist/{index-DDX7x8aT.d.mts → index-DEArHiFI.d.mts} +16 -7
- package/dist/index-DhripUtf.d.mts +39 -0
- package/dist/{index-YPUiqD3n.d.mts → index-ID48LCMU.d.mts} +28 -2
- package/dist/{index-IfofF-SW.d.mts → index-nFXK_8hJ.d.mts} +53 -23
- package/dist/index-wW28BYf1.d.mts +124 -0
- package/dist/index.d.mts +22 -21
- package/dist/index.mjs +14 -13
- package/dist/{input-DoFQ7RXh.mjs → input-CPAJdwDb.mjs} +3 -2
- package/dist/media-player-BC8D_d29.mjs +796 -0
- package/dist/{mentions-f5Js_2W7.mjs → mentions-CeG5u8Qm.mjs} +67 -51
- package/dist/select-7YjMSBGx.mjs +292 -0
- package/dist/toc-DYKaKQ_X.mjs +31 -0
- package/dist/use-component-messages-C4SCVYjD.mjs +17 -0
- package/package.json +3 -3
- package/dist/chevron-D5RzcayK.mjs +0 -9
- package/dist/select-CHaXbzLX.mjs +0 -115
|
@@ -1,13 +1,78 @@
|
|
|
1
|
+
import { t as defineFamily } from "../../family-Cmd8HEyK.mjs";
|
|
2
|
+
import { t as useElementId } from "../../id-2ygNzPHF.mjs";
|
|
3
|
+
import { Button } from "../button/index.mjs";
|
|
1
4
|
import { injectComponentStyle } from "@bysages/core";
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
5
|
+
import { createComponent, memo } from "@solidjs/web";
|
|
6
|
+
import { Show, mergeProps as mergeProps$1 } from "solid-js";
|
|
7
|
+
import { Tour as Tour$1, useTour as useTour$1 } from "@ark-ui/solid/tour";
|
|
8
|
+
//#region src/components/tour/index.tsx
|
|
9
|
+
function TourFacade(props) {
|
|
10
|
+
injectComponentStyle("tour");
|
|
11
|
+
return createComponent(Tour$1.Root, {
|
|
12
|
+
get tour() {
|
|
13
|
+
return props.tour;
|
|
14
|
+
},
|
|
15
|
+
get children() {
|
|
16
|
+
return [
|
|
17
|
+
createComponent(Button, {
|
|
18
|
+
size: "sm",
|
|
19
|
+
onClick: () => props.tour().start(),
|
|
20
|
+
get children() {
|
|
21
|
+
return props.trigger ?? "Start tour";
|
|
22
|
+
}
|
|
23
|
+
}),
|
|
24
|
+
memo(() => {
|
|
25
|
+
return props.children;
|
|
26
|
+
}),
|
|
27
|
+
createComponent(Tour$1.Backdrop, {}),
|
|
28
|
+
createComponent(Tour$1.Spotlight, {}),
|
|
29
|
+
createComponent(Tour$1.Positioner, { get children() {
|
|
30
|
+
return createComponent(Tour$1.Content, { get children() {
|
|
31
|
+
return createComponent(Show, {
|
|
32
|
+
get when() {
|
|
33
|
+
return props.content;
|
|
34
|
+
},
|
|
35
|
+
get fallback() {
|
|
36
|
+
return createComponent(TourCardBody, {});
|
|
37
|
+
},
|
|
38
|
+
get children() {
|
|
39
|
+
return props.content;
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
} });
|
|
43
|
+
} })
|
|
44
|
+
];
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
function TourCardBody() {
|
|
49
|
+
return [
|
|
50
|
+
createComponent(Tour$1.ProgressText, {}),
|
|
51
|
+
createComponent(Tour$1.Title, {}),
|
|
52
|
+
createComponent(Tour$1.Description, {}),
|
|
53
|
+
createComponent(Tour$1.Control, { get children() {
|
|
54
|
+
return createComponent(Tour$1.Actions, { children: (actions) => memo(() => {
|
|
55
|
+
return actions().map((action) => createComponent(Tour$1.ActionTrigger, {
|
|
56
|
+
action,
|
|
57
|
+
get children() {
|
|
58
|
+
return action.label;
|
|
59
|
+
}
|
|
60
|
+
}));
|
|
61
|
+
}) });
|
|
62
|
+
} })
|
|
63
|
+
];
|
|
64
|
+
}
|
|
65
|
+
const Tour = defineFamily(TourFacade, {
|
|
66
|
+
...Tour$1,
|
|
67
|
+
Root: Tour$1.Root
|
|
68
|
+
});
|
|
69
|
+
/** Tour machines are created by useTour, so the stable id belongs there. */
|
|
70
|
+
function useTour(props = {}) {
|
|
71
|
+
const id = useElementId("tour", () => props.id);
|
|
72
|
+
return useTour$1(mergeProps$1(props, { get id() {
|
|
73
|
+
return id();
|
|
74
|
+
} }));
|
|
75
|
+
}
|
|
11
76
|
injectComponentStyle("tour");
|
|
12
77
|
//#endregion
|
|
13
78
|
export { Tour, useTour };
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Checkbox } from "../checkbox/index.mjs";
|
|
1
2
|
import { JSX } from "solid-js";
|
|
2
3
|
//#region src/components/transfer/index.d.ts
|
|
3
4
|
export interface TransferItem {
|
|
@@ -20,5 +21,6 @@ export interface TransferProps extends JSX.HTMLAttributes<HTMLDivElement> {
|
|
|
20
21
|
* `data` stays on the left. `searchable` adds a filter line to each
|
|
21
22
|
* panel.
|
|
22
23
|
*/
|
|
23
|
-
|
|
24
|
+
declare function TransferImpl(props: TransferProps): JSX.Element;
|
|
25
|
+
export declare const Transfer: typeof TransferImpl & typeof Checkbox;
|
|
24
26
|
//#endregion
|
|
@@ -1,24 +1,24 @@
|
|
|
1
|
+
import { t as defineFamily } from "../../family-Cmd8HEyK.mjs";
|
|
2
|
+
import { r as iconNode } from "../../icon-DTqmJCd5.mjs";
|
|
3
|
+
import { t as useElementId } from "../../id-2ygNzPHF.mjs";
|
|
1
4
|
import { Button } from "../button/index.mjs";
|
|
2
|
-
import { t as
|
|
5
|
+
import { n as useComponentMessages, t as formatComponentMessage } from "../../use-component-messages-C4SCVYjD.mjs";
|
|
6
|
+
import { t as Input } from "../../input-CPAJdwDb.mjs";
|
|
7
|
+
import { Checkbox as Checkbox$1 } from "../checkbox/index.mjs";
|
|
3
8
|
import { injectComponentStyle } from "@bysages/core";
|
|
4
9
|
import { createComponent, insert, setAttribute, spread, template } from "@solidjs/web";
|
|
5
10
|
import { For, Show, createSignal, splitProps } from "solid-js";
|
|
6
11
|
import { Checkbox } from "@ark-ui/solid/checkbox";
|
|
7
12
|
//#region src/components/transfer/index.tsx
|
|
8
|
-
var _tmpl$ = /* @__PURE__ */ template(`<
|
|
9
|
-
var _tmpl$2 = /* @__PURE__ */ template(`<
|
|
10
|
-
var _tmpl$3 = /* @__PURE__ */ template(`<
|
|
11
|
-
var _tmpl$4 = /* @__PURE__ */ template(`<div
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
function checkGlyph() {
|
|
15
|
-
return _tmpl$();
|
|
13
|
+
var _tmpl$ = /* @__PURE__ */ template(`<div data-scope=transfer data-part=search>`);
|
|
14
|
+
var _tmpl$2 = /* @__PURE__ */ template(`<div data-scope=transfer data-part=panel><div data-scope=transfer data-part=head><span data-scope=transfer data-part=title></span><span data-scope=transfer data-part=count></span></div><div data-scope=transfer data-part=list>`);
|
|
15
|
+
var _tmpl$3 = /* @__PURE__ */ template(`<p data-scope=transfer data-part=empty>Nothing here`);
|
|
16
|
+
var _tmpl$4 = /* @__PURE__ */ template(`<div><div data-scope=transfer data-part=operations><!><!></div><!>`);
|
|
17
|
+
function checkIcon() {
|
|
18
|
+
return iconNode("check");
|
|
16
19
|
}
|
|
17
|
-
function
|
|
18
|
-
|
|
19
|
-
var _el$3 = _el$2.firstChild;
|
|
20
|
-
setAttribute(_el$3, "d", direction === "right" ? "M5 12h14m-6-6 6 6-6 6" : "M19 12H5m6-6-6 6 6 6");
|
|
21
|
-
return _el$2;
|
|
20
|
+
function arrowIcon(direction) {
|
|
21
|
+
return direction === "right" ? iconNode("arrow-right") : iconNode("arrow-left");
|
|
22
22
|
}
|
|
23
23
|
/**
|
|
24
24
|
* Two ledgers and a crossing: items sit in the source column until the
|
|
@@ -27,7 +27,8 @@ function arrowGlyph(direction) {
|
|
|
27
27
|
* `data` stays on the left. `searchable` adds a filter line to each
|
|
28
28
|
* panel.
|
|
29
29
|
*/
|
|
30
|
-
function
|
|
30
|
+
function TransferImpl(props) {
|
|
31
|
+
const messages = useComponentMessages();
|
|
31
32
|
injectComponentStyle("transfer");
|
|
32
33
|
injectComponentStyle("checkbox");
|
|
33
34
|
const [own, rest] = splitProps(props, [
|
|
@@ -38,6 +39,7 @@ function Transfer(props) {
|
|
|
38
39
|
"disabled",
|
|
39
40
|
"onValueChange"
|
|
40
41
|
]);
|
|
42
|
+
const id = useElementId("transfer");
|
|
41
43
|
const [checkedSource, setCheckedSource] = createSignal(/* @__PURE__ */ new Set());
|
|
42
44
|
const [checkedTarget, setCheckedTarget] = createSignal(/* @__PURE__ */ new Set());
|
|
43
45
|
const [sourceQuery, setSourceQuery] = createSignal("");
|
|
@@ -60,45 +62,52 @@ function Transfer(props) {
|
|
|
60
62
|
own.onValueChange?.(next);
|
|
61
63
|
}
|
|
62
64
|
function panel(side, title, query, setQuery, checked, setChecked, items) {
|
|
63
|
-
var _el$
|
|
64
|
-
var _el$
|
|
65
|
-
var _el$
|
|
66
|
-
var _el$
|
|
67
|
-
var _el$
|
|
68
|
-
setAttribute(_el
|
|
69
|
-
insert(_el$
|
|
70
|
-
insert(_el$
|
|
65
|
+
var _el$ = _tmpl$2();
|
|
66
|
+
var _el$2 = _el$.firstChild;
|
|
67
|
+
var _el$3 = _el$2.firstChild;
|
|
68
|
+
var _el$4 = _el$3.nextSibling;
|
|
69
|
+
var _el$6 = _el$2.nextSibling;
|
|
70
|
+
setAttribute(_el$, "data-side", side);
|
|
71
|
+
insert(_el$3, title);
|
|
72
|
+
insert(_el$4, () => {
|
|
71
73
|
return String(items.length);
|
|
72
74
|
});
|
|
73
|
-
insert(_el
|
|
75
|
+
insert(_el$, createComponent(Show, {
|
|
74
76
|
get when() {
|
|
75
77
|
return own.searchable;
|
|
76
78
|
},
|
|
77
79
|
get children() {
|
|
78
|
-
var _el$
|
|
79
|
-
insert(_el$
|
|
80
|
+
var _el$5 = _tmpl$();
|
|
81
|
+
insert(_el$5, createComponent(Input, {
|
|
80
82
|
size: "sm",
|
|
81
83
|
get value() {
|
|
82
84
|
return query();
|
|
83
85
|
},
|
|
84
86
|
onValueChange: setQuery,
|
|
85
|
-
placeholder
|
|
86
|
-
|
|
87
|
+
get placeholder() {
|
|
88
|
+
return formatComponentMessage(messages().transfer.filter, { name: title });
|
|
89
|
+
},
|
|
90
|
+
get "aria-label"() {
|
|
91
|
+
return formatComponentMessage(messages().transfer.filter, { name: title });
|
|
92
|
+
}
|
|
87
93
|
}));
|
|
88
|
-
return _el$
|
|
94
|
+
return _el$5;
|
|
89
95
|
}
|
|
90
|
-
}), _el$
|
|
91
|
-
insert(_el$
|
|
96
|
+
}), _el$6);
|
|
97
|
+
insert(_el$6, createComponent(Show, {
|
|
92
98
|
get when() {
|
|
93
99
|
return items.length > 0;
|
|
94
100
|
},
|
|
95
101
|
get fallback() {
|
|
96
|
-
return _tmpl$
|
|
102
|
+
return _tmpl$3();
|
|
97
103
|
},
|
|
98
104
|
get children() {
|
|
99
105
|
return createComponent(For, {
|
|
100
106
|
each: items,
|
|
101
|
-
children: (item) => createComponent(Checkbox.Root, {
|
|
107
|
+
children: (item, index) => createComponent(Checkbox.Root, {
|
|
108
|
+
get id() {
|
|
109
|
+
return `${id()}-${index()}`;
|
|
110
|
+
},
|
|
102
111
|
get checked() {
|
|
103
112
|
return checked().has(item.value);
|
|
104
113
|
},
|
|
@@ -110,7 +119,7 @@ function Transfer(props) {
|
|
|
110
119
|
return [
|
|
111
120
|
createComponent(Checkbox.Control, { get children() {
|
|
112
121
|
return createComponent(Checkbox.Indicator, { get children() {
|
|
113
|
-
return
|
|
122
|
+
return checkIcon();
|
|
114
123
|
} });
|
|
115
124
|
} }),
|
|
116
125
|
createComponent(Checkbox.Label, {
|
|
@@ -126,50 +135,55 @@ function Transfer(props) {
|
|
|
126
135
|
});
|
|
127
136
|
}
|
|
128
137
|
}));
|
|
129
|
-
return _el
|
|
138
|
+
return _el$;
|
|
130
139
|
}
|
|
131
|
-
var _el$
|
|
132
|
-
var _el$
|
|
133
|
-
var _el$
|
|
134
|
-
var _el$
|
|
135
|
-
var _el$
|
|
136
|
-
spread(_el$
|
|
140
|
+
var _el$8 = _tmpl$4();
|
|
141
|
+
var _el$9 = _el$8.firstChild;
|
|
142
|
+
var _el$10 = _el$9.firstChild;
|
|
143
|
+
var _el$11 = _el$10.nextSibling;
|
|
144
|
+
var _el$12 = _el$9.nextSibling;
|
|
145
|
+
spread(_el$8, [rest, {
|
|
137
146
|
"data-scope": "transfer",
|
|
138
147
|
"data-part": "root"
|
|
139
148
|
}], true);
|
|
140
|
-
insert(_el$
|
|
149
|
+
insert(_el$8, () => {
|
|
141
150
|
return panel("source", own.titles?.[0] ?? "Source", sourceQuery, setSourceQuery, checkedSource, setCheckedSource, panelItems(own.data, false, sourceQuery()));
|
|
142
|
-
}, _el$
|
|
143
|
-
insert(_el$
|
|
151
|
+
}, _el$9);
|
|
152
|
+
insert(_el$9, createComponent(Button, {
|
|
144
153
|
variant: "outline",
|
|
145
154
|
size: "sm",
|
|
146
155
|
square: true,
|
|
147
156
|
get disabled() {
|
|
148
157
|
return checkedSource().size === 0 || own.disabled;
|
|
149
158
|
},
|
|
150
|
-
"aria-label"
|
|
159
|
+
get "aria-label"() {
|
|
160
|
+
return messages().transfer.moveRight;
|
|
161
|
+
},
|
|
151
162
|
onClick: () => move(true),
|
|
152
163
|
get children() {
|
|
153
|
-
return
|
|
164
|
+
return arrowIcon("right");
|
|
154
165
|
}
|
|
155
|
-
}), _el$
|
|
156
|
-
insert(_el$
|
|
166
|
+
}), _el$10);
|
|
167
|
+
insert(_el$9, createComponent(Button, {
|
|
157
168
|
variant: "outline",
|
|
158
169
|
size: "sm",
|
|
159
170
|
square: true,
|
|
160
171
|
get disabled() {
|
|
161
172
|
return checkedTarget().size === 0 || own.disabled;
|
|
162
173
|
},
|
|
163
|
-
"aria-label"
|
|
174
|
+
get "aria-label"() {
|
|
175
|
+
return messages().transfer.moveLeft;
|
|
176
|
+
},
|
|
164
177
|
onClick: () => move(false),
|
|
165
178
|
get children() {
|
|
166
|
-
return
|
|
179
|
+
return arrowIcon("left");
|
|
167
180
|
}
|
|
168
|
-
}), _el$
|
|
169
|
-
insert(_el$
|
|
181
|
+
}), _el$11);
|
|
182
|
+
insert(_el$8, () => {
|
|
170
183
|
return panel("target", own.titles?.[1] ?? "Target", targetQuery, setTargetQuery, checkedTarget, setCheckedTarget, panelItems(own.data, true, targetQuery()));
|
|
171
|
-
}, _el$
|
|
172
|
-
return _el$
|
|
184
|
+
}, _el$12);
|
|
185
|
+
return _el$8;
|
|
173
186
|
}
|
|
187
|
+
const Transfer = defineFamily(TransferImpl, Checkbox$1);
|
|
174
188
|
//#endregion
|
|
175
189
|
export { Transfer };
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Popover } from "../popover/index.mjs";
|
|
1
2
|
import { JSX } from "solid-js";
|
|
2
3
|
//#region src/components/tree-select/index.d.ts
|
|
3
4
|
export interface TreeSelectNode {
|
|
@@ -24,5 +25,6 @@ export interface TreeSelectProps extends JSX.HTMLAttributes<HTMLDivElement> {
|
|
|
24
25
|
* `value`. `filterable` puts a filter line at the top of the vessel;
|
|
25
26
|
* matches keep their ancestors and the branches fan open.
|
|
26
27
|
*/
|
|
27
|
-
|
|
28
|
+
declare function TreeSelectImpl(props: TreeSelectProps): JSX.Element;
|
|
29
|
+
export declare const TreeSelect: typeof TreeSelectImpl & typeof Popover;
|
|
28
30
|
//#endregion
|
|
@@ -1,4 +1,9 @@
|
|
|
1
|
-
import { t as
|
|
1
|
+
import { t as defineFamily } from "../../family-Cmd8HEyK.mjs";
|
|
2
|
+
import { r as iconNode } from "../../icon-DTqmJCd5.mjs";
|
|
3
|
+
import { t as useElementId } from "../../id-2ygNzPHF.mjs";
|
|
4
|
+
import { n as useComponentMessages } from "../../use-component-messages-C4SCVYjD.mjs";
|
|
5
|
+
import { t as Input } from "../../input-CPAJdwDb.mjs";
|
|
6
|
+
import { Popover as Popover$1 } from "../popover/index.mjs";
|
|
2
7
|
import { injectComponentStyle } from "@bysages/core";
|
|
3
8
|
import { createComponent, insert, memo, mergeProps, spread, template } from "@solidjs/web";
|
|
4
9
|
import { For, Show, createMemo, createSignal, splitProps } from "solid-js";
|
|
@@ -7,14 +12,12 @@ import { useFilter } from "@ark-ui/solid/locale";
|
|
|
7
12
|
import { Popover } from "@ark-ui/solid/popover";
|
|
8
13
|
import { TreeView, createTreeCollection } from "@ark-ui/solid/tree-view";
|
|
9
14
|
//#region src/components/tree-select/index.tsx
|
|
10
|
-
var _tmpl$ = /* @__PURE__ */ template(`<
|
|
11
|
-
var _tmpl$2 = /* @__PURE__ */ template(`<
|
|
12
|
-
var _tmpl$3 = /* @__PURE__ */ template(`<
|
|
13
|
-
var _tmpl$4 = /* @__PURE__ */ template(`<
|
|
14
|
-
var _tmpl$5 = /* @__PURE__ */ template(`<button><span data-part=chevron aria-hidden=true>`);
|
|
15
|
-
var _tmpl$6 = /* @__PURE__ */ template(`<p data-scope=tree-select data-part=empty>Nothing matches`);
|
|
15
|
+
var _tmpl$ = /* @__PURE__ */ template(`<div data-scope=tree-select data-part=search>`);
|
|
16
|
+
var _tmpl$2 = /* @__PURE__ */ template(`<div data-scope=tree-select data-part=body>`);
|
|
17
|
+
var _tmpl$3 = /* @__PURE__ */ template(`<button><span data-part=chevron aria-hidden=true>`);
|
|
18
|
+
var _tmpl$4 = /* @__PURE__ */ template(`<p data-scope=tree-select data-part=empty>Nothing matches`);
|
|
16
19
|
function chevron() {
|
|
17
|
-
return
|
|
20
|
+
return iconNode("chevron-right");
|
|
18
21
|
}
|
|
19
22
|
/**
|
|
20
23
|
* A tree behind a field: the control reads like an input, the vessel
|
|
@@ -23,9 +26,11 @@ function chevron() {
|
|
|
23
26
|
* `value`. `filterable` puts a filter line at the top of the vessel;
|
|
24
27
|
* matches keep their ancestors and the branches fan open.
|
|
25
28
|
*/
|
|
26
|
-
function
|
|
29
|
+
function TreeSelectImpl(props) {
|
|
30
|
+
const messages = useComponentMessages();
|
|
27
31
|
injectComponentStyle("tree-select");
|
|
28
32
|
injectComponentStyle("tree-view");
|
|
33
|
+
const id = useElementId("tree-select", () => rest.id);
|
|
29
34
|
const [own, rest] = splitProps(props, [
|
|
30
35
|
"value",
|
|
31
36
|
"data",
|
|
@@ -95,17 +100,11 @@ function TreeSelect(props) {
|
|
|
95
100
|
return rowProps.node.children;
|
|
96
101
|
},
|
|
97
102
|
get fallback() {
|
|
98
|
-
return createComponent(TreeView.Item, {
|
|
99
|
-
|
|
100
|
-
spread(_el$2, [propsFn, { style: {
|
|
101
|
-
display: "flex",
|
|
102
|
-
"inline-size": "100%"
|
|
103
|
-
} }], true);
|
|
104
|
-
insert(_el$2, createComponent(TreeView.ItemText, { get children() {
|
|
103
|
+
return createComponent(TreeView.Item, { get children() {
|
|
104
|
+
return createComponent(TreeView.ItemText, { get children() {
|
|
105
105
|
return rowProps.node.label;
|
|
106
|
-
} })
|
|
107
|
-
|
|
108
|
-
})() });
|
|
106
|
+
} });
|
|
107
|
+
} });
|
|
109
108
|
},
|
|
110
109
|
get children() {
|
|
111
110
|
return createComponent(TreeView.Branch, { get children() {
|
|
@@ -135,6 +134,9 @@ function TreeSelect(props) {
|
|
|
135
134
|
});
|
|
136
135
|
}
|
|
137
136
|
return createComponent(Popover.Root, mergeProps(rest, {
|
|
137
|
+
get id() {
|
|
138
|
+
return id();
|
|
139
|
+
},
|
|
138
140
|
get open() {
|
|
139
141
|
return open();
|
|
140
142
|
},
|
|
@@ -148,9 +150,9 @@ function TreeSelect(props) {
|
|
|
148
150
|
},
|
|
149
151
|
get children() {
|
|
150
152
|
return [createComponent(Popover.Trigger, { asChild: (propsFn) => (() => {
|
|
151
|
-
var _el$
|
|
152
|
-
var _el$
|
|
153
|
-
spread(_el$
|
|
153
|
+
var _el$3 = _tmpl$3();
|
|
154
|
+
var _el$4 = _el$3.firstChild;
|
|
155
|
+
spread(_el$3, [propsFn, {
|
|
154
156
|
type: "button",
|
|
155
157
|
"data-scope": "tree-select",
|
|
156
158
|
"data-part": "control",
|
|
@@ -167,11 +169,11 @@ function TreeSelect(props) {
|
|
|
167
169
|
return own.disabled;
|
|
168
170
|
}
|
|
169
171
|
}], true);
|
|
170
|
-
insert(_el$
|
|
172
|
+
insert(_el$3, () => {
|
|
171
173
|
return label() ?? own.placeholder ?? "Select…";
|
|
172
|
-
}, _el$
|
|
173
|
-
insert(_el$
|
|
174
|
-
return _el$
|
|
174
|
+
}, _el$4);
|
|
175
|
+
insert(_el$4, chevron);
|
|
176
|
+
return _el$3;
|
|
175
177
|
})() }), createComponent(Portal, { get children() {
|
|
176
178
|
return createComponent(Popover.Positioner, { get children() {
|
|
177
179
|
return createComponent(Popover.Content, {
|
|
@@ -186,29 +188,36 @@ function TreeSelect(props) {
|
|
|
186
188
|
return own.filterable;
|
|
187
189
|
},
|
|
188
190
|
get children() {
|
|
189
|
-
var _el$
|
|
190
|
-
insert(_el
|
|
191
|
+
var _el$ = _tmpl$();
|
|
192
|
+
insert(_el$, createComponent(Input, {
|
|
191
193
|
size: "sm",
|
|
192
194
|
get value() {
|
|
193
195
|
return query();
|
|
194
196
|
},
|
|
195
197
|
onValueChange: setQuery,
|
|
196
|
-
placeholder
|
|
197
|
-
|
|
198
|
+
get placeholder() {
|
|
199
|
+
return messages().select.filter;
|
|
200
|
+
},
|
|
201
|
+
get "aria-label"() {
|
|
202
|
+
return messages().select.filter;
|
|
203
|
+
}
|
|
198
204
|
}));
|
|
199
|
-
return _el
|
|
205
|
+
return _el$;
|
|
200
206
|
}
|
|
201
207
|
}), (() => {
|
|
202
|
-
var _el$
|
|
203
|
-
insert(_el$
|
|
208
|
+
var _el$2 = _tmpl$2();
|
|
209
|
+
insert(_el$2, createComponent(Show, {
|
|
204
210
|
get when() {
|
|
205
211
|
return (visibleCollection().rootNode.children ?? []).length > 0;
|
|
206
212
|
},
|
|
207
213
|
get fallback() {
|
|
208
|
-
return _tmpl$
|
|
214
|
+
return _tmpl$4();
|
|
209
215
|
},
|
|
210
216
|
get children() {
|
|
211
217
|
return createComponent(TreeView.Root, mergeProps({
|
|
218
|
+
get id() {
|
|
219
|
+
return `${id()}-tree`;
|
|
220
|
+
},
|
|
212
221
|
get collection() {
|
|
213
222
|
return visibleCollection();
|
|
214
223
|
},
|
|
@@ -240,7 +249,7 @@ function TreeSelect(props) {
|
|
|
240
249
|
}));
|
|
241
250
|
}
|
|
242
251
|
}));
|
|
243
|
-
return _el$
|
|
252
|
+
return _el$2;
|
|
244
253
|
})()];
|
|
245
254
|
}
|
|
246
255
|
});
|
|
@@ -249,5 +258,6 @@ function TreeSelect(props) {
|
|
|
249
258
|
}
|
|
250
259
|
}));
|
|
251
260
|
}
|
|
261
|
+
const TreeSelect = defineFamily(TreeSelectImpl, Popover$1);
|
|
252
262
|
//#endregion
|
|
253
263
|
export { TreeSelect };
|
|
@@ -12,7 +12,7 @@ type TreeViewOwnProps = {
|
|
|
12
12
|
size?: "sm" | "md" | "lg";
|
|
13
13
|
};
|
|
14
14
|
declare function TreeViewRoot<T extends TreeNode>(props: TreeViewRootProps<T> & TreeViewOwnProps): import("solid-js").JSX.Element;
|
|
15
|
-
export declare const TreeView: Omit<typeof TreeView$1, "Root"> & {
|
|
15
|
+
export declare const TreeView: typeof TreeViewRoot & Omit<typeof TreeView$1, "Root"> & {
|
|
16
16
|
Root: typeof TreeViewRoot;
|
|
17
17
|
};
|
|
18
18
|
//#endregion
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import { t as defineFamily } from "../../family-Cmd8HEyK.mjs";
|
|
2
|
+
import { r as iconNode } from "../../icon-DTqmJCd5.mjs";
|
|
3
|
+
import { t as useElementId } from "../../id-2ygNzPHF.mjs";
|
|
1
4
|
import { injectComponentStyle } from "@bysages/core";
|
|
2
5
|
import { createComponent, mergeProps } from "@solidjs/web";
|
|
3
6
|
import { splitProps } from "solid-js";
|
|
@@ -6,14 +9,32 @@ import { TreeView as TreeView$1 } from "@ark-ui/solid/tree-view";
|
|
|
6
9
|
const ArkRoot = TreeView$1.Root;
|
|
7
10
|
function TreeViewRoot(props) {
|
|
8
11
|
const [own, rest] = splitProps(props, ["size"]);
|
|
9
|
-
|
|
10
|
-
|
|
12
|
+
const id = useElementId("tree-view", () => rest.id);
|
|
13
|
+
return createComponent(ArkRoot, mergeProps(rest, {
|
|
14
|
+
get id() {
|
|
15
|
+
return id();
|
|
16
|
+
},
|
|
17
|
+
get "data-size"() {
|
|
18
|
+
return own.size ?? "md";
|
|
19
|
+
}
|
|
20
|
+
}));
|
|
21
|
+
}
|
|
22
|
+
/** The node checkbox rides inside the branch control; the branch
|
|
23
|
+
* itself answers the keyboard, so the checkbox stays visual only. */
|
|
24
|
+
function TreeViewNodeCheckbox(props) {
|
|
25
|
+
return createComponent(TreeView$1.NodeCheckbox, mergeProps(props, { "aria-hidden": "true" }));
|
|
26
|
+
}
|
|
27
|
+
function TreeViewBranchIndicator(props) {
|
|
28
|
+
return createComponent(TreeView$1.BranchIndicator, mergeProps(props, { get children() {
|
|
29
|
+
return props.children ?? iconNode("chevron-right");
|
|
11
30
|
} }));
|
|
12
31
|
}
|
|
13
|
-
const TreeView = {
|
|
32
|
+
const TreeView = defineFamily(TreeViewRoot, {
|
|
14
33
|
...TreeView$1,
|
|
15
|
-
Root: TreeViewRoot
|
|
16
|
-
|
|
34
|
+
Root: TreeViewRoot,
|
|
35
|
+
NodeCheckbox: TreeViewNodeCheckbox,
|
|
36
|
+
BranchIndicator: TreeViewBranchIndicator
|
|
37
|
+
});
|
|
17
38
|
injectComponentStyle("tree-view");
|
|
18
39
|
//#endregion
|
|
19
40
|
export { TreeView };
|
|
@@ -15,5 +15,7 @@ export interface UserProps extends JSX.HTMLAttributes<HTMLDivElement> {
|
|
|
15
15
|
* quiet echo beneath. The mark is the Avatar itself — one component
|
|
16
16
|
* renders it here, so every size and shape the Avatar knows the user
|
|
17
17
|
* inherits; this row only lays the words out beside it. */
|
|
18
|
-
export declare
|
|
18
|
+
export declare const User: ((props: UserProps) => JSX.Element) & {
|
|
19
|
+
Root: (props: UserProps) => JSX.Element;
|
|
20
|
+
};
|
|
19
21
|
//#endregion
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { n as withSelfRoot } from "../../family-Cmd8HEyK.mjs";
|
|
2
|
+
import { t as useElementId } from "../../id-2ygNzPHF.mjs";
|
|
1
3
|
import { injectComponentStyle } from "@bysages/core";
|
|
2
4
|
import { createComponent, insert, memo, spread, template } from "@solidjs/web";
|
|
3
5
|
import { splitProps } from "solid-js";
|
|
@@ -9,8 +11,9 @@ var _tmpl$2 = /* @__PURE__ */ template(`<span data-scope=user data-part=descript
|
|
|
9
11
|
* quiet echo beneath. The mark is the Avatar itself — one component
|
|
10
12
|
* renders it here, so every size and shape the Avatar knows the user
|
|
11
13
|
* inherits; this row only lays the words out beside it. */
|
|
12
|
-
function User(props) {
|
|
14
|
+
const User = withSelfRoot(function User(props) {
|
|
13
15
|
injectComponentStyle("user");
|
|
16
|
+
const id = useElementId("user-avatar");
|
|
14
17
|
const [own, rest] = splitProps(props, [
|
|
15
18
|
"name",
|
|
16
19
|
"description",
|
|
@@ -30,6 +33,9 @@ function User(props) {
|
|
|
30
33
|
"data-part": "root"
|
|
31
34
|
}], true);
|
|
32
35
|
insert(_el$, createComponent(Avatar.Root, {
|
|
36
|
+
get id() {
|
|
37
|
+
return id();
|
|
38
|
+
},
|
|
33
39
|
get "data-size"() {
|
|
34
40
|
return own.size;
|
|
35
41
|
},
|
|
@@ -63,6 +69,6 @@ function User(props) {
|
|
|
63
69
|
return own.children;
|
|
64
70
|
}, _el$5);
|
|
65
71
|
return _el$;
|
|
66
|
-
}
|
|
72
|
+
});
|
|
67
73
|
//#endregion
|
|
68
74
|
export { User };
|
|
@@ -13,5 +13,7 @@ export interface VirtualListProps extends JSX.HTMLAttributes<HTMLDivElement> {
|
|
|
13
13
|
* scroll length by a spacer sized from the row height, the rows
|
|
14
14
|
* themselves are positioned against it — a ten-thousand-row list
|
|
15
15
|
* costs the DOM a window, not the ledger. */
|
|
16
|
-
export declare
|
|
16
|
+
export declare const VirtualList: ((props: VirtualListProps) => JSX.Element) & {
|
|
17
|
+
Root: (props: VirtualListProps) => JSX.Element;
|
|
18
|
+
};
|
|
17
19
|
//#endregion
|
|
@@ -1,15 +1,19 @@
|
|
|
1
|
+
import { n as withSelfRoot } from "../../family-Cmd8HEyK.mjs";
|
|
1
2
|
import { injectComponentStyle } from "@bysages/core";
|
|
2
3
|
import { createComponent, effect, insert, ref, setStyleProperty, spread, template } from "@solidjs/web";
|
|
3
4
|
import { For, createSignal, splitProps } from "solid-js";
|
|
4
5
|
import { createVirtualizer } from "@tanstack/solid-virtual";
|
|
5
6
|
//#region src/components/virtual-list/index.tsx
|
|
6
|
-
var _tmpl$ = /* @__PURE__ */ template(`<div><div data-scope=virtual-list data-part=inner
|
|
7
|
-
var _tmpl$2 = /* @__PURE__ */ template(`<div data-scope=virtual-list data-part=row
|
|
7
|
+
var _tmpl$ = /* @__PURE__ */ template(`<div><div data-scope=virtual-list data-part=inner>`);
|
|
8
|
+
var _tmpl$2 = /* @__PURE__ */ template(`<div data-scope=virtual-list data-part=row>`);
|
|
9
|
+
function toCssLength(length) {
|
|
10
|
+
return typeof length === "number" ? `${length}px` : length;
|
|
11
|
+
}
|
|
8
12
|
/** A ledger that only mounts the rows on stage: the viewport keeps its
|
|
9
13
|
* scroll length by a spacer sized from the row height, the rows
|
|
10
14
|
* themselves are positioned against it — a ten-thousand-row list
|
|
11
15
|
* costs the DOM a window, not the ledger. */
|
|
12
|
-
function VirtualList(props) {
|
|
16
|
+
const VirtualList = withSelfRoot(function VirtualList(props) {
|
|
13
17
|
injectComponentStyle("virtual-list");
|
|
14
18
|
const [own, rest] = splitProps(props, [
|
|
15
19
|
"items",
|
|
@@ -32,12 +36,13 @@ function VirtualList(props) {
|
|
|
32
36
|
return setViewport;
|
|
33
37
|
}, _el$);
|
|
34
38
|
spread(_el$, [rest, {
|
|
39
|
+
tabindex: 0,
|
|
35
40
|
"data-scope": "virtual-list",
|
|
36
41
|
"data-part": "root",
|
|
37
42
|
get style() {
|
|
38
43
|
return {
|
|
39
44
|
...typeof restStyle === "object" && restStyle ? restStyle : {},
|
|
40
|
-
"
|
|
45
|
+
"--bs-virtual-list-height": toCssLength(own.height ?? 320)
|
|
41
46
|
};
|
|
42
47
|
}
|
|
43
48
|
}], true);
|
|
@@ -52,20 +57,20 @@ function VirtualList(props) {
|
|
|
52
57
|
});
|
|
53
58
|
effect(() => {
|
|
54
59
|
return {
|
|
55
|
-
e:
|
|
60
|
+
e: `${row.start}px`,
|
|
56
61
|
t: `${row.size}px`
|
|
57
62
|
};
|
|
58
63
|
}, ({ e, t }, _p$) => {
|
|
59
|
-
e !== _p$?.e && setStyleProperty(_el$3, "
|
|
60
|
-
t !== _p$?.t && setStyleProperty(_el$3, "
|
|
64
|
+
e !== _p$?.e && setStyleProperty(_el$3, "--bs-virtual-list-row-start", e);
|
|
65
|
+
t !== _p$?.t && setStyleProperty(_el$3, "--bs-virtual-list-row-size", t);
|
|
61
66
|
});
|
|
62
67
|
return _el$3;
|
|
63
68
|
})()
|
|
64
69
|
}));
|
|
65
70
|
effect(() => `${virtualizer.getTotalSize()}px`, (_v$) => {
|
|
66
|
-
setStyleProperty(_el$2, "
|
|
71
|
+
setStyleProperty(_el$2, "--bs-virtual-list-total", _v$);
|
|
67
72
|
});
|
|
68
73
|
return _el$;
|
|
69
|
-
}
|
|
74
|
+
});
|
|
70
75
|
//#endregion
|
|
71
76
|
export { VirtualList };
|