@bysages/react 0.4.3 → 0.5.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 (310) hide show
  1. package/dist/ai-B3vbpXlK.mjs +309 -0
  2. package/dist/ai-prompt-input-k34KssHJ.mjs +401 -0
  3. package/dist/{ai-response-CjjjprMY.mjs → ai-response-DTxdL5rX.mjs} +9 -11
  4. package/dist/{chevron-BA7kV9m7.mjs → chevron-DnImlNip.mjs} +2 -3
  5. package/dist/components/accordion/index.d.mts +1 -2
  6. package/dist/components/accordion/index.mjs +3 -4
  7. package/dist/components/affix/index.d.mts +1 -2
  8. package/dist/components/affix/index.mjs +2 -3
  9. package/dist/components/ai/index.d.mts +107 -2
  10. package/dist/components/ai/index.mjs +7 -82
  11. package/dist/components/ai-action/index.d.mts +0 -2
  12. package/dist/components/ai-action/index.mjs +2 -3
  13. package/dist/components/ai-attachments/index.d.mts +0 -2
  14. package/dist/components/ai-attachments/index.mjs +4 -5
  15. package/dist/components/ai-message/index.d.mts +2 -14
  16. package/dist/components/ai-message/index.mjs +5 -4
  17. package/dist/components/ai-prompt-input/index.d.mts +14 -18
  18. package/dist/components/ai-prompt-input/index.mjs +1 -126
  19. package/dist/components/ai-reasoning/index.d.mts +0 -2
  20. package/dist/components/ai-reasoning/index.mjs +3 -4
  21. package/dist/components/ai-response/index.d.mts +1 -3
  22. package/dist/components/ai-response/index.mjs +1 -2
  23. package/dist/components/ai-source/index.d.mts +0 -2
  24. package/dist/components/ai-source/index.mjs +2 -3
  25. package/dist/components/ai-suggestion/index.d.mts +0 -2
  26. package/dist/components/ai-suggestion/index.mjs +2 -3
  27. package/dist/components/ai-tool/index.d.mts +2 -24
  28. package/dist/components/ai-tool/index.mjs +46 -14
  29. package/dist/components/alert/index.d.mts +1 -2
  30. package/dist/components/alert/index.mjs +2 -3
  31. package/dist/components/angle-slider/index.d.mts +1 -2
  32. package/dist/components/angle-slider/index.mjs +2 -3
  33. package/dist/components/aspect-ratio/index.d.mts +1 -2
  34. package/dist/components/aspect-ratio/index.mjs +2 -3
  35. package/dist/components/autocomplete/index.d.mts +1 -2
  36. package/dist/components/autocomplete/index.mjs +3 -4
  37. package/dist/components/avatar/index.d.mts +13 -4
  38. package/dist/components/avatar/index.mjs +20 -6
  39. package/dist/components/avatar-group/index.d.mts +1 -2
  40. package/dist/components/avatar-group/index.mjs +2 -3
  41. package/dist/components/back-top/index.d.mts +1 -2
  42. package/dist/components/back-top/index.mjs +3 -4
  43. package/dist/components/badge/index.d.mts +1 -2
  44. package/dist/components/badge/index.mjs +2 -3
  45. package/dist/components/banner/index.d.mts +17 -4
  46. package/dist/components/banner/index.mjs +21 -6
  47. package/dist/components/bento/index.d.mts +1 -3
  48. package/dist/components/bento/index.mjs +1 -2
  49. package/dist/components/block-ui/index.d.mts +1 -2
  50. package/dist/components/block-ui/index.mjs +2 -3
  51. package/dist/components/breadcrumb/index.d.mts +16 -3
  52. package/dist/components/breadcrumb/index.mjs +22 -5
  53. package/dist/components/browser/index.d.mts +1 -3
  54. package/dist/components/browser/index.mjs +1 -2
  55. package/dist/components/button/index.d.mts +1 -2
  56. package/dist/components/button/index.mjs +2 -3
  57. package/dist/components/button-group/index.d.mts +1 -2
  58. package/dist/components/button-group/index.mjs +1 -2
  59. package/dist/components/calendar/index.d.mts +1 -2
  60. package/dist/components/calendar/index.mjs +3 -4
  61. package/dist/components/card/index.d.mts +1 -3
  62. package/dist/components/card/index.mjs +1 -2
  63. package/dist/components/carousel/index.d.mts +1 -2
  64. package/dist/components/carousel/index.mjs +3 -4
  65. package/dist/components/cascade-select/index.d.mts +1 -2
  66. package/dist/components/cascade-select/index.mjs +6 -7
  67. package/dist/components/checkbox/index.d.mts +1 -2
  68. package/dist/components/checkbox/index.mjs +3 -4
  69. package/dist/components/checkbox-group/index.d.mts +1 -2
  70. package/dist/components/checkbox-group/index.mjs +3 -4
  71. package/dist/components/chip/index.d.mts +1 -2
  72. package/dist/components/chip/index.mjs +2 -3
  73. package/dist/components/client-only/index.d.mts +0 -2
  74. package/dist/components/client-only/index.mjs +2 -3
  75. package/dist/components/clipboard/index.d.mts +1 -2
  76. package/dist/components/clipboard/index.mjs +3 -4
  77. package/dist/components/collapsible/index.d.mts +1 -2
  78. package/dist/components/collapsible/index.mjs +3 -4
  79. package/dist/components/collection/index.mjs +1 -2
  80. package/dist/components/color-picker/index.d.mts +3 -2
  81. package/dist/components/color-picker/index.mjs +38 -25
  82. package/dist/components/combobox/index.d.mts +1 -2
  83. package/dist/components/combobox/index.mjs +3 -4
  84. package/dist/components/command/index.d.mts +1 -2
  85. package/dist/components/command/index.mjs +3 -4
  86. package/dist/components/comment/index.d.mts +1 -2
  87. package/dist/components/comment/index.mjs +2 -3
  88. package/dist/components/config-provider/index.d.mts +1 -2
  89. package/dist/components/config-provider/index.mjs +2 -3
  90. package/dist/components/container/index.d.mts +1 -2
  91. package/dist/components/container/index.mjs +2 -3
  92. package/dist/components/data-view/index.d.mts +1 -2
  93. package/dist/components/data-view/index.mjs +3 -4
  94. package/dist/components/date-input/index.d.mts +0 -2
  95. package/dist/components/date-input/index.mjs +2 -3
  96. package/dist/components/date-picker/index.d.mts +0 -2
  97. package/dist/components/date-picker/index.mjs +3 -4
  98. package/dist/components/deferred-content/index.d.mts +1 -2
  99. package/dist/components/deferred-content/index.mjs +2 -3
  100. package/dist/components/descriptions/index.d.mts +1 -2
  101. package/dist/components/descriptions/index.mjs +2 -3
  102. package/dist/components/dialog/index.d.mts +31 -4
  103. package/dist/components/dialog/index.mjs +41 -10
  104. package/dist/components/dock/index.d.mts +1 -3
  105. package/dist/components/dock/index.mjs +1 -2
  106. package/dist/components/download-trigger/index.d.mts +0 -2
  107. package/dist/components/download-trigger/index.mjs +2 -3
  108. package/dist/components/drawer/index.d.mts +1 -2
  109. package/dist/components/drawer/index.mjs +3 -4
  110. package/dist/components/dynamic-input/index.d.mts +1 -2
  111. package/dist/components/dynamic-input/index.mjs +5 -6
  112. package/dist/components/editable/index.d.mts +1 -2
  113. package/dist/components/editable/index.mjs +3 -4
  114. package/dist/components/ellipsis/index.d.mts +1 -2
  115. package/dist/components/ellipsis/index.mjs +2 -3
  116. package/dist/components/empty/index.d.mts +1 -3
  117. package/dist/components/empty/index.mjs +1 -2
  118. package/dist/components/field/index.d.mts +1 -2
  119. package/dist/components/field/index.mjs +2 -3
  120. package/dist/components/fieldset/index.d.mts +1 -2
  121. package/dist/components/fieldset/index.mjs +2 -3
  122. package/dist/components/file-upload/index.d.mts +1 -2
  123. package/dist/components/file-upload/index.mjs +4 -9
  124. package/dist/components/float-button/index.d.mts +23 -3
  125. package/dist/components/float-button/index.mjs +30 -5
  126. package/dist/components/floating-panel/index.d.mts +1 -2
  127. package/dist/components/floating-panel/index.mjs +8 -4
  128. package/dist/components/focus-trap/index.d.mts +0 -2
  129. package/dist/components/focus-trap/index.mjs +2 -3
  130. package/dist/components/form/index.d.mts +0 -2
  131. package/dist/components/form/index.mjs +2 -3
  132. package/dist/components/format/index.d.mts +1 -3
  133. package/dist/components/format/index.mjs +1 -2
  134. package/dist/components/frame/index.d.mts +1 -3
  135. package/dist/components/frame/index.mjs +3 -4
  136. package/dist/components/grid/index.d.mts +1 -2
  137. package/dist/components/grid/index.mjs +2 -3
  138. package/dist/components/highlight/index.d.mts +1 -3
  139. package/dist/components/highlight/index.mjs +2 -3
  140. package/dist/components/hover-card/index.d.mts +1 -2
  141. package/dist/components/hover-card/index.mjs +2 -3
  142. package/dist/components/icon/index.d.mts +1 -2
  143. package/dist/components/icon/index.mjs +2 -3
  144. package/dist/components/image/index.d.mts +1 -2
  145. package/dist/components/image/index.mjs +3 -4
  146. package/dist/components/image-cropper/index.d.mts +1 -2
  147. package/dist/components/image-cropper/index.mjs +2 -3
  148. package/dist/components/image-viewer/index.d.mts +1 -1
  149. package/dist/components/image-viewer/index.mjs +1 -2
  150. package/dist/components/input/index.d.mts +1 -3
  151. package/dist/components/input/index.mjs +1 -2
  152. package/dist/components/input-group/index.d.mts +1 -3
  153. package/dist/components/input-group/index.mjs +1 -2
  154. package/dist/components/json-tree-view/index.d.mts +1 -2
  155. package/dist/components/json-tree-view/index.mjs +3 -4
  156. package/dist/components/kbd/index.d.mts +1 -2
  157. package/dist/components/kbd/index.mjs +2 -3
  158. package/dist/components/layout/index.d.mts +1 -2
  159. package/dist/components/layout/index.mjs +19 -15
  160. package/dist/components/link/index.d.mts +1 -2
  161. package/dist/components/link/index.mjs +2 -3
  162. package/dist/components/list/index.d.mts +1 -2
  163. package/dist/components/list/index.mjs +1 -2
  164. package/dist/components/listbox/index.d.mts +0 -2
  165. package/dist/components/listbox/index.mjs +3 -4
  166. package/dist/components/marquee/index.d.mts +1 -2
  167. package/dist/components/marquee/index.mjs +2 -3
  168. package/dist/components/masonry/index.d.mts +1 -2
  169. package/dist/components/masonry/index.mjs +2 -3
  170. package/dist/components/media-player/index.d.mts +1 -1
  171. package/dist/components/media-player/index.mjs +1 -2
  172. package/dist/components/mentions/index.d.mts +2 -2
  173. package/dist/components/mentions/index.mjs +1 -2
  174. package/dist/components/menu/index.d.mts +1 -2
  175. package/dist/components/menu/index.mjs +3 -4
  176. package/dist/components/menubar/index.d.mts +1 -2
  177. package/dist/components/menubar/index.mjs +2 -3
  178. package/dist/components/meter/index.d.mts +1 -3
  179. package/dist/components/meter/index.mjs +1 -2
  180. package/dist/components/navigation-menu/index.d.mts +1 -2
  181. package/dist/components/navigation-menu/index.mjs +2 -3
  182. package/dist/components/number-input/index.d.mts +1 -2
  183. package/dist/components/number-input/index.mjs +3 -4
  184. package/dist/components/order-list/index.d.mts +1 -2
  185. package/dist/components/order-list/index.mjs +4 -5
  186. package/dist/components/page-header/index.d.mts +1 -3
  187. package/dist/components/page-header/index.mjs +1 -2
  188. package/dist/components/pagination/index.d.mts +3 -4
  189. package/dist/components/pagination/index.mjs +3 -4
  190. package/dist/components/password-input/index.d.mts +1 -2
  191. package/dist/components/password-input/index.mjs +3 -4
  192. package/dist/components/pin-input/index.d.mts +1 -2
  193. package/dist/components/pin-input/index.mjs +2 -3
  194. package/dist/components/popconfirm/index.d.mts +2 -3
  195. package/dist/components/popconfirm/index.mjs +2 -3
  196. package/dist/components/popover/index.d.mts +1 -1
  197. package/dist/components/popover/index.mjs +3 -4
  198. package/dist/components/presence/index.d.mts +0 -2
  199. package/dist/components/presence/index.mjs +2 -3
  200. package/dist/components/progress/index.d.mts +1 -2
  201. package/dist/components/progress/index.mjs +2 -3
  202. package/dist/components/progress-group/index.d.mts +1 -2
  203. package/dist/components/progress-group/index.mjs +2 -3
  204. package/dist/components/qr-code/index.d.mts +1 -2
  205. package/dist/components/qr-code/index.mjs +2 -3
  206. package/dist/components/radio-group/index.d.mts +1 -2
  207. package/dist/components/radio-group/index.mjs +2 -3
  208. package/dist/components/rating-group/index.d.mts +1 -2
  209. package/dist/components/rating-group/index.mjs +3 -4
  210. package/dist/components/result/index.d.mts +1 -2
  211. package/dist/components/result/index.mjs +2 -3
  212. package/dist/components/scroll-area/index.d.mts +8 -3
  213. package/dist/components/scroll-area/index.mjs +7 -6
  214. package/dist/components/segment-group/index.d.mts +1 -2
  215. package/dist/components/segment-group/index.mjs +2 -3
  216. package/dist/components/select/index.d.mts +1 -1
  217. package/dist/components/select/index.mjs +1 -2
  218. package/dist/components/separator/index.d.mts +1 -2
  219. package/dist/components/separator/index.mjs +2 -3
  220. package/dist/components/signature-pad/index.d.mts +1 -2
  221. package/dist/components/signature-pad/index.mjs +3 -4
  222. package/dist/components/skeleton/index.d.mts +1 -2
  223. package/dist/components/skeleton/index.mjs +2 -3
  224. package/dist/components/slider/index.d.mts +1 -2
  225. package/dist/components/slider/index.mjs +2 -3
  226. package/dist/components/spinner/index.d.mts +1 -2
  227. package/dist/components/spinner/index.mjs +3 -4
  228. package/dist/components/split-button/index.d.mts +1 -2
  229. package/dist/components/split-button/index.mjs +4 -5
  230. package/dist/components/splitter/index.d.mts +1 -2
  231. package/dist/components/splitter/index.mjs +2 -3
  232. package/dist/components/spotlight/index.d.mts +1 -2
  233. package/dist/components/spotlight/index.mjs +2 -3
  234. package/dist/components/stack/index.d.mts +1 -2
  235. package/dist/components/stack/index.mjs +2 -3
  236. package/dist/components/stat/index.d.mts +1 -3
  237. package/dist/components/stat/index.mjs +1 -2
  238. package/dist/components/steps/index.d.mts +0 -2
  239. package/dist/components/steps/index.mjs +2 -3
  240. package/dist/components/swap/index.d.mts +1 -2
  241. package/dist/components/swap/index.mjs +3 -4
  242. package/dist/components/switch/index.d.mts +1 -2
  243. package/dist/components/switch/index.mjs +2 -3
  244. package/dist/components/table/index.d.mts +0 -2
  245. package/dist/components/table/index.mjs +5 -6
  246. package/dist/components/tabs/index.d.mts +9 -3
  247. package/dist/components/tabs/index.mjs +36 -8
  248. package/dist/components/tag/index.d.mts +1 -2
  249. package/dist/components/tag/index.mjs +3 -4
  250. package/dist/components/tags-input/index.d.mts +1 -2
  251. package/dist/components/tags-input/index.mjs +3 -4
  252. package/dist/components/terminal/index.d.mts +4 -3
  253. package/dist/components/terminal/index.mjs +8 -7
  254. package/dist/components/textarea/index.d.mts +1 -2
  255. package/dist/components/textarea/index.mjs +2 -3
  256. package/dist/components/timeline/index.d.mts +1 -2
  257. package/dist/components/timeline/index.mjs +1 -2
  258. package/dist/components/timer/index.d.mts +1 -2
  259. package/dist/components/timer/index.mjs +2 -3
  260. package/dist/components/toast/index.d.mts +0 -2
  261. package/dist/components/toast/index.mjs +18 -6
  262. package/dist/components/toc/index.d.mts +1 -2
  263. package/dist/components/toc/index.mjs +2 -3
  264. package/dist/components/toggle/index.d.mts +1 -2
  265. package/dist/components/toggle/index.mjs +2 -3
  266. package/dist/components/toggle-group/index.d.mts +1 -2
  267. package/dist/components/toggle-group/index.mjs +3 -4
  268. package/dist/components/toolbar/index.d.mts +1 -2
  269. package/dist/components/toolbar/index.mjs +2 -3
  270. package/dist/components/tooltip/index.d.mts +1 -2
  271. package/dist/components/tooltip/index.mjs +2 -3
  272. package/dist/components/tour/index.d.mts +0 -2
  273. package/dist/components/tour/index.mjs +2 -3
  274. package/dist/components/transfer/index.d.mts +1 -2
  275. package/dist/components/transfer/index.mjs +5 -6
  276. package/dist/components/tree-select/index.d.mts +2 -3
  277. package/dist/components/tree-select/index.mjs +5 -6
  278. package/dist/components/tree-view/index.d.mts +15 -5
  279. package/dist/components/tree-view/index.mjs +30 -12
  280. package/dist/components/typography/index.d.mts +1 -3
  281. package/dist/components/typography/index.mjs +1 -2
  282. package/dist/components/user/index.d.mts +1 -2
  283. package/dist/components/user/index.mjs +2 -3
  284. package/dist/components/virtual-list/index.d.mts +1 -2
  285. package/dist/components/virtual-list/index.mjs +2 -3
  286. package/dist/components/watermark/index.d.mts +1 -2
  287. package/dist/components/watermark/index.mjs +2 -3
  288. package/dist/{family-DE_GQeeM.mjs → family-Co1YsN4N.mjs} +1 -2
  289. package/dist/generative/index.d.mts +0 -2
  290. package/dist/generative/index.mjs +146 -106
  291. package/dist/{icon-Cri0-7-x.mjs → icon-C9udWCyz.mjs} +1 -2
  292. package/dist/{id-C37UYLwJ.mjs → id-Ctic_3o8.mjs} +1 -2
  293. package/dist/{image-viewer-D4FuYrk6.mjs → image-viewer-BYiXpi1X.mjs} +21 -26
  294. package/dist/{index-Eu-Bttta.d.mts → index-BVdkcSSY.d.mts} +0 -2
  295. package/dist/index-CjO4Ggf0.d.mts +115 -0
  296. package/dist/{index-Dj8S4eyJ.d.mts → index-D4C52fI7.d.mts} +0 -4
  297. package/dist/{index-BcRdWGY-.d.mts → index-DIZEFqJM.d.mts} +0 -8
  298. package/dist/{index-Bbg4heDO.d.mts → index-DcpvCyt6.d.mts} +63 -18
  299. package/dist/{index-D_iKc2Uw.d.mts → index-DczfbPCg.d.mts} +0 -4
  300. package/dist/index-lCsvE2Vl.d.mts +37 -0
  301. package/dist/index.d.mts +14 -14
  302. package/dist/index.mjs +10 -10
  303. package/dist/{input-BDpQ0e6G.mjs → input-YRjehBhU.mjs} +3 -5
  304. package/dist/{media-player-C0WcjVI-.mjs → media-player-CO2Cczl-.mjs} +7 -12
  305. package/dist/mentions-De7ChJbl.mjs +335 -0
  306. package/dist/{messages-1jJWtaYU.mjs → messages-B6n0lVyt.mjs} +1 -2
  307. package/dist/{select-D_soVdWK.mjs → select-DQ5669_K.mjs} +4 -6
  308. package/package.json +17 -17
  309. package/dist/index-B4twHAQC.d.mts +0 -10456
  310. package/dist/mentions-BwnyvdXz.mjs +0 -213
@@ -1,15 +1,18 @@
1
- import { r as iconNode } from "../icon-Cri0-7-x.mjs";
1
+ import { r as iconNode } from "../icon-C9udWCyz.mjs";
2
2
  import { Button } from "../components/button/index.mjs";
3
3
  import { Alert } from "../components/alert/index.mjs";
4
4
  import { Avatar } from "../components/avatar/index.mjs";
5
5
  import { Badge } from "../components/badge/index.mjs";
6
+ import { Banner } from "../components/banner/index.mjs";
6
7
  import { Spinner } from "../components/spinner/index.mjs";
8
+ import { Breadcrumb } from "../components/breadcrumb/index.mjs";
7
9
  import { Card } from "../components/card/index.mjs";
8
- import { t as Input } from "../input-BDpQ0e6G.mjs";
10
+ import { t as Input } from "../input-YRjehBhU.mjs";
9
11
  import { Checkbox } from "../components/checkbox/index.mjs";
12
+ import { FloatButton } from "../components/float-button/index.mjs";
10
13
  import { Progress } from "../components/progress/index.mjs";
11
14
  import { RadioGroup } from "../components/radio-group/index.mjs";
12
- import { t as Select } from "../select-D_soVdWK.mjs";
15
+ import { t as Select } from "../select-DQ5669_K.mjs";
13
16
  import { Separator } from "../components/separator/index.mjs";
14
17
  import { Slider } from "../components/slider/index.mjs";
15
18
  import { Stack } from "../components/stack/index.mjs";
@@ -17,14 +20,13 @@ import { Stat } from "../components/stat/index.mjs";
17
20
  import { Switch } from "../components/switch/index.mjs";
18
21
  import { Textarea } from "../components/textarea/index.mjs";
19
22
  import { Typography } from "../components/typography/index.mjs";
20
- import { jsx, jsxs } from "react/jsx-runtime";
23
+ import { jsx } from "react/jsx-runtime";
21
24
  import { createElement } from "react";
22
- import { createListCollection } from "@ark-ui/react/collection";
23
25
  import { z } from "zod";
24
26
  import { defineRegistry, useBoundProp } from "@json-render/react";
25
27
  import { defineCatalog } from "@json-render/core";
26
28
  import { schema } from "@json-render/react/schema";
27
- //#region \0rolldown/runtime.js
29
+ // \0rolldown/runtime.js
28
30
  var __defProp = Object.defineProperty;
29
31
  var __exportAll = (all, no_symbols) => {
30
32
  let target = {};
@@ -35,8 +37,7 @@ var __exportAll = (all, no_symbols) => {
35
37
  if (!no_symbols) __defProp(target, Symbol.toStringTag, { value: "Module" });
36
38
  return target;
37
39
  };
38
- //#endregion
39
- //#region src/generative/faces.generated.ts
40
+ // src/generative/faces.generated.ts
40
41
  /** Name the faces a family contributes; the identity keeps inference
41
42
  * honest at the call site. */
42
43
  function defineFace(faces) {
@@ -52,9 +53,6 @@ const headingClass = {
52
53
  "5": "text-lg",
53
54
  "6": "text-base"
54
55
  };
55
- function initials(name) {
56
- return name.split(/\s+/).filter(Boolean).slice(0, 2).map((part) => part[0]?.toUpperCase() ?? "").join("");
57
- }
58
56
  function slug(value) {
59
57
  return value.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/(^-|-$)/g, "") || value;
60
58
  }
@@ -88,6 +86,25 @@ const faces$1 = defineFace({
88
86
  }),
89
87
  description: "A person's seal: image when given, initials as the fallback."
90
88
  },
89
+ Banner: {
90
+ props: z.object({
91
+ status: z.enum([
92
+ "ink",
93
+ "info",
94
+ "success",
95
+ "warning",
96
+ "danger"
97
+ ]).optional(),
98
+ title: z.string().optional(),
99
+ message: z.string().optional(),
100
+ dismissible: z.boolean().optional()
101
+ }),
102
+ description: "A full-width notice that speaks once across the page."
103
+ },
104
+ Breadcrumb: {
105
+ props: z.object({ items: z.array(z.string()).optional() }),
106
+ description: "A trail of waymarks from home to the current page."
107
+ },
91
108
  Badge: {
92
109
  props: z.object({
93
110
  text: z.string(),
@@ -152,6 +169,29 @@ const faces$1 = defineFace({
152
169
  }),
153
170
  description: "One independent box with its label."
154
171
  },
172
+ FloatButton: {
173
+ props: z.object({
174
+ label: z.string().optional(),
175
+ actions: z.array(z.object({
176
+ label: z.string(),
177
+ icon: z.string().optional(),
178
+ disabled: z.boolean().optional()
179
+ })).optional(),
180
+ placement: z.enum([
181
+ "bottom-end",
182
+ "bottom-start",
183
+ "top-end",
184
+ "top-start"
185
+ ]).optional(),
186
+ size: z.enum([
187
+ "sm",
188
+ "md",
189
+ "lg"
190
+ ]).optional(),
191
+ defaultOpen: z.boolean().optional()
192
+ }),
193
+ description: "A floating action and its fanned alternatives; actions use curated icon names."
194
+ },
155
195
  Heading: {
156
196
  props: z.object({
157
197
  text: z.string(),
@@ -310,8 +350,7 @@ const faces$1 = defineFace({
310
350
  description: "A multi-line field for prose-length answers."
311
351
  }
312
352
  });
313
- //#endregion
314
- //#region src/generative/shared.ts
353
+ // src/generative/shared.ts
315
354
  /** Name the entries a family contributes; the identity keeps inference
316
355
  * honest at the call site. */
317
356
  function defineEntry(entries) {
@@ -328,55 +367,66 @@ const textVoices = {
328
367
  function useBound(value, path) {
329
368
  return useBoundProp(value, path);
330
369
  }
331
- const collectionCache = /* @__PURE__ */ new Map();
332
- function collectionFor(options) {
333
- const key = JSON.stringify(options);
334
- let collection = collectionCache.get(key);
335
- if (!collection) {
336
- collection = createListCollection({ items: options });
337
- collectionCache.set(key, collection);
338
- }
339
- return collection;
340
- }
341
370
  /** A labelled field: the label whispers above, the control answers. */
342
371
  function labelled(label, control) {
343
372
  return label ? createElement(Stack, { gap: "xs" }, createElement(Typography.Label, null, label), control) : control;
344
373
  }
345
- //#endregion
346
- //#region src/components/alert/generative.ts
347
- var generative_exports$17 = /* @__PURE__ */ __exportAll({ default: () => generative_default$17 });
374
+ // src/components/alert/generative.ts
375
+ var generative_exports$20 = /* @__PURE__ */ __exportAll({ default: () => generative_default$20 });
348
376
  /** A bordered notice; status picks the pigment. */
349
- var generative_default$17 = defineEntry({ Alert: {
377
+ var generative_default$20 = defineEntry({ Alert: {
350
378
  ...faces$1.Alert,
351
379
  component: ({ props }) => createElement(Alert.Root, { status: props.status ?? "ink" }, createElement(Alert.Icon), createElement(Alert.Body, null, createElement(Alert.Title, null, props.title), props.message != null ? createElement(Alert.Description, null, props.message) : null))
352
380
  } });
353
- //#endregion
354
- //#region src/components/avatar/generative.ts
355
- var generative_exports$16 = /* @__PURE__ */ __exportAll({ default: () => generative_default$16 });
381
+ // src/components/avatar/generative.ts
382
+ var generative_exports$19 = /* @__PURE__ */ __exportAll({ default: () => generative_default$19 });
356
383
  /** A person's seal: image when given, initials as the fallback. */
357
- var generative_default$16 = defineEntry({ Avatar: {
384
+ var generative_default$19 = defineEntry({ Avatar: {
358
385
  ...faces$1.Avatar,
359
- component: ({ props }) => createElement(Avatar.Root, { size: props.size }, [props.src != null ? createElement(Avatar.Image, {
360
- src: props.src,
361
- alt: props.name
362
- }) : null, createElement(Avatar.Fallback, null, initials(props.name))])
386
+ component: ({ props }) => createElement(Avatar, { ...props })
363
387
  } });
364
- //#endregion
365
- //#region src/components/badge/generative.ts
366
- var generative_exports$15 = /* @__PURE__ */ __exportAll({ default: () => generative_default$15 });
388
+ // src/components/badge/generative.ts
389
+ var generative_exports$18 = /* @__PURE__ */ __exportAll({ default: () => generative_default$18 });
367
390
  /** A small status seal beside content; reads at a glance. */
368
- var generative_default$15 = defineEntry({ Badge: {
391
+ var generative_default$18 = defineEntry({ Badge: {
369
392
  ...faces$1.Badge,
370
393
  component: ({ props }) => createElement(Badge, {
371
394
  tone: props.tone,
372
395
  variant: props.variant
373
396
  }, props.text)
374
397
  } });
375
- //#endregion
376
- //#region src/components/button/generative.ts
377
- var generative_exports$14 = /* @__PURE__ */ __exportAll({ default: () => generative_default$14 });
398
+ // src/components/banner/generative.ts
399
+ var generative_exports$17 = /* @__PURE__ */ __exportAll({ default: () => generative_default$17 });
400
+ /** A full-width notice that speaks once across the page. */
401
+ var generative_default$17 = defineEntry({ Banner: {
402
+ ...faces$1.Banner,
403
+ component: ({ props }) => createElement(Banner, {
404
+ ...props,
405
+ dismissible: true
406
+ })
407
+ } });
408
+ // src/components/breadcrumb/generative.ts
409
+ var generative_exports$16 = /* @__PURE__ */ __exportAll({ default: () => generative_default$16 });
410
+ /** A trail of waymarks from home to the current page. */
411
+ var generative_default$16 = defineEntry({ Breadcrumb: {
412
+ ...faces$1.Breadcrumb,
413
+ component: ({ props }) => {
414
+ const labels = props.items ?? [
415
+ "Home",
416
+ "Guides",
417
+ "Ink"
418
+ ];
419
+ const items = labels.map((label, index) => index === labels.length - 1 ? { label } : {
420
+ label,
421
+ href: `#${slug(label)}`
422
+ });
423
+ return createElement(Breadcrumb, { items });
424
+ }
425
+ } });
426
+ // src/components/button/generative.ts
427
+ var generative_exports$15 = /* @__PURE__ */ __exportAll({ default: () => generative_default$15 });
378
428
  /** The primary action register: solid ink for the one main action, outline, ghost, or subtle for the rest. */
379
- var generative_default$14 = defineEntry({ Button: {
429
+ var generative_default$15 = defineEntry({ Button: {
380
430
  ...faces$1.Button,
381
431
  component: ({ props, emit }) => createElement(Button, {
382
432
  variant: props.variant ?? "solid",
@@ -386,11 +436,10 @@ var generative_default$14 = defineEntry({ Button: {
386
436
  onClick: () => emit("press")
387
437
  }, props.label)
388
438
  } });
389
- //#endregion
390
- //#region src/components/card/generative.ts
391
- var generative_exports$13 = /* @__PURE__ */ __exportAll({ default: () => generative_default$13 });
439
+ // src/components/card/generative.ts
440
+ var generative_exports$14 = /* @__PURE__ */ __exportAll({ default: () => generative_default$14 });
392
441
  /** Grouping vessel. Give title and description instead of hand-building a header; children render in the body; footer holds actions. */
393
- var generative_default$13 = defineEntry({ Card: {
442
+ var generative_default$14 = defineEntry({ Card: {
394
443
  ...faces$1.Card,
395
444
  component: ({ props, children, slots }) => {
396
445
  const header = slots?.header ?? null;
@@ -398,11 +447,10 @@ var generative_default$13 = defineEntry({ Card: {
398
447
  return createElement(Card.Root, null, header ? createElement(Card.Header, null, header) : props.title != null || props.description != null ? createElement(Card.Header, null, props.title != null ? createElement(Card.Title, null, props.title) : null, props.description != null ? createElement(Card.Description, null, props.description) : null) : null, createElement(Card.Content, null, children), footer ? createElement(Card.Footer, null, footer) : null);
399
448
  }
400
449
  } });
401
- //#endregion
402
- //#region src/components/checkbox/generative.ts
403
- var generative_exports$12 = /* @__PURE__ */ __exportAll({ default: () => generative_default$12 });
450
+ // src/components/checkbox/generative.ts
451
+ var generative_exports$13 = /* @__PURE__ */ __exportAll({ default: () => generative_default$13 });
404
452
  /** One independent box with its label. */
405
- var generative_default$12 = defineEntry({ Checkbox: {
453
+ var generative_default$13 = defineEntry({ Checkbox: {
406
454
  ...faces$1.Checkbox,
407
455
  component: ({ props }) => {
408
456
  const mark = iconNode("check");
@@ -416,8 +464,24 @@ var generative_default$12 = defineEntry({ Checkbox: {
416
464
  ]);
417
465
  }
418
466
  } });
419
- //#endregion
420
- //#region src/components/input/generative.ts
467
+ // src/components/float-button/generative.ts
468
+ var generative_exports$12 = /* @__PURE__ */ __exportAll({ default: () => generative_default$12 });
469
+ /** A floating action cluster; named actions fan out from one corner. */
470
+ var generative_default$12 = defineEntry({ FloatButton: {
471
+ ...faces$1.FloatButton,
472
+ component: ({ props }) => {
473
+ const actions = Array.isArray(props.actions) ? props.actions : [{ label: "Edit" }];
474
+ return createElement(FloatButton, {
475
+ ...props,
476
+ actions: actions.map((action) => ({
477
+ ...action,
478
+ icon: action.icon ?? "pencil"
479
+ })),
480
+ defaultOpen: true
481
+ });
482
+ }
483
+ } });
484
+ // src/components/input/generative.ts
421
485
  var generative_exports$11 = /* @__PURE__ */ __exportAll({ default: () => generative_default$11 });
422
486
  /** A single-line field; rely on border, surface and the focus halo. */
423
487
  var generative_default$11 = defineEntry({ Input: {
@@ -433,8 +497,7 @@ var generative_default$11 = defineEntry({ Input: {
433
497
  }));
434
498
  }
435
499
  } });
436
- //#endregion
437
- //#region src/components/progress/generative.ts
500
+ // src/components/progress/generative.ts
438
501
  var generative_exports$10 = /* @__PURE__ */ __exportAll({ default: () => generative_default$10 });
439
502
  /** A working track that fills toward done. */
440
503
  var generative_default$10 = defineEntry({ Progress: {
@@ -444,8 +507,7 @@ var generative_default$10 = defineEntry({ Progress: {
444
507
  max: props.max
445
508
  }, props.label != null ? createElement(Progress.Label, null, props.label) : null, createElement(Progress.Track, null, createElement(Progress.Range)))
446
509
  } });
447
- //#endregion
448
- //#region src/components/radio-group/generative.ts
510
+ // src/components/radio-group/generative.ts
449
511
  var generative_exports$9 = /* @__PURE__ */ __exportAll({ default: () => generative_default$9 });
450
512
  /** Several boxes where exactly one may hold. */
451
513
  var generative_default$9 = defineEntry({ RadioGroup: {
@@ -462,41 +524,25 @@ var generative_default$9 = defineEntry({ RadioGroup: {
462
524
  }, createElement(RadioGroup.ItemControl), createElement(RadioGroup.ItemText, null, value), createElement(RadioGroup.ItemHiddenInput))))));
463
525
  }
464
526
  } });
465
- //#endregion
466
- //#region src/components/select/generative.tsx
527
+ // src/components/select/generative.tsx
467
528
  var generative_exports$8 = /* @__PURE__ */ __exportAll({ default: () => generative_default$8 });
468
529
  /** A choice field that opens a ruled list; options carry label and value. */
469
530
  var generative_default$8 = defineEntry({ Select: {
470
531
  ...faces$1.Select,
471
532
  component: ({ props, bindings }) => {
472
533
  const [value, setValue] = useBound(props.value, bindings?.value);
473
- const selectedValue = props.multiple ? Array.isArray(value) ? value : value ? [value] : void 0 : typeof value === "string" ? [value] : void 0;
474
- const collection = collectionFor(props.options);
475
- return labelled(props.label, /* @__PURE__ */ jsxs(Select.Root, {
476
- collection,
477
- value: selectedValue,
478
- disabled: props.disabled,
534
+ return /* @__PURE__ */ jsx(Select, {
535
+ label: props.label,
536
+ placeholder: props.placeholder,
537
+ options: props.options,
479
538
  multiple: props.multiple,
480
- onValueChange: (details) => setValue(props.multiple ? details.value : details.value[0] ?? ""),
481
- children: [
482
- /* @__PURE__ */ jsxs(Select.Control, { children: [/* @__PURE__ */ jsx(Select.Trigger, { children: /* @__PURE__ */ jsx(Select.ValueText, { placeholder: props.placeholder }) }), /* @__PURE__ */ jsx(Select.Indicator, { children: iconNode("chevrons-up-down", {
483
- width: 14,
484
- height: 14
485
- }) })] }),
486
- /* @__PURE__ */ jsx(Select.Positioner, { children: /* @__PURE__ */ jsx(Select.Content, { children: /* @__PURE__ */ jsx(Select.ItemGroup, { children: props.options.map((option) => /* @__PURE__ */ jsxs(Select.Item, {
487
- item: option,
488
- children: [/* @__PURE__ */ jsx(Select.ItemText, { children: option.label }), /* @__PURE__ */ jsx(Select.ItemIndicator, { children: iconNode("check", {
489
- width: 14,
490
- height: 14
491
- }) })]
492
- }, option.value)) }) }) }),
493
- /* @__PURE__ */ jsx(Select.HiddenSelect, {})
494
- ]
495
- }));
539
+ disabled: props.disabled,
540
+ value: props.multiple ? Array.isArray(value) ? value : value ? [value] : void 0 : Array.isArray(value) ? value.at(0) ?? "" : value,
541
+ onValueChange: setValue
542
+ });
496
543
  }
497
544
  } });
498
- //#endregion
499
- //#region src/components/separator/generative.ts
545
+ // src/components/separator/generative.ts
500
546
  var generative_exports$7 = /* @__PURE__ */ __exportAll({ default: () => generative_default$7 });
501
547
  /** Hairline divider between sections. */
502
548
  var generative_default$7 = defineEntry({ Separator: {
@@ -506,8 +552,7 @@ var generative_default$7 = defineEntry({ Separator: {
506
552
  decorative: true
507
553
  })
508
554
  } });
509
- //#endregion
510
- //#region src/components/slider/generative.ts
555
+ // src/components/slider/generative.ts
511
556
  var generative_exports$6 = /* @__PURE__ */ __exportAll({ default: () => generative_default$6 });
512
557
  /** A ruled track the hand slides between bounds. */
513
558
  var generative_default$6 = defineEntry({ Slider: {
@@ -522,8 +567,7 @@ var generative_default$6 = defineEntry({ Slider: {
522
567
  key: 0
523
568
  })])]))
524
569
  } });
525
- //#endregion
526
- //#region src/components/spinner/generative.ts
570
+ // src/components/spinner/generative.ts
527
571
  var generative_exports$5 = /* @__PURE__ */ __exportAll({ default: () => generative_default$5 });
528
572
  /** A quiet wheel for work still settling. */
529
573
  var generative_default$5 = defineEntry({ Spinner: {
@@ -533,8 +577,7 @@ var generative_default$5 = defineEntry({ Spinner: {
533
577
  "aria-label": props.label
534
578
  })
535
579
  } });
536
- //#endregion
537
- //#region src/components/stack/generative.ts
580
+ // src/components/stack/generative.ts
538
581
  var generative_exports$4 = /* @__PURE__ */ __exportAll({ default: () => generative_default$4 });
539
582
  /** Flex container for layout. direction column stacks vertically, row lays side by side. gap is a named spacing step. */
540
583
  var generative_default$4 = defineEntry({ Stack: {
@@ -547,8 +590,7 @@ var generative_default$4 = defineEntry({ Stack: {
547
590
  wrap: props.wrap
548
591
  }, children)
549
592
  } });
550
- //#endregion
551
- //#region src/components/stat/generative.ts
593
+ // src/components/stat/generative.ts
552
594
  var generative_exports$3 = /* @__PURE__ */ __exportAll({ default: () => generative_default$3 });
553
595
  /** One loud figure with its quiet label and an optional delta. */
554
596
  var generative_default$3 = defineEntry({ Stat: {
@@ -559,8 +601,7 @@ var generative_default$3 = defineEntry({ Stat: {
559
601
  props.change != null ? createElement(Stat.Delta, { direction: props.direction ?? "flat" }, props.change) : null
560
602
  ])
561
603
  } });
562
- //#endregion
563
- //#region src/components/switch/generative.ts
604
+ // src/components/switch/generative.ts
564
605
  var generative_exports$2 = /* @__PURE__ */ __exportAll({ default: () => generative_default$2 });
565
606
  /** An instant on/off; label names what it switches. */
566
607
  var generative_default$2 = defineEntry({ Switch: {
@@ -578,8 +619,7 @@ var generative_default$2 = defineEntry({ Switch: {
578
619
  ]);
579
620
  }
580
621
  } });
581
- //#endregion
582
- //#region src/components/textarea/generative.ts
622
+ // src/components/textarea/generative.ts
583
623
  var generative_exports$1 = /* @__PURE__ */ __exportAll({ default: () => generative_default$1 });
584
624
  /** A multi-line field for prose-length answers. */
585
625
  var generative_default$1 = defineEntry({ Textarea: {
@@ -595,8 +635,7 @@ var generative_default$1 = defineEntry({ Textarea: {
595
635
  }));
596
636
  }
597
637
  } });
598
- //#endregion
599
- //#region src/components/typography/generative.ts
638
+ // src/components/typography/generative.ts
600
639
  var generative_exports = /* @__PURE__ */ __exportAll({ default: () => generative_default });
601
640
  /** Section heading. One per view at level 1; do not skip levels. */
602
641
  var generative_default = defineEntry({
@@ -612,19 +651,21 @@ var generative_default = defineEntry({
612
651
  }
613
652
  }
614
653
  });
615
- //#endregion
616
- //#region src/generative/index.ts
654
+ // src/generative/index.ts
617
655
  /** Every family writes its own generative face beside the component —
618
656
  * `components/<family>/generative.ts` — and this module is where they
619
657
  * meet: one glob picks the faces up, so a family that lands in the
620
658
  * package is in the vocabulary without anyone editing this file. */
621
659
  const modules = /* #__PURE__ */ Object.assign({
622
- "../components/alert/generative.ts": generative_exports$17,
623
- "../components/avatar/generative.ts": generative_exports$16,
624
- "../components/badge/generative.ts": generative_exports$15,
625
- "../components/button/generative.ts": generative_exports$14,
626
- "../components/card/generative.ts": generative_exports$13,
627
- "../components/checkbox/generative.ts": generative_exports$12,
660
+ "../components/alert/generative.ts": generative_exports$20,
661
+ "../components/avatar/generative.ts": generative_exports$19,
662
+ "../components/badge/generative.ts": generative_exports$18,
663
+ "../components/banner/generative.ts": generative_exports$17,
664
+ "../components/breadcrumb/generative.ts": generative_exports$16,
665
+ "../components/button/generative.ts": generative_exports$15,
666
+ "../components/card/generative.ts": generative_exports$14,
667
+ "../components/checkbox/generative.ts": generative_exports$13,
668
+ "../components/float-button/generative.ts": generative_exports$12,
628
669
  "../components/input/generative.ts": generative_exports$11,
629
670
  "../components/progress/generative.ts": generative_exports$10,
630
671
  "../components/radio-group/generative.ts": generative_exports$9,
@@ -666,5 +707,4 @@ const { registry } = defineRegistry(catalog, {
666
707
  * several names - Layout plus its parts, Bento plus its cell - and the
667
708
  * palette groups by provenance, never by guessing from the name. */
668
709
  const faceFamilies = Object.fromEntries(Object.entries(entries).map(([name, entry]) => [name, entry._from]));
669
- //#endregion
670
710
  export { catalog, faceFamilies, registry };
@@ -1,6 +1,6 @@
1
1
  import { getIcon } from "@bysages/core/icons";
2
2
  import { jsx } from "react/jsx-runtime";
3
- //#region src/internal/icon.tsx
3
+ // src/internal/icon.tsx
4
4
  /** Render a curated registry icon as a bare svg element — the components
5
5
  * own default icons. No span shell: the part rules size the svg directly.
6
6
  * Extra body appends after the icon's own body, for composed marks. */
@@ -34,5 +34,4 @@ function iconHtml(name, attrs = {}, extraBody = "") {
34
34
  };
35
35
  return `<svg${Object.entries(attributes).map(([key, value]) => ` ${key}="${value}"`).join("")}>${icon.body + extraBody}</svg>`;
36
36
  }
37
- //#endregion
38
37
  export { iconHtml as n, iconNode as r, iconBody as t };
@@ -1,5 +1,5 @@
1
1
  import { useId } from "react";
2
- //#region src/internal/id.ts
2
+ // src/internal/id.ts
3
3
  /** Zag composes owned-part ids with separators, so React's generated id
4
4
  * is narrowed to characters that survive both markup and selectors. */
5
5
  const UNSAFE_ID_CHARACTERS = /[^a-zA-Z0-9_-]/g;
@@ -9,5 +9,4 @@ function useElementId(scope, props = {}) {
9
9
  const explicit = props.id;
10
10
  return typeof explicit === "string" && explicit ? explicit : `bs-${scope}-${generated.replace(UNSAFE_ID_CHARACTERS, "-")}`;
11
11
  }
12
- //#endregion
13
12
  export { useElementId as t };
@@ -1,15 +1,16 @@
1
- import { r as iconNode } from "./icon-Cri0-7-x.mjs";
2
- import { t as useElementId } from "./id-C37UYLwJ.mjs";
3
- import { n as useComponentMessages } from "./messages-1jJWtaYU.mjs";
1
+ import { r as iconNode } from "./icon-C9udWCyz.mjs";
2
+ import { t as useElementId } from "./id-Ctic_3o8.mjs";
3
+ import { n as useComponentMessages } from "./messages-B6n0lVyt.mjs";
4
4
  import { Button } from "./components/button/index.mjs";
5
5
  import { ButtonGroup } from "./components/button-group/index.mjs";
6
6
  import { Dialog as Dialog$1 } from "./components/dialog/index.mjs";
7
+ import { createImageViewerGestures } from "@bysages/core";
7
8
  import { injectComponentStyle } from "@bysages/core/styling";
8
9
  import { jsx, jsxs } from "react/jsx-runtime";
9
- import { useEffect, useState } from "react";
10
+ import { useEffect, useRef, useState } from "react";
10
11
  import { Portal } from "@ark-ui/react/portal";
11
12
  import { Dialog } from "@ark-ui/react/dialog";
12
- //#region src/components/image-viewer/preview.tsx
13
+ // src/components/image-viewer/preview.tsx
13
14
  /** The default doorway is the curated preview icon; custom content keeps
14
15
  * that icon as its hover and focus affordance. */
15
16
  function ImageViewerPreview({ label, children, "data-part": dataPart, ...rest }) {
@@ -36,10 +37,7 @@ function ImageViewerPreview({ label, children, "data-part": dataPart, ...rest })
36
37
  })]
37
38
  });
38
39
  }
39
- //#endregion
40
- //#region src/components/image-viewer/index.tsx
41
- const MIN_SCALE = .5;
42
- const MAX_SCALE = 3;
40
+ // src/components/image-viewer/index.tsx
43
41
  const SCALE_STEP = .25;
44
42
  const TOOL_ICONS = {
45
43
  zoomIn: "zoom-in",
@@ -52,25 +50,23 @@ function ImageViewerImpl({ src, alt = "", open, zoomable = true, width, height,
52
50
  const hostId = useElementId("image-viewer", { id });
53
51
  const messages = useComponentMessages();
54
52
  const [localOpen, setLocalOpen] = useState(false);
55
- const [scale, setScale] = useState(1);
56
- const [rotation, setRotation] = useState(0);
53
+ const viewportRef = useRef(null);
54
+ const gesturesRef = useRef(null);
57
55
  const isOpen = open ?? localOpen;
58
56
  const setOpen = (value) => {
59
57
  if (open === void 0) setLocalOpen(value);
60
58
  onOpenChange?.(value);
61
59
  };
62
60
  useEffect(() => {
63
- if (isOpen) {
64
- setScale(1);
65
- setRotation(0);
66
- }
67
- }, [isOpen]);
68
- function zoom(step) {
69
- setScale((current) => Math.min(MAX_SCALE, Math.max(MIN_SCALE, current + step)));
70
- }
71
- function rotate() {
72
- setRotation((current) => (current + 90) % 360);
73
- }
61
+ const node = viewportRef.current;
62
+ if (!node) return;
63
+ const gestures = createImageViewerGestures(node, { zoomable });
64
+ gesturesRef.current = gestures;
65
+ return () => {
66
+ gesturesRef.current = null;
67
+ gestures.stop();
68
+ };
69
+ }, [isOpen, zoomable]);
74
70
  function toolButton(label, icon, onClick) {
75
71
  return /* @__PURE__ */ jsx(Button, {
76
72
  variant: "ghost",
@@ -119,13 +115,13 @@ function ImageViewerImpl({ src, alt = "", open, zoomable = true, width, height,
119
115
  alt,
120
116
  width,
121
117
  height,
122
- style: { "--bs-image-viewer-transform": `scale(${scale}) rotate(${rotation}deg)` }
118
+ ref: viewportRef
123
119
  }), /* @__PURE__ */ jsx("div", {
124
120
  "data-scope": "image-viewer",
125
121
  "data-part": "toolbar",
126
122
  children: /* @__PURE__ */ jsxs(ButtonGroup, { children: [
127
- zoomable ? [toolButton(messages.imageViewer.zoomIn, TOOL_ICONS.zoomIn, () => zoom(SCALE_STEP)), toolButton(messages.imageViewer.zoomOut, TOOL_ICONS.zoomOut, () => zoom(-.25))] : null,
128
- toolButton(messages.imageViewer.rotate, TOOL_ICONS.rotate, rotate),
123
+ zoomable ? [toolButton(messages.imageViewer.zoomIn, TOOL_ICONS.zoomIn, () => gesturesRef.current?.zoomBy(SCALE_STEP)), toolButton(messages.imageViewer.zoomOut, TOOL_ICONS.zoomOut, () => gesturesRef.current?.zoomBy(-.25))] : null,
124
+ toolButton(messages.imageViewer.rotate, TOOL_ICONS.rotate, () => gesturesRef.current?.rotate()),
129
125
  closeToolButton(messages.imageViewer.close, TOOL_ICONS.close)
130
126
  ] })
131
127
  })]
@@ -137,5 +133,4 @@ const ImageViewer = Object.assign(ImageViewerImpl, {
137
133
  ...Dialog$1,
138
134
  Preview: ImageViewerPreview
139
135
  });
140
- //#endregion
141
136
  export { ImageViewer as t };
@@ -1,6 +1,5 @@
1
1
  import { ReactNode } from "react";
2
2
  import { Popover } from "@ark-ui/react/popover";
3
- //#region src/components/popover/index.d.ts
4
3
  type PopoverPlacement = "top" | "top-start" | "top-end" | "bottom" | "bottom-start" | "bottom-end" | "left" | "left-start" | "left-end" | "right" | "right-start" | "right-end";
5
4
  interface PopoverFacadeProps {
6
5
  open?: boolean;
@@ -20,5 +19,4 @@ declare namespace PopoverFacade {
20
19
  }
21
20
  type PopoverParts = typeof Popover;
22
21
  declare const Popover$1: typeof PopoverFacade & PopoverParts;
23
- //#endregion
24
22
  export { PopoverFacadeProps as n, Popover$1 as t };