@notionhq/custom-blocks 0.1.1 → 0.1.3

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 (80) hide show
  1. package/HOST.md +29 -18
  2. package/README.md +56 -15
  3. package/dist/bridge/SandboxBridge.d.ts.map +1 -1
  4. package/dist/bridge/SandboxBridge.js +11 -0
  5. package/dist/bridge/contrast.d.ts +5 -0
  6. package/dist/bridge/contrast.d.ts.map +1 -0
  7. package/dist/bridge/contrast.js +3 -0
  8. package/dist/bridge/hostState.d.ts +3 -0
  9. package/dist/bridge/hostState.d.ts.map +1 -1
  10. package/dist/bridge/loadManifest.d.ts +9 -8
  11. package/dist/bridge/loadManifest.d.ts.map +1 -1
  12. package/dist/bridge/loadManifest.js +6 -14
  13. package/dist/bridge/manifest.d.ts +3 -8
  14. package/dist/bridge/manifest.d.ts.map +1 -1
  15. package/dist/bridge/manifest.js +0 -8
  16. package/dist/bridge/messages/contrastModeChanged.d.ts +8 -0
  17. package/dist/bridge/messages/contrastModeChanged.d.ts.map +1 -0
  18. package/dist/bridge/messages/contrastModeChanged.js +7 -0
  19. package/dist/bridge/messages/hostToSandbox.d.ts +4 -0
  20. package/dist/bridge/messages/hostToSandbox.d.ts.map +1 -1
  21. package/dist/bridge/messages/hostToSandbox.js +2 -0
  22. package/dist/bridge/messages/init.d.ts +4 -1
  23. package/dist/bridge/messages/init.d.ts.map +1 -1
  24. package/dist/bridge/messages/init.js +6 -1
  25. package/dist/customBlock.d.ts +4 -0
  26. package/dist/customBlock.d.ts.map +1 -1
  27. package/dist/customBlock.js +5 -0
  28. package/dist/host/createCustomBlockHost.d.ts +2 -0
  29. package/dist/host/createCustomBlockHost.d.ts.map +1 -1
  30. package/dist/host/createCustomBlockHost.js +22 -0
  31. package/dist/host/lifecycle/types.d.ts +2 -0
  32. package/dist/host/lifecycle/types.d.ts.map +1 -1
  33. package/dist/host.d.ts +4 -0
  34. package/dist/host.d.ts.map +1 -1
  35. package/dist/host.js +2 -0
  36. package/dist/index.d.ts +1 -0
  37. package/dist/index.d.ts.map +1 -1
  38. package/dist/init.d.ts +7 -6
  39. package/dist/init.d.ts.map +1 -1
  40. package/dist/init.js +20 -10
  41. package/dist/react/NotionTokenScope.d.ts +10 -0
  42. package/dist/react/NotionTokenScope.d.ts.map +1 -0
  43. package/dist/react/NotionTokenScope.js +11 -0
  44. package/dist/react/index.d.ts +2 -1
  45. package/dist/react/index.d.ts.map +1 -1
  46. package/dist/react/index.js +2 -1
  47. package/dist/react/standalonePreview.d.ts.map +1 -1
  48. package/dist/react/standalonePreview.js +2 -0
  49. package/dist/react/useRuntimeState.d.ts +11 -0
  50. package/dist/react/useRuntimeState.d.ts.map +1 -1
  51. package/dist/react/useRuntimeState.js +12 -0
  52. package/dist/styles/nds.css +1 -0
  53. package/dist/version.js +1 -1
  54. package/docs/block-location.md +17 -3
  55. package/docs/deployment.md +41 -0
  56. package/docs/lifecycle.md +3 -2
  57. package/docs/vite-plugin.md +5 -29
  58. package/package.json +2 -1
  59. package/src/bridge/SandboxBridge.ts +12 -0
  60. package/src/bridge/contrast.ts +6 -0
  61. package/src/bridge/hostState.ts +3 -0
  62. package/src/bridge/loadManifest.ts +8 -17
  63. package/src/bridge/manifest.ts +3 -9
  64. package/src/bridge/messages/contrastModeChanged.ts +12 -0
  65. package/src/bridge/messages/hostToSandbox.ts +2 -0
  66. package/src/bridge/messages/init.ts +6 -1
  67. package/src/customBlock.ts +13 -1
  68. package/src/host/createCustomBlockHost.ts +27 -0
  69. package/src/host/lifecycle/types.ts +3 -0
  70. package/src/host.ts +4 -0
  71. package/src/index.ts +1 -0
  72. package/src/init.ts +22 -10
  73. package/src/react/NotionTokenScope.tsx +25 -0
  74. package/src/react/index.ts +5 -0
  75. package/src/react/standalonePreview.ts +2 -0
  76. package/src/react/useRuntimeState.ts +17 -0
  77. package/src/styles/nds.css +1 -0
  78. package/src/styles/nds.css.metadata.json +6 -0
  79. package/vite-plugin/index.d.ts +2 -2
  80. package/vite-plugin/index.js +8 -7
@@ -1,4 +1,5 @@
1
1
  import { autoResize } from "./autoResize.js";
2
+ import type { NotionContrastMode } from "./bridge/contrast.js";
2
3
  import type { NotionDataSource } from "./bridge/dataSources/dataSource.js";
3
4
  import type { NotionBlockId } from "./bridge/ids.js";
4
5
  import type { CustomBlockManifest } from "./bridge/manifest.js";
@@ -9,9 +10,11 @@ import type { NotionUser } from "./bridge/users/user.js";
9
10
  export type CustomBlockState = {
10
11
  status: "uninitialized";
11
12
  theme: NotionTheme;
13
+ contrastMode: NotionContrastMode;
12
14
  } | {
13
15
  status: "initialized";
14
16
  theme: NotionTheme;
17
+ contrastMode: NotionContrastMode;
15
18
  blockId: NotionBlockId;
16
19
  parent: NotionParent;
17
20
  page: CustomBlockPage;
@@ -27,6 +30,7 @@ export declare const customBlock: {
27
30
  getState(): CustomBlockState;
28
31
  getCurrentUser(): NotionUser;
29
32
  getTheme(): NotionTheme;
33
+ getContrastMode(): NotionContrastMode;
30
34
  getBlockId(): NotionBlockId;
31
35
  getParent(): NotionParent;
32
36
  getPage(): CustomBlockPage;
@@ -1 +1 @@
1
- {"version":3,"file":"customBlock.d.ts","sourceRoot":"","sources":["../../../home/runner/work/custom-blocks/custom-blocks/sdk/src/customBlock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAA;AAK1E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AACpD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAExD,MAAM,MAAM,gBAAgB,GACzB;IAAE,MAAM,EAAE,eAAe,CAAC;IAAC,KAAK,EAAE,WAAW,CAAA;CAAE,GAC/C;IACA,MAAM,EAAE,aAAa,CAAA;IACrB,KAAK,EAAE,WAAW,CAAA;IAClB,OAAO,EAAE,aAAa,CAAA;IACtB,MAAM,EAAE,YAAY,CAAA;IACpB,IAAI,EAAE,eAAe,CAAA;IACrB,WAAW,EAAE,UAAU,CAAA;IACvB,WAAW,EAAE,gBAAgB,EAAE,CAAA;CAC9B,CAAA;AAEJ;;;GAGG;AACH,eAAO,MAAM,WAAW;wBACH,MAAM,IAAI,GAAG,MAAM,IAAI;gBAI/B,gBAAgB;sBAIV,UAAU;gBAIhB,WAAW;kBAIT,aAAa;iBAId,YAAY;eAId,eAAe;mBAIX,mBAAmB;;CAKlC,CAAA"}
1
+ {"version":3,"file":"customBlock.d.ts","sourceRoot":"","sources":["../../../home/runner/work/custom-blocks/custom-blocks/sdk/src/customBlock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAA;AAK1E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AACpD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAExD,MAAM,MAAM,gBAAgB,GACzB;IACA,MAAM,EAAE,eAAe,CAAA;IACvB,KAAK,EAAE,WAAW,CAAA;IAClB,YAAY,EAAE,kBAAkB,CAAA;CAC/B,GACD;IACA,MAAM,EAAE,aAAa,CAAA;IACrB,KAAK,EAAE,WAAW,CAAA;IAClB,YAAY,EAAE,kBAAkB,CAAA;IAChC,OAAO,EAAE,aAAa,CAAA;IACtB,MAAM,EAAE,YAAY,CAAA;IACpB,IAAI,EAAE,eAAe,CAAA;IACrB,WAAW,EAAE,UAAU,CAAA;IACvB,WAAW,EAAE,gBAAgB,EAAE,CAAA;CAC9B,CAAA;AAEJ;;;GAGG;AACH,eAAO,MAAM,WAAW;wBACH,MAAM,IAAI,GAAG,MAAM,IAAI;gBAI/B,gBAAgB;sBAIV,UAAU;gBAIhB,WAAW;uBAIJ,kBAAkB;kBAIvB,aAAa;iBAId,YAAY;eAId,eAAe;mBAIX,mBAAmB;;CAKlC,CAAA"}
@@ -17,6 +17,9 @@ export const customBlock = {
17
17
  getTheme() {
18
18
  return getInitializedHostState("getTheme").theme;
19
19
  },
20
+ getContrastMode() {
21
+ return getInitializedHostState("getContrastMode").contrastMode;
22
+ },
20
23
  getBlockId() {
21
24
  return getInitializedHostState("getBlockId").blockId;
22
25
  },
@@ -42,12 +45,14 @@ function toPublicState(hostState) {
42
45
  lastPublicState = {
43
46
  status: "uninitialized",
44
47
  theme: hostState.theme,
48
+ contrastMode: hostState.contrastMode,
45
49
  };
46
50
  return lastPublicState;
47
51
  }
48
52
  lastPublicState = {
49
53
  status: "initialized",
50
54
  theme: hostState.theme,
55
+ contrastMode: hostState.contrastMode,
51
56
  blockId: hostState.blockId,
52
57
  parent: hostState.parent,
53
58
  page: hostState.page,
@@ -1,3 +1,4 @@
1
+ import { type NotionContrastMode } from "../bridge/contrast.js";
1
2
  import type { NotionDataSourceId } from "../bridge/ids.js";
2
3
  import type { HostToSandboxMessage } from "../bridge/messages/hostToSandbox.js";
3
4
  import type { InitResultMessage } from "../bridge/messages/initResult.js";
@@ -24,6 +25,7 @@ export type CustomBlockHostHandle = {
24
25
  stop: () => void;
25
26
  post: (message: HostToSandboxMessage) => void;
26
27
  setTheme: (theme: NotionTheme) => void;
28
+ setContrastMode: (contrastMode: NotionContrastMode) => void;
27
29
  setParent: (parent: NotionParent) => void;
28
30
  setPage: (page: CustomBlockPage) => void;
29
31
  setDataSources: (dataSources: CustomBlockHostDataSourcesPayload) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"createCustomBlockHost.d.ts","sourceRoot":"","sources":["../../../../home/runner/work/custom-blocks/custom-blocks/sdk/src/host/createCustomBlockHost.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAc1D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAA;AAM/E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAA;AAazE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAEvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAIzD,OAAO,KAAK,EACX,qBAAqB,EACrB,iCAAiC,EACjC,2BAA2B,EAE3B,MAAM,sBAAsB,CAAA;AAE7B,OAAO,KAAK,EACX,uBAAuB,EACvB,2BAA2B,EAC3B,MAAM,qBAAqB,CAAA;AAE5B,OAAO,KAAK,EAAE,oCAAoC,EAAE,MAAM,oBAAoB,CAAA;AAE9E,MAAM,MAAM,sBAAsB,GAAG;IACpC,MAAM,EAAE,iBAAiB,CAAA;IACzB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,wBAAwB,EAAE,MAAM,CAAA;IAChC,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,YAAY,EAAE,2BAA2B,CAAA;IACzC,QAAQ,EAAE,uBAAuB,CAAA;IACjC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,qBAAqB,KAAK,IAAI,CAAA;IACpD,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,IAAI,CAAA;IACnD,KAAK,CAAC,EAAE,CAAC,SAAS,EAAE,2BAA2B,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAA;CAC1E,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG;IACnC,IAAI,EAAE,MAAM,IAAI,CAAA;IAChB,IAAI,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,IAAI,CAAA;IAC7C,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAA;IACtC,SAAS,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,CAAA;IACzC,OAAO,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,IAAI,CAAA;IACxC,cAAc,EAAE,CAAC,WAAW,EAAE,iCAAiC,KAAK,IAAI,CAAA;IACxE,cAAc,EAAE,CAAC,WAAW,EAAE,UAAU,KAAK,IAAI,CAAA;IACjD,YAAY,EAAE,CAAC,IAAI,EAAE;QACpB,YAAY,EAAE,kBAAkB,CAAA;QAChC,QAAQ,EAAE,oCAAoC,CAAA;KAC9C,KAAK,IAAI,CAAA;CACV,CAAA;AAQD,wBAAgB,qBAAqB,CACpC,OAAO,EAAE,sBAAsB,GAC7B,qBAAqB,CA+fvB"}
1
+ {"version":3,"file":"createCustomBlockHost.d.ts","sourceRoot":"","sources":["../../../../home/runner/work/custom-blocks/custom-blocks/sdk/src/host/createCustomBlockHost.ts"],"names":[],"mappings":"AACA,OAAO,EAEN,KAAK,kBAAkB,EACvB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAe1D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAA;AAM/E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAA;AAazE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAEvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAIzD,OAAO,KAAK,EACX,qBAAqB,EACrB,iCAAiC,EACjC,2BAA2B,EAE3B,MAAM,sBAAsB,CAAA;AAE7B,OAAO,KAAK,EACX,uBAAuB,EACvB,2BAA2B,EAC3B,MAAM,qBAAqB,CAAA;AAE5B,OAAO,KAAK,EAAE,oCAAoC,EAAE,MAAM,oBAAoB,CAAA;AAE9E,MAAM,MAAM,sBAAsB,GAAG;IACpC,MAAM,EAAE,iBAAiB,CAAA;IACzB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,wBAAwB,EAAE,MAAM,CAAA;IAChC,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,YAAY,EAAE,2BAA2B,CAAA;IACzC,QAAQ,EAAE,uBAAuB,CAAA;IACjC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,qBAAqB,KAAK,IAAI,CAAA;IACpD,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,IAAI,CAAA;IACnD,KAAK,CAAC,EAAE,CAAC,SAAS,EAAE,2BAA2B,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAA;CAC1E,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG;IACnC,IAAI,EAAE,MAAM,IAAI,CAAA;IAChB,IAAI,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,IAAI,CAAA;IAC7C,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAA;IACtC,eAAe,EAAE,CAAC,YAAY,EAAE,kBAAkB,KAAK,IAAI,CAAA;IAC3D,SAAS,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,CAAA;IACzC,OAAO,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,IAAI,CAAA;IACxC,cAAc,EAAE,CAAC,WAAW,EAAE,iCAAiC,KAAK,IAAI,CAAA;IACxE,cAAc,EAAE,CAAC,WAAW,EAAE,UAAU,KAAK,IAAI,CAAA;IACjD,YAAY,EAAE,CAAC,IAAI,EAAE;QACpB,YAAY,EAAE,kBAAkB,CAAA;QAChC,QAAQ,EAAE,oCAAoC,CAAA;KAC9C,KAAK,IAAI,CAAA;CACV,CAAA;AAQD,wBAAgB,qBAAqB,CACpC,OAAO,EAAE,sBAAsB,GAC7B,qBAAqB,CAohBvB"}
@@ -1,4 +1,5 @@
1
1
  import * as v from "valibot";
2
+ import { DEFAULT_CONTRAST_MODE, } from "../bridge/contrast.js";
2
3
  import { sandboxToHostMessageSchema } from "../bridge/messages/sandboxToHost.js";
3
4
  import { CUSTOM_BLOCK_BRIDGE_PROTOCOL_VERSION } from "../bridge/SandboxBridge.js";
4
5
  import { unreachable } from "../utils.js";
@@ -15,6 +16,7 @@ export function createCustomBlockHost(options) {
15
16
  const { iframe, initialState, handlers, onConnect, onInitResult, onLog, targetOrigin = "*", minBridgeProtocolVersion: configuredMinBridgeProtocolVersion, noConnectTimeoutMs = DEFAULT_NO_CONNECT_TIMEOUT_MS, noInitResultTimeoutMs = DEFAULT_NO_INIT_RESULT_TIMEOUT_MS, } = options;
16
17
  const minBridgeProtocolVersion = Math.max(configuredMinBridgeProtocolVersion ?? CUSTOM_BLOCK_BRIDGE_PROTOCOL_VERSION, CUSTOM_BLOCK_BRIDGE_PROTOCOL_VERSION);
17
18
  let theme = initialState.theme;
19
+ let contrastMode = initialState.contrastMode ?? DEFAULT_CONTRAST_MODE;
18
20
  let parent = initialState.parent;
19
21
  let page = initialState.page;
20
22
  let dataSources = initialState.dataSources;
@@ -26,6 +28,7 @@ export function createCustomBlockHost(options) {
26
28
  let activeInitializationId;
27
29
  let connectedSandbox;
28
30
  let pendingThemeChange = false;
31
+ let pendingContrastModeChange = false;
29
32
  let pendingParentChange = false;
30
33
  let pendingPageChange = false;
31
34
  let pendingDataSourcesChange;
@@ -92,6 +95,7 @@ export function createCustomBlockHost(options) {
92
95
  initializationId: connect.initializationId,
93
96
  status: "success",
94
97
  theme,
98
+ contrastMode,
95
99
  blockId: initialState.blockId,
96
100
  parent,
97
101
  page,
@@ -249,6 +253,10 @@ export function createCustomBlockHost(options) {
249
253
  pendingThemeChange = false;
250
254
  post({ type: "themeChanged", theme });
251
255
  }
256
+ if (pendingContrastModeChange) {
257
+ pendingContrastModeChange = false;
258
+ post({ type: "contrastModeChanged", contrastMode });
259
+ }
252
260
  if (pendingParentChange) {
253
261
  pendingParentChange = false;
254
262
  post({ type: "parentChanged", parent });
@@ -379,6 +387,20 @@ export function createCustomBlockHost(options) {
379
387
  const message = { type: "themeChanged", theme };
380
388
  post(message);
381
389
  },
390
+ setContrastMode(nextContrastMode) {
391
+ contrastMode = nextContrastMode;
392
+ if (initStatus !== "success") {
393
+ if (initStatus === "waitingForInitResult") {
394
+ pendingContrastModeChange = true;
395
+ }
396
+ return;
397
+ }
398
+ const message = {
399
+ type: "contrastModeChanged",
400
+ contrastMode,
401
+ };
402
+ post(message);
403
+ },
382
404
  setParent(nextParent) {
383
405
  parent = nextParent;
384
406
  if (initStatus !== "success") {
@@ -1,3 +1,4 @@
1
+ import type { NotionContrastMode } from "../../bridge/contrast.js";
1
2
  import type { NotionDataSourceBindings } from "../../bridge/dataSources/dataSource.js";
2
3
  import type { NotionBlockId } from "../../bridge/ids.js";
3
4
  import type { CustomBlockManifest } from "../../bridge/manifest.js";
@@ -16,6 +17,7 @@ export type CustomBlockHostDataSourcesPayload = {
16
17
  export type CustomBlockHostInitialDataSources = CustomBlockHostDataSourcesPayload | ((connect: ConnectSuccessMessage) => CustomBlockHostDataSourcesPayload);
17
18
  export type CustomBlockHostInitialState = {
18
19
  theme: NotionTheme;
20
+ contrastMode?: NotionContrastMode;
19
21
  blockId: NotionBlockId;
20
22
  parent: NotionParent;
21
23
  page: CustomBlockPage;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../home/runner/work/custom-blocks/custom-blocks/sdk/src/host/lifecycle/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAA;AACtF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAA;AACtE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AAE5D,MAAM,MAAM,qBAAqB,GAAG,OAAO,CAC1C,cAAc,EACd;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,CACrB,CAAA;AAED,MAAM,MAAM,UAAU,GACnB,mBAAmB,GACnB,sBAAsB,GACtB,SAAS,GACT,OAAO,CAAA;AAEV,MAAM,MAAM,iCAAiC,GAAG;IAC/C,QAAQ,EAAE,wBAAwB,CAAA;CAClC,CAAA;AAED,MAAM,MAAM,iCAAiC,GAC1C,iCAAiC,GACjC,CAAC,CAAC,OAAO,EAAE,qBAAqB,KAAK,iCAAiC,CAAC,CAAA;AAE1E,MAAM,MAAM,2BAA2B,GAAG;IACzC,KAAK,EAAE,WAAW,CAAA;IAClB,OAAO,EAAE,aAAa,CAAA;IACtB,MAAM,EAAE,YAAY,CAAA;IACpB,IAAI,EAAE,eAAe,CAAA;IACrB,QAAQ,EAAE,mBAAmB,CAAA;IAC7B,WAAW,EAAE,iCAAiC,CAAA;IAC9C,WAAW,EAAE,UAAU,CAAA;CACvB,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../home/runner/work/custom-blocks/custom-blocks/sdk/src/host/lifecycle/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAClE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAA;AACtF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAA;AACtE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AAE5D,MAAM,MAAM,qBAAqB,GAAG,OAAO,CAC1C,cAAc,EACd;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,CACrB,CAAA;AAED,MAAM,MAAM,UAAU,GACnB,mBAAmB,GACnB,sBAAsB,GACtB,SAAS,GACT,OAAO,CAAA;AAEV,MAAM,MAAM,iCAAiC,GAAG;IAC/C,QAAQ,EAAE,wBAAwB,CAAA;CAClC,CAAA;AAED,MAAM,MAAM,iCAAiC,GAC1C,iCAAiC,GACjC,CAAC,CAAC,OAAO,EAAE,qBAAqB,KAAK,iCAAiC,CAAC,CAAA;AAE1E,MAAM,MAAM,2BAA2B,GAAG;IACzC,KAAK,EAAE,WAAW,CAAA;IAElB,YAAY,CAAC,EAAE,kBAAkB,CAAA;IACjC,OAAO,EAAE,aAAa,CAAA;IACtB,MAAM,EAAE,YAAY,CAAA;IACpB,IAAI,EAAE,eAAe,CAAA;IACrB,QAAQ,EAAE,mBAAmB,CAAA;IAC7B,WAAW,EAAE,iCAAiC,CAAA;IAC9C,WAAW,EAAE,UAAU,CAAA;CACvB,CAAA"}
package/dist/host.d.ts CHANGED
@@ -9,6 +9,8 @@
9
9
  * Nothing here is intended for use inside a sandboxed custom block; that
10
10
  * surface lives in the default `@notionhq/custom-blocks` entrypoint.
11
11
  */
12
+ export type { NotionContrastMode } from "./bridge/contrast.js";
13
+ export { notionContrastModeSchema } from "./bridge/contrast.js";
12
14
  export type { NotionDataSourceBinding, NotionDataSourceBindings, } from "./bridge/dataSources/dataSource.js";
13
15
  export { notionDataSourceBindingSchema, notionDataSourceBindingsSchema, } from "./bridge/dataSources/dataSource.js";
14
16
  export type { NotionDataSourcePageBridge } from "./bridge/dataSources/dataSourcePage.js";
@@ -23,6 +25,8 @@ export { notionBlockIdSchema, notionDataSourceIdSchema, notionPageIdSchema, } fr
23
25
  export { readIncomingType } from "./bridge/incomingType.js";
24
26
  export type { ConnectMessage } from "./bridge/messages/connect.js";
25
27
  export { connectMessageSchema } from "./bridge/messages/connect.js";
28
+ export type { ContrastModeChangedMessage } from "./bridge/messages/contrastModeChanged.js";
29
+ export { contrastModeChangedMessageSchema } from "./bridge/messages/contrastModeChanged.js";
26
30
  export type { CreatePageMessage } from "./bridge/messages/createPage.js";
27
31
  export { createPageMessageSchema } from "./bridge/messages/createPage.js";
28
32
  export type { CreatePageResultMessage, CustomBlockCreatePageErrorCode, CustomBlockCreatePageErrorInfo, } from "./bridge/messages/createPageResult.js";
@@ -1 +1 @@
1
- {"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../../../home/runner/work/custom-blocks/custom-blocks/sdk/src/host.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../../../home/runner/work/custom-blocks/custom-blocks/sdk/src/host.ts"],"names":[],"mappings":"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"}
package/dist/host.js CHANGED
@@ -9,6 +9,7 @@
9
9
  * Nothing here is intended for use inside a sandboxed custom block; that
10
10
  * surface lives in the default `@notionhq/custom-blocks` entrypoint.
11
11
  */
12
+ export { notionContrastModeSchema } from "./bridge/contrast.js";
12
13
  export { notionDataSourceBindingSchema, notionDataSourceBindingsSchema, } from "./bridge/dataSources/dataSource.js";
13
14
  export { notionDataSourcePageBridgeSchema } from "./bridge/dataSources/dataSourcePage.js";
14
15
  export { customBlockDataSourceResolutionErrorCodeSchema } from "./bridge/dataSources/errors.js";
@@ -17,6 +18,7 @@ export { customBlockErrorInfoSchema } from "./bridge/errors.js";
17
18
  export { notionBlockIdSchema, notionDataSourceIdSchema, notionPageIdSchema, } from "./bridge/ids.js";
18
19
  export { readIncomingType } from "./bridge/incomingType.js";
19
20
  export { connectMessageSchema } from "./bridge/messages/connect.js";
21
+ export { contrastModeChangedMessageSchema } from "./bridge/messages/contrastModeChanged.js";
20
22
  export { createPageMessageSchema } from "./bridge/messages/createPage.js";
21
23
  export { createPageResultMessageSchema, customBlockCreatePageErrorCodeSchema, customBlockCreatePageErrorInfoSchema, } from "./bridge/messages/createPageResult.js";
22
24
  export { currentUserChangedMessageSchema } from "./bridge/messages/currentUserChanged.js";
package/dist/index.d.ts CHANGED
@@ -6,6 +6,7 @@
6
6
  * consumers should import from `@notionhq/custom-blocks`; React consumers
7
7
  * should import hooks and components from `@notionhq/custom-blocks/react`.
8
8
  */
9
+ export type { NotionContrastMode } from "./bridge/contrast.js";
9
10
  export type { NotionCollectionSchema, NotionDataSource, } from "./bridge/dataSources/dataSource.js";
10
11
  export type { NotionDataSourcePage, NotionDataSourcePageUpdateInput, NotionDataSourcePageUpdateResult, } from "./bridge/dataSources/dataSourcePage.js";
11
12
  export type { NotionDataSourceValue } from "./bridge/dataSources/dataSourceValue.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../home/runner/work/custom-blocks/custom-blocks/sdk/src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,YAAY,EACX,sBAAsB,EACtB,gBAAgB,GAChB,MAAM,oCAAoC,CAAA;AAC3C,YAAY,EACX,oBAAoB,EACpB,+BAA+B,EAC/B,gCAAgC,GAChC,MAAM,wCAAwC,CAAA;AAC/C,YAAY,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAA;AACpF,YAAY,EACX,UAAU,EACV,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,mBAAmB,EACnB,sBAAsB,EACtB,eAAe,EACf,gBAAgB,EAChB,kBAAkB,GAClB,MAAM,mCAAmC,CAAA;AAC1C,YAAY,EACX,wCAAwC,EACxC,wCAAwC,GACxC,MAAM,gCAAgC,CAAA;AACvC,YAAY,EACX,uBAAuB,EACvB,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,iBAAiB,GACjB,MAAM,wCAAwC,CAAA;AAC/C,OAAO,EACN,2BAA2B,EAC3B,qBAAqB,GACrB,MAAM,wCAAwC,CAAA;AAC/C,YAAY,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAA;AAChF,YAAY,EACX,4BAA4B,EAC5B,4BAA4B,GAC5B,MAAM,yCAAyC,CAAA;AAChD,YAAY,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AAC9D,YAAY,EACX,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,aAAa,GACb,MAAM,iBAAiB,CAAA;AACxB,YAAY,EACX,mBAAmB,EACnB,kBAAkB,EAClB,YAAY,EACZ,gBAAgB,GAChB,MAAM,sBAAsB,CAAA;AAC7B,YAAY,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAA;AAC/E,YAAY,EACX,8BAA8B,EAC9B,8BAA8B,GAC9B,MAAM,uCAAuC,CAAA;AAC9C,YAAY,EACX,2BAA2B,EAC3B,2BAA2B,GAC3B,MAAM,8BAA8B,CAAA;AACrC,YAAY,EACX,2BAA2B,EAC3B,2BAA2B,GAC3B,MAAM,8BAA8B,CAAA;AACrC,YAAY,EACX,wBAAwB,EACxB,wBAAwB,EACxB,kCAAkC,EAClC,kCAAkC,GAClC,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,8BAA8B,EAAE,MAAM,2BAA2B,CAAA;AAC1E,YAAY,EACX,6BAA6B,EAC7B,6BAA6B,GAC7B,MAAM,gCAAgC,CAAA;AACvC,YAAY,EACX,mCAAmC,EACnC,mCAAmC,GACnC,MAAM,4CAA4C,CAAA;AACnD,YAAY,EACX,8BAA8B,EAC9B,8BAA8B,GAC9B,MAAM,uCAAuC,CAAA;AAC9C,YAAY,EACX,UAAU,EACV,eAAe,EACf,cAAc,EACd,YAAY,EACZ,0BAA0B,EAC1B,4BAA4B,EAC5B,uBAAuB,EACvB,0BAA0B,GAC1B,MAAM,wBAAwB,CAAA;AAC/B,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAA;AACxD,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACpD,OAAO,EAAE,KAAK,gBAAgB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACrE,OAAO,EACN,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,EAC3B,eAAe,EACf,gBAAgB,GAChB,MAAM,WAAW,CAAA;AAClB,cAAc,YAAY,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../home/runner/work/custom-blocks/custom-blocks/sdk/src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,YAAY,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAC9D,YAAY,EACX,sBAAsB,EACtB,gBAAgB,GAChB,MAAM,oCAAoC,CAAA;AAC3C,YAAY,EACX,oBAAoB,EACpB,+BAA+B,EAC/B,gCAAgC,GAChC,MAAM,wCAAwC,CAAA;AAC/C,YAAY,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAA;AACpF,YAAY,EACX,UAAU,EACV,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,mBAAmB,EACnB,sBAAsB,EACtB,eAAe,EACf,gBAAgB,EAChB,kBAAkB,GAClB,MAAM,mCAAmC,CAAA;AAC1C,YAAY,EACX,wCAAwC,EACxC,wCAAwC,GACxC,MAAM,gCAAgC,CAAA;AACvC,YAAY,EACX,uBAAuB,EACvB,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,iBAAiB,GACjB,MAAM,wCAAwC,CAAA;AAC/C,OAAO,EACN,2BAA2B,EAC3B,qBAAqB,GACrB,MAAM,wCAAwC,CAAA;AAC/C,YAAY,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAA;AAChF,YAAY,EACX,4BAA4B,EAC5B,4BAA4B,GAC5B,MAAM,yCAAyC,CAAA;AAChD,YAAY,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AAC9D,YAAY,EACX,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,aAAa,GACb,MAAM,iBAAiB,CAAA;AACxB,YAAY,EACX,mBAAmB,EACnB,kBAAkB,EAClB,YAAY,EACZ,gBAAgB,GAChB,MAAM,sBAAsB,CAAA;AAC7B,YAAY,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAA;AAC/E,YAAY,EACX,8BAA8B,EAC9B,8BAA8B,GAC9B,MAAM,uCAAuC,CAAA;AAC9C,YAAY,EACX,2BAA2B,EAC3B,2BAA2B,GAC3B,MAAM,8BAA8B,CAAA;AACrC,YAAY,EACX,2BAA2B,EAC3B,2BAA2B,GAC3B,MAAM,8BAA8B,CAAA;AACrC,YAAY,EACX,wBAAwB,EACxB,wBAAwB,EACxB,kCAAkC,EAClC,kCAAkC,GAClC,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,8BAA8B,EAAE,MAAM,2BAA2B,CAAA;AAC1E,YAAY,EACX,6BAA6B,EAC7B,6BAA6B,GAC7B,MAAM,gCAAgC,CAAA;AACvC,YAAY,EACX,mCAAmC,EACnC,mCAAmC,GACnC,MAAM,4CAA4C,CAAA;AACnD,YAAY,EACX,8BAA8B,EAC9B,8BAA8B,GAC9B,MAAM,uCAAuC,CAAA;AAC9C,YAAY,EACX,UAAU,EACV,eAAe,EACf,cAAc,EACd,YAAY,EACZ,0BAA0B,EAC1B,4BAA4B,EAC5B,uBAAuB,EACvB,0BAA0B,GAC1B,MAAM,wBAAwB,CAAA;AAC/B,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAA;AACxD,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACpD,OAAO,EAAE,KAAK,gBAAgB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACrE,OAAO,EACN,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,EAC3B,eAAe,EACf,gBAAgB,GAChB,MAAM,WAAW,CAAA;AAClB,cAAc,YAAY,CAAA"}
package/dist/init.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import type { NotionContrastMode } from "./bridge/contrast.js";
1
2
  import type { NotionDataSource } from "./bridge/dataSources/dataSource.js";
2
3
  import type { NotionBlockId } from "./bridge/ids.js";
3
4
  import { CustomBlockInitializationError } from "./bridge/messages/init.js";
@@ -10,6 +11,7 @@ import type { NotionUser } from "./bridge/users/user.js";
10
11
  */
11
12
  export type CustomBlockInitPayload = {
12
13
  theme: NotionTheme;
14
+ contrastMode: NotionContrastMode;
13
15
  blockId: NotionBlockId;
14
16
  parent: NotionParent;
15
17
  page: CustomBlockPage;
@@ -39,15 +41,14 @@ export type InitCustomBlockOptions = {
39
41
  timeoutMs?: number;
40
42
  };
41
43
  /**
42
- * Performs the SDK <-> host handshake: loads `custom_blocks.json`, posts
43
- * `connect`, then awaits the host's `init` message. Resolves after the sandbox
44
- * applies the payload and returns `initResult.success`.
44
+ * Initializes the custom block by running the SDK <-> host handshake.
45
45
  *
46
- * Rejects with a `CustomBlockInitializationError` if initialization fails.
46
+ * Resolves with the block's initial context (theme, block location, current
47
+ * user, data sources) once the host has initialized the block. Rejects with a
48
+ * `CustomBlockInitializationError` if initialization fails.
47
49
  *
48
50
  * Idempotent: subsequent calls return the same promise as the first and ignore any new options.
49
- * Mount your React tree (or call any SDK hook / `customBlock.subscribe`) only after the
50
- * returned promise resolves.
51
+ * Mount your React tree (or call any SDK hook) only after the returned promise resolves.
51
52
  */
52
53
  export declare function initCustomBlock(opts?: InitCustomBlockOptions): Promise<CustomBlockInitPayload>;
53
54
  //# sourceMappingURL=init.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../home/runner/work/custom-blocks/custom-blocks/sdk/src/init.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAA;AAC1E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAEpD,OAAO,EAAE,8BAA8B,EAAE,MAAM,2BAA2B,CAAA;AAC1E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAGxD;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACpC,KAAK,EAAE,WAAW,CAAA;IAClB,OAAO,EAAE,aAAa,CAAA;IACtB,MAAM,EAAE,YAAY,CAAA;IACpB,IAAI,EAAE,eAAe,CAAA;IACrB,WAAW,EAAE,UAAU,CAAA;IACvB,WAAW,EAAE,gBAAgB,EAAE,CAAA;CAC/B,CAAA;AAED;;;;;GAKG;AACH,qBAAa,gBAAiB,SAAQ,8BAA8B;gBACvD,OAAO,GAAE,MAA8B;IAS3C,IAAI,EAAE,eAAe,CAAA;CAC7B;AAED;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACpC;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AASD;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAC9B,IAAI,GAAE,sBAA2B,GAC/B,OAAO,CAAC,sBAAsB,CAAC,CAKjC"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../home/runner/work/custom-blocks/custom-blocks/sdk/src/init.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAA;AAC1E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAEpD,OAAO,EAAE,8BAA8B,EAAE,MAAM,2BAA2B,CAAA;AAC1E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAGxD;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACpC,KAAK,EAAE,WAAW,CAAA;IAClB,YAAY,EAAE,kBAAkB,CAAA;IAChC,OAAO,EAAE,aAAa,CAAA;IACtB,MAAM,EAAE,YAAY,CAAA;IACpB,IAAI,EAAE,eAAe,CAAA;IACrB,WAAW,EAAE,UAAU,CAAA;IACvB,WAAW,EAAE,gBAAgB,EAAE,CAAA;CAC/B,CAAA;AAED;;;;;GAKG;AACH,qBAAa,gBAAiB,SAAQ,8BAA8B;gBACvD,OAAO,GAAE,MAA8B;IAS3C,IAAI,EAAE,eAAe,CAAA;CAC7B;AAED;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACpC;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AASD;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAC9B,IAAI,GAAE,sBAA2B,GAC/B,OAAO,CAAC,sBAAsB,CAAC,CAKjC"}
package/dist/init.js CHANGED
@@ -1,4 +1,4 @@
1
- import { loadManifest } from "./bridge/loadManifest.js";
1
+ import { attemptToLoadSelfHostedManifest } from "./bridge/loadManifest.js";
2
2
  import { CustomBlockInitializationError } from "./bridge/messages/init.js";
3
3
  import { customBlockHost } from "./bridge/sandboxClient.js";
4
4
  import { unreachable } from "./utils.js";
@@ -22,23 +22,32 @@ const DEFAULT_INIT_TIMEOUT_MS = 15000;
22
22
  const NOT_IN_IFRAME_MESSAGE = "<NotionCustomBlock> only works inside an iframe — use the dev shell or deploy to Notion.";
23
23
  let initPromise;
24
24
  /**
25
- * Performs the SDK <-> host handshake: loads `custom_blocks.json`, posts
26
- * `connect`, then awaits the host's `init` message. Resolves after the sandbox
27
- * applies the payload and returns `initResult.success`.
25
+ * Initializes the custom block by running the SDK <-> host handshake.
28
26
  *
29
- * Rejects with a `CustomBlockInitializationError` if initialization fails.
27
+ * Resolves with the block's initial context (theme, block location, current
28
+ * user, data sources) once the host has initialized the block. Rejects with a
29
+ * `CustomBlockInitializationError` if initialization fails.
30
30
  *
31
31
  * Idempotent: subsequent calls return the same promise as the first and ignore any new options.
32
- * Mount your React tree (or call any SDK hook / `customBlock.subscribe`) only after the
33
- * returned promise resolves.
32
+ * Mount your React tree (or call any SDK hook) only after the returned promise resolves.
34
33
  */
35
34
  export function initCustomBlock(opts = {}) {
36
35
  if (initPromise === undefined) {
37
- initPromise = initializeCustomBlock(opts);
36
+ initPromise = performHandshake(opts);
38
37
  }
39
38
  return initPromise;
40
39
  }
41
- async function initializeCustomBlock(opts) {
40
+ /**
41
+ * Performs the host <-> sandbox SDK handshake:
42
+ * 1. Attempts to load an optional self-hosted `custom_blocks.json`
43
+ * 2. Sends `connect` with the manifest
44
+ * 3. Awaits the host's `init` message
45
+ * 4. Applies the `init` payload and acknowledges with `initResult` (fire-and-forget)
46
+ *
47
+ * Resolves with the `init` payload after the process above. Rejects with a
48
+ * `CustomBlockInitializationError` if any step fails.
49
+ */
50
+ async function performHandshake(opts) {
42
51
  try {
43
52
  // Fail fast with a typed error when rendered as a standalone tab and not in a parent frame.
44
53
  // Otherwise, it would eventually hit the timeout, since `postMessage` to `window.parent`
@@ -47,7 +56,7 @@ async function initializeCustomBlock(opts) {
47
56
  throw new NotInIframeError();
48
57
  }
49
58
  // Load the manifest and send it to the host.
50
- const manifestResult = await loadManifest();
59
+ const manifestResult = await attemptToLoadSelfHostedManifest();
51
60
  customBlockHost.sendConnect(manifestResult);
52
61
  const timeoutMs = opts.timeoutMs ?? DEFAULT_INIT_TIMEOUT_MS;
53
62
  await awaitHostInitWithTimeout(timeoutMs);
@@ -56,6 +65,7 @@ async function initializeCustomBlock(opts) {
56
65
  case "initialized":
57
66
  return {
58
67
  theme: hostState.theme,
68
+ contrastMode: hostState.contrastMode,
59
69
  blockId: hostState.blockId,
60
70
  parent: hostState.parent,
61
71
  page: hostState.page,
@@ -0,0 +1,10 @@
1
+ import type { ReactNode } from "react";
2
+ export type NotionTokenScopeProps = {
3
+ children: ReactNode;
4
+ };
5
+ /**
6
+ * Makes Notion design tokens available to descendants and keeps their
7
+ * host-controlled appearance in sync.
8
+ */
9
+ export declare function NotionTokenScope({ children }: NotionTokenScopeProps): import("react/jsx-runtime").JSX.Element;
10
+ //# sourceMappingURL=NotionTokenScope.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NotionTokenScope.d.ts","sourceRoot":"","sources":["../../../../home/runner/work/custom-blocks/custom-blocks/sdk/src/react/NotionTokenScope.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAGtC,MAAM,MAAM,qBAAqB,GAAG;IACnC,QAAQ,EAAE,SAAS,CAAA;CACnB,CAAA;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,QAAQ,EAAE,EAAE,qBAAqB,2CAanE"}
@@ -0,0 +1,11 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useContrastMode, useTheme } from "./useRuntimeState.js";
3
+ /**
4
+ * Makes Notion design tokens available to descendants and keeps their
5
+ * host-controlled appearance in sync.
6
+ */
7
+ export function NotionTokenScope({ children }) {
8
+ const theme = useTheme();
9
+ const contrastMode = useContrastMode();
10
+ return (_jsx("div", { className: "nds", "data-display-mode": theme, "data-contrast-mode": contrastMode, children: children }));
11
+ }
@@ -7,8 +7,9 @@
7
7
  * here, so the two public surfaces stay disjoint.
8
8
  */
9
9
  export { NotionCustomBlock, type NotionCustomBlockProps, } from "./NotionCustomBlock.js";
10
+ export { NotionTokenScope, type NotionTokenScopeProps, } from "./NotionTokenScope.js";
10
11
  export { useCustomBlockAutoResize } from "./useCustomBlockAutoResize.js";
11
12
  export { type UseCustomBlockInitResult, useCustomBlockInit, } from "./useCustomBlockInit.js";
12
13
  export { useDataSource } from "./useDataSource.js";
13
- export { useBlockId, useCurrentUser, useManifest, usePage, useParent, useTheme, } from "./useRuntimeState.js";
14
+ export { useBlockId, useContrastMode, useCurrentUser, useManifest, usePage, useParent, useTheme, } from "./useRuntimeState.js";
14
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../home/runner/work/custom-blocks/custom-blocks/sdk/src/react/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACN,iBAAiB,EACjB,KAAK,sBAAsB,GAC3B,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAA;AACxE,OAAO,EACN,KAAK,wBAAwB,EAC7B,kBAAkB,GAClB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EACN,UAAU,EACV,cAAc,EACd,WAAW,EACX,OAAO,EACP,SAAS,EACT,QAAQ,GACR,MAAM,sBAAsB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../home/runner/work/custom-blocks/custom-blocks/sdk/src/react/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACN,iBAAiB,EACjB,KAAK,sBAAsB,GAC3B,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EACN,gBAAgB,EAChB,KAAK,qBAAqB,GAC1B,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAA;AACxE,OAAO,EACN,KAAK,wBAAwB,EAC7B,kBAAkB,GAClB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EACN,UAAU,EACV,eAAe,EACf,cAAc,EACd,WAAW,EACX,OAAO,EACP,SAAS,EACT,QAAQ,GACR,MAAM,sBAAsB,CAAA"}
@@ -7,7 +7,8 @@
7
7
  * here, so the two public surfaces stay disjoint.
8
8
  */
9
9
  export { NotionCustomBlock, } from "./NotionCustomBlock.js";
10
+ export { NotionTokenScope, } from "./NotionTokenScope.js";
10
11
  export { useCustomBlockAutoResize } from "./useCustomBlockAutoResize.js";
11
12
  export { useCustomBlockInit, } from "./useCustomBlockInit.js";
12
13
  export { useDataSource } from "./useDataSource.js";
13
- export { useBlockId, useCurrentUser, useManifest, usePage, useParent, useTheme, } from "./useRuntimeState.js";
14
+ export { useBlockId, useContrastMode, useCurrentUser, useManifest, usePage, useParent, useTheme, } from "./useRuntimeState.js";
@@ -1 +1 @@
1
- {"version":3,"file":"standalonePreview.d.ts","sourceRoot":"","sources":["../../../../home/runner/work/custom-blocks/custom-blocks/sdk/src/react/standalonePreview.ts"],"names":[],"mappings":"AAOA,wBAAgB,0BAA0B,SAsBzC"}
1
+ {"version":3,"file":"standalonePreview.d.ts","sourceRoot":"","sources":["../../../../home/runner/work/custom-blocks/custom-blocks/sdk/src/react/standalonePreview.ts"],"names":[],"mappings":"AAQA,wBAAgB,0BAA0B,SAuBzC"}
@@ -1,4 +1,5 @@
1
1
  import * as v from "valibot";
2
+ import { DEFAULT_CONTRAST_MODE } from "../bridge/contrast.js";
2
3
  import { notionBlockIdSchema, notionPageIdSchema } from "../bridge/ids.js";
3
4
  import { customBlockHost } from "../bridge/sandboxClient.js";
4
5
  const previewBlockId = v.parse(notionBlockIdSchema, "");
@@ -9,6 +10,7 @@ export function seedStandalonePreviewState() {
9
10
  initializationId: "standalone-preview",
10
11
  status: "success",
11
12
  theme: "light",
13
+ contrastMode: DEFAULT_CONTRAST_MODE,
12
14
  blockId: previewBlockId,
13
15
  parent: { type: "page_id", page_id: previewPageId },
14
16
  page: { id: previewPageId, parent: { type: "workspace", workspace: true } },
@@ -1,3 +1,4 @@
1
+ import type { NotionContrastMode } from "../bridge/contrast.js";
1
2
  import type { NotionBlockId } from "../bridge/ids.js";
2
3
  import type { CustomBlockManifest } from "../bridge/manifest.js";
3
4
  import type { CustomBlockPage } from "../bridge/pages/page.js";
@@ -42,6 +43,16 @@ export declare function usePage(): CustomBlockPage;
42
43
  * const theme = useTheme()
43
44
  */
44
45
  export declare function useTheme(): NotionTheme;
46
+ /**
47
+ * Returns the host's contrast preference. Re-renders on every protocol-v3
48
+ * `contrastModeChanged` message from the host.
49
+ *
50
+ * Throws if called before `initCustomBlock` has resolved.
51
+ *
52
+ * @example
53
+ * const contrastMode = useContrastMode()
54
+ */
55
+ export declare function useContrastMode(): NotionContrastMode;
45
56
  /**
46
57
  * Returns the viewing user's Notion profile. Re-renders whenever the host sends a
47
58
  * `currentUserChanged` message.
@@ -1 +1 @@
1
- {"version":3,"file":"useRuntimeState.d.ts","sourceRoot":"","sources":["../../../../home/runner/work/custom-blocks/custom-blocks/sdk/src/react/useRuntimeState.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AACrD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAChE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAGzD;;;;;;;GAOG;AACH,wBAAgB,UAAU,IAAI,aAAa,CAE1C;AAED;;;;;;;;GAQG;AACH,wBAAgB,SAAS,IAAI,YAAY,CAExC;AAED;;;;;;;;GAQG;AACH,wBAAgB,OAAO,IAAI,eAAe,CAEzC;AAED;;;;;;;GAOG;AACH,wBAAgB,QAAQ,IAAI,WAAW,CAEtC;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,IAAI,UAAU,CAE3C;AAED;;;;;;;;;GASG;AACH,wBAAgB,WAAW,IAAI,mBAAmB,CAEjD"}
1
+ {"version":3,"file":"useRuntimeState.d.ts","sourceRoot":"","sources":["../../../../home/runner/work/custom-blocks/custom-blocks/sdk/src/react/useRuntimeState.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AACrD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAChE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAGzD;;;;;;;GAOG;AACH,wBAAgB,UAAU,IAAI,aAAa,CAE1C;AAED;;;;;;;;GAQG;AACH,wBAAgB,SAAS,IAAI,YAAY,CAExC;AAED;;;;;;;;GAQG;AACH,wBAAgB,OAAO,IAAI,eAAe,CAEzC;AAED;;;;;;;GAOG;AACH,wBAAgB,QAAQ,IAAI,WAAW,CAEtC;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,IAAI,kBAAkB,CAKpD;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,IAAI,UAAU,CAE3C;AAED;;;;;;;;;GASG;AACH,wBAAgB,WAAW,IAAI,mBAAmB,CAEjD"}
@@ -46,6 +46,18 @@ export function usePage() {
46
46
  export function useTheme() {
47
47
  return useSyncExternalStore(customBlock.subscribe, customBlock.getTheme);
48
48
  }
49
+ /**
50
+ * Returns the host's contrast preference. Re-renders on every protocol-v3
51
+ * `contrastModeChanged` message from the host.
52
+ *
53
+ * Throws if called before `initCustomBlock` has resolved.
54
+ *
55
+ * @example
56
+ * const contrastMode = useContrastMode()
57
+ */
58
+ export function useContrastMode() {
59
+ return useSyncExternalStore(customBlock.subscribe, customBlock.getContrastMode);
60
+ }
49
61
  /**
50
62
  * Returns the viewing user's Notion profile. Re-renders whenever the host sends a
51
63
  * `currentUserChanged` message.