@notionhq/custom-blocks 0.1.0 → 0.1.2

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 (74) hide show
  1. package/HOST.md +13 -4
  2. package/README.md +31 -6
  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/dataSources/errors.d.ts +1 -1
  9. package/dist/bridge/dataSources/errors.d.ts.map +1 -1
  10. package/dist/bridge/dataSources/resolveProperty.d.ts +1 -1
  11. package/dist/bridge/dataSources/resolveProperty.d.ts.map +1 -1
  12. package/dist/bridge/hostState.d.ts +3 -0
  13. package/dist/bridge/hostState.d.ts.map +1 -1
  14. package/dist/bridge/messages/contrastModeChanged.d.ts +8 -0
  15. package/dist/bridge/messages/contrastModeChanged.d.ts.map +1 -0
  16. package/dist/bridge/messages/contrastModeChanged.js +7 -0
  17. package/dist/bridge/messages/hostToSandbox.d.ts +4 -0
  18. package/dist/bridge/messages/hostToSandbox.d.ts.map +1 -1
  19. package/dist/bridge/messages/hostToSandbox.js +2 -0
  20. package/dist/bridge/messages/init.d.ts +4 -1
  21. package/dist/bridge/messages/init.d.ts.map +1 -1
  22. package/dist/bridge/messages/init.js +6 -1
  23. package/dist/customBlock.d.ts +4 -0
  24. package/dist/customBlock.d.ts.map +1 -1
  25. package/dist/customBlock.js +5 -0
  26. package/dist/host/createCustomBlockHost.d.ts +2 -0
  27. package/dist/host/createCustomBlockHost.d.ts.map +1 -1
  28. package/dist/host/createCustomBlockHost.js +22 -0
  29. package/dist/host/lifecycle/types.d.ts +2 -0
  30. package/dist/host/lifecycle/types.d.ts.map +1 -1
  31. package/dist/host.d.ts +4 -0
  32. package/dist/host.d.ts.map +1 -1
  33. package/dist/host.js +2 -0
  34. package/dist/index.d.ts +1 -0
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/init.d.ts +2 -0
  37. package/dist/init.d.ts.map +1 -1
  38. package/dist/init.js +1 -0
  39. package/dist/react/NotionTokenScope.d.ts +10 -0
  40. package/dist/react/NotionTokenScope.d.ts.map +1 -0
  41. package/dist/react/NotionTokenScope.js +11 -0
  42. package/dist/react/index.d.ts +2 -1
  43. package/dist/react/index.d.ts.map +1 -1
  44. package/dist/react/index.js +2 -1
  45. package/dist/react/standalonePreview.d.ts.map +1 -1
  46. package/dist/react/standalonePreview.js +2 -0
  47. package/dist/react/useRuntimeState.d.ts +11 -0
  48. package/dist/react/useRuntimeState.d.ts.map +1 -1
  49. package/dist/react/useRuntimeState.js +12 -0
  50. package/dist/styles/nds.css +1 -0
  51. package/dist/version.js +1 -1
  52. package/docs/block-location.md +17 -3
  53. package/docs/lifecycle.md +3 -2
  54. package/package.json +2 -1
  55. package/src/bridge/SandboxBridge.ts +12 -0
  56. package/src/bridge/contrast.ts +6 -0
  57. package/src/bridge/dataSources/errors.ts +1 -1
  58. package/src/bridge/dataSources/resolveProperty.ts +1 -1
  59. package/src/bridge/hostState.ts +3 -0
  60. package/src/bridge/messages/contrastModeChanged.ts +12 -0
  61. package/src/bridge/messages/hostToSandbox.ts +2 -0
  62. package/src/bridge/messages/init.ts +6 -1
  63. package/src/customBlock.ts +13 -1
  64. package/src/host/createCustomBlockHost.ts +27 -0
  65. package/src/host/lifecycle/types.ts +3 -0
  66. package/src/host.ts +4 -0
  67. package/src/index.ts +1 -0
  68. package/src/init.ts +3 -0
  69. package/src/react/NotionTokenScope.tsx +25 -0
  70. package/src/react/index.ts +5 -0
  71. package/src/react/standalonePreview.ts +2 -0
  72. package/src/react/useRuntimeState.ts +17 -0
  73. package/src/styles/nds.css +1 -0
  74. package/src/styles/nds.css.metadata.json +6 -0
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;
@@ -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;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAC9B,IAAI,GAAE,sBAA2B,GAC/B,OAAO,CAAC,sBAAsB,CAAC,CAKjC"}
package/dist/init.js CHANGED
@@ -56,6 +56,7 @@ async function initializeCustomBlock(opts) {
56
56
  case "initialized":
57
57
  return {
58
58
  theme: hostState.theme,
59
+ contrastMode: hostState.contrastMode,
59
60
  blockId: hostState.blockId,
60
61
  parent: hostState.parent,
61
62
  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.