coveragebook_components 0.6.5 → 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -733,7 +733,7 @@ select {
733
733
  font-family: proxima-nova, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
734
734
  }
735
735
  [data-coco].coco-button {
736
- display: inline-flex;
736
+ display: flex;
737
737
  width: auto;
738
738
  flex: none;
739
739
  -webkit-user-select: none;
@@ -857,7 +857,7 @@ select {
857
857
  width: 100%;
858
858
  }
859
859
  [data-coco][data-component="icon"] {
860
- display: inline-flex;
860
+ display: flex;
861
861
  height: 1.5rem;
862
862
  width: 1.5rem;
863
863
  flex: none;
@@ -958,6 +958,104 @@ select {
958
958
  [data-coco].coco-link[data-icon-position="end"] [data-component="icon"] {
959
959
  order: 2;
960
960
  }
961
+ [data-coco][data-component="modal"] {
962
+ position: fixed;
963
+ inset: 0px;
964
+ z-index: 10000;
965
+ overflow-y: auto;
966
+ }
967
+ [data-coco][data-component="modal"] .modal-overlay {
968
+ position: fixed;
969
+ inset: 0px;
970
+ background-color: rgb(0 0 0 / var(--tw-bg-opacity));
971
+ --tw-bg-opacity: 0.6;
972
+ }
973
+ [data-coco][data-component="modal"] .modal-container {
974
+ position: relative;
975
+ z-index: 10000;
976
+ display: flex;
977
+ min-height: 100vh;
978
+ align-items: center;
979
+ justify-content: center;
980
+ padding: 2rem;
981
+ }
982
+ [data-coco][data-component="modal"] .modal-content {
983
+ display: contents;
984
+ }
985
+ .modal-frame {
986
+ display: contents;
987
+ }
988
+ [data-coco][data-component="modal-dialog"] {
989
+ width: 100%;
990
+ border-radius: 0.75rem;
991
+ --tw-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25);
992
+ --tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);
993
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
994
+ max-width: 42rem;
995
+ }
996
+ /* temp until sizes added */
997
+ [data-coco][data-component="modal-dialog"] .modal-dialog-header {
998
+ position: relative;
999
+ display: flex;
1000
+ align-items: center;
1001
+ justify-content: center;
1002
+ height: 4rem;
1003
+ border-top-left-radius: 0.75rem;
1004
+ border-top-right-radius: 0.75rem;
1005
+ border-bottom-width: 1px;
1006
+ --tw-border-opacity: 1;
1007
+ border-color: rgb(209 213 219 / var(--tw-border-opacity));
1008
+ --tw-bg-opacity: 1;
1009
+ background-color: rgb(255 255 255 / var(--tw-bg-opacity));
1010
+ padding-left: 2rem;
1011
+ padding-right: 2rem;
1012
+ }
1013
+ [data-coco][data-component="modal-dialog"] .modal-dialog-title {
1014
+ width: 100%;
1015
+ overflow: hidden;
1016
+ text-overflow: ellipsis;
1017
+ white-space: nowrap;
1018
+ padding-right: 1.5rem;
1019
+ font-size: 1.125rem;
1020
+ line-height: 1.75rem;
1021
+ font-weight: 600;
1022
+ }
1023
+ [data-coco][data-component="modal-dialog"] .modal-dialog-close {
1024
+ position: absolute;
1025
+ top: 50%;
1026
+ right: 0.75rem;
1027
+ display: block;
1028
+ flex: none;
1029
+ --tw-translate-y: -50%;
1030
+ 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));
1031
+ padding: 0.5rem;
1032
+ --tw-text-opacity: 1;
1033
+ color: rgb(156 163 175 / var(--tw-text-opacity));
1034
+ }
1035
+ [data-coco][data-component="modal-dialog"] .modal-dialog-close:hover {
1036
+ --tw-text-opacity: 1;
1037
+ color: rgb(31 41 55 / var(--tw-text-opacity));
1038
+ }
1039
+ [data-coco][data-component="modal-dialog"] .modal-dialog-close:focus {
1040
+ outline: 2px solid transparent;
1041
+ outline-offset: 2px;
1042
+ --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
1043
+ --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);
1044
+ box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
1045
+ }
1046
+ [data-coco][data-component="modal-dialog"] .modal-dialog-content {
1047
+ border-radius: 0.75rem;
1048
+ --tw-bg-opacity: 1;
1049
+ background-color: rgb(243 244 246 / var(--tw-bg-opacity));
1050
+ padding-left: 2rem;
1051
+ padding-right: 2rem;
1052
+ padding-top: 1.5rem;
1053
+ padding-bottom: 1.5rem;
1054
+ }
1055
+ [data-coco][data-component="modal-dialog"] .modal-dialog-header + .modal-dialog-content {
1056
+ border-top-left-radius: 0px;
1057
+ border-top-right-radius: 0px;
1058
+ }
961
1059
  [data-coco][data-component="placeholder"] {
962
1060
  border-width: 1px;
963
1061
  border-style: dashed;
@@ -9370,15 +9370,15 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el);
9370
9370
  };
9371
9371
  directive("ignore", handler);
9372
9372
  directive("effect", (el, { expression }, { effect: effect32 }) => effect32(evaluateLater(el, expression)));
9373
- function on(el, event, modifiers, callback) {
9373
+ function on(el, event2, modifiers, callback) {
9374
9374
  let listenerTarget = el;
9375
9375
  let handler3 = (e2) => callback(e2);
9376
9376
  let options = {};
9377
9377
  let wrapHandler = (callback2, wrapper) => (e2) => wrapper(callback2, e2);
9378
9378
  if (modifiers.includes("dot"))
9379
- event = dotSyntax(event);
9379
+ event2 = dotSyntax(event2);
9380
9380
  if (modifiers.includes("camel"))
9381
- event = camelCase2(event);
9381
+ event2 = camelCase2(event2);
9382
9382
  if (modifiers.includes("passive"))
9383
9383
  options.passive = true;
9384
9384
  if (modifiers.includes("capture"))
@@ -9428,20 +9428,20 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el);
9428
9428
  if (modifiers.includes("once")) {
9429
9429
  handler3 = wrapHandler(handler3, (next, e2) => {
9430
9430
  next(e2);
9431
- listenerTarget.removeEventListener(event, handler3, options);
9431
+ listenerTarget.removeEventListener(event2, handler3, options);
9432
9432
  });
9433
9433
  }
9434
9434
  handler3 = wrapHandler(handler3, (next, e2) => {
9435
- if (isKeyEvent(event)) {
9435
+ if (isKeyEvent(event2)) {
9436
9436
  if (isListeningForASpecificKeyThatHasntBeenPressed(e2, modifiers)) {
9437
9437
  return;
9438
9438
  }
9439
9439
  }
9440
9440
  next(e2);
9441
9441
  });
9442
- listenerTarget.addEventListener(event, handler3, options);
9442
+ listenerTarget.addEventListener(event2, handler3, options);
9443
9443
  return () => {
9444
- listenerTarget.removeEventListener(event, handler3, options);
9444
+ listenerTarget.removeEventListener(event2, handler3, options);
9445
9445
  };
9446
9446
  }
9447
9447
  function dotSyntax(subject) {
@@ -9458,8 +9458,8 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el);
9458
9458
  return subject;
9459
9459
  return subject.replace(/([a-z])([A-Z])/g, "$1-$2").replace(/[_\s]/, "-").toLowerCase();
9460
9460
  }
9461
- function isKeyEvent(event) {
9462
- return ["keydown", "keyup"].includes(event);
9461
+ function isKeyEvent(event2) {
9462
+ return ["keydown", "keyup"].includes(event2);
9463
9463
  }
9464
9464
  function isListeningForASpecificKeyThatHasntBeenPressed(e2, modifiers) {
9465
9465
  let keyModifiers = modifiers.filter((i2) => {
@@ -9557,13 +9557,13 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el);
9557
9557
  el.setAttribute("name", expression);
9558
9558
  });
9559
9559
  }
9560
- var event = el.tagName.toLowerCase() === "select" || ["checkbox", "radio"].includes(el.type) || modifiers.includes("lazy") ? "change" : "input";
9560
+ var event2 = el.tagName.toLowerCase() === "select" || ["checkbox", "radio"].includes(el.type) || modifiers.includes("lazy") ? "change" : "input";
9561
9561
  let removeListener = isCloning ? () => {
9562
- } : on(el, event, modifiers, (e2) => {
9562
+ } : on(el, event2, modifiers, (e2) => {
9563
9563
  setValue(getInputValue(el, modifiers, e2, getValue()));
9564
9564
  });
9565
9565
  if (modifiers.includes("fill") && [null, ""].includes(getValue())) {
9566
- el.dispatchEvent(new Event(event, {}));
9566
+ el.dispatchEvent(new Event(event2, {}));
9567
9567
  }
9568
9568
  if (!el._x_removeModelListeners)
9569
9569
  el._x_removeModelListeners = {};
@@ -9598,27 +9598,27 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el);
9598
9598
  el._x_forceModelUpdate(value);
9599
9599
  });
9600
9600
  });
9601
- function getInputValue(el, modifiers, event, currentValue) {
9601
+ function getInputValue(el, modifiers, event2, currentValue) {
9602
9602
  return mutateDom(() => {
9603
9603
  var _a;
9604
- if (event instanceof CustomEvent && event.detail !== void 0)
9605
- return (_a = event.detail) != null ? _a : event.target.value;
9604
+ if (event2 instanceof CustomEvent && event2.detail !== void 0)
9605
+ return (_a = event2.detail) != null ? _a : event2.target.value;
9606
9606
  else if (el.type === "checkbox") {
9607
9607
  if (Array.isArray(currentValue)) {
9608
- let newValue = modifiers.includes("number") ? safeParseNumber(event.target.value) : event.target.value;
9609
- return event.target.checked ? currentValue.concat([newValue]) : currentValue.filter((el2) => !checkedAttrLooseCompare2(el2, newValue));
9608
+ let newValue = modifiers.includes("number") ? safeParseNumber(event2.target.value) : event2.target.value;
9609
+ return event2.target.checked ? currentValue.concat([newValue]) : currentValue.filter((el2) => !checkedAttrLooseCompare2(el2, newValue));
9610
9610
  } else {
9611
- return event.target.checked;
9611
+ return event2.target.checked;
9612
9612
  }
9613
9613
  } else if (el.tagName.toLowerCase() === "select" && el.multiple) {
9614
- return modifiers.includes("number") ? Array.from(event.target.selectedOptions).map((option) => {
9614
+ return modifiers.includes("number") ? Array.from(event2.target.selectedOptions).map((option) => {
9615
9615
  let rawValue = option.value || option.text;
9616
9616
  return safeParseNumber(rawValue);
9617
- }) : Array.from(event.target.selectedOptions).map((option) => {
9617
+ }) : Array.from(event2.target.selectedOptions).map((option) => {
9618
9618
  return option.value || option.text;
9619
9619
  });
9620
9620
  } else {
9621
- let rawValue = event.target.value;
9621
+ let rawValue = event2.target.value;
9622
9622
  return modifiers.includes("number") ? safeParseNumber(rawValue) : modifiers.includes("trim") ? rawValue.trim() : rawValue;
9623
9623
  }
9624
9624
  });
@@ -13177,8 +13177,8 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el);
13177
13177
  var _normalizeToArray = normalizeToArray(elementOrElements), element = _normalizeToArray[0];
13178
13178
  return element != null && (_element$ownerDocumen = element.ownerDocument) != null && _element$ownerDocumen.body ? element.ownerDocument : document;
13179
13179
  }
13180
- function isCursorOutsideInteractiveBorder(popperTreeData, event) {
13181
- var clientX = event.clientX, clientY = event.clientY;
13180
+ function isCursorOutsideInteractiveBorder(popperTreeData, event2) {
13181
+ var clientX = event2.clientX, clientY = event2.clientY;
13182
13182
  return popperTreeData.every(function(_ref) {
13183
13183
  var popperRect = _ref.popperRect, popperState = _ref.popperState, props = _ref.props;
13184
13184
  var interactiveBorder = props.interactiveBorder;
@@ -13200,8 +13200,8 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el);
13200
13200
  }
13201
13201
  function updateTransitionEndListener(box, action, listener) {
13202
13202
  var method = action + "EventListener";
13203
- ["transitionend", "webkitTransitionEnd"].forEach(function(event) {
13204
- box[method](event, listener);
13203
+ ["transitionend", "webkitTransitionEnd"].forEach(function(event2) {
13204
+ box[method](event2, listener);
13205
13205
  });
13206
13206
  }
13207
13207
  function actualContains(parent, child) {
@@ -13725,13 +13725,13 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el);
13725
13725
  return listener !== debouncedOnMouseMove;
13726
13726
  });
13727
13727
  }
13728
- function onDocumentPress(event) {
13728
+ function onDocumentPress(event2) {
13729
13729
  if (currentInput.isTouch) {
13730
- if (didTouchMove || event.type === "mousedown") {
13730
+ if (didTouchMove || event2.type === "mousedown") {
13731
13731
  return;
13732
13732
  }
13733
13733
  }
13734
- var actualTarget = event.composedPath && event.composedPath()[0] || event.target;
13734
+ var actualTarget = event2.composedPath && event2.composedPath()[0] || event2.target;
13735
13735
  if (instance.props.interactive && actualContains(popper2, actualTarget)) {
13736
13736
  return;
13737
13737
  }
@@ -13745,7 +13745,7 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el);
13745
13745
  return;
13746
13746
  }
13747
13747
  } else {
13748
- invokeHook("onClickOutside", [instance, event]);
13748
+ invokeHook("onClickOutside", [instance, event2]);
13749
13749
  }
13750
13750
  if (instance.props.hideOnClick === true) {
13751
13751
  instance.clearDelayTimeouts();
@@ -13791,8 +13791,8 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el);
13791
13791
  }
13792
13792
  function onTransitionEnd(duration, callback) {
13793
13793
  var box = getDefaultTemplateChildren().box;
13794
- function listener(event) {
13795
- if (event.target === box) {
13794
+ function listener(event2) {
13795
+ if (event2.target === box) {
13796
13796
  updateTransitionEndListener(box, "remove", listener);
13797
13797
  callback();
13798
13798
  }
@@ -13853,37 +13853,37 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el);
13853
13853
  });
13854
13854
  listeners = [];
13855
13855
  }
13856
- function onTrigger2(event) {
13856
+ function onTrigger2(event2) {
13857
13857
  var _lastTriggerEvent;
13858
13858
  var shouldScheduleClickHide = false;
13859
- if (!instance.state.isEnabled || isEventListenerStopped(event) || didHideDueToDocumentMouseDown) {
13859
+ if (!instance.state.isEnabled || isEventListenerStopped(event2) || didHideDueToDocumentMouseDown) {
13860
13860
  return;
13861
13861
  }
13862
13862
  var wasFocused = ((_lastTriggerEvent = lastTriggerEvent) == null ? void 0 : _lastTriggerEvent.type) === "focus";
13863
- lastTriggerEvent = event;
13864
- currentTarget = event.currentTarget;
13863
+ lastTriggerEvent = event2;
13864
+ currentTarget = event2.currentTarget;
13865
13865
  handleAriaExpandedAttribute();
13866
- if (!instance.state.isVisible && isMouseEvent(event)) {
13866
+ if (!instance.state.isVisible && isMouseEvent(event2)) {
13867
13867
  mouseMoveListeners.forEach(function(listener) {
13868
- return listener(event);
13868
+ return listener(event2);
13869
13869
  });
13870
13870
  }
13871
- if (event.type === "click" && (instance.props.trigger.indexOf("mouseenter") < 0 || isVisibleFromClick) && instance.props.hideOnClick !== false && instance.state.isVisible) {
13871
+ if (event2.type === "click" && (instance.props.trigger.indexOf("mouseenter") < 0 || isVisibleFromClick) && instance.props.hideOnClick !== false && instance.state.isVisible) {
13872
13872
  shouldScheduleClickHide = true;
13873
13873
  } else {
13874
- scheduleShow(event);
13874
+ scheduleShow(event2);
13875
13875
  }
13876
- if (event.type === "click") {
13876
+ if (event2.type === "click") {
13877
13877
  isVisibleFromClick = !shouldScheduleClickHide;
13878
13878
  }
13879
13879
  if (shouldScheduleClickHide && !wasFocused) {
13880
- scheduleHide(event);
13880
+ scheduleHide(event2);
13881
13881
  }
13882
13882
  }
13883
- function onMouseMove(event) {
13884
- var target = event.target;
13883
+ function onMouseMove(event2) {
13884
+ var target = event2.target;
13885
13885
  var isCursorOverReferenceOrPopper = getCurrentTarget().contains(target) || popper2.contains(target);
13886
- if (event.type === "mousemove" && isCursorOverReferenceOrPopper) {
13886
+ if (event2.type === "mousemove" && isCursorOverReferenceOrPopper) {
13887
13887
  return;
13888
13888
  }
13889
13889
  var popperTreeData = getNestedPopperTree().concat(popper2).map(function(popper3) {
@@ -13899,33 +13899,33 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el);
13899
13899
  }
13900
13900
  return null;
13901
13901
  }).filter(Boolean);
13902
- if (isCursorOutsideInteractiveBorder(popperTreeData, event)) {
13902
+ if (isCursorOutsideInteractiveBorder(popperTreeData, event2)) {
13903
13903
  cleanupInteractiveMouseListeners();
13904
- scheduleHide(event);
13904
+ scheduleHide(event2);
13905
13905
  }
13906
13906
  }
13907
- function onMouseLeave(event) {
13908
- var shouldBail = isEventListenerStopped(event) || instance.props.trigger.indexOf("click") >= 0 && isVisibleFromClick;
13907
+ function onMouseLeave(event2) {
13908
+ var shouldBail = isEventListenerStopped(event2) || instance.props.trigger.indexOf("click") >= 0 && isVisibleFromClick;
13909
13909
  if (shouldBail) {
13910
13910
  return;
13911
13911
  }
13912
13912
  if (instance.props.interactive) {
13913
- instance.hideWithInteractivity(event);
13913
+ instance.hideWithInteractivity(event2);
13914
13914
  return;
13915
13915
  }
13916
- scheduleHide(event);
13916
+ scheduleHide(event2);
13917
13917
  }
13918
- function onBlurOrFocusOut(event) {
13919
- if (instance.props.trigger.indexOf("focusin") < 0 && event.target !== getCurrentTarget()) {
13918
+ function onBlurOrFocusOut(event2) {
13919
+ if (instance.props.trigger.indexOf("focusin") < 0 && event2.target !== getCurrentTarget()) {
13920
13920
  return;
13921
13921
  }
13922
- if (instance.props.interactive && event.relatedTarget && popper2.contains(event.relatedTarget)) {
13922
+ if (instance.props.interactive && event2.relatedTarget && popper2.contains(event2.relatedTarget)) {
13923
13923
  return;
13924
13924
  }
13925
- scheduleHide(event);
13925
+ scheduleHide(event2);
13926
13926
  }
13927
- function isEventListenerStopped(event) {
13928
- return currentInput.isTouch ? getIsCustomTouchBehavior() !== event.type.indexOf("touch") >= 0 : false;
13927
+ function isEventListenerStopped(event2) {
13928
+ return currentInput.isTouch ? getIsCustomTouchBehavior() !== event2.type.indexOf("touch") >= 0 : false;
13929
13929
  }
13930
13930
  function createPopperInstance() {
13931
13931
  destroyPopperInstance();
@@ -14028,10 +14028,10 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el);
14028
14028
  function getNestedPopperTree() {
14029
14029
  return arrayFrom(popper2.querySelectorAll("[data-tippy-root]"));
14030
14030
  }
14031
- function scheduleShow(event) {
14031
+ function scheduleShow(event2) {
14032
14032
  instance.clearDelayTimeouts();
14033
- if (event) {
14034
- invokeHook("onTrigger", [instance, event]);
14033
+ if (event2) {
14034
+ invokeHook("onTrigger", [instance, event2]);
14035
14035
  }
14036
14036
  addDocumentPress();
14037
14037
  var delay3 = getDelay(true);
@@ -14047,14 +14047,14 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el);
14047
14047
  instance.show();
14048
14048
  }
14049
14049
  }
14050
- function scheduleHide(event) {
14050
+ function scheduleHide(event2) {
14051
14051
  instance.clearDelayTimeouts();
14052
- invokeHook("onUntrigger", [instance, event]);
14052
+ invokeHook("onUntrigger", [instance, event2]);
14053
14053
  if (!instance.state.isVisible) {
14054
14054
  removeDocumentPress();
14055
14055
  return;
14056
14056
  }
14057
- if (instance.props.trigger.indexOf("mouseenter") >= 0 && instance.props.trigger.indexOf("click") >= 0 && ["mouseleave", "mousemove"].indexOf(event.type) >= 0 && isVisibleFromClick) {
14057
+ if (instance.props.trigger.indexOf("mouseenter") >= 0 && instance.props.trigger.indexOf("click") >= 0 && ["mouseleave", "mousemove"].indexOf(event2.type) >= 0 && isVisibleFromClick) {
14058
14058
  return;
14059
14059
  }
14060
14060
  var delay3 = getDelay(false);
@@ -14227,13 +14227,13 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el);
14227
14227
  instance.unmount();
14228
14228
  }
14229
14229
  }
14230
- function hideWithInteractivity(event) {
14230
+ function hideWithInteractivity(event2) {
14231
14231
  if (true) {
14232
14232
  warnWhen(instance.state.isDestroyed, createMemoryLeakWarning("hideWithInteractivity"));
14233
14233
  }
14234
14234
  getDocument().addEventListener("mousemove", debouncedOnMouseMove);
14235
14235
  pushIfUnique(mouseMoveListeners, debouncedOnMouseMove);
14236
- debouncedOnMouseMove(event);
14236
+ debouncedOnMouseMove(event2);
14237
14237
  }
14238
14238
  function unmount() {
14239
14239
  if (true) {
@@ -14370,10 +14370,10 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el);
14370
14370
  });
14371
14371
  isInternalUpdate = false;
14372
14372
  }
14373
- function onMouseMove(event) {
14374
- var isCursorOverReference = event.target ? reference2.contains(event.target) : true;
14373
+ function onMouseMove(event2) {
14374
+ var isCursorOverReference = event2.target ? reference2.contains(event2.target) : true;
14375
14375
  var followCursor2 = instance.props.followCursor;
14376
- var clientX = event.clientX, clientY = event.clientY;
14376
+ var clientX = event2.clientX, clientY = event2.clientY;
14377
14377
  var rect = reference2.getBoundingClientRect();
14378
14378
  var relativeX = clientX - rect.left;
14379
14379
  var relativeY = clientY - rect.top;
@@ -14458,14 +14458,14 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el);
14458
14458
  }
14459
14459
  }
14460
14460
  },
14461
- onTrigger: function onTrigger2(_2, event) {
14462
- if (isMouseEvent(event)) {
14461
+ onTrigger: function onTrigger2(_2, event2) {
14462
+ if (isMouseEvent(event2)) {
14463
14463
  mouseCoords = {
14464
- clientX: event.clientX,
14465
- clientY: event.clientY
14464
+ clientX: event2.clientX,
14465
+ clientY: event2.clientY
14466
14466
  };
14467
14467
  }
14468
- wasFocusEvent = event.type === "focus";
14468
+ wasFocusEvent = event2.type === "focus";
14469
14469
  },
14470
14470
  onHidden: function onHidden2() {
14471
14471
  if (instance.props.followCursor) {
@@ -14487,8 +14487,8 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el);
14487
14487
  name: "hideOnEsc",
14488
14488
  defaultValue: true,
14489
14489
  fn({ hide: hide2 }) {
14490
- function onKeyDown(event) {
14491
- if (event.keyCode === 27) {
14490
+ function onKeyDown(event2) {
14491
+ if (event2.keyCode === 27) {
14492
14492
  hide2();
14493
14493
  }
14494
14494
  }
@@ -14769,8 +14769,8 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el);
14769
14769
  clearAutoDismiss() {
14770
14770
  clearTimeout(notification.dismissTimer);
14771
14771
  },
14772
- clearFromQueue(event) {
14773
- if (notification.type === event.detail.type && notification.position === "fixed" && notification.id !== event.detail.id && notification.queuePosition < event.detail.queuePosition) {
14772
+ clearFromQueue(event2) {
14773
+ if (notification.type === event2.detail.type && notification.position === "fixed" && notification.id !== event2.detail.id && notification.queuePosition < event2.detail.queuePosition) {
14774
14774
  notification.dismiss();
14775
14775
  }
14776
14776
  }
@@ -15015,15 +15015,15 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el);
15015
15015
  }
15016
15016
  },
15017
15017
  /* confirmation */
15018
- checkConfirmation(event) {
15018
+ checkConfirmation(event2) {
15019
15019
  if (!this.confirmed) {
15020
15020
  this.approving = true;
15021
- event.preventDefault();
15021
+ event2.preventDefault();
15022
15022
  }
15023
15023
  },
15024
- approveAndRun(event) {
15024
+ approveAndRun(event2) {
15025
15025
  if (this.approving) {
15026
- event.stopPropagation();
15026
+ event2.stopPropagation();
15027
15027
  this.confirmed = true;
15028
15028
  this.dropdown.trigger.click();
15029
15029
  this.dropdown.hide();
@@ -15031,9 +15031,9 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el);
15031
15031
  this.approving = false;
15032
15032
  }
15033
15033
  },
15034
- cancelConfirmation(event) {
15034
+ cancelConfirmation(event2) {
15035
15035
  if (this.approving) {
15036
- event.stopPropagation();
15036
+ event2.stopPropagation();
15037
15037
  this.approving = false;
15038
15038
  this.dropdown.hide();
15039
15039
  }
@@ -15183,8 +15183,8 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el);
15183
15183
  this.file = null;
15184
15184
  this.$dispatch("image-uploader:clear");
15185
15185
  },
15186
- handleDrop(event) {
15187
- const files = event.detail.files || event.dataTransfer.files;
15186
+ handleDrop(event2) {
15187
+ const files = event2.detail.files || event2.dataTransfer.files;
15188
15188
  this.handleFiles(files);
15189
15189
  },
15190
15190
  handleFiles(files) {
@@ -15210,8 +15210,91 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el);
15210
15210
  };
15211
15211
  });
15212
15212
 
15213
+ // ../../components/coco/base/modal/modal.js
15214
+ var modal_exports = {};
15215
+ __export(modal_exports, {
15216
+ default: () => modal_default
15217
+ });
15218
+ var modal_default = CocoComponent("modal", () => {
15219
+ return {
15220
+ open: false,
15221
+ frame: null,
15222
+ options: ["dismissable", "closeOnSubmit"],
15223
+ init() {
15224
+ this.onFrameSubmitEnd = this.onFrameSubmitEnd.bind(this);
15225
+ this.frame = this.$el.closest("turbo-frame");
15226
+ this.frame.addEventListener("turbo:submit-end", this.onFrameSubmitEnd);
15227
+ this.$nextTick(() => this.show());
15228
+ },
15229
+ show() {
15230
+ this.open = true;
15231
+ },
15232
+ hide() {
15233
+ this.open = false;
15234
+ setTimeout(() => this.clearFrame(), 100);
15235
+ },
15236
+ dismiss(event2) {
15237
+ if (this.$options.dismissable)
15238
+ this.hide();
15239
+ },
15240
+ clearFrame() {
15241
+ this.frame.removeAttribute("src");
15242
+ this.frame.removeAttribute("complete");
15243
+ this.frame.innerHTML = "";
15244
+ },
15245
+ onFrameSubmitEnd() {
15246
+ if (this.$options.closeOnSubmit && event.detail.success) {
15247
+ this.hide();
15248
+ }
15249
+ },
15250
+ destroy() {
15251
+ this.frame.removeEventListener("turbo:submit-end", this.onFrameSubmitEnd);
15252
+ },
15253
+ root: {
15254
+ "x-options": "options",
15255
+ "x-show": "open",
15256
+ "@keydown.escape.document": "dismiss",
15257
+ "@modal:hide.document": "hide"
15258
+ }
15259
+ };
15260
+ });
15261
+
15262
+ // ../../components/coco/base/modal_dialog/modal_dialog.js
15263
+ var modal_dialog_exports = {};
15264
+ __export(modal_dialog_exports, {
15265
+ default: () => modal_dialog_default
15266
+ });
15267
+ var modal_dialog_default = CocoComponent("modalDialog", () => {
15268
+ return {
15269
+ frame: null,
15270
+ init() {
15271
+ this.onFrameLoad = this.onFrameLoad.bind(this);
15272
+ this.frame = this.$el.closest("turbo-frame");
15273
+ if (this.frame) {
15274
+ this.frame.addEventListener("turbo:frame-load", this.onFrameLoad);
15275
+ }
15276
+ },
15277
+ close() {
15278
+ this.$dispatch("modal:hide");
15279
+ },
15280
+ onFrameLoad() {
15281
+ this.$focus.focus(this.firstInput);
15282
+ },
15283
+ destroy() {
15284
+ if (this.frame) {
15285
+ this.frame.removeEventListener("turbo:frame-load", this.onFrameLoad);
15286
+ }
15287
+ },
15288
+ get firstInput() {
15289
+ return this.$root.querySelector(
15290
+ "input:not([type=hidden]), textarea, select"
15291
+ );
15292
+ }
15293
+ };
15294
+ });
15295
+
15213
15296
  // import-glob:/Users/mark/Code/coveragebook/coco/app/assets/js/base|@baseComponents/**/*.js
15214
- var modules = [button_exports, dropdown_exports, icon_exports, image_uploader_exports];
15297
+ var modules = [button_exports, dropdown_exports, icon_exports, image_uploader_exports, modal_exports, modal_dialog_exports];
15215
15298
  var __default = modules;
15216
15299
 
15217
15300
  // base/components.js
@@ -47,7 +47,7 @@
47
47
 
48
48
  &[data-position="fixed"] {
49
49
  @apply fixed bottom-8 left-1/2 -translate-x-1/2;
50
- z-index: 1000;
50
+ z-index: 10001;
51
51
  }
52
52
 
53
53
  /* Themes */
@@ -1,6 +1,6 @@
1
1
  @layer components {
2
2
  [data-coco].coco-button {
3
- @apply inline-flex transition-colors w-auto bg-transparent text-current border border-transparent select-none flex-none;
3
+ @apply flex transition-colors w-auto bg-transparent text-current border border-transparent select-none flex-none;
4
4
  width: min-content;
5
5
 
6
6
  .button-element {
@@ -1,6 +1,6 @@
1
1
  @layer components {
2
2
  [data-coco][data-component="icon"] {
3
- @apply inline-flex flex-none w-6 h-6 text-current overflow-hidden;
3
+ @apply flex flex-none w-6 h-6 text-current overflow-hidden;
4
4
 
5
5
  svg {
6
6
  @apply icon w-full h-full;
@@ -0,0 +1,21 @@
1
+ @layer components {
2
+ [data-coco][data-component="modal"] {
3
+ @apply fixed inset-0 z-[10000] overflow-y-auto;
4
+
5
+ .modal-overlay {
6
+ @apply fixed inset-0 bg-black bg-opacity-60;
7
+ }
8
+
9
+ .modal-container {
10
+ @apply relative flex min-h-screen justify-center items-center z-[10000] p-8;
11
+ }
12
+
13
+ .modal-content {
14
+ @apply contents;
15
+ }
16
+ }
17
+
18
+ .modal-frame {
19
+ @apply contents;
20
+ }
21
+ }