@bysages/react 0.2.2 → 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 (293) hide show
  1. package/README.md +16 -2
  2. package/dist/ai-response-jZy-0Tvv.mjs +127 -0
  3. package/dist/chevron-BeHvt46K.mjs +17 -0
  4. package/dist/components/accordion/index.d.mts +7 -0
  5. package/dist/components/accordion/index.mjs +10 -0
  6. package/dist/components/affix/index.d.mts +20 -0
  7. package/dist/components/affix/index.mjs +18 -0
  8. package/dist/components/ai/index.d.mts +2 -0
  9. package/dist/components/ai/index.mjs +65 -0
  10. package/dist/components/ai-action/index.d.mts +14 -0
  11. package/dist/components/ai-action/index.mjs +18 -0
  12. package/dist/components/ai-attachments/index.d.mts +19 -0
  13. package/dist/components/ai-attachments/index.mjs +106 -0
  14. package/dist/components/ai-message/index.d.mts +11 -0
  15. package/dist/components/ai-message/index.mjs +15 -0
  16. package/dist/components/ai-prompt-input/index.d.mts +47 -0
  17. package/dist/components/ai-prompt-input/index.mjs +135 -0
  18. package/dist/components/ai-reasoning/index.d.mts +13 -0
  19. package/dist/components/ai-reasoning/index.mjs +19 -0
  20. package/dist/components/ai-response/index.d.mts +22 -0
  21. package/dist/components/ai-response/index.mjs +2 -0
  22. package/dist/components/ai-source/index.d.mts +17 -0
  23. package/dist/components/ai-source/index.mjs +27 -0
  24. package/dist/components/ai-suggestion/index.d.mts +13 -0
  25. package/dist/components/ai-suggestion/index.mjs +16 -0
  26. package/dist/components/ai-tool/index.d.mts +21 -0
  27. package/dist/components/ai-tool/index.mjs +36 -0
  28. package/dist/components/alert/index.d.mts +23 -0
  29. package/dist/components/alert/index.mjs +80 -0
  30. package/dist/components/angle-slider/index.d.mts +16 -0
  31. package/dist/components/angle-slider/index.mjs +21 -0
  32. package/dist/components/aspect-ratio/index.d.mts +10 -0
  33. package/dist/components/aspect-ratio/index.mjs +17 -0
  34. package/dist/components/autocomplete/index.d.mts +21 -0
  35. package/dist/components/autocomplete/index.mjs +35 -0
  36. package/dist/components/avatar/index.d.mts +23 -0
  37. package/dist/components/avatar/index.mjs +15 -0
  38. package/dist/components/avatar-group/index.d.mts +11 -0
  39. package/dist/components/avatar-group/index.mjs +15 -0
  40. package/dist/components/back-top/index.d.mts +29 -0
  41. package/dist/components/back-top/index.mjs +82 -0
  42. package/dist/components/badge/index.d.mts +10 -0
  43. package/dist/components/badge/index.mjs +15 -0
  44. package/dist/components/banner/index.d.mts +31 -0
  45. package/dist/components/banner/index.mjs +63 -0
  46. package/dist/components/bento/index.d.mts +26 -0
  47. package/dist/components/bento/index.mjs +41 -0
  48. package/dist/components/block-ui/index.d.mts +12 -0
  49. package/dist/components/block-ui/index.mjs +24 -0
  50. package/dist/components/breadcrumb/index.d.mts +32 -0
  51. package/dist/components/breadcrumb/index.mjs +35 -0
  52. package/dist/components/browser/index.d.mts +23 -0
  53. package/dist/components/browser/index.mjs +70 -0
  54. package/dist/components/button/index.d.mts +19 -0
  55. package/dist/components/button/index.mjs +29 -0
  56. package/dist/components/button-group/index.d.mts +24 -0
  57. package/dist/components/button-group/index.mjs +25 -0
  58. package/dist/components/calendar/index.d.mts +17 -0
  59. package/dist/components/calendar/index.mjs +96 -0
  60. package/dist/components/card/index.d.mts +46 -0
  61. package/dist/components/card/index.mjs +44 -0
  62. package/dist/components/carousel/index.d.mts +9 -0
  63. package/dist/components/carousel/index.mjs +12 -0
  64. package/dist/components/cascade-select/index.d.mts +31 -0
  65. package/dist/components/cascade-select/index.mjs +229 -0
  66. package/dist/components/checkbox/index.d.mts +16 -0
  67. package/dist/components/checkbox/index.mjs +21 -0
  68. package/dist/components/checkbox-group/index.d.mts +28 -0
  69. package/dist/components/checkbox-group/index.mjs +65 -0
  70. package/dist/components/chip/index.d.mts +12 -0
  71. package/dist/components/chip/index.mjs +17 -0
  72. package/dist/components/client-only/index.d.mts +2 -0
  73. package/dist/components/client-only/index.mjs +2 -0
  74. package/dist/components/clipboard/index.d.mts +17 -0
  75. package/dist/components/clipboard/index.mjs +17 -0
  76. package/dist/components/collapsible/index.d.mts +7 -0
  77. package/dist/components/collapsible/index.mjs +10 -0
  78. package/dist/components/collection/index.d.mts +2 -0
  79. package/dist/components/collection/index.mjs +2 -0
  80. package/dist/components/color-picker/index.d.mts +20 -0
  81. package/dist/components/color-picker/index.mjs +25 -0
  82. package/dist/components/combobox/index.d.mts +17 -0
  83. package/dist/components/combobox/index.mjs +18 -0
  84. package/dist/components/command/index.d.mts +43 -0
  85. package/dist/components/command/index.mjs +137 -0
  86. package/dist/components/comment/index.d.mts +17 -0
  87. package/dist/components/comment/index.mjs +47 -0
  88. package/dist/components/config-provider/index.d.mts +46 -0
  89. package/dist/components/config-provider/index.mjs +41 -0
  90. package/dist/components/container/index.d.mts +13 -0
  91. package/dist/components/container/index.mjs +15 -0
  92. package/dist/components/data-view/index.d.mts +18 -0
  93. package/dist/components/data-view/index.mjs +64 -0
  94. package/dist/components/date-input/index.d.mts +17 -0
  95. package/dist/components/date-input/index.mjs +21 -0
  96. package/dist/components/date-picker/index.d.mts +19 -0
  97. package/dist/components/date-picker/index.mjs +23 -0
  98. package/dist/components/deferred-content/index.d.mts +16 -0
  99. package/dist/components/deferred-content/index.mjs +34 -0
  100. package/dist/components/descriptions/index.d.mts +33 -0
  101. package/dist/components/descriptions/index.mjs +50 -0
  102. package/dist/components/dialog/index.d.mts +9 -0
  103. package/dist/components/dialog/index.mjs +11 -0
  104. package/dist/components/dock/index.d.mts +25 -0
  105. package/dist/components/dock/index.mjs +51 -0
  106. package/dist/components/download-trigger/index.d.mts +2 -0
  107. package/dist/components/download-trigger/index.mjs +2 -0
  108. package/dist/components/drawer/index.d.mts +9 -0
  109. package/dist/components/drawer/index.mjs +12 -0
  110. package/dist/components/dynamic-input/index.d.mts +28 -0
  111. package/dist/components/dynamic-input/index.mjs +83 -0
  112. package/dist/components/editable/index.d.mts +16 -0
  113. package/dist/components/editable/index.mjs +17 -0
  114. package/dist/components/ellipsis/index.d.mts +10 -0
  115. package/dist/components/ellipsis/index.mjs +19 -0
  116. package/dist/components/empty/index.d.mts +28 -0
  117. package/dist/components/empty/index.mjs +32 -0
  118. package/dist/components/field/index.d.mts +8 -0
  119. package/dist/components/field/index.mjs +11 -0
  120. package/dist/components/fieldset/index.d.mts +7 -0
  121. package/dist/components/fieldset/index.mjs +10 -0
  122. package/dist/components/file-upload/index.d.mts +18 -0
  123. package/dist/components/file-upload/index.mjs +23 -0
  124. package/dist/components/float-button/index.d.mts +59 -0
  125. package/dist/components/float-button/index.mjs +90 -0
  126. package/dist/components/floating-panel/index.d.mts +9 -0
  127. package/dist/components/floating-panel/index.mjs +12 -0
  128. package/dist/components/focus-trap/index.d.mts +2 -0
  129. package/dist/components/focus-trap/index.mjs +2 -0
  130. package/dist/components/form/index.d.mts +2 -0
  131. package/dist/components/form/index.mjs +67 -0
  132. package/dist/components/format/index.d.mts +9 -0
  133. package/dist/components/format/index.mjs +10 -0
  134. package/dist/components/frame/index.d.mts +10 -0
  135. package/dist/components/frame/index.mjs +12 -0
  136. package/dist/components/grid/index.d.mts +13 -0
  137. package/dist/components/grid/index.mjs +31 -0
  138. package/dist/components/highlight/index.d.mts +7 -0
  139. package/dist/components/highlight/index.mjs +11 -0
  140. package/dist/components/hover-card/index.d.mts +7 -0
  141. package/dist/components/hover-card/index.mjs +10 -0
  142. package/dist/components/icon/index.d.mts +24 -0
  143. package/dist/components/icon/index.mjs +26 -0
  144. package/dist/components/image/index.d.mts +17 -0
  145. package/dist/components/image/index.mjs +57 -0
  146. package/dist/components/image-cropper/index.d.mts +8 -0
  147. package/dist/components/image-cropper/index.mjs +11 -0
  148. package/dist/components/image-viewer/index.d.mts +18 -0
  149. package/dist/components/image-viewer/index.mjs +110 -0
  150. package/dist/components/input/index.d.mts +19 -0
  151. package/dist/components/input/index.mjs +2 -0
  152. package/dist/components/input-group/index.d.mts +17 -0
  153. package/dist/components/input-group/index.mjs +31 -0
  154. package/dist/components/json-tree-view/index.d.mts +7 -0
  155. package/dist/components/json-tree-view/index.mjs +10 -0
  156. package/dist/components/kbd/index.d.mts +6 -0
  157. package/dist/components/kbd/index.mjs +14 -0
  158. package/dist/components/layout/index.d.mts +63 -0
  159. package/dist/components/layout/index.mjs +133 -0
  160. package/dist/components/link/index.d.mts +10 -0
  161. package/dist/components/link/index.mjs +18 -0
  162. package/dist/components/list/index.d.mts +39 -0
  163. package/dist/components/list/index.mjs +66 -0
  164. package/dist/components/listbox/index.d.mts +18 -0
  165. package/dist/components/listbox/index.mjs +18 -0
  166. package/dist/components/marquee/index.d.mts +7 -0
  167. package/dist/components/marquee/index.mjs +10 -0
  168. package/dist/components/masonry/index.d.mts +11 -0
  169. package/dist/components/masonry/index.mjs +29 -0
  170. package/dist/components/mentions/index.d.mts +2 -0
  171. package/dist/components/mentions/index.mjs +2 -0
  172. package/dist/components/menu/index.d.mts +20 -0
  173. package/dist/components/menu/index.mjs +37 -0
  174. package/dist/components/menubar/index.d.mts +32 -0
  175. package/dist/components/menubar/index.mjs +35 -0
  176. package/dist/components/meter/index.d.mts +26 -0
  177. package/dist/components/meter/index.mjs +59 -0
  178. package/dist/components/navigation-menu/index.d.mts +8 -0
  179. package/dist/components/navigation-menu/index.mjs +11 -0
  180. package/dist/components/number-input/index.d.mts +16 -0
  181. package/dist/components/number-input/index.mjs +21 -0
  182. package/dist/components/order-list/index.d.mts +21 -0
  183. package/dist/components/order-list/index.mjs +162 -0
  184. package/dist/components/page-header/index.d.mts +32 -0
  185. package/dist/components/page-header/index.mjs +34 -0
  186. package/dist/components/pagination/index.d.mts +18 -0
  187. package/dist/components/pagination/index.mjs +23 -0
  188. package/dist/components/password-input/index.d.mts +16 -0
  189. package/dist/components/password-input/index.mjs +21 -0
  190. package/dist/components/pin-input/index.d.mts +15 -0
  191. package/dist/components/pin-input/index.mjs +20 -0
  192. package/dist/components/popconfirm/index.d.mts +20 -0
  193. package/dist/components/popconfirm/index.mjs +44 -0
  194. package/dist/components/popover/index.d.mts +8 -0
  195. package/dist/components/popover/index.mjs +11 -0
  196. package/dist/components/presence/index.d.mts +2 -0
  197. package/dist/components/presence/index.mjs +2 -0
  198. package/dist/components/progress/index.d.mts +16 -0
  199. package/dist/components/progress/index.mjs +21 -0
  200. package/dist/components/progress-group/index.d.mts +22 -0
  201. package/dist/components/progress-group/index.mjs +56 -0
  202. package/dist/components/qr-code/index.d.mts +8 -0
  203. package/dist/components/qr-code/index.mjs +11 -0
  204. package/dist/components/radio-group/index.d.mts +16 -0
  205. package/dist/components/radio-group/index.mjs +21 -0
  206. package/dist/components/rating-group/index.d.mts +16 -0
  207. package/dist/components/rating-group/index.mjs +21 -0
  208. package/dist/components/result/index.d.mts +31 -0
  209. package/dist/components/result/index.mjs +59 -0
  210. package/dist/components/scroll-area/index.d.mts +7 -0
  211. package/dist/components/scroll-area/index.mjs +10 -0
  212. package/dist/components/segment-group/index.d.mts +18 -0
  213. package/dist/components/segment-group/index.mjs +20 -0
  214. package/dist/components/select/index.d.mts +2 -0
  215. package/dist/components/select/index.mjs +2 -0
  216. package/dist/components/separator/index.d.mts +11 -0
  217. package/dist/components/separator/index.mjs +16 -0
  218. package/dist/components/signature-pad/index.d.mts +8 -0
  219. package/dist/components/signature-pad/index.mjs +11 -0
  220. package/dist/components/skeleton/index.d.mts +7 -0
  221. package/dist/components/skeleton/index.mjs +13 -0
  222. package/dist/components/slider/index.d.mts +16 -0
  223. package/dist/components/slider/index.mjs +21 -0
  224. package/dist/components/spinner/index.d.mts +9 -0
  225. package/dist/components/spinner/index.mjs +36 -0
  226. package/dist/components/split-button/index.d.mts +36 -0
  227. package/dist/components/split-button/index.mjs +71 -0
  228. package/dist/components/splitter/index.d.mts +7 -0
  229. package/dist/components/splitter/index.mjs +10 -0
  230. package/dist/components/spotlight/index.d.mts +12 -0
  231. package/dist/components/spotlight/index.mjs +33 -0
  232. package/dist/components/stack/index.d.mts +11 -0
  233. package/dist/components/stack/index.mjs +32 -0
  234. package/dist/components/stat/index.d.mts +29 -0
  235. package/dist/components/stat/index.mjs +37 -0
  236. package/dist/components/steps/index.d.mts +19 -0
  237. package/dist/components/steps/index.mjs +24 -0
  238. package/dist/components/swap/index.d.mts +8 -0
  239. package/dist/components/swap/index.mjs +11 -0
  240. package/dist/components/switch/index.d.mts +16 -0
  241. package/dist/components/switch/index.mjs +21 -0
  242. package/dist/components/table/index.d.mts +79 -0
  243. package/dist/components/table/index.mjs +688 -0
  244. package/dist/components/tabs/index.d.mts +20 -0
  245. package/dist/components/tabs/index.mjs +24 -0
  246. package/dist/components/tags-input/index.d.mts +17 -0
  247. package/dist/components/tags-input/index.mjs +22 -0
  248. package/dist/components/terminal/index.d.mts +17 -0
  249. package/dist/components/terminal/index.mjs +65 -0
  250. package/dist/components/textarea/index.d.mts +14 -0
  251. package/dist/components/textarea/index.mjs +20 -0
  252. package/dist/components/timeline/index.d.mts +26 -0
  253. package/dist/components/timeline/index.mjs +40 -0
  254. package/dist/components/timer/index.d.mts +8 -0
  255. package/dist/components/timer/index.mjs +11 -0
  256. package/dist/components/toast/index.d.mts +11 -0
  257. package/dist/components/toast/index.mjs +13 -0
  258. package/dist/components/toc/index.d.mts +7 -0
  259. package/dist/components/toc/index.mjs +10 -0
  260. package/dist/components/toggle/index.d.mts +7 -0
  261. package/dist/components/toggle/index.mjs +10 -0
  262. package/dist/components/toggle-group/index.d.mts +15 -0
  263. package/dist/components/toggle-group/index.mjs +20 -0
  264. package/dist/components/toolbar/index.d.mts +17 -0
  265. package/dist/components/toolbar/index.mjs +29 -0
  266. package/dist/components/tooltip/index.d.mts +7 -0
  267. package/dist/components/tooltip/index.mjs +10 -0
  268. package/dist/components/tour/index.d.mts +11 -0
  269. package/dist/components/tour/index.mjs +13 -0
  270. package/dist/components/transfer/index.d.mts +23 -0
  271. package/dist/components/transfer/index.mjs +154 -0
  272. package/dist/components/tree-select/index.d.mts +28 -0
  273. package/dist/components/tree-select/index.mjs +157 -0
  274. package/dist/components/tree-view/index.d.mts +19 -0
  275. package/dist/components/tree-view/index.mjs +18 -0
  276. package/dist/components/typography/index.d.mts +32 -0
  277. package/dist/components/typography/index.mjs +34 -0
  278. package/dist/components/user/index.d.mts +20 -0
  279. package/dist/components/user/index.mjs +42 -0
  280. package/dist/components/virtual-list/index.d.mts +17 -0
  281. package/dist/components/virtual-list/index.mjs +52 -0
  282. package/dist/components/watermark/index.d.mts +16 -0
  283. package/dist/components/watermark/index.mjs +80 -0
  284. package/dist/index-CsfxYv6J.d.mts +10383 -0
  285. package/dist/index-DFN9F5Zt.d.mts +42 -0
  286. package/dist/index-Uefyw7Im.d.mts +108 -0
  287. package/dist/index-uPyYiWaL.d.mts +1813 -0
  288. package/dist/index.d.mts +141 -15446
  289. package/dist/index.mjs +141 -4871
  290. package/dist/input-2oezH-dY.mjs +58 -0
  291. package/dist/mentions-DMIBCBOd.mjs +181 -0
  292. package/dist/select-D1xiT1oJ.mjs +68 -0
  293. package/package.json +103 -9
@@ -0,0 +1,36 @@
1
+ import { injectComponentStyle } from "@bysages/core";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ //#region src/components/spinner/index.tsx
4
+ /** A wheel of waiting: one arc of ink turning about its center. Quiet by
5
+ * default — it reports progress without claiming attention. */
6
+ function Spinner({ size = "md", children, ...rest }) {
7
+ injectComponentStyle("spinner");
8
+ return /* @__PURE__ */ jsxs("span", {
9
+ ...rest,
10
+ role: "status",
11
+ "aria-label": rest["aria-label"] ?? "Loading",
12
+ "data-scope": "spinner",
13
+ "data-part": "root",
14
+ "data-size": size,
15
+ children: [/* @__PURE__ */ jsxs("svg", {
16
+ viewBox: "0 0 24 24",
17
+ fill: "none",
18
+ "aria-hidden": true,
19
+ children: [/* @__PURE__ */ jsx("circle", {
20
+ cx: 12,
21
+ cy: 12,
22
+ r: 9,
23
+ stroke: "currentColor",
24
+ strokeOpacity: .2,
25
+ strokeWidth: 2.5
26
+ }), /* @__PURE__ */ jsx("path", {
27
+ d: "M21 12a9 9 0 0 0-9-9",
28
+ stroke: "currentColor",
29
+ strokeWidth: 2.5,
30
+ strokeLinecap: "round"
31
+ })]
32
+ }), children]
33
+ });
34
+ }
35
+ //#endregion
36
+ export { Spinner };
@@ -0,0 +1,36 @@
1
+ import { HTMLAttributes } from "react";
2
+ //#region src/components/split-button/index.d.ts
3
+ export interface SplitButtonEntry {
4
+ label: string;
5
+ /** Handed back with `onSelect` when the entry is chosen. */
6
+ value: string;
7
+ danger?: boolean;
8
+ disabled?: boolean;
9
+ }
10
+ export interface SplitButtonProps extends Omit<HTMLAttributes<HTMLDivElement>, "onSelect"> {
11
+ /** The main action's label. */
12
+ label: string;
13
+ /** The dropdown's entries. */
14
+ items?: SplitButtonEntry[];
15
+ /** How both halves rest; the arrow always reads as one control with
16
+ * the main button. */
17
+ variant?: "solid" | "outline" | "ghost" | "subtle";
18
+ tone?: "ink" | "info" | "success" | "warning" | "danger";
19
+ size?: "sm" | "md" | "lg";
20
+ disabled?: boolean;
21
+ /** The main button was pressed. */
22
+ onClick?: () => void;
23
+ /** An entry was chosen; carries its `value`. */
24
+ onSelect?: (value: string) => void;
25
+ }
26
+ /**
27
+ * A primary action with its alternatives one seam away: the main button
28
+ * fires `onClick`, the fitted arrow opens a paper vessel of the same
29
+ * register whose entries report `onSelect` with their value. The arrow
30
+ * is the menu machine's trigger grafting the button recipe — the
31
+ * machine keeps the element (positioning, focus, `data-state`), the
32
+ * button stylesheet's trigger register dresses it. The popup keeps the
33
+ * menu parts untouched.
34
+ */
35
+ export declare function SplitButton({ label, items, variant, tone, size, disabled, onClick, onSelect, ...rest }: SplitButtonProps): import("react").JSX.Element;
36
+ //#endregion
@@ -0,0 +1,71 @@
1
+ import { Button } from "../button/index.mjs";
2
+ import { injectComponentStyle } from "@bysages/core";
3
+ import { jsx, jsxs } from "react/jsx-runtime";
4
+ import { Portal } from "@ark-ui/react/portal";
5
+ import { Menu } from "@ark-ui/react/menu";
6
+ //#region src/components/split-button/index.tsx
7
+ /**
8
+ * A primary action with its alternatives one seam away: the main button
9
+ * fires `onClick`, the fitted arrow opens a paper vessel of the same
10
+ * register whose entries report `onSelect` with their value. The arrow
11
+ * is the menu machine's trigger grafting the button recipe — the
12
+ * machine keeps the element (positioning, focus, `data-state`), the
13
+ * button stylesheet's trigger register dresses it. The popup keeps the
14
+ * menu parts untouched.
15
+ */
16
+ function SplitButton({ label, items = [], variant = "solid", tone = "ink", size = "md", disabled = false, onClick, onSelect, ...rest }) {
17
+ injectComponentStyle("split-button");
18
+ injectComponentStyle("menu");
19
+ return /* @__PURE__ */ jsxs("div", {
20
+ ...rest,
21
+ "data-scope": "split-button",
22
+ "data-part": "root",
23
+ children: [/* @__PURE__ */ jsx(Button, {
24
+ variant,
25
+ tone,
26
+ size,
27
+ disabled,
28
+ onClick,
29
+ children: label
30
+ }), /* @__PURE__ */ jsxs(Menu.Root, {
31
+ positioning: { placement: "bottom-end" },
32
+ children: [/* @__PURE__ */ jsx(Menu.Trigger, {
33
+ asChild: true,
34
+ children: /* @__PURE__ */ jsx("button", {
35
+ type: "button",
36
+ disabled,
37
+ "data-variant": variant,
38
+ "data-tone": tone,
39
+ "data-size": size,
40
+ "data-square": "true",
41
+ "data-motion": "ink-ripple lit",
42
+ "aria-label": "More actions",
43
+ children: chevronDown()
44
+ })
45
+ }), /* @__PURE__ */ jsx(Portal, { children: /* @__PURE__ */ jsx(Menu.Positioner, { children: /* @__PURE__ */ jsx(Menu.Content, { children: items.map((entry) => /* @__PURE__ */ jsx(Menu.Item, {
46
+ value: entry.value,
47
+ disabled: entry.disabled,
48
+ "data-danger": entry.danger ? "" : void 0,
49
+ onSelect: () => onSelect?.(entry.value),
50
+ children: /* @__PURE__ */ jsx(Menu.ItemText, { children: entry.label })
51
+ }, entry.value)) }) }) })]
52
+ })]
53
+ });
54
+ }
55
+ /** One stroke pointing down: all a fitted dropdown arrow needs. */
56
+ function chevronDown() {
57
+ return /* @__PURE__ */ jsx("svg", {
58
+ width: 16,
59
+ height: 16,
60
+ viewBox: "0 0 24 24",
61
+ fill: "none",
62
+ stroke: "currentColor",
63
+ strokeWidth: 1.75,
64
+ strokeLinecap: "round",
65
+ strokeLinejoin: "round",
66
+ "aria-hidden": "true",
67
+ children: /* @__PURE__ */ jsx("path", { d: "m6 9 6 6 6-6" })
68
+ });
69
+ }
70
+ //#endregion
71
+ export { SplitButton };
@@ -0,0 +1,7 @@
1
+ import { Splitter as Splitter$1 } from "@ark-ui/react/splitter";
2
+ //#region src/components/splitter/index.d.ts
3
+ /** Ark's Splitter, dressed in the paper-and-ink system: panels divide on
4
+ * a hairline and a small paper-seal thumb answers the hand. The API is
5
+ * Ark's own — Root, Panel, ResizeTrigger, ResizeTriggerIndicator. */
6
+ export declare const Splitter: typeof Splitter$1;
7
+ //#endregion
@@ -0,0 +1,10 @@
1
+ import { injectComponentStyle } from "@bysages/core";
2
+ import { Splitter as Splitter$1 } from "@ark-ui/react/splitter";
3
+ //#region src/components/splitter/index.tsx
4
+ /** Ark's Splitter, dressed in the paper-and-ink system: panels divide on
5
+ * a hairline and a small paper-seal thumb answers the hand. The API is
6
+ * Ark's own — Root, Panel, ResizeTrigger, ResizeTriggerIndicator. */
7
+ const Splitter = Splitter$1;
8
+ injectComponentStyle("splitter");
9
+ //#endregion
10
+ export { Splitter };
@@ -0,0 +1,12 @@
1
+ import { HTMLAttributes, ReactNode } from "react";
2
+ //#region src/components/spotlight/index.d.ts
3
+ export interface SpotlightProps extends HTMLAttributes<HTMLDivElement> {
4
+ /** How far the lamp throws before the ink swallows it. */
5
+ radius?: string;
6
+ children?: ReactNode;
7
+ }
8
+ /** The ink-light card: a vessel whose rim and face take light from the
9
+ * reader's hand. The wrapper only measures and writes the geometry —
10
+ * the lamp itself is the two layers the stylesheet paints. */
11
+ export declare function Spotlight({ radius, children, ...rest }: SpotlightProps): import("react").JSX.Element;
12
+ //#endregion
@@ -0,0 +1,33 @@
1
+ import { injectComponentStyle } from "@bysages/core";
2
+ import { jsx } from "react/jsx-runtime";
3
+ //#region src/components/spotlight/index.tsx
4
+ /** The ink-light card: a vessel whose rim and face take light from the
5
+ * reader's hand. The wrapper only measures and writes the geometry —
6
+ * the lamp itself is the two layers the stylesheet paints. */
7
+ function Spotlight({ radius, children, ...rest }) {
8
+ injectComponentStyle("spotlight");
9
+ const track = (event) => {
10
+ const host = event.currentTarget;
11
+ const rect = host.getBoundingClientRect();
12
+ host.style.setProperty("--bs-spot-x", `${event.clientX - rect.left}px`);
13
+ host.style.setProperty("--bs-spot-y", `${event.clientY - rect.top}px`);
14
+ };
15
+ return /* @__PURE__ */ jsx("div", {
16
+ ...rest,
17
+ "data-scope": "spotlight",
18
+ "data-part": "root",
19
+ style: {
20
+ ...rest.style,
21
+ "--bs-spot-radius": radius
22
+ },
23
+ onPointerMove: track,
24
+ onPointerEnter: (event) => {
25
+ track(event);
26
+ event.currentTarget.setAttribute("data-hovered", "");
27
+ },
28
+ onPointerLeave: (event) => event.currentTarget.removeAttribute("data-hovered"),
29
+ children
30
+ });
31
+ }
32
+ //#endregion
33
+ export { Spotlight };
@@ -0,0 +1,11 @@
1
+ import { HTMLAttributes } from "react";
2
+ //#region src/components/stack/index.d.ts
3
+ export interface StackProps extends HTMLAttributes<HTMLDivElement> {
4
+ direction?: "column" | "row";
5
+ gap?: "none" | "xs" | "sm" | "md" | "lg" | "xl";
6
+ wrap?: boolean;
7
+ align?: string;
8
+ justify?: string;
9
+ }
10
+ export declare function Stack({ direction, gap, wrap, align, justify, ...rest }: StackProps): import("react").JSX.Element;
11
+ //#endregion
@@ -0,0 +1,32 @@
1
+ import { injectComponentStyle } from "@bysages/core";
2
+ import { jsx } from "react/jsx-runtime";
3
+ //#region src/components/stack/index.tsx
4
+ /** Whitespace chosen by name: the named steps point at the space ramp so
5
+ * siblings are held apart by one token, never by ad-hoc margins. */
6
+ const gapVars = {
7
+ none: "0",
8
+ xs: "var(--bs-gap-xs)",
9
+ sm: "var(--bs-gap-sm)",
10
+ md: "var(--bs-gap-md)",
11
+ lg: "var(--bs-gap-lg)",
12
+ xl: "var(--bs-gap-xl)"
13
+ };
14
+ function Stack({ direction = "column", gap = "md", wrap = false, align, justify, ...rest }) {
15
+ injectComponentStyle("stack");
16
+ const style = {
17
+ ...rest.style,
18
+ "--bs-stack-gap": gapVars[gap] ?? gapVars.md,
19
+ alignItems: align,
20
+ justifyContent: justify,
21
+ flexWrap: wrap ? "wrap" : void 0
22
+ };
23
+ return /* @__PURE__ */ jsx("div", {
24
+ ...rest,
25
+ style,
26
+ "data-scope": "stack",
27
+ "data-part": "root",
28
+ "data-direction": direction
29
+ });
30
+ }
31
+ //#endregion
32
+ export { Stack };
@@ -0,0 +1,29 @@
1
+ import { HTMLAttributes } from "react";
2
+ //#region src/components/stat/index.d.ts
3
+ export interface StatDeltaProps extends HTMLAttributes<HTMLElement> {
4
+ direction?: "up" | "down" | "flat";
5
+ "data-direction"?: string;
6
+ }
7
+ export declare const Stat: {
8
+ ({ children, ...rest }: HTMLAttributes<HTMLElement>): import("react").JSX.Element;
9
+ displayName: string;
10
+ } & {
11
+ Root: {
12
+ ({ children, ...rest }: HTMLAttributes<HTMLElement>): import("react").JSX.Element;
13
+ displayName: string;
14
+ };
15
+ Label: {
16
+ ({ children, ...rest }: HTMLAttributes<HTMLElement>): import("react").JSX.Element;
17
+ displayName: string;
18
+ };
19
+ Value: {
20
+ ({ children, ...rest }: HTMLAttributes<HTMLElement>): import("react").JSX.Element;
21
+ displayName: string;
22
+ };
23
+ Delta: ({ direction, children, ...rest }: StatDeltaProps) => import("react").JSX.Element;
24
+ Description: {
25
+ ({ children, ...rest }: HTMLAttributes<HTMLElement>): import("react").JSX.Element;
26
+ displayName: string;
27
+ };
28
+ };
29
+ //#endregion
@@ -0,0 +1,37 @@
1
+ import { injectComponentStyle } from "@bysages/core";
2
+ import { jsx } from "react/jsx-runtime";
3
+ //#region src/components/stat/index.tsx
4
+ function part(name, tag) {
5
+ const Tag = tag;
6
+ const Component = ({ children, ...rest }) => /* @__PURE__ */ jsx(Tag, {
7
+ ...rest,
8
+ "data-scope": "stat",
9
+ "data-part": name.toLowerCase(),
10
+ children
11
+ });
12
+ Component.displayName = "Stat" + name;
13
+ return Component;
14
+ }
15
+ const Root = part("Root", "div");
16
+ const Label = part("Label", "p");
17
+ const Value = part("Value", "div");
18
+ const Description = part("Description", "p");
19
+ /** The delta reads the direction in the fixed semantic pigments; an
20
+ * explicit `data-direction` attribute on the consumer side still wins. */
21
+ const Delta = ({ direction = "flat", children, ...rest }) => /* @__PURE__ */ jsx("span", {
22
+ ...rest,
23
+ "data-scope": "stat",
24
+ "data-part": "delta",
25
+ "data-direction": rest["data-direction"] ?? direction,
26
+ children
27
+ });
28
+ const Stat = Object.assign(Root, {
29
+ Root,
30
+ Label,
31
+ Value,
32
+ Delta,
33
+ Description
34
+ });
35
+ injectComponentStyle("stat");
36
+ //#endregion
37
+ export { Stat };
@@ -0,0 +1,19 @@
1
+ import { ComponentProps } from "react";
2
+ import { Steps as Steps$1 } from "@ark-ui/react/steps";
3
+ //#region src/components/steps/index.d.ts
4
+ type StepsRootProps = ComponentProps<typeof Steps$1.Root> & {
5
+ /** One rung of the control-height ladder every indicator stands on. */
6
+ size?: "sm" | "md" | "lg";
7
+ };
8
+ declare function StepsRoot({ size, ...rest }: StepsRootProps): import("react").JSX.Element;
9
+ /**
10
+ * Steps — linear progress through a sequence.
11
+ *
12
+ * Parts: Root, List, Item, Trigger, Indicator, Separator, Content,
13
+ * PrevTrigger, NextTrigger, Progress. Indicator and Separator carry
14
+ * data-complete / data-current / data-incomplete.
15
+ */
16
+ export declare const Steps: Omit<typeof Steps$1, "Root"> & {
17
+ Root: typeof StepsRoot;
18
+ };
19
+ //#endregion
@@ -0,0 +1,24 @@
1
+ import { injectComponentStyle } from "@bysages/core";
2
+ import { jsx } from "react/jsx-runtime";
3
+ import { Steps as Steps$1 } from "@ark-ui/react/steps";
4
+ //#region src/components/steps/index.tsx
5
+ function StepsRoot({ size = "md", ...rest }) {
6
+ return /* @__PURE__ */ jsx(Steps$1.Root, {
7
+ ...rest,
8
+ "data-size": size
9
+ });
10
+ }
11
+ /**
12
+ * Steps — linear progress through a sequence.
13
+ *
14
+ * Parts: Root, List, Item, Trigger, Indicator, Separator, Content,
15
+ * PrevTrigger, NextTrigger, Progress. Indicator and Separator carry
16
+ * data-complete / data-current / data-incomplete.
17
+ */
18
+ const Steps = {
19
+ ...Steps$1,
20
+ Root: StepsRoot
21
+ };
22
+ injectComponentStyle("steps");
23
+ //#endregion
24
+ export { Steps };
@@ -0,0 +1,8 @@
1
+ import { Swap as Swap$1 } from "@ark-ui/react/swap";
2
+ //#region src/components/swap/index.d.ts
3
+ /** Ark's Swap, dressed in the paper-and-ink system: two impressions
4
+ * occupying one seal, the arriving one growing into place on the spring
5
+ * while the departing one shrinks away. The API is Ark's own — Root,
6
+ * Indicator (type="on" | "off"), RootProvider. */
7
+ export declare const Swap: typeof Swap$1;
8
+ //#endregion
@@ -0,0 +1,11 @@
1
+ import { injectComponentStyle } from "@bysages/core";
2
+ import { Swap as Swap$1 } from "@ark-ui/react/swap";
3
+ //#region src/components/swap/index.tsx
4
+ /** Ark's Swap, dressed in the paper-and-ink system: two impressions
5
+ * occupying one seal, the arriving one growing into place on the spring
6
+ * while the departing one shrinks away. The API is Ark's own — Root,
7
+ * Indicator (type="on" | "off"), RootProvider. */
8
+ const Swap = Swap$1;
9
+ injectComponentStyle("swap");
10
+ //#endregion
11
+ export { Swap };
@@ -0,0 +1,16 @@
1
+ import { ComponentProps } from "react";
2
+ import { Switch as Switch$1 } from "@ark-ui/react/switch";
3
+ //#region src/components/switch/index.d.ts
4
+ type SwitchRootProps = ComponentProps<typeof Switch$1.Root> & {
5
+ /** One rung for the thumb; the track travels with it. */
6
+ size?: "sm" | "md" | "lg";
7
+ };
8
+ declare function SwitchRoot({ size, ...rest }: SwitchRootProps): import("react").JSX.Element;
9
+ /** Ark's Switch, dressed in the paper-and-ink system: a track that rests
10
+ * in the inset shade of the paper and fills flat with primary ink when on,
11
+ * the thumb sliding on the spring. The API is Ark's own — Root, Label,
12
+ * Control, Thumb, HiddenInput. */
13
+ export declare const Switch: Omit<typeof Switch$1, "Root"> & {
14
+ Root: typeof SwitchRoot;
15
+ };
16
+ //#endregion
@@ -0,0 +1,21 @@
1
+ import { injectComponentStyle } from "@bysages/core";
2
+ import { jsx } from "react/jsx-runtime";
3
+ import { Switch as Switch$1 } from "@ark-ui/react/switch";
4
+ //#region src/components/switch/index.tsx
5
+ function SwitchRoot({ size = "md", ...rest }) {
6
+ return /* @__PURE__ */ jsx(Switch$1.Root, {
7
+ ...rest,
8
+ "data-size": size
9
+ });
10
+ }
11
+ /** Ark's Switch, dressed in the paper-and-ink system: a track that rests
12
+ * in the inset shade of the paper and fills flat with primary ink when on,
13
+ * the thumb sliding on the spring. The API is Ark's own — Root, Label,
14
+ * Control, Thumb, HiddenInput. */
15
+ const Switch = {
16
+ ...Switch$1,
17
+ Root: SwitchRoot
18
+ };
19
+ injectComponentStyle("switch");
20
+ //#endregion
21
+ export { Switch };
@@ -0,0 +1,79 @@
1
+ import { CSSProperties } from "react";
2
+ import { CellData, ColumnDef, FlexRender, RowData, SortingState, TableFeatures, createColumnHelper } from "@tanstack/react-table";
3
+ //#region src/components/table/index.d.ts
4
+ /** Column metadata understood by this table: mark columns whose values
5
+ * read right-aligned in tabular figures. The type parameters mirror the
6
+ * library's own declaration — augmentation merging demands an identical
7
+ * parameter list. */
8
+ declare module "@tanstack/react-table" {
9
+ interface ColumnMeta<in out TFeatures extends TableFeatures, in out TData extends RowData, TValue extends CellData = CellData> {
10
+ numeric?: boolean;
11
+ }
12
+ }
13
+ /** One-stop data table on TanStack Table v9, dressed in the paper-and-ink
14
+ * system: rows are CSS grids under ARIA table semantics, so sticky headers,
15
+ * pinned columns, merged cells, and a virtualized window all stay honest
16
+ * while sorting, filtering, tree expansion, selection, and pagination come
17
+ * from the row-model pipeline. */
18
+ export interface DataTableProps {
19
+ /** Row data; replaced wholesale on change — TanStack's memoized row
20
+ * models keep unrelated rows untouched, so edits land without a full
21
+ * re-render. Tree rows nest under `subRows`. */
22
+ data: RowData[];
23
+ /** Column definitions (TanStack `ColumnDef`, preferably built with
24
+ * `createColumnHelper().columns([...])`). Give every column an `id`
25
+ * unless it uses `accessorKey`. `size` fixes a px width; `minSize`
26
+ * floors a flexing track; otherwise the track hugs its content and
27
+ * only the table's leftover width is shared between columns. */
28
+ columns: ColumnDef<any, any, any>[];
29
+ /** Render a leading checkbox column with select-all. */
30
+ selectable?: boolean;
31
+ /** Allow header-click sorting (default true). */
32
+ sortable?: boolean;
33
+ /** Render a global-filter toolbar and per-column filter inputs. */
34
+ filterable?: boolean;
35
+ /** Keep the built-in toolbar row above the table (default true when
36
+ * `filterable`). Turn it off to host the global filter in your own
37
+ * toolbar — the feature stays registered and the instance methods
38
+ * keep working. */
39
+ showToolbar?: boolean;
40
+ /** Enable tree expansion over `subRows`; the first column hosts the
41
+ * expander and depth indent. */
42
+ tree?: boolean;
43
+ /** Column ids whose equal adjacent values merge into one cell (mutually
44
+ * exclusive with `virtual`). */
45
+ merge?: string[];
46
+ /** Column ids pinned to the start edge. */
47
+ pinStart?: string[];
48
+ /** Column ids pinned to the end edge. */
49
+ pinEnd?: string[];
50
+ /** Virtualize the body through a fixed-height window (mutually exclusive
51
+ * with `merge`). */
52
+ virtual?: boolean;
53
+ /** Row height in px; must match CSS so the virtual window aligns. */
54
+ rowHeight?: number;
55
+ /** Render the pagination bar and slice rows client-side. */
56
+ paginated?: boolean;
57
+ pageSize?: number;
58
+ pageSizeOptions?: number[];
59
+ /** Keep the (optional) footer row pinned to the viewport bottom. */
60
+ stickyFooter?: boolean;
61
+ initialSorting?: SortingState;
62
+ globalFilterPlaceholder?: string;
63
+ emptyText?: string;
64
+ /** Allow dragging header cells onto each other to reorder columns and
65
+ * body rows onto each other to reorder data — with `tree`, row drops
66
+ * read as before / inside / after, so a drop can also nest a branch
67
+ * under its target. Rows need a stable `id`. Row dragging rests while
68
+ * sorting or filtering hides the data order. */
69
+ reorderable?: boolean;
70
+ /** Fires with the reordered data array (the whole tree in tree mode). */
71
+ onRowReorder?: (rows: RowData[]) => void;
72
+ /** Fires with the full leaf-column id order after a header drop. */
73
+ onColumnReorder?: (ids: string[]) => void;
74
+ /** Applied to the root vessel. */
75
+ style?: CSSProperties;
76
+ }
77
+ export declare function DataTable(rawProps: DataTableProps): import("react").JSX.Element;
78
+ //#endregion
79
+ export { type ColumnDef, FlexRender, type SortingState, createColumnHelper };