@pie-element/venn-classification 0.1.1-next.8 → 0.1.1-next.9

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.
@@ -1,59 +1,3 @@
1
- //#region ../../shared/configure-events/dist/index.js
2
- var _e;
3
- var _e2;
4
- var _e3;
5
- var _e4;
6
- var _e5;
7
- var e$3 = (_e = class e extends CustomEvent {
8
- constructor(t, n = !1) {
9
- super(e.TYPE, {
10
- bubbles: !0,
11
- detail: {
12
- update: t,
13
- reset: n
14
- }
15
- }), this.update = t, this.reset = n;
16
- }
17
- }, _e.TYPE = "model.updated", _e);
18
- _e2 = class e extends CustomEvent {
19
- constructor(t, n) {
20
- super(e.TYPE, {
21
- bubbles: !0,
22
- detail: {
23
- src: t,
24
- done: n
25
- }
26
- }), this.src = t, this.done = n;
27
- }
28
- }, _e2.TYPE = "delete.image";
29
- _e3 = class e extends CustomEvent {
30
- constructor(t) {
31
- super(e.TYPE, {
32
- bubbles: !0,
33
- detail: t
34
- }), this.handler = t;
35
- }
36
- }, _e3.TYPE = "insert.image";
37
- _e4 = class e extends CustomEvent {
38
- constructor(t, n) {
39
- super(e.TYPE, {
40
- bubbles: !0,
41
- detail: {
42
- src: t,
43
- done: n
44
- }
45
- }), this.src = t, this.done = n;
46
- }
47
- }, _e4.TYPE = "delete.sound";
48
- _e5 = class e extends CustomEvent {
49
- constructor(t) {
50
- super(e.TYPE, {
51
- bubbles: !0,
52
- detail: t
53
- }), this.handler = t;
54
- }
55
- }, _e5.TYPE = "insert.sound";
56
- //#endregion
57
1
  //#region ../../../node_modules/.bun/svelte@5.57.0/node_modules/svelte/src/internal/disclose-version.js
58
2
  if (typeof window !== "undefined") {
59
3
  var _window$__svelte, _window;
@@ -5528,6 +5472,177 @@ function create_custom_element(Component, props_definition, slots, exports, shad
5528
5472
  return Class;
5529
5473
  }
5530
5474
  //#endregion
5475
+ //#region ../../shared/configure-events/dist/index.js
5476
+ var _e;
5477
+ var _e2;
5478
+ var _e3;
5479
+ var _e4;
5480
+ var _e5;
5481
+ var e$3 = (_e = class e extends CustomEvent {
5482
+ constructor(t, n = !1) {
5483
+ super(e.TYPE, {
5484
+ bubbles: !0,
5485
+ detail: {
5486
+ update: t,
5487
+ reset: n
5488
+ }
5489
+ }), this.update = t, this.reset = n;
5490
+ }
5491
+ }, _e.TYPE = "model.updated", _e);
5492
+ _e2 = class e extends CustomEvent {
5493
+ constructor(t, n) {
5494
+ super(e.TYPE, {
5495
+ bubbles: !0,
5496
+ detail: {
5497
+ src: t,
5498
+ done: n
5499
+ }
5500
+ }), this.src = t, this.done = n;
5501
+ }
5502
+ }, _e2.TYPE = "delete.image";
5503
+ _e3 = class e extends CustomEvent {
5504
+ constructor(t) {
5505
+ super(e.TYPE, {
5506
+ bubbles: !0,
5507
+ detail: t
5508
+ }), this.handler = t;
5509
+ }
5510
+ }, _e3.TYPE = "insert.image";
5511
+ _e4 = class e extends CustomEvent {
5512
+ constructor(t, n) {
5513
+ super(e.TYPE, {
5514
+ bubbles: !0,
5515
+ detail: {
5516
+ src: t,
5517
+ done: n
5518
+ }
5519
+ }), this.src = t, this.done = n;
5520
+ }
5521
+ }, _e4.TYPE = "delete.sound";
5522
+ _e5 = class e extends CustomEvent {
5523
+ constructor(t) {
5524
+ super(e.TYPE, {
5525
+ bubbles: !0,
5526
+ detail: t
5527
+ }), this.handler = t;
5528
+ }
5529
+ }, _e5.TYPE = "insert.sound";
5530
+ //#endregion
5531
+ //#region ../../lib-svelte/config-ui-svelte/dist/index.js
5532
+ var t$3 = /* @__PURE__ */ from_html("<aside class=\"pie-config-layout-settings svelte-9dr0jr\" aria-label=\"Settings\"><!></aside>");
5533
+ var n$1 = /* @__PURE__ */ from_html("<div class=\"pie-config-layout svelte-9dr0jr\"><div class=\"pie-config-layout-contents svelte-9dr0jr\"><div class=\"pie-config-layout-design svelte-9dr0jr\"><!></div> <!></div></div>");
5534
+ var r$2 = {
5535
+ hash: "svelte-9dr0jr",
5536
+ code: ".pie-config-layout.svelte-9dr0jr {container-type:inline-size;}.pie-config-layout-contents.svelte-9dr0jr {display:flex;flex-direction:column;gap:16px;}.pie-config-layout-design.svelte-9dr0jr {flex:1 1 auto;min-width:0;}\n\n @container (min-width: 1135px) {.pie-config-layout-contents.svelte-9dr0jr {flex-direction:row;align-items:flex-start;}.pie-config-layout-settings.svelte-9dr0jr {flex:0 0 300px;position:sticky;top:0;}\n }"
5537
+ };
5538
+ function i$1(i, a) {
5539
+ append_styles$1(i, r$2);
5540
+ let o = prop(a, "hideSettings", 3, !1);
5541
+ var s = n$1(), c = child(s), l = child(c);
5542
+ snippet(child(l), () => a.children), reset$1(l);
5543
+ var d = sibling(l, 2), f = (n) => {
5544
+ var r = t$3();
5545
+ snippet(child(r), () => a.settings), reset$1(r), append(n, r);
5546
+ };
5547
+ if_block(d, (e) => {
5548
+ a.settings && !o() && e(f);
5549
+ }), reset$1(c), reset$1(s), append(i, s);
5550
+ }
5551
+ var a$1 = (e) => typeof e == "object" && !!e && !Array.isArray(e);
5552
+ function o$1(e, t) {
5553
+ if (!a$1(t)) return e;
5554
+ let n = { ...e };
5555
+ for (let [r, i] of Object.entries(t)) {
5556
+ let t = e[r];
5557
+ n[r] = a$1(t) && a$1(i) ? {
5558
+ ...t,
5559
+ ...i
5560
+ } : i;
5561
+ }
5562
+ return n;
5563
+ }
5564
+ function s$1(e) {
5565
+ return a$1(e) ? Object.values(e).some((e) => a$1(e) && (e.settings === !0 || s$1(e))) : !1;
5566
+ }
5567
+ var c$1 = (e, t = !1, n = !1) => ({
5568
+ type: "toggle",
5569
+ label: e,
5570
+ isConfigProperty: t,
5571
+ disabled: n
5572
+ });
5573
+ var l = (e, t, n = !1) => ({
5574
+ type: "radio",
5575
+ label: e,
5576
+ choices: t.map((e) => typeof e == "string" ? {
5577
+ label: e,
5578
+ value: e
5579
+ } : e),
5580
+ isConfigProperty: n
5581
+ });
5582
+ function u(e, t) {
5583
+ let n = e;
5584
+ for (let e of t.split(".")) {
5585
+ if (!a$1(n)) return;
5586
+ n = n[e];
5587
+ }
5588
+ return n;
5589
+ }
5590
+ function d(e, t, n) {
5591
+ let [r, ...i] = t.split("."), o = e[r], s = i.length === 0 ? n : d(a$1(o) ? o : {}, i.join("."), n);
5592
+ return {
5593
+ ...e,
5594
+ [r]: s
5595
+ };
5596
+ }
5597
+ var f = /* @__PURE__ */ from_html("<label class=\"pie-settings-toggle svelte-1ang3sw\"><span> </span> <input type=\"checkbox\" role=\"switch\" class=\"svelte-1ang3sw\"/></label>");
5598
+ var p = /* @__PURE__ */ from_html("<label class=\"pie-settings-choice-row svelte-1ang3sw\"><input type=\"radio\" class=\"svelte-1ang3sw\"/> <span> </span></label>");
5599
+ var m = /* @__PURE__ */ from_html("<fieldset class=\"pie-settings-choice svelte-1ang3sw\"><legend class=\"svelte-1ang3sw\"> </legend> <!></fieldset>");
5600
+ var h$1 = /* @__PURE__ */ from_html("<fieldset class=\"pie-settings-group svelte-1ang3sw\"><legend class=\"pie-settings-group-name svelte-1ang3sw\"> </legend> <!></fieldset>");
5601
+ var g = /* @__PURE__ */ from_html("<div class=\"pie-settings-panel svelte-1ang3sw\"></div>");
5602
+ var _ = {
5603
+ hash: "svelte-1ang3sw",
5604
+ code: ".pie-settings-panel.svelte-1ang3sw {display:flex;flex-direction:column;gap:16px;padding:16px;border:1px solid var(--pie-border-light, #ccc);border-radius:4px;color:var(--pie-text, #212121);}fieldset.svelte-1ang3sw {margin:0;padding:0;border:0;min-width:0;}.pie-settings-group.svelte-1ang3sw {display:flex;flex-direction:column;gap:8px;}.pie-settings-group-name.svelte-1ang3sw {margin-bottom:8px;font-weight:600;}.pie-settings-toggle.svelte-1ang3sw {display:flex;align-items:center;justify-content:space-between;gap:12px;}.pie-settings-choice.svelte-1ang3sw legend:where(.svelte-1ang3sw) {margin-bottom:4px;}.pie-settings-choice-row.svelte-1ang3sw {display:flex;align-items:center;gap:8px;}input.svelte-1ang3sw {accent-color:var(--pie-primary, #3f51b5);}input.svelte-1ang3sw:focus-visible {outline:2px solid var(--pie-focus-outline, #1a73e8);outline-offset:2px;}"
5605
+ };
5606
+ function v(t, n) {
5607
+ push(n, !0), append_styles$1(t, _);
5608
+ let r = prop(n, "configuration", 19, () => ({})), i = Math.random().toString(36).slice(2, 10), a = /* @__PURE__ */ user_derived(() => Object.entries(n.groups).map(([e, t]) => [e, Object.entries(t).filter((e) => !!e[1])]).filter(([, e]) => e.length > 0)), o = (e, t) => u(t.isConfigProperty ? r() : n.model, e);
5609
+ function s(e, t, i) {
5610
+ t.isConfigProperty ? n.onChangeConfiguration?.(d(r(), e, i), e) : n.onChangeModel(d(n.model, e, i), e);
5611
+ }
5612
+ var c = g();
5613
+ each(c, 21, () => get$1(a), ([e, t]) => e, (t, n) => {
5614
+ var r = /* @__PURE__ */ user_derived(() => to_array(get$1(n), 2));
5615
+ let a = () => get$1(r)[0], c = () => get$1(r)[1];
5616
+ var l = h$1(), u = child(l), d = only_child(u, !0);
5617
+ each(sibling(u, 2), 17, c, ([e, t]) => e, (t, n) => {
5618
+ var r = /* @__PURE__ */ user_derived(() => to_array(get$1(n), 2));
5619
+ let a = () => get$1(r)[0], c = () => get$1(r)[1];
5620
+ var l = comment(), u = first_child(l), d = (t) => {
5621
+ var n = f(), r = child(n), i = only_child(r, !0), l = sibling(r, 2);
5622
+ remove_input_defaults(l), reset$1(n), template_effect((t) => {
5623
+ set_text(i, c().label), set_checked(l, t), l.disabled = c().disabled;
5624
+ }, [() => !!o(a(), c())]), delegated("change", l, (e) => s(a(), c(), e.currentTarget.checked)), append(t, n);
5625
+ }, h = (t) => {
5626
+ var n = m(), r = child(n), l = only_child(r, !0);
5627
+ each(sibling(r, 2), 17, () => c().choices, (e) => e.value, (t, n) => {
5628
+ var r = p(), l = child(r);
5629
+ remove_input_defaults(l);
5630
+ var d = only_child(sibling(l, 2), !0);
5631
+ reset$1(r), template_effect((t) => {
5632
+ set_attribute(l, "name", `${i}-${a()}`), set_value(l, get$1(n).value), set_checked(l, t), set_text(d, get$1(n).label);
5633
+ }, [() => o(a(), c()) === get$1(n).value]), delegated("change", l, () => s(a(), c(), get$1(n).value)), append(t, r);
5634
+ }), reset$1(n), template_effect(() => set_text(l, c().label)), append(t, n);
5635
+ };
5636
+ if_block(u, (e) => {
5637
+ c().type === "toggle" ? e(d) : c().type === "radio" && e(h, 1);
5638
+ }), append(t, l);
5639
+ }), reset$1(l), template_effect(() => set_text(d, a())), append(t, l);
5640
+ }), reset$1(c), append(t, c), pop();
5641
+ }
5642
+ delegate(["change"]);
5643
+ var y = i$1;
5644
+ var b = v;
5645
+ //#endregion
5531
5646
  //#region ../../../node_modules/.bun/@tiptap+core@3.31.3+ef29727eaaf819d3/node_modules/@tiptap/core/dist/rolldown-runtime-D7D4PA-g.js
5532
5647
  var __defProp = Object.defineProperty;
5533
5648
  var __exportAll = (all, no_symbols) => {
@@ -35893,7 +36008,12 @@ var defaults_default = {
35893
36008
  scoringPolicy: {
35894
36009
  label: "Scoring policy",
35895
36010
  settings: true
35896
- }
36011
+ },
36012
+ teacherInstructions: {
36013
+ label: "Teacher Instructions",
36014
+ settings: true
36015
+ },
36016
+ settingsPanelDisabled: false
35897
36017
  }
35898
36018
  };
35899
36019
  //#endregion
@@ -36037,8 +36157,8 @@ var root_8$1 = /* @__PURE__ */ from_svg(`<circle fill="none" stroke="#1e293b"></
36037
36157
  var root_9$1 = /* @__PURE__ */ from_svg(`<text font-weight="600" fill="#0f172a"> </text>`);
36038
36158
  var root_10$1 = /* @__PURE__ */ from_html(`<div class="region-aria svelte-gkcqor" role="region"></div>`);
36039
36159
  var root_11$1 = /* @__PURE__ */ from_html(`<div class="tile-wrapper svelte-gkcqor"><!></div>`);
36040
- var root_12 = /* @__PURE__ */ from_html(`<div class="venn-diagram svelte-gkcqor"><svg preserveAspectRatio="xMidYMid meet" aria-hidden="true" class="svelte-gkcqor"><defs><mask maskUnits="userSpaceOnUse" x="0" y="0"><rect x="0" y="0" fill="black"></rect><circle fill="white"></circle><circle fill="black"></circle></mask><mask maskUnits="userSpaceOnUse" x="0" y="0"><rect x="0" y="0" fill="black"></rect><circle fill="white"></circle><circle fill="black"></circle></mask><clipPath clipPathUnits="userSpaceOnUse"><circle></circle></clipPath><mask maskUnits="userSpaceOnUse" x="0" y="0"><rect x="0" y="0" fill="white"></rect><circle fill="black"></circle><circle fill="black"></circle></mask></defs><rect fill="#ffffff" stroke="#cbd5e1"></rect><!><!><!><!><!><!><!><line stroke="#cbd5e1"></line></svg> <div class="region-labels svelte-gkcqor" aria-hidden="false"></div> <div class="placed-tiles svelte-gkcqor"></div></div> <!>`, 1);
36041
- var root_13 = /* @__PURE__ */ from_html(`<div class="drag-ghost svelte-gkcqor"><!></div>`);
36160
+ var root_12$1 = /* @__PURE__ */ from_html(`<div class="venn-diagram svelte-gkcqor"><svg preserveAspectRatio="xMidYMid meet" aria-hidden="true" class="svelte-gkcqor"><defs><mask maskUnits="userSpaceOnUse" x="0" y="0"><rect x="0" y="0" fill="black"></rect><circle fill="white"></circle><circle fill="black"></circle></mask><mask maskUnits="userSpaceOnUse" x="0" y="0"><rect x="0" y="0" fill="black"></rect><circle fill="white"></circle><circle fill="black"></circle></mask><clipPath clipPathUnits="userSpaceOnUse"><circle></circle></clipPath><mask maskUnits="userSpaceOnUse" x="0" y="0"><rect x="0" y="0" fill="white"></rect><circle fill="black"></circle><circle fill="black"></circle></mask></defs><rect fill="#ffffff" stroke="#cbd5e1"></rect><!><!><!><!><!><!><!><line stroke="#cbd5e1"></line></svg> <div class="region-labels svelte-gkcqor" aria-hidden="false"></div> <div class="placed-tiles svelte-gkcqor"></div></div> <!>`, 1);
36161
+ var root_13$1 = /* @__PURE__ */ from_html(`<div class="drag-ghost svelte-gkcqor"><!></div>`);
36042
36162
  var root_14 = /* @__PURE__ */ from_html(`<div class="venn-root svelte-gkcqor"><!> <!> <!> <!> <!> <div class="sr-only svelte-gkcqor" aria-live="polite" aria-atomic="true"></div></div>`);
36043
36163
  var $$css$1 = {
36044
36164
  hash: "svelte-gkcqor",
@@ -36438,7 +36558,7 @@ function VennClassification($$anchor, $$props) {
36438
36558
  append($$anchor, div_2);
36439
36559
  };
36440
36560
  var alternate_1 = ($$anchor) => {
36441
- var fragment_1 = root_12();
36561
+ var fragment_1 = root_12$1();
36442
36562
  var div_3 = first_child(fragment_1);
36443
36563
  let styles;
36444
36564
  var svg_2 = child(div_3);
@@ -36760,7 +36880,7 @@ function VennClassification($$anchor, $$props) {
36760
36880
  });
36761
36881
  var node_17 = sibling(node_4, 2);
36762
36882
  var consequent_10 = ($$anchor) => {
36763
- var div_8 = root_13();
36883
+ var div_8 = root_13$1();
36764
36884
  Tile(child(div_8), {
36765
36885
  get id() {
36766
36886
  return get$1(draggedTile).id;
@@ -36802,52 +36922,55 @@ create_custom_element(VennClassification, {
36802
36922
  }, [], []);
36803
36923
  //#endregion
36804
36924
  //#region src/author/Author.svelte
36805
- var root = /* @__PURE__ */ from_html(`<label class="circle-label-row svelte-13ppn6m"><span></span> <input type="text" class="svelte-13ppn6m"/></label>`);
36806
- var root_1 = /* @__PURE__ */ from_html(`<div class="hint svelte-13ppn6m">Add at least one tile; each tile needs a correct region and either a label (text or simple HTML) or an
36925
+ var root = /* @__PURE__ */ from_html(`<div class="field-group svelte-13ppn6m"><div class="field-header svelte-13ppn6m"> </div> <!></div>`);
36926
+ var root_1 = /* @__PURE__ */ from_html(`<label class="circle-label-row svelte-13ppn6m"><span></span> <input type="text" class="svelte-13ppn6m"/></label>`);
36927
+ var root_2 = /* @__PURE__ */ from_html(`<div class="hint svelte-13ppn6m">Add at least one tile; each tile needs a correct region and either a label (text or simple HTML) or an
36807
36928
  image URL plus short alt text.</div>`);
36808
- var root_2 = /* @__PURE__ */ from_html(`<div class="tile-field-full svelte-13ppn6m"><button type="button" class="btn-ghost svelte-13ppn6m">Remove image</button></div>`);
36809
- var root_3 = /* @__PURE__ */ from_html(`<li class="tile-row svelte-13ppn6m"><div class="tile-row-header svelte-13ppn6m"><div class="tile-inputs svelte-13ppn6m"><label class="svelte-13ppn6m"><span>ID</span> <input type="text" class="svelte-13ppn6m"/></label> <label class="label-input svelte-13ppn6m"><span>Label</span> <input type="text" class="svelte-13ppn6m"/></label> <label class="label-input tile-field-full svelte-13ppn6m"><span>Image URL (optional)</span> <input type="text" placeholder="https://… or data:image/…" class="svelte-13ppn6m"/></label> <label class="label-input tile-field-full svelte-13ppn6m"><span>Image alt (required if image URL is set)</span> <input type="text" class="svelte-13ppn6m"/></label> <!></div> <div class="tile-actions svelte-13ppn6m"><button type="button" class="btn-ghost svelte-13ppn6m" aria-label="Move up">↑</button> <button type="button" class="btn-ghost svelte-13ppn6m" aria-label="Move down">↓</button> <button type="button" class="btn-ghost danger svelte-13ppn6m" aria-label="Remove">✕</button></div></div> <div class="tile-region svelte-13ppn6m"><div class="region-header svelte-13ppn6m">Correct region</div> <!></div></li>`);
36810
- var root_4 = /* @__PURE__ */ from_html(`<label class="override-row svelte-13ppn6m"><span class="override-key svelte-13ppn6m"> </span> <input type="text" class="svelte-13ppn6m"/></label>`);
36811
- var root_5 = /* @__PURE__ */ from_html(`<div class="preview-diagram svelte-13ppn6m"><!></div>`);
36812
- var root_6 = /* @__PURE__ */ from_html(`<p class="hint preview-diagram-placeholder svelte-13ppn6m">Add at least one tile to see the diagram.</p>`);
36813
- var root_7 = /* @__PURE__ */ from_html(`<p class="hint preview-diagram-placeholder svelte-13ppn6m">Exactly two circles are required for the preview.</p>`);
36814
- var root_8 = /* @__PURE__ */ from_html(`<img alt="" class="preview-thumb svelte-13ppn6m" aria-hidden="true"/>`);
36815
- var root_9 = /* @__PURE__ */ from_html(`<li class="svelte-13ppn6m"><span class="preview-tile svelte-13ppn6m"><!> </span> <span class="preview-arrow svelte-13ppn6m">→</span> <span class="preview-region svelte-13ppn6m"> </span></li>`);
36816
- var root_10 = /* @__PURE__ */ from_html(`<div class="preview-list-heading svelte-13ppn6m">Correct regions</div> <ol class="preview-list svelte-13ppn6m"></ol>`, 1);
36817
- var root_11 = /* @__PURE__ */ from_html(`<div class="venn-author svelte-13ppn6m"><div class="author-shell svelte-13ppn6m"><div class="editor-column svelte-13ppn6m"><div class="field-group svelte-13ppn6m"><label class="field-header svelte-13ppn6m"><input type="checkbox" class="svelte-13ppn6m"/> <span>Prompt</span></label> <!></div> <div class="field-group svelte-13ppn6m"><div class="field-header svelte-13ppn6m">Circles</div> <p class="hint circle-count-note svelte-13ppn6m">2 circles (4 regions).</p> <div class="circle-labels svelte-13ppn6m"></div></div> <div class="field-group svelte-13ppn6m"><div class="field-header-row svelte-13ppn6m"><span class="field-header svelte-13ppn6m">Tiles</span> <button type="button" class="btn-add svelte-13ppn6m">+ Add tile</button></div> <!> <ul class="tile-list svelte-13ppn6m"></ul></div> <div class="field-group svelte-13ppn6m"><div class="field-header svelte-13ppn6m">Scoring policy</div> <label class="radio-row svelte-13ppn6m"><input type="radio" name="scoring" value="partialPerTile"/> <span>Partial credit per tile</span></label> <label class="radio-row svelte-13ppn6m"><input type="radio" name="scoring" value="allOrNothing"/> <span>All or nothing</span></label></div> <details class="field-group svelte-13ppn6m"><summary class="field-header svelte-13ppn6m">Region labels (advanced)</summary> <p class="hint svelte-13ppn6m">Override the auto-composed region labels that delivery uses for aria-labels and visible region chrome.</p> <!></details></div> <button type="button" class="split-gutter svelte-13ppn6m" role="slider" aria-orientation="vertical" aria-label="Resize editor and preview panels"></button> <div class="preview-column svelte-13ppn6m"><div class="preview-header svelte-13ppn6m">Preview</div> <div class="preview-note svelte-13ppn6m">Live diagram with each tile in its authored <em>correct region</em>. Drag the vertical handle (or use
36818
- arrow keys when it is focused) to change the editor / preview split.</div> <div class="preview-summary svelte-13ppn6m"><div><strong>Circles:</strong> </div> <div><strong>Scoring:</strong> </div> <div><strong>Tiles:</strong> </div></div> <!> <!></div></div></div>`);
36929
+ var root_3 = /* @__PURE__ */ from_html(`<div class="tile-field-full svelte-13ppn6m"><button type="button" class="btn-ghost svelte-13ppn6m">Remove image</button></div>`);
36930
+ var root_4 = /* @__PURE__ */ from_html(`<li class="tile-row svelte-13ppn6m"><div class="tile-row-header svelte-13ppn6m"><div class="tile-inputs svelte-13ppn6m"><label class="svelte-13ppn6m"><span>ID</span> <input type="text" class="svelte-13ppn6m"/></label> <label class="label-input svelte-13ppn6m"><span>Label</span> <input type="text" class="svelte-13ppn6m"/></label> <label class="label-input tile-field-full svelte-13ppn6m"><span>Image URL (optional)</span> <input type="text" placeholder="https://… or data:image/…" class="svelte-13ppn6m"/></label> <label class="label-input tile-field-full svelte-13ppn6m"><span>Image alt (required if image URL is set)</span> <input type="text" class="svelte-13ppn6m"/></label> <!></div> <div class="tile-actions svelte-13ppn6m"><button type="button" class="btn-ghost svelte-13ppn6m" aria-label="Move up">↑</button> <button type="button" class="btn-ghost svelte-13ppn6m" aria-label="Move down">↓</button> <button type="button" class="btn-ghost danger svelte-13ppn6m" aria-label="Remove">✕</button></div></div> <div class="tile-region svelte-13ppn6m"><div class="region-header svelte-13ppn6m">Correct region</div> <!></div></li>`);
36931
+ var root_5 = /* @__PURE__ */ from_html(`<label class="override-row svelte-13ppn6m"><span class="override-key svelte-13ppn6m"> </span> <input type="text" class="svelte-13ppn6m"/></label>`);
36932
+ var root_6 = /* @__PURE__ */ from_html(`<div class="preview-diagram svelte-13ppn6m"><!></div>`);
36933
+ var root_7 = /* @__PURE__ */ from_html(`<p class="hint preview-diagram-placeholder svelte-13ppn6m">Add at least one tile to see the diagram.</p>`);
36934
+ var root_8 = /* @__PURE__ */ from_html(`<p class="hint preview-diagram-placeholder svelte-13ppn6m">Exactly two circles are required for the preview.</p>`);
36935
+ var root_9 = /* @__PURE__ */ from_html(`<img alt="" class="preview-thumb svelte-13ppn6m" aria-hidden="true"/>`);
36936
+ var root_10 = /* @__PURE__ */ from_html(`<li class="svelte-13ppn6m"><span class="preview-tile svelte-13ppn6m"><!> </span> <span class="preview-arrow svelte-13ppn6m">→</span> <span class="preview-region svelte-13ppn6m"> </span></li>`);
36937
+ var root_11 = /* @__PURE__ */ from_html(`<div class="preview-list-heading svelte-13ppn6m">Correct regions</div> <ol class="preview-list svelte-13ppn6m"></ol>`, 1);
36938
+ var root_12 = /* @__PURE__ */ from_html(`<div class="author-shell svelte-13ppn6m"><div class="editor-column svelte-13ppn6m"><!> <!> <div class="field-group svelte-13ppn6m"><div class="field-header svelte-13ppn6m">Circles</div> <p class="hint circle-count-note svelte-13ppn6m">2 circles (4 regions).</p> <div class="circle-labels svelte-13ppn6m"></div></div> <div class="field-group svelte-13ppn6m"><div class="field-header-row svelte-13ppn6m"><span class="field-header svelte-13ppn6m">Tiles</span> <button type="button" class="btn-add svelte-13ppn6m">+ Add tile</button></div> <!> <ul class="tile-list svelte-13ppn6m"></ul></div> <details class="field-group svelte-13ppn6m"><summary class="field-header svelte-13ppn6m">Region labels (advanced)</summary> <p class="hint svelte-13ppn6m">Override the auto-composed region labels that delivery uses for aria-labels and visible region chrome.</p> <!></details></div> <button type="button" class="split-gutter svelte-13ppn6m" role="slider" aria-orientation="vertical" aria-label="Resize editor and preview panels"></button> <div class="preview-column svelte-13ppn6m"><div class="preview-header svelte-13ppn6m">Preview</div> <div class="preview-note svelte-13ppn6m">Live diagram with each tile in its authored <em>correct region</em>. Drag the vertical handle (or use
36939
+ arrow keys when it is focused) to change the editor / preview split.</div> <div class="preview-summary svelte-13ppn6m"><div><strong>Circles:</strong> </div> <div><strong>Scoring:</strong> </div> <div><strong>Tiles:</strong> </div></div> <!> <!></div></div>`);
36940
+ var root_13 = /* @__PURE__ */ from_html(`<div class="venn-author svelte-13ppn6m"><!></div>`);
36819
36941
  var $$css = {
36820
36942
  hash: "svelte-13ppn6m",
36821
- code: ".venn-author.svelte-13ppn6m {padding:24px;font-family:system-ui, -apple-system, Segoe UI, Roboto, sans-serif;color:#0f172a;box-sizing:border-box;--vc-focus-ring: var(\n --pie-focus-outline,\n var(--pie-button-focus-outline, var(--pie-focus-checked-border, #1565c0))\n );}.author-shell.svelte-13ppn6m {display:flex;flex-direction:row;align-items:stretch;gap:0;width:100%;min-height:min(72vh, 720px);max-height:min(85vh, 960px);box-sizing:border-box;}.editor-column.svelte-13ppn6m {display:flex;flex-direction:column;gap:20px;flex-shrink:0;overflow:auto;min-width:0;}.split-gutter.svelte-13ppn6m {flex:0 0 6px;width:6px;margin:0;padding:0;border:none;border-left:1px solid #cbd5e1;border-right:1px solid #cbd5e1;cursor:col-resize;touch-action:none;background:#e2e8f0;align-self:stretch;}.split-gutter.svelte-13ppn6m:hover,\n .split-gutter.svelte-13ppn6m:focus-visible {background:#cbd5e1;}.split-gutter.svelte-13ppn6m:focus-visible {outline:2px solid var(--vc-focus-ring, #1565c0);outline-offset:2px;}\n @media (max-width: 900px) {.author-shell.svelte-13ppn6m {flex-direction:column;min-height:unset;max-height:unset;}.editor-column.svelte-13ppn6m {width:100% !important;flex:none;max-width:none;}.split-gutter.svelte-13ppn6m {display:none;}.preview-column.svelte-13ppn6m {flex:none;width:100%;}\n }.field-group.svelte-13ppn6m {border:1px solid #e2e8f0;border-radius:8px;padding:16px;background:#ffffff;}.field-header.svelte-13ppn6m,\n .field-header-row.svelte-13ppn6m {display:flex;align-items:center;justify-content:space-between;font-weight:600;font-size:14px;margin-bottom:12px;color:#0f172a;}.field-header.svelte-13ppn6m input[type='checkbox']:where(.svelte-13ppn6m) {margin-right:8px;}.field-header-row.svelte-13ppn6m {gap:8px;}.btn-add.svelte-13ppn6m {background:#2563eb;color:#ffffff;border:none;padding:6px 10px;border-radius:6px;font-size:12px;cursor:pointer;}.btn-add.svelte-13ppn6m:hover {background:#1d4ed8;}.btn-ghost.svelte-13ppn6m {background:transparent;border:1px solid #cbd5e1;border-radius:4px;padding:2px 8px;cursor:pointer;font-size:13px;}.btn-ghost.svelte-13ppn6m:hover:not(:disabled) {background:#f1f5f9;}.btn-ghost.svelte-13ppn6m:disabled {opacity:0.4;cursor:not-allowed;}.btn-ghost.danger.svelte-13ppn6m {color:#bf0d00;}.circle-labels.svelte-13ppn6m {display:flex;flex-direction:column;gap:8px;}.circle-count-note.svelte-13ppn6m {margin:0 0 4px 0;}.radio-row.svelte-13ppn6m {display:inline-flex;align-items:center;gap:6px;font-size:13px;margin-top:6px;}.circle-label-row.svelte-13ppn6m {display:grid;grid-template-columns:120px minmax(0, 1fr);align-items:center;gap:8px;font-size:13px;}.circle-label-row.svelte-13ppn6m input:where(.svelte-13ppn6m),\n .tile-inputs.svelte-13ppn6m input:where(.svelte-13ppn6m),\n .override-row.svelte-13ppn6m input:where(.svelte-13ppn6m) {padding:6px 8px;border:1px solid #cbd5e1;border-radius:4px;font-size:13px;width:100%;box-sizing:border-box;}.tile-list.svelte-13ppn6m {list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px;}.tile-row.svelte-13ppn6m {border:1px solid #e2e8f0;border-radius:6px;padding:10px 12px;background:#f8fafc;}.tile-row-header.svelte-13ppn6m {display:flex;gap:8px;align-items:center;}.tile-inputs.svelte-13ppn6m {flex:1;display:grid;grid-template-columns:140px 1fr;gap:8px;}.tile-inputs.svelte-13ppn6m label:where(.svelte-13ppn6m) {display:flex;flex-direction:column;gap:2px;font-size:12px;color:#475569;}.tile-inputs.svelte-13ppn6m .tile-field-full:where(.svelte-13ppn6m) {grid-column:1 / -1;}.tile-actions.svelte-13ppn6m {display:flex;gap:4px;}.tile-region.svelte-13ppn6m {margin-top:8px;}.region-header.svelte-13ppn6m {font-size:12px;font-weight:600;color:#475569;margin-bottom:6px;}.override-row.svelte-13ppn6m {display:grid;grid-template-columns:100px minmax(0, 1fr);align-items:center;gap:8px;font-size:13px;margin-top:6px;}.override-key.svelte-13ppn6m {font-family:ui-monospace, SFMono-Regular, Menlo, monospace;font-size:12px;color:#64748b;}.hint.svelte-13ppn6m {font-size:12px;color:#64748b;margin:8px 0;}.preview-column.svelte-13ppn6m {flex:1 1 auto;min-width:0;overflow:auto;border:1px solid #e2e8f0;border-radius:8px;padding:16px;background:#ffffff;}.preview-diagram.svelte-13ppn6m {margin:12px 0 16px 0;max-width:100%;overflow-x:auto;}.preview-diagram.svelte-13ppn6m .venn-root {padding-top:8px;}.preview-list-heading.svelte-13ppn6m {font-size:12px;font-weight:600;color:#475569;margin:8px 0 6px 0;}.preview-diagram-placeholder.svelte-13ppn6m {margin:12px 0;}.preview-header.svelte-13ppn6m {font-weight:600;font-size:14px;margin-bottom:8px;}.preview-note.svelte-13ppn6m {font-size:12px;color:#64748b;margin-bottom:12px;}.preview-summary.svelte-13ppn6m {font-size:13px;line-height:1.5;color:#334155;margin-bottom:10px;}.preview-list.svelte-13ppn6m {list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:4px;}.preview-list.svelte-13ppn6m li:where(.svelte-13ppn6m) {display:flex;align-items:center;gap:6px;font-size:13px;}.preview-tile.svelte-13ppn6m {display:inline-flex;align-items:center;gap:6px;background:#eff6ff;border:1px solid #bfdbfe;border-radius:4px;padding:2px 6px;color:#1d4ed8;}.preview-thumb.svelte-13ppn6m {width:22px;height:22px;object-fit:contain;flex-shrink:0;}.preview-arrow.svelte-13ppn6m {color:#94a3b8;}.preview-region.svelte-13ppn6m {color:#0f172a;}"
36943
+ code: ".venn-author.svelte-13ppn6m {padding:24px;font-family:system-ui, -apple-system, Segoe UI, Roboto, sans-serif;color:#0f172a;box-sizing:border-box;--vc-focus-ring: var(\n --pie-focus-outline,\n var(--pie-button-focus-outline, var(--pie-focus-checked-border, #1565c0))\n );}.author-shell.svelte-13ppn6m {display:flex;flex-direction:row;align-items:stretch;gap:0;width:100%;min-height:min(72vh, 720px);max-height:min(85vh, 960px);box-sizing:border-box;}.editor-column.svelte-13ppn6m {display:flex;flex-direction:column;gap:20px;flex-shrink:0;overflow:auto;min-width:0;}.split-gutter.svelte-13ppn6m {flex:0 0 6px;width:6px;margin:0;padding:0;border:none;border-left:1px solid #cbd5e1;border-right:1px solid #cbd5e1;cursor:col-resize;touch-action:none;background:#e2e8f0;align-self:stretch;}.split-gutter.svelte-13ppn6m:hover,\n .split-gutter.svelte-13ppn6m:focus-visible {background:#cbd5e1;}.split-gutter.svelte-13ppn6m:focus-visible {outline:2px solid var(--vc-focus-ring, #1565c0);outline-offset:2px;}\n @media (max-width: 900px) {.author-shell.svelte-13ppn6m {flex-direction:column;min-height:unset;max-height:unset;}.editor-column.svelte-13ppn6m {width:100% !important;flex:none;max-width:none;}.split-gutter.svelte-13ppn6m {display:none;}.preview-column.svelte-13ppn6m {flex:none;width:100%;}\n }.field-group.svelte-13ppn6m {border:1px solid #e2e8f0;border-radius:8px;padding:16px;background:#ffffff;}.field-header.svelte-13ppn6m,\n .field-header-row.svelte-13ppn6m {display:flex;align-items:center;justify-content:space-between;font-weight:600;font-size:14px;margin-bottom:12px;color:#0f172a;}.field-header-row.svelte-13ppn6m {gap:8px;}.btn-add.svelte-13ppn6m {background:#2563eb;color:#ffffff;border:none;padding:6px 10px;border-radius:6px;font-size:12px;cursor:pointer;}.btn-add.svelte-13ppn6m:hover {background:#1d4ed8;}.btn-ghost.svelte-13ppn6m {background:transparent;border:1px solid #cbd5e1;border-radius:4px;padding:2px 8px;cursor:pointer;font-size:13px;}.btn-ghost.svelte-13ppn6m:hover:not(:disabled) {background:#f1f5f9;}.btn-ghost.svelte-13ppn6m:disabled {opacity:0.4;cursor:not-allowed;}.btn-ghost.danger.svelte-13ppn6m {color:#bf0d00;}.circle-labels.svelte-13ppn6m {display:flex;flex-direction:column;gap:8px;}.circle-count-note.svelte-13ppn6m {margin:0 0 4px 0;}.circle-label-row.svelte-13ppn6m {display:grid;grid-template-columns:120px minmax(0, 1fr);align-items:center;gap:8px;font-size:13px;}.circle-label-row.svelte-13ppn6m input:where(.svelte-13ppn6m),\n .tile-inputs.svelte-13ppn6m input:where(.svelte-13ppn6m),\n .override-row.svelte-13ppn6m input:where(.svelte-13ppn6m) {padding:6px 8px;border:1px solid #cbd5e1;border-radius:4px;font-size:13px;width:100%;box-sizing:border-box;}.tile-list.svelte-13ppn6m {list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px;}.tile-row.svelte-13ppn6m {border:1px solid #e2e8f0;border-radius:6px;padding:10px 12px;background:#f8fafc;}.tile-row-header.svelte-13ppn6m {display:flex;gap:8px;align-items:center;}.tile-inputs.svelte-13ppn6m {flex:1;display:grid;grid-template-columns:140px 1fr;gap:8px;}.tile-inputs.svelte-13ppn6m label:where(.svelte-13ppn6m) {display:flex;flex-direction:column;gap:2px;font-size:12px;color:#475569;}.tile-inputs.svelte-13ppn6m .tile-field-full:where(.svelte-13ppn6m) {grid-column:1 / -1;}.tile-actions.svelte-13ppn6m {display:flex;gap:4px;}.tile-region.svelte-13ppn6m {margin-top:8px;}.region-header.svelte-13ppn6m {font-size:12px;font-weight:600;color:#475569;margin-bottom:6px;}.override-row.svelte-13ppn6m {display:grid;grid-template-columns:100px minmax(0, 1fr);align-items:center;gap:8px;font-size:13px;margin-top:6px;}.override-key.svelte-13ppn6m {font-family:ui-monospace, SFMono-Regular, Menlo, monospace;font-size:12px;color:#64748b;}.hint.svelte-13ppn6m {font-size:12px;color:#64748b;margin:8px 0;}.preview-column.svelte-13ppn6m {flex:1 1 auto;min-width:0;overflow:auto;border:1px solid #e2e8f0;border-radius:8px;padding:16px;background:#ffffff;}.preview-diagram.svelte-13ppn6m {margin:12px 0 16px 0;max-width:100%;overflow-x:auto;}.preview-diagram.svelte-13ppn6m .venn-root {padding-top:8px;}.preview-list-heading.svelte-13ppn6m {font-size:12px;font-weight:600;color:#475569;margin:8px 0 6px 0;}.preview-diagram-placeholder.svelte-13ppn6m {margin:12px 0;}.preview-header.svelte-13ppn6m {font-weight:600;font-size:14px;margin-bottom:8px;}.preview-note.svelte-13ppn6m {font-size:12px;color:#64748b;margin-bottom:12px;}.preview-summary.svelte-13ppn6m {font-size:13px;line-height:1.5;color:#334155;margin-bottom:10px;}.preview-list.svelte-13ppn6m {list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:4px;}.preview-list.svelte-13ppn6m li:where(.svelte-13ppn6m) {display:flex;align-items:center;gap:6px;font-size:13px;}.preview-tile.svelte-13ppn6m {display:inline-flex;align-items:center;gap:6px;background:#eff6ff;border:1px solid #bfdbfe;border-radius:4px;padding:2px 6px;color:#1d4ed8;}.preview-thumb.svelte-13ppn6m {width:22px;height:22px;object-fit:contain;flex-shrink:0;}.preview-arrow.svelte-13ppn6m {color:#94a3b8;}.preview-region.svelte-13ppn6m {color:#0f172a;}"
36822
36944
  };
36823
36945
  function Author($$anchor, $$props) {
36824
36946
  push($$props, true);
36825
36947
  append_styles$1($$anchor, $$css);
36826
- let model = prop($$props, "model", 15), onChange = prop($$props, "onChange", 7), onModelChange = prop($$props, "onModelChange", 7);
36827
- /** The wrapper owns the model and announces the edit; `onChange` serves a component mounted without one. */
36948
+ let model = prop($$props, "model", 7), configuration = prop($$props, "configuration", 7);
36949
+ const config = /* @__PURE__ */ user_derived(() => o$1(defaults_default.configuration, configuration()));
36950
+ const SCORING_POLICY_CHOICES = [{
36951
+ label: "Partial credit per tile",
36952
+ value: "partialPerTile"
36953
+ }, {
36954
+ label: "All or nothing",
36955
+ value: "allOrNothing"
36956
+ }];
36957
+ /**
36958
+ * Keeps the edit as the element's model, so the next edit builds on it,
36959
+ * assigning it through the host: a remount after a detach starts from the
36960
+ * host's property. Announces it as a bubbling `model.updated` for the player
36961
+ * listening at its root.
36962
+ */
36828
36963
  function emit(next) {
36829
- if (onModelChange()) onModelChange()(next);
36830
- else {
36831
- model(next);
36832
- onChange()?.(next);
36833
- }
36964
+ $$props.$$host.model = next;
36965
+ $$props.$$host.dispatchEvent(new e$3(next));
36834
36966
  }
36835
36967
  /**
36836
- * The model with the fields this form edits filled in. Every other field,
36837
- * `id` and `element` included, passes through untouched: the player owns those
36838
- * two, and an edit must not drop what the form does not show.
36968
+ * The model with the controller's defaults filled in. Every other field, `id`
36969
+ * and `element` included, passes through untouched: the player owns those two,
36970
+ * and an edit must not drop what the form does not show.
36839
36971
  */
36840
36972
  function safeModel() {
36841
- const m = model() || {};
36842
- return {
36843
- ...m,
36844
- prompt: m.prompt ?? "",
36845
- promptEnabled: m.promptEnabled !== false,
36846
- circles: Array.isArray(m.circles) && m.circles.length > 0 ? m.circles : [{ label: "Set A" }, { label: "Set B" }],
36847
- tiles: Array.isArray(m.tiles) ? m.tiles : [],
36848
- regionLabels: m.regionLabels ?? {},
36849
- scoringPolicy: m.scoringPolicy ?? "partialPerTile"
36850
- };
36973
+ return createDefaultModel(model() || void 0);
36851
36974
  }
36852
36975
  function update(patch) {
36853
36976
  emit({
@@ -36858,9 +36981,6 @@ function Author($$anchor, $$props) {
36858
36981
  function onPromptChange(html) {
36859
36982
  update({ prompt: html });
36860
36983
  }
36861
- function setPromptEnabled(enabled) {
36862
- update({ promptEnabled: enabled });
36863
- }
36864
36984
  function setCircleLabel(idx, label) {
36865
36985
  update({ circles: safeModel().circles.map((c, i) => i === idx ? {
36866
36986
  ...c,
@@ -36931,9 +37051,6 @@ function Author($$anchor, $$props) {
36931
37051
  correctRegion: normalizeRegion(region)
36932
37052
  } : t) });
36933
37053
  }
36934
- function setScoringPolicy(policy) {
36935
- update({ scoringPolicy: policy });
36936
- }
36937
37054
  function setRegionLabelOverride(key, label) {
36938
37055
  const next = { ...safeModel().regionLabels || {} };
36939
37056
  if (label.trim().length === 0) delete next[key];
@@ -37038,278 +37155,321 @@ function Author($$anchor, $$props) {
37038
37155
  model($$value);
37039
37156
  flushSync();
37040
37157
  },
37041
- get onChange() {
37042
- return onChange();
37043
- },
37044
- set onChange($$value) {
37045
- onChange($$value);
37046
- flushSync();
37047
- },
37048
- get onModelChange() {
37049
- return onModelChange();
37158
+ get configuration() {
37159
+ return configuration();
37050
37160
  },
37051
- set onModelChange($$value) {
37052
- onModelChange($$value);
37161
+ set configuration($$value) {
37162
+ configuration($$value);
37053
37163
  flushSync();
37054
37164
  }
37055
37165
  };
37056
- var div = root_11();
37057
- var div_1 = child(div);
37058
- var div_2 = child(div_1);
37059
- let styles;
37060
- var div_3 = child(div_2);
37061
- var label_1 = child(div_3);
37062
- var input = child(label_1);
37063
- remove_input_defaults(input);
37064
- next(2);
37065
- reset$1(label_1);
37066
- var node = sibling(label_1, 2);
37067
- var consequent = ($$anchor) => {
37068
- {
37069
- let $0 = /* @__PURE__ */ user_derived(() => get$1(m).prompt || "");
37070
- EditableHtml($$anchor, {
37071
- get markup() {
37072
- return get$1($0);
37073
- },
37074
- onChange: onPromptChange,
37075
- placeholder: "Enter a prompt for the Venn classification question...",
37076
- ariaLabel: "Prompt"
37077
- });
37078
- }
37079
- };
37080
- if_block(node, ($$render) => {
37081
- if (get$1(m).promptEnabled !== false) $$render(consequent);
37082
- });
37083
- reset$1(div_3);
37084
- var div_4 = sibling(div_3, 2);
37085
- var div_5 = sibling(child(div_4), 4);
37086
- each(div_5, 21, () => get$1(m).circles, index, ($$anchor, circle, idx) => {
37087
- var label_2 = root();
37088
- var span = child(label_2);
37089
- span.textContent = `Circle ${idx + 1} label`;
37090
- var input_1 = sibling(span, 2);
37091
- remove_input_defaults(input_1);
37092
- reset$1(label_2);
37093
- template_effect(() => set_value(input_1, get$1(circle).label));
37094
- delegated("input", input_1, (e) => setCircleLabel(idx, e.currentTarget.value));
37095
- append($$anchor, label_2);
37096
- });
37097
- reset$1(div_5);
37098
- reset$1(div_4);
37099
- var div_6 = sibling(div_4, 2);
37100
- var div_7 = child(div_6);
37101
- var button = sibling(child(div_7), 2);
37102
- reset$1(div_7);
37103
- var node_1 = sibling(div_7, 2);
37104
- var consequent_1 = ($$anchor) => {
37105
- append($$anchor, root_1());
37106
- };
37107
- if_block(node_1, ($$render) => {
37108
- if (get$1(m).tiles.length === 0) $$render(consequent_1);
37109
- });
37110
- var ul = sibling(node_1, 2);
37111
- each(ul, 21, () => get$1(m).tiles, index, ($$anchor, tile, idx) => {
37112
- var li = root_3();
37113
- var div_9 = child(li);
37114
- var div_10 = child(div_9);
37115
- var label_3 = child(div_10);
37116
- var input_2 = sibling(child(label_3), 2);
37117
- remove_input_defaults(input_2);
37118
- reset$1(label_3);
37119
- var label_4 = sibling(label_3, 2);
37120
- var input_3 = sibling(child(label_4), 2);
37121
- remove_input_defaults(input_3);
37122
- reset$1(label_4);
37123
- var label_5 = sibling(label_4, 2);
37124
- var input_4 = sibling(child(label_5), 2);
37125
- remove_input_defaults(input_4);
37126
- reset$1(label_5);
37127
- var label_6 = sibling(label_5, 2);
37128
- var input_5 = sibling(child(label_6), 2);
37129
- remove_input_defaults(input_5);
37130
- reset$1(label_6);
37131
- var node_2 = sibling(label_6, 2);
37132
- var consequent_2 = ($$anchor) => {
37133
- var div_11 = root_2();
37134
- delegated("click", only_child(div_11), () => clearTileImage(idx));
37135
- append($$anchor, div_11);
37166
+ var div = root_13();
37167
+ var node = child(div);
37168
+ {
37169
+ const settings = ($$anchor) => {
37170
+ {
37171
+ let $0 = /* @__PURE__ */ user_derived(() => ({
37172
+ Settings: { promptEnabled: get$1(config).prompt?.settings && c$1(get$1(config).prompt.label) },
37173
+ Properties: {
37174
+ teacherInstructionsEnabled: get$1(config).teacherInstructions?.settings && c$1(get$1(config).teacherInstructions.label),
37175
+ scoringPolicy: get$1(config).scoringPolicy?.settings && l(get$1(config).scoringPolicy.label, SCORING_POLICY_CHOICES)
37176
+ }
37177
+ }));
37178
+ b($$anchor, {
37179
+ get model() {
37180
+ return get$1(m);
37181
+ },
37182
+ get configuration() {
37183
+ return get$1(config);
37184
+ },
37185
+ get groups() {
37186
+ return get$1($0);
37187
+ },
37188
+ onChangeModel: (next) => update(next)
37189
+ });
37190
+ }
37136
37191
  };
37137
- var d = /* @__PURE__ */ user_derived(() => (get$1(tile).imageUrl ?? "").trim());
37138
- if_block(node_2, ($$render) => {
37139
- if (get$1(d)) $$render(consequent_2);
37140
- });
37141
- reset$1(div_10);
37142
- var div_12 = sibling(div_10, 2);
37143
- var button_2 = child(div_12);
37144
- button_2.disabled = idx === 0;
37145
- var button_3 = sibling(button_2, 2);
37146
- var button_4 = sibling(button_3, 2);
37147
- reset$1(div_12);
37148
- reset$1(div_9);
37149
- var div_13 = sibling(div_9, 2);
37150
- RegionPicker(sibling(child(div_13), 2), {
37151
- get circles() {
37152
- return get$1(m).circles;
37192
+ let $0 = /* @__PURE__ */ user_derived(() => get$1(config).settingsPanelDisabled === true || !s$1(get$1(config)));
37193
+ y(node, {
37194
+ get hideSettings() {
37195
+ return get$1($0);
37153
37196
  },
37154
- get regionLabels() {
37155
- return get$1(m).regionLabels;
37156
- },
37157
- get value() {
37158
- return get$1(tile).correctRegion;
37159
- },
37160
- onchange: (region) => setTileRegion(idx, region)
37161
- });
37162
- reset$1(div_13);
37163
- reset$1(li);
37164
- template_effect(() => {
37165
- set_value(input_2, get$1(tile).id);
37166
- set_value(input_3, get$1(tile).label);
37167
- set_value(input_4, get$1(tile).imageUrl ?? "");
37168
- set_value(input_5, get$1(tile).imageAlt ?? "");
37169
- button_3.disabled = idx === get$1(m).tiles.length - 1;
37170
- });
37171
- delegated("input", input_2, (e) => setTileId(idx, e.currentTarget.value));
37172
- delegated("input", input_3, (e) => setTileLabel(idx, e.currentTarget.value));
37173
- delegated("input", input_4, (e) => setTileImageUrl(idx, e.currentTarget.value));
37174
- delegated("input", input_5, (e) => setTileImageAlt(idx, e.currentTarget.value));
37175
- delegated("click", button_2, () => moveTile(idx, -1));
37176
- delegated("click", button_3, () => moveTile(idx, 1));
37177
- delegated("click", button_4, () => removeTile(idx));
37178
- append($$anchor, li);
37179
- });
37180
- reset$1(ul);
37181
- reset$1(div_6);
37182
- var div_14 = sibling(div_6, 2);
37183
- var label_7 = sibling(child(div_14), 2);
37184
- var input_6 = child(label_7);
37185
- remove_input_defaults(input_6);
37186
- next(2);
37187
- reset$1(label_7);
37188
- var label_8 = sibling(label_7, 2);
37189
- var input_7 = child(label_8);
37190
- remove_input_defaults(input_7);
37191
- next(2);
37192
- reset$1(label_8);
37193
- reset$1(div_14);
37194
- var details = sibling(div_14, 2);
37195
- each(sibling(child(details), 4), 17, () => get$1(regions), (region) => regionKey(region), ($$anchor, region) => {
37196
- const key = /* @__PURE__ */ user_derived(() => regionKey(get$1(region)));
37197
- const placeholder = /* @__PURE__ */ user_derived(() => composeRegionLabel(get$1(m).circles || [], get$1(region)));
37198
- var label_9 = root_4();
37199
- var span_1 = child(label_9);
37200
- var text = only_child(span_1, true);
37201
- var input_8 = sibling(span_1, 2);
37202
- remove_input_defaults(input_8);
37203
- reset$1(label_9);
37204
- template_effect(() => {
37205
- set_text(text, get$1(key) || "(outside)");
37206
- set_attribute(input_8, "placeholder", get$1(placeholder));
37207
- set_value(input_8, get$1(m).regionLabels?.[get$1(key)] ?? "");
37208
- });
37209
- delegated("input", input_8, (e) => setRegionLabelOverride(get$1(key), e.currentTarget.value));
37210
- append($$anchor, label_9);
37211
- });
37212
- reset$1(details);
37213
- reset$1(div_2);
37214
- var button_5 = sibling(div_2, 2);
37215
- set_attribute(button_5, "aria-valuemin", MIN_EDITOR_W);
37216
- var div_15 = sibling(button_5, 2);
37217
- var div_16 = sibling(child(div_15), 4);
37218
- var div_17 = child(div_16);
37219
- var text_1 = sibling(child(div_17));
37220
- reset$1(div_17);
37221
- var div_18 = sibling(div_17, 2);
37222
- var text_2 = sibling(child(div_18));
37223
- reset$1(div_18);
37224
- var div_19 = sibling(div_18, 2);
37225
- var text_3 = sibling(child(div_19));
37226
- reset$1(div_19);
37227
- reset$1(div_16);
37228
- var node_5 = sibling(div_16, 2);
37229
- var consequent_3 = ($$anchor) => {
37230
- var div_20 = root_5();
37231
- VennClassification(child(div_20), {
37232
- get model() {
37233
- return get$1(previewModel);
37197
+ settings,
37198
+ children: ($$anchor, $$slotProps) => {
37199
+ var div_1 = root_12();
37200
+ var div_2 = child(div_1);
37201
+ let styles;
37202
+ var node_1 = child(div_2);
37203
+ var consequent = ($$anchor) => {
37204
+ var div_3 = root();
37205
+ var div_4 = child(div_3);
37206
+ var text = only_child(div_4, true);
37207
+ var node_2 = sibling(div_4, 2);
37208
+ {
37209
+ let $0 = /* @__PURE__ */ user_derived(() => get$1(m).teacherInstructions || "");
37210
+ let $1 = /* @__PURE__ */ user_derived(() => get$1(config).teacherInstructions?.label);
37211
+ EditableHtml(node_2, {
37212
+ get markup() {
37213
+ return get$1($0);
37214
+ },
37215
+ onChange: (html) => update({ teacherInstructions: html }),
37216
+ get ariaLabel() {
37217
+ return get$1($1);
37218
+ }
37219
+ });
37220
+ }
37221
+ reset$1(div_3);
37222
+ template_effect(() => set_text(text, get$1(config).teacherInstructions?.label));
37223
+ append($$anchor, div_3);
37224
+ };
37225
+ if_block(node_1, ($$render) => {
37226
+ if (get$1(m).teacherInstructionsEnabled !== false) $$render(consequent);
37227
+ });
37228
+ var node_3 = sibling(node_1, 2);
37229
+ var consequent_1 = ($$anchor) => {
37230
+ var div_5 = root();
37231
+ var div_6 = child(div_5);
37232
+ var text_1 = only_child(div_6, true);
37233
+ var node_4 = sibling(div_6, 2);
37234
+ {
37235
+ let $0 = /* @__PURE__ */ user_derived(() => get$1(m).prompt || "");
37236
+ let $1 = /* @__PURE__ */ user_derived(() => get$1(config).prompt?.label);
37237
+ EditableHtml(node_4, {
37238
+ get markup() {
37239
+ return get$1($0);
37240
+ },
37241
+ onChange: onPromptChange,
37242
+ placeholder: "Enter a prompt for the Venn classification question...",
37243
+ get ariaLabel() {
37244
+ return get$1($1);
37245
+ }
37246
+ });
37247
+ }
37248
+ reset$1(div_5);
37249
+ template_effect(() => set_text(text_1, get$1(config).prompt?.label));
37250
+ append($$anchor, div_5);
37251
+ };
37252
+ if_block(node_3, ($$render) => {
37253
+ if (get$1(m).promptEnabled !== false) $$render(consequent_1);
37254
+ });
37255
+ var div_7 = sibling(node_3, 2);
37256
+ var div_8 = sibling(child(div_7), 4);
37257
+ each(div_8, 21, () => get$1(m).circles, index, ($$anchor, circle, idx) => {
37258
+ var label_1 = root_1();
37259
+ var span = child(label_1);
37260
+ span.textContent = `Circle ${idx + 1} label`;
37261
+ var input = sibling(span, 2);
37262
+ remove_input_defaults(input);
37263
+ reset$1(label_1);
37264
+ template_effect(() => set_value(input, get$1(circle).label));
37265
+ delegated("input", input, (e) => setCircleLabel(idx, e.currentTarget.value));
37266
+ append($$anchor, label_1);
37267
+ });
37268
+ reset$1(div_8);
37269
+ reset$1(div_7);
37270
+ var div_9 = sibling(div_7, 2);
37271
+ var div_10 = child(div_9);
37272
+ var button = sibling(child(div_10), 2);
37273
+ reset$1(div_10);
37274
+ var node_5 = sibling(div_10, 2);
37275
+ var consequent_2 = ($$anchor) => {
37276
+ append($$anchor, root_2());
37277
+ };
37278
+ if_block(node_5, ($$render) => {
37279
+ if (get$1(m).tiles.length === 0) $$render(consequent_2);
37280
+ });
37281
+ var ul = sibling(node_5, 2);
37282
+ each(ul, 21, () => get$1(m).tiles, index, ($$anchor, tile, idx) => {
37283
+ var li = root_4();
37284
+ var div_12 = child(li);
37285
+ var div_13 = child(div_12);
37286
+ var label_2 = child(div_13);
37287
+ var input_1 = sibling(child(label_2), 2);
37288
+ remove_input_defaults(input_1);
37289
+ reset$1(label_2);
37290
+ var label_3 = sibling(label_2, 2);
37291
+ var input_2 = sibling(child(label_3), 2);
37292
+ remove_input_defaults(input_2);
37293
+ reset$1(label_3);
37294
+ var label_4 = sibling(label_3, 2);
37295
+ var input_3 = sibling(child(label_4), 2);
37296
+ remove_input_defaults(input_3);
37297
+ reset$1(label_4);
37298
+ var label_5 = sibling(label_4, 2);
37299
+ var input_4 = sibling(child(label_5), 2);
37300
+ remove_input_defaults(input_4);
37301
+ reset$1(label_5);
37302
+ var node_6 = sibling(label_5, 2);
37303
+ var consequent_3 = ($$anchor) => {
37304
+ var div_14 = root_3();
37305
+ delegated("click", only_child(div_14), () => clearTileImage(idx));
37306
+ append($$anchor, div_14);
37307
+ };
37308
+ var d = /* @__PURE__ */ user_derived(() => (get$1(tile).imageUrl ?? "").trim());
37309
+ if_block(node_6, ($$render) => {
37310
+ if (get$1(d)) $$render(consequent_3);
37311
+ });
37312
+ reset$1(div_13);
37313
+ var div_15 = sibling(div_13, 2);
37314
+ var button_2 = child(div_15);
37315
+ button_2.disabled = idx === 0;
37316
+ var button_3 = sibling(button_2, 2);
37317
+ var button_4 = sibling(button_3, 2);
37318
+ reset$1(div_15);
37319
+ reset$1(div_12);
37320
+ var div_16 = sibling(div_12, 2);
37321
+ RegionPicker(sibling(child(div_16), 2), {
37322
+ get circles() {
37323
+ return get$1(m).circles;
37324
+ },
37325
+ get regionLabels() {
37326
+ return get$1(m).regionLabels;
37327
+ },
37328
+ get value() {
37329
+ return get$1(tile).correctRegion;
37330
+ },
37331
+ onchange: (region) => setTileRegion(idx, region)
37332
+ });
37333
+ reset$1(div_16);
37334
+ reset$1(li);
37335
+ template_effect(() => {
37336
+ set_value(input_1, get$1(tile).id);
37337
+ set_value(input_2, get$1(tile).label);
37338
+ set_value(input_3, get$1(tile).imageUrl ?? "");
37339
+ set_value(input_4, get$1(tile).imageAlt ?? "");
37340
+ button_3.disabled = idx === get$1(m).tiles.length - 1;
37341
+ });
37342
+ delegated("input", input_1, (e) => setTileId(idx, e.currentTarget.value));
37343
+ delegated("input", input_2, (e) => setTileLabel(idx, e.currentTarget.value));
37344
+ delegated("input", input_3, (e) => setTileImageUrl(idx, e.currentTarget.value));
37345
+ delegated("input", input_4, (e) => setTileImageAlt(idx, e.currentTarget.value));
37346
+ delegated("click", button_2, () => moveTile(idx, -1));
37347
+ delegated("click", button_3, () => moveTile(idx, 1));
37348
+ delegated("click", button_4, () => removeTile(idx));
37349
+ append($$anchor, li);
37350
+ });
37351
+ reset$1(ul);
37352
+ reset$1(div_9);
37353
+ var details = sibling(div_9, 2);
37354
+ each(sibling(child(details), 4), 17, () => get$1(regions), (region) => regionKey(region), ($$anchor, region) => {
37355
+ const key = /* @__PURE__ */ user_derived(() => regionKey(get$1(region)));
37356
+ const placeholder = /* @__PURE__ */ user_derived(() => composeRegionLabel(get$1(m).circles || [], get$1(region)));
37357
+ var label_6 = root_5();
37358
+ var span_1 = child(label_6);
37359
+ var text_2 = only_child(span_1, true);
37360
+ var input_5 = sibling(span_1, 2);
37361
+ remove_input_defaults(input_5);
37362
+ reset$1(label_6);
37363
+ template_effect(() => {
37364
+ set_text(text_2, get$1(key) || "(outside)");
37365
+ set_attribute(input_5, "placeholder", get$1(placeholder));
37366
+ set_value(input_5, get$1(m).regionLabels?.[get$1(key)] ?? "");
37367
+ });
37368
+ delegated("input", input_5, (e) => setRegionLabelOverride(get$1(key), e.currentTarget.value));
37369
+ append($$anchor, label_6);
37370
+ });
37371
+ reset$1(details);
37372
+ reset$1(div_2);
37373
+ var button_5 = sibling(div_2, 2);
37374
+ set_attribute(button_5, "aria-valuemin", MIN_EDITOR_W);
37375
+ var div_17 = sibling(button_5, 2);
37376
+ var div_18 = sibling(child(div_17), 4);
37377
+ var div_19 = child(div_18);
37378
+ var text_3 = sibling(child(div_19));
37379
+ reset$1(div_19);
37380
+ var div_20 = sibling(div_19, 2);
37381
+ var text_4 = sibling(child(div_20));
37382
+ reset$1(div_20);
37383
+ var div_21 = sibling(div_20, 2);
37384
+ var text_5 = sibling(child(div_21));
37385
+ reset$1(div_21);
37386
+ reset$1(div_18);
37387
+ var node_9 = sibling(div_18, 2);
37388
+ var consequent_4 = ($$anchor) => {
37389
+ var div_22 = root_6();
37390
+ VennClassification(child(div_22), {
37391
+ get model() {
37392
+ return get$1(previewModel);
37393
+ },
37394
+ get session() {
37395
+ return get$1(previewSession);
37396
+ }
37397
+ });
37398
+ reset$1(div_22);
37399
+ append($$anchor, div_22);
37400
+ };
37401
+ var consequent_5 = ($$anchor) => {
37402
+ append($$anchor, root_7());
37403
+ };
37404
+ var alternate = ($$anchor) => {
37405
+ append($$anchor, root_8());
37406
+ };
37407
+ if_block(node_9, ($$render) => {
37408
+ if (get$1(m).tiles.length > 0 && get$1(m).circles?.length === 2) $$render(consequent_4);
37409
+ else if (get$1(m).tiles.length === 0) $$render(consequent_5, 1);
37410
+ else $$render(alternate, -1);
37411
+ });
37412
+ var node_11 = sibling(node_9, 2);
37413
+ var consequent_7 = ($$anchor) => {
37414
+ var fragment_1 = root_11();
37415
+ var ol = sibling(first_child(fragment_1), 2);
37416
+ each(ol, 21, () => get$1(m).tiles, index, ($$anchor, tile) => {
37417
+ var li_1 = root_10();
37418
+ var span_2 = child(li_1);
37419
+ var node_12 = child(span_2);
37420
+ var consequent_6 = ($$anchor) => {
37421
+ var img = root_9();
37422
+ template_effect(() => set_attribute(img, "src", get$1(tile).imageUrl));
37423
+ append($$anchor, img);
37424
+ };
37425
+ var d_1 = /* @__PURE__ */ user_derived(() => (get$1(tile).imageUrl ?? "").trim());
37426
+ if_block(node_12, ($$render) => {
37427
+ if (get$1(d_1)) $$render(consequent_6);
37428
+ });
37429
+ var text_6 = sibling(node_12);
37430
+ reset$1(span_2);
37431
+ var text_7 = only_child(sibling(span_2, 4), true);
37432
+ reset$1(li_1);
37433
+ template_effect(($0, $1) => {
37434
+ set_text(text_6, ` ${$0 ?? ""}`);
37435
+ set_text(text_7, $1);
37436
+ }, [() => stripHtml(get$1(tile).label) || (get$1(tile).imageAlt ?? "").trim() || get$1(tile).id, () => getRegionLabel(get$1(m), get$1(tile).correctRegion)]);
37437
+ append($$anchor, li_1);
37438
+ });
37439
+ reset$1(ol);
37440
+ append($$anchor, fragment_1);
37441
+ };
37442
+ if_block(node_11, ($$render) => {
37443
+ if (get$1(m).tiles.length > 0) $$render(consequent_7);
37444
+ });
37445
+ reset$1(div_17);
37446
+ reset$1(div_1);
37447
+ bind_this(div_1, ($$value) => set(authorShellEl, $$value), () => get$1(authorShellEl));
37448
+ template_effect(($0, $1) => {
37449
+ styles = set_style(div_2, "", styles, { width: get$1(editorColumnWidth) });
37450
+ set_attribute(button_5, "aria-valuemax", get$1(shellWidth) > 0 ? get$1(shellWidth) - MIN_PREVIEW_W - SPLITTER_W : 360);
37451
+ set_attribute(button_5, "aria-valuenow", $0);
37452
+ set_text(text_3, ` ${$1 ?? ""}`);
37453
+ set_text(text_4, ` ${get$1(m).scoringPolicy === "allOrNothing" ? "All or nothing" : "Partial per tile"}`);
37454
+ set_text(text_5, ` ${get$1(m).tiles.length ?? ""}`);
37455
+ }, [() => get$1(editorWidthPx) ?? (get$1(shellWidth) > 0 ? Math.floor((get$1(shellWidth) - SPLITTER_W) / 2) : MIN_EDITOR_W), () => get$1(m).circles.map((c) => c.label).join(", ")]);
37456
+ delegated("click", button, addTile);
37457
+ delegated("pointerdown", button_5, onSplitPointerDown);
37458
+ delegated("keydown", button_5, onSplitKeyDown);
37459
+ bind_element_size(div_1, "clientWidth", ($$value) => set(shellWidth, $$value));
37460
+ append($$anchor, div_1);
37234
37461
  },
37235
- get session() {
37236
- return get$1(previewSession);
37462
+ $$slots: {
37463
+ settings: true,
37464
+ default: true
37237
37465
  }
37238
37466
  });
37239
- reset$1(div_20);
37240
- append($$anchor, div_20);
37241
- };
37242
- var consequent_4 = ($$anchor) => {
37243
- append($$anchor, root_6());
37244
- };
37245
- var alternate = ($$anchor) => {
37246
- append($$anchor, root_7());
37247
- };
37248
- if_block(node_5, ($$render) => {
37249
- if (get$1(m).tiles.length > 0 && get$1(m).circles?.length === 2) $$render(consequent_3);
37250
- else if (get$1(m).tiles.length === 0) $$render(consequent_4, 1);
37251
- else $$render(alternate, -1);
37252
- });
37253
- var node_7 = sibling(node_5, 2);
37254
- var consequent_6 = ($$anchor) => {
37255
- var fragment_1 = root_10();
37256
- var ol = sibling(first_child(fragment_1), 2);
37257
- each(ol, 21, () => get$1(m).tiles, index, ($$anchor, tile) => {
37258
- var li_1 = root_9();
37259
- var span_2 = child(li_1);
37260
- var node_8 = child(span_2);
37261
- var consequent_5 = ($$anchor) => {
37262
- var img = root_8();
37263
- template_effect(() => set_attribute(img, "src", get$1(tile).imageUrl));
37264
- append($$anchor, img);
37265
- };
37266
- var d_1 = /* @__PURE__ */ user_derived(() => (get$1(tile).imageUrl ?? "").trim());
37267
- if_block(node_8, ($$render) => {
37268
- if (get$1(d_1)) $$render(consequent_5);
37269
- });
37270
- var text_4 = sibling(node_8);
37271
- reset$1(span_2);
37272
- var text_5 = only_child(sibling(span_2, 4), true);
37273
- reset$1(li_1);
37274
- template_effect(($0, $1) => {
37275
- set_text(text_4, ` ${$0 ?? ""}`);
37276
- set_text(text_5, $1);
37277
- }, [() => stripHtml(get$1(tile).label) || (get$1(tile).imageAlt ?? "").trim() || get$1(tile).id, () => getRegionLabel(get$1(m), get$1(tile).correctRegion)]);
37278
- append($$anchor, li_1);
37279
- });
37280
- reset$1(ol);
37281
- append($$anchor, fragment_1);
37282
- };
37283
- if_block(node_7, ($$render) => {
37284
- if (get$1(m).tiles.length > 0) $$render(consequent_6);
37285
- });
37286
- reset$1(div_15);
37287
- reset$1(div_1);
37288
- bind_this(div_1, ($$value) => set(authorShellEl, $$value), () => get$1(authorShellEl));
37467
+ }
37289
37468
  reset$1(div);
37290
- template_effect(($0, $1) => {
37291
- styles = set_style(div_2, "", styles, { width: get$1(editorColumnWidth) });
37292
- set_checked(input, get$1(m).promptEnabled !== false);
37293
- set_checked(input_6, get$1(m).scoringPolicy !== "allOrNothing");
37294
- set_checked(input_7, get$1(m).scoringPolicy === "allOrNothing");
37295
- set_attribute(button_5, "aria-valuemax", get$1(shellWidth) > 0 ? get$1(shellWidth) - MIN_PREVIEW_W - SPLITTER_W : 360);
37296
- set_attribute(button_5, "aria-valuenow", $0);
37297
- set_text(text_1, ` ${$1 ?? ""}`);
37298
- set_text(text_2, ` ${get$1(m).scoringPolicy === "allOrNothing" ? "All or nothing" : "Partial per tile"}`);
37299
- set_text(text_3, ` ${get$1(m).tiles.length ?? ""}`);
37300
- }, [() => get$1(editorWidthPx) ?? (get$1(shellWidth) > 0 ? Math.floor((get$1(shellWidth) - SPLITTER_W) / 2) : MIN_EDITOR_W), () => get$1(m).circles.map((c) => c.label).join(", ")]);
37301
- delegated("change", input, (e) => setPromptEnabled(e.currentTarget.checked));
37302
- delegated("click", button, addTile);
37303
- delegated("change", input_6, () => setScoringPolicy("partialPerTile"));
37304
- delegated("change", input_7, () => setScoringPolicy("allOrNothing"));
37305
- delegated("pointerdown", button_5, onSplitPointerDown);
37306
- delegated("keydown", button_5, onSplitKeyDown);
37307
- bind_element_size(div_1, "clientWidth", ($$value) => set(shellWidth, $$value));
37308
37469
  append($$anchor, div);
37309
37470
  return pop($$exports);
37310
37471
  }
37311
37472
  delegate([
37312
- "change",
37313
37473
  "input",
37314
37474
  "click",
37315
37475
  "pointerdown",
@@ -37317,45 +37477,12 @@ delegate([
37317
37477
  ]);
37318
37478
  create_custom_element(Author, {
37319
37479
  model: { type: "Object" },
37320
- onModelChange: {},
37321
- onChange: {}
37480
+ configuration: { type: "Object" }
37322
37481
  }, [], []);
37323
37482
  //#endregion
37324
37483
  //#region src/author/index.ts
37325
- var SvelteElementClass = Author.element;
37326
- var VennClassificationAuthor = class extends SvelteElementClass {
37327
- /**
37328
- * The component reports each edit through its `onModelChange` prop, assigned
37329
- * here through the accessor Svelte generates for it. The host keeps the
37330
- * edited model, renders from it, and announces it as `model.updated`, which
37331
- * bubbles to the listener an authoring player registers at its root.
37332
- */
37333
- constructor() {
37334
- super();
37335
- _defineProperty(this, "_model", null);
37336
- _defineProperty(this, "_onChange", null);
37337
- this.onModelChange = (update) => {
37338
- this._model = update;
37339
- super.model = update;
37340
- this._onChange?.(update);
37341
- this.dispatchEvent(new e$3(update, false));
37342
- };
37343
- }
37344
- set model(m) {
37345
- this._model = m;
37346
- super.model = m;
37347
- }
37348
- get model() {
37349
- return this._model;
37350
- }
37351
- set onChange(fn) {
37352
- this._onChange = fn;
37353
- }
37354
- get onChange() {
37355
- return this._onChange || (() => {});
37356
- }
37357
- };
37484
+ var author_default = Author.element;
37358
37485
  //#endregion
37359
- export { VennClassificationAuthor as default };
37486
+ export { author_default as default };
37360
37487
 
37361
37488
  //# sourceMappingURL=index.js.map