@bysages/solid 0.2.2 → 0.3.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/README.md +16 -2
- package/dist/ai-response-ClGGptX3.mjs +139 -0
- package/dist/chevron-D5RzcayK.mjs +9 -0
- package/dist/components/accordion/index.d.mts +7 -0
- package/dist/components/accordion/index.mjs +10 -0
- package/dist/components/affix/index.d.mts +20 -0
- package/dist/components/affix/index.mjs +33 -0
- package/dist/components/ai/index.d.mts +2 -0
- package/dist/components/ai/index.mjs +71 -0
- package/dist/components/ai-action/index.d.mts +13 -0
- package/dist/components/ai-action/index.mjs +27 -0
- package/dist/components/ai-attachments/index.d.mts +20 -0
- package/dist/components/ai-attachments/index.mjs +110 -0
- package/dist/components/ai-message/index.d.mts +13 -0
- package/dist/components/ai-message/index.mjs +22 -0
- package/dist/components/ai-prompt-input/index.d.mts +45 -0
- package/dist/components/ai-prompt-input/index.mjs +153 -0
- package/dist/components/ai-reasoning/index.d.mts +13 -0
- package/dist/components/ai-reasoning/index.mjs +38 -0
- package/dist/components/ai-response/index.d.mts +20 -0
- package/dist/components/ai-response/index.mjs +2 -0
- package/dist/components/ai-source/index.d.mts +13 -0
- package/dist/components/ai-source/index.mjs +36 -0
- package/dist/components/ai-suggestion/index.d.mts +13 -0
- package/dist/components/ai-suggestion/index.mjs +22 -0
- package/dist/components/ai-tool/index.d.mts +23 -0
- package/dist/components/ai-tool/index.mjs +90 -0
- package/dist/components/alert/index.d.mts +22 -0
- package/dist/components/alert/index.mjs +87 -0
- package/dist/components/angle-slider/index.d.mts +15 -0
- package/dist/components/angle-slider/index.mjs +18 -0
- package/dist/components/aspect-ratio/index.d.mts +10 -0
- package/dist/components/aspect-ratio/index.mjs +23 -0
- package/dist/components/autocomplete/index.d.mts +21 -0
- package/dist/components/autocomplete/index.mjs +76 -0
- package/dist/components/avatar/index.d.mts +23 -0
- package/dist/components/avatar/index.mjs +20 -0
- package/dist/components/avatar-group/index.d.mts +11 -0
- package/dist/components/avatar-group/index.mjs +20 -0
- package/dist/components/back-top/index.d.mts +29 -0
- package/dist/components/back-top/index.mjs +93 -0
- package/dist/components/badge/index.d.mts +10 -0
- package/dist/components/badge/index.mjs +23 -0
- package/dist/components/banner/index.d.mts +24 -0
- package/dist/components/banner/index.mjs +67 -0
- package/dist/components/bento/index.d.mts +24 -0
- package/dist/components/bento/index.mjs +51 -0
- package/dist/components/block-ui/index.d.mts +12 -0
- package/dist/components/block-ui/index.mjs +43 -0
- package/dist/components/breadcrumb/index.d.mts +11 -0
- package/dist/components/breadcrumb/index.mjs +45 -0
- package/dist/components/browser/index.d.mts +21 -0
- package/dist/components/browser/index.mjs +87 -0
- package/dist/components/button/index.d.mts +15 -0
- package/dist/components/button/index.mjs +43 -0
- package/dist/components/button-group/index.d.mts +23 -0
- package/dist/components/button-group/index.mjs +38 -0
- package/dist/components/calendar/index.d.mts +17 -0
- package/dist/components/calendar/index.mjs +209 -0
- package/dist/components/card/index.d.mts +11 -0
- package/dist/components/card/index.mjs +33 -0
- package/dist/components/carousel/index.d.mts +9 -0
- package/dist/components/carousel/index.mjs +12 -0
- package/dist/components/cascade-select/index.d.mts +31 -0
- package/dist/components/cascade-select/index.mjs +304 -0
- package/dist/components/checkbox/index.d.mts +15 -0
- package/dist/components/checkbox/index.mjs +18 -0
- package/dist/components/checkbox-group/index.d.mts +28 -0
- package/dist/components/checkbox-group/index.mjs +97 -0
- package/dist/components/chip/index.d.mts +12 -0
- package/dist/components/chip/index.mjs +36 -0
- package/dist/components/client-only/index.d.mts +2 -0
- package/dist/components/client-only/index.mjs +2 -0
- package/dist/components/clipboard/index.d.mts +16 -0
- package/dist/components/clipboard/index.mjs +19 -0
- package/dist/components/collapsible/index.d.mts +7 -0
- package/dist/components/collapsible/index.mjs +10 -0
- package/dist/components/collection/index.d.mts +2 -0
- package/dist/components/collection/index.mjs +2 -0
- package/dist/components/color-picker/index.d.mts +19 -0
- package/dist/components/color-picker/index.mjs +18 -0
- package/dist/components/combobox/index.d.mts +17 -0
- package/dist/components/combobox/index.mjs +18 -0
- package/dist/components/command/index.d.mts +43 -0
- package/dist/components/command/index.mjs +253 -0
- package/dist/components/comment/index.d.mts +17 -0
- package/dist/components/comment/index.mjs +101 -0
- package/dist/components/config-provider/index.d.mts +48 -0
- package/dist/components/config-provider/index.mjs +67 -0
- package/dist/components/container/index.d.mts +13 -0
- package/dist/components/container/index.mjs +23 -0
- package/dist/components/data-view/index.d.mts +18 -0
- package/dist/components/data-view/index.mjs +110 -0
- package/dist/components/date-input/index.d.mts +15 -0
- package/dist/components/date-input/index.mjs +18 -0
- package/dist/components/date-picker/index.d.mts +17 -0
- package/dist/components/date-picker/index.mjs +18 -0
- package/dist/components/deferred-content/index.d.mts +16 -0
- package/dist/components/deferred-content/index.mjs +52 -0
- package/dist/components/descriptions/index.d.mts +26 -0
- package/dist/components/descriptions/index.mjs +69 -0
- package/dist/components/dialog/index.d.mts +9 -0
- package/dist/components/dialog/index.mjs +11 -0
- package/dist/components/dock/index.d.mts +22 -0
- package/dist/components/dock/index.mjs +64 -0
- package/dist/components/download-trigger/index.d.mts +2 -0
- package/dist/components/download-trigger/index.mjs +2 -0
- package/dist/components/drawer/index.d.mts +9 -0
- package/dist/components/drawer/index.mjs +12 -0
- package/dist/components/dynamic-input/index.d.mts +30 -0
- package/dist/components/dynamic-input/index.mjs +119 -0
- package/dist/components/editable/index.d.mts +15 -0
- package/dist/components/editable/index.mjs +18 -0
- package/dist/components/ellipsis/index.d.mts +10 -0
- package/dist/components/ellipsis/index.mjs +27 -0
- package/dist/components/empty/index.d.mts +10 -0
- package/dist/components/empty/index.mjs +31 -0
- package/dist/components/field/index.d.mts +8 -0
- package/dist/components/field/index.mjs +11 -0
- package/dist/components/fieldset/index.d.mts +7 -0
- package/dist/components/fieldset/index.mjs +10 -0
- package/dist/components/file-upload/index.d.mts +17 -0
- package/dist/components/file-upload/index.mjs +18 -0
- package/dist/components/float-button/index.d.mts +61 -0
- package/dist/components/float-button/index.mjs +129 -0
- package/dist/components/floating-panel/index.d.mts +9 -0
- package/dist/components/floating-panel/index.mjs +12 -0
- package/dist/components/focus-trap/index.d.mts +2 -0
- package/dist/components/focus-trap/index.mjs +2 -0
- package/dist/components/form/index.d.mts +2 -0
- package/dist/components/form/index.mjs +125 -0
- package/dist/components/format/index.d.mts +9 -0
- package/dist/components/format/index.mjs +10 -0
- package/dist/components/frame/index.d.mts +10 -0
- package/dist/components/frame/index.mjs +12 -0
- package/dist/components/grid/index.d.mts +13 -0
- package/dist/components/grid/index.mjs +42 -0
- package/dist/components/highlight/index.d.mts +7 -0
- package/dist/components/highlight/index.mjs +11 -0
- package/dist/components/hover-card/index.d.mts +7 -0
- package/dist/components/hover-card/index.mjs +10 -0
- package/dist/components/icon/index.d.mts +24 -0
- package/dist/components/icon/index.mjs +54 -0
- package/dist/components/image/index.d.mts +17 -0
- package/dist/components/image/index.mjs +70 -0
- package/dist/components/image-cropper/index.d.mts +8 -0
- package/dist/components/image-cropper/index.mjs +11 -0
- package/dist/components/image-viewer/index.d.mts +19 -0
- package/dist/components/image-viewer/index.mjs +152 -0
- package/dist/components/input/index.d.mts +19 -0
- package/dist/components/input/index.mjs +2 -0
- package/dist/components/input-group/index.d.mts +18 -0
- package/dist/components/input-group/index.mjs +36 -0
- package/dist/components/json-tree-view/index.d.mts +7 -0
- package/dist/components/json-tree-view/index.mjs +10 -0
- package/dist/components/kbd/index.d.mts +6 -0
- package/dist/components/kbd/index.mjs +15 -0
- package/dist/components/layout/index.d.mts +60 -0
- package/dist/components/layout/index.mjs +192 -0
- package/dist/components/link/index.d.mts +10 -0
- package/dist/components/link/index.mjs +24 -0
- package/dist/components/list/index.d.mts +26 -0
- package/dist/components/list/index.mjs +97 -0
- package/dist/components/listbox/index.d.mts +17 -0
- package/dist/components/listbox/index.mjs +19 -0
- package/dist/components/marquee/index.d.mts +7 -0
- package/dist/components/marquee/index.mjs +10 -0
- package/dist/components/masonry/index.d.mts +11 -0
- package/dist/components/masonry/index.mjs +34 -0
- package/dist/components/mentions/index.d.mts +2 -0
- package/dist/components/mentions/index.mjs +3 -0
- package/dist/components/menu/index.d.mts +13 -0
- package/dist/components/menu/index.mjs +38 -0
- package/dist/components/menubar/index.d.mts +32 -0
- package/dist/components/menubar/index.mjs +83 -0
- package/dist/components/meter/index.d.mts +21 -0
- package/dist/components/meter/index.mjs +95 -0
- package/dist/components/navigation-menu/index.d.mts +8 -0
- package/dist/components/navigation-menu/index.mjs +11 -0
- package/dist/components/number-input/index.d.mts +15 -0
- package/dist/components/number-input/index.mjs +18 -0
- package/dist/components/order-list/index.d.mts +21 -0
- package/dist/components/order-list/index.mjs +160 -0
- package/dist/components/page-header/index.d.mts +11 -0
- package/dist/components/page-header/index.mjs +34 -0
- package/dist/components/pagination/index.d.mts +17 -0
- package/dist/components/pagination/index.mjs +18 -0
- package/dist/components/password-input/index.d.mts +15 -0
- package/dist/components/password-input/index.mjs +18 -0
- package/dist/components/pin-input/index.d.mts +14 -0
- package/dist/components/pin-input/index.mjs +18 -0
- package/dist/components/popconfirm/index.d.mts +17 -0
- package/dist/components/popconfirm/index.mjs +85 -0
- package/dist/components/popover/index.d.mts +8 -0
- package/dist/components/popover/index.mjs +11 -0
- package/dist/components/presence/index.d.mts +2 -0
- package/dist/components/presence/index.mjs +2 -0
- package/dist/components/progress/index.d.mts +15 -0
- package/dist/components/progress/index.mjs +18 -0
- package/dist/components/progress-group/index.d.mts +22 -0
- package/dist/components/progress-group/index.mjs +84 -0
- package/dist/components/qr-code/index.d.mts +8 -0
- package/dist/components/qr-code/index.mjs +11 -0
- package/dist/components/radio-group/index.d.mts +15 -0
- package/dist/components/radio-group/index.mjs +18 -0
- package/dist/components/rating-group/index.d.mts +15 -0
- package/dist/components/rating-group/index.mjs +18 -0
- package/dist/components/result/index.d.mts +22 -0
- package/dist/components/result/index.mjs +66 -0
- package/dist/components/scroll-area/index.d.mts +7 -0
- package/dist/components/scroll-area/index.mjs +10 -0
- package/dist/components/segment-group/index.d.mts +17 -0
- package/dist/components/segment-group/index.mjs +23 -0
- package/dist/components/select/index.d.mts +2 -0
- package/dist/components/select/index.mjs +2 -0
- package/dist/components/separator/index.d.mts +11 -0
- package/dist/components/separator/index.mjs +27 -0
- package/dist/components/signature-pad/index.d.mts +8 -0
- package/dist/components/signature-pad/index.mjs +11 -0
- package/dist/components/skeleton/index.d.mts +7 -0
- package/dist/components/skeleton/index.mjs +15 -0
- package/dist/components/slider/index.d.mts +15 -0
- package/dist/components/slider/index.mjs +18 -0
- package/dist/components/spinner/index.d.mts +9 -0
- package/dist/components/spinner/index.mjs +26 -0
- package/dist/components/split-button/index.d.mts +36 -0
- package/dist/components/split-button/index.mjs +124 -0
- package/dist/components/splitter/index.d.mts +7 -0
- package/dist/components/splitter/index.mjs +10 -0
- package/dist/components/spotlight/index.d.mts +11 -0
- package/dist/components/spotlight/index.mjs +38 -0
- package/dist/components/stack/index.d.mts +11 -0
- package/dist/components/stack/index.mjs +45 -0
- package/dist/components/stat/index.d.mts +17 -0
- package/dist/components/stat/index.mjs +44 -0
- package/dist/components/steps/index.d.mts +18 -0
- package/dist/components/steps/index.mjs +18 -0
- package/dist/components/swap/index.d.mts +8 -0
- package/dist/components/swap/index.mjs +11 -0
- package/dist/components/switch/index.d.mts +15 -0
- package/dist/components/switch/index.mjs +18 -0
- package/dist/components/table/index.d.mts +77 -0
- package/dist/components/table/index.mjs +837 -0
- package/dist/components/tabs/index.d.mts +19 -0
- package/dist/components/tabs/index.mjs +23 -0
- package/dist/components/tags-input/index.d.mts +16 -0
- package/dist/components/tags-input/index.mjs +18 -0
- package/dist/components/terminal/index.d.mts +17 -0
- package/dist/components/terminal/index.mjs +84 -0
- package/dist/components/textarea/index.d.mts +14 -0
- package/dist/components/textarea/index.mjs +37 -0
- package/dist/components/timeline/index.d.mts +15 -0
- package/dist/components/timeline/index.mjs +44 -0
- package/dist/components/timer/index.d.mts +8 -0
- package/dist/components/timer/index.mjs +11 -0
- package/dist/components/toast/index.d.mts +11 -0
- package/dist/components/toast/index.mjs +13 -0
- package/dist/components/toc/index.d.mts +7 -0
- package/dist/components/toc/index.mjs +10 -0
- package/dist/components/toggle/index.d.mts +7 -0
- package/dist/components/toggle/index.mjs +10 -0
- package/dist/components/toggle-group/index.d.mts +14 -0
- package/dist/components/toggle-group/index.mjs +18 -0
- package/dist/components/toolbar/index.d.mts +17 -0
- package/dist/components/toolbar/index.mjs +46 -0
- package/dist/components/tooltip/index.d.mts +7 -0
- package/dist/components/tooltip/index.mjs +10 -0
- package/dist/components/tour/index.d.mts +11 -0
- package/dist/components/tour/index.mjs +13 -0
- package/dist/components/transfer/index.d.mts +24 -0
- package/dist/components/transfer/index.mjs +175 -0
- package/dist/components/tree-select/index.d.mts +28 -0
- package/dist/components/tree-select/index.mjs +253 -0
- package/dist/components/tree-view/index.d.mts +18 -0
- package/dist/components/tree-view/index.mjs +19 -0
- package/dist/components/typography/index.d.mts +11 -0
- package/dist/components/typography/index.mjs +34 -0
- package/dist/components/user/index.d.mts +19 -0
- package/dist/components/user/index.mjs +68 -0
- package/dist/components/virtual-list/index.d.mts +17 -0
- package/dist/components/virtual-list/index.mjs +71 -0
- package/dist/components/watermark/index.d.mts +17 -0
- package/dist/components/watermark/index.mjs +77 -0
- package/dist/index-B1xiJ5ki.d.mts +1811 -0
- package/dist/index-DDX7x8aT.d.mts +95 -0
- package/dist/index-IfofF-SW.d.mts +10356 -0
- package/dist/index-YPUiqD3n.d.mts +42 -0
- package/dist/index.d.mts +141 -15209
- package/dist/index.mjs +141 -6171
- package/dist/input-DoFQ7RXh.mjs +78 -0
- package/dist/mentions-f5Js_2W7.mjs +263 -0
- package/dist/select-CHaXbzLX.mjs +115 -0
- package/package.json +101 -7
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
import { injectComponentStyle } from "@bysages/core";
|
|
2
|
+
import { createComponent, delegateEvents, effect, insert, memo, ref, setAttribute, spread, template } from "@solidjs/web";
|
|
3
|
+
import { createContext, createEffect, createSignal, splitProps, useContext } from "solid-js";
|
|
4
|
+
//#region src/components/layout/index.tsx
|
|
5
|
+
var _tmpl$ = /* @__PURE__ */ template(`<div>`);
|
|
6
|
+
var _tmpl$2 = /* @__PURE__ */ template(`<header>`);
|
|
7
|
+
var _tmpl$3 = /* @__PURE__ */ template(`<main>`);
|
|
8
|
+
var _tmpl$4 = /* @__PURE__ */ template(`<footer>`);
|
|
9
|
+
var _tmpl$5 = /* @__PURE__ */ template(`<div data-scope=layout data-part=sider-resize role=separator aria-orientation=vertical tabindex=0 aria-label="Resize sidebar">`);
|
|
10
|
+
var _tmpl$6 = /* @__PURE__ */ template(`<aside><!><!>`);
|
|
11
|
+
const LayoutContext = createContext();
|
|
12
|
+
/**
|
|
13
|
+
* The application skeleton: Root, Header, Sider, Content, Footer —
|
|
14
|
+
* the admin arrangement dressed in the paper-and-ink surfaces. The
|
|
15
|
+
* root is a full-height grid; a declared `sider` turns the columns
|
|
16
|
+
* around to meet whichever edge the rail stands on.
|
|
17
|
+
*/
|
|
18
|
+
function LayoutRoot(props) {
|
|
19
|
+
const [own, rest] = splitProps(props, ["sider"]);
|
|
20
|
+
return createComponent(LayoutContext.Provider, {
|
|
21
|
+
value: { siderPlacement: () => own.sider },
|
|
22
|
+
get children() {
|
|
23
|
+
var _el$ = _tmpl$();
|
|
24
|
+
spread(_el$, [rest, {
|
|
25
|
+
"data-scope": "layout",
|
|
26
|
+
"data-part": "root",
|
|
27
|
+
get "data-sider"() {
|
|
28
|
+
return own.sider;
|
|
29
|
+
}
|
|
30
|
+
}], false);
|
|
31
|
+
return _el$;
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
function LayoutHeader(props) {
|
|
36
|
+
var _el$2 = _tmpl$2();
|
|
37
|
+
spread(_el$2, [props, {
|
|
38
|
+
"data-scope": "layout",
|
|
39
|
+
"data-part": "header"
|
|
40
|
+
}], false);
|
|
41
|
+
return _el$2;
|
|
42
|
+
}
|
|
43
|
+
function LayoutContent(props) {
|
|
44
|
+
var _el$3 = _tmpl$3();
|
|
45
|
+
spread(_el$3, [props, {
|
|
46
|
+
"data-scope": "layout",
|
|
47
|
+
"data-part": "content"
|
|
48
|
+
}], false);
|
|
49
|
+
return _el$3;
|
|
50
|
+
}
|
|
51
|
+
function LayoutFooter(props) {
|
|
52
|
+
var _el$4 = _tmpl$4();
|
|
53
|
+
spread(_el$4, [props, {
|
|
54
|
+
"data-scope": "layout",
|
|
55
|
+
"data-part": "footer"
|
|
56
|
+
}], false);
|
|
57
|
+
return _el$4;
|
|
58
|
+
}
|
|
59
|
+
/** One step of the arrow-key resize, in px. */
|
|
60
|
+
const RESIZE_STEP = 16;
|
|
61
|
+
function LayoutSider(props) {
|
|
62
|
+
const [own, rest] = splitProps(props, [
|
|
63
|
+
"collapsed",
|
|
64
|
+
"width",
|
|
65
|
+
"collapsedWidth",
|
|
66
|
+
"resizable",
|
|
67
|
+
"minWidth",
|
|
68
|
+
"maxWidth",
|
|
69
|
+
"onCollapsedChange",
|
|
70
|
+
"onWidthChange",
|
|
71
|
+
"style",
|
|
72
|
+
"children"
|
|
73
|
+
]);
|
|
74
|
+
const collapsed = () => own.collapsed ?? false;
|
|
75
|
+
const [innerWidth, setInnerWidth] = createSignal(own.width ?? "16rem");
|
|
76
|
+
const width = () => own.width ?? innerWidth();
|
|
77
|
+
createEffect(() => {
|
|
78
|
+
const next = own.width;
|
|
79
|
+
if (next === void 0 || next === innerWidth()) return;
|
|
80
|
+
setInnerWidth(next);
|
|
81
|
+
own.onWidthChange?.(next);
|
|
82
|
+
});
|
|
83
|
+
let prevCollapsed = collapsed();
|
|
84
|
+
createEffect(() => {
|
|
85
|
+
const next = collapsed();
|
|
86
|
+
if (next === prevCollapsed) return;
|
|
87
|
+
prevCollapsed = next;
|
|
88
|
+
own.onCollapsedChange?.(next);
|
|
89
|
+
});
|
|
90
|
+
const layout = useContext(LayoutContext);
|
|
91
|
+
const [dragging, setDragging] = createSignal(false);
|
|
92
|
+
let rail;
|
|
93
|
+
let startPointerX = 0;
|
|
94
|
+
let startWidth = 0;
|
|
95
|
+
const railWidth = () => rail ? Math.round(rail.getBoundingClientRect().width) : 0;
|
|
96
|
+
const onPointerDown = (event) => {
|
|
97
|
+
setDragging(true);
|
|
98
|
+
startPointerX = event.clientX;
|
|
99
|
+
startWidth = railWidth();
|
|
100
|
+
event.currentTarget.setPointerCapture(event.pointerId);
|
|
101
|
+
};
|
|
102
|
+
const onPointerMove = (event) => {
|
|
103
|
+
if (!dragging()) return;
|
|
104
|
+
const towardFlow = (layout?.siderPlacement() ?? "start") === "end" ? -1 : 1;
|
|
105
|
+
const next = Math.round(startWidth + towardFlow * (event.clientX - startPointerX));
|
|
106
|
+
setInnerWidth(`${next}px`);
|
|
107
|
+
own.onWidthChange?.(`${next}px`);
|
|
108
|
+
};
|
|
109
|
+
const onPointerUp = (event) => {
|
|
110
|
+
setDragging(false);
|
|
111
|
+
event.currentTarget.releasePointerCapture(event.pointerId);
|
|
112
|
+
};
|
|
113
|
+
const onKeyDown = (event) => {
|
|
114
|
+
if (event.key !== "ArrowLeft" && event.key !== "ArrowRight") return;
|
|
115
|
+
event.preventDefault();
|
|
116
|
+
const widen = (layout?.siderPlacement() ?? "start") === "end" ? event.key === "ArrowLeft" : event.key === "ArrowRight";
|
|
117
|
+
const next = railWidth() + (widen ? RESIZE_STEP : -16);
|
|
118
|
+
setInnerWidth(`${next}px`);
|
|
119
|
+
own.onWidthChange?.(`${next}px`);
|
|
120
|
+
};
|
|
121
|
+
const handle = () => own.resizable && !collapsed() ? (() => {
|
|
122
|
+
var _el$5 = _tmpl$5();
|
|
123
|
+
_el$5._$$keydown = onKeyDown;
|
|
124
|
+
_el$5._$$pointerup = onPointerUp;
|
|
125
|
+
_el$5._$$pointermove = onPointerMove;
|
|
126
|
+
_el$5._$$pointerdown = onPointerDown;
|
|
127
|
+
effect(() => {
|
|
128
|
+
return {
|
|
129
|
+
e: dragging() ? "" : void 0,
|
|
130
|
+
t: railWidth()
|
|
131
|
+
};
|
|
132
|
+
}, ({ e, t }, _p$) => {
|
|
133
|
+
e !== _p$?.e && setAttribute(_el$5, "data-dragging", e);
|
|
134
|
+
t !== _p$?.t && setAttribute(_el$5, "aria-valuenow", t);
|
|
135
|
+
});
|
|
136
|
+
return _el$5;
|
|
137
|
+
})() : null;
|
|
138
|
+
const foldedWidth = () => own.collapsedWidth ?? "3.5rem";
|
|
139
|
+
var _el$6 = _tmpl$6();
|
|
140
|
+
var _el$7 = _el$6.firstChild;
|
|
141
|
+
var _el$8 = _el$7.nextSibling;
|
|
142
|
+
ref(() => {
|
|
143
|
+
return (el) => rail = el;
|
|
144
|
+
}, _el$6);
|
|
145
|
+
spread(_el$6, [rest, {
|
|
146
|
+
get style() {
|
|
147
|
+
return {
|
|
148
|
+
...typeof own.style === "object" ? own.style : {},
|
|
149
|
+
"--bs-layout-sider-width": collapsed() ? foldedWidth() : width(),
|
|
150
|
+
"--bs-layout-sider-min": collapsed() ? foldedWidth() : own.minWidth ?? "12rem",
|
|
151
|
+
"--bs-layout-sider-max": collapsed() ? foldedWidth() : own.maxWidth ?? "24rem"
|
|
152
|
+
};
|
|
153
|
+
},
|
|
154
|
+
"data-scope": "layout",
|
|
155
|
+
"data-part": "sider",
|
|
156
|
+
get "data-collapsed"() {
|
|
157
|
+
return collapsed() ? "" : void 0;
|
|
158
|
+
},
|
|
159
|
+
get "data-dragging"() {
|
|
160
|
+
return dragging() ? "" : void 0;
|
|
161
|
+
},
|
|
162
|
+
get "data-resizable"() {
|
|
163
|
+
return own.resizable ? "" : void 0;
|
|
164
|
+
}
|
|
165
|
+
}], true);
|
|
166
|
+
insert(_el$6, (() => {
|
|
167
|
+
var _c$ = memo(() => {
|
|
168
|
+
return typeof own.children === "function";
|
|
169
|
+
});
|
|
170
|
+
return () => {
|
|
171
|
+
return _c$() ? own.children({ collapsed: collapsed() }) : own.children;
|
|
172
|
+
};
|
|
173
|
+
})(), _el$7);
|
|
174
|
+
insert(_el$6, handle, _el$8);
|
|
175
|
+
return _el$6;
|
|
176
|
+
}
|
|
177
|
+
const Layout = Object.assign(LayoutRoot, {
|
|
178
|
+
Root: LayoutRoot,
|
|
179
|
+
Header: LayoutHeader,
|
|
180
|
+
Sider: LayoutSider,
|
|
181
|
+
Content: LayoutContent,
|
|
182
|
+
Footer: LayoutFooter
|
|
183
|
+
});
|
|
184
|
+
injectComponentStyle("layout");
|
|
185
|
+
delegateEvents([
|
|
186
|
+
"pointerdown",
|
|
187
|
+
"pointermove",
|
|
188
|
+
"pointerup",
|
|
189
|
+
"keydown"
|
|
190
|
+
]);
|
|
191
|
+
//#endregion
|
|
192
|
+
export { Layout };
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { JSX } from "solid-js";
|
|
2
|
+
//#region src/components/link/index.d.ts
|
|
3
|
+
export interface LinkProps extends JSX.AnchorHTMLAttributes<HTMLAnchorElement> {
|
|
4
|
+
underline?: "always" | "hover" | "none";
|
|
5
|
+
}
|
|
6
|
+
/** A link is ink in the accent's voice: quiet at rest, deepening under
|
|
7
|
+
* the hand, the halo at focus. The underline follows the prose —
|
|
8
|
+
* always, on hover, or never. */
|
|
9
|
+
export declare function Link(props: LinkProps): JSX.Element;
|
|
10
|
+
//#endregion
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { injectComponentStyle } from "@bysages/core";
|
|
2
|
+
import { claimElement, spread, template } from "@solidjs/web";
|
|
3
|
+
import { splitProps } from "solid-js";
|
|
4
|
+
//#region src/components/link/index.tsx
|
|
5
|
+
var _tmpl$ = /* @__PURE__ */ template(`<a>`);
|
|
6
|
+
/** A link is ink in the accent's voice: quiet at rest, deepening under
|
|
7
|
+
* the hand, the halo at focus. The underline follows the prose —
|
|
8
|
+
* always, on hover, or never. */
|
|
9
|
+
function Link(props) {
|
|
10
|
+
injectComponentStyle("link");
|
|
11
|
+
const [own, rest] = splitProps(props, ["underline"]);
|
|
12
|
+
var _el$ = _tmpl$();
|
|
13
|
+
claimElement(_el$);
|
|
14
|
+
spread(_el$, [rest, {
|
|
15
|
+
"data-scope": "link",
|
|
16
|
+
"data-part": "root",
|
|
17
|
+
get "data-underline"() {
|
|
18
|
+
return own.underline ?? "hover";
|
|
19
|
+
}
|
|
20
|
+
}], false);
|
|
21
|
+
return _el$;
|
|
22
|
+
}
|
|
23
|
+
//#endregion
|
|
24
|
+
export { Link };
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Component, JSX } from "solid-js";
|
|
2
|
+
//#region src/components/list/index.d.ts
|
|
3
|
+
export interface ListRootProps extends JSX.HTMLAttributes<HTMLUListElement> {
|
|
4
|
+
/** One hairline between rows. */
|
|
5
|
+
bordered?: boolean;
|
|
6
|
+
/** Every row answers the pointer with a wash. */
|
|
7
|
+
hoverable?: boolean;
|
|
8
|
+
}
|
|
9
|
+
declare function Root(props: ListRootProps): JSX.Element;
|
|
10
|
+
export interface ListContentProps extends Omit<JSX.HTMLAttributes<HTMLDivElement>, "title"> {
|
|
11
|
+
/** The row's title, riding its own part above the words. */
|
|
12
|
+
title?: JSX.Element;
|
|
13
|
+
/** The quiet echo beneath the title. */
|
|
14
|
+
description?: JSX.Element;
|
|
15
|
+
}
|
|
16
|
+
/** The row's words: `title` and `description` ride their own named
|
|
17
|
+
* parts, the children follow them for anything else. */
|
|
18
|
+
declare function Content(props: ListContentProps): JSX.Element;
|
|
19
|
+
export declare const List: typeof Root & {
|
|
20
|
+
Root: typeof Root;
|
|
21
|
+
Item: Component<JSX.HTMLAttributes<HTMLElement>>;
|
|
22
|
+
Leading: Component<JSX.HTMLAttributes<HTMLElement>>;
|
|
23
|
+
Content: typeof Content;
|
|
24
|
+
Actions: Component<JSX.HTMLAttributes<HTMLElement>>;
|
|
25
|
+
};
|
|
26
|
+
//#endregion
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { injectComponentStyle } from "@bysages/core";
|
|
2
|
+
import { createComponent, insert, mergeProps, spread, template } from "@solidjs/web";
|
|
3
|
+
import { Show, splitProps } from "solid-js";
|
|
4
|
+
//#region src/components/list/index.tsx
|
|
5
|
+
var _tmpl$ = /* @__PURE__ */ template(`<ul>`);
|
|
6
|
+
var _tmpl$2 = /* @__PURE__ */ template(`<div data-scope=list data-part=title>`);
|
|
7
|
+
var _tmpl$3 = /* @__PURE__ */ template(`<div data-scope=list data-part=description>`);
|
|
8
|
+
var _tmpl$4 = /* @__PURE__ */ template(`<div><!><!><!>`);
|
|
9
|
+
/** A ledger of rows: Root is the list, Item one row, Leading the mark
|
|
10
|
+
* before the words, Content the title and its quiet echo, Actions the
|
|
11
|
+
* way out. The bordered variant draws the hairlines; the hoverable
|
|
12
|
+
* variant gives every row the wash — and any row the caller makes
|
|
13
|
+
* clickable (role="button") answers the pointer on its own. */
|
|
14
|
+
function part(name, tag) {
|
|
15
|
+
function Component(props) {
|
|
16
|
+
return createComponent(tag, mergeProps(props, {
|
|
17
|
+
"data-scope": "list",
|
|
18
|
+
get "data-part"() {
|
|
19
|
+
return name.toLowerCase();
|
|
20
|
+
}
|
|
21
|
+
}));
|
|
22
|
+
}
|
|
23
|
+
return Component;
|
|
24
|
+
}
|
|
25
|
+
const Item = part("Item", "li");
|
|
26
|
+
const Leading = part("Leading", "div");
|
|
27
|
+
const Actions = part("Actions", "div");
|
|
28
|
+
function Root(props) {
|
|
29
|
+
const [own, rest] = splitProps(props, ["bordered", "hoverable"]);
|
|
30
|
+
var _el$ = _tmpl$();
|
|
31
|
+
spread(_el$, [rest, {
|
|
32
|
+
"data-scope": "list",
|
|
33
|
+
"data-part": "root",
|
|
34
|
+
get "data-bordered"() {
|
|
35
|
+
return own.bordered || void 0;
|
|
36
|
+
},
|
|
37
|
+
get "data-hoverable"() {
|
|
38
|
+
return own.hoverable || void 0;
|
|
39
|
+
}
|
|
40
|
+
}], false);
|
|
41
|
+
return _el$;
|
|
42
|
+
}
|
|
43
|
+
/** The row's words: `title` and `description` ride their own named
|
|
44
|
+
* parts, the children follow them for anything else. */
|
|
45
|
+
function Content(props) {
|
|
46
|
+
const [own, rest] = splitProps(props, [
|
|
47
|
+
"title",
|
|
48
|
+
"description",
|
|
49
|
+
"children"
|
|
50
|
+
]);
|
|
51
|
+
var _el$2 = _tmpl$4();
|
|
52
|
+
var _el$4 = _el$2.firstChild;
|
|
53
|
+
var _el$6 = _el$4.nextSibling;
|
|
54
|
+
var _el$7 = _el$6.nextSibling;
|
|
55
|
+
spread(_el$2, [rest, {
|
|
56
|
+
"data-scope": "list",
|
|
57
|
+
"data-part": "content"
|
|
58
|
+
}], true);
|
|
59
|
+
insert(_el$2, createComponent(Show, {
|
|
60
|
+
get when() {
|
|
61
|
+
return own.title;
|
|
62
|
+
},
|
|
63
|
+
get children() {
|
|
64
|
+
var _el$3 = _tmpl$2();
|
|
65
|
+
insert(_el$3, () => {
|
|
66
|
+
return own.title;
|
|
67
|
+
});
|
|
68
|
+
return _el$3;
|
|
69
|
+
}
|
|
70
|
+
}), _el$4);
|
|
71
|
+
insert(_el$2, createComponent(Show, {
|
|
72
|
+
get when() {
|
|
73
|
+
return own.description;
|
|
74
|
+
},
|
|
75
|
+
get children() {
|
|
76
|
+
var _el$5 = _tmpl$3();
|
|
77
|
+
insert(_el$5, () => {
|
|
78
|
+
return own.description;
|
|
79
|
+
});
|
|
80
|
+
return _el$5;
|
|
81
|
+
}
|
|
82
|
+
}), _el$6);
|
|
83
|
+
insert(_el$2, () => {
|
|
84
|
+
return own.children;
|
|
85
|
+
}, _el$7);
|
|
86
|
+
return _el$2;
|
|
87
|
+
}
|
|
88
|
+
const List = Object.assign(Root, {
|
|
89
|
+
Root,
|
|
90
|
+
Item,
|
|
91
|
+
Leading,
|
|
92
|
+
Content,
|
|
93
|
+
Actions
|
|
94
|
+
});
|
|
95
|
+
injectComponentStyle("list");
|
|
96
|
+
//#endregion
|
|
97
|
+
export { List };
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { CollectionItem } from "@ark-ui/solid/collection";
|
|
2
|
+
import { Listbox as Listbox$1, ListboxRootProps } from "@ark-ui/solid/listbox";
|
|
3
|
+
//#region src/components/listbox/index.d.ts
|
|
4
|
+
/** Ark's Listbox, dressed in the paper-and-ink system: quiet rows of ink
|
|
5
|
+
* where the checked row alone takes the flat primary fill. The API is
|
|
6
|
+
* Ark's own — Root, Label, Input, Content, Empty, Item, ItemText,
|
|
7
|
+
* ItemIndicator, ItemGroup, ItemGroupLabel, ValueText, plus
|
|
8
|
+
* createListCollection. */
|
|
9
|
+
type ListboxOwnProps = {
|
|
10
|
+
/** One rung of the ladder for the row register and the filter field. */
|
|
11
|
+
size?: "sm" | "md" | "lg";
|
|
12
|
+
};
|
|
13
|
+
declare function ListboxRoot<T extends CollectionItem>(props: ListboxRootProps<T> & ListboxOwnProps): import("solid-js").JSX.Element;
|
|
14
|
+
export declare const Listbox: Omit<typeof Listbox$1, "Root"> & {
|
|
15
|
+
Root: typeof ListboxRoot;
|
|
16
|
+
};
|
|
17
|
+
//#endregion
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { injectComponentStyle } from "@bysages/core";
|
|
2
|
+
import { createComponent, mergeProps } from "@solidjs/web";
|
|
3
|
+
import { splitProps } from "solid-js";
|
|
4
|
+
import { Listbox as Listbox$1 } from "@ark-ui/solid/listbox";
|
|
5
|
+
//#region src/components/listbox/index.tsx
|
|
6
|
+
const ArkRoot = Listbox$1.Root;
|
|
7
|
+
function ListboxRoot(props) {
|
|
8
|
+
const [own, rest] = splitProps(props, ["size"]);
|
|
9
|
+
return createComponent(ArkRoot, mergeProps(rest, { get "data-size"() {
|
|
10
|
+
return own.size ?? "md";
|
|
11
|
+
} }));
|
|
12
|
+
}
|
|
13
|
+
const Listbox = {
|
|
14
|
+
...Listbox$1,
|
|
15
|
+
Root: ListboxRoot
|
|
16
|
+
};
|
|
17
|
+
injectComponentStyle("listbox");
|
|
18
|
+
//#endregion
|
|
19
|
+
export { Listbox };
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Marquee as Marquee$1 } from "@ark-ui/solid/marquee";
|
|
2
|
+
//#region src/components/marquee/index.d.ts
|
|
3
|
+
/** Ark's Marquee, dressed in the paper-and-ink system: a linear ribbon of
|
|
4
|
+
* seal-cut chips that dissolves into the paper at its edges rather than
|
|
5
|
+
* cutting off. The API is Ark's own — Root, Viewport, Content, Edge, Item. */
|
|
6
|
+
export declare const Marquee: typeof Marquee$1;
|
|
7
|
+
//#endregion
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { injectComponentStyle } from "@bysages/core";
|
|
2
|
+
import { Marquee as Marquee$1 } from "@ark-ui/solid/marquee";
|
|
3
|
+
//#region src/components/marquee/index.ts
|
|
4
|
+
/** Ark's Marquee, dressed in the paper-and-ink system: a linear ribbon of
|
|
5
|
+
* seal-cut chips that dissolves into the paper at its edges rather than
|
|
6
|
+
* cutting off. The API is Ark's own — Root, Viewport, Content, Edge, Item. */
|
|
7
|
+
const Marquee = Marquee$1;
|
|
8
|
+
injectComponentStyle("marquee");
|
|
9
|
+
//#endregion
|
|
10
|
+
export { Marquee };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { JSX } from "solid-js";
|
|
2
|
+
//#region src/components/masonry/index.d.ts
|
|
3
|
+
/** A wall of uneven heights: items flow down each column before
|
|
4
|
+
* crossing to the next, so the order is column-first. A row-flow wall
|
|
5
|
+
* would need grid masonry, which browsers do not ship yet. */
|
|
6
|
+
export interface MasonryProps extends JSX.HTMLAttributes<HTMLDivElement> {
|
|
7
|
+
columns?: number;
|
|
8
|
+
gap?: "none" | "xs" | "sm" | "md" | "lg" | "xl";
|
|
9
|
+
}
|
|
10
|
+
export declare function Masonry(props: MasonryProps): JSX.Element;
|
|
11
|
+
//#endregion
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { injectComponentStyle } from "@bysages/core";
|
|
2
|
+
import { spread, template } from "@solidjs/web";
|
|
3
|
+
import { splitProps } from "solid-js";
|
|
4
|
+
//#region src/components/masonry/index.tsx
|
|
5
|
+
var _tmpl$ = /* @__PURE__ */ template(`<div>`);
|
|
6
|
+
/** The same named steps of the space ramp the stack uses — one
|
|
7
|
+
* vocabulary of distance across the layout primitives. */
|
|
8
|
+
const gapVars = {
|
|
9
|
+
none: "0",
|
|
10
|
+
xs: "var(--bs-gap-xs)",
|
|
11
|
+
sm: "var(--bs-gap-sm)",
|
|
12
|
+
md: "var(--bs-gap-md)",
|
|
13
|
+
lg: "var(--bs-gap-lg)",
|
|
14
|
+
xl: "var(--bs-gap-xl)"
|
|
15
|
+
};
|
|
16
|
+
function Masonry(props) {
|
|
17
|
+
injectComponentStyle("masonry");
|
|
18
|
+
const [own, rest] = splitProps(props, ["columns", "gap"]);
|
|
19
|
+
var _el$ = _tmpl$();
|
|
20
|
+
spread(_el$, [rest, {
|
|
21
|
+
get style() {
|
|
22
|
+
return {
|
|
23
|
+
...rest.style,
|
|
24
|
+
"--bs-masonry-columns": String(own.columns ?? 3),
|
|
25
|
+
"--bs-masonry-gap": gapVars[own.gap ?? "md"] ?? gapVars.md
|
|
26
|
+
};
|
|
27
|
+
},
|
|
28
|
+
"data-scope": "masonry",
|
|
29
|
+
"data-part": "root"
|
|
30
|
+
}], false);
|
|
31
|
+
return _el$;
|
|
32
|
+
}
|
|
33
|
+
//#endregion
|
|
34
|
+
export { Masonry };
|
|
@@ -0,0 +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-DDX7x8aT.mjs";
|
|
2
|
+
export { MentionEntry, Mentions, MentionsProps, MentionsVessel, MentionsVesselProps, type UseMentionsHandlers, type UseMentionsOptions, useMentions };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Menu as Menu$1 } from "@ark-ui/solid/menu";
|
|
2
|
+
//#region src/components/menu/index.d.ts
|
|
3
|
+
type MenuOwnProps = {
|
|
4
|
+
/** One rung of the control-height ladder for the vessel's rows. */
|
|
5
|
+
size?: "sm" | "md" | "lg";
|
|
6
|
+
};
|
|
7
|
+
declare function MenuRoot(props: Parameters<typeof Menu$1.Root>[0] & MenuOwnProps): import("solid-js").JSX.Element;
|
|
8
|
+
declare function MenuContent(props: Parameters<typeof Menu$1.Content>[0]): import("solid-js").JSX.Element;
|
|
9
|
+
export declare const Menu: Omit<typeof Menu$1, "Root" | "Content"> & {
|
|
10
|
+
Root: typeof MenuRoot;
|
|
11
|
+
Content: typeof MenuContent;
|
|
12
|
+
};
|
|
13
|
+
//#endregion
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { injectComponentStyle } from "@bysages/core";
|
|
2
|
+
import { createComponent, mergeProps } from "@solidjs/web";
|
|
3
|
+
import { createContext, splitProps, useContext } from "solid-js";
|
|
4
|
+
import { Menu as Menu$1 } from "@ark-ui/solid/menu";
|
|
5
|
+
//#region src/components/menu/index.tsx
|
|
6
|
+
/** Ark's Menu, dressed in the paper-and-ink system: a quiet paper vessel on
|
|
7
|
+
* elevation, hover as light on the row, checked items as the flat ink fill.
|
|
8
|
+
* The API is Ark's own — Root, Trigger, ContextTrigger, Indicator, Positioner,
|
|
9
|
+
* Content, Item, ItemText, ItemIndicator, ItemGroup, ItemGroupLabel,
|
|
10
|
+
* TriggerItem, Separator, Arrow, ArrowTip. */
|
|
11
|
+
/** The row rung rides the context because Ark's Root renders no DOM of
|
|
12
|
+
* its own — the vessel (Content) is the element the rung can land on,
|
|
13
|
+
* and the Portal breaks CSS ancestry between the two. The getter keeps
|
|
14
|
+
* the rung live, so a bound size retunes an open vessel. */
|
|
15
|
+
const MenuSizeContext = createContext();
|
|
16
|
+
function MenuRoot(props) {
|
|
17
|
+
const [own, rest] = splitProps(props, ["size"]);
|
|
18
|
+
return createComponent(MenuSizeContext.Provider, {
|
|
19
|
+
value: () => own.size ?? "md",
|
|
20
|
+
get children() {
|
|
21
|
+
return createComponent(Menu$1.Root, rest);
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
function MenuContent(props) {
|
|
26
|
+
const size = useContext(MenuSizeContext);
|
|
27
|
+
return createComponent(Menu$1.Content, mergeProps(props, { get "data-size"() {
|
|
28
|
+
return size?.() ?? "md";
|
|
29
|
+
} }));
|
|
30
|
+
}
|
|
31
|
+
const Menu = {
|
|
32
|
+
...Menu$1,
|
|
33
|
+
Root: MenuRoot,
|
|
34
|
+
Content: MenuContent
|
|
35
|
+
};
|
|
36
|
+
injectComponentStyle("menu");
|
|
37
|
+
//#endregion
|
|
38
|
+
export { Menu };
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { JSX } from "solid-js";
|
|
2
|
+
//#region src/components/menubar/index.d.ts
|
|
3
|
+
export interface MenubarEntry {
|
|
4
|
+
label: string;
|
|
5
|
+
value: string;
|
|
6
|
+
danger?: boolean;
|
|
7
|
+
disabled?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export interface MenubarGroup {
|
|
10
|
+
label: string;
|
|
11
|
+
items: MenubarEntry[];
|
|
12
|
+
}
|
|
13
|
+
export interface MenubarProps extends Omit<JSX.HTMLAttributes<HTMLDivElement>, "onSelect"> {
|
|
14
|
+
/** The menus across the bar, each with its entries. */
|
|
15
|
+
items?: MenubarGroup[];
|
|
16
|
+
/** Called with the entry's `value` when it is chosen. */
|
|
17
|
+
onSelect?: (value: string) => void;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* A desktop-style menu bar: a row of quiet ghost triggers, each opening
|
|
21
|
+
* the same paper vessel as the menu family. The triggers are our own
|
|
22
|
+
* buttons grafted onto the menu machine's trigger via `asChild` — the
|
|
23
|
+
* machine keeps the trigger element (positioning, focus restore,
|
|
24
|
+
* `data-state`) while the element wears the menubar scope. The popups
|
|
25
|
+
* keep the menu parts untouched, so the menu stylesheet dresses them.
|
|
26
|
+
*
|
|
27
|
+
* Keyboard note: the triggers move between each other with Tab, not
|
|
28
|
+
* arrow keys — cross-menu arrow traversal is out of scope for this
|
|
29
|
+
* version. Inside an open menu the machine handles arrows and Escape.
|
|
30
|
+
*/
|
|
31
|
+
export declare function Menubar(props: MenubarProps): JSX.Element;
|
|
32
|
+
//#endregion
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { injectComponentStyle } from "@bysages/core";
|
|
2
|
+
import { createComponent, insert, spread, template } from "@solidjs/web";
|
|
3
|
+
import { For, splitProps } from "solid-js";
|
|
4
|
+
import { Portal } from "solid-js/web";
|
|
5
|
+
import { Menu } from "@ark-ui/solid/menu";
|
|
6
|
+
//#region src/components/menubar/index.tsx
|
|
7
|
+
var _tmpl$ = /* @__PURE__ */ template(`<div>`);
|
|
8
|
+
var _tmpl$2 = /* @__PURE__ */ template(`<button>`);
|
|
9
|
+
/**
|
|
10
|
+
* A desktop-style menu bar: a row of quiet ghost triggers, each opening
|
|
11
|
+
* the same paper vessel as the menu family. The triggers are our own
|
|
12
|
+
* buttons grafted onto the menu machine's trigger via `asChild` — the
|
|
13
|
+
* machine keeps the trigger element (positioning, focus restore,
|
|
14
|
+
* `data-state`) while the element wears the menubar scope. The popups
|
|
15
|
+
* keep the menu parts untouched, so the menu stylesheet dresses them.
|
|
16
|
+
*
|
|
17
|
+
* Keyboard note: the triggers move between each other with Tab, not
|
|
18
|
+
* arrow keys — cross-menu arrow traversal is out of scope for this
|
|
19
|
+
* version. Inside an open menu the machine handles arrows and Escape.
|
|
20
|
+
*/
|
|
21
|
+
function Menubar(props) {
|
|
22
|
+
injectComponentStyle("menubar");
|
|
23
|
+
injectComponentStyle("menu");
|
|
24
|
+
const [own, rest] = splitProps(props, ["items", "onSelect"]);
|
|
25
|
+
var _el$ = _tmpl$();
|
|
26
|
+
spread(_el$, [rest, {
|
|
27
|
+
"data-scope": "menubar",
|
|
28
|
+
"data-part": "root",
|
|
29
|
+
role: "menubar"
|
|
30
|
+
}], true);
|
|
31
|
+
insert(_el$, createComponent(For, {
|
|
32
|
+
get each() {
|
|
33
|
+
return own.items ?? [];
|
|
34
|
+
},
|
|
35
|
+
children: (group) => createComponent(Menu.Root, {
|
|
36
|
+
positioning: { placement: "bottom-start" },
|
|
37
|
+
get children() {
|
|
38
|
+
return [createComponent(Menu.Trigger, { asChild: (triggerProps) => (() => {
|
|
39
|
+
var _el$2 = _tmpl$2();
|
|
40
|
+
spread(_el$2, [triggerProps, {
|
|
41
|
+
type: "button",
|
|
42
|
+
"data-scope": "menubar",
|
|
43
|
+
"data-part": "trigger"
|
|
44
|
+
}], true);
|
|
45
|
+
insert(_el$2, () => {
|
|
46
|
+
return group.label;
|
|
47
|
+
});
|
|
48
|
+
return _el$2;
|
|
49
|
+
})() }), createComponent(Portal, { get children() {
|
|
50
|
+
return createComponent(Menu.Positioner, { get children() {
|
|
51
|
+
return createComponent(Menu.Content, { get children() {
|
|
52
|
+
return createComponent(For, {
|
|
53
|
+
get each() {
|
|
54
|
+
return group.items;
|
|
55
|
+
},
|
|
56
|
+
children: (entry) => createComponent(Menu.Item, {
|
|
57
|
+
get value() {
|
|
58
|
+
return entry.value;
|
|
59
|
+
},
|
|
60
|
+
get disabled() {
|
|
61
|
+
return entry.disabled;
|
|
62
|
+
},
|
|
63
|
+
get "data-danger"() {
|
|
64
|
+
return entry.danger ? "" : void 0;
|
|
65
|
+
},
|
|
66
|
+
onSelect: () => own.onSelect?.(entry.value),
|
|
67
|
+
get children() {
|
|
68
|
+
return createComponent(Menu.ItemText, { get children() {
|
|
69
|
+
return entry.label;
|
|
70
|
+
} });
|
|
71
|
+
}
|
|
72
|
+
})
|
|
73
|
+
});
|
|
74
|
+
} });
|
|
75
|
+
} });
|
|
76
|
+
} })];
|
|
77
|
+
}
|
|
78
|
+
})
|
|
79
|
+
}));
|
|
80
|
+
return _el$;
|
|
81
|
+
}
|
|
82
|
+
//#endregion
|
|
83
|
+
export { Menubar };
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { JSX } from "solid-js";
|
|
2
|
+
//#region src/components/meter/index.d.ts
|
|
3
|
+
export interface MeterRootProps extends JSX.HTMLAttributes<HTMLDivElement> {
|
|
4
|
+
/** The measured value — clamped between min and max. */
|
|
5
|
+
value: number;
|
|
6
|
+
min?: number;
|
|
7
|
+
max?: number;
|
|
8
|
+
/** The pigment the ink rides: primary unless a threshold is crossed. */
|
|
9
|
+
level?: "normal" | "success" | "warning" | "danger";
|
|
10
|
+
label?: string;
|
|
11
|
+
/** One rung of the groove ladder — the track's thickness. */
|
|
12
|
+
size?: "sm" | "md" | "lg";
|
|
13
|
+
}
|
|
14
|
+
declare function Root(props: MeterRootProps): JSX.Element;
|
|
15
|
+
export declare const Meter: typeof Root & {
|
|
16
|
+
Root: typeof Root;
|
|
17
|
+
Label: (props: JSX.HTMLAttributes<HTMLElement>) => JSX.Element;
|
|
18
|
+
ValueText: (props: JSX.HTMLAttributes<HTMLElement>) => JSX.Element;
|
|
19
|
+
Track: (props: JSX.HTMLAttributes<HTMLElement>) => JSX.Element;
|
|
20
|
+
};
|
|
21
|
+
//#endregion
|