@accelint/design-toolkit 9.4.1 → 9.6.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 (277) hide show
  1. package/catalog-info.yaml +2 -2
  2. package/dist/components/accordion/group.d.ts +2 -2
  3. package/dist/components/accordion/header.d.ts +2 -2
  4. package/dist/components/accordion/index.d.ts +2 -2
  5. package/dist/components/accordion/panel.d.ts +2 -2
  6. package/dist/components/accordion/styles.module.css +1 -1
  7. package/dist/components/accordion/trigger.d.ts +2 -2
  8. package/dist/components/action-bar/index.d.ts +2 -2
  9. package/dist/components/audio/index.d.ts +104 -0
  10. package/dist/components/audio/index.js +242 -0
  11. package/dist/components/audio/index.js.map +1 -0
  12. package/dist/components/audio/styles.module.css +77 -0
  13. package/dist/components/audio/types.d.ts +45 -0
  14. package/dist/components/audio/types.js +12 -0
  15. package/dist/components/avatar/context.d.ts +4 -4
  16. package/dist/components/avatar/index.d.ts +2 -2
  17. package/dist/components/badge/context.d.ts +4 -4
  18. package/dist/components/badge/index.d.ts +2 -2
  19. package/dist/components/breadcrumbs/index.d.ts +2 -2
  20. package/dist/components/breadcrumbs/item.d.ts +2 -2
  21. package/dist/components/breadcrumbs/styles.module.css +1 -0
  22. package/dist/components/button/__internal__/clear.js +42 -0
  23. package/dist/components/button/__internal__/clear.js.map +1 -0
  24. package/dist/components/button/__internal__/styles.module.css +23 -0
  25. package/dist/components/button/context.d.ts +8 -8
  26. package/dist/components/button/index.d.ts +2 -2
  27. package/dist/components/button/link.d.ts +2 -2
  28. package/dist/components/button/styles.module.css +1 -1
  29. package/dist/components/button/toggle.d.ts +2 -2
  30. package/dist/components/checkbox/context.d.ts +3 -3
  31. package/dist/components/checkbox/group.d.ts +2 -2
  32. package/dist/components/checkbox/index.d.ts +2 -2
  33. package/dist/components/chip/context.d.ts +4 -4
  34. package/dist/components/chip/deletable.d.ts +2 -2
  35. package/dist/components/chip/index.d.ts +2 -2
  36. package/dist/components/chip/list.d.ts +4 -4
  37. package/dist/components/chip/selectable.d.ts +2 -2
  38. package/dist/components/chip/styles.module.css +4 -4
  39. package/dist/components/classification-badge/context.d.ts +4 -4
  40. package/dist/components/classification-badge/index.d.ts +2 -2
  41. package/dist/components/classification-banner/context.d.ts +4 -4
  42. package/dist/components/classification-banner/index.d.ts +2 -2
  43. package/dist/components/clock/index.d.ts +2 -2
  44. package/dist/components/clock/index.js +1 -0
  45. package/dist/components/clock/index.js.map +1 -1
  46. package/dist/components/color-picker/index.d.ts +2 -2
  47. package/dist/components/combobox-field/context.d.ts +4 -4
  48. package/dist/components/combobox-field/index.d.ts +2 -2
  49. package/dist/components/combobox-field/index.js +42 -14
  50. package/dist/components/combobox-field/index.js.map +1 -1
  51. package/dist/components/combobox-field/styles.module.css +15 -3
  52. package/dist/components/combobox-field/types.d.ts +4 -0
  53. package/dist/components/coordinate-field/context.d.ts +6 -6
  54. package/dist/components/coordinate-field/index.d.ts +2 -2
  55. package/dist/components/coordinate-field/segment.d.ts +2 -2
  56. package/dist/components/date-field/index.d.ts +2 -2
  57. package/dist/components/deferred-collection/index.d.ts +2 -2
  58. package/dist/components/details-list/context.d.ts +4 -4
  59. package/dist/components/details-list/index.d.ts +2 -2
  60. package/dist/components/details-list/label.d.ts +2 -2
  61. package/dist/components/details-list/value.d.ts +2 -2
  62. package/dist/components/dialog/content.d.ts +2 -2
  63. package/dist/components/dialog/context.d.ts +2 -2
  64. package/dist/components/dialog/footer.d.ts +2 -2
  65. package/dist/components/dialog/index.d.ts +2 -2
  66. package/dist/components/dialog/title.d.ts +2 -2
  67. package/dist/components/divider/context.d.ts +4 -4
  68. package/dist/components/divider/index.d.ts +2 -2
  69. package/dist/components/drawer/back.d.ts +2 -2
  70. package/dist/components/drawer/close.d.ts +2 -2
  71. package/dist/components/drawer/content.d.ts +2 -2
  72. package/dist/components/drawer/context.d.ts +2 -2
  73. package/dist/components/drawer/footer.d.ts +2 -2
  74. package/dist/components/drawer/header-title.d.ts +2 -2
  75. package/dist/components/drawer/header.d.ts +2 -2
  76. package/dist/components/drawer/header.js +1 -1
  77. package/dist/components/drawer/index.d.ts +2 -2
  78. package/dist/components/drawer/layout-main.d.ts +2 -2
  79. package/dist/components/drawer/layout.d.ts +2 -2
  80. package/dist/components/drawer/menu-item.d.ts +2 -2
  81. package/dist/components/drawer/menu.d.ts +2 -2
  82. package/dist/components/drawer/panel.d.ts +2 -2
  83. package/dist/components/drawer/trigger.d.ts +2 -2
  84. package/dist/components/drawer/view.d.ts +2 -2
  85. package/dist/components/flashcard/index.d.ts +9 -9
  86. package/dist/components/hero/context.d.ts +2 -2
  87. package/dist/components/hero/index.d.ts +2 -2
  88. package/dist/components/hero/subtitle.d.ts +2 -2
  89. package/dist/components/hero/title.d.ts +3 -3
  90. package/dist/components/hotkey/context.d.ts +2 -2
  91. package/dist/components/hotkey/index.d.ts +2 -2
  92. package/dist/components/hotkey/set.d.ts +2 -2
  93. package/dist/components/icon/context.d.ts +4 -4
  94. package/dist/components/icon/index.d.ts +2 -2
  95. package/dist/components/input/context.d.ts +2 -2
  96. package/dist/components/input/index.d.ts +2 -2
  97. package/dist/components/input/index.js +10 -14
  98. package/dist/components/input/index.js.map +1 -1
  99. package/dist/components/kanban/card-body.d.ts +2 -2
  100. package/dist/components/kanban/card-header-actions.d.ts +2 -2
  101. package/dist/components/kanban/card-header-title.d.ts +2 -2
  102. package/dist/components/kanban/card-header.d.ts +2 -2
  103. package/dist/components/kanban/card.d.ts +2 -2
  104. package/dist/components/kanban/column-actions.d.ts +2 -2
  105. package/dist/components/kanban/column-container.d.ts +2 -2
  106. package/dist/components/kanban/column-content.d.ts +2 -2
  107. package/dist/components/kanban/column-header-actions.d.ts +2 -2
  108. package/dist/components/kanban/column-header-drag-handle.d.ts +2 -2
  109. package/dist/components/kanban/column-header-title.d.ts +2 -2
  110. package/dist/components/kanban/column-header.d.ts +2 -2
  111. package/dist/components/kanban/column.d.ts +2 -2
  112. package/dist/components/kanban/context.d.ts +2 -2
  113. package/dist/components/kanban/header-actions.d.ts +2 -2
  114. package/dist/components/kanban/header-search.d.ts +2 -2
  115. package/dist/components/kanban/header-title.d.ts +2 -2
  116. package/dist/components/kanban/header.d.ts +2 -2
  117. package/dist/components/kanban/kanban.d.ts +4 -4
  118. package/dist/components/kanban/styles.module.css +1 -1
  119. package/dist/components/label/context.d.ts +4 -4
  120. package/dist/components/label/index.d.ts +2 -2
  121. package/dist/components/lines/index.d.ts +2 -2
  122. package/dist/components/link/context.d.ts +2 -2
  123. package/dist/components/link/index.d.ts +2 -2
  124. package/dist/components/list/context.d.ts +2 -2
  125. package/dist/components/list/index.d.ts +2 -2
  126. package/dist/components/list/item-content.d.ts +2 -2
  127. package/dist/components/list/item-description.d.ts +2 -2
  128. package/dist/components/list/item-title.d.ts +2 -2
  129. package/dist/components/list/item.d.ts +2 -2
  130. package/dist/components/list/styles.module.css +1 -1
  131. package/dist/components/media-controls/context.d.ts +66 -0
  132. package/dist/components/media-controls/context.js +77 -0
  133. package/dist/components/media-controls/context.js.map +1 -0
  134. package/dist/components/media-controls/fullscreen-button.d.ts +55 -0
  135. package/dist/components/media-controls/fullscreen-button.js +80 -0
  136. package/dist/components/media-controls/fullscreen-button.js.map +1 -0
  137. package/dist/components/media-controls/index.d.ts +68 -0
  138. package/dist/components/media-controls/index.js +78 -0
  139. package/dist/components/media-controls/index.js.map +1 -0
  140. package/dist/components/media-controls/mute-button.d.ts +47 -0
  141. package/dist/components/media-controls/mute-button.js +73 -0
  142. package/dist/components/media-controls/mute-button.js.map +1 -0
  143. package/dist/components/media-controls/play-button.d.ts +47 -0
  144. package/dist/components/media-controls/play-button.js +71 -0
  145. package/dist/components/media-controls/play-button.js.map +1 -0
  146. package/dist/components/media-controls/playback-rate.d.ts +58 -0
  147. package/dist/components/media-controls/playback-rate.js +114 -0
  148. package/dist/components/media-controls/playback-rate.js.map +1 -0
  149. package/dist/components/media-controls/seek-button.d.ts +60 -0
  150. package/dist/components/media-controls/seek-button.js +116 -0
  151. package/dist/components/media-controls/seek-button.js.map +1 -0
  152. package/dist/components/media-controls/styles.module.css +145 -0
  153. package/dist/components/media-controls/time-display.d.ts +69 -0
  154. package/dist/components/media-controls/time-display.js +95 -0
  155. package/dist/components/media-controls/time-display.js.map +1 -0
  156. package/dist/components/media-controls/time-range.d.ts +46 -0
  157. package/dist/components/media-controls/time-range.js +63 -0
  158. package/dist/components/media-controls/time-range.js.map +1 -0
  159. package/dist/components/media-controls/types.d.ts +127 -0
  160. package/dist/components/media-controls/types.js +12 -0
  161. package/dist/components/media-controls/volume-slider.d.ts +54 -0
  162. package/dist/components/media-controls/volume-slider.js +70 -0
  163. package/dist/components/media-controls/volume-slider.js.map +1 -0
  164. package/dist/components/menu/context.d.ts +2 -2
  165. package/dist/components/menu/index.d.ts +2 -2
  166. package/dist/components/menu/item-description.d.ts +2 -2
  167. package/dist/components/menu/item-label.d.ts +2 -2
  168. package/dist/components/menu/item.d.ts +2 -2
  169. package/dist/components/menu/section.d.ts +2 -2
  170. package/dist/components/menu/separator.d.ts +2 -2
  171. package/dist/components/menu/styles.module.css +1 -1
  172. package/dist/components/menu/submenu.d.ts +3 -3
  173. package/dist/components/notice/index.d.ts +2 -2
  174. package/dist/components/notice/list.d.ts +2 -2
  175. package/dist/components/notice/notice-icon.d.ts +2 -2
  176. package/dist/components/options/context.d.ts +2 -2
  177. package/dist/components/options/index.d.ts +2 -2
  178. package/dist/components/options/item-content.d.ts +2 -2
  179. package/dist/components/options/item-description.d.ts +2 -2
  180. package/dist/components/options/item-label.d.ts +2 -2
  181. package/dist/components/options/item.d.ts +2 -2
  182. package/dist/components/options/section.d.ts +2 -2
  183. package/dist/components/options/styles.module.css +1 -1
  184. package/dist/components/pagination/context.d.ts +2 -2
  185. package/dist/components/pagination/index.d.ts +2 -2
  186. package/dist/components/pagination/next.d.ts +2 -2
  187. package/dist/components/pagination/pages.d.ts +2 -2
  188. package/dist/components/pagination/prev.d.ts +2 -2
  189. package/dist/components/popover/content.d.ts +2 -2
  190. package/dist/components/popover/footer.d.ts +2 -2
  191. package/dist/components/popover/index.d.ts +2 -2
  192. package/dist/components/popover/title.d.ts +2 -2
  193. package/dist/components/popover/trigger.d.ts +2 -2
  194. package/dist/components/query-builder/action-element.d.ts +2 -2
  195. package/dist/components/query-builder/actions.d.ts +4 -4
  196. package/dist/components/query-builder/combinator-selector.d.ts +2 -2
  197. package/dist/components/query-builder/combinator-selector.js +5 -4
  198. package/dist/components/query-builder/combinator-selector.js.map +1 -1
  199. package/dist/components/query-builder/index.d.ts +2 -2
  200. package/dist/components/query-builder/rule-group.d.ts +4 -4
  201. package/dist/components/query-builder/rule.d.ts +2 -2
  202. package/dist/components/query-builder/value-editor.d.ts +2 -2
  203. package/dist/components/query-builder/value-selector.d.ts +2 -2
  204. package/dist/components/radio/context.d.ts +2 -2
  205. package/dist/components/radio/group.d.ts +2 -2
  206. package/dist/components/radio/index.d.ts +2 -2
  207. package/dist/components/search-field/context.d.ts +4 -4
  208. package/dist/components/search-field/index.d.ts +2 -2
  209. package/dist/components/search-field/styles.module.css +1 -1
  210. package/dist/components/select-field/context.d.ts +4 -4
  211. package/dist/components/select-field/index.d.ts +2 -2
  212. package/dist/components/sidenav/avatar.d.ts +2 -2
  213. package/dist/components/sidenav/content.d.ts +2 -2
  214. package/dist/components/sidenav/context.d.ts +2 -2
  215. package/dist/components/sidenav/footer.d.ts +2 -2
  216. package/dist/components/sidenav/header.d.ts +2 -2
  217. package/dist/components/sidenav/index.d.ts +2 -2
  218. package/dist/components/sidenav/item.d.ts +2 -2
  219. package/dist/components/sidenav/link.d.ts +2 -2
  220. package/dist/components/sidenav/menu-item.d.ts +2 -2
  221. package/dist/components/sidenav/menu.d.ts +2 -2
  222. package/dist/components/sidenav/trigger.d.ts +2 -2
  223. package/dist/components/skeleton/index.d.ts +2 -2
  224. package/dist/components/slider/index.d.ts +2 -2
  225. package/dist/components/status-indicator/index.d.ts +41 -0
  226. package/dist/components/status-indicator/index.js +49 -0
  227. package/dist/components/status-indicator/index.js.map +1 -0
  228. package/dist/components/status-indicator/styles.module.css +34 -0
  229. package/dist/components/status-indicator/types.d.ts +21 -0
  230. package/dist/components/status-indicator/types.js +12 -0
  231. package/dist/components/switch/context.d.ts +4 -4
  232. package/dist/components/switch/index.d.ts +2 -2
  233. package/dist/components/table/body.d.ts +2 -2
  234. package/dist/components/table/cell.d.ts +2 -2
  235. package/dist/components/table/context.d.ts +2 -2
  236. package/dist/components/table/header-cell.d.ts +2 -2
  237. package/dist/components/table/header.d.ts +2 -2
  238. package/dist/components/table/index.d.ts +2 -2
  239. package/dist/components/table/row.d.ts +2 -2
  240. package/dist/components/table/styles.module.css +5 -1
  241. package/dist/components/tabs/context.d.ts +4 -4
  242. package/dist/components/tabs/index.d.ts +2 -2
  243. package/dist/components/tabs/list.d.ts +2 -2
  244. package/dist/components/tabs/panel.d.ts +2 -2
  245. package/dist/components/tabs/styles.module.css +1 -1
  246. package/dist/components/tabs/tab.d.ts +2 -2
  247. package/dist/components/text-area-field/context.d.ts +4 -4
  248. package/dist/components/text-area-field/index.d.ts +2 -2
  249. package/dist/components/text-field/context.d.ts +4 -4
  250. package/dist/components/text-field/index.d.ts +2 -2
  251. package/dist/components/time-field/index.d.ts +2 -2
  252. package/dist/components/tooltip/context.d.ts +2 -2
  253. package/dist/components/tooltip/index.d.ts +2 -2
  254. package/dist/components/tooltip/styles.module.css +1 -1
  255. package/dist/components/tooltip/trigger.d.ts +2 -2
  256. package/dist/components/tree/index.d.ts +2 -2
  257. package/dist/components/tree/item-actions.d.ts +2 -2
  258. package/dist/components/tree/item-content.d.ts +2 -2
  259. package/dist/components/tree/item-description.d.ts +2 -2
  260. package/dist/components/tree/item-label.d.ts +2 -2
  261. package/dist/components/tree/item-prefix-icon.d.ts +2 -2
  262. package/dist/components/tree/lines.d.ts +2 -2
  263. package/dist/components/tree/styles.module.css +1 -1
  264. package/dist/components/video/index.d.ts +97 -0
  265. package/dist/components/video/index.js +261 -0
  266. package/dist/components/video/index.js.map +1 -0
  267. package/dist/components/video/styles.module.css +99 -0
  268. package/dist/components/video/types.d.ts +52 -0
  269. package/dist/components/video/types.js +12 -0
  270. package/dist/components/view-stack/index.d.ts +2 -2
  271. package/dist/components/view-stack/trigger.d.ts +2 -2
  272. package/dist/components/view-stack/view.d.ts +2 -2
  273. package/dist/index.d.ts +18 -1
  274. package/dist/index.js +14 -1
  275. package/dist/providers/portal.d.ts +2 -2
  276. package/dist/providers/theme-provider.d.ts +2 -2
  277. package/package.json +29 -11
@@ -0,0 +1,261 @@
1
+ /*
2
+ * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.
3
+ * This file is licensed to you under the Apache License, Version 2.0 (the "License");
4
+ * you may not use this file except in compliance with the License. You may obtain a copy
5
+ * of the License at https://www.apache.org/licenses/LICENSE-2.0
6
+ *
7
+ * Unless required by applicable law or agreed to in writing, software distributed under
8
+ * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
9
+ * OF ANY KIND, either express or implied. See the License for the specific language
10
+ * governing permissions and limitations under the License.
11
+ */
12
+
13
+
14
+ 'use client';
15
+
16
+ import { Icon } from "../icon/index.js";
17
+ import { MediaControlsProvider } from "../media-controls/context.js";
18
+ import { MuteButton } from "../media-controls/mute-button.js";
19
+ import { PlayButton } from "../media-controls/play-button.js";
20
+ import { PlaybackRateButton } from "../media-controls/playback-rate.js";
21
+ import { SeekButton } from "../media-controls/seek-button.js";
22
+ import { TimeDisplay } from "../media-controls/time-display.js";
23
+ import { TimeRange } from "../media-controls/time-range.js";
24
+ import { VolumeSlider } from "../media-controls/volume-slider.js";
25
+ import { FullscreenButton } from "../media-controls/fullscreen-button.js";
26
+ import "client-only";
27
+ import { useCallback, useEffect, useState } from "react";
28
+ import { clsx } from "@accelint/design-foundation/lib/utils";
29
+ import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
30
+ import { getLogger } from "@accelint/logger/default";
31
+ import { formatError } from "media-chrome/dist/labels/labels.js";
32
+ import { MediaController } from "media-chrome/react";
33
+ import { MediaProvider, useMediaRef, useMediaSelector } from "media-chrome/react/media-store";
34
+ import { Loop, Problem } from "@accelint/icons";
35
+ import styles from "./styles.module.css";
36
+
37
+ //#region src/components/video/index.tsx
38
+ const logger = getLogger({
39
+ enabled: true,
40
+ level: "error",
41
+ prefix: "[Video]",
42
+ pretty: true
43
+ });
44
+ const selectMediaLoading = (state) => state.mediaLoading;
45
+ const selectMediaDuration = (state) => state.mediaDuration;
46
+ /**
47
+ * Internal component that renders within MediaProvider context.
48
+ *
49
+ * This component is separated from the main Video component to allow use of
50
+ * media-chrome hooks (useMediaRef) that require MediaProvider context.
51
+ * The outer Video component wraps everything in MediaProvider, then VideoInner
52
+ * handles the actual video element and controls rendering.
53
+ *
54
+ * @param props - The component props.
55
+ * @param props.src - Video source URL.
56
+ * @param props.poster - Poster image URL displayed before playback.
57
+ * @param props.classNames - Class names for sub-elements.
58
+ * @param props.children - Custom controls (replaces default layout).
59
+ * @param props.autoPlay - Whether to autoplay the video.
60
+ * @param props.loop - Whether to loop the video.
61
+ * @param props.muted - Whether the video starts muted.
62
+ * @param props.preload - Video preload strategy.
63
+ * @param props.crossOrigin - CORS setting for the video element.
64
+ * @param props.isDisabled - Whether to disable all video controls.
65
+ * @param props.onEnded - Callback when video ends.
66
+ * @param props.onTimeUpdate - Callback when playback time updates.
67
+ * @param props.onError - Callback when an error occurs.
68
+ * @param props.playbackRates - Custom playback rate options.
69
+ * @returns The video element with controls.
70
+ */
71
+ function VideoInner({ src, poster, children, classNames, autoPlay, loop, muted, preload = "metadata", crossOrigin, isDisabled: isDisabledProp, onEnded, onTimeUpdate, onError, playbackRates }) {
72
+ const mediaRef = useMediaRef();
73
+ const [errorMessage, setErrorMessage] = useState("");
74
+ useEffect(() => {
75
+ setErrorMessage("");
76
+ }, [src]);
77
+ const mediaLoading = useMediaSelector(selectMediaLoading);
78
+ const mediaDuration = useMediaSelector(selectMediaDuration);
79
+ const isMetadataLoaded = mediaDuration !== null && mediaDuration !== void 0 && mediaDuration > 0;
80
+ const hasError = errorMessage !== "";
81
+ const showLoading = !hasError && (mediaLoading || !isMetadataLoaded);
82
+ const isDisabled = isDisabledProp === true || hasError;
83
+ const handleEnded = useCallback(() => {
84
+ onEnded?.();
85
+ }, [onEnded]);
86
+ const handleTimeUpdate = useCallback((e) => {
87
+ onTimeUpdate?.(e.currentTarget.currentTime);
88
+ }, [onTimeUpdate]);
89
+ const handleError = useCallback((e) => {
90
+ const mediaError = e.currentTarget.error;
91
+ logger.withContext({ src }).withError(mediaError).error("Failed to load video");
92
+ setErrorMessage((mediaError && formatError(mediaError)?.message) ?? "Unable to load video file");
93
+ if (mediaError) onError?.(mediaError);
94
+ }, [src, onError]);
95
+ return /* @__PURE__ */ jsxs(Fragment$1, { children: [
96
+ /* @__PURE__ */ jsx("video", {
97
+ ref: mediaRef,
98
+ slot: "media",
99
+ className: clsx(styles.video, classNames?.video),
100
+ "data-testid": "video-element",
101
+ autoPlay,
102
+ loop,
103
+ muted,
104
+ preload,
105
+ crossOrigin,
106
+ poster,
107
+ playsInline: true,
108
+ onEnded: handleEnded,
109
+ onTimeUpdate: handleTimeUpdate,
110
+ onError: handleError,
111
+ children: /* @__PURE__ */ jsx("source", { src })
112
+ }),
113
+ showLoading && /* @__PURE__ */ jsx("output", {
114
+ className: styles.loadingOverlay,
115
+ "aria-label": "Loading video",
116
+ children: /* @__PURE__ */ jsx(Icon, {
117
+ size: "medium",
118
+ className: styles.loadingSpinner,
119
+ children: /* @__PURE__ */ jsx(Loop, {})
120
+ })
121
+ }),
122
+ errorMessage && /* @__PURE__ */ jsxs("div", {
123
+ className: styles.errorOverlay,
124
+ role: "alert",
125
+ children: [/* @__PURE__ */ jsx(Icon, {
126
+ size: "medium",
127
+ children: /* @__PURE__ */ jsx(Problem, {})
128
+ }), /* @__PURE__ */ jsx("span", {
129
+ className: styles.errorText,
130
+ children: errorMessage
131
+ })]
132
+ }),
133
+ /* @__PURE__ */ jsx(MediaControlsProvider, {
134
+ isDisabled,
135
+ children: children ?? /* @__PURE__ */ jsx("div", {
136
+ className: styles.controlsOverlay,
137
+ noautohide: "",
138
+ children: /* @__PURE__ */ jsxs("div", {
139
+ className: clsx(styles.controls, classNames?.mediaControls),
140
+ children: [/* @__PURE__ */ jsxs("div", {
141
+ className: clsx(styles.timeRow, classNames?.timeRow),
142
+ children: [
143
+ /* @__PURE__ */ jsx(TimeDisplay, { mode: "current" }),
144
+ /* @__PURE__ */ jsx(TimeRange, {}),
145
+ /* @__PURE__ */ jsx(TimeDisplay, { mode: "duration" })
146
+ ]
147
+ }), /* @__PURE__ */ jsxs("div", {
148
+ className: clsx(styles.controlsRow, classNames?.controlsRow),
149
+ children: [
150
+ /* @__PURE__ */ jsx("div", {
151
+ className: styles.leftGroup,
152
+ children: /* @__PURE__ */ jsxs("div", {
153
+ className: styles.volumeGroup,
154
+ children: [/* @__PURE__ */ jsx(MuteButton, {}), /* @__PURE__ */ jsx(VolumeSlider, {})]
155
+ })
156
+ }),
157
+ /* @__PURE__ */ jsxs("div", {
158
+ className: styles.playbackGroup,
159
+ children: [
160
+ /* @__PURE__ */ jsx(SeekButton, { direction: "backward" }),
161
+ /* @__PURE__ */ jsx(PlayButton, {}),
162
+ /* @__PURE__ */ jsx(SeekButton, { direction: "forward" })
163
+ ]
164
+ }),
165
+ /* @__PURE__ */ jsxs("div", {
166
+ className: styles.rightGroup,
167
+ children: [/* @__PURE__ */ jsx(PlaybackRateButton, { rates: playbackRates }), /* @__PURE__ */ jsx(FullscreenButton, {})]
168
+ })
169
+ ]
170
+ })]
171
+ })
172
+ })
173
+ })
174
+ ] });
175
+ }
176
+ /**
177
+ * A complete video player component.
178
+ *
179
+ * Combines an HTML video element with MediaControls to provide a fully-featured
180
+ * video player with play/pause, seek, volume control, playback rate adjustment,
181
+ * and fullscreen support.
182
+ *
183
+ * Uses media-chrome under the hood for state management and MediaController
184
+ * for the accessible media chrome elements.
185
+ *
186
+ * @param props - The component props.
187
+ * @param props.src - Video source URL. Must be accessible to the browser - if loading
188
+ * from a different origin, ensure the server sends appropriate CORS headers
189
+ * (Access-Control-Allow-Origin) or use the crossOrigin prop.
190
+ * @param props.poster - Poster image URL displayed before playback starts.
191
+ * @param props.classNames - Class names for sub-elements.
192
+ * @param props.isDisabled - Disable all video controls.
193
+ * @param props.crossOrigin - CORS setting ('anonymous' | 'use-credentials'). Required when
194
+ * loading video from a different origin that requires credentials.
195
+ * @param props.playbackRates - Array of playback speed multipliers (default: [1, 2, 3]).
196
+ * Only positive finite numbers are accepted; invalid values are filtered out.
197
+ * @param props.children - Custom controls to render instead of the default layout.
198
+ * @param props.onEnded - Callback invoked when video playback finishes.
199
+ * @param props.onTimeUpdate - Callback invoked during playback with current time in seconds.
200
+ * @param props.onError - Callback invoked when video fails to load or encounters an error.
201
+ * @param props.noHotkeys - Disable all keyboard shortcuts for media control.
202
+ * @param props.hotkeys - Custom keyboard shortcuts configuration for media control.
203
+ * @param props.noVolumePref - Disable automatic saving/restoring of volume preference.
204
+ * @param props.noMutedPref - Disable automatic saving/restoring of muted state preference.
205
+ * @param props.lang - Language code for localized media control labels.
206
+ * @returns The rendered video player component.
207
+ *
208
+ * @example
209
+ * ```tsx
210
+ * // Basic usage
211
+ * <Video src="video.mp4" />
212
+ * ```
213
+ *
214
+ * @example
215
+ * ```tsx
216
+ * // With poster image
217
+ * <Video
218
+ * src="video.mp4"
219
+ * poster="thumbnail.jpg"
220
+ * />
221
+ * ```
222
+ *
223
+ * @example
224
+ * ```tsx
225
+ * // With event callbacks
226
+ * <Video
227
+ * src="video.mp4"
228
+ * onEnded={() => console.log('Ended')}
229
+ * onTimeUpdate={(time) => console.log('Current time:', time)}
230
+ * />
231
+ * ```
232
+ *
233
+ * @example
234
+ * ```tsx
235
+ * // Custom controls layout
236
+ * <Video src="video.mp4">
237
+ * <PlayButton />
238
+ * <TimeRange />
239
+ * </Video>
240
+ * ```
241
+ */
242
+ function Video({ classNames, isDisabled, noHotkeys, hotkeys, noVolumePref, noMutedPref, lang, ...rest }) {
243
+ return /* @__PURE__ */ jsx(MediaProvider, { children: /* @__PURE__ */ jsx(MediaController, {
244
+ className: clsx("group/video", styles.container, classNames?.container),
245
+ "data-disabled": isDisabled || void 0,
246
+ noHotkeys,
247
+ hotkeys,
248
+ noVolumePref,
249
+ noMutedPref,
250
+ lang,
251
+ children: /* @__PURE__ */ jsx(VideoInner, {
252
+ ...rest,
253
+ classNames,
254
+ isDisabled
255
+ })
256
+ }) });
257
+ }
258
+
259
+ //#endregion
260
+ export { Video };
261
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../src/components/video/index.tsx"],"sourcesContent":["/*\n * Copyright 2026 Hypergiant Galactic Systems Inc. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n'use client';\n\nimport 'client-only';\nimport { clsx } from '@accelint/design-foundation/lib/utils';\nimport { Loop, Problem } from '@accelint/icons';\nimport { getLogger } from '@accelint/logger/default';\nimport { formatError } from 'media-chrome/dist/labels/labels.js';\nimport { MediaController } from 'media-chrome/react';\nimport {\n MediaProvider,\n useMediaRef,\n useMediaSelector,\n} from 'media-chrome/react/media-store';\nimport type { MediaState } from 'media-chrome/react/media-store';\nimport { useCallback, useEffect, useState } from 'react';\nimport { Icon } from '../icon';\nimport { FullscreenButton } from '../media-controls/fullscreen-button';\nimport { MediaControlsProvider } from '../media-controls/context';\nimport { MuteButton } from '../media-controls/mute-button';\nimport { PlayButton } from '../media-controls/play-button';\nimport { PlaybackRateButton } from '../media-controls/playback-rate';\nimport { SeekButton } from '../media-controls/seek-button';\nimport { TimeDisplay } from '../media-controls/time-display';\nimport { TimeRange } from '../media-controls/time-range';\nimport { VolumeSlider } from '../media-controls/volume-slider';\nimport styles from './styles.module.css';\nimport type { VideoProps } from './types';\n\nconst logger = getLogger({\n enabled: true,\n level: 'error',\n prefix: '[Video]',\n pretty: true,\n});\n\nconst selectMediaLoading = (state: MediaState) => state.mediaLoading;\nconst selectMediaDuration = (state: MediaState) => state.mediaDuration;\n\n/**\n * Internal component that renders within MediaProvider context.\n *\n * This component is separated from the main Video component to allow use of\n * media-chrome hooks (useMediaRef) that require MediaProvider context.\n * The outer Video component wraps everything in MediaProvider, then VideoInner\n * handles the actual video element and controls rendering.\n *\n * @param props - The component props.\n * @param props.src - Video source URL.\n * @param props.poster - Poster image URL displayed before playback.\n * @param props.classNames - Class names for sub-elements.\n * @param props.children - Custom controls (replaces default layout).\n * @param props.autoPlay - Whether to autoplay the video.\n * @param props.loop - Whether to loop the video.\n * @param props.muted - Whether the video starts muted.\n * @param props.preload - Video preload strategy.\n * @param props.crossOrigin - CORS setting for the video element.\n * @param props.isDisabled - Whether to disable all video controls.\n * @param props.onEnded - Callback when video ends.\n * @param props.onTimeUpdate - Callback when playback time updates.\n * @param props.onError - Callback when an error occurs.\n * @param props.playbackRates - Custom playback rate options.\n * @returns The video element with controls.\n */\nfunction VideoInner({\n src,\n poster,\n children,\n classNames,\n autoPlay,\n loop,\n muted,\n preload = 'metadata',\n crossOrigin,\n isDisabled: isDisabledProp,\n onEnded,\n onTimeUpdate,\n onError,\n playbackRates,\n}: VideoProps) {\n const mediaRef = useMediaRef();\n const [errorMessage, setErrorMessage] = useState<string>('');\n\n // biome-ignore lint/correctness/useExhaustiveDependencies: src is intentionally used as a trigger to reset error state when video source changes\n useEffect(() => {\n setErrorMessage('');\n }, [src]);\n\n const mediaLoading = useMediaSelector(selectMediaLoading);\n const mediaDuration = useMediaSelector(selectMediaDuration);\n const isMetadataLoaded =\n mediaDuration !== null && mediaDuration !== undefined && mediaDuration > 0;\n const hasError = errorMessage !== '';\n const showLoading = !hasError && (mediaLoading || !isMetadataLoaded);\n const isDisabled = isDisabledProp === true || hasError;\n\n const handleEnded = useCallback(() => {\n onEnded?.();\n }, [onEnded]);\n\n const handleTimeUpdate = useCallback(\n (e: React.SyntheticEvent<HTMLVideoElement>) => {\n onTimeUpdate?.(e.currentTarget.currentTime);\n },\n [onTimeUpdate],\n );\n\n const handleError = useCallback(\n (e: React.SyntheticEvent<HTMLVideoElement>) => {\n const mediaError = e.currentTarget.error;\n logger\n .withContext({ src })\n .withError(mediaError)\n .error('Failed to load video');\n setErrorMessage(\n (mediaError && formatError(mediaError)?.message) ??\n 'Unable to load video file',\n );\n if (mediaError) {\n onError?.(mediaError);\n }\n },\n [src, onError],\n );\n\n return (\n <>\n <video\n ref={mediaRef}\n slot='media'\n className={clsx(styles.video, classNames?.video)}\n data-testid='video-element'\n autoPlay={autoPlay}\n loop={loop}\n muted={muted}\n preload={preload}\n crossOrigin={crossOrigin}\n poster={poster}\n playsInline\n onEnded={handleEnded}\n onTimeUpdate={handleTimeUpdate}\n onError={handleError}\n >\n <source src={src} />\n </video>\n\n {showLoading && (\n <output className={styles.loadingOverlay} aria-label='Loading video'>\n <Icon size='medium' className={styles.loadingSpinner}>\n <Loop />\n </Icon>\n </output>\n )}\n\n {errorMessage && (\n <div className={styles.errorOverlay} role='alert'>\n <Icon size='medium'>\n <Problem />\n </Icon>\n <span className={styles.errorText}>{errorMessage}</span>\n </div>\n )}\n\n <MediaControlsProvider isDisabled={isDisabled}>\n {/* noautohide tells MediaController (web component) to keep this element visible */}\n {children ?? (\n // @ts-expect-error noautohide is a valid attribute for media-chrome's MediaController but not recognized by React typings\n <div className={styles.controlsOverlay} noautohide=''>\n <div className={clsx(styles.controls, classNames?.mediaControls)}>\n <div className={clsx(styles.timeRow, classNames?.timeRow)}>\n <TimeDisplay mode='current' />\n <TimeRange />\n <TimeDisplay mode='duration' />\n </div>\n\n <div\n className={clsx(styles.controlsRow, classNames?.controlsRow)}\n >\n <div className={styles.leftGroup}>\n <div className={styles.volumeGroup}>\n <MuteButton />\n <VolumeSlider />\n </div>\n </div>\n <div className={styles.playbackGroup}>\n <SeekButton direction='backward' />\n <PlayButton />\n <SeekButton direction='forward' />\n </div>\n <div className={styles.rightGroup}>\n <PlaybackRateButton rates={playbackRates} />\n <FullscreenButton />\n </div>\n </div>\n </div>\n </div>\n )}\n </MediaControlsProvider>\n </>\n );\n}\n\n/**\n * A complete video player component.\n *\n * Combines an HTML video element with MediaControls to provide a fully-featured\n * video player with play/pause, seek, volume control, playback rate adjustment,\n * and fullscreen support.\n *\n * Uses media-chrome under the hood for state management and MediaController\n * for the accessible media chrome elements.\n *\n * @param props - The component props.\n * @param props.src - Video source URL. Must be accessible to the browser - if loading\n * from a different origin, ensure the server sends appropriate CORS headers\n * (Access-Control-Allow-Origin) or use the crossOrigin prop.\n * @param props.poster - Poster image URL displayed before playback starts.\n * @param props.classNames - Class names for sub-elements.\n * @param props.isDisabled - Disable all video controls.\n * @param props.crossOrigin - CORS setting ('anonymous' | 'use-credentials'). Required when\n * loading video from a different origin that requires credentials.\n * @param props.playbackRates - Array of playback speed multipliers (default: [1, 2, 3]).\n * Only positive finite numbers are accepted; invalid values are filtered out.\n * @param props.children - Custom controls to render instead of the default layout.\n * @param props.onEnded - Callback invoked when video playback finishes.\n * @param props.onTimeUpdate - Callback invoked during playback with current time in seconds.\n * @param props.onError - Callback invoked when video fails to load or encounters an error.\n * @param props.noHotkeys - Disable all keyboard shortcuts for media control.\n * @param props.hotkeys - Custom keyboard shortcuts configuration for media control.\n * @param props.noVolumePref - Disable automatic saving/restoring of volume preference.\n * @param props.noMutedPref - Disable automatic saving/restoring of muted state preference.\n * @param props.lang - Language code for localized media control labels.\n * @returns The rendered video player component.\n *\n * @example\n * ```tsx\n * // Basic usage\n * <Video src=\"video.mp4\" />\n * ```\n *\n * @example\n * ```tsx\n * // With poster image\n * <Video\n * src=\"video.mp4\"\n * poster=\"thumbnail.jpg\"\n * />\n * ```\n *\n * @example\n * ```tsx\n * // With event callbacks\n * <Video\n * src=\"video.mp4\"\n * onEnded={() => console.log('Ended')}\n * onTimeUpdate={(time) => console.log('Current time:', time)}\n * />\n * ```\n *\n * @example\n * ```tsx\n * // Custom controls layout\n * <Video src=\"video.mp4\">\n * <PlayButton />\n * <TimeRange />\n * </Video>\n * ```\n */\nexport function Video({\n classNames,\n isDisabled,\n noHotkeys,\n hotkeys,\n noVolumePref,\n noMutedPref,\n lang,\n ...rest\n}: VideoProps) {\n return (\n <MediaProvider>\n <MediaController\n className={clsx('group/video', styles.container, classNames?.container)}\n data-disabled={isDisabled || undefined}\n noHotkeys={noHotkeys}\n hotkeys={hotkeys}\n noVolumePref={noVolumePref}\n noMutedPref={noMutedPref}\n lang={lang}\n >\n <VideoInner {...rest} classNames={classNames} isDisabled={isDisabled} />\n </MediaController>\n </MediaProvider>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCA,MAAM,SAAS,UAAU;CACvB,SAAS;CACT,OAAO;CACP,QAAQ;CACR,QAAQ;CACT,CAAC;AAEF,MAAM,sBAAsB,UAAsB,MAAM;AACxD,MAAM,uBAAuB,UAAsB,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BzD,SAAS,WAAW,EAClB,KACA,QACA,UACA,YACA,UACA,MACA,OACA,UAAU,YACV,aACA,YAAY,gBACZ,SACA,cACA,SACA,iBACa;CACb,MAAM,WAAW,aAAa;CAC9B,MAAM,CAAC,cAAc,mBAAmB,SAAiB,GAAG;AAG5D,iBAAgB;AACd,kBAAgB,GAAG;IAClB,CAAC,IAAI,CAAC;CAET,MAAM,eAAe,iBAAiB,mBAAmB;CACzD,MAAM,gBAAgB,iBAAiB,oBAAoB;CAC3D,MAAM,mBACJ,kBAAkB,QAAQ,kBAAkB,UAAa,gBAAgB;CAC3E,MAAM,WAAW,iBAAiB;CAClC,MAAM,cAAc,CAAC,aAAa,gBAAgB,CAAC;CACnD,MAAM,aAAa,mBAAmB,QAAQ;CAE9C,MAAM,cAAc,kBAAkB;AACpC,aAAW;IACV,CAAC,QAAQ,CAAC;CAEb,MAAM,mBAAmB,aACtB,MAA8C;AAC7C,iBAAe,EAAE,cAAc,YAAY;IAE7C,CAAC,aAAa,CACf;CAED,MAAM,cAAc,aACjB,MAA8C;EAC7C,MAAM,aAAa,EAAE,cAAc;AACnC,SACG,YAAY,EAAE,KAAK,CAAC,CACpB,UAAU,WAAW,CACrB,MAAM,uBAAuB;AAChC,mBACG,cAAc,YAAY,WAAW,EAAE,YACtC,4BACH;AACD,MAAI,WACF,WAAU,WAAW;IAGzB,CAAC,KAAK,QAAQ,CACf;AAED,QACE;EACE,oBAAC;GACC,KAAK;GACL,MAAK;GACL,WAAW,KAAK,OAAO,OAAO,YAAY,MAAM;GAChD,eAAY;GACF;GACJ;GACC;GACE;GACI;GACL;GACR;GACA,SAAS;GACT,cAAc;GACd,SAAS;aAET,oBAAC,YAAY,MAAO;IACd;EAEP,eACC,oBAAC;GAAO,WAAW,OAAO;GAAgB,cAAW;aACnD,oBAAC;IAAK,MAAK;IAAS,WAAW,OAAO;cACpC,oBAAC,SAAO;KACH;IACA;EAGV,gBACC,qBAAC;GAAI,WAAW,OAAO;GAAc,MAAK;cACxC,oBAAC;IAAK,MAAK;cACT,oBAAC,YAAU;KACN,EACP,oBAAC;IAAK,WAAW,OAAO;cAAY;KAAoB;IACpD;EAGR,oBAAC;GAAkC;aAEhC,YAEC,oBAAC;IAAI,WAAW,OAAO;IAAiB,YAAW;cACjD,qBAAC;KAAI,WAAW,KAAK,OAAO,UAAU,YAAY,cAAc;gBAC9D,qBAAC;MAAI,WAAW,KAAK,OAAO,SAAS,YAAY,QAAQ;;OACvD,oBAAC,eAAY,MAAK,YAAY;OAC9B,oBAAC,cAAY;OACb,oBAAC,eAAY,MAAK,aAAa;;OAC3B,EAEN,qBAAC;MACC,WAAW,KAAK,OAAO,aAAa,YAAY,YAAY;;OAE5D,oBAAC;QAAI,WAAW,OAAO;kBACrB,qBAAC;SAAI,WAAW,OAAO;oBACrB,oBAAC,eAAa,EACd,oBAAC,iBAAe;UACZ;SACF;OACN,qBAAC;QAAI,WAAW,OAAO;;SACrB,oBAAC,cAAW,WAAU,aAAa;SACnC,oBAAC,eAAa;SACd,oBAAC,cAAW,WAAU,YAAY;;SAC9B;OACN,qBAAC;QAAI,WAAW,OAAO;mBACrB,oBAAC,sBAAmB,OAAO,gBAAiB,EAC5C,oBAAC,qBAAmB;SAChB;;OACF;MACF;KACF;IAEc;KACvB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsEP,SAAgB,MAAM,EACpB,YACA,YACA,WACA,SACA,cACA,aACA,MACA,GAAG,QACU;AACb,QACE,oBAAC,2BACC,oBAAC;EACC,WAAW,KAAK,eAAe,OAAO,WAAW,YAAY,UAAU;EACvE,iBAAe,cAAc;EAClB;EACF;EACK;EACD;EACP;YAEN,oBAAC;GAAW,GAAI;GAAkB;GAAwB;IAAc;GACxD,GACJ"}
@@ -0,0 +1,99 @@
1
+ /*
2
+ * Copyright 2026 Hypergiant Galactic Systems Inc. All rights reserved.
3
+ * This file is licensed to you under the Apache License, Version 2.0 (the "License");
4
+ * you may not use this file except in compliance with the License. You may obtain a copy
5
+ * of the License at https://www.apache.org/licenses/LICENSE-2.0
6
+ *
7
+ * Unless required by applicable law or agreed to in writing, software distributed under
8
+ * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
9
+ * OF ANY KIND, either express or implied. See the License for the specific language
10
+ * governing permissions and limitations under the License.
11
+ */
12
+
13
+ @reference '@accelint/design-foundation/styles';
14
+
15
+ @layer components.l1 {
16
+ .container {
17
+ @apply bg-surface-raised rounded-medium relative flex w-full flex-col;
18
+ min-width: 270px;
19
+ --video-controls-height: 84px;
20
+ padding-bottom: var(--video-controls-height);
21
+
22
+ /* Media Chrome theming - maps design tokens to media-chrome CSS variables */
23
+ --media-primary-color: var(--fg-primary-bold);
24
+ --media-secondary-color: transparent;
25
+ --media-icon-color: var(--fg-primary-muted);
26
+ --media-text-color: var(--fg-accent-primary-bold);
27
+ --media-control-background: transparent;
28
+ --media-control-hover-background: transparent;
29
+
30
+ @variant disabled {
31
+ @apply opacity-50;
32
+ }
33
+ }
34
+
35
+ .video {
36
+ @apply rounded-t-medium aspect-video w-full;
37
+ object-fit: contain;
38
+ background: black;
39
+ }
40
+
41
+ .controlsOverlay {
42
+ @apply space-y-s p-s;
43
+ border-radius: 0 0 var(--radius-medium) var(--radius-medium);
44
+ align-self: stretch;
45
+ }
46
+
47
+ .loadingOverlay {
48
+ @apply rounded-t-medium fg-primary-muted pointer-events-none absolute top-0 right-0 left-0 flex items-center justify-center;
49
+ bottom: var(--video-controls-height);
50
+ }
51
+
52
+ .loadingSpinner {
53
+ @variant motion-safe {
54
+ @apply animate-spin;
55
+ }
56
+ }
57
+
58
+ .errorOverlay {
59
+ @apply rounded-t-medium fg-serious-bold gap-s pointer-events-none absolute top-0 right-0 left-0 flex items-center justify-center;
60
+ bottom: var(--video-controls-height);
61
+ }
62
+
63
+ .errorText {
64
+ @apply text-body-m;
65
+ }
66
+
67
+ .timeRow {
68
+ @apply gap-s flex items-center;
69
+ }
70
+
71
+ .controls {
72
+ @apply space-y-s p-s;
73
+ }
74
+
75
+ .controlsRow {
76
+ @apply flex items-center;
77
+ }
78
+
79
+ .leftGroup,
80
+ .rightGroup {
81
+ @apply flex flex-1 items-center;
82
+ }
83
+
84
+ .leftGroup {
85
+ @apply justify-start;
86
+ }
87
+
88
+ .rightGroup {
89
+ @apply gap-xs justify-end;
90
+ }
91
+
92
+ .volumeGroup {
93
+ @apply gap-s flex;
94
+ }
95
+
96
+ .playbackGroup {
97
+ @apply gap-xs flex items-center justify-center;
98
+ }
99
+ }
@@ -0,0 +1,52 @@
1
+ /*
2
+ * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.
3
+ * This file is licensed to you under the Apache License, Version 2.0 (the "License");
4
+ * you may not use this file except in compliance with the License. You may obtain a copy
5
+ * of the License at https://www.apache.org/licenses/LICENSE-2.0
6
+ *
7
+ * Unless required by applicable law or agreed to in writing, software distributed under
8
+ * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
9
+ * OF ANY KIND, either express or implied. See the License for the specific language
10
+ * governing permissions and limitations under the License.
11
+ */
12
+
13
+ import { ComponentProps, ComponentPropsWithRef, ReactNode } from "react";
14
+ import { MediaController } from "media-chrome/react";
15
+
16
+ //#region src/components/video/types.d.ts
17
+ type VideoProps = Omit<ComponentPropsWithRef<'video'>, 'children' | 'onEnded' | 'onTimeUpdate' | 'onError' | 'src' | 'className'> & Pick<ComponentProps<typeof MediaController>, 'noHotkeys' | 'hotkeys' | 'noVolumePref' | 'noMutedPref' | 'lang'> & {
18
+ /** Video source URL */
19
+ src: string;
20
+ /** Poster image URL displayed before playback */
21
+ poster?: string;
22
+ /** Disable all video controls */
23
+ isDisabled?: boolean;
24
+ /** Custom controls (replaces default layout) */
25
+ children?: ReactNode;
26
+ /**
27
+ * Class names for sub-elements.
28
+ * @property container - The outer MediaController wrapper element.
29
+ * @property video - The native HTML video element.
30
+ * @property mediaControls - The controls overlay container.
31
+ * @property timeRow - The row containing time display and seek bar.
32
+ * @property controlsRow - The row containing playback and volume controls.
33
+ */
34
+ classNames?: {
35
+ container?: string;
36
+ video?: string;
37
+ mediaControls?: string;
38
+ timeRow?: string;
39
+ controlsRow?: string;
40
+ };
41
+ /** Callback when video ends */
42
+ onEnded?: () => void;
43
+ /** Callback when playback time updates */
44
+ onTimeUpdate?: (currentTime: number) => void;
45
+ /** Callback when video fails to load or encounters an error */
46
+ onError?: (error: MediaError) => void;
47
+ /** Custom playback rate options (default: [1, 2, 3]) */
48
+ playbackRates?: number[];
49
+ };
50
+ //#endregion
51
+ export { VideoProps };
52
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1,12 @@
1
+ /*
2
+ * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.
3
+ * This file is licensed to you under the Apache License, Version 2.0 (the "License");
4
+ * you may not use this file except in compliance with the License. You may obtain a copy
5
+ * of the License at https://www.apache.org/licenses/LICENSE-2.0
6
+ *
7
+ * Unless required by applicable law or agreed to in writing, software distributed under
8
+ * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
9
+ * OF ANY KIND, either express or implied. See the License for the specific language
10
+ * governing permissions and limitations under the License.
11
+ */
12
+
@@ -12,7 +12,7 @@
12
12
 
13
13
  import { ViewStackProps } from "./types.js";
14
14
  import "client-only";
15
- import * as react_jsx_runtime186 from "react/jsx-runtime";
15
+ import * as react_jsx_runtime183 from "react/jsx-runtime";
16
16
 
17
17
  //#region src/components/view-stack/index.d.ts
18
18
 
@@ -47,7 +47,7 @@ declare function ViewStack({
47
47
  children,
48
48
  defaultView,
49
49
  onChange
50
- }: ViewStackProps): react_jsx_runtime186.JSX.Element;
50
+ }: ViewStackProps): react_jsx_runtime183.JSX.Element;
51
51
  //#endregion
52
52
  export { ViewStack };
53
53
  //# sourceMappingURL=index.d.ts.map
@@ -12,7 +12,7 @@
12
12
 
13
13
  import { ViewStackTriggerProps } from "./types.js";
14
14
  import "client-only";
15
- import * as react_jsx_runtime188 from "react/jsx-runtime";
15
+ import * as react_jsx_runtime185 from "react/jsx-runtime";
16
16
 
17
17
  //#region src/components/view-stack/trigger.d.ts
18
18
 
@@ -45,7 +45,7 @@ import * as react_jsx_runtime188 from "react/jsx-runtime";
45
45
  declare function ViewStackTrigger({
46
46
  children,
47
47
  for: types
48
- }: ViewStackTriggerProps): react_jsx_runtime188.JSX.Element;
48
+ }: ViewStackTriggerProps): react_jsx_runtime185.JSX.Element;
49
49
  //#endregion
50
50
  export { ViewStackTrigger };
51
51
  //# sourceMappingURL=trigger.d.ts.map
@@ -12,7 +12,7 @@
12
12
 
13
13
  import { ViewStackViewProps } from "./types.js";
14
14
  import "client-only";
15
- import * as react_jsx_runtime175 from "react/jsx-runtime";
15
+ import * as react_jsx_runtime186 from "react/jsx-runtime";
16
16
 
17
17
  //#region src/components/view-stack/view.d.ts
18
18
 
@@ -43,7 +43,7 @@ import * as react_jsx_runtime175 from "react/jsx-runtime";
43
43
  declare function ViewStackView({
44
44
  id,
45
45
  children
46
- }: ViewStackViewProps): react_jsx_runtime175.JSX.Element | null;
46
+ }: ViewStackViewProps): react_jsx_runtime186.JSX.Element | null;
47
47
  //#endregion
48
48
  export { ViewStackView };
49
49
  //# sourceMappingURL=view.d.ts.map
package/dist/index.d.ts CHANGED
@@ -20,6 +20,8 @@ import { AccordionPanel } from "./components/accordion/panel.js";
20
20
  import { AccordionTrigger } from "./components/accordion/trigger.js";
21
21
  import { ActionBarProps } from "./components/action-bar/types.js";
22
22
  import { ActionBar } from "./components/action-bar/index.js";
23
+ import { AudioProps } from "./components/audio/types.js";
24
+ import { Audio } from "./components/audio/index.js";
23
25
  import { AvatarProps } from "./components/avatar/types.js";
24
26
  import { AvatarContext, AvatarProvider } from "./components/avatar/context.js";
25
27
  import { Avatar } from "./components/avatar/index.js";
@@ -156,6 +158,17 @@ import { ListItemContent } from "./components/list/item-content.js";
156
158
  import { ListItemDescription } from "./components/list/item-description.js";
157
159
  import { ListItemTitle } from "./components/list/item-title.js";
158
160
  import { ListItem } from "./components/list/item.js";
161
+ import { FullscreenButtonProps, MediaControlsContextValue, MediaControlsProps, MuteButtonProps, PlayButtonProps, PlaybackRateButtonProps, SeekButtonProps, TimeDisplayMode, TimeDisplayProps, TimeRangeProps, VolumeSliderProps } from "./components/media-controls/types.js";
162
+ import { MediaControlsContext, MediaControlsProvider, useMediaControlsDisabled, useMediaProviderGuard } from "./components/media-controls/context.js";
163
+ import { FullscreenButton } from "./components/media-controls/fullscreen-button.js";
164
+ import { MediaControls } from "./components/media-controls/index.js";
165
+ import { MuteButton } from "./components/media-controls/mute-button.js";
166
+ import { PlayButton } from "./components/media-controls/play-button.js";
167
+ import { PlaybackRateButton } from "./components/media-controls/playback-rate.js";
168
+ import { SeekButton } from "./components/media-controls/seek-button.js";
169
+ import { TimeDisplay } from "./components/media-controls/time-display.js";
170
+ import { TimeRange } from "./components/media-controls/time-range.js";
171
+ import { VolumeSlider } from "./components/media-controls/volume-slider.js";
159
172
  import { MenuItemProps, MenuProps, MenuSectionProps } from "./components/menu/types.js";
160
173
  import { MenuContext } from "./components/menu/context.js";
161
174
  import { Menu } from "./components/menu/index.js";
@@ -221,6 +234,8 @@ import { SkeletonProps } from "./components/skeleton/types.js";
221
234
  import { Skeleton } from "./components/skeleton/index.js";
222
235
  import { SliderMarker, SliderMarkersConfig, SliderProps } from "./components/slider/types.js";
223
236
  import { Slider } from "./components/slider/index.js";
237
+ import { StatusIndicatorProps } from "./components/status-indicator/types.js";
238
+ import { StatusIndicator } from "./components/status-indicator/index.js";
224
239
  import { SwitchProps } from "./components/switch/types.js";
225
240
  import { SwitchContext, SwitchProvider } from "./components/switch/context.js";
226
241
  import { Switch } from "./components/switch/index.js";
@@ -257,6 +272,8 @@ import { TreeItemLabel } from "./components/tree/item-label.js";
257
272
  import { TreeItemPrefixIcon } from "./components/tree/item-prefix-icon.js";
258
273
  import { TreeItem } from "./components/tree/item.js";
259
274
  import { TreeLines } from "./components/tree/lines.js";
275
+ import { VideoProps } from "./components/video/types.js";
276
+ import { Video } from "./components/video/index.js";
260
277
  import { ViewStackContext, ViewStackEventHandlers, useViewStackEmit } from "./components/view-stack/context.js";
261
278
  import { ViewStack } from "./components/view-stack/index.js";
262
279
  import { ViewStackTrigger } from "./components/view-stack/trigger.js";
@@ -274,4 +291,4 @@ import { useTreeState } from "./hooks/use-tree/state/index.js";
274
291
  import { isSlottedContextValue } from "./lib/utils.js";
275
292
  import { PortalProvider } from "./providers/portal.js";
276
293
  import { ThemeMode, ThemeProvider, useTheme } from "./providers/theme-provider.js";
277
- export { Accordion, AccordionContext, AccordionGroup, type AccordionGroupProps, AccordionHeader, type AccordionHeaderProps, AccordionPanel, type AccordionPanelProps, type AccordionProps, type AccordionStyleVariants, AccordionTrigger, type AccordionTriggerProps, ActionBar, type ActionBarProps, type AriaAttributes, type AriaAttributesWithRef, Avatar, AvatarContext, type AvatarProps, AvatarProvider, Badge, BadgeContext, type BadgeProps, BadgeProvider, BreadcrumbItem, type BreadcrumbItemProps, Breadcrumbs, Button, ButtonContext, type ButtonProps, ButtonProvider, type ButtonStyleVariants, COORDINATE_EPSILON, COORDINATE_ERROR_MESSAGES, COORDINATE_FORMAT_LABELS, COORDINATE_FORMAT_NAMES, COORDINATE_SYSTEMS, type ChainedEvents, Checkbox, CheckboxContext, CheckboxGroup, CheckboxGroupContext, type CheckboxGroupProps, type CheckboxProps, type ChildrenRenderProps, Chip, ChipContext, type ChipContextValue, ChipList, type ChipListProps, ChipListRenderingContext, type ChipProps, ChipProvider, type ClassNameRenderProps, type ClassNames, ClassificationBadge, ClassificationBadgeContext, type ClassificationBadgeProps, ClassificationBadgeProvider, ClassificationBanner, ClassificationBannerContext, type ClassificationBannerProps, ClassificationBannerProvider, Clock, type ClockProps, CloneAction, ColorPicker, type ColorPickerProps, CombinatorSelector, ComboBoxField, ComboBoxFieldContext, type ComboBoxFieldProps, ComboBoxFieldProvider, CoordinateField, CoordinateFieldContext, type CoordinateFieldProps, CoordinateFieldProvider, type CoordinateFieldState, CoordinateFieldStateContext, CoordinateFieldStateProvider, type CoordinateFormatResult, CoordinateSegment, type CoordinateSegmentProps, type CoordinateSystem, type CoordinateValue, DateField, type DateFieldProps, type DefaultRQBProps, DeferredCollection, type DeferredCollectionProps, DeletableChip, type DeletableChipProps, DetailsList, DetailsListContext, DetailsListLabel, type DetailsListLabelProps, type DetailsListProps, DetailsListProvider, DetailsListValue, type DetailsListValueProps, Dialog, DialogContent, DialogContext, DialogFooter, type DialogProps, DialogTitle, DialogTrigger, type DialogTriggerProps, Divider, DividerContext, type DividerProps, DividerProvider, type DragAndDropConfig, DragContext, Drawer, DrawerBack, DrawerClose, type DrawerCloseEvent, type DrawerCloseProps, DrawerContent, DrawerContext, type DrawerContextValue, type DrawerEvent, DrawerEventHandlers, DrawerEventNamespace, DrawerEventTypes, DrawerFooter, DrawerHeader, DrawerHeaderTitle, DrawerLayout, DrawerLayoutMain, type DrawerLayoutProps, DrawerMenu, DrawerMenuItem, type DrawerMenuItemProps, type DrawerMenuProps, type DrawerOpenEvent, DrawerPanel, type DrawerProps, type DrawerTitleProps, type DrawerToggleEvent, DrawerTrigger, type DrawerTriggerProps, DrawerView, type DropTargetInfo, EXPECTED_SEGMENT_COUNTS, type Field, Flashcard, FlashcardAdditionalData, type FlashcardComponentProps, FlashcardContext, FlashcardDetailsLabel, FlashcardDetailsList, type FlashcardDetailsListProps, FlashcardDetailsValue, FlashcardHero, type FlashcardProps, GROUP_SEPARATOR, HeaderColumnAction, type HeaderColumnActionKey, Hero, HeroContext, type HeroProps, HeroSubtitle, HeroTitle, Hotkey, HotkeyContext, type HotkeyProps, HotkeyProvider, HotkeySet, Icon, IconContext, type IconProps, IconProvider, Input, InputContext, type InputProps, Kanban, KanbanCard, KanbanCardBody, type KanbanCardData, KanbanCardHeader, KanbanCardHeaderActions, KanbanCardHeaderTitle, type KanbanCardProps, type KanbanColContentActionProps, type KanbanColContentProps, type KanbanColProps, KanbanColumn, KanbanColumnActions, KanbanColumnContainer, KanbanColumnContent, type KanbanColumnData, KanbanColumnHeader, KanbanColumnHeaderActions, KanbanColumnHeaderDragHandle, KanbanColumnHeaderTitle, type KanbanComponentProps, type KanbanContextData, KanbanHeader, KanbanHeaderActions, KanbanHeaderSearch, KanbanHeaderTitle, type KanbanMenuProps, type KanbanProps, KanbanProvider, type KanbanProviderProps, type KanbanSearchProps, Label, LabelContext, type LabelProps, LabelProvider, Lines, type LinesProps, Link, LinkButton, LinkButtonContext, type LinkButtonProps, LinkButtonProvider, type LinkProps, LinkProvider, List, ListContext, ListItem, ListItemContent, type ListItemContentProps, ListItemDescription, type ListItemDescriptionProps, type ListItemProps, ListItemTitle, type ListItemTitleProps, type ListItemVariant, type ListProps, LockAction, Menu, MenuContext, MenuItem, MenuItemDescription, MenuItemLabel, type MenuItemProps, type MenuProps, MenuSection, type MenuSectionProps, MenuSeparator, MenuSubmenu, MenuTrigger, type MoveCard, type MoveCardValidationParams, type MoveCardValidationResult, Notice, type NoticeActionEvent, type NoticeColor, type NoticeContent, type NoticeDequeueEvent, NoticeEventNamespace, NoticeEventTypes, NoticeIcon, type NoticeIconProps, NoticeList, type NoticeListProps, type NoticeProps, type NoticeQueueEvent, Options, OptionsContext, type OptionsDataItem, OptionsItem, OptionsItemContent, OptionsItemDescription, OptionsItemLabel, type OptionsItemProps, type OptionsProps, OptionsSection, type OptionsSectionProps, Pagination, PaginationContext, type PaginationContextValue, PaginationNext, type PaginationNextProps, PaginationPages, type PaginationPagesProps, PaginationPrev, type PaginationPrevProps, type PaginationProps, type ParsedCoordinateMatch, Popover, PopoverContent, PopoverFooter, type PopoverProps, PopoverTitle, PopoverTrigger, type PopoverTriggerProps, PortalProvider, type ProviderProps, QueryBuilder, type QueryBuilderContextType, type QueryBuilderProps, type QueryBuilderValueEditors, Radio, RadioContext, RadioGroup, type RadioGroupProps, type RadioProps, RemoveRuleAction, type RenderProps, type RenderPropsChildren, type RenderPropsClassName, type RenderPropsStyle, type RuleGroupType, SearchField, SearchFieldContext, type SearchFieldProps, SearchFieldProvider, type SegmentConfig, type SegmentType, SelectField, SelectFieldContext, type SelectFieldProps, SelectFieldProvider, SelectableChip, type SelectableChipProps, Sidenav, SidenavAvatar, type SidenavAvatarProps, type SidenavCloseEvent, SidenavContent, type SidenavContentProps, SidenavContext, type SidenavContextValue, type SidenavDividerProps, type SidenavEvent, SidenavEventNamespace, SidenavEventTypes, SidenavFooter, type SidenavFooterProps, SidenavHeader, type SidenavHeaderProps, SidenavItem, type SidenavItemProps, SidenavLink, type SidenavLinkProps, SidenavMenu, SidenavMenuItem, type SidenavMenuItemProps, type SidenavMenuProps, type SidenavOpenEvent, type SidenavProps, type SidenavToggleEvent, SidenavTrigger, type SidenavTriggerProps, type SimpleEvents, Skeleton, type SkeletonProps, Slider, type SliderMarker, type SliderMarkersConfig, type SliderProps, type SlottedValue, SortDirection, type SortDirectionState, type StylePropRenderProps, type StyleRenderProps, Switch, SwitchContext, type SwitchProps, SwitchProvider, Tab, TabList, TabPanel, Table, type TableBodyProps, type TableCellProps, TableContext, type TableContextValue, type TableHeaderCellProps, type TableHeaderProps, type TableProps, type TableRowProps, Tabs, TabsContext, type TabsProps, TabsProvider, type TargetedEvents, TextAreaField, TextAreaFieldContext, type TextAreaFieldProps, TextAreaFieldProvider, TextField, TextFieldContext, type TextFieldProps, TextFieldProvider, type ThemeMode, ThemeProvider, TimeField, type TimeFieldProps, ToggleButton, ToggleButtonContext, type ToggleButtonProps, ToggleButtonProvider, type ToggleButtonStyleVariants, Tooltip, TooltipContext, type TooltipProps, TooltipTrigger, type TooltipTriggerProps, Tree, type TreeActions, TreeContext, type TreeContextValue, type TreeData, TreeItem, TreeItemActions, TreeItemContent, type TreeItemContentProps, type TreeItemContentRenderProps, TreeItemContext, type TreeItemContextValue, TreeItemDescription, TreeItemLabel, TreeItemPrefixIcon, type TreeItemProps, TreeLines, type TreeNode, type TreeNodeBase, type TreeProps, type TreeStyleVariant, type UseCoordinateCopyOptions, type UseCoordinateCopyResult, type UseCoordinateFieldResult, type UseCoordinateFieldStateOptions, type UseCoordinateFieldStateResult, type UseCoordinateFocusOptions, type UseCoordinateFocusResult, type UseCoordinatePasteOptions, type UseCoordinatePasteResult, type UseFrameDelayOptions, type UseFrameDelayResult, type UseTimeoutCleanupResult, type UseTreeActionsOptions, type UseTreeState, type UseTreeStateOptions, ViewStack, type ViewStackBackEvent, type ViewStackClearEvent, ViewStackContext, type ViewStackContextValue, type ViewStackEvent, ViewStackEventHandlers, ViewStackEventNamespace, ViewStackEventTypes, type ViewStackProps, type ViewStackPushEvent, type ViewStackResetEvent, ViewStackTrigger, type ViewStackTriggerProps, ViewStackView, type ViewStackViewProps, areAllSegmentsFilled, areCoordinatesEqual, bus, calculateClosestEdge, columnData, convertDDToDisplaySegments, convertDisplaySegmentsToDD, ddSegmentConfigs, ddmSegmentConfigs, deduplicateMatchesByLocation, dmsSegmentConfigs, formatSegmentsToCoordinateString, getAllCoordinateFormats, getEditableSegmentCount, getFormatDescription, getInsertIndex, getSegmentConfigs, getSegmentLabel, hasAnySegmentValue, headerColumnActionValues, isCompleteCoordinate, isSlottedContextValue, matchesMetadata, mgrsSegmentConfigs, parseCoordinatePaste, parseCoordinateStringToSegments, parseDropTarget, sortDirectionValues, useCardInteractions, useColumnInteractions, useCoordinateCopy, useCoordinateField, useCoordinateFieldState, useCoordinateFieldStateContext, useCoordinateFocus, useCoordinatePaste, useDragContext, useDrawerEmit, useFrameDelay, useKanban, useListItemVariant, useTheme, useTimeoutCleanup, useTreeActions, useTreeState, useViewStackEmit, utmSegmentConfigs, validateCoordinateSegments, validateMoveCard };
294
+ export { Accordion, AccordionContext, AccordionGroup, type AccordionGroupProps, AccordionHeader, type AccordionHeaderProps, AccordionPanel, type AccordionPanelProps, type AccordionProps, type AccordionStyleVariants, AccordionTrigger, type AccordionTriggerProps, ActionBar, type ActionBarProps, type AriaAttributes, type AriaAttributesWithRef, Audio, type AudioProps, Avatar, AvatarContext, type AvatarProps, AvatarProvider, Badge, BadgeContext, type BadgeProps, BadgeProvider, BreadcrumbItem, type BreadcrumbItemProps, Breadcrumbs, Button, ButtonContext, type ButtonProps, ButtonProvider, type ButtonStyleVariants, COORDINATE_EPSILON, COORDINATE_ERROR_MESSAGES, COORDINATE_FORMAT_LABELS, COORDINATE_FORMAT_NAMES, COORDINATE_SYSTEMS, type ChainedEvents, Checkbox, CheckboxContext, CheckboxGroup, CheckboxGroupContext, type CheckboxGroupProps, type CheckboxProps, type ChildrenRenderProps, Chip, ChipContext, type ChipContextValue, ChipList, type ChipListProps, ChipListRenderingContext, type ChipProps, ChipProvider, type ClassNameRenderProps, type ClassNames, ClassificationBadge, ClassificationBadgeContext, type ClassificationBadgeProps, ClassificationBadgeProvider, ClassificationBanner, ClassificationBannerContext, type ClassificationBannerProps, ClassificationBannerProvider, Clock, type ClockProps, CloneAction, ColorPicker, type ColorPickerProps, CombinatorSelector, ComboBoxField, ComboBoxFieldContext, type ComboBoxFieldProps, ComboBoxFieldProvider, CoordinateField, CoordinateFieldContext, type CoordinateFieldProps, CoordinateFieldProvider, type CoordinateFieldState, CoordinateFieldStateContext, CoordinateFieldStateProvider, type CoordinateFormatResult, CoordinateSegment, type CoordinateSegmentProps, type CoordinateSystem, type CoordinateValue, DateField, type DateFieldProps, type DefaultRQBProps, DeferredCollection, type DeferredCollectionProps, DeletableChip, type DeletableChipProps, DetailsList, DetailsListContext, DetailsListLabel, type DetailsListLabelProps, type DetailsListProps, DetailsListProvider, DetailsListValue, type DetailsListValueProps, Dialog, DialogContent, DialogContext, DialogFooter, type DialogProps, DialogTitle, DialogTrigger, type DialogTriggerProps, Divider, DividerContext, type DividerProps, DividerProvider, type DragAndDropConfig, DragContext, Drawer, DrawerBack, DrawerClose, type DrawerCloseEvent, type DrawerCloseProps, DrawerContent, DrawerContext, type DrawerContextValue, type DrawerEvent, DrawerEventHandlers, DrawerEventNamespace, DrawerEventTypes, DrawerFooter, DrawerHeader, DrawerHeaderTitle, DrawerLayout, DrawerLayoutMain, type DrawerLayoutProps, DrawerMenu, DrawerMenuItem, type DrawerMenuItemProps, type DrawerMenuProps, type DrawerOpenEvent, DrawerPanel, type DrawerProps, type DrawerTitleProps, type DrawerToggleEvent, DrawerTrigger, type DrawerTriggerProps, DrawerView, type DropTargetInfo, EXPECTED_SEGMENT_COUNTS, type Field, Flashcard, FlashcardAdditionalData, type FlashcardComponentProps, FlashcardContext, FlashcardDetailsLabel, FlashcardDetailsList, type FlashcardDetailsListProps, FlashcardDetailsValue, FlashcardHero, type FlashcardProps, FullscreenButton, type FullscreenButtonProps, GROUP_SEPARATOR, HeaderColumnAction, type HeaderColumnActionKey, Hero, HeroContext, type HeroProps, HeroSubtitle, HeroTitle, Hotkey, HotkeyContext, type HotkeyProps, HotkeyProvider, HotkeySet, Icon, IconContext, type IconProps, IconProvider, Input, InputContext, type InputProps, Kanban, KanbanCard, KanbanCardBody, type KanbanCardData, KanbanCardHeader, KanbanCardHeaderActions, KanbanCardHeaderTitle, type KanbanCardProps, type KanbanColContentActionProps, type KanbanColContentProps, type KanbanColProps, KanbanColumn, KanbanColumnActions, KanbanColumnContainer, KanbanColumnContent, type KanbanColumnData, KanbanColumnHeader, KanbanColumnHeaderActions, KanbanColumnHeaderDragHandle, KanbanColumnHeaderTitle, type KanbanComponentProps, type KanbanContextData, KanbanHeader, KanbanHeaderActions, KanbanHeaderSearch, KanbanHeaderTitle, type KanbanMenuProps, type KanbanProps, KanbanProvider, type KanbanProviderProps, type KanbanSearchProps, Label, LabelContext, type LabelProps, LabelProvider, Lines, type LinesProps, Link, LinkButton, LinkButtonContext, type LinkButtonProps, LinkButtonProvider, type LinkProps, LinkProvider, List, ListContext, ListItem, ListItemContent, type ListItemContentProps, ListItemDescription, type ListItemDescriptionProps, type ListItemProps, ListItemTitle, type ListItemTitleProps, type ListItemVariant, type ListProps, LockAction, MediaControls, MediaControlsContext, type MediaControlsContextValue, type MediaControlsProps, MediaControlsProvider, Menu, MenuContext, MenuItem, MenuItemDescription, MenuItemLabel, type MenuItemProps, type MenuProps, MenuSection, type MenuSectionProps, MenuSeparator, MenuSubmenu, MenuTrigger, type MoveCard, type MoveCardValidationParams, type MoveCardValidationResult, MuteButton, type MuteButtonProps, Notice, type NoticeActionEvent, type NoticeColor, type NoticeContent, type NoticeDequeueEvent, NoticeEventNamespace, NoticeEventTypes, NoticeIcon, type NoticeIconProps, NoticeList, type NoticeListProps, type NoticeProps, type NoticeQueueEvent, Options, OptionsContext, type OptionsDataItem, OptionsItem, OptionsItemContent, OptionsItemDescription, OptionsItemLabel, type OptionsItemProps, type OptionsProps, OptionsSection, type OptionsSectionProps, Pagination, PaginationContext, type PaginationContextValue, PaginationNext, type PaginationNextProps, PaginationPages, type PaginationPagesProps, PaginationPrev, type PaginationPrevProps, type PaginationProps, type ParsedCoordinateMatch, PlayButton, type PlayButtonProps, PlaybackRateButton, type PlaybackRateButtonProps, Popover, PopoverContent, PopoverFooter, type PopoverProps, PopoverTitle, PopoverTrigger, type PopoverTriggerProps, PortalProvider, type ProviderProps, QueryBuilder, type QueryBuilderContextType, type QueryBuilderProps, type QueryBuilderValueEditors, Radio, RadioContext, RadioGroup, type RadioGroupProps, type RadioProps, RemoveRuleAction, type RenderProps, type RenderPropsChildren, type RenderPropsClassName, type RenderPropsStyle, type RuleGroupType, SearchField, SearchFieldContext, type SearchFieldProps, SearchFieldProvider, SeekButton, type SeekButtonProps, type SegmentConfig, type SegmentType, SelectField, SelectFieldContext, type SelectFieldProps, SelectFieldProvider, SelectableChip, type SelectableChipProps, Sidenav, SidenavAvatar, type SidenavAvatarProps, type SidenavCloseEvent, SidenavContent, type SidenavContentProps, SidenavContext, type SidenavContextValue, type SidenavDividerProps, type SidenavEvent, SidenavEventNamespace, SidenavEventTypes, SidenavFooter, type SidenavFooterProps, SidenavHeader, type SidenavHeaderProps, SidenavItem, type SidenavItemProps, SidenavLink, type SidenavLinkProps, SidenavMenu, SidenavMenuItem, type SidenavMenuItemProps, type SidenavMenuProps, type SidenavOpenEvent, type SidenavProps, type SidenavToggleEvent, SidenavTrigger, type SidenavTriggerProps, type SimpleEvents, Skeleton, type SkeletonProps, Slider, type SliderMarker, type SliderMarkersConfig, type SliderProps, type SlottedValue, SortDirection, type SortDirectionState, StatusIndicator, type StatusIndicatorProps, type StylePropRenderProps, type StyleRenderProps, Switch, SwitchContext, type SwitchProps, SwitchProvider, Tab, TabList, TabPanel, Table, type TableBodyProps, type TableCellProps, TableContext, type TableContextValue, type TableHeaderCellProps, type TableHeaderProps, type TableProps, type TableRowProps, Tabs, TabsContext, type TabsProps, TabsProvider, type TargetedEvents, TextAreaField, TextAreaFieldContext, type TextAreaFieldProps, TextAreaFieldProvider, TextField, TextFieldContext, type TextFieldProps, TextFieldProvider, type ThemeMode, ThemeProvider, TimeDisplay, type TimeDisplayMode, type TimeDisplayProps, TimeField, type TimeFieldProps, TimeRange, type TimeRangeProps, ToggleButton, ToggleButtonContext, type ToggleButtonProps, ToggleButtonProvider, type ToggleButtonStyleVariants, Tooltip, TooltipContext, type TooltipProps, TooltipTrigger, type TooltipTriggerProps, Tree, type TreeActions, TreeContext, type TreeContextValue, type TreeData, TreeItem, TreeItemActions, TreeItemContent, type TreeItemContentProps, type TreeItemContentRenderProps, TreeItemContext, type TreeItemContextValue, TreeItemDescription, TreeItemLabel, TreeItemPrefixIcon, type TreeItemProps, TreeLines, type TreeNode, type TreeNodeBase, type TreeProps, type TreeStyleVariant, type UseCoordinateCopyOptions, type UseCoordinateCopyResult, type UseCoordinateFieldResult, type UseCoordinateFieldStateOptions, type UseCoordinateFieldStateResult, type UseCoordinateFocusOptions, type UseCoordinateFocusResult, type UseCoordinatePasteOptions, type UseCoordinatePasteResult, type UseFrameDelayOptions, type UseFrameDelayResult, type UseTimeoutCleanupResult, type UseTreeActionsOptions, type UseTreeState, type UseTreeStateOptions, Video, type VideoProps, ViewStack, type ViewStackBackEvent, type ViewStackClearEvent, ViewStackContext, type ViewStackContextValue, type ViewStackEvent, ViewStackEventHandlers, ViewStackEventNamespace, ViewStackEventTypes, type ViewStackProps, type ViewStackPushEvent, type ViewStackResetEvent, ViewStackTrigger, type ViewStackTriggerProps, ViewStackView, type ViewStackViewProps, VolumeSlider, type VolumeSliderProps, areAllSegmentsFilled, areCoordinatesEqual, bus, calculateClosestEdge, columnData, convertDDToDisplaySegments, convertDisplaySegmentsToDD, ddSegmentConfigs, ddmSegmentConfigs, deduplicateMatchesByLocation, dmsSegmentConfigs, formatSegmentsToCoordinateString, getAllCoordinateFormats, getEditableSegmentCount, getFormatDescription, getInsertIndex, getSegmentConfigs, getSegmentLabel, hasAnySegmentValue, headerColumnActionValues, isCompleteCoordinate, isSlottedContextValue, matchesMetadata, mgrsSegmentConfigs, parseCoordinatePaste, parseCoordinateStringToSegments, parseDropTarget, sortDirectionValues, useCardInteractions, useColumnInteractions, useCoordinateCopy, useCoordinateField, useCoordinateFieldState, useCoordinateFieldStateContext, useCoordinateFocus, useCoordinatePaste, useDragContext, useDrawerEmit, useFrameDelay, useKanban, useListItemVariant, useMediaControlsDisabled, useMediaProviderGuard, useTheme, useTimeoutCleanup, useTreeActions, useTreeState, useViewStackEmit, utmSegmentConfigs, validateCoordinateSegments, validateMoveCard };