@q9labsai/chalk-react 4.1.16 → 4.1.17

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.
package/README.md CHANGED
@@ -23,7 +23,13 @@ export function SpacePage() {
23
23
  return (
24
24
  <Chalk
25
25
  space="design-review"
26
- getAccess={({ space, reason }) => fetch(`/api/chalk/spaces/${space}/access?reason=${reason}`)}
26
+ getAccess={(request) =>
27
+ fetch("/api/chalk/access", {
28
+ method: "POST",
29
+ headers: { "content-type": "application/json" },
30
+ body: JSON.stringify(request),
31
+ })
32
+ }
27
33
  defaults={{ microphone: true, camera: true }}
28
34
  features={{ chat: true, screenShare: true, reactions: true }}
29
35
  spaceName="Design review"
@@ -33,6 +39,11 @@ export function SpacePage() {
33
39
  }
34
40
  ```
35
41
 
42
+ Forward the `getAccess` request unchanged to your authenticated backend. Pass it
43
+ as the final `participants.issueAccess` argument with the server-only state from
44
+ `getAccessRefreshState`; Chalk selects replacement only when recovery needs it.
45
+ See the [web quickstart](../../../docs/sdk-web-quickstart.md) for the endpoint call.
46
+
36
47
  Pass an existing client when its lifecycle belongs to the embedding
37
48
  application. Chalk will use it without disposing it.
38
49
 
@@ -1,9 +1,9 @@
1
1
  import {
2
- parseRecordingWhiteboardStateV1,
2
+ createRecordingWhiteboardCursor,
3
3
  recordingWhiteboardFileAssetId,
4
4
  recordingWhiteboardFileIds,
5
5
  recordingWhiteboardSceneAppState
6
- } from "./chunk-HZ43I4OS.js";
6
+ } from "./chunk-VHM3SYMY.js";
7
7
  import {
8
8
  ChalkBackdrop,
9
9
  ChalkBadge,
@@ -719,7 +719,7 @@ function SpaceSurface(props) {
719
719
  const [settingsInitialSection, setSettingsInitialSection] = useState4();
720
720
  const [infoOpen, setInfoOpen] = useState4(false);
721
721
  const [feedbackOpen, setFeedbackOpen] = useState4(false);
722
- const [commandError, setCommandError] = useState4(null);
722
+ const [commandError, setCommandError] = useState4(() => connection.lastError?.recoverable && connection.lastError.code.startsWith("media.") ? connection.lastError.message : null);
723
723
  const [settings, setSettings] = useState4(() => createSettings(self.displayName ?? "", props.layout ?? "focus", props.theme?.skin ?? "classic", props.theme?.palette ?? (props.resolvedColorScheme === "dark" ? "warm-charcoal" : "light"), props.theme?.texture ?? "none"));
724
724
  const resolvedSkin = props.theme?.skin ?? "classic";
725
725
  const resolvedPalette = props.theme?.palette ?? (props.resolvedColorScheme === "dark" ? "warm-charcoal" : "light");
@@ -1370,7 +1370,8 @@ import { fromWireElement } from "@q9labsai/chalk-whiteboard";
1370
1370
  import { useCallback as useCallback3, useEffect as useEffect5, useMemo as useMemo2, useState as useState5 } from "react";
1371
1371
  import { jsx as jsx6 } from "react/jsx-runtime";
1372
1372
  function RecordingWhiteboardView({ state: stateValue, files, expectedSceneId, expectedRevision, theme, excalidrawCssPath, onLoadError, onPresented, className }) {
1373
- const state = useMemo2(() => parseRecordingWhiteboardStateV1(stateValue), [stateValue]);
1373
+ const cursor = useMemo2(() => createRecordingWhiteboardCursor(stateValue), [stateValue]);
1374
+ const state = useMemo2(() => cursor.at(expectedRevision), [cursor, expectedRevision]);
1374
1375
  const elements = useMemo2(() => state.elements.map(fromWireElement), [state.elements]);
1375
1376
  const resolvedTheme = theme ?? "light";
1376
1377
  const [ready, setReady] = useState5(null);
@@ -18,6 +18,51 @@ function parseRecordingWhiteboardStateV1(value) {
18
18
  elements: Object.freeze([...value.elements])
19
19
  });
20
20
  }
21
+ function createRecordingWhiteboardCursor(value) {
22
+ if (typeof value !== "object" || value === null || !("schemaVersion" in value)) throw invalidState();
23
+ if (value.schemaVersion === "recording_whiteboard_state.v1") {
24
+ const state2 = parseRecordingWhiteboardStateV1(value);
25
+ return { at: () => state2 };
26
+ }
27
+ if (value.schemaVersion !== "recording_whiteboard_history.v1" || !hasExactKeys(value, ["schemaVersion", "initial", "updates"]) || !("initial" in value) || !("updates" in value) || !Array.isArray(value.updates)) throw invalidState();
28
+ const initial = parseRecordingWhiteboardStateV1(value.initial);
29
+ let previous = initial.revision;
30
+ const updates = value.updates.map((update) => {
31
+ if (typeof update !== "object" || update === null || !hasExactKeys(update, ["revision", "elements"]) || !("revision" in update) || !("elements" in update) || !isNonNegativeSafeInteger(update.revision) || update.revision <= previous || !Array.isArray(update.elements) || update.elements.length === 0 || !update.elements.every(isWhiteboardWireElement))
32
+ throw invalidState();
33
+ previous = update.revision;
34
+ return { revision: update.revision, elements: update.elements };
35
+ });
36
+ const elements = new Map(initial.elements.map((element) => [element.id, element]));
37
+ let nextUpdate = 0;
38
+ let lastRevision = initial.revision;
39
+ let state = initial;
40
+ return {
41
+ at(revision = initial.revision) {
42
+ if (!isNonNegativeSafeInteger(revision) || revision < initial.revision) throw new RangeError("recording whiteboard revision precedes its initial state");
43
+ if (revision < lastRevision) {
44
+ elements.clear();
45
+ for (const element of initial.elements) elements.set(element.id, element);
46
+ nextUpdate = 0;
47
+ state = initial;
48
+ }
49
+ lastRevision = revision;
50
+ let changed = false;
51
+ for (; nextUpdate < updates.length; nextUpdate++) {
52
+ const update = updates[nextUpdate];
53
+ if (update.revision > revision) break;
54
+ for (const element of update.elements) elements.set(element.id, element);
55
+ changed = true;
56
+ }
57
+ if (changed) {
58
+ const ordered = [...elements.values()].sort((a, b) => a.index < b.index ? -1 : a.index > b.index ? 1 : a.id < b.id ? -1 : a.id > b.id ? 1 : 0);
59
+ state = { ...initial, revision, elements: ordered };
60
+ }
61
+ if (state.revision !== revision) state = { ...state, revision };
62
+ return state;
63
+ }
64
+ };
65
+ }
21
66
  function recordingWhiteboardFileIds(state) {
22
67
  const ids = /* @__PURE__ */ new Set();
23
68
  for (const element of state.elements) {
@@ -130,6 +175,7 @@ function invalidState() {
130
175
 
131
176
  export {
132
177
  parseRecordingWhiteboardStateV1,
178
+ createRecordingWhiteboardCursor,
133
179
  recordingWhiteboardFileIds,
134
180
  recordingWhiteboardFileAssetId,
135
181
  recordingWhiteboardSceneAppState,
@@ -6,14 +6,14 @@ import {
6
6
  RecordingHistoryPanel,
7
7
  RecordingSpaceView,
8
8
  RecordingWhiteboardView
9
- } from "../chunk-RMOJ5DLX.js";
9
+ } from "../chunk-OLBFC6RS.js";
10
10
  import {
11
11
  loadRecordingWhiteboardFiles,
12
12
  parseRecordingWhiteboardStateV1,
13
13
  recordingWhiteboardBinaryFile,
14
14
  recordingWhiteboardFileAssetId,
15
15
  recordingWhiteboardFileIds
16
- } from "../chunk-HZ43I4OS.js";
16
+ } from "../chunk-VHM3SYMY.js";
17
17
  import {
18
18
  AdmissionPanel,
19
19
  COSMIC_CHALK_THEME,
@@ -1 +1 @@
1
- {"version":3,"file":"RecordingWhiteboardView.d.ts","sourceRoot":"","sources":["../../../src/components/whiteboard-view/RecordingWhiteboardView.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAmB,KAAK,WAAW,EAAgC,MAAM,4BAA4B,CAAC;AAK7G,OAAO,EAAiI,KAAK,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAE9M,OAAO,EAAE,4BAA4B,EAAE,+BAA+B,EAAE,6BAA6B,EAAE,8BAA8B,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AACxM,YAAY,EAAE,kCAAkC,EAAE,gCAAgC,EAAE,+BAA+B,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAEtL,MAAM,WAAW,4BAA4B;IAC3C,uEAAuE;IACvE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,qFAAqF;IACrF,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAClC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAC9C,4EAA4E;IAC5E,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,0BAA0B,KAAK,IAAI,CAAC;IACnE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAOD,wBAAgB,uBAAuB,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,EAAE,4BAA4B,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CA4CvN;yBA5Ce,uBAAuB"}
1
+ {"version":3,"file":"RecordingWhiteboardView.d.ts","sourceRoot":"","sources":["../../../src/components/whiteboard-view/RecordingWhiteboardView.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAmB,KAAK,WAAW,EAAgC,MAAM,4BAA4B,CAAC;AAK7G,OAAO,EAAiI,KAAK,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAE9M,OAAO,EAAE,4BAA4B,EAAE,+BAA+B,EAAE,6BAA6B,EAAE,8BAA8B,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AACxM,YAAY,EAAE,kCAAkC,EAAE,gCAAgC,EAAE,+BAA+B,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAEtL,MAAM,WAAW,4BAA4B;IAC3C,uEAAuE;IACvE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,qFAAqF;IACrF,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAClC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAC9C,4EAA4E;IAC5E,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,0BAA0B,KAAK,IAAI,CAAC;IACnE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAOD,wBAAgB,uBAAuB,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,EAAE,4BAA4B,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CA6CvN;yBA7Ce,uBAAuB"}
@@ -22,6 +22,11 @@ export interface RecordingWhiteboardFileReference {
22
22
  export type RecordingWhiteboardFileResolver = (reference: RecordingWhiteboardFileReference) => Promise<Omit<RecordingWhiteboardBinaryFileInput, "fileId">>;
23
23
  /** Validates the canonical asset before any value reaches Excalidraw. */
24
24
  export declare function parseRecordingWhiteboardStateV1(value: unknown): RecordingWhiteboardStateV1;
25
+ export interface RecordingWhiteboardCursor {
26
+ readonly at: (revision?: number) => RecordingWhiteboardStateV1;
27
+ }
28
+ /** One initial state and winning changes, replayed once in revision order. */
29
+ export declare function createRecordingWhiteboardCursor(value: unknown): RecordingWhiteboardCursor;
25
30
  export declare function recordingWhiteboardFileIds(state: RecordingWhiteboardStateV1): readonly string[];
26
31
  export declare function recordingWhiteboardFileAssetId(fileId: string): string;
27
32
  export declare function recordingWhiteboardSceneAppState(state: RecordingWhiteboardStateV1, defaultViewBackgroundColor: string): Pick<AppState, "viewBackgroundColor">;
@@ -1 +1 @@
1
- {"version":3,"file":"recording-whiteboard-state.d.ts","sourceRoot":"","sources":["../../../src/components/whiteboard-view/recording-whiteboard-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,WAAW,EAAuB,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AA0BpI,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,CAAC;CACzC;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,aAAa,EAAE,+BAA+B,CAAC;IACxD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,6BAA6B,CAAC;IACjD,QAAQ,CAAC,QAAQ,EAAE,SAAS,qBAAqB,EAAE,CAAC;CACrD;AAED,MAAM,WAAW,kCAAkC;IACjD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,MAAM,+BAA+B,GAAG,CAAC,SAAS,EAAE,gCAAgC,KAAK,OAAO,CAAC,IAAI,CAAC,kCAAkC,EAAE,QAAQ,CAAC,CAAC,CAAC;AAE3J,yEAAyE;AACzE,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,OAAO,GAAG,0BAA0B,CAa1F;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,0BAA0B,GAAG,SAAS,MAAM,EAAE,CAQ/F;AAED,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAGrE;AAED,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,qBAAqB,CAAC,CAE7J;AAED,oFAAoF;AACpF,wBAAgB,6BAA6B,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAe,EAAE,EAAE,kCAAkC,GAAG,cAAc,CAKhJ;AAED,wBAAsB,4BAA4B,CAAC,KAAK,EAAE,0BAA0B,EAAE,OAAO,EAAE,+BAA+B,GAAG,OAAO,CAAC,WAAW,CAAC,CAUpJ"}
1
+ {"version":3,"file":"recording-whiteboard-state.d.ts","sourceRoot":"","sources":["../../../src/components/whiteboard-view/recording-whiteboard-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,WAAW,EAAuB,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AA0BpI,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,CAAC;CACzC;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,aAAa,EAAE,+BAA+B,CAAC;IACxD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,6BAA6B,CAAC;IACjD,QAAQ,CAAC,QAAQ,EAAE,SAAS,qBAAqB,EAAE,CAAC;CACrD;AAED,MAAM,WAAW,kCAAkC;IACjD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,MAAM,+BAA+B,GAAG,CAAC,SAAS,EAAE,gCAAgC,KAAK,OAAO,CAAC,IAAI,CAAC,kCAAkC,EAAE,QAAQ,CAAC,CAAC,CAAC;AAE3J,yEAAyE;AACzE,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,OAAO,GAAG,0BAA0B,CAa1F;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,KAAK,0BAA0B,CAAC;CAChE;AAED,8EAA8E;AAC9E,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,OAAO,GAAG,yBAAyB,CAuDzF;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,0BAA0B,GAAG,SAAS,MAAM,EAAE,CAQ/F;AAED,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAGrE;AAED,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,qBAAqB,CAAC,CAE7J;AAED,oFAAoF;AACpF,wBAAgB,6BAA6B,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAe,EAAE,EAAE,kCAAkC,GAAG,cAAc,CAKhJ;AAED,wBAAsB,4BAA4B,CAAC,KAAK,EAAE,0BAA0B,EAAE,OAAO,EAAE,+BAA+B,GAAG,OAAO,CAAC,WAAW,CAAC,CAUpJ"}
@@ -3,6 +3,7 @@ export type { StageBox, StageFrame, StageGeometry, StageRole } from "./component
3
3
  export { choosePrimary, gridOrder, screenShareItemId, WHITEBOARD_ITEM_ID } from "./components/stage/stage-items";
4
4
  export type { StageItem, StageLayout } from "./components/stage/stage-items";
5
5
  export type { Participant } from "./components/participant-grid/ParticipantGrid";
6
- export { loadRecordingWhiteboardFiles, parseRecordingWhiteboardStateV1, recordingWhiteboardSceneAppState } from "./components/whiteboard-view/recording-whiteboard-state";
6
+ export { createRecordingWhiteboardCursor, loadRecordingWhiteboardFiles, parseRecordingWhiteboardStateV1, recordingWhiteboardSceneAppState } from "./components/whiteboard-view/recording-whiteboard-state";
7
+ export type { RecordingWhiteboardCursor } from "./components/whiteboard-view/recording-whiteboard-state";
7
8
  export type { RecordingWhiteboardStateV1 } from "./components/whiteboard-view/recording-whiteboard-state";
8
9
  //# sourceMappingURL=headless.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"headless.d.ts","sourceRoot":"","sources":["../src/headless.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AACzH,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AACtG,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACjH,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7E,YAAY,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AACjF,OAAO,EAAE,4BAA4B,EAAE,+BAA+B,EAAE,gCAAgC,EAAE,MAAM,yDAAyD,CAAC;AAC1K,YAAY,EAAE,0BAA0B,EAAE,MAAM,yDAAyD,CAAC"}
1
+ {"version":3,"file":"headless.d.ts","sourceRoot":"","sources":["../src/headless.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AACzH,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AACtG,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACjH,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7E,YAAY,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AACjF,OAAO,EAAE,+BAA+B,EAAE,4BAA4B,EAAE,+BAA+B,EAAE,gCAAgC,EAAE,MAAM,yDAAyD,CAAC;AAC3M,YAAY,EAAE,yBAAyB,EAAE,MAAM,yDAAyD,CAAC;AACzG,YAAY,EAAE,0BAA0B,EAAE,MAAM,yDAAyD,CAAC"}
package/dist/headless.js CHANGED
@@ -1,8 +1,9 @@
1
1
  import {
2
+ createRecordingWhiteboardCursor,
2
3
  loadRecordingWhiteboardFiles,
3
4
  parseRecordingWhiteboardStateV1,
4
5
  recordingWhiteboardSceneAppState
5
- } from "./chunk-HZ43I4OS.js";
6
+ } from "./chunk-VHM3SYMY.js";
6
7
  import {
7
8
  DEFAULT_GRID_OPTIONS,
8
9
  DEFAULT_SPOTLIGHT_OPTIONS,
@@ -18,6 +19,7 @@ export {
18
19
  DEFAULT_SPOTLIGHT_OPTIONS,
19
20
  WHITEBOARD_ITEM_ID,
20
21
  choosePrimary,
22
+ createRecordingWhiteboardCursor,
21
23
  fitGrid,
22
24
  fitSpotlight,
23
25
  gridOrder,
package/dist/index.js CHANGED
@@ -6,14 +6,14 @@ import {
6
6
  RecordingHistoryPanel,
7
7
  RecordingSpaceView,
8
8
  RecordingWhiteboardView
9
- } from "./chunk-RMOJ5DLX.js";
9
+ } from "./chunk-OLBFC6RS.js";
10
10
  import {
11
11
  loadRecordingWhiteboardFiles,
12
12
  parseRecordingWhiteboardStateV1,
13
13
  recordingWhiteboardBinaryFile,
14
14
  recordingWhiteboardFileAssetId,
15
15
  recordingWhiteboardFileIds
16
- } from "./chunk-HZ43I4OS.js";
16
+ } from "./chunk-VHM3SYMY.js";
17
17
  import {
18
18
  COSMIC_CHALK_THEME,
19
19
  ChalkAlert,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@q9labsai/chalk-react",
3
- "version": "4.1.16",
3
+ "version": "4.1.17",
4
4
  "license": "MIT",
5
5
  "repository": {
6
6
  "type": "git",
@@ -74,10 +74,10 @@
74
74
  "@base-ui/react": "^1.7.0",
75
75
  "@hugeicons/core-free-icons": "^4.2.3",
76
76
  "@hugeicons/react": "^1.1.9",
77
- "@q9labsai/chalk-client": "^4.1.16",
78
- "@q9labsai/chalk-ui": "^4.1.16",
79
- "@q9labsai/chalk-whiteboard": "^4.1.16",
80
- "@q9labsai/facehash": "^4.1.16",
77
+ "@q9labsai/chalk-client": "^4.1.17",
78
+ "@q9labsai/chalk-ui": "^4.1.17",
79
+ "@q9labsai/chalk-whiteboard": "^4.1.17",
80
+ "@q9labsai/facehash": "^4.1.17",
81
81
  "@q9labsai/recording-presentation": "^0.1.0",
82
82
  "class-variance-authority": "^0.7.1",
83
83
  "clsx": "^2.1.1",