@examind/block-sdk 0.1.24 → 0.1.27

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/dist/index.d.mts CHANGED
@@ -1,7 +1,10 @@
1
1
  import { SerializedEditorState } from '@examind/block-types';
2
2
 
3
+ declare const themeLight = "\n:host,\n.theme-light {\n color-scheme: light;\n\n --sl-color-neutral-50: #fafafa;\n --sl-color-neutral-100: #f4f4f5;\n --sl-color-neutral-200: #e4e4e7;\n --sl-color-neutral-300: #d4d4d8;\n --sl-color-neutral-400: #a1a1aa;\n --sl-color-neutral-500: #71717a;\n --sl-color-neutral-600: #52525b;\n --sl-color-neutral-700: #3f3f46;\n --sl-color-neutral-800: #27272a;\n --sl-color-neutral-900: #18181b;\n --sl-color-neutral-950: #09090b;\n\n --sl-color-neutral-0: #ffffff;\n --sl-color-neutral-1000: hsl(0, 0%, 0%);\n\n --sl-border-base: var(--be-border-base);\n --sl-border-radius-small: calc(var(--sl-border-base) * 0.1875);\n --sl-border-radius-medium: calc(var(--sl-border-base) * 0.25);\n --sl-border-radius-large: calc(var(--sl-border-base) * 0.5);\n --sl-border-radius-x-large: var(\n --sl-border-base\n );\n\n --sl-border-radius-circle: 50%;\n --sl-border-radius-pill: 9999px;\n\n --sl-shadow-x-small: 0 1px 2px hsl(240 3.8% 46.1% / 6%);\n --sl-shadow-small: 0 1px 2px hsl(240 3.8% 46.1% / 12%);\n --sl-shadow-medium: 0 2px 4px hsl(240 3.8% 46.1% / 12%);\n --sl-shadow-large: var(\n --be-shadow-large,\n 0 2px 8px hsl(240 3.8% 46.1% / 12%)\n );\n --sl-shadow-x-large: 0 4px 16px hsl(240 3.8% 46.1% / 12%);\n\n --sl-spacing-base: var(--be-spacing-base, 1rem);\n --sl-spacing-3x-small: calc(\n var(--sl-spacing-base) * 0.125\n );\n --sl-spacing-2x-small: calc(\n var(--sl-spacing-base) * 0.25\n );\n --sl-spacing-1_5x-small: calc(\n var(--sl-spacing-base) * 0.375\n );\n --sl-spacing-x-small: calc(\n var(--sl-spacing-base) * 0.5\n );\n --sl-spacing-small: calc(\n var(--sl-spacing-base) * 0.75\n );\n --sl-spacing-medium: var(--sl-spacing-base);\n --sl-spacing-large: calc(\n var(--sl-spacing-base) * 1.25\n );\n --sl-spacing-x-large: calc(\n var(--sl-spacing-base) * 1.75\n );\n --sl-spacing-2x-large: calc(\n var(--sl-spacing-base) * 2.25\n );\n --sl-spacing-3x-large: calc(\n var(--sl-spacing-base) * 3\n );\n --sl-spacing-4x-large: calc(\n var(--sl-spacing-base) * 4.5\n );\n --sl-spacing-5x-large: calc(var(--sl-spacing-base) * 5);\n\n --indent-size: var(--sl-spacing-large);\n\n --sl-font-mono: SFMono-Regular, Consolas, 'Liberation Mono', Menlo,\n monospace;\n --sl-font-sans: var(\n --be-font-sans,\n -apple-system,\n BlinkMacSystemFont,\n 'Segoe UI',\n Roboto,\n Helvetica,\n Arial,\n sans-serif,\n 'Apple Color Emoji',\n 'Segoe UI Emoji',\n 'Segoe UI Symbol'\n );\n --sl-font-serif: var(\n --be-font-serif,\n Georgia,\n 'Times New Roman',\n serif\n );\n\n --sl-font-size-base: var(--be-font-size-base, 1rem);\n --sl-font-size-2x-small: calc(var(--sl-font-size-base) * 0.625);\n --sl-font-size-x-small: calc(var(--sl-font-size-base) * 0.75);\n --sl-font-size-small: calc(var(--sl-font-size-base) * 0.875);\n --sl-font-size-medium: var(--sl-font-size-base);\n --sl-font-size-large: calc(var(--sl-font-size-base) * 1.25);\n --sl-font-size-x-large: calc(var(--sl-font-size-base) * 1.5);\n --sl-font-size-2x-large: calc(var(--sl-font-size-base) * 2.25);\n --sl-font-size-3x-large: calc(var(--sl-font-size-base) * 3);\n --sl-font-size-4x-large: calc(var(--sl-font-size-base) * 4.5);\n\n --sl-font-weight-light: 300;\n --sl-font-weight-normal: 400;\n --sl-font-weight-semibold: 500;\n --sl-font-weight-bold: 700;\n\n --sl-letter-spacing-denser: -0.03em;\n --sl-letter-spacing-dense: -0.015em;\n --sl-letter-spacing-normal: normal;\n --sl-letter-spacing-loose: 0.075em;\n --sl-letter-spacing-looser: 0.15em;\n\n --sl-line-height-base: 1;\n --sl-line-height-x-denser: calc(var(--sl-line-height-base) * 1.1);\n --sl-line-height-denser: calc(var(--sl-line-height-base) * 1.2);\n --sl-line-height-dense: calc(var(--sl-line-height-base) * 1.4);\n --sl-line-height-subnormal: calc(var(--sl-line-height-base) * 1.6);\n --sl-line-height-normal: calc(var(--sl-line-height-base) * 1.8);\n --sl-line-height-loose: calc(var(--sl-line-height-base) * 2.2);\n --sl-line-height-looser: calc(var(--sl-line-height-base) * 2.6);\n\n --td-editor-text-color-blue: hsl(221, 100%, 50%);\n --td-editor-text-color-purple: hsl(291, 100%, 39%);\n --td-editor-text-color-red: hsl(4, 100%, 40%);\n --td-editor-text-color-green: hsl(122, 100%, 23%);\n\n --td-editor-bg-color-blue: hsl(221, 100%, 50%, 0.1);\n --td-editor-bg-color-purple: hsl(291, 100%, 39%, 0.1);\n --td-editor-bg-color-red: hsl(4, 100%, 40%, 0.1);\n --td-editor-bg-color-green: hsl(122, 100%, 23%, 0.1);\n}\n";
4
+ declare const themeDark = "\n:host,\n.theme-dark {\n color-scheme: dark;\n\n --sl-color-neutral-950: #fafafa;\n --sl-color-neutral-900: #f4f4f5;\n --sl-color-neutral-800: #e4e4e7;\n --sl-color-neutral-700: #d4d4d8;\n --sl-color-neutral-600: #a1a1aa;\n --sl-color-neutral-500: #71717a;\n --sl-color-neutral-400: #71717a;\n --sl-color-neutral-300: #52525b;\n --sl-color-neutral-200: #3f3f46;\n --sl-color-neutral-100: #27272a;\n --sl-color-neutral-50: #18181b;\n --sl-color-neutral-0: #09090b;\n --sl-color-neutral-1000: hsl(0, 0%, 100%);\n\n --sl-border-base: var(--be-border-base);\n --sl-border-radius-small: calc(var(--sl-border-base) * 0.1875);\n --sl-border-radius-medium: calc(var(--sl-border-base) * 0.25);\n --sl-border-radius-large: calc(var(--sl-border-base) * 0.5);\n --sl-border-radius-x-large: var(\n --sl-border-base\n );\n\n --sl-border-radius-circle: 50%;\n --sl-border-radius-pill: 9999px;\n\n --sl-shadow-x-small: 0 1px 2px rgb(0 0 0 / 18%);\n --sl-shadow-small: 0 1px 2px rgb(0 0 0 / 24%);\n --sl-shadow-medium: 0 2px 4px rgb(0 0 0 / 24%);\n --sl-shadow-large: var(\n --be-shadow-large,\n 0 2px 8px rgb(0 0 0 / 24%)\n );\n --sl-shadow-x-large: 0 4px 16px rgb(0 0 0 / 24%);\n\n --sl-spacing-base: var(--be-spacing-base, 1rem);\n --sl-spacing-3x-small: calc(\n var(--sl-spacing-base) * 0.125\n );\n --sl-spacing-2x-small: calc(\n var(--sl-spacing-base) * 0.25\n );\n --sl-spacing-1_5x-small: calc(\n var(--sl-spacing-base) * 0.375\n );\n --sl-spacing-x-small: calc(\n var(--sl-spacing-base) * 0.5\n );\n --sl-spacing-small: calc(\n var(--sl-spacing-base) * 0.75\n );\n --sl-spacing-medium: var(--sl-spacing-base);\n --sl-spacing-large: calc(\n var(--sl-spacing-base) * 1.25\n );\n --sl-spacing-x-large: calc(\n var(--sl-spacing-base) * 1.75\n );\n --sl-spacing-2x-large: calc(\n var(--sl-spacing-base) * 2.25\n );\n --sl-spacing-3x-large: calc(\n var(--sl-spacing-base) * 3\n );\n --sl-spacing-4x-large: calc(\n var(--sl-spacing-base) * 4.5\n );\n --sl-spacing-5x-large: calc(var(--sl-spacing-base) * 5);\n\n --indent-size: var(--sl-spacing-large);\n\n --sl-transition-x-slow: 1000ms;\n --sl-transition-slow: 500ms;\n --sl-transition-medium: 250ms;\n --sl-transition-fast: 150ms;\n --sl-transition-x-fast: 50ms;\n\n --sl-font-mono: var(\n --be-font-mono,\n SFMono-Regular,\n Consolas,\n 'Liberation Mono',\n Menlo,\n monospace\n );\n --sl-font-sans: var(\n --be-font-sans,\n -apple-system,\n BlinkMacSystemFont,\n 'Segoe UI',\n Roboto,\n Helvetica,\n Arial,\n sans-serif,\n 'Apple Color Emoji',\n 'Segoe UI Emoji',\n 'Segoe UI Symbol'\n );\n --sl-font-serif: var(\n --be-font-serif,\n Georgia,\n 'Times New Roman',\n serif\n );\n\n --sl-font-size-base: var(--be-font-size-base, 1rem);\n --sl-font-size-2x-small: calc(var(--sl-font-size-base) * 0.625);\n --sl-font-size-x-small: calc(var(--sl-font-size-base) * 0.75);\n --sl-font-size-small: calc(var(--sl-font-size-base) * 0.875);\n --sl-font-size-medium: var(--sl-font-size-base);\n --sl-font-size-large: calc(var(--sl-font-size-base) * 1.25);\n --sl-font-size-x-large: calc(var(--sl-font-size-base) * 1.5);\n --sl-font-size-2x-large: calc(var(--sl-font-size-base) * 2.25);\n --sl-font-size-3x-large: calc(var(--sl-font-size-base) * 3);\n --sl-font-size-4x-large: calc(var(--sl-font-size-base) * 4.5);\n\n --sl-font-weight-light: 300;\n --sl-font-weight-normal: 400;\n --sl-font-weight-semibold: 500;\n --sl-font-weight-bold: 700;\n\n --sl-letter-spacing-denser: -0.03em;\n --sl-letter-spacing-dense: -0.015em;\n --sl-letter-spacing-normal: normal;\n --sl-letter-spacing-loose: 0.075em;\n --sl-letter-spacing-looser: 0.15em;\n\n --sl-line-height-base: 1;\n --sl-line-height-x-denser: calc(var(--sl-line-height-base) * 1.1);\n --sl-line-height-denser: calc(var(--sl-line-height-base) * 1.2);\n --sl-line-height-dense: calc(var(--sl-line-height-base) * 1.4);\n --sl-line-height-subnormal: calc(var(--sl-line-height-base) * 1.6);\n --sl-line-height-normal: calc(var(--sl-line-height-base) * 1.8);\n --sl-line-height-loose: calc(var(--sl-line-height-base) * 2.2);\n --sl-line-height-looser: calc(var(--sl-line-height-base) * 2.6);\n\n --td-editor-text-color-blue: hsl(221, 100%, 70%);\n --td-editor-text-color-purple: hsl(291, 100%, 65%);\n --td-editor-text-color-red: hsl(4, 100%, 63%);\n --td-editor-text-color-green: hsl(122, 100%, 34%);\n\n --td-editor-bg-color-blue: hsl(221, 100%, 70%, 0.2);\n --td-editor-bg-color-purple: hsl(291, 100%, 65%, 0.2);\n --td-editor-bg-color-red: hsl(4, 100%, 63%, 0.2);\n --td-editor-bg-color-green: hsl(122, 100%, 34%, 0.2);\n}\n";
5
+
3
6
  declare function exportToHtml(editorState: SerializedEditorState): string;
4
7
 
5
8
  declare function importFromHtml(html: string): SerializedEditorState;
6
9
 
7
- export { exportToHtml, importFromHtml };
10
+ export { exportToHtml, importFromHtml, themeDark, themeLight };
package/dist/index.d.ts CHANGED
@@ -1,7 +1,10 @@
1
1
  import { SerializedEditorState } from '@examind/block-types';
2
2
 
3
+ declare const themeLight = "\n:host,\n.theme-light {\n color-scheme: light;\n\n --sl-color-neutral-50: #fafafa;\n --sl-color-neutral-100: #f4f4f5;\n --sl-color-neutral-200: #e4e4e7;\n --sl-color-neutral-300: #d4d4d8;\n --sl-color-neutral-400: #a1a1aa;\n --sl-color-neutral-500: #71717a;\n --sl-color-neutral-600: #52525b;\n --sl-color-neutral-700: #3f3f46;\n --sl-color-neutral-800: #27272a;\n --sl-color-neutral-900: #18181b;\n --sl-color-neutral-950: #09090b;\n\n --sl-color-neutral-0: #ffffff;\n --sl-color-neutral-1000: hsl(0, 0%, 0%);\n\n --sl-border-base: var(--be-border-base);\n --sl-border-radius-small: calc(var(--sl-border-base) * 0.1875);\n --sl-border-radius-medium: calc(var(--sl-border-base) * 0.25);\n --sl-border-radius-large: calc(var(--sl-border-base) * 0.5);\n --sl-border-radius-x-large: var(\n --sl-border-base\n );\n\n --sl-border-radius-circle: 50%;\n --sl-border-radius-pill: 9999px;\n\n --sl-shadow-x-small: 0 1px 2px hsl(240 3.8% 46.1% / 6%);\n --sl-shadow-small: 0 1px 2px hsl(240 3.8% 46.1% / 12%);\n --sl-shadow-medium: 0 2px 4px hsl(240 3.8% 46.1% / 12%);\n --sl-shadow-large: var(\n --be-shadow-large,\n 0 2px 8px hsl(240 3.8% 46.1% / 12%)\n );\n --sl-shadow-x-large: 0 4px 16px hsl(240 3.8% 46.1% / 12%);\n\n --sl-spacing-base: var(--be-spacing-base, 1rem);\n --sl-spacing-3x-small: calc(\n var(--sl-spacing-base) * 0.125\n );\n --sl-spacing-2x-small: calc(\n var(--sl-spacing-base) * 0.25\n );\n --sl-spacing-1_5x-small: calc(\n var(--sl-spacing-base) * 0.375\n );\n --sl-spacing-x-small: calc(\n var(--sl-spacing-base) * 0.5\n );\n --sl-spacing-small: calc(\n var(--sl-spacing-base) * 0.75\n );\n --sl-spacing-medium: var(--sl-spacing-base);\n --sl-spacing-large: calc(\n var(--sl-spacing-base) * 1.25\n );\n --sl-spacing-x-large: calc(\n var(--sl-spacing-base) * 1.75\n );\n --sl-spacing-2x-large: calc(\n var(--sl-spacing-base) * 2.25\n );\n --sl-spacing-3x-large: calc(\n var(--sl-spacing-base) * 3\n );\n --sl-spacing-4x-large: calc(\n var(--sl-spacing-base) * 4.5\n );\n --sl-spacing-5x-large: calc(var(--sl-spacing-base) * 5);\n\n --indent-size: var(--sl-spacing-large);\n\n --sl-font-mono: SFMono-Regular, Consolas, 'Liberation Mono', Menlo,\n monospace;\n --sl-font-sans: var(\n --be-font-sans,\n -apple-system,\n BlinkMacSystemFont,\n 'Segoe UI',\n Roboto,\n Helvetica,\n Arial,\n sans-serif,\n 'Apple Color Emoji',\n 'Segoe UI Emoji',\n 'Segoe UI Symbol'\n );\n --sl-font-serif: var(\n --be-font-serif,\n Georgia,\n 'Times New Roman',\n serif\n );\n\n --sl-font-size-base: var(--be-font-size-base, 1rem);\n --sl-font-size-2x-small: calc(var(--sl-font-size-base) * 0.625);\n --sl-font-size-x-small: calc(var(--sl-font-size-base) * 0.75);\n --sl-font-size-small: calc(var(--sl-font-size-base) * 0.875);\n --sl-font-size-medium: var(--sl-font-size-base);\n --sl-font-size-large: calc(var(--sl-font-size-base) * 1.25);\n --sl-font-size-x-large: calc(var(--sl-font-size-base) * 1.5);\n --sl-font-size-2x-large: calc(var(--sl-font-size-base) * 2.25);\n --sl-font-size-3x-large: calc(var(--sl-font-size-base) * 3);\n --sl-font-size-4x-large: calc(var(--sl-font-size-base) * 4.5);\n\n --sl-font-weight-light: 300;\n --sl-font-weight-normal: 400;\n --sl-font-weight-semibold: 500;\n --sl-font-weight-bold: 700;\n\n --sl-letter-spacing-denser: -0.03em;\n --sl-letter-spacing-dense: -0.015em;\n --sl-letter-spacing-normal: normal;\n --sl-letter-spacing-loose: 0.075em;\n --sl-letter-spacing-looser: 0.15em;\n\n --sl-line-height-base: 1;\n --sl-line-height-x-denser: calc(var(--sl-line-height-base) * 1.1);\n --sl-line-height-denser: calc(var(--sl-line-height-base) * 1.2);\n --sl-line-height-dense: calc(var(--sl-line-height-base) * 1.4);\n --sl-line-height-subnormal: calc(var(--sl-line-height-base) * 1.6);\n --sl-line-height-normal: calc(var(--sl-line-height-base) * 1.8);\n --sl-line-height-loose: calc(var(--sl-line-height-base) * 2.2);\n --sl-line-height-looser: calc(var(--sl-line-height-base) * 2.6);\n\n --td-editor-text-color-blue: hsl(221, 100%, 50%);\n --td-editor-text-color-purple: hsl(291, 100%, 39%);\n --td-editor-text-color-red: hsl(4, 100%, 40%);\n --td-editor-text-color-green: hsl(122, 100%, 23%);\n\n --td-editor-bg-color-blue: hsl(221, 100%, 50%, 0.1);\n --td-editor-bg-color-purple: hsl(291, 100%, 39%, 0.1);\n --td-editor-bg-color-red: hsl(4, 100%, 40%, 0.1);\n --td-editor-bg-color-green: hsl(122, 100%, 23%, 0.1);\n}\n";
4
+ declare const themeDark = "\n:host,\n.theme-dark {\n color-scheme: dark;\n\n --sl-color-neutral-950: #fafafa;\n --sl-color-neutral-900: #f4f4f5;\n --sl-color-neutral-800: #e4e4e7;\n --sl-color-neutral-700: #d4d4d8;\n --sl-color-neutral-600: #a1a1aa;\n --sl-color-neutral-500: #71717a;\n --sl-color-neutral-400: #71717a;\n --sl-color-neutral-300: #52525b;\n --sl-color-neutral-200: #3f3f46;\n --sl-color-neutral-100: #27272a;\n --sl-color-neutral-50: #18181b;\n --sl-color-neutral-0: #09090b;\n --sl-color-neutral-1000: hsl(0, 0%, 100%);\n\n --sl-border-base: var(--be-border-base);\n --sl-border-radius-small: calc(var(--sl-border-base) * 0.1875);\n --sl-border-radius-medium: calc(var(--sl-border-base) * 0.25);\n --sl-border-radius-large: calc(var(--sl-border-base) * 0.5);\n --sl-border-radius-x-large: var(\n --sl-border-base\n );\n\n --sl-border-radius-circle: 50%;\n --sl-border-radius-pill: 9999px;\n\n --sl-shadow-x-small: 0 1px 2px rgb(0 0 0 / 18%);\n --sl-shadow-small: 0 1px 2px rgb(0 0 0 / 24%);\n --sl-shadow-medium: 0 2px 4px rgb(0 0 0 / 24%);\n --sl-shadow-large: var(\n --be-shadow-large,\n 0 2px 8px rgb(0 0 0 / 24%)\n );\n --sl-shadow-x-large: 0 4px 16px rgb(0 0 0 / 24%);\n\n --sl-spacing-base: var(--be-spacing-base, 1rem);\n --sl-spacing-3x-small: calc(\n var(--sl-spacing-base) * 0.125\n );\n --sl-spacing-2x-small: calc(\n var(--sl-spacing-base) * 0.25\n );\n --sl-spacing-1_5x-small: calc(\n var(--sl-spacing-base) * 0.375\n );\n --sl-spacing-x-small: calc(\n var(--sl-spacing-base) * 0.5\n );\n --sl-spacing-small: calc(\n var(--sl-spacing-base) * 0.75\n );\n --sl-spacing-medium: var(--sl-spacing-base);\n --sl-spacing-large: calc(\n var(--sl-spacing-base) * 1.25\n );\n --sl-spacing-x-large: calc(\n var(--sl-spacing-base) * 1.75\n );\n --sl-spacing-2x-large: calc(\n var(--sl-spacing-base) * 2.25\n );\n --sl-spacing-3x-large: calc(\n var(--sl-spacing-base) * 3\n );\n --sl-spacing-4x-large: calc(\n var(--sl-spacing-base) * 4.5\n );\n --sl-spacing-5x-large: calc(var(--sl-spacing-base) * 5);\n\n --indent-size: var(--sl-spacing-large);\n\n --sl-transition-x-slow: 1000ms;\n --sl-transition-slow: 500ms;\n --sl-transition-medium: 250ms;\n --sl-transition-fast: 150ms;\n --sl-transition-x-fast: 50ms;\n\n --sl-font-mono: var(\n --be-font-mono,\n SFMono-Regular,\n Consolas,\n 'Liberation Mono',\n Menlo,\n monospace\n );\n --sl-font-sans: var(\n --be-font-sans,\n -apple-system,\n BlinkMacSystemFont,\n 'Segoe UI',\n Roboto,\n Helvetica,\n Arial,\n sans-serif,\n 'Apple Color Emoji',\n 'Segoe UI Emoji',\n 'Segoe UI Symbol'\n );\n --sl-font-serif: var(\n --be-font-serif,\n Georgia,\n 'Times New Roman',\n serif\n );\n\n --sl-font-size-base: var(--be-font-size-base, 1rem);\n --sl-font-size-2x-small: calc(var(--sl-font-size-base) * 0.625);\n --sl-font-size-x-small: calc(var(--sl-font-size-base) * 0.75);\n --sl-font-size-small: calc(var(--sl-font-size-base) * 0.875);\n --sl-font-size-medium: var(--sl-font-size-base);\n --sl-font-size-large: calc(var(--sl-font-size-base) * 1.25);\n --sl-font-size-x-large: calc(var(--sl-font-size-base) * 1.5);\n --sl-font-size-2x-large: calc(var(--sl-font-size-base) * 2.25);\n --sl-font-size-3x-large: calc(var(--sl-font-size-base) * 3);\n --sl-font-size-4x-large: calc(var(--sl-font-size-base) * 4.5);\n\n --sl-font-weight-light: 300;\n --sl-font-weight-normal: 400;\n --sl-font-weight-semibold: 500;\n --sl-font-weight-bold: 700;\n\n --sl-letter-spacing-denser: -0.03em;\n --sl-letter-spacing-dense: -0.015em;\n --sl-letter-spacing-normal: normal;\n --sl-letter-spacing-loose: 0.075em;\n --sl-letter-spacing-looser: 0.15em;\n\n --sl-line-height-base: 1;\n --sl-line-height-x-denser: calc(var(--sl-line-height-base) * 1.1);\n --sl-line-height-denser: calc(var(--sl-line-height-base) * 1.2);\n --sl-line-height-dense: calc(var(--sl-line-height-base) * 1.4);\n --sl-line-height-subnormal: calc(var(--sl-line-height-base) * 1.6);\n --sl-line-height-normal: calc(var(--sl-line-height-base) * 1.8);\n --sl-line-height-loose: calc(var(--sl-line-height-base) * 2.2);\n --sl-line-height-looser: calc(var(--sl-line-height-base) * 2.6);\n\n --td-editor-text-color-blue: hsl(221, 100%, 70%);\n --td-editor-text-color-purple: hsl(291, 100%, 65%);\n --td-editor-text-color-red: hsl(4, 100%, 63%);\n --td-editor-text-color-green: hsl(122, 100%, 34%);\n\n --td-editor-bg-color-blue: hsl(221, 100%, 70%, 0.2);\n --td-editor-bg-color-purple: hsl(291, 100%, 65%, 0.2);\n --td-editor-bg-color-red: hsl(4, 100%, 63%, 0.2);\n --td-editor-bg-color-green: hsl(122, 100%, 34%, 0.2);\n}\n";
5
+
3
6
  declare function exportToHtml(editorState: SerializedEditorState): string;
4
7
 
5
8
  declare function importFromHtml(html: string): SerializedEditorState;
6
9
 
7
- export { exportToHtml, importFromHtml };
10
+ export { exportToHtml, importFromHtml, themeDark, themeLight };
package/dist/index.js CHANGED
@@ -21,10 +21,305 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
21
21
  var index_exports = {};
22
22
  __export(index_exports, {
23
23
  exportToHtml: () => exportToHtml,
24
- importFromHtml: () => importFromHtml
24
+ importFromHtml: () => importFromHtml,
25
+ themeDark: () => themeDark,
26
+ themeLight: () => themeLight
25
27
  });
26
28
  module.exports = __toCommonJS(index_exports);
27
29
 
30
+ // src/config/themeVariables.ts
31
+ var themeLight = `
32
+ :host,
33
+ .theme-light {
34
+ color-scheme: light;
35
+
36
+ --sl-color-neutral-50: #fafafa;
37
+ --sl-color-neutral-100: #f4f4f5;
38
+ --sl-color-neutral-200: #e4e4e7;
39
+ --sl-color-neutral-300: #d4d4d8;
40
+ --sl-color-neutral-400: #a1a1aa;
41
+ --sl-color-neutral-500: #71717a;
42
+ --sl-color-neutral-600: #52525b;
43
+ --sl-color-neutral-700: #3f3f46;
44
+ --sl-color-neutral-800: #27272a;
45
+ --sl-color-neutral-900: #18181b;
46
+ --sl-color-neutral-950: #09090b;
47
+
48
+ --sl-color-neutral-0: #ffffff;
49
+ --sl-color-neutral-1000: hsl(0, 0%, 0%);
50
+
51
+ --sl-border-base: var(--be-border-base);
52
+ --sl-border-radius-small: calc(var(--sl-border-base) * 0.1875);
53
+ --sl-border-radius-medium: calc(var(--sl-border-base) * 0.25);
54
+ --sl-border-radius-large: calc(var(--sl-border-base) * 0.5);
55
+ --sl-border-radius-x-large: var(
56
+ --sl-border-base
57
+ );
58
+
59
+ --sl-border-radius-circle: 50%;
60
+ --sl-border-radius-pill: 9999px;
61
+
62
+ --sl-shadow-x-small: 0 1px 2px hsl(240 3.8% 46.1% / 6%);
63
+ --sl-shadow-small: 0 1px 2px hsl(240 3.8% 46.1% / 12%);
64
+ --sl-shadow-medium: 0 2px 4px hsl(240 3.8% 46.1% / 12%);
65
+ --sl-shadow-large: var(
66
+ --be-shadow-large,
67
+ 0 2px 8px hsl(240 3.8% 46.1% / 12%)
68
+ );
69
+ --sl-shadow-x-large: 0 4px 16px hsl(240 3.8% 46.1% / 12%);
70
+
71
+ --sl-spacing-base: var(--be-spacing-base, 1rem);
72
+ --sl-spacing-3x-small: calc(
73
+ var(--sl-spacing-base) * 0.125
74
+ );
75
+ --sl-spacing-2x-small: calc(
76
+ var(--sl-spacing-base) * 0.25
77
+ );
78
+ --sl-spacing-1_5x-small: calc(
79
+ var(--sl-spacing-base) * 0.375
80
+ );
81
+ --sl-spacing-x-small: calc(
82
+ var(--sl-spacing-base) * 0.5
83
+ );
84
+ --sl-spacing-small: calc(
85
+ var(--sl-spacing-base) * 0.75
86
+ );
87
+ --sl-spacing-medium: var(--sl-spacing-base);
88
+ --sl-spacing-large: calc(
89
+ var(--sl-spacing-base) * 1.25
90
+ );
91
+ --sl-spacing-x-large: calc(
92
+ var(--sl-spacing-base) * 1.75
93
+ );
94
+ --sl-spacing-2x-large: calc(
95
+ var(--sl-spacing-base) * 2.25
96
+ );
97
+ --sl-spacing-3x-large: calc(
98
+ var(--sl-spacing-base) * 3
99
+ );
100
+ --sl-spacing-4x-large: calc(
101
+ var(--sl-spacing-base) * 4.5
102
+ );
103
+ --sl-spacing-5x-large: calc(var(--sl-spacing-base) * 5);
104
+
105
+ --indent-size: var(--sl-spacing-large);
106
+
107
+ --sl-font-mono: SFMono-Regular, Consolas, 'Liberation Mono', Menlo,
108
+ monospace;
109
+ --sl-font-sans: var(
110
+ --be-font-sans,
111
+ -apple-system,
112
+ BlinkMacSystemFont,
113
+ 'Segoe UI',
114
+ Roboto,
115
+ Helvetica,
116
+ Arial,
117
+ sans-serif,
118
+ 'Apple Color Emoji',
119
+ 'Segoe UI Emoji',
120
+ 'Segoe UI Symbol'
121
+ );
122
+ --sl-font-serif: var(
123
+ --be-font-serif,
124
+ Georgia,
125
+ 'Times New Roman',
126
+ serif
127
+ );
128
+
129
+ --sl-font-size-base: var(--be-font-size-base, 1rem);
130
+ --sl-font-size-2x-small: calc(var(--sl-font-size-base) * 0.625);
131
+ --sl-font-size-x-small: calc(var(--sl-font-size-base) * 0.75);
132
+ --sl-font-size-small: calc(var(--sl-font-size-base) * 0.875);
133
+ --sl-font-size-medium: var(--sl-font-size-base);
134
+ --sl-font-size-large: calc(var(--sl-font-size-base) * 1.25);
135
+ --sl-font-size-x-large: calc(var(--sl-font-size-base) * 1.5);
136
+ --sl-font-size-2x-large: calc(var(--sl-font-size-base) * 2.25);
137
+ --sl-font-size-3x-large: calc(var(--sl-font-size-base) * 3);
138
+ --sl-font-size-4x-large: calc(var(--sl-font-size-base) * 4.5);
139
+
140
+ --sl-font-weight-light: 300;
141
+ --sl-font-weight-normal: 400;
142
+ --sl-font-weight-semibold: 500;
143
+ --sl-font-weight-bold: 700;
144
+
145
+ --sl-letter-spacing-denser: -0.03em;
146
+ --sl-letter-spacing-dense: -0.015em;
147
+ --sl-letter-spacing-normal: normal;
148
+ --sl-letter-spacing-loose: 0.075em;
149
+ --sl-letter-spacing-looser: 0.15em;
150
+
151
+ --sl-line-height-base: 1;
152
+ --sl-line-height-x-denser: calc(var(--sl-line-height-base) * 1.1);
153
+ --sl-line-height-denser: calc(var(--sl-line-height-base) * 1.2);
154
+ --sl-line-height-dense: calc(var(--sl-line-height-base) * 1.4);
155
+ --sl-line-height-subnormal: calc(var(--sl-line-height-base) * 1.6);
156
+ --sl-line-height-normal: calc(var(--sl-line-height-base) * 1.8);
157
+ --sl-line-height-loose: calc(var(--sl-line-height-base) * 2.2);
158
+ --sl-line-height-looser: calc(var(--sl-line-height-base) * 2.6);
159
+
160
+ --td-editor-text-color-blue: hsl(221, 100%, 50%);
161
+ --td-editor-text-color-purple: hsl(291, 100%, 39%);
162
+ --td-editor-text-color-red: hsl(4, 100%, 40%);
163
+ --td-editor-text-color-green: hsl(122, 100%, 23%);
164
+
165
+ --td-editor-bg-color-blue: hsl(221, 100%, 50%, 0.1);
166
+ --td-editor-bg-color-purple: hsl(291, 100%, 39%, 0.1);
167
+ --td-editor-bg-color-red: hsl(4, 100%, 40%, 0.1);
168
+ --td-editor-bg-color-green: hsl(122, 100%, 23%, 0.1);
169
+ }
170
+ `;
171
+ var themeDark = `
172
+ :host,
173
+ .theme-dark {
174
+ color-scheme: dark;
175
+
176
+ --sl-color-neutral-950: #fafafa;
177
+ --sl-color-neutral-900: #f4f4f5;
178
+ --sl-color-neutral-800: #e4e4e7;
179
+ --sl-color-neutral-700: #d4d4d8;
180
+ --sl-color-neutral-600: #a1a1aa;
181
+ --sl-color-neutral-500: #71717a;
182
+ --sl-color-neutral-400: #71717a;
183
+ --sl-color-neutral-300: #52525b;
184
+ --sl-color-neutral-200: #3f3f46;
185
+ --sl-color-neutral-100: #27272a;
186
+ --sl-color-neutral-50: #18181b;
187
+ --sl-color-neutral-0: #09090b;
188
+ --sl-color-neutral-1000: hsl(0, 0%, 100%);
189
+
190
+ --sl-border-base: var(--be-border-base);
191
+ --sl-border-radius-small: calc(var(--sl-border-base) * 0.1875);
192
+ --sl-border-radius-medium: calc(var(--sl-border-base) * 0.25);
193
+ --sl-border-radius-large: calc(var(--sl-border-base) * 0.5);
194
+ --sl-border-radius-x-large: var(
195
+ --sl-border-base
196
+ );
197
+
198
+ --sl-border-radius-circle: 50%;
199
+ --sl-border-radius-pill: 9999px;
200
+
201
+ --sl-shadow-x-small: 0 1px 2px rgb(0 0 0 / 18%);
202
+ --sl-shadow-small: 0 1px 2px rgb(0 0 0 / 24%);
203
+ --sl-shadow-medium: 0 2px 4px rgb(0 0 0 / 24%);
204
+ --sl-shadow-large: var(
205
+ --be-shadow-large,
206
+ 0 2px 8px rgb(0 0 0 / 24%)
207
+ );
208
+ --sl-shadow-x-large: 0 4px 16px rgb(0 0 0 / 24%);
209
+
210
+ --sl-spacing-base: var(--be-spacing-base, 1rem);
211
+ --sl-spacing-3x-small: calc(
212
+ var(--sl-spacing-base) * 0.125
213
+ );
214
+ --sl-spacing-2x-small: calc(
215
+ var(--sl-spacing-base) * 0.25
216
+ );
217
+ --sl-spacing-1_5x-small: calc(
218
+ var(--sl-spacing-base) * 0.375
219
+ );
220
+ --sl-spacing-x-small: calc(
221
+ var(--sl-spacing-base) * 0.5
222
+ );
223
+ --sl-spacing-small: calc(
224
+ var(--sl-spacing-base) * 0.75
225
+ );
226
+ --sl-spacing-medium: var(--sl-spacing-base);
227
+ --sl-spacing-large: calc(
228
+ var(--sl-spacing-base) * 1.25
229
+ );
230
+ --sl-spacing-x-large: calc(
231
+ var(--sl-spacing-base) * 1.75
232
+ );
233
+ --sl-spacing-2x-large: calc(
234
+ var(--sl-spacing-base) * 2.25
235
+ );
236
+ --sl-spacing-3x-large: calc(
237
+ var(--sl-spacing-base) * 3
238
+ );
239
+ --sl-spacing-4x-large: calc(
240
+ var(--sl-spacing-base) * 4.5
241
+ );
242
+ --sl-spacing-5x-large: calc(var(--sl-spacing-base) * 5);
243
+
244
+ --indent-size: var(--sl-spacing-large);
245
+
246
+ --sl-transition-x-slow: 1000ms;
247
+ --sl-transition-slow: 500ms;
248
+ --sl-transition-medium: 250ms;
249
+ --sl-transition-fast: 150ms;
250
+ --sl-transition-x-fast: 50ms;
251
+
252
+ --sl-font-mono: var(
253
+ --be-font-mono,
254
+ SFMono-Regular,
255
+ Consolas,
256
+ 'Liberation Mono',
257
+ Menlo,
258
+ monospace
259
+ );
260
+ --sl-font-sans: var(
261
+ --be-font-sans,
262
+ -apple-system,
263
+ BlinkMacSystemFont,
264
+ 'Segoe UI',
265
+ Roboto,
266
+ Helvetica,
267
+ Arial,
268
+ sans-serif,
269
+ 'Apple Color Emoji',
270
+ 'Segoe UI Emoji',
271
+ 'Segoe UI Symbol'
272
+ );
273
+ --sl-font-serif: var(
274
+ --be-font-serif,
275
+ Georgia,
276
+ 'Times New Roman',
277
+ serif
278
+ );
279
+
280
+ --sl-font-size-base: var(--be-font-size-base, 1rem);
281
+ --sl-font-size-2x-small: calc(var(--sl-font-size-base) * 0.625);
282
+ --sl-font-size-x-small: calc(var(--sl-font-size-base) * 0.75);
283
+ --sl-font-size-small: calc(var(--sl-font-size-base) * 0.875);
284
+ --sl-font-size-medium: var(--sl-font-size-base);
285
+ --sl-font-size-large: calc(var(--sl-font-size-base) * 1.25);
286
+ --sl-font-size-x-large: calc(var(--sl-font-size-base) * 1.5);
287
+ --sl-font-size-2x-large: calc(var(--sl-font-size-base) * 2.25);
288
+ --sl-font-size-3x-large: calc(var(--sl-font-size-base) * 3);
289
+ --sl-font-size-4x-large: calc(var(--sl-font-size-base) * 4.5);
290
+
291
+ --sl-font-weight-light: 300;
292
+ --sl-font-weight-normal: 400;
293
+ --sl-font-weight-semibold: 500;
294
+ --sl-font-weight-bold: 700;
295
+
296
+ --sl-letter-spacing-denser: -0.03em;
297
+ --sl-letter-spacing-dense: -0.015em;
298
+ --sl-letter-spacing-normal: normal;
299
+ --sl-letter-spacing-loose: 0.075em;
300
+ --sl-letter-spacing-looser: 0.15em;
301
+
302
+ --sl-line-height-base: 1;
303
+ --sl-line-height-x-denser: calc(var(--sl-line-height-base) * 1.1);
304
+ --sl-line-height-denser: calc(var(--sl-line-height-base) * 1.2);
305
+ --sl-line-height-dense: calc(var(--sl-line-height-base) * 1.4);
306
+ --sl-line-height-subnormal: calc(var(--sl-line-height-base) * 1.6);
307
+ --sl-line-height-normal: calc(var(--sl-line-height-base) * 1.8);
308
+ --sl-line-height-loose: calc(var(--sl-line-height-base) * 2.2);
309
+ --sl-line-height-looser: calc(var(--sl-line-height-base) * 2.6);
310
+
311
+ --td-editor-text-color-blue: hsl(221, 100%, 70%);
312
+ --td-editor-text-color-purple: hsl(291, 100%, 65%);
313
+ --td-editor-text-color-red: hsl(4, 100%, 63%);
314
+ --td-editor-text-color-green: hsl(122, 100%, 34%);
315
+
316
+ --td-editor-bg-color-blue: hsl(221, 100%, 70%, 0.2);
317
+ --td-editor-bg-color-purple: hsl(291, 100%, 65%, 0.2);
318
+ --td-editor-bg-color-red: hsl(4, 100%, 63%, 0.2);
319
+ --td-editor-bg-color-green: hsl(122, 100%, 34%, 0.2);
320
+ }
321
+ `;
322
+
28
323
  // src/utils/NodeHandlerChainBuilder.ts
29
324
  var NodeHandlerChainBuilder = class {
30
325
  constructor() {
@@ -336,7 +631,7 @@ var ImageNodeHandler = class extends NodeHandler {
336
631
 
337
632
  // src/typeGuards/isSerializedJournalEntryQuestionNode.ts
338
633
  function isSerializedJournalEntryQuestionNode(node) {
339
- return node?.type === "journal-entry-question" && "id" in node && typeof node.id === "string" && "points" in node && typeof node.points === "number" && "journalType" in node && typeof node.journalType === "string" && "lineItems" in node && Array.isArray(node.lineItems);
634
+ return node?.type === "journal-entry-question" && "id" in node && typeof node.id === "string" && "points" in node && typeof node.points === "number" && "lineItems" in node && Array.isArray(node.lineItems);
340
635
  }
341
636
 
342
637
  // src/exportToHtml/createHtmlFromOnePerLineDistractorNodes.ts
@@ -368,24 +663,9 @@ var JournalEntryQuestionNodeHandler = class extends NodeHandler {
368
663
  `data-x-error-tolerance="${journalNode.errorTolerance}"`
369
664
  );
370
665
  }
371
- switch (journalNode.journalType) {
372
- case "default":
373
- attributes.push('data-x-no-entry-required-correct="false"');
374
- attributes.push(
375
- 'data-x-no-entry-required-distractor="false"'
376
- );
377
- break;
378
- case "noEntryRequiredCorrect":
379
- attributes.push('data-x-no-entry-required-correct="true"');
380
- attributes.push(
381
- 'data-x-no-entry-required-distractor="false"'
382
- );
383
- break;
384
- case "noEntryRequiredDistractor":
385
- attributes.push('data-x-no-entry-required-correct="false"');
386
- attributes.push('data-x-no-entry-required-distractor="true"');
387
- break;
388
- }
666
+ attributes.push(
667
+ `data-x-no-entry-required-correct="${journalNode.noEntryRequired}"`
668
+ );
389
669
  const lineItems = this.processLineItems(journalNode);
390
670
  const distractors = this.processDistractors(journalNode);
391
671
  return `<x-journal-entry ${attributes.join(" ")}>${lineItems}${distractors}</x-journal-entry>`;
@@ -1563,13 +1843,10 @@ var JournalEntryQuestionNodeHandler2 = class extends NodeHandler2 {
1563
1843
  processNode(node) {
1564
1844
  if (!(node instanceof import_node_html_parser11.HTMLElement) || node.tagName !== "x-journal-entry".toUpperCase())
1565
1845
  return null;
1566
- const noEntryRequiredCorrect = node.getAttribute("data-x-no-entry-required-correct") === "true";
1567
- const noEntryRequiredDistractor = node.getAttribute("data-x-no-entry-required-distractor") === "true";
1568
- const journalType = noEntryRequiredCorrect ? "noEntryRequiredCorrect" : noEntryRequiredDistractor ? "noEntryRequiredDistractor" : "default";
1569
1846
  const jsonNode = {
1570
1847
  id: node.getAttribute("id") ?? (0, import_nanoid6.nanoid)(),
1571
1848
  points: Number(node.getAttribute("data-x-points") ?? 1),
1572
- journalType,
1849
+ noEntryRequired: node.getAttribute("data-x-no-entry-required-correct") === "true",
1573
1850
  errorTolerance: node.getAttribute("data-x-error-tolerance") ? Number(node.getAttribute("data-x-error-tolerance")) : void 0,
1574
1851
  lineItems: [],
1575
1852
  type: "journal-entry-question",
@@ -1932,24 +2209,26 @@ var SpanNodeHandler = class extends NodeHandler2 {
1932
2209
  return this.createTextNode(node.text, styleAttr);
1933
2210
  }
1934
2211
  const results = [];
1935
- const textNodes = [];
2212
+ let currentTextNodes = [];
1936
2213
  for (const childNode of node.childNodes) {
1937
- for (const child of traverse2(childNode)) {
2214
+ const processedNodes = traverse2(childNode);
2215
+ for (const child of processedNodes) {
1938
2216
  if (child.type === "text") {
1939
- const textNode = child;
1940
- textNodes.push(textNode);
2217
+ currentTextNodes.push(child);
1941
2218
  } else {
2219
+ if (currentTextNodes.length > 0) {
2220
+ results.push(
2221
+ this.mergeTextNodes(currentTextNodes, styleAttr)
2222
+ );
2223
+ currentTextNodes = [];
2224
+ }
1942
2225
  results.push(child);
1943
2226
  }
1944
2227
  }
1945
2228
  }
1946
- if (textNodes.length > 0) {
1947
- const mergedTextNode = this.mergeTextNodes(
1948
- textNodes,
1949
- styleAttr
1950
- );
1951
- results.push(mergedTextNode);
1952
- } else if (node.text.trim()) {
2229
+ if (currentTextNodes.length > 0) {
2230
+ results.push(this.mergeTextNodes(currentTextNodes, styleAttr));
2231
+ } else if (node.text.trim() && results.length === 0) {
1953
2232
  results.push(this.createTextNode(node.text, styleAttr));
1954
2233
  }
1955
2234
  return results;
@@ -2336,5 +2615,7 @@ function importFromHtml(html) {
2336
2615
  // Annotate the CommonJS export names for ESM import in node:
2337
2616
  0 && (module.exports = {
2338
2617
  exportToHtml,
2339
- importFromHtml
2618
+ importFromHtml,
2619
+ themeDark,
2620
+ themeLight
2340
2621
  });
package/dist/index.mjs CHANGED
@@ -1,3 +1,296 @@
1
+ // src/config/themeVariables.ts
2
+ var themeLight = `
3
+ :host,
4
+ .theme-light {
5
+ color-scheme: light;
6
+
7
+ --sl-color-neutral-50: #fafafa;
8
+ --sl-color-neutral-100: #f4f4f5;
9
+ --sl-color-neutral-200: #e4e4e7;
10
+ --sl-color-neutral-300: #d4d4d8;
11
+ --sl-color-neutral-400: #a1a1aa;
12
+ --sl-color-neutral-500: #71717a;
13
+ --sl-color-neutral-600: #52525b;
14
+ --sl-color-neutral-700: #3f3f46;
15
+ --sl-color-neutral-800: #27272a;
16
+ --sl-color-neutral-900: #18181b;
17
+ --sl-color-neutral-950: #09090b;
18
+
19
+ --sl-color-neutral-0: #ffffff;
20
+ --sl-color-neutral-1000: hsl(0, 0%, 0%);
21
+
22
+ --sl-border-base: var(--be-border-base);
23
+ --sl-border-radius-small: calc(var(--sl-border-base) * 0.1875);
24
+ --sl-border-radius-medium: calc(var(--sl-border-base) * 0.25);
25
+ --sl-border-radius-large: calc(var(--sl-border-base) * 0.5);
26
+ --sl-border-radius-x-large: var(
27
+ --sl-border-base
28
+ );
29
+
30
+ --sl-border-radius-circle: 50%;
31
+ --sl-border-radius-pill: 9999px;
32
+
33
+ --sl-shadow-x-small: 0 1px 2px hsl(240 3.8% 46.1% / 6%);
34
+ --sl-shadow-small: 0 1px 2px hsl(240 3.8% 46.1% / 12%);
35
+ --sl-shadow-medium: 0 2px 4px hsl(240 3.8% 46.1% / 12%);
36
+ --sl-shadow-large: var(
37
+ --be-shadow-large,
38
+ 0 2px 8px hsl(240 3.8% 46.1% / 12%)
39
+ );
40
+ --sl-shadow-x-large: 0 4px 16px hsl(240 3.8% 46.1% / 12%);
41
+
42
+ --sl-spacing-base: var(--be-spacing-base, 1rem);
43
+ --sl-spacing-3x-small: calc(
44
+ var(--sl-spacing-base) * 0.125
45
+ );
46
+ --sl-spacing-2x-small: calc(
47
+ var(--sl-spacing-base) * 0.25
48
+ );
49
+ --sl-spacing-1_5x-small: calc(
50
+ var(--sl-spacing-base) * 0.375
51
+ );
52
+ --sl-spacing-x-small: calc(
53
+ var(--sl-spacing-base) * 0.5
54
+ );
55
+ --sl-spacing-small: calc(
56
+ var(--sl-spacing-base) * 0.75
57
+ );
58
+ --sl-spacing-medium: var(--sl-spacing-base);
59
+ --sl-spacing-large: calc(
60
+ var(--sl-spacing-base) * 1.25
61
+ );
62
+ --sl-spacing-x-large: calc(
63
+ var(--sl-spacing-base) * 1.75
64
+ );
65
+ --sl-spacing-2x-large: calc(
66
+ var(--sl-spacing-base) * 2.25
67
+ );
68
+ --sl-spacing-3x-large: calc(
69
+ var(--sl-spacing-base) * 3
70
+ );
71
+ --sl-spacing-4x-large: calc(
72
+ var(--sl-spacing-base) * 4.5
73
+ );
74
+ --sl-spacing-5x-large: calc(var(--sl-spacing-base) * 5);
75
+
76
+ --indent-size: var(--sl-spacing-large);
77
+
78
+ --sl-font-mono: SFMono-Regular, Consolas, 'Liberation Mono', Menlo,
79
+ monospace;
80
+ --sl-font-sans: var(
81
+ --be-font-sans,
82
+ -apple-system,
83
+ BlinkMacSystemFont,
84
+ 'Segoe UI',
85
+ Roboto,
86
+ Helvetica,
87
+ Arial,
88
+ sans-serif,
89
+ 'Apple Color Emoji',
90
+ 'Segoe UI Emoji',
91
+ 'Segoe UI Symbol'
92
+ );
93
+ --sl-font-serif: var(
94
+ --be-font-serif,
95
+ Georgia,
96
+ 'Times New Roman',
97
+ serif
98
+ );
99
+
100
+ --sl-font-size-base: var(--be-font-size-base, 1rem);
101
+ --sl-font-size-2x-small: calc(var(--sl-font-size-base) * 0.625);
102
+ --sl-font-size-x-small: calc(var(--sl-font-size-base) * 0.75);
103
+ --sl-font-size-small: calc(var(--sl-font-size-base) * 0.875);
104
+ --sl-font-size-medium: var(--sl-font-size-base);
105
+ --sl-font-size-large: calc(var(--sl-font-size-base) * 1.25);
106
+ --sl-font-size-x-large: calc(var(--sl-font-size-base) * 1.5);
107
+ --sl-font-size-2x-large: calc(var(--sl-font-size-base) * 2.25);
108
+ --sl-font-size-3x-large: calc(var(--sl-font-size-base) * 3);
109
+ --sl-font-size-4x-large: calc(var(--sl-font-size-base) * 4.5);
110
+
111
+ --sl-font-weight-light: 300;
112
+ --sl-font-weight-normal: 400;
113
+ --sl-font-weight-semibold: 500;
114
+ --sl-font-weight-bold: 700;
115
+
116
+ --sl-letter-spacing-denser: -0.03em;
117
+ --sl-letter-spacing-dense: -0.015em;
118
+ --sl-letter-spacing-normal: normal;
119
+ --sl-letter-spacing-loose: 0.075em;
120
+ --sl-letter-spacing-looser: 0.15em;
121
+
122
+ --sl-line-height-base: 1;
123
+ --sl-line-height-x-denser: calc(var(--sl-line-height-base) * 1.1);
124
+ --sl-line-height-denser: calc(var(--sl-line-height-base) * 1.2);
125
+ --sl-line-height-dense: calc(var(--sl-line-height-base) * 1.4);
126
+ --sl-line-height-subnormal: calc(var(--sl-line-height-base) * 1.6);
127
+ --sl-line-height-normal: calc(var(--sl-line-height-base) * 1.8);
128
+ --sl-line-height-loose: calc(var(--sl-line-height-base) * 2.2);
129
+ --sl-line-height-looser: calc(var(--sl-line-height-base) * 2.6);
130
+
131
+ --td-editor-text-color-blue: hsl(221, 100%, 50%);
132
+ --td-editor-text-color-purple: hsl(291, 100%, 39%);
133
+ --td-editor-text-color-red: hsl(4, 100%, 40%);
134
+ --td-editor-text-color-green: hsl(122, 100%, 23%);
135
+
136
+ --td-editor-bg-color-blue: hsl(221, 100%, 50%, 0.1);
137
+ --td-editor-bg-color-purple: hsl(291, 100%, 39%, 0.1);
138
+ --td-editor-bg-color-red: hsl(4, 100%, 40%, 0.1);
139
+ --td-editor-bg-color-green: hsl(122, 100%, 23%, 0.1);
140
+ }
141
+ `;
142
+ var themeDark = `
143
+ :host,
144
+ .theme-dark {
145
+ color-scheme: dark;
146
+
147
+ --sl-color-neutral-950: #fafafa;
148
+ --sl-color-neutral-900: #f4f4f5;
149
+ --sl-color-neutral-800: #e4e4e7;
150
+ --sl-color-neutral-700: #d4d4d8;
151
+ --sl-color-neutral-600: #a1a1aa;
152
+ --sl-color-neutral-500: #71717a;
153
+ --sl-color-neutral-400: #71717a;
154
+ --sl-color-neutral-300: #52525b;
155
+ --sl-color-neutral-200: #3f3f46;
156
+ --sl-color-neutral-100: #27272a;
157
+ --sl-color-neutral-50: #18181b;
158
+ --sl-color-neutral-0: #09090b;
159
+ --sl-color-neutral-1000: hsl(0, 0%, 100%);
160
+
161
+ --sl-border-base: var(--be-border-base);
162
+ --sl-border-radius-small: calc(var(--sl-border-base) * 0.1875);
163
+ --sl-border-radius-medium: calc(var(--sl-border-base) * 0.25);
164
+ --sl-border-radius-large: calc(var(--sl-border-base) * 0.5);
165
+ --sl-border-radius-x-large: var(
166
+ --sl-border-base
167
+ );
168
+
169
+ --sl-border-radius-circle: 50%;
170
+ --sl-border-radius-pill: 9999px;
171
+
172
+ --sl-shadow-x-small: 0 1px 2px rgb(0 0 0 / 18%);
173
+ --sl-shadow-small: 0 1px 2px rgb(0 0 0 / 24%);
174
+ --sl-shadow-medium: 0 2px 4px rgb(0 0 0 / 24%);
175
+ --sl-shadow-large: var(
176
+ --be-shadow-large,
177
+ 0 2px 8px rgb(0 0 0 / 24%)
178
+ );
179
+ --sl-shadow-x-large: 0 4px 16px rgb(0 0 0 / 24%);
180
+
181
+ --sl-spacing-base: var(--be-spacing-base, 1rem);
182
+ --sl-spacing-3x-small: calc(
183
+ var(--sl-spacing-base) * 0.125
184
+ );
185
+ --sl-spacing-2x-small: calc(
186
+ var(--sl-spacing-base) * 0.25
187
+ );
188
+ --sl-spacing-1_5x-small: calc(
189
+ var(--sl-spacing-base) * 0.375
190
+ );
191
+ --sl-spacing-x-small: calc(
192
+ var(--sl-spacing-base) * 0.5
193
+ );
194
+ --sl-spacing-small: calc(
195
+ var(--sl-spacing-base) * 0.75
196
+ );
197
+ --sl-spacing-medium: var(--sl-spacing-base);
198
+ --sl-spacing-large: calc(
199
+ var(--sl-spacing-base) * 1.25
200
+ );
201
+ --sl-spacing-x-large: calc(
202
+ var(--sl-spacing-base) * 1.75
203
+ );
204
+ --sl-spacing-2x-large: calc(
205
+ var(--sl-spacing-base) * 2.25
206
+ );
207
+ --sl-spacing-3x-large: calc(
208
+ var(--sl-spacing-base) * 3
209
+ );
210
+ --sl-spacing-4x-large: calc(
211
+ var(--sl-spacing-base) * 4.5
212
+ );
213
+ --sl-spacing-5x-large: calc(var(--sl-spacing-base) * 5);
214
+
215
+ --indent-size: var(--sl-spacing-large);
216
+
217
+ --sl-transition-x-slow: 1000ms;
218
+ --sl-transition-slow: 500ms;
219
+ --sl-transition-medium: 250ms;
220
+ --sl-transition-fast: 150ms;
221
+ --sl-transition-x-fast: 50ms;
222
+
223
+ --sl-font-mono: var(
224
+ --be-font-mono,
225
+ SFMono-Regular,
226
+ Consolas,
227
+ 'Liberation Mono',
228
+ Menlo,
229
+ monospace
230
+ );
231
+ --sl-font-sans: var(
232
+ --be-font-sans,
233
+ -apple-system,
234
+ BlinkMacSystemFont,
235
+ 'Segoe UI',
236
+ Roboto,
237
+ Helvetica,
238
+ Arial,
239
+ sans-serif,
240
+ 'Apple Color Emoji',
241
+ 'Segoe UI Emoji',
242
+ 'Segoe UI Symbol'
243
+ );
244
+ --sl-font-serif: var(
245
+ --be-font-serif,
246
+ Georgia,
247
+ 'Times New Roman',
248
+ serif
249
+ );
250
+
251
+ --sl-font-size-base: var(--be-font-size-base, 1rem);
252
+ --sl-font-size-2x-small: calc(var(--sl-font-size-base) * 0.625);
253
+ --sl-font-size-x-small: calc(var(--sl-font-size-base) * 0.75);
254
+ --sl-font-size-small: calc(var(--sl-font-size-base) * 0.875);
255
+ --sl-font-size-medium: var(--sl-font-size-base);
256
+ --sl-font-size-large: calc(var(--sl-font-size-base) * 1.25);
257
+ --sl-font-size-x-large: calc(var(--sl-font-size-base) * 1.5);
258
+ --sl-font-size-2x-large: calc(var(--sl-font-size-base) * 2.25);
259
+ --sl-font-size-3x-large: calc(var(--sl-font-size-base) * 3);
260
+ --sl-font-size-4x-large: calc(var(--sl-font-size-base) * 4.5);
261
+
262
+ --sl-font-weight-light: 300;
263
+ --sl-font-weight-normal: 400;
264
+ --sl-font-weight-semibold: 500;
265
+ --sl-font-weight-bold: 700;
266
+
267
+ --sl-letter-spacing-denser: -0.03em;
268
+ --sl-letter-spacing-dense: -0.015em;
269
+ --sl-letter-spacing-normal: normal;
270
+ --sl-letter-spacing-loose: 0.075em;
271
+ --sl-letter-spacing-looser: 0.15em;
272
+
273
+ --sl-line-height-base: 1;
274
+ --sl-line-height-x-denser: calc(var(--sl-line-height-base) * 1.1);
275
+ --sl-line-height-denser: calc(var(--sl-line-height-base) * 1.2);
276
+ --sl-line-height-dense: calc(var(--sl-line-height-base) * 1.4);
277
+ --sl-line-height-subnormal: calc(var(--sl-line-height-base) * 1.6);
278
+ --sl-line-height-normal: calc(var(--sl-line-height-base) * 1.8);
279
+ --sl-line-height-loose: calc(var(--sl-line-height-base) * 2.2);
280
+ --sl-line-height-looser: calc(var(--sl-line-height-base) * 2.6);
281
+
282
+ --td-editor-text-color-blue: hsl(221, 100%, 70%);
283
+ --td-editor-text-color-purple: hsl(291, 100%, 65%);
284
+ --td-editor-text-color-red: hsl(4, 100%, 63%);
285
+ --td-editor-text-color-green: hsl(122, 100%, 34%);
286
+
287
+ --td-editor-bg-color-blue: hsl(221, 100%, 70%, 0.2);
288
+ --td-editor-bg-color-purple: hsl(291, 100%, 65%, 0.2);
289
+ --td-editor-bg-color-red: hsl(4, 100%, 63%, 0.2);
290
+ --td-editor-bg-color-green: hsl(122, 100%, 34%, 0.2);
291
+ }
292
+ `;
293
+
1
294
  // src/utils/NodeHandlerChainBuilder.ts
2
295
  var NodeHandlerChainBuilder = class {
3
296
  constructor() {
@@ -309,7 +602,7 @@ var ImageNodeHandler = class extends NodeHandler {
309
602
 
310
603
  // src/typeGuards/isSerializedJournalEntryQuestionNode.ts
311
604
  function isSerializedJournalEntryQuestionNode(node) {
312
- return node?.type === "journal-entry-question" && "id" in node && typeof node.id === "string" && "points" in node && typeof node.points === "number" && "journalType" in node && typeof node.journalType === "string" && "lineItems" in node && Array.isArray(node.lineItems);
605
+ return node?.type === "journal-entry-question" && "id" in node && typeof node.id === "string" && "points" in node && typeof node.points === "number" && "lineItems" in node && Array.isArray(node.lineItems);
313
606
  }
314
607
 
315
608
  // src/exportToHtml/createHtmlFromOnePerLineDistractorNodes.ts
@@ -341,24 +634,9 @@ var JournalEntryQuestionNodeHandler = class extends NodeHandler {
341
634
  `data-x-error-tolerance="${journalNode.errorTolerance}"`
342
635
  );
343
636
  }
344
- switch (journalNode.journalType) {
345
- case "default":
346
- attributes.push('data-x-no-entry-required-correct="false"');
347
- attributes.push(
348
- 'data-x-no-entry-required-distractor="false"'
349
- );
350
- break;
351
- case "noEntryRequiredCorrect":
352
- attributes.push('data-x-no-entry-required-correct="true"');
353
- attributes.push(
354
- 'data-x-no-entry-required-distractor="false"'
355
- );
356
- break;
357
- case "noEntryRequiredDistractor":
358
- attributes.push('data-x-no-entry-required-correct="false"');
359
- attributes.push('data-x-no-entry-required-distractor="true"');
360
- break;
361
- }
637
+ attributes.push(
638
+ `data-x-no-entry-required-correct="${journalNode.noEntryRequired}"`
639
+ );
362
640
  const lineItems = this.processLineItems(journalNode);
363
641
  const distractors = this.processDistractors(journalNode);
364
642
  return `<x-journal-entry ${attributes.join(" ")}>${lineItems}${distractors}</x-journal-entry>`;
@@ -1536,13 +1814,10 @@ var JournalEntryQuestionNodeHandler2 = class extends NodeHandler2 {
1536
1814
  processNode(node) {
1537
1815
  if (!(node instanceof HTMLElement11) || node.tagName !== "x-journal-entry".toUpperCase())
1538
1816
  return null;
1539
- const noEntryRequiredCorrect = node.getAttribute("data-x-no-entry-required-correct") === "true";
1540
- const noEntryRequiredDistractor = node.getAttribute("data-x-no-entry-required-distractor") === "true";
1541
- const journalType = noEntryRequiredCorrect ? "noEntryRequiredCorrect" : noEntryRequiredDistractor ? "noEntryRequiredDistractor" : "default";
1542
1817
  const jsonNode = {
1543
1818
  id: node.getAttribute("id") ?? nanoid6(),
1544
1819
  points: Number(node.getAttribute("data-x-points") ?? 1),
1545
- journalType,
1820
+ noEntryRequired: node.getAttribute("data-x-no-entry-required-correct") === "true",
1546
1821
  errorTolerance: node.getAttribute("data-x-error-tolerance") ? Number(node.getAttribute("data-x-error-tolerance")) : void 0,
1547
1822
  lineItems: [],
1548
1823
  type: "journal-entry-question",
@@ -1905,24 +2180,26 @@ var SpanNodeHandler = class extends NodeHandler2 {
1905
2180
  return this.createTextNode(node.text, styleAttr);
1906
2181
  }
1907
2182
  const results = [];
1908
- const textNodes = [];
2183
+ let currentTextNodes = [];
1909
2184
  for (const childNode of node.childNodes) {
1910
- for (const child of traverse2(childNode)) {
2185
+ const processedNodes = traverse2(childNode);
2186
+ for (const child of processedNodes) {
1911
2187
  if (child.type === "text") {
1912
- const textNode = child;
1913
- textNodes.push(textNode);
2188
+ currentTextNodes.push(child);
1914
2189
  } else {
2190
+ if (currentTextNodes.length > 0) {
2191
+ results.push(
2192
+ this.mergeTextNodes(currentTextNodes, styleAttr)
2193
+ );
2194
+ currentTextNodes = [];
2195
+ }
1915
2196
  results.push(child);
1916
2197
  }
1917
2198
  }
1918
2199
  }
1919
- if (textNodes.length > 0) {
1920
- const mergedTextNode = this.mergeTextNodes(
1921
- textNodes,
1922
- styleAttr
1923
- );
1924
- results.push(mergedTextNode);
1925
- } else if (node.text.trim()) {
2200
+ if (currentTextNodes.length > 0) {
2201
+ results.push(this.mergeTextNodes(currentTextNodes, styleAttr));
2202
+ } else if (node.text.trim() && results.length === 0) {
1926
2203
  results.push(this.createTextNode(node.text, styleAttr));
1927
2204
  }
1928
2205
  return results;
@@ -2308,5 +2585,7 @@ function importFromHtml(html) {
2308
2585
  }
2309
2586
  export {
2310
2587
  exportToHtml,
2311
- importFromHtml
2588
+ importFromHtml,
2589
+ themeDark,
2590
+ themeLight
2312
2591
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@examind/block-sdk",
3
- "version": "0.1.24",
3
+ "version": "0.1.27",
4
4
  "@comment version": [
5
5
  "Don't specify package version here. It will be injected by publish workflow."
6
6
  ],
@@ -21,7 +21,7 @@
21
21
  "peerDependencies": {
22
22
  "nanoid": ">=3.0.0",
23
23
  "node-html-parser": ">=6.0.0",
24
- "@examind/block-types": "^0.1.24"
24
+ "@examind/block-types": "^0.1.27"
25
25
  },
26
26
  "devDependencies": {
27
27
  "@eslint/js": "^9.17.0",
@@ -36,7 +36,7 @@
36
36
  "tsup": "^8.3.5",
37
37
  "typescript": "^5.7.2",
38
38
  "typescript-eslint": "^8.18.2",
39
- "@examind/block-types": "0.1.24"
39
+ "@examind/block-types": "0.1.27"
40
40
  },
41
41
  "dependencies": {
42
42
  "lodash-es": "4.17.21"