@mozaic-ds/web-components 1.6.0 → 1.8.0
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/Condition20.js +1 -1
- package/dist/attributes.js +1 -1
- package/dist/attributes.js.map +1 -1
- package/dist/branches.js +1 -1
- package/dist/branches.js.map +1 -1
- package/dist/bundle.d.ts +2 -0
- package/dist/bundle.d.ts.map +1 -1
- package/dist/bundle.js +2 -0
- package/dist/components/accordionlist/AccordionList.js +2 -2
- package/dist/components/accordionlistItem/AccordionListItem.js +2 -2
- package/dist/components/actionbottombar/ActionBottomBar.js +2 -2
- package/dist/components/actionlistbox/ActionListbox.js +3 -3
- package/dist/components/actionlistbox/ActionListbox.js.map +1 -1
- package/dist/components/actionlistbox/ActionListbox.svelte +1 -1
- package/dist/components/actionlistboxitem/ActionListboxItem.js +2 -2
- package/dist/components/avatar/Avatar.js +2 -2
- package/dist/components/breadcrumb/Breadcrumb.js +2 -2
- package/dist/components/builtinmenu/BuiltInMenu.js +2 -2
- package/dist/components/builtinmenuitem/BuiltInMenuItem.js +2 -2
- package/dist/components/button/Button.js +1 -1
- package/dist/components/callout/Callout.js +2 -2
- package/dist/components/carousel/Carousel.js +2 -2
- package/dist/components/checkbox/Checkbox.js +2 -2
- package/dist/components/checkboxgroup/CheckboxGroup.js +1 -1
- package/dist/components/checklistmenu/CheckListMenu.js +1 -1
- package/dist/components/circularprogressbar/CircularProgressbar.js +2 -2
- package/dist/components/combobox/Combobox.js +4 -0
- package/dist/components/combobox/Combobox.js.map +1 -0
- package/dist/components/combobox/Combobox.spec.js +186 -0
- package/dist/components/combobox/Combobox.stories.d.ts +17 -0
- package/dist/components/combobox/Combobox.stories.d.ts.map +1 -0
- package/dist/components/combobox/Combobox.stories.js +126 -0
- package/dist/components/combobox/Combobox.svelte +421 -0
- package/dist/components/combobox/Combobox.svelte.d.ts +104 -0
- package/dist/components/combobox/Combobox.svelte.d.ts.map +1 -0
- package/dist/components/combobox/README.md +38 -0
- package/dist/components/container/Container.js +2 -2
- package/dist/components/datepicker/Datepicker.js +3 -3
- package/dist/components/datepicker/Datepicker.js.map +1 -1
- package/dist/components/datepicker/Datepicker.svelte +2 -1
- package/dist/components/divider/Divider.js +2 -2
- package/dist/components/drawer/Drawer.js +4 -4
- package/dist/components/drawer/Drawer.svelte +2 -1
- package/dist/components/field/Field.js +2 -2
- package/dist/components/fileuploader/FileUploader.js +2 -2
- package/dist/components/fileuploader/FileUploader.js.map +1 -1
- package/dist/components/fileuploader/FileUploader.svelte +4 -4
- package/dist/components/fileuploader/FileUploader.svelte.d.ts +1 -0
- package/dist/components/fileuploader/FileUploader.svelte.d.ts.map +1 -1
- package/dist/components/fileuploaderitem/FileUploaderItem.js +3 -3
- package/dist/components/fileuploaderitem/FileUploaderItem.svelte +1 -4
- package/dist/components/flag/Flag.js +2 -2
- package/dist/components/iconbutton/IconButton.js +2 -2
- package/dist/components/kpiitem/KpiItem.js +2 -2
- package/dist/components/linearprogressbarbuffer/LinearProgressbarBuffer.js +2 -2
- package/dist/components/linearprogressbarpercentage/LinearProgressbarPercentage.js +2 -2
- package/dist/components/link/Link.js +1 -1
- package/dist/components/loader/Loader.js +2 -2
- package/dist/components/loadingoverlay/LoadingOverlay.js +2 -2
- package/dist/components/loadingoverlay/LoadingOverlay.svelte +1 -1
- package/dist/components/modal/Modal.js +4 -4
- package/dist/components/modal/Modal.js.map +1 -1
- package/dist/components/modal/Modal.spec.js +3 -1
- package/dist/components/modal/Modal.svelte +9 -3
- package/dist/components/modal/Modal.svelte.d.ts +4 -0
- package/dist/components/modal/Modal.svelte.d.ts.map +1 -1
- package/dist/components/modal/README.md +1 -0
- package/dist/components/navigationindicator/NavigationIndicator.js +2 -2
- package/dist/components/numberbadge/NumberBadge.js +2 -2
- package/dist/components/optionlistbox/OptionListbox.js +23 -0
- package/dist/components/optionlistbox/OptionListbox.js.map +1 -0
- package/dist/components/optionlistbox/OptionListbox.spec.js +350 -0
- package/dist/components/optionlistbox/OptionListbox.svelte +566 -0
- package/dist/components/optionlistbox/OptionListbox.svelte.d.ts +92 -0
- package/dist/components/optionlistbox/OptionListbox.svelte.d.ts.map +1 -0
- package/dist/components/optionlistbox/README.md +38 -0
- package/dist/components/overlay/Overlay.js +2 -2
- package/dist/components/overlay/Overlay.svelte +2 -2
- package/dist/components/pageheader/PageHeader.js +2 -2
- package/dist/components/pagination/Pagination.js +4 -4
- package/dist/components/passwordinput/PasswordInput.js +3 -3
- package/dist/components/passwordinput/PasswordInput.js.map +1 -1
- package/dist/components/passwordinput/PasswordInput.svelte +2 -1
- package/dist/components/phonenumber/PhoneNumber.js +4 -4
- package/dist/components/phonenumber/PhoneNumber.js.map +1 -1
- package/dist/components/phonenumber/PhoneNumber.svelte +3 -2
- package/dist/components/pincode/Pincode.js +2 -2
- package/dist/components/pincode/Pincode.js.map +1 -1
- package/dist/components/pincode/Pincode.svelte +3 -2
- package/dist/components/pincode/Pincode.svelte.d.ts +2 -1
- package/dist/components/pincode/Pincode.svelte.d.ts.map +1 -1
- package/dist/components/pincode/README.md +1 -1
- package/dist/components/popover/Popover.js +2 -2
- package/dist/components/quantityselector/QuantitySelector.js +3 -3
- package/dist/components/quantityselector/QuantitySelector.svelte +1 -1
- package/dist/components/radio/Radio.js +2 -2
- package/dist/components/radiogroup/RadioGroup.js +3 -3
- package/dist/components/radiogroup/RadioGroup.js.map +1 -1
- package/dist/components/radiogroup/RadioGroup.svelte +3 -2
- package/dist/components/radiogroup/RadioGroup.svelte.d.ts +1 -0
- package/dist/components/radiogroup/RadioGroup.svelte.d.ts.map +1 -1
- package/dist/components/segmentedcontrol/README.md +6 -3
- package/dist/components/segmentedcontrol/SegmentedControl.js +2 -2
- package/dist/components/segmentedcontrol/SegmentedControl.js.map +1 -1
- package/dist/components/segmentedcontrol/SegmentedControl.spec.js +60 -23
- package/dist/components/segmentedcontrol/SegmentedControl.stories.d.ts.map +1 -1
- package/dist/components/segmentedcontrol/SegmentedControl.stories.js +6 -1
- package/dist/components/segmentedcontrol/SegmentedControl.svelte +23 -10
- package/dist/components/segmentedcontrol/SegmentedControl.svelte.d.ts +10 -3
- package/dist/components/segmentedcontrol/SegmentedControl.svelte.d.ts.map +1 -1
- package/dist/components/select/Select.js +2 -2
- package/dist/components/sidebar/Sidebar.js +2 -2
- package/dist/components/sidebarexpandableitem/SidebarExpandableItem.js +2 -2
- package/dist/components/sidebarfooter/SidebarFooter.js +2 -2
- package/dist/components/sidebarfooter/_SidebarFooterMenu.js +2 -2
- package/dist/components/sidebarheader/SidebarHeader.js +2 -2
- package/dist/components/sidebarnavitem/SidebarNavItem.js +2 -2
- package/dist/components/sidebarshortcutitem/SidebarShortcutItem.js +2 -2
- package/dist/components/sidebarshortcuts/SidebarShortcuts.js +2 -2
- package/dist/components/starrating/StarRating.js +2 -2
- package/dist/components/statusbadge/StatusBadge.js +2 -2
- package/dist/components/statusdot/StatusDot.js +2 -2
- package/dist/components/statusmessage/StatusMessage.js +2 -2
- package/dist/components/statusmessage/StatusMessage.js.map +1 -1
- package/dist/components/statusmessage/StatusMessage.svelte +5 -0
- package/dist/components/statusnotification/StatusNotification.js +2 -2
- package/dist/components/statusnotification/StatusNotification.js.map +1 -1
- package/dist/components/statusnotification/StatusNotification.svelte +5 -0
- package/dist/components/stepperbottombar/StepperBottomBar.js +1 -1
- package/dist/components/steppercompact/StepperCompact.js +2 -2
- package/dist/components/stepperinline/README.md +6 -2
- package/dist/components/stepperinline/StepperInline.js +2 -2
- package/dist/components/stepperinline/StepperInline.js.map +1 -1
- package/dist/components/stepperinline/StepperInline.spec.js +57 -23
- package/dist/components/stepperinline/StepperInline.stories.d.ts.map +1 -1
- package/dist/components/stepperinline/StepperInline.stories.js +6 -11
- package/dist/components/stepperinline/StepperInline.svelte +23 -10
- package/dist/components/stepperinline/StepperInline.svelte.d.ts +10 -2
- package/dist/components/stepperinline/StepperInline.svelte.d.ts.map +1 -1
- package/dist/components/stepperstacked/README.md +15 -0
- package/dist/components/stepperstacked/StepperStacked.js +18 -0
- package/dist/components/stepperstacked/StepperStacked.js.map +1 -0
- package/dist/components/stepperstacked/StepperStacked.spec.js +138 -0
- package/dist/components/stepperstacked/StepperStacked.stories.d.ts +8 -0
- package/dist/components/stepperstacked/StepperStacked.stories.d.ts.map +1 -0
- package/dist/components/stepperstacked/StepperStacked.stories.js +33 -0
- package/dist/components/stepperstacked/StepperStacked.svelte +214 -0
- package/dist/components/stepperstacked/StepperStacked.svelte.d.ts +35 -0
- package/dist/components/stepperstacked/StepperStacked.svelte.d.ts.map +1 -0
- package/dist/components/tab/README.md +1 -0
- package/dist/components/tab/Tab.js +2 -2
- package/dist/components/tab/Tab.js.map +1 -1
- package/dist/components/tab/Tab.svelte +17 -1
- package/dist/components/tab/Tab.svelte.d.ts +4 -0
- package/dist/components/tab/Tab.svelte.d.ts.map +1 -1
- package/dist/components/tabs/Tabs.js +2 -2
- package/dist/components/tabs/Tabs.stories.d.ts +1 -0
- package/dist/components/tabs/Tabs.stories.d.ts.map +1 -1
- package/dist/components/tabs/Tabs.stories.js +10 -0
- package/dist/components/tag/README.md +1 -0
- package/dist/components/tag/Tag.js +2 -2
- package/dist/components/tag/Tag.js.map +1 -1
- package/dist/components/tag/Tag.svelte +7 -0
- package/dist/components/tag/Tag.svelte.d.ts +4 -0
- package/dist/components/tag/Tag.svelte.d.ts.map +1 -1
- package/dist/components/textarea/README.md +1 -1
- package/dist/components/textarea/Textarea.js +2 -2
- package/dist/components/textarea/Textarea.js.map +1 -1
- package/dist/components/textarea/Textarea.svelte +2 -1
- package/dist/components/textarea/Textarea.svelte.d.ts +1 -1
- package/dist/components/textarea/Textarea.svelte.d.ts.map +1 -1
- package/dist/components/textinput/README.md +1 -0
- package/dist/components/textinput/Textinput.js +4 -4
- package/dist/components/textinput/Textinput.js.map +1 -1
- package/dist/components/textinput/Textinput.stories.d.ts.map +1 -1
- package/dist/components/textinput/Textinput.stories.js +1 -0
- package/dist/components/textinput/Textinput.svelte +5 -1
- package/dist/components/textinput/Textinput.svelte.d.ts +2 -1
- package/dist/components/textinput/Textinput.svelte.d.ts.map +1 -1
- package/dist/components/tile/Tile.js +2 -2
- package/dist/components/tileclickable/TileClickable.js +1 -1
- package/dist/components/tileexpandable/TileExpandable.js +2 -2
- package/dist/components/tileexpandable/TileExpandable.js.map +1 -1
- package/dist/components/tileselectable/TileSelectable.js +2 -2
- package/dist/components/toaster/Toaster.js +3 -3
- package/dist/components/toaster/Toaster.js.map +1 -1
- package/dist/components/toaster/Toaster.svelte +6 -1
- package/dist/components/toggle/Toggle.js +2 -2
- package/dist/components/togglegroup/ToggleGroup.js +3 -3
- package/dist/components/togglegroup/ToggleGroup.js.map +1 -1
- package/dist/components/togglegroup/ToggleGroup.svelte +3 -2
- package/dist/components/togglegroup/ToggleGroup.svelte.d.ts +1 -0
- package/dist/components/togglegroup/ToggleGroup.svelte.d.ts.map +1 -1
- package/dist/components/tooltip/Tooltip.js +2 -2
- package/dist/custom-element.js +3 -3
- package/dist/custom-element.js.map +1 -1
- package/dist/documentation/DarkMode.mdx +115 -0
- package/dist/each.js +1 -1
- package/dist/each.js.map +1 -1
- package/dist/floating-item.svelte.js +1 -1
- package/dist/if.js +1 -1
- package/dist/if.js.map +1 -1
- package/dist/index-client.js +1 -1
- package/dist/input.js +1 -1
- package/dist/input.js.map +1 -1
- package/dist/main.d.ts +3 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +3 -1
- package/dist/svelte-component.js +1 -1
- package/dist/svelte-component.js.map +1 -1
- package/dist/svelte-element.js +1 -1
- package/dist/svelte-element.js.map +1 -1
- package/dist/this.js +1 -1
- package/dist/this.js.map +1 -1
- package/package.json +7 -5
package/dist/attributes.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{J as D,K as R,L as W,M as q,N as Q,H as A,O as m,P as
|
|
1
|
+
import{J as D,K as R,L as W,M as q,N as Q,H as A,O as m,P as M,Q as x,R as ee,S as ae,T as te,U as re,V as se,W as ie,X as Y,Y as B,Z as ue,_ as fe,$ as le,i as ce,a0 as oe,a1 as ne,a2 as w,n as _e,j as ve,a3 as de,u as be,o as he,a4 as ye,a5 as Ae,a6 as ge,a7 as Se,a8 as Te,a9 as pe,aa as P,ab as Ne}from"./custom-element.js";function Ee(e,t){var a=void 0,r;D(()=>{a!==(a=t())&&(r&&(R(r),r=null),a&&(r=W(()=>{q(()=>a(e))})))})}function G(e,t={},a,r){for(var s in a){var f=a[s];t[s]!==f&&(a[s]==null?e.style.removeProperty(s):e.style.setProperty(s,f,r))}}function Ie(e,t,a,r){var s=e.__style;if(A||s!==t){var f=Q(t,r);(!A||f!==e.getAttribute("style"))&&(f==null?e.removeAttribute("style"):e.style.cssText=f),e.__style=t}else r&&(Array.isArray(r)?(G(e,a?.[0],r[0]),G(e,a?.[1],r[1],"important")):G(e,a,r));return r}function C(e,t,a=!1){if(e.multiple){if(t==null)return;if(!ee(t))return ae();for(var r of e.options)r.selected=t.includes(L(r));return}for(r of e.options){var s=L(r);if(te(s,t)){r.selected=!0;return}}(!a||t!==void 0)&&(e.selectedIndex=-1)}function X(e){var t=new MutationObserver(()=>{C(e,e.__value)});t.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value"]}),x(()=>{t.disconnect()})}function Ue(e,t,a=t){var r=new WeakSet,s=!0;m(e,"change",f=>{var v=f?"[selected]":":checked",d;if(e.multiple)d=[].map.call(e.querySelectorAll(v),L);else{var b=e.querySelector(v)??e.querySelector("option:not([disabled])");d=b&&L(b)}a(d),M!==null&&r.add(M)}),q(()=>{var f=t();if(e===document.activeElement){var v=M;if(r.has(v))return}if(C(e,f,s),s&&f===void 0){var d=e.querySelector(":checked");d!==null&&(f=L(d),a(f))}e.__value=f,s=!1}),X(e)}function L(e){return"__value"in e?e.__value:e.value}const E=Symbol("class"),I=Symbol("style"),Z=Symbol("is custom element"),z=Symbol("is html"),Le=w?"link":"LINK",ke=w?"input":"INPUT",we=w?"option":"OPTION",Oe=w?"select":"SELECT",Pe=w?"progress":"PROGRESS";function Ce(e){if(A){var t=!1,a=()=>{if(!t){if(t=!0,e.hasAttribute("value")){var r=e.value;k(e,"value",null),e.value=r}if(e.hasAttribute("checked")){var s=e.checked;k(e,"checked",null),e.checked=s}}};e.__on_r=a,Te(a),pe()}}function qe(e,t){var a=H(e);a.value===(a.value=t??void 0)||e.value===t&&(t!==0||e.nodeName!==Pe)||(e.value=t??"")}function Me(e,t){t?e.hasAttribute("selected")||e.setAttribute("selected",""):e.removeAttribute("selected")}function k(e,t,a,r){var s=H(e);A&&(s[t]=e.getAttribute(t),t==="src"||t==="srcset"||t==="href"&&e.nodeName===Le)||s[t]!==(s[t]=a)&&(t==="loading"&&(e[le]=a),a==null?e.removeAttribute(t):typeof a!="string"&&V(e).includes(t)?e[t]=a:e.setAttribute(t,a))}function He(e,t,a){var r=ue,s=fe;let f=A;A&&P(!1),Y(null),B(null);try{t!=="style"&&(U.has(e.getAttribute("is")||e.nodeName)||!customElements||customElements.get(e.getAttribute("is")||e.nodeName.toLowerCase())?V(e).includes(t):a&&typeof a=="object")?e[t]=a:k(e,t,a==null?a:String(a))}finally{Y(r),B(s),f&&P(!0)}}function Ge(e,t,a,r,s=!1,f=!1){if(A&&s&&e.nodeName===ke){var v=e,d=v.type==="checkbox"?"defaultChecked":"defaultValue";d in a||Ce(v)}var b=H(e),h=b[Z],g=!b[z];let T=A&&h;T&&P(!1);var l=t||{},p=e.nodeName===we;for(var y in t)y in a||(a[y]=null);a.class?a.class=_e(a.class):(r||a[E])&&(a.class=null),a[I]&&(a.style??=null);var O=V(e);for(const i in a){let u=a[i];if(p&&i==="value"&&u==null){e.value=e.__value="",l[i]=u;continue}if(i==="class"){var N=e.namespaceURI==="http://www.w3.org/1999/xhtml";ve(e,N,u,r,t?.[E],a[E]),l[i]=u,l[E]=a[E];continue}if(i==="style"){Ie(e,u,t?.[I],a[I]),l[i]=u,l[I]=a[I];continue}var n=l[i];if(!(u===n&&!(u===void 0&&e.hasAttribute(i)))){l[i]=u;var $=i[0]+i[1];if($!=="$$")if($==="on"){const _={},S="$$"+i;let o=i.slice(2);var j=Ne(o);if(de(o)&&(o=o.slice(0,-7),_.capture=!0),!j&&n){if(u!=null)continue;e.removeEventListener(o,l[S],_),l[S]=null}if(j)be(o,e,u),he([o]);else if(u!=null){let F=function(J){l[i].call(this,J)};l[S]=ye(o,e,F,_)}}else if(i==="style")k(e,i,u);else if(i==="autofocus")Ae(e,!!u);else if(!h&&(i==="__value"||i==="value"&&u!=null))e.value=e.__value=u;else if(i==="selected"&&p)Me(e,u);else{var c=i;g||(c=ge(c));var K=c==="defaultValue"||c==="defaultChecked";if(u==null&&!h&&!K)if(b[i]=null,c==="value"||c==="checked"){let _=e;const S=t===void 0;if(c==="value"){let o=_.defaultValue;_.removeAttribute(c),_.defaultValue=o,_.value=_.__value=S?o:null}else{let o=_.defaultChecked;_.removeAttribute(c),_.defaultChecked=o,_.checked=S?o:!1}}else e.removeAttribute(i);else K||O.includes(c)&&(h||typeof u!="string")?(e[c]=u,c in b&&(b[c]=Se)):typeof u!="function"&&k(e,c,u)}}}return T&&P(!0),l}function Ve(e,t,a=[],r=[],s=[],f,v=!1,d=!1){re(s,a,r,b=>{var h=void 0,g={},T=e.nodeName===Oe,l=!1;if(D(()=>{var y=t(...b.map(ce)),O=Ge(e,h,y,f,v,d);l&&T&&"value"in y&&C(e,y.value);for(let n of Object.getOwnPropertySymbols(g))y[n]||R(g[n]);for(let n of Object.getOwnPropertySymbols(y)){var N=y[n];n.description===oe&&(!h||N!==h[n])&&(g[n]&&R(g[n]),g[n]=W(()=>Ee(e,()=>N))),O[n]=N}h=O}),T){var p=e;q(()=>{C(p,h.value,!0),X(p)})}l=!0})}function H(e){return e.__attributes??={[Z]:e.nodeName.includes("-"),[z]:e.namespaceURI===se}}var U=new Map;function V(e){var t=e.getAttribute("is")||e.nodeName,a=U.get(t);if(a)return a;U.set(t,a=[]);for(var r,s=e,f=Element.prototype;f!==s;){r=ne(s);for(var v in r)r[v].set&&a.push(v);s=ie(s)}return a}export{Ve as a,Ie as b,Ee as c,Ue as d,qe as e,Me as f,He as g,Ce as r,k as s};
|
|
2
2
|
//# sourceMappingURL=attributes.js.map
|
package/dist/attributes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attributes.js","sources":["../node_modules/svelte/src/internal/client/dom/elements/attachments.js","../node_modules/svelte/src/internal/client/dom/elements/style.js","../node_modules/svelte/src/internal/client/dom/elements/bindings/select.js","../node_modules/svelte/src/internal/client/dom/elements/attributes.js"],"sourcesContent":["/** @import { Effect } from '#client' */\nimport { branch, effect, destroy_effect, managed } from '../../reactivity/effects.js';\n\n// TODO in 6.0 or 7.0, when we remove legacy mode, we can simplify this by\n// getting rid of the block/branch stuff and just letting the effect rip.\n// see https://github.com/sveltejs/svelte/pull/15962\n\n/**\n * @param {Element} node\n * @param {() => (node: Element) => void} get_fn\n */\nexport function attach(node, get_fn) {\n\t/** @type {false | undefined | ((node: Element) => void)} */\n\tvar fn = undefined;\n\n\t/** @type {Effect | null} */\n\tvar e;\n\n\tmanaged(() => {\n\t\tif (fn !== (fn = get_fn())) {\n\t\t\tif (e) {\n\t\t\t\tdestroy_effect(e);\n\t\t\t\te = null;\n\t\t\t}\n\n\t\t\tif (fn) {\n\t\t\t\te = branch(() => {\n\t\t\t\t\teffect(() => /** @type {(node: Element) => void} */ (fn)(node));\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t});\n}\n","import { to_style } from '../../../shared/attributes.js';\nimport { hydrating } from '../hydration.js';\n\n/**\n * @param {Element & ElementCSSInlineStyle} dom\n * @param {Record<string, any>} prev\n * @param {Record<string, any>} next\n * @param {string} [priority]\n */\nfunction update_styles(dom, prev = {}, next, priority) {\n\tfor (var key in next) {\n\t\tvar value = next[key];\n\n\t\tif (prev[key] !== value) {\n\t\t\tif (next[key] == null) {\n\t\t\t\tdom.style.removeProperty(key);\n\t\t\t} else {\n\t\t\t\tdom.style.setProperty(key, value, priority);\n\t\t\t}\n\t\t}\n\t}\n}\n\n/**\n * @param {Element & ElementCSSInlineStyle} dom\n * @param {string | null} value\n * @param {Record<string, any> | [Record<string, any>, Record<string, any>]} [prev_styles]\n * @param {Record<string, any> | [Record<string, any>, Record<string, any>]} [next_styles]\n */\nexport function set_style(dom, value, prev_styles, next_styles) {\n\t// @ts-expect-error\n\tvar prev = dom.__style;\n\n\tif (hydrating || prev !== value) {\n\t\tvar next_style_attr = to_style(value, next_styles);\n\n\t\tif (!hydrating || next_style_attr !== dom.getAttribute('style')) {\n\t\t\tif (next_style_attr == null) {\n\t\t\t\tdom.removeAttribute('style');\n\t\t\t} else {\n\t\t\t\tdom.style.cssText = next_style_attr;\n\t\t\t}\n\t\t}\n\n\t\t// @ts-expect-error\n\t\tdom.__style = value;\n\t} else if (next_styles) {\n\t\tif (Array.isArray(next_styles)) {\n\t\t\tupdate_styles(dom, prev_styles?.[0], next_styles[0]);\n\t\t\tupdate_styles(dom, prev_styles?.[1], next_styles[1], 'important');\n\t\t} else {\n\t\t\tupdate_styles(dom, prev_styles, next_styles);\n\t\t}\n\t}\n\n\treturn next_styles;\n}\n","import { effect, teardown } from '../../../reactivity/effects.js';\nimport { listen_to_event_and_reset_event } from './shared.js';\nimport { is } from '../../../proxy.js';\nimport { is_array } from '../../../../shared/utils.js';\nimport * as w from '../../../warnings.js';\nimport { Batch, current_batch, previous_batch } from '../../../reactivity/batch.js';\n\n/**\n * Selects the correct option(s) (depending on whether this is a multiple select)\n * @template V\n * @param {HTMLSelectElement} select\n * @param {V} value\n * @param {boolean} mounting\n */\nexport function select_option(select, value, mounting = false) {\n\tif (select.multiple) {\n\t\t// If value is null or undefined, keep the selection as is\n\t\tif (value == undefined) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If not an array, warn and keep the selection as is\n\t\tif (!is_array(value)) {\n\t\t\treturn w.select_multiple_invalid_value();\n\t\t}\n\n\t\t// Otherwise, update the selection\n\t\tfor (var option of select.options) {\n\t\t\toption.selected = value.includes(get_option_value(option));\n\t\t}\n\n\t\treturn;\n\t}\n\n\tfor (option of select.options) {\n\t\tvar option_value = get_option_value(option);\n\t\tif (is(option_value, value)) {\n\t\t\toption.selected = true;\n\t\t\treturn;\n\t\t}\n\t}\n\n\tif (!mounting || value !== undefined) {\n\t\tselect.selectedIndex = -1; // no option should be selected\n\t}\n}\n\n/**\n * Selects the correct option(s) if `value` is given,\n * and then sets up a mutation observer to sync the\n * current selection to the dom when it changes. Such\n * changes could for example occur when options are\n * inside an `#each` block.\n * @param {HTMLSelectElement} select\n */\nexport function init_select(select) {\n\tvar observer = new MutationObserver(() => {\n\t\t// @ts-ignore\n\t\tselect_option(select, select.__value);\n\t\t// Deliberately don't update the potential binding value,\n\t\t// the model should be preserved unless explicitly changed\n\t});\n\n\tobserver.observe(select, {\n\t\t// Listen to option element changes\n\t\tchildList: true,\n\t\tsubtree: true, // because of <optgroup>\n\t\t// Listen to option element value attribute changes\n\t\t// (doesn't get notified of select value changes,\n\t\t// because that property is not reflected as an attribute)\n\t\tattributes: true,\n\t\tattributeFilter: ['value']\n\t});\n\n\tteardown(() => {\n\t\tobserver.disconnect();\n\t});\n}\n\n/**\n * @param {HTMLSelectElement} select\n * @param {() => unknown} get\n * @param {(value: unknown) => void} set\n * @returns {void}\n */\nexport function bind_select_value(select, get, set = get) {\n\tvar batches = new WeakSet();\n\tvar mounting = true;\n\n\tlisten_to_event_and_reset_event(select, 'change', (is_reset) => {\n\t\tvar query = is_reset ? '[selected]' : ':checked';\n\t\t/** @type {unknown} */\n\t\tvar value;\n\n\t\tif (select.multiple) {\n\t\t\tvalue = [].map.call(select.querySelectorAll(query), get_option_value);\n\t\t} else {\n\t\t\t/** @type {HTMLOptionElement | null} */\n\t\t\tvar selected_option =\n\t\t\t\tselect.querySelector(query) ??\n\t\t\t\t// will fall back to first non-disabled option if no option is selected\n\t\t\t\tselect.querySelector('option:not([disabled])');\n\t\t\tvalue = selected_option && get_option_value(selected_option);\n\t\t}\n\n\t\tset(value);\n\n\t\tif (current_batch !== null) {\n\t\t\tbatches.add(current_batch);\n\t\t}\n\t});\n\n\t// Needs to be an effect, not a render_effect, so that in case of each loops the logic runs after the each block has updated\n\teffect(() => {\n\t\tvar value = get();\n\n\t\tif (select === document.activeElement) {\n\t\t\t// we need both, because in non-async mode, render effects run before previous_batch is set\n\t\t\tvar batch = /** @type {Batch} */ (previous_batch ?? current_batch);\n\n\t\t\t// Don't update the <select> if it is focused. We can get here if, for example,\n\t\t\t// an update is deferred because of async work depending on the select:\n\t\t\t//\n\t\t\t// <select bind:value={selected}>...</select>\n\t\t\t// <p>{await find(selected)}</p>\n\t\t\tif (batches.has(batch)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tselect_option(select, value, mounting);\n\n\t\t// Mounting and value undefined -> take selection from dom\n\t\tif (mounting && value === undefined) {\n\t\t\t/** @type {HTMLOptionElement | null} */\n\t\t\tvar selected_option = select.querySelector(':checked');\n\t\t\tif (selected_option !== null) {\n\t\t\t\tvalue = get_option_value(selected_option);\n\t\t\t\tset(value);\n\t\t\t}\n\t\t}\n\n\t\t// @ts-ignore\n\t\tselect.__value = value;\n\t\tmounting = false;\n\t});\n\n\tinit_select(select);\n}\n\n/** @param {HTMLOptionElement} option */\nfunction get_option_value(option) {\n\t// __value only exists if the <option> has a value attribute\n\tif ('__value' in option) {\n\t\treturn option.__value;\n\t} else {\n\t\treturn option.value;\n\t}\n}\n","/** @import { Blocker, Effect } from '#client' */\nimport { DEV } from 'esm-env';\nimport { hydrating, set_hydrating } from '../hydration.js';\nimport { get_descriptors, get_prototype_of } from '../../../shared/utils.js';\nimport { create_event, delegate, delegated, event, event_symbol } from './events.js';\nimport { add_form_reset_listener, autofocus } from './misc.js';\nimport * as w from '../../warnings.js';\nimport { IS_XHTML, LOADING_ATTR_SYMBOL } from '#client/constants';\nimport { queue_micro_task } from '../task.js';\nimport { is_capture_event, can_delegate_event, normalize_attribute } from '../../../../utils.js';\nimport {\n\tactive_effect,\n\tactive_reaction,\n\tget,\n\tset_active_effect,\n\tset_active_reaction\n} from '../../runtime.js';\nimport { attach } from './attachments.js';\nimport { clsx } from '../../../shared/attributes.js';\nimport { set_class } from './class.js';\nimport { set_style } from './style.js';\nimport { ATTACHMENT_KEY, NAMESPACE_HTML, UNINITIALIZED } from '../../../../constants.js';\nimport { branch, destroy_effect, effect, managed } from '../../reactivity/effects.js';\nimport { init_select, select_option } from './bindings/select.js';\nimport { flatten } from '../../reactivity/async.js';\n\nexport const CLASS = Symbol('class');\nexport const STYLE = Symbol('style');\n\nconst IS_CUSTOM_ELEMENT = Symbol('is custom element');\nconst IS_HTML = Symbol('is html');\n\nconst LINK_TAG = IS_XHTML ? 'link' : 'LINK';\nconst INPUT_TAG = IS_XHTML ? 'input' : 'INPUT';\nconst OPTION_TAG = IS_XHTML ? 'option' : 'OPTION';\nconst SELECT_TAG = IS_XHTML ? 'select' : 'SELECT';\nconst PROGRESS_TAG = IS_XHTML ? 'progress' : 'PROGRESS';\n\n/**\n * The value/checked attribute in the template actually corresponds to the defaultValue property, so we need\n * to remove it upon hydration to avoid a bug when someone resets the form value.\n * @param {HTMLInputElement} input\n * @returns {void}\n */\nexport function remove_input_defaults(input) {\n\tif (!hydrating) return;\n\n\tvar already_removed = false;\n\n\t// We try and remove the default attributes later, rather than sync during hydration.\n\t// Doing it sync during hydration has a negative impact on performance, but deferring the\n\t// work in an idle task alleviates this greatly. If a form reset event comes in before\n\t// the idle callback, then we ensure the input defaults are cleared just before.\n\tvar remove_defaults = () => {\n\t\tif (already_removed) return;\n\t\talready_removed = true;\n\n\t\t// Remove the attributes but preserve the values\n\t\tif (input.hasAttribute('value')) {\n\t\t\tvar value = input.value;\n\t\t\tset_attribute(input, 'value', null);\n\t\t\tinput.value = value;\n\t\t}\n\n\t\tif (input.hasAttribute('checked')) {\n\t\t\tvar checked = input.checked;\n\t\t\tset_attribute(input, 'checked', null);\n\t\t\tinput.checked = checked;\n\t\t}\n\t};\n\n\t// @ts-expect-error\n\tinput.__on_r = remove_defaults;\n\tqueue_micro_task(remove_defaults);\n\tadd_form_reset_listener();\n}\n\n/**\n * @param {Element} element\n * @param {any} value\n */\nexport function set_value(element, value) {\n\tvar attributes = get_attributes(element);\n\n\tif (\n\t\tattributes.value ===\n\t\t\t(attributes.value =\n\t\t\t\t// treat null and undefined the same for the initial value\n\t\t\t\tvalue ?? undefined) ||\n\t\t// @ts-expect-error\n\t\t// `progress` elements always need their value set when it's `0`\n\t\t(element.value === value && (value !== 0 || element.nodeName !== PROGRESS_TAG))\n\t) {\n\t\treturn;\n\t}\n\n\t// @ts-expect-error\n\telement.value = value ?? '';\n}\n\n/**\n * @param {Element} element\n * @param {boolean} checked\n */\nexport function set_checked(element, checked) {\n\tvar attributes = get_attributes(element);\n\n\tif (\n\t\tattributes.checked ===\n\t\t(attributes.checked =\n\t\t\t// treat null and undefined the same for the initial value\n\t\t\tchecked ?? undefined)\n\t) {\n\t\treturn;\n\t}\n\n\t// @ts-expect-error\n\telement.checked = checked;\n}\n\n/**\n * Sets the `selected` attribute on an `option` element.\n * Not set through the property because that doesn't reflect to the DOM,\n * which means it wouldn't be taken into account when a form is reset.\n * @param {HTMLOptionElement} element\n * @param {boolean} selected\n */\nexport function set_selected(element, selected) {\n\tif (selected) {\n\t\t// The selected option could've changed via user selection, and\n\t\t// setting the value without this check would set it back.\n\t\tif (!element.hasAttribute('selected')) {\n\t\t\telement.setAttribute('selected', '');\n\t\t}\n\t} else {\n\t\telement.removeAttribute('selected');\n\t}\n}\n\n/**\n * Applies the default checked property without influencing the current checked property.\n * @param {HTMLInputElement} element\n * @param {boolean} checked\n */\nexport function set_default_checked(element, checked) {\n\tconst existing_value = element.checked;\n\telement.defaultChecked = checked;\n\telement.checked = existing_value;\n}\n\n/**\n * Applies the default value property without influencing the current value property.\n * @param {HTMLInputElement | HTMLTextAreaElement} element\n * @param {string} value\n */\nexport function set_default_value(element, value) {\n\tconst existing_value = element.value;\n\telement.defaultValue = value;\n\telement.value = existing_value;\n}\n\n/**\n * @param {Element} element\n * @param {string} attribute\n * @param {string | null} value\n * @param {boolean} [skip_warning]\n */\nexport function set_attribute(element, attribute, value, skip_warning) {\n\tvar attributes = get_attributes(element);\n\n\tif (hydrating) {\n\t\tattributes[attribute] = element.getAttribute(attribute);\n\n\t\tif (\n\t\t\tattribute === 'src' ||\n\t\t\tattribute === 'srcset' ||\n\t\t\t(attribute === 'href' && element.nodeName === LINK_TAG)\n\t\t) {\n\t\t\tif (!skip_warning) {\n\t\t\t\tcheck_src_in_dev_hydration(element, attribute, value ?? '');\n\t\t\t}\n\n\t\t\t// If we reset these attributes, they would result in another network request, which we want to avoid.\n\t\t\t// We assume they are the same between client and server as checking if they are equal is expensive\n\t\t\t// (we can't just compare the strings as they can be different between client and server but result in the\n\t\t\t// same url, so we would need to create hidden anchor elements to compare them)\n\t\t\treturn;\n\t\t}\n\t}\n\n\tif (attributes[attribute] === (attributes[attribute] = value)) return;\n\n\tif (attribute === 'loading') {\n\t\t// @ts-expect-error\n\t\telement[LOADING_ATTR_SYMBOL] = value;\n\t}\n\n\tif (value == null) {\n\t\telement.removeAttribute(attribute);\n\t} else if (typeof value !== 'string' && get_setters(element).includes(attribute)) {\n\t\t// @ts-ignore\n\t\telement[attribute] = value;\n\t} else {\n\t\telement.setAttribute(attribute, value);\n\t}\n}\n\n/**\n * @param {Element} dom\n * @param {string} attribute\n * @param {string} value\n */\nexport function set_xlink_attribute(dom, attribute, value) {\n\tdom.setAttributeNS('http://www.w3.org/1999/xlink', attribute, value);\n}\n\n/**\n * @param {HTMLElement} node\n * @param {string} prop\n * @param {any} value\n */\nexport function set_custom_element_data(node, prop, value) {\n\t// We need to ensure that setting custom element props, which can\n\t// invoke lifecycle methods on other custom elements, does not also\n\t// associate those lifecycle methods with the current active reaction\n\t// or effect\n\tvar previous_reaction = active_reaction;\n\tvar previous_effect = active_effect;\n\n\t// If we're hydrating but the custom element is from Svelte, and it already scaffolded,\n\t// then it might run block logic in hydration mode, which we have to prevent.\n\tlet was_hydrating = hydrating;\n\tif (hydrating) {\n\t\tset_hydrating(false);\n\t}\n\n\tset_active_reaction(null);\n\tset_active_effect(null);\n\n\ttry {\n\t\tif (\n\t\t\t// `style` should use `set_attribute` rather than the setter\n\t\t\tprop !== 'style' &&\n\t\t\t// Don't compute setters for custom elements while they aren't registered yet,\n\t\t\t// because during their upgrade/instantiation they might add more setters.\n\t\t\t// Instead, fall back to a simple \"an object, then set as property\" heuristic.\n\t\t\t(setters_cache.has(node.getAttribute('is') || node.nodeName) ||\n\t\t\t// customElements may not be available in browser extension contexts\n\t\t\t!customElements ||\n\t\t\tcustomElements.get(node.getAttribute('is') || node.nodeName.toLowerCase())\n\t\t\t\t? get_setters(node).includes(prop)\n\t\t\t\t: value && typeof value === 'object')\n\t\t) {\n\t\t\t// @ts-expect-error\n\t\t\tnode[prop] = value;\n\t\t} else {\n\t\t\t// We did getters etc checks already, stringify before passing to set_attribute\n\t\t\t// to ensure it doesn't invoke the same logic again, and potentially populating\n\t\t\t// the setters cache too early.\n\t\t\tset_attribute(node, prop, value == null ? value : String(value));\n\t\t}\n\t} finally {\n\t\tset_active_reaction(previous_reaction);\n\t\tset_active_effect(previous_effect);\n\t\tif (was_hydrating) {\n\t\t\tset_hydrating(true);\n\t\t}\n\t}\n}\n\n/**\n * Spreads attributes onto a DOM element, taking into account the currently set attributes\n * @param {Element & ElementCSSInlineStyle} element\n * @param {Record<string | symbol, any> | undefined} prev\n * @param {Record<string | symbol, any>} next New attributes - this function mutates this object\n * @param {string} [css_hash]\n * @param {boolean} [should_remove_defaults]\n * @param {boolean} [skip_warning]\n * @returns {Record<string, any>}\n */\nfunction set_attributes(\n\telement,\n\tprev,\n\tnext,\n\tcss_hash,\n\tshould_remove_defaults = false,\n\tskip_warning = false\n) {\n\tif (hydrating && should_remove_defaults && element.nodeName === INPUT_TAG) {\n\t\tvar input = /** @type {HTMLInputElement} */ (element);\n\t\tvar attribute = input.type === 'checkbox' ? 'defaultChecked' : 'defaultValue';\n\n\t\tif (!(attribute in next)) {\n\t\t\tremove_input_defaults(input);\n\t\t}\n\t}\n\n\tvar attributes = get_attributes(element);\n\n\tvar is_custom_element = attributes[IS_CUSTOM_ELEMENT];\n\tvar preserve_attribute_case = !attributes[IS_HTML];\n\n\t// If we're hydrating but the custom element is from Svelte, and it already scaffolded,\n\t// then it might run block logic in hydration mode, which we have to prevent.\n\tlet is_hydrating_custom_element = hydrating && is_custom_element;\n\tif (is_hydrating_custom_element) {\n\t\tset_hydrating(false);\n\t}\n\n\tvar current = prev || {};\n\tvar is_option_element = element.nodeName === OPTION_TAG;\n\n\tfor (var key in prev) {\n\t\tif (!(key in next)) {\n\t\t\tnext[key] = null;\n\t\t}\n\t}\n\n\tif (next.class) {\n\t\tnext.class = clsx(next.class);\n\t} else if (css_hash || next[CLASS]) {\n\t\tnext.class = null; /* force call to set_class() */\n\t}\n\n\tif (next[STYLE]) {\n\t\tnext.style ??= null; /* force call to set_style() */\n\t}\n\n\tvar setters = get_setters(element);\n\n\t// since key is captured we use const\n\tfor (const key in next) {\n\t\t// let instead of var because referenced in a closure\n\t\tlet value = next[key];\n\n\t\t// Up here because we want to do this for the initial value, too, even if it's undefined,\n\t\t// and this wouldn't be reached in case of undefined because of the equality check below\n\t\tif (is_option_element && key === 'value' && value == null) {\n\t\t\t// The <option> element is a special case because removing the value attribute means\n\t\t\t// the value is set to the text content of the option element, and setting the value\n\t\t\t// to null or undefined means the value is set to the string \"null\" or \"undefined\".\n\t\t\t// To align with how we handle this case in non-spread-scenarios, this logic is needed.\n\t\t\t// There's a super-edge-case bug here that is left in in favor of smaller code size:\n\t\t\t// Because of the \"set missing props to null\" logic above, we can't differentiate\n\t\t\t// between a missing value and an explicitly set value of null or undefined. That means\n\t\t\t// that once set, the value attribute of an <option> element can't be removed. This is\n\t\t\t// a very rare edge case, and removing the attribute altogether isn't possible either\n\t\t\t// for the <option value={undefined}> case, so we're not losing any functionality here.\n\t\t\t// @ts-ignore\n\t\t\telement.value = element.__value = '';\n\t\t\tcurrent[key] = value;\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (key === 'class') {\n\t\t\tvar is_html = element.namespaceURI === 'http://www.w3.org/1999/xhtml';\n\t\t\tset_class(element, is_html, value, css_hash, prev?.[CLASS], next[CLASS]);\n\t\t\tcurrent[key] = value;\n\t\t\tcurrent[CLASS] = next[CLASS];\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (key === 'style') {\n\t\t\tset_style(element, value, prev?.[STYLE], next[STYLE]);\n\t\t\tcurrent[key] = value;\n\t\t\tcurrent[STYLE] = next[STYLE];\n\t\t\tcontinue;\n\t\t}\n\n\t\tvar prev_value = current[key];\n\n\t\t// Skip if value is unchanged, unless it's `undefined` and the element still has the attribute\n\t\tif (value === prev_value && !(value === undefined && element.hasAttribute(key))) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tcurrent[key] = value;\n\n\t\tvar prefix = key[0] + key[1]; // this is faster than key.slice(0, 2)\n\t\tif (prefix === '$$') continue;\n\n\t\tif (prefix === 'on') {\n\t\t\t/** @type {{ capture?: true }} */\n\t\t\tconst opts = {};\n\t\t\tconst event_handle_key = '$$' + key;\n\t\t\tlet event_name = key.slice(2);\n\t\t\tvar is_delegated = can_delegate_event(event_name);\n\n\t\t\tif (is_capture_event(event_name)) {\n\t\t\t\tevent_name = event_name.slice(0, -7);\n\t\t\t\topts.capture = true;\n\t\t\t}\n\n\t\t\tif (!is_delegated && prev_value) {\n\t\t\t\t// Listening to same event but different handler -> our handle function below takes care of this\n\t\t\t\t// If we were to remove and add listeners in this case, it could happen that the event is \"swallowed\"\n\t\t\t\t// (the browser seems to not know yet that a new one exists now) and doesn't reach the handler\n\t\t\t\t// https://github.com/sveltejs/svelte/issues/11903\n\t\t\t\tif (value != null) continue;\n\n\t\t\t\telement.removeEventListener(event_name, current[event_handle_key], opts);\n\t\t\t\tcurrent[event_handle_key] = null;\n\t\t\t}\n\n\t\t\tif (is_delegated) {\n\t\t\t\tdelegated(event_name, element, value);\n\t\t\t\tdelegate([event_name]);\n\t\t\t} else if (value != null) {\n\t\t\t\t/**\n\t\t\t\t * @this {any}\n\t\t\t\t * @param {Event} evt\n\t\t\t\t */\n\t\t\t\tfunction handle(evt) {\n\t\t\t\t\tcurrent[key].call(this, evt);\n\t\t\t\t}\n\n\t\t\t\tcurrent[event_handle_key] = create_event(event_name, element, handle, opts);\n\t\t\t}\n\t\t} else if (key === 'style') {\n\t\t\t// avoid using the setter\n\t\t\tset_attribute(element, key, value);\n\t\t} else if (key === 'autofocus') {\n\t\t\tautofocus(/** @type {HTMLElement} */ (element), Boolean(value));\n\t\t} else if (!is_custom_element && (key === '__value' || (key === 'value' && value != null))) {\n\t\t\t// @ts-ignore We're not running this for custom elements because __value is actually\n\t\t\t// how Lit stores the current value on the element, and messing with that would break things.\n\t\t\telement.value = element.__value = value;\n\t\t} else if (key === 'selected' && is_option_element) {\n\t\t\tset_selected(/** @type {HTMLOptionElement} */ (element), value);\n\t\t} else {\n\t\t\tvar name = key;\n\t\t\tif (!preserve_attribute_case) {\n\t\t\t\tname = normalize_attribute(name);\n\t\t\t}\n\n\t\t\tvar is_default = name === 'defaultValue' || name === 'defaultChecked';\n\n\t\t\tif (value == null && !is_custom_element && !is_default) {\n\t\t\t\tattributes[key] = null;\n\n\t\t\t\tif (name === 'value' || name === 'checked') {\n\t\t\t\t\t// removing value/checked also removes defaultValue/defaultChecked — preserve\n\t\t\t\t\tlet input = /** @type {HTMLInputElement} */ (element);\n\t\t\t\t\tconst use_default = prev === undefined;\n\t\t\t\t\tif (name === 'value') {\n\t\t\t\t\t\tlet previous = input.defaultValue;\n\t\t\t\t\t\tinput.removeAttribute(name);\n\t\t\t\t\t\tinput.defaultValue = previous;\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tinput.value = input.__value = use_default ? previous : null;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tlet previous = input.defaultChecked;\n\t\t\t\t\t\tinput.removeAttribute(name);\n\t\t\t\t\t\tinput.defaultChecked = previous;\n\t\t\t\t\t\tinput.checked = use_default ? previous : false;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\telement.removeAttribute(key);\n\t\t\t\t}\n\t\t\t} else if (\n\t\t\t\tis_default ||\n\t\t\t\t(setters.includes(name) && (is_custom_element || typeof value !== 'string'))\n\t\t\t) {\n\t\t\t\t// @ts-ignore\n\t\t\t\telement[name] = value;\n\t\t\t\t// remove it from attributes's cache\n\t\t\t\tif (name in attributes) attributes[name] = UNINITIALIZED;\n\t\t\t} else if (typeof value !== 'function') {\n\t\t\t\tset_attribute(element, name, value, skip_warning);\n\t\t\t}\n\t\t}\n\t}\n\n\tif (is_hydrating_custom_element) {\n\t\tset_hydrating(true);\n\t}\n\n\treturn current;\n}\n\n/**\n * @param {Element & ElementCSSInlineStyle} element\n * @param {(...expressions: any) => Record<string | symbol, any>} fn\n * @param {Array<() => any>} sync\n * @param {Array<() => Promise<any>>} async\n * @param {Blocker[]} blockers\n * @param {string} [css_hash]\n * @param {boolean} [should_remove_defaults]\n * @param {boolean} [skip_warning]\n */\nexport function attribute_effect(\n\telement,\n\tfn,\n\tsync = [],\n\tasync = [],\n\tblockers = [],\n\tcss_hash,\n\tshould_remove_defaults = false,\n\tskip_warning = false\n) {\n\tflatten(blockers, sync, async, (values) => {\n\t\t/** @type {Record<string | symbol, any> | undefined} */\n\t\tvar prev = undefined;\n\n\t\t/** @type {Record<symbol, Effect>} */\n\t\tvar effects = {};\n\n\t\tvar is_select = element.nodeName === SELECT_TAG;\n\t\tvar inited = false;\n\n\t\tmanaged(() => {\n\t\t\tvar next = fn(...values.map(get));\n\t\t\t/** @type {Record<string | symbol, any>} */\n\t\t\tvar current = set_attributes(\n\t\t\t\telement,\n\t\t\t\tprev,\n\t\t\t\tnext,\n\t\t\t\tcss_hash,\n\t\t\t\tshould_remove_defaults,\n\t\t\t\tskip_warning\n\t\t\t);\n\n\t\t\tif (inited && is_select && 'value' in next) {\n\t\t\t\tselect_option(/** @type {HTMLSelectElement} */ (element), next.value);\n\t\t\t}\n\n\t\t\tfor (let symbol of Object.getOwnPropertySymbols(effects)) {\n\t\t\t\tif (!next[symbol]) destroy_effect(effects[symbol]);\n\t\t\t}\n\n\t\t\tfor (let symbol of Object.getOwnPropertySymbols(next)) {\n\t\t\t\tvar n = next[symbol];\n\n\t\t\t\tif (symbol.description === ATTACHMENT_KEY && (!prev || n !== prev[symbol])) {\n\t\t\t\t\tif (effects[symbol]) destroy_effect(effects[symbol]);\n\t\t\t\t\teffects[symbol] = branch(() => attach(element, () => n));\n\t\t\t\t}\n\n\t\t\t\tcurrent[symbol] = n;\n\t\t\t}\n\n\t\t\tprev = current;\n\t\t});\n\n\t\tif (is_select) {\n\t\t\tvar select = /** @type {HTMLSelectElement} */ (element);\n\n\t\t\teffect(() => {\n\t\t\t\tselect_option(select, /** @type {Record<string | symbol, any>} */ (prev).value, true);\n\t\t\t\tinit_select(select);\n\t\t\t});\n\t\t}\n\n\t\tinited = true;\n\t});\n}\n\n/**\n *\n * @param {Element} element\n */\nfunction get_attributes(element) {\n\treturn /** @type {Record<string | symbol, unknown>} **/ (\n\t\t// @ts-expect-error\n\t\telement.__attributes ??= {\n\t\t\t[IS_CUSTOM_ELEMENT]: element.nodeName.includes('-'),\n\t\t\t[IS_HTML]: element.namespaceURI === NAMESPACE_HTML\n\t\t}\n\t);\n}\n\n/** @type {Map<string, string[]>} */\nvar setters_cache = new Map();\n\n/** @param {Element} element */\nfunction get_setters(element) {\n\tvar cache_key = element.getAttribute('is') || element.nodeName;\n\tvar setters = setters_cache.get(cache_key);\n\tif (setters) return setters;\n\tsetters_cache.set(cache_key, (setters = []));\n\n\tvar descriptors;\n\tvar proto = element; // In the case of custom elements there might be setters on the instance\n\tvar element_proto = Element.prototype;\n\n\t// Stop at Element, from there on there's only unnecessary setters we're not interested in\n\t// Do not use contructor.name here as that's unreliable in some browser environments\n\twhile (element_proto !== proto) {\n\t\tdescriptors = get_descriptors(proto);\n\n\t\tfor (var key in descriptors) {\n\t\t\tif (descriptors[key].set) {\n\t\t\t\tsetters.push(key);\n\t\t\t}\n\t\t}\n\n\t\tproto = get_prototype_of(proto);\n\t}\n\n\treturn setters;\n}\n\n/**\n * @param {any} element\n * @param {string} attribute\n * @param {string} value\n */\nfunction check_src_in_dev_hydration(element, attribute, value) {\n\tif (!DEV) return;\n\tif (attribute === 'srcset' && srcset_url_equal(element, value)) return;\n\tif (src_url_equal(element.getAttribute(attribute) ?? '', value)) return;\n\n\tw.hydration_attribute_changed(\n\t\tattribute,\n\t\telement.outerHTML.replace(element.innerHTML, element.innerHTML && '...'),\n\t\tString(value)\n\t);\n}\n\n/**\n * @param {string} element_src\n * @param {string} url\n * @returns {boolean}\n */\nfunction src_url_equal(element_src, url) {\n\tif (element_src === url) return true;\n\treturn new URL(element_src, document.baseURI).href === new URL(url, document.baseURI).href;\n}\n\n/** @param {string} srcset */\nfunction split_srcset(srcset) {\n\treturn srcset.split(',').map((src) => src.trim().split(' ').filter(Boolean));\n}\n\n/**\n * @param {HTMLSourceElement | HTMLImageElement} element\n * @param {string} srcset\n * @returns {boolean}\n */\nfunction srcset_url_equal(element, srcset) {\n\tvar element_urls = split_srcset(element.srcset);\n\tvar urls = split_srcset(srcset);\n\n\treturn (\n\t\turls.length === element_urls.length &&\n\t\turls.every(\n\t\t\t([url, width], i) =>\n\t\t\t\twidth === element_urls[i][1] &&\n\t\t\t\t// We need to test both ways because Vite will create an a full URL with\n\t\t\t\t// `new URL(asset, import.meta.url).href` for the client when `base: './'`, and the\n\t\t\t\t// relative URLs inside srcset are not automatically resolved to absolute URLs by\n\t\t\t\t// browsers (in contrast to img.src). This means both SSR and DOM code could\n\t\t\t\t// contain relative or absolute URLs.\n\t\t\t\t(src_url_equal(element_urls[i][0], url) || src_url_equal(url, element_urls[i][0]))\n\t\t)\n\t);\n}\n"],"names":["attach","node","get_fn","fn","e","managed","destroy_effect","branch","effect","update_styles","dom","prev","next","priority","key","value","set_style","prev_styles","next_styles","hydrating","next_style_attr","to_style","select_option","select","mounting","is_array","w.select_multiple_invalid_value","option","get_option_value","option_value","is","init_select","observer","teardown","bind_select_value","get","set","batches","listen_to_event_and_reset_event","is_reset","query","selected_option","current_batch","batch","previous_batch","CLASS","STYLE","IS_CUSTOM_ELEMENT","IS_HTML","LINK_TAG","IS_XHTML","INPUT_TAG","OPTION_TAG","SELECT_TAG","PROGRESS_TAG","remove_input_defaults","input","already_removed","remove_defaults","set_attribute","checked","queue_micro_task","add_form_reset_listener","set_value","element","attributes","get_attributes","set_selected","selected","attribute","skip_warning","LOADING_ATTR_SYMBOL","get_setters","set_custom_element_data","prop","previous_reaction","active_reaction","previous_effect","active_effect","was_hydrating","set_hydrating","set_active_reaction","set_active_effect","setters_cache","set_attributes","css_hash","should_remove_defaults","is_custom_element","preserve_attribute_case","is_hydrating_custom_element","current","is_option_element","clsx","setters","is_html","set_class","prev_value","prefix","opts","event_handle_key","event_name","is_delegated","can_delegate_event","is_capture_event","delegated","delegate","handle","evt","create_event","autofocus","name","normalize_attribute","is_default","use_default","previous","UNINITIALIZED","attribute_effect","sync","async","blockers","flatten","values","effects","is_select","inited","symbol","n","ATTACHMENT_KEY","NAMESPACE_HTML","cache_key","descriptors","proto","element_proto","get_descriptors","get_prototype_of"],"mappings":"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","x_google_ignoreList":[0,1,2,3]}
|
|
1
|
+
{"version":3,"file":"attributes.js","sources":["../node_modules/svelte/src/internal/client/dom/elements/attachments.js","../node_modules/svelte/src/internal/client/dom/elements/style.js","../node_modules/svelte/src/internal/client/dom/elements/bindings/select.js","../node_modules/svelte/src/internal/client/dom/elements/attributes.js"],"sourcesContent":["/** @import { Effect } from '#client' */\nimport { branch, effect, destroy_effect, managed } from '../../reactivity/effects.js';\n\n// TODO in 6.0 or 7.0, when we remove legacy mode, we can simplify this by\n// getting rid of the block/branch stuff and just letting the effect rip.\n// see https://github.com/sveltejs/svelte/pull/15962\n\n/**\n * @param {Element} node\n * @param {() => (node: Element) => void} get_fn\n */\nexport function attach(node, get_fn) {\n\t/** @type {false | undefined | ((node: Element) => void)} */\n\tvar fn = undefined;\n\n\t/** @type {Effect | null} */\n\tvar e;\n\n\tmanaged(() => {\n\t\tif (fn !== (fn = get_fn())) {\n\t\t\tif (e) {\n\t\t\t\tdestroy_effect(e);\n\t\t\t\te = null;\n\t\t\t}\n\n\t\t\tif (fn) {\n\t\t\t\te = branch(() => {\n\t\t\t\t\teffect(() => /** @type {(node: Element) => void} */ (fn)(node));\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t});\n}\n","import { to_style } from '../../../shared/attributes.js';\nimport { hydrating } from '../hydration.js';\n\n/**\n * @param {Element & ElementCSSInlineStyle} dom\n * @param {Record<string, any>} prev\n * @param {Record<string, any>} next\n * @param {string} [priority]\n */\nfunction update_styles(dom, prev = {}, next, priority) {\n\tfor (var key in next) {\n\t\tvar value = next[key];\n\n\t\tif (prev[key] !== value) {\n\t\t\tif (next[key] == null) {\n\t\t\t\tdom.style.removeProperty(key);\n\t\t\t} else {\n\t\t\t\tdom.style.setProperty(key, value, priority);\n\t\t\t}\n\t\t}\n\t}\n}\n\n/**\n * @param {Element & ElementCSSInlineStyle} dom\n * @param {string | null} value\n * @param {Record<string, any> | [Record<string, any>, Record<string, any>]} [prev_styles]\n * @param {Record<string, any> | [Record<string, any>, Record<string, any>]} [next_styles]\n */\nexport function set_style(dom, value, prev_styles, next_styles) {\n\t// @ts-expect-error\n\tvar prev = dom.__style;\n\n\tif (hydrating || prev !== value) {\n\t\tvar next_style_attr = to_style(value, next_styles);\n\n\t\tif (!hydrating || next_style_attr !== dom.getAttribute('style')) {\n\t\t\tif (next_style_attr == null) {\n\t\t\t\tdom.removeAttribute('style');\n\t\t\t} else {\n\t\t\t\tdom.style.cssText = next_style_attr;\n\t\t\t}\n\t\t}\n\n\t\t// @ts-expect-error\n\t\tdom.__style = value;\n\t} else if (next_styles) {\n\t\tif (Array.isArray(next_styles)) {\n\t\t\tupdate_styles(dom, prev_styles?.[0], next_styles[0]);\n\t\t\tupdate_styles(dom, prev_styles?.[1], next_styles[1], 'important');\n\t\t} else {\n\t\t\tupdate_styles(dom, prev_styles, next_styles);\n\t\t}\n\t}\n\n\treturn next_styles;\n}\n","import { effect, teardown } from '../../../reactivity/effects.js';\nimport { listen_to_event_and_reset_event } from './shared.js';\nimport { is } from '../../../proxy.js';\nimport { is_array } from '../../../../shared/utils.js';\nimport * as w from '../../../warnings.js';\nimport { Batch, current_batch, previous_batch } from '../../../reactivity/batch.js';\nimport { async_mode_flag } from '../../../../flags/index.js';\n\n/**\n * Selects the correct option(s) (depending on whether this is a multiple select)\n * @template V\n * @param {HTMLSelectElement} select\n * @param {V} value\n * @param {boolean} mounting\n */\nexport function select_option(select, value, mounting = false) {\n\tif (select.multiple) {\n\t\t// If value is null or undefined, keep the selection as is\n\t\tif (value == undefined) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If not an array, warn and keep the selection as is\n\t\tif (!is_array(value)) {\n\t\t\treturn w.select_multiple_invalid_value();\n\t\t}\n\n\t\t// Otherwise, update the selection\n\t\tfor (var option of select.options) {\n\t\t\toption.selected = value.includes(get_option_value(option));\n\t\t}\n\n\t\treturn;\n\t}\n\n\tfor (option of select.options) {\n\t\tvar option_value = get_option_value(option);\n\t\tif (is(option_value, value)) {\n\t\t\toption.selected = true;\n\t\t\treturn;\n\t\t}\n\t}\n\n\tif (!mounting || value !== undefined) {\n\t\tselect.selectedIndex = -1; // no option should be selected\n\t}\n}\n\n/**\n * Selects the correct option(s) if `value` is given,\n * and then sets up a mutation observer to sync the\n * current selection to the dom when it changes. Such\n * changes could for example occur when options are\n * inside an `#each` block.\n * @param {HTMLSelectElement} select\n */\nexport function init_select(select) {\n\tvar observer = new MutationObserver(() => {\n\t\t// @ts-ignore\n\t\tselect_option(select, select.__value);\n\t\t// Deliberately don't update the potential binding value,\n\t\t// the model should be preserved unless explicitly changed\n\t});\n\n\tobserver.observe(select, {\n\t\t// Listen to option element changes\n\t\tchildList: true,\n\t\tsubtree: true, // because of <optgroup>\n\t\t// Listen to option element value attribute changes\n\t\t// (doesn't get notified of select value changes,\n\t\t// because that property is not reflected as an attribute)\n\t\tattributes: true,\n\t\tattributeFilter: ['value']\n\t});\n\n\tteardown(() => {\n\t\tobserver.disconnect();\n\t});\n}\n\n/**\n * @param {HTMLSelectElement} select\n * @param {() => unknown} get\n * @param {(value: unknown) => void} set\n * @returns {void}\n */\nexport function bind_select_value(select, get, set = get) {\n\tvar batches = new WeakSet();\n\tvar mounting = true;\n\n\tlisten_to_event_and_reset_event(select, 'change', (is_reset) => {\n\t\tvar query = is_reset ? '[selected]' : ':checked';\n\t\t/** @type {unknown} */\n\t\tvar value;\n\n\t\tif (select.multiple) {\n\t\t\tvalue = [].map.call(select.querySelectorAll(query), get_option_value);\n\t\t} else {\n\t\t\t/** @type {HTMLOptionElement | null} */\n\t\t\tvar selected_option =\n\t\t\t\tselect.querySelector(query) ??\n\t\t\t\t// will fall back to first non-disabled option if no option is selected\n\t\t\t\tselect.querySelector('option:not([disabled])');\n\t\t\tvalue = selected_option && get_option_value(selected_option);\n\t\t}\n\n\t\tset(value);\n\n\t\tif (current_batch !== null) {\n\t\t\tbatches.add(current_batch);\n\t\t}\n\t});\n\n\t// Needs to be an effect, not a render_effect, so that in case of each loops the logic runs after the each block has updated\n\teffect(() => {\n\t\tvar value = get();\n\n\t\tif (select === document.activeElement) {\n\t\t\t// In sync mode render effects are executed during tree traversal -> needs current_batch\n\t\t\t// In async mode render effects are flushed once batch resolved, at which point current_batch is null -> needs previous_batch\n\t\t\tvar batch = /** @type {Batch} */ (async_mode_flag ? previous_batch : current_batch);\n\n\t\t\t// Don't update the <select> if it is focused. We can get here if, for example,\n\t\t\t// an update is deferred because of async work depending on the select:\n\t\t\t//\n\t\t\t// <select bind:value={selected}>...</select>\n\t\t\t// <p>{await find(selected)}</p>\n\t\t\tif (batches.has(batch)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tselect_option(select, value, mounting);\n\n\t\t// Mounting and value undefined -> take selection from dom\n\t\tif (mounting && value === undefined) {\n\t\t\t/** @type {HTMLOptionElement | null} */\n\t\t\tvar selected_option = select.querySelector(':checked');\n\t\t\tif (selected_option !== null) {\n\t\t\t\tvalue = get_option_value(selected_option);\n\t\t\t\tset(value);\n\t\t\t}\n\t\t}\n\n\t\t// @ts-ignore\n\t\tselect.__value = value;\n\t\tmounting = false;\n\t});\n\n\tinit_select(select);\n}\n\n/** @param {HTMLOptionElement} option */\nfunction get_option_value(option) {\n\t// __value only exists if the <option> has a value attribute\n\tif ('__value' in option) {\n\t\treturn option.__value;\n\t} else {\n\t\treturn option.value;\n\t}\n}\n","/** @import { Blocker, Effect } from '#client' */\nimport { DEV } from 'esm-env';\nimport { hydrating, set_hydrating } from '../hydration.js';\nimport { get_descriptors, get_prototype_of } from '../../../shared/utils.js';\nimport { create_event, delegate, delegated, event, event_symbol } from './events.js';\nimport { add_form_reset_listener, autofocus } from './misc.js';\nimport * as w from '../../warnings.js';\nimport { IS_XHTML, LOADING_ATTR_SYMBOL } from '#client/constants';\nimport { queue_micro_task } from '../task.js';\nimport { is_capture_event, can_delegate_event, normalize_attribute } from '../../../../utils.js';\nimport {\n\tactive_effect,\n\tactive_reaction,\n\tget,\n\tset_active_effect,\n\tset_active_reaction\n} from '../../runtime.js';\nimport { attach } from './attachments.js';\nimport { clsx } from '../../../shared/attributes.js';\nimport { set_class } from './class.js';\nimport { set_style } from './style.js';\nimport { ATTACHMENT_KEY, NAMESPACE_HTML, UNINITIALIZED } from '../../../../constants.js';\nimport { branch, destroy_effect, effect, managed } from '../../reactivity/effects.js';\nimport { init_select, select_option } from './bindings/select.js';\nimport { flatten } from '../../reactivity/async.js';\n\nexport const CLASS = Symbol('class');\nexport const STYLE = Symbol('style');\n\nconst IS_CUSTOM_ELEMENT = Symbol('is custom element');\nconst IS_HTML = Symbol('is html');\n\nconst LINK_TAG = IS_XHTML ? 'link' : 'LINK';\nconst INPUT_TAG = IS_XHTML ? 'input' : 'INPUT';\nconst OPTION_TAG = IS_XHTML ? 'option' : 'OPTION';\nconst SELECT_TAG = IS_XHTML ? 'select' : 'SELECT';\nconst PROGRESS_TAG = IS_XHTML ? 'progress' : 'PROGRESS';\n\n/**\n * The value/checked attribute in the template actually corresponds to the defaultValue property, so we need\n * to remove it upon hydration to avoid a bug when someone resets the form value.\n * @param {HTMLInputElement} input\n * @returns {void}\n */\nexport function remove_input_defaults(input) {\n\tif (!hydrating) return;\n\n\tvar already_removed = false;\n\n\t// We try and remove the default attributes later, rather than sync during hydration.\n\t// Doing it sync during hydration has a negative impact on performance, but deferring the\n\t// work in an idle task alleviates this greatly. If a form reset event comes in before\n\t// the idle callback, then we ensure the input defaults are cleared just before.\n\tvar remove_defaults = () => {\n\t\tif (already_removed) return;\n\t\talready_removed = true;\n\n\t\t// Remove the attributes but preserve the values\n\t\tif (input.hasAttribute('value')) {\n\t\t\tvar value = input.value;\n\t\t\tset_attribute(input, 'value', null);\n\t\t\tinput.value = value;\n\t\t}\n\n\t\tif (input.hasAttribute('checked')) {\n\t\t\tvar checked = input.checked;\n\t\t\tset_attribute(input, 'checked', null);\n\t\t\tinput.checked = checked;\n\t\t}\n\t};\n\n\t// @ts-expect-error\n\tinput.__on_r = remove_defaults;\n\tqueue_micro_task(remove_defaults);\n\tadd_form_reset_listener();\n}\n\n/**\n * @param {Element} element\n * @param {any} value\n */\nexport function set_value(element, value) {\n\tvar attributes = get_attributes(element);\n\n\tif (\n\t\tattributes.value ===\n\t\t\t(attributes.value =\n\t\t\t\t// treat null and undefined the same for the initial value\n\t\t\t\tvalue ?? undefined) ||\n\t\t// @ts-expect-error\n\t\t// `progress` elements always need their value set when it's `0`\n\t\t(element.value === value && (value !== 0 || element.nodeName !== PROGRESS_TAG))\n\t) {\n\t\treturn;\n\t}\n\n\t// @ts-expect-error\n\telement.value = value ?? '';\n}\n\n/**\n * @param {Element} element\n * @param {boolean} checked\n */\nexport function set_checked(element, checked) {\n\tvar attributes = get_attributes(element);\n\n\tif (\n\t\tattributes.checked ===\n\t\t(attributes.checked =\n\t\t\t// treat null and undefined the same for the initial value\n\t\t\tchecked ?? undefined)\n\t) {\n\t\treturn;\n\t}\n\n\t// @ts-expect-error\n\telement.checked = checked;\n}\n\n/**\n * Sets the `selected` attribute on an `option` element.\n * Not set through the property because that doesn't reflect to the DOM,\n * which means it wouldn't be taken into account when a form is reset.\n * @param {HTMLOptionElement} element\n * @param {boolean} selected\n */\nexport function set_selected(element, selected) {\n\tif (selected) {\n\t\t// The selected option could've changed via user selection, and\n\t\t// setting the value without this check would set it back.\n\t\tif (!element.hasAttribute('selected')) {\n\t\t\telement.setAttribute('selected', '');\n\t\t}\n\t} else {\n\t\telement.removeAttribute('selected');\n\t}\n}\n\n/**\n * Applies the default checked property without influencing the current checked property.\n * @param {HTMLInputElement} element\n * @param {boolean} checked\n */\nexport function set_default_checked(element, checked) {\n\tconst existing_value = element.checked;\n\telement.defaultChecked = checked;\n\telement.checked = existing_value;\n}\n\n/**\n * Applies the default value property without influencing the current value property.\n * @param {HTMLInputElement | HTMLTextAreaElement} element\n * @param {string} value\n */\nexport function set_default_value(element, value) {\n\tconst existing_value = element.value;\n\telement.defaultValue = value;\n\telement.value = existing_value;\n}\n\n/**\n * @param {Element} element\n * @param {string} attribute\n * @param {string | null} value\n * @param {boolean} [skip_warning]\n */\nexport function set_attribute(element, attribute, value, skip_warning) {\n\tvar attributes = get_attributes(element);\n\n\tif (hydrating) {\n\t\tattributes[attribute] = element.getAttribute(attribute);\n\n\t\tif (\n\t\t\tattribute === 'src' ||\n\t\t\tattribute === 'srcset' ||\n\t\t\t(attribute === 'href' && element.nodeName === LINK_TAG)\n\t\t) {\n\t\t\tif (!skip_warning) {\n\t\t\t\tcheck_src_in_dev_hydration(element, attribute, value ?? '');\n\t\t\t}\n\n\t\t\t// If we reset these attributes, they would result in another network request, which we want to avoid.\n\t\t\t// We assume they are the same between client and server as checking if they are equal is expensive\n\t\t\t// (we can't just compare the strings as they can be different between client and server but result in the\n\t\t\t// same url, so we would need to create hidden anchor elements to compare them)\n\t\t\treturn;\n\t\t}\n\t}\n\n\tif (attributes[attribute] === (attributes[attribute] = value)) return;\n\n\tif (attribute === 'loading') {\n\t\t// @ts-expect-error\n\t\telement[LOADING_ATTR_SYMBOL] = value;\n\t}\n\n\tif (value == null) {\n\t\telement.removeAttribute(attribute);\n\t} else if (typeof value !== 'string' && get_setters(element).includes(attribute)) {\n\t\t// @ts-ignore\n\t\telement[attribute] = value;\n\t} else {\n\t\telement.setAttribute(attribute, value);\n\t}\n}\n\n/**\n * @param {Element} dom\n * @param {string} attribute\n * @param {string} value\n */\nexport function set_xlink_attribute(dom, attribute, value) {\n\tdom.setAttributeNS('http://www.w3.org/1999/xlink', attribute, value);\n}\n\n/**\n * @param {HTMLElement} node\n * @param {string} prop\n * @param {any} value\n */\nexport function set_custom_element_data(node, prop, value) {\n\t// We need to ensure that setting custom element props, which can\n\t// invoke lifecycle methods on other custom elements, does not also\n\t// associate those lifecycle methods with the current active reaction\n\t// or effect\n\tvar previous_reaction = active_reaction;\n\tvar previous_effect = active_effect;\n\n\t// If we're hydrating but the custom element is from Svelte, and it already scaffolded,\n\t// then it might run block logic in hydration mode, which we have to prevent.\n\tlet was_hydrating = hydrating;\n\tif (hydrating) {\n\t\tset_hydrating(false);\n\t}\n\n\tset_active_reaction(null);\n\tset_active_effect(null);\n\n\ttry {\n\t\tif (\n\t\t\t// `style` should use `set_attribute` rather than the setter\n\t\t\tprop !== 'style' &&\n\t\t\t// Don't compute setters for custom elements while they aren't registered yet,\n\t\t\t// because during their upgrade/instantiation they might add more setters.\n\t\t\t// Instead, fall back to a simple \"an object, then set as property\" heuristic.\n\t\t\t(setters_cache.has(node.getAttribute('is') || node.nodeName) ||\n\t\t\t// customElements may not be available in browser extension contexts\n\t\t\t!customElements ||\n\t\t\tcustomElements.get(node.getAttribute('is') || node.nodeName.toLowerCase())\n\t\t\t\t? get_setters(node).includes(prop)\n\t\t\t\t: value && typeof value === 'object')\n\t\t) {\n\t\t\t// @ts-expect-error\n\t\t\tnode[prop] = value;\n\t\t} else {\n\t\t\t// We did getters etc checks already, stringify before passing to set_attribute\n\t\t\t// to ensure it doesn't invoke the same logic again, and potentially populating\n\t\t\t// the setters cache too early.\n\t\t\tset_attribute(node, prop, value == null ? value : String(value));\n\t\t}\n\t} finally {\n\t\tset_active_reaction(previous_reaction);\n\t\tset_active_effect(previous_effect);\n\t\tif (was_hydrating) {\n\t\t\tset_hydrating(true);\n\t\t}\n\t}\n}\n\n/**\n * Spreads attributes onto a DOM element, taking into account the currently set attributes\n * @param {Element & ElementCSSInlineStyle} element\n * @param {Record<string | symbol, any> | undefined} prev\n * @param {Record<string | symbol, any>} next New attributes - this function mutates this object\n * @param {string} [css_hash]\n * @param {boolean} [should_remove_defaults]\n * @param {boolean} [skip_warning]\n * @returns {Record<string, any>}\n */\nfunction set_attributes(\n\telement,\n\tprev,\n\tnext,\n\tcss_hash,\n\tshould_remove_defaults = false,\n\tskip_warning = false\n) {\n\tif (hydrating && should_remove_defaults && element.nodeName === INPUT_TAG) {\n\t\tvar input = /** @type {HTMLInputElement} */ (element);\n\t\tvar attribute = input.type === 'checkbox' ? 'defaultChecked' : 'defaultValue';\n\n\t\tif (!(attribute in next)) {\n\t\t\tremove_input_defaults(input);\n\t\t}\n\t}\n\n\tvar attributes = get_attributes(element);\n\n\tvar is_custom_element = attributes[IS_CUSTOM_ELEMENT];\n\tvar preserve_attribute_case = !attributes[IS_HTML];\n\n\t// If we're hydrating but the custom element is from Svelte, and it already scaffolded,\n\t// then it might run block logic in hydration mode, which we have to prevent.\n\tlet is_hydrating_custom_element = hydrating && is_custom_element;\n\tif (is_hydrating_custom_element) {\n\t\tset_hydrating(false);\n\t}\n\n\tvar current = prev || {};\n\tvar is_option_element = element.nodeName === OPTION_TAG;\n\n\tfor (var key in prev) {\n\t\tif (!(key in next)) {\n\t\t\tnext[key] = null;\n\t\t}\n\t}\n\n\tif (next.class) {\n\t\tnext.class = clsx(next.class);\n\t} else if (css_hash || next[CLASS]) {\n\t\tnext.class = null; /* force call to set_class() */\n\t}\n\n\tif (next[STYLE]) {\n\t\tnext.style ??= null; /* force call to set_style() */\n\t}\n\n\tvar setters = get_setters(element);\n\n\t// since key is captured we use const\n\tfor (const key in next) {\n\t\t// let instead of var because referenced in a closure\n\t\tlet value = next[key];\n\n\t\t// Up here because we want to do this for the initial value, too, even if it's undefined,\n\t\t// and this wouldn't be reached in case of undefined because of the equality check below\n\t\tif (is_option_element && key === 'value' && value == null) {\n\t\t\t// The <option> element is a special case because removing the value attribute means\n\t\t\t// the value is set to the text content of the option element, and setting the value\n\t\t\t// to null or undefined means the value is set to the string \"null\" or \"undefined\".\n\t\t\t// To align with how we handle this case in non-spread-scenarios, this logic is needed.\n\t\t\t// There's a super-edge-case bug here that is left in in favor of smaller code size:\n\t\t\t// Because of the \"set missing props to null\" logic above, we can't differentiate\n\t\t\t// between a missing value and an explicitly set value of null or undefined. That means\n\t\t\t// that once set, the value attribute of an <option> element can't be removed. This is\n\t\t\t// a very rare edge case, and removing the attribute altogether isn't possible either\n\t\t\t// for the <option value={undefined}> case, so we're not losing any functionality here.\n\t\t\t// @ts-ignore\n\t\t\telement.value = element.__value = '';\n\t\t\tcurrent[key] = value;\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (key === 'class') {\n\t\t\tvar is_html = element.namespaceURI === 'http://www.w3.org/1999/xhtml';\n\t\t\tset_class(element, is_html, value, css_hash, prev?.[CLASS], next[CLASS]);\n\t\t\tcurrent[key] = value;\n\t\t\tcurrent[CLASS] = next[CLASS];\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (key === 'style') {\n\t\t\tset_style(element, value, prev?.[STYLE], next[STYLE]);\n\t\t\tcurrent[key] = value;\n\t\t\tcurrent[STYLE] = next[STYLE];\n\t\t\tcontinue;\n\t\t}\n\n\t\tvar prev_value = current[key];\n\n\t\t// Skip if value is unchanged, unless it's `undefined` and the element still has the attribute\n\t\tif (value === prev_value && !(value === undefined && element.hasAttribute(key))) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tcurrent[key] = value;\n\n\t\tvar prefix = key[0] + key[1]; // this is faster than key.slice(0, 2)\n\t\tif (prefix === '$$') continue;\n\n\t\tif (prefix === 'on') {\n\t\t\t/** @type {{ capture?: true }} */\n\t\t\tconst opts = {};\n\t\t\tconst event_handle_key = '$$' + key;\n\t\t\tlet event_name = key.slice(2);\n\t\t\tvar is_delegated = can_delegate_event(event_name);\n\n\t\t\tif (is_capture_event(event_name)) {\n\t\t\t\tevent_name = event_name.slice(0, -7);\n\t\t\t\topts.capture = true;\n\t\t\t}\n\n\t\t\tif (!is_delegated && prev_value) {\n\t\t\t\t// Listening to same event but different handler -> our handle function below takes care of this\n\t\t\t\t// If we were to remove and add listeners in this case, it could happen that the event is \"swallowed\"\n\t\t\t\t// (the browser seems to not know yet that a new one exists now) and doesn't reach the handler\n\t\t\t\t// https://github.com/sveltejs/svelte/issues/11903\n\t\t\t\tif (value != null) continue;\n\n\t\t\t\telement.removeEventListener(event_name, current[event_handle_key], opts);\n\t\t\t\tcurrent[event_handle_key] = null;\n\t\t\t}\n\n\t\t\tif (is_delegated) {\n\t\t\t\tdelegated(event_name, element, value);\n\t\t\t\tdelegate([event_name]);\n\t\t\t} else if (value != null) {\n\t\t\t\t/**\n\t\t\t\t * @this {any}\n\t\t\t\t * @param {Event} evt\n\t\t\t\t */\n\t\t\t\tfunction handle(evt) {\n\t\t\t\t\tcurrent[key].call(this, evt);\n\t\t\t\t}\n\n\t\t\t\tcurrent[event_handle_key] = create_event(event_name, element, handle, opts);\n\t\t\t}\n\t\t} else if (key === 'style') {\n\t\t\t// avoid using the setter\n\t\t\tset_attribute(element, key, value);\n\t\t} else if (key === 'autofocus') {\n\t\t\tautofocus(/** @type {HTMLElement} */ (element), Boolean(value));\n\t\t} else if (!is_custom_element && (key === '__value' || (key === 'value' && value != null))) {\n\t\t\t// @ts-ignore We're not running this for custom elements because __value is actually\n\t\t\t// how Lit stores the current value on the element, and messing with that would break things.\n\t\t\telement.value = element.__value = value;\n\t\t} else if (key === 'selected' && is_option_element) {\n\t\t\tset_selected(/** @type {HTMLOptionElement} */ (element), value);\n\t\t} else {\n\t\t\tvar name = key;\n\t\t\tif (!preserve_attribute_case) {\n\t\t\t\tname = normalize_attribute(name);\n\t\t\t}\n\n\t\t\tvar is_default = name === 'defaultValue' || name === 'defaultChecked';\n\n\t\t\tif (value == null && !is_custom_element && !is_default) {\n\t\t\t\tattributes[key] = null;\n\n\t\t\t\tif (name === 'value' || name === 'checked') {\n\t\t\t\t\t// removing value/checked also removes defaultValue/defaultChecked — preserve\n\t\t\t\t\tlet input = /** @type {HTMLInputElement} */ (element);\n\t\t\t\t\tconst use_default = prev === undefined;\n\t\t\t\t\tif (name === 'value') {\n\t\t\t\t\t\tlet previous = input.defaultValue;\n\t\t\t\t\t\tinput.removeAttribute(name);\n\t\t\t\t\t\tinput.defaultValue = previous;\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tinput.value = input.__value = use_default ? previous : null;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tlet previous = input.defaultChecked;\n\t\t\t\t\t\tinput.removeAttribute(name);\n\t\t\t\t\t\tinput.defaultChecked = previous;\n\t\t\t\t\t\tinput.checked = use_default ? previous : false;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\telement.removeAttribute(key);\n\t\t\t\t}\n\t\t\t} else if (\n\t\t\t\tis_default ||\n\t\t\t\t(setters.includes(name) && (is_custom_element || typeof value !== 'string'))\n\t\t\t) {\n\t\t\t\t// @ts-ignore\n\t\t\t\telement[name] = value;\n\t\t\t\t// remove it from attributes's cache\n\t\t\t\tif (name in attributes) attributes[name] = UNINITIALIZED;\n\t\t\t} else if (typeof value !== 'function') {\n\t\t\t\tset_attribute(element, name, value, skip_warning);\n\t\t\t}\n\t\t}\n\t}\n\n\tif (is_hydrating_custom_element) {\n\t\tset_hydrating(true);\n\t}\n\n\treturn current;\n}\n\n/**\n * @param {Element & ElementCSSInlineStyle} element\n * @param {(...expressions: any) => Record<string | symbol, any>} fn\n * @param {Array<() => any>} sync\n * @param {Array<() => Promise<any>>} async\n * @param {Blocker[]} blockers\n * @param {string} [css_hash]\n * @param {boolean} [should_remove_defaults]\n * @param {boolean} [skip_warning]\n */\nexport function attribute_effect(\n\telement,\n\tfn,\n\tsync = [],\n\tasync = [],\n\tblockers = [],\n\tcss_hash,\n\tshould_remove_defaults = false,\n\tskip_warning = false\n) {\n\tflatten(blockers, sync, async, (values) => {\n\t\t/** @type {Record<string | symbol, any> | undefined} */\n\t\tvar prev = undefined;\n\n\t\t/** @type {Record<symbol, Effect>} */\n\t\tvar effects = {};\n\n\t\tvar is_select = element.nodeName === SELECT_TAG;\n\t\tvar inited = false;\n\n\t\tmanaged(() => {\n\t\t\tvar next = fn(...values.map(get));\n\t\t\t/** @type {Record<string | symbol, any>} */\n\t\t\tvar current = set_attributes(\n\t\t\t\telement,\n\t\t\t\tprev,\n\t\t\t\tnext,\n\t\t\t\tcss_hash,\n\t\t\t\tshould_remove_defaults,\n\t\t\t\tskip_warning\n\t\t\t);\n\n\t\t\tif (inited && is_select && 'value' in next) {\n\t\t\t\tselect_option(/** @type {HTMLSelectElement} */ (element), next.value);\n\t\t\t}\n\n\t\t\tfor (let symbol of Object.getOwnPropertySymbols(effects)) {\n\t\t\t\tif (!next[symbol]) destroy_effect(effects[symbol]);\n\t\t\t}\n\n\t\t\tfor (let symbol of Object.getOwnPropertySymbols(next)) {\n\t\t\t\tvar n = next[symbol];\n\n\t\t\t\tif (symbol.description === ATTACHMENT_KEY && (!prev || n !== prev[symbol])) {\n\t\t\t\t\tif (effects[symbol]) destroy_effect(effects[symbol]);\n\t\t\t\t\teffects[symbol] = branch(() => attach(element, () => n));\n\t\t\t\t}\n\n\t\t\t\tcurrent[symbol] = n;\n\t\t\t}\n\n\t\t\tprev = current;\n\t\t});\n\n\t\tif (is_select) {\n\t\t\tvar select = /** @type {HTMLSelectElement} */ (element);\n\n\t\t\teffect(() => {\n\t\t\t\tselect_option(select, /** @type {Record<string | symbol, any>} */ (prev).value, true);\n\t\t\t\tinit_select(select);\n\t\t\t});\n\t\t}\n\n\t\tinited = true;\n\t});\n}\n\n/**\n *\n * @param {Element} element\n */\nfunction get_attributes(element) {\n\treturn /** @type {Record<string | symbol, unknown>} **/ (\n\t\t// @ts-expect-error\n\t\telement.__attributes ??= {\n\t\t\t[IS_CUSTOM_ELEMENT]: element.nodeName.includes('-'),\n\t\t\t[IS_HTML]: element.namespaceURI === NAMESPACE_HTML\n\t\t}\n\t);\n}\n\n/** @type {Map<string, string[]>} */\nvar setters_cache = new Map();\n\n/** @param {Element} element */\nfunction get_setters(element) {\n\tvar cache_key = element.getAttribute('is') || element.nodeName;\n\tvar setters = setters_cache.get(cache_key);\n\tif (setters) return setters;\n\tsetters_cache.set(cache_key, (setters = []));\n\n\tvar descriptors;\n\tvar proto = element; // In the case of custom elements there might be setters on the instance\n\tvar element_proto = Element.prototype;\n\n\t// Stop at Element, from there on there's only unnecessary setters we're not interested in\n\t// Do not use contructor.name here as that's unreliable in some browser environments\n\twhile (element_proto !== proto) {\n\t\tdescriptors = get_descriptors(proto);\n\n\t\tfor (var key in descriptors) {\n\t\t\tif (descriptors[key].set) {\n\t\t\t\tsetters.push(key);\n\t\t\t}\n\t\t}\n\n\t\tproto = get_prototype_of(proto);\n\t}\n\n\treturn setters;\n}\n\n/**\n * @param {any} element\n * @param {string} attribute\n * @param {string} value\n */\nfunction check_src_in_dev_hydration(element, attribute, value) {\n\tif (!DEV) return;\n\tif (attribute === 'srcset' && srcset_url_equal(element, value)) return;\n\tif (src_url_equal(element.getAttribute(attribute) ?? '', value)) return;\n\n\tw.hydration_attribute_changed(\n\t\tattribute,\n\t\telement.outerHTML.replace(element.innerHTML, element.innerHTML && '...'),\n\t\tString(value)\n\t);\n}\n\n/**\n * @param {string} element_src\n * @param {string} url\n * @returns {boolean}\n */\nfunction src_url_equal(element_src, url) {\n\tif (element_src === url) return true;\n\treturn new URL(element_src, document.baseURI).href === new URL(url, document.baseURI).href;\n}\n\n/** @param {string} srcset */\nfunction split_srcset(srcset) {\n\treturn srcset.split(',').map((src) => src.trim().split(' ').filter(Boolean));\n}\n\n/**\n * @param {HTMLSourceElement | HTMLImageElement} element\n * @param {string} srcset\n * @returns {boolean}\n */\nfunction srcset_url_equal(element, srcset) {\n\tvar element_urls = split_srcset(element.srcset);\n\tvar urls = split_srcset(srcset);\n\n\treturn (\n\t\turls.length === element_urls.length &&\n\t\turls.every(\n\t\t\t([url, width], i) =>\n\t\t\t\twidth === element_urls[i][1] &&\n\t\t\t\t// We need to test both ways because Vite will create an a full URL with\n\t\t\t\t// `new URL(asset, import.meta.url).href` for the client when `base: './'`, and the\n\t\t\t\t// relative URLs inside srcset are not automatically resolved to absolute URLs by\n\t\t\t\t// browsers (in contrast to img.src). This means both SSR and DOM code could\n\t\t\t\t// contain relative or absolute URLs.\n\t\t\t\t(src_url_equal(element_urls[i][0], url) || src_url_equal(url, element_urls[i][0]))\n\t\t)\n\t);\n}\n"],"names":["attach","node","get_fn","fn","e","managed","destroy_effect","branch","effect","update_styles","dom","prev","next","priority","key","value","set_style","prev_styles","next_styles","hydrating","next_style_attr","to_style","select_option","select","mounting","is_array","w.select_multiple_invalid_value","option","get_option_value","option_value","is","init_select","observer","teardown","bind_select_value","get","set","batches","listen_to_event_and_reset_event","is_reset","query","selected_option","current_batch","batch","CLASS","STYLE","IS_CUSTOM_ELEMENT","IS_HTML","LINK_TAG","IS_XHTML","INPUT_TAG","OPTION_TAG","SELECT_TAG","PROGRESS_TAG","remove_input_defaults","input","already_removed","remove_defaults","set_attribute","checked","queue_micro_task","add_form_reset_listener","set_value","element","attributes","get_attributes","set_selected","selected","attribute","skip_warning","LOADING_ATTR_SYMBOL","get_setters","set_custom_element_data","prop","previous_reaction","active_reaction","previous_effect","active_effect","was_hydrating","set_hydrating","set_active_reaction","set_active_effect","setters_cache","set_attributes","css_hash","should_remove_defaults","is_custom_element","preserve_attribute_case","is_hydrating_custom_element","current","is_option_element","clsx","setters","is_html","set_class","prev_value","prefix","opts","event_handle_key","event_name","is_delegated","can_delegate_event","is_capture_event","delegated","delegate","handle","evt","create_event","autofocus","name","normalize_attribute","is_default","use_default","previous","UNINITIALIZED","attribute_effect","sync","async","blockers","flatten","values","effects","is_select","inited","symbol","n","ATTACHMENT_KEY","NAMESPACE_HTML","cache_key","descriptors","proto","element_proto","get_descriptors","get_prototype_of"],"mappings":"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","x_google_ignoreList":[0,1,2,3]}
|
package/dist/branches.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{aw as l,K as o,ax as u,ai as n,L as d,P as m,aC as p,am as _,H as v,ah as k}from"./custom-element.js";class w{anchor;#t=new Map;#s=new Map;#e=new Map;#i=new Set;#a=!0;constructor(t,s=!0){this.anchor=t,this.#a=s}#f=t=>{if(this.#t.has(t)){var s=this.#t.get(t),e=this.#s.get(s);if(e)l(e),this.#i.delete(s);else{var a=this.#e.get(s);a&&(this.#s.set(s,a.effect),this.#e.delete(s),a.fragment.lastChild.remove(),this.anchor.before(a.fragment),e=a.effect)}for(const[i,f]of this.#t){if(this.#t.delete(i),i===t)break;const r=this.#e.get(f);r&&(o(r.effect),this.#e.delete(f))}for(const[i,f]of this.#s){if(i===s||this.#i.has(i))continue;const r=()=>{if(Array.from(this.#t.values()).includes(i)){var c=document.createDocumentFragment();p(f,c),c.append(n()),this.#e.set(i,{effect:f,fragment:c})}else o(f);this.#i.delete(i),this.#s.delete(i)};this.#a||!e?(this.#i.add(i),u(f,r,!1)):r()}}};#r=t=>{this.#t.delete(t);const s=Array.from(this.#t.values());for(const[e,a]of this.#e)s.includes(e)||(o(a.effect),this.#e.delete(e))};ensure(t,s){var e=m,a=_();if(s&&!this.#s.has(t)&&!this.#e.has(t))if(a){var i=document.createDocumentFragment(),f=n();i.append(f),this.#e.set(t,{effect:d(()=>s(f)),fragment:i})}else this.#s.set(t,d(()=>s(this.anchor)));if(this.#t.set(e,t),a){for(const[r,h]of this.#s)r===t?e.unskip_effect(h):e.skip_effect(h);for(const[r,h]of this.#e)r===t?e.unskip_effect(h.effect):e.skip_effect(h.effect);e.oncommit(this.#f),e.ondiscard(this.#r)}else v&&(this.anchor=k),this.#f(e)}}export{w as B};
|
|
2
2
|
//# sourceMappingURL=branches.js.map
|
package/dist/branches.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"branches.js","sources":["../node_modules/svelte/src/internal/client/dom/blocks/branches.js"],"sourcesContent":["/** @import { Effect, TemplateNode } from '#client' */\nimport { Batch, current_batch } from '../../reactivity/batch.js';\nimport {\n\tbranch,\n\tdestroy_effect,\n\tmove_effect,\n\tpause_effect,\n\tresume_effect\n} from '../../reactivity/effects.js';\nimport { hydrate_node, hydrating } from '../hydration.js';\nimport { create_text, should_defer_append } from '../operations.js';\n\n/**\n * @typedef {{ effect: Effect, fragment: DocumentFragment }} Branch\n */\n\n/**\n * @template Key\n */\nexport class BranchManager {\n\t/** @type {TemplateNode} */\n\tanchor;\n\n\t/** @type {Map<Batch, Key>} */\n\t#batches = new Map();\n\n\t/**\n\t * Map of keys to effects that are currently rendered in the DOM.\n\t * These effects are visible and actively part of the document tree.\n\t * Example:\n\t * ```\n\t * {#if condition}\n\t * \tfoo\n\t * {:else}\n\t * \tbar\n\t * {/if}\n\t * ```\n\t * Can result in the entries `true->Effect` and `false->Effect`\n\t * @type {Map<Key, Effect>}\n\t */\n\t#onscreen = new Map();\n\n\t/**\n\t * Similar to #onscreen with respect to the keys, but contains branches that are not yet\n\t * in the DOM, because their insertion is deferred.\n\t * @type {Map<Key, Branch>}\n\t */\n\t#offscreen = new Map();\n\n\t/**\n\t * Keys of effects that are currently outroing\n\t * @type {Set<Key>}\n\t */\n\t#outroing = new Set();\n\n\t/**\n\t * Whether to pause (i.e. outro) on change, or destroy immediately.\n\t * This is necessary for `<svelte:element>`\n\t */\n\t#transition = true;\n\n\t/**\n\t * @param {TemplateNode} anchor\n\t * @param {boolean} transition\n\t */\n\tconstructor(anchor, transition = true) {\n\t\tthis.anchor = anchor;\n\t\tthis.#transition = transition;\n\t}\n\n\t
|
|
1
|
+
{"version":3,"file":"branches.js","sources":["../node_modules/svelte/src/internal/client/dom/blocks/branches.js"],"sourcesContent":["/** @import { Effect, TemplateNode } from '#client' */\nimport { Batch, current_batch } from '../../reactivity/batch.js';\nimport {\n\tbranch,\n\tdestroy_effect,\n\tmove_effect,\n\tpause_effect,\n\tresume_effect\n} from '../../reactivity/effects.js';\nimport { hydrate_node, hydrating } from '../hydration.js';\nimport { create_text, should_defer_append } from '../operations.js';\n\n/**\n * @typedef {{ effect: Effect, fragment: DocumentFragment }} Branch\n */\n\n/**\n * @template Key\n */\nexport class BranchManager {\n\t/** @type {TemplateNode} */\n\tanchor;\n\n\t/** @type {Map<Batch, Key>} */\n\t#batches = new Map();\n\n\t/**\n\t * Map of keys to effects that are currently rendered in the DOM.\n\t * These effects are visible and actively part of the document tree.\n\t * Example:\n\t * ```\n\t * {#if condition}\n\t * \tfoo\n\t * {:else}\n\t * \tbar\n\t * {/if}\n\t * ```\n\t * Can result in the entries `true->Effect` and `false->Effect`\n\t * @type {Map<Key, Effect>}\n\t */\n\t#onscreen = new Map();\n\n\t/**\n\t * Similar to #onscreen with respect to the keys, but contains branches that are not yet\n\t * in the DOM, because their insertion is deferred.\n\t * @type {Map<Key, Branch>}\n\t */\n\t#offscreen = new Map();\n\n\t/**\n\t * Keys of effects that are currently outroing\n\t * @type {Set<Key>}\n\t */\n\t#outroing = new Set();\n\n\t/**\n\t * Whether to pause (i.e. outro) on change, or destroy immediately.\n\t * This is necessary for `<svelte:element>`\n\t */\n\t#transition = true;\n\n\t/**\n\t * @param {TemplateNode} anchor\n\t * @param {boolean} transition\n\t */\n\tconstructor(anchor, transition = true) {\n\t\tthis.anchor = anchor;\n\t\tthis.#transition = transition;\n\t}\n\n\t/**\n\t * @param {Batch} batch\n\t */\n\t#commit = (batch) => {\n\t\t// if this batch was made obsolete, bail\n\t\tif (!this.#batches.has(batch)) return;\n\n\t\tvar key = /** @type {Key} */ (this.#batches.get(batch));\n\n\t\tvar onscreen = this.#onscreen.get(key);\n\n\t\tif (onscreen) {\n\t\t\t// effect is already in the DOM — abort any current outro\n\t\t\tresume_effect(onscreen);\n\t\t\tthis.#outroing.delete(key);\n\t\t} else {\n\t\t\t// effect is currently offscreen. put it in the DOM\n\t\t\tvar offscreen = this.#offscreen.get(key);\n\n\t\t\tif (offscreen) {\n\t\t\t\tthis.#onscreen.set(key, offscreen.effect);\n\t\t\t\tthis.#offscreen.delete(key);\n\n\t\t\t\t// remove the anchor...\n\t\t\t\t/** @type {TemplateNode} */ (offscreen.fragment.lastChild).remove();\n\n\t\t\t\t// ...and append the fragment\n\t\t\t\tthis.anchor.before(offscreen.fragment);\n\t\t\t\tonscreen = offscreen.effect;\n\t\t\t}\n\t\t}\n\n\t\tfor (const [b, k] of this.#batches) {\n\t\t\tthis.#batches.delete(b);\n\n\t\t\tif (b === batch) {\n\t\t\t\t// keep values for newer batches\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tconst offscreen = this.#offscreen.get(k);\n\n\t\t\tif (offscreen) {\n\t\t\t\t// for older batches, destroy offscreen effects\n\t\t\t\t// as they will never be committed\n\t\t\t\tdestroy_effect(offscreen.effect);\n\t\t\t\tthis.#offscreen.delete(k);\n\t\t\t}\n\t\t}\n\n\t\t// outro/destroy all onscreen effects...\n\t\tfor (const [k, effect] of this.#onscreen) {\n\t\t\t// ...except the one that was just committed\n\t\t\t// or those that are already outroing (else the transition is aborted and the effect destroyed right away)\n\t\t\tif (k === key || this.#outroing.has(k)) continue;\n\n\t\t\tconst on_destroy = () => {\n\t\t\t\tconst keys = Array.from(this.#batches.values());\n\n\t\t\t\tif (keys.includes(k)) {\n\t\t\t\t\t// keep the effect offscreen, as another batch will need it\n\t\t\t\t\tvar fragment = document.createDocumentFragment();\n\t\t\t\t\tmove_effect(effect, fragment);\n\n\t\t\t\t\tfragment.append(create_text()); // TODO can we avoid this?\n\n\t\t\t\t\tthis.#offscreen.set(k, { effect, fragment });\n\t\t\t\t} else {\n\t\t\t\t\tdestroy_effect(effect);\n\t\t\t\t}\n\n\t\t\t\tthis.#outroing.delete(k);\n\t\t\t\tthis.#onscreen.delete(k);\n\t\t\t};\n\n\t\t\tif (this.#transition || !onscreen) {\n\t\t\t\tthis.#outroing.add(k);\n\t\t\t\tpause_effect(effect, on_destroy, false);\n\t\t\t} else {\n\t\t\t\ton_destroy();\n\t\t\t}\n\t\t}\n\t};\n\n\t/**\n\t * @param {Batch} batch\n\t */\n\t#discard = (batch) => {\n\t\tthis.#batches.delete(batch);\n\n\t\tconst keys = Array.from(this.#batches.values());\n\n\t\tfor (const [k, branch] of this.#offscreen) {\n\t\t\tif (!keys.includes(k)) {\n\t\t\t\tdestroy_effect(branch.effect);\n\t\t\t\tthis.#offscreen.delete(k);\n\t\t\t}\n\t\t}\n\t};\n\n\t/**\n\t *\n\t * @param {any} key\n\t * @param {null | ((target: TemplateNode) => void)} fn\n\t */\n\tensure(key, fn) {\n\t\tvar batch = /** @type {Batch} */ (current_batch);\n\t\tvar defer = should_defer_append();\n\n\t\tif (fn && !this.#onscreen.has(key) && !this.#offscreen.has(key)) {\n\t\t\tif (defer) {\n\t\t\t\tvar fragment = document.createDocumentFragment();\n\t\t\t\tvar target = create_text();\n\n\t\t\t\tfragment.append(target);\n\n\t\t\t\tthis.#offscreen.set(key, {\n\t\t\t\t\teffect: branch(() => fn(target)),\n\t\t\t\t\tfragment\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tthis.#onscreen.set(\n\t\t\t\t\tkey,\n\t\t\t\t\tbranch(() => fn(this.anchor))\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tthis.#batches.set(batch, key);\n\n\t\tif (defer) {\n\t\t\tfor (const [k, effect] of this.#onscreen) {\n\t\t\t\tif (k === key) {\n\t\t\t\t\tbatch.unskip_effect(effect);\n\t\t\t\t} else {\n\t\t\t\t\tbatch.skip_effect(effect);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor (const [k, branch] of this.#offscreen) {\n\t\t\t\tif (k === key) {\n\t\t\t\t\tbatch.unskip_effect(branch.effect);\n\t\t\t\t} else {\n\t\t\t\t\tbatch.skip_effect(branch.effect);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tbatch.oncommit(this.#commit);\n\t\t\tbatch.ondiscard(this.#discard);\n\t\t} else {\n\t\t\tif (hydrating) {\n\t\t\t\tthis.anchor = hydrate_node;\n\t\t\t}\n\n\t\t\tthis.#commit(batch);\n\t\t}\n\t}\n}\n"],"names":["BranchManager","#batches","#onscreen","#offscreen","#outroing","#transition","anchor","transition","#commit","batch","key","onscreen","resume_effect","offscreen","b","k","destroy_effect","effect","on_destroy","fragment","move_effect","create_text","pause_effect","#discard","keys","branch","fn","current_batch","defer","should_defer_append","target","hydrating","hydrate_node"],"mappings":"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","x_google_ignoreList":[0]}
|
package/dist/bundle.d.ts
CHANGED
|
@@ -11,6 +11,7 @@ import './components/carousel/Carousel.js';
|
|
|
11
11
|
import './components/checkbox/Checkbox.js';
|
|
12
12
|
import './components/checkboxgroup/CheckboxGroup.js';
|
|
13
13
|
import './components/circularprogressbar/CircularProgressbar.js';
|
|
14
|
+
import './components/combobox/Combobox.js';
|
|
14
15
|
import './components/container/Container.js';
|
|
15
16
|
import './components/datepicker/Datepicker.js';
|
|
16
17
|
import './components/divider/Divider.js';
|
|
@@ -54,6 +55,7 @@ import './components/statusnotification/StatusNotification.js';
|
|
|
54
55
|
import './components/steppercompact/StepperCompact.js';
|
|
55
56
|
import './components/stepperinline/StepperInline.js';
|
|
56
57
|
import './components/stepperbottombar/StepperBottomBar.js';
|
|
58
|
+
import './components/stepperstacked/StepperStacked.js';
|
|
57
59
|
import './components/segmentedcontrol/SegmentedControl.js';
|
|
58
60
|
import './components/tab/Tab.js';
|
|
59
61
|
import './components/tabs/Tabs.js';
|
package/dist/bundle.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bundle.d.ts","sourceRoot":"","sources":["../src/bundle.ts"],"names":[],"mappings":"AAAA,OAAO,6CAA6C,CAAC;AACrD,OAAO,iDAAiD,CAAC;AACzD,OAAO,6CAA6C,CAAC;AACrD,OAAO,qDAAqD,CAAC;AAC7D,OAAO,+BAA+B,CAAC;AACvC,OAAO,uCAAuC,CAAC;AAC/C,OAAO,yCAAyC,CAAC;AACjD,OAAO,+BAA+B,CAAC;AACvC,OAAO,iCAAiC,CAAC;AACzC,OAAO,mCAAmC,CAAC;AAC3C,OAAO,mCAAmC,CAAC;AAC3C,OAAO,6CAA6C,CAAC;AACrD,OAAO,yDAAyD,CAAC;AACjE,OAAO,qCAAqC,CAAC;AAC7C,OAAO,uCAAuC,CAAC;AAC/C,OAAO,iCAAiC,CAAC;AACzC,OAAO,+BAA+B,CAAC;AACvC,OAAO,6BAA6B,CAAC;AACrC,OAAO,2CAA2C,CAAC;AACnD,OAAO,2BAA2B,CAAC;AACnC,OAAO,uCAAuC,CAAC;AAC/C,OAAO,iCAAiC,CAAC;AACzC,OAAO,iEAAiE,CAAC;AACzE,OAAO,yEAAyE,CAAC;AACjF,OAAO,2BAA2B,CAAC;AACnC,OAAO,+BAA+B,CAAC;AACvC,OAAO,+CAA+C,CAAC;AACvD,OAAO,6BAA6B,CAAC;AACrC,OAAO,yDAAyD,CAAC;AACjE,OAAO,yCAAyC,CAAC;AACjD,OAAO,iCAAiC,CAAC;AACzC,OAAO,uCAAuC,CAAC;AAC/C,OAAO,uCAAuC,CAAC;AAC/C,OAAO,6CAA6C,CAAC;AACrD,OAAO,yCAAyC,CAAC;AACjD,OAAO,iCAAiC,CAAC;AACzC,OAAO,iCAAiC,CAAC;AACzC,OAAO,mDAAmD,CAAC;AAC3D,OAAO,6BAA6B,CAAC;AACrC,OAAO,uCAAuC,CAAC;AAC/C,OAAO,+BAA+B,CAAC;AACvC,OAAO,iCAAiC,CAAC;AACzC,OAAO,6DAA6D,CAAC;AACrE,OAAO,6CAA6C,CAAC;AACrD,OAAO,6CAA6C,CAAC;AACrD,OAAO,+CAA+C,CAAC;AACvD,OAAO,yDAAyD,CAAC;AACjE,OAAO,mDAAmD,CAAC;AAC3D,OAAO,uCAAuC,CAAC;AAC/C,OAAO,yCAAyC,CAAC;AACjD,OAAO,qCAAqC,CAAC;AAC7C,OAAO,6CAA6C,CAAC;AACrD,OAAO,uDAAuD,CAAC;AAC/D,OAAO,+CAA+C,CAAC;AACvD,OAAO,6CAA6C,CAAC;AACrD,OAAO,mDAAmD,CAAC;AAC3D,OAAO,mDAAmD,CAAC;AAC3D,OAAO,yBAAyB,CAAC;AACjC,OAAO,2BAA2B,CAAC;AACnC,OAAO,yBAAyB,CAAC;AACjC,OAAO,mCAAmC,CAAC;AAC3C,OAAO,qCAAqC,CAAC;AAC7C,OAAO,iCAAiC,CAAC;AACzC,OAAO,2BAA2B,CAAC;AACnC,OAAO,6CAA6C,CAAC;AACrD,OAAO,+CAA+C,CAAC;AACvD,OAAO,+CAA+C,CAAC;AACvD,OAAO,+BAA+B,CAAC;AACvC,OAAO,yCAAyC,CAAC;AACjD,OAAO,iCAAiC,CAAC"}
|
|
1
|
+
{"version":3,"file":"bundle.d.ts","sourceRoot":"","sources":["../src/bundle.ts"],"names":[],"mappings":"AAAA,OAAO,6CAA6C,CAAC;AACrD,OAAO,iDAAiD,CAAC;AACzD,OAAO,6CAA6C,CAAC;AACrD,OAAO,qDAAqD,CAAC;AAC7D,OAAO,+BAA+B,CAAC;AACvC,OAAO,uCAAuC,CAAC;AAC/C,OAAO,yCAAyC,CAAC;AACjD,OAAO,+BAA+B,CAAC;AACvC,OAAO,iCAAiC,CAAC;AACzC,OAAO,mCAAmC,CAAC;AAC3C,OAAO,mCAAmC,CAAC;AAC3C,OAAO,6CAA6C,CAAC;AACrD,OAAO,yDAAyD,CAAC;AACjE,OAAO,mCAAmC,CAAC;AAC3C,OAAO,qCAAqC,CAAC;AAC7C,OAAO,uCAAuC,CAAC;AAC/C,OAAO,iCAAiC,CAAC;AACzC,OAAO,+BAA+B,CAAC;AACvC,OAAO,6BAA6B,CAAC;AACrC,OAAO,2CAA2C,CAAC;AACnD,OAAO,2BAA2B,CAAC;AACnC,OAAO,uCAAuC,CAAC;AAC/C,OAAO,iCAAiC,CAAC;AACzC,OAAO,iEAAiE,CAAC;AACzE,OAAO,yEAAyE,CAAC;AACjF,OAAO,2BAA2B,CAAC;AACnC,OAAO,+BAA+B,CAAC;AACvC,OAAO,+CAA+C,CAAC;AACvD,OAAO,6BAA6B,CAAC;AACrC,OAAO,yDAAyD,CAAC;AACjE,OAAO,yCAAyC,CAAC;AACjD,OAAO,iCAAiC,CAAC;AACzC,OAAO,uCAAuC,CAAC;AAC/C,OAAO,uCAAuC,CAAC;AAC/C,OAAO,6CAA6C,CAAC;AACrD,OAAO,yCAAyC,CAAC;AACjD,OAAO,iCAAiC,CAAC;AACzC,OAAO,iCAAiC,CAAC;AACzC,OAAO,mDAAmD,CAAC;AAC3D,OAAO,6BAA6B,CAAC;AACrC,OAAO,uCAAuC,CAAC;AAC/C,OAAO,+BAA+B,CAAC;AACvC,OAAO,iCAAiC,CAAC;AACzC,OAAO,6DAA6D,CAAC;AACrE,OAAO,6CAA6C,CAAC;AACrD,OAAO,6CAA6C,CAAC;AACrD,OAAO,+CAA+C,CAAC;AACvD,OAAO,yDAAyD,CAAC;AACjE,OAAO,mDAAmD,CAAC;AAC3D,OAAO,uCAAuC,CAAC;AAC/C,OAAO,yCAAyC,CAAC;AACjD,OAAO,qCAAqC,CAAC;AAC7C,OAAO,6CAA6C,CAAC;AACrD,OAAO,uDAAuD,CAAC;AAC/D,OAAO,+CAA+C,CAAC;AACvD,OAAO,6CAA6C,CAAC;AACrD,OAAO,mDAAmD,CAAC;AAC3D,OAAO,+CAA+C,CAAC;AACvD,OAAO,mDAAmD,CAAC;AAC3D,OAAO,yBAAyB,CAAC;AACjC,OAAO,2BAA2B,CAAC;AACnC,OAAO,yBAAyB,CAAC;AACjC,OAAO,mCAAmC,CAAC;AAC3C,OAAO,qCAAqC,CAAC;AAC7C,OAAO,iCAAiC,CAAC;AACzC,OAAO,2BAA2B,CAAC;AACnC,OAAO,6CAA6C,CAAC;AACrD,OAAO,+CAA+C,CAAC;AACvD,OAAO,+CAA+C,CAAC;AACvD,OAAO,+BAA+B,CAAC;AACvC,OAAO,yCAAyC,CAAC;AACjD,OAAO,iCAAiC,CAAC"}
|
package/dist/bundle.js
CHANGED
|
@@ -11,6 +11,7 @@ import './components/carousel/Carousel.js';
|
|
|
11
11
|
import './components/checkbox/Checkbox.js';
|
|
12
12
|
import './components/checkboxgroup/CheckboxGroup.js';
|
|
13
13
|
import './components/circularprogressbar/CircularProgressbar.js';
|
|
14
|
+
import './components/combobox/Combobox.js';
|
|
14
15
|
import './components/container/Container.js';
|
|
15
16
|
import './components/datepicker/Datepicker.js';
|
|
16
17
|
import './components/divider/Divider.js';
|
|
@@ -54,6 +55,7 @@ import './components/statusnotification/StatusNotification.js';
|
|
|
54
55
|
import './components/steppercompact/StepperCompact.js';
|
|
55
56
|
import './components/stepperinline/StepperInline.js';
|
|
56
57
|
import './components/stepperbottombar/StepperBottomBar.js';
|
|
58
|
+
import './components/stepperstacked/StepperStacked.js';
|
|
57
59
|
import './components/segmentedcontrol/SegmentedControl.js';
|
|
58
60
|
import './components/tab/Tab.js';
|
|
59
61
|
import './components/tabs/Tabs.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{v as f,
|
|
1
|
+
import{v as f,aX as _,at as z,i as n,q as d,aY as u,c as y,e as E,a as C,p as v,g as L,B as M,t as B,j as I,n as S,b as D,d as F,f as O,h as X,m as h,r as Y}from"../../custom-element.js";import{o as q}from"../../index-client.js";import{s as A}from"../../slot.js";import{b as G}from"../../this.js";import{c as H}from"../../custom-element-forward-events.js";import{u as p,a as g}from"../../accordion-list.state.svelte.js";var J=["forEach","isDisjointFrom","isSubsetOf","isSupersetOf"],K=["difference","intersection","symmetricDifference","union"],w=!1;class m extends Set{#o=new Map;#e=f(0);#r=f(0);#t=_||-1;constructor(e){if(super(),e){for(var o of e)super.add(o);this.#r.v=super.size}w||this.#n()}#i(e){return _===this.#t?f(e):z(e)}#n(){w=!0;var e=m.prototype,o=Set.prototype;for(const t of J)e[t]=function(...r){return n(this.#e),o[t].apply(this,r)};for(const t of K)e[t]=function(...r){n(this.#e);var s=o[t].apply(this,r);return new m(s)}}has(e){var o=super.has(e),t=this.#o,r=t.get(e);if(r===void 0){if(!o)return n(this.#e),!1;r=this.#i(!0),t.set(e,r)}return n(r),o}add(e){return super.has(e)||(super.add(e),d(this.#r,super.size),u(this.#e)),this}delete(e){var o=super.delete(e),t=this.#o,r=t.get(e);return r!==void 0&&(t.delete(e),d(r,!1)),o&&(d(this.#r,super.size),u(this.#e)),o}clear(){if(super.size!==0){super.clear();var e=this.#o;for(var o of e.values())d(o,!1);e.clear(),d(this.#r,0),u(this.#e)}}keys(){return this.values()}values(){return n(this.#e),super.values()}entries(){return n(this.#e),super.entries()}[Symbol.iterator](){return this.keys()}get size(){return n(this.#r)}}var N=O("<div><!></div>");const P={hash:"svelte-osf0jb",code:`/**
|
|
2
2
|
* Do not edit directly, this file was auto-generated.
|
|
3
3
|
*/.mc-accordion.svelte-osf0jb {border-radius:var(--border-radius-m, 0.5rem);background-color:var(--accordion-list-color-background-standard, #ffffff);color:var(--accordion-list-color-text-title, #000000);border:1px solid var(--accordion-list-color-border, #cccccc);box-sizing:border-box;overflow:hidden;}
|
|
4
4
|
@supports (interpolate-size: allow-keywords) {.mc-accordion.svelte-osf0jb {interpolate-size:allow-keywords;}
|
|
@@ -46,5 +46,5 @@ import{v as f,aY as _,av as z,l as n,q as d,aZ as u,c as y,e as E,a as C,p as v,
|
|
|
46
46
|
}
|
|
47
47
|
@media (prefers-reduced-motion: reduce) {.mc-accordion__content.svelte-osf0jb {transition:none;}
|
|
48
48
|
}.mc-accordion__content.svelte-osf0jb {height:0;max-height:none;padding-top:0;padding-bottom:0;}
|
|
49
|
-
}.mc-accordion--ghost.svelte-osf0jb {background-color:transparent;border:none;}`};function
|
|
49
|
+
}.mc-accordion--ghost.svelte-osf0jb {background-color:transparent;border:none;}`};function Q(b,e){E(e,!0),C(b,P);let o=v(e,"appearance",7,"standard"),t=v(e,"behavior",7,"multiple"),r=v(e,"value",31,()=>L([])),s;M(()=>{p([...r()])}),q(()=>{const i=k=>{const a=k.detail.id;if(t()==="single")p(g.openIds.includes(a)?[]:[a]),r([a]);else{const l=new m([...g.openIds]);l.has(a)?l.delete(a):l.add(a),p([...l]),r([...g.openIds])}};return s.addEventListener("update:open",i),()=>{s.removeEventListener("update:open",i)}});var x={get appearance(){return o()},set appearance(i="standard"){o(i),h()},get behavior(){return t()},set behavior(i="multiple"){t(i),h()},get value(){return r()},set value(i=[]){r(i),h()}},c=N(),j=X(c);return A(j,e,"default",{},null),Y(c),G(c,i=>s=i,()=>s),B(()=>I(c,1,S(["mc-accordion",`mc-accordion--${o()}`]),"svelte-osf0jb")),D(b,c),F(x)}customElements.define("m-accordion-list",y(Q,{appearance:{},behavior:{},value:{}},["default"],[],{mode:"open"},H));
|
|
50
50
|
//# sourceMappingURL=AccordionList.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{o as H,c as J,e as K,a as N,p as u,
|
|
1
|
+
import{o as H,c as J,e as K,a as N,p as u,s as x,t as z,i as y,k as E,u as O,b as v,d as P,f as w,h as t,w as Q,m as g,r as n}from"../../custom-element.js";import{i as I}from"../../if.js";import{a as R,s as X}from"../../slot.js";import{s as c}from"../../attributes.js";import{b as T}from"../../this.js";import{a as U}from"../../accordion-list.state.svelte.js";import"../../branches.js";var V=w('<span class="mc-accordion__icon svelte-k06wun"><!></span>'),W=w('<span class="mc-accordion__subtitle svelte-k06wun"> </span>'),Z=w('<p class="svelte-k06wun"> </p>'),$=w('<div class="mc-accordion__item svelte-k06wun"><div class="mc-accordion__header svelte-k06wun"><h2 class="mc-accordion__title svelte-k06wun"><button class="mc-accordion__trigger svelte-k06wun"><!> <div class="mc-accordion__title-wrapper svelte-k06wun"><span class="svelte-k06wun"> </span> <!></div></button></h2></div> <div class="mc-accordion__content svelte-k06wun" role="region"><!></div></div>');const ee={hash:"svelte-k06wun",code:`/**
|
|
2
2
|
* Do not edit directly, this file was auto-generated.
|
|
3
3
|
*/
|
|
4
4
|
@supports (interpolate-size: allow-keywords) {
|
|
@@ -46,5 +46,5 @@ import{o as H,c as J,e as K,a as N,p as u,k as x,t as z,u as O,b as v,d as P,f a
|
|
|
46
46
|
}
|
|
47
47
|
@media (prefers-reduced-motion: reduce) {.mc-accordion__content.svelte-k06wun {transition:none;}
|
|
48
48
|
}.mc-accordion__content.svelte-k06wun {height:0;max-height:none;padding-top:0;padding-bottom:0;}.mc-accordion__content[aria-hidden=false].svelte-k06wun {height:auto;padding-top:0.125rem;padding-bottom:1rem;}
|
|
49
|
-
}`};function re(C,o){const Y=R(o);K(o,!0),N(C,ee);let i=u(o,"id",7),_=u(o,"title",7),l=u(o,"subtitle",7),h=u(o,"content",7),p;const f=Q(()=>U.openIds.includes(i()));function
|
|
49
|
+
}`};function re(C,o){const Y=R(o);K(o,!0),N(C,ee);let i=u(o,"id",7),_=u(o,"title",7),l=u(o,"subtitle",7),h=u(o,"content",7),p;const f=Q(()=>U.openIds.includes(i()));function A(){const e=new CustomEvent("update:open",{detail:{id:i(),open:y(f)},bubbles:!0,composed:!0});p.dispatchEvent(e)}var D={get id(){return i()},set id(e){i(e),g()},get title(){return _()},set title(e){_(e),g()},get subtitle(){return l()},set subtitle(e){l(e),g()},get content(){return h()},set content(e){h(e),g()}},m=$(),k=t(m),L=t(k),a=t(L),B=t(a);{var S=e=>{var r=V(),d=t(r);X(d,o,"icon",{},null),n(r),v(e,r)};I(B,e=>{Y.icon&&e(S)})}var M=x(B,2),b=t(M),j=t(b,!0);n(b);var q=x(b,2);{var F=e=>{var r=W(),d=t(r,!0);n(r),z(()=>E(d,l())),v(e,r)};I(q,e=>{l()&&e(F)})}n(M),n(a),n(L),n(k);var s=x(k,2),G=t(s);return X(G,o,"content",{},e=>{var r=Z(),d=t(r,!0);n(r),z(()=>E(d,h()||"")),v(e,r)}),n(s),n(m),T(m,e=>p=e,()=>p),z(()=>{c(a,"id",`accordion-${i()}`),c(a,"aria-controls",`content-${i()}`),c(a,"aria-expanded",y(f)),E(j,_()),c(s,"id",`content-${i()}`),c(s,"aria-hidden",!y(f)),c(s,"aria-labelledby",`accordion-${i()}`)}),O("click",a,()=>A()),v(C,m),P(D)}H(["click"]);customElements.define("m-accordion-list-item",J(re,{id:{},title:{},subtitle:{},content:{}},["icon","content"],[],{mode:"open"}));
|
|
50
50
|
//# sourceMappingURL=AccordionListItem.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{c as p,e as _,a as h,p as u,
|
|
1
|
+
import{c as p,e as _,a as h,p as u,s as m,t as w,j,n as x,b as q,d as y,f as B,h as a,m as D,r as i}from"../../custom-element.js";import{s as c}from"../../slot.js";import{D as k}from"../divider/Divider.js";import"../../attributes.js";var z=B('<div><div class="mc-action-bottom-bar__divider svelte-qg1igj"><!></div> <div class="mc-action-bottom-bar__left svelte-qg1igj"><!></div> <div class="mc-action-bottom-bar__right svelte-qg1igj"><!></div></div>');const A={hash:"svelte-qg1igj",code:`/**
|
|
2
2
|
* Do not edit directly, this file was auto-generated.
|
|
3
3
|
*/.mc-action-bottom-bar.svelte-qg1igj {position:fixed;box-sizing:border-box;bottom:0;left:0;width:100%;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;background-color:var(--action-bottom-bar-color-background, #ffffff);}.mc-action-bottom-bar__divider.svelte-qg1igj {width:100%;}
|
|
4
4
|
@media screen and (min-width: 679px) {
|
|
@@ -8,5 +8,5 @@ import{c as p,e as _,a as h,p as u,k as m,t as w,b as j,d as x,f as q,j as a,i a
|
|
|
8
8
|
@media screen and (min-width: 679px) {.mc-action-bottom-bar__left.svelte-qg1igj {padding-left:2rem;}
|
|
9
9
|
}.mc-action-bottom-bar__right.svelte-qg1igj {margin-left:auto;padding:0.5rem 1rem 0.5rem 0;display:flex;gap:1rem;}
|
|
10
10
|
@media screen and (min-width: 679px) {.mc-action-bottom-bar__right.svelte-qg1igj {padding:1rem 2rem 1rem 0;}
|
|
11
|
-
}`};function E(n,t){_(t,!0),h(n,A);let o=u(t,"shadow",7);var l={get shadow(){return o()},set shadow(f){o(f),
|
|
11
|
+
}`};function E(n,t){_(t,!0),h(n,A);let o=u(t,"shadow",7);var l={get shadow(){return o()},set shadow(f){o(f),D()}},e=z(),r=a(e),g=a(r);k(g,{}),i(r);var s=m(r,2),b=a(s);c(b,t,"left",{},null),i(s);var d=m(s,2),v=a(d);return c(v,t,"right",{},null),i(d),i(e),w(()=>j(e,1,x(["mc-action-bottom-bar",o()&&"mc-action-bottom-bar--shadow"]),"svelte-qg1igj")),q(n,e),y(l)}customElements.define("m-action-bottom-bar",p(E,{shadow:{attribute:"shadow",reflect:!0,type:"Boolean"}},["left","right"],[],{mode:"open"}));
|
|
12
12
|
//# sourceMappingURL=ActionBottomBar.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import{c as V,e as W,a as X,p as f,B as Y,x as Z,
|
|
1
|
+
import{c as V,e as W,a as X,p as f,B as Y,x as Z,s as g,t as A,j as $,n as ee,b as w,d as te,f as k,i as a,h as s,m as p,v as oe,r as n,k as ie,q as se}from"../../custom-element.js";import{o as ne}from"../../index-client.js";import{i as D}from"../../if.js";import{a as re,s as S}from"../../slot.js";import{a as le}from"../../attributes.js";import{b as y}from"../../this.js";import{I as ce}from"../iconbutton/IconButton.js";import{q as ae}from"../../Condition20.js";import{c as be}from"../../custom-element-forward-events.js";import"../../branches.js";import"../loader/Loader.js";var me=k('<h3 class="mc-listbox__title svelte-cf5eub"> </h3>'),ve=k("<div><!></div>"),ue=k('<div><div><div class="mc-listbox__header svelte-cf5eub"><!> <span class="mc-listbox__close svelte-cf5eub"><!></span></div> <div class="mc-listbox__body svelte-cf5eub"><ul class="mc-action-list svelte-cf5eub" role="menu"><!></ul></div></div></div> <!>',1);const de={hash:"svelte-cf5eub",code:`/**
|
|
2
2
|
* Do not edit directly, this file was auto-generated.
|
|
3
|
-
*/.mc-listbox.svelte-cf5eub:has(.mc-listbox__content:where(.svelte-cf5eub):not([popover])), .mc-listbox.svelte-cf5eub:has(.mc-listbox__content:where(.svelte-cf5eub):popover-open) {position:fixed;inset:0;display:flex;align-items:flex-end;justify-content:center;z-index:1;padding:0.5rem;background-color:var(--overlay-color-background, rgba(0, 0, 0, 0.5));inset:0;opacity:0;position:fixed;pointer-events:none;transition:opacity 0.4s ease, visibility 0ms 0.4s;z-index:var(--overlay-z-index,
|
|
3
|
+
*/.mc-listbox.svelte-cf5eub:has(.mc-listbox__content:where(.svelte-cf5eub):not([popover])), .mc-listbox.svelte-cf5eub:has(.mc-listbox__content:where(.svelte-cf5eub):popover-open) {position:fixed;inset:0;display:flex;align-items:flex-end;justify-content:center;z-index:1;padding:0.5rem;background-color:var(--overlay-color-background, rgba(0, 0, 0, 0.5));inset:0;opacity:0;position:fixed;pointer-events:none;transition:opacity 0.4s ease, visibility 0ms 0.4s;z-index:var(--overlay-z-index, 4);}.mc-listbox:has(.mc-listbox__content:where(.svelte-cf5eub):not([popover])).is-visible.svelte-cf5eub, .mc-listbox:has(.mc-listbox__content:where(.svelte-cf5eub):popover-open).is-visible.svelte-cf5eub {opacity:1;pointer-events:all;transition:opacity 0.4s ease, visibility 0ms;visibility:visible;}.mc-listbox.svelte-cf5eub:has(.mc-listbox__content:where(.svelte-cf5eub):not([popover])), .mc-listbox.svelte-cf5eub:has(.mc-listbox__content:where(.svelte-cf5eub):popover-open) {opacity:1;}
|
|
4
4
|
@media (width >= 680px) {.mc-listbox.svelte-cf5eub:has(.mc-listbox__content:where(.svelte-cf5eub):not([popover])), .mc-listbox.svelte-cf5eub:has(.mc-listbox__content:where(.svelte-cf5eub):popover-open) {position:relative;display:block;padding:0;background-color:transparent;}
|
|
5
5
|
}.mc-listbox__content.svelte-cf5eub {border:var(--border-width-s, 0.0625rem) solid var(--color-border-primary, #cccccc);border-radius:var(--border-radius-m, 0.5rem);width:100%;z-index:10;background-color:var(--color-background-primary, #ffffff);pointer-events:all;}
|
|
6
6
|
@media (width >= 680px) {.mc-listbox__content.svelte-cf5eub {width:18.75rem;}
|
|
@@ -8,5 +8,5 @@ import{c as V,e as W,a as X,p as f,B as Y,x as Z,k as g,t as A,b as w,d as $,f a
|
|
|
8
8
|
@media (width >= 680px) {.mc-listbox__header.svelte-cf5eub {display:none;}
|
|
9
9
|
}.mc-listbox__title.svelte-cf5eub {line-height:var(--line-height-s, 1.3);font-weight:var(--font-weight-semi-bold, 600);font-size:var(--font-size-100, 0.875rem);color:var(--color-text-tertiary, #666666);text-align:center;margin:0;}.mc-listbox__close.svelte-cf5eub {position:absolute;right:1.25rem;width:1.5rem;height:1.5rem;}.mc-listbox__body.svelte-cf5eub {overflow:hidden;}
|
|
10
10
|
@media (width >= 680px) {.mc-listbox--top.svelte-cf5eub .mc-listbox__content:where(.svelte-cf5eub) {margin:0 0 8px;inset:auto;position-area:span-right top;}.mc-listbox--bottom.svelte-cf5eub .mc-listbox__content:where(.svelte-cf5eub) {margin:8px 0 0;inset:auto;position-area:span-right bottom;}.mc-listbox--left.svelte-cf5eub .mc-listbox__content:where(.svelte-cf5eub) {margin:0 8px 0 0;inset:auto;position-area:span-bottom left;}.mc-listbox--right.svelte-cf5eub .mc-listbox__content:where(.svelte-cf5eub) {margin:0 0 0 8px;inset:auto;position-area:span-bottom right;}
|
|
11
|
-
}.mc-action-list.svelte-cf5eub {padding:0.5rem 0.5rem;margin:0;}.mc-action-list__element.svelte-cf5eub {height:2.5rem;cursor:pointer;border-radius:var(--border-radius-s, 0.25rem);flex-grow:1;}.mc-action-list__element.svelte-cf5eub:hover {background-color:var(--action-listbox-color-background-hover, rgba(0, 0, 0, 0.05));}.mc-action-list__element--danger.svelte-cf5eub .mc-action-list__text:where(.svelte-cf5eub) {color:var(--action-listbox-color-text-danger, #c61112);}.mc-action-list__element--danger.svelte-cf5eub .mc-action-list__icon:where(.svelte-cf5eub) {fill:var(--action-listbox-color-text-danger, #c61112);}.mc-action-list__element--danger.svelte-cf5eub:hover {background-color:var(--action-listbox-color-background-danger-hover, rgba(198, 17, 18, 0.1));}.mc-action-list__element--disabled.svelte-cf5eub .mc-action-list__text:where(.svelte-cf5eub) {color:var(--action-listbox-color-text-disabled, #b3b3b3);}.mc-action-list__element--disabled.svelte-cf5eub .mc-action-list__icon:where(.svelte-cf5eub) {fill:var(--action-listbox-color-text-disabled, #b3b3b3);}.mc-action-list__element--disabled.svelte-cf5eub:hover {background-color:transparent;}.mc-action-list__button.svelte-cf5eub {background-color:transparent;color:var(--action-listbox-color-text-default, #000000);border:none;display:flex;align-items:center;gap:0.25rem;padding:0;padding:0 0.25rem;cursor:pointer;width:100%;height:100%;}.mc-action-list__button.svelte-cf5eub:focus-visible {box-shadow:0 0 0 0.125rem var(--focus-color-mid, var(--focus-color-outline-mid, #ffffff)), 0 0 0 0.25rem var(--focus-color-outer, var(--focus-color-outline-outer, #000000));outline:0.125rem solid transparent;outline-offset:0.125rem;}.mc-action-list__text.svelte-cf5eub {font-size:var(--font-size-150, 1rem);font-weight:var(--font-weight-regular, 400);line-height:var(--line-height-s, 1.3);text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0;}.mc-action-list__icon.svelte-cf5eub {width:1.25rem;height:1.25rem;}.mc-action-list__divider.svelte-cf5eub {margin:0.5rem 0;}.mc-listbox__close.svelte-cf5eub {display:flex;align-items:center;justify-content:center;}`};function fe(E,i){const z=re(i);W(i,!0),X(E,de);let r=f(i,"open",15),m=f(i,"title",7),_=f(i,"position",7,"bottom"),h=f(i,"onclose",7);const F=crypto.randomUUID();let v,c,l=
|
|
11
|
+
}.mc-action-list.svelte-cf5eub {padding:0.5rem 0.5rem;margin:0;}.mc-action-list__element.svelte-cf5eub {height:2.5rem;cursor:pointer;border-radius:var(--border-radius-s, 0.25rem);flex-grow:1;}.mc-action-list__element.svelte-cf5eub:hover {background-color:var(--action-listbox-color-background-hover, rgba(0, 0, 0, 0.05));}.mc-action-list__element--danger.svelte-cf5eub .mc-action-list__text:where(.svelte-cf5eub) {color:var(--action-listbox-color-text-danger, #c61112);}.mc-action-list__element--danger.svelte-cf5eub .mc-action-list__icon:where(.svelte-cf5eub) {fill:var(--action-listbox-color-text-danger, #c61112);}.mc-action-list__element--danger.svelte-cf5eub:hover {background-color:var(--action-listbox-color-background-danger-hover, rgba(198, 17, 18, 0.1));}.mc-action-list__element--disabled.svelte-cf5eub .mc-action-list__text:where(.svelte-cf5eub) {color:var(--action-listbox-color-text-disabled, #b3b3b3);}.mc-action-list__element--disabled.svelte-cf5eub .mc-action-list__icon:where(.svelte-cf5eub) {fill:var(--action-listbox-color-text-disabled, #b3b3b3);}.mc-action-list__element--disabled.svelte-cf5eub:hover {background-color:transparent;}.mc-action-list__button.svelte-cf5eub {background-color:transparent;color:var(--action-listbox-color-text-default, #000000);border:none;display:flex;align-items:center;gap:0.25rem;padding:0;padding:0 0.25rem;cursor:pointer;width:100%;height:100%;}.mc-action-list__button.svelte-cf5eub:focus-visible {box-shadow:0 0 0 0.125rem var(--focus-color-mid, var(--focus-color-outline-mid, #ffffff)), 0 0 0 0.25rem var(--focus-color-outer, var(--focus-color-outline-outer, #000000));outline:0.125rem solid transparent;outline-offset:0.125rem;}.mc-action-list__text.svelte-cf5eub {font-size:var(--font-size-150, 1rem);font-weight:var(--font-weight-regular, 400);line-height:var(--line-height-s, 1.3);text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0;}.mc-action-list__icon.svelte-cf5eub {width:1.25rem;height:1.25rem;}.mc-action-list__divider.svelte-cf5eub {margin:0.5rem 0;}.mc-listbox__close.svelte-cf5eub {display:flex;align-items:center;justify-content:center;}`};function fe(E,i){const z=re(i);W(i,!0),X(E,de);let r=f(i,"open",15),m=f(i,"title",7),_=f(i,"position",7,"bottom"),h=f(i,"onclose",7);const F=crypto.randomUUID();let v,c,l=oe(null);function U(){h()?.();const e=new CustomEvent("close",{bubbles:!0,composed:!0});v.dispatchEvent(e),r(!1)}function K(){const e=c?.querySelector('slot[name="item"]');return e?e.assignedElements().filter(o=>!o.hasAttribute("disabled")&&o.getAttribute("disabled")!=="true"):[]}function I(e){const t=K();if(!t.length)return;let o=0;if(!e){const d=t.findIndex(R=>R===document.activeElement);o=d===-1?0:(d+1)%t.length}t[o]?.focus()}function M(){!c||!a(l)||(r()?(c.showPopover({source:a(l)}),I(!0)):c.hidePopover({source:a(l)}))}function B(e){if(!r())return;const t=e.composedPath?e.composedPath():[];!t.includes(v)&&!t.includes(a(l))&&r(!1)}function O(e){e.preventDefault(),e.key==="Tab"&&I(),e.key==="Escape"&&(r(!1),(a(l)?.querySelector('slot[name="activator"]')).assignedElements()[0].focus())}Y(M),ne(()=>(document.addEventListener("mousedown",B),()=>{document.removeEventListener("mousedown",B)}));var T={get open(){return r()},set open(e){r(e),p()},get title(){return m()},set title(e){m(e),p()},get position(){return _()},set position(e="bottom"){_(e),p()},get onclose(){return h()},set onclose(e){h(e),p()}},C=ue(),b=Z(C),u=s(b);le(u,()=>({class:"mc-listbox__content",...z.activator?{id:F,popover:"manual",role:"dialog",tabindex:0,onkeydown:O}:{}}),void 0,void 0,void 0,"svelte-cf5eub");var x=s(u),L=s(x);{var G=e=>{var t=me(),o=s(t,!0);n(t),A(()=>ie(o,m())),w(e,t)};D(L,e=>{m()&&e(G)})}var P=g(L,2),H=s(P);ce(H,{ghost:!0,"aria-label":"Close",onclick:U,$$slots:{icon:(e,t)=>{ae(e,{slot:"icon"})}}}),n(P),n(x);var j=g(x,2),q=s(j),J=s(q);S(J,i,"item",{},null),n(q),n(j),n(u),y(u,e=>c=e,()=>c),n(b),y(b,e=>v=e,()=>v);var N=g(b,2);{var Q=e=>{var t=ve(),o=s(t);S(o,i,"activator",{},null),n(t),y(t,d=>se(l,d),()=>a(l)),w(e,t)};D(N,e=>{z.activator&&e(Q)})}return A(()=>$(b,1,ee({"mc-listbox":!0,[`mc-listbox--${_()}`]:!0}),"svelte-cf5eub")),w(E,C),te(T)}customElements.define("m-action-listbox",V(fe,{open:{attribute:"open",reflect:!0,type:"Boolean"},title:{},position:{},onclose:{}},["item","activator"],[],{mode:"open"},be));
|
|
12
12
|
//# sourceMappingURL=ActionListbox.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActionListbox.js","sources":["../../../src/components/actionlistbox/ActionListbox.svelte"],"sourcesContent":["<svelte:options\n customElement={{\n tag: 'm-action-listbox',\n props: {\n open: { reflect: true, type: 'Boolean', attribute: 'open' },\n },\n extend: customElementForwardEvents,\n }}\n/>\n\n<script lang=\"ts\">\n import IconButton from '../iconbutton/IconButton.svelte';\n import { Cross24 } from '@mozaic-ds/icons-svelte';\n import { customElementForwardEvents } from '../../utils';\n import { onMount } from 'svelte';\n import type { ActionListboxItem } from '../actionlistboxitem/ActionListboxItem.svelte';\n import type { Button } from '../button/Button.svelte';\n\n /**\n * An action list is a contextual menu that presents a list of available actions related to a specific element or interface area. It allows users to quickly access functions such as editing, sharing, deleting, or navigating to sub-actions. Action Lists are commonly triggered by buttons, icons (e.g., three-dot menus), or right-click interactions, ensuring a clean and efficient UI.\n *\n * @slot item - The content displayed in the listbox item.\n * @slot activator - The trigger used to toggle the listbox. It should contain one Button or IconButton.\n * @event close {CustomEvent<void>} - Emits when the close button is clicked.\n */\n interface Props {\n /**\n * If `true`, displays the listbox when using the activator slot.\n */\n open?: boolean;\n /**\n * title displayed in mobile version.\n */\n title?: string;\n /**\n * Defines the position of the listbox relative to its trigger or container.\n */\n position?: 'top' | 'bottom' | 'left' | 'right';\n /**\n * Callback to trigger on close button click.\n */\n onclose?: () => void;\n }\n\n let { open = $bindable(), title, position = 'bottom', onclose }: Props = $props();\n\n // TODO: Remove when typescript is up to date\n type PopoverOptions = {\n source: HTMLElement;\n };\n\n type Popover = {\n showPopover: (options?: PopoverOptions) => void;\n hidePopover: (options?: PopoverOptions) => void;\n };\n\n const id = crypto.randomUUID();\n\n let element: HTMLElement;\n let listbox: HTMLElement;\n let activator: HTMLElement | null = $state(null);\n\n function handleClose() {\n onclose?.();\n\n const event = new CustomEvent('close', {\n bubbles: true,\n composed: true,\n });\n element.dispatchEvent(event);\n\n open = false;\n }\n\n function getFocusableElements(): HTMLElement[] {\n const slot = listbox?.querySelector('slot[name=\"item\"]') as HTMLSlotElement;\n if (!slot) return [];\n\n const assignedElements = slot.assignedElements() as HTMLElement[];\n return assignedElements.filter((el) => {\n return !el.hasAttribute('disabled') && el.getAttribute('disabled') !== 'true';\n });\n }\n\n function focusListItem(first?: boolean) {\n const items = getFocusableElements();\n if (!items.length) return;\n\n let focusedIndex = 0;\n\n if (!first) {\n const currentIndex = items.findIndex((item) => item === document.activeElement);\n\n focusedIndex = currentIndex === -1 ? 0 : (currentIndex + 1) % items.length;\n }\n\n (items[focusedIndex] as ActionListboxItem)?.focus();\n }\n\n function toggleListbox() {\n if (!listbox || !activator) return;\n\n if (open) {\n (listbox as Popover).showPopover({ source: activator });\n focusListItem(true);\n } else {\n (listbox as Popover).hidePopover({ source: activator });\n }\n }\n\n function handleClickOutside(event: MouseEvent) {\n if (!open) return;\n\n const path = event.composedPath ? event.composedPath() : [];\n if (!path.includes(element) && !path.includes(activator!)) {\n open = false;\n }\n }\n\n function onKeydown(event: KeyboardEvent) {\n event.preventDefault();\n if (event.key === 'Tab') {\n focusListItem();\n }\n\n if (event.key === 'Escape') {\n open = false;\n const slot = activator?.querySelector('slot[name=\"activator\"]') as HTMLSlotElement;\n const activatorBtn = slot.assignedElements()[0];\n (activatorBtn as Element & Button).focus();\n }\n }\n\n $effect(toggleListbox);\n\n onMount(() => {\n document.addEventListener('mousedown', handleClickOutside);\n\n return () => {\n document.removeEventListener('mousedown', handleClickOutside);\n };\n });\n</script>\n\n<div\n bind:this={element}\n class={{\n 'mc-listbox': true,\n [`mc-listbox--${position}`]: true,\n }}\n>\n <div\n bind:this={listbox}\n class=\"mc-listbox__content\"\n {...$$slots.activator\n ? { id, popover: 'manual', role: 'dialog', tabindex: 0, onkeydown: onKeydown }\n : {}}\n >\n <div class=\"mc-listbox__header\">\n {#if title}\n <h3 class=\"mc-listbox__title\">{title}</h3>\n {/if}\n\n <span class=\"mc-listbox__close\">\n <IconButton ghost aria-label=\"Close\" onclick={handleClose}>\n <Cross24 slot=\"icon\" />\n </IconButton>\n </span>\n </div>\n <div class=\"mc-listbox__body\">\n <ul class=\"mc-action-list\" role=\"menu\">\n <slot name=\"item\" />\n </ul>\n </div>\n </div>\n</div>\n\n{#if $$slots.activator}\n <div bind:this={activator}>\n <slot name=\"activator\" />\n </div>\n{/if}\n\n<style lang=\"scss\">\n @use '@mozaic-ds/styles/components/listbox';\n @use '@mozaic-ds/styles/components/action-list';\n\n .mc-listbox__close {\n display: flex;\n align-items: center;\n justify-content: center;\n }\n</style>\n"],"names":["open","$.prop","$$props","title","position","onclose","id","element","listbox","activator","$.state","handleClose","event","getFocusableElements","slot","el","focusListItem","first","items","focusedIndex","currentIndex","item","toggleListbox","handleClickOutside","path","$.get","onKeydown","$.user_effect","onMount","div","$.first_child","fragment","div_1","$.child","$$slots","div_2","h3","root_1","$$render","consequent","span","$.sibling","node","IconButton","node_1","Cross24","$$anchor","div_3","ul","$.reset","$$value","node_3","div_4","root_3","$.set","consequent_1","$.template_effect","$.set_class","$.clsx","customElementForwardEvents"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ActionListbox.js","sources":["../../../src/components/actionlistbox/ActionListbox.svelte"],"sourcesContent":["<svelte:options\n customElement={{\n tag: 'm-action-listbox',\n props: {\n open: { reflect: true, type: 'Boolean', attribute: 'open' },\n },\n extend: customElementForwardEvents,\n }}\n/>\n\n<script lang=\"ts\">\n import IconButton from '../iconbutton/IconButton.svelte';\n import { Cross24 } from '@mozaic-ds/icons-svelte';\n import { customElementForwardEvents } from '../../utils';\n import { onMount } from 'svelte';\n import type { ActionListboxItem } from '../actionlistboxitem/ActionListboxItem.svelte';\n import type { Button } from '../button/Button.svelte';\n\n /**\n * An action list is a contextual menu that presents a list of available actions related to a specific element or interface area. It allows users to quickly access functions such as editing, sharing, deleting, or navigating to sub-actions. Action Lists are commonly triggered by buttons, icons (e.g., three-dot menus), or right-click interactions, ensuring a clean and efficient UI.\n *\n * @slot item - The content displayed in the listbox item.\n * @slot activator - The trigger used to toggle the listbox. It should contain one Button or IconButton.\n * @event close {CustomEvent<void>} - Emits when the close button is clicked.\n */\n interface Props {\n /**\n * If `true`, displays the listbox when using the activator slot.\n */\n open?: boolean;\n /**\n * title displayed in mobile version.\n */\n title?: string;\n /**\n * Defines the position of the listbox relative to its trigger or container.\n */\n position?: 'top' | 'bottom' | 'left' | 'right';\n /**\n * Callback to trigger on close button click.\n */\n onclose?: () => void;\n }\n\n let { open = $bindable(), title, position = 'bottom', onclose }: Props = $props();\n\n // TODO: Remove when typescript is up to date\n type PopoverOptions = {\n source: HTMLElement;\n };\n\n type Popover = {\n showPopover: (options?: PopoverOptions) => void;\n hidePopover: (options?: PopoverOptions) => void;\n };\n\n const id = crypto.randomUUID();\n\n let element: HTMLElement;\n let listbox: HTMLElement;\n let activator: HTMLElement | null = $state(null);\n\n function handleClose() {\n onclose?.();\n\n const event = new CustomEvent('close', {\n bubbles: true,\n composed: true,\n });\n element.dispatchEvent(event);\n\n open = false;\n }\n\n function getFocusableElements(): HTMLElement[] {\n const slot = listbox?.querySelector('slot[name=\"item\"]') as HTMLSlotElement;\n if (!slot) return [];\n\n const assignedElements = slot.assignedElements() as HTMLElement[];\n return assignedElements.filter((el) => {\n return !el.hasAttribute('disabled') && el.getAttribute('disabled') !== 'true';\n });\n }\n\n function focusListItem(first?: boolean) {\n const items = getFocusableElements();\n if (!items.length) return;\n\n let focusedIndex = 0;\n\n if (!first) {\n const currentIndex = items.findIndex((item) => item === document.activeElement);\n\n focusedIndex = currentIndex === -1 ? 0 : (currentIndex + 1) % items.length;\n }\n\n (items[focusedIndex] as ActionListboxItem)?.focus();\n }\n\n function toggleListbox() {\n if (!listbox || !activator) return;\n\n if (open) {\n (listbox as Popover).showPopover({ source: activator });\n focusListItem(true);\n } else {\n (listbox as Popover).hidePopover({ source: activator });\n }\n }\n\n function handleClickOutside(event: MouseEvent) {\n if (!open) return;\n\n const path = event.composedPath ? event.composedPath() : [];\n if (!path.includes(element) && !path.includes(activator!)) {\n open = false;\n }\n }\n\n function onKeydown(event: KeyboardEvent) {\n event.preventDefault();\n if (event.key === 'Tab') {\n focusListItem();\n }\n\n if (event.key === 'Escape') {\n open = false;\n const slot = activator?.querySelector('slot[name=\"activator\"]') as HTMLSlotElement;\n const activatorBtn = slot.assignedElements()[0];\n (activatorBtn as Element & Button).focus();\n }\n }\n\n $effect(toggleListbox);\n\n onMount(() => {\n document.addEventListener('mousedown', handleClickOutside);\n\n return () => {\n document.removeEventListener('mousedown', handleClickOutside);\n };\n });\n</script>\n\n<div\n bind:this={element}\n class={{\n 'mc-listbox': true,\n [`mc-listbox--${position}`]: true,\n }}\n>\n <div\n bind:this={listbox}\n class=\"mc-listbox__content\"\n {...$$slots.activator\n ? { id, popover: 'manual', role: 'dialog', tabindex: 0, onkeydown: onKeydown }\n : {}}\n >\n <div class=\"mc-listbox__header\">\n {#if title}\n <h3 class=\"mc-listbox__title\">{title}</h3>\n {/if}\n\n <span class=\"mc-listbox__close\">\n <IconButton ghost aria-label=\"Close\" onclick={handleClose}>\n <Cross24 slot=\"icon\" />\n </IconButton>\n </span>\n </div>\n <div class=\"mc-listbox__body\">\n <ul class=\"mc-action-list\" role=\"menu\">\n <slot name=\"item\" />\n </ul>\n </div>\n </div>\n</div>\n\n{#if $$slots.activator}\n <div bind:this={activator}>\n <slot name=\"activator\" />\n </div>\n{/if}\n\n<style lang=\"scss\">\n @use '@mozaic-ds/styles/components/listbox';\n @use '@mozaic-ds/styles/components/action-list';\n\n .mc-listbox__close {\n display: flex;\n align-items: center;\n justify-content: center;\n }\n</style>\n"],"names":["open","$.prop","$$props","title","position","onclose","id","element","listbox","activator","$.state","handleClose","event","getFocusableElements","slot","el","focusListItem","first","items","focusedIndex","currentIndex","item","toggleListbox","handleClickOutside","path","$.get","onKeydown","$.user_effect","onMount","div","$.first_child","fragment","div_1","$.child","$$slots","div_2","h3","root_1","$$render","consequent","span","$.sibling","node","IconButton","node_1","Cross24","$$anchor","div_3","ul","$.reset","$$value","node_3","div_4","root_3","$.set","consequent_1","$.template_effect","$.set_class","$.clsx","customElementForwardEvents"],"mappings":"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"}
|
|
@@ -198,7 +198,7 @@
|
|
|
198
198
|
position: fixed;
|
|
199
199
|
pointer-events: none;
|
|
200
200
|
transition: opacity 0.4s ease, visibility 0ms 0.4s;
|
|
201
|
-
z-index: var(--overlay-z-index,
|
|
201
|
+
z-index: var(--overlay-z-index, 4);
|
|
202
202
|
}
|
|
203
203
|
.mc-listbox:has(.mc-listbox__content:not([popover])).is-visible, .mc-listbox:has(.mc-listbox__content:popover-open).is-visible {
|
|
204
204
|
opacity: 1;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{o as L,c as S,e as q,a as B,p as i,x as C,
|
|
1
|
+
import{o as L,c as S,e as q,a as B,p as i,x as C,s as y,t as G,j as H,n as J,k as K,u as M,b as u,d as N,f as k,h as a,m as l,r as s}from"../../custom-element.js";import{i as E}from"../../if.js";import{a as O,s as P}from"../../slot.js";import{b as Q}from"../../this.js";import{c as R}from"../../custom-element-forward-events.js";import{D as T}from"../divider/Divider.js";import"../../branches.js";import"../../attributes.js";var U=k('<span class="mc-action-list__divider svelte-rf7fkv"><!></span>'),V=k('<span class="mc-action-list__icon svelte-rf7fkv"><!></span>'),W=k('<!> <li role="menuitem"><button type="button" class="mc-action-list__button svelte-rf7fkv"><!> <p class="mc-action-list__text svelte-rf7fkv"> </p></button></li>',1);const X={hash:"svelte-rf7fkv",code:`/**
|
|
2
2
|
* Do not edit directly, this file was auto-generated.
|
|
3
|
-
*/.mc-action-list__element.svelte-rf7fkv {height:2.5rem;cursor:pointer;border-radius:var(--border-radius-s, 0.25rem);flex-grow:1;}.mc-action-list__element.svelte-rf7fkv:hover {background-color:var(--action-listbox-color-background-hover, rgba(0, 0, 0, 0.05));}.mc-action-list__element--danger.svelte-rf7fkv .mc-action-list__text:where(.svelte-rf7fkv) {color:var(--action-listbox-color-text-danger, #c61112);}.mc-action-list__element--danger.svelte-rf7fkv .mc-action-list__icon:where(.svelte-rf7fkv) {fill:var(--action-listbox-color-text-danger, #c61112);}.mc-action-list__element--danger.svelte-rf7fkv:hover {background-color:var(--action-listbox-color-background-danger-hover, rgba(198, 17, 18, 0.1));}.mc-action-list__element--disabled.svelte-rf7fkv .mc-action-list__text:where(.svelte-rf7fkv) {color:var(--action-listbox-color-text-disabled, #b3b3b3);}.mc-action-list__element--disabled.svelte-rf7fkv .mc-action-list__icon:where(.svelte-rf7fkv) {fill:var(--action-listbox-color-text-disabled, #b3b3b3);}.mc-action-list__element--disabled.svelte-rf7fkv:hover {background-color:transparent;}.mc-action-list__element--disabled.svelte-rf7fkv button:where(.svelte-rf7fkv) {cursor:not-allowed;}.mc-action-list__button.svelte-rf7fkv {background-color:transparent;color:var(--action-listbox-color-text-default, #000000);border:none;display:flex;align-items:center;gap:0.25rem;padding:0;padding:0 0.25rem;cursor:pointer;width:100%;height:100%;}.mc-action-list__button.svelte-rf7fkv:focus-visible {box-shadow:0 0 0 0.125rem var(--focus-color-mid, var(--focus-color-outline-mid, #ffffff)), 0 0 0 0.25rem var(--focus-color-outer, var(--focus-color-outline-outer, #000000));outline:0.125rem solid transparent;outline-offset:0.125rem;}.mc-action-list__text.svelte-rf7fkv {font-size:var(--font-size-150, 1rem);font-weight:var(--font-weight-regular, 400);line-height:var(--line-height-s, 1.3);text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0;}.mc-action-list__icon.svelte-rf7fkv {width:1.25rem;height:1.25rem;}.mc-action-list__divider.svelte-rf7fkv {margin:0.5rem 0;}.mc-action-list__divider.svelte-rf7fkv {display:block;}`};function Y(p,t){const z=O(t);q(t,!0),B(p,X);let c=i(t,"label",7),n=i(t,"disabled",7),v=i(t,"appearance",7),f=i(t,"divider",7),d=i(t,"onclick",7),m;function D(){m.focus()}var j={focus:D,get label(){return c()},set label(e){c(e),l()},get disabled(){return n()},set disabled(e){n(e),l()},get appearance(){return v()},set appearance(e){v(e),l()},get divider(){return f()},set divider(e){f(e),l()},get onclick(){return d()},set onclick(e){d(e),l()}},g=W(),h=C(g);{var A=e=>{var r=U(),b=a(r);T(b,{}),s(r),u(e,r)};E(h,e=>{f()&&e(A)})}var _=y(h,2),o=a(_),x=a(o);{var F=e=>{var r=V(),b=a(r);P(b,t,"icon",{},null),s(r),u(e,r)};E(x,e=>{z.icon&&e(F)})}var w=y(x,2),I=a(w,!0);return s(w),s(o),Q(o,e=>m=e,()=>m),s(_),G(()=>{
|
|
3
|
+
*/.mc-action-list__element.svelte-rf7fkv {height:2.5rem;cursor:pointer;border-radius:var(--border-radius-s, 0.25rem);flex-grow:1;}.mc-action-list__element.svelte-rf7fkv:hover {background-color:var(--action-listbox-color-background-hover, rgba(0, 0, 0, 0.05));}.mc-action-list__element--danger.svelte-rf7fkv .mc-action-list__text:where(.svelte-rf7fkv) {color:var(--action-listbox-color-text-danger, #c61112);}.mc-action-list__element--danger.svelte-rf7fkv .mc-action-list__icon:where(.svelte-rf7fkv) {fill:var(--action-listbox-color-text-danger, #c61112);}.mc-action-list__element--danger.svelte-rf7fkv:hover {background-color:var(--action-listbox-color-background-danger-hover, rgba(198, 17, 18, 0.1));}.mc-action-list__element--disabled.svelte-rf7fkv .mc-action-list__text:where(.svelte-rf7fkv) {color:var(--action-listbox-color-text-disabled, #b3b3b3);}.mc-action-list__element--disabled.svelte-rf7fkv .mc-action-list__icon:where(.svelte-rf7fkv) {fill:var(--action-listbox-color-text-disabled, #b3b3b3);}.mc-action-list__element--disabled.svelte-rf7fkv:hover {background-color:transparent;}.mc-action-list__element--disabled.svelte-rf7fkv button:where(.svelte-rf7fkv) {cursor:not-allowed;}.mc-action-list__button.svelte-rf7fkv {background-color:transparent;color:var(--action-listbox-color-text-default, #000000);border:none;display:flex;align-items:center;gap:0.25rem;padding:0;padding:0 0.25rem;cursor:pointer;width:100%;height:100%;}.mc-action-list__button.svelte-rf7fkv:focus-visible {box-shadow:0 0 0 0.125rem var(--focus-color-mid, var(--focus-color-outline-mid, #ffffff)), 0 0 0 0.25rem var(--focus-color-outer, var(--focus-color-outline-outer, #000000));outline:0.125rem solid transparent;outline-offset:0.125rem;}.mc-action-list__text.svelte-rf7fkv {font-size:var(--font-size-150, 1rem);font-weight:var(--font-weight-regular, 400);line-height:var(--line-height-s, 1.3);text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0;}.mc-action-list__icon.svelte-rf7fkv {width:1.25rem;height:1.25rem;}.mc-action-list__divider.svelte-rf7fkv {margin:0.5rem 0;}.mc-action-list__divider.svelte-rf7fkv {display:block;}`};function Y(p,t){const z=O(t);q(t,!0),B(p,X);let c=i(t,"label",7),n=i(t,"disabled",7),v=i(t,"appearance",7),f=i(t,"divider",7),d=i(t,"onclick",7),m;function D(){m.focus()}var j={focus:D,get label(){return c()},set label(e){c(e),l()},get disabled(){return n()},set disabled(e){n(e),l()},get appearance(){return v()},set appearance(e){v(e),l()},get divider(){return f()},set divider(e){f(e),l()},get onclick(){return d()},set onclick(e){d(e),l()}},g=W(),h=C(g);{var A=e=>{var r=U(),b=a(r);T(b,{}),s(r),u(e,r)};E(h,e=>{f()&&e(A)})}var _=y(h,2),o=a(_),x=a(o);{var F=e=>{var r=V(),b=a(r);P(b,t,"icon",{},null),s(r),u(e,r)};E(x,e=>{z.icon&&e(F)})}var w=y(x,2),I=a(w,!0);return s(w),s(o),Q(o,e=>m=e,()=>m),s(_),G(()=>{H(_,1,J({"mc-action-list__element":!0,"mc-action-list__element--danger":v()==="danger","mc-action-list__element--disabled":n()}),"svelte-rf7fkv"),o.disabled=n(),K(I,c())}),M("click",o,function(...e){d()?.apply(this,e)}),u(p,g),N(j)}L(["click"]);customElements.define("m-action-listbox-item",S(Y,{label:{},disabled:{},appearance:{},divider:{},onclick:{}},["icon"],["focus"],{mode:"open"},R));
|
|
4
4
|
//# sourceMappingURL=ActionListboxItem.js.map
|