@aquera/nile-elements 1.4.8-beta-1.0 → 1.4.8-beta-1.2

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 (65) hide show
  1. package/README.md +4 -0
  2. package/demo/index.html +133 -33
  3. package/dist/index.cjs.js +1 -1
  4. package/dist/index.esm.js +1 -1
  5. package/dist/index.js +98 -71
  6. package/dist/nile-file-preview/nile-file-preview.css.cjs.js +1 -1
  7. package/dist/nile-file-preview/nile-file-preview.css.cjs.js.map +1 -1
  8. package/dist/nile-file-preview/nile-file-preview.css.esm.js +7 -3
  9. package/dist/nile-file-preview/nile-file-preview.template.cjs.js +1 -1
  10. package/dist/nile-file-preview/nile-file-preview.template.cjs.js.map +1 -1
  11. package/dist/nile-file-preview/nile-file-preview.template.esm.js +73 -64
  12. package/dist/nile-lite-tooltip/nile-lite-tooltip.cjs.js +1 -1
  13. package/dist/nile-lite-tooltip/nile-lite-tooltip.cjs.js.map +1 -1
  14. package/dist/nile-lite-tooltip/nile-lite-tooltip.esm.js +1 -1
  15. package/dist/nile-option/nile-option.cjs.js +1 -1
  16. package/dist/nile-option/nile-option.cjs.js.map +1 -1
  17. package/dist/nile-option/nile-option.css.cjs.js +1 -1
  18. package/dist/nile-option/nile-option.css.cjs.js.map +1 -1
  19. package/dist/nile-option/nile-option.css.esm.js +10 -0
  20. package/dist/nile-option/nile-option.esm.js +10 -7
  21. package/dist/nile-side-bar-action/index.cjs.js +1 -1
  22. package/dist/nile-side-bar-action/index.esm.js +1 -1
  23. package/dist/nile-side-bar-action/nile-side-bar-action.cjs.js +1 -1
  24. package/dist/nile-side-bar-action/nile-side-bar-action.cjs.js.map +1 -1
  25. package/dist/nile-side-bar-action/nile-side-bar-action.esm.js +4 -3
  26. package/dist/nile-side-bar-action/portal-manager.cjs.js +2 -0
  27. package/dist/nile-side-bar-action/portal-manager.cjs.js.map +1 -0
  28. package/dist/nile-side-bar-action/portal-manager.esm.js +1 -0
  29. package/dist/nile-side-bar-action/portal-utils.cjs.js +2 -0
  30. package/dist/nile-side-bar-action/portal-utils.cjs.js.map +1 -0
  31. package/dist/nile-side-bar-action/portal-utils.esm.js +1 -0
  32. package/dist/src/nile-file-preview/nile-file-preview.css.js +7 -3
  33. package/dist/src/nile-file-preview/nile-file-preview.css.js.map +1 -1
  34. package/dist/src/nile-file-preview/nile-file-preview.template.js +46 -37
  35. package/dist/src/nile-file-preview/nile-file-preview.template.js.map +1 -1
  36. package/dist/src/nile-lite-tooltip/nile-lite-tooltip.d.ts +2 -0
  37. package/dist/src/nile-lite-tooltip/nile-lite-tooltip.js +15 -0
  38. package/dist/src/nile-lite-tooltip/nile-lite-tooltip.js.map +1 -1
  39. package/dist/src/nile-option/nile-option.css.js +10 -0
  40. package/dist/src/nile-option/nile-option.css.js.map +1 -1
  41. package/dist/src/nile-option/nile-option.d.ts +1 -0
  42. package/dist/src/nile-option/nile-option.js +13 -5
  43. package/dist/src/nile-option/nile-option.js.map +1 -1
  44. package/dist/src/nile-side-bar-action/nile-side-bar-action.d.ts +8 -1
  45. package/dist/src/nile-side-bar-action/nile-side-bar-action.js +66 -12
  46. package/dist/src/nile-side-bar-action/nile-side-bar-action.js.map +1 -1
  47. package/dist/src/nile-side-bar-action/portal-manager.d.ts +43 -0
  48. package/dist/src/nile-side-bar-action/portal-manager.js +374 -0
  49. package/dist/src/nile-side-bar-action/portal-manager.js.map +1 -0
  50. package/dist/src/nile-side-bar-action/portal-utils.d.ts +32 -0
  51. package/dist/src/nile-side-bar-action/portal-utils.js +212 -0
  52. package/dist/src/nile-side-bar-action/portal-utils.js.map +1 -0
  53. package/dist/src/version.js +1 -1
  54. package/dist/src/version.js.map +1 -1
  55. package/dist/tsconfig.tsbuildinfo +1 -1
  56. package/package.json +1 -1
  57. package/src/nile-file-preview/nile-file-preview.css.ts +7 -3
  58. package/src/nile-file-preview/nile-file-preview.template.ts +46 -37
  59. package/src/nile-lite-tooltip/nile-lite-tooltip.ts +15 -0
  60. package/src/nile-option/nile-option.css.ts +10 -0
  61. package/src/nile-option/nile-option.ts +11 -5
  62. package/src/nile-side-bar-action/nile-side-bar-action.ts +74 -15
  63. package/src/nile-side-bar-action/portal-manager.ts +489 -0
  64. package/src/nile-side-bar-action/portal-utils.ts +270 -0
  65. package/vscode-html-custom-data.json +22 -3
@@ -1,4 +1,4 @@
1
- import{__decorate as t}from"tslib";import{html as i}from"lit";import{query as s,property as e,customElement as o}from"lit/decorators.js";import{classMap as n}from"lit/directives/class-map.js";import{s as h}from"./nile-side-bar-action.css.esm.js";import{N as a}from"../internal/nile-element.esm.js";import{s as r,a as d}from"../internal/animate.esm.js";import{s as l,g as p}from"../utilities/animation-registry.esm.js";import{g as c}from"../internal/tabbable.esm.js";import{w as m}from"../internal/event.esm.js";import{w as u}from"../internal/watch.esm.js";import"../nile-popup/nile-popup.esm.js";import"../floating-ui.dom-cc9126da.esm.js";import"../nile-popup/nile-popup.css.esm.js";let w=class extends a{constructor(){super(...arguments),this.open=!1,this.placement="bottom-start",this.disabled=!1,this.stayOpenOnSelect=!1,this.distance=0,this.skidding=0,this.hoist=!1,this.triggerDropdown="click"}connectedCallback(){super.connectedCallback(),this.handlePanelSelect=this.handlePanelSelect.bind(this),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleDocumentKeyDown=this.handleDocumentKeyDown.bind(this),this.handleDocumentMouseDown=this.handleDocumentMouseDown.bind(this),this.handleTriggerMouseEnter=this.handleTriggerMouseEnter.bind(this),this.handleTriggerMouseLeave=this.handleTriggerMouseLeave.bind(this),this.containingElement||(this.containingElement=this),this.emit("nile-init")}firstUpdated(){if(this.panel.hidden=!this.open,"hover"===this.triggerDropdown){const t=this.trigger;t&&(t.addEventListener("mouseenter",this.handleTriggerMouseEnter),t.addEventListener("mouseleave",this.handleTriggerMouseLeave)),this.panel&&(this.panel.addEventListener("mouseenter",this.handleTriggerMouseEnter),this.panel.addEventListener("mouseleave",this.handleTriggerMouseLeave))}this.open&&(this.addOpenListeners(),this.popup.active=!0)}handleTriggerMouseEnter(){clearTimeout(this.hoverTimeout),this.show()}handleTriggerMouseLeave(){clearTimeout(this.hoverTimeout),this.hoverTimeout=window.setTimeout((()=>this.hide()),200)}disconnectedCallback(){super.disconnectedCallback(),this.removeOpenListeners(),this.hide(),this.emit("nile-destroy")}focusOnTrigger(){const t=this.trigger.assignedElements({flatten:!0})[0];"function"==typeof t?.focus&&t.focus()}getMenu(){return this.panel.assignedElements({flatten:!0}).find((t=>"nile-menu"===t.tagName.toLowerCase()))}handleKeyDown(t){this.open&&"Escape"===t.key&&(t.stopPropagation(),this.hide(),this.focusOnTrigger())}handleDocumentKeyDown(t){if("Escape"===t.key&&this.open)return t.stopPropagation(),this.focusOnTrigger(),void this.hide();"Tab"===t.key&&setTimeout((()=>{const t=this.containingElement?.getRootNode()instanceof ShadowRoot?document.activeElement?.shadowRoot?.activeElement:document.activeElement;this.containingElement&&t?.closest(this.containingElement.tagName.toLowerCase())===this.containingElement||this.hide()}))}handleDocumentMouseDown(t){const i=t.composedPath();this.containingElement&&!i.includes(this.containingElement)&&this.hide()}handlePanelSelect(t){const i=t.target;this.stayOpenOnSelect||"nile-menu"!==i.tagName.toLowerCase()||(this.hide(),this.focusOnTrigger())}handleTriggerClick(){this.open?this.hide():(this.show(),this.focusOnTrigger())}handleTriggerKeyDown(t){const i=this.getMenu();if(i){const s=i.getAllItems(),e=s[0],o=s[s.length-1];["ArrowDown","ArrowUp","Home","End"].includes(t.key)&&(t.preventDefault(),this.open||this.show(),s.length>0&&this.updateComplete.then((()=>{"ArrowDown"!==t.key&&"Home"!==t.key||(i.setCurrentItem(e),e.focus()),"ArrowUp"!==t.key&&"End"!==t.key||(i.setCurrentItem(o),o.focus())})))}}handleTriggerKeyUp(t){" "===t.key&&t.preventDefault()}handleTriggerSlotChange(){this.updateAccessibleTrigger()}updateAccessibleTrigger(){const t=this.trigger.assignedElements({flatten:!0}).find((t=>c(t).start));let i;if(t){switch(t.tagName.toLowerCase()){case"nile-button":case"nile-icon-button":i=t.button;break;default:i=t}i.setAttribute("aria-haspopup","true"),i.setAttribute("aria-expanded",this.open?"true":"false")}}async show(){if(!this.open)return this.open=!0,m(this,"nile-after-show")}async hide(){if(this.open)return this.open=!1,m(this,"nile-after-hide")}reposition(){this.popup.reposition()}addOpenListeners(){this.panel.addEventListener("nile-select",this.handlePanelSelect),this.panel.addEventListener("keydown",this.handleKeyDown),document.addEventListener("keydown",this.handleDocumentKeyDown),document.addEventListener("mousedown",this.handleDocumentMouseDown)}removeOpenListeners(){this.panel&&(this.panel.removeEventListener("nile-select",this.handlePanelSelect),this.panel.removeEventListener("keydown",this.handleKeyDown)),document.removeEventListener("keydown",this.handleDocumentKeyDown),document.removeEventListener("mousedown",this.handleDocumentMouseDown)}async handleOpenChange(){if(this.disabled)this.open=!1;else if(this.updateAccessibleTrigger(),this.open){this.emit("nile-show"),this.addOpenListeners(),await r(this),this.panel.hidden=!1,this.popup.active=!0;const{keyframes:t,options:i}=p(this,"dropdown.show",{dir:""});await d(this.popup.popup,t,i),this.emit("nile-after-show")}else{this.emit("nile-hide"),this.removeOpenListeners(),await r(this);const{keyframes:t,options:i}=p(this,"dropdown.hide",{dir:""});await d(this.popup.popup,t,i),this.panel.hidden=!0,this.popup.active=!1,this.emit("nile-after-hide")}}render(){return i`
1
+ import{__decorate as t}from"tslib";import{html as i}from"lit";import{query as s,property as e,customElement as o}from"lit/decorators.js";import{classMap as h}from"lit/directives/class-map.js";import{s as n}from"./nile-side-bar-action.css.esm.js";import{N as a}from"../internal/nile-element.esm.js";import{s as r,a as l}from"../internal/animate.esm.js";import{s as d,g as p}from"../utilities/animation-registry.esm.js";import{g as c}from"../internal/tabbable.esm.js";import{w as m}from"../internal/event.esm.js";import{w as u}from"../internal/watch.esm.js";import"../nile-popup/nile-popup.esm.js";import{D as w}from"./portal-manager.esm.js";import"../floating-ui.dom-cc9126da.esm.js";import"../nile-popup/nile-popup.css.esm.js";import"./portal-utils.esm.js";let f=class extends a{constructor(){super(...arguments),this.open=!1,this.placement="bottom-start",this.disabled=!1,this.stayOpenOnSelect=!1,this.distance=0,this.skidding=0,this.hoist=!1,this.portal=!1,this.portalManager=null,this.triggerDropdown="click"}connectedCallback(){super.connectedCallback(),this.handlePanelSelect=this.handlePanelSelect.bind(this),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleDocumentKeyDown=this.handleDocumentKeyDown.bind(this),this.handleDocumentMouseDown=this.handleDocumentMouseDown.bind(this),this.handleTriggerMouseEnter=this.handleTriggerMouseEnter.bind(this),this.handleTriggerMouseLeave=this.handleTriggerMouseLeave.bind(this),this.containingElement||(this.containingElement=this),this.emit("nile-init"),requestAnimationFrame((()=>{this.portal&&!this.portalManager&&(this.portalManager=new w(this))}))}firstUpdated(){if(this.panel.hidden=!this.open,"hover"===this.triggerDropdown){const t=this.trigger;t&&(t.addEventListener("mouseenter",this.handleTriggerMouseEnter),t.addEventListener("mouseleave",this.handleTriggerMouseLeave)),this.panel&&(this.panel.addEventListener("mouseenter",this.handleTriggerMouseEnter),this.panel.addEventListener("mouseleave",this.handleTriggerMouseLeave))}this.open&&(this.addOpenListeners(),this.popup.active=!0)}handleTriggerMouseEnter(){clearTimeout(this.hoverTimeout),this.show()}handleTriggerMouseLeave(){clearTimeout(this.hoverTimeout),this.hoverTimeout=window.setTimeout((()=>this.hide()),200)}disconnectedCallback(){super.disconnectedCallback(),this.removeOpenListeners(),this.hide(),this.emit("nile-destroy"),this.portalManager&&(this.portalManager.cleanupPortalAppend(),this.portalManager=null)}focusOnTrigger(){const t=this.trigger.assignedElements({flatten:!0})[0];"function"==typeof t?.focus&&t.focus()}getMenu(){return this.panel.assignedElements({flatten:!0}).find((t=>"nile-menu"===t.tagName.toLowerCase()))}handleKeyDown(t){this.open&&"Escape"===t.key&&(t.stopPropagation(),this.hide(),this.focusOnTrigger())}handleDocumentKeyDown(t){if("Escape"===t.key&&this.open)return t.stopPropagation(),this.focusOnTrigger(),void this.hide();"Tab"===t.key&&setTimeout((()=>{const t=this.containingElement?.getRootNode()instanceof ShadowRoot?document.activeElement?.shadowRoot?.activeElement:document.activeElement,i=this.containingElement&&t?.closest(this.containingElement.tagName.toLowerCase())===this.containingElement,s=this.portal&&this.portalManager?.portalContainerElement&&(t===this.portalManager.portalContainerElement||t?.closest(".nile-dropdown-portal-append")===this.portalManager.portalContainerElement);i||s||this.hide()}))}handleDocumentMouseDown(t){const i=t.composedPath(),s=this.containingElement&&i.includes(this.containingElement),e=this.portal&&this.portalManager?.portalContainerElement&&i.includes(this.portalManager.portalContainerElement);s||e||this.hide()}handlePanelSelect(t){const i=t.target;this.stayOpenOnSelect||"nile-menu"!==i.tagName.toLowerCase()||(this.hide(),this.focusOnTrigger())}handleTriggerClick(){this.open?this.hide():(this.show(),this.focusOnTrigger())}handleTriggerKeyDown(t){const i=this.getMenu();if(i){const s=i.getAllItems(),e=s[0],o=s[s.length-1];["ArrowDown","ArrowUp","Home","End"].includes(t.key)&&(t.preventDefault(),this.open||this.show(),s.length>0&&this.updateComplete.then((()=>{"ArrowDown"!==t.key&&"Home"!==t.key||(i.setCurrentItem(e),e.focus()),"ArrowUp"!==t.key&&"End"!==t.key||(i.setCurrentItem(o),o.focus())})))}}handleTriggerKeyUp(t){" "===t.key&&t.preventDefault()}handleTriggerSlotChange(){this.updateAccessibleTrigger()}updateAccessibleTrigger(){const t=this.trigger.assignedElements({flatten:!0}).find((t=>c(t).start));let i;if(t){switch(t.tagName.toLowerCase()){case"nile-button":case"nile-icon-button":i=t.button;break;default:i=t}i.setAttribute("aria-haspopup","true"),i.setAttribute("aria-expanded",this.open?"true":"false")}}async show(){if(!this.open)return this.open=!0,m(this,"nile-after-show")}async hide(){if(this.open)return this.open=!1,m(this,"nile-after-hide")}reposition(){this.popup.reposition()}addOpenListeners(){this.panel.addEventListener("nile-select",this.handlePanelSelect),this.panel.addEventListener("keydown",this.handleKeyDown),document.addEventListener("keydown",this.handleDocumentKeyDown),document.addEventListener("mousedown",this.handleDocumentMouseDown)}removeOpenListeners(){this.panel&&(this.panel.removeEventListener("nile-select",this.handlePanelSelect),this.panel.removeEventListener("keydown",this.handleKeyDown)),document.removeEventListener("keydown",this.handleDocumentKeyDown),document.removeEventListener("mousedown",this.handleDocumentMouseDown)}updated(t){super.updated(t),t.has("portal")&&(this.portal&&!this.portalManager?(this.portalManager=new w(this),this.open&&this.portalManager.setupPortalAppend()):!this.portal&&this.portalManager&&(this.portalManager.cleanupPortalAppend(),this.portalManager=null))}async handleOpenChange(){if(this.disabled)this.open=!1;else if(this.updateAccessibleTrigger(),this.open){if(this.emit("nile-show"),this.addOpenListeners(),this.portal&&this.portalManager?this.portalManager.setupPortalAppend():this.portal&&!this.portalManager&&(this.portalManager=new w(this),this.portalManager.setupPortalAppend()),await r(this),!this.portal){this.panel.hidden=!1,this.popup.active=!0;const{keyframes:t,options:i}=p(this,"dropdown.show",{dir:""});await l(this.popup.popup,t,i)}this.emit("nile-after-show")}else{if(this.emit("nile-hide"),this.removeOpenListeners(),this.portal&&this.portalManager&&this.portalManager.cleanupPortalAppend(),await r(this),!this.portal){const{keyframes:t,options:i}=p(this,"dropdown.hide",{dir:""});await l(this.popup.popup,t,i),this.panel.hidden=!0,this.popup.active=!1}this.emit("nile-after-hide")}}render(){return i`
2
2
  <nile-popup
3
3
  part="base"
4
4
  id="sidebar-action-dropdown"
@@ -11,7 +11,7 @@ import{__decorate as t}from"tslib";import{html as i}from"lit";import{query as s,
11
11
  shift
12
12
  auto-size="both"
13
13
  auto-size-padding="10"
14
- class=${n({dropdown:!0,"dropdown--open":this.open})}
14
+ class=${h({dropdown:!0,"dropdown--open":this.open})}
15
15
  >
16
16
  <slot
17
17
  name="trigger"
@@ -29,6 +29,7 @@ import{__decorate as t}from"tslib";import{html as i}from"lit";import{query as s,
29
29
  class="dropdown__panel"
30
30
  aria-hidden=${this.open?"false":"true"}
31
31
  aria-labelledby="sidebar-action-dropdown"
32
+ style=${this.portal&&this.portalManager?"display: none;":""}
32
33
  ></slot>
33
34
  </nile-popup>
34
- `}};w.styles=[h],t([s(".dropdown")],w.prototype,"popup",void 0),t([s(".dropdown__trigger")],w.prototype,"trigger",void 0),t([s(".dropdown__panel")],w.prototype,"panel",void 0),t([e({type:Boolean,reflect:!0})],w.prototype,"open",void 0),t([e({reflect:!0})],w.prototype,"placement",void 0),t([e({type:Boolean,reflect:!0})],w.prototype,"disabled",void 0),t([e({attribute:"stay-open-on-select",type:Boolean,reflect:!0})],w.prototype,"stayOpenOnSelect",void 0),t([e({attribute:!1})],w.prototype,"containingElement",void 0),t([e({type:Number})],w.prototype,"distance",void 0),t([e({type:Number})],w.prototype,"skidding",void 0),t([e()],w.prototype,"sync",void 0),t([e({type:Boolean})],w.prototype,"hoist",void 0),t([e({reflect:!0})],w.prototype,"triggerDropdown",void 0),t([u("open",{waitUntilFirstUpdate:!0})],w.prototype,"handleOpenChange",null),w=t([o("nile-side-bar-action")],w),l("dropdown.show",{keyframes:[{opacity:0,scale:.9},{opacity:1,scale:1}],options:{duration:100,easing:"ease"}}),l("dropdown.hide",{keyframes:[{opacity:1,scale:1},{opacity:0,scale:.9}],options:{duration:100,easing:"ease"}});export{w as N};
35
+ `}};f.styles=[n],t([s(".dropdown")],f.prototype,"popup",void 0),t([s(".dropdown__trigger")],f.prototype,"trigger",void 0),t([s(".dropdown__panel")],f.prototype,"panel",void 0),t([e({type:Boolean,reflect:!0})],f.prototype,"open",void 0),t([e({reflect:!0})],f.prototype,"placement",void 0),t([e({type:Boolean,reflect:!0})],f.prototype,"disabled",void 0),t([e({attribute:"stay-open-on-select",type:Boolean,reflect:!0})],f.prototype,"stayOpenOnSelect",void 0),t([e({attribute:!1})],f.prototype,"containingElement",void 0),t([e({type:Number})],f.prototype,"distance",void 0),t([e({type:Number})],f.prototype,"skidding",void 0),t([e()],f.prototype,"sync",void 0),t([e({type:Boolean})],f.prototype,"hoist",void 0),t([e({type:Boolean,reflect:!0})],f.prototype,"portal",void 0),t([e({reflect:!0})],f.prototype,"triggerDropdown",void 0),t([u("open",{waitUntilFirstUpdate:!0})],f.prototype,"handleOpenChange",null),f=t([o("nile-side-bar-action")],f),d("dropdown.show",{keyframes:[{opacity:0,scale:.9},{opacity:1,scale:1}],options:{duration:100,easing:"ease"}}),d("dropdown.hide",{keyframes:[{opacity:1,scale:1},{opacity:0,scale:.9}],options:{duration:100,easing:"ease"}});export{f as N};
@@ -0,0 +1,2 @@
1
+ System.register(["../floating-ui.dom-007bbe96.cjs.js","./portal-utils.cjs.js"],function(_export,_context){"use strict";var t,i,s,o,e,h,a,n,l,r,p;function _typeof(o){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(o){return typeof o;}:function(o){return o&&"function"==typeof Symbol&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o;},_typeof(o);}function _regeneratorRuntime(){"use strict";/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */_regeneratorRuntime=function _regeneratorRuntime(){return e;};var t,e={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(t,e,r){t[e]=r.value;},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",c=i.asyncIterator||"@@asyncIterator",u=i.toStringTag||"@@toStringTag";function define(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e];}try{define({},"");}catch(t){define=function define(t,e,r){return t[e]=r;};}function wrap(t,e,r,n){var i=e&&e.prototype instanceof Generator?e:Generator,a=Object.create(i.prototype),c=new Context(n||[]);return o(a,"_invoke",{value:makeInvokeMethod(t,r,c)}),a;}function tryCatch(t,e,r){try{return{type:"normal",arg:t.call(e,r)};}catch(t){return{type:"throw",arg:t};}}e.wrap=wrap;var h="suspendedStart",l="suspendedYield",f="executing",s="completed",y={};function Generator(){}function GeneratorFunction(){}function GeneratorFunctionPrototype(){}var p={};define(p,a,function(){return this;});var d=Object.getPrototypeOf,v=d&&d(d(values([])));v&&v!==r&&n.call(v,a)&&(p=v);var g=GeneratorFunctionPrototype.prototype=Generator.prototype=Object.create(p);function defineIteratorMethods(t){["next","throw","return"].forEach(function(e){define(t,e,function(t){return this._invoke(e,t);});});}function AsyncIterator(t,e){function invoke(r,o,i,a){var c=tryCatch(t[r],t,o);if("throw"!==c.type){var u=c.arg,h=u.value;return h&&"object"==_typeof(h)&&n.call(h,"__await")?e.resolve(h.__await).then(function(t){invoke("next",t,i,a);},function(t){invoke("throw",t,i,a);}):e.resolve(h).then(function(t){u.value=t,i(u);},function(t){return invoke("throw",t,i,a);});}a(c.arg);}var r;o(this,"_invoke",{value:function value(t,n){function callInvokeWithMethodAndArg(){return new e(function(e,r){invoke(t,n,e,r);});}return r=r?r.then(callInvokeWithMethodAndArg,callInvokeWithMethodAndArg):callInvokeWithMethodAndArg();}});}function makeInvokeMethod(e,r,n){var o=h;return function(i,a){if(o===f)throw Error("Generator is already running");if(o===s){if("throw"===i)throw a;return{value:t,done:!0};}for(n.method=i,n.arg=a;;){var c=n.delegate;if(c){var u=maybeInvokeDelegate(c,n);if(u){if(u===y)continue;return u;}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===h)throw o=s,n.arg;n.dispatchException(n.arg);}else"return"===n.method&&n.abrupt("return",n.arg);o=f;var p=tryCatch(e,r,n);if("normal"===p.type){if(o=n.done?s:l,p.arg===y)continue;return{value:p.arg,done:n.done};}"throw"===p.type&&(o=s,n.method="throw",n.arg=p.arg);}};}function maybeInvokeDelegate(e,r){var n=r.method,o=e.iterator[n];if(o===t)return r.delegate=null,"throw"===n&&e.iterator["return"]&&(r.method="return",r.arg=t,maybeInvokeDelegate(e,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),y;var i=tryCatch(o,e.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,y;var a=i.arg;return a?a.done?(r[e.resultName]=a.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=t),r.delegate=null,y):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,y);}function pushTryEntry(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e);}function resetTryEntry(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e;}function Context(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(pushTryEntry,this),this.reset(!0);}function values(e){if(e||""===e){var r=e[a];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var o=-1,i=function next(){for(;++o<e.length;)if(n.call(e,o))return next.value=e[o],next.done=!1,next;return next.value=t,next.done=!0,next;};return i.next=i;}}throw new TypeError(_typeof(e)+" is not iterable");}return GeneratorFunction.prototype=GeneratorFunctionPrototype,o(g,"constructor",{value:GeneratorFunctionPrototype,configurable:!0}),o(GeneratorFunctionPrototype,"constructor",{value:GeneratorFunction,configurable:!0}),GeneratorFunction.displayName=define(GeneratorFunctionPrototype,u,"GeneratorFunction"),e.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===GeneratorFunction||"GeneratorFunction"===(e.displayName||e.name));},e.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,GeneratorFunctionPrototype):(t.__proto__=GeneratorFunctionPrototype,define(t,u,"GeneratorFunction")),t.prototype=Object.create(g),t;},e.awrap=function(t){return{__await:t};},defineIteratorMethods(AsyncIterator.prototype),define(AsyncIterator.prototype,c,function(){return this;}),e.AsyncIterator=AsyncIterator,e.async=function(t,r,n,o,i){void 0===i&&(i=Promise);var a=new AsyncIterator(wrap(t,r,n,o),i);return e.isGeneratorFunction(r)?a:a.next().then(function(t){return t.done?t.value:a.next();});},defineIteratorMethods(g),define(g,u,"Generator"),define(g,a,function(){return this;}),define(g,"toString",function(){return"[object Generator]";}),e.keys=function(t){var e=Object(t),r=[];for(var n in e)r.push(n);return r.reverse(),function next(){for(;r.length;){var t=r.pop();if(t in e)return next.value=t,next.done=!1,next;}return next.done=!0,next;};},e.values=values,Context.prototype={constructor:Context,reset:function reset(e){if(this.prev=0,this.next=0,this.sent=this._sent=t,this.done=!1,this.delegate=null,this.method="next",this.arg=t,this.tryEntries.forEach(resetTryEntry),!e)for(var r in this)"t"===r.charAt(0)&&n.call(this,r)&&!isNaN(+r.slice(1))&&(this[r]=t);},stop:function stop(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval;},dispatchException:function dispatchException(e){if(this.done)throw e;var r=this;function handle(n,o){return a.type="throw",a.arg=e,r.next=n,o&&(r.method="next",r.arg=t),!!o;}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],a=i.completion;if("root"===i.tryLoc)return handle("end");if(i.tryLoc<=this.prev){var c=n.call(i,"catchLoc"),u=n.call(i,"finallyLoc");if(c&&u){if(this.prev<i.catchLoc)return handle(i.catchLoc,!0);if(this.prev<i.finallyLoc)return handle(i.finallyLoc);}else if(c){if(this.prev<i.catchLoc)return handle(i.catchLoc,!0);}else{if(!u)throw Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return handle(i.finallyLoc);}}}},abrupt:function abrupt(t,e){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break;}}i&&("break"===t||"continue"===t)&&i.tryLoc<=e&&e<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=t,a.arg=e,i?(this.method="next",this.next=i.finallyLoc,y):this.complete(a);},complete:function complete(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),y;},finish:function finish(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),resetTryEntry(r),y;}},"catch":function _catch(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;resetTryEntry(r);}return o;}}throw Error("illegal catch attempt");},delegateYield:function delegateYield(e,r,n){return this.delegate={iterator:values(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),y;}},e;}function asyncGeneratorStep(n,t,e,r,o,a,c){try{var i=n[a](c),u=i.value;}catch(n){return void e(n);}i.done?t(u):Promise.resolve(u).then(r,o);}function _asyncToGenerator(n){return function(){var t=this,e=arguments;return new Promise(function(r,o){var a=n.apply(t,e);function _next(n){asyncGeneratorStep(a,r,o,_next,_throw,"next",n);}function _throw(n){asyncGeneratorStep(a,r,o,_next,_throw,"throw",n);}_next(void 0);});};}function _classCallCheck(a,n){if(!(a instanceof n))throw new TypeError("Cannot call a class as a function");}function _defineProperties(e,r){for(var t=0;t<r.length;t++){var o=r[t];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,_toPropertyKey(o.key),o);}}function _createClass(e,r,t){return r&&_defineProperties(e.prototype,r),t&&_defineProperties(e,t),Object.defineProperty(e,"prototype",{writable:!1}),e;}function _toPropertyKey(t){var i=_toPrimitive(t,"string");return"symbol"==_typeof(i)?i:i+"";}function _toPrimitive(t,r){if("object"!=_typeof(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var i=e.call(t,r||"default");if("object"!=_typeof(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.");}return("string"===r?String:Number)(t);}return{setters:[function(_floatingUiDom001CjsJs){t=_floatingUiDom001CjsJs.c;i=_floatingUiDom001CjsJs.o;s=_floatingUiDom001CjsJs.s;o=_floatingUiDom001CjsJs.f;e=_floatingUiDom001CjsJs.a;h=_floatingUiDom001CjsJs.p;a=_floatingUiDom001CjsJs.b;},function(_portalUtilsCjsJs){n=_portalUtilsCjsJs.P;l=_portalUtilsCjsJs.a;r=_portalUtilsCjsJs.b;}],execute:function execute(){_export("D",p=/*#__PURE__*/function(){function p(t){_classCallCheck(this,p);this.portalContainer=null,this.measuredPanelHeight=null,this.clonedPanel=null,this.cleanupAutoUpdate=null,this.currentPlacement="bottom-start",this.currentMiddlewareData=null,this.boundHandleWindowResize=null,this.component=t;}return _createClass(p,[{key:"createPortalAppendContainer",value:function createPortalAppendContainer(){var t=document.createElement("div");return t.style.position="absolute",t.style.zIndex="9999",t.style.pointerEvents="none",t.style.width="auto",t.style.maxWidth="none",t.style.minWidth="auto",t.className="nile-dropdown-portal-append",t;}},{key:"positionPortalAppend",value:function positionPortalAppend(){this.portalContainer&&this.component.open&&(this.measurePanelHeight(),this.computeFloatingUIPosition());}},{key:"measurePanelHeight",value:function measurePanelHeight(){!this.measuredPanelHeight&&this.portalContainer&&(this.portalContainer.style.position="absolute",this.portalContainer.style.visibility="hidden",this.portalContainer.style.top="0px",this.portalContainer.style.left="0px",this.portalContainer.offsetHeight,this.measuredPanelHeight=this.portalContainer.offsetHeight,this.portalContainer.style.visibility="");}},{key:"computeFloatingUIPosition",value:function(){var _computeFloatingUIPosition=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(){var _this$component$shado,_this$component$query;var t,i,_yield$this$calculate,_s,_o,_e,_h;return _regeneratorRuntime().wrap(function _callee$(_context2){while(1)switch(_context2.prev=_context2.next){case 0:if(this.portalContainer){_context2.next=2;break;}return _context2.abrupt("return");case 2:t=((_this$component$shado=this.component.shadowRoot)===null||_this$component$shado===void 0||(_this$component$shado=_this$component$shado.querySelector('[slot="anchor"]'))===null||_this$component$shado===void 0?void 0:_this$component$shado.assignedElements({flatten:!0})[0])||((_this$component$query=this.component.querySelector('[slot="trigger"]'))===null||_this$component$query===void 0?void 0:_this$component$query.assignedElements({flatten:!0})[0])||this.component,i=this.portalContainer;_context2.prev=3;_context2.next=6;return this.calculateFloatingUIPosition(t,i);case 6:_yield$this$calculate=_context2.sent;_s=_yield$this$calculate.x;_o=_yield$this$calculate.y;_e=_yield$this$calculate.placement;_h=_yield$this$calculate.middlewareData;this.applyFloatingUIPosition(i,t,_s,_o,_e,_h);_context2.next=17;break;case 14:_context2.prev=14;_context2.t0=_context2["catch"](3);console.warn("Floating UI positioning failed, falling back to simple positioning:",_context2.t0),this.fallbackPositioning();case 17:case"end":return _context2.stop();}},_callee,this,[[3,14]]);}));function computeFloatingUIPosition(){return _computeFloatingUIPosition.apply(this,arguments);}return computeFloatingUIPosition;}()},{key:"calculateFloatingUIPosition",value:function(){var _calculateFloatingUIPosition=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2(i,s){var o,e,h;return _regeneratorRuntime().wrap(function _callee2$(_context3){while(1)switch(_context3.prev=_context3.next){case 0:o=n.findBoundaryElements(i),e=this.getInitialPlacement(),h=this.createFloatingUIMiddleware(o);_context3.next=3;return t(i,s,{placement:e,strategy:"fixed",middleware:h,platform:this.createCustomPlatform()});case 3:return _context3.abrupt("return",_context3.sent);case 4:case"end":return _context3.stop();}},_callee2,this);}));function calculateFloatingUIPosition(_x,_x2){return _calculateFloatingUIPosition.apply(this,arguments);}return calculateFloatingUIPosition;}()},{key:"getInitialPlacement",value:function getInitialPlacement(){return this.component.placement||"bottom-start";}},{key:"createFloatingUIMiddleware",value:function createFloatingUIMiddleware(t){var h=[i(this.component.distance||0)];return this.component.sync&&h.push(s({apply:this.handleSizeMiddleware.bind(this),padding:10,boundary:t})),h.push(o({fallbackPlacements:this.getFallbackPlacements(),fallbackStrategy:"bestFit",padding:10,boundary:t})),h.push(e({padding:10,crossAxis:!0,boundary:t})),h;}},{key:"handleSizeMiddleware",value:function handleSizeMiddleware(_ref){var t=_ref.availableWidth,i=_ref.availableHeight,s=_ref.elements,o=_ref.rects;var e=n.calculateOptimalHeight(o.reference,window.innerHeight,this.currentPlacement);"width"!==this.component.sync&&"both"!==this.component.sync||(s.floating.style.width="".concat(o.reference.width,"px")),"height"!==this.component.sync&&"both"!==this.component.sync||(s.floating.style.height="".concat(o.reference.height,"px")),s.floating.style.maxHeight="".concat(e,"px"),s.floating.style.setProperty("--auto-size-available-width","".concat(t,"px")),s.floating.style.setProperty("--auto-size-available-height","".concat(e,"px"));}},{key:"getFallbackPlacements",value:function getFallbackPlacements(){var t=this.component.placement||"bottom-start",i=[];return t.startsWith("top")?i.push("bottom-start","bottom","bottom-end","top","top-end","right-start","left-start"):t.startsWith("bottom")?i.push("top-start","top","top-end","bottom","bottom-end","right-start","left-start"):t.startsWith("left")?i.push("right-start","right","right-end","left","left-end","top-start","bottom-start"):t.startsWith("right")&&i.push("left-start","left","left-end","right","right-end","top-start","bottom-start"),i;}},{key:"createCustomPlatform",value:function createCustomPlatform(){return h;}},{key:"applyFloatingUIPosition",value:function applyFloatingUIPosition(t,i,s,o,e,h){var a=i.getBoundingClientRect();Object.assign(t.style,{left:"".concat(s,"px"),top:"".concat(o,"px"),position:"fixed",pointerEvents:"auto",width:"auto",minWidth:"auto"}),"width"!==this.component.sync&&"both"!==this.component.sync||(t.style.width="".concat(a.width,"px")),this.currentPlacement=e,this.currentMiddlewareData=h,n.applyCollisionData(t,h,e);var l=e.split("-")[0];t.className="nile-dropdown-portal-append dropdown--open dropdown__panel--".concat(l);}},{key:"fallbackPositioning",value:function fallbackPositioning(){var _this$component$shado2,_this$component$query2;if(!this.portalContainer)return;var t=(((_this$component$shado2=this.component.shadowRoot)===null||_this$component$shado2===void 0||(_this$component$shado2=_this$component$shado2.querySelector('[slot="anchor"]'))===null||_this$component$shado2===void 0?void 0:_this$component$shado2.assignedElements({flatten:!0})[0])||((_this$component$query2=this.component.querySelector('[slot="trigger"]'))===null||_this$component$query2===void 0?void 0:_this$component$query2.assignedElements({flatten:!0})[0])||this.component).getBoundingClientRect(),i=window.innerHeight,s=window.innerWidth,o=i-t.bottom,e=t.top,h=s-t.right,a=t.left;var n,l,r,_p=t.left;var d=this.component.placement||"bottom-start";d.startsWith("bottom")?(r=Math.max(o-20,100),n=t.bottom+(this.component.distance||0),l="bottom"):d.startsWith("top")?(r=Math.max(e-20,100),n=Math.max(t.top-r-(this.component.distance||0),10),l="top"):d.startsWith("right")?(r=Math.max(Math.min(h,o,e)-20,100),n=t.top,_p=t.right+(this.component.distance||0),l="right"):(r=Math.max(Math.min(a,o,e)-20,100),n=t.top,_p=Math.max(t.left-200-(this.component.distance||0),10),l="left"),this.portalContainer.style.left="".concat(_p,"px"),this.portalContainer.style.top="".concat(n,"px"),this.portalContainer.style.maxHeight="".concat(r,"px"),this.portalContainer.style.pointerEvents="auto",this.portalContainer.style.width="auto",this.portalContainer.style.minWidth="auto","width"!==this.component.sync&&"both"!==this.component.sync||(this.portalContainer.style.width="".concat(t.width,"px")),this.portalContainer.className="nile-dropdown-portal-append dropdown__panel--".concat(l),this.calculateAndSetAutoSizeProperties(t,n,l);}},{key:"calculateAndSetAutoSizeProperties",value:function calculateAndSetAutoSizeProperties(t,i,s){if(!this.portalContainer)return;var o=window.innerHeight,e=window.innerWidth;var h,a=e-t.left-10;"top"===s?h=t.top-10:"bottom"===s?h=o-t.bottom-10:"left"===s?(h=Math.min(o-t.top,t.bottom),a=t.left-10):(h=Math.min(o-t.top,t.bottom),a=e-t.right-10),this.portalContainer.style.setProperty("--auto-size-available-height","".concat(Math.max(h,100),"px")),this.portalContainer.style.setProperty("--auto-size-available-width","".concat(Math.max(a,200),"px"));}},{key:"updatePortalAppendPosition",value:function updatePortalAppendPosition(){this.component.portal&&this.portalContainer&&this.positionPortalAppend();}},{key:"handleWindowResize",value:function handleWindowResize(){this.component.portal&&this.portalContainer&&this.positionPortalAppend();}},{key:"setupAutoUpdatePositioning",value:function setupAutoUpdatePositioning(){var _this$component$shado3,_this$component$query3,_this=this;if(!this.portalContainer||!this.component)return;this.cleanupAutoUpdatePositioning();var t=((_this$component$shado3=this.component.shadowRoot)===null||_this$component$shado3===void 0||(_this$component$shado3=_this$component$shado3.querySelector('[slot="anchor"]'))===null||_this$component$shado3===void 0?void 0:_this$component$shado3.assignedElements({flatten:!0})[0])||((_this$component$query3=this.component.querySelector('[slot="trigger"]'))===null||_this$component$query3===void 0?void 0:_this$component$query3.assignedElements({flatten:!0})[0])||this.component;this.cleanupAutoUpdate=a(t,this.portalContainer,function(){_this.computeFloatingUIPosition();},{ancestorScroll:!0,ancestorResize:!0,elementResize:!0,layoutShift:!0,animationFrame:!0});}},{key:"cleanupAutoUpdatePositioning",value:function cleanupAutoUpdatePositioning(){this.cleanupAutoUpdate&&(this.cleanupAutoUpdate(),this.cleanupAutoUpdate=null);}},{key:"injectStylesToDocument",value:function injectStylesToDocument(){if(!this.portalContainer)return;var t=n.generateStyleId();if(document.getElementById(t))return;var i=this.component.constructor.styles;if(!i)return;var s=document.createElement("style");s.id=t,s.textContent=n.extractStylesAsCSS(i),document.head.appendChild(s),this.portalContainer.t=t;}},{key:"adoptStylesToPortalAppend",value:function adoptStylesToPortalAppend(){this.portalContainer&&this.injectStylesToDocument();}},{key:"setupPortalAppend",value:function setupPortalAppend(){var _this2=this;this.component.portal&&this.component.updateComplete.then(function(){setTimeout(function(){_this2.component.open&&(_this2.clonedPanel=_this2.createPortalPanel(),_this2.portalContainer=_this2.createPortalAppendContainer(),_this2.portalContainer.appendChild(_this2.clonedPanel),document.body.appendChild(_this2.portalContainer),_this2.adoptStylesToPortalAppend(),_this2.clonedPanel.style.display="",_this2.positionPortalAppend(),_this2.setupPortalEventListeners(),_this2.setupAutoUpdatePositioning(),_this2.boundHandleWindowResize=_this2.handleWindowResize.bind(_this2),window.addEventListener("resize",_this2.boundHandleWindowResize));},10);});}},{key:"createPortalPanel",value:function createPortalPanel(){return l.createPortalPanel(this.component);}},{key:"setupPortalEventListeners",value:function setupPortalEventListeners(){r.setupPortalEventListeners(this.clonedPanel,this.component);}},{key:"cleanupPortalAppend",value:function cleanupPortalAppend(){if(this.cleanupAutoUpdatePositioning(),this.portalContainer&&this.portalContainer.parentNode){var _t=this.portalContainer.t;if(_t){var _i=document.getElementById(_t);_i&&_i.remove();}this.portalContainer.parentNode.removeChild(this.portalContainer);}this.boundHandleWindowResize&&(window.removeEventListener("resize",this.boundHandleWindowResize),this.boundHandleWindowResize=null),this.portalContainer=null,this.clonedPanel=null,this.measuredPanelHeight=null,this.currentPlacement="bottom-start",this.currentMiddlewareData=null;}},{key:"portalContainerElement",get:function get(){return this.portalContainer;}},{key:"resetMeasuredHeight",value:function resetMeasuredHeight(){this.measuredPanelHeight=null;}},{key:"forceReposition",value:function forceReposition(){this.portalContainer&&this.computeFloatingUIPosition();}},{key:"getCurrentPlacement",value:function getCurrentPlacement(){return this.currentPlacement;}},{key:"getCurrentMiddlewareData",value:function getCurrentMiddlewareData(){return this.currentMiddlewareData;}},{key:"isUsingFloatingUI",value:function isUsingFloatingUI(){return null!==this.cleanupAutoUpdate;}},{key:"isPositioningOptimal",value:function isPositioningOptimal(){var _this$component$shado4,_this$component$query4;if(!this.portalContainer||!this.currentMiddlewareData)return!0;var t=(((_this$component$shado4=this.component.shadowRoot)===null||_this$component$shado4===void 0||(_this$component$shado4=_this$component$shado4.querySelector('[slot="anchor"]'))===null||_this$component$shado4===void 0?void 0:_this$component$shado4.assignedElements({flatten:!0})[0])||((_this$component$query4=this.component.querySelector('[slot="trigger"]'))===null||_this$component$query4===void 0?void 0:_this$component$query4.assignedElements({flatten:!0})[0])||this.component).getBoundingClientRect(),i=window.innerHeight-t.bottom,s=t.top,o=this.currentPlacement.startsWith("top"),e=this.currentPlacement.startsWith("bottom");return!(o&&i>s)&&!(e&&s>i);}},{key:"updatePortalPanel",value:function updatePortalPanel(){this.portalContainer&&this.clonedPanel&&(l.updatePortalPanel(this.clonedPanel,this.component),this.forceReposition());}}]);}());}};});
2
+ //# sourceMappingURL=portal-manager.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"portal-manager.cjs.js","sources":["../../../src/nile-side-bar-action/portal-manager.ts"],"sourcesContent":["import { \n autoUpdate, \n computePosition, \n flip, \n offset, \n shift, \n size,\n platform,\n type Placement,\n type MiddlewareData,\n type ComputePositionConfig\n } from '@floating-ui/dom';\n import { PortalUtils, PortalContentUtils, PortalEventUtils } from './portal-utils';\n \n export class DropdownPortalManager {\n private portalContainer: HTMLElement | null = null;\n private measuredPanelHeight: number | null = null;\n private component: any;\n private clonedPanel: HTMLElement | null = null;\n private cleanupAutoUpdate: (() => void) | null = null;\n private currentPlacement: Placement = 'bottom-start';\n private currentMiddlewareData: MiddlewareData | null = null;\n private boundHandleWindowResize: (() => void) | null = null;\n \n constructor(component: any) {\n this.component = component;\n }\n \n private createPortalAppendContainer(): HTMLElement {\n const container = document.createElement('div');\n container.style.position = 'absolute';\n container.style.zIndex = '9999';\n container.style.pointerEvents = 'none';\n container.style.width = 'auto';\n container.style.maxWidth = 'none';\n container.style.minWidth = 'auto';\n container.className = 'nile-dropdown-portal-append';\n return container;\n }\n \n positionPortalAppend(): void {\n if (!this.portalContainer || !this.component.open) return;\n \n this.measurePanelHeight();\n this.computeFloatingUIPosition();\n }\n \n private measurePanelHeight(): void {\n if (this.measuredPanelHeight || !this.portalContainer) return;\n \n this.portalContainer.style.position = 'absolute';\n this.portalContainer.style.visibility = 'hidden';\n this.portalContainer.style.top = '0px';\n this.portalContainer.style.left = '0px';\n \n this.portalContainer.offsetHeight;\n \n this.measuredPanelHeight = this.portalContainer.offsetHeight;\n \n this.portalContainer.style.visibility = '';\n }\n \n private async computeFloatingUIPosition(): Promise<void> {\n if (!this.portalContainer) return;\n \n const referenceElement = this.component.shadowRoot?.querySelector('[slot=\"anchor\"]')?.assignedElements({ flatten: true })[0] as HTMLElement || \n this.component.querySelector('[slot=\"trigger\"]')?.assignedElements({ flatten: true })[0] as HTMLElement ||\n this.component;\n const floatingElement = this.portalContainer;\n \n try {\n const { x, y, placement, middlewareData } = await this.calculateFloatingUIPosition(\n referenceElement,\n floatingElement\n );\n \n this.applyFloatingUIPosition(floatingElement, referenceElement, x, y, placement, middlewareData);\n \n } catch (error) {\n console.warn('Floating UI positioning failed, falling back to simple positioning:', error);\n this.fallbackPositioning();\n }\n }\n \n private async calculateFloatingUIPosition(\n referenceElement: HTMLElement,\n floatingElement: HTMLElement\n ): Promise<{ x: number; y: number; placement: Placement; middlewareData: MiddlewareData }> {\n const boundary = PortalUtils.findBoundaryElements(referenceElement);\n const initialPlacement = this.getInitialPlacement();\n const middleware = this.createFloatingUIMiddleware(boundary);\n \n return await computePosition(referenceElement, floatingElement, {\n placement: initialPlacement,\n strategy: 'fixed',\n middleware,\n platform: this.createCustomPlatform()\n });\n }\n \n private getInitialPlacement(): Placement {\n return this.component.placement || 'bottom-start';\n }\n \n private createFloatingUIMiddleware(boundary: Element[] | undefined): ComputePositionConfig['middleware'] {\n const middleware: ComputePositionConfig['middleware'] = [\n offset(this.component.distance || 0),\n ];\n \n // Add size middleware if sync is specified\n if (this.component.sync) {\n middleware.push(\n size({\n apply: this.handleSizeMiddleware.bind(this),\n padding: 10,\n boundary: boundary\n })\n );\n }\n \n // Add flip middleware\n middleware.push(\n flip({\n fallbackPlacements: this.getFallbackPlacements(),\n fallbackStrategy: 'bestFit',\n padding: 10,\n boundary: boundary\n })\n );\n \n // Add shift middleware\n middleware.push(\n shift({\n padding: 10,\n crossAxis: true,\n boundary: boundary\n })\n );\n \n return middleware;\n }\n \n private handleSizeMiddleware({ availableWidth, availableHeight, elements, rects }: {\n availableWidth: number;\n availableHeight: number;\n elements: { floating: HTMLElement };\n rects: { reference: { x: number; y: number; width: number; height: number } };\n }): void {\n const maxHeight = PortalUtils.calculateOptimalHeight(\n rects.reference,\n window.innerHeight,\n this.currentPlacement\n );\n \n if (this.component.sync === 'width' || this.component.sync === 'both') {\n elements.floating.style.width = `${rects.reference.width}px`;\n }\n if (this.component.sync === 'height' || this.component.sync === 'both') {\n elements.floating.style.height = `${rects.reference.height}px`;\n }\n \n elements.floating.style.maxHeight = `${maxHeight}px`;\n elements.floating.style.setProperty('--auto-size-available-width', `${availableWidth}px`);\n elements.floating.style.setProperty('--auto-size-available-height', `${maxHeight}px`);\n }\n \n private getFallbackPlacements(): Placement[] {\n const basePlacement = this.component.placement || 'bottom-start';\n const placements: Placement[] = [];\n \n if (basePlacement.startsWith('top')) {\n placements.push('bottom-start', 'bottom', 'bottom-end', 'top', 'top-end', 'right-start', 'left-start');\n } else if (basePlacement.startsWith('bottom')) {\n placements.push('top-start', 'top', 'top-end', 'bottom', 'bottom-end', 'right-start', 'left-start');\n } else if (basePlacement.startsWith('left')) {\n placements.push('right-start', 'right', 'right-end', 'left', 'left-end', 'top-start', 'bottom-start');\n } else if (basePlacement.startsWith('right')) {\n placements.push('left-start', 'left', 'left-end', 'right', 'right-end', 'top-start', 'bottom-start');\n }\n \n return placements;\n }\n \n private createCustomPlatform() {\n return platform;\n }\n \n private applyFloatingUIPosition(\n floatingElement: HTMLElement,\n referenceElement: HTMLElement,\n x: number,\n y: number,\n placement: Placement,\n middlewareData: MiddlewareData\n ): void {\n const referenceRect = referenceElement.getBoundingClientRect();\n \n Object.assign(floatingElement.style, {\n left: `${x}px`,\n top: `${y}px`,\n position: 'fixed',\n pointerEvents: 'auto',\n width: 'auto',\n minWidth: 'auto'\n });\n \n // Apply sync width if needed\n if (this.component.sync === 'width' || this.component.sync === 'both') {\n floatingElement.style.width = `${referenceRect.width}px`;\n }\n \n this.currentPlacement = placement;\n this.currentMiddlewareData = middlewareData;\n \n PortalUtils.applyCollisionData(floatingElement, middlewareData, placement);\n \n const placementClass = placement.split('-')[0];\n floatingElement.className = `nile-dropdown-portal-append dropdown--open dropdown__panel--${placementClass}`;\n }\n \n private fallbackPositioning(): void {\n if (!this.portalContainer) return;\n \n const referenceElement = this.component.shadowRoot?.querySelector('[slot=\"anchor\"]')?.assignedElements({ flatten: true })[0] as HTMLElement || \n this.component.querySelector('[slot=\"trigger\"]')?.assignedElements({ flatten: true })[0] as HTMLElement ||\n this.component;\n const rect = referenceElement.getBoundingClientRect();\n const viewportHeight = window.innerHeight;\n const viewportWidth = window.innerWidth;\n \n const spaceBelow = viewportHeight - rect.bottom;\n const spaceAbove = rect.top;\n const spaceRight = viewportWidth - rect.right;\n const spaceLeft = rect.left;\n \n let topPosition: number;\n let leftPosition: number = rect.left;\n let placementClass: string;\n let maxHeight: number;\n \n const placement = this.component.placement || 'bottom-start';\n \n if (placement.startsWith('bottom')) {\n maxHeight = Math.max(spaceBelow - 20, 100);\n topPosition = rect.bottom + (this.component.distance || 0);\n placementClass = 'bottom';\n } else if (placement.startsWith('top')) {\n maxHeight = Math.max(spaceAbove - 20, 100);\n topPosition = Math.max(rect.top - maxHeight - (this.component.distance || 0), 10);\n placementClass = 'top';\n } else if (placement.startsWith('right')) {\n maxHeight = Math.max(Math.min(spaceRight, spaceBelow, spaceAbove) - 20, 100);\n topPosition = rect.top;\n leftPosition = rect.right + (this.component.distance || 0);\n placementClass = 'right';\n } else {\n maxHeight = Math.max(Math.min(spaceLeft, spaceBelow, spaceAbove) - 20, 100);\n topPosition = rect.top;\n leftPosition = Math.max(rect.left - 200 - (this.component.distance || 0), 10);\n placementClass = 'left';\n }\n \n this.portalContainer.style.left = `${leftPosition}px`;\n this.portalContainer.style.top = `${topPosition}px`;\n this.portalContainer.style.maxHeight = `${maxHeight}px`;\n this.portalContainer.style.pointerEvents = 'auto';\n this.portalContainer.style.width = 'auto';\n this.portalContainer.style.minWidth = 'auto';\n \n if (this.component.sync === 'width' || this.component.sync === 'both') {\n this.portalContainer.style.width = `${rect.width}px`;\n }\n \n this.portalContainer.className = `nile-dropdown-portal-append dropdown__panel--${placementClass}`;\n \n this.calculateAndSetAutoSizeProperties(rect, topPosition, placementClass);\n }\n \n private calculateAndSetAutoSizeProperties(rect: DOMRect, topPosition: number, placementClass: string): void {\n if (!this.portalContainer) return;\n \n const viewportHeight = window.innerHeight;\n const viewportWidth = window.innerWidth;\n \n let availableHeight: number;\n let availableWidth: number = viewportWidth - rect.left - 10;\n \n if (placementClass === 'top') {\n availableHeight = rect.top - 10;\n } else if (placementClass === 'bottom') {\n availableHeight = viewportHeight - rect.bottom - 10;\n } else if (placementClass === 'left') {\n availableHeight = Math.min(viewportHeight - rect.top, rect.bottom);\n availableWidth = rect.left - 10;\n } else {\n availableHeight = Math.min(viewportHeight - rect.top, rect.bottom);\n availableWidth = viewportWidth - rect.right - 10;\n }\n \n this.portalContainer.style.setProperty('--auto-size-available-height', `${Math.max(availableHeight, 100)}px`);\n this.portalContainer.style.setProperty('--auto-size-available-width', `${Math.max(availableWidth, 200)}px`);\n }\n \n updatePortalAppendPosition(): void {\n if (this.component.portal && this.portalContainer) {\n this.positionPortalAppend();\n }\n }\n \n handleWindowResize(): void {\n if (this.component.portal && this.portalContainer) {\n this.positionPortalAppend();\n }\n }\n \n private setupAutoUpdatePositioning(): void {\n if (!this.portalContainer || !this.component) return;\n \n this.cleanupAutoUpdatePositioning();\n \n const referenceElement = this.component.shadowRoot?.querySelector('[slot=\"anchor\"]')?.assignedElements({ flatten: true })[0] as HTMLElement || \n this.component.querySelector('[slot=\"trigger\"]')?.assignedElements({ flatten: true })[0] as HTMLElement ||\n this.component;\n \n this.cleanupAutoUpdate = autoUpdate(\n referenceElement,\n this.portalContainer,\n () => {\n this.computeFloatingUIPosition();\n },\n {\n ancestorScroll: true,\n ancestorResize: true,\n elementResize: true,\n layoutShift: true,\n animationFrame: true\n }\n );\n }\n \n private cleanupAutoUpdatePositioning(): void {\n if (this.cleanupAutoUpdate) {\n this.cleanupAutoUpdate();\n this.cleanupAutoUpdate = null;\n }\n }\n \n private injectStylesToDocument(): void {\n if (!this.portalContainer) return;\n \n const styleId = PortalUtils.generateStyleId();\n \n if (document.getElementById(styleId)) return;\n \n const componentStyles = (this.component.constructor as any).styles;\n if (!componentStyles) return;\n \n const styleElement = document.createElement('style');\n styleElement.id = styleId;\n styleElement.textContent = PortalUtils.extractStylesAsCSS(componentStyles);\n \n document.head.appendChild(styleElement);\n \n (this.portalContainer as any).__injectedStyleId = styleId;\n }\n \n private adoptStylesToPortalAppend(): void {\n if (!this.portalContainer) return;\n this.injectStylesToDocument();\n }\n \n setupPortalAppend(): void {\n if (!this.component.portal) return;\n \n this.component.updateComplete.then(() => {\n setTimeout(() => {\n if (this.component.open) {\n this.clonedPanel = this.createPortalPanel();\n \n this.portalContainer = this.createPortalAppendContainer();\n this.portalContainer.appendChild(this.clonedPanel);\n document.body.appendChild(this.portalContainer);\n \n this.adoptStylesToPortalAppend();\n \n this.clonedPanel.style.display = '';\n this.positionPortalAppend();\n \n this.setupPortalEventListeners();\n \n this.setupAutoUpdatePositioning();\n \n this.boundHandleWindowResize = this.handleWindowResize.bind(this);\n window.addEventListener('resize', this.boundHandleWindowResize);\n }\n }, 10);\n });\n }\n \n private createPortalPanel(): HTMLElement {\n return PortalContentUtils.createPortalPanel(this.component);\n }\n \n private setupPortalEventListeners(): void {\n PortalEventUtils.setupPortalEventListeners(this.clonedPanel!, this.component);\n }\n \n cleanupPortalAppend(): void {\n this.cleanupAutoUpdatePositioning();\n \n if (this.portalContainer && this.portalContainer.parentNode) {\n const injectedStyleId = (this.portalContainer as any).__injectedStyleId;\n if (injectedStyleId) {\n const styleElement = document.getElementById(injectedStyleId);\n if (styleElement) {\n styleElement.remove();\n }\n }\n \n this.portalContainer.parentNode.removeChild(this.portalContainer);\n }\n \n if (this.boundHandleWindowResize) {\n window.removeEventListener('resize', this.boundHandleWindowResize);\n this.boundHandleWindowResize = null;\n }\n \n this.portalContainer = null;\n this.clonedPanel = null;\n this.measuredPanelHeight = null;\n this.currentPlacement = 'bottom-start';\n this.currentMiddlewareData = null;\n }\n \n get portalContainerElement(): HTMLElement | null {\n return this.portalContainer;\n }\n \n resetMeasuredHeight(): void {\n this.measuredPanelHeight = null;\n }\n \n forceReposition(): void {\n if (this.portalContainer) {\n this.computeFloatingUIPosition();\n }\n }\n \n getCurrentPlacement(): Placement {\n return this.currentPlacement;\n }\n \n getCurrentMiddlewareData(): MiddlewareData | null {\n return this.currentMiddlewareData;\n }\n \n isUsingFloatingUI(): boolean {\n return this.cleanupAutoUpdate !== null;\n }\n \n isPositioningOptimal(): boolean {\n if (!this.portalContainer || !this.currentMiddlewareData) return true;\n \n const referenceElement = this.component.shadowRoot?.querySelector('[slot=\"anchor\"]')?.assignedElements({ flatten: true })[0] as HTMLElement || \n this.component.querySelector('[slot=\"trigger\"]')?.assignedElements({ flatten: true })[0] as HTMLElement ||\n this.component;\n const rect = referenceElement.getBoundingClientRect();\n const viewportHeight = window.innerHeight;\n const spaceBelow = viewportHeight - rect.bottom;\n const spaceAbove = rect.top;\n \n const isAbove = this.currentPlacement.startsWith('top');\n const isBelow = this.currentPlacement.startsWith('bottom');\n \n if (isAbove && spaceBelow > spaceAbove) return false;\n if (isBelow && spaceAbove > spaceBelow) return false;\n \n return true;\n }\n \n updatePortalPanel(): void {\n if (this.portalContainer && this.clonedPanel) {\n PortalContentUtils.updatePortalPanel(this.clonedPanel, this.component);\n this.forceReposition();\n }\n }\n }\n \n "],"names":["DropdownPortalManager","p","component","this","portalContainer","measuredPanelHeight","clonedPanel","cleanupAutoUpdate","currentPlacement","currentMiddlewareData","boundHandleWindowResize","_createClass","key","value","createPortalAppendContainer","container","document","createElement","style","position","zIndex","pointerEvents","width","maxWidth","minWidth","className","positionPortalAppend","open","measurePanelHeight","computeFloatingUIPosition","visibility","top","left","offsetHeight","_computeFloatingUIPosition","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_this$component$shado","_this$component$query","t","i","_yield$this$calculate","_s","_o","_e","_h","wrap","_callee$","_context2","prev","next","referenceElement","shadowRoot","querySelector","assignedElements","flatten","floatingElement","calculateFloatingUIPosition","x","y","placement","middlewareData","applyFloatingUIPosition","t0","console","warn","error","fallbackPositioning","stop","_callee2","o","e","h","_callee2$","_context3","boundary","PortalUtils","findBoundaryElements","initialPlacement","getInitialPlacement","middleware","createFloatingUIMiddleware","computePosition","strategy","platform","createCustomPlatform","abrupt","sent","offset","distance","sync","push","size","apply","handleSizeMiddleware","bind","padding","flip","fallbackPlacements","getFallbackPlacements","fallbackStrategy","shift","crossAxis","availableWidth","availableHeight","elements","rects","_ref","maxHeight","calculateOptimalHeight","reference","window","innerHeight","floating","height","concat","setProperty","basePlacement","placements","startsWith","referenceRect","getBoundingClientRect","Object","assign","applyCollisionData","placementClass","split","_this$component$shado2","_this$component$query2","rect","viewportHeight","viewportWidth","innerWidth","spaceBelow","bottom","spaceAbove","spaceRight","right","spaceLeft","topPosition","leftPosition","Math","max","min","calculateAndSetAutoSizeProperties","updatePortalAppendPosition","portal","handleWindowResize","setupAutoUpdatePositioning","cleanupAutoUpdatePositioning","_this$component$query3","autoUpdate","ancestorScroll","ancestorResize","elementResize","layoutShift","animationFrame","injectStylesToDocument","styleId","generateStyleId","getElementById","componentStyles","constructor","styles","styleElement","id","textContent","extractStylesAsCSS","head","appendChild","__injectedStyleId","adoptStylesToPortalAppend","setupPortalAppend","updateComplete","then","setTimeout","createPortalPanel","body","display","setupPortalEventListeners","addEventListener","PortalContentUtils","PortalEventUtils","cleanupPortalAppend","parentNode","injectedStyleId","remove","removeChild","removeEventListener","get","portalContainerElement","resetMeasuredHeight","forceReposition","getCurrentPlacement","getCurrentMiddlewareData","isUsingFloatingUI","isPositioningOptimal","_this$component$shado4","_this$component$query4","isAbove","isBelow","updatePortalPanel"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ import{c as t,o as i,s,f as o,a as e,p as h,b as a}from"../floating-ui.dom-cc9126da.esm.js";import{P as n,a as l,b as r}from"./portal-utils.esm.js";class p{constructor(t){this.portalContainer=null,this.measuredPanelHeight=null,this.clonedPanel=null,this.cleanupAutoUpdate=null,this.currentPlacement="bottom-start",this.currentMiddlewareData=null,this.boundHandleWindowResize=null,this.component=t}createPortalAppendContainer(){const t=document.createElement("div");return t.style.position="absolute",t.style.zIndex="9999",t.style.pointerEvents="none",t.style.width="auto",t.style.maxWidth="none",t.style.minWidth="auto",t.className="nile-dropdown-portal-append",t}positionPortalAppend(){this.portalContainer&&this.component.open&&(this.measurePanelHeight(),this.computeFloatingUIPosition())}measurePanelHeight(){!this.measuredPanelHeight&&this.portalContainer&&(this.portalContainer.style.position="absolute",this.portalContainer.style.visibility="hidden",this.portalContainer.style.top="0px",this.portalContainer.style.left="0px",this.portalContainer.offsetHeight,this.measuredPanelHeight=this.portalContainer.offsetHeight,this.portalContainer.style.visibility="")}async computeFloatingUIPosition(){if(!this.portalContainer)return;const t=this.component.shadowRoot?.querySelector('[slot="anchor"]')?.assignedElements({flatten:!0})[0]||this.component.querySelector('[slot="trigger"]')?.assignedElements({flatten:!0})[0]||this.component,i=this.portalContainer;try{const{x:s,y:o,placement:e,middlewareData:h}=await this.calculateFloatingUIPosition(t,i);this.applyFloatingUIPosition(i,t,s,o,e,h)}catch(t){console.warn("Floating UI positioning failed, falling back to simple positioning:",t),this.fallbackPositioning()}}async calculateFloatingUIPosition(i,s){const o=n.findBoundaryElements(i),e=this.getInitialPlacement(),h=this.createFloatingUIMiddleware(o);return await t(i,s,{placement:e,strategy:"fixed",middleware:h,platform:this.createCustomPlatform()})}getInitialPlacement(){return this.component.placement||"bottom-start"}createFloatingUIMiddleware(t){const h=[i(this.component.distance||0)];return this.component.sync&&h.push(s({apply:this.handleSizeMiddleware.bind(this),padding:10,boundary:t})),h.push(o({fallbackPlacements:this.getFallbackPlacements(),fallbackStrategy:"bestFit",padding:10,boundary:t})),h.push(e({padding:10,crossAxis:!0,boundary:t})),h}handleSizeMiddleware({availableWidth:t,availableHeight:i,elements:s,rects:o}){const e=n.calculateOptimalHeight(o.reference,window.innerHeight,this.currentPlacement);"width"!==this.component.sync&&"both"!==this.component.sync||(s.floating.style.width=`${o.reference.width}px`),"height"!==this.component.sync&&"both"!==this.component.sync||(s.floating.style.height=`${o.reference.height}px`),s.floating.style.maxHeight=`${e}px`,s.floating.style.setProperty("--auto-size-available-width",`${t}px`),s.floating.style.setProperty("--auto-size-available-height",`${e}px`)}getFallbackPlacements(){const t=this.component.placement||"bottom-start",i=[];return t.startsWith("top")?i.push("bottom-start","bottom","bottom-end","top","top-end","right-start","left-start"):t.startsWith("bottom")?i.push("top-start","top","top-end","bottom","bottom-end","right-start","left-start"):t.startsWith("left")?i.push("right-start","right","right-end","left","left-end","top-start","bottom-start"):t.startsWith("right")&&i.push("left-start","left","left-end","right","right-end","top-start","bottom-start"),i}createCustomPlatform(){return h}applyFloatingUIPosition(t,i,s,o,e,h){const a=i.getBoundingClientRect();Object.assign(t.style,{left:`${s}px`,top:`${o}px`,position:"fixed",pointerEvents:"auto",width:"auto",minWidth:"auto"}),"width"!==this.component.sync&&"both"!==this.component.sync||(t.style.width=`${a.width}px`),this.currentPlacement=e,this.currentMiddlewareData=h,n.applyCollisionData(t,h,e);const l=e.split("-")[0];t.className=`nile-dropdown-portal-append dropdown--open dropdown__panel--${l}`}fallbackPositioning(){if(!this.portalContainer)return;const t=(this.component.shadowRoot?.querySelector('[slot="anchor"]')?.assignedElements({flatten:!0})[0]||this.component.querySelector('[slot="trigger"]')?.assignedElements({flatten:!0})[0]||this.component).getBoundingClientRect(),i=window.innerHeight,s=window.innerWidth,o=i-t.bottom,e=t.top,h=s-t.right,a=t.left;let n,l,r,p=t.left;const d=this.component.placement||"bottom-start";d.startsWith("bottom")?(r=Math.max(o-20,100),n=t.bottom+(this.component.distance||0),l="bottom"):d.startsWith("top")?(r=Math.max(e-20,100),n=Math.max(t.top-r-(this.component.distance||0),10),l="top"):d.startsWith("right")?(r=Math.max(Math.min(h,o,e)-20,100),n=t.top,p=t.right+(this.component.distance||0),l="right"):(r=Math.max(Math.min(a,o,e)-20,100),n=t.top,p=Math.max(t.left-200-(this.component.distance||0),10),l="left"),this.portalContainer.style.left=`${p}px`,this.portalContainer.style.top=`${n}px`,this.portalContainer.style.maxHeight=`${r}px`,this.portalContainer.style.pointerEvents="auto",this.portalContainer.style.width="auto",this.portalContainer.style.minWidth="auto","width"!==this.component.sync&&"both"!==this.component.sync||(this.portalContainer.style.width=`${t.width}px`),this.portalContainer.className=`nile-dropdown-portal-append dropdown__panel--${l}`,this.calculateAndSetAutoSizeProperties(t,n,l)}calculateAndSetAutoSizeProperties(t,i,s){if(!this.portalContainer)return;const o=window.innerHeight,e=window.innerWidth;let h,a=e-t.left-10;"top"===s?h=t.top-10:"bottom"===s?h=o-t.bottom-10:"left"===s?(h=Math.min(o-t.top,t.bottom),a=t.left-10):(h=Math.min(o-t.top,t.bottom),a=e-t.right-10),this.portalContainer.style.setProperty("--auto-size-available-height",`${Math.max(h,100)}px`),this.portalContainer.style.setProperty("--auto-size-available-width",`${Math.max(a,200)}px`)}updatePortalAppendPosition(){this.component.portal&&this.portalContainer&&this.positionPortalAppend()}handleWindowResize(){this.component.portal&&this.portalContainer&&this.positionPortalAppend()}setupAutoUpdatePositioning(){if(!this.portalContainer||!this.component)return;this.cleanupAutoUpdatePositioning();const t=this.component.shadowRoot?.querySelector('[slot="anchor"]')?.assignedElements({flatten:!0})[0]||this.component.querySelector('[slot="trigger"]')?.assignedElements({flatten:!0})[0]||this.component;this.cleanupAutoUpdate=a(t,this.portalContainer,(()=>{this.computeFloatingUIPosition()}),{ancestorScroll:!0,ancestorResize:!0,elementResize:!0,layoutShift:!0,animationFrame:!0})}cleanupAutoUpdatePositioning(){this.cleanupAutoUpdate&&(this.cleanupAutoUpdate(),this.cleanupAutoUpdate=null)}injectStylesToDocument(){if(!this.portalContainer)return;const t=n.generateStyleId();if(document.getElementById(t))return;const i=this.component.constructor.styles;if(!i)return;const s=document.createElement("style");s.id=t,s.textContent=n.extractStylesAsCSS(i),document.head.appendChild(s),this.portalContainer.t=t}adoptStylesToPortalAppend(){this.portalContainer&&this.injectStylesToDocument()}setupPortalAppend(){this.component.portal&&this.component.updateComplete.then((()=>{setTimeout((()=>{this.component.open&&(this.clonedPanel=this.createPortalPanel(),this.portalContainer=this.createPortalAppendContainer(),this.portalContainer.appendChild(this.clonedPanel),document.body.appendChild(this.portalContainer),this.adoptStylesToPortalAppend(),this.clonedPanel.style.display="",this.positionPortalAppend(),this.setupPortalEventListeners(),this.setupAutoUpdatePositioning(),this.boundHandleWindowResize=this.handleWindowResize.bind(this),window.addEventListener("resize",this.boundHandleWindowResize))}),10)}))}createPortalPanel(){return l.createPortalPanel(this.component)}setupPortalEventListeners(){r.setupPortalEventListeners(this.clonedPanel,this.component)}cleanupPortalAppend(){if(this.cleanupAutoUpdatePositioning(),this.portalContainer&&this.portalContainer.parentNode){const t=this.portalContainer.t;if(t){const i=document.getElementById(t);i&&i.remove()}this.portalContainer.parentNode.removeChild(this.portalContainer)}this.boundHandleWindowResize&&(window.removeEventListener("resize",this.boundHandleWindowResize),this.boundHandleWindowResize=null),this.portalContainer=null,this.clonedPanel=null,this.measuredPanelHeight=null,this.currentPlacement="bottom-start",this.currentMiddlewareData=null}get portalContainerElement(){return this.portalContainer}resetMeasuredHeight(){this.measuredPanelHeight=null}forceReposition(){this.portalContainer&&this.computeFloatingUIPosition()}getCurrentPlacement(){return this.currentPlacement}getCurrentMiddlewareData(){return this.currentMiddlewareData}isUsingFloatingUI(){return null!==this.cleanupAutoUpdate}isPositioningOptimal(){if(!this.portalContainer||!this.currentMiddlewareData)return!0;const t=(this.component.shadowRoot?.querySelector('[slot="anchor"]')?.assignedElements({flatten:!0})[0]||this.component.querySelector('[slot="trigger"]')?.assignedElements({flatten:!0})[0]||this.component).getBoundingClientRect(),i=window.innerHeight-t.bottom,s=t.top,o=this.currentPlacement.startsWith("top"),e=this.currentPlacement.startsWith("bottom");return!(o&&i>s)&&!(e&&s>i)}updatePortalPanel(){this.portalContainer&&this.clonedPanel&&(l.updatePortalPanel(this.clonedPanel,this.component),this.forceReposition())}}export{p as D};
@@ -0,0 +1,2 @@
1
+ System.register([],function(_export,_context){"use strict";var t,e,a;function _typeof(o){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(o){return typeof o;}:function(o){return o&&"function"==typeof Symbol&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o;},_typeof(o);}function _classCallCheck(a,n){if(!(a instanceof n))throw new TypeError("Cannot call a class as a function");}function _defineProperties(e,r){for(var t=0;t<r.length;t++){var o=r[t];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,_toPropertyKey(o.key),o);}}function _createClass(e,r,t){return r&&_defineProperties(e.prototype,r),t&&_defineProperties(e,t),Object.defineProperty(e,"prototype",{writable:!1}),e;}function _toPropertyKey(t){var i=_toPrimitive(t,"string");return"symbol"==_typeof(i)?i:i+"";}function _toPrimitive(t,r){if("object"!=_typeof(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var i=e.call(t,r||"default");if("object"!=_typeof(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.");}return("string"===r?String:Number)(t);}return{setters:[],execute:function execute(){_export("P",t=/*#__PURE__*/function(){function t(){_classCallCheck(this,t);}return _createClass(t,null,[{key:"calculateAvailableSpace",value:function calculateAvailableSpace(_t){var e=_t.getBoundingClientRect(),a=window.innerHeight,o=window.innerWidth,s=a-e.bottom,i=e.top,n=o-e.right;return{spaceAbove:i,spaceBelow:s,spaceLeft:e.left,spaceRight:n,viewportHeight:a,viewportWidth:o};}},{key:"getOptimalPlacement",value:function getOptimalPlacement(_t2){var _this$calculateAvaila=this.calculateAvailableSpace(_t2),e=_this$calculateAvaila.spaceAbove,a=_this$calculateAvaila.spaceBelow,o=_this$calculateAvaila.spaceLeft,s=_this$calculateAvaila.spaceRight;return a>=200&&a>=e?"bottom":e>=200&&e>a?"top":s>=200&&s>=o?"right":o>=200?"left":"bottom";}},{key:"findBoundaryElements",value:function findBoundaryElements(_t3){var e=[];var a=_t3.parentElement;for(;a&&a!==document.body;){var _t4=window.getComputedStyle(a),o=_t4.overflow,s=_t4.overflowY,i=_t4.overflowX;"auto"!==o&&"scroll"!==o&&"auto"!==s&&"scroll"!==s&&"auto"!==i&&"scroll"!==i||e.push(a),(a.hasAttribute("data-floating-boundary")||a.classList.contains("floating-boundary")||a.classList.contains("scroll-container"))&&e.push(a),a=a.parentElement;}return e.length>0?e:void 0;}},{key:"calculateOptimalHeight",value:function calculateOptimalHeight(_t5,e,a){var o=e-(_t5.y+_t5.height),s=_t5.y;return a.startsWith("top")?Math.max(s-20,100):a.startsWith("bottom")?Math.max(o-20,100):(a.startsWith("left")||a.startsWith("right"),Math.max(Math.min(s,o)-20,100));}},{key:"extractStylesAsCSS",value:function extractStylesAsCSS(_t6){var _this=this;return"string"==typeof _t6?_t6:Array.isArray(_t6)?_t6.map(function(_t7){return _this.extractStylesAsCSS(_t7);}).join("\n"):_t6&&"object"==_typeof(_t6)&&_t6.cssText?_t6.cssText:"";}},{key:"generateStyleId",value:function generateStyleId(){return"nile-dropdown-styles-".concat(Math.random().toString(36).substring(2,11));}},{key:"isPositioningOptimal",value:function isPositioningOptimal(_t8,e){var _this$calculateAvaila2=this.calculateAvailableSpace(e),a=_this$calculateAvaila2.spaceAbove,o=_this$calculateAvaila2.spaceBelow,s=_this$calculateAvaila2.spaceLeft,i=_this$calculateAvaila2.spaceRight,n=_t8.startsWith("top"),l=_t8.startsWith("bottom"),r=_t8.startsWith("left"),c=_t8.startsWith("right");return!(n&&o>a)&&!(l&&a>o)&&!(r&&i>s)&&!(c&&s>i);}},{key:"applyCollisionData",value:function applyCollisionData(_t9,e,a){if(e.flip){var o=e.flip.overflows;if(_t9.setAttribute("data-placement",a),o&&o.length>0){var _e=o.map(function(_t10){return _t10.placement;}).join(",");_t9.setAttribute("data-overflow",_e);}else _t9.removeAttribute("data-overflow");}if(e.shift){var _e$shift=e.shift,_a=_e$shift.x,_o=_e$shift.y;void 0===_a||void 0===_o||0===_a&&0===_o?_t9.removeAttribute("data-shift"):_t9.setAttribute("data-shift","".concat(_a,",").concat(_o));}if(e.size){var _e$size=e.size,_a2=_e$size.availableWidth,_o2=_e$size.availableHeight;void 0!==_a2&&_t9.setAttribute("data-available-width",_a2.toString()),void 0!==_o2&&_t9.setAttribute("data-available-height",_o2.toString());}}}]);}());_export("a",e=/*#__PURE__*/function(){function e(){_classCallCheck(this,e);}return _createClass(e,null,[{key:"createPortalPanel",value:function createPortalPanel(t){var _t$shadowRoot;var _e2=(_t$shadowRoot=t.shadowRoot)===null||_t$shadowRoot===void 0?void 0:_t$shadowRoot.querySelector(".dropdown__panel");if(!_e2){var _e3=t.querySelector("[slot]");if(!_e3||"trigger"===_e3.getAttribute("slot"))return document.createElement("div");}var a=(_e2===null||_e2===void 0?void 0:_e2.assignedElements({flatten:!0}))||[];if(0===a.length){a=Array.from(t.children).filter(function(t){var _e4=t.getAttribute("slot");return!_e4||"trigger"!==_e4;});}var o=document.createElement("div");return o.className="dropdown__panel",o.setAttribute("part","panel"),o.setAttribute("aria-hidden","false"),o.setAttribute("aria-labelledby","dropdown"),a.forEach(function(t){var _e5=t.cloneNode(!0);o.appendChild(_e5);}),o;}},{key:"updatePortalPanel",value:function updatePortalPanel(t,_e6){var _e6$shadowRoot;if(!t)return;t.innerHTML="";var a=(_e6$shadowRoot=_e6.shadowRoot)===null||_e6$shadowRoot===void 0?void 0:_e6$shadowRoot.querySelector(".dropdown__panel");var o=(a===null||a===void 0?void 0:a.assignedElements({flatten:!0}))||[];if(0===o.length){o=Array.from(_e6.children).filter(function(t){var _e7=t.getAttribute("slot");return!_e7||"trigger"!==_e7;});}o.forEach(function(_e8){var a=_e8.cloneNode(!0);t.appendChild(a);});}}]);}());_export("b",a=/*#__PURE__*/function(){function a(){_classCallCheck(this,a);}return _createClass(a,null,[{key:"setupPortalEventListeners",value:function setupPortalEventListeners(t,e){t&&(this.setupMenuSelectListeners(t,e),this.setupKeyDownListeners(t,e));}},{key:"setupMenuSelectListeners",value:function setupMenuSelectListeners(t,e){t&&t.addEventListener("nile-select",function(t){var _a3=t;e.handlePanelSelect&&e.handlePanelSelect(_a3);});}},{key:"setupKeyDownListeners",value:function setupKeyDownListeners(t,e){t&&t.addEventListener("keydown",function(t){e.handleKeyDown&&e.handleKeyDown(t);});}}]);}());}};});
2
+ //# sourceMappingURL=portal-utils.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"portal-utils.cjs.js","sources":["../../../src/nile-side-bar-action/portal-utils.ts"],"sourcesContent":["import { \n type Placement,\n type MiddlewareData\n } from '@floating-ui/dom';\n \n export class PortalUtils {\n static calculateAvailableSpace(referenceElement: HTMLElement): {\n spaceAbove: number;\n spaceBelow: number;\n spaceLeft: number;\n spaceRight: number;\n viewportHeight: number;\n viewportWidth: number;\n } {\n const rect = referenceElement.getBoundingClientRect();\n const viewportHeight = window.innerHeight;\n const viewportWidth = window.innerWidth;\n const spaceBelow = viewportHeight - rect.bottom;\n const spaceAbove = rect.top;\n const spaceRight = viewportWidth - rect.right;\n const spaceLeft = rect.left;\n \n return { spaceAbove, spaceBelow, spaceLeft, spaceRight, viewportHeight, viewportWidth };\n }\n \n static getOptimalPlacement(referenceElement: HTMLElement): Placement {\n const { spaceAbove, spaceBelow, spaceLeft, spaceRight } = this.calculateAvailableSpace(referenceElement);\n \n if (spaceBelow >= 200 && spaceBelow >= spaceAbove) {\n return 'bottom';\n } else if (spaceAbove >= 200 && spaceAbove > spaceBelow) {\n return 'top';\n }\n \n if (spaceRight >= 200 && spaceRight >= spaceLeft) {\n return 'right';\n } else if (spaceLeft >= 200) {\n return 'left';\n }\n \n return 'bottom';\n }\n \n static findBoundaryElements(component: HTMLElement): Element[] | undefined {\n const boundaryElements: Element[] = [];\n \n let currentElement = component.parentElement;\n \n while (currentElement && currentElement !== document.body) {\n const computedStyle = window.getComputedStyle(currentElement);\n const overflow = computedStyle.overflow;\n const overflowY = computedStyle.overflowY;\n const overflowX = computedStyle.overflowX;\n \n if (overflow === 'auto' || overflow === 'scroll' || \n overflowY === 'auto' || overflowY === 'scroll' ||\n overflowX === 'auto' || overflowX === 'scroll') {\n boundaryElements.push(currentElement);\n }\n \n if (currentElement.hasAttribute('data-floating-boundary') ||\n currentElement.classList.contains('floating-boundary') ||\n currentElement.classList.contains('scroll-container')) {\n boundaryElements.push(currentElement);\n }\n \n currentElement = currentElement.parentElement;\n }\n \n return boundaryElements.length > 0 ? boundaryElements : undefined;\n }\n \n static calculateOptimalHeight(\n referenceRect: { x: number; y: number; width: number; height: number },\n viewportHeight: number,\n placement: Placement\n ): number {\n const spaceBelow = viewportHeight - (referenceRect.y + referenceRect.height);\n const spaceAbove = referenceRect.y;\n \n if (placement.startsWith('top')) {\n return Math.max(spaceAbove - 20, 100);\n } else if (placement.startsWith('bottom')) {\n return Math.max(spaceBelow - 20, 100);\n } else if (placement.startsWith('left') || placement.startsWith('right')) {\n return Math.max(Math.min(spaceAbove, spaceBelow) - 20, 100);\n }\n \n return Math.max(Math.min(spaceAbove, spaceBelow) - 20, 100);\n }\n \n static extractStylesAsCSS(styles: any): string {\n if (typeof styles === 'string') {\n return styles;\n }\n \n if (Array.isArray(styles)) {\n return styles.map(style => this.extractStylesAsCSS(style)).join('\\n');\n }\n \n if (styles && typeof styles === 'object' && styles.cssText) {\n return styles.cssText;\n }\n \n return '';\n }\n \n static generateStyleId(): string {\n return `nile-dropdown-styles-${Math.random().toString(36).substring(2, 11)}`;\n }\n \n static isPositioningOptimal(\n placement: Placement,\n referenceElement: HTMLElement\n ): boolean {\n const { spaceAbove, spaceBelow, spaceLeft, spaceRight } = this.calculateAvailableSpace(referenceElement);\n \n const isAbove = placement.startsWith('top');\n const isBelow = placement.startsWith('bottom');\n const isLeft = placement.startsWith('left');\n const isRight = placement.startsWith('right');\n \n if (isAbove && spaceBelow > spaceAbove) return false;\n if (isBelow && spaceAbove > spaceBelow) return false;\n if (isLeft && spaceRight > spaceLeft) return false;\n if (isRight && spaceLeft > spaceRight) return false;\n \n return true;\n }\n \n static applyCollisionData(\n element: HTMLElement,\n middlewareData: MiddlewareData,\n placement: Placement\n ): void {\n if (middlewareData.flip) {\n const { overflows } = middlewareData.flip;\n \n element.setAttribute('data-placement', placement);\n \n if (overflows && overflows.length > 0) {\n const overflowPlacements = overflows.map(overflow => overflow.placement).join(',');\n element.setAttribute('data-overflow', overflowPlacements);\n } else {\n element.removeAttribute('data-overflow');\n }\n }\n \n if (middlewareData.shift) {\n const { x, y } = middlewareData.shift;\n \n if (x !== undefined && y !== undefined && (x !== 0 || y !== 0)) {\n element.setAttribute('data-shift', `${x},${y}`);\n } else {\n element.removeAttribute('data-shift');\n }\n }\n \n if (middlewareData.size) {\n const { availableWidth, availableHeight } = middlewareData.size;\n \n if (availableWidth !== undefined) {\n element.setAttribute('data-available-width', availableWidth.toString());\n }\n if (availableHeight !== undefined) {\n element.setAttribute('data-available-height', availableHeight.toString());\n }\n }\n }\n }\n \n export class PortalContentUtils {\n static createPortalPanel(component: any): HTMLElement {\n // Find the panel slot content (typically a nile-menu)\n const panelSlot = component.shadowRoot?.querySelector('.dropdown__panel') as HTMLSlotElement;\n if (!panelSlot) {\n // Fallback: try to find in light DOM\n const slot = component.querySelector('[slot]');\n if (!slot || slot.getAttribute('slot') === 'trigger') {\n return document.createElement('div');\n }\n }\n \n // Get assigned elements from the slot\n let assignedElements: Element[] = panelSlot?.assignedElements({ flatten: true }) as Element[] || [];\n \n // If no assigned elements, try direct children that aren't in trigger slot\n if (assignedElements.length === 0) {\n const children = Array.from(component.children) as Element[];\n assignedElements = children.filter(child => {\n const slot = child.getAttribute('slot');\n return !slot || slot !== 'trigger';\n });\n }\n \n // Create a container for the cloned panel\n const panelContainer = document.createElement('div');\n panelContainer.className = 'dropdown__panel';\n panelContainer.setAttribute('part', 'panel');\n panelContainer.setAttribute('aria-hidden', 'false');\n panelContainer.setAttribute('aria-labelledby', 'dropdown');\n \n // Clone all assigned elements\n assignedElements.forEach((element: Element) => {\n const clonedElement = element.cloneNode(true) as HTMLElement;\n panelContainer.appendChild(clonedElement);\n });\n \n return panelContainer;\n }\n \n static updatePortalPanel(clonedPanel: HTMLElement, component: any): void {\n if (!clonedPanel) return;\n \n // Clear existing content\n clonedPanel.innerHTML = '';\n \n // Re-clone the panel content\n const panelSlot = component.shadowRoot?.querySelector('.dropdown__panel') as HTMLSlotElement;\n let assignedElements: Element[] = panelSlot?.assignedElements({ flatten: true }) as Element[] || [];\n \n if (assignedElements.length === 0) {\n const children = Array.from(component.children) as Element[];\n assignedElements = children.filter(child => {\n const slot = child.getAttribute('slot');\n return !slot || slot !== 'trigger';\n });\n }\n \n assignedElements.forEach((element: Element) => {\n const clonedElement = element.cloneNode(true) as HTMLElement;\n clonedPanel.appendChild(clonedElement);\n });\n }\n }\n \n export class PortalEventUtils {\n static setupPortalEventListeners(clonedPanel: HTMLElement, component: any): void {\n if (!clonedPanel) return;\n \n this.setupMenuSelectListeners(clonedPanel, component);\n this.setupKeyDownListeners(clonedPanel, component);\n }\n \n static setupMenuSelectListeners(clonedPanel: HTMLElement, component: any): void {\n if (!clonedPanel) return;\n \n // Listen for nile-select events from menu items\n clonedPanel.addEventListener('nile-select', (event: Event) => {\n const customEvent = event as CustomEvent;\n // Forward the event to the original component\n if (component.handlePanelSelect) {\n component.handlePanelSelect(customEvent);\n }\n });\n }\n \n static setupKeyDownListeners(clonedPanel: HTMLElement, component: any): void {\n if (!clonedPanel) return;\n \n // Listen for keydown events (like Escape)\n clonedPanel.addEventListener('keydown', (event: KeyboardEvent) => {\n if (component.handleKeyDown) {\n component.handleKeyDown(event);\n }\n });\n }\n }\n \n "],"names":["PortalUtils","t","_classCallCheck","_createClass","key","value","calculateAvailableSpace","referenceElement","rect","getBoundingClientRect","viewportHeight","window","innerHeight","viewportWidth","innerWidth","spaceBelow","bottom","spaceAbove","top","spaceRight","right","spaceLeft","left","o","getOptimalPlacement","_this$calculateAvaila","this","findBoundaryElements","component","boundaryElements","currentElement","parentElement","document","body","computedStyle","getComputedStyle","overflow","overflowY","overflowX","push","hasAttribute","classList","contains","length","undefined","calculateOptimalHeight","referenceRect","placement","y","height","startsWith","Math","max","min","extractStylesAsCSS","styles","_this","Array","isArray","map","style","join","_typeof","cssText","generateStyleId","concat","random","toString","substring","isPositioningOptimal","_this$calculateAvaila2","isAbove","isBelow","isLeft","isRight","applyCollisionData","element","middlewareData","flip","overflows","setAttribute","overflowPlacements","removeAttribute","shift","_e$shift","x","size","_e$size","availableWidth","availableHeight","_export","PortalContentUtils","createPortalPanel","_t$shadowRoot","panelSlot","shadowRoot","querySelector","slot","getAttribute","createElement","assignedElements","flatten","from","children","filter","child","panelContainer","className","forEach","clonedElement","cloneNode","appendChild","updatePortalPanel","clonedPanel","innerHTML","PortalEventUtils","a","setupPortalEventListeners","setupMenuSelectListeners","setupKeyDownListeners","addEventListener","event","customEvent","handlePanelSelect","handleKeyDown"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ class t{static calculateAvailableSpace(t){const e=t.getBoundingClientRect(),a=window.innerHeight,o=window.innerWidth,s=a-e.bottom,i=e.top,n=o-e.right;return{spaceAbove:i,spaceBelow:s,spaceLeft:e.left,spaceRight:n,viewportHeight:a,viewportWidth:o}}static getOptimalPlacement(t){const{spaceAbove:e,spaceBelow:a,spaceLeft:o,spaceRight:s}=this.calculateAvailableSpace(t);return a>=200&&a>=e?"bottom":e>=200&&e>a?"top":s>=200&&s>=o?"right":o>=200?"left":"bottom"}static findBoundaryElements(t){const e=[];let a=t.parentElement;for(;a&&a!==document.body;){const t=window.getComputedStyle(a),o=t.overflow,s=t.overflowY,i=t.overflowX;"auto"!==o&&"scroll"!==o&&"auto"!==s&&"scroll"!==s&&"auto"!==i&&"scroll"!==i||e.push(a),(a.hasAttribute("data-floating-boundary")||a.classList.contains("floating-boundary")||a.classList.contains("scroll-container"))&&e.push(a),a=a.parentElement}return e.length>0?e:void 0}static calculateOptimalHeight(t,e,a){const o=e-(t.y+t.height),s=t.y;return a.startsWith("top")?Math.max(s-20,100):a.startsWith("bottom")?Math.max(o-20,100):(a.startsWith("left")||a.startsWith("right"),Math.max(Math.min(s,o)-20,100))}static extractStylesAsCSS(t){return"string"==typeof t?t:Array.isArray(t)?t.map((t=>this.extractStylesAsCSS(t))).join("\n"):t&&"object"==typeof t&&t.cssText?t.cssText:""}static generateStyleId(){return`nile-dropdown-styles-${Math.random().toString(36).substring(2,11)}`}static isPositioningOptimal(t,e){const{spaceAbove:a,spaceBelow:o,spaceLeft:s,spaceRight:i}=this.calculateAvailableSpace(e),n=t.startsWith("top"),l=t.startsWith("bottom"),r=t.startsWith("left"),c=t.startsWith("right");return!(n&&o>a)&&(!(l&&a>o)&&(!(r&&i>s)&&!(c&&s>i)))}static applyCollisionData(t,e,a){if(e.flip){const{overflows:o}=e.flip;if(t.setAttribute("data-placement",a),o&&o.length>0){const e=o.map((t=>t.placement)).join(",");t.setAttribute("data-overflow",e)}else t.removeAttribute("data-overflow")}if(e.shift){const{x:a,y:o}=e.shift;void 0===a||void 0===o||0===a&&0===o?t.removeAttribute("data-shift"):t.setAttribute("data-shift",`${a},${o}`)}if(e.size){const{availableWidth:a,availableHeight:o}=e.size;void 0!==a&&t.setAttribute("data-available-width",a.toString()),void 0!==o&&t.setAttribute("data-available-height",o.toString())}}}class e{static createPortalPanel(t){const e=t.shadowRoot?.querySelector(".dropdown__panel");if(!e){const e=t.querySelector("[slot]");if(!e||"trigger"===e.getAttribute("slot"))return document.createElement("div")}let a=e?.assignedElements({flatten:!0})||[];if(0===a.length){a=Array.from(t.children).filter((t=>{const e=t.getAttribute("slot");return!e||"trigger"!==e}))}const o=document.createElement("div");return o.className="dropdown__panel",o.setAttribute("part","panel"),o.setAttribute("aria-hidden","false"),o.setAttribute("aria-labelledby","dropdown"),a.forEach((t=>{const e=t.cloneNode(!0);o.appendChild(e)})),o}static updatePortalPanel(t,e){if(!t)return;t.innerHTML="";const a=e.shadowRoot?.querySelector(".dropdown__panel");let o=a?.assignedElements({flatten:!0})||[];if(0===o.length){o=Array.from(e.children).filter((t=>{const e=t.getAttribute("slot");return!e||"trigger"!==e}))}o.forEach((e=>{const a=e.cloneNode(!0);t.appendChild(a)}))}}class a{static setupPortalEventListeners(t,e){t&&(this.setupMenuSelectListeners(t,e),this.setupKeyDownListeners(t,e))}static setupMenuSelectListeners(t,e){t&&t.addEventListener("nile-select",(t=>{const a=t;e.handlePanelSelect&&e.handlePanelSelect(a)}))}static setupKeyDownListeners(t,e){t&&t.addEventListener("keydown",(t=>{e.handleKeyDown&&e.handleKeyDown(t)}))}}export{t as P,e as a,a as b};
@@ -11,6 +11,7 @@ import { css } from 'lit';
11
11
  export const styles = css `
12
12
  :host {
13
13
  display: inline-block;
14
+ width: 100%;
14
15
  }
15
16
 
16
17
  * {
@@ -34,7 +35,7 @@ export const styles = css `
34
35
 
35
36
  .horizontal-div {
36
37
  max-height: 62px;
37
- width: 648px;
38
+ width: 100%;
38
39
  min-width: 230px;
39
40
  padding: 12px;
40
41
  display: flex;
@@ -261,7 +262,7 @@ export const styles = css `
261
262
  white-space: nowrap;
262
263
  text-overflow: ellipsis;
263
264
  overflow: hidden;
264
- width: 500px;
265
+ width: 100%;
265
266
  }
266
267
 
267
268
  .preview-file-info p:last-of-type{
@@ -272,7 +273,7 @@ export const styles = css `
272
273
  white-space: nowrap;
273
274
  text-overflow: ellipsis;
274
275
  overflow: hidden;
275
- width: 500px;
276
+ width: 100%;
276
277
  }
277
278
 
278
279
  .no-preview > nile-icon:hover {
@@ -582,6 +583,9 @@ export const styles = css `
582
583
  li {
583
584
  list-style-type: none;
584
585
  }
586
+ .preview-file-info p {
587
+ width: 100%;
588
+ }
585
589
  `;
586
590
  export default [styles];
587
591
  //# sourceMappingURL=nile-file-preview.css.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"nile-file-preview.css.js","sourceRoot":"","sources":["../../../src/nile-file-preview/nile-file-preview.css.ts"],"names":[],"mappings":"AAAA;;;;;EAKE;AAEF,OAAO,EAAC,GAAG,EAAC,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8jBxB,CAAC;AAEF,eAAe,CAAC,MAAM,CAAC,CAAC","sourcesContent":["/**\n* Copyright Aquera Inc 2023\n*\n* This source code is licensed under the BSD-3-Clause license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\nimport {css} from 'lit';\n\n/**\n * FileUpload CSS\n */\nexport const styles = css`\n :host {\n display: inline-block;\n }\n\n * {\n padding: 0px;\n margin: 0px;\n box-sizing: border-box;\n }\n\n .wrapper {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n gap: 18px;\n height: auto;\n }\n\n input {\n display: none;\n }\n\n .horizontal-div {\n max-height: 62px;\n width: 648px;\n min-width: 230px;\n padding: 12px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 6px;\n border-radius: var(--nile-radius-radius-xs);\n border: 1px dashed var(--nile-colors-neutral-500);\n color: var(--nile-colors-dark-900);\n background-color: var(--nile-colors-white-base);\n }\n \n .hover-state {\n border-color: var(--nile-colors-primary-600);\n }\n\n .vertical-div {\n height: auto;\n min-height: 156px;\n min-width: 240px;\n width: 240px;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n align-items: center;\n gap: 18px;\n padding: 12px;\n border-radius: var(--nile-radius-radius-xs);\n color: var(--nile-colors-dark-900);\n border: 1px dashed var(--nile-colors-neutral-500);\n background-color: var(--nile-colors-white-base);\n position: relative; \n margin-bottom: 10px;\n }\n\n .vertical-div:hover {\n border-color: var(--nile-colors-blue-500);\n }\n\n .outer-div-border {\n border: 1px solid var(--nile-colors-neutral-400);\n }\n\n .inner-div {\n display: flex;\n align-items: center;\n justify-content: flex-start;\n gap: 18px;\n box-sizing: border-box;\n }\n\n .icons-container {\n display: flex;\n gap: 4px;\n }\n\n .general-icon {\n transform: rotate(-18.11deg);\n position: relative;\n bottom: 3px;\n }\n\n .image-icon {\n transform: rotate(15deg);\n }\n\n .icon:hover {\n cursor: pointer;\n }\n\n /* Uploading State */\n nile-loader {\n line-height: 0;\n }\n\n .uploading {\n height: 62px;\n width: 648px;\n padding: 12px;\n min-width: 230px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 18px;\n box-sizing: border-box;\n border: 1px solid var(--nile-colors-neutral-400);\n border-radius: 4px;\n background-color: var(--nile-colors-white-base);\n }\n \n .uploading:hover {\n border-color: var(--nile-colors-neutral-400);\n }\n\n .progress-bar-container {\n width: 100%;\n display: flex;\n flex-direction: column;\n gap: 6px;\n }\n\n .progress-bar-percent {\n width: 100%;\n display: flex;\n justify-content: space-between;\n font-size: var(--nile-type-scale-2);\n font-weight: var(--nile-font-weight-regular);\n }\n\n .progress-bar-container p {\n margin: 0px;\n }\n\n .progress-bar-container > p {\n font-size: var(--nile-type-scale-1);\n color: var(--nile-colors-dark-500);\n text-align: left;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n width: 222px;\n }\n\n .progress-bar-container .horizontal-file-name {\n font-size: var(--nile-type-scale-1);\n font-weight: var(--nile-font-weight-regular);\n color: var(--nile-colors-dark-500);\n text-align: left;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n width: 538px;\n }\n \n .progress-bar-container .vertical-file-name {\n font-size: var(--nile-type-scale-1);\n font-weight: var(--nile-font-weight-regular);\n color: var(--nile-colors-dark-500);\n text-align: left;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n width: 212px;\n }\n\n /* PREVIEW STATE */\n .preview {\n border: 1px solid var(--nile-colors-neutral-400);\n }\n\n .preview:hover {\n border-color: var(--nile-colors-neutral-400);\n }\n\n .preview-inner {\n display: flex;\n align-items: center;\n gap: 18px;\n }\n\n .preview-image-container {\n height: 42px;\n width: 42px;\n }\n\n .preview-image-container img, iframe {\n height: 42px;\n width: 42px;\n object-fit: contain;\n border-radius: var(--nile-radius-radius-xs);\n border: 1px solid var(--nile-colors-neutral-400);\n }\n\n .preview nile-icon:hover {\n cursor: pointer;\n }\n\n /* NO PREVIEW STATE */\n .no-preview {\n border: 1px solid var(--nile-colors-neutral-400);\n }\n\n .no-preview:hover {\n border-color: var(--nile-colors-neutral-400);\n }\n\n .no-preview-container {\n display: flex;\n align-items: center;\n gap: 18px;\n }\n\n .document-icon {\n height: 40px;\n width: 40px;\n border-radius: var(--nile-radius-radius-xs);\n padding: 2px 3px 2px 3px;\n display: flex;\n justify-content: center;\n align-items: center;\n border: 1px solid var(--nile-colors-blue-400);\n background-color: var(--nile-colors-blue-100);\n }\n\n .document-icon nile-icon {\n height: 40px;\n width: 40px;\n }\n \n .preview-file-info {\n width: 100%;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: flex-start;\n gap: 4px;\n }\n\n .preview-file-info p {\n margin: 0px;\n font-size: var(--nile-type-scale-3);\n font-weight: var(--nile-font-weight-regular);\n text-align: left;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n width: 500px;\n }\n\n .preview-file-info p:last-of-type{\n color: var(--nile-colors-neutral-700);\n font-size: var(--nile-type-scale-2);\n font-weight: var(--nile-font-weight-regular);\n text-align: left;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n width: 500px;\n }\n\n .no-preview > nile-icon:hover {\n cursor: pointer;\n }\n\n /* ERROR STATE */\n .error {\n border: 1px solid var(--nile-colors-neutral-400);\n }\n\n .error:hover {\n border-color: var(--nile-colors-neutral-400);\n }\n\n .error-container {\n width: 95%;\n display: flex;\n align-items: center;\n gap: 18px;\n }\n\n .error-icon {\n height: 40px;\n width: 40px;\n border-radius: var(--nile-radius-radius-xs);\n padding: 2px 3px 2px 3px;\n display: flex;\n justify-content: center;\n align-items: center;\n border: 1px solid var(--nile-colors-red-400);\n background-color: var(--nile-colors-red-100);\n }\n\n .error-icon nile-icon {\n height: 40px;\n width: 40px;\n }\n \n .file-info {\n width: 100%;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: flex-start;\n gap: 4px;\n }\n\n .file-info p {\n margin: 0px;\n font-size: var(--nile-type-scale-3);\n font-weight: var(--nile-font-weight-regular);\n text-align: left;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n width: 538px;\n }\n \n .file-info nile-tooltip span, .file-info span {\n color: var(--nile-colors-red-700);\n font-size: var(--nile-type-scale-2);\n font-weight: var(--nile-font-weight-regular);\n max-width: 90%;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n text-align: left;\n }\n\n .error > nile-icon:hover {\n cursor: pointer;\n }\n\n .file-info .horizontal-file-name {\n font-size: var(--nile-type-scale-3);\n font-weight: var(--nile-font-weight-regular);\n color: var(--nile-colors-dark-900);\n text-align: left;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n width: 538px;\n }\n\n /* VERTICAL STATE START */\n /* Default State */\n .vertical-default {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 18px\n }\n\n .content-container {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n gap: 8px;\n text-align: center;\n }\n\n .content-container h4 {\n font-weight: var(--nile-font-weight-regular);\n text-align: center;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n width: 222px;\n }\n\n .content-container p:first-child {\n margin: 0px;\n font-size: var(--nile-type-scale-3);\n font-weight: var(--nile-font-weight-regular);\n text-align: center;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n width: 222px;\n }\n\n .content-container p:last-child {\n margin: 0px;\n font-size: var(--nile-type-scale-2);\n font-weight: var(--nile-font-weight-regular);\n color: var(--nile-colors-neutral-700);\n text-align: center;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n width: 222px;\n }\n\n /* Drag State */\n .vertical-drag {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n gap:18px;\n font-size: var(--nile-type-scale-3);\n color: var(--nile-colors-blue-700);\n background-color: var(--nile-colors-blue-100);\n border-color: var(--nile-colors-blue-500);\n }\n\n /* Uploading State */\n .vertical-uploading {\n display: flex;\n flex-direction: column;\n justify-content: flex-end;\n align-items: center;\n border: 1px solid var(--nile-colors-neutral-400);\n }\n\n .vertical-uploading:hover {\n border-color: var(--nile-colors-neutral-400);\n }\n\n .loading {\n display: flex;\n justify-content: center;\n align-items: center;\n padding-top: 40px;\n }\n\n .corner-icon {\n position: absolute;\n top: 10px;\n right: 10px;\n }\n\n /* Preview State */\n .vertical-preview {\n border: 1px solid var(--nile-colors-neutral-400);\n }\n\n .vertical-preview:hover {\n border-color: var(--nile-colors-neutral-400);\n }\n\n .image-preview {\n border: 1px solid var(--nile-colors-neutral-400);\n object-fit: cover;\n width: 80px;\n height: 80px;\n border-radius: var(--nile-radius-radius-xs);\n }\n\n /* Vertical No Preview State */\n .vertical-no-preview {\n border: 1px solid var(--nile-colors-neutral-400);\n }\n\n .vertical-no-preview:hover {\n border-color: var(--nile-colors-neutral-400);\n }\n\n .vertical-document-icon {\n height: 80px;\n width: 80px;\n padding: 2px 3px 2px 3px;\n display: flex;\n justify-content: center;\n align-items: center;\n border-radius: var(--nile-radius-radius-xs);\n border: 1px solid var(--nile-colors-blue-400);\n background-color: var(--nile-colors-blue-100);\n }\n\n /* Veritcal Error State */\n .vertical-error {\n border: 1px solid var(--nile-colors-neutral-400);\n }\n\n .vertical-error:hover {\n border-color: var(--nile-colors-neutral-400);\n }\n\n .error-bg {\n background-color: var(--nile-colors-red-100);\n border: 1px solid var(--nile-colors-red-400);\n }\n\n .file-info-vertical-state {\n width: 100%;\n text-align: center;\n }\n\n .file-info-vertical-state p {\n margin: 0px;\n font-size: var(--nile-type-scale-3);\n font-weight: var(--nile-font-weight-regular);\n padding-bottom: 6px;\n text-align: center;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n max-width: 222px;\n }\n \n .file-info-vertical-state nile-tooltip span, .file-info-vertical-state span {\n color: var(--nile-colors-red-700);\n font-size: var(--nile-type-scale-2);\n font-weight: var(--nile-font-weight-regular);\n text-align: center;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n display: block;\n max-width: 212px;\n }\n\n .error-message {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n gap: 8px;\n margin: 0px;\n font-size: var(--nile-type-scale-3);\n font-weight: var(--nile-font-weight-regular);\n text-align: center\n }\n\n .error-p {\n color: var(--nile-colors-red-700);\n font-size: var(--nile-type-scale-2);\n width: 216px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n text-align: center;\n }\n\n .error-p p {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n margin: 0;\n }\n\n /* Displaing uploaded files CSS */\n .display-files {\n display: flex;\n flex-direction: column;\n justify-content: flex-start;\n align-items: center;\n gap: 8px;\n width: 648px;\n min-width: 230px;\n max-height: 200px;\n overflow-y: auto;\n border: 1px solid var(--nile-colors-neutral-700);\n border-radius: var(--nile-radius-radius-xs);\n scrollbar-width: none;\n padding: 12px;\n }\n\n ul, li {\n width: 100%;\n }\n\n li {\n list-style-type: none;\n }\n`;\n\nexport default [styles];\n"]}
1
+ {"version":3,"file":"nile-file-preview.css.js","sourceRoot":"","sources":["../../../src/nile-file-preview/nile-file-preview.css.ts"],"names":[],"mappings":"AAAA;;;;;EAKE;AAEF,OAAO,EAAC,GAAG,EAAC,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkkBxB,CAAC;AAEF,eAAe,CAAC,MAAM,CAAC,CAAC","sourcesContent":["/**\n* Copyright Aquera Inc 2023\n*\n* This source code is licensed under the BSD-3-Clause license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\nimport {css} from 'lit';\n\n/**\n * FileUpload CSS\n */\nexport const styles = css`\n :host {\n display: inline-block;\n width: 100%;\n }\n\n * {\n padding: 0px;\n margin: 0px;\n box-sizing: border-box;\n }\n\n .wrapper {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n gap: 18px;\n height: auto;\n }\n\n input {\n display: none;\n }\n\n .horizontal-div {\n max-height: 62px;\n width: 100%;\n min-width: 230px;\n padding: 12px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 6px;\n border-radius: var(--nile-radius-radius-xs);\n border: 1px dashed var(--nile-colors-neutral-500);\n color: var(--nile-colors-dark-900);\n background-color: var(--nile-colors-white-base);\n }\n \n .hover-state {\n border-color: var(--nile-colors-primary-600);\n }\n\n .vertical-div {\n height: auto;\n min-height: 156px;\n min-width: 240px;\n width: 240px;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n align-items: center;\n gap: 18px;\n padding: 12px;\n border-radius: var(--nile-radius-radius-xs);\n color: var(--nile-colors-dark-900);\n border: 1px dashed var(--nile-colors-neutral-500);\n background-color: var(--nile-colors-white-base);\n position: relative; \n margin-bottom: 10px;\n }\n\n .vertical-div:hover {\n border-color: var(--nile-colors-blue-500);\n }\n\n .outer-div-border {\n border: 1px solid var(--nile-colors-neutral-400);\n }\n\n .inner-div {\n display: flex;\n align-items: center;\n justify-content: flex-start;\n gap: 18px;\n box-sizing: border-box;\n }\n\n .icons-container {\n display: flex;\n gap: 4px;\n }\n\n .general-icon {\n transform: rotate(-18.11deg);\n position: relative;\n bottom: 3px;\n }\n\n .image-icon {\n transform: rotate(15deg);\n }\n\n .icon:hover {\n cursor: pointer;\n }\n\n /* Uploading State */\n nile-loader {\n line-height: 0;\n }\n\n .uploading {\n height: 62px;\n width: 648px;\n padding: 12px;\n min-width: 230px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 18px;\n box-sizing: border-box;\n border: 1px solid var(--nile-colors-neutral-400);\n border-radius: 4px;\n background-color: var(--nile-colors-white-base);\n }\n \n .uploading:hover {\n border-color: var(--nile-colors-neutral-400);\n }\n\n .progress-bar-container {\n width: 100%;\n display: flex;\n flex-direction: column;\n gap: 6px;\n }\n\n .progress-bar-percent {\n width: 100%;\n display: flex;\n justify-content: space-between;\n font-size: var(--nile-type-scale-2);\n font-weight: var(--nile-font-weight-regular);\n }\n\n .progress-bar-container p {\n margin: 0px;\n }\n\n .progress-bar-container > p {\n font-size: var(--nile-type-scale-1);\n color: var(--nile-colors-dark-500);\n text-align: left;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n width: 222px;\n }\n\n .progress-bar-container .horizontal-file-name {\n font-size: var(--nile-type-scale-1);\n font-weight: var(--nile-font-weight-regular);\n color: var(--nile-colors-dark-500);\n text-align: left;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n width: 538px;\n }\n \n .progress-bar-container .vertical-file-name {\n font-size: var(--nile-type-scale-1);\n font-weight: var(--nile-font-weight-regular);\n color: var(--nile-colors-dark-500);\n text-align: left;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n width: 212px;\n }\n\n /* PREVIEW STATE */\n .preview {\n border: 1px solid var(--nile-colors-neutral-400);\n }\n\n .preview:hover {\n border-color: var(--nile-colors-neutral-400);\n }\n\n .preview-inner {\n display: flex;\n align-items: center;\n gap: 18px;\n }\n\n .preview-image-container {\n height: 42px;\n width: 42px;\n }\n\n .preview-image-container img, iframe {\n height: 42px;\n width: 42px;\n object-fit: contain;\n border-radius: var(--nile-radius-radius-xs);\n border: 1px solid var(--nile-colors-neutral-400);\n }\n\n .preview nile-icon:hover {\n cursor: pointer;\n }\n\n /* NO PREVIEW STATE */\n .no-preview {\n border: 1px solid var(--nile-colors-neutral-400);\n }\n\n .no-preview:hover {\n border-color: var(--nile-colors-neutral-400);\n }\n\n .no-preview-container {\n display: flex;\n align-items: center;\n gap: 18px;\n }\n\n .document-icon {\n height: 40px;\n width: 40px;\n border-radius: var(--nile-radius-radius-xs);\n padding: 2px 3px 2px 3px;\n display: flex;\n justify-content: center;\n align-items: center;\n border: 1px solid var(--nile-colors-blue-400);\n background-color: var(--nile-colors-blue-100);\n }\n\n .document-icon nile-icon {\n height: 40px;\n width: 40px;\n }\n \n .preview-file-info {\n width: 100%;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: flex-start;\n gap: 4px;\n }\n\n .preview-file-info p {\n margin: 0px;\n font-size: var(--nile-type-scale-3);\n font-weight: var(--nile-font-weight-regular);\n text-align: left;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n width: 100%;\n }\n\n .preview-file-info p:last-of-type{\n color: var(--nile-colors-neutral-700);\n font-size: var(--nile-type-scale-2);\n font-weight: var(--nile-font-weight-regular);\n text-align: left;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n width: 100%;\n }\n\n .no-preview > nile-icon:hover {\n cursor: pointer;\n }\n\n /* ERROR STATE */\n .error {\n border: 1px solid var(--nile-colors-neutral-400);\n }\n\n .error:hover {\n border-color: var(--nile-colors-neutral-400);\n }\n\n .error-container {\n width: 95%;\n display: flex;\n align-items: center;\n gap: 18px;\n }\n\n .error-icon {\n height: 40px;\n width: 40px;\n border-radius: var(--nile-radius-radius-xs);\n padding: 2px 3px 2px 3px;\n display: flex;\n justify-content: center;\n align-items: center;\n border: 1px solid var(--nile-colors-red-400);\n background-color: var(--nile-colors-red-100);\n }\n\n .error-icon nile-icon {\n height: 40px;\n width: 40px;\n }\n \n .file-info {\n width: 100%;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: flex-start;\n gap: 4px;\n }\n\n .file-info p {\n margin: 0px;\n font-size: var(--nile-type-scale-3);\n font-weight: var(--nile-font-weight-regular);\n text-align: left;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n width: 538px;\n }\n \n .file-info nile-tooltip span, .file-info span {\n color: var(--nile-colors-red-700);\n font-size: var(--nile-type-scale-2);\n font-weight: var(--nile-font-weight-regular);\n max-width: 90%;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n text-align: left;\n }\n\n .error > nile-icon:hover {\n cursor: pointer;\n }\n\n .file-info .horizontal-file-name {\n font-size: var(--nile-type-scale-3);\n font-weight: var(--nile-font-weight-regular);\n color: var(--nile-colors-dark-900);\n text-align: left;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n width: 538px;\n }\n\n /* VERTICAL STATE START */\n /* Default State */\n .vertical-default {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 18px\n }\n\n .content-container {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n gap: 8px;\n text-align: center;\n }\n\n .content-container h4 {\n font-weight: var(--nile-font-weight-regular);\n text-align: center;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n width: 222px;\n }\n\n .content-container p:first-child {\n margin: 0px;\n font-size: var(--nile-type-scale-3);\n font-weight: var(--nile-font-weight-regular);\n text-align: center;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n width: 222px;\n }\n\n .content-container p:last-child {\n margin: 0px;\n font-size: var(--nile-type-scale-2);\n font-weight: var(--nile-font-weight-regular);\n color: var(--nile-colors-neutral-700);\n text-align: center;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n width: 222px;\n }\n\n /* Drag State */\n .vertical-drag {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n gap:18px;\n font-size: var(--nile-type-scale-3);\n color: var(--nile-colors-blue-700);\n background-color: var(--nile-colors-blue-100);\n border-color: var(--nile-colors-blue-500);\n }\n\n /* Uploading State */\n .vertical-uploading {\n display: flex;\n flex-direction: column;\n justify-content: flex-end;\n align-items: center;\n border: 1px solid var(--nile-colors-neutral-400);\n }\n\n .vertical-uploading:hover {\n border-color: var(--nile-colors-neutral-400);\n }\n\n .loading {\n display: flex;\n justify-content: center;\n align-items: center;\n padding-top: 40px;\n }\n\n .corner-icon {\n position: absolute;\n top: 10px;\n right: 10px;\n }\n\n /* Preview State */\n .vertical-preview {\n border: 1px solid var(--nile-colors-neutral-400);\n }\n\n .vertical-preview:hover {\n border-color: var(--nile-colors-neutral-400);\n }\n\n .image-preview {\n border: 1px solid var(--nile-colors-neutral-400);\n object-fit: cover;\n width: 80px;\n height: 80px;\n border-radius: var(--nile-radius-radius-xs);\n }\n\n /* Vertical No Preview State */\n .vertical-no-preview {\n border: 1px solid var(--nile-colors-neutral-400);\n }\n\n .vertical-no-preview:hover {\n border-color: var(--nile-colors-neutral-400);\n }\n\n .vertical-document-icon {\n height: 80px;\n width: 80px;\n padding: 2px 3px 2px 3px;\n display: flex;\n justify-content: center;\n align-items: center;\n border-radius: var(--nile-radius-radius-xs);\n border: 1px solid var(--nile-colors-blue-400);\n background-color: var(--nile-colors-blue-100);\n }\n\n /* Veritcal Error State */\n .vertical-error {\n border: 1px solid var(--nile-colors-neutral-400);\n }\n\n .vertical-error:hover {\n border-color: var(--nile-colors-neutral-400);\n }\n\n .error-bg {\n background-color: var(--nile-colors-red-100);\n border: 1px solid var(--nile-colors-red-400);\n }\n\n .file-info-vertical-state {\n width: 100%;\n text-align: center;\n }\n\n .file-info-vertical-state p {\n margin: 0px;\n font-size: var(--nile-type-scale-3);\n font-weight: var(--nile-font-weight-regular);\n padding-bottom: 6px;\n text-align: center;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n max-width: 222px;\n }\n \n .file-info-vertical-state nile-tooltip span, .file-info-vertical-state span {\n color: var(--nile-colors-red-700);\n font-size: var(--nile-type-scale-2);\n font-weight: var(--nile-font-weight-regular);\n text-align: center;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n display: block;\n max-width: 212px;\n }\n\n .error-message {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n gap: 8px;\n margin: 0px;\n font-size: var(--nile-type-scale-3);\n font-weight: var(--nile-font-weight-regular);\n text-align: center\n }\n\n .error-p {\n color: var(--nile-colors-red-700);\n font-size: var(--nile-type-scale-2);\n width: 216px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n text-align: center;\n }\n\n .error-p p {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n margin: 0;\n }\n\n /* Displaing uploaded files CSS */\n .display-files {\n display: flex;\n flex-direction: column;\n justify-content: flex-start;\n align-items: center;\n gap: 8px;\n width: 648px;\n min-width: 230px;\n max-height: 200px;\n overflow-y: auto;\n border: 1px solid var(--nile-colors-neutral-700);\n border-radius: var(--nile-radius-radius-xs);\n scrollbar-width: none;\n padding: 12px;\n }\n\n ul, li {\n width: 100%;\n }\n\n li {\n list-style-type: none;\n }\n .preview-file-info p {\n width: 100%;\n }\n`;\n\nexport default [styles];\n"]}