@longline/aqua-ui 1.0.330 → 1.0.334
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.
- package/Types.d.ts +9 -1
- package/containers/Anchor/Anchor.d.ts +2 -1
- package/containers/Anchor/Anchor.js +1 -1
- package/containers/Dock/Dock.d.ts +2 -1
- package/containers/Dock/Dock.js +1 -1
- package/containers/Dock/Dockable.d.ts +2 -1
- package/containers/Dock/Dockable.js +1 -1
- package/containers/DragBar/DragBar.d.ts +2 -1
- package/containers/DragBar/DragBar.js +1 -1
- package/containers/Form/elements/BoxWrapper.js +1 -1
- package/containers/Form/elements/Hint.js +1 -1
- package/containers/Form/elements/SimpleWrapper.js +1 -1
- package/containers/GlassPane/GlassPane.d.ts +2 -1
- package/containers/GlassPane/GlassPane.js +1 -1
- package/containers/InfoBox/InfoBox.d.ts +2 -1
- package/containers/InfoBox/InfoBox.js +1 -1
- package/containers/InfoBox/elements/Content.d.ts +2 -1
- package/containers/InfoBox/elements/Content.js +1 -1
- package/containers/InfoBox/elements/Footer.d.ts +2 -1
- package/containers/InfoBox/elements/Footer.js +1 -1
- package/containers/InfoBox/elements/Header.d.ts +2 -1
- package/containers/InfoBox/elements/Header.js +1 -1
- package/containers/InfoBox/elements/Row.d.ts +4 -2
- package/containers/InfoBox/elements/Row.js +1 -1
- package/containers/List/List.d.ts +2 -1
- package/containers/List/List.js +1 -1
- package/containers/List/ListCell.d.ts +2 -1
- package/containers/List/ListCell.js +1 -1
- package/containers/List/ListRow.d.ts +2 -1
- package/containers/List/ListRow.js +1 -1
- package/containers/Message/Message.d.ts +2 -1
- package/containers/Message/Message.js +1 -1
- package/containers/Openable/Openable.d.ts +2 -1
- package/containers/Openable/Openable.js +2 -2
- package/containers/PublicRoute/Help.d.ts +2 -1
- package/containers/PublicRoute/Help.js +1 -1
- package/containers/PublicRoute/PublicRoute.d.ts +2 -1
- package/containers/PublicRoute/PublicRoute.js +1 -1
- package/containers/Tabs/Pane.d.ts +2 -1
- package/containers/Tabs/Pane.js +1 -1
- package/containers/Tabs/Tabs.d.ts +2 -1
- package/containers/Tabs/Tabs.js +1 -1
- package/controls/Chip/Chip.d.ts +2 -1
- package/controls/Chip/Chip.js +1 -1
- package/controls/CircularProgress/CircularProgress.d.ts +2 -1
- package/controls/CircularProgress/CircularProgress.js +1 -1
- package/controls/Dropzone/Dropzone.d.ts +2 -1
- package/controls/Dropzone/Dropzone.js +1 -1
- package/controls/Fab/Fab.d.ts +2 -1
- package/controls/Fab/Fab.js +1 -1
- package/controls/Ghost/Ghost.d.ts +2 -1
- package/controls/Ghost/Ghost.js +1 -1
- package/controls/Gradient/Gradient.d.ts +2 -2
- package/controls/Gradient/Gradient.js +1 -1
- package/controls/Histogram/Histogram.d.ts +2 -1
- package/controls/Histogram/Histogram.js +14 -14
- package/controls/Icon/Icon.d.ts +2 -2
- package/controls/Icon/Icon.js +1 -1
- package/controls/Key/Key.d.ts +2 -1
- package/controls/Key/Key.js +1 -1
- package/controls/LinearChart/LinearChart.d.ts +2 -1
- package/controls/LinearChart/LinearChart.js +1 -1
- package/controls/ListButton/ListButton.d.ts +2 -1
- package/controls/ListButton/ListButton.js +1 -1
- package/controls/ListView/ListView.d.ts +2 -1
- package/controls/ListView/ListView.js +1 -1
- package/controls/Mouse/Mouse.d.ts +2 -1
- package/controls/Mouse/Mouse.js +1 -1
- package/controls/PrimaryButton/PrimaryButton.d.ts +2 -1
- package/controls/PrimaryButton/PrimaryButton.js +1 -1
- package/controls/Progress/Progress.d.ts +2 -1
- package/controls/Progress/Progress.js +1 -1
- package/controls/SecondaryButton/SecondaryButton.d.ts +2 -1
- package/controls/SecondaryButton/SecondaryButton.js +1 -1
- package/controls/TabBar/Tab.d.ts +2 -1
- package/controls/TabBar/Tab.js +1 -1
- package/controls/TabBar/TabBar.d.ts +2 -1
- package/controls/TabBar/TabBar.js +1 -1
- package/controls/TertiaryButton/TertiaryButton.d.ts +2 -1
- package/controls/TertiaryButton/TertiaryButton.js +1 -1
- package/controls/ToggleButton/ToggleButton.d.ts +2 -1
- package/controls/ToggleButton/ToggleButton.js +1 -1
- package/controls/View/View.d.ts +2 -1
- package/controls/View/View.js +1 -1
- package/hooks/useSpeechAIRecorder/index.d.ts +1 -0
- package/hooks/useSpeechAIRecorder/index.js +1 -0
- package/hooks/useSpeechAIRecorder/stories/SpeechAIAudioInput.d.ts +6 -0
- package/hooks/{useAssemblyAIRecorder/stories/AssemblyAudioInput.js → useSpeechAIRecorder/stories/SpeechAIAudioInput.js} +4 -4
- package/hooks/useSpeechAIRecorder/useSpeechAIRecorder.d.ts +29 -0
- package/hooks/{useAssemblyAIRecorder/useAssemblyAIRecorder.js → useSpeechAIRecorder/useSpeechAIRecorder.js} +13 -11
- package/hooks/useTextAIStream/index.d.ts +1 -0
- package/hooks/useTextAIStream/index.js +1 -0
- package/hooks/{useOpenAIStream/stories/OpenAIStreamInput.d.ts → useTextAIStream/stories/TextAIStreamInput.d.ts} +3 -3
- package/hooks/{useOpenAIStream/stories/OpenAIStreamInput.js → useTextAIStream/stories/TextAIStreamInput.js} +6 -6
- package/hooks/useTextAIStream/useTextAIStream.d.ts +26 -0
- package/hooks/{useOpenAIStream/useOpenAIStream.js → useTextAIStream/useTextAIStream.js} +16 -4
- package/inputs/DateInput/DateInput.d.ts +2 -5
- package/inputs/Dropdown/Dropdown.d.ts +2 -5
- package/inputs/Editor/Editor.d.ts +10 -11
- package/inputs/Editor/Editor.js +1 -1
- package/inputs/Editor/buttons/{SpeechButton.d.ts → SpeechAIButton.d.ts} +2 -2
- package/inputs/Editor/buttons/{SpeechButton.js → SpeechAIButton.js} +5 -5
- package/inputs/Editor/buttons/TextAIButton.d.ts +28 -0
- package/inputs/Editor/buttons/{OpenAIButton.js → TextAIButton.js} +13 -14
- package/inputs/Editor/buttons/{OpenAIMenu.d.ts → TextAIMenu.d.ts} +2 -2
- package/inputs/Editor/buttons/{OpenAIMenu.js → TextAIMenu.js} +3 -3
- package/inputs/Editor/menu/MenuBar.d.ts +6 -6
- package/inputs/Editor/menu/MenuBar.js +7 -7
- package/inputs/Input/Input.d.ts +2 -5
- package/inputs/Input/InputWrapper.d.ts +2 -1
- package/inputs/Input/InputWrapper.js +1 -1
- package/inputs/MonthRange/MonthRange.d.ts +2 -5
- package/inputs/Selector/Selector.d.ts +2 -5
- package/inputs/Slider/Slider.d.ts +2 -5
- package/inputs/Textarea/Textarea.d.ts +2 -5
- package/map/Map/Map.d.ts +2 -1
- package/map/Map/Map.js +1 -1
- package/map/PositionsManager/PositionBox.d.ts +2 -1
- package/map/PositionsManager/PositionBox.js +1 -1
- package/map/controls/CompassButton/CompassButton.js +3 -3
- package/map/controls/FullscreenButton/FullscreenButton.js +1 -1
- package/map/controls/Geocoder/Geocoder.js +1 -1
- package/map/controls/MapLoader/MapLoader.js +1 -1
- package/map/controls/ScaleControl/ScaleControl.js +1 -1
- package/map/controls/ZoomInButton/ZoomInButton.js +1 -1
- package/map/controls/ZoomOutButton/ZoomOutButton.js +1 -1
- package/map/controls/base/MapButton/MapButton.d.ts +0 -4
- package/map/controls/base/MapButton/MapButton.js +2 -2
- package/map/controls/base/MapControl/MapControl.d.ts +2 -1
- package/map/controls/base/MapControl/MapControl.js +2 -2
- package/modules/Filter/Filter.d.ts +2 -1
- package/modules/Filter/Filter.js +1 -1
- package/modules/MainMenu/Item.d.ts +2 -1
- package/modules/MainMenu/Item.js +1 -1
- package/modules/MainMenu/MainMenu.d.ts +2 -1
- package/modules/MainMenu/MainMenu.js +1 -1
- package/modules/Root/Sidebar.js +1 -1
- package/package.json +4 -5
- package/services/Dialog/Dialog.d.ts +2 -1
- package/services/Dialog/Dialog.js +2 -2
- package/services/Dialog/DialogWindow.d.ts +2 -1
- package/services/Dialog/DialogWindow.js +1 -1
- package/hooks/useAssemblyAIRecorder/index.d.ts +0 -1
- package/hooks/useAssemblyAIRecorder/index.js +0 -1
- package/hooks/useAssemblyAIRecorder/stories/AssemblyAudioInput.d.ts +0 -6
- package/hooks/useAssemblyAIRecorder/useAssemblyAIRecorder.d.ts +0 -27
- package/hooks/useOpenAIRecorder/index.d.ts +0 -1
- package/hooks/useOpenAIRecorder/index.js +0 -1
- package/hooks/useOpenAIRecorder/old/AudioInputNoHook.d.ts +0 -8
- package/hooks/useOpenAIRecorder/old/AudioInputNoHook.js +0 -192
- package/hooks/useOpenAIRecorder/old/AudioInputStandardMedia.d.ts +0 -5
- package/hooks/useOpenAIRecorder/old/AudioInputStandardMedia.js +0 -170
- package/hooks/useOpenAIRecorder/stories/OpenAIAudioInput.d.ts +0 -8
- package/hooks/useOpenAIRecorder/stories/OpenAIAudioInput.js +0 -17
- package/hooks/useOpenAIRecorder/useOpenAIRecorder.d.ts +0 -22
- package/hooks/useOpenAIRecorder/useOpenAIRecorder.js +0 -223
- package/hooks/useOpenAIStream/index.d.ts +0 -1
- package/hooks/useOpenAIStream/index.js +0 -1
- package/hooks/useOpenAIStream/useOpenAIStream.d.ts +0 -14
- package/inputs/Editor/buttons/OpenAIButton.d.ts +0 -29
- /package/hooks/{useAssemblyAIRecorder → useSpeechAIRecorder}/SpeechManager.d.ts +0 -0
- /package/hooks/{useAssemblyAIRecorder → useSpeechAIRecorder}/SpeechManager.js +0 -0
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
|
|
2
|
+
import { ITestable } from '../../Types';
|
|
3
|
+
interface IEditorProps extends ITestable {
|
|
3
4
|
/** @ignore */
|
|
4
5
|
className?: string;
|
|
5
6
|
/**
|
|
@@ -49,15 +50,16 @@ interface IEditorProps {
|
|
|
49
50
|
*/
|
|
50
51
|
codeButtons?: boolean;
|
|
51
52
|
/**
|
|
52
|
-
* URL for
|
|
53
|
-
* If not present, no
|
|
53
|
+
* URL for the back-end Text AI endpoint (streamed text generation).
|
|
54
|
+
* If not present, no Text AI controls will be available.
|
|
54
55
|
*/
|
|
55
|
-
|
|
56
|
+
textAIurl?: string;
|
|
56
57
|
/**
|
|
57
|
-
* URL for
|
|
58
|
-
*
|
|
58
|
+
* URL for the back-end Speech AI endpoint (issues a temporary streaming
|
|
59
|
+
* token for the speech-to-text provider).
|
|
60
|
+
* If not present, no Speech AI controls will be available.
|
|
59
61
|
*/
|
|
60
|
-
|
|
62
|
+
speechAIurl?: string;
|
|
61
63
|
/**
|
|
62
64
|
* Optional Bearer token for authenticated AI requests.
|
|
63
65
|
*/
|
|
@@ -65,10 +67,7 @@ interface IEditorProps {
|
|
|
65
67
|
/**
|
|
66
68
|
* Listeners are notified whenever the user interacts with the Editor.
|
|
67
69
|
*/
|
|
68
|
-
onChange?: (value: any) => void;
|
|
69
|
-
* Test ID for Playwright/testing. Forwarded to the root DOM element.
|
|
70
|
-
*/
|
|
71
|
-
'data-testid'?: string;
|
|
70
|
+
onChange?: (value: any) => void;
|
|
72
71
|
}
|
|
73
72
|
declare const Editor: {
|
|
74
73
|
({ fluid, error, disabled, transparent, ghost, allowFullscreen, codeButtons, ...props }: IEditorProps): React.JSX.Element;
|
package/inputs/Editor/Editor.js
CHANGED
|
@@ -91,7 +91,7 @@ var EditorBase = function (props) {
|
|
|
91
91
|
React.createElement("div", { "data-testid": props['data-testid'] || "Editor", className: props.className, ref: wrapperRef },
|
|
92
92
|
React.createElement(OverlayScrollbarsComponent, { className: "scroller ".concat(fullscreen ? 'fullscreen' : ''), defer: true, options: { scrollbars: { theme: 'os-theme-dark', autoHide: 'leave' } } },
|
|
93
93
|
!props.disabled && !props.ghost &&
|
|
94
|
-
React.createElement(MenuBar, { allowFullscreen: props.allowFullscreen, codeButtons: props.codeButtons, fullscreen: fullscreen, editor: editor, onToggleFullscreen: handleToggleFullscreen,
|
|
94
|
+
React.createElement(MenuBar, { allowFullscreen: props.allowFullscreen, codeButtons: props.codeButtons, fullscreen: fullscreen, editor: editor, onToggleFullscreen: handleToggleFullscreen, textAIurl: props.textAIurl, speechAIurl: props.speechAIurl, authToken: props.authToken }),
|
|
95
95
|
React.createElement(EditorContent, { editor: editor, ref: setRef })))));
|
|
96
96
|
};
|
|
97
97
|
var pulse = keyframes(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n from {\n opacity: .15;\n }\n to {\n opacity: 1;\n }\n"], ["\n from {\n opacity: .15;\n }\n to {\n opacity: 1;\n }\n"])));
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import React, { useEffect, useRef } from 'react';
|
|
2
2
|
import { MenuButton } from '../menu/MenuButton';
|
|
3
3
|
import { SVG } from '../../../svg';
|
|
4
|
-
import {
|
|
5
|
-
var
|
|
4
|
+
import { useSpeechAIRecorder } from '../../../hooks/useSpeechAIRecorder';
|
|
5
|
+
var SpeechAIButton = function (props) {
|
|
6
6
|
var fromRef = useRef(null);
|
|
7
7
|
var transcriptRef = useRef("");
|
|
8
8
|
var onTranscript = function (text) {
|
|
@@ -12,7 +12,7 @@ var SpeechButton = function (props) {
|
|
|
12
12
|
view.dispatch(transaction);
|
|
13
13
|
transcriptRef.current = text;
|
|
14
14
|
};
|
|
15
|
-
var _a =
|
|
15
|
+
var _a = useSpeechAIRecorder(props.url, onTranscript, props.authToken), recordingStatus = _a.recordingStatus, toggleRecording = _a.toggleRecording;
|
|
16
16
|
useEffect(function () {
|
|
17
17
|
if (recordingStatus == 'recording') {
|
|
18
18
|
props.editor.setOptions({ editable: false });
|
|
@@ -26,6 +26,6 @@ var SpeechButton = function (props) {
|
|
|
26
26
|
var handleClick = function () {
|
|
27
27
|
toggleRecording();
|
|
28
28
|
};
|
|
29
|
-
return (React.createElement(MenuButton, { editor: props.editor, hint: React.createElement("span", { style: { whiteSpace: "nowrap" } }, "
|
|
29
|
+
return (React.createElement(MenuButton, { editor: props.editor, hint: React.createElement("span", { style: { whiteSpace: "nowrap" } }, "Speech-to-text"), onClick: handleClick, disabled: false, active: recordingStatus == 'connecting', highlighted: recordingStatus == 'recording', icon: { url: SVG.Icons.Microphone } }));
|
|
30
30
|
};
|
|
31
|
-
export {
|
|
31
|
+
export { SpeechAIButton };
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Editor } from '@tiptap/react';
|
|
3
|
+
interface IProps {
|
|
4
|
+
editor: Editor;
|
|
5
|
+
/**
|
|
6
|
+
* URL for AI requests.
|
|
7
|
+
*/
|
|
8
|
+
url: string;
|
|
9
|
+
/**
|
|
10
|
+
* Optional Bearer token for authenticated requests.
|
|
11
|
+
*/
|
|
12
|
+
authToken?: string;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* `TextAIButton` provides a menu button that allows the user to run various
|
|
16
|
+
* AI-powered text transformations on selected editor content.
|
|
17
|
+
*
|
|
18
|
+
* Available transformations include:
|
|
19
|
+
* - Summarizing selected content
|
|
20
|
+
* - Extracting key points
|
|
21
|
+
* - Translating
|
|
22
|
+
*
|
|
23
|
+
* When triggered, the selected content is cut, sent to the configured Text AI
|
|
24
|
+
* back-end, and replaced with the transformed version. Streaming support
|
|
25
|
+
* allows real-time insertion with animated progress.
|
|
26
|
+
*/
|
|
27
|
+
declare const TextAIButton: (props: IProps) => React.JSX.Element;
|
|
28
|
+
export { TextAIButton };
|
|
@@ -37,24 +37,23 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
37
37
|
import React, { useState } from 'react';
|
|
38
38
|
import { marked } from 'marked';
|
|
39
39
|
import { DOMParser as ProseMirrorDOMParser } from 'prosemirror-model';
|
|
40
|
-
import {
|
|
41
|
-
import {
|
|
40
|
+
import { useTextAIStream } from '../../../hooks/useTextAIStream';
|
|
41
|
+
import { TextAIMenu } from './TextAIMenu';
|
|
42
42
|
/**
|
|
43
|
-
* `
|
|
44
|
-
* AI-powered transformations on selected editor content.
|
|
43
|
+
* `TextAIButton` provides a menu button that allows the user to run various
|
|
44
|
+
* AI-powered text transformations on selected editor content.
|
|
45
45
|
*
|
|
46
46
|
* Available transformations include:
|
|
47
|
-
* - Telling a joke
|
|
48
47
|
* - Summarizing selected content
|
|
49
48
|
* - Extracting key points
|
|
50
|
-
* - Translating
|
|
49
|
+
* - Translating
|
|
51
50
|
*
|
|
52
|
-
* When triggered, the selected content is cut, sent to
|
|
53
|
-
* with the transformed version. Streaming support
|
|
54
|
-
* with animated progress.
|
|
51
|
+
* When triggered, the selected content is cut, sent to the configured Text AI
|
|
52
|
+
* back-end, and replaced with the transformed version. Streaming support
|
|
53
|
+
* allows real-time insertion with animated progress.
|
|
55
54
|
*/
|
|
56
|
-
var
|
|
57
|
-
var
|
|
55
|
+
var TextAIButton = function (props) {
|
|
56
|
+
var streamTextAI = useTextAIStream(props.url, props.authToken).stream;
|
|
58
57
|
var _a = useState(false), streaming = _a[0], setStreaming = _a[1];
|
|
59
58
|
// The DOM parser is only created once, then used many times as content
|
|
60
59
|
// is streamed in.
|
|
@@ -154,7 +153,7 @@ var OpenAIButton = function (props) {
|
|
|
154
153
|
// Create initial node.
|
|
155
154
|
_a.sent();
|
|
156
155
|
text = "";
|
|
157
|
-
return [4 /*yield*/,
|
|
156
|
+
return [4 /*yield*/, streamTextAI(prompt, function (chunk) { return __awaiter(void 0, void 0, void 0, function () {
|
|
158
157
|
return __generator(this, function (_a) {
|
|
159
158
|
switch (_a.label) {
|
|
160
159
|
case 0:
|
|
@@ -203,6 +202,6 @@ var OpenAIButton = function (props) {
|
|
|
203
202
|
props.editor.setOptions({ editable: true });
|
|
204
203
|
});
|
|
205
204
|
};
|
|
206
|
-
return (React.createElement(
|
|
205
|
+
return (React.createElement(TextAIMenu, { editor: props.editor, onClick: function (p) { return transformStream(p); }, animated: streaming }));
|
|
207
206
|
};
|
|
208
|
-
export {
|
|
207
|
+
export { TextAIButton };
|
|
@@ -5,5 +5,5 @@ interface IProps {
|
|
|
5
5
|
onClick: (prompt: (text: string) => string) => void;
|
|
6
6
|
animated: boolean;
|
|
7
7
|
}
|
|
8
|
-
declare const
|
|
9
|
-
export {
|
|
8
|
+
declare const TextAIMenu: (props: IProps) => React.JSX.Element;
|
|
9
|
+
export { TextAIMenu };
|
|
@@ -4,7 +4,7 @@ import { MenuButton } from '../menu/MenuButton';
|
|
|
4
4
|
import { List, ListRow } from '../../../containers/List';
|
|
5
5
|
import { SVG } from '../../../svg';
|
|
6
6
|
import { Icon } from '../../../controls/Icon';
|
|
7
|
-
var
|
|
7
|
+
var TextAIMenu = function (props) {
|
|
8
8
|
var _a = React.useState(false), open = _a[0], setOpen = _a[1];
|
|
9
9
|
var _b = React.useState(false), langOpen = _b[0], setLangOpen = _b[1];
|
|
10
10
|
// With an empty selection, some AI commands cannot work, because they
|
|
@@ -19,7 +19,7 @@ var OpenAIMenu = function (props) {
|
|
|
19
19
|
setLangOpen(false);
|
|
20
20
|
}, [open]);
|
|
21
21
|
var languages = ["US English", "UK English", "Portuguese", "Spanish", "French", "German", "Dutch", "Simplified Chinese"];
|
|
22
|
-
return (React.createElement(Openable, { width: 300, toggle: React.createElement(MenuButton, { editor: props.editor, onClick: function () { return setOpen(!open); }, hint: React.createElement("span", { style: { whiteSpace: "nowrap" } }, "
|
|
22
|
+
return (React.createElement(Openable, { width: 300, toggle: React.createElement(MenuButton, { editor: props.editor, onClick: function () { return setOpen(!open); }, hint: React.createElement("span", { style: { whiteSpace: "nowrap" } }, "Text AI"), icon: { url: SVG.Editor.AI, animated: props.animated } }), content: React.createElement("div", { style: { display: 'flex', gap: '8px' } },
|
|
23
23
|
React.createElement("div", { style: { minWidth: '150px' } },
|
|
24
24
|
React.createElement(List, { maxItems: 4, contract: true },
|
|
25
25
|
React.createElement(ListRow, { disabled: selectionIsEmpty, onClick: function () { return handleClick(function (text) {
|
|
@@ -39,4 +39,4 @@ var OpenAIMenu = function (props) {
|
|
|
39
39
|
}); } }, lang);
|
|
40
40
|
})))), open: open, onClose: function () { return setOpen(false); } }));
|
|
41
41
|
};
|
|
42
|
-
export {
|
|
42
|
+
export { TextAIMenu };
|
|
@@ -16,15 +16,15 @@ interface IProps {
|
|
|
16
16
|
*/
|
|
17
17
|
codeButtons?: boolean;
|
|
18
18
|
/**
|
|
19
|
-
* URL for
|
|
20
|
-
* If not present, no AI controls will be available.
|
|
19
|
+
* URL for the back-end Text AI endpoint.
|
|
20
|
+
* If not present, no Text AI controls will be available.
|
|
21
21
|
*/
|
|
22
|
-
|
|
22
|
+
textAIurl?: string;
|
|
23
23
|
/**
|
|
24
|
-
* URL for
|
|
25
|
-
* If not present, no AI controls will be available.
|
|
24
|
+
* URL for the back-end Speech AI endpoint.
|
|
25
|
+
* If not present, no Speech AI controls will be available.
|
|
26
26
|
*/
|
|
27
|
-
|
|
27
|
+
speechAIurl?: string;
|
|
28
28
|
/**
|
|
29
29
|
* Optional Bearer token for authenticated AI requests.
|
|
30
30
|
*/
|
|
@@ -13,8 +13,8 @@ import { OrderedListButton } from '../buttons/OrderedListButton';
|
|
|
13
13
|
import { BulletListButton } from '../buttons/BulletListButton';
|
|
14
14
|
import { CodeBlockButton } from '../buttons/CodeBlockButton';
|
|
15
15
|
import { FullscreenButton } from '../buttons/FullscreenButton';
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
16
|
+
import { TextAIButton } from '../buttons/TextAIButton';
|
|
17
|
+
import { SpeechAIButton } from '../buttons/SpeechAIButton';
|
|
18
18
|
var MenuBarBase = function (props) {
|
|
19
19
|
if (!props.editor) {
|
|
20
20
|
return null;
|
|
@@ -31,11 +31,11 @@ var MenuBarBase = function (props) {
|
|
|
31
31
|
React.createElement(MenuSeparator, null),
|
|
32
32
|
React.createElement(CodeButton, { editor: props.editor }),
|
|
33
33
|
React.createElement(CodeBlockButton, { editor: props.editor })),
|
|
34
|
-
(props.
|
|
35
|
-
props.
|
|
36
|
-
React.createElement(
|
|
37
|
-
props.
|
|
38
|
-
React.createElement(
|
|
34
|
+
(props.textAIurl || props.allowFullscreen) && React.createElement(MenuSeparator, null),
|
|
35
|
+
props.textAIurl &&
|
|
36
|
+
React.createElement(TextAIButton, { url: props.textAIurl, editor: props.editor, authToken: props.authToken }),
|
|
37
|
+
props.speechAIurl &&
|
|
38
|
+
React.createElement(SpeechAIButton, { url: props.speechAIurl, editor: props.editor, authToken: props.authToken }),
|
|
39
39
|
props.allowFullscreen &&
|
|
40
40
|
React.createElement(FullscreenButton, { fullscreen: props.fullscreen, editor: props.editor, onClick: props.onToggleFullscreen }))));
|
|
41
41
|
};
|
package/inputs/Input/Input.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { IIconProps } from '../../controls/Icon';
|
|
3
|
-
|
|
3
|
+
import { ITestable } from '../../Types';
|
|
4
|
+
interface IInputProps extends ITestable {
|
|
4
5
|
/** @ignore */
|
|
5
6
|
className?: string;
|
|
6
7
|
/** @ignore */
|
|
@@ -128,10 +129,6 @@ interface IInputProps {
|
|
|
128
129
|
* Listeners are notified when the Input receives focus.
|
|
129
130
|
*/
|
|
130
131
|
onFocus?: () => void;
|
|
131
|
-
/**
|
|
132
|
-
* Test ID for Playwright/testing. Forwarded to the root DOM element.
|
|
133
|
-
*/
|
|
134
|
-
'data-testid'?: string;
|
|
135
132
|
}
|
|
136
133
|
declare const Input: {
|
|
137
134
|
(props: IInputProps): React.JSX.Element;
|
|
@@ -42,7 +42,7 @@ var InputWrapperBase = function (props) {
|
|
|
42
42
|
else if (props.icon != null) {
|
|
43
43
|
icon = (React.createElement(Icon, __assign({ size: 17, color: (_a = props.icon.color) !== null && _a !== void 0 ? _a : theme.colors.primary[3] }, props.icon)));
|
|
44
44
|
}
|
|
45
|
-
return (React.createElement("div", { "data-testid": "InputWrapper", className: props.className, onClick: props.onClick },
|
|
45
|
+
return (React.createElement("div", { "data-testid": props['data-testid'] || "InputWrapper", className: props.className, onClick: props.onClick },
|
|
46
46
|
props.ghost && React.createElement(Ghost, { style: { position: 'absolute', left: 0, top: 0, right: 0, bottom: 0, zIndex: 100 } }),
|
|
47
47
|
icon && !props.ghost && props.iconPosition == 'left' && icon,
|
|
48
48
|
React.createElement(Content, null, props.children),
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
|
|
2
|
+
import { ITestable } from '../../Types';
|
|
3
|
+
interface IMonthRangeProps extends ITestable {
|
|
3
4
|
/** @ignore */
|
|
4
5
|
className?: string;
|
|
5
6
|
/**
|
|
@@ -63,10 +64,6 @@ interface IMonthRangeProps {
|
|
|
63
64
|
* Listeners are notified when the `MonthRange` receives focus.
|
|
64
65
|
*/
|
|
65
66
|
onFocus?: () => void;
|
|
66
|
-
/**
|
|
67
|
-
* Test ID for Playwright/testing. Forwarded to the root DOM element.
|
|
68
|
-
*/
|
|
69
|
-
'data-testid'?: string;
|
|
70
67
|
}
|
|
71
68
|
/**
|
|
72
69
|
* A `MonthRange` allows a selection of a time period, measured in months.
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { ISelectorProps } from './ISelectorProps';
|
|
3
|
+
import { ITestable } from '../../Types';
|
|
3
4
|
type TCheckboxType = 'check' | 'toggle' | 'slider' | 'circle';
|
|
4
|
-
interface IProps extends ISelectorProps {
|
|
5
|
+
interface IProps extends ISelectorProps, ITestable {
|
|
5
6
|
/** @ignore */
|
|
6
7
|
className?: string;
|
|
7
8
|
/**
|
|
@@ -25,10 +26,6 @@ interface IProps extends ISelectorProps {
|
|
|
25
26
|
* If set, checkbox has a dark label.
|
|
26
27
|
*/
|
|
27
28
|
dark?: boolean;
|
|
28
|
-
/**
|
|
29
|
-
* Test ID for Playwright/testing. Forwarded to the root DOM element.
|
|
30
|
-
*/
|
|
31
|
-
'data-testid'?: string;
|
|
32
29
|
}
|
|
33
30
|
/**
|
|
34
31
|
* A Selector can be used to create either a HTML checkbox or a HTML radio button.
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
|
|
2
|
+
import { ITestable } from '../../Types';
|
|
3
|
+
interface ISliderProps extends ITestable {
|
|
3
4
|
/** @ignore */
|
|
4
5
|
className?: string;
|
|
5
6
|
/**
|
|
@@ -72,10 +73,6 @@ interface ISliderProps {
|
|
|
72
73
|
* Event is triggered when slider's value changes.
|
|
73
74
|
*/
|
|
74
75
|
onChange?: (value: number) => void;
|
|
75
|
-
/**
|
|
76
|
-
* Test ID for Playwright/testing. Forwarded to the root DOM element.
|
|
77
|
-
*/
|
|
78
|
-
'data-testid'?: string;
|
|
79
76
|
}
|
|
80
77
|
/**
|
|
81
78
|
* Sliders allow users to view and select a value (or range) along a track.
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
+
import { ITestable } from '../../Types';
|
|
2
3
|
/**
|
|
3
4
|
* Textarea validates itself using the HTML validation API whenever its
|
|
4
5
|
* content changes. Listeners can use onValidate to obtain the resulting
|
|
5
6
|
* ValidityState.
|
|
6
7
|
*/
|
|
7
|
-
interface ITextareaProps {
|
|
8
|
+
interface ITextareaProps extends ITestable {
|
|
8
9
|
/** @ignore */
|
|
9
10
|
className?: string;
|
|
10
11
|
/**
|
|
@@ -69,10 +70,6 @@ interface ITextareaProps {
|
|
|
69
70
|
* Listeners are notified whenever the user interacts with the Textarea.
|
|
70
71
|
*/
|
|
71
72
|
onChange?: (value: any) => void;
|
|
72
|
-
/**
|
|
73
|
-
* Test ID for Playwright/testing. Forwarded to the root DOM element.
|
|
74
|
-
*/
|
|
75
|
-
'data-testid'?: string;
|
|
76
73
|
}
|
|
77
74
|
/**
|
|
78
75
|
* `Textarea` encapsulated and styles the `<textarea>` element. Like `Input`,
|
package/map/Map/Map.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { MapMouseEvent, Map as OriginalMap } from 'mapbox-gl';
|
|
3
3
|
import { ViewState, ViewStateChangeEvent } from 'react-map-gl/mapbox';
|
|
4
|
-
|
|
4
|
+
import { ITestable } from '../../Types';
|
|
5
|
+
interface IMapProps extends ITestable {
|
|
5
6
|
/** @ignore */
|
|
6
7
|
children?: React.ReactNode;
|
|
7
8
|
/**
|
package/map/Map/Map.js
CHANGED
|
@@ -218,7 +218,7 @@ var MapBase = function (props) {
|
|
|
218
218
|
if (props.onMove)
|
|
219
219
|
props.onMove(e);
|
|
220
220
|
};
|
|
221
|
-
return (React.createElement(GLMap, __assign({ "data-testid": "Map" }, viewState, { mapboxAccessToken: props.token, style: { width: '100%', height: '100%', minHeight: '300px', font: theme.font.bodyMedium }, logoPosition: props.logoPosition, mapStyle: props.style, minZoom: props.minZoom, maxZoom: props.maxZoom, interactiveLayerIds: props.interactiveLayerIds, doubleClickZoom: props.doubleClickZoom, cursor: props.cursor, preserveDrawingBuffer: props.preserveDrawingBuffer, fadeDuration: props.fadeDuration, onMove: handleMove, onMoveEnd: props.onMoveEnd, onMouseMove: props.onMouseMove, onMouseLeave: props.onMouseLeave, onLoad: handleLoad, onClick: props.onClick, onDblClick: props.onDblClick }),
|
|
221
|
+
return (React.createElement(GLMap, __assign({ "data-testid": props['data-testid'] || "Map" }, viewState, { mapboxAccessToken: props.token, style: { width: '100%', height: '100%', minHeight: '300px', font: theme.font.bodyMedium }, logoPosition: props.logoPosition, mapStyle: props.style, minZoom: props.minZoom, maxZoom: props.maxZoom, interactiveLayerIds: props.interactiveLayerIds, doubleClickZoom: props.doubleClickZoom, cursor: props.cursor, preserveDrawingBuffer: props.preserveDrawingBuffer, fadeDuration: props.fadeDuration, onMove: handleMove, onMoveEnd: props.onMoveEnd, onMouseMove: props.onMouseMove, onMouseLeave: props.onMouseLeave, onLoad: handleLoad, onClick: props.onClick, onDblClick: props.onDblClick }),
|
|
222
222
|
props.clipped && React.createElement(React.Fragment, null,
|
|
223
223
|
React.createElement(Source, { type: "raster", tiles: ["https://api.mapbox.com/raster/v1/mapbox.mapbox-terrain-dem-v1/{z}/{x}/{y}.webp?access_token=".concat(props.token)] },
|
|
224
224
|
React.createElement(Layer, { id: "overlay", type: "raster" })),
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
+
import { ITestable } from '../../Types';
|
|
2
3
|
interface IPosition {
|
|
3
4
|
lng: number;
|
|
4
5
|
lat: number;
|
|
5
6
|
zoom: number;
|
|
6
7
|
}
|
|
7
|
-
interface IPositionBoxProps {
|
|
8
|
+
interface IPositionBoxProps extends ITestable {
|
|
8
9
|
coord: IPosition;
|
|
9
10
|
onMove: (x: number, y: number) => void;
|
|
10
11
|
onDelete: () => void;
|
|
@@ -52,7 +52,7 @@ var PositionBox = function (props) {
|
|
|
52
52
|
console.error("Could not write to clipboard: context not secure.");
|
|
53
53
|
}
|
|
54
54
|
};
|
|
55
|
-
return (React.createElement(Dockable, { latitude: props.coord.lat, longitude: props.coord.lng, offsetX: -9, offsetY: -38 },
|
|
55
|
+
return (React.createElement(Dockable, { "data-testid": props['data-testid'] || 'PositionBox', latitude: props.coord.lat, longitude: props.coord.lng, offsetX: -9, offsetY: -38 },
|
|
56
56
|
React.createElement(Wrapper, { ref: wrapperRef },
|
|
57
57
|
React.createElement(Icon, { onClick: props.onDelete },
|
|
58
58
|
React.createElement(Target, null,
|
|
@@ -31,11 +31,11 @@ import { MapButton } from '../base/MapButton';
|
|
|
31
31
|
import { useViewState } from '../../Map';
|
|
32
32
|
import { Mouse } from '../../../controls/Mouse';
|
|
33
33
|
import { Key } from '../../../controls/Key';
|
|
34
|
-
var CompassButtonBase = function (
|
|
34
|
+
var CompassButtonBase = function (props) {
|
|
35
35
|
var viewState = useViewState();
|
|
36
36
|
var map = useMap().current;
|
|
37
|
-
return (React.createElement(MapButton, __assign({ "data-testid": "CompassButton", onClick: function () { map.rotateTo(0); map.resetNorthPitch(); } },
|
|
38
|
-
React.createElement("div", { style: { transform: "rotateX(".concat(
|
|
37
|
+
return (React.createElement(MapButton, __assign({ "data-testid": props['data-testid'] || "CompassButton", onClick: function () { map.rotateTo(0); map.resetNorthPitch(); } }, props),
|
|
38
|
+
React.createElement("div", { style: { transform: "rotateX(".concat(props.visualizePitch ? viewState.pitch : 0, "deg)") } },
|
|
39
39
|
React.createElement("svg", { style: { transform: "rotateZ(".concat(-viewState.bearing, "deg)") }, xmlns: "http://www.w3.org/2000/svg", x: "0px", y: "0px", viewBox: "0 0 1000 1000" },
|
|
40
40
|
React.createElement("polygon", { className: "tip", points: "100,1000 500,0 900,1000 500,700 " }),
|
|
41
41
|
React.createElement("polygon", { className: "arrow", points: "500,0 423,192.6 500,351.6 577,192.6 " })))));
|
|
@@ -59,7 +59,7 @@ var FullscreenButton = function (_a) {
|
|
|
59
59
|
window.document.exitFullscreen();
|
|
60
60
|
}
|
|
61
61
|
};
|
|
62
|
-
return (React.createElement(MapButton, __assign({ "data-testid": "FullscreenButton", disabled: !checkFullscreenSupport(), onClick: toggle, hint: hint }, props),
|
|
62
|
+
return (React.createElement(MapButton, __assign({ "data-testid": props['data-testid'] || "FullscreenButton", disabled: !checkFullscreenSupport(), onClick: toggle, hint: hint }, props),
|
|
63
63
|
React.createElement("svg", { width: "100", height: "100", viewBox: "0 0 448 512", xmlns: "http://www.w3.org/2000/svg" },
|
|
64
64
|
React.createElement("path", { d: "M32 32C14.3 32 0 46.3 0 64v96c0 17.7 14.3 32 32 32s32-14.3 32-32V96h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H32zM64 352c0-17.7-14.3-32-32-32s-32 14.3-32 32v96c0 17.7 14.3 32 32 32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H64V352zM320 32c-17.7 0-32 14.3-32 32s14.3 32 32 32h64v64c0 17.7 14.3 32 32 32s32-14.3 32-32V64c0-17.7-14.3-32-32-32H320zM448 352c0-17.7-14.3-32-32-32s-32 14.3-32 32v64H320c-17.7 0-32 14.3-32 32s14.3 32 32 32h96c17.7 0 32-14.3 32-32V352z" }))));
|
|
65
65
|
};
|
|
@@ -129,7 +129,7 @@ var GeocoderBase = function (props) {
|
|
|
129
129
|
break;
|
|
130
130
|
}
|
|
131
131
|
};
|
|
132
|
-
return (React.createElement(MapControl, { "data-testid": "Geocoder", x: props.x, y: props.y },
|
|
132
|
+
return (React.createElement(MapControl, { "data-testid": props['data-testid'] || "Geocoder", x: props.x, y: props.y },
|
|
133
133
|
React.createElement("div", { className: props.className, onKeyDown: function (e) { return handleKeyDown(e); }, ref: wrapperRef },
|
|
134
134
|
React.createElement(GeocoderSelector, { placeholder: props.placeholder, searchIcon: props.searchIcon, value: q, onChange: handleChange }),
|
|
135
135
|
features.length > 0 && React.createElement(GeocoderList, { upwards: props.upwards }, features.map(function (f, idx) {
|
|
@@ -30,7 +30,7 @@ import { MapControl } from '../base/MapControl';
|
|
|
30
30
|
var DEFAULT_SIZE = 40; // Default control size (px)
|
|
31
31
|
var DEFAULT_COLOR = "white"; // Default control color
|
|
32
32
|
var MapLoaderBase = function (props) {
|
|
33
|
-
return (React.createElement(MapControl, { "data-testid": "MapLoader", x: props.x, y: props.y },
|
|
33
|
+
return (React.createElement(MapControl, { "data-testid": props['data-testid'] || "MapLoader", x: props.x, y: props.y },
|
|
34
34
|
React.createElement("div", { className: props.className },
|
|
35
35
|
React.createElement(Svg, { width: "1792", height: "1792", viewBox: "0 0 1792 1792", xmlns: "http://www.w3.org/2000/svg" },
|
|
36
36
|
React.createElement("path", { d: "M1760 896q0 176-68.5 336t-184 275.5-275.5 184-336 68.5-336-68.5-275.5-184-184-275.5-68.5-336q0-213 97-398.5t265-305.5 374-151v228q-221 45-366.5 221t-145.5 406q0 130 51 248.5t136.5 204 204 136.5 248.5 51 248.5-51 204-136.5 136.5-204 51-248.5q0-230-145.5-406t-366.5-221v-228q206 31 374 151t265 305.5 97 398.5z" })))));
|
|
@@ -72,7 +72,7 @@ var ScaleControlBase = function (props) {
|
|
|
72
72
|
var meters = width * meterspx;
|
|
73
73
|
var dist = getRoundedMeters(meters);
|
|
74
74
|
width = width * dist / meters;
|
|
75
|
-
return (React.createElement(MapControl, { "data-testid": "ScaleControl", x: props.x, y: props.y },
|
|
75
|
+
return (React.createElement(MapControl, { "data-testid": props['data-testid'] || "ScaleControl", x: props.x, y: props.y },
|
|
76
76
|
React.createElement("div", { className: props.className, style: { width: "".concat(width, "px") } }, getHumanText(dist))));
|
|
77
77
|
};
|
|
78
78
|
var ScaleControlStyled = styled(ScaleControlBase)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n // Size:\n box-sizing: border-box;\n height: 20px;\n padding-left: 5px;\n\n // Appearance:\n border: solid 2px #333333;\n border-top: none;\n user-select: none;\n pointer-events: none;\n background-color: #C7C7C7;\n font-size: 10px; /* TODO: Not a theme font size. */\n color: #333;\n white-space: nowrap;\n opacity: 0.8;\n transition: width ease-in-out 100ms;\n"], ["\n // Size:\n box-sizing: border-box;\n height: 20px;\n padding-left: 5px;\n\n // Appearance:\n border: solid 2px #333333;\n border-top: none;\n user-select: none;\n pointer-events: none;\n background-color: #C7C7C7;\n font-size: 10px; /* TODO: Not a theme font size. */\n color: #333;\n white-space: nowrap;\n opacity: 0.8;\n transition: width ease-in-out 100ms;\n"
|
|
@@ -49,7 +49,7 @@ var ZoomInButton = function (_a) {
|
|
|
49
49
|
" Zoom in") : _b, props = __rest(_a, ["hint"]);
|
|
50
50
|
var viewState = useViewState();
|
|
51
51
|
var map = useMap().current;
|
|
52
|
-
return (React.createElement(MapButton, __assign({ "data-testid": "ZoomInButton", disabled: viewState.zoom >= map.getMaxZoom(), onClick: function () { return map.zoomIn(); }, hint: hint }, props),
|
|
52
|
+
return (React.createElement(MapButton, __assign({ "data-testid": props['data-testid'] || "ZoomInButton", disabled: viewState.zoom >= map.getMaxZoom(), onClick: function () { return map.zoomIn(); }, hint: hint }, props),
|
|
53
53
|
React.createElement("svg", { width: "100", height: "100", viewBox: "0 0 100 100", xmlns: "http://www.w3.org/2000/svg" },
|
|
54
54
|
React.createElement("path", { d: "M100,43.2v13.6c0,1.9-0.7,3.5-2,4.8c-1.3,1.3-2.9,2-4.8,2H63.6v29.5c0,1.9-0.7,3.5-2,4.8c-1.3,1.3-2.9,2-4.8,2H43.2c-1.9,0-3.5-0.7-4.8-2c-1.3-1.3-2-2.9-2-4.8V63.6H6.8c-1.9,0-3.5-0.7-4.8-2c-1.3-1.3-2-2.9-2-4.8V43.2c0-1.9,0.7-3.5,2-4.8c1.3-1.3,2.9-2,4.8-2h29.5V6.8c0-1.9,0.7-3.5,2-4.8c1.3-1.3,2.9-2,4.8-2h13.6c1.9,0,3.5,0.7,4.8,2c1.3,1.3,2,2.9,2,4.8v29.5h29.5c1.9,0,3.5,0.7,4.8,2C99.3,39.7,100,41.3,100,43.2z" }))));
|
|
55
55
|
};
|
|
@@ -49,7 +49,7 @@ var ZoomOutButton = function (_a) {
|
|
|
49
49
|
" Zoom out") : _b, props = __rest(_a, ["hint"]);
|
|
50
50
|
var viewState = useViewState();
|
|
51
51
|
var map = useMap().current;
|
|
52
|
-
return (React.createElement(MapButton, __assign({ "data-testid": "ZoomOutButton", disabled: viewState.zoom <= map.getMinZoom(), onClick: function () { return map.zoomOut(); }, hint: hint }, props),
|
|
52
|
+
return (React.createElement(MapButton, __assign({ "data-testid": props['data-testid'] || "ZoomOutButton", disabled: viewState.zoom <= map.getMinZoom(), onClick: function () { return map.zoomOut(); }, hint: hint }, props),
|
|
53
53
|
React.createElement("svg", { width: "100", height: "100", viewBox: "0 0 100 100", xmlns: "http://www.w3.org/2000/svg" },
|
|
54
54
|
React.createElement("path", { d: "M93.2,36.4c1.9,0,3.5,0.7,4.8,2c1.3,1.3,2,2.9,2,4.8v13.6c0,1.9-0.7,3.5-2,4.8c-1.3,1.3-2.9,2-4.8,2H63.6H6.8c-1.9,0-3.5-0.7-4.8-2c-1.3-1.3-2-2.9-2-4.8V43.2c0-1.9,0.7-3.5,2-4.8c1.3-1.3,2.9-2,4.8-2" }))));
|
|
55
55
|
};
|
|
@@ -34,10 +34,6 @@ interface IProps {
|
|
|
34
34
|
* Fired when the map button is clicked.
|
|
35
35
|
*/
|
|
36
36
|
onClick: (e?: React.MouseEvent) => void;
|
|
37
|
-
/**
|
|
38
|
-
* Test ID for Playwright/testing. Forwarded to the root DOM element.
|
|
39
|
-
*/
|
|
40
|
-
'data-testid'?: string;
|
|
41
37
|
}
|
|
42
38
|
/**
|
|
43
39
|
* A `MapButton` is a square button to be used on a Mapbox map. It must
|
|
@@ -60,10 +60,10 @@ var MapButtonBase = function (props) {
|
|
|
60
60
|
]
|
|
61
61
|
}), styles = _c.styles, attributes = _c.attributes, update = _c.update;
|
|
62
62
|
var renderButton = function () {
|
|
63
|
-
return React.createElement("div", { ref: setWrapperRef, className: props.className, "data-testid": props['data-testid'], tabIndex: props.disabled ? -1 : 0, onClick: handleClick, onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave },
|
|
63
|
+
return React.createElement("div", { ref: setWrapperRef, className: props.className, "data-testid": props['data-testid'] || "MapButton", tabIndex: props.disabled ? -1 : 0, onClick: handleClick, onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave },
|
|
64
64
|
React.createElement(Button, { "data-testid": "MapButton.Button", "$grouped": props.grouped, "$size": props.size, "$disabled": props.disabled, "$active": props.active }, props.children),
|
|
65
65
|
props.hint &&
|
|
66
|
-
createPortal(React.createElement(Hint, { ref: setHintRef, styles: styles.popper, attributes: __assign({}, attributes.popper) }, props.hint), document.body));
|
|
66
|
+
createPortal(React.createElement(Hint, { "data-testid": "MapButton.Hint", ref: setHintRef, styles: styles.popper, attributes: __assign({}, attributes.popper) }, props.hint), document.body));
|
|
67
67
|
};
|
|
68
68
|
if (props.grouped)
|
|
69
69
|
return renderButton();
|
|
@@ -25,11 +25,11 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
25
25
|
return t;
|
|
26
26
|
};
|
|
27
27
|
import * as React from 'react';
|
|
28
|
-
import { useViewState } from '../../../Map';
|
|
29
28
|
import styled from 'styled-components';
|
|
29
|
+
import { useViewState } from '../../../Map';
|
|
30
30
|
var MapControlBase = function (props) {
|
|
31
31
|
var viewState = useViewState();
|
|
32
|
-
return (React.createElement("div", { "data-testid": "MapControl", className: props.className, style: {
|
|
32
|
+
return (React.createElement("div", { "data-testid": props['data-testid'] || "MapControl", className: props.className, style: {
|
|
33
33
|
// Must calculate this style dynamically, because it needs local state.
|
|
34
34
|
left: props.x >= 0 ? "".concat(props.x + (props.respectPadding ? viewState.padding.left : 0), "px") : 'auto',
|
|
35
35
|
right: props.x < 0 ? "".concat((props.respectPadding ? viewState.padding.right : 0) - props.x, "px") : 'auto',
|
package/modules/Filter/Filter.js
CHANGED
|
@@ -60,7 +60,7 @@ var FilterBase = function (props) {
|
|
|
60
60
|
if (update)
|
|
61
61
|
update();
|
|
62
62
|
};
|
|
63
|
-
return (React.createElement("div", { "data-
|
|
63
|
+
return (React.createElement("div", { "data-testid": props['data-testid'] || "Filter", className: props.className },
|
|
64
64
|
React.createElement(ToggleButton, { url: SVG.Icons.Filter, ref: buttonRef, active: props.active, open: open, onClick: toggleOpen }),
|
|
65
65
|
createPortal(React.createElement(Pane, __assign({ "data-test-id": "Filter.Pane", "$open": open, "$width": props.width, style: styles.popper }, attributes.popper, { ref: paneRef }), open && React.createElement(GlassPane, { padded: true, bordered: true }, props.children)), document.body)));
|
|
66
66
|
};
|
package/modules/MainMenu/Item.js
CHANGED
|
@@ -74,7 +74,7 @@ var ItemBase = function (props) {
|
|
|
74
74
|
}
|
|
75
75
|
});
|
|
76
76
|
};
|
|
77
|
-
return (React.createElement("div", { tabIndex: -1, className: props.className, onMouseEnter: !props.noExpand ? handleMouseEnter : null, onMouseLeave: !props.noExpand ? handleMouseLeave : null, onClick: (_a = props.onClick) !== null && _a !== void 0 ? _a : null },
|
|
77
|
+
return (React.createElement("div", { "data-testid": props['data-testid'] || "MainMenu.Item", tabIndex: -1, className: props.className, onMouseEnter: !props.noExpand ? handleMouseEnter : null, onMouseLeave: !props.noExpand ? handleMouseLeave : null, onClick: (_a = props.onClick) !== null && _a !== void 0 ? _a : null },
|
|
78
78
|
React.createElement(Animatable, { style: __assign({}, springs) },
|
|
79
79
|
React.createElement(Content, { ref: content },
|
|
80
80
|
React.createElement(Svg, null,
|