@stenajs-webui/modal 21.37.0 → 21.37.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.
package/dist/index.es.js CHANGED
@@ -1,4 +1,4 @@
1
- (function(){"use strict";try{if(typeof document<"u"){var o=document.createElement("style");o.appendChild(document.createTextNode("._overlay_quvmp_1{--swui-modal-animation-time: var(--swui-animation-time-fast);--swui-modal-overlay-bg-color: var(--swui-overlay-bg-color);--swui-modal-content-bg-color: var(--swui-white);--swui-modal-width: 960px;--swui-modal-max-width: 100%;--swui-modal-header-border-color: var(--lhds-color-ui-300);--swui-modal-shadow: var(--swui-shadow-modal);--swui-modal-footer-shadow: var(--swui-shadow-modal);position:fixed;z-index:10;top:0;left:0;right:0;bottom:0;background-color:var(--swui-modal-overlay-bg-color);overflow:auto;display:flex;flex-direction:column;justify-content:flex-start;align-items:center;animation:_fadeIn_quvmp_1 var(--swui-modal-animation-time) cubic-bezier(.645,.045,.355,1) both}@media print{._overlay_quvmp_1{background-color:#fff}}._overlay_quvmp_1 ._modal_quvmp_31{max-width:100%;outline:none;pointer-events:none}@media (max-width: 768px){._overlay_quvmp_1 ._modal_quvmp_31{width:100%}}._overlay_quvmp_1 ._content_quvmp_41{position:relative;display:block;background:var(--swui-modal-content-bg-color);box-shadow:var(--swui-modal-shadow);pointer-events:all;top:calc(var(--swui-metrics-space) * 2);width:var(--swui-modal-width);max-width:var(--swui-modal-max-width)}@media (max-width: 768px){._overlay_quvmp_1 ._content_quvmp_41{top:0;width:100%;max-width:100%}}._overlay_quvmp_1 ._content_quvmp_41{animation:_appear_quvmp_1 var(--swui-animation-time-fast) cubic-bezier(.645,.045,.355,1) both}@media print{._overlay_quvmp_1 ._content_quvmp_41{box-shadow:none;top:0}}._overlay_quvmp_1 ._content_quvmp_41:focus{outline:0}._overlay_quvmp_1 ._content_quvmp_41._isDraggable_quvmp_70 .draggable-modal-handle{cursor:move}._overlay_quvmp_1 ._content_quvmp_41._isDraggable_quvmp_70 .draggable-modal-handle .draggable-modal-cancel,._overlay_quvmp_1 ._content_quvmp_41._isDraggable_quvmp_70 .draggable-modal-handle [role=tooltip]{cursor:initial}@keyframes _fadeIn_quvmp_1{0%{background-color:var(--swui-hidden)}to{background-color:var(--swui-modal-overlay-bg-color)}}@keyframes _appear_quvmp_1{0%{opacity:0}to{opacity:1}}._footer_quvmp_101{background-color:var(--swui-modal-content-bg-color)}._stickyFooter_quvmp_105{position:-webkit-sticky;position:sticky;bottom:0;box-shadow:var(--swui-modal-footer-shadow)}@media print{._stickyFooter_quvmp_105{position:static;box-shadow:none}}._portal_17ze5_1{--drawer-width: 370px}._portal_17ze5_1 ._overlay_17ze5_4{position:fixed;top:0;right:0;bottom:0;left:0}._portal_17ze5_1 ._content_17ze5_9{box-shadow:var(--swui-shadow-modal);background:#fff;position:absolute;transition:transform var(--swui-animation-time-medium) ease-in-out}._portal_17ze5_1 ._content_17ze5_9._floating_17ze5_15{margin:var(--swui-metrics-space);border-radius:var(--swui-border-radius)}@media (max-width: 768px){._portal_17ze5_1 ._content_17ze5_9._floating_17ze5_15{margin:0;border-radius:0}}._portal_17ze5_1 ._content_17ze5_9:focus-visible{outline:unset}._portal_17ze5_1 ._content_17ze5_9._slideFromLeft_17ze5_29,._portal_17ze5_1 ._content_17ze5_9._slideFromRight_17ze5_30{transform:translate(var(--translate-x-outside-screen, 0));overflow-y:auto;top:0;bottom:0}._portal_17ze5_1 ._content_17ze5_9._slideFromLeft_17ze5_29._afterOpen_17ze5_36,._portal_17ze5_1 ._content_17ze5_9._slideFromRight_17ze5_30._afterOpen_17ze5_36{transform:translate(0)}._portal_17ze5_1 ._content_17ze5_9._slideFromLeft_17ze5_29._beforeClose_17ze5_40,._portal_17ze5_1 ._content_17ze5_9._slideFromRight_17ze5_30._beforeClose_17ze5_40{transform:translate(var(--translate-x-outside-screen))}._portal_17ze5_1 ._content_17ze5_9._slideFromTop_17ze5_45,._portal_17ze5_1 ._content_17ze5_9._slideFromBottom_17ze5_46{transform:translateY(var(--translate-y-outside-screen, 0));overflow-x:auto;left:0;right:0}._portal_17ze5_1 ._content_17ze5_9._slideFromTop_17ze5_45._afterOpen_17ze5_36,._portal_17ze5_1 ._content_17ze5_9._slideFromBottom_17ze5_46._afterOpen_17ze5_36{transform:translateY(0)}._portal_17ze5_1 ._content_17ze5_9._slideFromTop_17ze5_45._beforeClose_17ze5_40,._portal_17ze5_1 ._content_17ze5_9._slideFromBottom_17ze5_46._beforeClose_17ze5_40{transform:translateY(var(--translate-y-outside-screen))}._portal_17ze5_1 ._content_17ze5_9._slideFromLeft_17ze5_29{--translate-x-outside-screen: -100%;width:var(--drawer-width);left:0}._portal_17ze5_1 ._content_17ze5_9._slideFromRight_17ze5_30{--translate-x-outside-screen: 100%;width:var(--drawer-width);right:0}._portal_17ze5_1 ._content_17ze5_9._slideFromTop_17ze5_45{--translate-y-outside-screen: -100%;height:var(--drawer-width);top:0}._portal_17ze5_1 ._content_17ze5_9._slideFromBottom_17ze5_46{--translate-y-outside-screen: 100%;height:var(--drawer-width);bottom:0}._overlay_1gix5_1{--swui-modal-animation-time: var(--swui-animation-time-fast);--swui-modal-overlay-bg-color: var(--swui-overlay-bg-color);--swui-modal-content-bg-color: var(--swui-white);--swui-modal-width: 960px;--swui-modal-max-width: 100%;--swui-modal-header-border-color: var(--lhds-color-ui-300);--swui-modal-shadow: var(--swui-shadow-modal);--swui-modal-footer-shadow: var(--swui-shadow-modal);position:fixed;z-index:10;top:0;left:0;right:0;bottom:0;background-color:var(--swui-modal-overlay-bg-color);overflow:auto;display:flex;flex-direction:column;justify-content:flex-start;align-items:center;animation:_fadeIn_1gix5_1 var(--swui-modal-animation-time) cubic-bezier(.645,.045,.355,1) both}@media print{._overlay_1gix5_1{background-color:#fff}}._overlay_1gix5_1 ._modal_1gix5_31{max-width:100%;outline:none;pointer-events:none;padding:var(--swui-metrics-space)}._overlay_1gix5_1 ._content_1gix5_38{position:relative;display:block;background:var(--swui-modal-content-bg-color);box-shadow:var(--swui-modal-shadow);border-radius:var(--swui-border-radius-large);pointer-events:all;width:var(--swui-modal-width);max-width:var(--swui-modal-max-width);animation:_appear_1gix5_1 var(--swui-animation-time-fast) cubic-bezier(.645,.045,.355,1) both}@media print{._overlay_1gix5_1 ._content_1gix5_38{box-shadow:none;top:0}}._overlay_1gix5_1 ._content_1gix5_38:focus{outline:0}._overlay_1gix5_1 ._content_1gix5_38._isDraggable_1gix5_61 .draggable-modal-handle{cursor:move}._overlay_1gix5_1 ._content_1gix5_38._isDraggable_1gix5_61 .draggable-modal-handle .draggable-modal-cancel,._overlay_1gix5_1 ._content_1gix5_38._isDraggable_1gix5_61 .draggable-modal-handle [role=tooltip]{cursor:initial}@keyframes _fadeIn_1gix5_1{0%{background-color:var(--swui-hidden)}to{background-color:var(--swui-modal-overlay-bg-color)}}@keyframes _appear_1gix5_1{0%{opacity:0}to{opacity:1}}._footer_1gix5_92{background-color:var(--swui-modal-content-bg-color)}._stickyFooter_1gix5_96{position:-webkit-sticky;position:sticky;bottom:0;box-shadow:var(--swui-modal-footer-shadow)}@media print{._stickyFooter_1gix5_96{position:static;box-shadow:none}}._overlay_1lu6i_1{--swui-modal-animation-time: var(--swui-animation-time-medium);--swui-modal-overlay-bg-color: var(--swui-overlay-bg-color);--swui-modal-content-bg-color: var(--swui-white);--swui-modal-width: 960px;--swui-modal-max-width: 100%;--swui-modal-header-border-color: var(--lhds-color-ui-300);--swui-modal-shadow: var(--swui-shadow-modal);--swui-modal-footer-shadow: var(--swui-shadow-modal);position:fixed;z-index:10;top:0;left:0;right:0;bottom:0;background-color:var(--swui-modal-overlay-bg-color);display:flex;flex-direction:column;justify-content:flex-start;align-items:center;opacity:0}._overlay_1lu6i_1._afterOpen_1lu6i_24:not(._beforeClose_1lu6i_24){animation:_fadeIn_1lu6i_1 var(--swui-modal-animation-time) forwards}._overlay_1lu6i_1._beforeClose_1lu6i_24{animation:_fadeOut_1lu6i_1 var(--swui-modal-animation-time) forwards}@media print{._overlay_1lu6i_1{background-color:#fff}}._overlay_1lu6i_1 ._modal_1lu6i_36{max-width:100%;outline:none;pointer-events:none;padding:calc(var(--swui-metrics-space) * 2);box-sizing:border-box;max-height:100%;transform:translateY(-100%)}@media (max-width: 768px){._overlay_1lu6i_1 ._modal_1lu6i_36{padding:0;width:100%}}._overlay_1lu6i_1 ._modal_1lu6i_36._afterOpen_1lu6i_24:not(._beforeClose_1lu6i_24){animation:_slideIn_1lu6i_1 var(--swui-modal-animation-time) forwards}._overlay_1lu6i_1 ._modal_1lu6i_36._beforeClose_1lu6i_24{animation:_slideOut_1lu6i_1 var(--swui-modal-animation-time) forwards}._overlay_1lu6i_1 ._content_1lu6i_59{position:relative;display:block;background:var(--swui-modal-content-bg-color);box-shadow:var(--swui-modal-shadow);border-radius:var(--swui-border-radius-large);pointer-events:all;width:var(--swui-modal-width);max-width:var(--swui-modal-max-width);height:100%;overflow:hidden;overflow-y:auto}@media (max-width: 768px){._overlay_1lu6i_1 ._content_1lu6i_59{border-radius:0;width:100%;max-width:100%;min-height:100dvh}}@media (min-width: 769px){._overlay_1lu6i_1 ._content_1lu6i_59{border-radius:var(--swui-border-radius-large)}._overlay_1lu6i_1 ._content_1lu6i_59::-webkit-scrollbar-thumb{background-color:var(--lhds-color-ui-400);border:4px solid transparent;border-radius:8px;background-clip:padding-box}._overlay_1lu6i_1 ._content_1lu6i_59::-webkit-scrollbar{width:16px}}@media print{._overlay_1lu6i_1 ._content_1lu6i_59{box-shadow:none;top:0}}._overlay_1lu6i_1 ._content_1lu6i_59:focus{outline:0}@keyframes _fadeIn_1lu6i_1{0%{opacity:0}to{opacity:1}}@keyframes _fadeOut_1lu6i_1{0%{opacity:1}to{opacity:0}}@keyframes _slideIn_1lu6i_1{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes _slideOut_1lu6i_1{0%{transform:translateY(0);opacity:1}to{transform:translateY(-100%);opacity:0}}._footer_1lu6i_148{background-color:var(--swui-modal-content-bg-color)}._stickyFooter_1lu6i_152{position:-webkit-sticky;position:sticky;bottom:0;box-shadow:var(--swui-modal-footer-shadow)}@media print{._stickyFooter_1lu6i_152{position:static;box-shadow:none}}._modal_4fwgb_1{display:flex;justify-content:center;align-items:center;position:fixed;top:0;left:0;right:0;bottom:0;background-color:transparent}._overlay_4fwgb_13{position:fixed;top:0;left:0;right:0;bottom:0;background-color:var(--swui-overlay-bg-color)}._alertDialog_14t8t_1{border:0;outline:0;border-radius:var(--swui-border-radius-large);margin:auto;padding:0;overscroll-behavior:contain;opacity:0;pointer-events:none;box-shadow:#0003 0 0 10px 4px}._alertDialog_14t8t_1:not([open]){display:none}._alertDialog_14t8t_1[open]{opacity:1;pointer-events:auto;animation:_slideIn_14t8t_1 .25s forwards}._alertDialog_14t8t_1._closing_14t8t_22[open]{animation:_slideOut_14t8t_1 .25s forwards}._alertDialog_14t8t_1::backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#0d0e1080;animation:_fadeIn_14t8t_1 .25s forwards}._alertDialog_14t8t_1._closing_14t8t_22::backdrop{animation:_fadeOut_14t8t_1 .25s forwards}@keyframes _fadeIn_14t8t_1{0%{opacity:0}to{opacity:1}}@keyframes _fadeOut_14t8t_1{0%{opacity:1}to{opacity:0}}@keyframes _slideIn_14t8t_1{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes _slideOut_14t8t_1{0%{transform:translateY(0);opacity:1}to{transform:translateY(-100%);opacity:0}}._drawerDialog_11g6r_1{max-height:100%;max-width:100%;border:0;outline:0;margin:0;padding:0;overflow-y:auto;overscroll-behavior:contain;box-shadow:#0003 0 0 10px 4px;position:fixed}._drawerDialog_11g6r_1._left_11g6r_13,._drawerDialog_11g6r_1._right_11g6r_14{height:100%;top:0;bottom:0}._drawerDialog_11g6r_1._left_11g6r_13 ._contentWrapper_11g6r_19,._drawerDialog_11g6r_1._right_11g6r_14 ._contentWrapper_11g6r_19{height:100%}@media (max-width: 768px){._drawerDialog_11g6r_1._left_11g6r_13,._drawerDialog_11g6r_1._right_11g6r_14{width:-webkit-fit-content;width:fit-content}}._drawerDialog_11g6r_1._left_11g6r_13{left:0;right:unset}._drawerDialog_11g6r_1._left_11g6r_13[open]{animation:_slideInLeft_11g6r_1 .25s forwards}._drawerDialog_11g6r_1._left_11g6r_13._closing_11g6r_36[open]{animation:_slideOutLeft_11g6r_1 .25s forwards}._drawerDialog_11g6r_1._right_11g6r_14{left:unset;right:0}._drawerDialog_11g6r_1._right_11g6r_14[open]{animation:_slideInRight_11g6r_1 .25s forwards}._drawerDialog_11g6r_1._right_11g6r_14._closing_11g6r_36[open]{animation:_slideOutRight_11g6r_1 .25s forwards}._drawerDialog_11g6r_1._top_11g6r_54,._drawerDialog_11g6r_1._bottom_11g6r_55{width:100%;left:0;right:0}@media (max-width: 768px){._drawerDialog_11g6r_1._top_11g6r_54,._drawerDialog_11g6r_1._bottom_11g6r_55{height:-webkit-fit-content;height:fit-content}}._drawerDialog_11g6r_1._top_11g6r_54{top:0;bottom:unset}._drawerDialog_11g6r_1._top_11g6r_54[open]{animation:_slideInTop_11g6r_1 .25s forwards}._drawerDialog_11g6r_1._top_11g6r_54._closing_11g6r_36[open]{animation:_slideOutTop_11g6r_1 .25s forwards}._drawerDialog_11g6r_1._bottom_11g6r_55{top:unset;bottom:0}._drawerDialog_11g6r_1._bottom_11g6r_55[open]{animation:_slideInBottom_11g6r_1 .25s forwards}._drawerDialog_11g6r_1._bottom_11g6r_55._closing_11g6r_36[open]{animation:_slideOutBottom_11g6r_1 .25s forwards}._drawerDialog_11g6r_1[open]{opacity:1;pointer-events:auto}@keyframes _slideInLeft_11g6r_1{0%{transform:translate(-100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes _slideOutLeft_11g6r_1{0%{transform:translate(0);opacity:0}to{transform:translate(-100%);opacity:1}}@keyframes _slideInTop_11g6r_1{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes _slideOutTop_11g6r_1{0%{transform:translateY(0);opacity:0}to{transform:translateY(-100%);opacity:1}}@keyframes _slideInRight_11g6r_1{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes _slideOutRight_11g6r_1{0%{transform:translate(0);opacity:0}to{transform:translate(100%);opacity:1}}@keyframes _slideInBottom_11g6r_1{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes _slideOutBottom_11g6r_1{0%{transform:translateY(0);opacity:0}to{transform:translateY(100%);opacity:1}}._modalDialog_1teni_1{border:0;outline:0;margin:auto;padding:0;overscroll-behavior:contain;opacity:0;pointer-events:none;box-shadow:#0003 0 0 10px 4px}@media (min-width: 769px){._modalDialog_1teni_1{border-radius:var(--swui-border-radius-large)}._modalDialog_1teni_1::-webkit-scrollbar-thumb{background-color:var(--lhds-color-ui-400);border:4px solid transparent;border-radius:8px;background-clip:padding-box}._modalDialog_1teni_1::-webkit-scrollbar{width:16px}}._modalDialog_1teni_1:not([open]){display:none}._modalDialog_1teni_1[open]{opacity:1;pointer-events:auto;animation:_slideIn_1teni_1 .25s forwards}._modalDialog_1teni_1._closing_1teni_36[open]{animation:_slideOut_1teni_1 .25s forwards}@media (max-width: 768px){._modalDialog_1teni_1{margin:0;width:100%;max-width:100%;height:100%;max-height:100%}}._modalDialog_1teni_1::backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#0d0e1080;animation:_fadeIn_1teni_1 .25s forwards}._modalDialog_1teni_1._closing_1teni_36::backdrop{animation:_fadeOut_1teni_1 .25s forwards}@keyframes _fadeIn_1teni_1{0%{opacity:0}to{opacity:1}}@keyframes _fadeOut_1teni_1{0%{opacity:1}to{opacity:0}}@keyframes _slideIn_1teni_1{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes _slideOut_1teni_1{0%{transform:translateY(0);opacity:1}to{transform:translateY(-100%);opacity:0}}@media (max-width: 768px){._contentWrapper_1teni_100{width:100%;height:100%}}._modalActionButtons_s27nj_1{display:flex;flex-direction:row;gap:16px;justify-content:center}@media (max-width: 768px){._modalActionButtons_s27nj_1{flex-direction:column;justify-content:stretch}}._modalBody_xsn1i_1._modalBody_xsn1i_1{min-width:600px}@media (max-width: 768px){._modalBody_xsn1i_1._modalBody_xsn1i_1{min-width:unset;flex:1;padding:calc(var(--swui-metrics-space) * 2)}}._modalFooter_1vp0i_1._modalFooter_1vp0i_1{align-items:center;overflow:hidden;background:var(--silver-lighter);border-radius:24px 24px 0 0;padding:0 calc((var(--swui-metrics-indent) * 5));flex-shrink:0}._modalFooter_1vp0i_1._modalFooter_1vp0i_1._sticky_1vp0i_9{position:-webkit-sticky;position:sticky;bottom:0}")),document.head.appendChild(o)}}catch(t){console.error("vite-plugin-css-injected-by-js",t)}})();
1
+ (function(){"use strict";try{if(typeof document<"u"){var o=document.createElement("style");o.appendChild(document.createTextNode("._overlay_quvmp_1{--swui-modal-animation-time: var(--swui-animation-time-fast);--swui-modal-overlay-bg-color: var(--swui-overlay-bg-color);--swui-modal-content-bg-color: var(--swui-white);--swui-modal-width: 960px;--swui-modal-max-width: 100%;--swui-modal-header-border-color: var(--lhds-color-ui-300);--swui-modal-shadow: var(--swui-shadow-modal);--swui-modal-footer-shadow: var(--swui-shadow-modal);position:fixed;z-index:10;top:0;left:0;right:0;bottom:0;background-color:var(--swui-modal-overlay-bg-color);overflow:auto;display:flex;flex-direction:column;justify-content:flex-start;align-items:center;animation:_fadeIn_quvmp_1 var(--swui-modal-animation-time) cubic-bezier(.645,.045,.355,1) both}@media print{._overlay_quvmp_1{background-color:#fff}}._overlay_quvmp_1 ._modal_quvmp_31{max-width:100%;outline:none;pointer-events:none}@media (max-width: 768px){._overlay_quvmp_1 ._modal_quvmp_31{width:100%}}._overlay_quvmp_1 ._content_quvmp_41{position:relative;display:block;background:var(--swui-modal-content-bg-color);box-shadow:var(--swui-modal-shadow);pointer-events:all;top:calc(var(--swui-metrics-space) * 2);width:var(--swui-modal-width);max-width:var(--swui-modal-max-width)}@media (max-width: 768px){._overlay_quvmp_1 ._content_quvmp_41{top:0;width:100%;max-width:100%}}._overlay_quvmp_1 ._content_quvmp_41{animation:_appear_quvmp_1 var(--swui-animation-time-fast) cubic-bezier(.645,.045,.355,1) both}@media print{._overlay_quvmp_1 ._content_quvmp_41{box-shadow:none;top:0}}._overlay_quvmp_1 ._content_quvmp_41:focus{outline:0}._overlay_quvmp_1 ._content_quvmp_41._isDraggable_quvmp_70 .draggable-modal-handle{cursor:move}._overlay_quvmp_1 ._content_quvmp_41._isDraggable_quvmp_70 .draggable-modal-handle .draggable-modal-cancel,._overlay_quvmp_1 ._content_quvmp_41._isDraggable_quvmp_70 .draggable-modal-handle [role=tooltip]{cursor:initial}@keyframes _fadeIn_quvmp_1{0%{background-color:var(--swui-hidden)}to{background-color:var(--swui-modal-overlay-bg-color)}}@keyframes _appear_quvmp_1{0%{opacity:0}to{opacity:1}}._footer_quvmp_101{background-color:var(--swui-modal-content-bg-color)}._stickyFooter_quvmp_105{position:-webkit-sticky;position:sticky;bottom:0;box-shadow:var(--swui-modal-footer-shadow)}@media print{._stickyFooter_quvmp_105{position:static;box-shadow:none}}._portal_17ze5_1{--drawer-width: 370px}._portal_17ze5_1 ._overlay_17ze5_4{position:fixed;top:0;right:0;bottom:0;left:0}._portal_17ze5_1 ._content_17ze5_9{box-shadow:var(--swui-shadow-modal);background:#fff;position:absolute;transition:transform var(--swui-animation-time-medium) ease-in-out}._portal_17ze5_1 ._content_17ze5_9._floating_17ze5_15{margin:var(--swui-metrics-space);border-radius:var(--swui-border-radius)}@media (max-width: 768px){._portal_17ze5_1 ._content_17ze5_9._floating_17ze5_15{margin:0;border-radius:0}}._portal_17ze5_1 ._content_17ze5_9:focus-visible{outline:unset}._portal_17ze5_1 ._content_17ze5_9._slideFromLeft_17ze5_29,._portal_17ze5_1 ._content_17ze5_9._slideFromRight_17ze5_30{transform:translate(var(--translate-x-outside-screen, 0));overflow-y:auto;top:0;bottom:0}._portal_17ze5_1 ._content_17ze5_9._slideFromLeft_17ze5_29._afterOpen_17ze5_36,._portal_17ze5_1 ._content_17ze5_9._slideFromRight_17ze5_30._afterOpen_17ze5_36{transform:translate(0)}._portal_17ze5_1 ._content_17ze5_9._slideFromLeft_17ze5_29._beforeClose_17ze5_40,._portal_17ze5_1 ._content_17ze5_9._slideFromRight_17ze5_30._beforeClose_17ze5_40{transform:translate(var(--translate-x-outside-screen))}._portal_17ze5_1 ._content_17ze5_9._slideFromTop_17ze5_45,._portal_17ze5_1 ._content_17ze5_9._slideFromBottom_17ze5_46{transform:translateY(var(--translate-y-outside-screen, 0));overflow-x:auto;left:0;right:0}._portal_17ze5_1 ._content_17ze5_9._slideFromTop_17ze5_45._afterOpen_17ze5_36,._portal_17ze5_1 ._content_17ze5_9._slideFromBottom_17ze5_46._afterOpen_17ze5_36{transform:translateY(0)}._portal_17ze5_1 ._content_17ze5_9._slideFromTop_17ze5_45._beforeClose_17ze5_40,._portal_17ze5_1 ._content_17ze5_9._slideFromBottom_17ze5_46._beforeClose_17ze5_40{transform:translateY(var(--translate-y-outside-screen))}._portal_17ze5_1 ._content_17ze5_9._slideFromLeft_17ze5_29{--translate-x-outside-screen: -100%;width:var(--drawer-width);left:0}._portal_17ze5_1 ._content_17ze5_9._slideFromRight_17ze5_30{--translate-x-outside-screen: 100%;width:var(--drawer-width);right:0}._portal_17ze5_1 ._content_17ze5_9._slideFromTop_17ze5_45{--translate-y-outside-screen: -100%;height:var(--drawer-width);top:0}._portal_17ze5_1 ._content_17ze5_9._slideFromBottom_17ze5_46{--translate-y-outside-screen: 100%;height:var(--drawer-width);bottom:0}._overlay_1gix5_1{--swui-modal-animation-time: var(--swui-animation-time-fast);--swui-modal-overlay-bg-color: var(--swui-overlay-bg-color);--swui-modal-content-bg-color: var(--swui-white);--swui-modal-width: 960px;--swui-modal-max-width: 100%;--swui-modal-header-border-color: var(--lhds-color-ui-300);--swui-modal-shadow: var(--swui-shadow-modal);--swui-modal-footer-shadow: var(--swui-shadow-modal);position:fixed;z-index:10;top:0;left:0;right:0;bottom:0;background-color:var(--swui-modal-overlay-bg-color);overflow:auto;display:flex;flex-direction:column;justify-content:flex-start;align-items:center;animation:_fadeIn_1gix5_1 var(--swui-modal-animation-time) cubic-bezier(.645,.045,.355,1) both}@media print{._overlay_1gix5_1{background-color:#fff}}._overlay_1gix5_1 ._modal_1gix5_31{max-width:100%;outline:none;pointer-events:none;padding:var(--swui-metrics-space)}._overlay_1gix5_1 ._content_1gix5_38{position:relative;display:block;background:var(--swui-modal-content-bg-color);box-shadow:var(--swui-modal-shadow);border-radius:var(--swui-border-radius-large);pointer-events:all;width:var(--swui-modal-width);max-width:var(--swui-modal-max-width);animation:_appear_1gix5_1 var(--swui-animation-time-fast) cubic-bezier(.645,.045,.355,1) both}@media print{._overlay_1gix5_1 ._content_1gix5_38{box-shadow:none;top:0}}._overlay_1gix5_1 ._content_1gix5_38:focus{outline:0}._overlay_1gix5_1 ._content_1gix5_38._isDraggable_1gix5_61 .draggable-modal-handle{cursor:move}._overlay_1gix5_1 ._content_1gix5_38._isDraggable_1gix5_61 .draggable-modal-handle .draggable-modal-cancel,._overlay_1gix5_1 ._content_1gix5_38._isDraggable_1gix5_61 .draggable-modal-handle [role=tooltip]{cursor:initial}@keyframes _fadeIn_1gix5_1{0%{background-color:var(--swui-hidden)}to{background-color:var(--swui-modal-overlay-bg-color)}}@keyframes _appear_1gix5_1{0%{opacity:0}to{opacity:1}}._footer_1gix5_92{background-color:var(--swui-modal-content-bg-color)}._stickyFooter_1gix5_96{position:-webkit-sticky;position:sticky;bottom:0;box-shadow:var(--swui-modal-footer-shadow)}@media print{._stickyFooter_1gix5_96{position:static;box-shadow:none}}._overlay_1lu6i_1{--swui-modal-animation-time: var(--swui-animation-time-medium);--swui-modal-overlay-bg-color: var(--swui-overlay-bg-color);--swui-modal-content-bg-color: var(--swui-white);--swui-modal-width: 960px;--swui-modal-max-width: 100%;--swui-modal-header-border-color: var(--lhds-color-ui-300);--swui-modal-shadow: var(--swui-shadow-modal);--swui-modal-footer-shadow: var(--swui-shadow-modal);position:fixed;z-index:10;top:0;left:0;right:0;bottom:0;background-color:var(--swui-modal-overlay-bg-color);display:flex;flex-direction:column;justify-content:flex-start;align-items:center;opacity:0}._overlay_1lu6i_1._afterOpen_1lu6i_24:not(._beforeClose_1lu6i_24){animation:_fadeIn_1lu6i_1 var(--swui-modal-animation-time) forwards}._overlay_1lu6i_1._beforeClose_1lu6i_24{animation:_fadeOut_1lu6i_1 var(--swui-modal-animation-time) forwards}@media print{._overlay_1lu6i_1{background-color:#fff}}._overlay_1lu6i_1 ._modal_1lu6i_36{max-width:100%;outline:none;pointer-events:none;padding:calc(var(--swui-metrics-space) * 2);box-sizing:border-box;max-height:100%;transform:translateY(-100%)}@media (max-width: 768px){._overlay_1lu6i_1 ._modal_1lu6i_36{padding:0;width:100%}}._overlay_1lu6i_1 ._modal_1lu6i_36._afterOpen_1lu6i_24:not(._beforeClose_1lu6i_24){animation:_slideIn_1lu6i_1 var(--swui-modal-animation-time) forwards}._overlay_1lu6i_1 ._modal_1lu6i_36._beforeClose_1lu6i_24{animation:_slideOut_1lu6i_1 var(--swui-modal-animation-time) forwards}._overlay_1lu6i_1 ._content_1lu6i_59{position:relative;display:block;background:var(--swui-modal-content-bg-color);box-shadow:var(--swui-modal-shadow);border-radius:var(--swui-border-radius-large);pointer-events:all;width:var(--swui-modal-width);max-width:var(--swui-modal-max-width);height:100%;overflow:hidden;overflow-y:auto}@media (max-width: 768px){._overlay_1lu6i_1 ._content_1lu6i_59{border-radius:0;width:100%;max-width:100%;min-height:100dvh}}@media (min-width: 769px){._overlay_1lu6i_1 ._content_1lu6i_59{border-radius:var(--swui-border-radius-large)}._overlay_1lu6i_1 ._content_1lu6i_59::-webkit-scrollbar-thumb{background-color:var(--lhds-color-ui-400);border:4px solid transparent;border-radius:8px;background-clip:padding-box}._overlay_1lu6i_1 ._content_1lu6i_59::-webkit-scrollbar{width:16px}}@media print{._overlay_1lu6i_1 ._content_1lu6i_59{box-shadow:none;top:0}}._overlay_1lu6i_1 ._content_1lu6i_59:focus{outline:0}@keyframes _fadeIn_1lu6i_1{0%{opacity:0}to{opacity:1}}@keyframes _fadeOut_1lu6i_1{0%{opacity:1}to{opacity:0}}@keyframes _slideIn_1lu6i_1{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes _slideOut_1lu6i_1{0%{transform:translateY(0);opacity:1}to{transform:translateY(-100%);opacity:0}}._footer_1lu6i_148{background-color:var(--swui-modal-content-bg-color)}._stickyFooter_1lu6i_152{position:-webkit-sticky;position:sticky;bottom:0;box-shadow:var(--swui-modal-footer-shadow)}@media print{._stickyFooter_1lu6i_152{position:static;box-shadow:none}}._modal_4fwgb_1{display:flex;justify-content:center;align-items:center;position:fixed;top:0;left:0;right:0;bottom:0;background-color:transparent}._overlay_4fwgb_13{position:fixed;top:0;left:0;right:0;bottom:0;background-color:var(--swui-overlay-bg-color)}._alertDialog_14t8t_1{border:0;outline:0;border-radius:var(--swui-border-radius-large);margin:auto;padding:0;overscroll-behavior:contain;opacity:0;pointer-events:none;box-shadow:#0003 0 0 10px 4px}._alertDialog_14t8t_1:not([open]){display:none}._alertDialog_14t8t_1[open]{opacity:1;pointer-events:auto;animation:_slideIn_14t8t_1 .25s forwards}._alertDialog_14t8t_1._closing_14t8t_22[open]{animation:_slideOut_14t8t_1 .25s forwards}._alertDialog_14t8t_1::backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#0d0e1080;animation:_fadeIn_14t8t_1 .25s forwards}._alertDialog_14t8t_1._closing_14t8t_22::backdrop{animation:_fadeOut_14t8t_1 .25s forwards}@keyframes _fadeIn_14t8t_1{0%{opacity:0}to{opacity:1}}@keyframes _fadeOut_14t8t_1{0%{opacity:1}to{opacity:0}}@keyframes _slideIn_14t8t_1{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes _slideOut_14t8t_1{0%{transform:translateY(0);opacity:1}to{transform:translateY(-100%);opacity:0}}._drawerDialog_11g6r_1{max-height:100%;max-width:100%;border:0;outline:0;margin:0;padding:0;overflow-y:auto;overscroll-behavior:contain;box-shadow:#0003 0 0 10px 4px;position:fixed}._drawerDialog_11g6r_1._left_11g6r_13,._drawerDialog_11g6r_1._right_11g6r_14{height:100%;top:0;bottom:0}._drawerDialog_11g6r_1._left_11g6r_13 ._contentWrapper_11g6r_19,._drawerDialog_11g6r_1._right_11g6r_14 ._contentWrapper_11g6r_19{height:100%}@media (max-width: 768px){._drawerDialog_11g6r_1._left_11g6r_13,._drawerDialog_11g6r_1._right_11g6r_14{width:-webkit-fit-content;width:fit-content}}._drawerDialog_11g6r_1._left_11g6r_13{left:0;right:unset}._drawerDialog_11g6r_1._left_11g6r_13[open]{animation:_slideInLeft_11g6r_1 .25s forwards}._drawerDialog_11g6r_1._left_11g6r_13._closing_11g6r_36[open]{animation:_slideOutLeft_11g6r_1 .25s forwards}._drawerDialog_11g6r_1._right_11g6r_14{left:unset;right:0}._drawerDialog_11g6r_1._right_11g6r_14[open]{animation:_slideInRight_11g6r_1 .25s forwards}._drawerDialog_11g6r_1._right_11g6r_14._closing_11g6r_36[open]{animation:_slideOutRight_11g6r_1 .25s forwards}._drawerDialog_11g6r_1._top_11g6r_54,._drawerDialog_11g6r_1._bottom_11g6r_55{width:100%;left:0;right:0}@media (max-width: 768px){._drawerDialog_11g6r_1._top_11g6r_54,._drawerDialog_11g6r_1._bottom_11g6r_55{height:-webkit-fit-content;height:fit-content}}._drawerDialog_11g6r_1._top_11g6r_54{top:0;bottom:unset}._drawerDialog_11g6r_1._top_11g6r_54[open]{animation:_slideInTop_11g6r_1 .25s forwards}._drawerDialog_11g6r_1._top_11g6r_54._closing_11g6r_36[open]{animation:_slideOutTop_11g6r_1 .25s forwards}._drawerDialog_11g6r_1._bottom_11g6r_55{top:unset;bottom:0}._drawerDialog_11g6r_1._bottom_11g6r_55[open]{animation:_slideInBottom_11g6r_1 .25s forwards}._drawerDialog_11g6r_1._bottom_11g6r_55._closing_11g6r_36[open]{animation:_slideOutBottom_11g6r_1 .25s forwards}._drawerDialog_11g6r_1[open]{opacity:1;pointer-events:auto}@keyframes _slideInLeft_11g6r_1{0%{transform:translate(-100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes _slideOutLeft_11g6r_1{0%{transform:translate(0);opacity:0}to{transform:translate(-100%);opacity:1}}@keyframes _slideInTop_11g6r_1{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes _slideOutTop_11g6r_1{0%{transform:translateY(0);opacity:0}to{transform:translateY(-100%);opacity:1}}@keyframes _slideInRight_11g6r_1{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes _slideOutRight_11g6r_1{0%{transform:translate(0);opacity:0}to{transform:translate(100%);opacity:1}}@keyframes _slideInBottom_11g6r_1{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes _slideOutBottom_11g6r_1{0%{transform:translateY(0);opacity:0}to{transform:translateY(100%);opacity:1}}._modalDialog_1teni_1{border:0;outline:0;margin:auto;padding:0;overscroll-behavior:contain;opacity:0;pointer-events:none;box-shadow:#0003 0 0 10px 4px}@media (min-width: 769px){._modalDialog_1teni_1{border-radius:var(--swui-border-radius-large)}._modalDialog_1teni_1::-webkit-scrollbar-thumb{background-color:var(--lhds-color-ui-400);border:4px solid transparent;border-radius:8px;background-clip:padding-box}._modalDialog_1teni_1::-webkit-scrollbar{width:16px}}._modalDialog_1teni_1:not([open]){display:none}._modalDialog_1teni_1[open]{opacity:1;pointer-events:auto;animation:_slideIn_1teni_1 .25s forwards}._modalDialog_1teni_1._closing_1teni_36[open]{animation:_slideOut_1teni_1 .25s forwards}@media (max-width: 768px){._modalDialog_1teni_1{margin:0;width:100%;max-width:100%;height:100%;max-height:100%}}._modalDialog_1teni_1::backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#0d0e1080;animation:_fadeIn_1teni_1 .25s forwards}._modalDialog_1teni_1._closing_1teni_36::backdrop{animation:_fadeOut_1teni_1 .25s forwards}@keyframes _fadeIn_1teni_1{0%{opacity:0}to{opacity:1}}@keyframes _fadeOut_1teni_1{0%{opacity:1}to{opacity:0}}@keyframes _slideIn_1teni_1{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes _slideOut_1teni_1{0%{transform:translateY(0);opacity:1}to{transform:translateY(-100%);opacity:0}}@media (max-width: 768px){._contentWrapper_1teni_100{width:100%;height:100%}}._modalActionButtons_s27nj_1{display:flex;flex-direction:row;gap:16px;justify-content:center}@media (max-width: 768px){._modalActionButtons_s27nj_1{flex-direction:column;justify-content:stretch}}@media (max-width: 768px){._modalBody_ozynq_1._modalBody_ozynq_1{padding:calc(var(--swui-metrics-space) * 2)}}._modalFooter_1vp0i_1._modalFooter_1vp0i_1{align-items:center;overflow:hidden;background:var(--silver-lighter);border-radius:24px 24px 0 0;padding:0 calc((var(--swui-metrics-indent) * 5));flex-shrink:0}._modalFooter_1vp0i_1._modalFooter_1vp0i_1._sticky_1vp0i_9{position:-webkit-sticky;position:sticky;bottom:0}")),document.head.appendChild(o)}}catch(t){console.error("vite-plugin-css-injected-by-js",t)}})();
2
2
  import B from "react-modal";
3
3
  import { jsx as n, jsxs as g, Fragment as re } from "react/jsx-runtime";
4
4
  import { useRef as F, useState as W, useEffect as we, createContext as Ie, useReducer as Oe, useCallback as k, useMemo as le, createElement as ae, useContext as Ne } from "react";
@@ -572,7 +572,7 @@ const pe = ({
572
572
  }) => /* @__PURE__ */ g(L, { width: "100%", children: [
573
573
  /* @__PURE__ */ n(U, {}),
574
574
  /* @__PURE__ */ n("div", { className: on.modalActionButtons, children: t })
575
- ] }), rn = "_modalBody_xsn1i_1", _e = {
575
+ ] }), rn = "_modalBody_ozynq_1", _e = {
576
576
  modalBody: rn
577
577
  }, ln = ({
578
578
  gap: t = 3,
@@ -637,7 +637,7 @@ const pe = ({
637
637
  headingSize: o,
638
638
  onClickClose: s,
639
639
  closeButtonAriaLabel: r
640
- }) => /* @__PURE__ */ n(A, { children: /* @__PURE__ */ g(v, { justifyContent: "space-between", alignItems: "center", children: [
640
+ }) => /* @__PURE__ */ n(A, { children: /* @__PURE__ */ g(v, { justifyContent: "space-between", alignItems: "center", gap: 2, children: [
641
641
  t ? /* @__PURE__ */ n(pe, { headingLevel: e, size: o, children: t }) : /* @__PURE__ */ n("div", {}),
642
642
  s ? /* @__PURE__ */ n(
643
643
  cn,
@@ -1 +1 @@
1
- {"version":3,"file":"index.es.js","sources":["../src/declarative-modals/DeclarativeModalSetup.ts","../src/declarative-modals/window/BaseWindow.tsx","../src/declarative-modals/drawer/Drawer.tsx","../src/declarative-modals/drawer/DrawerHeader.tsx","../src/declarative-modals/alert/Alert.tsx","../src/declarative-modals/modal/Modal.tsx","../src/declarative-modals/loading-modal/LoadingModal.tsx","../src/declarative-modals/window/WindowHeader.tsx","../src/declarative-modals/window/Window.tsx","../src/declarative-modals/window/WindowFooter.tsx","../src/dialog/DialogContext.ts","../src/dialog/UseDialog.tsx","../src/dialog/UseDialogPromise.ts","../src/dialog/alert/UseAlertDialog.ts","../src/dialog/drawer/UseDrawerDialog.ts","../src/dialog/modal/UseModalDialog.ts","../src/building-blocks/ModalHeading.tsx","../src/building-blocks/ModalActionButtons.tsx","../src/building-blocks/ModalBody.tsx","../src/building-blocks/ModalContainer.tsx","../src/ready-made-modals/InfoAlert.tsx","../src/building-blocks/ModalCloseButton.tsx","../src/building-blocks/ModalHeader.tsx","../src/building-blocks/ModalFooter.tsx"],"sourcesContent":["import ReactModal from \"react-modal\";\n\nexport const setupDeclarativeModals = (htmlElement: string | HTMLElement) => {\n ReactModal.setAppElement(htmlElement);\n};\n","import * as React from \"react\";\nimport { useRef } from \"react\";\nimport ReactModal from \"react-modal\";\nimport Draggable from \"react-draggable\";\nimport cx from \"classnames\";\nimport styles from \"./Window.module.css\";\n\nexport interface BaseWindowProps extends ReactModal.Props {\n width?: string;\n maxWidth?: string;\n onRequestClose?: () => void;\n draggable?: boolean;\n}\n\nexport const DRAGGABLE_HANDLE_CLASSNAME = \"draggable-modal-handle\";\nexport const DRAGGABLE_CANCEL_CLASSNAME = \"draggable-modal-cancel\";\n\nexport const BaseWindow: React.FC<BaseWindowProps> = ({\n width,\n maxWidth,\n draggable = false,\n children,\n ...reactModalProps\n}) => {\n const nodeRef = useRef<HTMLDivElement>(null);\n return (\n <ReactModal\n overlayClassName={styles.overlay}\n className={styles.modal}\n {...reactModalProps}\n >\n <Draggable\n handle={`.${DRAGGABLE_HANDLE_CLASSNAME}`}\n cancel={`.${DRAGGABLE_CANCEL_CLASSNAME}, button, [role=\"tooltip\"]`}\n bounds=\".ReactModal__Overlay\"\n disabled={!draggable}\n nodeRef={nodeRef as React.RefObject<HTMLElement>}\n >\n <div\n style={{\n [\"--swui-modal-width\" as string]: width,\n [\"--swui-modal-max-width\" as string]: maxWidth,\n }}\n className={cx(styles.content, {\n [styles.isDraggable]: draggable,\n })}\n ref={nodeRef}\n >\n {children}\n </div>\n </Draggable>\n </ReactModal>\n );\n};\n","import * as React from \"react\";\nimport ReactModal from \"react-modal\";\nimport cx from \"classnames\";\nimport styles from \"./Drawer.module.css\";\nimport { exhaustSwitchCase, FlattenUnion } from \"@stenajs-webui/core\";\nimport {\n SlideFrom,\n SlideFromLeftRight,\n SlideFromTopBottom,\n} from \"../../common-types\";\n\nexport type DrawerProps = DrawerBaseLeftRight | DrawerBaseTopBottom;\n\ninterface DrawerBaseLeftRight extends DrawerBaseProps {\n width?: string;\n /**\n * Which direction the drawer will appear from.\n * @default left\n * @param {String('left'|'right')}\n */\n slideFrom?: SlideFromLeftRight;\n}\n\ninterface DrawerBaseTopBottom extends DrawerBaseProps {\n height?: string;\n /**\n * Which direction the drawer will appear from.\n * @default left\n * @param {String('top'|'bottom')}\n */\n slideFrom?: SlideFromTopBottom;\n}\n\ninterface DrawerBaseProps\n extends Omit<\n ReactModal.Props,\n | \"closeTimeoutMS\"\n | \"portalClassName\"\n | \"overlayClassName\"\n | \"className\"\n | \"style\"\n | \"parentSelector\"\n > {\n background?: string;\n\n /**\n * When true, there will be a gap between the drawer and the viewport.\n */\n floating?: boolean;\n\n zIndex?: number;\n onRequestClose?: () => void;\n /**\n * Portal target, HTML element. If not set, portal is not used.\n */\n portalTarget?: HTMLElement | null;\n}\n\nexport const Drawer: React.FC<DrawerProps> = ({\n background,\n zIndex,\n children,\n slideFrom = \"left\",\n portalTarget,\n floating,\n ...reactModalProps\n}) => {\n const { height, width } = reactModalProps as FlattenUnion<DrawerProps>;\n\n return (\n <ReactModal\n closeTimeoutMS={250}\n portalClassName={styles.portal}\n overlayClassName={{\n base: styles.overlay,\n afterOpen: styles.afterOpen,\n beforeClose: styles.beforeClose,\n }}\n className={{\n base: cx(\n styles.content,\n getClassNameForSlide(slideFrom),\n floating && styles.floating,\n ),\n afterOpen: styles.afterOpen,\n beforeClose: styles.beforeClose,\n }}\n style={{ content: { width, height, background }, overlay: { zIndex } }}\n parentSelector={portalTarget ? () => portalTarget : undefined}\n {...reactModalProps}\n >\n {children}\n </ReactModal>\n );\n};\n\nconst getClassNameForSlide = (slideFrom: SlideFrom): string => {\n switch (slideFrom) {\n case \"left\":\n return styles.slideFromLeft;\n case \"right\":\n return styles.slideFromRight;\n case \"top\":\n return styles.slideFromTop;\n case \"bottom\":\n return styles.slideFromBottom;\n default:\n return exhaustSwitchCase(slideFrom, styles.slideFromLeft);\n }\n};\n","import * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport { Heading, Row, Space, Spacing } from \"@stenajs-webui/core\";\nimport { FlatButton, Icon, stenaTimes } from \"@stenajs-webui/elements\";\nimport { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\nimport { cssColor } from \"@stenajs-webui/theme\";\n\nexport interface DrawerHeaderProps {\n onRequestClose: () => void;\n header?: string;\n contentRight?: ReactNode;\n icon?: IconDefinition;\n}\n\nexport const DrawerHeader: React.FC<DrawerHeaderProps> = ({\n header,\n contentRight,\n onRequestClose,\n icon,\n}) => {\n return (\n <Spacing\n position={\"sticky\"}\n top={0}\n zIndex={100}\n background={cssColor(\"--lhds-color-ui-50\")}\n >\n <Row\n justifyContent={\"space-between\"}\n alignItems={\"center\"}\n height={\"48px\"}\n >\n <Row alignItems={\"center\"} gap={2}>\n <Space num={1} />\n {icon && <Icon icon={icon} size={24} />}\n <Heading variant={\"h4\"}>{header}</Heading>\n </Row>\n <Row gap={1}>\n {contentRight}\n <FlatButton\n leftIcon={stenaTimes}\n onClick={onRequestClose}\n variant={\"danger\"}\n />\n <Space num={0.5} />\n </Row>\n </Row>\n </Spacing>\n );\n};\n","import * as React from \"react\";\nimport ReactModal from \"react-modal\";\n\nimport styles from \"./Alert.module.css\";\n\nexport interface AlertProps extends ReactModal.Props {\n onRequestClose?: () => void;\n}\n\nconst style = { overlay: { justifyContent: \"center\" } };\n\nexport const Alert: React.FC<AlertProps> = ({\n children,\n ...reactModalProps\n}) => {\n return (\n <ReactModal\n overlayClassName={styles.overlay}\n className={styles.modal}\n style={style}\n {...reactModalProps}\n >\n <div\n className={styles.content}\n style={{ [\"--swui-modal-width\" as string]: \"fit-content\" }}\n >\n {children}\n </div>\n </ReactModal>\n );\n};\n","import * as React from \"react\";\nimport { CSSProperties, useEffect, useRef, useState } from \"react\";\nimport ReactModal from \"react-modal\";\n\nimport styles from \"./Modal.module.css\";\nimport { useEventCallback } from \"@stenajs-webui/core\";\n\nexport interface ModalProps extends ReactModal.Props {\n background?: string;\n onRequestClose?: () => void;\n}\n\nconst isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n\nexport const Modal: React.FC<ModalProps> = ({\n children,\n background,\n ...reactModalProps\n}) => {\n const ref = useRef<HTMLDivElement | null>(null);\n\n const [scrollbarGutter, setScrollbarGutter] = useState<\n \"auto\" | \"stable\" | undefined\n >(isSafari ? \"auto\" : undefined);\n\n const style = {\n overlay: { justifyContent: \"center\" },\n content: {\n \"--swui-modal-content-bg-color\": background,\n } as CSSProperties,\n };\n\n const updateScrollbarGutter = useEventCallback(() => {\n if (!isSafari) {\n return;\n }\n\n const container = ref.current;\n if (container) {\n setScrollbarGutter(\n container.scrollHeight > container.clientHeight ? \"stable\" : \"auto\",\n );\n }\n });\n\n /**\n * Applying scrollbar-gutter fixes a glitch in Safari where redraw\n * sometimes makes the modal change width (with or without gutter included in size calculation).\n * This causes the modal to jump around when hovering with mouse or resizing window.\n *\n * If this glitch is fixed in Safari, this code can be removed.\n */\n\n useEffect(() => {\n window.addEventListener(\"resize\", updateScrollbarGutter);\n document.addEventListener(\"DOMContentLoaded\", updateScrollbarGutter);\n return () => {\n window.removeEventListener(\"resize\", updateScrollbarGutter);\n document.removeEventListener(\"DOMContentLoaded\", updateScrollbarGutter);\n };\n }, [updateScrollbarGutter]);\n\n return (\n <ReactModal\n overlayClassName={{\n base: styles.overlay,\n beforeClose: styles.beforeClose,\n afterOpen: styles.afterOpen,\n }}\n className={{\n base: styles.modal,\n beforeClose: styles.beforeClose,\n afterOpen: styles.afterOpen,\n }}\n style={style}\n closeTimeoutMS={250}\n onAfterOpen={updateScrollbarGutter}\n {...reactModalProps}\n >\n <div\n className={styles.content}\n style={{\n [\"--swui-modal-width\" as string]: \"fit-content\",\n scrollbarGutter,\n }}\n ref={ref}\n >\n {children}\n </div>\n </ReactModal>\n );\n};\n","import { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\nimport {\n Box,\n Column,\n Heading,\n Indent,\n Row,\n Spacing,\n} from \"@stenajs-webui/core\";\nimport { Icon, Spinner } from \"@stenajs-webui/elements\";\nimport * as React from \"react\";\nimport ReactModal from \"react-modal\";\nimport styles from \"./LoadingModal.module.css\";\n\nexport interface LoadingModalProps extends Omit<ReactModal.Props, \"isOpen\"> {\n headerText?: string;\n headerIconLeft?: IconDefinition;\n}\n\nexport const LoadingModal: React.FC<LoadingModalProps> = ({\n headerIconLeft,\n headerText,\n shouldCloseOnOverlayClick = false,\n shouldCloseOnEsc = false,\n ...modalProps\n}) => {\n return (\n <ReactModal\n {...modalProps}\n isOpen\n shouldCloseOnOverlayClick={shouldCloseOnOverlayClick}\n shouldCloseOnEsc={shouldCloseOnEsc}\n className={styles.modal}\n overlayClassName={styles.overlay}\n >\n <Column spacing={2} alignItems={\"center\"}>\n <Box\n alignItems={\"center\"}\n justifyContent={\"center\"}\n width={\"64px\"}\n height={\"64px\"}\n borderRadius={\"50%\"}\n background={\"white\"}\n shadow={\"modal\"}\n >\n <Spinner size={\"small\"} />\n </Box>\n {(headerIconLeft || headerText) && (\n <>\n <Spacing />\n <Row indent={2}>\n {headerIconLeft && (\n <>\n <Icon size={14} icon={headerIconLeft} color={\"white\"} />\n <Indent />\n </>\n )}\n {headerText && (\n <Heading variant={\"h4\"} color={\"white\"}>\n {headerText}\n </Heading>\n )}\n </Row>\n </>\n )}\n </Column>\n </ReactModal>\n );\n};\n","import { CloseButton } from \"@stenajs-webui/elements\";\nimport * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport {\n DRAGGABLE_CANCEL_CLASSNAME,\n DRAGGABLE_HANDLE_CLASSNAME,\n} from \"./BaseWindow\";\nimport { Box, Row, Txt } from \"@stenajs-webui/core\";\n\nexport interface WindowHeaderProps {\n onRequestClose?: () => void;\n header?: ReactNode;\n headerText?: string;\n closeButtonClassName?: string;\n}\n\nexport const WindowHeader: React.FC<WindowHeaderProps> = ({\n onRequestClose,\n header,\n headerText,\n closeButtonClassName,\n}) => {\n return (\n <Row\n spacing={2}\n indent={2}\n borderBottom={\"1px solid var(--lhds-color-ui-300)\"}\n className={DRAGGABLE_HANDLE_CLASSNAME}\n >\n <Row flex={1} indent alignItems={\"center\"}>\n {headerText && (\n <Txt className={DRAGGABLE_CANCEL_CLASSNAME} size={\"large\"}>\n {headerText}\n </Txt>\n )}\n {header}\n </Row>\n <Box alignSelf={\"flex-start\"}>\n <CloseButton\n className={closeButtonClassName}\n onClick={onRequestClose}\n />\n </Box>\n </Row>\n );\n};\n","import { Box } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { BaseWindow, BaseWindowProps } from \"./BaseWindow\";\nimport { WindowHeader, WindowHeaderProps } from \"./WindowHeader\";\nimport cx from \"classnames\";\nimport styles from \"./Window.module.css\";\n\nexport interface WindowProps extends BaseWindowProps, WindowHeaderProps {\n spacing?: number;\n indent?: number;\n draggable?: boolean;\n footer?: React.ReactNode;\n disableStickyFooter?: boolean;\n}\n\nexport const Window: React.FC<WindowProps> = ({\n header,\n headerText,\n children,\n spacing,\n indent,\n draggable = false,\n onRequestClose,\n closeButtonClassName,\n footer,\n disableStickyFooter = false,\n ...props\n}) => {\n const activeSpacing = typeof spacing === \"number\" ? spacing : 1;\n const activeIndent = typeof indent === \"number\" ? indent : 1;\n\n return (\n <BaseWindow\n {...props}\n onRequestClose={onRequestClose}\n draggable={draggable}\n >\n <WindowHeader\n onRequestClose={onRequestClose}\n header={header}\n headerText={headerText}\n closeButtonClassName={closeButtonClassName}\n />\n <Box spacing={activeSpacing} indent={activeIndent}>\n {children}\n </Box>\n {footer && (\n <Box\n className={cx(styles.footer, {\n [styles.stickyFooter]: !disableStickyFooter,\n })}\n >\n {footer}\n </Box>\n )}\n </BaseWindow>\n );\n};\n","import { Column } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { ReactNode } from \"react\";\n\nexport interface WindowFooterProps {\n children?: ReactNode;\n}\n\nexport const WindowFooter: React.FC<WindowFooterProps> = ({ children }) => (\n <Column indent={2} spacing={2}>\n {children}\n </Column>\n);\n","import { createContext } from \"react\";\nimport { RejectCommand, ResolveCommand } from \"./DialogCommands\";\n\nexport interface DialogContextValue<TResolveValue> {\n resolve: ResolveCommand<TResolveValue>;\n reject: RejectCommand;\n}\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nexport const DialogContext = createContext<DialogContextValue<any> | undefined>(\n undefined,\n);\n","import cx from \"classnames\";\nimport React, {\n CSSProperties,\n MouseEventHandler,\n ReactNode,\n RefObject,\n useCallback,\n useMemo,\n useReducer,\n useRef,\n useState,\n} from \"react\";\nimport { RejectCommand, ResolveCommand, ShowCommand } from \"./DialogCommands\";\nimport { DialogContext, DialogContextValue } from \"./DialogContext\";\nimport { Modal } from \"../declarative-modals/modal/Modal\";\n\ntype UseDialogCallbacks<TProps, TPromiseResolve> = {\n show: ShowCommand<TProps, TPromiseResolve>;\n reject: RejectCommand;\n};\n\nexport type UseDialogResult<TProps, TPromiseResolve> = [\n ReactNode,\n UseDialogCallbacks<TProps, TPromiseResolve>,\n];\n\nexport interface DialogOptions {\n divInsteadOfDialog?: boolean;\n background?: string;\n disableCloseOnClickOutside?: boolean;\n modal: boolean;\n className: string;\n closingClassName: string;\n contentWrapperClassName: string;\n contentWrapperStyle?: CSSProperties;\n dialogStyle?: CSSProperties;\n ref?: RefObject<HTMLDialogElement | null>;\n onResolve?: () => void;\n onReject?: () => void;\n /**\n * Sets aria-label on modal or dialog element.\n */\n label?: string;\n /**\n * Sets aria-labelledby on modal or dialog element.\n */\n labelledby?: string;\n /**\n * Sets aria-describedby on modal or dialog element.\n */\n describedby?: string;\n}\n\nexport function useDialog<TProps, TPromiseResolve = void>(\n component: React.FC<TProps>,\n {\n ref,\n modal,\n contentWrapperClassName,\n closingClassName,\n contentWrapperStyle,\n dialogStyle,\n divInsteadOfDialog,\n disableCloseOnClickOutside,\n onResolve,\n onReject,\n className,\n background,\n label,\n labelledby,\n describedby,\n }: DialogOptions,\n): UseDialogResult<TProps, TPromiseResolve> {\n const localRef = useRef<HTMLDialogElement>(null);\n const currentRef = ref ?? localRef;\n const [key, forceRerender] = useReducer((x) => x + 1, 0);\n const promiseRef = useRef<Promise<TPromiseResolve | undefined>>(null);\n const resolveRef = useRef<ResolveCommand<TPromiseResolve> | undefined>(null);\n const modalComponentProps = useRef<TProps>(undefined);\n const rejectRef = useRef<RejectCommand | undefined>(null);\n /**\n * Used by Modal to control open/close with animation.\n */\n const [isOpen, setIsOpen] = useState(false);\n /**\n * Used by both Modal and dialog to decide if content is visible. When props is cleared, we can not render content that requires props.\n */\n const [contentVisible, setContentVisible] = useState(false);\n /**\n * Used by dialog to know if it is currently animating to closed state.\n */\n const [closing, setClosing] = useState(false);\n\n const Comp = component;\n\n const show = useCallback<ShowCommand<TProps, TPromiseResolve>>(\n (props?: TProps) => {\n promiseRef.current = new Promise<TPromiseResolve | undefined>(\n (resolve, reject) => {\n resolveRef.current = resolve;\n rejectRef.current = reject;\n },\n );\n setClosing(false);\n setIsOpen(true);\n setContentVisible(true);\n forceRerender();\n modalComponentProps.current = props;\n if (modal) {\n currentRef.current?.showModal();\n } else {\n currentRef.current?.show();\n }\n return promiseRef.current;\n },\n [currentRef, modal],\n );\n\n const resolve = useCallback<ResolveCommand<TPromiseResolve>>(\n (value) => {\n // Trigger closing animation.\n setClosing(true);\n setIsOpen(false);\n if (!divInsteadOfDialog) {\n currentRef.current?.addEventListener(\n \"animationend\",\n () => {\n setClosing(false);\n setContentVisible(false);\n currentRef.current?.close();\n resolveRef.current?.(value);\n modalComponentProps.current = undefined;\n onResolve?.();\n },\n { once: true },\n );\n } else {\n setTimeout(() => {\n setClosing(false);\n setContentVisible(false);\n resolveRef.current?.(value);\n modalComponentProps.current = undefined;\n onResolve?.();\n }, 300);\n }\n },\n [currentRef, onResolve, divInsteadOfDialog],\n );\n\n const onClose = useCallback(() => {\n // Remove content immediately, since it cannot be animated when closed by browser.\n setClosing(false);\n setIsOpen(false);\n setContentVisible(false);\n rejectRef.current?.();\n onReject?.();\n modalComponentProps.current = undefined;\n }, [onReject]);\n\n const reject = useCallback<RejectCommand>(\n (error) => {\n // Trigger closing animation.\n setClosing(true);\n setIsOpen(false);\n if (!divInsteadOfDialog) {\n currentRef.current?.addEventListener(\n \"animationend\",\n () => {\n setClosing(false);\n setContentVisible(false);\n currentRef.current?.close();\n rejectRef.current?.(error);\n onReject?.();\n modalComponentProps.current = undefined;\n },\n { once: true },\n );\n } else {\n setTimeout(() => {\n setClosing(false);\n setContentVisible(false);\n rejectRef.current?.(error);\n onReject?.();\n modalComponentProps.current = undefined;\n }, 300);\n }\n },\n [currentRef, divInsteadOfDialog, onReject],\n );\n\n const onClick = useCallback<MouseEventHandler<HTMLDialogElement>>(\n (e) => {\n if (e.target !== currentRef.current) {\n return;\n }\n\n const rect = currentRef.current.getBoundingClientRect();\n\n const clickedInsideDialog =\n rect.top <= e.clientY &&\n e.clientY <= rect.top + rect.height &&\n rect.left <= e.clientX &&\n e.clientX <= rect.left + rect.width;\n\n if (!clickedInsideDialog) {\n reject();\n }\n },\n [currentRef, reject],\n );\n\n const contextValue = useMemo(\n () => ({ resolve, reject }) as DialogContextValue<unknown>,\n [reject, resolve],\n );\n\n const element = useMemo<ReactNode>(\n () =>\n divInsteadOfDialog ? (\n <Modal\n isOpen={isOpen}\n onRequestClose={reject}\n background={background}\n contentLabel={label}\n aria={{ modal: true, labelledby, describedby }}\n >\n <DialogContext.Provider value={contextValue}>\n {contentVisible && (\n <Comp {...(modalComponentProps.current as TProps)} key={key} />\n )}\n </DialogContext.Provider>\n </Modal>\n ) : (\n <dialog\n onClick={disableCloseOnClickOutside ? undefined : onClick}\n onClose={onClose}\n ref={currentRef}\n className={cx(className, closing && closingClassName)}\n aria-label={label}\n aria-labelledby={labelledby}\n aria-describedby={describedby}\n style={{ background: background, ...dialogStyle }}\n >\n <div style={contentWrapperStyle} className={contentWrapperClassName}>\n {contentVisible && (\n <DialogContext.Provider value={contextValue}>\n <Comp {...(modalComponentProps.current as TProps)} key={key} />\n </DialogContext.Provider>\n )}\n </div>\n </dialog>\n ),\n [\n divInsteadOfDialog,\n isOpen,\n reject,\n background,\n label,\n labelledby,\n describedby,\n contextValue,\n contentVisible,\n Comp,\n key,\n disableCloseOnClickOutside,\n onClick,\n onClose,\n currentRef,\n className,\n closing,\n closingClassName,\n dialogStyle,\n contentWrapperStyle,\n contentWrapperClassName,\n ],\n );\n\n return [element, { show, reject }];\n}\n","import { useContext } from \"react\";\nimport { DialogContext, DialogContextValue } from \"./DialogContext\";\n\nexport const useDialogPromise = <\n TResolveValue = void,\n>(): DialogContextValue<TResolveValue> => {\n const context = useContext(DialogContext);\n if (context == null) {\n throw new Error(\"useDialogPromise is being used outside of dialog.\");\n }\n return context as DialogContextValue<TResolveValue>;\n};\n","import * as React from \"react\";\nimport { DialogOptions, useDialog, UseDialogResult } from \"../UseDialog\";\nimport cx from \"classnames\";\nimport styles from \"./AlertDialog.module.css\";\n\nexport function useAlertDialog<TProps, TPromiseResolve = void>(\n component: React.FC<TProps>,\n options?: Partial<DialogOptions>,\n): UseDialogResult<TProps, TPromiseResolve> {\n return useDialog<TProps, TPromiseResolve>(component, {\n ...options,\n modal: true,\n closingClassName: cx(options?.closingClassName, styles.closing),\n contentWrapperClassName: cx(\n options?.contentWrapperClassName,\n styles.contentWrapper,\n ),\n className: cx(options?.className, styles.alertDialog),\n });\n}\n","import * as React from \"react\";\nimport { DialogOptions, useDialog, UseDialogResult } from \"../UseDialog\";\nimport cx from \"classnames\";\nimport styles from \"./DrawerDialog.module.css\";\nimport { SlideFrom } from \"../../common-types\";\n\ninterface DrawerOptions\n extends Partial<Omit<DialogOptions, \"disableCloseOnClickOutside\">> {}\n\nexport function useDrawerDialog<TProps, TPromiseResolve = void>(\n component: React.FC<TProps>,\n slideFrom: SlideFrom = \"left\",\n options?: DrawerOptions,\n): UseDialogResult<TProps, TPromiseResolve> {\n return useDialog<TProps, TPromiseResolve>(component, {\n ...options,\n disableCloseOnClickOutside: true,\n modal: false,\n closingClassName: cx(options?.closingClassName, styles.closing),\n contentWrapperClassName: cx(\n options?.contentWrapperClassName,\n styles.contentWrapper,\n ),\n className: cx(options?.className, styles.drawerDialog, styles[slideFrom]),\n });\n}\n","import * as React from \"react\";\nimport { DialogOptions, useDialog, UseDialogResult } from \"../UseDialog\";\nimport cx from \"classnames\";\nimport styles from \"./ModalDialog.module.css\";\n\nexport function useModalDialog<TProps, TPromiseResolve = void>(\n component: React.FC<TProps>,\n options?: Partial<DialogOptions>,\n): UseDialogResult<TProps, TPromiseResolve> {\n return useDialog<TProps, TPromiseResolve>(component, {\n ...options,\n modal: true,\n closingClassName: cx(options?.closingClassName, styles.closing),\n contentWrapperClassName: cx(\n options?.contentWrapperClassName,\n styles.contentWrapper,\n ),\n className: cx(options?.className, styles.modalDialog),\n });\n}\n","import * as React from \"react\";\nimport { Heading, HeadingVariant } from \"@stenajs-webui/core\";\n\nexport type ModalHeadingSizeVariant = \"medium\" | \"large\";\n\nexport interface ModalHeadingProps {\n size?: ModalHeadingSizeVariant;\n children: string;\n headingLevel?: HeadingVariant;\n}\n\nexport const ModalHeading: React.FC<ModalHeadingProps> = ({\n headingLevel = \"h2\",\n size = \"medium\",\n children,\n}) => {\n return (\n <Heading variant={size === \"medium\" ? \"h3\" : \"h1\"} as={headingLevel}>\n {children}\n </Heading>\n );\n};\n","import * as React from \"react\";\nimport { PropsWithChildren } from \"react\";\nimport styles from \"./ModalActionButtons.module.css\";\nimport { Box, Spacing } from \"@stenajs-webui/core\";\n\nexport interface ModalActionButtonsProps extends PropsWithChildren {}\n\nexport const ModalActionButtons: React.FC<ModalActionButtonsProps> = ({\n children,\n}) => {\n return (\n <Box width={\"100%\"}>\n <Spacing />\n <div className={styles.modalActionButtons}>{children}</div>\n </Box>\n );\n};\n","import * as React from \"react\";\nimport { BoxProps, Column } from \"@stenajs-webui/core\";\nimport styles from \"./ModalBody.module.css\";\nimport cx from \"classnames\";\n\nexport type ModalBodyVariant = \"normal\" | \"relaxed\";\n\nexport interface ModalBodyProps extends Omit<BoxProps, \"indent\" | \"spacing\"> {\n variant?: ModalBodyVariant;\n}\n\nexport const ModalBody: React.FC<ModalBodyProps> = ({\n gap = 3,\n variant = \"normal\",\n className,\n ...props\n}) => {\n return (\n <Column\n className={cx(styles.modalBody, styles[variant], className)}\n indent={variant === \"relaxed\" ? 5 : 3}\n spacing={variant === \"relaxed\" ? 5 : 3}\n gap={gap}\n {...props}\n />\n );\n};\n","import * as React from \"react\";\nimport { BoxProps, Column } from \"@stenajs-webui/core\";\nimport { PropsWithChildren } from \"react\";\n\nexport interface ModalContainerProps\n extends PropsWithChildren,\n Pick<BoxProps, \"maxWidth\"> {}\n\nexport const ModalContainer: React.FC<ModalContainerProps> = ({\n children,\n maxWidth,\n}) => {\n return (\n <Column\n flex={1}\n height={\"100%\"}\n justifyContent={\"space-between\"}\n maxWidth={maxWidth}\n >\n {children}\n </Column>\n );\n};\n","import * as React from \"react\";\nimport { PropsWithChildren, ReactNode } from \"react\";\nimport { Text } from \"@stenajs-webui/core\";\nimport { ModalHeading } from \"../building-blocks/ModalHeading\";\nimport { ModalActionButtons } from \"../building-blocks/ModalActionButtons\";\nimport { CircledIcon, MediumIcon } from \"@stenajs-webui/elements\";\nimport { ModalBody } from \"../building-blocks/ModalBody\";\nimport { ModalContainer } from \"../building-blocks/ModalContainer\";\n\nexport interface InfoAlertProps extends PropsWithChildren {\n heading: string;\n text?: string;\n buttons?: ReactNode;\n icon?: MediumIcon;\n onRequestClose?: () => void;\n maxWidth?: string;\n minWidth?: string;\n}\n\nexport const InfoAlert: React.FC<InfoAlertProps> = ({\n icon,\n buttons,\n heading,\n text,\n children,\n maxWidth,\n minWidth,\n}) => {\n return (\n <ModalContainer>\n <ModalBody\n flexDirection={\"column\"}\n alignItems={\"center\"}\n maxWidth={maxWidth}\n minWidth={minWidth}\n >\n {icon && <CircledIcon icon={icon} size={\"large\"} />}\n <ModalHeading>{heading}</ModalHeading>\n {text && <Text textAlign={\"center\"}>{text}</Text>}\n {children}\n {buttons && <ModalActionButtons>{buttons}</ModalActionButtons>}\n </ModalBody>\n </ModalContainer>\n );\n};\n","import * as React from \"react\";\nimport {\n FlatButton,\n FlatButtonProps,\n stenaTimesThick,\n} from \"@stenajs-webui/elements\";\n\nexport interface ModalCloseButtonProps extends FlatButtonProps {}\n\nexport const ModalCloseButton: React.FC<ModalCloseButtonProps> = (props) => {\n return (\n <FlatButton\n size={\"large\"}\n variant={\"danger\"}\n leftIcon={stenaTimesThick}\n {...props}\n />\n );\n};\n","import * as React from \"react\";\nimport { Column, HeadingVariant, Row } from \"@stenajs-webui/core\";\nimport { ModalHeading, ModalHeadingSizeVariant } from \"./ModalHeading\";\nimport { ModalCloseButton } from \"./ModalCloseButton\";\n\nexport type ModalHeaderProps =\n | ModalHeaderWithCloseButtonProps\n | ModalHeaderWithNoCloseButtonProps;\n\nexport interface ModalHeaderCommonProps {\n heading?: string;\n headingSize?: ModalHeadingSizeVariant;\n headingLevel?: HeadingVariant;\n}\n\nexport interface ModalHeaderWithCloseButtonProps\n extends ModalHeaderCommonProps {\n onClickClose?: never;\n closeButtonAriaLabel?: never;\n}\n\nexport interface ModalHeaderWithNoCloseButtonProps\n extends ModalHeaderCommonProps {\n onClickClose: () => void;\n closeButtonAriaLabel: string;\n}\n\nexport const ModalHeader: React.FC<ModalHeaderProps> = ({\n heading,\n headingLevel,\n headingSize,\n onClickClose,\n closeButtonAriaLabel,\n}) => {\n return (\n <Column>\n <Row justifyContent={\"space-between\"} alignItems={\"center\"}>\n {heading ? (\n <ModalHeading headingLevel={headingLevel} size={headingSize}>\n {heading}\n </ModalHeading>\n ) : (\n <div />\n )}\n {onClickClose ? (\n <ModalCloseButton\n onClick={onClickClose}\n size={headingSize}\n aria-label={closeButtonAriaLabel}\n />\n ) : null}\n </Row>\n </Column>\n );\n};\n","import { BoxProps, Row } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport styles from \"./ModalFooter.module.css\";\nimport cx from \"classnames\";\n\nexport interface ModalFooterProps extends BoxProps {\n sticky?: boolean;\n gap?: number;\n}\n\nexport const ModalFooter: React.FC<ModalFooterProps> = ({\n children,\n sticky,\n zIndex = 4,\n gap = 2,\n className,\n ...boxProps\n}) => {\n return (\n <Row\n className={cx(styles.modalFooter, sticky && styles.sticky, className)}\n shadow={\"var(--swui-sticky-footer-shadow)\"}\n zIndex={zIndex}\n {...boxProps}\n >\n <Row gap={gap} spacing={2} alignItems={\"center\"}>\n {children}\n </Row>\n </Row>\n );\n};\n"],"names":["setupDeclarativeModals","htmlElement","ReactModal","DRAGGABLE_HANDLE_CLASSNAME","DRAGGABLE_CANCEL_CLASSNAME","BaseWindow","width","maxWidth","draggable","children","reactModalProps","nodeRef","useRef","jsx","styles","Draggable","cx","Drawer","background","zIndex","slideFrom","portalTarget","floating","height","getClassNameForSlide","exhaustSwitchCase","DrawerHeader","header","contentRight","onRequestClose","icon","Spacing","cssColor","jsxs","Row","Space","Icon","Heading","FlatButton","stenaTimes","style","Alert","isSafari","Modal","ref","scrollbarGutter","setScrollbarGutter","useState","updateScrollbarGutter","useEventCallback","container","useEffect","LoadingModal","headerIconLeft","headerText","shouldCloseOnOverlayClick","shouldCloseOnEsc","modalProps","Column","Box","Spinner","Fragment","Indent","WindowHeader","closeButtonClassName","Txt","CloseButton","Window","spacing","indent","footer","disableStickyFooter","props","WindowFooter","DialogContext","createContext","useDialog","component","modal","contentWrapperClassName","closingClassName","contentWrapperStyle","dialogStyle","divInsteadOfDialog","disableCloseOnClickOutside","onResolve","onReject","className","label","labelledby","describedby","localRef","currentRef","key","forceRerender","useReducer","x","promiseRef","resolveRef","modalComponentProps","rejectRef","isOpen","setIsOpen","contentVisible","setContentVisible","closing","setClosing","Comp","show","useCallback","resolve","reject","_a","_b","value","onClose","error","onClick","e","rect","contextValue","useMemo","createElement","useDialogPromise","context","useContext","useAlertDialog","options","useDrawerDialog","useModalDialog","ModalHeading","headingLevel","size","ModalActionButtons","ModalBody","gap","variant","ModalContainer","InfoAlert","buttons","heading","text","minWidth","CircledIcon","Text","ModalCloseButton","stenaTimesThick","ModalHeader","headingSize","onClickClose","closeButtonAriaLabel","ModalFooter","sticky","boxProps"],"mappings":"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"}
1
+ {"version":3,"file":"index.es.js","sources":["../src/declarative-modals/DeclarativeModalSetup.ts","../src/declarative-modals/window/BaseWindow.tsx","../src/declarative-modals/drawer/Drawer.tsx","../src/declarative-modals/drawer/DrawerHeader.tsx","../src/declarative-modals/alert/Alert.tsx","../src/declarative-modals/modal/Modal.tsx","../src/declarative-modals/loading-modal/LoadingModal.tsx","../src/declarative-modals/window/WindowHeader.tsx","../src/declarative-modals/window/Window.tsx","../src/declarative-modals/window/WindowFooter.tsx","../src/dialog/DialogContext.ts","../src/dialog/UseDialog.tsx","../src/dialog/UseDialogPromise.ts","../src/dialog/alert/UseAlertDialog.ts","../src/dialog/drawer/UseDrawerDialog.ts","../src/dialog/modal/UseModalDialog.ts","../src/building-blocks/ModalHeading.tsx","../src/building-blocks/ModalActionButtons.tsx","../src/building-blocks/ModalBody.tsx","../src/building-blocks/ModalContainer.tsx","../src/ready-made-modals/InfoAlert.tsx","../src/building-blocks/ModalCloseButton.tsx","../src/building-blocks/ModalHeader.tsx","../src/building-blocks/ModalFooter.tsx"],"sourcesContent":["import ReactModal from \"react-modal\";\n\nexport const setupDeclarativeModals = (htmlElement: string | HTMLElement) => {\n ReactModal.setAppElement(htmlElement);\n};\n","import * as React from \"react\";\nimport { useRef } from \"react\";\nimport ReactModal from \"react-modal\";\nimport Draggable from \"react-draggable\";\nimport cx from \"classnames\";\nimport styles from \"./Window.module.css\";\n\nexport interface BaseWindowProps extends ReactModal.Props {\n width?: string;\n maxWidth?: string;\n onRequestClose?: () => void;\n draggable?: boolean;\n}\n\nexport const DRAGGABLE_HANDLE_CLASSNAME = \"draggable-modal-handle\";\nexport const DRAGGABLE_CANCEL_CLASSNAME = \"draggable-modal-cancel\";\n\nexport const BaseWindow: React.FC<BaseWindowProps> = ({\n width,\n maxWidth,\n draggable = false,\n children,\n ...reactModalProps\n}) => {\n const nodeRef = useRef<HTMLDivElement>(null);\n return (\n <ReactModal\n overlayClassName={styles.overlay}\n className={styles.modal}\n {...reactModalProps}\n >\n <Draggable\n handle={`.${DRAGGABLE_HANDLE_CLASSNAME}`}\n cancel={`.${DRAGGABLE_CANCEL_CLASSNAME}, button, [role=\"tooltip\"]`}\n bounds=\".ReactModal__Overlay\"\n disabled={!draggable}\n nodeRef={nodeRef as React.RefObject<HTMLElement>}\n >\n <div\n style={{\n [\"--swui-modal-width\" as string]: width,\n [\"--swui-modal-max-width\" as string]: maxWidth,\n }}\n className={cx(styles.content, {\n [styles.isDraggable]: draggable,\n })}\n ref={nodeRef}\n >\n {children}\n </div>\n </Draggable>\n </ReactModal>\n );\n};\n","import * as React from \"react\";\nimport ReactModal from \"react-modal\";\nimport cx from \"classnames\";\nimport styles from \"./Drawer.module.css\";\nimport { exhaustSwitchCase, FlattenUnion } from \"@stenajs-webui/core\";\nimport {\n SlideFrom,\n SlideFromLeftRight,\n SlideFromTopBottom,\n} from \"../../common-types\";\n\nexport type DrawerProps = DrawerBaseLeftRight | DrawerBaseTopBottom;\n\ninterface DrawerBaseLeftRight extends DrawerBaseProps {\n width?: string;\n /**\n * Which direction the drawer will appear from.\n * @default left\n * @param {String('left'|'right')}\n */\n slideFrom?: SlideFromLeftRight;\n}\n\ninterface DrawerBaseTopBottom extends DrawerBaseProps {\n height?: string;\n /**\n * Which direction the drawer will appear from.\n * @default left\n * @param {String('top'|'bottom')}\n */\n slideFrom?: SlideFromTopBottom;\n}\n\ninterface DrawerBaseProps\n extends Omit<\n ReactModal.Props,\n | \"closeTimeoutMS\"\n | \"portalClassName\"\n | \"overlayClassName\"\n | \"className\"\n | \"style\"\n | \"parentSelector\"\n > {\n background?: string;\n\n /**\n * When true, there will be a gap between the drawer and the viewport.\n */\n floating?: boolean;\n\n zIndex?: number;\n onRequestClose?: () => void;\n /**\n * Portal target, HTML element. If not set, portal is not used.\n */\n portalTarget?: HTMLElement | null;\n}\n\nexport const Drawer: React.FC<DrawerProps> = ({\n background,\n zIndex,\n children,\n slideFrom = \"left\",\n portalTarget,\n floating,\n ...reactModalProps\n}) => {\n const { height, width } = reactModalProps as FlattenUnion<DrawerProps>;\n\n return (\n <ReactModal\n closeTimeoutMS={250}\n portalClassName={styles.portal}\n overlayClassName={{\n base: styles.overlay,\n afterOpen: styles.afterOpen,\n beforeClose: styles.beforeClose,\n }}\n className={{\n base: cx(\n styles.content,\n getClassNameForSlide(slideFrom),\n floating && styles.floating,\n ),\n afterOpen: styles.afterOpen,\n beforeClose: styles.beforeClose,\n }}\n style={{ content: { width, height, background }, overlay: { zIndex } }}\n parentSelector={portalTarget ? () => portalTarget : undefined}\n {...reactModalProps}\n >\n {children}\n </ReactModal>\n );\n};\n\nconst getClassNameForSlide = (slideFrom: SlideFrom): string => {\n switch (slideFrom) {\n case \"left\":\n return styles.slideFromLeft;\n case \"right\":\n return styles.slideFromRight;\n case \"top\":\n return styles.slideFromTop;\n case \"bottom\":\n return styles.slideFromBottom;\n default:\n return exhaustSwitchCase(slideFrom, styles.slideFromLeft);\n }\n};\n","import * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport { Heading, Row, Space, Spacing } from \"@stenajs-webui/core\";\nimport { FlatButton, Icon, stenaTimes } from \"@stenajs-webui/elements\";\nimport { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\nimport { cssColor } from \"@stenajs-webui/theme\";\n\nexport interface DrawerHeaderProps {\n onRequestClose: () => void;\n header?: string;\n contentRight?: ReactNode;\n icon?: IconDefinition;\n}\n\nexport const DrawerHeader: React.FC<DrawerHeaderProps> = ({\n header,\n contentRight,\n onRequestClose,\n icon,\n}) => {\n return (\n <Spacing\n position={\"sticky\"}\n top={0}\n zIndex={100}\n background={cssColor(\"--lhds-color-ui-50\")}\n >\n <Row\n justifyContent={\"space-between\"}\n alignItems={\"center\"}\n height={\"48px\"}\n >\n <Row alignItems={\"center\"} gap={2}>\n <Space num={1} />\n {icon && <Icon icon={icon} size={24} />}\n <Heading variant={\"h4\"}>{header}</Heading>\n </Row>\n <Row gap={1}>\n {contentRight}\n <FlatButton\n leftIcon={stenaTimes}\n onClick={onRequestClose}\n variant={\"danger\"}\n />\n <Space num={0.5} />\n </Row>\n </Row>\n </Spacing>\n );\n};\n","import * as React from \"react\";\nimport ReactModal from \"react-modal\";\n\nimport styles from \"./Alert.module.css\";\n\nexport interface AlertProps extends ReactModal.Props {\n onRequestClose?: () => void;\n}\n\nconst style = { overlay: { justifyContent: \"center\" } };\n\nexport const Alert: React.FC<AlertProps> = ({\n children,\n ...reactModalProps\n}) => {\n return (\n <ReactModal\n overlayClassName={styles.overlay}\n className={styles.modal}\n style={style}\n {...reactModalProps}\n >\n <div\n className={styles.content}\n style={{ [\"--swui-modal-width\" as string]: \"fit-content\" }}\n >\n {children}\n </div>\n </ReactModal>\n );\n};\n","import * as React from \"react\";\nimport { CSSProperties, useEffect, useRef, useState } from \"react\";\nimport ReactModal from \"react-modal\";\n\nimport styles from \"./Modal.module.css\";\nimport { useEventCallback } from \"@stenajs-webui/core\";\n\nexport interface ModalProps extends ReactModal.Props {\n background?: string;\n onRequestClose?: () => void;\n}\n\nconst isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n\nexport const Modal: React.FC<ModalProps> = ({\n children,\n background,\n ...reactModalProps\n}) => {\n const ref = useRef<HTMLDivElement | null>(null);\n\n const [scrollbarGutter, setScrollbarGutter] = useState<\n \"auto\" | \"stable\" | undefined\n >(isSafari ? \"auto\" : undefined);\n\n const style = {\n overlay: { justifyContent: \"center\" },\n content: {\n \"--swui-modal-content-bg-color\": background,\n } as CSSProperties,\n };\n\n const updateScrollbarGutter = useEventCallback(() => {\n if (!isSafari) {\n return;\n }\n\n const container = ref.current;\n if (container) {\n setScrollbarGutter(\n container.scrollHeight > container.clientHeight ? \"stable\" : \"auto\",\n );\n }\n });\n\n /**\n * Applying scrollbar-gutter fixes a glitch in Safari where redraw\n * sometimes makes the modal change width (with or without gutter included in size calculation).\n * This causes the modal to jump around when hovering with mouse or resizing window.\n *\n * If this glitch is fixed in Safari, this code can be removed.\n */\n\n useEffect(() => {\n window.addEventListener(\"resize\", updateScrollbarGutter);\n document.addEventListener(\"DOMContentLoaded\", updateScrollbarGutter);\n return () => {\n window.removeEventListener(\"resize\", updateScrollbarGutter);\n document.removeEventListener(\"DOMContentLoaded\", updateScrollbarGutter);\n };\n }, [updateScrollbarGutter]);\n\n return (\n <ReactModal\n overlayClassName={{\n base: styles.overlay,\n beforeClose: styles.beforeClose,\n afterOpen: styles.afterOpen,\n }}\n className={{\n base: styles.modal,\n beforeClose: styles.beforeClose,\n afterOpen: styles.afterOpen,\n }}\n style={style}\n closeTimeoutMS={250}\n onAfterOpen={updateScrollbarGutter}\n {...reactModalProps}\n >\n <div\n className={styles.content}\n style={{\n [\"--swui-modal-width\" as string]: \"fit-content\",\n scrollbarGutter,\n }}\n ref={ref}\n >\n {children}\n </div>\n </ReactModal>\n );\n};\n","import { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\nimport {\n Box,\n Column,\n Heading,\n Indent,\n Row,\n Spacing,\n} from \"@stenajs-webui/core\";\nimport { Icon, Spinner } from \"@stenajs-webui/elements\";\nimport * as React from \"react\";\nimport ReactModal from \"react-modal\";\nimport styles from \"./LoadingModal.module.css\";\n\nexport interface LoadingModalProps extends Omit<ReactModal.Props, \"isOpen\"> {\n headerText?: string;\n headerIconLeft?: IconDefinition;\n}\n\nexport const LoadingModal: React.FC<LoadingModalProps> = ({\n headerIconLeft,\n headerText,\n shouldCloseOnOverlayClick = false,\n shouldCloseOnEsc = false,\n ...modalProps\n}) => {\n return (\n <ReactModal\n {...modalProps}\n isOpen\n shouldCloseOnOverlayClick={shouldCloseOnOverlayClick}\n shouldCloseOnEsc={shouldCloseOnEsc}\n className={styles.modal}\n overlayClassName={styles.overlay}\n >\n <Column spacing={2} alignItems={\"center\"}>\n <Box\n alignItems={\"center\"}\n justifyContent={\"center\"}\n width={\"64px\"}\n height={\"64px\"}\n borderRadius={\"50%\"}\n background={\"white\"}\n shadow={\"modal\"}\n >\n <Spinner size={\"small\"} />\n </Box>\n {(headerIconLeft || headerText) && (\n <>\n <Spacing />\n <Row indent={2}>\n {headerIconLeft && (\n <>\n <Icon size={14} icon={headerIconLeft} color={\"white\"} />\n <Indent />\n </>\n )}\n {headerText && (\n <Heading variant={\"h4\"} color={\"white\"}>\n {headerText}\n </Heading>\n )}\n </Row>\n </>\n )}\n </Column>\n </ReactModal>\n );\n};\n","import { CloseButton } from \"@stenajs-webui/elements\";\nimport * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport {\n DRAGGABLE_CANCEL_CLASSNAME,\n DRAGGABLE_HANDLE_CLASSNAME,\n} from \"./BaseWindow\";\nimport { Box, Row, Txt } from \"@stenajs-webui/core\";\n\nexport interface WindowHeaderProps {\n onRequestClose?: () => void;\n header?: ReactNode;\n headerText?: string;\n closeButtonClassName?: string;\n}\n\nexport const WindowHeader: React.FC<WindowHeaderProps> = ({\n onRequestClose,\n header,\n headerText,\n closeButtonClassName,\n}) => {\n return (\n <Row\n spacing={2}\n indent={2}\n borderBottom={\"1px solid var(--lhds-color-ui-300)\"}\n className={DRAGGABLE_HANDLE_CLASSNAME}\n >\n <Row flex={1} indent alignItems={\"center\"}>\n {headerText && (\n <Txt className={DRAGGABLE_CANCEL_CLASSNAME} size={\"large\"}>\n {headerText}\n </Txt>\n )}\n {header}\n </Row>\n <Box alignSelf={\"flex-start\"}>\n <CloseButton\n className={closeButtonClassName}\n onClick={onRequestClose}\n />\n </Box>\n </Row>\n );\n};\n","import { Box } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { BaseWindow, BaseWindowProps } from \"./BaseWindow\";\nimport { WindowHeader, WindowHeaderProps } from \"./WindowHeader\";\nimport cx from \"classnames\";\nimport styles from \"./Window.module.css\";\n\nexport interface WindowProps extends BaseWindowProps, WindowHeaderProps {\n spacing?: number;\n indent?: number;\n draggable?: boolean;\n footer?: React.ReactNode;\n disableStickyFooter?: boolean;\n}\n\nexport const Window: React.FC<WindowProps> = ({\n header,\n headerText,\n children,\n spacing,\n indent,\n draggable = false,\n onRequestClose,\n closeButtonClassName,\n footer,\n disableStickyFooter = false,\n ...props\n}) => {\n const activeSpacing = typeof spacing === \"number\" ? spacing : 1;\n const activeIndent = typeof indent === \"number\" ? indent : 1;\n\n return (\n <BaseWindow\n {...props}\n onRequestClose={onRequestClose}\n draggable={draggable}\n >\n <WindowHeader\n onRequestClose={onRequestClose}\n header={header}\n headerText={headerText}\n closeButtonClassName={closeButtonClassName}\n />\n <Box spacing={activeSpacing} indent={activeIndent}>\n {children}\n </Box>\n {footer && (\n <Box\n className={cx(styles.footer, {\n [styles.stickyFooter]: !disableStickyFooter,\n })}\n >\n {footer}\n </Box>\n )}\n </BaseWindow>\n );\n};\n","import { Column } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { ReactNode } from \"react\";\n\nexport interface WindowFooterProps {\n children?: ReactNode;\n}\n\nexport const WindowFooter: React.FC<WindowFooterProps> = ({ children }) => (\n <Column indent={2} spacing={2}>\n {children}\n </Column>\n);\n","import { createContext } from \"react\";\nimport { RejectCommand, ResolveCommand } from \"./DialogCommands\";\n\nexport interface DialogContextValue<TResolveValue> {\n resolve: ResolveCommand<TResolveValue>;\n reject: RejectCommand;\n}\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nexport const DialogContext = createContext<DialogContextValue<any> | undefined>(\n undefined,\n);\n","import cx from \"classnames\";\nimport React, {\n CSSProperties,\n MouseEventHandler,\n ReactNode,\n RefObject,\n useCallback,\n useMemo,\n useReducer,\n useRef,\n useState,\n} from \"react\";\nimport { RejectCommand, ResolveCommand, ShowCommand } from \"./DialogCommands\";\nimport { DialogContext, DialogContextValue } from \"./DialogContext\";\nimport { Modal } from \"../declarative-modals/modal/Modal\";\n\ntype UseDialogCallbacks<TProps, TPromiseResolve> = {\n show: ShowCommand<TProps, TPromiseResolve>;\n reject: RejectCommand;\n};\n\nexport type UseDialogResult<TProps, TPromiseResolve> = [\n ReactNode,\n UseDialogCallbacks<TProps, TPromiseResolve>,\n];\n\nexport interface DialogOptions {\n divInsteadOfDialog?: boolean;\n background?: string;\n disableCloseOnClickOutside?: boolean;\n modal: boolean;\n className: string;\n closingClassName: string;\n contentWrapperClassName: string;\n contentWrapperStyle?: CSSProperties;\n dialogStyle?: CSSProperties;\n ref?: RefObject<HTMLDialogElement | null>;\n onResolve?: () => void;\n onReject?: () => void;\n /**\n * Sets aria-label on modal or dialog element.\n */\n label?: string;\n /**\n * Sets aria-labelledby on modal or dialog element.\n */\n labelledby?: string;\n /**\n * Sets aria-describedby on modal or dialog element.\n */\n describedby?: string;\n}\n\nexport function useDialog<TProps, TPromiseResolve = void>(\n component: React.FC<TProps>,\n {\n ref,\n modal,\n contentWrapperClassName,\n closingClassName,\n contentWrapperStyle,\n dialogStyle,\n divInsteadOfDialog,\n disableCloseOnClickOutside,\n onResolve,\n onReject,\n className,\n background,\n label,\n labelledby,\n describedby,\n }: DialogOptions,\n): UseDialogResult<TProps, TPromiseResolve> {\n const localRef = useRef<HTMLDialogElement>(null);\n const currentRef = ref ?? localRef;\n const [key, forceRerender] = useReducer((x) => x + 1, 0);\n const promiseRef = useRef<Promise<TPromiseResolve | undefined>>(null);\n const resolveRef = useRef<ResolveCommand<TPromiseResolve> | undefined>(null);\n const modalComponentProps = useRef<TProps>(undefined);\n const rejectRef = useRef<RejectCommand | undefined>(null);\n /**\n * Used by Modal to control open/close with animation.\n */\n const [isOpen, setIsOpen] = useState(false);\n /**\n * Used by both Modal and dialog to decide if content is visible. When props is cleared, we can not render content that requires props.\n */\n const [contentVisible, setContentVisible] = useState(false);\n /**\n * Used by dialog to know if it is currently animating to closed state.\n */\n const [closing, setClosing] = useState(false);\n\n const Comp = component;\n\n const show = useCallback<ShowCommand<TProps, TPromiseResolve>>(\n (props?: TProps) => {\n promiseRef.current = new Promise<TPromiseResolve | undefined>(\n (resolve, reject) => {\n resolveRef.current = resolve;\n rejectRef.current = reject;\n },\n );\n setClosing(false);\n setIsOpen(true);\n setContentVisible(true);\n forceRerender();\n modalComponentProps.current = props;\n if (modal) {\n currentRef.current?.showModal();\n } else {\n currentRef.current?.show();\n }\n return promiseRef.current;\n },\n [currentRef, modal],\n );\n\n const resolve = useCallback<ResolveCommand<TPromiseResolve>>(\n (value) => {\n // Trigger closing animation.\n setClosing(true);\n setIsOpen(false);\n if (!divInsteadOfDialog) {\n currentRef.current?.addEventListener(\n \"animationend\",\n () => {\n setClosing(false);\n setContentVisible(false);\n currentRef.current?.close();\n resolveRef.current?.(value);\n modalComponentProps.current = undefined;\n onResolve?.();\n },\n { once: true },\n );\n } else {\n setTimeout(() => {\n setClosing(false);\n setContentVisible(false);\n resolveRef.current?.(value);\n modalComponentProps.current = undefined;\n onResolve?.();\n }, 300);\n }\n },\n [currentRef, onResolve, divInsteadOfDialog],\n );\n\n const onClose = useCallback(() => {\n // Remove content immediately, since it cannot be animated when closed by browser.\n setClosing(false);\n setIsOpen(false);\n setContentVisible(false);\n rejectRef.current?.();\n onReject?.();\n modalComponentProps.current = undefined;\n }, [onReject]);\n\n const reject = useCallback<RejectCommand>(\n (error) => {\n // Trigger closing animation.\n setClosing(true);\n setIsOpen(false);\n if (!divInsteadOfDialog) {\n currentRef.current?.addEventListener(\n \"animationend\",\n () => {\n setClosing(false);\n setContentVisible(false);\n currentRef.current?.close();\n rejectRef.current?.(error);\n onReject?.();\n modalComponentProps.current = undefined;\n },\n { once: true },\n );\n } else {\n setTimeout(() => {\n setClosing(false);\n setContentVisible(false);\n rejectRef.current?.(error);\n onReject?.();\n modalComponentProps.current = undefined;\n }, 300);\n }\n },\n [currentRef, divInsteadOfDialog, onReject],\n );\n\n const onClick = useCallback<MouseEventHandler<HTMLDialogElement>>(\n (e) => {\n if (e.target !== currentRef.current) {\n return;\n }\n\n const rect = currentRef.current.getBoundingClientRect();\n\n const clickedInsideDialog =\n rect.top <= e.clientY &&\n e.clientY <= rect.top + rect.height &&\n rect.left <= e.clientX &&\n e.clientX <= rect.left + rect.width;\n\n if (!clickedInsideDialog) {\n reject();\n }\n },\n [currentRef, reject],\n );\n\n const contextValue = useMemo(\n () => ({ resolve, reject }) as DialogContextValue<unknown>,\n [reject, resolve],\n );\n\n const element = useMemo<ReactNode>(\n () =>\n divInsteadOfDialog ? (\n <Modal\n isOpen={isOpen}\n onRequestClose={reject}\n background={background}\n contentLabel={label}\n aria={{ modal: true, labelledby, describedby }}\n >\n <DialogContext.Provider value={contextValue}>\n {contentVisible && (\n <Comp {...(modalComponentProps.current as TProps)} key={key} />\n )}\n </DialogContext.Provider>\n </Modal>\n ) : (\n <dialog\n onClick={disableCloseOnClickOutside ? undefined : onClick}\n onClose={onClose}\n ref={currentRef}\n className={cx(className, closing && closingClassName)}\n aria-label={label}\n aria-labelledby={labelledby}\n aria-describedby={describedby}\n style={{ background: background, ...dialogStyle }}\n >\n <div style={contentWrapperStyle} className={contentWrapperClassName}>\n {contentVisible && (\n <DialogContext.Provider value={contextValue}>\n <Comp {...(modalComponentProps.current as TProps)} key={key} />\n </DialogContext.Provider>\n )}\n </div>\n </dialog>\n ),\n [\n divInsteadOfDialog,\n isOpen,\n reject,\n background,\n label,\n labelledby,\n describedby,\n contextValue,\n contentVisible,\n Comp,\n key,\n disableCloseOnClickOutside,\n onClick,\n onClose,\n currentRef,\n className,\n closing,\n closingClassName,\n dialogStyle,\n contentWrapperStyle,\n contentWrapperClassName,\n ],\n );\n\n return [element, { show, reject }];\n}\n","import { useContext } from \"react\";\nimport { DialogContext, DialogContextValue } from \"./DialogContext\";\n\nexport const useDialogPromise = <\n TResolveValue = void,\n>(): DialogContextValue<TResolveValue> => {\n const context = useContext(DialogContext);\n if (context == null) {\n throw new Error(\"useDialogPromise is being used outside of dialog.\");\n }\n return context as DialogContextValue<TResolveValue>;\n};\n","import * as React from \"react\";\nimport { DialogOptions, useDialog, UseDialogResult } from \"../UseDialog\";\nimport cx from \"classnames\";\nimport styles from \"./AlertDialog.module.css\";\n\nexport function useAlertDialog<TProps, TPromiseResolve = void>(\n component: React.FC<TProps>,\n options?: Partial<DialogOptions>,\n): UseDialogResult<TProps, TPromiseResolve> {\n return useDialog<TProps, TPromiseResolve>(component, {\n ...options,\n modal: true,\n closingClassName: cx(options?.closingClassName, styles.closing),\n contentWrapperClassName: cx(\n options?.contentWrapperClassName,\n styles.contentWrapper,\n ),\n className: cx(options?.className, styles.alertDialog),\n });\n}\n","import * as React from \"react\";\nimport { DialogOptions, useDialog, UseDialogResult } from \"../UseDialog\";\nimport cx from \"classnames\";\nimport styles from \"./DrawerDialog.module.css\";\nimport { SlideFrom } from \"../../common-types\";\n\ninterface DrawerOptions\n extends Partial<Omit<DialogOptions, \"disableCloseOnClickOutside\">> {}\n\nexport function useDrawerDialog<TProps, TPromiseResolve = void>(\n component: React.FC<TProps>,\n slideFrom: SlideFrom = \"left\",\n options?: DrawerOptions,\n): UseDialogResult<TProps, TPromiseResolve> {\n return useDialog<TProps, TPromiseResolve>(component, {\n ...options,\n disableCloseOnClickOutside: true,\n modal: false,\n closingClassName: cx(options?.closingClassName, styles.closing),\n contentWrapperClassName: cx(\n options?.contentWrapperClassName,\n styles.contentWrapper,\n ),\n className: cx(options?.className, styles.drawerDialog, styles[slideFrom]),\n });\n}\n","import * as React from \"react\";\nimport { DialogOptions, useDialog, UseDialogResult } from \"../UseDialog\";\nimport cx from \"classnames\";\nimport styles from \"./ModalDialog.module.css\";\n\nexport function useModalDialog<TProps, TPromiseResolve = void>(\n component: React.FC<TProps>,\n options?: Partial<DialogOptions>,\n): UseDialogResult<TProps, TPromiseResolve> {\n return useDialog<TProps, TPromiseResolve>(component, {\n ...options,\n modal: true,\n closingClassName: cx(options?.closingClassName, styles.closing),\n contentWrapperClassName: cx(\n options?.contentWrapperClassName,\n styles.contentWrapper,\n ),\n className: cx(options?.className, styles.modalDialog),\n });\n}\n","import * as React from \"react\";\nimport { Heading, HeadingVariant } from \"@stenajs-webui/core\";\n\nexport type ModalHeadingSizeVariant = \"medium\" | \"large\";\n\nexport interface ModalHeadingProps {\n size?: ModalHeadingSizeVariant;\n children: string;\n headingLevel?: HeadingVariant;\n}\n\nexport const ModalHeading: React.FC<ModalHeadingProps> = ({\n headingLevel = \"h2\",\n size = \"medium\",\n children,\n}) => {\n return (\n <Heading variant={size === \"medium\" ? \"h3\" : \"h1\"} as={headingLevel}>\n {children}\n </Heading>\n );\n};\n","import * as React from \"react\";\nimport { PropsWithChildren } from \"react\";\nimport styles from \"./ModalActionButtons.module.css\";\nimport { Box, Spacing } from \"@stenajs-webui/core\";\n\nexport interface ModalActionButtonsProps extends PropsWithChildren {}\n\nexport const ModalActionButtons: React.FC<ModalActionButtonsProps> = ({\n children,\n}) => {\n return (\n <Box width={\"100%\"}>\n <Spacing />\n <div className={styles.modalActionButtons}>{children}</div>\n </Box>\n );\n};\n","import * as React from \"react\";\nimport { BoxProps, Column } from \"@stenajs-webui/core\";\nimport styles from \"./ModalBody.module.css\";\nimport cx from \"classnames\";\n\nexport type ModalBodyVariant = \"normal\" | \"relaxed\";\n\nexport interface ModalBodyProps extends Omit<BoxProps, \"indent\" | \"spacing\"> {\n variant?: ModalBodyVariant;\n}\n\nexport const ModalBody: React.FC<ModalBodyProps> = ({\n gap = 3,\n variant = \"normal\",\n className,\n ...props\n}) => {\n return (\n <Column\n className={cx(styles.modalBody, styles[variant], className)}\n indent={variant === \"relaxed\" ? 5 : 3}\n spacing={variant === \"relaxed\" ? 5 : 3}\n gap={gap}\n {...props}\n />\n );\n};\n","import * as React from \"react\";\nimport { BoxProps, Column } from \"@stenajs-webui/core\";\nimport { PropsWithChildren } from \"react\";\n\nexport interface ModalContainerProps\n extends PropsWithChildren,\n Pick<BoxProps, \"maxWidth\"> {}\n\nexport const ModalContainer: React.FC<ModalContainerProps> = ({\n children,\n maxWidth,\n}) => {\n return (\n <Column\n flex={1}\n height={\"100%\"}\n justifyContent={\"space-between\"}\n maxWidth={maxWidth}\n >\n {children}\n </Column>\n );\n};\n","import * as React from \"react\";\nimport { PropsWithChildren, ReactNode } from \"react\";\nimport { Text } from \"@stenajs-webui/core\";\nimport { ModalHeading } from \"../building-blocks/ModalHeading\";\nimport { ModalActionButtons } from \"../building-blocks/ModalActionButtons\";\nimport { CircledIcon, MediumIcon } from \"@stenajs-webui/elements\";\nimport { ModalBody } from \"../building-blocks/ModalBody\";\nimport { ModalContainer } from \"../building-blocks/ModalContainer\";\n\nexport interface InfoAlertProps extends PropsWithChildren {\n heading: string;\n text?: string;\n buttons?: ReactNode;\n icon?: MediumIcon;\n onRequestClose?: () => void;\n maxWidth?: string;\n minWidth?: string;\n}\n\nexport const InfoAlert: React.FC<InfoAlertProps> = ({\n icon,\n buttons,\n heading,\n text,\n children,\n maxWidth,\n minWidth,\n}) => {\n return (\n <ModalContainer>\n <ModalBody\n flexDirection={\"column\"}\n alignItems={\"center\"}\n maxWidth={maxWidth}\n minWidth={minWidth}\n >\n {icon && <CircledIcon icon={icon} size={\"large\"} />}\n <ModalHeading>{heading}</ModalHeading>\n {text && <Text textAlign={\"center\"}>{text}</Text>}\n {children}\n {buttons && <ModalActionButtons>{buttons}</ModalActionButtons>}\n </ModalBody>\n </ModalContainer>\n );\n};\n","import * as React from \"react\";\nimport {\n FlatButton,\n FlatButtonProps,\n stenaTimesThick,\n} from \"@stenajs-webui/elements\";\n\nexport interface ModalCloseButtonProps extends FlatButtonProps {}\n\nexport const ModalCloseButton: React.FC<ModalCloseButtonProps> = (props) => {\n return (\n <FlatButton\n size={\"large\"}\n variant={\"danger\"}\n leftIcon={stenaTimesThick}\n {...props}\n />\n );\n};\n","import * as React from \"react\";\nimport { Column, HeadingVariant, Row } from \"@stenajs-webui/core\";\nimport { ModalHeading, ModalHeadingSizeVariant } from \"./ModalHeading\";\nimport { ModalCloseButton } from \"./ModalCloseButton\";\n\nexport type ModalHeaderProps =\n | ModalHeaderWithCloseButtonProps\n | ModalHeaderWithNoCloseButtonProps;\n\nexport interface ModalHeaderCommonProps {\n heading?: string;\n headingSize?: ModalHeadingSizeVariant;\n headingLevel?: HeadingVariant;\n}\n\nexport interface ModalHeaderWithCloseButtonProps\n extends ModalHeaderCommonProps {\n onClickClose?: never;\n closeButtonAriaLabel?: never;\n}\n\nexport interface ModalHeaderWithNoCloseButtonProps\n extends ModalHeaderCommonProps {\n onClickClose: () => void;\n closeButtonAriaLabel: string;\n}\n\nexport const ModalHeader: React.FC<ModalHeaderProps> = ({\n heading,\n headingLevel,\n headingSize,\n onClickClose,\n closeButtonAriaLabel,\n}) => {\n return (\n <Column>\n <Row justifyContent={\"space-between\"} alignItems={\"center\"} gap={2}>\n {heading ? (\n <ModalHeading headingLevel={headingLevel} size={headingSize}>\n {heading}\n </ModalHeading>\n ) : (\n <div />\n )}\n {onClickClose ? (\n <ModalCloseButton\n onClick={onClickClose}\n size={headingSize}\n aria-label={closeButtonAriaLabel}\n />\n ) : null}\n </Row>\n </Column>\n );\n};\n","import { BoxProps, Row } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport styles from \"./ModalFooter.module.css\";\nimport cx from \"classnames\";\n\nexport interface ModalFooterProps extends BoxProps {\n sticky?: boolean;\n gap?: number;\n}\n\nexport const ModalFooter: React.FC<ModalFooterProps> = ({\n children,\n sticky,\n zIndex = 4,\n gap = 2,\n className,\n ...boxProps\n}) => {\n return (\n <Row\n className={cx(styles.modalFooter, sticky && styles.sticky, className)}\n shadow={\"var(--swui-sticky-footer-shadow)\"}\n zIndex={zIndex}\n {...boxProps}\n >\n <Row gap={gap} spacing={2} alignItems={\"center\"}>\n {children}\n </Row>\n </Row>\n );\n};\n"],"names":["setupDeclarativeModals","htmlElement","ReactModal","DRAGGABLE_HANDLE_CLASSNAME","DRAGGABLE_CANCEL_CLASSNAME","BaseWindow","width","maxWidth","draggable","children","reactModalProps","nodeRef","useRef","jsx","styles","Draggable","cx","Drawer","background","zIndex","slideFrom","portalTarget","floating","height","getClassNameForSlide","exhaustSwitchCase","DrawerHeader","header","contentRight","onRequestClose","icon","Spacing","cssColor","jsxs","Row","Space","Icon","Heading","FlatButton","stenaTimes","style","Alert","isSafari","Modal","ref","scrollbarGutter","setScrollbarGutter","useState","updateScrollbarGutter","useEventCallback","container","useEffect","LoadingModal","headerIconLeft","headerText","shouldCloseOnOverlayClick","shouldCloseOnEsc","modalProps","Column","Box","Spinner","Fragment","Indent","WindowHeader","closeButtonClassName","Txt","CloseButton","Window","spacing","indent","footer","disableStickyFooter","props","WindowFooter","DialogContext","createContext","useDialog","component","modal","contentWrapperClassName","closingClassName","contentWrapperStyle","dialogStyle","divInsteadOfDialog","disableCloseOnClickOutside","onResolve","onReject","className","label","labelledby","describedby","localRef","currentRef","key","forceRerender","useReducer","x","promiseRef","resolveRef","modalComponentProps","rejectRef","isOpen","setIsOpen","contentVisible","setContentVisible","closing","setClosing","Comp","show","useCallback","resolve","reject","_a","_b","value","onClose","error","onClick","e","rect","contextValue","useMemo","createElement","useDialogPromise","context","useContext","useAlertDialog","options","useDrawerDialog","useModalDialog","ModalHeading","headingLevel","size","ModalActionButtons","ModalBody","gap","variant","ModalContainer","InfoAlert","buttons","heading","text","minWidth","CircledIcon","Text","ModalCloseButton","stenaTimesThick","ModalHeader","headingSize","onClickClose","closeButtonAriaLabel","ModalFooter","sticky","boxProps"],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,3 +1,3 @@
1
- (function(){"use strict";try{if(typeof document<"u"){var o=document.createElement("style");o.appendChild(document.createTextNode("._overlay_quvmp_1{--swui-modal-animation-time: var(--swui-animation-time-fast);--swui-modal-overlay-bg-color: var(--swui-overlay-bg-color);--swui-modal-content-bg-color: var(--swui-white);--swui-modal-width: 960px;--swui-modal-max-width: 100%;--swui-modal-header-border-color: var(--lhds-color-ui-300);--swui-modal-shadow: var(--swui-shadow-modal);--swui-modal-footer-shadow: var(--swui-shadow-modal);position:fixed;z-index:10;top:0;left:0;right:0;bottom:0;background-color:var(--swui-modal-overlay-bg-color);overflow:auto;display:flex;flex-direction:column;justify-content:flex-start;align-items:center;animation:_fadeIn_quvmp_1 var(--swui-modal-animation-time) cubic-bezier(.645,.045,.355,1) both}@media print{._overlay_quvmp_1{background-color:#fff}}._overlay_quvmp_1 ._modal_quvmp_31{max-width:100%;outline:none;pointer-events:none}@media (max-width: 768px){._overlay_quvmp_1 ._modal_quvmp_31{width:100%}}._overlay_quvmp_1 ._content_quvmp_41{position:relative;display:block;background:var(--swui-modal-content-bg-color);box-shadow:var(--swui-modal-shadow);pointer-events:all;top:calc(var(--swui-metrics-space) * 2);width:var(--swui-modal-width);max-width:var(--swui-modal-max-width)}@media (max-width: 768px){._overlay_quvmp_1 ._content_quvmp_41{top:0;width:100%;max-width:100%}}._overlay_quvmp_1 ._content_quvmp_41{animation:_appear_quvmp_1 var(--swui-animation-time-fast) cubic-bezier(.645,.045,.355,1) both}@media print{._overlay_quvmp_1 ._content_quvmp_41{box-shadow:none;top:0}}._overlay_quvmp_1 ._content_quvmp_41:focus{outline:0}._overlay_quvmp_1 ._content_quvmp_41._isDraggable_quvmp_70 .draggable-modal-handle{cursor:move}._overlay_quvmp_1 ._content_quvmp_41._isDraggable_quvmp_70 .draggable-modal-handle .draggable-modal-cancel,._overlay_quvmp_1 ._content_quvmp_41._isDraggable_quvmp_70 .draggable-modal-handle [role=tooltip]{cursor:initial}@keyframes _fadeIn_quvmp_1{0%{background-color:var(--swui-hidden)}to{background-color:var(--swui-modal-overlay-bg-color)}}@keyframes _appear_quvmp_1{0%{opacity:0}to{opacity:1}}._footer_quvmp_101{background-color:var(--swui-modal-content-bg-color)}._stickyFooter_quvmp_105{position:-webkit-sticky;position:sticky;bottom:0;box-shadow:var(--swui-modal-footer-shadow)}@media print{._stickyFooter_quvmp_105{position:static;box-shadow:none}}._portal_17ze5_1{--drawer-width: 370px}._portal_17ze5_1 ._overlay_17ze5_4{position:fixed;top:0;right:0;bottom:0;left:0}._portal_17ze5_1 ._content_17ze5_9{box-shadow:var(--swui-shadow-modal);background:#fff;position:absolute;transition:transform var(--swui-animation-time-medium) ease-in-out}._portal_17ze5_1 ._content_17ze5_9._floating_17ze5_15{margin:var(--swui-metrics-space);border-radius:var(--swui-border-radius)}@media (max-width: 768px){._portal_17ze5_1 ._content_17ze5_9._floating_17ze5_15{margin:0;border-radius:0}}._portal_17ze5_1 ._content_17ze5_9:focus-visible{outline:unset}._portal_17ze5_1 ._content_17ze5_9._slideFromLeft_17ze5_29,._portal_17ze5_1 ._content_17ze5_9._slideFromRight_17ze5_30{transform:translate(var(--translate-x-outside-screen, 0));overflow-y:auto;top:0;bottom:0}._portal_17ze5_1 ._content_17ze5_9._slideFromLeft_17ze5_29._afterOpen_17ze5_36,._portal_17ze5_1 ._content_17ze5_9._slideFromRight_17ze5_30._afterOpen_17ze5_36{transform:translate(0)}._portal_17ze5_1 ._content_17ze5_9._slideFromLeft_17ze5_29._beforeClose_17ze5_40,._portal_17ze5_1 ._content_17ze5_9._slideFromRight_17ze5_30._beforeClose_17ze5_40{transform:translate(var(--translate-x-outside-screen))}._portal_17ze5_1 ._content_17ze5_9._slideFromTop_17ze5_45,._portal_17ze5_1 ._content_17ze5_9._slideFromBottom_17ze5_46{transform:translateY(var(--translate-y-outside-screen, 0));overflow-x:auto;left:0;right:0}._portal_17ze5_1 ._content_17ze5_9._slideFromTop_17ze5_45._afterOpen_17ze5_36,._portal_17ze5_1 ._content_17ze5_9._slideFromBottom_17ze5_46._afterOpen_17ze5_36{transform:translateY(0)}._portal_17ze5_1 ._content_17ze5_9._slideFromTop_17ze5_45._beforeClose_17ze5_40,._portal_17ze5_1 ._content_17ze5_9._slideFromBottom_17ze5_46._beforeClose_17ze5_40{transform:translateY(var(--translate-y-outside-screen))}._portal_17ze5_1 ._content_17ze5_9._slideFromLeft_17ze5_29{--translate-x-outside-screen: -100%;width:var(--drawer-width);left:0}._portal_17ze5_1 ._content_17ze5_9._slideFromRight_17ze5_30{--translate-x-outside-screen: 100%;width:var(--drawer-width);right:0}._portal_17ze5_1 ._content_17ze5_9._slideFromTop_17ze5_45{--translate-y-outside-screen: -100%;height:var(--drawer-width);top:0}._portal_17ze5_1 ._content_17ze5_9._slideFromBottom_17ze5_46{--translate-y-outside-screen: 100%;height:var(--drawer-width);bottom:0}._overlay_1gix5_1{--swui-modal-animation-time: var(--swui-animation-time-fast);--swui-modal-overlay-bg-color: var(--swui-overlay-bg-color);--swui-modal-content-bg-color: var(--swui-white);--swui-modal-width: 960px;--swui-modal-max-width: 100%;--swui-modal-header-border-color: var(--lhds-color-ui-300);--swui-modal-shadow: var(--swui-shadow-modal);--swui-modal-footer-shadow: var(--swui-shadow-modal);position:fixed;z-index:10;top:0;left:0;right:0;bottom:0;background-color:var(--swui-modal-overlay-bg-color);overflow:auto;display:flex;flex-direction:column;justify-content:flex-start;align-items:center;animation:_fadeIn_1gix5_1 var(--swui-modal-animation-time) cubic-bezier(.645,.045,.355,1) both}@media print{._overlay_1gix5_1{background-color:#fff}}._overlay_1gix5_1 ._modal_1gix5_31{max-width:100%;outline:none;pointer-events:none;padding:var(--swui-metrics-space)}._overlay_1gix5_1 ._content_1gix5_38{position:relative;display:block;background:var(--swui-modal-content-bg-color);box-shadow:var(--swui-modal-shadow);border-radius:var(--swui-border-radius-large);pointer-events:all;width:var(--swui-modal-width);max-width:var(--swui-modal-max-width);animation:_appear_1gix5_1 var(--swui-animation-time-fast) cubic-bezier(.645,.045,.355,1) both}@media print{._overlay_1gix5_1 ._content_1gix5_38{box-shadow:none;top:0}}._overlay_1gix5_1 ._content_1gix5_38:focus{outline:0}._overlay_1gix5_1 ._content_1gix5_38._isDraggable_1gix5_61 .draggable-modal-handle{cursor:move}._overlay_1gix5_1 ._content_1gix5_38._isDraggable_1gix5_61 .draggable-modal-handle .draggable-modal-cancel,._overlay_1gix5_1 ._content_1gix5_38._isDraggable_1gix5_61 .draggable-modal-handle [role=tooltip]{cursor:initial}@keyframes _fadeIn_1gix5_1{0%{background-color:var(--swui-hidden)}to{background-color:var(--swui-modal-overlay-bg-color)}}@keyframes _appear_1gix5_1{0%{opacity:0}to{opacity:1}}._footer_1gix5_92{background-color:var(--swui-modal-content-bg-color)}._stickyFooter_1gix5_96{position:-webkit-sticky;position:sticky;bottom:0;box-shadow:var(--swui-modal-footer-shadow)}@media print{._stickyFooter_1gix5_96{position:static;box-shadow:none}}._overlay_1lu6i_1{--swui-modal-animation-time: var(--swui-animation-time-medium);--swui-modal-overlay-bg-color: var(--swui-overlay-bg-color);--swui-modal-content-bg-color: var(--swui-white);--swui-modal-width: 960px;--swui-modal-max-width: 100%;--swui-modal-header-border-color: var(--lhds-color-ui-300);--swui-modal-shadow: var(--swui-shadow-modal);--swui-modal-footer-shadow: var(--swui-shadow-modal);position:fixed;z-index:10;top:0;left:0;right:0;bottom:0;background-color:var(--swui-modal-overlay-bg-color);display:flex;flex-direction:column;justify-content:flex-start;align-items:center;opacity:0}._overlay_1lu6i_1._afterOpen_1lu6i_24:not(._beforeClose_1lu6i_24){animation:_fadeIn_1lu6i_1 var(--swui-modal-animation-time) forwards}._overlay_1lu6i_1._beforeClose_1lu6i_24{animation:_fadeOut_1lu6i_1 var(--swui-modal-animation-time) forwards}@media print{._overlay_1lu6i_1{background-color:#fff}}._overlay_1lu6i_1 ._modal_1lu6i_36{max-width:100%;outline:none;pointer-events:none;padding:calc(var(--swui-metrics-space) * 2);box-sizing:border-box;max-height:100%;transform:translateY(-100%)}@media (max-width: 768px){._overlay_1lu6i_1 ._modal_1lu6i_36{padding:0;width:100%}}._overlay_1lu6i_1 ._modal_1lu6i_36._afterOpen_1lu6i_24:not(._beforeClose_1lu6i_24){animation:_slideIn_1lu6i_1 var(--swui-modal-animation-time) forwards}._overlay_1lu6i_1 ._modal_1lu6i_36._beforeClose_1lu6i_24{animation:_slideOut_1lu6i_1 var(--swui-modal-animation-time) forwards}._overlay_1lu6i_1 ._content_1lu6i_59{position:relative;display:block;background:var(--swui-modal-content-bg-color);box-shadow:var(--swui-modal-shadow);border-radius:var(--swui-border-radius-large);pointer-events:all;width:var(--swui-modal-width);max-width:var(--swui-modal-max-width);height:100%;overflow:hidden;overflow-y:auto}@media (max-width: 768px){._overlay_1lu6i_1 ._content_1lu6i_59{border-radius:0;width:100%;max-width:100%;min-height:100dvh}}@media (min-width: 769px){._overlay_1lu6i_1 ._content_1lu6i_59{border-radius:var(--swui-border-radius-large)}._overlay_1lu6i_1 ._content_1lu6i_59::-webkit-scrollbar-thumb{background-color:var(--lhds-color-ui-400);border:4px solid transparent;border-radius:8px;background-clip:padding-box}._overlay_1lu6i_1 ._content_1lu6i_59::-webkit-scrollbar{width:16px}}@media print{._overlay_1lu6i_1 ._content_1lu6i_59{box-shadow:none;top:0}}._overlay_1lu6i_1 ._content_1lu6i_59:focus{outline:0}@keyframes _fadeIn_1lu6i_1{0%{opacity:0}to{opacity:1}}@keyframes _fadeOut_1lu6i_1{0%{opacity:1}to{opacity:0}}@keyframes _slideIn_1lu6i_1{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes _slideOut_1lu6i_1{0%{transform:translateY(0);opacity:1}to{transform:translateY(-100%);opacity:0}}._footer_1lu6i_148{background-color:var(--swui-modal-content-bg-color)}._stickyFooter_1lu6i_152{position:-webkit-sticky;position:sticky;bottom:0;box-shadow:var(--swui-modal-footer-shadow)}@media print{._stickyFooter_1lu6i_152{position:static;box-shadow:none}}._modal_4fwgb_1{display:flex;justify-content:center;align-items:center;position:fixed;top:0;left:0;right:0;bottom:0;background-color:transparent}._overlay_4fwgb_13{position:fixed;top:0;left:0;right:0;bottom:0;background-color:var(--swui-overlay-bg-color)}._alertDialog_14t8t_1{border:0;outline:0;border-radius:var(--swui-border-radius-large);margin:auto;padding:0;overscroll-behavior:contain;opacity:0;pointer-events:none;box-shadow:#0003 0 0 10px 4px}._alertDialog_14t8t_1:not([open]){display:none}._alertDialog_14t8t_1[open]{opacity:1;pointer-events:auto;animation:_slideIn_14t8t_1 .25s forwards}._alertDialog_14t8t_1._closing_14t8t_22[open]{animation:_slideOut_14t8t_1 .25s forwards}._alertDialog_14t8t_1::backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#0d0e1080;animation:_fadeIn_14t8t_1 .25s forwards}._alertDialog_14t8t_1._closing_14t8t_22::backdrop{animation:_fadeOut_14t8t_1 .25s forwards}@keyframes _fadeIn_14t8t_1{0%{opacity:0}to{opacity:1}}@keyframes _fadeOut_14t8t_1{0%{opacity:1}to{opacity:0}}@keyframes _slideIn_14t8t_1{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes _slideOut_14t8t_1{0%{transform:translateY(0);opacity:1}to{transform:translateY(-100%);opacity:0}}._drawerDialog_11g6r_1{max-height:100%;max-width:100%;border:0;outline:0;margin:0;padding:0;overflow-y:auto;overscroll-behavior:contain;box-shadow:#0003 0 0 10px 4px;position:fixed}._drawerDialog_11g6r_1._left_11g6r_13,._drawerDialog_11g6r_1._right_11g6r_14{height:100%;top:0;bottom:0}._drawerDialog_11g6r_1._left_11g6r_13 ._contentWrapper_11g6r_19,._drawerDialog_11g6r_1._right_11g6r_14 ._contentWrapper_11g6r_19{height:100%}@media (max-width: 768px){._drawerDialog_11g6r_1._left_11g6r_13,._drawerDialog_11g6r_1._right_11g6r_14{width:-webkit-fit-content;width:fit-content}}._drawerDialog_11g6r_1._left_11g6r_13{left:0;right:unset}._drawerDialog_11g6r_1._left_11g6r_13[open]{animation:_slideInLeft_11g6r_1 .25s forwards}._drawerDialog_11g6r_1._left_11g6r_13._closing_11g6r_36[open]{animation:_slideOutLeft_11g6r_1 .25s forwards}._drawerDialog_11g6r_1._right_11g6r_14{left:unset;right:0}._drawerDialog_11g6r_1._right_11g6r_14[open]{animation:_slideInRight_11g6r_1 .25s forwards}._drawerDialog_11g6r_1._right_11g6r_14._closing_11g6r_36[open]{animation:_slideOutRight_11g6r_1 .25s forwards}._drawerDialog_11g6r_1._top_11g6r_54,._drawerDialog_11g6r_1._bottom_11g6r_55{width:100%;left:0;right:0}@media (max-width: 768px){._drawerDialog_11g6r_1._top_11g6r_54,._drawerDialog_11g6r_1._bottom_11g6r_55{height:-webkit-fit-content;height:fit-content}}._drawerDialog_11g6r_1._top_11g6r_54{top:0;bottom:unset}._drawerDialog_11g6r_1._top_11g6r_54[open]{animation:_slideInTop_11g6r_1 .25s forwards}._drawerDialog_11g6r_1._top_11g6r_54._closing_11g6r_36[open]{animation:_slideOutTop_11g6r_1 .25s forwards}._drawerDialog_11g6r_1._bottom_11g6r_55{top:unset;bottom:0}._drawerDialog_11g6r_1._bottom_11g6r_55[open]{animation:_slideInBottom_11g6r_1 .25s forwards}._drawerDialog_11g6r_1._bottom_11g6r_55._closing_11g6r_36[open]{animation:_slideOutBottom_11g6r_1 .25s forwards}._drawerDialog_11g6r_1[open]{opacity:1;pointer-events:auto}@keyframes _slideInLeft_11g6r_1{0%{transform:translate(-100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes _slideOutLeft_11g6r_1{0%{transform:translate(0);opacity:0}to{transform:translate(-100%);opacity:1}}@keyframes _slideInTop_11g6r_1{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes _slideOutTop_11g6r_1{0%{transform:translateY(0);opacity:0}to{transform:translateY(-100%);opacity:1}}@keyframes _slideInRight_11g6r_1{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes _slideOutRight_11g6r_1{0%{transform:translate(0);opacity:0}to{transform:translate(100%);opacity:1}}@keyframes _slideInBottom_11g6r_1{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes _slideOutBottom_11g6r_1{0%{transform:translateY(0);opacity:0}to{transform:translateY(100%);opacity:1}}._modalDialog_1teni_1{border:0;outline:0;margin:auto;padding:0;overscroll-behavior:contain;opacity:0;pointer-events:none;box-shadow:#0003 0 0 10px 4px}@media (min-width: 769px){._modalDialog_1teni_1{border-radius:var(--swui-border-radius-large)}._modalDialog_1teni_1::-webkit-scrollbar-thumb{background-color:var(--lhds-color-ui-400);border:4px solid transparent;border-radius:8px;background-clip:padding-box}._modalDialog_1teni_1::-webkit-scrollbar{width:16px}}._modalDialog_1teni_1:not([open]){display:none}._modalDialog_1teni_1[open]{opacity:1;pointer-events:auto;animation:_slideIn_1teni_1 .25s forwards}._modalDialog_1teni_1._closing_1teni_36[open]{animation:_slideOut_1teni_1 .25s forwards}@media (max-width: 768px){._modalDialog_1teni_1{margin:0;width:100%;max-width:100%;height:100%;max-height:100%}}._modalDialog_1teni_1::backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#0d0e1080;animation:_fadeIn_1teni_1 .25s forwards}._modalDialog_1teni_1._closing_1teni_36::backdrop{animation:_fadeOut_1teni_1 .25s forwards}@keyframes _fadeIn_1teni_1{0%{opacity:0}to{opacity:1}}@keyframes _fadeOut_1teni_1{0%{opacity:1}to{opacity:0}}@keyframes _slideIn_1teni_1{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes _slideOut_1teni_1{0%{transform:translateY(0);opacity:1}to{transform:translateY(-100%);opacity:0}}@media (max-width: 768px){._contentWrapper_1teni_100{width:100%;height:100%}}._modalActionButtons_s27nj_1{display:flex;flex-direction:row;gap:16px;justify-content:center}@media (max-width: 768px){._modalActionButtons_s27nj_1{flex-direction:column;justify-content:stretch}}._modalBody_xsn1i_1._modalBody_xsn1i_1{min-width:600px}@media (max-width: 768px){._modalBody_xsn1i_1._modalBody_xsn1i_1{min-width:unset;flex:1;padding:calc(var(--swui-metrics-space) * 2)}}._modalFooter_1vp0i_1._modalFooter_1vp0i_1{align-items:center;overflow:hidden;background:var(--silver-lighter);border-radius:24px 24px 0 0;padding:0 calc((var(--swui-metrics-indent) * 5));flex-shrink:0}._modalFooter_1vp0i_1._modalFooter_1vp0i_1._sticky_1vp0i_9{position:-webkit-sticky;position:sticky;bottom:0}")),document.head.appendChild(o)}}catch(t){console.error("vite-plugin-css-injected-by-js",t)}})();
2
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const B=require("react-modal"),e=require("react/jsx-runtime"),r=require("react"),xe=require("react-draggable"),m=require("classnames"),o=require("@stenajs-webui/core"),w=require("@stenajs-webui/elements"),he=require("@stenajs-webui/theme"),Ce=s=>{B.setAppElement(s)},pe="_overlay_quvmp_1",ye="_fadeIn_quvmp_1",we="_modal_quvmp_31",be="_content_quvmp_41",je="_appear_quvmp_1",ve="_isDraggable_quvmp_70",Ie="_footer_quvmp_101",De="_stickyFooter_quvmp_105",$={overlay:pe,fadeIn:ye,modal:we,content:be,appear:je,isDraggable:ve,footer:Ie,stickyFooter:De},X="draggable-modal-handle",Y="draggable-modal-cancel",re=({width:s,maxWidth:t,draggable:n=!1,children:l,...a})=>{const d=r.useRef(null);return e.jsx(B,{overlayClassName:$.overlay,className:$.modal,...a,children:e.jsx(xe,{handle:`.${X}`,cancel:`.${Y}, button, [role="tooltip"]`,bounds:".ReactModal__Overlay",disabled:!n,nodeRef:d,children:e.jsx("div",{style:{"--swui-modal-width":s,"--swui-modal-max-width":t},className:m($.content,{[$.isDraggable]:n}),ref:d,children:l})})})},Ne="_portal_17ze5_1",Oe="_overlay_17ze5_4",$e="_content_17ze5_9",Be="_floating_17ze5_15",Fe="_slideFromLeft_17ze5_29",Ae="_slideFromRight_17ze5_30",Me="_afterOpen_17ze5_36",Le="_beforeClose_17ze5_40",ke="_slideFromTop_17ze5_45",Se="_slideFromBottom_17ze5_46",x={portal:Ne,overlay:Oe,content:$e,floating:Be,slideFromLeft:Fe,slideFromRight:Ae,afterOpen:Me,beforeClose:Le,slideFromTop:ke,slideFromBottom:Se},Ee=({background:s,zIndex:t,children:n,slideFrom:l="left",portalTarget:a,floating:d,...h})=>{const{height:i,width:C}=h;return e.jsx(B,{closeTimeoutMS:250,portalClassName:x.portal,overlayClassName:{base:x.overlay,afterOpen:x.afterOpen,beforeClose:x.beforeClose},className:{base:m(x.content,We(l),d&&x.floating),afterOpen:x.afterOpen,beforeClose:x.beforeClose},style:{content:{width:C,height:i,background:s},overlay:{zIndex:t}},parentSelector:a?()=>a:void 0,...h,children:n})},We=s=>{switch(s){case"left":return x.slideFromLeft;case"right":return x.slideFromRight;case"top":return x.slideFromTop;case"bottom":return x.slideFromBottom;default:return o.exhaustSwitchCase(s,x.slideFromLeft)}},ze=({header:s,contentRight:t,onRequestClose:n,icon:l})=>e.jsx(o.Spacing,{position:"sticky",top:0,zIndex:100,background:he.cssColor("--lhds-color-ui-50"),children:e.jsxs(o.Row,{justifyContent:"space-between",alignItems:"center",height:"48px",children:[e.jsxs(o.Row,{alignItems:"center",gap:2,children:[e.jsx(o.Space,{num:1}),l&&e.jsx(w.Icon,{icon:l,size:24}),e.jsx(o.Heading,{variant:"h4",children:s})]}),e.jsxs(o.Row,{gap:1,children:[t,e.jsx(w.FlatButton,{leftIcon:w.stenaTimes,onClick:n,variant:"danger"}),e.jsx(o.Space,{num:.5})]})]})}),qe="_overlay_1gix5_1",Te="_fadeIn_1gix5_1",He="_modal_1gix5_31",Ge="_content_1gix5_38",Pe="_appear_1gix5_1",Re="_isDraggable_1gix5_61",Ve="_footer_1gix5_92",Xe="_stickyFooter_1gix5_96",P={overlay:qe,fadeIn:Te,modal:He,content:Ge,appear:Pe,isDraggable:Re,footer:Ve,stickyFooter:Xe},Ye={overlay:{justifyContent:"center"}},Je=({children:s,...t})=>e.jsx(B,{overlayClassName:P.overlay,className:P.modal,style:Ye,...t,children:e.jsx("div",{className:P.content,style:{"--swui-modal-width":"fit-content"},children:s})}),Ke="_overlay_1lu6i_1",Qe="_afterOpen_1lu6i_24",Ue="_beforeClose_1lu6i_24",Ze="_fadeIn_1lu6i_1",et="_fadeOut_1lu6i_1",tt="_modal_1lu6i_36",st="_slideIn_1lu6i_1",nt="_slideOut_1lu6i_1",ot="_content_1lu6i_59",lt="_footer_1lu6i_148",rt="_stickyFooter_1lu6i_152",N={overlay:Ke,afterOpen:Qe,beforeClose:Ue,fadeIn:Ze,fadeOut:et,modal:tt,slideIn:st,slideOut:nt,content:ot,footer:lt,stickyFooter:rt},se=/^((?!chrome|android).)*safari/i.test(navigator.userAgent),ae=({children:s,background:t,...n})=>{const l=r.useRef(null),[a,d]=r.useState(se?"auto":void 0),h={overlay:{justifyContent:"center"},content:{"--swui-modal-content-bg-color":t}},i=o.useEventCallback(()=>{if(!se)return;const C=l.current;C&&d(C.scrollHeight>C.clientHeight?"stable":"auto")});return r.useEffect(()=>(window.addEventListener("resize",i),document.addEventListener("DOMContentLoaded",i),()=>{window.removeEventListener("resize",i),document.removeEventListener("DOMContentLoaded",i)}),[i]),e.jsx(B,{overlayClassName:{base:N.overlay,beforeClose:N.beforeClose,afterOpen:N.afterOpen},className:{base:N.modal,beforeClose:N.beforeClose,afterOpen:N.afterOpen},style:h,closeTimeoutMS:250,onAfterOpen:i,...n,children:e.jsx("div",{className:N.content,style:{"--swui-modal-width":"fit-content",scrollbarGutter:a},ref:l,children:s})})},at="_modal_4fwgb_1",ct="_overlay_4fwgb_13",ne={modal:at,overlay:ct},it=({headerIconLeft:s,headerText:t,shouldCloseOnOverlayClick:n=!1,shouldCloseOnEsc:l=!1,...a})=>e.jsx(B,{...a,isOpen:!0,shouldCloseOnOverlayClick:n,shouldCloseOnEsc:l,className:ne.modal,overlayClassName:ne.overlay,children:e.jsxs(o.Column,{spacing:2,alignItems:"center",children:[e.jsx(o.Box,{alignItems:"center",justifyContent:"center",width:"64px",height:"64px",borderRadius:"50%",background:"white",shadow:"modal",children:e.jsx(w.Spinner,{size:"small"})}),(s||t)&&e.jsxs(e.Fragment,{children:[e.jsx(o.Spacing,{}),e.jsxs(o.Row,{indent:2,children:[s&&e.jsxs(e.Fragment,{children:[e.jsx(w.Icon,{size:14,icon:s,color:"white"}),e.jsx(o.Indent,{})]}),t&&e.jsx(o.Heading,{variant:"h4",color:"white",children:t})]})]})]})}),ce=({onRequestClose:s,header:t,headerText:n,closeButtonClassName:l})=>e.jsxs(o.Row,{spacing:2,indent:2,borderBottom:"1px solid var(--lhds-color-ui-300)",className:X,children:[e.jsxs(o.Row,{flex:1,indent:!0,alignItems:"center",children:[n&&e.jsx(o.Txt,{className:Y,size:"large",children:n}),t]}),e.jsx(o.Box,{alignSelf:"flex-start",children:e.jsx(w.CloseButton,{className:l,onClick:s})})]}),dt=({header:s,headerText:t,children:n,spacing:l,indent:a,draggable:d=!1,onRequestClose:h,closeButtonClassName:i,footer:C,disableStickyFooter:y=!1,...g})=>{const A=typeof l=="number"?l:1,F=typeof a=="number"?a:1;return e.jsxs(re,{...g,onRequestClose:h,draggable:d,children:[e.jsx(ce,{onRequestClose:h,header:s,headerText:t,closeButtonClassName:i}),e.jsx(o.Box,{spacing:A,indent:F,children:n}),C&&e.jsx(o.Box,{className:m($.footer,{[$.stickyFooter]:!y}),children:C})]})},ut=({children:s})=>e.jsx(o.Column,{indent:2,spacing:2,children:s}),k=r.createContext(void 0);function S(s,{ref:t,modal:n,contentWrapperClassName:l,closingClassName:a,contentWrapperStyle:d,dialogStyle:h,divInsteadOfDialog:i,disableCloseOnClickOutside:C,onResolve:y,onReject:g,className:A,background:F,label:E,labelledby:W,describedby:z}){const _e=r.useRef(null),f=t??_e,[q,me]=r.useReducer(c=>c+1,0),K=r.useRef(null),v=r.useRef(null),b=r.useRef(void 0),p=r.useRef(null),[Q,M]=r.useState(!1),[T,O]=r.useState(!1),[U,j]=r.useState(!1),H=s,fe=r.useCallback(c=>{var u,_;return K.current=new Promise((D,ge)=>{v.current=D,p.current=ge}),j(!1),M(!0),O(!0),me(),b.current=c,n?(u=f.current)==null||u.showModal():(_=f.current)==null||_.show(),K.current},[f,n]),Z=r.useCallback(c=>{var u;j(!0),M(!1),i?setTimeout(()=>{var _;j(!1),O(!1),(_=v.current)==null||_.call(v,c),b.current=void 0,y==null||y()},300):(u=f.current)==null||u.addEventListener("animationend",()=>{var _,D;j(!1),O(!1),(_=f.current)==null||_.close(),(D=v.current)==null||D.call(v,c),b.current=void 0,y==null||y()},{once:!0})},[f,y,i]),ee=r.useCallback(()=>{var c;j(!1),M(!1),O(!1),(c=p.current)==null||c.call(p),g==null||g(),b.current=void 0},[g]),I=r.useCallback(c=>{var u;j(!0),M(!1),i?setTimeout(()=>{var _;j(!1),O(!1),(_=p.current)==null||_.call(p,c),g==null||g(),b.current=void 0},300):(u=f.current)==null||u.addEventListener("animationend",()=>{var _,D;j(!1),O(!1),(_=f.current)==null||_.close(),(D=p.current)==null||D.call(p,c),g==null||g(),b.current=void 0},{once:!0})},[f,i,g]),te=r.useCallback(c=>{if(c.target!==f.current)return;const u=f.current.getBoundingClientRect();u.top<=c.clientY&&c.clientY<=u.top+u.height&&u.left<=c.clientX&&c.clientX<=u.left+u.width||I()},[f,I]),G=r.useMemo(()=>({resolve:Z,reject:I}),[I,Z]);return[r.useMemo(()=>i?e.jsx(ae,{isOpen:Q,onRequestClose:I,background:F,contentLabel:E,aria:{modal:!0,labelledby:W,describedby:z},children:e.jsx(k.Provider,{value:G,children:T&&r.createElement(H,{...b.current,key:q})})}):e.jsx("dialog",{onClick:C?void 0:te,onClose:ee,ref:f,className:m(A,U&&a),"aria-label":E,"aria-labelledby":W,"aria-describedby":z,style:{background:F,...h},children:e.jsx("div",{style:d,className:l,children:T&&e.jsx(k.Provider,{value:G,children:r.createElement(H,{...b.current,key:q})})})}),[i,Q,I,F,E,W,z,G,T,H,q,C,te,ee,f,A,U,a,h,d,l]),{show:fe,reject:I}]}const _t=()=>{const s=r.useContext(k);if(s==null)throw new Error("useDialogPromise is being used outside of dialog.");return s},mt="_alertDialog_14t8t_1",ft="_slideIn_14t8t_1",gt="_closing_14t8t_22",xt="_slideOut_14t8t_1",ht="_fadeIn_14t8t_1",Ct="_fadeOut_14t8t_1",R={alertDialog:mt,slideIn:ft,closing:gt,slideOut:xt,fadeIn:ht,fadeOut:Ct};function pt(s,t){return S(s,{...t,modal:!0,closingClassName:m(t==null?void 0:t.closingClassName,R.closing),contentWrapperClassName:m(t==null?void 0:t.contentWrapperClassName,R.contentWrapper),className:m(t==null?void 0:t.className,R.alertDialog)})}const yt="_drawerDialog_11g6r_1",wt="_left_11g6r_13",bt="_right_11g6r_14",jt="_contentWrapper_11g6r_19",vt="_slideInLeft_11g6r_1",It="_closing_11g6r_36",Dt="_slideOutLeft_11g6r_1",Nt="_slideInRight_11g6r_1",Ot="_slideOutRight_11g6r_1",$t="_top_11g6r_54",Bt="_bottom_11g6r_55",Ft="_slideInTop_11g6r_1",At="_slideOutTop_11g6r_1",Mt="_slideInBottom_11g6r_1",Lt="_slideOutBottom_11g6r_1",L={drawerDialog:yt,left:wt,right:bt,contentWrapper:jt,slideInLeft:vt,closing:It,slideOutLeft:Dt,slideInRight:Nt,slideOutRight:Ot,top:$t,bottom:Bt,slideInTop:Ft,slideOutTop:At,slideInBottom:Mt,slideOutBottom:Lt};function kt(s,t="left",n){return S(s,{...n,disableCloseOnClickOutside:!0,modal:!1,closingClassName:m(n==null?void 0:n.closingClassName,L.closing),contentWrapperClassName:m(n==null?void 0:n.contentWrapperClassName,L.contentWrapper),className:m(n==null?void 0:n.className,L.drawerDialog,L[t])})}const St="_modalDialog_1teni_1",Et="_slideIn_1teni_1",Wt="_closing_1teni_36",zt="_slideOut_1teni_1",qt="_fadeIn_1teni_1",Tt="_fadeOut_1teni_1",Ht="_contentWrapper_1teni_100",V={modalDialog:St,slideIn:Et,closing:Wt,slideOut:zt,fadeIn:qt,fadeOut:Tt,contentWrapper:Ht};function Gt(s,t){return S(s,{...t,modal:!0,closingClassName:m(t==null?void 0:t.closingClassName,V.closing),contentWrapperClassName:m(t==null?void 0:t.contentWrapperClassName,V.contentWrapper),className:m(t==null?void 0:t.className,V.modalDialog)})}const J=({headingLevel:s="h2",size:t="medium",children:n})=>e.jsx(o.Heading,{variant:t==="medium"?"h3":"h1",as:s,children:n}),Pt="_modalActionButtons_s27nj_1",Rt={modalActionButtons:Pt},ie=({children:s})=>e.jsxs(o.Box,{width:"100%",children:[e.jsx(o.Spacing,{}),e.jsx("div",{className:Rt.modalActionButtons,children:s})]}),Vt="_modalBody_xsn1i_1",oe={modalBody:Vt},de=({gap:s=3,variant:t="normal",className:n,...l})=>e.jsx(o.Column,{className:m(oe.modalBody,oe[t],n),indent:t==="relaxed"?5:3,spacing:t==="relaxed"?5:3,gap:s,...l}),ue=({children:s,maxWidth:t})=>e.jsx(o.Column,{flex:1,height:"100%",justifyContent:"space-between",maxWidth:t,children:s}),Xt=({icon:s,buttons:t,heading:n,text:l,children:a,maxWidth:d,minWidth:h})=>e.jsx(ue,{children:e.jsxs(de,{flexDirection:"column",alignItems:"center",maxWidth:d,minWidth:h,children:[s&&e.jsx(w.CircledIcon,{icon:s,size:"large"}),e.jsx(J,{children:n}),l&&e.jsx(o.Text,{textAlign:"center",children:l}),a,t&&e.jsx(ie,{children:t})]})}),Yt=s=>e.jsx(w.FlatButton,{size:"large",variant:"danger",leftIcon:w.stenaTimesThick,...s}),Jt=({heading:s,headingLevel:t,headingSize:n,onClickClose:l,closeButtonAriaLabel:a})=>e.jsx(o.Column,{children:e.jsxs(o.Row,{justifyContent:"space-between",alignItems:"center",children:[s?e.jsx(J,{headingLevel:t,size:n,children:s}):e.jsx("div",{}),l?e.jsx(Yt,{onClick:l,size:n,"aria-label":a}):null]})}),Kt="_modalFooter_1vp0i_1",Qt="_sticky_1vp0i_9",le={modalFooter:Kt,sticky:Qt},Ut=({children:s,sticky:t,zIndex:n=4,gap:l=2,className:a,...d})=>e.jsx(o.Row,{className:m(le.modalFooter,t&&le.sticky,a),shadow:"var(--swui-sticky-footer-shadow)",zIndex:n,...d,children:e.jsx(o.Row,{gap:l,spacing:2,alignItems:"center",children:s})});exports.Alert=Je;exports.BaseWindow=re;exports.DRAGGABLE_CANCEL_CLASSNAME=Y;exports.DRAGGABLE_HANDLE_CLASSNAME=X;exports.DialogContext=k;exports.Drawer=Ee;exports.DrawerHeader=ze;exports.InfoAlert=Xt;exports.LoadingModal=it;exports.Modal=ae;exports.ModalActionButtons=ie;exports.ModalBody=de;exports.ModalContainer=ue;exports.ModalFooter=Ut;exports.ModalHeader=Jt;exports.ModalHeading=J;exports.Window=dt;exports.WindowFooter=ut;exports.WindowHeader=ce;exports.setupDeclarativeModals=Ce;exports.useAlertDialog=pt;exports.useDialog=S;exports.useDialogPromise=_t;exports.useDrawerDialog=kt;exports.useModalDialog=Gt;
1
+ (function(){"use strict";try{if(typeof document<"u"){var o=document.createElement("style");o.appendChild(document.createTextNode("._overlay_quvmp_1{--swui-modal-animation-time: var(--swui-animation-time-fast);--swui-modal-overlay-bg-color: var(--swui-overlay-bg-color);--swui-modal-content-bg-color: var(--swui-white);--swui-modal-width: 960px;--swui-modal-max-width: 100%;--swui-modal-header-border-color: var(--lhds-color-ui-300);--swui-modal-shadow: var(--swui-shadow-modal);--swui-modal-footer-shadow: var(--swui-shadow-modal);position:fixed;z-index:10;top:0;left:0;right:0;bottom:0;background-color:var(--swui-modal-overlay-bg-color);overflow:auto;display:flex;flex-direction:column;justify-content:flex-start;align-items:center;animation:_fadeIn_quvmp_1 var(--swui-modal-animation-time) cubic-bezier(.645,.045,.355,1) both}@media print{._overlay_quvmp_1{background-color:#fff}}._overlay_quvmp_1 ._modal_quvmp_31{max-width:100%;outline:none;pointer-events:none}@media (max-width: 768px){._overlay_quvmp_1 ._modal_quvmp_31{width:100%}}._overlay_quvmp_1 ._content_quvmp_41{position:relative;display:block;background:var(--swui-modal-content-bg-color);box-shadow:var(--swui-modal-shadow);pointer-events:all;top:calc(var(--swui-metrics-space) * 2);width:var(--swui-modal-width);max-width:var(--swui-modal-max-width)}@media (max-width: 768px){._overlay_quvmp_1 ._content_quvmp_41{top:0;width:100%;max-width:100%}}._overlay_quvmp_1 ._content_quvmp_41{animation:_appear_quvmp_1 var(--swui-animation-time-fast) cubic-bezier(.645,.045,.355,1) both}@media print{._overlay_quvmp_1 ._content_quvmp_41{box-shadow:none;top:0}}._overlay_quvmp_1 ._content_quvmp_41:focus{outline:0}._overlay_quvmp_1 ._content_quvmp_41._isDraggable_quvmp_70 .draggable-modal-handle{cursor:move}._overlay_quvmp_1 ._content_quvmp_41._isDraggable_quvmp_70 .draggable-modal-handle .draggable-modal-cancel,._overlay_quvmp_1 ._content_quvmp_41._isDraggable_quvmp_70 .draggable-modal-handle [role=tooltip]{cursor:initial}@keyframes _fadeIn_quvmp_1{0%{background-color:var(--swui-hidden)}to{background-color:var(--swui-modal-overlay-bg-color)}}@keyframes _appear_quvmp_1{0%{opacity:0}to{opacity:1}}._footer_quvmp_101{background-color:var(--swui-modal-content-bg-color)}._stickyFooter_quvmp_105{position:-webkit-sticky;position:sticky;bottom:0;box-shadow:var(--swui-modal-footer-shadow)}@media print{._stickyFooter_quvmp_105{position:static;box-shadow:none}}._portal_17ze5_1{--drawer-width: 370px}._portal_17ze5_1 ._overlay_17ze5_4{position:fixed;top:0;right:0;bottom:0;left:0}._portal_17ze5_1 ._content_17ze5_9{box-shadow:var(--swui-shadow-modal);background:#fff;position:absolute;transition:transform var(--swui-animation-time-medium) ease-in-out}._portal_17ze5_1 ._content_17ze5_9._floating_17ze5_15{margin:var(--swui-metrics-space);border-radius:var(--swui-border-radius)}@media (max-width: 768px){._portal_17ze5_1 ._content_17ze5_9._floating_17ze5_15{margin:0;border-radius:0}}._portal_17ze5_1 ._content_17ze5_9:focus-visible{outline:unset}._portal_17ze5_1 ._content_17ze5_9._slideFromLeft_17ze5_29,._portal_17ze5_1 ._content_17ze5_9._slideFromRight_17ze5_30{transform:translate(var(--translate-x-outside-screen, 0));overflow-y:auto;top:0;bottom:0}._portal_17ze5_1 ._content_17ze5_9._slideFromLeft_17ze5_29._afterOpen_17ze5_36,._portal_17ze5_1 ._content_17ze5_9._slideFromRight_17ze5_30._afterOpen_17ze5_36{transform:translate(0)}._portal_17ze5_1 ._content_17ze5_9._slideFromLeft_17ze5_29._beforeClose_17ze5_40,._portal_17ze5_1 ._content_17ze5_9._slideFromRight_17ze5_30._beforeClose_17ze5_40{transform:translate(var(--translate-x-outside-screen))}._portal_17ze5_1 ._content_17ze5_9._slideFromTop_17ze5_45,._portal_17ze5_1 ._content_17ze5_9._slideFromBottom_17ze5_46{transform:translateY(var(--translate-y-outside-screen, 0));overflow-x:auto;left:0;right:0}._portal_17ze5_1 ._content_17ze5_9._slideFromTop_17ze5_45._afterOpen_17ze5_36,._portal_17ze5_1 ._content_17ze5_9._slideFromBottom_17ze5_46._afterOpen_17ze5_36{transform:translateY(0)}._portal_17ze5_1 ._content_17ze5_9._slideFromTop_17ze5_45._beforeClose_17ze5_40,._portal_17ze5_1 ._content_17ze5_9._slideFromBottom_17ze5_46._beforeClose_17ze5_40{transform:translateY(var(--translate-y-outside-screen))}._portal_17ze5_1 ._content_17ze5_9._slideFromLeft_17ze5_29{--translate-x-outside-screen: -100%;width:var(--drawer-width);left:0}._portal_17ze5_1 ._content_17ze5_9._slideFromRight_17ze5_30{--translate-x-outside-screen: 100%;width:var(--drawer-width);right:0}._portal_17ze5_1 ._content_17ze5_9._slideFromTop_17ze5_45{--translate-y-outside-screen: -100%;height:var(--drawer-width);top:0}._portal_17ze5_1 ._content_17ze5_9._slideFromBottom_17ze5_46{--translate-y-outside-screen: 100%;height:var(--drawer-width);bottom:0}._overlay_1gix5_1{--swui-modal-animation-time: var(--swui-animation-time-fast);--swui-modal-overlay-bg-color: var(--swui-overlay-bg-color);--swui-modal-content-bg-color: var(--swui-white);--swui-modal-width: 960px;--swui-modal-max-width: 100%;--swui-modal-header-border-color: var(--lhds-color-ui-300);--swui-modal-shadow: var(--swui-shadow-modal);--swui-modal-footer-shadow: var(--swui-shadow-modal);position:fixed;z-index:10;top:0;left:0;right:0;bottom:0;background-color:var(--swui-modal-overlay-bg-color);overflow:auto;display:flex;flex-direction:column;justify-content:flex-start;align-items:center;animation:_fadeIn_1gix5_1 var(--swui-modal-animation-time) cubic-bezier(.645,.045,.355,1) both}@media print{._overlay_1gix5_1{background-color:#fff}}._overlay_1gix5_1 ._modal_1gix5_31{max-width:100%;outline:none;pointer-events:none;padding:var(--swui-metrics-space)}._overlay_1gix5_1 ._content_1gix5_38{position:relative;display:block;background:var(--swui-modal-content-bg-color);box-shadow:var(--swui-modal-shadow);border-radius:var(--swui-border-radius-large);pointer-events:all;width:var(--swui-modal-width);max-width:var(--swui-modal-max-width);animation:_appear_1gix5_1 var(--swui-animation-time-fast) cubic-bezier(.645,.045,.355,1) both}@media print{._overlay_1gix5_1 ._content_1gix5_38{box-shadow:none;top:0}}._overlay_1gix5_1 ._content_1gix5_38:focus{outline:0}._overlay_1gix5_1 ._content_1gix5_38._isDraggable_1gix5_61 .draggable-modal-handle{cursor:move}._overlay_1gix5_1 ._content_1gix5_38._isDraggable_1gix5_61 .draggable-modal-handle .draggable-modal-cancel,._overlay_1gix5_1 ._content_1gix5_38._isDraggable_1gix5_61 .draggable-modal-handle [role=tooltip]{cursor:initial}@keyframes _fadeIn_1gix5_1{0%{background-color:var(--swui-hidden)}to{background-color:var(--swui-modal-overlay-bg-color)}}@keyframes _appear_1gix5_1{0%{opacity:0}to{opacity:1}}._footer_1gix5_92{background-color:var(--swui-modal-content-bg-color)}._stickyFooter_1gix5_96{position:-webkit-sticky;position:sticky;bottom:0;box-shadow:var(--swui-modal-footer-shadow)}@media print{._stickyFooter_1gix5_96{position:static;box-shadow:none}}._overlay_1lu6i_1{--swui-modal-animation-time: var(--swui-animation-time-medium);--swui-modal-overlay-bg-color: var(--swui-overlay-bg-color);--swui-modal-content-bg-color: var(--swui-white);--swui-modal-width: 960px;--swui-modal-max-width: 100%;--swui-modal-header-border-color: var(--lhds-color-ui-300);--swui-modal-shadow: var(--swui-shadow-modal);--swui-modal-footer-shadow: var(--swui-shadow-modal);position:fixed;z-index:10;top:0;left:0;right:0;bottom:0;background-color:var(--swui-modal-overlay-bg-color);display:flex;flex-direction:column;justify-content:flex-start;align-items:center;opacity:0}._overlay_1lu6i_1._afterOpen_1lu6i_24:not(._beforeClose_1lu6i_24){animation:_fadeIn_1lu6i_1 var(--swui-modal-animation-time) forwards}._overlay_1lu6i_1._beforeClose_1lu6i_24{animation:_fadeOut_1lu6i_1 var(--swui-modal-animation-time) forwards}@media print{._overlay_1lu6i_1{background-color:#fff}}._overlay_1lu6i_1 ._modal_1lu6i_36{max-width:100%;outline:none;pointer-events:none;padding:calc(var(--swui-metrics-space) * 2);box-sizing:border-box;max-height:100%;transform:translateY(-100%)}@media (max-width: 768px){._overlay_1lu6i_1 ._modal_1lu6i_36{padding:0;width:100%}}._overlay_1lu6i_1 ._modal_1lu6i_36._afterOpen_1lu6i_24:not(._beforeClose_1lu6i_24){animation:_slideIn_1lu6i_1 var(--swui-modal-animation-time) forwards}._overlay_1lu6i_1 ._modal_1lu6i_36._beforeClose_1lu6i_24{animation:_slideOut_1lu6i_1 var(--swui-modal-animation-time) forwards}._overlay_1lu6i_1 ._content_1lu6i_59{position:relative;display:block;background:var(--swui-modal-content-bg-color);box-shadow:var(--swui-modal-shadow);border-radius:var(--swui-border-radius-large);pointer-events:all;width:var(--swui-modal-width);max-width:var(--swui-modal-max-width);height:100%;overflow:hidden;overflow-y:auto}@media (max-width: 768px){._overlay_1lu6i_1 ._content_1lu6i_59{border-radius:0;width:100%;max-width:100%;min-height:100dvh}}@media (min-width: 769px){._overlay_1lu6i_1 ._content_1lu6i_59{border-radius:var(--swui-border-radius-large)}._overlay_1lu6i_1 ._content_1lu6i_59::-webkit-scrollbar-thumb{background-color:var(--lhds-color-ui-400);border:4px solid transparent;border-radius:8px;background-clip:padding-box}._overlay_1lu6i_1 ._content_1lu6i_59::-webkit-scrollbar{width:16px}}@media print{._overlay_1lu6i_1 ._content_1lu6i_59{box-shadow:none;top:0}}._overlay_1lu6i_1 ._content_1lu6i_59:focus{outline:0}@keyframes _fadeIn_1lu6i_1{0%{opacity:0}to{opacity:1}}@keyframes _fadeOut_1lu6i_1{0%{opacity:1}to{opacity:0}}@keyframes _slideIn_1lu6i_1{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes _slideOut_1lu6i_1{0%{transform:translateY(0);opacity:1}to{transform:translateY(-100%);opacity:0}}._footer_1lu6i_148{background-color:var(--swui-modal-content-bg-color)}._stickyFooter_1lu6i_152{position:-webkit-sticky;position:sticky;bottom:0;box-shadow:var(--swui-modal-footer-shadow)}@media print{._stickyFooter_1lu6i_152{position:static;box-shadow:none}}._modal_4fwgb_1{display:flex;justify-content:center;align-items:center;position:fixed;top:0;left:0;right:0;bottom:0;background-color:transparent}._overlay_4fwgb_13{position:fixed;top:0;left:0;right:0;bottom:0;background-color:var(--swui-overlay-bg-color)}._alertDialog_14t8t_1{border:0;outline:0;border-radius:var(--swui-border-radius-large);margin:auto;padding:0;overscroll-behavior:contain;opacity:0;pointer-events:none;box-shadow:#0003 0 0 10px 4px}._alertDialog_14t8t_1:not([open]){display:none}._alertDialog_14t8t_1[open]{opacity:1;pointer-events:auto;animation:_slideIn_14t8t_1 .25s forwards}._alertDialog_14t8t_1._closing_14t8t_22[open]{animation:_slideOut_14t8t_1 .25s forwards}._alertDialog_14t8t_1::backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#0d0e1080;animation:_fadeIn_14t8t_1 .25s forwards}._alertDialog_14t8t_1._closing_14t8t_22::backdrop{animation:_fadeOut_14t8t_1 .25s forwards}@keyframes _fadeIn_14t8t_1{0%{opacity:0}to{opacity:1}}@keyframes _fadeOut_14t8t_1{0%{opacity:1}to{opacity:0}}@keyframes _slideIn_14t8t_1{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes _slideOut_14t8t_1{0%{transform:translateY(0);opacity:1}to{transform:translateY(-100%);opacity:0}}._drawerDialog_11g6r_1{max-height:100%;max-width:100%;border:0;outline:0;margin:0;padding:0;overflow-y:auto;overscroll-behavior:contain;box-shadow:#0003 0 0 10px 4px;position:fixed}._drawerDialog_11g6r_1._left_11g6r_13,._drawerDialog_11g6r_1._right_11g6r_14{height:100%;top:0;bottom:0}._drawerDialog_11g6r_1._left_11g6r_13 ._contentWrapper_11g6r_19,._drawerDialog_11g6r_1._right_11g6r_14 ._contentWrapper_11g6r_19{height:100%}@media (max-width: 768px){._drawerDialog_11g6r_1._left_11g6r_13,._drawerDialog_11g6r_1._right_11g6r_14{width:-webkit-fit-content;width:fit-content}}._drawerDialog_11g6r_1._left_11g6r_13{left:0;right:unset}._drawerDialog_11g6r_1._left_11g6r_13[open]{animation:_slideInLeft_11g6r_1 .25s forwards}._drawerDialog_11g6r_1._left_11g6r_13._closing_11g6r_36[open]{animation:_slideOutLeft_11g6r_1 .25s forwards}._drawerDialog_11g6r_1._right_11g6r_14{left:unset;right:0}._drawerDialog_11g6r_1._right_11g6r_14[open]{animation:_slideInRight_11g6r_1 .25s forwards}._drawerDialog_11g6r_1._right_11g6r_14._closing_11g6r_36[open]{animation:_slideOutRight_11g6r_1 .25s forwards}._drawerDialog_11g6r_1._top_11g6r_54,._drawerDialog_11g6r_1._bottom_11g6r_55{width:100%;left:0;right:0}@media (max-width: 768px){._drawerDialog_11g6r_1._top_11g6r_54,._drawerDialog_11g6r_1._bottom_11g6r_55{height:-webkit-fit-content;height:fit-content}}._drawerDialog_11g6r_1._top_11g6r_54{top:0;bottom:unset}._drawerDialog_11g6r_1._top_11g6r_54[open]{animation:_slideInTop_11g6r_1 .25s forwards}._drawerDialog_11g6r_1._top_11g6r_54._closing_11g6r_36[open]{animation:_slideOutTop_11g6r_1 .25s forwards}._drawerDialog_11g6r_1._bottom_11g6r_55{top:unset;bottom:0}._drawerDialog_11g6r_1._bottom_11g6r_55[open]{animation:_slideInBottom_11g6r_1 .25s forwards}._drawerDialog_11g6r_1._bottom_11g6r_55._closing_11g6r_36[open]{animation:_slideOutBottom_11g6r_1 .25s forwards}._drawerDialog_11g6r_1[open]{opacity:1;pointer-events:auto}@keyframes _slideInLeft_11g6r_1{0%{transform:translate(-100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes _slideOutLeft_11g6r_1{0%{transform:translate(0);opacity:0}to{transform:translate(-100%);opacity:1}}@keyframes _slideInTop_11g6r_1{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes _slideOutTop_11g6r_1{0%{transform:translateY(0);opacity:0}to{transform:translateY(-100%);opacity:1}}@keyframes _slideInRight_11g6r_1{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes _slideOutRight_11g6r_1{0%{transform:translate(0);opacity:0}to{transform:translate(100%);opacity:1}}@keyframes _slideInBottom_11g6r_1{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes _slideOutBottom_11g6r_1{0%{transform:translateY(0);opacity:0}to{transform:translateY(100%);opacity:1}}._modalDialog_1teni_1{border:0;outline:0;margin:auto;padding:0;overscroll-behavior:contain;opacity:0;pointer-events:none;box-shadow:#0003 0 0 10px 4px}@media (min-width: 769px){._modalDialog_1teni_1{border-radius:var(--swui-border-radius-large)}._modalDialog_1teni_1::-webkit-scrollbar-thumb{background-color:var(--lhds-color-ui-400);border:4px solid transparent;border-radius:8px;background-clip:padding-box}._modalDialog_1teni_1::-webkit-scrollbar{width:16px}}._modalDialog_1teni_1:not([open]){display:none}._modalDialog_1teni_1[open]{opacity:1;pointer-events:auto;animation:_slideIn_1teni_1 .25s forwards}._modalDialog_1teni_1._closing_1teni_36[open]{animation:_slideOut_1teni_1 .25s forwards}@media (max-width: 768px){._modalDialog_1teni_1{margin:0;width:100%;max-width:100%;height:100%;max-height:100%}}._modalDialog_1teni_1::backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#0d0e1080;animation:_fadeIn_1teni_1 .25s forwards}._modalDialog_1teni_1._closing_1teni_36::backdrop{animation:_fadeOut_1teni_1 .25s forwards}@keyframes _fadeIn_1teni_1{0%{opacity:0}to{opacity:1}}@keyframes _fadeOut_1teni_1{0%{opacity:1}to{opacity:0}}@keyframes _slideIn_1teni_1{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes _slideOut_1teni_1{0%{transform:translateY(0);opacity:1}to{transform:translateY(-100%);opacity:0}}@media (max-width: 768px){._contentWrapper_1teni_100{width:100%;height:100%}}._modalActionButtons_s27nj_1{display:flex;flex-direction:row;gap:16px;justify-content:center}@media (max-width: 768px){._modalActionButtons_s27nj_1{flex-direction:column;justify-content:stretch}}@media (max-width: 768px){._modalBody_ozynq_1._modalBody_ozynq_1{padding:calc(var(--swui-metrics-space) * 2)}}._modalFooter_1vp0i_1._modalFooter_1vp0i_1{align-items:center;overflow:hidden;background:var(--silver-lighter);border-radius:24px 24px 0 0;padding:0 calc((var(--swui-metrics-indent) * 5));flex-shrink:0}._modalFooter_1vp0i_1._modalFooter_1vp0i_1._sticky_1vp0i_9{position:-webkit-sticky;position:sticky;bottom:0}")),document.head.appendChild(o)}}catch(t){console.error("vite-plugin-css-injected-by-js",t)}})();
2
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const B=require("react-modal"),e=require("react/jsx-runtime"),r=require("react"),xe=require("react-draggable"),m=require("classnames"),o=require("@stenajs-webui/core"),w=require("@stenajs-webui/elements"),he=require("@stenajs-webui/theme"),pe=s=>{B.setAppElement(s)},ye="_overlay_quvmp_1",Ce="_fadeIn_quvmp_1",we="_modal_quvmp_31",be="_content_quvmp_41",je="_appear_quvmp_1",ve="_isDraggable_quvmp_70",Ie="_footer_quvmp_101",De="_stickyFooter_quvmp_105",$={overlay:ye,fadeIn:Ce,modal:we,content:be,appear:je,isDraggable:ve,footer:Ie,stickyFooter:De},X="draggable-modal-handle",Y="draggable-modal-cancel",re=({width:s,maxWidth:t,draggable:n=!1,children:l,...a})=>{const d=r.useRef(null);return e.jsx(B,{overlayClassName:$.overlay,className:$.modal,...a,children:e.jsx(xe,{handle:`.${X}`,cancel:`.${Y}, button, [role="tooltip"]`,bounds:".ReactModal__Overlay",disabled:!n,nodeRef:d,children:e.jsx("div",{style:{"--swui-modal-width":s,"--swui-modal-max-width":t},className:m($.content,{[$.isDraggable]:n}),ref:d,children:l})})})},Ne="_portal_17ze5_1",Oe="_overlay_17ze5_4",$e="_content_17ze5_9",Be="_floating_17ze5_15",Fe="_slideFromLeft_17ze5_29",Ae="_slideFromRight_17ze5_30",Me="_afterOpen_17ze5_36",Le="_beforeClose_17ze5_40",ke="_slideFromTop_17ze5_45",Se="_slideFromBottom_17ze5_46",x={portal:Ne,overlay:Oe,content:$e,floating:Be,slideFromLeft:Fe,slideFromRight:Ae,afterOpen:Me,beforeClose:Le,slideFromTop:ke,slideFromBottom:Se},Ee=({background:s,zIndex:t,children:n,slideFrom:l="left",portalTarget:a,floating:d,...h})=>{const{height:i,width:p}=h;return e.jsx(B,{closeTimeoutMS:250,portalClassName:x.portal,overlayClassName:{base:x.overlay,afterOpen:x.afterOpen,beforeClose:x.beforeClose},className:{base:m(x.content,ze(l),d&&x.floating),afterOpen:x.afterOpen,beforeClose:x.beforeClose},style:{content:{width:p,height:i,background:s},overlay:{zIndex:t}},parentSelector:a?()=>a:void 0,...h,children:n})},ze=s=>{switch(s){case"left":return x.slideFromLeft;case"right":return x.slideFromRight;case"top":return x.slideFromTop;case"bottom":return x.slideFromBottom;default:return o.exhaustSwitchCase(s,x.slideFromLeft)}},We=({header:s,contentRight:t,onRequestClose:n,icon:l})=>e.jsx(o.Spacing,{position:"sticky",top:0,zIndex:100,background:he.cssColor("--lhds-color-ui-50"),children:e.jsxs(o.Row,{justifyContent:"space-between",alignItems:"center",height:"48px",children:[e.jsxs(o.Row,{alignItems:"center",gap:2,children:[e.jsx(o.Space,{num:1}),l&&e.jsx(w.Icon,{icon:l,size:24}),e.jsx(o.Heading,{variant:"h4",children:s})]}),e.jsxs(o.Row,{gap:1,children:[t,e.jsx(w.FlatButton,{leftIcon:w.stenaTimes,onClick:n,variant:"danger"}),e.jsx(o.Space,{num:.5})]})]})}),qe="_overlay_1gix5_1",Te="_fadeIn_1gix5_1",He="_modal_1gix5_31",Ge="_content_1gix5_38",Pe="_appear_1gix5_1",Re="_isDraggable_1gix5_61",Ve="_footer_1gix5_92",Xe="_stickyFooter_1gix5_96",P={overlay:qe,fadeIn:Te,modal:He,content:Ge,appear:Pe,isDraggable:Re,footer:Ve,stickyFooter:Xe},Ye={overlay:{justifyContent:"center"}},Je=({children:s,...t})=>e.jsx(B,{overlayClassName:P.overlay,className:P.modal,style:Ye,...t,children:e.jsx("div",{className:P.content,style:{"--swui-modal-width":"fit-content"},children:s})}),Ke="_overlay_1lu6i_1",Qe="_afterOpen_1lu6i_24",Ue="_beforeClose_1lu6i_24",Ze="_fadeIn_1lu6i_1",et="_fadeOut_1lu6i_1",tt="_modal_1lu6i_36",st="_slideIn_1lu6i_1",nt="_slideOut_1lu6i_1",ot="_content_1lu6i_59",lt="_footer_1lu6i_148",rt="_stickyFooter_1lu6i_152",N={overlay:Ke,afterOpen:Qe,beforeClose:Ue,fadeIn:Ze,fadeOut:et,modal:tt,slideIn:st,slideOut:nt,content:ot,footer:lt,stickyFooter:rt},se=/^((?!chrome|android).)*safari/i.test(navigator.userAgent),ae=({children:s,background:t,...n})=>{const l=r.useRef(null),[a,d]=r.useState(se?"auto":void 0),h={overlay:{justifyContent:"center"},content:{"--swui-modal-content-bg-color":t}},i=o.useEventCallback(()=>{if(!se)return;const p=l.current;p&&d(p.scrollHeight>p.clientHeight?"stable":"auto")});return r.useEffect(()=>(window.addEventListener("resize",i),document.addEventListener("DOMContentLoaded",i),()=>{window.removeEventListener("resize",i),document.removeEventListener("DOMContentLoaded",i)}),[i]),e.jsx(B,{overlayClassName:{base:N.overlay,beforeClose:N.beforeClose,afterOpen:N.afterOpen},className:{base:N.modal,beforeClose:N.beforeClose,afterOpen:N.afterOpen},style:h,closeTimeoutMS:250,onAfterOpen:i,...n,children:e.jsx("div",{className:N.content,style:{"--swui-modal-width":"fit-content",scrollbarGutter:a},ref:l,children:s})})},at="_modal_4fwgb_1",ct="_overlay_4fwgb_13",ne={modal:at,overlay:ct},it=({headerIconLeft:s,headerText:t,shouldCloseOnOverlayClick:n=!1,shouldCloseOnEsc:l=!1,...a})=>e.jsx(B,{...a,isOpen:!0,shouldCloseOnOverlayClick:n,shouldCloseOnEsc:l,className:ne.modal,overlayClassName:ne.overlay,children:e.jsxs(o.Column,{spacing:2,alignItems:"center",children:[e.jsx(o.Box,{alignItems:"center",justifyContent:"center",width:"64px",height:"64px",borderRadius:"50%",background:"white",shadow:"modal",children:e.jsx(w.Spinner,{size:"small"})}),(s||t)&&e.jsxs(e.Fragment,{children:[e.jsx(o.Spacing,{}),e.jsxs(o.Row,{indent:2,children:[s&&e.jsxs(e.Fragment,{children:[e.jsx(w.Icon,{size:14,icon:s,color:"white"}),e.jsx(o.Indent,{})]}),t&&e.jsx(o.Heading,{variant:"h4",color:"white",children:t})]})]})]})}),ce=({onRequestClose:s,header:t,headerText:n,closeButtonClassName:l})=>e.jsxs(o.Row,{spacing:2,indent:2,borderBottom:"1px solid var(--lhds-color-ui-300)",className:X,children:[e.jsxs(o.Row,{flex:1,indent:!0,alignItems:"center",children:[n&&e.jsx(o.Txt,{className:Y,size:"large",children:n}),t]}),e.jsx(o.Box,{alignSelf:"flex-start",children:e.jsx(w.CloseButton,{className:l,onClick:s})})]}),dt=({header:s,headerText:t,children:n,spacing:l,indent:a,draggable:d=!1,onRequestClose:h,closeButtonClassName:i,footer:p,disableStickyFooter:C=!1,...g})=>{const A=typeof l=="number"?l:1,F=typeof a=="number"?a:1;return e.jsxs(re,{...g,onRequestClose:h,draggable:d,children:[e.jsx(ce,{onRequestClose:h,header:s,headerText:t,closeButtonClassName:i}),e.jsx(o.Box,{spacing:A,indent:F,children:n}),p&&e.jsx(o.Box,{className:m($.footer,{[$.stickyFooter]:!C}),children:p})]})},ut=({children:s})=>e.jsx(o.Column,{indent:2,spacing:2,children:s}),k=r.createContext(void 0);function S(s,{ref:t,modal:n,contentWrapperClassName:l,closingClassName:a,contentWrapperStyle:d,dialogStyle:h,divInsteadOfDialog:i,disableCloseOnClickOutside:p,onResolve:C,onReject:g,className:A,background:F,label:E,labelledby:z,describedby:W}){const _e=r.useRef(null),f=t??_e,[q,me]=r.useReducer(c=>c+1,0),K=r.useRef(null),v=r.useRef(null),b=r.useRef(void 0),y=r.useRef(null),[Q,M]=r.useState(!1),[T,O]=r.useState(!1),[U,j]=r.useState(!1),H=s,fe=r.useCallback(c=>{var u,_;return K.current=new Promise((D,ge)=>{v.current=D,y.current=ge}),j(!1),M(!0),O(!0),me(),b.current=c,n?(u=f.current)==null||u.showModal():(_=f.current)==null||_.show(),K.current},[f,n]),Z=r.useCallback(c=>{var u;j(!0),M(!1),i?setTimeout(()=>{var _;j(!1),O(!1),(_=v.current)==null||_.call(v,c),b.current=void 0,C==null||C()},300):(u=f.current)==null||u.addEventListener("animationend",()=>{var _,D;j(!1),O(!1),(_=f.current)==null||_.close(),(D=v.current)==null||D.call(v,c),b.current=void 0,C==null||C()},{once:!0})},[f,C,i]),ee=r.useCallback(()=>{var c;j(!1),M(!1),O(!1),(c=y.current)==null||c.call(y),g==null||g(),b.current=void 0},[g]),I=r.useCallback(c=>{var u;j(!0),M(!1),i?setTimeout(()=>{var _;j(!1),O(!1),(_=y.current)==null||_.call(y,c),g==null||g(),b.current=void 0},300):(u=f.current)==null||u.addEventListener("animationend",()=>{var _,D;j(!1),O(!1),(_=f.current)==null||_.close(),(D=y.current)==null||D.call(y,c),g==null||g(),b.current=void 0},{once:!0})},[f,i,g]),te=r.useCallback(c=>{if(c.target!==f.current)return;const u=f.current.getBoundingClientRect();u.top<=c.clientY&&c.clientY<=u.top+u.height&&u.left<=c.clientX&&c.clientX<=u.left+u.width||I()},[f,I]),G=r.useMemo(()=>({resolve:Z,reject:I}),[I,Z]);return[r.useMemo(()=>i?e.jsx(ae,{isOpen:Q,onRequestClose:I,background:F,contentLabel:E,aria:{modal:!0,labelledby:z,describedby:W},children:e.jsx(k.Provider,{value:G,children:T&&r.createElement(H,{...b.current,key:q})})}):e.jsx("dialog",{onClick:p?void 0:te,onClose:ee,ref:f,className:m(A,U&&a),"aria-label":E,"aria-labelledby":z,"aria-describedby":W,style:{background:F,...h},children:e.jsx("div",{style:d,className:l,children:T&&e.jsx(k.Provider,{value:G,children:r.createElement(H,{...b.current,key:q})})})}),[i,Q,I,F,E,z,W,G,T,H,q,p,te,ee,f,A,U,a,h,d,l]),{show:fe,reject:I}]}const _t=()=>{const s=r.useContext(k);if(s==null)throw new Error("useDialogPromise is being used outside of dialog.");return s},mt="_alertDialog_14t8t_1",ft="_slideIn_14t8t_1",gt="_closing_14t8t_22",xt="_slideOut_14t8t_1",ht="_fadeIn_14t8t_1",pt="_fadeOut_14t8t_1",R={alertDialog:mt,slideIn:ft,closing:gt,slideOut:xt,fadeIn:ht,fadeOut:pt};function yt(s,t){return S(s,{...t,modal:!0,closingClassName:m(t==null?void 0:t.closingClassName,R.closing),contentWrapperClassName:m(t==null?void 0:t.contentWrapperClassName,R.contentWrapper),className:m(t==null?void 0:t.className,R.alertDialog)})}const Ct="_drawerDialog_11g6r_1",wt="_left_11g6r_13",bt="_right_11g6r_14",jt="_contentWrapper_11g6r_19",vt="_slideInLeft_11g6r_1",It="_closing_11g6r_36",Dt="_slideOutLeft_11g6r_1",Nt="_slideInRight_11g6r_1",Ot="_slideOutRight_11g6r_1",$t="_top_11g6r_54",Bt="_bottom_11g6r_55",Ft="_slideInTop_11g6r_1",At="_slideOutTop_11g6r_1",Mt="_slideInBottom_11g6r_1",Lt="_slideOutBottom_11g6r_1",L={drawerDialog:Ct,left:wt,right:bt,contentWrapper:jt,slideInLeft:vt,closing:It,slideOutLeft:Dt,slideInRight:Nt,slideOutRight:Ot,top:$t,bottom:Bt,slideInTop:Ft,slideOutTop:At,slideInBottom:Mt,slideOutBottom:Lt};function kt(s,t="left",n){return S(s,{...n,disableCloseOnClickOutside:!0,modal:!1,closingClassName:m(n==null?void 0:n.closingClassName,L.closing),contentWrapperClassName:m(n==null?void 0:n.contentWrapperClassName,L.contentWrapper),className:m(n==null?void 0:n.className,L.drawerDialog,L[t])})}const St="_modalDialog_1teni_1",Et="_slideIn_1teni_1",zt="_closing_1teni_36",Wt="_slideOut_1teni_1",qt="_fadeIn_1teni_1",Tt="_fadeOut_1teni_1",Ht="_contentWrapper_1teni_100",V={modalDialog:St,slideIn:Et,closing:zt,slideOut:Wt,fadeIn:qt,fadeOut:Tt,contentWrapper:Ht};function Gt(s,t){return S(s,{...t,modal:!0,closingClassName:m(t==null?void 0:t.closingClassName,V.closing),contentWrapperClassName:m(t==null?void 0:t.contentWrapperClassName,V.contentWrapper),className:m(t==null?void 0:t.className,V.modalDialog)})}const J=({headingLevel:s="h2",size:t="medium",children:n})=>e.jsx(o.Heading,{variant:t==="medium"?"h3":"h1",as:s,children:n}),Pt="_modalActionButtons_s27nj_1",Rt={modalActionButtons:Pt},ie=({children:s})=>e.jsxs(o.Box,{width:"100%",children:[e.jsx(o.Spacing,{}),e.jsx("div",{className:Rt.modalActionButtons,children:s})]}),Vt="_modalBody_ozynq_1",oe={modalBody:Vt},de=({gap:s=3,variant:t="normal",className:n,...l})=>e.jsx(o.Column,{className:m(oe.modalBody,oe[t],n),indent:t==="relaxed"?5:3,spacing:t==="relaxed"?5:3,gap:s,...l}),ue=({children:s,maxWidth:t})=>e.jsx(o.Column,{flex:1,height:"100%",justifyContent:"space-between",maxWidth:t,children:s}),Xt=({icon:s,buttons:t,heading:n,text:l,children:a,maxWidth:d,minWidth:h})=>e.jsx(ue,{children:e.jsxs(de,{flexDirection:"column",alignItems:"center",maxWidth:d,minWidth:h,children:[s&&e.jsx(w.CircledIcon,{icon:s,size:"large"}),e.jsx(J,{children:n}),l&&e.jsx(o.Text,{textAlign:"center",children:l}),a,t&&e.jsx(ie,{children:t})]})}),Yt=s=>e.jsx(w.FlatButton,{size:"large",variant:"danger",leftIcon:w.stenaTimesThick,...s}),Jt=({heading:s,headingLevel:t,headingSize:n,onClickClose:l,closeButtonAriaLabel:a})=>e.jsx(o.Column,{children:e.jsxs(o.Row,{justifyContent:"space-between",alignItems:"center",gap:2,children:[s?e.jsx(J,{headingLevel:t,size:n,children:s}):e.jsx("div",{}),l?e.jsx(Yt,{onClick:l,size:n,"aria-label":a}):null]})}),Kt="_modalFooter_1vp0i_1",Qt="_sticky_1vp0i_9",le={modalFooter:Kt,sticky:Qt},Ut=({children:s,sticky:t,zIndex:n=4,gap:l=2,className:a,...d})=>e.jsx(o.Row,{className:m(le.modalFooter,t&&le.sticky,a),shadow:"var(--swui-sticky-footer-shadow)",zIndex:n,...d,children:e.jsx(o.Row,{gap:l,spacing:2,alignItems:"center",children:s})});exports.Alert=Je;exports.BaseWindow=re;exports.DRAGGABLE_CANCEL_CLASSNAME=Y;exports.DRAGGABLE_HANDLE_CLASSNAME=X;exports.DialogContext=k;exports.Drawer=Ee;exports.DrawerHeader=We;exports.InfoAlert=Xt;exports.LoadingModal=it;exports.Modal=ae;exports.ModalActionButtons=ie;exports.ModalBody=de;exports.ModalContainer=ue;exports.ModalFooter=Ut;exports.ModalHeader=Jt;exports.ModalHeading=J;exports.Window=dt;exports.WindowFooter=ut;exports.WindowHeader=ce;exports.setupDeclarativeModals=pe;exports.useAlertDialog=yt;exports.useDialog=S;exports.useDialogPromise=_t;exports.useDrawerDialog=kt;exports.useModalDialog=Gt;
3
3
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/declarative-modals/DeclarativeModalSetup.ts","../src/declarative-modals/window/BaseWindow.tsx","../src/declarative-modals/drawer/Drawer.tsx","../src/declarative-modals/drawer/DrawerHeader.tsx","../src/declarative-modals/alert/Alert.tsx","../src/declarative-modals/modal/Modal.tsx","../src/declarative-modals/loading-modal/LoadingModal.tsx","../src/declarative-modals/window/WindowHeader.tsx","../src/declarative-modals/window/Window.tsx","../src/declarative-modals/window/WindowFooter.tsx","../src/dialog/DialogContext.ts","../src/dialog/UseDialog.tsx","../src/dialog/UseDialogPromise.ts","../src/dialog/alert/UseAlertDialog.ts","../src/dialog/drawer/UseDrawerDialog.ts","../src/dialog/modal/UseModalDialog.ts","../src/building-blocks/ModalHeading.tsx","../src/building-blocks/ModalActionButtons.tsx","../src/building-blocks/ModalBody.tsx","../src/building-blocks/ModalContainer.tsx","../src/ready-made-modals/InfoAlert.tsx","../src/building-blocks/ModalCloseButton.tsx","../src/building-blocks/ModalHeader.tsx","../src/building-blocks/ModalFooter.tsx"],"sourcesContent":["import ReactModal from \"react-modal\";\n\nexport const setupDeclarativeModals = (htmlElement: string | HTMLElement) => {\n ReactModal.setAppElement(htmlElement);\n};\n","import * as React from \"react\";\nimport { useRef } from \"react\";\nimport ReactModal from \"react-modal\";\nimport Draggable from \"react-draggable\";\nimport cx from \"classnames\";\nimport styles from \"./Window.module.css\";\n\nexport interface BaseWindowProps extends ReactModal.Props {\n width?: string;\n maxWidth?: string;\n onRequestClose?: () => void;\n draggable?: boolean;\n}\n\nexport const DRAGGABLE_HANDLE_CLASSNAME = \"draggable-modal-handle\";\nexport const DRAGGABLE_CANCEL_CLASSNAME = \"draggable-modal-cancel\";\n\nexport const BaseWindow: React.FC<BaseWindowProps> = ({\n width,\n maxWidth,\n draggable = false,\n children,\n ...reactModalProps\n}) => {\n const nodeRef = useRef<HTMLDivElement>(null);\n return (\n <ReactModal\n overlayClassName={styles.overlay}\n className={styles.modal}\n {...reactModalProps}\n >\n <Draggable\n handle={`.${DRAGGABLE_HANDLE_CLASSNAME}`}\n cancel={`.${DRAGGABLE_CANCEL_CLASSNAME}, button, [role=\"tooltip\"]`}\n bounds=\".ReactModal__Overlay\"\n disabled={!draggable}\n nodeRef={nodeRef as React.RefObject<HTMLElement>}\n >\n <div\n style={{\n [\"--swui-modal-width\" as string]: width,\n [\"--swui-modal-max-width\" as string]: maxWidth,\n }}\n className={cx(styles.content, {\n [styles.isDraggable]: draggable,\n })}\n ref={nodeRef}\n >\n {children}\n </div>\n </Draggable>\n </ReactModal>\n );\n};\n","import * as React from \"react\";\nimport ReactModal from \"react-modal\";\nimport cx from \"classnames\";\nimport styles from \"./Drawer.module.css\";\nimport { exhaustSwitchCase, FlattenUnion } from \"@stenajs-webui/core\";\nimport {\n SlideFrom,\n SlideFromLeftRight,\n SlideFromTopBottom,\n} from \"../../common-types\";\n\nexport type DrawerProps = DrawerBaseLeftRight | DrawerBaseTopBottom;\n\ninterface DrawerBaseLeftRight extends DrawerBaseProps {\n width?: string;\n /**\n * Which direction the drawer will appear from.\n * @default left\n * @param {String('left'|'right')}\n */\n slideFrom?: SlideFromLeftRight;\n}\n\ninterface DrawerBaseTopBottom extends DrawerBaseProps {\n height?: string;\n /**\n * Which direction the drawer will appear from.\n * @default left\n * @param {String('top'|'bottom')}\n */\n slideFrom?: SlideFromTopBottom;\n}\n\ninterface DrawerBaseProps\n extends Omit<\n ReactModal.Props,\n | \"closeTimeoutMS\"\n | \"portalClassName\"\n | \"overlayClassName\"\n | \"className\"\n | \"style\"\n | \"parentSelector\"\n > {\n background?: string;\n\n /**\n * When true, there will be a gap between the drawer and the viewport.\n */\n floating?: boolean;\n\n zIndex?: number;\n onRequestClose?: () => void;\n /**\n * Portal target, HTML element. If not set, portal is not used.\n */\n portalTarget?: HTMLElement | null;\n}\n\nexport const Drawer: React.FC<DrawerProps> = ({\n background,\n zIndex,\n children,\n slideFrom = \"left\",\n portalTarget,\n floating,\n ...reactModalProps\n}) => {\n const { height, width } = reactModalProps as FlattenUnion<DrawerProps>;\n\n return (\n <ReactModal\n closeTimeoutMS={250}\n portalClassName={styles.portal}\n overlayClassName={{\n base: styles.overlay,\n afterOpen: styles.afterOpen,\n beforeClose: styles.beforeClose,\n }}\n className={{\n base: cx(\n styles.content,\n getClassNameForSlide(slideFrom),\n floating && styles.floating,\n ),\n afterOpen: styles.afterOpen,\n beforeClose: styles.beforeClose,\n }}\n style={{ content: { width, height, background }, overlay: { zIndex } }}\n parentSelector={portalTarget ? () => portalTarget : undefined}\n {...reactModalProps}\n >\n {children}\n </ReactModal>\n );\n};\n\nconst getClassNameForSlide = (slideFrom: SlideFrom): string => {\n switch (slideFrom) {\n case \"left\":\n return styles.slideFromLeft;\n case \"right\":\n return styles.slideFromRight;\n case \"top\":\n return styles.slideFromTop;\n case \"bottom\":\n return styles.slideFromBottom;\n default:\n return exhaustSwitchCase(slideFrom, styles.slideFromLeft);\n }\n};\n","import * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport { Heading, Row, Space, Spacing } from \"@stenajs-webui/core\";\nimport { FlatButton, Icon, stenaTimes } from \"@stenajs-webui/elements\";\nimport { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\nimport { cssColor } from \"@stenajs-webui/theme\";\n\nexport interface DrawerHeaderProps {\n onRequestClose: () => void;\n header?: string;\n contentRight?: ReactNode;\n icon?: IconDefinition;\n}\n\nexport const DrawerHeader: React.FC<DrawerHeaderProps> = ({\n header,\n contentRight,\n onRequestClose,\n icon,\n}) => {\n return (\n <Spacing\n position={\"sticky\"}\n top={0}\n zIndex={100}\n background={cssColor(\"--lhds-color-ui-50\")}\n >\n <Row\n justifyContent={\"space-between\"}\n alignItems={\"center\"}\n height={\"48px\"}\n >\n <Row alignItems={\"center\"} gap={2}>\n <Space num={1} />\n {icon && <Icon icon={icon} size={24} />}\n <Heading variant={\"h4\"}>{header}</Heading>\n </Row>\n <Row gap={1}>\n {contentRight}\n <FlatButton\n leftIcon={stenaTimes}\n onClick={onRequestClose}\n variant={\"danger\"}\n />\n <Space num={0.5} />\n </Row>\n </Row>\n </Spacing>\n );\n};\n","import * as React from \"react\";\nimport ReactModal from \"react-modal\";\n\nimport styles from \"./Alert.module.css\";\n\nexport interface AlertProps extends ReactModal.Props {\n onRequestClose?: () => void;\n}\n\nconst style = { overlay: { justifyContent: \"center\" } };\n\nexport const Alert: React.FC<AlertProps> = ({\n children,\n ...reactModalProps\n}) => {\n return (\n <ReactModal\n overlayClassName={styles.overlay}\n className={styles.modal}\n style={style}\n {...reactModalProps}\n >\n <div\n className={styles.content}\n style={{ [\"--swui-modal-width\" as string]: \"fit-content\" }}\n >\n {children}\n </div>\n </ReactModal>\n );\n};\n","import * as React from \"react\";\nimport { CSSProperties, useEffect, useRef, useState } from \"react\";\nimport ReactModal from \"react-modal\";\n\nimport styles from \"./Modal.module.css\";\nimport { useEventCallback } from \"@stenajs-webui/core\";\n\nexport interface ModalProps extends ReactModal.Props {\n background?: string;\n onRequestClose?: () => void;\n}\n\nconst isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n\nexport const Modal: React.FC<ModalProps> = ({\n children,\n background,\n ...reactModalProps\n}) => {\n const ref = useRef<HTMLDivElement | null>(null);\n\n const [scrollbarGutter, setScrollbarGutter] = useState<\n \"auto\" | \"stable\" | undefined\n >(isSafari ? \"auto\" : undefined);\n\n const style = {\n overlay: { justifyContent: \"center\" },\n content: {\n \"--swui-modal-content-bg-color\": background,\n } as CSSProperties,\n };\n\n const updateScrollbarGutter = useEventCallback(() => {\n if (!isSafari) {\n return;\n }\n\n const container = ref.current;\n if (container) {\n setScrollbarGutter(\n container.scrollHeight > container.clientHeight ? \"stable\" : \"auto\",\n );\n }\n });\n\n /**\n * Applying scrollbar-gutter fixes a glitch in Safari where redraw\n * sometimes makes the modal change width (with or without gutter included in size calculation).\n * This causes the modal to jump around when hovering with mouse or resizing window.\n *\n * If this glitch is fixed in Safari, this code can be removed.\n */\n\n useEffect(() => {\n window.addEventListener(\"resize\", updateScrollbarGutter);\n document.addEventListener(\"DOMContentLoaded\", updateScrollbarGutter);\n return () => {\n window.removeEventListener(\"resize\", updateScrollbarGutter);\n document.removeEventListener(\"DOMContentLoaded\", updateScrollbarGutter);\n };\n }, [updateScrollbarGutter]);\n\n return (\n <ReactModal\n overlayClassName={{\n base: styles.overlay,\n beforeClose: styles.beforeClose,\n afterOpen: styles.afterOpen,\n }}\n className={{\n base: styles.modal,\n beforeClose: styles.beforeClose,\n afterOpen: styles.afterOpen,\n }}\n style={style}\n closeTimeoutMS={250}\n onAfterOpen={updateScrollbarGutter}\n {...reactModalProps}\n >\n <div\n className={styles.content}\n style={{\n [\"--swui-modal-width\" as string]: \"fit-content\",\n scrollbarGutter,\n }}\n ref={ref}\n >\n {children}\n </div>\n </ReactModal>\n );\n};\n","import { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\nimport {\n Box,\n Column,\n Heading,\n Indent,\n Row,\n Spacing,\n} from \"@stenajs-webui/core\";\nimport { Icon, Spinner } from \"@stenajs-webui/elements\";\nimport * as React from \"react\";\nimport ReactModal from \"react-modal\";\nimport styles from \"./LoadingModal.module.css\";\n\nexport interface LoadingModalProps extends Omit<ReactModal.Props, \"isOpen\"> {\n headerText?: string;\n headerIconLeft?: IconDefinition;\n}\n\nexport const LoadingModal: React.FC<LoadingModalProps> = ({\n headerIconLeft,\n headerText,\n shouldCloseOnOverlayClick = false,\n shouldCloseOnEsc = false,\n ...modalProps\n}) => {\n return (\n <ReactModal\n {...modalProps}\n isOpen\n shouldCloseOnOverlayClick={shouldCloseOnOverlayClick}\n shouldCloseOnEsc={shouldCloseOnEsc}\n className={styles.modal}\n overlayClassName={styles.overlay}\n >\n <Column spacing={2} alignItems={\"center\"}>\n <Box\n alignItems={\"center\"}\n justifyContent={\"center\"}\n width={\"64px\"}\n height={\"64px\"}\n borderRadius={\"50%\"}\n background={\"white\"}\n shadow={\"modal\"}\n >\n <Spinner size={\"small\"} />\n </Box>\n {(headerIconLeft || headerText) && (\n <>\n <Spacing />\n <Row indent={2}>\n {headerIconLeft && (\n <>\n <Icon size={14} icon={headerIconLeft} color={\"white\"} />\n <Indent />\n </>\n )}\n {headerText && (\n <Heading variant={\"h4\"} color={\"white\"}>\n {headerText}\n </Heading>\n )}\n </Row>\n </>\n )}\n </Column>\n </ReactModal>\n );\n};\n","import { CloseButton } from \"@stenajs-webui/elements\";\nimport * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport {\n DRAGGABLE_CANCEL_CLASSNAME,\n DRAGGABLE_HANDLE_CLASSNAME,\n} from \"./BaseWindow\";\nimport { Box, Row, Txt } from \"@stenajs-webui/core\";\n\nexport interface WindowHeaderProps {\n onRequestClose?: () => void;\n header?: ReactNode;\n headerText?: string;\n closeButtonClassName?: string;\n}\n\nexport const WindowHeader: React.FC<WindowHeaderProps> = ({\n onRequestClose,\n header,\n headerText,\n closeButtonClassName,\n}) => {\n return (\n <Row\n spacing={2}\n indent={2}\n borderBottom={\"1px solid var(--lhds-color-ui-300)\"}\n className={DRAGGABLE_HANDLE_CLASSNAME}\n >\n <Row flex={1} indent alignItems={\"center\"}>\n {headerText && (\n <Txt className={DRAGGABLE_CANCEL_CLASSNAME} size={\"large\"}>\n {headerText}\n </Txt>\n )}\n {header}\n </Row>\n <Box alignSelf={\"flex-start\"}>\n <CloseButton\n className={closeButtonClassName}\n onClick={onRequestClose}\n />\n </Box>\n </Row>\n );\n};\n","import { Box } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { BaseWindow, BaseWindowProps } from \"./BaseWindow\";\nimport { WindowHeader, WindowHeaderProps } from \"./WindowHeader\";\nimport cx from \"classnames\";\nimport styles from \"./Window.module.css\";\n\nexport interface WindowProps extends BaseWindowProps, WindowHeaderProps {\n spacing?: number;\n indent?: number;\n draggable?: boolean;\n footer?: React.ReactNode;\n disableStickyFooter?: boolean;\n}\n\nexport const Window: React.FC<WindowProps> = ({\n header,\n headerText,\n children,\n spacing,\n indent,\n draggable = false,\n onRequestClose,\n closeButtonClassName,\n footer,\n disableStickyFooter = false,\n ...props\n}) => {\n const activeSpacing = typeof spacing === \"number\" ? spacing : 1;\n const activeIndent = typeof indent === \"number\" ? indent : 1;\n\n return (\n <BaseWindow\n {...props}\n onRequestClose={onRequestClose}\n draggable={draggable}\n >\n <WindowHeader\n onRequestClose={onRequestClose}\n header={header}\n headerText={headerText}\n closeButtonClassName={closeButtonClassName}\n />\n <Box spacing={activeSpacing} indent={activeIndent}>\n {children}\n </Box>\n {footer && (\n <Box\n className={cx(styles.footer, {\n [styles.stickyFooter]: !disableStickyFooter,\n })}\n >\n {footer}\n </Box>\n )}\n </BaseWindow>\n );\n};\n","import { Column } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { ReactNode } from \"react\";\n\nexport interface WindowFooterProps {\n children?: ReactNode;\n}\n\nexport const WindowFooter: React.FC<WindowFooterProps> = ({ children }) => (\n <Column indent={2} spacing={2}>\n {children}\n </Column>\n);\n","import { createContext } from \"react\";\nimport { RejectCommand, ResolveCommand } from \"./DialogCommands\";\n\nexport interface DialogContextValue<TResolveValue> {\n resolve: ResolveCommand<TResolveValue>;\n reject: RejectCommand;\n}\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nexport const DialogContext = createContext<DialogContextValue<any> | undefined>(\n undefined,\n);\n","import cx from \"classnames\";\nimport React, {\n CSSProperties,\n MouseEventHandler,\n ReactNode,\n RefObject,\n useCallback,\n useMemo,\n useReducer,\n useRef,\n useState,\n} from \"react\";\nimport { RejectCommand, ResolveCommand, ShowCommand } from \"./DialogCommands\";\nimport { DialogContext, DialogContextValue } from \"./DialogContext\";\nimport { Modal } from \"../declarative-modals/modal/Modal\";\n\ntype UseDialogCallbacks<TProps, TPromiseResolve> = {\n show: ShowCommand<TProps, TPromiseResolve>;\n reject: RejectCommand;\n};\n\nexport type UseDialogResult<TProps, TPromiseResolve> = [\n ReactNode,\n UseDialogCallbacks<TProps, TPromiseResolve>,\n];\n\nexport interface DialogOptions {\n divInsteadOfDialog?: boolean;\n background?: string;\n disableCloseOnClickOutside?: boolean;\n modal: boolean;\n className: string;\n closingClassName: string;\n contentWrapperClassName: string;\n contentWrapperStyle?: CSSProperties;\n dialogStyle?: CSSProperties;\n ref?: RefObject<HTMLDialogElement | null>;\n onResolve?: () => void;\n onReject?: () => void;\n /**\n * Sets aria-label on modal or dialog element.\n */\n label?: string;\n /**\n * Sets aria-labelledby on modal or dialog element.\n */\n labelledby?: string;\n /**\n * Sets aria-describedby on modal or dialog element.\n */\n describedby?: string;\n}\n\nexport function useDialog<TProps, TPromiseResolve = void>(\n component: React.FC<TProps>,\n {\n ref,\n modal,\n contentWrapperClassName,\n closingClassName,\n contentWrapperStyle,\n dialogStyle,\n divInsteadOfDialog,\n disableCloseOnClickOutside,\n onResolve,\n onReject,\n className,\n background,\n label,\n labelledby,\n describedby,\n }: DialogOptions,\n): UseDialogResult<TProps, TPromiseResolve> {\n const localRef = useRef<HTMLDialogElement>(null);\n const currentRef = ref ?? localRef;\n const [key, forceRerender] = useReducer((x) => x + 1, 0);\n const promiseRef = useRef<Promise<TPromiseResolve | undefined>>(null);\n const resolveRef = useRef<ResolveCommand<TPromiseResolve> | undefined>(null);\n const modalComponentProps = useRef<TProps>(undefined);\n const rejectRef = useRef<RejectCommand | undefined>(null);\n /**\n * Used by Modal to control open/close with animation.\n */\n const [isOpen, setIsOpen] = useState(false);\n /**\n * Used by both Modal and dialog to decide if content is visible. When props is cleared, we can not render content that requires props.\n */\n const [contentVisible, setContentVisible] = useState(false);\n /**\n * Used by dialog to know if it is currently animating to closed state.\n */\n const [closing, setClosing] = useState(false);\n\n const Comp = component;\n\n const show = useCallback<ShowCommand<TProps, TPromiseResolve>>(\n (props?: TProps) => {\n promiseRef.current = new Promise<TPromiseResolve | undefined>(\n (resolve, reject) => {\n resolveRef.current = resolve;\n rejectRef.current = reject;\n },\n );\n setClosing(false);\n setIsOpen(true);\n setContentVisible(true);\n forceRerender();\n modalComponentProps.current = props;\n if (modal) {\n currentRef.current?.showModal();\n } else {\n currentRef.current?.show();\n }\n return promiseRef.current;\n },\n [currentRef, modal],\n );\n\n const resolve = useCallback<ResolveCommand<TPromiseResolve>>(\n (value) => {\n // Trigger closing animation.\n setClosing(true);\n setIsOpen(false);\n if (!divInsteadOfDialog) {\n currentRef.current?.addEventListener(\n \"animationend\",\n () => {\n setClosing(false);\n setContentVisible(false);\n currentRef.current?.close();\n resolveRef.current?.(value);\n modalComponentProps.current = undefined;\n onResolve?.();\n },\n { once: true },\n );\n } else {\n setTimeout(() => {\n setClosing(false);\n setContentVisible(false);\n resolveRef.current?.(value);\n modalComponentProps.current = undefined;\n onResolve?.();\n }, 300);\n }\n },\n [currentRef, onResolve, divInsteadOfDialog],\n );\n\n const onClose = useCallback(() => {\n // Remove content immediately, since it cannot be animated when closed by browser.\n setClosing(false);\n setIsOpen(false);\n setContentVisible(false);\n rejectRef.current?.();\n onReject?.();\n modalComponentProps.current = undefined;\n }, [onReject]);\n\n const reject = useCallback<RejectCommand>(\n (error) => {\n // Trigger closing animation.\n setClosing(true);\n setIsOpen(false);\n if (!divInsteadOfDialog) {\n currentRef.current?.addEventListener(\n \"animationend\",\n () => {\n setClosing(false);\n setContentVisible(false);\n currentRef.current?.close();\n rejectRef.current?.(error);\n onReject?.();\n modalComponentProps.current = undefined;\n },\n { once: true },\n );\n } else {\n setTimeout(() => {\n setClosing(false);\n setContentVisible(false);\n rejectRef.current?.(error);\n onReject?.();\n modalComponentProps.current = undefined;\n }, 300);\n }\n },\n [currentRef, divInsteadOfDialog, onReject],\n );\n\n const onClick = useCallback<MouseEventHandler<HTMLDialogElement>>(\n (e) => {\n if (e.target !== currentRef.current) {\n return;\n }\n\n const rect = currentRef.current.getBoundingClientRect();\n\n const clickedInsideDialog =\n rect.top <= e.clientY &&\n e.clientY <= rect.top + rect.height &&\n rect.left <= e.clientX &&\n e.clientX <= rect.left + rect.width;\n\n if (!clickedInsideDialog) {\n reject();\n }\n },\n [currentRef, reject],\n );\n\n const contextValue = useMemo(\n () => ({ resolve, reject }) as DialogContextValue<unknown>,\n [reject, resolve],\n );\n\n const element = useMemo<ReactNode>(\n () =>\n divInsteadOfDialog ? (\n <Modal\n isOpen={isOpen}\n onRequestClose={reject}\n background={background}\n contentLabel={label}\n aria={{ modal: true, labelledby, describedby }}\n >\n <DialogContext.Provider value={contextValue}>\n {contentVisible && (\n <Comp {...(modalComponentProps.current as TProps)} key={key} />\n )}\n </DialogContext.Provider>\n </Modal>\n ) : (\n <dialog\n onClick={disableCloseOnClickOutside ? undefined : onClick}\n onClose={onClose}\n ref={currentRef}\n className={cx(className, closing && closingClassName)}\n aria-label={label}\n aria-labelledby={labelledby}\n aria-describedby={describedby}\n style={{ background: background, ...dialogStyle }}\n >\n <div style={contentWrapperStyle} className={contentWrapperClassName}>\n {contentVisible && (\n <DialogContext.Provider value={contextValue}>\n <Comp {...(modalComponentProps.current as TProps)} key={key} />\n </DialogContext.Provider>\n )}\n </div>\n </dialog>\n ),\n [\n divInsteadOfDialog,\n isOpen,\n reject,\n background,\n label,\n labelledby,\n describedby,\n contextValue,\n contentVisible,\n Comp,\n key,\n disableCloseOnClickOutside,\n onClick,\n onClose,\n currentRef,\n className,\n closing,\n closingClassName,\n dialogStyle,\n contentWrapperStyle,\n contentWrapperClassName,\n ],\n );\n\n return [element, { show, reject }];\n}\n","import { useContext } from \"react\";\nimport { DialogContext, DialogContextValue } from \"./DialogContext\";\n\nexport const useDialogPromise = <\n TResolveValue = void,\n>(): DialogContextValue<TResolveValue> => {\n const context = useContext(DialogContext);\n if (context == null) {\n throw new Error(\"useDialogPromise is being used outside of dialog.\");\n }\n return context as DialogContextValue<TResolveValue>;\n};\n","import * as React from \"react\";\nimport { DialogOptions, useDialog, UseDialogResult } from \"../UseDialog\";\nimport cx from \"classnames\";\nimport styles from \"./AlertDialog.module.css\";\n\nexport function useAlertDialog<TProps, TPromiseResolve = void>(\n component: React.FC<TProps>,\n options?: Partial<DialogOptions>,\n): UseDialogResult<TProps, TPromiseResolve> {\n return useDialog<TProps, TPromiseResolve>(component, {\n ...options,\n modal: true,\n closingClassName: cx(options?.closingClassName, styles.closing),\n contentWrapperClassName: cx(\n options?.contentWrapperClassName,\n styles.contentWrapper,\n ),\n className: cx(options?.className, styles.alertDialog),\n });\n}\n","import * as React from \"react\";\nimport { DialogOptions, useDialog, UseDialogResult } from \"../UseDialog\";\nimport cx from \"classnames\";\nimport styles from \"./DrawerDialog.module.css\";\nimport { SlideFrom } from \"../../common-types\";\n\ninterface DrawerOptions\n extends Partial<Omit<DialogOptions, \"disableCloseOnClickOutside\">> {}\n\nexport function useDrawerDialog<TProps, TPromiseResolve = void>(\n component: React.FC<TProps>,\n slideFrom: SlideFrom = \"left\",\n options?: DrawerOptions,\n): UseDialogResult<TProps, TPromiseResolve> {\n return useDialog<TProps, TPromiseResolve>(component, {\n ...options,\n disableCloseOnClickOutside: true,\n modal: false,\n closingClassName: cx(options?.closingClassName, styles.closing),\n contentWrapperClassName: cx(\n options?.contentWrapperClassName,\n styles.contentWrapper,\n ),\n className: cx(options?.className, styles.drawerDialog, styles[slideFrom]),\n });\n}\n","import * as React from \"react\";\nimport { DialogOptions, useDialog, UseDialogResult } from \"../UseDialog\";\nimport cx from \"classnames\";\nimport styles from \"./ModalDialog.module.css\";\n\nexport function useModalDialog<TProps, TPromiseResolve = void>(\n component: React.FC<TProps>,\n options?: Partial<DialogOptions>,\n): UseDialogResult<TProps, TPromiseResolve> {\n return useDialog<TProps, TPromiseResolve>(component, {\n ...options,\n modal: true,\n closingClassName: cx(options?.closingClassName, styles.closing),\n contentWrapperClassName: cx(\n options?.contentWrapperClassName,\n styles.contentWrapper,\n ),\n className: cx(options?.className, styles.modalDialog),\n });\n}\n","import * as React from \"react\";\nimport { Heading, HeadingVariant } from \"@stenajs-webui/core\";\n\nexport type ModalHeadingSizeVariant = \"medium\" | \"large\";\n\nexport interface ModalHeadingProps {\n size?: ModalHeadingSizeVariant;\n children: string;\n headingLevel?: HeadingVariant;\n}\n\nexport const ModalHeading: React.FC<ModalHeadingProps> = ({\n headingLevel = \"h2\",\n size = \"medium\",\n children,\n}) => {\n return (\n <Heading variant={size === \"medium\" ? \"h3\" : \"h1\"} as={headingLevel}>\n {children}\n </Heading>\n );\n};\n","import * as React from \"react\";\nimport { PropsWithChildren } from \"react\";\nimport styles from \"./ModalActionButtons.module.css\";\nimport { Box, Spacing } from \"@stenajs-webui/core\";\n\nexport interface ModalActionButtonsProps extends PropsWithChildren {}\n\nexport const ModalActionButtons: React.FC<ModalActionButtonsProps> = ({\n children,\n}) => {\n return (\n <Box width={\"100%\"}>\n <Spacing />\n <div className={styles.modalActionButtons}>{children}</div>\n </Box>\n );\n};\n","import * as React from \"react\";\nimport { BoxProps, Column } from \"@stenajs-webui/core\";\nimport styles from \"./ModalBody.module.css\";\nimport cx from \"classnames\";\n\nexport type ModalBodyVariant = \"normal\" | \"relaxed\";\n\nexport interface ModalBodyProps extends Omit<BoxProps, \"indent\" | \"spacing\"> {\n variant?: ModalBodyVariant;\n}\n\nexport const ModalBody: React.FC<ModalBodyProps> = ({\n gap = 3,\n variant = \"normal\",\n className,\n ...props\n}) => {\n return (\n <Column\n className={cx(styles.modalBody, styles[variant], className)}\n indent={variant === \"relaxed\" ? 5 : 3}\n spacing={variant === \"relaxed\" ? 5 : 3}\n gap={gap}\n {...props}\n />\n );\n};\n","import * as React from \"react\";\nimport { BoxProps, Column } from \"@stenajs-webui/core\";\nimport { PropsWithChildren } from \"react\";\n\nexport interface ModalContainerProps\n extends PropsWithChildren,\n Pick<BoxProps, \"maxWidth\"> {}\n\nexport const ModalContainer: React.FC<ModalContainerProps> = ({\n children,\n maxWidth,\n}) => {\n return (\n <Column\n flex={1}\n height={\"100%\"}\n justifyContent={\"space-between\"}\n maxWidth={maxWidth}\n >\n {children}\n </Column>\n );\n};\n","import * as React from \"react\";\nimport { PropsWithChildren, ReactNode } from \"react\";\nimport { Text } from \"@stenajs-webui/core\";\nimport { ModalHeading } from \"../building-blocks/ModalHeading\";\nimport { ModalActionButtons } from \"../building-blocks/ModalActionButtons\";\nimport { CircledIcon, MediumIcon } from \"@stenajs-webui/elements\";\nimport { ModalBody } from \"../building-blocks/ModalBody\";\nimport { ModalContainer } from \"../building-blocks/ModalContainer\";\n\nexport interface InfoAlertProps extends PropsWithChildren {\n heading: string;\n text?: string;\n buttons?: ReactNode;\n icon?: MediumIcon;\n onRequestClose?: () => void;\n maxWidth?: string;\n minWidth?: string;\n}\n\nexport const InfoAlert: React.FC<InfoAlertProps> = ({\n icon,\n buttons,\n heading,\n text,\n children,\n maxWidth,\n minWidth,\n}) => {\n return (\n <ModalContainer>\n <ModalBody\n flexDirection={\"column\"}\n alignItems={\"center\"}\n maxWidth={maxWidth}\n minWidth={minWidth}\n >\n {icon && <CircledIcon icon={icon} size={\"large\"} />}\n <ModalHeading>{heading}</ModalHeading>\n {text && <Text textAlign={\"center\"}>{text}</Text>}\n {children}\n {buttons && <ModalActionButtons>{buttons}</ModalActionButtons>}\n </ModalBody>\n </ModalContainer>\n );\n};\n","import * as React from \"react\";\nimport {\n FlatButton,\n FlatButtonProps,\n stenaTimesThick,\n} from \"@stenajs-webui/elements\";\n\nexport interface ModalCloseButtonProps extends FlatButtonProps {}\n\nexport const ModalCloseButton: React.FC<ModalCloseButtonProps> = (props) => {\n return (\n <FlatButton\n size={\"large\"}\n variant={\"danger\"}\n leftIcon={stenaTimesThick}\n {...props}\n />\n );\n};\n","import * as React from \"react\";\nimport { Column, HeadingVariant, Row } from \"@stenajs-webui/core\";\nimport { ModalHeading, ModalHeadingSizeVariant } from \"./ModalHeading\";\nimport { ModalCloseButton } from \"./ModalCloseButton\";\n\nexport type ModalHeaderProps =\n | ModalHeaderWithCloseButtonProps\n | ModalHeaderWithNoCloseButtonProps;\n\nexport interface ModalHeaderCommonProps {\n heading?: string;\n headingSize?: ModalHeadingSizeVariant;\n headingLevel?: HeadingVariant;\n}\n\nexport interface ModalHeaderWithCloseButtonProps\n extends ModalHeaderCommonProps {\n onClickClose?: never;\n closeButtonAriaLabel?: never;\n}\n\nexport interface ModalHeaderWithNoCloseButtonProps\n extends ModalHeaderCommonProps {\n onClickClose: () => void;\n closeButtonAriaLabel: string;\n}\n\nexport const ModalHeader: React.FC<ModalHeaderProps> = ({\n heading,\n headingLevel,\n headingSize,\n onClickClose,\n closeButtonAriaLabel,\n}) => {\n return (\n <Column>\n <Row justifyContent={\"space-between\"} alignItems={\"center\"}>\n {heading ? (\n <ModalHeading headingLevel={headingLevel} size={headingSize}>\n {heading}\n </ModalHeading>\n ) : (\n <div />\n )}\n {onClickClose ? (\n <ModalCloseButton\n onClick={onClickClose}\n size={headingSize}\n aria-label={closeButtonAriaLabel}\n />\n ) : null}\n </Row>\n </Column>\n );\n};\n","import { BoxProps, Row } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport styles from \"./ModalFooter.module.css\";\nimport cx from \"classnames\";\n\nexport interface ModalFooterProps extends BoxProps {\n sticky?: boolean;\n gap?: number;\n}\n\nexport const ModalFooter: React.FC<ModalFooterProps> = ({\n children,\n sticky,\n zIndex = 4,\n gap = 2,\n className,\n ...boxProps\n}) => {\n return (\n <Row\n className={cx(styles.modalFooter, sticky && styles.sticky, className)}\n shadow={\"var(--swui-sticky-footer-shadow)\"}\n zIndex={zIndex}\n {...boxProps}\n >\n <Row gap={gap} spacing={2} alignItems={\"center\"}>\n {children}\n </Row>\n </Row>\n );\n};\n"],"names":["setupDeclarativeModals","htmlElement","ReactModal","DRAGGABLE_HANDLE_CLASSNAME","DRAGGABLE_CANCEL_CLASSNAME","BaseWindow","width","maxWidth","draggable","children","reactModalProps","nodeRef","useRef","jsx","styles","Draggable","cx","Drawer","background","zIndex","slideFrom","portalTarget","floating","height","getClassNameForSlide","exhaustSwitchCase","DrawerHeader","header","contentRight","onRequestClose","icon","Spacing","cssColor","jsxs","Row","Space","Icon","Heading","FlatButton","stenaTimes","style","Alert","isSafari","Modal","ref","scrollbarGutter","setScrollbarGutter","useState","updateScrollbarGutter","useEventCallback","container","useEffect","LoadingModal","headerIconLeft","headerText","shouldCloseOnOverlayClick","shouldCloseOnEsc","modalProps","Column","Box","Spinner","Fragment","Indent","WindowHeader","closeButtonClassName","Txt","CloseButton","Window","spacing","indent","footer","disableStickyFooter","props","activeSpacing","activeIndent","WindowFooter","DialogContext","createContext","useDialog","component","modal","contentWrapperClassName","closingClassName","contentWrapperStyle","dialogStyle","divInsteadOfDialog","disableCloseOnClickOutside","onResolve","onReject","className","label","labelledby","describedby","localRef","currentRef","key","forceRerender","useReducer","x","promiseRef","resolveRef","modalComponentProps","rejectRef","isOpen","setIsOpen","contentVisible","setContentVisible","closing","setClosing","Comp","show","useCallback","resolve","reject","_a","_b","value","onClose","error","onClick","e","rect","contextValue","useMemo","createElement","useDialogPromise","context","useContext","useAlertDialog","options","useDrawerDialog","useModalDialog","ModalHeading","headingLevel","size","ModalActionButtons","ModalBody","gap","variant","ModalContainer","InfoAlert","buttons","heading","text","minWidth","CircledIcon","Text","ModalCloseButton","stenaTimesThick","ModalHeader","headingSize","onClickClose","closeButtonAriaLabel","ModalFooter","sticky","boxProps"],"mappings":"gUAEaA,GAA0BC,GAAsC,CAC3EC,EAAW,cAAcD,CAAW,CACtC,6RCUaE,EAA6B,yBAC7BC,EAA6B,yBAE7BC,GAAwC,CAAC,CACpD,MAAAC,EACA,SAAAC,EACA,UAAAC,EAAY,GACZ,SAAAC,EACA,GAAGC,CACL,IAAM,CACE,MAAAC,EAAUC,SAAuB,IAAI,EAEzC,OAAAC,EAAA,IAACX,EAAA,CACC,iBAAkBY,EAAO,QACzB,UAAWA,EAAO,MACjB,GAAGJ,EAEJ,SAAAG,EAAA,IAACE,GAAA,CACC,OAAQ,IAAIZ,CAA0B,GACtC,OAAQ,IAAIC,CAA0B,6BACtC,OAAO,uBACP,SAAU,CAACI,EACX,QAAAG,EAEA,SAAAE,EAAA,IAAC,MAAA,CACC,MAAO,CACJ,qBAAiCP,EACjC,yBAAqCC,CACxC,EACA,UAAWS,EAAGF,EAAO,QAAS,CAC5B,CAACA,EAAO,WAAW,EAAGN,CAAA,CACvB,EACD,IAAKG,EAEJ,SAAAF,CAAA,CAAA,CACH,CAAA,CACF,CACF,CAEJ,uZCKaQ,GAAgC,CAAC,CAC5C,WAAAC,EACA,OAAAC,EACA,SAAAV,EACA,UAAAW,EAAY,OACZ,aAAAC,EACA,SAAAC,EACA,GAAGZ,CACL,IAAM,CACE,KAAA,CAAE,OAAAa,EAAQ,MAAAjB,CAAA,EAAUI,EAGxB,OAAAG,EAAA,IAACX,EAAA,CACC,eAAgB,IAChB,gBAAiBY,EAAO,OACxB,iBAAkB,CAChB,KAAMA,EAAO,QACb,UAAWA,EAAO,UAClB,YAAaA,EAAO,WACtB,EACA,UAAW,CACT,KAAME,EACJF,EAAO,QACPU,GAAqBJ,CAAS,EAC9BE,GAAYR,EAAO,QACrB,EACA,UAAWA,EAAO,UAClB,YAAaA,EAAO,WACtB,EACA,MAAO,CAAE,QAAS,CAAE,MAAAR,EAAO,OAAAiB,EAAQ,WAAAL,GAAc,QAAS,CAAE,OAAAC,EAAS,EACrE,eAAgBE,EAAe,IAAMA,EAAe,OACnD,GAAGX,EAEH,SAAAD,CAAA,CACH,CAEJ,EAEMe,GAAwBJ,GAAiC,CAC7D,OAAQA,EAAW,CACjB,IAAK,OACH,OAAON,EAAO,cAChB,IAAK,QACH,OAAOA,EAAO,eAChB,IAAK,MACH,OAAOA,EAAO,aAChB,IAAK,SACH,OAAOA,EAAO,gBAChB,QACS,OAAAW,oBAAkBL,EAAWN,EAAO,aAAa,CAAA,CAE9D,EC/FaY,GAA4C,CAAC,CACxD,OAAAC,EACA,aAAAC,EACA,eAAAC,EACA,KAAAC,CACF,IAEIjB,EAAA,IAACkB,EAAA,QAAA,CACC,SAAU,SACV,IAAK,EACL,OAAQ,IACR,WAAYC,YAAS,oBAAoB,EAEzC,SAAAC,EAAA,KAACC,EAAA,IAAA,CACC,eAAgB,gBAChB,WAAY,SACZ,OAAQ,OAER,SAAA,CAAAD,EAAA,KAACC,EAAI,IAAA,CAAA,WAAY,SAAU,IAAK,EAC9B,SAAA,CAACrB,EAAAA,IAAAsB,EAAA,MAAA,CAAM,IAAK,CAAG,CAAA,EACdL,GAAQjB,EAAA,IAACuB,EAAK,KAAA,CAAA,KAAAN,EAAY,KAAM,GAAI,EACpCjB,EAAA,IAAAwB,EAAA,QAAA,CAAQ,QAAS,KAAO,SAAOV,CAAA,CAAA,CAAA,EAClC,EACAM,EAAAA,KAACC,EAAAA,IAAI,CAAA,IAAK,EACP,SAAA,CAAAN,EACDf,EAAA,IAACyB,EAAA,WAAA,CACC,SAAUC,EAAA,WACV,QAASV,EACT,QAAS,QAAA,CACX,EACAhB,EAAAA,IAACsB,EAAM,MAAA,CAAA,IAAK,EAAK,CAAA,CAAA,CACnB,CAAA,CAAA,CAAA,CAAA,CACF,CACF,2RCtCEK,GAAQ,CAAE,QAAS,CAAE,eAAgB,SAAW,EAEzCC,GAA8B,CAAC,CAC1C,SAAAhC,EACA,GAAGC,CACL,IAEIG,EAAA,IAACX,EAAA,CACC,iBAAkBY,EAAO,QACzB,UAAWA,EAAO,MAClB,MAAA0B,GACC,GAAG9B,EAEJ,SAAAG,EAAA,IAAC,MAAA,CACC,UAAWC,EAAO,QAClB,MAAO,CAAG,qBAAiC,aAAc,EAExD,SAAAL,CAAA,CAAA,CACH,CACF,yYChBEiC,GAAW,iCAAiC,KAAK,UAAU,SAAS,EAE7DC,GAA8B,CAAC,CAC1C,SAAAlC,EACA,WAAAS,EACA,GAAGR,CACL,IAAM,CACE,MAAAkC,EAAMhC,SAA8B,IAAI,EAExC,CAACiC,EAAiBC,CAAkB,EAAIC,EAE5C,SAAAL,GAAW,OAAS,MAAS,EAEzBF,EAAQ,CACZ,QAAS,CAAE,eAAgB,QAAS,EACpC,QAAS,CACP,gCAAiCtB,CAAA,CAErC,EAEM8B,EAAwBC,EAAAA,iBAAiB,IAAM,CACnD,GAAI,CAACP,GACH,OAGF,MAAMQ,EAAYN,EAAI,QAClBM,GACFJ,EACEI,EAAU,aAAeA,EAAU,aAAe,SAAW,MAC/D,CACF,CACD,EAUDC,OAAAA,EAAAA,UAAU,KACD,OAAA,iBAAiB,SAAUH,CAAqB,EAC9C,SAAA,iBAAiB,mBAAoBA,CAAqB,EAC5D,IAAM,CACJ,OAAA,oBAAoB,SAAUA,CAAqB,EACjD,SAAA,oBAAoB,mBAAoBA,CAAqB,CACxE,GACC,CAACA,CAAqB,CAAC,EAGxBnC,EAAA,IAACX,EAAA,CACC,iBAAkB,CAChB,KAAMY,EAAO,QACb,YAAaA,EAAO,YACpB,UAAWA,EAAO,SACpB,EACA,UAAW,CACT,KAAMA,EAAO,MACb,YAAaA,EAAO,YACpB,UAAWA,EAAO,SACpB,EACA,MAAA0B,EACA,eAAgB,IAChB,YAAaQ,EACZ,GAAGtC,EAEJ,SAAAG,EAAA,IAAC,MAAA,CACC,UAAWC,EAAO,QAClB,MAAO,CACJ,qBAAiC,cAClC,gBAAA+B,CACF,EACA,IAAAD,EAEC,SAAAnC,CAAA,CAAA,CACH,CACF,CAEJ,sECxEa2C,GAA4C,CAAC,CACxD,eAAAC,EACA,WAAAC,EACA,0BAAAC,EAA4B,GAC5B,iBAAAC,EAAmB,GACnB,GAAGC,CACL,IAEI5C,EAAA,IAACX,EAAA,CACE,GAAGuD,EACJ,OAAM,GACN,0BAAAF,EACA,iBAAAC,EACA,UAAW1C,GAAO,MAClB,iBAAkBA,GAAO,QAEzB,SAACmB,EAAAA,KAAAyB,EAAAA,OAAA,CAAO,QAAS,EAAG,WAAY,SAC9B,SAAA,CAAA7C,EAAA,IAAC8C,EAAA,IAAA,CACC,WAAY,SACZ,eAAgB,SAChB,MAAO,OACP,OAAQ,OACR,aAAc,MACd,WAAY,QACZ,OAAQ,QAER,SAAA9C,EAAAA,IAAC+C,EAAAA,QAAQ,CAAA,KAAM,OAAS,CAAA,CAAA,CAC1B,GACEP,GAAkBC,IAEhBrB,EAAA,KAAA4B,EAAA,SAAA,CAAA,SAAA,CAAAhD,EAAA,IAACkB,EAAQ,QAAA,EAAA,EACTE,EAAAA,KAACC,EAAAA,IAAI,CAAA,OAAQ,EACV,SAAA,CAAAmB,GAEGpB,EAAA,KAAA4B,WAAA,CAAA,SAAA,CAAAhD,MAACuB,EAAAA,MAAK,KAAM,GAAI,KAAMiB,EAAgB,MAAO,QAAS,QACrDS,EAAO,OAAA,CAAA,CAAA,CAAA,EACV,EAEDR,GACEzC,EAAAA,IAAAwB,EAAA,QAAA,CAAQ,QAAS,KAAM,MAAO,QAC5B,SACHiB,CAAA,CAAA,CAAA,CAEJ,CAAA,CAAA,CACF,CAAA,CAAA,CAEJ,CAAA,CAAA,CACF,EClDSS,GAA4C,CAAC,CACxD,eAAAlC,EACA,OAAAF,EACA,WAAA2B,EACA,qBAAAU,CACF,IAEI/B,EAAA,KAACC,EAAA,IAAA,CACC,QAAS,EACT,OAAQ,EACR,aAAc,qCACd,UAAW/B,EAEX,SAAA,CAAA8B,OAACC,EAAAA,KAAI,KAAM,EAAG,OAAM,GAAC,WAAY,SAC9B,SAAA,CAAAoB,SACEW,EAAI,IAAA,CAAA,UAAW7D,EAA4B,KAAM,QAC/C,SACHkD,EAAA,EAED3B,CAAA,EACH,EACAd,EAAAA,IAAC8C,EAAAA,IAAI,CAAA,UAAW,aACd,SAAA9C,EAAA,IAACqD,EAAA,YAAA,CACC,UAAWF,EACX,QAASnC,CAAA,CAAA,CAEb,CAAA,CAAA,CAAA,CACF,EC5BSsC,GAAgC,CAAC,CAC5C,OAAAxC,EACA,WAAA2B,EACA,SAAA7C,EACA,QAAA2D,EACA,OAAAC,EACA,UAAA7D,EAAY,GACZ,eAAAqB,EACA,qBAAAmC,EACA,OAAAM,EACA,oBAAAC,EAAsB,GACtB,GAAGC,CACL,IAAM,CACJ,MAAMC,EAAgB,OAAOL,GAAY,SAAWA,EAAU,EACxDM,EAAe,OAAOL,GAAW,SAAWA,EAAS,EAGzD,OAAApC,EAAA,KAAC5B,GAAA,CACE,GAAGmE,EACJ,eAAA3C,EACA,UAAArB,EAEA,SAAA,CAAAK,EAAA,IAACkD,GAAA,CACC,eAAAlC,EACA,OAAAF,EACA,WAAA2B,EACA,qBAAAU,CAAA,CACF,QACCL,EAAI,IAAA,CAAA,QAASc,EAAe,OAAQC,EAClC,SAAAjE,EACH,EACC6D,GACCzD,EAAA,IAAC8C,EAAA,IAAA,CACC,UAAW3C,EAAGF,EAAO,OAAQ,CAC3B,CAACA,EAAO,YAAY,EAAG,CAACyD,CAAA,CACzB,EAEA,SAAAD,CAAA,CAAA,CACH,CAAA,CAEJ,CAEJ,ECjDaK,GAA4C,CAAC,CAAE,SAAAlE,CAAS,IAClEI,MAAA6C,EAAAA,OAAA,CAAO,OAAQ,EAAG,QAAS,EACzB,SAAAjD,CACH,CAAA,ECDWmE,EAAgBC,EAAA,cAC3B,MACF,ECyCO,SAASC,EACdC,EACA,CACE,IAAAnC,EACA,MAAAoC,EACA,wBAAAC,EACA,iBAAAC,EACA,oBAAAC,EACA,YAAAC,EACA,mBAAAC,EACA,2BAAAC,EACA,UAAAC,EACA,SAAAC,EACA,UAAAC,EACA,WAAAvE,EACA,MAAAwE,EACA,WAAAC,EACA,YAAAC,CACF,EAC0C,CACpC,MAAAC,GAAWjF,SAA0B,IAAI,EACzCkF,EAAalD,GAAOiD,GACpB,CAACE,EAAKC,EAAa,EAAIC,EAAAA,WAAYC,GAAMA,EAAI,EAAG,CAAC,EACjDC,EAAavF,SAA6C,IAAI,EAC9DwF,EAAaxF,SAAoD,IAAI,EACrEyF,EAAsBzF,SAAe,MAAS,EAC9C0F,EAAY1F,SAAkC,IAAI,EAIlD,CAAC2F,EAAQC,CAAS,EAAIzD,EAAAA,SAAS,EAAK,EAIpC,CAAC0D,EAAgBC,CAAiB,EAAI3D,EAAAA,SAAS,EAAK,EAIpD,CAAC4D,EAASC,CAAU,EAAI7D,EAAAA,SAAS,EAAK,EAEtC8D,EAAO9B,EAEP+B,GAAOC,EAAA,YACVvC,GAAmB,SAClB,OAAA2B,EAAW,QAAU,IAAI,QACvB,CAACa,EAASC,KAAW,CACnBb,EAAW,QAAUY,EACrBV,EAAU,QAAUW,EAAA,CAExB,EACAL,EAAW,EAAK,EAChBJ,EAAU,EAAI,EACdE,EAAkB,EAAI,EACRV,GAAA,EACdK,EAAoB,QAAU7B,EAC1BQ,GACFkC,EAAApB,EAAW,UAAX,MAAAoB,EAAoB,aAEpBC,EAAArB,EAAW,UAAX,MAAAqB,EAAoB,OAEfhB,EAAW,OACpB,EACA,CAACL,EAAYd,CAAK,CACpB,EAEMgC,EAAUD,EAAA,YACbK,GAAU,OAETR,EAAW,EAAI,EACfJ,EAAU,EAAK,EACVnB,EAcH,WAAW,IAAM,OACfuB,EAAW,EAAK,EAChBF,EAAkB,EAAK,GACvBQ,EAAAd,EAAW,UAAX,MAAAc,EAAA,KAAAd,EAAqBgB,GACrBf,EAAoB,QAAU,OAClBd,GAAA,MAAAA,KACX,GAAG,GAnBN2B,EAAApB,EAAW,UAAX,MAAAoB,EAAoB,iBAClB,eACA,IAAM,SACJN,EAAW,EAAK,EAChBF,EAAkB,EAAK,GACvBQ,EAAApB,EAAW,UAAX,MAAAoB,EAAoB,SACpBC,EAAAf,EAAW,UAAX,MAAAe,EAAA,KAAAf,EAAqBgB,GACrBf,EAAoB,QAAU,OAClBd,GAAA,MAAAA,GACd,EACA,CAAE,KAAM,EAAK,EAWnB,EACA,CAACO,EAAYP,EAAWF,CAAkB,CAC5C,EAEMgC,GAAUN,EAAAA,YAAY,IAAM,OAEhCH,EAAW,EAAK,EAChBJ,EAAU,EAAK,EACfE,EAAkB,EAAK,GACvBQ,EAAAZ,EAAU,UAAV,MAAAY,EAAA,KAAAZ,GACWd,GAAA,MAAAA,IACXa,EAAoB,QAAU,MAAA,EAC7B,CAACb,CAAQ,CAAC,EAEPyB,EAASF,EAAA,YACZO,GAAU,OAETV,EAAW,EAAI,EACfJ,EAAU,EAAK,EACVnB,EAcH,WAAW,IAAM,OACfuB,EAAW,EAAK,EAChBF,EAAkB,EAAK,GACvBQ,EAAAZ,EAAU,UAAV,MAAAY,EAAA,KAAAZ,EAAoBgB,GACT9B,GAAA,MAAAA,IACXa,EAAoB,QAAU,QAC7B,GAAG,GAnBNa,EAAApB,EAAW,UAAX,MAAAoB,EAAoB,iBAClB,eACA,IAAM,SACJN,EAAW,EAAK,EAChBF,EAAkB,EAAK,GACvBQ,EAAApB,EAAW,UAAX,MAAAoB,EAAoB,SACpBC,EAAAb,EAAU,UAAV,MAAAa,EAAA,KAAAb,EAAoBgB,GACT9B,GAAA,MAAAA,IACXa,EAAoB,QAAU,MAChC,EACA,CAAE,KAAM,EAAK,EAWnB,EACA,CAACP,EAAYT,EAAoBG,CAAQ,CAC3C,EAEM+B,GAAUR,EAAA,YACbS,GAAM,CACD,GAAAA,EAAE,SAAW1B,EAAW,QAC1B,OAGI,MAAA2B,EAAO3B,EAAW,QAAQ,sBAAsB,EAGpD2B,EAAK,KAAOD,EAAE,SACdA,EAAE,SAAWC,EAAK,IAAMA,EAAK,QAC7BA,EAAK,MAAQD,EAAE,SACfA,EAAE,SAAWC,EAAK,KAAOA,EAAK,OAGvBR,EAAA,CAEX,EACA,CAACnB,EAAYmB,CAAM,CACrB,EAEMS,EAAeC,EAAA,QACnB,KAAO,CAAE,QAAAX,EAAS,OAAAC,IAClB,CAACA,EAAQD,CAAO,CAClB,EA+DA,MAAO,CA7DSW,EAAA,QACd,IACEtC,EACExE,EAAA,IAAC8B,GAAA,CACC,OAAA4D,EACA,eAAgBU,EAChB,WAAA/F,EACA,aAAcwE,EACd,KAAM,CAAE,MAAO,GAAM,WAAAC,EAAY,YAAAC,CAAY,EAE7C,SAAC/E,EAAA,IAAA+D,EAAc,SAAd,CAAuB,MAAO8C,EAC5B,SACCjB,GAAAmB,EAAA,cAACf,EAAM,CAAA,GAAIR,EAAoB,QAAoB,IAAAN,EAAU,CAEjE,CAAA,CAAA,CAAA,EAGFlF,EAAA,IAAC,SAAA,CACC,QAASyE,EAA6B,OAAYiC,GAClD,QAAAF,GACA,IAAKvB,EACL,UAAW9E,EAAGyE,EAAWkB,GAAWzB,CAAgB,EACpD,aAAYQ,EACZ,kBAAiBC,EACjB,mBAAkBC,EAClB,MAAO,CAAE,WAAA1E,EAAwB,GAAGkE,CAAY,EAEhD,SAAAvE,EAAA,IAAC,OAAI,MAAOsE,EAAqB,UAAWF,EACzC,SAAAwB,SACE7B,EAAc,SAAd,CAAuB,MAAO8C,EAC7B,yBAACb,EAAM,CAAA,GAAIR,EAAoB,QAAoB,IAAAN,CAAU,CAAA,CAC/D,CAAA,CAEJ,CAAA,CAAA,CACF,EAEJ,CACEV,EACAkB,EACAU,EACA/F,EACAwE,EACAC,EACAC,EACA8B,EACAjB,EACAI,EACAd,EACAT,EACAiC,GACAF,GACAvB,EACAL,EACAkB,EACAzB,EACAE,EACAD,EACAF,CAAA,CAEJ,EAEiB,CAAE,KAAA6B,GAAM,OAAAG,EAAQ,CACnC,CCnRO,MAAMY,GAAmB,IAEU,CAClC,MAAAC,EAAUC,aAAWnD,CAAa,EACxC,GAAIkD,GAAW,KACP,MAAA,IAAI,MAAM,mDAAmD,EAE9D,OAAAA,CACT,qNCNgB,SAAAE,GACdjD,EACAkD,EAC0C,CAC1C,OAAOnD,EAAmCC,EAAW,CACnD,GAAGkD,EACH,MAAO,GACP,iBAAkBjH,EAAGiH,GAAA,YAAAA,EAAS,iBAAkBnH,EAAO,OAAO,EAC9D,wBAAyBE,EACvBiH,GAAA,YAAAA,EAAS,wBACTnH,EAAO,cACT,EACA,UAAWE,EAAGiH,GAAA,YAAAA,EAAS,UAAWnH,EAAO,WAAW,CAAA,CACrD,CACH,olBCVO,SAASoH,GACdnD,EACA3D,EAAuB,OACvB6G,EAC0C,CAC1C,OAAOnD,EAAmCC,EAAW,CACnD,GAAGkD,EACH,2BAA4B,GAC5B,MAAO,GACP,iBAAkBjH,EAAGiH,GAAA,YAAAA,EAAS,iBAAkBnH,EAAO,OAAO,EAC9D,wBAAyBE,EACvBiH,GAAA,YAAAA,EAAS,wBACTnH,EAAO,cACT,EACA,UAAWE,EAAGiH,GAAA,YAAAA,EAAS,UAAWnH,EAAO,aAAcA,EAAOM,CAAS,CAAC,CAAA,CACzE,CACH,2QCpBgB,SAAA+G,GACdpD,EACAkD,EAC0C,CAC1C,OAAOnD,EAAmCC,EAAW,CACnD,GAAGkD,EACH,MAAO,GACP,iBAAkBjH,EAAGiH,GAAA,YAAAA,EAAS,iBAAkBnH,EAAO,OAAO,EAC9D,wBAAyBE,EACvBiH,GAAA,YAAAA,EAAS,wBACTnH,EAAO,cACT,EACA,UAAWE,EAAGiH,GAAA,YAAAA,EAAS,UAAWnH,EAAO,WAAW,CAAA,CACrD,CACH,CCRO,MAAMsH,EAA4C,CAAC,CACxD,aAAAC,EAAe,KACf,KAAAC,EAAO,SACP,SAAA7H,CACF,IAEII,MAACwB,EAAAA,SAAQ,QAASiG,IAAS,SAAW,KAAO,KAAM,GAAID,EACpD,SAAA5H,CACH,CAAA,8DCZS8H,GAAwD,CAAC,CACpE,SAAA9H,CACF,IAEIwB,EAAA,KAAC0B,EAAI,IAAA,CAAA,MAAO,OACV,SAAA,CAAA9C,EAAA,IAACkB,EAAQ,QAAA,EAAA,EACRlB,EAAA,IAAA,MAAA,CAAI,UAAWC,GAAO,mBAAqB,SAAAL,CAAS,CAAA,CAAA,EACvD,4CCHS+H,GAAsC,CAAC,CAClD,IAAAC,EAAM,EACN,QAAAC,EAAU,SACV,UAAAjD,EACA,GAAGjB,CACL,IAEI3D,EAAA,IAAC6C,EAAA,OAAA,CACC,UAAW1C,EAAGF,GAAO,UAAWA,GAAO4H,CAAO,EAAGjD,CAAS,EAC1D,OAAQiD,IAAY,UAAY,EAAI,EACpC,QAASA,IAAY,UAAY,EAAI,EACrC,IAAAD,EACC,GAAGjE,CAAA,CACN,EChBSmE,GAAgD,CAAC,CAC5D,SAAAlI,EACA,SAAAF,CACF,IAEIM,EAAA,IAAC6C,EAAA,OAAA,CACC,KAAM,EACN,OAAQ,OACR,eAAgB,gBAChB,SAAAnD,EAEC,SAAAE,CAAA,CACH,ECDSmI,GAAsC,CAAC,CAClD,KAAA9G,EACA,QAAA+G,EACA,QAAAC,EACA,KAAAC,EACA,SAAAtI,EACA,SAAAF,EACA,SAAAyI,CACF,UAEKL,GACC,CAAA,SAAA1G,EAAA,KAACuG,GAAA,CACC,cAAe,SACf,WAAY,SACZ,SAAAjI,EACA,SAAAyI,EAEC,SAAA,CAAAlH,GAASjB,EAAA,IAAAoI,EAAA,YAAA,CAAY,KAAAnH,EAAY,KAAM,QAAS,EACjDjB,EAAAA,IAACuH,GAAc,SAAQU,CAAA,CAAA,EACtBC,GAAQlI,EAAA,IAACqI,OAAK,CAAA,UAAW,SAAW,SAAKH,EAAA,EACzCtI,EACAoI,GAAYhI,EAAAA,IAAA0H,GAAA,CAAoB,SAAQM,CAAA,CAAA,CAAA,CAAA,CAAA,EAE7C,ECjCSM,GAAqD3E,GAE9D3D,EAAA,IAACyB,EAAA,WAAA,CACC,KAAM,QACN,QAAS,SACT,SAAU8G,EAAA,gBACT,GAAG5E,CAAA,CACN,ECWS6E,GAA0C,CAAC,CACtD,QAAAP,EACA,aAAAT,EACA,YAAAiB,EACA,aAAAC,EACA,qBAAAC,CACF,UAEK9F,EAAAA,OACC,CAAA,SAAAzB,EAAAA,KAACC,EAAAA,KAAI,eAAgB,gBAAiB,WAAY,SAC/C,SAAA,CACC4G,EAAAjI,EAAAA,IAACuH,GAAa,aAAAC,EAA4B,KAAMiB,EAC7C,SACHR,CAAA,CAAA,QAEC,MAAI,CAAA,CAAA,EAENS,EACC1I,EAAA,IAACsI,GAAA,CACC,QAASI,EACT,KAAMD,EACN,aAAYE,CAAA,CAAA,EAEZ,IAAA,CAAA,CACN,CACF,CAAA,+EC1CSC,GAA0C,CAAC,CACtD,SAAAhJ,EACA,OAAAiJ,EACA,OAAAvI,EAAS,EACT,IAAAsH,EAAM,EACN,UAAAhD,EACA,GAAGkE,CACL,IAEI9I,EAAA,IAACqB,EAAA,IAAA,CACC,UAAWlB,EAAGF,GAAO,YAAa4I,GAAU5I,GAAO,OAAQ2E,CAAS,EACpE,OAAQ,mCACR,OAAAtE,EACC,GAAGwI,EAEJ,eAACzH,EAAI,IAAA,CAAA,IAAAuG,EAAU,QAAS,EAAG,WAAY,SACpC,SAAAhI,CACH,CAAA,CAAA,CACF"}
1
+ {"version":3,"file":"index.js","sources":["../src/declarative-modals/DeclarativeModalSetup.ts","../src/declarative-modals/window/BaseWindow.tsx","../src/declarative-modals/drawer/Drawer.tsx","../src/declarative-modals/drawer/DrawerHeader.tsx","../src/declarative-modals/alert/Alert.tsx","../src/declarative-modals/modal/Modal.tsx","../src/declarative-modals/loading-modal/LoadingModal.tsx","../src/declarative-modals/window/WindowHeader.tsx","../src/declarative-modals/window/Window.tsx","../src/declarative-modals/window/WindowFooter.tsx","../src/dialog/DialogContext.ts","../src/dialog/UseDialog.tsx","../src/dialog/UseDialogPromise.ts","../src/dialog/alert/UseAlertDialog.ts","../src/dialog/drawer/UseDrawerDialog.ts","../src/dialog/modal/UseModalDialog.ts","../src/building-blocks/ModalHeading.tsx","../src/building-blocks/ModalActionButtons.tsx","../src/building-blocks/ModalBody.tsx","../src/building-blocks/ModalContainer.tsx","../src/ready-made-modals/InfoAlert.tsx","../src/building-blocks/ModalCloseButton.tsx","../src/building-blocks/ModalHeader.tsx","../src/building-blocks/ModalFooter.tsx"],"sourcesContent":["import ReactModal from \"react-modal\";\n\nexport const setupDeclarativeModals = (htmlElement: string | HTMLElement) => {\n ReactModal.setAppElement(htmlElement);\n};\n","import * as React from \"react\";\nimport { useRef } from \"react\";\nimport ReactModal from \"react-modal\";\nimport Draggable from \"react-draggable\";\nimport cx from \"classnames\";\nimport styles from \"./Window.module.css\";\n\nexport interface BaseWindowProps extends ReactModal.Props {\n width?: string;\n maxWidth?: string;\n onRequestClose?: () => void;\n draggable?: boolean;\n}\n\nexport const DRAGGABLE_HANDLE_CLASSNAME = \"draggable-modal-handle\";\nexport const DRAGGABLE_CANCEL_CLASSNAME = \"draggable-modal-cancel\";\n\nexport const BaseWindow: React.FC<BaseWindowProps> = ({\n width,\n maxWidth,\n draggable = false,\n children,\n ...reactModalProps\n}) => {\n const nodeRef = useRef<HTMLDivElement>(null);\n return (\n <ReactModal\n overlayClassName={styles.overlay}\n className={styles.modal}\n {...reactModalProps}\n >\n <Draggable\n handle={`.${DRAGGABLE_HANDLE_CLASSNAME}`}\n cancel={`.${DRAGGABLE_CANCEL_CLASSNAME}, button, [role=\"tooltip\"]`}\n bounds=\".ReactModal__Overlay\"\n disabled={!draggable}\n nodeRef={nodeRef as React.RefObject<HTMLElement>}\n >\n <div\n style={{\n [\"--swui-modal-width\" as string]: width,\n [\"--swui-modal-max-width\" as string]: maxWidth,\n }}\n className={cx(styles.content, {\n [styles.isDraggable]: draggable,\n })}\n ref={nodeRef}\n >\n {children}\n </div>\n </Draggable>\n </ReactModal>\n );\n};\n","import * as React from \"react\";\nimport ReactModal from \"react-modal\";\nimport cx from \"classnames\";\nimport styles from \"./Drawer.module.css\";\nimport { exhaustSwitchCase, FlattenUnion } from \"@stenajs-webui/core\";\nimport {\n SlideFrom,\n SlideFromLeftRight,\n SlideFromTopBottom,\n} from \"../../common-types\";\n\nexport type DrawerProps = DrawerBaseLeftRight | DrawerBaseTopBottom;\n\ninterface DrawerBaseLeftRight extends DrawerBaseProps {\n width?: string;\n /**\n * Which direction the drawer will appear from.\n * @default left\n * @param {String('left'|'right')}\n */\n slideFrom?: SlideFromLeftRight;\n}\n\ninterface DrawerBaseTopBottom extends DrawerBaseProps {\n height?: string;\n /**\n * Which direction the drawer will appear from.\n * @default left\n * @param {String('top'|'bottom')}\n */\n slideFrom?: SlideFromTopBottom;\n}\n\ninterface DrawerBaseProps\n extends Omit<\n ReactModal.Props,\n | \"closeTimeoutMS\"\n | \"portalClassName\"\n | \"overlayClassName\"\n | \"className\"\n | \"style\"\n | \"parentSelector\"\n > {\n background?: string;\n\n /**\n * When true, there will be a gap between the drawer and the viewport.\n */\n floating?: boolean;\n\n zIndex?: number;\n onRequestClose?: () => void;\n /**\n * Portal target, HTML element. If not set, portal is not used.\n */\n portalTarget?: HTMLElement | null;\n}\n\nexport const Drawer: React.FC<DrawerProps> = ({\n background,\n zIndex,\n children,\n slideFrom = \"left\",\n portalTarget,\n floating,\n ...reactModalProps\n}) => {\n const { height, width } = reactModalProps as FlattenUnion<DrawerProps>;\n\n return (\n <ReactModal\n closeTimeoutMS={250}\n portalClassName={styles.portal}\n overlayClassName={{\n base: styles.overlay,\n afterOpen: styles.afterOpen,\n beforeClose: styles.beforeClose,\n }}\n className={{\n base: cx(\n styles.content,\n getClassNameForSlide(slideFrom),\n floating && styles.floating,\n ),\n afterOpen: styles.afterOpen,\n beforeClose: styles.beforeClose,\n }}\n style={{ content: { width, height, background }, overlay: { zIndex } }}\n parentSelector={portalTarget ? () => portalTarget : undefined}\n {...reactModalProps}\n >\n {children}\n </ReactModal>\n );\n};\n\nconst getClassNameForSlide = (slideFrom: SlideFrom): string => {\n switch (slideFrom) {\n case \"left\":\n return styles.slideFromLeft;\n case \"right\":\n return styles.slideFromRight;\n case \"top\":\n return styles.slideFromTop;\n case \"bottom\":\n return styles.slideFromBottom;\n default:\n return exhaustSwitchCase(slideFrom, styles.slideFromLeft);\n }\n};\n","import * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport { Heading, Row, Space, Spacing } from \"@stenajs-webui/core\";\nimport { FlatButton, Icon, stenaTimes } from \"@stenajs-webui/elements\";\nimport { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\nimport { cssColor } from \"@stenajs-webui/theme\";\n\nexport interface DrawerHeaderProps {\n onRequestClose: () => void;\n header?: string;\n contentRight?: ReactNode;\n icon?: IconDefinition;\n}\n\nexport const DrawerHeader: React.FC<DrawerHeaderProps> = ({\n header,\n contentRight,\n onRequestClose,\n icon,\n}) => {\n return (\n <Spacing\n position={\"sticky\"}\n top={0}\n zIndex={100}\n background={cssColor(\"--lhds-color-ui-50\")}\n >\n <Row\n justifyContent={\"space-between\"}\n alignItems={\"center\"}\n height={\"48px\"}\n >\n <Row alignItems={\"center\"} gap={2}>\n <Space num={1} />\n {icon && <Icon icon={icon} size={24} />}\n <Heading variant={\"h4\"}>{header}</Heading>\n </Row>\n <Row gap={1}>\n {contentRight}\n <FlatButton\n leftIcon={stenaTimes}\n onClick={onRequestClose}\n variant={\"danger\"}\n />\n <Space num={0.5} />\n </Row>\n </Row>\n </Spacing>\n );\n};\n","import * as React from \"react\";\nimport ReactModal from \"react-modal\";\n\nimport styles from \"./Alert.module.css\";\n\nexport interface AlertProps extends ReactModal.Props {\n onRequestClose?: () => void;\n}\n\nconst style = { overlay: { justifyContent: \"center\" } };\n\nexport const Alert: React.FC<AlertProps> = ({\n children,\n ...reactModalProps\n}) => {\n return (\n <ReactModal\n overlayClassName={styles.overlay}\n className={styles.modal}\n style={style}\n {...reactModalProps}\n >\n <div\n className={styles.content}\n style={{ [\"--swui-modal-width\" as string]: \"fit-content\" }}\n >\n {children}\n </div>\n </ReactModal>\n );\n};\n","import * as React from \"react\";\nimport { CSSProperties, useEffect, useRef, useState } from \"react\";\nimport ReactModal from \"react-modal\";\n\nimport styles from \"./Modal.module.css\";\nimport { useEventCallback } from \"@stenajs-webui/core\";\n\nexport interface ModalProps extends ReactModal.Props {\n background?: string;\n onRequestClose?: () => void;\n}\n\nconst isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n\nexport const Modal: React.FC<ModalProps> = ({\n children,\n background,\n ...reactModalProps\n}) => {\n const ref = useRef<HTMLDivElement | null>(null);\n\n const [scrollbarGutter, setScrollbarGutter] = useState<\n \"auto\" | \"stable\" | undefined\n >(isSafari ? \"auto\" : undefined);\n\n const style = {\n overlay: { justifyContent: \"center\" },\n content: {\n \"--swui-modal-content-bg-color\": background,\n } as CSSProperties,\n };\n\n const updateScrollbarGutter = useEventCallback(() => {\n if (!isSafari) {\n return;\n }\n\n const container = ref.current;\n if (container) {\n setScrollbarGutter(\n container.scrollHeight > container.clientHeight ? \"stable\" : \"auto\",\n );\n }\n });\n\n /**\n * Applying scrollbar-gutter fixes a glitch in Safari where redraw\n * sometimes makes the modal change width (with or without gutter included in size calculation).\n * This causes the modal to jump around when hovering with mouse or resizing window.\n *\n * If this glitch is fixed in Safari, this code can be removed.\n */\n\n useEffect(() => {\n window.addEventListener(\"resize\", updateScrollbarGutter);\n document.addEventListener(\"DOMContentLoaded\", updateScrollbarGutter);\n return () => {\n window.removeEventListener(\"resize\", updateScrollbarGutter);\n document.removeEventListener(\"DOMContentLoaded\", updateScrollbarGutter);\n };\n }, [updateScrollbarGutter]);\n\n return (\n <ReactModal\n overlayClassName={{\n base: styles.overlay,\n beforeClose: styles.beforeClose,\n afterOpen: styles.afterOpen,\n }}\n className={{\n base: styles.modal,\n beforeClose: styles.beforeClose,\n afterOpen: styles.afterOpen,\n }}\n style={style}\n closeTimeoutMS={250}\n onAfterOpen={updateScrollbarGutter}\n {...reactModalProps}\n >\n <div\n className={styles.content}\n style={{\n [\"--swui-modal-width\" as string]: \"fit-content\",\n scrollbarGutter,\n }}\n ref={ref}\n >\n {children}\n </div>\n </ReactModal>\n );\n};\n","import { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\nimport {\n Box,\n Column,\n Heading,\n Indent,\n Row,\n Spacing,\n} from \"@stenajs-webui/core\";\nimport { Icon, Spinner } from \"@stenajs-webui/elements\";\nimport * as React from \"react\";\nimport ReactModal from \"react-modal\";\nimport styles from \"./LoadingModal.module.css\";\n\nexport interface LoadingModalProps extends Omit<ReactModal.Props, \"isOpen\"> {\n headerText?: string;\n headerIconLeft?: IconDefinition;\n}\n\nexport const LoadingModal: React.FC<LoadingModalProps> = ({\n headerIconLeft,\n headerText,\n shouldCloseOnOverlayClick = false,\n shouldCloseOnEsc = false,\n ...modalProps\n}) => {\n return (\n <ReactModal\n {...modalProps}\n isOpen\n shouldCloseOnOverlayClick={shouldCloseOnOverlayClick}\n shouldCloseOnEsc={shouldCloseOnEsc}\n className={styles.modal}\n overlayClassName={styles.overlay}\n >\n <Column spacing={2} alignItems={\"center\"}>\n <Box\n alignItems={\"center\"}\n justifyContent={\"center\"}\n width={\"64px\"}\n height={\"64px\"}\n borderRadius={\"50%\"}\n background={\"white\"}\n shadow={\"modal\"}\n >\n <Spinner size={\"small\"} />\n </Box>\n {(headerIconLeft || headerText) && (\n <>\n <Spacing />\n <Row indent={2}>\n {headerIconLeft && (\n <>\n <Icon size={14} icon={headerIconLeft} color={\"white\"} />\n <Indent />\n </>\n )}\n {headerText && (\n <Heading variant={\"h4\"} color={\"white\"}>\n {headerText}\n </Heading>\n )}\n </Row>\n </>\n )}\n </Column>\n </ReactModal>\n );\n};\n","import { CloseButton } from \"@stenajs-webui/elements\";\nimport * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport {\n DRAGGABLE_CANCEL_CLASSNAME,\n DRAGGABLE_HANDLE_CLASSNAME,\n} from \"./BaseWindow\";\nimport { Box, Row, Txt } from \"@stenajs-webui/core\";\n\nexport interface WindowHeaderProps {\n onRequestClose?: () => void;\n header?: ReactNode;\n headerText?: string;\n closeButtonClassName?: string;\n}\n\nexport const WindowHeader: React.FC<WindowHeaderProps> = ({\n onRequestClose,\n header,\n headerText,\n closeButtonClassName,\n}) => {\n return (\n <Row\n spacing={2}\n indent={2}\n borderBottom={\"1px solid var(--lhds-color-ui-300)\"}\n className={DRAGGABLE_HANDLE_CLASSNAME}\n >\n <Row flex={1} indent alignItems={\"center\"}>\n {headerText && (\n <Txt className={DRAGGABLE_CANCEL_CLASSNAME} size={\"large\"}>\n {headerText}\n </Txt>\n )}\n {header}\n </Row>\n <Box alignSelf={\"flex-start\"}>\n <CloseButton\n className={closeButtonClassName}\n onClick={onRequestClose}\n />\n </Box>\n </Row>\n );\n};\n","import { Box } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { BaseWindow, BaseWindowProps } from \"./BaseWindow\";\nimport { WindowHeader, WindowHeaderProps } from \"./WindowHeader\";\nimport cx from \"classnames\";\nimport styles from \"./Window.module.css\";\n\nexport interface WindowProps extends BaseWindowProps, WindowHeaderProps {\n spacing?: number;\n indent?: number;\n draggable?: boolean;\n footer?: React.ReactNode;\n disableStickyFooter?: boolean;\n}\n\nexport const Window: React.FC<WindowProps> = ({\n header,\n headerText,\n children,\n spacing,\n indent,\n draggable = false,\n onRequestClose,\n closeButtonClassName,\n footer,\n disableStickyFooter = false,\n ...props\n}) => {\n const activeSpacing = typeof spacing === \"number\" ? spacing : 1;\n const activeIndent = typeof indent === \"number\" ? indent : 1;\n\n return (\n <BaseWindow\n {...props}\n onRequestClose={onRequestClose}\n draggable={draggable}\n >\n <WindowHeader\n onRequestClose={onRequestClose}\n header={header}\n headerText={headerText}\n closeButtonClassName={closeButtonClassName}\n />\n <Box spacing={activeSpacing} indent={activeIndent}>\n {children}\n </Box>\n {footer && (\n <Box\n className={cx(styles.footer, {\n [styles.stickyFooter]: !disableStickyFooter,\n })}\n >\n {footer}\n </Box>\n )}\n </BaseWindow>\n );\n};\n","import { Column } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { ReactNode } from \"react\";\n\nexport interface WindowFooterProps {\n children?: ReactNode;\n}\n\nexport const WindowFooter: React.FC<WindowFooterProps> = ({ children }) => (\n <Column indent={2} spacing={2}>\n {children}\n </Column>\n);\n","import { createContext } from \"react\";\nimport { RejectCommand, ResolveCommand } from \"./DialogCommands\";\n\nexport interface DialogContextValue<TResolveValue> {\n resolve: ResolveCommand<TResolveValue>;\n reject: RejectCommand;\n}\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nexport const DialogContext = createContext<DialogContextValue<any> | undefined>(\n undefined,\n);\n","import cx from \"classnames\";\nimport React, {\n CSSProperties,\n MouseEventHandler,\n ReactNode,\n RefObject,\n useCallback,\n useMemo,\n useReducer,\n useRef,\n useState,\n} from \"react\";\nimport { RejectCommand, ResolveCommand, ShowCommand } from \"./DialogCommands\";\nimport { DialogContext, DialogContextValue } from \"./DialogContext\";\nimport { Modal } from \"../declarative-modals/modal/Modal\";\n\ntype UseDialogCallbacks<TProps, TPromiseResolve> = {\n show: ShowCommand<TProps, TPromiseResolve>;\n reject: RejectCommand;\n};\n\nexport type UseDialogResult<TProps, TPromiseResolve> = [\n ReactNode,\n UseDialogCallbacks<TProps, TPromiseResolve>,\n];\n\nexport interface DialogOptions {\n divInsteadOfDialog?: boolean;\n background?: string;\n disableCloseOnClickOutside?: boolean;\n modal: boolean;\n className: string;\n closingClassName: string;\n contentWrapperClassName: string;\n contentWrapperStyle?: CSSProperties;\n dialogStyle?: CSSProperties;\n ref?: RefObject<HTMLDialogElement | null>;\n onResolve?: () => void;\n onReject?: () => void;\n /**\n * Sets aria-label on modal or dialog element.\n */\n label?: string;\n /**\n * Sets aria-labelledby on modal or dialog element.\n */\n labelledby?: string;\n /**\n * Sets aria-describedby on modal or dialog element.\n */\n describedby?: string;\n}\n\nexport function useDialog<TProps, TPromiseResolve = void>(\n component: React.FC<TProps>,\n {\n ref,\n modal,\n contentWrapperClassName,\n closingClassName,\n contentWrapperStyle,\n dialogStyle,\n divInsteadOfDialog,\n disableCloseOnClickOutside,\n onResolve,\n onReject,\n className,\n background,\n label,\n labelledby,\n describedby,\n }: DialogOptions,\n): UseDialogResult<TProps, TPromiseResolve> {\n const localRef = useRef<HTMLDialogElement>(null);\n const currentRef = ref ?? localRef;\n const [key, forceRerender] = useReducer((x) => x + 1, 0);\n const promiseRef = useRef<Promise<TPromiseResolve | undefined>>(null);\n const resolveRef = useRef<ResolveCommand<TPromiseResolve> | undefined>(null);\n const modalComponentProps = useRef<TProps>(undefined);\n const rejectRef = useRef<RejectCommand | undefined>(null);\n /**\n * Used by Modal to control open/close with animation.\n */\n const [isOpen, setIsOpen] = useState(false);\n /**\n * Used by both Modal and dialog to decide if content is visible. When props is cleared, we can not render content that requires props.\n */\n const [contentVisible, setContentVisible] = useState(false);\n /**\n * Used by dialog to know if it is currently animating to closed state.\n */\n const [closing, setClosing] = useState(false);\n\n const Comp = component;\n\n const show = useCallback<ShowCommand<TProps, TPromiseResolve>>(\n (props?: TProps) => {\n promiseRef.current = new Promise<TPromiseResolve | undefined>(\n (resolve, reject) => {\n resolveRef.current = resolve;\n rejectRef.current = reject;\n },\n );\n setClosing(false);\n setIsOpen(true);\n setContentVisible(true);\n forceRerender();\n modalComponentProps.current = props;\n if (modal) {\n currentRef.current?.showModal();\n } else {\n currentRef.current?.show();\n }\n return promiseRef.current;\n },\n [currentRef, modal],\n );\n\n const resolve = useCallback<ResolveCommand<TPromiseResolve>>(\n (value) => {\n // Trigger closing animation.\n setClosing(true);\n setIsOpen(false);\n if (!divInsteadOfDialog) {\n currentRef.current?.addEventListener(\n \"animationend\",\n () => {\n setClosing(false);\n setContentVisible(false);\n currentRef.current?.close();\n resolveRef.current?.(value);\n modalComponentProps.current = undefined;\n onResolve?.();\n },\n { once: true },\n );\n } else {\n setTimeout(() => {\n setClosing(false);\n setContentVisible(false);\n resolveRef.current?.(value);\n modalComponentProps.current = undefined;\n onResolve?.();\n }, 300);\n }\n },\n [currentRef, onResolve, divInsteadOfDialog],\n );\n\n const onClose = useCallback(() => {\n // Remove content immediately, since it cannot be animated when closed by browser.\n setClosing(false);\n setIsOpen(false);\n setContentVisible(false);\n rejectRef.current?.();\n onReject?.();\n modalComponentProps.current = undefined;\n }, [onReject]);\n\n const reject = useCallback<RejectCommand>(\n (error) => {\n // Trigger closing animation.\n setClosing(true);\n setIsOpen(false);\n if (!divInsteadOfDialog) {\n currentRef.current?.addEventListener(\n \"animationend\",\n () => {\n setClosing(false);\n setContentVisible(false);\n currentRef.current?.close();\n rejectRef.current?.(error);\n onReject?.();\n modalComponentProps.current = undefined;\n },\n { once: true },\n );\n } else {\n setTimeout(() => {\n setClosing(false);\n setContentVisible(false);\n rejectRef.current?.(error);\n onReject?.();\n modalComponentProps.current = undefined;\n }, 300);\n }\n },\n [currentRef, divInsteadOfDialog, onReject],\n );\n\n const onClick = useCallback<MouseEventHandler<HTMLDialogElement>>(\n (e) => {\n if (e.target !== currentRef.current) {\n return;\n }\n\n const rect = currentRef.current.getBoundingClientRect();\n\n const clickedInsideDialog =\n rect.top <= e.clientY &&\n e.clientY <= rect.top + rect.height &&\n rect.left <= e.clientX &&\n e.clientX <= rect.left + rect.width;\n\n if (!clickedInsideDialog) {\n reject();\n }\n },\n [currentRef, reject],\n );\n\n const contextValue = useMemo(\n () => ({ resolve, reject }) as DialogContextValue<unknown>,\n [reject, resolve],\n );\n\n const element = useMemo<ReactNode>(\n () =>\n divInsteadOfDialog ? (\n <Modal\n isOpen={isOpen}\n onRequestClose={reject}\n background={background}\n contentLabel={label}\n aria={{ modal: true, labelledby, describedby }}\n >\n <DialogContext.Provider value={contextValue}>\n {contentVisible && (\n <Comp {...(modalComponentProps.current as TProps)} key={key} />\n )}\n </DialogContext.Provider>\n </Modal>\n ) : (\n <dialog\n onClick={disableCloseOnClickOutside ? undefined : onClick}\n onClose={onClose}\n ref={currentRef}\n className={cx(className, closing && closingClassName)}\n aria-label={label}\n aria-labelledby={labelledby}\n aria-describedby={describedby}\n style={{ background: background, ...dialogStyle }}\n >\n <div style={contentWrapperStyle} className={contentWrapperClassName}>\n {contentVisible && (\n <DialogContext.Provider value={contextValue}>\n <Comp {...(modalComponentProps.current as TProps)} key={key} />\n </DialogContext.Provider>\n )}\n </div>\n </dialog>\n ),\n [\n divInsteadOfDialog,\n isOpen,\n reject,\n background,\n label,\n labelledby,\n describedby,\n contextValue,\n contentVisible,\n Comp,\n key,\n disableCloseOnClickOutside,\n onClick,\n onClose,\n currentRef,\n className,\n closing,\n closingClassName,\n dialogStyle,\n contentWrapperStyle,\n contentWrapperClassName,\n ],\n );\n\n return [element, { show, reject }];\n}\n","import { useContext } from \"react\";\nimport { DialogContext, DialogContextValue } from \"./DialogContext\";\n\nexport const useDialogPromise = <\n TResolveValue = void,\n>(): DialogContextValue<TResolveValue> => {\n const context = useContext(DialogContext);\n if (context == null) {\n throw new Error(\"useDialogPromise is being used outside of dialog.\");\n }\n return context as DialogContextValue<TResolveValue>;\n};\n","import * as React from \"react\";\nimport { DialogOptions, useDialog, UseDialogResult } from \"../UseDialog\";\nimport cx from \"classnames\";\nimport styles from \"./AlertDialog.module.css\";\n\nexport function useAlertDialog<TProps, TPromiseResolve = void>(\n component: React.FC<TProps>,\n options?: Partial<DialogOptions>,\n): UseDialogResult<TProps, TPromiseResolve> {\n return useDialog<TProps, TPromiseResolve>(component, {\n ...options,\n modal: true,\n closingClassName: cx(options?.closingClassName, styles.closing),\n contentWrapperClassName: cx(\n options?.contentWrapperClassName,\n styles.contentWrapper,\n ),\n className: cx(options?.className, styles.alertDialog),\n });\n}\n","import * as React from \"react\";\nimport { DialogOptions, useDialog, UseDialogResult } from \"../UseDialog\";\nimport cx from \"classnames\";\nimport styles from \"./DrawerDialog.module.css\";\nimport { SlideFrom } from \"../../common-types\";\n\ninterface DrawerOptions\n extends Partial<Omit<DialogOptions, \"disableCloseOnClickOutside\">> {}\n\nexport function useDrawerDialog<TProps, TPromiseResolve = void>(\n component: React.FC<TProps>,\n slideFrom: SlideFrom = \"left\",\n options?: DrawerOptions,\n): UseDialogResult<TProps, TPromiseResolve> {\n return useDialog<TProps, TPromiseResolve>(component, {\n ...options,\n disableCloseOnClickOutside: true,\n modal: false,\n closingClassName: cx(options?.closingClassName, styles.closing),\n contentWrapperClassName: cx(\n options?.contentWrapperClassName,\n styles.contentWrapper,\n ),\n className: cx(options?.className, styles.drawerDialog, styles[slideFrom]),\n });\n}\n","import * as React from \"react\";\nimport { DialogOptions, useDialog, UseDialogResult } from \"../UseDialog\";\nimport cx from \"classnames\";\nimport styles from \"./ModalDialog.module.css\";\n\nexport function useModalDialog<TProps, TPromiseResolve = void>(\n component: React.FC<TProps>,\n options?: Partial<DialogOptions>,\n): UseDialogResult<TProps, TPromiseResolve> {\n return useDialog<TProps, TPromiseResolve>(component, {\n ...options,\n modal: true,\n closingClassName: cx(options?.closingClassName, styles.closing),\n contentWrapperClassName: cx(\n options?.contentWrapperClassName,\n styles.contentWrapper,\n ),\n className: cx(options?.className, styles.modalDialog),\n });\n}\n","import * as React from \"react\";\nimport { Heading, HeadingVariant } from \"@stenajs-webui/core\";\n\nexport type ModalHeadingSizeVariant = \"medium\" | \"large\";\n\nexport interface ModalHeadingProps {\n size?: ModalHeadingSizeVariant;\n children: string;\n headingLevel?: HeadingVariant;\n}\n\nexport const ModalHeading: React.FC<ModalHeadingProps> = ({\n headingLevel = \"h2\",\n size = \"medium\",\n children,\n}) => {\n return (\n <Heading variant={size === \"medium\" ? \"h3\" : \"h1\"} as={headingLevel}>\n {children}\n </Heading>\n );\n};\n","import * as React from \"react\";\nimport { PropsWithChildren } from \"react\";\nimport styles from \"./ModalActionButtons.module.css\";\nimport { Box, Spacing } from \"@stenajs-webui/core\";\n\nexport interface ModalActionButtonsProps extends PropsWithChildren {}\n\nexport const ModalActionButtons: React.FC<ModalActionButtonsProps> = ({\n children,\n}) => {\n return (\n <Box width={\"100%\"}>\n <Spacing />\n <div className={styles.modalActionButtons}>{children}</div>\n </Box>\n );\n};\n","import * as React from \"react\";\nimport { BoxProps, Column } from \"@stenajs-webui/core\";\nimport styles from \"./ModalBody.module.css\";\nimport cx from \"classnames\";\n\nexport type ModalBodyVariant = \"normal\" | \"relaxed\";\n\nexport interface ModalBodyProps extends Omit<BoxProps, \"indent\" | \"spacing\"> {\n variant?: ModalBodyVariant;\n}\n\nexport const ModalBody: React.FC<ModalBodyProps> = ({\n gap = 3,\n variant = \"normal\",\n className,\n ...props\n}) => {\n return (\n <Column\n className={cx(styles.modalBody, styles[variant], className)}\n indent={variant === \"relaxed\" ? 5 : 3}\n spacing={variant === \"relaxed\" ? 5 : 3}\n gap={gap}\n {...props}\n />\n );\n};\n","import * as React from \"react\";\nimport { BoxProps, Column } from \"@stenajs-webui/core\";\nimport { PropsWithChildren } from \"react\";\n\nexport interface ModalContainerProps\n extends PropsWithChildren,\n Pick<BoxProps, \"maxWidth\"> {}\n\nexport const ModalContainer: React.FC<ModalContainerProps> = ({\n children,\n maxWidth,\n}) => {\n return (\n <Column\n flex={1}\n height={\"100%\"}\n justifyContent={\"space-between\"}\n maxWidth={maxWidth}\n >\n {children}\n </Column>\n );\n};\n","import * as React from \"react\";\nimport { PropsWithChildren, ReactNode } from \"react\";\nimport { Text } from \"@stenajs-webui/core\";\nimport { ModalHeading } from \"../building-blocks/ModalHeading\";\nimport { ModalActionButtons } from \"../building-blocks/ModalActionButtons\";\nimport { CircledIcon, MediumIcon } from \"@stenajs-webui/elements\";\nimport { ModalBody } from \"../building-blocks/ModalBody\";\nimport { ModalContainer } from \"../building-blocks/ModalContainer\";\n\nexport interface InfoAlertProps extends PropsWithChildren {\n heading: string;\n text?: string;\n buttons?: ReactNode;\n icon?: MediumIcon;\n onRequestClose?: () => void;\n maxWidth?: string;\n minWidth?: string;\n}\n\nexport const InfoAlert: React.FC<InfoAlertProps> = ({\n icon,\n buttons,\n heading,\n text,\n children,\n maxWidth,\n minWidth,\n}) => {\n return (\n <ModalContainer>\n <ModalBody\n flexDirection={\"column\"}\n alignItems={\"center\"}\n maxWidth={maxWidth}\n minWidth={minWidth}\n >\n {icon && <CircledIcon icon={icon} size={\"large\"} />}\n <ModalHeading>{heading}</ModalHeading>\n {text && <Text textAlign={\"center\"}>{text}</Text>}\n {children}\n {buttons && <ModalActionButtons>{buttons}</ModalActionButtons>}\n </ModalBody>\n </ModalContainer>\n );\n};\n","import * as React from \"react\";\nimport {\n FlatButton,\n FlatButtonProps,\n stenaTimesThick,\n} from \"@stenajs-webui/elements\";\n\nexport interface ModalCloseButtonProps extends FlatButtonProps {}\n\nexport const ModalCloseButton: React.FC<ModalCloseButtonProps> = (props) => {\n return (\n <FlatButton\n size={\"large\"}\n variant={\"danger\"}\n leftIcon={stenaTimesThick}\n {...props}\n />\n );\n};\n","import * as React from \"react\";\nimport { Column, HeadingVariant, Row } from \"@stenajs-webui/core\";\nimport { ModalHeading, ModalHeadingSizeVariant } from \"./ModalHeading\";\nimport { ModalCloseButton } from \"./ModalCloseButton\";\n\nexport type ModalHeaderProps =\n | ModalHeaderWithCloseButtonProps\n | ModalHeaderWithNoCloseButtonProps;\n\nexport interface ModalHeaderCommonProps {\n heading?: string;\n headingSize?: ModalHeadingSizeVariant;\n headingLevel?: HeadingVariant;\n}\n\nexport interface ModalHeaderWithCloseButtonProps\n extends ModalHeaderCommonProps {\n onClickClose?: never;\n closeButtonAriaLabel?: never;\n}\n\nexport interface ModalHeaderWithNoCloseButtonProps\n extends ModalHeaderCommonProps {\n onClickClose: () => void;\n closeButtonAriaLabel: string;\n}\n\nexport const ModalHeader: React.FC<ModalHeaderProps> = ({\n heading,\n headingLevel,\n headingSize,\n onClickClose,\n closeButtonAriaLabel,\n}) => {\n return (\n <Column>\n <Row justifyContent={\"space-between\"} alignItems={\"center\"} gap={2}>\n {heading ? (\n <ModalHeading headingLevel={headingLevel} size={headingSize}>\n {heading}\n </ModalHeading>\n ) : (\n <div />\n )}\n {onClickClose ? (\n <ModalCloseButton\n onClick={onClickClose}\n size={headingSize}\n aria-label={closeButtonAriaLabel}\n />\n ) : null}\n </Row>\n </Column>\n );\n};\n","import { BoxProps, Row } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport styles from \"./ModalFooter.module.css\";\nimport cx from \"classnames\";\n\nexport interface ModalFooterProps extends BoxProps {\n sticky?: boolean;\n gap?: number;\n}\n\nexport const ModalFooter: React.FC<ModalFooterProps> = ({\n children,\n sticky,\n zIndex = 4,\n gap = 2,\n className,\n ...boxProps\n}) => {\n return (\n <Row\n className={cx(styles.modalFooter, sticky && styles.sticky, className)}\n shadow={\"var(--swui-sticky-footer-shadow)\"}\n zIndex={zIndex}\n {...boxProps}\n >\n <Row gap={gap} spacing={2} alignItems={\"center\"}>\n {children}\n </Row>\n </Row>\n );\n};\n"],"names":["setupDeclarativeModals","htmlElement","ReactModal","DRAGGABLE_HANDLE_CLASSNAME","DRAGGABLE_CANCEL_CLASSNAME","BaseWindow","width","maxWidth","draggable","children","reactModalProps","nodeRef","useRef","jsx","styles","Draggable","cx","Drawer","background","zIndex","slideFrom","portalTarget","floating","height","getClassNameForSlide","exhaustSwitchCase","DrawerHeader","header","contentRight","onRequestClose","icon","Spacing","cssColor","jsxs","Row","Space","Icon","Heading","FlatButton","stenaTimes","style","Alert","isSafari","Modal","ref","scrollbarGutter","setScrollbarGutter","useState","updateScrollbarGutter","useEventCallback","container","useEffect","LoadingModal","headerIconLeft","headerText","shouldCloseOnOverlayClick","shouldCloseOnEsc","modalProps","Column","Box","Spinner","Fragment","Indent","WindowHeader","closeButtonClassName","Txt","CloseButton","Window","spacing","indent","footer","disableStickyFooter","props","activeSpacing","activeIndent","WindowFooter","DialogContext","createContext","useDialog","component","modal","contentWrapperClassName","closingClassName","contentWrapperStyle","dialogStyle","divInsteadOfDialog","disableCloseOnClickOutside","onResolve","onReject","className","label","labelledby","describedby","localRef","currentRef","key","forceRerender","useReducer","x","promiseRef","resolveRef","modalComponentProps","rejectRef","isOpen","setIsOpen","contentVisible","setContentVisible","closing","setClosing","Comp","show","useCallback","resolve","reject","_a","_b","value","onClose","error","onClick","e","rect","contextValue","useMemo","createElement","useDialogPromise","context","useContext","useAlertDialog","options","useDrawerDialog","useModalDialog","ModalHeading","headingLevel","size","ModalActionButtons","ModalBody","gap","variant","ModalContainer","InfoAlert","buttons","heading","text","minWidth","CircledIcon","Text","ModalCloseButton","stenaTimesThick","ModalHeader","headingSize","onClickClose","closeButtonAriaLabel","ModalFooter","sticky","boxProps"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stenajs-webui/modal",
3
- "version": "21.37.0",
3
+ "version": "21.37.2",
4
4
  "type": "module",
5
5
  "description": "",
6
6
  "author": "mattias800",
@@ -33,9 +33,9 @@
33
33
  "deploy": "gh-pages -d example/build"
34
34
  },
35
35
  "dependencies": {
36
- "@stenajs-webui/core": "21.37.0",
37
- "@stenajs-webui/elements": "21.37.0",
38
- "@stenajs-webui/theme": "21.37.0",
36
+ "@stenajs-webui/core": "21.37.2",
37
+ "@stenajs-webui/elements": "21.37.2",
38
+ "@stenajs-webui/theme": "21.37.2",
39
39
  "@types/react-modal": "^3.16.3",
40
40
  "classnames": "^2.5.1",
41
41
  "react-draggable": "4.4.6",
@@ -62,5 +62,5 @@
62
62
  "files": [
63
63
  "dist"
64
64
  ],
65
- "gitHead": "216d2ab65731a22ef6c4e3924c5f268561297af3"
65
+ "gitHead": "1d786f6e29b10a0837b44f4093f94fd96e931170"
66
66
  }