wj-elements 0.1.136 → 0.1.137

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 (202) hide show
  1. package/dist/dark.css +223 -0
  2. package/dist/infinite-scroll.element-XVJukzjy.js +272 -0
  3. package/dist/infinite-scroll.element-XVJukzjy.js.map +1 -0
  4. package/dist/light.css +534 -0
  5. package/dist/list.element-Ce1vIm1O.js +50 -0
  6. package/dist/list.element-Ce1vIm1O.js.map +1 -0
  7. package/dist/localize.js +70 -0
  8. package/dist/localize.js.map +1 -0
  9. package/dist/popup.element-tyYxow0p.js +1623 -0
  10. package/dist/popup.element-tyYxow0p.js.map +1 -0
  11. package/dist/router-links-CJnOdbas.js +150 -0
  12. package/dist/router-links-CJnOdbas.js.map +1 -0
  13. package/dist/styles.css +849 -0
  14. package/dist/wje-accordion-item.js +113 -0
  15. package/dist/wje-accordion-item.js.map +1 -0
  16. package/dist/wje-accordion.js +122 -0
  17. package/dist/wje-accordion.js.map +1 -0
  18. package/dist/wje-animation.js +4326 -0
  19. package/dist/wje-animation.js.map +1 -0
  20. package/dist/wje-aside.js +55 -0
  21. package/dist/wje-aside.js.map +1 -0
  22. package/dist/wje-avatar.js +90 -0
  23. package/dist/wje-avatar.js.map +1 -0
  24. package/dist/wje-badge.js +71 -0
  25. package/dist/wje-badge.js.map +1 -0
  26. package/dist/wje-breadcrumb.js +195 -0
  27. package/dist/wje-breadcrumb.js.map +1 -0
  28. package/dist/wje-breadcrumbs.js +140 -0
  29. package/dist/wje-breadcrumbs.js.map +1 -0
  30. package/dist/wje-button-group.js +85 -0
  31. package/dist/wje-button-group.js.map +1 -0
  32. package/dist/wje-button.js +352 -0
  33. package/dist/wje-button.js.map +1 -0
  34. package/dist/wje-card-content.js +48 -0
  35. package/dist/wje-card-content.js.map +1 -0
  36. package/dist/wje-card-controls.js +48 -0
  37. package/dist/wje-card-controls.js.map +1 -0
  38. package/dist/wje-card-header.js +48 -0
  39. package/dist/wje-card-header.js.map +1 -0
  40. package/dist/wje-card-subtitle.js +55 -0
  41. package/dist/wje-card-subtitle.js.map +1 -0
  42. package/dist/wje-card-title.js +55 -0
  43. package/dist/wje-card-title.js.map +1 -0
  44. package/dist/wje-card.js +56 -0
  45. package/dist/wje-card.js.map +1 -0
  46. package/dist/wje-carousel-item.js +63 -0
  47. package/dist/wje-carousel-item.js.map +1 -0
  48. package/dist/wje-carousel.js +380 -0
  49. package/dist/wje-carousel.js.map +1 -0
  50. package/dist/wje-checkbox.js +540 -0
  51. package/dist/wje-checkbox.js.map +1 -0
  52. package/dist/wje-chip.js +76 -0
  53. package/dist/wje-chip.js.map +1 -0
  54. package/dist/wje-col.js +38 -0
  55. package/dist/wje-col.js.map +1 -0
  56. package/dist/wje-color-picker.js +1339 -0
  57. package/dist/wje-color-picker.js.map +1 -0
  58. package/dist/wje-container.js +56 -0
  59. package/dist/wje-container.js.map +1 -0
  60. package/dist/wje-copy-button.js +218 -0
  61. package/dist/wje-copy-button.js.map +1 -0
  62. package/dist/wje-dialog.js +249 -0
  63. package/dist/wje-dialog.js.map +1 -0
  64. package/dist/wje-divider.js +55 -0
  65. package/dist/wje-divider.js.map +1 -0
  66. package/dist/wje-dropdown.js +194 -0
  67. package/dist/wje-dropdown.js.map +1 -0
  68. package/dist/wje-element.js +967 -0
  69. package/dist/wje-element.js.map +1 -0
  70. package/dist/wje-fetchAndParseCSS.js +60 -0
  71. package/dist/wje-fetchAndParseCSS.js.map +1 -0
  72. package/dist/wje-file-upload-item.js +140 -0
  73. package/dist/wje-file-upload-item.js.map +1 -0
  74. package/dist/wje-file-upload.js +552 -0
  75. package/dist/wje-file-upload.js.map +1 -0
  76. package/dist/wje-footer.js +52 -0
  77. package/dist/wje-footer.js.map +1 -0
  78. package/dist/wje-form.js +53 -0
  79. package/dist/wje-form.js.map +1 -0
  80. package/dist/wje-format-digital.js +146 -0
  81. package/dist/wje-format-digital.js.map +1 -0
  82. package/dist/wje-grid.js +54 -0
  83. package/dist/wje-grid.js.map +1 -0
  84. package/dist/wje-header.js +56 -0
  85. package/dist/wje-header.js.map +1 -0
  86. package/dist/wje-icon-picker.js +349 -0
  87. package/dist/wje-icon-picker.js.map +1 -0
  88. package/dist/wje-icon.js +191 -0
  89. package/dist/wje-icon.js.map +1 -0
  90. package/dist/wje-img-comparer.js +131 -0
  91. package/dist/wje-img-comparer.js.map +1 -0
  92. package/dist/wje-img.js +80 -0
  93. package/dist/wje-img.js.map +1 -0
  94. package/dist/wje-infinite-scroll.js +6 -0
  95. package/dist/wje-infinite-scroll.js.map +1 -0
  96. package/dist/wje-input-file.js +111 -0
  97. package/dist/wje-input-file.js.map +1 -0
  98. package/dist/wje-input.js +452 -0
  99. package/dist/wje-input.js.map +1 -0
  100. package/dist/wje-item.js +88 -0
  101. package/dist/wje-item.js.map +1 -0
  102. package/dist/wje-kanban.js +462 -0
  103. package/dist/wje-kanban.js.map +1 -0
  104. package/dist/wje-label.js +53 -0
  105. package/dist/wje-label.js.map +1 -0
  106. package/dist/wje-list.js +6 -0
  107. package/dist/wje-list.js.map +1 -0
  108. package/dist/wje-main.js +52 -0
  109. package/dist/wje-main.js.map +1 -0
  110. package/dist/wje-masonry.js +267 -0
  111. package/dist/wje-masonry.js.map +1 -0
  112. package/dist/wje-master.js +687 -0
  113. package/dist/wje-master.js.map +1 -0
  114. package/dist/wje-menu-button.js +60 -0
  115. package/dist/wje-menu-button.js.map +1 -0
  116. package/dist/wje-menu-item.js +545 -0
  117. package/dist/wje-menu-item.js.map +1 -0
  118. package/dist/wje-menu-label.js +55 -0
  119. package/dist/wje-menu-label.js.map +1 -0
  120. package/dist/wje-menu.js +72 -0
  121. package/dist/wje-menu.js.map +1 -0
  122. package/dist/wje-option.js +112 -0
  123. package/dist/wje-option.js.map +1 -0
  124. package/dist/wje-options.js +355 -0
  125. package/dist/wje-options.js.map +1 -0
  126. package/dist/wje-orgchart-group.js +72 -0
  127. package/dist/wje-orgchart-group.js.map +1 -0
  128. package/dist/wje-orgchart-item.js +98 -0
  129. package/dist/wje-orgchart-item.js.map +1 -0
  130. package/dist/wje-orgchart.js +49 -0
  131. package/dist/wje-orgchart.js.map +1 -0
  132. package/dist/wje-popup.js +6 -0
  133. package/dist/wje-popup.js.map +1 -0
  134. package/dist/wje-progress-bar.js +213 -0
  135. package/dist/wje-progress-bar.js.map +1 -0
  136. package/dist/wje-qr-code.js +2892 -0
  137. package/dist/wje-qr-code.js.map +1 -0
  138. package/dist/wje-radio-group.js +228 -0
  139. package/dist/wje-radio-group.js.map +1 -0
  140. package/dist/wje-radio.js +106 -0
  141. package/dist/wje-radio.js.map +1 -0
  142. package/dist/wje-rate.js +300 -0
  143. package/dist/wje-rate.js.map +1 -0
  144. package/dist/wje-relative-time.js +115 -0
  145. package/dist/wje-relative-time.js.map +1 -0
  146. package/dist/wje-reorder-dropzone.js +49 -0
  147. package/dist/wje-reorder-dropzone.js.map +1 -0
  148. package/dist/wje-reorder-handle.js +218 -0
  149. package/dist/wje-reorder-handle.js.map +1 -0
  150. package/dist/wje-reorder-item.js +61 -0
  151. package/dist/wje-reorder-item.js.map +1 -0
  152. package/dist/wje-reorder.js +281 -0
  153. package/dist/wje-reorder.js.map +1 -0
  154. package/dist/wje-route.js +43 -0
  155. package/dist/wje-route.js.map +1 -0
  156. package/dist/wje-router-link.js +64 -0
  157. package/dist/wje-router-link.js.map +1 -0
  158. package/dist/wje-router-outlet.js +192 -0
  159. package/dist/wje-router-outlet.js.map +1 -0
  160. package/dist/wje-routerx.js +1437 -0
  161. package/dist/wje-routerx.js.map +1 -0
  162. package/dist/wje-row.js +49 -0
  163. package/dist/wje-row.js.map +1 -0
  164. package/dist/wje-select.js +630 -0
  165. package/dist/wje-select.js.map +1 -0
  166. package/dist/wje-slider.js +221 -0
  167. package/dist/wje-slider.js.map +1 -0
  168. package/dist/wje-sliding-container.js +474 -0
  169. package/dist/wje-sliding-container.js.map +1 -0
  170. package/dist/wje-split-view.js +153 -0
  171. package/dist/wje-split-view.js.map +1 -0
  172. package/dist/wje-status.js +61 -0
  173. package/dist/wje-status.js.map +1 -0
  174. package/dist/wje-step.js +50 -0
  175. package/dist/wje-step.js.map +1 -0
  176. package/dist/wje-stepper.js +231 -0
  177. package/dist/wje-stepper.js.map +1 -0
  178. package/dist/wje-store.js +401 -0
  179. package/dist/wje-store.js.map +1 -0
  180. package/dist/wje-tab-group.js +137 -0
  181. package/dist/wje-tab-group.js.map +1 -0
  182. package/dist/wje-tab-panel.js +46 -0
  183. package/dist/wje-tab-panel.js.map +1 -0
  184. package/dist/wje-tab.js +59 -0
  185. package/dist/wje-tab.js.map +1 -0
  186. package/dist/wje-textarea.js +373 -0
  187. package/dist/wje-textarea.js.map +1 -0
  188. package/dist/wje-thumbnail.js +54 -0
  189. package/dist/wje-thumbnail.js.map +1 -0
  190. package/dist/wje-toast.js +334 -0
  191. package/dist/wje-toast.js.map +1 -0
  192. package/dist/wje-toggle.js +125 -0
  193. package/dist/wje-toggle.js.map +1 -0
  194. package/dist/wje-toolbar-action.js +72 -0
  195. package/dist/wje-toolbar-action.js.map +1 -0
  196. package/dist/wje-toolbar.js +63 -0
  197. package/dist/wje-toolbar.js.map +1 -0
  198. package/dist/wje-tooltip.js +166 -0
  199. package/dist/wje-tooltip.js.map +1 -0
  200. package/dist/wje-visually-hidden.js +55 -0
  201. package/dist/wje-visually-hidden.js.map +1 -0
  202. package/package.json +1 -1
@@ -0,0 +1,140 @@
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) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
4
+ import WJElement from "./wje-element.js";
5
+ const styles = "/*\n[ WJ Breadcrumbs ]\n*/\n\n:host {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n}\n";
6
+ class Breadcrumbs extends WJElement {
7
+ /**
8
+ * Breadcrumbs constructor method.
9
+ * @class
10
+ */
11
+ constructor() {
12
+ super();
13
+ /**
14
+ * Class name for the Breadcrumbs element.
15
+ * @type {string}
16
+ */
17
+ __publicField(this, "className", "Breadcrumbs");
18
+ this.last = false;
19
+ }
20
+ /**
21
+ * Set variant attribute for the Breadcrumbs element.
22
+ * @param value
23
+ */
24
+ set variant(value) {
25
+ this.setAttribute("variant", value);
26
+ }
27
+ /**
28
+ * Get variant attribute for the Breadcrumbs element.
29
+ * @returns {string}
30
+ */
31
+ get variant() {
32
+ return this.getAttribute("variant") || "button";
33
+ }
34
+ /**
35
+ * Get items before collapse attribute.
36
+ * @param {string} value
37
+ */
38
+ set maxItems(value) {
39
+ this.setAttribute("max-items", value || 0);
40
+ }
41
+ /**
42
+ * Get items before collapse attribute.
43
+ * @returns {number}
44
+ */
45
+ get maxItems() {
46
+ return +this.getAttribute("max-items");
47
+ }
48
+ /**
49
+ * Get items before collapse attribute.
50
+ * @param value
51
+ */
52
+ set itemsBeforeCollapse(value) {
53
+ this.setAttribute("items-before-collapse", value || 1);
54
+ }
55
+ /**
56
+ * Get items before collapse attribute.
57
+ * @returns {number}
58
+ */
59
+ get itemsBeforeCollapse() {
60
+ return +this.getAttribute("items-before-collapse") || 1;
61
+ }
62
+ /**
63
+ * Get items after collapse attribute.
64
+ * @param value
65
+ */
66
+ set itemsAfterCollapse(value) {
67
+ this.setAttribute("items-after-collapse", value || 1);
68
+ }
69
+ /**
70
+ * Get items after collapse attribute.
71
+ * @returns {number}
72
+ */
73
+ get itemsAfterCollapse() {
74
+ return +this.getAttribute("items-after-collapse") || 1;
75
+ }
76
+ /**
77
+ * Get CSS stylesheet for the Breadcrumbs element.
78
+ * @static
79
+ * @returns {object} styles - The CSS styles
80
+ */
81
+ static get cssStyleSheet() {
82
+ return styles;
83
+ }
84
+ /**
85
+ * Get observed attributes for the Breadcrumb element.
86
+ * @static
87
+ * @returns {Array<string>} - The observed attributes array for the Breadcrumb element.
88
+ */
89
+ static get observedAttributes() {
90
+ return [];
91
+ }
92
+ /**
93
+ * Setup attributes for the Breadcrumbs element.
94
+ */
95
+ setupAttributes() {
96
+ this.isShadowRoot = "open";
97
+ }
98
+ /**
99
+ * Draw method for the Breadcrumbs element.
100
+ * @returns {object} fragment - The document fragment
101
+ */
102
+ draw() {
103
+ let fragment = document.createDocumentFragment();
104
+ let element = document.createElement("slot");
105
+ fragment.appendChild(element);
106
+ return fragment;
107
+ }
108
+ /**
109
+ * After draw method for the Breadcrumbs element.
110
+ */
111
+ afterDraw() {
112
+ let breadcrumbs = this.getBreadcrumbs();
113
+ if (breadcrumbs.length === 0) return;
114
+ let breadcrumb = breadcrumbs.findLast((e) => e);
115
+ breadcrumb.setAttribute("last", true);
116
+ const shouldCollapse = this.maxItems !== void 0 && breadcrumbs.length > this.maxItems && this.itemsBeforeCollapse + this.itemsAfterCollapse <= this.maxItems;
117
+ if (shouldCollapse) {
118
+ breadcrumbs.forEach((b, index) => {
119
+ if (index === this.itemsBeforeCollapse) {
120
+ b.setAttribute("show-collapsed-indicator", true);
121
+ }
122
+ if (index >= this.itemsBeforeCollapse && index < breadcrumbs.length - this.itemsAfterCollapse) {
123
+ b.setAttribute("collapsed", true);
124
+ }
125
+ });
126
+ }
127
+ }
128
+ /**
129
+ * Get breadcrumbs method.
130
+ * @returns {Array} - The breadcrumbs array
131
+ */
132
+ getBreadcrumbs() {
133
+ return Array.from(this.querySelectorAll("wje-breadcrumb")) || [];
134
+ }
135
+ }
136
+ Breadcrumbs.define("wje-breadcrumbs", Breadcrumbs);
137
+ export {
138
+ Breadcrumbs as default
139
+ };
140
+ //# sourceMappingURL=wje-breadcrumbs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wje-breadcrumbs.js","sources":["../packages/wje-breadcrumbs/breadcrumbs.element.js","../packages/wje-breadcrumbs/breadcrumbs.js"],"sourcesContent":["import { default as WJElement } from '../wje-element/element.js';\nimport styles from './styles/styles.css?inline';\n\n/**\n * @summary This class represents a Breadcrumbs container, extending the WJElement class. It acts as a wrapper for individual breadcrumb elements and manages their behavior, such as collapsing and marking the last breadcrumb.\n * @documentation https://elements.webjet.sk/components/breadcrumbs\n * @status stable\n * @augments WJElement\n * @slot - The container for breadcrumb elements.\n * @csspart container - The component's container wrapper.\n * @attribute {number} max-items - The maximum number of visible breadcrumbs before collapsing.\n * @attribute {number} items-before-collapse - The number of breadcrumbs to show before the collapsed indicator.\n * @attribute {number} items-after-collapse - The number of breadcrumbs to show after the collapsed indicator.\n * @tag wje-breadcrumbs\n * @example\n * <!-- Example usage -->\n * <wje-breadcrumbs max-items=\"5\" items-before-collapse=\"2\" items-after-collapse=\"2\">\n * <wje-breadcrumb>Home</wje-breadcrumb>\n * <wje-breadcrumb>About</wje-breadcrumb>\n * <wje-breadcrumb>Services</wje-breadcrumb>\n * <wje-breadcrumb>Portfolio</wje-breadcrumb>\n * <wje-breadcrumb>Contact</wje-breadcrumb>\n * </wje-breadcrumbs>\n *\n * <!-- Output: Only the first two and last two breadcrumbs will be visible, with a collapsed indicator in the middle -->\n */\n\nexport default class Breadcrumbs extends WJElement {\n /**\n * Breadcrumbs constructor method.\n * @class\n */\n constructor() {\n super();\n\n /**\n * Last breadcrumb flag\n * @type {boolean}\n */\n this.last = false;\n }\n\n /**\n * Set variant attribute for the Breadcrumbs element.\n * @param value\n */\n set variant(value) {\n this.setAttribute('variant', value);\n }\n\n /**\n * Get variant attribute for the Breadcrumbs element.\n * @returns {string}\n */\n get variant() {\n return this.getAttribute('variant') || 'button';\n }\n\n /**\n * Get items before collapse attribute.\n * @param {string} value\n */\n set maxItems(value) {\n this.setAttribute('max-items', value || 0);\n }\n\n /**\n * Get items before collapse attribute.\n * @returns {number}\n */\n get maxItems() {\n return +this.getAttribute('max-items' || 0);\n }\n\n /**\n * Get items before collapse attribute.\n * @param value\n */\n set itemsBeforeCollapse(value) {\n this.setAttribute('items-before-collapse', value || 1);\n }\n\n /**\n * Get items before collapse attribute.\n * @returns {number}\n */\n get itemsBeforeCollapse() {\n return +this.getAttribute('items-before-collapse') || 1;\n }\n\n /**\n * Get items after collapse attribute.\n * @param value\n */\n set itemsAfterCollapse(value) {\n this.setAttribute('items-after-collapse', value || 1);\n }\n\n /**\n * Get items after collapse attribute.\n * @returns {number}\n */\n get itemsAfterCollapse() {\n return +this.getAttribute('items-after-collapse') || 1;\n }\n\n /**\n * Class name for the Breadcrumbs element.\n * @type {string}\n */\n className = 'Breadcrumbs';\n\n /**\n * Get CSS stylesheet for the Breadcrumbs element.\n * @static\n * @returns {object} styles - The CSS styles\n */\n static get cssStyleSheet() {\n return styles;\n }\n\n /**\n * Get observed attributes for the Breadcrumb element.\n * @static\n * @returns {Array<string>} - The observed attributes array for the Breadcrumb element.\n */\n static get observedAttributes() {\n return [];\n }\n\n /**\n * Setup attributes for the Breadcrumbs element.\n */\n setupAttributes() {\n this.isShadowRoot = 'open';\n }\n\n /**\n * Draw method for the Breadcrumbs element.\n * @returns {object} fragment - The document fragment\n */\n draw() {\n let fragment = document.createDocumentFragment();\n\n let element = document.createElement('slot');\n\n fragment.appendChild(element);\n\n return fragment;\n }\n\n /**\n * After draw method for the Breadcrumbs element.\n */\n afterDraw() {\n let breadcrumbs = this.getBreadcrumbs();\n\n if (breadcrumbs.length === 0) return;\n\n let breadcrumb = breadcrumbs.findLast((e) => e);\n\n breadcrumb.setAttribute('last', true);\n\n const shouldCollapse =\n this.maxItems !== undefined &&\n breadcrumbs.length > this.maxItems &&\n this.itemsBeforeCollapse + this.itemsAfterCollapse <= this.maxItems;\n\n if (shouldCollapse) {\n breadcrumbs.forEach((b, index) => {\n if (index === this.itemsBeforeCollapse) {\n b.setAttribute('show-collapsed-indicator', true);\n }\n\n if (index >= this.itemsBeforeCollapse && index < breadcrumbs.length - this.itemsAfterCollapse) {\n b.setAttribute('collapsed', true);\n }\n });\n }\n }\n\n /**\n * Get breadcrumbs method.\n * @returns {Array} - The breadcrumbs array\n */\n getBreadcrumbs() {\n return Array.from(this.querySelectorAll('wje-breadcrumb')) || [];\n }\n}\n","import Breadcrumbs from './breadcrumbs.element.js';\n\nexport default Breadcrumbs;\n\nBreadcrumbs.define('wje-breadcrumbs', Breadcrumbs);\n"],"names":[],"mappings":";;;;;AA2Be,MAAM,oBAAoB,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAK/C,cAAc;AACV,UAAO;AA6EX;AAAA;AAAA;AAAA;AAAA,qCAAY;AAvER,SAAK,OAAO;AAAA,EACpB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMI,IAAI,QAAQ,OAAO;AACf,SAAK,aAAa,WAAW,KAAK;AAAA,EAC1C;AAAA;AAAA;AAAA;AAAA;AAAA,EAMI,IAAI,UAAU;AACV,WAAO,KAAK,aAAa,SAAS,KAAK;AAAA,EAC/C;AAAA;AAAA;AAAA;AAAA;AAAA,EAMI,IAAI,SAAS,OAAO;AAChB,SAAK,aAAa,aAAa,SAAS,CAAC;AAAA,EACjD;AAAA;AAAA;AAAA;AAAA;AAAA,EAMI,IAAI,WAAW;AACX,WAAO,CAAC,KAAK,aAAa,WAAgB;AAAA,EAClD;AAAA;AAAA;AAAA;AAAA;AAAA,EAMI,IAAI,oBAAoB,OAAO;AAC3B,SAAK,aAAa,yBAAyB,SAAS,CAAC;AAAA,EAC7D;AAAA;AAAA;AAAA;AAAA;AAAA,EAMI,IAAI,sBAAsB;AACtB,WAAO,CAAC,KAAK,aAAa,uBAAuB,KAAK;AAAA,EAC9D;AAAA;AAAA;AAAA;AAAA;AAAA,EAMI,IAAI,mBAAmB,OAAO;AAC1B,SAAK,aAAa,wBAAwB,SAAS,CAAC;AAAA,EAC5D;AAAA;AAAA;AAAA;AAAA;AAAA,EAMI,IAAI,qBAAqB;AACrB,WAAO,CAAC,KAAK,aAAa,sBAAsB,KAAK;AAAA,EAC7D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAaI,WAAW,gBAAgB;AACvB,WAAO;AAAA,EACf;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOI,WAAW,qBAAqB;AAC5B,WAAO,CAAE;AAAA,EACjB;AAAA;AAAA;AAAA;AAAA,EAKI,kBAAkB;AACd,SAAK,eAAe;AAAA,EAC5B;AAAA;AAAA;AAAA;AAAA;AAAA,EAMI,OAAO;AACH,QAAI,WAAW,SAAS,uBAAwB;AAEhD,QAAI,UAAU,SAAS,cAAc,MAAM;AAE3C,aAAS,YAAY,OAAO;AAE5B,WAAO;AAAA,EACf;AAAA;AAAA;AAAA;AAAA,EAKI,YAAY;AACR,QAAI,cAAc,KAAK,eAAgB;AAEvC,QAAI,YAAY,WAAW,EAAG;AAE9B,QAAI,aAAa,YAAY,SAAS,CAAC,MAAM,CAAC;AAE9C,eAAW,aAAa,QAAQ,IAAI;AAEpC,UAAM,iBACF,KAAK,aAAa,UAClB,YAAY,SAAS,KAAK,YAC1B,KAAK,sBAAsB,KAAK,sBAAsB,KAAK;AAE/D,QAAI,gBAAgB;AAChB,kBAAY,QAAQ,CAAC,GAAG,UAAU;AAC9B,YAAI,UAAU,KAAK,qBAAqB;AACpC,YAAE,aAAa,4BAA4B,IAAI;AAAA,QACnE;AAEgB,YAAI,SAAS,KAAK,uBAAuB,QAAQ,YAAY,SAAS,KAAK,oBAAoB;AAC3F,YAAE,aAAa,aAAa,IAAI;AAAA,QACpD;AAAA,MACA,CAAa;AAAA,IACb;AAAA,EACA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMI,iBAAiB;AACb,WAAO,MAAM,KAAK,KAAK,iBAAiB,gBAAgB,CAAC,KAAK,CAAE;AAAA,EACxE;AACA;ACxLA,YAAY,OAAO,mBAAmB,WAAW;"}
@@ -0,0 +1,85 @@
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) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
4
+ import WJElement from "./wje-element.js";
5
+ const styles = "/*\n[ WJ Button Group ]\n*/\n\n:host {\n display: inline-block;\n .native-button-group {\n display: flex;\n flex-wrap: nowrap;\n line-height: 1;\n }\n\n slot {\n display: contents;\n }\n}\n\n::slotted(wje-button) {\n margin: 0 !important;\n}\n";
6
+ class ButtonGroup extends WJElement {
7
+ /**
8
+ * ButtonGroup constructor method.
9
+ * @class
10
+ */
11
+ constructor() {
12
+ super();
13
+ /**
14
+ * Class name for the ButtonGroup element
15
+ * @type {string}
16
+ */
17
+ __publicField(this, "className", "ButtonGroup");
18
+ }
19
+ /**
20
+ * Get CSS stylesheet for the ButtonGroup element.
21
+ * @static
22
+ * @returns {object} styles - The CSS styles
23
+ */
24
+ static get cssStyleSheet() {
25
+ return styles;
26
+ }
27
+ /**
28
+ * Get observed attributes for the ButtonGroup element.
29
+ * @static
30
+ * @returns {Array<string>} observedAttributes - The observed attributes array
31
+ */
32
+ static get observedAttributes() {
33
+ return [];
34
+ }
35
+ /**
36
+ * Setup attributes for the ButtonGroup element.
37
+ */
38
+ setupAttributes() {
39
+ this.isShadowRoot = "open";
40
+ }
41
+ /**
42
+ * Draw method for the ButtonGroup element.
43
+ * @returns {object} fragment - The document fragment
44
+ */
45
+ draw() {
46
+ let fragment = document.createDocumentFragment();
47
+ let element = document.createElement("div");
48
+ element.classList.add("native-button-group");
49
+ element.setAttribute("part", "native");
50
+ this.slotElement = document.createElement("slot");
51
+ element.appendChild(this.slotElement);
52
+ fragment.appendChild(element);
53
+ return fragment;
54
+ }
55
+ /**
56
+ * After draw method for the ButtonGroup element.
57
+ */
58
+ afterDraw() {
59
+ const slottedElements = [...this.slotElement.assignedElements({ flatten: true })];
60
+ slottedElements.forEach((el) => {
61
+ let index = slottedElements.indexOf(el);
62
+ let button = this.findButton(el);
63
+ if (button) {
64
+ button.classList.add("wje-button-group-button");
65
+ button.classList.toggle("wje-button-group-first", index === 0);
66
+ button.classList.toggle("wje-button-group-inner", index > 0 && index < slottedElements.length - 1);
67
+ button.classList.toggle("wje-button-group-last", index === slottedElements.length - 1);
68
+ }
69
+ });
70
+ }
71
+ /**
72
+ * Find button method to find the button element.
73
+ * @param {object} el The element
74
+ * @returns {object} button - The button element
75
+ */
76
+ findButton(el) {
77
+ const selector = "wje-button";
78
+ return el.closest(selector) ?? el.querySelector(selector);
79
+ }
80
+ }
81
+ WJElement.define("wje-button-group", ButtonGroup);
82
+ export {
83
+ ButtonGroup as default
84
+ };
85
+ //# sourceMappingURL=wje-button-group.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wje-button-group.js","sources":["../packages/wje-button-group/button-group.element.js","../packages/wje-button-group/button-group.js"],"sourcesContent":["import { default as WJElement } from '../wje-element/element.js';\nimport styles from './styles/styles.css?inline';\n\n/**\n * @summary ButtonGroup class\n * @class\n * @augments WJElement\n * @csspart native - The component's native wrapper.\n * @slot - The button group main content.\n * @csspart native - The component's native wrapper.\n */\n\nexport default class ButtonGroup extends WJElement {\n /**\n * ButtonGroup constructor method.\n * @class\n */\n constructor() {\n super();\n }\n\n /**\n * Class name for the ButtonGroup element\n * @type {string}\n */\n className = 'ButtonGroup';\n\n /**\n * Get CSS stylesheet for the ButtonGroup element.\n * @static\n * @returns {object} styles - The CSS styles\n */\n static get cssStyleSheet() {\n return styles;\n }\n\n /**\n * Get observed attributes for the ButtonGroup element.\n * @static\n * @returns {Array<string>} observedAttributes - The observed attributes array\n */\n static get observedAttributes() {\n return [];\n }\n\n /**\n * Setup attributes for the ButtonGroup element.\n */\n setupAttributes() {\n this.isShadowRoot = 'open';\n }\n\n /**\n * Draw method for the ButtonGroup element.\n * @returns {object} fragment - The document fragment\n */\n draw() {\n let fragment = document.createDocumentFragment();\n\n let element = document.createElement('div');\n element.classList.add('native-button-group');\n element.setAttribute('part', 'native');\n\n this.slotElement = document.createElement('slot');\n\n element.appendChild(this.slotElement);\n\n fragment.appendChild(element);\n\n return fragment;\n }\n\n /**\n * After draw method for the ButtonGroup element.\n */\n afterDraw() {\n const slottedElements = [...this.slotElement.assignedElements({ flatten: true })];\n\n slottedElements.forEach((el) => {\n let index = slottedElements.indexOf(el);\n let button = this.findButton(el);\n if (button) {\n button.classList.add('wje-button-group-button');\n button.classList.toggle('wje-button-group-first', index === 0);\n button.classList.toggle('wje-button-group-inner', index > 0 && index < slottedElements.length - 1);\n button.classList.toggle('wje-button-group-last', index === slottedElements.length - 1);\n }\n });\n }\n\n /**\n * Find button method to find the button element.\n * @param {object} el The element\n * @returns {object} button - The button element\n */\n findButton(el) {\n const selector = 'wje-button';\n\n return el.closest(selector) ?? el.querySelector(selector);\n }\n}\n","import { default as WJElement } from '../wje-element/element.js';\nimport ButtonGroup from './button-group.element.js';\n\n// export * from \"./button-group.element.js\";\nexport default ButtonGroup;\n\nWJElement.define('wje-button-group', ButtonGroup);\n"],"names":[],"mappings":";;;;;AAYe,MAAM,oBAAoB,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAK/C,cAAc;AACV,UAAO;AAOX;AAAA;AAAA;AAAA;AAAA,qCAAY;AAAA,EANhB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAaI,WAAW,gBAAgB;AACvB,WAAO;AAAA,EACf;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOI,WAAW,qBAAqB;AAC5B,WAAO,CAAE;AAAA,EACjB;AAAA;AAAA;AAAA;AAAA,EAKI,kBAAkB;AACd,SAAK,eAAe;AAAA,EAC5B;AAAA;AAAA;AAAA;AAAA;AAAA,EAMI,OAAO;AACH,QAAI,WAAW,SAAS,uBAAwB;AAEhD,QAAI,UAAU,SAAS,cAAc,KAAK;AAC1C,YAAQ,UAAU,IAAI,qBAAqB;AAC3C,YAAQ,aAAa,QAAQ,QAAQ;AAErC,SAAK,cAAc,SAAS,cAAc,MAAM;AAEhD,YAAQ,YAAY,KAAK,WAAW;AAEpC,aAAS,YAAY,OAAO;AAE5B,WAAO;AAAA,EACf;AAAA;AAAA;AAAA;AAAA,EAKI,YAAY;AACR,UAAM,kBAAkB,CAAC,GAAG,KAAK,YAAY,iBAAiB,EAAE,SAAS,KAAI,CAAE,CAAC;AAEhF,oBAAgB,QAAQ,CAAC,OAAO;AAC5B,UAAI,QAAQ,gBAAgB,QAAQ,EAAE;AACtC,UAAI,SAAS,KAAK,WAAW,EAAE;AAC/B,UAAI,QAAQ;AACR,eAAO,UAAU,IAAI,yBAAyB;AAC9C,eAAO,UAAU,OAAO,0BAA0B,UAAU,CAAC;AAC7D,eAAO,UAAU,OAAO,0BAA0B,QAAQ,KAAK,QAAQ,gBAAgB,SAAS,CAAC;AACjG,eAAO,UAAU,OAAO,yBAAyB,UAAU,gBAAgB,SAAS,CAAC;AAAA,MACrG;AAAA,IACA,CAAS;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOI,WAAW,IAAI;AACX,UAAM,WAAW;AAEjB,WAAO,GAAG,QAAQ,QAAQ,KAAK,GAAG,cAAc,QAAQ;AAAA,EAChE;AACA;AC9FA,UAAU,OAAO,oBAAoB,WAAW;"}
@@ -0,0 +1,352 @@
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) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
4
+ import { b as bindRouterLinks } from "./router-links-CJnOdbas.js";
5
+ import WJElement, { WjElementUtils, event } from "./wje-element.js";
6
+ import Icon from "./wje-icon.js";
7
+ const bool = (v) => {
8
+ return v === "false" || v === "null" || v === "NaN" || v === "undefined" || v === "0" ? false : !!v;
9
+ };
10
+ const styles = "/*\n[ WJ Button ]\n*/\n\n/*PRIMARY*/\n.wje-button-solid.wje-color-primary {\n background-color: var(--wje-color-primary-9);\n border-color: var(--wje-color-primary-9);\n color: var(--wje-color-contrast-0);\n}\n\n.wje-button-outline.wje-color-primary {\n background-color: var(--wje-color-primary-1);\n border-color: var(--wje-color-primary-9);\n color: var(--wje-color-primary-9);\n}\n\n.wje-button-link.wje-color-primary {\n background-color: transparent;\n border-color: transparent;\n color: var(--wje-color-primary-9);\n}\n\n/*COMPLETE*/\n.wje-button-solid.wje-color-complete {\n background-color: var(--wje-color-complete-9);\n border-color: var(--wje-color-complete-9);\n color: var(--wje-color-contrast-0);\n}\n\n.wje-button-outline.wje-color-complete {\n background-color: var(--wje-color-complete-1);\n border-color: var(--wje-color-complete-9);\n color: var(--wje-color-complete-9);\n}\n\n.wje-button-link.wje-color-complete {\n background-color: transparent;\n border-color: transparent;\n color: var(--wje-color-complete-9);\n}\n\n/*SUCCESS*/\n.wje-button-solid.wje-color-success {\n background-color: var(--wje-color-success-9);\n border-color: var(--wje-color-success-9);\n color: var(--wje-color-contrast-0);\n}\n\n.wje-button-outline.wje-color-success {\n background-color: var(--wje-color-success-1);\n border-color: var(--wje-color-success-9);\n color: var(--wje-color-success-9);\n}\n\n.wje-button-link.wje-color-success {\n background-color: transparent;\n border-color: transparent;\n color: var(--wje-color-success-9);\n}\n\n/*WARNING*/\n.wje-button-solid.wje-color-warning {\n background-color: var(--wje-color-warning-9);\n border-color: var(--wje-color-warning-9);\n color: var(--wje-color-black);\n}\n\n.wje-button-outline.wje-color-warning {\n background-color: var(--wje-color-warning-1);\n border-color: var(--wje-color-warning-11);\n color: var(--wje-color-warning-11);\n}\n\n.wje-button-link.wje-color-warning {\n background-color: transparent;\n border-color: transparent;\n color: var(--wje-color-warning-11);\n}\n\n/*DANGER*/\n.wje-button-solid.wje-color-danger {\n background-color: var(--wje-color-danger-9);\n border-color: var(--wje-color-danger-9);\n color: var(--wje-color-contrast-0);\n}\n\n.wje-button-outline.wje-color-danger {\n background-color: var(--wje-color-danger-1);\n border-color: var(--wje-color-danger-9);\n color: var(--wje-color-danger-9);\n}\n\n.wje-button-link.wje-color-danger {\n background-color: transparent;\n border-color: transparent;\n color: var(--wje-color-danger-9);\n}\n\n/*NEUTRAL*/\n.wje-button-solid.wje-color-info {\n background-color: var(--wje-color-contrast-9);\n border-color: var(--wje-color-contrast-9);\n color: var(--wje-color-contrast-0);\n}\n\n.wje-button-outline.wje-color-info {\n background-color: var(--wje-color-contrast-1);\n border-color: var(--wje-color-contrast-9);\n color: var(--wje-color-contrast-9);\n}\n\n.wje-button-link.wje-color-info {\n background-color: transparent;\n border-color: transparent;\n color: var(--wje-color-contrast-9);\n}\n\n/*DEFAULT*/\n.wje-button-solid.wje-color-default {\n background-color: var(--wje-color-contrast-0);\n border-color: var(--wje-color-contrast-3);\n color: var(--wje-color-contrast-11);\n}\n\n.wje-button-outline.wje-color-default {\n background-color: var(--wje-color-contrast-1);\n border-color: var(--wje-color-contrast-5);\n color: var(--wje-color-contrast-11);\n}\n\n.wje-button-link.wje-color-default {\n background-color: transparent;\n border-color: transparent;\n color: var(--wje-color-contrast-11);\n}\n\n:host {\n --wje-padding-top: 0.4rem;\n --wje-padding-start: 0.5rem;\n --wje-padding-end: 0.5rem;\n --wje-padding-bottom: 0.4rem;\n\n display: inline-flex;\n position: relative;\n width: auto;\n cursor: pointer;\n margin-inline: var(--wje-button-margin-inline);\n}\n\n:host(.wje-button-group-button) {\n display: block;\n}\n\n.native-button {\n font-family: var(--wje-font-family);\n font-size: var(--wje-font-size);\n display: flex;\n position: relative;\n align-items: center;\n width: 100%;\n height: 100%;\n min-height: inherit;\n /*overflow: hidden;*/ /* Sposobovalo problemy s badge a tooltip */\n border-width: var(--wje-button-border-width);\n border-style: var(--wje-button-border-style);\n border-color: var(--wje-button-border-color);\n background-color: transparent;\n /*color: var(--wje-button-color);*/\n line-height: 1;\n contain: layout style;\n cursor: pointer;\n z-index: 0;\n box-sizing: border-box;\n appearance: none;\n margin: 0;\n border-radius: var(--wje-button-border-radius);\n padding-top: var(--wje-padding-top);\n padding-bottom: var(--wje-padding-bottom);\n padding-inline: var(--wje-padding-start) var(--wje-padding-end);\n white-space: nowrap;\n}\n\n.native-button:hover {\n outline-style: solid;\n outline-width: var(--wje-button-outline-width);\n transition: outline-width 0.1s linear;\n}\n\n@media (any-hover: hover) {\n .wje-button-solid.wje-color-primary:hover {\n background-color: var(--wje-color-primary-9);\n border-color: var(--wje-color-primary-9);\n color: var(--wje-color-contrast-0);\n outline-color: var(--wje-color-primary-2);\n }\n\n .wje-button-outline.wje-color-primary:hover {\n background-color: var(--wje-color-primary-1);\n border-color: var(--wje-color-primary-9);\n color: var(--wje-color-primary-9);\n outline-color: var(--wje-color-primary-2);\n }\n\n .wje-button-link.wje-color-primary:hover {\n background-color: var(--wje-color-primary-1);\n border-color: transparent;\n color: var(--wje-color-primary-9);\n outline-color: transparent;\n outline-width: 0;\n }\n\n .wje-button-solid.wje-color-complete:hover {\n background-color: var(--wje-color-complete-9);\n border-color: var(--wje-color-complete-9);\n color: var(--wje-color-contrast-0);\n outline-color: var(--wje-color-complete-2);\n }\n\n .wje-button-outline.wje-color-complete:hover {\n background-color: var(--wje-color-complete-1);\n border-color: var(--wje-color-complete-9);\n color: var(--wje-color-complete-9);\n outline-color: var(--wje-color-complete-2);\n }\n\n .wje-button-link.wje-color-complete:hover {\n background-color: var(--wje-color-complete-1);\n border-color: transparent;\n color: var(--wje-color-complete-9);\n outline-color: transparent;\n outline-width: 0;\n }\n\n .wje-button-solid.wje-color-success:hover {\n background-color: var(--wje-color-success-9);\n border-color: var(--wje-color-success-9);\n color: var(--wje-color-contrast-0);\n outline-color: var(--wje-color-success-2);\n }\n\n .wje-button-outline.wje-color-success:hover {\n background-color: var(--wje-color-success-1);\n border-color: var(--wje-color-success-9);\n color: var(--wje-color-success-9);\n outline-color: var(--wje-color-success-2);\n }\n\n .wje-button-link.wje-color-success:hover {\n background-color: var(--wje-color-success-1);\n border-color: transparent;\n color: var(--wje-color-success-9);\n outline-color: transparent;\n outline-width: 0;\n }\n\n .wje-button-solid.wje-color-warning:hover {\n background-color: var(--wje-color-warning-9);\n border-color: var(--wje-color-warning-9);\n color: var(--wje-color-black);\n outline-color: var(--wje-color-warning-2);\n }\n\n .wje-button-outline.wje-color-warning:hover {\n background-color: var(--wje-color-warning-1);\n border-color: var(--wje-color-warning-11);\n color: var(--wje-color-warning-11);\n outline-color: var(--wje-color-warning-2);\n }\n\n .wje-button-link.wje-color-warning:hover {\n background-color: var(--wje-color-warning-1);\n border-color: transparent;\n color: var(--wje-color-warning-11);\n outline-color: transparent;\n outline-width: 0;\n }\n\n .wje-button-solid.wje-color-danger:hover {\n background-color: var(--wje-color-danger-9);\n border-color: var(--wje-color-danger-9);\n color: var(--wje-color-contrast-0);\n outline-color: var(--wje-color-danger-2);\n }\n\n .wje-button-outline.wje-color-danger:hover {\n background-color: var(--wje-color-danger-1);\n border-color: var(--wje-color-danger-9);\n color: var(--wje-color-danger-9);\n outline-color: var(--wje-color-danger-2);\n }\n\n .wje-button-link.wje-color-danger:hover {\n background-color: var(--wje-color-danger-1);\n border-color: transparent;\n color: var(--wje-color-danger-9);\n outline-color: transparent;\n outline-width: 0;\n }\n\n .wje-button-solid.wje-color-info:hover {\n background-color: var(--wje-color-contrast-9);\n border-color: var(--wje-color-contrast-9);\n color: var(--wje-color-contrast-0);\n outline-color: var(--wje-color-contrast-3);\n }\n\n .wje-button-outline.wje-color-info:hover {\n background-color: var(--wje-color-contrast-1);\n border-color: var(--wje-color-contrast-9);\n color: var(--wje-color-contrast-9);\n outline-color: var(--wje-color-contrast-3);\n }\n\n .wje-button-link.wje-color-info:hover {\n background-color: var(--wje-color-contrast-3);\n border-color: transparent;\n color: var(--wje-color-contrast-11);\n outline-color: transparent;\n outline-width: 0;\n }\n\n .wje-button-solid.wje-color-default:hover {\n background-color: var(--wje-color-contrast-0);\n border-color: var(--wje-color-contrast-3);\n color: var(--wje-color-contrast-11);\n outline-color: var(--wje-color-contrast-3);\n }\n\n .wje-button-outline.wje-color-default:hover {\n background-color: var(--wje-color-contrast-2);\n border-color: var(--wje-color-contrast-5);\n color: var(--wje-color-contrast-11);\n outline-color: var(--wje-color-contrast-3);\n }\n\n .wje-button-link.wje-color-default:hover {\n background-color: var(--wje-color-contrast-3);\n border-color: transparent;\n color: var(--wje-color-contrast-11);\n outline-color: transparent;\n outline-width: 0;\n }\n}\n\n.button-inner {\n display: flex;\n position: relative;\n flex-flow: row nowrap;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n z-index: 1;\n line-height: normal;\n}\n\n/*\n[ Link ]\n*/\n\n.wje-button-link {\n border-width: var(--wje-button-border-width);\n border-radius: var(--wje-button-border-radius);\n border-color: transparent;\n background-color: transparent;\n}\n\n/*\n[ Disabled ]\n*/\n\n.wje-button-disabled {\n cursor: default;\n opacity: 0.5;\n pointer-events: none;\n}\n\n/*\n[ Round ]\n*/\n\n:host([round]) .native-button {\n border-radius: var(--wje-border-radius-pill);\n}\n\n:host([circle]) .native-button {\n border-radius: var(--wje-border-radius-circle);\n aspect-ratio: 1/1;\n width: 1.813rem;\n display: flex;\n align-items: center;\n --wje-padding-top: 0;\n --wje-padding-start: 0;\n --wje-padding-end: 0;\n --wje-padding-bottom: 0;\n}\n\n:host([size='small']) .native-button {\n --wje-padding-top: 0.25rem;\n --wje-padding-start: 0.25rem;\n --wje-padding-end: 0.25rem;\n --wje-padding-bottom: 0.25rem;\n}\n\n:host([size='large']) .native-button {\n --wje-padding-top: 0.6rem;\n --wje-padding-start: 0.7rem;\n --wje-padding-end: 0.7rem;\n --wje-padding-bottom: 0.6rem;\n}\n\n:host([size='small'][circle]) .native-button {\n width: 1.5rem;\n --wje-padding-top: 0;\n --wje-padding-start: 0;\n --wje-padding-end: 0;\n --wje-padding-bottom: 0;\n}\n\n:host([size='large'][circle]) .native-button {\n width: 2.188rem;\n --wje-padding-top: 0;\n --wje-padding-start: 0;\n --wje-padding-end: 0;\n --wje-padding-bottom: 0;\n}\n\n::slotted(wje-icon[slot='start']) {\n margin: 0 0.3rem 0 0;\n}\n\n::slotted(wje-icon[slot='end']) {\n margin: 0 -0.2rem 0 0.3rem;\n}\n\n:host(:not([only-caret])) slot[name='caret'] {\n padding: 0 0 0 0.3rem;\n}\n\n:host([only-caret]) slot[name='caret'] {\n padding: 0;\n display: block;\n}\n\n:host(.wje-button-group-first:not(.wje-button-group-last)) .native-button {\n border-start-end-radius: 0;\n border-end-end-radius: 0;\n}\n\n:host(.wje-button-group-inner) .native-button {\n border-radius: 0;\n}\n\n:host(.wje-button-group-last:not(.wje-button-group-first)) .native-button {\n border-start-start-radius: 0;\n border-end-start-radius: 0;\n}\n\n:host(.wje-button-group-button:not(.wje-button-group-first)) {\n margin-inline-start: calc(-1 * var(--wje-button-border-width)) !important;\n}\n\n::slotted([slot='toggle']) {\n display: none;\n}\n\n::slotted([slot='toggle'].show) {\n display: block;\n}\n";
11
+ class Button extends WJElement {
12
+ /**
13
+ * Button constructor method.
14
+ * @class
15
+ */
16
+ constructor() {
17
+ super();
18
+ /**
19
+ * Dependencies of the Button element.
20
+ * @type {object}
21
+ */
22
+ __publicField(this, "dependencies", {
23
+ "wje-icon": Icon
24
+ });
25
+ /**
26
+ * Class name for the Button element
27
+ * @type {string}
28
+ */
29
+ __publicField(this, "className", "Button");
30
+ /**
31
+ * Event dialog open method for the Button element.
32
+ * @param {Event} e The event object
33
+ */
34
+ __publicField(this, "eventDialogOpen", (e) => {
35
+ event.dispatchCustomEvent(this, this.dialog);
36
+ });
37
+ /**
38
+ * Toggle states method for the Button element.
39
+ */
40
+ __publicField(this, "toggleStates", () => {
41
+ const nodes = this.slotToggle.assignedNodes().filter((node) => node.nodeType === Node.ELEMENT_NODE);
42
+ nodes.forEach((node, index) => {
43
+ if (node.classList.contains("show")) {
44
+ node.classList.remove("show");
45
+ } else {
46
+ node.classList.add("show");
47
+ this.setAttribute("value", index === 0 ? "on" : "off");
48
+ }
49
+ });
50
+ });
51
+ this.internals_ = this.attachInternals();
52
+ }
53
+ /**
54
+ * Properties of the element Button.
55
+ * @param value
56
+ */
57
+ set color(value) {
58
+ this.setAttribute("color", value || "default");
59
+ }
60
+ /**
61
+ * Get color of the Button element.
62
+ * @returns {string|string}
63
+ */
64
+ get color() {
65
+ return this.getAttribute("color") || "default";
66
+ }
67
+ /**
68
+ * Set variant of the Button element.
69
+ * @param value
70
+ */
71
+ set caret(value) {
72
+ this.setAttribute("caret", value);
73
+ }
74
+ /**
75
+ * Get variant of the Button element.
76
+ * @returns {boolean}
77
+ */
78
+ get caret() {
79
+ return this.hasAttribute("caret");
80
+ }
81
+ /**
82
+ * Set variant of the Button element.
83
+ * @param value
84
+ */
85
+ set tooltip(value) {
86
+ this.setAttribute("tooltip", value);
87
+ }
88
+ /**
89
+ * Get variant of the Button element.
90
+ * @returns {boolean}
91
+ */
92
+ get tooltip() {
93
+ return this.hasAttribute("tooltip");
94
+ }
95
+ /**
96
+ * Set variant of the Button element.
97
+ * @param value
98
+ */
99
+ set dialog(value) {
100
+ this.setAttribute("dialog", value);
101
+ }
102
+ /**
103
+ * Get variant of the Button element.
104
+ * @returns {string|object}
105
+ */
106
+ get dialog() {
107
+ return this.getAttribute("dialog");
108
+ }
109
+ /**
110
+ * Set active state of the Button element.
111
+ * @param {boolean} value The value to set
112
+ */
113
+ set active(value) {
114
+ this.setAttribute("active", "");
115
+ }
116
+ /**
117
+ * Get active state of the Button element.
118
+ * @returns {boolean} active - The active state
119
+ */
120
+ get active() {
121
+ return this.hasAttribute("active");
122
+ }
123
+ /**
124
+ * Set disabled state of the Button element.
125
+ * @param {boolean} value The value to set
126
+ */
127
+ set disabled(value) {
128
+ if (value) this.setAttribute("disabled", "");
129
+ else this.removeAttribute("disabled");
130
+ }
131
+ /**
132
+ * Get disabled state of the Button element.
133
+ * @returns {boolean} disabled - The disabled state
134
+ */
135
+ get disabled() {
136
+ return this.hasAttribute("disabled");
137
+ }
138
+ /**
139
+ * Set fill of the Button element.
140
+ * @param {string} value The value to set
141
+ */
142
+ set fill(value) {
143
+ this.setAttribute("fill", value);
144
+ }
145
+ /**
146
+ * Get fill of the Button element.
147
+ * @returns {string} fill - The fill value
148
+ */
149
+ get fill() {
150
+ return this.getAttribute("fill") || "solid";
151
+ }
152
+ /**
153
+ * Set outline state of the Button element.
154
+ * @param {boolean} value The value to set
155
+ */
156
+ set outline(value) {
157
+ this.setAttribute("outline", "");
158
+ }
159
+ /**
160
+ * Get outline state of the Button element.
161
+ * @returns {boolean} outline - The outline state
162
+ */
163
+ get outline() {
164
+ return this.hasAttribute("outline");
165
+ }
166
+ /**
167
+ * Set stop propagation state of the Button element.
168
+ * @param {boolean} value The value to set
169
+ */
170
+ set stopPropagation(value) {
171
+ this.setAttribute("stop-propagation", bool(value));
172
+ }
173
+ /**
174
+ * Get stop propagation state of the Button element.
175
+ * @returns {boolean} stopPropagation - The stop propagation state
176
+ */
177
+ get stopPropagation() {
178
+ return bool(this.getAttribute("stop-propagation"));
179
+ }
180
+ /**
181
+ * Get CSS stylesheet for the Button element.
182
+ * @static
183
+ * @returns {CSSStyleSheet} styles - The CSS stylesheet for the Button element.
184
+ */
185
+ static get cssStyleSheet() {
186
+ return styles;
187
+ }
188
+ /**
189
+ * Get observed attributes for the Button element.
190
+ * @static
191
+ * @returns {Array<string>} observedAttributes - The observed attributes array for the Button element.
192
+ */
193
+ static get observedAttributes() {
194
+ return ["disabled"];
195
+ }
196
+ /**
197
+ * @summary Callback function that is called when the custom element is associated with a form.
198
+ * This function sets the internal `_form` property to the associated form.
199
+ * @param {HTMLFormElement} form The form the custom element is associated with.
200
+ */
201
+ formAssociatedCallback(form) {
202
+ this._form = form;
203
+ }
204
+ /**
205
+ * @summary Callback function that is called when the form-associated state of the custom element changes.
206
+ * This function updates the 'disabled' attribute of the element based on the new state.
207
+ * @param {boolean} disabled The new form-associated state.
208
+ */
209
+ formDisabledCallback(disabled) {
210
+ if (disabled) {
211
+ this.setAttribute("disabled", "");
212
+ } else {
213
+ this.removeAttribute("disabled");
214
+ }
215
+ }
216
+ /**
217
+ * Setup attributes for the Button element.
218
+ */
219
+ setupAttributes() {
220
+ this.isShadowRoot = "open";
221
+ }
222
+ /**
223
+ * Draw method for the Button element.
224
+ * @returns {object} fragment - The document fragment containing the drawn element.
225
+ */
226
+ draw() {
227
+ let fragment = document.createDocumentFragment();
228
+ let native = document.createElement(this.hasAttribute("href") ? "a" : "button");
229
+ if (this.hasAttribute("href")) {
230
+ native.setAttribute("href", this.getAttribute("href"));
231
+ } else {
232
+ if (this.type === "submit") {
233
+ native.setAttribute("type", "submit");
234
+ }
235
+ }
236
+ native.classList.add("native-button");
237
+ native.setAttribute("part", "native");
238
+ this.classList.remove("wje-button-disabled");
239
+ if (this.disabled) native.classList.add("wje-button-disabled");
240
+ if (this.variant) native.classList.add("wje-button-" + this.variant);
241
+ if (this.hasAttribute("round")) native.classList.add("wje-button-round");
242
+ if (this.hasAttribute("circle")) native.classList.add("wje-button-circle");
243
+ if (this.outline) native.classList.add("wje-outline");
244
+ if (this.fill) native.classList.add("wje-button-" + this.fill);
245
+ if (this.size) native.classList.add("wje-button-" + this.size);
246
+ if (this.querySelectorAll("[slot=caret]").length < 1 && this.hasAttribute("caret") || this.hasAttribute("only-caret")) {
247
+ let i = document.createElement("wje-icon");
248
+ i.style.setProperty("--wje-icon-size", "14px");
249
+ i.setAttribute("slot", "caret");
250
+ i.setAttribute("name", "chevron-down");
251
+ i.setAttribute("part", "caret");
252
+ this.appendChild(i);
253
+ }
254
+ if (this.active) {
255
+ this.classList.add("wje-active");
256
+ let i = document.createElement("wje-icon");
257
+ i.setAttribute("name", "check");
258
+ this.appendChild(i);
259
+ }
260
+ native.classList.add("wje-color-" + this.color, "wje-color");
261
+ let span = document.createElement("span");
262
+ span.setAttribute("part", "inner");
263
+ span.classList.add("button-inner");
264
+ let slot = document.createElement("slot");
265
+ slot.setAttribute("name", "icon-only");
266
+ span.appendChild(slot);
267
+ slot = document.createElement("slot");
268
+ slot.setAttribute("name", "start");
269
+ span.appendChild(slot);
270
+ slot = document.createElement("slot");
271
+ span.appendChild(slot);
272
+ slot = document.createElement("slot");
273
+ slot.setAttribute("name", "end");
274
+ span.appendChild(slot);
275
+ slot = document.createElement("slot");
276
+ slot.setAttribute("name", "caret");
277
+ span.appendChild(slot);
278
+ this.hasToggle = WjElementUtils.hasSlot(this, "toggle");
279
+ if (this.hasToggle) {
280
+ this.slotToggle = document.createElement("slot");
281
+ this.slotToggle.setAttribute("name", "toggle");
282
+ span.appendChild(this.slotToggle);
283
+ }
284
+ native.appendChild(span);
285
+ if (this.tooltip) {
286
+ let tooltip = document.createElement("wje-tooltip");
287
+ tooltip.setAttribute("content", this.getAttribute("tooltip"));
288
+ tooltip.setAttribute("placement", this.getAttribute("tooltip-placement") || "top");
289
+ tooltip.appendChild(native);
290
+ fragment.appendChild(tooltip);
291
+ } else {
292
+ fragment.appendChild(native);
293
+ }
294
+ return fragment;
295
+ }
296
+ /**
297
+ * After draw method for the Button element.
298
+ */
299
+ afterDraw() {
300
+ if (this.hasAttribute("route")) {
301
+ this.unbindRouterLinks = bindRouterLinks(this.parentElement, { selector: false });
302
+ }
303
+ if (this.hasToggle) {
304
+ if (this.toggle === "off") {
305
+ this.slotToggle.assignedNodes()[1].classList.add("show");
306
+ this.setAttribute("value", "off");
307
+ } else {
308
+ this.slotToggle.assignedNodes()[0].classList.add("show");
309
+ this.setAttribute("value", "on");
310
+ }
311
+ }
312
+ if (this.hasAttribute("dialog")) {
313
+ event.addListener(this, "click", null, this.eventDialogOpen);
314
+ } else {
315
+ event.addListener(this, "click", "wje-button:click", null);
316
+ }
317
+ if (this.hasToggle)
318
+ event.addListener(this, "click", "wje-button:toggle", this.toggleStates, {
319
+ stopPropagation: this.stopPropagation
320
+ });
321
+ if (this.type === "submit") {
322
+ event.addListener(this, "click", "wje-button:submit", () => {
323
+ console.log("submit", this.internals_.form);
324
+ event.dispatchCustomEvent(this.internals_.form, "submit", {});
325
+ });
326
+ }
327
+ if (this.type === "reset") {
328
+ event.addListener(this, "click", "wje-button:reset", () => {
329
+ this.internals_.form.reset();
330
+ });
331
+ }
332
+ }
333
+ /**
334
+ * Before disconnect method for the Button element.
335
+ */
336
+ beforeDisconnect() {
337
+ var _a;
338
+ this.removeEventListener("click", this.eventDialogOpen);
339
+ (_a = this.unbindRouterLinks) == null ? void 0 : _a.call(this);
340
+ }
341
+ }
342
+ /**
343
+ * @summary A static property that indicates whether the custom element is form-associated or not.
344
+ * Form-associated custom elements are elements that can participate in form submission.
345
+ * @type {boolean}
346
+ */
347
+ __publicField(Button, "formAssociated", true);
348
+ Button.define("wje-button", Button);
349
+ export {
350
+ Button as default
351
+ };
352
+ //# sourceMappingURL=wje-button.js.map