@prolibu-suite/cobalt-core 0.10.2 → 0.10.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/custom-elements.json +21 -21
  2. package/dist/cjs/co-number-field.cjs.entry.js +25 -4
  3. package/dist/cjs/co-overlay.cjs.entry.js +34 -3
  4. package/dist/cjs/index-MDAnKsze.js +4 -4
  5. package/dist/cobalt/cobalt.esm.js +1 -1
  6. package/dist/cobalt/p-07416e31.entry.js +1 -0
  7. package/dist/cobalt/p-8e05b979.entry.js +1 -0
  8. package/dist/collection/components/co-autocomplete/co-autocomplete.js +1 -1
  9. package/dist/collection/components/co-avatar-group/co-avatar-group.js +1 -1
  10. package/dist/collection/components/co-checkbox-group/co-checkbox-group.js +1 -1
  11. package/dist/collection/components/co-combobox/co-combobox.js +1 -1
  12. package/dist/collection/components/co-command-search/co-command-search.js +1 -1
  13. package/dist/collection/components/co-data-table/co-data-table.js +1 -1
  14. package/dist/collection/components/co-date-range-picker/co-date-range-picker.js +2 -2
  15. package/dist/collection/components/co-number-field/co-number-field.js +25 -4
  16. package/dist/collection/components/co-overlay/backdropDismiss.js +12 -0
  17. package/dist/collection/components/co-overlay/co-overlay.js +22 -3
  18. package/dist/collection/components/co-popover/co-popover.js +1 -1
  19. package/dist/collection/components/co-radio-group/co-radio-group.js +1 -1
  20. package/dist/collection/components/co-ref-field/co-ref-field.js +4 -4
  21. package/dist/collection/components/co-segmented-bar/co-segmented-bar.js +1 -1
  22. package/dist/collection/components/co-select/co-select.js +1 -1
  23. package/dist/collection/components/co-sidebar-nav/co-sidebar-nav.js +1 -1
  24. package/dist/collection/components/co-toast/co-toast.js +2 -2
  25. package/dist/collection/components/co-transfer-list/co-transfer-list.js +1 -1
  26. package/dist/components/co-command-search.js +1 -1
  27. package/dist/components/co-date-picker.js +1 -1
  28. package/dist/components/co-date-range-picker.js +1 -1
  29. package/dist/components/co-date-range.js +1 -1
  30. package/dist/components/co-date-time-picker.js +1 -1
  31. package/dist/components/co-drawer.js +1 -1
  32. package/dist/components/co-modal.js +1 -1
  33. package/dist/components/co-number-field.js +1 -1
  34. package/dist/components/co-overlay.js +1 -1
  35. package/dist/components/p-BJh68Jqe.js +1 -0
  36. package/dist/components/{p-DxtNejr2.js → p-P4HlMBlL.js} +1 -1
  37. package/dist/components/{p-DrTRB8Ev.js → p-cndRd_-U.js} +1 -1
  38. package/dist/esm/co-number-field.entry.js +25 -4
  39. package/dist/esm/co-overlay.entry.js +34 -3
  40. package/dist/esm/index-DH5lfRNj.js +4 -4
  41. package/dist/types/components/co-number-field/co-number-field.d.ts +7 -0
  42. package/dist/types/components/co-overlay/backdropDismiss.d.ts +10 -0
  43. package/dist/types/components/co-overlay/co-overlay.d.ts +4 -0
  44. package/package.json +4 -4
  45. package/dist/cobalt/p-2a30c143.entry.js +0 -1
  46. package/dist/cobalt/p-be34e447.entry.js +0 -1
  47. package/dist/components/p-CBTGN490.js +0 -1
@@ -49,6 +49,13 @@ export declare class CoNumberField {
49
49
  */
50
50
  suffix?: string;
51
51
  focused: boolean;
52
+ /**
53
+ * El usuario VACIÓ un campo no-clearable (borró todo el texto). Sin clearable
54
+ * el vacío no se emite mientras se tipea (sigue editando), pero al salir
55
+ * commitea el piso (`min ?? 0`, handleBlur) — antes el blur repintaba el valor
56
+ * anterior y el borrado se perdía. Un campo que NACE vacío no levanta la marca.
57
+ */
58
+ private emptiedByUser;
52
59
  el: HTMLElement;
53
60
  coChange: EventEmitter<number | null>;
54
61
  /** Emitted when the clear button is clicked */
@@ -0,0 +1,10 @@
1
+ /**
2
+ * ¿Un `click` sobre el fondo del overlay es un gesto de cierre?
3
+ *
4
+ * El navegador despacha `click` al ANCESTRO COMÚN de donde empezó y donde
5
+ * terminó la pulsación: seleccionar texto dentro de un modal y soltar fuera
6
+ * producía un `click` en el fondo y cerraba el modal (con lo editado adentro).
7
+ * Solo cuenta si la pulsación entera —down, up y click— ocurrió sobre el MISMO
8
+ * elemento (`composedPath()[0]`, para ver a través de shadow roots).
9
+ */
10
+ export declare function isBackdropDismiss(downTarget: EventTarget | null, upTarget: EventTarget | null, clickTarget: EventTarget | null): boolean;
@@ -50,6 +50,10 @@ export declare class CoOverlay {
50
50
  private deepActiveElement;
51
51
  handleKeydown(e: KeyboardEvent): void;
52
52
  private trapTab;
53
+ private pressDownTarget;
54
+ private pressUpTarget;
55
+ private handlePointerDown;
56
+ private handlePointerUp;
53
57
  private handleClick;
54
58
  private handleTransitionEnd;
55
59
  render(): any;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prolibu-suite/cobalt-core",
3
- "version": "0.10.2",
3
+ "version": "0.10.3",
4
4
  "description": "Cobalt Design System — Framework-agnostic Web Components built with Stencil",
5
5
  "main": "dist/index.cjs.js",
6
6
  "module": "dist/index.js",
@@ -50,10 +50,10 @@
50
50
  "@phosphor-icons/core": "^2.1.1",
51
51
  "dompurify": "^3.2.6",
52
52
  "overlayscrollbars": "^2.16.0",
53
- "@prolibu-suite/cobalt-calendar-utils": "0.1.0",
54
53
  "@prolibu-suite/cobalt-rich-text": "0.1.3",
55
- "@prolibu-suite/cobalt-date-utils": "0.1.1",
56
- "@prolibu-suite/cobalt-tokens": "0.5.0"
54
+ "@prolibu-suite/cobalt-calendar-utils": "0.1.0",
55
+ "@prolibu-suite/cobalt-tokens": "0.5.0",
56
+ "@prolibu-suite/cobalt-date-utils": "0.1.1"
57
57
  },
58
58
  "devDependencies": {
59
59
  "@stencil/core": "^4.43.4",
@@ -1 +0,0 @@
1
- import{r as e,c as i,h as t,a as r}from"./p-DH5lfRNj.js";import{R as o}from"./p-fMqVDypp.js";const n=(e,i)=>({integer:e.slice(0,15),decimals:i.slice(0,8)});function s(e,i=!1){const t=String(null!=e?e:""),r=i&&/^\s*-/.test(t),o=t.replace(/[^\d.]/g,""),[s,...c]=o.split("."),{integer:a,decimals:l}=n(s,c.join("")),d=c.length?`${a}.${l}`:a;return d?r?`-${d}`:d:r?"-":""}function c(e){if(!e)return"";const i=e.startsWith("-"),t=i?e.slice(1):e,r=t.indexOf("."),o=r>=0?t.slice(0,r):t,n=r>=0?t.slice(r):"";let s="";for(let e=0;e<o.length;e++)e>0&&(o.length-e)%3==0&&(s+=","),s+=o[e];return`${i?"-":""}${s}${n}`}const a=/[^0-9.,-]/g,l=/[0-9.-]/,d=e=>{let i=0;for(const t of e)l.test(t)&&i++;return i},u=(e,i)=>{if(i<=0)return 0;let t=0;for(let r=0;r<e.length;r++)if(l.test(e[r])&&(t++,t===i))return r+1;return e.length},h=class{constructor(t){e(this,t),this.coChange=i(this,"coChange",7),this.coClear=i(this,"coClear",7),this.required=!1,this.layout="vertical",this.status="default",this.value=0,this.step=1,this.disabled=!1,this.placeholder="0",this.size="md",this.clearable=!1,this.hideControls=!1,this.focused=!1,this.handleDecrement=()=>{this.canDecrement&&(this.emitValue(this.current-this.step),this.syncInputText())},this.handleIncrement=()=>{this.canIncrement&&(this.emitValue(this.current+this.step),this.syncInputText())},this.handleInput=e=>{var i;const t=e.target;if(this.isAmount)return void this.handleAmountInput(t);let r=t.value;const o=r.replace(a,"");if(o!==r){const e=(null!==(i=t.selectionStart)&&void 0!==i?i:r.length)-(r.length-o.length);t.value=o;const n=e<0?0:e;t.setSelectionRange(n,n),r=o}if(""===r)return void(this.clearable&&(this.value=null,this.coChange.emit(null)));if("-"===r)return;const n=parseFloat(r);isNaN(n)||this.emitValue(this.fromDisplay(n))},this.handlePaste=e=>{var i,t,r,o;if(!this.isAmount)return;e.preventDefault();const a=e.target,l=null!==(t=null===(i=e.clipboardData)||void 0===i?void 0:i.getData("text"))&&void 0!==t?t:"";let h=function(e){const i=String(null!=e?e:"").replace(/[^\d.,]/g,"");if(!i)return"";const t=i.lastIndexOf("."),r=i.lastIndexOf(",");let o=-1;if(t>=0&&r>=0)o=Math.max(t,r);else if(t>=0||r>=0){const e=t>=0?".":",",r=i.split(e);2===r.length&&3!==r[1].length&&(o=i.lastIndexOf(e))}const{integer:s,decimals:c}=n((o>=0?i.slice(0,o):i).replace(/[.,]/g,""),o>=0?i.slice(o+1).replace(/[.,]/g,""):"");return s||c?c?`${s||"0"}.${c}`:s:""}(l);h&&this.allowNegative&&/^\s*-/.test(l)&&(h=`-${h}`);const f=null!==(r=a.selectionStart)&&void 0!==r?r:a.value.length,b=null!==(o=a.selectionEnd)&&void 0!==o?o:f,m=s(a.value.slice(0,f),this.allowNegative),p=s(a.value.slice(b)),_=s(m+h+p,this.allowNegative),g=c(_);a.value=g;const v=u(g,d(m+h));if(a.setSelectionRange(v,v),""===_||"-"===_)return void(""===_&&this.clearable&&(this.value=null,this.coChange.emit(null)));const x=parseFloat(_);isNaN(x)||this.emitValue(x)},this.handleClear=()=>{var e;this.value=null,this.syncInputText(),this.coClear.emit(),this.coChange.emit(null),null===(e=this.inputEl)||void 0===e||e.focus()},this.handleBlur=()=>{this.focused=!1,this.isEmpty||this.emitValue(this.value),this.syncInputText()},this.handleFocus=()=>{this.focused=!0},this.handleKeyDown=e=>{"ArrowUp"===e.key?(e.preventDefault(),this.handleIncrement()):"ArrowDown"===e.key&&(e.preventDefault(),this.handleDecrement())}}onValueChange(){this.inputEl&&!this.focused&&this.inputEl.value!==this.displayValue&&(this.inputEl.value=this.displayValue)}get isEmpty(){return null==this.value||Number.isNaN(this.value)}get current(){var e;return this.isEmpty?null!==(e=this.min)&&void 0!==e?e:0:this.value}get statusIcon(){return{error:"warning-circle",success:"check-circle",warning:"warning",info:"info"}[this.status]||null}get canDecrement(){return!this.disabled&&(void 0===this.min||this.current>this.min)}get canIncrement(){return!this.disabled&&(void 0===this.max||this.current<this.max)}clamp(e){return void 0!==this.min&&e<this.min?this.min:void 0!==this.max&&e>this.max?this.max:e}get scaled(){return"rate"===this.format||"percent"===this.format}get isAmount(){return"amount"===this.format}get allowNegative(){return void 0===this.min||this.min<0}get displayValue(){if(this.isEmpty)return"";const e=String(this.toDisplay(this.value));return this.isAmount?c(e):e}toDisplay(e){return this.scaled?Number((100*e).toFixed(6)):e}fromDisplay(e){return this.scaled?e/100:e}emitValue(e){const i=this.clamp(e);this.value=i,this.coChange.emit(i)}handleAmountInput(e){var i;const t=e.value,r=null!==(i=e.selectionStart)&&void 0!==i?i:t.length,o=d(t.slice(0,r)),n=s(t,this.allowNegative),a=c(n);if(e.value!==a){e.value=a;const i=u(a,o);e.setSelectionRange(i,i)}if(""===n)return void(this.clearable&&(this.value=null,this.coChange.emit(null)));if("-"===n)return;const l=parseFloat(n);isNaN(l)||this.emitValue(l)}syncInputText(){this.inputEl&&this.inputEl.value!==this.displayValue&&(this.inputEl.value=this.displayValue)}get affixText(){return void 0!==this.suffix?this.suffix||null:this.scaled&&!this.isEmpty?"%":null}render(){return t("div",{key:"1bcd7e60596bc28f5159f86a026d69d0d053f038",class:{"co-number-field":!0,"co-number-field--disabled":this.disabled,"co-number-field--focused":this.focused,[`co-number-field--${this.size}`]:!0,[`co-number-field--${this.status}`]:"default"!==this.status}},(this.label||this.secondaryLabel)&&t("div",{key:"aca2d9958374940304e05495ae05e74d627154c7",class:"co-number-field__labels"},this.label&&t("label",{key:"8cf05675830ad181005430526785984acc793d0b",class:"co-number-field__label"},this.label,t(o,{key:"36aed2cf48890cf79506416d0c45f272ed329664",required:this.required})),this.secondaryLabel&&t("span",{key:"636111436e1e3fff8d74fb4b9412c2192c93495a",class:"co-number-field__secondary-label"},this.secondaryLabel)),t("div",{key:"6cbbb87a304cd9e415aafda276daede8dbe0b6a7",class:"co-number-field__row",part:"row"},!this.hideControls&&t("button",{key:"e11dfc41ee97b3287908877aa74f732a4cbe31fe",class:"co-number-field__btn co-number-field__btn--minus",type:"button",tabIndex:-1,disabled:!this.canDecrement,onClick:this.handleDecrement,"aria-label":"Decrease"},t("co-icon",{key:"3f369b4d8293e9e987d18ba58fa1f010bd538016",name:"minus",size:16})),t("input",{key:"8144b563cd4ae46774adbf224c45fa59378da4c7",ref:e=>this.inputEl=e,class:"co-number-field__input",type:"text",inputMode:"decimal",value:this.focused&&this.inputEl?this.inputEl.value:this.displayValue,placeholder:this.placeholder,disabled:this.disabled,onInput:this.handleInput,onPaste:this.handlePaste,onFocus:this.handleFocus,onBlur:this.handleBlur,onKeyDown:this.handleKeyDown,part:"input"}),this.affixText&&t("span",{key:"56e8b3a225f2332f9c3974ec195b63b3681d5b09",class:"co-number-field__affix","aria-hidden":"true"},this.affixText),this.clearable&&!this.isEmpty&&!this.disabled&&t("button",{key:"ea8325f7097c5b0b87bd51554163d44bdfe379ff",class:"co-number-field__clear",type:"button",tabIndex:-1,onClick:this.handleClear,"aria-label":"Clear"},t("co-icon",{key:"c72d4e3a039752fbcf7cf4594421d24bc2f0570a",name:"x-circle",size:16,weight:"fill"})),t("slot",{key:"2a3dc1b5a3e22ade3db02389178dd4ae3b1d3295",name:"suffix"}),!this.hideControls&&t("button",{key:"3b9bf39d86c7aacb212576dc4cf4af548b56fbed",class:"co-number-field__btn co-number-field__btn--plus",type:"button",tabIndex:-1,disabled:!this.canIncrement,onClick:this.handleIncrement,"aria-label":"Increase"},t("co-icon",{key:"1655aaca9e66b51c0d97fc128c132326d3c740ad",name:"plus",size:16}))),this.helperText&&t("div",{key:"397b37569cabdf68072d870b5e5781f7d39da8fe",class:`co-number-field__helper co-number-field__helper--${this.status}`},this.statusIcon&&t("co-icon",{key:"b574fddca9813af3e208ea3e9258480a992fd4f2",name:this.statusIcon,size:14,weight:"fill",class:"co-number-field__helper-icon"}),t("span",{key:"d17a39a82108f12100dee523d7754b50f147bb63",class:"co-number-field__helper-text"},this.helperText)))}get el(){return r(this)}static get watchers(){return{value:[{onValueChange:0}]}}};h.style=":host{display:block;font-family:var(--co-font-family-primary);font-size:var(--co-font-size-14);letter-spacing:var(--co-font-letter-spacing-body);line-height:1}.co-number-field{display:flex;flex-direction:column;gap:var(--co-spacing-sm2)}.co-number-field__labels{display:flex;align-items:center;justify-content:space-between;padding:0 var(--co-spacing-xs);gap:var(--co-spacing-sm2)}.co-number-field__label{color:var(--co-semantic-text-secondary);font-size:var(--co-font-size-14);font-weight:400;line-height:1;white-space:nowrap;cursor:default}.co-number-field__secondary-label{color:var(--co-semantic-text-muted);font-size:var(--co-font-size-14);font-weight:400;line-height:1;white-space:nowrap;text-align:right}.co-number-field--disabled .co-number-field__label,.co-number-field--disabled .co-number-field__secondary-label{color:var(--co-semantic-text-disabled)}.co-number-field__row{display:flex;align-items:center;gap:0;background:var(--co-semantic-surface-page);border:1px solid var(--co-semantic-border-field);border-radius:var(--co-border-radius-xs);min-height:40px;overflow:hidden;box-sizing:border-box;transition:border-color var(--co-motion-duration-fast) var(--co-motion-ease-out), box-shadow var(--co-motion-duration-fast) var(--co-motion-ease-out)}.co-number-field--s .co-number-field__row{min-height:28px}.co-number-field--s .co-number-field__btn{width:28px}.co-number-field--sm .co-number-field__row{min-height:32px}.co-number-field--sm .co-number-field__btn{width:32px}.co-number-field--lg .co-number-field__row{min-height:48px}.co-number-field--lg .co-number-field__btn{width:48px}.co-number-field--focused .co-number-field__row{border-color:var(--co-semantic-border-focus);box-shadow:0 0 0 2px var(--co-semantic-border-focus-ring)}.co-number-field--disabled .co-number-field__row{background:var(--co-semantic-surface-disabled);border-color:transparent}.co-number-field--error .co-number-field__row{border-color:var(--co-semantic-status-error)}.co-number-field--success .co-number-field__row{border-color:var(--co-semantic-status-success)}.co-number-field--warning .co-number-field__row{border-color:var(--co-color-status-review)}.co-number-field--info .co-number-field__row{border-color:var(--co-semantic-status-info)}.co-number-field__btn{display:flex;align-items:center;justify-content:center;width:40px;align-self:stretch;flex-shrink:0;border:none;background:transparent;color:var(--co-semantic-text-default);cursor:pointer;padding:0;transition:background var(--co-motion-duration-fast) var(--co-motion-ease-out)}.co-number-field__btn:hover:not(:disabled){background:var(--co-semantic-surface-hover)}.co-number-field__btn:active:not(:disabled){background:var(--co-semantic-surface-muted)}.co-number-field__btn:disabled{color:var(--co-semantic-text-disabled);cursor:not-allowed}.co-number-field__btn--minus{border-right:1px solid var(--co-semantic-border-subtle)}.co-number-field__btn--plus{border-left:1px solid var(--co-semantic-border-subtle)}.co-number-field__clear{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:24px;height:100%;padding:0;border:none;background:transparent;color:var(--co-semantic-text-muted);cursor:pointer;transition:color var(--co-motion-duration-fast) var(--co-motion-ease-out)}.co-number-field__clear:hover{color:var(--co-semantic-text-default)}.co-number-field__input{flex:1;min-width:0;border:none;background:transparent;text-align:center;color:var(--co-semantic-text-default);font-family:inherit;font-size:inherit;font-weight:400;line-height:1;padding:var(--co-spacing-sm2) var(--co-spacing-sm2);outline:none;-moz-appearance:textfield}.co-number-field__input::placeholder{color:var(--co-semantic-text-muted)}.co-number-field__affix{flex-shrink:0;padding-right:var(--co-spacing-sm2);color:var(--co-semantic-text-muted);font-size:inherit;font-weight:400;line-height:1;pointer-events:none;user-select:none}::slotted([slot='suffix']){flex-shrink:0;margin-right:var(--co-spacing-xxs)}:host([hide-controls]) .co-number-field__input{text-align:right;padding-left:var(--co-spacing-md);padding-right:var(--co-spacing-md)}:host([hide-controls]) .co-number-field__affix{padding-right:var(--co-spacing-md);font-size:var(--co-font-size-12)}.co-number-field__input::-webkit-outer-spin-button,.co-number-field__input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.co-number-field--disabled .co-number-field__input{color:var(--co-semantic-text-disabled);cursor:not-allowed}.co-number-field__helper{display:flex;align-items:center;gap:var(--co-spacing-xs);padding:0 var(--co-spacing-xs)}.co-number-field__helper-icon{flex-shrink:0;display:flex;align-items:center}.co-number-field__helper-text{color:var(--co-semantic-text-muted);font-size:var(--co-font-size-14);font-weight:400;line-height:1}.co-number-field__helper--error .co-number-field__helper-icon,.co-number-field__helper--error .co-number-field__helper-text{color:var(--co-semantic-status-error)}.co-number-field__helper--success .co-number-field__helper-icon,.co-number-field__helper--success .co-number-field__helper-text{color:var(--co-semantic-status-success)}.co-number-field__helper--warning .co-number-field__helper-icon,.co-number-field__helper--warning .co-number-field__helper-text{color:var(--co-color-status-review)}.co-number-field__helper--info .co-number-field__helper-icon,.co-number-field__helper--info .co-number-field__helper-text{color:var(--co-semantic-status-info)}:host([layout='horizontal']) .co-number-field{display:grid;grid-template-columns:var(--co-field-label-width, max-content) 1fr;align-items:start;column-gap:var(--co-spacing-md);row-gap:var(--co-spacing-sm2)}:host([layout='horizontal']) .co-number-field__labels{grid-column:1;grid-row:1;padding-top:var(--co-spacing-sm2);min-width:0}:host([layout='horizontal']) .co-number-field__label{white-space:normal}:host([layout='horizontal']) .co-number-field>:not(.co-number-field__labels){grid-column:2;min-width:0}.co-field-required{margin-left:2px;color:var(--co-color-status-error)}.co-field-required__caption{margin-left:4px;color:var(--co-semantic-text-muted);font-size:var(--co-font-size-12);font-weight:400}.co-field-required__caption::before{content:var(--co-field-required-text, ' (required)')}";export{h as co_number_field}
@@ -1 +0,0 @@
1
- import{r as t,c as e,h as o,a as i}from"./p-DH5lfRNj.js";import{a as n}from"./p-Ch1jfwZ2.js";const s=["a[href]","area[href]","button:not([disabled])",'input:not([disabled]):not([type="hidden"])',"select:not([disabled])","textarea:not([disabled])","iframe","audio[controls]","video[controls]",'[contenteditable]:not([contenteditable="false"])','[tabindex]:not([tabindex="-1"])'].join(",");function r(t){return Array.from(t.querySelectorAll(s)).filter((t=>!t.hasAttribute("disabled")&&"true"!==t.getAttribute("aria-hidden")&&(null!==t.offsetParent||t.getClientRects().length>0)))}let a=0,c="";const h=class{constructor(o){t(this,o),this.coClose=e(this,"coClose",7),this.coAfterClose=e(this,"coAfterClose",3),this.coAfterOpen=e(this,"coAfterOpen",3),this.open=!1,this.trapFocus=!1,this.closeOnEscape=!1,this.hasLock=!1,this.handleClick=()=>{this.coClose.emit()},this.handleTransitionEnd=t=>{if(t.target!==this.overlayEl)return;const e=n(t.propertyName,this.open,"opacity");"after-open"===e?this.coAfterOpen.emit():"after-close"===e&&this.coAfterClose.emit()}}onOpenChange(t){t?this.acquireLock():this.releaseLock(),this.syncPopover(),this.trapFocus&&(t?this.captureAndFocus():this.restoreFocus())}componentDidLoad(){this.open&&this.acquireLock(),this.syncPopover(),this.open&&this.trapFocus&&this.captureAndFocus()}disconnectedCallback(){this.releaseLock(),this.trapFocus&&this.restoreFocus()}acquireLock(){this.hasLock||(this.hasLock=!0,"undefined"!=typeof document&&(0===a&&(c=document.body.style.overflow,document.body.style.overflow="hidden"),a++))}releaseLock(){this.hasLock&&(this.hasLock=!1,"undefined"!=typeof document&&0!==a&&(a--,0===a&&(document.body.style.overflow=c)))}syncPopover(){const t=this.overlayEl;if(t&&"function"==typeof t.showPopover)try{const e=t.matches(":popover-open");this.open&&!e?t.showPopover():!this.open&&e&&t.hidePopover()}catch(t){}}captureAndFocus(){var t;"undefined"!=typeof document&&(this.returnFocusEl=document.activeElement),t=()=>{var t;if(!this.open)return;const e=r(this.el);e.length>0?e[0].focus():null===(t=this.overlayEl)||void 0===t||t.focus()},"function"==typeof requestAnimationFrame?requestAnimationFrame(t):t()}restoreFocus(){const t=this.returnFocusEl;this.returnFocusEl=null,t&&"function"==typeof t.focus&&t.focus()}deepActiveElement(){if("undefined"==typeof document)return null;let t=document.activeElement;for(;t&&t.shadowRoot&&t.shadowRoot.activeElement;)t=t.shadowRoot.activeElement;return t}handleKeydown(t){this.open&&(this.closeOnEscape&&"Escape"===t.key?this.coClose.emit():this.trapFocus&&"Tab"===t.key&&this.trapTab(t))}trapTab(t){var e;const o=r(this.el);if(0===o.length)return t.preventDefault(),void(null===(e=this.overlayEl)||void 0===e||e.focus());const i=o.indexOf(this.deepActiveElement()),n=function(t,e,o){return t<=0?-1:o?e<=0?t-1:e-1:-1===e||e>=t-1?0:e+1}(o.length,i,t.shiftKey);n<0||(t.preventDefault(),o[n].focus())}render(){return o("div",{key:"4fafc87768eca581018ff578875b2362cf5297d2",class:{"co-overlay":!0,"co-overlay--open":this.open},part:"overlay",popover:"manual",tabindex:this.trapFocus?-1:void 0,ref:t=>this.overlayEl=t,onClick:this.handleClick,onTransitionEnd:this.handleTransitionEnd},o("slot",{key:"2d18410bb6774701806101d38b6d41293b0e7ff9"}))}get el(){return i(this)}static get watchers(){return{open:[{onOpenChange:0}]}}};h.style=":host{display:contents}.co-overlay{position:fixed;inset:0;z-index:1000;margin:0;border:0;padding:0;width:auto;height:auto;max-width:none;max-height:none;overflow:visible;display:flex;align-items:center;justify-content:center;background:var(--co-overlay-bg, rgba(0, 0, 0, 0.4));-webkit-backdrop-filter:blur(var(--co-overlay-blur, 2px));backdrop-filter:blur(var(--co-overlay-blur, 2px));opacity:0;pointer-events:none;transition:opacity var(--co-motion-duration-fast) var(--co-motion-ease-in)}.co-overlay--open{opacity:1;pointer-events:auto;transition:opacity var(--co-motion-duration-base) var(--co-motion-ease-out)}";export{h as co_overlay}
@@ -1 +0,0 @@
1
- import{t,p as e,H as o,c as n,h as i}from"./index.js";function s(t,e,o){return t!==o?null:e?"after-open":"after-close"}const a=["a[href]","area[href]","button:not([disabled])",'input:not([disabled]):not([type="hidden"])',"select:not([disabled])","textarea:not([disabled])","iframe","audio[controls]","video[controls]",'[contenteditable]:not([contenteditable="false"])','[tabindex]:not([tabindex="-1"])'].join(",");function r(t){return Array.from(t.querySelectorAll(a)).filter((t=>!t.hasAttribute("disabled")&&"true"!==t.getAttribute("aria-hidden")&&(null!==t.offsetParent||t.getClientRects().length>0)))}let c=0,d="";const h=e(class extends o{constructor(t){super(),!1!==t&&this.__registerHost(),this.__attachShadow(),this.coClose=n(this,"coClose",7),this.coAfterClose=n(this,"coAfterClose",3),this.coAfterOpen=n(this,"coAfterOpen",3),this.open=!1,this.trapFocus=!1,this.closeOnEscape=!1,this.hasLock=!1,this.handleClick=()=>{this.coClose.emit()},this.handleTransitionEnd=t=>{if(t.target!==this.overlayEl)return;const e=s(t.propertyName,this.open,"opacity");"after-open"===e?this.coAfterOpen.emit():"after-close"===e&&this.coAfterClose.emit()}}onOpenChange(t){t?this.acquireLock():this.releaseLock(),this.syncPopover(),this.trapFocus&&(t?this.captureAndFocus():this.restoreFocus())}componentDidLoad(){this.open&&this.acquireLock(),this.syncPopover(),this.open&&this.trapFocus&&this.captureAndFocus()}disconnectedCallback(){this.releaseLock(),this.trapFocus&&this.restoreFocus()}acquireLock(){this.hasLock||(this.hasLock=!0,"undefined"!=typeof document&&(0===c&&(d=document.body.style.overflow,document.body.style.overflow="hidden"),c++))}releaseLock(){this.hasLock&&(this.hasLock=!1,"undefined"!=typeof document&&0!==c&&(c--,0===c&&(document.body.style.overflow=d)))}syncPopover(){const t=this.overlayEl;if(t&&"function"==typeof t.showPopover)try{const e=t.matches(":popover-open");this.open&&!e?t.showPopover():!this.open&&e&&t.hidePopover()}catch(t){}}captureAndFocus(){var t;"undefined"!=typeof document&&(this.returnFocusEl=document.activeElement),t=()=>{var t;if(!this.open)return;const e=r(this.el);e.length>0?e[0].focus():null===(t=this.overlayEl)||void 0===t||t.focus()},"function"==typeof requestAnimationFrame?requestAnimationFrame(t):t()}restoreFocus(){const t=this.returnFocusEl;this.returnFocusEl=null,t&&"function"==typeof t.focus&&t.focus()}deepActiveElement(){if("undefined"==typeof document)return null;let t=document.activeElement;for(;t&&t.shadowRoot&&t.shadowRoot.activeElement;)t=t.shadowRoot.activeElement;return t}handleKeydown(t){this.open&&(this.closeOnEscape&&"Escape"===t.key?this.coClose.emit():this.trapFocus&&"Tab"===t.key&&this.trapTab(t))}trapTab(t){var e;const o=r(this.el);if(0===o.length)return t.preventDefault(),void(null===(e=this.overlayEl)||void 0===e||e.focus());const n=o.indexOf(this.deepActiveElement()),i=function(t,e,o){return t<=0?-1:o?e<=0?t-1:e-1:-1===e||e>=t-1?0:e+1}(o.length,n,t.shiftKey);i<0||(t.preventDefault(),o[i].focus())}render(){return i("div",{key:"4fafc87768eca581018ff578875b2362cf5297d2",class:{"co-overlay":!0,"co-overlay--open":this.open},part:"overlay",popover:"manual",tabindex:this.trapFocus?-1:void 0,ref:t=>this.overlayEl=t,onClick:this.handleClick,onTransitionEnd:this.handleTransitionEnd},i("slot",{key:"2d18410bb6774701806101d38b6d41293b0e7ff9"}))}get el(){return this}static get watchers(){return{open:[{onOpenChange:0}]}}static get style(){return":host{display:contents}.co-overlay{position:fixed;inset:0;z-index:1000;margin:0;border:0;padding:0;width:auto;height:auto;max-width:none;max-height:none;overflow:visible;display:flex;align-items:center;justify-content:center;background:var(--co-overlay-bg, rgba(0, 0, 0, 0.4));-webkit-backdrop-filter:blur(var(--co-overlay-blur, 2px));backdrop-filter:blur(var(--co-overlay-blur, 2px));opacity:0;pointer-events:none;transition:opacity var(--co-motion-duration-fast) var(--co-motion-ease-in)}.co-overlay--open{opacity:1;pointer-events:auto;transition:opacity var(--co-motion-duration-base) var(--co-motion-ease-out)}"}},[257,"co-overlay",{open:[1540],trapFocus:[516,"trap-focus"],closeOnEscape:[516,"close-on-escape"]},[[4,"keydown","handleKeydown"]],{open:[{onOpenChange:0}]}]);function l(){"undefined"!=typeof customElements&&["co-overlay"].forEach((e=>{"co-overlay"===e&&(customElements.get(t(e))||customElements.define(t(e),h))}))}l();export{h as C,s as a,l as d}