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
package/dist/wj-master.js CHANGED
@@ -1,140 +1,145 @@
1
- var A = Object.defineProperty;
2
- var y = (s, i, t) => i in s ? A(s, i, { enumerable: !0, configurable: !0, writable: !0, value: t }) : s[i] = t;
3
- var c = (s, i, t) => (y(s, typeof i != "symbol" ? i + "" : i, t), t);
4
- import u, { WjElementUtils as E, event as f } from "./wj-element.js";
5
- import { defaultStoreActions as J, store as K } from "./wj-store.js";
6
- import { b as X, w as Y } from "./router-links-e0087f84.js";
7
- import { fetchAndParseCSS as tt } from "./wj-fetchAndParseCSS.js";
8
- import { L as x } from "./localize-762a9f0f.js";
9
- import { Aside as rt } from "./wj-aside.js";
10
- import { Animation as at } from "./wj-animation.js";
11
- import { Avatar as st } from "./wj-avatar.js";
12
- import { Badge as lt } from "./wj-badge.js";
13
- import { Breadcrumb as ct } from "./wj-breadcrumb.js";
14
- import { Breadcrumbs as mt } from "./wj-breadcrumbs.js";
15
- import { Button as ht } from "./wj-button.js";
16
- import { ButtonGroup as wt } from "./wj-button-group.js";
17
- import { Card as ft } from "./wj-card.js";
18
- import { CardContent as xt } from "./wj-card-content.js";
19
- import { CardControls as At } from "./wj-card-controls.js";
20
- import { CardHeader as Et } from "./wj-card-header.js";
21
- import { CardSubtitle as St } from "./wj-card-subtitle.js";
22
- import { CardTitle as kt } from "./wj-card-title.js";
23
- import { Carousel as Ot } from "./wj-carousel.js";
24
- import { CarouselItem as Rt } from "./wj-carousel-item.js";
25
- import { Checkbox as Ft } from "./wj-checkbox.js";
26
- import { Chip as Nt } from "./wj-chip.js";
27
- import { Col as It } from "./wj-col.js";
28
- import { ColorPicker as Bt } from "./wj-color-picker.js";
29
- import { Container as Wt } from "./wj-container.js";
30
- import { CopyButton as Gt } from "./wj-copy-button.js";
31
- import { Dialog as Ut } from "./wj-dialog.js";
32
- import { Divider as Jt } from "./wj-divider.js";
33
- import { Dropdown as Qt } from "./wj-dropdown.js";
34
- import { FileUpload as Yt } from "./wj-file-upload.js";
35
- import { FileUploadItem as te } from "./wj-file-upload-item.js";
36
- import { Footer as re } from "./wj-footer.js";
37
- import { FormatDigital as ae } from "./wj-format-digital.js";
38
- import { Grid as se } from "./wj-grid.js";
39
- import { Header as le } from "./wj-header.js";
40
- import { Icon as ce } from "./wj-icon.js";
41
- import { IconPicker as me } from "./wj-icon-picker.js";
42
- import { Img as he } from "./wj-img.js";
43
- import { ImgComparer as we } from "./wj-img-comparer.js";
44
- import { InfiniteScroll as fe } from "./wj-infinite-scroll.js";
45
- import { Input as xe } from "./wj-input.js";
46
- import { InputFile as Ae } from "./wj-input-file.js";
47
- import { Item as Ee } from "./wj-item.js";
48
- import { Label as Se } from "./wj-label.js";
49
- import { List as ke } from "./wj-list.js";
50
- import { Main as Oe } from "./wj-main.js";
51
- import { Masonry as Re } from "./wj-masonry.js";
52
- import { Menu as Fe } from "./wj-menu.js";
53
- import { MenuButton as Ne } from "./wj-menu-button.js";
54
- import { MenuItem as Ie } from "./wj-menu-item.js";
55
- import { MenuLabel as Be } from "./wj-menu-label.js";
56
- import { Popup as We } from "./wj-popup.js";
57
- import { ProgressBar as Ge } from "./wj-progress-bar.js";
58
- import { Radio as Ue } from "./wj-radio.js";
59
- import { RadioGroup as Je } from "./wj-radio-group.js";
60
- import { Rate as Qe } from "./wj-rate.js";
61
- import { RelativeTime as Ye } from "./wj-relative-time.js";
62
- import { Route as tr } from "./wj-route.js";
63
- import { Routerx as rr } from "./wj-routerx.js";
64
- import { RouterLink as ar } from "./wj-router-link.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, { WjElementUtils, event } from "./wj-element.js";
8
+ import { defaultStoreActions, store } from "./wj-store.js";
9
+ import { b, w } from "./router-links-26e4a166.js";
10
+ import { fetchAndParseCSS } from "./wj-fetchAndParseCSS.js";
11
+ import { L as Localizer } from "./localize-20081fd1.js";
12
+ import { Aside } from "./wj-aside.js";
13
+ import { Animation } from "./wj-animation.js";
14
+ import { Avatar } from "./wj-avatar.js";
15
+ import { Badge } from "./wj-badge.js";
16
+ import { Breadcrumb } from "./wj-breadcrumb.js";
17
+ import { Breadcrumbs } from "./wj-breadcrumbs.js";
18
+ import { Button } from "./wj-button.js";
19
+ import { ButtonGroup } from "./wj-button-group.js";
20
+ import { Card } from "./wj-card.js";
21
+ import { CardContent } from "./wj-card-content.js";
22
+ import { CardControls } from "./wj-card-controls.js";
23
+ import { CardHeader } from "./wj-card-header.js";
24
+ import { CardSubtitle } from "./wj-card-subtitle.js";
25
+ import { CardTitle } from "./wj-card-title.js";
26
+ import { Carousel } from "./wj-carousel.js";
27
+ import { CarouselItem } from "./wj-carousel-item.js";
28
+ import { Checkbox } from "./wj-checkbox.js";
29
+ import { Chip } from "./wj-chip.js";
30
+ import { Col } from "./wj-col.js";
31
+ import { ColorPicker } from "./wj-color-picker.js";
32
+ import { Container } from "./wj-container.js";
33
+ import { CopyButton } from "./wj-copy-button.js";
34
+ import { Dialog } from "./wj-dialog.js";
35
+ import { Divider } from "./wj-divider.js";
36
+ import { Dropdown } from "./wj-dropdown.js";
37
+ import { FileUpload } from "./wj-file-upload.js";
38
+ import { FileUploadItem } from "./wj-file-upload-item.js";
39
+ import { Footer } from "./wj-footer.js";
40
+ import { FormatDigital } from "./wj-format-digital.js";
41
+ import { Grid } from "./wj-grid.js";
42
+ import { Header } from "./wj-header.js";
43
+ import { Icon } from "./wj-icon.js";
44
+ import { IconPicker } from "./wj-icon-picker.js";
45
+ import { Img } from "./wj-img.js";
46
+ import { ImgComparer } from "./wj-img-comparer.js";
47
+ import { InfiniteScroll } from "./wj-infinite-scroll.js";
48
+ import { Input } from "./wj-input.js";
49
+ import { InputFile } from "./wj-input-file.js";
50
+ import { Item } from "./wj-item.js";
51
+ import { Label } from "./wj-label.js";
52
+ import { List } from "./wj-list.js";
53
+ import { Main } from "./wj-main.js";
54
+ import { Masonry } from "./wj-masonry.js";
55
+ import { Menu } from "./wj-menu.js";
56
+ import { MenuButton } from "./wj-menu-button.js";
57
+ import { MenuItem } from "./wj-menu-item.js";
58
+ import { MenuLabel } from "./wj-menu-label.js";
59
+ import { Popup } from "./wj-popup.js";
60
+ import { ProgressBar } from "./wj-progress-bar.js";
61
+ import { Radio } from "./wj-radio.js";
62
+ import { RadioGroup } from "./wj-radio-group.js";
63
+ import { Rate } from "./wj-rate.js";
64
+ import { RelativeTime } from "./wj-relative-time.js";
65
+ import { Route } from "./wj-route.js";
66
+ import { Routerx } from "./wj-routerx.js";
67
+ import { RouterLink } from "./wj-router-link.js";
65
68
  import "./wj-router-outlet.js";
66
- import { Row as sr } from "./wj-row.js";
67
- import { Slider as lr } from "./wj-slider.js";
68
- import { SplitView as cr } from "./wj-split-view.js";
69
- import { Textarea as mr } from "./wj-textarea.js";
70
- import { Thumbnail as hr } from "./wj-thumbnail.js";
71
- import { Toast as wr } from "./wj-toast.js";
72
- import { Toggle as fr } from "./wj-toggle.js";
73
- import { Toolbar as xr } from "./wj-toolbar.js";
74
- import { ToolbarAction as Ar } from "./wj-toolbar-action.js";
75
- import { Tooltip as Er } from "./wj-tooltip.js";
76
- import { VisuallyHidden as Sr } from "./wj-visually-hidden.js";
77
- const C = {
69
+ import { Row } from "./wj-row.js";
70
+ import { Slider } from "./wj-slider.js";
71
+ import { SplitView } from "./wj-split-view.js";
72
+ import { Textarea } from "./wj-textarea.js";
73
+ import { Thumbnail } from "./wj-thumbnail.js";
74
+ import { Toast } from "./wj-toast.js";
75
+ import { Toggle } from "./wj-toggle.js";
76
+ import { Toolbar } from "./wj-toolbar.js";
77
+ import { ToolbarAction } from "./wj-toolbar-action.js";
78
+ import { Tooltip } from "./wj-tooltip.js";
79
+ import { VisuallyHidden } from "./wj-visually-hidden.js";
80
+ const light = "";
81
+ const dark = "";
82
+ const sk = {
78
83
  code: "sk",
79
84
  name: "Slovak",
80
85
  dir: "ltr",
81
- welcome: "Vitajte",
86
+ "welcome": "Vitajte",
82
87
  "wj.file.upload.button": "Vybrať súbor",
83
88
  "wj.file.upload.uploaded": "Nahraných: ",
84
89
  "wj.file.upload.from": "z"
85
90
  };
86
- x.registerTranslation(C);
87
- const S = {
91
+ Localizer.registerTranslation(sk);
92
+ const en = {
88
93
  code: "en",
89
94
  name: "English",
90
95
  dir: "ltr",
91
- welcome: "Welcome",
96
+ "welcome": "Welcome",
92
97
  "wj.file.upload.button": "Browse files",
93
98
  "wj.file.upload.uploaded": "Uploaded: ",
94
99
  "wj.file.upload.from": "from"
95
100
  };
96
- x.registerTranslation(S);
97
- const T = `:host{color:red}
98
- `;
99
- class k extends u {
101
+ Localizer.registerTranslation(en);
102
+ const styles$7 = "/*\n[ WJ Example Element ]\n*/\n:host {\n color: red;\n}";
103
+ class ExampleElement extends WJElement {
100
104
  constructor() {
101
105
  super();
102
- c(this, "className", "ExampleElement");
106
+ __publicField(this, "className", "ExampleElement");
103
107
  }
104
108
  static get cssStyleSheet() {
105
- return T;
109
+ return styles$7;
106
110
  }
107
111
  static get observedAttributes() {
108
112
  return [];
109
113
  }
110
114
  setupAttributes() {
111
- this.isShadowRoot = "open", E.setAttributesToElement(this, {
112
- test: "test"
115
+ this.isShadowRoot = "open";
116
+ WjElementUtils.setAttributesToElement(this, {
117
+ "test": "test"
113
118
  });
114
119
  }
115
- beforeDraw(t, e, a) {
120
+ beforeDraw(context, store2, params) {
116
121
  }
117
- draw(t, e, a) {
118
- console.log(t, e, a);
119
- let o = document.createDocumentFragment(), r = document.createElement("div");
120
- return r.innerHTML = a.text, o.appendChild(r), o;
122
+ draw(context, store2, params) {
123
+ console.log(context, store2, params);
124
+ let fragment = document.createDocumentFragment();
125
+ let element = document.createElement("div");
126
+ element.innerHTML = params.text;
127
+ fragment.appendChild(element);
128
+ return fragment;
121
129
  }
122
- afterDraw(t, e, a) {
130
+ afterDraw(context, store2, params) {
123
131
  console.log("afterDraw", this.params);
124
132
  }
125
133
  }
126
- customElements.get("wj-example-element") || window.customElements.define("wj-example-element", k);
127
- const L = `/*!
128
- * direction.scss
129
- */:host{display:inline-block}:host .native-button-group{display:flex;flex-wrap:nowrap;line-height:1}:host slot{display:contents}::slotted(wj-button){margin:0}
130
- `;
131
- class O extends u {
134
+ customElements.get("wj-example-element") || window.customElements.define("wj-example-element", ExampleElement);
135
+ const styles$6 = "/*!\n* direction.scss\n*/\n/* Skeleton Variables */\n/*\n[ Button Group ]\n*/\n:host {\n display: inline-block;\n}\n:host .native-button-group {\n display: flex;\n flex-wrap: nowrap;\n line-height: 1;\n}\n:host slot {\n display: contents;\n}\n::slotted(wj-button) {\n margin: 0;\n}";
136
+ class NavMenu extends WJElement {
132
137
  constructor() {
133
138
  super();
134
- c(this, "className", "ButtonGroup");
139
+ __publicField(this, "className", "ButtonGroup");
135
140
  }
136
141
  static get cssStyleSheet() {
137
- return L;
142
+ return styles$6;
138
143
  }
139
144
  static get observedAttributes() {
140
145
  return [];
@@ -142,30 +147,35 @@ class O extends u {
142
147
  setupAttributes() {
143
148
  this.isShadowRoot = "open";
144
149
  }
145
- draw(t, e, a) {
146
- let o = document.createDocumentFragment(), r = document.createElement("div");
147
- return r.classList.add("native-button-group"), r.setAttribute("part", "native"), this.slotElement = document.createElement("slot"), r.appendChild(this.slotElement), o.appendChild(r), o;
150
+ draw(context, store2, params) {
151
+ let fragment = document.createDocumentFragment();
152
+ let element = document.createElement("div");
153
+ element.classList.add("native-button-group");
154
+ element.setAttribute("part", "native");
155
+ this.slotElement = document.createElement("slot");
156
+ element.appendChild(this.slotElement);
157
+ fragment.appendChild(element);
158
+ return fragment;
148
159
  }
149
160
  }
150
- customElements.get("wj-button-group") || window.customElements.define("wj-button-group", O);
151
- const D = `:host{--wj-option-padding-top: .5rem;--wj-option-padding-bottom: .5rem;--wj-option-highlighted: var(--wj-color-contrast-3);display:block}:host wj-icon{visibility:hidden;margin-inline:.5rem}:host([selected]) wj-icon{visibility:visible}.native-option{display:flex;align-items:center;padding-top:var(--wj-option-padding-top);padding-bottom:var(--wj-option-padding-bottom)}.native-option:hover{background-color:var(--wj-option-highlighted)}::slotted([slot=start]){flex:0 0 auto;display:flex;align-items:center;margin-inline-end:.5rem}::slotted([slot=end]){flex:0 0 auto;display:flex;align-items:center;margin-inline:auto .5rem}
152
- `;
153
- class R extends u {
161
+ customElements.get("wj-button-group") || window.customElements.define("wj-button-group", NavMenu);
162
+ const styles$5 = "/*\n[ WJ Option ]\n*/\n:host {\n --wj-option-padding-top: .5rem;\n --wj-option-padding-bottom: .5rem;\n --wj-option-highlighted: var(--wj-color-contrast-3);\n display: block;\n}\n:host wj-icon {\n visibility: hidden;\n margin-inline: 0.5rem;\n}\n\n:host([selected]) wj-icon {\n visibility: visible;\n}\n\n.native-option {\n display: flex;\n align-items: center;\n padding-top: var(--wj-option-padding-top);\n padding-bottom: var(--wj-option-padding-bottom);\n}\n\n.native-option:hover {\n background-color: var(--wj-option-highlighted);\n}\n\n::slotted([slot=start]) {\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n margin-inline-end: 0.5rem;\n}\n\n::slotted([slot=end]) {\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n margin-inline: auto 0.5rem;\n}";
163
+ class Option extends WJElement {
154
164
  constructor() {
155
165
  super();
156
- c(this, "className", "Option");
166
+ __publicField(this, "className", "Option");
157
167
  }
158
- set selected(t) {
159
- return t ? this.setAttribute("selected", "") : this.removeAttribute("selected");
168
+ set selected(value) {
169
+ return value ? this.setAttribute("selected", "") : this.removeAttribute("selected");
160
170
  }
161
- set value(t) {
162
- this.setAttribute("value", t);
171
+ set value(value) {
172
+ this.setAttribute("value", value);
163
173
  }
164
- set text(t) {
165
- this.innerText = t;
174
+ set text(value) {
175
+ this.innerText = value;
166
176
  }
167
177
  static get cssStyleSheet() {
168
- return D;
178
+ return styles$5;
169
179
  }
170
180
  static get observedAttributes() {
171
181
  return [];
@@ -173,25 +183,34 @@ class R extends u {
173
183
  setupAttributes() {
174
184
  this.isShadowRoot = "open";
175
185
  }
176
- draw(t, e, a) {
177
- let o = document.createDocumentFragment(), r = document.createElement("div");
178
- r.classList.add("native-option"), r.setAttribute("part", "native");
179
- let n = document.createElement("wj-icon");
180
- n.setAttribute("name", "check");
181
- let p = document.createElement("slot");
182
- p.setAttribute("name", "start");
183
- let d = document.createElement("slot"), l = document.createElement("slot");
184
- return l.setAttribute("name", "end"), r.appendChild(n), r.appendChild(p), r.appendChild(d), r.appendChild(l), o.appendChild(r), o;
186
+ draw(context, store2, params) {
187
+ let fragment = document.createDocumentFragment();
188
+ let element = document.createElement("div");
189
+ element.classList.add("native-option");
190
+ element.setAttribute("part", "native");
191
+ let icon = document.createElement("wj-icon");
192
+ icon.setAttribute("name", "check");
193
+ let start = document.createElement("slot");
194
+ start.setAttribute("name", "start");
195
+ let slot = document.createElement("slot");
196
+ let end = document.createElement("slot");
197
+ end.setAttribute("name", "end");
198
+ element.appendChild(icon);
199
+ element.appendChild(start);
200
+ element.appendChild(slot);
201
+ element.appendChild(end);
202
+ fragment.appendChild(element);
203
+ return fragment;
185
204
  }
186
205
  afterDraw() {
187
- f.addListener(this, "click", "wj:option-change");
206
+ event.addListener(this, "click", "wj:option-change");
188
207
  }
189
208
  }
190
- customElements.get("wj-option") || window.customElements.define("wj-option", R);
191
- class z extends u {
209
+ customElements.get("wj-option") || window.customElements.define("wj-option", Option);
210
+ class Options extends WJElement {
192
211
  constructor() {
193
212
  super();
194
- c(this, "className", "Options");
213
+ __publicField(this, "className", "Options");
195
214
  }
196
215
  static get cssStyleSheet() {
197
216
  return styles;
@@ -204,52 +223,66 @@ class z extends u {
204
223
  }
205
224
  async beforeDraw() {
206
225
  this.response = await this.getPages();
207
- let t = document.createDocumentFragment();
208
- this.response.forEach((e, a) => {
209
- let o = document.createElement("wj-option");
210
- o.setAttribute("value", e[this.itemValue] || e.value), o.innerText = e[this.itemText] || e.text, t.appendChild(o);
211
- }), this.parentElement.appendChild(t), f.dispatchCustomEvent(this, "wj:options-load", {});
212
- }
213
- async getPages(t) {
214
- const e = await fetch(this.url);
215
- if (!e.ok)
216
- throw new Error(`An error occurred: ${e.status}`);
217
- return await e.json();
226
+ let fragment = document.createDocumentFragment();
227
+ this.response.forEach((item, index) => {
228
+ let option = document.createElement("wj-option");
229
+ option.setAttribute("value", item[this.itemValue] || item.value);
230
+ option.innerText = item[this.itemText] || item.text;
231
+ fragment.appendChild(option);
232
+ });
233
+ this.parentElement.appendChild(fragment);
234
+ event.dispatchCustomEvent(this, "wj:options-load", {});
235
+ }
236
+ async getPages(page) {
237
+ const response = await fetch(this.url);
238
+ if (!response.ok) {
239
+ throw new Error(`An error occurred: ${response.status}`);
240
+ }
241
+ return await response.json();
218
242
  }
219
243
  }
220
- customElements.get("wj-options") || window.customElements.define("wj-options", z);
221
- const F = `:host{--wj-select-border-width: 1px;--wj-select-border-style: solid;--wj-select-border-color: var(--wj-border-color);--wj-select-options-border-width: 1px;--wj-select-options-border-style: var(--wj-border-style);--wj-select-options-border-color: var(--wj-border-color);--wj-select-background: var(--wj-background);--wj-select-line-height: 20px;--wj-select-color: var(--wj-color);--wj-select-border-radius: var(--wj-border-radius-medium);width:100%;display:block}:host [slot=arrow]{transform:rotate(0);transition:all .2s ease-in}.native-select.default .wrapper{display:block;border-width:var(--wj-select-border-width);border-style:var(--wj-select-border-style);border-color:var(--wj-select-border-color);border-radius:var(--wj-select-border-radius);padding-inline:.5rem;padding-top:.25rem;padding-bottom:.25rem}.native-select.default .input-wrapper{padding:0;min-height:25px;margin-top:-4px}.native-select.default.focused wj-label{opacity:.67;font-size:12px;letter-spacing:normal}.native-select.default wj-label{margin:0;display:block;opacity:1;cursor:text;transition:opacity .2s ease 0s;line-height:var(--wj-select-line-height)}.native-select.default wj-label.fade{opacity:.5;font-size:12px;letter-spacing:normal}.native-select.standard .input-wrapper{border-width:var(--wj-select-border-width);border-style:var(--wj-select-border-style);border-color:var(--wj-select-border-color);border-radius:var(--wj-select-border-radius);width:100%}.wrapper{display:flex;width:100%}.input-wrapper{display:grid;grid-template-columns:1fr auto auto;align-items:center;background-color:var(--wj-select-background);min-height:28px;color:var(--wj-select-color);line-height:var(--wj-select-line-height);-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:2px .5rem;font-size:14px;font-weight:400;vertical-align:middle}input{border:medium;height:25px;min-height:25px;padding:0;background:none;box-shadow:none;width:100%;outline:0}::placeholder{opacity:1}:host [active] .input-wrapper{border-radius:var(--wj-select-border-radius) var(--wj-select-border-radius) 0 0}:host [active] [slot=arrow]{transform:rotate(180deg);transition:all .2s ease-in}.option-wrapper{border-width:var(--wj-select-options-border-width);border-style:var(--wj-select-options-border-style);border-color:var(--wj-select-options-border-color);border-radius:0 0 var(--wj-select-border-radius) var(--wj-select-border-radius);margin-top:-1px;background:var(--wj-select-background);overflow:auto}:host([multiple]) input{position:absolute;z-index:-1;top:0;left:0;width:0;height:0;opacity:0}:host([multiple]) .chips{display:flex;flex:1;align-items:center;flex-wrap:wrap}:host([disabled]) .input-wrapper{opacity:.5;pointer-events:none;cursor:not-allowed}.counter{padding-inline:.5rem}wj-chip{--wj-chip-margin: 0 .25rem 0 0}wj-button{--wj-padding-top: .25rem;--wj-padding-start: .25rem;--wj-padding-end: .25rem;--wj-padding-bottom: .25rem;--wj-button-margin-inline: 0 .25rem}
222
- `;
223
- class M extends u {
244
+ customElements.get("wj-options") || window.customElements.define("wj-options", Options);
245
+ const styles$4 = "/*\n[ WJ Select ]\n*/\n:host {\n --wj-select-border-width: 1px;\n --wj-select-border-style: solid;\n --wj-select-border-color: var(--wj-border-color);\n --wj-select-options-border-width: 1px;\n --wj-select-options-border-style: var(--wj-border-style);\n --wj-select-options-border-color: var(--wj-border-color);\n --wj-select-background: var(--wj-background);\n --wj-select-line-height: 20px;\n --wj-select-color: var(--wj-color);\n --wj-select-border-radius: var(--wj-border-radius-medium);\n width: 100%;\n display: block;\n}\n:host [slot=arrow] {\n transform: rotate(0deg);\n transition: all 0.2s ease-in;\n}\n\n.native-select.default .wrapper {\n display: block;\n border-width: var(--wj-select-border-width);\n border-style: var(--wj-select-border-style);\n border-color: var(--wj-select-border-color);\n border-radius: var(--wj-select-border-radius);\n padding-inline: 0.5rem;\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n}\n.native-select.default .input-wrapper {\n padding: 0;\n min-height: 25px;\n margin-top: -4px;\n}\n.native-select.default.focused wj-label {\n opacity: 0.67;\n font-size: 12px;\n letter-spacing: normal;\n}\n.native-select.default wj-label {\n margin: 0;\n display: block;\n opacity: 1;\n cursor: text;\n transition: opacity 0.2s ease 0s;\n line-height: var(--wj-select-line-height);\n}\n.native-select.default wj-label.fade {\n opacity: 0.5;\n font-size: 12px;\n letter-spacing: normal;\n}\n.native-select.standard .input-wrapper {\n border-width: var(--wj-select-border-width);\n border-style: var(--wj-select-border-style);\n border-color: var(--wj-select-border-color);\n border-radius: var(--wj-select-border-radius);\n width: 100%;\n}\n\n.wrapper {\n display: flex;\n width: 100%;\n}\n\n.input-wrapper {\n display: grid;\n grid-template-columns: 1fr auto auto;\n align-items: center;\n background-color: var(--wj-select-background);\n min-height: 28px;\n color: var(--wj-select-color);\n line-height: var(--wj-select-line-height);\n appearance: none;\n padding: 2px 0.5rem;\n font-size: 14px;\n font-weight: normal;\n vertical-align: middle;\n}\n\ninput {\n border: medium;\n height: 25px;\n min-height: 25px;\n padding: 0;\n background: none;\n box-shadow: none;\n width: 100%;\n outline: 0;\n}\n\n::placeholder {\n opacity: 1;\n}\n\n:host [active] .input-wrapper {\n border-radius: var(--wj-select-border-radius) var(--wj-select-border-radius) 0 0;\n}\n:host [active] [slot=arrow] {\n transform: rotate(180deg);\n transition: all 0.2s ease-in;\n}\n\n.option-wrapper {\n border-width: var(--wj-select-options-border-width);\n border-style: var(--wj-select-options-border-style);\n border-color: var(--wj-select-options-border-color);\n border-radius: 0 0 var(--wj-select-border-radius) var(--wj-select-border-radius);\n margin-top: -1px;\n background: var(--wj-select-background);\n overflow: auto;\n}\n\n:host([multiple]) input {\n position: absolute;\n z-index: -1;\n top: 0;\n left: 0;\n width: 0;\n height: 0;\n opacity: 0;\n}\n\n:host([multiple]) .chips {\n display: flex;\n flex: 1;\n align-items: center;\n flex-wrap: wrap;\n}\n\n:host([disabled]) .input-wrapper {\n opacity: 0.5;\n pointer-events: none;\n cursor: not-allowed;\n}\n\n.counter {\n padding-inline: 0.5rem;\n}\n\nwj-chip {\n --wj-chip-margin: 0 .25rem 0 0;\n}\n\nwj-button {\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}";
246
+ class Select extends WJElement {
224
247
  constructor() {
225
248
  super();
226
- c(this, "className", "Select");
227
- c(this, "optionChange", (t) => {
228
- let e = this.getAllOptions();
229
- this.hasAttribute("multiple") || (e.forEach((a) => {
230
- a.selected = !1, a.removeAttribute("selected");
231
- }), this.popup.removeAttribute("active")), t.target.selected = !t.target.hasAttribute("selected"), this.selections(t.target);
249
+ __publicField(this, "className", "Select");
250
+ __publicField(this, "optionChange", (e) => {
251
+ let allOptions = this.getAllOptions();
252
+ if (!this.hasAttribute("multiple")) {
253
+ allOptions.forEach((option) => {
254
+ option.selected = false;
255
+ option.removeAttribute("selected");
256
+ });
257
+ this.popup.removeAttribute("active");
258
+ }
259
+ e.target.selected = !e.target.hasAttribute("selected");
260
+ this.selections(e.target);
232
261
  });
233
- c(this, "removeChip", (t) => {
234
- let e = t.target.option;
235
- e.selected = !1, e.removeAttribute("selected"), t.target.parentNode.removeChild(t.target), this.selections(null, 0);
262
+ __publicField(this, "removeChip", (e) => {
263
+ let option = e.target.option;
264
+ option.selected = false;
265
+ option.removeAttribute("selected");
266
+ e.target.parentNode.removeChild(e.target);
267
+ this.selections(null, 0);
236
268
  });
237
- this._selected = [], this.counterEl = null;
269
+ this._selected = [];
270
+ this.counterEl = null;
238
271
  }
239
- set selected(t) {
240
- this._selected = t;
272
+ set selected(value) {
273
+ this._selected = value;
241
274
  }
242
275
  get selected() {
243
276
  return this.getSelected();
244
277
  }
245
- set trigger(t) {
246
- this.setAttribute("trigger", t);
278
+ set trigger(value) {
279
+ this.setAttribute("trigger", value);
247
280
  }
248
281
  get trigger() {
249
282
  return this.getAttribute("trigger") || "click";
250
283
  }
251
284
  static get cssStyleSheet() {
252
- return F;
285
+ return styles$4;
253
286
  }
254
287
  static get observedAttributes() {
255
288
  return ["active", "value"];
@@ -257,42 +290,97 @@ class M extends u {
257
290
  setupAttributes() {
258
291
  this.isShadowRoot = "open";
259
292
  }
260
- draw(t, e, a) {
261
- let o = document.createDocumentFragment();
293
+ draw(context, store2, params) {
294
+ let fragment = document.createDocumentFragment();
262
295
  this.classList.add("wj-placement", "wj-" + this.placement || "wj-start");
263
- let r = document.createElement("div");
264
- r.setAttribute("part", "native"), r.classList.add("native-select", this.variant || "default");
265
- let n = document.createElement("div");
266
- n.classList.add("wrapper"), n.setAttribute("slot", "anchor");
267
- let p = document.createElement("wj-label");
268
- p.innerText = this.label || "";
269
- let d = document.createElement("div");
270
- d.classList.add("input-wrapper");
271
- let l = document.createElement("input");
272
- l.setAttribute("type", "text"), l.setAttribute("part", "input"), l.setAttribute("autocomplete", "off"), l.setAttribute("readonly", ""), l.setAttribute("placeholder", this.placeholder || "");
273
- let h = document.createElement("wj-icon");
274
- h.setAttribute("name", "chevron-down"), h.setAttribute("slot", "arrow");
275
- let g = document.createElement("div");
276
- g.classList.add("chips"), g.innerText = this.placeholder || "";
277
- let b = document.createElement("div");
278
- b.classList.add("option-wrapper"), b.style.setProperty("height", this.maxHeight || "auto");
279
- let j = document.createElement("slot"), w = document.createElement("wj-button");
280
- w.setAttribute("fill", "link"), w.setAttribute("part", "clear");
281
- let v = document.createElement("wj-icon");
282
- v.setAttribute("name", "x"), w.appendChild(v);
283
- let m = document.createElement("wj-popup");
284
- return m.setAttribute("placement", "bottom-start"), m.setAttribute("manual", ""), m.setAttribute("size", ""), this.hasAttribute("disabled") && m.setAttribute("disabled", ""), this.variant === "standard" ? this.hasAttribute("label") && r.appendChild(p) : n.appendChild(p), d.appendChild(l), this.hasAttribute("multiple") && d.appendChild(g), this.hasAttribute("clearable") && d.appendChild(w), d.appendChild(h), b.appendChild(j), n.appendChild(d), m.appendChild(n), m.appendChild(b), this.trigger === "click" && m.setAttribute("manual", ""), r.appendChild(m), this.native = r, this.popup = m, this.labelElement = p, this.input = l, this.optionsWrapper = b, this.chips = g, this.clear = w, o.appendChild(r), o;
285
- }
286
- afterDraw(t, e, a) {
287
- this.input.addEventListener("focus", (o) => {
288
- this.labelElement.classList.add("fade"), this.native.classList.add("focused");
289
- }), this.input.addEventListener("blur", (o) => {
290
- this.native.classList.remove("focused"), o.target.value || this.labelElement.classList.remove("fade");
291
- }), this.addEventListener("wj:option-change", this.optionChange), this.clear.addEventListener("wj:button-click", (o) => {
292
- this.getAllOptions().forEach((r) => {
293
- r.selected = !1, r.removeAttribute("selected");
294
- }), this.selections(), o.stopPropagation();
295
- }), this.selections(), this.optionsWrapper.addEventListener("wj:options-load", (o) => {
296
+ let native = document.createElement("div");
297
+ native.setAttribute("part", "native");
298
+ native.classList.add("native-select", this.variant || "default");
299
+ let wrapper = document.createElement("div");
300
+ wrapper.classList.add("wrapper");
301
+ wrapper.setAttribute("slot", "anchor");
302
+ let label = document.createElement("wj-label");
303
+ label.innerText = this.label || "";
304
+ let inputWrapper = document.createElement("div");
305
+ inputWrapper.classList.add("input-wrapper");
306
+ let input = document.createElement("input");
307
+ input.setAttribute("type", "text");
308
+ input.setAttribute("part", "input");
309
+ input.setAttribute("autocomplete", "off");
310
+ input.setAttribute("readonly", "");
311
+ input.setAttribute("placeholder", this.placeholder || "");
312
+ let arrow = document.createElement("wj-icon");
313
+ arrow.setAttribute("name", "chevron-down");
314
+ arrow.setAttribute("slot", "arrow");
315
+ let chips = document.createElement("div");
316
+ chips.classList.add("chips");
317
+ chips.innerText = this.placeholder || "";
318
+ let optionsWrapper = document.createElement("div");
319
+ optionsWrapper.classList.add("option-wrapper");
320
+ optionsWrapper.style.setProperty("height", this.maxHeight || "auto");
321
+ let slot = document.createElement("slot");
322
+ let clear = document.createElement("wj-button");
323
+ clear.setAttribute("fill", "link");
324
+ clear.setAttribute("part", "clear");
325
+ let clearIcon = document.createElement("wj-icon");
326
+ clearIcon.setAttribute("name", "x");
327
+ clear.appendChild(clearIcon);
328
+ let popup = document.createElement("wj-popup");
329
+ popup.setAttribute("placement", "bottom-start");
330
+ popup.setAttribute("manual", "");
331
+ popup.setAttribute("size", "");
332
+ if (this.hasAttribute("disabled"))
333
+ popup.setAttribute("disabled", "");
334
+ if (this.variant === "standard") {
335
+ if (this.hasAttribute("label"))
336
+ native.appendChild(label);
337
+ } else {
338
+ wrapper.appendChild(label);
339
+ }
340
+ inputWrapper.appendChild(input);
341
+ if (this.hasAttribute("multiple"))
342
+ inputWrapper.appendChild(chips);
343
+ if (this.hasAttribute("clearable"))
344
+ inputWrapper.appendChild(clear);
345
+ inputWrapper.appendChild(arrow);
346
+ optionsWrapper.appendChild(slot);
347
+ wrapper.appendChild(inputWrapper);
348
+ popup.appendChild(wrapper);
349
+ popup.appendChild(optionsWrapper);
350
+ if (this.trigger === "click")
351
+ popup.setAttribute("manual", "");
352
+ native.appendChild(popup);
353
+ this.native = native;
354
+ this.popup = popup;
355
+ this.labelElement = label;
356
+ this.input = input;
357
+ this.optionsWrapper = optionsWrapper;
358
+ this.chips = chips;
359
+ this.clear = clear;
360
+ fragment.appendChild(native);
361
+ return fragment;
362
+ }
363
+ afterDraw(context, store2, params) {
364
+ this.input.addEventListener("focus", (e) => {
365
+ this.labelElement.classList.add("fade");
366
+ this.native.classList.add("focused");
367
+ });
368
+ this.input.addEventListener("blur", (e) => {
369
+ this.native.classList.remove("focused");
370
+ if (!e.target.value)
371
+ this.labelElement.classList.remove("fade");
372
+ });
373
+ this.addEventListener("wj:option-change", this.optionChange);
374
+ this.clear.addEventListener("wj:button-click", (e) => {
375
+ this.getAllOptions().forEach((option) => {
376
+ option.selected = false;
377
+ option.removeAttribute("selected");
378
+ });
379
+ this.selections();
380
+ e.stopPropagation();
381
+ });
382
+ this.selections();
383
+ this.optionsWrapper.addEventListener("wj:options-load", (e) => {
296
384
  this.optionsWrapper.scrollTo(0, 0);
297
385
  });
298
386
  }
@@ -302,107 +390,160 @@ class M extends u {
302
390
  getSelectedOptions() {
303
391
  return this.querySelectorAll("wj-option[selected]");
304
392
  }
305
- getSelected(t) {
306
- let e = this.getSelectedOptions();
307
- return e = Array.isArray(e) ? e : Array.from(e), e = e.map((a) => ({
308
- value: a.value,
309
- text: a.textContent.trim()
310
- })), e;
311
- }
312
- selectionChanged(t = null, e = 0) {
313
- if (this.hasAttribute("multiple"))
314
- this.value = this.selectedOptions.map((a) => a).reverse(), this.placeholder && e === 0 ? (this.chips.innerHTML = this.placeholder, this.input.value = "") : this.counterEl instanceof HTMLElement || e > +this.maxOptions ? this.counter() : t != null && this.chips.appendChild(this.getChip(t));
315
- else {
316
- let a = (t == null ? void 0 : t.textContent.trim()) || "";
317
- this.value = a, this.input.value = a;
393
+ getSelected(option) {
394
+ let selectedOptions = this.getSelectedOptions();
395
+ selectedOptions = Array.isArray(selectedOptions) ? selectedOptions : Array.from(selectedOptions);
396
+ selectedOptions = selectedOptions.map((option2) => {
397
+ return {
398
+ value: option2.value,
399
+ text: option2.textContent.trim()
400
+ };
401
+ });
402
+ return selectedOptions;
403
+ }
404
+ selectionChanged(option = null, length = 0) {
405
+ if (this.hasAttribute("multiple")) {
406
+ this.value = this.selectedOptions.map((el) => el).reverse();
407
+ if (this.placeholder && length === 0) {
408
+ this.chips.innerHTML = this.placeholder;
409
+ this.input.value = "";
410
+ } else {
411
+ if (this.counterEl instanceof HTMLElement || length > +this.maxOptions) {
412
+ this.counter();
413
+ } else {
414
+ if (option != null)
415
+ this.chips.appendChild(this.getChip(option));
416
+ }
417
+ }
418
+ } else {
419
+ let value = (option == null ? void 0 : option.textContent.trim()) || "";
420
+ this.value = value;
421
+ this.input.value = value;
318
422
  }
319
423
  }
320
- selections(t) {
321
- let e = this.getSelectedOptions();
322
- this.selectedOptions = Array.isArray(e) ? e : Array.from(e), this.selectedOptions.length >= +this.maxOptions && (this.counterEl = null), this.chips.innerHTML = "", this.selectedOptions.length > 0 ? this.selectedOptions.forEach((a, o) => {
323
- this.selectionChanged(a, ++o);
324
- }) : this.selectionChanged();
424
+ selections(option) {
425
+ let options = this.getSelectedOptions();
426
+ this.selectedOptions = Array.isArray(options) ? options : Array.from(options);
427
+ if (this.selectedOptions.length >= +this.maxOptions) {
428
+ this.counterEl = null;
429
+ }
430
+ this.chips.innerHTML = "";
431
+ if (this.selectedOptions.length > 0) {
432
+ this.selectedOptions.forEach((option2, index) => {
433
+ this.selectionChanged(option2, ++index);
434
+ });
435
+ } else {
436
+ this.selectionChanged();
437
+ }
325
438
  }
326
439
  counter() {
327
440
  if (this.counterEl && this.value.length === +this.maxOptions) {
328
- this.counterEl.remove(), this.counterEl = null;
441
+ this.counterEl.remove();
442
+ this.counterEl = null;
329
443
  return;
330
444
  }
331
- this.counterEl || (this.counterEl = document.createElement("span"), this.counterEl.classList.add("counter"), this.chips.appendChild(this.counterEl)), this.counterEl.innerText = `+${this.value.length - +this.maxOptions}`;
332
- }
333
- getChip(t) {
334
- let e = document.createElement("wj-chip");
335
- e.setAttribute("removable", ""), e.addEventListener("wj:chip-remove", this.removeChip), e.option = t;
336
- let a = document.createElement("wj-label");
337
- return a.innerText = t.textContent.trim(), e.appendChild(a), e;
445
+ if (!this.counterEl) {
446
+ this.counterEl = document.createElement("span");
447
+ this.counterEl.classList.add("counter");
448
+ this.chips.appendChild(this.counterEl);
449
+ }
450
+ this.counterEl.innerText = `+${this.value.length - +this.maxOptions}`;
451
+ }
452
+ getChip(option) {
453
+ let chip = document.createElement("wj-chip");
454
+ chip.setAttribute("removable", "");
455
+ chip.addEventListener("wj:chip-remove", this.removeChip);
456
+ chip.option = option;
457
+ let label = document.createElement("wj-label");
458
+ label.innerText = option.textContent.trim();
459
+ chip.appendChild(label);
460
+ return chip;
338
461
  }
339
462
  }
340
- customElements.get("wj-select") || window.customElements.define("wj-select", M);
341
- const N = `:host{--wj-font-size: 10px;--wj-tab-text-transfrom: uppercase;--wj-tab-font-weight: 500;--wj-tab-letter-spacing: .06em;--wj-tab-padding-inline: 1rem;--wj-tab-padding-top: .75rem;--wj-tab-padding-bottom: .75rem;--wj-tab-color-active: var(--wj-color-primary-11);--wj-tab-color-hover: var(--wj-color-primary-1);display:block;position:relative}:host a{display:block;align-items:center;white-space:nowrap;font-family:var(--wj-font-family-secondary);font-size:var(--wj-font-size);letter-spacing:var(--wj-tab-letter-spacing);text-transform:var(--wj-tab-text-transfrom);font-weight:var(--wj-tab-font-weight);text-decoration:none;padding-inline:var(--wj-tab-padding-inline);padding-top:var(--wj-tab-padding-top);padding-bottom:var(--wj-tab-padding-bottom);color:var(--wj-color)}:host a>svg{inline-size:1.5em;pointer-events:none}:host a:hover{background:var(--wj-tab-color-hover)}:host a:hover:after{display:block}:host a:after{content:" ";display:none;block-size:.15rem;writing-mode:var(--wj-tab-writing-mode);background:var(--wj-tab-color-active);position:absolute;bottom:var(--wj-tab-bottom);left:var(--wj-tab-start);right:var(--wj-tab-end);top:var(--wj-tab-top)}:host([disabled]) a{opacity:.5;cursor:not-allowed;background:inherit}:host([disabled]) a:after{display:none}:host([active]) a:after{display:block}
342
- `;
343
- class P extends u {
463
+ customElements.get("wj-select") || window.customElements.define("wj-select", Select);
464
+ const styles$3 = '/*\n[ WJ Tab ]\n*/\n:host {\n --wj-font-size: 10px;\n --wj-tab-text-transfrom: uppercase;\n --wj-tab-font-weight: 500;\n --wj-tab-letter-spacing: 0.06em;\n --wj-tab-padding-inline: 1rem;\n --wj-tab-padding-top: .75rem;\n --wj-tab-padding-bottom: .75rem;\n --wj-tab-color-active: var(--wj-color-primary-11);\n --wj-tab-color-hover: var(--wj-color-primary-1);\n display: block;\n position: relative;\n}\n:host a {\n display: block;\n align-items: center;\n white-space: nowrap;\n font-family: var(--wj-font-family-secondary);\n font-size: var(--wj-font-size);\n letter-spacing: var(--wj-tab-letter-spacing);\n text-transform: var(--wj-tab-text-transfrom);\n font-weight: var(--wj-tab-font-weight);\n text-decoration: none;\n padding-inline: var(--wj-tab-padding-inline);\n padding-top: var(--wj-tab-padding-top);\n padding-bottom: var(--wj-tab-padding-bottom);\n color: var(--wj-color);\n}\n:host a > svg {\n inline-size: 1.5em;\n pointer-events: none;\n}\n:host a:hover {\n background: var(--wj-tab-color-hover);\n}\n:host a:hover:after {\n display: block;\n}\n:host a:after {\n content: " ";\n display: none;\n block-size: 0.15rem;\n writing-mode: var(--wj-tab-writing-mode);\n background: var(--wj-tab-color-active);\n position: absolute;\n bottom: var(--wj-tab-bottom);\n left: var(--wj-tab-start);\n right: var(--wj-tab-end);\n top: var(--wj-tab-top);\n}\n\n:host([disabled]) a {\n opacity: 0.5;\n cursor: not-allowed;\n background: inherit;\n}\n:host([disabled]) a:after {\n display: none;\n}\n\n:host([active]) a:after {\n display: block;\n}';
465
+ class Tab extends WJElement {
344
466
  constructor() {
345
467
  super();
346
- c(this, "className", "Tab");
347
- this.last = !1;
468
+ __publicField(this, "className", "Tab");
469
+ this.last = false;
348
470
  }
349
471
  static get cssStyleSheet() {
350
- return N;
472
+ return styles$3;
351
473
  }
352
474
  setupAttributes() {
353
475
  this.isShadowRoot = "open";
354
476
  }
355
- draw(t, e, a) {
356
- let o = document.createDocumentFragment(), r = document.createElement("a");
357
- return r.setAttribute("href", "#" + this.panel), r.innerHTML = this.innerHTML, o.appendChild(r), o;
477
+ draw(context, store2, params) {
478
+ let fragment = document.createDocumentFragment();
479
+ let a = document.createElement("a");
480
+ a.setAttribute("href", "#" + this.panel);
481
+ a.innerHTML = this.innerHTML;
482
+ fragment.appendChild(a);
483
+ return fragment;
358
484
  }
359
485
  afterDraw() {
360
- f.addListener(this, "click", "wj:tab-change");
486
+ event.addListener(this, "click", "wj:tab-change");
361
487
  }
362
488
  }
363
- customElements.get("wj-tab") || window.customElements.define("wj-tab", P);
364
- const I = `:host{--wj-tab-top: 0;--wj-tab-start: 0;--wj-tab-end: 0;--wj-tab-bottom: 0}.native-tab-group{display:flex;flex-direction:column;overflow:hidden;position:relative}.native-tab-group>header{display:flex;flex-direction:column}.native-tab-group>header>nav{display:flex}.native-tab-group>section{width:100%}.native-tab-group>section>article{scroll-snap-align:start;overflow-y:auto;overscroll-behavior-y:contain}:host([variant=top]){--wj-tab-top: auto !important;--wj-tab-writing-mode: horizontal-tb}:host([variant=top]) .native-tab-group{flex-direction:column}:host([variant=top]) nav{border-bottom:1px solid var(--wj-border-color)}:host([variant=start]){--wj-tab-start: auto !important;--wj-tab-writing-mode: vertical-rl}:host([variant=start]) .native-tab-group{flex-direction:row}:host([variant=start]) nav{flex-direction:column;border-right:1px solid var(--wj-border-color)}:host([variant=end]){--wj-tab-writing-mode: vertical-rl}:host([variant=end]) .native-tab-group{flex-direction:row-reverse}:host([variant=end]) nav{flex-direction:column;border-left:1px solid var(--wj-border-color)}:host([variant=bottom]){--wj-tab-bottom: auto !important;--wj-tab-writing-mode: horizontal-tb}:host([variant=bottom]) .native-tab-group{flex-direction:column-reverse}:host([variant=bottom]) nav{border-top:1px solid var(--wj-border-color)}
365
- `;
366
- class $ extends u {
489
+ customElements.get("wj-tab") || window.customElements.define("wj-tab", Tab);
490
+ const styles$2 = "/*\n[ WJ Tab Group ]\n*/\n:host {\n --wj-tab-top: 0;\n --wj-tab-start: 0;\n --wj-tab-end: 0;\n --wj-tab-bottom: 0;\n}\n\n.native-tab-group {\n display: flex;\n flex-direction: column;\n overflow: hidden;\n position: relative;\n}\n\n.native-tab-group > header {\n display: flex;\n flex-direction: column;\n}\n.native-tab-group > header > nav {\n display: flex;\n}\n\n.native-tab-group > section {\n width: 100%;\n}\n.native-tab-group > section > article {\n scroll-snap-align: start;\n overflow-y: auto;\n overscroll-behavior-y: contain;\n}\n\n:host([variant=top]) {\n --wj-tab-top: auto !important;\n --wj-tab-writing-mode: horizontal-tb;\n}\n:host([variant=top]) .native-tab-group {\n flex-direction: column;\n}\n:host([variant=top]) nav {\n border-bottom: 1px solid var(--wj-border-color);\n}\n\n:host([variant=start]) {\n --wj-tab-start: auto !important;\n --wj-tab-writing-mode: vertical-rl;\n}\n:host([variant=start]) .native-tab-group {\n flex-direction: row;\n}\n:host([variant=start]) nav {\n flex-direction: column;\n border-right: 1px solid var(--wj-border-color);\n}\n\n:host([variant=end]) {\n --wj-tab-writing-mode: vertical-rl;\n}\n:host([variant=end]) .native-tab-group {\n flex-direction: row-reverse;\n}\n:host([variant=end]) nav {\n flex-direction: column;\n border-left: 1px solid var(--wj-border-color);\n}\n\n:host([variant=bottom]) {\n --wj-tab-bottom: auto !important;\n --wj-tab-writing-mode: horizontal-tb;\n}\n:host([variant=bottom]) .native-tab-group {\n flex-direction: column-reverse;\n}\n:host([variant=bottom]) nav {\n border-top: 1px solid var(--wj-border-color);\n}";
491
+ class TabGroup extends WJElement {
367
492
  constructor() {
368
493
  super();
369
- c(this, "className", "TabGroup");
494
+ __publicField(this, "className", "TabGroup");
370
495
  }
371
496
  static get cssStyleSheet() {
372
- return I;
497
+ return styles$2;
373
498
  }
374
499
  setupAttributes() {
375
500
  this.isShadowRoot = "open";
376
501
  }
377
- draw(t, e, a) {
378
- let o = document.createDocumentFragment(), r = document.createElement("div");
379
- r.classList.add("native-tab-group");
380
- let n = document.createElement("header");
381
- n.classList.add("scroll-snap-x");
382
- let p = document.createElement("nav"), d = document.createElement("section"), l = document.createElement("slot"), h = document.createElement("slot");
383
- return h.setAttribute("name", "nav"), n.appendChild(p), p.appendChild(h), d.appendChild(l), r.appendChild(n), r.appendChild(d), o.appendChild(r), o;
502
+ draw(context, store2, params) {
503
+ let fragment = document.createDocumentFragment();
504
+ let native = document.createElement("div");
505
+ native.classList.add("native-tab-group");
506
+ let header = document.createElement("header");
507
+ header.classList.add("scroll-snap-x");
508
+ let nav = document.createElement("nav");
509
+ let section = document.createElement("section");
510
+ let slot = document.createElement("slot");
511
+ let slotNav = document.createElement("slot");
512
+ slotNav.setAttribute("name", "nav");
513
+ header.appendChild(nav);
514
+ nav.appendChild(slotNav);
515
+ section.appendChild(slot);
516
+ native.appendChild(header);
517
+ native.appendChild(section);
518
+ fragment.appendChild(native);
519
+ return fragment;
384
520
  }
385
521
  afterDraw() {
386
- let t = this.getActiveTab(), e = t ? t[0].name : this.getTabAll()[0].panel;
387
- this.setActiveTab(e), this.addEventListener("wj:tab-change", (a) => {
388
- if (a.detail.context.hasAttribute("disabled"))
389
- return !1;
390
- this.setActiveTab(a.detail.context.panel);
522
+ let activeTab = this.getActiveTab();
523
+ let activeTabName = activeTab ? activeTab[0].name : this.getTabAll()[0].panel;
524
+ this.setActiveTab(activeTabName);
525
+ this.addEventListener("wj:tab-change", (e) => {
526
+ if (e.detail.context.hasAttribute("disabled"))
527
+ return false;
528
+ this.setActiveTab(e.detail.context.panel);
391
529
  });
392
530
  }
393
531
  removeActiveTab() {
394
- this.getPanelAll().forEach((t) => {
395
- t.removeAttribute("active");
396
- }), this.getTabAll().forEach((t) => {
397
- t.removeAttribute("active");
532
+ this.getPanelAll().forEach((el) => {
533
+ el.removeAttribute("active");
534
+ });
535
+ this.getTabAll().forEach((el) => {
536
+ el.removeAttribute("active");
398
537
  });
399
538
  }
400
- setActiveTab(t) {
401
- this.removeActiveTab(), this.querySelector(`[panel="${t}"]`).setAttribute("active", ""), this.querySelector(`[name="${t}"]`).setAttribute("active", "");
539
+ setActiveTab(tab) {
540
+ this.removeActiveTab();
541
+ this.querySelector(`[panel="${tab}"]`).setAttribute("active", "");
542
+ this.querySelector(`[name="${tab}"]`).setAttribute("active", "");
402
543
  }
403
544
  getActiveTab() {
404
- let t = Array.from(this.context.querySelectorAll("[active]"));
405
- return t.length > 0 ? t[0] : null;
545
+ let activeTabs = Array.from(this.context.querySelectorAll("[active]"));
546
+ return activeTabs.length > 0 ? activeTabs[0] : null;
406
547
  }
407
548
  getTabAll() {
408
549
  return this.context.querySelector('[name="nav"]').assignedElements();
@@ -411,107 +552,108 @@ class $ extends u {
411
552
  return Array.from(this.querySelectorAll("wj-tab-panel"));
412
553
  }
413
554
  }
414
- customElements.get("wj-tab-group") || window.customElements.define("wj-tab-group", $);
415
- const B = `:host{display:none;flex-wrap:wrap;align-items:center;padding:1rem}:host([active]){display:block}
416
- `;
417
- class H extends u {
555
+ customElements.get("wj-tab-group") || window.customElements.define("wj-tab-group", TabGroup);
556
+ const styles$1 = "/*\n[ WJ Tab Panel ]\n*/\n:host {\n display: none;\n flex-wrap: wrap;\n align-items: center;\n padding: 1rem;\n}\n\n:host([active]) {\n display: block;\n}";
557
+ class TabPanel extends WJElement {
418
558
  constructor() {
419
559
  super();
420
- c(this, "className", "TabPanel");
560
+ __publicField(this, "className", "TabPanel");
421
561
  }
422
562
  static get cssStyleSheet() {
423
- return B;
563
+ return styles$1;
424
564
  }
425
565
  setupAttributes() {
426
566
  this.isShadowRoot = "open";
427
567
  }
428
- draw(t, e, a) {
429
- let o = document.createDocumentFragment(), r = document.createElement("slot");
430
- return o.appendChild(r), o;
568
+ draw(context, store2, params) {
569
+ let fragment = document.createDocumentFragment();
570
+ let element = document.createElement("slot");
571
+ fragment.appendChild(element);
572
+ return fragment;
431
573
  }
432
574
  }
433
- customElements.get("wj-tab-panel") || window.customElements.define("wj-tab-panel", H);
575
+ customElements.get("wj-tab-panel") || window.customElements.define("wj-tab-panel", TabPanel);
434
576
  export {
435
- at as Animation,
436
- rt as Aside,
437
- st as Avatar,
438
- lt as Badge,
439
- ct as Breadcrumb,
440
- mt as Breadcrumbs,
441
- ht as Button,
442
- wt as ButtonGroup,
443
- ft as Card,
444
- xt as CardContent,
445
- At as CardControls,
446
- Et as CardHeader,
447
- St as CardSubtitle,
448
- kt as CardTitle,
449
- Ot as Carousel,
450
- Rt as CarouselItem,
451
- Ft as Checkbox,
452
- Nt as Chip,
453
- It as Col,
454
- Bt as ColorPicker,
455
- Wt as Container,
456
- Gt as CopyButton,
457
- Ut as Dialog,
458
- Jt as Divider,
459
- Qt as Dropdown,
460
- k as ExampleElement,
461
- Yt as FileUpload,
462
- te as FileUploadItem,
463
- re as Footer,
464
- ae as FormatDigital,
465
- se as Grid,
466
- le as Header,
467
- ce as Icon,
468
- me as IconPicker,
469
- he as Img,
470
- we as ImgComparer,
471
- fe as InfiniteScroll,
472
- xe as Input,
473
- Ae as InputFile,
474
- Ee as Item,
475
- Se as Label,
476
- ke as List,
477
- x as Localizer,
478
- Oe as Main,
479
- Re as Masonry,
480
- Fe as Menu,
481
- Ne as MenuButton,
482
- Ie as MenuItem,
483
- Be as MenuLabel,
484
- O as NavMenu,
485
- R as Option,
486
- z as Options,
487
- We as Popup,
488
- Ge as ProgressBar,
489
- Ue as Radio,
490
- Je as RadioGroup,
491
- Qe as Rate,
492
- Ye as RelativeTime,
493
- tr as Route,
494
- ar as RouterLink,
495
- rr as Routerx,
496
- sr as Row,
497
- M as Select,
498
- lr as Slider,
499
- cr as SplitView,
500
- P as Tab,
501
- $ as TabGroup,
502
- H as TabPanel,
503
- mr as Textarea,
504
- hr as Thumbnail,
505
- wr as Toast,
506
- fr as Toggle,
507
- xr as Toolbar,
508
- Ar as ToolbarAction,
509
- Er as Tooltip,
510
- Sr as VisuallyHidden,
511
- u as WJElement,
512
- X as bindRouterLinks,
513
- J as defaultStoreActions,
514
- tt as fetchAndParseCSS,
515
- K as store,
516
- Y as withRouterLinks
577
+ Animation,
578
+ Aside,
579
+ Avatar,
580
+ Badge,
581
+ Breadcrumb,
582
+ Breadcrumbs,
583
+ Button,
584
+ ButtonGroup,
585
+ Card,
586
+ CardContent,
587
+ CardControls,
588
+ CardHeader,
589
+ CardSubtitle,
590
+ CardTitle,
591
+ Carousel,
592
+ CarouselItem,
593
+ Checkbox,
594
+ Chip,
595
+ Col,
596
+ ColorPicker,
597
+ Container,
598
+ CopyButton,
599
+ Dialog,
600
+ Divider,
601
+ Dropdown,
602
+ ExampleElement,
603
+ FileUpload,
604
+ FileUploadItem,
605
+ Footer,
606
+ FormatDigital,
607
+ Grid,
608
+ Header,
609
+ Icon,
610
+ IconPicker,
611
+ Img,
612
+ ImgComparer,
613
+ InfiniteScroll,
614
+ Input,
615
+ InputFile,
616
+ Item,
617
+ Label,
618
+ List,
619
+ Localizer,
620
+ Main,
621
+ Masonry,
622
+ Menu,
623
+ MenuButton,
624
+ MenuItem,
625
+ MenuLabel,
626
+ NavMenu,
627
+ Option,
628
+ Options,
629
+ Popup,
630
+ ProgressBar,
631
+ Radio,
632
+ RadioGroup,
633
+ Rate,
634
+ RelativeTime,
635
+ Route,
636
+ RouterLink,
637
+ Routerx,
638
+ Row,
639
+ Select,
640
+ Slider,
641
+ SplitView,
642
+ Tab,
643
+ TabGroup,
644
+ TabPanel,
645
+ Textarea,
646
+ Thumbnail,
647
+ Toast,
648
+ Toggle,
649
+ Toolbar,
650
+ ToolbarAction,
651
+ Tooltip,
652
+ VisuallyHidden,
653
+ WJElement,
654
+ b as bindRouterLinks,
655
+ defaultStoreActions,
656
+ fetchAndParseCSS,
657
+ store,
658
+ w as withRouterLinks
517
659
  };