@examind/block-sdk 0.1.25 → 0.1.28

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() {
@@ -139,6 +434,11 @@ function isSerializedFillInTheBlankSpaceNode(node) {
139
434
  return node?.type === "space" && "id" in node && typeof node.id === "string" && "spaceName" in node && typeof node.spaceName === "string" && "matches" in node && typeof node.matches === "string" && "spaceType" in node;
140
435
  }
141
436
 
437
+ // src/exportToHtml/serializeErrorToleranceAttribute.ts
438
+ function serializeErrorToleranceAttribute(errorTolerance) {
439
+ return (errorTolerance ?? 0) / 100;
440
+ }
441
+
142
442
  // src/exportToHtml/FillInTheBlankSpaceNodeHandler.ts
143
443
  var FillInTheBlankSpaceNodeHandler = class extends NodeHandler {
144
444
  processNode(node) {
@@ -156,7 +456,7 @@ var FillInTheBlankSpaceNodeHandler = class extends NodeHandler {
156
456
  `data-x-case-sensitive="${!!node.caseSensitive}"`,
157
457
  `data-x-errors-allowed="${node.errorsAllowed ?? 0}"`,
158
458
  `data-x-min-decimals="${node.minDecimals ?? ""}"`,
159
- `data-x-error-tolerance="${(node.errorTolerance ?? 0) / 100}"`,
459
+ `data-x-error-tolerance="${serializeErrorToleranceAttribute(node.errorTolerance)}"`,
160
460
  // Divide by 100 to convert percentage to rate
161
461
  `data-x-distractors="${node.distractors ?? ""}"`
162
462
  ];
@@ -336,7 +636,7 @@ var ImageNodeHandler = class extends NodeHandler {
336
636
 
337
637
  // src/typeGuards/isSerializedJournalEntryQuestionNode.ts
338
638
  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);
639
+ 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
640
  }
341
641
 
342
642
  // src/exportToHtml/createHtmlFromOnePerLineDistractorNodes.ts
@@ -365,27 +665,12 @@ var JournalEntryQuestionNodeHandler = class extends NodeHandler {
365
665
  ];
366
666
  if (journalNode.errorTolerance !== void 0) {
367
667
  attributes.push(
368
- `data-x-error-tolerance="${journalNode.errorTolerance}"`
668
+ `data-x-error-tolerance="${serializeErrorToleranceAttribute(journalNode.errorTolerance)}"`
369
669
  );
370
670
  }
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
- }
671
+ attributes.push(
672
+ `data-x-no-entry-required-correct="${journalNode.noEntryRequired}"`
673
+ );
389
674
  const lineItems = this.processLineItems(journalNode);
390
675
  const distractors = this.processDistractors(journalNode);
391
676
  return `<x-journal-entry ${attributes.join(" ")}>${lineItems}${distractors}</x-journal-entry>`;
@@ -1245,6 +1530,15 @@ var FillInTheBlankQuestionNodeHandler2 = class extends NodeHandler2 {
1245
1530
  // src/importFromHtml/FillInTheBlankSpaceNodeHandler.ts
1246
1531
  var import_nanoid3 = require("nanoid");
1247
1532
  var import_node_html_parser5 = require("node-html-parser");
1533
+
1534
+ // src/importFromHtml/parseErrorToleranceAttribute.ts
1535
+ function parseErrorToleranceAttribute(attr) {
1536
+ const value = Number(attr);
1537
+ if (isNaN(value)) return 0;
1538
+ else return value * 100;
1539
+ }
1540
+
1541
+ // src/importFromHtml/FillInTheBlankSpaceNodeHandler.ts
1248
1542
  var FillInTheBlankSpaceNodeHandler2 = class extends NodeHandler2 {
1249
1543
  processNode(node) {
1250
1544
  if (!(node instanceof import_node_html_parser5.HTMLElement) || node.tagName !== "x-space".toUpperCase())
@@ -1278,16 +1572,11 @@ var FillInTheBlankSpaceNodeHandler2 = class extends NodeHandler2 {
1278
1572
  errorsAllowed: node.getAttribute("data-x-errors-allowed") ? Number(node.getAttribute("data-x-errors-allowed")) : void 0
1279
1573
  };
1280
1574
  }
1281
- parseErrorToleranceAttr(attr) {
1282
- const value = Number(attr);
1283
- if (isNaN(value)) return 0;
1284
- else return value * 100;
1285
- }
1286
1575
  processNumberSpace(node, baseNode) {
1287
1576
  return {
1288
1577
  ...baseNode,
1289
1578
  minDecimals: node.getAttribute("data-x-min-decimals") ? Number(node.getAttribute("data-x-min-decimals")) : void 0,
1290
- errorTolerance: this.parseErrorToleranceAttr(
1579
+ errorTolerance: parseErrorToleranceAttribute(
1291
1580
  node.getAttribute("data-x-error-tolerance")
1292
1581
  )
1293
1582
  };
@@ -1563,14 +1852,13 @@ var JournalEntryQuestionNodeHandler2 = class extends NodeHandler2 {
1563
1852
  processNode(node) {
1564
1853
  if (!(node instanceof import_node_html_parser11.HTMLElement) || node.tagName !== "x-journal-entry".toUpperCase())
1565
1854
  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
1855
  const jsonNode = {
1570
1856
  id: node.getAttribute("id") ?? (0, import_nanoid6.nanoid)(),
1571
1857
  points: Number(node.getAttribute("data-x-points") ?? 1),
1572
- journalType,
1573
- errorTolerance: node.getAttribute("data-x-error-tolerance") ? Number(node.getAttribute("data-x-error-tolerance")) : void 0,
1858
+ noEntryRequired: node.getAttribute("data-x-no-entry-required-correct") === "true",
1859
+ errorTolerance: parseErrorToleranceAttribute(
1860
+ node.getAttribute("data-x-error-tolerance")
1861
+ ),
1574
1862
  lineItems: [],
1575
1863
  type: "journal-entry-question",
1576
1864
  version: 1
@@ -2338,5 +2626,7 @@ function importFromHtml(html) {
2338
2626
  // Annotate the CommonJS export names for ESM import in node:
2339
2627
  0 && (module.exports = {
2340
2628
  exportToHtml,
2341
- importFromHtml
2629
+ importFromHtml,
2630
+ themeDark,
2631
+ themeLight
2342
2632
  });
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() {
@@ -112,6 +405,11 @@ function isSerializedFillInTheBlankSpaceNode(node) {
112
405
  return node?.type === "space" && "id" in node && typeof node.id === "string" && "spaceName" in node && typeof node.spaceName === "string" && "matches" in node && typeof node.matches === "string" && "spaceType" in node;
113
406
  }
114
407
 
408
+ // src/exportToHtml/serializeErrorToleranceAttribute.ts
409
+ function serializeErrorToleranceAttribute(errorTolerance) {
410
+ return (errorTolerance ?? 0) / 100;
411
+ }
412
+
115
413
  // src/exportToHtml/FillInTheBlankSpaceNodeHandler.ts
116
414
  var FillInTheBlankSpaceNodeHandler = class extends NodeHandler {
117
415
  processNode(node) {
@@ -129,7 +427,7 @@ var FillInTheBlankSpaceNodeHandler = class extends NodeHandler {
129
427
  `data-x-case-sensitive="${!!node.caseSensitive}"`,
130
428
  `data-x-errors-allowed="${node.errorsAllowed ?? 0}"`,
131
429
  `data-x-min-decimals="${node.minDecimals ?? ""}"`,
132
- `data-x-error-tolerance="${(node.errorTolerance ?? 0) / 100}"`,
430
+ `data-x-error-tolerance="${serializeErrorToleranceAttribute(node.errorTolerance)}"`,
133
431
  // Divide by 100 to convert percentage to rate
134
432
  `data-x-distractors="${node.distractors ?? ""}"`
135
433
  ];
@@ -309,7 +607,7 @@ var ImageNodeHandler = class extends NodeHandler {
309
607
 
310
608
  // src/typeGuards/isSerializedJournalEntryQuestionNode.ts
311
609
  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);
610
+ 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
611
  }
314
612
 
315
613
  // src/exportToHtml/createHtmlFromOnePerLineDistractorNodes.ts
@@ -338,27 +636,12 @@ var JournalEntryQuestionNodeHandler = class extends NodeHandler {
338
636
  ];
339
637
  if (journalNode.errorTolerance !== void 0) {
340
638
  attributes.push(
341
- `data-x-error-tolerance="${journalNode.errorTolerance}"`
639
+ `data-x-error-tolerance="${serializeErrorToleranceAttribute(journalNode.errorTolerance)}"`
342
640
  );
343
641
  }
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
- }
642
+ attributes.push(
643
+ `data-x-no-entry-required-correct="${journalNode.noEntryRequired}"`
644
+ );
362
645
  const lineItems = this.processLineItems(journalNode);
363
646
  const distractors = this.processDistractors(journalNode);
364
647
  return `<x-journal-entry ${attributes.join(" ")}>${lineItems}${distractors}</x-journal-entry>`;
@@ -1218,6 +1501,15 @@ var FillInTheBlankQuestionNodeHandler2 = class extends NodeHandler2 {
1218
1501
  // src/importFromHtml/FillInTheBlankSpaceNodeHandler.ts
1219
1502
  import { nanoid as nanoid3 } from "nanoid";
1220
1503
  import { HTMLElement as HTMLElement5 } from "node-html-parser";
1504
+
1505
+ // src/importFromHtml/parseErrorToleranceAttribute.ts
1506
+ function parseErrorToleranceAttribute(attr) {
1507
+ const value = Number(attr);
1508
+ if (isNaN(value)) return 0;
1509
+ else return value * 100;
1510
+ }
1511
+
1512
+ // src/importFromHtml/FillInTheBlankSpaceNodeHandler.ts
1221
1513
  var FillInTheBlankSpaceNodeHandler2 = class extends NodeHandler2 {
1222
1514
  processNode(node) {
1223
1515
  if (!(node instanceof HTMLElement5) || node.tagName !== "x-space".toUpperCase())
@@ -1251,16 +1543,11 @@ var FillInTheBlankSpaceNodeHandler2 = class extends NodeHandler2 {
1251
1543
  errorsAllowed: node.getAttribute("data-x-errors-allowed") ? Number(node.getAttribute("data-x-errors-allowed")) : void 0
1252
1544
  };
1253
1545
  }
1254
- parseErrorToleranceAttr(attr) {
1255
- const value = Number(attr);
1256
- if (isNaN(value)) return 0;
1257
- else return value * 100;
1258
- }
1259
1546
  processNumberSpace(node, baseNode) {
1260
1547
  return {
1261
1548
  ...baseNode,
1262
1549
  minDecimals: node.getAttribute("data-x-min-decimals") ? Number(node.getAttribute("data-x-min-decimals")) : void 0,
1263
- errorTolerance: this.parseErrorToleranceAttr(
1550
+ errorTolerance: parseErrorToleranceAttribute(
1264
1551
  node.getAttribute("data-x-error-tolerance")
1265
1552
  )
1266
1553
  };
@@ -1536,14 +1823,13 @@ var JournalEntryQuestionNodeHandler2 = class extends NodeHandler2 {
1536
1823
  processNode(node) {
1537
1824
  if (!(node instanceof HTMLElement11) || node.tagName !== "x-journal-entry".toUpperCase())
1538
1825
  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
1826
  const jsonNode = {
1543
1827
  id: node.getAttribute("id") ?? nanoid6(),
1544
1828
  points: Number(node.getAttribute("data-x-points") ?? 1),
1545
- journalType,
1546
- errorTolerance: node.getAttribute("data-x-error-tolerance") ? Number(node.getAttribute("data-x-error-tolerance")) : void 0,
1829
+ noEntryRequired: node.getAttribute("data-x-no-entry-required-correct") === "true",
1830
+ errorTolerance: parseErrorToleranceAttribute(
1831
+ node.getAttribute("data-x-error-tolerance")
1832
+ ),
1547
1833
  lineItems: [],
1548
1834
  type: "journal-entry-question",
1549
1835
  version: 1
@@ -2310,5 +2596,7 @@ function importFromHtml(html) {
2310
2596
  }
2311
2597
  export {
2312
2598
  exportToHtml,
2313
- importFromHtml
2599
+ importFromHtml,
2600
+ themeDark,
2601
+ themeLight
2314
2602
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@examind/block-sdk",
3
- "version": "0.1.25",
3
+ "version": "0.1.28",
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.25"
24
+ "@examind/block-types": "^0.1.28"
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.25"
39
+ "@examind/block-types": "0.1.28"
40
40
  },
41
41
  "dependencies": {
42
42
  "lodash-es": "4.17.21"