@bysages/solid 0.2.3 → 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.
Files changed (140) hide show
  1. package/README.md +16 -2
  2. package/dist/{ai-response-B_586r27.mjs → ai-response-ClGGptX3.mjs} +15 -15
  3. package/dist/chevron-D5RzcayK.mjs +9 -0
  4. package/dist/components/affix/index.mjs +15 -17
  5. package/dist/components/ai/index.d.mts +1 -1
  6. package/dist/components/ai/index.mjs +12 -10
  7. package/dist/components/ai-action/index.mjs +2 -2
  8. package/dist/components/ai-attachments/index.mjs +50 -38
  9. package/dist/components/ai-message/index.mjs +11 -13
  10. package/dist/components/ai-prompt-input/index.mjs +70 -53
  11. package/dist/components/ai-reasoning/index.mjs +10 -6
  12. package/dist/components/ai-response/index.mjs +1 -1
  13. package/dist/components/ai-source/index.mjs +23 -23
  14. package/dist/components/ai-suggestion/index.mjs +1 -1
  15. package/dist/components/ai-tool/index.mjs +29 -17
  16. package/dist/components/alert/index.mjs +37 -42
  17. package/dist/components/angle-slider/index.mjs +2 -2
  18. package/dist/components/aspect-ratio/index.mjs +14 -16
  19. package/dist/components/autocomplete/index.mjs +3 -2
  20. package/dist/components/avatar/index.d.mts +3 -0
  21. package/dist/components/avatar/index.mjs +10 -5
  22. package/dist/components/avatar-group/index.mjs +11 -13
  23. package/dist/components/back-top/index.mjs +31 -27
  24. package/dist/components/badge/index.mjs +14 -16
  25. package/dist/components/banner/index.mjs +24 -28
  26. package/dist/components/bento/index.d.mts +24 -0
  27. package/dist/components/bento/index.mjs +51 -0
  28. package/dist/components/block-ui/index.d.mts +12 -0
  29. package/dist/components/block-ui/index.mjs +43 -0
  30. package/dist/components/breadcrumb/index.mjs +7 -5
  31. package/dist/components/browser/index.d.mts +21 -0
  32. package/dist/components/browser/index.mjs +87 -0
  33. package/dist/components/button/index.mjs +27 -29
  34. package/dist/components/button-group/index.mjs +18 -20
  35. package/dist/components/calendar/index.mjs +141 -129
  36. package/dist/components/card/index.mjs +2 -2
  37. package/dist/components/cascade-select/index.mjs +160 -121
  38. package/dist/components/checkbox/index.mjs +2 -2
  39. package/dist/components/checkbox-group/index.mjs +53 -55
  40. package/dist/components/chip/index.mjs +22 -20
  41. package/dist/components/clipboard/index.mjs +2 -2
  42. package/dist/components/color-picker/index.mjs +2 -2
  43. package/dist/components/combobox/index.mjs +2 -2
  44. package/dist/components/command/index.mjs +73 -57
  45. package/dist/components/comment/index.mjs +77 -62
  46. package/dist/components/config-provider/index.mjs +10 -8
  47. package/dist/components/container/index.mjs +14 -16
  48. package/dist/components/data-view/index.d.mts +18 -0
  49. package/dist/components/data-view/index.mjs +110 -0
  50. package/dist/components/date-input/index.mjs +2 -2
  51. package/dist/components/date-picker/index.mjs +2 -2
  52. package/dist/components/deferred-content/index.d.mts +16 -0
  53. package/dist/components/deferred-content/index.mjs +52 -0
  54. package/dist/components/descriptions/index.d.mts +9 -1
  55. package/dist/components/descriptions/index.mjs +43 -16
  56. package/dist/components/dock/index.d.mts +22 -0
  57. package/dist/components/dock/index.mjs +64 -0
  58. package/dist/components/dynamic-input/index.mjs +71 -68
  59. package/dist/components/editable/index.mjs +2 -2
  60. package/dist/components/ellipsis/index.mjs +17 -19
  61. package/dist/components/empty/index.mjs +2 -2
  62. package/dist/components/file-upload/index.mjs +2 -2
  63. package/dist/components/float-button/index.mjs +39 -38
  64. package/dist/components/form/index.d.mts +1 -1
  65. package/dist/components/form/index.mjs +52 -37
  66. package/dist/components/grid/index.mjs +19 -21
  67. package/dist/components/icon/index.d.mts +9 -4
  68. package/dist/components/icon/index.mjs +37 -36
  69. package/dist/components/image/index.mjs +44 -43
  70. package/dist/components/image-viewer/index.mjs +46 -37
  71. package/dist/components/input/index.d.mts +3 -0
  72. package/dist/components/input/index.mjs +1 -41
  73. package/dist/components/input-group/index.mjs +14 -18
  74. package/dist/components/kbd/index.mjs +8 -10
  75. package/dist/components/layout/index.mjs +77 -77
  76. package/dist/components/link/index.mjs +12 -13
  77. package/dist/components/list/index.mjs +52 -47
  78. package/dist/components/listbox/index.mjs +2 -2
  79. package/dist/components/masonry/index.mjs +15 -17
  80. package/dist/components/mentions/index.mjs +1 -1
  81. package/dist/components/menu/index.mjs +2 -2
  82. package/dist/components/menubar/index.mjs +58 -57
  83. package/dist/components/meter/index.mjs +41 -41
  84. package/dist/components/number-input/index.mjs +2 -2
  85. package/dist/components/order-list/index.d.mts +21 -0
  86. package/dist/components/order-list/index.mjs +160 -0
  87. package/dist/components/page-header/index.mjs +2 -2
  88. package/dist/components/pagination/index.mjs +2 -2
  89. package/dist/components/password-input/index.mjs +2 -2
  90. package/dist/components/pin-input/index.mjs +2 -2
  91. package/dist/components/popconfirm/index.mjs +19 -12
  92. package/dist/components/progress/index.mjs +2 -2
  93. package/dist/components/progress-group/index.mjs +65 -58
  94. package/dist/components/radio-group/index.mjs +2 -2
  95. package/dist/components/rating-group/index.mjs +2 -2
  96. package/dist/components/result/index.d.mts +22 -0
  97. package/dist/components/result/index.mjs +66 -0
  98. package/dist/components/select/index.d.mts +2 -17
  99. package/dist/components/select/index.mjs +2 -18
  100. package/dist/components/separator/index.mjs +17 -19
  101. package/dist/components/skeleton/index.mjs +8 -10
  102. package/dist/components/slider/index.mjs +2 -2
  103. package/dist/components/spinner/index.mjs +15 -17
  104. package/dist/components/split-button/index.mjs +84 -83
  105. package/dist/components/spotlight/index.d.mts +11 -0
  106. package/dist/components/spotlight/index.mjs +38 -0
  107. package/dist/components/stack/index.mjs +20 -22
  108. package/dist/components/stat/index.mjs +12 -14
  109. package/dist/components/steps/index.mjs +2 -2
  110. package/dist/components/switch/index.mjs +2 -2
  111. package/dist/components/table/index.mjs +308 -211
  112. package/dist/components/tabs/index.d.mts +2 -0
  113. package/dist/components/tabs/index.mjs +10 -5
  114. package/dist/components/tags-input/index.mjs +2 -2
  115. package/dist/components/terminal/index.d.mts +17 -0
  116. package/dist/components/terminal/index.mjs +84 -0
  117. package/dist/components/textarea/index.mjs +8 -8
  118. package/dist/components/timeline/index.d.mts +9 -3
  119. package/dist/components/timeline/index.mjs +18 -3
  120. package/dist/components/toggle-group/index.mjs +2 -2
  121. package/dist/components/toolbar/index.d.mts +17 -0
  122. package/dist/components/toolbar/index.mjs +46 -0
  123. package/dist/components/transfer/index.mjs +116 -107
  124. package/dist/components/tree-select/index.mjs +29 -21
  125. package/dist/components/tree-view/index.mjs +2 -2
  126. package/dist/components/typography/index.mjs +2 -2
  127. package/dist/components/user/index.d.mts +19 -0
  128. package/dist/components/user/index.mjs +68 -0
  129. package/dist/components/virtual-list/index.d.mts +17 -0
  130. package/dist/components/virtual-list/index.mjs +71 -0
  131. package/dist/components/watermark/index.mjs +19 -13
  132. package/dist/{index-B4XS2n2y.d.mts → index-IfofF-SW.d.mts} +718 -3773
  133. package/dist/index-YPUiqD3n.d.mts +42 -0
  134. package/dist/index.d.mts +16 -3
  135. package/dist/index.mjs +20 -7
  136. package/dist/input-DoFQ7RXh.mjs +78 -0
  137. package/dist/{mentions-xbI6vJAP.mjs → mentions-f5Js_2W7.mjs} +76 -70
  138. package/dist/select-CHaXbzLX.mjs +115 -0
  139. package/package.json +28 -7
  140. package/dist/chevron-GWEoEYdO.mjs +0 -9
@@ -0,0 +1,66 @@
1
+ import { injectComponentStyle } from "@bysages/core";
2
+ import { createComponent, effect, insert, mergeProps, spread, template } from "@solidjs/web";
3
+ import { splitProps } from "solid-js";
4
+ //#region src/components/result/index.tsx
5
+ var _tmpl$ = /* @__PURE__ */ template(`<div>`);
6
+ var _tmpl$2 = /* @__PURE__ */ template(`<svg width=24 height=24 viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=1.5 stroke-linecap=round stroke-linejoin=round aria-hidden=true>`);
7
+ const MARK = { __html: "<g data-for=\"success\"><path d=\"M20 6 9 17l-5-5\"/></g><g data-for=\"warning\"><path d=\"M10.29 3.86 1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0Z\"/><path d=\"M12 9v4\"/><path d=\"M12 17h.01\"/></g><g data-for=\"danger\"><circle cx=\"12\" cy=\"12\" r=\"10\"/><path d=\"m15 9-6 6\"/><path d=\"m9 9 6 6\"/></g><g data-for=\"info\"><circle cx=\"12\" cy=\"12\" r=\"10\"/><path d=\"M12 16v-4\"/><path d=\"M12 8h.01\"/></g>" };
8
+ function ResultRoot(props) {
9
+ injectComponentStyle("result");
10
+ const [own, rest] = splitProps(props, ["status"]);
11
+ var _el$ = _tmpl$();
12
+ spread(_el$, [rest, {
13
+ "data-scope": "result",
14
+ "data-part": "root",
15
+ get "data-status"() {
16
+ return own.status ?? "info";
17
+ }
18
+ }], false);
19
+ return _el$;
20
+ }
21
+ /** The mark carries all four verdicts and lets the root choose, so the
22
+ * icon can never drift from the status the root declares. */
23
+ function ResultIcon(props) {
24
+ injectComponentStyle("result");
25
+ const [own, rest] = splitProps(props, ["children"]);
26
+ var _el$2 = _tmpl$();
27
+ spread(_el$2, [rest, {
28
+ "data-scope": "result",
29
+ "data-part": "icon"
30
+ }], true);
31
+ insert(_el$2, () => {
32
+ return own.children ?? (() => {
33
+ var _el$3 = _tmpl$2();
34
+ effect(() => MARK.__html, (_v$) => {
35
+ _el$3.innerHTML = _v$;
36
+ });
37
+ return _el$3;
38
+ })();
39
+ });
40
+ return _el$2;
41
+ }
42
+ function part(name, tag) {
43
+ return function Part(props) {
44
+ injectComponentStyle("result");
45
+ const [own, rest] = splitProps(props, ["children"]);
46
+ return createComponent(tag, mergeProps(rest, {
47
+ "data-scope": "result",
48
+ "data-part": name,
49
+ get children() {
50
+ return own.children;
51
+ }
52
+ }));
53
+ };
54
+ }
55
+ /** A verdict drawn after the deed: the mark washes in the fixed
56
+ * pigment, the title rides the serif, and the extra carries the way
57
+ * onward. Any subset composes. */
58
+ const Result = {
59
+ Root: ResultRoot,
60
+ Icon: ResultIcon,
61
+ Title: part("title", "h3"),
62
+ Description: part("description", "p"),
63
+ Extra: part("extra", "div")
64
+ };
65
+ //#endregion
66
+ export { Result, ResultIcon, ResultRoot };
@@ -1,17 +1,2 @@
1
- import { CollectionItem } from "@ark-ui/solid/collection";
2
- import { Select as Select$1, SelectRootProps } from "@ark-ui/solid/select";
3
- //#region src/components/select/index.d.ts
4
- /** Ark's Select, dressed in the paper-and-ink system: the trigger is the
5
- * whole control and its list dissolves open as a paper vessel, the checked
6
- * row taking the flat ink fill. The API is Ark's own — Root, Label, Control,
7
- * Trigger, ValueText, Indicator, ClearTrigger, HiddenSelect, Positioner,
8
- * Content, List, Item, ItemText, ItemIndicator, ItemGroup, ItemGroupLabel. */
9
- type SelectOwnProps = {
10
- /** One rung of the control-height ladder for the trigger. */
11
- size?: "sm" | "md" | "lg";
12
- };
13
- declare function SelectRoot<T extends CollectionItem>(props: SelectRootProps<T> & SelectOwnProps): import("solid-js").JSX.Element;
14
- export declare const Select: Omit<typeof Select$1, "Root"> & {
15
- Root: typeof SelectRoot;
16
- };
17
- //#endregion
1
+ import { i as NativeSelectProps, n as NativeSelect, r as NativeSelectOption, t as Select } from "../../index-YPUiqD3n.mjs";
2
+ export { NativeSelect, type NativeSelectOption, type NativeSelectProps, Select };
@@ -1,18 +1,2 @@
1
- import { injectComponentStyle } from "@bysages/core";
2
- import { createComponent, mergeProps } from "solid-js/web";
3
- import { splitProps } from "solid-js";
4
- import { Select as Select$1 } from "@ark-ui/solid/select";
5
- //#region src/components/select/index.tsx
6
- function SelectRoot(props) {
7
- const [own, rest] = splitProps(props, ["size"]);
8
- return createComponent(Select$1.Root, mergeProps(rest, { get ["data-size"]() {
9
- return own.size ?? "md";
10
- } }));
11
- }
12
- const Select = {
13
- ...Select$1,
14
- Root: SelectRoot
15
- };
16
- injectComponentStyle("select");
17
- //#endregion
18
- export { Select };
1
+ import { n as NativeSelect, t as Select } from "../../select-CHaXbzLX.mjs";
2
+ export { NativeSelect, Select };
@@ -1,29 +1,27 @@
1
1
  import { injectComponentStyle } from "@bysages/core";
2
- import { memo, mergeProps, spread, template } from "solid-js/web";
2
+ import { spread, template } from "@solidjs/web";
3
3
  import { splitProps } from "solid-js";
4
4
  //#region src/components/separator/index.tsx
5
- var _tmpl$ = /*#__PURE__*/ template(`<div>`);
5
+ var _tmpl$ = /* @__PURE__ */ template(`<div>`);
6
6
  function Separator(props) {
7
7
  injectComponentStyle("separator");
8
8
  const [own, rest] = splitProps(props, ["orientation", "decorative"]);
9
9
  const orientation = () => own.orientation ?? "horizontal";
10
- return (() => {
11
- var _el$ = _tmpl$();
12
- spread(_el$, mergeProps(rest, {
13
- get role() {
14
- return own.decorative ? "none" : "separator";
15
- },
16
- "data-scope": "separator",
17
- "data-part": "root",
18
- get ["data-orientation"]() {
19
- return orientation();
20
- },
21
- get ["aria-orientation"]() {
22
- return memo(() => !!own.decorative)() ? void 0 : orientation();
23
- }
24
- }), false, false);
25
- return _el$;
26
- })();
10
+ var _el$ = _tmpl$();
11
+ spread(_el$, [rest, {
12
+ get role() {
13
+ return own.decorative ? "none" : "separator";
14
+ },
15
+ "data-scope": "separator",
16
+ "data-part": "root",
17
+ get "data-orientation"() {
18
+ return orientation();
19
+ },
20
+ get "aria-orientation"() {
21
+ return own.decorative ? void 0 : orientation();
22
+ }
23
+ }], false);
24
+ return _el$;
27
25
  }
28
26
  //#endregion
29
27
  export { Separator };
@@ -1,17 +1,15 @@
1
1
  import { injectComponentStyle } from "@bysages/core";
2
- import { mergeProps, spread, template } from "solid-js/web";
2
+ import { spread, template } from "@solidjs/web";
3
3
  //#region src/components/skeleton/index.tsx
4
- var _tmpl$ = /*#__PURE__*/ template(`<div>`);
4
+ var _tmpl$ = /* @__PURE__ */ template(`<div>`);
5
5
  function Skeleton(props) {
6
6
  injectComponentStyle("skeleton");
7
- return (() => {
8
- var _el$ = _tmpl$();
9
- spread(_el$, mergeProps(props, {
10
- "data-scope": "skeleton",
11
- "data-part": "root"
12
- }), false, false);
13
- return _el$;
14
- })();
7
+ var _el$ = _tmpl$();
8
+ spread(_el$, [props, {
9
+ "data-scope": "skeleton",
10
+ "data-part": "root"
11
+ }], false);
12
+ return _el$;
15
13
  }
16
14
  //#endregion
17
15
  export { Skeleton };
@@ -1,11 +1,11 @@
1
1
  import { injectComponentStyle } from "@bysages/core";
2
- import { createComponent, mergeProps } from "solid-js/web";
2
+ import { createComponent, mergeProps } from "@solidjs/web";
3
3
  import { splitProps } from "solid-js";
4
4
  import { Slider as Slider$1 } from "@ark-ui/solid/slider";
5
5
  //#region src/components/slider/index.tsx
6
6
  function SliderRoot(props) {
7
7
  const [own, rest] = splitProps(props, ["size"]);
8
- return createComponent(Slider$1.Root, mergeProps(rest, { get ["data-size"]() {
8
+ return createComponent(Slider$1.Root, mergeProps(rest, { get "data-size"() {
9
9
  return own.size ?? "md";
10
10
  } }));
11
11
  }
@@ -1,28 +1,26 @@
1
1
  import { injectComponentStyle } from "@bysages/core";
2
- import { mergeProps, spread, template } from "solid-js/web";
2
+ import { spread, template } from "@solidjs/web";
3
3
  import { splitProps } from "solid-js";
4
4
  //#region src/components/spinner/index.tsx
5
- var _tmpl$ = /*#__PURE__*/ template(`<span><svg viewBox="0 0 24 24"fill=none aria-hidden=true><circle cx=12 cy=12 r=9 stroke=currentColor stroke-opacity=0.2 stroke-width=2.5></circle><path d="M21 12a9 9 0 0 0-9-9"stroke=currentColor stroke-width=2.5 stroke-linecap=round>`);
5
+ var _tmpl$ = /* @__PURE__ */ template(`<span><svg viewBox="0 0 24 24"fill=none aria-hidden=true><circle cx=12 cy=12 r=9 stroke=currentColor stroke-opacity=0.2 stroke-width=2.5></circle><path d="M21 12a9 9 0 0 0-9-9"stroke=currentColor stroke-width=2.5 stroke-linecap=round>`);
6
6
  /** A wheel of waiting: one arc of ink turning about its center. Quiet by
7
7
  * default — it reports progress without claiming attention. */
8
8
  function Spinner(props) {
9
9
  injectComponentStyle("spinner");
10
10
  const [own, rest] = splitProps(props, ["size"]);
11
- return (() => {
12
- var _el$ = _tmpl$();
13
- spread(_el$, mergeProps(rest, {
14
- "role": "status",
15
- get ["aria-label"]() {
16
- return rest["aria-label"] ?? "Loading";
17
- },
18
- "data-scope": "spinner",
19
- "data-part": "root",
20
- get ["data-size"]() {
21
- return own.size ?? "md";
22
- }
23
- }), false, true);
24
- return _el$;
25
- })();
11
+ var _el$ = _tmpl$();
12
+ spread(_el$, [rest, {
13
+ role: "status",
14
+ get "aria-label"() {
15
+ return rest["aria-label"] ?? "Loading";
16
+ },
17
+ "data-scope": "spinner",
18
+ "data-part": "root",
19
+ get "data-size"() {
20
+ return own.size ?? "md";
21
+ }
22
+ }], true);
23
+ return _el$;
26
24
  }
27
25
  //#endregion
28
26
  export { Spinner };
@@ -1,12 +1,13 @@
1
1
  import { Button } from "../button/index.mjs";
2
2
  import { injectComponentStyle } from "@bysages/core";
3
- import { Portal, createComponent, insert, mergeProps, spread, template } from "solid-js/web";
3
+ import { createComponent, insert, spread, template } from "@solidjs/web";
4
4
  import { For, splitProps } from "solid-js";
5
+ import { Portal } from "solid-js/web";
5
6
  import { Menu } from "@ark-ui/solid/menu";
6
7
  //#region src/components/split-button/index.tsx
7
- var _tmpl$ = /*#__PURE__*/ template(`<div>`);
8
- var _tmpl$2 = /*#__PURE__*/ template(`<button>`);
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="m6 9 6 6 6-6">`);
8
+ var _tmpl$ = /* @__PURE__ */ template(`<div><!><!>`);
9
+ var _tmpl$2 = /* @__PURE__ */ template(`<button>`);
10
+ 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="m6 9 6 6 6-6">`);
10
11
  /**
11
12
  * A primary action with its alternatives one seam away: the main button
12
13
  * fires `onClick`, the fitted arrow opens a paper vessel of the same
@@ -33,87 +34,87 @@ function SplitButton(props) {
33
34
  const variant = () => own.variant ?? "solid";
34
35
  const tone = () => own.tone ?? "ink";
35
36
  const size = () => own.size ?? "md";
36
- return (() => {
37
- var _el$ = _tmpl$();
38
- spread(_el$, mergeProps(rest, {
39
- "data-scope": "split-button",
40
- "data-part": "root"
41
- }), false, true);
42
- insert(_el$, createComponent(Button, {
43
- get variant() {
44
- return variant();
45
- },
46
- get tone() {
47
- return tone();
48
- },
49
- get size() {
50
- return size();
51
- },
52
- get disabled() {
53
- return own.disabled;
54
- },
55
- onClick: (event) => own.onClick?.(event),
56
- get children() {
57
- return own.label;
58
- }
59
- }), null);
60
- insert(_el$, createComponent(Menu.Root, {
61
- positioning: { placement: "bottom-end" },
62
- get children() {
63
- return [createComponent(Menu.Trigger, { asChild: (propsFn) => (() => {
64
- var _el$2 = _tmpl$2();
65
- spread(_el$2, mergeProps(propsFn, {
66
- "type": "button",
67
- get disabled() {
68
- return own.disabled;
69
- },
70
- "aria-label": "More actions",
71
- get ["data-variant"]() {
72
- return variant();
73
- },
74
- get ["data-tone"]() {
75
- return tone();
76
- },
77
- get ["data-size"]() {
78
- return size();
79
- },
80
- "data-square": "true",
81
- "data-motion": "ink-ripple lit"
82
- }), false, true);
83
- insert(_el$2, chevronDown);
84
- return _el$2;
85
- })() }), createComponent(Portal, { get children() {
86
- return createComponent(Menu.Positioner, { get children() {
87
- return createComponent(Menu.Content, { get children() {
88
- return createComponent(For, {
89
- get each() {
90
- return own.items ?? [];
37
+ var _el$ = _tmpl$();
38
+ var _el$2 = _el$.firstChild;
39
+ var _el$3 = _el$2.nextSibling;
40
+ spread(_el$, [rest, {
41
+ "data-scope": "split-button",
42
+ "data-part": "root"
43
+ }], true);
44
+ insert(_el$, createComponent(Button, {
45
+ get variant() {
46
+ return variant();
47
+ },
48
+ get tone() {
49
+ return tone();
50
+ },
51
+ get size() {
52
+ return size();
53
+ },
54
+ get disabled() {
55
+ return own.disabled;
56
+ },
57
+ onClick: (event) => own.onClick?.(event),
58
+ get children() {
59
+ return own.label;
60
+ }
61
+ }), _el$2);
62
+ insert(_el$, createComponent(Menu.Root, {
63
+ positioning: { placement: "bottom-end" },
64
+ get children() {
65
+ return [createComponent(Menu.Trigger, { asChild: (propsFn) => (() => {
66
+ var _el$4 = _tmpl$2();
67
+ spread(_el$4, [propsFn, {
68
+ type: "button",
69
+ get disabled() {
70
+ return own.disabled;
71
+ },
72
+ "aria-label": "More actions",
73
+ get "data-variant"() {
74
+ return variant();
75
+ },
76
+ get "data-tone"() {
77
+ return tone();
78
+ },
79
+ get "data-size"() {
80
+ return size();
81
+ },
82
+ "data-square": "true",
83
+ "data-motion": "ink-ripple lit"
84
+ }], true);
85
+ insert(_el$4, chevronDown);
86
+ return _el$4;
87
+ })() }), createComponent(Portal, { get children() {
88
+ return createComponent(Menu.Positioner, { get children() {
89
+ return createComponent(Menu.Content, { get children() {
90
+ return createComponent(For, {
91
+ get each() {
92
+ return own.items ?? [];
93
+ },
94
+ children: (entry) => createComponent(Menu.Item, {
95
+ get value() {
96
+ return entry.value;
91
97
  },
92
- children: (entry) => createComponent(Menu.Item, {
93
- get value() {
94
- return entry.value;
95
- },
96
- get disabled() {
97
- return entry.disabled;
98
- },
99
- get ["data-danger"]() {
100
- return entry.danger ? "" : void 0;
101
- },
102
- onSelect: () => own.onSelect?.(entry.value),
103
- get children() {
104
- return createComponent(Menu.ItemText, { get children() {
105
- return entry.label;
106
- } });
107
- }
108
- })
109
- });
110
- } });
98
+ get disabled() {
99
+ return entry.disabled;
100
+ },
101
+ get "data-danger"() {
102
+ return entry.danger ? "" : void 0;
103
+ },
104
+ onSelect: () => own.onSelect?.(entry.value),
105
+ get children() {
106
+ return createComponent(Menu.ItemText, { get children() {
107
+ return entry.label;
108
+ } });
109
+ }
110
+ })
111
+ });
111
112
  } });
112
- } })];
113
- }
114
- }), null);
115
- return _el$;
116
- })();
113
+ } });
114
+ } })];
115
+ }
116
+ }), _el$3);
117
+ return _el$;
117
118
  }
118
119
  /** One stroke pointing down: all a fitted dropdown arrow needs. */
119
120
  function chevronDown() {
@@ -0,0 +1,11 @@
1
+ import { JSX } from "solid-js";
2
+ //#region src/components/spotlight/index.d.ts
3
+ export interface SpotlightProps extends JSX.HTMLAttributes<HTMLDivElement> {
4
+ /** How far the lamp throws before the ink swallows it. */
5
+ radius?: string;
6
+ }
7
+ /** The ink-light card: a vessel whose rim and face take light from the
8
+ * reader's hand. The wrapper only measures and writes the geometry —
9
+ * the lamp itself is the two layers the stylesheet paints. */
10
+ export declare function Spotlight(props: SpotlightProps): JSX.Element;
11
+ //#endregion
@@ -0,0 +1,38 @@
1
+ import { injectComponentStyle } from "@bysages/core";
2
+ import { insert, spread, template } from "@solidjs/web";
3
+ import { splitProps } from "solid-js";
4
+ //#region src/components/spotlight/index.tsx
5
+ var _tmpl$ = /* @__PURE__ */ template(`<div>`);
6
+ /** The ink-light card: a vessel whose rim and face take light from the
7
+ * reader's hand. The wrapper only measures and writes the geometry —
8
+ * the lamp itself is the two layers the stylesheet paints. */
9
+ function Spotlight(props) {
10
+ injectComponentStyle("spotlight");
11
+ const [own, rest] = splitProps(props, ["radius"]);
12
+ const track = (event) => {
13
+ const host = event.currentTarget;
14
+ const rect = host.getBoundingClientRect();
15
+ host.style.setProperty("--bs-spot-x", `${event.clientX - rect.left}px`);
16
+ host.style.setProperty("--bs-spot-y", `${event.clientY - rect.top}px`);
17
+ };
18
+ var _el$ = _tmpl$();
19
+ spread(_el$, [rest, {
20
+ "data-scope": "spotlight",
21
+ "data-part": "root",
22
+ get style() {
23
+ return { "--bs-spot-radius": own.radius };
24
+ },
25
+ onPointerMove: track,
26
+ onPointerEnter: (event) => {
27
+ track(event);
28
+ event.currentTarget.setAttribute("data-hovered", "");
29
+ },
30
+ onPointerLeave: (event) => event.currentTarget.removeAttribute("data-hovered")
31
+ }], true);
32
+ insert(_el$, () => {
33
+ return props.children;
34
+ });
35
+ return _el$;
36
+ }
37
+ //#endregion
38
+ export { Spotlight };
@@ -1,8 +1,8 @@
1
1
  import { injectComponentStyle } from "@bysages/core";
2
- import { mergeProps, spread, template } from "solid-js/web";
2
+ import { spread, template } from "@solidjs/web";
3
3
  import { splitProps } from "solid-js";
4
4
  //#region src/components/stack/index.tsx
5
- var _tmpl$ = /*#__PURE__*/ template(`<div>`);
5
+ var _tmpl$ = /* @__PURE__ */ template(`<div>`);
6
6
  /** Whitespace chosen by name: the named steps point at the space ramp so
7
7
  * siblings are held apart by one token, never by ad-hoc margins. */
8
8
  const gapVars = {
@@ -22,26 +22,24 @@ function Stack(props) {
22
22
  "align",
23
23
  "justify"
24
24
  ]);
25
- return (() => {
26
- var _el$ = _tmpl$();
27
- spread(_el$, mergeProps(rest, {
28
- get style() {
29
- return {
30
- ...rest.style,
31
- "--bs-stack-gap": gapVars[own.gap ?? "md"] ?? gapVars.md,
32
- "align-items": own.align,
33
- "justify-content": own.justify,
34
- "flex-wrap": own.wrap ? "wrap" : void 0
35
- };
36
- },
37
- "data-scope": "stack",
38
- "data-part": "root",
39
- get ["data-direction"]() {
40
- return own.direction ?? "column";
41
- }
42
- }), false, false);
43
- return _el$;
44
- })();
25
+ var _el$ = _tmpl$();
26
+ spread(_el$, [rest, {
27
+ get style() {
28
+ return {
29
+ ...rest.style,
30
+ "--bs-stack-gap": gapVars[own.gap ?? "md"] ?? gapVars.md,
31
+ "align-items": own.align,
32
+ "justify-content": own.justify,
33
+ "flex-wrap": own.wrap ? "wrap" : void 0
34
+ };
35
+ },
36
+ "data-scope": "stack",
37
+ "data-part": "root",
38
+ get "data-direction"() {
39
+ return own.direction ?? "column";
40
+ }
41
+ }], false);
42
+ return _el$;
45
43
  }
46
44
  //#endregion
47
45
  export { Stack };
@@ -1,13 +1,13 @@
1
1
  import { injectComponentStyle } from "@bysages/core";
2
- import { createComponent, mergeProps, spread, template } from "solid-js/web";
2
+ import { createComponent, mergeProps, spread, template } from "@solidjs/web";
3
3
  import { splitProps } from "solid-js";
4
4
  //#region src/components/stat/index.tsx
5
- var _tmpl$ = /*#__PURE__*/ template(`<span>`);
5
+ var _tmpl$ = /* @__PURE__ */ template(`<span>`);
6
6
  function part(name, tag) {
7
7
  function Component(props) {
8
8
  return createComponent(tag, mergeProps(props, {
9
9
  "data-scope": "stat",
10
- get ["data-part"]() {
10
+ get "data-part"() {
11
11
  return name.toLowerCase();
12
12
  }
13
13
  }));
@@ -22,17 +22,15 @@ const Description = part("Description", "p");
22
22
  * explicit `data-direction` attribute on the consumer side still wins. */
23
23
  function Delta(props) {
24
24
  const [own, rest] = splitProps(props, ["direction"]);
25
- return (() => {
26
- var _el$ = _tmpl$();
27
- spread(_el$, mergeProps(rest, {
28
- "data-scope": "stat",
29
- "data-part": "delta",
30
- get ["data-direction"]() {
31
- return rest["data-direction"] ?? own.direction ?? "flat";
32
- }
33
- }), false, false);
34
- return _el$;
35
- })();
25
+ var _el$ = _tmpl$();
26
+ spread(_el$, [rest, {
27
+ "data-scope": "stat",
28
+ "data-part": "delta",
29
+ get "data-direction"() {
30
+ return rest["data-direction"] ?? own.direction ?? "flat";
31
+ }
32
+ }], false);
33
+ return _el$;
36
34
  }
37
35
  const Stat = Object.assign(Root, {
38
36
  Root,
@@ -1,11 +1,11 @@
1
1
  import { injectComponentStyle } from "@bysages/core";
2
- import { createComponent, mergeProps } from "solid-js/web";
2
+ import { createComponent, mergeProps } from "@solidjs/web";
3
3
  import { splitProps } from "solid-js";
4
4
  import { Steps as Steps$1 } from "@ark-ui/solid/steps";
5
5
  //#region src/components/steps/index.tsx
6
6
  function StepsRoot(props) {
7
7
  const [own, rest] = splitProps(props, ["size"]);
8
- return createComponent(Steps$1.Root, mergeProps(rest, { get ["data-size"]() {
8
+ return createComponent(Steps$1.Root, mergeProps(rest, { get "data-size"() {
9
9
  return own.size ?? "md";
10
10
  } }));
11
11
  }
@@ -1,11 +1,11 @@
1
1
  import { injectComponentStyle } from "@bysages/core";
2
- import { createComponent, mergeProps } from "solid-js/web";
2
+ import { createComponent, mergeProps } from "@solidjs/web";
3
3
  import { splitProps } from "solid-js";
4
4
  import { Switch as Switch$1 } from "@ark-ui/solid/switch";
5
5
  //#region src/components/switch/index.tsx
6
6
  function SwitchRoot(props) {
7
7
  const [own, rest] = splitProps(props, ["size"]);
8
- return createComponent(Switch$1.Root, mergeProps(rest, { get ["data-size"]() {
8
+ return createComponent(Switch$1.Root, mergeProps(rest, { get "data-size"() {
9
9
  return own.size ?? "md";
10
10
  } }));
11
11
  }