@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
@@ -38,8 +38,9 @@ function getOppositeAxis(axis) {
38
38
  function getAxisLength(axis) {
39
39
  return axis === 'y' ? 'height' : 'width';
40
40
  }
41
+ const yAxisSides = /*#__PURE__*/new Set(['top', 'bottom']);
41
42
  function getSideAxis(placement) {
42
- return ['top', 'bottom'].includes(getSide(placement)) ? 'y' : 'x';
43
+ return yAxisSides.has(getSide(placement)) ? 'y' : 'x';
43
44
  }
44
45
  function getAlignmentAxis(placement) {
45
46
  return getOppositeAxis(getSideAxis(placement));
@@ -64,19 +65,19 @@ function getExpandedPlacements(placement) {
64
65
  function getOppositeAlignmentPlacement(placement) {
65
66
  return placement.replace(/start|end/g, alignment => oppositeAlignmentMap[alignment]);
66
67
  }
68
+ const lrPlacement = ['left', 'right'];
69
+ const rlPlacement = ['right', 'left'];
70
+ const tbPlacement = ['top', 'bottom'];
71
+ const btPlacement = ['bottom', 'top'];
67
72
  function getSideList(side, isStart, rtl) {
68
- const lr = ['left', 'right'];
69
- const rl = ['right', 'left'];
70
- const tb = ['top', 'bottom'];
71
- const bt = ['bottom', 'top'];
72
73
  switch (side) {
73
74
  case 'top':
74
75
  case 'bottom':
75
- if (rtl) return isStart ? rl : lr;
76
- return isStart ? lr : rl;
76
+ if (rtl) return isStart ? rlPlacement : lrPlacement;
77
+ return isStart ? lrPlacement : rlPlacement;
77
78
  case 'left':
78
79
  case 'right':
79
- return isStart ? tb : bt;
80
+ return isStart ? tbPlacement : btPlacement;
80
81
  default:
81
82
  return [];
82
83
  }
@@ -187,6 +188,71 @@ function computeCoordsFromPlacement(_ref, placement, rtl) {
187
188
  return coords;
188
189
  }
189
190
 
191
+ /**
192
+ * Resolves with an object of overflow side offsets that determine how much the
193
+ * element is overflowing a given clipping boundary on each side.
194
+ * - positive = overflowing the boundary by that number of pixels
195
+ * - negative = how many pixels left before it will overflow
196
+ * - 0 = lies flush with the boundary
197
+ * @see https://floating-ui.com/docs/detectOverflow
198
+ */
199
+ async function detectOverflow(state, options) {
200
+ var _await$platform$isEle;
201
+ if (options === void 0) {
202
+ options = {};
203
+ }
204
+ const {
205
+ x,
206
+ y,
207
+ platform,
208
+ rects,
209
+ elements,
210
+ strategy
211
+ } = state;
212
+ const {
213
+ boundary = 'clippingAncestors',
214
+ rootBoundary = 'viewport',
215
+ elementContext = 'floating',
216
+ altBoundary = false,
217
+ padding = 0
218
+ } = evaluate(options, state);
219
+ const paddingObject = getPaddingObject(padding);
220
+ const altContext = elementContext === 'floating' ? 'reference' : 'floating';
221
+ const element = elements[altBoundary ? altContext : elementContext];
222
+ const clippingClientRect = rectToClientRect(await platform.getClippingRect({
223
+ 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))),
224
+ boundary,
225
+ rootBoundary,
226
+ strategy
227
+ }));
228
+ const rect = elementContext === 'floating' ? {
229
+ x,
230
+ y,
231
+ width: rects.floating.width,
232
+ height: rects.floating.height
233
+ } : rects.reference;
234
+ const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));
235
+ const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) ? (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {
236
+ x: 1,
237
+ y: 1
238
+ } : {
239
+ x: 1,
240
+ y: 1
241
+ };
242
+ const elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({
243
+ elements,
244
+ rect,
245
+ offsetParent,
246
+ strategy
247
+ }) : rect);
248
+ return {
249
+ top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,
250
+ bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,
251
+ left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,
252
+ right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x
253
+ };
254
+ }
255
+
190
256
  /**
191
257
  * Computes the `x` and `y` coordinates that will place the floating element
192
258
  * next to a given reference element.
@@ -216,6 +282,7 @@ const computePosition$1 = async (reference, floating, config) => {
216
282
  let middlewareData = {};
217
283
  let resetCount = 0;
218
284
  for (let i = 0; i < validMiddleware.length; i++) {
285
+ var _platform$detectOverf;
219
286
  const {
220
287
  name,
221
288
  fn
@@ -233,7 +300,10 @@ const computePosition$1 = async (reference, floating, config) => {
233
300
  strategy,
234
301
  middlewareData,
235
302
  rects,
236
- platform,
303
+ platform: {
304
+ ...platform,
305
+ detectOverflow: (_platform$detectOverf = platform.detectOverflow) != null ? _platform$detectOverf : detectOverflow
306
+ },
237
307
  elements: {
238
308
  reference,
239
309
  floating
@@ -278,71 +348,6 @@ const computePosition$1 = async (reference, floating, config) => {
278
348
  };
279
349
  };
280
350
 
281
- /**
282
- * Resolves with an object of overflow side offsets that determine how much the
283
- * element is overflowing a given clipping boundary on each side.
284
- * - positive = overflowing the boundary by that number of pixels
285
- * - negative = how many pixels left before it will overflow
286
- * - 0 = lies flush with the boundary
287
- * @see https://floating-ui.com/docs/detectOverflow
288
- */
289
- async function detectOverflow(state, options) {
290
- var _await$platform$isEle;
291
- if (options === void 0) {
292
- options = {};
293
- }
294
- const {
295
- x,
296
- y,
297
- platform,
298
- rects,
299
- elements,
300
- strategy
301
- } = state;
302
- const {
303
- boundary = 'clippingAncestors',
304
- rootBoundary = 'viewport',
305
- elementContext = 'floating',
306
- altBoundary = false,
307
- padding = 0
308
- } = evaluate(options, state);
309
- const paddingObject = getPaddingObject(padding);
310
- const altContext = elementContext === 'floating' ? 'reference' : 'floating';
311
- const element = elements[altBoundary ? altContext : elementContext];
312
- const clippingClientRect = rectToClientRect(await platform.getClippingRect({
313
- 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))),
314
- boundary,
315
- rootBoundary,
316
- strategy
317
- }));
318
- const rect = elementContext === 'floating' ? {
319
- x,
320
- y,
321
- width: rects.floating.width,
322
- height: rects.floating.height
323
- } : rects.reference;
324
- const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));
325
- const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) ? (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {
326
- x: 1,
327
- y: 1
328
- } : {
329
- x: 1,
330
- y: 1
331
- };
332
- const elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({
333
- elements,
334
- rect,
335
- offsetParent,
336
- strategy
337
- }) : rect);
338
- return {
339
- top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,
340
- bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,
341
- left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,
342
- right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x
343
- };
344
- }
345
-
346
351
  /**
347
352
  * Provides data to position an inner element of the floating element so that it
348
353
  * appears centered to the reference element.
@@ -475,7 +480,7 @@ const flip$1 = function (options) {
475
480
  fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));
476
481
  }
477
482
  const placements = [initialPlacement, ...fallbackPlacements];
478
- const overflow = await detectOverflow(state, detectOverflowOptions);
483
+ const overflow = await platform.detectOverflow(state, detectOverflowOptions);
479
484
  const overflows = [];
480
485
  let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];
481
486
  if (checkMainAxis) {
@@ -496,16 +501,22 @@ const flip$1 = function (options) {
496
501
  const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;
497
502
  const nextPlacement = placements[nextIndex];
498
503
  if (nextPlacement) {
499
- // Try next placement and re-run the lifecycle.
500
- return {
501
- data: {
502
- index: nextIndex,
503
- overflows: overflowsData
504
- },
505
- reset: {
506
- placement: nextPlacement
507
- }
508
- };
504
+ const ignoreCrossAxisOverflow = checkCrossAxis === 'alignment' ? initialSideAxis !== getSideAxis(nextPlacement) : false;
505
+ if (!ignoreCrossAxisOverflow ||
506
+ // We leave the current main axis only if every placement on that axis
507
+ // overflows the main axis.
508
+ overflowsData.every(d => getSideAxis(d.placement) === initialSideAxis ? d.overflows[0] > 0 : true)) {
509
+ // Try next placement and re-run the lifecycle.
510
+ return {
511
+ data: {
512
+ index: nextIndex,
513
+ overflows: overflowsData
514
+ },
515
+ reset: {
516
+ placement: nextPlacement
517
+ }
518
+ };
519
+ }
509
520
  }
510
521
 
511
522
  // First, find the candidates that fit on the mainAxis side of overflow,
@@ -551,6 +562,8 @@ const flip$1 = function (options) {
551
562
  };
552
563
  };
553
564
 
565
+ const originSides = /*#__PURE__*/new Set(['left', 'top']);
566
+
554
567
  // For type backwards-compatibility, the `OffsetOptions` type was also
555
568
  // Derivable.
556
569
 
@@ -564,7 +577,7 @@ async function convertValueToCoords(state, options) {
564
577
  const side = getSide(placement);
565
578
  const alignment = getAlignment(placement);
566
579
  const isVertical = getSideAxis(placement) === 'y';
567
- const mainAxisMulti = ['left', 'top'].includes(side) ? -1 : 1;
580
+ const mainAxisMulti = originSides.has(side) ? -1 : 1;
568
581
  const crossAxisMulti = rtl && isVertical ? -1 : 1;
569
582
  const rawValue = evaluate(options, state);
570
583
 
@@ -651,7 +664,8 @@ const shift$1 = function (options) {
651
664
  const {
652
665
  x,
653
666
  y,
654
- placement
667
+ placement,
668
+ platform
655
669
  } = state;
656
670
  const {
657
671
  mainAxis: checkMainAxis = true,
@@ -674,7 +688,7 @@ const shift$1 = function (options) {
674
688
  x,
675
689
  y
676
690
  };
677
- const overflow = await detectOverflow(state, detectOverflowOptions);
691
+ const overflow = await platform.detectOverflow(state, detectOverflowOptions);
678
692
  const crossAxis = getSideAxis(getSide(placement));
679
693
  const mainAxis = getOppositeAxis(crossAxis);
680
694
  let mainAxisCoord = coords[mainAxis];
@@ -713,6 +727,90 @@ const shift$1 = function (options) {
713
727
  };
714
728
  };
715
729
 
730
+ /**
731
+ * Provides data that allows you to change the size of the floating element —
732
+ * for instance, prevent it from overflowing the clipping boundary or match the
733
+ * width of the reference element.
734
+ * @see https://floating-ui.com/docs/size
735
+ */
736
+ const size$1 = function (options) {
737
+ if (options === void 0) {
738
+ options = {};
739
+ }
740
+ return {
741
+ name: 'size',
742
+ options,
743
+ async fn(state) {
744
+ var _state$middlewareData, _state$middlewareData2;
745
+ const {
746
+ placement,
747
+ rects,
748
+ platform,
749
+ elements
750
+ } = state;
751
+ const {
752
+ apply = () => {},
753
+ ...detectOverflowOptions
754
+ } = evaluate(options, state);
755
+ const overflow = await platform.detectOverflow(state, detectOverflowOptions);
756
+ const side = getSide(placement);
757
+ const alignment = getAlignment(placement);
758
+ const isYAxis = getSideAxis(placement) === 'y';
759
+ const {
760
+ width,
761
+ height
762
+ } = rects.floating;
763
+ let heightSide;
764
+ let widthSide;
765
+ if (side === 'top' || side === 'bottom') {
766
+ heightSide = side;
767
+ widthSide = alignment === ((await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))) ? 'start' : 'end') ? 'left' : 'right';
768
+ } else {
769
+ widthSide = side;
770
+ heightSide = alignment === 'end' ? 'top' : 'bottom';
771
+ }
772
+ const maximumClippingHeight = height - overflow.top - overflow.bottom;
773
+ const maximumClippingWidth = width - overflow.left - overflow.right;
774
+ const overflowAvailableHeight = min(height - overflow[heightSide], maximumClippingHeight);
775
+ const overflowAvailableWidth = min(width - overflow[widthSide], maximumClippingWidth);
776
+ const noShift = !state.middlewareData.shift;
777
+ let availableHeight = overflowAvailableHeight;
778
+ let availableWidth = overflowAvailableWidth;
779
+ if ((_state$middlewareData = state.middlewareData.shift) != null && _state$middlewareData.enabled.x) {
780
+ availableWidth = maximumClippingWidth;
781
+ }
782
+ if ((_state$middlewareData2 = state.middlewareData.shift) != null && _state$middlewareData2.enabled.y) {
783
+ availableHeight = maximumClippingHeight;
784
+ }
785
+ if (noShift && !alignment) {
786
+ const xMin = max(overflow.left, 0);
787
+ const xMax = max(overflow.right, 0);
788
+ const yMin = max(overflow.top, 0);
789
+ const yMax = max(overflow.bottom, 0);
790
+ if (isYAxis) {
791
+ availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right));
792
+ } else {
793
+ availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max(overflow.top, overflow.bottom));
794
+ }
795
+ }
796
+ await apply({
797
+ ...state,
798
+ availableWidth,
799
+ availableHeight
800
+ });
801
+ const nextDimensions = await platform.getDimensions(elements.floating);
802
+ if (width !== nextDimensions.width || height !== nextDimensions.height) {
803
+ return {
804
+ reset: {
805
+ rects: true
806
+ }
807
+ };
808
+ }
809
+ return {};
810
+ }
811
+ };
812
+ };
813
+
716
814
  function hasWindow() {
717
815
  return typeof window !== 'undefined';
718
816
  }
@@ -757,34 +855,40 @@ function isShadowRoot(value) {
757
855
  }
758
856
  return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;
759
857
  }
858
+ const invalidOverflowDisplayValues = /*#__PURE__*/new Set(['inline', 'contents']);
760
859
  function isOverflowElement(element) {
761
860
  const {
762
861
  overflow,
763
862
  overflowX,
764
863
  overflowY,
765
864
  display
766
- } = getComputedStyle(element);
767
- return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !['inline', 'contents'].includes(display);
865
+ } = getComputedStyle$1(element);
866
+ return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !invalidOverflowDisplayValues.has(display);
768
867
  }
868
+ const tableElements = /*#__PURE__*/new Set(['table', 'td', 'th']);
769
869
  function isTableElement(element) {
770
- return ['table', 'td', 'th'].includes(getNodeName(element));
870
+ return tableElements.has(getNodeName(element));
771
871
  }
872
+ const topLayerSelectors = [':popover-open', ':modal'];
772
873
  function isTopLayer(element) {
773
- return [':popover-open', ':modal'].some(selector => {
874
+ return topLayerSelectors.some(selector => {
774
875
  try {
775
876
  return element.matches(selector);
776
- } catch (e) {
877
+ } catch (_e) {
777
878
  return false;
778
879
  }
779
880
  });
780
881
  }
882
+ const transformProperties = ['transform', 'translate', 'scale', 'rotate', 'perspective'];
883
+ const willChangeValues = ['transform', 'translate', 'scale', 'rotate', 'perspective', 'filter'];
884
+ const containValues = ['paint', 'layout', 'strict', 'content'];
781
885
  function isContainingBlock(elementOrCss) {
782
886
  const webkit = isWebKit();
783
- const css = isElement(elementOrCss) ? getComputedStyle(elementOrCss) : elementOrCss;
887
+ const css = isElement(elementOrCss) ? getComputedStyle$1(elementOrCss) : elementOrCss;
784
888
 
785
889
  // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block
786
890
  // https://drafts.csswg.org/css-transforms-2/#individual-transforms
787
- 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));
891
+ 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));
788
892
  }
789
893
  function getContainingBlock(element) {
790
894
  let currentNode = getParentNode(element);
@@ -802,10 +906,11 @@ function isWebKit() {
802
906
  if (typeof CSS === 'undefined' || !CSS.supports) return false;
803
907
  return CSS.supports('-webkit-backdrop-filter', 'none');
804
908
  }
909
+ const lastTraversableNodeNames = /*#__PURE__*/new Set(['html', 'body', '#document']);
805
910
  function isLastTraversableNode(node) {
806
- return ['html', 'body', '#document'].includes(getNodeName(node));
911
+ return lastTraversableNodeNames.has(getNodeName(node));
807
912
  }
808
- function getComputedStyle(element) {
913
+ function getComputedStyle$1(element) {
809
914
  return getWindow(element).getComputedStyle(element);
810
915
  }
811
916
  function getNodeScroll(element) {
@@ -867,7 +972,7 @@ function getFrameElement(win) {
867
972
  }
868
973
 
869
974
  function getCssDimensions(element) {
870
- const css = getComputedStyle(element);
975
+ const css = getComputedStyle$1(element);
871
976
  // In testing environments, the `width` and `height` properties are empty
872
977
  // strings for SVG elements, returning NaN. Fallback to `0` in this case.
873
978
  let width = parseFloat(css.width) || 0;
@@ -972,7 +1077,7 @@ function getBoundingClientRect(element, includeScale, isFixedStrategy, offsetPar
972
1077
  while (currentIFrame && offsetParent && offsetWin !== currentWin) {
973
1078
  const iframeScale = getScale(currentIFrame);
974
1079
  const iframeRect = currentIFrame.getBoundingClientRect();
975
- const css = getComputedStyle(currentIFrame);
1080
+ const css = getComputedStyle$1(currentIFrame);
976
1081
  const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;
977
1082
  const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;
978
1083
  x *= iframeScale.x;
@@ -1003,14 +1108,9 @@ function getWindowScrollBarX(element, rect) {
1003
1108
  return rect.left + leftScroll;
1004
1109
  }
1005
1110
 
1006
- function getHTMLOffset(documentElement, scroll, ignoreScrollbarX) {
1007
- if (ignoreScrollbarX === void 0) {
1008
- ignoreScrollbarX = false;
1009
- }
1111
+ function getHTMLOffset(documentElement, scroll) {
1010
1112
  const htmlRect = documentElement.getBoundingClientRect();
1011
- const x = htmlRect.left + scroll.scrollLeft - (ignoreScrollbarX ? 0 :
1012
- // RTL <body> scrollbar.
1013
- getWindowScrollBarX(documentElement, htmlRect));
1113
+ const x = htmlRect.left + scroll.scrollLeft - getWindowScrollBarX(documentElement, htmlRect);
1014
1114
  const y = htmlRect.top + scroll.scrollTop;
1015
1115
  return {
1016
1116
  x,
@@ -1049,7 +1149,7 @@ function convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {
1049
1149
  offsets.y = offsetRect.y + offsetParent.clientTop;
1050
1150
  }
1051
1151
  }
1052
- const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll, true) : createCoords(0);
1152
+ const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);
1053
1153
  return {
1054
1154
  width: rect.width * scale.x,
1055
1155
  height: rect.height * scale.y,
@@ -1072,7 +1172,7 @@ function getDocumentRect(element) {
1072
1172
  const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);
1073
1173
  let x = -scroll.scrollLeft + getWindowScrollBarX(element);
1074
1174
  const y = -scroll.scrollTop;
1075
- if (getComputedStyle(body).direction === 'rtl') {
1175
+ if (getComputedStyle$1(body).direction === 'rtl') {
1076
1176
  x += max(html.clientWidth, body.clientWidth) - width;
1077
1177
  }
1078
1178
  return {
@@ -1083,6 +1183,10 @@ function getDocumentRect(element) {
1083
1183
  };
1084
1184
  }
1085
1185
 
1186
+ // Safety check: ensure the scrollbar space is reasonable in case this
1187
+ // calculation is affected by unusual styles.
1188
+ // Most scrollbars leave 15-18px of space.
1189
+ const SCROLLBAR_MAX = 25;
1086
1190
  function getViewportRect(element, strategy) {
1087
1191
  const win = getWindow(element);
1088
1192
  const html = getDocumentElement(element);
@@ -1100,6 +1204,24 @@ function getViewportRect(element, strategy) {
1100
1204
  y = visualViewport.offsetTop;
1101
1205
  }
1102
1206
  }
1207
+ const windowScrollbarX = getWindowScrollBarX(html);
1208
+ // <html> `overflow: hidden` + `scrollbar-gutter: stable` reduces the
1209
+ // visual width of the <html> but this is not considered in the size
1210
+ // of `html.clientWidth`.
1211
+ if (windowScrollbarX <= 0) {
1212
+ const doc = html.ownerDocument;
1213
+ const body = doc.body;
1214
+ const bodyStyles = getComputedStyle(body);
1215
+ const bodyMarginInline = doc.compatMode === 'CSS1Compat' ? parseFloat(bodyStyles.marginLeft) + parseFloat(bodyStyles.marginRight) || 0 : 0;
1216
+ const clippingStableScrollbarWidth = Math.abs(html.clientWidth - body.clientWidth - bodyMarginInline);
1217
+ if (clippingStableScrollbarWidth <= SCROLLBAR_MAX) {
1218
+ width -= clippingStableScrollbarWidth;
1219
+ }
1220
+ } else if (windowScrollbarX <= SCROLLBAR_MAX) {
1221
+ // If the <body> scrollbar is on the left, the width needs to be extended
1222
+ // by the scrollbar amount so there isn't extra space on the right.
1223
+ width += windowScrollbarX;
1224
+ }
1103
1225
  return {
1104
1226
  width,
1105
1227
  height,
@@ -1108,6 +1230,7 @@ function getViewportRect(element, strategy) {
1108
1230
  };
1109
1231
  }
1110
1232
 
1233
+ const absoluteOrFixed = /*#__PURE__*/new Set(['absolute', 'fixed']);
1111
1234
  // Returns the inner client rect, subtracting scrollbars if present.
1112
1235
  function getInnerBoundingClientRect(element, strategy) {
1113
1236
  const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');
@@ -1149,7 +1272,7 @@ function hasFixedPositionAncestor(element, stopNode) {
1149
1272
  if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {
1150
1273
  return false;
1151
1274
  }
1152
- return getComputedStyle(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);
1275
+ return getComputedStyle$1(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);
1153
1276
  }
1154
1277
 
1155
1278
  // A "clipping ancestor" is an `overflow` element with the characteristic of
@@ -1162,17 +1285,17 @@ function getClippingElementAncestors(element, cache) {
1162
1285
  }
1163
1286
  let result = getOverflowAncestors(element, [], false).filter(el => isElement(el) && getNodeName(el) !== 'body');
1164
1287
  let currentContainingBlockComputedStyle = null;
1165
- const elementIsFixed = getComputedStyle(element).position === 'fixed';
1288
+ const elementIsFixed = getComputedStyle$1(element).position === 'fixed';
1166
1289
  let currentNode = elementIsFixed ? getParentNode(element) : element;
1167
1290
 
1168
1291
  // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block
1169
1292
  while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {
1170
- const computedStyle = getComputedStyle(currentNode);
1293
+ const computedStyle = getComputedStyle$1(currentNode);
1171
1294
  const currentNodeIsContaining = isContainingBlock(currentNode);
1172
1295
  if (!currentNodeIsContaining && computedStyle.position === 'fixed') {
1173
1296
  currentContainingBlockComputedStyle = null;
1174
1297
  }
1175
- const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && ['absolute', 'fixed'].includes(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);
1298
+ const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && absoluteOrFixed.has(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);
1176
1299
  if (shouldDropCurrentNode) {
1177
1300
  // Drop non-containing blocks.
1178
1301
  result = result.filter(ancestor => ancestor !== currentNode);
@@ -1235,6 +1358,12 @@ function getRectRelativeToOffsetParent(element, offsetParent, strategy) {
1235
1358
  scrollTop: 0
1236
1359
  };
1237
1360
  const offsets = createCoords(0);
1361
+
1362
+ // If the <body> scrollbar appears on the left (e.g. RTL systems). Use
1363
+ // Firefox with layout.scrollbar.side = 3 in about:config to test this.
1364
+ function setLeftRTLScrollbarOffset() {
1365
+ offsets.x = getWindowScrollBarX(documentElement);
1366
+ }
1238
1367
  if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {
1239
1368
  if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {
1240
1369
  scroll = getNodeScroll(offsetParent);
@@ -1244,11 +1373,12 @@ function getRectRelativeToOffsetParent(element, offsetParent, strategy) {
1244
1373
  offsets.x = offsetRect.x + offsetParent.clientLeft;
1245
1374
  offsets.y = offsetRect.y + offsetParent.clientTop;
1246
1375
  } else if (documentElement) {
1247
- // If the <body> scrollbar appears on the left (e.g. RTL systems). Use
1248
- // Firefox with layout.scrollbar.side = 3 in about:config to test this.
1249
- offsets.x = getWindowScrollBarX(documentElement);
1376
+ setLeftRTLScrollbarOffset();
1250
1377
  }
1251
1378
  }
1379
+ if (isFixed && !isOffsetParentAnElement && documentElement) {
1380
+ setLeftRTLScrollbarOffset();
1381
+ }
1252
1382
  const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);
1253
1383
  const x = rect.left + scroll.scrollLeft - offsets.x - htmlOffset.x;
1254
1384
  const y = rect.top + scroll.scrollTop - offsets.y - htmlOffset.y;
@@ -1261,11 +1391,11 @@ function getRectRelativeToOffsetParent(element, offsetParent, strategy) {
1261
1391
  }
1262
1392
 
1263
1393
  function isStaticPositioned(element) {
1264
- return getComputedStyle(element).position === 'static';
1394
+ return getComputedStyle$1(element).position === 'static';
1265
1395
  }
1266
1396
 
1267
1397
  function getTrueOffsetParent(element, polyfill) {
1268
- if (!isHTMLElement(element) || getComputedStyle(element).position === 'fixed') {
1398
+ if (!isHTMLElement(element) || getComputedStyle$1(element).position === 'fixed') {
1269
1399
  return null;
1270
1400
  }
1271
1401
  if (polyfill) {
@@ -1326,7 +1456,7 @@ const getElementRects = async function (data) {
1326
1456
  };
1327
1457
 
1328
1458
  function isRTL(element) {
1329
- return getComputedStyle(element).direction === 'rtl';
1459
+ return getComputedStyle$1(element).direction === 'rtl';
1330
1460
  }
1331
1461
 
1332
1462
  const platform = {
@@ -1425,7 +1555,7 @@ function observeMove(element, onMove) {
1425
1555
  // Handle <iframe>s
1426
1556
  root: root.ownerDocument
1427
1557
  });
1428
- } catch (e) {
1558
+ } catch (_e) {
1429
1559
  io = new IntersectionObserver(handleObserve, options);
1430
1560
  }
1431
1561
  io.observe(element);
@@ -1537,6 +1667,14 @@ const shift = shift$1;
1537
1667
  */
1538
1668
  const flip = flip$1;
1539
1669
 
1670
+ /**
1671
+ * Provides data that allows you to change the size of the floating element —
1672
+ * for instance, prevent it from overflowing the clipping boundary or match the
1673
+ * width of the reference element.
1674
+ * @see https://floating-ui.com/docs/size
1675
+ */
1676
+ const size = size$1;
1677
+
1540
1678
  /**
1541
1679
  * Provides data to position an inner element of the floating element so that it
1542
1680
  * appears centered to the reference element.
@@ -1567,4 +1705,4 @@ const computePosition = (reference, floating, options) => {
1567
1705
  });
1568
1706
  };
1569
1707
 
1570
- export { autoUpdate as a, arrow as b, computePosition as c, flip as f, offset as o, shift as s };
1708
+ export { size as a, autoUpdate as b, computePosition as c, arrow as d, flip as f, offset as o, shift as s };