@siemens/ix 2.0.0-beta.0 → 2.0.0-beta.1

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 (1215) hide show
  1. package/dist/cjs/base-button-c158438e.js +50 -0
  2. package/dist/cjs/base-button-c158438e.js.map +1 -0
  3. package/dist/cjs/base-icon-button-bbca2582.js +20 -0
  4. package/dist/cjs/base-icon-button-bbca2582.js.map +1 -0
  5. package/dist/cjs/breakpoints-e19e827e.js +27 -0
  6. package/dist/cjs/breakpoints-e19e827e.js.map +1 -0
  7. package/dist/cjs/context-0fdf2fa1.js +106 -0
  8. package/dist/cjs/context-0fdf2fa1.js.map +1 -0
  9. package/dist/cjs/{floating-ui.dom.esm-b79b633f.js → floating-ui.dom.esm-3b936e26.js} +654 -534
  10. package/dist/cjs/floating-ui.dom.esm-3b936e26.js.map +1 -0
  11. package/dist/cjs/{icon-eeb2940a.js → icon-9e9f2faf.js} +2 -2
  12. package/dist/cjs/{icon-eeb2940a.js.map → icon-9e9f2faf.js.map} +1 -1
  13. package/dist/cjs/index-1061a1c1.js +8 -0
  14. package/dist/cjs/index-1061a1c1.js.map +1 -0
  15. package/dist/cjs/{index-e56a1d39.js → index-be499a74.js} +45 -398
  16. package/dist/cjs/index-be499a74.js.map +1 -0
  17. package/dist/cjs/index.cjs.js +4 -4
  18. package/dist/cjs/ix-action-card.cjs.entry.js +3 -3
  19. package/dist/cjs/ix-action-card.cjs.entry.js.map +1 -1
  20. package/dist/cjs/ix-application-header.cjs.entry.js +10 -5
  21. package/dist/cjs/ix-application-header.cjs.entry.js.map +1 -1
  22. package/dist/cjs/ix-application-sidebar.cjs.entry.js +47 -0
  23. package/dist/cjs/ix-application-sidebar.cjs.entry.js.map +1 -0
  24. package/dist/cjs/ix-application.cjs.entry.js +109 -0
  25. package/dist/cjs/ix-application.cjs.entry.js.map +1 -0
  26. package/dist/cjs/ix-avatar.cjs.entry.js +1 -1
  27. package/dist/cjs/ix-basic-navigation.cjs.entry.js +44 -10
  28. package/dist/cjs/ix-basic-navigation.cjs.entry.js.map +1 -1
  29. package/dist/cjs/ix-blind.cjs.entry.js +5 -4
  30. package/dist/cjs/ix-blind.cjs.entry.js.map +1 -1
  31. package/dist/cjs/ix-breadcrumb_2.cjs.entry.js +100 -92
  32. package/dist/cjs/ix-breadcrumb_2.cjs.entry.js.map +1 -1
  33. package/dist/cjs/ix-burger-menu.cjs.entry.js +3 -3
  34. package/dist/cjs/ix-burger-menu.cjs.entry.js.map +1 -1
  35. package/dist/cjs/ix-button.cjs.entry.js +22 -7
  36. package/dist/cjs/ix-button.cjs.entry.js.map +1 -1
  37. package/dist/cjs/ix-card-accordion_2.cjs.entry.js +2 -2
  38. package/dist/cjs/ix-card-accordion_2.cjs.entry.js.map +1 -1
  39. package/dist/cjs/ix-card-list.cjs.entry.js +2 -2
  40. package/dist/cjs/ix-card-list.cjs.entry.js.map +1 -1
  41. package/dist/cjs/ix-card_2.cjs.entry.js +3 -3
  42. package/dist/cjs/ix-card_2.cjs.entry.js.map +1 -1
  43. package/dist/cjs/ix-category-filter.cjs.entry.js +73 -40
  44. package/dist/cjs/ix-category-filter.cjs.entry.js.map +1 -1
  45. package/dist/cjs/ix-chip.cjs.entry.js +2 -2
  46. package/dist/cjs/ix-chip.cjs.entry.js.map +1 -1
  47. package/dist/cjs/ix-col.cjs.entry.js +77 -0
  48. package/dist/cjs/ix-col.cjs.entry.js.map +1 -0
  49. package/dist/cjs/ix-content-header.cjs.entry.js +1 -1
  50. package/dist/cjs/ix-content.cjs.entry.js +32 -0
  51. package/dist/cjs/ix-content.cjs.entry.js.map +1 -0
  52. package/dist/cjs/ix-css-grid-item.cjs.entry.js +1 -1
  53. package/dist/cjs/ix-css-grid-item.cjs.entry.js.map +1 -1
  54. package/dist/cjs/ix-css-grid.cjs.entry.js +1 -1
  55. package/dist/cjs/ix-css-grid.cjs.entry.js.map +1 -1
  56. package/dist/cjs/ix-date-picker_2.cjs.entry.js +4 -4
  57. package/dist/cjs/ix-date-picker_2.cjs.entry.js.map +1 -1
  58. package/dist/cjs/ix-date-time-card.cjs.entry.js +2 -2
  59. package/dist/cjs/ix-date-time-card.cjs.entry.js.map +1 -1
  60. package/dist/cjs/ix-datetime-picker.cjs.entry.js +2 -2
  61. package/dist/cjs/ix-datetime-picker.cjs.entry.js.map +1 -1
  62. package/dist/cjs/ix-divider.cjs.entry.js +1 -1
  63. package/dist/cjs/ix-drawer.cjs.entry.js +2 -2
  64. package/dist/cjs/ix-drawer.cjs.entry.js.map +1 -1
  65. package/dist/cjs/ix-dropdown-button.cjs.entry.js +4 -3
  66. package/dist/cjs/ix-dropdown-button.cjs.entry.js.map +1 -1
  67. package/dist/cjs/ix-dropdown-header.cjs.entry.js +2 -2
  68. package/dist/cjs/ix-dropdown-header.cjs.entry.js.map +1 -1
  69. package/dist/cjs/ix-dropdown-quick-actions.cjs.entry.js +1 -1
  70. package/dist/cjs/ix-dropdown_2.cjs.entry.js +6 -8
  71. package/dist/cjs/ix-dropdown_2.cjs.entry.js.map +1 -1
  72. package/dist/cjs/ix-empty-state.cjs.entry.js +2 -2
  73. package/dist/cjs/ix-empty-state.cjs.entry.js.map +1 -1
  74. package/dist/cjs/ix-event-list_2.cjs.entry.js +3 -3
  75. package/dist/cjs/ix-event-list_2.cjs.entry.js.map +1 -1
  76. package/dist/cjs/ix-expanding-search.cjs.entry.js +2 -2
  77. package/dist/cjs/ix-expanding-search.cjs.entry.js.map +1 -1
  78. package/dist/cjs/ix-filter-chip.cjs.entry.js +4 -3
  79. package/dist/cjs/ix-filter-chip.cjs.entry.js.map +1 -1
  80. package/dist/cjs/ix-flip-tile_2.cjs.entry.js +28 -18
  81. package/dist/cjs/ix-flip-tile_2.cjs.entry.js.map +1 -1
  82. package/dist/cjs/ix-form-field.cjs.entry.js +27 -0
  83. package/dist/cjs/ix-form-field.cjs.entry.js.map +1 -0
  84. package/dist/cjs/ix-grid.cjs.entry.js +29 -0
  85. package/dist/cjs/ix-grid.cjs.entry.js.map +1 -0
  86. package/dist/cjs/ix-group-context-menu.cjs.entry.js +2 -2
  87. package/dist/cjs/ix-group_2.cjs.entry.js +4 -4
  88. package/dist/cjs/ix-group_2.cjs.entry.js.map +1 -1
  89. package/dist/cjs/ix-icon-button.cjs.entry.js +21 -13
  90. package/dist/cjs/ix-icon-button.cjs.entry.js.map +1 -1
  91. package/dist/cjs/ix-icon-toggle-button.cjs.entry.js +88 -0
  92. package/dist/cjs/ix-icon-toggle-button.cjs.entry.js.map +1 -0
  93. package/dist/cjs/ix-icon.cjs.entry.js +2 -2
  94. package/dist/cjs/ix-input-group.cjs.entry.js +85 -18
  95. package/dist/cjs/ix-input-group.cjs.entry.js.map +1 -1
  96. package/dist/cjs/ix-key-value-list.cjs.entry.js +1 -1
  97. package/dist/cjs/ix-key-value.cjs.entry.js +1 -1
  98. package/dist/cjs/ix-kpi.cjs.entry.js +2 -2
  99. package/dist/cjs/ix-kpi.cjs.entry.js.map +1 -1
  100. package/dist/cjs/ix-link-button.cjs.entry.js +2 -2
  101. package/dist/cjs/ix-link-button.cjs.entry.js.map +1 -1
  102. package/dist/cjs/ix-map-navigation_2.cjs.entry.js +11 -3
  103. package/dist/cjs/ix-map-navigation_2.cjs.entry.js.map +1 -1
  104. package/dist/cjs/ix-menu-category.cjs.entry.js +6 -5
  105. package/dist/cjs/ix-menu-category.cjs.entry.js.map +1 -1
  106. package/dist/cjs/ix-menu_9.cjs.entry.js +101 -75
  107. package/dist/cjs/ix-menu_9.cjs.entry.js.map +1 -1
  108. package/dist/cjs/ix-message-bar.cjs.entry.js +2 -2
  109. package/dist/cjs/ix-message-bar.cjs.entry.js.map +1 -1
  110. package/dist/cjs/ix-modal-content.cjs.entry.js +2 -2
  111. package/dist/cjs/ix-modal-content.cjs.entry.js.map +1 -1
  112. package/dist/cjs/ix-modal-example.cjs.entry.js +1 -1
  113. package/dist/cjs/ix-modal-footer.cjs.entry.js +2 -2
  114. package/dist/cjs/ix-modal-footer.cjs.entry.js.map +1 -1
  115. package/dist/cjs/ix-modal-header.cjs.entry.js +2 -2
  116. package/dist/cjs/ix-modal-header.cjs.entry.js.map +1 -1
  117. package/dist/cjs/ix-modal-loading.cjs.entry.js +1 -1
  118. package/dist/cjs/ix-modal.cjs.entry.js +2 -2
  119. package/dist/cjs/ix-modal.cjs.entry.js.map +1 -1
  120. package/dist/cjs/ix-pagination.cjs.entry.js +32 -15
  121. package/dist/cjs/ix-pagination.cjs.entry.js.map +1 -1
  122. package/dist/cjs/ix-pill.cjs.entry.js +2 -2
  123. package/dist/cjs/ix-pill.cjs.entry.js.map +1 -1
  124. package/dist/cjs/ix-push-card.cjs.entry.js +5 -2
  125. package/dist/cjs/ix-push-card.cjs.entry.js.map +1 -1
  126. package/dist/cjs/ix-row.cjs.entry.js +21 -0
  127. package/dist/cjs/ix-row.cjs.entry.js.map +1 -0
  128. package/dist/cjs/ix-select_2.cjs.entry.js +68 -49
  129. package/dist/cjs/ix-select_2.cjs.entry.js.map +1 -1
  130. package/dist/cjs/ix-spinner.cjs.entry.js +2 -2
  131. package/dist/cjs/ix-spinner.cjs.entry.js.map +1 -1
  132. package/dist/cjs/ix-split-button_2.cjs.entry.js +7 -5
  133. package/dist/cjs/ix-split-button_2.cjs.entry.js.map +1 -1
  134. package/dist/cjs/ix-tab-item.cjs.entry.js +11 -3
  135. package/dist/cjs/ix-tab-item.cjs.entry.js.map +1 -1
  136. package/dist/cjs/ix-tabs.cjs.entry.js +22 -7
  137. package/dist/cjs/ix-tabs.cjs.entry.js.map +1 -1
  138. package/dist/cjs/ix-tile.cjs.entry.js +2 -2
  139. package/dist/cjs/ix-tile.cjs.entry.js.map +1 -1
  140. package/dist/cjs/ix-toast_2.cjs.entry.js +2 -2
  141. package/dist/cjs/ix-toast_2.cjs.entry.js.map +1 -1
  142. package/dist/cjs/ix-toggle-button.cjs.entry.js +77 -0
  143. package/dist/cjs/ix-toggle-button.cjs.entry.js.map +1 -0
  144. package/dist/cjs/ix-toggle.cjs.entry.js +2 -2
  145. package/dist/cjs/ix-toggle.cjs.entry.js.map +1 -1
  146. package/dist/cjs/ix-tooltip.cjs.entry.js +2 -2
  147. package/dist/cjs/ix-tree_2.cjs.entry.js +16 -9
  148. package/dist/cjs/ix-tree_2.cjs.entry.js.map +1 -1
  149. package/dist/cjs/ix-typography.cjs.entry.js +25 -12
  150. package/dist/cjs/ix-typography.cjs.entry.js.map +1 -1
  151. package/dist/cjs/ix-upload.cjs.entry.js +2 -2
  152. package/dist/cjs/ix-upload.cjs.entry.js.map +1 -1
  153. package/dist/cjs/ix-validation-tooltip.cjs.entry.js +8 -8
  154. package/dist/cjs/ix-validation-tooltip.cjs.entry.js.map +1 -1
  155. package/dist/cjs/ix-workflow-step_2.cjs.entry.js +14 -18
  156. package/dist/cjs/ix-workflow-step_2.cjs.entry.js.map +1 -1
  157. package/dist/cjs/loader.cjs.js +2 -2
  158. package/dist/cjs/menu-service-f7ef5265.js +159 -0
  159. package/dist/cjs/menu-service-f7ef5265.js.map +1 -0
  160. package/dist/cjs/my-component.cjs.entry.js +1 -1
  161. package/dist/cjs/my-component.cjs.entry.js.map +1 -1
  162. package/dist/cjs/{shadow-dom-f9b90696.js → shadow-dom-9b10f758.js} +4 -1
  163. package/dist/cjs/shadow-dom-9b10f758.js.map +1 -0
  164. package/dist/cjs/siemens-ix.cjs.js +2 -2
  165. package/dist/cjs/{theme-switcher-bdbd0d30.js → theme-switcher-d0386ac9.js} +36 -4
  166. package/dist/cjs/theme-switcher-d0386ac9.js.map +1 -0
  167. package/dist/collection/collection-manifest.json +13 -13
  168. package/dist/collection/components/action-card/action-card.css +36 -0
  169. package/dist/collection/components/action-card/action-card.js +1 -1
  170. package/dist/collection/components/action-card/action-card.js.map +1 -1
  171. package/dist/collection/components/application/application.css +106 -0
  172. package/dist/collection/components/application/application.js +220 -0
  173. package/dist/collection/components/application/application.js.map +1 -0
  174. package/dist/collection/components/application-header/application-header.css +4 -2
  175. package/dist/collection/components/application-header/application-header.js +8 -28
  176. package/dist/collection/components/application-header/application-header.js.map +1 -1
  177. package/dist/collection/components/application-header/test/application-headet.ct.js +20 -0
  178. package/dist/collection/components/application-header/test/application-headet.ct.js.map +1 -0
  179. package/dist/collection/components/application-sidebar/application-sidebar.css +69 -0
  180. package/dist/collection/components/application-sidebar/application-sidebar.js +70 -0
  181. package/dist/collection/components/application-sidebar/application-sidebar.js.map +1 -0
  182. package/dist/collection/components/application-sidebar/events.js +15 -0
  183. package/dist/collection/components/application-sidebar/events.js.map +1 -0
  184. package/dist/collection/components/basic-navigation/basic-navigation.css +39 -2
  185. package/dist/collection/components/basic-navigation/basic-navigation.js +91 -8
  186. package/dist/collection/components/basic-navigation/basic-navigation.js.map +1 -1
  187. package/dist/collection/components/blind/blind.css +23 -8
  188. package/dist/collection/components/blind/blind.js +23 -2
  189. package/dist/collection/components/blind/blind.js.map +1 -1
  190. package/dist/collection/components/breadcrumb/breadcrumb.css +49 -153
  191. package/dist/collection/components/breadcrumb/breadcrumb.js +80 -92
  192. package/dist/collection/components/breadcrumb/breadcrumb.js.map +1 -1
  193. package/dist/collection/components/breadcrumb/test/breadcrumb.ct.js +97 -0
  194. package/dist/collection/components/breadcrumb/test/breadcrumb.ct.js.map +1 -0
  195. package/dist/collection/components/breadcrumb-item/breadcrumb-item.css +1063 -1
  196. package/dist/collection/components/breadcrumb-item/breadcrumb-item.js +153 -3
  197. package/dist/collection/components/breadcrumb-item/breadcrumb-item.js.map +1 -1
  198. package/dist/collection/components/button/base-button.js +10 -1
  199. package/dist/collection/components/button/base-button.js.map +1 -1
  200. package/dist/collection/components/button/button.css +287 -208
  201. package/dist/collection/components/button/button.js +62 -44
  202. package/dist/collection/components/button/button.js.map +1 -1
  203. package/dist/collection/components/card/card.css +36 -0
  204. package/dist/collection/components/card-accordion/card-accordion.css +37 -0
  205. package/dist/collection/components/card-content/card-content.css +36 -0
  206. package/dist/collection/components/card-list/card-list.css +36 -0
  207. package/dist/collection/components/category-filter/category-filter.css +1303 -4
  208. package/dist/collection/components/category-filter/category-filter.js +115 -55
  209. package/dist/collection/components/category-filter/category-filter.js.map +1 -1
  210. package/dist/collection/components/chip/chip.css +36 -0
  211. package/dist/collection/components/col/col.css +19 -0
  212. package/dist/collection/components/col/col.js +189 -0
  213. package/dist/collection/components/col/col.js.map +1 -0
  214. package/dist/collection/components/content/content.css +75 -0
  215. package/dist/collection/components/content/content.js +46 -0
  216. package/dist/collection/components/content/content.js.map +1 -0
  217. package/dist/collection/components/css-grid/builder.js.map +1 -0
  218. package/dist/collection/components/css-grid/css-grid-item.js.map +1 -0
  219. package/dist/collection/components/{layout/css-grid → css-grid}/css-grid.js +1 -1
  220. package/dist/collection/components/css-grid/css-grid.js.map +1 -0
  221. package/dist/collection/components/date-picker/date-picker.css +38 -0
  222. package/dist/collection/components/date-time-card/date-time-card.css +38 -0
  223. package/dist/collection/components/datetime-picker/datetime-picker.css +36 -0
  224. package/dist/collection/components/drawer/drawer.css +36 -0
  225. package/dist/collection/components/dropdown/dropdown.css +36 -0
  226. package/dist/collection/components/dropdown/dropdown.js.map +1 -1
  227. package/dist/collection/components/dropdown-button/dropdown-button.css +46 -4
  228. package/dist/collection/components/dropdown-button/dropdown-button.js +27 -1
  229. package/dist/collection/components/dropdown-button/dropdown-button.js.map +1 -1
  230. package/dist/collection/components/dropdown-header/dropdown-header.css +36 -0
  231. package/dist/collection/components/dropdown-item/dropdown-item.css +36 -0
  232. package/dist/collection/components/empty-state/empty-state.css +38 -0
  233. package/dist/collection/components/event-list/event-list.css +36 -0
  234. package/dist/collection/components/event-list-item/event-list-item.css +42 -4
  235. package/dist/collection/components/expanding-search/expanding-search.css +47 -4
  236. package/dist/collection/components/filter-chip/filter-chip.css +48 -1
  237. package/dist/collection/components/filter-chip/filter-chip.js +23 -1
  238. package/dist/collection/components/filter-chip/filter-chip.js.map +1 -1
  239. package/dist/collection/components/flip-tile/flip-tile.css +208 -0
  240. package/dist/collection/components/flip-tile/flip-tile.js +25 -36
  241. package/dist/collection/components/flip-tile/flip-tile.js.map +1 -1
  242. package/dist/collection/components/flip-tile/test/flip-tile.ct.js +57 -0
  243. package/dist/collection/components/flip-tile/test/flip-tile.ct.js.map +1 -0
  244. package/dist/collection/components/flip-tile-content/flip-tile-content.js +29 -1
  245. package/dist/collection/components/flip-tile-content/flip-tile-content.js.map +1 -1
  246. package/dist/collection/components/form-field/form-field.css +234 -0
  247. package/dist/collection/components/form-field/form-field.js +56 -0
  248. package/dist/collection/components/form-field/form-field.js.map +1 -0
  249. package/dist/collection/components/grid/grid.css +26 -0
  250. package/dist/collection/components/grid/grid.js +98 -0
  251. package/dist/collection/components/grid/grid.js.map +1 -0
  252. package/dist/collection/components/group/group.css +4 -4
  253. package/dist/collection/components/group-item/group-item.css +36 -0
  254. package/dist/collection/components/icon-button/base-icon-button.js +14 -0
  255. package/dist/collection/components/icon-button/base-icon-button.js.map +1 -0
  256. package/dist/collection/components/icon-button/icon-button.css +383 -173
  257. package/dist/collection/components/icon-button/icon-button.js +18 -49
  258. package/dist/collection/components/icon-button/icon-button.js.map +1 -1
  259. package/dist/collection/components/icon-toggle-button/icon-toggle-button.css +618 -0
  260. package/dist/collection/components/icon-toggle-button/icon-toggle-button.js +274 -0
  261. package/dist/collection/components/icon-toggle-button/icon-toggle-button.js.map +1 -0
  262. package/dist/collection/components/input-group/input-group.css +54 -1
  263. package/dist/collection/components/input-group/input-group.js +92 -17
  264. package/dist/collection/components/input-group/input-group.js.map +1 -1
  265. package/dist/collection/components/kpi/kpi.css +38 -2
  266. package/dist/collection/components/link-button/link-button.css +72 -66
  267. package/dist/collection/components/map-navigation/map-navigation.css +36 -0
  268. package/dist/collection/components/map-navigation/map-navigation.js +8 -0
  269. package/dist/collection/components/map-navigation/map-navigation.js.map +1 -1
  270. package/dist/collection/components/map-navigation-overlay/map-navigation-overlay.css +56 -0
  271. package/dist/collection/components/map-navigation-overlay/map-navigation-overlay.js +1 -1
  272. package/dist/collection/components/map-navigation-overlay/map-navigation-overlay.js.map +1 -1
  273. package/dist/collection/components/menu/burger-menu.css +104 -62
  274. package/dist/collection/components/menu/menu.css +45 -6
  275. package/dist/collection/components/menu/menu.js +66 -103
  276. package/dist/collection/components/menu/menu.js.map +1 -1
  277. package/dist/collection/components/menu/test/menu.ct.js +8 -10
  278. package/dist/collection/components/menu/test/menu.ct.js.map +1 -1
  279. package/dist/collection/components/menu-about/menu-about.css +2 -2
  280. package/dist/collection/components/menu-about/menu-about.js +3 -3
  281. package/dist/collection/components/menu-about/menu-about.js.map +1 -1
  282. package/dist/collection/components/menu-about-news/menu-about-news.css +36 -0
  283. package/dist/collection/components/menu-avatar/menu-avatar.css +46 -2
  284. package/dist/collection/components/menu-avatar/menu-avatar.js +2 -2
  285. package/dist/collection/components/menu-avatar/menu-avatar.js.map +1 -1
  286. package/dist/collection/components/menu-avatar-item/menu-avatar-item.css +36 -1
  287. package/dist/collection/components/menu-category/menu-category.css +41 -0
  288. package/dist/collection/components/menu-category/menu-category.js +3 -3
  289. package/dist/collection/components/menu-category/menu-category.js.map +1 -1
  290. package/dist/collection/components/menu-category/test/menu-category.ct.js +27 -10
  291. package/dist/collection/components/menu-category/test/menu-category.ct.js.map +1 -1
  292. package/dist/collection/components/menu-item/menu-item.css +11 -6
  293. package/dist/collection/components/menu-item/menu-item.js +7 -1
  294. package/dist/collection/components/menu-item/menu-item.js.map +1 -1
  295. package/dist/collection/components/menu-settings/menu-settings.css +40 -1
  296. package/dist/collection/components/menu-settings/menu-settings.js +1 -1
  297. package/dist/collection/components/menu-settings/menu-settings.js.map +1 -1
  298. package/dist/collection/components/message-bar/message-bar.css +38 -0
  299. package/dist/collection/components/modal/modal.css +3 -3
  300. package/dist/collection/components/modal-content/modal-content.css +36 -0
  301. package/dist/collection/components/modal-footer/modal-footer.css +36 -0
  302. package/dist/collection/components/modal-header/modal-header.css +36 -0
  303. package/dist/collection/components/my-component/my-component.js +1 -1
  304. package/dist/collection/components/my-component/my-component.js.map +1 -1
  305. package/dist/collection/components/pagination/pagination.css +919 -2
  306. package/dist/collection/components/pagination/pagination.js +31 -14
  307. package/dist/collection/components/pagination/pagination.js.map +1 -1
  308. package/dist/collection/components/pill/pill.css +36 -0
  309. package/dist/collection/components/push-card/push-card.js +4 -1
  310. package/dist/collection/components/push-card/push-card.js.map +1 -1
  311. package/dist/collection/components/{animated-tab/animated-tab.css → row/row.css} +7 -4
  312. package/dist/collection/components/row/row.js +30 -0
  313. package/dist/collection/components/row/row.js.map +1 -0
  314. package/dist/collection/components/select/select.css +71 -6
  315. package/dist/collection/components/select/select.js +118 -55
  316. package/dist/collection/components/select/select.js.map +1 -1
  317. package/dist/collection/components/select/test/select.ct.js +10 -6
  318. package/dist/collection/components/select/test/select.ct.js.map +1 -1
  319. package/dist/collection/components/select-item/select-item.js +1 -1
  320. package/dist/collection/components/select-item/select-item.js.map +1 -1
  321. package/dist/collection/components/spinner/spinner.css +148 -0
  322. package/dist/collection/components/split-button/split-button.css +36 -0
  323. package/dist/collection/components/split-button/split-button.js +1 -2
  324. package/dist/collection/components/split-button/split-button.js.map +1 -1
  325. package/dist/collection/components/split-button-item/split-button-item.js +4 -1
  326. package/dist/collection/components/split-button-item/split-button-item.js.map +1 -1
  327. package/dist/collection/components/tab-item/tab-item.css +36 -1
  328. package/dist/collection/components/tab-item/tab-item.js +34 -1
  329. package/dist/collection/components/tab-item/tab-item.js.map +1 -1
  330. package/dist/collection/components/tabs/tabs.css +36 -0
  331. package/dist/collection/components/tabs/tabs.js +46 -5
  332. package/dist/collection/components/tabs/tabs.js.map +1 -1
  333. package/dist/collection/components/tabs/test/tabs.ct.js +84 -0
  334. package/dist/collection/components/tabs/test/tabs.ct.js.map +1 -0
  335. package/dist/collection/components/tile/tile.css +36 -0
  336. package/dist/collection/components/time-picker/time-picker.css +274 -13
  337. package/dist/collection/components/time-picker/time-picker.js +1 -1
  338. package/dist/collection/components/time-picker/time-picker.js.map +1 -1
  339. package/dist/collection/components/toast/toast.css +36 -0
  340. package/dist/collection/components/toggle/toggle.css +36 -0
  341. package/dist/collection/components/toggle-button/toggle-button.css +447 -0
  342. package/dist/collection/components/toggle-button/toggle-button.js +246 -0
  343. package/dist/collection/components/toggle-button/toggle-button.js.map +1 -0
  344. package/dist/collection/components/tree/test/tree.ct.js +154 -0
  345. package/dist/collection/components/tree/test/tree.ct.js.map +1 -0
  346. package/dist/collection/components/tree/tree.js +14 -7
  347. package/dist/collection/components/tree/tree.js.map +1 -1
  348. package/dist/collection/components/tree-item/tree-item.css +56 -14
  349. package/dist/collection/components/tree-item/tree-item.js +1 -1
  350. package/dist/collection/components/tree-item/tree-item.js.map +1 -1
  351. package/dist/collection/components/typography/typography.css +391 -0
  352. package/dist/collection/components/typography/typography.js +95 -14
  353. package/dist/collection/components/typography/typography.js.map +1 -1
  354. package/dist/collection/components/upload/upload.css +36 -0
  355. package/dist/collection/components/utils/application-layout/context.js +19 -0
  356. package/dist/collection/components/utils/application-layout/context.js.map +1 -0
  357. package/dist/collection/components/utils/{screen → application-layout}/index.js +1 -1
  358. package/dist/collection/components/utils/application-layout/index.js.map +1 -0
  359. package/dist/collection/components/utils/application-layout/service.js +92 -0
  360. package/dist/collection/components/utils/application-layout/service.js.map +1 -0
  361. package/dist/collection/components/utils/breakpoints.js +22 -0
  362. package/dist/collection/components/utils/breakpoints.js.map +1 -0
  363. package/dist/collection/components/utils/context.js +79 -0
  364. package/dist/collection/components/utils/context.js.map +1 -0
  365. package/dist/collection/components/utils/shadow-dom.js +6 -0
  366. package/dist/collection/components/utils/shadow-dom.js.map +1 -1
  367. package/dist/collection/components/utils/theme-switcher.js +35 -3
  368. package/dist/collection/components/utils/theme-switcher.js.map +1 -1
  369. package/dist/collection/components/validation-tooltip/validation-tooltip.js +6 -6
  370. package/dist/collection/components/validation-tooltip/validation-tooltip.js.map +1 -1
  371. package/dist/collection/components/workflow-step/workflow-step.css +40 -2
  372. package/dist/collection/components/workflow-step/workflow-step.js +6 -13
  373. package/dist/collection/components/workflow-step/workflow-step.js.map +1 -1
  374. package/dist/collection/components/workflow-steps/test/workflow-steps.ct.js +74 -0
  375. package/dist/collection/components/workflow-steps/test/workflow-steps.ct.js.map +1 -0
  376. package/dist/collection/components/workflow-steps/workflow-steps.css +38 -0
  377. package/dist/collection/components/workflow-steps/workflow-steps.js +8 -26
  378. package/dist/collection/components/workflow-steps/workflow-steps.js.map +1 -1
  379. package/dist/components/application-header.js +9 -5
  380. package/dist/components/application-header.js.map +1 -1
  381. package/dist/components/base-button.js +16 -2
  382. package/dist/components/base-button.js.map +1 -1
  383. package/dist/components/base-icon-button.js +18 -0
  384. package/dist/components/base-icon-button.js.map +1 -0
  385. package/dist/components/breadcrumb-item.js +99 -0
  386. package/dist/components/breadcrumb-item.js.map +1 -0
  387. package/dist/components/breakpoints.js +25 -0
  388. package/dist/components/breakpoints.js.map +1 -0
  389. package/dist/components/burger-menu.js +1 -1
  390. package/dist/components/burger-menu.js.map +1 -1
  391. package/dist/components/button.js +24 -9
  392. package/dist/components/button.js.map +1 -1
  393. package/dist/components/card-accordion.js +1 -1
  394. package/dist/components/card-accordion.js.map +1 -1
  395. package/dist/components/card-content.js +1 -1
  396. package/dist/components/card-content.js.map +1 -1
  397. package/dist/components/card.js +1 -1
  398. package/dist/components/card.js.map +1 -1
  399. package/dist/components/context.js +86 -7
  400. package/dist/components/context.js.map +1 -1
  401. package/dist/components/date-picker.js +1 -1
  402. package/dist/components/date-picker.js.map +1 -1
  403. package/dist/components/date-time-card.js +1 -1
  404. package/dist/components/date-time-card.js.map +1 -1
  405. package/dist/components/dropdown-item.js +2 -4
  406. package/dist/components/dropdown-item.js.map +1 -1
  407. package/dist/components/dropdown.js +1 -1
  408. package/dist/components/dropdown.js.map +1 -1
  409. package/dist/components/filter-chip.js +5 -3
  410. package/dist/components/filter-chip.js.map +1 -1
  411. package/dist/components/floating-ui.dom.esm.js +653 -533
  412. package/dist/components/floating-ui.dom.esm.js.map +1 -1
  413. package/dist/components/group-context-menu.js +2 -16
  414. package/dist/components/group-context-menu.js.map +1 -1
  415. package/dist/components/group-item.js +1 -1
  416. package/dist/components/group-item.js.map +1 -1
  417. package/dist/components/icon-button.js +19 -14
  418. package/dist/components/icon-button.js.map +1 -1
  419. package/dist/components/index.js +1 -1
  420. package/dist/components/index2.js +6 -0
  421. package/dist/components/index2.js.map +1 -0
  422. package/dist/components/ix-action-card.js +2 -2
  423. package/dist/components/ix-action-card.js.map +1 -1
  424. package/dist/components/ix-application-sidebar.d.ts +11 -0
  425. package/dist/components/ix-application-sidebar.js +63 -0
  426. package/dist/components/ix-application-sidebar.js.map +1 -0
  427. package/dist/components/{ix-animated-tab.d.ts → ix-application.d.ts} +4 -4
  428. package/dist/components/ix-application.js +128 -0
  429. package/dist/components/ix-application.js.map +1 -0
  430. package/dist/components/ix-basic-navigation.js +45 -10
  431. package/dist/components/ix-basic-navigation.js.map +1 -1
  432. package/dist/components/ix-blind.js +13 -5
  433. package/dist/components/ix-blind.js.map +1 -1
  434. package/dist/components/ix-breadcrumb-item.js +1 -32
  435. package/dist/components/ix-breadcrumb-item.js.map +1 -1
  436. package/dist/components/ix-breadcrumb.js +76 -98
  437. package/dist/components/ix-breadcrumb.js.map +1 -1
  438. package/dist/components/ix-card-list.js +1 -1
  439. package/dist/components/ix-card-list.js.map +1 -1
  440. package/dist/components/ix-category-filter.js +76 -41
  441. package/dist/components/ix-category-filter.js.map +1 -1
  442. package/dist/components/ix-chip.js +1 -1
  443. package/dist/components/ix-chip.js.map +1 -1
  444. package/dist/components/{ix-index-button.d.ts → ix-col.d.ts} +4 -4
  445. package/dist/components/ix-col.js +96 -0
  446. package/dist/components/ix-col.js.map +1 -0
  447. package/dist/components/ix-content.d.ts +11 -0
  448. package/dist/components/ix-content.js +48 -0
  449. package/dist/components/ix-content.js.map +1 -0
  450. package/dist/components/ix-css-grid-item.js.map +1 -1
  451. package/dist/components/ix-css-grid.js.map +1 -1
  452. package/dist/components/ix-datetime-picker.js +23 -17
  453. package/dist/components/ix-datetime-picker.js.map +1 -1
  454. package/dist/components/ix-drawer.js +1 -1
  455. package/dist/components/ix-drawer.js.map +1 -1
  456. package/dist/components/ix-dropdown-button.js +4 -2
  457. package/dist/components/ix-dropdown-button.js.map +1 -1
  458. package/dist/components/ix-dropdown-header.js +1 -1
  459. package/dist/components/ix-dropdown-header.js.map +1 -1
  460. package/dist/components/ix-empty-state.js +1 -1
  461. package/dist/components/ix-empty-state.js.map +1 -1
  462. package/dist/components/ix-event-list-item.js +1 -1
  463. package/dist/components/ix-event-list-item.js.map +1 -1
  464. package/dist/components/ix-event-list.js +1 -1
  465. package/dist/components/ix-event-list.js.map +1 -1
  466. package/dist/components/ix-expanding-search.js +1 -1
  467. package/dist/components/ix-expanding-search.js.map +1 -1
  468. package/dist/components/ix-flip-tile-content.js +5 -2
  469. package/dist/components/ix-flip-tile-content.js.map +1 -1
  470. package/dist/components/ix-flip-tile.js +27 -18
  471. package/dist/components/ix-flip-tile.js.map +1 -1
  472. package/dist/components/ix-form-field.d.ts +11 -0
  473. package/dist/components/ix-form-field.js +43 -0
  474. package/dist/components/ix-form-field.js.map +1 -0
  475. package/dist/components/ix-grid.d.ts +11 -0
  476. package/dist/components/ix-grid.js +47 -0
  477. package/dist/components/ix-grid.js.map +1 -0
  478. package/dist/components/ix-group.js +3 -2
  479. package/dist/components/ix-group.js.map +1 -1
  480. package/dist/components/ix-icon-toggle-button.d.ts +11 -0
  481. package/dist/components/ix-icon-toggle-button.js +122 -0
  482. package/dist/components/ix-icon-toggle-button.js.map +1 -0
  483. package/dist/components/ix-input-group.js +89 -18
  484. package/dist/components/ix-input-group.js.map +1 -1
  485. package/dist/components/ix-kpi.js +1 -1
  486. package/dist/components/ix-kpi.js.map +1 -1
  487. package/dist/components/ix-link-button.js +1 -1
  488. package/dist/components/ix-link-button.js.map +1 -1
  489. package/dist/components/ix-map-navigation.js +8 -1
  490. package/dist/components/ix-map-navigation.js.map +1 -1
  491. package/dist/components/ix-menu-about-news.js +1 -1
  492. package/dist/components/ix-menu-about-news.js.map +1 -1
  493. package/dist/components/ix-menu-about.js +4 -4
  494. package/dist/components/ix-menu-about.js.map +1 -1
  495. package/dist/components/ix-menu-avatar.js +3 -3
  496. package/dist/components/ix-menu-avatar.js.map +1 -1
  497. package/dist/components/ix-menu-category.js +4 -4
  498. package/dist/components/ix-menu-category.js.map +1 -1
  499. package/dist/components/ix-menu-settings.js +2 -2
  500. package/dist/components/ix-menu-settings.js.map +1 -1
  501. package/dist/components/ix-menu.js +80 -62
  502. package/dist/components/ix-menu.js.map +1 -1
  503. package/dist/components/ix-message-bar.js +1 -1
  504. package/dist/components/ix-message-bar.js.map +1 -1
  505. package/dist/components/ix-modal-content.js +1 -1
  506. package/dist/components/ix-modal-content.js.map +1 -1
  507. package/dist/components/ix-modal-footer.js +1 -1
  508. package/dist/components/ix-modal-footer.js.map +1 -1
  509. package/dist/components/ix-modal-header.js +1 -1
  510. package/dist/components/ix-modal-header.js.map +1 -1
  511. package/dist/components/ix-modal.js +1 -1
  512. package/dist/components/ix-modal.js.map +1 -1
  513. package/dist/components/ix-pagination.js +42 -24
  514. package/dist/components/ix-pagination.js.map +1 -1
  515. package/dist/components/ix-pill.js +1 -1
  516. package/dist/components/ix-pill.js.map +1 -1
  517. package/dist/components/ix-push-card.js +4 -1
  518. package/dist/components/ix-push-card.js.map +1 -1
  519. package/dist/components/ix-row.d.ts +11 -0
  520. package/dist/components/ix-row.js +35 -0
  521. package/dist/components/ix-row.js.map +1 -0
  522. package/dist/components/ix-split-button-item.js +4 -1
  523. package/dist/components/ix-split-button-item.js.map +1 -1
  524. package/dist/components/ix-split-button.js +2 -3
  525. package/dist/components/ix-split-button.js.map +1 -1
  526. package/dist/components/ix-tile.js +1 -1
  527. package/dist/components/ix-tile.js.map +1 -1
  528. package/dist/components/{ix-animated-tabs.d.ts → ix-toggle-button.d.ts} +4 -4
  529. package/dist/components/ix-toggle-button.js +111 -0
  530. package/dist/components/ix-toggle-button.js.map +1 -0
  531. package/dist/components/ix-toggle.js +1 -1
  532. package/dist/components/ix-toggle.js.map +1 -1
  533. package/dist/components/ix-tree.js +16 -8
  534. package/dist/components/ix-tree.js.map +1 -1
  535. package/dist/components/ix-upload.js +1 -1
  536. package/dist/components/ix-upload.js.map +1 -1
  537. package/dist/components/ix-validation-tooltip.js +8 -7
  538. package/dist/components/ix-validation-tooltip.js.map +1 -1
  539. package/dist/components/ix-workflow-step.js +5 -12
  540. package/dist/components/ix-workflow-step.js.map +1 -1
  541. package/dist/components/ix-workflow-steps.js +9 -7
  542. package/dist/components/ix-workflow-steps.js.map +1 -1
  543. package/dist/components/map-navigation-overlay.js +3 -2
  544. package/dist/components/map-navigation-overlay.js.map +1 -1
  545. package/dist/components/menu-avatar-item.js +1 -1
  546. package/dist/components/menu-avatar-item.js.map +1 -1
  547. package/dist/components/menu-item.js +8 -2
  548. package/dist/components/menu-item.js.map +1 -1
  549. package/dist/components/menu-service.js +79 -1
  550. package/dist/components/menu-service.js.map +1 -1
  551. package/dist/components/my-component.js.map +1 -1
  552. package/dist/components/select-item.js +3 -2
  553. package/dist/components/select-item.js.map +1 -1
  554. package/dist/components/select.js +70 -49
  555. package/dist/components/select.js.map +1 -1
  556. package/dist/{esm/shadow-dom-6860b1c4.js → components/shadow-dom.js} +4 -1
  557. package/dist/components/shadow-dom.js.map +1 -0
  558. package/dist/components/spinner.js +1 -1
  559. package/dist/components/spinner.js.map +1 -1
  560. package/dist/components/tab-item.js +11 -3
  561. package/dist/components/tab-item.js.map +1 -1
  562. package/dist/components/tabs.js +23 -8
  563. package/dist/components/tabs.js.map +1 -1
  564. package/dist/components/theme-switcher.js +35 -3
  565. package/dist/components/theme-switcher.js.map +1 -1
  566. package/dist/components/time-picker.js +18 -12
  567. package/dist/components/time-picker.js.map +1 -1
  568. package/dist/components/toast.js +1 -1
  569. package/dist/components/toast.js.map +1 -1
  570. package/dist/components/tree-item.js +3 -2
  571. package/dist/components/tree-item.js.map +1 -1
  572. package/dist/components/typography.js +28 -12
  573. package/dist/components/typography.js.map +1 -1
  574. package/dist/esm/base-button-87048318.js +47 -0
  575. package/dist/esm/base-button-87048318.js.map +1 -0
  576. package/dist/esm/base-icon-button-afac2d95.js +18 -0
  577. package/dist/esm/base-icon-button-afac2d95.js.map +1 -0
  578. package/dist/esm/breakpoints-b8d59fd9.js +25 -0
  579. package/dist/esm/breakpoints-b8d59fd9.js.map +1 -0
  580. package/dist/esm/context-6a3bc77f.js +101 -0
  581. package/dist/esm/context-6a3bc77f.js.map +1 -0
  582. package/dist/esm/{floating-ui.dom.esm-9b203a02.js → floating-ui.dom.esm-cbe44820.js} +654 -534
  583. package/dist/esm/floating-ui.dom.esm-cbe44820.js.map +1 -0
  584. package/dist/esm/{icon-4ac90a6d.js → icon-f54a8bc4.js} +2 -2
  585. package/dist/esm/{icon-4ac90a6d.js.map → icon-f54a8bc4.js.map} +1 -1
  586. package/dist/esm/index-7b24b7fa.js +6 -0
  587. package/dist/esm/index-7b24b7fa.js.map +1 -0
  588. package/dist/esm/{index-7334ee80.js → index-eb0be730.js} +46 -398
  589. package/dist/esm/index-eb0be730.js.map +1 -0
  590. package/dist/esm/index.js +3 -3
  591. package/dist/esm/ix-action-card.entry.js +3 -3
  592. package/dist/esm/ix-action-card.entry.js.map +1 -1
  593. package/dist/esm/ix-application-header.entry.js +10 -5
  594. package/dist/esm/ix-application-header.entry.js.map +1 -1
  595. package/dist/esm/ix-application-sidebar.entry.js +43 -0
  596. package/dist/esm/ix-application-sidebar.entry.js.map +1 -0
  597. package/dist/esm/ix-application.entry.js +105 -0
  598. package/dist/esm/ix-application.entry.js.map +1 -0
  599. package/dist/esm/ix-avatar.entry.js +1 -1
  600. package/dist/esm/ix-basic-navigation.entry.js +44 -10
  601. package/dist/esm/ix-basic-navigation.entry.js.map +1 -1
  602. package/dist/esm/ix-blind.entry.js +5 -4
  603. package/dist/esm/ix-blind.entry.js.map +1 -1
  604. package/dist/esm/ix-breadcrumb_2.entry.js +100 -92
  605. package/dist/esm/ix-breadcrumb_2.entry.js.map +1 -1
  606. package/dist/esm/ix-burger-menu.entry.js +3 -3
  607. package/dist/esm/ix-burger-menu.entry.js.map +1 -1
  608. package/dist/esm/ix-button.entry.js +22 -7
  609. package/dist/esm/ix-button.entry.js.map +1 -1
  610. package/dist/esm/ix-card-accordion_2.entry.js +2 -2
  611. package/dist/esm/ix-card-accordion_2.entry.js.map +1 -1
  612. package/dist/esm/ix-card-list.entry.js +2 -2
  613. package/dist/esm/ix-card-list.entry.js.map +1 -1
  614. package/dist/esm/ix-card_2.entry.js +3 -3
  615. package/dist/esm/ix-card_2.entry.js.map +1 -1
  616. package/dist/esm/ix-category-filter.entry.js +73 -40
  617. package/dist/esm/ix-category-filter.entry.js.map +1 -1
  618. package/dist/esm/ix-chip.entry.js +2 -2
  619. package/dist/esm/ix-chip.entry.js.map +1 -1
  620. package/dist/esm/ix-col.entry.js +73 -0
  621. package/dist/esm/ix-col.entry.js.map +1 -0
  622. package/dist/esm/ix-content-header.entry.js +1 -1
  623. package/dist/esm/ix-content.entry.js +28 -0
  624. package/dist/esm/ix-content.entry.js.map +1 -0
  625. package/dist/esm/ix-css-grid-item.entry.js +1 -1
  626. package/dist/esm/ix-css-grid-item.entry.js.map +1 -1
  627. package/dist/esm/ix-css-grid.entry.js +1 -1
  628. package/dist/esm/ix-css-grid.entry.js.map +1 -1
  629. package/dist/esm/ix-date-picker_2.entry.js +4 -4
  630. package/dist/esm/ix-date-picker_2.entry.js.map +1 -1
  631. package/dist/esm/ix-date-time-card.entry.js +2 -2
  632. package/dist/esm/ix-date-time-card.entry.js.map +1 -1
  633. package/dist/esm/ix-datetime-picker.entry.js +2 -2
  634. package/dist/esm/ix-datetime-picker.entry.js.map +1 -1
  635. package/dist/esm/ix-divider.entry.js +1 -1
  636. package/dist/esm/ix-drawer.entry.js +2 -2
  637. package/dist/esm/ix-drawer.entry.js.map +1 -1
  638. package/dist/esm/ix-dropdown-button.entry.js +4 -3
  639. package/dist/esm/ix-dropdown-button.entry.js.map +1 -1
  640. package/dist/esm/ix-dropdown-header.entry.js +2 -2
  641. package/dist/esm/ix-dropdown-header.entry.js.map +1 -1
  642. package/dist/esm/ix-dropdown-quick-actions.entry.js +1 -1
  643. package/dist/esm/ix-dropdown_2.entry.js +5 -7
  644. package/dist/esm/ix-dropdown_2.entry.js.map +1 -1
  645. package/dist/esm/ix-empty-state.entry.js +2 -2
  646. package/dist/esm/ix-empty-state.entry.js.map +1 -1
  647. package/dist/esm/ix-event-list_2.entry.js +3 -3
  648. package/dist/esm/ix-event-list_2.entry.js.map +1 -1
  649. package/dist/esm/ix-expanding-search.entry.js +2 -2
  650. package/dist/esm/ix-expanding-search.entry.js.map +1 -1
  651. package/dist/esm/ix-filter-chip.entry.js +4 -3
  652. package/dist/esm/ix-filter-chip.entry.js.map +1 -1
  653. package/dist/esm/ix-flip-tile_2.entry.js +28 -18
  654. package/dist/esm/ix-flip-tile_2.entry.js.map +1 -1
  655. package/dist/esm/ix-form-field.entry.js +23 -0
  656. package/dist/esm/ix-form-field.entry.js.map +1 -0
  657. package/dist/esm/ix-grid.entry.js +25 -0
  658. package/dist/esm/ix-grid.entry.js.map +1 -0
  659. package/dist/esm/ix-group-context-menu.entry.js +2 -2
  660. package/dist/esm/ix-group_2.entry.js +4 -4
  661. package/dist/esm/ix-group_2.entry.js.map +1 -1
  662. package/dist/esm/ix-icon-button.entry.js +21 -13
  663. package/dist/esm/ix-icon-button.entry.js.map +1 -1
  664. package/dist/esm/ix-icon-toggle-button.entry.js +84 -0
  665. package/dist/esm/ix-icon-toggle-button.entry.js.map +1 -0
  666. package/dist/esm/ix-icon.entry.js +2 -2
  667. package/dist/esm/ix-input-group.entry.js +85 -18
  668. package/dist/esm/ix-input-group.entry.js.map +1 -1
  669. package/dist/esm/ix-key-value-list.entry.js +1 -1
  670. package/dist/esm/ix-key-value.entry.js +1 -1
  671. package/dist/esm/ix-kpi.entry.js +2 -2
  672. package/dist/esm/ix-kpi.entry.js.map +1 -1
  673. package/dist/esm/ix-link-button.entry.js +2 -2
  674. package/dist/esm/ix-link-button.entry.js.map +1 -1
  675. package/dist/esm/ix-map-navigation_2.entry.js +11 -3
  676. package/dist/esm/ix-map-navigation_2.entry.js.map +1 -1
  677. package/dist/esm/ix-menu-category.entry.js +6 -5
  678. package/dist/esm/ix-menu-category.entry.js.map +1 -1
  679. package/dist/esm/ix-menu_9.entry.js +101 -75
  680. package/dist/esm/ix-menu_9.entry.js.map +1 -1
  681. package/dist/esm/ix-message-bar.entry.js +2 -2
  682. package/dist/esm/ix-message-bar.entry.js.map +1 -1
  683. package/dist/esm/ix-modal-content.entry.js +2 -2
  684. package/dist/esm/ix-modal-content.entry.js.map +1 -1
  685. package/dist/esm/ix-modal-example.entry.js +1 -1
  686. package/dist/esm/ix-modal-footer.entry.js +2 -2
  687. package/dist/esm/ix-modal-footer.entry.js.map +1 -1
  688. package/dist/esm/ix-modal-header.entry.js +2 -2
  689. package/dist/esm/ix-modal-header.entry.js.map +1 -1
  690. package/dist/esm/ix-modal-loading.entry.js +1 -1
  691. package/dist/esm/ix-modal.entry.js +2 -2
  692. package/dist/esm/ix-modal.entry.js.map +1 -1
  693. package/dist/esm/ix-pagination.entry.js +32 -15
  694. package/dist/esm/ix-pagination.entry.js.map +1 -1
  695. package/dist/esm/ix-pill.entry.js +2 -2
  696. package/dist/esm/ix-pill.entry.js.map +1 -1
  697. package/dist/esm/ix-push-card.entry.js +5 -2
  698. package/dist/esm/ix-push-card.entry.js.map +1 -1
  699. package/dist/esm/ix-row.entry.js +17 -0
  700. package/dist/esm/ix-row.entry.js.map +1 -0
  701. package/dist/esm/ix-select_2.entry.js +68 -49
  702. package/dist/esm/ix-select_2.entry.js.map +1 -1
  703. package/dist/esm/ix-spinner.entry.js +2 -2
  704. package/dist/esm/ix-spinner.entry.js.map +1 -1
  705. package/dist/esm/ix-split-button_2.entry.js +7 -5
  706. package/dist/esm/ix-split-button_2.entry.js.map +1 -1
  707. package/dist/esm/ix-tab-item.entry.js +11 -3
  708. package/dist/esm/ix-tab-item.entry.js.map +1 -1
  709. package/dist/esm/ix-tabs.entry.js +22 -7
  710. package/dist/esm/ix-tabs.entry.js.map +1 -1
  711. package/dist/esm/ix-tile.entry.js +2 -2
  712. package/dist/esm/ix-tile.entry.js.map +1 -1
  713. package/dist/esm/ix-toast_2.entry.js +2 -2
  714. package/dist/esm/ix-toast_2.entry.js.map +1 -1
  715. package/dist/esm/ix-toggle-button.entry.js +73 -0
  716. package/dist/esm/ix-toggle-button.entry.js.map +1 -0
  717. package/dist/esm/ix-toggle.entry.js +2 -2
  718. package/dist/esm/ix-toggle.entry.js.map +1 -1
  719. package/dist/esm/ix-tooltip.entry.js +2 -2
  720. package/dist/esm/ix-tree_2.entry.js +16 -9
  721. package/dist/esm/ix-tree_2.entry.js.map +1 -1
  722. package/dist/esm/ix-typography.entry.js +25 -12
  723. package/dist/esm/ix-typography.entry.js.map +1 -1
  724. package/dist/esm/ix-upload.entry.js +2 -2
  725. package/dist/esm/ix-upload.entry.js.map +1 -1
  726. package/dist/esm/ix-validation-tooltip.entry.js +8 -8
  727. package/dist/esm/ix-validation-tooltip.entry.js.map +1 -1
  728. package/dist/esm/ix-workflow-step_2.entry.js +14 -18
  729. package/dist/esm/ix-workflow-step_2.entry.js.map +1 -1
  730. package/dist/esm/loader.js +3 -3
  731. package/dist/esm/menu-service-12a09006.js +156 -0
  732. package/dist/esm/menu-service-12a09006.js.map +1 -0
  733. package/dist/esm/my-component.entry.js +1 -1
  734. package/dist/esm/my-component.entry.js.map +1 -1
  735. package/dist/esm/shadow-dom-b9df3d9b.js +21 -0
  736. package/dist/esm/shadow-dom-b9df3d9b.js.map +1 -0
  737. package/dist/esm/siemens-ix.js +3 -3
  738. package/dist/esm/{theme-switcher-7498e4f2.js → theme-switcher-9ede3823.js} +36 -4
  739. package/dist/esm/theme-switcher-9ede3823.js.map +1 -0
  740. package/dist/siemens-ix/index.esm.js +1 -1
  741. package/dist/siemens-ix/index.esm.js.map +1 -1
  742. package/dist/siemens-ix/p-00616f87.entry.js +2 -0
  743. package/dist/siemens-ix/{p-8c14a4a3.entry.js.map → p-00616f87.entry.js.map} +1 -1
  744. package/dist/siemens-ix/p-00df4a8c.js +2 -0
  745. package/dist/siemens-ix/p-00df4a8c.js.map +1 -0
  746. package/dist/siemens-ix/p-04eeba9e.js +2 -0
  747. package/dist/siemens-ix/p-04eeba9e.js.map +1 -0
  748. package/dist/siemens-ix/{p-b89172b4.entry.js → p-0e2045b9.entry.js} +2 -2
  749. package/dist/siemens-ix/p-0e2045b9.entry.js.map +1 -0
  750. package/dist/siemens-ix/p-134b6bd5.js +2 -0
  751. package/dist/siemens-ix/p-134b6bd5.js.map +1 -0
  752. package/dist/siemens-ix/p-14621fbd.entry.js +2 -0
  753. package/dist/siemens-ix/p-14621fbd.entry.js.map +1 -0
  754. package/dist/siemens-ix/p-1b705d7b.js +2 -0
  755. package/dist/siemens-ix/p-1b705d7b.js.map +1 -0
  756. package/dist/siemens-ix/p-1b9b19e6.js +2 -0
  757. package/dist/siemens-ix/p-1b9b19e6.js.map +1 -0
  758. package/dist/siemens-ix/p-1fc8e513.entry.js +2 -0
  759. package/dist/siemens-ix/p-1fc8e513.entry.js.map +1 -0
  760. package/dist/siemens-ix/{p-157f7ec0.entry.js → p-26855b3f.entry.js} +2 -2
  761. package/dist/siemens-ix/p-281fa225.entry.js +2 -0
  762. package/dist/siemens-ix/{p-33670e98.entry.js.map → p-281fa225.entry.js.map} +1 -1
  763. package/dist/siemens-ix/p-2a29e187.entry.js +2 -0
  764. package/dist/siemens-ix/{p-5fedb19b.entry.js.map → p-2a29e187.entry.js.map} +1 -1
  765. package/dist/siemens-ix/p-36c48f12.entry.js +2 -0
  766. package/dist/siemens-ix/p-36c48f12.entry.js.map +1 -0
  767. package/dist/siemens-ix/p-36f0b470.entry.js +2 -0
  768. package/dist/siemens-ix/p-36f0b470.entry.js.map +1 -0
  769. package/dist/siemens-ix/p-37dd62fc.entry.js +2 -0
  770. package/dist/siemens-ix/p-37dd62fc.entry.js.map +1 -0
  771. package/dist/siemens-ix/{p-0e86b47b.entry.js → p-3983ee89.entry.js} +2 -2
  772. package/dist/siemens-ix/p-3dbeeecf.entry.js +2 -0
  773. package/dist/siemens-ix/p-3dbeeecf.entry.js.map +1 -0
  774. package/dist/siemens-ix/p-3eabf464.entry.js +2 -0
  775. package/dist/siemens-ix/p-3eabf464.entry.js.map +1 -0
  776. package/dist/siemens-ix/p-40ecc8be.entry.js +2 -0
  777. package/dist/siemens-ix/p-40ecc8be.entry.js.map +1 -0
  778. package/dist/siemens-ix/{p-918450cd.entry.js → p-43497703.entry.js} +2 -2
  779. package/dist/siemens-ix/p-43497703.entry.js.map +1 -0
  780. package/dist/siemens-ix/{p-0fab8cae.entry.js → p-4659c550.entry.js} +2 -2
  781. package/dist/siemens-ix/p-475d8732.entry.js +2 -0
  782. package/dist/siemens-ix/p-475d8732.entry.js.map +1 -0
  783. package/dist/siemens-ix/p-49b9f9f5.entry.js +2 -0
  784. package/dist/siemens-ix/{p-c0345859.entry.js.map → p-49b9f9f5.entry.js.map} +1 -1
  785. package/dist/siemens-ix/{p-02f01e39.entry.js → p-4dbae019.entry.js} +2 -2
  786. package/dist/siemens-ix/p-4f8954a7.entry.js +2 -0
  787. package/dist/siemens-ix/p-4f8954a7.entry.js.map +1 -0
  788. package/dist/siemens-ix/p-5017cf39.entry.js +2 -0
  789. package/dist/siemens-ix/p-5017cf39.entry.js.map +1 -0
  790. package/dist/siemens-ix/p-5029fd0f.entry.js +2 -0
  791. package/dist/siemens-ix/p-5029fd0f.entry.js.map +1 -0
  792. package/dist/siemens-ix/p-553ebcb1.entry.js +2 -0
  793. package/dist/siemens-ix/{p-b6d52b6f.entry.js.map → p-553ebcb1.entry.js.map} +1 -1
  794. package/dist/siemens-ix/p-5650383d.entry.js +2 -0
  795. package/dist/siemens-ix/p-5650383d.entry.js.map +1 -0
  796. package/dist/siemens-ix/p-567f71a2.entry.js +2 -0
  797. package/dist/siemens-ix/p-567f71a2.entry.js.map +1 -0
  798. package/dist/siemens-ix/p-5d132cc5.entry.js +2 -0
  799. package/dist/siemens-ix/p-5d132cc5.entry.js.map +1 -0
  800. package/dist/siemens-ix/p-5e3f8c0b.entry.js +2 -0
  801. package/dist/siemens-ix/p-5e3f8c0b.entry.js.map +1 -0
  802. package/dist/siemens-ix/p-61ffc6e1.entry.js +2 -0
  803. package/dist/siemens-ix/p-61ffc6e1.entry.js.map +1 -0
  804. package/dist/siemens-ix/p-655d177c.entry.js +2 -0
  805. package/dist/siemens-ix/p-655d177c.entry.js.map +1 -0
  806. package/dist/siemens-ix/p-737fca1b.entry.js +2 -0
  807. package/dist/siemens-ix/{p-1b1bc523.entry.js.map → p-737fca1b.entry.js.map} +1 -1
  808. package/dist/siemens-ix/p-76a509c7.js +3 -0
  809. package/dist/siemens-ix/p-76a509c7.js.map +1 -0
  810. package/dist/siemens-ix/{p-4d194d55.entry.js → p-7918fd50.entry.js} +2 -2
  811. package/dist/siemens-ix/p-7918fd50.entry.js.map +1 -0
  812. package/dist/siemens-ix/p-7a884056.entry.js +2 -0
  813. package/dist/siemens-ix/{p-c4ea8815.entry.js.map → p-7a884056.entry.js.map} +1 -1
  814. package/dist/siemens-ix/p-7b536489.entry.js +2 -0
  815. package/dist/siemens-ix/p-7b536489.entry.js.map +1 -0
  816. package/dist/siemens-ix/p-85f39bd4.js +2 -0
  817. package/dist/siemens-ix/p-85f39bd4.js.map +1 -0
  818. package/dist/siemens-ix/{p-db74796e.js → p-8c7d1e06.js} +2 -2
  819. package/dist/siemens-ix/p-8e39298f.js +2 -0
  820. package/dist/siemens-ix/p-8e39298f.js.map +1 -0
  821. package/dist/siemens-ix/p-94ecb1af.entry.js +2 -0
  822. package/dist/siemens-ix/p-94ecb1af.entry.js.map +1 -0
  823. package/dist/siemens-ix/p-9848e4de.entry.js +2 -0
  824. package/dist/siemens-ix/p-9848e4de.entry.js.map +1 -0
  825. package/dist/siemens-ix/p-98b03a9b.entry.js +2 -0
  826. package/dist/siemens-ix/p-98b03a9b.entry.js.map +1 -0
  827. package/dist/siemens-ix/p-9a05ac00.js +2 -0
  828. package/dist/siemens-ix/p-9a05ac00.js.map +1 -0
  829. package/dist/siemens-ix/p-9b6075de.entry.js +2 -0
  830. package/dist/siemens-ix/p-9b6075de.entry.js.map +1 -0
  831. package/dist/siemens-ix/p-a0fdaa04.entry.js +2 -0
  832. package/dist/siemens-ix/p-a18f1744.entry.js +2 -0
  833. package/dist/siemens-ix/p-a18f1744.entry.js.map +1 -0
  834. package/dist/siemens-ix/p-a3d6abfb.entry.js +2 -0
  835. package/dist/siemens-ix/p-a3d6abfb.entry.js.map +1 -0
  836. package/dist/siemens-ix/p-a5ae7bfa.entry.js +2 -0
  837. package/dist/siemens-ix/p-a5ae7bfa.entry.js.map +1 -0
  838. package/dist/siemens-ix/p-a6345f97.entry.js +2 -0
  839. package/dist/siemens-ix/p-a6345f97.entry.js.map +1 -0
  840. package/dist/siemens-ix/p-a8424ce3.entry.js +2 -0
  841. package/dist/siemens-ix/p-a8424ce3.entry.js.map +1 -0
  842. package/dist/siemens-ix/p-a85299c6.entry.js +2 -0
  843. package/dist/siemens-ix/p-a85299c6.entry.js.map +1 -0
  844. package/dist/siemens-ix/p-ab452b82.js +2 -0
  845. package/dist/siemens-ix/p-ab452b82.js.map +1 -0
  846. package/dist/siemens-ix/p-ab4bdb4e.entry.js +2 -0
  847. package/dist/siemens-ix/p-ab4bdb4e.entry.js.map +1 -0
  848. package/dist/siemens-ix/p-ac00ae47.entry.js +2 -0
  849. package/dist/siemens-ix/p-ac00ae47.entry.js.map +1 -0
  850. package/dist/siemens-ix/p-b007e4b4.entry.js +2 -0
  851. package/dist/siemens-ix/{p-b21bc31c.entry.js.map → p-b007e4b4.entry.js.map} +1 -1
  852. package/dist/siemens-ix/p-b0a1930d.entry.js +2 -0
  853. package/dist/siemens-ix/p-b0a1930d.entry.js.map +1 -0
  854. package/dist/siemens-ix/{p-34807901.entry.js → p-b25c770f.entry.js} +2 -2
  855. package/dist/siemens-ix/{p-34807901.entry.js.map → p-b25c770f.entry.js.map} +1 -1
  856. package/dist/siemens-ix/{p-f38e7420.entry.js → p-b38eff08.entry.js} +2 -2
  857. package/dist/siemens-ix/p-b45ca515.entry.js +2 -0
  858. package/dist/siemens-ix/p-b45ca515.entry.js.map +1 -0
  859. package/dist/siemens-ix/{p-f0219d7a.entry.js → p-b735ee5e.entry.js} +2 -2
  860. package/dist/siemens-ix/p-c1ac2d01.entry.js +2 -0
  861. package/dist/siemens-ix/{p-06603826.entry.js.map → p-c1ac2d01.entry.js.map} +1 -1
  862. package/dist/siemens-ix/p-c1f5a59a.entry.js +2 -0
  863. package/dist/siemens-ix/p-c1f5a59a.entry.js.map +1 -0
  864. package/dist/siemens-ix/p-c75264af.entry.js +2 -0
  865. package/dist/siemens-ix/p-c75264af.entry.js.map +1 -0
  866. package/dist/siemens-ix/p-cd0e77f1.entry.js +2 -0
  867. package/dist/siemens-ix/{p-9547706d.entry.js.map → p-cd0e77f1.entry.js.map} +1 -1
  868. package/dist/siemens-ix/{p-d48d74af.entry.js → p-cd1e0061.entry.js} +2 -2
  869. package/dist/siemens-ix/p-ce0a7c1a.entry.js +2 -0
  870. package/dist/siemens-ix/{p-07a0b330.entry.js.map → p-ce0a7c1a.entry.js.map} +1 -1
  871. package/dist/siemens-ix/p-d214f57a.entry.js +2 -0
  872. package/dist/siemens-ix/{p-a9619a92.entry.js.map → p-d214f57a.entry.js.map} +1 -1
  873. package/dist/siemens-ix/p-d29bcf75.entry.js +2 -0
  874. package/dist/siemens-ix/p-d29bcf75.entry.js.map +1 -0
  875. package/dist/siemens-ix/{p-0dea55bf.entry.js → p-d87de06f.entry.js} +2 -2
  876. package/dist/siemens-ix/{p-d7e8417d.entry.js → p-da133606.entry.js} +2 -2
  877. package/dist/siemens-ix/p-da133606.entry.js.map +1 -0
  878. package/dist/siemens-ix/p-db174600.entry.js +2 -0
  879. package/dist/siemens-ix/p-db2f237f.entry.js +2 -0
  880. package/dist/siemens-ix/p-db2f237f.entry.js.map +1 -0
  881. package/dist/siemens-ix/p-dc77f962.entry.js +2 -0
  882. package/dist/siemens-ix/{p-d81d0f62.entry.js.map → p-dc77f962.entry.js.map} +1 -1
  883. package/dist/siemens-ix/{p-81333042.entry.js → p-de013166.entry.js} +2 -2
  884. package/dist/siemens-ix/p-de013166.entry.js.map +1 -0
  885. package/dist/siemens-ix/p-e2c200f3.entry.js +2 -0
  886. package/dist/siemens-ix/{p-2ea3d53a.entry.js.map → p-e2c200f3.entry.js.map} +1 -1
  887. package/dist/siemens-ix/p-e610b2b8.entry.js +2 -0
  888. package/dist/siemens-ix/{p-e8f2e141.entry.js.map → p-e610b2b8.entry.js.map} +1 -1
  889. package/dist/siemens-ix/p-eb29049a.entry.js +2 -0
  890. package/dist/siemens-ix/p-eb29049a.entry.js.map +1 -0
  891. package/dist/siemens-ix/p-eb3f1ef6.entry.js +2 -0
  892. package/dist/siemens-ix/p-eb3f1ef6.entry.js.map +1 -0
  893. package/dist/siemens-ix/p-ebeef6fd.entry.js +2 -0
  894. package/dist/siemens-ix/p-ebeef6fd.entry.js.map +1 -0
  895. package/dist/siemens-ix/p-f71da594.entry.js +2 -0
  896. package/dist/siemens-ix/{p-7d2aec76.entry.js.map → p-f71da594.entry.js.map} +1 -1
  897. package/dist/siemens-ix/{p-20aa7350.entry.js → p-f88b25d7.entry.js} +2 -2
  898. package/dist/siemens-ix/p-f9b004ba.entry.js +2 -0
  899. package/dist/siemens-ix/{p-bf019e35.entry.js.map → p-f9b004ba.entry.js.map} +1 -1
  900. package/dist/siemens-ix/p-f9d4ca13.entry.js +2 -0
  901. package/dist/siemens-ix/p-f9d4ca13.entry.js.map +1 -0
  902. package/dist/siemens-ix/p-feb80449.entry.js +2 -0
  903. package/dist/siemens-ix/{p-a64d88de.entry.js.map → p-feb80449.entry.js.map} +1 -1
  904. package/dist/siemens-ix/siemens-ix-core.css +1 -12289
  905. package/dist/siemens-ix/siemens-ix.css +8249 -11730
  906. package/dist/siemens-ix/siemens-ix.esm.js +1 -1
  907. package/dist/siemens-ix/siemens-ix.esm.js.map +1 -1
  908. package/dist/siemens-ix/theme/classic-dark.css +1 -1062
  909. package/dist/siemens-ix/theme/classic-light.css +1 -1062
  910. package/dist/siemens-ix/theme/legacy-classic-dark.css +1 -1061
  911. package/dist/siemens-ix/theme/legacy-classic-light.css +1 -1061
  912. package/dist/types/components/application/application.d.ts +36 -0
  913. package/dist/types/components/application-header/application-header.d.ts +2 -5
  914. package/dist/types/components/application-header/test/application-headet.ct.d.ts +1 -0
  915. package/dist/types/components/application-sidebar/application-sidebar.d.ts +7 -0
  916. package/dist/types/components/application-sidebar/events.d.ts +4 -0
  917. package/dist/types/components/basic-navigation/basic-navigation.d.ts +14 -2
  918. package/dist/types/components/blind/blind.d.ts +5 -0
  919. package/dist/types/components/breadcrumb/breadcrumb.d.ts +15 -14
  920. package/dist/types/components/breadcrumb/test/breadcrumb.ct.d.ts +1 -0
  921. package/dist/types/components/breadcrumb-item/breadcrumb-item.d.ts +15 -0
  922. package/dist/types/components/button/base-button.d.ts +25 -0
  923. package/dist/types/components/button/button.d.ts +4 -10
  924. package/dist/types/components/category-filter/category-filter.d.ts +12 -5
  925. package/dist/types/components/col/col.d.ts +31 -0
  926. package/dist/types/components/content/content.d.ts +7 -0
  927. package/dist/types/components/dropdown-button/dropdown-button.d.ts +7 -0
  928. package/dist/types/components/filter-chip/filter-chip.d.ts +5 -0
  929. package/dist/types/components/flip-tile/flip-tile.d.ts +9 -11
  930. package/dist/types/components/flip-tile/test/flip-tile.ct.d.ts +1 -0
  931. package/dist/types/components/flip-tile-content/flip-tile-content.d.ts +6 -0
  932. package/dist/types/components/form-field/form-field.d.ts +10 -0
  933. package/dist/types/components/grid/grid.d.ts +18 -0
  934. package/dist/types/components/icon-button/base-icon-button.d.ts +2 -0
  935. package/dist/types/components/icon-button/icon-button.d.ts +2 -13
  936. package/dist/types/components/icon-toggle-button/icon-toggle-button.d.ts +54 -0
  937. package/dist/types/components/input-group/input-group.d.ts +11 -1
  938. package/dist/types/components/map-navigation/map-navigation.d.ts +1 -0
  939. package/dist/types/components/menu/menu.d.ts +9 -14
  940. package/dist/types/components/menu-item/menu-item.d.ts +2 -0
  941. package/dist/types/components/pagination/pagination.d.ts +1 -1
  942. package/dist/types/components/row/row.d.ts +6 -0
  943. package/dist/types/components/select/select.d.ts +23 -7
  944. package/dist/types/components/tab-item/tab-item.d.ts +10 -0
  945. package/dist/types/components/tabs/tabs.d.ts +8 -0
  946. package/dist/types/components/tabs/test/tabs.ct.d.ts +1 -0
  947. package/dist/types/components/toggle-button/toggle-button.d.ts +48 -0
  948. package/dist/types/components/tree/test/tree.ct.d.ts +1 -0
  949. package/dist/types/components/tree/tree.d.ts +2 -1
  950. package/dist/types/components/typography/typography.d.ts +24 -1
  951. package/dist/types/components/utils/application-layout/context.d.ts +6 -0
  952. package/dist/types/components/utils/application-layout/index.d.ts +1 -0
  953. package/dist/types/components/utils/application-layout/service.d.ts +16 -0
  954. package/dist/types/components/utils/breakpoints.d.ts +8 -0
  955. package/dist/types/components/utils/context.d.ts +57 -0
  956. package/dist/types/components/utils/shadow-dom.d.ts +1 -1
  957. package/dist/types/components/utils/theme-switcher.d.ts +10 -3
  958. package/dist/types/components/validation-tooltip/validation-tooltip.d.ts +1 -1
  959. package/dist/types/components/workflow-step/workflow-step.d.ts +1 -2
  960. package/dist/types/components/workflow-steps/test/workflow-steps.ct.d.ts +1 -0
  961. package/dist/types/components/workflow-steps/workflow-steps.d.ts +0 -5
  962. package/dist/types/components.d.ts +556 -167
  963. package/package.json +7 -5
  964. package/scss/_core.scss +66 -0
  965. package/scss/components/_checkboxes.scss +9 -3
  966. package/scss/components/_fonts.scss +131 -0
  967. package/scss/components/_table.scss +1 -1
  968. package/scss/components/form/_input.scss +155 -0
  969. package/scss/ix-core.scss +2 -75
  970. package/scss/ix.scss +3 -74
  971. package/scss/{_fonts.scss → legacy/_fonts.scss} +1 -1
  972. package/scss/{components → legacy/components}/_buttons.scss +14 -12
  973. package/scss/{components → legacy/components}/_dropdown.scss +1 -1
  974. package/scss/{components → legacy/components}/_forms.scss +6 -1
  975. package/scss/{components → legacy/components}/_modal.scss +1 -1
  976. package/scss/legacy/mixins/_fonts.scss +166 -0
  977. package/scss/mixins/_break-points.scss +25 -0
  978. package/scss/mixins/_fonts.scss +149 -105
  979. package/scss/mixins/_hover.scss +3 -1
  980. package/scss/mixins/_scrollbar.scss +44 -0
  981. package/scss/mixins/shadow-dom/_component.scss +4 -0
  982. package/scss/theme/classic-dark/_boxShadow.scss +5 -5
  983. package/scss/theme/classic-dark/_fontFamilies.scss +2 -1
  984. package/scss/theme/classic-dark/_fontSizes.scss +11 -0
  985. package/scss/theme/classic-dark/_fontWeights.scss +2 -1
  986. package/scss/theme/classic-dark/_index.scss +7 -0
  987. package/scss/theme/classic-dark/_letterSpacing.scss +13 -0
  988. package/scss/theme/classic-dark/_lineHeights.scss +4 -1
  989. package/scss/theme/classic-dark/_sizing.scss +12 -0
  990. package/scss/theme/classic-dark/_spacing.scss +12 -0
  991. package/scss/theme/classic-dark/_typography.scss +39 -16
  992. package/scss/theme/classic-light/_boxShadow.scss +5 -5
  993. package/scss/theme/classic-light/_fontFamilies.scss +2 -1
  994. package/scss/theme/classic-light/_fontSizes.scss +11 -0
  995. package/scss/theme/classic-light/_fontWeights.scss +2 -1
  996. package/scss/theme/classic-light/_index.scss +7 -0
  997. package/scss/theme/classic-light/_letterSpacing.scss +13 -0
  998. package/scss/theme/classic-light/_lineHeights.scss +4 -1
  999. package/scss/theme/classic-light/_sizing.scss +12 -0
  1000. package/scss/theme/classic-light/_spacing.scss +12 -0
  1001. package/scss/theme/classic-light/_typography.scss +39 -16
  1002. package/scss/theme/legacy-classic-dark/_fontFamilies.scss +2 -1
  1003. package/scss/theme/legacy-classic-dark/_fontSizes.scss +11 -0
  1004. package/scss/theme/legacy-classic-dark/_fontWeights.scss +2 -1
  1005. package/scss/theme/legacy-classic-dark/_index.scss +7 -0
  1006. package/scss/theme/legacy-classic-dark/_letterSpacing.scss +13 -0
  1007. package/scss/theme/legacy-classic-dark/_lineHeights.scss +4 -1
  1008. package/scss/theme/legacy-classic-dark/_sizing.scss +12 -0
  1009. package/scss/theme/legacy-classic-dark/_spacing.scss +12 -0
  1010. package/scss/theme/legacy-classic-dark/_typography.scss +39 -16
  1011. package/scss/theme/legacy-classic-light/_fontFamilies.scss +2 -1
  1012. package/scss/theme/legacy-classic-light/_fontSizes.scss +11 -0
  1013. package/scss/theme/legacy-classic-light/_fontWeights.scss +2 -1
  1014. package/scss/theme/legacy-classic-light/_index.scss +7 -0
  1015. package/scss/theme/legacy-classic-light/_letterSpacing.scss +13 -0
  1016. package/scss/theme/legacy-classic-light/_lineHeights.scss +4 -1
  1017. package/scss/theme/legacy-classic-light/_sizing.scss +12 -0
  1018. package/scss/theme/legacy-classic-light/_spacing.scss +12 -0
  1019. package/scss/theme/legacy-classic-light/_typography.scss +39 -16
  1020. package/dist/cjs/base-button-497db257.js +0 -35
  1021. package/dist/cjs/base-button-497db257.js.map +0 -1
  1022. package/dist/cjs/context-2ce9a350.js +0 -26
  1023. package/dist/cjs/context-2ce9a350.js.map +0 -1
  1024. package/dist/cjs/floating-ui.dom.esm-b79b633f.js.map +0 -1
  1025. package/dist/cjs/index-e56a1d39.js.map +0 -1
  1026. package/dist/cjs/ix-animated-tab_2.cjs.entry.js +0 -214
  1027. package/dist/cjs/ix-animated-tab_2.cjs.entry.js.map +0 -1
  1028. package/dist/cjs/ix-index-button.cjs.entry.js +0 -28
  1029. package/dist/cjs/ix-index-button.cjs.entry.js.map +0 -1
  1030. package/dist/cjs/menu-service-d1b87142.js +0 -80
  1031. package/dist/cjs/menu-service-d1b87142.js.map +0 -1
  1032. package/dist/cjs/service-0e27b06b.js +0 -145
  1033. package/dist/cjs/service-0e27b06b.js.map +0 -1
  1034. package/dist/cjs/shadow-dom-f9b90696.js.map +0 -1
  1035. package/dist/cjs/theme-switcher-bdbd0d30.js.map +0 -1
  1036. package/dist/collection/components/animated-tab/animated-tab.js +0 -69
  1037. package/dist/collection/components/animated-tab/animated-tab.js.map +0 -1
  1038. package/dist/collection/components/animated-tabs/animated-tabs.css +0 -158
  1039. package/dist/collection/components/animated-tabs/animated-tabs.js +0 -303
  1040. package/dist/collection/components/animated-tabs/animated-tabs.js.map +0 -1
  1041. package/dist/collection/components/index-button/index-button.css +0 -31
  1042. package/dist/collection/components/index-button/index-button.js +0 -83
  1043. package/dist/collection/components/index-button/index-button.js.map +0 -1
  1044. package/dist/collection/components/layout/css-grid/builder.js.map +0 -1
  1045. package/dist/collection/components/layout/css-grid/css-grid-item.js.map +0 -1
  1046. package/dist/collection/components/layout/css-grid/css-grid.js.map +0 -1
  1047. package/dist/collection/components/utils/screen/context.js +0 -34
  1048. package/dist/collection/components/utils/screen/context.js.map +0 -1
  1049. package/dist/collection/components/utils/screen/index.js.map +0 -1
  1050. package/dist/collection/components/utils/screen/mode.js +0 -85
  1051. package/dist/collection/components/utils/screen/mode.js.map +0 -1
  1052. package/dist/collection/components/utils/screen/service.js +0 -68
  1053. package/dist/collection/components/utils/screen/service.js.map +0 -1
  1054. package/dist/components/index-button.js +0 -41
  1055. package/dist/components/index-button.js.map +0 -1
  1056. package/dist/components/ix-animated-tab.js +0 -39
  1057. package/dist/components/ix-animated-tab.js.map +0 -1
  1058. package/dist/components/ix-animated-tabs.js +0 -224
  1059. package/dist/components/ix-animated-tabs.js.map +0 -1
  1060. package/dist/components/ix-index-button.js +0 -8
  1061. package/dist/components/ix-index-button.js.map +0 -1
  1062. package/dist/components/service.js +0 -143
  1063. package/dist/components/service.js.map +0 -1
  1064. package/dist/esm/base-button-5bfeb71c.js +0 -33
  1065. package/dist/esm/base-button-5bfeb71c.js.map +0 -1
  1066. package/dist/esm/context-381170ae.js +0 -22
  1067. package/dist/esm/context-381170ae.js.map +0 -1
  1068. package/dist/esm/floating-ui.dom.esm-9b203a02.js.map +0 -1
  1069. package/dist/esm/index-7334ee80.js.map +0 -1
  1070. package/dist/esm/ix-animated-tab_2.entry.js +0 -209
  1071. package/dist/esm/ix-animated-tab_2.entry.js.map +0 -1
  1072. package/dist/esm/ix-index-button.entry.js +0 -24
  1073. package/dist/esm/ix-index-button.entry.js.map +0 -1
  1074. package/dist/esm/menu-service-b3076949.js +0 -78
  1075. package/dist/esm/menu-service-b3076949.js.map +0 -1
  1076. package/dist/esm/service-586129b5.js +0 -143
  1077. package/dist/esm/service-586129b5.js.map +0 -1
  1078. package/dist/esm/shadow-dom-6860b1c4.js.map +0 -1
  1079. package/dist/esm/theme-switcher-7498e4f2.js.map +0 -1
  1080. package/dist/siemens-ix/p-00f74fc9.entry.js +0 -2
  1081. package/dist/siemens-ix/p-00f74fc9.entry.js.map +0 -1
  1082. package/dist/siemens-ix/p-01c37ebe.entry.js +0 -2
  1083. package/dist/siemens-ix/p-01c37ebe.entry.js.map +0 -1
  1084. package/dist/siemens-ix/p-0574cf88.entry.js +0 -2
  1085. package/dist/siemens-ix/p-0574cf88.entry.js.map +0 -1
  1086. package/dist/siemens-ix/p-06603826.entry.js +0 -2
  1087. package/dist/siemens-ix/p-06fcaee3.entry.js +0 -2
  1088. package/dist/siemens-ix/p-06fcaee3.entry.js.map +0 -1
  1089. package/dist/siemens-ix/p-07a0b330.entry.js +0 -2
  1090. package/dist/siemens-ix/p-09ce5f12.entry.js +0 -2
  1091. package/dist/siemens-ix/p-09ce5f12.entry.js.map +0 -1
  1092. package/dist/siemens-ix/p-0c9ead45.entry.js +0 -2
  1093. package/dist/siemens-ix/p-0c9ead45.entry.js.map +0 -1
  1094. package/dist/siemens-ix/p-15996fa7.entry.js +0 -2
  1095. package/dist/siemens-ix/p-15996fa7.entry.js.map +0 -1
  1096. package/dist/siemens-ix/p-1b1bc523.entry.js +0 -2
  1097. package/dist/siemens-ix/p-2ea3d53a.entry.js +0 -2
  1098. package/dist/siemens-ix/p-303b8c2f.entry.js +0 -2
  1099. package/dist/siemens-ix/p-303b8c2f.entry.js.map +0 -1
  1100. package/dist/siemens-ix/p-323d5529.js +0 -2
  1101. package/dist/siemens-ix/p-323d5529.js.map +0 -1
  1102. package/dist/siemens-ix/p-33670e98.entry.js +0 -2
  1103. package/dist/siemens-ix/p-34633470.entry.js +0 -2
  1104. package/dist/siemens-ix/p-34633470.entry.js.map +0 -1
  1105. package/dist/siemens-ix/p-38e69215.entry.js +0 -2
  1106. package/dist/siemens-ix/p-38e69215.entry.js.map +0 -1
  1107. package/dist/siemens-ix/p-3a99b0c8.entry.js +0 -2
  1108. package/dist/siemens-ix/p-3a99b0c8.entry.js.map +0 -1
  1109. package/dist/siemens-ix/p-45738e84.js +0 -2
  1110. package/dist/siemens-ix/p-45738e84.js.map +0 -1
  1111. package/dist/siemens-ix/p-4d194d55.entry.js.map +0 -1
  1112. package/dist/siemens-ix/p-56a27b34.entry.js +0 -2
  1113. package/dist/siemens-ix/p-56a27b34.entry.js.map +0 -1
  1114. package/dist/siemens-ix/p-5b39e04e.js +0 -2
  1115. package/dist/siemens-ix/p-5b39e04e.js.map +0 -1
  1116. package/dist/siemens-ix/p-5fedb19b.entry.js +0 -2
  1117. package/dist/siemens-ix/p-627148db.entry.js +0 -2
  1118. package/dist/siemens-ix/p-627148db.entry.js.map +0 -1
  1119. package/dist/siemens-ix/p-62f4db99.entry.js +0 -2
  1120. package/dist/siemens-ix/p-62f4db99.entry.js.map +0 -1
  1121. package/dist/siemens-ix/p-63b82e40.entry.js +0 -2
  1122. package/dist/siemens-ix/p-63b82e40.entry.js.map +0 -1
  1123. package/dist/siemens-ix/p-68c44614.entry.js +0 -2
  1124. package/dist/siemens-ix/p-68c44614.entry.js.map +0 -1
  1125. package/dist/siemens-ix/p-7021c2d1.entry.js +0 -2
  1126. package/dist/siemens-ix/p-7021c2d1.entry.js.map +0 -1
  1127. package/dist/siemens-ix/p-709d38fe.entry.js +0 -2
  1128. package/dist/siemens-ix/p-709d38fe.entry.js.map +0 -1
  1129. package/dist/siemens-ix/p-785726e8.entry.js +0 -2
  1130. package/dist/siemens-ix/p-785726e8.entry.js.map +0 -1
  1131. package/dist/siemens-ix/p-7d2aec76.entry.js +0 -2
  1132. package/dist/siemens-ix/p-81333042.entry.js.map +0 -1
  1133. package/dist/siemens-ix/p-8c14a4a3.entry.js +0 -2
  1134. package/dist/siemens-ix/p-8ce73af1.entry.js +0 -2
  1135. package/dist/siemens-ix/p-8ce73af1.entry.js.map +0 -1
  1136. package/dist/siemens-ix/p-904aa275.entry.js +0 -2
  1137. package/dist/siemens-ix/p-904aa275.entry.js.map +0 -1
  1138. package/dist/siemens-ix/p-918450cd.entry.js.map +0 -1
  1139. package/dist/siemens-ix/p-9547706d.entry.js +0 -2
  1140. package/dist/siemens-ix/p-9903e755.entry.js +0 -2
  1141. package/dist/siemens-ix/p-9903e755.entry.js.map +0 -1
  1142. package/dist/siemens-ix/p-9d264ca8.entry.js +0 -2
  1143. package/dist/siemens-ix/p-9d264ca8.entry.js.map +0 -1
  1144. package/dist/siemens-ix/p-a64d88de.entry.js +0 -2
  1145. package/dist/siemens-ix/p-a8e8a942.entry.js +0 -2
  1146. package/dist/siemens-ix/p-a9619a92.entry.js +0 -2
  1147. package/dist/siemens-ix/p-b21bc31c.entry.js +0 -2
  1148. package/dist/siemens-ix/p-b6d52b6f.entry.js +0 -2
  1149. package/dist/siemens-ix/p-b89172b4.entry.js.map +0 -1
  1150. package/dist/siemens-ix/p-b899b25b.js +0 -3
  1151. package/dist/siemens-ix/p-b899b25b.js.map +0 -1
  1152. package/dist/siemens-ix/p-bf019e35.entry.js +0 -2
  1153. package/dist/siemens-ix/p-c0345859.entry.js +0 -2
  1154. package/dist/siemens-ix/p-c4ea8815.entry.js +0 -2
  1155. package/dist/siemens-ix/p-c84a43ef.entry.js +0 -2
  1156. package/dist/siemens-ix/p-c84a43ef.entry.js.map +0 -1
  1157. package/dist/siemens-ix/p-d0a8aa6f.entry.js +0 -2
  1158. package/dist/siemens-ix/p-d43bf856.js +0 -2
  1159. package/dist/siemens-ix/p-d43bf856.js.map +0 -1
  1160. package/dist/siemens-ix/p-d737ad96.js +0 -2
  1161. package/dist/siemens-ix/p-d737ad96.js.map +0 -1
  1162. package/dist/siemens-ix/p-d7e8417d.entry.js.map +0 -1
  1163. package/dist/siemens-ix/p-d81d0f62.entry.js +0 -2
  1164. package/dist/siemens-ix/p-d991a3d6.entry.js +0 -2
  1165. package/dist/siemens-ix/p-d991a3d6.entry.js.map +0 -1
  1166. package/dist/siemens-ix/p-dbca4dd5.entry.js +0 -2
  1167. package/dist/siemens-ix/p-dbca4dd5.entry.js.map +0 -1
  1168. package/dist/siemens-ix/p-e1c92dcb.entry.js +0 -2
  1169. package/dist/siemens-ix/p-e1c92dcb.entry.js.map +0 -1
  1170. package/dist/siemens-ix/p-e275814e.js +0 -2
  1171. package/dist/siemens-ix/p-e275814e.js.map +0 -1
  1172. package/dist/siemens-ix/p-e3db25ef.entry.js +0 -2
  1173. package/dist/siemens-ix/p-e3db25ef.entry.js.map +0 -1
  1174. package/dist/siemens-ix/p-e8f2e141.entry.js +0 -2
  1175. package/dist/siemens-ix/p-eca0b89c.entry.js +0 -2
  1176. package/dist/siemens-ix/p-eca0b89c.entry.js.map +0 -1
  1177. package/dist/siemens-ix/p-ef73f7e3.entry.js +0 -2
  1178. package/dist/siemens-ix/p-ef73f7e3.entry.js.map +0 -1
  1179. package/dist/siemens-ix/p-f22423c2.js +0 -2
  1180. package/dist/siemens-ix/p-f22423c2.js.map +0 -1
  1181. package/dist/siemens-ix/p-f4d634f5.entry.js +0 -2
  1182. package/dist/siemens-ix/p-f4d634f5.entry.js.map +0 -1
  1183. package/dist/siemens-ix/p-fafe1aeb.entry.js +0 -2
  1184. package/dist/siemens-ix/p-fafe1aeb.entry.js.map +0 -1
  1185. package/dist/siemens-ix/p-fe073f2a.entry.js +0 -2
  1186. package/dist/siemens-ix/p-fe073f2a.entry.js.map +0 -1
  1187. package/dist/siemens-ix/p-ff17104c.entry.js +0 -2
  1188. package/dist/siemens-ix/p-ff17104c.entry.js.map +0 -1
  1189. package/dist/types/components/animated-tab/animated-tab.d.ts +0 -11
  1190. package/dist/types/components/animated-tabs/animated-tabs.d.ts +0 -44
  1191. package/dist/types/components/index-button/index-button.d.ts +0 -16
  1192. package/dist/types/components/utils/screen/context.d.ts +0 -5
  1193. package/dist/types/components/utils/screen/index.d.ts +0 -1
  1194. package/dist/types/components/utils/screen/mode.d.ts +0 -13
  1195. package/dist/types/components/utils/screen/service.d.ts +0 -15
  1196. /package/dist/collection/components/{layout/css-grid → css-grid}/builder.js +0 -0
  1197. /package/dist/collection/components/{layout/css-grid → css-grid}/css-grid-item.css +0 -0
  1198. /package/dist/collection/components/{layout/css-grid → css-grid}/css-grid-item.js +0 -0
  1199. /package/dist/collection/components/{layout/css-grid → css-grid}/css-grid.css +0 -0
  1200. /package/dist/siemens-ix/{p-157f7ec0.entry.js.map → p-26855b3f.entry.js.map} +0 -0
  1201. /package/dist/siemens-ix/{p-0e86b47b.entry.js.map → p-3983ee89.entry.js.map} +0 -0
  1202. /package/dist/siemens-ix/{p-0fab8cae.entry.js.map → p-4659c550.entry.js.map} +0 -0
  1203. /package/dist/siemens-ix/{p-02f01e39.entry.js.map → p-4dbae019.entry.js.map} +0 -0
  1204. /package/dist/siemens-ix/{p-db74796e.js.map → p-8c7d1e06.js.map} +0 -0
  1205. /package/dist/siemens-ix/{p-a8e8a942.entry.js.map → p-a0fdaa04.entry.js.map} +0 -0
  1206. /package/dist/siemens-ix/{p-f38e7420.entry.js.map → p-b38eff08.entry.js.map} +0 -0
  1207. /package/dist/siemens-ix/{p-f0219d7a.entry.js.map → p-b735ee5e.entry.js.map} +0 -0
  1208. /package/dist/siemens-ix/{p-d48d74af.entry.js.map → p-cd1e0061.entry.js.map} +0 -0
  1209. /package/dist/siemens-ix/{p-0dea55bf.entry.js.map → p-d87de06f.entry.js.map} +0 -0
  1210. /package/dist/siemens-ix/{p-d0a8aa6f.entry.js.map → p-db174600.entry.js.map} +0 -0
  1211. /package/dist/siemens-ix/{p-20aa7350.entry.js.map → p-f88b25d7.entry.js.map} +0 -0
  1212. /package/dist/types/components/{layout/css-grid → css-grid}/builder.d.ts +0 -0
  1213. /package/dist/types/components/{layout/css-grid → css-grid}/css-grid-item.d.ts +0 -0
  1214. /package/dist/types/components/{layout/css-grid → css-grid}/css-grid.d.ts +0 -0
  1215. /package/scss/{components → legacy/components}/_button-group.scss +0 -0
@@ -1,17 +1,121 @@
1
+ const min = Math.min;
2
+ const max = Math.max;
3
+ const round = Math.round;
4
+ const floor = Math.floor;
5
+ const createCoords = v => ({
6
+ x: v,
7
+ y: v
8
+ });
9
+ const oppositeSideMap = {
10
+ left: 'right',
11
+ right: 'left',
12
+ bottom: 'top',
13
+ top: 'bottom'
14
+ };
15
+ const oppositeAlignmentMap = {
16
+ start: 'end',
17
+ end: 'start'
18
+ };
19
+ function clamp(start, value, end) {
20
+ return max(start, min(value, end));
21
+ }
22
+ function evaluate(value, param) {
23
+ return typeof value === 'function' ? value(param) : value;
24
+ }
25
+ function getSide(placement) {
26
+ return placement.split('-')[0];
27
+ }
1
28
  function getAlignment(placement) {
2
29
  return placement.split('-')[1];
3
30
  }
4
-
5
- function getLengthFromAxis(axis) {
31
+ function getOppositeAxis(axis) {
32
+ return axis === 'x' ? 'y' : 'x';
33
+ }
34
+ function getAxisLength(axis) {
6
35
  return axis === 'y' ? 'height' : 'width';
7
36
  }
8
-
9
- function getSide(placement) {
10
- return placement.split('-')[0];
37
+ function getSideAxis(placement) {
38
+ return ['top', 'bottom'].includes(getSide(placement)) ? 'y' : 'x';
11
39
  }
12
-
13
- function getMainAxisFromPlacement(placement) {
14
- return ['top', 'bottom'].includes(getSide(placement)) ? 'x' : 'y';
40
+ function getAlignmentAxis(placement) {
41
+ return getOppositeAxis(getSideAxis(placement));
42
+ }
43
+ function getAlignmentSides(placement, rects, rtl) {
44
+ if (rtl === void 0) {
45
+ rtl = false;
46
+ }
47
+ const alignment = getAlignment(placement);
48
+ const alignmentAxis = getAlignmentAxis(placement);
49
+ const length = getAxisLength(alignmentAxis);
50
+ let mainAlignmentSide = alignmentAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';
51
+ if (rects.reference[length] > rects.floating[length]) {
52
+ mainAlignmentSide = getOppositePlacement(mainAlignmentSide);
53
+ }
54
+ return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];
55
+ }
56
+ function getExpandedPlacements(placement) {
57
+ const oppositePlacement = getOppositePlacement(placement);
58
+ return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];
59
+ }
60
+ function getOppositeAlignmentPlacement(placement) {
61
+ return placement.replace(/start|end/g, alignment => oppositeAlignmentMap[alignment]);
62
+ }
63
+ function getSideList(side, isStart, rtl) {
64
+ const lr = ['left', 'right'];
65
+ const rl = ['right', 'left'];
66
+ const tb = ['top', 'bottom'];
67
+ const bt = ['bottom', 'top'];
68
+ switch (side) {
69
+ case 'top':
70
+ case 'bottom':
71
+ if (rtl) return isStart ? rl : lr;
72
+ return isStart ? lr : rl;
73
+ case 'left':
74
+ case 'right':
75
+ return isStart ? tb : bt;
76
+ default:
77
+ return [];
78
+ }
79
+ }
80
+ function getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {
81
+ const alignment = getAlignment(placement);
82
+ let list = getSideList(getSide(placement), direction === 'start', rtl);
83
+ if (alignment) {
84
+ list = list.map(side => side + "-" + alignment);
85
+ if (flipAlignment) {
86
+ list = list.concat(list.map(getOppositeAlignmentPlacement));
87
+ }
88
+ }
89
+ return list;
90
+ }
91
+ function getOppositePlacement(placement) {
92
+ return placement.replace(/left|right|bottom|top/g, side => oppositeSideMap[side]);
93
+ }
94
+ function expandPaddingObject(padding) {
95
+ return {
96
+ top: 0,
97
+ right: 0,
98
+ bottom: 0,
99
+ left: 0,
100
+ ...padding
101
+ };
102
+ }
103
+ function getPaddingObject(padding) {
104
+ return typeof padding !== 'number' ? expandPaddingObject(padding) : {
105
+ top: padding,
106
+ right: padding,
107
+ bottom: padding,
108
+ left: padding
109
+ };
110
+ }
111
+ function rectToClientRect(rect) {
112
+ return {
113
+ ...rect,
114
+ top: rect.y,
115
+ left: rect.x,
116
+ right: rect.x + rect.width,
117
+ bottom: rect.y + rect.height
118
+ };
15
119
  }
16
120
 
17
121
  function computeCoordsFromPlacement(_ref, placement, rtl) {
@@ -19,13 +123,14 @@ function computeCoordsFromPlacement(_ref, placement, rtl) {
19
123
  reference,
20
124
  floating
21
125
  } = _ref;
126
+ const sideAxis = getSideAxis(placement);
127
+ const alignmentAxis = getAlignmentAxis(placement);
128
+ const alignLength = getAxisLength(alignmentAxis);
129
+ const side = getSide(placement);
130
+ const isVertical = sideAxis === 'y';
22
131
  const commonX = reference.x + reference.width / 2 - floating.width / 2;
23
132
  const commonY = reference.y + reference.height / 2 - floating.height / 2;
24
- const mainAxis = getMainAxisFromPlacement(placement);
25
- const length = getLengthFromAxis(mainAxis);
26
- const commonAlign = reference[length] / 2 - floating[length] / 2;
27
- const side = getSide(placement);
28
- const isVertical = mainAxis === 'x';
133
+ const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;
29
134
  let coords;
30
135
  switch (side) {
31
136
  case 'top':
@@ -60,10 +165,10 @@ function computeCoordsFromPlacement(_ref, placement, rtl) {
60
165
  }
61
166
  switch (getAlignment(placement)) {
62
167
  case 'start':
63
- coords[mainAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);
168
+ coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);
64
169
  break;
65
170
  case 'end':
66
- coords[mainAxis] += commonAlign * (rtl && isVertical ? -1 : 1);
171
+ coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1);
67
172
  break;
68
173
  }
69
174
  return coords;
@@ -161,44 +266,15 @@ const computePosition$1 = async (reference, floating, config) => {
161
266
  };
162
267
  };
163
268
 
164
- function expandPaddingObject(padding) {
165
- return {
166
- top: 0,
167
- right: 0,
168
- bottom: 0,
169
- left: 0,
170
- ...padding
171
- };
172
- }
173
-
174
- function getSideObjectFromPadding(padding) {
175
- return typeof padding !== 'number' ? expandPaddingObject(padding) : {
176
- top: padding,
177
- right: padding,
178
- bottom: padding,
179
- left: padding
180
- };
181
- }
182
-
183
- function rectToClientRect(rect) {
184
- return {
185
- ...rect,
186
- top: rect.y,
187
- left: rect.x,
188
- right: rect.x + rect.width,
189
- bottom: rect.y + rect.height
190
- };
191
- }
192
-
193
269
  /**
194
270
  * Resolves with an object of overflow side offsets that determine how much the
195
- * element is overflowing a given clipping boundary.
271
+ * element is overflowing a given clipping boundary on each side.
196
272
  * - positive = overflowing the boundary by that number of pixels
197
273
  * - negative = how many pixels left before it will overflow
198
274
  * - 0 = lies flush with the boundary
199
275
  * @see https://floating-ui.com/docs/detectOverflow
200
276
  */
201
- async function detectOverflow(middlewareArguments, options) {
277
+ async function detectOverflow(state, options) {
202
278
  var _await$platform$isEle;
203
279
  if (options === void 0) {
204
280
  options = {};
@@ -210,15 +286,15 @@ async function detectOverflow(middlewareArguments, options) {
210
286
  rects,
211
287
  elements,
212
288
  strategy
213
- } = middlewareArguments;
289
+ } = state;
214
290
  const {
215
291
  boundary = 'clippingAncestors',
216
292
  rootBoundary = 'viewport',
217
293
  elementContext = 'floating',
218
294
  altBoundary = false,
219
295
  padding = 0
220
- } = options;
221
- const paddingObject = getSideObjectFromPadding(padding);
296
+ } = evaluate(options, state);
297
+ const paddingObject = getPaddingObject(padding);
222
298
  const altContext = elementContext === 'floating' ? 'reference' : 'floating';
223
299
  const element = elements[altBoundary ? altContext : elementContext];
224
300
  const clippingClientRect = rectToClientRect(await platform.getClippingRect({
@@ -253,151 +329,87 @@ async function detectOverflow(middlewareArguments, options) {
253
329
  };
254
330
  }
255
331
 
256
- const min$1 = Math.min;
257
- const max$1 = Math.max;
258
-
259
- function within(min$1$1, value, max$1$1) {
260
- return max$1(min$1$1, min$1(value, max$1$1));
261
- }
262
-
263
332
  /**
264
- * Positions an inner element of the floating element such that it is centered
265
- * to the reference element.
333
+ * Provides data to position an inner element of the floating element so that it
334
+ * appears centered to the reference element.
266
335
  * @see https://floating-ui.com/docs/arrow
267
336
  */
268
337
  const arrow = options => ({
269
338
  name: 'arrow',
270
339
  options,
271
- async fn(middlewareArguments) {
272
- // Since `element` is required, we don't Partial<> the type.
273
- const {
274
- element,
275
- padding = 0
276
- } = options || {};
340
+ async fn(state) {
277
341
  const {
278
342
  x,
279
343
  y,
280
344
  placement,
281
345
  rects,
282
- platform
283
- } = middlewareArguments;
346
+ platform,
347
+ elements
348
+ } = state;
349
+ // Since `element` is required, we don't Partial<> the type.
350
+ const {
351
+ element,
352
+ padding = 0
353
+ } = evaluate(options, state) || {};
284
354
  if (element == null) {
285
355
  return {};
286
356
  }
287
- const paddingObject = getSideObjectFromPadding(padding);
357
+ const paddingObject = getPaddingObject(padding);
288
358
  const coords = {
289
359
  x,
290
360
  y
291
361
  };
292
- const axis = getMainAxisFromPlacement(placement);
293
- const length = getLengthFromAxis(axis);
362
+ const axis = getAlignmentAxis(placement);
363
+ const length = getAxisLength(axis);
294
364
  const arrowDimensions = await platform.getDimensions(element);
295
- const minProp = axis === 'y' ? 'top' : 'left';
296
- const maxProp = axis === 'y' ? 'bottom' : 'right';
365
+ const isYAxis = axis === 'y';
366
+ const minProp = isYAxis ? 'top' : 'left';
367
+ const maxProp = isYAxis ? 'bottom' : 'right';
368
+ const clientProp = isYAxis ? 'clientHeight' : 'clientWidth';
297
369
  const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];
298
370
  const startDiff = coords[axis] - rects.reference[axis];
299
371
  const arrowOffsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(element));
300
- let clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;
301
- if (clientSize === 0) {
302
- clientSize = rects.floating[length];
372
+ let clientSize = arrowOffsetParent ? arrowOffsetParent[clientProp] : 0;
373
+
374
+ // DOM platform can return `window` as the `offsetParent`.
375
+ if (!clientSize || !(await (platform.isElement == null ? void 0 : platform.isElement(arrowOffsetParent)))) {
376
+ clientSize = elements.floating[clientProp] || rects.floating[length];
303
377
  }
304
378
  const centerToReference = endDiff / 2 - startDiff / 2;
305
379
 
380
+ // If the padding is large enough that it causes the arrow to no longer be
381
+ // centered, modify the padding so that it is centered.
382
+ const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1;
383
+ const minPadding = min(paddingObject[minProp], largestPossiblePadding);
384
+ const maxPadding = min(paddingObject[maxProp], largestPossiblePadding);
385
+
306
386
  // Make sure the arrow doesn't overflow the floating element if the center
307
387
  // point is outside the floating element's bounds.
308
- const min = paddingObject[minProp];
309
- const max = clientSize - arrowDimensions[length] - paddingObject[maxProp];
388
+ const min$1 = minPadding;
389
+ const max = clientSize - arrowDimensions[length] - maxPadding;
310
390
  const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;
311
- const offset = within(min, center, max);
391
+ const offset = clamp(min$1, center, max);
312
392
 
313
393
  // If the reference is small enough that the arrow's padding causes it to
314
394
  // to point to nothing for an aligned placement, adjust the offset of the
315
395
  // floating element itself. This stops `shift()` from taking action, but can
316
396
  // be worked around by calling it again after the `arrow()` if desired.
317
- const shouldAddOffset = getAlignment(placement) != null && center != offset && rects.reference[length] / 2 - (center < min ? paddingObject[minProp] : paddingObject[maxProp]) - arrowDimensions[length] / 2 < 0;
318
- const alignmentOffset = shouldAddOffset ? center < min ? min - center : max - center : 0;
397
+ const shouldAddOffset = getAlignment(placement) != null && center != offset && rects.reference[length] / 2 - (center < min$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;
398
+ const alignmentOffset = shouldAddOffset ? center < min$1 ? min$1 - center : max - center : 0;
319
399
  return {
320
400
  [axis]: coords[axis] - alignmentOffset,
321
401
  data: {
322
402
  [axis]: offset,
323
- centerOffset: center - offset
403
+ centerOffset: center - offset + alignmentOffset
324
404
  }
325
405
  };
326
406
  }
327
407
  });
328
408
 
329
- const oppositeSideMap = {
330
- left: 'right',
331
- right: 'left',
332
- bottom: 'top',
333
- top: 'bottom'
334
- };
335
- function getOppositePlacement(placement) {
336
- return placement.replace(/left|right|bottom|top/g, side => oppositeSideMap[side]);
337
- }
338
-
339
- function getAlignmentSides(placement, rects, rtl) {
340
- if (rtl === void 0) {
341
- rtl = false;
342
- }
343
- const alignment = getAlignment(placement);
344
- const mainAxis = getMainAxisFromPlacement(placement);
345
- const length = getLengthFromAxis(mainAxis);
346
- let mainAlignmentSide = mainAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';
347
- if (rects.reference[length] > rects.floating[length]) {
348
- mainAlignmentSide = getOppositePlacement(mainAlignmentSide);
349
- }
350
- return {
351
- main: mainAlignmentSide,
352
- cross: getOppositePlacement(mainAlignmentSide)
353
- };
354
- }
355
-
356
- const oppositeAlignmentMap = {
357
- start: 'end',
358
- end: 'start'
359
- };
360
- function getOppositeAlignmentPlacement(placement) {
361
- return placement.replace(/start|end/g, alignment => oppositeAlignmentMap[alignment]);
362
- }
363
-
364
- function getExpandedPlacements(placement) {
365
- const oppositePlacement = getOppositePlacement(placement);
366
- return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];
367
- }
368
-
369
- function getSideList(side, isStart, rtl) {
370
- const lr = ['left', 'right'];
371
- const rl = ['right', 'left'];
372
- const tb = ['top', 'bottom'];
373
- const bt = ['bottom', 'top'];
374
- switch (side) {
375
- case 'top':
376
- case 'bottom':
377
- if (rtl) return isStart ? rl : lr;
378
- return isStart ? lr : rl;
379
- case 'left':
380
- case 'right':
381
- return isStart ? tb : bt;
382
- default:
383
- return [];
384
- }
385
- }
386
- function getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {
387
- const alignment = getAlignment(placement);
388
- let list = getSideList(getSide(placement), direction === 'start', rtl);
389
- if (alignment) {
390
- list = list.map(side => side + "-" + alignment);
391
- if (flipAlignment) {
392
- list = list.concat(list.map(getOppositeAlignmentPlacement));
393
- }
394
- }
395
- return list;
396
- }
397
-
398
409
  /**
399
- * Changes the placement of the floating element to one that will fit if the
400
- * initially specified `placement` does not.
410
+ * Optimizes the visibility of the floating element by flipping the `placement`
411
+ * in order to keep it in view when the preferred placement(s) will overflow the
412
+ * clipping boundary. Alternative to `autoPlacement`.
401
413
  * @see https://floating-ui.com/docs/flip
402
414
  */
403
415
  const flip = function (options) {
@@ -407,7 +419,7 @@ const flip = function (options) {
407
419
  return {
408
420
  name: 'flip',
409
421
  options,
410
- async fn(middlewareArguments) {
422
+ async fn(state) {
411
423
  var _middlewareData$flip;
412
424
  const {
413
425
  placement,
@@ -416,7 +428,7 @@ const flip = function (options) {
416
428
  initialPlacement,
417
429
  platform,
418
430
  elements
419
- } = middlewareArguments;
431
+ } = state;
420
432
  const {
421
433
  mainAxis: checkMainAxis = true,
422
434
  crossAxis: checkCrossAxis = true,
@@ -425,7 +437,7 @@ const flip = function (options) {
425
437
  fallbackAxisSideDirection = 'none',
426
438
  flipAlignment = true,
427
439
  ...detectOverflowOptions
428
- } = options;
440
+ } = evaluate(options, state);
429
441
  const side = getSide(placement);
430
442
  const isBasePlacement = getSide(initialPlacement) === initialPlacement;
431
443
  const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));
@@ -434,18 +446,15 @@ const flip = function (options) {
434
446
  fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));
435
447
  }
436
448
  const placements = [initialPlacement, ...fallbackPlacements];
437
- const overflow = await detectOverflow(middlewareArguments, detectOverflowOptions);
449
+ const overflow = await detectOverflow(state, detectOverflowOptions);
438
450
  const overflows = [];
439
451
  let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];
440
452
  if (checkMainAxis) {
441
453
  overflows.push(overflow[side]);
442
454
  }
443
455
  if (checkCrossAxis) {
444
- const {
445
- main,
446
- cross
447
- } = getAlignmentSides(placement, rects, rtl);
448
- overflows.push(overflow[main], overflow[cross]);
456
+ const sides = getAlignmentSides(placement, rects, rtl);
457
+ overflows.push(overflow[sides[0]], overflow[sides[1]]);
449
458
  }
450
459
  overflowsData = [...overflowsData, {
451
460
  placement,
@@ -454,7 +463,7 @@ const flip = function (options) {
454
463
 
455
464
  // One or more sides is overflowing.
456
465
  if (!overflows.every(side => side <= 0)) {
457
- var _middlewareData$flip2;
466
+ var _middlewareData$flip2, _overflowsData$filter;
458
467
  const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;
459
468
  const nextPlacement = placements[nextIndex];
460
469
  if (nextPlacement) {
@@ -469,20 +478,27 @@ const flip = function (options) {
469
478
  }
470
479
  };
471
480
  }
472
- let resetPlacement = 'bottom';
473
- switch (fallbackStrategy) {
474
- case 'bestFit':
475
- {
476
- var _overflowsData$map$so;
477
- const placement = (_overflowsData$map$so = overflowsData.map(d => [d, d.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$map$so[0].placement;
478
- if (placement) {
479
- resetPlacement = placement;
481
+
482
+ // First, find the candidates that fit on the mainAxis side of overflow,
483
+ // then find the placement that fits the best on the main crossAxis side.
484
+ let resetPlacement = (_overflowsData$filter = overflowsData.filter(d => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;
485
+
486
+ // Otherwise fallback.
487
+ if (!resetPlacement) {
488
+ switch (fallbackStrategy) {
489
+ case 'bestFit':
490
+ {
491
+ var _overflowsData$map$so;
492
+ const placement = (_overflowsData$map$so = overflowsData.map(d => [d.placement, d.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$map$so[0];
493
+ if (placement) {
494
+ resetPlacement = placement;
495
+ }
496
+ break;
480
497
  }
498
+ case 'initialPlacement':
499
+ resetPlacement = initialPlacement;
481
500
  break;
482
- }
483
- case 'initialPlacement':
484
- resetPlacement = initialPlacement;
485
- break;
501
+ }
486
502
  }
487
503
  if (placement !== resetPlacement) {
488
504
  return {
@@ -497,6 +513,33 @@ const flip = function (options) {
497
513
  };
498
514
  };
499
515
 
516
+ function getBoundingRect(rects) {
517
+ const minX = min(...rects.map(rect => rect.left));
518
+ const minY = min(...rects.map(rect => rect.top));
519
+ const maxX = max(...rects.map(rect => rect.right));
520
+ const maxY = max(...rects.map(rect => rect.bottom));
521
+ return {
522
+ x: minX,
523
+ y: minY,
524
+ width: maxX - minX,
525
+ height: maxY - minY
526
+ };
527
+ }
528
+ function getRectsByLine(rects) {
529
+ const sortedRects = rects.slice().sort((a, b) => a.y - b.y);
530
+ const groups = [];
531
+ let prevRect = null;
532
+ for (let i = 0; i < sortedRects.length; i++) {
533
+ const rect = sortedRects[i];
534
+ if (!prevRect || rect.y - prevRect.y > prevRect.height / 2) {
535
+ groups.push([rect]);
536
+ } else {
537
+ groups[groups.length - 1].push(rect);
538
+ }
539
+ prevRect = rect;
540
+ }
541
+ return groups.map(rect => rectToClientRect(getBoundingRect(rect)));
542
+ }
500
543
  /**
501
544
  * Provides improved positioning for inline reference elements that can span
502
545
  * over multiple lines, such as hyperlinks or range selections.
@@ -509,14 +552,14 @@ const inline = function (options) {
509
552
  return {
510
553
  name: 'inline',
511
554
  options,
512
- async fn(middlewareArguments) {
555
+ async fn(state) {
513
556
  const {
514
557
  placement,
515
558
  elements,
516
559
  rects,
517
560
  platform,
518
561
  strategy
519
- } = middlewareArguments;
562
+ } = state;
520
563
  // A MouseEvent's client{X,Y} coords can be up to 2 pixels off a
521
564
  // ClientRect's bounds, despite the event listener being triggered. A
522
565
  // padding of 2 seems to handle this issue.
@@ -524,14 +567,11 @@ const inline = function (options) {
524
567
  padding = 2,
525
568
  x,
526
569
  y
527
- } = options;
528
- const fallback = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({
529
- rect: rects.reference,
530
- offsetParent: await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating)),
531
- strategy
532
- }) : rects.reference);
533
- const clientRects = (await (platform.getClientRects == null ? void 0 : platform.getClientRects(elements.reference))) || [];
534
- const paddingObject = getSideObjectFromPadding(padding);
570
+ } = evaluate(options, state);
571
+ const nativeClientRects = Array.from((await (platform.getClientRects == null ? void 0 : platform.getClientRects(elements.reference))) || []);
572
+ const clientRects = getRectsByLine(nativeClientRects);
573
+ const fallback = rectToClientRect(getBoundingRect(nativeClientRects));
574
+ const paddingObject = getPaddingObject(padding);
535
575
  function getBoundingClientRect() {
536
576
  // There are two rects and they are disjoined.
537
577
  if (clientRects.length === 2 && clientRects[0].left > clientRects[1].right && x != null && y != null) {
@@ -541,7 +581,7 @@ const inline = function (options) {
541
581
 
542
582
  // There are 2 or more connected rects.
543
583
  if (clientRects.length >= 2) {
544
- if (getMainAxisFromPlacement(placement) === 'x') {
584
+ if (getSideAxis(placement) === 'y') {
545
585
  const firstRect = clientRects[0];
546
586
  const lastRect = clientRects[clientRects.length - 1];
547
587
  const isTop = getSide(placement) === 'top';
@@ -563,8 +603,8 @@ const inline = function (options) {
563
603
  };
564
604
  }
565
605
  const isLeftSide = getSide(placement) === 'left';
566
- const maxRight = max$1(...clientRects.map(rect => rect.right));
567
- const minLeft = min$1(...clientRects.map(rect => rect.left));
606
+ const maxRight = max(...clientRects.map(rect => rect.right));
607
+ const minLeft = min(...clientRects.map(rect => rect.left));
568
608
  const measureRects = clientRects.filter(rect => isLeftSide ? rect.left === minLeft : rect.right === maxRight);
569
609
  const top = measureRects[0].top;
570
610
  const bottom = measureRects[measureRects.length - 1].bottom;
@@ -604,19 +644,21 @@ const inline = function (options) {
604
644
  };
605
645
  };
606
646
 
607
- async function convertValueToCoords(middlewareArguments, value) {
647
+ // For type backwards-compatibility, the `OffsetOptions` type was also
648
+ // Derivable.
649
+ async function convertValueToCoords(state, options) {
608
650
  const {
609
651
  placement,
610
652
  platform,
611
653
  elements
612
- } = middlewareArguments;
654
+ } = state;
613
655
  const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));
614
656
  const side = getSide(placement);
615
657
  const alignment = getAlignment(placement);
616
- const isVertical = getMainAxisFromPlacement(placement) === 'x';
658
+ const isVertical = getSideAxis(placement) === 'y';
617
659
  const mainAxisMulti = ['left', 'top'].includes(side) ? -1 : 1;
618
660
  const crossAxisMulti = rtl && isVertical ? -1 : 1;
619
- const rawValue = typeof value === 'function' ? value(middlewareArguments) : value;
661
+ const rawValue = evaluate(options, state);
620
662
 
621
663
  // eslint-disable-next-line prefer-const
622
664
  let {
@@ -646,22 +688,25 @@ async function convertValueToCoords(middlewareArguments, value) {
646
688
  }
647
689
 
648
690
  /**
649
- * Displaces the floating element from its reference element.
691
+ * Modifies the placement by translating the floating element along the
692
+ * specified axes.
693
+ * A number (shorthand for `mainAxis` or distance), or an axes configuration
694
+ * object may be passed.
650
695
  * @see https://floating-ui.com/docs/offset
651
696
  */
652
- const offset = function (value) {
653
- if (value === void 0) {
654
- value = 0;
697
+ const offset = function (options) {
698
+ if (options === void 0) {
699
+ options = 0;
655
700
  }
656
701
  return {
657
702
  name: 'offset',
658
- options: value,
659
- async fn(middlewareArguments) {
703
+ options,
704
+ async fn(state) {
660
705
  const {
661
706
  x,
662
707
  y
663
- } = middlewareArguments;
664
- const diffCoords = await convertValueToCoords(middlewareArguments, value);
708
+ } = state;
709
+ const diffCoords = await convertValueToCoords(state, options);
665
710
  return {
666
711
  x: x + diffCoords.x,
667
712
  y: y + diffCoords.y,
@@ -671,13 +716,9 @@ const offset = function (value) {
671
716
  };
672
717
  };
673
718
 
674
- function getCrossAxis(axis) {
675
- return axis === 'x' ? 'y' : 'x';
676
- }
677
-
678
719
  /**
679
- * Shifts the floating element in order to keep it in view when it will overflow
680
- * a clipping boundary.
720
+ * Optimizes the visibility of the floating element by shifting it in order to
721
+ * keep it in view when it will overflow the clipping boundary.
681
722
  * @see https://floating-ui.com/docs/shift
682
723
  */
683
724
  const shift = function (options) {
@@ -687,12 +728,12 @@ const shift = function (options) {
687
728
  return {
688
729
  name: 'shift',
689
730
  options,
690
- async fn(middlewareArguments) {
731
+ async fn(state) {
691
732
  const {
692
733
  x,
693
734
  y,
694
735
  placement
695
- } = middlewareArguments;
736
+ } = state;
696
737
  const {
697
738
  mainAxis: checkMainAxis = true,
698
739
  crossAxis: checkCrossAxis = false,
@@ -709,14 +750,14 @@ const shift = function (options) {
709
750
  }
710
751
  },
711
752
  ...detectOverflowOptions
712
- } = options;
753
+ } = evaluate(options, state);
713
754
  const coords = {
714
755
  x,
715
756
  y
716
757
  };
717
- const overflow = await detectOverflow(middlewareArguments, detectOverflowOptions);
718
- const mainAxis = getMainAxisFromPlacement(getSide(placement));
719
- const crossAxis = getCrossAxis(mainAxis);
758
+ const overflow = await detectOverflow(state, detectOverflowOptions);
759
+ const crossAxis = getSideAxis(getSide(placement));
760
+ const mainAxis = getOppositeAxis(crossAxis);
720
761
  let mainAxisCoord = coords[mainAxis];
721
762
  let crossAxisCoord = coords[crossAxis];
722
763
  if (checkMainAxis) {
@@ -724,17 +765,17 @@ const shift = function (options) {
724
765
  const maxSide = mainAxis === 'y' ? 'bottom' : 'right';
725
766
  const min = mainAxisCoord + overflow[minSide];
726
767
  const max = mainAxisCoord - overflow[maxSide];
727
- mainAxisCoord = within(min, mainAxisCoord, max);
768
+ mainAxisCoord = clamp(min, mainAxisCoord, max);
728
769
  }
729
770
  if (checkCrossAxis) {
730
771
  const minSide = crossAxis === 'y' ? 'top' : 'left';
731
772
  const maxSide = crossAxis === 'y' ? 'bottom' : 'right';
732
773
  const min = crossAxisCoord + overflow[minSide];
733
774
  const max = crossAxisCoord - overflow[maxSide];
734
- crossAxisCoord = within(min, crossAxisCoord, max);
775
+ crossAxisCoord = clamp(min, crossAxisCoord, max);
735
776
  }
736
777
  const limitedCoords = limiter.fn({
737
- ...middlewareArguments,
778
+ ...state,
738
779
  [mainAxis]: mainAxisCoord,
739
780
  [crossAxis]: crossAxisCoord
740
781
  });
@@ -749,48 +790,38 @@ const shift = function (options) {
749
790
  };
750
791
  };
751
792
 
793
+ function getNodeName(node) {
794
+ if (isNode(node)) {
795
+ return (node.nodeName || '').toLowerCase();
796
+ }
797
+ // Mocked nodes in testing environments may not be instances of Node. By
798
+ // returning `#document` an infinite loop won't occur.
799
+ // https://github.com/floating-ui/floating-ui/issues/2317
800
+ return '#document';
801
+ }
752
802
  function getWindow(node) {
753
803
  var _node$ownerDocument;
754
- return ((_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;
755
- }
756
-
757
- function getComputedStyle$1(element) {
758
- return getWindow(element).getComputedStyle(element);
759
- }
760
-
761
- function getNodeName(node) {
762
- return isNode(node) ? (node.nodeName || '').toLowerCase() : '';
804
+ return (node == null ? void 0 : (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;
763
805
  }
764
-
765
- let uaString;
766
- function getUAString() {
767
- if (uaString) {
768
- return uaString;
769
- }
770
- const uaData = navigator.userAgentData;
771
- if (uaData && Array.isArray(uaData.brands)) {
772
- uaString = uaData.brands.map(item => item.brand + "/" + item.version).join(' ');
773
- return uaString;
774
- }
775
- return navigator.userAgent;
806
+ function getDocumentElement(node) {
807
+ var _ref;
808
+ return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement;
776
809
  }
777
-
778
- function isHTMLElement(value) {
779
- return value instanceof getWindow(value).HTMLElement;
810
+ function isNode(value) {
811
+ return value instanceof Node || value instanceof getWindow(value).Node;
780
812
  }
781
813
  function isElement(value) {
782
- return value instanceof getWindow(value).Element;
814
+ return value instanceof Element || value instanceof getWindow(value).Element;
783
815
  }
784
- function isNode(value) {
785
- return value instanceof getWindow(value).Node;
816
+ function isHTMLElement(value) {
817
+ return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;
786
818
  }
787
- function isShadowRoot(node) {
788
- // Browsers without `ShadowRoot` support
819
+ function isShadowRoot(value) {
820
+ // Browsers without `ShadowRoot` support.
789
821
  if (typeof ShadowRoot === 'undefined') {
790
822
  return false;
791
823
  }
792
- const OwnElement = getWindow(node).ShadowRoot;
793
- return node instanceof OwnElement || node instanceof ShadowRoot;
824
+ return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;
794
825
  }
795
826
  function isOverflowElement(element) {
796
827
  const {
@@ -798,52 +829,100 @@ function isOverflowElement(element) {
798
829
  overflowX,
799
830
  overflowY,
800
831
  display
801
- } = getComputedStyle$1(element);
832
+ } = getComputedStyle(element);
802
833
  return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !['inline', 'contents'].includes(display);
803
834
  }
804
835
  function isTableElement(element) {
805
836
  return ['table', 'td', 'th'].includes(getNodeName(element));
806
837
  }
807
838
  function isContainingBlock(element) {
808
- // TODO: Try and use feature detection here instead
809
- const isFirefox = /firefox/i.test(getUAString());
810
- const css = getComputedStyle$1(element);
811
- const backdropFilter = css.backdropFilter || css.WebkitBackdropFilter;
839
+ const webkit = isWebKit();
840
+ const css = getComputedStyle(element);
812
841
 
813
- // This is non-exhaustive but covers the most common CSS properties that
814
- // create a containing block.
815
842
  // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block
816
- return css.transform !== 'none' || css.perspective !== 'none' || (backdropFilter ? backdropFilter !== 'none' : false) || isFirefox && css.willChange === 'filter' || isFirefox && (css.filter ? css.filter !== 'none' : false) || ['transform', 'perspective'].some(value => css.willChange.includes(value)) || ['paint', 'layout', 'strict', 'content'].some(
817
- // TS 4.1 compat
818
- value => {
819
- const contain = css.contain;
820
- return contain != null ? contain.includes(value) : false;
821
- });
843
+ return css.transform !== 'none' || css.perspective !== 'none' || (css.containerType ? css.containerType !== 'normal' : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== 'none' : false) || !webkit && (css.filter ? css.filter !== 'none' : false) || ['transform', 'perspective', 'filter'].some(value => (css.willChange || '').includes(value)) || ['paint', 'layout', 'strict', 'content'].some(value => (css.contain || '').includes(value));
844
+ }
845
+ function getContainingBlock(element) {
846
+ let currentNode = getParentNode(element);
847
+ while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {
848
+ if (isContainingBlock(currentNode)) {
849
+ return currentNode;
850
+ } else {
851
+ currentNode = getParentNode(currentNode);
852
+ }
853
+ }
854
+ return null;
822
855
  }
823
- function isLayoutViewport() {
824
- // Not Safari
825
- return !/^((?!chrome|android).)*safari/i.test(getUAString());
826
- // Feature detection for this fails in various ways
827
- // • Always-visible scrollbar or not
828
- // • Width of <html>, etc.
829
- // const vV = win.visualViewport;
830
- // return vV ? Math.abs(win.innerWidth / vV.scale - vV.width) < 0.5 : true;
856
+ function isWebKit() {
857
+ if (typeof CSS === 'undefined' || !CSS.supports) return false;
858
+ return CSS.supports('-webkit-backdrop-filter', 'none');
831
859
  }
832
-
833
860
  function isLastTraversableNode(node) {
834
861
  return ['html', 'body', '#document'].includes(getNodeName(node));
835
862
  }
836
-
837
- const min = Math.min;
838
- const max = Math.max;
839
- const round = Math.round;
863
+ function getComputedStyle(element) {
864
+ return getWindow(element).getComputedStyle(element);
865
+ }
866
+ function getNodeScroll(element) {
867
+ if (isElement(element)) {
868
+ return {
869
+ scrollLeft: element.scrollLeft,
870
+ scrollTop: element.scrollTop
871
+ };
872
+ }
873
+ return {
874
+ scrollLeft: element.pageXOffset,
875
+ scrollTop: element.pageYOffset
876
+ };
877
+ }
878
+ function getParentNode(node) {
879
+ if (getNodeName(node) === 'html') {
880
+ return node;
881
+ }
882
+ const result =
883
+ // Step into the shadow DOM of the parent of a slotted node.
884
+ node.assignedSlot ||
885
+ // DOM Element detected.
886
+ node.parentNode ||
887
+ // ShadowRoot detected.
888
+ isShadowRoot(node) && node.host ||
889
+ // Fallback.
890
+ getDocumentElement(node);
891
+ return isShadowRoot(result) ? result.host : result;
892
+ }
893
+ function getNearestOverflowAncestor(node) {
894
+ const parentNode = getParentNode(node);
895
+ if (isLastTraversableNode(parentNode)) {
896
+ return node.ownerDocument ? node.ownerDocument.body : node.body;
897
+ }
898
+ if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {
899
+ return parentNode;
900
+ }
901
+ return getNearestOverflowAncestor(parentNode);
902
+ }
903
+ function getOverflowAncestors(node, list) {
904
+ var _node$ownerDocument2;
905
+ if (list === void 0) {
906
+ list = [];
907
+ }
908
+ const scrollableAncestor = getNearestOverflowAncestor(node);
909
+ const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body);
910
+ const win = getWindow(scrollableAncestor);
911
+ if (isBody) {
912
+ return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : []);
913
+ }
914
+ return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor));
915
+ }
840
916
 
841
917
  function getCssDimensions(element) {
842
- const css = getComputedStyle$1(element);
843
- let width = parseFloat(css.width);
844
- let height = parseFloat(css.height);
845
- const offsetWidth = element.offsetWidth;
846
- const offsetHeight = element.offsetHeight;
918
+ const css = getComputedStyle(element);
919
+ // In testing environments, the `width` and `height` properties are empty
920
+ // strings for SVG elements, returning NaN. Fallback to `0` in this case.
921
+ let width = parseFloat(css.width) || 0;
922
+ let height = parseFloat(css.height) || 0;
923
+ const hasOffset = isHTMLElement(element);
924
+ const offsetWidth = hasOffset ? element.offsetWidth : width;
925
+ const offsetHeight = hasOffset ? element.offsetHeight : height;
847
926
  const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;
848
927
  if (shouldFallback) {
849
928
  width = offsetWidth;
@@ -852,7 +931,7 @@ function getCssDimensions(element) {
852
931
  return {
853
932
  width,
854
933
  height,
855
- fallback: shouldFallback
934
+ $: shouldFallback
856
935
  };
857
936
  }
858
937
 
@@ -860,23 +939,19 @@ function unwrapElement(element) {
860
939
  return !isElement(element) ? element.contextElement : element;
861
940
  }
862
941
 
863
- const FALLBACK_SCALE = {
864
- x: 1,
865
- y: 1
866
- };
867
942
  function getScale(element) {
868
943
  const domElement = unwrapElement(element);
869
944
  if (!isHTMLElement(domElement)) {
870
- return FALLBACK_SCALE;
945
+ return createCoords(1);
871
946
  }
872
947
  const rect = domElement.getBoundingClientRect();
873
948
  const {
874
949
  width,
875
950
  height,
876
- fallback
951
+ $
877
952
  } = getCssDimensions(domElement);
878
- let x = (fallback ? round(rect.width) : rect.width) / width;
879
- let y = (fallback ? round(rect.height) : rect.height) / height;
953
+ let x = ($ ? round(rect.width) : rect.width) / width;
954
+ let y = ($ ? round(rect.height) : rect.height) / height;
880
955
 
881
956
  // 0, NaN, or Infinity should always fallback to 1.
882
957
 
@@ -892,8 +967,28 @@ function getScale(element) {
892
967
  };
893
968
  }
894
969
 
970
+ const noOffsets = /*#__PURE__*/createCoords(0);
971
+ function getVisualOffsets(element) {
972
+ const win = getWindow(element);
973
+ if (!isWebKit() || !win.visualViewport) {
974
+ return noOffsets;
975
+ }
976
+ return {
977
+ x: win.visualViewport.offsetLeft,
978
+ y: win.visualViewport.offsetTop
979
+ };
980
+ }
981
+ function shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {
982
+ if (isFixed === void 0) {
983
+ isFixed = false;
984
+ }
985
+ if (!floatingOffsetParent || isFixed && floatingOffsetParent !== getWindow(element)) {
986
+ return false;
987
+ }
988
+ return isFixed;
989
+ }
990
+
895
991
  function getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {
896
- var _win$visualViewport, _win$visualViewport2;
897
992
  if (includeScale === void 0) {
898
993
  includeScale = false;
899
994
  }
@@ -902,7 +997,7 @@ function getBoundingClientRect(element, includeScale, isFixedStrategy, offsetPar
902
997
  }
903
998
  const clientRect = element.getBoundingClientRect();
904
999
  const domElement = unwrapElement(element);
905
- let scale = FALLBACK_SCALE;
1000
+ let scale = createCoords(1);
906
1001
  if (includeScale) {
907
1002
  if (offsetParent) {
908
1003
  if (isElement(offsetParent)) {
@@ -912,10 +1007,9 @@ function getBoundingClientRect(element, includeScale, isFixedStrategy, offsetPar
912
1007
  scale = getScale(element);
913
1008
  }
914
1009
  }
915
- const win = domElement ? getWindow(domElement) : window;
916
- const addVisualOffsets = !isLayoutViewport() && isFixedStrategy;
917
- let x = (clientRect.left + (addVisualOffsets ? ((_win$visualViewport = win.visualViewport) == null ? void 0 : _win$visualViewport.offsetLeft) || 0 : 0)) / scale.x;
918
- let y = (clientRect.top + (addVisualOffsets ? ((_win$visualViewport2 = win.visualViewport) == null ? void 0 : _win$visualViewport2.offsetTop) || 0 : 0)) / scale.y;
1010
+ const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0);
1011
+ let x = (clientRect.left + visualOffsets.x) / scale.x;
1012
+ let y = (clientRect.top + visualOffsets.y) / scale.y;
919
1013
  let width = clientRect.width / scale.x;
920
1014
  let height = clientRect.height / scale.y;
921
1015
  if (domElement) {
@@ -926,134 +1020,23 @@ function getBoundingClientRect(element, includeScale, isFixedStrategy, offsetPar
926
1020
  const iframeScale = getScale(currentIFrame);
927
1021
  const iframeRect = currentIFrame.getBoundingClientRect();
928
1022
  const css = getComputedStyle(currentIFrame);
929
- iframeRect.x += (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;
930
- iframeRect.y += (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;
1023
+ const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;
1024
+ const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;
931
1025
  x *= iframeScale.x;
932
1026
  y *= iframeScale.y;
933
1027
  width *= iframeScale.x;
934
1028
  height *= iframeScale.y;
935
- x += iframeRect.x;
936
- y += iframeRect.y;
1029
+ x += left;
1030
+ y += top;
937
1031
  currentIFrame = getWindow(currentIFrame).frameElement;
938
1032
  }
939
1033
  }
940
- return {
1034
+ return rectToClientRect({
941
1035
  width,
942
1036
  height,
943
- top: y,
944
- right: x + width,
945
- bottom: y + height,
946
- left: x,
947
1037
  x,
948
1038
  y
949
- };
950
- }
951
-
952
- function getDocumentElement(node) {
953
- return ((isNode(node) ? node.ownerDocument : node.document) || window.document).documentElement;
954
- }
955
-
956
- function getNodeScroll(element) {
957
- if (isElement(element)) {
958
- return {
959
- scrollLeft: element.scrollLeft,
960
- scrollTop: element.scrollTop
961
- };
962
- }
963
- return {
964
- scrollLeft: element.pageXOffset,
965
- scrollTop: element.pageYOffset
966
- };
967
- }
968
-
969
- function getWindowScrollBarX(element) {
970
- // If <html> has a CSS width greater than the viewport, then this will be
971
- // incorrect for RTL.
972
- return getBoundingClientRect(getDocumentElement(element)).left + getNodeScroll(element).scrollLeft;
973
- }
974
-
975
- function getRectRelativeToOffsetParent(element, offsetParent, strategy) {
976
- const isOffsetParentAnElement = isHTMLElement(offsetParent);
977
- const documentElement = getDocumentElement(offsetParent);
978
- const rect = getBoundingClientRect(element, true, strategy === 'fixed', offsetParent);
979
- let scroll = {
980
- scrollLeft: 0,
981
- scrollTop: 0
982
- };
983
- const offsets = {
984
- x: 0,
985
- y: 0
986
- };
987
- if (isOffsetParentAnElement || !isOffsetParentAnElement && strategy !== 'fixed') {
988
- if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {
989
- scroll = getNodeScroll(offsetParent);
990
- }
991
- if (isHTMLElement(offsetParent)) {
992
- const offsetRect = getBoundingClientRect(offsetParent, true);
993
- offsets.x = offsetRect.x + offsetParent.clientLeft;
994
- offsets.y = offsetRect.y + offsetParent.clientTop;
995
- } else if (documentElement) {
996
- offsets.x = getWindowScrollBarX(documentElement);
997
- }
998
- }
999
- return {
1000
- x: rect.left + scroll.scrollLeft - offsets.x,
1001
- y: rect.top + scroll.scrollTop - offsets.y,
1002
- width: rect.width,
1003
- height: rect.height
1004
- };
1005
- }
1006
-
1007
- function getParentNode(node) {
1008
- if (getNodeName(node) === 'html') {
1009
- return node;
1010
- }
1011
- const result =
1012
- // Step into the shadow DOM of the parent of a slotted node
1013
- node.assignedSlot ||
1014
- // DOM Element detected
1015
- node.parentNode || (
1016
- // ShadowRoot detected
1017
- isShadowRoot(node) ? node.host : null) ||
1018
- // Fallback
1019
- getDocumentElement(node);
1020
- return isShadowRoot(result) ? result.host : result;
1021
- }
1022
-
1023
- function getTrueOffsetParent(element) {
1024
- if (!isHTMLElement(element) || getComputedStyle$1(element).position === 'fixed') {
1025
- return null;
1026
- }
1027
- return element.offsetParent;
1028
- }
1029
- function getContainingBlock(element) {
1030
- let currentNode = getParentNode(element);
1031
- while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {
1032
- if (isContainingBlock(currentNode)) {
1033
- return currentNode;
1034
- } else {
1035
- currentNode = getParentNode(currentNode);
1036
- }
1037
- }
1038
- return null;
1039
- }
1040
-
1041
- // Gets the closest ancestor positioned element. Handles some edge cases,
1042
- // such as table ancestors and cross browser bugs.
1043
- function getOffsetParent(element) {
1044
- const window = getWindow(element);
1045
- let offsetParent = getTrueOffsetParent(element);
1046
- while (offsetParent && isTableElement(offsetParent) && getComputedStyle$1(offsetParent).position === 'static') {
1047
- offsetParent = getTrueOffsetParent(offsetParent);
1048
- }
1049
- if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle$1(offsetParent).position === 'static' && !isContainingBlock(offsetParent))) {
1050
- return window;
1051
- }
1052
- return offsetParent || getContainingBlock(element) || window;
1053
- }
1054
-
1055
- function getDimensions(element) {
1056
- return getCssDimensions(element);
1039
+ });
1057
1040
  }
1058
1041
 
1059
1042
  function convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {
@@ -1071,14 +1054,8 @@ function convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {
1071
1054
  scrollLeft: 0,
1072
1055
  scrollTop: 0
1073
1056
  };
1074
- let scale = {
1075
- x: 1,
1076
- y: 1
1077
- };
1078
- const offsets = {
1079
- x: 0,
1080
- y: 0
1081
- };
1057
+ let scale = createCoords(1);
1058
+ const offsets = createCoords(0);
1082
1059
  if (isOffsetParentAnElement || !isOffsetParentAnElement && strategy !== 'fixed') {
1083
1060
  if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {
1084
1061
  scroll = getNodeScroll(offsetParent);
@@ -1089,12 +1066,7 @@ function convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {
1089
1066
  offsets.x = offsetRect.x + offsetParent.clientLeft;
1090
1067
  offsets.y = offsetRect.y + offsetParent.clientTop;
1091
1068
  }
1092
- // This doesn't appear to need to be negated.
1093
- // else if (documentElement) {
1094
- // offsets.x = getWindowScrollBarX(documentElement);
1095
- // }
1096
1069
  }
1097
-
1098
1070
  return {
1099
1071
  width: rect.width * scale.x,
1100
1072
  height: rect.height * scale.y,
@@ -1103,6 +1075,37 @@ function convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {
1103
1075
  };
1104
1076
  }
1105
1077
 
1078
+ function getClientRects(element) {
1079
+ return Array.from(element.getClientRects());
1080
+ }
1081
+
1082
+ function getWindowScrollBarX(element) {
1083
+ // If <html> has a CSS width greater than the viewport, then this will be
1084
+ // incorrect for RTL.
1085
+ return getBoundingClientRect(getDocumentElement(element)).left + getNodeScroll(element).scrollLeft;
1086
+ }
1087
+
1088
+ // Gets the entire size of the scrollable document area, even extending outside
1089
+ // of the `<html>` and `<body>` rect bounds if horizontally scrollable.
1090
+ function getDocumentRect(element) {
1091
+ const html = getDocumentElement(element);
1092
+ const scroll = getNodeScroll(element);
1093
+ const body = element.ownerDocument.body;
1094
+ const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);
1095
+ const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);
1096
+ let x = -scroll.scrollLeft + getWindowScrollBarX(element);
1097
+ const y = -scroll.scrollTop;
1098
+ if (getComputedStyle(body).direction === 'rtl') {
1099
+ x += max(html.clientWidth, body.clientWidth) - width;
1100
+ }
1101
+ return {
1102
+ width,
1103
+ height,
1104
+ x,
1105
+ y
1106
+ };
1107
+ }
1108
+
1106
1109
  function getViewportRect(element, strategy) {
1107
1110
  const win = getWindow(element);
1108
1111
  const html = getDocumentElement(element);
@@ -1114,8 +1117,8 @@ function getViewportRect(element, strategy) {
1114
1117
  if (visualViewport) {
1115
1118
  width = visualViewport.width;
1116
1119
  height = visualViewport.height;
1117
- const layoutViewport = isLayoutViewport();
1118
- if (layoutViewport || !layoutViewport && strategy === 'fixed') {
1120
+ const visualViewportBased = isWebKit();
1121
+ if (!visualViewportBased || visualViewportBased && strategy === 'fixed') {
1119
1122
  x = visualViewport.offsetLeft;
1120
1123
  y = visualViewport.offsetTop;
1121
1124
  }
@@ -1128,86 +1131,47 @@ function getViewportRect(element, strategy) {
1128
1131
  };
1129
1132
  }
1130
1133
 
1131
- // Gets the entire size of the scrollable document area, even extending outside
1132
- // of the `<html>` and `<body>` rect bounds if horizontally scrollable
1133
- function getDocumentRect(element) {
1134
- var _element$ownerDocumen;
1135
- const html = getDocumentElement(element);
1136
- const scroll = getNodeScroll(element);
1137
- const body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;
1138
- const width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);
1139
- const height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);
1140
- let x = -scroll.scrollLeft + getWindowScrollBarX(element);
1141
- const y = -scroll.scrollTop;
1142
- if (getComputedStyle$1(body || html).direction === 'rtl') {
1143
- x += max(html.clientWidth, body ? body.clientWidth : 0) - width;
1144
- }
1145
- return {
1146
- width,
1147
- height,
1148
- x,
1149
- y
1150
- };
1151
- }
1152
-
1153
- function getNearestOverflowAncestor(node) {
1154
- const parentNode = getParentNode(node);
1155
- if (isLastTraversableNode(parentNode)) {
1156
- // @ts-ignore assume body is always available
1157
- return node.ownerDocument.body;
1158
- }
1159
- if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {
1160
- return parentNode;
1161
- }
1162
- return getNearestOverflowAncestor(parentNode);
1163
- }
1164
-
1165
- function getOverflowAncestors(node, list) {
1166
- var _node$ownerDocument;
1167
- if (list === void 0) {
1168
- list = [];
1169
- }
1170
- const scrollableAncestor = getNearestOverflowAncestor(node);
1171
- const isBody = scrollableAncestor === ((_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.body);
1172
- const win = getWindow(scrollableAncestor);
1173
- if (isBody) {
1174
- return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : []);
1175
- }
1176
- return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor));
1177
- }
1178
-
1179
- // Returns the inner client rect, subtracting scrollbars if present
1134
+ // Returns the inner client rect, subtracting scrollbars if present.
1180
1135
  function getInnerBoundingClientRect(element, strategy) {
1181
1136
  const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');
1182
1137
  const top = clientRect.top + element.clientTop;
1183
1138
  const left = clientRect.left + element.clientLeft;
1184
- const scale = isHTMLElement(element) ? getScale(element) : {
1185
- x: 1,
1186
- y: 1
1187
- };
1139
+ const scale = isHTMLElement(element) ? getScale(element) : createCoords(1);
1188
1140
  const width = element.clientWidth * scale.x;
1189
1141
  const height = element.clientHeight * scale.y;
1190
1142
  const x = left * scale.x;
1191
1143
  const y = top * scale.y;
1192
1144
  return {
1193
- top: y,
1194
- left: x,
1195
- right: x + width,
1196
- bottom: y + height,
1197
- x,
1198
- y,
1199
1145
  width,
1200
- height
1146
+ height,
1147
+ x,
1148
+ y
1201
1149
  };
1202
1150
  }
1203
1151
  function getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {
1152
+ let rect;
1204
1153
  if (clippingAncestor === 'viewport') {
1205
- return rectToClientRect(getViewportRect(element, strategy));
1154
+ rect = getViewportRect(element, strategy);
1155
+ } else if (clippingAncestor === 'document') {
1156
+ rect = getDocumentRect(getDocumentElement(element));
1157
+ } else if (isElement(clippingAncestor)) {
1158
+ rect = getInnerBoundingClientRect(clippingAncestor, strategy);
1159
+ } else {
1160
+ const visualOffsets = getVisualOffsets(element);
1161
+ rect = {
1162
+ ...clippingAncestor,
1163
+ x: clippingAncestor.x - visualOffsets.x,
1164
+ y: clippingAncestor.y - visualOffsets.y
1165
+ };
1206
1166
  }
1207
- if (isElement(clippingAncestor)) {
1208
- return getInnerBoundingClientRect(clippingAncestor, strategy);
1167
+ return rectToClientRect(rect);
1168
+ }
1169
+ function hasFixedPositionAncestor(element, stopNode) {
1170
+ const parentNode = getParentNode(element);
1171
+ if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {
1172
+ return false;
1209
1173
  }
1210
- return rectToClientRect(getDocumentRect(getDocumentElement(element)));
1174
+ return getComputedStyle(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);
1211
1175
  }
1212
1176
 
1213
1177
  // A "clipping ancestor" is an `overflow` element with the characteristic of
@@ -1220,19 +1184,22 @@ function getClippingElementAncestors(element, cache) {
1220
1184
  }
1221
1185
  let result = getOverflowAncestors(element).filter(el => isElement(el) && getNodeName(el) !== 'body');
1222
1186
  let currentContainingBlockComputedStyle = null;
1223
- const elementIsFixed = getComputedStyle$1(element).position === 'fixed';
1187
+ const elementIsFixed = getComputedStyle(element).position === 'fixed';
1224
1188
  let currentNode = elementIsFixed ? getParentNode(element) : element;
1225
1189
 
1226
1190
  // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block
1227
1191
  while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {
1228
- const computedStyle = getComputedStyle$1(currentNode);
1229
- const containingBlock = isContainingBlock(currentNode);
1230
- const shouldDropCurrentNode = elementIsFixed ? !containingBlock && !currentContainingBlockComputedStyle : !containingBlock && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && ['absolute', 'fixed'].includes(currentContainingBlockComputedStyle.position);
1192
+ const computedStyle = getComputedStyle(currentNode);
1193
+ const currentNodeIsContaining = isContainingBlock(currentNode);
1194
+ if (!currentNodeIsContaining && computedStyle.position === 'fixed') {
1195
+ currentContainingBlockComputedStyle = null;
1196
+ }
1197
+ const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && ['absolute', 'fixed'].includes(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);
1231
1198
  if (shouldDropCurrentNode) {
1232
- // Drop non-containing blocks
1199
+ // Drop non-containing blocks.
1233
1200
  result = result.filter(ancestor => ancestor !== currentNode);
1234
1201
  } else {
1235
- // Record last containing block for next iteration
1202
+ // Record last containing block for next iteration.
1236
1203
  currentContainingBlockComputedStyle = computedStyle;
1237
1204
  }
1238
1205
  currentNode = getParentNode(currentNode);
@@ -1242,7 +1209,7 @@ function getClippingElementAncestors(element, cache) {
1242
1209
  }
1243
1210
 
1244
1211
  // Gets the maximum area that the element is visible in due to any number of
1245
- // clipping ancestors
1212
+ // clipping ancestors.
1246
1213
  function getClippingRect(_ref) {
1247
1214
  let {
1248
1215
  element,
@@ -1269,37 +1236,182 @@ function getClippingRect(_ref) {
1269
1236
  };
1270
1237
  }
1271
1238
 
1239
+ function getDimensions(element) {
1240
+ return getCssDimensions(element);
1241
+ }
1242
+
1243
+ function getRectRelativeToOffsetParent(element, offsetParent, strategy) {
1244
+ const isOffsetParentAnElement = isHTMLElement(offsetParent);
1245
+ const documentElement = getDocumentElement(offsetParent);
1246
+ const isFixed = strategy === 'fixed';
1247
+ const rect = getBoundingClientRect(element, true, isFixed, offsetParent);
1248
+ let scroll = {
1249
+ scrollLeft: 0,
1250
+ scrollTop: 0
1251
+ };
1252
+ const offsets = createCoords(0);
1253
+ if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {
1254
+ if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {
1255
+ scroll = getNodeScroll(offsetParent);
1256
+ }
1257
+ if (isOffsetParentAnElement) {
1258
+ const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);
1259
+ offsets.x = offsetRect.x + offsetParent.clientLeft;
1260
+ offsets.y = offsetRect.y + offsetParent.clientTop;
1261
+ } else if (documentElement) {
1262
+ offsets.x = getWindowScrollBarX(documentElement);
1263
+ }
1264
+ }
1265
+ return {
1266
+ x: rect.left + scroll.scrollLeft - offsets.x,
1267
+ y: rect.top + scroll.scrollTop - offsets.y,
1268
+ width: rect.width,
1269
+ height: rect.height
1270
+ };
1271
+ }
1272
+
1273
+ function getTrueOffsetParent(element, polyfill) {
1274
+ if (!isHTMLElement(element) || getComputedStyle(element).position === 'fixed') {
1275
+ return null;
1276
+ }
1277
+ if (polyfill) {
1278
+ return polyfill(element);
1279
+ }
1280
+ return element.offsetParent;
1281
+ }
1282
+
1283
+ // Gets the closest ancestor positioned element. Handles some edge cases,
1284
+ // such as table ancestors and cross browser bugs.
1285
+ function getOffsetParent(element, polyfill) {
1286
+ const window = getWindow(element);
1287
+ if (!isHTMLElement(element)) {
1288
+ return window;
1289
+ }
1290
+ let offsetParent = getTrueOffsetParent(element, polyfill);
1291
+ while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {
1292
+ offsetParent = getTrueOffsetParent(offsetParent, polyfill);
1293
+ }
1294
+ if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static' && !isContainingBlock(offsetParent))) {
1295
+ return window;
1296
+ }
1297
+ return offsetParent || getContainingBlock(element) || window;
1298
+ }
1299
+
1300
+ const getElementRects = async function (_ref) {
1301
+ let {
1302
+ reference,
1303
+ floating,
1304
+ strategy
1305
+ } = _ref;
1306
+ const getOffsetParentFn = this.getOffsetParent || getOffsetParent;
1307
+ const getDimensionsFn = this.getDimensions;
1308
+ return {
1309
+ reference: getRectRelativeToOffsetParent(reference, await getOffsetParentFn(floating), strategy),
1310
+ floating: {
1311
+ x: 0,
1312
+ y: 0,
1313
+ ...(await getDimensionsFn(floating))
1314
+ }
1315
+ };
1316
+ };
1317
+
1318
+ function isRTL(element) {
1319
+ return getComputedStyle(element).direction === 'rtl';
1320
+ }
1321
+
1272
1322
  const platform = {
1273
- getClippingRect,
1274
1323
  convertOffsetParentRelativeRectToViewportRelativeRect,
1275
- isElement,
1276
- getDimensions,
1277
- getOffsetParent,
1278
1324
  getDocumentElement,
1325
+ getClippingRect,
1326
+ getOffsetParent,
1327
+ getElementRects,
1328
+ getClientRects,
1329
+ getDimensions,
1279
1330
  getScale,
1280
- async getElementRects(_ref) {
1281
- let {
1282
- reference,
1283
- floating,
1284
- strategy
1285
- } = _ref;
1286
- const getOffsetParentFn = this.getOffsetParent || getOffsetParent;
1287
- const getDimensionsFn = this.getDimensions;
1288
- return {
1289
- reference: getRectRelativeToOffsetParent(reference, await getOffsetParentFn(floating), strategy),
1290
- floating: {
1291
- x: 0,
1292
- y: 0,
1293
- ...(await getDimensionsFn(floating))
1294
- }
1295
- };
1296
- },
1297
- getClientRects: element => Array.from(element.getClientRects()),
1298
- isRTL: element => getComputedStyle$1(element).direction === 'rtl'
1331
+ isElement,
1332
+ isRTL
1299
1333
  };
1300
1334
 
1335
+ // https://samthor.au/2021/observing-dom/
1336
+ function observeMove(element, onMove) {
1337
+ let io = null;
1338
+ let timeoutId;
1339
+ const root = getDocumentElement(element);
1340
+ function cleanup() {
1341
+ clearTimeout(timeoutId);
1342
+ io && io.disconnect();
1343
+ io = null;
1344
+ }
1345
+ function refresh(skip, threshold) {
1346
+ if (skip === void 0) {
1347
+ skip = false;
1348
+ }
1349
+ if (threshold === void 0) {
1350
+ threshold = 1;
1351
+ }
1352
+ cleanup();
1353
+ const {
1354
+ left,
1355
+ top,
1356
+ width,
1357
+ height
1358
+ } = element.getBoundingClientRect();
1359
+ if (!skip) {
1360
+ onMove();
1361
+ }
1362
+ if (!width || !height) {
1363
+ return;
1364
+ }
1365
+ const insetTop = floor(top);
1366
+ const insetRight = floor(root.clientWidth - (left + width));
1367
+ const insetBottom = floor(root.clientHeight - (top + height));
1368
+ const insetLeft = floor(left);
1369
+ const rootMargin = -insetTop + "px " + -insetRight + "px " + -insetBottom + "px " + -insetLeft + "px";
1370
+ const options = {
1371
+ rootMargin,
1372
+ threshold: max(0, min(1, threshold)) || 1
1373
+ };
1374
+ let isFirstUpdate = true;
1375
+ function handleObserve(entries) {
1376
+ const ratio = entries[0].intersectionRatio;
1377
+ if (ratio !== threshold) {
1378
+ if (!isFirstUpdate) {
1379
+ return refresh();
1380
+ }
1381
+ if (!ratio) {
1382
+ timeoutId = setTimeout(() => {
1383
+ refresh(false, 1e-7);
1384
+ }, 100);
1385
+ } else {
1386
+ refresh(false, ratio);
1387
+ }
1388
+ }
1389
+ isFirstUpdate = false;
1390
+ }
1391
+
1392
+ // Older browsers don't support a `document` as the root and will throw an
1393
+ // error.
1394
+ try {
1395
+ io = new IntersectionObserver(handleObserve, {
1396
+ ...options,
1397
+ // Handle <iframe>s
1398
+ root: root.ownerDocument
1399
+ });
1400
+ } catch (e) {
1401
+ io = new IntersectionObserver(handleObserve, options);
1402
+ }
1403
+ io.observe(element);
1404
+ }
1405
+ refresh(true);
1406
+ return cleanup;
1407
+ }
1408
+
1301
1409
  /**
1302
1410
  * Automatically updates the position of the floating element when necessary.
1411
+ * Should only be called when the floating element is mounted on the DOM or
1412
+ * visible on the screen.
1413
+ * @returns cleanup function that should be invoked when the floating element is
1414
+ * removed from the DOM or hidden from the screen.
1303
1415
  * @see https://floating-ui.com/docs/autoUpdate
1304
1416
  */
1305
1417
  function autoUpdate(reference, floating, update, options) {
@@ -1307,33 +1419,41 @@ function autoUpdate(reference, floating, update, options) {
1307
1419
  options = {};
1308
1420
  }
1309
1421
  const {
1310
- ancestorScroll: _ancestorScroll = true,
1422
+ ancestorScroll = true,
1311
1423
  ancestorResize = true,
1312
- elementResize = true,
1424
+ elementResize = typeof ResizeObserver === 'function',
1425
+ layoutShift = typeof IntersectionObserver === 'function',
1313
1426
  animationFrame = false
1314
1427
  } = options;
1315
- const ancestorScroll = _ancestorScroll && !animationFrame;
1316
- const ancestors = ancestorScroll || ancestorResize ? [...(isElement(reference) ? getOverflowAncestors(reference) : reference.contextElement ? getOverflowAncestors(reference.contextElement) : []), ...getOverflowAncestors(floating)] : [];
1428
+ const referenceEl = unwrapElement(reference);
1429
+ const ancestors = ancestorScroll || ancestorResize ? [...(referenceEl ? getOverflowAncestors(referenceEl) : []), ...getOverflowAncestors(floating)] : [];
1317
1430
  ancestors.forEach(ancestor => {
1318
1431
  ancestorScroll && ancestor.addEventListener('scroll', update, {
1319
1432
  passive: true
1320
1433
  });
1321
1434
  ancestorResize && ancestor.addEventListener('resize', update);
1322
1435
  });
1323
- let observer = null;
1436
+ const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update) : null;
1437
+ let reobserveFrame = -1;
1438
+ let resizeObserver = null;
1324
1439
  if (elementResize) {
1325
- let initialUpdate = true;
1326
- observer = new ResizeObserver(() => {
1327
- if (!initialUpdate) {
1328
- update();
1440
+ resizeObserver = new ResizeObserver(_ref => {
1441
+ let [firstEntry] = _ref;
1442
+ if (firstEntry && firstEntry.target === referenceEl && resizeObserver) {
1443
+ // Prevent update loops when using the `size` middleware.
1444
+ // https://github.com/floating-ui/floating-ui/issues/1740
1445
+ resizeObserver.unobserve(floating);
1446
+ cancelAnimationFrame(reobserveFrame);
1447
+ reobserveFrame = requestAnimationFrame(() => {
1448
+ resizeObserver && resizeObserver.observe(floating);
1449
+ });
1329
1450
  }
1330
- initialUpdate = false;
1451
+ update();
1331
1452
  });
1332
- isElement(reference) && !animationFrame && observer.observe(reference);
1333
- if (!isElement(reference) && reference.contextElement && !animationFrame) {
1334
- observer.observe(reference.contextElement);
1453
+ if (referenceEl && !animationFrame) {
1454
+ resizeObserver.observe(referenceEl);
1335
1455
  }
1336
- observer.observe(floating);
1456
+ resizeObserver.observe(floating);
1337
1457
  }
1338
1458
  let frameId;
1339
1459
  let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;
@@ -1350,13 +1470,13 @@ function autoUpdate(reference, floating, update, options) {
1350
1470
  }
1351
1471
  update();
1352
1472
  return () => {
1353
- var _observer;
1354
1473
  ancestors.forEach(ancestor => {
1355
1474
  ancestorScroll && ancestor.removeEventListener('scroll', update);
1356
1475
  ancestorResize && ancestor.removeEventListener('resize', update);
1357
1476
  });
1358
- (_observer = observer) == null ? void 0 : _observer.disconnect();
1359
- observer = null;
1477
+ cleanupIo && cleanupIo();
1478
+ resizeObserver && resizeObserver.disconnect();
1479
+ resizeObserver = null;
1360
1480
  if (animationFrame) {
1361
1481
  cancelAnimationFrame(frameId);
1362
1482
  }
@@ -1389,4 +1509,4 @@ const computePosition = (reference, floating, options) => {
1389
1509
 
1390
1510
  export { autoUpdate as a, arrow as b, computePosition as c, flip as f, inline as i, offset as o, shift as s };
1391
1511
 
1392
- //# sourceMappingURL=floating-ui.dom.esm-9b203a02.js.map
1512
+ //# sourceMappingURL=floating-ui.dom.esm-cbe44820.js.map