@bysages/solid 0.3.1 → 0.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{ai-response-slzE03wh.mjs → ai-response-CJ-uEAgj.mjs} +14 -6
- package/dist/chevron-BHQrYKPM.mjs +8 -0
- package/dist/components/accordion/index.d.mts +22 -2
- package/dist/components/accordion/index.mjs +69 -3
- package/dist/components/affix/index.d.mts +3 -1
- package/dist/components/affix/index.mjs +6 -5
- package/dist/components/ai/index.d.mts +1 -1
- package/dist/components/ai/index.mjs +7 -6
- package/dist/components/ai-action/index.d.mts +3 -1
- package/dist/components/ai-action/index.mjs +4 -3
- package/dist/components/ai-attachments/index.d.mts +8 -4
- package/dist/components/ai-attachments/index.mjs +39 -37
- package/dist/components/ai-message/index.d.mts +3 -1
- package/dist/components/ai-message/index.mjs +4 -3
- package/dist/components/ai-prompt-input/index.d.mts +3 -1
- package/dist/components/ai-prompt-input/index.mjs +48 -44
- package/dist/components/ai-reasoning/index.d.mts +3 -1
- package/dist/components/ai-reasoning/index.mjs +5 -4
- 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 +6 -5
- package/dist/components/ai-suggestion/index.d.mts +3 -1
- package/dist/components/ai-suggestion/index.mjs +4 -3
- package/dist/components/ai-tool/index.d.mts +3 -1
- package/dist/components/ai-tool/index.mjs +5 -4
- package/dist/components/alert/index.mjs +32 -35
- package/dist/components/angle-slider/index.d.mts +1 -1
- package/dist/components/angle-slider/index.mjs +14 -6
- package/dist/components/aspect-ratio/index.d.mts +3 -1
- package/dist/components/aspect-ratio/index.mjs +4 -3
- package/dist/components/autocomplete/index.d.mts +4 -1
- package/dist/components/autocomplete/index.mjs +19 -4
- package/dist/components/avatar/index.d.mts +1 -1
- package/dist/components/avatar/index.mjs +11 -2
- package/dist/components/avatar-group/index.d.mts +3 -1
- package/dist/components/avatar-group/index.mjs +4 -3
- package/dist/components/back-top/index.d.mts +3 -1
- package/dist/components/back-top/index.mjs +10 -6
- package/dist/components/badge/index.d.mts +3 -1
- package/dist/components/badge/index.mjs +4 -3
- package/dist/components/banner/index.mjs +7 -3
- package/dist/components/bento/index.mjs +1 -1
- package/dist/components/block-ui/index.d.mts +3 -1
- package/dist/components/block-ui/index.mjs +4 -3
- package/dist/components/breadcrumb/index.mjs +1 -1
- package/dist/components/browser/index.mjs +1 -1
- package/dist/components/button/index.d.mts +3 -1
- package/dist/components/button/index.mjs +4 -3
- package/dist/components/button-group/index.mjs +1 -1
- package/dist/components/calendar/index.d.mts +3 -1
- package/dist/components/calendar/index.mjs +30 -22
- package/dist/components/card/index.mjs +1 -1
- package/dist/components/carousel/index.d.mts +5 -1
- package/dist/components/carousel/index.mjs +14 -2
- package/dist/components/cascade-select/index.d.mts +3 -1
- package/dist/components/cascade-select/index.mjs +74 -73
- package/dist/components/checkbox/index.d.mts +1 -1
- package/dist/components/checkbox/index.mjs +14 -6
- package/dist/components/checkbox-group/index.d.mts +4 -9
- package/dist/components/checkbox-group/index.mjs +66 -69
- package/dist/components/chip/index.d.mts +3 -1
- package/dist/components/chip/index.mjs +4 -3
- 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 +14 -6
- package/dist/components/collapsible/index.d.mts +15 -1
- package/dist/components/collapsible/index.mjs +40 -3
- package/dist/components/color-picker/index.d.mts +13 -2
- package/dist/components/color-picker/index.mjs +96 -9
- package/dist/components/combobox/index.d.mts +24 -1
- package/dist/components/combobox/index.mjs +130 -9
- package/dist/components/command/index.d.mts +4 -1
- package/dist/components/command/index.mjs +14 -2
- package/dist/components/comment/index.d.mts +3 -1
- package/dist/components/comment/index.mjs +4 -3
- package/dist/components/config-provider/index.d.mts +3 -1
- package/dist/components/config-provider/index.mjs +3 -2
- package/dist/components/container/index.d.mts +3 -1
- package/dist/components/container/index.mjs +4 -3
- package/dist/components/data-view/index.d.mts +3 -1
- package/dist/components/data-view/index.mjs +6 -7
- package/dist/components/date-input/index.d.mts +1 -1
- package/dist/components/date-input/index.mjs +14 -6
- package/dist/components/date-picker/index.d.mts +1 -1
- package/dist/components/date-picker/index.mjs +14 -6
- package/dist/components/deferred-content/index.d.mts +3 -1
- package/dist/components/deferred-content/index.mjs +4 -3
- package/dist/components/descriptions/index.d.mts +7 -0
- package/dist/components/descriptions/index.mjs +22 -3
- package/dist/components/dialog/index.d.mts +17 -1
- package/dist/components/dialog/index.mjs +85 -3
- package/dist/components/dock/index.mjs +1 -1
- 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 +84 -3
- package/dist/components/dynamic-input/index.d.mts +3 -1
- package/dist/components/dynamic-input/index.mjs +11 -7
- package/dist/components/editable/index.d.mts +1 -1
- package/dist/components/editable/index.mjs +14 -6
- package/dist/components/ellipsis/index.d.mts +3 -1
- package/dist/components/ellipsis/index.mjs +4 -3
- package/dist/components/empty/index.mjs +1 -1
- package/dist/components/field/index.d.mts +5 -1
- package/dist/components/field/index.mjs +14 -2
- package/dist/components/fieldset/index.d.mts +5 -1
- package/dist/components/fieldset/index.mjs +14 -2
- package/dist/components/file-upload/index.d.mts +1 -7
- package/dist/components/file-upload/index.mjs +14 -6
- package/dist/components/float-button/index.mjs +1 -1
- package/dist/components/floating-panel/index.d.mts +5 -1
- package/dist/components/floating-panel/index.mjs +14 -2
- 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 +11 -5
- 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 +4 -3
- package/dist/components/highlight/index.d.mts +3 -1
- package/dist/components/highlight/index.mjs +3 -2
- package/dist/components/hover-card/index.d.mts +19 -1
- package/dist/components/hover-card/index.mjs +92 -3
- package/dist/components/icon/index.d.mts +8 -7
- package/dist/components/icon/index.mjs +5 -4
- package/dist/components/image/index.d.mts +4 -2
- package/dist/components/image/index.mjs +35 -34
- package/dist/components/image-cropper/index.d.mts +5 -1
- package/dist/components/image-cropper/index.mjs +14 -2
- package/dist/components/image-viewer/index.d.mts +2 -23
- package/dist/components/image-viewer/index.mjs +3 -159
- package/dist/components/input/index.d.mts +3 -1
- package/dist/components/input/index.mjs +1 -1
- package/dist/components/input-group/index.mjs +1 -1
- package/dist/components/json-tree-view/index.d.mts +5 -4
- package/dist/components/json-tree-view/index.mjs +16 -19
- package/dist/components/kbd/index.d.mts +3 -1
- package/dist/components/kbd/index.mjs +4 -3
- package/dist/components/layout/index.mjs +1 -1
- package/dist/components/link/index.d.mts +3 -1
- package/dist/components/link/index.mjs +4 -3
- package/dist/components/list/index.mjs +1 -1
- package/dist/components/listbox/index.d.mts +1 -1
- package/dist/components/listbox/index.mjs +14 -6
- package/dist/components/marquee/index.d.mts +5 -1
- package/dist/components/marquee/index.mjs +14 -2
- package/dist/components/masonry/index.d.mts +3 -1
- package/dist/components/masonry/index.mjs +4 -3
- 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 +63 -6
- package/dist/components/menubar/index.d.mts +3 -1
- package/dist/components/menubar/index.mjs +31 -10
- package/dist/components/meter/index.mjs +1 -1
- package/dist/components/navigation-menu/index.d.mts +5 -1
- package/dist/components/navigation-menu/index.mjs +14 -2
- package/dist/components/number-input/index.d.mts +1 -1
- package/dist/components/number-input/index.mjs +14 -6
- package/dist/components/order-list/index.d.mts +3 -1
- package/dist/components/order-list/index.mjs +68 -64
- package/dist/components/page-header/index.mjs +1 -1
- package/dist/components/pagination/index.d.mts +1 -1
- package/dist/components/pagination/index.mjs +14 -6
- package/dist/components/password-input/index.d.mts +1 -1
- package/dist/components/password-input/index.mjs +14 -6
- package/dist/components/pin-input/index.d.mts +1 -1
- package/dist/components/pin-input/index.mjs +14 -6
- package/dist/components/popconfirm/index.d.mts +3 -1
- package/dist/components/popconfirm/index.mjs +17 -9
- package/dist/components/popover/index.d.mts +19 -1
- package/dist/components/popover/index.mjs +92 -3
- 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 +14 -6
- package/dist/components/progress-group/index.d.mts +3 -1
- package/dist/components/progress-group/index.mjs +5 -4
- package/dist/components/qr-code/index.d.mts +5 -1
- package/dist/components/qr-code/index.mjs +14 -2
- package/dist/components/radio-group/index.d.mts +1 -1
- package/dist/components/radio-group/index.mjs +14 -6
- package/dist/components/rating-group/index.d.mts +2 -2
- package/dist/components/rating-group/index.mjs +14 -6
- package/dist/components/result/index.d.mts +1 -1
- package/dist/components/result/index.mjs +6 -4
- package/dist/components/scroll-area/index.d.mts +5 -1
- package/dist/components/scroll-area/index.mjs +14 -2
- package/dist/components/segment-group/index.d.mts +1 -1
- package/dist/components/segment-group/index.mjs +12 -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 +3 -1
- package/dist/components/separator/index.mjs +4 -3
- package/dist/components/signature-pad/index.d.mts +5 -1
- package/dist/components/signature-pad/index.mjs +14 -2
- package/dist/components/skeleton/index.d.mts +3 -1
- package/dist/components/skeleton/index.mjs +4 -3
- package/dist/components/slider/index.d.mts +1 -1
- package/dist/components/slider/index.mjs +14 -6
- package/dist/components/spinner/index.d.mts +3 -1
- package/dist/components/spinner/index.mjs +4 -3
- package/dist/components/split-button/index.d.mts +3 -1
- package/dist/components/split-button/index.mjs +15 -4
- package/dist/components/splitter/index.d.mts +5 -1
- package/dist/components/splitter/index.mjs +14 -2
- package/dist/components/spotlight/index.d.mts +3 -1
- package/dist/components/spotlight/index.mjs +4 -3
- package/dist/components/stack/index.d.mts +3 -1
- package/dist/components/stack/index.mjs +7 -6
- package/dist/components/stat/index.mjs +1 -1
- package/dist/components/steps/index.d.mts +20 -3
- package/dist/components/steps/index.mjs +67 -8
- package/dist/components/swap/index.d.mts +5 -1
- package/dist/components/swap/index.mjs +14 -2
- package/dist/components/switch/index.d.mts +1 -1
- package/dist/components/switch/index.mjs +14 -6
- package/dist/components/table/index.d.mts +3 -1
- package/dist/components/table/index.mjs +191 -153
- package/dist/components/tabs/index.d.mts +20 -2
- package/dist/components/tabs/index.mjs +60 -4
- package/dist/components/tags-input/index.d.mts +1 -1
- package/dist/components/tags-input/index.mjs +14 -6
- package/dist/components/terminal/index.d.mts +3 -1
- package/dist/components/terminal/index.mjs +4 -3
- package/dist/components/textarea/index.d.mts +3 -1
- package/dist/components/textarea/index.mjs +4 -3
- package/dist/components/timeline/index.mjs +1 -1
- package/dist/components/timer/index.d.mts +5 -1
- package/dist/components/timer/index.mjs +14 -2
- package/dist/components/toast/index.d.mts +8 -2
- package/dist/components/toast/index.mjs +15 -3
- package/dist/components/toc/index.d.mts +11 -2
- package/dist/components/toc/index.mjs +1 -1
- package/dist/components/toggle/index.d.mts +5 -1
- package/dist/components/toggle/index.mjs +14 -2
- package/dist/components/toggle-group/index.d.mts +1 -1
- package/dist/components/toggle-group/index.mjs +14 -6
- package/dist/components/toolbar/index.d.mts +3 -1
- package/dist/components/toolbar/index.mjs +4 -3
- package/dist/components/tooltip/index.d.mts +16 -1
- package/dist/components/tooltip/index.mjs +56 -3
- package/dist/components/tour/index.d.mts +16 -3
- package/dist/components/tour/index.mjs +75 -10
- package/dist/components/transfer/index.d.mts +3 -1
- package/dist/components/transfer/index.mjs +55 -51
- package/dist/components/tree-select/index.d.mts +3 -1
- package/dist/components/tree-select/index.mjs +38 -31
- package/dist/components/tree-view/index.d.mts +1 -8
- package/dist/components/tree-view/index.mjs +17 -22
- package/dist/components/typography/index.mjs +1 -1
- package/dist/components/user/index.d.mts +3 -1
- package/dist/components/user/index.mjs +9 -3
- package/dist/components/virtual-list/index.d.mts +3 -1
- package/dist/components/virtual-list/index.mjs +14 -10
- package/dist/components/watermark/index.d.mts +3 -1
- package/dist/components/watermark/index.mjs +5 -4
- 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-19s75Hz_.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-IfofF-SW.d.mts → index-DVc1L_zt.d.mts} +191 -112
- package/dist/index-DhripUtf.d.mts +39 -0
- package/dist/{index-YPUiqD3n.d.mts → index-ID48LCMU.d.mts} +28 -2
- package/dist/index-wW28BYf1.d.mts +124 -0
- package/dist/index.d.mts +23 -22
- package/dist/index.mjs +13 -12
- package/dist/{input-DoFQ7RXh.mjs → input-BL3N3L8g.mjs} +4 -3
- package/dist/media-player-yF7KVUxM.mjs +796 -0
- package/dist/{mentions-f5Js_2W7.mjs → mentions-DKUG7eHt.mjs} +68 -52
- package/dist/select-DI7pFspF.mjs +292 -0
- package/dist/{toc-CZmYEaQR.mjs → toc-CqvGOp34.mjs} +13 -3
- package/package.json +10 -82
- package/dist/chevron-D5RzcayK.mjs +0 -9
- package/dist/index-DdsnfV4f.d.mts +0 -16
- package/dist/select-CX6OuQlU.mjs +0 -123
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { spread, template } from "@solidjs/web";
|
|
2
|
+
import { getIcon } from "@bysages/core/icons";
|
|
3
|
+
//#region src/internal/icon.tsx
|
|
4
|
+
var _tmpl$ = /* @__PURE__ */ template(`<svg>`);
|
|
5
|
+
function resolve(name) {
|
|
6
|
+
const icon = getIcon(name);
|
|
7
|
+
if (!icon) throw new Error(`Unknown icon "${name}" in the curated core registry`);
|
|
8
|
+
return icon;
|
|
9
|
+
}
|
|
10
|
+
/** Render a curated core icon as a bare svg node — the components' own
|
|
11
|
+
* default icons. No span shell: the part rules size the svg directly.
|
|
12
|
+
* Extra body appends after the icon's own body, for composed marks. */
|
|
13
|
+
function iconNode(name, attrs = {}, extraBody = "") {
|
|
14
|
+
const icon = resolve(name);
|
|
15
|
+
var _el$ = _tmpl$();
|
|
16
|
+
spread(_el$, [
|
|
17
|
+
{
|
|
18
|
+
get viewBox() {
|
|
19
|
+
return `0 0 ${icon.width} ${icon.height}`;
|
|
20
|
+
},
|
|
21
|
+
"aria-hidden": "true"
|
|
22
|
+
},
|
|
23
|
+
attrs,
|
|
24
|
+
{ get innerHTML() {
|
|
25
|
+
return icon.body + extraBody;
|
|
26
|
+
} }
|
|
27
|
+
], false);
|
|
28
|
+
return _el$;
|
|
29
|
+
}
|
|
30
|
+
/** The same curated icon as an HTML string, for enhancements that write
|
|
31
|
+
* innerHTML rather than mount elements. */
|
|
32
|
+
function iconHtml(name, attrs = {}) {
|
|
33
|
+
const icon = resolve(name);
|
|
34
|
+
const attributes = {
|
|
35
|
+
width: String(icon.width),
|
|
36
|
+
height: String(icon.height),
|
|
37
|
+
viewBox: `0 0 ${icon.width} ${icon.height}`,
|
|
38
|
+
"aria-hidden": "true",
|
|
39
|
+
...attrs
|
|
40
|
+
};
|
|
41
|
+
return `<svg${Object.entries(attributes).map(([key, value]) => ` ${key}="${value}"`).join("")}>${icon.body}</svg>`;
|
|
42
|
+
}
|
|
43
|
+
/** The curated icon's drawing body, for composed marks that share one svg. */
|
|
44
|
+
function iconBody(name) {
|
|
45
|
+
return resolve(name).body;
|
|
46
|
+
}
|
|
47
|
+
//#endregion
|
|
48
|
+
export { iconHtml as n, iconNode as r, iconBody as t };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { createUniqueId } from "solid-js";
|
|
2
|
+
//#region src/internal/id.ts
|
|
3
|
+
/** Generates an SSR-stable machine base id while honoring an explicit id. */
|
|
4
|
+
function useElementId(scope, explicit) {
|
|
5
|
+
const generated = createUniqueId();
|
|
6
|
+
return () => {
|
|
7
|
+
const id = explicit?.();
|
|
8
|
+
return typeof id === "string" && id ? id : `bs-${scope}-${generated}`;
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
//#endregion
|
|
12
|
+
export { useElementId as t };
|
|
@@ -0,0 +1,228 @@
|
|
|
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 { Button } from "./components/button/index.mjs";
|
|
5
|
+
import { n as useComponentMessages } from "./use-component-messages-C4SCVYjD.mjs";
|
|
6
|
+
import { ButtonGroup } from "./components/button-group/index.mjs";
|
|
7
|
+
import { Dialog as Dialog$1 } from "./components/dialog/index.mjs";
|
|
8
|
+
import { createComponent, effect, insert, memo, mergeProps, setAttribute, setStyleProperty, spread, template } from "@solidjs/web";
|
|
9
|
+
import { injectComponentStyle } from "@bysages/core/styling";
|
|
10
|
+
import { Show, createEffect, createSignal, splitProps } from "solid-js";
|
|
11
|
+
import { Portal } from "solid-js/web";
|
|
12
|
+
import { Dialog } from "@ark-ui/solid/dialog";
|
|
13
|
+
//#region src/components/image-viewer/preview.tsx
|
|
14
|
+
var _tmpl$$1 = /* @__PURE__ */ template(`<span data-part=preview-label>`);
|
|
15
|
+
var _tmpl$2$1 = /* @__PURE__ */ template(`<span data-scope=image-viewer data-part=preview-overlay aria-hidden=true><!><!>`);
|
|
16
|
+
var _tmpl$3 = /* @__PURE__ */ template(`<span>`);
|
|
17
|
+
/** The default doorway is the curated preview icon; custom content keeps
|
|
18
|
+
* that icon as its hover and focus affordance. */
|
|
19
|
+
function ImageViewerPreview(props) {
|
|
20
|
+
injectComponentStyle("image-viewer");
|
|
21
|
+
const messages = useComponentMessages();
|
|
22
|
+
const [own, triggerProps, rest] = splitProps(props, ["label", "children"], ["data-part"]);
|
|
23
|
+
const parts = [triggerProps["data-part"], "preview"].filter(Boolean).join(" ");
|
|
24
|
+
const isIcon = () => own.children == null;
|
|
25
|
+
var _el$ = _tmpl$3();
|
|
26
|
+
spread(_el$, [
|
|
27
|
+
rest,
|
|
28
|
+
{
|
|
29
|
+
"data-scope": "image-viewer",
|
|
30
|
+
"data-part": parts
|
|
31
|
+
},
|
|
32
|
+
() => {
|
|
33
|
+
return isIcon() ? {
|
|
34
|
+
"data-empty": "true",
|
|
35
|
+
"aria-label": messages().imageViewer.preview
|
|
36
|
+
} : {};
|
|
37
|
+
}
|
|
38
|
+
], true);
|
|
39
|
+
insert(_el$, createComponent(Show, {
|
|
40
|
+
get when() {
|
|
41
|
+
return own.children;
|
|
42
|
+
},
|
|
43
|
+
get fallback() {
|
|
44
|
+
return iconNode("eye");
|
|
45
|
+
},
|
|
46
|
+
get children() {
|
|
47
|
+
return [memo(() => {
|
|
48
|
+
return own.children;
|
|
49
|
+
}), (() => {
|
|
50
|
+
var _el$2 = _tmpl$2$1();
|
|
51
|
+
var _el$3 = _el$2.firstChild;
|
|
52
|
+
var _el$5 = _el$3.nextSibling;
|
|
53
|
+
insert(_el$2, () => {
|
|
54
|
+
return iconNode("eye");
|
|
55
|
+
}, _el$3);
|
|
56
|
+
insert(_el$2, createComponent(Show, {
|
|
57
|
+
get when() {
|
|
58
|
+
return own.label;
|
|
59
|
+
},
|
|
60
|
+
get children() {
|
|
61
|
+
var _el$4 = _tmpl$$1();
|
|
62
|
+
insert(_el$4, () => {
|
|
63
|
+
return own.label;
|
|
64
|
+
});
|
|
65
|
+
return _el$4;
|
|
66
|
+
}
|
|
67
|
+
}), _el$5);
|
|
68
|
+
return _el$2;
|
|
69
|
+
})()];
|
|
70
|
+
}
|
|
71
|
+
}));
|
|
72
|
+
return _el$;
|
|
73
|
+
}
|
|
74
|
+
//#endregion
|
|
75
|
+
//#region src/components/image-viewer/index.tsx
|
|
76
|
+
var _tmpl$ = /* @__PURE__ */ template(`<img data-scope=image-viewer data-part=viewport>`);
|
|
77
|
+
var _tmpl$2 = /* @__PURE__ */ template(`<div data-scope=image-viewer data-part=toolbar>`);
|
|
78
|
+
const MIN_SCALE = .5;
|
|
79
|
+
const MAX_SCALE = 3;
|
|
80
|
+
const SCALE_STEP = .25;
|
|
81
|
+
/** The toolbar's icons, drawn from the house icon set. */
|
|
82
|
+
const TOOL_ICONS = {
|
|
83
|
+
zoomIn: () => iconNode("zoom-in"),
|
|
84
|
+
zoomOut: () => iconNode("zoom-out"),
|
|
85
|
+
rotate: () => iconNode("rotate-cw"),
|
|
86
|
+
close: () => iconNode("x")
|
|
87
|
+
};
|
|
88
|
+
function ImageViewerImpl(props) {
|
|
89
|
+
injectComponentStyle("image-viewer");
|
|
90
|
+
const [own] = splitProps(props, [
|
|
91
|
+
"src",
|
|
92
|
+
"alt",
|
|
93
|
+
"width",
|
|
94
|
+
"height",
|
|
95
|
+
"open",
|
|
96
|
+
"zoomable",
|
|
97
|
+
"onOpenChange",
|
|
98
|
+
"children"
|
|
99
|
+
]);
|
|
100
|
+
const id = useElementId("image-viewer");
|
|
101
|
+
const messages = useComponentMessages();
|
|
102
|
+
const [localOpen, setLocalOpen] = createSignal(false);
|
|
103
|
+
const [scale, setScale] = createSignal(1);
|
|
104
|
+
const [rotation, setRotation] = createSignal(0);
|
|
105
|
+
const isOpen = () => own.open ?? localOpen();
|
|
106
|
+
const setOpen = (value) => {
|
|
107
|
+
if (own.open === void 0) setLocalOpen(value);
|
|
108
|
+
own.onOpenChange?.(value);
|
|
109
|
+
};
|
|
110
|
+
createEffect(() => {
|
|
111
|
+
if (isOpen()) {
|
|
112
|
+
setScale(1);
|
|
113
|
+
setRotation(0);
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
function zoom(step) {
|
|
117
|
+
setScale(Math.min(MAX_SCALE, Math.max(MIN_SCALE, scale() + step)));
|
|
118
|
+
}
|
|
119
|
+
function rotate() {
|
|
120
|
+
setRotation((rotation() + 90) % 360);
|
|
121
|
+
}
|
|
122
|
+
function toolButton(label, icon, onClick) {
|
|
123
|
+
return createComponent(Button, {
|
|
124
|
+
variant: "ghost",
|
|
125
|
+
square: true,
|
|
126
|
+
size: "lg",
|
|
127
|
+
"aria-label": label,
|
|
128
|
+
onClick,
|
|
129
|
+
get children() {
|
|
130
|
+
return icon();
|
|
131
|
+
}
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
return createComponent(Dialog.Root, {
|
|
135
|
+
get id() {
|
|
136
|
+
return id();
|
|
137
|
+
},
|
|
138
|
+
get open() {
|
|
139
|
+
return isOpen();
|
|
140
|
+
},
|
|
141
|
+
onOpenChange: (details) => setOpen(details.open),
|
|
142
|
+
lazyMount: true,
|
|
143
|
+
unmountOnExit: true,
|
|
144
|
+
get children() {
|
|
145
|
+
return [createComponent(Dialog.Trigger, {
|
|
146
|
+
asChild: () => own.children ?? createComponent(ImageViewerPreview, {}),
|
|
147
|
+
"data-scope": "image-viewer",
|
|
148
|
+
"data-part": "trigger"
|
|
149
|
+
}), createComponent(Portal, { get children() {
|
|
150
|
+
return [createComponent(Dialog.Backdrop, { class: "bs-image-viewer-backdrop" }), createComponent(Dialog.Positioner, {
|
|
151
|
+
class: "bs-image-viewer-positioner",
|
|
152
|
+
get children() {
|
|
153
|
+
return createComponent(Dialog.Content, {
|
|
154
|
+
class: "bs-image-viewer-content",
|
|
155
|
+
get "aria-label"() {
|
|
156
|
+
return own.alt || "Image preview";
|
|
157
|
+
},
|
|
158
|
+
onClick: (event) => {
|
|
159
|
+
if (event.target === event.currentTarget) setOpen(false);
|
|
160
|
+
},
|
|
161
|
+
get children() {
|
|
162
|
+
return [(() => {
|
|
163
|
+
var _el$ = _tmpl$();
|
|
164
|
+
effect(() => {
|
|
165
|
+
return {
|
|
166
|
+
e: own.src,
|
|
167
|
+
t: own.alt ?? "",
|
|
168
|
+
a: own.width,
|
|
169
|
+
o: own.height,
|
|
170
|
+
i: `scale(${scale()}) rotate(${rotation()}deg)`
|
|
171
|
+
};
|
|
172
|
+
}, ({ e, t, a, o, i }, _p$) => {
|
|
173
|
+
e !== _p$?.e && setAttribute(_el$, "src", e);
|
|
174
|
+
t !== _p$?.t && setAttribute(_el$, "alt", t);
|
|
175
|
+
a !== _p$?.a && setAttribute(_el$, "width", a);
|
|
176
|
+
o !== _p$?.o && setAttribute(_el$, "height", o);
|
|
177
|
+
i !== _p$?.i && setStyleProperty(_el$, "--bs-image-viewer-transform", i);
|
|
178
|
+
});
|
|
179
|
+
return _el$;
|
|
180
|
+
})(), (() => {
|
|
181
|
+
var _el$2 = _tmpl$2();
|
|
182
|
+
insert(_el$2, createComponent(ButtonGroup, { get children() {
|
|
183
|
+
return [
|
|
184
|
+
createComponent(Show, {
|
|
185
|
+
get when() {
|
|
186
|
+
return own.zoomable ?? true;
|
|
187
|
+
},
|
|
188
|
+
get children() {
|
|
189
|
+
return [memo(() => {
|
|
190
|
+
return toolButton(messages().imageViewer.zoomIn, TOOL_ICONS.zoomIn, () => zoom(SCALE_STEP));
|
|
191
|
+
}), memo(() => {
|
|
192
|
+
return toolButton(messages().imageViewer.zoomOut, TOOL_ICONS.zoomOut, () => zoom(-.25));
|
|
193
|
+
})];
|
|
194
|
+
}
|
|
195
|
+
}),
|
|
196
|
+
memo(() => {
|
|
197
|
+
return toolButton(messages().imageViewer.rotate, TOOL_ICONS.rotate, rotate);
|
|
198
|
+
}),
|
|
199
|
+
createComponent(Dialog.CloseTrigger, { asChild: (closeProps) => createComponent(Button, mergeProps(closeProps, {
|
|
200
|
+
variant: "ghost",
|
|
201
|
+
square: true,
|
|
202
|
+
size: "lg",
|
|
203
|
+
get "aria-label"() {
|
|
204
|
+
return messages().imageViewer.close;
|
|
205
|
+
},
|
|
206
|
+
get children() {
|
|
207
|
+
return TOOL_ICONS.close();
|
|
208
|
+
}
|
|
209
|
+
})) })
|
|
210
|
+
];
|
|
211
|
+
} }));
|
|
212
|
+
return _el$2;
|
|
213
|
+
})()];
|
|
214
|
+
}
|
|
215
|
+
});
|
|
216
|
+
}
|
|
217
|
+
})];
|
|
218
|
+
} })];
|
|
219
|
+
}
|
|
220
|
+
});
|
|
221
|
+
}
|
|
222
|
+
const viewerParts = {
|
|
223
|
+
...Dialog$1,
|
|
224
|
+
Preview: ImageViewerPreview
|
|
225
|
+
};
|
|
226
|
+
const ImageViewer = defineFamily(ImageViewerImpl, viewerParts);
|
|
227
|
+
//#endregion
|
|
228
|
+
export { ImageViewer as t };
|
|
@@ -1787,7 +1787,9 @@ interface AnyFormApi {
|
|
|
1787
1787
|
interface FormProps extends JSX.FormHTMLAttributes<HTMLFormElement> {
|
|
1788
1788
|
form: AnyFormApi;
|
|
1789
1789
|
}
|
|
1790
|
-
declare
|
|
1790
|
+
declare const Form: ((props: FormProps) => JSX.Element) & {
|
|
1791
|
+
Root: (props: FormProps) => JSX.Element;
|
|
1792
|
+
};
|
|
1791
1793
|
/**
|
|
1792
1794
|
* The named slot in the grid: label, control, hint — and the engine's
|
|
1793
1795
|
* errors for this name, shown through the same parts the standalone
|
|
@@ -1806,6 +1808,8 @@ interface FormFieldProps extends Omit<JSX.HTMLAttributes<HTMLDivElement>, "child
|
|
|
1806
1808
|
disabled?: boolean;
|
|
1807
1809
|
children?: JSX.Element | ((field: any) => JSX.Element);
|
|
1808
1810
|
}
|
|
1809
|
-
declare
|
|
1811
|
+
declare const FormField: ((props: FormFieldProps) => JSX.Element) & {
|
|
1812
|
+
Root: (props: FormFieldProps) => JSX.Element;
|
|
1813
|
+
};
|
|
1810
1814
|
//#endregion
|
|
1811
1815
|
export { SolidFormApi as a, FormApi as c, FormProps as i, FieldApi as l, FormField as n, createField as o, FormFieldProps as r, createForm as s, Form as t };
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Popover } from "./components/popover/index.mjs";
|
|
1
2
|
import { Accessor, JSX } from "solid-js";
|
|
2
3
|
//#region src/components/mentions/use-mentions.d.ts
|
|
3
4
|
interface UseMentionsOptions {
|
|
@@ -33,6 +34,9 @@ declare function useMentions(options: Accessor<UseMentionsOptions>, textarea: Ac
|
|
|
33
34
|
};
|
|
34
35
|
//#endregion
|
|
35
36
|
//#region src/components/mentions/index.d.ts
|
|
37
|
+
/** The Anchor's polymorphic wiring is div-typed at the API boundary; the
|
|
38
|
+
* textarea host supplies the concrete element type. */
|
|
39
|
+
type MentionsAnchorProps = JSX.HTMLAttributes<HTMLTextAreaElement>;
|
|
36
40
|
interface MentionEntry {
|
|
37
41
|
label: string;
|
|
38
42
|
value: string;
|
|
@@ -49,13 +53,17 @@ interface MentionsVesselProps {
|
|
|
49
53
|
onInsert?: (entry: MentionEntry) => void;
|
|
50
54
|
onActiveChange?: (index: number) => void;
|
|
51
55
|
onOpenChange?: (open: boolean) => void;
|
|
56
|
+
/** The host's field, rendered with the popover Anchor's wiring. When
|
|
57
|
+
* absent, the vessel falls back to the `anchor` rectangle. */
|
|
58
|
+
children?: JSX.Element | ((anchorProps: MentionsAnchorProps) => JSX.Element);
|
|
52
59
|
}
|
|
53
|
-
/** The vessel: the candidates themselves as a floating card.
|
|
54
|
-
*
|
|
55
|
-
*
|
|
56
|
-
*
|
|
57
|
-
|
|
58
|
-
|
|
60
|
+
/** The vessel: the candidates themselves as a floating card. A host can
|
|
61
|
+
* render its field through the Anchor; the rectangle fallback keeps the
|
|
62
|
+
* textarea in the host's own anatomy. Shares the detection state with
|
|
63
|
+
* the host through `useMentions`. */
|
|
64
|
+
declare const MentionsVessel: ((props: MentionsVesselProps) => JSX.Element) & {
|
|
65
|
+
Root: (props: MentionsVesselProps) => JSX.Element;
|
|
66
|
+
};
|
|
59
67
|
interface MentionsProps extends Omit<JSX.HTMLAttributes<HTMLDivElement>, "onInput"> {
|
|
60
68
|
/** The candidates offered once the trigger character is typed. */
|
|
61
69
|
items?: MentionEntry[];
|
|
@@ -90,6 +98,7 @@ interface MentionsProps extends Omit<JSX.HTMLAttributes<HTMLDivElement>, "onInpu
|
|
|
90
98
|
* own field anatomy (the AI prompt input) skip this shell and wire
|
|
91
99
|
* `useMentions` plus `MentionsVessel` themselves.
|
|
92
100
|
*/
|
|
93
|
-
declare function
|
|
101
|
+
declare function MentionsImpl(props: MentionsProps): JSX.Element;
|
|
102
|
+
declare const Mentions: typeof MentionsImpl & typeof Popover;
|
|
94
103
|
//#endregion
|
|
95
104
|
export { MentionsVesselProps as a, useMentions as c, MentionsVessel as i, Mentions as n, UseMentionsHandlers as o, MentionsProps as r, UseMentionsOptions as s, MentionEntry as t };
|