@solid-design-system/components 1.0.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/LICENSE.md +20 -0
- package/README.md +15 -0
- package/dist/components/es/button.js +125 -0
- package/dist/components/es/classix.js +1 -0
- package/dist/components/es/component.styles.js +1 -0
- package/dist/components/es/icon.js +17 -0
- package/dist/components/es/if-defined.js +11 -0
- package/dist/components/es/include.js +1 -0
- package/dist/components/es/include.styles.js +1 -0
- package/dist/components/es/library.js +1 -0
- package/dist/components/es/library.system.js +1 -0
- package/dist/components/es/link.js +1 -0
- package/dist/components/es/lit-element.js +23 -0
- package/dist/components/es/request.js +1 -0
- package/dist/components/es/request2.js +1 -0
- package/dist/components/es/solid-components.js +1 -0
- package/dist/components/es/solid-element.js +21 -0
- package/dist/components/es/spinner.js +1 -0
- package/dist/components/es/state.js +6 -0
- package/dist/components/es/watch.js +1 -0
- package/dist/components/umd/solid-components.js +200 -0
- package/dist/custom-elements.json +1 -0
- package/dist/package/components/button/button.d.ts +48 -0
- package/dist/package/components/button/button.js +391 -0
- package/dist/package/components/icon/icon.d.ts +22 -0
- package/dist/package/components/icon/icon.js +129 -0
- package/dist/package/components/icon/library.d.ts +16 -0
- package/dist/package/components/icon/library.js +17 -0
- package/dist/package/components/icon/library.system.d.ts +7 -0
- package/dist/package/components/icon/library.system.js +26 -0
- package/dist/package/components/icon/request.d.ts +11 -0
- package/dist/package/components/icon/request.js +24 -0
- package/dist/package/components/include/include.d.ts +16 -0
- package/dist/package/components/include/include.js +72 -0
- package/dist/package/components/include/include.styles.d.ts +2 -0
- package/dist/package/components/include/include.styles.js +6 -0
- package/dist/package/components/include/request.d.ts +7 -0
- package/dist/package/components/include/request.js +18 -0
- package/dist/package/components/link/link.d.ts +22 -0
- package/dist/package/components/link/link.js +107 -0
- package/dist/package/components/spinner/spinner.d.ts +12 -0
- package/dist/package/components/spinner/spinner.js +46 -0
- package/dist/package/internal/form.d.ts +35 -0
- package/dist/package/internal/form.js +212 -0
- package/dist/package/internal/slot.d.ts +14 -0
- package/dist/package/internal/slot.js +47 -0
- package/dist/package/internal/solid-element.d.ts +26 -0
- package/dist/package/internal/solid-element.js +38 -0
- package/dist/package/internal/watch.d.ts +11 -0
- package/dist/package/internal/watch.js +28 -0
- package/dist/package/node_modules/.pnpm/@shoelace-style_localize@3.1.0/node_modules/@shoelace-style/localize/dist/index.js +103 -0
- package/dist/package/solid-components.d.ts +6 -0
- package/dist/package/solid-components.js +14 -0
- package/dist/package/styles/component.styles.d.ts +2 -0
- package/dist/package/styles/component.styles.js +5 -0
- package/dist/package/styles/tailwind.css.js +4 -0
- package/dist/package/translations/en.d.ts +3 -0
- package/dist/package/translations/en.js +31 -0
- package/dist/package/utilities/localize.d.ts +25 -0
- package/dist/package/utilities/localize.js +7 -0
- package/dist/versioned-components/es/button.js +125 -0
- package/dist/versioned-components/es/classix.js +1 -0
- package/dist/versioned-components/es/component.styles.js +1 -0
- package/dist/versioned-components/es/icon.js +17 -0
- package/dist/versioned-components/es/if-defined.js +11 -0
- package/dist/versioned-components/es/include.js +1 -0
- package/dist/versioned-components/es/include.styles.js +1 -0
- package/dist/versioned-components/es/library.js +1 -0
- package/dist/versioned-components/es/library.system.js +1 -0
- package/dist/versioned-components/es/link.js +1 -0
- package/dist/versioned-components/es/lit-element.js +23 -0
- package/dist/versioned-components/es/request.js +1 -0
- package/dist/versioned-components/es/request2.js +1 -0
- package/dist/versioned-components/es/solid-components.js +1 -0
- package/dist/versioned-components/es/solid-element.js +21 -0
- package/dist/versioned-components/es/spinner.js +1 -0
- package/dist/versioned-components/es/state.js +6 -0
- package/dist/versioned-components/es/watch.js +1 -0
- package/dist/versioned-package/components/button/button.d.ts +48 -0
- package/dist/versioned-package/components/button/button.js +391 -0
- package/dist/versioned-package/components/icon/icon.d.ts +22 -0
- package/dist/versioned-package/components/icon/icon.js +129 -0
- package/dist/versioned-package/components/icon/library.d.ts +16 -0
- package/dist/versioned-package/components/icon/library.js +17 -0
- package/dist/versioned-package/components/icon/library.system.d.ts +7 -0
- package/dist/versioned-package/components/icon/library.system.js +26 -0
- package/dist/versioned-package/components/icon/request.d.ts +11 -0
- package/dist/versioned-package/components/icon/request.js +24 -0
- package/dist/versioned-package/components/include/include.d.ts +16 -0
- package/dist/versioned-package/components/include/include.js +72 -0
- package/dist/versioned-package/components/include/include.styles.d.ts +2 -0
- package/dist/versioned-package/components/include/include.styles.js +6 -0
- package/dist/versioned-package/components/include/request.d.ts +7 -0
- package/dist/versioned-package/components/include/request.js +18 -0
- package/dist/versioned-package/components/link/link.d.ts +22 -0
- package/dist/versioned-package/components/link/link.js +107 -0
- package/dist/versioned-package/components/spinner/spinner.d.ts +12 -0
- package/dist/versioned-package/components/spinner/spinner.js +46 -0
- package/dist/versioned-package/internal/form.d.ts +35 -0
- package/dist/versioned-package/internal/form.js +212 -0
- package/dist/versioned-package/internal/slot.d.ts +14 -0
- package/dist/versioned-package/internal/slot.js +47 -0
- package/dist/versioned-package/internal/solid-element.d.ts +26 -0
- package/dist/versioned-package/internal/solid-element.js +38 -0
- package/dist/versioned-package/internal/watch.d.ts +11 -0
- package/dist/versioned-package/internal/watch.js +28 -0
- package/dist/versioned-package/node_modules/.pnpm/@shoelace-style_localize@3.1.0/node_modules/@shoelace-style/localize/dist/index.js +103 -0
- package/dist/versioned-package/solid-components.d.ts +6 -0
- package/dist/versioned-package/solid-components.js +14 -0
- package/dist/versioned-package/styles/component.styles.d.ts +2 -0
- package/dist/versioned-package/styles/component.styles.js +5 -0
- package/dist/versioned-package/styles/tailwind.css.js +4 -0
- package/dist/versioned-package/translations/en.d.ts +3 -0
- package/dist/versioned-package/translations/en.js +31 -0
- package/dist/versioned-package/utilities/localize.d.ts +25 -0
- package/dist/versioned-package/utilities/localize.js +7 -0
- package/dist/vscode.html-custom-data.json +661 -0
- package/dist/web-types.json +1449 -0
- package/package.json +185 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import{r as t,s as r}from"./lit-element.js";
|
|
2
|
+
/**
|
|
3
|
+
* @license
|
|
4
|
+
* Copyright 2017 Google LLC
|
|
5
|
+
* SPDX-License-Identifier: BSD-3-Clause
|
|
6
|
+
*/const e=t=>r=>{return"function"==typeof r?(e=t,o=r,customElements.define(e,o),o):((t,r)=>{const{kind:e,elements:o}=r;return{kind:e,elements:o,finisher(r){customElements.define(t,r)}}})(t,r);
|
|
7
|
+
/**
|
|
8
|
+
* @license
|
|
9
|
+
* Copyright 2017 Google LLC
|
|
10
|
+
* SPDX-License-Identifier: BSD-3-Clause
|
|
11
|
+
*/var e,o},o=(t,r)=>"method"===r.kind&&r.descriptor&&!("value"in r.descriptor)?{...r,finisher(e){e.createProperty(r.key,t)}}:{kind:"field",key:Symbol(),placement:"own",descriptor:{},originalKey:r.key,initializer(){"function"==typeof r.initializer&&(this[r.key]=r.initializer.call(this))},finisher(e){e.createProperty(r.key,t)}};function a(t){return(r,e)=>void 0!==e?((t,r,e)=>{r.constructor.createProperty(e,t)})(t,r,e):o(t,r)}
|
|
12
|
+
/**
|
|
13
|
+
* @license
|
|
14
|
+
* Copyright 2017 Google LLC
|
|
15
|
+
* SPDX-License-Identifier: BSD-3-Clause
|
|
16
|
+
*/const i=({finisher:t,descriptor:r})=>(e,o)=>{var a;if(void 0===o){const o=null!==(a=e.originalKey)&&void 0!==a?a:e.key,i=null!=r?{kind:"method",placement:"prototype",key:o,descriptor:r(e.key)}:{...e,key:o};return null!=t&&(i.finisher=function(r){t(r,o)}),i}{const a=e.constructor;void 0!==r&&Object.defineProperty(e,o,r(o)),null==t||t(a,o)}}
|
|
17
|
+
/**
|
|
18
|
+
* @license
|
|
19
|
+
* Copyright 2021 Google LLC
|
|
20
|
+
* SPDX-License-Identifier: BSD-3-Clause
|
|
21
|
+
*/;var n;const s=null!=(null===(n=window.HTMLSlotElement)||void 0===n?void 0:n.prototype.assignedElements)?(t,r)=>t.assignedElements(r):(t,r)=>t.assignedNodes(r).filter((t=>t.nodeType===Node.ELEMENT_NODE));function c(t){const{slot:r,selector:e}=t??{};return i({descriptor:o=>({get(){var o;const a="slot"+(r?`[name=${r}]`:":not([name])"),i=null===(o=this.renderRoot)||void 0===o?void 0:o.querySelector(a),n=null!=i?s(i,t):[];return e?n.filter((t=>t.matches(e))):n},enumerable:!0,configurable:!0})})}var l=Object.defineProperty,d=Object.getOwnPropertyDescriptor,p=(t,r,e,o)=>{for(var a,i=o>1?void 0:o?d(r,e):r,n=t.length-1;n>=0;n--)(a=t[n])&&(i=(o?a(r,e,i):a(i))||i);return o&&i&&l(r,e,i),i};class w extends r{emit(t,r){const e=new CustomEvent(t,{bubbles:!0,cancelable:!1,composed:!0,detail:{},...r});return this.dispatchEvent(e),e}}w.styles=t('/*! tailwindcss v3.3.2 | MIT License | https://tailwindcss.com*/*,:after,:before{border:0 solid;box-sizing:border-box}:after,:before{--tw-content:""}html{-webkit-text-size-adjust:100%;font-feature-settings:normal;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-variation-settings:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{color:inherit;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#9ca3af;opacity:1}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]{display:none}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(147,197,253,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(147,197,253,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.pointer-events-none{pointer-events:none}.invisible{visibility:hidden}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.left-1\\/2{left:50%}.top-1\\/2{top:50%}.ml-1{margin-left:var(--sd-spacing-1,.25rem)}.ml-2{margin-left:var(--sd-spacing-2,.5rem)}.ml-\\[0\\.25em\\]{margin-left:.25em}.ml-\\[0\\.5em\\]{margin-left:.5em}.mr-1{margin-right:var(--sd-spacing-1,.25rem)}.mr-2{margin-right:var(--sd-spacing-2,.5rem)}.mr-\\[0\\.25em\\]{margin-right:.25em}.mr-\\[0\\.5em\\]{margin-right:.5em}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.hidden{display:none}.h-varspacing{height:var(--tw-varspacing)}.w-full{width:100%}.w-varspacing{width:var(--tw-varspacing)}.flex-auto{flex:1 1 auto}.-translate-x-1\\/2{--tw-translate-x:-50%}.-translate-x-1\\/2,.-translate-y-1\\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\\/2{--tw-translate-y:-50%}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}.cursor-\\[inherit\\]{cursor:inherit}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.cursor-wait{cursor:wait}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize{resize:both}.items-start{align-items:flex-start}.items-center{align-items:center}.items-stretch{align-items:stretch}.justify-center{justify-content:center}.whitespace-nowrap{white-space:nowrap}.rounded-md{border-radius:var(--sd-border-radius-md,.375rem)}.border{border-width:1px}.border-primary{--tw-border-opacity:1;border-color:rgb(var(--sd-color-primary,0 53 142)/var(--tw-border-opacity))}.border-transparent{border-color:transparent}.border-white{--tw-border-opacity:1;border-color:rgb(var(--sd-color-white,255 255 255)/var(--tw-border-opacity))}.bg-accent{--tw-bg-opacity:1;background-color:rgb(var(--sd-color-accent,67 176 42)/var(--tw-bg-opacity))}.bg-primary{--tw-bg-opacity:1;background-color:rgb(var(--sd-color-primary,0 53 142)/var(--tw-bg-opacity))}.bg-white{--tw-bg-opacity:1;background-color:rgb(var(--sd-color-white,255 255 255)/var(--tw-bg-opacity))}.px-0{padding-left:var(--sd-spacing-0,0);padding-right:var(--sd-spacing-0,0)}.px-4{padding-left:var(--sd-spacing-4,1rem);padding-right:var(--sd-spacing-4,1rem)}.align-middle{vertical-align:middle}.text-base{font-size:var(--sd-font-size-base,1rem)}.text-sm{font-size:var(--sd-font-size-sm,.875rem)}.leading-\\[calc\\(var\\(--tw-varspacing\\)-2px\\)\\]{line-height:calc(var(--tw-varspacing) - 2px)}.text-neutral-500{--tw-text-opacity:1;color:rgb(var(--sd-color-neutral-500,174 174 174)/var(--tw-text-opacity))}.text-neutral-600{--tw-text-opacity:1;color:rgb(var(--sd-color-neutral-600,136 136 136)/var(--tw-text-opacity))}.text-primary{--tw-text-opacity:1;color:rgb(var(--sd-color-primary,0 53 142)/var(--tw-text-opacity))}.text-white{--tw-text-opacity:1;color:rgb(var(--sd-color-white,255 255 255)/var(--tw-text-opacity))}.underline{text-decoration-line:underline}.no-underline{text-decoration-line:none}.underline-offset-2{text-underline-offset:2px}.opacity-20{opacity:var(--sd-opacity-20,.2)}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.ring{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.blur{--tw-blur:blur(8px)}.blur,.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-200{transition-duration:.2s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.varspacing-10{--tw-varspacing:var(--sd-spacing-10,2.5rem)}.varspacing-12{--tw-varspacing:var(--sd-spacing-12,3rem)}.varspacing-8{--tw-varspacing:var(--sd-spacing-8,2rem)}.focus-visible\\:focus-outline:focus-visible{outline-color:rgb(var(--sd-color-primary,0 53 142)/1);outline-offset:2px;outline-style:solid;outline-width:2px}.focus-visible\\:focus-outline-inverted:focus-visible{outline-color:rgb(var(--sd-color-white,255 255 255)/1);outline-offset:2px;outline-style:solid;outline-width:2px}.disabled\\:border-neutral-500:disabled{--tw-border-opacity:1;border-color:rgb(var(--sd-color-neutral-500,174 174 174)/var(--tw-border-opacity))}.disabled\\:border-neutral-600:disabled{--tw-border-opacity:1;border-color:rgb(var(--sd-color-neutral-600,136 136 136)/var(--tw-border-opacity))}.disabled\\:bg-neutral-500:disabled{--tw-bg-opacity:1;background-color:rgb(var(--sd-color-neutral-500,174 174 174)/var(--tw-bg-opacity))}.disabled\\:bg-neutral-600:disabled{--tw-bg-opacity:1;background-color:rgb(var(--sd-color-neutral-600,136 136 136)/var(--tw-bg-opacity))}.disabled\\:text-neutral-500:disabled{--tw-text-opacity:1;color:rgb(var(--sd-color-neutral-500,174 174 174)/var(--tw-text-opacity))}.disabled\\:text-neutral-600:disabled{--tw-text-opacity:1;color:rgb(var(--sd-color-neutral-600,136 136 136)/var(--tw-text-opacity))}.disabled\\:text-white:disabled{--tw-text-opacity:1;color:rgb(var(--sd-color-white,255 255 255)/var(--tw-text-opacity))}.hover\\:border-primary-100:hover:not([disabled]){--tw-border-opacity:1;border-color:rgb(var(--sd-color-primary-100,236 240 249)/var(--tw-border-opacity))}.hover\\:border-primary-500:hover:not([disabled]){--tw-border-opacity:1;border-color:rgb(var(--sd-color-primary-500,70 109 175)/var(--tw-border-opacity))}.hover\\:bg-accent-300:hover:not([disabled]){--tw-bg-opacity:1;background-color:rgb(var(--sd-color-accent-300,108 194 84)/var(--tw-bg-opacity))}.hover\\:bg-primary-100:hover:not([disabled]){--tw-bg-opacity:1;background-color:rgb(var(--sd-color-primary-100,236 240 249)/var(--tw-bg-opacity))}.hover\\:bg-primary-500:hover:not([disabled]){--tw-bg-opacity:1;background-color:rgb(var(--sd-color-primary-500,70 109 175)/var(--tw-bg-opacity))}.hover\\:text-primary-100:hover:not([disabled]){--tw-text-opacity:1;color:rgb(var(--sd-color-primary-100,236 240 249)/var(--tw-text-opacity))}.hover\\:text-primary-200:hover:not([disabled]){--tw-text-opacity:1;color:rgb(var(--sd-color-primary-200,224 233 243)/var(--tw-text-opacity))}.hover\\:text-primary-500:hover:not([disabled]){--tw-text-opacity:1;color:rgb(var(--sd-color-primary-500,70 109 175)/var(--tw-text-opacity))}.active\\:border-primary-200:active:not([disabled]){--tw-border-opacity:1;border-color:rgb(var(--sd-color-primary-200,224 233 243)/var(--tw-border-opacity))}.active\\:border-primary-800:active:not([disabled]){--tw-border-opacity:1;border-color:rgb(var(--sd-color-primary-800,5 21 48)/var(--tw-border-opacity))}.active\\:bg-accent-500:active:not([disabled]){--tw-bg-opacity:1;background-color:rgb(var(--sd-color-accent-500,66 147 50)/var(--tw-bg-opacity))}.active\\:bg-primary-200:active:not([disabled]){--tw-bg-opacity:1;background-color:rgb(var(--sd-color-primary-200,224 233 243)/var(--tw-bg-opacity))}.active\\:bg-primary-800:active:not([disabled]){--tw-bg-opacity:1;background-color:rgb(var(--sd-color-primary-800,5 21 48)/var(--tw-bg-opacity))}.active\\:text-primary-200:active:not([disabled]){--tw-text-opacity:1;color:rgb(var(--sd-color-primary-200,224 233 243)/var(--tw-text-opacity))}.active\\:text-primary-400:active:not([disabled]){--tw-text-opacity:1;color:rgb(var(--sd-color-primary-400,153 171 208)/var(--tw-text-opacity))}.active\\:text-primary-800:active:not([disabled]){--tw-text-opacity:1;color:rgb(var(--sd-color-primary-800,5 21 48)/var(--tw-text-opacity))}\n'),p([a()],w.prototype,"dir",2),p([a()],w.prototype,"lang",2);export{w as S,e,c as l,a as n,i as o};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{x as e,i as t}from"./lit-element.js";import{S as r,n as o,e as n}from"./solid-element.js";import{t as s}from"./classix.js";const l=new Set,a=new MutationObserver(m),i=new Map;let c,d=document.documentElement.dir||"ltr",u=document.documentElement.lang||navigator.language;function m(){d=document.documentElement.dir||"ltr",u=document.documentElement.lang||navigator.language,[...l.keys()].map((e=>{"function"==typeof e.requestUpdate&&e.requestUpdate()}))}a.observe(document.documentElement,{attributes:!0,attributeFilter:["dir","lang"]});let g=class{constructor(e){this.host=e,this.host.addController(this)}hostConnected(){l.add(this.host)}hostDisconnected(){l.delete(this.host)}dir(){return`${this.host.dir||d}`.toLowerCase()}lang(){return`${this.host.lang||u}`.toLowerCase()}getTranslationData(e){var t,r;const o=new Intl.Locale(e),n=null==o?void 0:o.language.toLowerCase(),s=null!==(r=null===(t=null==o?void 0:o.region)||void 0===t?void 0:t.toLowerCase())&&void 0!==r?r:"";return{locale:o,language:n,region:s,primary:i.get(`${n}-${s}`),secondary:i.get(n)}}exists(e,t){var r;const{primary:o,secondary:n}=this.getTranslationData(null!==(r=t.lang)&&void 0!==r?r:this.lang());return t=Object.assign({includeFallback:!1},t),!!(o&&o[e]||n&&n[e]||t.includeFallback&&c&&c[e])}term(e,...t){const{primary:r,secondary:o}=this.getTranslationData(this.lang());let n;if(r&&r[e])n=r[e];else if(o&&o[e])n=o[e];else{if(!c||!c[e])return console.error(`No translation found for: ${String(e)}`),String(e);n=c[e]}return"function"==typeof n?n(...t):n}date(e,t){return e=new Date(e),new Intl.DateTimeFormat(this.lang(),t).format(e)}number(e,t){return e=Number(e),isNaN(e)?"":new Intl.NumberFormat(this.lang(),t).format(e)}relativeTime(e,t,r){return new Intl.RelativeTimeFormat(this.lang(),r).format(e,t)}};!function(...e){e.map((e=>{const t=e.$code.toLowerCase();i.has(t)?i.set(t,Object.assign(Object.assign({},i.get(t)),e)):i.set(t,e),c||(c=e)})),m()}({$code:"en",$name:"English",$dir:"ltr",clearEntry:"Clear entry",close:"Close",copy:"Copy",numOptionsSelected:e=>0===e?"No options selected":1===e?"1 option selected":`${e} options selected`,currentValue:"Current value",hidePassword:"Hide password",loading:"Loading",progress:"Progress",remove:"Remove",resize:"Resize",scrollToEnd:"Scroll to end",scrollToStart:"Scroll to start",selectAColorFromTheScreen:"Select a color from the screen",showPassword:"Show password",toggleColorFormat:"Toggle color format"});class h extends g{}var p=Object.defineProperty,C=Object.getOwnPropertyDescriptor,f=(e,t,r,o)=>{for(var n,s=o>1?void 0:o?C(t,r):t,l=e.length-1;l>=0;l--)(n=e[l])&&(s=(o?n(t,r,s):n(s))||s);return o&&s&&p(t,r,s),s};let v=class extends r{constructor(){super(...arguments),this.color="currentColor",this.localize=new h(this)}render(){return e`<svg role="progressbar" viewBox="0 0 24 24" class="${s("animate-spin",{primary:"text-primary",white:"text-white",currentColor:""}[this.color])}" aria-valuetext="${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>`}};v.styles=[r.styles,t`:host{display:inline-block;width:1em;height:1em}`],f([o({reflect:!0})],v.prototype,"color",2),v=f([n("sd-1-0-0-spinner")],v);export{v as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function t(t,a){const i={waitUntilFirstUpdate:!1,...a};return(a,s)=>{const{update:n}=a,r=Array.isArray(t)?t:[t];a.update=function(t){r.forEach((a=>{const n=a;if(t.has(n)){const a=t.get(n),r=this[n];a!==r&&(!i.waitUntilFirstUpdate||this.hasUpdated)&&this[s](a,r)}})),n.call(this,t)}}}export{t as w};
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import '../spinner/spinner';
|
|
2
|
+
import SolidElement from '../../internal/solid-element';
|
|
3
|
+
import type { SolidFormControl } from '../../internal/solid-element';
|
|
4
|
+
export default class SdButton extends SolidElement implements SolidFormControl {
|
|
5
|
+
private readonly formControlController;
|
|
6
|
+
private readonly hasSlotController;
|
|
7
|
+
button: HTMLButtonElement | HTMLLinkElement;
|
|
8
|
+
_iconsInDefaultSlot: HTMLElement[];
|
|
9
|
+
invalid: boolean;
|
|
10
|
+
title: string;
|
|
11
|
+
variant: 'primary' | 'secondary' | 'tertiary' | 'cta';
|
|
12
|
+
inverted: boolean;
|
|
13
|
+
size: 'lg' | 'md' | 'sm';
|
|
14
|
+
disabled: boolean;
|
|
15
|
+
loading: boolean;
|
|
16
|
+
type: 'button' | 'submit' | 'reset';
|
|
17
|
+
name: string;
|
|
18
|
+
value: string;
|
|
19
|
+
href: string;
|
|
20
|
+
target: '_blank' | '_parent' | '_self' | '_top';
|
|
21
|
+
download?: string;
|
|
22
|
+
form: string;
|
|
23
|
+
formAction: string;
|
|
24
|
+
formEnctype: 'application/x-www-form-urlencoded' | 'multipart/form-data' | 'text/plain';
|
|
25
|
+
formMethod: 'post' | 'get';
|
|
26
|
+
formNoValidate: boolean;
|
|
27
|
+
formTarget: '_self' | '_blank' | '_parent' | '_top' | string;
|
|
28
|
+
firstUpdated(): void;
|
|
29
|
+
private handleBlur;
|
|
30
|
+
private handleFocus;
|
|
31
|
+
private handleClick;
|
|
32
|
+
private isButton;
|
|
33
|
+
private isLink;
|
|
34
|
+
handleDisabledChange(): void;
|
|
35
|
+
click(): void;
|
|
36
|
+
focus(options?: FocusOptions): void;
|
|
37
|
+
blur(): void;
|
|
38
|
+
checkValidity(): boolean;
|
|
39
|
+
reportValidity(): boolean;
|
|
40
|
+
setCustomValidity(message: string): void;
|
|
41
|
+
render(): import("lit").TemplateResult;
|
|
42
|
+
static styles: import("lit").CSSResultGroup[];
|
|
43
|
+
}
|
|
44
|
+
declare global {
|
|
45
|
+
interface HTMLElementTagNameMap {
|
|
46
|
+
'sd-1-0-0-button': SdButton;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
@@ -0,0 +1,391 @@
|
|
|
1
|
+
import "../spinner/spinner.js";
|
|
2
|
+
import { css } from "lit";
|
|
3
|
+
import { query, queryAssignedElements, state, property, customElement } from "lit/decorators.js";
|
|
4
|
+
import { FormControlController } from "../../internal/form.js";
|
|
5
|
+
import { HasSlotController } from "../../internal/slot.js";
|
|
6
|
+
import { literal, html } from "lit/static-html.js";
|
|
7
|
+
import { ifDefined } from "lit/directives/if-defined.js";
|
|
8
|
+
import { watch } from "../../internal/watch.js";
|
|
9
|
+
import componentStyles from "../../styles/component.styles.js";
|
|
10
|
+
import cx from "classix";
|
|
11
|
+
import SolidElement from "../../internal/solid-element.js";
|
|
12
|
+
var __defProp = Object.defineProperty;
|
|
13
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
14
|
+
var __decorateClass = (decorators, target, key, kind) => {
|
|
15
|
+
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
|
|
16
|
+
for (var i = decorators.length - 1, decorator; i >= 0; i--)
|
|
17
|
+
if (decorator = decorators[i])
|
|
18
|
+
result = (kind ? decorator(target, key, result) : decorator(result)) || result;
|
|
19
|
+
if (kind && result)
|
|
20
|
+
__defProp(target, key, result);
|
|
21
|
+
return result;
|
|
22
|
+
};
|
|
23
|
+
let SdButton = class extends SolidElement {
|
|
24
|
+
constructor() {
|
|
25
|
+
super(...arguments);
|
|
26
|
+
this.formControlController = new FormControlController(this, {
|
|
27
|
+
form: (input) => {
|
|
28
|
+
if (input.hasAttribute("form")) {
|
|
29
|
+
const doc = input.getRootNode();
|
|
30
|
+
const formId = input.getAttribute("form");
|
|
31
|
+
return doc.getElementById(formId);
|
|
32
|
+
}
|
|
33
|
+
return input.closest("form");
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
this.hasSlotController = new HasSlotController(this, "[default]", "icon-left", "icon-right");
|
|
37
|
+
this.invalid = false;
|
|
38
|
+
this.title = "";
|
|
39
|
+
this.variant = "primary";
|
|
40
|
+
this.inverted = false;
|
|
41
|
+
this.size = "lg";
|
|
42
|
+
this.disabled = false;
|
|
43
|
+
this.loading = false;
|
|
44
|
+
this.type = "button";
|
|
45
|
+
this.name = "";
|
|
46
|
+
this.value = "";
|
|
47
|
+
this.href = "";
|
|
48
|
+
}
|
|
49
|
+
firstUpdated() {
|
|
50
|
+
if (this.isButton()) {
|
|
51
|
+
this.formControlController.updateValidity();
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
handleBlur() {
|
|
55
|
+
this.emit("sd-blur");
|
|
56
|
+
}
|
|
57
|
+
handleFocus() {
|
|
58
|
+
this.emit("sd-focus");
|
|
59
|
+
}
|
|
60
|
+
handleClick(event) {
|
|
61
|
+
if (this.disabled || this.loading) {
|
|
62
|
+
event.preventDefault();
|
|
63
|
+
event.stopPropagation();
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
if (this.type === "submit") {
|
|
67
|
+
this.formControlController.submit(this);
|
|
68
|
+
}
|
|
69
|
+
if (this.type === "reset") {
|
|
70
|
+
this.formControlController.reset(this);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
isButton() {
|
|
74
|
+
return this.href ? false : true;
|
|
75
|
+
}
|
|
76
|
+
isLink() {
|
|
77
|
+
return this.href ? true : false;
|
|
78
|
+
}
|
|
79
|
+
handleDisabledChange() {
|
|
80
|
+
if (this.isButton()) {
|
|
81
|
+
this.formControlController.setValidity(this.disabled);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
/** Simulates a click on the button. */
|
|
85
|
+
click() {
|
|
86
|
+
this.button.click();
|
|
87
|
+
}
|
|
88
|
+
/** Sets focus on the button. */
|
|
89
|
+
focus(options) {
|
|
90
|
+
this.button.focus(options);
|
|
91
|
+
}
|
|
92
|
+
/** Removes focus from the button. */
|
|
93
|
+
blur() {
|
|
94
|
+
this.button.blur();
|
|
95
|
+
}
|
|
96
|
+
/** Checks for validity but does not show the browser's validation message. */
|
|
97
|
+
checkValidity() {
|
|
98
|
+
if (this.isButton()) {
|
|
99
|
+
return this.button.checkValidity();
|
|
100
|
+
}
|
|
101
|
+
return true;
|
|
102
|
+
}
|
|
103
|
+
/** Checks for validity and shows the browser's validation message if the control is invalid. */
|
|
104
|
+
reportValidity() {
|
|
105
|
+
if (this.isButton()) {
|
|
106
|
+
return this.button.reportValidity();
|
|
107
|
+
}
|
|
108
|
+
return true;
|
|
109
|
+
}
|
|
110
|
+
/** Sets a custom validation message. Pass an empty string to restore validity. */
|
|
111
|
+
setCustomValidity(message) {
|
|
112
|
+
if (this.isButton()) {
|
|
113
|
+
this.button.setCustomValidity(message);
|
|
114
|
+
this.formControlController.updateValidity();
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
render() {
|
|
118
|
+
const isLink = this.isLink();
|
|
119
|
+
const tag = isLink ? literal`a` : literal`button`;
|
|
120
|
+
const slots = {
|
|
121
|
+
label: this.hasSlotController.test("[default]"),
|
|
122
|
+
"icon-left": this.hasSlotController.test("icon-left"),
|
|
123
|
+
"icon-right": this.hasSlotController.test("icon-right"),
|
|
124
|
+
"icon-only": this._iconsInDefaultSlot.length > 0
|
|
125
|
+
};
|
|
126
|
+
return html`
|
|
127
|
+
<${tag}
|
|
128
|
+
part="base"
|
|
129
|
+
class=${cx(
|
|
130
|
+
`font-md leading-[calc(var(--tw-varspacing)-2px)] no-underline
|
|
131
|
+
w-full h-varspacing whitespace-nowrap align-middle inline-flex items-stretch justify-center
|
|
132
|
+
border transition-colors duration-200 ease-in-out rounded-md
|
|
133
|
+
select-none cursor-[inherit]`,
|
|
134
|
+
!this.inverted ? "focus-visible:focus-outline" : "focus-visible:focus-outline-inverted",
|
|
135
|
+
this.loading && "relative cursor-wait",
|
|
136
|
+
this.disabled && "cursor-not-allowed",
|
|
137
|
+
slots["icon-only"] && "px-0 w-varspacing",
|
|
138
|
+
/**
|
|
139
|
+
* Anatomy
|
|
140
|
+
* */
|
|
141
|
+
{
|
|
142
|
+
/* sizes, fonts */
|
|
143
|
+
sm: "text-sm varspacing-8 px-4",
|
|
144
|
+
md: "text-base varspacing-10 px-4",
|
|
145
|
+
lg: "text-base varspacing-12 px-4"
|
|
146
|
+
}[this.size],
|
|
147
|
+
{
|
|
148
|
+
/* variants */
|
|
149
|
+
primary: !this.inverted ? `text-white bg-primary border-transparent
|
|
150
|
+
hover:text-primary-100 hover:bg-primary-500
|
|
151
|
+
active:text-primary-200 active:bg-primary-800
|
|
152
|
+
disabled:bg-neutral-500` : `text-primary bg-white border-transparent
|
|
153
|
+
hover:text-primary-500 hover:bg-primary-100
|
|
154
|
+
active:text-primary-800 active:bg-primary-200
|
|
155
|
+
disabled:bg-neutral-600 disabled:text-white`,
|
|
156
|
+
secondary: !this.inverted ? `text-primary border-primary
|
|
157
|
+
hover:text-primary-500 hover:border-primary-500 hover:bg-primary-100
|
|
158
|
+
active:text-primary-800 active:border-primary-800 active:bg-primary-200
|
|
159
|
+
disabled:text-neutral-500 disabled:border-neutral-500` : `text-white border-white
|
|
160
|
+
hover:text-primary-100 hover:bg-primary-500 hover:border-primary-100
|
|
161
|
+
active:text-primary-200 active:bg-primary-800 active:border-primary-200
|
|
162
|
+
disabled:text-neutral-600 disabled:border-neutral-600`,
|
|
163
|
+
tertiary: !this.inverted ? `text-primary border-transparent
|
|
164
|
+
hover:text-primary-500 hover:bg-primary-100
|
|
165
|
+
active:text-primary-800 active:bg-primary-200
|
|
166
|
+
disabled:text-neutral-500` : `text-white border-transparent
|
|
167
|
+
hover:text-primary-100 hover:bg-primary-500
|
|
168
|
+
active:text-primary-200 active:bg-primary-800
|
|
169
|
+
disabled:text-neutral-600`,
|
|
170
|
+
cta: `text-white bg-accent border-transparent
|
|
171
|
+
hover:bg-accent-300
|
|
172
|
+
active:bg-accent-500
|
|
173
|
+
${!this.inverted ? "disabled:bg-neutral-500" : "disabled:bg-neutral-600"} disabled:text-white`
|
|
174
|
+
}[this.variant]
|
|
175
|
+
)}
|
|
176
|
+
?disabled=${ifDefined(isLink ? void 0 : this.disabled)}
|
|
177
|
+
type=${ifDefined(isLink ? void 0 : this.type)}
|
|
178
|
+
title=${this.title}
|
|
179
|
+
name=${ifDefined(isLink ? void 0 : this.name)}
|
|
180
|
+
value=${ifDefined(isLink ? void 0 : this.value)}
|
|
181
|
+
href=${ifDefined(isLink ? this.href : void 0)}
|
|
182
|
+
target=${ifDefined(isLink ? this.target : void 0)}
|
|
183
|
+
download=${ifDefined(isLink ? this.download : void 0)}
|
|
184
|
+
rel=${ifDefined(isLink && this.target ? "noreferrer noopener" : void 0)}
|
|
185
|
+
role=${ifDefined(isLink ? void 0 : "button")}
|
|
186
|
+
aria-disabled=${this.disabled ? "true" : "false"}
|
|
187
|
+
tabindex=${this.disabled ? "-1" : "0"}
|
|
188
|
+
@blur=${this.handleBlur}
|
|
189
|
+
@focus=${this.handleFocus}
|
|
190
|
+
@click=${this.handleClick}
|
|
191
|
+
>
|
|
192
|
+
<slot name="icon-left" part="icon-left" class=${cx(
|
|
193
|
+
"flex flex-auto items-center pointer-events-none",
|
|
194
|
+
slots["icon-only"] && "hidden",
|
|
195
|
+
this.loading && "invisible",
|
|
196
|
+
slots["icon-left"] && {
|
|
197
|
+
sm: "mr-1",
|
|
198
|
+
md: "mr-2",
|
|
199
|
+
lg: "mr-2"
|
|
200
|
+
}[this.size]
|
|
201
|
+
)}></slot>
|
|
202
|
+
<slot part="label" class=${cx(
|
|
203
|
+
slots["icon-only"] ? "flex flex-auto items-center pointer-events-none" : "inline-block",
|
|
204
|
+
this.loading && "invisible"
|
|
205
|
+
)}></slot>
|
|
206
|
+
<slot name="icon-right"
|
|
207
|
+
part="icon-right"
|
|
208
|
+
class=${cx(
|
|
209
|
+
"flex flex-auto items-center pointer-events-none",
|
|
210
|
+
this.loading && "invisible",
|
|
211
|
+
slots["icon-only"] && "hidden",
|
|
212
|
+
slots["icon-right"] && {
|
|
213
|
+
sm: "ml-1",
|
|
214
|
+
md: "ml-2",
|
|
215
|
+
lg: "ml-2"
|
|
216
|
+
}[this.size]
|
|
217
|
+
)}>
|
|
218
|
+
</slot>
|
|
219
|
+
${this.loading ? html`<sd-1-0-0-spinner
|
|
220
|
+
class="${cx("absolute top-1/2 left-1/2 transform -translate-x-1/2 -translate-y-1/2")}"
|
|
221
|
+
></sd-1-0-0-spinner>` : ""}
|
|
222
|
+
</${tag}>
|
|
223
|
+
`;
|
|
224
|
+
}
|
|
225
|
+
};
|
|
226
|
+
SdButton.styles = [
|
|
227
|
+
componentStyles,
|
|
228
|
+
SolidElement.styles,
|
|
229
|
+
css`
|
|
230
|
+
:host {
|
|
231
|
+
display: inline-block;
|
|
232
|
+
position: relative;
|
|
233
|
+
width: auto;
|
|
234
|
+
cursor: pointer;
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
sd-1-0-0-spinner {
|
|
238
|
+
--indicator-color: currentColor;
|
|
239
|
+
--track-color: var(--tw-varcolor-200);
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
/*
|
|
243
|
+
* Badges:
|
|
244
|
+
* Slotted badges are positioned absolutely in the top right corner of the button.
|
|
245
|
+
*/
|
|
246
|
+
|
|
247
|
+
::slotted(sd-badge) {
|
|
248
|
+
position: absolute;
|
|
249
|
+
top: 0;
|
|
250
|
+
right: 0;
|
|
251
|
+
translate: 50% -50%;
|
|
252
|
+
pointer-events: none;
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
/**
|
|
256
|
+
* sd-1-0-0-icons should automatically resize correctly based on the button size.
|
|
257
|
+
*/
|
|
258
|
+
|
|
259
|
+
::slotted(sd-1-0-0-icon),
|
|
260
|
+
sd-1-0-0-spinner {
|
|
261
|
+
font-size: calc(var(--tw-varspacing) / 2);
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
///*
|
|
265
|
+
// * Button groups support a variety of button types (e.g. buttons with tooltips, buttons as dropdown triggers, etc.).
|
|
266
|
+
// * This means buttons aren't always direct descendants of the button group, thus we can't target them with the
|
|
267
|
+
// * ::slotted selector. To work around this, the button group component does some magic to add these special classes to
|
|
268
|
+
// * buttons and we style them here instead.
|
|
269
|
+
// */
|
|
270
|
+
|
|
271
|
+
// :host(.sd-1-0-0-button-group__button--first:not(.sd-1-0-0-button-group__button--last)) .button {
|
|
272
|
+
// border-start-end-radius: 0;
|
|
273
|
+
// border-end-end-radius: 0;
|
|
274
|
+
// }
|
|
275
|
+
|
|
276
|
+
// :host(.sd-1-0-0-button-group__button--inner) .button {
|
|
277
|
+
// border-radius: 0;
|
|
278
|
+
// }
|
|
279
|
+
|
|
280
|
+
// :host(.sd-1-0-0-button-group__button--last:not(.sd-1-0-0-button-group__button--first)) .button {
|
|
281
|
+
// border-start-start-radius: 0;
|
|
282
|
+
// border-end-start-radius: 0;
|
|
283
|
+
// }
|
|
284
|
+
|
|
285
|
+
// /* All except the first */
|
|
286
|
+
// :host(.sd-1-0-0-button-group__button:not(.sd-1-0-0-button-group__button--first)) {
|
|
287
|
+
// margin-inline-start: calc(-1 * var(--sd-input-border-width));
|
|
288
|
+
// }
|
|
289
|
+
|
|
290
|
+
// /* Add a visual separator between solid buttons */
|
|
291
|
+
// :host(
|
|
292
|
+
// .sd-1-0-0-button-group__button:not(
|
|
293
|
+
// .sd-1-0-0-button-group__button--first,
|
|
294
|
+
// .sd-1-0-0-button-group__button--radio,
|
|
295
|
+
// [variant='default']
|
|
296
|
+
// ):not(:hover)
|
|
297
|
+
// )
|
|
298
|
+
// .button:after {
|
|
299
|
+
// content: '';
|
|
300
|
+
// position: absolute;
|
|
301
|
+
// top: 0;
|
|
302
|
+
// inset-inline-start: 0;
|
|
303
|
+
// bottom: 0;
|
|
304
|
+
// border-left: solid 1px rgb(128 128 128 / 33%);
|
|
305
|
+
// mix-blend-mode: multiply;
|
|
306
|
+
// }
|
|
307
|
+
|
|
308
|
+
// /* Bump hovered, focused, and checked buttons up so their focus ring isn't clipped */
|
|
309
|
+
// :host(.sd-1-0-0-button-group__button--hover) {
|
|
310
|
+
// z-index: 1;
|
|
311
|
+
// }
|
|
312
|
+
|
|
313
|
+
// /* Focus and checked are always on top */
|
|
314
|
+
// :host(.sd-1-0-0-button-group__button--focus),
|
|
315
|
+
// :host(.sd-1-0-0-button-group__button[checked]) {
|
|
316
|
+
// z-index: 2;
|
|
317
|
+
// }
|
|
318
|
+
`
|
|
319
|
+
];
|
|
320
|
+
__decorateClass([
|
|
321
|
+
query("a, button")
|
|
322
|
+
], SdButton.prototype, "button", 2);
|
|
323
|
+
__decorateClass([
|
|
324
|
+
queryAssignedElements({ selector: "sd-1-0-0-icon" })
|
|
325
|
+
], SdButton.prototype, "_iconsInDefaultSlot", 2);
|
|
326
|
+
__decorateClass([
|
|
327
|
+
state()
|
|
328
|
+
], SdButton.prototype, "invalid", 2);
|
|
329
|
+
__decorateClass([
|
|
330
|
+
property()
|
|
331
|
+
], SdButton.prototype, "title", 2);
|
|
332
|
+
__decorateClass([
|
|
333
|
+
property({ reflect: true })
|
|
334
|
+
], SdButton.prototype, "variant", 2);
|
|
335
|
+
__decorateClass([
|
|
336
|
+
property({ type: Boolean, reflect: true })
|
|
337
|
+
], SdButton.prototype, "inverted", 2);
|
|
338
|
+
__decorateClass([
|
|
339
|
+
property({ reflect: true })
|
|
340
|
+
], SdButton.prototype, "size", 2);
|
|
341
|
+
__decorateClass([
|
|
342
|
+
property({ type: Boolean, reflect: true })
|
|
343
|
+
], SdButton.prototype, "disabled", 2);
|
|
344
|
+
__decorateClass([
|
|
345
|
+
property({ type: Boolean, reflect: true })
|
|
346
|
+
], SdButton.prototype, "loading", 2);
|
|
347
|
+
__decorateClass([
|
|
348
|
+
property()
|
|
349
|
+
], SdButton.prototype, "type", 2);
|
|
350
|
+
__decorateClass([
|
|
351
|
+
property()
|
|
352
|
+
], SdButton.prototype, "name", 2);
|
|
353
|
+
__decorateClass([
|
|
354
|
+
property()
|
|
355
|
+
], SdButton.prototype, "value", 2);
|
|
356
|
+
__decorateClass([
|
|
357
|
+
property()
|
|
358
|
+
], SdButton.prototype, "href", 2);
|
|
359
|
+
__decorateClass([
|
|
360
|
+
property()
|
|
361
|
+
], SdButton.prototype, "target", 2);
|
|
362
|
+
__decorateClass([
|
|
363
|
+
property()
|
|
364
|
+
], SdButton.prototype, "download", 2);
|
|
365
|
+
__decorateClass([
|
|
366
|
+
property()
|
|
367
|
+
], SdButton.prototype, "form", 2);
|
|
368
|
+
__decorateClass([
|
|
369
|
+
property({ attribute: "formaction" })
|
|
370
|
+
], SdButton.prototype, "formAction", 2);
|
|
371
|
+
__decorateClass([
|
|
372
|
+
property({ attribute: "formenctype" })
|
|
373
|
+
], SdButton.prototype, "formEnctype", 2);
|
|
374
|
+
__decorateClass([
|
|
375
|
+
property({ attribute: "formmethod" })
|
|
376
|
+
], SdButton.prototype, "formMethod", 2);
|
|
377
|
+
__decorateClass([
|
|
378
|
+
property({ attribute: "formnovalidate", type: Boolean })
|
|
379
|
+
], SdButton.prototype, "formNoValidate", 2);
|
|
380
|
+
__decorateClass([
|
|
381
|
+
property({ attribute: "formtarget" })
|
|
382
|
+
], SdButton.prototype, "formTarget", 2);
|
|
383
|
+
__decorateClass([
|
|
384
|
+
watch("disabled", { waitUntilFirstUpdate: true })
|
|
385
|
+
], SdButton.prototype, "handleDisabledChange", 1);
|
|
386
|
+
SdButton = __decorateClass([
|
|
387
|
+
customElement("sd-1-0-0-button")
|
|
388
|
+
], SdButton);
|
|
389
|
+
export {
|
|
390
|
+
SdButton as default
|
|
391
|
+
};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import SolidElement from '../../internal/solid-element';
|
|
2
|
+
export default class SdIcon extends SolidElement {
|
|
3
|
+
private svg;
|
|
4
|
+
name?: string;
|
|
5
|
+
src?: string;
|
|
6
|
+
label: string;
|
|
7
|
+
library: string;
|
|
8
|
+
color: 'currentColor' | 'primary' | 'white';
|
|
9
|
+
connectedCallback(): void;
|
|
10
|
+
firstUpdated(): void;
|
|
11
|
+
disconnectedCallback(): void;
|
|
12
|
+
private getUrl;
|
|
13
|
+
handleLabelChange(): void;
|
|
14
|
+
setIcon(): Promise<void>;
|
|
15
|
+
render(): import("lit").TemplateResult<1>;
|
|
16
|
+
static styles: import("lit").CSSResult[];
|
|
17
|
+
}
|
|
18
|
+
declare global {
|
|
19
|
+
interface HTMLElementTagNameMap {
|
|
20
|
+
'sd-1-0-0-icon': SdIcon;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import { css, html } from "lit";
|
|
2
|
+
import { state, property, customElement } from "lit/decorators.js";
|
|
3
|
+
import { unwatchIcon, getIconLibrary, watchIcon } from "./library.js";
|
|
4
|
+
import { requestIcon } from "./request.js";
|
|
5
|
+
import { unsafeSVG } from "lit/directives/unsafe-svg.js";
|
|
6
|
+
import { watch } from "../../internal/watch.js";
|
|
7
|
+
import componentStyles from "../../styles/component.styles.js";
|
|
8
|
+
import SolidElement from "../../internal/solid-element.js";
|
|
9
|
+
var __defProp = Object.defineProperty;
|
|
10
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
11
|
+
var __decorateClass = (decorators, target, key, kind) => {
|
|
12
|
+
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
|
|
13
|
+
for (var i = decorators.length - 1, decorator; i >= 0; i--)
|
|
14
|
+
if (decorator = decorators[i])
|
|
15
|
+
result = (kind ? decorator(target, key, result) : decorator(result)) || result;
|
|
16
|
+
if (kind && result)
|
|
17
|
+
__defProp(target, key, result);
|
|
18
|
+
return result;
|
|
19
|
+
};
|
|
20
|
+
let parser;
|
|
21
|
+
let SdIcon = class extends SolidElement {
|
|
22
|
+
constructor() {
|
|
23
|
+
super(...arguments);
|
|
24
|
+
this.svg = "";
|
|
25
|
+
this.label = "";
|
|
26
|
+
this.library = "default";
|
|
27
|
+
this.color = "currentColor";
|
|
28
|
+
}
|
|
29
|
+
connectedCallback() {
|
|
30
|
+
super.connectedCallback();
|
|
31
|
+
watchIcon(this);
|
|
32
|
+
}
|
|
33
|
+
firstUpdated() {
|
|
34
|
+
this.setIcon();
|
|
35
|
+
}
|
|
36
|
+
disconnectedCallback() {
|
|
37
|
+
super.disconnectedCallback();
|
|
38
|
+
unwatchIcon(this);
|
|
39
|
+
}
|
|
40
|
+
getUrl() {
|
|
41
|
+
const library = getIconLibrary(this.library);
|
|
42
|
+
if (this.name && library) {
|
|
43
|
+
return library.resolver(this.name);
|
|
44
|
+
}
|
|
45
|
+
return this.src;
|
|
46
|
+
}
|
|
47
|
+
handleLabelChange() {
|
|
48
|
+
const hasLabel = typeof this.label === "string" && this.label.length > 0;
|
|
49
|
+
if (hasLabel) {
|
|
50
|
+
this.setAttribute("role", "img");
|
|
51
|
+
this.setAttribute("aria-label", this.label);
|
|
52
|
+
this.removeAttribute("aria-hidden");
|
|
53
|
+
} else {
|
|
54
|
+
this.removeAttribute("role");
|
|
55
|
+
this.removeAttribute("aria-label");
|
|
56
|
+
this.setAttribute("aria-hidden", "true");
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
async setIcon() {
|
|
60
|
+
var _a;
|
|
61
|
+
const library = getIconLibrary(this.library);
|
|
62
|
+
const url = this.getUrl();
|
|
63
|
+
if (!parser) {
|
|
64
|
+
parser = new DOMParser();
|
|
65
|
+
}
|
|
66
|
+
if (url) {
|
|
67
|
+
try {
|
|
68
|
+
const file = await requestIcon(url);
|
|
69
|
+
if (url !== this.getUrl()) {
|
|
70
|
+
} else if (file.ok) {
|
|
71
|
+
const doc = parser.parseFromString(file.svg, "text/html");
|
|
72
|
+
const svgEl = doc.body.querySelector("svg");
|
|
73
|
+
if (svgEl !== null) {
|
|
74
|
+
(_a = library == null ? void 0 : library.mutator) == null ? void 0 : _a.call(library, svgEl);
|
|
75
|
+
this.svg = svgEl.outerHTML;
|
|
76
|
+
this.emit("sd-load");
|
|
77
|
+
} else {
|
|
78
|
+
this.svg = "";
|
|
79
|
+
this.emit("sd-error");
|
|
80
|
+
}
|
|
81
|
+
} else {
|
|
82
|
+
this.svg = "";
|
|
83
|
+
this.emit("sd-error");
|
|
84
|
+
}
|
|
85
|
+
} catch {
|
|
86
|
+
this.emit("sd-error");
|
|
87
|
+
}
|
|
88
|
+
} else if (this.svg.length > 0) {
|
|
89
|
+
this.svg = "";
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
render() {
|
|
93
|
+
return html`${unsafeSVG(this.svg)}`;
|
|
94
|
+
}
|
|
95
|
+
};
|
|
96
|
+
SdIcon.styles = [
|
|
97
|
+
componentStyles,
|
|
98
|
+
css`:host{display:inline-block;width:1em;height:1em;box-sizing:content-box!important}svg{display:block;height:100%;width:100%}:host([color=primary]) svg{color:rgb(var(--sd-color-primary,0 53 142) / var(--tw-text-opacity,1))}// text-primary :host([color=white]) svg{color:rgb(var(--sd-color-white,255 255 255) / var(--tw-text-opacity,1))}`
|
|
99
|
+
];
|
|
100
|
+
__decorateClass([
|
|
101
|
+
state()
|
|
102
|
+
], SdIcon.prototype, "svg", 2);
|
|
103
|
+
__decorateClass([
|
|
104
|
+
property({ reflect: true })
|
|
105
|
+
], SdIcon.prototype, "name", 2);
|
|
106
|
+
__decorateClass([
|
|
107
|
+
property()
|
|
108
|
+
], SdIcon.prototype, "src", 2);
|
|
109
|
+
__decorateClass([
|
|
110
|
+
property()
|
|
111
|
+
], SdIcon.prototype, "label", 2);
|
|
112
|
+
__decorateClass([
|
|
113
|
+
property({ reflect: true })
|
|
114
|
+
], SdIcon.prototype, "library", 2);
|
|
115
|
+
__decorateClass([
|
|
116
|
+
property({ reflect: true })
|
|
117
|
+
], SdIcon.prototype, "color", 2);
|
|
118
|
+
__decorateClass([
|
|
119
|
+
watch("label")
|
|
120
|
+
], SdIcon.prototype, "handleLabelChange", 1);
|
|
121
|
+
__decorateClass([
|
|
122
|
+
watch(["name", "src", "library"])
|
|
123
|
+
], SdIcon.prototype, "setIcon", 1);
|
|
124
|
+
SdIcon = __decorateClass([
|
|
125
|
+
customElement("sd-1-0-0-icon")
|
|
126
|
+
], SdIcon);
|
|
127
|
+
export {
|
|
128
|
+
SdIcon as default
|
|
129
|
+
};
|