@sankhyalabs/ezui 0.0.0-bugfix-dev-KB-132280.3 → 0.0.0-bugfix-dev-KB-157120.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (401) hide show
  1. package/dist/cjs/{ApplicationUtils-006ca96f.js → ApplicationUtils-88dfe345.js} +1 -1
  2. package/dist/cjs/{app-globals-5cb12916.js → app-globals-c1d07d68.js} +1 -1
  3. package/dist/cjs/{classic-search-list_7.cjs.entry.js → classic-search-list_8.cjs.entry.js} +204 -6
  4. package/dist/cjs/ez-actions-button.cjs.entry.js +3 -3
  5. package/dist/cjs/ez-alert-list.cjs.entry.js +2 -2
  6. package/dist/cjs/ez-alert.cjs.entry.js +1 -1
  7. package/dist/cjs/ez-application.cjs.entry.js +1 -1
  8. package/dist/cjs/ez-avatar.cjs.entry.js +2 -2
  9. package/dist/cjs/ez-badge.cjs.entry.js +1 -1
  10. package/dist/cjs/ez-breadcrumb.cjs.entry.js +1 -1
  11. package/dist/cjs/ez-button.cjs.entry.js +1 -1
  12. package/dist/cjs/ez-calendar.cjs.entry.js +2 -2
  13. package/dist/cjs/ez-card-item.cjs.entry.js +1 -1
  14. package/dist/cjs/ez-chart.cjs.entry.js +1 -1
  15. package/dist/cjs/ez-check.cjs.entry.js +1 -1
  16. package/dist/cjs/ez-chip.cjs.entry.js +1 -1
  17. package/dist/cjs/ez-classic-combo-box.cjs.entry.js +5 -3
  18. package/dist/cjs/ez-classic-date-input.cjs.entry.js +3 -3
  19. package/dist/cjs/ez-classic-date-time-input.cjs.entry.js +2 -2
  20. package/dist/cjs/ez-classic-input.cjs.entry.js +50 -4
  21. package/dist/cjs/ez-classic-number-input.cjs.entry.js +2 -2
  22. package/dist/cjs/ez-classic-search-plus.cjs.entry.js +27 -14
  23. package/dist/cjs/ez-classic-search.cjs.entry.js +3 -3
  24. package/dist/cjs/ez-classic-text-area.cjs.entry.js +13 -2
  25. package/dist/cjs/ez-classic-time-input.cjs.entry.js +5 -4
  26. package/dist/cjs/ez-collapsible-box.cjs.entry.js +3 -3
  27. package/dist/cjs/ez-combo-box.cjs.entry.js +8 -3
  28. package/dist/cjs/ez-date-input.cjs.entry.js +2 -2
  29. package/dist/cjs/ez-date-time-input.cjs.entry.js +2 -2
  30. package/dist/cjs/ez-dialog.cjs.entry.js +2 -2
  31. package/dist/cjs/ez-double-list.cjs.entry.js +2 -2
  32. package/dist/cjs/ez-dropdown.cjs.entry.js +2 -2
  33. package/dist/cjs/ez-empty-card.cjs.entry.js +2 -2
  34. package/dist/cjs/ez-file-item.cjs.entry.js +2 -2
  35. package/dist/cjs/ez-filter-input.cjs.entry.js +1 -1
  36. package/dist/cjs/ez-form-view.cjs.entry.js +23 -4
  37. package/dist/cjs/ez-form.cjs.entry.js +66 -44
  38. package/dist/cjs/ez-grid-pagination.cjs.entry.js +227 -0
  39. package/dist/cjs/ez-grid-view.cjs.entry.js +1 -1
  40. package/dist/cjs/ez-grid.cjs.entry.js +236 -173
  41. package/dist/cjs/ez-guide-navigator.cjs.entry.js +2 -2
  42. package/dist/cjs/ez-icon.cjs.entry.js +2 -2
  43. package/dist/cjs/ez-link-builder_6.cjs.entry.js +2 -2
  44. package/dist/cjs/ez-list-item.cjs.entry.js +1 -1
  45. package/dist/cjs/ez-list.cjs.entry.js +2 -2
  46. package/dist/cjs/ez-loading-bar.cjs.entry.js +1 -1
  47. package/dist/cjs/ez-modal-container.cjs.entry.js +2 -2
  48. package/dist/cjs/ez-modal.cjs.entry.js +2 -2
  49. package/dist/cjs/ez-multi-selection-list_5.cjs.entry.js +675 -0
  50. package/dist/cjs/ez-number-input.cjs.entry.js +2 -2
  51. package/dist/cjs/ez-pagination.cjs.entry.js +2 -2
  52. package/dist/cjs/ez-popover.cjs.entry.js +1 -1
  53. package/dist/cjs/ez-popup.cjs.entry.js +5 -6
  54. package/dist/cjs/ez-progress-bar.cjs.entry.js +1 -1
  55. package/dist/cjs/ez-radio-button.cjs.entry.js +1 -1
  56. package/dist/cjs/ez-record-navigation.cjs.entry.js +121 -0
  57. package/dist/cjs/ez-rich-toolbar-item.cjs.entry.js +1 -1
  58. package/dist/cjs/ez-scroller_2.cjs.entry.js +82 -15
  59. package/dist/cjs/ez-search-plus.cjs.entry.js +26 -12
  60. package/dist/cjs/ez-search-result-list.cjs.entry.js +2 -2
  61. package/dist/cjs/ez-search.cjs.entry.js +12 -5
  62. package/dist/cjs/ez-sidebar-navigator.cjs.entry.js +2 -2
  63. package/dist/cjs/ez-skeleton.cjs.entry.js +2 -2
  64. package/dist/cjs/ez-sortable-list.cjs.entry.js +100 -115
  65. package/dist/cjs/ez-spinner.cjs.entry.js +2 -2
  66. package/dist/cjs/ez-split-button.cjs.entry.js +5 -5
  67. package/dist/cjs/ez-split-item.cjs.entry.js +3 -3
  68. package/dist/cjs/ez-split-panel.cjs.entry.js +1 -1
  69. package/dist/cjs/ez-tabselector.cjs.entry.js +210 -62
  70. package/dist/cjs/ez-tag-input.cjs.entry.js +1 -1
  71. package/dist/cjs/ez-tag.cjs.entry.js +1 -1
  72. package/dist/cjs/ez-text-area.cjs.entry.js +1 -1
  73. package/dist/cjs/ez-text-input.cjs.entry.js +22 -16
  74. package/dist/cjs/ez-tile-medium.cjs.entry.js +1 -1
  75. package/dist/cjs/ez-tile.cjs.entry.js +1 -1
  76. package/dist/cjs/ez-time-input.cjs.entry.js +2 -2
  77. package/dist/cjs/ez-toast.cjs.entry.js +1 -1
  78. package/dist/cjs/ez-tooltip.cjs.entry.js +47 -9
  79. package/dist/cjs/ez-tree.cjs.entry.js +2 -2
  80. package/dist/cjs/ez-underface.cjs.entry.js +1 -1
  81. package/dist/cjs/ez-upload.cjs.entry.js +3 -3
  82. package/dist/cjs/ez-view-stack.cjs.entry.js +1 -1
  83. package/dist/cjs/ezui.cjs.js +4 -4
  84. package/dist/cjs/filter-column.cjs.entry.js +10 -4
  85. package/dist/cjs/{floating-ui.dom.esm-f4d87617.js → floating-ui.dom.esm-9c8bfebb.js} +258 -119
  86. package/dist/cjs/{index-350d0fa0.js → index-9739c242.js} +91 -30
  87. package/dist/cjs/{index-9e5554cb.js → index-a7b0c73d.js} +16 -19
  88. package/dist/cjs/loader.cjs.js +4 -4
  89. package/dist/cjs/{search-column-46d02656.js → search-column-6e90fb19.js} +19 -10
  90. package/dist/collection/collection-manifest.json +8 -0
  91. package/dist/collection/components/ez-classic-combo-box/ez-classic-combo-box.js +21 -2
  92. package/dist/collection/components/ez-classic-date-input/ez-classic-date-input.js +1 -1
  93. package/dist/collection/components/ez-classic-input/ez-classic-input.js +47 -2
  94. package/dist/collection/components/ez-classic-input/utils/maskFormatter.js +2 -1
  95. package/dist/collection/components/ez-classic-search-plus/ez-classic-search-plus.css +22 -0
  96. package/dist/collection/components/ez-classic-search-plus/ez-classic-search-plus.js +26 -11
  97. package/dist/collection/components/ez-classic-text-area/ez-classic-text-area.js +32 -1
  98. package/dist/collection/components/ez-classic-time-input/ez-classic-time-input.js +3 -2
  99. package/dist/collection/components/ez-combo-box/ez-combo-box.js +5 -0
  100. package/dist/collection/components/ez-dropdown/ez-dropdown.css +2 -2
  101. package/dist/collection/components/ez-empty-card/ez-empty-card.js +7 -7
  102. package/dist/collection/components/ez-form-view/ez-form-view.css +19 -5
  103. package/dist/collection/components/ez-form-view/ez-form-view.js +1 -1
  104. package/dist/collection/components/ez-form-view/fieldbuilder/FieldBuilder.js +2 -0
  105. package/dist/collection/components/ez-form-view/fieldbuilder/templates/MultiSelectInput.tpl.js +17 -0
  106. package/dist/collection/components/ez-grid/controller/ag-grid/AgGridController.js +163 -27
  107. package/dist/collection/components/ez-grid/controller/ag-grid/DataSource.js +8 -1
  108. package/dist/collection/components/ez-grid/controller/ag-grid/gridColumnDefaultWidths.js +23 -0
  109. package/dist/collection/components/ez-grid/controller/ag-grid/utils/AggFunctionResolver.js +24 -0
  110. package/dist/collection/components/ez-grid/ez-grid.css +5 -60
  111. package/dist/collection/components/ez-grid/ez-grid.js +52 -150
  112. package/dist/collection/components/ez-grid/interfaces/IAggegationFunc.js +1 -0
  113. package/dist/collection/components/ez-grid/subcomponents/filter-column.css +10 -0
  114. package/dist/collection/components/ez-grid/subcomponents/filter-column.js +7 -1
  115. package/dist/collection/components/ez-grid/subcomponents/selection-counter.js +1 -1
  116. package/dist/collection/components/ez-grid/utils/index.js +1 -0
  117. package/dist/collection/components/ez-grid-pagination/ez-grid-pagination.css +111 -0
  118. package/dist/collection/components/ez-grid-pagination/ez-grid-pagination.js +410 -0
  119. package/dist/collection/components/ez-icon/ez-icon.css +1153 -1146
  120. package/dist/collection/components/ez-image-input/ez-image-input.css +24 -8
  121. package/dist/collection/components/ez-image-input/ez-image-input.js +6 -1
  122. package/dist/collection/components/ez-multi-select-input/ez-multi-select-input.css +221 -0
  123. package/dist/collection/components/ez-multi-select-input/ez-multi-select-input.js +555 -0
  124. package/dist/collection/components/ez-multi-selection-list/ez-multi-selection-list.css +27 -6
  125. package/dist/collection/components/ez-multi-selection-list/ez-multi-selection-list.js +66 -10
  126. package/dist/collection/components/ez-popover-plus/ez-popover-plus.js +20 -0
  127. package/dist/collection/components/ez-popover-plus/subcomponent/ez-popover-core.js +36 -2
  128. package/dist/collection/components/ez-popup/ez-popup.js +3 -4
  129. package/dist/collection/components/ez-record-navigation/ez-record-navigation.css +51 -0
  130. package/dist/collection/components/ez-record-navigation/ez-record-navigation.js +246 -0
  131. package/dist/collection/components/ez-scroller/EzScrollNavigationMode.js +5 -0
  132. package/dist/collection/components/ez-scroller/ez-scroller.css +117 -11
  133. package/dist/collection/components/ez-scroller/ez-scroller.js +118 -13
  134. package/dist/collection/components/ez-search/ez-search.css +4 -0
  135. package/dist/collection/components/ez-search/ez-search.js +22 -1
  136. package/dist/collection/components/ez-search-plus/ez-search-plus.js +38 -10
  137. package/dist/collection/components/ez-sortable-list/ez-sortable-list.css +1 -1
  138. package/dist/collection/components/ez-split-button/ez-split-button.css +1 -1
  139. package/dist/collection/components/ez-split-button/ez-split-button.js +2 -2
  140. package/dist/collection/components/ez-tabselector/ez-tabselector.css +29 -1
  141. package/dist/collection/components/ez-tabselector/ez-tabselector.js +254 -62
  142. package/dist/collection/components/ez-text-input/ez-text-input.js +21 -15
  143. package/dist/collection/components/ez-tooltip/ez-tooltip.js +45 -7
  144. package/dist/collection/utils/form/FormMetadata.js +62 -40
  145. package/dist/collection/utils/i18n/locales/en-us.js +27 -4
  146. package/dist/collection/utils/i18n/locales/es-es.js +27 -4
  147. package/dist/collection/utils/i18n/locales/pt-br.js +27 -4
  148. package/dist/collection/utils/interfaces/AbstractFieldMetadata.js +14 -2
  149. package/dist/collection/utils/searchColumn/search-column.js +2 -5
  150. package/dist/custom-elements/index.d.ts +18 -0
  151. package/dist/custom-elements/index.js +1872 -634
  152. package/dist/esm/{ApplicationUtils-0c5cb207.js → ApplicationUtils-f7721533.js} +1 -1
  153. package/dist/esm/{app-globals-1db10325.js → app-globals-6e258867.js} +1 -1
  154. package/dist/esm/{classic-search-list_7.entry.js → classic-search-list_8.entry.js} +204 -7
  155. package/dist/esm/ez-actions-button.entry.js +3 -3
  156. package/dist/esm/ez-alert-list.entry.js +2 -2
  157. package/dist/esm/ez-alert.entry.js +1 -1
  158. package/dist/esm/ez-application.entry.js +1 -1
  159. package/dist/esm/ez-avatar.entry.js +2 -2
  160. package/dist/esm/ez-badge.entry.js +1 -1
  161. package/dist/esm/ez-breadcrumb.entry.js +1 -1
  162. package/dist/esm/ez-button.entry.js +1 -1
  163. package/dist/esm/ez-calendar.entry.js +2 -2
  164. package/dist/esm/ez-card-item.entry.js +1 -1
  165. package/dist/esm/ez-chart.entry.js +1 -1
  166. package/dist/esm/ez-check.entry.js +1 -1
  167. package/dist/esm/ez-chip.entry.js +1 -1
  168. package/dist/esm/ez-classic-combo-box.entry.js +5 -3
  169. package/dist/esm/ez-classic-date-input.entry.js +3 -3
  170. package/dist/esm/ez-classic-date-time-input.entry.js +2 -2
  171. package/dist/esm/ez-classic-input.entry.js +50 -4
  172. package/dist/esm/ez-classic-number-input.entry.js +2 -2
  173. package/dist/esm/ez-classic-search-plus.entry.js +27 -14
  174. package/dist/esm/ez-classic-search.entry.js +3 -3
  175. package/dist/esm/ez-classic-text-area.entry.js +13 -2
  176. package/dist/esm/ez-classic-time-input.entry.js +5 -4
  177. package/dist/esm/ez-collapsible-box.entry.js +3 -3
  178. package/dist/esm/ez-combo-box.entry.js +8 -3
  179. package/dist/esm/ez-date-input.entry.js +2 -2
  180. package/dist/esm/ez-date-time-input.entry.js +2 -2
  181. package/dist/esm/ez-dialog.entry.js +2 -2
  182. package/dist/esm/ez-double-list.entry.js +2 -2
  183. package/dist/esm/ez-dropdown.entry.js +2 -2
  184. package/dist/esm/ez-empty-card.entry.js +2 -2
  185. package/dist/esm/ez-file-item.entry.js +2 -2
  186. package/dist/esm/ez-filter-input.entry.js +1 -1
  187. package/dist/esm/ez-form-view.entry.js +23 -4
  188. package/dist/esm/ez-form.entry.js +66 -44
  189. package/dist/esm/ez-grid-pagination.entry.js +223 -0
  190. package/dist/esm/ez-grid-view.entry.js +1 -1
  191. package/dist/esm/ez-grid.entry.js +237 -174
  192. package/dist/esm/ez-guide-navigator.entry.js +2 -2
  193. package/dist/esm/ez-icon.entry.js +2 -2
  194. package/dist/esm/ez-link-builder_6.entry.js +2 -2
  195. package/dist/esm/ez-list-item.entry.js +1 -1
  196. package/dist/esm/ez-list.entry.js +2 -2
  197. package/dist/esm/ez-loading-bar.entry.js +1 -1
  198. package/dist/esm/ez-modal-container.entry.js +2 -2
  199. package/dist/esm/ez-modal.entry.js +2 -2
  200. package/dist/esm/ez-multi-selection-list_5.entry.js +667 -0
  201. package/dist/esm/ez-number-input.entry.js +2 -2
  202. package/dist/esm/ez-pagination.entry.js +2 -2
  203. package/dist/esm/ez-popover.entry.js +1 -1
  204. package/dist/esm/ez-popup.entry.js +5 -6
  205. package/dist/esm/ez-progress-bar.entry.js +1 -1
  206. package/dist/esm/ez-radio-button.entry.js +1 -1
  207. package/dist/esm/ez-record-navigation.entry.js +117 -0
  208. package/dist/esm/ez-rich-toolbar-item.entry.js +1 -1
  209. package/dist/esm/ez-scroller_2.entry.js +82 -15
  210. package/dist/esm/ez-search-plus.entry.js +26 -12
  211. package/dist/esm/ez-search-result-list.entry.js +2 -2
  212. package/dist/esm/ez-search.entry.js +12 -5
  213. package/dist/esm/ez-sidebar-navigator.entry.js +2 -2
  214. package/dist/esm/ez-skeleton.entry.js +2 -2
  215. package/dist/esm/ez-sortable-list.entry.js +100 -115
  216. package/dist/esm/ez-spinner.entry.js +2 -2
  217. package/dist/esm/ez-split-button.entry.js +5 -5
  218. package/dist/esm/ez-split-item.entry.js +3 -3
  219. package/dist/esm/ez-split-panel.entry.js +1 -1
  220. package/dist/esm/ez-tabselector.entry.js +210 -62
  221. package/dist/esm/ez-tag-input.entry.js +1 -1
  222. package/dist/esm/ez-tag.entry.js +1 -1
  223. package/dist/esm/ez-text-area.entry.js +1 -1
  224. package/dist/esm/ez-text-input.entry.js +22 -16
  225. package/dist/esm/ez-tile-medium.entry.js +1 -1
  226. package/dist/esm/ez-tile.entry.js +1 -1
  227. package/dist/esm/ez-time-input.entry.js +2 -2
  228. package/dist/esm/ez-toast.entry.js +1 -1
  229. package/dist/esm/ez-tooltip.entry.js +47 -9
  230. package/dist/esm/ez-tree.entry.js +2 -2
  231. package/dist/esm/ez-underface.entry.js +1 -1
  232. package/dist/esm/ez-upload.entry.js +3 -3
  233. package/dist/esm/ez-view-stack.entry.js +1 -1
  234. package/dist/esm/ezui.js +5 -5
  235. package/dist/esm/filter-column.entry.js +10 -4
  236. package/dist/esm/{floating-ui.dom.esm-ad30f2f0.js → floating-ui.dom.esm-0c464cef.js} +258 -120
  237. package/dist/esm/{index-225aa0c3.js → index-9e6dab5b.js} +91 -30
  238. package/dist/esm/{index-5a720e56.js → index-baa5e267.js} +17 -19
  239. package/dist/esm/loader.js +5 -5
  240. package/dist/esm/{search-column-2da15ef5.js → search-column-7d7f0331.js} +19 -10
  241. package/dist/ezui/ezui.esm.js +1 -1
  242. package/dist/ezui/p-01e652c6.entry.js +1 -0
  243. package/dist/ezui/p-0592535f.entry.js +1 -0
  244. package/dist/ezui/{p-3453dad5.entry.js → p-063bb342.entry.js} +1 -1
  245. package/dist/ezui/{p-75e650ff.entry.js → p-0ac8bd66.entry.js} +1 -1
  246. package/dist/ezui/p-0d80e3ec.entry.js +1 -0
  247. package/dist/ezui/{p-e039e049.entry.js → p-108503ed.entry.js} +1 -1
  248. package/dist/ezui/{p-29f0de90.entry.js → p-1166b2d5.entry.js} +1 -1
  249. package/dist/ezui/p-1222e1b6.entry.js +1 -0
  250. package/dist/ezui/p-15873627.js +1 -0
  251. package/dist/ezui/p-178cb9df.entry.js +1 -0
  252. package/dist/ezui/p-1b1b0af3.entry.js +1 -0
  253. package/dist/ezui/{p-81461d2f.entry.js → p-1e7a8633.entry.js} +1 -1
  254. package/dist/ezui/{p-6b51c9cc.entry.js → p-1f50fa05.entry.js} +1 -1
  255. package/dist/ezui/{p-cf33bc48.entry.js → p-20c024f7.entry.js} +1 -1
  256. package/dist/ezui/{p-e4c7eb39.js → p-23a36bb6.js} +2 -2
  257. package/dist/ezui/p-2856c545.entry.js +1 -0
  258. package/dist/ezui/{p-9d515e5b.entry.js → p-2ae127bc.entry.js} +1 -1
  259. package/dist/ezui/{p-05bcbe61.entry.js → p-2ebd7383.entry.js} +1 -1
  260. package/dist/ezui/p-3e84df1c.entry.js +1 -0
  261. package/dist/ezui/p-3fae7072.entry.js +1 -0
  262. package/dist/ezui/{p-f7ca8634.entry.js → p-411c0222.entry.js} +1 -1
  263. package/dist/ezui/p-42e1e733.js +1 -0
  264. package/dist/ezui/{p-2fa490f1.entry.js → p-45245c32.entry.js} +1 -1
  265. package/dist/ezui/{p-534209bf.entry.js → p-46b1b2ac.entry.js} +1 -1
  266. package/dist/ezui/{p-12cc95dc.entry.js → p-54af1af0.entry.js} +1 -1
  267. package/dist/ezui/p-55434123.entry.js +1 -0
  268. package/dist/ezui/{p-6fc26622.entry.js → p-5ed81457.entry.js} +1 -1
  269. package/dist/ezui/{p-51e34317.entry.js → p-6369a0cd.entry.js} +1 -1
  270. package/dist/ezui/p-6791d05f.entry.js +1 -0
  271. package/dist/ezui/{p-7fe5a9eb.entry.js → p-6d46f862.entry.js} +46 -46
  272. package/dist/ezui/{p-0b531233.entry.js → p-6d596a5a.entry.js} +1 -1
  273. package/dist/ezui/p-6da0dc70.entry.js +1 -0
  274. package/dist/ezui/{p-1723f728.entry.js → p-6f77a359.entry.js} +1 -1
  275. package/dist/ezui/p-72e77b45.entry.js +1 -0
  276. package/dist/ezui/{p-636ea910.entry.js → p-73461028.entry.js} +1 -1
  277. package/dist/ezui/{p-a6ea8da3.entry.js → p-7424d520.entry.js} +1 -1
  278. package/dist/ezui/{p-9fb7131e.entry.js → p-7a07c50f.entry.js} +1 -1
  279. package/dist/ezui/p-7b078125.entry.js +1 -0
  280. package/dist/ezui/p-7df45688.entry.js +1 -0
  281. package/dist/ezui/{p-e195eaad.entry.js → p-7f792043.entry.js} +1 -1
  282. package/dist/ezui/{p-e963cb3f.entry.js → p-881abc22.entry.js} +1 -1
  283. package/dist/ezui/{p-82fa4b09.entry.js → p-8df1ca33.entry.js} +1 -1
  284. package/dist/ezui/{p-78e975b4.entry.js → p-91c9d50e.entry.js} +1 -1
  285. package/dist/ezui/{p-05e68ab3.entry.js → p-93e1c917.entry.js} +1 -1
  286. package/dist/ezui/{p-82e1d7fc.entry.js → p-99556756.entry.js} +1 -1
  287. package/dist/ezui/{p-0ba284cd.entry.js → p-9bd78d39.entry.js} +1 -1
  288. package/dist/ezui/{p-c2b20f78.entry.js → p-9f5fa3f9.entry.js} +1 -1
  289. package/dist/ezui/{p-bc693db6.entry.js → p-a0bf1fc7.entry.js} +1 -1
  290. package/dist/ezui/p-a11e4e8e.entry.js +1 -0
  291. package/dist/ezui/{p-9bcfa689.entry.js → p-a3075f52.entry.js} +1 -1
  292. package/dist/ezui/{p-f26b97e9.entry.js → p-a3ada561.entry.js} +1 -1
  293. package/dist/ezui/{p-dfca5946.entry.js → p-a80b1287.entry.js} +1 -1
  294. package/dist/ezui/p-a9ab6cb9.entry.js +1 -0
  295. package/dist/ezui/{p-9825c1d2.js → p-ad5e263d.js} +1 -1
  296. package/dist/ezui/{p-d57ea090.entry.js → p-b06294c9.entry.js} +1 -1
  297. package/dist/ezui/{p-4a876b8b.entry.js → p-b50289bb.entry.js} +1 -1
  298. package/dist/ezui/p-b66ae5c5.entry.js +1 -0
  299. package/dist/ezui/{p-e0380234.entry.js → p-b8cd501a.entry.js} +1 -1
  300. package/dist/ezui/p-b986da95.entry.js +7 -0
  301. package/dist/ezui/p-bc2f844e.entry.js +1 -0
  302. package/dist/ezui/{p-0820f8c3.entry.js → p-c25a4d30.entry.js} +1 -1
  303. package/dist/ezui/{p-55a9e4ba.entry.js → p-c37fb359.entry.js} +1 -1
  304. package/dist/ezui/{p-e0fd2ce5.entry.js → p-cb00863d.entry.js} +1 -1
  305. package/dist/ezui/{p-181cb82f.entry.js → p-d5684cdc.entry.js} +1 -1
  306. package/dist/ezui/{p-a9432878.entry.js → p-d6742c1e.entry.js} +1 -1
  307. package/dist/ezui/{p-770cf2b8.entry.js → p-d6f50207.entry.js} +1 -1
  308. package/dist/ezui/{p-458027b5.entry.js → p-d70805e4.entry.js} +1 -1
  309. package/dist/ezui/p-d81a15fc.entry.js +1 -0
  310. package/dist/ezui/p-d8b69419.entry.js +1 -0
  311. package/dist/ezui/p-d8cc640d.entry.js +1 -0
  312. package/dist/ezui/p-de14fe07.js +1 -0
  313. package/dist/ezui/p-df6173c8.entry.js +1 -0
  314. package/dist/ezui/{p-be2e39c5.entry.js → p-dfced8c7.entry.js} +1 -1
  315. package/dist/ezui/{p-e275353b.entry.js → p-e3d6b544.entry.js} +1 -1
  316. package/dist/ezui/p-e63a0479.js +1 -0
  317. package/dist/ezui/{p-fe0bca65.entry.js → p-e692c2a7.entry.js} +1 -1
  318. package/dist/ezui/{p-000159dc.entry.js → p-e75c7a23.entry.js} +1 -1
  319. package/dist/ezui/{p-e9b409c1.entry.js → p-e7a7c594.entry.js} +1 -1
  320. package/dist/ezui/{p-b21efe83.entry.js → p-e8c57463.entry.js} +1 -1
  321. package/dist/ezui/{p-75443a91.entry.js → p-e8cd003b.entry.js} +1 -1
  322. package/dist/ezui/p-ed790867.entry.js +1 -0
  323. package/dist/ezui/p-f2e0acf5.entry.js +1 -0
  324. package/dist/ezui/{p-980f1f18.entry.js → p-f34ec732.entry.js} +1 -1
  325. package/dist/ezui/{p-f32d5a82.entry.js → p-f498f6b5.entry.js} +1 -1
  326. package/dist/ezui/{p-44b39e81.entry.js → p-fa6732f2.entry.js} +1 -1
  327. package/dist/ezui/{p-2c123fdf.entry.js → p-fb27b98d.entry.js} +1 -1
  328. package/dist/ezui/{p-d3aca6aa.entry.js → p-fc11f5b9.entry.js} +1 -1
  329. package/dist/types/components/ez-classic-combo-box/ez-classic-combo-box.d.ts +2 -0
  330. package/dist/types/components/ez-classic-input/ez-classic-input.d.ts +6 -0
  331. package/dist/types/components/ez-classic-search-plus/ez-classic-search-plus.d.ts +3 -0
  332. package/dist/types/components/ez-classic-text-area/ez-classic-text-area.d.ts +3 -0
  333. package/dist/types/components/ez-empty-card/ez-empty-card.d.ts +2 -2
  334. package/dist/types/components/ez-form-view/fieldbuilder/templates/MultiSelectInput.tpl.d.ts +2 -0
  335. package/dist/types/components/ez-grid/controller/EzGridController.d.ts +2 -0
  336. package/dist/types/components/ez-grid/controller/ag-grid/AgGridController.d.ts +16 -0
  337. package/dist/types/components/ez-grid/controller/ag-grid/gridColumnDefaultWidths.d.ts +4 -0
  338. package/dist/types/components/ez-grid/controller/ag-grid/utils/AggFunctionResolver.d.ts +2 -0
  339. package/dist/types/components/ez-grid/ez-grid.d.ts +10 -27
  340. package/dist/types/components/ez-grid/interfaces/IAggegationFunc.d.ts +3 -0
  341. package/dist/types/components/ez-grid/utils/index.d.ts +1 -0
  342. package/dist/types/components/ez-grid-pagination/ez-grid-pagination.d.ts +75 -0
  343. package/dist/types/components/ez-image-input/ez-image-input.d.ts +1 -0
  344. package/dist/types/components/ez-multi-select-input/ez-multi-select-input.d.ts +119 -0
  345. package/dist/types/components/ez-multi-selection-list/ez-multi-selection-list.d.ts +8 -0
  346. package/dist/types/components/ez-popover-plus/ez-popover-plus.d.ts +7 -0
  347. package/dist/types/components/ez-popover-plus/subcomponent/ez-popover-core.d.ts +9 -0
  348. package/dist/types/components/ez-popup/ez-popup.d.ts +1 -0
  349. package/dist/types/components/ez-record-navigation/ez-record-navigation.d.ts +43 -0
  350. package/dist/types/components/ez-scroller/EzScrollNavigationMode.d.ts +4 -0
  351. package/dist/types/components/ez-scroller/ez-scroller.d.ts +16 -2
  352. package/dist/types/components/ez-search/ez-search.d.ts +4 -0
  353. package/dist/types/components/ez-search-plus/ez-search-plus.d.ts +6 -1
  354. package/dist/types/components/ez-tabselector/ez-tabselector.d.ts +41 -20
  355. package/dist/types/components/ez-text-input/ez-text-input.d.ts +1 -0
  356. package/dist/types/components/ez-tooltip/ez-tooltip.d.ts +2 -0
  357. package/dist/types/components.d.ts +407 -9
  358. package/dist/types/utils/i18n/locales/en-us.d.ts +26 -3
  359. package/dist/types/utils/i18n/locales/es-es.d.ts +26 -3
  360. package/dist/types/utils/i18n/locales/pt-br.d.ts +26 -3
  361. package/dist/types/utils/i18n/translations.d.ts +78 -9
  362. package/package.json +5 -6
  363. package/react/components.d.ts +3 -0
  364. package/react/components.js +3 -0
  365. package/react/components.js.map +1 -1
  366. package/dist/cjs/ez-multi-selection-list.cjs.entry.js +0 -194
  367. package/dist/cjs/ez-popover-core.cjs.entry.js +0 -211
  368. package/dist/cjs/ez-popover-plus_3.cjs.entry.js +0 -243
  369. package/dist/esm/ez-multi-selection-list.entry.js +0 -190
  370. package/dist/esm/ez-popover-core.entry.js +0 -207
  371. package/dist/esm/ez-popover-plus_3.entry.js +0 -237
  372. package/dist/ezui/p-06f1b8e4.entry.js +0 -1
  373. package/dist/ezui/p-0d393a5d.entry.js +0 -1
  374. package/dist/ezui/p-14d6aeb8.entry.js +0 -1
  375. package/dist/ezui/p-169d460d.entry.js +0 -1
  376. package/dist/ezui/p-24993171.entry.js +0 -7
  377. package/dist/ezui/p-27421015.entry.js +0 -1
  378. package/dist/ezui/p-27c8a9b7.entry.js +0 -1
  379. package/dist/ezui/p-2a806303.js +0 -1
  380. package/dist/ezui/p-34d596a3.entry.js +0 -1
  381. package/dist/ezui/p-35e3715c.entry.js +0 -1
  382. package/dist/ezui/p-4d909730.entry.js +0 -1
  383. package/dist/ezui/p-4df2edb5.entry.js +0 -1
  384. package/dist/ezui/p-61c10e02.js +0 -1
  385. package/dist/ezui/p-6ec40dec.entry.js +0 -1
  386. package/dist/ezui/p-71b341cc.entry.js +0 -1
  387. package/dist/ezui/p-75e8862c.entry.js +0 -1
  388. package/dist/ezui/p-81a98a7c.entry.js +0 -1
  389. package/dist/ezui/p-87739608.entry.js +0 -1
  390. package/dist/ezui/p-892e7326.entry.js +0 -1
  391. package/dist/ezui/p-8f7373ab.entry.js +0 -1
  392. package/dist/ezui/p-986044d1.entry.js +0 -1
  393. package/dist/ezui/p-c178730b.js +0 -1
  394. package/dist/ezui/p-c754774e.entry.js +0 -1
  395. package/dist/ezui/p-c96e536d.entry.js +0 -1
  396. package/dist/ezui/p-ce2614fc.entry.js +0 -1
  397. package/dist/ezui/p-dc9781b3.entry.js +0 -1
  398. package/dist/ezui/p-e94d3af5.entry.js +0 -1
  399. package/dist/ezui/p-f0425f87.entry.js +0 -1
  400. package/dist/ezui/p-f1b54699.entry.js +0 -1
  401. package/dist/ezui/p-ff4312d5.js +0 -1
@@ -40,8 +40,9 @@ function getOppositeAxis(axis) {
40
40
  function getAxisLength(axis) {
41
41
  return axis === 'y' ? 'height' : 'width';
42
42
  }
43
+ const yAxisSides = /*#__PURE__*/new Set(['top', 'bottom']);
43
44
  function getSideAxis(placement) {
44
- return ['top', 'bottom'].includes(getSide(placement)) ? 'y' : 'x';
45
+ return yAxisSides.has(getSide(placement)) ? 'y' : 'x';
45
46
  }
46
47
  function getAlignmentAxis(placement) {
47
48
  return getOppositeAxis(getSideAxis(placement));
@@ -66,19 +67,19 @@ function getExpandedPlacements(placement) {
66
67
  function getOppositeAlignmentPlacement(placement) {
67
68
  return placement.replace(/start|end/g, alignment => oppositeAlignmentMap[alignment]);
68
69
  }
70
+ const lrPlacement = ['left', 'right'];
71
+ const rlPlacement = ['right', 'left'];
72
+ const tbPlacement = ['top', 'bottom'];
73
+ const btPlacement = ['bottom', 'top'];
69
74
  function getSideList(side, isStart, rtl) {
70
- const lr = ['left', 'right'];
71
- const rl = ['right', 'left'];
72
- const tb = ['top', 'bottom'];
73
- const bt = ['bottom', 'top'];
74
75
  switch (side) {
75
76
  case 'top':
76
77
  case 'bottom':
77
- if (rtl) return isStart ? rl : lr;
78
- return isStart ? lr : rl;
78
+ if (rtl) return isStart ? rlPlacement : lrPlacement;
79
+ return isStart ? lrPlacement : rlPlacement;
79
80
  case 'left':
80
81
  case 'right':
81
- return isStart ? tb : bt;
82
+ return isStart ? tbPlacement : btPlacement;
82
83
  default:
83
84
  return [];
84
85
  }
@@ -189,6 +190,71 @@ function computeCoordsFromPlacement(_ref, placement, rtl) {
189
190
  return coords;
190
191
  }
191
192
 
193
+ /**
194
+ * Resolves with an object of overflow side offsets that determine how much the
195
+ * element is overflowing a given clipping boundary on each side.
196
+ * - positive = overflowing the boundary by that number of pixels
197
+ * - negative = how many pixels left before it will overflow
198
+ * - 0 = lies flush with the boundary
199
+ * @see https://floating-ui.com/docs/detectOverflow
200
+ */
201
+ async function detectOverflow(state, options) {
202
+ var _await$platform$isEle;
203
+ if (options === void 0) {
204
+ options = {};
205
+ }
206
+ const {
207
+ x,
208
+ y,
209
+ platform,
210
+ rects,
211
+ elements,
212
+ strategy
213
+ } = state;
214
+ const {
215
+ boundary = 'clippingAncestors',
216
+ rootBoundary = 'viewport',
217
+ elementContext = 'floating',
218
+ altBoundary = false,
219
+ padding = 0
220
+ } = evaluate(options, state);
221
+ const paddingObject = getPaddingObject(padding);
222
+ const altContext = elementContext === 'floating' ? 'reference' : 'floating';
223
+ const element = elements[altBoundary ? altContext : elementContext];
224
+ const clippingClientRect = rectToClientRect(await platform.getClippingRect({
225
+ element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || (await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating))),
226
+ boundary,
227
+ rootBoundary,
228
+ strategy
229
+ }));
230
+ const rect = elementContext === 'floating' ? {
231
+ x,
232
+ y,
233
+ width: rects.floating.width,
234
+ height: rects.floating.height
235
+ } : rects.reference;
236
+ const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));
237
+ const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) ? (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {
238
+ x: 1,
239
+ y: 1
240
+ } : {
241
+ x: 1,
242
+ y: 1
243
+ };
244
+ const elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({
245
+ elements,
246
+ rect,
247
+ offsetParent,
248
+ strategy
249
+ }) : rect);
250
+ return {
251
+ top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,
252
+ bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,
253
+ left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,
254
+ right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x
255
+ };
256
+ }
257
+
192
258
  /**
193
259
  * Computes the `x` and `y` coordinates that will place the floating element
194
260
  * next to a given reference element.
@@ -218,6 +284,7 @@ const computePosition$1 = async (reference, floating, config) => {
218
284
  let middlewareData = {};
219
285
  let resetCount = 0;
220
286
  for (let i = 0; i < validMiddleware.length; i++) {
287
+ var _platform$detectOverf;
221
288
  const {
222
289
  name,
223
290
  fn
@@ -235,7 +302,10 @@ const computePosition$1 = async (reference, floating, config) => {
235
302
  strategy,
236
303
  middlewareData,
237
304
  rects,
238
- platform,
305
+ platform: {
306
+ ...platform,
307
+ detectOverflow: (_platform$detectOverf = platform.detectOverflow) != null ? _platform$detectOverf : detectOverflow
308
+ },
239
309
  elements: {
240
310
  reference,
241
311
  floating
@@ -280,71 +350,6 @@ const computePosition$1 = async (reference, floating, config) => {
280
350
  };
281
351
  };
282
352
 
283
- /**
284
- * Resolves with an object of overflow side offsets that determine how much the
285
- * element is overflowing a given clipping boundary on each side.
286
- * - positive = overflowing the boundary by that number of pixels
287
- * - negative = how many pixels left before it will overflow
288
- * - 0 = lies flush with the boundary
289
- * @see https://floating-ui.com/docs/detectOverflow
290
- */
291
- async function detectOverflow(state, options) {
292
- var _await$platform$isEle;
293
- if (options === void 0) {
294
- options = {};
295
- }
296
- const {
297
- x,
298
- y,
299
- platform,
300
- rects,
301
- elements,
302
- strategy
303
- } = state;
304
- const {
305
- boundary = 'clippingAncestors',
306
- rootBoundary = 'viewport',
307
- elementContext = 'floating',
308
- altBoundary = false,
309
- padding = 0
310
- } = evaluate(options, state);
311
- const paddingObject = getPaddingObject(padding);
312
- const altContext = elementContext === 'floating' ? 'reference' : 'floating';
313
- const element = elements[altBoundary ? altContext : elementContext];
314
- const clippingClientRect = rectToClientRect(await platform.getClippingRect({
315
- element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || (await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating))),
316
- boundary,
317
- rootBoundary,
318
- strategy
319
- }));
320
- const rect = elementContext === 'floating' ? {
321
- x,
322
- y,
323
- width: rects.floating.width,
324
- height: rects.floating.height
325
- } : rects.reference;
326
- const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));
327
- const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) ? (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {
328
- x: 1,
329
- y: 1
330
- } : {
331
- x: 1,
332
- y: 1
333
- };
334
- const elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({
335
- elements,
336
- rect,
337
- offsetParent,
338
- strategy
339
- }) : rect);
340
- return {
341
- top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,
342
- bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,
343
- left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,
344
- right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x
345
- };
346
- }
347
-
348
353
  /**
349
354
  * Provides data to position an inner element of the floating element so that it
350
355
  * appears centered to the reference element.
@@ -477,7 +482,7 @@ const flip$1 = function (options) {
477
482
  fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));
478
483
  }
479
484
  const placements = [initialPlacement, ...fallbackPlacements];
480
- const overflow = await detectOverflow(state, detectOverflowOptions);
485
+ const overflow = await platform.detectOverflow(state, detectOverflowOptions);
481
486
  const overflows = [];
482
487
  let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];
483
488
  if (checkMainAxis) {
@@ -498,16 +503,22 @@ const flip$1 = function (options) {
498
503
  const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;
499
504
  const nextPlacement = placements[nextIndex];
500
505
  if (nextPlacement) {
501
- // Try next placement and re-run the lifecycle.
502
- return {
503
- data: {
504
- index: nextIndex,
505
- overflows: overflowsData
506
- },
507
- reset: {
508
- placement: nextPlacement
509
- }
510
- };
506
+ const ignoreCrossAxisOverflow = checkCrossAxis === 'alignment' ? initialSideAxis !== getSideAxis(nextPlacement) : false;
507
+ if (!ignoreCrossAxisOverflow ||
508
+ // We leave the current main axis only if every placement on that axis
509
+ // overflows the main axis.
510
+ overflowsData.every(d => getSideAxis(d.placement) === initialSideAxis ? d.overflows[0] > 0 : true)) {
511
+ // Try next placement and re-run the lifecycle.
512
+ return {
513
+ data: {
514
+ index: nextIndex,
515
+ overflows: overflowsData
516
+ },
517
+ reset: {
518
+ placement: nextPlacement
519
+ }
520
+ };
521
+ }
511
522
  }
512
523
 
513
524
  // First, find the candidates that fit on the mainAxis side of overflow,
@@ -553,6 +564,8 @@ const flip$1 = function (options) {
553
564
  };
554
565
  };
555
566
 
567
+ const originSides = /*#__PURE__*/new Set(['left', 'top']);
568
+
556
569
  // For type backwards-compatibility, the `OffsetOptions` type was also
557
570
  // Derivable.
558
571
 
@@ -566,7 +579,7 @@ async function convertValueToCoords(state, options) {
566
579
  const side = getSide(placement);
567
580
  const alignment = getAlignment(placement);
568
581
  const isVertical = getSideAxis(placement) === 'y';
569
- const mainAxisMulti = ['left', 'top'].includes(side) ? -1 : 1;
582
+ const mainAxisMulti = originSides.has(side) ? -1 : 1;
570
583
  const crossAxisMulti = rtl && isVertical ? -1 : 1;
571
584
  const rawValue = evaluate(options, state);
572
585
 
@@ -653,7 +666,8 @@ const shift$1 = function (options) {
653
666
  const {
654
667
  x,
655
668
  y,
656
- placement
669
+ placement,
670
+ platform
657
671
  } = state;
658
672
  const {
659
673
  mainAxis: checkMainAxis = true,
@@ -676,7 +690,7 @@ const shift$1 = function (options) {
676
690
  x,
677
691
  y
678
692
  };
679
- const overflow = await detectOverflow(state, detectOverflowOptions);
693
+ const overflow = await platform.detectOverflow(state, detectOverflowOptions);
680
694
  const crossAxis = getSideAxis(getSide(placement));
681
695
  const mainAxis = getOppositeAxis(crossAxis);
682
696
  let mainAxisCoord = coords[mainAxis];
@@ -715,6 +729,90 @@ const shift$1 = function (options) {
715
729
  };
716
730
  };
717
731
 
732
+ /**
733
+ * Provides data that allows you to change the size of the floating element —
734
+ * for instance, prevent it from overflowing the clipping boundary or match the
735
+ * width of the reference element.
736
+ * @see https://floating-ui.com/docs/size
737
+ */
738
+ const size$1 = function (options) {
739
+ if (options === void 0) {
740
+ options = {};
741
+ }
742
+ return {
743
+ name: 'size',
744
+ options,
745
+ async fn(state) {
746
+ var _state$middlewareData, _state$middlewareData2;
747
+ const {
748
+ placement,
749
+ rects,
750
+ platform,
751
+ elements
752
+ } = state;
753
+ const {
754
+ apply = () => {},
755
+ ...detectOverflowOptions
756
+ } = evaluate(options, state);
757
+ const overflow = await platform.detectOverflow(state, detectOverflowOptions);
758
+ const side = getSide(placement);
759
+ const alignment = getAlignment(placement);
760
+ const isYAxis = getSideAxis(placement) === 'y';
761
+ const {
762
+ width,
763
+ height
764
+ } = rects.floating;
765
+ let heightSide;
766
+ let widthSide;
767
+ if (side === 'top' || side === 'bottom') {
768
+ heightSide = side;
769
+ widthSide = alignment === ((await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))) ? 'start' : 'end') ? 'left' : 'right';
770
+ } else {
771
+ widthSide = side;
772
+ heightSide = alignment === 'end' ? 'top' : 'bottom';
773
+ }
774
+ const maximumClippingHeight = height - overflow.top - overflow.bottom;
775
+ const maximumClippingWidth = width - overflow.left - overflow.right;
776
+ const overflowAvailableHeight = min(height - overflow[heightSide], maximumClippingHeight);
777
+ const overflowAvailableWidth = min(width - overflow[widthSide], maximumClippingWidth);
778
+ const noShift = !state.middlewareData.shift;
779
+ let availableHeight = overflowAvailableHeight;
780
+ let availableWidth = overflowAvailableWidth;
781
+ if ((_state$middlewareData = state.middlewareData.shift) != null && _state$middlewareData.enabled.x) {
782
+ availableWidth = maximumClippingWidth;
783
+ }
784
+ if ((_state$middlewareData2 = state.middlewareData.shift) != null && _state$middlewareData2.enabled.y) {
785
+ availableHeight = maximumClippingHeight;
786
+ }
787
+ if (noShift && !alignment) {
788
+ const xMin = max(overflow.left, 0);
789
+ const xMax = max(overflow.right, 0);
790
+ const yMin = max(overflow.top, 0);
791
+ const yMax = max(overflow.bottom, 0);
792
+ if (isYAxis) {
793
+ availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right));
794
+ } else {
795
+ availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max(overflow.top, overflow.bottom));
796
+ }
797
+ }
798
+ await apply({
799
+ ...state,
800
+ availableWidth,
801
+ availableHeight
802
+ });
803
+ const nextDimensions = await platform.getDimensions(elements.floating);
804
+ if (width !== nextDimensions.width || height !== nextDimensions.height) {
805
+ return {
806
+ reset: {
807
+ rects: true
808
+ }
809
+ };
810
+ }
811
+ return {};
812
+ }
813
+ };
814
+ };
815
+
718
816
  function hasWindow() {
719
817
  return typeof window !== 'undefined';
720
818
  }
@@ -759,34 +857,40 @@ function isShadowRoot(value) {
759
857
  }
760
858
  return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;
761
859
  }
860
+ const invalidOverflowDisplayValues = /*#__PURE__*/new Set(['inline', 'contents']);
762
861
  function isOverflowElement(element) {
763
862
  const {
764
863
  overflow,
765
864
  overflowX,
766
865
  overflowY,
767
866
  display
768
- } = getComputedStyle(element);
769
- return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !['inline', 'contents'].includes(display);
867
+ } = getComputedStyle$1(element);
868
+ return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !invalidOverflowDisplayValues.has(display);
770
869
  }
870
+ const tableElements = /*#__PURE__*/new Set(['table', 'td', 'th']);
771
871
  function isTableElement(element) {
772
- return ['table', 'td', 'th'].includes(getNodeName(element));
872
+ return tableElements.has(getNodeName(element));
773
873
  }
874
+ const topLayerSelectors = [':popover-open', ':modal'];
774
875
  function isTopLayer(element) {
775
- return [':popover-open', ':modal'].some(selector => {
876
+ return topLayerSelectors.some(selector => {
776
877
  try {
777
878
  return element.matches(selector);
778
- } catch (e) {
879
+ } catch (_e) {
779
880
  return false;
780
881
  }
781
882
  });
782
883
  }
884
+ const transformProperties = ['transform', 'translate', 'scale', 'rotate', 'perspective'];
885
+ const willChangeValues = ['transform', 'translate', 'scale', 'rotate', 'perspective', 'filter'];
886
+ const containValues = ['paint', 'layout', 'strict', 'content'];
783
887
  function isContainingBlock(elementOrCss) {
784
888
  const webkit = isWebKit();
785
- const css = isElement(elementOrCss) ? getComputedStyle(elementOrCss) : elementOrCss;
889
+ const css = isElement(elementOrCss) ? getComputedStyle$1(elementOrCss) : elementOrCss;
786
890
 
787
891
  // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block
788
892
  // https://drafts.csswg.org/css-transforms-2/#individual-transforms
789
- return ['transform', 'translate', 'scale', 'rotate', 'perspective'].some(value => css[value] ? css[value] !== 'none' : false) || (css.containerType ? css.containerType !== 'normal' : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== 'none' : false) || !webkit && (css.filter ? css.filter !== 'none' : false) || ['transform', 'translate', 'scale', 'rotate', 'perspective', 'filter'].some(value => (css.willChange || '').includes(value)) || ['paint', 'layout', 'strict', 'content'].some(value => (css.contain || '').includes(value));
893
+ return transformProperties.some(value => css[value] ? css[value] !== 'none' : false) || (css.containerType ? css.containerType !== 'normal' : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== 'none' : false) || !webkit && (css.filter ? css.filter !== 'none' : false) || willChangeValues.some(value => (css.willChange || '').includes(value)) || containValues.some(value => (css.contain || '').includes(value));
790
894
  }
791
895
  function getContainingBlock(element) {
792
896
  let currentNode = getParentNode(element);
@@ -804,10 +908,11 @@ function isWebKit() {
804
908
  if (typeof CSS === 'undefined' || !CSS.supports) return false;
805
909
  return CSS.supports('-webkit-backdrop-filter', 'none');
806
910
  }
911
+ const lastTraversableNodeNames = /*#__PURE__*/new Set(['html', 'body', '#document']);
807
912
  function isLastTraversableNode(node) {
808
- return ['html', 'body', '#document'].includes(getNodeName(node));
913
+ return lastTraversableNodeNames.has(getNodeName(node));
809
914
  }
810
- function getComputedStyle(element) {
915
+ function getComputedStyle$1(element) {
811
916
  return getWindow(element).getComputedStyle(element);
812
917
  }
813
918
  function getNodeScroll(element) {
@@ -869,7 +974,7 @@ function getFrameElement(win) {
869
974
  }
870
975
 
871
976
  function getCssDimensions(element) {
872
- const css = getComputedStyle(element);
977
+ const css = getComputedStyle$1(element);
873
978
  // In testing environments, the `width` and `height` properties are empty
874
979
  // strings for SVG elements, returning NaN. Fallback to `0` in this case.
875
980
  let width = parseFloat(css.width) || 0;
@@ -974,7 +1079,7 @@ function getBoundingClientRect(element, includeScale, isFixedStrategy, offsetPar
974
1079
  while (currentIFrame && offsetParent && offsetWin !== currentWin) {
975
1080
  const iframeScale = getScale(currentIFrame);
976
1081
  const iframeRect = currentIFrame.getBoundingClientRect();
977
- const css = getComputedStyle(currentIFrame);
1082
+ const css = getComputedStyle$1(currentIFrame);
978
1083
  const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;
979
1084
  const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;
980
1085
  x *= iframeScale.x;
@@ -1005,14 +1110,9 @@ function getWindowScrollBarX(element, rect) {
1005
1110
  return rect.left + leftScroll;
1006
1111
  }
1007
1112
 
1008
- function getHTMLOffset(documentElement, scroll, ignoreScrollbarX) {
1009
- if (ignoreScrollbarX === void 0) {
1010
- ignoreScrollbarX = false;
1011
- }
1113
+ function getHTMLOffset(documentElement, scroll) {
1012
1114
  const htmlRect = documentElement.getBoundingClientRect();
1013
- const x = htmlRect.left + scroll.scrollLeft - (ignoreScrollbarX ? 0 :
1014
- // RTL <body> scrollbar.
1015
- getWindowScrollBarX(documentElement, htmlRect));
1115
+ const x = htmlRect.left + scroll.scrollLeft - getWindowScrollBarX(documentElement, htmlRect);
1016
1116
  const y = htmlRect.top + scroll.scrollTop;
1017
1117
  return {
1018
1118
  x,
@@ -1051,7 +1151,7 @@ function convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {
1051
1151
  offsets.y = offsetRect.y + offsetParent.clientTop;
1052
1152
  }
1053
1153
  }
1054
- const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll, true) : createCoords(0);
1154
+ const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);
1055
1155
  return {
1056
1156
  width: rect.width * scale.x,
1057
1157
  height: rect.height * scale.y,
@@ -1074,7 +1174,7 @@ function getDocumentRect(element) {
1074
1174
  const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);
1075
1175
  let x = -scroll.scrollLeft + getWindowScrollBarX(element);
1076
1176
  const y = -scroll.scrollTop;
1077
- if (getComputedStyle(body).direction === 'rtl') {
1177
+ if (getComputedStyle$1(body).direction === 'rtl') {
1078
1178
  x += max(html.clientWidth, body.clientWidth) - width;
1079
1179
  }
1080
1180
  return {
@@ -1085,6 +1185,10 @@ function getDocumentRect(element) {
1085
1185
  };
1086
1186
  }
1087
1187
 
1188
+ // Safety check: ensure the scrollbar space is reasonable in case this
1189
+ // calculation is affected by unusual styles.
1190
+ // Most scrollbars leave 15-18px of space.
1191
+ const SCROLLBAR_MAX = 25;
1088
1192
  function getViewportRect(element, strategy) {
1089
1193
  const win = getWindow(element);
1090
1194
  const html = getDocumentElement(element);
@@ -1102,6 +1206,24 @@ function getViewportRect(element, strategy) {
1102
1206
  y = visualViewport.offsetTop;
1103
1207
  }
1104
1208
  }
1209
+ const windowScrollbarX = getWindowScrollBarX(html);
1210
+ // <html> `overflow: hidden` + `scrollbar-gutter: stable` reduces the
1211
+ // visual width of the <html> but this is not considered in the size
1212
+ // of `html.clientWidth`.
1213
+ if (windowScrollbarX <= 0) {
1214
+ const doc = html.ownerDocument;
1215
+ const body = doc.body;
1216
+ const bodyStyles = getComputedStyle(body);
1217
+ const bodyMarginInline = doc.compatMode === 'CSS1Compat' ? parseFloat(bodyStyles.marginLeft) + parseFloat(bodyStyles.marginRight) || 0 : 0;
1218
+ const clippingStableScrollbarWidth = Math.abs(html.clientWidth - body.clientWidth - bodyMarginInline);
1219
+ if (clippingStableScrollbarWidth <= SCROLLBAR_MAX) {
1220
+ width -= clippingStableScrollbarWidth;
1221
+ }
1222
+ } else if (windowScrollbarX <= SCROLLBAR_MAX) {
1223
+ // If the <body> scrollbar is on the left, the width needs to be extended
1224
+ // by the scrollbar amount so there isn't extra space on the right.
1225
+ width += windowScrollbarX;
1226
+ }
1105
1227
  return {
1106
1228
  width,
1107
1229
  height,
@@ -1110,6 +1232,7 @@ function getViewportRect(element, strategy) {
1110
1232
  };
1111
1233
  }
1112
1234
 
1235
+ const absoluteOrFixed = /*#__PURE__*/new Set(['absolute', 'fixed']);
1113
1236
  // Returns the inner client rect, subtracting scrollbars if present.
1114
1237
  function getInnerBoundingClientRect(element, strategy) {
1115
1238
  const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');
@@ -1151,7 +1274,7 @@ function hasFixedPositionAncestor(element, stopNode) {
1151
1274
  if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {
1152
1275
  return false;
1153
1276
  }
1154
- return getComputedStyle(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);
1277
+ return getComputedStyle$1(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);
1155
1278
  }
1156
1279
 
1157
1280
  // A "clipping ancestor" is an `overflow` element with the characteristic of
@@ -1164,17 +1287,17 @@ function getClippingElementAncestors(element, cache) {
1164
1287
  }
1165
1288
  let result = getOverflowAncestors(element, [], false).filter(el => isElement(el) && getNodeName(el) !== 'body');
1166
1289
  let currentContainingBlockComputedStyle = null;
1167
- const elementIsFixed = getComputedStyle(element).position === 'fixed';
1290
+ const elementIsFixed = getComputedStyle$1(element).position === 'fixed';
1168
1291
  let currentNode = elementIsFixed ? getParentNode(element) : element;
1169
1292
 
1170
1293
  // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block
1171
1294
  while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {
1172
- const computedStyle = getComputedStyle(currentNode);
1295
+ const computedStyle = getComputedStyle$1(currentNode);
1173
1296
  const currentNodeIsContaining = isContainingBlock(currentNode);
1174
1297
  if (!currentNodeIsContaining && computedStyle.position === 'fixed') {
1175
1298
  currentContainingBlockComputedStyle = null;
1176
1299
  }
1177
- const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && ['absolute', 'fixed'].includes(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);
1300
+ const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && absoluteOrFixed.has(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);
1178
1301
  if (shouldDropCurrentNode) {
1179
1302
  // Drop non-containing blocks.
1180
1303
  result = result.filter(ancestor => ancestor !== currentNode);
@@ -1237,6 +1360,12 @@ function getRectRelativeToOffsetParent(element, offsetParent, strategy) {
1237
1360
  scrollTop: 0
1238
1361
  };
1239
1362
  const offsets = createCoords(0);
1363
+
1364
+ // If the <body> scrollbar appears on the left (e.g. RTL systems). Use
1365
+ // Firefox with layout.scrollbar.side = 3 in about:config to test this.
1366
+ function setLeftRTLScrollbarOffset() {
1367
+ offsets.x = getWindowScrollBarX(documentElement);
1368
+ }
1240
1369
  if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {
1241
1370
  if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {
1242
1371
  scroll = getNodeScroll(offsetParent);
@@ -1246,11 +1375,12 @@ function getRectRelativeToOffsetParent(element, offsetParent, strategy) {
1246
1375
  offsets.x = offsetRect.x + offsetParent.clientLeft;
1247
1376
  offsets.y = offsetRect.y + offsetParent.clientTop;
1248
1377
  } else if (documentElement) {
1249
- // If the <body> scrollbar appears on the left (e.g. RTL systems). Use
1250
- // Firefox with layout.scrollbar.side = 3 in about:config to test this.
1251
- offsets.x = getWindowScrollBarX(documentElement);
1378
+ setLeftRTLScrollbarOffset();
1252
1379
  }
1253
1380
  }
1381
+ if (isFixed && !isOffsetParentAnElement && documentElement) {
1382
+ setLeftRTLScrollbarOffset();
1383
+ }
1254
1384
  const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);
1255
1385
  const x = rect.left + scroll.scrollLeft - offsets.x - htmlOffset.x;
1256
1386
  const y = rect.top + scroll.scrollTop - offsets.y - htmlOffset.y;
@@ -1263,11 +1393,11 @@ function getRectRelativeToOffsetParent(element, offsetParent, strategy) {
1263
1393
  }
1264
1394
 
1265
1395
  function isStaticPositioned(element) {
1266
- return getComputedStyle(element).position === 'static';
1396
+ return getComputedStyle$1(element).position === 'static';
1267
1397
  }
1268
1398
 
1269
1399
  function getTrueOffsetParent(element, polyfill) {
1270
- if (!isHTMLElement(element) || getComputedStyle(element).position === 'fixed') {
1400
+ if (!isHTMLElement(element) || getComputedStyle$1(element).position === 'fixed') {
1271
1401
  return null;
1272
1402
  }
1273
1403
  if (polyfill) {
@@ -1328,7 +1458,7 @@ const getElementRects = async function (data) {
1328
1458
  };
1329
1459
 
1330
1460
  function isRTL(element) {
1331
- return getComputedStyle(element).direction === 'rtl';
1461
+ return getComputedStyle$1(element).direction === 'rtl';
1332
1462
  }
1333
1463
 
1334
1464
  const platform = {
@@ -1427,7 +1557,7 @@ function observeMove(element, onMove) {
1427
1557
  // Handle <iframe>s
1428
1558
  root: root.ownerDocument
1429
1559
  });
1430
- } catch (e) {
1560
+ } catch (_e) {
1431
1561
  io = new IntersectionObserver(handleObserve, options);
1432
1562
  }
1433
1563
  io.observe(element);
@@ -1539,6 +1669,14 @@ const shift = shift$1;
1539
1669
  */
1540
1670
  const flip = flip$1;
1541
1671
 
1672
+ /**
1673
+ * Provides data that allows you to change the size of the floating element —
1674
+ * for instance, prevent it from overflowing the clipping boundary or match the
1675
+ * width of the reference element.
1676
+ * @see https://floating-ui.com/docs/size
1677
+ */
1678
+ const size = size$1;
1679
+
1542
1680
  /**
1543
1681
  * Provides data to position an inner element of the floating element so that it
1544
1682
  * appears centered to the reference element.
@@ -1575,3 +1713,4 @@ exports.computePosition = computePosition;
1575
1713
  exports.flip = flip;
1576
1714
  exports.offset = offset;
1577
1715
  exports.shift = shift;
1716
+ exports.size = size;