sunpeak 0.10.6 → 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.
Files changed (112) hide show
  1. package/README.md +44 -19
  2. package/bin/commands/dev.mjs +173 -12
  3. package/bin/sunpeak.js +3 -11
  4. package/dist/chatgpt/index.cjs +1 -1
  5. package/dist/chatgpt/index.js +1 -1
  6. package/dist/index.cjs +1 -1
  7. package/dist/index.js +2 -2
  8. package/dist/mcp/entry.cjs +2 -1
  9. package/dist/mcp/entry.cjs.map +1 -1
  10. package/dist/mcp/entry.js +2 -1
  11. package/dist/mcp/entry.js.map +1 -1
  12. package/dist/mcp/favicon.d.ts +2 -0
  13. package/dist/mcp/index.cjs +3 -1
  14. package/dist/mcp/index.cjs.map +1 -1
  15. package/dist/mcp/index.d.ts +1 -0
  16. package/dist/mcp/index.js +3 -1
  17. package/dist/mcp/types.d.ts +7 -0
  18. package/dist/{server-CnRhUNGQ.js → server-BI9Y531R.js} +153 -29
  19. package/dist/{server-CnRhUNGQ.js.map → server-BI9Y531R.js.map} +1 -1
  20. package/dist/{server-B-T6Y3-J.cjs → server-CcLDAGBE.cjs} +153 -29
  21. package/dist/{server-B-T6Y3-J.cjs.map → server-CcLDAGBE.cjs.map} +1 -1
  22. package/dist/{simulator-url-pSDp_VWO.cjs → simulator-url-CYMOGoB1.cjs} +28 -17
  23. package/dist/simulator-url-CYMOGoB1.cjs.map +1 -0
  24. package/dist/{simulator-url-BUKX-wRa.js → simulator-url-DG79-dU3.js} +27 -16
  25. package/dist/simulator-url-DG79-dU3.js.map +1 -0
  26. package/package.json +1 -1
  27. package/template/README.md +6 -7
  28. package/template/_gitignore +4 -0
  29. package/template/dist/albums/albums.js +4 -4
  30. package/template/dist/albums/albums.json +1 -1
  31. package/template/dist/carousel/carousel.js +3 -3
  32. package/template/dist/carousel/carousel.json +1 -1
  33. package/template/dist/map/map.js +8 -8
  34. package/template/dist/map/map.json +1 -1
  35. package/template/dist/review/review.js +3 -3
  36. package/template/dist/review/review.json +1 -1
  37. package/template/index.html +0 -1
  38. package/template/node_modules/.vite/deps/@openai_apps-sdk-ui_components_Button.js +7 -7
  39. package/template/node_modules/.vite/deps/@openai_apps-sdk-ui_components_SegmentedControl.js +1 -1
  40. package/template/node_modules/.vite/deps/@openai_apps-sdk-ui_components_Select.js +7 -7
  41. package/template/node_modules/.vite/deps/_metadata.json +34 -34
  42. package/template/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -1
  43. package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/@openai_apps-sdk-ui_components_Avatar.js +96 -0
  44. package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/@openai_apps-sdk-ui_components_Avatar.js.map +7 -0
  45. package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/@openai_apps-sdk-ui_components_Button.js +625 -0
  46. package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/@openai_apps-sdk-ui_components_Button.js.map +7 -0
  47. package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/@openai_apps-sdk-ui_components_Checkbox.js +33 -0
  48. package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/@openai_apps-sdk-ui_components_Checkbox.js.map +7 -0
  49. package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/@openai_apps-sdk-ui_components_Icon.js +1498 -0
  50. package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/@openai_apps-sdk-ui_components_Icon.js.map +7 -0
  51. package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/@openai_apps-sdk-ui_components_Input.js +13 -0
  52. package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/@openai_apps-sdk-ui_components_Input.js.map +7 -0
  53. package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/@openai_apps-sdk-ui_components_SegmentedControl.js +103 -0
  54. package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/@openai_apps-sdk-ui_components_SegmentedControl.js.map +7 -0
  55. package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/@openai_apps-sdk-ui_components_Select.js +3680 -0
  56. package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/@openai_apps-sdk-ui_components_Select.js.map +7 -0
  57. package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/@openai_apps-sdk-ui_components_Textarea.js +95 -0
  58. package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/@openai_apps-sdk-ui_components_Textarea.js.map +7 -0
  59. package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/@openai_apps-sdk-ui_theme.js +45 -0
  60. package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/@openai_apps-sdk-ui_theme.js.map +7 -0
  61. package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/chunk-2UDYPUBJ.js +15201 -0
  62. package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/chunk-2UDYPUBJ.js.map +7 -0
  63. package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/chunk-6QVG4F2X.js +93 -0
  64. package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/chunk-6QVG4F2X.js.map +7 -0
  65. package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/chunk-BUOVMFCD.js +1004 -0
  66. package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/chunk-BUOVMFCD.js.map +7 -0
  67. package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/chunk-CNYJBM5F.js +21 -0
  68. package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/chunk-CNYJBM5F.js.map +7 -0
  69. package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/chunk-EGRHWZRV.js +1 -0
  70. package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/chunk-EGRHWZRV.js.map +7 -0
  71. package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/chunk-ILHRZGIS.js +46 -0
  72. package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/chunk-ILHRZGIS.js.map +7 -0
  73. package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/chunk-JAGHY6H6.js +231 -0
  74. package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/chunk-JAGHY6H6.js.map +7 -0
  75. package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/chunk-JGVISENQ.js +292 -0
  76. package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/chunk-JGVISENQ.js.map +7 -0
  77. package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/chunk-P5LK4A7U.js +112 -0
  78. package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/chunk-P5LK4A7U.js.map +7 -0
  79. package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/chunk-QPJAV452.js +13 -0
  80. package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/chunk-QPJAV452.js.map +7 -0
  81. package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/chunk-RYYR2YMB.js +111 -0
  82. package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/chunk-RYYR2YMB.js.map +7 -0
  83. package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/chunk-UM3ZGDFR.js +4480 -0
  84. package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/chunk-UM3ZGDFR.js.map +7 -0
  85. package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/chunk-XZTIOEPG.js +280 -0
  86. package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/chunk-XZTIOEPG.js.map +7 -0
  87. package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/clsx.js +10 -0
  88. package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/clsx.js.map +7 -0
  89. package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/embla-carousel-react.js +1712 -0
  90. package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/embla-carousel-react.js.map +7 -0
  91. package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/embla-carousel-wheel-gestures.js +589 -0
  92. package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/embla-carousel-wheel-gestures.js.map +7 -0
  93. package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/mapbox-gl.js +32835 -0
  94. package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/mapbox-gl.js.map +7 -0
  95. package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/package.json +3 -0
  96. package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/react-dom.js +7 -0
  97. package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/react-dom.js.map +7 -0
  98. package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/react-dom_client.js +20217 -0
  99. package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/react-dom_client.js.map +7 -0
  100. package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/react.js +6 -0
  101. package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/react.js.map +7 -0
  102. package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/react_jsx-dev-runtime.js +278 -0
  103. package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/react_jsx-dev-runtime.js.map +7 -0
  104. package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/react_jsx-runtime.js +7 -0
  105. package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/react_jsx-runtime.js.map +7 -0
  106. package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/tailwind-merge.js +3095 -0
  107. package/template/node_modules/.vite-mcp/deps_temp_c8c8077a/tailwind-merge.js.map +7 -0
  108. package/template/package.json +0 -1
  109. package/bin/commands/mcp.mjs +0 -77
  110. package/dist/simulator-url-BUKX-wRa.js.map +0 -1
  111. package/dist/simulator-url-pSDp_VWO.cjs.map +0 -1
  112. package/template/public/favicon.ico +0 -0
@@ -12,5 +12,5 @@
12
12
  ]
13
13
  }
14
14
  },
15
- "uri": "ui://review-mkd8cub2"
15
+ "uri": "ui://review-mkixiljp"
16
16
  }
@@ -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": "a87c7c6b",
3
- "configHash": "f56e5903",
4
- "lockfileHash": "85f6e64d",
5
- "browserHash": "27068875",
2
+ "hash": "4a7f9e31",
3
+ "configHash": "b26b5701",
4
+ "lockfileHash": "9d20b726",
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": "aa5a3a0c",
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": "126dcd53",
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": "d15f2c08",
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": "787fb4d9",
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": "4f7dab6b",
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": "f89c0ea2",
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": "0f65736a",
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": "5a9171de",
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": "0ec48633",
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": "e0ebbe92",
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": "842e7bd7",
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": "35457429",
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": "663e5ef3",
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": "d9283f57",
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": "349da7d8",
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": "3ef6648b",
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": "5b612d49",
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": "a2bbcfff",
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": "d8f65d97",
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-EGRHWZRV": {
130
- "file": "chunk-EGRHWZRV.js"
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
  },
@@ -1 +1 @@
1
- {"version":"4.0.16","results":[[":src/resources/review/review-resource.test.tsx",{"duration":553.6102520000002,"failed":false}],[":src/resources/carousel/carousel-resource.test.tsx",{"duration":237.81386599999996,"failed":false}],[":src/resources/albums/components/albums.test.tsx",{"duration":356.660584,"failed":false}],[":src/resources/map/components/map-view.test.tsx",{"duration":74.22177499999998,"failed":false}],[":src/resources/map/components/place-inspector.test.tsx",{"duration":412.39553099999966,"failed":false}],[":src/resources/albums/components/fullscreen-viewer.test.tsx",{"duration":275.8819410000001,"failed":false}],[":src/resources/map/components/place-list.test.tsx",{"duration":177.16193999999996,"failed":false}],[":src/resources/map/components/place-card.test.tsx",{"duration":356.5837899999999,"failed":false}],[":src/resources/map/components/place-carousel.test.tsx",{"duration":428.04780200000005,"failed":false}],[":src/resources/albums/components/album-carousel.test.tsx",{"duration":97.15666699999997,"failed":false}],[":src/resources/carousel/components/carousel.test.tsx",{"duration":78.08477199999993,"failed":false}],[":src/resources/map/map-resource.test.tsx",{"duration":296.47909900000013,"failed":false}],[":src/resources/albums/albums-resource.test.tsx",{"duration":266.0843010000001,"failed":false}],[":src/resources/albums/components/film-strip.test.tsx",{"duration":481.53560500000003,"failed":false}],[":src/resources/albums/components/album-card.test.tsx",{"duration":363.6167539999999,"failed":false}],[":src/resources/carousel/components/card.test.tsx",{"duration":84.04759899999999,"failed":false}]]}
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}]]}
@@ -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": "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",
6
+ "names": ["import_react", "_createElement", "_jsx", "_jsxs", "import_react", "s", "_jsx"]
7
+ }