@uipath/apollo-wind 2.68.0 → 2.69.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 (35) hide show
  1. package/dist/components/ui/code-block.cjs +375 -0
  2. package/dist/components/ui/code-block.d.ts +38 -0
  3. package/dist/components/ui/code-block.js +307 -0
  4. package/dist/components/ui/index.cjs +254 -188
  5. package/dist/components/ui/index.d.ts +6 -0
  6. package/dist/components/ui/index.js +6 -0
  7. package/dist/components/ui/json-tree-view/JsonTree.cjs +2 -2
  8. package/dist/components/ui/json-tree-view/JsonTree.js +1 -1
  9. package/dist/components/ui/json-tree-view/index.cjs +26 -23
  10. package/dist/components/ui/json-tree-view/index.d.ts +2 -2
  11. package/dist/components/ui/json-tree-view/index.js +2 -2
  12. package/dist/components/ui/live-region.cjs +106 -0
  13. package/dist/components/ui/live-region.d.ts +31 -0
  14. package/dist/components/ui/live-region.js +72 -0
  15. package/dist/components/ui/loading-dots.cjs +95 -0
  16. package/dist/components/ui/loading-dots.d.ts +21 -0
  17. package/dist/components/ui/loading-dots.js +55 -0
  18. package/dist/components/ui/markdown.cjs +428 -0
  19. package/dist/components/ui/markdown.d.ts +55 -0
  20. package/dist/components/ui/markdown.js +378 -0
  21. package/dist/components/ui/thinking-indicator.cjs +146 -0
  22. package/dist/components/ui/thinking-indicator.d.ts +38 -0
  23. package/dist/components/ui/thinking-indicator.js +106 -0
  24. package/dist/components/ui/tool-call.cjs +359 -0
  25. package/dist/components/ui/tool-call.d.ts +75 -0
  26. package/dist/components/ui/tool-call.js +301 -0
  27. package/dist/index.cjs +321 -252
  28. package/dist/index.d.ts +12 -0
  29. package/dist/index.js +7 -1
  30. package/dist/styles.css +206 -0
  31. package/dist/tailwind.utilities.css +21 -0
  32. package/package.json +7 -1
  33. /package/dist/{components/ui/json-tree-view → lib}/clipboard.cjs +0 -0
  34. /package/dist/{components/ui/json-tree-view → lib}/clipboard.d.ts +0 -0
  35. /package/dist/{components/ui/json-tree-view → lib}/clipboard.js +0 -0
@@ -14,6 +14,7 @@ export * from './calendar';
14
14
  export * from './card';
15
15
  export * from './chart';
16
16
  export * from './checkbox';
17
+ export * from './code-block';
17
18
  export * from './collapsible';
18
19
  export * from './combobox';
19
20
  export * from './command';
@@ -37,7 +38,10 @@ export * from './input-group';
37
38
  export * from './json-tree-view';
38
39
  export * from './label';
39
40
  export * from './layout';
41
+ export * from './live-region';
42
+ export * from './loading-dots';
40
43
  export * from './lockable-value-field';
44
+ export * from './markdown';
41
45
  export * from './marker';
42
46
  export * from './message';
43
47
  export * from './message-scroller';
@@ -69,8 +73,10 @@ export * from './table';
69
73
  export * from './panel-tabs';
70
74
  export * from './tabs';
71
75
  export * from './textarea';
76
+ export * from './thinking-indicator';
72
77
  export * from './toggle';
73
78
  export * from './toggle-group';
79
+ export * from './tool-call';
74
80
  export * from './tooltip';
75
81
  export type { FileTreeViewIconMap, FileTreeViewItem, FileTreeViewItemAction, FileTreeViewMenuItem, FileTreeViewProps, FileTreeViewSelectionMode, TreeViewIconMap, TreeViewItem, TreeViewItemAction, TreeViewMenuItem, TreeViewProps, TreeViewSelectionMode, } from './tree-view';
76
82
  export { default as FileTreeView, TreeView } from './tree-view';
@@ -15,6 +15,7 @@ export * from "./calendar.js";
15
15
  export * from "./card.js";
16
16
  export * from "./chart.js";
17
17
  export * from "./checkbox.js";
18
+ export * from "./code-block.js";
18
19
  export * from "./collapsible.js";
19
20
  export * from "./combobox.js";
20
21
  export * from "./command.js";
@@ -38,7 +39,10 @@ export * from "./input-group.js";
38
39
  export * from "./json-tree-view/index.js";
39
40
  export * from "./label.js";
40
41
  export * from "./layout/index.js";
42
+ export * from "./live-region.js";
43
+ export * from "./loading-dots.js";
41
44
  export * from "./lockable-value-field/index.js";
45
+ export * from "./markdown.js";
42
46
  export * from "./marker.js";
43
47
  export * from "./message.js";
44
48
  export * from "./message-scroller/index.js";
@@ -70,8 +74,10 @@ export * from "./table.js";
70
74
  export * from "./panel-tabs.js";
71
75
  export * from "./tabs.js";
72
76
  export * from "./textarea.js";
77
+ export * from "./thinking-indicator.js";
73
78
  export * from "./toggle.js";
74
79
  export * from "./toggle-group.js";
80
+ export * from "./tool-call.js";
75
81
  export * from "./tooltip.js";
76
82
  export * from "./variable-picker/index.js";
77
83
  export * from "./variable-value-control.js";
@@ -30,8 +30,8 @@ const jsx_runtime_namespaceObject = require("react/jsx-runtime");
30
30
  const react_virtual_namespaceObject = require("@tanstack/react-virtual");
31
31
  const external_react_namespaceObject = require("react");
32
32
  const index_cjs_namespaceObject = require("../../../lib/index.cjs");
33
+ const clipboard_cjs_namespaceObject = require("../../../lib/clipboard.cjs");
33
34
  const external_buildJsonTree_cjs_namespaceObject = require("./buildJsonTree.cjs");
34
- const external_clipboard_cjs_namespaceObject = require("./clipboard.cjs");
35
35
  const external_JsonTreeRow_cjs_namespaceObject = require("./JsonTreeRow.cjs");
36
36
  const external_JsonTreeTooltip_cjs_namespaceObject = require("./JsonTreeTooltip.cjs");
37
37
  const external_strings_cjs_namespaceObject = require("./strings.cjs");
@@ -153,7 +153,7 @@ function JsonTreeViewContent({ nodes, collapsed = {}, onToggleCollapsed, query,
153
153
  if (copyTimerRef.current) clearTimeout(copyTimerRef.current);
154
154
  }, []);
155
155
  const copy = (node, kind, text)=>{
156
- (0, external_clipboard_cjs_namespaceObject.copyTextToClipboard)(text).then((ok)=>{
156
+ (0, clipboard_cjs_namespaceObject.copyTextToClipboard)(text).then((ok)=>{
157
157
  if (!ok) return;
158
158
  setCopied({
159
159
  path: node.path,
@@ -2,8 +2,8 @@ import { jsx, jsxs } from "react/jsx-runtime";
2
2
  import { useVirtualizer } from "@tanstack/react-virtual";
3
3
  import { useCallback, useEffect, useLayoutEffect, useMemo, useRef, useState } from "react";
4
4
  import { cn } from "../../../lib/index.js";
5
+ import { copyTextToClipboard } from "../../../lib/clipboard.js";
5
6
  import { flattenJsonTree } from "./buildJsonTree.js";
6
- import { copyTextToClipboard } from "./clipboard.js";
7
7
  import { JsonTreeRow, JsonTreeRowContextProvider, ROW_MIN_HEIGHT_PX } from "./JsonTreeRow.js";
8
8
  import { JsonTreeTooltipProvider } from "./JsonTreeTooltip.js";
9
9
  import { JsonTreeViewProvider, useJsonTreeViewStrings } from "./strings.js";
@@ -1,5 +1,8 @@
1
1
  "use strict";
2
2
  var __webpack_modules__ = {
3
+ "@/lib/clipboard" (module) {
4
+ module.exports = require("../../../lib/clipboard.cjs");
5
+ },
3
6
  "./JsonContainerEditor" (module) {
4
7
  module.exports = require("./JsonContainerEditor.cjs");
5
8
  },
@@ -24,9 +27,6 @@ var __webpack_modules__ = {
24
27
  "./buildJsonTree" (module) {
25
28
  module.exports = require("./buildJsonTree.cjs");
26
29
  },
27
- "./clipboard" (module) {
28
- module.exports = require("./clipboard.cjs");
29
- },
30
30
  "./strings" (module) {
31
31
  module.exports = require("./strings.cjs");
32
32
  }
@@ -77,25 +77,19 @@ var __webpack_exports__ = {};
77
77
  __webpack_require__.d(__webpack_exports__, {
78
78
  DEFAULT_JSON_TREE_VIEW_STRINGS: ()=>_strings__rspack_import_9.DEFAULT_JSON_TREE_VIEW_STRINGS,
79
79
  JsonTreeViewProvider: ()=>_strings__rspack_import_9.JsonTreeViewProvider,
80
+ copyTextToClipboard: ()=>_lib_clipboard__rspack_import_0.copyTextToClipboard,
80
81
  useJsonTreeViewStrings: ()=>_strings__rspack_import_9.useJsonTreeViewStrings
81
82
  });
82
- var _buildJsonTree__rspack_import_0 = __webpack_require__("./buildJsonTree");
83
- var __rspack_reexport = {};
84
- for(const __rspack_import_key in _buildJsonTree__rspack_import_0)if ([
85
- "useJsonTreeViewStrings",
86
- "DEFAULT_JSON_TREE_VIEW_STRINGS",
87
- "JsonTreeViewProvider",
88
- "default"
89
- ].indexOf(__rspack_import_key) < 0) __rspack_reexport[__rspack_import_key] = ()=>_buildJsonTree__rspack_import_0[__rspack_import_key];
90
- __webpack_require__.d(__webpack_exports__, __rspack_reexport);
91
- var _clipboard__rspack_import_1 = __webpack_require__("./clipboard");
83
+ var _lib_clipboard__rspack_import_0 = __webpack_require__("@/lib/clipboard");
84
+ var _buildJsonTree__rspack_import_1 = __webpack_require__("./buildJsonTree");
92
85
  var __rspack_reexport = {};
93
- for(const __rspack_import_key in _clipboard__rspack_import_1)if ([
86
+ for(const __rspack_import_key in _buildJsonTree__rspack_import_1)if ([
94
87
  "useJsonTreeViewStrings",
95
88
  "DEFAULT_JSON_TREE_VIEW_STRINGS",
96
89
  "JsonTreeViewProvider",
97
- "default"
98
- ].indexOf(__rspack_import_key) < 0) __rspack_reexport[__rspack_import_key] = ()=>_clipboard__rspack_import_1[__rspack_import_key];
90
+ "default",
91
+ "copyTextToClipboard"
92
+ ].indexOf(__rspack_import_key) < 0) __rspack_reexport[__rspack_import_key] = ()=>_buildJsonTree__rspack_import_1[__rspack_import_key];
99
93
  __webpack_require__.d(__webpack_exports__, __rspack_reexport);
100
94
  var _JsonContainerEditor__rspack_import_2 = __webpack_require__("./JsonContainerEditor");
101
95
  var __rspack_reexport = {};
@@ -103,7 +97,8 @@ var __webpack_exports__ = {};
103
97
  "useJsonTreeViewStrings",
104
98
  "DEFAULT_JSON_TREE_VIEW_STRINGS",
105
99
  "JsonTreeViewProvider",
106
- "default"
100
+ "default",
101
+ "copyTextToClipboard"
107
102
  ].indexOf(__rspack_import_key) < 0) __rspack_reexport[__rspack_import_key] = ()=>_JsonContainerEditor__rspack_import_2[__rspack_import_key];
108
103
  __webpack_require__.d(__webpack_exports__, __rspack_reexport);
109
104
  var _JsonLeafValueEditor__rspack_import_3 = __webpack_require__("./JsonLeafValueEditor");
@@ -112,7 +107,8 @@ var __webpack_exports__ = {};
112
107
  "useJsonTreeViewStrings",
113
108
  "DEFAULT_JSON_TREE_VIEW_STRINGS",
114
109
  "JsonTreeViewProvider",
115
- "default"
110
+ "default",
111
+ "copyTextToClipboard"
116
112
  ].indexOf(__rspack_import_key) < 0) __rspack_reexport[__rspack_import_key] = ()=>_JsonLeafValueEditor__rspack_import_3[__rspack_import_key];
117
113
  __webpack_require__.d(__webpack_exports__, __rspack_reexport);
118
114
  var _JsonMultilineLeafEditor__rspack_import_4 = __webpack_require__("./JsonMultilineLeafEditor");
@@ -121,7 +117,8 @@ var __webpack_exports__ = {};
121
117
  "useJsonTreeViewStrings",
122
118
  "DEFAULT_JSON_TREE_VIEW_STRINGS",
123
119
  "JsonTreeViewProvider",
124
- "default"
120
+ "default",
121
+ "copyTextToClipboard"
125
122
  ].indexOf(__rspack_import_key) < 0) __rspack_reexport[__rspack_import_key] = ()=>_JsonMultilineLeafEditor__rspack_import_4[__rspack_import_key];
126
123
  __webpack_require__.d(__webpack_exports__, __rspack_reexport);
127
124
  var _JsonTree__rspack_import_5 = __webpack_require__("./JsonTree");
@@ -130,7 +127,8 @@ var __webpack_exports__ = {};
130
127
  "useJsonTreeViewStrings",
131
128
  "DEFAULT_JSON_TREE_VIEW_STRINGS",
132
129
  "JsonTreeViewProvider",
133
- "default"
130
+ "default",
131
+ "copyTextToClipboard"
134
132
  ].indexOf(__rspack_import_key) < 0) __rspack_reexport[__rspack_import_key] = ()=>_JsonTree__rspack_import_5[__rspack_import_key];
135
133
  __webpack_require__.d(__webpack_exports__, __rspack_reexport);
136
134
  var _JsonTree_types__rspack_import_6 = __webpack_require__("./JsonTree.types");
@@ -139,7 +137,8 @@ var __webpack_exports__ = {};
139
137
  "useJsonTreeViewStrings",
140
138
  "DEFAULT_JSON_TREE_VIEW_STRINGS",
141
139
  "JsonTreeViewProvider",
142
- "default"
140
+ "default",
141
+ "copyTextToClipboard"
143
142
  ].indexOf(__rspack_import_key) < 0) __rspack_reexport[__rspack_import_key] = ()=>_JsonTree_types__rspack_import_6[__rspack_import_key];
144
143
  __webpack_require__.d(__webpack_exports__, __rspack_reexport);
145
144
  var _JsonTreeToolbar__rspack_import_7 = __webpack_require__("./JsonTreeToolbar");
@@ -148,7 +147,8 @@ var __webpack_exports__ = {};
148
147
  "useJsonTreeViewStrings",
149
148
  "DEFAULT_JSON_TREE_VIEW_STRINGS",
150
149
  "JsonTreeViewProvider",
151
- "default"
150
+ "default",
151
+ "copyTextToClipboard"
152
152
  ].indexOf(__rspack_import_key) < 0) __rspack_reexport[__rspack_import_key] = ()=>_JsonTreeToolbar__rspack_import_7[__rspack_import_key];
153
153
  __webpack_require__.d(__webpack_exports__, __rspack_reexport);
154
154
  var _JsonTypeBadge__rspack_import_8 = __webpack_require__("./JsonTypeBadge");
@@ -157,17 +157,20 @@ var __webpack_exports__ = {};
157
157
  "useJsonTreeViewStrings",
158
158
  "DEFAULT_JSON_TREE_VIEW_STRINGS",
159
159
  "JsonTreeViewProvider",
160
- "default"
160
+ "default",
161
+ "copyTextToClipboard"
161
162
  ].indexOf(__rspack_import_key) < 0) __rspack_reexport[__rspack_import_key] = ()=>_JsonTypeBadge__rspack_import_8[__rspack_import_key];
162
163
  __webpack_require__.d(__webpack_exports__, __rspack_reexport);
163
164
  var _strings__rspack_import_9 = __webpack_require__("./strings");
164
165
  })();
165
166
  exports.DEFAULT_JSON_TREE_VIEW_STRINGS = __webpack_exports__.DEFAULT_JSON_TREE_VIEW_STRINGS;
166
167
  exports.JsonTreeViewProvider = __webpack_exports__.JsonTreeViewProvider;
168
+ exports.copyTextToClipboard = __webpack_exports__.copyTextToClipboard;
167
169
  exports.useJsonTreeViewStrings = __webpack_exports__.useJsonTreeViewStrings;
168
170
  for(var __rspack_i in __webpack_exports__)if (-1 === [
169
171
  "DEFAULT_JSON_TREE_VIEW_STRINGS",
170
172
  "JsonTreeViewProvider",
173
+ "copyTextToClipboard",
171
174
  "useJsonTreeViewStrings"
172
175
  ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
173
176
  Object.defineProperty(exports, '__esModule', {
@@ -1,5 +1,5 @@
1
+ export { copyTextToClipboard } from '../../../lib/clipboard';
1
2
  export * from './buildJsonTree';
2
- export * from './clipboard';
3
3
  export * from './JsonContainerEditor';
4
4
  export * from './JsonLeafValueEditor';
5
5
  export * from './JsonMultilineLeafEditor';
@@ -7,4 +7,4 @@ export * from './JsonTree';
7
7
  export * from './JsonTree.types';
8
8
  export * from './JsonTreeToolbar';
9
9
  export * from './JsonTypeBadge';
10
- export { DEFAULT_JSON_TREE_VIEW_STRINGS, type JsonTreeViewStrings, JsonTreeViewProvider, type JsonTreeViewProviderProps, type ResolvedJsonTreeViewStrings, useJsonTreeViewStrings, } from './strings';
10
+ export { DEFAULT_JSON_TREE_VIEW_STRINGS, JsonTreeViewProvider, type JsonTreeViewProviderProps, type JsonTreeViewStrings, type ResolvedJsonTreeViewStrings, useJsonTreeViewStrings, } from './strings';
@@ -1,6 +1,6 @@
1
+ import { copyTextToClipboard } from "../../../lib/clipboard.js";
1
2
  import { DEFAULT_JSON_TREE_VIEW_STRINGS, JsonTreeViewProvider, useJsonTreeViewStrings } from "./strings.js";
2
3
  export * from "./buildJsonTree.js";
3
- export * from "./clipboard.js";
4
4
  export * from "./JsonContainerEditor.js";
5
5
  export * from "./JsonLeafValueEditor.js";
6
6
  export * from "./JsonMultilineLeafEditor.js";
@@ -8,4 +8,4 @@ export * from "./JsonTree.js";
8
8
  export * from "./JsonTree.types.js";
9
9
  export * from "./JsonTreeToolbar.js";
10
10
  export * from "./JsonTypeBadge.js";
11
- export { DEFAULT_JSON_TREE_VIEW_STRINGS, JsonTreeViewProvider, useJsonTreeViewStrings };
11
+ export { DEFAULT_JSON_TREE_VIEW_STRINGS, JsonTreeViewProvider, copyTextToClipboard, useJsonTreeViewStrings };
@@ -0,0 +1,106 @@
1
+ "use strict";
2
+ "use client";
3
+ var __webpack_require__ = {};
4
+ (()=>{
5
+ __webpack_require__.d = (exports1, definition)=>{
6
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
7
+ enumerable: true,
8
+ get: definition[key]
9
+ });
10
+ };
11
+ })();
12
+ (()=>{
13
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
14
+ })();
15
+ (()=>{
16
+ __webpack_require__.r = (exports1)=>{
17
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
18
+ value: 'Module'
19
+ });
20
+ Object.defineProperty(exports1, '__esModule', {
21
+ value: true
22
+ });
23
+ };
24
+ })();
25
+ var __webpack_exports__ = {};
26
+ __webpack_require__.r(__webpack_exports__);
27
+ __webpack_require__.d(__webpack_exports__, {
28
+ LiveRegion: ()=>LiveRegion
29
+ });
30
+ const jsx_runtime_namespaceObject = require("react/jsx-runtime");
31
+ const external_react_namespaceObject = require("react");
32
+ const index_cjs_namespaceObject = require("../../lib/index.cjs");
33
+ const LiveRegion = /*#__PURE__*/ external_react_namespaceObject.forwardRef(({ className, message, 'aria-live': politeness = 'polite', 'aria-atomic': atomic = true, clearAfter = 1000, debounce = 0, ...props }, ref)=>{
34
+ const [current, setCurrent] = external_react_namespaceObject.useState({
35
+ id: 0,
36
+ text: ''
37
+ });
38
+ const debounceTimer = external_react_namespaceObject.useRef(void 0);
39
+ const clearTimer = external_react_namespaceObject.useRef(void 0);
40
+ const clear = external_react_namespaceObject.useCallback(()=>{
41
+ clearTimeout(debounceTimer.current);
42
+ clearTimeout(clearTimer.current);
43
+ setCurrent((prev)=>prev.text ? {
44
+ id: prev.id + 1,
45
+ text: ''
46
+ } : prev);
47
+ }, []);
48
+ const announce = external_react_namespaceObject.useCallback((next)=>{
49
+ clearTimeout(debounceTimer.current);
50
+ const commit = ()=>{
51
+ clearTimeout(clearTimer.current);
52
+ setCurrent((prev)=>({
53
+ id: prev.id + 1,
54
+ text: next
55
+ }));
56
+ if (clearAfter > 0) clearTimer.current = setTimeout(()=>setCurrent((prev)=>({
57
+ id: prev.id + 1,
58
+ text: ''
59
+ })), clearAfter);
60
+ };
61
+ if (debounce > 0) debounceTimer.current = setTimeout(commit, debounce);
62
+ else commit();
63
+ }, [
64
+ clearAfter,
65
+ debounce
66
+ ]);
67
+ external_react_namespaceObject.useImperativeHandle(ref, ()=>({
68
+ announce,
69
+ clear
70
+ }), [
71
+ announce,
72
+ clear
73
+ ]);
74
+ const announceRef = external_react_namespaceObject.useRef(announce);
75
+ announceRef.current = announce;
76
+ external_react_namespaceObject.useEffect(()=>{
77
+ if (message) announceRef.current(message);
78
+ else clear();
79
+ }, [
80
+ message,
81
+ clear
82
+ ]);
83
+ external_react_namespaceObject.useEffect(()=>()=>{
84
+ clearTimeout(debounceTimer.current);
85
+ clearTimeout(clearTimer.current);
86
+ }, []);
87
+ return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
88
+ "data-slot": "live-region",
89
+ role: 'assertive' === politeness ? 'alert' : 'status',
90
+ "aria-live": politeness,
91
+ "aria-atomic": atomic,
92
+ className: (0, index_cjs_namespaceObject.cn)('sr-only', className),
93
+ ...props,
94
+ children: current.text ? /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("span", {
95
+ children: current.text
96
+ }, current.id) : null
97
+ });
98
+ });
99
+ LiveRegion.displayName = 'LiveRegion';
100
+ exports.LiveRegion = __webpack_exports__.LiveRegion;
101
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
102
+ "LiveRegion"
103
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
104
+ Object.defineProperty(exports, '__esModule', {
105
+ value: true
106
+ });
@@ -0,0 +1,31 @@
1
+ import * as React from 'react';
2
+ /**
3
+ * A visually hidden live region for screen reader announcements, such as "Response ready" or
4
+ * "3 files attached". Render it once, before anything needs announcing: screen readers only
5
+ * speak changes to a region that already exists.
6
+ *
7
+ * Two ways to announce: set the `message` prop (announced when it changes), or call
8
+ * `announce()` on the ref, which is a `LiveRegionHandle` rather than the DOM node. The handle
9
+ * also repeats an identical message, which a prop that does not change cannot.
10
+ *
11
+ * `polite` maps to `role="status"` and waits for the reader to finish; `assertive` maps to
12
+ * `role="alert"` and interrupts, so keep it for errors.
13
+ */
14
+ export interface LiveRegionHandle {
15
+ /** Announces `message`, after `debounce` ms when set. */
16
+ announce: (message: string) => void;
17
+ /** Empties the region and drops any pending announcement. */
18
+ clear: () => void;
19
+ }
20
+ export interface LiveRegionProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'children' | 'role' | 'aria-live'> {
21
+ /** Text to announce. A new value is announced, the same value is not, and an empty one clears. */
22
+ message?: string;
23
+ /** `assertive` interrupts the reader; use it for errors only. */
24
+ 'aria-live'?: 'polite' | 'assertive';
25
+ /** Milliseconds before the text is removed, so stale text is not found when browsing. `0` keeps it. */
26
+ clearAfter?: number;
27
+ /** Milliseconds to wait for quiet before announcing; only the last of a burst is spoken. */
28
+ debounce?: number;
29
+ }
30
+ declare const LiveRegion: React.ForwardRefExoticComponent<LiveRegionProps & React.RefAttributes<LiveRegionHandle>>;
31
+ export { LiveRegion };
@@ -0,0 +1,72 @@
1
+ "use client";
2
+ import { jsx } from "react/jsx-runtime";
3
+ import { forwardRef, useCallback, useEffect, useImperativeHandle, useRef, useState } from "react";
4
+ import { cn } from "../../lib/index.js";
5
+ const LiveRegion = /*#__PURE__*/ forwardRef(({ className, message, 'aria-live': politeness = 'polite', 'aria-atomic': atomic = true, clearAfter = 1000, debounce = 0, ...props }, ref)=>{
6
+ const [current, setCurrent] = useState({
7
+ id: 0,
8
+ text: ''
9
+ });
10
+ const debounceTimer = useRef(void 0);
11
+ const clearTimer = useRef(void 0);
12
+ const clear = useCallback(()=>{
13
+ clearTimeout(debounceTimer.current);
14
+ clearTimeout(clearTimer.current);
15
+ setCurrent((prev)=>prev.text ? {
16
+ id: prev.id + 1,
17
+ text: ''
18
+ } : prev);
19
+ }, []);
20
+ const announce = useCallback((next)=>{
21
+ clearTimeout(debounceTimer.current);
22
+ const commit = ()=>{
23
+ clearTimeout(clearTimer.current);
24
+ setCurrent((prev)=>({
25
+ id: prev.id + 1,
26
+ text: next
27
+ }));
28
+ if (clearAfter > 0) clearTimer.current = setTimeout(()=>setCurrent((prev)=>({
29
+ id: prev.id + 1,
30
+ text: ''
31
+ })), clearAfter);
32
+ };
33
+ if (debounce > 0) debounceTimer.current = setTimeout(commit, debounce);
34
+ else commit();
35
+ }, [
36
+ clearAfter,
37
+ debounce
38
+ ]);
39
+ useImperativeHandle(ref, ()=>({
40
+ announce,
41
+ clear
42
+ }), [
43
+ announce,
44
+ clear
45
+ ]);
46
+ const announceRef = useRef(announce);
47
+ announceRef.current = announce;
48
+ useEffect(()=>{
49
+ if (message) announceRef.current(message);
50
+ else clear();
51
+ }, [
52
+ message,
53
+ clear
54
+ ]);
55
+ useEffect(()=>()=>{
56
+ clearTimeout(debounceTimer.current);
57
+ clearTimeout(clearTimer.current);
58
+ }, []);
59
+ return /*#__PURE__*/ jsx("div", {
60
+ "data-slot": "live-region",
61
+ role: 'assertive' === politeness ? 'alert' : 'status',
62
+ "aria-live": politeness,
63
+ "aria-atomic": atomic,
64
+ className: cn('sr-only', className),
65
+ ...props,
66
+ children: current.text ? /*#__PURE__*/ jsx("span", {
67
+ children: current.text
68
+ }, current.id) : null
69
+ });
70
+ });
71
+ LiveRegion.displayName = 'LiveRegion';
72
+ export { LiveRegion };
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, definition)=>{
5
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
+ enumerable: true,
7
+ get: definition[key]
8
+ });
9
+ };
10
+ })();
11
+ (()=>{
12
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
13
+ })();
14
+ (()=>{
15
+ __webpack_require__.r = (exports1)=>{
16
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
17
+ value: 'Module'
18
+ });
19
+ Object.defineProperty(exports1, '__esModule', {
20
+ value: true
21
+ });
22
+ };
23
+ })();
24
+ var __webpack_exports__ = {};
25
+ __webpack_require__.r(__webpack_exports__);
26
+ __webpack_require__.d(__webpack_exports__, {
27
+ DEFAULT_LOADING_DOTS_STRINGS: ()=>DEFAULT_LOADING_DOTS_STRINGS,
28
+ LoadingDots: ()=>LoadingDots,
29
+ loadingDotsVariants: ()=>loadingDotsVariants
30
+ });
31
+ const jsx_runtime_namespaceObject = require("react/jsx-runtime");
32
+ const external_class_variance_authority_namespaceObject = require("class-variance-authority");
33
+ const external_react_namespaceObject = require("react");
34
+ const index_cjs_namespaceObject = require("../../lib/index.cjs");
35
+ const loadingDotsVariants = (0, external_class_variance_authority_namespaceObject.cva)('inline-flex shrink-0 items-end text-muted-foreground', {
36
+ variants: {
37
+ size: {
38
+ sm: 'h-2 gap-0.5 [&>[data-slot=loading-dot]]:size-1',
39
+ md: 'h-3 gap-1 [&>[data-slot=loading-dot]]:size-1.5',
40
+ lg: 'h-4 gap-1.5 [&>[data-slot=loading-dot]]:size-2'
41
+ }
42
+ },
43
+ defaultVariants: {
44
+ size: 'md'
45
+ }
46
+ });
47
+ const DOT_DELAYS = [
48
+ '[animation-delay:0ms]',
49
+ '[animation-delay:150ms]',
50
+ '[animation-delay:300ms]'
51
+ ];
52
+ const DEFAULT_LOADING_DOTS_STRINGS = {
53
+ label: 'Loading'
54
+ };
55
+ const LoadingDots = /*#__PURE__*/ external_react_namespaceObject.forwardRef(({ className, size = 'md', strings, 'aria-label': ariaLabel, ...props }, ref)=>{
56
+ const text = {
57
+ ...DEFAULT_LOADING_DOTS_STRINGS,
58
+ ...strings
59
+ };
60
+ const name = ariaLabel ?? text.label;
61
+ return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)("div", {
62
+ ref: ref,
63
+ "data-slot": "loading-dots",
64
+ "data-size": size,
65
+ role: "status",
66
+ "aria-label": name,
67
+ className: (0, index_cjs_namespaceObject.cn)(loadingDotsVariants({
68
+ size
69
+ }), className),
70
+ ...props,
71
+ children: [
72
+ DOT_DELAYS.map((delay)=>/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("span", {
73
+ "data-slot": "loading-dot",
74
+ "aria-hidden": "true",
75
+ className: (0, index_cjs_namespaceObject.cn)('animate-loading-dot rounded-full bg-current', delay)
76
+ }, delay)),
77
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("span", {
78
+ className: "sr-only",
79
+ children: name
80
+ })
81
+ ]
82
+ });
83
+ });
84
+ LoadingDots.displayName = 'LoadingDots';
85
+ exports.DEFAULT_LOADING_DOTS_STRINGS = __webpack_exports__.DEFAULT_LOADING_DOTS_STRINGS;
86
+ exports.LoadingDots = __webpack_exports__.LoadingDots;
87
+ exports.loadingDotsVariants = __webpack_exports__.loadingDotsVariants;
88
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
89
+ "DEFAULT_LOADING_DOTS_STRINGS",
90
+ "LoadingDots",
91
+ "loadingDotsVariants"
92
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
93
+ Object.defineProperty(exports, '__esModule', {
94
+ value: true
95
+ });
@@ -0,0 +1,21 @@
1
+ import { type VariantProps } from 'class-variance-authority';
2
+ import * as React from 'react';
3
+ declare const loadingDotsVariants: (props?: ({
4
+ size?: "lg" | "sm" | "md" | null | undefined;
5
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
6
+ export interface LoadingDotsStrings {
7
+ /** Accessible name of the status. */
8
+ label: string;
9
+ }
10
+ export declare const DEFAULT_LOADING_DOTS_STRINGS: LoadingDotsStrings;
11
+ export interface LoadingDotsProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'children'>, VariantProps<typeof loadingDotsVariants> {
12
+ /** Overrides for any subset of the English strings. An explicit `aria-label` wins over `label`. */
13
+ strings?: Partial<LoadingDotsStrings>;
14
+ }
15
+ /**
16
+ * Three dots with a staggered bounce, for compact waits inside a conversation such as loading
17
+ * older messages or a typing hint. The dots take `currentColor`, so set the colour with a text
18
+ * class. They hold still under `prefers-reduced-motion` (handled by `animate-loading-dot`).
19
+ */
20
+ declare const LoadingDots: React.ForwardRefExoticComponent<LoadingDotsProps & React.RefAttributes<HTMLDivElement>>;
21
+ export { LoadingDots, loadingDotsVariants };
@@ -0,0 +1,55 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { cva } from "class-variance-authority";
3
+ import { forwardRef } from "react";
4
+ import { cn } from "../../lib/index.js";
5
+ const loadingDotsVariants = cva('inline-flex shrink-0 items-end text-muted-foreground', {
6
+ variants: {
7
+ size: {
8
+ sm: 'h-2 gap-0.5 [&>[data-slot=loading-dot]]:size-1',
9
+ md: 'h-3 gap-1 [&>[data-slot=loading-dot]]:size-1.5',
10
+ lg: 'h-4 gap-1.5 [&>[data-slot=loading-dot]]:size-2'
11
+ }
12
+ },
13
+ defaultVariants: {
14
+ size: 'md'
15
+ }
16
+ });
17
+ const DOT_DELAYS = [
18
+ '[animation-delay:0ms]',
19
+ '[animation-delay:150ms]',
20
+ '[animation-delay:300ms]'
21
+ ];
22
+ const DEFAULT_LOADING_DOTS_STRINGS = {
23
+ label: 'Loading'
24
+ };
25
+ const LoadingDots = /*#__PURE__*/ forwardRef(({ className, size = 'md', strings, 'aria-label': ariaLabel, ...props }, ref)=>{
26
+ const text = {
27
+ ...DEFAULT_LOADING_DOTS_STRINGS,
28
+ ...strings
29
+ };
30
+ const name = ariaLabel ?? text.label;
31
+ return /*#__PURE__*/ jsxs("div", {
32
+ ref: ref,
33
+ "data-slot": "loading-dots",
34
+ "data-size": size,
35
+ role: "status",
36
+ "aria-label": name,
37
+ className: cn(loadingDotsVariants({
38
+ size
39
+ }), className),
40
+ ...props,
41
+ children: [
42
+ DOT_DELAYS.map((delay)=>/*#__PURE__*/ jsx("span", {
43
+ "data-slot": "loading-dot",
44
+ "aria-hidden": "true",
45
+ className: cn('animate-loading-dot rounded-full bg-current', delay)
46
+ }, delay)),
47
+ /*#__PURE__*/ jsx("span", {
48
+ className: "sr-only",
49
+ children: name
50
+ })
51
+ ]
52
+ });
53
+ });
54
+ LoadingDots.displayName = 'LoadingDots';
55
+ export { DEFAULT_LOADING_DOTS_STRINGS, LoadingDots, loadingDotsVariants };