@bysages/react 0.3.1 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (286) hide show
  1. package/dist/{ai-response-BfKTmtCt.mjs → ai-response-nhDOlELQ.mjs} +4 -2
  2. package/dist/chevron-a2nIZKN4.mjs +6 -0
  3. package/dist/components/accordion/index.d.mts +22 -4
  4. package/dist/components/accordion/index.mjs +32 -2
  5. package/dist/components/affix/index.d.mts +4 -1
  6. package/dist/components/affix/index.mjs +6 -4
  7. package/dist/components/ai/index.d.mts +1 -1
  8. package/dist/components/ai/index.mjs +6 -4
  9. package/dist/components/ai-action/index.d.mts +4 -1
  10. package/dist/components/ai-action/index.mjs +4 -2
  11. package/dist/components/ai-attachments/index.d.mts +10 -4
  12. package/dist/components/ai-attachments/index.mjs +17 -45
  13. package/dist/components/ai-message/index.d.mts +4 -1
  14. package/dist/components/ai-message/index.mjs +4 -2
  15. package/dist/components/ai-prompt-input/index.d.mts +5 -2
  16. package/dist/components/ai-prompt-input/index.mjs +11 -15
  17. package/dist/components/ai-reasoning/index.d.mts +4 -1
  18. package/dist/components/ai-reasoning/index.mjs +5 -3
  19. package/dist/components/ai-response/index.d.mts +4 -1
  20. package/dist/components/ai-response/index.mjs +1 -1
  21. package/dist/components/ai-source/index.d.mts +8 -2
  22. package/dist/components/ai-source/index.mjs +6 -3
  23. package/dist/components/ai-suggestion/index.d.mts +4 -1
  24. package/dist/components/ai-suggestion/index.mjs +4 -2
  25. package/dist/components/ai-tool/index.d.mts +4 -1
  26. package/dist/components/ai-tool/index.mjs +5 -3
  27. package/dist/components/alert/index.d.mts +2 -0
  28. package/dist/components/alert/index.mjs +12 -19
  29. package/dist/components/angle-slider/index.d.mts +19 -2
  30. package/dist/components/angle-slider/index.mjs +32 -9
  31. package/dist/components/aspect-ratio/index.d.mts +4 -1
  32. package/dist/components/aspect-ratio/index.mjs +4 -2
  33. package/dist/components/autocomplete/index.d.mts +3 -1
  34. package/dist/components/autocomplete/index.mjs +15 -3
  35. package/dist/components/avatar/index.d.mts +2 -2
  36. package/dist/components/avatar/index.mjs +10 -3
  37. package/dist/components/avatar-group/index.d.mts +4 -1
  38. package/dist/components/avatar-group/index.mjs +4 -2
  39. package/dist/components/back-top/index.d.mts +7 -1
  40. package/dist/components/back-top/index.mjs +13 -18
  41. package/dist/components/badge/index.d.mts +4 -1
  42. package/dist/components/badge/index.mjs +4 -2
  43. package/dist/components/banner/index.mjs +3 -12
  44. package/dist/components/bento/index.mjs +1 -1
  45. package/dist/components/block-ui/index.d.mts +4 -1
  46. package/dist/components/block-ui/index.mjs +4 -2
  47. package/dist/components/breadcrumb/index.mjs +1 -1
  48. package/dist/components/browser/index.mjs +1 -1
  49. package/dist/components/button/index.d.mts +4 -1
  50. package/dist/components/button/index.mjs +4 -2
  51. package/dist/components/button-group/index.mjs +1 -1
  52. package/dist/components/calendar/index.d.mts +3 -1
  53. package/dist/components/calendar/index.mjs +10 -11
  54. package/dist/components/card/index.mjs +1 -1
  55. package/dist/components/carousel/index.d.mts +21 -1
  56. package/dist/components/carousel/index.mjs +44 -3
  57. package/dist/components/cascade-select/index.d.mts +6 -1
  58. package/dist/components/cascade-select/index.mjs +13 -36
  59. package/dist/components/checkbox/index.d.mts +20 -2
  60. package/dist/components/checkbox/index.mjs +29 -9
  61. package/dist/components/checkbox-group/index.d.mts +8 -6
  62. package/dist/components/checkbox-group/index.mjs +45 -49
  63. package/dist/components/chip/index.d.mts +4 -1
  64. package/dist/components/chip/index.mjs +4 -2
  65. package/dist/components/client-only/index.d.mts +7 -2
  66. package/dist/components/client-only/index.mjs +5 -1
  67. package/dist/components/clipboard/index.d.mts +17 -4
  68. package/dist/components/clipboard/index.mjs +34 -6
  69. package/dist/components/collapsible/index.d.mts +16 -4
  70. package/dist/components/collapsible/index.mjs +26 -2
  71. package/dist/components/color-picker/index.d.mts +20 -4
  72. package/dist/components/color-picker/index.mjs +57 -15
  73. package/dist/components/combobox/index.d.mts +27 -1
  74. package/dist/components/combobox/index.mjs +63 -6
  75. package/dist/components/command/index.d.mts +4 -1
  76. package/dist/components/command/index.mjs +8 -2
  77. package/dist/components/comment/index.d.mts +4 -1
  78. package/dist/components/comment/index.mjs +4 -2
  79. package/dist/components/config-provider/index.d.mts +4 -1
  80. package/dist/components/config-provider/index.mjs +3 -1
  81. package/dist/components/container/index.d.mts +4 -1
  82. package/dist/components/container/index.mjs +4 -2
  83. package/dist/components/data-view/index.d.mts +4 -1
  84. package/dist/components/data-view/index.mjs +4 -2
  85. package/dist/components/date-input/index.d.mts +19 -4
  86. package/dist/components/date-input/index.mjs +34 -10
  87. package/dist/components/date-picker/index.d.mts +21 -4
  88. package/dist/components/date-picker/index.mjs +59 -12
  89. package/dist/components/deferred-content/index.d.mts +4 -1
  90. package/dist/components/deferred-content/index.mjs +4 -2
  91. package/dist/components/descriptions/index.d.mts +10 -2
  92. package/dist/components/descriptions/index.mjs +14 -9
  93. package/dist/components/dialog/index.d.mts +18 -5
  94. package/dist/components/dialog/index.mjs +44 -2
  95. package/dist/components/dock/index.mjs +1 -1
  96. package/dist/components/download-trigger/index.d.mts +7 -2
  97. package/dist/components/download-trigger/index.mjs +5 -1
  98. package/dist/components/drawer/index.d.mts +18 -6
  99. package/dist/components/drawer/index.mjs +41 -2
  100. package/dist/components/dynamic-input/index.d.mts +4 -1
  101. package/dist/components/dynamic-input/index.mjs +11 -19
  102. package/dist/components/editable/index.d.mts +28 -7
  103. package/dist/components/editable/index.mjs +44 -5
  104. package/dist/components/ellipsis/index.d.mts +4 -1
  105. package/dist/components/ellipsis/index.mjs +4 -2
  106. package/dist/components/empty/index.mjs +1 -1
  107. package/dist/components/field/index.d.mts +30 -5
  108. package/dist/components/field/index.mjs +37 -4
  109. package/dist/components/fieldset/index.d.mts +19 -4
  110. package/dist/components/fieldset/index.mjs +29 -4
  111. package/dist/components/file-upload/index.d.mts +29 -9
  112. package/dist/components/file-upload/index.mjs +47 -11
  113. package/dist/components/float-button/index.mjs +1 -1
  114. package/dist/components/floating-panel/index.d.mts +18 -6
  115. package/dist/components/floating-panel/index.mjs +56 -2
  116. package/dist/components/focus-trap/index.d.mts +7 -2
  117. package/dist/components/focus-trap/index.mjs +5 -1
  118. package/dist/components/form/index.d.mts +1 -1
  119. package/dist/components/form/index.mjs +6 -3
  120. package/dist/components/frame/index.d.mts +4 -8
  121. package/dist/components/frame/index.mjs +13 -1
  122. package/dist/components/grid/index.d.mts +4 -1
  123. package/dist/components/grid/index.mjs +4 -2
  124. package/dist/components/highlight/index.d.mts +3 -5
  125. package/dist/components/highlight/index.mjs +7 -2
  126. package/dist/components/hover-card/index.d.mts +20 -4
  127. package/dist/components/hover-card/index.mjs +33 -2
  128. package/dist/components/icon/index.d.mts +10 -8
  129. package/dist/components/icon/index.mjs +6 -4
  130. package/dist/components/image/index.d.mts +5 -2
  131. package/dist/components/image/index.mjs +15 -30
  132. package/dist/components/image-cropper/index.d.mts +13 -2
  133. package/dist/components/image-cropper/index.mjs +35 -3
  134. package/dist/components/image-viewer/index.d.mts +2 -24
  135. package/dist/components/image-viewer/index.mjs +3 -113
  136. package/dist/components/input/index.d.mts +3 -1
  137. package/dist/components/input/index.mjs +1 -1
  138. package/dist/components/input-group/index.mjs +1 -1
  139. package/dist/components/json-tree-view/index.d.mts +17 -1
  140. package/dist/components/json-tree-view/index.mjs +27 -6
  141. package/dist/components/kbd/index.d.mts +4 -1
  142. package/dist/components/kbd/index.mjs +4 -2
  143. package/dist/components/layout/index.d.mts +25 -7
  144. package/dist/components/layout/index.mjs +158 -64
  145. package/dist/components/link/index.d.mts +4 -1
  146. package/dist/components/link/index.mjs +4 -2
  147. package/dist/components/list/index.mjs +1 -1
  148. package/dist/components/listbox/index.d.mts +22 -1
  149. package/dist/components/listbox/index.mjs +37 -5
  150. package/dist/components/marquee/index.d.mts +18 -1
  151. package/dist/components/marquee/index.mjs +35 -3
  152. package/dist/components/masonry/index.d.mts +4 -1
  153. package/dist/components/masonry/index.mjs +4 -2
  154. package/dist/components/media-player/index.d.mts +2 -0
  155. package/dist/components/media-player/index.mjs +2 -0
  156. package/dist/components/mentions/index.d.mts +1 -1
  157. package/dist/components/mentions/index.mjs +1 -1
  158. package/dist/components/menu/index.d.mts +29 -11
  159. package/dist/components/menu/index.mjs +35 -13
  160. package/dist/components/menubar/index.d.mts +3 -1
  161. package/dist/components/menubar/index.mjs +7 -2
  162. package/dist/components/meter/index.mjs +1 -1
  163. package/dist/components/navigation-menu/index.d.mts +25 -1
  164. package/dist/components/navigation-menu/index.mjs +37 -2
  165. package/dist/components/number-input/index.d.mts +28 -6
  166. package/dist/components/number-input/index.mjs +34 -9
  167. package/dist/components/order-list/index.d.mts +4 -1
  168. package/dist/components/order-list/index.mjs +27 -25
  169. package/dist/components/page-header/index.mjs +1 -1
  170. package/dist/components/pagination/index.d.mts +23 -3
  171. package/dist/components/pagination/index.mjs +58 -13
  172. package/dist/components/password-input/index.d.mts +24 -6
  173. package/dist/components/password-input/index.mjs +32 -9
  174. package/dist/components/pin-input/index.d.mts +23 -5
  175. package/dist/components/pin-input/index.mjs +30 -8
  176. package/dist/components/popconfirm/index.d.mts +9 -5
  177. package/dist/components/popconfirm/index.mjs +24 -19
  178. package/dist/components/popover/index.d.mts +2 -8
  179. package/dist/components/popover/index.mjs +45 -5
  180. package/dist/components/presence/index.d.mts +10 -2
  181. package/dist/components/presence/index.mjs +6 -1
  182. package/dist/components/progress/index.d.mts +18 -3
  183. package/dist/components/progress/index.mjs +35 -10
  184. package/dist/components/progress-group/index.d.mts +4 -1
  185. package/dist/components/progress-group/index.mjs +5 -3
  186. package/dist/components/qr-code/index.d.mts +14 -1
  187. package/dist/components/qr-code/index.mjs +27 -3
  188. package/dist/components/radio-group/index.d.mts +27 -2
  189. package/dist/components/radio-group/index.mjs +33 -9
  190. package/dist/components/rating-group/index.d.mts +20 -3
  191. package/dist/components/rating-group/index.mjs +27 -9
  192. package/dist/components/result/index.d.mts +1 -1
  193. package/dist/components/result/index.mjs +3 -3
  194. package/dist/components/scroll-area/index.d.mts +14 -1
  195. package/dist/components/scroll-area/index.mjs +33 -3
  196. package/dist/components/segment-group/index.d.mts +28 -2
  197. package/dist/components/segment-group/index.mjs +35 -8
  198. package/dist/components/select/index.d.mts +2 -2
  199. package/dist/components/select/index.mjs +1 -1
  200. package/dist/components/separator/index.d.mts +4 -1
  201. package/dist/components/separator/index.mjs +4 -2
  202. package/dist/components/signature-pad/index.d.mts +25 -5
  203. package/dist/components/signature-pad/index.mjs +38 -4
  204. package/dist/components/skeleton/index.d.mts +4 -1
  205. package/dist/components/skeleton/index.mjs +4 -2
  206. package/dist/components/slider/index.d.mts +21 -2
  207. package/dist/components/slider/index.mjs +32 -9
  208. package/dist/components/spinner/index.d.mts +4 -1
  209. package/dist/components/spinner/index.mjs +4 -2
  210. package/dist/components/split-button/index.d.mts +3 -1
  211. package/dist/components/split-button/index.mjs +13 -18
  212. package/dist/components/splitter/index.d.mts +17 -4
  213. package/dist/components/splitter/index.mjs +36 -2
  214. package/dist/components/spotlight/index.d.mts +4 -1
  215. package/dist/components/spotlight/index.mjs +4 -2
  216. package/dist/components/stack/index.d.mts +4 -1
  217. package/dist/components/stack/index.mjs +7 -5
  218. package/dist/components/stat/index.mjs +1 -1
  219. package/dist/components/steps/index.d.mts +26 -6
  220. package/dist/components/steps/index.mjs +27 -12
  221. package/dist/components/swap/index.d.mts +11 -5
  222. package/dist/components/swap/index.mjs +31 -4
  223. package/dist/components/switch/index.d.mts +20 -2
  224. package/dist/components/switch/index.mjs +28 -9
  225. package/dist/components/table/index.d.mts +4 -1
  226. package/dist/components/table/index.mjs +38 -60
  227. package/dist/components/tabs/index.d.mts +24 -2
  228. package/dist/components/tabs/index.mjs +26 -10
  229. package/dist/components/tags-input/index.d.mts +33 -8
  230. package/dist/components/tags-input/index.mjs +42 -10
  231. package/dist/components/terminal/index.d.mts +4 -1
  232. package/dist/components/terminal/index.mjs +4 -2
  233. package/dist/components/textarea/index.d.mts +4 -1
  234. package/dist/components/textarea/index.mjs +4 -2
  235. package/dist/components/timeline/index.mjs +1 -1
  236. package/dist/components/timer/index.d.mts +18 -1
  237. package/dist/components/timer/index.mjs +52 -3
  238. package/dist/components/toast/index.d.mts +3 -6
  239. package/dist/components/toast/index.mjs +23 -3
  240. package/dist/components/toc/index.d.mts +19 -5
  241. package/dist/components/toc/index.mjs +32 -6
  242. package/dist/components/toggle/index.d.mts +11 -4
  243. package/dist/components/toggle/index.mjs +22 -2
  244. package/dist/components/toggle-group/index.d.mts +26 -2
  245. package/dist/components/toggle-group/index.mjs +32 -7
  246. package/dist/components/toolbar/index.d.mts +4 -1
  247. package/dist/components/toolbar/index.mjs +4 -2
  248. package/dist/components/tooltip/index.d.mts +17 -4
  249. package/dist/components/tooltip/index.mjs +29 -2
  250. package/dist/components/tour/index.d.mts +18 -9
  251. package/dist/components/tour/index.mjs +45 -3
  252. package/dist/components/transfer/index.d.mts +3 -1
  253. package/dist/components/transfer/index.mjs +15 -27
  254. package/dist/components/tree-select/index.d.mts +3 -1
  255. package/dist/components/tree-select/index.mjs +12 -23
  256. package/dist/components/tree-view/index.d.mts +22 -2
  257. package/dist/components/tree-view/index.mjs +51 -9
  258. package/dist/components/typography/index.d.mts +4 -0
  259. package/dist/components/typography/index.mjs +2 -1
  260. package/dist/components/user/index.d.mts +4 -1
  261. package/dist/components/user/index.mjs +4 -2
  262. package/dist/components/virtual-list/index.d.mts +4 -1
  263. package/dist/components/virtual-list/index.mjs +11 -13
  264. package/dist/components/watermark/index.d.mts +4 -1
  265. package/dist/components/watermark/index.mjs +5 -3
  266. package/dist/family-DE_GQeeM.mjs +9 -0
  267. package/dist/icon-BALgGtNK.mjs +18 -0
  268. package/dist/id-C37UYLwJ.mjs +13 -0
  269. package/dist/image-viewer-B-hKFkEw.mjs +141 -0
  270. package/dist/{index-Dn5mHf1g.d.mts → index-B4twHAQC.d.mts} +194 -106
  271. package/dist/{index-Uefyw7Im.d.mts → index-Bbg4heDO.d.mts} +12 -7
  272. package/dist/index-BcRdWGY-.d.mts +115 -0
  273. package/dist/{index-Iy8m0Qev.d.mts → index-D_iKc2Uw.d.mts} +31 -2
  274. package/dist/index-Dj8S4eyJ.d.mts +41 -0
  275. package/dist/index-Eu-Bttta.d.mts +24 -0
  276. package/dist/{index-uPyYiWaL.d.mts → index-PsgGWW3m.d.mts} +8 -2
  277. package/dist/index.d.mts +36 -35
  278. package/dist/index.mjs +11 -10
  279. package/dist/{input-2oezH-dY.mjs → input-BDpQ0e6G.mjs} +4 -2
  280. package/dist/media-player-DjVvo1_7.mjs +554 -0
  281. package/dist/{mentions-DMIBCBOd.mjs → mentions-BwnyvdXz.mjs} +75 -43
  282. package/dist/select-i9UZsQCU.mjs +121 -0
  283. package/package.json +9 -81
  284. package/dist/chevron-BeHvt46K.mjs +0 -17
  285. package/dist/glyph-VI989p8H.mjs +0 -14
  286. package/dist/select-eAHutw56.mjs +0 -70
@@ -1,5 +1,8 @@
1
+ import { t as useElementId } from "./id-C37UYLwJ.mjs";
2
+ import { t as withSelfRoot } from "./family-DE_GQeeM.mjs";
1
3
  import { Field } from "./components/field/index.mjs";
2
- import { injectComponentStyle } from "@bysages/core";
4
+ import { Popover as Popover$1 } from "./components/popover/index.mjs";
5
+ import { injectComponentStyle } from "@bysages/core/styling";
3
6
  import { jsx, jsxs } from "react/jsx-runtime";
4
7
  import { useRef, useState } from "react";
5
8
  import { Popover } from "@ark-ui/react/popover";
@@ -89,14 +92,42 @@ function useMentions(options, textarea, handlers) {
89
92
  }
90
93
  //#endregion
91
94
  //#region src/components/mentions/index.tsx
95
+ function MentionsPopup({ size, matches, active, onInsert, onActiveChange, ...rest }) {
96
+ return /* @__PURE__ */ jsx("div", {
97
+ ...rest,
98
+ "data-scope": "mentions",
99
+ "data-part": "popup",
100
+ "data-size": size,
101
+ role: "listbox",
102
+ children: matches.map((entry, index) => /* @__PURE__ */ jsx("div", {
103
+ role: "option",
104
+ "aria-selected": index === active,
105
+ tabIndex: -1,
106
+ "data-scope": "mentions",
107
+ "data-part": "option",
108
+ "data-active": index === active ? "" : void 0,
109
+ onMouseEnter: () => onActiveChange?.(index),
110
+ onMouseDown: (event) => event.preventDefault(),
111
+ onClick: () => onInsert?.(entry),
112
+ onKeyDown: (event) => {
113
+ if (event.key !== "Enter" && event.key !== " ") return;
114
+ event.preventDefault();
115
+ onInsert?.(entry);
116
+ },
117
+ children: entry.label
118
+ }, entry.value))
119
+ });
120
+ }
92
121
  /** The vessel: the candidates themselves as a floating card. The anchor
93
122
  * is virtual — a live rectangle off the host's field — so a host keeps
94
123
  * its own anatomy (the textarea rides where the host puts it) and the
95
124
  * vessel still points at the right place. Shares the detection state
96
125
  * with the host through `useMentions`. */
97
- function MentionsVessel({ size = "md", open = false, matches = [], active = 0, anchor = null, onInsert, onActiveChange, onOpenChange }) {
126
+ function MentionsVesselImpl({ size = "md", open = false, matches = [], active = 0, anchor = null, onInsert, onActiveChange, onOpenChange, id }) {
98
127
  injectComponentStyle("mentions");
128
+ const hostId = useElementId("mentions", { id });
99
129
  return /* @__PURE__ */ jsx(Popover.Root, {
130
+ id: `${hostId}:vessel`,
100
131
  open,
101
132
  onOpenChange: (details) => onOpenChange?.(details.open),
102
133
  positioning: {
@@ -105,24 +136,19 @@ function MentionsVessel({ size = "md", open = false, matches = [], active = 0, a
105
136
  },
106
137
  children: /* @__PURE__ */ jsx(Portal, { children: /* @__PURE__ */ jsx(Popover.Positioner, { children: /* @__PURE__ */ jsx(Popover.Content, {
107
138
  asChild: true,
108
- children: /* @__PURE__ */ jsx("div", {
109
- "data-scope": "mentions",
110
- "data-part": "popup",
111
- "data-size": size,
112
- children: matches.map((entry, index) => /* @__PURE__ */ jsx("div", {
113
- "data-scope": "mentions",
114
- "data-part": "option",
115
- "data-active": index === active ? "" : void 0,
116
- onMouseEnter: () => onActiveChange?.(index),
117
- onMouseDown: (event) => event.preventDefault(),
118
- onClick: () => onInsert?.(entry),
119
- children: entry.label
120
- }, entry.value))
139
+ children: /* @__PURE__ */ jsx(MentionsPopup, {
140
+ size,
141
+ matches,
142
+ active,
143
+ onInsert,
144
+ onActiveChange
121
145
  })
122
146
  }) }) })
123
147
  });
124
148
  }
125
- function Mentions({ items = [], value, trigger = "@", placeholder, autoresize = false, invalid = false, size = "md", onValueChange, children, ...rest }) {
149
+ const MentionsVessel = withSelfRoot(MentionsVesselImpl);
150
+ function MentionsImpl({ items = [], value, trigger = "@", placeholder, autoresize = false, invalid = false, size = "md", onValueChange, children, ...rest }) {
151
+ const hostId = useElementId("mentions", rest);
126
152
  const [internal, setInternal] = useState("");
127
153
  const fieldRef = useRef(null);
128
154
  const el = () => fieldRef.current;
@@ -148,34 +174,40 @@ function Mentions({ items = [], value, trigger = "@", placeholder, autoresize =
148
174
  "data-scope": "mentions",
149
175
  "data-part": "root",
150
176
  "data-size": size,
151
- children: [
152
- /* @__PURE__ */ jsx(Field.Textarea, {
153
- ref: fieldRef,
154
- autoresize,
155
- rows: 3,
156
- placeholder,
157
- value: current,
158
- onChange: handleChange,
159
- onKeyDown: (event) => mentions.onKeydown(event),
160
- "data-invalid": invalid || void 0,
161
- "data-scope": "mentions",
162
- "data-part": "textarea"
163
- }),
164
- /* @__PURE__ */ jsx(MentionsVessel, {
165
- size,
166
- open: mentions.open,
167
- matches: mentions.matches,
168
- active: mentions.active,
169
- anchor: el(),
170
- onInsert: mentions.insert,
171
- onActiveChange: mentions.setActive,
172
- onOpenChange: (open) => {
173
- if (!open) mentions.close();
174
- }
175
- }),
176
- children
177
- ]
177
+ children: [/* @__PURE__ */ jsxs(Popover.Root, {
178
+ id: `${hostId}:vessel`,
179
+ open: mentions.open,
180
+ onOpenChange: (details) => {
181
+ if (!details.open) mentions.close();
182
+ },
183
+ positioning: { placement: "bottom-start" },
184
+ children: [/* @__PURE__ */ jsx(Popover.Anchor, {
185
+ asChild: true,
186
+ children: /* @__PURE__ */ jsx(Field.Textarea, {
187
+ ref: fieldRef,
188
+ autoresize,
189
+ rows: 3,
190
+ placeholder,
191
+ value: current,
192
+ onChange: handleChange,
193
+ onKeyDown: (event) => mentions.onKeydown(event),
194
+ "data-invalid": invalid || void 0,
195
+ "data-scope": "mentions",
196
+ "data-part": "textarea"
197
+ })
198
+ }), /* @__PURE__ */ jsx(Popover.Positioner, { children: /* @__PURE__ */ jsx(Popover.Content, {
199
+ asChild: true,
200
+ children: /* @__PURE__ */ jsx(MentionsPopup, {
201
+ size,
202
+ matches: mentions.matches,
203
+ active: mentions.active,
204
+ onInsert: mentions.insert,
205
+ onActiveChange: mentions.setActive
206
+ })
207
+ }) })]
208
+ }), children]
178
209
  });
179
210
  }
211
+ const Mentions = Object.assign(MentionsImpl, Popover$1);
180
212
  //#endregion
181
213
  export { MentionsVessel as n, useMentions as r, Mentions as t };
@@ -0,0 +1,121 @@
1
+ import { t as iconNode } from "./icon-BALgGtNK.mjs";
2
+ import { t as useElementId } from "./id-C37UYLwJ.mjs";
3
+ import { injectComponentStyle } from "@bysages/core/styling";
4
+ import { jsx, jsxs } from "react/jsx-runtime";
5
+ import { useMemo } from "react";
6
+ import { useFieldContext } from "@ark-ui/react/field";
7
+ import { Select, createListCollection } from "@ark-ui/react/select";
8
+ //#region src/components/select/native.tsx
9
+ function NativeSelect({ value, options, size = "md", invalid = false, placeholder, disabled = false, onValueChange, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledby, ...rest }) {
10
+ injectComponentStyle("select");
11
+ const field = useFieldContext();
12
+ const fieldProps = field?.getInputProps() ?? {};
13
+ const empty = value == null || value === "";
14
+ const off = disabled || field?.disabled;
15
+ return /* @__PURE__ */ jsxs("span", {
16
+ ...rest,
17
+ "data-scope": "select",
18
+ "data-part": "native-root",
19
+ "data-size": size,
20
+ "data-invalid": invalid || field?.invalid ? "" : void 0,
21
+ "data-disabled": off ? "" : void 0,
22
+ "data-placeholder-shown": empty ? "" : void 0,
23
+ children: [/* @__PURE__ */ jsxs("select", {
24
+ ...fieldProps,
25
+ "aria-label": ariaLabel,
26
+ "aria-labelledby": ariaLabelledby,
27
+ value: value ?? "",
28
+ "data-scope": "select",
29
+ "data-part": "native",
30
+ disabled: off || void 0,
31
+ onChange: (event) => onValueChange?.(event.target.value),
32
+ children: [placeholder ? /* @__PURE__ */ jsx("option", {
33
+ value: "",
34
+ disabled: true,
35
+ hidden: empty ? void 0 : true,
36
+ children: placeholder
37
+ }) : null, options.map((option) => /* @__PURE__ */ jsx("option", {
38
+ value: option.value,
39
+ disabled: option.disabled,
40
+ children: option.label
41
+ }, option.value))]
42
+ }), iconNode("chevron-down", {
43
+ "data-scope": "select",
44
+ "data-part": "native-icon"
45
+ })]
46
+ });
47
+ }
48
+ //#endregion
49
+ //#region src/components/select/index.tsx
50
+ function SelectRoot(props) {
51
+ const id = useElementId("select", props);
52
+ const { size = "md", ...rest } = props;
53
+ return /* @__PURE__ */ jsx(Select.Root, {
54
+ ...rest,
55
+ id,
56
+ "data-size": size
57
+ });
58
+ }
59
+ function toArkValue(value) {
60
+ return value === void 0 || value === "" ? [] : Array.isArray(value) ? value : [value];
61
+ }
62
+ function SelectFacade({ value, defaultValue, options, multiple = false, deselectable = false, clearable = true, disabled = false, invalid = false, required = false, readOnly = false, label, groupLabel, placeholder, name, form, autoComplete, size = "md", onValueChange }) {
63
+ const collection = useMemo(() => createListCollection({ items: options }), [options]);
64
+ return /* @__PURE__ */ jsxs(SelectRoot, {
65
+ size,
66
+ autoComplete,
67
+ collection,
68
+ deselectable,
69
+ disabled,
70
+ form,
71
+ invalid,
72
+ lazyMount: true,
73
+ multiple,
74
+ unmountOnExit: true,
75
+ name,
76
+ readOnly,
77
+ required,
78
+ defaultValue: toArkValue(value ?? defaultValue),
79
+ ...value === void 0 ? {} : { value: toArkValue(value) },
80
+ onValueChange: (details) => onValueChange?.(multiple ? details.value : details.value.at(0) ?? ""),
81
+ children: [
82
+ label ? /* @__PURE__ */ jsx(Select.Label, { children: label }) : null,
83
+ /* @__PURE__ */ jsxs(Select.Control, { children: [
84
+ /* @__PURE__ */ jsx(Select.Trigger, {
85
+ "aria-label": label ? void 0 : placeholder,
86
+ children: /* @__PURE__ */ jsx(Select.ValueText, { placeholder })
87
+ }),
88
+ clearable ? /* @__PURE__ */ jsx(Select.ClearTrigger, { children: iconNode("x", {
89
+ width: 14,
90
+ height: 14
91
+ }) }) : null,
92
+ /* @__PURE__ */ jsx(Select.Indicator, { children: iconNode("chevrons-up-down", {
93
+ width: 14,
94
+ height: 14
95
+ }) })
96
+ ] }),
97
+ /* @__PURE__ */ jsx(Select.Positioner, { children: /* @__PURE__ */ jsx(Select.Content, { children: groupLabel ? /* @__PURE__ */ jsxs(Select.ItemGroup, { children: [/* @__PURE__ */ jsx(Select.ItemGroupLabel, { children: groupLabel }), collection.items.map((item) => /* @__PURE__ */ jsxs(Select.Item, {
98
+ item,
99
+ children: [/* @__PURE__ */ jsx(Select.ItemText, { children: item.label }), /* @__PURE__ */ jsx(Select.ItemIndicator, { children: iconNode("check", {
100
+ width: 14,
101
+ height: 14
102
+ }) })]
103
+ }, item.value))] }) : /* @__PURE__ */ jsx(Select.List, { children: collection.items.map((item) => /* @__PURE__ */ jsxs(Select.Item, {
104
+ item,
105
+ children: [/* @__PURE__ */ jsx(Select.ItemText, { children: item.label }), /* @__PURE__ */ jsx(Select.ItemIndicator, { children: iconNode("check", {
106
+ width: 14,
107
+ height: 14
108
+ }) })]
109
+ }, item.value)) }) }) }),
110
+ /* @__PURE__ */ jsx(Select.HiddenSelect, {})
111
+ ]
112
+ });
113
+ }
114
+ SelectFacade.displayName = "SSelect";
115
+ const Select$1 = Object.assign(SelectFacade, {
116
+ ...Select,
117
+ Root: SelectRoot
118
+ });
119
+ injectComponentStyle("select");
120
+ //#endregion
121
+ export { NativeSelect as n, Select$1 as t };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bysages/react",
3
- "version": "0.3.1",
3
+ "version": "0.4.1",
4
4
  "description": "By Sages Elements components for React — styled by the paper-and-ink design tokens",
5
5
  "keywords": [
6
6
  "accessible",
@@ -32,78 +32,7 @@
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/button-group/index.mjs",
44
- "./dist/components/card/index.mjs",
45
- "./dist/components/carousel/index.mjs",
46
- "./dist/components/checkbox/index.mjs",
47
- "./dist/components/clipboard/index.mjs",
48
- "./dist/components/collapsible/index.mjs",
49
- "./dist/components/color-picker/index.mjs",
50
- "./dist/components/combobox/index.mjs",
51
- "./dist/components/date-input/index.mjs",
52
- "./dist/components/date-picker/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
+ "sideEffects": false,
107
36
  "main": "dist/index.mjs",
108
37
  "types": "dist/index.d.mts",
109
38
  "exports": {
@@ -117,15 +46,14 @@
117
46
  }
118
47
  },
119
48
  "dependencies": {
120
- "@ark-ui/react": "5.39.2",
49
+ "@ark-ui/react": "5.39.3",
121
50
  "@tanstack/markdown": "1.0.0",
122
51
  "@tanstack/react-form": "1.33.5",
123
- "@tanstack/react-table": "9.2.4",
124
- "@tanstack/react-virtual": "3.14.13",
125
- "@zag-js/cascade-select": "1.44.0",
126
- "@zag-js/react": "1.44.0",
127
- "@bysages/core": "0.3.1",
128
- "@bysages/icons": "0.3.1"
52
+ "@tanstack/react-table": "9.2.8",
53
+ "@tanstack/react-virtual": "3.14.14",
54
+ "@zag-js/cascade-select": "1.45.0",
55
+ "@zag-js/react": "1.45.0",
56
+ "@bysages/core": "0.4.1"
129
57
  },
130
58
  "devDependencies": {
131
59
  "@json-render/core": "0.21.0",
@@ -134,7 +62,7 @@
134
62
  "@storybook/react-vite": "10.6.1",
135
63
  "@types/react": "19.3.0",
136
64
  "@types/react-dom": "19.3.0",
137
- "ai": "7.0.126",
65
+ "ai": "7.0.137",
138
66
  "react": "19.3.0",
139
67
  "react-dom": "19.3.0",
140
68
  "storybook": "10.6.1",
@@ -1,17 +0,0 @@
1
- import { jsx } from "react/jsx-runtime";
2
- //#region src/components/ai/chevron.tsx
3
- /** The folding chevron the shared indicator turns. */
4
- const chevron = /* @__PURE__ */ jsx("svg", {
5
- viewBox: "0 0 16 16",
6
- fill: "none",
7
- "aria-hidden": "true",
8
- children: /* @__PURE__ */ jsx("path", {
9
- d: "M6 4l4 4-4 4",
10
- stroke: "currentColor",
11
- strokeWidth: 1.5,
12
- strokeLinecap: "round",
13
- strokeLinejoin: "round"
14
- })
15
- });
16
- //#endregion
17
- export { chevron as t };
@@ -1,14 +0,0 @@
1
- import { jsx } from "react/jsx-runtime";
2
- //#region src/internal/glyph.tsx
3
- /** Render a lucide glyph as a bare svg element — the components' own
4
- * default icons. No span shell: the part rules size the svg directly. */
5
- function glyphNode(glyph, attrs = {}) {
6
- return /* @__PURE__ */ jsx("svg", {
7
- viewBox: `0 0 ${glyph.width} ${glyph.height}`,
8
- "aria-hidden": "true",
9
- ...attrs,
10
- dangerouslySetInnerHTML: { __html: glyph.body }
11
- });
12
- }
13
- //#endregion
14
- export { glyphNode as t };
@@ -1,70 +0,0 @@
1
- import { injectComponentStyle } from "@bysages/core";
2
- import { jsx, jsxs } from "react/jsx-runtime";
3
- import { useFieldContext } from "@ark-ui/react/field";
4
- import { Select } from "@ark-ui/react/select";
5
- //#region src/components/select/native.tsx
6
- function NativeSelect({ value, options, size = "md", invalid = false, placeholder, disabled = false, onValueChange, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledby, ...rest }) {
7
- injectComponentStyle("select");
8
- const field = useFieldContext();
9
- const fieldProps = field?.getInputProps() ?? {};
10
- const empty = value == null || value === "";
11
- const off = disabled || field?.disabled;
12
- return /* @__PURE__ */ jsxs("span", {
13
- ...rest,
14
- "data-scope": "select",
15
- "data-part": "native-root",
16
- "data-size": size,
17
- "data-invalid": invalid || field?.invalid ? "" : void 0,
18
- "data-disabled": off ? "" : void 0,
19
- "data-placeholder-shown": empty ? "" : void 0,
20
- children: [/* @__PURE__ */ jsxs("select", {
21
- ...fieldProps,
22
- "aria-label": ariaLabel,
23
- "aria-labelledby": ariaLabelledby,
24
- value: value ?? "",
25
- "data-scope": "select",
26
- "data-part": "native",
27
- disabled: off || void 0,
28
- onChange: (event) => onValueChange?.(event.target.value),
29
- children: [placeholder ? /* @__PURE__ */ jsx("option", {
30
- value: "",
31
- disabled: true,
32
- hidden: empty ? void 0 : true,
33
- children: placeholder
34
- }) : null, options.map((option) => /* @__PURE__ */ jsx("option", {
35
- value: option.value,
36
- disabled: option.disabled,
37
- children: option.label
38
- }, option.value))]
39
- }), /* @__PURE__ */ jsx("svg", {
40
- "data-scope": "select",
41
- "data-part": "native-icon",
42
- viewBox: "0 0 16 16",
43
- "aria-hidden": "true",
44
- children: /* @__PURE__ */ jsx("path", {
45
- d: "M4 6l4 4 4-4",
46
- fill: "none",
47
- stroke: "currentColor",
48
- strokeWidth: 1.5,
49
- strokeLinecap: "round",
50
- strokeLinejoin: "round"
51
- })
52
- })]
53
- });
54
- }
55
- //#endregion
56
- //#region src/components/select/index.tsx
57
- function SelectRoot(props) {
58
- const { size = "md", ...rest } = props;
59
- return /* @__PURE__ */ jsx(Select.Root, {
60
- ...rest,
61
- "data-size": size
62
- });
63
- }
64
- const Select$1 = {
65
- ...Select,
66
- Root: SelectRoot
67
- };
68
- injectComponentStyle("select");
69
- //#endregion
70
- export { NativeSelect as n, Select$1 as t };