@bysages/solid 0.3.1 → 0.4.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 (268) hide show
  1. package/dist/{ai-response-slzE03wh.mjs → ai-response-D2uINBIi.mjs} +13 -5
  2. package/dist/chevron-BHQrYKPM.mjs +8 -0
  3. package/dist/components/accordion/index.d.mts +22 -2
  4. package/dist/components/accordion/index.mjs +68 -2
  5. package/dist/components/affix/index.d.mts +3 -1
  6. package/dist/components/affix/index.mjs +5 -4
  7. package/dist/components/ai/index.d.mts +1 -1
  8. package/dist/components/ai/index.mjs +6 -5
  9. package/dist/components/ai-action/index.d.mts +3 -1
  10. package/dist/components/ai-action/index.mjs +3 -2
  11. package/dist/components/ai-attachments/index.d.mts +8 -4
  12. package/dist/components/ai-attachments/index.mjs +38 -36
  13. package/dist/components/ai-message/index.d.mts +3 -1
  14. package/dist/components/ai-message/index.mjs +3 -2
  15. package/dist/components/ai-prompt-input/index.d.mts +3 -1
  16. package/dist/components/ai-prompt-input/index.mjs +47 -43
  17. package/dist/components/ai-reasoning/index.d.mts +3 -1
  18. package/dist/components/ai-reasoning/index.mjs +4 -3
  19. package/dist/components/ai-response/index.d.mts +3 -1
  20. package/dist/components/ai-response/index.mjs +1 -1
  21. package/dist/components/ai-source/index.d.mts +6 -2
  22. package/dist/components/ai-source/index.mjs +5 -4
  23. package/dist/components/ai-suggestion/index.d.mts +3 -1
  24. package/dist/components/ai-suggestion/index.mjs +3 -2
  25. package/dist/components/ai-tool/index.d.mts +3 -1
  26. package/dist/components/ai-tool/index.mjs +4 -3
  27. package/dist/components/alert/index.mjs +31 -34
  28. package/dist/components/angle-slider/index.d.mts +1 -1
  29. package/dist/components/angle-slider/index.mjs +13 -5
  30. package/dist/components/aspect-ratio/index.d.mts +3 -1
  31. package/dist/components/aspect-ratio/index.mjs +3 -2
  32. package/dist/components/autocomplete/index.d.mts +4 -1
  33. package/dist/components/autocomplete/index.mjs +10 -1
  34. package/dist/components/avatar/index.d.mts +1 -1
  35. package/dist/components/avatar/index.mjs +10 -1
  36. package/dist/components/avatar-group/index.d.mts +3 -1
  37. package/dist/components/avatar-group/index.mjs +3 -2
  38. package/dist/components/back-top/index.d.mts +3 -1
  39. package/dist/components/back-top/index.mjs +9 -5
  40. package/dist/components/badge/index.d.mts +3 -1
  41. package/dist/components/badge/index.mjs +3 -2
  42. package/dist/components/banner/index.mjs +6 -2
  43. package/dist/components/block-ui/index.d.mts +3 -1
  44. package/dist/components/block-ui/index.mjs +3 -2
  45. package/dist/components/button/index.d.mts +3 -1
  46. package/dist/components/button/index.mjs +3 -2
  47. package/dist/components/calendar/index.d.mts +3 -1
  48. package/dist/components/calendar/index.mjs +29 -21
  49. package/dist/components/carousel/index.d.mts +5 -1
  50. package/dist/components/carousel/index.mjs +13 -1
  51. package/dist/components/cascade-select/index.d.mts +3 -1
  52. package/dist/components/cascade-select/index.mjs +73 -72
  53. package/dist/components/checkbox/index.d.mts +1 -1
  54. package/dist/components/checkbox/index.mjs +13 -5
  55. package/dist/components/checkbox-group/index.d.mts +4 -9
  56. package/dist/components/checkbox-group/index.mjs +65 -68
  57. package/dist/components/chip/index.d.mts +3 -1
  58. package/dist/components/chip/index.mjs +3 -2
  59. package/dist/components/client-only/index.d.mts +7 -2
  60. package/dist/components/client-only/index.mjs +8 -1
  61. package/dist/components/clipboard/index.d.mts +1 -1
  62. package/dist/components/clipboard/index.mjs +13 -5
  63. package/dist/components/collapsible/index.d.mts +15 -1
  64. package/dist/components/collapsible/index.mjs +39 -2
  65. package/dist/components/color-picker/index.d.mts +13 -2
  66. package/dist/components/color-picker/index.mjs +95 -8
  67. package/dist/components/combobox/index.d.mts +24 -1
  68. package/dist/components/combobox/index.mjs +129 -8
  69. package/dist/components/command/index.d.mts +4 -1
  70. package/dist/components/command/index.mjs +13 -1
  71. package/dist/components/comment/index.d.mts +3 -1
  72. package/dist/components/comment/index.mjs +3 -2
  73. package/dist/components/config-provider/index.d.mts +3 -1
  74. package/dist/components/config-provider/index.mjs +3 -2
  75. package/dist/components/container/index.d.mts +3 -1
  76. package/dist/components/container/index.mjs +3 -2
  77. package/dist/components/data-view/index.d.mts +3 -1
  78. package/dist/components/data-view/index.mjs +5 -6
  79. package/dist/components/date-input/index.d.mts +1 -1
  80. package/dist/components/date-input/index.mjs +13 -5
  81. package/dist/components/date-picker/index.d.mts +1 -1
  82. package/dist/components/date-picker/index.mjs +13 -5
  83. package/dist/components/deferred-content/index.d.mts +3 -1
  84. package/dist/components/deferred-content/index.mjs +3 -2
  85. package/dist/components/descriptions/index.d.mts +7 -0
  86. package/dist/components/descriptions/index.mjs +21 -2
  87. package/dist/components/dialog/index.d.mts +17 -1
  88. package/dist/components/dialog/index.mjs +84 -2
  89. package/dist/components/download-trigger/index.d.mts +7 -2
  90. package/dist/components/download-trigger/index.mjs +8 -1
  91. package/dist/components/drawer/index.d.mts +17 -1
  92. package/dist/components/drawer/index.mjs +83 -2
  93. package/dist/components/dynamic-input/index.d.mts +3 -1
  94. package/dist/components/dynamic-input/index.mjs +10 -6
  95. package/dist/components/editable/index.d.mts +1 -1
  96. package/dist/components/editable/index.mjs +13 -5
  97. package/dist/components/ellipsis/index.d.mts +3 -1
  98. package/dist/components/ellipsis/index.mjs +3 -2
  99. package/dist/components/field/index.d.mts +5 -1
  100. package/dist/components/field/index.mjs +13 -1
  101. package/dist/components/fieldset/index.d.mts +5 -1
  102. package/dist/components/fieldset/index.mjs +13 -1
  103. package/dist/components/file-upload/index.d.mts +1 -7
  104. package/dist/components/file-upload/index.mjs +13 -5
  105. package/dist/components/floating-panel/index.d.mts +5 -1
  106. package/dist/components/floating-panel/index.mjs +13 -1
  107. package/dist/components/focus-trap/index.d.mts +7 -2
  108. package/dist/components/focus-trap/index.mjs +8 -1
  109. package/dist/components/form/index.d.mts +1 -1
  110. package/dist/components/form/index.mjs +10 -4
  111. package/dist/components/frame/index.d.mts +6 -1
  112. package/dist/components/frame/index.mjs +10 -1
  113. package/dist/components/grid/index.d.mts +3 -1
  114. package/dist/components/grid/index.mjs +3 -2
  115. package/dist/components/highlight/index.d.mts +3 -1
  116. package/dist/components/highlight/index.mjs +2 -1
  117. package/dist/components/hover-card/index.d.mts +19 -1
  118. package/dist/components/hover-card/index.mjs +91 -2
  119. package/dist/components/icon/index.d.mts +8 -7
  120. package/dist/components/icon/index.mjs +4 -3
  121. package/dist/components/image/index.d.mts +4 -2
  122. package/dist/components/image/index.mjs +34 -33
  123. package/dist/components/image-cropper/index.d.mts +5 -1
  124. package/dist/components/image-cropper/index.mjs +13 -1
  125. package/dist/components/image-viewer/index.d.mts +2 -23
  126. package/dist/components/image-viewer/index.mjs +3 -159
  127. package/dist/components/input/index.d.mts +3 -1
  128. package/dist/components/input/index.mjs +1 -1
  129. package/dist/components/json-tree-view/index.d.mts +5 -4
  130. package/dist/components/json-tree-view/index.mjs +15 -18
  131. package/dist/components/kbd/index.d.mts +3 -1
  132. package/dist/components/kbd/index.mjs +3 -2
  133. package/dist/components/link/index.d.mts +3 -1
  134. package/dist/components/link/index.mjs +3 -2
  135. package/dist/components/listbox/index.d.mts +1 -1
  136. package/dist/components/listbox/index.mjs +13 -5
  137. package/dist/components/marquee/index.d.mts +5 -1
  138. package/dist/components/marquee/index.mjs +13 -1
  139. package/dist/components/masonry/index.d.mts +3 -1
  140. package/dist/components/masonry/index.mjs +3 -2
  141. package/dist/components/media-player/index.d.mts +2 -0
  142. package/dist/components/media-player/index.mjs +2 -0
  143. package/dist/components/mentions/index.d.mts +1 -1
  144. package/dist/components/mentions/index.mjs +2 -2
  145. package/dist/components/menu/index.d.mts +21 -1
  146. package/dist/components/menu/index.mjs +62 -5
  147. package/dist/components/menubar/index.d.mts +3 -1
  148. package/dist/components/menubar/index.mjs +30 -9
  149. package/dist/components/navigation-menu/index.d.mts +5 -1
  150. package/dist/components/navigation-menu/index.mjs +13 -1
  151. package/dist/components/number-input/index.d.mts +1 -1
  152. package/dist/components/number-input/index.mjs +13 -5
  153. package/dist/components/order-list/index.d.mts +3 -1
  154. package/dist/components/order-list/index.mjs +67 -63
  155. package/dist/components/pagination/index.d.mts +1 -1
  156. package/dist/components/pagination/index.mjs +13 -5
  157. package/dist/components/password-input/index.d.mts +1 -1
  158. package/dist/components/password-input/index.mjs +13 -5
  159. package/dist/components/pin-input/index.d.mts +1 -1
  160. package/dist/components/pin-input/index.mjs +13 -5
  161. package/dist/components/popconfirm/index.d.mts +3 -1
  162. package/dist/components/popconfirm/index.mjs +16 -8
  163. package/dist/components/popover/index.d.mts +19 -1
  164. package/dist/components/popover/index.mjs +91 -2
  165. package/dist/components/presence/index.d.mts +10 -2
  166. package/dist/components/presence/index.mjs +9 -1
  167. package/dist/components/progress/index.d.mts +1 -1
  168. package/dist/components/progress/index.mjs +13 -5
  169. package/dist/components/progress-group/index.d.mts +3 -1
  170. package/dist/components/progress-group/index.mjs +4 -3
  171. package/dist/components/qr-code/index.d.mts +5 -1
  172. package/dist/components/qr-code/index.mjs +13 -1
  173. package/dist/components/radio-group/index.d.mts +1 -1
  174. package/dist/components/radio-group/index.mjs +13 -5
  175. package/dist/components/rating-group/index.d.mts +2 -2
  176. package/dist/components/rating-group/index.mjs +13 -5
  177. package/dist/components/result/index.d.mts +1 -1
  178. package/dist/components/result/index.mjs +5 -3
  179. package/dist/components/scroll-area/index.d.mts +5 -1
  180. package/dist/components/scroll-area/index.mjs +13 -1
  181. package/dist/components/segment-group/index.d.mts +1 -1
  182. package/dist/components/segment-group/index.mjs +11 -6
  183. package/dist/components/select/index.d.mts +2 -2
  184. package/dist/components/select/index.mjs +1 -1
  185. package/dist/components/separator/index.d.mts +3 -1
  186. package/dist/components/separator/index.mjs +3 -2
  187. package/dist/components/signature-pad/index.d.mts +5 -1
  188. package/dist/components/signature-pad/index.mjs +13 -1
  189. package/dist/components/skeleton/index.d.mts +3 -1
  190. package/dist/components/skeleton/index.mjs +3 -2
  191. package/dist/components/slider/index.d.mts +1 -1
  192. package/dist/components/slider/index.mjs +13 -5
  193. package/dist/components/spinner/index.d.mts +3 -1
  194. package/dist/components/spinner/index.mjs +3 -2
  195. package/dist/components/split-button/index.d.mts +3 -1
  196. package/dist/components/split-button/index.mjs +14 -3
  197. package/dist/components/splitter/index.d.mts +5 -1
  198. package/dist/components/splitter/index.mjs +13 -1
  199. package/dist/components/spotlight/index.d.mts +3 -1
  200. package/dist/components/spotlight/index.mjs +3 -2
  201. package/dist/components/stack/index.d.mts +3 -1
  202. package/dist/components/stack/index.mjs +6 -5
  203. package/dist/components/steps/index.d.mts +20 -3
  204. package/dist/components/steps/index.mjs +66 -7
  205. package/dist/components/swap/index.d.mts +5 -1
  206. package/dist/components/swap/index.mjs +13 -1
  207. package/dist/components/switch/index.d.mts +1 -1
  208. package/dist/components/switch/index.mjs +13 -5
  209. package/dist/components/table/index.d.mts +3 -1
  210. package/dist/components/table/index.mjs +169 -151
  211. package/dist/components/tabs/index.d.mts +20 -2
  212. package/dist/components/tabs/index.mjs +59 -3
  213. package/dist/components/tags-input/index.d.mts +1 -1
  214. package/dist/components/tags-input/index.mjs +13 -5
  215. package/dist/components/terminal/index.d.mts +3 -1
  216. package/dist/components/terminal/index.mjs +3 -2
  217. package/dist/components/textarea/index.d.mts +3 -1
  218. package/dist/components/textarea/index.mjs +3 -2
  219. package/dist/components/timer/index.d.mts +5 -1
  220. package/dist/components/timer/index.mjs +13 -1
  221. package/dist/components/toast/index.d.mts +8 -2
  222. package/dist/components/toast/index.mjs +14 -2
  223. package/dist/components/toc/index.d.mts +11 -2
  224. package/dist/components/toc/index.mjs +1 -1
  225. package/dist/components/toggle/index.d.mts +5 -1
  226. package/dist/components/toggle/index.mjs +13 -1
  227. package/dist/components/toggle-group/index.d.mts +1 -1
  228. package/dist/components/toggle-group/index.mjs +13 -5
  229. package/dist/components/toolbar/index.d.mts +3 -1
  230. package/dist/components/toolbar/index.mjs +3 -2
  231. package/dist/components/tooltip/index.d.mts +16 -1
  232. package/dist/components/tooltip/index.mjs +55 -2
  233. package/dist/components/tour/index.d.mts +16 -3
  234. package/dist/components/tour/index.mjs +74 -9
  235. package/dist/components/transfer/index.d.mts +3 -1
  236. package/dist/components/transfer/index.mjs +54 -50
  237. package/dist/components/tree-select/index.d.mts +3 -1
  238. package/dist/components/tree-select/index.mjs +37 -30
  239. package/dist/components/tree-view/index.d.mts +1 -8
  240. package/dist/components/tree-view/index.mjs +16 -21
  241. package/dist/components/user/index.d.mts +3 -1
  242. package/dist/components/user/index.mjs +8 -2
  243. package/dist/components/virtual-list/index.d.mts +3 -1
  244. package/dist/components/virtual-list/index.mjs +13 -9
  245. package/dist/components/watermark/index.d.mts +3 -1
  246. package/dist/components/watermark/index.mjs +4 -3
  247. package/dist/element-dGIhOTJ6.mjs +16 -0
  248. package/dist/family-Cmd8HEyK.mjs +11 -0
  249. package/dist/icon-DTqmJCd5.mjs +48 -0
  250. package/dist/id-2ygNzPHF.mjs +12 -0
  251. package/dist/image-viewer-B9A5lXsk.mjs +228 -0
  252. package/dist/{index-B1xiJ5ki.d.mts → index-B1-quIrl.d.mts} +6 -2
  253. package/dist/{index-DDX7x8aT.d.mts → index-DEArHiFI.d.mts} +16 -7
  254. package/dist/index-DhripUtf.d.mts +39 -0
  255. package/dist/{index-YPUiqD3n.d.mts → index-ID48LCMU.d.mts} +28 -2
  256. package/dist/{index-IfofF-SW.d.mts → index-nFXK_8hJ.d.mts} +53 -23
  257. package/dist/index-wW28BYf1.d.mts +124 -0
  258. package/dist/index.d.mts +23 -22
  259. package/dist/index.mjs +13 -12
  260. package/dist/{input-DoFQ7RXh.mjs → input-CPAJdwDb.mjs} +3 -2
  261. package/dist/media-player-BC8D_d29.mjs +796 -0
  262. package/dist/{mentions-f5Js_2W7.mjs → mentions-CeG5u8Qm.mjs} +67 -51
  263. package/dist/select-7YjMSBGx.mjs +292 -0
  264. package/dist/{toc-CZmYEaQR.mjs → toc-DYKaKQ_X.mjs} +12 -2
  265. package/package.json +3 -3
  266. package/dist/chevron-D5RzcayK.mjs +0 -9
  267. package/dist/index-DdsnfV4f.d.mts +0 -16
  268. package/dist/select-CX6OuQlU.mjs +0 -123
@@ -0,0 +1,48 @@
1
+ import { spread, template } from "@solidjs/web";
2
+ import { getIcon } from "@bysages/core/icons";
3
+ //#region src/internal/icon.tsx
4
+ var _tmpl$ = /* @__PURE__ */ template(`<svg>`);
5
+ function resolve(name) {
6
+ const icon = getIcon(name);
7
+ if (!icon) throw new Error(`Unknown icon "${name}" in the curated core registry`);
8
+ return icon;
9
+ }
10
+ /** Render a curated core icon as a bare svg node — the components' own
11
+ * default icons. No span shell: the part rules size the svg directly.
12
+ * Extra body appends after the icon's own body, for composed marks. */
13
+ function iconNode(name, attrs = {}, extraBody = "") {
14
+ const icon = resolve(name);
15
+ var _el$ = _tmpl$();
16
+ spread(_el$, [
17
+ {
18
+ get viewBox() {
19
+ return `0 0 ${icon.width} ${icon.height}`;
20
+ },
21
+ "aria-hidden": "true"
22
+ },
23
+ attrs,
24
+ { get innerHTML() {
25
+ return icon.body + extraBody;
26
+ } }
27
+ ], false);
28
+ return _el$;
29
+ }
30
+ /** The same curated icon as an HTML string, for enhancements that write
31
+ * innerHTML rather than mount elements. */
32
+ function iconHtml(name, attrs = {}) {
33
+ const icon = resolve(name);
34
+ const attributes = {
35
+ width: String(icon.width),
36
+ height: String(icon.height),
37
+ viewBox: `0 0 ${icon.width} ${icon.height}`,
38
+ "aria-hidden": "true",
39
+ ...attrs
40
+ };
41
+ return `<svg${Object.entries(attributes).map(([key, value]) => ` ${key}="${value}"`).join("")}>${icon.body}</svg>`;
42
+ }
43
+ /** The curated icon's drawing body, for composed marks that share one svg. */
44
+ function iconBody(name) {
45
+ return resolve(name).body;
46
+ }
47
+ //#endregion
48
+ export { iconHtml as n, iconNode as r, iconBody as t };
@@ -0,0 +1,12 @@
1
+ import { createUniqueId } from "solid-js";
2
+ //#region src/internal/id.ts
3
+ /** Generates an SSR-stable machine base id while honoring an explicit id. */
4
+ function useElementId(scope, explicit) {
5
+ const generated = createUniqueId();
6
+ return () => {
7
+ const id = explicit?.();
8
+ return typeof id === "string" && id ? id : `bs-${scope}-${generated}`;
9
+ };
10
+ }
11
+ //#endregion
12
+ export { useElementId as t };
@@ -0,0 +1,228 @@
1
+ import { t as defineFamily } from "./family-Cmd8HEyK.mjs";
2
+ import { r as iconNode } from "./icon-DTqmJCd5.mjs";
3
+ import { t as useElementId } from "./id-2ygNzPHF.mjs";
4
+ import { Button } from "./components/button/index.mjs";
5
+ import { n as useComponentMessages } from "./use-component-messages-C4SCVYjD.mjs";
6
+ import { ButtonGroup } from "./components/button-group/index.mjs";
7
+ import { Dialog as Dialog$1 } from "./components/dialog/index.mjs";
8
+ import { injectComponentStyle } from "@bysages/core";
9
+ import { createComponent, effect, insert, memo, mergeProps, setAttribute, setStyleProperty, spread, template } from "@solidjs/web";
10
+ import { Show, createEffect, createSignal, splitProps } from "solid-js";
11
+ import { Portal } from "solid-js/web";
12
+ import { Dialog } from "@ark-ui/solid/dialog";
13
+ //#region src/components/image-viewer/preview.tsx
14
+ var _tmpl$$1 = /* @__PURE__ */ template(`<span data-part=preview-label>`);
15
+ var _tmpl$2$1 = /* @__PURE__ */ template(`<span data-scope=image-viewer data-part=preview-overlay aria-hidden=true><!><!>`);
16
+ var _tmpl$3 = /* @__PURE__ */ template(`<span>`);
17
+ /** The default doorway is the curated preview icon; custom content keeps
18
+ * that icon as its hover and focus affordance. */
19
+ function ImageViewerPreview(props) {
20
+ injectComponentStyle("image-viewer");
21
+ const messages = useComponentMessages();
22
+ const [own, triggerProps, rest] = splitProps(props, ["label", "children"], ["data-part"]);
23
+ const parts = [triggerProps["data-part"], "preview"].filter(Boolean).join(" ");
24
+ const isIcon = () => own.children == null;
25
+ var _el$ = _tmpl$3();
26
+ spread(_el$, [
27
+ rest,
28
+ {
29
+ "data-scope": "image-viewer",
30
+ "data-part": parts
31
+ },
32
+ () => {
33
+ return isIcon() ? {
34
+ "data-empty": "true",
35
+ "aria-label": messages().imageViewer.preview
36
+ } : {};
37
+ }
38
+ ], true);
39
+ insert(_el$, createComponent(Show, {
40
+ get when() {
41
+ return own.children;
42
+ },
43
+ get fallback() {
44
+ return iconNode("eye");
45
+ },
46
+ get children() {
47
+ return [memo(() => {
48
+ return own.children;
49
+ }), (() => {
50
+ var _el$2 = _tmpl$2$1();
51
+ var _el$3 = _el$2.firstChild;
52
+ var _el$5 = _el$3.nextSibling;
53
+ insert(_el$2, () => {
54
+ return iconNode("eye");
55
+ }, _el$3);
56
+ insert(_el$2, createComponent(Show, {
57
+ get when() {
58
+ return own.label;
59
+ },
60
+ get children() {
61
+ var _el$4 = _tmpl$$1();
62
+ insert(_el$4, () => {
63
+ return own.label;
64
+ });
65
+ return _el$4;
66
+ }
67
+ }), _el$5);
68
+ return _el$2;
69
+ })()];
70
+ }
71
+ }));
72
+ return _el$;
73
+ }
74
+ //#endregion
75
+ //#region src/components/image-viewer/index.tsx
76
+ var _tmpl$ = /* @__PURE__ */ template(`<img data-scope=image-viewer data-part=viewport>`);
77
+ var _tmpl$2 = /* @__PURE__ */ template(`<div data-scope=image-viewer data-part=toolbar>`);
78
+ const MIN_SCALE = .5;
79
+ const MAX_SCALE = 3;
80
+ const SCALE_STEP = .25;
81
+ /** The toolbar's icons, drawn from the house icon set. */
82
+ const TOOL_ICONS = {
83
+ zoomIn: () => iconNode("zoom-in"),
84
+ zoomOut: () => iconNode("zoom-out"),
85
+ rotate: () => iconNode("rotate-cw"),
86
+ close: () => iconNode("x")
87
+ };
88
+ function ImageViewerImpl(props) {
89
+ injectComponentStyle("image-viewer");
90
+ const [own] = splitProps(props, [
91
+ "src",
92
+ "alt",
93
+ "width",
94
+ "height",
95
+ "open",
96
+ "zoomable",
97
+ "onOpenChange",
98
+ "children"
99
+ ]);
100
+ const id = useElementId("image-viewer");
101
+ const messages = useComponentMessages();
102
+ const [localOpen, setLocalOpen] = createSignal(false);
103
+ const [scale, setScale] = createSignal(1);
104
+ const [rotation, setRotation] = createSignal(0);
105
+ const isOpen = () => own.open ?? localOpen();
106
+ const setOpen = (value) => {
107
+ if (own.open === void 0) setLocalOpen(value);
108
+ own.onOpenChange?.(value);
109
+ };
110
+ createEffect(() => {
111
+ if (isOpen()) {
112
+ setScale(1);
113
+ setRotation(0);
114
+ }
115
+ });
116
+ function zoom(step) {
117
+ setScale(Math.min(MAX_SCALE, Math.max(MIN_SCALE, scale() + step)));
118
+ }
119
+ function rotate() {
120
+ setRotation((rotation() + 90) % 360);
121
+ }
122
+ function toolButton(label, icon, onClick) {
123
+ return createComponent(Button, {
124
+ variant: "ghost",
125
+ square: true,
126
+ size: "lg",
127
+ "aria-label": label,
128
+ onClick,
129
+ get children() {
130
+ return icon();
131
+ }
132
+ });
133
+ }
134
+ return createComponent(Dialog.Root, {
135
+ get id() {
136
+ return id();
137
+ },
138
+ get open() {
139
+ return isOpen();
140
+ },
141
+ onOpenChange: (details) => setOpen(details.open),
142
+ lazyMount: true,
143
+ unmountOnExit: true,
144
+ get children() {
145
+ return [createComponent(Dialog.Trigger, {
146
+ asChild: () => own.children ?? createComponent(ImageViewerPreview, {}),
147
+ "data-scope": "image-viewer",
148
+ "data-part": "trigger"
149
+ }), createComponent(Portal, { get children() {
150
+ return [createComponent(Dialog.Backdrop, { class: "bs-image-viewer-backdrop" }), createComponent(Dialog.Positioner, {
151
+ class: "bs-image-viewer-positioner",
152
+ get children() {
153
+ return createComponent(Dialog.Content, {
154
+ class: "bs-image-viewer-content",
155
+ get "aria-label"() {
156
+ return own.alt || "Image preview";
157
+ },
158
+ onClick: (event) => {
159
+ if (event.target === event.currentTarget) setOpen(false);
160
+ },
161
+ get children() {
162
+ return [(() => {
163
+ var _el$ = _tmpl$();
164
+ effect(() => {
165
+ return {
166
+ e: own.src,
167
+ t: own.alt ?? "",
168
+ a: own.width,
169
+ o: own.height,
170
+ i: `scale(${scale()}) rotate(${rotation()}deg)`
171
+ };
172
+ }, ({ e, t, a, o, i }, _p$) => {
173
+ e !== _p$?.e && setAttribute(_el$, "src", e);
174
+ t !== _p$?.t && setAttribute(_el$, "alt", t);
175
+ a !== _p$?.a && setAttribute(_el$, "width", a);
176
+ o !== _p$?.o && setAttribute(_el$, "height", o);
177
+ i !== _p$?.i && setStyleProperty(_el$, "--bs-image-viewer-transform", i);
178
+ });
179
+ return _el$;
180
+ })(), (() => {
181
+ var _el$2 = _tmpl$2();
182
+ insert(_el$2, createComponent(ButtonGroup, { get children() {
183
+ return [
184
+ createComponent(Show, {
185
+ get when() {
186
+ return own.zoomable ?? true;
187
+ },
188
+ get children() {
189
+ return [memo(() => {
190
+ return toolButton(messages().imageViewer.zoomIn, TOOL_ICONS.zoomIn, () => zoom(SCALE_STEP));
191
+ }), memo(() => {
192
+ return toolButton(messages().imageViewer.zoomOut, TOOL_ICONS.zoomOut, () => zoom(-.25));
193
+ })];
194
+ }
195
+ }),
196
+ memo(() => {
197
+ return toolButton(messages().imageViewer.rotate, TOOL_ICONS.rotate, rotate);
198
+ }),
199
+ createComponent(Dialog.CloseTrigger, { asChild: (closeProps) => createComponent(Button, mergeProps(closeProps, {
200
+ variant: "ghost",
201
+ square: true,
202
+ size: "lg",
203
+ get "aria-label"() {
204
+ return messages().imageViewer.close;
205
+ },
206
+ get children() {
207
+ return TOOL_ICONS.close();
208
+ }
209
+ })) })
210
+ ];
211
+ } }));
212
+ return _el$2;
213
+ })()];
214
+ }
215
+ });
216
+ }
217
+ })];
218
+ } })];
219
+ }
220
+ });
221
+ }
222
+ const viewerParts = {
223
+ ...Dialog$1,
224
+ Preview: ImageViewerPreview
225
+ };
226
+ const ImageViewer = defineFamily(ImageViewerImpl, viewerParts);
227
+ //#endregion
228
+ export { ImageViewer as t };
@@ -1787,7 +1787,9 @@ interface AnyFormApi {
1787
1787
  interface FormProps extends JSX.FormHTMLAttributes<HTMLFormElement> {
1788
1788
  form: AnyFormApi;
1789
1789
  }
1790
- declare function Form(props: FormProps): JSX.Element;
1790
+ declare const Form: ((props: FormProps) => JSX.Element) & {
1791
+ Root: (props: FormProps) => JSX.Element;
1792
+ };
1791
1793
  /**
1792
1794
  * The named slot in the grid: label, control, hint — and the engine's
1793
1795
  * errors for this name, shown through the same parts the standalone
@@ -1806,6 +1808,8 @@ interface FormFieldProps extends Omit<JSX.HTMLAttributes<HTMLDivElement>, "child
1806
1808
  disabled?: boolean;
1807
1809
  children?: JSX.Element | ((field: any) => JSX.Element);
1808
1810
  }
1809
- declare function FormField(props: FormFieldProps): JSX.Element;
1811
+ declare const FormField: ((props: FormFieldProps) => JSX.Element) & {
1812
+ Root: (props: FormFieldProps) => JSX.Element;
1813
+ };
1810
1814
  //#endregion
1811
1815
  export { SolidFormApi as a, FormApi as c, FormProps as i, FieldApi as l, FormField as n, createField as o, FormFieldProps as r, createForm as s, Form as t };
@@ -1,3 +1,4 @@
1
+ import { Popover } from "./components/popover/index.mjs";
1
2
  import { Accessor, JSX } from "solid-js";
2
3
  //#region src/components/mentions/use-mentions.d.ts
3
4
  interface UseMentionsOptions {
@@ -33,6 +34,9 @@ declare function useMentions(options: Accessor<UseMentionsOptions>, textarea: Ac
33
34
  };
34
35
  //#endregion
35
36
  //#region src/components/mentions/index.d.ts
37
+ /** The Anchor's polymorphic wiring is div-typed at the API boundary; the
38
+ * textarea host supplies the concrete element type. */
39
+ type MentionsAnchorProps = JSX.HTMLAttributes<HTMLTextAreaElement>;
36
40
  interface MentionEntry {
37
41
  label: string;
38
42
  value: string;
@@ -49,13 +53,17 @@ interface MentionsVesselProps {
49
53
  onInsert?: (entry: MentionEntry) => void;
50
54
  onActiveChange?: (index: number) => void;
51
55
  onOpenChange?: (open: boolean) => void;
56
+ /** The host's field, rendered with the popover Anchor's wiring. When
57
+ * absent, the vessel falls back to the `anchor` rectangle. */
58
+ children?: JSX.Element | ((anchorProps: MentionsAnchorProps) => JSX.Element);
52
59
  }
53
- /** The vessel: the candidates themselves as a floating card. The anchor
54
- * is virtual — a live rectangle off the host's field — so a host keeps
55
- * its own anatomy (the textarea rides where the host puts it) and the
56
- * vessel still points at the right place. Shares the detection state
57
- * with the host through `useMentions`. */
58
- declare function MentionsVessel(props: MentionsVesselProps): JSX.Element;
60
+ /** The vessel: the candidates themselves as a floating card. A host can
61
+ * render its field through the Anchor; the rectangle fallback keeps the
62
+ * textarea in the host's own anatomy. Shares the detection state with
63
+ * the host through `useMentions`. */
64
+ declare const MentionsVessel: ((props: MentionsVesselProps) => JSX.Element) & {
65
+ Root: (props: MentionsVesselProps) => JSX.Element;
66
+ };
59
67
  interface MentionsProps extends Omit<JSX.HTMLAttributes<HTMLDivElement>, "onInput"> {
60
68
  /** The candidates offered once the trigger character is typed. */
61
69
  items?: MentionEntry[];
@@ -90,6 +98,7 @@ interface MentionsProps extends Omit<JSX.HTMLAttributes<HTMLDivElement>, "onInpu
90
98
  * own field anatomy (the AI prompt input) skip this shell and wire
91
99
  * `useMentions` plus `MentionsVessel` themselves.
92
100
  */
93
- declare function Mentions(props: MentionsProps): JSX.Element;
101
+ declare function MentionsImpl(props: MentionsProps): JSX.Element;
102
+ declare const Mentions: typeof MentionsImpl & typeof Popover;
94
103
  //#endregion
95
104
  export { MentionsVesselProps as a, useMentions as c, MentionsVessel as i, Mentions as n, UseMentionsHandlers as o, MentionsProps as r, UseMentionsOptions as s, MentionEntry as t };
@@ -0,0 +1,39 @@
1
+ import { Dialog } from "./components/dialog/index.mjs";
2
+ import { JSX } from "solid-js";
3
+ //#region src/components/image-viewer/preview.d.ts
4
+ interface ImageViewerPreviewProps extends Omit<JSX.HTMLAttributes<HTMLElement>, "children"> {
5
+ /** Visible beside the affordance over custom content. */
6
+ label?: string;
7
+ "data-part"?: string;
8
+ /** Custom doorway content; omit it for the default curated icon. */
9
+ children?: JSX.Element;
10
+ }
11
+ /** The default doorway is the curated preview icon; custom content keeps
12
+ * that icon as its hover and focus affordance. */
13
+ declare function ImageViewerPreview(props: ImageViewerPreviewProps): JSX.Element;
14
+ //#endregion
15
+ //#region src/components/image-viewer/index.d.ts
16
+ /**
17
+ * Opens the full lightbox from a curated icon by default, or from any
18
+ * wrapped button, image or other doorway. Zoom, rotation, Escape and the scrim
19
+ * stay in the viewer. Anatomy remains available on `ImageViewer.Root`.
20
+ */
21
+ interface ImageViewerProps {
22
+ src: string;
23
+ alt?: string;
24
+ /** The large image handed to the lightbox. */
25
+ width?: number | string;
26
+ height?: number | string;
27
+ /** The wrapped content that opens the lightbox. */
28
+ children?: JSX.Element;
29
+ open?: boolean;
30
+ zoomable?: boolean;
31
+ /** The openness changed — from the scrim, Escape or the toolbar. */
32
+ onOpenChange?: (open: boolean) => void;
33
+ }
34
+ declare function ImageViewerImpl(props: ImageViewerProps): JSX.Element;
35
+ declare const ImageViewer: typeof ImageViewerImpl & (typeof Dialog & {
36
+ Preview: typeof ImageViewerPreview;
37
+ });
38
+ //#endregion
39
+ export { ImageViewerProps as n, ImageViewer as t };
@@ -35,8 +35,34 @@ type SelectOwnProps = {
35
35
  size?: "sm" | "md" | "lg";
36
36
  };
37
37
  declare function SelectRoot<T extends CollectionItem>(props: SelectRootProps<T> & SelectOwnProps): import("solid-js").JSX.Element;
38
- declare const Select$1: Omit<typeof Select, "Root"> & {
38
+ type SelectFacadeValue = string | string[];
39
+ type SelectParts = Omit<typeof Select, "Root"> & {
39
40
  Root: typeof SelectRoot;
40
41
  };
42
+ interface SelectFacadeProps {
43
+ value?: SelectFacadeValue;
44
+ defaultValue?: SelectFacadeValue;
45
+ options: NativeSelectOption[];
46
+ multiple?: boolean;
47
+ deselectable?: boolean;
48
+ /** Show the clear-value control when the machine allows it. */
49
+ clearable?: boolean;
50
+ disabled?: boolean;
51
+ invalid?: boolean;
52
+ required?: boolean;
53
+ readOnly?: boolean;
54
+ label?: string;
55
+ /** Heading above the flat option list. */
56
+ groupLabel?: string;
57
+ placeholder?: string;
58
+ name?: string;
59
+ form?: string;
60
+ autoComplete?: string;
61
+ /** One rung of the control-height ladder for the trigger. */
62
+ size?: "sm" | "md" | "lg";
63
+ onValueChange?: (value: string | string[]) => void;
64
+ }
65
+ declare function SelectFacade(props: SelectFacadeProps): import("solid-js").JSX.Element;
66
+ declare const Select$1: typeof SelectFacade & SelectParts;
41
67
  //#endregion
42
- export { NativeSelectProps as i, NativeSelect as n, NativeSelectOption as r, Select$1 as t };
68
+ export { NativeSelectProps as a, NativeSelectOption as i, SelectFacadeProps as n, NativeSelect as r, Select$1 as t };
@@ -1,11 +1,11 @@
1
- import { Action } from "./components/ai-action/index.mjs";
2
- import { AiMessage as Message } from "./components/ai-message/index.mjs";
3
- import { AiPromptInput as PromptInput } from "./components/ai-prompt-input/index.mjs";
4
- import { AiReasoning as Reasoning } from "./components/ai-reasoning/index.mjs";
5
- import { AiResponse as Response$1 } from "./components/ai-response/index.mjs";
6
- import { AiSource as Source$1, AiSources as Sources } from "./components/ai-source/index.mjs";
7
- import { AiSuggestion as Suggestion } from "./components/ai-suggestion/index.mjs";
8
- import { AiTool as Tool$1 } from "./components/ai-tool/index.mjs";
1
+ import { ActionProps } from "./components/ai-action/index.mjs";
2
+ import { MessageProps } from "./components/ai-message/index.mjs";
3
+ import { PromptInputProps } from "./components/ai-prompt-input/index.mjs";
4
+ import { ReasoningProps } from "./components/ai-reasoning/index.mjs";
5
+ import { ResponseProps } from "./components/ai-response/index.mjs";
6
+ import { SourceProps } from "./components/ai-source/index.mjs";
7
+ import { SuggestionProps } from "./components/ai-suggestion/index.mjs";
8
+ import { ToolProps } from "./components/ai-tool/index.mjs";
9
9
  import { JSX } from "solid-js";
10
10
  import { JSONSchema7, JSONSchema7 as JSONSchema7$1 } from "json-schema";
11
11
  import { $ZodType } from "zod/v4/core";
@@ -10330,27 +10330,57 @@ declare global {
10330
10330
  declare const AiConversation: (props: JSX.HTMLAttributes<HTMLDivElement>) => JSX.Element;
10331
10331
  /** The bubble's inner measure — content that belongs to neither side
10332
10332
  * specifically. */
10333
- declare const AiContent: (props: JSX.HTMLAttributes<HTMLDivElement>) => JSX.Element;
10333
+ declare const AiContent: ((props: JSX.HTMLAttributes<HTMLDivElement>) => JSX.Element) & {
10334
+ Root: (props: JSX.HTMLAttributes<HTMLDivElement>) => JSX.Element;
10335
+ };
10334
10336
  /** The quiet row under a message — copy, retry, feedback. */
10335
- declare const AiActions: (props: JSX.HTMLAttributes<HTMLDivElement>) => JSX.Element;
10337
+ declare const AiActions: ((props: JSX.HTMLAttributes<HTMLDivElement>) => JSX.Element) & {
10338
+ Root: (props: JSX.HTMLAttributes<HTMLDivElement>) => JSX.Element;
10339
+ };
10336
10340
  /** The while-it-works whisper for the in-flight turns. */
10337
- declare const AiLoader: (props: JSX.HTMLAttributes<HTMLDivElement>) => JSX.Element;
10341
+ declare const AiLoader: ((props: JSX.HTMLAttributes<HTMLDivElement>) => JSX.Element) & {
10342
+ Root: (props: JSX.HTMLAttributes<HTMLDivElement>) => JSX.Element;
10343
+ };
10338
10344
  /** The whole family under one handle — `Ai.Conversation`,
10339
10345
  * `Ai.MessageContent`, and the rest. */
10340
10346
  declare const Ai: ((props: JSX.HTMLAttributes<HTMLDivElement>) => JSX.Element) & {
10341
10347
  Conversation: (props: JSX.HTMLAttributes<HTMLDivElement>) => JSX.Element;
10342
- MessageContent: (props: JSX.HTMLAttributes<HTMLDivElement>) => JSX.Element;
10343
- Actions: (props: JSX.HTMLAttributes<HTMLDivElement>) => JSX.Element;
10344
- Loader: (props: JSX.HTMLAttributes<HTMLDivElement>) => JSX.Element;
10345
- Message: typeof Message;
10346
- Response: typeof Response$1;
10347
- Reasoning: typeof Reasoning;
10348
- Tool: typeof Tool$1;
10349
- Sources: typeof Sources;
10350
- Source: typeof Source$1;
10351
- Action: typeof Action;
10352
- Suggestion: typeof Suggestion;
10353
- PromptInput: typeof PromptInput;
10348
+ MessageContent: ((props: JSX.HTMLAttributes<HTMLDivElement>) => JSX.Element) & {
10349
+ Root: (props: JSX.HTMLAttributes<HTMLDivElement>) => JSX.Element;
10350
+ };
10351
+ Actions: ((props: JSX.HTMLAttributes<HTMLDivElement>) => JSX.Element) & {
10352
+ Root: (props: JSX.HTMLAttributes<HTMLDivElement>) => JSX.Element;
10353
+ };
10354
+ Loader: ((props: JSX.HTMLAttributes<HTMLDivElement>) => JSX.Element) & {
10355
+ Root: (props: JSX.HTMLAttributes<HTMLDivElement>) => JSX.Element;
10356
+ };
10357
+ Message: ((props: MessageProps) => JSX.Element) & {
10358
+ Root: (props: MessageProps) => JSX.Element;
10359
+ };
10360
+ Response: ((props: ResponseProps) => JSX.Element) & {
10361
+ Root: (props: ResponseProps) => JSX.Element;
10362
+ };
10363
+ Reasoning: ((props: ReasoningProps) => JSX.Element) & {
10364
+ Root: (props: ReasoningProps) => JSX.Element;
10365
+ };
10366
+ Tool: ((props: ToolProps) => JSX.Element) & {
10367
+ Root: (props: ToolProps) => JSX.Element;
10368
+ };
10369
+ Sources: ((props: JSX.HTMLAttributes<HTMLOListElement>) => JSX.Element) & {
10370
+ Root: (props: JSX.HTMLAttributes<HTMLOListElement>) => JSX.Element;
10371
+ };
10372
+ Source: ((props: SourceProps) => JSX.Element) & {
10373
+ Root: (props: SourceProps) => JSX.Element;
10374
+ };
10375
+ Action: ((props: ActionProps) => JSX.Element) & {
10376
+ Root: (props: ActionProps) => JSX.Element;
10377
+ };
10378
+ Suggestion: ((props: SuggestionProps) => JSX.Element) & {
10379
+ Root: (props: SuggestionProps) => JSX.Element;
10380
+ };
10381
+ PromptInput: ((props: PromptInputProps) => JSX.Element) & {
10382
+ Root: (props: PromptInputProps) => JSX.Element;
10383
+ };
10354
10384
  };
10355
10385
  //#endregion
10356
10386
  export { AiLoader as a, ReasoningUIPart as c, StepStartUIPart as d, TextUIPart as f, UIMessagePart as h, AiConversation as i, SourceDocumentUIPart as l, UIMessage as m, AiActions as n, DataUIPart as o, ToolUIPart as p, AiContent as r, FileUIPart as s, Ai as t, SourceUrlUIPart as u };
@@ -0,0 +1,124 @@
1
+ import { Accessor, Component, JSX } from "solid-js";
2
+ //#region src/components/media-player/parts.d.ts
3
+ type MediaPartProps = JSX.HTMLAttributes<HTMLElement>;
4
+ type ButtonPartProps = JSX.ButtonHTMLAttributes<HTMLButtonElement> & {
5
+ label?: string;
6
+ };
7
+ type InputPartProps = JSX.InputHTMLAttributes<HTMLInputElement> & {
8
+ label?: string;
9
+ };
10
+ type DivPartProps = JSX.HTMLAttributes<HTMLDivElement> & {
11
+ children?: JSX.Element;
12
+ };
13
+ type LabeledDivPartProps = DivPartProps & {
14
+ label?: string;
15
+ };
16
+ /** The native media element, framed by the shared shell's state machine. */
17
+ declare function Media(props: MediaPartProps): JSX.Element;
18
+ /** Play and pause share one seal-cut control: the state changes the mark,
19
+ * never the control's place in the hand. */
20
+ declare function PlayButton(props: ButtonPartProps): JSX.Element;
21
+ /** The elapsed and total time bracket the timeline. */
22
+ declare function Time(props: JSX.HTMLAttributes<HTMLSpanElement>): JSX.Element;
23
+ /** The timeline is the sheet on which the listener writes their place. */
24
+ declare function Timeline(props: InputPartProps): JSX.Element;
25
+ /** Muting stays at the left of the volume well, the way a hand expects. */
26
+ declare function MuteButton(props: ButtonPartProps): JSX.Element;
27
+ declare function Volume(props: InputPartProps): JSX.Element;
28
+ /** Playback rate is a real choice, not hidden behind native menus. */
29
+ declare function Rate(props: LabeledDivPartProps): JSX.Element;
30
+ /** Text tracks use the browser's native model; the control chooses a
31
+ * track index, while rendering stays with the media element. */
32
+ declare function Captions(props: LabeledDivPartProps): JSX.Element;
33
+ /** Picture-in-picture is video-only and capability-detected. */
34
+ declare function PipButton(props: ButtonPartProps): JSX.Element;
35
+ /** Fullscreen takes the whole vessel, not just the moving picture. */
36
+ declare function FullscreenButton(props: ButtonPartProps): JSX.Element;
37
+ //#endregion
38
+ //#region src/components/media-player/use-media-controls.d.ts
39
+ /** One alternative encoding offered to the browser before playback. */
40
+ interface MediaSourceOption {
41
+ src: string;
42
+ type?: string;
43
+ }
44
+ /** A WebVTT track handed to the native text-track model. */
45
+ interface MediaTextTrackOption {
46
+ src: string;
47
+ kind?: "subtitles" | "captions" | "descriptions" | "chapters" | "metadata";
48
+ label?: string;
49
+ srcLang?: string;
50
+ default?: boolean;
51
+ }
52
+ /** A compact clock for player chrome: hours only when the media asks
53
+ * for them, stable digits so the time never jitters the controls. */
54
+ declare function formatMediaTime(seconds: number): string;
55
+ //#endregion
56
+ //#region src/components/media-player/shell.d.ts
57
+ type MediaEventName = "onPlay" | "onPause" | "onEnded" | "onTimeupdate" | "onVolumechange" | "onRatechange" | "onError";
58
+ interface MediaPlayerProps extends Omit<JSX.HTMLAttributes<HTMLDivElement>, MediaEventName | "onPlay" | "onPause"> {
59
+ label?: string;
60
+ src?: string;
61
+ sources?: MediaSourceOption[];
62
+ tracks?: MediaTextTrackOption[];
63
+ autoplay?: boolean;
64
+ loop?: boolean;
65
+ muted?: boolean;
66
+ preload?: "none" | "metadata" | "auto";
67
+ volume?: number;
68
+ playbackRate?: number;
69
+ playbackRates?: number[];
70
+ disabled?: boolean;
71
+ poster?: string;
72
+ playsInline?: boolean;
73
+ onPlay?: (event: Event) => void;
74
+ onPause?: (event: Event) => void;
75
+ onEnded?: (event: Event) => void;
76
+ onTimeupdate?: (event: Event) => void;
77
+ onVolumechange?: (event: Event) => void;
78
+ onRatechange?: (event: Event) => void;
79
+ onError?: (event: Event) => void;
80
+ }
81
+ //#endregion
82
+ //#region src/components/media-player/index.d.ts
83
+ /** Audio and video share one instrument: the same state, the same keys,
84
+ * and the same control rhythm, while each face keeps its native element's
85
+ * own semantics. The parts — Root, Stage, Media, Controls, PlayButton,
86
+ * Timeline, Time, MuteButton, Volume, Rate, Captions, PipButton,
87
+ * FullscreenButton. */
88
+ declare const Audio: Component<MediaPlayerProps> & {
89
+ Root: Component<MediaPlayerProps>;
90
+ Stage: (props: JSX.HTMLAttributes<HTMLDivElement> & {
91
+ children?: JSX.Element;
92
+ }) => JSX.Element;
93
+ Media: typeof Media;
94
+ Controls: (props: JSX.HTMLAttributes<HTMLDivElement> & {
95
+ children?: JSX.Element;
96
+ }) => JSX.Element;
97
+ PlayButton: typeof PlayButton;
98
+ Timeline: typeof Timeline;
99
+ Time: typeof Time;
100
+ MuteButton: typeof MuteButton;
101
+ Volume: typeof Volume;
102
+ Rate: typeof Rate;
103
+ };
104
+ declare const Video: Component<MediaPlayerProps> & {
105
+ Root: Component<MediaPlayerProps>;
106
+ Stage: (props: JSX.HTMLAttributes<HTMLDivElement> & {
107
+ children?: JSX.Element;
108
+ }) => JSX.Element;
109
+ Media: typeof Media;
110
+ Controls: (props: JSX.HTMLAttributes<HTMLDivElement> & {
111
+ children?: JSX.Element;
112
+ }) => JSX.Element;
113
+ PlayButton: typeof PlayButton;
114
+ Timeline: typeof Timeline;
115
+ Time: typeof Time;
116
+ MuteButton: typeof MuteButton;
117
+ Volume: typeof Volume;
118
+ Rate: typeof Rate;
119
+ Captions: typeof Captions;
120
+ PipButton: typeof PipButton;
121
+ FullscreenButton: typeof FullscreenButton;
122
+ };
123
+ //#endregion
124
+ export { MediaTextTrackOption as a, MediaSourceOption as i, Video as n, formatMediaTime as o, MediaPlayerProps as r, Audio as t };