@oxy.so/bloom 7.3.0 → 7.4.0

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 (63) hide show
  1. package/docs/adoption-matrix.mdx +8 -8
  2. package/docs/appearance.mdx +1 -1
  3. package/docs/card.mdx +14 -0
  4. package/docs/content-panel.mdx +17 -0
  5. package/docs/mail-thread.mdx +9 -1
  6. package/lib/commonjs/card/Card.js +6 -2
  7. package/lib/commonjs/card/Card.js.map +1 -1
  8. package/lib/commonjs/content-panel/ContentPanel.js +10 -7
  9. package/lib/commonjs/content-panel/ContentPanel.js.map +1 -1
  10. package/lib/commonjs/content-panel/ContentPanel.web.js +12 -7
  11. package/lib/commonjs/content-panel/ContentPanel.web.js.map +1 -1
  12. package/lib/commonjs/mail-thread/MailMessage.js +1 -1
  13. package/lib/commonjs/mail-thread/MailMessage.js.map +1 -1
  14. package/lib/commonjs/mail-thread/MailThread.js +3 -4
  15. package/lib/commonjs/mail-thread/MailThread.js.map +1 -1
  16. package/lib/commonjs/mail-thread/shared.js +3 -3
  17. package/lib/commonjs/mail-thread/shared.js.map +1 -1
  18. package/lib/module/card/Card.js +6 -2
  19. package/lib/module/card/Card.js.map +1 -1
  20. package/lib/module/content-panel/ContentPanel.js +11 -8
  21. package/lib/module/content-panel/ContentPanel.js.map +1 -1
  22. package/lib/module/content-panel/ContentPanel.web.js +13 -8
  23. package/lib/module/content-panel/ContentPanel.web.js.map +1 -1
  24. package/lib/module/mail-thread/MailMessage.js +1 -1
  25. package/lib/module/mail-thread/MailMessage.js.map +1 -1
  26. package/lib/module/mail-thread/MailThread.js +1 -2
  27. package/lib/module/mail-thread/MailThread.js.map +1 -1
  28. package/lib/module/mail-thread/shared.js +3 -3
  29. package/lib/module/mail-thread/shared.js.map +1 -1
  30. package/lib/typescript/commonjs/card/Card.d.ts.map +1 -1
  31. package/lib/typescript/commonjs/card/types.d.ts +5 -5
  32. package/lib/typescript/commonjs/card/types.d.ts.map +1 -1
  33. package/lib/typescript/commonjs/content-panel/ContentPanel.d.ts.map +1 -1
  34. package/lib/typescript/commonjs/content-panel/ContentPanel.web.d.ts.map +1 -1
  35. package/lib/typescript/commonjs/content-panel/types.d.ts +7 -0
  36. package/lib/typescript/commonjs/content-panel/types.d.ts.map +1 -1
  37. package/lib/typescript/commonjs/mail-thread/MailThread.d.ts.map +1 -1
  38. package/lib/typescript/commonjs/mail-thread/shared.d.ts +2 -2
  39. package/lib/typescript/commonjs/mail-thread/shared.d.ts.map +1 -1
  40. package/lib/typescript/commonjs/note-card/shared.d.ts +1 -1
  41. package/lib/typescript/commonjs/note-card/shared.d.ts.map +1 -1
  42. package/lib/typescript/module/card/Card.d.ts.map +1 -1
  43. package/lib/typescript/module/card/types.d.ts +5 -5
  44. package/lib/typescript/module/card/types.d.ts.map +1 -1
  45. package/lib/typescript/module/content-panel/ContentPanel.d.ts.map +1 -1
  46. package/lib/typescript/module/content-panel/ContentPanel.web.d.ts.map +1 -1
  47. package/lib/typescript/module/content-panel/types.d.ts +7 -0
  48. package/lib/typescript/module/content-panel/types.d.ts.map +1 -1
  49. package/lib/typescript/module/mail-thread/MailThread.d.ts.map +1 -1
  50. package/lib/typescript/module/mail-thread/shared.d.ts +2 -2
  51. package/lib/typescript/module/mail-thread/shared.d.ts.map +1 -1
  52. package/lib/typescript/module/note-card/shared.d.ts +1 -1
  53. package/lib/typescript/module/note-card/shared.d.ts.map +1 -1
  54. package/package.json +1 -1
  55. package/src/card/Card.tsx +6 -2
  56. package/src/card/types.ts +5 -5
  57. package/src/content-panel/ContentPanel.tsx +13 -10
  58. package/src/content-panel/ContentPanel.web.tsx +13 -9
  59. package/src/content-panel/types.ts +7 -0
  60. package/src/mail-thread/MailMessage.tsx +1 -1
  61. package/src/mail-thread/MailThread.tsx +0 -2
  62. package/src/mail-thread/shared.ts +3 -3
  63. package/src/note-card/shared.ts +1 -1
@@ -12,11 +12,11 @@ import type { ShadowRole } from '../design-tokens/shadows';
12
12
  * `elevation` instead of asking for a new appearance.
13
13
  */
14
14
  /**
15
- * A rung of the `RADIUS` scale. Deliberately not a number: a card, a settings
16
- * group and a link preview are legitimately different surfaces, and the scale is
17
- * what keeps "different" to seven values rather than seven hundred.
15
+ * A rung of the `RADIUS` scale, or `panel` to inherit BloomScope.panelRadius
16
+ * and the shared circular panel curve. Other cards retain the fixed radius
17
+ * scale, so their geometry does not change with the workspace setting.
18
18
  */
19
- export type CardRadius = keyof typeof RADIUS;
19
+ export type CardRadius = keyof typeof RADIUS | 'panel';
20
20
  /** Elevation role, or none. Resolved through `bloomShadowStyle`, which owns the platform split. */
21
21
  export type CardElevation = 'none' | ShadowRole;
22
22
  /** Border width role. `thin` is the 1px default; `hairline` is the 0.5px `BORDER_WIDTH.hairline`. */
@@ -28,7 +28,7 @@ export interface CardProps {
28
28
  /** Preset background + border + elevation. Default `solid` with small elevation. */
29
29
  appearance?: BloomAppearance;
30
30
  tone?: BloomTone;
31
- /** Corner rung. Explicit prop wins over style.borderRadius; default radius-12. */
31
+ /** Corner rung, or panel to inherit BloomScope.panelRadius and the shared circular curve. Default radius-12. */
32
32
  radius?: CardRadius;
33
33
  /** Platform-adaptive curve. radius-max remains circular. */
34
34
  cornerCurve?: CornerCurve;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/card/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/card/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ContentPanel.d.ts","sourceRoot":"","sources":["../../../../src/content-panel/ContentPanel.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,OAAO,KAAe,MAAM,OAAO,CAAC;AAapC,OAAO,KAAK,EAAgC,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE/E;;;GAGG;AACH,eAAO,MAAM,kBAAkB,KAAK,CAAC;AACrC,wDAAwD;AACxD,eAAO,MAAM,eAAe,IAAI,CAAC;AACjC,2DAA2D;AAC3D,eAAO,MAAM,kBAAkB,IAAI,CAAC;AA+GpC,eAAO,MAAM,YAAY,+CAA8B,CAAC"}
1
+ {"version":3,"file":"ContentPanel.d.ts","sourceRoot":"","sources":["../../../../src/content-panel/ContentPanel.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,OAAO,KAAe,MAAM,OAAO,CAAC;AAapC,OAAO,KAAK,EAAgC,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE/E;;;GAGG;AACH,eAAO,MAAM,kBAAkB,KAAK,CAAC;AACrC,wDAAwD;AACxD,eAAO,MAAM,eAAe,IAAI,CAAC;AACjC,2DAA2D;AAC3D,eAAO,MAAM,kBAAkB,IAAI,CAAC;AAkHpC,eAAO,MAAM,YAAY,+CAA8B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ContentPanel.web.d.ts","sourceRoot":"","sources":["../../../../src/content-panel/ContentPanel.web.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsFG;AACH,OAAO,KAAmC,MAAM,OAAO,CAAC;AAiBxD,OAAO,KAAK,EAAgC,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE/E,+DAA+D;AAC/D,eAAO,MAAM,kBAAkB,KAAK,CAAC;AACrC,6DAA6D;AAC7D,eAAO,MAAM,eAAe,IAAI,CAAC;AACjC,2DAA2D;AAC3D,eAAO,MAAM,kBAAkB,IAAI,CAAC;AAqQpC,eAAO,MAAM,YAAY,+CAA8B,CAAC"}
1
+ {"version":3,"file":"ContentPanel.web.d.ts","sourceRoot":"","sources":["../../../../src/content-panel/ContentPanel.web.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsFG;AACH,OAAO,KAAmC,MAAM,OAAO,CAAC;AAiBxD,OAAO,KAAK,EAAgC,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE/E,+DAA+D;AAC/D,eAAO,MAAM,kBAAkB,KAAK,CAAC;AACrC,6DAA6D;AAC7D,eAAO,MAAM,eAAe,IAAI,CAAC;AACjC,2DAA2D;AAC3D,eAAO,MAAM,kBAAkB,IAAI,CAAC;AAyQpC,eAAO,MAAM,YAAY,+CAA8B,CAAC"}
@@ -15,6 +15,13 @@ export type ContentPanelFramedBreakpoint = 500 | 640 | 768 | 1024;
15
15
  export type ContentPanelChrome = 'elevated' | 'border' | 'none';
16
16
  export interface ContentPanelProps {
17
17
  children: React.ReactNode;
18
+ /**
19
+ * `solid` (default) paints a panel surface. `plain` keeps layout, framing and
20
+ * clipping while leaving the enclosing surface visible, without material,
21
+ * border or shadow. Descendants inherit the parent's surface level and fill.
22
+ * In plain mode surface background overrides and surfaceColor are ignored.
23
+ */
24
+ appearance?: 'solid' | 'plain';
18
25
  /** Opt in to local themed error recovery. Split panes already provide their own boundaries. */
19
26
  errorBoundary?: boolean | PanelErrorBoundaryOptions;
20
27
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/content-panel/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACzE,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9D;;;;;;;;GAQG;AACH,MAAM,MAAM,4BAA4B,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC;AAElE,kDAAkD;AAClD,MAAM,MAAM,kBAAkB,GAAG,UAAU,GAAG,QAAQ,GAAG,MAAM,CAAC;AAEhE,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,+FAA+F;IAC/F,aAAa,CAAC,EAAE,OAAO,GAAG,yBAAyB,CAAC;IACpD;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,4BAA4B,CAAC;IAC1C;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,uEAAuE;IACvE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACpC;;;;;;;;;;;;;;;;;;OAkBG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qDAAqD;IACrD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACpC;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;;;;;;;;;;;OAgBG;IACH,aAAa,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC;IACrC;;;;;;;;;;;;;;;OAeG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CACzD"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/content-panel/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACzE,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9D;;;;;;;;GAQG;AACH,MAAM,MAAM,4BAA4B,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC;AAElE,kDAAkD;AAClD,MAAM,MAAM,kBAAkB,GAAG,UAAU,GAAG,QAAQ,GAAG,MAAM,CAAC;AAEhE,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B;;;;;OAKG;IACH,UAAU,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;IAC/B,+FAA+F;IAC/F,aAAa,CAAC,EAAE,OAAO,GAAG,yBAAyB,CAAC;IACpD;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,4BAA4B,CAAC;IAC1C;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,uEAAuE;IACvE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACpC;;;;;;;;;;;;;;;;;;OAkBG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qDAAqD;IACrD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACpC;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;;;;;;;;;;;OAgBG;IACH,aAAa,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC;IACrC;;;;;;;;;;;;;;;OAeG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CACzD"}
@@ -1 +1 @@
1
- {"version":3,"file":"MailThread.d.ts","sourceRoot":"","sources":["../../../../src/mail-thread/MailThread.tsx"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,UAAU,CAAC,EACzB,OAAO,EACP,MAAM,EACN,OAAe,EACf,eAAe,EACf,QAAQ,EACR,WAAW,EACX,mBAAmB,EACnB,aAAiB,EACjB,UAAqB,EACrB,UAAU,EACV,MAAM,EACN,OAAO,EACP,kBAAkB,EAClB,KAAK,EACL,MAAM,GACP,EAAE,eAAe,2CAoIjB"}
1
+ {"version":3,"file":"MailThread.d.ts","sourceRoot":"","sources":["../../../../src/mail-thread/MailThread.tsx"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,UAAU,CAAC,EACzB,OAAO,EACP,MAAM,EACN,OAAe,EACf,eAAe,EACf,QAAQ,EACR,WAAW,EACX,mBAAmB,EACnB,aAAiB,EACjB,UAAqB,EACrB,UAAU,EACV,MAAM,EACN,OAAO,EACP,kBAAkB,EAClB,KAAK,EACL,MAAM,GACP,EAAE,eAAe,2CAmIjB"}
@@ -26,8 +26,8 @@ export declare const MAIL_THREAD_GEOMETRY: {
26
26
  readonly glyph: 16;
27
27
  /** The star and the overflow trigger. A touch target, so 44. */
28
28
  readonly action: 44;
29
- /** Radius of a message's own surface. */
30
- readonly radius: 16;
29
+ /** Default radius; rendered messages inherit BloomScope.panelRadius via Card. */
30
+ readonly radius: 28;
31
31
  };
32
32
  /**
33
33
  * How far the BODY is indented, so it starts under the sender's name rather
@@ -1 +1 @@
1
- {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../../src/mail-thread/shared.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAEjF,eAAO,MAAM,MAAM,SAAwB,CAAC;AAU5C;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,MAAM,CAAC;AAE1C;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAE5D;AAED,eAAO,MAAM,oBAAoB;IAC/B,4CAA4C;;IAE5C,mEAAmE;;IAEnE,wCAAwC;;IAExC,4BAA4B;;IAE5B,8CAA8C;;IAE9C,gEAAgE;;IAEhE,yCAAyC;;CAEjC,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,eAAe,QAGF,CAAC;AAM3B;;;GAGG;AACH,eAAO,MAAM,2BAA2B,EAAE,iBAA2C,CAAC;AAEtF,kGAAkG;AAClG,wBAAgB,iBAAiB,CAC/B,SAAS,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,EACtC,IAAI,GAAE,iBAA+C,GACpD,iBAAiB,CAEnB;AAMD,8EAA8E;AAC9E,wBAAgB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CAExD;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,SAAS,WAAW,EAAE,EACjC,GAAG,EAAE,MAAM,GACV;IAAE,KAAK,EAAE,SAAS,WAAW,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAGrD;AAED,6CAA6C;AAC7C,MAAM,MAAM,eAAe,GACvB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,iBAAiB,CAAA;CAAE,GAC/C;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,CAAC;AAEjE;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,SAAS,iBAAiB,EAAE,EACtC,aAAa,EAAE,MAAM,GACpB,eAAe,EAAE,CAenB;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,SAAS,iBAAiB,EAAE,GAAG,MAAM,EAAE,CAGnF;AAMD,eAAO,MAAM,oBAAoB,8BAA8B,CAAC;AAIhE,eAAO,MAAM,eAAe,wPAU3B,CAAC"}
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../../src/mail-thread/shared.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAEjF,eAAO,MAAM,MAAM,SAAwB,CAAC;AAU5C;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,MAAM,CAAC;AAE1C;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAE5D;AAED,eAAO,MAAM,oBAAoB;IAC/B,4CAA4C;;IAE5C,mEAAmE;;IAEnE,wCAAwC;;IAExC,4BAA4B;;IAE5B,8CAA8C;;IAE9C,gEAAgE;;IAEhE,iFAAiF;;CAEzE,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,eAAe,QAGF,CAAC;AAM3B;;;GAGG;AACH,eAAO,MAAM,2BAA2B,EAAE,iBAA2C,CAAC;AAEtF,kGAAkG;AAClG,wBAAgB,iBAAiB,CAC/B,SAAS,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,EACtC,IAAI,GAAE,iBAA+C,GACpD,iBAAiB,CAEnB;AAMD,8EAA8E;AAC9E,wBAAgB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CAExD;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,SAAS,WAAW,EAAE,EACjC,GAAG,EAAE,MAAM,GACV;IAAE,KAAK,EAAE,SAAS,WAAW,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAGrD;AAED,6CAA6C;AAC7C,MAAM,MAAM,eAAe,GACvB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,iBAAiB,CAAA;CAAE,GAC/C;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,CAAC;AAEjE;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,SAAS,iBAAiB,EAAE,EACtC,aAAa,EAAE,MAAM,GACpB,eAAe,EAAE,CAenB;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,SAAS,iBAAiB,EAAE,GAAG,MAAM,EAAE,CAGnF;AAMD,eAAO,MAAM,oBAAoB,8BAA8B,CAAC;AAIhE,eAAO,MAAM,eAAe,wPAU3B,CAAC"}
@@ -31,7 +31,7 @@ export interface NoteCardGeometry {
31
31
  padding: number;
32
32
  gap: number;
33
33
  /** A rung of the `RADIUS` scale — `Card` takes the rung, the focus ring takes its px. */
34
- radius: CardRadius;
34
+ radius: Exclude<CardRadius, 'panel'>;
35
35
  excerptLines: number;
36
36
  titleLines: number;
37
37
  maxTags: number;
@@ -1 +1 @@
1
- {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../../src/note-card/shared.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,OAAO,EAAuB,KAAK,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAE9E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAE5C,OAAO,EAIL,KAAK,gBAAgB,EACtB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,yFAAyF;IACzF,MAAM,EAAE,UAAU,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qEAAqE;IACrE,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,eAAe,EAAE,gBAAgB,CAoBxE,CAAC;AAEF,MAAM,WAAW,aAAc,SAAQ,gBAAgB;IACrD,gGAAgG;IAChG,UAAU,EAAE,MAAM,CAAC;IACnB,uBAAuB;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,mDAAmD;IACnD,cAAc,EAAE,MAAM,CAAC;IACvB,6FAA6F;IAC7F,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gEAAgE;IAChE,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAK9D;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,UAAU,GAAG,SAAS,GAC3B,aAAa,CAmBf;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS,GAAG,QAAQ,GAAG,UAAU,CAElF;AAED,oEAAoE;AACpE,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,CAEjE;AAED,iFAAiF;AACjF,wBAAgB,eAAe,CAAC,KAAK,EAAE,aAAa,CAAC,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,SAAS,CAAC,GAAG,MAAM,CAIjG"}
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../../src/note-card/shared.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,OAAO,EAAuB,KAAK,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAE9E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAE5C,OAAO,EAIL,KAAK,gBAAgB,EACtB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,yFAAyF;IACzF,MAAM,EAAE,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACrC,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qEAAqE;IACrE,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,eAAe,EAAE,gBAAgB,CAoBxE,CAAC;AAEF,MAAM,WAAW,aAAc,SAAQ,gBAAgB;IACrD,gGAAgG;IAChG,UAAU,EAAE,MAAM,CAAC;IACnB,uBAAuB;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,mDAAmD;IACnD,cAAc,EAAE,MAAM,CAAC;IACvB,6FAA6F;IAC7F,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gEAAgE;IAChE,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAK9D;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,UAAU,GAAG,SAAS,GAC3B,aAAa,CAmBf;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS,GAAG,QAAQ,GAAG,UAAU,CAElF;AAED,oEAAoE;AACpE,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,CAEjE;AAED,iFAAiF;AACjF,wBAAgB,eAAe,CAAC,KAAK,EAAE,aAAa,CAAC,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,SAAS,CAAC,GAAG,MAAM,CAIjG"}
@@ -1 +1 @@
1
- {"version":3,"file":"Card.d.ts","sourceRoot":"","sources":["../../../../src/card/Card.tsx"],"names":[],"mappings":"AAKA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,KAAoC,MAAM,OAAO,CAAC;AACzD,OAAO,EAAoB,IAAI,EAAkB,MAAM,cAAc,CAAC;AActE,OAAO,KAAK,EACV,SAAS,EAGT,eAAe,EACf,aAAa,EACb,eAAe,EACf,cAAc,EACd,oBAAoB,EACrB,MAAM,SAAS,CAAC;AA2PjB,eAAO,MAAM,IAAI,mEAAmB,CAAC;AAGrC,eAAO,MAAM,UAAU,6CAA4B,CAAC;AAGpD,eAAO,MAAM,QAAQ,2CAA0B,CAAC;AAGhD,eAAO,MAAM,UAAU,6CAA4B,CAAC;AAGpD,eAAO,MAAM,SAAS,4CAA2B,CAAC;AAGlD,eAAO,MAAM,eAAe,kDAAiC,CAAC"}
1
+ {"version":3,"file":"Card.d.ts","sourceRoot":"","sources":["../../../../src/card/Card.tsx"],"names":[],"mappings":"AAKA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,KAAoC,MAAM,OAAO,CAAC;AACzD,OAAO,EAAoB,IAAI,EAAkB,MAAM,cAAc,CAAC;AAetE,OAAO,KAAK,EACV,SAAS,EAGT,eAAe,EACf,aAAa,EACb,eAAe,EACf,cAAc,EACd,oBAAoB,EACrB,MAAM,SAAS,CAAC;AA8PjB,eAAO,MAAM,IAAI,mEAAmB,CAAC;AAGrC,eAAO,MAAM,UAAU,6CAA4B,CAAC;AAGpD,eAAO,MAAM,QAAQ,2CAA0B,CAAC;AAGhD,eAAO,MAAM,UAAU,6CAA4B,CAAC;AAGpD,eAAO,MAAM,SAAS,4CAA2B,CAAC;AAGlD,eAAO,MAAM,eAAe,kDAAiC,CAAC"}
@@ -12,11 +12,11 @@ import type { ShadowRole } from '../design-tokens/shadows';
12
12
  * `elevation` instead of asking for a new appearance.
13
13
  */
14
14
  /**
15
- * A rung of the `RADIUS` scale. Deliberately not a number: a card, a settings
16
- * group and a link preview are legitimately different surfaces, and the scale is
17
- * what keeps "different" to seven values rather than seven hundred.
15
+ * A rung of the `RADIUS` scale, or `panel` to inherit BloomScope.panelRadius
16
+ * and the shared circular panel curve. Other cards retain the fixed radius
17
+ * scale, so their geometry does not change with the workspace setting.
18
18
  */
19
- export type CardRadius = keyof typeof RADIUS;
19
+ export type CardRadius = keyof typeof RADIUS | 'panel';
20
20
  /** Elevation role, or none. Resolved through `bloomShadowStyle`, which owns the platform split. */
21
21
  export type CardElevation = 'none' | ShadowRole;
22
22
  /** Border width role. `thin` is the 1px default; `hairline` is the 0.5px `BORDER_WIDTH.hairline`. */
@@ -28,7 +28,7 @@ export interface CardProps {
28
28
  /** Preset background + border + elevation. Default `solid` with small elevation. */
29
29
  appearance?: BloomAppearance;
30
30
  tone?: BloomTone;
31
- /** Corner rung. Explicit prop wins over style.borderRadius; default radius-12. */
31
+ /** Corner rung, or panel to inherit BloomScope.panelRadius and the shared circular curve. Default radius-12. */
32
32
  radius?: CardRadius;
33
33
  /** Platform-adaptive curve. radius-max remains circular. */
34
34
  cornerCurve?: CornerCurve;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/card/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/card/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ContentPanel.d.ts","sourceRoot":"","sources":["../../../../src/content-panel/ContentPanel.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,OAAO,KAAe,MAAM,OAAO,CAAC;AAapC,OAAO,KAAK,EAAgC,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE/E;;;GAGG;AACH,eAAO,MAAM,kBAAkB,KAAK,CAAC;AACrC,wDAAwD;AACxD,eAAO,MAAM,eAAe,IAAI,CAAC;AACjC,2DAA2D;AAC3D,eAAO,MAAM,kBAAkB,IAAI,CAAC;AA+GpC,eAAO,MAAM,YAAY,+CAA8B,CAAC"}
1
+ {"version":3,"file":"ContentPanel.d.ts","sourceRoot":"","sources":["../../../../src/content-panel/ContentPanel.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,OAAO,KAAe,MAAM,OAAO,CAAC;AAapC,OAAO,KAAK,EAAgC,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE/E;;;GAGG;AACH,eAAO,MAAM,kBAAkB,KAAK,CAAC;AACrC,wDAAwD;AACxD,eAAO,MAAM,eAAe,IAAI,CAAC;AACjC,2DAA2D;AAC3D,eAAO,MAAM,kBAAkB,IAAI,CAAC;AAkHpC,eAAO,MAAM,YAAY,+CAA8B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ContentPanel.web.d.ts","sourceRoot":"","sources":["../../../../src/content-panel/ContentPanel.web.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsFG;AACH,OAAO,KAAmC,MAAM,OAAO,CAAC;AAiBxD,OAAO,KAAK,EAAgC,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE/E,+DAA+D;AAC/D,eAAO,MAAM,kBAAkB,KAAK,CAAC;AACrC,6DAA6D;AAC7D,eAAO,MAAM,eAAe,IAAI,CAAC;AACjC,2DAA2D;AAC3D,eAAO,MAAM,kBAAkB,IAAI,CAAC;AAqQpC,eAAO,MAAM,YAAY,+CAA8B,CAAC"}
1
+ {"version":3,"file":"ContentPanel.web.d.ts","sourceRoot":"","sources":["../../../../src/content-panel/ContentPanel.web.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsFG;AACH,OAAO,KAAmC,MAAM,OAAO,CAAC;AAiBxD,OAAO,KAAK,EAAgC,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE/E,+DAA+D;AAC/D,eAAO,MAAM,kBAAkB,KAAK,CAAC;AACrC,6DAA6D;AAC7D,eAAO,MAAM,eAAe,IAAI,CAAC;AACjC,2DAA2D;AAC3D,eAAO,MAAM,kBAAkB,IAAI,CAAC;AAyQpC,eAAO,MAAM,YAAY,+CAA8B,CAAC"}
@@ -15,6 +15,13 @@ export type ContentPanelFramedBreakpoint = 500 | 640 | 768 | 1024;
15
15
  export type ContentPanelChrome = 'elevated' | 'border' | 'none';
16
16
  export interface ContentPanelProps {
17
17
  children: React.ReactNode;
18
+ /**
19
+ * `solid` (default) paints a panel surface. `plain` keeps layout, framing and
20
+ * clipping while leaving the enclosing surface visible, without material,
21
+ * border or shadow. Descendants inherit the parent's surface level and fill.
22
+ * In plain mode surface background overrides and surfaceColor are ignored.
23
+ */
24
+ appearance?: 'solid' | 'plain';
18
25
  /** Opt in to local themed error recovery. Split panes already provide their own boundaries. */
19
26
  errorBoundary?: boolean | PanelErrorBoundaryOptions;
20
27
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/content-panel/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACzE,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9D;;;;;;;;GAQG;AACH,MAAM,MAAM,4BAA4B,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC;AAElE,kDAAkD;AAClD,MAAM,MAAM,kBAAkB,GAAG,UAAU,GAAG,QAAQ,GAAG,MAAM,CAAC;AAEhE,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,+FAA+F;IAC/F,aAAa,CAAC,EAAE,OAAO,GAAG,yBAAyB,CAAC;IACpD;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,4BAA4B,CAAC;IAC1C;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,uEAAuE;IACvE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACpC;;;;;;;;;;;;;;;;;;OAkBG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qDAAqD;IACrD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACpC;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;;;;;;;;;;;OAgBG;IACH,aAAa,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC;IACrC;;;;;;;;;;;;;;;OAeG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CACzD"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/content-panel/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACzE,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9D;;;;;;;;GAQG;AACH,MAAM,MAAM,4BAA4B,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC;AAElE,kDAAkD;AAClD,MAAM,MAAM,kBAAkB,GAAG,UAAU,GAAG,QAAQ,GAAG,MAAM,CAAC;AAEhE,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B;;;;;OAKG;IACH,UAAU,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;IAC/B,+FAA+F;IAC/F,aAAa,CAAC,EAAE,OAAO,GAAG,yBAAyB,CAAC;IACpD;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,4BAA4B,CAAC;IAC1C;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,uEAAuE;IACvE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACpC;;;;;;;;;;;;;;;;;;OAkBG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qDAAqD;IACrD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACpC;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;;;;;;;;;;;OAgBG;IACH,aAAa,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC;IACrC;;;;;;;;;;;;;;;OAeG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CACzD"}
@@ -1 +1 @@
1
- {"version":3,"file":"MailThread.d.ts","sourceRoot":"","sources":["../../../../src/mail-thread/MailThread.tsx"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,UAAU,CAAC,EACzB,OAAO,EACP,MAAM,EACN,OAAe,EACf,eAAe,EACf,QAAQ,EACR,WAAW,EACX,mBAAmB,EACnB,aAAiB,EACjB,UAAqB,EACrB,UAAU,EACV,MAAM,EACN,OAAO,EACP,kBAAkB,EAClB,KAAK,EACL,MAAM,GACP,EAAE,eAAe,2CAoIjB"}
1
+ {"version":3,"file":"MailThread.d.ts","sourceRoot":"","sources":["../../../../src/mail-thread/MailThread.tsx"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,UAAU,CAAC,EACzB,OAAO,EACP,MAAM,EACN,OAAe,EACf,eAAe,EACf,QAAQ,EACR,WAAW,EACX,mBAAmB,EACnB,aAAiB,EACjB,UAAqB,EACrB,UAAU,EACV,MAAM,EACN,OAAO,EACP,kBAAkB,EAClB,KAAK,EACL,MAAM,GACP,EAAE,eAAe,2CAmIjB"}
@@ -26,8 +26,8 @@ export declare const MAIL_THREAD_GEOMETRY: {
26
26
  readonly glyph: 16;
27
27
  /** The star and the overflow trigger. A touch target, so 44. */
28
28
  readonly action: 44;
29
- /** Radius of a message's own surface. */
30
- readonly radius: 16;
29
+ /** Default radius; rendered messages inherit BloomScope.panelRadius via Card. */
30
+ readonly radius: 28;
31
31
  };
32
32
  /**
33
33
  * How far the BODY is indented, so it starts under the sender's name rather
@@ -1 +1 @@
1
- {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../../src/mail-thread/shared.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAEjF,eAAO,MAAM,MAAM,SAAwB,CAAC;AAU5C;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,MAAM,CAAC;AAE1C;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAE5D;AAED,eAAO,MAAM,oBAAoB;IAC/B,4CAA4C;;IAE5C,mEAAmE;;IAEnE,wCAAwC;;IAExC,4BAA4B;;IAE5B,8CAA8C;;IAE9C,gEAAgE;;IAEhE,yCAAyC;;CAEjC,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,eAAe,QAGF,CAAC;AAM3B;;;GAGG;AACH,eAAO,MAAM,2BAA2B,EAAE,iBAA2C,CAAC;AAEtF,kGAAkG;AAClG,wBAAgB,iBAAiB,CAC/B,SAAS,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,EACtC,IAAI,GAAE,iBAA+C,GACpD,iBAAiB,CAEnB;AAMD,8EAA8E;AAC9E,wBAAgB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CAExD;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,SAAS,WAAW,EAAE,EACjC,GAAG,EAAE,MAAM,GACV;IAAE,KAAK,EAAE,SAAS,WAAW,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAGrD;AAED,6CAA6C;AAC7C,MAAM,MAAM,eAAe,GACvB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,iBAAiB,CAAA;CAAE,GAC/C;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,CAAC;AAEjE;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,SAAS,iBAAiB,EAAE,EACtC,aAAa,EAAE,MAAM,GACpB,eAAe,EAAE,CAenB;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,SAAS,iBAAiB,EAAE,GAAG,MAAM,EAAE,CAGnF;AAMD,eAAO,MAAM,oBAAoB,8BAA8B,CAAC;AAIhE,eAAO,MAAM,eAAe,wPAU3B,CAAC"}
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../../src/mail-thread/shared.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAEjF,eAAO,MAAM,MAAM,SAAwB,CAAC;AAU5C;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,MAAM,CAAC;AAE1C;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAE5D;AAED,eAAO,MAAM,oBAAoB;IAC/B,4CAA4C;;IAE5C,mEAAmE;;IAEnE,wCAAwC;;IAExC,4BAA4B;;IAE5B,8CAA8C;;IAE9C,gEAAgE;;IAEhE,iFAAiF;;CAEzE,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,eAAe,QAGF,CAAC;AAM3B;;;GAGG;AACH,eAAO,MAAM,2BAA2B,EAAE,iBAA2C,CAAC;AAEtF,kGAAkG;AAClG,wBAAgB,iBAAiB,CAC/B,SAAS,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,EACtC,IAAI,GAAE,iBAA+C,GACpD,iBAAiB,CAEnB;AAMD,8EAA8E;AAC9E,wBAAgB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CAExD;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,SAAS,WAAW,EAAE,EACjC,GAAG,EAAE,MAAM,GACV;IAAE,KAAK,EAAE,SAAS,WAAW,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAGrD;AAED,6CAA6C;AAC7C,MAAM,MAAM,eAAe,GACvB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,iBAAiB,CAAA;CAAE,GAC/C;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,CAAC;AAEjE;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,SAAS,iBAAiB,EAAE,EACtC,aAAa,EAAE,MAAM,GACpB,eAAe,EAAE,CAenB;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,SAAS,iBAAiB,EAAE,GAAG,MAAM,EAAE,CAGnF;AAMD,eAAO,MAAM,oBAAoB,8BAA8B,CAAC;AAIhE,eAAO,MAAM,eAAe,wPAU3B,CAAC"}
@@ -31,7 +31,7 @@ export interface NoteCardGeometry {
31
31
  padding: number;
32
32
  gap: number;
33
33
  /** A rung of the `RADIUS` scale — `Card` takes the rung, the focus ring takes its px. */
34
- radius: CardRadius;
34
+ radius: Exclude<CardRadius, 'panel'>;
35
35
  excerptLines: number;
36
36
  titleLines: number;
37
37
  maxTags: number;
@@ -1 +1 @@
1
- {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../../src/note-card/shared.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,OAAO,EAAuB,KAAK,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAE9E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAE5C,OAAO,EAIL,KAAK,gBAAgB,EACtB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,yFAAyF;IACzF,MAAM,EAAE,UAAU,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qEAAqE;IACrE,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,eAAe,EAAE,gBAAgB,CAoBxE,CAAC;AAEF,MAAM,WAAW,aAAc,SAAQ,gBAAgB;IACrD,gGAAgG;IAChG,UAAU,EAAE,MAAM,CAAC;IACnB,uBAAuB;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,mDAAmD;IACnD,cAAc,EAAE,MAAM,CAAC;IACvB,6FAA6F;IAC7F,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gEAAgE;IAChE,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAK9D;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,UAAU,GAAG,SAAS,GAC3B,aAAa,CAmBf;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS,GAAG,QAAQ,GAAG,UAAU,CAElF;AAED,oEAAoE;AACpE,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,CAEjE;AAED,iFAAiF;AACjF,wBAAgB,eAAe,CAAC,KAAK,EAAE,aAAa,CAAC,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,SAAS,CAAC,GAAG,MAAM,CAIjG"}
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../../src/note-card/shared.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,OAAO,EAAuB,KAAK,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAE9E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAE5C,OAAO,EAIL,KAAK,gBAAgB,EACtB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,yFAAyF;IACzF,MAAM,EAAE,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACrC,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qEAAqE;IACrE,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,eAAe,EAAE,gBAAgB,CAoBxE,CAAC;AAEF,MAAM,WAAW,aAAc,SAAQ,gBAAgB;IACrD,gGAAgG;IAChG,UAAU,EAAE,MAAM,CAAC;IACnB,uBAAuB;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,mDAAmD;IACnD,cAAc,EAAE,MAAM,CAAC;IACvB,6FAA6F;IAC7F,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gEAAgE;IAChE,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAK9D;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,UAAU,GAAG,SAAS,GAC3B,aAAa,CAmBf;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS,GAAG,QAAQ,GAAG,UAAU,CAElF;AAED,oEAAoE;AACpE,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,CAEjE;AAED,iFAAiF;AACjF,wBAAgB,eAAe,CAAC,KAAK,EAAE,aAAa,CAAC,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,SAAS,CAAC,GAAG,MAAM,CAIjG"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oxy.so/bloom",
3
- "version": "7.3.0",
3
+ "version": "7.4.0",
4
4
  "packageManager": "bun@1.3.14",
5
5
  "description": "Bloom UI — Oxy ecosystem component library for React Native + Expo + Web",
6
6
  "main": "lib/commonjs/index.js",
package/src/card/Card.tsx CHANGED
@@ -38,6 +38,7 @@ import { bloomShadowStyle } from '../design-tokens/shadows';
38
38
  import { useInteractionState } from '../hooks/use-interaction-state';
39
39
  import { StyledPressable, StyledView } from '../styles/styled-primitives';
40
40
  import { space } from '../styles/tokens';
41
+ import { usePanelShape } from '../styles/panel-chrome';
41
42
  import type {
42
43
  CardProps,
43
44
  CardBorder,
@@ -75,7 +76,7 @@ const CardRootComponent = React.forwardRef<View, CardProps>(function CardRootCom
75
76
  appearance: appearanceProp,
76
77
  tone: toneProp,
77
78
  radius,
78
- cornerCurve = SURFACE_SHAPES.card.curve,
79
+ cornerCurve: cornerCurveProp,
79
80
  clipContent = false,
80
81
  contentStyle,
81
82
  elevation,
@@ -92,7 +93,10 @@ const CardRootComponent = React.forwardRef<View, CardProps>(function CardRootCom
92
93
  const theme = useTheme();
93
94
  const layer = useSurfaceLayer();
94
95
  const parentLevel = useSurfaceLevelValue();
95
- const resolvedGeometry = resolveSurfaceGeometry(radius ? RADIUS[radius] : undefined, style, RADIUS['radius-12'], cornerCurve);
96
+ const panelShape = usePanelShape();
97
+ const cornerCurve = cornerCurveProp ?? (radius === 'panel' ? panelShape.curve : SURFACE_SHAPES.card.curve);
98
+ const explicitRadius = radius === 'panel' ? panelShape.radius : radius ? RADIUS[radius] : undefined;
99
+ const resolvedGeometry = resolveSurfaceGeometry(explicitRadius, style, RADIUS['radius-12'], cornerCurve);
96
100
  const appearance = appearanceProp ?? 'solid';
97
101
  const {tone} = useBloomAppearance({tone: toneProp}, {size: 'md', tone: 'neutral'});
98
102
  const paint = resolveBloomColors(theme.colors, tone, appearance);
package/src/card/types.ts CHANGED
@@ -15,11 +15,11 @@ import type { ShadowRole } from '../design-tokens/shadows';
15
15
  */
16
16
 
17
17
  /**
18
- * A rung of the `RADIUS` scale. Deliberately not a number: a card, a settings
19
- * group and a link preview are legitimately different surfaces, and the scale is
20
- * what keeps "different" to seven values rather than seven hundred.
18
+ * A rung of the `RADIUS` scale, or `panel` to inherit BloomScope.panelRadius
19
+ * and the shared circular panel curve. Other cards retain the fixed radius
20
+ * scale, so their geometry does not change with the workspace setting.
21
21
  */
22
- export type CardRadius = keyof typeof RADIUS;
22
+ export type CardRadius = keyof typeof RADIUS | 'panel';
23
23
 
24
24
  /** Elevation role, or none. Resolved through `bloomShadowStyle`, which owns the platform split. */
25
25
  export type CardElevation = 'none' | ShadowRole;
@@ -44,7 +44,7 @@ export interface CardProps {
44
44
  /** Preset background + border + elevation. Default `solid` with small elevation. */
45
45
  appearance?: BloomAppearance;
46
46
  tone?: BloomTone;
47
- /** Corner rung. Explicit prop wins over style.borderRadius; default radius-12. */
47
+ /** Corner rung, or panel to inherit BloomScope.panelRadius and the shared circular curve. Default radius-12. */
48
48
  radius?: CardRadius;
49
49
  /** Platform-adaptive curve. radius-max remains circular. */
50
50
  cornerCurve?: CornerCurve;
@@ -38,7 +38,7 @@ import { StyleSheet, useWindowDimensions } from 'react-native';
38
38
  import { useOptionalPanelChrome, usePanelShape } from '../styles/panel-chrome';
39
39
  import { surfaceStyle as resolveShapeStyle } from '../shapes/surface-style';
40
40
  import { StyledView } from '../styles/styled-primitives';
41
- import { SurfaceLevelProvider, surfaceFillVars, useOptionalSurfaceFill } from '../styles/surface-levels';
41
+ import { SurfaceLevelProvider, surfaceFillVars, useOptionalSurfaceFill, useSurfaceLevelValue } from '../styles/surface-levels';
42
42
  import {
43
43
  ContentPanelNestingContext,
44
44
  useContentPanelNestingGuard,
@@ -80,6 +80,7 @@ const RESPONSIVE_CONTENT: Record<ContentPanelFramedBreakpoint, string> = {
80
80
  const ContentPanelComponent: React.FC<ContentPanelProps> = ({
81
81
  children,
82
82
  errorBoundary = false,
83
+ appearance = 'solid',
83
84
  framed,
84
85
  framedFrom = 768,
85
86
  fill = false,
@@ -100,8 +101,10 @@ const ContentPanelComponent: React.FC<ContentPanelProps> = ({
100
101
  const defaultFill = rawFill;
101
102
  const { width } = useWindowDimensions();
102
103
  const parentFill = useOptionalSurfaceFill();
103
- const paintsSurface = Boolean(defaultFill) && parentFill !== undefined && (framed ?? width >= framedFrom) && chrome !== 'none';
104
- const publishedFill = rawFill && paintsSurface ? resolveSurfaceMaterial({ fill: rawFill, parentFill: parentFill! }).publishedFill : rawFill;
104
+ const parentLevel = useSurfaceLevelValue();
105
+ const isPlain = appearance === 'plain';
106
+ const paintsSurface = !isPlain && Boolean(defaultFill) && parentFill !== undefined && (framed ?? width >= framedFrom) && chrome !== 'none';
107
+ const publishedFill = isPlain ? parentFill : rawFill && paintsSurface ? resolveSurfaceMaterial({ fill: rawFill, parentFill: parentFill! }).publishedFill : rawFill;
105
108
  const radius = StyleSheet.flatten(surfaceStyle)?.borderRadius ?? panelShape.radius;
106
109
  const isFramed = framed ?? width >= framedFrom;
107
110
  const geometry = { ...resolveShapeStyle({ curve: panelShape.curve }), borderRadius: isFramed ? radius : 0 };
@@ -113,18 +116,18 @@ const ContentPanelComponent: React.FC<ContentPanelProps> = ({
113
116
  // (the breakpoint bundle lives whole in `RESPONSIVE_SURFACE`; `framed ===
114
117
  // true`/`false` ignore `framedFrom` for fixed always/never framing).
115
118
  const surfaceBase =
116
- chrome === 'none'
119
+ isPlain || chrome === 'none'
117
120
  ? 'flex-1'
118
121
  : framed === undefined
119
122
  ? `flex-1 ${RESPONSIVE_SURFACE[framedFrom]}`
120
123
  : framed
121
124
  ? 'flex-1 border border-border'
122
125
  : 'flex-1';
123
- const surfaceClass = [surfaceBase, fill ? 'min-h-0' : '', surfaceClassName ?? (paintsSurface ? 'bg-transparent' : 'bg-card')].filter(Boolean).join(' ');
126
+ const surfaceClass = [surfaceBase, fill ? 'min-h-0' : '', surfaceClassName ?? (isPlain || paintsSurface ? 'bg-transparent' : 'bg-card')].filter(Boolean).join(' ');
124
127
  // Native has no overlays: the surface itself carries the edge. `none` drops
125
128
  // both, `border` keeps the class-drawn hairline, `elevated` adds the lift.
126
129
  const chromeStyle =
127
- !isFramed || chrome === 'none' || chrome === 'border'
130
+ !isFramed || isPlain || chrome === 'none' || chrome === 'border'
128
131
  ? null
129
132
  : shadow || panelChrome
130
133
  ? { boxShadow: shadow ?? panelChrome?.shadow }
@@ -149,14 +152,14 @@ const ContentPanelComponent: React.FC<ContentPanelProps> = ({
149
152
  geometry,
150
153
  chromeStyle,
151
154
  surfaceStyle,
152
- paintsSurface ? { backgroundColor: 'transparent' } : null,
155
+ isPlain || paintsSurface ? { backgroundColor: 'transparent' } : null,
153
156
  ]}
154
157
  >
155
158
  {paintsSurface ? <SurfacePaint fill={defaultFill!} radius={radius} shape={{ curve: panelShape.curve }} /> : null}
156
159
  <StyledView testID="content-panel-content" className={contentClass} style={[geometry, contentStyle]}>
157
- {/* The panel is a surface: everything inside is sitting on rung 1,
158
- painted in the colour this panel actually paints. */}
159
- <SurfaceLevelProvider level={1} fill={publishedFill}>
160
+ {/* Solid panels publish their painted surface. Plain panels preserve
161
+ the enclosing surface so descendant scrims follow its real fill. */}
162
+ <SurfaceLevelProvider level={isPlain ? parentLevel : 1} fill={publishedFill}>
160
163
  {errorBoundary === false ? children : <PanelErrorBoundary {...(errorBoundary === true ? {} : errorBoundary)}>{children}</PanelErrorBoundary>}
161
164
  </SurfaceLevelProvider>
162
165
  </StyledView>
@@ -97,7 +97,7 @@ import { surfaceStyle as resolveShapeStyle } from '../shapes/surface-style';
97
97
  import { StyledView } from '../styles/styled-primitives';
98
98
 
99
99
  import { useOptionalPanelChrome, usePanelShape } from '../styles/panel-chrome';
100
- import { SurfaceLevelProvider, surfaceFillVars, useOptionalSurfaceFill } from '../styles/surface-levels';
100
+ import { SurfaceLevelProvider, surfaceFillVars, useOptionalSurfaceFill, useSurfaceLevelValue } from '../styles/surface-levels';
101
101
  import { useTheme } from '../theme/use-theme';
102
102
  import {
103
103
  ContentPanelNestingContext,
@@ -173,6 +173,7 @@ const PANEL_INSET_CSS = `
173
173
  const ContentPanelComponent: React.FC<ContentPanelProps> = ({
174
174
  children,
175
175
  errorBoundary = false,
176
+ appearance = 'solid',
176
177
  framed,
177
178
  framedFrom = 768,
178
179
  fill = false,
@@ -211,8 +212,10 @@ const ContentPanelComponent: React.FC<ContentPanelProps> = ({
211
212
  const defaultFill = rawFill;
212
213
  const { width } = useWindowDimensions();
213
214
  const parentFill = useOptionalSurfaceFill();
214
- const paintsSurface = Boolean(defaultFill) && parentFill !== undefined && (framed ?? width >= framedFrom) && chrome !== 'none';
215
- const publishedFill = rawFill && paintsSurface ? resolveSurfaceMaterial({ fill: rawFill, parentFill: parentFill! }).publishedFill : rawFill;
215
+ const parentLevel = useSurfaceLevelValue();
216
+ const isPlain = appearance === 'plain';
217
+ const paintsSurface = !isPlain && Boolean(defaultFill) && parentFill !== undefined && (framed ?? width >= framedFrom) && chrome !== 'none';
218
+ const publishedFill = isPlain ? parentFill : rawFill && paintsSurface ? resolveSurfaceMaterial({ fill: rawFill, parentFill: parentFill! }).publishedFill : rawFill;
216
219
  const materialStyle = useSurfaceMaterial('[data-bloom-panel-material]', 'bloom-content-panel-material', defaultFill ?? 'transparent');
217
220
 
218
221
  // Tri-state: `undefined` → responsive (md:-gated), `true` → always framed,
@@ -257,7 +260,7 @@ const ContentPanelComponent: React.FC<ContentPanelProps> = ({
257
260
  const gridStackClass = boundToPanel
258
261
  ? 'web:grid web:[grid-template-columns:minmax(0,1fr)] web:[grid-template-rows:minmax(0,1fr)]'
259
262
  : '';
260
- const surfaceClass = [surfaceBase, fillSurface, gridStackClass, surfaceClassName ?? (paintsSurface ? 'bg-transparent' : 'bg-card')].filter(Boolean).join(' ');
263
+ const surfaceClass = [surfaceBase, fillSurface, gridStackClass, surfaceClassName ?? (isPlain || paintsSurface ? 'bg-transparent' : 'bg-card')].filter(Boolean).join(' ');
261
264
  const contentClass = [contentBase, fillContent, boundToPanel ? 'web:[grid-area:1/1]' : '', contentClassName]
262
265
  .filter(Boolean)
263
266
  .join(' ');
@@ -313,6 +316,7 @@ const ContentPanelComponent: React.FC<ContentPanelProps> = ({
313
316
  framed === true ? { borderRadius: radius } : framed === false ? { borderRadius: 0 } : null,
314
317
  surfaceStyle,
315
318
  paintsSurface ? materialStyle : null,
319
+ isPlain ? { backgroundColor: 'transparent' } : null,
316
320
  ]}
317
321
  >
318
322
  {/* (1) Bleed-mask overlay — gutter box-shadow ring, below chrome. Not
@@ -331,12 +335,12 @@ const ContentPanelComponent: React.FC<ContentPanelProps> = ({
331
335
  ? `web:sticky web:top-2 z-30 h-[calc(100dvh-16px)] w-full rounded-[var(--bloom-panel-radius)] ${bp.overlayHidden} web:[margin-bottom:calc(-100dvh+16px)]`
332
336
  : 'web:sticky web:top-2 z-30 h-[calc(100dvh-16px)] w-full rounded-[var(--bloom-panel-radius)] web:[margin-bottom:calc(-100dvh+16px)]'
333
337
  }
334
- style={{ ...panelStyle, ...insetStyle, boxShadow: `0 0 0 ${maskSpread}px ${maskColor ?? colors.background}` }}
338
+ style={{ ...panelStyle, ...insetStyle, boxShadow: `0 0 0 ${maskSpread}px ${maskColor ?? (isPlain ? parentFill : undefined) ?? colors.background}` }}
335
339
  />
336
340
  )}
337
341
  {/* (2) Border-frame overlay — one continuous rounded border, above all.
338
342
  Same visibility gating as the bleed-mask. */}
339
- {showOverlays && showStickyFrame !== false && chrome !== 'none' && (
343
+ {showOverlays && showStickyFrame !== false && !isPlain && chrome !== 'none' && (
340
344
  <StyledView
341
345
  key="border-frame"
342
346
  testID="content-panel-border-frame"
@@ -361,9 +365,9 @@ const ContentPanelComponent: React.FC<ContentPanelProps> = ({
361
365
  scroll/virtualizer + refetch on a breakpoint cross). Clipped to the
362
366
  rounded panel shape on web when framed. */}
363
367
  <StyledView key="content" testID="content-panel-content" className={contentClass} style={[curveStyle, framed === true ? { borderRadius: radius } : framed === false ? { borderRadius: 0 } : null, contentStyle]}>
364
- {/* The panel is a surface: everything inside is sitting on rung 1,
365
- painted in the colour this panel actually paints. */}
366
- <SurfaceLevelProvider level={1} fill={publishedFill}>
368
+ {/* Solid panels publish their painted surface. Plain panels preserve
369
+ the enclosing surface so descendant scrims follow its real fill. */}
370
+ <SurfaceLevelProvider level={isPlain ? parentLevel : 1} fill={publishedFill}>
367
371
  {errorBoundary === false ? children : <PanelErrorBoundary {...(errorBoundary === true ? {} : errorBoundary)}>{children}</PanelErrorBoundary>}
368
372
  </SurfaceLevelProvider>
369
373
  </StyledView>
@@ -18,6 +18,13 @@ export type ContentPanelChrome = 'elevated' | 'border' | 'none';
18
18
 
19
19
  export interface ContentPanelProps {
20
20
  children: React.ReactNode;
21
+ /**
22
+ * `solid` (default) paints a panel surface. `plain` keeps layout, framing and
23
+ * clipping while leaving the enclosing surface visible, without material,
24
+ * border or shadow. Descendants inherit the parent's surface level and fill.
25
+ * In plain mode surface background overrides and surfaceColor are ignored.
26
+ */
27
+ appearance?: 'solid' | 'plain';
21
28
  /** Opt in to local themed error recovery. Split panes already provide their own boundaries. */
22
29
  errorBoundary?: boolean | PanelErrorBoundaryOptions;
23
30
  /**
@@ -143,7 +143,7 @@ export function MailMessage({
143
143
  appearance="solid"
144
144
  border="none"
145
145
  elevation="s"
146
- radius="radius-16"
146
+ radius="panel"
147
147
  testID={testID}
148
148
  style={[open ? { paddingBottom: geo.paddingVertical } : null, style]}
149
149
  >
@@ -2,7 +2,6 @@ import React, { useEffect, useMemo, useState } from 'react';
2
2
  import { View } from 'react-native';
3
3
 
4
4
  import { Button } from '../button';
5
- import { Divider } from '../divider';
6
5
  import { useControllableState } from '../hooks/use-controllable-state';
7
6
  import { MailLabelChips, MailStar } from '../mail-list/parts';
8
7
  import { mailStrings, resolveMailPaint, visibleLabels } from '../mail-list/shared';
@@ -145,7 +144,6 @@ export function MailThread({
145
144
  />
146
145
  </View>
147
146
  ) : null}
148
- <Divider />
149
147
  <View testID={testID ? `${testID}-messages` : undefined} style={{ paddingTop: space.xs, paddingBottom: space.xs, gap: messageGap }}>
150
148
  {entries.map((entry) =>
151
149
  entry.kind === 'message' ? (
@@ -1,5 +1,5 @@
1
1
  import { Platform } from 'react-native';
2
- import { RADIUS } from '../design-tokens/scales';
2
+ import { SURFACE_SHAPES } from '../design-tokens/shapes';
3
3
 
4
4
  import { MAIL_THREAD_MESSAGES } from './messages';
5
5
  import type { MailThreadMessage, MailAddress, MailThreadStrings } from './types';
@@ -44,8 +44,8 @@ export const MAIL_THREAD_GEOMETRY = {
44
44
  glyph: 16,
45
45
  /** The star and the overflow trigger. A touch target, so 44. */
46
46
  action: 44,
47
- /** Radius of a message's own surface. */
48
- radius: RADIUS['radius-16'],
47
+ /** Default radius; rendered messages inherit BloomScope.panelRadius via Card. */
48
+ radius: SURFACE_SHAPES.sidebar.radius,
49
49
  } as const;
50
50
 
51
51
  /**
@@ -40,7 +40,7 @@ export interface NoteCardGeometry {
40
40
  padding: number;
41
41
  gap: number;
42
42
  /** A rung of the `RADIUS` scale — `Card` takes the rung, the focus ring takes its px. */
43
- radius: CardRadius;
43
+ radius: Exclude<CardRadius, 'panel'>;
44
44
  excerptLines: number;
45
45
  titleLines: number;
46
46
  maxTags: number;