@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,23 @@
1
+ import { injectComponentStyle } from "@bysages/core";
2
+ import { jsx } from "react/jsx-runtime";
3
+ import { DatePicker as DatePicker$1 } from "@ark-ui/react/date-picker";
4
+ //#region src/components/date-picker/index.tsx
5
+ function DatePickerRoot({ size = "md", ...rest }) {
6
+ return /* @__PURE__ */ jsx(DatePicker$1.Root, {
7
+ ...rest,
8
+ "data-size": size
9
+ });
10
+ }
11
+ /** Ark's DatePicker, dressed in the paper-and-ink system: the popup
12
+ * dissolves in on elevation, selected days take the flat ink fill, and
13
+ * range middles run subtle with cut corners. The API is Ark's own —
14
+ * Root, Label, Control, Input, Trigger, ClearTrigger, Positioner,
15
+ * Content, View, ViewControl, ViewTrigger, RangeText, PrevTrigger,
16
+ * NextTrigger, Table*, MonthSelect, YearSelect, PresetTrigger. */
17
+ const DatePicker = {
18
+ ...DatePicker$1,
19
+ Root: DatePickerRoot
20
+ };
21
+ injectComponentStyle("date-picker");
22
+ //#endregion
23
+ export { DatePicker };
@@ -0,0 +1,16 @@
1
+ import { HTMLAttributes, ReactNode } from "react";
2
+ //#region src/components/deferred-content/index.d.ts
3
+ export interface DeferredContentProps extends HTMLAttributes<HTMLDivElement> {
4
+ /** How much of the placeholder must be visible before the content
5
+ * mounts, from 0 (any pixel) to 1 (the whole box). */
6
+ threshold?: number;
7
+ /** Drawn until the box approaches the viewport. */
8
+ placeholder?: ReactNode;
9
+ children?: ReactNode;
10
+ }
11
+ /** Content that waits to be worth rendering: the slot stays off the
12
+ * tree until the placeholder scrolls near the viewport, then mounts
13
+ * once and stays. The placeholder is drawn by the caller, so the late
14
+ * arrival costs no layout shift it cannot predict. */
15
+ export declare function DeferredContent({ threshold, placeholder, children, ...rest }: DeferredContentProps): import("react").JSX.Element;
16
+ //#endregion
@@ -0,0 +1,34 @@
1
+ import { injectComponentStyle } from "@bysages/core";
2
+ import { jsx } from "react/jsx-runtime";
3
+ import { useEffect, useRef, useState } from "react";
4
+ //#region src/components/deferred-content/index.tsx
5
+ /** Content that waits to be worth rendering: the slot stays off the
6
+ * tree until the placeholder scrolls near the viewport, then mounts
7
+ * once and stays. The placeholder is drawn by the caller, so the late
8
+ * arrival costs no layout shift it cannot predict. */
9
+ function DeferredContent({ threshold = .2, placeholder, children, ...rest }) {
10
+ injectComponentStyle("deferred-content");
11
+ const host = useRef(null);
12
+ const [active, setActive] = useState(false);
13
+ useEffect(() => {
14
+ const node = host.current;
15
+ if (!node) return;
16
+ const observer = new IntersectionObserver((entries) => {
17
+ if (entries.some((entry) => entry.isIntersecting)) {
18
+ setActive(true);
19
+ observer.disconnect();
20
+ }
21
+ }, { threshold });
22
+ observer.observe(node);
23
+ return () => observer.disconnect();
24
+ }, [threshold]);
25
+ return /* @__PURE__ */ jsx("div", {
26
+ ref: host,
27
+ ...rest,
28
+ "data-scope": "deferred-content",
29
+ "data-part": "root",
30
+ children: active ? children : placeholder
31
+ });
32
+ }
33
+ //#endregion
34
+ export { DeferredContent };
@@ -0,0 +1,33 @@
1
+ import { HTMLAttributes } from "react";
2
+ //#region src/components/descriptions/index.d.ts
3
+ /** A ledger laid flat: term and detail pairs in one quiet grid. The
4
+ * horizontal layout reads as a table of two columns; the vertical one
5
+ * stacks each pair for narrow measures. */
6
+ export interface DescriptionsRootProps extends HTMLAttributes<HTMLDListElement> {
7
+ layout?: "horizontal" | "vertical";
8
+ /** The framed register: one hairline round the whole, terms on
9
+ * inset paper. */
10
+ bordered?: boolean;
11
+ /** Pairs across the grid: one ledger per column. */
12
+ column?: number;
13
+ }
14
+ export declare function DescriptionsRoot({ layout, bordered, column, children, ...rest }: DescriptionsRootProps): import("react").JSX.Element;
15
+ declare function DescriptionsItem({ span, children, ...rest }: HTMLAttributes<HTMLDivElement> & {
16
+ span?: number;
17
+ }): import("react").JSX.Element;
18
+ declare namespace DescriptionsItem {
19
+ var displayName: string;
20
+ }
21
+ export declare const Descriptions: {
22
+ Root: typeof DescriptionsRoot;
23
+ Item: typeof DescriptionsItem;
24
+ Term: {
25
+ ({ children, ...rest }: HTMLAttributes<HTMLElement>): import("react").JSX.Element;
26
+ displayName: string;
27
+ };
28
+ Detail: {
29
+ ({ children, ...rest }: HTMLAttributes<HTMLElement>): import("react").JSX.Element;
30
+ displayName: string;
31
+ };
32
+ };
33
+ //#endregion
@@ -0,0 +1,50 @@
1
+ import { injectComponentStyle } from "@bysages/core";
2
+ import { jsx } from "react/jsx-runtime";
3
+ //#region src/components/descriptions/index.tsx
4
+ function DescriptionsRoot({ layout = "horizontal", bordered = false, column = 1, children, ...rest }) {
5
+ injectComponentStyle("descriptions");
6
+ return /* @__PURE__ */ jsx("dl", {
7
+ ...rest,
8
+ "data-scope": "descriptions",
9
+ "data-part": "root",
10
+ "data-layout": layout,
11
+ "data-bordered": bordered || void 0,
12
+ style: {
13
+ ...rest.style,
14
+ "--bs-desc-columns": String(column)
15
+ },
16
+ children
17
+ });
18
+ }
19
+ function part(name, tag) {
20
+ const Tag = tag;
21
+ const Component = ({ children, ...rest }) => /* @__PURE__ */ jsx(Tag, {
22
+ ...rest,
23
+ "data-scope": "descriptions",
24
+ "data-part": name.toLowerCase(),
25
+ children
26
+ });
27
+ Component.displayName = "Descriptions" + name;
28
+ return Component;
29
+ }
30
+ function DescriptionsItem({ span = 1, children, ...rest }) {
31
+ return /* @__PURE__ */ jsx("div", {
32
+ ...rest,
33
+ style: {
34
+ ...rest.style,
35
+ "--bs-desc-span": String(span * 2)
36
+ },
37
+ "data-scope": "descriptions",
38
+ "data-part": "item",
39
+ children
40
+ });
41
+ }
42
+ DescriptionsItem.displayName = "DescriptionsItem";
43
+ const Descriptions = {
44
+ Root: DescriptionsRoot,
45
+ Item: DescriptionsItem,
46
+ Term: part("Term", "dt"),
47
+ Detail: part("Detail", "dd")
48
+ };
49
+ //#endregion
50
+ export { Descriptions, DescriptionsRoot };
@@ -0,0 +1,9 @@
1
+ import { Dialog as Dialog$1, DialogOpenChangeDetails } from "@ark-ui/react/dialog";
2
+ //#region src/components/dialog/index.d.ts
3
+ /** Ark's Dialog, dressed in the paper-and-ink system: the sheet dissolves
4
+ * in on elevation, the backdrop fades, and nested overlays stack through
5
+ * the shared z-index ladder. The API is Ark's own — Root, Trigger,
6
+ * Backdrop, Positioner, Content, Title, Description, CloseTrigger. */
7
+ export declare const Dialog: typeof Dialog$1;
8
+ //#endregion
9
+ export type { DialogOpenChangeDetails };
@@ -0,0 +1,11 @@
1
+ import { injectComponentStyle } from "@bysages/core";
2
+ import { Dialog as Dialog$1 } from "@ark-ui/react/dialog";
3
+ //#region src/components/dialog/index.tsx
4
+ /** Ark's Dialog, dressed in the paper-and-ink system: the sheet dissolves
5
+ * in on elevation, the backdrop fades, and nested overlays stack through
6
+ * the shared z-index ladder. The API is Ark's own — Root, Trigger,
7
+ * Backdrop, Positioner, Content, Title, Description, CloseTrigger. */
8
+ const Dialog = Dialog$1;
9
+ injectComponentStyle("dialog");
10
+ //#endregion
11
+ export { Dialog };
@@ -0,0 +1,25 @@
1
+ import { HTMLAttributes, ReactNode } from "react";
2
+ //#region src/components/dock/index.d.ts
3
+ export interface DockProps extends HTMLAttributes<HTMLDivElement> {
4
+ /** The tallest an item swells under the hand — 1 stands still. */
5
+ maxScale?: number;
6
+ /** How far the hand reaches, in px, before an item stops answering. */
7
+ radius?: number;
8
+ children?: ReactNode;
9
+ }
10
+ export interface DockItemProps extends HTMLAttributes<HTMLDivElement> {
11
+ children?: ReactNode;
12
+ }
13
+ /** The magnifying dock: a floating rail whose icons swell toward the
14
+ * hand. The wrapper measures per item and writes --bs-dock-scale; CSS
15
+ * eases the chase, so no spring engine rides along. */
16
+ export declare function DockRoot({ maxScale, radius, children, ...rest }: DockProps): import("react").JSX.Element;
17
+ /** One moored place in the rail: whatever slots in grows from the
18
+ * floor, never from its center. */
19
+ export declare function DockItem({ children, ...rest }: DockItemProps): import("react").JSX.Element;
20
+ /** The whole family under one handle — Dock.Root, Dock.Item. */
21
+ export declare const Dock: typeof DockRoot & {
22
+ Root: typeof DockRoot;
23
+ Item: typeof DockItem;
24
+ };
25
+ //#endregion
@@ -0,0 +1,51 @@
1
+ import { injectComponentStyle } from "@bysages/core";
2
+ import { jsx } from "react/jsx-runtime";
3
+ //#region src/components/dock/index.tsx
4
+ const ITEM = "[data-scope=\"dock\"][data-part=\"item\"]";
5
+ /** The magnifying dock: a floating rail whose icons swell toward the
6
+ * hand. The wrapper measures per item and writes --bs-dock-scale; CSS
7
+ * eases the chase, so no spring engine rides along. */
8
+ function DockRoot({ maxScale = 1.5, radius = 96, children, ...rest }) {
9
+ injectComponentStyle("dock");
10
+ const magnify = (event) => {
11
+ for (const item of event.currentTarget.querySelectorAll(ITEM)) {
12
+ const rect = item.getBoundingClientRect();
13
+ const dist = Math.abs(event.clientX - (rect.left + rect.width / 2));
14
+ const t = Math.max(0, 1 - dist / radius);
15
+ item.style.setProperty("--bs-dock-scale", (1 + (maxScale - 1) * t * t).toFixed(4));
16
+ }
17
+ };
18
+ const reset = (event) => {
19
+ for (const item of event.currentTarget.querySelectorAll(ITEM)) item.style.removeProperty("--bs-dock-scale");
20
+ };
21
+ return /* @__PURE__ */ jsx("div", {
22
+ ...rest,
23
+ "data-scope": "dock",
24
+ "data-part": "root",
25
+ style: {
26
+ ...rest.style,
27
+ "--bs-dock-max-scale": maxScale
28
+ },
29
+ onPointerMove: magnify,
30
+ onPointerLeave: reset,
31
+ children
32
+ });
33
+ }
34
+ /** One moored place in the rail: whatever slots in grows from the
35
+ * floor, never from its center. */
36
+ function DockItem({ children, ...rest }) {
37
+ injectComponentStyle("dock");
38
+ return /* @__PURE__ */ jsx("div", {
39
+ ...rest,
40
+ "data-scope": "dock",
41
+ "data-part": "item",
42
+ children
43
+ });
44
+ }
45
+ /** The whole family under one handle — Dock.Root, Dock.Item. */
46
+ const Dock = Object.assign(DockRoot, {
47
+ Root: DockRoot,
48
+ Item: DockItem
49
+ });
50
+ //#endregion
51
+ export { Dock, DockItem, DockRoot };
@@ -0,0 +1,2 @@
1
+ import { DownloadTrigger, DownloadTriggerBaseProps, DownloadTriggerProps, DownloadableData, UseDownloadProps, UseDownloadReturn, useDownload } from "@ark-ui/react/download-trigger";
2
+ export { DownloadTrigger, type DownloadTriggerBaseProps, type DownloadTriggerProps, type DownloadableData, type UseDownloadProps, type UseDownloadReturn, useDownload };
@@ -0,0 +1,2 @@
1
+ import { DownloadTrigger, useDownload } from "@ark-ui/react/download-trigger";
2
+ export { DownloadTrigger, useDownload };
@@ -0,0 +1,9 @@
1
+ import { Drawer as Drawer$1 } from "@ark-ui/react/drawer";
2
+ //#region src/components/drawer/index.d.ts
3
+ /** Ark's Drawer, dressed in the paper-and-ink system: a full-height sheet
4
+ * cut flush to the edge it rises from, sliding on the machine's translate
5
+ * under the grabber's hand. The API is Ark's own — Root, Trigger,
6
+ * Backdrop, Positioner, Content, Grabber, GrabberIndicator, Title,
7
+ * Description, CloseTrigger, SwipeArea. */
8
+ export declare const Drawer: typeof Drawer$1;
9
+ //#endregion
@@ -0,0 +1,12 @@
1
+ import { injectComponentStyle } from "@bysages/core";
2
+ import { Drawer as Drawer$1 } from "@ark-ui/react/drawer";
3
+ //#region src/components/drawer/index.tsx
4
+ /** Ark's Drawer, dressed in the paper-and-ink system: a full-height sheet
5
+ * cut flush to the edge it rises from, sliding on the machine's translate
6
+ * under the grabber's hand. The API is Ark's own — Root, Trigger,
7
+ * Backdrop, Positioner, Content, Grabber, GrabberIndicator, Title,
8
+ * Description, CloseTrigger, SwipeArea. */
9
+ const Drawer = Drawer$1;
10
+ injectComponentStyle("drawer");
11
+ //#endregion
12
+ export { Drawer };
@@ -0,0 +1,28 @@
1
+ import { HTMLAttributes } from "react";
2
+ //#region src/components/dynamic-input/index.d.ts
3
+ export interface DynamicInputProps extends HTMLAttributes<HTMLDivElement> {
4
+ /** The rows' values; the group renders one Input per entry. */
5
+ value?: string[];
6
+ /** The fewest rows the group keeps; the remove seals yield first. */
7
+ min?: number;
8
+ /** The most rows the group grows to; the add control yields then. */
9
+ max?: number;
10
+ placeholder?: string;
11
+ /** The add control's visible words. */
12
+ addLabel?: string;
13
+ disabled?: boolean;
14
+ invalid?: boolean;
15
+ /** One rung of the ladder, handed to every row's field and seals. */
16
+ size?: "sm" | "md" | "lg";
17
+ onValueChange?: (value: string[]) => void;
18
+ }
19
+ /**
20
+ * A column of entry rows: one Input per line, each with a quiet remove
21
+ * seal, and an add row at the tail. The list is controlled — every edit
22
+ * reports a fresh array through `onValueChange` and the caller's array
23
+ * stays the only truth. Deleting never drops below `min`, adding never
24
+ * grows past `max`, and the group always keeps one row: an entry list
25
+ * that emptied itself would leave the reader no place to type.
26
+ */
27
+ export declare function DynamicInput({ value, min, max, placeholder, addLabel, disabled, invalid, size, onValueChange, children: _children, ...rest }: DynamicInputProps): import("react").JSX.Element;
28
+ //#endregion
@@ -0,0 +1,83 @@
1
+ import { Button } from "../button/index.mjs";
2
+ import { t as Input } from "../../input-2oezH-dY.mjs";
3
+ import { injectComponentStyle } from "@bysages/core";
4
+ import { jsx, jsxs } from "react/jsx-runtime";
5
+ //#region src/components/dynamic-input/index.tsx
6
+ /**
7
+ * A column of entry rows: one Input per line, each with a quiet remove
8
+ * seal, and an add row at the tail. The list is controlled — every edit
9
+ * reports a fresh array through `onValueChange` and the caller's array
10
+ * stays the only truth. Deleting never drops below `min`, adding never
11
+ * grows past `max`, and the group always keeps one row: an entry list
12
+ * that emptied itself would leave the reader no place to type.
13
+ */
14
+ function DynamicInput({ value, min = 0, max, placeholder, addLabel = "Add entry", disabled = false, invalid = false, size = "md", onValueChange, children: _children, ...rest }) {
15
+ injectComponentStyle("dynamic-input");
16
+ const values = value ?? [""];
17
+ const update = (index, next) => {
18
+ const rows = values.slice();
19
+ rows[index] = next;
20
+ onValueChange?.(rows);
21
+ };
22
+ const remove = (index) => {
23
+ const rows = values.filter((_, i) => i !== index);
24
+ onValueChange?.(rows.length > 0 ? rows : [""]);
25
+ };
26
+ const add = () => {
27
+ onValueChange?.([...values, ""]);
28
+ };
29
+ const canRemove = values.length > Math.max(min, 1);
30
+ const canAdd = max === void 0 || values.length < max;
31
+ return /* @__PURE__ */ jsxs("div", {
32
+ ...rest,
33
+ "data-scope": "dynamic-input",
34
+ "data-part": "root",
35
+ children: [values.map((value, index) => /* @__PURE__ */ jsxs("div", {
36
+ "data-scope": "dynamic-input",
37
+ "data-part": "row",
38
+ children: [/* @__PURE__ */ jsx(Input, {
39
+ value,
40
+ placeholder,
41
+ disabled,
42
+ invalid,
43
+ size,
44
+ onValueChange: (next) => update(index, next)
45
+ }), /* @__PURE__ */ jsx(Button, {
46
+ variant: "ghost",
47
+ square: true,
48
+ size,
49
+ disabled: disabled || !canRemove,
50
+ "aria-label": `Remove entry ${index + 1}`,
51
+ onClick: () => remove(index),
52
+ children: crossIcon()
53
+ })]
54
+ }, index)), /* @__PURE__ */ jsx("div", {
55
+ "data-scope": "dynamic-input",
56
+ "data-part": "add",
57
+ children: /* @__PURE__ */ jsxs(Button, {
58
+ variant: "ghost",
59
+ size,
60
+ disabled: disabled || !canAdd,
61
+ onClick: () => add(),
62
+ children: ["+", addLabel]
63
+ })
64
+ })]
65
+ });
66
+ }
67
+ /** The one glyph a remove seal needs: a single crossing stroke. */
68
+ function crossIcon() {
69
+ return /* @__PURE__ */ jsx("svg", {
70
+ width: 16,
71
+ height: 16,
72
+ viewBox: "0 0 24 24",
73
+ fill: "none",
74
+ stroke: "currentColor",
75
+ strokeWidth: 1.75,
76
+ strokeLinecap: "round",
77
+ strokeLinejoin: "round",
78
+ "aria-hidden": "true",
79
+ children: /* @__PURE__ */ jsx("path", { d: "M18 6 6 18M6 6l12 12" })
80
+ });
81
+ }
82
+ //#endregion
83
+ export { DynamicInput };
@@ -0,0 +1,16 @@
1
+ import { ComponentProps } from "react";
2
+ import { Editable as Editable$1 } from "@ark-ui/react/editable";
3
+ //#region src/components/editable/index.d.ts
4
+ /** Ark's Editable, dressed in the paper-and-ink system: bare ink while
5
+ * reading, the full field recipe while editing. The API is Ark's own —
6
+ * Root, Area, Label, Preview, Input, EditTrigger, SubmitTrigger,
7
+ * CancelTrigger, Control. */
8
+ type EditableRootProps = ComponentProps<typeof Editable$1.Root> & {
9
+ /** One rung of the control-height ladder for the editing field. */
10
+ size?: "sm" | "md" | "lg";
11
+ };
12
+ declare function EditableRoot({ size, ...rest }: EditableRootProps): import("react").JSX.Element;
13
+ export declare const Editable: Omit<typeof Editable$1, "Root"> & {
14
+ Root: typeof EditableRoot;
15
+ };
16
+ //#endregion
@@ -0,0 +1,17 @@
1
+ import { injectComponentStyle } from "@bysages/core";
2
+ import { jsx } from "react/jsx-runtime";
3
+ import { Editable as Editable$1 } from "@ark-ui/react/editable";
4
+ //#region src/components/editable/index.tsx
5
+ function EditableRoot({ size = "md", ...rest }) {
6
+ return /* @__PURE__ */ jsx(Editable$1.Root, {
7
+ ...rest,
8
+ "data-size": size
9
+ });
10
+ }
11
+ const Editable = {
12
+ ...Editable$1,
13
+ Root: EditableRoot
14
+ };
15
+ injectComponentStyle("editable");
16
+ //#endregion
17
+ export { Editable };
@@ -0,0 +1,10 @@
1
+ import { HTMLAttributes } from "react";
2
+ //#region src/components/ellipsis/index.d.ts
3
+ /** The overflow knife: text cut at one line, or held to N lines. The
4
+ * primitive only draws the cut — reaching the full text (title,
5
+ * tooltip) stays the consumer's decision. */
6
+ export interface EllipsisProps extends HTMLAttributes<HTMLElement> {
7
+ lines?: number;
8
+ }
9
+ export declare function Ellipsis({ lines, ...rest }: EllipsisProps): import("react").JSX.Element;
10
+ //#endregion
@@ -0,0 +1,19 @@
1
+ import { injectComponentStyle } from "@bysages/core";
2
+ import { jsx } from "react/jsx-runtime";
3
+ //#region src/components/ellipsis/index.tsx
4
+ function Ellipsis({ lines = 1, ...rest }) {
5
+ injectComponentStyle("ellipsis");
6
+ const multiline = lines > 1;
7
+ return /* @__PURE__ */ jsx("span", {
8
+ ...rest,
9
+ style: multiline ? {
10
+ ...rest.style,
11
+ "--bs-ellipsis-lines": String(lines)
12
+ } : rest.style,
13
+ "data-scope": "ellipsis",
14
+ "data-part": "root",
15
+ "data-multiline": multiline ? "" : void 0
16
+ });
17
+ }
18
+ //#endregion
19
+ export { Ellipsis };
@@ -0,0 +1,28 @@
1
+ import { HTMLAttributes } from "react";
2
+ //#region src/components/empty/index.d.ts
3
+ export declare const Empty: {
4
+ ({ children, ...rest }: HTMLAttributes<HTMLElement>): import("react").JSX.Element;
5
+ displayName: string;
6
+ } & {
7
+ Root: {
8
+ ({ children, ...rest }: HTMLAttributes<HTMLElement>): import("react").JSX.Element;
9
+ displayName: string;
10
+ };
11
+ Visual: {
12
+ ({ children, ...rest }: HTMLAttributes<HTMLElement>): import("react").JSX.Element;
13
+ displayName: string;
14
+ };
15
+ Title: {
16
+ ({ children, ...rest }: HTMLAttributes<HTMLElement>): import("react").JSX.Element;
17
+ displayName: string;
18
+ };
19
+ Description: {
20
+ ({ children, ...rest }: HTMLAttributes<HTMLElement>): import("react").JSX.Element;
21
+ displayName: string;
22
+ };
23
+ Actions: {
24
+ ({ children, ...rest }: HTMLAttributes<HTMLElement>): import("react").JSX.Element;
25
+ displayName: string;
26
+ };
27
+ };
28
+ //#endregion
@@ -0,0 +1,32 @@
1
+ import { injectComponentStyle } from "@bysages/core";
2
+ import { jsx } from "react/jsx-runtime";
3
+ //#region src/components/empty/index.tsx
4
+ /** An empty state: the page holds its breath. Root centers the column,
5
+ * Visual carries the mark, Title and Description carry the ink, Actions
6
+ * the way out. Any subset composes. */
7
+ function part(name, tag) {
8
+ const Tag = tag;
9
+ const Component = ({ children, ...rest }) => /* @__PURE__ */ jsx(Tag, {
10
+ ...rest,
11
+ "data-scope": "empty",
12
+ "data-part": name.toLowerCase(),
13
+ children
14
+ });
15
+ Component.displayName = "Empty" + name;
16
+ return Component;
17
+ }
18
+ const Root = part("Root", "div");
19
+ const Visual = part("Visual", "div");
20
+ const Title = part("Title", "h3");
21
+ const Description = part("Description", "p");
22
+ const Actions = part("Actions", "div");
23
+ const Empty = Object.assign(Root, {
24
+ Root,
25
+ Visual,
26
+ Title,
27
+ Description,
28
+ Actions
29
+ });
30
+ injectComponentStyle("empty");
31
+ //#endregion
32
+ export { Empty };
@@ -0,0 +1,8 @@
1
+ import { Field as Field$1 } from "@ark-ui/react/field";
2
+ //#region src/components/field/index.d.ts
3
+ /** Ark's Field, dressed in the paper-and-ink system: a tracked label, a
4
+ * border-and-halo control, and quiet help text. The API is Ark's own —
5
+ * Root, Label, Input, Textarea, Select, HelperText, ErrorText,
6
+ * RequiredIndicator. */
7
+ export declare const Field: typeof Field$1;
8
+ //#endregion
@@ -0,0 +1,11 @@
1
+ import { injectComponentStyle } from "@bysages/core";
2
+ import { Field as Field$1 } from "@ark-ui/react/field";
3
+ //#region src/components/field/index.tsx
4
+ /** Ark's Field, dressed in the paper-and-ink system: a tracked label, a
5
+ * border-and-halo control, and quiet help text. The API is Ark's own —
6
+ * Root, Label, Input, Textarea, Select, HelperText, ErrorText,
7
+ * RequiredIndicator. */
8
+ const Field = Field$1;
9
+ injectComponentStyle("field");
10
+ //#endregion
11
+ export { Field };
@@ -0,0 +1,7 @@
1
+ import { Fieldset as Fieldset$1 } from "@ark-ui/react/fieldset";
2
+ //#region src/components/fieldset/index.d.ts
3
+ /** Ark's Fieldset, dressed in the paper-and-ink system: a song-serif
4
+ * legend heading a column of fields. The API is Ark's own — Root, Legend,
5
+ * HelperText, ErrorText. */
6
+ export declare const Fieldset: typeof Fieldset$1;
7
+ //#endregion
@@ -0,0 +1,10 @@
1
+ import { injectComponentStyle } from "@bysages/core";
2
+ import { Fieldset as Fieldset$1 } from "@ark-ui/react/fieldset";
3
+ //#region src/components/fieldset/index.tsx
4
+ /** Ark's Fieldset, dressed in the paper-and-ink system: a song-serif
5
+ * legend heading a column of fields. The API is Ark's own — Root, Legend,
6
+ * HelperText, ErrorText. */
7
+ const Fieldset = Fieldset$1;
8
+ injectComponentStyle("fieldset");
9
+ //#endregion
10
+ export { Fieldset };
@@ -0,0 +1,18 @@
1
+ import { ComponentProps } from "react";
2
+ import { FileUpload as FileUpload$1 } from "@ark-ui/react/file-upload";
3
+ //#region src/components/file-upload/index.d.ts
4
+ type FileUploadRootProps = ComponentProps<typeof FileUpload$1.Root> & {
5
+ /** One rung of the control-height ladder for the trigger. */
6
+ size?: "sm" | "md" | "lg";
7
+ };
8
+ declare function FileUploadRoot({ size, ...rest }: FileUploadRootProps): import("react").JSX.Element;
9
+ /** Ark's FileUpload, dressed in the paper-and-ink system: a dashed
10
+ * dropzone that floods with subtle light on drag-over, and accepted files
11
+ * as loose hairline slips. The API is Ark's own — Root, Label, Trigger,
12
+ * Dropzone, HiddenInput, ItemGroup, Item, ItemName, ItemSizeText,
13
+ * ItemPreview, ItemPreviewImage, ItemDeleteTrigger, ClearTrigger,
14
+ * Context. */
15
+ export declare const FileUpload: Omit<typeof FileUpload$1, "Root"> & {
16
+ Root: typeof FileUploadRoot;
17
+ };
18
+ //#endregion
@@ -0,0 +1,23 @@
1
+ import { injectComponentStyle } from "@bysages/core";
2
+ import { jsx } from "react/jsx-runtime";
3
+ import { FileUpload as FileUpload$1 } from "@ark-ui/react/file-upload";
4
+ //#region src/components/file-upload/index.tsx
5
+ function FileUploadRoot({ size = "md", ...rest }) {
6
+ return /* @__PURE__ */ jsx(FileUpload$1.Root, {
7
+ ...rest,
8
+ "data-size": size
9
+ });
10
+ }
11
+ /** Ark's FileUpload, dressed in the paper-and-ink system: a dashed
12
+ * dropzone that floods with subtle light on drag-over, and accepted files
13
+ * as loose hairline slips. The API is Ark's own — Root, Label, Trigger,
14
+ * Dropzone, HiddenInput, ItemGroup, Item, ItemName, ItemSizeText,
15
+ * ItemPreview, ItemPreviewImage, ItemDeleteTrigger, ClearTrigger,
16
+ * Context. */
17
+ const FileUpload = {
18
+ ...FileUpload$1,
19
+ Root: FileUploadRoot
20
+ };
21
+ injectComponentStyle("file-upload");
22
+ //#endregion
23
+ export { FileUpload };