@nylas/react 1.1.0-canary.16 → 1.1.0-canary.17

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 (121) hide show
  1. package/dist/add-circle-icon_2.entry-936fd73b.cjs +1 -0
  2. package/dist/add-circle-icon_2.entry-ce6aaa1d.js +25 -0
  3. package/dist/{archive-icon_7.entry-54dc5cc2.js → archive-icon_7.entry-60e900b6.js} +18 -18
  4. package/dist/{archive-icon_7.entry-073d9915.cjs → archive-icon_7.entry-8c8317e9.cjs} +1 -1
  5. package/dist/{arrow-icon.entry-869a1db9.js → arrow-icon.entry-057db95a.js} +2 -2
  6. package/dist/{arrow-icon.entry-bada78b8.cjs → arrow-icon.entry-2d4e9572.cjs} +1 -1
  7. package/dist/bold-icon_3.entry-557c6007.js +35 -0
  8. package/dist/{bold-icon_3.entry-cc6150c9.cjs → bold-icon_3.entry-ba732761.cjs} +1 -1
  9. package/dist/{button-component.entry-a0533c8b.js → button-component.entry-22d0ac2e.js} +2 -2
  10. package/dist/{button-component.entry-3703ecff.cjs → button-component.entry-385f9581.cjs} +1 -1
  11. package/dist/{calendar-cancel-icon.entry-a9ab0b09.js → calendar-cancel-icon.entry-820cf967.js} +5 -5
  12. package/dist/{calendar-cancel-icon.entry-0f1d98b3.cjs → calendar-cancel-icon.entry-b2657caf.cjs} +1 -1
  13. package/dist/{calendar-check-icon_2.entry-a62b5d2c.js → calendar-check-icon_2.entry-128a5d67.js} +9 -9
  14. package/dist/{calendar-check-icon_2.entry-6b83717e.cjs → calendar-check-icon_2.entry-b13e7cbb.cjs} +1 -1
  15. package/dist/{calendar-icon.entry-ddc22561.js → calendar-icon.entry-a43e6011.js} +5 -5
  16. package/dist/{calendar-icon.entry-08f83da9.cjs → calendar-icon.entry-d17d7cfb.cjs} +1 -1
  17. package/dist/calendar-info-icon_28.entry-b4f09bfe.cjs +1 -0
  18. package/dist/{calendar-info-icon_27.entry-f02f44b7.js → calendar-info-icon_28.entry-b71c23c5.js} +526 -700
  19. package/dist/{chevron-icon_3.entry-978b52d5.cjs → chevron-icon_3.entry-4807a0b1.cjs} +1 -1
  20. package/dist/{chevron-icon_3.entry-f27202a2.js → chevron-icon_3.entry-e0796c69.js} +5 -5
  21. package/dist/{clock-icon_2.entry-b7b8ef46.cjs → clock-icon_2.entry-267614c2.cjs} +1 -1
  22. package/dist/{clock-icon_2.entry-2277fd45.js → clock-icon_2.entry-e959ae50.js} +7 -7
  23. package/dist/{constants-f34b9c6e-ccdbc4ac.cjs → constants-f34b9c6e-ebc2e19c.cjs} +1 -1
  24. package/dist/{constants-f34b9c6e-bbca6b6e.js → constants-f34b9c6e-efe2836b.js} +1 -1
  25. package/dist/{document-refresh-icon.entry-656a5e02.js → document-refresh-icon.entry-b4c217df.js} +2 -2
  26. package/dist/{document-refresh-icon.entry-5795e2a9.cjs → document-refresh-icon.entry-b8850675.cjs} +1 -1
  27. package/dist/elements/index.d.ts +1 -0
  28. package/dist/{elements-dc5b338e-d48368b1.cjs → elements-dc5b338e-a33785e3.cjs} +1 -1
  29. package/dist/{elements-dc5b338e-c4a07acc.js → elements-dc5b338e-b0a290ae.js} +1 -1
  30. package/dist/{focus-visible-e8093c16-10c0fa06.js → focus-visible-e8093c16-5f1ae916.js} +1 -1
  31. package/dist/{focus-visible-e8093c16-c86f3687.cjs → focus-visible-e8093c16-d2afb13d.cjs} +1 -1
  32. package/dist/{forward-icon_6.entry-07cd4b52.cjs → forward-icon_6.entry-0009e4f0.cjs} +3 -3
  33. package/dist/{forward-icon_6.entry-39d788af.js → forward-icon_6.entry-53683e82.js} +9 -9
  34. package/dist/{globe-icon.entry-60a53e89.js → globe-icon.entry-dbb47687.js} +4 -4
  35. package/dist/{globe-icon.entry-76c90d97.cjs → globe-icon.entry-df67eab8.cjs} +1 -1
  36. package/dist/google-logo-icon_4.entry-77f3b86e.js +454 -0
  37. package/dist/google-logo-icon_4.entry-c5db1be3.cjs +1 -0
  38. package/dist/index-53420959-16700a42.cjs +1 -0
  39. package/dist/index-53420959-f0c4f9af.js +5 -0
  40. package/dist/{index-f383e3c4.js → index-5851f0a2.js} +902 -901
  41. package/dist/{index-6d9eeb53-38c9f47c.js → index-6d9eeb53-2f37342f.js} +2 -2
  42. package/dist/{index-6d9eeb53-66c114b2.cjs → index-6d9eeb53-ded66877.cjs} +1 -1
  43. package/dist/{index-f435e814.cjs → index-769f0fdd.cjs} +3 -3
  44. package/dist/{index.es-9cc0eb3c-510db795.js → index.es-9cc0eb3c-2cf4632f.js} +1 -1
  45. package/dist/{index.es-9cc0eb3c-09dc620b.cjs → index.es-9cc0eb3c-e8de46e6.cjs} +1 -1
  46. package/dist/{info-icon_2.entry-a61859ac.js → info-icon_2.entry-c27ac645.js} +3 -3
  47. package/dist/{info-icon_2.entry-7fe8bcd9.cjs → info-icon_2.entry-e355fb7d.cjs} +1 -1
  48. package/dist/{input-component.entry-12f60175.js → input-component.entry-a38a65da.js} +4 -4
  49. package/dist/{input-component.entry-04dcc655.cjs → input-component.entry-ef2b397d.cjs} +1 -1
  50. package/dist/input-dropdown_2.entry-9e50060e.cjs +1 -0
  51. package/dist/{input-dropdown_2.entry-0e5925a7.js → input-dropdown_2.entry-ce1da1b3.js} +35 -28
  52. package/dist/loading-icon.entry-175aca19.cjs +1 -0
  53. package/dist/loading-icon.entry-4ab88ed8.js +15 -0
  54. package/dist/{mailbox-store-64b4ef7c-017196a6.js → mailbox-store-64b4ef7c-47dac9aa.js} +2 -2
  55. package/dist/{mailbox-store-64b4ef7c-1e6c96cc.cjs → mailbox-store-64b4ef7c-ebe84c96.cjs} +1 -1
  56. package/dist/{nylas-booked-event-card_10.entry-5a9a4cc6.cjs → nylas-booked-event-card_10.entry-6de99d57.cjs} +1 -1
  57. package/dist/{nylas-booked-event-card_10.entry-2dff7f16.js → nylas-booked-event-card_10.entry-ef9c2d62.js} +9 -9
  58. package/dist/{nylas-custom-booking-flow.entry-36f7a943.cjs → nylas-custom-booking-flow.entry-c59c1306.cjs} +1 -1
  59. package/dist/{nylas-custom-booking-flow.entry-feed589b.js → nylas-custom-booking-flow.entry-f31400e2.js} +7 -7
  60. package/dist/{nylas-form-card.entry-49f519dd.js → nylas-form-card.entry-b189e066.js} +8 -8
  61. package/dist/{nylas-form-card.entry-e9f09602.cjs → nylas-form-card.entry-bc048703.cjs} +1 -1
  62. package/dist/{nylas-if-state.entry-127694a9.js → nylas-if-state.entry-5bdf8669.js} +3 -3
  63. package/dist/{nylas-if-state.entry-81916723.cjs → nylas-if-state.entry-933c79e0.cjs} +1 -1
  64. package/dist/{nylas-list-folders.entry-f4c68fb9.cjs → nylas-list-folders.entry-5d1bef7f.cjs} +1 -1
  65. package/dist/{nylas-list-folders.entry-e3e9ec1f.js → nylas-list-folders.entry-f0e7ae4e.js} +3 -3
  66. package/dist/{nylas-list-threads.entry-f0a1b9d1.cjs → nylas-list-threads.entry-3e300e7e.cjs} +1 -1
  67. package/dist/{nylas-list-threads.entry-fa4b5318.js → nylas-list-threads.entry-3f7451ad.js} +3 -3
  68. package/dist/{nylas-login.entry-aeac716e.cjs → nylas-login.entry-dbf9e11f.cjs} +1 -1
  69. package/dist/{nylas-login.entry-6d17e994.js → nylas-login.entry-e3b757a0.js} +7 -7
  70. package/dist/{nylas-mailbox-pagination.entry-50fba238.cjs → nylas-mailbox-pagination.entry-0db12a01.cjs} +1 -1
  71. package/dist/{nylas-mailbox-pagination.entry-c440f56a.js → nylas-mailbox-pagination.entry-6c845a2a.js} +2 -2
  72. package/dist/{nylas-mailbox-toolbar-button.entry-d3d0c870.cjs → nylas-mailbox-toolbar-button.entry-553f041a.cjs} +1 -1
  73. package/dist/{nylas-mailbox-toolbar-button.entry-14e30d36.js → nylas-mailbox-toolbar-button.entry-ec196947.js} +4 -4
  74. package/dist/{nylas-mailbox.entry-a59159c7.js → nylas-mailbox.entry-1552ad11.js} +7 -7
  75. package/dist/{nylas-mailbox.entry-2fdb3d4c.cjs → nylas-mailbox.entry-c0bbca56.cjs} +1 -1
  76. package/dist/{nylas-provider.entry-d7dbb5fc.js → nylas-provider.entry-6d286e92.js} +37 -37
  77. package/dist/{nylas-provider.entry-dfa8c7c1.cjs → nylas-provider.entry-d4bf23c2.cjs} +1 -1
  78. package/dist/{nylas-scheduler-editor.entry-67e71234.cjs → nylas-scheduler-editor.entry-00a71304.cjs} +1 -1
  79. package/dist/{nylas-scheduler-editor.entry-3b44b807.js → nylas-scheduler-editor.entry-caa1026b.js} +4 -4
  80. package/dist/{nylas-scheduling.entry-68f72bf7.js → nylas-scheduling.entry-19ff3d50.js} +3 -3
  81. package/dist/{nylas-scheduling.entry-0ce0dab9.cjs → nylas-scheduling.entry-f1fb67d2.cjs} +1 -1
  82. package/dist/{nylas-threads-refresh.entry-23a83bd4.js → nylas-threads-refresh.entry-6acf3c2b.js} +4 -4
  83. package/dist/{nylas-threads-refresh.entry-955e92c7.cjs → nylas-threads-refresh.entry-bc4c10ea.cjs} +1 -1
  84. package/dist/{nylas-threads-search.entry-8f01ee4a.js → nylas-threads-search.entry-82fa1504.js} +5 -5
  85. package/dist/{nylas-threads-search.entry-2fb6db63.cjs → nylas-threads-search.entry-ee28712c.cjs} +1 -1
  86. package/dist/nylas-time-window-picker.entry-131f84b4.cjs +1 -0
  87. package/dist/nylas-time-window-picker.entry-3c45d82e.js +316 -0
  88. package/dist/{nylas-view-thread.entry-3cf0c1ac.cjs → nylas-view-thread.entry-0d9a4aa9.cjs} +1 -1
  89. package/dist/{nylas-view-thread.entry-b957f88b.js → nylas-view-thread.entry-695a7b0b.js} +6 -6
  90. package/dist/{play-icon_2.entry-ecdf8ea4.js → play-icon_2.entry-ab47588e.js} +3 -3
  91. package/dist/{play-icon_2.entry-c92d5237.cjs → play-icon_2.entry-b1167d3a.cjs} +1 -1
  92. package/dist/react.cjs +1 -1
  93. package/dist/react.js +41 -40
  94. package/dist/{refresh-icon.entry-76e58ccb.cjs → refresh-icon.entry-28e3ade7.cjs} +1 -1
  95. package/dist/{refresh-icon.entry-480d28aa.js → refresh-icon.entry-43267155.js} +5 -5
  96. package/dist/{register-component-a5a9ca5d-438c8a96.js → register-component-a5a9ca5d-538c35c3.js} +1 -1
  97. package/dist/{register-component-a5a9ca5d-ebf633cf.cjs → register-component-a5a9ca5d-8b06415c.cjs} +1 -1
  98. package/dist/{scheduler-config-store-4a50a03d-d5a5899e.cjs → scheduler-config-store-4a50a03d-40e87f35.cjs} +1 -1
  99. package/dist/{scheduler-config-store-4a50a03d-defa6368.js → scheduler-config-store-4a50a03d-4a2e2abf.js} +1 -1
  100. package/dist/{scheduler-store-f02ce045-de4cb1f5.js → scheduler-store-f02ce045-121c1e09.js} +1 -1
  101. package/dist/{scheduler-store-f02ce045-00faab09.cjs → scheduler-store-f02ce045-f11cfad9.cjs} +1 -1
  102. package/dist/{textarea-component.entry-1c8d11af.js → textarea-component.entry-1ec19adb.js} +4 -4
  103. package/dist/{textarea-component.entry-5ff249a8.cjs → textarea-component.entry-402a369b.cjs} +1 -1
  104. package/dist/{translate-icon.entry-a55c013b.cjs → translate-icon.entry-59f4e190.cjs} +1 -1
  105. package/dist/{translate-icon.entry-3741cac0.js → translate-icon.entry-d412697e.js} +6 -6
  106. package/dist/{warning-icon.entry-445352b5.js → warning-icon.entry-3ee1f451.js} +5 -5
  107. package/dist/{warning-icon.entry-1a104c52.cjs → warning-icon.entry-aa6b2c2c.cjs} +1 -1
  108. package/package.json +2 -2
  109. package/dist/add-circle-icon_2.entry-035ffd48.cjs +0 -1
  110. package/dist/add-circle-icon_2.entry-5cadaf97.js +0 -25
  111. package/dist/bold-icon_3.entry-5695177e.js +0 -35
  112. package/dist/calendar-info-icon_27.entry-a8390790.cjs +0 -1
  113. package/dist/google-logo-icon_4.entry-5402eae2.cjs +0 -1
  114. package/dist/google-logo-icon_4.entry-d327d68f.js +0 -438
  115. package/dist/index-53420959-791b4e73.js +0 -5
  116. package/dist/index-53420959-9f979766.cjs +0 -1
  117. package/dist/input-dropdown_2.entry-d9bff099.cjs +0 -1
  118. package/dist/loading-icon.entry-51ddd748.js +0 -15
  119. package/dist/loading-icon.entry-f82786b4.cjs +0 -1
  120. package/dist/toggle-switch.entry-26d3d1c9.cjs +0 -1
  121. package/dist/toggle-switch.entry-339ab48b.js +0 -25
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("./index-769f0fdd.cjs");require("react");require("react-dom");const p=':host{display:block;position:relative;--nylas-primary:#2563eb;--nylas-error:#cc4841;--nylas-error-pressed:#992222;--nylas-wraning:#f06c00;--nylas-success:#16a392;--nylas-info:#2b8fc2;--nylas-base-0:#ffffff;--nylas-base-25:#fcfcfd;--nylas-base-50:#f8f9fc;--nylas-base-100:#eaecf5;--nylas-base-200:#d5d9eb;--nylas-base-300:#b3b8d8;--nylas-base-400:#717bbc;--nylas-base-500:#4e5ba6;--nylas-base-600:#3e4784;--nylas-base-700:#263f72;--nylas-base-800:#293056;--nylas-base-900:#101323;--nylas-base-950:#0e101b;--nylas-border-radius:0.25rem;--nylas-border-radius-2x:0.5rem;--nylas-border-radius-3x:0.75rem;--nylas-font-family:"Inter", sans-serif}@media screen and (max-width: 768px){:host{position:unset}}.dropdown{display:inline-block}.dropbtn{color:var(--nylas-base-800);padding:10px;font-size:1rem;font-family:var(--nylas-font-family);cursor:pointer;display:flex;gap:0.5rem;background:transparent;border:none;border-radius:var(--nylas-border-radius-2x);width:50px;padding:14px 16px;border-radius:var(--nylas-border-radius-2x)}.dropbtn.focus{background:transparent}.dropbtn:hover,.dropbtn:active{outline:1px solid var(--nylas-primary)}.dropbtn:active{outline:2px solid var(--nylas-primary)}.dropbtn span.chevron{display:flex;align-self:center}.dropbtn span.open{transform:rotate(90deg)}.dropbtn span.closed{transform:rotate(270deg)}.dropbtn span.selected-option{text-overflow:ellipsis;overflow:hidden;white-space:nowrap;max-width:144px;font-size:14px;line-height:20px}@media screen and (max-width: 768px){.dropbtn span.selected-option{max-width:124px;font-size:16px}}.dropdown-content{display:block;margin-top:0.5rem;background-color:var(--nylas-base-0);max-width:306px;width:max-content;max-height:336px;overflow:auto;z-index:1;border-radius:4px;position:absolute;box-shadow:0px 4px 6px -2px rgba(0, 0, 0, 0.05);box-shadow:0px 10px 15px -3px rgba(0, 0, 0, 0.1)}@media screen and (max-width: 768px){.dropdown-content{right:0;width:325px;max-width:unset}}.search-box{border-bottom:1px solid var(--nylas-base-200);padding:10px;position:sticky;top:0;background:var(--nylas-base-0)}.search-box .icon{position:absolute;top:1.25rem;left:1.25rem;color:var(--nylas-base-300)}.dropdown-content ul{padding:0;list-style-type:none;color:var(--nylas-base-900);max-height:336px}.dropdown-content ul li{padding:16px, 12px, 16px, 12px;color:black;padding:12px 16px;text-decoration:none;display:block;font-family:inherit;font-size:14px;font-weight:400;line-height:20px;letter-spacing:0px;text-align:left;cursor:pointer}.dropdown-content ul li:hover,.dropdown-content ul li:focus{background-color:var(--nylas-base-100)}.dropdown-content .selected{background-color:#e7e7e7}input[type=text]{width:-webkit-fill-available;padding:inherit;border:1px solid #ccc;border-radius:4px;position:sticky;background:no-repeat scroll 7px 7px;padding-left:30px;background-size:16px 16px}',c=p,a=class{constructor(e){s.registerInstance(this,e),this.inputOptionChanged=s.createEvent(this,"inputOptionChanged",7),this.name=void 0,this.options=[],this.defaultInputOption=void 0,this.inputValue=void 0,this.pluralizedLabel="",this.filterable=!1,this.selectedOption=this.defaultInputOption||null,this.isOpen=!1,this.filteredOptions=[...this.options],this.ariaActivedescendant="",this.shouldAutoScroll=!1}optionsChangedHandler(e,t){e!==t&&(this.filteredOptions=this.getFilteredOptions(e))}defaultSelectedOptionChangedHandler(e,t){e.label!==t.label&&(this.selectedOption=e)}inputValueChangedHandler(e,t){e!==t&&(this.inputValue=e,this.filteredOptions=this.getFilteredOptions(this.options))}componentWillLoad(){this.filteredOptions=this.getFilteredOptions(this.options),!this.selectedOption&&this.defaultInputOption&&(this.selectedOption=this.defaultInputOption),!this.selectedOption&&this.options.length>0&&(this.selectedOption=this.options[0])}getFilteredOptions(e){return this.filterable?e.filter(t=>{var i,o,r,n;return((o=t==null?void 0:t.value)==null?void 0:o.toString().toLowerCase().includes((i=this.inputValue)==null?void 0:i.toLowerCase()))||((n=t==null?void 0:t.label)==null?void 0:n.toLowerCase().includes((r=this.inputValue)==null?void 0:r.toLowerCase()))}):e}toggleDropdown(){this.isOpen=!this.isOpen}selectOption(e){this.selectedOption=e,this.toggleDropdown(),this.inputOptionChanged.emit({value:e.value,name:this.name})}handleOnInput(e){const t=e.target.value,i=this.options.findIndex(o=>o.label.toLowerCase().includes(t.toLowerCase()));i>-1&&this.scrollToViewWithinParent(i),this.inputOptionChanged.emit({value:t,name:this.name})}scrollToViewWithinParent(e){var d;const t=this.options[e],i=(d=this.el.shadowRoot)==null?void 0:d.getElementById(t.value.toString()),o=this.optionsRef;if(this.ariaActivedescendant=t.value.toString(),!i||!o)return;const r=i.getBoundingClientRect(),n=o.getBoundingClientRect();r.top<n.top?o.scrollTop-=n.top-r.top:r.bottom>n.bottom&&(o.scrollTop+=r.bottom-n.bottom)}handleSelectButtonKeyDown(e){var t;switch(e.key){case"ArrowDown":case"Enter":e.preventDefault(),this.isOpen||this.toggleDropdown(),(t=this.inputRef)==null||t.focus();break;case"Escape":this.isOpen=!1;break}}handleClick(e){if(this.isOpen){const t=e.target.value,i=this.options.findIndex(o=>o.label.toLowerCase().includes(t.toLowerCase()));i>-1&&setTimeout(()=>{this.scrollToViewWithinParent(i)},10)}}handleListboxKeydown(e){var o,r;const t=this.filteredOptions,i=t.findIndex(n=>n.value===this.ariaActivedescendant);if(e.key==="ArrowDown"||e.key==="Tab"&&!e.shiftKey){if(e.preventDefault(),i===t.length-1){this.ariaActivedescendant="",(o=this.inputRef)==null||o.focus();return}const n=i+1<t.length?i+1:0;this.ariaActivedescendant=t[n].value,this.focusOption(n)}else if(e.key==="ArrowUp"||e.key==="Tab"&&e.shiftKey){if(e.preventDefault(),i===0){this.ariaActivedescendant="",(r=this.inputRef)==null||r.focus();return}const n=i-1>=0?i-1:t.length-1;this.ariaActivedescendant=t[n].value,this.focusOption(n)}else e.key==="Enter"?(e.preventDefault(),this.ariaActivedescendant&&this.selectOption(t[i])):e.key==="Escape"&&(this.isOpen=!1)}focusOption(e){var r;const t=this.filteredOptions[e];if(!t)return;const i=t.value,o=(r=this.el.shadowRoot)==null?void 0:r.getElementById(i);o&&(o.focus(),o.scrollIntoView({behavior:"smooth",block:"nearest"}))}handleComboboxKeyDown(e){if(e.key==="ArrowDown"||e.key=="Tab"&&!e.shiftKey){if(e.preventDefault(),!this.isOpen){this.isOpen=!0,this.shouldAutoScroll=!0;return}this.ariaActivedescendant=this.filteredOptions[0].value,this.focusOption(0)}else e.key==="ArrowUp"||e.key==="Tab"&&e.shiftKey?(e.preventDefault(),this.ariaActivedescendant=this.filteredOptions[this.filteredOptions.length-1].value,this.focusOption(this.filteredOptions.length-1)):e.key==="Escape"&&(this.isOpen=!1)}handleOutsideClick(e){!e.composedPath().includes(this.el)&&this.isOpen&&(this.isOpen=!1)}render(){return s.h("div",{key:"46501632a9bcea1b4af6d5b4b073904e14d0cf50",class:"dropdown",part:"id_dropdown"},s.h("input",{key:"67e4a24466b39b39161066bb9915ca67467043f3",type:"text",name:this.name,id:this.name,part:"id_dropdown-input",class:{dropbtn:!0,open:this.isOpen},value:this.inputValue,onClick:e=>{this.toggleDropdown(),this.shouldAutoScroll=!0,this.handleClick(e)},"aria-haspopup":"listbox","aria-label":this.name,"aria-expanded":this.isOpen?"true":"false",onKeyDown:e=>this.handleComboboxKeyDown(e),onInput:e=>this.handleOnInput(e)}),this.isOpen?s.h("div",{class:"dropdown-content",part:"id_dropdown-content",ref:e=>this.optionsRef=e},s.h("ul",{tabindex:"-1",role:"listbox","aria-label":this.name,"aria-activedescendant":this.ariaActivedescendant,onKeyDown:e=>this.handleListboxKeydown(e)},this.filteredOptions.map(e=>s.h("li",{tabindex:"0",key:e.value,id:e.value,onClick:()=>this.selectOption(e),role:"option",class:{focused:this.ariaActivedescendant===e.value.toString()}},e.labelHTML?e.labelHTML:e.label)))):null)}get el(){return s.getElement(this)}static get watchers(){return{options:["optionsChangedHandler"],defaultInputOption:["defaultSelectedOptionChangedHandler"],inputValue:["inputValueChangedHandler"]}}};a.style=c;const h=".time-period-selector.sc-time-period-selector{display:grid;gap:0.5rem;grid-template-columns:auto 1fr}.time-period-selector.sc-time-period-selector select-dropdown.sc-time-period-selector,.time-period-selector.sc-time-period-selector input-dropdown.sc-time-period-selector{border:1px solid var(--nylas-base-200);border-radius:var(--nylas-border-radius-2x)}.time-period-selector.sc-time-period-selector select-dropdown.sc-time-period-selector{width:116px}.time-period-selector.sc-time-period-selector input-dropdown.sc-time-period-selector{width:84px;display:flex;align-items:center}.time-period-selector.sc-time-period-selector select-dropdown#time-period.sc-time-period-selector::part(sd_dropdown-button){width:100%}.time-period-selector.sc-time-period-selector input-dropdown.sc-time-period-selector::part(id_dropdown){width:inherit;height:100%}.time-period-selector.sc-time-period-selector input-dropdown#time-number.sc-time-period-selector::part(id_dropdown-input){border:none;border-radius:var(--nylas-border-radius-2x)}.time-period-selector.sc-time-period-selector input-dropdown.sc-time-period-selector::part(id_dropdown-input){padding:17px;gap:1rem}.time-period-selector.sc-time-period-selector input-dropdown.sc-time-period-selector::part(id_dropdown-content){width:100%;max-height:200px}.time-period-selector.sc-time-period-selector select-dropdown.sc-time-period-selector::part(sd_dropdown){width:inherit}.time-period-selector.sc-time-period-selector select-dropdown.sc-time-period-selector::part(sd_dropdown-button){padding:1rem;gap:1rem;justify-content:space-between}.time-period-selector.sc-time-period-selector select-dropdown.sc-time-period-selector::part(sd_dropdown-content){width:100%;max-height:200px}",u=h,m={hours:"hour",days:"day",weeks:"week",months:"month"},l=class{constructor(e){s.registerInstance(this,e),this.timePeriodChanged=s.createEvent(this,"timePeriodChanged",7),this.timePeriods=["hour","day","week","month"],this.defaultSelectedPeriod="hour",this.defaultSelectedNumber=1,this.selectedPeriod=this.defaultSelectedPeriod,this.selectedNumber=this.defaultSelectedNumber,this.numberOptions=this.calculateOptions(this.defaultSelectedPeriod||"hour").map(t=>({label:t.toString(),value:t.toString()})),this.timePeriodOptions=this.timePeriods.map(t=>({label:t,value:t}))}defaultSelectedPeriodChangedHandler(e){this.selectedPeriod=e;const t=m[e]??e;this.updateNumberOptionsAndSelectedNumber(t)}defaultSelectedNumberChangedHandler(e){this.selectedNumber=e}timePeriodsChangedHandler(e){this.timePeriodOptions=e.map(t=>({label:t,value:t}))}calculateOptions(e){switch(e){case"hour":return Array.from({length:23},(t,i)=>i+1);case"minute":return Array.from({length:13},(t,i)=>i*5);case"day":return Array.from({length:30},(t,i)=>i+1);case"week":return Array.from({length:4},(t,i)=>i+1);case"month":return Array.from({length:12},(t,i)=>i+1);default:return[]}}inputOptionChangedHandler(e){s.debug("time-period-selector","inputOptionChangedHandler",e.detail);const{value:t,name:i}=e.detail;i==="time-number"&&(this.selectedNumber=parseInt(t));const o={number:this.selectedNumber,period:this.selectedPeriod};this.timePeriodChanged.emit(o)}nylasFormDropdownChangedHandler(e){s.debug("time-period-selector","nylasFormDropdownChangedHandler",e.detail);const{value:t,name:i}=e.detail;i==="time-period"?(this.selectedPeriod=t,this.updateNumberOptionsAndSelectedNumber(t)):i==="time-number"&&(this.selectedNumber=parseInt(t));const o={number:this.selectedNumber,period:this.selectedPeriod};this.timePeriodChanged.emit(o)}updateNumberOptionsAndSelectedNumber(e){const t=this.calculateOptions(e);this.numberOptions=t.map(i=>({label:i.toString(),value:i.toString()})),this.selectedNumber=parseInt(this.numberOptions[0].value)}render(){return s.h("div",{key:"0bd8e5ec168ca34bfd0540c6b1423954a716bbde",class:"time-period-selector"},s.h("input-dropdown",{key:"8d481cca0e6693367e9c64004cd5596e90aaaa03",id:"time-number",name:"time-number",inputValue:this.selectedNumber.toString(),exportparts:"sd_dropdown: tps__number-dropdown, sd_dropdown-button: tps__number-dropdown-button, sd_dropdown-content: tps__number-dropdown-content",options:this.numberOptions,defaultInputOption:this.numberOptions.find(e=>e.value==this.selectedNumber.toString())??this.numberOptions[0]}),s.h("select-dropdown",{key:"e173825b80107361a1d5323fcd3a5503b1d59de5",id:"time-period",name:"time-period",options:this.timePeriodOptions,exportparts:"sd_dropdown: tps__period-dropdown, sd_dropdown-button: tps__period-dropdown-button, sd_dropdown-content: tps__period-dropdown-content",pluralizedLabel:this.selectedNumber>1?"s":"",defaultSelectedOption:this.timePeriodOptions.find(e=>e.value==this.selectedPeriod)??this.timePeriodOptions[0],withSearch:!1}))}get host(){return s.getElement(this)}static get watchers(){return{defaultSelectedPeriod:["defaultSelectedPeriodChangedHandler"],defaultSelectedNumber:["defaultSelectedNumberChangedHandler"],timePeriods:["timePeriodsChangedHandler"]}}};l.style=u;exports.input_dropdown=a;exports.time_period_selector=l;
@@ -1,21 +1,27 @@
1
- import { r as l, c as p, h as r, g as c, d as a } from "./index-f383e3c4.js";
1
+ import { r as l, c as p, h as r, g as c, d as a } from "./index-5851f0a2.js";
2
2
  import "react";
3
3
  import "react-dom";
4
4
  const h = ':host{display:block;position:relative;--nylas-primary:#2563eb;--nylas-error:#cc4841;--nylas-error-pressed:#992222;--nylas-wraning:#f06c00;--nylas-success:#16a392;--nylas-info:#2b8fc2;--nylas-base-0:#ffffff;--nylas-base-25:#fcfcfd;--nylas-base-50:#f8f9fc;--nylas-base-100:#eaecf5;--nylas-base-200:#d5d9eb;--nylas-base-300:#b3b8d8;--nylas-base-400:#717bbc;--nylas-base-500:#4e5ba6;--nylas-base-600:#3e4784;--nylas-base-700:#263f72;--nylas-base-800:#293056;--nylas-base-900:#101323;--nylas-base-950:#0e101b;--nylas-border-radius:0.25rem;--nylas-border-radius-2x:0.5rem;--nylas-border-radius-3x:0.75rem;--nylas-font-family:"Inter", sans-serif}@media screen and (max-width: 768px){:host{position:unset}}.dropdown{display:inline-block}.dropbtn{color:var(--nylas-base-800);padding:10px;font-size:1rem;font-family:var(--nylas-font-family);cursor:pointer;display:flex;gap:0.5rem;background:transparent;border:none;border-radius:var(--nylas-border-radius-2x);width:50px;padding:14px 16px;border-radius:var(--nylas-border-radius-2x)}.dropbtn.focus{background:transparent}.dropbtn:hover,.dropbtn:active{outline:1px solid var(--nylas-primary)}.dropbtn:active{outline:2px solid var(--nylas-primary)}.dropbtn span.chevron{display:flex;align-self:center}.dropbtn span.open{transform:rotate(90deg)}.dropbtn span.closed{transform:rotate(270deg)}.dropbtn span.selected-option{text-overflow:ellipsis;overflow:hidden;white-space:nowrap;max-width:144px;font-size:14px;line-height:20px}@media screen and (max-width: 768px){.dropbtn span.selected-option{max-width:124px;font-size:16px}}.dropdown-content{display:block;margin-top:0.5rem;background-color:var(--nylas-base-0);max-width:306px;width:max-content;max-height:336px;overflow:auto;z-index:1;border-radius:4px;position:absolute;box-shadow:0px 4px 6px -2px rgba(0, 0, 0, 0.05);box-shadow:0px 10px 15px -3px rgba(0, 0, 0, 0.1)}@media screen and (max-width: 768px){.dropdown-content{right:0;width:325px;max-width:unset}}.search-box{border-bottom:1px solid var(--nylas-base-200);padding:10px;position:sticky;top:0;background:var(--nylas-base-0)}.search-box .icon{position:absolute;top:1.25rem;left:1.25rem;color:var(--nylas-base-300)}.dropdown-content ul{padding:0;list-style-type:none;color:var(--nylas-base-900);max-height:336px}.dropdown-content ul li{padding:16px, 12px, 16px, 12px;color:black;padding:12px 16px;text-decoration:none;display:block;font-family:inherit;font-size:14px;font-weight:400;line-height:20px;letter-spacing:0px;text-align:left;cursor:pointer}.dropdown-content ul li:hover,.dropdown-content ul li:focus{background-color:var(--nylas-base-100)}.dropdown-content .selected{background-color:#e7e7e7}input[type=text]{width:-webkit-fill-available;padding:inherit;border:1px solid #ccc;border-radius:4px;position:sticky;background:no-repeat scroll 7px 7px;padding-left:30px;background-size:16px 16px}', u = h, m = class {
5
5
  constructor(e) {
6
- l(this, e), this.inputOptionChanged = p(this, "inputOptionChanged", 7), this.name = void 0, this.options = [], this.defaultInputOption = void 0, this.inputValue = void 0, this.pluralizedLabel = "", this.selectedOption = this.defaultInputOption || null, this.isOpen = !1, this.filteredOptions = [...this.options], this.ariaActivedescendant = "", this.shouldAutoScroll = !1;
6
+ l(this, e), this.inputOptionChanged = p(this, "inputOptionChanged", 7), this.name = void 0, this.options = [], this.defaultInputOption = void 0, this.inputValue = void 0, this.pluralizedLabel = "", this.filterable = !1, this.selectedOption = this.defaultInputOption || null, this.isOpen = !1, this.filteredOptions = [...this.options], this.ariaActivedescendant = "", this.shouldAutoScroll = !1;
7
7
  }
8
8
  optionsChangedHandler(e, t) {
9
- e !== t && (this.filteredOptions = e);
9
+ e !== t && (this.filteredOptions = this.getFilteredOptions(e));
10
10
  }
11
11
  defaultSelectedOptionChangedHandler(e, t) {
12
12
  e.label !== t.label && (this.selectedOption = e);
13
13
  }
14
14
  inputValueChangedHandler(e, t) {
15
- e !== t && (this.inputValue = e);
15
+ e !== t && (this.inputValue = e, this.filteredOptions = this.getFilteredOptions(this.options));
16
16
  }
17
17
  componentWillLoad() {
18
- this.filteredOptions = this.options, !this.selectedOption && this.defaultInputOption && (this.selectedOption = this.defaultInputOption), !this.selectedOption && this.options.length > 0 && (this.selectedOption = this.options[0]);
18
+ this.filteredOptions = this.getFilteredOptions(this.options), !this.selectedOption && this.defaultInputOption && (this.selectedOption = this.defaultInputOption), !this.selectedOption && this.options.length > 0 && (this.selectedOption = this.options[0]);
19
+ }
20
+ getFilteredOptions(e) {
21
+ return this.filterable ? e.filter((t) => {
22
+ var i, s, n, o;
23
+ return ((s = t == null ? void 0 : t.value) == null ? void 0 : s.toString().toLowerCase().includes((i = this.inputValue) == null ? void 0 : i.toLowerCase())) || ((o = t == null ? void 0 : t.label) == null ? void 0 : o.toLowerCase().includes((n = this.inputValue) == null ? void 0 : n.toLowerCase()));
24
+ }) : e;
19
25
  }
20
26
  toggleDropdown() {
21
27
  this.isOpen = !this.isOpen;
@@ -27,7 +33,7 @@ const h = ':host{display:block;position:relative;--nylas-primary:#2563eb;--nylas
27
33
  });
28
34
  }
29
35
  handleOnInput(e) {
30
- const t = e.target.value, i = this.options.findIndex((o) => o.label.toLowerCase().includes(t.toLowerCase()));
36
+ const t = e.target.value, i = this.options.findIndex((s) => s.label.toLowerCase().includes(t.toLowerCase()));
31
37
  i > -1 && this.scrollToViewWithinParent(i), this.inputOptionChanged.emit({
32
38
  value: t,
33
39
  name: this.name
@@ -35,10 +41,11 @@ const h = ':host{display:block;position:relative;--nylas-primary:#2563eb;--nylas
35
41
  }
36
42
  scrollToViewWithinParent(e) {
37
43
  var d;
38
- const t = this.options[e], i = (d = this.el.shadowRoot) == null ? void 0 : d.getElementById(t.value.toString()), o = this.optionsRef;
39
- this.ariaActivedescendant = t.value.toString();
40
- const s = i.getBoundingClientRect(), n = o.getBoundingClientRect();
41
- s.top < n.top ? o.scrollTop -= n.top - s.top : s.bottom > n.bottom && (o.scrollTop += s.bottom - n.bottom);
44
+ const t = this.options[e], i = (d = this.el.shadowRoot) == null ? void 0 : d.getElementById(t.value.toString()), s = this.optionsRef;
45
+ if (this.ariaActivedescendant = t.value.toString(), !i || !s)
46
+ return;
47
+ const n = i.getBoundingClientRect(), o = s.getBoundingClientRect();
48
+ n.top < o.top ? s.scrollTop -= o.top - n.top : n.bottom > o.bottom && (s.scrollTop += n.bottom - o.bottom);
42
49
  }
43
50
  handleSelectButtonKeyDown(e) {
44
51
  var t;
@@ -54,39 +61,39 @@ const h = ':host{display:block;position:relative;--nylas-primary:#2563eb;--nylas
54
61
  }
55
62
  handleClick(e) {
56
63
  if (this.isOpen) {
57
- const t = e.target.value, i = this.options.findIndex((o) => o.label.toLowerCase().includes(t.toLowerCase()));
64
+ const t = e.target.value, i = this.options.findIndex((s) => s.label.toLowerCase().includes(t.toLowerCase()));
58
65
  i > -1 && setTimeout(() => {
59
66
  this.scrollToViewWithinParent(i);
60
67
  }, 10);
61
68
  }
62
69
  }
63
70
  handleListboxKeydown(e) {
64
- var o, s;
65
- const t = this.filteredOptions, i = t.findIndex((n) => n.value === this.ariaActivedescendant);
71
+ var s, n;
72
+ const t = this.filteredOptions, i = t.findIndex((o) => o.value === this.ariaActivedescendant);
66
73
  if (e.key === "ArrowDown" || e.key === "Tab" && !e.shiftKey) {
67
74
  if (e.preventDefault(), i === t.length - 1) {
68
- this.ariaActivedescendant = "", (o = this.inputRef) == null || o.focus();
75
+ this.ariaActivedescendant = "", (s = this.inputRef) == null || s.focus();
69
76
  return;
70
77
  }
71
- const n = i + 1 < t.length ? i + 1 : 0;
72
- this.ariaActivedescendant = t[n].value, this.focusOption(n);
78
+ const o = i + 1 < t.length ? i + 1 : 0;
79
+ this.ariaActivedescendant = t[o].value, this.focusOption(o);
73
80
  } else if (e.key === "ArrowUp" || e.key === "Tab" && e.shiftKey) {
74
81
  if (e.preventDefault(), i === 0) {
75
- this.ariaActivedescendant = "", (s = this.inputRef) == null || s.focus();
82
+ this.ariaActivedescendant = "", (n = this.inputRef) == null || n.focus();
76
83
  return;
77
84
  }
78
- const n = i - 1 >= 0 ? i - 1 : t.length - 1;
79
- this.ariaActivedescendant = t[n].value, this.focusOption(n);
85
+ const o = i - 1 >= 0 ? i - 1 : t.length - 1;
86
+ this.ariaActivedescendant = t[o].value, this.focusOption(o);
80
87
  } else
81
88
  e.key === "Enter" ? (e.preventDefault(), this.ariaActivedescendant && this.selectOption(t[i])) : e.key === "Escape" && (this.isOpen = !1);
82
89
  }
83
90
  focusOption(e) {
84
- var s;
91
+ var n;
85
92
  const t = this.filteredOptions[e];
86
93
  if (!t)
87
94
  return;
88
- const i = t.value, o = (s = this.el.shadowRoot) == null ? void 0 : s.getElementById(i);
89
- o && (o.focus(), o.scrollIntoView({ behavior: "smooth", block: "nearest" }));
95
+ const i = t.value, s = (n = this.el.shadowRoot) == null ? void 0 : n.getElementById(i);
96
+ s && (s.focus(), s.scrollIntoView({ behavior: "smooth", block: "nearest" }));
90
97
  }
91
98
  handleComboboxKeyDown(e) {
92
99
  if (e.key === "ArrowDown" || e.key == "Tab" && !e.shiftKey) {
@@ -102,7 +109,7 @@ const h = ':host{display:block;position:relative;--nylas-primary:#2563eb;--nylas
102
109
  !e.composedPath().includes(this.el) && this.isOpen && (this.isOpen = !1);
103
110
  }
104
111
  render() {
105
- return r("div", { key: "24c46ff43e7ff2701790b5e7cd69833a4c0fa02f", class: "dropdown", part: "id_dropdown" }, r("input", { key: "86724f295c643d3edda0de987b17f85389a0a716", type: "text", name: this.name, id: this.name, part: "id_dropdown-input", class: { dropbtn: !0, open: this.isOpen }, value: this.inputValue, onClick: (e) => {
112
+ return r("div", { key: "46501632a9bcea1b4af6d5b4b073904e14d0cf50", class: "dropdown", part: "id_dropdown" }, r("input", { key: "67e4a24466b39b39161066bb9915ca67467043f3", type: "text", name: this.name, id: this.name, part: "id_dropdown-input", class: { dropbtn: !0, open: this.isOpen }, value: this.inputValue, onClick: (e) => {
106
113
  this.toggleDropdown(), this.shouldAutoScroll = !0, this.handleClick(e);
107
114
  }, "aria-haspopup": "listbox", "aria-label": this.name, "aria-expanded": this.isOpen ? "true" : "false", onKeyDown: (e) => this.handleComboboxKeyDown(e), onInput: (e) => this.handleOnInput(e) }), this.isOpen ? r("div", { class: "dropdown-content", part: "id_dropdown-content", ref: (e) => this.optionsRef = e }, r("ul", { tabindex: "-1", role: "listbox", "aria-label": this.name, "aria-activedescendant": this.ariaActivedescendant, onKeyDown: (e) => this.handleListboxKeydown(e) }, this.filteredOptions.map((e) => r("li", { tabindex: "0", key: e.value, id: e.value, onClick: () => this.selectOption(e), role: "option", class: {
108
115
  focused: this.ariaActivedescendant === e.value.toString()
@@ -169,21 +176,21 @@ const b = ".time-period-selector.sc-time-period-selector{display:grid;gap:0.5rem
169
176
  a("time-period-selector", "inputOptionChangedHandler", e.detail);
170
177
  const { value: t, name: i } = e.detail;
171
178
  i === "time-number" && (this.selectedNumber = parseInt(t));
172
- const o = {
179
+ const s = {
173
180
  number: this.selectedNumber,
174
181
  period: this.selectedPeriod
175
182
  };
176
- this.timePeriodChanged.emit(o);
183
+ this.timePeriodChanged.emit(s);
177
184
  }
178
185
  nylasFormDropdownChangedHandler(e) {
179
186
  a("time-period-selector", "nylasFormDropdownChangedHandler", e.detail);
180
187
  const { value: t, name: i } = e.detail;
181
188
  i === "time-period" ? (this.selectedPeriod = t, this.updateNumberOptionsAndSelectedNumber(t)) : i === "time-number" && (this.selectedNumber = parseInt(t));
182
- const o = {
189
+ const s = {
183
190
  number: this.selectedNumber,
184
191
  period: this.selectedPeriod
185
192
  };
186
- this.timePeriodChanged.emit(o);
193
+ this.timePeriodChanged.emit(s);
187
194
  }
188
195
  updateNumberOptionsAndSelectedNumber(e) {
189
196
  const t = this.calculateOptions(e);
@@ -193,7 +200,7 @@ const b = ".time-period-selector.sc-time-period-selector{display:grid;gap:0.5rem
193
200
  })), this.selectedNumber = parseInt(this.numberOptions[0].value);
194
201
  }
195
202
  render() {
196
- return r("div", { key: "89f218f22905064cadac4d109b631ec138b461ef", class: "time-period-selector" }, r("input-dropdown", { key: "2b86597d92716df5196e696a82ef813d895688dc", id: "time-number", name: "time-number", inputValue: this.selectedNumber.toString(), exportparts: "sd_dropdown: tps__number-dropdown, sd_dropdown-button: tps__number-dropdown-button, sd_dropdown-content: tps__number-dropdown-content", options: this.numberOptions, defaultInputOption: this.numberOptions.find((e) => e.value == this.selectedNumber.toString()) ?? this.numberOptions[0] }), r("select-dropdown", { key: "7283a087443a6c3827f41f0276e1c8024025eeca", id: "time-period", name: "time-period", options: this.timePeriodOptions, exportparts: "sd_dropdown: tps__period-dropdown, sd_dropdown-button: tps__period-dropdown-button, sd_dropdown-content: tps__period-dropdown-content", pluralizedLabel: this.selectedNumber > 1 ? "s" : "", defaultSelectedOption: this.timePeriodOptions.find((e) => e.value == this.selectedPeriod) ?? this.timePeriodOptions[0], withSearch: !1 }));
203
+ return r("div", { key: "0bd8e5ec168ca34bfd0540c6b1423954a716bbde", class: "time-period-selector" }, r("input-dropdown", { key: "8d481cca0e6693367e9c64004cd5596e90aaaa03", id: "time-number", name: "time-number", inputValue: this.selectedNumber.toString(), exportparts: "sd_dropdown: tps__number-dropdown, sd_dropdown-button: tps__number-dropdown-button, sd_dropdown-content: tps__number-dropdown-content", options: this.numberOptions, defaultInputOption: this.numberOptions.find((e) => e.value == this.selectedNumber.toString()) ?? this.numberOptions[0] }), r("select-dropdown", { key: "e173825b80107361a1d5323fcd3a5503b1d59de5", id: "time-period", name: "time-period", options: this.timePeriodOptions, exportparts: "sd_dropdown: tps__period-dropdown, sd_dropdown-button: tps__period-dropdown-button, sd_dropdown-content: tps__period-dropdown-content", pluralizedLabel: this.selectedNumber > 1 ? "s" : "", defaultSelectedOption: this.timePeriodOptions.find((e) => e.value == this.selectedPeriod) ?? this.timePeriodOptions[0], withSearch: !1 }));
197
204
  }
198
205
  get host() {
199
206
  return c(this);
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index-769f0fdd.cjs");require("react");require("react-dom");const d=".wave{display:flex;align-items:center;justify-content:center}.dot{width:4px;height:4px;background-color:var(--dot-color, white);border-radius:50%;margin:0 2px;animation:wave 1.5s infinite ease-in-out}.dot:nth-child(2){animation-delay:0.2s}.dot:nth-child(3){animation-delay:0.4s}@keyframes wave{0%,60%,100%{transform:translateY(0)}30%{transform:translateY(-4px)}}",i=d,t=class{constructor(a){e.registerInstance(this,a),this.width="15",this.height="15"}render(){return e.h("div",{key:"ee82dd9858d420cd6b6d42a4571281ac65b759f0",class:"wave"},e.h("div",{key:"7a74e25e7bd8aa8f7f2d263148351ec67d587c2f",class:"dot"}),e.h("div",{key:"121eeeff24fa2bda6592b0b90567661fd3c25079",class:"dot"}),e.h("div",{key:"d1c7ecc10377c2f62f20f0837d9d4ba5ccbdbb40",class:"dot"}))}};t.style=i;exports.loading_icon=t;
@@ -0,0 +1,15 @@
1
+ import { r as e, h as t } from "./index-5851f0a2.js";
2
+ import "react";
3
+ import "react-dom";
4
+ const d = ".wave{display:flex;align-items:center;justify-content:center}.dot{width:4px;height:4px;background-color:var(--dot-color, white);border-radius:50%;margin:0 2px;animation:wave 1.5s infinite ease-in-out}.dot:nth-child(2){animation-delay:0.2s}.dot:nth-child(3){animation-delay:0.4s}@keyframes wave{0%,60%,100%{transform:translateY(0)}30%{transform:translateY(-4px)}}", i = d, n = class {
5
+ constructor(a) {
6
+ e(this, a), this.width = "15", this.height = "15";
7
+ }
8
+ render() {
9
+ return t("div", { key: "ee82dd9858d420cd6b6d42a4571281ac65b759f0", class: "wave" }, t("div", { key: "7a74e25e7bd8aa8f7f2d263148351ec67d587c2f", class: "dot" }), t("div", { key: "121eeeff24fa2bda6592b0b90567661fd3c25079", class: "dot" }), t("div", { key: "d1c7ecc10377c2f62f20f0837d9d4ba5ccbdbb40", class: "dot" }));
10
+ }
11
+ };
12
+ n.style = i;
13
+ export {
14
+ n as loading_icon
15
+ };
@@ -1,5 +1,5 @@
1
- import { d as o, e as f } from "./index-f383e3c4.js";
2
- import { X as u, Z as d } from "./index.es-9cc0eb3c-510db795.js";
1
+ import { d as o, e as f } from "./index-5851f0a2.js";
2
+ import { X as u, Z as d } from "./index.es-9cc0eb3c-2cf4632f.js";
3
3
  class S {
4
4
  constructor(t, e) {
5
5
  this.nylasAuth = t, this.nylasAuthStore = e;
@@ -1 +1 @@
1
- "use strict";const n=require("./index-f435e814.cjs"),i=require("./index.es-9cc0eb3c-09dc620b.cjs");class g{constructor(t,e){this.nylasAuth=t,this.nylasAuthStore=e}async validateSession(){const t=await this.isAccessTokenValid();if(!t)this.logout();else{let e=await this.nylasAuth.getTokenInfo();if(e){const a=Math.floor(Date.now()/1e3);if(e.expires_in&&e.expires_in-a<3e5&&(n.debug("[NylasAuthConnectorMixin] Refreshing access token"),e=await this.nylasAuth.refreshAccessToken(),!e)){n.debug("[NylasAuthConnectorMixin] Token is expired and could not be refreshed. Logging out."),this.logout();return}this.nylasAuthStore.state.tokenInfo=e}}this.nylasAuthStore.state.isAuthenticated=t}async isAuthenticated(){return this.nylasAuth.isAuthenticated()}async getTokenInfo(){return this.nylasAuth.getTokenInfo()}async isAccessTokenValid(){return this.nylasAuth.isAccessTokenValid()}async logout(){await this.nylasAuth.logout()}async getHostedAuthRedirectURL(t,e,s){return this.nylasAuth.getHostedAuthRedirectURL(t,e,s)}async manageHostedAuthCodeExchange(t){const s=new URL(t).searchParams.get("code");if(s){const a=await this.nylasAuth.exchangeAuthCodeForTokenInfo(s);if(a)return this.nylasAuthStore.state.tokenInfo=a,this.nylasAuthStore.state.isAuthenticated=!0,a}return null}}class f{constructor(t,e,s){this.nylasAuth=t,this.nylasAuthStore=e,this.nylasMailboxStore=s}async getMessages(){var o;if(!this.nylasAuthStore.state.isAuthenticated)throw new Error("Not authenticated");if(!this.nylasAuth.hasScopeByType("email",["read-only","modify"]))throw new Error("Missing message:read-only scope");this.nylasMailboxStore.state.state="loading";const t=this.nylasMailboxStore.state.messgeQueryParams,e=new URLSearchParams;for(const h in t){const u=(o=t[h])==null?void 0:o.toString();u&&e.append(h,u)}const s=`/v3/grants/me/messages?${e.toString()}`,a=await this.nylasAuth.nylasAPIRequest(s);if(i.Xr(a))throw new i.Zr(a.error);const r=a.data;return this.nylasMailboxStore.state.messages=r,this.nylasMailboxStore.state.state="ready",r}async getThreadMessages(t){if(!this.nylasAuthStore.state.isAuthenticated)throw new Error("Not authenticated");if(!this.nylasAuth.hasScopeByType("email",["read-only","modify"]))throw new Error("Missing message:read-only scope");const e=await this.nylasAuth.nylasAPIRequest(`/v3/grants/me/messages?thread_id=${t}&fields=include_headers`);if(i.Xr(e))throw new i.Zr(e.error);const s=e.data;return this.nylasMailboxStore.state.messages=s,s}downloadMessageAttachments(t){if(!this.nylasAuthStore.state.isAuthenticated)throw new Error("Not authenticated");if(!this.nylasAuth.hasScopeByType("email",["read-only","modify"]))throw new Error("Missing message:read-only scope");const e=[],s=t.attachments||[];for(const a of s){const r=this.nylasAuth.nylasDownloadFileRequest(`/v3/grants/me/attachments/${a.id}?message_id=${t.id}`);e.push(r)}return e}async summarizeText(t){if(!this.nylasAuthStore.state.isAuthenticated)throw new Error("Not authenticated");if(!this.nylasAuth.hasScopeByType("email",["read-only","modify"]))throw new Error("Missing message:read-only scope");const e=await this.nylasAuth.nylasAPIRequest("/v3/grants/me/mailbox/summarize","POST",{message:{body:t}},!0,this.nylasAuth.config.elementsApiUri);if(i.Xr(e))throw new i.Zr(e.error);return e.data.summary}async textToSpeech(t,e){if(!this.nylasAuthStore.state.isAuthenticated)throw new Error("Not authenticated");if(!this.nylasAuth.hasScopeByType("email",["read-only","modify"]))throw new Error("Missing message:read-only scope");return this.nylasAuth.nylasAPIRequest("/v3/grants/me/mailbox/tts","POST",{text:t},!1,this.nylasAuth.config.elementsApiUri,{...e?{signal:e==null?void 0:e.signal}:{}})}}class w{constructor(t,e,s,a){this.nylasAuth=t,this.nylasAuthStore=e,this.nylasMailboxStore=s,this.router=a}async getThreads(t,e="overwrite",s=!0){var c;if(!this.nylasAuthStore.state.isAuthenticated)throw new Error("Not authenticated");if(!this.nylasAuth.hasScopeByType("email",["read-only","modify"]))throw new Error("Missing thread:read-only scope");s&&(this.nylasMailboxStore.state.state="loading");const a=t||this.nylasMailboxStore.state.threadsQueryParams,r=new URLSearchParams;for(const y in a){const d=(c=a[y])==null?void 0:c.toString();typeof d<"u"&&d!==null&&r.append(y,d)}a.search_query_native?this.router.navigate(`/?query=${a.search_query_native}`,!0):this.nylasMailboxStore.state.threadsQueryParams.search_query_native&&!a.search_query_native&&this.router.navigate("/",!0),a.page_token||(this.nylasMailboxStore.state.previousThreadPageTokens=[]),this.nylasMailboxStore.state.threadsQueryParams=a;const o=`/v3/grants/me/threads?${r.toString()}`,h=await this.nylasAuth.nylasAPIRequest(o);if(i.Xr(h))throw new i.Zr(h.error);const u=h.data;switch(e){case"prepend":this.nylasMailboxStore.state.threads=[...u,...this.nylasMailboxStore.state.threads];break;case"append":this.nylasMailboxStore.state.threads=[...this.nylasMailboxStore.state.threads,...u];break;case"overwrite":default:this.nylasMailboxStore.state.threads=u;break}return h.next_cursor?this.nylasMailboxStore.state.nextThreadPageToken=h.next_cursor:this.nylasMailboxStore.state.nextThreadPageToken=null,s&&(this.nylasMailboxStore.state.state="ready"),u}async getThread(t){if(!this.nylasAuthStore.state.isAuthenticated)throw new Error("Not authenticated");if(!this.nylasAuth.hasScopeByType("email",["read-only","modify"]))throw new Error("Missing thread:read-only scope");const e=this.nylasMailboxStore.state.threads.find(o=>o.id===t);if(e)return e;this.nylasMailboxStore.state.state="loading";const s=`/v3/grants/me/threads/${t}`,a=await this.nylasAuth.nylasAPIRequest(s);if(i.Xr(a))throw new i.Zr(a.error);const r=a.data;return this.nylasMailboxStore.state.threads=this.nylasMailboxStore.state.threads.map(o=>o.id===r.id?r:o),this.nylasMailboxStore.state.state="ready",r}async nextThreadPage(t="overwrite",e=!0){if(!this.nylasMailboxStore.state.nextThreadPageToken)throw new Error("No next page token");this.nylasMailboxStore.state.previousThreadPageTokens=Array.from(new Set([...this.nylasMailboxStore.state.previousThreadPageTokens,this.nylasMailboxStore.state.threadsQueryParams.page_token??null]));const s=this.nylasMailboxStore.state.nextThreadPageToken;return this.getThreads({...this.nylasMailboxStore.state.threadsQueryParams,page_token:s},t,e)}async previousThreadPage(t="overwrite",e=!0){if(!this.nylasMailboxStore.state.previousThreadPageTokens.length)throw new Error("No previous page token");const s=[...this.nylasMailboxStore.state.previousThreadPageTokens],a=s.pop();return this.nylasMailboxStore.state.previousThreadPageTokens=s,this.getThreads({...this.nylasMailboxStore.state.threadsQueryParams,page_token:a??void 0},t,e)}updateThreadQueryParams(t){this.nylasMailboxStore.state.threadsQueryParams={...this.nylasMailboxStore.state.threadsQueryParams,...t}}back(){this.router.navigate("/",!0),this.nylasMailboxStore.state.selectedThread=null}unSelectThread(){this.nylasMailboxStore.state.selectedThread=null}async selectThread(t){this.router.navigate(`/thread/${t.id}`,!0),this.nylasMailboxStore.state.selectedThread=t,t.unread&&this.markThreadAsRead(t).catch(e=>{n.debug("Error marking thread as read",e)})}async markThreadAsRead(t){return this.updateThread(t,{unread:!1})}async updateThread(t,e){if(!this.nylasAuthStore.state.isAuthenticated)throw new Error("Not authenticated");if(!this.nylasAuth.hasScopeByType("email","modify"))throw new Error("Missing thread:modify scope");const s=`/v3/grants/me/threads/${t.id}`,a=await this.nylasAuth.nylasAPIRequest(s,"PUT",e);if(i.Xr(a))throw new i.Zr(a.error);const r=a.data;return this.nylasMailboxStore.state.threads=this.nylasMailboxStore.state.threads.map(o=>o.id===r.id?r:o),this.nylasMailboxStore.state.selectedThread=r,r}}class m{constructor(t,e,s){this.nylasAuth=t,this.nylasAuthStore=e,this.nylasMailboxStore=s}async getFolders(){if(!this.nylasAuthStore.state.isAuthenticated)throw new Error("Not authenticated");if(!this.nylasAuth.hasScopeByType("email",["read-only","modify"]))throw new Error("Missing thread:read-only scope");this.nylasMailboxStore.state.state="loading";const t="/v3/grants/me/folders",e=await this.nylasAuth.nylasAPIRequest(t);if(i.Xr(e))throw new i.Zr(e.error);const s=e.data;return this.nylasMailboxStore.state.folders=s,this.nylasMailboxStore.state.state="ready",s}async selectFolder(t){this.nylasMailboxStore.state.threadsQueryParams={in:t.id,...this.nylasMailboxStore.state.threadsQueryParams||{}}}}class p extends Event{constructor(t,e){super(t,e),this.oldURL=e.oldURL,this.newURL=e.newURL}}class S{constructor(){this.routeChangeListeners=[],n.debug("HashRouter constructor")}destroy(){n.debug("HashRouter destroy"),window.removeEventListener("hashchange",this.onRouteChange.bind(this))}init(){if(n.debug("HashRouter init"),window.addEventListener("hashchange",this.onRouteChange.bind(this)),typeof HashChangeEvent<"u"){const t=new HashChangeEvent("hashchange",{oldURL:"",newURL:window.location.href});this.onRouteChange(t)}else{const t=new p("hashchange",{oldURL:"",newURL:window.location.href});this.onRouteChange(t)}}addRouteChangeListener(t,e){n.debug("HashRouter addRouteChangeListener"),this.routeChangeListeners.push([t,e])}navigate(t,e){if(n.debug("HashRouter navigate"),e)return window.history.pushState(null,"",`#${t}`);window.location.hash=t}setRoute(t){n.debug("HashRouter setRoute"),window.location.hash=t}matchRoute(t,e){const s=t.split("/"),a=e.split("/");if(n.debug(`HashRouter matchRoute route=${t} path=${e}`,{routeParts:s,pathParts:a}),s[1]===""&&a[0]==="")return!0;if(s.length!==a.length)return!1;for(let r=0;r<s.length;r++){const o=s[r],h=a[r];if(!o.startsWith(":")&&o!==h)return!1}return!0}getRouteParams(t){n.debug("HashRouter getRouteParams");const e={},s=t.split("/"),a=window.location.hash.split("/");return s.forEach((r,o)=>{if(r.startsWith(":")){const h=r.substring(1);e[h]=a[o]}}),e}getRouteWithParams(t,e){n.debug("HashRouter getRouteWithParams");let s=t;return Object.keys(e).forEach(a=>{s=s.replace(`:${a}`,e[a])}),s}getRoute(){return n.debug("HashRouter getRoute"),window.location.hash}onRouteChange(t){this.routeChangeListeners.forEach(async([e,s])=>{const a=t.newURL.indexOf("#")===-1?"":t.newURL.substring(t.newURL.indexOf("#")+1);if(n.debug(`HashRouter onRouteChange route=${e} path=${a}`,{event:t}),!this.matchRoute(e,a)){n.debug(`HashRouter onRouteChange route=${e} path=${a} does not match`);return}const r=this.getRouteParams(e);await s(e,a,r)})}getBasePath(){return n.debug("HashRouter getBasePath"),""}}function A(l={}){const t={isAuthenticated:!1,tokenInfo:null,state:"ready",...l},e=n.createStore(t);return e.reset=()=>{for(const s in t){const a=t[s];e.set(s,a)}},e}function x(l={}){const t={state:"ready",messages:[],threads:[],folders:[],selectedThread:null,nextThreadPageToken:null,previousThreadPageTokens:[],searchQuery:"",hasNextThreadPage:!1,hasPreviousThreadPage:!1,selectedFolder:"inbox",threadsQueryParams:{in:"inbox"},messgeQueryParams:{fields:"include_headers"},...l},e=n.createStore({...t});return e.onChange("nextThreadPageToken",s=>{e.set("hasNextThreadPage",s!==null)}),e.onChange("previousThreadPageTokens",s=>{e.set("hasPreviousThreadPage",s.length>0)}),e.onChange("threadsQueryParams",s=>{e.set("selectedFolder",s.in||"inbox"),e.set("searchQuery",s.search_query_native||"")}),e.reset=()=>{for(const s in t){const a=t[s];e.set(s,a)}},e}exports.CreateNylasAuthStore=A;exports.CreateNylasMailboxStore=x;exports.HashRouter=S;exports.NylasAuthConnector=g;exports.NylasFoldersConnector=m;exports.NylasMessagesConnector=f;exports.NylasThreadsConnector=w;
1
+ "use strict";const n=require("./index-769f0fdd.cjs"),i=require("./index.es-9cc0eb3c-e8de46e6.cjs");class g{constructor(t,e){this.nylasAuth=t,this.nylasAuthStore=e}async validateSession(){const t=await this.isAccessTokenValid();if(!t)this.logout();else{let e=await this.nylasAuth.getTokenInfo();if(e){const a=Math.floor(Date.now()/1e3);if(e.expires_in&&e.expires_in-a<3e5&&(n.debug("[NylasAuthConnectorMixin] Refreshing access token"),e=await this.nylasAuth.refreshAccessToken(),!e)){n.debug("[NylasAuthConnectorMixin] Token is expired and could not be refreshed. Logging out."),this.logout();return}this.nylasAuthStore.state.tokenInfo=e}}this.nylasAuthStore.state.isAuthenticated=t}async isAuthenticated(){return this.nylasAuth.isAuthenticated()}async getTokenInfo(){return this.nylasAuth.getTokenInfo()}async isAccessTokenValid(){return this.nylasAuth.isAccessTokenValid()}async logout(){await this.nylasAuth.logout()}async getHostedAuthRedirectURL(t,e,s){return this.nylasAuth.getHostedAuthRedirectURL(t,e,s)}async manageHostedAuthCodeExchange(t){const s=new URL(t).searchParams.get("code");if(s){const a=await this.nylasAuth.exchangeAuthCodeForTokenInfo(s);if(a)return this.nylasAuthStore.state.tokenInfo=a,this.nylasAuthStore.state.isAuthenticated=!0,a}return null}}class f{constructor(t,e,s){this.nylasAuth=t,this.nylasAuthStore=e,this.nylasMailboxStore=s}async getMessages(){var o;if(!this.nylasAuthStore.state.isAuthenticated)throw new Error("Not authenticated");if(!this.nylasAuth.hasScopeByType("email",["read-only","modify"]))throw new Error("Missing message:read-only scope");this.nylasMailboxStore.state.state="loading";const t=this.nylasMailboxStore.state.messgeQueryParams,e=new URLSearchParams;for(const h in t){const u=(o=t[h])==null?void 0:o.toString();u&&e.append(h,u)}const s=`/v3/grants/me/messages?${e.toString()}`,a=await this.nylasAuth.nylasAPIRequest(s);if(i.Xr(a))throw new i.Zr(a.error);const r=a.data;return this.nylasMailboxStore.state.messages=r,this.nylasMailboxStore.state.state="ready",r}async getThreadMessages(t){if(!this.nylasAuthStore.state.isAuthenticated)throw new Error("Not authenticated");if(!this.nylasAuth.hasScopeByType("email",["read-only","modify"]))throw new Error("Missing message:read-only scope");const e=await this.nylasAuth.nylasAPIRequest(`/v3/grants/me/messages?thread_id=${t}&fields=include_headers`);if(i.Xr(e))throw new i.Zr(e.error);const s=e.data;return this.nylasMailboxStore.state.messages=s,s}downloadMessageAttachments(t){if(!this.nylasAuthStore.state.isAuthenticated)throw new Error("Not authenticated");if(!this.nylasAuth.hasScopeByType("email",["read-only","modify"]))throw new Error("Missing message:read-only scope");const e=[],s=t.attachments||[];for(const a of s){const r=this.nylasAuth.nylasDownloadFileRequest(`/v3/grants/me/attachments/${a.id}?message_id=${t.id}`);e.push(r)}return e}async summarizeText(t){if(!this.nylasAuthStore.state.isAuthenticated)throw new Error("Not authenticated");if(!this.nylasAuth.hasScopeByType("email",["read-only","modify"]))throw new Error("Missing message:read-only scope");const e=await this.nylasAuth.nylasAPIRequest("/v3/grants/me/mailbox/summarize","POST",{message:{body:t}},!0,this.nylasAuth.config.elementsApiUri);if(i.Xr(e))throw new i.Zr(e.error);return e.data.summary}async textToSpeech(t,e){if(!this.nylasAuthStore.state.isAuthenticated)throw new Error("Not authenticated");if(!this.nylasAuth.hasScopeByType("email",["read-only","modify"]))throw new Error("Missing message:read-only scope");return this.nylasAuth.nylasAPIRequest("/v3/grants/me/mailbox/tts","POST",{text:t},!1,this.nylasAuth.config.elementsApiUri,{...e?{signal:e==null?void 0:e.signal}:{}})}}class w{constructor(t,e,s,a){this.nylasAuth=t,this.nylasAuthStore=e,this.nylasMailboxStore=s,this.router=a}async getThreads(t,e="overwrite",s=!0){var c;if(!this.nylasAuthStore.state.isAuthenticated)throw new Error("Not authenticated");if(!this.nylasAuth.hasScopeByType("email",["read-only","modify"]))throw new Error("Missing thread:read-only scope");s&&(this.nylasMailboxStore.state.state="loading");const a=t||this.nylasMailboxStore.state.threadsQueryParams,r=new URLSearchParams;for(const y in a){const d=(c=a[y])==null?void 0:c.toString();typeof d<"u"&&d!==null&&r.append(y,d)}a.search_query_native?this.router.navigate(`/?query=${a.search_query_native}`,!0):this.nylasMailboxStore.state.threadsQueryParams.search_query_native&&!a.search_query_native&&this.router.navigate("/",!0),a.page_token||(this.nylasMailboxStore.state.previousThreadPageTokens=[]),this.nylasMailboxStore.state.threadsQueryParams=a;const o=`/v3/grants/me/threads?${r.toString()}`,h=await this.nylasAuth.nylasAPIRequest(o);if(i.Xr(h))throw new i.Zr(h.error);const u=h.data;switch(e){case"prepend":this.nylasMailboxStore.state.threads=[...u,...this.nylasMailboxStore.state.threads];break;case"append":this.nylasMailboxStore.state.threads=[...this.nylasMailboxStore.state.threads,...u];break;case"overwrite":default:this.nylasMailboxStore.state.threads=u;break}return h.next_cursor?this.nylasMailboxStore.state.nextThreadPageToken=h.next_cursor:this.nylasMailboxStore.state.nextThreadPageToken=null,s&&(this.nylasMailboxStore.state.state="ready"),u}async getThread(t){if(!this.nylasAuthStore.state.isAuthenticated)throw new Error("Not authenticated");if(!this.nylasAuth.hasScopeByType("email",["read-only","modify"]))throw new Error("Missing thread:read-only scope");const e=this.nylasMailboxStore.state.threads.find(o=>o.id===t);if(e)return e;this.nylasMailboxStore.state.state="loading";const s=`/v3/grants/me/threads/${t}`,a=await this.nylasAuth.nylasAPIRequest(s);if(i.Xr(a))throw new i.Zr(a.error);const r=a.data;return this.nylasMailboxStore.state.threads=this.nylasMailboxStore.state.threads.map(o=>o.id===r.id?r:o),this.nylasMailboxStore.state.state="ready",r}async nextThreadPage(t="overwrite",e=!0){if(!this.nylasMailboxStore.state.nextThreadPageToken)throw new Error("No next page token");this.nylasMailboxStore.state.previousThreadPageTokens=Array.from(new Set([...this.nylasMailboxStore.state.previousThreadPageTokens,this.nylasMailboxStore.state.threadsQueryParams.page_token??null]));const s=this.nylasMailboxStore.state.nextThreadPageToken;return this.getThreads({...this.nylasMailboxStore.state.threadsQueryParams,page_token:s},t,e)}async previousThreadPage(t="overwrite",e=!0){if(!this.nylasMailboxStore.state.previousThreadPageTokens.length)throw new Error("No previous page token");const s=[...this.nylasMailboxStore.state.previousThreadPageTokens],a=s.pop();return this.nylasMailboxStore.state.previousThreadPageTokens=s,this.getThreads({...this.nylasMailboxStore.state.threadsQueryParams,page_token:a??void 0},t,e)}updateThreadQueryParams(t){this.nylasMailboxStore.state.threadsQueryParams={...this.nylasMailboxStore.state.threadsQueryParams,...t}}back(){this.router.navigate("/",!0),this.nylasMailboxStore.state.selectedThread=null}unSelectThread(){this.nylasMailboxStore.state.selectedThread=null}async selectThread(t){this.router.navigate(`/thread/${t.id}`,!0),this.nylasMailboxStore.state.selectedThread=t,t.unread&&this.markThreadAsRead(t).catch(e=>{n.debug("Error marking thread as read",e)})}async markThreadAsRead(t){return this.updateThread(t,{unread:!1})}async updateThread(t,e){if(!this.nylasAuthStore.state.isAuthenticated)throw new Error("Not authenticated");if(!this.nylasAuth.hasScopeByType("email","modify"))throw new Error("Missing thread:modify scope");const s=`/v3/grants/me/threads/${t.id}`,a=await this.nylasAuth.nylasAPIRequest(s,"PUT",e);if(i.Xr(a))throw new i.Zr(a.error);const r=a.data;return this.nylasMailboxStore.state.threads=this.nylasMailboxStore.state.threads.map(o=>o.id===r.id?r:o),this.nylasMailboxStore.state.selectedThread=r,r}}class m{constructor(t,e,s){this.nylasAuth=t,this.nylasAuthStore=e,this.nylasMailboxStore=s}async getFolders(){if(!this.nylasAuthStore.state.isAuthenticated)throw new Error("Not authenticated");if(!this.nylasAuth.hasScopeByType("email",["read-only","modify"]))throw new Error("Missing thread:read-only scope");this.nylasMailboxStore.state.state="loading";const t="/v3/grants/me/folders",e=await this.nylasAuth.nylasAPIRequest(t);if(i.Xr(e))throw new i.Zr(e.error);const s=e.data;return this.nylasMailboxStore.state.folders=s,this.nylasMailboxStore.state.state="ready",s}async selectFolder(t){this.nylasMailboxStore.state.threadsQueryParams={in:t.id,...this.nylasMailboxStore.state.threadsQueryParams||{}}}}class p extends Event{constructor(t,e){super(t,e),this.oldURL=e.oldURL,this.newURL=e.newURL}}class S{constructor(){this.routeChangeListeners=[],n.debug("HashRouter constructor")}destroy(){n.debug("HashRouter destroy"),window.removeEventListener("hashchange",this.onRouteChange.bind(this))}init(){if(n.debug("HashRouter init"),window.addEventListener("hashchange",this.onRouteChange.bind(this)),typeof HashChangeEvent<"u"){const t=new HashChangeEvent("hashchange",{oldURL:"",newURL:window.location.href});this.onRouteChange(t)}else{const t=new p("hashchange",{oldURL:"",newURL:window.location.href});this.onRouteChange(t)}}addRouteChangeListener(t,e){n.debug("HashRouter addRouteChangeListener"),this.routeChangeListeners.push([t,e])}navigate(t,e){if(n.debug("HashRouter navigate"),e)return window.history.pushState(null,"",`#${t}`);window.location.hash=t}setRoute(t){n.debug("HashRouter setRoute"),window.location.hash=t}matchRoute(t,e){const s=t.split("/"),a=e.split("/");if(n.debug(`HashRouter matchRoute route=${t} path=${e}`,{routeParts:s,pathParts:a}),s[1]===""&&a[0]==="")return!0;if(s.length!==a.length)return!1;for(let r=0;r<s.length;r++){const o=s[r],h=a[r];if(!o.startsWith(":")&&o!==h)return!1}return!0}getRouteParams(t){n.debug("HashRouter getRouteParams");const e={},s=t.split("/"),a=window.location.hash.split("/");return s.forEach((r,o)=>{if(r.startsWith(":")){const h=r.substring(1);e[h]=a[o]}}),e}getRouteWithParams(t,e){n.debug("HashRouter getRouteWithParams");let s=t;return Object.keys(e).forEach(a=>{s=s.replace(`:${a}`,e[a])}),s}getRoute(){return n.debug("HashRouter getRoute"),window.location.hash}onRouteChange(t){this.routeChangeListeners.forEach(async([e,s])=>{const a=t.newURL.indexOf("#")===-1?"":t.newURL.substring(t.newURL.indexOf("#")+1);if(n.debug(`HashRouter onRouteChange route=${e} path=${a}`,{event:t}),!this.matchRoute(e,a)){n.debug(`HashRouter onRouteChange route=${e} path=${a} does not match`);return}const r=this.getRouteParams(e);await s(e,a,r)})}getBasePath(){return n.debug("HashRouter getBasePath"),""}}function A(l={}){const t={isAuthenticated:!1,tokenInfo:null,state:"ready",...l},e=n.createStore(t);return e.reset=()=>{for(const s in t){const a=t[s];e.set(s,a)}},e}function x(l={}){const t={state:"ready",messages:[],threads:[],folders:[],selectedThread:null,nextThreadPageToken:null,previousThreadPageTokens:[],searchQuery:"",hasNextThreadPage:!1,hasPreviousThreadPage:!1,selectedFolder:"inbox",threadsQueryParams:{in:"inbox"},messgeQueryParams:{fields:"include_headers"},...l},e=n.createStore({...t});return e.onChange("nextThreadPageToken",s=>{e.set("hasNextThreadPage",s!==null)}),e.onChange("previousThreadPageTokens",s=>{e.set("hasPreviousThreadPage",s.length>0)}),e.onChange("threadsQueryParams",s=>{e.set("selectedFolder",s.in||"inbox"),e.set("searchQuery",s.search_query_native||"")}),e.reset=()=>{for(const s in t){const a=t[s];e.set(s,a)}},e}exports.CreateNylasAuthStore=A;exports.CreateNylasMailboxStore=x;exports.HashRouter=S;exports.NylasAuthConnector=g;exports.NylasFoldersConnector=m;exports.NylasMessagesConnector=f;exports.NylasThreadsConnector=w;