wj-elements 0.0.11 → 0.0.13

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 (79) hide show
  1. package/dist/localize-20081fd1.js +55 -0
  2. package/dist/router-links-26e4a166.js +204 -0
  3. package/dist/style.css +2243 -2
  4. package/dist/wj-animation.js +35 -23
  5. package/dist/wj-aside.js +22 -16
  6. package/dist/wj-avatar.js +49 -30
  7. package/dist/wj-badge.js +22 -18
  8. package/dist/wj-breadcrumb.js +102 -50
  9. package/dist/wj-breadcrumbs.js +36 -19
  10. package/dist/wj-button-group.js +36 -22
  11. package/dist/wj-button.js +104 -39
  12. package/dist/wj-card-content.js +18 -14
  13. package/dist/wj-card-controls.js +18 -14
  14. package/dist/wj-card-header.js +20 -14
  15. package/dist/wj-card-subtitle.js +19 -15
  16. package/dist/wj-card-title.js +18 -14
  17. package/dist/wj-card.js +20 -14
  18. package/dist/wj-carousel-item.js +22 -16
  19. package/dist/wj-carousel.js +169 -92
  20. package/dist/wj-checkbox.js +46 -24
  21. package/dist/wj-chip.js +39 -21
  22. package/dist/wj-col.js +31 -17
  23. package/dist/wj-color-picker.js +877 -509
  24. package/dist/wj-container.js +20 -16
  25. package/dist/wj-copy-button.js +112 -64
  26. package/dist/wj-dialog.js +68 -42
  27. package/dist/wj-divider.js +20 -14
  28. package/dist/wj-dropdown.js +29 -17
  29. package/dist/wj-element.js +415 -241
  30. package/dist/wj-fetchAndParseCSS.js +49 -32
  31. package/dist/wj-file-upload-item.js +64 -38
  32. package/dist/wj-file-upload.js +237 -137
  33. package/dist/wj-footer.js +18 -14
  34. package/dist/wj-form.js +18 -14
  35. package/dist/wj-format-digital.js +40 -25
  36. package/dist/wj-grid.js +20 -16
  37. package/dist/wj-header.js +22 -16
  38. package/dist/wj-icon-picker.js +122 -68
  39. package/dist/wj-icon.js +144 -64
  40. package/dist/wj-img-comparer.js +72 -41
  41. package/dist/wj-img.js +31 -19
  42. package/dist/wj-infinite-scroll.js +90 -52
  43. package/dist/wj-input-file.js +50 -27
  44. package/dist/wj-input.js +169 -70
  45. package/dist/wj-item.js +34 -17
  46. package/dist/wj-label.js +21 -19
  47. package/dist/wj-list.js +20 -15
  48. package/dist/wj-main.js +18 -14
  49. package/dist/wj-masonry.js +140 -83
  50. package/dist/wj-master.js +492 -350
  51. package/dist/wj-menu-button.js +19 -15
  52. package/dist/wj-menu-item.js +150 -64
  53. package/dist/wj-menu-label.js +21 -17
  54. package/dist/wj-menu.js +24 -18
  55. package/dist/wj-popup.js +1140 -712
  56. package/dist/wj-progress-bar.js +100 -40
  57. package/dist/wj-radio-group.js +38 -25
  58. package/dist/wj-radio.js +46 -22
  59. package/dist/wj-rate.js +121 -71
  60. package/dist/wj-relative-time.js +48 -24
  61. package/dist/wj-route.js +11 -8
  62. package/dist/wj-router-link.js +22 -17
  63. package/dist/wj-router-outlet.js +135 -71
  64. package/dist/wj-routerx.js +1124 -641
  65. package/dist/wj-row.js +21 -19
  66. package/dist/wj-slider.js +97 -55
  67. package/dist/wj-split-view.js +81 -43
  68. package/dist/wj-store.js +195 -110
  69. package/dist/wj-textarea.js +86 -37
  70. package/dist/wj-thumbnail.js +19 -15
  71. package/dist/wj-toast.js +87 -34
  72. package/dist/wj-toggle.js +42 -24
  73. package/dist/wj-toolbar-action.js +27 -16
  74. package/dist/wj-toolbar.js +26 -19
  75. package/dist/wj-tooltip.js +40 -24
  76. package/dist/wj-visually-hidden.js +18 -14
  77. package/package.json +1 -1
  78. package/dist/localize-762a9f0f.js +0 -43
  79. package/dist/router-links-e0087f84.js +0 -146
@@ -1,17 +1,19 @@
1
- var c = Object.defineProperty;
2
- var b = (i, r, t) => r in i ? c(i, r, { enumerable: !0, configurable: !0, writable: !0, value: t }) : i[r] = t;
3
- var u = (i, r, t) => (b(i, typeof r != "symbol" ? r + "" : r, t), t);
4
- import m from "./wj-element.js";
1
+ var __defProp = Object.defineProperty;
2
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
+ var __publicField = (obj, key, value) => {
4
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
5
+ return value;
6
+ };
7
+ import WJElement from "./wj-element.js";
5
8
  import "./wj-store.js";
6
- const h = `:host{--wj-input-font-family: var(--wj-font-family);--wj-input-background-color: var(--wj-background);--wj-input-color: var(--wj-color);--wj-input-color-invalid: var(--wj-color-danger);--wj-input-border-color: var(--wj-border-color);--wj-input-border-color-focus: var(--wj-color-primary);--wj-input-border-width: 1px;--wj-input-border-style: solid;--wj-input-border-radius: 4px;--wj-input-margin-bottom: .5rem;--wj-input-line-height: 20px;--wj-input-slot-padding-inline: .5rem;width:100%;margin-bottom:var(--wj-input-margin-bottom);display:block}:host .wrapper{display:flex;width:100%}:host .native-input .input-wrapper{width:100%;position:relative}:host .native-input.default{background-color:var(--wj-input-background-color);font-family:var(--wj-input-font-family);position:relative;border-radius:var(--wj-input-border-radius);border-width:var(--wj-input-border-width);border-style:var(--wj-input-border-style);border-color:var(--wj-input-border-color);padding-inline:0;padding-top:.25rem;padding-bottom:.25rem;transition:background-color .2s ease;cursor:text}:host .native-input.default .input-wrapper{margin-inline:.5rem}:host .native-input.default.focused{border-color:var(--wj-input-border-color-focus)!important}:host .native-input.default.focused label{opacity:.67;font-size:12px;letter-spacing:normal}:host .native-input.default input{border:none;height:25px;min-height:25px;padding:0;margin-top:-4px;background:none;box-shadow:none;width:100%}:host .native-input.default label{margin:0;display:block;opacity:1;cursor:text;transition:opacity .2s ease;line-height:var(--wj-input-line-height)}:host .native-input.default label.fade{opacity:.5;font-size:12px;letter-spacing:normal}:host .native-input.default ::slotted([slot=start]){border-left:none;border-top:none;border-bottom:none}:host .native-input.default ::slotted([slot=end]){border-right:none;border-top:none;border-bottom:none}:host .native-input.standard{background-color:var(--wj-input-background-color);font-family:var(--wj-input-font-family);position:relative;border-radius:var(--wj-input-border-radius);padding-inline:0;padding-top:0;padding-bottom:0;transition:background-color .2s ease;cursor:text}:host .native-input.standard.focused input{border-color:var(--wj-input-border-color-focus)!important}:host .native-input.standard input{display:block;min-height:32px;padding-inline:.5rem;padding-top:0;padding-bottom:0;background:none;box-shadow:none;width:100%;box-sizing:border-box;border-radius:var(--wj-input-border-radius);border-width:var(--wj-input-border-width);border-style:var(--wj-input-border-style);border-color:var(--wj-input-border-color)}:host .native-input.standard label{margin:0;display:inline-block;opacity:1;cursor:text;transition:opacity .2s ease;line-height:var(--wj-input-line-height)}:host .native-input.standard .input-wrapper:hover .clear{visibility:visible}:host .native-input.standard ::slotted([slot=start]){border-right:none;border-radius:var(--wj-input-border-radius) 0 0 var(--wj-input-border-radius)}:host .native-input.standard ::slotted([slot=end]){border-left:none;border-radius:0 var(--wj-input-border-radius) var(--wj-input-border-radius) 0}:host .native-input.standard.has-start input{border-top-left-radius:0;border-bottom-left-radius:0}:host .native-input.standard.has-end input{border-top-right-radius:0;border-bottom-right-radius:0}:host .native-input.standard .error-message{position:static;background:transparent;padding:.25rem 0;left:auto;transform:none;color:var(--wj-input-color-invalid);font-size:12px;line-height:normal}.clear{visibility:hidden;position:absolute;right:0;top:3px;--wj-padding-top: .25rem;--wj-padding-start: .25rem;--wj-padding-end: .25rem;--wj-padding-bottom: .25rem;--wj-button-margin-inline: 0 .25rem}:host([required]) .input-wrapper:after{color:var(--wj-input-color-invalid);content:"*";font-family:var(--wj-force-mac-font-family);font-size:20px;position:absolute;right:10px;top:2px}:host([required]) .standard .input-wrapper:after{top:0}:host([invalid]) .error-message{display:block}:host([invalid]) .default label{opacity:1!important;color:var(--wj-input-color-invalid)!important;animation-name:shake;animation-duration:.4s;animation-iteration-count:1}::slotted([slot=start]),::slotted([slot=end]){display:flex;align-items:center;border-width:var(--wj-input-border-width);border-style:var(--wj-input-border-style);border-color:var(--wj-input-border-color);padding-inline:var(--wj-input-slot-padding-inline)}slot[name=start],slot[name=end]{display:flex}input{background-color:var(--wj-input-background-color);border-width:var(--wj-input-border-width);border-style:var(--wj-input-border-style);border-color:var(--wj-input-border-color);font-family:var(--wjinput-font-family);color:var(--wj-input-color);-webkit-appearance:none;-moz-appearance:none;appearance:none;outline:0;padding:.25rem .5rem;line-height:var(--wj-input-line-height);font-size:14px;font-weight:400;vertical-align:middle;min-height:32px}.error-message{display:none;position:absolute;width:auto;max-width:100%;min-width:auto;border-radius:50px;background:black;padding:.25rem .5rem;top:0;left:50%;transform:translate(-50%,-50%);color:#fff;font-size:12px;line-height:normal}@keyframes shake{8%,41%{transform:translate(-4px)}25%,58%{transform:translate(4px)}75%{transform:translate(-2px)}92%{transform:translate(2px)}0%,to{transform:translate(0)}}
7
- `;
8
- class w extends m {
9
- constructor(t = {}) {
9
+ const styles = '/*\n[ WJ Input ]\n*/\n:host {\n --wj-input-font-family: var(--wj-font-family);\n --wj-input-background-color: var(--wj-background);\n --wj-input-color: var(--wj-color);\n --wj-input-color-invalid: var(--wj-color-danger);\n --wj-input-border-color: var(--wj-border-color);\n --wj-input-border-color-focus: var(--wj-color-primary);\n --wj-input-border-width: 1px;\n --wj-input-border-style: solid;\n --wj-input-border-radius: 4px;\n --wj-input-margin-bottom: .5rem;\n --wj-input-line-height: 20px;\n --wj-input-slot-padding-inline: .5rem;\n width: 100%;\n margin-bottom: var(--wj-input-margin-bottom);\n display: block;\n}\n:host .wrapper {\n display: flex;\n width: 100%;\n}\n:host .native-input .input-wrapper {\n width: 100%;\n position: relative;\n}\n:host .native-input.default {\n background-color: var(--wj-input-background-color);\n font-family: var(--wj-input-font-family);\n position: relative;\n border-radius: var(--wj-input-border-radius);\n border-width: var(--wj-input-border-width);\n border-style: var(--wj-input-border-style);\n border-color: var(--wj-input-border-color);\n padding-inline: 0;\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n transition: background-color 0.2s ease;\n cursor: text;\n}\n:host .native-input.default .input-wrapper {\n margin-inline: 0.5rem;\n}\n:host .native-input.default.focused {\n border-color: var(--wj-input-border-color-focus) !important;\n}\n:host .native-input.default.focused label {\n opacity: 0.67;\n font-size: 12px;\n letter-spacing: normal;\n}\n:host .native-input.default input {\n border: none;\n height: 25px;\n min-height: 25px;\n padding: 0;\n margin-top: -4px;\n background: none;\n box-shadow: none;\n width: 100%;\n}\n:host .native-input.default label {\n margin: 0;\n display: block;\n opacity: 1;\n cursor: text;\n transition: opacity 0.2s ease;\n line-height: var(--wj-input-line-height);\n}\n:host .native-input.default label.fade {\n opacity: 0.5;\n font-size: 12px;\n letter-spacing: normal;\n}\n:host .native-input.default ::slotted([slot=start]) {\n border-left: none;\n border-top: none;\n border-bottom: none;\n}\n:host .native-input.default ::slotted([slot=end]) {\n border-right: none;\n border-top: none;\n border-bottom: none;\n}\n:host .native-input.standard {\n background-color: var(--wj-input-background-color);\n font-family: var(--wj-input-font-family);\n position: relative;\n border-radius: var(--wj-input-border-radius);\n padding-inline: 0;\n padding-top: 0;\n padding-bottom: 0;\n transition: background-color 0.2s ease;\n cursor: text;\n}\n:host .native-input.standard.focused input {\n border-color: var(--wj-input-border-color-focus) !important;\n}\n:host .native-input.standard input {\n display: block;\n min-height: 32px;\n padding-inline: 0.5rem;\n padding-top: 0;\n padding-bottom: 0;\n background: none;\n box-shadow: none;\n width: 100%;\n box-sizing: border-box;\n border-radius: var(--wj-input-border-radius);\n border-width: var(--wj-input-border-width);\n border-style: var(--wj-input-border-style);\n border-color: var(--wj-input-border-color);\n}\n:host .native-input.standard label {\n margin: 0;\n display: inline-block;\n opacity: 1;\n cursor: text;\n transition: opacity 0.2s ease;\n line-height: var(--wj-input-line-height);\n}\n:host .native-input.standard .input-wrapper:hover .clear {\n visibility: visible;\n}\n:host .native-input.standard ::slotted([slot=start]) {\n border-right: none;\n border-radius: var(--wj-input-border-radius) 0 0 var(--wj-input-border-radius);\n}\n:host .native-input.standard ::slotted([slot=end]) {\n border-left: none;\n border-radius: 0 var(--wj-input-border-radius) var(--wj-input-border-radius) 0;\n}\n:host .native-input.standard.has-start input {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n:host .native-input.standard.has-end input {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n:host .native-input.standard .error-message {\n position: static;\n background: transparent;\n padding: 0.25rem 0;\n left: auto;\n transform: none;\n color: var(--wj-input-color-invalid);\n font-size: 12px;\n line-height: normal;\n}\n\n.clear {\n visibility: hidden;\n position: absolute;\n right: 0;\n top: 3px;\n --wj-padding-top: .25rem;\n --wj-padding-start: .25rem;\n --wj-padding-end: .25rem;\n --wj-padding-bottom: .25rem;\n --wj-button-margin-inline: 0 .25rem;\n}\n\n:host([required]) .input-wrapper::after {\n color: var(--wj-input-color-invalid);\n content: "*";\n font-family: var(--wj-force-mac-font-family);\n font-size: 20px;\n position: absolute;\n right: 10px;\n top: 2px;\n}\n\n:host([required]) .standard .input-wrapper::after {\n top: 0;\n}\n\n:host([invalid]) .error-message {\n display: block;\n}\n:host([invalid]) .default label {\n opacity: 1 !important;\n color: var(--wj-input-color-invalid) !important;\n animation-name: shake;\n animation-duration: 0.4s;\n animation-iteration-count: 1;\n}\n\n::slotted([slot=start]), ::slotted([slot=end]) {\n display: flex;\n align-items: center;\n border-width: var(--wj-input-border-width);\n border-style: var(--wj-input-border-style);\n border-color: var(--wj-input-border-color);\n padding-inline: var(--wj-input-slot-padding-inline);\n}\n\nslot[name=start], slot[name=end] {\n display: flex;\n}\n\ninput {\n background-color: var(--wj-input-background-color);\n border-width: var(--wj-input-border-width);\n border-style: var(--wj-input-border-style);\n border-color: var(--wj-input-border-color);\n font-family: var(--wjinput-font-family);\n color: var(--wj-input-color);\n appearance: none;\n outline: 0;\n padding: 0.25rem 0.5rem;\n line-height: var(--wj-input-line-height);\n font-size: 14px;\n font-weight: normal;\n vertical-align: middle;\n min-height: 32px;\n}\n\n.error-message {\n display: none;\n position: absolute;\n width: auto;\n max-width: 100%;\n min-width: auto;\n border-radius: 50px;\n background: black;\n padding: 0.25rem 0.5rem;\n top: 0;\n left: 50%;\n transform: translate(-50%, -50%);\n color: white;\n font-size: 12px;\n line-height: normal;\n}\n\n@keyframes shake {\n 8%, 41% {\n transform: translateX(-4px);\n }\n 25%, 58% {\n transform: translateX(4px);\n }\n 75% {\n transform: translateX(-2px);\n }\n 92% {\n transform: translateX(2px);\n }\n 0%, 100% {\n transform: translateX(0);\n }\n}';
10
+ class InputFile extends WJElement {
11
+ constructor(options = {}) {
10
12
  super();
11
- u(this, "className", "Input");
13
+ __publicField(this, "className", "Input");
12
14
  }
13
15
  static get cssStyleSheet() {
14
- return h;
16
+ return styles;
15
17
  }
16
18
  static get observedAttributes() {
17
19
  return [];
@@ -19,29 +21,50 @@ class w extends m {
19
21
  setupAttributes() {
20
22
  this.isShadowRoot = "open";
21
23
  }
22
- draw(t, d, s) {
23
- let o = document.createDocumentFragment(), n = document.createElement("div");
24
- n.setAttribute("part", "native"), n.classList.add("native-input-file", this.variant || "default");
25
- let a = document.createElement("input");
26
- a.setAttribute("type", "file"), a.setAttribute("multiple", ""), a.setAttribute("hidden", "");
27
- let e = document.createElement("wj-input");
28
- e.setAttribute("variant", "standard"), e.setAttribute("type", "text"), e.setAttribute("placeholder", "Click to upload"), e.setAttribute("readonly", "");
29
- let p = document.createElement("span");
30
- p.setAttribute("slot", "start");
31
- let l = document.createElement("wj-icon");
32
- return l.setAttribute("slot", "icon-only"), l.setAttribute("name", "cloud-upload"), p.appendChild(l), e.appendChild(p), n.appendChild(e), n.appendChild(a), o.appendChild(n), this.native = n, this.input = e, this.fileInput = a, o;
24
+ draw(context, store, params) {
25
+ let fragment = document.createDocumentFragment();
26
+ let native = document.createElement("div");
27
+ native.setAttribute("part", "native");
28
+ native.classList.add("native-input-file", this.variant || "default");
29
+ let fileInput = document.createElement("input");
30
+ fileInput.setAttribute("type", "file");
31
+ fileInput.setAttribute("multiple", "");
32
+ fileInput.setAttribute("hidden", "");
33
+ let input = document.createElement("wj-input");
34
+ input.setAttribute("variant", "standard");
35
+ input.setAttribute("type", "text");
36
+ input.setAttribute("placeholder", "Click to upload");
37
+ input.setAttribute("readonly", "");
38
+ let span = document.createElement("span");
39
+ span.setAttribute("slot", "start");
40
+ let icon = document.createElement("wj-icon");
41
+ icon.setAttribute("slot", "icon-only");
42
+ icon.setAttribute("name", "cloud-upload");
43
+ span.appendChild(icon);
44
+ input.appendChild(span);
45
+ native.appendChild(input);
46
+ native.appendChild(fileInput);
47
+ fragment.appendChild(native);
48
+ this.native = native;
49
+ this.input = input;
50
+ this.fileInput = fileInput;
51
+ return fragment;
33
52
  }
34
53
  afterDraw() {
35
54
  this.input.addEventListener("click", () => {
36
55
  this.fileInput.click();
37
- }), this.fileInput.addEventListener("change", (t) => {
38
- for (var d = t.target.files, s = [], o = 0; o < d.length; o++)
39
- s.push(d[o].name);
40
- this.input.value = s.join(", ");
56
+ });
57
+ this.fileInput.addEventListener("change", (e) => {
58
+ var files = e.target.files;
59
+ var fileNames = [];
60
+ for (var i = 0; i < files.length; i++) {
61
+ fileNames.push(files[i].name);
62
+ }
63
+ this.input.value = fileNames.join(", ");
41
64
  });
42
65
  }
43
66
  }
44
- customElements.get("wj-input-file") || window.customElements.define("wj-input-file", w);
67
+ customElements.get("wj-input-file") || window.customElements.define("wj-input-file", InputFile);
45
68
  export {
46
- w as InputFile
69
+ InputFile
47
70
  };
package/dist/wj-input.js CHANGED
@@ -1,18 +1,22 @@
1
- var j = Object.defineProperty;
2
- var y = (n, a, t) => a in n ? j(n, a, { enumerable: !0, configurable: !0, writable: !0, value: t }) : n[a] = t;
3
- var b = (n, a, t) => (y(n, typeof a != "symbol" ? a + "" : a, t), t);
4
- import x, { event as g } from "./wj-element.js";
1
+ var __defProp = Object.defineProperty;
2
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
+ var __publicField = (obj, key, value) => {
4
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
5
+ return value;
6
+ };
7
+ import WJElement, { event } from "./wj-element.js";
5
8
  import "./wj-store.js";
6
- const A = `:host{--wj-input-font-family: var(--wj-font-family);--wj-input-background-color: var(--wj-background);--wj-input-color: var(--wj-color);--wj-input-color-invalid: var(--wj-color-danger);--wj-input-border-color: var(--wj-border-color);--wj-input-border-color-focus: var(--wj-color-primary);--wj-input-border-width: 1px;--wj-input-border-style: solid;--wj-input-border-radius: 4px;--wj-input-margin-bottom: .5rem;--wj-input-line-height: 20px;--wj-input-slot-padding-inline: .5rem;width:100%;margin-bottom:var(--wj-input-margin-bottom);display:block}:host .wrapper{display:flex;width:100%}:host .native-input .input-wrapper{width:100%;position:relative}:host .native-input.default{background-color:var(--wj-input-background-color);font-family:var(--wj-input-font-family);position:relative;border-radius:var(--wj-input-border-radius);border-width:var(--wj-input-border-width);border-style:var(--wj-input-border-style);border-color:var(--wj-input-border-color);padding-inline:0;padding-top:.25rem;padding-bottom:.25rem;transition:background-color .2s ease;cursor:text}:host .native-input.default .input-wrapper{margin-inline:.5rem}:host .native-input.default.focused{border-color:var(--wj-input-border-color-focus)!important}:host .native-input.default.focused label{opacity:.67;font-size:12px;letter-spacing:normal}:host .native-input.default input{border:none;height:25px;min-height:25px;padding:0;margin-top:-4px;background:none;box-shadow:none;width:100%}:host .native-input.default label{margin:0;display:block;opacity:1;cursor:text;transition:opacity .2s ease;line-height:var(--wj-input-line-height)}:host .native-input.default label.fade{opacity:.5;font-size:12px;letter-spacing:normal}:host .native-input.default ::slotted([slot=start]){border-left:none;border-top:none;border-bottom:none}:host .native-input.default ::slotted([slot=end]){border-right:none;border-top:none;border-bottom:none}:host .native-input.standard{background-color:var(--wj-input-background-color);font-family:var(--wj-input-font-family);position:relative;border-radius:var(--wj-input-border-radius);padding-inline:0;padding-top:0;padding-bottom:0;transition:background-color .2s ease;cursor:text}:host .native-input.standard.focused input{border-color:var(--wj-input-border-color-focus)!important}:host .native-input.standard input{display:block;min-height:32px;padding-inline:.5rem;padding-top:0;padding-bottom:0;background:none;box-shadow:none;width:100%;box-sizing:border-box;border-radius:var(--wj-input-border-radius);border-width:var(--wj-input-border-width);border-style:var(--wj-input-border-style);border-color:var(--wj-input-border-color)}:host .native-input.standard label{margin:0;display:inline-block;opacity:1;cursor:text;transition:opacity .2s ease;line-height:var(--wj-input-line-height)}:host .native-input.standard .input-wrapper:hover .clear{visibility:visible}:host .native-input.standard ::slotted([slot=start]){border-right:none;border-radius:var(--wj-input-border-radius) 0 0 var(--wj-input-border-radius)}:host .native-input.standard ::slotted([slot=end]){border-left:none;border-radius:0 var(--wj-input-border-radius) var(--wj-input-border-radius) 0}:host .native-input.standard.has-start input{border-top-left-radius:0;border-bottom-left-radius:0}:host .native-input.standard.has-end input{border-top-right-radius:0;border-bottom-right-radius:0}:host .native-input.standard .error-message{position:static;background:transparent;padding:.25rem 0;left:auto;transform:none;color:var(--wj-input-color-invalid);font-size:12px;line-height:normal}.clear{visibility:hidden;position:absolute;right:0;top:3px;--wj-padding-top: .25rem;--wj-padding-start: .25rem;--wj-padding-end: .25rem;--wj-padding-bottom: .25rem;--wj-button-margin-inline: 0 .25rem}:host([required]) .input-wrapper:after{color:var(--wj-input-color-invalid);content:"*";font-family:var(--wj-force-mac-font-family);font-size:20px;position:absolute;right:10px;top:2px}:host([required]) .standard .input-wrapper:after{top:0}:host([invalid]) .error-message{display:block}:host([invalid]) .default label{opacity:1!important;color:var(--wj-input-color-invalid)!important;animation-name:shake;animation-duration:.4s;animation-iteration-count:1}::slotted([slot=start]),::slotted([slot=end]){display:flex;align-items:center;border-width:var(--wj-input-border-width);border-style:var(--wj-input-border-style);border-color:var(--wj-input-border-color);padding-inline:var(--wj-input-slot-padding-inline)}slot[name=start],slot[name=end]{display:flex}input{background-color:var(--wj-input-background-color);border-width:var(--wj-input-border-width);border-style:var(--wj-input-border-style);border-color:var(--wj-input-border-color);font-family:var(--wjinput-font-family);color:var(--wj-input-color);-webkit-appearance:none;-moz-appearance:none;appearance:none;outline:0;padding:.25rem .5rem;line-height:var(--wj-input-line-height);font-size:14px;font-weight:400;vertical-align:middle;min-height:32px}.error-message{display:none;position:absolute;width:auto;max-width:100%;min-width:auto;border-radius:50px;background:black;padding:.25rem .5rem;top:0;left:50%;transform:translate(-50%,-50%);color:#fff;font-size:12px;line-height:normal}@keyframes shake{8%,41%{transform:translate(-4px)}25%,58%{transform:translate(4px)}75%{transform:translate(-2px)}92%{transform:translate(2px)}0%,to{transform:translate(0)}}
7
- `;
8
- class w extends x {
9
- constructor(t = {}) {
9
+ const styles = '/*\n[ WJ Input ]\n*/\n:host {\n --wj-input-font-family: var(--wj-font-family);\n --wj-input-background-color: var(--wj-background);\n --wj-input-color: var(--wj-color);\n --wj-input-color-invalid: var(--wj-color-danger);\n --wj-input-border-color: var(--wj-border-color);\n --wj-input-border-color-focus: var(--wj-color-primary);\n --wj-input-border-width: 1px;\n --wj-input-border-style: solid;\n --wj-input-border-radius: 4px;\n --wj-input-margin-bottom: .5rem;\n --wj-input-line-height: 20px;\n --wj-input-slot-padding-inline: .5rem;\n width: 100%;\n margin-bottom: var(--wj-input-margin-bottom);\n display: block;\n}\n:host .wrapper {\n display: flex;\n width: 100%;\n}\n:host .native-input .input-wrapper {\n width: 100%;\n position: relative;\n}\n:host .native-input.default {\n background-color: var(--wj-input-background-color);\n font-family: var(--wj-input-font-family);\n position: relative;\n border-radius: var(--wj-input-border-radius);\n border-width: var(--wj-input-border-width);\n border-style: var(--wj-input-border-style);\n border-color: var(--wj-input-border-color);\n padding-inline: 0;\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n transition: background-color 0.2s ease;\n cursor: text;\n}\n:host .native-input.default .input-wrapper {\n margin-inline: 0.5rem;\n}\n:host .native-input.default.focused {\n border-color: var(--wj-input-border-color-focus) !important;\n}\n:host .native-input.default.focused label {\n opacity: 0.67;\n font-size: 12px;\n letter-spacing: normal;\n}\n:host .native-input.default input {\n border: none;\n height: 25px;\n min-height: 25px;\n padding: 0;\n margin-top: -4px;\n background: none;\n box-shadow: none;\n width: 100%;\n}\n:host .native-input.default label {\n margin: 0;\n display: block;\n opacity: 1;\n cursor: text;\n transition: opacity 0.2s ease;\n line-height: var(--wj-input-line-height);\n}\n:host .native-input.default label.fade {\n opacity: 0.5;\n font-size: 12px;\n letter-spacing: normal;\n}\n:host .native-input.default ::slotted([slot=start]) {\n border-left: none;\n border-top: none;\n border-bottom: none;\n}\n:host .native-input.default ::slotted([slot=end]) {\n border-right: none;\n border-top: none;\n border-bottom: none;\n}\n:host .native-input.standard {\n background-color: var(--wj-input-background-color);\n font-family: var(--wj-input-font-family);\n position: relative;\n border-radius: var(--wj-input-border-radius);\n padding-inline: 0;\n padding-top: 0;\n padding-bottom: 0;\n transition: background-color 0.2s ease;\n cursor: text;\n}\n:host .native-input.standard.focused input {\n border-color: var(--wj-input-border-color-focus) !important;\n}\n:host .native-input.standard input {\n display: block;\n min-height: 32px;\n padding-inline: 0.5rem;\n padding-top: 0;\n padding-bottom: 0;\n background: none;\n box-shadow: none;\n width: 100%;\n box-sizing: border-box;\n border-radius: var(--wj-input-border-radius);\n border-width: var(--wj-input-border-width);\n border-style: var(--wj-input-border-style);\n border-color: var(--wj-input-border-color);\n}\n:host .native-input.standard label {\n margin: 0;\n display: inline-block;\n opacity: 1;\n cursor: text;\n transition: opacity 0.2s ease;\n line-height: var(--wj-input-line-height);\n}\n:host .native-input.standard .input-wrapper:hover .clear {\n visibility: visible;\n}\n:host .native-input.standard ::slotted([slot=start]) {\n border-right: none;\n border-radius: var(--wj-input-border-radius) 0 0 var(--wj-input-border-radius);\n}\n:host .native-input.standard ::slotted([slot=end]) {\n border-left: none;\n border-radius: 0 var(--wj-input-border-radius) var(--wj-input-border-radius) 0;\n}\n:host .native-input.standard.has-start input {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n:host .native-input.standard.has-end input {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n:host .native-input.standard .error-message {\n position: static;\n background: transparent;\n padding: 0.25rem 0;\n left: auto;\n transform: none;\n color: var(--wj-input-color-invalid);\n font-size: 12px;\n line-height: normal;\n}\n\n.clear {\n visibility: hidden;\n position: absolute;\n right: 0;\n top: 3px;\n --wj-padding-top: .25rem;\n --wj-padding-start: .25rem;\n --wj-padding-end: .25rem;\n --wj-padding-bottom: .25rem;\n --wj-button-margin-inline: 0 .25rem;\n}\n\n:host([required]) .input-wrapper::after {\n color: var(--wj-input-color-invalid);\n content: "*";\n font-family: var(--wj-force-mac-font-family);\n font-size: 20px;\n position: absolute;\n right: 10px;\n top: 2px;\n}\n\n:host([required]) .standard .input-wrapper::after {\n top: 0;\n}\n\n:host([invalid]) .error-message {\n display: block;\n}\n:host([invalid]) .default label {\n opacity: 1 !important;\n color: var(--wj-input-color-invalid) !important;\n animation-name: shake;\n animation-duration: 0.4s;\n animation-iteration-count: 1;\n}\n\n::slotted([slot=start]), ::slotted([slot=end]) {\n display: flex;\n align-items: center;\n border-width: var(--wj-input-border-width);\n border-style: var(--wj-input-border-style);\n border-color: var(--wj-input-border-color);\n padding-inline: var(--wj-input-slot-padding-inline);\n}\n\nslot[name=start], slot[name=end] {\n display: flex;\n}\n\ninput {\n background-color: var(--wj-input-background-color);\n border-width: var(--wj-input-border-width);\n border-style: var(--wj-input-border-style);\n border-color: var(--wj-input-border-color);\n font-family: var(--wjinput-font-family);\n color: var(--wj-input-color);\n appearance: none;\n outline: 0;\n padding: 0.25rem 0.5rem;\n line-height: var(--wj-input-line-height);\n font-size: 14px;\n font-weight: normal;\n vertical-align: middle;\n min-height: 32px;\n}\n\n.error-message {\n display: none;\n position: absolute;\n width: auto;\n max-width: 100%;\n min-width: auto;\n border-radius: 50px;\n background: black;\n padding: 0.25rem 0.5rem;\n top: 0;\n left: 50%;\n transform: translate(-50%, -50%);\n color: white;\n font-size: 12px;\n line-height: normal;\n}\n\n@keyframes shake {\n 8%, 41% {\n transform: translateX(-4px);\n }\n 25%, 58% {\n transform: translateX(4px);\n }\n 75% {\n transform: translateX(-2px);\n }\n 92% {\n transform: translateX(2px);\n }\n 0%, 100% {\n transform: translateX(0);\n }\n}';
10
+ class Input extends WJElement {
11
+ constructor(options = {}) {
10
12
  super();
11
- b(this, "className", "Input");
12
- this.invalid = !1, this.pristine = !0, this.internals = this.attachInternals();
13
+ __publicField(this, "className", "Input");
14
+ this.invalid = false;
15
+ this.pristine = true;
16
+ this.internals = this.attachInternals();
13
17
  }
14
- set value(t) {
15
- this.setAttribute("value", t);
18
+ set value(value) {
19
+ this.setAttribute("value", value);
16
20
  }
17
21
  get value() {
18
22
  return this.getAttribute("value") || "";
@@ -26,8 +30,8 @@ class w extends x {
26
30
  get invalid() {
27
31
  return this.hasAttribute("invalid");
28
32
  }
29
- set invalid(t) {
30
- t && this.customErrorDisplay ? this.setAttribute("invalid", "") : this.removeAttribute("invalid");
33
+ set invalid(isInvalid) {
34
+ isInvalid && this.customErrorDisplay ? this.setAttribute("invalid", "") : this.removeAttribute("invalid");
31
35
  }
32
36
  get form() {
33
37
  return this.internals.form;
@@ -54,7 +58,7 @@ class w extends x {
54
58
  return this.internals.reportValidity();
55
59
  }
56
60
  static get cssStyleSheet() {
57
- return A;
61
+ return styles;
58
62
  }
59
63
  static get observedAttributes() {
60
64
  return ["value"];
@@ -62,28 +66,88 @@ class w extends x {
62
66
  setupAttributes() {
63
67
  this.isShadowRoot = "open";
64
68
  }
65
- draw(t, e, s) {
66
- let o = this.hasSlot(this, "start"), m = this.hasSlot(this, "end"), v = document.createDocumentFragment(), r = document.createElement("div");
67
- r.setAttribute("part", "native"), r.classList.add("native-input", this.variant || "default"), this.hasAttribute("invalid") && r.classList.add("has-error");
68
- let l = document.createElement("div");
69
- l.classList.add("wrapper");
70
- let d = document.createElement("div");
71
- d.classList.add("input-wrapper");
72
- let u = document.createElement("label");
73
- u.innerText = this.label, this.value && !this.hasAttribute("error") && u.classList.add("fade");
74
- let i = document.createElement("input");
75
- i.setAttribute("type", "text"), i.setAttribute("part", "input"), i.setAttribute("value", this.value || ""), i.classList.add("form-control"), this.hasAttribute("placeholder") && i.setAttribute("placeholder", this.placeholder), this.hasAttribute("multiple") && i.setAttribute("multiple", this.multiple), this.hasAttribute("disabled") && i.setAttribute("disabled", ""), this.hasAttribute("readonly") && i.setAttribute("readonly", ""), this.hasAttribute("maxlength") && i.setAttribute("maxlength", this.maxlength), this.hasAttribute("max") && i.setAttribute("max", this.max), this.hasAttribute("min") && i.setAttribute("min", this.min);
76
- let p = document.createElement("div");
77
- p.classList.add("error-message");
78
- let h = null;
79
- o && (h = document.createElement("slot"), h.setAttribute("name", "start"));
80
- let c = null;
81
- if (m && (c = document.createElement("slot"), c.setAttribute("name", "end")), o && (l.appendChild(h), r.classList.add("has-start")), this.variant === "standard" ? this.label && r.appendChild(u) : d.appendChild(u), d.appendChild(i), l.appendChild(d), r.appendChild(l), this.hasAttribute("clearable")) {
82
- this.clear = document.createElement("wj-button"), this.clear.classList.add("clear"), this.clear.setAttribute("fill", "link"), this.clear.setAttribute("part", "clear");
83
- let f = document.createElement("wj-icon");
84
- f.setAttribute("name", "x"), this.clear.appendChild(f), d.appendChild(this.clear);
69
+ draw(context, store, params) {
70
+ let hasSlotStart = this.hasSlot(this, "start");
71
+ let hasSlotEnd = this.hasSlot(this, "end");
72
+ let fragment = document.createDocumentFragment();
73
+ let native = document.createElement("div");
74
+ native.setAttribute("part", "native");
75
+ native.classList.add("native-input", this.variant || "default");
76
+ if (this.hasAttribute("invalid"))
77
+ native.classList.add("has-error");
78
+ let wrapper = document.createElement("div");
79
+ wrapper.classList.add("wrapper");
80
+ let inputWrapper = document.createElement("div");
81
+ inputWrapper.classList.add("input-wrapper");
82
+ let label = document.createElement("label");
83
+ label.innerText = this.label;
84
+ if (this.value && !this.hasAttribute("error"))
85
+ label.classList.add("fade");
86
+ let input = document.createElement("input");
87
+ input.setAttribute("type", "text");
88
+ input.setAttribute("part", "input");
89
+ input.setAttribute("value", this.value || "");
90
+ input.classList.add("form-control");
91
+ if (this.hasAttribute("placeholder"))
92
+ input.setAttribute("placeholder", this.placeholder);
93
+ if (this.hasAttribute("multiple"))
94
+ input.setAttribute("multiple", this.multiple);
95
+ if (this.hasAttribute("disabled"))
96
+ input.setAttribute("disabled", "");
97
+ if (this.hasAttribute("readonly"))
98
+ input.setAttribute("readonly", "");
99
+ if (this.hasAttribute("maxlength"))
100
+ input.setAttribute("maxlength", this.maxlength);
101
+ if (this.hasAttribute("max"))
102
+ input.setAttribute("max", this.max);
103
+ if (this.hasAttribute("min"))
104
+ input.setAttribute("min", this.min);
105
+ let error = document.createElement("div");
106
+ error.classList.add("error-message");
107
+ let start = null;
108
+ if (hasSlotStart) {
109
+ start = document.createElement("slot");
110
+ start.setAttribute("name", "start");
111
+ }
112
+ let end = null;
113
+ if (hasSlotEnd) {
114
+ end = document.createElement("slot");
115
+ end.setAttribute("name", "end");
116
+ }
117
+ if (hasSlotStart) {
118
+ wrapper.appendChild(start);
119
+ native.classList.add("has-start");
120
+ }
121
+ if (this.variant === "standard") {
122
+ if (this.label)
123
+ native.appendChild(label);
124
+ } else {
125
+ inputWrapper.appendChild(label);
85
126
  }
86
- return m && (l.appendChild(c), r.classList.add("has-end")), r.appendChild(p), v.appendChild(r), this.native = r, this.labelElement = u, this.input = i, this.errorMessage = p, v;
127
+ inputWrapper.appendChild(input);
128
+ wrapper.appendChild(inputWrapper);
129
+ native.appendChild(wrapper);
130
+ if (this.hasAttribute("clearable")) {
131
+ this.clear = document.createElement("wj-button");
132
+ this.clear.classList.add("clear");
133
+ this.clear.setAttribute("fill", "link");
134
+ this.clear.setAttribute("part", "clear");
135
+ let clearIcon = document.createElement("wj-icon");
136
+ clearIcon.setAttribute("name", "x");
137
+ this.clear.appendChild(clearIcon);
138
+ inputWrapper.appendChild(this.clear);
139
+ }
140
+ if (hasSlotEnd) {
141
+ wrapper.appendChild(end);
142
+ native.classList.add("has-end");
143
+ }
144
+ native.appendChild(error);
145
+ fragment.appendChild(native);
146
+ this.native = native;
147
+ this.labelElement = label;
148
+ this.input = input;
149
+ this.errorMessage = error;
150
+ return fragment;
87
151
  }
88
152
  afterDraw() {
89
153
  [
@@ -96,49 +160,84 @@ class w extends x {
96
160
  "minLength",
97
161
  "maxLength",
98
162
  "pattern"
99
- ].forEach((t) => {
100
- const e = t === "required" ? this.hasAttribute(t) : this.getAttribute(t);
101
- e != null && (this.input[t] = e);
102
- }), this.input.addEventListener("focus", (t) => {
103
- this.labelElement.classList.add("fade"), this.native.classList.add("focused");
104
- }), this.input.addEventListener("blur", (t) => {
105
- this.native.classList.remove("focused"), t.target.value || this.labelElement.classList.remove("fade");
106
- }), this.input.addEventListener("input", (t) => {
107
- this.validateOnChange && (this.pristine = !1), this.input.classList.remove("pristine"), this.labelElement.classList.add("fade");
108
- const e = new t.constructor(t.type, t);
109
- this.dispatchEvent(e), this.validateInput(), g.dispatchCustomEvent(this, "wj-input:input", {
163
+ ].forEach((attr) => {
164
+ const attrValue = attr === "required" ? this.hasAttribute(attr) : this.getAttribute(attr);
165
+ if (attrValue !== null && attrValue !== void 0) {
166
+ this.input[attr] = attrValue;
167
+ }
168
+ });
169
+ this.input.addEventListener("focus", (e) => {
170
+ this.labelElement.classList.add("fade");
171
+ this.native.classList.add("focused");
172
+ });
173
+ this.input.addEventListener("blur", (e) => {
174
+ this.native.classList.remove("focused");
175
+ if (!e.target.value)
176
+ this.labelElement.classList.remove("fade");
177
+ });
178
+ this.input.addEventListener("input", (e) => {
179
+ if (this.validateOnChange) {
180
+ this.pristine = false;
181
+ }
182
+ this.input.classList.remove("pristine");
183
+ this.labelElement.classList.add("fade");
184
+ const clone = new e.constructor(e.type, e);
185
+ this.dispatchEvent(clone);
186
+ this.validateInput();
187
+ event.dispatchCustomEvent(this, "wj-input:input", {
110
188
  value: this.input.value
111
189
  });
112
- }), this.addEventListener("invalid", (t) => {
113
- this.invalid = !0, this.pristine = !1, this.errorMessage.textContent = this.internals.validationMessage, this.customErrorDisplay && t.preventDefault();
114
- }), this.addEventListener("focus", () => this.input.focus()), this.clear && this.clear.addEventListener("wj:button-click", (t) => {
115
- this.input.value = "", g.dispatchCustomEvent(this.clear, "wj-input:clear");
116
190
  });
191
+ this.addEventListener("invalid", (e) => {
192
+ this.invalid = true;
193
+ this.pristine = false;
194
+ this.errorMessage.textContent = this.internals.validationMessage;
195
+ if (this.customErrorDisplay) {
196
+ e.preventDefault();
197
+ }
198
+ });
199
+ this.addEventListener("focus", () => this.input.focus());
200
+ if (this.clear) {
201
+ this.clear.addEventListener("wj:button-click", (e) => {
202
+ this.input.value = "";
203
+ event.dispatchCustomEvent(this.clear, "wj-input:clear");
204
+ });
205
+ }
117
206
  }
118
207
  validateInput() {
119
- const t = this.input.validity;
120
- if (this.invalid = !1, t.valid)
121
- this.internals.setValidity({}), this.pristine = !1, this.errorMessage.textContent = this.input.validationMessage;
122
- else
123
- for (let e in t) {
124
- const s = `message-${e.toString()}`;
125
- if (t[e]) {
126
- this.validationError = e.toString(), this.invalid = !this.pristine && !t.valid;
127
- let o = this.message;
128
- this.hasAttribute("message") || (o = this.hasAttribute(s) ? this.getAttribute(s) : this.input.validationMessage), this.internals.setValidity(
129
- { [this.validationError]: !0 },
130
- o
131
- ), this.invalid && this.customErrorDisplay && this.dispatchEvent(new Event("invalid"));
208
+ const validState = this.input.validity;
209
+ this.invalid = false;
210
+ if (!validState.valid) {
211
+ for (let state in validState) {
212
+ const attr = `message-${state.toString()}`;
213
+ if (validState[state]) {
214
+ this.validationError = state.toString();
215
+ this.invalid = !this.pristine && !validState.valid;
216
+ let errorMessage = this.message;
217
+ if (!this.hasAttribute("message"))
218
+ errorMessage = this.hasAttribute(attr) ? this.getAttribute(attr) : this.input.validationMessage;
219
+ this.internals.setValidity(
220
+ { [this.validationError]: true },
221
+ errorMessage
222
+ );
223
+ if (this.invalid && this.customErrorDisplay) {
224
+ this.dispatchEvent(new Event("invalid"));
225
+ }
132
226
  }
133
227
  }
228
+ } else {
229
+ this.internals.setValidity({});
230
+ this.pristine = false;
231
+ this.errorMessage.textContent = this.input.validationMessage;
232
+ }
134
233
  }
135
- hasSlot(t, e = null) {
136
- let s = e ? `[slot="${e}"]` : "[slot]";
137
- return t.querySelectorAll(s).length > 0;
234
+ hasSlot(el, slotName = null) {
235
+ let selector = slotName ? `[slot="${slotName}"]` : "[slot]";
236
+ return el.querySelectorAll(selector).length > 0 ? true : false;
138
237
  }
139
238
  }
140
- b(w, "formAssociated", !0);
141
- customElements.get("wj-input") || window.customElements.define("wj-input", w);
239
+ __publicField(Input, "formAssociated", true);
240
+ customElements.get("wj-input") || window.customElements.define("wj-input", Input);
142
241
  export {
143
- w as Input
242
+ Input
144
243
  };
package/dist/wj-item.js CHANGED
@@ -1,30 +1,47 @@
1
- var s = Object.defineProperty;
2
- var d = (i, e, t) => e in i ? s(i, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : i[e] = t;
3
- var o = (i, e, t) => (d(i, typeof e != "symbol" ? e + "" : e, t), t);
4
- import l from "./wj-element.js";
1
+ var __defProp = Object.defineProperty;
2
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
+ var __publicField = (obj, key, value) => {
4
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
5
+ return value;
6
+ };
7
+ import WJElement from "./wj-element.js";
5
8
  import "./wj-store.js";
6
- const m = `:host{--wj-border-width: 0 0 1px 0;--wj-item-background: transparent;--wj-item-background-hover: var(--wj-color-contrast-3);--wj-item-padding-top: 0px;--wj-item-padding-bottom: 0px;--wj-item-padding-end: 0px;--wj-item-padding-start: 0px;--wj-item-inner-border-width: 0 0 1px 0;--wj-item-inner-padding-top: 0px;--wj-item-inner-padding-bottom: 0px;--wj-item-inner-padding-start: 0px;--wj-item-inner-padding-end: 0px;--wj-item-inner-box-shadow: none;--wj-item-min-height: 40px;--wj-item-transition: opacity 15ms linear, background-color 15ms linear;display:block;position:relative;align-items:center;justify-content:space-between;outline:none;color:var(--wj-item-color);text-align:initial;text-decoration:none;overflow:hidden;box-sizing:border-box;width:100%}.item-native{border-radius:var(--wj-item-border-radius);padding-top:var(--wj-item-padding-top);padding-bottom:var(--wj-item-padding-bottom);padding-inline:var(--wj-item-padding-start) var(--wj-item-padding-end);margin:0;display:flex;position:relative;align-items:inherit;justify-content:inherit;width:100%;min-height:var(--wj-item-min-height);transition:var(--wj-item-transition);outline:none;background:var(--wj-item-background);overflow:inherit;box-sizing:border-box;z-index:1;text-decoration:none;color:var(--wj-item-color)}.item-native .item-inner{margin:0;padding:var(--wj-item-inner-padding-top) var(--wj-item-inner-padding-end) var(--wj-item-inner-padding-bottom) var(--wj-item-inner-padding-start);display:flex;position:relative;flex:1 1 0;flex-direction:inherit;align-items:inherit;align-self:stretch;min-height:inherit;border-width:var(--wj-border-width);border-style:var(--wj-border-style);border-color:var(--wj-border-color);box-shadow:var(--wj-item-inner-box-shadow);overflow:inherit;box-sizing:border-box}.item-native .item-inner .input-wrapper{display:flex;flex:1 1 0;flex-direction:inherit;align-items:inherit;align-self:stretch;text-overflow:ellipsis;overflow:inherit;box-sizing:border-box}.item-native .item-bottom{padding:0 var(--wj-item-inner-padding-end) 0 var(--wj-item-padding-start);display:flex;justify-content:space-between}@media (any-hover: hover){:host(:hover) .item-native{color:var(--wj-item-color)}:host(:hover) .item-native :after{transition:var(--wj-item-transition);z-index:-1;top:0;right:0;bottom:0;left:0;position:absolute;content:"";background:var(--wj-item-background-hover);opacity:.7}}button,a{cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}::slotted([slot=start]){margin-inline:0 1rem}::slotted(wj-label:not([slot=end])){flex:1 1 0}
7
- `;
8
- class p extends l {
9
+ const styles = '/*\n[ WJ Item ]\n*/\n:host {\n --wj-border-width: 0 0 1px 0;\n --wj-item-background: transparent;\n --wj-item-background-hover: var(--wj-color-contrast-3);\n --wj-item-padding-top: 0px;\n --wj-item-padding-bottom: 0px;\n --wj-item-padding-end: 0px;\n --wj-item-padding-start: 0px;\n --wj-item-inner-border-width: 0 0 1px 0;\n --wj-item-inner-padding-top: 0px;\n --wj-item-inner-padding-bottom: 0px;\n --wj-item-inner-padding-start: 0px;\n --wj-item-inner-padding-end: 0px;\n --wj-item-inner-box-shadow: none;\n --wj-item-min-height: 40px;\n --wj-item-transition: opacity 15ms linear, background-color 15ms linear;\n display: block;\n position: relative;\n align-items: center;\n justify-content: space-between;\n outline: none;\n color: var(--wj-item-color);\n text-align: initial;\n text-decoration: none;\n overflow: hidden;\n box-sizing: border-box;\n width: 100%;\n}\n\n.item-native {\n border-radius: var(--wj-item-border-radius);\n padding-top: var(--wj-item-padding-top);\n padding-bottom: var(--wj-item-padding-bottom);\n padding-inline: var(--wj-item-padding-start) var(--wj-item-padding-end);\n margin: 0;\n display: flex;\n position: relative;\n align-items: inherit;\n justify-content: inherit;\n width: 100%;\n min-height: var(--wj-item-min-height);\n transition: var(--wj-item-transition);\n outline: none;\n background: var(--wj-item-background);\n overflow: inherit;\n box-sizing: border-box;\n z-index: 1;\n text-decoration: none;\n color: var(--wj-item-color);\n}\n.item-native .item-inner {\n margin: 0;\n padding: var(--wj-item-inner-padding-top) var(--wj-item-inner-padding-end) var(--wj-item-inner-padding-bottom) var(--wj-item-inner-padding-start);\n display: flex;\n position: relative;\n flex: 1 1 0;\n flex-direction: inherit;\n align-items: inherit;\n align-self: stretch;\n min-height: inherit;\n border-width: var(--wj-border-width);\n border-style: var(--wj-border-style);\n border-color: var(--wj-border-color);\n box-shadow: var(--wj-item-inner-box-shadow);\n overflow: inherit;\n box-sizing: border-box;\n}\n.item-native .item-inner .input-wrapper {\n display: flex;\n flex: 1 1 0;\n flex-direction: inherit;\n align-items: inherit;\n align-self: stretch;\n text-overflow: ellipsis;\n overflow: inherit;\n box-sizing: border-box;\n}\n.item-native .item-bottom {\n padding: 0 var(--wj-item-inner-padding-end) 0 var(--wj-item-padding-start);\n display: flex;\n justify-content: space-between;\n}\n\n@media (any-hover: hover) {\n :host(:hover) .item-native {\n color: var(--wj-item-color);\n }\n :host(:hover) .item-native :after {\n transition: var(--wj-item-transition);\n z-index: -1;\n inset: 0;\n position: absolute;\n content: "";\n background: var(--wj-item-background-hover);\n opacity: 0.7;\n }\n}\nbutton,\na {\n cursor: pointer;\n user-select: none;\n -webkit-user-drag: none;\n}\n\n::slotted([slot=start]) {\n margin-inline: 0 1rem;\n}\n\n::slotted(wj-label:not([slot=end])) {\n flex: 1 1 0;\n}';
10
+ class Item extends WJElement {
9
11
  constructor() {
10
12
  super();
11
- o(this, "hostContext", (t, n) => n.closest(t) !== null);
12
- this.labelColorStyles = {}, this.itemStyles = /* @__PURE__ */ new Map(), this.inheritedAriaAttributes = {}, this.multipleInputs = !1, this.focusable = !0, this.button = !1, this.detailIcon = "", this.disabled = !1, this.counter = !1, this.routerDirection = "forward", this.type = "button";
13
+ __publicField(this, "hostContext", (selector, el) => {
14
+ return el.closest(selector) !== null;
15
+ });
16
+ this.labelColorStyles = {};
17
+ this.itemStyles = /* @__PURE__ */ new Map();
18
+ this.inheritedAriaAttributes = {};
19
+ this.multipleInputs = false;
20
+ this.focusable = true;
21
+ this.button = false;
22
+ this.detailIcon = ``;
23
+ this.disabled = false;
24
+ this.counter = false;
25
+ this.routerDirection = "forward";
26
+ this.type = "button";
13
27
  }
14
28
  isClickable() {
15
29
  return this.hasAttribute("href") || this.button;
16
30
  }
17
31
  static get cssStyleSheet() {
18
- return m;
32
+ return styles;
19
33
  }
20
34
  setupAttributes() {
21
35
  this.isShadowRoot = "open";
22
36
  }
23
- beforeDraw(t, n, a) {
37
+ beforeDraw(context, store, params) {
24
38
  }
25
- draw(t, n, a) {
26
- const r = this.isClickable() ? this.hasAttribute("href") === void 0 ? "button" : "a" : "div";
27
- return this.hostContext("wj-list", this) && this.classList.add("wj-item-list"), `<${r} class="item-native" part="native">
39
+ draw(context, store, params) {
40
+ const TagType = this.isClickable() ? this.hasAttribute("href") === void 0 ? "button" : "a" : "div";
41
+ if (this.hostContext("wj-list", this)) {
42
+ this.classList.add("wj-item-list");
43
+ }
44
+ return `<${TagType} class="item-native" part="native">
28
45
  <slot name="start"></slot>
29
46
  <div class="item-inner">
30
47
  <div class="input-wrapper">
@@ -33,14 +50,14 @@ class p extends l {
33
50
  <slot name="end"></slot>
34
51
  </div>
35
52
  <div class="item-highlight"></div>
36
- </${r}>
53
+ </${TagType}>
37
54
  <div class="item-bottom">
38
55
  <slot name="error"></slot>
39
56
  <slot name="helper"></slot>
40
57
  </div>`;
41
58
  }
42
59
  }
43
- customElements.get("wj-item") || window.customElements.define("wj-item", p);
60
+ customElements.get("wj-item") || window.customElements.define("wj-item", Item);
44
61
  export {
45
- p as Item
62
+ Item
46
63
  };
package/dist/wj-label.js CHANGED
@@ -1,19 +1,19 @@
1
- var i = Object.defineProperty;
2
- var c = (e, t, o) => t in e ? i(e, t, { enumerable: !0, configurable: !0, writable: !0, value: o }) : e[t] = o;
3
- var s = (e, t, o) => (c(e, typeof t != "symbol" ? t + "" : t, o), o);
4
- import w from "./wj-element.js";
1
+ var __defProp = Object.defineProperty;
2
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
+ var __publicField = (obj, key, value) => {
4
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
5
+ return value;
6
+ };
7
+ import WJElement from "./wj-element.js";
5
8
  import "./wj-store.js";
6
- const m = `/*!
7
- * direction.scss
8
- */:host(.wj-color-primary){--wj-color: #7252D3 !important}:host(.wj-color-complete){--wj-color: #0072EC !important}:host(.wj-color-success){--wj-color-base: #19AD79 !important;--wj-color-contrast: #fff !important}:host(.wj-color-warning){--wj-color-base: #FFd945 !important;--wj-color-contrast: #4b4b4b !important}:host(.wj-color-danger){--wj-color-base: #D83C31 !important;--wj-color-contrast: #fff !important}:host(.wj-color-info){--wj-color-base: #3B4752 !important;--wj-color-contrast: #fff !important}:host(.wj-color-menu){--wj-color-base: #2b303b !important;--wj-color-contrast: #fff !important}:host{--wj-color: initial;display:block;font-size:inherit;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;box-sizing:border-box}:host(.wj-color){color:var(--wj-color-base)}:host(.wj-text-wrap),:host([text-wrap]){white-space:normal!important}:host(.label-fixed){flex:0 0 100px;width:100px;min-width:100px;max-width:200px}:host(.label-stacked),:host(.label-floating){margin:0;align-self:stretch;width:auto;max-width:100%}:host(.label-no-animate.label-floating){transition:none}::slotted(*) h1,::slotted(*) h2,::slotted(*) h3,::slotted(*) h4,::slotted(*) h5,::slotted(*) h6{text-overflow:inherit;overflow:inherit}:host(.wj-color){color:var(--wj-color)}::slotted(*:first-child){margin-top:0!important}::slotted(*:last-child){margin-bottom:0!important}
9
- `;
10
- class h extends w {
9
+ const styles = "/*!\n* direction.scss\n*/\n/* Skeleton Variables */\n:host(.wj-color-primary) {\n --wj-color: #7252D3 !important;\n}\n:host(.wj-color-complete) {\n --wj-color: #0072EC !important;\n}\n:host(.wj-color-success) {\n --wj-color-base: #19AD79 !important;\n --wj-color-contrast: #fff !important;\n}\n:host(.wj-color-warning) {\n --wj-color-base: #FFd945 !important;\n --wj-color-contrast: #4b4b4b !important;\n}\n:host(.wj-color-danger) {\n --wj-color-base: #D83C31 !important;\n --wj-color-contrast: #fff !important;\n}\n:host(.wj-color-info) {\n --wj-color-base: #3B4752 !important;\n --wj-color-contrast: #fff !important;\n}\n:host(.wj-color-menu) {\n --wj-color-base: #2b303b !important;\n --wj-color-contrast: #fff !important;\n}\n:host {\n --wj-color: initial;\n display: block;\n font-size: inherit;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n box-sizing: border-box;\n}\n:host(.wj-color) {\n color: var(--wj-color-base);\n}\n:host(.wj-text-wrap),\n:host([text-wrap]) {\n white-space: normal !important;\n}\n:host(.label-fixed) {\n flex: 0 0 100px;\n width: 100px;\n min-width: 100px;\n max-width: 200px;\n}\n:host(.label-stacked),\n:host(.label-floating) {\n margin: 0;\n align-self: stretch;\n width: auto;\n max-width: 100%;\n}\n:host(.label-no-animate.label-floating) {\n transition: none;\n}\n::slotted(*) h1,\n::slotted(*) h2,\n::slotted(*) h3,\n::slotted(*) h4,\n::slotted(*) h5,\n::slotted(*) h6 {\n text-overflow: inherit;\n overflow: inherit;\n}\n:host(.wj-color) {\n color: var(--wj-color);\n}\n::slotted(*:first-child) {\n margin-top: 0 !important;\n}\n::slotted(*:last-child) {\n margin-bottom: 0 !important;\n}";
10
+ class Label extends WJElement {
11
11
  constructor() {
12
12
  super();
13
- s(this, "className", "Label");
13
+ __publicField(this, "className", "Label");
14
14
  }
15
15
  static get cssStyleSheet() {
16
- return m;
16
+ return styles;
17
17
  }
18
18
  static get observedAttributes() {
19
19
  return [];
@@ -21,16 +21,18 @@ class h extends w {
21
21
  setupAttributes() {
22
22
  this.isShadowRoot = "open";
23
23
  }
24
- beforeDraw(o, a, r) {
24
+ beforeDraw(context, store, params) {
25
25
  }
26
- draw(o, a, r) {
27
- let l = document.createDocumentFragment();
28
- this.color && this.classList.add("wj-color-" + r.color, "wj-color");
29
- let n = document.createElement("slot");
30
- return l.appendChild(n), l;
26
+ draw(context, store, params) {
27
+ let fragment = document.createDocumentFragment();
28
+ if (this.color)
29
+ this.classList.add("wj-color-" + params.color, "wj-color");
30
+ let element = document.createElement("slot");
31
+ fragment.appendChild(element);
32
+ return fragment;
31
33
  }
32
34
  }
33
- customElements.get("wj-label") || window.customElements.define("wj-label", h);
35
+ customElements.get("wj-label") || window.customElements.define("wj-label", Label);
34
36
  export {
35
- h as Label
37
+ Label
36
38
  };