@buoy-gg/ask-buoy 7.0.33
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/LICENSE +58 -0
- package/README.md +50 -0
- package/lib/commonjs/blocks/AskBlocks.js +338 -0
- package/lib/commonjs/blocks/AskBlocks.js.map +1 -0
- package/lib/commonjs/blocks/BlockRenderer.js +250 -0
- package/lib/commonjs/blocks/BlockRenderer.js.map +1 -0
- package/lib/commonjs/blocks/ChromePrototypes.js +514 -0
- package/lib/commonjs/blocks/ChromePrototypes.js.map +1 -0
- package/lib/commonjs/blocks/DataBlocks.js +545 -0
- package/lib/commonjs/blocks/DataBlocks.js.map +1 -0
- package/lib/commonjs/blocks/ExtraBlocks.js +1821 -0
- package/lib/commonjs/blocks/ExtraBlocks.js.map +1 -0
- package/lib/commonjs/blocks/MediaBlocks.js +140 -0
- package/lib/commonjs/blocks/MediaBlocks.js.map +1 -0
- package/lib/commonjs/blocks/ReceiptBlocks.js +596 -0
- package/lib/commonjs/blocks/ReceiptBlocks.js.map +1 -0
- package/lib/commonjs/blocks/context.js +42 -0
- package/lib/commonjs/blocks/context.js.map +1 -0
- package/lib/commonjs/blocks/icons.js +96 -0
- package/lib/commonjs/blocks/icons.js.map +1 -0
- package/lib/commonjs/blocks/index.js +95 -0
- package/lib/commonjs/blocks/index.js.map +1 -0
- package/lib/commonjs/blocks/primitives.js +312 -0
- package/lib/commonjs/blocks/primitives.js.map +1 -0
- package/lib/commonjs/blocks/primitivesIndex.js +56 -0
- package/lib/commonjs/blocks/primitivesIndex.js.map +1 -0
- package/lib/commonjs/components/ApprovalCard.js +140 -0
- package/lib/commonjs/components/ApprovalCard.js.map +1 -0
- package/lib/commonjs/components/AskBuoyHeader.js +127 -0
- package/lib/commonjs/components/AskBuoyHeader.js.map +1 -0
- package/lib/commonjs/components/AskBuoyIcon.js +19 -0
- package/lib/commonjs/components/AskBuoyIcon.js.map +1 -0
- package/lib/commonjs/components/AskBuoyModal.js +322 -0
- package/lib/commonjs/components/AskBuoyModal.js.map +1 -0
- package/lib/commonjs/components/ChangesBar.js +211 -0
- package/lib/commonjs/components/ChangesBar.js.map +1 -0
- package/lib/commonjs/components/Composer.js +175 -0
- package/lib/commonjs/components/Composer.js.map +1 -0
- package/lib/commonjs/components/EmptyState.js +154 -0
- package/lib/commonjs/components/EmptyState.js.map +1 -0
- package/lib/commonjs/components/Markdown.js +252 -0
- package/lib/commonjs/components/Markdown.js.map +1 -0
- package/lib/commonjs/components/MessageList.js +648 -0
- package/lib/commonjs/components/MessageList.js.map +1 -0
- package/lib/commonjs/components/TypingDots.js +63 -0
- package/lib/commonjs/components/TypingDots.js.map +1 -0
- package/lib/commonjs/index.js +205 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/commonjs/package.json +1 -0
- package/lib/commonjs/preset.js +90 -0
- package/lib/commonjs/preset.js.map +1 -0
- package/lib/commonjs/store/askBuoyStore.js +279 -0
- package/lib/commonjs/store/askBuoyStore.js.map +1 -0
- package/lib/commonjs/store/useAskBuoy.js +299 -0
- package/lib/commonjs/store/useAskBuoy.js.map +1 -0
- package/lib/commonjs/sync/askBuoySyncAdapter.js +119 -0
- package/lib/commonjs/sync/askBuoySyncAdapter.js.map +1 -0
- package/lib/commonjs/sync/askBuoySyncAdapter.test.js +136 -0
- package/lib/commonjs/sync/askBuoySyncAdapter.test.js.map +1 -0
- package/lib/commonjs/sync/wire.js +58 -0
- package/lib/commonjs/sync/wire.js.map +1 -0
- package/lib/commonjs/types.js +6 -0
- package/lib/commonjs/types.js.map +1 -0
- package/lib/module/blocks/AskBlocks.js +331 -0
- package/lib/module/blocks/AskBlocks.js.map +1 -0
- package/lib/module/blocks/BlockRenderer.js +245 -0
- package/lib/module/blocks/BlockRenderer.js.map +1 -0
- package/lib/module/blocks/ChromePrototypes.js +503 -0
- package/lib/module/blocks/ChromePrototypes.js.map +1 -0
- package/lib/module/blocks/DataBlocks.js +532 -0
- package/lib/module/blocks/DataBlocks.js.map +1 -0
- package/lib/module/blocks/ExtraBlocks.js +1794 -0
- package/lib/module/blocks/ExtraBlocks.js.map +1 -0
- package/lib/module/blocks/MediaBlocks.js +135 -0
- package/lib/module/blocks/MediaBlocks.js.map +1 -0
- package/lib/module/blocks/ReceiptBlocks.js +584 -0
- package/lib/module/blocks/ReceiptBlocks.js.map +1 -0
- package/lib/module/blocks/context.js +35 -0
- package/lib/module/blocks/context.js.map +1 -0
- package/lib/module/blocks/icons.js +91 -0
- package/lib/module/blocks/icons.js.map +1 -0
- package/lib/module/blocks/index.js +8 -0
- package/lib/module/blocks/index.js.map +1 -0
- package/lib/module/blocks/primitives.js +301 -0
- package/lib/module/blocks/primitives.js.map +1 -0
- package/lib/module/blocks/primitivesIndex.js +5 -0
- package/lib/module/blocks/primitivesIndex.js.map +1 -0
- package/lib/module/components/ApprovalCard.js +135 -0
- package/lib/module/components/ApprovalCard.js.map +1 -0
- package/lib/module/components/AskBuoyHeader.js +124 -0
- package/lib/module/components/AskBuoyHeader.js.map +1 -0
- package/lib/module/components/AskBuoyIcon.js +8 -0
- package/lib/module/components/AskBuoyIcon.js.map +1 -0
- package/lib/module/components/AskBuoyModal.js +317 -0
- package/lib/module/components/AskBuoyModal.js.map +1 -0
- package/lib/module/components/ChangesBar.js +206 -0
- package/lib/module/components/ChangesBar.js.map +1 -0
- package/lib/module/components/Composer.js +170 -0
- package/lib/module/components/Composer.js.map +1 -0
- package/lib/module/components/EmptyState.js +149 -0
- package/lib/module/components/EmptyState.js.map +1 -0
- package/lib/module/components/Markdown.js +246 -0
- package/lib/module/components/Markdown.js.map +1 -0
- package/lib/module/components/MessageList.js +642 -0
- package/lib/module/components/MessageList.js.map +1 -0
- package/lib/module/components/TypingDots.js +58 -0
- package/lib/module/components/TypingDots.js.map +1 -0
- package/lib/module/index.js +29 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/preset.js +73 -0
- package/lib/module/preset.js.map +1 -0
- package/lib/module/store/askBuoyStore.js +275 -0
- package/lib/module/store/askBuoyStore.js.map +1 -0
- package/lib/module/store/useAskBuoy.js +293 -0
- package/lib/module/store/useAskBuoy.js.map +1 -0
- package/lib/module/sync/askBuoySyncAdapter.js +114 -0
- package/lib/module/sync/askBuoySyncAdapter.js.map +1 -0
- package/lib/module/sync/askBuoySyncAdapter.test.js +135 -0
- package/lib/module/sync/askBuoySyncAdapter.test.js.map +1 -0
- package/lib/module/sync/wire.js +47 -0
- package/lib/module/sync/wire.js.map +1 -0
- package/lib/module/types.js +4 -0
- package/lib/module/types.js.map +1 -0
- package/lib/typescript/blocks/AskBlocks.d.ts +11 -0
- package/lib/typescript/blocks/AskBlocks.d.ts.map +1 -0
- package/lib/typescript/blocks/BlockRenderer.d.ts +5 -0
- package/lib/typescript/blocks/BlockRenderer.d.ts.map +1 -0
- package/lib/typescript/blocks/ChromePrototypes.d.ts +27 -0
- package/lib/typescript/blocks/ChromePrototypes.d.ts.map +1 -0
- package/lib/typescript/blocks/DataBlocks.d.ts +29 -0
- package/lib/typescript/blocks/DataBlocks.d.ts.map +1 -0
- package/lib/typescript/blocks/ExtraBlocks.d.ts +69 -0
- package/lib/typescript/blocks/ExtraBlocks.d.ts.map +1 -0
- package/lib/typescript/blocks/MediaBlocks.d.ts +5 -0
- package/lib/typescript/blocks/MediaBlocks.d.ts.map +1 -0
- package/lib/typescript/blocks/ReceiptBlocks.d.ts +27 -0
- package/lib/typescript/blocks/ReceiptBlocks.d.ts.map +1 -0
- package/lib/typescript/blocks/context.d.ts +35 -0
- package/lib/typescript/blocks/context.d.ts.map +1 -0
- package/lib/typescript/blocks/icons.d.ts +6 -0
- package/lib/typescript/blocks/icons.d.ts.map +1 -0
- package/lib/typescript/blocks/index.d.ts +6 -0
- package/lib/typescript/blocks/index.d.ts.map +1 -0
- package/lib/typescript/blocks/primitives.d.ts +85 -0
- package/lib/typescript/blocks/primitives.d.ts.map +1 -0
- package/lib/typescript/blocks/primitivesIndex.d.ts +3 -0
- package/lib/typescript/blocks/primitivesIndex.d.ts.map +1 -0
- package/lib/typescript/components/ApprovalCard.d.ts +7 -0
- package/lib/typescript/components/ApprovalCard.d.ts.map +1 -0
- package/lib/typescript/components/AskBuoyHeader.d.ts +14 -0
- package/lib/typescript/components/AskBuoyHeader.d.ts.map +1 -0
- package/lib/typescript/components/AskBuoyIcon.d.ts +6 -0
- package/lib/typescript/components/AskBuoyIcon.d.ts.map +1 -0
- package/lib/typescript/components/AskBuoyModal.d.ts +13 -0
- package/lib/typescript/components/AskBuoyModal.d.ts.map +1 -0
- package/lib/typescript/components/ChangesBar.d.ts +9 -0
- package/lib/typescript/components/ChangesBar.d.ts.map +1 -0
- package/lib/typescript/components/Composer.d.ts +9 -0
- package/lib/typescript/components/Composer.d.ts.map +1 -0
- package/lib/typescript/components/EmptyState.d.ts +6 -0
- package/lib/typescript/components/EmptyState.d.ts.map +1 -0
- package/lib/typescript/components/Markdown.d.ts +23 -0
- package/lib/typescript/components/Markdown.d.ts.map +1 -0
- package/lib/typescript/components/MessageList.d.ts +18 -0
- package/lib/typescript/components/MessageList.d.ts.map +1 -0
- package/lib/typescript/components/TypingDots.d.ts +2 -0
- package/lib/typescript/components/TypingDots.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +28 -0
- package/lib/typescript/index.d.ts.map +1 -0
- package/lib/typescript/preset.d.ts +61 -0
- package/lib/typescript/preset.d.ts.map +1 -0
- package/lib/typescript/store/askBuoyStore.d.ts +124 -0
- package/lib/typescript/store/askBuoyStore.d.ts.map +1 -0
- package/lib/typescript/store/useAskBuoy.d.ts +22 -0
- package/lib/typescript/store/useAskBuoy.d.ts.map +1 -0
- package/lib/typescript/sync/askBuoySyncAdapter.d.ts +73 -0
- package/lib/typescript/sync/askBuoySyncAdapter.d.ts.map +1 -0
- package/lib/typescript/sync/askBuoySyncAdapter.test.d.ts +2 -0
- package/lib/typescript/sync/askBuoySyncAdapter.test.d.ts.map +1 -0
- package/lib/typescript/sync/wire.d.ts +17 -0
- package/lib/typescript/sync/wire.d.ts.map +1 -0
- package/lib/typescript/types.d.ts +119 -0
- package/lib/typescript/types.d.ts.map +1 -0
- package/package.json +83 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
PROPRIETARY SOFTWARE LICENSE
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2024-present Buoy. All rights reserved.
|
|
4
|
+
|
|
5
|
+
This software and its source code are proprietary and confidential.
|
|
6
|
+
|
|
7
|
+
NOTICE: This is NOT open source software. This software is licensed,
|
|
8
|
+
not sold, and is protected by copyright laws and international treaties.
|
|
9
|
+
|
|
10
|
+
TERMS AND CONDITIONS:
|
|
11
|
+
|
|
12
|
+
1. LICENSE GRANT
|
|
13
|
+
Subject to the terms of this Agreement and payment of applicable fees,
|
|
14
|
+
Buoy grants you a limited, non-exclusive, non-transferable license
|
|
15
|
+
to use the compiled software packages in your applications.
|
|
16
|
+
|
|
17
|
+
2. RESTRICTIONS
|
|
18
|
+
You may NOT:
|
|
19
|
+
- Copy, modify, or distribute the source code
|
|
20
|
+
- Reverse engineer, decompile, or disassemble the software
|
|
21
|
+
- Remove or alter any proprietary notices or labels
|
|
22
|
+
- Sublicense, rent, lease, or lend the software
|
|
23
|
+
- Use the software to create competing products
|
|
24
|
+
- Share access credentials with unauthorized parties
|
|
25
|
+
|
|
26
|
+
3. OWNERSHIP
|
|
27
|
+
React Buoy retains all right, title, and interest in the software,
|
|
28
|
+
including all intellectual property rights. This license does not
|
|
29
|
+
grant you any rights to trademarks or service marks.
|
|
30
|
+
|
|
31
|
+
4. TERMINATION
|
|
32
|
+
This license is effective until terminated. Your rights under this
|
|
33
|
+
license will terminate automatically without notice if you fail to
|
|
34
|
+
comply with any of its terms. Upon termination, you must cease all
|
|
35
|
+
use and destroy all copies of the software.
|
|
36
|
+
|
|
37
|
+
5. DISCLAIMER OF WARRANTIES
|
|
38
|
+
THE SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND,
|
|
39
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
40
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT.
|
|
41
|
+
|
|
42
|
+
6. LIMITATION OF LIABILITY
|
|
43
|
+
IN NO EVENT SHALL BUOY BE LIABLE FOR ANY INDIRECT, INCIDENTAL,
|
|
44
|
+
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES ARISING OUT OF OR IN
|
|
45
|
+
CONNECTION WITH THIS LICENSE OR THE USE OF THE SOFTWARE.
|
|
46
|
+
|
|
47
|
+
7. GOVERNING LAW
|
|
48
|
+
This Agreement shall be governed by and construed in accordance with
|
|
49
|
+
the laws of the United States, without regard to its conflict of
|
|
50
|
+
law provisions.
|
|
51
|
+
|
|
52
|
+
For licensing inquiries and subscription information:
|
|
53
|
+
- Website: https://buoy.gg
|
|
54
|
+
- Email: AustinLovesWorking@gmail.com
|
|
55
|
+
|
|
56
|
+
Unauthorized reproduction or distribution of this software, or any
|
|
57
|
+
portion of it, may result in severe civil and criminal penalties,
|
|
58
|
+
and will be prosecuted to the maximum extent possible under the law.
|
package/README.md
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# @buoy-gg/ask-buoy
|
|
2
|
+
|
|
3
|
+
**Ask Buoy** — an AI chat sheet inside your React Native app that drives every Buoy devtool, for the people on your team who don't read code.
|
|
4
|
+
|
|
5
|
+
Your QA tester types *"make the double burger out of stock at store 100 and put it in my cart"* and it happens. No ticket, no dev, no knowing what a cart-item object looks like. Behind the chat, an agent calls the same ~190 tool actions Buoy Desktop and the MCP server drive — network overrides, storage writes, react-query cache pokes, impersonation, navigation — and reports back in plain English.
|
|
6
|
+
|
|
7
|
+
**The model is yours.** Buoy never holds an API key and never proxies a request. You point Ask Buoy at your own endpoint and hand it headers from your app's own session.
|
|
8
|
+
|
|
9
|
+
## Setup
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
npm install @buoy-gg/ask-buoy
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
```tsx
|
|
16
|
+
import { FloatingDevTools } from "@buoy-gg/core";
|
|
17
|
+
|
|
18
|
+
<FloatingDevTools
|
|
19
|
+
askBuoy={{
|
|
20
|
+
endpoint: "https://ai.acme.com/v1/messages",
|
|
21
|
+
protocol: "anthropic", // or "openai" — Azure, Gemini-compat, most gateways
|
|
22
|
+
model: "claude-sonnet-4-5",
|
|
23
|
+
|
|
24
|
+
// Called before every request, so short-lived tokens work.
|
|
25
|
+
// This is the whole auth story: your credential, your gateway.
|
|
26
|
+
headers: async () => ({
|
|
27
|
+
Authorization: `Bearer ${await auth.getToken()}`,
|
|
28
|
+
}),
|
|
29
|
+
}}
|
|
30
|
+
/>
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
The tool appears in the dial as **ASK BUOY**. This package is the chat; the *hands* are the other Buoy tools you have installed — each tool package you add (network, storage, impersonate, …) becomes something the agent can do.
|
|
34
|
+
|
|
35
|
+
## What keeps it trustworthy
|
|
36
|
+
|
|
37
|
+
- **A visible changes bar** the moment it modifies anything — "Changed this app · 2 undoable · 1 permanent" — with real undo: storage writes are pre-read so Undo restores the exact prior value.
|
|
38
|
+
- **Destructive actions wait for a tap** by default; everything else auto-runs behind the bar. Tunable with `policy.requireApproval`, down to `readOnly: true` for a look-but-don't-touch support seat.
|
|
39
|
+
- **Release-build honesty**: actions that can't work outside a dev build are refused with an explanation, never silently "succeed".
|
|
40
|
+
- **Credential redaction** by field name and value shape before anything reaches your model; the agent's own traffic is invisible to it; the transcript is never persisted.
|
|
41
|
+
|
|
42
|
+
## Docs
|
|
43
|
+
|
|
44
|
+
Full guide — gateway templates, model guidance, the exact list of what's sent to the model, policy reference: **[buoy.gg/docs/tools/copilot](https://www.buoy.gg/docs/tools/copilot)**
|
|
45
|
+
|
|
46
|
+
The headless engine (catalog, providers, turn loop, effect ledger) lives in [`@buoy-gg/agent-core`](https://www.npmjs.com/package/@buoy-gg/agent-core).
|
|
47
|
+
|
|
48
|
+
## License
|
|
49
|
+
|
|
50
|
+
See [buoy.gg](https://www.buoy.gg) for licensing.
|
|
@@ -0,0 +1,338 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.Choice = Choice;
|
|
7
|
+
exports.Confirm = Confirm;
|
|
8
|
+
exports.Input = Input;
|
|
9
|
+
var _react = require("react");
|
|
10
|
+
var _reactNative = require("react-native");
|
|
11
|
+
var _sharedUi = require("@buoy-gg/shared-ui");
|
|
12
|
+
var _context = require("./context");
|
|
13
|
+
var _icons = require("./icons");
|
|
14
|
+
var _primitives = require("./primitives");
|
|
15
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
16
|
+
/**
|
|
17
|
+
* Ask blocks — the user has to decide, and the turn is waiting.
|
|
18
|
+
*
|
|
19
|
+
* Choice, Confirm and Input all lock once answered: the chosen option stays
|
|
20
|
+
* highlighted, the rest dim, and nothing in history is tappable twice. The
|
|
21
|
+
* answer is handed to the sheet as a BlockAnswer and becomes the next user
|
|
22
|
+
* message, so the model reads plain words ("Business checkout"), never JSON.
|
|
23
|
+
*/
|
|
24
|
+
|
|
25
|
+
function Choice({
|
|
26
|
+
block
|
|
27
|
+
}) {
|
|
28
|
+
const h = (0, _context.useBlockHandlers)();
|
|
29
|
+
const answer = h.answered[block.id];
|
|
30
|
+
const chosen = answer?.kind === "choice" ? answer.optionId : null;
|
|
31
|
+
const locked = !!answer;
|
|
32
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_primitives.Card, {
|
|
33
|
+
testID: `buoy-block-choice-${block.id}`,
|
|
34
|
+
tone: locked ? undefined : "info",
|
|
35
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
36
|
+
style: styles.question,
|
|
37
|
+
children: block.question
|
|
38
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
39
|
+
style: styles.options,
|
|
40
|
+
children: block.options.slice(0, 5).map((o, i) => {
|
|
41
|
+
const isChosen = chosen === o.id;
|
|
42
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Pressable, {
|
|
43
|
+
testID: `buoy-block-option-${o.id}`,
|
|
44
|
+
accessibilityRole: "button",
|
|
45
|
+
accessibilityState: {
|
|
46
|
+
selected: isChosen,
|
|
47
|
+
disabled: locked
|
|
48
|
+
},
|
|
49
|
+
disabled: locked,
|
|
50
|
+
onPress: () => h.answer({
|
|
51
|
+
blockId: block.id,
|
|
52
|
+
kind: "choice",
|
|
53
|
+
optionId: o.id,
|
|
54
|
+
label: o.label
|
|
55
|
+
}),
|
|
56
|
+
style: ({
|
|
57
|
+
pressed
|
|
58
|
+
}) => [styles.option, i > 0 && styles.optionDivider, isChosen && styles.optionChosen, locked && !isChosen && styles.optionDimmed, pressed && !locked && styles.pressed],
|
|
59
|
+
children: [o.icon ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_icons.BlockIcon, {
|
|
60
|
+
name: o.icon
|
|
61
|
+
}) : null, /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
62
|
+
style: styles.optionText,
|
|
63
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
64
|
+
style: [styles.optionLabel, isChosen && styles.optionLabelChosen],
|
|
65
|
+
children: o.label
|
|
66
|
+
}), o.detail ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
67
|
+
style: styles.optionDetail,
|
|
68
|
+
children: o.detail
|
|
69
|
+
}) : null]
|
|
70
|
+
}), isChosen ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.Check, {
|
|
71
|
+
size: 14,
|
|
72
|
+
color: _sharedUi.night.color.accent
|
|
73
|
+
}) : locked ? null : /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.ChevronRight, {
|
|
74
|
+
size: 14,
|
|
75
|
+
color: _sharedUi.night.color.textTertiary
|
|
76
|
+
})]
|
|
77
|
+
}, o.id);
|
|
78
|
+
})
|
|
79
|
+
}), !locked && block.allowFreeText !== false ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
80
|
+
style: styles.hint,
|
|
81
|
+
children: "Or just type your answer below."
|
|
82
|
+
}) : null]
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
function Confirm({
|
|
86
|
+
block
|
|
87
|
+
}) {
|
|
88
|
+
const h = (0, _context.useBlockHandlers)();
|
|
89
|
+
const answer = h.answered[block.id];
|
|
90
|
+
const locked = !!answer;
|
|
91
|
+
const approved = answer?.kind === "confirm" ? answer.approved : null;
|
|
92
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_primitives.Card, {
|
|
93
|
+
testID: `buoy-block-confirm-${block.id}`,
|
|
94
|
+
tone: locked ? undefined : "warning",
|
|
95
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
96
|
+
style: styles.confirmTitle,
|
|
97
|
+
children: block.title
|
|
98
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
99
|
+
style: styles.confirmChange,
|
|
100
|
+
children: block.change
|
|
101
|
+
}), block.consequence ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
102
|
+
style: styles.confirmConsequence,
|
|
103
|
+
children: block.consequence
|
|
104
|
+
}) : null, /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
105
|
+
style: styles.confirmActions,
|
|
106
|
+
children: locked ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
107
|
+
style: styles.decided,
|
|
108
|
+
children: approved ? `✓ ${block.approveLabel ?? "Done"}` : `✕ ${block.declineLabel ?? "Not now"}`
|
|
109
|
+
}) : /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
110
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable, {
|
|
111
|
+
testID: "buoy-block-approve",
|
|
112
|
+
accessibilityRole: "button",
|
|
113
|
+
onPress: () => h.answer({
|
|
114
|
+
blockId: block.id,
|
|
115
|
+
kind: "confirm",
|
|
116
|
+
approved: true
|
|
117
|
+
}),
|
|
118
|
+
style: ({
|
|
119
|
+
pressed
|
|
120
|
+
}) => [styles.button, styles.buttonPrimary, pressed && styles.pressed],
|
|
121
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
122
|
+
style: styles.buttonTextPrimary,
|
|
123
|
+
children: block.approveLabel ?? "Do it"
|
|
124
|
+
})
|
|
125
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable, {
|
|
126
|
+
testID: "buoy-block-decline",
|
|
127
|
+
accessibilityRole: "button",
|
|
128
|
+
onPress: () => h.answer({
|
|
129
|
+
blockId: block.id,
|
|
130
|
+
kind: "confirm",
|
|
131
|
+
approved: false
|
|
132
|
+
}),
|
|
133
|
+
style: ({
|
|
134
|
+
pressed
|
|
135
|
+
}) => [styles.button, styles.buttonPlate, pressed && styles.pressed],
|
|
136
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
137
|
+
style: styles.buttonTextPlate,
|
|
138
|
+
children: block.declineLabel ?? "Not now"
|
|
139
|
+
})
|
|
140
|
+
})]
|
|
141
|
+
})
|
|
142
|
+
})]
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
function Input({
|
|
146
|
+
block
|
|
147
|
+
}) {
|
|
148
|
+
const h = (0, _context.useBlockHandlers)();
|
|
149
|
+
const answer = h.answered[block.id];
|
|
150
|
+
const locked = !!answer;
|
|
151
|
+
const [value, setValue] = (0, _react.useState)("");
|
|
152
|
+
const secret = block.type === "secret";
|
|
153
|
+
const submit = () => {
|
|
154
|
+
const v = value.trim();
|
|
155
|
+
if (!v) return;
|
|
156
|
+
h.answer({
|
|
157
|
+
blockId: block.id,
|
|
158
|
+
kind: "input",
|
|
159
|
+
value: v
|
|
160
|
+
});
|
|
161
|
+
};
|
|
162
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_primitives.Card, {
|
|
163
|
+
testID: `buoy-block-input-${block.id}`,
|
|
164
|
+
tone: locked ? undefined : "info",
|
|
165
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
166
|
+
style: styles.question,
|
|
167
|
+
children: block.label
|
|
168
|
+
}), locked ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
169
|
+
style: styles.decided,
|
|
170
|
+
children: answer.kind === "input" ? secret ? "••••••" : answer.value : "(skipped)"
|
|
171
|
+
}) : /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
172
|
+
style: styles.inputRow,
|
|
173
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TextInput, {
|
|
174
|
+
testID: "buoy-block-input-field",
|
|
175
|
+
style: styles.input,
|
|
176
|
+
value: value,
|
|
177
|
+
onChangeText: setValue,
|
|
178
|
+
placeholder: block.placeholder ?? "",
|
|
179
|
+
placeholderTextColor: _sharedUi.night.color.placeholder,
|
|
180
|
+
keyboardType: block.type === "number" ? "numeric" : "ascii-capable",
|
|
181
|
+
secureTextEntry: secret,
|
|
182
|
+
autoCapitalize: "none",
|
|
183
|
+
autoCorrect: false,
|
|
184
|
+
returnKeyType: "send",
|
|
185
|
+
onSubmitEditing: submit
|
|
186
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable, {
|
|
187
|
+
testID: "buoy-block-input-submit",
|
|
188
|
+
accessibilityRole: "button",
|
|
189
|
+
disabled: !value.trim(),
|
|
190
|
+
onPress: submit,
|
|
191
|
+
style: ({
|
|
192
|
+
pressed
|
|
193
|
+
}) => [styles.button, styles.buttonPrimary, !value.trim() && styles.buttonDisabled, pressed && styles.pressed],
|
|
194
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
195
|
+
style: styles.buttonTextPrimary,
|
|
196
|
+
children: block.submitLabel ?? "Send"
|
|
197
|
+
})
|
|
198
|
+
})]
|
|
199
|
+
})]
|
|
200
|
+
});
|
|
201
|
+
}
|
|
202
|
+
const styles = _reactNative.StyleSheet.create({
|
|
203
|
+
question: {
|
|
204
|
+
color: _sharedUi.night.color.text,
|
|
205
|
+
fontSize: _sharedUi.night.font.row,
|
|
206
|
+
fontWeight: "600",
|
|
207
|
+
lineHeight: 20,
|
|
208
|
+
paddingHorizontal: 12,
|
|
209
|
+
paddingTop: 12,
|
|
210
|
+
paddingBottom: 8
|
|
211
|
+
},
|
|
212
|
+
options: {
|
|
213
|
+
marginHorizontal: 8,
|
|
214
|
+
marginBottom: 8,
|
|
215
|
+
borderRadius: _sharedUi.night.radius.row,
|
|
216
|
+
backgroundColor: _sharedUi.night.color.surfaceElevated,
|
|
217
|
+
overflow: "hidden"
|
|
218
|
+
},
|
|
219
|
+
option: {
|
|
220
|
+
flexDirection: "row",
|
|
221
|
+
alignItems: "center",
|
|
222
|
+
gap: 10,
|
|
223
|
+
paddingHorizontal: 12,
|
|
224
|
+
paddingVertical: 11
|
|
225
|
+
},
|
|
226
|
+
optionDivider: {
|
|
227
|
+
borderTopWidth: _reactNative.StyleSheet.hairlineWidth,
|
|
228
|
+
borderTopColor: _sharedUi.night.color.separator
|
|
229
|
+
},
|
|
230
|
+
optionChosen: {
|
|
231
|
+
backgroundColor: _sharedUi.night.color.accentSoft
|
|
232
|
+
},
|
|
233
|
+
optionDimmed: {
|
|
234
|
+
opacity: 0.45
|
|
235
|
+
},
|
|
236
|
+
optionText: {
|
|
237
|
+
flex: 1,
|
|
238
|
+
gap: 2
|
|
239
|
+
},
|
|
240
|
+
optionLabel: {
|
|
241
|
+
color: _sharedUi.night.color.text,
|
|
242
|
+
fontSize: _sharedUi.night.font.body,
|
|
243
|
+
fontWeight: "500"
|
|
244
|
+
},
|
|
245
|
+
optionLabelChosen: {
|
|
246
|
+
color: _sharedUi.night.color.accent
|
|
247
|
+
},
|
|
248
|
+
optionDetail: {
|
|
249
|
+
color: _sharedUi.night.color.textSecondary,
|
|
250
|
+
fontSize: _sharedUi.night.font.caption,
|
|
251
|
+
lineHeight: 17
|
|
252
|
+
},
|
|
253
|
+
hint: {
|
|
254
|
+
color: _sharedUi.night.color.textTertiary,
|
|
255
|
+
fontSize: _sharedUi.night.font.micro,
|
|
256
|
+
paddingHorizontal: 12,
|
|
257
|
+
paddingBottom: 10
|
|
258
|
+
},
|
|
259
|
+
confirmTitle: {
|
|
260
|
+
color: _sharedUi.night.color.text,
|
|
261
|
+
fontSize: _sharedUi.night.font.row,
|
|
262
|
+
fontWeight: "600",
|
|
263
|
+
paddingHorizontal: 12,
|
|
264
|
+
paddingTop: 12
|
|
265
|
+
},
|
|
266
|
+
confirmChange: {
|
|
267
|
+
color: _sharedUi.night.color.text,
|
|
268
|
+
fontSize: _sharedUi.night.font.body,
|
|
269
|
+
lineHeight: 19,
|
|
270
|
+
paddingHorizontal: 12,
|
|
271
|
+
paddingTop: 6
|
|
272
|
+
},
|
|
273
|
+
confirmConsequence: {
|
|
274
|
+
color: _sharedUi.night.color.warning,
|
|
275
|
+
fontSize: _sharedUi.night.font.caption,
|
|
276
|
+
lineHeight: 17,
|
|
277
|
+
paddingHorizontal: 12,
|
|
278
|
+
paddingTop: 6
|
|
279
|
+
},
|
|
280
|
+
confirmActions: {
|
|
281
|
+
flexDirection: "row",
|
|
282
|
+
gap: 8,
|
|
283
|
+
paddingHorizontal: 12,
|
|
284
|
+
paddingVertical: 12,
|
|
285
|
+
alignItems: "center"
|
|
286
|
+
},
|
|
287
|
+
decided: {
|
|
288
|
+
color: _sharedUi.night.color.textSecondary,
|
|
289
|
+
fontSize: _sharedUi.night.font.caption,
|
|
290
|
+
fontWeight: "600",
|
|
291
|
+
paddingHorizontal: 12,
|
|
292
|
+
paddingVertical: 10
|
|
293
|
+
},
|
|
294
|
+
inputRow: {
|
|
295
|
+
flexDirection: "row",
|
|
296
|
+
alignItems: "center",
|
|
297
|
+
gap: 8,
|
|
298
|
+
paddingHorizontal: 12,
|
|
299
|
+
paddingBottom: 12
|
|
300
|
+
},
|
|
301
|
+
input: {
|
|
302
|
+
flex: 1,
|
|
303
|
+
height: 38,
|
|
304
|
+
paddingHorizontal: 12,
|
|
305
|
+
borderRadius: _sharedUi.night.radius.row,
|
|
306
|
+
backgroundColor: _sharedUi.night.color.surfaceElevated,
|
|
307
|
+
color: _sharedUi.night.color.text,
|
|
308
|
+
fontSize: _sharedUi.night.font.body
|
|
309
|
+
},
|
|
310
|
+
button: {
|
|
311
|
+
paddingHorizontal: 14,
|
|
312
|
+
paddingVertical: 9,
|
|
313
|
+
borderRadius: _sharedUi.night.radius.row
|
|
314
|
+
},
|
|
315
|
+
buttonPrimary: {
|
|
316
|
+
backgroundColor: _sharedUi.night.color.accent
|
|
317
|
+
},
|
|
318
|
+
buttonPlate: {
|
|
319
|
+
backgroundColor: _sharedUi.night.color.button
|
|
320
|
+
},
|
|
321
|
+
buttonDisabled: {
|
|
322
|
+
opacity: 0.5
|
|
323
|
+
},
|
|
324
|
+
buttonTextPrimary: {
|
|
325
|
+
color: _sharedUi.night.color.onAccent,
|
|
326
|
+
fontSize: _sharedUi.night.font.caption,
|
|
327
|
+
fontWeight: "600"
|
|
328
|
+
},
|
|
329
|
+
buttonTextPlate: {
|
|
330
|
+
color: _sharedUi.night.color.text,
|
|
331
|
+
fontSize: _sharedUi.night.font.caption,
|
|
332
|
+
fontWeight: "600"
|
|
333
|
+
},
|
|
334
|
+
pressed: {
|
|
335
|
+
opacity: 0.7
|
|
336
|
+
}
|
|
337
|
+
});
|
|
338
|
+
//# sourceMappingURL=AskBlocks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNative","_sharedUi","_context","_icons","_primitives","_jsxRuntime","Choice","block","h","useBlockHandlers","answer","answered","id","chosen","kind","optionId","locked","jsxs","Card","testID","tone","undefined","children","jsx","Text","style","styles","question","View","options","slice","map","o","i","isChosen","Pressable","accessibilityRole","accessibilityState","selected","disabled","onPress","blockId","label","pressed","option","optionDivider","optionChosen","optionDimmed","icon","BlockIcon","name","optionText","optionLabel","optionLabelChosen","detail","optionDetail","Check","size","color","night","accent","ChevronRight","textTertiary","allowFreeText","hint","Confirm","approved","confirmTitle","title","confirmChange","change","consequence","confirmConsequence","confirmActions","decided","approveLabel","declineLabel","Fragment","button","buttonPrimary","buttonTextPrimary","buttonPlate","buttonTextPlate","Input","value","setValue","useState","secret","type","submit","v","trim","inputRow","TextInput","input","onChangeText","placeholder","placeholderTextColor","keyboardType","secureTextEntry","autoCapitalize","autoCorrect","returnKeyType","onSubmitEditing","buttonDisabled","submitLabel","StyleSheet","create","text","fontSize","font","row","fontWeight","lineHeight","paddingHorizontal","paddingTop","paddingBottom","marginHorizontal","marginBottom","borderRadius","radius","backgroundColor","surfaceElevated","overflow","flexDirection","alignItems","gap","paddingVertical","borderTopWidth","hairlineWidth","borderTopColor","separator","accentSoft","opacity","flex","body","textSecondary","caption","micro","warning","height","onAccent"],"sourceRoot":"../../../src","sources":["blocks/AskBlocks.tsx"],"mappings":";;;;;;;;AAQA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AAGA,IAAAG,QAAA,GAAAH,OAAA;AACA,IAAAI,MAAA,GAAAJ,OAAA;AACA,IAAAK,WAAA,GAAAL,OAAA;AAAoC,IAAAM,WAAA,GAAAN,OAAA;AAfpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAUO,SAASO,MAAMA,CAAC;EAAEC;AAA8B,CAAC,EAAE;EACxD,MAAMC,CAAC,GAAG,IAAAC,yBAAgB,EAAC,CAAC;EAC5B,MAAMC,MAAM,GAAGF,CAAC,CAACG,QAAQ,CAACJ,KAAK,CAACK,EAAE,CAAC;EACnC,MAAMC,MAAM,GAAGH,MAAM,EAAEI,IAAI,KAAK,QAAQ,GAAGJ,MAAM,CAACK,QAAQ,GAAG,IAAI;EACjE,MAAMC,MAAM,GAAG,CAAC,CAACN,MAAM;EAEvB,oBACE,IAAAL,WAAA,CAAAY,IAAA,EAACb,WAAA,CAAAc,IAAI;IAACC,MAAM,EAAE,qBAAqBZ,KAAK,CAACK,EAAE,EAAG;IAACQ,IAAI,EAAEJ,MAAM,GAAGK,SAAS,GAAG,MAAO;IAAAC,QAAA,gBAC/E,IAAAjB,WAAA,CAAAkB,GAAA,EAACvB,YAAA,CAAAwB,IAAI;MAACC,KAAK,EAAEC,MAAM,CAACC,QAAS;MAAAL,QAAA,EAAEf,KAAK,CAACoB;IAAQ,CAAO,CAAC,eACrD,IAAAtB,WAAA,CAAAkB,GAAA,EAACvB,YAAA,CAAA4B,IAAI;MAACH,KAAK,EAAEC,MAAM,CAACG,OAAQ;MAAAP,QAAA,EACzBf,KAAK,CAACsB,OAAO,CAACC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAACC,GAAG,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAK;QACvC,MAAMC,QAAQ,GAAGrB,MAAM,KAAKmB,CAAC,CAACpB,EAAE;QAChC,oBACE,IAAAP,WAAA,CAAAY,IAAA,EAACjB,YAAA,CAAAmC,SAAS;UAERhB,MAAM,EAAE,qBAAqBa,CAAC,CAACpB,EAAE,EAAG;UACpCwB,iBAAiB,EAAC,QAAQ;UAC1BC,kBAAkB,EAAE;YAAEC,QAAQ,EAAEJ,QAAQ;YAAEK,QAAQ,EAAEvB;UAAO,CAAE;UAC7DuB,QAAQ,EAAEvB,MAAO;UACjBwB,OAAO,EAAEA,CAAA,KAAMhC,CAAC,CAACE,MAAM,CAAC;YAAE+B,OAAO,EAAElC,KAAK,CAACK,EAAE;YAAEE,IAAI,EAAE,QAAQ;YAAEC,QAAQ,EAAEiB,CAAC,CAACpB,EAAE;YAAE8B,KAAK,EAAEV,CAAC,CAACU;UAAM,CAAC,CAAE;UAC/FjB,KAAK,EAAEA,CAAC;YAAEkB;UAAQ,CAAC,KAAK,CACtBjB,MAAM,CAACkB,MAAM,EACbX,CAAC,GAAG,CAAC,IAAIP,MAAM,CAACmB,aAAa,EAC7BX,QAAQ,IAAIR,MAAM,CAACoB,YAAY,EAC/B9B,MAAM,IAAI,CAACkB,QAAQ,IAAIR,MAAM,CAACqB,YAAY,EAC1CJ,OAAO,IAAI,CAAC3B,MAAM,IAAIU,MAAM,CAACiB,OAAO,CACpC;UAAArB,QAAA,GAEDU,CAAC,CAACgB,IAAI,gBAAG,IAAA3C,WAAA,CAAAkB,GAAA,EAACpB,MAAA,CAAA8C,SAAS;YAACC,IAAI,EAAElB,CAAC,CAACgB;UAAK,CAAE,CAAC,GAAG,IAAI,eAC5C,IAAA3C,WAAA,CAAAY,IAAA,EAACjB,YAAA,CAAA4B,IAAI;YAACH,KAAK,EAAEC,MAAM,CAACyB,UAAW;YAAA7B,QAAA,gBAC7B,IAAAjB,WAAA,CAAAkB,GAAA,EAACvB,YAAA,CAAAwB,IAAI;cAACC,KAAK,EAAE,CAACC,MAAM,CAAC0B,WAAW,EAAElB,QAAQ,IAAIR,MAAM,CAAC2B,iBAAiB,CAAE;cAAA/B,QAAA,EAAEU,CAAC,CAACU;YAAK,CAAO,CAAC,EACxFV,CAAC,CAACsB,MAAM,gBAAG,IAAAjD,WAAA,CAAAkB,GAAA,EAACvB,YAAA,CAAAwB,IAAI;cAACC,KAAK,EAAEC,MAAM,CAAC6B,YAAa;cAAAjC,QAAA,EAAEU,CAAC,CAACsB;YAAM,CAAO,CAAC,GAAG,IAAI;UAAA,CAClE,CAAC,EACNpB,QAAQ,gBACP,IAAA7B,WAAA,CAAAkB,GAAA,EAACtB,SAAA,CAAAuD,KAAK;YAACC,IAAI,EAAE,EAAG;YAACC,KAAK,EAAEC,eAAK,CAACD,KAAK,CAACE;UAAO,CAAE,CAAC,GAC5C5C,MAAM,GAAG,IAAI,gBACf,IAAAX,WAAA,CAAAkB,GAAA,EAACtB,SAAA,CAAA4D,YAAY;YAACJ,IAAI,EAAE,EAAG;YAACC,KAAK,EAAEC,eAAK,CAACD,KAAK,CAACI;UAAa,CAAE,CAC3D;QAAA,GAvBI9B,CAAC,CAACpB,EAwBE,CAAC;MAEhB,CAAC;IAAC,CACE,CAAC,EACN,CAACI,MAAM,IAAIT,KAAK,CAACwD,aAAa,KAAK,KAAK,gBACvC,IAAA1D,WAAA,CAAAkB,GAAA,EAACvB,YAAA,CAAAwB,IAAI;MAACC,KAAK,EAAEC,MAAM,CAACsC,IAAK;MAAA1C,QAAA,EAAC;IAA+B,CAAM,CAAC,GAC9D,IAAI;EAAA,CACJ,CAAC;AAEX;AAEO,SAAS2C,OAAOA,CAAC;EAAE1D;AAA+B,CAAC,EAAE;EAC1D,MAAMC,CAAC,GAAG,IAAAC,yBAAgB,EAAC,CAAC;EAC5B,MAAMC,MAAM,GAAGF,CAAC,CAACG,QAAQ,CAACJ,KAAK,CAACK,EAAE,CAAC;EACnC,MAAMI,MAAM,GAAG,CAAC,CAACN,MAAM;EACvB,MAAMwD,QAAQ,GAAGxD,MAAM,EAAEI,IAAI,KAAK,SAAS,GAAGJ,MAAM,CAACwD,QAAQ,GAAG,IAAI;EAEpE,oBACE,IAAA7D,WAAA,CAAAY,IAAA,EAACb,WAAA,CAAAc,IAAI;IAACC,MAAM,EAAE,sBAAsBZ,KAAK,CAACK,EAAE,EAAG;IAACQ,IAAI,EAAEJ,MAAM,GAAGK,SAAS,GAAG,SAAU;IAAAC,QAAA,gBACnF,IAAAjB,WAAA,CAAAkB,GAAA,EAACvB,YAAA,CAAAwB,IAAI;MAACC,KAAK,EAAEC,MAAM,CAACyC,YAAa;MAAA7C,QAAA,EAAEf,KAAK,CAAC6D;IAAK,CAAO,CAAC,eACtD,IAAA/D,WAAA,CAAAkB,GAAA,EAACvB,YAAA,CAAAwB,IAAI;MAACC,KAAK,EAAEC,MAAM,CAAC2C,aAAc;MAAA/C,QAAA,EAAEf,KAAK,CAAC+D;IAAM,CAAO,CAAC,EACvD/D,KAAK,CAACgE,WAAW,gBAAG,IAAAlE,WAAA,CAAAkB,GAAA,EAACvB,YAAA,CAAAwB,IAAI;MAACC,KAAK,EAAEC,MAAM,CAAC8C,kBAAmB;MAAAlD,QAAA,EAAEf,KAAK,CAACgE;IAAW,CAAO,CAAC,GAAG,IAAI,eAC9F,IAAAlE,WAAA,CAAAkB,GAAA,EAACvB,YAAA,CAAA4B,IAAI;MAACH,KAAK,EAAEC,MAAM,CAAC+C,cAAe;MAAAnD,QAAA,EAChCN,MAAM,gBACL,IAAAX,WAAA,CAAAkB,GAAA,EAACvB,YAAA,CAAAwB,IAAI;QAACC,KAAK,EAAEC,MAAM,CAACgD,OAAQ;QAAApD,QAAA,EAAE4C,QAAQ,GAAG,KAAK3D,KAAK,CAACoE,YAAY,IAAI,MAAM,EAAE,GAAG,KAAKpE,KAAK,CAACqE,YAAY,IAAI,SAAS;MAAE,CAAO,CAAC,gBAE7H,IAAAvE,WAAA,CAAAY,IAAA,EAAAZ,WAAA,CAAAwE,QAAA;QAAAvD,QAAA,gBACE,IAAAjB,WAAA,CAAAkB,GAAA,EAACvB,YAAA,CAAAmC,SAAS;UACRhB,MAAM,EAAC,oBAAoB;UAC3BiB,iBAAiB,EAAC,QAAQ;UAC1BI,OAAO,EAAEA,CAAA,KAAMhC,CAAC,CAACE,MAAM,CAAC;YAAE+B,OAAO,EAAElC,KAAK,CAACK,EAAE;YAAEE,IAAI,EAAE,SAAS;YAAEoD,QAAQ,EAAE;UAAK,CAAC,CAAE;UAChFzC,KAAK,EAAEA,CAAC;YAAEkB;UAAQ,CAAC,KAAK,CAACjB,MAAM,CAACoD,MAAM,EAAEpD,MAAM,CAACqD,aAAa,EAAEpC,OAAO,IAAIjB,MAAM,CAACiB,OAAO,CAAE;UAAArB,QAAA,eAEzF,IAAAjB,WAAA,CAAAkB,GAAA,EAACvB,YAAA,CAAAwB,IAAI;YAACC,KAAK,EAAEC,MAAM,CAACsD,iBAAkB;YAAA1D,QAAA,EAAEf,KAAK,CAACoE,YAAY,IAAI;UAAO,CAAO;QAAC,CACpE,CAAC,eACZ,IAAAtE,WAAA,CAAAkB,GAAA,EAACvB,YAAA,CAAAmC,SAAS;UACRhB,MAAM,EAAC,oBAAoB;UAC3BiB,iBAAiB,EAAC,QAAQ;UAC1BI,OAAO,EAAEA,CAAA,KAAMhC,CAAC,CAACE,MAAM,CAAC;YAAE+B,OAAO,EAAElC,KAAK,CAACK,EAAE;YAAEE,IAAI,EAAE,SAAS;YAAEoD,QAAQ,EAAE;UAAM,CAAC,CAAE;UACjFzC,KAAK,EAAEA,CAAC;YAAEkB;UAAQ,CAAC,KAAK,CAACjB,MAAM,CAACoD,MAAM,EAAEpD,MAAM,CAACuD,WAAW,EAAEtC,OAAO,IAAIjB,MAAM,CAACiB,OAAO,CAAE;UAAArB,QAAA,eAEvF,IAAAjB,WAAA,CAAAkB,GAAA,EAACvB,YAAA,CAAAwB,IAAI;YAACC,KAAK,EAAEC,MAAM,CAACwD,eAAgB;YAAA5D,QAAA,EAAEf,KAAK,CAACqE,YAAY,IAAI;UAAS,CAAO;QAAC,CACpE,CAAC;MAAA,CACZ;IACH,CACG,CAAC;EAAA,CACH,CAAC;AAEX;AAEO,SAASO,KAAKA,CAAC;EAAE5E;AAA6B,CAAC,EAAE;EACtD,MAAMC,CAAC,GAAG,IAAAC,yBAAgB,EAAC,CAAC;EAC5B,MAAMC,MAAM,GAAGF,CAAC,CAACG,QAAQ,CAACJ,KAAK,CAACK,EAAE,CAAC;EACnC,MAAMI,MAAM,GAAG,CAAC,CAACN,MAAM;EACvB,MAAM,CAAC0E,KAAK,EAAEC,QAAQ,CAAC,GAAG,IAAAC,eAAQ,EAAC,EAAE,CAAC;EACtC,MAAMC,MAAM,GAAGhF,KAAK,CAACiF,IAAI,KAAK,QAAQ;EACtC,MAAMC,MAAM,GAAGA,CAAA,KAAM;IACnB,MAAMC,CAAC,GAAGN,KAAK,CAACO,IAAI,CAAC,CAAC;IACtB,IAAI,CAACD,CAAC,EAAE;IACRlF,CAAC,CAACE,MAAM,CAAC;MAAE+B,OAAO,EAAElC,KAAK,CAACK,EAAE;MAAEE,IAAI,EAAE,OAAO;MAAEsE,KAAK,EAAEM;IAAE,CAAC,CAAC;EAC1D,CAAC;EAED,oBACE,IAAArF,WAAA,CAAAY,IAAA,EAACb,WAAA,CAAAc,IAAI;IAACC,MAAM,EAAE,oBAAoBZ,KAAK,CAACK,EAAE,EAAG;IAACQ,IAAI,EAAEJ,MAAM,GAAGK,SAAS,GAAG,MAAO;IAAAC,QAAA,gBAC9E,IAAAjB,WAAA,CAAAkB,GAAA,EAACvB,YAAA,CAAAwB,IAAI;MAACC,KAAK,EAAEC,MAAM,CAACC,QAAS;MAAAL,QAAA,EAAEf,KAAK,CAACmC;IAAK,CAAO,CAAC,EACjD1B,MAAM,gBACL,IAAAX,WAAA,CAAAkB,GAAA,EAACvB,YAAA,CAAAwB,IAAI;MAACC,KAAK,EAAEC,MAAM,CAACgD,OAAQ;MAAApD,QAAA,EACzBZ,MAAM,CAACI,IAAI,KAAK,OAAO,GAAIyE,MAAM,GAAG,QAAQ,GAAG7E,MAAM,CAAC0E,KAAK,GAAI;IAAW,CACvE,CAAC,gBAEP,IAAA/E,WAAA,CAAAY,IAAA,EAACjB,YAAA,CAAA4B,IAAI;MAACH,KAAK,EAAEC,MAAM,CAACkE,QAAS;MAAAtE,QAAA,gBAC3B,IAAAjB,WAAA,CAAAkB,GAAA,EAACvB,YAAA,CAAA6F,SAAS;QACR1E,MAAM,EAAC,wBAAwB;QAC/BM,KAAK,EAAEC,MAAM,CAACoE,KAAM;QACpBV,KAAK,EAAEA,KAAM;QACbW,YAAY,EAAEV,QAAS;QACvBW,WAAW,EAAEzF,KAAK,CAACyF,WAAW,IAAI,EAAG;QACrCC,oBAAoB,EAAEtC,eAAK,CAACD,KAAK,CAACsC,WAAY;QAC9CE,YAAY,EAAE3F,KAAK,CAACiF,IAAI,KAAK,QAAQ,GAAG,SAAS,GAAG,eAAgB;QACpEW,eAAe,EAAEZ,MAAO;QACxBa,cAAc,EAAC,MAAM;QACrBC,WAAW,EAAE,KAAM;QACnBC,aAAa,EAAC,MAAM;QACpBC,eAAe,EAAEd;MAAO,CACzB,CAAC,eACF,IAAApF,WAAA,CAAAkB,GAAA,EAACvB,YAAA,CAAAmC,SAAS;QACRhB,MAAM,EAAC,yBAAyB;QAChCiB,iBAAiB,EAAC,QAAQ;QAC1BG,QAAQ,EAAE,CAAC6C,KAAK,CAACO,IAAI,CAAC,CAAE;QACxBnD,OAAO,EAAEiD,MAAO;QAChBhE,KAAK,EAAEA,CAAC;UAAEkB;QAAQ,CAAC,KAAK,CACtBjB,MAAM,CAACoD,MAAM,EACbpD,MAAM,CAACqD,aAAa,EACpB,CAACK,KAAK,CAACO,IAAI,CAAC,CAAC,IAAIjE,MAAM,CAAC8E,cAAc,EACtC7D,OAAO,IAAIjB,MAAM,CAACiB,OAAO,CACzB;QAAArB,QAAA,eAEF,IAAAjB,WAAA,CAAAkB,GAAA,EAACvB,YAAA,CAAAwB,IAAI;UAACC,KAAK,EAAEC,MAAM,CAACsD,iBAAkB;UAAA1D,QAAA,EAAEf,KAAK,CAACkG,WAAW,IAAI;QAAM,CAAO;MAAC,CAClE,CAAC;IAAA,CACR,CACP;EAAA,CACG,CAAC;AAEX;AAEA,MAAM/E,MAAM,GAAGgF,uBAAU,CAACC,MAAM,CAAC;EAC/BhF,QAAQ,EAAE;IACR+B,KAAK,EAAEC,eAAK,CAACD,KAAK,CAACkD,IAAI;IACvBC,QAAQ,EAAElD,eAAK,CAACmD,IAAI,CAACC,GAAG;IACxBC,UAAU,EAAE,KAAK;IACjBC,UAAU,EAAE,EAAE;IACdC,iBAAiB,EAAE,EAAE;IACrBC,UAAU,EAAE,EAAE;IACdC,aAAa,EAAE;EACjB,CAAC;EACDvF,OAAO,EAAE;IACPwF,gBAAgB,EAAE,CAAC;IACnBC,YAAY,EAAE,CAAC;IACfC,YAAY,EAAE5D,eAAK,CAAC6D,MAAM,CAACT,GAAG;IAC9BU,eAAe,EAAE9D,eAAK,CAACD,KAAK,CAACgE,eAAe;IAC5CC,QAAQ,EAAE;EACZ,CAAC;EACD/E,MAAM,EAAE;IAAEgF,aAAa,EAAE,KAAK;IAAEC,UAAU,EAAE,QAAQ;IAAEC,GAAG,EAAE,EAAE;IAAEZ,iBAAiB,EAAE,EAAE;IAAEa,eAAe,EAAE;EAAG,CAAC;EAC3GlF,aAAa,EAAE;IAAEmF,cAAc,EAAEtB,uBAAU,CAACuB,aAAa;IAAEC,cAAc,EAAEvE,eAAK,CAACD,KAAK,CAACyE;EAAU,CAAC;EAClGrF,YAAY,EAAE;IAAE2E,eAAe,EAAE9D,eAAK,CAACD,KAAK,CAAC0E;EAAW,CAAC;EACzDrF,YAAY,EAAE;IAAEsF,OAAO,EAAE;EAAK,CAAC;EAC/BlF,UAAU,EAAE;IAAEmF,IAAI,EAAE,CAAC;IAAER,GAAG,EAAE;EAAE,CAAC;EAC/B1E,WAAW,EAAE;IAAEM,KAAK,EAAEC,eAAK,CAACD,KAAK,CAACkD,IAAI;IAAEC,QAAQ,EAAElD,eAAK,CAACmD,IAAI,CAACyB,IAAI;IAAEvB,UAAU,EAAE;EAAM,CAAC;EACtF3D,iBAAiB,EAAE;IAAEK,KAAK,EAAEC,eAAK,CAACD,KAAK,CAACE;EAAO,CAAC;EAChDL,YAAY,EAAE;IAAEG,KAAK,EAAEC,eAAK,CAACD,KAAK,CAAC8E,aAAa;IAAE3B,QAAQ,EAAElD,eAAK,CAACmD,IAAI,CAAC2B,OAAO;IAAExB,UAAU,EAAE;EAAG,CAAC;EAChGjD,IAAI,EAAE;IAAEN,KAAK,EAAEC,eAAK,CAACD,KAAK,CAACI,YAAY;IAAE+C,QAAQ,EAAElD,eAAK,CAACmD,IAAI,CAAC4B,KAAK;IAAExB,iBAAiB,EAAE,EAAE;IAAEE,aAAa,EAAE;EAAG,CAAC;EAC/GjD,YAAY,EAAE;IAAET,KAAK,EAAEC,eAAK,CAACD,KAAK,CAACkD,IAAI;IAAEC,QAAQ,EAAElD,eAAK,CAACmD,IAAI,CAACC,GAAG;IAAEC,UAAU,EAAE,KAAK;IAAEE,iBAAiB,EAAE,EAAE;IAAEC,UAAU,EAAE;EAAG,CAAC;EAC7H9C,aAAa,EAAE;IAAEX,KAAK,EAAEC,eAAK,CAACD,KAAK,CAACkD,IAAI;IAAEC,QAAQ,EAAElD,eAAK,CAACmD,IAAI,CAACyB,IAAI;IAAEtB,UAAU,EAAE,EAAE;IAAEC,iBAAiB,EAAE,EAAE;IAAEC,UAAU,EAAE;EAAE,CAAC;EAC3H3C,kBAAkB,EAAE;IAAEd,KAAK,EAAEC,eAAK,CAACD,KAAK,CAACiF,OAAO;IAAE9B,QAAQ,EAAElD,eAAK,CAACmD,IAAI,CAAC2B,OAAO;IAAExB,UAAU,EAAE,EAAE;IAAEC,iBAAiB,EAAE,EAAE;IAAEC,UAAU,EAAE;EAAE,CAAC;EACtI1C,cAAc,EAAE;IAAEmD,aAAa,EAAE,KAAK;IAAEE,GAAG,EAAE,CAAC;IAAEZ,iBAAiB,EAAE,EAAE;IAAEa,eAAe,EAAE,EAAE;IAAEF,UAAU,EAAE;EAAS,CAAC;EAClHnD,OAAO,EAAE;IAAEhB,KAAK,EAAEC,eAAK,CAACD,KAAK,CAAC8E,aAAa;IAAE3B,QAAQ,EAAElD,eAAK,CAACmD,IAAI,CAAC2B,OAAO;IAAEzB,UAAU,EAAE,KAAK;IAAEE,iBAAiB,EAAE,EAAE;IAAEa,eAAe,EAAE;EAAG,CAAC;EAC1InC,QAAQ,EAAE;IAAEgC,aAAa,EAAE,KAAK;IAAEC,UAAU,EAAE,QAAQ;IAAEC,GAAG,EAAE,CAAC;IAAEZ,iBAAiB,EAAE,EAAE;IAAEE,aAAa,EAAE;EAAG,CAAC;EAC1GtB,KAAK,EAAE;IACLwC,IAAI,EAAE,CAAC;IACPM,MAAM,EAAE,EAAE;IACV1B,iBAAiB,EAAE,EAAE;IACrBK,YAAY,EAAE5D,eAAK,CAAC6D,MAAM,CAACT,GAAG;IAC9BU,eAAe,EAAE9D,eAAK,CAACD,KAAK,CAACgE,eAAe;IAC5ChE,KAAK,EAAEC,eAAK,CAACD,KAAK,CAACkD,IAAI;IACvBC,QAAQ,EAAElD,eAAK,CAACmD,IAAI,CAACyB;EACvB,CAAC;EACDzD,MAAM,EAAE;IAAEoC,iBAAiB,EAAE,EAAE;IAAEa,eAAe,EAAE,CAAC;IAAER,YAAY,EAAE5D,eAAK,CAAC6D,MAAM,CAACT;EAAI,CAAC;EACrFhC,aAAa,EAAE;IAAE0C,eAAe,EAAE9D,eAAK,CAACD,KAAK,CAACE;EAAO,CAAC;EACtDqB,WAAW,EAAE;IAAEwC,eAAe,EAAE9D,eAAK,CAACD,KAAK,CAACoB;EAAO,CAAC;EACpD0B,cAAc,EAAE;IAAE6B,OAAO,EAAE;EAAI,CAAC;EAChCrD,iBAAiB,EAAE;IAAEtB,KAAK,EAAEC,eAAK,CAACD,KAAK,CAACmF,QAAQ;IAAEhC,QAAQ,EAAElD,eAAK,CAACmD,IAAI,CAAC2B,OAAO;IAAEzB,UAAU,EAAE;EAAM,CAAC;EACnG9B,eAAe,EAAE;IAAExB,KAAK,EAAEC,eAAK,CAACD,KAAK,CAACkD,IAAI;IAAEC,QAAQ,EAAElD,eAAK,CAACmD,IAAI,CAAC2B,OAAO;IAAEzB,UAAU,EAAE;EAAM,CAAC;EAC7FrE,OAAO,EAAE;IAAE0F,OAAO,EAAE;EAAI;AAC1B,CAAC,CAAC","ignoreList":[]}
|