@bysages/solid 0.2.2 → 0.2.3
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-B_586r27.mjs +139 -0
- package/dist/chevron-GWEoEYdO.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 +35 -0
- package/dist/components/ai/index.d.mts +2 -0
- package/dist/components/ai/index.mjs +69 -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 +98 -0
- package/dist/components/ai-message/index.d.mts +13 -0
- package/dist/components/ai-message/index.mjs +24 -0
- package/dist/components/ai-prompt-input/index.d.mts +45 -0
- package/dist/components/ai-prompt-input/index.mjs +136 -0
- package/dist/components/ai-reasoning/index.d.mts +13 -0
- package/dist/components/ai-reasoning/index.mjs +34 -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 +78 -0
- package/dist/components/alert/index.d.mts +22 -0
- package/dist/components/alert/index.mjs +92 -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 +25 -0
- package/dist/components/autocomplete/index.d.mts +21 -0
- package/dist/components/autocomplete/index.mjs +75 -0
- package/dist/components/avatar/index.d.mts +20 -0
- package/dist/components/avatar/index.mjs +15 -0
- package/dist/components/avatar-group/index.d.mts +11 -0
- package/dist/components/avatar-group/index.mjs +22 -0
- package/dist/components/back-top/index.d.mts +29 -0
- package/dist/components/back-top/index.mjs +89 -0
- package/dist/components/badge/index.d.mts +10 -0
- package/dist/components/badge/index.mjs +25 -0
- package/dist/components/banner/index.d.mts +24 -0
- package/dist/components/banner/index.mjs +71 -0
- package/dist/components/breadcrumb/index.d.mts +11 -0
- package/dist/components/breadcrumb/index.mjs +43 -0
- package/dist/components/button/index.d.mts +15 -0
- package/dist/components/button/index.mjs +45 -0
- package/dist/components/button-group/index.d.mts +23 -0
- package/dist/components/button-group/index.mjs +40 -0
- package/dist/components/calendar/index.d.mts +17 -0
- package/dist/components/calendar/index.mjs +197 -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 +265 -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 +99 -0
- package/dist/components/chip/index.d.mts +12 -0
- package/dist/components/chip/index.mjs +34 -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 +237 -0
- package/dist/components/comment/index.d.mts +17 -0
- package/dist/components/comment/index.mjs +86 -0
- package/dist/components/config-provider/index.d.mts +48 -0
- package/dist/components/config-provider/index.mjs +65 -0
- package/dist/components/container/index.d.mts +13 -0
- package/dist/components/container/index.mjs +25 -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/descriptions/index.d.mts +18 -0
- package/dist/components/descriptions/index.mjs +42 -0
- package/dist/components/dialog/index.d.mts +9 -0
- package/dist/components/dialog/index.mjs +11 -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 +116 -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 +29 -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 +128 -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 +110 -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 +44 -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 +19 -0
- package/dist/components/icon/index.mjs +53 -0
- package/dist/components/image/index.d.mts +17 -0
- package/dist/components/image/index.mjs +69 -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 +143 -0
- package/dist/components/input/index.d.mts +16 -0
- package/dist/components/input/index.mjs +42 -0
- package/dist/components/input-group/index.d.mts +18 -0
- package/dist/components/input-group/index.mjs +40 -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 +17 -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 +25 -0
- package/dist/components/list/index.d.mts +26 -0
- package/dist/components/list/index.mjs +92 -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 +36 -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 +82 -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/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 +78 -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 +77 -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/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 +17 -0
- package/dist/components/select/index.mjs +18 -0
- package/dist/components/separator/index.d.mts +11 -0
- package/dist/components/separator/index.mjs +29 -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 +17 -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 +28 -0
- package/dist/components/split-button/index.d.mts +36 -0
- package/dist/components/split-button/index.mjs +123 -0
- package/dist/components/splitter/index.d.mts +7 -0
- package/dist/components/splitter/index.mjs +10 -0
- package/dist/components/stack/index.d.mts +11 -0
- package/dist/components/stack/index.mjs +47 -0
- package/dist/components/stat/index.d.mts +17 -0
- package/dist/components/stat/index.mjs +46 -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 +740 -0
- package/dist/components/tabs/index.d.mts +17 -0
- package/dist/components/tabs/index.mjs +18 -0
- package/dist/components/tags-input/index.d.mts +16 -0
- package/dist/components/tags-input/index.mjs +18 -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 +9 -0
- package/dist/components/timeline/index.mjs +29 -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/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 +166 -0
- package/dist/components/tree-select/index.d.mts +28 -0
- package/dist/components/tree-select/index.mjs +245 -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/watermark/index.d.mts +17 -0
- package/dist/components/watermark/index.mjs +71 -0
- package/dist/index-B1xiJ5ki.d.mts +1811 -0
- package/dist/index-B4XS2n2y.d.mts +13411 -0
- package/dist/index-DDX7x8aT.d.mts +95 -0
- package/dist/index.d.mts +128 -15209
- package/dist/index.mjs +128 -6171
- package/dist/mentions-xbI6vJAP.mjs +257 -0
- package/package.json +77 -4
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { injectComponentStyle } from "@bysages/core";
|
|
2
|
+
import { createComponent, effect, insert, mergeProps, setAttribute, spread, template } from "solid-js/web";
|
|
3
|
+
import { Show, splitProps } from "solid-js";
|
|
4
|
+
//#region src/components/comment/index.tsx
|
|
5
|
+
var _tmpl$ = /*#__PURE__*/ template(`<div data-scope=comment data-part=avatar>`);
|
|
6
|
+
var _tmpl$2 = /*#__PURE__*/ template(`<span data-scope=comment data-part=author>`);
|
|
7
|
+
var _tmpl$3 = /*#__PURE__*/ template(`<time data-scope=comment data-part=datetime>`);
|
|
8
|
+
var _tmpl$4 = /*#__PURE__*/ template(`<header data-scope=comment data-part=header>`);
|
|
9
|
+
var _tmpl$5 = /*#__PURE__*/ template(`<div data-scope=comment data-part=actions>`);
|
|
10
|
+
var _tmpl$6 = /*#__PURE__*/ template(`<article><div data-scope=comment data-part=body><div data-scope=comment data-part=content>`);
|
|
11
|
+
/**
|
|
12
|
+
* A voice on the record: the portrait hangs left (the `avatar` prop),
|
|
13
|
+
* the body carries the byline from `author` and `datetime`, the ink is
|
|
14
|
+
* the children, and `actions` is the row of answers.
|
|
15
|
+
*/
|
|
16
|
+
function Comment(props) {
|
|
17
|
+
injectComponentStyle("comment");
|
|
18
|
+
const [own, rest] = splitProps(props, [
|
|
19
|
+
"author",
|
|
20
|
+
"datetime",
|
|
21
|
+
"avatar",
|
|
22
|
+
"actions",
|
|
23
|
+
"children"
|
|
24
|
+
]);
|
|
25
|
+
return (() => {
|
|
26
|
+
var _el$ = _tmpl$6(), _el$3 = _el$.firstChild, _el$7 = _el$3.firstChild;
|
|
27
|
+
spread(_el$, mergeProps(rest, {
|
|
28
|
+
"data-scope": "comment",
|
|
29
|
+
"data-part": "root"
|
|
30
|
+
}), false, true);
|
|
31
|
+
insert(_el$, createComponent(Show, {
|
|
32
|
+
get when() {
|
|
33
|
+
return own.avatar;
|
|
34
|
+
},
|
|
35
|
+
get children() {
|
|
36
|
+
var _el$2 = _tmpl$();
|
|
37
|
+
insert(_el$2, () => own.avatar);
|
|
38
|
+
return _el$2;
|
|
39
|
+
}
|
|
40
|
+
}), _el$3);
|
|
41
|
+
insert(_el$3, createComponent(Show, {
|
|
42
|
+
get when() {
|
|
43
|
+
return own.author || own.datetime;
|
|
44
|
+
},
|
|
45
|
+
get children() {
|
|
46
|
+
var _el$4 = _tmpl$4();
|
|
47
|
+
insert(_el$4, createComponent(Show, {
|
|
48
|
+
get when() {
|
|
49
|
+
return own.author;
|
|
50
|
+
},
|
|
51
|
+
get children() {
|
|
52
|
+
var _el$5 = _tmpl$2();
|
|
53
|
+
insert(_el$5, () => own.author);
|
|
54
|
+
return _el$5;
|
|
55
|
+
}
|
|
56
|
+
}), null);
|
|
57
|
+
insert(_el$4, createComponent(Show, {
|
|
58
|
+
get when() {
|
|
59
|
+
return own.datetime;
|
|
60
|
+
},
|
|
61
|
+
get children() {
|
|
62
|
+
var _el$6 = _tmpl$3();
|
|
63
|
+
insert(_el$6, () => own.datetime);
|
|
64
|
+
effect(() => setAttribute(_el$6, "datetime", own.datetime));
|
|
65
|
+
return _el$6;
|
|
66
|
+
}
|
|
67
|
+
}), null);
|
|
68
|
+
return _el$4;
|
|
69
|
+
}
|
|
70
|
+
}), _el$7);
|
|
71
|
+
insert(_el$7, () => own.children);
|
|
72
|
+
insert(_el$3, createComponent(Show, {
|
|
73
|
+
get when() {
|
|
74
|
+
return own.actions;
|
|
75
|
+
},
|
|
76
|
+
get children() {
|
|
77
|
+
var _el$8 = _tmpl$5();
|
|
78
|
+
insert(_el$8, () => own.actions);
|
|
79
|
+
return _el$8;
|
|
80
|
+
}
|
|
81
|
+
}), null);
|
|
82
|
+
return _el$;
|
|
83
|
+
})();
|
|
84
|
+
}
|
|
85
|
+
//#endregion
|
|
86
|
+
export { Comment };
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { ThemeScene } from "@bysages/core";
|
|
2
|
+
import { JSX } from "solid-js";
|
|
3
|
+
//#region src/components/config-provider/index.d.ts
|
|
4
|
+
/** The four density tiers the token layer's `[data-density]` selectors
|
|
5
|
+
* name — whitespace and control heights compress, readability never
|
|
6
|
+
* does. */
|
|
7
|
+
export type ConfigDensity = "compact" | "default" | "comfortable" | "spacious";
|
|
8
|
+
/** The named scene registers the token layer's `[data-scene]` selectors
|
|
9
|
+
* retune — "auto" is the engine's own resolution and stays off the
|
|
10
|
+
* subtree vocabulary. */
|
|
11
|
+
export type ConfigScene = Exclude<ThemeScene, "auto">;
|
|
12
|
+
/** The configuration a provider lays over its subtree. Every field is
|
|
13
|
+
* optional: an absent field changes nothing, and the page's own
|
|
14
|
+
* attributes keep ruling. */
|
|
15
|
+
export interface ConfigContext {
|
|
16
|
+
density?: ConfigDensity;
|
|
17
|
+
scene?: ConfigScene;
|
|
18
|
+
/** A mineral pigment theme (qinghua, celadon, zhusha, …) landing as
|
|
19
|
+
* `[data-accent]` on the host element. */
|
|
20
|
+
accent?: string;
|
|
21
|
+
/** Writing direction, landing as the native `dir` attribute. */
|
|
22
|
+
dir?: "ltr" | "rtl";
|
|
23
|
+
/** BCP-47 locale, landing as the native `lang` attribute. */
|
|
24
|
+
locale?: string;
|
|
25
|
+
}
|
|
26
|
+
/** Solid context for the provider's snapshot — a custom part reads it
|
|
27
|
+
* with `useContext(ConfigContextKey)`. */
|
|
28
|
+
export declare const ConfigContextKey: import("solid-js").Context<() => ConfigContext>;
|
|
29
|
+
/** The nearest provider's snapshot, or an empty one when no provider
|
|
30
|
+
* wraps the caller — the hook the date and format families will consume
|
|
31
|
+
* to localize their output. */
|
|
32
|
+
export declare function useConfig(): () => ConfigContext;
|
|
33
|
+
export interface ConfigProviderProps extends JSX.HTMLAttributes<HTMLDivElement> {
|
|
34
|
+
density?: ConfigDensity;
|
|
35
|
+
scene?: ConfigScene;
|
|
36
|
+
accent?: string;
|
|
37
|
+
dir?: "ltr" | "rtl";
|
|
38
|
+
locale?: string;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* The declarative host for global configuration: one element that both
|
|
42
|
+
* carries the token layer's attributes — `[data-density]` and
|
|
43
|
+
* `[data-accent]` fire on any element — and provides the same values to
|
|
44
|
+
* descendants through `useConfig`, so interactive behavior (formatting,
|
|
45
|
+
* messages) and visual theming stay one decision.
|
|
46
|
+
*/
|
|
47
|
+
export declare function ConfigProvider(props: ConfigProviderProps): JSX.Element;
|
|
48
|
+
//#endregion
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { createComponent, insert, mergeProps, spread, template } from "solid-js/web";
|
|
2
|
+
import { createContext, splitProps, useContext } from "solid-js";
|
|
3
|
+
//#region src/components/config-provider/index.tsx
|
|
4
|
+
var _tmpl$ = /*#__PURE__*/ template(`<div>`);
|
|
5
|
+
/** Solid context for the provider's snapshot — a custom part reads it
|
|
6
|
+
* with `useContext(ConfigContextKey)`. */
|
|
7
|
+
const ConfigContextKey = createContext(() => ({}));
|
|
8
|
+
/** The nearest provider's snapshot, or an empty one when no provider
|
|
9
|
+
* wraps the caller — the hook the date and format families will consume
|
|
10
|
+
* to localize their output. */
|
|
11
|
+
function useConfig() {
|
|
12
|
+
return useContext(ConfigContextKey);
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* The declarative host for global configuration: one element that both
|
|
16
|
+
* carries the token layer's attributes — `[data-density]` and
|
|
17
|
+
* `[data-accent]` fire on any element — and provides the same values to
|
|
18
|
+
* descendants through `useConfig`, so interactive behavior (formatting,
|
|
19
|
+
* messages) and visual theming stay one decision.
|
|
20
|
+
*/
|
|
21
|
+
function ConfigProvider(props) {
|
|
22
|
+
const [own, rest] = splitProps(props, [
|
|
23
|
+
"density",
|
|
24
|
+
"scene",
|
|
25
|
+
"accent",
|
|
26
|
+
"dir",
|
|
27
|
+
"locale",
|
|
28
|
+
"children"
|
|
29
|
+
]);
|
|
30
|
+
return createComponent(ConfigContextKey.Provider, {
|
|
31
|
+
value: () => ({
|
|
32
|
+
density: own.density,
|
|
33
|
+
scene: own.scene,
|
|
34
|
+
accent: own.accent,
|
|
35
|
+
dir: own.dir,
|
|
36
|
+
locale: own.locale
|
|
37
|
+
}),
|
|
38
|
+
get children() {
|
|
39
|
+
var _el$ = _tmpl$();
|
|
40
|
+
spread(_el$, mergeProps(rest, {
|
|
41
|
+
"data-scope": "config-provider",
|
|
42
|
+
"data-part": "root",
|
|
43
|
+
get ["data-density"]() {
|
|
44
|
+
return own.density;
|
|
45
|
+
},
|
|
46
|
+
get ["data-scene"]() {
|
|
47
|
+
return own.scene;
|
|
48
|
+
},
|
|
49
|
+
get ["data-accent"]() {
|
|
50
|
+
return own.accent;
|
|
51
|
+
},
|
|
52
|
+
get dir() {
|
|
53
|
+
return own.dir;
|
|
54
|
+
},
|
|
55
|
+
get lang() {
|
|
56
|
+
return own.locale;
|
|
57
|
+
}
|
|
58
|
+
}), false, true);
|
|
59
|
+
insert(_el$, () => own.children);
|
|
60
|
+
return _el$;
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
//#endregion
|
|
65
|
+
export { ConfigContextKey, ConfigProvider, useConfig };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { JSX } from "solid-js";
|
|
2
|
+
//#region src/components/container/index.d.ts
|
|
3
|
+
/** The reading frame: content held to a measure and centered on the
|
|
4
|
+
* page. The sizes name typographic measures, not breakpoints — the page
|
|
5
|
+
* owns its edges, the container only owns how long a line of ink runs. */
|
|
6
|
+
export interface ContainerProps extends JSX.HTMLAttributes<HTMLDivElement> {
|
|
7
|
+
size?: "narrow" | "readable" | "wide" | "full";
|
|
8
|
+
/** Keep the ink off the page edges when the viewport runs narrower
|
|
9
|
+
* than the measure. */
|
|
10
|
+
padding?: boolean;
|
|
11
|
+
}
|
|
12
|
+
export declare function Container(props: ContainerProps): JSX.Element;
|
|
13
|
+
//#endregion
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { injectComponentStyle } from "@bysages/core";
|
|
2
|
+
import { mergeProps, spread, template } from "solid-js/web";
|
|
3
|
+
import { splitProps } from "solid-js";
|
|
4
|
+
//#region src/components/container/index.tsx
|
|
5
|
+
var _tmpl$ = /*#__PURE__*/ template(`<div>`);
|
|
6
|
+
function Container(props) {
|
|
7
|
+
injectComponentStyle("container");
|
|
8
|
+
const [own, rest] = splitProps(props, ["size", "padding"]);
|
|
9
|
+
return (() => {
|
|
10
|
+
var _el$ = _tmpl$();
|
|
11
|
+
spread(_el$, mergeProps(rest, {
|
|
12
|
+
"data-scope": "container",
|
|
13
|
+
"data-part": "root",
|
|
14
|
+
get ["data-size"]() {
|
|
15
|
+
return own.size ?? "readable";
|
|
16
|
+
},
|
|
17
|
+
get ["data-padding"]() {
|
|
18
|
+
return own.padding === false ? void 0 : "";
|
|
19
|
+
}
|
|
20
|
+
}), false, false);
|
|
21
|
+
return _el$;
|
|
22
|
+
})();
|
|
23
|
+
}
|
|
24
|
+
//#endregion
|
|
25
|
+
export { Container };
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { DateInput as DateInput$1, DateInputRootProps } from "@ark-ui/solid/date-input";
|
|
2
|
+
//#region src/components/date-input/index.d.ts
|
|
3
|
+
/** Ark's DateInput, dressed in the paper-and-ink system: a segmented
|
|
4
|
+
* field where the focused segment takes the flat ink fill. The API is
|
|
5
|
+
* Ark's own — Root, Label, Control, SegmentGroup, Segment, SegmentContext,
|
|
6
|
+
* HiddenInput. */
|
|
7
|
+
type DateInputOwnProps = {
|
|
8
|
+
/** One rung of the control-height ladder for the segmented field. */
|
|
9
|
+
size?: "sm" | "md" | "lg";
|
|
10
|
+
};
|
|
11
|
+
declare function DateInputRoot(props: DateInputRootProps & DateInputOwnProps): import("solid-js").JSX.Element;
|
|
12
|
+
export declare const DateInput: Omit<typeof DateInput$1, "Root"> & {
|
|
13
|
+
Root: typeof DateInputRoot;
|
|
14
|
+
};
|
|
15
|
+
//#endregion
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { injectComponentStyle } from "@bysages/core";
|
|
2
|
+
import { createComponent, mergeProps } from "solid-js/web";
|
|
3
|
+
import { splitProps } from "solid-js";
|
|
4
|
+
import { DateInput as DateInput$1 } from "@ark-ui/solid/date-input";
|
|
5
|
+
//#region src/components/date-input/index.tsx
|
|
6
|
+
function DateInputRoot(props) {
|
|
7
|
+
const [own, rest] = splitProps(props, ["size"]);
|
|
8
|
+
return createComponent(DateInput$1.Root, mergeProps(rest, { get ["data-size"]() {
|
|
9
|
+
return own.size ?? "md";
|
|
10
|
+
} }));
|
|
11
|
+
}
|
|
12
|
+
const DateInput = {
|
|
13
|
+
...DateInput$1,
|
|
14
|
+
Root: DateInputRoot
|
|
15
|
+
};
|
|
16
|
+
injectComponentStyle("date-input");
|
|
17
|
+
//#endregion
|
|
18
|
+
export { DateInput };
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { DatePicker as DatePicker$1, DatePickerRootProps } from "@ark-ui/solid/date-picker";
|
|
2
|
+
//#region src/components/date-picker/index.d.ts
|
|
3
|
+
/** Ark's DatePicker, dressed in the paper-and-ink system: the popup
|
|
4
|
+
* dissolves in on elevation, selected days take the flat ink fill, and
|
|
5
|
+
* range middles run subtle with cut corners. The API is Ark's own —
|
|
6
|
+
* Root, Label, Control, Input, Trigger, ClearTrigger, Positioner,
|
|
7
|
+
* Content, View, ViewControl, ViewTrigger, RangeText, PrevTrigger,
|
|
8
|
+
* NextTrigger, Table*, MonthSelect, YearSelect, PresetTrigger. */
|
|
9
|
+
type DatePickerOwnProps = {
|
|
10
|
+
/** One rung of the control-height ladder for the field row. */
|
|
11
|
+
size?: "sm" | "md" | "lg";
|
|
12
|
+
};
|
|
13
|
+
declare function DatePickerRoot(props: DatePickerRootProps & DatePickerOwnProps): import("solid-js").JSX.Element;
|
|
14
|
+
export declare const DatePicker: Omit<typeof DatePicker$1, "Root"> & {
|
|
15
|
+
Root: typeof DatePickerRoot;
|
|
16
|
+
};
|
|
17
|
+
//#endregion
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { injectComponentStyle } from "@bysages/core";
|
|
2
|
+
import { createComponent, mergeProps } from "solid-js/web";
|
|
3
|
+
import { splitProps } from "solid-js";
|
|
4
|
+
import { DatePicker as DatePicker$1 } from "@ark-ui/solid/date-picker";
|
|
5
|
+
//#region src/components/date-picker/index.tsx
|
|
6
|
+
function DatePickerRoot(props) {
|
|
7
|
+
const [own, rest] = splitProps(props, ["size"]);
|
|
8
|
+
return createComponent(DatePicker$1.Root, mergeProps(rest, { get ["data-size"]() {
|
|
9
|
+
return own.size ?? "md";
|
|
10
|
+
} }));
|
|
11
|
+
}
|
|
12
|
+
const DatePicker = {
|
|
13
|
+
...DatePicker$1,
|
|
14
|
+
Root: DatePickerRoot
|
|
15
|
+
};
|
|
16
|
+
injectComponentStyle("date-picker");
|
|
17
|
+
//#endregion
|
|
18
|
+
export { DatePicker };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { JSX } from "solid-js";
|
|
2
|
+
//#region src/components/descriptions/index.d.ts
|
|
3
|
+
/**
|
|
4
|
+
* A ledger laid flat: term and detail pairs in one quiet grid. The
|
|
5
|
+
* horizontal layout reads as a table of two columns; the vertical one
|
|
6
|
+
* stacks each pair for narrow measures.
|
|
7
|
+
*/
|
|
8
|
+
export interface DescriptionsRootProps extends JSX.HTMLAttributes<HTMLDListElement> {
|
|
9
|
+
layout?: "horizontal" | "vertical";
|
|
10
|
+
}
|
|
11
|
+
declare function Root(props: DescriptionsRootProps): JSX.Element;
|
|
12
|
+
export declare const Descriptions: typeof Root & {
|
|
13
|
+
Root: typeof Root;
|
|
14
|
+
Item: (props: JSX.HTMLAttributes<HTMLDivElement>) => JSX.Element;
|
|
15
|
+
Term: (props: JSX.HTMLAttributes<HTMLDivElement>) => JSX.Element;
|
|
16
|
+
Detail: (props: JSX.HTMLAttributes<HTMLDivElement>) => JSX.Element;
|
|
17
|
+
};
|
|
18
|
+
//#endregion
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { injectComponentStyle } from "@bysages/core";
|
|
2
|
+
import { createComponent, mergeProps, spread, template } from "solid-js/web";
|
|
3
|
+
import { splitProps } from "solid-js";
|
|
4
|
+
//#region src/components/descriptions/index.tsx
|
|
5
|
+
var _tmpl$ = /*#__PURE__*/ template(`<dl>`);
|
|
6
|
+
function Root(props) {
|
|
7
|
+
const [own, rest] = splitProps(props, ["layout"]);
|
|
8
|
+
return (() => {
|
|
9
|
+
var _el$ = _tmpl$();
|
|
10
|
+
spread(_el$, mergeProps(rest, {
|
|
11
|
+
"data-scope": "descriptions",
|
|
12
|
+
"data-part": "root",
|
|
13
|
+
get ["data-layout"]() {
|
|
14
|
+
return own.layout ?? "horizontal";
|
|
15
|
+
}
|
|
16
|
+
}), false, false);
|
|
17
|
+
return _el$;
|
|
18
|
+
})();
|
|
19
|
+
}
|
|
20
|
+
function part(name, tag) {
|
|
21
|
+
function Component(props) {
|
|
22
|
+
return createComponent(tag, mergeProps(props, {
|
|
23
|
+
"data-scope": "descriptions",
|
|
24
|
+
get ["data-part"]() {
|
|
25
|
+
return name.toLowerCase();
|
|
26
|
+
}
|
|
27
|
+
}));
|
|
28
|
+
}
|
|
29
|
+
return Component;
|
|
30
|
+
}
|
|
31
|
+
const Item = part("Item", "div");
|
|
32
|
+
const Term = part("Term", "dt");
|
|
33
|
+
const Detail = part("Detail", "dd");
|
|
34
|
+
const Descriptions = Object.assign(Root, {
|
|
35
|
+
Root,
|
|
36
|
+
Item,
|
|
37
|
+
Term,
|
|
38
|
+
Detail
|
|
39
|
+
});
|
|
40
|
+
injectComponentStyle("descriptions");
|
|
41
|
+
//#endregion
|
|
42
|
+
export { Descriptions };
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Dialog as Dialog$1, DialogOpenChangeDetails } from "@ark-ui/solid/dialog";
|
|
2
|
+
//#region src/components/dialog/index.d.ts
|
|
3
|
+
/** Ark's Dialog, dressed in the paper-and-ink system: the sheet dissolves
|
|
4
|
+
* in on elevation, the backdrop fades, and nested overlays stack through
|
|
5
|
+
* the shared z-index ladder. The API is Ark's own — Root, Trigger,
|
|
6
|
+
* Backdrop, Positioner, Content, Title, Description, CloseTrigger. */
|
|
7
|
+
export declare const Dialog: typeof Dialog$1;
|
|
8
|
+
//#endregion
|
|
9
|
+
export type { DialogOpenChangeDetails };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { injectComponentStyle } from "@bysages/core";
|
|
2
|
+
import { Dialog as Dialog$1 } from "@ark-ui/solid/dialog";
|
|
3
|
+
//#region src/components/dialog/index.ts
|
|
4
|
+
/** Ark's Dialog, dressed in the paper-and-ink system: the sheet dissolves
|
|
5
|
+
* in on elevation, the backdrop fades, and nested overlays stack through
|
|
6
|
+
* the shared z-index ladder. The API is Ark's own — Root, Trigger,
|
|
7
|
+
* Backdrop, Positioner, Content, Title, Description, CloseTrigger. */
|
|
8
|
+
const Dialog = Dialog$1;
|
|
9
|
+
injectComponentStyle("dialog");
|
|
10
|
+
//#endregion
|
|
11
|
+
export { Dialog };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { DownloadTrigger, DownloadTriggerBaseProps, DownloadTriggerProps, DownloadableData, UseDownloadProps, UseDownloadReturn, useDownload } from "@ark-ui/solid/download-trigger";
|
|
2
|
+
export { DownloadTrigger, type DownloadTriggerBaseProps, type DownloadTriggerProps, type DownloadableData, type UseDownloadProps, type UseDownloadReturn, useDownload };
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Drawer as Drawer$1 } from "@ark-ui/solid/drawer";
|
|
2
|
+
//#region src/components/drawer/index.d.ts
|
|
3
|
+
/** Ark's Drawer, dressed in the paper-and-ink system: a full-height sheet
|
|
4
|
+
* cut flush to the edge it rises from, sliding on the machine's translate
|
|
5
|
+
* under the grabber's hand. The API is Ark's own — Root, Trigger,
|
|
6
|
+
* Backdrop, Positioner, Content, Grabber, GrabberIndicator, Title,
|
|
7
|
+
* Description, CloseTrigger, SwipeArea. */
|
|
8
|
+
export declare const Drawer: typeof Drawer$1;
|
|
9
|
+
//#endregion
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { injectComponentStyle } from "@bysages/core";
|
|
2
|
+
import { Drawer as Drawer$1 } from "@ark-ui/solid/drawer";
|
|
3
|
+
//#region src/components/drawer/index.ts
|
|
4
|
+
/** Ark's Drawer, dressed in the paper-and-ink system: a full-height sheet
|
|
5
|
+
* cut flush to the edge it rises from, sliding on the machine's translate
|
|
6
|
+
* under the grabber's hand. The API is Ark's own — Root, Trigger,
|
|
7
|
+
* Backdrop, Positioner, Content, Grabber, GrabberIndicator, Title,
|
|
8
|
+
* Description, CloseTrigger, SwipeArea. */
|
|
9
|
+
const Drawer = Drawer$1;
|
|
10
|
+
injectComponentStyle("drawer");
|
|
11
|
+
//#endregion
|
|
12
|
+
export { Drawer };
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { JSX } from "solid-js";
|
|
2
|
+
//#region src/components/dynamic-input/index.d.ts
|
|
3
|
+
export interface DynamicInputProps extends JSX.HTMLAttributes<HTMLDivElement> {
|
|
4
|
+
/** The rows' values; the group renders one Input per entry. */
|
|
5
|
+
value?: string[];
|
|
6
|
+
/** The fewest rows the group keeps; the remove seals yield first. */
|
|
7
|
+
min?: number;
|
|
8
|
+
/** The most rows the group grows to; the add control yields then. */
|
|
9
|
+
max?: number;
|
|
10
|
+
placeholder?: string;
|
|
11
|
+
/** The add control's visible words. */
|
|
12
|
+
addLabel?: string;
|
|
13
|
+
/** One rung of the ladder, handed to every row's field and seals. */
|
|
14
|
+
size?: "sm" | "md" | "lg";
|
|
15
|
+
disabled?: boolean;
|
|
16
|
+
invalid?: boolean;
|
|
17
|
+
/** Every edit emits a fresh array; the caller's array stays the only
|
|
18
|
+
* truth. */
|
|
19
|
+
onValueChange?: (value: string[]) => void;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* A column of entry rows: one Input per line, each with a quiet remove
|
|
23
|
+
* seal, and an add row at the tail. The list is controlled — every edit
|
|
24
|
+
* calls `onValueChange` with a fresh array and the caller's array stays
|
|
25
|
+
* the only truth. Deleting never drops below `min`, adding never grows
|
|
26
|
+
* past `max`, and the group always keeps one row: an entry list that
|
|
27
|
+
* emptied itself would leave the reader no place to type.
|
|
28
|
+
*/
|
|
29
|
+
export declare function DynamicInput(props: DynamicInputProps): JSX.Element;
|
|
30
|
+
//#endregion
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { Button } from "../button/index.mjs";
|
|
2
|
+
import { Input } from "../input/index.mjs";
|
|
3
|
+
import { injectComponentStyle } from "@bysages/core";
|
|
4
|
+
import { createComponent, insert, memo, mergeProps, spread, template } from "solid-js/web";
|
|
5
|
+
import { Index, splitProps } from "solid-js";
|
|
6
|
+
//#region src/components/dynamic-input/index.tsx
|
|
7
|
+
var _tmpl$ = /*#__PURE__*/ template(`<div><div data-scope=dynamic-input data-part=add>`);
|
|
8
|
+
var _tmpl$2 = /*#__PURE__*/ template(`<div data-scope=dynamic-input data-part=row>`);
|
|
9
|
+
var _tmpl$3 = /*#__PURE__*/ template(`<svg width=16 height=16 viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=1.75 stroke-linecap=round stroke-linejoin=round aria-hidden=true><path d="M18 6 6 18M6 6l12 12">`);
|
|
10
|
+
/**
|
|
11
|
+
* A column of entry rows: one Input per line, each with a quiet remove
|
|
12
|
+
* seal, and an add row at the tail. The list is controlled — every edit
|
|
13
|
+
* calls `onValueChange` with a fresh array and the caller's array stays
|
|
14
|
+
* the only truth. Deleting never drops below `min`, adding never grows
|
|
15
|
+
* past `max`, and the group always keeps one row: an entry list that
|
|
16
|
+
* emptied itself would leave the reader no place to type.
|
|
17
|
+
*/
|
|
18
|
+
function DynamicInput(props) {
|
|
19
|
+
injectComponentStyle("dynamic-input");
|
|
20
|
+
const [own, rest] = splitProps(props, [
|
|
21
|
+
"value",
|
|
22
|
+
"min",
|
|
23
|
+
"max",
|
|
24
|
+
"placeholder",
|
|
25
|
+
"size",
|
|
26
|
+
"addLabel",
|
|
27
|
+
"disabled",
|
|
28
|
+
"invalid",
|
|
29
|
+
"onValueChange",
|
|
30
|
+
"children"
|
|
31
|
+
]);
|
|
32
|
+
const values = () => own.value ?? [""];
|
|
33
|
+
const update = (index, value) => {
|
|
34
|
+
const next = values().slice();
|
|
35
|
+
next[index] = value;
|
|
36
|
+
own.onValueChange?.(next);
|
|
37
|
+
};
|
|
38
|
+
const remove = (index) => {
|
|
39
|
+
const next = values().filter((_, i) => i !== index);
|
|
40
|
+
own.onValueChange?.(next.length > 0 ? next : [""]);
|
|
41
|
+
};
|
|
42
|
+
const add = () => {
|
|
43
|
+
own.onValueChange?.([...values(), ""]);
|
|
44
|
+
};
|
|
45
|
+
const canRemove = () => values().length > Math.max(own.min ?? 0, 1);
|
|
46
|
+
const canAdd = () => own.max === void 0 || values().length < own.max;
|
|
47
|
+
return (() => {
|
|
48
|
+
var _el$ = _tmpl$(), _el$2 = _el$.firstChild;
|
|
49
|
+
spread(_el$, mergeProps(rest, {
|
|
50
|
+
"data-scope": "dynamic-input",
|
|
51
|
+
"data-part": "root"
|
|
52
|
+
}), false, true);
|
|
53
|
+
insert(_el$, createComponent(Index, {
|
|
54
|
+
get each() {
|
|
55
|
+
return values();
|
|
56
|
+
},
|
|
57
|
+
children: (value, index) => (() => {
|
|
58
|
+
var _el$3 = _tmpl$2();
|
|
59
|
+
insert(_el$3, createComponent(Input, {
|
|
60
|
+
get value() {
|
|
61
|
+
return value();
|
|
62
|
+
},
|
|
63
|
+
get placeholder() {
|
|
64
|
+
return own.placeholder;
|
|
65
|
+
},
|
|
66
|
+
get disabled() {
|
|
67
|
+
return own.disabled;
|
|
68
|
+
},
|
|
69
|
+
get invalid() {
|
|
70
|
+
return own.invalid;
|
|
71
|
+
},
|
|
72
|
+
get size() {
|
|
73
|
+
return own.size ?? "md";
|
|
74
|
+
},
|
|
75
|
+
onValueChange: (next) => update(index, next)
|
|
76
|
+
}), null);
|
|
77
|
+
insert(_el$3, createComponent(Button, {
|
|
78
|
+
variant: "ghost",
|
|
79
|
+
get size() {
|
|
80
|
+
return own.size ?? "md";
|
|
81
|
+
},
|
|
82
|
+
square: true,
|
|
83
|
+
get disabled() {
|
|
84
|
+
return own.disabled || !canRemove();
|
|
85
|
+
},
|
|
86
|
+
"aria-label": `Remove entry ${index + 1}`,
|
|
87
|
+
onClick: () => remove(index),
|
|
88
|
+
get children() {
|
|
89
|
+
return crossIcon();
|
|
90
|
+
}
|
|
91
|
+
}), null);
|
|
92
|
+
return _el$3;
|
|
93
|
+
})()
|
|
94
|
+
}), _el$2);
|
|
95
|
+
insert(_el$2, createComponent(Button, {
|
|
96
|
+
variant: "ghost",
|
|
97
|
+
get size() {
|
|
98
|
+
return own.size ?? "md";
|
|
99
|
+
},
|
|
100
|
+
get disabled() {
|
|
101
|
+
return own.disabled || !canAdd();
|
|
102
|
+
},
|
|
103
|
+
onClick: () => add(),
|
|
104
|
+
get children() {
|
|
105
|
+
return ["+", memo(() => own.addLabel ?? "Add entry")];
|
|
106
|
+
}
|
|
107
|
+
}));
|
|
108
|
+
return _el$;
|
|
109
|
+
})();
|
|
110
|
+
}
|
|
111
|
+
/** The one glyph a remove seal needs: a single crossing stroke. */
|
|
112
|
+
function crossIcon() {
|
|
113
|
+
return _tmpl$3();
|
|
114
|
+
}
|
|
115
|
+
//#endregion
|
|
116
|
+
export { DynamicInput };
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Editable as Editable$1, EditableRootProps } from "@ark-ui/solid/editable";
|
|
2
|
+
//#region src/components/editable/index.d.ts
|
|
3
|
+
/** Ark's Editable, dressed in the paper-and-ink system: bare ink while
|
|
4
|
+
* reading, the full field recipe while editing. The API is Ark's own —
|
|
5
|
+
* Root, Area, Label, Preview, Input, EditTrigger, SubmitTrigger,
|
|
6
|
+
* CancelTrigger, Control. */
|
|
7
|
+
type EditableOwnProps = {
|
|
8
|
+
/** One rung of the control-height ladder for the editing field. */
|
|
9
|
+
size?: "sm" | "md" | "lg";
|
|
10
|
+
};
|
|
11
|
+
declare function EditableRoot(props: EditableRootProps & EditableOwnProps): import("solid-js").JSX.Element;
|
|
12
|
+
export declare const Editable: Omit<typeof Editable$1, "Root"> & {
|
|
13
|
+
Root: typeof EditableRoot;
|
|
14
|
+
};
|
|
15
|
+
//#endregion
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { injectComponentStyle } from "@bysages/core";
|
|
2
|
+
import { createComponent, mergeProps } from "solid-js/web";
|
|
3
|
+
import { splitProps } from "solid-js";
|
|
4
|
+
import { Editable as Editable$1 } from "@ark-ui/solid/editable";
|
|
5
|
+
//#region src/components/editable/index.tsx
|
|
6
|
+
function EditableRoot(props) {
|
|
7
|
+
const [own, rest] = splitProps(props, ["size"]);
|
|
8
|
+
return createComponent(Editable$1.Root, mergeProps(rest, { get ["data-size"]() {
|
|
9
|
+
return own.size ?? "md";
|
|
10
|
+
} }));
|
|
11
|
+
}
|
|
12
|
+
const Editable = {
|
|
13
|
+
...Editable$1,
|
|
14
|
+
Root: EditableRoot
|
|
15
|
+
};
|
|
16
|
+
injectComponentStyle("editable");
|
|
17
|
+
//#endregion
|
|
18
|
+
export { Editable };
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { JSX } from "solid-js";
|
|
2
|
+
//#region src/components/ellipsis/index.d.ts
|
|
3
|
+
/** The overflow knife: text cut at one line, or held to N lines. The
|
|
4
|
+
* primitive only draws the cut — reaching the full text (title,
|
|
5
|
+
* tooltip) stays the consumer's decision. */
|
|
6
|
+
export interface EllipsisProps extends JSX.HTMLAttributes<HTMLSpanElement> {
|
|
7
|
+
lines?: number;
|
|
8
|
+
}
|
|
9
|
+
export declare function Ellipsis(props: EllipsisProps): JSX.Element;
|
|
10
|
+
//#endregion
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { injectComponentStyle } from "@bysages/core";
|
|
2
|
+
import { mergeProps, spread, template } from "solid-js/web";
|
|
3
|
+
import { splitProps } from "solid-js";
|
|
4
|
+
//#region src/components/ellipsis/index.tsx
|
|
5
|
+
var _tmpl$ = /*#__PURE__*/ template(`<span>`);
|
|
6
|
+
function Ellipsis(props) {
|
|
7
|
+
injectComponentStyle("ellipsis");
|
|
8
|
+
const [own, rest] = splitProps(props, ["lines"]);
|
|
9
|
+
const multiline = () => (own.lines ?? 1) > 1;
|
|
10
|
+
return (() => {
|
|
11
|
+
var _el$ = _tmpl$();
|
|
12
|
+
spread(_el$, mergeProps(rest, {
|
|
13
|
+
get style() {
|
|
14
|
+
return {
|
|
15
|
+
...rest.style,
|
|
16
|
+
...multiline() ? { "--bs-ellipsis-lines": String(own.lines) } : {}
|
|
17
|
+
};
|
|
18
|
+
},
|
|
19
|
+
"data-scope": "ellipsis",
|
|
20
|
+
"data-part": "root",
|
|
21
|
+
get ["data-multiline"]() {
|
|
22
|
+
return multiline() ? "" : void 0;
|
|
23
|
+
}
|
|
24
|
+
}), false, false);
|
|
25
|
+
return _el$;
|
|
26
|
+
})();
|
|
27
|
+
}
|
|
28
|
+
//#endregion
|
|
29
|
+
export { Ellipsis };
|