@graffiticode/l0179-view 0.1.1 → 0.1.3
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.js +17101 -20503
- package/dist/index.js.map +1 -1
- package/dist/scoring-D1FbQ_qt.js +4598 -0
- package/dist/scoring-D1FbQ_qt.js.map +1 -0
- package/dist/scoring.d.ts +31 -2
- package/dist/scoring.js +2 -19
- package/dist/style.css +2 -1
- package/package.json +9 -7
- package/dist/index-3_WJgYM5.js +0 -4501
- package/dist/index-3_WJgYM5.js.map +0 -1
- package/dist/scoring.js.map +0 -1
package/dist/scoring.d.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Evaluate an `expected` that was authored as a formula against the authored grid, so
|
|
3
3
|
* `expected "=A1*2"` grades against whatever A1 actually holds this render.
|
|
4
4
|
*/
|
|
5
|
-
export declare const evaluateExpectedFormula: (formula: any, interactionCells: any) => any;
|
|
5
|
+
export declare const evaluateExpectedFormula: (formula: any, interactionCells: any, ctx?: ScoreContext) => any;
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* The answer key, keyed the way the response is: bare `A2` for one sheet, `s2!A2` once there are
|
|
@@ -49,7 +49,7 @@ export declare const qualifyKey: (sheetId: string, name: string) => string;
|
|
|
49
49
|
export declare function responseOverlay(interactionCells: Record<string, any>, sheetId: string): Record<string, any>;
|
|
50
50
|
|
|
51
51
|
/** Score one cell against one `assess` record. Returns `{points, isValid}`, never throws. */
|
|
52
|
-
export declare const scoreCell: ({ method, expected, points }: any, { val, formula, type }?: any, interactionCells?: any) => any;
|
|
52
|
+
export declare const scoreCell: ({ method, expected, points }: any, { val, formula, type }?: any, interactionCells?: any, ctx?: ScoreContext | undefined) => any;
|
|
53
53
|
|
|
54
54
|
/**
|
|
55
55
|
* Score a response map. Returns the same map with a `score` added to each assessed cell; the
|
|
@@ -62,6 +62,22 @@ export declare const scoreCell: ({ method, expected, points }: any, { val, formu
|
|
|
62
62
|
*/
|
|
63
63
|
export declare const scoreCells: ({ cells, validation, interactionCells }: any) => any;
|
|
64
64
|
|
|
65
|
+
/**
|
|
66
|
+
* Everything one scoring pass is allowed to remember.
|
|
67
|
+
*
|
|
68
|
+
* Created per `scoreCells` call and dropped when it returns. Deliberately NOT module-level: this
|
|
69
|
+
* module is loaded server-side by the Learnosity scorer, where a shared map would grow without
|
|
70
|
+
* bound across invocations and hold one tenant's cell values live while another is scored.
|
|
71
|
+
*/
|
|
72
|
+
declare interface ScoreContext {
|
|
73
|
+
/** normalizeValue, keyed on the stringified value. */
|
|
74
|
+
normalized: Map<string, any[]>;
|
|
75
|
+
/** evaluateExpectedFormula, keyed on the formula text. */
|
|
76
|
+
expected: Map<string, any>;
|
|
77
|
+
/** The `val`-augmented authored grid, built once instead of once per assessed cell. */
|
|
78
|
+
env?: any;
|
|
79
|
+
}
|
|
80
|
+
|
|
65
81
|
/**
|
|
66
82
|
* Split a possibly-qualified map into one bare-keyed map per sheet.
|
|
67
83
|
*
|
|
@@ -92,6 +108,19 @@ export declare function splitBySheet(cells: Record<string, any>, sheetIds: strin
|
|
|
92
108
|
/** `"s1!A1"` → `["s1", "A1"]`; `"A1"` → `[undefined, "A1"]`. */
|
|
93
109
|
export declare function splitKey(key: string): [string | undefined, string];
|
|
94
110
|
|
|
111
|
+
/**
|
|
112
|
+
* Drop the `$` anchors from absolute references outside quoted text: `=$B$4*B$6+$C7` becomes
|
|
113
|
+
* `=B4*B6+C7`.
|
|
114
|
+
*
|
|
115
|
+
* Exact, not an approximation. `$` only changes what a reference becomes when a formula is copied
|
|
116
|
+
* or filled, and a sheet here is authored cell by cell and never filled, so an anchored reference
|
|
117
|
+
* always means the cell it names. It has to happen before anything reads references, because
|
|
118
|
+
* nothing downstream understands `$`: the undefined-name scan read `$B$6` as the name `B`
|
|
119
|
+
* (#NAME!), the dependency parser found no reference in it (so no recalculation), and the formula
|
|
120
|
+
* parser read `$B6` as literal text.
|
|
121
|
+
*/
|
|
122
|
+
export declare const stripAbsoluteReferences: (text: any) => any;
|
|
123
|
+
|
|
95
124
|
/**
|
|
96
125
|
* Upper-case a formula WITHOUT touching quoted text: `=sum(a1:a3)` becomes `=SUM(A1:A3)`, but
|
|
97
126
|
* `="hello"` keeps its string intact. Cell names and function names are case-insensitive; string
|
package/dist/scoring.js
CHANGED
|
@@ -1,19 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export {
|
|
3
|
-
s as evaluateExpectedFormula,
|
|
4
|
-
l as getCellsValidation,
|
|
5
|
-
t as isDateLike,
|
|
6
|
-
i as isNumeric,
|
|
7
|
-
r as normalizeDateInput,
|
|
8
|
-
o as normalizeNumberInput,
|
|
9
|
-
p as qualify,
|
|
10
|
-
n as qualifyKey,
|
|
11
|
-
u as responseOverlay,
|
|
12
|
-
m as scoreCell,
|
|
13
|
-
y as scoreCells,
|
|
14
|
-
c as splitBySheet,
|
|
15
|
-
x as splitKey,
|
|
16
|
-
C as toUpperCase,
|
|
17
|
-
d as wrapPlainTextInLatex
|
|
18
|
-
};
|
|
19
|
-
//# sourceMappingURL=scoring.js.map
|
|
1
|
+
import { _ as e, a as t, b as n, c as r, g as i, h as a, i as o, l as s, m as c, n as l, o as u, r as d, s as f, t as p, v as m, y as h } from "./scoring-D1FbQ_qt.js";
|
|
2
|
+
export { p as evaluateExpectedFormula, l as getCellsValidation, c as isDateLike, a as isNumeric, i as normalizeDateInput, e as normalizeNumberInput, t as qualify, u as qualifyKey, f as responseOverlay, d as scoreCell, o as scoreCells, r as splitBySheet, s as splitKey, m as stripAbsoluteReferences, h as toUpperCase, n as wrapPlainTextInLatex };
|
package/dist/style.css
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.container{width:100%}@media (min-width: 640px){.container{max-width:640px}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (min-width: 1280px){.container{max-width:1280px}}@media (min-width: 1536px){.container{max-width:1536px}}.pointer-events-none{pointer-events:none}.\!visible{visibility:visible!important}.visible{visibility:visible}.invisible{visibility:hidden}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.left-1\/2{left:50%}.top-full{top:100%}.z-50{z-index:50}.mb-0{margin-bottom:0}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.block{display:block}.inline{display:inline}.flex{display:flex}.\!table{display:table!important}.table{display:table}.grid{display:grid}.hidden{display:none}.h-0{height:0px}.h-7{height:1.75rem}.w-0{width:0px}.w-7{width:1.75rem}.w-full{width:100%}.max-w-none{max-width:none}.-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.resize{resize:both}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-4{gap:1rem}.rounded{border-radius:.25rem}.rounded-md{border-radius:.375rem}.rounded-none{border-radius:0}.border{border-width:1px}.border-0{border-width:0px}.border-b{border-bottom-width:1px}.border-none{border-style:none}.border-gray-200{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1))}.border-gray-300{--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity, 1))}.border-red-200{--tw-border-opacity: 1;border-color:rgb(254 202 202 / var(--tw-border-opacity, 1))}.border-red-700{--tw-border-opacity: 1;border-color:rgb(185 28 28 / var(--tw-border-opacity, 1))}.bg-gray-100{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.bg-gray-600{--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity, 1))}.bg-red-50{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.bg-red-900\/50{background-color:#7f1d1d80}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.p-0{padding:0}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.px-2{padding-left:.5rem;padding-right:.5rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.pb-1{padding-bottom:.25rem}.pl-5{padding-left:1.25rem}.text-center{text-align:center}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.font-sans{font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji"}.font-serif{font-family:ui-serif,Georgia,Cambria,Times New Roman,Times,serif}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.italic{font-style:italic}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.text-gray-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.text-gray-900{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.text-red-200{--tw-text-opacity: 1;color:rgb(254 202 202 / var(--tw-text-opacity, 1))}.text-red-800{--tw-text-opacity: 1;color:rgb(153 27 27 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.underline{text-decoration-line:underline}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.ring-0{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.ProseMirror-focused{outline:0}.placeholder\:text-gray-400::-moz-placeholder{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.placeholder\:text-gray-400::placeholder{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.focus\:outline-0:focus{outline-width:0px}.focus\:ring-0:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}@media (min-width: 640px){.sm\:text-sm\/6{font-size:.875rem;line-height:1.5rem}}.ProseMirror{position:relative;word-wrap:break-word;white-space:pre-wrap;white-space:break-spaces;font-variant-ligatures:none;font-feature-settings:"liga" 0}.ProseMirror pre{white-space:pre-wrap}.ProseMirror li{position:relative}.ProseMirror-hideselection *::selection{background:transparent}.ProseMirror-hideselection *::-moz-selection{background:transparent}.ProseMirror-hideselection{caret-color:transparent}.ProseMirror [draggable][contenteditable=false]{-webkit-user-select:text;-moz-user-select:text;user-select:text}.ProseMirror-selectednode{outline:2px solid #8cf}li.ProseMirror-selectednode{outline:none}li.ProseMirror-selectednode:after{content:"";position:absolute;left:-32px;right:-2px;top:-2px;bottom:-2px;border:2px solid #8cf;pointer-events:none}img.ProseMirror-separator{display:inline!important;border:none!important;margin:0!important}.ProseMirror table{border-collapse:collapse;table-layout:fixed;width:100%;overflow:hidden}.ProseMirror td,.ProseMirror th{vertical-align:top;box-sizing:border-box;position:relative}.ProseMirror td:not([data-colwidth]):not(.column-resize-dragging),.ProseMirror th:not([data-colwidth]):not(.column-resize-dragging){min-width:var(--default-cell-min-width)}.ProseMirror{border:thin solid #ccc;outline:none}main{margin:auto;width:80%;max-width:700px}.menu{display:flex;margin-bottom:5px}.button{cursor:pointer;width:24px;height:24px;margin-right:5px;display:flex;align-items:center;justify-content:center;box-shadow:none;border:thin solid #ccc;border-radius:.25rem;color:#777;background-color:#fff}.button[aria-pressed=true]{background-color:#ddd;color:#00f}.button:hover{color:#333}.button.bold{font-weight:700}.button.italic{font-style:italic}.visually-hidden{clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}.ProseMirror .tableWrapper{overflow-x:auto}.ProseMirror table{border-collapse:collapse;table-layout:fixed;width:250;height:250;overflow:hidden;border:1px solid #eee}.ProseMirror td,.ProseMirror th{vertical-align:middle;box-sizing:border-box;position:relative;text-align:right;padding:6px 4px;border:1px solid #eee;min-height:24px;line-height:1.2;overflow:hidden;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-variant-numeric:tabular-nums}.ProseMirror p{margin:0}.ProseMirror th p{display:flex;align-items:center;justify-content:center;height:100%;margin:0}.ProseMirror .column-resize-handle{position:absolute;right:-2px;top:0;bottom:0;width:4px;z-index:20;background-color:#adf;pointer-events:none}.ProseMirror.resize-cursor{cursor:ew-resize;cursor:col-resize}.ProseMirror .selectedCell:after{z-index:2;position:absolute;content:"";left:0;right:0;top:0;bottom:0;background:#c8c8ff66;pointer-events:none}.ProseMirror th,.ProseMirror .readonly-cell{background-color:#f8f8f8;font-weight:600;color:#bbb;cursor:default;-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:middle!important}.gc-sheet-area{display:flex;flex-direction:column}.gc-sheet-chrome{display:flex;align-items:stretch;gap:.25rem;padding:.25rem .5rem 0;border-top:1px solid #e0e0e0;background:#fff;font-family:Arial,sans-serif;font-size:.8125rem;-webkit-user-select:none;-moz-user-select:none;user-select:none}.gc-sheet-menu{position:relative;flex:none;display:flex;align-items:center}.gc-sheet-menu-button{display:flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;border-radius:9999px;color:#5f6368;background:transparent;border:0;cursor:pointer}.gc-sheet-menu-button:hover{background:#f1f3f4}.gc-sheet-menu-list{position:absolute;bottom:2.25rem;left:0;z-index:20;min-width:11rem;max-height:16rem;overflow-y:auto;overscroll-behavior:contain;margin:0;padding:.25rem 0;list-style:none;background:#fff;border:1px solid #e5e7eb;border-radius:.25rem;box-shadow:0 2px 10px #0000002e}.gc-sheet-menu-item{display:block;width:100%;padding:.375rem .875rem;text-align:left;background:transparent;border:0;cursor:pointer;white-space:nowrap}.gc-sheet-menu-item:hover{background:#f1f3f4}.gc-sheet-menu-item.is-active{background:#e8f0fe;color:#0b57d0;font-weight:700}.gc-sheet-tabs{display:flex;align-items:flex-end;gap:.125rem;overflow-x:auto}.gc-sheet-tab{flex:none;max-width:12rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:.375rem 1rem;border:0;border-radius:.25rem .25rem 0 0;background:transparent;color:#5f6368;cursor:pointer}.gc-sheet-tab:hover{background:#f1f3f4}.gc-sheet-tab.is-active{background:#e8f0fe;color:#0b57d0;font-weight:700}.gc-sheet-tab.is-active:hover{background:#d9e7fd}.ProseMirror .column-resize-handle{display:none}.ProseMirror.resize-cursor{cursor:text}
|
|
1
|
+
*,:before,:after,::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border:0 solid #e5e7eb}:before,:after{--tw-content:""}html,:host{-webkit-text-size-adjust:100%;tab-size:4;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}body{line-height:inherit;margin:0}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-feature-settings:normal;font-variation-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-feature-settings:inherit;font-variation-settings:inherit;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:#0000;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{margin:0;padding:0;list-style:none}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder{opacity:1;color:#9ca3af}textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.container{width:100%}@media (width>=640px){.container{max-width:640px}}@media (width>=768px){.container{max-width:768px}}@media (width>=1024px){.container{max-width:1024px}}@media (width>=1280px){.container{max-width:1280px}}@media (width>=1536px){.container{max-width:1536px}}.pointer-events-none{pointer-events:none}.\!visible{visibility:visible!important}.visible{visibility:visible}.invisible{visibility:hidden}.collapse{visibility:collapse}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.left-1\/2{left:50%}.top-full{top:100%}.z-50{z-index:50}.mb-0{margin-bottom:0}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.block{display:block}.inline{display:inline}.flex{display:flex}.\!table{display:table!important}.table{display:table}.grid{display:grid}.hidden{display:none}.h-0{height:0}.h-7{height:1.75rem}.w-0{width:0}.w-7{width:1.75rem}.w-full{width:100%}.max-w-none{max-width:none}.grow{flex-grow:1}.-translate-x-1\/2{--tw-translate-x:-50%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.resize{resize:both}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-4{gap:1rem}.rounded{border-radius:.25rem}.rounded-md{border-radius:.375rem}.rounded-none{border-radius:0}.border{border-width:1px}.border-0{border-width:0}.border-b{border-bottom-width:1px}.border-none{border-style:none}.border-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity,1))}.border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity,1))}.border-red-200{--tw-border-opacity:1;border-color:rgb(254 202 202/var(--tw-border-opacity,1))}.border-red-700{--tw-border-opacity:1;border-color:rgb(185 28 28/var(--tw-border-opacity,1))}.bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.bg-gray-600{--tw-bg-opacity:1;background-color:rgb(75 85 99/var(--tw-bg-opacity,1))}.bg-red-50{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.bg-red-900\/50{background-color:#7f1d1d80}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.p-0{padding:0}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.px-2{padding-left:.5rem;padding-right:.5rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.pb-1{padding-bottom:.25rem}.pl-5{padding-left:1.25rem}.text-center{text-align:center}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.font-sans{font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.font-serif{font-family:ui-serif,Georgia,Cambria,Times New Roman,Times,serif}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.italic{font-style:italic}.text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.text-red-200{--tw-text-opacity:1;color:rgb(254 202 202/var(--tw-text-opacity,1))}.text-red-800{--tw-text-opacity:1;color:rgb(153 27 27/var(--tw-text-opacity,1))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.underline{text-decoration-line:underline}.shadow-lg{--tw-shadow:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.ring-0{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.ProseMirror-focused{outline:0}.placeholder\:text-gray-400::placeholder{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.focus\:outline-0:focus{outline-width:0}.focus\:ring-0:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}@media (width>=640px){.sm\:text-sm\/6{font-size:.875rem;line-height:1.5rem}}.ProseMirror{word-wrap:break-word;white-space:pre-wrap;white-space:break-spaces;font-variant-ligatures:none;font-feature-settings:"liga" 0;position:relative}.ProseMirror pre{white-space:pre-wrap}.ProseMirror li{position:relative}.ProseMirror-hideselection ::-moz-selection{background:0 0}.ProseMirror-hideselection ::selection{background:0 0}.ProseMirror-hideselection{caret-color:#0000}.ProseMirror [draggable][contenteditable=false]{-webkit-user-select:text;user-select:text}.ProseMirror-selectednode{outline:2px solid #8cf}li.ProseMirror-selectednode{outline:none}li.ProseMirror-selectednode:after{content:"";pointer-events:none;border:2px solid #8cf;position:absolute;inset:-2px -2px -2px -32px}img.ProseMirror-separator{border:none!important;margin:0!important;display:inline!important}.ProseMirror table{border-collapse:collapse;table-layout:fixed;width:100%;overflow:hidden}.ProseMirror td,.ProseMirror th{vertical-align:top;box-sizing:border-box;position:relative}.ProseMirror td:not([data-colwidth]):not(.column-resize-dragging),.ProseMirror th:not([data-colwidth]):not(.column-resize-dragging){min-width:var(--default-cell-min-width)}.ProseMirror{border:thin solid #ccc;outline:none}main{width:80%;max-width:700px;margin:auto}.menu{margin-bottom:5px;display:flex}.button{cursor:pointer;width:24px;height:24px;box-shadow:none;color:#777;background-color:#fff;border:thin solid #ccc;border-radius:.25rem;justify-content:center;align-items:center;margin-right:5px;display:flex}.button[aria-pressed=true]{color:#00f;background-color:#ddd}.button:hover{color:#333}.button.bold{font-weight:700}.button.italic{font-style:italic}.visually-hidden{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.ProseMirror .tableWrapper{overflow-x:auto}.ProseMirror table{border-collapse:collapse;table-layout:fixed;border:1px solid #eee;width:250px;height:250px;overflow:hidden}.ProseMirror td,.ProseMirror th{vertical-align:middle;box-sizing:border-box;text-align:right;font-variant-numeric:tabular-nums;border:1px solid #eee;min-height:24px;padding:6px 4px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;line-height:1.2;position:relative;overflow:hidden}.ProseMirror p{margin:0}.ProseMirror th p{justify-content:center;align-items:center;height:100%;margin:0;display:flex}.ProseMirror .column-resize-handle{z-index:20;pointer-events:none;background-color:#adf;width:4px;position:absolute;top:0;bottom:0;right:-2px}.ProseMirror.resize-cursor{cursor:ew-resize;cursor:col-resize}.ProseMirror .selectedCell:after{z-index:2;content:"";pointer-events:none;background:#c8c8ff66;position:absolute;inset:0}.ProseMirror th,.ProseMirror .readonly-cell{color:#bbb;cursor:default;-webkit-user-select:none;user-select:none;background-color:#f8f8f8;font-weight:600;vertical-align:middle!important}.gc-sheet-area{flex-direction:column;display:flex}.gc-sheet-chrome{-webkit-user-select:none;user-select:none;background:#fff;border-top:1px solid #e0e0e0;align-items:stretch;gap:.25rem;padding:0 .5rem .25rem;font-family:Arial,sans-serif;font-size:.8125rem;display:flex}.gc-sheet-menu{flex:none;align-items:center;display:flex;position:relative}.gc-sheet-menu-button{color:#5f6368;cursor:pointer;background:0 0;border:0;border-radius:9999px;justify-content:center;align-items:center;width:1.75rem;height:1.75rem;display:flex}.gc-sheet-menu-button:hover{background:#f1f3f4}.gc-sheet-menu-list{z-index:20;overscroll-behavior:contain;background:#fff;border:1px solid #e5e7eb;border-radius:.25rem;min-width:11rem;max-height:16rem;margin:0;padding:.25rem 0;list-style:none;position:absolute;bottom:2.25rem;left:0;overflow-y:auto;box-shadow:0 2px 10px #0000002e}.gc-sheet-menu-item{text-align:left;cursor:pointer;white-space:nowrap;background:0 0;border:0;width:100%;padding:.375rem .875rem;display:block}.gc-sheet-menu-item:hover{background:#f1f3f4}.gc-sheet-menu-item.is-active{color:#0b57d0;background:#e8f0fe;font-weight:700}.gc-sheet-tabs{align-items:flex-start;gap:.125rem;display:flex;overflow-x:auto}.gc-sheet-tab{text-overflow:ellipsis;white-space:nowrap;color:#5f6368;cursor:pointer;background:0 0;border:0;border-radius:0 0 .25rem .25rem;flex:none;max-width:12rem;padding:.375rem 1rem;overflow:hidden}.gc-sheet-tab:hover{background:#f1f3f4}.gc-sheet-tab.is-active{color:#0b57d0;background:#e8f0fe;font-weight:700}.gc-sheet-tab.is-active:hover{background:#d9e7fd}.ProseMirror .column-resize-handle{display:none}.ProseMirror.resize-cursor{cursor:text}
|
|
2
|
+
/*$vite$:1*/
|
package/package.json
CHANGED
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
"access": "public"
|
|
4
4
|
},
|
|
5
5
|
"name": "@graffiticode/l0179-view",
|
|
6
|
-
"version": "0.1.
|
|
7
|
-
"description": "L0179 view
|
|
6
|
+
"version": "0.1.3",
|
|
7
|
+
"description": "L0179 view — the spreadsheet Form and its DOM-free scoring, rendered through the shared View inherited from @graffiticode/l0000-view",
|
|
8
8
|
"type": "module",
|
|
9
9
|
"main": "./dist/index.js",
|
|
10
10
|
"module": "./dist/index.js",
|
|
@@ -32,6 +32,7 @@
|
|
|
32
32
|
"build": "tsc -p tsconfig.json && vite build",
|
|
33
33
|
"build:embed": "vite build --config vite.embed.config.ts",
|
|
34
34
|
"test": "vitest run",
|
|
35
|
+
"bench": "vitest bench --run",
|
|
35
36
|
"preview": "vite preview --config vite.embed.config.ts",
|
|
36
37
|
"lint": "eslint src embed"
|
|
37
38
|
},
|
|
@@ -41,7 +42,7 @@
|
|
|
41
42
|
},
|
|
42
43
|
"dependencies": {
|
|
43
44
|
"@graffiticode/l0000-view": "^0.1.3",
|
|
44
|
-
"@graffiticode/translatex": "^0.
|
|
45
|
+
"@graffiticode/translatex": "^0.25.0",
|
|
45
46
|
"prosemirror-commands": "^1.7.2",
|
|
46
47
|
"prosemirror-history": "^1.5.0",
|
|
47
48
|
"prosemirror-keymap": "^1.2.3",
|
|
@@ -53,16 +54,17 @@
|
|
|
53
54
|
"react-markdown": "^10.1.0"
|
|
54
55
|
},
|
|
55
56
|
"devDependencies": {
|
|
57
|
+
"@microsoft/api-extractor": "^7.59.1",
|
|
56
58
|
"@types/react": "^18.3.11",
|
|
57
59
|
"@types/react-dom": "^18.3.0",
|
|
58
|
-
"@vitejs/plugin-react": "^
|
|
60
|
+
"@vitejs/plugin-react": "^6.1.1",
|
|
59
61
|
"autoprefixer": "^10.4.20",
|
|
60
62
|
"postcss": "^8.4.47",
|
|
61
63
|
"react": "^18.3.1",
|
|
62
64
|
"react-dom": "^18.3.1",
|
|
63
65
|
"tailwindcss": "^3.4.13",
|
|
64
|
-
"vite": "^
|
|
65
|
-
"vite-plugin-dts": "^
|
|
66
|
-
"vitest": "^
|
|
66
|
+
"vite": "^8.3.0",
|
|
67
|
+
"vite-plugin-dts": "^5.1.0",
|
|
68
|
+
"vitest": "^5.0.1"
|
|
67
69
|
}
|
|
68
70
|
}
|