@bendyline/squisq-react 1.2.0 → 1.3.1

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 (79) hide show
  1. package/dist/InlineAudioPlayer.d.ts +15 -0
  2. package/dist/InlineAudioPlayer.d.ts.map +1 -0
  3. package/dist/InlineAudioPlayer.js +22 -0
  4. package/dist/InlineAudioPlayer.js.map +1 -0
  5. package/dist/InlineVideoPlayer.d.ts +21 -0
  6. package/dist/InlineVideoPlayer.d.ts.map +1 -0
  7. package/dist/InlineVideoPlayer.js +29 -0
  8. package/dist/InlineVideoPlayer.js.map +1 -0
  9. package/dist/LinearDocView.d.ts.map +1 -1
  10. package/dist/LinearDocView.js +124 -13
  11. package/dist/LinearDocView.js.map +1 -1
  12. package/dist/MarkdownRenderer.d.ts.map +1 -1
  13. package/dist/MarkdownRenderer.js +111 -2
  14. package/dist/MarkdownRenderer.js.map +1 -1
  15. package/dist/SocialCaptionOverlay.d.ts.map +1 -1
  16. package/dist/SocialCaptionOverlay.js +3 -2
  17. package/dist/SocialCaptionOverlay.js.map +1 -1
  18. package/dist/__tests__/JsonView.test.d.ts +2 -0
  19. package/dist/__tests__/JsonView.test.d.ts.map +1 -0
  20. package/dist/__tests__/JsonView.test.js +93 -0
  21. package/dist/__tests__/JsonView.test.js.map +1 -0
  22. package/dist/__tests__/LinearDocView.test.js +62 -0
  23. package/dist/__tests__/LinearDocView.test.js.map +1 -1
  24. package/dist/hooks/MediaContext.d.ts.map +1 -1
  25. package/dist/hooks/MediaContext.js +13 -7
  26. package/dist/hooks/MediaContext.js.map +1 -1
  27. package/dist/index.d.ts +7 -0
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/index.js +5 -0
  30. package/dist/index.js.map +1 -1
  31. package/dist/jsonView/JsonView.d.ts +26 -0
  32. package/dist/jsonView/JsonView.d.ts.map +1 -0
  33. package/dist/jsonView/JsonView.js +12 -0
  34. package/dist/jsonView/JsonView.js.map +1 -0
  35. package/dist/jsonView/RenderNode.d.ts +22 -0
  36. package/dist/jsonView/RenderNode.d.ts.map +1 -0
  37. package/dist/jsonView/RenderNode.js +30 -0
  38. package/dist/jsonView/RenderNode.js.map +1 -0
  39. package/dist/jsonView/index.d.ts +3 -0
  40. package/dist/jsonView/index.d.ts.map +1 -0
  41. package/dist/jsonView/index.js +2 -0
  42. package/dist/jsonView/index.js.map +1 -0
  43. package/dist/jsonView/useJsonViewTokens.d.ts +14 -0
  44. package/dist/jsonView/useJsonViewTokens.d.ts.map +1 -0
  45. package/dist/jsonView/useJsonViewTokens.js +34 -0
  46. package/dist/jsonView/useJsonViewTokens.js.map +1 -0
  47. package/dist/jsonView/viewers.d.ts +30 -0
  48. package/dist/jsonView/viewers.d.ts.map +1 -0
  49. package/dist/jsonView/viewers.js +226 -0
  50. package/dist/jsonView/viewers.js.map +1 -0
  51. package/dist/squisq-player.css +1 -1
  52. package/dist/squisq-player.css.map +1 -1
  53. package/dist/squisq-player.global.js +24 -10
  54. package/dist/squisq-player.global.js.map +1 -1
  55. package/dist/standalone-source.js +1 -1
  56. package/dist/types.d.ts +5 -1
  57. package/dist/types.d.ts.map +1 -1
  58. package/dist/types.js.map +1 -1
  59. package/package.json +5 -4
  60. package/src/InlineAudioPlayer.tsx +46 -0
  61. package/src/InlineVideoPlayer.tsx +70 -0
  62. package/src/LinearDocView.tsx +136 -14
  63. package/src/MarkdownRenderer.tsx +156 -10
  64. package/src/SocialCaptionOverlay.tsx +3 -2
  65. package/src/__tests__/JsonView.test.tsx +111 -0
  66. package/src/__tests__/LinearDocView.test.tsx +66 -0
  67. package/src/hooks/MediaContext.tsx +15 -8
  68. package/src/index.ts +9 -0
  69. package/src/jsonView/JsonView.tsx +51 -0
  70. package/src/jsonView/RenderNode.tsx +51 -0
  71. package/src/jsonView/index.ts +2 -0
  72. package/src/jsonView/json-view.css +206 -0
  73. package/src/jsonView/useJsonViewTokens.ts +57 -0
  74. package/src/jsonView/viewers.tsx +343 -0
  75. package/src/standalone-source.d.ts +10 -0
  76. package/src/styles/doc-animations.css +36 -0
  77. package/src/styles/index.css +7 -0
  78. package/src/types.ts +5 -1
  79. package/dist/standalone-source.d.ts +0 -2
@@ -0,0 +1,93 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { describe, it, expect } from 'vitest';
3
+ import { render } from '@testing-library/react';
4
+ import { JsonView } from '../jsonView';
5
+ describe('JsonView', () => {
6
+ it('renders an object schema as labeled rows', () => {
7
+ const schema = {
8
+ type: 'object',
9
+ properties: {
10
+ title: { type: 'string', title: 'Page Title' },
11
+ active: { type: 'boolean' },
12
+ },
13
+ };
14
+ const { container } = render(_jsx(JsonView, { schema: schema, value: { title: 'Hello', active: true } }));
15
+ expect(container.textContent).toContain('Page Title');
16
+ expect(container.textContent).toContain('Hello');
17
+ expect(container.textContent).toContain('On');
18
+ });
19
+ it('renders an array of primitives as chips', () => {
20
+ const schema = {
21
+ type: 'array',
22
+ items: { type: 'string' },
23
+ };
24
+ const { container } = render(_jsx(JsonView, { schema: schema, value: ['a', 'b', 'c'] }));
25
+ expect(container.querySelectorAll('.squisq-jv-chip')).toHaveLength(3);
26
+ });
27
+ it('renders an array of objects as cards with itemLabel.fromField', () => {
28
+ const schema = {
29
+ type: 'array',
30
+ items: {
31
+ type: 'object',
32
+ properties: {
33
+ heading: { type: 'string' },
34
+ body: { type: 'string' },
35
+ },
36
+ squisq: { itemLabel: { fromField: 'heading' } },
37
+ },
38
+ };
39
+ const { container } = render(_jsx(JsonView, { schema: schema, value: [
40
+ { heading: 'Section A', body: 'Body A' },
41
+ { heading: 'Section B', body: 'Body B' },
42
+ ] }));
43
+ const cards = container.querySelectorAll('.squisq-jv-card');
44
+ expect(cards).toHaveLength(2);
45
+ expect(cards[0].textContent).toContain('Section A');
46
+ expect(cards[1].textContent).toContain('Section B');
47
+ });
48
+ it('renders a color value as a swatch + hex', () => {
49
+ const schema = {
50
+ type: 'string',
51
+ format: 'color',
52
+ };
53
+ const { container } = render(_jsx(JsonView, { schema: schema, value: "#ff0080" }));
54
+ const swatch = container.querySelector('.squisq-jv-color__swatch');
55
+ expect(swatch).not.toBeNull();
56
+ expect(swatch?.style.background).toContain('rgb(255, 0, 128)');
57
+ expect(container.textContent).toContain('#ff0080');
58
+ });
59
+ it('hides fields whose squisq.hidden rule matches', () => {
60
+ const schema = {
61
+ type: 'object',
62
+ properties: {
63
+ showAuthor: { type: 'boolean' },
64
+ authorName: {
65
+ type: 'string',
66
+ squisq: { hidden: { field: 'showAuthor', truthy: false } },
67
+ },
68
+ },
69
+ };
70
+ const visible = render(_jsx(JsonView, { schema: schema, value: { showAuthor: true, authorName: 'Alex' } }));
71
+ expect(visible.container.textContent).toContain('Alex');
72
+ const hidden = render(_jsx(JsonView, { schema: schema, value: { showAuthor: false, authorName: 'Alex' } }));
73
+ expect(hidden.container.textContent).not.toContain('Alex');
74
+ });
75
+ it('renders empty values as the em-dash placeholder', () => {
76
+ const schema = {
77
+ type: 'object',
78
+ properties: { title: { type: 'string' } },
79
+ };
80
+ const { container } = render(_jsx(JsonView, { schema: schema, value: {} }));
81
+ expect(container.textContent).toContain('—');
82
+ });
83
+ it('respects squisq.enumLabels when displaying enum values', () => {
84
+ const schema = {
85
+ type: 'string',
86
+ enum: ['s', 'm', 'l'],
87
+ squisq: { enumLabels: { s: 'Small', m: 'Medium', l: 'Large' } },
88
+ };
89
+ const { container } = render(_jsx(JsonView, { schema: schema, value: "m" }));
90
+ expect(container.textContent).toContain('Medium');
91
+ });
92
+ });
93
+ //# sourceMappingURL=JsonView.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JsonView.test.js","sourceRoot":"","sources":["../../src/__tests__/JsonView.test.tsx"],"names":[],"mappings":"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"}
@@ -69,6 +69,68 @@ describe('LinearDocView', () => {
69
69
  expect(container.querySelector('h2')?.textContent).toBe('My Section');
70
70
  expect(container.textContent).toContain('Section body text');
71
71
  });
72
+ it('feeds imageWithCaption blocks the first body image as imageSrc', () => {
73
+ // Regression: without auto-extracting imageSrc from contents, the
74
+ // template renders a layer with `src=undefined` and the SVG card
75
+ // shows a broken image in document (linear) mode.
76
+ const doc = mkDoc([
77
+ mkBlock({
78
+ id: 'img-1',
79
+ sourceHeading: {
80
+ type: 'heading',
81
+ depth: 1,
82
+ children: [text('Mike Ammerlaan')],
83
+ templateAnnotation: { template: 'imageWithCaption' },
84
+ },
85
+ contents: [paragraph({ type: 'image', url: 'mikehome_files/profile.png', alt: 'Mike' })],
86
+ }),
87
+ ]);
88
+ const { container } = render(_jsx(LinearDocView, { doc: doc }));
89
+ const card = container.querySelector('.squisq-linear-card');
90
+ expect(card).toBeTruthy();
91
+ const img = card.querySelector('image, img');
92
+ expect(img).toBeTruthy();
93
+ const href = img.getAttribute('href') ?? img.getAttribute('xlink:href') ?? img.getAttribute('src');
94
+ expect(href).toContain('mikehome_files/profile.png');
95
+ });
96
+ it('extracts imageSrc from raw HTML <img> (resized image)', () => {
97
+ // The WYSIWYG editor emits `<img src width>` for resized images
98
+ // because markdown shorthand has no width syntax. The linear view
99
+ // must read that form too, or every resized imageWithCaption block
100
+ // renders as a broken card.
101
+ const doc = mkDoc([
102
+ mkBlock({
103
+ id: 'img-2',
104
+ sourceHeading: {
105
+ type: 'heading',
106
+ depth: 1,
107
+ children: [text('Resized')],
108
+ templateAnnotation: { template: 'imageWithCaption' },
109
+ },
110
+ contents: [
111
+ {
112
+ type: 'htmlBlock',
113
+ rawHtml: '<img alt="resized" src="resized.png" width="194">',
114
+ htmlChildren: [
115
+ {
116
+ type: 'htmlElement',
117
+ tagName: 'img',
118
+ attributes: { src: 'resized.png', alt: 'resized', width: '194' },
119
+ children: [],
120
+ selfClosing: true,
121
+ },
122
+ ],
123
+ },
124
+ ],
125
+ }),
126
+ ]);
127
+ const { container } = render(_jsx(LinearDocView, { doc: doc }));
128
+ const card = container.querySelector('.squisq-linear-card');
129
+ expect(card).toBeTruthy();
130
+ const img = card.querySelector('image, img');
131
+ const href = img?.getAttribute('href') ?? img?.getAttribute('xlink:href') ?? img?.getAttribute('src');
132
+ expect(href).toContain('resized.png');
133
+ });
72
134
  it('renders annotated block as SVG card', () => {
73
135
  const doc = mkDoc([
74
136
  mkBlock({
@@ -1 +1 @@
1
- {"version":3,"file":"LinearDocView.test.js","sourceRoot":"","sources":["../../src/__tests__/LinearDocView.test.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LinearDocView.test.js","sourceRoot":"","sources":["../../src/__tests__/LinearDocView.test.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"MediaContext.d.ts","sourceRoot":"","sources":["../../src/hooks/MediaContext.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE/D;;GAEG;AACH,eAAO,MAAM,YAAY,+CAA4C,CAAC;AAEtE;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,aAAa,GAAG,IAAI,CAEvD;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAwC1E"}
1
+ {"version":3,"file":"MediaContext.d.ts","sourceRoot":"","sources":["../../src/hooks/MediaContext.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE/D;;GAEG;AACH,eAAO,MAAM,YAAY,+CAA4C,CAAC;AAEtE;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,aAAa,GAAG,IAAI,CAEvD;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CA+C1E"}
@@ -35,13 +35,19 @@ export function useMediaProvider() {
35
35
  */
36
36
  export function useMediaUrl(relativePath, basePath) {
37
37
  const provider = useMediaProvider();
38
+ // Defensive: callers (esp. preview surfaces like InlinePreviewGutter)
39
+ // sometimes feed in template-generated layers whose `content.src` is
40
+ // undefined while the user is still authoring the block. Treat that
41
+ // as an empty string rather than crashing the whole React tree.
42
+ const safePath = typeof relativePath === 'string' ? relativePath : '';
38
43
  // For absolute/http URLs, skip resolution entirely
39
- const isAbsolute = relativePath.startsWith('http') ||
40
- relativePath.startsWith('/') ||
41
- relativePath.startsWith('data:') ||
42
- relativePath.startsWith('blob:');
44
+ const isAbsolute = !safePath ||
45
+ safePath.startsWith('http') ||
46
+ safePath.startsWith('/') ||
47
+ safePath.startsWith('data:') ||
48
+ safePath.startsWith('blob:');
43
49
  // Memoize fallback to avoid recalculating on every render
44
- const fallback = useMemo(() => (isAbsolute ? relativePath : `${basePath}/${relativePath}`), [isAbsolute, relativePath, basePath]);
50
+ const fallback = useMemo(() => (isAbsolute ? safePath : `${basePath}/${safePath}`), [isAbsolute, safePath, basePath]);
45
51
  // Fast path: no provider or absolute URL — return synchronously, skip effect entirely
46
52
  const needsProvider = !isAbsolute && !!provider;
47
53
  const [url, setUrl] = useState(fallback);
@@ -51,14 +57,14 @@ export function useMediaUrl(relativePath, basePath) {
51
57
  return;
52
58
  }
53
59
  let cancelled = false;
54
- provider.resolveUrl(relativePath).then((resolved) => {
60
+ provider.resolveUrl(safePath).then((resolved) => {
55
61
  if (!cancelled)
56
62
  setUrl(resolved);
57
63
  });
58
64
  return () => {
59
65
  cancelled = true;
60
66
  };
61
- }, [needsProvider, provider, relativePath, fallback]);
67
+ }, [needsProvider, provider, safePath, fallback]);
62
68
  // When provider is not needed, return fallback directly to avoid
63
69
  // the one-frame delay from the initial useState → useEffect cycle
64
70
  return needsProvider ? url : fallback;
@@ -1 +1 @@
1
- {"version":3,"file":"MediaContext.js","sourceRoot":"","sources":["../../src/hooks/MediaContext.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAGhF;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,aAAa,CAAuB,IAAI,CAAC,CAAC;AAEtE;;;GAGG;AACH,MAAM,UAAU,gBAAgB;IAC9B,OAAO,UAAU,CAAC,YAAY,CAAC,CAAC;AAClC,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,WAAW,CAAC,YAAoB,EAAE,QAAgB;IAChE,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC;IAEpC,mDAAmD;IACnD,MAAM,UAAU,GACd,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC;QAC/B,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC;QAC5B,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC;QAChC,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAEnC,0DAA0D;IAC1D,MAAM,QAAQ,GAAG,OAAO,CACtB,GAAG,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,QAAQ,IAAI,YAAY,EAAE,CAAC,EACjE,CAAC,UAAU,EAAE,YAAY,EAAE,QAAQ,CAAC,CACrC,CAAC;IAEF,sFAAsF;IACtF,MAAM,aAAa,GAAG,CAAC,UAAU,IAAI,CAAC,CAAC,QAAQ,CAAC;IAEhD,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAEzC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,MAAM,CAAC,QAAQ,CAAC,CAAC;YACjB,OAAO;QACT,CAAC;QAED,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,QAAS,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;YACnD,IAAI,CAAC,SAAS;gBAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QAEH,OAAO,GAAG,EAAE;YACV,SAAS,GAAG,IAAI,CAAC;QACnB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC;IAEtD,iEAAiE;IACjE,kEAAkE;IAClE,OAAO,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC;AACxC,CAAC"}
1
+ {"version":3,"file":"MediaContext.js","sourceRoot":"","sources":["../../src/hooks/MediaContext.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAGhF;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,aAAa,CAAuB,IAAI,CAAC,CAAC;AAEtE;;;GAGG;AACH,MAAM,UAAU,gBAAgB;IAC9B,OAAO,UAAU,CAAC,YAAY,CAAC,CAAC;AAClC,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,WAAW,CAAC,YAAoB,EAAE,QAAgB;IAChE,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC;IAEpC,sEAAsE;IACtE,qEAAqE;IACrE,oEAAoE;IACpE,gEAAgE;IAChE,MAAM,QAAQ,GAAG,OAAO,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IAEtE,mDAAmD;IACnD,MAAM,UAAU,GACd,CAAC,QAAQ;QACT,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC;QAC3B,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC;QACxB,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC;QAC5B,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAE/B,0DAA0D;IAC1D,MAAM,QAAQ,GAAG,OAAO,CACtB,GAAG,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,IAAI,QAAQ,EAAE,CAAC,EACzD,CAAC,UAAU,EAAE,QAAQ,EAAE,QAAQ,CAAC,CACjC,CAAC;IAEF,sFAAsF;IACtF,MAAM,aAAa,GAAG,CAAC,UAAU,IAAI,CAAC,CAAC,QAAQ,CAAC;IAEhD,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAEzC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,MAAM,CAAC,QAAQ,CAAC,CAAC;YACjB,OAAO;QACT,CAAC;QAED,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,QAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;YAC/C,IAAI,CAAC,SAAS;gBAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QAEH,OAAO,GAAG,EAAE;YACV,SAAS,GAAG,IAAI,CAAC;QACnB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;IAElD,iEAAiE;IACjE,kEAAkE;IAClE,OAAO,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC;AACxC,CAAC"}
package/dist/index.d.ts CHANGED
@@ -11,6 +11,10 @@ export { DocProgressBar } from './DocProgressBar.js';
11
11
  export { MarkdownRenderer } from './MarkdownRenderer.js';
12
12
  export { LinearDocView } from './LinearDocView.js';
13
13
  export type { LinearDocViewProps, ImageDisplayMode } from './LinearDocView.js';
14
+ export { InlineVideoPlayer } from './InlineVideoPlayer.js';
15
+ export type { InlineVideoPlayerProps } from './InlineVideoPlayer.js';
16
+ export { InlineAudioPlayer } from './InlineAudioPlayer.js';
17
+ export type { InlineAudioPlayerProps } from './InlineAudioPlayer.js';
14
18
  export { ImageLayer } from './layers/ImageLayer.js';
15
19
  export { TextLayer } from './layers/TextLayer.js';
16
20
  export { ShapeLayer } from './layers/ShapeLayer.js';
@@ -21,8 +25,11 @@ export { useAudioSync } from './hooks/useAudioSync.js';
21
25
  export { useDocPlayback } from './hooks/useDocPlayback.js';
22
26
  export { useViewportOrientation } from './hooks/useViewportOrientation.js';
23
27
  export { MediaContext, useMediaProvider, useMediaUrl } from './hooks/MediaContext.js';
28
+ export { useAutoSurface } from './hooks/useAutoSurface.js';
24
29
  export type { AudioProvider, AudioState, AudioActions } from './hooks/AudioProvider.js';
25
30
  export type { PlaybackState, PlaybackActions, BlockMarker, ControlsLayout, DisplayMode, CaptionStyle, CaptionMode, SlideNavActions, SquisqRenderAPI, SquisqWindow, RenderBlockInfo, RenderAudioSegmentInfo, RenderCaptionInfo, RenderChapterInfo, } from './types.js';
26
31
  export { formatTime } from './types.js';
27
32
  export { getAnimationStyle, getTransitionClass } from './utils/animationUtils.js';
33
+ export { JsonView } from './jsonView/index.js';
34
+ export type { JsonViewProps } from './jsonView/index.js';
28
35
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,YAAY,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAG/E,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAGhD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAGtF,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxF,YAAY,EACV,aAAa,EACb,eAAe,EACf,WAAW,EACX,cAAc,EACd,WAAW,EACX,YAAY,EACZ,WAAW,EACX,eAAe,EACf,eAAe,EACf,YAAY,EACZ,eAAe,EACf,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAGxC,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,YAAY,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,YAAY,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,YAAY,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAGrE,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAGhD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtF,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAG3D,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxF,YAAY,EACV,aAAa,EACb,eAAe,EACf,WAAW,EACX,cAAc,EACd,WAAW,EACX,YAAY,EACZ,WAAW,EACX,eAAe,EACf,eAAe,EACf,YAAY,EACZ,eAAe,EACf,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAGxC,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAGlF,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,YAAY,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC"}
package/dist/index.js CHANGED
@@ -11,6 +11,8 @@ export { DocPlayerWithSidebar } from './DocPlayerWithSidebar.js';
11
11
  export { DocProgressBar } from './DocProgressBar.js';
12
12
  export { MarkdownRenderer } from './MarkdownRenderer.js';
13
13
  export { LinearDocView } from './LinearDocView.js';
14
+ export { InlineVideoPlayer } from './InlineVideoPlayer.js';
15
+ export { InlineAudioPlayer } from './InlineAudioPlayer.js';
14
16
  // Layer components
15
17
  export { ImageLayer } from './layers/ImageLayer.js';
16
18
  export { TextLayer } from './layers/TextLayer.js';
@@ -23,7 +25,10 @@ export { useAudioSync } from './hooks/useAudioSync.js';
23
25
  export { useDocPlayback } from './hooks/useDocPlayback.js';
24
26
  export { useViewportOrientation } from './hooks/useViewportOrientation.js';
25
27
  export { MediaContext, useMediaProvider, useMediaUrl } from './hooks/MediaContext.js';
28
+ export { useAutoSurface } from './hooks/useAutoSurface.js';
26
29
  export { formatTime } from './types.js';
27
30
  // Utilities
28
31
  export { getAnimationStyle, getTransitionClass } from './utils/animationUtils.js';
32
+ // JSON Form — read-only viewer
33
+ export { JsonView } from './jsonView/index.js';
29
34
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,kBAAkB;AAClB,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGnD,mBAAmB;AACnB,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD,QAAQ;AACR,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAoBtF,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,YAAY;AACZ,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,kBAAkB;AAClB,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAG3D,mBAAmB;AACnB,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD,QAAQ;AACR,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtF,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAoB3D,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,YAAY;AACZ,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAElF,+BAA+B;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * <JsonView>
3
+ *
4
+ * Read-only renderer for any JSON value bound to a JSON Schema (with
5
+ * optional Squisq UI hints). Designed to look like a polished settings
6
+ * summary or CRM record — not a disabled form. Themable via the
7
+ * standard Theme + SurfaceScheme props used elsewhere in Squisq.
8
+ */
9
+ import type { SquisqAnnotatedSchema } from '@bendyline/squisq/jsonForm';
10
+ import type { SurfaceScheme, Theme } from '@bendyline/squisq/schemas';
11
+ export interface JsonViewProps {
12
+ /** Schema describing the value's shape (with optional `squisq` UI hints). */
13
+ schema: SquisqAnnotatedSchema;
14
+ /** The value to display. */
15
+ value: unknown;
16
+ /** Optional theme. Defaults to `DEFAULT_THEME`. */
17
+ theme?: Theme;
18
+ /** Light/dark surface override; `'auto'` follows `prefers-color-scheme`. */
19
+ surface?: SurfaceScheme | 'auto';
20
+ /** Padding/gap density. Default: 'comfortable'. */
21
+ density?: 'comfortable' | 'compact';
22
+ /** Optional CSS class for the outer container. */
23
+ className?: string;
24
+ }
25
+ export declare function JsonView(props: JsonViewProps): import("react/jsx-runtime").JSX.Element;
26
+ //# sourceMappingURL=JsonView.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JsonView.d.ts","sourceRoot":"","sources":["../../src/jsonView/JsonView.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAItE,MAAM,WAAW,aAAa;IAC5B,6EAA6E;IAC7E,MAAM,EAAE,qBAAqB,CAAC;IAC9B,4BAA4B;IAC5B,KAAK,EAAE,OAAO,CAAC;IACf,mDAAmD;IACnD,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,4EAA4E;IAC5E,OAAO,CAAC,EAAE,aAAa,GAAG,MAAM,CAAC;IACjC,mDAAmD;IACnD,OAAO,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IACpC,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,2CAqB5C"}
@@ -0,0 +1,12 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useJsonViewTokens } from './useJsonViewTokens';
3
+ import { RenderNode } from './RenderNode';
4
+ export function JsonView(props) {
5
+ const { schema, value, theme, surface, density = 'comfortable', className } = props;
6
+ const { style } = useJsonViewTokens(theme, surface);
7
+ const cls = 'squisq-json-view' +
8
+ (density === 'compact' ? ' squisq-json-view--compact' : '') +
9
+ (className ? ` ${className}` : '');
10
+ return (_jsx("div", { className: cls, style: style, children: _jsx(RenderNode, { value: value, schema: schema, rootSchema: schema, rootData: value, pointer: "", density: density }) }));
11
+ }
12
+ //# sourceMappingURL=JsonView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JsonView.js","sourceRoot":"","sources":["../../src/jsonView/JsonView.tsx"],"names":[],"mappings":";AAWA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAiB1C,MAAM,UAAU,QAAQ,CAAC,KAAoB;IAC3C,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,GAAG,aAAa,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IACpF,MAAM,EAAE,KAAK,EAAE,GAAG,iBAAiB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAEpD,MAAM,GAAG,GACP,kBAAkB;QAClB,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAErC,OAAO,CACL,cAAK,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,YAC/B,KAAC,UAAU,IACT,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,KAAK,EACf,OAAO,EAAC,EAAE,EACV,OAAO,EAAE,OAAO,GAChB,GACE,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Recursive dispatcher: looks at a schema node + value, chooses a
3
+ * `ControlKind`, evaluates `hidden` rules, and renders the matching
4
+ * read-only viewer.
5
+ */
6
+ import { type SquisqAnnotatedSchema } from '@bendyline/squisq/jsonForm';
7
+ export interface RenderNodeProps {
8
+ value: unknown;
9
+ schema: SquisqAnnotatedSchema;
10
+ rootSchema: SquisqAnnotatedSchema;
11
+ rootData: unknown;
12
+ pointer: string;
13
+ density: 'comfortable' | 'compact';
14
+ /**
15
+ * When a parent group already wrote its own card chrome (e.g. a
16
+ * card-stack item), suppress the nested group's outer title so the
17
+ * UI doesn't double up on labels.
18
+ */
19
+ suppressTopGroupTitle?: boolean;
20
+ }
21
+ export declare function RenderNode(props: RenderNodeProps): React.ReactElement | null;
22
+ //# sourceMappingURL=RenderNode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RenderNode.d.ts","sourceRoot":"","sources":["../../src/jsonView/RenderNode.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAIL,KAAK,qBAAqB,EAC3B,MAAM,4BAA4B,CAAC;AAGpC,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,qBAAqB,CAAC;IAC9B,UAAU,EAAE,qBAAqB,CAAC;IAClC,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,aAAa,GAAG,SAAS,CAAC;IACnC;;;;OAIG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,KAAK,CAAC,YAAY,GAAG,IAAI,CAqB5E"}
@@ -0,0 +1,30 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ /**
3
+ * Recursive dispatcher: looks at a schema node + value, chooses a
4
+ * `ControlKind`, evaluates `hidden` rules, and renders the matching
5
+ * read-only viewer.
6
+ */
7
+ import { chooseControl, resolveFlag, resolveRef, } from '@bendyline/squisq/jsonForm';
8
+ import { VIEWERS } from './viewers';
9
+ export function RenderNode(props) {
10
+ const resolved = resolveRef(props.schema, props.rootSchema) ?? props.schema;
11
+ if (resolveFlag(resolved.squisq?.hidden, props.rootData))
12
+ return null;
13
+ const kind = chooseControl(resolved);
14
+ const Viewer = VIEWERS[kind];
15
+ const viewerProps = {
16
+ value: props.value,
17
+ schema: resolved,
18
+ rootSchema: props.rootSchema,
19
+ rootData: props.rootData,
20
+ pointer: props.pointer,
21
+ density: props.density,
22
+ };
23
+ if (kind === 'group' || kind === 'card') {
24
+ // GroupViewer accepts an extra prop that RenderNode forwards.
25
+ const Group = Viewer;
26
+ return _jsx(Group, { ...viewerProps, suppressTitle: props.suppressTopGroupTitle });
27
+ }
28
+ return _jsx(Viewer, { ...viewerProps });
29
+ }
30
+ //# sourceMappingURL=RenderNode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RenderNode.js","sourceRoot":"","sources":["../../src/jsonView/RenderNode.tsx"],"names":[],"mappings":";AAAA;;;;GAIG;AAEH,OAAO,EACL,aAAa,EACb,WAAW,EACX,UAAU,GAEX,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,OAAO,EAAoB,MAAM,WAAW,CAAC;AAiBtD,MAAM,UAAU,UAAU,CAAC,KAAsB;IAC/C,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC;IAE5E,IAAI,WAAW,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IAEtE,MAAM,IAAI,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;IACrC,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,MAAM,WAAW,GAAgB;QAC/B,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,MAAM,EAAE,QAAQ;QAChB,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,OAAO,EAAE,KAAK,CAAC,OAAO;KACvB,CAAC;IACF,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACxC,8DAA8D;QAC9D,MAAM,KAAK,GAAG,MAAwE,CAAC;QACvF,OAAO,KAAC,KAAK,OAAK,WAAW,EAAE,aAAa,EAAE,KAAK,CAAC,qBAAqB,GAAI,CAAC;IAChF,CAAC;IACD,OAAO,KAAC,MAAM,OAAK,WAAW,GAAI,CAAC;AACrC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { JsonView } from './JsonView';
2
+ export type { JsonViewProps } from './JsonView';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/jsonView/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { JsonView } from './JsonView';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/jsonView/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Derive the CSS custom-property bag for `<JsonView>` from a Theme + Surface.
3
+ * Mirrors the pattern in LinearDocView so JsonView re-themes consistently
4
+ * with the rest of Squisq.
5
+ */
6
+ import { type SurfaceScheme, type Theme } from '@bendyline/squisq/schemas';
7
+ export interface JsonViewTokens {
8
+ /** Inline style object to spread onto the root element. */
9
+ style: React.CSSProperties;
10
+ /** The effective theme (after surface application). */
11
+ theme: Theme;
12
+ }
13
+ export declare function useJsonViewTokens(theme: Theme | undefined, surface: SurfaceScheme | 'auto' | undefined): JsonViewTokens;
14
+ //# sourceMappingURL=useJsonViewTokens.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useJsonViewTokens.d.ts","sourceRoot":"","sources":["../../src/jsonView/useJsonViewTokens.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAGL,KAAK,aAAa,EAClB,KAAK,KAAK,EACX,MAAM,2BAA2B,CAAC;AAInC,MAAM,WAAW,cAAc;IAC7B,2DAA2D;IAC3D,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC;IAC3B,uDAAuD;IACvD,KAAK,EAAE,KAAK,CAAC;CACd;AAED,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,KAAK,GAAG,SAAS,EACxB,OAAO,EAAE,aAAa,GAAG,MAAM,GAAG,SAAS,GAC1C,cAAc,CA8BhB"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Derive the CSS custom-property bag for `<JsonView>` from a Theme + Surface.
3
+ * Mirrors the pattern in LinearDocView so JsonView re-themes consistently
4
+ * with the rest of Squisq.
5
+ */
6
+ import { useMemo } from 'react';
7
+ import { applySurface, resolveFontFamily, } from '@bendyline/squisq/schemas';
8
+ import { DEFAULT_THEME } from '@bendyline/squisq/doc';
9
+ import { useAutoSurface } from '../hooks/useAutoSurface';
10
+ export function useJsonViewTokens(theme, surface) {
11
+ const auto = useAutoSurface(surface === 'auto');
12
+ const effectiveSurface = surface === 'auto' ? auto : (surface ?? undefined);
13
+ return useMemo(() => {
14
+ const baseTheme = theme ?? DEFAULT_THEME;
15
+ const finalTheme = effectiveSurface ? applySurface(baseTheme, effectiveSurface) : baseTheme;
16
+ const titleFont = resolveFontFamily(finalTheme.typography.titleFont, 'system-ui, sans-serif');
17
+ const bodyFont = resolveFontFamily(finalTheme.typography.bodyFont, 'system-ui, sans-serif');
18
+ const monoFont = resolveFontFamily(finalTheme.typography.monoFont, 'ui-monospace, Consolas, monospace');
19
+ const style = {
20
+ ['--squisq-json-bg']: finalTheme.colors.background,
21
+ ['--squisq-json-text']: finalTheme.colors.text,
22
+ ['--squisq-json-muted']: finalTheme.colors.textMuted,
23
+ ['--squisq-json-primary']: finalTheme.colors.primary,
24
+ ['--squisq-json-accent']: finalTheme.colors.secondary,
25
+ ['--squisq-json-border']: `color-mix(in srgb, ${finalTheme.colors.textMuted} 35%, transparent)`,
26
+ ['--squisq-json-title-font']: titleFont,
27
+ ['--squisq-json-body-font']: bodyFont,
28
+ ['--squisq-json-mono-font']: monoFont,
29
+ ['--squisq-json-radius']: `${finalTheme.style.borderRadius ?? 8}px`,
30
+ };
31
+ return { style, theme: finalTheme };
32
+ }, [theme, effectiveSurface]);
33
+ }
34
+ //# sourceMappingURL=useJsonViewTokens.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useJsonViewTokens.js","sourceRoot":"","sources":["../../src/jsonView/useJsonViewTokens.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EACL,YAAY,EACZ,iBAAiB,GAGlB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AASzD,MAAM,UAAU,iBAAiB,CAC/B,KAAwB,EACxB,OAA2C;IAE3C,MAAM,IAAI,GAAG,cAAc,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC;IAChD,MAAM,gBAAgB,GAAG,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,SAAS,CAAC,CAAC;IAE5E,OAAO,OAAO,CAAC,GAAG,EAAE;QAClB,MAAM,SAAS,GAAG,KAAK,IAAI,aAAa,CAAC;QACzC,MAAM,UAAU,GAAG,gBAAgB,CAAC,CAAC,CAAC,YAAY,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAE5F,MAAM,SAAS,GAAG,iBAAiB,CAAC,UAAU,CAAC,UAAU,CAAC,SAAS,EAAE,uBAAuB,CAAC,CAAC;QAC9F,MAAM,QAAQ,GAAG,iBAAiB,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,EAAE,uBAAuB,CAAC,CAAC;QAC5F,MAAM,QAAQ,GAAG,iBAAiB,CAChC,UAAU,CAAC,UAAU,CAAC,QAAQ,EAC9B,mCAAmC,CACpC,CAAC;QAEF,MAAM,KAAK,GAAwB;YACjC,CAAC,kBAA4B,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,UAAU;YAC5D,CAAC,oBAA8B,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI;YACxD,CAAC,qBAA+B,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,SAAS;YAC9D,CAAC,uBAAiC,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,OAAO;YAC9D,CAAC,sBAAgC,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,SAAS;YAC/D,CAAC,sBAAgC,CAAC,EAAE,sBAAsB,UAAU,CAAC,MAAM,CAAC,SAAS,oBAAoB;YACzG,CAAC,0BAAoC,CAAC,EAAE,SAAS;YACjD,CAAC,yBAAmC,CAAC,EAAE,QAAQ;YAC/C,CAAC,yBAAmC,CAAC,EAAE,QAAQ;YAC/C,CAAC,sBAAgC,CAAC,EAAE,GAAG,UAAU,CAAC,KAAK,CAAC,YAAY,IAAI,CAAC,IAAI;SAC9E,CAAC;QAEF,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;IACtC,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC;AAChC,CAAC"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Read-only viewer renderers for `<JsonView>`. Each viewer is a small
3
+ * pure function that takes a value + schema slice and renders inline.
4
+ * Group / card-stack viewers recurse into `RenderNode`.
5
+ */
6
+ import { type ControlKind, type SquisqAnnotatedSchema } from '@bendyline/squisq/jsonForm';
7
+ export interface ViewerProps {
8
+ value: unknown;
9
+ schema: SquisqAnnotatedSchema;
10
+ rootSchema: SquisqAnnotatedSchema;
11
+ rootData: unknown;
12
+ pointer: string;
13
+ density: 'comfortable' | 'compact';
14
+ }
15
+ export declare function TextViewer({ value }: ViewerProps): import("react/jsx-runtime").JSX.Element;
16
+ export declare function MultilineViewer({ value }: ViewerProps): import("react/jsx-runtime").JSX.Element;
17
+ export declare function RichTextViewer({ value }: ViewerProps): import("react/jsx-runtime").JSX.Element;
18
+ export declare function NumberViewer({ value }: ViewerProps): import("react/jsx-runtime").JSX.Element;
19
+ export declare function BooleanViewer({ value }: ViewerProps): import("react/jsx-runtime").JSX.Element;
20
+ export declare function EnumViewer({ value, schema }: ViewerProps): import("react/jsx-runtime").JSX.Element;
21
+ export declare function ColorViewer({ value }: ViewerProps): import("react/jsx-runtime").JSX.Element;
22
+ export declare function DateViewer({ value, schema }: ViewerProps): import("react/jsx-runtime").JSX.Element;
23
+ export declare function ChipBinViewer({ value, schema }: ViewerProps): import("react/jsx-runtime").JSX.Element;
24
+ export declare function CardStackViewer(props: ViewerProps): import("react/jsx-runtime").JSX.Element;
25
+ export declare function GroupViewer(props: ViewerProps & {
26
+ suppressTitle?: boolean;
27
+ }): import("react/jsx-runtime").JSX.Element;
28
+ export declare function TabsViewer(props: ViewerProps): import("react/jsx-runtime").JSX.Element;
29
+ export declare const VIEWERS: Record<ControlKind, React.ComponentType<ViewerProps>>;
30
+ //# sourceMappingURL=viewers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viewers.d.ts","sourceRoot":"","sources":["../../src/jsonView/viewers.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,qBAAqB,EAC3B,MAAM,4BAA4B,CAAC;AAKpC,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,qBAAqB,CAAC;IAC9B,UAAU,EAAE,qBAAqB,CAAC;IAClC,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,aAAa,GAAG,SAAS,CAAC;CACpC;AAID,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,EAAE,WAAW,2CAKhD;AAED,wBAAgB,eAAe,CAAC,EAAE,KAAK,EAAE,EAAE,WAAW,2CAKrD;AAED,wBAAgB,cAAc,CAAC,EAAE,KAAK,EAAE,EAAE,WAAW,2CAgBpD;AAED,wBAAgB,YAAY,CAAC,EAAE,KAAK,EAAE,EAAE,WAAW,2CAKlD;AAED,wBAAgB,aAAa,CAAC,EAAE,KAAK,EAAE,EAAE,WAAW,2CAOnD;AAED,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,WAAW,2CAOxD;AAED,wBAAgB,WAAW,CAAC,EAAE,KAAK,EAAE,EAAE,WAAW,2CAUjD;AAED,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,WAAW,2CAqBxD;AAID,wBAAgB,aAAa,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,WAAW,2CAmB3D;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,WAAW,2CA4BjD;AAiBD,wBAAgB,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG;IAAE,aAAa,CAAC,EAAE,OAAO,CAAA;CAAE,2CAgC3E;AA6CD,wBAAgB,UAAU,CAAC,KAAK,EAAE,WAAW,2CAuB5C;AAmCD,eAAO,MAAM,OAAO,EAAE,MAAM,CAAC,WAAW,EAAE,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,CAoBzE,CAAC"}