sunpeak 0.10.7 → 0.11.1
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/README.md +44 -19
- package/bin/commands/dev.mjs +173 -12
- package/bin/sunpeak.js +3 -11
- package/dist/chatgpt/index.cjs +1 -1
- package/dist/chatgpt/index.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +2 -2
- package/dist/mcp/entry.cjs +1 -1
- package/dist/mcp/entry.js +1 -1
- package/dist/mcp/favicon.d.ts +2 -0
- package/dist/mcp/index.cjs +3 -1
- package/dist/mcp/index.cjs.map +1 -1
- package/dist/mcp/index.d.ts +1 -0
- package/dist/mcp/index.js +3 -1
- package/dist/{server-BLKltt88.js → server-BI9Y531R.js} +31 -3
- package/dist/{server-BLKltt88.js.map → server-BI9Y531R.js.map} +1 -1
- package/dist/{server-D_oRdZjX.cjs → server-CcLDAGBE.cjs} +31 -3
- package/dist/{server-D_oRdZjX.cjs.map → server-CcLDAGBE.cjs.map} +1 -1
- package/dist/{simulator-url-B6DZi3vV.cjs → simulator-url-CYMOGoB1.cjs} +5 -5
- package/dist/{simulator-url-B6DZi3vV.cjs.map → simulator-url-CYMOGoB1.cjs.map} +1 -1
- package/dist/{simulator-url-izFV6mji.js → simulator-url-DG79-dU3.js} +4 -4
- package/dist/{simulator-url-izFV6mji.js.map → simulator-url-DG79-dU3.js.map} +1 -1
- package/package.json +1 -1
- package/template/README.md +6 -7
- package/template/_gitignore +4 -0
- package/template/dist/albums/albums.json +1 -1
- package/template/dist/carousel/carousel.json +1 -1
- package/template/dist/map/map.json +1 -1
- package/template/dist/review/review.json +1 -1
- package/template/index.html +0 -1
- package/template/node_modules/.vite/deps/@openai_apps-sdk-ui_components_Button.js +7 -7
- package/template/node_modules/.vite/deps/@openai_apps-sdk-ui_components_SegmentedControl.js +1 -1
- package/template/node_modules/.vite/deps/@openai_apps-sdk-ui_components_Select.js +7 -7
- package/template/node_modules/.vite/deps/_metadata.json +33 -33
- package/template/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -1
- package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/@openai_apps-sdk-ui_components_Avatar.js +96 -0
- package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/@openai_apps-sdk-ui_components_Avatar.js.map +7 -0
- package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/@openai_apps-sdk-ui_components_Button.js +625 -0
- package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/@openai_apps-sdk-ui_components_Button.js.map +7 -0
- package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/@openai_apps-sdk-ui_components_Checkbox.js +33 -0
- package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/@openai_apps-sdk-ui_components_Checkbox.js.map +7 -0
- package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/@openai_apps-sdk-ui_components_Icon.js +1498 -0
- package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/@openai_apps-sdk-ui_components_Icon.js.map +7 -0
- package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/@openai_apps-sdk-ui_components_Input.js +13 -0
- package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/@openai_apps-sdk-ui_components_Input.js.map +7 -0
- package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/@openai_apps-sdk-ui_components_SegmentedControl.js +103 -0
- package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/@openai_apps-sdk-ui_components_SegmentedControl.js.map +7 -0
- package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/@openai_apps-sdk-ui_components_Select.js +3680 -0
- package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/@openai_apps-sdk-ui_components_Select.js.map +7 -0
- package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/@openai_apps-sdk-ui_components_Textarea.js +95 -0
- package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/@openai_apps-sdk-ui_components_Textarea.js.map +7 -0
- package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/@openai_apps-sdk-ui_theme.js +45 -0
- package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/@openai_apps-sdk-ui_theme.js.map +7 -0
- package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/chunk-2UDYPUBJ.js +15201 -0
- package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/chunk-2UDYPUBJ.js.map +7 -0
- package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/chunk-6QVG4F2X.js +93 -0
- package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/chunk-6QVG4F2X.js.map +7 -0
- package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/chunk-BUOVMFCD.js +1004 -0
- package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/chunk-BUOVMFCD.js.map +7 -0
- package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/chunk-CNYJBM5F.js +21 -0
- package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/chunk-CNYJBM5F.js.map +7 -0
- package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/chunk-EGRHWZRV.js +1 -0
- package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/chunk-EGRHWZRV.js.map +7 -0
- package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/chunk-ILHRZGIS.js +46 -0
- package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/chunk-ILHRZGIS.js.map +7 -0
- package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/chunk-JAGHY6H6.js +231 -0
- package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/chunk-JAGHY6H6.js.map +7 -0
- package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/chunk-JGVISENQ.js +292 -0
- package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/chunk-JGVISENQ.js.map +7 -0
- package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/chunk-P5LK4A7U.js +112 -0
- package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/chunk-P5LK4A7U.js.map +7 -0
- package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/chunk-QPJAV452.js +13 -0
- package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/chunk-QPJAV452.js.map +7 -0
- package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/chunk-RYYR2YMB.js +111 -0
- package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/chunk-RYYR2YMB.js.map +7 -0
- package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/chunk-UM3ZGDFR.js +4480 -0
- package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/chunk-UM3ZGDFR.js.map +7 -0
- package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/chunk-XZTIOEPG.js +280 -0
- package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/chunk-XZTIOEPG.js.map +7 -0
- package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/clsx.js +10 -0
- package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/clsx.js.map +7 -0
- package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/embla-carousel-react.js +1712 -0
- package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/embla-carousel-react.js.map +7 -0
- package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/embla-carousel-wheel-gestures.js +589 -0
- package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/embla-carousel-wheel-gestures.js.map +7 -0
- package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/mapbox-gl.js +32835 -0
- package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/mapbox-gl.js.map +7 -0
- package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/package.json +3 -0
- package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/react-dom.js +7 -0
- package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/react-dom.js.map +7 -0
- package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/react-dom_client.js +20217 -0
- package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/react-dom_client.js.map +7 -0
- package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/react.js +6 -0
- package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/react.js.map +7 -0
- package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/react_jsx-dev-runtime.js +278 -0
- package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/react_jsx-dev-runtime.js.map +7 -0
- package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/react_jsx-runtime.js +7 -0
- package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/react_jsx-runtime.js.map +7 -0
- package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/tailwind-merge.js +3095 -0
- package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/tailwind-merge.js.map +7 -0
- package/template/package.json +0 -1
- package/bin/commands/mcp.mjs +0 -244
- package/template/public/favicon.ico +0 -0
package/package.json
CHANGED
package/template/README.md
CHANGED
|
@@ -19,9 +19,8 @@ That's it! Edit the resource files in [./src/resources/](./src/resources/) to bu
|
|
|
19
19
|
# Core commands:
|
|
20
20
|
pnpm test # Run tests with Vitest.
|
|
21
21
|
pnpm test:e2e # Run end-to-end tests with Playwright.
|
|
22
|
-
sunpeak dev # Start
|
|
22
|
+
sunpeak dev # Start dev server + MCP endpoint.
|
|
23
23
|
sunpeak build # Build all resources for production.
|
|
24
|
-
sunpeak mcp # Start MCP server for ChatGPT testing with mock data.
|
|
25
24
|
|
|
26
25
|
# sunpeak repository (think ECR for ChatGPT Apps):
|
|
27
26
|
sunpeak login # Authenticate with the sunpeak repository.
|
|
@@ -45,11 +44,11 @@ The template includes a minimal test setup with Vitest. You can add additional t
|
|
|
45
44
|
|
|
46
45
|
## Testing in ChatGPT
|
|
47
46
|
|
|
48
|
-
Test your app directly in ChatGPT using the built-in MCP
|
|
47
|
+
Test your app directly in ChatGPT using the built-in MCP endpoint (starts automatically with `sunpeak dev`):
|
|
49
48
|
|
|
50
49
|
```bash
|
|
51
|
-
# Start the
|
|
52
|
-
sunpeak
|
|
50
|
+
# Start the dev server + MCP endpoint.
|
|
51
|
+
sunpeak dev
|
|
53
52
|
|
|
54
53
|
# In another terminal, run a tunnel. For example:
|
|
55
54
|
ngrok http 6766
|
|
@@ -59,7 +58,7 @@ You can then connect to the tunnel forwarding URL at the `/mcp` path from ChatGP
|
|
|
59
58
|
|
|
60
59
|
Once your app is connected, send the name of the app and a tool, like `/sunpeak show review`, to ChatGPT.
|
|
61
60
|
|
|
62
|
-
When you make changes to the UI, refresh your app in ChatGPT after the
|
|
61
|
+
When you make changes to the UI, refresh your app in ChatGPT after the dev server has finished rebuilding: `User > Settings > Apps & Connectors > My App > Refresh`
|
|
63
62
|
|
|
64
63
|
## Build & Deploy
|
|
65
64
|
|
|
@@ -108,7 +107,7 @@ src/resources/NAME/
|
|
|
108
107
|
└── components/ # UI components (optional)
|
|
109
108
|
```
|
|
110
109
|
|
|
111
|
-
Only the resource files (`.tsx` and `.json`) are required to generate a production build and ship a UI. Create the simulation file if you want to preview your resource in `sunpeak dev
|
|
110
|
+
Only the resource files (`.tsx` and `.json`) are required to generate a production build and ship a UI. Create the simulation file if you want to preview your resource in `sunpeak dev`.
|
|
112
111
|
|
|
113
112
|
## Resources
|
|
114
113
|
|
package/template/_gitignore
CHANGED
package/template/index.html
CHANGED
|
@@ -4,7 +4,6 @@
|
|
|
4
4
|
<meta charset="UTF-8" />
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
6
|
<title>Sunpeak - ChatGPT App framework</title>
|
|
7
|
-
<link rel="icon" type="image/x-icon" href="/favicon.ico" />
|
|
8
7
|
<!-- Establish CSS layer order BEFORE any JS-injected CSS modules -->
|
|
9
8
|
<style>@layer properties, theme, base, components, utilities;</style>
|
|
10
9
|
</head>
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Check_default,
|
|
3
|
+
Copy_default
|
|
4
|
+
} from "./chunk-UM3ZGDFR.js";
|
|
1
5
|
import {
|
|
2
6
|
useTimeout
|
|
3
7
|
} from "./chunk-JAGHY6H6.js";
|
|
4
|
-
import {
|
|
5
|
-
o
|
|
6
|
-
} from "./chunk-QPJAV452.js";
|
|
7
8
|
import {
|
|
8
9
|
handlePressableMouseEnter,
|
|
9
10
|
isDev,
|
|
@@ -15,13 +16,12 @@ import {
|
|
|
15
16
|
toTransformProperty,
|
|
16
17
|
waitForAnimationFrame
|
|
17
18
|
} from "./chunk-RYYR2YMB.js";
|
|
19
|
+
import {
|
|
20
|
+
o
|
|
21
|
+
} from "./chunk-QPJAV452.js";
|
|
18
22
|
import {
|
|
19
23
|
clsx_default
|
|
20
24
|
} from "./chunk-CNYJBM5F.js";
|
|
21
|
-
import {
|
|
22
|
-
Check_default,
|
|
23
|
-
Copy_default
|
|
24
|
-
} from "./chunk-UM3ZGDFR.js";
|
|
25
25
|
import {
|
|
26
26
|
require_jsx_runtime
|
|
27
27
|
} from "./chunk-JGVISENQ.js";
|
|
@@ -2,7 +2,6 @@ import {
|
|
|
2
2
|
handlePressableMouseEnter,
|
|
3
3
|
waitForAnimationFrame
|
|
4
4
|
} from "./chunk-6QVG4F2X.js";
|
|
5
|
-
import "./chunk-EGRHWZRV.js";
|
|
6
5
|
import {
|
|
7
6
|
useResizeObserver
|
|
8
7
|
} from "./chunk-JAGHY6H6.js";
|
|
@@ -10,6 +9,7 @@ import {
|
|
|
10
9
|
dist_exports4 as dist_exports
|
|
11
10
|
} from "./chunk-2UDYPUBJ.js";
|
|
12
11
|
import "./chunk-XZTIOEPG.js";
|
|
12
|
+
import "./chunk-EGRHWZRV.js";
|
|
13
13
|
import {
|
|
14
14
|
clsx_default
|
|
15
15
|
} from "./chunk-CNYJBM5F.js";
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
Input
|
|
3
|
-
} from "./chunk-P5LK4A7U.js";
|
|
4
1
|
import {
|
|
5
2
|
handlePressableMouseEnter,
|
|
6
3
|
isDev,
|
|
@@ -9,19 +6,22 @@ import {
|
|
|
9
6
|
toCssVariables,
|
|
10
7
|
waitForAnimationFrame
|
|
11
8
|
} from "./chunk-6QVG4F2X.js";
|
|
12
|
-
import "./chunk-EGRHWZRV.js";
|
|
13
9
|
import {
|
|
14
10
|
useTimeout
|
|
15
11
|
} from "./chunk-JAGHY6H6.js";
|
|
16
|
-
import {
|
|
17
|
-
o
|
|
18
|
-
} from "./chunk-QPJAV452.js";
|
|
19
12
|
import {
|
|
20
13
|
dist_exports,
|
|
21
14
|
dist_exports3 as dist_exports2,
|
|
22
15
|
dist_exports5 as dist_exports3
|
|
23
16
|
} from "./chunk-2UDYPUBJ.js";
|
|
24
17
|
import "./chunk-XZTIOEPG.js";
|
|
18
|
+
import {
|
|
19
|
+
Input
|
|
20
|
+
} from "./chunk-P5LK4A7U.js";
|
|
21
|
+
import "./chunk-EGRHWZRV.js";
|
|
22
|
+
import {
|
|
23
|
+
o
|
|
24
|
+
} from "./chunk-QPJAV452.js";
|
|
25
25
|
import {
|
|
26
26
|
clsx_default
|
|
27
27
|
} from "./chunk-CNYJBM5F.js";
|
|
@@ -1,140 +1,134 @@
|
|
|
1
1
|
{
|
|
2
|
-
"hash": "
|
|
3
|
-
"configHash": "
|
|
2
|
+
"hash": "4a7f9e31",
|
|
3
|
+
"configHash": "b26b5701",
|
|
4
4
|
"lockfileHash": "9d20b726",
|
|
5
|
-
"browserHash": "
|
|
5
|
+
"browserHash": "0def6af7",
|
|
6
6
|
"optimized": {
|
|
7
7
|
"react": {
|
|
8
8
|
"src": "../../../../node_modules/.pnpm/react@19.2.3/node_modules/react/index.js",
|
|
9
9
|
"file": "react.js",
|
|
10
|
-
"fileHash": "
|
|
10
|
+
"fileHash": "416bfe9c",
|
|
11
11
|
"needsInterop": true
|
|
12
12
|
},
|
|
13
13
|
"react-dom": {
|
|
14
14
|
"src": "../../../../node_modules/.pnpm/react-dom@19.2.3_react@19.2.3/node_modules/react-dom/index.js",
|
|
15
15
|
"file": "react-dom.js",
|
|
16
|
-
"fileHash": "
|
|
16
|
+
"fileHash": "12c24b96",
|
|
17
17
|
"needsInterop": true
|
|
18
18
|
},
|
|
19
19
|
"react/jsx-dev-runtime": {
|
|
20
20
|
"src": "../../../../node_modules/.pnpm/react@19.2.3/node_modules/react/jsx-dev-runtime.js",
|
|
21
21
|
"file": "react_jsx-dev-runtime.js",
|
|
22
|
-
"fileHash": "
|
|
22
|
+
"fileHash": "7b5060e6",
|
|
23
23
|
"needsInterop": true
|
|
24
24
|
},
|
|
25
25
|
"react/jsx-runtime": {
|
|
26
26
|
"src": "../../../../node_modules/.pnpm/react@19.2.3/node_modules/react/jsx-runtime.js",
|
|
27
27
|
"file": "react_jsx-runtime.js",
|
|
28
|
-
"fileHash": "
|
|
28
|
+
"fileHash": "85915065",
|
|
29
29
|
"needsInterop": true
|
|
30
30
|
},
|
|
31
31
|
"@openai/apps-sdk-ui/components/Avatar": {
|
|
32
32
|
"src": "../../../../node_modules/.pnpm/@openai+apps-sdk-ui@0.2.1_@types+react-dom@19.2.3_@types+react@19.2.7__@types+react@19._90324f97b7190ccfdbe40a9e8bef3385/node_modules/@openai/apps-sdk-ui/dist/es/components/Avatar/index.js",
|
|
33
33
|
"file": "@openai_apps-sdk-ui_components_Avatar.js",
|
|
34
|
-
"fileHash": "
|
|
34
|
+
"fileHash": "9e2bc881",
|
|
35
35
|
"needsInterop": false
|
|
36
36
|
},
|
|
37
37
|
"@openai/apps-sdk-ui/components/Button": {
|
|
38
38
|
"src": "../../../../node_modules/.pnpm/@openai+apps-sdk-ui@0.2.1_@types+react-dom@19.2.3_@types+react@19.2.7__@types+react@19._90324f97b7190ccfdbe40a9e8bef3385/node_modules/@openai/apps-sdk-ui/dist/es/components/Button/index.js",
|
|
39
39
|
"file": "@openai_apps-sdk-ui_components_Button.js",
|
|
40
|
-
"fileHash": "
|
|
40
|
+
"fileHash": "e81630c1",
|
|
41
41
|
"needsInterop": false
|
|
42
42
|
},
|
|
43
43
|
"@openai/apps-sdk-ui/components/Checkbox": {
|
|
44
44
|
"src": "../../../../node_modules/.pnpm/@openai+apps-sdk-ui@0.2.1_@types+react-dom@19.2.3_@types+react@19.2.8__@types+react@19._10810175a7ab45acace17e46639bb69b/node_modules/@openai/apps-sdk-ui/dist/es/components/Checkbox/index.js",
|
|
45
45
|
"file": "@openai_apps-sdk-ui_components_Checkbox.js",
|
|
46
|
-
"fileHash": "
|
|
46
|
+
"fileHash": "417ae842",
|
|
47
47
|
"needsInterop": false
|
|
48
48
|
},
|
|
49
49
|
"@openai/apps-sdk-ui/components/Icon": {
|
|
50
50
|
"src": "../../../../node_modules/.pnpm/@openai+apps-sdk-ui@0.2.1_@types+react-dom@19.2.3_@types+react@19.2.7__@types+react@19._90324f97b7190ccfdbe40a9e8bef3385/node_modules/@openai/apps-sdk-ui/dist/es/components/Icon/index.js",
|
|
51
51
|
"file": "@openai_apps-sdk-ui_components_Icon.js",
|
|
52
|
-
"fileHash": "
|
|
52
|
+
"fileHash": "7838ceab",
|
|
53
53
|
"needsInterop": false
|
|
54
54
|
},
|
|
55
55
|
"@openai/apps-sdk-ui/components/Input": {
|
|
56
56
|
"src": "../../../../node_modules/.pnpm/@openai+apps-sdk-ui@0.2.1_@types+react-dom@19.2.3_@types+react@19.2.8__@types+react@19._10810175a7ab45acace17e46639bb69b/node_modules/@openai/apps-sdk-ui/dist/es/components/Input/index.js",
|
|
57
57
|
"file": "@openai_apps-sdk-ui_components_Input.js",
|
|
58
|
-
"fileHash": "
|
|
58
|
+
"fileHash": "5505fcba",
|
|
59
59
|
"needsInterop": false
|
|
60
60
|
},
|
|
61
61
|
"@openai/apps-sdk-ui/components/SegmentedControl": {
|
|
62
62
|
"src": "../../../../node_modules/.pnpm/@openai+apps-sdk-ui@0.2.1_@types+react-dom@19.2.3_@types+react@19.2.8__@types+react@19._10810175a7ab45acace17e46639bb69b/node_modules/@openai/apps-sdk-ui/dist/es/components/SegmentedControl/index.js",
|
|
63
63
|
"file": "@openai_apps-sdk-ui_components_SegmentedControl.js",
|
|
64
|
-
"fileHash": "
|
|
64
|
+
"fileHash": "ebdf4e6d",
|
|
65
65
|
"needsInterop": false
|
|
66
66
|
},
|
|
67
67
|
"@openai/apps-sdk-ui/components/Select": {
|
|
68
68
|
"src": "../../../../node_modules/.pnpm/@openai+apps-sdk-ui@0.2.1_@types+react-dom@19.2.3_@types+react@19.2.8__@types+react@19._10810175a7ab45acace17e46639bb69b/node_modules/@openai/apps-sdk-ui/dist/es/components/Select/index.js",
|
|
69
69
|
"file": "@openai_apps-sdk-ui_components_Select.js",
|
|
70
|
-
"fileHash": "
|
|
70
|
+
"fileHash": "74a9ac3b",
|
|
71
71
|
"needsInterop": false
|
|
72
72
|
},
|
|
73
73
|
"@openai/apps-sdk-ui/components/Textarea": {
|
|
74
74
|
"src": "../../../../node_modules/.pnpm/@openai+apps-sdk-ui@0.2.1_@types+react-dom@19.2.3_@types+react@19.2.8__@types+react@19._10810175a7ab45acace17e46639bb69b/node_modules/@openai/apps-sdk-ui/dist/es/components/Textarea/index.js",
|
|
75
75
|
"file": "@openai_apps-sdk-ui_components_Textarea.js",
|
|
76
|
-
"fileHash": "
|
|
76
|
+
"fileHash": "de06e9c1",
|
|
77
77
|
"needsInterop": false
|
|
78
78
|
},
|
|
79
79
|
"@openai/apps-sdk-ui/theme": {
|
|
80
80
|
"src": "../../../../node_modules/.pnpm/@openai+apps-sdk-ui@0.2.1_@types+react-dom@19.2.3_@types+react@19.2.8__@types+react@19._10810175a7ab45acace17e46639bb69b/node_modules/@openai/apps-sdk-ui/dist/es/lib/theme.js",
|
|
81
81
|
"file": "@openai_apps-sdk-ui_theme.js",
|
|
82
|
-
"fileHash": "
|
|
82
|
+
"fileHash": "fcfba56d",
|
|
83
83
|
"needsInterop": false
|
|
84
84
|
},
|
|
85
85
|
"clsx": {
|
|
86
86
|
"src": "../../../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs",
|
|
87
87
|
"file": "clsx.js",
|
|
88
|
-
"fileHash": "
|
|
88
|
+
"fileHash": "1cf6a50a",
|
|
89
89
|
"needsInterop": false
|
|
90
90
|
},
|
|
91
91
|
"embla-carousel-react": {
|
|
92
92
|
"src": "../../../../node_modules/.pnpm/embla-carousel-react@8.6.0_react@19.2.3/node_modules/embla-carousel-react/esm/embla-carousel-react.esm.js",
|
|
93
93
|
"file": "embla-carousel-react.js",
|
|
94
|
-
"fileHash": "
|
|
94
|
+
"fileHash": "93fbfb3b",
|
|
95
95
|
"needsInterop": false
|
|
96
96
|
},
|
|
97
97
|
"embla-carousel-wheel-gestures": {
|
|
98
98
|
"src": "../../../../node_modules/.pnpm/embla-carousel-wheel-gestures@8.1.0_embla-carousel@8.6.0/node_modules/embla-carousel-wheel-gestures/dist/embla-carousel-wheel-gestures.esm.js",
|
|
99
99
|
"file": "embla-carousel-wheel-gestures.js",
|
|
100
|
-
"fileHash": "
|
|
100
|
+
"fileHash": "195bec07",
|
|
101
101
|
"needsInterop": false
|
|
102
102
|
},
|
|
103
103
|
"mapbox-gl": {
|
|
104
104
|
"src": "../../../../node_modules/.pnpm/mapbox-gl@3.17.0/node_modules/mapbox-gl/dist/mapbox-gl.js",
|
|
105
105
|
"file": "mapbox-gl.js",
|
|
106
|
-
"fileHash": "
|
|
106
|
+
"fileHash": "17a20191",
|
|
107
107
|
"needsInterop": true
|
|
108
108
|
},
|
|
109
109
|
"react-dom/client": {
|
|
110
110
|
"src": "../../../../node_modules/.pnpm/react-dom@19.2.3_react@19.2.3/node_modules/react-dom/client.js",
|
|
111
111
|
"file": "react-dom_client.js",
|
|
112
|
-
"fileHash": "
|
|
112
|
+
"fileHash": "b58b4826",
|
|
113
113
|
"needsInterop": true
|
|
114
114
|
},
|
|
115
115
|
"tailwind-merge": {
|
|
116
116
|
"src": "../../../../node_modules/.pnpm/tailwind-merge@3.4.0/node_modules/tailwind-merge/dist/bundle-mjs.mjs",
|
|
117
117
|
"file": "tailwind-merge.js",
|
|
118
|
-
"fileHash": "
|
|
118
|
+
"fileHash": "2f27906e",
|
|
119
119
|
"needsInterop": false
|
|
120
120
|
}
|
|
121
121
|
},
|
|
122
122
|
"chunks": {
|
|
123
|
-
"chunk-P5LK4A7U": {
|
|
124
|
-
"file": "chunk-P5LK4A7U.js"
|
|
125
|
-
},
|
|
126
123
|
"chunk-6QVG4F2X": {
|
|
127
124
|
"file": "chunk-6QVG4F2X.js"
|
|
128
125
|
},
|
|
129
|
-
"chunk-
|
|
130
|
-
"file": "chunk-
|
|
126
|
+
"chunk-UM3ZGDFR": {
|
|
127
|
+
"file": "chunk-UM3ZGDFR.js"
|
|
131
128
|
},
|
|
132
129
|
"chunk-JAGHY6H6": {
|
|
133
130
|
"file": "chunk-JAGHY6H6.js"
|
|
134
131
|
},
|
|
135
|
-
"chunk-QPJAV452": {
|
|
136
|
-
"file": "chunk-QPJAV452.js"
|
|
137
|
-
},
|
|
138
132
|
"chunk-RYYR2YMB": {
|
|
139
133
|
"file": "chunk-RYYR2YMB.js"
|
|
140
134
|
},
|
|
@@ -144,12 +138,18 @@
|
|
|
144
138
|
"chunk-XZTIOEPG": {
|
|
145
139
|
"file": "chunk-XZTIOEPG.js"
|
|
146
140
|
},
|
|
141
|
+
"chunk-P5LK4A7U": {
|
|
142
|
+
"file": "chunk-P5LK4A7U.js"
|
|
143
|
+
},
|
|
144
|
+
"chunk-EGRHWZRV": {
|
|
145
|
+
"file": "chunk-EGRHWZRV.js"
|
|
146
|
+
},
|
|
147
|
+
"chunk-QPJAV452": {
|
|
148
|
+
"file": "chunk-QPJAV452.js"
|
|
149
|
+
},
|
|
147
150
|
"chunk-CNYJBM5F": {
|
|
148
151
|
"file": "chunk-CNYJBM5F.js"
|
|
149
152
|
},
|
|
150
|
-
"chunk-UM3ZGDFR": {
|
|
151
|
-
"file": "chunk-UM3ZGDFR.js"
|
|
152
|
-
},
|
|
153
153
|
"chunk-JGVISENQ": {
|
|
154
154
|
"file": "chunk-JGVISENQ.js"
|
|
155
155
|
},
|
package/template/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":"4.0.16","results":[[":src/resources/albums/components/albums.test.tsx",{"duration":
|
|
1
|
+
{"version":"4.0.16","results":[[":src/resources/albums/components/albums.test.tsx",{"duration":368.913192,"failed":false}],[":src/resources/review/review-resource.test.tsx",{"duration":548.241282,"failed":false}],[":src/resources/carousel/carousel-resource.test.tsx",{"duration":270.03080899999986,"failed":false}],[":src/resources/map/components/map-view.test.tsx",{"duration":95.30531999999994,"failed":false}],[":src/resources/map/components/place-inspector.test.tsx",{"duration":461.01467,"failed":false}],[":src/resources/albums/components/fullscreen-viewer.test.tsx",{"duration":265.73868300000004,"failed":false}],[":src/resources/map/components/place-list.test.tsx",{"duration":141.19271300000037,"failed":false}],[":src/resources/map/components/place-card.test.tsx",{"duration":368.02030500000023,"failed":false}],[":src/resources/map/components/place-carousel.test.tsx",{"duration":447.1268270000003,"failed":false}],[":src/resources/albums/components/album-carousel.test.tsx",{"duration":76.99177499999996,"failed":false}],[":src/resources/carousel/components/carousel.test.tsx",{"duration":82.18443700000012,"failed":false}],[":src/resources/map/map-resource.test.tsx",{"duration":307.5362889999999,"failed":false}],[":src/resources/albums/albums-resource.test.tsx",{"duration":275.64505599999984,"failed":false}],[":src/resources/albums/components/film-strip.test.tsx",{"duration":442.6262569999999,"failed":false}],[":src/resources/albums/components/album-card.test.tsx",{"duration":334.53105099999993,"failed":false}],[":src/resources/carousel/components/card.test.tsx",{"duration":78.75377200000003,"failed":false}]]}
|
package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/@openai_apps-sdk-ui_components_Avatar.js
ADDED
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import {
|
|
2
|
+
toCssVariables
|
|
3
|
+
} from "./chunk-RYYR2YMB.js";
|
|
4
|
+
import {
|
|
5
|
+
clsx_default
|
|
6
|
+
} from "./chunk-CNYJBM5F.js";
|
|
7
|
+
import {
|
|
8
|
+
require_jsx_runtime
|
|
9
|
+
} from "./chunk-JGVISENQ.js";
|
|
10
|
+
import {
|
|
11
|
+
require_react
|
|
12
|
+
} from "./chunk-BUOVMFCD.js";
|
|
13
|
+
import {
|
|
14
|
+
__toESM
|
|
15
|
+
} from "./chunk-ILHRZGIS.js";
|
|
16
|
+
|
|
17
|
+
// ../node_modules/.pnpm/@openai+apps-sdk-ui@0.2.1_@types+react-dom@19.2.3_@types+react@19.2.7__@types+react@19._90324f97b7190ccfdbe40a9e8bef3385/node_modules/@openai/apps-sdk-ui/dist/es/components/Avatar/Avatar.js
|
|
18
|
+
var import_jsx_runtime = __toESM(require_jsx_runtime());
|
|
19
|
+
var import_react = __toESM(require_react());
|
|
20
|
+
var import_react2 = __toESM(require_react());
|
|
21
|
+
import s from "/home/runner/work/sunpeak/sunpeak/node_modules/.pnpm/@openai+apps-sdk-ui@0.2.1_@types+react-dom@19.2.3_@types+react@19.2.7__@types+react@19._90324f97b7190ccfdbe40a9e8bef3385/node_modules/@openai/apps-sdk-ui/dist/es/components/Avatar/Avatar.module.css";
|
|
22
|
+
var Avatar = (props) => {
|
|
23
|
+
const validImageUrl = validateImageUrl(props.imageUrl);
|
|
24
|
+
return (0, import_react.createElement)(AvatarInner, { ...props, imageUrl: validImageUrl, key: validImageUrl });
|
|
25
|
+
};
|
|
26
|
+
var AvatarInner = (props) => {
|
|
27
|
+
const {
|
|
28
|
+
className,
|
|
29
|
+
size,
|
|
30
|
+
overflowCount,
|
|
31
|
+
name,
|
|
32
|
+
color = "secondary",
|
|
33
|
+
variant = "soft",
|
|
34
|
+
imageUrl,
|
|
35
|
+
Icon,
|
|
36
|
+
// asChild support
|
|
37
|
+
...restProps
|
|
38
|
+
} = props;
|
|
39
|
+
const [imageStatus, setImageStatus] = (0, import_react2.useState)();
|
|
40
|
+
const isInteractive = !!(restProps.onPointerDown || restProps.onClick);
|
|
41
|
+
const TagName = isInteractive ? "button" : "span";
|
|
42
|
+
return (0, import_jsx_runtime.jsx)(TagName, { className: clsx_default(s.Avatar, className), style: toCssVariables({
|
|
43
|
+
"avatar-size": size
|
|
44
|
+
}), role: isInteractive ? void 0 : "presentation", "data-color": color, "data-variant": variant, type: isInteractive ? "button" : void 0, ...restProps, children: (() => {
|
|
45
|
+
if (imageUrl && imageStatus !== "error") {
|
|
46
|
+
return (0, import_jsx_runtime.jsx)(AvatarImage, { status: imageStatus, url: imageUrl, onError: () => setImageStatus("error"), onLoad: () => setImageStatus("loaded") });
|
|
47
|
+
}
|
|
48
|
+
if (Icon) {
|
|
49
|
+
return (0, import_jsx_runtime.jsx)(Icon, { className: s.AvatarIcon });
|
|
50
|
+
}
|
|
51
|
+
return overflowCount ? (0, import_jsx_runtime.jsx)(AvatarOverflowCount, { count: overflowCount }) : (0, import_jsx_runtime.jsx)(AvatarInitial, { name });
|
|
52
|
+
})() });
|
|
53
|
+
};
|
|
54
|
+
var validateImageUrl = (imageUrl) => {
|
|
55
|
+
if (!imageUrl) {
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
if (imageUrl.includes("gravatar.com") && imageUrl.includes("cdn.auth0.com")) {
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
return imageUrl;
|
|
62
|
+
};
|
|
63
|
+
var AvatarImage = ({ url, status, onLoad, onError }) => {
|
|
64
|
+
return (0, import_jsx_runtime.jsx)("span", { className: s.AvatarImageContainer, children: (0, import_jsx_runtime.jsx)("img", { src: url, className: s.AvatarImage, "data-loaded": status === "loaded" ? "" : void 0, onLoad, onError, alt: "", role: "presentation" }) });
|
|
65
|
+
};
|
|
66
|
+
var AvatarInitial = ({ name = "" }) => {
|
|
67
|
+
const firstInitial = (0, import_react2.useMemo)(() => name.charAt(0).toUpperCase(), [name]);
|
|
68
|
+
return (0, import_jsx_runtime.jsx)("span", { className: s.AvatarInitial, children: firstInitial });
|
|
69
|
+
};
|
|
70
|
+
var AvatarOverflowCount = ({ count }) => {
|
|
71
|
+
const formattedCount = (0, import_react2.useMemo)(() => {
|
|
72
|
+
return new Intl.NumberFormat("en", {
|
|
73
|
+
notation: "compact",
|
|
74
|
+
compactDisplay: "short",
|
|
75
|
+
maximumFractionDigits: 0
|
|
76
|
+
}).format(count).toLocaleLowerCase();
|
|
77
|
+
}, [count]);
|
|
78
|
+
return (0, import_jsx_runtime.jsxs)("span", { className: s.AvatarOverflowCount, "data-letter-count": formattedCount.length, children: [(0, import_jsx_runtime.jsx)("span", { className: s.AvatarOverflowCountSymbol, children: "+" }), formattedCount] });
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
// ../node_modules/.pnpm/@openai+apps-sdk-ui@0.2.1_@types+react-dom@19.2.3_@types+react@19.2.7__@types+react@19._90324f97b7190ccfdbe40a9e8bef3385/node_modules/@openai/apps-sdk-ui/dist/es/components/Avatar/AvatarGroup.js
|
|
82
|
+
var import_jsx_runtime2 = __toESM(require_jsx_runtime());
|
|
83
|
+
var import_react3 = __toESM(require_react());
|
|
84
|
+
import s2 from "/home/runner/work/sunpeak/sunpeak/node_modules/.pnpm/@openai+apps-sdk-ui@0.2.1_@types+react-dom@19.2.3_@types+react@19.2.7__@types+react@19._90324f97b7190ccfdbe40a9e8bef3385/node_modules/@openai/apps-sdk-ui/dist/es/components/Avatar/AvatarGroup.module.css";
|
|
85
|
+
var AvatarGroup = ({ className, stack = "start", size, children }) => {
|
|
86
|
+
const childrenArray = import_react3.Children.toArray(children);
|
|
87
|
+
const maybeReversedChildren = stack === "start" ? childrenArray.slice().reverse() : childrenArray;
|
|
88
|
+
return (0, import_jsx_runtime2.jsx)("div", { className: clsx_default(s2.Group, className), "data-stack": stack, style: toCssVariables({
|
|
89
|
+
"avatar-size": size
|
|
90
|
+
}), children: maybeReversedChildren.map((child) => (0, import_react3.isValidElement)(child) ? (0, import_react3.cloneElement)(child) : child) });
|
|
91
|
+
};
|
|
92
|
+
export {
|
|
93
|
+
Avatar,
|
|
94
|
+
AvatarGroup
|
|
95
|
+
};
|
|
96
|
+
//# sourceMappingURL=@openai_apps-sdk-ui_components_Avatar.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../node_modules/.pnpm/@openai+apps-sdk-ui@0.2.1_@types+react-dom@19.2.3_@types+react@19.2.7__@types+react@19._90324f97b7190ccfdbe40a9e8bef3385/node_modules/@openai/apps-sdk-ui/src/components/Avatar/Avatar.tsx", "../../../../node_modules/.pnpm/@openai+apps-sdk-ui@0.2.1_@types+react-dom@19.2.3_@types+react@19.2.7__@types+react@19._90324f97b7190ccfdbe40a9e8bef3385/node_modules/@openai/apps-sdk-ui/src/components/Avatar/AvatarGroup.tsx"],
|
|
4
|
+
"sourcesContent": ["\"use client\"\n\nimport clsx from \"clsx\"\nimport { useMemo, useState } from \"react\"\nimport { toCssVariables } from \"../../lib/helpers\"\nimport { type SemanticColors, type Variants } from \"../../types\"\nimport s from \"./Avatar.module.css\"\n\ntype ImageStatus = undefined | \"error\" | \"loaded\"\n\nexport type AvatarProps = {\n /** Class name applied to the avatar */\n className?: string\n /** Size of the avatar's width & height, in pixels. */\n size?: number\n /** Display a formatted count of overflow objects. */\n overflowCount?: number\n /** Name used to display initials from */\n name?: string\n /**\n * Color used for the avatar\n * @default secondary\n */\n color?: SemanticColors<\"primary\" | \"secondary\" | \"success\" | \"info\" | \"discovery\" | \"danger\">\n /**\n * Style variant of the avatar\n * @default soft\n */\n variant?: Variants<\"soft\" | \"solid\">\n /** URL of the image to display as the avatar */\n imageUrl?: string\n /** Icon to render in the avatar circle */\n Icon?: React.ComponentType<React.SVGProps<SVGSVGElement>>\n /** Optional click handler, which also enables semantic interactions */\n onClick?: () => void\n /** Optional pointer handler, which also enables semantic interactions */\n onPointerDown?: () => void\n}\n\nexport const Avatar = (props: AvatarProps) => {\n // Validate the image url before sending to the component\n const validImageUrl = validateImageUrl(props.imageUrl)\n\n // Keying off of imageUrl allows us to refresh imageStatus automatically through React rendering\n return <AvatarInner {...props} imageUrl={validImageUrl} key={validImageUrl} />\n}\n\nexport const AvatarInner = (props: AvatarProps) => {\n const {\n className,\n size,\n overflowCount,\n name,\n color = \"secondary\",\n variant = \"soft\",\n imageUrl,\n Icon,\n // asChild support\n ...restProps\n } = props\n const [imageStatus, setImageStatus] = useState<ImageStatus>()\n const isInteractive = !!(restProps.onPointerDown || restProps.onClick)\n const TagName = isInteractive ? \"button\" : \"span\"\n\n return (\n <TagName\n className={clsx(s.Avatar, className)}\n style={toCssVariables({\n \"avatar-size\": size,\n })}\n role={isInteractive ? undefined : \"presentation\"}\n data-color={color}\n data-variant={variant}\n type={isInteractive ? \"button\" : undefined}\n {...restProps}\n >\n {(() => {\n if (imageUrl && imageStatus !== \"error\") {\n return (\n <AvatarImage\n status={imageStatus}\n url={imageUrl}\n onError={() => setImageStatus(\"error\")}\n onLoad={() => setImageStatus(\"loaded\")}\n />\n )\n }\n if (Icon) {\n return <Icon className={s.AvatarIcon} />\n }\n return overflowCount ? (\n <AvatarOverflowCount count={overflowCount} />\n ) : (\n <AvatarInitial name={name} />\n )\n })()}\n </TagName>\n )\n}\n\nconst validateImageUrl = (imageUrl?: string): string | undefined => {\n if (!imageUrl) {\n return\n }\n\n // Avoid specific pattern of images from gravatar.com, which use a pair of initials, instead of a single initial.\n if (imageUrl.includes(\"gravatar.com\") && imageUrl.includes(\"cdn.auth0.com\")) {\n return\n }\n\n return imageUrl\n}\n\nconst AvatarImage = ({\n url,\n status,\n onLoad,\n onError,\n}: {\n url: string\n status: ImageStatus\n onLoad: () => void\n onError: () => void\n}) => {\n return (\n <span className={s.AvatarImageContainer}>\n <img\n src={url}\n className={s.AvatarImage}\n data-loaded={status === \"loaded\" ? \"\" : undefined}\n onLoad={onLoad}\n onError={onError}\n alt=\"\"\n role=\"presentation\"\n />\n </span>\n )\n}\n\nconst AvatarInitial = ({ name = \"\" }: { name?: string }) => {\n const firstInitial = useMemo(() => name.charAt(0).toUpperCase(), [name])\n\n return <span className={s.AvatarInitial}>{firstInitial}</span>\n}\n\nconst AvatarOverflowCount = ({ count }: { count: number }) => {\n const formattedCount = useMemo<string>(() => {\n return new Intl.NumberFormat(\"en\", {\n notation: \"compact\",\n compactDisplay: \"short\",\n maximumFractionDigits: 0,\n })\n .format(count)\n .toLocaleLowerCase()\n }, [count])\n\n return (\n <span className={s.AvatarOverflowCount} data-letter-count={formattedCount.length}>\n <span className={s.AvatarOverflowCountSymbol}>+</span>\n {formattedCount}\n </span>\n )\n}\n", "import clsx from \"clsx\"\nimport { Children, cloneElement, isValidElement, type ReactNode } from \"react\"\nimport { toCssVariables } from \"../../lib/helpers\"\nimport s from \"./AvatarGroup.module.css\"\n\nexport type AvatarGroupProps = {\n /** Class name passed to the group container */\n className?: string\n /**\n * Determines stacking layer order\n * @default start\n */\n stack?: \"start\" | \"end\"\n /** Size all avatars in the group, in pixels. */\n size?: number\n children: ReactNode\n}\n\nexport const AvatarGroup = ({ className, stack = \"start\", size, children }: AvatarGroupProps) => {\n const childrenArray = Children.toArray(children)\n // Conditionally reverse the array depending on desired stacking priority\n const maybeReversedChildren = stack === \"start\" ? childrenArray.slice().reverse() : childrenArray\n\n return (\n <div\n className={clsx(s.Group, className)}\n data-stack={stack}\n style={toCssVariables({\n \"avatar-size\": size,\n })}\n >\n {maybeReversedChildren.map((child) => (isValidElement(child) ? cloneElement(child) : child))}\n </div>\n )\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;AAGA,IAAAA,gBAAkC;AAGlC,OAAO,OAAO;AAiCP,IAAM,SAAS,CAAC,UAAsB;AAE3C,QAAM,gBAAgB,iBAAiB,MAAM,QAAQ;AAGrD,aAAO,aAAAC,eAAC,aAAW,EAAA,GAAK,OAAO,UAAU,eAAe,KAAK,cAAa,CAAA;AAC5E;AAEO,IAAM,cAAc,CAAC,UAAsB;AAChD,QAAM;IACJ;IACA;IACA;IACA;IACA,QAAQ;IACR,UAAU;IACV;IACA;;IAEA,GAAG;EAAS,IACV;AACJ,QAAM,CAAC,aAAa,cAAc,QAAI,wBAAQ;AAC9C,QAAM,gBAAgB,CAAC,EAAE,UAAU,iBAAiB,UAAU;AAC9D,QAAM,UAAU,gBAAgB,WAAW;AAE3C,aACE,mBAAAC,KAAC,SAAO,EACN,WAAW,aAAK,EAAE,QAAQ,SAAS,GACnC,OAAO,eAAe;IACpB,eAAe;GAChB,GACD,MAAM,gBAAgB,SAAY,gBAAc,cACpC,OAAK,gBACH,SACd,MAAM,gBAAgB,WAAW,QAAS,GACtC,WAAS,WAEX,MAAK;AACL,QAAI,YAAY,gBAAgB,SAAS;AACvC,iBACE,mBAAAA,KAAC,aAAW,EACV,QAAQ,aACR,KAAK,UACL,SAAS,MAAM,eAAe,OAAO,GACrC,QAAQ,MAAM,eAAe,QAAQ,EAAC,CAAA;IAG5C;AACA,QAAI,MAAM;AACR,iBAAO,mBAAAA,KAAC,MAAI,EAAC,WAAW,EAAE,WAAU,CAAA;IACtC;AACA,WAAO,oBACL,mBAAAA,KAAC,qBAAmB,EAAC,OAAO,cAAa,CAAA,QAEzC,mBAAAA,KAAC,eAAa,EAAC,KAAU,CAAA;EAE7B,GAAE,EAAE,CAAA;AAGV;AAEA,IAAM,mBAAmB,CAAC,aAAyC;AACjE,MAAI,CAAC,UAAU;AACb;EACF;AAGA,MAAI,SAAS,SAAS,cAAc,KAAK,SAAS,SAAS,eAAe,GAAG;AAC3E;EACF;AAEA,SAAO;AACT;AAEA,IAAM,cAAc,CAAC,EACnB,KACA,QACA,QACA,QAAO,MAMJ;AACH,aACE,mBAAAA,KAAA,QAAA,EAAM,WAAW,EAAE,sBAAoB,cACrC,mBAAAA,KAAA,OAAA,EACE,KAAK,KACL,WAAW,EAAE,aAAW,eACX,WAAW,WAAW,KAAK,QACxC,QACA,SACA,KAAI,IACJ,MAAK,eAAc,CAAA,EACnB,CAAA;AAGR;AAEA,IAAM,gBAAgB,CAAC,EAAE,OAAO,GAAE,MAAyB;AACzD,QAAM,mBAAe,uBAAQ,MAAM,KAAK,OAAO,CAAC,EAAE,YAAW,GAAI,CAAC,IAAI,CAAC;AAEvE,aAAO,mBAAAA,KAAA,QAAA,EAAM,WAAW,EAAE,eAAa,UAAG,aAAY,CAAA;AACxD;AAEA,IAAM,sBAAsB,CAAC,EAAE,MAAK,MAAyB;AAC3D,QAAM,qBAAiB,uBAAgB,MAAK;AAC1C,WAAO,IAAI,KAAK,aAAa,MAAM;MACjC,UAAU;MACV,gBAAgB;MAChB,uBAAuB;KACxB,EACE,OAAO,KAAK,EACZ,kBAAiB;EACtB,GAAG,CAAC,KAAK,CAAC;AAEV,aACE,mBAAAC,MAAA,QAAA,EAAM,WAAW,EAAE,qBAAmB,qBAAqB,eAAe,QAAM,UAAA,KAC9E,mBAAAD,KAAA,QAAA,EAAM,WAAW,EAAE,2BAAyB,UAAA,IAAA,CAAA,GAC3C,cAAc,EAAA,CAAA;AAGrB;;;;ACjKA,IAAAE,gBAAuE;AAEvE,OAAOC,QAAO;AAeP,IAAM,cAAc,CAAC,EAAE,WAAW,QAAQ,SAAS,MAAM,SAAQ,MAAwB;AAC9F,QAAM,gBAAgB,uBAAS,QAAQ,QAAQ;AAE/C,QAAM,wBAAwB,UAAU,UAAU,cAAc,MAAK,EAAG,QAAO,IAAK;AAEpF,aACE,oBAAAC,KAAA,OAAA,EACE,WAAW,aAAKD,GAAE,OAAO,SAAS,GAAC,cACvB,OACZ,OAAO,eAAe;IACpB,eAAe;GAChB,GAAC,UAED,sBAAsB,IAAI,CAAC,cAAW,8BAAe,KAAK,QAAI,4BAAa,KAAK,IAAI,KAAM,EAAC,CAAA;AAGlG;",
|
|
6
|
+
"names": ["import_react", "_createElement", "_jsx", "_jsxs", "import_react", "s", "_jsx"]
|
|
7
|
+
}
|