eat-js-sdk 2.0.55 → 2.0.57

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.
@@ -13898,32 +13898,52 @@ var root_7$2 = /* @__PURE__ */ from_html(`<span class="preview-vertical hidden">
13898
13898
  var root$6 = /* @__PURE__ */ from_html(`<button data-item-button=""><span><!></span> <div><span></span> <span class="absolute"><!> <!></span></div></button>`);
13899
13899
  function CategoriseItem($$anchor, $$props) {
13900
13900
  push($$props, true);
13901
- let itemId = prop($$props, "itemId", 7), itemText = prop($$props, "itemText", 7), containerId = prop($$props, "containerId", 7), mode = prop($$props, "mode", 7), isSelected = prop($$props, "isSelected", 7, false), isLocked = prop($$props, "isLocked", 7, false), resultType = prop($$props, "resultType", 7, ""), hasAnyItemSelected = prop($$props, "hasAnyItemSelected", 7, false), isCurrentMobileItem = prop($$props, "isCurrentMobileItem", 7, true), isClonedItem = prop($$props, "isClonedItem", 7, false), isConsideredItem = prop($$props, "isConsideredItem", 7, false), currentTabContainer = prop($$props, "currentTabContainer", 7, null), additionalClasses = prop($$props, "additionalClasses", 7, ""), onclick = prop($$props, "onclick", 7), onkeydown = prop($$props, "onkeydown", 7);
13901
+ let itemId = prop($$props, "itemId", 7), itemText = prop($$props, "itemText", 7), containerId = prop($$props, "containerId", 7), mode = prop($$props, "mode", 7), selectedItemId = prop($$props, "selectedItemId", 7, void 0), isLocked = prop($$props, "isLocked", 7, false), isCollapsed = prop($$props, "isCollapsed", 7, false), resultType = prop($$props, "resultType", 7, ""), isCurrentMobileItem = prop($$props, "isCurrentMobileItem", 7, true), isClonedItem = prop($$props, "isClonedItem", 7, false), isConsideredItem = prop($$props, "isConsideredItem", 7, false), activeContainerForKeyboard = prop($$props, "activeContainerForKeyboard", 7, void 0), onclick = prop($$props, "onclick", 7), onfocus = prop($$props, "onfocus", 7), onblur = prop($$props, "onblur", 7), onkeydown = prop($$props, "onkeydown", 7);
13902
13902
  const ariaWord = useRemoveRichTextHtmlTags(itemText());
13903
13903
  const isWordBin = containerId() === CATEGORISE.CONTAINER_WORD_BIN_ID;
13904
13904
  let touchStartX = /* @__PURE__ */ state(0);
13905
13905
  let touchStartY = /* @__PURE__ */ state(0);
13906
13906
  let isDragging2 = /* @__PURE__ */ state(false);
13907
+ let lastFocusTime = /* @__PURE__ */ state(0);
13908
+ const cleanItemId = /* @__PURE__ */ user_derived(() => itemId().split("@eat-dash@")[0]);
13909
+ const isSelected = /* @__PURE__ */ user_derived(() => selectedItemId() === get$1(cleanItemId));
13910
+ const hasAnyItemSelected = /* @__PURE__ */ user_derived(() => !!selectedItemId());
13911
+ const canInteract = /* @__PURE__ */ user_derived(() => !isLocked() && (!resultType() || mode() === MODES.INTERACTIVE));
13907
13912
  const ariaLabel = /* @__PURE__ */ user_derived(() => () => {
13908
- if (resultType() === ANSWER_RESULTS.INCORRECT && isWordBin && !isSelected()) {
13913
+ if (resultType() === ANSWER_RESULTS.INCORRECT && isWordBin && !get$1(isSelected)) {
13909
13914
  return `Skipped answer: ${ariaWord}`;
13910
13915
  }
13911
- if ((resultType() === ANSWER_RESULTS.CORRECT || resultType() === ANSWER_RESULTS.INCORRECT) && !isSelected()) {
13916
+ if ((resultType() === ANSWER_RESULTS.CORRECT || resultType() === ANSWER_RESULTS.INCORRECT) && !get$1(isSelected)) {
13912
13917
  return `Student's answer: ${ariaWord} (${resultType()})`;
13913
13918
  }
13914
13919
  if (resultType() === ANSWER_RESULTS.MISSED) {
13915
13920
  return `Missing answer: ${ariaWord}`;
13916
13921
  }
13917
- return `${isSelected() ? "Selected option" : "Option"}: ${ariaWord}`;
13922
+ return `${get$1(isSelected) ? "Selected option" : "Option"}: ${ariaWord}`;
13918
13923
  });
13924
+ const handleFocus = (event2) => {
13925
+ set(lastFocusTime, Date.now(), true);
13926
+ if (onfocus()) {
13927
+ onfocus()(event2);
13928
+ }
13929
+ };
13930
+ const handleBlur = (event2) => {
13931
+ if (onblur()) {
13932
+ onblur()(event2);
13933
+ }
13934
+ };
13919
13935
  const selectItem = (event2) => {
13920
13936
  event2.stopPropagation();
13937
+ const now2 = Date.now();
13938
+ const timeSinceFocus = now2 - get$1(lastFocusTime);
13939
+ if (timeSinceFocus < 100) {
13940
+ console.log("Ignoring NVDA auto-activation?");
13941
+ return;
13942
+ }
13921
13943
  if (isLocked()) return;
13922
13944
  if (resultType() && mode() !== MODES.INTERACTIVE) return;
13923
- if (hasAnyItemSelected() && !isSelected()) return;
13924
- if (onclick()) {
13925
- onclick()();
13926
- }
13945
+ if (get$1(hasAnyItemSelected) && !get$1(isSelected)) return;
13946
+ if (onclick()) onclick()();
13927
13947
  };
13928
13948
  const handleTouchStart = (event2) => {
13929
13949
  set(isDragging2, false);
@@ -13931,9 +13951,11 @@ function CategoriseItem($$anchor, $$props) {
13931
13951
  set(touchStartX, event2.touches[0].clientX, true);
13932
13952
  set(touchStartY, event2.touches[0].clientY, true);
13933
13953
  }
13954
+ if (get$1(hasAnyItemSelected)) {
13955
+ event2.stopPropagation();
13956
+ }
13934
13957
  };
13935
13958
  const handleTouchMove = (event2) => {
13936
- event2.preventDefault();
13937
13959
  if (event2.touches.length > 0) {
13938
13960
  const deltaX = Math.abs(event2.touches[0].clientX - get$1(touchStartX));
13939
13961
  const deltaY = Math.abs(event2.touches[0].clientY - get$1(touchStartY));
@@ -13941,9 +13963,13 @@ function CategoriseItem($$anchor, $$props) {
13941
13963
  set(isDragging2, true);
13942
13964
  }
13943
13965
  }
13966
+ if (get$1(hasAnyItemSelected)) {
13967
+ event2.stopPropagation();
13968
+ }
13944
13969
  };
13945
13970
  const handleTouchEnd = (event2) => {
13946
13971
  if (!get$1(isDragging2)) {
13972
+ event2.preventDefault();
13947
13973
  selectItem(event2);
13948
13974
  }
13949
13975
  set(isDragging2, false);
@@ -13955,18 +13981,18 @@ function CategoriseItem($$anchor, $$props) {
13955
13981
  if (onkeydown()) {
13956
13982
  onkeydown()(event2);
13957
13983
  }
13984
+ } else if (event2.key === "Tab") {
13985
+ if (onkeydown()) {
13986
+ onkeydown()(event2);
13987
+ }
13958
13988
  }
13959
13989
  };
13960
13990
  const itemTabIndex = /* @__PURE__ */ user_derived(() => () => {
13961
- if (hasAnyItemSelected()) {
13962
- return -1;
13963
- }
13964
- if (isWordBin && isCurrentMobileItem()) {
13965
- return 0;
13966
- }
13967
- if (currentTabContainer() === containerId()) {
13968
- return 0;
13969
- }
13991
+ if (get$1(isSelected)) return 0;
13992
+ if (isCollapsed()) return -1;
13993
+ if (get$1(hasAnyItemSelected)) return -1;
13994
+ if (activeContainerForKeyboard() === containerId()) return 0;
13995
+ if (isWordBin && isCurrentMobileItem()) return 0;
13970
13996
  return -1;
13971
13997
  });
13972
13998
  const buttonClasses = /* @__PURE__ */ user_derived(() => () => {
@@ -13979,7 +14005,10 @@ function CategoriseItem($$anchor, $$props) {
13979
14005
  "p-1",
13980
14006
  "border",
13981
14007
  "border-gray-800",
13982
- "rounded-lg"
14008
+ "rounded-lg",
14009
+ "mr-2",
14010
+ "mb-2",
14011
+ "last:mr-0"
13983
14012
  ];
13984
14013
  if (isClonedItem()) {
13985
14014
  classes.push("opacity-50", "raw-focus-ring", "bg-violet-100");
@@ -13987,65 +14016,46 @@ function CategoriseItem($$anchor, $$props) {
13987
14016
  if (isConsideredItem()) {
13988
14017
  classes.push("hidden");
13989
14018
  }
13990
- classes.push("mr-2", "mb-2", "last:mr-0");
13991
14019
  if (isWordBin && !isCurrentMobileItem()) {
13992
14020
  classes.push("hidden", "md:flex");
13993
14021
  }
13994
- if (isSelected()) {
14022
+ if (get$1(isSelected)) {
13995
14023
  classes.push("bg-blue-1000", "!border-blue-1000", "raw-focus-ring", "!cursor-pointer");
13996
14024
  } else {
13997
14025
  classes.push("bg-gray-100");
13998
14026
  }
13999
- if (resultType() === ANSWER_RESULTS.CORRECT && !isSelected()) {
14027
+ if (resultType() === ANSWER_RESULTS.CORRECT && !get$1(isSelected)) {
14000
14028
  classes.push("border-green-800", "bg-green-300");
14001
- } else if (resultType() === ANSWER_RESULTS.INCORRECT && !isSelected()) {
14029
+ }
14030
+ if (resultType() === ANSWER_RESULTS.INCORRECT && !get$1(isSelected)) {
14002
14031
  classes.push("border-red-800", "bg-red-300");
14003
- } else if (resultType() === ANSWER_RESULTS.MISSED) {
14032
+ }
14033
+ if (resultType() === ANSWER_RESULTS.MISSED) {
14004
14034
  classes.push("border-green-800");
14005
14035
  }
14006
- const isInteractive = !isSelected() && !isLocked() && (!resultType() || mode() === MODES.INTERACTIVE) && !hasAnyItemSelected();
14007
- if (isInteractive) {
14036
+ if (!get$1(isSelected) && get$1(canInteract) && !get$1(hasAnyItemSelected)) {
14008
14037
  classes.push("td:hover-focus-ring", "td:hover:bg-violet-100", "!cursor-pointer");
14009
- } else {
14038
+ } else if (!get$1(isSelected)) {
14010
14039
  classes.push("!cursor-default");
14011
14040
  }
14012
- if (additionalClasses()) {
14013
- classes.push(additionalClasses());
14014
- }
14015
14041
  return classes.join(" ");
14016
14042
  });
14017
14043
  const textClasses = /* @__PURE__ */ user_derived(() => () => {
14018
- const classes = ["text-charcoal", "text-base", "pl-3", "mr-4"];
14019
- if (isSelected()) {
14020
- classes.push("text-white");
14021
- }
14022
- return classes.join(" ");
14044
+ return `text-charcoal text-base pl-3 mr-4 ${get$1(isSelected) ? "text-white" : ""}`;
14023
14045
  });
14024
14046
  const iconContainerClasses = /* @__PURE__ */ user_derived(() => () => {
14025
- const classes = [
14026
- "group",
14027
- "text-blue-1000",
14028
- "h-11",
14029
- "w-11",
14030
- "min-w-[44px]",
14031
- "flex",
14032
- "items-center",
14033
- "justify-center",
14034
- "btn-vertical-icon"
14035
- ];
14036
- const shouldShowGrabCursor = !hasAnyItemSelected() && !isLocked() && !isSelected() && (!resultType() || mode() === MODES.INTERACTIVE);
14037
- if (shouldShowGrabCursor) {
14038
- classes.push("td:hover:cursor-grab", "td:hover:text-soft-blue");
14047
+ const base = "group text-blue-1000 h-11 w-11 min-w-[44px] flex items-center justify-center btn-vertical-icon";
14048
+ if (!get$1(hasAnyItemSelected) && get$1(canInteract) && !get$1(isSelected)) {
14049
+ return `${base} td:hover:cursor-grab td:hover:text-soft-blue`;
14039
14050
  }
14040
- return classes.join(" ");
14051
+ return base;
14041
14052
  });
14042
14053
  const iconBgClasses = /* @__PURE__ */ user_derived(() => () => {
14043
- const classes = ["w-full", "h-full", "relative", "rounded-lg"];
14044
- const shouldShowHover = !hasAnyItemSelected() && !isLocked() && !isSelected() && (!resultType() || mode() === MODES.INTERACTIVE);
14045
- if (shouldShowHover) {
14046
- classes.push("td:group-hover:bg-black", "td:group-hover:opacity-5");
14054
+ const base = "w-full h-full relative rounded-lg";
14055
+ if (!get$1(hasAnyItemSelected) && get$1(canInteract) && !get$1(isSelected)) {
14056
+ return `${base} td:group-hover:bg-black td:group-hover:opacity-5`;
14047
14057
  }
14048
- return classes.join(" ");
14058
+ return base;
14049
14059
  });
14050
14060
  var $$exports = {
14051
14061
  get itemId() {
@@ -14076,11 +14086,11 @@ function CategoriseItem($$anchor, $$props) {
14076
14086
  mode($$value);
14077
14087
  flushSync();
14078
14088
  },
14079
- get isSelected() {
14080
- return isSelected();
14089
+ get selectedItemId() {
14090
+ return selectedItemId();
14081
14091
  },
14082
- set isSelected($$value = false) {
14083
- isSelected($$value);
14092
+ set selectedItemId($$value = void 0) {
14093
+ selectedItemId($$value);
14084
14094
  flushSync();
14085
14095
  },
14086
14096
  get isLocked() {
@@ -14090,6 +14100,13 @@ function CategoriseItem($$anchor, $$props) {
14090
14100
  isLocked($$value);
14091
14101
  flushSync();
14092
14102
  },
14103
+ get isCollapsed() {
14104
+ return isCollapsed();
14105
+ },
14106
+ set isCollapsed($$value = false) {
14107
+ isCollapsed($$value);
14108
+ flushSync();
14109
+ },
14093
14110
  get resultType() {
14094
14111
  return resultType();
14095
14112
  },
@@ -14097,13 +14114,6 @@ function CategoriseItem($$anchor, $$props) {
14097
14114
  resultType($$value);
14098
14115
  flushSync();
14099
14116
  },
14100
- get hasAnyItemSelected() {
14101
- return hasAnyItemSelected();
14102
- },
14103
- set hasAnyItemSelected($$value = false) {
14104
- hasAnyItemSelected($$value);
14105
- flushSync();
14106
- },
14107
14117
  get isCurrentMobileItem() {
14108
14118
  return isCurrentMobileItem();
14109
14119
  },
@@ -14125,18 +14135,11 @@ function CategoriseItem($$anchor, $$props) {
14125
14135
  isConsideredItem($$value);
14126
14136
  flushSync();
14127
14137
  },
14128
- get currentTabContainer() {
14129
- return currentTabContainer();
14138
+ get activeContainerForKeyboard() {
14139
+ return activeContainerForKeyboard();
14130
14140
  },
14131
- set currentTabContainer($$value = null) {
14132
- currentTabContainer($$value);
14133
- flushSync();
14134
- },
14135
- get additionalClasses() {
14136
- return additionalClasses();
14137
- },
14138
- set additionalClasses($$value = "") {
14139
- additionalClasses($$value);
14141
+ set activeContainerForKeyboard($$value = void 0) {
14142
+ activeContainerForKeyboard($$value);
14140
14143
  flushSync();
14141
14144
  },
14142
14145
  get onclick() {
@@ -14146,6 +14149,20 @@ function CategoriseItem($$anchor, $$props) {
14146
14149
  onclick($$value);
14147
14150
  flushSync();
14148
14151
  },
14152
+ get onfocus() {
14153
+ return onfocus();
14154
+ },
14155
+ set onfocus($$value) {
14156
+ onfocus($$value);
14157
+ flushSync();
14158
+ },
14159
+ get onblur() {
14160
+ return onblur();
14161
+ },
14162
+ set onblur($$value) {
14163
+ onblur($$value);
14164
+ flushSync();
14165
+ },
14149
14166
  get onkeydown() {
14150
14167
  return onkeydown();
14151
14168
  },
@@ -14220,7 +14237,7 @@ function CategoriseItem($$anchor, $$props) {
14220
14237
  if_block(
14221
14238
  node_3,
14222
14239
  ($$render) => {
14223
- if (resultType() === ANSWER_RESULTS.INCORRECT && !isSelected()) $$render(consequent_1);
14240
+ if (resultType() === ANSWER_RESULTS.INCORRECT && !get$1(isSelected)) $$render(consequent_1);
14224
14241
  else $$render(alternate_1, false);
14225
14242
  },
14226
14243
  true
@@ -14229,7 +14246,7 @@ function CategoriseItem($$anchor, $$props) {
14229
14246
  append($$anchor2, fragment);
14230
14247
  };
14231
14248
  if_block(node_1, ($$render) => {
14232
- if (resultType() === ANSWER_RESULTS.CORRECT && !isSelected()) $$render(consequent);
14249
+ if (resultType() === ANSWER_RESULTS.CORRECT && !get$1(isSelected)) $$render(consequent);
14233
14250
  else $$render(alternate_2, false);
14234
14251
  });
14235
14252
  }
@@ -14269,6 +14286,8 @@ function CategoriseItem($$anchor, $$props) {
14269
14286
  () => clsx(get$1(iconBgClasses)())
14270
14287
  ]
14271
14288
  );
14289
+ event("focus", button, handleFocus);
14290
+ event("blur", button, handleBlur);
14272
14291
  append($$anchor, button);
14273
14292
  return pop($$exports);
14274
14293
  }
@@ -14280,42 +14299,51 @@ create_custom_element(
14280
14299
  itemText: {},
14281
14300
  containerId: {},
14282
14301
  mode: {},
14283
- isSelected: {},
14302
+ selectedItemId: {},
14284
14303
  isLocked: {},
14304
+ isCollapsed: {},
14285
14305
  resultType: {},
14286
- hasAnyItemSelected: {},
14287
14306
  isCurrentMobileItem: {},
14288
14307
  isClonedItem: {},
14289
14308
  isConsideredItem: {},
14290
- currentTabContainer: {},
14291
- additionalClasses: {},
14309
+ activeContainerForKeyboard: {},
14292
14310
  onclick: {},
14311
+ onfocus: {},
14312
+ onblur: {},
14293
14313
  onkeydown: {}
14294
14314
  },
14295
14315
  [],
14296
14316
  [],
14297
14317
  true
14298
14318
  );
14299
- var root_1$8 = /* @__PURE__ */ from_html(`<button class="focus-ring absolute inset-0 bg-transparent rounded-lg z-10 pointer-events-auto"></button>`);
14319
+ var root_1$8 = /* @__PURE__ */ from_html(`<button tabindex="0"></button>`);
14300
14320
  var root_7$1 = /* @__PURE__ */ from_html(`<div class="w-full text-base text-charcoal font-semibold mt-1 mb-2">Missing answers:</div>`);
14301
14321
  var root_6$1 = /* @__PURE__ */ from_html(`<!> <!>`, 1);
14302
- var root$5 = /* @__PURE__ */ from_html(`<!> <section role="group" aria-dropeffect="move"><!></section>`, 1);
14322
+ var root$5 = /* @__PURE__ */ from_html(`<!> <section><!></section>`, 1);
14303
14323
  function CategoriseDndContainer($$anchor, $$props) {
14304
14324
  push($$props, true);
14305
- let containerId = prop($$props, "containerId", 7), containerClass = prop($$props, "containerClass", 7, ""), showButton = prop($$props, "showButton", 7, true), items = prop($$props, "items", 23, () => []), selectedItemId = prop($$props, "selectedItemId", 7, void 0), isLocked = prop($$props, "isLocked", 7, false), currentTabContainer = prop($$props, "currentTabContainer", 7, null), isMobile = prop($$props, "isMobile", 7, false), mode = prop($$props, "mode", 7), paddingTop = prop($$props, "paddingTop", 7, 0), dndType = prop($$props, "dndType", 7, "categorise"), onitemdrop = prop($$props, "onitemdrop", 7), onitemselect = prop($$props, "onitemselect", 7), oncontainerclick = prop($$props, "oncontainerclick", 7), onitemkeydown = prop($$props, "onitemkeydown", 7), ondraghover = prop($$props, "ondraghover", 7), ondragstart = prop($$props, "ondragstart", 7), children = prop($$props, "children", 7);
14325
+ let containerId = prop($$props, "containerId", 7), containerLabel = prop($$props, "containerLabel", 7, ""), containerClass = prop($$props, "containerClass", 7, ""), showButton = prop($$props, "showButton", 7, true), items = prop($$props, "items", 23, () => []), selectedItemId = prop($$props, "selectedItemId", 7, void 0), isLocked = prop($$props, "isLocked", 7, false), isMobile = prop($$props, "isMobile", 7, false), mode = prop($$props, "mode", 7), paddingTop = prop($$props, "paddingTop", 7, 0), dndType = prop($$props, "dndType", 7, "categorise"), activeContainerForKeyboard = prop($$props, "activeContainerForKeyboard", 7, void 0), isCollapsed = prop($$props, "isCollapsed", 7, false), onitemdrop = prop($$props, "onitemdrop", 7), onitemselect = prop($$props, "onitemselect", 7), oncontainerclick = prop($$props, "oncontainerclick", 7), onitemfocus = prop($$props, "onitemfocus", 7), onitemblur = prop($$props, "onitemblur", 7), onitemkeydown = prop($$props, "onitemkeydown", 7), ondraghover = prop($$props, "ondraghover", 7), ondragstart = prop($$props, "ondragstart", 7), children = prop($$props, "children", 7);
14306
14326
  let considerItemId = /* @__PURE__ */ state(void 0);
14307
14327
  let isHoveringDrag = /* @__PURE__ */ state(false);
14308
- const dndItems = /* @__PURE__ */ user_derived(() => items().map((item) => {
14309
- if (item.id === get$1(considerItemId)) {
14310
- return {
14311
- id: "clonedId",
14312
- itemText: item.itemText,
14313
- isClonedItem: true,
14314
- cloneId: item.id
14315
- };
14316
- }
14317
- return { ...item };
14318
- }));
14328
+ let dragCounter = /* @__PURE__ */ state(0);
14329
+ let localItems = /* @__PURE__ */ state(proxy([]));
14330
+ user_effect(() => {
14331
+ set(
14332
+ localItems,
14333
+ items().map((item) => {
14334
+ if (item.id === get$1(considerItemId)) {
14335
+ return {
14336
+ id: "clonedId",
14337
+ itemText: item.itemText,
14338
+ isClonedItem: true,
14339
+ cloneId: item.id
14340
+ };
14341
+ }
14342
+ return { ...item };
14343
+ }),
14344
+ true
14345
+ );
14346
+ });
14319
14347
  const handleConsider = (e2) => {
14320
14348
  const { info } = e2.detail;
14321
14349
  if (info.trigger === "draggedEntered") {
@@ -14332,6 +14360,9 @@ function CategoriseDndContainer($$anchor, $$props) {
14332
14360
  return;
14333
14361
  }
14334
14362
  if (info.trigger === "dragStarted") {
14363
+ if (selectedItemId()) {
14364
+ return;
14365
+ }
14335
14366
  const draggedItemId = info.id;
14336
14367
  set(considerItemId, draggedItemId, true);
14337
14368
  set(isHoveringDrag, false);
@@ -14349,6 +14380,7 @@ function CategoriseDndContainer($$anchor, $$props) {
14349
14380
  const handleFinalize = (e2) => {
14350
14381
  set(considerItemId, void 0);
14351
14382
  set(isHoveringDrag, false);
14383
+ set(dragCounter, get$1(dragCounter) + 1);
14352
14384
  if (onitemdrop()) {
14353
14385
  onitemdrop()(e2);
14354
14386
  }
@@ -14381,17 +14413,15 @@ function CategoriseDndContainer($$anchor, $$props) {
14381
14413
  if (containerId() === "container-word-bin" && isMobile()) {
14382
14414
  return 0;
14383
14415
  }
14384
- if (currentTabContainer() === containerId()) {
14385
- return 0;
14386
- }
14387
14416
  return -1;
14388
14417
  });
14418
+ const dragDisabled = /* @__PURE__ */ user_derived(() => isLocked() || !!selectedItemId());
14389
14419
  const dndConfig = /* @__PURE__ */ user_derived(() => ({
14390
- items: get$1(dndItems),
14420
+ items: get$1(localItems),
14391
14421
  flipDurationMs: 5,
14392
14422
  type: dndType(),
14393
14423
  morphDisabled: true,
14394
- dragDisabled: isLocked() || !!selectedItemId(),
14424
+ dragDisabled: get$1(dragDisabled),
14395
14425
  dropFromOthersDisabled: isLocked(),
14396
14426
  dropTargetClasses: ["!outline-none"],
14397
14427
  zoneItemTabIndex: get$1(getZoneItemTabIndex)(),
@@ -14399,12 +14429,13 @@ function CategoriseDndContainer($$anchor, $$props) {
14399
14429
  autoAriaDisabled: true,
14400
14430
  keyboardDisabled: true
14401
14431
  }));
14402
- const isEmpty = /* @__PURE__ */ user_derived(() => get$1(dndItems).length === 0);
14432
+ const isEmpty = /* @__PURE__ */ user_derived(() => get$1(localItems).length === 0);
14403
14433
  const isSourceContainer = /* @__PURE__ */ user_derived(() => () => {
14404
14434
  if (!selectedItemId()) return false;
14405
- return get$1(dndItems).some((item) => {
14435
+ const selected = selectedItemId();
14436
+ return get$1(localItems).some((item) => {
14406
14437
  const cleanItemId = item.id.split("@eat-dash@")[0];
14407
- const cleanSelectedId = selectedItemId().split("@eat-dash@")[0];
14438
+ const cleanSelectedId = selected.split("@eat-dash@")[0];
14408
14439
  return cleanItemId === cleanSelectedId;
14409
14440
  });
14410
14441
  });
@@ -14413,6 +14444,16 @@ function CategoriseDndContainer($$anchor, $$props) {
14413
14444
  oncontainerclick()(containerId());
14414
14445
  }
14415
14446
  };
14447
+ const handleSectionTouchStart = (e2) => {
14448
+ if (selectedItemId()) {
14449
+ e2.stopPropagation();
14450
+ }
14451
+ };
14452
+ const handleSectionTouchMove = (e2) => {
14453
+ if (selectedItemId()) {
14454
+ e2.stopPropagation();
14455
+ }
14456
+ };
14416
14457
  var $$exports = {
14417
14458
  get containerId() {
14418
14459
  return containerId();
@@ -14421,6 +14462,13 @@ function CategoriseDndContainer($$anchor, $$props) {
14421
14462
  containerId($$value);
14422
14463
  flushSync();
14423
14464
  },
14465
+ get containerLabel() {
14466
+ return containerLabel();
14467
+ },
14468
+ set containerLabel($$value = "") {
14469
+ containerLabel($$value);
14470
+ flushSync();
14471
+ },
14424
14472
  get containerClass() {
14425
14473
  return containerClass();
14426
14474
  },
@@ -14456,13 +14504,6 @@ function CategoriseDndContainer($$anchor, $$props) {
14456
14504
  isLocked($$value);
14457
14505
  flushSync();
14458
14506
  },
14459
- get currentTabContainer() {
14460
- return currentTabContainer();
14461
- },
14462
- set currentTabContainer($$value = null) {
14463
- currentTabContainer($$value);
14464
- flushSync();
14465
- },
14466
14507
  get isMobile() {
14467
14508
  return isMobile();
14468
14509
  },
@@ -14491,6 +14532,20 @@ function CategoriseDndContainer($$anchor, $$props) {
14491
14532
  dndType($$value);
14492
14533
  flushSync();
14493
14534
  },
14535
+ get activeContainerForKeyboard() {
14536
+ return activeContainerForKeyboard();
14537
+ },
14538
+ set activeContainerForKeyboard($$value = void 0) {
14539
+ activeContainerForKeyboard($$value);
14540
+ flushSync();
14541
+ },
14542
+ get isCollapsed() {
14543
+ return isCollapsed();
14544
+ },
14545
+ set isCollapsed($$value = false) {
14546
+ isCollapsed($$value);
14547
+ flushSync();
14548
+ },
14494
14549
  get onitemdrop() {
14495
14550
  return onitemdrop();
14496
14551
  },
@@ -14512,6 +14567,20 @@ function CategoriseDndContainer($$anchor, $$props) {
14512
14567
  oncontainerclick($$value);
14513
14568
  flushSync();
14514
14569
  },
14570
+ get onitemfocus() {
14571
+ return onitemfocus();
14572
+ },
14573
+ set onitemfocus($$value) {
14574
+ onitemfocus($$value);
14575
+ flushSync();
14576
+ },
14577
+ get onitemblur() {
14578
+ return onitemblur();
14579
+ },
14580
+ set onitemblur($$value) {
14581
+ onitemblur($$value);
14582
+ flushSync();
14583
+ },
14515
14584
  get onitemkeydown() {
14516
14585
  return onitemkeydown();
14517
14586
  },
@@ -14547,15 +14616,20 @@ function CategoriseDndContainer($$anchor, $$props) {
14547
14616
  var consequent = ($$anchor2) => {
14548
14617
  var button = root_1$8();
14549
14618
  button.__click = handleContainerClick;
14550
- template_effect(() => set_attribute(button, "aria-label", `Place item in container ${containerId()}`));
14619
+ template_effect(() => {
14620
+ set_class(button, 1, `focus-ring absolute inset-0 bg-transparent rounded-lg z-10 pointer-events-auto focus-visible:border ${containerId() === "container-word-bin" ? "focus-visible:border-gray-400" : "focus-visible:border-gray-800"}`);
14621
+ set_attribute(button, "aria-label", containerLabel());
14622
+ });
14551
14623
  append($$anchor2, button);
14552
14624
  };
14553
14625
  if_block(node, ($$render) => {
14554
- if (!isLocked() && selectedItemId() && !get$1(isSourceContainer)() && currentTabContainer() !== containerId()) $$render(consequent);
14626
+ if (!isLocked() && selectedItemId() && !get$1(isSourceContainer)()) $$render(consequent);
14555
14627
  });
14556
14628
  }
14557
14629
  var section = sibling(node, 2);
14558
14630
  section.__click = handleSectionClick;
14631
+ section.__touchstart = handleSectionTouchStart;
14632
+ section.__touchmove = handleSectionTouchMove;
14559
14633
  set_attribute(section, "tabindex", -1);
14560
14634
  var node_1 = child(section);
14561
14635
  {
@@ -14583,8 +14657,7 @@ function CategoriseDndContainer($$anchor, $$props) {
14583
14657
  var consequent_4 = ($$anchor3) => {
14584
14658
  var fragment_4 = comment();
14585
14659
  var node_5 = first_child(fragment_4);
14586
- each(node_5, 19, () => get$1(dndItems), (item) => `${item.id}-${selectedItemId() === item.id.split("@eat-dash@")[0] ? "selected" : "unselected"}-${selectedItemId() ? "hasSelection" : "noSelection"}-${get$1(considerItemId) === item.id ? "considering" : "notConsidering"}-${currentTabContainer()}-${isLocked()}`, ($$anchor4, item, index2) => {
14587
- const cleanItemId = /* @__PURE__ */ user_derived(() => get$1(item).id.split("@eat-dash@")[0]);
14660
+ each(node_5, 19, () => get$1(localItems), (item) => `${item.id}-${get$1(dragCounter)}`, ($$anchor4, item, index2) => {
14588
14661
  const itemResultType = /* @__PURE__ */ user_derived(() => getItemResultType(get$1(item).isClonedItem && get$1(item).cloneId ? get$1(item).cloneId : get$1(item).id));
14589
14662
  var fragment_5 = root_6$1();
14590
14663
  var node_6 = first_child(fragment_5);
@@ -14594,15 +14667,13 @@ function CategoriseDndContainer($$anchor, $$props) {
14594
14667
  append($$anchor5, div);
14595
14668
  };
14596
14669
  if_block(node_6, ($$render) => {
14597
- if (get$1(itemResultType) === ANSWER_RESULTS.MISSED && get$1(index2) === get$1(dndItems).findIndex((i) => getItemResultType(i.id) === ANSWER_RESULTS.MISSED)) $$render(consequent_3);
14670
+ if (get$1(itemResultType) === ANSWER_RESULTS.MISSED && get$1(index2) === get$1(localItems).findIndex((i) => getItemResultType(i.id) === ANSWER_RESULTS.MISSED)) $$render(consequent_3);
14598
14671
  });
14599
14672
  }
14600
14673
  var node_7 = sibling(node_6, 2);
14601
14674
  {
14602
14675
  let $0 = /* @__PURE__ */ user_derived(() => get$1(item).itemText || "");
14603
- let $1 = /* @__PURE__ */ user_derived(() => selectedItemId() === get$1(cleanItemId));
14604
- let $2 = /* @__PURE__ */ user_derived(() => get$1(considerItemId) === get$1(item).id);
14605
- let $3 = /* @__PURE__ */ user_derived(() => !!selectedItemId());
14676
+ let $1 = /* @__PURE__ */ user_derived(() => get$1(considerItemId) === get$1(item).id);
14606
14677
  CategoriseItem(node_7, {
14607
14678
  get itemId() {
14608
14679
  return get$1(item).id;
@@ -14613,17 +14684,14 @@ function CategoriseDndContainer($$anchor, $$props) {
14613
14684
  get containerId() {
14614
14685
  return containerId();
14615
14686
  },
14616
- get isSelected() {
14617
- return get$1($1);
14687
+ get selectedItemId() {
14688
+ return selectedItemId();
14618
14689
  },
14619
14690
  get isClonedItem() {
14620
14691
  return get$1(item).isClonedItem;
14621
14692
  },
14622
14693
  get isConsideredItem() {
14623
- return get$1($2);
14624
- },
14625
- get currentTabContainer() {
14626
- return currentTabContainer();
14694
+ return get$1($1);
14627
14695
  },
14628
14696
  get isLocked() {
14629
14697
  return isLocked();
@@ -14637,10 +14705,15 @@ function CategoriseDndContainer($$anchor, $$props) {
14637
14705
  get resultType() {
14638
14706
  return get$1(itemResultType);
14639
14707
  },
14640
- get hasAnyItemSelected() {
14641
- return get$1($3);
14708
+ get activeContainerForKeyboard() {
14709
+ return activeContainerForKeyboard();
14710
+ },
14711
+ get isCollapsed() {
14712
+ return isCollapsed();
14642
14713
  },
14643
14714
  onclick: () => handleItemClick(get$1(item).id),
14715
+ onfocus: (e2) => onitemfocus()?.(get$1(item).id, e2),
14716
+ onblur: (e2) => onitemblur()?.(get$1(item).id, e2),
14644
14717
  onkeydown: (e2) => onitemkeydown()?.(e2, get$1(item).id, get$1(index2))
14645
14718
  });
14646
14719
  }
@@ -14666,6 +14739,7 @@ function CategoriseDndContainer($$anchor, $$props) {
14666
14739
  reset(section);
14667
14740
  action$1(section, ($$node, $$action_arg) => dndzone?.($$node, $$action_arg), () => get$1(dndConfig));
14668
14741
  template_effect(() => {
14742
+ set_attribute(section, "aria-hidden", activeContainerForKeyboard() !== containerId() ? "true" : void 0);
14669
14743
  set_attribute(section, "id", containerId());
14670
14744
  set_class(section, 1, `flex flex-wrap ${containerClass() ?? ""}`);
14671
14745
  set_style(section, paddingTop() > 0 ? `padding-top: ${paddingTop()}px;` : "");
@@ -14675,24 +14749,28 @@ function CategoriseDndContainer($$anchor, $$props) {
14675
14749
  append($$anchor, fragment);
14676
14750
  return pop($$exports);
14677
14751
  }
14678
- delegate(["click"]);
14752
+ delegate(["click", "touchstart", "touchmove"]);
14679
14753
  create_custom_element(
14680
14754
  CategoriseDndContainer,
14681
14755
  {
14682
14756
  containerId: {},
14757
+ containerLabel: {},
14683
14758
  containerClass: {},
14684
14759
  showButton: {},
14685
14760
  items: {},
14686
14761
  selectedItemId: {},
14687
14762
  isLocked: {},
14688
- currentTabContainer: {},
14689
14763
  isMobile: {},
14690
14764
  mode: {},
14691
14765
  paddingTop: {},
14692
14766
  dndType: {},
14767
+ activeContainerForKeyboard: {},
14768
+ isCollapsed: {},
14693
14769
  onitemdrop: {},
14694
14770
  onitemselect: {},
14695
14771
  oncontainerclick: {},
14772
+ onitemfocus: {},
14773
+ onitemblur: {},
14696
14774
  onitemkeydown: {},
14697
14775
  ondraghover: {},
14698
14776
  ondragstart: {},
@@ -14708,26 +14786,14 @@ var root_1$7 = /* @__PURE__ */ from_html(`<button type="button" class="focus-rin
14708
14786
  var root$4 = /* @__PURE__ */ from_html(`<div role="group"><div><!> <!></div> <!></div>`);
14709
14787
  function CategoriseCategory($$anchor, $$props) {
14710
14788
  push($$props, true);
14711
- let categoryId = prop($$props, "categoryId", 7), categoryTitle = prop($$props, "categoryTitle", 7), items = prop($$props, "items", 23, () => []), selectedItemId = prop($$props, "selectedItemId", 7, void 0), isLocked = prop($$props, "isLocked", 7, false), currentTabContainer = prop($$props, "currentTabContainer", 7, null), isCollapsed = prop($$props, "isCollapsed", 7, false), isDraggingOver = prop($$props, "isDraggingOver", 7, false), dropContainerId = prop($$props, "dropContainerId", 7, void 0), hasAddItemAnimation = prop($$props, "hasAddItemAnimation", 7, false), dragSourceContainerId = prop($$props, "dragSourceContainerId", 7, void 0), mode = prop($$props, "mode", 7), isMobile = prop($$props, "isMobile", 7, false), hasStimulus = prop($$props, "hasStimulus", 7, false), dndType = prop($$props, "dndType", 7, "categorise"), tabindex = prop($$props, "tabindex", 7, 0), onitemdrop = prop($$props, "onitemdrop", 7), onitemselect = prop($$props, "onitemselect", 7), oncontainerclick = prop($$props, "oncontainerclick", 7), ontogglecollapse = prop($$props, "ontogglecollapse", 7), onitemkeydown = prop($$props, "onitemkeydown", 7), onkeydown = prop($$props, "onkeydown", 7), onfocus = prop($$props, "onfocus", 7), ondraghover = prop($$props, "ondraghover", 7), ondragstart = prop($$props, "ondragstart", 7);
14712
- const effectiveIsCollapsed = /* @__PURE__ */ user_derived(isCollapsed);
14713
- const handleToggle = () => {
14714
- if (isMobile() && ontogglecollapse()) {
14715
- ontogglecollapse()(categoryId());
14716
- }
14717
- };
14718
- const handleContainerClick = (e2) => {
14719
- if (get$1(effectiveIsCollapsed) && isMobile() && selectedItemId() && get$1(isNotSourceContainer) && oncontainerclick()) {
14720
- const target = e2.target;
14721
- if (!target.closest('button[aria-label*="word"]')) {
14722
- oncontainerclick()(categoryId());
14723
- }
14724
- }
14725
- };
14726
- const itemCount = /* @__PURE__ */ user_derived(() => items().length);
14727
- const getTotalWords = /* @__PURE__ */ user_derived(() => `${get$1(itemCount)} ${get$1(itemCount) === 1 ? "word" : "words"}`);
14789
+ let categoryId = prop($$props, "categoryId", 7), categoryTitle = prop($$props, "categoryTitle", 7), categoryIndex = prop($$props, "categoryIndex", 7, 1), items = prop($$props, "items", 23, () => []), selectedItemId = prop($$props, "selectedItemId", 7, void 0), isLocked = prop($$props, "isLocked", 7, false), isCollapsed = prop($$props, "isCollapsed", 7, false), isDraggingOver = prop($$props, "isDraggingOver", 7, false), dropContainerId = prop($$props, "dropContainerId", 7, void 0), hasAddItemAnimation = prop($$props, "hasAddItemAnimation", 7, false), dragSourceContainerId = prop($$props, "dragSourceContainerId", 7, void 0), mode = prop($$props, "mode", 7), isMobile = prop($$props, "isMobile", 7, false), hasStimulus = prop($$props, "hasStimulus", 7, false), dndType = prop($$props, "dndType", 7, "categorise"), tabindex = prop($$props, "tabindex", 7, 0), activeContainerForKeyboard = prop($$props, "activeContainerForKeyboard", 7, void 0), onitemdrop = prop($$props, "onitemdrop", 7), onitemselect = prop($$props, "onitemselect", 7), oncontainerclick = prop($$props, "oncontainerclick", 7), ontogglecollapse = prop($$props, "ontogglecollapse", 7), onitemfocus = prop($$props, "onitemfocus", 7), onitemblur = prop($$props, "onitemblur", 7), onitemkeydown = prop($$props, "onitemkeydown", 7), onkeydown = prop($$props, "onkeydown", 7), ondraghover = prop($$props, "ondraghover", 7), ondragstart = prop($$props, "ondragstart", 7);
14728
14790
  let categoryTitleHeight = /* @__PURE__ */ state(0);
14729
14791
  let titleElement = /* @__PURE__ */ state(void 0);
14730
14792
  let categoryElement = /* @__PURE__ */ state(void 0);
14793
+ const effectiveIsCollapsed = /* @__PURE__ */ user_derived(isCollapsed);
14794
+ const itemCount = /* @__PURE__ */ user_derived(() => items().length);
14795
+ const getTotalWords = /* @__PURE__ */ user_derived(() => `${get$1(itemCount)} ${get$1(itemCount) === 1 ? "word" : "words"}`);
14796
+ const cleanCategoryTitle = /* @__PURE__ */ user_derived(() => useRemoveRichTextHtmlTags(categoryTitle()));
14731
14797
  const isDropTarget = /* @__PURE__ */ user_derived(() => dropContainerId() === categoryId());
14732
14798
  const isNotSourceContainer = /* @__PURE__ */ user_derived(() => dragSourceContainerId() !== categoryId());
14733
14799
  const hasSelectedItem = /* @__PURE__ */ user_derived(() => !!selectedItemId());
@@ -14747,12 +14813,21 @@ function CategoriseCategory($$anchor, $$props) {
14747
14813
  ${get$1(isDropTarget) && get$1(isNotSourceContainer) ? "bg-transparent" : "bg-white"}
14748
14814
  ${get$1(effectiveIsCollapsed) && isDraggingOver() && get$1(isNotSourceContainer) ? "!bg-violet-100 md:!bg-white" : ""}
14749
14815
  ${get$1(effectiveIsCollapsed) && isMobile() ? "rounded-b-lg md:rounded-b-none" : ""}`);
14750
- const adjustedTabindex = /* @__PURE__ */ user_derived(() => () => {
14751
- if (get$1(hasSelectedItem)) {
14752
- return -1;
14816
+ const adjustedTabindex = /* @__PURE__ */ user_derived(tabindex);
14817
+ const shouldShowAriaLabel = /* @__PURE__ */ user_derived(() => !get$1(hasSelectedItem) || !get$1(isNotSourceContainer));
14818
+ const handleToggle = () => {
14819
+ if (isMobile() && ontogglecollapse()) {
14820
+ ontogglecollapse()(categoryId());
14753
14821
  }
14754
- return tabindex();
14755
- });
14822
+ };
14823
+ const handleContainerClick = (e2) => {
14824
+ if (get$1(effectiveIsCollapsed) && isMobile() && selectedItemId() && get$1(isNotSourceContainer) && oncontainerclick()) {
14825
+ const target = e2.target;
14826
+ if (!target.closest('button[aria-label*="word"]')) {
14827
+ oncontainerclick()(categoryId());
14828
+ }
14829
+ }
14830
+ };
14756
14831
  var $$exports = {
14757
14832
  get categoryElement() {
14758
14833
  return get$1(categoryElement);
@@ -14774,6 +14849,13 @@ function CategoriseCategory($$anchor, $$props) {
14774
14849
  categoryTitle($$value);
14775
14850
  flushSync();
14776
14851
  },
14852
+ get categoryIndex() {
14853
+ return categoryIndex();
14854
+ },
14855
+ set categoryIndex($$value = 1) {
14856
+ categoryIndex($$value);
14857
+ flushSync();
14858
+ },
14777
14859
  get items() {
14778
14860
  return items();
14779
14861
  },
@@ -14795,13 +14877,6 @@ function CategoriseCategory($$anchor, $$props) {
14795
14877
  isLocked($$value);
14796
14878
  flushSync();
14797
14879
  },
14798
- get currentTabContainer() {
14799
- return currentTabContainer();
14800
- },
14801
- set currentTabContainer($$value = null) {
14802
- currentTabContainer($$value);
14803
- flushSync();
14804
- },
14805
14880
  get isCollapsed() {
14806
14881
  return isCollapsed();
14807
14882
  },
@@ -14872,6 +14947,13 @@ function CategoriseCategory($$anchor, $$props) {
14872
14947
  tabindex($$value);
14873
14948
  flushSync();
14874
14949
  },
14950
+ get activeContainerForKeyboard() {
14951
+ return activeContainerForKeyboard();
14952
+ },
14953
+ set activeContainerForKeyboard($$value = void 0) {
14954
+ activeContainerForKeyboard($$value);
14955
+ flushSync();
14956
+ },
14875
14957
  get onitemdrop() {
14876
14958
  return onitemdrop();
14877
14959
  },
@@ -14900,6 +14982,20 @@ function CategoriseCategory($$anchor, $$props) {
14900
14982
  ontogglecollapse($$value);
14901
14983
  flushSync();
14902
14984
  },
14985
+ get onitemfocus() {
14986
+ return onitemfocus();
14987
+ },
14988
+ set onitemfocus($$value) {
14989
+ onitemfocus($$value);
14990
+ flushSync();
14991
+ },
14992
+ get onitemblur() {
14993
+ return onitemblur();
14994
+ },
14995
+ set onitemblur($$value) {
14996
+ onitemblur($$value);
14997
+ flushSync();
14998
+ },
14903
14999
  get onitemkeydown() {
14904
15000
  return onitemkeydown();
14905
15001
  },
@@ -14914,13 +15010,6 @@ function CategoriseCategory($$anchor, $$props) {
14914
15010
  onkeydown($$value);
14915
15011
  flushSync();
14916
15012
  },
14917
- get onfocus() {
14918
- return onfocus();
14919
- },
14920
- set onfocus($$value) {
14921
- onfocus($$value);
14922
- flushSync();
14923
- },
14924
15013
  get ondraghover() {
14925
15014
  return ondraghover();
14926
15015
  },
@@ -14938,7 +15027,7 @@ function CategoriseCategory($$anchor, $$props) {
14938
15027
  };
14939
15028
  var div = root$4();
14940
15029
  div.__keydown = function(...$$args) {
14941
- onkeydown()?.apply(this, $$args);
15030
+ (onkeydown() || void 0)?.apply(this, $$args);
14942
15031
  };
14943
15032
  div.__click = handleContainerClick;
14944
15033
  var div_1 = child(div);
@@ -14947,7 +15036,8 @@ function CategoriseCategory($$anchor, $$props) {
14947
15036
  get htmlString() {
14948
15037
  return categoryTitle();
14949
15038
  },
14950
- otherClass: "text-base leading-5 !text-gray-900 md:item-heading"
15039
+ otherClass: "text-base leading-5 !text-gray-900 md:item-heading",
15040
+ ariaHidden: true
14951
15041
  });
14952
15042
  var node_1 = sibling(node, 2);
14953
15043
  {
@@ -14982,6 +15072,7 @@ function CategoriseCategory($$anchor, $$props) {
14982
15072
  reset(button);
14983
15073
  template_effect(() => {
14984
15074
  set_attribute(button, "aria-label", get$1(getTotalWords));
15075
+ set_attribute(button, "tabindex", selectedItemId() ? -1 : 0);
14985
15076
  set_text(text, get$1(getTotalWords));
14986
15077
  });
14987
15078
  append($$anchor2, button);
@@ -14997,16 +15088,24 @@ function CategoriseCategory($$anchor, $$props) {
14997
15088
  {
14998
15089
  const children = ($$anchor3) => {
14999
15090
  };
15000
- let $0 = /* @__PURE__ */ user_derived(() => !get$1(effectiveIsCollapsed) || !isMobile());
15091
+ let $0 = /* @__PURE__ */ user_derived(() => `Category ${categoryIndex()}: ${get$1(cleanCategoryTitle)}`);
15092
+ let $1 = /* @__PURE__ */ user_derived(() => !get$1(effectiveIsCollapsed) || !isMobile());
15093
+ let $2 = /* @__PURE__ */ user_derived(() => get$1(effectiveIsCollapsed) && isMobile());
15001
15094
  CategoriseDndContainer($$anchor2, {
15002
15095
  get containerId() {
15003
15096
  return categoryId();
15004
15097
  },
15098
+ get containerLabel() {
15099
+ return get$1($0);
15100
+ },
15005
15101
  get containerClass() {
15006
15102
  return get$1(containerClasses);
15007
15103
  },
15008
15104
  get showButton() {
15009
- return get$1($0);
15105
+ return get$1($1);
15106
+ },
15107
+ get isCollapsed() {
15108
+ return get$1($2);
15010
15109
  },
15011
15110
  get items() {
15012
15111
  return items();
@@ -15017,9 +15116,6 @@ function CategoriseCategory($$anchor, $$props) {
15017
15116
  get isLocked() {
15018
15117
  return isLocked();
15019
15118
  },
15020
- get currentTabContainer() {
15021
- return currentTabContainer();
15022
- },
15023
15119
  get mode() {
15024
15120
  return mode();
15025
15121
  },
@@ -15029,6 +15125,9 @@ function CategoriseCategory($$anchor, $$props) {
15029
15125
  get paddingTop() {
15030
15126
  return get$1(paddingTopValue);
15031
15127
  },
15128
+ get activeContainerForKeyboard() {
15129
+ return activeContainerForKeyboard();
15130
+ },
15032
15131
  get onitemdrop() {
15033
15132
  return onitemdrop();
15034
15133
  },
@@ -15038,6 +15137,12 @@ function CategoriseCategory($$anchor, $$props) {
15038
15137
  get oncontainerclick() {
15039
15138
  return oncontainerclick();
15040
15139
  },
15140
+ get onitemfocus() {
15141
+ return onitemfocus();
15142
+ },
15143
+ get onitemblur() {
15144
+ return onitemblur();
15145
+ },
15041
15146
  get onitemkeydown() {
15042
15147
  return onitemkeydown();
15043
15148
  },
@@ -15054,16 +15159,11 @@ function CategoriseCategory($$anchor, $$props) {
15054
15159
  });
15055
15160
  reset(div);
15056
15161
  bind_this(div, ($$value) => set(categoryElement, $$value), () => get$1(categoryElement));
15057
- template_effect(
15058
- ($0) => {
15059
- set_attribute(div, "tabindex", $0);
15060
- set_class(div, 1, clsx(get$1(outerClasses)));
15061
- set_class(div_1, 1, clsx(get$1(titleClasses)));
15062
- },
15063
- [() => get$1(adjustedTabindex)()]
15064
- );
15065
- event("focus", div, function(...$$args) {
15066
- onfocus()?.apply(this, $$args);
15162
+ template_effect(() => {
15163
+ set_attribute(div, "tabindex", get$1(adjustedTabindex));
15164
+ set_attribute(div, "aria-label", get$1(shouldShowAriaLabel) ? `Category ${categoryIndex()}: ${get$1(cleanCategoryTitle)}. ${get$1(getTotalWords)} added.` : void 0);
15165
+ set_class(div, 1, clsx(get$1(outerClasses)));
15166
+ set_class(div_1, 1, clsx(get$1(titleClasses)));
15067
15167
  });
15068
15168
  bind_element_size(div_1, "clientHeight", ($$value) => set(categoryTitleHeight, $$value));
15069
15169
  append($$anchor, div);
@@ -15075,10 +15175,10 @@ create_custom_element(
15075
15175
  {
15076
15176
  categoryId: {},
15077
15177
  categoryTitle: {},
15178
+ categoryIndex: {},
15078
15179
  items: {},
15079
15180
  selectedItemId: {},
15080
15181
  isLocked: {},
15081
- currentTabContainer: {},
15082
15182
  isCollapsed: {},
15083
15183
  isDraggingOver: {},
15084
15184
  dropContainerId: {},
@@ -15089,13 +15189,15 @@ create_custom_element(
15089
15189
  hasStimulus: {},
15090
15190
  dndType: {},
15091
15191
  tabindex: {},
15192
+ activeContainerForKeyboard: {},
15092
15193
  onitemdrop: {},
15093
15194
  onitemselect: {},
15094
15195
  oncontainerclick: {},
15095
15196
  ontogglecollapse: {},
15197
+ onitemfocus: {},
15198
+ onitemblur: {},
15096
15199
  onitemkeydown: {},
15097
15200
  onkeydown: {},
15098
- onfocus: {},
15099
15201
  ondraghover: {},
15100
15202
  ondragstart: {}
15101
15203
  },
@@ -15107,16 +15209,11 @@ var root_1$6 = /* @__PURE__ */ from_html(`<div role="group" tabindex="-1" class=
15107
15209
  absolute top-12 right-4 left-4 bottom-4 flex items-center justify-center !bg-white md:top-20">Word Bin is empty</div>`);
15108
15210
  var root_2$2 = /* @__PURE__ */ from_html(`<button type="button" class="focus-ring p-2 text-blue-1000 rounded-md w-11 h-11 mt-9 td:hover:bg-black-50 active:bg-black-60 disabled:text-gray-40 disabled:hover:bg-white md:hidden" aria-label="Left"><span class="w-6 h-6 text-inherit flex items-center justify-center"><!></span></button>`);
15109
15211
  var root_3$2 = /* @__PURE__ */ from_html(`<button type="button" class="focus-ring p-2 text-blue-1000 rounded-md w-11 h-11 mt-9 td:hover:bg-black-50 active:bg-black-60 disabled:text-gray-40 disabled:hover:bg-white md:hidden" aria-label="Right"><span class="w-6 h-6 text-inherit flex items-center justify-center ml-[3px]"><!></span></button>`);
15110
- var root$3 = /* @__PURE__ */ from_html(`<div role="group"><div><span class="text-base leading-5 !text-gray-900 font-semibold md:mb-2 md:item-heading">Word Bin&nbsp;</span> <span class="text-base leading-5 !text-gray-900 md:item-heading"> </span></div> <div class="flex items-center justify-between px-4 min-h-[133px] md:min-h-0 md:block md:px-0 md:justify-normal"><!> <!> <!> <!></div></div>`);
15212
+ var root$3 = /* @__PURE__ */ from_html(`<div role="group"><div><span class="text-base leading-5 !text-gray-900 font-semibold md:mb-2 md:item-heading" aria-hidden="true">Word Bin&nbsp;</span> <span class="text-base leading-5 !text-gray-900 md:item-heading" aria-hidden="true"> </span></div> <div class="flex items-center justify-between px-4 min-h-[133px] md:min-h-0 md:block md:px-0 md:justify-normal"><!> <!> <!> <!></div></div>`);
15111
15213
  function CategoriseWordBin($$anchor, $$props) {
15112
15214
  push($$props, true);
15113
- let containerId = prop($$props, "containerId", 7), items = prop($$props, "items", 23, () => []), selectedItemId = prop($$props, "selectedItemId", 7, void 0), isLocked = prop($$props, "isLocked", 7, false), currentTabContainer = prop($$props, "currentTabContainer", 7, null), isDraggingOver = prop($$props, "isDraggingOver", 7, false), dropContainerId = prop($$props, "dropContainerId", 7, void 0), hasAddItemAnimation = prop($$props, "hasAddItemAnimation", 7, false), dragSourceContainerId = prop($$props, "dragSourceContainerId", 7, void 0), mode = prop($$props, "mode", 7), isMobile = prop($$props, "isMobile", 7, false), currentMobileIndex = prop($$props, "currentMobileIndex", 7, 0), totalItems = prop($$props, "totalItems", 7, 0), dndType = prop($$props, "dndType", 7, "categorise"), onitemdrop = prop($$props, "onitemdrop", 7), onitemselect = prop($$props, "onitemselect", 7), oncontainerclick = prop($$props, "oncontainerclick", 7), onnavigateitem = prop($$props, "onnavigateitem", 7), onitemkeydown = prop($$props, "onitemkeydown", 7), ondraghover = prop($$props, "ondraghover", 7), ondragstart = prop($$props, "ondragstart", 7), onkeydown = prop($$props, "onkeydown", 7), onfocus = prop($$props, "onfocus", 7);
15215
+ let containerId = prop($$props, "containerId", 7), items = prop($$props, "items", 23, () => []), selectedItemId = prop($$props, "selectedItemId", 7, void 0), isLocked = prop($$props, "isLocked", 7, false), isDraggingOver = prop($$props, "isDraggingOver", 7, false), dropContainerId = prop($$props, "dropContainerId", 7, void 0), hasAddItemAnimation = prop($$props, "hasAddItemAnimation", 7, false), dragSourceContainerId = prop($$props, "dragSourceContainerId", 7, void 0), mode = prop($$props, "mode", 7), isMobile = prop($$props, "isMobile", 7, false), currentMobileIndex = prop($$props, "currentMobileIndex", 7, 0), totalItems = prop($$props, "totalItems", 7, 0), tabindex = prop($$props, "tabindex", 7, 0), dndType = prop($$props, "dndType", 7, "categorise"), activeContainerForKeyboard = prop($$props, "activeContainerForKeyboard", 7, void 0), onitemdrop = prop($$props, "onitemdrop", 7), onitemselect = prop($$props, "onitemselect", 7), oncontainerclick = prop($$props, "oncontainerclick", 7), onnavigateitem = prop($$props, "onnavigateitem", 7), onitemfocus = prop($$props, "onitemfocus", 7), onitemblur = prop($$props, "onitemblur", 7), onitemkeydown = prop($$props, "onitemkeydown", 7), ondraghover = prop($$props, "ondraghover", 7), ondragstart = prop($$props, "ondragstart", 7), onkeydown = prop($$props, "onkeydown", 7), onfocus = prop($$props, "onfocus", 7, void 0);
15114
15216
  let wordBinElement = /* @__PURE__ */ state(void 0);
15115
- const handleNavigate = (direction) => {
15116
- if (onnavigateitem()) {
15117
- onnavigateitem()(direction);
15118
- }
15119
- };
15120
15217
  const displayItems = /* @__PURE__ */ user_derived(() => isMobile() && items().length > 0 ? [items()[currentMobileIndex()]].filter(Boolean) : items());
15121
15218
  const itemsRemaining = /* @__PURE__ */ user_derived(() => items().length);
15122
15219
  const showNavigation = /* @__PURE__ */ user_derived(() => isMobile() && items().length > 0);
@@ -15124,39 +15221,64 @@ function CategoriseWordBin($$anchor, $$props) {
15124
15221
  const isNotSourceContainer = /* @__PURE__ */ user_derived(() => dragSourceContainerId() !== containerId());
15125
15222
  const hasSelectedItem = /* @__PURE__ */ user_derived(() => !!selectedItemId());
15126
15223
  const isValidDropTarget = /* @__PURE__ */ user_derived(() => get$1(hasSelectedItem) && get$1(isNotSourceContainer));
15127
- const containerClasses = /* @__PURE__ */ user_derived(() => `!outline-none bg-transparent p-4 pt-[55px] grow md:grow-0 md:pt-20.5 justify-center md:justify-normal
15128
- ${isDraggingOver() && get$1(isNotSourceContainer) ? "!bg-violet-100" : ""}`);
15129
15224
  const isPreviewMode2 = /* @__PURE__ */ user_derived(isLocked);
15130
- const outerClasses = /* @__PURE__ */ user_derived(() => `${get$1(isPreviewMode2) ? "select-none" : ""}
15131
- shadow-[0_-12px_14px_-16px_#00000033] rounded-lg relative min-h-[133px] md:min-h-[164px] md:border md:shadow-[0_0_#0000] md:border-gray-400
15132
- ${get$1(isPreviewMode2) ? "focus-visible:outline-none focus-visible:ring-4 focus-visible:ring-soft-blue focus-visible:ring-offset-4 focus-visible:duration-50" : "focus-ring"}
15133
- ${isDraggingOver() && get$1(isNotSourceContainer) ? "raw-focus-ring bg-violet-100" : ""}
15134
- ${get$1(isDropTarget) && get$1(isNotSourceContainer) ? "bg-violet-150" : ""}
15135
- ${get$1(isDropTarget) && hasAddItemAnimation() && get$1(isNotSourceContainer) ? "transition bg-white duration-300" : ""}
15136
- ${get$1(isValidDropTarget) ? "td:hover:bg-violet-100 td:hover-focus-ring cursor-pointer" : ""}
15137
- ${get$1(hasSelectedItem) && !get$1(isNotSourceContainer) ? "cursor-default" : ""}`);
15138
- const titleClasses = /* @__PURE__ */ user_derived(() => `p-4 pb-3 text-center w-full absolute flex flex-row items-center justify-between md:justify-center md:flex-col md:pb-0
15139
- ${get$1(isDropTarget) && !hasAddItemAnimation() && get$1(isNotSourceContainer) ? "bg-violet-150" : ""}
15140
- ${get$1(isDropTarget) && hasAddItemAnimation() && get$1(isNotSourceContainer) ? "transition duration-300 bg-white" : ""}
15141
- ${isDraggingOver() && get$1(isNotSourceContainer) ? "bg-violet-100" : ""}
15142
- ${get$1(isValidDropTarget) ? "td:hover:bg-violet-100" : ""}`);
15225
+ const handleNavigate = (direction) => {
15226
+ if (onnavigateitem()) {
15227
+ onnavigateitem()(direction);
15228
+ }
15229
+ };
15230
+ const containerClasses = /* @__PURE__ */ user_derived(() => [
15231
+ "!outline-none",
15232
+ "bg-transparent",
15233
+ "p-4",
15234
+ "pt-[55px]",
15235
+ "grow",
15236
+ "md:grow-0",
15237
+ "md:pt-20.5",
15238
+ "justify-center",
15239
+ "md:justify-normal",
15240
+ isDraggingOver() && get$1(isNotSourceContainer) ? "!bg-violet-100" : ""
15241
+ ].filter(Boolean).join(" "));
15242
+ const outerClasses = /* @__PURE__ */ user_derived(() => [
15243
+ get$1(isPreviewMode2) ? "select-none" : "",
15244
+ "shadow-[0_-12px_14px_-16px_#00000033]",
15245
+ "rounded-lg",
15246
+ "relative",
15247
+ "min-h-[133px]",
15248
+ "md:min-h-[164px]",
15249
+ "md:border",
15250
+ "md:shadow-[0_0_#0000]",
15251
+ "md:border-gray-400",
15252
+ get$1(isPreviewMode2) ? "focus-visible:outline-none focus-visible:ring-4 focus-visible:ring-soft-blue focus-visible:ring-offset-4 focus-visible:duration-50" : "focus-ring",
15253
+ isDraggingOver() && get$1(isNotSourceContainer) ? "raw-focus-ring bg-violet-100" : "",
15254
+ get$1(isDropTarget) && get$1(isNotSourceContainer) ? "bg-violet-150" : "",
15255
+ get$1(isDropTarget) && hasAddItemAnimation() && get$1(isNotSourceContainer) ? "transition bg-white duration-300" : "",
15256
+ get$1(isValidDropTarget) ? "td:hover:bg-violet-100 td:hover-focus-ring cursor-pointer" : "",
15257
+ get$1(hasSelectedItem) && !get$1(isNotSourceContainer) ? "cursor-default" : ""
15258
+ ].filter(Boolean).join(" "));
15259
+ const titleClasses = /* @__PURE__ */ user_derived(() => [
15260
+ "p-4",
15261
+ "pb-3",
15262
+ "text-center",
15263
+ "w-full",
15264
+ "absolute",
15265
+ "flex",
15266
+ "flex-row",
15267
+ "items-center",
15268
+ "justify-between",
15269
+ "md:justify-center",
15270
+ "md:flex-col",
15271
+ "md:pb-0",
15272
+ get$1(isDropTarget) && !hasAddItemAnimation() && get$1(isNotSourceContainer) ? "bg-violet-150" : "",
15273
+ get$1(isDropTarget) && hasAddItemAnimation() && get$1(isNotSourceContainer) ? "transition duration-300 bg-white" : "",
15274
+ isDraggingOver() && get$1(isNotSourceContainer) ? "bg-violet-100" : "",
15275
+ get$1(isValidDropTarget) ? "td:hover:bg-violet-100" : ""
15276
+ ].filter(Boolean).join(" "));
15143
15277
  const handleEmptyClick = () => {
15144
15278
  if (selectedItemId() && oncontainerclick()) {
15145
15279
  oncontainerclick()(containerId());
15146
15280
  }
15147
15281
  };
15148
- const handleContainerKeyDown = (event2) => {
15149
- if (isMobile() && event2.key === "Enter" && items().length > 0 && get$1(wordBinElement) && !selectedItemId()) {
15150
- event2.preventDefault();
15151
- const itemButton = get$1(wordBinElement).querySelector("[data-item-button]");
15152
- if (itemButton) {
15153
- itemButton.focus();
15154
- }
15155
- }
15156
- if (onkeydown()) {
15157
- onkeydown()(event2);
15158
- }
15159
- };
15160
15282
  var $$exports = {
15161
15283
  get wordBinElement() {
15162
15284
  return get$1(wordBinElement);
@@ -15192,13 +15314,6 @@ function CategoriseWordBin($$anchor, $$props) {
15192
15314
  isLocked($$value);
15193
15315
  flushSync();
15194
15316
  },
15195
- get currentTabContainer() {
15196
- return currentTabContainer();
15197
- },
15198
- set currentTabContainer($$value = null) {
15199
- currentTabContainer($$value);
15200
- flushSync();
15201
- },
15202
15317
  get isDraggingOver() {
15203
15318
  return isDraggingOver();
15204
15319
  },
@@ -15255,6 +15370,13 @@ function CategoriseWordBin($$anchor, $$props) {
15255
15370
  totalItems($$value);
15256
15371
  flushSync();
15257
15372
  },
15373
+ get tabindex() {
15374
+ return tabindex();
15375
+ },
15376
+ set tabindex($$value = 0) {
15377
+ tabindex($$value);
15378
+ flushSync();
15379
+ },
15258
15380
  get dndType() {
15259
15381
  return dndType();
15260
15382
  },
@@ -15262,6 +15384,13 @@ function CategoriseWordBin($$anchor, $$props) {
15262
15384
  dndType($$value);
15263
15385
  flushSync();
15264
15386
  },
15387
+ get activeContainerForKeyboard() {
15388
+ return activeContainerForKeyboard();
15389
+ },
15390
+ set activeContainerForKeyboard($$value = void 0) {
15391
+ activeContainerForKeyboard($$value);
15392
+ flushSync();
15393
+ },
15265
15394
  get onitemdrop() {
15266
15395
  return onitemdrop();
15267
15396
  },
@@ -15290,6 +15419,20 @@ function CategoriseWordBin($$anchor, $$props) {
15290
15419
  onnavigateitem($$value);
15291
15420
  flushSync();
15292
15421
  },
15422
+ get onitemfocus() {
15423
+ return onitemfocus();
15424
+ },
15425
+ set onitemfocus($$value) {
15426
+ onitemfocus($$value);
15427
+ flushSync();
15428
+ },
15429
+ get onitemblur() {
15430
+ return onitemblur();
15431
+ },
15432
+ set onitemblur($$value) {
15433
+ onitemblur($$value);
15434
+ flushSync();
15435
+ },
15293
15436
  get onitemkeydown() {
15294
15437
  return onitemkeydown();
15295
15438
  },
@@ -15321,13 +15464,15 @@ function CategoriseWordBin($$anchor, $$props) {
15321
15464
  get onfocus() {
15322
15465
  return onfocus();
15323
15466
  },
15324
- set onfocus($$value) {
15467
+ set onfocus($$value = void 0) {
15325
15468
  onfocus($$value);
15326
15469
  flushSync();
15327
15470
  }
15328
15471
  };
15329
15472
  var div = root$3();
15330
- div.__keydown = handleContainerKeyDown;
15473
+ div.__keydown = function(...$$args) {
15474
+ (onkeydown() || void 0)?.apply(this, $$args);
15475
+ };
15331
15476
  var div_1 = child(div);
15332
15477
  var span = sibling(child(div_1), 2);
15333
15478
  var text = child(span);
@@ -15373,6 +15518,7 @@ function CategoriseWordBin($$anchor, $$props) {
15373
15518
  get containerId() {
15374
15519
  return containerId();
15375
15520
  },
15521
+ containerLabel: "Word Bin",
15376
15522
  get containerClass() {
15377
15523
  return get$1(containerClasses);
15378
15524
  },
@@ -15385,9 +15531,6 @@ function CategoriseWordBin($$anchor, $$props) {
15385
15531
  get isLocked() {
15386
15532
  return isLocked();
15387
15533
  },
15388
- get currentTabContainer() {
15389
- return currentTabContainer();
15390
- },
15391
15534
  get isMobile() {
15392
15535
  return isMobile();
15393
15536
  },
@@ -15397,6 +15540,9 @@ function CategoriseWordBin($$anchor, $$props) {
15397
15540
  get dndType() {
15398
15541
  return dndType();
15399
15542
  },
15543
+ get activeContainerForKeyboard() {
15544
+ return activeContainerForKeyboard();
15545
+ },
15400
15546
  get onitemdrop() {
15401
15547
  return onitemdrop();
15402
15548
  },
@@ -15406,6 +15552,12 @@ function CategoriseWordBin($$anchor, $$props) {
15406
15552
  get oncontainerclick() {
15407
15553
  return oncontainerclick();
15408
15554
  },
15555
+ get onitemfocus() {
15556
+ return onitemfocus();
15557
+ },
15558
+ get onitemblur() {
15559
+ return onitemblur();
15560
+ },
15409
15561
  get onitemkeydown() {
15410
15562
  return onitemkeydown();
15411
15563
  },
@@ -15442,13 +15594,14 @@ function CategoriseWordBin($$anchor, $$props) {
15442
15594
  reset(div);
15443
15595
  bind_this(div, ($$value) => set(wordBinElement, $$value), () => get$1(wordBinElement));
15444
15596
  template_effect(() => {
15445
- set_attribute(div, "tabindex", get$1(hasSelectedItem) ? -1 : 0);
15597
+ set_attribute(div, "tabindex", tabindex());
15598
+ set_attribute(div, "aria-label", !get$1(hasSelectedItem) || !get$1(isNotSourceContainer) ? `Word Bin. ${get$1(itemsRemaining)} out of ${totalItems()} left.` : void 0);
15446
15599
  set_class(div, 1, clsx(get$1(outerClasses)));
15447
15600
  set_class(div_1, 1, clsx(get$1(titleClasses)));
15448
15601
  set_text(text, `${get$1(itemsRemaining) ?? ""} out of ${totalItems() ?? ""} left`);
15449
15602
  });
15450
15603
  event("focus", div, function(...$$args) {
15451
- onfocus()?.apply(this, $$args);
15604
+ (onfocus() || void 0)?.apply(this, $$args);
15452
15605
  });
15453
15606
  append($$anchor, div);
15454
15607
  return pop($$exports);
@@ -15461,7 +15614,6 @@ create_custom_element(
15461
15614
  items: {},
15462
15615
  selectedItemId: {},
15463
15616
  isLocked: {},
15464
- currentTabContainer: {},
15465
15617
  isDraggingOver: {},
15466
15618
  dropContainerId: {},
15467
15619
  hasAddItemAnimation: {},
@@ -15470,11 +15622,15 @@ create_custom_element(
15470
15622
  isMobile: {},
15471
15623
  currentMobileIndex: {},
15472
15624
  totalItems: {},
15625
+ tabindex: {},
15473
15626
  dndType: {},
15627
+ activeContainerForKeyboard: {},
15474
15628
  onitemdrop: {},
15475
15629
  onitemselect: {},
15476
15630
  oncontainerclick: {},
15477
15631
  onnavigateitem: {},
15632
+ onitemfocus: {},
15633
+ onitemblur: {},
15478
15634
  onitemkeydown: {},
15479
15635
  ondraghover: {},
15480
15636
  ondragstart: {},
@@ -15519,13 +15675,11 @@ function CategoriseModal($$anchor, $$props) {
15519
15675
  push($$props, true);
15520
15676
  let isOpen = prop($$props, "isOpen", 7, false), onclose = prop($$props, "onclose", 7), onreset = prop($$props, "onreset", 7);
15521
15677
  let categoryModalRef = /* @__PURE__ */ state(void 0);
15522
- let ariaHidden = /* @__PURE__ */ state(false);
15523
15678
  user_effect(() => {
15524
15679
  if (isOpen() && get$1(categoryModalRef)) {
15525
15680
  setTimeout(
15526
15681
  () => {
15527
15682
  get$1(categoryModalRef)?.focus();
15528
- set(ariaHidden, true);
15529
15683
  },
15530
15684
  0
15531
15685
  );
@@ -15590,7 +15744,6 @@ function CategoriseModal($$anchor, $$props) {
15590
15744
  button_2.__click = handleReset;
15591
15745
  reset(div_3);
15592
15746
  reset(div_1);
15593
- template_effect(() => set_attribute(div, "aria-hidden", get$1(ariaHidden)));
15594
15747
  append($$anchor2, fragment_1);
15595
15748
  },
15596
15749
  $$slots: { default: true }
@@ -15603,12 +15756,14 @@ var root_2$1 = /* @__PURE__ */ from_html(`<button aria-label="Reset words" class
15603
15756
  text-blue-1000 px-3 py-2 absolute right-0 -top-2.5 hover:bg-blue-100"><span class="h-6 w-6 flex items-center justify-center"><!></span> <span class="text-base leading-4 font-bold ml-1 group-hover:underline">Reset <span class="hidden md:inline-block">words</span></span></button>`);
15604
15757
  var root_1$4 = /* @__PURE__ */ from_html(
15605
15758
  `<button type="button" aria-label="Skip to Word Bin" class="flex items-center text-charcoal border-l-6 border-charcoal bg-yellow-1000 py-1.5 pr-3 pl-4 focus-visible:border-charcoal
15606
- left-[-9999px] z-0 focus-within:left-0 focus-within:right-0 focus-within:top-0 absolute focus-within:z-30 focus-visible:outline-none"><span class="test-base font-semibold underline mr-1">Skip to Word Bin</span> <span class="text-inherit h-6 w-6 flex items-center justify-center"><!></span></button> <div class="w-full relative"><div class="sr-only" role="status" aria-live="polite" aria-atomic="true" tabindex="-1"> </div> <div class="mt-7.5 mb-6 relative md:text-center md:mb-8 md:mt-14"><p class="text-base leading-5 !text-gray-900 font-semibold md:item-heading">Categories</p> <!></div> <!> <!> <!></div>`,
15759
+ left-[-9999px] z-0 focus-within:left-0 focus-within:right-0 focus-within:top-0 absolute focus-within:z-30 focus-visible:outline-none"><span class="test-base font-semibold underline mr-1">Skip to Word Bin</span> <span class="text-inherit h-6 w-6 flex items-center justify-center"><!></span></button> <div class="w-full relative"><div class="sr-only" role="status" aria-live="polite" aria-atomic="true" tabindex="-1"> </div> <div class="mt-7.5 mb-6 relative md:text-center md:mb-8 md:mt-14"><p class="text-base leading-5 !text-gray-900 font-semibold md:item-heading">Categories</p> <!></div> <span tabindex="-1" class="sr-only"></span> <!> <!> <!></div>`,
15607
15760
  1
15608
15761
  );
15609
15762
  function CategoriseComponent($$anchor, $$props) {
15610
15763
  push($$props, true);
15611
15764
  const CONTAINER_WORD_BIN_ID2 = CATEGORISE.CONTAINER_WORD_BIN_ID;
15765
+ const ANIMATION_DELAY_MS = 300;
15766
+ const ANNOUNCEMENT_TIMEOUT_MS = 1e3;
15612
15767
  let api = prop($$props, "api", 7), config = prop($$props, "config", 7), onstateChange = prop($$props, "onstateChange", 7);
15613
15768
  const initialState = api().createInitialState?.();
15614
15769
  if (!initialState?.data) throw new Error("Failed to initialize Categorise state");
@@ -15616,10 +15771,11 @@ function CategoriseComponent($$anchor, $$props) {
15616
15771
  let isMobile = /* @__PURE__ */ state(false);
15617
15772
  let currentMobileIndex = /* @__PURE__ */ state(0);
15618
15773
  let isModalOpen = /* @__PURE__ */ state(false);
15619
- let currentTabContainer = /* @__PURE__ */ state(null);
15774
+ let activeContainerForKeyboard = /* @__PURE__ */ state(null);
15620
15775
  let dragHoverContainerId = /* @__PURE__ */ state(null);
15621
15776
  let dragSourceContainerId = /* @__PURE__ */ state(null);
15622
15777
  let announcement = /* @__PURE__ */ state("");
15778
+ let srOnlyFocusTrapRef = /* @__PURE__ */ state(void 0);
15623
15779
  let srDivRef = /* @__PURE__ */ state(void 0);
15624
15780
  let skipToWordBinRef = /* @__PURE__ */ state(void 0);
15625
15781
  let wordBinRef = /* @__PURE__ */ state(void 0);
@@ -15628,18 +15784,19 @@ function CategoriseComponent($$anchor, $$props) {
15628
15784
  const categoryTabIndex = /* @__PURE__ */ user_derived(() => get$1(selectedItemId) || get$1(isModalOpen) ? -1 : 0);
15629
15785
  const isCompleted = /* @__PURE__ */ user_derived(() => api().isCompleted?.(get$1(interactionState)) ?? false);
15630
15786
  const isLocked = /* @__PURE__ */ user_derived(() => api().isLocked?.(get$1(interactionState)) ?? false);
15787
+ const dropContainerId = /* @__PURE__ */ user_derived(() => get$1(interactionState).data.dropContainerId);
15788
+ const hasAddItemAnimation = /* @__PURE__ */ user_derived(() => get$1(interactionState).data.hasAddItemAnimation);
15631
15789
  const totalRemainingItems = /* @__PURE__ */ user_derived(() => get$1(interactionState).data.wordBinItems.filter((id) => {
15632
15790
  const status = id.split(CATEGORISE.DASH)[1];
15633
15791
  return status !== "missed";
15634
15792
  }).length);
15635
15793
  const totalPlacedItems = /* @__PURE__ */ user_derived(() => config().totalCategoryItems - get$1(totalRemainingItems));
15636
15794
  const feedbackState = /* @__PURE__ */ user_derived(() => useCategoriseFeedback(get$1(interactionState), config(), api()));
15637
- const dropContainerId = /* @__PURE__ */ user_derived(() => get$1(interactionState).data.dropContainerId);
15638
- const hasAddItemAnimation = /* @__PURE__ */ user_derived(() => get$1(interactionState).data.hasAddItemAnimation);
15639
15795
  const wordBinItems = /* @__PURE__ */ user_derived(() => get$1(interactionState).data.wordBinItems.map((id) => ({
15640
15796
  id,
15641
15797
  itemText: config().category_items.find((item) => item.id.split(CATEGORISE.DASH)[0] === id.split(CATEGORISE.DASH)[0])?.name || id
15642
15798
  })));
15799
+ const wordBinLength = /* @__PURE__ */ user_derived(() => get$1(wordBinItems).length);
15643
15800
  const getCategoryItemsData = (categoryId) => {
15644
15801
  const itemIds = api().getCategoryItems(get$1(interactionState), categoryId);
15645
15802
  return itemIds.map((id) => ({
@@ -15656,6 +15813,28 @@ function CategoriseComponent($$anchor, $$props) {
15656
15813
  }
15657
15814
  return void 0;
15658
15815
  };
15816
+ const findSourceContainer = (cleanItemId) => {
15817
+ if (get$1(interactionState).data.wordBinItems.some((id) => id.split(CATEGORISE.DASH)[0] === cleanItemId)) {
15818
+ return CONTAINER_WORD_BIN_ID2;
15819
+ }
15820
+ for (const [categoryId, items] of get$1(interactionState).data.placements.entries()) {
15821
+ if (items.some((id) => id.split(CATEGORISE.DASH)[0] === cleanItemId)) {
15822
+ return categoryId;
15823
+ }
15824
+ }
15825
+ return null;
15826
+ };
15827
+ const checkScreenSize = () => {
15828
+ if (typeof window !== "undefined") {
15829
+ set(isMobile, window.innerWidth < BREAKPOINTS.MD);
15830
+ }
15831
+ };
15832
+ const dispatchStateChange = () => {
15833
+ if (onstateChange()) {
15834
+ const serialized = api().serialize(get$1(interactionState));
15835
+ onstateChange()(new CustomEvent("statechange", { detail: { state: get$1(interactionState), serialized } }));
15836
+ }
15837
+ };
15659
15838
  const announceToScreenReader = async (message) => {
15660
15839
  set(announcement, "");
15661
15840
  await tick();
@@ -15665,25 +15844,54 @@ function CategoriseComponent($$anchor, $$props) {
15665
15844
  () => {
15666
15845
  set(announcement, "");
15667
15846
  },
15668
- 1e3
15847
+ ANNOUNCEMENT_TIMEOUT_MS
15669
15848
  );
15670
15849
  };
15671
- const checkScreenSize = () => {
15672
- if (typeof window !== "undefined") {
15673
- set(isMobile, window.innerWidth < BREAKPOINTS.MD);
15850
+ const createItemPlacementAnnouncement = (itemName, categoryName, categoryIndex, itemCount, containerId) => {
15851
+ const wordLabel = itemCount === 1 ? "word" : "words";
15852
+ if (categoryName) {
15853
+ return `Option ${itemName} added in Category ${categoryIndex + 1}: ${categoryName}. ${itemCount} ${wordLabel} added`;
15674
15854
  }
15855
+ if (containerId === CATEGORISE.CONTAINER_WORD_BIN_ID) {
15856
+ return `Option ${itemName} returned to Word Bin. ${itemCount} ${wordLabel} remaining`;
15857
+ }
15858
+ return `Option ${itemName} added. ${itemCount} ${wordLabel} in category`;
15859
+ };
15860
+ const playDropAnimation = async (containerId) => {
15861
+ await tick();
15862
+ await new Promise((resolve) => setTimeout(resolve, ANIMATION_DELAY_MS));
15863
+ set(
15864
+ interactionState,
15865
+ {
15866
+ ...get$1(interactionState),
15867
+ data: {
15868
+ ...get$1(interactionState).data,
15869
+ dropContainerId: containerId
15870
+ }
15871
+ },
15872
+ true
15873
+ );
15874
+ await new Promise((resolve) => setTimeout(resolve, ANIMATION_DELAY_MS));
15875
+ set(
15876
+ interactionState,
15877
+ {
15878
+ ...get$1(interactionState),
15879
+ data: { ...get$1(interactionState).data, hasAddItemAnimation: true }
15880
+ },
15881
+ true
15882
+ );
15883
+ setTimeout(
15884
+ () => {
15885
+ set(interactionState, api().clearDropAnimation(get$1(interactionState)), true);
15886
+ },
15887
+ ANIMATION_DELAY_MS
15888
+ );
15675
15889
  };
15676
15890
  onMount(() => {
15677
15891
  checkScreenSize();
15678
15892
  window.addEventListener("resize", checkScreenSize);
15679
15893
  return () => window.removeEventListener("resize", checkScreenSize);
15680
15894
  });
15681
- const dispatchStateChange = () => {
15682
- if (onstateChange()) {
15683
- const serialized = api().serialize(get$1(interactionState));
15684
- onstateChange()(new CustomEvent("statechange", { detail: { state: get$1(interactionState), serialized } }));
15685
- }
15686
- };
15687
15895
  const handleItemDrop = async (e2) => {
15688
15896
  const { info } = e2.detail;
15689
15897
  set(dragHoverContainerId, null);
@@ -15699,24 +15907,13 @@ function CategoriseComponent($$anchor, $$props) {
15699
15907
  }
15700
15908
  const droppedItemId = info.id;
15701
15909
  const cleanItemId = droppedItemId.split(CATEGORISE.DASH)[0];
15702
- let sourceContainerId = null;
15703
- if (get$1(interactionState).data.wordBinItems.some((id) => id.split(CATEGORISE.DASH)[0] === cleanItemId)) {
15704
- sourceContainerId = CATEGORISE.CONTAINER_WORD_BIN_ID;
15705
- } else {
15706
- for (const [categoryId, items] of get$1(interactionState).data.placements.entries()) {
15707
- if (items.some((id) => id.split(CATEGORISE.DASH)[0] === cleanItemId)) {
15708
- sourceContainerId = categoryId;
15709
- break;
15710
- }
15711
- }
15712
- }
15910
+ const sourceContainerId = findSourceContainer(cleanItemId);
15713
15911
  if (sourceContainerId === targetContainerId) {
15714
15912
  set(dragSourceContainerId, null);
15715
15913
  return;
15716
15914
  }
15717
15915
  set(dragSourceContainerId, sourceContainerId, true);
15718
15916
  set(interactionState, api().moveItem(get$1(interactionState), cleanItemId, targetContainerId), true);
15719
- set(currentTabContainer, null);
15720
15917
  set(
15721
15918
  interactionState,
15722
15919
  {
@@ -15727,43 +15924,16 @@ function CategoriseComponent($$anchor, $$props) {
15727
15924
  );
15728
15925
  dispatchStateChange();
15729
15926
  const item = config().category_items.find((i) => i.id === cleanItemId);
15730
- const targetCategory = config().category_groups.find((c) => c.id === targetContainerId);
15731
- if (item && targetCategory) {
15927
+ const targetCategoryIndex = config().category_groups.findIndex((c) => c.id === targetContainerId);
15928
+ const targetCategory = targetCategoryIndex >= 0 ? config().category_groups[targetCategoryIndex] : void 0;
15929
+ if (item) {
15732
15930
  const cleanItemName = useRemoveRichTextHtmlTags(item.name);
15733
- const cleanCategoryName = useRemoveRichTextHtmlTags(targetCategory.name);
15734
- const categoryItems = api().getCategoryItems(get$1(interactionState), targetContainerId);
15735
- const itemCount = categoryItems.length;
15736
- const wordLabel = itemCount === 1 ? "word" : "words";
15737
- await announceToScreenReader(`Option ${cleanItemName} added in ${cleanCategoryName}. ${itemCount} ${wordLabel} added`);
15931
+ const cleanCategoryName = targetCategory ? useRemoveRichTextHtmlTags(targetCategory.name) : null;
15932
+ const itemCount = targetContainerId === CATEGORISE.CONTAINER_WORD_BIN_ID ? get$1(interactionState).data.wordBinItems.length : api().getCategoryItems(get$1(interactionState), targetContainerId).length;
15933
+ const message = createItemPlacementAnnouncement(cleanItemName, cleanCategoryName, targetCategoryIndex, itemCount, targetContainerId);
15934
+ await announceToScreenReader(message);
15738
15935
  }
15739
- await tick();
15740
- await new Promise((resolve) => setTimeout(resolve, 300));
15741
- set(
15742
- interactionState,
15743
- {
15744
- ...get$1(interactionState),
15745
- data: {
15746
- ...get$1(interactionState).data,
15747
- dropContainerId: targetContainerId
15748
- }
15749
- },
15750
- true
15751
- );
15752
- await new Promise((resolve) => setTimeout(resolve, 300));
15753
- set(
15754
- interactionState,
15755
- {
15756
- ...get$1(interactionState),
15757
- data: { ...get$1(interactionState).data, hasAddItemAnimation: true }
15758
- },
15759
- true
15760
- );
15761
- setTimeout(
15762
- () => {
15763
- set(interactionState, api().clearDropAnimation(get$1(interactionState)), true);
15764
- },
15765
- 300
15766
- );
15936
+ await playDropAnimation(targetContainerId);
15767
15937
  };
15768
15938
  const handleDragHover = (containerId, isHovering) => {
15769
15939
  if (isHovering) {
@@ -15777,58 +15947,27 @@ function CategoriseComponent($$anchor, $$props) {
15777
15947
  const handleDragStart = (containerId) => {
15778
15948
  set(dragSourceContainerId, containerId, true);
15779
15949
  };
15780
- user_effect(() => {
15781
- if (get$1(selectedItemId)) {
15782
- const cleanItemId = get$1(selectedItemId).split(CATEGORISE.DASH)[0];
15783
- if (get$1(interactionState).data.wordBinItems.some((id) => id.split(CATEGORISE.DASH)[0] === cleanItemId)) {
15784
- set(dragSourceContainerId, CATEGORISE.CONTAINER_WORD_BIN_ID, true);
15785
- } else {
15786
- for (const [categoryId, items] of get$1(interactionState).data.placements.entries()) {
15787
- if (items.some((id) => id.split(CATEGORISE.DASH)[0] === cleanItemId)) {
15788
- set(dragSourceContainerId, categoryId, true);
15789
- break;
15790
- }
15791
- }
15792
- }
15793
- }
15794
- });
15795
- user_effect(() => {
15796
- const wordBinLength = get$1(wordBinItems).length;
15797
- if (get$1(currentMobileIndex) >= wordBinLength && wordBinLength > 0) {
15798
- set(currentMobileIndex, wordBinLength - 1);
15799
- }
15800
- if (wordBinLength === 0) {
15801
- set(currentMobileIndex, 0);
15802
- }
15803
- });
15804
15950
  const handleItemSelect = (itemId) => {
15805
15951
  if (get$1(isLocked)) return;
15806
15952
  const cleanItemId = itemId.split(CATEGORISE.DASH)[0];
15807
15953
  if (!get$1(selectedItemId)) {
15954
+ set(activeContainerForKeyboard, null);
15808
15955
  set(interactionState, api().selectItem(get$1(interactionState), cleanItemId, null), true);
15809
15956
  } else if (get$1(selectedItemId) === cleanItemId) {
15810
15957
  set(interactionState, api().selectItem(get$1(interactionState), null, null), true);
15811
15958
  }
15812
15959
  };
15813
15960
  const handleContainerSelect = async (containerId) => {
15814
- if (get$1(isLocked) || !get$1(selectedItemId)) return;
15815
- let sourceContainerId = null;
15816
- const cleanSelectedId = get$1(selectedItemId).split(CATEGORISE.DASH)[0];
15817
- if (get$1(interactionState).data.wordBinItems.some((id) => id.split(CATEGORISE.DASH)[0] === cleanSelectedId)) {
15818
- sourceContainerId = CATEGORISE.CONTAINER_WORD_BIN_ID;
15819
- } else {
15820
- for (const [categoryId, items] of get$1(interactionState).data.placements.entries()) {
15821
- if (items.some((id) => id.split(CATEGORISE.DASH)[0] === cleanSelectedId)) {
15822
- sourceContainerId = categoryId;
15823
- break;
15824
- }
15825
- }
15961
+ if (get$1(isLocked) || !get$1(selectedItemId)) {
15962
+ return;
15826
15963
  }
15964
+ const capturedSelectedItemId = get$1(selectedItemId);
15965
+ const cleanSelectedId = capturedSelectedItemId.split(CATEGORISE.DASH)[0];
15966
+ const sourceContainerId = findSourceContainer(cleanSelectedId);
15827
15967
  if (sourceContainerId === containerId) {
15828
15968
  return;
15829
15969
  }
15830
- set(interactionState, api().moveItem(get$1(interactionState), get$1(selectedItemId), containerId), true);
15831
- set(currentTabContainer, null);
15970
+ set(interactionState, api().moveItem(get$1(interactionState), capturedSelectedItemId, containerId), true);
15832
15971
  set(
15833
15972
  interactionState,
15834
15973
  {
@@ -15838,44 +15977,22 @@ function CategoriseComponent($$anchor, $$props) {
15838
15977
  true
15839
15978
  );
15840
15979
  dispatchStateChange();
15841
- const item = config().category_items.find((i) => i.id === get$1(selectedItemId));
15842
- const targetCategory = containerId === CATEGORISE.CONTAINER_WORD_BIN_ID ? null : config().category_groups.find((c) => c.id === containerId);
15843
- if (item && targetCategory) {
15980
+ const cleanSelectedItemId = capturedSelectedItemId.split(CATEGORISE.DASH)[0];
15981
+ const item = config().category_items.find((i) => i.id === cleanSelectedItemId);
15982
+ const targetCategoryIndex = containerId === CATEGORISE.CONTAINER_WORD_BIN_ID ? -1 : config().category_groups.findIndex((c) => c.id === containerId);
15983
+ const targetCategory = targetCategoryIndex >= 0 ? config().category_groups[targetCategoryIndex] : null;
15984
+ if (item) {
15844
15985
  const cleanItemName = useRemoveRichTextHtmlTags(item.name);
15845
- const cleanCategoryName = useRemoveRichTextHtmlTags(targetCategory.name);
15846
- const categoryItems = api().getCategoryItems(get$1(interactionState), containerId);
15847
- const itemCount = categoryItems.length;
15848
- const wordLabel = itemCount === 1 ? "word" : "words";
15849
- await announceToScreenReader(`Option ${cleanItemName} added in ${cleanCategoryName}. ${itemCount} ${wordLabel} added`);
15986
+ const cleanCategoryName = targetCategory ? useRemoveRichTextHtmlTags(targetCategory.name) : null;
15987
+ const itemCount = containerId === CATEGORISE.CONTAINER_WORD_BIN_ID ? get$1(interactionState).data.wordBinItems.length : api().getCategoryItems(get$1(interactionState), containerId).length;
15988
+ const message = createItemPlacementAnnouncement(cleanItemName, cleanCategoryName, targetCategoryIndex, itemCount, containerId);
15989
+ await announceToScreenReader(message);
15850
15990
  }
15991
+ await playDropAnimation(containerId);
15851
15992
  await tick();
15852
- await new Promise((resolve) => setTimeout(resolve, 300));
15853
- set(
15854
- interactionState,
15855
- {
15856
- ...get$1(interactionState),
15857
- data: {
15858
- ...get$1(interactionState).data,
15859
- dropContainerId: containerId
15860
- }
15861
- },
15862
- true
15863
- );
15864
- await new Promise((resolve) => setTimeout(resolve, 300));
15865
- set(
15866
- interactionState,
15867
- {
15868
- ...get$1(interactionState),
15869
- data: { ...get$1(interactionState).data, hasAddItemAnimation: true }
15870
- },
15871
- true
15872
- );
15873
- setTimeout(
15874
- () => {
15875
- set(interactionState, api().clearDropAnimation(get$1(interactionState)), true);
15876
- },
15877
- 300
15878
- );
15993
+ if (get$1(srOnlyFocusTrapRef)) {
15994
+ get$1(srOnlyFocusTrapRef).focus();
15995
+ }
15879
15996
  };
15880
15997
  const handleNavigateItem = (direction) => {
15881
15998
  const result = useNavigateItem(
@@ -15905,16 +16022,21 @@ function CategoriseComponent($$anchor, $$props) {
15905
16022
  }
15906
16023
  }
15907
16024
  };
15908
- const handleContainerFocus = (event2, containerId) => {
15909
- const relatedTarget = event2.relatedTarget;
15910
- if (relatedTarget && relatedTarget.hasAttribute("data-item-button")) {
15911
- set(currentTabContainer, null);
15912
- }
16025
+ const getItemIndex = (itemId, containerId) => {
16026
+ const items = containerId === CONTAINER_WORD_BIN_ID2 ? get$1(wordBinItems) : getCategoryItemsData(containerId);
16027
+ return items.findIndex((item) => item.id === itemId);
15913
16028
  };
15914
16029
  const handleCategoryKeydown = async (event2, categoryId) => {
15915
16030
  if (event2.key === "Enter") {
15916
16031
  event2.preventDefault();
15917
16032
  if (get$1(selectedItemId)) {
16033
+ const categoryItems2 = api().getCategoryItems(get$1(interactionState), categoryId);
16034
+ const cleanSelectedId = get$1(selectedItemId).split(CATEGORISE.DASH)[0];
16035
+ const isSelectedInThisCategory = categoryItems2.some((id) => id.split(CATEGORISE.DASH)[0] === cleanSelectedId);
16036
+ if (isSelectedInThisCategory) {
16037
+ set(interactionState, api().selectItem(get$1(interactionState), null, null), true);
16038
+ return;
16039
+ }
15918
16040
  await handleContainerSelect(categoryId);
15919
16041
  return;
15920
16042
  }
@@ -15926,74 +16048,109 @@ function CategoriseComponent($$anchor, $$props) {
15926
16048
  if (categoryItems.length === 0) {
15927
16049
  return;
15928
16050
  }
15929
- set(currentTabContainer, categoryId, true);
15930
- await tick();
15931
- await tick();
15932
- setTimeout(
15933
- () => {
15934
- const categoryRef = get$1(categoryRefs)[categoryId];
15935
- if (categoryRef?.categoryElement) {
15936
- const firstButton = categoryRef.categoryElement.querySelector("button[data-item-button]:not([disabled])");
15937
- if (firstButton) {
15938
- firstButton.focus();
15939
- }
15940
- }
15941
- },
15942
- 150
15943
- );
16051
+ set(activeContainerForKeyboard, categoryId, true);
16052
+ const categoryRef = get$1(categoryRefs)[categoryId];
16053
+ if (categoryRef?.categoryElement) {
16054
+ const firstItemButton = categoryRef.categoryElement.querySelector("[data-item-button]");
16055
+ if (firstItemButton) {
16056
+ firstItemButton.focus();
16057
+ }
16058
+ }
16059
+ } else if (event2.key === "Escape") {
16060
+ event2.preventDefault();
16061
+ if (get$1(selectedItemId)) {
16062
+ set(interactionState, api().selectItem(get$1(interactionState), null, null), true);
16063
+ }
16064
+ }
16065
+ };
16066
+ const handleItemFocus = (itemId, containerId, event2) => {
16067
+ if (!get$1(selectedItemId) && get$1(activeContainerForKeyboard) !== containerId) {
16068
+ set(activeContainerForKeyboard, containerId, true);
16069
+ }
16070
+ };
16071
+ const handleItemBlur = (itemId, containerId, event2) => {
16072
+ const relatedTarget = event2.relatedTarget;
16073
+ if (relatedTarget) {
16074
+ const relatedContainerId = relatedTarget.closest('[id^="container-"]')?.id;
16075
+ if (relatedContainerId !== containerId && get$1(activeContainerForKeyboard) === containerId) {
16076
+ set(activeContainerForKeyboard, null);
16077
+ }
15944
16078
  }
15945
16079
  };
15946
16080
  const handleWordBinKeydown = async (event2) => {
15947
16081
  if (event2.key === "Enter") {
15948
16082
  event2.preventDefault();
15949
16083
  if (get$1(selectedItemId)) {
16084
+ const cleanSelectedId = get$1(selectedItemId).split(CATEGORISE.DASH)[0];
16085
+ const isSelectedInWordBin = get$1(interactionState).data.wordBinItems.some((id) => id.split(CATEGORISE.DASH)[0] === cleanSelectedId);
16086
+ if (isSelectedInWordBin) {
16087
+ set(interactionState, api().selectItem(get$1(interactionState), null, null), true);
16088
+ return;
16089
+ }
15950
16090
  await handleContainerSelect(CATEGORISE.CONTAINER_WORD_BIN_ID);
15951
16091
  return;
15952
16092
  }
15953
16093
  if (get$1(wordBinItems).length === 0) {
15954
16094
  return;
15955
16095
  }
15956
- set(currentTabContainer, CATEGORISE.CONTAINER_WORD_BIN_ID, true);
15957
- await tick();
15958
- await tick();
15959
- setTimeout(
15960
- () => {
15961
- if (get$1(wordBinRef)?.wordBinElement) {
15962
- const firstButton = get$1(wordBinRef).wordBinElement.querySelector("button[data-item-button]:not([disabled])");
15963
- if (firstButton) {
15964
- firstButton.focus();
15965
- }
15966
- }
15967
- },
15968
- 150
15969
- );
16096
+ set(activeContainerForKeyboard, CATEGORISE.CONTAINER_WORD_BIN_ID, true);
16097
+ if (get$1(wordBinRef)?.wordBinElement) {
16098
+ const firstItemButton = get$1(wordBinRef).wordBinElement.querySelector("[data-item-button]");
16099
+ if (firstItemButton) {
16100
+ firstItemButton.focus();
16101
+ }
16102
+ }
16103
+ } else if (event2.key === "Escape") {
16104
+ event2.preventDefault();
16105
+ if (get$1(selectedItemId)) {
16106
+ set(interactionState, api().selectItem(get$1(interactionState), null, null), true);
16107
+ }
15970
16108
  }
15971
16109
  };
15972
- const handleItemKeydown = (event2, itemId, itemIndex, containerId, totalItems) => {
16110
+ const handleItemKeydown = (event2, itemId, containerId) => {
15973
16111
  if (event2.key === "Enter") {
15974
16112
  event2.preventDefault();
15975
16113
  event2.stopPropagation();
15976
16114
  handleItemSelect(itemId);
16115
+ set(activeContainerForKeyboard, containerId, true);
16116
+ const itemElement = document.getElementById(itemId);
16117
+ if (itemElement) {
16118
+ itemElement.focus();
16119
+ }
15977
16120
  } else if (event2.key === "Escape") {
15978
16121
  if (get$1(selectedItemId)) {
15979
16122
  set(interactionState, api().selectItem(get$1(interactionState), null, null), true);
15980
16123
  }
15981
- set(currentTabContainer, null);
15982
- setTimeout(
15983
- () => {
15984
- if (containerId === CONTAINER_WORD_BIN_ID2) {
15985
- if (get$1(wordBinRef)?.wordBinElement) {
15986
- get$1(wordBinRef).wordBinElement.focus();
15987
- }
15988
- } else {
15989
- const categoryRef = get$1(categoryRefs)[containerId];
15990
- if (categoryRef?.categoryElement) {
16124
+ const itemElement = document.getElementById(itemId);
16125
+ if (itemElement) {
16126
+ itemElement.focus();
16127
+ }
16128
+ } else if (event2.key === "Tab") {
16129
+ const currentIndex = getItemIndex(itemId, containerId);
16130
+ const containerItems = containerId === CONTAINER_WORD_BIN_ID2 ? get$1(wordBinItems) : getCategoryItemsData(containerId);
16131
+ if (event2.shiftKey && currentIndex === 0) {
16132
+ set(activeContainerForKeyboard, null);
16133
+ } else if (!event2.shiftKey && currentIndex === containerItems.length - 1) {
16134
+ set(activeContainerForKeyboard, null);
16135
+ }
16136
+ }
16137
+ if (event2.key === "Tab" && !event2.shiftKey) {
16138
+ if (containerId === CONTAINER_WORD_BIN_ID2 && get$1(selectedItemId)) {
16139
+ const firstCategory = config().category_groups[0];
16140
+ if (firstCategory) {
16141
+ event2.preventDefault();
16142
+ event2.stopPropagation();
16143
+ const categoryRef = get$1(categoryRefs)[firstCategory.id];
16144
+ if (categoryRef?.categoryElement) {
16145
+ const overlayButton = categoryRef.categoryElement.querySelector("button.absolute.inset-0");
16146
+ if (overlayButton) {
16147
+ overlayButton.focus();
16148
+ } else {
15991
16149
  categoryRef.categoryElement.focus();
15992
16150
  }
15993
16151
  }
15994
- },
15995
- 50
15996
- );
16152
+ }
16153
+ }
15997
16154
  }
15998
16155
  };
15999
16156
  const handleOpenResetModal = () => {
@@ -16008,6 +16165,40 @@ function CategoriseComponent($$anchor, $$props) {
16008
16165
  set(currentMobileIndex, 0);
16009
16166
  set(isModalOpen, false);
16010
16167
  };
16168
+ user_effect(() => {
16169
+ if (get$1(selectedItemId)) {
16170
+ const cleanItemId = get$1(selectedItemId).split(CATEGORISE.DASH)[0];
16171
+ if (get$1(interactionState).data.wordBinItems.some((id) => id.split(CATEGORISE.DASH)[0] === cleanItemId)) {
16172
+ set(dragSourceContainerId, CATEGORISE.CONTAINER_WORD_BIN_ID, true);
16173
+ } else {
16174
+ for (const [categoryId, items] of get$1(interactionState).data.placements.entries()) {
16175
+ if (items.some((id) => id.split(CATEGORISE.DASH)[0] === cleanItemId)) {
16176
+ set(dragSourceContainerId, categoryId, true);
16177
+ break;
16178
+ }
16179
+ }
16180
+ }
16181
+ }
16182
+ });
16183
+ user_effect(() => {
16184
+ const length = get$1(wordBinLength);
16185
+ untrack(() => {
16186
+ if (get$1(currentMobileIndex) >= length && length > 0) {
16187
+ set(currentMobileIndex, length - 1);
16188
+ }
16189
+ if (length === 0) {
16190
+ set(currentMobileIndex, 0);
16191
+ }
16192
+ });
16193
+ });
16194
+ user_effect(() => {
16195
+ if (get$1(selectedItemId) && !get$1(activeContainerForKeyboard)) {
16196
+ const selectedButton = document.getElementById(get$1(selectedItemId));
16197
+ if (selectedButton) {
16198
+ selectedButton.focus();
16199
+ }
16200
+ }
16201
+ });
16011
16202
  var $$exports = {
16012
16203
  get api() {
16013
16204
  return api();
@@ -16036,6 +16227,12 @@ function CategoriseComponent($$anchor, $$props) {
16036
16227
  var fragment_1 = root_1$4();
16037
16228
  var button = first_child(fragment_1);
16038
16229
  button.__keydown = skipToWordBin;
16230
+ button.__click = async () => {
16231
+ await tick();
16232
+ if (get$1(wordBinRef)?.wordBinElement) {
16233
+ get$1(wordBinRef).wordBinElement.focus();
16234
+ }
16235
+ };
16039
16236
  var span = sibling(child(button), 2);
16040
16237
  var node = child(span);
16041
16238
  SvgLoader(node, {
@@ -16070,7 +16267,9 @@ function CategoriseComponent($$anchor, $$props) {
16070
16267
  });
16071
16268
  }
16072
16269
  reset(div_2);
16073
- var node_3 = sibling(div_2, 2);
16270
+ var span_2 = sibling(div_2, 2);
16271
+ bind_this(span_2, ($$value) => set(srOnlyFocusTrapRef, $$value), () => get$1(srOnlyFocusTrapRef));
16272
+ var node_3 = sibling(span_2, 2);
16074
16273
  {
16075
16274
  let $02 = /* @__PURE__ */ user_derived(() => !!config().stimulus);
16076
16275
  CategoriseCategoryList(node_3, {
@@ -16080,16 +16279,18 @@ function CategoriseComponent($$anchor, $$props) {
16080
16279
  children: ($$anchor3, $$slotProps) => {
16081
16280
  var fragment_2 = comment();
16082
16281
  var node_4 = first_child(fragment_2);
16083
- each(node_4, 17, () => config().category_groups, (category) => category.id, ($$anchor4, category) => {
16282
+ each(node_4, 19, () => config().category_groups, (category) => category.id, ($$anchor4, category, categoryIndex) => {
16084
16283
  const categoryItems = /* @__PURE__ */ user_derived(() => getCategoryItemsData(get$1(category).id));
16085
16284
  const isCollapsed = /* @__PURE__ */ user_derived(() => !api().isCategoryOpen(get$1(interactionState), get$1(category).id));
16086
16285
  {
16087
- let $03 = /* @__PURE__ */ user_derived(() => get$1(selectedItemId) || void 0);
16088
- let $12 = /* @__PURE__ */ user_derived(() => get$1(dragHoverContainerId) === get$1(category).id);
16089
- let $22 = /* @__PURE__ */ user_derived(() => get$1(dropContainerId) || void 0);
16090
- let $3 = /* @__PURE__ */ user_derived(() => get$1(dragSourceContainerId) || void 0);
16091
- let $4 = /* @__PURE__ */ user_derived(() => get$1(categoryItems)[0] ? getItemResultType(get$1(categoryItems)[0].id) : void 0);
16092
- let $5 = /* @__PURE__ */ user_derived(() => !!config().stimulus);
16286
+ let $03 = /* @__PURE__ */ user_derived(() => get$1(categoryIndex) + 1);
16287
+ let $12 = /* @__PURE__ */ user_derived(() => get$1(selectedItemId) || void 0);
16288
+ let $22 = /* @__PURE__ */ user_derived(() => get$1(dragHoverContainerId) === get$1(category).id);
16289
+ let $3 = /* @__PURE__ */ user_derived(() => get$1(dropContainerId) || void 0);
16290
+ let $4 = /* @__PURE__ */ user_derived(() => get$1(dragSourceContainerId) || void 0);
16291
+ let $5 = /* @__PURE__ */ user_derived(() => get$1(categoryItems)[0] ? getItemResultType(get$1(categoryItems)[0].id) : void 0);
16292
+ let $6 = /* @__PURE__ */ user_derived(() => !!config().stimulus);
16293
+ let $7 = /* @__PURE__ */ user_derived(() => get$1(activeContainerForKeyboard) || void 0);
16093
16294
  bind_this(
16094
16295
  CategoriseCategory($$anchor4, {
16095
16296
  get categoryId() {
@@ -16098,11 +16299,14 @@ function CategoriseComponent($$anchor, $$props) {
16098
16299
  get categoryTitle() {
16099
16300
  return get$1(category).name;
16100
16301
  },
16302
+ get categoryIndex() {
16303
+ return get$1($03);
16304
+ },
16101
16305
  get items() {
16102
16306
  return get$1(categoryItems);
16103
16307
  },
16104
16308
  get selectedItemId() {
16105
- return get$1($03);
16309
+ return get$1($12);
16106
16310
  },
16107
16311
  get isLocked() {
16108
16312
  return get$1(isLocked);
@@ -16110,32 +16314,29 @@ function CategoriseComponent($$anchor, $$props) {
16110
16314
  get isCollapsed() {
16111
16315
  return get$1(isCollapsed);
16112
16316
  },
16113
- get currentTabContainer() {
16114
- return get$1(currentTabContainer);
16115
- },
16116
16317
  get isDraggingOver() {
16117
- return get$1($12);
16318
+ return get$1($22);
16118
16319
  },
16119
16320
  get dropContainerId() {
16120
- return get$1($22);
16321
+ return get$1($3);
16121
16322
  },
16122
16323
  get hasAddItemAnimation() {
16123
16324
  return get$1(hasAddItemAnimation);
16124
16325
  },
16125
16326
  get dragSourceContainerId() {
16126
- return get$1($3);
16327
+ return get$1($4);
16127
16328
  },
16128
16329
  get mode() {
16129
16330
  return config().mode;
16130
16331
  },
16131
16332
  get resultType() {
16132
- return get$1($4);
16333
+ return get$1($5);
16133
16334
  },
16134
16335
  get isMobile() {
16135
16336
  return get$1(isMobile);
16136
16337
  },
16137
16338
  get hasStimulus() {
16138
- return get$1($5);
16339
+ return get$1($6);
16139
16340
  },
16140
16341
  get dndType() {
16141
16342
  return config().categoryDndType;
@@ -16143,13 +16344,17 @@ function CategoriseComponent($$anchor, $$props) {
16143
16344
  get tabindex() {
16144
16345
  return get$1(categoryTabIndex);
16145
16346
  },
16347
+ get activeContainerForKeyboard() {
16348
+ return get$1($7);
16349
+ },
16146
16350
  onitemdrop: handleItemDrop,
16147
16351
  onitemselect: handleItemSelect,
16148
16352
  oncontainerclick: () => handleContainerSelect(get$1(category).id),
16149
16353
  ontogglecollapse: handleToggleCollapse,
16150
16354
  onkeydown: (e2) => handleCategoryKeydown(e2, get$1(category).id),
16151
- onfocus: (e2) => handleContainerFocus(e2, get$1(category).id),
16152
- onitemkeydown: (e2, itemId, itemIndex) => handleItemKeydown(e2, itemId, itemIndex, get$1(category).id, get$1(categoryItems).length),
16355
+ onitemfocus: (itemId, event2) => handleItemFocus(itemId, get$1(category).id),
16356
+ onitemblur: (itemId, event2) => handleItemBlur(itemId, get$1(category).id, event2),
16357
+ onitemkeydown: (e2, itemId) => handleItemKeydown(e2, itemId, get$1(category).id),
16153
16358
  ondraghover: handleDragHover,
16154
16359
  ondragstart: handleDragStart
16155
16360
  }),
@@ -16170,6 +16375,7 @@ function CategoriseComponent($$anchor, $$props) {
16170
16375
  let $12 = /* @__PURE__ */ user_derived(() => get$1(dragHoverContainerId) === CONTAINER_WORD_BIN_ID2);
16171
16376
  let $22 = /* @__PURE__ */ user_derived(() => get$1(dropContainerId) || void 0);
16172
16377
  let $3 = /* @__PURE__ */ user_derived(() => get$1(dragSourceContainerId) || void 0);
16378
+ let $4 = /* @__PURE__ */ user_derived(() => get$1(activeContainerForKeyboard) || void 0);
16173
16379
  bind_this(
16174
16380
  CategoriseWordBin(node_5, {
16175
16381
  get containerId() {
@@ -16184,9 +16390,6 @@ function CategoriseComponent($$anchor, $$props) {
16184
16390
  get isLocked() {
16185
16391
  return get$1(isLocked);
16186
16392
  },
16187
- get currentTabContainer() {
16188
- return get$1(currentTabContainer);
16189
- },
16190
16393
  get isDraggingOver() {
16191
16394
  return get$1($12);
16192
16395
  },
@@ -16211,18 +16414,25 @@ function CategoriseComponent($$anchor, $$props) {
16211
16414
  get totalItems() {
16212
16415
  return config().category_items.length;
16213
16416
  },
16417
+ get tabindex() {
16418
+ return get$1(categoryTabIndex);
16419
+ },
16214
16420
  get dndType() {
16215
16421
  return config().categoryDndType;
16216
16422
  },
16423
+ get activeContainerForKeyboard() {
16424
+ return get$1($4);
16425
+ },
16217
16426
  onitemdrop: handleItemDrop,
16218
16427
  onitemselect: handleItemSelect,
16219
16428
  oncontainerclick: () => handleContainerSelect(CONTAINER_WORD_BIN_ID2),
16220
16429
  onnavigateitem: handleNavigateItem,
16221
- onitemkeydown: (e2, itemId, itemIndex) => handleItemKeydown(e2, itemId, itemIndex, CONTAINER_WORD_BIN_ID2, get$1(wordBinItems).length),
16430
+ onitemfocus: (itemId, event2) => handleItemFocus(itemId, CONTAINER_WORD_BIN_ID2),
16431
+ onitemblur: (itemId, event2) => handleItemBlur(itemId, CONTAINER_WORD_BIN_ID2, event2),
16432
+ onitemkeydown: (e2, itemId) => handleItemKeydown(e2, itemId, CONTAINER_WORD_BIN_ID2),
16222
16433
  ondraghover: handleDragHover,
16223
16434
  ondragstart: handleDragStart,
16224
- onkeydown: handleWordBinKeydown,
16225
- onfocus: (e2) => handleContainerFocus(e2)
16435
+ onkeydown: handleWordBinKeydown
16226
16436
  }),
16227
16437
  ($$value) => set(wordBinRef, $$value, true),
16228
16438
  () => get$1(wordBinRef)
@@ -18629,7 +18839,7 @@ registerInteraction("dropdown", createDropdownInteraction, DropdownComponent);
18629
18839
  var root_1 = /* @__PURE__ */ from_html(`<link rel="preconnect" href="https://fonts.googleapis.com" class="svelte-1dpid58"/> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="anonymous" class="svelte-1dpid58"/> <link href="https://fonts.googleapis.com/css2?family=Mulish:ital,wght@0,200..1000;1,200..1000&amp;display=swap" rel="stylesheet" class="svelte-1dpid58"/>`, 1);
18630
18840
  const $$css = {
18631
18841
  hash: "svelte-1dpid58",
18632
- code: ' *, :after, :before{--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:rgba(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:rgba(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:} *, :after, :before{border:0 solid #e5e7eb;box-sizing:border-box} :after, :before{--tw-content:""} :host, html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:Mulish,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent} body{line-height:inherit;margin:0} hr{border-top-width:1px;color:inherit;height:0} 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, pre, samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-size:1em;font-variation-settings:normal} small{font-size:80%} sub, sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline} sub{bottom:-.25em} sup{top:-.5em} table{border-collapse:collapse;border-color:inherit;text-indent:0} button, input, optgroup, select, textarea{color:inherit;font-family:inherit;font-feature-settings:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height: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, dd, dl, figure, h1, h2, h3, h4, h5, h6, hr, p, pre{margin:0} fieldset{margin:0} fieldset, legend{padding:0} menu, ol, ul{list-style:none;margin:0;padding:0} dialog{padding:0} textarea{resize:vertical} input::-moz-placeholder, textarea::-moz-placeholder{color:#9ca3af;opacity:1} input::placeholder, textarea::placeholder{color:#9ca3af;opacity:1} [role=button], button{cursor:pointer} :disabled{cursor:default} audio, canvas, embed, iframe, img, object, svg, video{display:block;vertical-align:middle} img, video{height:auto;max-width:100%} [hidden]:where(:not([hidden=until-found])){display:none} *{font-family:Mulish,sans-serif} input::-moz-selection, textarea::-moz-selection{background-color:hsla(0,0%,85%,.4)} input::selection, textarea::selection{background-color:hsla(0,0%,85%,.4)} .container{width:100%}@media (min-width:732px){ .container{max-width:732px}}@media (min-width:1196px){ .container{max-width:1196px}} .p2{font-size:.875rem;font-weight:600;line-height:1.25rem;line-height:1.5} .blanket-overlay{inset:0;position:absolute} .item-heading{font-size:1.25rem;letter-spacing:-.025em;line-height:1.5rem;--tw-text-opacity:1;color:rgb(40,44,135,var(--tw-text-opacity,1))} .focus-ring: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(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-opacity:1;--tw-ring-color:rgb(84 101 251/var(--tw-ring-opacity,1));--tw-ring-offset-width:4px} .focus-ring:focus, .raw-focus-ring{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 transparent);outline:2px solid transparent;outline-offset:2px;transition-duration:50ms} .raw-focus-ring{--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(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-opacity:1;--tw-ring-color:rgb(84 101 251/var(--tw-ring-opacity,1));--tw-ring-offset-width:2px} .focus-ring-by-dropdown{outline:2px solid transparent;outline-offset:2px;--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(var(--tw-ring-offset-width)) var(--tw-ring-color);border-color:rgb(59,64,240,var(--tw-border-opacity,1));border-width:2px;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 transparent);box-shadow:0 0 0 2px #fff,0 0 0 4px #212529,0 0 0 6px #fde047} .divider, .focus-ring-by-dropdown{--tw-border-opacity:1} .divider{border-bottom-width:1px;border-color:rgb(218,224,224,var(--tw-border-opacity,1))}@keyframes svelte-1dpid58-pulse{50%{opacity:.5}} .animate-skeleton{animation:svelte-1dpid58-pulse 2s cubic-bezier(.4,0,.6,1) infinite;--tw-bg-opacity:1;background-color:rgb(226,232,240,var(--tw-bg-opacity,1))} .btn-mcq-option:focus-visible{--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(2px + 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 transparent);--tw-ring-opacity:1;--tw-ring-color:rgb(253 224 71/var(--tw-ring-opacity,1));--tw-ring-offset-width:2px;--tw-ring-offset-color:#212529;outline:2px solid transparent;outline-offset:2px;transition-duration:50ms} .btn-mcq-option{font-size:1rem;line-height:1.5rem;line-height:19.2px;margin-bottom:1rem;min-height:52px;width:100%;--tw-text-opacity:1;border-radius:.5rem;border-width:1px;box-sizing:border-box;color:rgb(33,37,41,var(--tw-text-opacity,1));--tw-border-opacity:1;border-color:rgb(75,85,99,var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(248,248,248,var(--tw-bg-opacity,1))} .btn-mcq-option:active{border-width:2px;--tw-border-opacity:1;border-color:rgb(59,64,240,var(--tw-border-opacity,1))}@media (hover:hover) and (pointer:fine){ .btn-mcq-option:hover{border-width:2px;--tw-border-opacity:1;border-color:rgb(59,64,240,var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(238,240,255,var(--tw-bg-opacity,1))}} .btn-mcq-text{align-items:center;display:flex;padding:.375rem .75rem;width:100%}@supports (overflow-wrap:anywhere){ .btn-mcq-text{overflow-wrap:anywhere}}@supports not (overflow-wrap:anywhere){ .btn-mcq-text{word-break:break-word}} .btn-mcq-option>span>span>span>.choice{align-items:center;border-radius:1rem;border-width:1px;display:flex;font-size:1rem;font-weight:700;height:2rem;justify-content:center;letter-spacing:.05em;line-height:1rem;width:2rem;--tw-border-opacity:1;border-color:rgb(156,163,175,var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(255,255,255,var(--tw-bg-opacity,1));padding:.5rem;--tw-text-opacity:1;color:rgb(33,37,41,var(--tw-text-opacity,1))} .btn-mcq-option.selected{border-width:2px;--tw-border-opacity:1;background-color:rgb(40,44,135,var(--tw-bg-opacity,1));border-color:rgb(40,44,135,var(--tw-border-opacity,1))} .btn-mcq-option.selected, .btn-mcq-option.selected:active{--tw-bg-opacity:1;--tw-text-opacity:1;color:rgb(255,255,255,var(--tw-text-opacity,1))} .btn-mcq-option.selected:active{background-color:rgb(84,101,251,var(--tw-bg-opacity,1))}@media (hover:hover) and (pointer:fine){ .btn-mcq-option.selected:hover{--tw-bg-opacity:1;background-color:rgb(84,101,251,var(--tw-bg-opacity,1))}} .btn-mcq-option.finished{cursor:default} .btn-mcq-option.finished:active, .btn-mcq-option.finished:hover{border-width:1px;--tw-border-opacity:1;border-color:rgb(75,85,99,var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(248,248,248,var(--tw-bg-opacity,1))} .btn-mcq-option.selected>span>span>.choice{--tw-bg-opacity:1;background-color:rgb(238,240,255,var(--tw-bg-opacity,1))} .btn-mcq-option>span>span>span>.custom-checkbox{align-items:center;border-radius:.25rem;border-width:1px;display:flex;height:1.75rem;justify-content:center;pointer-events:none;width:1.75rem;--tw-border-opacity:1;border-color:rgb(75,85,99,var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(255,255,255,var(--tw-bg-opacity,1))}@media (hover:hover) and (pointer:fine){ .btn-mcq-option:hover>span>span>span>.custom-checkbox{border-width:2px;--tw-border-opacity:1;border-color:rgb(59,64,240,var(--tw-border-opacity,1))} .btn-mcq-option:active>span>span>span>.custom-checkbox.preview-only, .btn-mcq-option:hover>span>span>span>.custom-checkbox.preview-only{border-width:1px;--tw-border-opacity:1;border-color:rgb(75,85,99,var(--tw-border-opacity,1))}} .btn-mcq-option:active>span>span>span>.custom-checkbox{border-width:2px;--tw-border-opacity:1;border-color:rgb(40,44,135,var(--tw-border-opacity,1))} .btn-mcq-option.selected>span>span>span>.custom-checkbox{border-width:0;pointer-events:none;--tw-bg-opacity:1;background-color:rgb(84,101,251,var(--tw-bg-opacity,1))}@media (hover:hover) and (pointer:fine){ .btn-mcq-option.selected:hover>span>span>span>.custom-checkbox{border-width:0;--tw-bg-opacity:1;background-color:rgb(76,91,226,var(--tw-bg-opacity,1))}} .btn-mcq-option.selected:active>span>span>span>.custom-checkbox{border-width:0;--tw-bg-opacity:1;background-color:rgb(40,44,135,var(--tw-bg-opacity,1))} .btn-mcq-option.finished:active>span>span>span>.custom-checkbox, .btn-mcq-option.finished:hover>span>span>span>.custom-checkbox{border-width:1px;--tw-border-opacity:1;border-color:rgb(75,85,99,var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(255,255,255,var(--tw-bg-opacity,1))} .btn-mcq-option.missing.\\!correct, .btn-mcq-option.missing.correct{border-width:1px;--tw-border-opacity:1;border-color:rgb(21,128,61,var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(248,248,248,var(--tw-bg-opacity,1))}@media (hover:hover) and (pointer:fine){ .btn-mcq-option.\\!correct.interactive:active, .btn-mcq-option.\\!correct.interactive:hover, .btn-mcq-option.correct.interactive:active, .btn-mcq-option.correct.interactive:hover, .btn-mcq-option.incorrect.interactive:active, .btn-mcq-option.incorrect.interactive:hover, .btn-mcq-option.missing.interactive:active, .btn-mcq-option.missing.interactive:hover{border-width:2px;--tw-border-opacity:1;border-color:rgb(59,64,240,var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(238,240,255,var(--tw-bg-opacity,1))}} .btn-mcq-option.selected.\\!correct, .btn-mcq-option.selected.correct{background-color:rgb(240,253,244,var(--tw-bg-opacity,1));border-color:rgb(21,128,61,var(--tw-border-opacity,1));border-width:1px} .btn-mcq-option.selected.\\!correct, .btn-mcq-option.selected.correct, .btn-mcq-option.selected.incorrect{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;color:rgb(33,37,41,var(--tw-text-opacity,1))} .btn-mcq-option.selected.incorrect{background-color:rgb(253,242,248,var(--tw-bg-opacity,1));border-color:rgb(190,24,93,var(--tw-border-opacity,1));border-width:1px} .btn-mcq-option.selected.\\!correct>span>span>span>.choice, .btn-mcq-option.selected.correct>span>span>span>.choice, .btn-mcq-option.selected.incorrect>span>span>span>.choice{border-width:1px;--tw-border-opacity:1;border-color:rgb(113,115,119,var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(255,255,255,var(--tw-bg-opacity,1))} .btn-pressed{border-width:2px;--tw-border-opacity:1;border-color:rgb(51,69,223,var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(249,250,251,var(--tw-bg-opacity,1));--tw-shadow:inset 0 0 0 100vmax rgba(0,0,0,.05);--tw-shadow-colored:inset 0 0 0 100vmax var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 transparent),var(--tw-ring-shadow,0 0 transparent),var(--tw-shadow)} .btn-base:focus-visible{--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(2px + 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 transparent);--tw-ring-opacity:1;--tw-ring-color:rgb(253 224 71/var(--tw-ring-opacity,1));--tw-ring-offset-width:2px;--tw-ring-offset-color:#212529;outline:2px solid transparent;outline-offset:2px;transition-duration:50ms} .btn-base{align-items:center;display:inline-flex;justify-content:center}@media (hover:hover) and (pointer:fine){ .btn-base:hover{border-width:2px;--tw-border-opacity:1;border-color:rgb(59,64,240,var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(249,250,251,var(--tw-bg-opacity,1))}} .btn-base:active{border-width:2px;--tw-border-opacity:1;border-color:rgb(51,69,223,var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(249,250,251,var(--tw-bg-opacity,1));--tw-shadow:inset 0 0 0 100vmax rgba(0,0,0,.05);--tw-shadow-colored:inset 0 0 0 100vmax var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 transparent),var(--tw-ring-shadow,0 0 transparent),var(--tw-shadow)} .btn-touch-container{align-items:center;display:flex;height:2.75rem;justify-content:center;width:2.75rem} .btn-touch-container:focus{outline:2px solid transparent;outline-offset:2px} .btn-icon-sm{align-items:center;background-color:hsla(0,0%,100%,.8);border-radius:.25rem;display:flex;height:1.5rem;justify-content:center;width:1.5rem}@media (hover:hover) and (pointer:fine){ .btn-touch-container:hover>.btn-icon-sm{border-width:2px;--tw-border-opacity:1;border-color:rgb(59,64,240,var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(249,250,251,var(--tw-bg-opacity,1))}} .btn-touch-container:active>.btn-icon-sm{border-width:2px;--tw-border-opacity:1;border-color:rgb(51,69,223,var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(249,250,251,var(--tw-bg-opacity,1));--tw-shadow:inset 0 0 0 100vmax rgba(0,0,0,.05);--tw-shadow-colored:inset 0 0 0 100vmax var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 transparent),var(--tw-ring-shadow,0 0 transparent),var(--tw-shadow)} .btn-touch-container:focus-visible>.btn-icon-sm{--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(2px + 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 transparent);--tw-ring-opacity:1;--tw-ring-color:rgb(253 224 71/var(--tw-ring-opacity,1));--tw-ring-offset-width:2px;--tw-ring-offset-color:#212529;outline:2px solid transparent;outline-offset:2px;transition-duration:50ms} .typein-textbox:focus{outline:2px solid transparent;outline-offset:2px;--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(4px + 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 transparent);--tw-ring-color:rgb(84 101 251/var(--tw-ring-opacity,1));--tw-ring-offset-width:4px;transition-duration:50ms} .typein-textbox{border-radius:.5rem;border-width:1px;width:100%;--tw-border-opacity:1;border-color:rgb(75,85,99,var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(255,255,255,var(--tw-bg-opacity,1));font-size:1rem;line-height:1.5rem;padding:.75rem 1rem;--tw-text-opacity:1;color:rgb(33,37,41,var(--tw-text-opacity,1))} .typein-textbox::-moz-placeholder{--tw-placeholder-opacity:1;color:rgb(55,65,81,var(--tw-placeholder-opacity,1))} .typein-textbox::placeholder{--tw-placeholder-opacity:1;color:rgb(55,65,81,var(--tw-placeholder-opacity,1))} .typein-textbox:focus{border-width:2px;--tw-border-opacity:1;border-color:rgb(59,64,240,var(--tw-border-opacity,1))}@media (hover:hover) and (pointer:fine){ .typein-textbox:hover{border-width:2px;--tw-border-opacity:1;border-color:rgb(59,64,240,var(--tw-border-opacity,1))}} .typein-textbox:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)!important;--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color)!important;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 transparent)!important}@media (hover:hover) and (pointer:fine){ .typein-textbox:hover{transition-duration:50ms}} .typein-textbox:focus{outline-color:#212529;outline-width:2px}@media (hover:hover) and (pointer:fine){ .typein-textbox:hover{outline-color:#212529;outline-width:2px}} .typein-textbox:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(253 224 71/var(--tw-ring-opacity,1))} .inline-typein-container>p{font-size:1.25rem;font-weight:600;line-height:3rem;--tw-text-opacity:1;color:rgb(40,44,135,var(--tw-text-opacity,1))} #dnd-action-dragged-el{outline:2px solid transparent;outline-offset:2px;--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(2px + 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 transparent);--tw-ring-opacity:1;--tw-ring-color:rgb(84 101 251/var(--tw-ring-opacity,1));--tw-ring-offset-width:2px;cursor:grabbing!important;transition-duration:50ms;--tw-border-opacity:1!important;border-color:rgb(93,99,107,var(--tw-border-opacity,1))!important;--tw-bg-opacity:1!important;background-color:rgb(205,208,254,var(--tw-bg-opacity,1))!important} #dnd-action-dragged-el .btn-vertical-icon{cursor:grabbing!important;--tw-text-opacity:1;color:rgb(40,44,135,var(--tw-text-opacity,1))} #dnd-action-dragged-el .preview-icon{display:none!important} #dnd-action-dragged-el .preview-vertical{display:block!important} .image-description, .text-stimulus{padding-bottom:1rem;padding-top:1rem} .text-stimulus p{font-size:1.25rem;line-height:1.75rem;padding-bottom:.5rem;--tw-text-opacity:1;color:rgb(40,44,135,var(--tw-text-opacity,1))} .image-description p{font-size:.875rem;line-height:1.25rem;padding-bottom:.5rem;--tw-text-opacity:1;color:rgb(33,37,41,var(--tw-text-opacity,1))} .text-stimulus ol, .text-stimulus ul{font-size:1rem;line-height:1.5rem;list-style-position:inside;padding-bottom:.5rem;padding-left:.5rem} .text-stimulus ol ::marker, .text-stimulus ul ::marker{color:#282c87} .text-stimulus ol::marker, .text-stimulus ul::marker{color:#282c87} .image-description ol, .image-description ul{font-size:.875rem;line-height:1.25rem;list-style-position:inside;padding-bottom:.5rem;padding-left:.5rem} .image-description ol ::marker, .image-description ul ::marker{color:#212529} .image-description ol::marker, .image-description ul::marker{color:#212529} .image-description ul, .text-stimulus ul{list-style-type:disc} .image-description ol, .text-stimulus ol{list-style-type:decimal} .image-description ul li>p, .text-stimulus ul li>p{margin-left:-.5rem} .text-stimulus ol>li>p, .text-stimulus ul>li>p{display:inline;font-size:1rem;line-height:1.5rem;padding-bottom:0;padding-top:0} .image-description ol>li>p, .image-description ul>li>p{display:inline;font-size:.875rem;line-height:1.25rem;padding-bottom:0;padding-top:0} .image-description div.table-container:focus, .text-stimulus div.table-container:focus{outline:2px solid transparent;outline-offset:2px;--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(4px + 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 transparent);--tw-ring-opacity:1;--tw-ring-color:rgb(84 101 251/var(--tw-ring-opacity,1));--tw-ring-offset-width:4px;transition-duration:50ms} .image-description div.table-container, .text-stimulus div.table-container{border-radius:.5rem;overflow:auto;padding-left:.125rem;padding-right:.125rem} .image-description table, .text-stimulus table{margin-bottom:1rem;margin-top:.5rem;width:100%;--tw-border-spacing-x:0.75rem;--tw-border-spacing-y:0.75rem;border-radius:.5rem;border-spacing:var(--tw-border-spacing-x) var(--tw-border-spacing-y);overflow-x:auto;--tw-shadow:0 0 0 1px #9ca3af;--tw-shadow-colored:0 0 0 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 transparent),var(--tw-ring-shadow,0 0 transparent),var(--tw-shadow)} .image-description table tr, .text-stimulus table tr{border-bottom-width:1px;--tw-border-opacity:1;border-color:rgb(156,163,175,var(--tw-border-opacity,1))} .image-description table tr:last-child, .text-stimulus table tr:last-child{border-color:transparent} .image-description table td, .image-description table th, .text-stimulus table td, .text-stimulus table th{border-left-width:1px;min-width:140px;--tw-border-opacity:1;border-color:rgb(156,163,175,var(--tw-border-opacity,1))} .image-description table td:first-child, .image-description table th:first-child, .text-stimulus table td:first-child, .text-stimulus table th:first-child{border-style:none} .text-stimulus table td>p, .text-stimulus table th>p{font-size:1rem;line-height:1.5rem;padding:.75rem;text-align:left;--tw-text-opacity:1;color:rgb(33,37,41,var(--tw-text-opacity,1))} .image-description table td>p, .image-description table th>p{font-size:.875rem;line-height:1.25rem;padding:.75rem;text-align:left;--tw-text-opacity:1;color:rgb(33,37,41,var(--tw-text-opacity,1))} .text-stimulus table th>p{font-weight:400} .image-description table th p, .prompt p, .text-stimulus table th p{font-weight:600} .prompt p b, .prompt p b i, .prompt p b i u, .prompt p b u, .prompt p b u i, .prompt p i b, .prompt p i b u, .prompt p i u b, .prompt p u b, .prompt p u b i, .prompt p u i b, .text-stimulus table th p b, .text-stimulus table th p b i, .text-stimulus table th p b i u, .text-stimulus table th p b u, .text-stimulus table th p b u i, .text-stimulus table th p i b, .text-stimulus table th p i b u, .text-stimulus table th p i u b, .text-stimulus table th p u b, .text-stimulus table th p u b i, .text-stimulus table th p u i b{font-weight:900} .dropdown-text:not(:last-child), .dropdown:not(:last-child){margin-right:1rem} .dropdown-container{align-items:center;border-radius:.5rem;border-width:1px;display:flex;height:2.75rem;overflow:hidden;white-space:nowrap;width:15rem;--tw-border-opacity:1;border-color:rgb(75,85,99,var(--tw-border-opacity,1))} .dropdown-container:focus{outline:2px solid transparent;outline-offset:2px;--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(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 transparent)} .dropdown-container:active, .dropdown-container:focus{border-width:2px;box-shadow:0 0 0 2px #fff,0 0 0 4px #212529,0 0 0 6px #fde047;--tw-border-opacity:1;border-color:rgb(59,64,240,var(--tw-border-opacity,1))}@media (hover:hover) and (pointer:fine){ .dropdown-container:hover{border-width:2px;--tw-border-opacity:1;border-color:rgb(59,64,240,var(--tw-border-opacity,1));outline-color:#212529;outline-width:2px}} .dropdown-menu{border-radius:.5rem;border-width:1px;margin-top:.5rem;max-height:400px;overflow-y:auto;position:absolute;z-index:10;--tw-border-opacity:1;border-color:rgb(75,85,99,var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(255,255,255,var(--tw-bg-opacity,1))}@supports (overflow-wrap:anywhere){ .dropdown-menu{overflow-wrap:anywhere}}@supports not (overflow-wrap:anywhere){ .dropdown-menu{word-break:break-word}} .dropdown-menu{max-width:min(500px,100vw - 2rem);min-width:240px;width:-moz-max-content;width:max-content} .dropdown-item{cursor:pointer;font-size:1rem;line-height:1.5rem;outline:2px solid transparent;outline-offset:2px;padding:.5rem 1rem} .dropdown-itemtext{border-bottom-width:1px;border-color:transparent} .dropdown-itemtext.hover-option{--tw-border-opacity:1;border-color:rgb(0,0,0,var(--tw-border-opacity,1));--tw-text-opacity:1;color:rgb(46,47,212,var(--tw-text-opacity,1))} .dropdown-itemtext.current-option{--tw-bg-opacity:1;background-color:rgb(251,217,27,var(--tw-bg-opacity,1));--tw-text-opacity:1;border-bottom-width:1px;color:rgb(0,0,0,var(--tw-text-opacity,1));outline:2px solid transparent;outline-offset:2px;--tw-border-opacity:1;border-color:rgb(0,0,0,var(--tw-border-opacity,1))} .dropdown-itemtext:active{border-bottom-width:2px} .image-description-accordion{border-bottom-width:1px;border-color:transparent;font-weight:600;--tw-text-opacity:1;color:rgb(33,37,41,var(--tw-text-opacity,1))} .group:focus .image-description-accordion{--tw-bg-opacity:1;background-color:rgb(251,217,27,var(--tw-bg-opacity,1));--tw-text-opacity:1;border-bottom-width:1px;color:rgb(0,0,0,var(--tw-text-opacity,1));outline:2px solid transparent;outline-offset:2px} .group:focus .image-description-accordion, .group:hover .image-description-accordion{--tw-border-opacity:1;border-color:rgb(0,0,0,var(--tw-border-opacity,1))} .group:active .image-description-accordion{border-bottom-width:2px} .sr-only{height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;clip:rect(0,0,0,0);border-width:0;white-space:nowrap} .pointer-events-none{pointer-events:none} .pointer-events-auto{pointer-events:auto} .visible{visibility:visible} .invisible{visibility:hidden} .collapse{visibility:collapse} .static{position:static} .fixed{position:fixed} .absolute{position:absolute} .relative{position:relative} .inset-0{inset:0} .inset-y-0{bottom:0;top:0} .-top-2\\.5{top:-.625rem} .bottom-0{bottom:0} .bottom-1\\.5{bottom:.375rem} .bottom-4{bottom:1rem} .bottom-5{bottom:1.25rem} .bottom-\\[7px\\]{bottom:7px} .bottom-full{bottom:100%} .left-0{left:0} .left-1\\/2{left:50%} .left-4{left:1rem} .left-6{left:1.5rem} .left-\\[-9999px\\]{left:-9999px} .left-full{left:100%} .right-0{right:0} .right-1{right:.25rem} .right-1\\.5{right:.375rem} .right-4{right:1rem} .right-6{right:1.5rem} .right-full{right:100%} .top-0{top:0} .top-1{top:.25rem} .top-1\\.5{top:.375rem} .top-1\\/2{top:50%} .top-12{top:3rem} .top-3\\.5{top:.875rem} .top-\\[13px\\]{top:13px} .top-\\[calc\\(50\\%\\+0\\.375rem\\)\\]{top:calc(50% + .375rem)} .top-full{top:100%} .z-0{z-index:0} .z-10{z-index:10} .z-50{z-index:50} .m-0{margin:0} .m-auto{margin:auto} .mx-0\\.5{margin-left:.125rem;margin-right:.125rem} .mx-auto{margin-left:auto;margin-right:auto} .my-1\\.5{margin-bottom:.375rem;margin-top:.375rem} .my-2{margin-bottom:.5rem;margin-top:.5rem} .my-6{margin-bottom:1.5rem;margin-top:1.5rem} .-mb-1{margin-bottom:-.25rem} .-ml-1{margin-left:-.25rem} .-mr-1{margin-right:-.25rem} .-mr-2\\.5{margin-right:-.625rem} .-mt-0\\.5{margin-top:-.125rem} .-mt-1{margin-top:-.25rem} .mb-0\\.5{margin-bottom:.125rem} .mb-10{margin-bottom:2.5rem} .mb-12{margin-bottom:3rem} .mb-2{margin-bottom:.5rem} .mb-3{margin-bottom:.75rem} .mb-4{margin-bottom:1rem} .mb-5{margin-bottom:1.25rem} .mb-6{margin-bottom:1.5rem} .mb-\\[9\\.5px\\]{margin-bottom:9.5px} .ml-1{margin-left:.25rem} .ml-2{margin-left:.5rem} .ml-2\\.5{margin-left:.625rem} .ml-3{margin-left:.75rem} .ml-8\\.5{margin-left:2.125rem} .ml-\\[3px\\]{margin-left:3px} .ml-\\[9\\.5px\\]{margin-left:9.5px} .mr-1{margin-right:.25rem} .mr-2{margin-right:.5rem} .mr-4{margin-right:1rem} .mr-\\[9\\.5px\\]{margin-right:9.5px} .mt-0\\.5{margin-top:.125rem} .mt-1{margin-top:.25rem} .mt-2{margin-top:.5rem} .mt-4{margin-top:1rem} .mt-6{margin-top:1.5rem} .mt-7\\.5{margin-top:1.875} .mt-9{margin-top:2.25rem} .mt-\\[9\\.5px\\]{margin-top:9.5px} .line-clamp-1{-webkit-line-clamp:1} .line-clamp-1, .line-clamp-3{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical} .line-clamp-3{-webkit-line-clamp:3} .block{display:block} .inline-block{display:inline-block} .inline{display:inline} .flex{display:flex} .table{display:table} .grid{display:grid} .contents{display:contents} .hidden{display:none} .h-10\\.5{height:2.625rem} .h-11{height:2.75rem} .h-2{height:.5rem} .h-4{height:1rem} .h-52{height:13rem} .h-6{height:1.5rem} .h-8\\.5{height:2.125rem} .h-\\[13\\.33px\\]{height:13.33px} .h-\\[8\\.77px\\]{height:8.77px} .h-auto{height:auto} .h-fit{height:-moz-fit-content;height:fit-content} .h-full{height:100%} .h-screen{height:100vh} .max-h-\\[184px\\]{max-height:184px} .max-h-\\[470px\\]{max-height:470px} .max-h-\\[660px\\]{max-height:660px} .max-h-\\[calc\\(100vh-168px\\)\\]{max-height:calc(100vh - 168px)} .max-h-\\[calc\\(100vh-168px-34px\\)\\]{max-height:calc(100vh - 202px)} .max-h-none{max-height:none} .min-h-\\[133px\\]{min-height:133px} .min-h-\\[140px\\]{min-height:140px} .min-h-\\[154px\\]{min-height:154px} .min-h-\\[210px\\]{min-height:210px} .min-h-\\[44px\\]{min-height:44px} .min-h-\\[54px\\]{min-height:54px} .min-h-\\[86px\\]{min-height:86px} .w-11{width:2.75rem} .w-2{width:.5rem} .w-2\\/4{width:50%} .w-3{width:.75rem} .w-4{width:1rem} .w-6{width:1.5rem} .w-60{width:15rem} .w-8\\.5{width:2.125rem} .w-\\[13\\.33px\\]{width:13.33px} .w-\\[8\\.77px\\]{width:8.77px} .w-auto{width:auto} .w-fit{width:-moz-fit-content;width:fit-content} .w-full{width:100%} .w-screen{width:100vw} .min-w-0{min-width:0} .min-w-\\[288px\\]{min-width:288px} .min-w-\\[44px\\]{min-width:44px} .min-w-\\[85px\\]{min-width:85px} .max-w-\\[1008px\\]{max-width:1008px} .max-w-\\[300px\\]{max-width:300px} .max-w-\\[304px\\]{max-width:304px} .max-w-\\[400px\\]{max-width:400px} .max-w-full{max-width:100%} .max-w-none{max-width:none} .flex-1{flex:1 1 0%} .flex-none{flex:none} .flex-shrink-0{flex-shrink:0} .grow{flex-grow:1} .basis-0{flex-basis:0px} .-translate-x-1\\/2{--tw-translate-x:-50%} .-translate-x-1\\/2, .-translate-y-1\\/2{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))} .-translate-y-1\\/2{--tw-translate-y:-50%} .rotate-45{--tw-rotate:45deg;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))} .\\!cursor-default{cursor:default!important} .\\!cursor-pointer{cursor:pointer!important} .cursor-default{cursor:default} .cursor-pointer{cursor:pointer} .select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none} .resize-none{resize:none} .resize{resize:both} .grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))} .flex-row{flex-direction:row} .flex-col{flex-direction:column} .flex-col-reverse{flex-direction:column-reverse} .flex-wrap{flex-wrap:wrap} .content-start{align-content:flex-start} .items-center{align-items:center} .justify-start{justify-content:flex-start} .justify-center{justify-content:center} .justify-between{justify-content:space-between} .gap-1{gap:.25rem} .gap-2{gap:.5rem} .space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.5rem*var(--tw-space-y-reverse));margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)))} .space-y-reverse>:not([hidden])~:not([hidden]){--tw-space-y-reverse:1} .overflow-hidden{overflow:hidden} .overflow-y-auto{overflow-y:auto} .overflow-x-hidden{overflow-x:hidden} .overflow-y-visible{overflow-y:visible} .truncate{overflow:hidden;white-space:nowrap} .text-ellipsis, .truncate{text-overflow:ellipsis} .whitespace-normal{white-space:normal} .whitespace-nowrap{white-space:nowrap} .break-words{overflow-wrap:break-word} .break-all{word-break:break-all} .rounded{border-radius:.25rem} .rounded-\\[32px\\]{border-radius:32px} .rounded-lg{border-radius:.5rem} .rounded-md{border-radius:.375rem} .rounded-b-lg{border-bottom-left-radius:.5rem;border-bottom-right-radius:.5rem} .rounded-b-md{border-bottom-left-radius:.375rem;border-bottom-right-radius:.375rem} .rounded-l-lg{border-bottom-left-radius:.5rem;border-top-left-radius:.5rem} .rounded-t-lg{border-top-left-radius:.5rem;border-top-right-radius:.5rem} .rounded-t-md{border-top-left-radius:.375rem;border-top-right-radius:.375rem} .border{border-width:1px} .border-2{border-width:2px} .border-b{border-bottom-width:1px} .border-l-4{border-left-width:4px} .border-l-6{border-left-width:6px} .border-dashed{border-style:dashed} .\\!border-blue-1000{--tw-border-opacity:1!important;border-color:rgb(40,44,135,var(--tw-border-opacity,1))!important} .border-blue-1000{--tw-border-opacity:1;border-color:rgb(40,44,135,var(--tw-border-opacity,1))} .border-blue-950{--tw-border-opacity:1;border-color:rgb(29,78,216,var(--tw-border-opacity,1))} .border-border-minimal{--tw-border-opacity:1;border-color:rgb(229,231,235,var(--tw-border-opacity,1))} .border-charcoal{--tw-border-opacity:1;border-color:rgb(33,37,41,var(--tw-border-opacity,1))} .border-gray-400{--tw-border-opacity:1;border-color:rgb(196,201,204,var(--tw-border-opacity,1))} .border-gray-800{--tw-border-opacity:1;border-color:rgb(93,99,107,var(--tw-border-opacity,1))} .border-gray-850{--tw-border-opacity:1;border-color:rgb(75,85,99,var(--tw-border-opacity,1))} .border-green-800{--tw-border-opacity:1;border-color:rgb(0,102,5,var(--tw-border-opacity,1))} .border-green-900{--tw-border-opacity:1;border-color:rgb(21,128,61,var(--tw-border-opacity,1))} .border-red-600{--tw-border-opacity:1;border-color:rgb(220,38,38,var(--tw-border-opacity,1))} .border-red-800{--tw-border-opacity:1;border-color:rgb(217,12,85,var(--tw-border-opacity,1))} .border-red-900{--tw-border-opacity:1;border-color:rgb(190,24,93,var(--tw-border-opacity,1))} .border-soft-blue{--tw-border-opacity:1;border-color:rgb(84,101,251,var(--tw-border-opacity,1))} .border-white{--tw-border-opacity:1;border-color:rgb(255,255,255,var(--tw-border-opacity,1))} .\\!bg-violet-100{--tw-bg-opacity:1!important;background-color:rgb(235,235,255,var(--tw-bg-opacity,1))!important} .\\!bg-white{--tw-bg-opacity:1!important;background-color:rgb(255,255,255,var(--tw-bg-opacity,1))!important} .bg-black{--tw-bg-opacity:1;background-color:rgb(0,0,0,var(--tw-bg-opacity,1))} .bg-blue-1000{--tw-bg-opacity:1;background-color:rgb(40,44,135,var(--tw-bg-opacity,1))} .bg-blue-50{--tw-bg-opacity:1;background-color:rgb(239,246,255,var(--tw-bg-opacity,1))} .bg-charcoal\\/30{background-color:rgba(33,37,41,.3)} .bg-charcoal\\/80{background-color:rgba(33,37,41,.8)} .bg-gray-100{--tw-bg-opacity:1;background-color:rgb(247,250,250,var(--tw-bg-opacity,1))} .bg-gray-50{--tw-bg-opacity:1;background-color:rgb(244,244,244,var(--tw-bg-opacity,1))} .bg-gray-900{--tw-bg-opacity:1;background-color:rgb(57,62,69,var(--tw-bg-opacity,1))} .bg-green-300{--tw-bg-opacity:1;background-color:rgb(241,254,241,var(--tw-bg-opacity,1))} .bg-red-200{--tw-bg-opacity:1;background-color:rgb(254,202,202,var(--tw-bg-opacity,1))} .bg-red-300{--tw-bg-opacity:1;background-color:rgb(253,243,247,var(--tw-bg-opacity,1))} .bg-red-50{--tw-bg-opacity:1;background-color:rgb(253,242,248,var(--tw-bg-opacity,1))} .bg-soft-blue{--tw-bg-opacity:1;background-color:rgb(84,101,251,var(--tw-bg-opacity,1))} .bg-transparent{background-color:transparent} .bg-violet-100{--tw-bg-opacity:1;background-color:rgb(235,235,255,var(--tw-bg-opacity,1))} .bg-violet-150{--tw-bg-opacity:1;background-color:rgb(205,208,254,var(--tw-bg-opacity,1))} .bg-white{--tw-bg-opacity:1;background-color:rgb(255,255,255,var(--tw-bg-opacity,1))} .bg-white\\/80{background-color:hsla(0,0%,100%,.8)} .bg-yellow-1000{--tw-bg-opacity:1;background-color:rgb(251,217,27,var(--tw-bg-opacity,1))} .bg-opacity-5{--tw-bg-opacity:0.05} .object-contain{-o-object-fit:contain;object-fit:contain} .p-0\\.5{padding:.125rem} .p-1{padding:.25rem} .p-1\\.5{padding:.375rem} .p-2{padding:.5rem} .p-3{padding:.75rem} .p-4{padding:1rem} .p-5{padding:1.25rem} .p-6{padding:1.5rem} .px-0{padding-left:0;padding-right:0} .px-2{padding-left:.5rem;padding-right:.5rem} .px-3{padding-left:.75rem;padding-right:.75rem} .px-4{padding-left:1rem;padding-right:1rem} .py-1{padding-bottom:.25rem;padding-top:.25rem} .py-1\\.5{padding-bottom:.375rem;padding-top:.375rem} .py-2{padding-bottom:.5rem;padding-top:.5rem} .py-\\[9px\\]{padding-bottom:9px;padding-top:9px} .\\!pr-11{padding-right:2.75rem!important} .pb-0{padding-bottom:0} .pb-10{padding-bottom:2.5rem} .pb-2{padding-bottom:.5rem} .pb-3{padding-bottom:.75rem} .pb-\\[72px\\]{padding-bottom:72px} .pl-13\\.2{padding-left:3.125rem} .pl-24{padding-left:6rem} .pl-3{padding-left:.75rem} .pl-4{padding-left:1rem} .pr-3{padding-right:.75rem} .pr-4{padding-right:1rem} .pt-0{padding-top:0} .pt-0\\.5{padding-top:.125rem} .pt-14{padding-top:3.5rem} .pt-4{padding-top:1rem} .pt-6{padding-top:1.5rem} .pt-\\[15px\\]{padding-top:15px} .pt-\\[55px\\]{padding-top:55px} .text-left{text-align:left} .text-center{text-align:center} .align-middle{vertical-align:middle} .text-base{font-size:1rem;line-height:1.5rem} .text-lg{font-size:1.125rem;line-height:1.75rem} .text-sm{font-size:.875rem;line-height:1.25rem} .text-xl{font-size:1.25rem;line-height:1.75rem} .font-bold{font-weight:700} .font-normal{font-weight:400} .font-semibold{font-weight:600} .leading-12{line-height:3rem} .leading-4{line-height:1rem} .leading-5{line-height:1.25rem} .leading-6{line-height:1.5rem} .leading-\\[1\\.5\\]{line-height:1.5} .leading-\\[150\\%\\]{line-height:150%} .leading-\\[19\\.2px\\]{line-height:19.2px} .leading-\\[19px\\]{line-height:19px} .leading-\\[22px\\]{line-height:22px} .\\!text-gray-900{--tw-text-opacity:1!important;color:rgb(57,62,69,var(--tw-text-opacity,1))!important} .text-blue-1000{--tw-text-opacity:1;color:rgb(40,44,135,var(--tw-text-opacity,1))} .text-blue-850{--tw-text-opacity:1;color:rgb(46,47,212,var(--tw-text-opacity,1))} .text-charcoal{--tw-text-opacity:1;color:rgb(33,37,41,var(--tw-text-opacity,1))} .text-gray-500{--tw-text-opacity:1;color:rgb(107,114,128,var(--tw-text-opacity,1))} .text-gray-800{--tw-text-opacity:1;color:rgb(93,99,107,var(--tw-text-opacity,1))} .text-gray-860{--tw-text-opacity:1;color:rgb(55,65,81,var(--tw-text-opacity,1))} .text-green-800{--tw-text-opacity:1;color:rgb(0,102,5,var(--tw-text-opacity,1))} .text-green-900{--tw-text-opacity:1;color:rgb(21,128,61,var(--tw-text-opacity,1))} .text-inherit{color:inherit} .text-primary-emphasis{--tw-text-opacity:1;color:rgb(8,38,99,var(--tw-text-opacity,1))} .text-red-800{--tw-text-opacity:1;color:rgb(217,12,85,var(--tw-text-opacity,1))} .text-red-900{--tw-text-opacity:1;color:rgb(190,24,93,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} .opacity-0{opacity:0} .opacity-5{opacity:.05} .opacity-50{opacity:.5} .shadow-\\[0_-12px_14px_-16px_\\#00000033\\]{--tw-shadow:0 -12px 14px -16px #00000033;--tw-shadow-colored:0 -12px 14px -16px var(--tw-shadow-color)} .shadow-\\[0_-12px_14px_-16px_\\#00000033\\], .shadow-md{box-shadow:var(--tw-ring-offset-shadow,0 0 transparent),var(--tw-ring-shadow,0 0 transparent),var(--tw-shadow)} .shadow-md{--tw-shadow:0px 2px 8px rgba(0,0,0,.2);--tw-shadow-colored:0px 2px 8px var(--tw-shadow-color)} .\\!outline-none{outline:2px solid transparent!important;outline-offset:2px!important} .outline-none{outline:2px solid transparent;outline-offset:2px} .blur{--tw-blur:blur(8px)} .blur, .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)} .backdrop-blur-md{--tw-backdrop-blur:blur(12px);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)} .transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)} .duration-300{transition-duration:.3s} :host, html{-webkit-tap-highlight-color:inherit!important} .active\\:raw-focus-ring-by:active{--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(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-opacity:1;--tw-ring-color:rgb(253 224 71/var(--tw-ring-opacity,1));--tw-ring-offset-width:2px;--tw-ring-offset-color:#212529} .active\\:raw-focus-ring-by:active, .active\\:raw-focus-ring:active{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 transparent);outline:2px solid transparent;outline-offset:2px;transition-duration:50ms} .active\\:raw-focus-ring:active{--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(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-opacity:1;--tw-ring-color:rgb(84 101 251/var(--tw-ring-opacity,1));--tw-ring-offset-width:2px}@media (min-width:732px){ .md\\:item-heading{font-size:1.25rem;letter-spacing:-.025em;line-height:1.5rem;--tw-text-opacity:1;color:rgb(40,44,135,var(--tw-text-opacity,1))}}@media (hover:hover) and (pointer:fine){ .td\\:hover-focus-ring:hover{outline:2px solid transparent;outline-offset:2px;--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(2px + 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 transparent);--tw-ring-opacity:1;--tw-ring-color:rgb(84 101 251/var(--tw-ring-opacity,1));--tw-ring-offset-width:2px;transition-duration:50ms}} .last\\:mr-0:last-child{margin-right:0} .focus-within\\:left-0:focus-within{left:0} .focus-within\\:right-0:focus-within{right:0} .focus-within\\:top-0:focus-within{top:0} .focus-within\\:z-30:focus-within{z-index:30} .hover\\:bg-black-50:hover{background-color:rgba(0,0,0,.051)} .hover\\:bg-blue-100:hover{--tw-bg-opacity:1;background-color:rgb(222,222,255,var(--tw-bg-opacity,1))} .hover\\:bg-yellow-1000:hover{--tw-bg-opacity:1;background-color:rgb(251,217,27,var(--tw-bg-opacity,1))} .hover\\:text-charcoal:hover{--tw-text-opacity:1;color:rgb(33,37,41,var(--tw-text-opacity,1))} .hover\\:underline:hover{text-decoration-line:underline} .hover\\:decoration-2:hover{text-decoration-thickness:2px} .hover\\:underline-offset-\\[25\\%\\]:hover{text-underline-offset:25%} .focus-visible\\:border-charcoal:focus-visible{--tw-border-opacity:1;border-color:rgb(33,37,41,var(--tw-border-opacity,1))} .focus-visible\\:bg-yellow-900:focus-visible{--tw-bg-opacity:1;background-color:rgb(253,224,71,var(--tw-bg-opacity,1))} .focus-visible\\:text-charcoal:focus-visible{--tw-text-opacity:1;color:rgb(33,37,41,var(--tw-text-opacity,1))} .focus-visible\\:underline:focus-visible{text-decoration-line:underline} .focus-visible\\:decoration-2:focus-visible{text-decoration-thickness:2px} .focus-visible\\:underline-offset-\\[25\\%\\]:focus-visible{text-underline-offset:25%} .focus-visible\\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px} .focus-visible\\:ring-4:focus-visible{--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(4px + 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 transparent)} .focus-visible\\:ring-soft-blue:focus-visible{--tw-ring-opacity:1;--tw-ring-color:rgb(84 101 251/var(--tw-ring-opacity,1))} .focus-visible\\:ring-offset-4:focus-visible{--tw-ring-offset-width:4px} .focus-visible\\:duration-50:focus-visible{transition-duration:50ms} .active\\:bg-black-55:active, .active\\:bg-black-60:active{background-color:rgba(0,0,0,.102)} .active\\:bg-yellow-1100:active{--tw-bg-opacity:1;background-color:rgb(238,206,26,var(--tw-bg-opacity,1))} .active\\:text-charcoal:active{--tw-text-opacity:1;color:rgb(33,37,41,var(--tw-text-opacity,1))} .disabled\\:text-gray-40:disabled{--tw-text-opacity:1;color:rgb(142,147,153,var(--tw-text-opacity,1))} .disabled\\:hover\\:bg-white:hover:disabled{--tw-bg-opacity:1;background-color:rgb(255,255,255,var(--tw-bg-opacity,1))} .group:hover .group-hover\\:underline{text-decoration-line:underline} .group.active .group-\\[\\.active\\]\\:border-b-2{border-bottom-width:2px}@media (min-width:732px){ .md\\:inset-0{inset:0} .md\\:top-20{top:5rem} .md\\:mb-2{margin-bottom:.5rem} .md\\:mb-4{margin-bottom:1rem} .md\\:mb-8{margin-bottom:2rem} .md\\:ml-0{margin-left:0} .md\\:mt-0{margin-top:0} .md\\:mt-14{margin-top:3.5rem} .md\\:block{display:block} .md\\:inline-block{display:inline-block} .md\\:flex{display:flex} .md\\:grid{display:grid} .md\\:hidden{display:none} .md\\:h-11{height:2.75rem} .md\\:h-5{height:1.25rem} .md\\:h-\\[13\\.5px\\]{height:13.5px} .md\\:h-fit{height:-moz-fit-content;height:fit-content} .md\\:max-h-\\[calc\\(100vh-128px\\)\\]{max-height:calc(100vh - 128px)} .md\\:max-h-\\[calc\\(100vh-128px-54px\\)\\]{max-height:calc(100vh - 182px)} .md\\:min-h-0{min-height:0} .md\\:min-h-\\[140px\\]{min-height:140px} .md\\:min-h-\\[164px\\]{min-height:164px} .md\\:w-1\\/2{width:50%} .md\\:w-11{width:2.75rem} .md\\:w-5{width:1.25rem} .md\\:w-\\[13\\.5px\\]{width:13.5px} .md\\:w-fit{width:-moz-fit-content;width:fit-content} .md\\:max-w-\\[calc\\(100vw-164px\\)\\]{max-width:calc(100vw - 164px)} .md\\:flex-none{flex:none} .md\\:grow-0{flex-grow:0} .md\\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))} .md\\:flex-row{flex-direction:row} .md\\:flex-col{flex-direction:column} .md\\:items-start{align-items:flex-start} .md\\:items-center{align-items:center} .md\\:justify-normal{justify-content:normal} .md\\:justify-center{justify-content:center} .md\\:justify-between{justify-content:space-between} .md\\:gap-4{gap:1rem} .md\\:gap-6{gap:1.5rem} .md\\:gap-x-4{-moz-column-gap:1rem;column-gap:1rem} .md\\:space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(0px*var(--tw-space-y-reverse));margin-top:calc(0px*(1 - var(--tw-space-y-reverse)))} .md\\:rounded-lg{border-radius:.5rem} .md\\:rounded-md{border-radius:.375rem} .md\\:rounded-b-none{border-bottom-left-radius:0;border-bottom-right-radius:0} .md\\:border{border-width:1px} .md\\:border-gray-400{--tw-border-opacity:1;border-color:rgb(196,201,204,var(--tw-border-opacity,1))} .md\\:\\!bg-white{--tw-bg-opacity:1!important;background-color:rgb(255,255,255,var(--tw-bg-opacity,1))!important} .md\\:p-4{padding:1rem} .md\\:px-0{padding-left:0;padding-right:0} .md\\:px-4{padding-left:1rem;padding-right:1rem} .md\\:px-6{padding-left:1.5rem;padding-right:1.5rem} .md\\:px-\\[82px\\]{padding-left:82px;padding-right:82px} .md\\:pb-0{padding-bottom:0} .md\\:pl-13\\.2{padding-left:3.125rem} .md\\:pl-4{padding-left:1rem} .md\\:pr-4{padding-right:1rem} .md\\:pt-20\\.5{padding-top:5.125rem} .md\\:text-center{text-align:center} .md\\:text-lg{font-size:1.125rem;line-height:1.75rem} .md\\:shadow-\\[0_0_\\#0000\\]{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 transparent),var(--tw-ring-shadow,0 0 transparent),var(--tw-shadow)} .md\\:\\[grid-template-columns\\:repeat\\(2\\,minmax\\(auto\\,304px\\)\\)\\]{grid-template-columns:repeat(2,minmax(auto,304px))}}@media (min-width:1196px){ .lg\\:left-16{left:4rem} .lg\\:right-16{right:4rem} .lg\\:flex{display:flex} .lg\\:hidden{display:none} .lg\\:max-h-\\[calc\\(100vh-192px\\)\\]{max-height:calc(100vh - 192px)} .lg\\:max-h-\\[calc\\(100vh-192px-54px\\)\\]{max-height:calc(100vh - 246px)} .lg\\:min-h-\\[224px\\]{min-height:224px} .lg\\:w-full{width:100%} .lg\\:max-w-\\[50\\%\\]{max-width:50%} .lg\\:max-w-\\[calc\\(100vw-248px\\)\\]{max-width:calc(100vw - 248px)} .lg\\:grow{flex-grow:1} .lg\\:basis-1\\/2{flex-basis:50%} .lg\\:justify-start{justify-content:flex-start} .lg\\:rounded-b-lg{border-bottom-left-radius:.5rem;border-bottom-right-radius:.5rem} .lg\\:rounded-t-lg{border-top-left-radius:.5rem;border-top-right-radius:.5rem} .lg\\:px-16{padding-left:4rem;padding-right:4rem} .lg\\:px-\\[128px\\]{padding-left:128px;padding-right:128px} .lg\\:py-24{padding-bottom:6rem;padding-top:6rem} .lg\\:pt-6{padding-top:1.5rem}}@media (hover:hover) and (pointer:fine){ .td\\:border-2{border-width:2px} .td\\:border-blue-900{--tw-border-opacity:1;border-color:rgb(59,64,240,var(--tw-border-opacity,1))} .td\\:hover\\:cursor-grab:hover{cursor:grab} .td\\:hover\\:bg-black-50:hover{background-color:rgba(0,0,0,.051)} .td\\:hover\\:bg-violet-100:hover{--tw-bg-opacity:1;background-color:rgb(235,235,255,var(--tw-bg-opacity,1))} .td\\:hover\\:text-soft-blue:hover{--tw-text-opacity:1;color:rgb(84,101,251,var(--tw-text-opacity,1))} .group:hover .td\\:group-hover\\:bg-black{--tw-bg-opacity:1;background-color:rgb(0,0,0,var(--tw-bg-opacity,1))} .group:hover .td\\:group-hover\\:opacity-5{opacity:.05}}@media (pointer:coarse){ .coarse\\:active\\:bg-yellow-900:active{--tw-bg-opacity:1;background-color:rgb(253,224,71,var(--tw-bg-opacity,1))}}'
18842
+ code: ' *, :after, :before{--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:rgba(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:rgba(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:} *, :after, :before{border:0 solid #e5e7eb;box-sizing:border-box} :after, :before{--tw-content:""} :host, html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:Mulish,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent} body{line-height:inherit;margin:0} hr{border-top-width:1px;color:inherit;height:0} 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, pre, samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-size:1em;font-variation-settings:normal} small{font-size:80%} sub, sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline} sub{bottom:-.25em} sup{top:-.5em} table{border-collapse:collapse;border-color:inherit;text-indent:0} button, input, optgroup, select, textarea{color:inherit;font-family:inherit;font-feature-settings:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height: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, dd, dl, figure, h1, h2, h3, h4, h5, h6, hr, p, pre{margin:0} fieldset{margin:0} fieldset, legend{padding:0} menu, ol, ul{list-style:none;margin:0;padding:0} dialog{padding:0} textarea{resize:vertical} input::-moz-placeholder, textarea::-moz-placeholder{color:#9ca3af;opacity:1} input::placeholder, textarea::placeholder{color:#9ca3af;opacity:1} [role=button], button{cursor:pointer} :disabled{cursor:default} audio, canvas, embed, iframe, img, object, svg, video{display:block;vertical-align:middle} img, video{height:auto;max-width:100%} [hidden]:where(:not([hidden=until-found])){display:none} *{font-family:Mulish,sans-serif} input::-moz-selection, textarea::-moz-selection{background-color:hsla(0,0%,85%,.4)} input::selection, textarea::selection{background-color:hsla(0,0%,85%,.4)} .container{width:100%}@media (min-width:732px){ .container{max-width:732px}}@media (min-width:1196px){ .container{max-width:1196px}} .p2{font-size:.875rem;font-weight:600;line-height:1.25rem;line-height:1.5} .blanket-overlay{inset:0;position:absolute} .item-heading{font-size:1.25rem;letter-spacing:-.025em;line-height:1.5rem;--tw-text-opacity:1;color:rgb(40,44,135,var(--tw-text-opacity,1))} .focus-ring: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(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-opacity:1;--tw-ring-color:rgb(84 101 251/var(--tw-ring-opacity,1));--tw-ring-offset-width:4px} .focus-ring:focus, .raw-focus-ring{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 transparent);outline:2px solid transparent;outline-offset:2px;transition-duration:50ms} .raw-focus-ring{--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(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-opacity:1;--tw-ring-color:rgb(84 101 251/var(--tw-ring-opacity,1));--tw-ring-offset-width:2px} .focus-ring-by-dropdown{outline:2px solid transparent;outline-offset:2px;--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(var(--tw-ring-offset-width)) var(--tw-ring-color);border-color:rgb(59,64,240,var(--tw-border-opacity,1));border-width:2px;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 transparent);box-shadow:0 0 0 2px #fff,0 0 0 4px #212529,0 0 0 6px #fde047} .divider, .focus-ring-by-dropdown{--tw-border-opacity:1} .divider{border-bottom-width:1px;border-color:rgb(218,224,224,var(--tw-border-opacity,1))}@keyframes svelte-1dpid58-pulse{50%{opacity:.5}} .animate-skeleton{animation:svelte-1dpid58-pulse 2s cubic-bezier(.4,0,.6,1) infinite;--tw-bg-opacity:1;background-color:rgb(226,232,240,var(--tw-bg-opacity,1))} .btn-mcq-option:focus-visible{--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(2px + 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 transparent);--tw-ring-opacity:1;--tw-ring-color:rgb(253 224 71/var(--tw-ring-opacity,1));--tw-ring-offset-width:2px;--tw-ring-offset-color:#212529;outline:2px solid transparent;outline-offset:2px;transition-duration:50ms} .btn-mcq-option{font-size:1rem;line-height:1.5rem;line-height:19.2px;margin-bottom:1rem;min-height:52px;width:100%;--tw-text-opacity:1;border-radius:.5rem;border-width:1px;box-sizing:border-box;color:rgb(33,37,41,var(--tw-text-opacity,1));--tw-border-opacity:1;border-color:rgb(75,85,99,var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(248,248,248,var(--tw-bg-opacity,1))} .btn-mcq-option:active{border-width:2px;--tw-border-opacity:1;border-color:rgb(59,64,240,var(--tw-border-opacity,1))}@media (hover:hover) and (pointer:fine){ .btn-mcq-option:hover{border-width:2px;--tw-border-opacity:1;border-color:rgb(59,64,240,var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(238,240,255,var(--tw-bg-opacity,1))}} .btn-mcq-text{align-items:center;display:flex;padding:.375rem .75rem;width:100%}@supports (overflow-wrap:anywhere){ .btn-mcq-text{overflow-wrap:anywhere}}@supports not (overflow-wrap:anywhere){ .btn-mcq-text{word-break:break-word}} .btn-mcq-option>span>span>span>.choice{align-items:center;border-radius:1rem;border-width:1px;display:flex;font-size:1rem;font-weight:700;height:2rem;justify-content:center;letter-spacing:.05em;line-height:1rem;width:2rem;--tw-border-opacity:1;border-color:rgb(156,163,175,var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(255,255,255,var(--tw-bg-opacity,1));padding:.5rem;--tw-text-opacity:1;color:rgb(33,37,41,var(--tw-text-opacity,1))} .btn-mcq-option.selected{border-width:2px;--tw-border-opacity:1;background-color:rgb(40,44,135,var(--tw-bg-opacity,1));border-color:rgb(40,44,135,var(--tw-border-opacity,1))} .btn-mcq-option.selected, .btn-mcq-option.selected:active{--tw-bg-opacity:1;--tw-text-opacity:1;color:rgb(255,255,255,var(--tw-text-opacity,1))} .btn-mcq-option.selected:active{background-color:rgb(84,101,251,var(--tw-bg-opacity,1))}@media (hover:hover) and (pointer:fine){ .btn-mcq-option.selected:hover{--tw-bg-opacity:1;background-color:rgb(84,101,251,var(--tw-bg-opacity,1))}} .btn-mcq-option.finished{cursor:default} .btn-mcq-option.finished:active, .btn-mcq-option.finished:hover{border-width:1px;--tw-border-opacity:1;border-color:rgb(75,85,99,var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(248,248,248,var(--tw-bg-opacity,1))} .btn-mcq-option.selected>span>span>.choice{--tw-bg-opacity:1;background-color:rgb(238,240,255,var(--tw-bg-opacity,1))} .btn-mcq-option>span>span>span>.custom-checkbox{align-items:center;border-radius:.25rem;border-width:1px;display:flex;height:1.75rem;justify-content:center;pointer-events:none;width:1.75rem;--tw-border-opacity:1;border-color:rgb(75,85,99,var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(255,255,255,var(--tw-bg-opacity,1))}@media (hover:hover) and (pointer:fine){ .btn-mcq-option:hover>span>span>span>.custom-checkbox{border-width:2px;--tw-border-opacity:1;border-color:rgb(59,64,240,var(--tw-border-opacity,1))} .btn-mcq-option:active>span>span>span>.custom-checkbox.preview-only, .btn-mcq-option:hover>span>span>span>.custom-checkbox.preview-only{border-width:1px;--tw-border-opacity:1;border-color:rgb(75,85,99,var(--tw-border-opacity,1))}} .btn-mcq-option:active>span>span>span>.custom-checkbox{border-width:2px;--tw-border-opacity:1;border-color:rgb(40,44,135,var(--tw-border-opacity,1))} .btn-mcq-option.selected>span>span>span>.custom-checkbox{border-width:0;pointer-events:none;--tw-bg-opacity:1;background-color:rgb(84,101,251,var(--tw-bg-opacity,1))}@media (hover:hover) and (pointer:fine){ .btn-mcq-option.selected:hover>span>span>span>.custom-checkbox{border-width:0;--tw-bg-opacity:1;background-color:rgb(76,91,226,var(--tw-bg-opacity,1))}} .btn-mcq-option.selected:active>span>span>span>.custom-checkbox{border-width:0;--tw-bg-opacity:1;background-color:rgb(40,44,135,var(--tw-bg-opacity,1))} .btn-mcq-option.finished:active>span>span>span>.custom-checkbox, .btn-mcq-option.finished:hover>span>span>span>.custom-checkbox{border-width:1px;--tw-border-opacity:1;border-color:rgb(75,85,99,var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(255,255,255,var(--tw-bg-opacity,1))} .btn-mcq-option.missing.\\!correct, .btn-mcq-option.missing.correct{border-width:1px;--tw-border-opacity:1;border-color:rgb(21,128,61,var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(248,248,248,var(--tw-bg-opacity,1))}@media (hover:hover) and (pointer:fine){ .btn-mcq-option.\\!correct.interactive:active, .btn-mcq-option.\\!correct.interactive:hover, .btn-mcq-option.correct.interactive:active, .btn-mcq-option.correct.interactive:hover, .btn-mcq-option.incorrect.interactive:active, .btn-mcq-option.incorrect.interactive:hover, .btn-mcq-option.missing.interactive:active, .btn-mcq-option.missing.interactive:hover{border-width:2px;--tw-border-opacity:1;border-color:rgb(59,64,240,var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(238,240,255,var(--tw-bg-opacity,1))}} .btn-mcq-option.selected.\\!correct, .btn-mcq-option.selected.correct{background-color:rgb(240,253,244,var(--tw-bg-opacity,1));border-color:rgb(21,128,61,var(--tw-border-opacity,1));border-width:1px} .btn-mcq-option.selected.\\!correct, .btn-mcq-option.selected.correct, .btn-mcq-option.selected.incorrect{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;color:rgb(33,37,41,var(--tw-text-opacity,1))} .btn-mcq-option.selected.incorrect{background-color:rgb(253,242,248,var(--tw-bg-opacity,1));border-color:rgb(190,24,93,var(--tw-border-opacity,1));border-width:1px} .btn-mcq-option.selected.\\!correct>span>span>span>.choice, .btn-mcq-option.selected.correct>span>span>span>.choice, .btn-mcq-option.selected.incorrect>span>span>span>.choice{border-width:1px;--tw-border-opacity:1;border-color:rgb(113,115,119,var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(255,255,255,var(--tw-bg-opacity,1))} .btn-pressed{border-width:2px;--tw-border-opacity:1;border-color:rgb(51,69,223,var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(249,250,251,var(--tw-bg-opacity,1));--tw-shadow:inset 0 0 0 100vmax rgba(0,0,0,.05);--tw-shadow-colored:inset 0 0 0 100vmax var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 transparent),var(--tw-ring-shadow,0 0 transparent),var(--tw-shadow)} .btn-base:focus-visible{--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(2px + 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 transparent);--tw-ring-opacity:1;--tw-ring-color:rgb(253 224 71/var(--tw-ring-opacity,1));--tw-ring-offset-width:2px;--tw-ring-offset-color:#212529;outline:2px solid transparent;outline-offset:2px;transition-duration:50ms} .btn-base{align-items:center;display:inline-flex;justify-content:center}@media (hover:hover) and (pointer:fine){ .btn-base:hover{border-width:2px;--tw-border-opacity:1;border-color:rgb(59,64,240,var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(249,250,251,var(--tw-bg-opacity,1))}} .btn-base:active{border-width:2px;--tw-border-opacity:1;border-color:rgb(51,69,223,var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(249,250,251,var(--tw-bg-opacity,1));--tw-shadow:inset 0 0 0 100vmax rgba(0,0,0,.05);--tw-shadow-colored:inset 0 0 0 100vmax var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 transparent),var(--tw-ring-shadow,0 0 transparent),var(--tw-shadow)} .btn-touch-container{align-items:center;display:flex;height:2.75rem;justify-content:center;width:2.75rem} .btn-touch-container:focus{outline:2px solid transparent;outline-offset:2px} .btn-icon-sm{align-items:center;background-color:hsla(0,0%,100%,.8);border-radius:.25rem;display:flex;height:1.5rem;justify-content:center;width:1.5rem}@media (hover:hover) and (pointer:fine){ .btn-touch-container:hover>.btn-icon-sm{border-width:2px;--tw-border-opacity:1;border-color:rgb(59,64,240,var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(249,250,251,var(--tw-bg-opacity,1))}} .btn-touch-container:active>.btn-icon-sm{border-width:2px;--tw-border-opacity:1;border-color:rgb(51,69,223,var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(249,250,251,var(--tw-bg-opacity,1));--tw-shadow:inset 0 0 0 100vmax rgba(0,0,0,.05);--tw-shadow-colored:inset 0 0 0 100vmax var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 transparent),var(--tw-ring-shadow,0 0 transparent),var(--tw-shadow)} .btn-touch-container:focus-visible>.btn-icon-sm{--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(2px + 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 transparent);--tw-ring-opacity:1;--tw-ring-color:rgb(253 224 71/var(--tw-ring-opacity,1));--tw-ring-offset-width:2px;--tw-ring-offset-color:#212529;outline:2px solid transparent;outline-offset:2px;transition-duration:50ms} .typein-textbox:focus{outline:2px solid transparent;outline-offset:2px;--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(4px + 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 transparent);--tw-ring-color:rgb(84 101 251/var(--tw-ring-opacity,1));--tw-ring-offset-width:4px;transition-duration:50ms} .typein-textbox{border-radius:.5rem;border-width:1px;width:100%;--tw-border-opacity:1;border-color:rgb(75,85,99,var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(255,255,255,var(--tw-bg-opacity,1));font-size:1rem;line-height:1.5rem;padding:.75rem 1rem;--tw-text-opacity:1;color:rgb(33,37,41,var(--tw-text-opacity,1))} .typein-textbox::-moz-placeholder{--tw-placeholder-opacity:1;color:rgb(55,65,81,var(--tw-placeholder-opacity,1))} .typein-textbox::placeholder{--tw-placeholder-opacity:1;color:rgb(55,65,81,var(--tw-placeholder-opacity,1))} .typein-textbox:focus{border-width:2px;--tw-border-opacity:1;border-color:rgb(59,64,240,var(--tw-border-opacity,1))}@media (hover:hover) and (pointer:fine){ .typein-textbox:hover{border-width:2px;--tw-border-opacity:1;border-color:rgb(59,64,240,var(--tw-border-opacity,1))}} .typein-textbox:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)!important;--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color)!important;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 transparent)!important}@media (hover:hover) and (pointer:fine){ .typein-textbox:hover{transition-duration:50ms}} .typein-textbox:focus{outline-color:#212529;outline-width:2px}@media (hover:hover) and (pointer:fine){ .typein-textbox:hover{outline-color:#212529;outline-width:2px}} .typein-textbox:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(253 224 71/var(--tw-ring-opacity,1))} .inline-typein-container>p{font-size:1.25rem;font-weight:600;line-height:3rem;--tw-text-opacity:1;color:rgb(40,44,135,var(--tw-text-opacity,1))} #dnd-action-dragged-el{outline:2px solid transparent;outline-offset:2px;--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(2px + 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 transparent);--tw-ring-opacity:1;--tw-ring-color:rgb(84 101 251/var(--tw-ring-opacity,1));--tw-ring-offset-width:2px;cursor:grabbing!important;transition-duration:50ms;--tw-border-opacity:1!important;border-color:rgb(93,99,107,var(--tw-border-opacity,1))!important;--tw-bg-opacity:1!important;background-color:rgb(205,208,254,var(--tw-bg-opacity,1))!important} #dnd-action-dragged-el .btn-vertical-icon{cursor:grabbing!important;--tw-text-opacity:1;color:rgb(40,44,135,var(--tw-text-opacity,1))} #dnd-action-dragged-el .preview-icon{display:none!important} #dnd-action-dragged-el .preview-vertical{display:block!important} .image-description, .text-stimulus{padding-bottom:1rem;padding-top:1rem} .text-stimulus p{font-size:1.25rem;line-height:1.75rem;padding-bottom:.5rem;--tw-text-opacity:1;color:rgb(40,44,135,var(--tw-text-opacity,1))} .image-description p{font-size:.875rem;line-height:1.25rem;padding-bottom:.5rem;--tw-text-opacity:1;color:rgb(33,37,41,var(--tw-text-opacity,1))} .text-stimulus ol, .text-stimulus ul{font-size:1rem;line-height:1.5rem;list-style-position:inside;padding-bottom:.5rem;padding-left:.5rem} .text-stimulus ol ::marker, .text-stimulus ul ::marker{color:#282c87} .text-stimulus ol::marker, .text-stimulus ul::marker{color:#282c87} .image-description ol, .image-description ul{font-size:.875rem;line-height:1.25rem;list-style-position:inside;padding-bottom:.5rem;padding-left:.5rem} .image-description ol ::marker, .image-description ul ::marker{color:#212529} .image-description ol::marker, .image-description ul::marker{color:#212529} .image-description ul, .text-stimulus ul{list-style-type:disc} .image-description ol, .text-stimulus ol{list-style-type:decimal} .image-description ul li>p, .text-stimulus ul li>p{margin-left:-.5rem} .text-stimulus ol>li>p, .text-stimulus ul>li>p{display:inline;font-size:1rem;line-height:1.5rem;padding-bottom:0;padding-top:0} .image-description ol>li>p, .image-description ul>li>p{display:inline;font-size:.875rem;line-height:1.25rem;padding-bottom:0;padding-top:0} .image-description div.table-container:focus, .text-stimulus div.table-container:focus{outline:2px solid transparent;outline-offset:2px;--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(4px + 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 transparent);--tw-ring-opacity:1;--tw-ring-color:rgb(84 101 251/var(--tw-ring-opacity,1));--tw-ring-offset-width:4px;transition-duration:50ms} .image-description div.table-container, .text-stimulus div.table-container{border-radius:.5rem;overflow:auto;padding-left:.125rem;padding-right:.125rem} .image-description table, .text-stimulus table{margin-bottom:1rem;margin-top:.5rem;width:100%;--tw-border-spacing-x:0.75rem;--tw-border-spacing-y:0.75rem;border-radius:.5rem;border-spacing:var(--tw-border-spacing-x) var(--tw-border-spacing-y);overflow-x:auto;--tw-shadow:0 0 0 1px #9ca3af;--tw-shadow-colored:0 0 0 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 transparent),var(--tw-ring-shadow,0 0 transparent),var(--tw-shadow)} .image-description table tr, .text-stimulus table tr{border-bottom-width:1px;--tw-border-opacity:1;border-color:rgb(156,163,175,var(--tw-border-opacity,1))} .image-description table tr:last-child, .text-stimulus table tr:last-child{border-color:transparent} .image-description table td, .image-description table th, .text-stimulus table td, .text-stimulus table th{border-left-width:1px;min-width:140px;--tw-border-opacity:1;border-color:rgb(156,163,175,var(--tw-border-opacity,1))} .image-description table td:first-child, .image-description table th:first-child, .text-stimulus table td:first-child, .text-stimulus table th:first-child{border-style:none} .text-stimulus table td>p, .text-stimulus table th>p{font-size:1rem;line-height:1.5rem;padding:.75rem;text-align:left;--tw-text-opacity:1;color:rgb(33,37,41,var(--tw-text-opacity,1))} .image-description table td>p, .image-description table th>p{font-size:.875rem;line-height:1.25rem;padding:.75rem;text-align:left;--tw-text-opacity:1;color:rgb(33,37,41,var(--tw-text-opacity,1))} .text-stimulus table th>p{font-weight:400} .image-description table th p, .prompt p, .text-stimulus table th p{font-weight:600} .prompt p b, .prompt p b i, .prompt p b i u, .prompt p b u, .prompt p b u i, .prompt p i b, .prompt p i b u, .prompt p i u b, .prompt p u b, .prompt p u b i, .prompt p u i b, .text-stimulus table th p b, .text-stimulus table th p b i, .text-stimulus table th p b i u, .text-stimulus table th p b u, .text-stimulus table th p b u i, .text-stimulus table th p i b, .text-stimulus table th p i b u, .text-stimulus table th p i u b, .text-stimulus table th p u b, .text-stimulus table th p u b i, .text-stimulus table th p u i b{font-weight:900} .dropdown-text:not(:last-child), .dropdown:not(:last-child){margin-right:1rem} .dropdown-container{align-items:center;border-radius:.5rem;border-width:1px;display:flex;height:2.75rem;overflow:hidden;white-space:nowrap;width:15rem;--tw-border-opacity:1;border-color:rgb(75,85,99,var(--tw-border-opacity,1))} .dropdown-container:focus{outline:2px solid transparent;outline-offset:2px;--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(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 transparent)} .dropdown-container:active, .dropdown-container:focus{border-width:2px;box-shadow:0 0 0 2px #fff,0 0 0 4px #212529,0 0 0 6px #fde047;--tw-border-opacity:1;border-color:rgb(59,64,240,var(--tw-border-opacity,1))}@media (hover:hover) and (pointer:fine){ .dropdown-container:hover{border-width:2px;--tw-border-opacity:1;border-color:rgb(59,64,240,var(--tw-border-opacity,1));outline-color:#212529;outline-width:2px}} .dropdown-menu{border-radius:.5rem;border-width:1px;margin-top:.5rem;max-height:400px;overflow-y:auto;position:absolute;z-index:10;--tw-border-opacity:1;border-color:rgb(75,85,99,var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(255,255,255,var(--tw-bg-opacity,1))}@supports (overflow-wrap:anywhere){ .dropdown-menu{overflow-wrap:anywhere}}@supports not (overflow-wrap:anywhere){ .dropdown-menu{word-break:break-word}} .dropdown-menu{max-width:min(500px,100vw - 2rem);min-width:240px;width:-moz-max-content;width:max-content} .dropdown-item{cursor:pointer;font-size:1rem;line-height:1.5rem;outline:2px solid transparent;outline-offset:2px;padding:.5rem 1rem} .dropdown-itemtext{border-bottom-width:1px;border-color:transparent} .dropdown-itemtext.hover-option{--tw-border-opacity:1;border-color:rgb(0,0,0,var(--tw-border-opacity,1));--tw-text-opacity:1;color:rgb(46,47,212,var(--tw-text-opacity,1))} .dropdown-itemtext.current-option{--tw-bg-opacity:1;background-color:rgb(251,217,27,var(--tw-bg-opacity,1));--tw-text-opacity:1;border-bottom-width:1px;color:rgb(0,0,0,var(--tw-text-opacity,1));outline:2px solid transparent;outline-offset:2px;--tw-border-opacity:1;border-color:rgb(0,0,0,var(--tw-border-opacity,1))} .dropdown-itemtext:active{border-bottom-width:2px} .image-description-accordion{border-bottom-width:1px;border-color:transparent;font-weight:600;--tw-text-opacity:1;color:rgb(33,37,41,var(--tw-text-opacity,1))} .group:focus .image-description-accordion{--tw-bg-opacity:1;background-color:rgb(251,217,27,var(--tw-bg-opacity,1));--tw-text-opacity:1;border-bottom-width:1px;color:rgb(0,0,0,var(--tw-text-opacity,1));outline:2px solid transparent;outline-offset:2px} .group:focus .image-description-accordion, .group:hover .image-description-accordion{--tw-border-opacity:1;border-color:rgb(0,0,0,var(--tw-border-opacity,1))} .group:active .image-description-accordion{border-bottom-width:2px} .sr-only{height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;clip:rect(0,0,0,0);border-width:0;white-space:nowrap} .pointer-events-none{pointer-events:none} .pointer-events-auto{pointer-events:auto} .visible{visibility:visible} .invisible{visibility:hidden} .collapse{visibility:collapse} .static{position:static} .fixed{position:fixed} .absolute{position:absolute} .relative{position:relative} .inset-0{inset:0} .inset-y-0{bottom:0;top:0} .-top-2\\.5{top:-.625rem} .bottom-0{bottom:0} .bottom-1\\.5{bottom:.375rem} .bottom-4{bottom:1rem} .bottom-5{bottom:1.25rem} .bottom-\\[7px\\]{bottom:7px} .bottom-full{bottom:100%} .left-0{left:0} .left-1\\/2{left:50%} .left-4{left:1rem} .left-6{left:1.5rem} .left-\\[-9999px\\]{left:-9999px} .left-full{left:100%} .right-0{right:0} .right-1{right:.25rem} .right-1\\.5{right:.375rem} .right-4{right:1rem} .right-6{right:1.5rem} .right-full{right:100%} .top-0{top:0} .top-1{top:.25rem} .top-1\\.5{top:.375rem} .top-1\\/2{top:50%} .top-12{top:3rem} .top-3\\.5{top:.875rem} .top-\\[13px\\]{top:13px} .top-\\[calc\\(50\\%\\+0\\.375rem\\)\\]{top:calc(50% + .375rem)} .top-full{top:100%} .z-0{z-index:0} .z-10{z-index:10} .z-50{z-index:50} .m-0{margin:0} .m-auto{margin:auto} .mx-0\\.5{margin-left:.125rem;margin-right:.125rem} .mx-auto{margin-left:auto;margin-right:auto} .my-1\\.5{margin-bottom:.375rem;margin-top:.375rem} .my-2{margin-bottom:.5rem;margin-top:.5rem} .my-6{margin-bottom:1.5rem;margin-top:1.5rem} .-mb-1{margin-bottom:-.25rem} .-ml-1{margin-left:-.25rem} .-mr-1{margin-right:-.25rem} .-mr-2\\.5{margin-right:-.625rem} .-mt-0\\.5{margin-top:-.125rem} .-mt-1{margin-top:-.25rem} .mb-0\\.5{margin-bottom:.125rem} .mb-10{margin-bottom:2.5rem} .mb-12{margin-bottom:3rem} .mb-2{margin-bottom:.5rem} .mb-3{margin-bottom:.75rem} .mb-4{margin-bottom:1rem} .mb-5{margin-bottom:1.25rem} .mb-6{margin-bottom:1.5rem} .mb-\\[9\\.5px\\]{margin-bottom:9.5px} .ml-1{margin-left:.25rem} .ml-2{margin-left:.5rem} .ml-2\\.5{margin-left:.625rem} .ml-3{margin-left:.75rem} .ml-8\\.5{margin-left:2.125rem} .ml-\\[3px\\]{margin-left:3px} .ml-\\[9\\.5px\\]{margin-left:9.5px} .mr-1{margin-right:.25rem} .mr-2{margin-right:.5rem} .mr-4{margin-right:1rem} .mr-\\[9\\.5px\\]{margin-right:9.5px} .mt-0\\.5{margin-top:.125rem} .mt-1{margin-top:.25rem} .mt-2{margin-top:.5rem} .mt-4{margin-top:1rem} .mt-6{margin-top:1.5rem} .mt-7\\.5{margin-top:1.875} .mt-9{margin-top:2.25rem} .mt-\\[9\\.5px\\]{margin-top:9.5px} .line-clamp-1{-webkit-line-clamp:1} .line-clamp-1, .line-clamp-3{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical} .line-clamp-3{-webkit-line-clamp:3} .block{display:block} .inline-block{display:inline-block} .inline{display:inline} .flex{display:flex} .table{display:table} .grid{display:grid} .contents{display:contents} .hidden{display:none} .h-10\\.5{height:2.625rem} .h-11{height:2.75rem} .h-2{height:.5rem} .h-4{height:1rem} .h-52{height:13rem} .h-6{height:1.5rem} .h-8\\.5{height:2.125rem} .h-\\[13\\.33px\\]{height:13.33px} .h-\\[8\\.77px\\]{height:8.77px} .h-auto{height:auto} .h-fit{height:-moz-fit-content;height:fit-content} .h-full{height:100%} .h-screen{height:100vh} .max-h-\\[184px\\]{max-height:184px} .max-h-\\[470px\\]{max-height:470px} .max-h-\\[660px\\]{max-height:660px} .max-h-\\[calc\\(100vh-168px\\)\\]{max-height:calc(100vh - 168px)} .max-h-\\[calc\\(100vh-168px-34px\\)\\]{max-height:calc(100vh - 202px)} .max-h-none{max-height:none} .min-h-\\[133px\\]{min-height:133px} .min-h-\\[140px\\]{min-height:140px} .min-h-\\[154px\\]{min-height:154px} .min-h-\\[210px\\]{min-height:210px} .min-h-\\[44px\\]{min-height:44px} .min-h-\\[54px\\]{min-height:54px} .min-h-\\[86px\\]{min-height:86px} .w-11{width:2.75rem} .w-2{width:.5rem} .w-2\\/4{width:50%} .w-3{width:.75rem} .w-4{width:1rem} .w-6{width:1.5rem} .w-60{width:15rem} .w-8\\.5{width:2.125rem} .w-\\[13\\.33px\\]{width:13.33px} .w-\\[8\\.77px\\]{width:8.77px} .w-auto{width:auto} .w-fit{width:-moz-fit-content;width:fit-content} .w-full{width:100%} .w-screen{width:100vw} .min-w-0{min-width:0} .min-w-\\[288px\\]{min-width:288px} .min-w-\\[44px\\]{min-width:44px} .min-w-\\[85px\\]{min-width:85px} .max-w-\\[1008px\\]{max-width:1008px} .max-w-\\[300px\\]{max-width:300px} .max-w-\\[304px\\]{max-width:304px} .max-w-\\[400px\\]{max-width:400px} .max-w-full{max-width:100%} .max-w-none{max-width:none} .flex-1{flex:1 1 0%} .flex-none{flex:none} .flex-shrink-0{flex-shrink:0} .grow{flex-grow:1} .basis-0{flex-basis:0px} .-translate-x-1\\/2{--tw-translate-x:-50%} .-translate-x-1\\/2, .-translate-y-1\\/2{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))} .-translate-y-1\\/2{--tw-translate-y:-50%} .rotate-45{--tw-rotate:45deg;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))} .\\!cursor-default{cursor:default!important} .\\!cursor-pointer{cursor:pointer!important} .cursor-default{cursor:default} .cursor-pointer{cursor:pointer} .select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none} .resize-none{resize:none} .resize{resize:both} .grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))} .flex-row{flex-direction:row} .flex-col{flex-direction:column} .flex-col-reverse{flex-direction:column-reverse} .flex-wrap{flex-wrap:wrap} .content-start{align-content:flex-start} .items-center{align-items:center} .justify-start{justify-content:flex-start} .justify-center{justify-content:center} .justify-between{justify-content:space-between} .gap-1{gap:.25rem} .gap-2{gap:.5rem} .space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.5rem*var(--tw-space-y-reverse));margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)))} .space-y-reverse>:not([hidden])~:not([hidden]){--tw-space-y-reverse:1} .overflow-hidden{overflow:hidden} .overflow-y-auto{overflow-y:auto} .overflow-x-hidden{overflow-x:hidden} .overflow-y-visible{overflow-y:visible} .truncate{overflow:hidden;white-space:nowrap} .text-ellipsis, .truncate{text-overflow:ellipsis} .whitespace-normal{white-space:normal} .whitespace-nowrap{white-space:nowrap} .break-words{overflow-wrap:break-word} .break-all{word-break:break-all} .rounded{border-radius:.25rem} .rounded-\\[32px\\]{border-radius:32px} .rounded-lg{border-radius:.5rem} .rounded-md{border-radius:.375rem} .rounded-b-lg{border-bottom-left-radius:.5rem;border-bottom-right-radius:.5rem} .rounded-b-md{border-bottom-left-radius:.375rem;border-bottom-right-radius:.375rem} .rounded-l-lg{border-bottom-left-radius:.5rem;border-top-left-radius:.5rem} .rounded-t-lg{border-top-left-radius:.5rem;border-top-right-radius:.5rem} .rounded-t-md{border-top-left-radius:.375rem;border-top-right-radius:.375rem} .border{border-width:1px} .border-2{border-width:2px} .border-b{border-bottom-width:1px} .border-l-4{border-left-width:4px} .border-l-6{border-left-width:6px} .border-dashed{border-style:dashed} .\\!border-blue-1000{--tw-border-opacity:1!important;border-color:rgb(40,44,135,var(--tw-border-opacity,1))!important} .border-blue-1000{--tw-border-opacity:1;border-color:rgb(40,44,135,var(--tw-border-opacity,1))} .border-blue-950{--tw-border-opacity:1;border-color:rgb(29,78,216,var(--tw-border-opacity,1))} .border-border-minimal{--tw-border-opacity:1;border-color:rgb(229,231,235,var(--tw-border-opacity,1))} .border-charcoal{--tw-border-opacity:1;border-color:rgb(33,37,41,var(--tw-border-opacity,1))} .border-gray-400{--tw-border-opacity:1;border-color:rgb(196,201,204,var(--tw-border-opacity,1))} .border-gray-800{--tw-border-opacity:1;border-color:rgb(93,99,107,var(--tw-border-opacity,1))} .border-gray-850{--tw-border-opacity:1;border-color:rgb(75,85,99,var(--tw-border-opacity,1))} .border-green-800{--tw-border-opacity:1;border-color:rgb(0,102,5,var(--tw-border-opacity,1))} .border-green-900{--tw-border-opacity:1;border-color:rgb(21,128,61,var(--tw-border-opacity,1))} .border-red-600{--tw-border-opacity:1;border-color:rgb(220,38,38,var(--tw-border-opacity,1))} .border-red-800{--tw-border-opacity:1;border-color:rgb(217,12,85,var(--tw-border-opacity,1))} .border-red-900{--tw-border-opacity:1;border-color:rgb(190,24,93,var(--tw-border-opacity,1))} .border-soft-blue{--tw-border-opacity:1;border-color:rgb(84,101,251,var(--tw-border-opacity,1))} .border-white{--tw-border-opacity:1;border-color:rgb(255,255,255,var(--tw-border-opacity,1))} .\\!bg-violet-100{--tw-bg-opacity:1!important;background-color:rgb(235,235,255,var(--tw-bg-opacity,1))!important} .\\!bg-white{--tw-bg-opacity:1!important;background-color:rgb(255,255,255,var(--tw-bg-opacity,1))!important} .bg-black{--tw-bg-opacity:1;background-color:rgb(0,0,0,var(--tw-bg-opacity,1))} .bg-blue-1000{--tw-bg-opacity:1;background-color:rgb(40,44,135,var(--tw-bg-opacity,1))} .bg-blue-50{--tw-bg-opacity:1;background-color:rgb(239,246,255,var(--tw-bg-opacity,1))} .bg-charcoal\\/30{background-color:rgba(33,37,41,.3)} .bg-charcoal\\/80{background-color:rgba(33,37,41,.8)} .bg-gray-100{--tw-bg-opacity:1;background-color:rgb(247,250,250,var(--tw-bg-opacity,1))} .bg-gray-50{--tw-bg-opacity:1;background-color:rgb(244,244,244,var(--tw-bg-opacity,1))} .bg-gray-900{--tw-bg-opacity:1;background-color:rgb(57,62,69,var(--tw-bg-opacity,1))} .bg-green-300{--tw-bg-opacity:1;background-color:rgb(241,254,241,var(--tw-bg-opacity,1))} .bg-red-200{--tw-bg-opacity:1;background-color:rgb(254,202,202,var(--tw-bg-opacity,1))} .bg-red-300{--tw-bg-opacity:1;background-color:rgb(253,243,247,var(--tw-bg-opacity,1))} .bg-red-50{--tw-bg-opacity:1;background-color:rgb(253,242,248,var(--tw-bg-opacity,1))} .bg-soft-blue{--tw-bg-opacity:1;background-color:rgb(84,101,251,var(--tw-bg-opacity,1))} .bg-transparent{background-color:transparent} .bg-violet-100{--tw-bg-opacity:1;background-color:rgb(235,235,255,var(--tw-bg-opacity,1))} .bg-violet-150{--tw-bg-opacity:1;background-color:rgb(205,208,254,var(--tw-bg-opacity,1))} .bg-white{--tw-bg-opacity:1;background-color:rgb(255,255,255,var(--tw-bg-opacity,1))} .bg-white\\/80{background-color:hsla(0,0%,100%,.8)} .bg-yellow-1000{--tw-bg-opacity:1;background-color:rgb(251,217,27,var(--tw-bg-opacity,1))} .bg-opacity-5{--tw-bg-opacity:0.05} .object-contain{-o-object-fit:contain;object-fit:contain} .p-0\\.5{padding:.125rem} .p-1{padding:.25rem} .p-1\\.5{padding:.375rem} .p-2{padding:.5rem} .p-3{padding:.75rem} .p-4{padding:1rem} .p-5{padding:1.25rem} .p-6{padding:1.5rem} .px-0{padding-left:0;padding-right:0} .px-2{padding-left:.5rem;padding-right:.5rem} .px-3{padding-left:.75rem;padding-right:.75rem} .px-4{padding-left:1rem;padding-right:1rem} .py-1{padding-bottom:.25rem;padding-top:.25rem} .py-1\\.5{padding-bottom:.375rem;padding-top:.375rem} .py-2{padding-bottom:.5rem;padding-top:.5rem} .py-\\[9px\\]{padding-bottom:9px;padding-top:9px} .\\!pr-11{padding-right:2.75rem!important} .pb-0{padding-bottom:0} .pb-10{padding-bottom:2.5rem} .pb-2{padding-bottom:.5rem} .pb-3{padding-bottom:.75rem} .pb-\\[72px\\]{padding-bottom:72px} .pl-13\\.2{padding-left:3.125rem} .pl-24{padding-left:6rem} .pl-3{padding-left:.75rem} .pl-4{padding-left:1rem} .pr-3{padding-right:.75rem} .pr-4{padding-right:1rem} .pt-0{padding-top:0} .pt-0\\.5{padding-top:.125rem} .pt-14{padding-top:3.5rem} .pt-4{padding-top:1rem} .pt-6{padding-top:1.5rem} .pt-\\[15px\\]{padding-top:15px} .pt-\\[55px\\]{padding-top:55px} .text-left{text-align:left} .text-center{text-align:center} .align-middle{vertical-align:middle} .text-base{font-size:1rem;line-height:1.5rem} .text-lg{font-size:1.125rem;line-height:1.75rem} .text-sm{font-size:.875rem;line-height:1.25rem} .text-xl{font-size:1.25rem;line-height:1.75rem} .font-bold{font-weight:700} .font-normal{font-weight:400} .font-semibold{font-weight:600} .leading-12{line-height:3rem} .leading-4{line-height:1rem} .leading-5{line-height:1.25rem} .leading-6{line-height:1.5rem} .leading-\\[1\\.5\\]{line-height:1.5} .leading-\\[150\\%\\]{line-height:150%} .leading-\\[19\\.2px\\]{line-height:19.2px} .leading-\\[19px\\]{line-height:19px} .leading-\\[22px\\]{line-height:22px} .\\!text-gray-900{--tw-text-opacity:1!important;color:rgb(57,62,69,var(--tw-text-opacity,1))!important} .text-blue-1000{--tw-text-opacity:1;color:rgb(40,44,135,var(--tw-text-opacity,1))} .text-blue-850{--tw-text-opacity:1;color:rgb(46,47,212,var(--tw-text-opacity,1))} .text-charcoal{--tw-text-opacity:1;color:rgb(33,37,41,var(--tw-text-opacity,1))} .text-gray-500{--tw-text-opacity:1;color:rgb(107,114,128,var(--tw-text-opacity,1))} .text-gray-800{--tw-text-opacity:1;color:rgb(93,99,107,var(--tw-text-opacity,1))} .text-gray-860{--tw-text-opacity:1;color:rgb(55,65,81,var(--tw-text-opacity,1))} .text-green-800{--tw-text-opacity:1;color:rgb(0,102,5,var(--tw-text-opacity,1))} .text-green-900{--tw-text-opacity:1;color:rgb(21,128,61,var(--tw-text-opacity,1))} .text-inherit{color:inherit} .text-primary-emphasis{--tw-text-opacity:1;color:rgb(8,38,99,var(--tw-text-opacity,1))} .text-red-800{--tw-text-opacity:1;color:rgb(217,12,85,var(--tw-text-opacity,1))} .text-red-900{--tw-text-opacity:1;color:rgb(190,24,93,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} .opacity-0{opacity:0} .opacity-5{opacity:.05} .opacity-50{opacity:.5} .shadow-\\[0_-12px_14px_-16px_\\#00000033\\]{--tw-shadow:0 -12px 14px -16px #00000033;--tw-shadow-colored:0 -12px 14px -16px var(--tw-shadow-color)} .shadow-\\[0_-12px_14px_-16px_\\#00000033\\], .shadow-md{box-shadow:var(--tw-ring-offset-shadow,0 0 transparent),var(--tw-ring-shadow,0 0 transparent),var(--tw-shadow)} .shadow-md{--tw-shadow:0px 2px 8px rgba(0,0,0,.2);--tw-shadow-colored:0px 2px 8px var(--tw-shadow-color)} .\\!outline-none{outline:2px solid transparent!important;outline-offset:2px!important} .outline-none{outline:2px solid transparent;outline-offset:2px} .blur{--tw-blur:blur(8px)} .blur, .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)} .backdrop-blur-md{--tw-backdrop-blur:blur(12px);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)} .transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)} .duration-300{transition-duration:.3s} :host, html{-webkit-tap-highlight-color:inherit!important} .active\\:raw-focus-ring-by:active{--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(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-opacity:1;--tw-ring-color:rgb(253 224 71/var(--tw-ring-opacity,1));--tw-ring-offset-width:2px;--tw-ring-offset-color:#212529} .active\\:raw-focus-ring-by:active, .active\\:raw-focus-ring:active{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 transparent);outline:2px solid transparent;outline-offset:2px;transition-duration:50ms} .active\\:raw-focus-ring:active{--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(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-opacity:1;--tw-ring-color:rgb(84 101 251/var(--tw-ring-opacity,1));--tw-ring-offset-width:2px}@media (min-width:732px){ .md\\:item-heading{font-size:1.25rem;letter-spacing:-.025em;line-height:1.5rem;--tw-text-opacity:1;color:rgb(40,44,135,var(--tw-text-opacity,1))}}@media (hover:hover) and (pointer:fine){ .td\\:hover-focus-ring:hover{outline:2px solid transparent;outline-offset:2px;--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(2px + 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 transparent);--tw-ring-opacity:1;--tw-ring-color:rgb(84 101 251/var(--tw-ring-opacity,1));--tw-ring-offset-width:2px;transition-duration:50ms}} .last\\:mr-0:last-child{margin-right:0} .focus-within\\:left-0:focus-within{left:0} .focus-within\\:right-0:focus-within{right:0} .focus-within\\:top-0:focus-within{top:0} .focus-within\\:z-30:focus-within{z-index:30} .hover\\:bg-black-50:hover{background-color:rgba(0,0,0,.051)} .hover\\:bg-blue-100:hover{--tw-bg-opacity:1;background-color:rgb(222,222,255,var(--tw-bg-opacity,1))} .hover\\:bg-yellow-1000:hover{--tw-bg-opacity:1;background-color:rgb(251,217,27,var(--tw-bg-opacity,1))} .hover\\:text-charcoal:hover{--tw-text-opacity:1;color:rgb(33,37,41,var(--tw-text-opacity,1))} .hover\\:underline:hover{text-decoration-line:underline} .hover\\:decoration-2:hover{text-decoration-thickness:2px} .hover\\:underline-offset-\\[25\\%\\]:hover{text-underline-offset:25%} .focus-visible\\:border:focus-visible{border-width:1px} .focus-visible\\:border-charcoal:focus-visible{--tw-border-opacity:1;border-color:rgb(33,37,41,var(--tw-border-opacity,1))} .focus-visible\\:border-gray-400:focus-visible{--tw-border-opacity:1;border-color:rgb(196,201,204,var(--tw-border-opacity,1))} .focus-visible\\:border-gray-800:focus-visible{--tw-border-opacity:1;border-color:rgb(93,99,107,var(--tw-border-opacity,1))} .focus-visible\\:bg-yellow-900:focus-visible{--tw-bg-opacity:1;background-color:rgb(253,224,71,var(--tw-bg-opacity,1))} .focus-visible\\:text-charcoal:focus-visible{--tw-text-opacity:1;color:rgb(33,37,41,var(--tw-text-opacity,1))} .focus-visible\\:underline:focus-visible{text-decoration-line:underline} .focus-visible\\:decoration-2:focus-visible{text-decoration-thickness:2px} .focus-visible\\:underline-offset-\\[25\\%\\]:focus-visible{text-underline-offset:25%} .focus-visible\\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px} .focus-visible\\:ring-4:focus-visible{--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(4px + 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 transparent)} .focus-visible\\:ring-soft-blue:focus-visible{--tw-ring-opacity:1;--tw-ring-color:rgb(84 101 251/var(--tw-ring-opacity,1))} .focus-visible\\:ring-offset-4:focus-visible{--tw-ring-offset-width:4px} .focus-visible\\:duration-50:focus-visible{transition-duration:50ms} .active\\:bg-black-55:active, .active\\:bg-black-60:active{background-color:rgba(0,0,0,.102)} .active\\:bg-yellow-1100:active{--tw-bg-opacity:1;background-color:rgb(238,206,26,var(--tw-bg-opacity,1))} .active\\:text-charcoal:active{--tw-text-opacity:1;color:rgb(33,37,41,var(--tw-text-opacity,1))} .disabled\\:text-gray-40:disabled{--tw-text-opacity:1;color:rgb(142,147,153,var(--tw-text-opacity,1))} .disabled\\:hover\\:bg-white:hover:disabled{--tw-bg-opacity:1;background-color:rgb(255,255,255,var(--tw-bg-opacity,1))} .group:hover .group-hover\\:underline{text-decoration-line:underline} .group.active .group-\\[\\.active\\]\\:border-b-2{border-bottom-width:2px}@media (min-width:732px){ .md\\:inset-0{inset:0} .md\\:top-20{top:5rem} .md\\:mb-2{margin-bottom:.5rem} .md\\:mb-4{margin-bottom:1rem} .md\\:mb-8{margin-bottom:2rem} .md\\:ml-0{margin-left:0} .md\\:mt-0{margin-top:0} .md\\:mt-14{margin-top:3.5rem} .md\\:block{display:block} .md\\:inline-block{display:inline-block} .md\\:flex{display:flex} .md\\:grid{display:grid} .md\\:hidden{display:none} .md\\:h-11{height:2.75rem} .md\\:h-5{height:1.25rem} .md\\:h-\\[13\\.5px\\]{height:13.5px} .md\\:h-fit{height:-moz-fit-content;height:fit-content} .md\\:max-h-\\[calc\\(100vh-128px\\)\\]{max-height:calc(100vh - 128px)} .md\\:max-h-\\[calc\\(100vh-128px-54px\\)\\]{max-height:calc(100vh - 182px)} .md\\:min-h-0{min-height:0} .md\\:min-h-\\[140px\\]{min-height:140px} .md\\:min-h-\\[164px\\]{min-height:164px} .md\\:w-1\\/2{width:50%} .md\\:w-11{width:2.75rem} .md\\:w-5{width:1.25rem} .md\\:w-\\[13\\.5px\\]{width:13.5px} .md\\:w-fit{width:-moz-fit-content;width:fit-content} .md\\:max-w-\\[calc\\(100vw-164px\\)\\]{max-width:calc(100vw - 164px)} .md\\:flex-none{flex:none} .md\\:grow-0{flex-grow:0} .md\\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))} .md\\:flex-row{flex-direction:row} .md\\:flex-col{flex-direction:column} .md\\:items-start{align-items:flex-start} .md\\:items-center{align-items:center} .md\\:justify-normal{justify-content:normal} .md\\:justify-center{justify-content:center} .md\\:justify-between{justify-content:space-between} .md\\:gap-4{gap:1rem} .md\\:gap-6{gap:1.5rem} .md\\:gap-x-4{-moz-column-gap:1rem;column-gap:1rem} .md\\:space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(0px*var(--tw-space-y-reverse));margin-top:calc(0px*(1 - var(--tw-space-y-reverse)))} .md\\:rounded-lg{border-radius:.5rem} .md\\:rounded-md{border-radius:.375rem} .md\\:rounded-b-none{border-bottom-left-radius:0;border-bottom-right-radius:0} .md\\:border{border-width:1px} .md\\:border-gray-400{--tw-border-opacity:1;border-color:rgb(196,201,204,var(--tw-border-opacity,1))} .md\\:\\!bg-white{--tw-bg-opacity:1!important;background-color:rgb(255,255,255,var(--tw-bg-opacity,1))!important} .md\\:p-4{padding:1rem} .md\\:px-0{padding-left:0;padding-right:0} .md\\:px-4{padding-left:1rem;padding-right:1rem} .md\\:px-6{padding-left:1.5rem;padding-right:1.5rem} .md\\:px-\\[82px\\]{padding-left:82px;padding-right:82px} .md\\:pb-0{padding-bottom:0} .md\\:pl-13\\.2{padding-left:3.125rem} .md\\:pl-4{padding-left:1rem} .md\\:pr-4{padding-right:1rem} .md\\:pt-20\\.5{padding-top:5.125rem} .md\\:text-center{text-align:center} .md\\:text-lg{font-size:1.125rem;line-height:1.75rem} .md\\:shadow-\\[0_0_\\#0000\\]{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 transparent),var(--tw-ring-shadow,0 0 transparent),var(--tw-shadow)} .md\\:\\[grid-template-columns\\:repeat\\(2\\,minmax\\(auto\\,304px\\)\\)\\]{grid-template-columns:repeat(2,minmax(auto,304px))}}@media (min-width:1196px){ .lg\\:left-16{left:4rem} .lg\\:right-16{right:4rem} .lg\\:flex{display:flex} .lg\\:hidden{display:none} .lg\\:max-h-\\[calc\\(100vh-192px\\)\\]{max-height:calc(100vh - 192px)} .lg\\:max-h-\\[calc\\(100vh-192px-54px\\)\\]{max-height:calc(100vh - 246px)} .lg\\:min-h-\\[224px\\]{min-height:224px} .lg\\:w-full{width:100%} .lg\\:max-w-\\[50\\%\\]{max-width:50%} .lg\\:max-w-\\[calc\\(100vw-248px\\)\\]{max-width:calc(100vw - 248px)} .lg\\:grow{flex-grow:1} .lg\\:basis-1\\/2{flex-basis:50%} .lg\\:justify-start{justify-content:flex-start} .lg\\:rounded-b-lg{border-bottom-left-radius:.5rem;border-bottom-right-radius:.5rem} .lg\\:rounded-t-lg{border-top-left-radius:.5rem;border-top-right-radius:.5rem} .lg\\:px-16{padding-left:4rem;padding-right:4rem} .lg\\:px-\\[128px\\]{padding-left:128px;padding-right:128px} .lg\\:py-24{padding-bottom:6rem;padding-top:6rem} .lg\\:pt-6{padding-top:1.5rem}}@media (hover:hover) and (pointer:fine){ .td\\:border-2{border-width:2px} .td\\:border-blue-900{--tw-border-opacity:1;border-color:rgb(59,64,240,var(--tw-border-opacity,1))} .td\\:hover\\:cursor-grab:hover{cursor:grab} .td\\:hover\\:bg-black-50:hover{background-color:rgba(0,0,0,.051)} .td\\:hover\\:bg-violet-100:hover{--tw-bg-opacity:1;background-color:rgb(235,235,255,var(--tw-bg-opacity,1))} .td\\:hover\\:text-soft-blue:hover{--tw-text-opacity:1;color:rgb(84,101,251,var(--tw-text-opacity,1))} .group:hover .td\\:group-hover\\:bg-black{--tw-bg-opacity:1;background-color:rgb(0,0,0,var(--tw-bg-opacity,1))} .group:hover .td\\:group-hover\\:opacity-5{opacity:.05}}@media (pointer:coarse){ .coarse\\:active\\:bg-yellow-900:active{--tw-bg-opacity:1;background-color:rgb(253,224,71,var(--tw-bg-opacity,1))}}'
18633
18843
  };
18634
18844
  function InteractionBuilder($$anchor, $$props) {
18635
18845
  push($$props, true);