@bysages/solid 0.2.1 → 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.
Files changed (263) hide show
  1. package/dist/ai-response-B_586r27.mjs +139 -0
  2. package/dist/chevron-GWEoEYdO.mjs +9 -0
  3. package/dist/components/accordion/index.d.mts +7 -0
  4. package/dist/components/accordion/index.mjs +10 -0
  5. package/dist/components/affix/index.d.mts +20 -0
  6. package/dist/components/affix/index.mjs +35 -0
  7. package/dist/components/ai/index.d.mts +2 -0
  8. package/dist/components/ai/index.mjs +69 -0
  9. package/dist/components/ai-action/index.d.mts +13 -0
  10. package/dist/components/ai-action/index.mjs +27 -0
  11. package/dist/components/ai-attachments/index.d.mts +20 -0
  12. package/dist/components/ai-attachments/index.mjs +98 -0
  13. package/dist/components/ai-message/index.d.mts +13 -0
  14. package/dist/components/ai-message/index.mjs +24 -0
  15. package/dist/components/ai-prompt-input/index.d.mts +45 -0
  16. package/dist/components/ai-prompt-input/index.mjs +136 -0
  17. package/dist/components/ai-reasoning/index.d.mts +13 -0
  18. package/dist/components/ai-reasoning/index.mjs +34 -0
  19. package/dist/components/ai-response/index.d.mts +20 -0
  20. package/dist/components/ai-response/index.mjs +2 -0
  21. package/dist/components/ai-source/index.d.mts +13 -0
  22. package/dist/components/ai-source/index.mjs +36 -0
  23. package/dist/components/ai-suggestion/index.d.mts +13 -0
  24. package/dist/components/ai-suggestion/index.mjs +22 -0
  25. package/dist/components/ai-tool/index.d.mts +23 -0
  26. package/dist/components/ai-tool/index.mjs +78 -0
  27. package/dist/components/alert/index.d.mts +22 -0
  28. package/dist/components/alert/index.mjs +92 -0
  29. package/dist/components/angle-slider/index.d.mts +15 -0
  30. package/dist/components/angle-slider/index.mjs +18 -0
  31. package/dist/components/aspect-ratio/index.d.mts +10 -0
  32. package/dist/components/aspect-ratio/index.mjs +25 -0
  33. package/dist/components/autocomplete/index.d.mts +21 -0
  34. package/dist/components/autocomplete/index.mjs +75 -0
  35. package/dist/components/avatar/index.d.mts +20 -0
  36. package/dist/components/avatar/index.mjs +15 -0
  37. package/dist/components/avatar-group/index.d.mts +11 -0
  38. package/dist/components/avatar-group/index.mjs +22 -0
  39. package/dist/components/back-top/index.d.mts +29 -0
  40. package/dist/components/back-top/index.mjs +89 -0
  41. package/dist/components/badge/index.d.mts +10 -0
  42. package/dist/components/badge/index.mjs +25 -0
  43. package/dist/components/banner/index.d.mts +24 -0
  44. package/dist/components/banner/index.mjs +71 -0
  45. package/dist/components/breadcrumb/index.d.mts +11 -0
  46. package/dist/components/breadcrumb/index.mjs +43 -0
  47. package/dist/components/button/index.d.mts +15 -0
  48. package/dist/components/button/index.mjs +45 -0
  49. package/dist/components/button-group/index.d.mts +23 -0
  50. package/dist/components/button-group/index.mjs +40 -0
  51. package/dist/components/calendar/index.d.mts +17 -0
  52. package/dist/components/calendar/index.mjs +197 -0
  53. package/dist/components/card/index.d.mts +11 -0
  54. package/dist/components/card/index.mjs +33 -0
  55. package/dist/components/carousel/index.d.mts +9 -0
  56. package/dist/components/carousel/index.mjs +12 -0
  57. package/dist/components/cascade-select/index.d.mts +31 -0
  58. package/dist/components/cascade-select/index.mjs +265 -0
  59. package/dist/components/checkbox/index.d.mts +15 -0
  60. package/dist/components/checkbox/index.mjs +18 -0
  61. package/dist/components/checkbox-group/index.d.mts +28 -0
  62. package/dist/components/checkbox-group/index.mjs +99 -0
  63. package/dist/components/chip/index.d.mts +12 -0
  64. package/dist/components/chip/index.mjs +34 -0
  65. package/dist/components/client-only/index.d.mts +2 -0
  66. package/dist/components/client-only/index.mjs +2 -0
  67. package/dist/components/clipboard/index.d.mts +16 -0
  68. package/dist/components/clipboard/index.mjs +19 -0
  69. package/dist/components/collapsible/index.d.mts +7 -0
  70. package/dist/components/collapsible/index.mjs +10 -0
  71. package/dist/components/collection/index.d.mts +2 -0
  72. package/dist/components/collection/index.mjs +2 -0
  73. package/dist/components/color-picker/index.d.mts +19 -0
  74. package/dist/components/color-picker/index.mjs +18 -0
  75. package/dist/components/combobox/index.d.mts +17 -0
  76. package/dist/components/combobox/index.mjs +18 -0
  77. package/dist/components/command/index.d.mts +43 -0
  78. package/dist/components/command/index.mjs +237 -0
  79. package/dist/components/comment/index.d.mts +17 -0
  80. package/dist/components/comment/index.mjs +86 -0
  81. package/dist/components/config-provider/index.d.mts +48 -0
  82. package/dist/components/config-provider/index.mjs +65 -0
  83. package/dist/components/container/index.d.mts +13 -0
  84. package/dist/components/container/index.mjs +25 -0
  85. package/dist/components/date-input/index.d.mts +15 -0
  86. package/dist/components/date-input/index.mjs +18 -0
  87. package/dist/components/date-picker/index.d.mts +17 -0
  88. package/dist/components/date-picker/index.mjs +18 -0
  89. package/dist/components/descriptions/index.d.mts +18 -0
  90. package/dist/components/descriptions/index.mjs +42 -0
  91. package/dist/components/dialog/index.d.mts +9 -0
  92. package/dist/components/dialog/index.mjs +11 -0
  93. package/dist/components/download-trigger/index.d.mts +2 -0
  94. package/dist/components/download-trigger/index.mjs +2 -0
  95. package/dist/components/drawer/index.d.mts +9 -0
  96. package/dist/components/drawer/index.mjs +12 -0
  97. package/dist/components/dynamic-input/index.d.mts +30 -0
  98. package/dist/components/dynamic-input/index.mjs +116 -0
  99. package/dist/components/editable/index.d.mts +15 -0
  100. package/dist/components/editable/index.mjs +18 -0
  101. package/dist/components/ellipsis/index.d.mts +10 -0
  102. package/dist/components/ellipsis/index.mjs +29 -0
  103. package/dist/components/empty/index.d.mts +10 -0
  104. package/dist/components/empty/index.mjs +31 -0
  105. package/dist/components/field/index.d.mts +8 -0
  106. package/dist/components/field/index.mjs +11 -0
  107. package/dist/components/fieldset/index.d.mts +7 -0
  108. package/dist/components/fieldset/index.mjs +10 -0
  109. package/dist/components/file-upload/index.d.mts +17 -0
  110. package/dist/components/file-upload/index.mjs +18 -0
  111. package/dist/components/float-button/index.d.mts +61 -0
  112. package/dist/components/float-button/index.mjs +128 -0
  113. package/dist/components/floating-panel/index.d.mts +9 -0
  114. package/dist/components/floating-panel/index.mjs +12 -0
  115. package/dist/components/focus-trap/index.d.mts +2 -0
  116. package/dist/components/focus-trap/index.mjs +2 -0
  117. package/dist/components/form/index.d.mts +2 -0
  118. package/dist/components/form/index.mjs +110 -0
  119. package/dist/components/format/index.d.mts +9 -0
  120. package/dist/components/format/index.mjs +10 -0
  121. package/dist/components/frame/index.d.mts +10 -0
  122. package/dist/components/frame/index.mjs +12 -0
  123. package/dist/components/grid/index.d.mts +13 -0
  124. package/dist/components/grid/index.mjs +44 -0
  125. package/dist/components/highlight/index.d.mts +7 -0
  126. package/dist/components/highlight/index.mjs +11 -0
  127. package/dist/components/hover-card/index.d.mts +7 -0
  128. package/dist/components/hover-card/index.mjs +10 -0
  129. package/dist/components/icon/index.d.mts +19 -0
  130. package/dist/components/icon/index.mjs +53 -0
  131. package/dist/components/image/index.d.mts +17 -0
  132. package/dist/components/image/index.mjs +69 -0
  133. package/dist/components/image-cropper/index.d.mts +8 -0
  134. package/dist/components/image-cropper/index.mjs +11 -0
  135. package/dist/components/image-viewer/index.d.mts +19 -0
  136. package/dist/components/image-viewer/index.mjs +143 -0
  137. package/dist/components/input/index.d.mts +16 -0
  138. package/dist/components/input/index.mjs +42 -0
  139. package/dist/components/input-group/index.d.mts +18 -0
  140. package/dist/components/input-group/index.mjs +40 -0
  141. package/dist/components/json-tree-view/index.d.mts +7 -0
  142. package/dist/components/json-tree-view/index.mjs +10 -0
  143. package/dist/components/kbd/index.d.mts +6 -0
  144. package/dist/components/kbd/index.mjs +17 -0
  145. package/dist/components/layout/index.d.mts +60 -0
  146. package/dist/components/layout/index.mjs +192 -0
  147. package/dist/components/link/index.d.mts +10 -0
  148. package/dist/components/link/index.mjs +25 -0
  149. package/dist/components/list/index.d.mts +26 -0
  150. package/dist/components/list/index.mjs +92 -0
  151. package/dist/components/listbox/index.d.mts +17 -0
  152. package/dist/components/listbox/index.mjs +19 -0
  153. package/dist/components/marquee/index.d.mts +7 -0
  154. package/dist/components/marquee/index.mjs +10 -0
  155. package/dist/components/masonry/index.d.mts +11 -0
  156. package/dist/components/masonry/index.mjs +36 -0
  157. package/dist/components/mentions/index.d.mts +2 -0
  158. package/dist/components/mentions/index.mjs +3 -0
  159. package/dist/components/menu/index.d.mts +13 -0
  160. package/dist/components/menu/index.mjs +38 -0
  161. package/dist/components/menubar/index.d.mts +32 -0
  162. package/dist/components/menubar/index.mjs +82 -0
  163. package/dist/components/meter/index.d.mts +21 -0
  164. package/dist/components/meter/index.mjs +95 -0
  165. package/dist/components/navigation-menu/index.d.mts +8 -0
  166. package/dist/components/navigation-menu/index.mjs +11 -0
  167. package/dist/components/number-input/index.d.mts +15 -0
  168. package/dist/components/number-input/index.mjs +18 -0
  169. package/dist/components/page-header/index.d.mts +11 -0
  170. package/dist/components/page-header/index.mjs +34 -0
  171. package/dist/components/pagination/index.d.mts +17 -0
  172. package/dist/components/pagination/index.mjs +18 -0
  173. package/dist/components/password-input/index.d.mts +15 -0
  174. package/dist/components/password-input/index.mjs +18 -0
  175. package/dist/components/pin-input/index.d.mts +14 -0
  176. package/dist/components/pin-input/index.mjs +18 -0
  177. package/dist/components/popconfirm/index.d.mts +17 -0
  178. package/dist/components/popconfirm/index.mjs +78 -0
  179. package/dist/components/popover/index.d.mts +8 -0
  180. package/dist/components/popover/index.mjs +11 -0
  181. package/dist/components/presence/index.d.mts +2 -0
  182. package/dist/components/presence/index.mjs +2 -0
  183. package/dist/components/progress/index.d.mts +15 -0
  184. package/dist/components/progress/index.mjs +18 -0
  185. package/dist/components/progress-group/index.d.mts +22 -0
  186. package/dist/components/progress-group/index.mjs +77 -0
  187. package/dist/components/qr-code/index.d.mts +8 -0
  188. package/dist/components/qr-code/index.mjs +11 -0
  189. package/dist/components/radio-group/index.d.mts +15 -0
  190. package/dist/components/radio-group/index.mjs +18 -0
  191. package/dist/components/rating-group/index.d.mts +15 -0
  192. package/dist/components/rating-group/index.mjs +18 -0
  193. package/dist/components/scroll-area/index.d.mts +7 -0
  194. package/dist/components/scroll-area/index.mjs +10 -0
  195. package/dist/components/segment-group/index.d.mts +17 -0
  196. package/dist/components/segment-group/index.mjs +23 -0
  197. package/dist/components/select/index.d.mts +17 -0
  198. package/dist/components/select/index.mjs +18 -0
  199. package/dist/components/separator/index.d.mts +11 -0
  200. package/dist/components/separator/index.mjs +29 -0
  201. package/dist/components/signature-pad/index.d.mts +8 -0
  202. package/dist/components/signature-pad/index.mjs +11 -0
  203. package/dist/components/skeleton/index.d.mts +7 -0
  204. package/dist/components/skeleton/index.mjs +17 -0
  205. package/dist/components/slider/index.d.mts +15 -0
  206. package/dist/components/slider/index.mjs +18 -0
  207. package/dist/components/spinner/index.d.mts +9 -0
  208. package/dist/components/spinner/index.mjs +28 -0
  209. package/dist/components/split-button/index.d.mts +36 -0
  210. package/dist/components/split-button/index.mjs +123 -0
  211. package/dist/components/splitter/index.d.mts +7 -0
  212. package/dist/components/splitter/index.mjs +10 -0
  213. package/dist/components/stack/index.d.mts +11 -0
  214. package/dist/components/stack/index.mjs +47 -0
  215. package/dist/components/stat/index.d.mts +17 -0
  216. package/dist/components/stat/index.mjs +46 -0
  217. package/dist/components/steps/index.d.mts +18 -0
  218. package/dist/components/steps/index.mjs +18 -0
  219. package/dist/components/swap/index.d.mts +8 -0
  220. package/dist/components/swap/index.mjs +11 -0
  221. package/dist/components/switch/index.d.mts +15 -0
  222. package/dist/components/switch/index.mjs +18 -0
  223. package/dist/components/table/index.d.mts +77 -0
  224. package/dist/components/table/index.mjs +740 -0
  225. package/dist/components/tabs/index.d.mts +17 -0
  226. package/dist/components/tabs/index.mjs +18 -0
  227. package/dist/components/tags-input/index.d.mts +16 -0
  228. package/dist/components/tags-input/index.mjs +18 -0
  229. package/dist/components/textarea/index.d.mts +14 -0
  230. package/dist/components/textarea/index.mjs +37 -0
  231. package/dist/components/timeline/index.d.mts +9 -0
  232. package/dist/components/timeline/index.mjs +29 -0
  233. package/dist/components/timer/index.d.mts +8 -0
  234. package/dist/components/timer/index.mjs +11 -0
  235. package/dist/components/toast/index.d.mts +11 -0
  236. package/dist/components/toast/index.mjs +13 -0
  237. package/dist/components/toc/index.d.mts +7 -0
  238. package/dist/components/toc/index.mjs +10 -0
  239. package/dist/components/toggle/index.d.mts +7 -0
  240. package/dist/components/toggle/index.mjs +10 -0
  241. package/dist/components/toggle-group/index.d.mts +14 -0
  242. package/dist/components/toggle-group/index.mjs +18 -0
  243. package/dist/components/tooltip/index.d.mts +7 -0
  244. package/dist/components/tooltip/index.mjs +10 -0
  245. package/dist/components/tour/index.d.mts +11 -0
  246. package/dist/components/tour/index.mjs +13 -0
  247. package/dist/components/transfer/index.d.mts +24 -0
  248. package/dist/components/transfer/index.mjs +166 -0
  249. package/dist/components/tree-select/index.d.mts +28 -0
  250. package/dist/components/tree-select/index.mjs +245 -0
  251. package/dist/components/tree-view/index.d.mts +18 -0
  252. package/dist/components/tree-view/index.mjs +19 -0
  253. package/dist/components/typography/index.d.mts +11 -0
  254. package/dist/components/typography/index.mjs +34 -0
  255. package/dist/components/watermark/index.d.mts +17 -0
  256. package/dist/components/watermark/index.mjs +71 -0
  257. package/dist/index-B1xiJ5ki.d.mts +1811 -0
  258. package/dist/index-B4XS2n2y.d.mts +13411 -0
  259. package/dist/index-DDX7x8aT.d.mts +95 -0
  260. package/dist/index.d.mts +128 -15019
  261. package/dist/index.mjs +128 -5887
  262. package/dist/mentions-xbI6vJAP.mjs +257 -0
  263. package/package.json +77 -3
@@ -0,0 +1,257 @@
1
+ import { Textarea } from "./components/textarea/index.mjs";
2
+ import { injectComponentStyle } from "@bysages/core";
3
+ import { Portal, createComponent, delegateEvents, effect, insert, mergeProps, setAttribute, spread, template } from "solid-js/web";
4
+ import { For, createEffect, createSignal, splitProps } from "solid-js";
5
+ import { Popover } from "@ark-ui/solid/popover";
6
+ //#region src/components/mentions/use-mentions.ts
7
+ /** The @-detection machinery behind a mention field: watch the caret,
8
+ * offer the matching candidates, and answer for the keys that drive
9
+ * them. The field element arrives as an accessor because hosts wrap it
10
+ * differently (a bare textarea, a field's own part).
11
+ *
12
+ * `onKeydown` answers whether the vessel consumed the key, so a host
13
+ * with its own Enter semantics — a composer that sends — can yield to
14
+ * the candidates first and act only when the vessel stands down. */
15
+ function useMentions(options, textarea, handlers) {
16
+ const [popupOpen, setPopupOpen] = createSignal(false);
17
+ const [matches, setMatches] = createSignal([]);
18
+ const [active, setActive] = createSignal(0);
19
+ const [anchorIndex, setAnchorIndex] = createSignal(0);
20
+ const [caretIndex, setCaretIndex] = createSignal(0);
21
+ const closePopup = () => {
22
+ setPopupOpen(false);
23
+ setMatches([]);
24
+ };
25
+ const detect = () => {
26
+ const text = handlers.getText();
27
+ const caret = textarea()?.selectionStart ?? text.length;
28
+ setCaretIndex(caret);
29
+ const head = text.slice(0, caret);
30
+ const char = options().trigger ?? "@";
31
+ const anchor = head.lastIndexOf(char);
32
+ const token = anchor === -1 ? "" : head.slice(anchor + char.length);
33
+ if (anchor === -1 || /\s/.test(token)) {
34
+ closePopup();
35
+ return;
36
+ }
37
+ const found = options().items.filter((entry) => entry.label.toLowerCase().startsWith(token.toLowerCase()));
38
+ setMatches(found);
39
+ setActive(0);
40
+ setAnchorIndex(anchor);
41
+ setPopupOpen(found.length > 0);
42
+ };
43
+ const insert = (entry) => {
44
+ const text = handlers.getText();
45
+ const char = options().trigger ?? "@";
46
+ const next = text.slice(0, anchorIndex()) + char + entry.label + " " + text.slice(caretIndex());
47
+ handlers.setText(next);
48
+ closePopup();
49
+ queueMicrotask(() => {
50
+ const el = textarea();
51
+ if (!el) return;
52
+ const caret = anchorIndex() + char.length + entry.label.length + 1;
53
+ el.focus();
54
+ el.setSelectionRange(caret, caret);
55
+ });
56
+ };
57
+ /** Feed the field's input events through here — the vessel watches
58
+ * the text as it lands, from the element itself. */
59
+ const onInput = () => detect();
60
+ /** Arrows move, Enter inserts, Escape dismisses. Answers `true` when
61
+ * the vessel consumed the key. */
62
+ const onKeydown = (event) => {
63
+ if (!popupOpen() || matches().length === 0) return false;
64
+ if (event.key === "ArrowDown") {
65
+ event.preventDefault();
66
+ setActive((active() + 1) % matches().length);
67
+ } else if (event.key === "ArrowUp") {
68
+ event.preventDefault();
69
+ setActive((active() - 1 + matches().length) % matches().length);
70
+ } else if (event.key === "Enter") {
71
+ event.preventDefault();
72
+ insert(matches()[active()]);
73
+ } else if (event.key === "Escape") closePopup();
74
+ else return false;
75
+ return true;
76
+ };
77
+ return {
78
+ open: popupOpen,
79
+ matches,
80
+ active,
81
+ setActive,
82
+ insert,
83
+ close: closePopup,
84
+ onInput,
85
+ onKeydown
86
+ };
87
+ }
88
+ //#endregion
89
+ //#region src/components/mentions/index.tsx
90
+ var _tmpl$ = /*#__PURE__*/ template(`<div>`);
91
+ var _tmpl$2 = /*#__PURE__*/ template(`<div data-scope=mentions data-part=option>`);
92
+ /** The vessel: the candidates themselves as a floating card. The anchor
93
+ * is virtual — a live rectangle off the host's field — so a host keeps
94
+ * its own anatomy (the textarea rides where the host puts it) and the
95
+ * vessel still points at the right place. Shares the detection state
96
+ * with the host through `useMentions`. */
97
+ function MentionsVessel(props) {
98
+ injectComponentStyle("mentions");
99
+ return createComponent(Popover.Root, {
100
+ get open() {
101
+ return props.open ?? false;
102
+ },
103
+ onOpenChange: (details) => props.onOpenChange?.(details.open),
104
+ positioning: {
105
+ placement: "bottom-start",
106
+ getAnchorRect: () => props.anchor?.getBoundingClientRect() ?? null
107
+ },
108
+ get children() {
109
+ return createComponent(Portal, { get children() {
110
+ return createComponent(Popover.Positioner, { get children() {
111
+ return createComponent(Popover.Content, { asChild: (contentProps) => (() => {
112
+ var _el$ = _tmpl$();
113
+ spread(_el$, mergeProps(contentProps, {
114
+ "data-scope": "mentions",
115
+ "data-part": "popup",
116
+ get ["data-size"]() {
117
+ return props.size ?? "md";
118
+ }
119
+ }), false, true);
120
+ insert(_el$, createComponent(For, {
121
+ get each() {
122
+ return props.matches ?? [];
123
+ },
124
+ children: (entry, index) => (() => {
125
+ var _el$2 = _tmpl$2();
126
+ _el$2.$$click = () => props.onInsert?.(entry);
127
+ _el$2.$$mousedown = (event) => event.preventDefault();
128
+ _el$2.addEventListener("mouseenter", () => props.onActiveChange?.(index()));
129
+ insert(_el$2, () => entry.label);
130
+ effect(() => setAttribute(_el$2, "data-active", index() === (props.active ?? 0) ? "" : void 0));
131
+ return _el$2;
132
+ })()
133
+ }));
134
+ return _el$;
135
+ })() });
136
+ } });
137
+ } });
138
+ }
139
+ });
140
+ }
141
+ /**
142
+ * @-mentions: a plain textarea that, when the text before the caret ends
143
+ * with the trigger character followed by a token, offers the matching
144
+ * candidates in a small anchored vessel; choosing one replaces the token
145
+ * with `trigger + label` and hands the whole text back through
146
+ * `onValueChange`. Arrows move, Enter inserts, Escape dismisses.
147
+ *
148
+ * The field is the shared `Textarea` — field wiring (label ids, the
149
+ * invalid state) rides on it for free — and the vessel anchors to the
150
+ * field as a whole (popover machinery), not to the caret coordinates;
151
+ * caret-precise positioning would need a second positioning system for
152
+ * no practical gain at typical field sizes. Composers that keep their
153
+ * own field anatomy (the AI prompt input) skip this shell and wire
154
+ * `useMentions` plus `MentionsVessel` themselves.
155
+ */
156
+ function Mentions(props) {
157
+ const [own, rest] = splitProps(props, [
158
+ "items",
159
+ "value",
160
+ "trigger",
161
+ "placeholder",
162
+ "autoresize",
163
+ "invalid",
164
+ "size",
165
+ "onValueChange"
166
+ ]);
167
+ const [internal, setInternal] = createSignal("");
168
+ const [fieldEl, setFieldEl] = createSignal(null);
169
+ const value = () => own.value ?? internal();
170
+ const mentions = useMentions(() => ({
171
+ items: own.items ?? [],
172
+ trigger: own.trigger
173
+ }), fieldEl, {
174
+ getText: () => fieldEl()?.value ?? value(),
175
+ setText: (next) => {
176
+ setInternal(next);
177
+ own.onValueChange?.(next);
178
+ }
179
+ });
180
+ createEffect(() => {
181
+ value();
182
+ const node = fieldEl();
183
+ if (!node || !(own.autoresize ?? false)) return;
184
+ node.style.height = "auto";
185
+ node.style.height = `${node.scrollHeight}px`;
186
+ });
187
+ const onInput = () => {
188
+ const node = fieldEl();
189
+ if (!node) return;
190
+ setInternal(node.value);
191
+ own.onValueChange?.(node.value);
192
+ mentions.onInput();
193
+ };
194
+ return (() => {
195
+ var _el$3 = _tmpl$();
196
+ spread(_el$3, mergeProps(rest, {
197
+ "data-scope": "mentions",
198
+ "data-part": "root",
199
+ get ["data-size"]() {
200
+ return own.size ?? "md";
201
+ }
202
+ }), false, true);
203
+ insert(_el$3, createComponent(Textarea, {
204
+ ref: (node) => setFieldEl(node),
205
+ get invalid() {
206
+ return own.invalid;
207
+ },
208
+ rows: 3,
209
+ get placeholder() {
210
+ return own.placeholder;
211
+ },
212
+ get value() {
213
+ return value();
214
+ },
215
+ onValueChange: (next) => {
216
+ setInternal(next);
217
+ own.onValueChange?.(next);
218
+ },
219
+ onInput,
220
+ onKeyDown: (event) => {
221
+ mentions.onKeydown(event);
222
+ },
223
+ "data-scope": "mentions",
224
+ "data-part": "textarea"
225
+ }), null);
226
+ insert(_el$3, createComponent(MentionsVessel, {
227
+ get open() {
228
+ return mentions.open();
229
+ },
230
+ get matches() {
231
+ return mentions.matches();
232
+ },
233
+ get active() {
234
+ return mentions.active();
235
+ },
236
+ get size() {
237
+ return own.size ?? "md";
238
+ },
239
+ get anchor() {
240
+ return fieldEl();
241
+ },
242
+ get onInsert() {
243
+ return mentions.insert;
244
+ },
245
+ get onActiveChange() {
246
+ return mentions.setActive;
247
+ },
248
+ onOpenChange: (open) => {
249
+ if (!open) mentions.close();
250
+ }
251
+ }), null);
252
+ return _el$3;
253
+ })();
254
+ }
255
+ delegateEvents(["mousedown", "click"]);
256
+ //#endregion
257
+ export { MentionsVessel as n, useMentions as r, Mentions as t };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bysages/solid",
3
- "version": "0.2.1",
3
+ "version": "0.2.3",
4
4
  "description": "By Sages Elements components for Solid — styled by the paper-and-ink design tokens",
5
5
  "keywords": [
6
6
  "accessible",
@@ -32,6 +32,78 @@
32
32
  "dist"
33
33
  ],
34
34
  "type": "module",
35
+ "sideEffects": [
36
+ "./dist/components/accordion/index.mjs",
37
+ "./dist/components/ai/index.mjs",
38
+ "./dist/components/alert/index.mjs",
39
+ "./dist/components/angle-slider/index.mjs",
40
+ "./dist/components/avatar/index.mjs",
41
+ "./dist/components/banner/index.mjs",
42
+ "./dist/components/breadcrumb/index.mjs",
43
+ "./dist/components/card/index.mjs",
44
+ "./dist/components/carousel/index.mjs",
45
+ "./dist/components/checkbox/index.mjs",
46
+ "./dist/components/clipboard/index.mjs",
47
+ "./dist/components/collapsible/index.mjs",
48
+ "./dist/components/color-picker/index.mjs",
49
+ "./dist/components/combobox/index.mjs",
50
+ "./dist/components/date-input/index.mjs",
51
+ "./dist/components/date-picker/index.mjs",
52
+ "./dist/components/descriptions/index.mjs",
53
+ "./dist/components/dialog/index.mjs",
54
+ "./dist/components/drawer/index.mjs",
55
+ "./dist/components/editable/index.mjs",
56
+ "./dist/components/empty/index.mjs",
57
+ "./dist/components/field/index.mjs",
58
+ "./dist/components/fieldset/index.mjs",
59
+ "./dist/components/file-upload/index.mjs",
60
+ "./dist/components/float-button/index.mjs",
61
+ "./dist/components/floating-panel/index.mjs",
62
+ "./dist/components/highlight/index.mjs",
63
+ "./dist/components/hover-card/index.mjs",
64
+ "./dist/components/image-cropper/index.mjs",
65
+ "./dist/components/input-group/index.mjs",
66
+ "./dist/components/json-tree-view/index.mjs",
67
+ "./dist/components/layout/index.mjs",
68
+ "./dist/components/list/index.mjs",
69
+ "./dist/components/listbox/index.mjs",
70
+ "./dist/components/marquee/index.mjs",
71
+ "./dist/components/menu/index.mjs",
72
+ "./dist/components/meter/index.mjs",
73
+ "./dist/components/navigation-menu/index.mjs",
74
+ "./dist/components/number-input/index.mjs",
75
+ "./dist/components/page-header/index.mjs",
76
+ "./dist/components/pagination/index.mjs",
77
+ "./dist/components/password-input/index.mjs",
78
+ "./dist/components/pin-input/index.mjs",
79
+ "./dist/components/popover/index.mjs",
80
+ "./dist/components/progress/index.mjs",
81
+ "./dist/components/qr-code/index.mjs",
82
+ "./dist/components/radio-group/index.mjs",
83
+ "./dist/components/rating-group/index.mjs",
84
+ "./dist/components/scroll-area/index.mjs",
85
+ "./dist/components/segment-group/index.mjs",
86
+ "./dist/components/select/index.mjs",
87
+ "./dist/components/signature-pad/index.mjs",
88
+ "./dist/components/slider/index.mjs",
89
+ "./dist/components/splitter/index.mjs",
90
+ "./dist/components/stat/index.mjs",
91
+ "./dist/components/steps/index.mjs",
92
+ "./dist/components/swap/index.mjs",
93
+ "./dist/components/switch/index.mjs",
94
+ "./dist/components/tabs/index.mjs",
95
+ "./dist/components/tags-input/index.mjs",
96
+ "./dist/components/timeline/index.mjs",
97
+ "./dist/components/timer/index.mjs",
98
+ "./dist/components/toast/index.mjs",
99
+ "./dist/components/toc/index.mjs",
100
+ "./dist/components/toggle/index.mjs",
101
+ "./dist/components/toggle-group/index.mjs",
102
+ "./dist/components/tooltip/index.mjs",
103
+ "./dist/components/tour/index.mjs",
104
+ "./dist/components/tree-view/index.mjs",
105
+ "./dist/components/typography/index.mjs"
106
+ ],
35
107
  "main": "dist/index.mjs",
36
108
  "types": "dist/index.d.mts",
37
109
  "exports": {
@@ -43,14 +115,16 @@
43
115
  "dependencies": {
44
116
  "@ark-ui/solid": "5.39.2",
45
117
  "@tanstack/markdown": "0.0.15",
118
+ "@tanstack/solid-form": "1.33.5",
46
119
  "@tanstack/solid-table": "9.2.4",
47
120
  "@tanstack/solid-virtual": "3.13.40",
48
121
  "@zag-js/cascade-select": "1.44.0",
49
122
  "@zag-js/solid": "1.44.0",
50
- "@bysages/core": "0.2.1"
123
+ "@bysages/icons": "0.2.3",
124
+ "@bysages/core": "0.2.3"
51
125
  },
52
126
  "devDependencies": {
53
- "ai": "7.0.107",
127
+ "ai": "7.0.118",
54
128
  "solid-js": "1.9.15",
55
129
  "unplugin-solid": "2.0.0"
56
130
  },