@bysages/solid 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-ClGGptX3.mjs +139 -0
  3. package/dist/chevron-D5RzcayK.mjs +9 -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 +33 -0
  8. package/dist/components/ai/index.d.mts +2 -0
  9. package/dist/components/ai/index.mjs +71 -0
  10. package/dist/components/ai-action/index.d.mts +13 -0
  11. package/dist/components/ai-action/index.mjs +27 -0
  12. package/dist/components/ai-attachments/index.d.mts +20 -0
  13. package/dist/components/ai-attachments/index.mjs +110 -0
  14. package/dist/components/ai-message/index.d.mts +13 -0
  15. package/dist/components/ai-message/index.mjs +22 -0
  16. package/dist/components/ai-prompt-input/index.d.mts +45 -0
  17. package/dist/components/ai-prompt-input/index.mjs +153 -0
  18. package/dist/components/ai-reasoning/index.d.mts +13 -0
  19. package/dist/components/ai-reasoning/index.mjs +38 -0
  20. package/dist/components/ai-response/index.d.mts +20 -0
  21. package/dist/components/ai-response/index.mjs +2 -0
  22. package/dist/components/ai-source/index.d.mts +13 -0
  23. package/dist/components/ai-source/index.mjs +36 -0
  24. package/dist/components/ai-suggestion/index.d.mts +13 -0
  25. package/dist/components/ai-suggestion/index.mjs +22 -0
  26. package/dist/components/ai-tool/index.d.mts +23 -0
  27. package/dist/components/ai-tool/index.mjs +90 -0
  28. package/dist/components/alert/index.d.mts +22 -0
  29. package/dist/components/alert/index.mjs +87 -0
  30. package/dist/components/angle-slider/index.d.mts +15 -0
  31. package/dist/components/angle-slider/index.mjs +18 -0
  32. package/dist/components/aspect-ratio/index.d.mts +10 -0
  33. package/dist/components/aspect-ratio/index.mjs +23 -0
  34. package/dist/components/autocomplete/index.d.mts +21 -0
  35. package/dist/components/autocomplete/index.mjs +76 -0
  36. package/dist/components/avatar/index.d.mts +23 -0
  37. package/dist/components/avatar/index.mjs +20 -0
  38. package/dist/components/avatar-group/index.d.mts +11 -0
  39. package/dist/components/avatar-group/index.mjs +20 -0
  40. package/dist/components/back-top/index.d.mts +29 -0
  41. package/dist/components/back-top/index.mjs +93 -0
  42. package/dist/components/badge/index.d.mts +10 -0
  43. package/dist/components/badge/index.mjs +23 -0
  44. package/dist/components/banner/index.d.mts +24 -0
  45. package/dist/components/banner/index.mjs +67 -0
  46. package/dist/components/bento/index.d.mts +24 -0
  47. package/dist/components/bento/index.mjs +51 -0
  48. package/dist/components/block-ui/index.d.mts +12 -0
  49. package/dist/components/block-ui/index.mjs +43 -0
  50. package/dist/components/breadcrumb/index.d.mts +11 -0
  51. package/dist/components/breadcrumb/index.mjs +45 -0
  52. package/dist/components/browser/index.d.mts +21 -0
  53. package/dist/components/browser/index.mjs +87 -0
  54. package/dist/components/button/index.d.mts +15 -0
  55. package/dist/components/button/index.mjs +43 -0
  56. package/dist/components/button-group/index.d.mts +23 -0
  57. package/dist/components/button-group/index.mjs +38 -0
  58. package/dist/components/calendar/index.d.mts +17 -0
  59. package/dist/components/calendar/index.mjs +209 -0
  60. package/dist/components/card/index.d.mts +11 -0
  61. package/dist/components/card/index.mjs +33 -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 +304 -0
  66. package/dist/components/checkbox/index.d.mts +15 -0
  67. package/dist/components/checkbox/index.mjs +18 -0
  68. package/dist/components/checkbox-group/index.d.mts +28 -0
  69. package/dist/components/checkbox-group/index.mjs +97 -0
  70. package/dist/components/chip/index.d.mts +12 -0
  71. package/dist/components/chip/index.mjs +36 -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 +16 -0
  75. package/dist/components/clipboard/index.mjs +19 -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 +19 -0
  81. package/dist/components/color-picker/index.mjs +18 -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 +253 -0
  86. package/dist/components/comment/index.d.mts +17 -0
  87. package/dist/components/comment/index.mjs +101 -0
  88. package/dist/components/config-provider/index.d.mts +48 -0
  89. package/dist/components/config-provider/index.mjs +67 -0
  90. package/dist/components/container/index.d.mts +13 -0
  91. package/dist/components/container/index.mjs +23 -0
  92. package/dist/components/data-view/index.d.mts +18 -0
  93. package/dist/components/data-view/index.mjs +110 -0
  94. package/dist/components/date-input/index.d.mts +15 -0
  95. package/dist/components/date-input/index.mjs +18 -0
  96. package/dist/components/date-picker/index.d.mts +17 -0
  97. package/dist/components/date-picker/index.mjs +18 -0
  98. package/dist/components/deferred-content/index.d.mts +16 -0
  99. package/dist/components/deferred-content/index.mjs +52 -0
  100. package/dist/components/descriptions/index.d.mts +26 -0
  101. package/dist/components/descriptions/index.mjs +69 -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 +22 -0
  105. package/dist/components/dock/index.mjs +64 -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 +30 -0
  111. package/dist/components/dynamic-input/index.mjs +119 -0
  112. package/dist/components/editable/index.d.mts +15 -0
  113. package/dist/components/editable/index.mjs +18 -0
  114. package/dist/components/ellipsis/index.d.mts +10 -0
  115. package/dist/components/ellipsis/index.mjs +27 -0
  116. package/dist/components/empty/index.d.mts +10 -0
  117. package/dist/components/empty/index.mjs +31 -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 +17 -0
  123. package/dist/components/file-upload/index.mjs +18 -0
  124. package/dist/components/float-button/index.d.mts +61 -0
  125. package/dist/components/float-button/index.mjs +129 -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 +125 -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 +42 -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 +54 -0
  144. package/dist/components/image/index.d.mts +17 -0
  145. package/dist/components/image/index.mjs +70 -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 +19 -0
  149. package/dist/components/image-viewer/index.mjs +152 -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 +18 -0
  153. package/dist/components/input-group/index.mjs +36 -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 +15 -0
  158. package/dist/components/layout/index.d.mts +60 -0
  159. package/dist/components/layout/index.mjs +192 -0
  160. package/dist/components/link/index.d.mts +10 -0
  161. package/dist/components/link/index.mjs +24 -0
  162. package/dist/components/list/index.d.mts +26 -0
  163. package/dist/components/list/index.mjs +97 -0
  164. package/dist/components/listbox/index.d.mts +17 -0
  165. package/dist/components/listbox/index.mjs +19 -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 +34 -0
  170. package/dist/components/mentions/index.d.mts +2 -0
  171. package/dist/components/mentions/index.mjs +3 -0
  172. package/dist/components/menu/index.d.mts +13 -0
  173. package/dist/components/menu/index.mjs +38 -0
  174. package/dist/components/menubar/index.d.mts +32 -0
  175. package/dist/components/menubar/index.mjs +83 -0
  176. package/dist/components/meter/index.d.mts +21 -0
  177. package/dist/components/meter/index.mjs +95 -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 +15 -0
  181. package/dist/components/number-input/index.mjs +18 -0
  182. package/dist/components/order-list/index.d.mts +21 -0
  183. package/dist/components/order-list/index.mjs +160 -0
  184. package/dist/components/page-header/index.d.mts +11 -0
  185. package/dist/components/page-header/index.mjs +34 -0
  186. package/dist/components/pagination/index.d.mts +17 -0
  187. package/dist/components/pagination/index.mjs +18 -0
  188. package/dist/components/password-input/index.d.mts +15 -0
  189. package/dist/components/password-input/index.mjs +18 -0
  190. package/dist/components/pin-input/index.d.mts +14 -0
  191. package/dist/components/pin-input/index.mjs +18 -0
  192. package/dist/components/popconfirm/index.d.mts +17 -0
  193. package/dist/components/popconfirm/index.mjs +85 -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 +15 -0
  199. package/dist/components/progress/index.mjs +18 -0
  200. package/dist/components/progress-group/index.d.mts +22 -0
  201. package/dist/components/progress-group/index.mjs +84 -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 +15 -0
  205. package/dist/components/radio-group/index.mjs +18 -0
  206. package/dist/components/rating-group/index.d.mts +15 -0
  207. package/dist/components/rating-group/index.mjs +18 -0
  208. package/dist/components/result/index.d.mts +22 -0
  209. package/dist/components/result/index.mjs +66 -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 +17 -0
  213. package/dist/components/segment-group/index.mjs +23 -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 +27 -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 +15 -0
  222. package/dist/components/slider/index.d.mts +15 -0
  223. package/dist/components/slider/index.mjs +18 -0
  224. package/dist/components/spinner/index.d.mts +9 -0
  225. package/dist/components/spinner/index.mjs +26 -0
  226. package/dist/components/split-button/index.d.mts +36 -0
  227. package/dist/components/split-button/index.mjs +124 -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 +11 -0
  231. package/dist/components/spotlight/index.mjs +38 -0
  232. package/dist/components/stack/index.d.mts +11 -0
  233. package/dist/components/stack/index.mjs +45 -0
  234. package/dist/components/stat/index.d.mts +17 -0
  235. package/dist/components/stat/index.mjs +44 -0
  236. package/dist/components/steps/index.d.mts +18 -0
  237. package/dist/components/steps/index.mjs +18 -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 +15 -0
  241. package/dist/components/switch/index.mjs +18 -0
  242. package/dist/components/table/index.d.mts +77 -0
  243. package/dist/components/table/index.mjs +837 -0
  244. package/dist/components/tabs/index.d.mts +19 -0
  245. package/dist/components/tabs/index.mjs +23 -0
  246. package/dist/components/tags-input/index.d.mts +16 -0
  247. package/dist/components/tags-input/index.mjs +18 -0
  248. package/dist/components/terminal/index.d.mts +17 -0
  249. package/dist/components/terminal/index.mjs +84 -0
  250. package/dist/components/textarea/index.d.mts +14 -0
  251. package/dist/components/textarea/index.mjs +37 -0
  252. package/dist/components/timeline/index.d.mts +15 -0
  253. package/dist/components/timeline/index.mjs +44 -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 +14 -0
  263. package/dist/components/toggle-group/index.mjs +18 -0
  264. package/dist/components/toolbar/index.d.mts +17 -0
  265. package/dist/components/toolbar/index.mjs +46 -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 +24 -0
  271. package/dist/components/transfer/index.mjs +175 -0
  272. package/dist/components/tree-select/index.d.mts +28 -0
  273. package/dist/components/tree-select/index.mjs +253 -0
  274. package/dist/components/tree-view/index.d.mts +18 -0
  275. package/dist/components/tree-view/index.mjs +19 -0
  276. package/dist/components/typography/index.d.mts +11 -0
  277. package/dist/components/typography/index.mjs +34 -0
  278. package/dist/components/user/index.d.mts +19 -0
  279. package/dist/components/user/index.mjs +68 -0
  280. package/dist/components/virtual-list/index.d.mts +17 -0
  281. package/dist/components/virtual-list/index.mjs +71 -0
  282. package/dist/components/watermark/index.d.mts +17 -0
  283. package/dist/components/watermark/index.mjs +77 -0
  284. package/dist/index-B1xiJ5ki.d.mts +1811 -0
  285. package/dist/index-DDX7x8aT.d.mts +95 -0
  286. package/dist/index-IfofF-SW.d.mts +10356 -0
  287. package/dist/index-YPUiqD3n.d.mts +42 -0
  288. package/dist/index.d.mts +141 -15209
  289. package/dist/index.mjs +141 -6171
  290. package/dist/input-DoFQ7RXh.mjs +78 -0
  291. package/dist/mentions-f5Js_2W7.mjs +263 -0
  292. package/dist/select-CHaXbzLX.mjs +115 -0
  293. package/package.json +101 -7
@@ -0,0 +1,110 @@
1
+ import { Pagination } from "../pagination/index.mjs";
2
+ import { injectComponentStyle } from "@bysages/core";
3
+ import { createComponent, effect, insert, memo, setAttribute, spread, template } from "@solidjs/web";
4
+ import { For, Show, createSignal, createUniqueId, splitProps } from "solid-js";
5
+ //#region src/components/data-view/index.tsx
6
+ var _tmpl$ = /* @__PURE__ */ template(`<div data-scope=data-view data-part=pager>`);
7
+ var _tmpl$2 = /* @__PURE__ */ template(`<div><div data-scope=data-view data-part=content></div><!>`);
8
+ var _tmpl$3 = /* @__PURE__ */ template(`<div data-scope=data-view data-part=cell>`);
9
+ /** One vessel, two layouts: the caller renders each record through
10
+ * renderItem, the view lays the records out as a ledger or a lattice
11
+ * and — when a page size is given — pages them with the pagination
12
+ * family's own parts rather than a second implementation. */
13
+ function DataView(props) {
14
+ injectComponentStyle("data-view");
15
+ const uid = createUniqueId();
16
+ const [own, rest] = splitProps(props, [
17
+ "items",
18
+ "layout",
19
+ "pageSize",
20
+ "renderItem",
21
+ "header"
22
+ ]);
23
+ const [page, setPage] = createSignal(1);
24
+ const pageCount = () => own.pageSize ? Math.max(1, Math.ceil(own.items.length / own.pageSize)) : 1;
25
+ const visible = () => own.pageSize ? own.items.slice((page() - 1) * own.pageSize, page() * own.pageSize) : own.items;
26
+ var _el$ = _tmpl$2();
27
+ var _el$2 = _el$.firstChild;
28
+ var _el$4 = _el$2.nextSibling;
29
+ spread(_el$, [rest, {
30
+ "data-scope": "data-view",
31
+ "data-part": "root",
32
+ "data-uid": uid
33
+ }], true);
34
+ insert(_el$, () => {
35
+ return own.header;
36
+ }, _el$2);
37
+ insert(_el$2, createComponent(For, {
38
+ get each() {
39
+ return visible();
40
+ },
41
+ children: (item, index) => (() => {
42
+ var _el$5 = _tmpl$3();
43
+ insert(_el$5, () => {
44
+ return own.renderItem?.(item, index());
45
+ });
46
+ return _el$5;
47
+ })()
48
+ }));
49
+ insert(_el$, createComponent(Show, {
50
+ get when() {
51
+ return memo(() => {
52
+ return !!own.pageSize;
53
+ })() ? pageCount() > 1 : own.pageSize;
54
+ },
55
+ get children() {
56
+ var _el$3 = _tmpl$();
57
+ insert(_el$3, createComponent(Pagination.Root, {
58
+ get count() {
59
+ return own.items.length;
60
+ },
61
+ get pageSize() {
62
+ return own.pageSize;
63
+ },
64
+ get page() {
65
+ return page();
66
+ },
67
+ siblingCount: 1,
68
+ onPageChange: (details) => setPage(details.page),
69
+ get children() {
70
+ return [
71
+ createComponent(Pagination.PrevTrigger, {
72
+ "aria-label": "Previous page",
73
+ children: "‹"
74
+ }),
75
+ createComponent(Pagination.Context, { children: (pagination) => createComponent(For, {
76
+ get each() {
77
+ return pagination().pages;
78
+ },
79
+ children: (entry, index) => entry.type === "ellipsis" ? createComponent(Pagination.Ellipsis, {
80
+ get index() {
81
+ return index();
82
+ },
83
+ children: "…"
84
+ }) : createComponent(Pagination.Item, {
85
+ type: "page",
86
+ get value() {
87
+ return entry.value;
88
+ },
89
+ get children() {
90
+ return entry.value;
91
+ }
92
+ })
93
+ }) }),
94
+ createComponent(Pagination.NextTrigger, {
95
+ "aria-label": "Next page",
96
+ children: "›"
97
+ })
98
+ ];
99
+ }
100
+ }));
101
+ return _el$3;
102
+ }
103
+ }), _el$4);
104
+ effect(() => own.layout ?? "list", (_v$) => {
105
+ setAttribute(_el$2, "data-layout", _v$);
106
+ });
107
+ return _el$;
108
+ }
109
+ //#endregion
110
+ export { DataView };
@@ -0,0 +1,15 @@
1
+ import { DateInput as DateInput$1, DateInputRootProps } from "@ark-ui/solid/date-input";
2
+ //#region src/components/date-input/index.d.ts
3
+ /** Ark's DateInput, dressed in the paper-and-ink system: a segmented
4
+ * field where the focused segment takes the flat ink fill. The API is
5
+ * Ark's own — Root, Label, Control, SegmentGroup, Segment, SegmentContext,
6
+ * HiddenInput. */
7
+ type DateInputOwnProps = {
8
+ /** One rung of the control-height ladder for the segmented field. */
9
+ size?: "sm" | "md" | "lg";
10
+ };
11
+ declare function DateInputRoot(props: DateInputRootProps & DateInputOwnProps): import("solid-js").JSX.Element;
12
+ export declare const DateInput: Omit<typeof DateInput$1, "Root"> & {
13
+ Root: typeof DateInputRoot;
14
+ };
15
+ //#endregion
@@ -0,0 +1,18 @@
1
+ import { injectComponentStyle } from "@bysages/core";
2
+ import { createComponent, mergeProps } from "@solidjs/web";
3
+ import { splitProps } from "solid-js";
4
+ import { DateInput as DateInput$1 } from "@ark-ui/solid/date-input";
5
+ //#region src/components/date-input/index.tsx
6
+ function DateInputRoot(props) {
7
+ const [own, rest] = splitProps(props, ["size"]);
8
+ return createComponent(DateInput$1.Root, mergeProps(rest, { get "data-size"() {
9
+ return own.size ?? "md";
10
+ } }));
11
+ }
12
+ const DateInput = {
13
+ ...DateInput$1,
14
+ Root: DateInputRoot
15
+ };
16
+ injectComponentStyle("date-input");
17
+ //#endregion
18
+ export { DateInput };
@@ -0,0 +1,17 @@
1
+ import { DatePicker as DatePicker$1, DatePickerRootProps } from "@ark-ui/solid/date-picker";
2
+ //#region src/components/date-picker/index.d.ts
3
+ /** Ark's DatePicker, dressed in the paper-and-ink system: the popup
4
+ * dissolves in on elevation, selected days take the flat ink fill, and
5
+ * range middles run subtle with cut corners. The API is Ark's own —
6
+ * Root, Label, Control, Input, Trigger, ClearTrigger, Positioner,
7
+ * Content, View, ViewControl, ViewTrigger, RangeText, PrevTrigger,
8
+ * NextTrigger, Table*, MonthSelect, YearSelect, PresetTrigger. */
9
+ type DatePickerOwnProps = {
10
+ /** One rung of the control-height ladder for the field row. */
11
+ size?: "sm" | "md" | "lg";
12
+ };
13
+ declare function DatePickerRoot(props: DatePickerRootProps & DatePickerOwnProps): import("solid-js").JSX.Element;
14
+ export declare const DatePicker: Omit<typeof DatePicker$1, "Root"> & {
15
+ Root: typeof DatePickerRoot;
16
+ };
17
+ //#endregion
@@ -0,0 +1,18 @@
1
+ import { injectComponentStyle } from "@bysages/core";
2
+ import { createComponent, mergeProps } from "@solidjs/web";
3
+ import { splitProps } from "solid-js";
4
+ import { DatePicker as DatePicker$1 } from "@ark-ui/solid/date-picker";
5
+ //#region src/components/date-picker/index.tsx
6
+ function DatePickerRoot(props) {
7
+ const [own, rest] = splitProps(props, ["size"]);
8
+ return createComponent(DatePicker$1.Root, mergeProps(rest, { get "data-size"() {
9
+ return own.size ?? "md";
10
+ } }));
11
+ }
12
+ const DatePicker = {
13
+ ...DatePicker$1,
14
+ Root: DatePickerRoot
15
+ };
16
+ injectComponentStyle("date-picker");
17
+ //#endregion
18
+ export { DatePicker };
@@ -0,0 +1,16 @@
1
+ import { JSX } from "solid-js";
2
+ //#region src/components/deferred-content/index.d.ts
3
+ export interface DeferredContentProps extends JSX.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?: JSX.Element;
9
+ children?: JSX.Element;
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(props: DeferredContentProps): JSX.Element;
16
+ //#endregion
@@ -0,0 +1,52 @@
1
+ import { injectComponentStyle } from "@bysages/core";
2
+ import { createComponent, insert, ref, spread, template } from "@solidjs/web";
3
+ import { Show, createSignal, onCleanup, onMount, splitProps } from "solid-js";
4
+ //#region src/components/deferred-content/index.tsx
5
+ var _tmpl$ = /* @__PURE__ */ template(`<div>`);
6
+ /** Content that waits to be worth rendering: the slot stays off the
7
+ * tree until the placeholder scrolls near the viewport, then mounts
8
+ * once and stays. The placeholder is drawn by the caller, so the late
9
+ * arrival costs no layout shift it cannot predict. */
10
+ function DeferredContent(props) {
11
+ injectComponentStyle("deferred-content");
12
+ const [own, rest] = splitProps(props, [
13
+ "threshold",
14
+ "placeholder",
15
+ "children"
16
+ ]);
17
+ const [host, setHost] = createSignal(null);
18
+ const [active, setActive] = createSignal(false);
19
+ onMount(() => {
20
+ const observer = new IntersectionObserver((entries) => {
21
+ if (entries.some((entry) => entry.isIntersecting)) {
22
+ setActive(true);
23
+ observer.disconnect();
24
+ }
25
+ }, { threshold: own.threshold ?? .2 });
26
+ const node = host();
27
+ if (node) observer.observe(node);
28
+ onCleanup(() => observer.disconnect());
29
+ });
30
+ var _el$ = _tmpl$();
31
+ ref(() => {
32
+ return setHost;
33
+ }, _el$);
34
+ spread(_el$, [rest, {
35
+ "data-scope": "deferred-content",
36
+ "data-part": "root"
37
+ }], true);
38
+ insert(_el$, createComponent(Show, {
39
+ get when() {
40
+ return active();
41
+ },
42
+ get fallback() {
43
+ return own.placeholder;
44
+ },
45
+ get children() {
46
+ return own.children;
47
+ }
48
+ }));
49
+ return _el$;
50
+ }
51
+ //#endregion
52
+ export { DeferredContent };
@@ -0,0 +1,26 @@
1
+ import { JSX } from "solid-js";
2
+ //#region src/components/descriptions/index.d.ts
3
+ /**
4
+ * A ledger laid flat: term and detail pairs in one quiet grid. The
5
+ * horizontal layout reads as a table of two columns; the vertical one
6
+ * stacks each pair for narrow measures.
7
+ */
8
+ export interface DescriptionsRootProps extends JSX.HTMLAttributes<HTMLDListElement> {
9
+ layout?: "horizontal" | "vertical";
10
+ /** The framed register: one hairline round the whole, terms on
11
+ * inset paper. */
12
+ bordered?: boolean;
13
+ /** Pairs across the grid: one ledger per column. */
14
+ column?: number;
15
+ }
16
+ declare function Root(props: DescriptionsRootProps): JSX.Element;
17
+ declare function Item(props: JSX.HTMLAttributes<HTMLDivElement> & {
18
+ span?: number;
19
+ }): JSX.Element;
20
+ export declare const Descriptions: typeof Root & {
21
+ Root: typeof Root;
22
+ Item: typeof Item;
23
+ Term: (props: JSX.HTMLAttributes<HTMLDivElement>) => JSX.Element;
24
+ Detail: (props: JSX.HTMLAttributes<HTMLDivElement>) => JSX.Element;
25
+ };
26
+ //#endregion
@@ -0,0 +1,69 @@
1
+ import { injectComponentStyle } from "@bysages/core";
2
+ import { createComponent, mergeProps, spread, template } from "@solidjs/web";
3
+ import { splitProps } from "solid-js";
4
+ //#region src/components/descriptions/index.tsx
5
+ var _tmpl$ = /* @__PURE__ */ template(`<dl>`);
6
+ var _tmpl$2 = /* @__PURE__ */ template(`<div>`);
7
+ function Root(props) {
8
+ const [own, rest] = splitProps(props, [
9
+ "layout",
10
+ "bordered",
11
+ "column",
12
+ "style"
13
+ ]);
14
+ var _el$ = _tmpl$();
15
+ spread(_el$, [rest, {
16
+ get style() {
17
+ return {
18
+ ...own.style,
19
+ "--bs-desc-columns": String(own.column ?? 1)
20
+ };
21
+ },
22
+ "data-scope": "descriptions",
23
+ "data-part": "root",
24
+ get "data-layout"() {
25
+ return own.layout ?? "horizontal";
26
+ },
27
+ get "data-bordered"() {
28
+ return own.bordered || void 0;
29
+ }
30
+ }], false);
31
+ return _el$;
32
+ }
33
+ function part(name, tag) {
34
+ function Component(props) {
35
+ return createComponent(tag, mergeProps(props, {
36
+ "data-scope": "descriptions",
37
+ get "data-part"() {
38
+ return name.toLowerCase();
39
+ }
40
+ }));
41
+ }
42
+ return Component;
43
+ }
44
+ function Item(props) {
45
+ const [own, rest] = splitProps(props, ["span", "style"]);
46
+ var _el$2 = _tmpl$2();
47
+ spread(_el$2, [rest, {
48
+ get style() {
49
+ return {
50
+ ...own.style,
51
+ "--bs-desc-span": String((own.span ?? 1) * 2)
52
+ };
53
+ },
54
+ "data-scope": "descriptions",
55
+ "data-part": "item"
56
+ }], false);
57
+ return _el$2;
58
+ }
59
+ const Term = part("Term", "dt");
60
+ const Detail = part("Detail", "dd");
61
+ const Descriptions = Object.assign(Root, {
62
+ Root,
63
+ Item,
64
+ Term,
65
+ Detail
66
+ });
67
+ injectComponentStyle("descriptions");
68
+ //#endregion
69
+ export { Descriptions };
@@ -0,0 +1,9 @@
1
+ import { Dialog as Dialog$1, DialogOpenChangeDetails } from "@ark-ui/solid/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/solid/dialog";
3
+ //#region src/components/dialog/index.ts
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,22 @@
1
+ import { JSX } from "solid-js";
2
+ //#region src/components/dock/index.d.ts
3
+ export interface DockProps extends JSX.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
+ }
9
+ export interface DockItemProps extends JSX.HTMLAttributes<HTMLDivElement> {}
10
+ /** The magnifying dock: a floating rail whose icons swell toward the
11
+ * hand. The wrapper measures per item and writes --bs-dock-scale; CSS
12
+ * eases the chase, so no spring engine rides along. */
13
+ export declare function DockRoot(props: DockProps): JSX.Element;
14
+ /** One moored place in the rail: whatever slots in grows from the
15
+ * floor, never from its center. */
16
+ export declare function DockItem(props: DockItemProps): JSX.Element;
17
+ /** The whole family under one handle — Dock.Root, Dock.Item. */
18
+ export declare const Dock: typeof DockRoot & {
19
+ Root: typeof DockRoot;
20
+ Item: typeof DockItem;
21
+ };
22
+ //#endregion
@@ -0,0 +1,64 @@
1
+ import { injectComponentStyle } from "@bysages/core";
2
+ import { insert, spread, template } from "@solidjs/web";
3
+ import { splitProps } from "solid-js";
4
+ //#region src/components/dock/index.tsx
5
+ var _tmpl$ = /* @__PURE__ */ template(`<div>`);
6
+ const ITEM = "[data-scope=\"dock\"][data-part=\"item\"]";
7
+ /** The magnifying dock: a floating rail whose icons swell toward the
8
+ * hand. The wrapper measures per item and writes --bs-dock-scale; CSS
9
+ * eases the chase, so no spring engine rides along. */
10
+ function DockRoot(props) {
11
+ injectComponentStyle("dock");
12
+ const [own, rest] = splitProps(props, ["maxScale", "radius"]);
13
+ const maxScale = () => own.maxScale ?? 1.5;
14
+ const radius = () => own.radius ?? 96;
15
+ const magnify = (event) => {
16
+ for (const item of event.currentTarget.querySelectorAll(ITEM)) {
17
+ const rect = item.getBoundingClientRect();
18
+ const dist = Math.abs(event.clientX - (rect.left + rect.width / 2));
19
+ const t = Math.max(0, 1 - dist / radius());
20
+ item.style.setProperty("--bs-dock-scale", (1 + (maxScale() - 1) * t * t).toFixed(4));
21
+ }
22
+ };
23
+ const reset = (event) => {
24
+ for (const item of event.currentTarget.querySelectorAll(ITEM)) item.style.removeProperty("--bs-dock-scale");
25
+ };
26
+ var _el$ = _tmpl$();
27
+ spread(_el$, [rest, {
28
+ "data-scope": "dock",
29
+ "data-part": "root",
30
+ get style() {
31
+ return {
32
+ ...rest.style,
33
+ "--bs-dock-max-scale": String(maxScale())
34
+ };
35
+ },
36
+ onPointerMove: magnify,
37
+ onPointerLeave: reset
38
+ }], true);
39
+ insert(_el$, () => {
40
+ return rest.children;
41
+ });
42
+ return _el$;
43
+ }
44
+ /** One moored place in the rail: whatever slots in grows from the
45
+ * floor, never from its center. */
46
+ function DockItem(props) {
47
+ injectComponentStyle("dock");
48
+ var _el$2 = _tmpl$();
49
+ spread(_el$2, [props, {
50
+ "data-scope": "dock",
51
+ "data-part": "item"
52
+ }], true);
53
+ insert(_el$2, () => {
54
+ return props.children;
55
+ });
56
+ return _el$2;
57
+ }
58
+ /** The whole family under one handle — Dock.Root, Dock.Item. */
59
+ const Dock = Object.assign(DockRoot, {
60
+ Root: DockRoot,
61
+ Item: DockItem
62
+ });
63
+ //#endregion
64
+ export { Dock, DockItem, DockRoot };
@@ -0,0 +1,2 @@
1
+ import { DownloadTrigger, DownloadTriggerBaseProps, DownloadTriggerProps, DownloadableData, UseDownloadProps, UseDownloadReturn, useDownload } from "@ark-ui/solid/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/solid/download-trigger";
2
+ export { DownloadTrigger, useDownload };
@@ -0,0 +1,9 @@
1
+ import { Drawer as Drawer$1 } from "@ark-ui/solid/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/solid/drawer";
3
+ //#region src/components/drawer/index.ts
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,30 @@
1
+ import { JSX } from "solid-js";
2
+ //#region src/components/dynamic-input/index.d.ts
3
+ export interface DynamicInputProps extends JSX.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
+ /** One rung of the ladder, handed to every row's field and seals. */
14
+ size?: "sm" | "md" | "lg";
15
+ disabled?: boolean;
16
+ invalid?: boolean;
17
+ /** Every edit emits a fresh array; the caller's array stays the only
18
+ * truth. */
19
+ onValueChange?: (value: string[]) => void;
20
+ }
21
+ /**
22
+ * A column of entry rows: one Input per line, each with a quiet remove
23
+ * seal, and an add row at the tail. The list is controlled — every edit
24
+ * calls `onValueChange` with a fresh array and the caller's array stays
25
+ * the only truth. Deleting never drops below `min`, adding never grows
26
+ * past `max`, and the group always keeps one row: an entry list that
27
+ * emptied itself would leave the reader no place to type.
28
+ */
29
+ export declare function DynamicInput(props: DynamicInputProps): JSX.Element;
30
+ //#endregion
@@ -0,0 +1,119 @@
1
+ import { Button } from "../button/index.mjs";
2
+ import { t as Input } from "../../input-DoFQ7RXh.mjs";
3
+ import { injectComponentStyle } from "@bysages/core";
4
+ import { createComponent, insert, memo, spread, template } from "@solidjs/web";
5
+ import { Index, splitProps } from "solid-js";
6
+ //#region src/components/dynamic-input/index.tsx
7
+ var _tmpl$ = /* @__PURE__ */ template(`<div><div data-scope=dynamic-input data-part=add>`);
8
+ var _tmpl$2 = /* @__PURE__ */ template(`<div data-scope=dynamic-input data-part=row><!><!>`);
9
+ var _tmpl$3 = /* @__PURE__ */ template(`<svg width=16 height=16 viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=1.75 stroke-linecap=round stroke-linejoin=round aria-hidden=true><path d="M18 6 6 18M6 6l12 12">`);
10
+ /**
11
+ * A column of entry rows: one Input per line, each with a quiet remove
12
+ * seal, and an add row at the tail. The list is controlled — every edit
13
+ * calls `onValueChange` with a fresh array and the caller's array stays
14
+ * the only truth. Deleting never drops below `min`, adding never grows
15
+ * past `max`, and the group always keeps one row: an entry list that
16
+ * emptied itself would leave the reader no place to type.
17
+ */
18
+ function DynamicInput(props) {
19
+ injectComponentStyle("dynamic-input");
20
+ const [own, rest] = splitProps(props, [
21
+ "value",
22
+ "min",
23
+ "max",
24
+ "placeholder",
25
+ "size",
26
+ "addLabel",
27
+ "disabled",
28
+ "invalid",
29
+ "onValueChange",
30
+ "children"
31
+ ]);
32
+ const values = () => own.value ?? [""];
33
+ const update = (index, value) => {
34
+ const next = values().slice();
35
+ next[index] = value;
36
+ own.onValueChange?.(next);
37
+ };
38
+ const remove = (index) => {
39
+ const next = values().filter((_, i) => i !== index);
40
+ own.onValueChange?.(next.length > 0 ? next : [""]);
41
+ };
42
+ const add = () => {
43
+ own.onValueChange?.([...values(), ""]);
44
+ };
45
+ const canRemove = () => values().length > Math.max(own.min ?? 0, 1);
46
+ const canAdd = () => own.max === void 0 || values().length < own.max;
47
+ var _el$ = _tmpl$();
48
+ var _el$2 = _el$.firstChild;
49
+ spread(_el$, [rest, {
50
+ "data-scope": "dynamic-input",
51
+ "data-part": "root"
52
+ }], true);
53
+ insert(_el$, createComponent(Index, {
54
+ get each() {
55
+ return values();
56
+ },
57
+ children: (value, index) => (() => {
58
+ var _el$3 = _tmpl$2();
59
+ var _el$4 = _el$3.firstChild;
60
+ var _el$5 = _el$4.nextSibling;
61
+ insert(_el$3, createComponent(Input, {
62
+ get value() {
63
+ return value();
64
+ },
65
+ get placeholder() {
66
+ return own.placeholder;
67
+ },
68
+ get disabled() {
69
+ return own.disabled;
70
+ },
71
+ get invalid() {
72
+ return own.invalid;
73
+ },
74
+ get size() {
75
+ return own.size ?? "md";
76
+ },
77
+ onValueChange: (next) => update(index, next)
78
+ }), _el$4);
79
+ insert(_el$3, createComponent(Button, {
80
+ variant: "ghost",
81
+ get size() {
82
+ return own.size ?? "md";
83
+ },
84
+ square: true,
85
+ get disabled() {
86
+ return own.disabled || !canRemove();
87
+ },
88
+ "aria-label": `Remove entry ${index + 1}`,
89
+ onClick: () => remove(index),
90
+ get children() {
91
+ return crossIcon();
92
+ }
93
+ }), _el$5);
94
+ return _el$3;
95
+ })()
96
+ }), _el$2);
97
+ insert(_el$2, createComponent(Button, {
98
+ variant: "ghost",
99
+ get size() {
100
+ return own.size ?? "md";
101
+ },
102
+ get disabled() {
103
+ return own.disabled || !canAdd();
104
+ },
105
+ onClick: () => add(),
106
+ get children() {
107
+ return ["+", memo(() => {
108
+ return own.addLabel ?? "Add entry";
109
+ })];
110
+ }
111
+ }));
112
+ return _el$;
113
+ }
114
+ /** The one glyph a remove seal needs: a single crossing stroke. */
115
+ function crossIcon() {
116
+ return _tmpl$3();
117
+ }
118
+ //#endregion
119
+ export { DynamicInput };
@@ -0,0 +1,15 @@
1
+ import { Editable as Editable$1, EditableRootProps } from "@ark-ui/solid/editable";
2
+ //#region src/components/editable/index.d.ts
3
+ /** Ark's Editable, dressed in the paper-and-ink system: bare ink while
4
+ * reading, the full field recipe while editing. The API is Ark's own —
5
+ * Root, Area, Label, Preview, Input, EditTrigger, SubmitTrigger,
6
+ * CancelTrigger, Control. */
7
+ type EditableOwnProps = {
8
+ /** One rung of the control-height ladder for the editing field. */
9
+ size?: "sm" | "md" | "lg";
10
+ };
11
+ declare function EditableRoot(props: EditableRootProps & EditableOwnProps): import("solid-js").JSX.Element;
12
+ export declare const Editable: Omit<typeof Editable$1, "Root"> & {
13
+ Root: typeof EditableRoot;
14
+ };
15
+ //#endregion