@sankhyalabs/ezui 6.5.0-dev.5 → 6.5.0-dev.7

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 (149) hide show
  1. package/dist/cjs/{ApplicationUtils-6d393a1e.js → ApplicationUtils-5cc05979.js} +1 -1
  2. package/dist/cjs/{app-globals-471cf35e.js → app-globals-2fbe4b17.js} +1 -1
  3. package/dist/cjs/ez-actions-button.cjs.entry.js +2 -2
  4. package/dist/cjs/ez-alert-list.cjs.entry.js +1 -1
  5. package/dist/cjs/ez-avatar.cjs.entry.js +1 -1
  6. package/dist/cjs/ez-calendar.cjs.entry.js +1 -1
  7. package/dist/cjs/ez-collapsible-box.cjs.entry.js +2 -2
  8. package/dist/cjs/ez-combo-box-list_4.cjs.entry.js +2 -2
  9. package/dist/cjs/ez-combo-box.cjs.entry.js +2 -2
  10. package/dist/cjs/ez-date-input.cjs.entry.js +1 -1
  11. package/dist/cjs/ez-date-time-input.cjs.entry.js +1 -1
  12. package/dist/cjs/ez-dialog.cjs.entry.js +1 -1
  13. package/dist/cjs/ez-double-list.cjs.entry.js +1 -1
  14. package/dist/cjs/ez-file-item.cjs.entry.js +1 -1
  15. package/dist/cjs/ez-form-view.cjs.entry.js +1 -1
  16. package/dist/cjs/ez-form.cjs.entry.js +3 -3
  17. package/dist/cjs/ez-grid.cjs.entry.js +4 -3
  18. package/dist/cjs/ez-guide-navigator.cjs.entry.js +1 -1
  19. package/dist/cjs/ez-link-builder_6.cjs.entry.js +1 -1
  20. package/dist/cjs/ez-list.cjs.entry.js +1 -1
  21. package/dist/cjs/ez-modal-container.cjs.entry.js +1 -1
  22. package/dist/cjs/ez-modal.cjs.entry.js +1 -1
  23. package/dist/cjs/ez-multi-selection-list.cjs.entry.js +10 -6
  24. package/dist/cjs/ez-number-input.cjs.entry.js +1 -1
  25. package/dist/cjs/ez-pagination.cjs.entry.js +1 -1
  26. package/dist/cjs/ez-popup.cjs.entry.js +1 -1
  27. package/dist/cjs/ez-search-plus.cjs.entry.js +2 -2
  28. package/dist/cjs/ez-search-result-list.cjs.entry.js +1 -1
  29. package/dist/cjs/ez-search.cjs.entry.js +2 -2
  30. package/dist/cjs/ez-sidebar-navigator.cjs.entry.js +1 -1
  31. package/dist/cjs/ez-skeleton.cjs.entry.js +1 -1
  32. package/dist/cjs/ez-sortable-list.cjs.entry.js +1 -1
  33. package/dist/cjs/ez-spinner.cjs.entry.js +1 -1
  34. package/dist/cjs/ez-split-button.cjs.entry.js +245 -70
  35. package/dist/cjs/ez-split-item.cjs.entry.js +2 -2
  36. package/dist/cjs/ez-time-input.cjs.entry.js +1 -1
  37. package/dist/cjs/ez-tree.cjs.entry.js +1 -1
  38. package/dist/cjs/ez-upload.cjs.entry.js +2 -2
  39. package/dist/cjs/ezui.cjs.js +3 -3
  40. package/dist/cjs/filter-column.cjs.entry.js +1 -1
  41. package/dist/cjs/{index-4ae2f4f6.js → index-1be40f19.js} +3 -0
  42. package/dist/cjs/loader.cjs.js +3 -3
  43. package/dist/cjs/{search-column-b99a6371.js → search-column-a9082ff9.js} +2 -2
  44. package/dist/collection/components/ez-grid/controller/ag-grid/utils/buildLocaleText.js +1 -0
  45. package/dist/collection/components/ez-multi-selection-list/ez-multi-selection-list.js +10 -6
  46. package/dist/collection/components/ez-split-button/ez-split-button.css +256 -116
  47. package/dist/collection/components/ez-split-button/ez-split-button.js +390 -76
  48. package/dist/collection/components/ez-split-button/test/dropdownItems.js +4 -4
  49. package/dist/collection/utils/i18n/locales/en-us.js +1 -0
  50. package/dist/collection/utils/i18n/locales/es-es.js +1 -0
  51. package/dist/collection/utils/i18n/locales/pt-br.js +1 -0
  52. package/dist/custom-elements/index.js +258 -75
  53. package/dist/esm/{ApplicationUtils-abffacb5.js → ApplicationUtils-1569f757.js} +1 -1
  54. package/dist/esm/{app-globals-457e3ce3.js → app-globals-c0ac93c0.js} +1 -1
  55. package/dist/esm/ez-actions-button.entry.js +2 -2
  56. package/dist/esm/ez-alert-list.entry.js +1 -1
  57. package/dist/esm/ez-avatar.entry.js +1 -1
  58. package/dist/esm/ez-calendar.entry.js +1 -1
  59. package/dist/esm/ez-collapsible-box.entry.js +2 -2
  60. package/dist/esm/ez-combo-box-list_4.entry.js +2 -2
  61. package/dist/esm/ez-combo-box.entry.js +2 -2
  62. package/dist/esm/ez-date-input.entry.js +1 -1
  63. package/dist/esm/ez-date-time-input.entry.js +1 -1
  64. package/dist/esm/ez-dialog.entry.js +1 -1
  65. package/dist/esm/ez-double-list.entry.js +1 -1
  66. package/dist/esm/ez-file-item.entry.js +1 -1
  67. package/dist/esm/ez-form-view.entry.js +1 -1
  68. package/dist/esm/ez-form.entry.js +3 -3
  69. package/dist/esm/ez-grid.entry.js +4 -3
  70. package/dist/esm/ez-guide-navigator.entry.js +1 -1
  71. package/dist/esm/ez-link-builder_6.entry.js +1 -1
  72. package/dist/esm/ez-list.entry.js +1 -1
  73. package/dist/esm/ez-modal-container.entry.js +1 -1
  74. package/dist/esm/ez-modal.entry.js +1 -1
  75. package/dist/esm/ez-multi-selection-list.entry.js +10 -6
  76. package/dist/esm/ez-number-input.entry.js +1 -1
  77. package/dist/esm/ez-pagination.entry.js +1 -1
  78. package/dist/esm/ez-popup.entry.js +1 -1
  79. package/dist/esm/ez-search-plus.entry.js +2 -2
  80. package/dist/esm/ez-search-result-list.entry.js +1 -1
  81. package/dist/esm/ez-search.entry.js +2 -2
  82. package/dist/esm/ez-sidebar-navigator.entry.js +1 -1
  83. package/dist/esm/ez-skeleton.entry.js +1 -1
  84. package/dist/esm/ez-sortable-list.entry.js +1 -1
  85. package/dist/esm/ez-spinner.entry.js +1 -1
  86. package/dist/esm/ez-split-button.entry.js +246 -71
  87. package/dist/esm/ez-split-item.entry.js +2 -2
  88. package/dist/esm/ez-time-input.entry.js +1 -1
  89. package/dist/esm/ez-tree.entry.js +1 -1
  90. package/dist/esm/ez-upload.entry.js +2 -2
  91. package/dist/esm/ezui.js +3 -3
  92. package/dist/esm/filter-column.entry.js +1 -1
  93. package/dist/esm/{index-2d2631f6.js → index-41363fa6.js} +3 -0
  94. package/dist/esm/loader.js +3 -3
  95. package/dist/esm/{search-column-33bd60a2.js → search-column-78d0ba11.js} +2 -2
  96. package/dist/ezui/ezui.esm.js +1 -1
  97. package/dist/ezui/{p-a0dc214f.entry.js → p-05c32903.entry.js} +1 -1
  98. package/dist/ezui/{p-defc720e.entry.js → p-0f7971cf.entry.js} +1 -1
  99. package/dist/ezui/{p-fb9856e6.entry.js → p-14ceb733.entry.js} +1 -1
  100. package/dist/ezui/{p-75cde3f4.entry.js → p-18384b91.entry.js} +1 -1
  101. package/dist/ezui/{p-f5e62b38.entry.js → p-1f8775ef.entry.js} +1 -1
  102. package/dist/ezui/{p-bdb02f67.entry.js → p-23739494.entry.js} +1 -1
  103. package/dist/ezui/{p-f5a87d81.entry.js → p-2c21b2b6.entry.js} +1 -1
  104. package/dist/ezui/{p-1cdd68b8.entry.js → p-34a476a9.entry.js} +1 -1
  105. package/dist/ezui/{p-bf136e89.entry.js → p-358f6df9.entry.js} +1 -1
  106. package/dist/ezui/{p-1be46be7.entry.js → p-39761eca.entry.js} +1 -1
  107. package/dist/ezui/{p-8906694c.entry.js → p-3afa1c6e.entry.js} +1 -1
  108. package/dist/ezui/{p-26b9d725.entry.js → p-3ce867cf.entry.js} +1 -1
  109. package/dist/ezui/{p-34a63e55.entry.js → p-3edbcc2c.entry.js} +1 -1
  110. package/dist/ezui/{p-b2e99998.entry.js → p-4314f87a.entry.js} +1 -1
  111. package/dist/ezui/{p-e033e59a.entry.js → p-54c63f4d.entry.js} +1 -1
  112. package/dist/ezui/p-5554704c.js +1 -0
  113. package/dist/ezui/p-5c3a6717.entry.js +1 -0
  114. package/dist/ezui/{p-54b1aceb.entry.js → p-6c51ccd1.entry.js} +1 -1
  115. package/dist/ezui/{p-7212066a.entry.js → p-6ca0815e.entry.js} +1 -1
  116. package/dist/ezui/{p-39686f48.entry.js → p-721fd999.entry.js} +1 -1
  117. package/dist/ezui/{p-1046d6ea.entry.js → p-79abad9e.entry.js} +1 -1
  118. package/dist/ezui/p-7f37ee99.entry.js +1 -0
  119. package/dist/ezui/{p-26e04c83.entry.js → p-859e3134.entry.js} +1 -1
  120. package/dist/ezui/{p-206b8d7c.entry.js → p-8803e321.entry.js} +1 -1
  121. package/dist/ezui/{p-bd81ade8.entry.js → p-92a1f954.entry.js} +2 -2
  122. package/dist/ezui/{p-a9d71475.entry.js → p-95ae6281.entry.js} +1 -1
  123. package/dist/ezui/{p-ba541cad.entry.js → p-9b215871.entry.js} +1 -1
  124. package/dist/ezui/{p-e4717b01.entry.js → p-9b3f3c02.entry.js} +1 -1
  125. package/dist/ezui/{p-ed143c2f.entry.js → p-a35a5a11.entry.js} +1 -1
  126. package/dist/ezui/{p-dd934eea.entry.js → p-a4083a7a.entry.js} +1 -1
  127. package/dist/ezui/{p-2b5d2aac.js → p-a61fdd20.js} +1 -1
  128. package/dist/ezui/{p-24ad21b3.entry.js → p-b989a33e.entry.js} +1 -1
  129. package/dist/ezui/{p-475b71ca.js → p-baec56c9.js} +1 -1
  130. package/dist/ezui/{p-21567b04.entry.js → p-ce0b36d7.entry.js} +1 -1
  131. package/dist/ezui/{p-d9c2c877.entry.js → p-d5eb2fad.entry.js} +1 -1
  132. package/dist/ezui/{p-4df05980.entry.js → p-d6bb930d.entry.js} +1 -1
  133. package/dist/ezui/{p-b6cf2d25.entry.js → p-d7335fc9.entry.js} +1 -1
  134. package/dist/ezui/{p-7caf6797.js → p-d79954ad.js} +1 -1
  135. package/dist/ezui/{p-a077a8ba.entry.js → p-d7af63d3.entry.js} +1 -1
  136. package/dist/ezui/{p-ea467f98.entry.js → p-e0703190.entry.js} +1 -1
  137. package/dist/ezui/{p-edcd8715.entry.js → p-f1de2cd6.entry.js} +1 -1
  138. package/dist/types/components/ez-grid/controller/ag-grid/utils/buildLocaleText.d.ts +1 -0
  139. package/dist/types/components/ez-multi-selection-list/ez-multi-selection-list.d.ts +2 -1
  140. package/dist/types/components/ez-split-button/ez-split-button.d.ts +93 -8
  141. package/dist/types/components.d.ts +116 -6
  142. package/dist/types/utils/i18n/locales/en-us.d.ts +1 -0
  143. package/dist/types/utils/i18n/locales/es-es.d.ts +1 -0
  144. package/dist/types/utils/i18n/locales/pt-br.d.ts +1 -0
  145. package/dist/types/utils/i18n/translations.d.ts +3 -0
  146. package/package.json +1 -1
  147. package/dist/ezui/p-8a52f030.js +0 -1
  148. package/dist/ezui/p-c482200d.entry.js +0 -1
  149. package/dist/ezui/p-f1e1f8f8.entry.js +0 -1
@@ -4,19 +4,77 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-a7b0c73d.js');
6
6
  const core = require('@sankhyalabs/core');
7
- const index$1 = require('./index-4ae2f4f6.js');
7
+ const index$1 = require('./index-1be40f19.js');
8
8
 
9
- const ezSplitButtonCss = ":host{--ez-split-button--min-width:24;--ez-split-button--width:'auto';--ez-split-button__medium--height:32px;--ez-split-button__large--height:42px;--ez-split-button__medium-icon--width:40px;--ez-split-button__large-icon--width:44px;--ez-split-button__inline__icon--gap:6px;--ez-split-button__label--padding-top:0px;--ez-split-button__label--padding-bottom:0px;--ez-split-button__right-button--padding-left:8px;--ez-split-button--color:var(--title--primary, #2B3A54);--ez-split-button--font-size:var(--text--small, 12px);--ez-split-button--font-family:var(--font-pattern, Arial);--ez-split-button--font-weight:var(--text-weight--large);--ez-split-button--background-color:var(--background--light, #ffffff);--ez-split-button--border-radius:var(--border--radius-large, 24px);--ez-split-button--border:1px solid var(--color--strokes);--ez-split-button--justify-content:center;--ez-split-button--hover-color:var(--color--primary-600, #007a5a);--ez-split-button--hover--background-color:var(--background--light, #ffffff);--ez-split-button--disabled-color:var(--text--primary);--ez-split-button--disabled--background-color:var(--background--medium);--ez-split-button--focus--border:var(--border--medium, 2px) var(--color--primary-300);--ez-split-button--focus--box-shadow:none;--ez-split-button--active-color:var(--color--primary-700);--ez-split-button--active--background-color:var(--background--strong)}ez-icon{--ez-icon--color:inherit}button{position:relative;display:flex;align-items:center;margin:0;cursor:pointer;transition:background-color 0.2s linear;white-space:nowrap;min-width:var(--ez-split-button--min-width);width:var(--ez-split-button--width);height:var(--ez-split-button__medium--height);font-family:var(--ez-split-button--font-family);font-size:var(--ez-split-button--font-size);font-weight:var(--ez-split-button--font-weight);padding:var(--ez-split-button__label--padding-top) 0 var(--ez-split-button__label--padding-bottom) 0;border-top-left-radius:var(--ez-split-button--border-radius);border-bottom-left-radius:var(--ez-split-button--border-radius);background-color:var(--ez-split-button--background-color);color:var(--ez-split-button--color);fill:var(--ez-split-button--color);border:none;justify-content:var(--ez-split-button--justify-content)}label{cursor:pointer}button:active{outline:none;box-shadow:none;background-color:var(--ez-split-button--active--background-color);color:var(--ez-split-button--active-color);fill:var(--ez-split-button--active-color);--ez-icon--color:var(--ez-split-button--active-color)}.ez-split-button__left-button{border:var(--ez-split-button--border);border-right:none;outline:none}.ez-split-button__right-button{border:var(--ez-split-button--border);border-left:none;outline:none}.ez-split-button__left-button:focus{box-shadow:0 0 0 2px var(--color--primary-300), \n 0 2px 0 0 var(--color--primary-300), \n 0 -2px 0 0 var(--color--primary-300);}.ez-split-button__right-button:focus{box-shadow:2px 0 0 0 var(--color--primary-300), \n 0 2px 0 0 var(--color--primary-300), \n 0 -2px 0 0 var(--color--primary-300);}.ez-split-button__left-button:hover,.ez-split-button__right-button:hover{outline:none;background-color:var(--ez-split-button--hover--background-color);color:var(--ez-split-button--hover-color);fill:var(--ez-split-button--hover-color);--ez-icon--color:var(--ez-split-button--hover-color)}.ez-split-button__left-button:active,.ez-split-button__right-button:active{outline:none;box-shadow:none;background-color:var(--ez-split-button--active--background-color);color:var(--ez-split-button--active-color);fill:var(--ez-split-button--active-color);--ez-icon--color:var(--ez-split-button--active-color)}.ez-split-button__left-button:disabled,.ez-split-button__left-button:disabled label,.ez-split-button__right-button:disabled{background-color:var(--ez-split-button--disabled--background-color);color:var(--ez-split-button--disabled-color);fill:var(--ez-split-button--disabled-color);border:none;--ez-icon--color:var(--ez-split-button--disabled-color);cursor:not-allowed}.ez-split-button__left-button:disabled{border:var(--ez-split-button--disabled-border);border-right:none}.ez-split-button__right-button:disabled{border:var(--ez-split-button--disabled-border);border-left:none}button.large{height:var(--ez-split-button__large--height)}button.medium{height:var(--ez-split-button__medium--height)}.default label{padding:var(--ez-split-button__label--padding-top) 12px var(--ez-split-button__label--padding-bottom) 20px}.icon-left{gap:var(--ez-split-button__inline__icon--gap)}.icon-left label{padding-right:12px}.icon-left ez-icon{padding-left:20px}.icon-only{padding-left:12px;padding-right:12px}.ez-split-button__right-button{border-top-right-radius:var(--ez-split-button--border-radius);border-bottom-right-radius:var(--ez-split-button--border-radius);border-top-left-radius:0;border-bottom-left-radius:0;border-right:var(--ez-split-button--border)}.ez-split-button__right-button--medium{min-width:var(--ez-split-button__medium-icon--width)}.ez-split-button__right-button--large{min-width:var(--ez-split-button__large-icon--width)}.ez-split-button__right-button--divider{top:10%;bottom:10%}.ez-split-button__right-button--divider:before{content:\"\";position:absolute;left:0;border-left:1px solid rgba(0, 0, 0, 20%);border-radius:2px;height:75%}.btn-icon--medium{min-width:--ez-split-button__medium-icon--width}.btn-icon--large{min-width:--ez-split-button__large-icon--width}.ez-split-button__right-button-container{position:absolute;left:0;padding-left:var(--ez-split-button__right-button--padding-left)}.label-icon{display:flex;flex-direction:row;align-items:center;color:var(--ez-split-button--color)}.label-icon:active{color:var(--ez-split-button--active-color);fill:var(--ez-split-button--active-color);--ez-icon--color:var(--ez-split-button--active-color)}.dropdown{display:flex}.dropdown-content{display:block;position:absolute;background-color:#f1f1f1;min-width:160px;z-index:var(--ez-elevation--8);border-radius:var(--ez-split-button--border-radius)}.dropdown-content>ez-dropdown{position:relative}";
9
+ const ezSplitButtonCss = ":host{--ez-split-button--min-width:var(--space--40, 40px);--ez-split-button--width:auto;--ez-split-button--height:var(--space--32, 32px);--ez-split-button__medium-icon--width:var(--space--40, 40px);--ez-split-button__large-icon--width:var(--space--44, 44px);--ez-split-button__label--padding-top:var(--space--0, 0px);--ez-split-button__label--padding-bottom:var(--space--0, 0px);--ez-split-button__right-button--padding-left:var(--space--8, 8px);--ez-split-button__right-button--padding-right:var(--space--12, 12px);--ez-split-button--color:var(--color--ocean-green-600, #008561);--ez-split-button__left-icon--color:var(--color--ocean-green-600, #008561);--ez-split-button__right-icon--color:var(--color--ocean-green-600, #008561);--ez-split-button--background-color:var(--color--gray-70, #FFFFFF);--ez-split-button--border:1px solid var(--color--gray-90, #EAEAEA);--ez-split-button--font-size:var(--font-size--default, 14px);--ez-split-button--line-height:var(--line-height--28, 28px);--ez-split-button--font-family:var(--font-pattern, Arial);--ez-split-button--font-weight:var(--font-weight--regular,400);--ez-split-button--border-radius:var(--border--radius-24, 24px);--ez-split-button--hover-color:var(--color--primary-600, #007a5a);--ez-split-button--hover--background-color:var(--color--gray-80, #F9F9F9);--ez-split-button--disabled-color:var(--color--gray-400, #77777A);--ez-split-button--disabled--background-color:var(--color--gray-80, #F9F9F9);--ez-split-button--focus--border:var(--border--medium, 2px) var(--color--primary-300);--ez-split-button--focus--box-shadow:none;display:flex;width:fit-content}:host(.ez-split-button--primary){--ez-split-button--color:var(--color--gray-70);--ez-split-button--background-color:var(--color--ocean-green-500);--ez-split-button--font-weight:var(--font-weight--regular);--ez-split-button--border:none;--ez-split-button__left-icon--color:var(--color--gray-70);--ez-split-button__right-icon--color:var(--color--gray-70);--ez-split-button--hover-color:var(--color--gray-70);--ez-split-button--hover--background-color:var(--color--ocean-green-700);--ez-split-button--hover--border:none;--ez-split-button--left-icon--hover-color:var(--color--gray-70);--ez-split-button--right-icon--hover-color:var(--color--gray-70);--ez-split-button--disabled-color:var(--color--gray-70);--ez-split-button--disabled--background-color:var(--color--gray-400);--ez-split-button--disabled--border:none;--ez-split-button--disabled-icon-color:var(--color--gray-200);--ez-split-button__left-icon--disabled-color:var(--color--gray-200);--ez-split-button__right-icon--disabled-color:var(--color--gray-200)}:host(.ez-split-button--secondary){--ez-split-button--color:var(--color--ocean-green-600);--ez-split-button--background-color:var(--color--gray-70);--ez-split-button--border:1px solid var(--color--gray-90);--ez-split-button--left-icon--color:var(--color--ocean-green-600);--ez-split-button--right-icon--color:var(--color--ocean-green-600);--ez-split-button--hover-color:var(--color--ocean-green-600);--ez-split-button--hover--background-color:var(--color--gray-80);--ez-split-button--hover--border:1px solid var(--color--gray-90);--ez-split-button--left-icon--hover-color:var(--color--ocean-green-600);--ez-split-button--right-icon--hover-color:var(--color--ocean-green-600);--ez-split-button--disabled-color:var(--color--gray-400);--ez-split-button--disabled--background-color:var(--color--gray-80);--ez-split-button--disabled--border:1px solid var(--color--gray-200);--ez-split-button--disabled-icon-color:var(--color--gray-400);--ez-split-button__left-icon--disabled-color:var(--color--gray-300);--ez-split-button__right-icon--disabled-color:var(--color--gray-300)}:host(.ez-split-button--tertiary){--ez-split-button--color:var(--color--ocean-green-600);--ez-split-button--background-color:transparent;--ez-split-button--font-weight:var(--font-weight--regular);--ez-split-button--border:none;--ez-split-button--left-icon--color:var(--color--ocean-green-600);--ez-split-button--right-icon--color:var(--color--ocean-green-600);--ez-split-button--hover-color:var(--color--ocean-green-800);--ez-split-button--hover--background-color:transparent;--ez-split-button--hover--border:none;--ez-split-button--left-icon--hover-color:var(--color--ocean-green-800);--ez-split-button--right-icon--hover-color:var(--color--ocean-green-800);--ez-split-button--disabled-color:var(--color--gray-400);--ez-split-button--disabled--background-color:transparent;--ez-split-button--disabled--border:transparent;--ez-split-button--disabled-icon-color:var(--color--gray-200);--ez-split-button__left-icon--disabled-color:var(--color--gray-200);--ez-split-button__right-icon--disabled-color:var(--color--gray-200)}.ez-split-button.large{--ez-split-button--height:var(--space--42, 42px)}.ez-split-button.medium{--ez-split-button--height:var(--space--32, 32px)}ez-icon{--ez-icon--color:inherit}button{position:relative;display:flex;align-items:center;margin:0;cursor:pointer;transition:background-color 0.2s linear, transform 0.15s ease;white-space:nowrap;overflow:hidden;transform:scale(1);min-width:var(--ez-split-button--min-width);width:var(--ez-split-button--width);height:var(--ez-split-button--height);font-family:var(--ez-split-button--font-family);font-size:var(--ez-split-button--font-size);font-weight:var(--ez-split-button--font-weight);padding:var(--ez-split-button__label--padding-top) 0 var(--ez-split-button__label--padding-bottom) 0;border-top-left-radius:var(--ez-split-button--border-radius);border-bottom-left-radius:var(--ez-split-button--border-radius);background-color:var(--ez-split-button--background-color);color:var(--ez-split-button--color);fill:var(--ez-split-button--color);border:none}label{cursor:pointer;line-height:var(--ez-split-button--line-height)}.ez-split-button__left-button{border:var(--ez-split-button--border);border-right:none;outline:none;gap:var(--space--8, 8px);padding-left:var(--space--12, 12px);padding-right:var(--space--8, 8px)}.ez-split-button__right-button{border:var(--ez-split-button--border);border-left:none;outline:none}.ez-split-button__left-button.force-focus-visible,.ez-split-button__left-button:focus-visible{box-shadow:-1px 1px 0px 1px var(--color--gray-70), \n -1px -1px 0px 1px var(--color--gray-70), \n -2px -2px 0px 2px var(--color--ocean-green-200), \n -2px 2px 0px 2px var(--color--ocean-green-200), \n 0px -2px 0px 2px var(--color--ocean-green-200), \n 0px 2px 0px 2px var(--color--ocean-green-200)}.ez-split-button__right-button.force-focus-visible,.ez-split-button__right-button:focus-visible{box-shadow:1px 1px 0px 1px var(--color--gray-70), \n 1px -1px 0px 1px var(--color--gray-70), \n 2px -2px 0px 2px var(--color--ocean-green-200), \n 2px 2px 0px 2px var(--color--ocean-green-200), \n 0px -2px 0px 2px var(--color--ocean-green-200), \n 0px 2px 0px 2px var(--color--ocean-green-200)}.ez-split-button__left-button[aria-disabled].force-focus-visible,.ez-split-button__left-button[aria-disabled]:focus-visible{box-shadow:-1px 1px 0px 1px var(--color--gray-70), \n -1px -1px 0px 1px var(--color--gray-70), \n -2px -2px 0px 2px var(--color--petroleum-100), \n -2px 2px 0px 2px var(--color--petroleum-100), \n 0px -2px 0px 2px var(--color--petroleum-100), \n 0px 2px 0px 2px var(--color--petroleum-100)}.ez-split-button__right-button[aria-disabled].force-focus-visible,.ez-split-button__right-button[aria-disabled]:focus-visible{box-shadow:1px 1px 0px 1px var(--color--gray-70), \n 1px -1px 0px 1px var(--color--gray-70), \n 2px -2px 0px 2px var(--color--petroleum-100), \n 2px 2px 0px 2px var(--color--petroleum-100), \n 0px -2px 0px 2px var(--color--petroleum-100), \n 0px 2px 0px 2px var(--color--petroleum-100)}.ez-split-button__left-button:hover,.ez-split-button__right-button:hover{outline:none;background-color:var(--ez-split-button--hover--background-color);color:var(--ez-split-button--hover-color);fill:var(--ez-split-button--hover-color);--ez-icon--color:var(--ez-split-button--hover-color)}.ez-split-button__left-button:disabled,.ez-split-button__left-button[aria-disabled],.ez-split-button__left-button:disabled label,.ez-split-button__left-button[aria-disabled] label,.ez-split-button__right-button:disabled,.ez-split-button__right-button[aria-disabled]{background-color:var(--ez-split-button--disabled--background-color);color:var(--ez-split-button--disabled-color);fill:var(--ez-split-button--disabled-color);border:none;--ez-icon--color:var(--ez-split-button__left-icon--disabled-color);cursor:not-allowed}.ez-split-button__left-button:disabled,.ez-split-button__left-button[aria-disabled]{--ez-icon--color:var(--ez-split-button__left-icon--disabled-color);border:var(--ez-split-button--disabled-border);border-right:none}.ez-split-button__right-button:disabled,.ez-split-button__right-button[aria-disabled]{--ez-icon--color:var(--ez-split-button__right-icon--disabled-color);border:var(--ez-split-button--disabled-border);border-left:none}.ez-split-button__right-button{border-top-right-radius:var(--ez-split-button--border-radius);border-bottom-right-radius:var(--ez-split-button--border-radius);border-top-left-radius:0;border-bottom-left-radius:0;border-right:var(--ez-split-button--border)}.ez-split-button__divider{width:1px;box-sizing:border-box;position:relative;background-color:var(--ez-split-button--background-color);height:var(--ez-split-button--height);border-top:var(--ez-split-button--border);border-bottom:var(--ez-split-button--border)}.ez-split-button__divider[aria-disabled],.ez-split-button__divider.disabled{cursor:not-allowed;background-color:var(--ez-split-button--disabled--background-color);border-top:var(--ez-split-button--disabled--border);border-bottom:var(--ez-split-button--disabled--border)}.ez-split-button__divider:before{content:\"\";position:absolute;left:0;border-left:1px solid rgba(0, 0, 0, 10%);border-radius:2px;height:75%;top:10%;bottom:10%}.btn-icon--medium{min-width:--ez-split-button__medium-icon--width}.btn-icon--large{min-width:--ez-split-button__large-icon--width}.ez-split-button__right-button-container{position:absolute;left:0;padding-left:var(--ez-split-button__right-button--padding-left);padding-right:var(--ez-split-button__right-button--padding-right)}.ez-split-button{display:flex;flex-direction:row;align-items:center;color:var(--ez-split-button--color)}.dropdown{display:flex}.dropdown-content{display:block;position:absolute;background-color:#f1f1f1;min-width:160px;z-index:var(--ez-elevation--8);border-radius:var(--ez-split-button--border-radius)}.dropdown-content>ez-dropdown{position:relative}.ripple{position:absolute;width:20px;height:20px;border-radius:50%;background:rgba(255, 255, 255, 0.3);pointer-events:none;transform:scale(0);animation:ripple-animation 0.6s linear;z-index:0}@keyframes ripple-animation{to{transform:scale(4);opacity:0}}:host .ripple,:host(.ez-split-button--secondary) .ripple{background:rgba(0, 133, 97, 0.2)}:host(.ez-split-button--primary) .ripple{background:rgba(255, 255, 255, 0.3)}:host(.ez-split-button--tertiary) .ripple{background:rgba(0, 133, 97, 0.15)}.ez-split-button__left-button.pressed,.ez-split-button__right-button.pressed{transform:scale(0.98)}.ez-split-button__left-button>*:not(.ripple),.ez-split-button__right-button>*:not(.ripple){position:relative;z-index:1}.ez-split-button__left-button:disabled .ripple,.ez-split-button__left-button[aria-disabled] .ripple,.ez-split-button__right-button:disabled .ripple,.ez-split-button__right-button[aria-disabled] .ripple{display:none}.ez-split-button__left-button:disabled,.ez-split-button__left-button[aria-disabled],.ez-split-button__right-button:disabled,.ez-split-button__right-button[aria-disabled]{transform:scale(1) !important}";
10
10
 
11
+ const ANIMATION_TIMINGS = {
12
+ PRESSED_DURATION: 150,
13
+ RIPPLE_DURATION: 600
14
+ };
11
15
  const EzSplitButton = class {
12
16
  constructor(hostRef) {
13
17
  index.registerInstance(this, hostRef);
14
18
  this.buttonClick = index.createEvent(this, "buttonClick", 7);
15
19
  this.dropdownItemClick = index.createEvent(this, "dropdownItemClick", 7);
16
20
  this.dropdownSubActionClick = index.createEvent(this, "dropdownSubActionClick", 7);
21
+ this.rippleCounter = 0;
22
+ this.eventListeners = new WeakMap();
23
+ this.createRipple = (event, isLeftButton) => {
24
+ const button = isLeftButton ? this.leftButton : this.rightButton;
25
+ if (!button || this.isButtonDisabled || this.suppressAnimation)
26
+ return;
27
+ const coordinates = this.getEventCoordinates(event);
28
+ const rect = button.getBoundingClientRect();
29
+ const ripplePosition = {
30
+ x: coordinates.x - rect.left,
31
+ y: coordinates.y - rect.top
32
+ };
33
+ const newRipple = Object.assign(Object.assign({}, ripplePosition), { id: ++this.rippleCounter });
34
+ this.addRippleToButton(newRipple, isLeftButton);
35
+ };
36
+ /**
37
+ * Método responsável em posicionar o dropdown na tela.
38
+ * Faz com que o dropdown se ajuste automaticamente ao espaco na tela
39
+ */
40
+ this.positionDropdown = () => {
41
+ if (!this.rightButton || !this.dropdownParent)
42
+ return;
43
+ requestAnimationFrame(() => {
44
+ const { rightButton, dropdownParent } = this;
45
+ const rightButtonRect = rightButton.getBoundingClientRect();
46
+ const dropdownRect = dropdownParent.getBoundingClientRect();
47
+ const viewportHeight = window.innerHeight;
48
+ const viewportWidth = window.innerWidth;
49
+ // Calcule posições de forma mais eficiente
50
+ const spaceBelow = viewportHeight - rightButtonRect.bottom;
51
+ const spaceAbove = rightButtonRect.top;
52
+ const spaceRight = viewportWidth - rightButtonRect.left;
53
+ const spaceLeft = rightButtonRect.left;
54
+ const shouldOpenUpward = spaceBelow < dropdownRect.height && spaceAbove > dropdownRect.height;
55
+ const shouldOpenLeftward = spaceRight < dropdownRect.width && spaceLeft > dropdownRect.width;
56
+ const styles = this.calculateDropdownPosition(rightButtonRect, dropdownRect, shouldOpenUpward, shouldOpenLeftward);
57
+ Object.assign(dropdownParent.style, styles);
58
+ });
59
+ };
60
+ this.removeForcedFocusVisibleLeft = () => {
61
+ var _a;
62
+ (_a = this.leftButton) === null || _a === void 0 ? void 0 : _a.classList.remove('force-focus-visible');
63
+ };
64
+ this.removeForcedFocusVisibleRight = () => {
65
+ var _a;
66
+ (_a = this.rightButton) === null || _a === void 0 ? void 0 : _a.classList.remove('force-focus-visible');
67
+ };
68
+ this.leftRipples = [];
69
+ this.rightRipples = [];
70
+ this.isLeftPressed = false;
71
+ this.isRightPressed = false;
17
72
  this.show = false;
18
73
  this.enabled = true;
74
+ this.isDisabled = false;
19
75
  this.iconName = undefined;
76
+ this.leftIconName = undefined;
77
+ this.rightIconName = undefined;
20
78
  this.image = undefined;
21
79
  this.items = undefined;
22
80
  this.label = undefined;
@@ -24,6 +82,8 @@ const EzSplitButton = class {
24
82
  this.rightTitle = undefined;
25
83
  this.mode = 'default';
26
84
  this.size = 'medium';
85
+ this.variant = undefined;
86
+ this.suppressAnimation = false;
27
87
  this.itemBuilder = undefined;
28
88
  }
29
89
  /**
@@ -38,12 +98,14 @@ const EzSplitButton = class {
38
98
  */
39
99
  async setLeftButtonFocus() {
40
100
  this.leftButton.focus();
101
+ this.leftButton.classList.add("force-focus-visible");
41
102
  }
42
103
  /**
43
104
  * Aplica o foco no botão do dropdown.
44
- */
105
+ */
45
106
  async setRightButtonFocus() {
46
107
  this.rightButton.focus();
108
+ this.rightButton.classList.add("force-focus-visible");
47
109
  }
48
110
  /**
49
111
  * Abre ou Fecha o dropdown do Split Button.
@@ -57,18 +119,99 @@ const EzSplitButton = class {
57
119
  async isOpenedDropdown() {
58
120
  return this.show;
59
121
  }
122
+ getEventCoordinates(event) {
123
+ if (event instanceof MouseEvent) {
124
+ return { x: event.clientX, y: event.clientY };
125
+ }
126
+ return {
127
+ x: event.touches[0].clientX,
128
+ y: event.touches[0].clientY
129
+ };
130
+ }
131
+ addRippleToButton(ripple, isLeftButton) {
132
+ if (isLeftButton) {
133
+ this.leftRipples = [...this.leftRipples, ripple];
134
+ this.setButtonPressed(true, true);
135
+ this.scheduleRippleCleanup(ripple, true);
136
+ }
137
+ else {
138
+ this.rightRipples = [...this.rightRipples, ripple];
139
+ this.setButtonPressed(false, true);
140
+ this.scheduleRippleCleanup(ripple, false);
141
+ }
142
+ }
143
+ setButtonPressed(isLeftButton, pressed) {
144
+ if (isLeftButton) {
145
+ this.isLeftPressed = pressed;
146
+ }
147
+ else {
148
+ this.isRightPressed = pressed;
149
+ }
150
+ }
151
+ scheduleRippleCleanup(ripple, isLeftButton) {
152
+ setTimeout(() => {
153
+ this.setButtonPressed(isLeftButton, false);
154
+ }, ANIMATION_TIMINGS.PRESSED_DURATION);
155
+ setTimeout(() => {
156
+ this.removeRipple(ripple.id, isLeftButton);
157
+ }, ANIMATION_TIMINGS.RIPPLE_DURATION);
158
+ }
159
+ removeRipple(rippleId, isLeftButton) {
160
+ if (isLeftButton) {
161
+ this.leftRipples = this.leftRipples.filter(ripple => ripple.id !== rippleId);
162
+ }
163
+ else {
164
+ this.rightRipples = this.rightRipples.filter(ripple => ripple.id !== rippleId);
165
+ }
166
+ }
167
+ onMouseDown(event) {
168
+ const composedPath = event.composedPath();
169
+ const isLeftButton = composedPath.includes(this.leftButton);
170
+ const isRightButton = composedPath.includes(this.rightButton);
171
+ if (isLeftButton) {
172
+ this.createRipple(event, true);
173
+ return;
174
+ }
175
+ if (isRightButton) {
176
+ this.createRipple(event, false);
177
+ return;
178
+ }
179
+ }
180
+ onTouchStart(event) {
181
+ const composedPath = event.composedPath();
182
+ const isLeftButton = composedPath.includes(this.leftButton);
183
+ const isRightButton = composedPath.includes(this.rightButton);
184
+ if (isLeftButton) {
185
+ this.createRipple(event, true);
186
+ return;
187
+ }
188
+ if (isRightButton) {
189
+ this.createRipple(event, false);
190
+ return;
191
+ }
192
+ }
60
193
  clickListener(evt) {
61
- if (!this.enabled) {
194
+ const isDisabled = !this.enabled ||
195
+ this.isDisabled === true ||
196
+ this.isDisabled === "" ||
197
+ this.isDisabled === "full";
198
+ if (isDisabled) {
62
199
  evt.preventDefault();
63
200
  evt.stopPropagation();
64
201
  evt.stopImmediatePropagation();
65
202
  }
66
203
  }
67
- getIconSize(sizeParam = 'medium') {
204
+ shouldShowLabelOnLeftButton() {
205
+ return this.mode !== 'icon-only';
206
+ }
207
+ shouldShowIconOnLeftButton() {
208
+ return this.mode !== 'default';
209
+ }
210
+ getIconSize(defaultSize = 'medium') {
68
211
  var _a;
69
- const sizeList = ['small', 'medium', 'large'];
212
+ const validSizes = ['small', 'medium', 'large'];
70
213
  const sizeLowerCase = (_a = this.size) === null || _a === void 0 ? void 0 : _a.toLowerCase();
71
- return sizeList.includes(sizeLowerCase) ? sizeLowerCase : sizeParam;
214
+ return validSizes.includes(sizeLowerCase) ? sizeLowerCase : defaultSize;
72
215
  }
73
216
  closeDropdown() {
74
217
  this.show = false;
@@ -79,95 +222,127 @@ const EzSplitButton = class {
79
222
  handleDropdownItemClick(evt) {
80
223
  this.dropdownItemClick.emit(evt.detail);
81
224
  evt.stopPropagation();
225
+ this.closeDropdown();
82
226
  }
83
227
  handleDropdownSubActionClick(evt) {
84
228
  this.dropdownSubActionClick.emit(evt.detail);
85
229
  evt.stopPropagation();
86
230
  this.closeDropdown();
87
231
  }
88
- resolveOffsetParentRect() {
89
- var _a, _b;
90
- const offsetParentRect = (_b = (_a = this.dropdownParent) === null || _a === void 0 ? void 0 : _a.offsetParent) === null || _b === void 0 ? void 0 : _b.getBoundingClientRect();
91
- const scrollLeft = window.scrollX || document.documentElement.scrollLeft;
92
- const scrollTop = window.scrollY || document.documentElement.scrollTop;
93
- const rectWithoutScroll = {
94
- top: (offsetParentRect === null || offsetParentRect === void 0 ? void 0 : offsetParentRect.top) + scrollTop,
95
- left: (offsetParentRect === null || offsetParentRect === void 0 ? void 0 : offsetParentRect.left) + scrollLeft,
96
- bottom: (offsetParentRect === null || offsetParentRect === void 0 ? void 0 : offsetParentRect.bottom) + scrollTop,
97
- right: (offsetParentRect === null || offsetParentRect === void 0 ? void 0 : offsetParentRect.right) + scrollLeft,
98
- width: offsetParentRect === null || offsetParentRect === void 0 ? void 0 : offsetParentRect.width,
99
- height: offsetParentRect === null || offsetParentRect === void 0 ? void 0 : offsetParentRect.height
232
+ calculateDropdownPosition(buttonRect, dropdownRect, openUpward, openLeftward) {
233
+ const baseOffset = this.offsetParentRect || { top: 0, left: 0 };
234
+ return {
235
+ top: openUpward ? 'auto' : `${buttonRect.bottom - baseOffset.top + window.scrollY}px`,
236
+ bottom: openUpward ? `${window.innerHeight - buttonRect.top - window.scrollY}px` : 'auto',
237
+ left: openLeftward
238
+ ? `${buttonRect.right - dropdownRect.width - baseOffset.left + window.scrollX}px`
239
+ : `${buttonRect.left - baseOffset.left + window.scrollX}px`,
240
+ maxHeight: openUpward ? `${buttonRect.top - baseOffset.top}px` : 'none'
100
241
  };
101
- this.offsetParentRect = rectWithoutScroll;
102
242
  }
103
- /**
104
- * Método responsável em posicionar o dropdown na tela.
105
- * Faz com que o dropdown se ajuste automaticamente ao espaco na tela
106
- */
107
- positionDropdown() {
108
- var _a, _b, _c, _d, _e, _f;
109
- const { rightButton: _rightButton, dropdownParent: _dropdownParent } = this;
110
- const rightButtonRect = _rightButton.getBoundingClientRect();
111
- const dropdownParentRect = _dropdownParent.getBoundingClientRect();
112
- const spaceBelow = window.innerHeight - (rightButtonRect.bottom + ((_a = this.offsetParentRect) === null || _a === void 0 ? void 0 : _a.top));
113
- const spaceAbove = rightButtonRect.top + ((_b = this.offsetParentRect) === null || _b === void 0 ? void 0 : _b.top);
114
- const spaceRight = window.innerWidth - (rightButtonRect.left + ((_c = this.offsetParentRect) === null || _c === void 0 ? void 0 : _c.left));
115
- const spaceLeft = rightButtonRect.left;
116
- const hasSpaceBelow = spaceBelow < dropdownParentRect.height && spaceAbove > dropdownParentRect.height;
117
- const hasSpaceRight = spaceRight < dropdownParentRect.width && spaceLeft > dropdownParentRect.width;
118
- let top = `${rightButtonRect.bottom - ((_d = this.offsetParentRect) === null || _d === void 0 ? void 0 : _d.top) + window.scrollY}px`;
119
- let left = `${rightButtonRect.left - ((_e = this.offsetParentRect) === null || _e === void 0 ? void 0 : _e.left) + window.scrollX}px`;
120
- let bottom = 'auto';
121
- if (hasSpaceBelow) {
122
- bottom = `${window.innerHeight - rightButtonRect.top - window.scrollY}px`;
123
- top = 'auto';
124
- _dropdownParent.style.maxHeight = `${spaceAbove}px`;
125
- }
126
- if (hasSpaceRight) {
127
- left = `${rightButtonRect.right - dropdownParentRect.width - ((_f = this.offsetParentRect) === null || _f === void 0 ? void 0 : _f.left) + window.scrollX}px`;
128
- }
129
- _dropdownParent.style.top = top;
130
- _dropdownParent.style.bottom = bottom;
131
- _dropdownParent.style.left = left;
132
- }
133
- setEvents() {
134
- window.removeEventListener('scroll', this.positionDropdown.bind(this));
135
- window.addEventListener('scroll', this.positionDropdown.bind(this));
243
+ setupEventListeners() {
244
+ const controller = new AbortController();
245
+ const { signal } = controller;
246
+ window.addEventListener('scroll', this.positionDropdown, { signal, passive: true });
247
+ window.addEventListener('resize', this.positionDropdown, { signal, passive: true });
248
+ this.eventListeners.set(this._element, controller);
249
+ }
250
+ cleanupEventListeners() {
251
+ const controller = this.eventListeners.get(this._element);
252
+ if (controller) {
253
+ controller.abort();
254
+ this.eventListeners.delete(this._element);
255
+ }
136
256
  }
137
257
  async componentWillLoad() {
138
258
  this.i18n = await index$1.initI18n();
139
- this.setEvents();
140
- }
141
- componentWillRender() {
142
- this.resolveOffsetParentRect();
143
259
  }
144
260
  componentDidLoad() {
145
- if (this._element)
261
+ this.addElementIDs();
262
+ this.setupEventListeners();
263
+ this.addBlurListeners();
264
+ setTimeout(() => this.positionDropdown(), 0);
265
+ }
266
+ disconnectedCallback() {
267
+ this.cleanupEventListeners();
268
+ this.removeBlurListeners();
269
+ }
270
+ componentDidUpdate() {
271
+ if (this.show) {
272
+ this.positionDropdown();
273
+ }
274
+ }
275
+ addElementIDs() {
276
+ if (this._element) {
146
277
  core.ElementIDUtils.addIDInfo(this._element);
278
+ }
147
279
  if (this.leftButton) {
148
- const dataInfo = { id: 'embedded' };
149
- core.ElementIDUtils.addIDInfo(this.leftButton, 'left-button', dataInfo);
280
+ core.ElementIDUtils.addIDInfo(this.leftButton, 'leftButton', { id: 'embedded' });
150
281
  }
151
282
  if (this.rightButton) {
152
- const dataInfo = { id: 'embedded' };
153
- core.ElementIDUtils.addIDInfo(this.rightButton, 'right-button', dataInfo);
283
+ core.ElementIDUtils.addIDInfo(this.rightButton, 'rightButton', { id: 'embedded' });
154
284
  }
155
- this.positionDropdown();
156
285
  }
157
- componentDidUpdate() {
158
- this.positionDropdown();
286
+ renderRipples(ripples) {
287
+ return ripples.map((ripple) => (index.h("span", { key: ripple.id, class: "ripple", style: {
288
+ left: `${ripple.x - 10}px`,
289
+ top: `${ripple.y - 10}px`,
290
+ } })));
159
291
  }
160
292
  render() {
161
293
  const hasIconButton = this.shouldShowIconOnLeftButton();
162
294
  const hasLabelButton = this.shouldShowLabelOnLeftButton();
163
295
  const iconSize = this.getIconSize();
164
- return (index.h("div", { class: "label-icon" }, index.h("button", { class: `ez-split-button__left-button ${iconSize} ${this.mode}`, title: this.leftTitle || this.label, type: "button", disabled: !this.enabled, onClick: () => { this.handleButtonClick(); }, ref: el => (this.leftButton = el) }, hasIconButton && index.h("ez-icon", { href: this.image, iconName: this.iconName, size: iconSize }), hasLabelButton && index.h("label", { title: this.leftTitle || this.label }, this.label)), index.h("div", { class: "dropdown" }, index.h("button", { class: `ez-split-button__right-button ${iconSize} ez-split-button__right-button--${iconSize} ez-split-button__right-button--divider`, title: this.rightTitle || this.i18n("ez-split-button.moreOptions"), type: "button", disabled: !this.enabled, onClick: () => { this.toggleDropdown(); }, ref: el => (this.rightButton = el) }, index.h("ez-icon", { class: `ez-split-button__right-button-container ` + (iconSize ? `btn-icon--${iconSize}` : ''), iconName: 'chevron-down', size: iconSize })), index.h("div", { class: `dropdown-content dropdown-content--${this.size}`, ref: (ref) => (this.dropdownParent = ref) }, this.show && (index.h("ez-dropdown", { items: this.items, onClick: evt => { evt.stopPropagation(); }, onEzOutsideClick: () => { this.closeDropdown(); }, onEzClick: evt => { this.handleDropdownItemClick(evt); }, onEzSubActionClick: evt => { this.handleDropdownSubActionClick(evt); }, itemBuilder: this.itemBuilder }))))));
296
+ return (index.h(index.Host, { class: this.variant ? `ez-split-button--${this.variant}` : '' }, index.h("div", { class: `ez-split-button ${this.size} ${this.mode}` }, this.renderLeftButton(hasIconButton, hasLabelButton, iconSize), this.renderDivider(), this.renderDropdownSection(iconSize))));
165
297
  }
166
- shouldShowLabelOnLeftButton() {
167
- return ['icon-left', 'default'].includes(this.mode);
298
+ renderLeftButton(hasIconButton, hasLabelButton, iconSize) {
299
+ return (index.h("button", { class: `ez-split-button__left-button ${iconSize} ${this.mode} ${this.isLeftPressed ? 'pressed' : ''}`, title: this.leftTitle || this.label, type: "button", disabled: this.isButtonDisabled, "aria-disabled": this.isButtonAriaDisabled, onClick: () => this.handleButtonClick(), ref: el => (this.leftButton = el) }, hasIconButton && this.renderLeftIcon(iconSize), hasLabelButton && this.renderLabel(), !this.suppressAnimation && this.renderRipples(this.leftRipples)));
168
300
  }
169
- shouldShowIconOnLeftButton() {
170
- return ['icon-left', 'icon-only'].includes(this.mode);
301
+ renderDivider() {
302
+ return index.h("div", { class: `ez-split-button__divider ${this.mode} ez-split-button__divider--${this.size} ${this.isButtonDisabled ? 'disabled' : ''}`, "aria-disabled": this.isButtonAriaDisabled });
303
+ }
304
+ renderDropdownSection(iconSize) {
305
+ return (index.h("div", { class: "dropdown" }, this.renderRightButton(iconSize), this.renderDropdownContent()));
306
+ }
307
+ renderRightButton(iconSize) {
308
+ return (index.h("button", { class: `ez-split-button__right-button ${iconSize} ez-split-button__right-button--${iconSize} ${this.isRightPressed ? 'pressed' : ''}`, title: this.rightTitle || this.i18n("ez-split-button.moreOptions"), type: "button", disabled: this.isButtonDisabled, "aria-disabled": this.isButtonAriaDisabled, onClick: () => this.toggleDropdown(), ref: el => (this.rightButton = el) }, this.renderRightIcon(iconSize), !this.suppressAnimation && this.renderRipples(this.rightRipples)));
309
+ }
310
+ renderDropdownContent() {
311
+ return (index.h("div", { class: `dropdown-content dropdown-content--${this.size}`, ref: (ref) => (this.dropdownParent = ref) }, this.show && this.renderDropdown()));
312
+ }
313
+ renderLeftIcon(iconSize) {
314
+ return (index.h("ez-icon", { href: this.image, iconName: this.leftIconName || this.iconName, size: iconSize }));
315
+ }
316
+ renderLabel() {
317
+ return index.h("label", { title: this.leftTitle || this.label }, this.label);
318
+ }
319
+ renderRightIcon(iconSize) {
320
+ const iconName = this.rightIconName || 'chevron-down';
321
+ const containerClass = `ez-split-button__right-button-container ${iconSize ? `btn-icon--${iconSize}` : ''}`;
322
+ return (index.h("ez-icon", { class: containerClass, iconName: iconName, size: iconSize }));
323
+ }
324
+ renderDropdown() {
325
+ return (index.h("ez-dropdown", { items: this.items, onClick: evt => evt.stopPropagation(), onEzOutsideClick: () => this.closeDropdown(), onEzClick: evt => this.handleDropdownItemClick(evt), onEzSubActionClick: evt => this.handleDropdownSubActionClick(evt), itemBuilder: this.itemBuilder }));
326
+ }
327
+ addBlurListeners() {
328
+ var _a, _b;
329
+ this.removeBlurListeners();
330
+ (_a = this.leftButton) === null || _a === void 0 ? void 0 : _a.addEventListener('blur', this.removeForcedFocusVisibleLeft);
331
+ (_b = this.rightButton) === null || _b === void 0 ? void 0 : _b.addEventListener('blur', this.removeForcedFocusVisibleRight);
332
+ }
333
+ removeBlurListeners() {
334
+ var _a, _b;
335
+ (_a = this.leftButton) === null || _a === void 0 ? void 0 : _a.removeEventListener('blur', this.removeForcedFocusVisibleLeft);
336
+ (_b = this.rightButton) === null || _b === void 0 ? void 0 : _b.removeEventListener('blur', this.removeForcedFocusVisibleRight);
337
+ }
338
+ connectedCallback() {
339
+ this.addBlurListeners();
340
+ }
341
+ get isButtonDisabled() {
342
+ return this.isDisabled === "full" || !this.enabled;
343
+ }
344
+ get isButtonAriaDisabled() {
345
+ return this.isDisabled === true || this.isDisabled === "";
171
346
  }
172
347
  get _element() { return index.getElement(this); }
173
348
  };
@@ -3,12 +3,12 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-a7b0c73d.js');
6
- require('./ApplicationUtils-6d393a1e.js');
6
+ require('./ApplicationUtils-5cc05979.js');
7
7
  const CSSVarsUtils = require('./CSSVarsUtils-f20973d1.js');
8
8
  require('./DialogType-2114c337.js');
9
9
  require('./CheckMode-ecb90b87.js');
10
10
  require('@sankhyalabs/core');
11
- const index$1 = require('./index-4ae2f4f6.js');
11
+ const index$1 = require('./index-1be40f19.js');
12
12
  require('./FormLayout-18853e70.js');
13
13
 
14
14
  const ezSplitItemCss = ".box_split-item{background-color:var(--background--xlight);width:100%;height:100%;border-radius:var(--border--radius-medium);box-shadow:var(--shadow--xsmall);flex-direction:column;overflow:hidden;display:flex;padding:var(--space--nano)}.box_split-item>.ez-split-item--content{overflow:auto}.expanded__item{position:absolute;z-index:var(--more-visible);top:0;left:0;width:100%;height:100%}.ez-split-item--header{display:flex;align-items:center;justify-content:space-between}.ez-split-item--header-title{flex:1;white-space:nowrap;overflow:hidden}.ez-split-item--header-title h3{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}.ez-split-item--header-buttons{display:flex;align-items:center;max-height:20px}.ez-split-item--content{display:block;height:100%}h3.ez-margin--small{margin-left:var(--space--small)}.structural__item{background:none;box-shadow:none;padding:0;margin:0;border:0}.content__item{margin:var(--space--extra-small);width:calc(100% - 2*(var(--space--extra-small)));height:calc(100% - 2*(var(--space--extra-small)))}";
@@ -5,7 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  const index = require('./index-a7b0c73d.js');
6
6
  const core = require('@sankhyalabs/core');
7
7
  const CSSVarsUtils = require('./CSSVarsUtils-f20973d1.js');
8
- const index$1 = require('./index-4ae2f4f6.js');
8
+ const index$1 = require('./index-1be40f19.js');
9
9
 
10
10
  const ezTimeInputCss = ":host{display:flex;flex-wrap:wrap;position:relative;width:100%}.time__input{height:100%}";
11
11
 
@@ -4,7 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-a7b0c73d.js');
6
6
  const core = require('@sankhyalabs/core');
7
- const index$1 = require('./index-4ae2f4f6.js');
7
+ const index$1 = require('./index-1be40f19.js');
8
8
 
9
9
  const ICON_EXPANDED = "chevron-down";
10
10
  const ICON_COLAPSED = "chevron-right";
@@ -4,8 +4,8 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-a7b0c73d.js');
6
6
  const core = require('@sankhyalabs/core');
7
- const ApplicationUtils = require('./ApplicationUtils-6d393a1e.js');
8
- const index$1 = require('./index-4ae2f4f6.js');
7
+ const ApplicationUtils = require('./ApplicationUtils-5cc05979.js');
8
+ const index$1 = require('./index-1be40f19.js');
9
9
  require('./DialogType-2114c337.js');
10
10
 
11
11
  class RemoteFile {