@solid-design-system/components 1.7.0 → 1.9.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.
Files changed (96) hide show
  1. package/dist/components/es/accordion-group.js +1 -1
  2. package/dist/components/es/accordion.js +1 -1
  3. package/dist/components/es/drawer.js +1 -0
  4. package/dist/components/es/dropdown.js +1 -0
  5. package/dist/components/es/event.js +1 -0
  6. package/dist/components/es/popup.js +1 -0
  7. package/dist/components/es/solid-components2.js +1 -1
  8. package/dist/components/es/solid-element.js +4 -4
  9. package/dist/components/es/tabbable.js +1 -0
  10. package/dist/components/umd/solid-components.js +16 -16
  11. package/dist/custom-elements.json +1 -1
  12. package/dist/package/components/drawer/drawer.d.ts +34 -0
  13. package/dist/package/components/drawer/drawer.js +283 -0
  14. package/dist/package/components/dropdown/dropdown.d.ts +49 -0
  15. package/dist/package/components/dropdown/dropdown.js +335 -0
  16. package/dist/package/components/icon/library.system.d.ts +1 -0
  17. package/dist/package/components/icon/library.system.js +6 -1
  18. package/dist/package/components/popup/popup.d.ts +42 -0
  19. package/dist/package/components/popup/popup.js +318 -0
  20. package/dist/package/internal/modal.d.ts +12 -0
  21. package/dist/package/internal/modal.js +52 -0
  22. package/dist/package/internal/offset.d.ts +4 -0
  23. package/dist/package/internal/offset.js +9 -0
  24. package/dist/package/internal/scroll.d.ts +3 -0
  25. package/dist/package/internal/scroll.js +49 -0
  26. package/dist/package/internal/string.d.ts +1 -0
  27. package/dist/package/internal/string.js +6 -0
  28. package/dist/package/internal/tabbable.d.ts +4 -0
  29. package/dist/package/internal/tabbable.js +50 -0
  30. package/dist/package/solid-components.d.ts +3 -0
  31. package/dist/package/solid-components.js +16 -10
  32. package/dist/package/styles/tailwind.css.js +1 -1
  33. package/dist/versioned-components/es/accordion-group.js +1 -1
  34. package/dist/versioned-components/es/accordion.js +1 -1
  35. package/dist/versioned-components/es/badge.js +1 -1
  36. package/dist/versioned-components/es/brandshape.js +1 -1
  37. package/dist/versioned-components/es/button.js +2 -2
  38. package/dist/versioned-components/es/divider.js +1 -1
  39. package/dist/versioned-components/es/drawer.js +1 -0
  40. package/dist/versioned-components/es/dropdown.js +1 -0
  41. package/dist/versioned-components/es/event.js +1 -0
  42. package/dist/versioned-components/es/icon.js +1 -1
  43. package/dist/versioned-components/es/include.js +1 -1
  44. package/dist/versioned-components/es/link.js +1 -1
  45. package/dist/versioned-components/es/popup.js +1 -0
  46. package/dist/versioned-components/es/solid-components2.js +1 -1
  47. package/dist/versioned-components/es/solid-element.js +4 -4
  48. package/dist/versioned-components/es/spinner.js +1 -1
  49. package/dist/versioned-components/es/tabbable.js +1 -0
  50. package/dist/versioned-components/es/teaser.js +1 -1
  51. package/dist/versioned-package/components/accordion/accordion.d.ts +1 -1
  52. package/dist/versioned-package/components/accordion/accordion.js +2 -2
  53. package/dist/versioned-package/components/accordion-group/accordion-group.d.ts +1 -1
  54. package/dist/versioned-package/components/accordion-group/accordion-group.js +3 -3
  55. package/dist/versioned-package/components/badge/badge.d.ts +1 -1
  56. package/dist/versioned-package/components/badge/badge.js +1 -1
  57. package/dist/versioned-package/components/brandshape/brandshape.d.ts +1 -1
  58. package/dist/versioned-package/components/brandshape/brandshape.js +1 -1
  59. package/dist/versioned-package/components/button/button.d.ts +1 -1
  60. package/dist/versioned-package/components/button/button.js +4 -4
  61. package/dist/versioned-package/components/divider/divider.d.ts +1 -1
  62. package/dist/versioned-package/components/divider/divider.js +2 -2
  63. package/dist/versioned-package/components/drawer/drawer.d.ts +34 -0
  64. package/dist/versioned-package/components/drawer/drawer.js +283 -0
  65. package/dist/versioned-package/components/dropdown/dropdown.d.ts +49 -0
  66. package/dist/versioned-package/components/dropdown/dropdown.js +335 -0
  67. package/dist/versioned-package/components/icon/icon.d.ts +1 -1
  68. package/dist/versioned-package/components/icon/icon.js +1 -1
  69. package/dist/versioned-package/components/icon/library.system.d.ts +1 -0
  70. package/dist/versioned-package/components/icon/library.system.js +6 -1
  71. package/dist/versioned-package/components/include/include.d.ts +1 -1
  72. package/dist/versioned-package/components/include/include.js +1 -1
  73. package/dist/versioned-package/components/link/link.d.ts +1 -1
  74. package/dist/versioned-package/components/link/link.js +2 -2
  75. package/dist/versioned-package/components/popup/popup.d.ts +42 -0
  76. package/dist/versioned-package/components/popup/popup.js +318 -0
  77. package/dist/versioned-package/components/spinner/spinner.d.ts +1 -1
  78. package/dist/versioned-package/components/spinner/spinner.js +1 -1
  79. package/dist/versioned-package/components/teaser/teaser.js +1 -1
  80. package/dist/versioned-package/internal/form.js +1 -1
  81. package/dist/versioned-package/internal/modal.d.ts +12 -0
  82. package/dist/versioned-package/internal/modal.js +52 -0
  83. package/dist/versioned-package/internal/offset.d.ts +4 -0
  84. package/dist/versioned-package/internal/offset.js +9 -0
  85. package/dist/versioned-package/internal/scroll.d.ts +3 -0
  86. package/dist/versioned-package/internal/scroll.js +49 -0
  87. package/dist/versioned-package/internal/string.d.ts +1 -0
  88. package/dist/versioned-package/internal/string.js +6 -0
  89. package/dist/versioned-package/internal/tabbable.d.ts +4 -0
  90. package/dist/versioned-package/internal/tabbable.js +50 -0
  91. package/dist/versioned-package/solid-components.d.ts +3 -0
  92. package/dist/versioned-package/solid-components.js +16 -10
  93. package/dist/versioned-package/styles/tailwind.css.js +1 -1
  94. package/dist/vscode.html-custom-data.json +731 -11
  95. package/dist/web-types.json +2107 -625
  96. package/package.json +4 -3
@@ -1 +1 @@
1
- import{x as e,i as r}from"./lit-element.js";import{S as t,n as s,e as l}from"./solid-element.js";import{L as o}from"./solid-components2.js";import{t as i}from"./classix.js";var a=Object.defineProperty,n=Object.getOwnPropertyDescriptor,p=(e,r,t,s)=>{for(var l,o=s>1?void 0:s?n(r,t):r,i=e.length-1;i>=0;i--)(l=e[i])&&(o=(s?l(r,t,o):l(o))||o);return s&&o&&a(r,t,o),o};let c=class extends t{constructor(){super(...arguments),this.color="currentColor",this.localize=new o(this)}render(){return e`<svg role="progressbar" viewBox="0 0 24 24" class="${i("animate-spin",{primary:"text-primary",white:"text-white",currentColor:""}[this.color])}" aria-label="${this.localize.term("loading")}"><path fill-rule="evenodd" clip-rule="evenodd" d="M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22ZM24 12C24 18.6274 18.6274 24 12 24C5.37258 24 0 18.6274 0 12C0 5.37258 5.37258 0 12 0C18.6274 0 24 5.37258 24 12Z" class="opacity-20" fill="currentColor"/><mask id="mask0_5273_25391" style="mask-type:alpha" maskUnits="userSpaceOnUse"><path d="M24 12C24 5.37258 18.6274 0 12 0V12H24Z" fill="currentColor"/></mask><g mask="url(#mask0_5273_25391)"><path fill-rule="evenodd" clip-rule="evenodd" d="M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22ZM24 12C24 18.6274 18.6274 24 12 24C5.37258 24 0 18.6274 0 12C0 5.37258 5.37258 0 12 0C18.6274 0 24 5.37258 24 12Z" fill="currentColor"/></g></svg>`}};c.styles=[t.styles,r`:host{display:inline-block;width:1em;height:1em}`],p([s({reflect:!0})],c.prototype,"color",2),c=p([l("sd-1-7-0-spinner")],c);export{c as default};
1
+ import{x as e,i as r}from"./lit-element.js";import{S as t,n as s,e as l}from"./solid-element.js";import{L as o}from"./solid-components2.js";import{t as i}from"./classix.js";var a=Object.defineProperty,n=Object.getOwnPropertyDescriptor,p=(e,r,t,s)=>{for(var l,o=s>1?void 0:s?n(r,t):r,i=e.length-1;i>=0;i--)(l=e[i])&&(o=(s?l(r,t,o):l(o))||o);return s&&o&&a(r,t,o),o};let c=class extends t{constructor(){super(...arguments),this.color="currentColor",this.localize=new o(this)}render(){return e`<svg role="progressbar" viewBox="0 0 24 24" class="${i("animate-spin",{primary:"text-primary",white:"text-white",currentColor:""}[this.color])}" aria-label="${this.localize.term("loading")}"><path fill-rule="evenodd" clip-rule="evenodd" d="M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22ZM24 12C24 18.6274 18.6274 24 12 24C5.37258 24 0 18.6274 0 12C0 5.37258 5.37258 0 12 0C18.6274 0 24 5.37258 24 12Z" class="opacity-20" fill="currentColor"/><mask id="mask0_5273_25391" style="mask-type:alpha" maskUnits="userSpaceOnUse"><path d="M24 12C24 5.37258 18.6274 0 12 0V12H24Z" fill="currentColor"/></mask><g mask="url(#mask0_5273_25391)"><path fill-rule="evenodd" clip-rule="evenodd" d="M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22ZM24 12C24 18.6274 18.6274 24 12 24C5.37258 24 0 18.6274 0 12C0 5.37258 5.37258 0 12 0C18.6274 0 24 5.37258 24 12Z" fill="currentColor"/></g></svg>`}};c.styles=[t.styles,r`:host{display:inline-block;width:1em;height:1em}`],p([s({reflect:!0})],c.prototype,"color",2),c=p([l("sd-1-9-0-spinner")],c);export{c as default};
@@ -0,0 +1 @@
1
+ const t=new Set;function e(e){if(t.add(e),!document.body.classList.contains("sd-scroll-lock")){const t=function(){const t=document.documentElement.clientWidth;return Math.abs(window.innerWidth-t)}();document.body.classList.add("sd-scroll-lock"),document.body.style.setProperty("--sd-scroll-lock-size",`${t}px`)}}function o(e){t.delete(e),0===t.size&&(document.body.classList.remove("sd-scroll-lock"),document.body.style.removeProperty("--sd-scrollbar-width"))}function n(t,e,o="vertical",n="smooth"){const i=function(t,e){return{top:Math.round(t.getBoundingClientRect().top-e.getBoundingClientRect().top),left:Math.round(t.getBoundingClientRect().left-e.getBoundingClientRect().left)}}(t,e),l=i.top+e.scrollTop,s=i.left+e.scrollLeft,c=e.scrollLeft,d=e.scrollLeft+e.offsetWidth,r=e.scrollTop,a=e.scrollTop+e.offsetHeight;("horizontal"===o||"both"===o)&&(s<c?e.scrollTo({left:s,behavior:n}):s+t.clientWidth>d&&e.scrollTo({left:s-e.offsetWidth+t.clientWidth,behavior:n})),("vertical"===o||"both"===o)&&(l<r?e.scrollTo({top:l,behavior:n}):l+t.clientHeight>a&&e.scrollTo({top:l-e.offsetHeight+t.clientHeight,behavior:n}))}function i(t){const e=t.tagName.toLowerCase();return!("-1"===t.getAttribute("tabindex")||t.hasAttribute("disabled")||t.hasAttribute("aria-disabled")&&"false"!==t.getAttribute("aria-disabled")||"input"===e&&"radio"===t.getAttribute("type")&&!t.hasAttribute("checked")||null===t.offsetParent||"hidden"===window.getComputedStyle(t).visibility)&&(!!(("audio"===e||"video"===e)&&t.hasAttribute("controls")||t.hasAttribute("tabindex")||t.hasAttribute("contenteditable")&&"false"!==t.getAttribute("contenteditable"))||["button","input","select","textarea","a","audio","video","summary"].includes(e))}function l(t){const e=[];return function t(o){o instanceof HTMLElement&&(e.push(o),null!==o.shadowRoot&&"open"===o.shadowRoot.mode&&t(o.shadowRoot)),[...o.children].forEach((e=>t(e)))}(t),{start:e.find((t=>i(t)))??null,end:e.reverse().find((t=>i(t)))??null}}export{l as g,e as l,n as s,o as u};
@@ -1 +1 @@
1
- import{x as t,i as e}from"./lit-element.js";import{S as i,n as r,e as s}from"./solid-element.js";import{t as a}from"./state.js";import{i as o}from"./query.js";import{H as n}from"./slot.js";import{t as l}from"./classix.js";var h=Object.defineProperty,d=Object.getOwnPropertyDescriptor,p=(t,e,i,r)=>{for(var s,a=r>1?void 0:r?d(e,i):e,o=t.length-1;o>=0;o--)(s=t[o])&&(a=(r?s(e,i,a):s(a))||a);return r&&a&&h(e,i,a),a};let c=class extends i{constructor(){super(...arguments),this.variant="white",this.breakpoint=448,this.inset=!1,this.hasSlotController=new n(this,"[default]","media","meta","headline")}connectedCallback(){super.connectedCallback(),0===this.breakpoint?this._orientation="horizontal":9999===this.breakpoint?this._orientation="vertical":window.ResizeObserver&&(this.resizeObserver=new ResizeObserver((()=>this.updateOrientation())),this.resizeObserver.observe(this))}disconnectedCallback(){super.disconnectedCallback(),this.resizeObserver&&this.resizeObserver.disconnect()}updated(t){super.updated(t),t.has("breakpoint")&&this.updateOrientation()}updateOrientation(){this._orientation=this.offsetWidth>=this.breakpoint?"horizontal":"vertical"}render(){"white border-neutral-300"===this.variant&&(this.inset=!0);const e=this.hasSlotController.test("[default]"),i=this.hasSlotController.test("media"),r=this.hasSlotController.test("meta");return this.hasSlotController.test("headline"),t`<div class="${l("flex",{white:"bg-white","white border-neutral-300":"bg-white border border-neutral-300","neutral-100":"bg-neutral-100",primary:"bg-primary text-white","primary-100":"bg-primary-100"}[this.variant],"vertical"===this._orientation&&"flex-col","horizontal"===this._orientation&&"flex-row gap-8","horizontal"===this._orientation&&this.inset&&"py-8 px-10")}" part="base"><div style="${"horizontal"===this._orientation?"width: var(--distribution-media, 100%);":""}" class="${l(!this.inset&&"vertical"===this._orientation&&"mb-4",!i&&"hidden")}" part="media"><slot name="media"></slot></div><div style="${"horizontal"===this._orientation?"width: var(--distribution-content, 100%); "+(this.inset?"width: var(--distribution-content, calc(100% - 2rem));":""):""}" class="${l("flex flex-col text-left","horizontal"===this._orientation&&"flex flex-col","vertical"===this._orientation&&this.inset&&"m-4")}" part="content"><div part="meta" class="${l("gap-2 mb-4",!r&&"hidden")}"><slot name="meta"></slot></div><div part="headline" class="${l("text-lg font-bold m-0","primary"===this.variant?"text-white":"text-black")}"><slot name="headline">Always insert one semantically correct heading element here (e. g. &lt;h2>)</slot></div><div part="main" class="${l(!e&&"hidden")}"><slot></slot></div></div></div>`}};c.styles=[i.styles,e`:host{display:block}::slotted(*){margin:0}::slotted([slot=headline]){font-size:var(--sd-font-size-lg,1.25rem)!important;font-weight:700;margin:0!important}`],p([r({reflect:!0})],c.prototype,"variant",2),p([r({reflect:!0,type:Number})],c.prototype,"breakpoint",2),p([r({type:Boolean,reflect:!0})],c.prototype,"inset",2),p([o('[part="base"]')],c.prototype,"teaser",2),p([a()],c.prototype,"_orientation",2),c=p([s("sd-1-7-0-teaser")],c);export{c as default};
1
+ import{x as t,i as e}from"./lit-element.js";import{S as i,n as r,e as s}from"./solid-element.js";import{t as a}from"./state.js";import{i as o}from"./query.js";import{H as n}from"./slot.js";import{t as l}from"./classix.js";var h=Object.defineProperty,d=Object.getOwnPropertyDescriptor,p=(t,e,i,r)=>{for(var s,a=r>1?void 0:r?d(e,i):e,o=t.length-1;o>=0;o--)(s=t[o])&&(a=(r?s(e,i,a):s(a))||a);return r&&a&&h(e,i,a),a};let c=class extends i{constructor(){super(...arguments),this.variant="white",this.breakpoint=448,this.inset=!1,this.hasSlotController=new n(this,"[default]","media","meta","headline")}connectedCallback(){super.connectedCallback(),0===this.breakpoint?this._orientation="horizontal":9999===this.breakpoint?this._orientation="vertical":window.ResizeObserver&&(this.resizeObserver=new ResizeObserver((()=>this.updateOrientation())),this.resizeObserver.observe(this))}disconnectedCallback(){super.disconnectedCallback(),this.resizeObserver&&this.resizeObserver.disconnect()}updated(t){super.updated(t),t.has("breakpoint")&&this.updateOrientation()}updateOrientation(){this._orientation=this.offsetWidth>=this.breakpoint?"horizontal":"vertical"}render(){"white border-neutral-300"===this.variant&&(this.inset=!0);const e=this.hasSlotController.test("[default]"),i=this.hasSlotController.test("media"),r=this.hasSlotController.test("meta");return this.hasSlotController.test("headline"),t`<div class="${l("flex",{white:"bg-white","white border-neutral-300":"bg-white border border-neutral-300","neutral-100":"bg-neutral-100",primary:"bg-primary text-white","primary-100":"bg-primary-100"}[this.variant],"vertical"===this._orientation&&"flex-col","horizontal"===this._orientation&&"flex-row gap-8","horizontal"===this._orientation&&this.inset&&"py-8 px-10")}" part="base"><div style="${"horizontal"===this._orientation?"width: var(--distribution-media, 100%);":""}" class="${l(!this.inset&&"vertical"===this._orientation&&"mb-4",!i&&"hidden")}" part="media"><slot name="media"></slot></div><div style="${"horizontal"===this._orientation?"width: var(--distribution-content, 100%); "+(this.inset?"width: var(--distribution-content, calc(100% - 2rem));":""):""}" class="${l("flex flex-col text-left","horizontal"===this._orientation&&"flex flex-col","vertical"===this._orientation&&this.inset&&"m-4")}" part="content"><div part="meta" class="${l("gap-2 mb-4",!r&&"hidden")}"><slot name="meta"></slot></div><div part="headline" class="${l("text-lg font-bold m-0","primary"===this.variant?"text-white":"text-black")}"><slot name="headline">Always insert one semantically correct heading element here (e. g. &lt;h2>)</slot></div><div part="main" class="${l(!e&&"hidden")}"><slot></slot></div></div></div>`}};c.styles=[i.styles,e`:host{display:block}::slotted(*){margin:0}::slotted([slot=headline]){font-size:var(--sd-font-size-lg,1.25rem)!important;font-weight:700;margin:0!important}`],p([r({reflect:!0})],c.prototype,"variant",2),p([r({reflect:!0,type:Number})],c.prototype,"breakpoint",2),p([r({type:Boolean,reflect:!0})],c.prototype,"inset",2),p([o('[part="base"]')],c.prototype,"teaser",2),p([a()],c.prototype,"_orientation",2),c=p([s("sd-1-9-0-teaser")],c);export{c as default};
@@ -18,6 +18,6 @@ export default class SdAccordion extends SolidElement {
18
18
  }
19
19
  declare global {
20
20
  interface HTMLElementTagNameMap {
21
- 'sd-1-7-0-accordion': SdAccordion;
21
+ 'sd-1-9-0-accordion': SdAccordion;
22
22
  }
23
23
  }
@@ -105,7 +105,7 @@ let SdAccordion = class extends SolidElement {
105
105
  )}" role="button" aria-expanded="${this.open ? "true" : "false"}" aria-controls="content" tabindex="0" @click="${this.handleSummaryClick}" @keydown="${this.handleSummaryKeyDown}"><slot name="summary" part="summary" class="flex flex-auto items-center text-left">${this.summary}</slot><span part="summary-icon" class="${cx(
106
106
  "flex flex-grow-0 flex-shrink-0 flex-auto items-center transition-all ease-in-out duration-300 text-xl",
107
107
  this.open && "rotate-180"
108
- )}"><slot name="expand-icon" class="${cx(this.open && "hidden")}"><sd-1-7-0-icon library="system" name="chevron-down"></sd-1-7-0-icon></slot><slot name="collapse-icon" class="${cx(!this.open && "hidden")}"><sd-1-7-0-icon library="system" name="chevron-down"></sd-1-7-0-icon></slot></span></header><div part="content" id="content" class="overflow-hidden"><slot class="block px-4 py-6" role="region" aria-labelledby="header"></slot></div></div>`;
108
+ )}"><slot name="expand-icon" class="${cx(this.open && "hidden")}"><sd-1-9-0-icon library="system" name="chevron-down"></sd-1-9-0-icon></slot><slot name="collapse-icon" class="${cx(!this.open && "hidden")}"><sd-1-9-0-icon library="system" name="chevron-down"></sd-1-9-0-icon></slot></span></header><div part="content" id="content" class="overflow-hidden"><slot class="block px-4 py-6" role="region" aria-labelledby="header"></slot></div></div>`;
109
109
  }
110
110
  };
111
111
  SdAccordion.styles = [
@@ -131,7 +131,7 @@ __decorateClass([
131
131
  watch("open", { waitUntilFirstUpdate: true })
132
132
  ], SdAccordion.prototype, "handleOpenChange", 1);
133
133
  SdAccordion = __decorateClass([
134
- customElement("sd-1-7-0-accordion")
134
+ customElement("sd-1-9-0-accordion")
135
135
  ], SdAccordion);
136
136
  setDefaultAnimation("accordion.show", {
137
137
  keyframes: [
@@ -11,6 +11,6 @@ export default class SdAccordionGroup extends SolidElement {
11
11
  }
12
12
  declare global {
13
13
  interface HTMLElementTagNameMap {
14
- 'sd-1-7-0-accordion-group': SdAccordionGroup;
14
+ 'sd-1-9-0-accordion-group': SdAccordionGroup;
15
15
  }
16
16
  }
@@ -47,16 +47,16 @@ let SdAccordionGroup = class extends SolidElement {
47
47
  SdAccordionGroup.styles = [
48
48
  componentStyles,
49
49
  SolidElement.styles,
50
- css`:host{display:block}::slotted(sd-1-7-0-accordion:not(:first-of-type)){margin-top:-1px}`
50
+ css`:host{display:block}::slotted(sd-1-9-0-accordion:not(:first-of-type)){margin-top:-1px}`
51
51
  ];
52
52
  __decorateClass([
53
- queryAssignedElements({ selector: "sd-1-7-0-accordion" })
53
+ queryAssignedElements({ selector: "sd-1-9-0-accordion" })
54
54
  ], SdAccordionGroup.prototype, "_accordionsInDefaultSlot", 2);
55
55
  __decorateClass([
56
56
  property({ attribute: "close-others", type: Boolean })
57
57
  ], SdAccordionGroup.prototype, "closeOthers", 2);
58
58
  SdAccordionGroup = __decorateClass([
59
- customElement("sd-1-7-0-accordion-group")
59
+ customElement("sd-1-9-0-accordion-group")
60
60
  ], SdAccordionGroup);
61
61
  export {
62
62
  SdAccordionGroup as default
@@ -8,6 +8,6 @@ export default class SdBadge extends SolidElement {
8
8
  }
9
9
  declare global {
10
10
  interface HTMLElementTagNameMap {
11
- 'sd-1-7-0-badge': SdBadge;
11
+ 'sd-1-9-0-badge': SdBadge;
12
12
  }
13
13
  }
@@ -52,7 +52,7 @@ __decorateClass([
52
52
  property({ type: Boolean, reflect: true })
53
53
  ], SdBadge.prototype, "inverted", 2);
54
54
  SdBadge = __decorateClass([
55
- customElement("sd-1-7-0-badge")
55
+ customElement("sd-1-9-0-badge")
56
56
  ], SdBadge);
57
57
  export {
58
58
  SdBadge as default
@@ -22,6 +22,6 @@ export default class SdBrandshape extends SolidElement {
22
22
  }
23
23
  declare global {
24
24
  interface HTMLElementTagNameMap {
25
- 'sd-1-7-0-brandshape': SdBrandshape;
25
+ 'sd-1-9-0-brandshape': SdBrandshape;
26
26
  }
27
27
  }
@@ -122,7 +122,7 @@ __decorateClass([
122
122
  state()
123
123
  ], SdBrandshape.prototype, "componentBreakpoint", 2);
124
124
  SdBrandshape = __decorateClass([
125
- customElement("sd-1-7-0-brandshape")
125
+ customElement("sd-1-9-0-brandshape")
126
126
  ], SdBrandshape);
127
127
  export {
128
128
  SdBrandshape as default
@@ -43,6 +43,6 @@ export default class SdButton extends SolidElement implements SolidFormControl {
43
43
  }
44
44
  declare global {
45
45
  interface HTMLElementTagNameMap {
46
- 'sd-1-7-0-button': SdButton;
46
+ 'sd-1-9-0-button': SdButton;
47
47
  }
48
48
  }
@@ -190,19 +190,19 @@ let SdButton = class extends SolidElement {
190
190
  md: "ml-2",
191
191
  lg: "ml-2"
192
192
  }[this.size]
193
- )}"></slot>${this.loading ? html`<sd-1-7-0-spinner class="${cx("absolute top-1/2 left-1/2 transform -translate-x-1/2 -translate-y-1/2")}"></sd-1-7-0-spinner>` : ""}</${tag}>`;
193
+ )}"></slot>${this.loading ? html`<sd-1-9-0-spinner class="${cx("absolute top-1/2 left-1/2 transform -translate-x-1/2 -translate-y-1/2")}"></sd-1-9-0-spinner>` : ""}</${tag}>`;
194
194
  }
195
195
  };
196
196
  SdButton.styles = [
197
197
  componentStyles,
198
198
  SolidElement.styles,
199
- css`:host{display:inline-block;position:relative;width:auto;cursor:pointer}sd-1-7-0-spinner{--indicator-color:currentColor;--track-color:var(--tw-varcolor-200)}::slotted(sd-1-7-0-badge){position:absolute;top:0;right:0;translate:50% -50%;pointer-events:none}::slotted(sd-1-7-0-icon),sd-1-7-0-spinner{font-size:calc(var(--tw-varspacing)/ 2)}`
199
+ css`:host{display:inline-block;position:relative;width:auto;cursor:pointer}sd-1-9-0-spinner{--indicator-color:currentColor;--track-color:var(--tw-varcolor-200)}::slotted(sd-1-9-0-badge){position:absolute;top:0;right:0;translate:50% -50%;pointer-events:none}::slotted(sd-1-9-0-icon),sd-1-9-0-spinner{font-size:calc(var(--tw-varspacing)/ 2)}`
200
200
  ];
201
201
  __decorateClass([
202
202
  query("a, button")
203
203
  ], SdButton.prototype, "button", 2);
204
204
  __decorateClass([
205
- queryAssignedElements({ selector: "sd-1-7-0-icon" })
205
+ queryAssignedElements({ selector: "sd-1-9-0-icon" })
206
206
  ], SdButton.prototype, "_iconsInDefaultSlot", 2);
207
207
  __decorateClass([
208
208
  state()
@@ -265,7 +265,7 @@ __decorateClass([
265
265
  watch("disabled", { waitUntilFirstUpdate: true })
266
266
  ], SdButton.prototype, "handleDisabledChange", 1);
267
267
  SdButton = __decorateClass([
268
- customElement("sd-1-7-0-button")
268
+ customElement("sd-1-9-0-button")
269
269
  ], SdButton);
270
270
  export {
271
271
  SdButton as default
@@ -8,6 +8,6 @@ export default class SdDivider extends SolidElement {
8
8
  }
9
9
  declare global {
10
10
  interface HTMLElementTagNameMap {
11
- 'sd-1-7-0-divider': SdDivider;
11
+ 'sd-1-9-0-divider': SdDivider;
12
12
  }
13
13
  }
@@ -34,7 +34,7 @@ let SdDivider = class extends SolidElement {
34
34
  SdDivider.styles = [
35
35
  componentStyles,
36
36
  SolidElement.styles,
37
- css`:host{margin:0}:host(sd-1-7-0-divider[orientation=horizontal]){display:block}:host(sd-1-7-0-divider[orientation=vertical]){display:inline-block}`
37
+ css`:host{margin:0}:host(sd-1-9-0-divider[orientation=horizontal]){display:block}:host(sd-1-9-0-divider[orientation=vertical]){display:inline-block}`
38
38
  ];
39
39
  __decorateClass([
40
40
  property({ reflect: true })
@@ -43,7 +43,7 @@ __decorateClass([
43
43
  property({ type: Boolean, reflect: true })
44
44
  ], SdDivider.prototype, "inverted", 2);
45
45
  SdDivider = __decorateClass([
46
- customElement("sd-1-7-0-divider")
46
+ customElement("sd-1-9-0-divider")
47
47
  ], SdDivider);
48
48
  export {
49
49
  SdDivider as default
@@ -0,0 +1,34 @@
1
+ import '../button/button';
2
+ import '../icon/icon';
3
+ import SolidElement from '../../internal/solid-element';
4
+ export default class SdDrawer extends SolidElement {
5
+ private readonly hasSlotController;
6
+ private readonly localize;
7
+ private modal;
8
+ private originalTrigger;
9
+ drawer: HTMLElement;
10
+ panel: HTMLElement;
11
+ overlay: HTMLElement;
12
+ open: boolean;
13
+ label: string;
14
+ placement: 'end' | 'start';
15
+ contained: boolean;
16
+ noHeader: boolean;
17
+ firstUpdated(): void;
18
+ disconnectedCallback(): void;
19
+ private requestClose;
20
+ private addOpenListeners;
21
+ private removeOpenListeners;
22
+ private handleDocumentKeyDown;
23
+ handleOpenChange(): Promise<void>;
24
+ handleNoModalChange(): void;
25
+ show(): Promise<void>;
26
+ hide(): Promise<void>;
27
+ render(): import("lit-html").TemplateResult<1>;
28
+ static styles: import("lit").CSSResultGroup[];
29
+ }
30
+ declare global {
31
+ interface HTMLElementTagNameMap {
32
+ 'sd-1-9-0-drawer': SdDrawer;
33
+ }
34
+ }
@@ -0,0 +1,283 @@
1
+ import "../button/button.js";
2
+ import "../icon/icon.js";
3
+ import { animateTo, stopAnimations } from "../../internal/animate.js";
4
+ import { css, html } from "lit";
5
+ import { query, property, customElement } from "lit/decorators.js";
6
+ import { setDefaultAnimation, getAnimation } from "../../utilities/animation-registry.js";
7
+ import { HasSlotController } from "../../internal/slot.js";
8
+ import { ifDefined } from "lit/directives/if-defined.js";
9
+ import { LocalizeController } from "../../utilities/localize.js";
10
+ import { lockBodyScrolling, unlockBodyScrolling } from "../../internal/scroll.js";
11
+ import { uppercaseFirstLetter } from "../../internal/string.js";
12
+ import { waitForEvent } from "../../internal/event.js";
13
+ import { watch } from "../../internal/watch.js";
14
+ import componentStyles from "../../styles/component.styles.js";
15
+ import cx from "classix";
16
+ import Modal from "../../internal/modal.js";
17
+ import SolidElement from "../../internal/solid-element.js";
18
+ var __defProp = Object.defineProperty;
19
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
20
+ var __decorateClass = (decorators, target, key, kind) => {
21
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
22
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
23
+ if (decorator = decorators[i])
24
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
25
+ if (kind && result)
26
+ __defProp(target, key, result);
27
+ return result;
28
+ };
29
+ let SdDrawer = class extends SolidElement {
30
+ constructor() {
31
+ super(...arguments);
32
+ this.hasSlotController = new HasSlotController(this, "footer");
33
+ this.localize = new LocalizeController(this);
34
+ this.modal = new Modal(this);
35
+ this.open = false;
36
+ this.label = "";
37
+ this.placement = "end";
38
+ this.contained = false;
39
+ this.noHeader = false;
40
+ this.handleDocumentKeyDown = (event) => {
41
+ if (this.open && event.key === "Escape") {
42
+ event.stopPropagation();
43
+ this.requestClose("keyboard");
44
+ }
45
+ };
46
+ }
47
+ firstUpdated() {
48
+ this.drawer.hidden = !this.open;
49
+ if (this.open) {
50
+ this.addOpenListeners();
51
+ if (!this.contained) {
52
+ this.modal.activate();
53
+ lockBodyScrolling(this);
54
+ }
55
+ }
56
+ }
57
+ disconnectedCallback() {
58
+ super.disconnectedCallback();
59
+ unlockBodyScrolling(this);
60
+ }
61
+ requestClose(source) {
62
+ const slRequestClose = this.emit("sd-request-close", {
63
+ cancelable: true,
64
+ detail: { source }
65
+ });
66
+ if (slRequestClose.defaultPrevented) {
67
+ const animation = getAnimation(this, "drawer.denyClose", { dir: this.localize.dir() });
68
+ animateTo(this.panel, animation.keyframes, animation.options);
69
+ return;
70
+ }
71
+ this.hide();
72
+ }
73
+ addOpenListeners() {
74
+ document.addEventListener("keydown", this.handleDocumentKeyDown);
75
+ }
76
+ removeOpenListeners() {
77
+ document.removeEventListener("keydown", this.handleDocumentKeyDown);
78
+ }
79
+ async handleOpenChange() {
80
+ if (this.open) {
81
+ this.emit("sd-show");
82
+ this.addOpenListeners();
83
+ this.originalTrigger = document.activeElement;
84
+ if (!this.contained) {
85
+ this.modal.activate();
86
+ lockBodyScrolling(this);
87
+ }
88
+ const autoFocusTarget = this.querySelector("[autofocus]");
89
+ if (autoFocusTarget) {
90
+ autoFocusTarget.removeAttribute("autofocus");
91
+ }
92
+ await Promise.all([stopAnimations(this.drawer), stopAnimations(this.overlay)]);
93
+ this.drawer.hidden = false;
94
+ requestAnimationFrame(() => {
95
+ const sdInitialFocus = this.emit("sd-initial-focus", { cancelable: true });
96
+ if (!sdInitialFocus.defaultPrevented) {
97
+ if (autoFocusTarget) {
98
+ autoFocusTarget.focus({ preventScroll: true });
99
+ } else {
100
+ this.panel.focus({ preventScroll: true });
101
+ }
102
+ }
103
+ if (autoFocusTarget) {
104
+ autoFocusTarget.setAttribute("autofocus", "");
105
+ }
106
+ });
107
+ const panelAnimation = getAnimation(this, `drawer.show${uppercaseFirstLetter(this.placement)}`, {
108
+ dir: this.localize.dir()
109
+ });
110
+ const overlayAnimation = getAnimation(this, "drawer.overlay.show", { dir: this.localize.dir() });
111
+ await Promise.all([
112
+ animateTo(this.panel, panelAnimation.keyframes, panelAnimation.options),
113
+ animateTo(this.overlay, overlayAnimation.keyframes, overlayAnimation.options)
114
+ ]);
115
+ this.emit("sd-after-show");
116
+ } else {
117
+ this.emit("sd-hide");
118
+ this.removeOpenListeners();
119
+ if (!this.contained) {
120
+ this.modal.deactivate();
121
+ unlockBodyScrolling(this);
122
+ }
123
+ await Promise.all([stopAnimations(this.drawer), stopAnimations(this.overlay)]);
124
+ const panelAnimation = getAnimation(this, `drawer.hide${uppercaseFirstLetter(this.placement)}`, {
125
+ dir: this.localize.dir()
126
+ });
127
+ const overlayAnimation = getAnimation(this, "drawer.overlay.hide", { dir: this.localize.dir() });
128
+ await Promise.all([
129
+ animateTo(this.overlay, overlayAnimation.keyframes, overlayAnimation.options).then(() => {
130
+ this.overlay.hidden = true;
131
+ }),
132
+ animateTo(this.panel, panelAnimation.keyframes, panelAnimation.options).then(() => {
133
+ this.panel.hidden = true;
134
+ })
135
+ ]);
136
+ this.drawer.hidden = true;
137
+ this.overlay.hidden = false;
138
+ this.panel.hidden = false;
139
+ const trigger = this.originalTrigger;
140
+ if (typeof (trigger == null ? void 0 : trigger.focus) === "function") {
141
+ setTimeout(() => trigger.focus());
142
+ }
143
+ this.emit("sd-after-hide");
144
+ }
145
+ }
146
+ handleNoModalChange() {
147
+ if (this.open && !this.contained) {
148
+ this.modal.activate();
149
+ lockBodyScrolling(this);
150
+ }
151
+ if (this.open && this.contained) {
152
+ this.modal.deactivate();
153
+ unlockBodyScrolling(this);
154
+ }
155
+ }
156
+ /** Shows the drawer. */
157
+ async show() {
158
+ if (this.open) {
159
+ return void 0;
160
+ }
161
+ this.open = true;
162
+ return waitForEvent(this, "sd-after-show");
163
+ }
164
+ /** Hides the drawer */
165
+ async hide() {
166
+ if (!this.open) {
167
+ return void 0;
168
+ }
169
+ this.open = false;
170
+ return waitForEvent(this, "sd-after-hide");
171
+ }
172
+ render() {
173
+ return html`<div part="base" class="${cx(
174
+ "top-0 start-0 w-full h-full pointer-events-none overflow-hidden",
175
+ this.contained ? "absolute" : "fixed"
176
+ )}"><div part="overlay" class="${cx(
177
+ "block top-0 left-0 right-0 bottom-0 bg-neutral-800/75 pointer-events-auto",
178
+ this.contained ? "absolute" : "fixed"
179
+ )}" @click="${() => this.requestClose("overlay")}" tabindex="-1"></div><div part="panel" class="${cx(
180
+ "absolute flex flex-col z-10 max-w-full max-h-full bg-white shadow-lg overflow-auto pointer-events-auto focus:outline-none",
181
+ {
182
+ end: "top-0 end-0 bottom-auto start-auto w-[--width] h-full",
183
+ start: "top-0 end-auto bottom-auto start-0 w-[--width] h-full"
184
+ }[this.placement]
185
+ )}" role="dialog" aria-modal="true" aria-hidden="${this.open ? "false" : "true"}" aria-label="${this.label}" aria-labelledby="${ifDefined(!this.noHeader ? "title" : void 0)}" tabindex="0">${!this.noHeader ? html`<header part="header" class="flex justify-between py-2 px-4 items-center flex-shrink-0" style="min-height:56px"><div part="title"><slot name="header" part="title" class="flex-auto text-xl m-0" id="title"></slot></div><div class="shrink-0 flex flex-wrap justify-end gap-1 ml-4 absolute top-2 right-2"><sd-1-9-0-button variant="tertiary" size="lg" part="close-button" @click="${() => this.requestClose("close-button")}"><sd-1-9-0-icon name="close" library="system"></sd-1-9-0-icon></sd-1-9-0-button></div></header>` : ""}<div part="body" class="flex-auto block px-4"><slot></slot></div><footer part="footer" class="${cx(this.hasSlotController.test("footer") ? "text-left p-4" : "hidden")}"><slot name="footer"></slot></footer></div></div>`;
186
+ }
187
+ };
188
+ SdDrawer.styles = [
189
+ SolidElement.styles,
190
+ css`${componentStyles}:host{--width:25rem;display:contents}:host([contained]){z-index:initial}:host(:not([contained])){z-index:var(--sd-z-index-drawer)}[part=body]{-webkit-overflow-scrolling:touch;overflow-y:scroll;scrollbar-width:none}[part=body]::-webkit-scrollbar{width:0;height:0}`
191
+ ];
192
+ __decorateClass([
193
+ query("[part=base]")
194
+ ], SdDrawer.prototype, "drawer", 2);
195
+ __decorateClass([
196
+ query("[part=panel]")
197
+ ], SdDrawer.prototype, "panel", 2);
198
+ __decorateClass([
199
+ query("[part=overlay]")
200
+ ], SdDrawer.prototype, "overlay", 2);
201
+ __decorateClass([
202
+ property({ type: Boolean, reflect: true })
203
+ ], SdDrawer.prototype, "open", 2);
204
+ __decorateClass([
205
+ property({ attribute: "label", reflect: true })
206
+ ], SdDrawer.prototype, "label", 2);
207
+ __decorateClass([
208
+ property({ reflect: true })
209
+ ], SdDrawer.prototype, "placement", 2);
210
+ __decorateClass([
211
+ property({ type: Boolean, reflect: true })
212
+ ], SdDrawer.prototype, "contained", 2);
213
+ __decorateClass([
214
+ property({ attribute: "no-header", type: Boolean })
215
+ ], SdDrawer.prototype, "noHeader", 2);
216
+ __decorateClass([
217
+ watch("open", { waitUntilFirstUpdate: true })
218
+ ], SdDrawer.prototype, "handleOpenChange", 1);
219
+ __decorateClass([
220
+ watch("contained", { waitUntilFirstUpdate: true })
221
+ ], SdDrawer.prototype, "handleNoModalChange", 1);
222
+ SdDrawer = __decorateClass([
223
+ customElement("sd-1-9-0-drawer")
224
+ ], SdDrawer);
225
+ setDefaultAnimation("drawer.showStart", {
226
+ keyframes: [
227
+ { opacity: 0, translate: "-100%" },
228
+ { opacity: 1, translate: "0" }
229
+ ],
230
+ rtlKeyframes: [
231
+ { opacity: 0, translate: "100%" },
232
+ { opacity: 1, translate: "0" }
233
+ ],
234
+ options: { duration: 250, easing: "ease" }
235
+ });
236
+ setDefaultAnimation("drawer.hideStart", {
237
+ keyframes: [
238
+ { opacity: 1, translate: "0" },
239
+ { opacity: 0, translate: "-100%" }
240
+ ],
241
+ rtlKeyframes: [
242
+ { opacity: 1, translate: "0" },
243
+ { opacity: 0, translate: "100%" }
244
+ ],
245
+ options: { duration: 250, easing: "ease" }
246
+ });
247
+ setDefaultAnimation("drawer.showEnd", {
248
+ keyframes: [
249
+ { opacity: 0, translate: "100%" },
250
+ { opacity: 1, translate: "0" }
251
+ ],
252
+ rtlKeyframes: [
253
+ { opacity: 0, translate: "-100%" },
254
+ { opacity: 1, translate: "0" }
255
+ ],
256
+ options: { duration: 250, easing: "ease" }
257
+ });
258
+ setDefaultAnimation("drawer.hideEnd", {
259
+ keyframes: [
260
+ { opacity: 1, translate: "0" },
261
+ { opacity: 0, translate: "100%" }
262
+ ],
263
+ rtlKeyframes: [
264
+ { opacity: 1, translate: "0" },
265
+ { opacity: 0, translate: "-100%" }
266
+ ],
267
+ options: { duration: 250, easing: "ease" }
268
+ });
269
+ setDefaultAnimation("drawer.denyClose", {
270
+ keyframes: [{ scale: 1 }, { scale: 1.01 }, { scale: 1 }],
271
+ options: { duration: 250 }
272
+ });
273
+ setDefaultAnimation("drawer.overlay.show", {
274
+ keyframes: [{ opacity: 0 }, { opacity: 1 }],
275
+ options: { duration: 250 }
276
+ });
277
+ setDefaultAnimation("drawer.overlay.hide", {
278
+ keyframes: [{ opacity: 1 }, { opacity: 0 }],
279
+ options: { duration: 250 }
280
+ });
281
+ export {
282
+ SdDrawer as default
283
+ };
@@ -0,0 +1,49 @@
1
+ import '../popup/popup';
2
+ import SolidElement from '../../internal/solid-element';
3
+ import type SdMenu from '../../_components/menu/menu';
4
+ import type SdPopup from '../popup/popup';
5
+ export default class SdDropdown extends SolidElement {
6
+ popup: SdPopup;
7
+ trigger: HTMLSlotElement;
8
+ panel: HTMLSlotElement;
9
+ private readonly localize;
10
+ open: boolean;
11
+ rounded: boolean;
12
+ placement: 'top' | 'top-start' | 'top-end' | 'bottom' | 'bottom-start' | 'bottom-end' | 'right' | 'right-start' | 'right-end' | 'left' | 'left-start' | 'left-end';
13
+ disabled: boolean;
14
+ stayOpenOnSelect: boolean;
15
+ containingElement?: HTMLElement;
16
+ distance: number;
17
+ skidding: number;
18
+ noAutoSize: boolean;
19
+ noFlip: boolean;
20
+ hoist: boolean;
21
+ connectedCallback(): void;
22
+ firstUpdated(): void;
23
+ disconnectedCallback(): void;
24
+ focusOnTrigger(): void;
25
+ getMenu(): SdMenu | undefined;
26
+ handleKeyDown(event: KeyboardEvent): void;
27
+ handleDocumentKeyDown(event: KeyboardEvent): void;
28
+ handleDocumentMouseDown(event: MouseEvent): void;
29
+ handleMenuItemActivate(event: CustomEvent): void;
30
+ handlePanelSelect(event: CustomEvent): void;
31
+ handleTriggerClick(): void;
32
+ handleTriggerKeyDown(event: KeyboardEvent): void;
33
+ handleTriggerKeyUp(event: KeyboardEvent): void;
34
+ handleTriggerSlotChange(): void;
35
+ updateAccessibleTrigger(): void;
36
+ show(): Promise<void>;
37
+ hide(): Promise<void>;
38
+ reposition(): void;
39
+ addOpenListeners(): void;
40
+ removeOpenListeners(): void;
41
+ handleOpenChange(): Promise<void>;
42
+ render(): import("lit-html").TemplateResult<1>;
43
+ static styles: import("lit").CSSResultGroup[];
44
+ }
45
+ declare global {
46
+ interface HTMLElementTagNameMap {
47
+ 'sd-1-9-0-dropdown': SdDropdown;
48
+ }
49
+ }