sunpeak 0.13.10 → 0.13.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/README.md +1 -2
  2. package/dist/chatgpt/globals.css +325 -0
  3. package/dist/chatgpt/index.cjs +1 -1
  4. package/dist/chatgpt/index.js +1 -1
  5. package/dist/{index-D6Z9ZDNT.js → index-CJ3jfcjj.js} +8 -7
  6. package/dist/{index-D6Z9ZDNT.js.map → index-CJ3jfcjj.js.map} +1 -1
  7. package/dist/{index-BhfrUoaZ.cjs → index-Cdeg96So.cjs} +9 -8
  8. package/dist/{index-BhfrUoaZ.cjs.map → index-Cdeg96So.cjs.map} +1 -1
  9. package/dist/index.cjs +1 -1
  10. package/dist/index.js +2 -2
  11. package/dist/mcp/index.cjs +30 -6
  12. package/dist/mcp/index.cjs.map +1 -1
  13. package/dist/mcp/index.js +30 -6
  14. package/dist/mcp/index.js.map +1 -1
  15. package/dist/style.css +325 -0
  16. package/package.json +1 -2
  17. package/template/.sunpeak/resource-loader.html +1 -3
  18. package/template/package.json +0 -1
  19. package/template/src/components/avatar.tsx +33 -0
  20. package/template/src/components/button.tsx +87 -0
  21. package/template/src/components/icon.tsx +68 -0
  22. package/template/src/resources/albums/albums-resource.tsx +1 -1
  23. package/template/src/resources/albums/components/album-card.tsx +1 -1
  24. package/template/src/resources/albums/components/album-carousel.tsx +2 -2
  25. package/template/src/resources/albums/components/film-strip.tsx +1 -1
  26. package/template/src/resources/albums/components/fullscreen-viewer.tsx +5 -1
  27. package/template/src/resources/carousel/components/card.tsx +1 -1
  28. package/template/src/resources/carousel/components/carousel.tsx +2 -2
  29. package/template/src/resources/map/components/map.tsx +2 -2
  30. package/template/src/resources/map/components/place-card.tsx +1 -1
  31. package/template/src/resources/map/components/place-inspector.tsx +3 -3
  32. package/template/src/resources/map/components/place-list.tsx +1 -1
  33. package/template/src/resources/review/review-resource.test.tsx +2 -2
  34. package/template/src/resources/review/review-resource.tsx +2 -2
  35. package/template/src/styles/globals.css +2 -3
package/README.md CHANGED
@@ -73,7 +73,7 @@ my-app/
73
73
  ```
74
74
 
75
75
  1. Project scaffold: Complete development setup with the `sunpeak` library.
76
- 2. UI components: Production-ready components following ChatGPT design guidelines and using OpenAI `apps-sdk-ui` React components.
76
+ 2. UI components: Production-ready components following ChatGPT design guidelines.
77
77
  3. Convention over configuration:
78
78
  1. Create a UI by creating a `-resource.tsx` file that exports a `ResourceConfig` and a React component ([example below](#resource-component)).
79
79
  2. Create test state (`Simulation`s) for local dev, ChatGPT dev, automated testing, and demos by creating a `-simulation.json` file. ([example below](#simulation))
@@ -219,4 +219,3 @@ test.describe('Review Resource', () => {
219
219
  - [MCP Apps](https://github.com/modelcontextprotocol/ext-apps)
220
220
  - [ChatGPT Apps SDK Design Guidelines](https://developers.openai.com/apps-sdk/concepts/design-guidelines)
221
221
  - [ChatGPT Apps SDK Documentation - UI](https://developers.openai.com/apps-sdk/build/chatgpt-ui)
222
- - [ChatGPT Apps SDK UI Documentation](https://openai.github.io/apps-sdk-ui/)
@@ -6227,6 +6227,10 @@ background-color: var(--gray-200);
6227
6227
  display: inline;
6228
6228
  }
6229
6229
 
6230
+ .inline-flex {
6231
+ display: inline-flex;
6232
+ }
6233
+
6230
6234
  .table {
6231
6235
  display: table;
6232
6236
  }
@@ -6280,6 +6284,10 @@ background-color: var(--gray-200);
6280
6284
  height: calc(var(--spacing) * 9);
6281
6285
  }
6282
6286
 
6287
+ .h-10 {
6288
+ height: calc(var(--spacing) * 10);
6289
+ }
6290
+
6283
6291
  .h-12 {
6284
6292
  height: calc(var(--spacing) * 12);
6285
6293
  }
@@ -6328,6 +6336,10 @@ background-color: var(--gray-200);
6328
6336
  min-height: calc(var(--spacing) * 8);
6329
6337
  }
6330
6338
 
6339
+ .min-h-dvh {
6340
+ min-height: 100dvh;
6341
+ }
6342
+
6331
6343
  .w-1 {
6332
6344
  width: calc(var(--spacing) * 1);
6333
6345
  }
@@ -6526,6 +6538,10 @@ background-color: var(--gray-200);
6526
6538
  gap: calc(var(--spacing) * 1);
6527
6539
  }
6528
6540
 
6541
+ .gap-1\.5 {
6542
+ gap: calc(var(--spacing) * 1.5);
6543
+ }
6544
+
6529
6545
  .gap-2 {
6530
6546
  gap: calc(var(--spacing) * 2);
6531
6547
  }
@@ -6693,6 +6709,22 @@ background-color: var(--gray-200);
6693
6709
  border-color: #0000000f;
6694
6710
  }
6695
6711
 
6712
+ .border-\[var\(--color-border-danger-outline\)\] {
6713
+ border-color: var(--color-border-danger-outline);
6714
+ }
6715
+
6716
+ .border-\[var\(--color-border-primary-outline\)\] {
6717
+ border-color: var(--color-border-primary-outline);
6718
+ }
6719
+
6720
+ .border-\[var\(--color-border-secondary-outline\)\] {
6721
+ border-color: var(--color-border-secondary-outline);
6722
+ }
6723
+
6724
+ .border-\[var\(--color-border-warning-outline\)\] {
6725
+ border-color: var(--color-border-warning-outline);
6726
+ }
6727
+
6696
6728
  .border-black\/5 {
6697
6729
  border-color: var(--color-black);
6698
6730
  }
@@ -6737,10 +6769,42 @@ background-color: var(--gray-200);
6737
6769
  background-color: #3a3a3a;
6738
6770
  }
6739
6771
 
6772
+ .bg-\[var\(--color-background-danger-soft-alpha\)\] {
6773
+ background-color: var(--color-background-danger-soft-alpha);
6774
+ }
6775
+
6776
+ .bg-\[var\(--color-background-danger-solid\)\] {
6777
+ background-color: var(--color-background-danger-solid);
6778
+ }
6779
+
6740
6780
  .bg-\[var\(--color-background-primary-soft\)\] {
6741
6781
  background-color: var(--color-background-primary-soft);
6742
6782
  }
6743
6783
 
6784
+ .bg-\[var\(--color-background-primary-soft-alpha\)\] {
6785
+ background-color: var(--color-background-primary-soft-alpha);
6786
+ }
6787
+
6788
+ .bg-\[var\(--color-background-primary-solid\)\] {
6789
+ background-color: var(--color-background-primary-solid);
6790
+ }
6791
+
6792
+ .bg-\[var\(--color-background-secondary-soft-alpha\)\] {
6793
+ background-color: var(--color-background-secondary-soft-alpha);
6794
+ }
6795
+
6796
+ .bg-\[var\(--color-background-secondary-solid\)\] {
6797
+ background-color: var(--color-background-secondary-solid);
6798
+ }
6799
+
6800
+ .bg-\[var\(--color-background-warning-soft-alpha\)\] {
6801
+ background-color: var(--color-background-warning-soft-alpha);
6802
+ }
6803
+
6804
+ .bg-\[var\(--color-background-warning-solid\)\] {
6805
+ background-color: var(--color-background-warning-solid);
6806
+ }
6807
+
6744
6808
  .bg-black\/5 {
6745
6809
  background-color: var(--color-black);
6746
6810
  }
@@ -6751,6 +6815,16 @@ background-color: var(--gray-200);
6751
6815
  }
6752
6816
  }
6753
6817
 
6818
+ .bg-black\/10 {
6819
+ background-color: var(--color-black);
6820
+ }
6821
+
6822
+ @supports (color: color-mix(in lab, red, red)) {
6823
+ .bg-black\/10 {
6824
+ background-color: color-mix(in oklab, var(--color-black) 10%, transparent);
6825
+ }
6826
+ }
6827
+
6754
6828
  .bg-black\/50 {
6755
6829
  background-color: var(--color-black);
6756
6830
  }
@@ -6867,6 +6941,10 @@ background-color: var(--gray-200);
6867
6941
  padding-inline: calc(var(--spacing) * 3);
6868
6942
  }
6869
6943
 
6944
+ .px-3\.5 {
6945
+ padding-inline: calc(var(--spacing) * 3.5);
6946
+ }
6947
+
6870
6948
  .px-4 {
6871
6949
  padding-inline: calc(var(--spacing) * 4);
6872
6950
  }
@@ -6997,6 +7075,11 @@ background-color: var(--gray-200);
6997
7075
  font-size: 10px;
6998
7076
  }
6999
7077
 
7078
+ .leading-none {
7079
+ --tw-leading: 1;
7080
+ line-height: 1;
7081
+ }
7082
+
7000
7083
  .leading-normal {
7001
7084
  --tw-leading: var(--leading-normal);
7002
7085
  line-height: var(--leading-normal);
@@ -7060,6 +7143,70 @@ background-color: var(--gray-200);
7060
7143
  color: var(--color-error);
7061
7144
  }
7062
7145
 
7146
+ .text-\[var\(--color-text-danger-ghost\)\] {
7147
+ color: var(--color-text-danger-ghost);
7148
+ }
7149
+
7150
+ .text-\[var\(--color-text-danger-outline\)\] {
7151
+ color: var(--color-text-danger-outline);
7152
+ }
7153
+
7154
+ .text-\[var\(--color-text-danger-soft\)\] {
7155
+ color: var(--color-text-danger-soft);
7156
+ }
7157
+
7158
+ .text-\[var\(--color-text-danger-solid\)\] {
7159
+ color: var(--color-text-danger-solid);
7160
+ }
7161
+
7162
+ .text-\[var\(--color-text-primary-ghost\)\] {
7163
+ color: var(--color-text-primary-ghost);
7164
+ }
7165
+
7166
+ .text-\[var\(--color-text-primary-outline\)\] {
7167
+ color: var(--color-text-primary-outline);
7168
+ }
7169
+
7170
+ .text-\[var\(--color-text-primary-soft\)\] {
7171
+ color: var(--color-text-primary-soft);
7172
+ }
7173
+
7174
+ .text-\[var\(--color-text-primary-solid\)\] {
7175
+ color: var(--color-text-primary-solid);
7176
+ }
7177
+
7178
+ .text-\[var\(--color-text-secondary-ghost\)\] {
7179
+ color: var(--color-text-secondary-ghost);
7180
+ }
7181
+
7182
+ .text-\[var\(--color-text-secondary-outline\)\] {
7183
+ color: var(--color-text-secondary-outline);
7184
+ }
7185
+
7186
+ .text-\[var\(--color-text-secondary-soft\)\] {
7187
+ color: var(--color-text-secondary-soft);
7188
+ }
7189
+
7190
+ .text-\[var\(--color-text-secondary-solid\)\] {
7191
+ color: var(--color-text-secondary-solid);
7192
+ }
7193
+
7194
+ .text-\[var\(--color-text-warning-ghost\)\] {
7195
+ color: var(--color-text-warning-ghost);
7196
+ }
7197
+
7198
+ .text-\[var\(--color-text-warning-outline\)\] {
7199
+ color: var(--color-text-warning-outline);
7200
+ }
7201
+
7202
+ .text-\[var\(--color-text-warning-soft\)\] {
7203
+ color: var(--color-text-warning-soft);
7204
+ }
7205
+
7206
+ .text-\[var\(--color-text-warning-solid\)\] {
7207
+ color: var(--color-text-warning-solid);
7208
+ }
7209
+
7063
7210
  .text-primary {
7064
7211
  color: var(--color-text-primary);
7065
7212
  }
@@ -7184,6 +7331,22 @@ background-color: var(--gray-200);
7184
7331
  }
7185
7332
 
7186
7333
  @media (hover: hover) and (pointer: fine) {
7334
+ .hover\:border-\[var\(--color-border-danger-outline-hover\)\]:hover {
7335
+ border-color: var(--color-border-danger-outline-hover);
7336
+ }
7337
+
7338
+ .hover\:border-\[var\(--color-border-primary-outline-hover\)\]:hover {
7339
+ border-color: var(--color-border-primary-outline-hover);
7340
+ }
7341
+
7342
+ .hover\:border-\[var\(--color-border-secondary-outline-hover\)\]:hover {
7343
+ border-color: var(--color-border-secondary-outline-hover);
7344
+ }
7345
+
7346
+ .hover\:border-\[var\(--color-border-warning-outline-hover\)\]:hover {
7347
+ border-color: var(--color-border-warning-outline-hover);
7348
+ }
7349
+
7187
7350
  .hover\:border-transparent:hover {
7188
7351
  border-color: #0000;
7189
7352
  }
@@ -7192,6 +7355,70 @@ background-color: var(--gray-200);
7192
7355
  background-color: #6a6a6a;
7193
7356
  }
7194
7357
 
7358
+ .hover\:bg-\[var\(--color-background-danger-ghost-hover\)\]:hover {
7359
+ background-color: var(--color-background-danger-ghost-hover);
7360
+ }
7361
+
7362
+ .hover\:bg-\[var\(--color-background-danger-outline-hover\)\]:hover {
7363
+ background-color: var(--color-background-danger-outline-hover);
7364
+ }
7365
+
7366
+ .hover\:bg-\[var\(--color-background-danger-soft-alpha-hover\)\]:hover {
7367
+ background-color: var(--color-background-danger-soft-alpha-hover);
7368
+ }
7369
+
7370
+ .hover\:bg-\[var\(--color-background-danger-solid-hover\)\]:hover {
7371
+ background-color: var(--color-background-danger-solid-hover);
7372
+ }
7373
+
7374
+ .hover\:bg-\[var\(--color-background-primary-ghost-hover\)\]:hover {
7375
+ background-color: var(--color-background-primary-ghost-hover);
7376
+ }
7377
+
7378
+ .hover\:bg-\[var\(--color-background-primary-outline-hover\)\]:hover {
7379
+ background-color: var(--color-background-primary-outline-hover);
7380
+ }
7381
+
7382
+ .hover\:bg-\[var\(--color-background-primary-soft-alpha-hover\)\]:hover {
7383
+ background-color: var(--color-background-primary-soft-alpha-hover);
7384
+ }
7385
+
7386
+ .hover\:bg-\[var\(--color-background-primary-solid-hover\)\]:hover {
7387
+ background-color: var(--color-background-primary-solid-hover);
7388
+ }
7389
+
7390
+ .hover\:bg-\[var\(--color-background-secondary-ghost-hover\)\]:hover {
7391
+ background-color: var(--color-background-secondary-ghost-hover);
7392
+ }
7393
+
7394
+ .hover\:bg-\[var\(--color-background-secondary-outline-hover\)\]:hover {
7395
+ background-color: var(--color-background-secondary-outline-hover);
7396
+ }
7397
+
7398
+ .hover\:bg-\[var\(--color-background-secondary-soft-alpha-hover\)\]:hover {
7399
+ background-color: var(--color-background-secondary-soft-alpha-hover);
7400
+ }
7401
+
7402
+ .hover\:bg-\[var\(--color-background-secondary-solid-hover\)\]:hover {
7403
+ background-color: var(--color-background-secondary-solid-hover);
7404
+ }
7405
+
7406
+ .hover\:bg-\[var\(--color-background-warning-ghost-hover\)\]:hover {
7407
+ background-color: var(--color-background-warning-ghost-hover);
7408
+ }
7409
+
7410
+ .hover\:bg-\[var\(--color-background-warning-outline-hover\)\]:hover {
7411
+ background-color: var(--color-background-warning-outline-hover);
7412
+ }
7413
+
7414
+ .hover\:bg-\[var\(--color-background-warning-soft-alpha-hover\)\]:hover {
7415
+ background-color: var(--color-background-warning-soft-alpha-hover);
7416
+ }
7417
+
7418
+ .hover\:bg-\[var\(--color-background-warning-solid-hover\)\]:hover {
7419
+ background-color: var(--color-background-warning-solid-hover);
7420
+ }
7421
+
7195
7422
  .hover\:bg-black\/5:hover {
7196
7423
  background-color: var(--color-black);
7197
7424
  }
@@ -7206,6 +7433,22 @@ background-color: var(--gray-200);
7206
7433
  background-color: #0000;
7207
7434
  }
7208
7435
 
7436
+ .hover\:text-\[var\(--color-text-danger-outline-hover\)\]:hover {
7437
+ color: var(--color-text-danger-outline-hover);
7438
+ }
7439
+
7440
+ .hover\:text-\[var\(--color-text-primary-outline-hover\)\]:hover {
7441
+ color: var(--color-text-primary-outline-hover);
7442
+ }
7443
+
7444
+ .hover\:text-\[var\(--color-text-secondary-outline-hover\)\]:hover {
7445
+ color: var(--color-text-secondary-outline-hover);
7446
+ }
7447
+
7448
+ .hover\:text-\[var\(--color-text-warning-outline-hover\)\]:hover {
7449
+ color: var(--color-text-warning-outline-hover);
7450
+ }
7451
+
7209
7452
  .hover\:text-primary:hover {
7210
7453
  color: var(--color-text-primary);
7211
7454
  }
@@ -7220,6 +7463,78 @@ background-color: var(--gray-200);
7220
7463
  outline-style: none;
7221
7464
  }
7222
7465
 
7466
+ .active\:bg-\[var\(--color-background-danger-ghost-active\)\]:active {
7467
+ background-color: var(--color-background-danger-ghost-active);
7468
+ }
7469
+
7470
+ .active\:bg-\[var\(--color-background-danger-outline-active\)\]:active {
7471
+ background-color: var(--color-background-danger-outline-active);
7472
+ }
7473
+
7474
+ .active\:bg-\[var\(--color-background-danger-soft-alpha-active\)\]:active {
7475
+ background-color: var(--color-background-danger-soft-alpha-active);
7476
+ }
7477
+
7478
+ .active\:bg-\[var\(--color-background-danger-solid-active\)\]:active {
7479
+ background-color: var(--color-background-danger-solid-active);
7480
+ }
7481
+
7482
+ .active\:bg-\[var\(--color-background-primary-ghost-active\)\]:active {
7483
+ background-color: var(--color-background-primary-ghost-active);
7484
+ }
7485
+
7486
+ .active\:bg-\[var\(--color-background-primary-outline-active\)\]:active {
7487
+ background-color: var(--color-background-primary-outline-active);
7488
+ }
7489
+
7490
+ .active\:bg-\[var\(--color-background-primary-soft-alpha-active\)\]:active {
7491
+ background-color: var(--color-background-primary-soft-alpha-active);
7492
+ }
7493
+
7494
+ .active\:bg-\[var\(--color-background-primary-solid-active\)\]:active {
7495
+ background-color: var(--color-background-primary-solid-active);
7496
+ }
7497
+
7498
+ .active\:bg-\[var\(--color-background-secondary-ghost-active\)\]:active {
7499
+ background-color: var(--color-background-secondary-ghost-active);
7500
+ }
7501
+
7502
+ .active\:bg-\[var\(--color-background-secondary-outline-active\)\]:active {
7503
+ background-color: var(--color-background-secondary-outline-active);
7504
+ }
7505
+
7506
+ .active\:bg-\[var\(--color-background-secondary-soft-alpha-active\)\]:active {
7507
+ background-color: var(--color-background-secondary-soft-alpha-active);
7508
+ }
7509
+
7510
+ .active\:bg-\[var\(--color-background-secondary-solid-active\)\]:active {
7511
+ background-color: var(--color-background-secondary-solid-active);
7512
+ }
7513
+
7514
+ .active\:bg-\[var\(--color-background-warning-ghost-active\)\]:active {
7515
+ background-color: var(--color-background-warning-ghost-active);
7516
+ }
7517
+
7518
+ .active\:bg-\[var\(--color-background-warning-outline-active\)\]:active {
7519
+ background-color: var(--color-background-warning-outline-active);
7520
+ }
7521
+
7522
+ .active\:bg-\[var\(--color-background-warning-soft-alpha-active\)\]:active {
7523
+ background-color: var(--color-background-warning-soft-alpha-active);
7524
+ }
7525
+
7526
+ .active\:bg-\[var\(--color-background-warning-solid-active\)\]:active {
7527
+ background-color: var(--color-background-warning-solid-active);
7528
+ }
7529
+
7530
+ .disabled\:cursor-not-allowed:disabled {
7531
+ cursor: not-allowed;
7532
+ }
7533
+
7534
+ .disabled\:opacity-50:disabled {
7535
+ opacity: .5;
7536
+ }
7537
+
7223
7538
  @media not all and (min-width: 768px) {
7224
7539
  .max-md\:fixed {
7225
7540
  position: fixed;
@@ -7460,6 +7775,16 @@ background-color: var(--gray-200);
7460
7775
  }
7461
7776
  }
7462
7777
 
7778
+ .dark\:bg-white\/10:where([data-theme="dark"], [data-theme="dark"] *) {
7779
+ background-color: var(--color-white);
7780
+ }
7781
+
7782
+ @supports (color: color-mix(in lab, red, red)) {
7783
+ .dark\:bg-white\/10:where([data-theme="dark"], [data-theme="dark"] *) {
7784
+ background-color: color-mix(in oklab, var(--color-white) 10%, transparent);
7785
+ }
7786
+ }
7787
+
7463
7788
  .dark\:from-white\/15:where([data-theme="dark"], [data-theme="dark"] *) {
7464
7789
  --tw-gradient-from: var(--color-white);
7465
7790
  }
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const chatgpt_index = require("../index-BhfrUoaZ.cjs");
3
+ const chatgpt_index = require("../index-Cdeg96So.cjs");
4
4
  const discovery = require("../discovery-CRR3SlyI.cjs");
5
5
  exports.ChatGPTSimulator = chatgpt_index.ChatGPTSimulator;
6
6
  exports.IframeResource = chatgpt_index.IframeResource;
@@ -1,4 +1,4 @@
1
- import { C, I, M, S, T, a, e, u } from "../index-D6Z9ZDNT.js";
1
+ import { C, I, M, S, T, a, e, u } from "../index-CJ3jfcjj.js";
2
2
  import { a as a2, b, d, c, e as e2, f, g, h, i, j, k, l, t } from "../discovery-COZUnY6a.js";
3
3
  export {
4
4
  C as ChatGPTSimulator,
@@ -14408,16 +14408,17 @@ function generateScriptHtml(scriptSrc, theme, cspPolicy) {
14408
14408
  <meta http-equiv="Content-Security-Policy" content="${safeCsp}" />
14409
14409
  <title>Resource</title>
14410
14410
  <style>
14411
+ html {
14412
+ /* Set color-scheme before the resource script loads so system UI (scrollbars,
14413
+ form elements) is themed correctly from first paint. Once the script loads,
14414
+ applyDocumentTheme() takes over with an inline style. */
14415
+ color-scheme: ${safeTheme};
14416
+ }
14411
14417
  html, body, #root {
14412
14418
  margin: 0;
14413
14419
  padding: 0;
14414
14420
  width: 100%;
14415
- /* Use min-height instead of height so body sizes to content.
14416
- This allows ResizeObserver to detect content changes and
14417
- report accurate intrinsic height to the host. */
14418
- min-height: 100%;
14419
- background: transparent;
14420
- color-scheme: dark light;
14421
+ background-color: var(--color-surface);
14421
14422
  }
14422
14423
  </style>
14423
14424
  <script>${PAINT_FENCE_SCRIPT}<\/script>
@@ -15127,4 +15128,4 @@ export {
15127
15128
  index as i,
15128
15129
  useThemeContext as u
15129
15130
  };
15130
- //# sourceMappingURL=index-D6Z9ZDNT.js.map
15131
+ //# sourceMappingURL=index-CJ3jfcjj.js.map