@siemens/ix 1.2.0 → 1.3.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (233) hide show
  1. package/dist/cjs/alignment-24ae2e63.js +1372 -0
  2. package/dist/cjs/index-17eb8998.js +4 -0
  3. package/dist/cjs/index.cjs.js +4 -1
  4. package/dist/cjs/ix-button.cjs.entry.js +4 -2
  5. package/dist/cjs/ix-category-filter.cjs.entry.js +8 -8
  6. package/dist/cjs/ix-chip.cjs.entry.js +21 -8
  7. package/dist/cjs/ix-counter-pill.cjs.entry.js +1 -1
  8. package/dist/cjs/ix-dropdown-button.cjs.entry.js +40 -0
  9. package/dist/cjs/ix-dropdown_2.cjs.entry.js +87 -41
  10. package/dist/cjs/ix-expanding-search.cjs.entry.js +2 -2
  11. package/dist/cjs/ix-icon-button.cjs.entry.js +2 -2
  12. package/dist/cjs/ix-map-navigation_2.cjs.entry.js +5 -4
  13. package/dist/cjs/ix-menu_9.cjs.entry.js +12 -93
  14. package/dist/cjs/ix-modal_2.cjs.entry.js +1 -1
  15. package/dist/cjs/ix-pill.cjs.entry.js +5 -2
  16. package/dist/cjs/ix-select_2.cjs.entry.js +35 -14
  17. package/dist/cjs/ix-split-button_2.cjs.entry.js +6 -35
  18. package/dist/cjs/ix-validation-tooltip.cjs.entry.js +71 -26
  19. package/dist/cjs/loader.cjs.js +1 -1
  20. package/dist/cjs/{modal-e4a6983d.js → modal-dda2f6be.js} +8 -2
  21. package/dist/cjs/siemens-ix.cjs.js +1 -1
  22. package/dist/cjs/theme-switcher-6b45e082.js +92 -0
  23. package/dist/collection/collection-manifest.json +1 -0
  24. package/dist/collection/components/button/button.css +1 -1
  25. package/dist/collection/components/button/button.js +5 -3
  26. package/dist/collection/components/category-filter/category-filter.css +4 -4
  27. package/dist/collection/components/category-filter/category-filter.js +7 -7
  28. package/dist/collection/components/chip/chip.css +20 -0
  29. package/dist/collection/components/chip/chip.js +22 -9
  30. package/dist/collection/components/counter-pill/counter-pill.css +10 -0
  31. package/dist/collection/components/dropdown/alignment.js +9 -0
  32. package/dist/collection/components/dropdown/dropdown.css +1 -0
  33. package/dist/collection/components/dropdown/dropdown.js +113 -50
  34. package/dist/collection/components/dropdown/placement.js +1 -0
  35. package/dist/collection/components/dropdown-button/dropdown-button.css +81 -0
  36. package/dist/collection/components/dropdown-button/dropdown-button.js +191 -0
  37. package/dist/collection/components/expanding-search/expanding-search.css +1 -0
  38. package/dist/collection/components/expanding-search/expanding-search.js +1 -1
  39. package/dist/collection/components/icon-button/icon-button.css +3 -30
  40. package/dist/collection/components/icon-button/icon-button.js +2 -2
  41. package/dist/collection/components/map-navigation/map-navigation.js +3 -2
  42. package/dist/collection/components/map-navigation-overlay/map-navigation-overlay.css +9 -4
  43. package/dist/collection/components/map-navigation-overlay/map-navigation-overlay.js +1 -1
  44. package/dist/collection/components/menu/menu.css +1 -1
  45. package/dist/collection/components/menu/menu.js +6 -21
  46. package/dist/collection/components/menu-avatar/menu-avatar.js +4 -30
  47. package/dist/collection/components/modal/modal.css +1 -0
  48. package/dist/collection/components/modal/modal.js +7 -1
  49. package/dist/collection/components/pill/pill.css +10 -0
  50. package/dist/collection/components/pill/pill.js +4 -1
  51. package/dist/collection/components/select/select.css +0 -3
  52. package/dist/collection/components/select/select.js +13 -12
  53. package/dist/collection/components/select-item/events.js +16 -0
  54. package/dist/collection/components/select-item/select-item.js +23 -4
  55. package/dist/collection/components/split-button/split-button.js +7 -36
  56. package/dist/collection/components/tree/tree.js +1 -1
  57. package/dist/collection/components/utils/theme-switcher.js +86 -0
  58. package/dist/collection/components/validation-tooltip/validation-tooltip.css +4 -24
  59. package/dist/collection/components/validation-tooltip/validation-tooltip.js +75 -28
  60. package/dist/collection/exports.js +1 -0
  61. package/dist/components/alignment.js +1363 -0
  62. package/dist/components/button.js +5 -3
  63. package/dist/components/dropdown.js +88 -41
  64. package/dist/components/icon-button.js +3 -3
  65. package/dist/components/index.d.ts +1 -0
  66. package/dist/components/index.js +2 -1
  67. package/dist/components/ix-category-filter.js +18 -12
  68. package/dist/components/ix-chip.js +21 -8
  69. package/dist/components/ix-counter-pill.js +1 -1
  70. package/dist/components/ix-dropdown-button.d.ts +11 -0
  71. package/dist/components/ix-dropdown-button.js +86 -0
  72. package/dist/components/ix-expanding-search.js +2 -2
  73. package/dist/components/ix-map-navigation.js +3 -2
  74. package/dist/components/ix-menu-avatar.js +6 -19
  75. package/dist/components/ix-menu.js +93 -46
  76. package/dist/components/ix-pill.js +5 -2
  77. package/dist/components/ix-select.js +9 -14
  78. package/dist/components/ix-split-button.js +6 -35
  79. package/dist/components/ix-validation-tooltip.js +74 -27
  80. package/dist/components/map-navigation-overlay.js +2 -2
  81. package/dist/components/modal.js +8 -2
  82. package/dist/components/select-item.js +27 -1
  83. package/dist/esm/alignment-f63c1b89.js +1363 -0
  84. package/dist/esm/index-6f4f3582.js +4 -0
  85. package/dist/esm/index.js +2 -1
  86. package/dist/esm/ix-button.entry.js +5 -3
  87. package/dist/esm/ix-category-filter.entry.js +8 -8
  88. package/dist/esm/ix-chip.entry.js +21 -8
  89. package/dist/esm/ix-counter-pill.entry.js +1 -1
  90. package/dist/esm/ix-dropdown-button.entry.js +36 -0
  91. package/dist/esm/ix-dropdown_2.entry.js +87 -41
  92. package/dist/esm/ix-expanding-search.entry.js +2 -2
  93. package/dist/esm/ix-icon-button.entry.js +3 -3
  94. package/dist/esm/ix-map-navigation_2.entry.js +5 -4
  95. package/dist/esm/ix-menu_9.entry.js +12 -93
  96. package/dist/esm/ix-modal_2.entry.js +1 -1
  97. package/dist/esm/ix-pill.entry.js +5 -2
  98. package/dist/esm/ix-select_2.entry.js +35 -14
  99. package/dist/esm/ix-split-button_2.entry.js +6 -35
  100. package/dist/esm/ix-validation-tooltip.entry.js +71 -26
  101. package/dist/esm/loader.js +1 -1
  102. package/dist/esm/{modal-e7343756.js → modal-df0a62f2.js} +8 -2
  103. package/dist/esm/siemens-ix.js +1 -1
  104. package/dist/esm/theme-switcher-dce1aaec.js +89 -0
  105. package/dist/siemens-ix/index.esm.js +1 -1
  106. package/dist/siemens-ix/p-03d38416.entry.js +1 -0
  107. package/dist/siemens-ix/p-0e357d27.entry.js +1 -0
  108. package/dist/siemens-ix/p-18d02e6f.entry.js +1 -0
  109. package/dist/siemens-ix/p-2bc72119.entry.js +1 -0
  110. package/dist/siemens-ix/p-2bd88760.entry.js +1 -0
  111. package/dist/siemens-ix/p-2c5abec1.js +1 -0
  112. package/dist/siemens-ix/p-35990ac7.js +1 -0
  113. package/dist/siemens-ix/p-43616759.entry.js +1 -0
  114. package/dist/siemens-ix/p-4fcb5f2b.entry.js +1 -0
  115. package/dist/siemens-ix/p-5631ae88.entry.js +1 -0
  116. package/dist/siemens-ix/p-5bbe9943.entry.js +1 -0
  117. package/dist/siemens-ix/p-6fe3bb9c.entry.js +1 -0
  118. package/dist/siemens-ix/{p-1cf3348f.entry.js → p-7f842cdc.entry.js} +1 -1
  119. package/dist/siemens-ix/p-ab7949ff.entry.js +1 -0
  120. package/dist/siemens-ix/p-b3d00feb.entry.js +1 -0
  121. package/dist/siemens-ix/p-d20119c1.entry.js +1 -0
  122. package/dist/siemens-ix/p-dec6114f.js +1 -0
  123. package/dist/siemens-ix/p-f35ce089.entry.js +1 -0
  124. package/dist/siemens-ix/siemens-ix.css +25 -3
  125. package/dist/siemens-ix/siemens-ix.esm.js +1 -1
  126. package/dist/types/components/button/button.d.ts +1 -1
  127. package/dist/types/components/category-filter/category-filter.d.ts +1 -0
  128. package/dist/types/components/chip/chip.d.ts +2 -1
  129. package/dist/types/components/dropdown/alignment.d.ts +2 -0
  130. package/dist/types/components/dropdown/dropdown.d.ts +19 -6
  131. package/dist/types/components/dropdown/placement.d.ts +8 -0
  132. package/dist/types/components/dropdown-button/dropdown-button.d.ts +37 -0
  133. package/dist/types/components/menu/menu.d.ts +0 -2
  134. package/dist/types/components/menu-avatar/menu-avatar.d.ts +1 -5
  135. package/dist/types/components/modal/modal.d.ts +1 -0
  136. package/dist/types/components/select/select.d.ts +2 -1
  137. package/dist/types/components/select-item/events.d.ts +9 -0
  138. package/dist/types/components/select-item/select-item.d.ts +3 -2
  139. package/dist/types/components/split-button/split-button.d.ts +4 -6
  140. package/dist/types/components/tree/tree.d.ts +1 -1
  141. package/dist/types/components/utils/theme-switcher.d.ts +19 -0
  142. package/dist/types/components/validation-tooltip/validation-tooltip.d.ts +12 -4
  143. package/dist/types/components.d.ts +88 -17
  144. package/dist/types/exports.d.ts +1 -0
  145. package/package.json +5 -6
  146. package/scss/components/_buttons.scss +23 -0
  147. package/scss/components/_dropdown.scss +2 -0
  148. package/dist/cjs/popper-d7a0f999.js +0 -1801
  149. package/dist/collection/components/utils/popover.util.js +0 -33
  150. package/dist/collection/components/utils/toggle-theme.js +0 -24
  151. package/dist/components/popover.util.js +0 -36
  152. package/dist/components/popper.js +0 -1799
  153. package/dist/esm/popper-42db9fbd.js +0 -1799
  154. package/dist/siemens-ix/p-0a8cfa42.entry.js +0 -1
  155. package/dist/siemens-ix/p-16e95211.entry.js +0 -1
  156. package/dist/siemens-ix/p-1fe97752.entry.js +0 -1
  157. package/dist/siemens-ix/p-23d5469a.entry.js +0 -1
  158. package/dist/siemens-ix/p-47d55e3d.entry.js +0 -1
  159. package/dist/siemens-ix/p-537f0678.entry.js +0 -1
  160. package/dist/siemens-ix/p-5e222be2.entry.js +0 -1
  161. package/dist/siemens-ix/p-7adc0686.entry.js +0 -1
  162. package/dist/siemens-ix/p-94604cdf.js +0 -1
  163. package/dist/siemens-ix/p-9566c834.entry.js +0 -1
  164. package/dist/siemens-ix/p-9e90827e.entry.js +0 -1
  165. package/dist/siemens-ix/p-a12f6079.entry.js +0 -1
  166. package/dist/siemens-ix/p-c0fecc2b.entry.js +0 -1
  167. package/dist/siemens-ix/p-d8688602.entry.js +0 -1
  168. package/dist/siemens-ix/p-f86fcdf4.js +0 -1
  169. package/dist/types/components/utils/popover.util.d.ts +0 -9
  170. package/dist/types/components/utils/toggle-theme.d.ts +0 -1
  171. package/src/components/animated-tab/readme.md +0 -24
  172. package/src/components/animated-tabs/readme.md +0 -31
  173. package/src/components/application-header/readme.md +0 -21
  174. package/src/components/basic-navigation/readme.md +0 -22
  175. package/src/components/blind/readme.md +0 -29
  176. package/src/components/breadcrumb/readme.md +0 -33
  177. package/src/components/breadcrumb-item/readme.md +0 -22
  178. package/src/components/button/readme.md +0 -27
  179. package/src/components/category-filter/readme.md +0 -39
  180. package/src/components/chip/readme.md +0 -36
  181. package/src/components/counter-pill/readme.md +0 -25
  182. package/src/components/date-picker/readme.md +0 -53
  183. package/src/components/date-time-card/readme.md +0 -22
  184. package/src/components/datetime-picker/readme.md +0 -45
  185. package/src/components/drawer/readme.md +0 -47
  186. package/src/components/dropdown/readme.md +0 -49
  187. package/src/components/dropdown-item/readme.md +0 -45
  188. package/src/components/event-list/readme.md +0 -24
  189. package/src/components/event-list-item/readme.md +0 -32
  190. package/src/components/expanding-search/readme.md +0 -32
  191. package/src/components/filter-chip/readme.md +0 -30
  192. package/src/components/flip-tile/readme.md +0 -22
  193. package/src/components/flip-tile-content/readme.md +0 -14
  194. package/src/components/group/readme.md +0 -14
  195. package/src/components/group-dropdown-item/readme.md +0 -22
  196. package/src/components/group-item/readme.md +0 -34
  197. package/src/components/icon/readme.md +0 -23
  198. package/src/components/icon-button/readme.md +0 -31
  199. package/src/components/input-group/readme.md +0 -14
  200. package/src/components/kpi/readme.md +0 -27
  201. package/src/components/map-navigation/readme.md +0 -54
  202. package/src/components/map-navigation-overlay/readme.md +0 -30
  203. package/src/components/menu/readme.md +0 -86
  204. package/src/components/menu-about/readme.md +0 -30
  205. package/src/components/menu-about-item/readme.md +0 -21
  206. package/src/components/menu-about-news/readme.md +0 -34
  207. package/src/components/menu-avatar/readme.md +0 -30
  208. package/src/components/menu-avatar-item/readme.md +0 -29
  209. package/src/components/menu-item/readme.md +0 -26
  210. package/src/components/menu-settings/readme.md +0 -30
  211. package/src/components/menu-settings-item/readme.md +0 -21
  212. package/src/components/message-bar/readme.md +0 -31
  213. package/src/components/modal/readme.md +0 -67
  214. package/src/components/modal-container/readme.md +0 -29
  215. package/src/components/my-component/readme.md +0 -16
  216. package/src/components/pill/readme.md +0 -26
  217. package/src/components/select/readme.md +0 -37
  218. package/src/components/select-item/readme.md +0 -44
  219. package/src/components/spinner/readme.md +0 -22
  220. package/src/components/split-button/readme.md +0 -36
  221. package/src/components/split-button-item/readme.md +0 -29
  222. package/src/components/tab-item/readme.md +0 -28
  223. package/src/components/tabs/readme.md +0 -25
  224. package/src/components/tile/readme.md +0 -21
  225. package/src/components/time-picker/readme.md +0 -51
  226. package/src/components/toast/readme.md +0 -36
  227. package/src/components/toggle/readme.md +0 -35
  228. package/src/components/tree/readme.md +0 -32
  229. package/src/components/tree-item/readme.md +0 -31
  230. package/src/components/upload/readme.md +0 -51
  231. package/src/components/validation-tooltip/readme.md +0 -31
  232. package/src/components/workflow-step/readme.md +0 -28
  233. package/src/components/workflow-steps/readme.md +0 -33
@@ -6,9 +6,9 @@
6
6
  * This source code is licensed under the MIT license found in the
7
7
  * LICENSE file in the root directory of this source tree.
8
8
  */
9
- import '@popperjs/core';
10
- import { createPopper } from '@popperjs/core';
9
+ import { arrow, autoPlacement, autoUpdate, computePosition, inline, offset, shift, } from '@floating-ui/dom';
11
10
  import { h, Host } from '@stencil/core';
11
+ import { getAlignment } from '../dropdown/alignment';
12
12
  /**
13
13
  * @slot tooltip-message - Custom tooltip message with html support
14
14
  */
@@ -19,6 +19,8 @@ export class ValidationTooltip {
19
19
  this.message = undefined;
20
20
  this.placement = 'top';
21
21
  this.isInputValid = true;
22
+ this.tooltipPosition = undefined;
23
+ this.arrowPosition = undefined;
22
24
  }
23
25
  get arrow() {
24
26
  return this.hostElement.querySelector('#arrow');
@@ -32,6 +34,61 @@ export class ValidationTooltip {
32
34
  get tooltipElement() {
33
35
  return this.hostElement.querySelector('.validation-tooltip');
34
36
  }
37
+ destoryAutoUpdate() {
38
+ this.tooltipElement.style.display = 'none';
39
+ if (this.autoUpdateCleanup) {
40
+ this.autoUpdateCleanup();
41
+ }
42
+ }
43
+ applyTooltipPosition() {
44
+ this.tooltipElement.style.display = 'block';
45
+ let positionConfig = {
46
+ strategy: 'fixed',
47
+ middleware: [
48
+ inline(),
49
+ shift(),
50
+ offset({
51
+ mainAxis: 8,
52
+ }),
53
+ ],
54
+ };
55
+ if (this.placement.includes('auto')) {
56
+ positionConfig.middleware.push(autoPlacement({
57
+ alignment: getAlignment(this.placement),
58
+ }));
59
+ }
60
+ else {
61
+ positionConfig.placement = this.placement;
62
+ }
63
+ this.autoUpdateCleanup = autoUpdate(this.inputElement, this.tooltipElement, async () => {
64
+ positionConfig.middleware = [
65
+ ...positionConfig.middleware,
66
+ arrow({
67
+ element: this.arrow,
68
+ }),
69
+ ];
70
+ const computeResponse = await computePosition(this.inputElement, this.tooltipElement, positionConfig);
71
+ if (computeResponse.middlewareData.arrow) {
72
+ const { x, y } = computeResponse.middlewareData.arrow;
73
+ this.arrowPosition = {
74
+ x,
75
+ y,
76
+ };
77
+ Object.assign(this.arrow.style, {
78
+ left: x != null ? `${x}px` : '',
79
+ top: y != null ? `${y}px` : '',
80
+ });
81
+ }
82
+ this.tooltipPosition = {
83
+ x: computeResponse.x,
84
+ y: computeResponse.y,
85
+ };
86
+ }, {
87
+ ancestorResize: true,
88
+ ancestorScroll: true,
89
+ elementResize: true,
90
+ });
91
+ }
35
92
  componentDidLoad() {
36
93
  if (!this.inputElement) {
37
94
  throw Error('Validation tooltip is only working with an direct input child.');
@@ -63,41 +120,29 @@ export class ValidationTooltip {
63
120
  }
64
121
  }
65
122
  disconnectedCallback() {
66
- var _a, _b;
123
+ var _a;
67
124
  (_a = this.observer) === null || _a === void 0 ? void 0 : _a.disconnect();
68
- (_b = this.popper) === null || _b === void 0 ? void 0 : _b.destroy();
125
+ this.destoryAutoUpdate();
69
126
  this.formElement.removeEventListener('submit', this.onSubmitBind);
70
127
  this.inputElement.removeEventListener('focus', this.onInputFocusBind);
71
128
  }
72
129
  validationChanged() {
73
130
  if (!this.isInputValid) {
74
- this.tooltipElement.style.display = 'block';
75
- this.popper = createPopper(this.inputElement, this.tooltipElement, {
76
- placement: this.placement,
77
- strategy: 'absolute',
78
- modifiers: [
79
- {
80
- name: 'offset',
81
- options: {
82
- offset: [0, 8],
83
- },
84
- },
85
- {
86
- name: 'arrow',
87
- options: {
88
- element: this.arrow,
89
- },
90
- },
91
- ],
92
- });
131
+ this.applyTooltipPosition();
93
132
  }
94
133
  else {
95
- this.tooltipElement.style.display = 'none';
96
- this.popper.destroy();
134
+ this.destoryAutoUpdate();
97
135
  }
98
136
  }
99
137
  render() {
100
- return (h(Host, null, h("slot", null), h("div", { role: "tooltip", style: { display: 'none' }, class: "validation-tooltip text-default" }, this.message, h("slot", { name: "tooltip-message" }), h("div", { id: "arrow", "data-popper-arrow": true }))));
138
+ var _a, _b;
139
+ return (h(Host, null, h("slot", null), h("div", { role: "tooltip", style: {
140
+ display: 'none',
141
+ position: 'fixed',
142
+ top: '0',
143
+ left: '0',
144
+ transform: `translate(${Math.round(((_a = this.tooltipPosition) === null || _a === void 0 ? void 0 : _a.x) || 0)}px,${Math.round(((_b = this.tooltipPosition) === null || _b === void 0 ? void 0 : _b.y) || 0)}px)`,
145
+ }, class: "validation-tooltip text-default" }, this.message, h("slot", { name: "tooltip-message" }), h("div", { id: "arrow" }))));
101
146
  }
102
147
  static get is() { return "ix-validation-tooltip"; }
103
148
  static get encapsulation() { return "scoped"; }
@@ -139,7 +184,7 @@ export class ValidationTooltip {
139
184
  "references": {
140
185
  "Placement": {
141
186
  "location": "import",
142
- "path": "@popperjs/core"
187
+ "path": "../dropdown/placement"
143
188
  }
144
189
  }
145
190
  },
@@ -157,7 +202,9 @@ export class ValidationTooltip {
157
202
  }
158
203
  static get states() {
159
204
  return {
160
- "isInputValid": {}
205
+ "isInputValid": {},
206
+ "tooltipPosition": {},
207
+ "arrowPosition": {}
161
208
  };
162
209
  }
163
210
  static get elementRef() { return "hostElement"; }
@@ -13,3 +13,4 @@ export * from './components/toast/toast-utils';
13
13
  export * from './components/tree-item/default-tree-item';
14
14
  export * from './components/tree/tree-model';
15
15
  export * from './components/upload/upload-file-state';
16
+ export * from './components/utils/theme-switcher';