@mintplayer/ng-bootstrap 21.22.0 → 21.23.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 (182) hide show
  1. package/fesm2022/mintplayer-ng-bootstrap-accordion.mjs +20 -20
  2. package/fesm2022/mintplayer-ng-bootstrap-accordion.mjs.map +1 -1
  3. package/fesm2022/mintplayer-ng-bootstrap-alert.mjs +8 -8
  4. package/fesm2022/mintplayer-ng-bootstrap-alert.mjs.map +1 -1
  5. package/fesm2022/mintplayer-ng-bootstrap-badge.mjs +5 -5
  6. package/fesm2022/mintplayer-ng-bootstrap-badge.mjs.map +1 -1
  7. package/fesm2022/mintplayer-ng-bootstrap-breadcrumb.mjs +6 -6
  8. package/fesm2022/mintplayer-ng-bootstrap-breadcrumb.mjs.map +1 -1
  9. package/fesm2022/mintplayer-ng-bootstrap-button-group.mjs +3 -3
  10. package/fesm2022/mintplayer-ng-bootstrap-button-group.mjs.map +1 -1
  11. package/fesm2022/mintplayer-ng-bootstrap-button-type.mjs +4 -4
  12. package/fesm2022/mintplayer-ng-bootstrap-button-type.mjs.map +1 -1
  13. package/fesm2022/mintplayer-ng-bootstrap-calendar-month.mjs +9 -9
  14. package/fesm2022/mintplayer-ng-bootstrap-calendar-month.mjs.map +1 -1
  15. package/fesm2022/mintplayer-ng-bootstrap-calendar.mjs +10 -10
  16. package/fesm2022/mintplayer-ng-bootstrap-calendar.mjs.map +1 -1
  17. package/fesm2022/mintplayer-ng-bootstrap-card.mjs +8 -8
  18. package/fesm2022/mintplayer-ng-bootstrap-card.mjs.map +1 -1
  19. package/fesm2022/mintplayer-ng-bootstrap-carousel.mjs +25 -25
  20. package/fesm2022/mintplayer-ng-bootstrap-carousel.mjs.map +1 -1
  21. package/fesm2022/mintplayer-ng-bootstrap-close.mjs +3 -3
  22. package/fesm2022/mintplayer-ng-bootstrap-close.mjs.map +1 -1
  23. package/fesm2022/mintplayer-ng-bootstrap-code-snippet.mjs +7 -7
  24. package/fesm2022/mintplayer-ng-bootstrap-code-snippet.mjs.map +1 -1
  25. package/fesm2022/mintplayer-ng-bootstrap-color-picker.mjs +58 -58
  26. package/fesm2022/mintplayer-ng-bootstrap-color-picker.mjs.map +1 -1
  27. package/fesm2022/mintplayer-ng-bootstrap-container.mjs +3 -3
  28. package/fesm2022/mintplayer-ng-bootstrap-container.mjs.map +1 -1
  29. package/fesm2022/mintplayer-ng-bootstrap-context-menu.mjs +3 -3
  30. package/fesm2022/mintplayer-ng-bootstrap-context-menu.mjs.map +1 -1
  31. package/fesm2022/mintplayer-ng-bootstrap-copy.mjs +4 -4
  32. package/fesm2022/mintplayer-ng-bootstrap-copy.mjs.map +1 -1
  33. package/fesm2022/mintplayer-ng-bootstrap-datatable.mjs +20 -20
  34. package/fesm2022/mintplayer-ng-bootstrap-datatable.mjs.map +1 -1
  35. package/fesm2022/mintplayer-ng-bootstrap-datepicker.mjs +6 -6
  36. package/fesm2022/mintplayer-ng-bootstrap-datepicker.mjs.map +1 -1
  37. package/fesm2022/mintplayer-ng-bootstrap-dock.mjs +789 -1175
  38. package/fesm2022/mintplayer-ng-bootstrap-dock.mjs.map +1 -1
  39. package/fesm2022/mintplayer-ng-bootstrap-dropdown-divider.mjs +3 -3
  40. package/fesm2022/mintplayer-ng-bootstrap-dropdown-divider.mjs.map +1 -1
  41. package/fesm2022/mintplayer-ng-bootstrap-dropdown-menu.mjs +10 -10
  42. package/fesm2022/mintplayer-ng-bootstrap-dropdown-menu.mjs.map +1 -1
  43. package/fesm2022/mintplayer-ng-bootstrap-dropdown.mjs +15 -15
  44. package/fesm2022/mintplayer-ng-bootstrap-dropdown.mjs.map +1 -1
  45. package/fesm2022/mintplayer-ng-bootstrap-enhanced-paste.mjs +3 -3
  46. package/fesm2022/mintplayer-ng-bootstrap-enhanced-paste.mjs.map +1 -1
  47. package/fesm2022/mintplayer-ng-bootstrap-enum.mjs +3 -3
  48. package/fesm2022/mintplayer-ng-bootstrap-enum.mjs.map +1 -1
  49. package/fesm2022/mintplayer-ng-bootstrap-file-upload.mjs +16 -16
  50. package/fesm2022/mintplayer-ng-bootstrap-file-upload.mjs.map +1 -1
  51. package/fesm2022/mintplayer-ng-bootstrap-floating-labels.mjs +3 -3
  52. package/fesm2022/mintplayer-ng-bootstrap-floating-labels.mjs.map +1 -1
  53. package/fesm2022/mintplayer-ng-bootstrap-font-color.mjs +3 -3
  54. package/fesm2022/mintplayer-ng-bootstrap-font-color.mjs.map +1 -1
  55. package/fesm2022/mintplayer-ng-bootstrap-for.mjs +4 -4
  56. package/fesm2022/mintplayer-ng-bootstrap-for.mjs.map +1 -1
  57. package/fesm2022/mintplayer-ng-bootstrap-form.mjs +11 -11
  58. package/fesm2022/mintplayer-ng-bootstrap-form.mjs.map +1 -1
  59. package/fesm2022/mintplayer-ng-bootstrap-grid.mjs +26 -26
  60. package/fesm2022/mintplayer-ng-bootstrap-grid.mjs.map +1 -1
  61. package/fesm2022/mintplayer-ng-bootstrap-has-overlay.mjs +4 -4
  62. package/fesm2022/mintplayer-ng-bootstrap-has-overlay.mjs.map +1 -1
  63. package/fesm2022/mintplayer-ng-bootstrap-has-property.mjs +3 -3
  64. package/fesm2022/mintplayer-ng-bootstrap-has-property.mjs.map +1 -1
  65. package/fesm2022/mintplayer-ng-bootstrap-in-list.mjs +3 -3
  66. package/fesm2022/mintplayer-ng-bootstrap-in-list.mjs.map +1 -1
  67. package/fesm2022/mintplayer-ng-bootstrap-input-group.mjs +3 -3
  68. package/fesm2022/mintplayer-ng-bootstrap-input-group.mjs.map +1 -1
  69. package/fesm2022/mintplayer-ng-bootstrap-instance-of.mjs +14 -14
  70. package/fesm2022/mintplayer-ng-bootstrap-instance-of.mjs.map +1 -1
  71. package/fesm2022/mintplayer-ng-bootstrap-let.mjs +4 -4
  72. package/fesm2022/mintplayer-ng-bootstrap-let.mjs.map +1 -1
  73. package/fesm2022/mintplayer-ng-bootstrap-linify.mjs +3 -3
  74. package/fesm2022/mintplayer-ng-bootstrap-linify.mjs.map +1 -1
  75. package/fesm2022/mintplayer-ng-bootstrap-list-group.mjs +7 -7
  76. package/fesm2022/mintplayer-ng-bootstrap-list-group.mjs.map +1 -1
  77. package/fesm2022/mintplayer-ng-bootstrap-markdown.mjs +12 -12
  78. package/fesm2022/mintplayer-ng-bootstrap-markdown.mjs.map +1 -1
  79. package/fesm2022/mintplayer-ng-bootstrap-marquee.mjs +3 -3
  80. package/fesm2022/mintplayer-ng-bootstrap-marquee.mjs.map +1 -1
  81. package/fesm2022/mintplayer-ng-bootstrap-modal.mjs +24 -24
  82. package/fesm2022/mintplayer-ng-bootstrap-modal.mjs.map +1 -1
  83. package/fesm2022/mintplayer-ng-bootstrap-multiselect.mjs +24 -24
  84. package/fesm2022/mintplayer-ng-bootstrap-multiselect.mjs.map +1 -1
  85. package/fesm2022/mintplayer-ng-bootstrap-navbar-toggler.mjs +5 -5
  86. package/fesm2022/mintplayer-ng-bootstrap-navbar-toggler.mjs.map +1 -1
  87. package/fesm2022/mintplayer-ng-bootstrap-navbar.mjs +58 -58
  88. package/fesm2022/mintplayer-ng-bootstrap-navbar.mjs.map +1 -1
  89. package/fesm2022/mintplayer-ng-bootstrap-navigation-lock.mjs +8 -8
  90. package/fesm2022/mintplayer-ng-bootstrap-navigation-lock.mjs.map +1 -1
  91. package/fesm2022/mintplayer-ng-bootstrap-no-noscript.mjs +3 -3
  92. package/fesm2022/mintplayer-ng-bootstrap-no-noscript.mjs.map +1 -1
  93. package/fesm2022/mintplayer-ng-bootstrap-offcanvas.mjs +40 -40
  94. package/fesm2022/mintplayer-ng-bootstrap-offcanvas.mjs.map +1 -1
  95. package/fesm2022/mintplayer-ng-bootstrap-ordinal-number.mjs +3 -3
  96. package/fesm2022/mintplayer-ng-bootstrap-ordinal-number.mjs.map +1 -1
  97. package/fesm2022/mintplayer-ng-bootstrap-pagination.mjs +12 -12
  98. package/fesm2022/mintplayer-ng-bootstrap-pagination.mjs.map +1 -1
  99. package/fesm2022/mintplayer-ng-bootstrap-parallax.mjs +6 -6
  100. package/fesm2022/mintplayer-ng-bootstrap-parallax.mjs.map +1 -1
  101. package/fesm2022/mintplayer-ng-bootstrap-placeholder.mjs +7 -7
  102. package/fesm2022/mintplayer-ng-bootstrap-placeholder.mjs.map +1 -1
  103. package/fesm2022/mintplayer-ng-bootstrap-playlist-toggler.mjs +5 -5
  104. package/fesm2022/mintplayer-ng-bootstrap-playlist-toggler.mjs.map +1 -1
  105. package/fesm2022/mintplayer-ng-bootstrap-popover.mjs +20 -20
  106. package/fesm2022/mintplayer-ng-bootstrap-popover.mjs.map +1 -1
  107. package/fesm2022/mintplayer-ng-bootstrap-priority-nav.mjs +30 -30
  108. package/fesm2022/mintplayer-ng-bootstrap-priority-nav.mjs.map +1 -1
  109. package/fesm2022/mintplayer-ng-bootstrap-progress-bar.mjs +17 -17
  110. package/fesm2022/mintplayer-ng-bootstrap-progress-bar.mjs.map +1 -1
  111. package/fesm2022/mintplayer-ng-bootstrap-range.mjs +9 -9
  112. package/fesm2022/mintplayer-ng-bootstrap-range.mjs.map +1 -1
  113. package/fesm2022/mintplayer-ng-bootstrap-rating.mjs +7 -7
  114. package/fesm2022/mintplayer-ng-bootstrap-rating.mjs.map +1 -1
  115. package/fesm2022/mintplayer-ng-bootstrap-resizable.mjs +25 -25
  116. package/fesm2022/mintplayer-ng-bootstrap-resizable.mjs.map +1 -1
  117. package/fesm2022/mintplayer-ng-bootstrap-scheduler.mjs +16 -16
  118. package/fesm2022/mintplayer-ng-bootstrap-scheduler.mjs.map +1 -1
  119. package/fesm2022/mintplayer-ng-bootstrap-scrollspy.mjs +14 -14
  120. package/fesm2022/mintplayer-ng-bootstrap-scrollspy.mjs.map +1 -1
  121. package/fesm2022/mintplayer-ng-bootstrap-searchbox.mjs +24 -24
  122. package/fesm2022/mintplayer-ng-bootstrap-searchbox.mjs.map +1 -1
  123. package/fesm2022/mintplayer-ng-bootstrap-select.mjs +19 -19
  124. package/fesm2022/mintplayer-ng-bootstrap-select.mjs.map +1 -1
  125. package/fesm2022/mintplayer-ng-bootstrap-select2.mjs +20 -20
  126. package/fesm2022/mintplayer-ng-bootstrap-select2.mjs.map +1 -1
  127. package/fesm2022/mintplayer-ng-bootstrap-shell.mjs +11 -11
  128. package/fesm2022/mintplayer-ng-bootstrap-shell.mjs.map +1 -1
  129. package/fesm2022/mintplayer-ng-bootstrap-signature-pad.mjs +7 -7
  130. package/fesm2022/mintplayer-ng-bootstrap-signature-pad.mjs.map +1 -1
  131. package/fesm2022/mintplayer-ng-bootstrap-slugify.mjs +3 -3
  132. package/fesm2022/mintplayer-ng-bootstrap-slugify.mjs.map +1 -1
  133. package/fesm2022/mintplayer-ng-bootstrap-spinner.mjs +7 -7
  134. package/fesm2022/mintplayer-ng-bootstrap-spinner.mjs.map +1 -1
  135. package/fesm2022/mintplayer-ng-bootstrap-split-string.mjs +3 -3
  136. package/fesm2022/mintplayer-ng-bootstrap-split-string.mjs.map +1 -1
  137. package/fesm2022/mintplayer-ng-bootstrap-sticky-footer.mjs +6 -6
  138. package/fesm2022/mintplayer-ng-bootstrap-sticky-footer.mjs.map +1 -1
  139. package/fesm2022/mintplayer-ng-bootstrap-tab-control.mjs +57 -67
  140. package/fesm2022/mintplayer-ng-bootstrap-tab-control.mjs.map +1 -1
  141. package/fesm2022/mintplayer-ng-bootstrap-table.mjs +10 -10
  142. package/fesm2022/mintplayer-ng-bootstrap-table.mjs.map +1 -1
  143. package/fesm2022/mintplayer-ng-bootstrap-timepicker.mjs +8 -8
  144. package/fesm2022/mintplayer-ng-bootstrap-timepicker.mjs.map +1 -1
  145. package/fesm2022/mintplayer-ng-bootstrap-toast.mjs +24 -24
  146. package/fesm2022/mintplayer-ng-bootstrap-toast.mjs.map +1 -1
  147. package/fesm2022/mintplayer-ng-bootstrap-toggle-button.mjs +22 -22
  148. package/fesm2022/mintplayer-ng-bootstrap-toggle-button.mjs.map +1 -1
  149. package/fesm2022/mintplayer-ng-bootstrap-tooltip.mjs +10 -10
  150. package/fesm2022/mintplayer-ng-bootstrap-tooltip.mjs.map +1 -1
  151. package/fesm2022/mintplayer-ng-bootstrap-treeview.mjs +14 -14
  152. package/fesm2022/mintplayer-ng-bootstrap-treeview.mjs.map +1 -1
  153. package/fesm2022/mintplayer-ng-bootstrap-trust-html.mjs +3 -3
  154. package/fesm2022/mintplayer-ng-bootstrap-trust-html.mjs.map +1 -1
  155. package/fesm2022/mintplayer-ng-bootstrap-typeahead.mjs +10 -10
  156. package/fesm2022/mintplayer-ng-bootstrap-typeahead.mjs.map +1 -1
  157. package/fesm2022/mintplayer-ng-bootstrap-uc-first.mjs +3 -3
  158. package/fesm2022/mintplayer-ng-bootstrap-uc-first.mjs.map +1 -1
  159. package/fesm2022/mintplayer-ng-bootstrap-user-agent.mjs +3 -3
  160. package/fesm2022/mintplayer-ng-bootstrap-user-agent.mjs.map +1 -1
  161. package/fesm2022/mintplayer-ng-bootstrap-viewport.mjs +3 -3
  162. package/fesm2022/mintplayer-ng-bootstrap-viewport.mjs.map +1 -1
  163. package/fesm2022/mintplayer-ng-bootstrap-virtual-datatable.mjs +10 -10
  164. package/fesm2022/mintplayer-ng-bootstrap-virtual-datatable.mjs.map +1 -1
  165. package/fesm2022/mintplayer-ng-bootstrap-web-components-scheduler-core.mjs +1356 -0
  166. package/fesm2022/mintplayer-ng-bootstrap-web-components-scheduler-core.mjs.map +1 -0
  167. package/fesm2022/mintplayer-ng-bootstrap-web-components-scheduler.mjs +3819 -0
  168. package/fesm2022/mintplayer-ng-bootstrap-web-components-scheduler.mjs.map +1 -0
  169. package/fesm2022/mintplayer-ng-bootstrap-web-components-splitter.mjs +731 -0
  170. package/fesm2022/mintplayer-ng-bootstrap-web-components-splitter.mjs.map +1 -0
  171. package/fesm2022/mintplayer-ng-bootstrap-web-components-tab-control.mjs +549 -0
  172. package/fesm2022/mintplayer-ng-bootstrap-web-components-tab-control.mjs.map +1 -0
  173. package/fesm2022/mintplayer-ng-bootstrap-word-count.mjs +3 -3
  174. package/fesm2022/mintplayer-ng-bootstrap-word-count.mjs.map +1 -1
  175. package/package.json +20 -6
  176. package/types/mintplayer-ng-bootstrap-dock.d.ts +55 -19
  177. package/types/mintplayer-ng-bootstrap-scheduler.d.ts +2 -2
  178. package/types/mintplayer-ng-bootstrap-tab-control.d.ts +7 -11
  179. package/types/mintplayer-ng-bootstrap-web-components-scheduler-core.d.ts +890 -0
  180. package/types/mintplayer-ng-bootstrap-web-components-scheduler.d.ts +354 -0
  181. package/types/mintplayer-ng-bootstrap-web-components-splitter.d.ts +165 -0
  182. package/types/mintplayer-ng-bootstrap-web-components-tab-control.d.ts +95 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mintplayer-ng-bootstrap-web-components-tab-control.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/web-components/tab-control/src/styles/tab-control.styles.ts","../../../../libs/mintplayer-ng-bootstrap/web-components/tab-control/src/components/mp-tab-control.ts","../../../../libs/mintplayer-ng-bootstrap/web-components/tab-control/src/components/mp-tab-page.ts","../../../../libs/mintplayer-ng-bootstrap/web-components/tab-control/src/index.ts","../../../../libs/mintplayer-ng-bootstrap/web-components/tab-control/mintplayer-ng-bootstrap-web-components-tab-control.ts"],"sourcesContent":["// AUTO-GENERATED — do not edit by hand.\n// Source: tab-control.styles.scss\n// Regenerate with the codegen-wc Nx target.\n\nimport { unsafeCSS } from 'lit';\n\nexport const tabControlStyles = unsafeCSS(`.nav {\n --bs-nav-link-padding-x: 1rem;\n --bs-nav-link-padding-y: 0.5rem;\n --bs-nav-link-font-weight: ;\n --bs-nav-link-color: var(--bs-link-color);\n --bs-nav-link-hover-color: var(--bs-link-hover-color);\n --bs-nav-link-disabled-color: var(--bs-secondary-color);\n display: flex;\n flex-wrap: wrap;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.nav-link {\n display: block;\n padding: var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x);\n font-size: var(--bs-nav-link-font-size);\n font-weight: var(--bs-nav-link-font-weight);\n color: var(--bs-nav-link-color);\n text-decoration: none;\n background: none;\n border: 0;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out;\n}\n@media (prefers-reduced-motion: reduce) {\n .nav-link {\n transition: none;\n }\n}\n.nav-link:hover, .nav-link:focus {\n color: var(--bs-nav-link-hover-color);\n}\n.nav-link:focus-visible {\n outline: 0;\n box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);\n}\n.nav-link.disabled, .nav-link:disabled {\n color: var(--bs-nav-link-disabled-color);\n pointer-events: none;\n cursor: default;\n}\n\n.nav-tabs {\n --bs-nav-tabs-border-width: var(--bs-border-width);\n --bs-nav-tabs-border-color: var(--bs-border-color);\n --bs-nav-tabs-border-radius: var(--bs-border-radius);\n --bs-nav-tabs-link-hover-border-color: var(--bs-secondary-bg) var(--bs-secondary-bg) var(--bs-border-color);\n --bs-nav-tabs-link-active-color: var(--bs-emphasis-color);\n --bs-nav-tabs-link-active-bg: var(--bs-body-bg);\n --bs-nav-tabs-link-active-border-color: var(--bs-border-color) var(--bs-border-color) var(--bs-body-bg);\n border-bottom: var(--bs-nav-tabs-border-width) solid var(--bs-nav-tabs-border-color);\n}\n.nav-tabs .nav-link {\n margin-bottom: calc(-1 * var(--bs-nav-tabs-border-width));\n border: var(--bs-nav-tabs-border-width) solid transparent;\n border-top-left-radius: var(--bs-nav-tabs-border-radius);\n border-top-right-radius: var(--bs-nav-tabs-border-radius);\n}\n.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {\n isolation: isolate;\n border-color: var(--bs-nav-tabs-link-hover-border-color);\n}\n.nav-tabs .nav-link.active,\n.nav-tabs .nav-item.show .nav-link {\n color: var(--bs-nav-tabs-link-active-color);\n background-color: var(--bs-nav-tabs-link-active-bg);\n border-color: var(--bs-nav-tabs-link-active-border-color);\n}\n.nav-tabs .dropdown-menu {\n margin-top: calc(-1 * var(--bs-nav-tabs-border-width));\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.nav-pills {\n --bs-nav-pills-border-radius: var(--bs-border-radius);\n --bs-nav-pills-link-active-color: #fff;\n --bs-nav-pills-link-active-bg: #0d6efd;\n}\n.nav-pills .nav-link {\n border-radius: var(--bs-nav-pills-border-radius);\n}\n.nav-pills .nav-link.active,\n.nav-pills .show > .nav-link {\n color: var(--bs-nav-pills-link-active-color);\n background-color: var(--bs-nav-pills-link-active-bg);\n}\n\n.nav-underline {\n --bs-nav-underline-gap: 1rem;\n --bs-nav-underline-border-width: 0.125rem;\n --bs-nav-underline-link-active-color: var(--bs-emphasis-color);\n gap: var(--bs-nav-underline-gap);\n}\n.nav-underline .nav-link {\n padding-right: 0;\n padding-left: 0;\n border-bottom: var(--bs-nav-underline-border-width) solid transparent;\n}\n.nav-underline .nav-link:hover, .nav-underline .nav-link:focus {\n border-bottom-color: currentcolor;\n}\n.nav-underline .nav-link.active,\n.nav-underline .show > .nav-link {\n font-weight: 700;\n color: var(--bs-nav-underline-link-active-color);\n border-bottom-color: currentcolor;\n}\n\n.nav-fill > .nav-link,\n.nav-fill .nav-item {\n flex: 1 1 auto;\n text-align: center;\n}\n\n.nav-justified > .nav-link,\n.nav-justified .nav-item {\n flex-grow: 1;\n flex-basis: 0;\n text-align: center;\n}\n\n.nav-fill .nav-item .nav-link,\n.nav-justified .nav-item .nav-link {\n width: 100%;\n}\n\n.tab-content > .tab-pane {\n display: none;\n}\n.tab-content > .active {\n display: block;\n}\n\n:host {\n display: flex;\n flex-direction: column;\n position: relative;\n}\n\n.flex-nowrap {\n flex-wrap: nowrap;\n}\n\n.flex-grow-1 {\n flex-grow: 1;\n}\n\n.overflow-auto {\n overflow: auto;\n}\n\n.overflow-x-auto {\n overflow-x: auto;\n}\n\n.overflow-y-hidden {\n overflow-y: hidden;\n}\n\n.text-nowrap {\n white-space: nowrap;\n}\n\n.border {\n border: var(--bs-border-width, 1px) var(--bs-border-style, solid) var(--bs-border-color, #dee2e6) !important;\n}\n\n.border-top {\n border-top: var(--bs-border-width, 1px) var(--bs-border-style, solid) var(--bs-border-color, #dee2e6) !important;\n}\n\n.tsc {\n max-height: 41px;\n overflow: hidden;\n flex-shrink: 0;\n z-index: 1;\n}\n.tsc .nav.nav-tabs {\n margin-top: 0;\n border-bottom: 0;\n}\n.tsc.bottom-tabs {\n margin-top: -1px;\n}\n.tsc.bottom-tabs .nav.nav-tabs {\n border-bottom-width: 0;\n}\n.tsc.bottom-tabs .nav.nav-tabs .nav-link {\n border: 1px solid transparent;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n border-bottom-left-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n}\n.tsc.bottom-tabs .nav.nav-tabs .nav-item {\n margin-bottom: 2px;\n margin-top: -1px;\n}\n.tsc.bottom-tabs .nav.nav-tabs .nav-item.show .nav-link,\n.tsc.bottom-tabs .nav.nav-tabs .nav-link.active {\n border-color: #fff #dee2e6 #dee2e6 #dee2e6;\n}\n\n.tsc .nav-link {\n cursor: pointer;\n background: transparent;\n font: inherit;\n text-align: inherit;\n}\n\n.tsc .nav-link.disabled {\n cursor: not-allowed;\n}\n\n.tab-content {\n margin-top: -1px;\n}`);\nexport default tabControlStyles;\n","import { LitElement, html, nothing, type TemplateResult } from 'lit';\nimport { tabControlStyles } from '../styles';\nimport type { TabsPosition } from '../types';\n\nexport interface TabActivateEventDetail {\n /** The `tab-id` of the tab the user activated. */\n tabId: string;\n /** The original DOM event (click or keydown) that triggered the activation. */\n originalEvent: Event;\n}\n\ninterface TabInfo {\n tabId: string;\n disabled: boolean;\n}\n\nconst isHidden = (el: Element): boolean =>\n el.hasAttribute('data-hidden') &&\n el.getAttribute('data-hidden') !== 'false';\n\n/**\n * <mp-tab-control>\n *\n * Bootstrap-styled tab strip. Pages live in named `${id}-content` slots and\n * headers in `${id}-header` slots. The shadow DOM dynamically projects only\n * the currently-active page via `<slot name=\"${activeId}-content\">`, so\n * inactive panels never enter the rendered tree.\n *\n * Authoring (vanilla):\n *\n * <mp-tab-control active-tab=\"overview\">\n * <span slot=\"overview-header\">Overview</span>\n * <div slot=\"overview-content\">Hello</div>\n * <span slot=\"details-header\">Details</span>\n * <div slot=\"details-content\">Details body</div>\n * </mp-tab-control>\n *\n * To mark a tab disabled, set `data-disabled` on the `*-content` element.\n *\n * Active state is **controlled by the host** — the host sets `active-tab` and\n * listens for `tab-activate` events. The Angular wrapper (`bs-tab-control`)\n * drives this via signals.\n */\nexport class MpTabControl extends LitElement {\n static override styles = [tabControlStyles];\n\n static override get observedAttributes(): string[] {\n return [\n ...(super.observedAttributes ?? []),\n 'tabs-position',\n 'border',\n 'active-tab',\n 'select-first-tab',\n ];\n }\n\n private tabs: TabInfo[] = [];\n private mutationObserver: MutationObserver | null = null;\n\n override connectedCallback(): void {\n super.connectedCallback();\n // role=\"tablist\" lives on the inner <ul> that directly contains the tab\n // buttons — we deliberately don't repeat it on the host.\n this.mutationObserver = new MutationObserver(() => this.refreshTabs());\n this.mutationObserver.observe(this, {\n childList: true,\n subtree: false,\n attributes: true,\n attributeFilter: ['slot', 'data-disabled', 'data-hidden'],\n });\n }\n\n override disconnectedCallback(): void {\n this.mutationObserver?.disconnect();\n this.mutationObserver = null;\n super.disconnectedCallback();\n }\n\n override attributeChangedCallback(\n name: string,\n oldValue: string | null,\n newValue: string | null,\n ): void {\n super.attributeChangedCallback(name, oldValue, newValue);\n if (oldValue === newValue) return;\n this.requestUpdate();\n }\n\n protected override firstUpdated(): void {\n this.refreshTabs();\n }\n\n private get tabsPosition(): TabsPosition {\n const v = this.getAttribute('tabs-position');\n return v === 'bottom' ? 'bottom' : 'top';\n }\n\n private get border(): 'full' | 'top' | 'none' {\n if (!this.hasAttribute('border')) return 'full';\n const v = this.getAttribute('border');\n if (v === 'false') return 'none';\n if (v === 'top') return 'top';\n return 'full';\n }\n\n private get selectFirstTab(): boolean {\n return this.hasAttribute('select-first-tab')\n ? this.getAttribute('select-first-tab') !== 'false'\n : true;\n }\n\n private get activeTabId(): string | null {\n return this.getAttribute('active-tab');\n }\n\n private refreshTabs(): void {\n const found = new Map<string, TabInfo>();\n for (const child of Array.from(this.children)) {\n const slot = child.getAttribute('slot');\n if (!slot) continue;\n const m = slot.match(/^(.+)-content$/);\n if (!m) continue;\n // `data-hidden` excludes a tab from the strip and content entirely.\n // Used by hosts (like the dock manager) to suppress a tab visually\n // mid-drag without churning slot projection.\n if (isHidden(child)) continue;\n const tabId = m[1];\n const disabled = child.hasAttribute('data-disabled') &&\n child.getAttribute('data-disabled') !== 'false';\n // First occurrence wins on duplicate slot names.\n if (!found.has(tabId)) {\n found.set(tabId, { tabId, disabled });\n }\n }\n this.tabs = Array.from(found.values());\n this.requestUpdate();\n }\n\n private resolvedActiveTabId(): string | null {\n const explicit = this.activeTabId;\n if (\n explicit !== null &&\n this.tabs.some((t) => t.tabId === explicit && !t.disabled)\n ) {\n return explicit;\n }\n if (!this.selectFirstTab) return null;\n const firstEnabled = this.tabs.find((t) => !t.disabled);\n return firstEnabled?.tabId ?? null;\n }\n\n override render(): TemplateResult {\n const activeId = this.resolvedActiveTabId();\n const strip = html`\n <div class=\"tsc${this.tabsPosition === 'bottom' ? ' bottom-tabs' : ''}\">\n <ul\n class=\"nav nav-tabs flex-nowrap overflow-x-auto overflow-y-hidden\"\n role=\"tablist\"\n >\n ${this.tabs.map((tab) => this.renderTabHeader(tab, activeId))}\n </ul>\n </div>\n `;\n const borderMode = this.border;\n const borderClass =\n borderMode === 'none'\n ? ''\n : borderMode === 'top'\n ? ' border-top'\n : activeId\n ? ' border'\n : ' border-top';\n const content = html`\n <div\n class=\"tab-content flex-grow-1 overflow-auto${borderClass}\"\n >\n <slot name=${activeId ? `${activeId}-content` : '__none__'}></slot>\n </div>\n `;\n return html`\n ${this.tabsPosition === 'top' ? strip : nothing}\n ${content}\n ${this.tabsPosition === 'bottom' ? strip : nothing}\n `;\n }\n\n private renderTabHeader(\n tab: TabInfo,\n activeId: string | null,\n ): TemplateResult {\n const isActive = tab.tabId === activeId;\n return html`\n <li class=\"nav-item\" role=\"presentation\">\n <button\n type=\"button\"\n class=\"nav-link text-nowrap${isActive ? ' active' : ''}${tab.disabled\n ? ' disabled'\n : ''}\"\n role=\"tab\"\n id=${`${tab.tabId}-header-button`}\n aria-controls=${`${tab.tabId}-panel`}\n aria-selected=${isActive ? 'true' : 'false'}\n ?disabled=${tab.disabled}\n tabindex=${tab.disabled ? -1 : isActive ? 0 : -1}\n @click=${(ev: Event) => this.activate(tab, ev)}\n @keydown=${(ev: KeyboardEvent) => this.handleKeydown(tab, ev)}\n >\n <slot name=${`${tab.tabId}-header`}></slot>\n </button>\n </li>\n `;\n }\n\n private activate(tab: TabInfo, ev: Event): void {\n if (tab.disabled) return;\n ev.preventDefault();\n this.dispatchEvent(\n new CustomEvent<TabActivateEventDetail>('tab-activate', {\n detail: { tabId: tab.tabId, originalEvent: ev },\n bubbles: true,\n composed: true,\n }),\n );\n this.setAttribute('active-tab', tab.tabId);\n }\n\n private handleKeydown(tab: TabInfo, ev: KeyboardEvent): void {\n switch (ev.key) {\n case 'Enter':\n case ' ':\n this.activate(tab, ev);\n return;\n case 'Home':\n case 'End': {\n ev.preventDefault();\n const enabled = this.tabs.filter((t) => !t.disabled);\n if (enabled.length === 0) return;\n const target = ev.key === 'Home' ? enabled[0] : enabled[enabled.length - 1];\n this.moveFocusAndActivate(target, ev);\n return;\n }\n case 'ArrowLeft':\n case 'ArrowRight': {\n ev.preventDefault();\n const dir = ev.key === 'ArrowRight' ? 1 : -1;\n const enabled = this.tabs.filter((t) => !t.disabled);\n if (enabled.length === 0) return;\n const currentIdx = enabled.findIndex((t) => t.tabId === tab.tabId);\n const nextIdx =\n (currentIdx + dir + enabled.length) % enabled.length;\n this.moveFocusAndActivate(enabled[nextIdx], ev);\n return;\n }\n }\n }\n\n private moveFocusAndActivate(target: TabInfo, ev: Event): void {\n this.setAttribute('active-tab', target.tabId);\n const button = this.shadowRoot?.querySelector<HTMLButtonElement>(\n `button[id=\"${target.tabId}-header-button\"]`,\n );\n button?.focus();\n this.dispatchEvent(\n new CustomEvent<TabActivateEventDetail>('tab-activate', {\n detail: { tabId: target.tabId, originalEvent: ev },\n bubbles: true,\n composed: true,\n }),\n );\n }\n}\n\nif (\n typeof customElements !== 'undefined' &&\n !customElements.get('mp-tab-control')\n) {\n customElements.define('mp-tab-control', MpTabControl);\n}\n","import { LitElement, html, css, type TemplateResult } from 'lit';\n\n/**\n * <mp-tab-page>\n *\n * Optional convenience wrapper for vanilla consumers. Sets `slot=\"${tabId}-content\"`\n * on itself based on its `tab-id` attribute, so the parent `<mp-tab-control>`\n * picks it up via named-slot projection.\n *\n * Also mirrors `disabled` to `data-disabled` so the tab-control can read the\n * disabled state without inspecting child types.\n *\n * Use directly:\n *\n * <mp-tab-control>\n * <span slot=\"t1-header\">Tab 1</span>\n * <mp-tab-page tab-id=\"t1\">Content 1</mp-tab-page>\n * </mp-tab-control>\n *\n * Or skip this element entirely and put the slot/data-disabled attributes\n * directly on whatever element holds your tab content:\n *\n * <mp-tab-control>\n * <span slot=\"t1-header\">Tab 1</span>\n * <div slot=\"t1-content\">Content 1</div>\n * </mp-tab-control>\n */\nexport class MpTabPage extends LitElement {\n static override styles = css`\n :host {\n display: block;\n }\n `;\n\n static override get observedAttributes(): string[] {\n return [\n ...(super.observedAttributes ?? []),\n 'tab-id',\n 'disabled',\n ];\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.syncSlot();\n this.syncDisabled();\n }\n\n override attributeChangedCallback(\n name: string,\n oldValue: string | null,\n newValue: string | null,\n ): void {\n super.attributeChangedCallback(name, oldValue, newValue);\n if (oldValue === newValue) return;\n if (name === 'tab-id') this.syncSlot();\n if (name === 'disabled') this.syncDisabled();\n }\n\n private syncSlot(): void {\n const tabId = this.getAttribute('tab-id');\n if (tabId) {\n this.setAttribute('slot', `${tabId}-content`);\n } else {\n this.removeAttribute('slot');\n }\n }\n\n private syncDisabled(): void {\n if (this.hasAttribute('disabled')) {\n this.setAttribute('data-disabled', '');\n } else {\n this.removeAttribute('data-disabled');\n }\n }\n\n override render(): TemplateResult {\n return html`<slot></slot>`;\n }\n}\n\nif (\n typeof customElements !== 'undefined' &&\n !customElements.get('mp-tab-page')\n) {\n customElements.define('mp-tab-page', MpTabPage);\n}\n","// Components\nexport { MpTabControl, MpTabPage } from './components';\nexport type { TabActivateEventDetail } from './components';\n\n// Types\nexport type { TabsPosition } from './types';\n\n// Styles (for custom styling extensions)\nexport { tabControlStyles } from './styles';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -15,10 +15,10 @@ class BsWordCountPipe {
15
15
  .length;
16
16
  }
17
17
  }
18
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: BsWordCountPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
19
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.1.6", ngImport: i0, type: BsWordCountPipe, isStandalone: true, name: "bsWordCount" }); }
18
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: BsWordCountPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
19
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.2.11", ngImport: i0, type: BsWordCountPipe, isStandalone: true, name: "bsWordCount" }); }
20
20
  }
21
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: BsWordCountPipe, decorators: [{
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: BsWordCountPipe, decorators: [{
22
22
  type: Pipe,
23
23
  args: [{
24
24
  name: 'bsWordCount',
@@ -1 +1 @@
1
- {"version":3,"file":"mintplayer-ng-bootstrap-word-count.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/word-count/src/word-count.pipe.ts","../../../../libs/mintplayer-ng-bootstrap/word-count/mintplayer-ng-bootstrap-word-count.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'bsWordCount',\n pure: true,\n})\nexport class BsWordCountPipe implements PipeTransform {\n transform(value: string) {\n if ((value === null) || (value === '')) {\n return 0;\n } else {\n return value\n .replace(/(^\\s+)|(\\s+$)/gi, '')\n .replace(/\\s{2,}/gi, ' ')\n .split(' ')\n .filter(w => w !== '')\n .length;\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;MAMa,eAAe,CAAA;AAC1B,IAAA,SAAS,CAAC,KAAa,EAAA;AACrB,QAAA,IAAI,CAAC,KAAK,KAAK,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC,EAAE;AACtC,YAAA,OAAO,CAAC;QACV;aAAO;AACL,YAAA,OAAO;AACJ,iBAAA,OAAO,CAAC,iBAAiB,EAAE,EAAE;AAC7B,iBAAA,OAAO,CAAC,UAAU,EAAE,GAAG;iBACvB,KAAK,CAAC,GAAG;iBACT,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE;AACpB,iBAAA,MAAM;QACX;IACF;8GAZW,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4GAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,aAAA,EAAA,CAAA,CAAA;;2FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAJ3B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,aAAa;AACnB,oBAAA,IAAI,EAAE,IAAI;AACX,iBAAA;;;ACLD;;AAEG;;;;"}
1
+ {"version":3,"file":"mintplayer-ng-bootstrap-word-count.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/word-count/src/word-count.pipe.ts","../../../../libs/mintplayer-ng-bootstrap/word-count/mintplayer-ng-bootstrap-word-count.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'bsWordCount',\n pure: true,\n})\nexport class BsWordCountPipe implements PipeTransform {\n transform(value: string) {\n if ((value === null) || (value === '')) {\n return 0;\n } else {\n return value\n .replace(/(^\\s+)|(\\s+$)/gi, '')\n .replace(/\\s{2,}/gi, ' ')\n .split(' ')\n .filter(w => w !== '')\n .length;\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;MAMa,eAAe,CAAA;AAC1B,IAAA,SAAS,CAAC,KAAa,EAAA;AACrB,QAAA,IAAI,CAAC,KAAK,KAAK,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC,EAAE;AACtC,YAAA,OAAO,CAAC;QACV;aAAO;AACL,YAAA,OAAO;AACJ,iBAAA,OAAO,CAAC,iBAAiB,EAAE,EAAE;AAC7B,iBAAA,OAAO,CAAC,UAAU,EAAE,GAAG;iBACvB,KAAK,CAAC,GAAG;iBACT,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE;AACpB,iBAAA,MAAM;QACX;IACF;+GAZW,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;6GAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,aAAA,EAAA,CAAA,CAAA;;4FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAJ3B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,aAAa;AACnB,oBAAA,IAAI,EAAE,IAAI;AACX,iBAAA;;;ACLD;;AAEG;;;;"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@mintplayer/ng-bootstrap",
3
3
  "private": false,
4
- "version": "21.22.0",
4
+ "version": "21.23.0",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "https://github.com/MintPlayer/mintplayer-ng-bootstrap",
@@ -348,6 +348,22 @@
348
348
  "types": "./types/mintplayer-ng-bootstrap-virtual-datatable.d.ts",
349
349
  "default": "./fesm2022/mintplayer-ng-bootstrap-virtual-datatable.mjs"
350
350
  },
351
+ "./web-components/scheduler": {
352
+ "types": "./types/mintplayer-ng-bootstrap-web-components-scheduler.d.ts",
353
+ "default": "./fesm2022/mintplayer-ng-bootstrap-web-components-scheduler.mjs"
354
+ },
355
+ "./web-components/scheduler-core": {
356
+ "types": "./types/mintplayer-ng-bootstrap-web-components-scheduler-core.d.ts",
357
+ "default": "./fesm2022/mintplayer-ng-bootstrap-web-components-scheduler-core.mjs"
358
+ },
359
+ "./web-components/splitter": {
360
+ "types": "./types/mintplayer-ng-bootstrap-web-components-splitter.d.ts",
361
+ "default": "./fesm2022/mintplayer-ng-bootstrap-web-components-splitter.mjs"
362
+ },
363
+ "./web-components/tab-control": {
364
+ "types": "./types/mintplayer-ng-bootstrap-web-components-tab-control.d.ts",
365
+ "default": "./fesm2022/mintplayer-ng-bootstrap-web-components-tab-control.mjs"
366
+ },
351
367
  "./word-count": {
352
368
  "types": "./types/mintplayer-ng-bootstrap-word-count.d.ts",
353
369
  "default": "./fesm2022/mintplayer-ng-bootstrap-word-count.mjs"
@@ -369,15 +385,13 @@
369
385
  "@mintplayer/ng-animations": "^21.1.0",
370
386
  "@mintplayer/pagination": "^2.3.0",
371
387
  "@mintplayer/ng-focus-on-load": "^21.2.0",
372
- "@mintplayer/ng-swiper": "^21.3.0",
373
- "@mintplayer/scheduler-core": "^1.1.0",
374
- "@mintplayer/scheduler-wc": "^2.0.0",
375
- "@mintplayer/splitter": "^2.0.0"
388
+ "@mintplayer/ng-swiper": "^21.3.0"
376
389
  },
377
390
  "dependencies": {
378
391
  "tslib": "^2.3.0"
379
392
  },
380
393
  "module": "fesm2022/mintplayer-ng-bootstrap.mjs",
381
394
  "typings": "types/mintplayer-ng-bootstrap.d.ts",
382
- "sideEffects": false
395
+ "sideEffects": false,
396
+ "type": "module"
383
397
  }
@@ -98,22 +98,19 @@ declare class MintDockManagerElement extends LitElement {
98
98
  private floatingLayouts;
99
99
  private titles;
100
100
  private pendingTabDragMetrics;
101
- private resizeState;
102
101
  private dragState;
103
102
  private floatingDragState;
104
103
  private floatingResizeState;
105
104
  private intersectionRaf;
106
- private intersectionHandles;
105
+ private rootResizeObserver;
106
+ private dockedMutationObserver;
107
107
  private cornerResizeState;
108
108
  private pointerTrackingActive;
109
109
  private dragPointerTrackingActive;
110
110
  private lastDragPointerPosition;
111
- private activeSnapAxis;
112
- private activeSnapTargets;
113
111
  private cornerSnapXTargets;
114
112
  private cornerSnapYTargets;
115
113
  private showSnapMarkers;
116
- private renderSnapMarkersForDivider;
117
114
  private renderSnapMarkersForCorner;
118
115
  private clearSnapMarkers;
119
116
  private pendingDragEndTimeout;
@@ -126,6 +123,13 @@ declare class MintDockManagerElement extends LitElement {
126
123
  attributeChangedCallback(name: string, _oldValue: string | null, newValue: string | null): void;
127
124
  get layout(): DockLayoutSnapshot;
128
125
  set layout(value: DockLayoutSnapshot | DockLayout | DockLayoutNode | null);
126
+ /**
127
+ * True while the user is actively interacting with the dock — pane drag,
128
+ * floating window drag, floating window resize, or intersection corner
129
+ * resize. The `set layout` setter consults this to refuse external
130
+ * round-trips that would overwrite in-progress drag state.
131
+ */
132
+ private isInteracting;
129
133
  get snapshot(): DockLayoutSnapshot;
130
134
  toJSON(): DockLayoutSnapshot;
131
135
  private resolveDocument;
@@ -135,7 +139,7 @@ declare class MintDockManagerElement extends LitElement {
135
139
  private renderLayout;
136
140
  private renderNode;
137
141
  private renderFloatingPanes;
138
- private onWindowResize;
142
+ private onSplitterResize;
139
143
  private scheduleRenderIntersectionHandles;
140
144
  private renderIntersectionHandles;
141
145
  private beginCornerResize;
@@ -158,19 +162,53 @@ declare class MintDockManagerElement extends LitElement {
158
162
  private updateFloatingWindowTitle;
159
163
  private renderSplit;
160
164
  private renderStack;
161
- private beginResize;
165
+ /**
166
+ * Returns the strip (`.tsc`) element inside an `<mp-tab-control>`'s shadow
167
+ * DOM. Used by drag/drop logic that needs the strip's geometry instead of
168
+ * the host element's bounds.
169
+ */
170
+ private getStackStripEl;
171
+ /**
172
+ * Returns the rendered tab buttons inside an `<mp-tab-control>`'s shadow
173
+ * strip — the light-DOM `.dock-tab` spans the dock owns are projected into
174
+ * these buttons via `<slot>`. Use these for geometry / position queries
175
+ * (insert-index computation, drop-indicator placement). Use the light-DOM
176
+ * `.dock-tab` spans for data queries (paneName, drag listeners).
177
+ */
178
+ private getStackTabButtons;
179
+ /**
180
+ * Returns the dividers inside an `<mp-splitter>`'s shadow DOM, in DOM order.
181
+ * mp-splitter renders one `.divider` between each pair of adjacent panels,
182
+ * so for an N-child split, length N-1.
183
+ */
184
+ private getSplitterDividers;
185
+ /**
186
+ * Returns the panel wrappers inside an `<mp-splitter>`'s shadow DOM, in
187
+ * DOM order. These are the elements mp-splitter sizes (via setPanelSizes)
188
+ * during a divider drag — the dock reads their geometry for intersection
189
+ * handle math and snap markers.
190
+ */
191
+ private getSplitterPanels;
192
+ /**
193
+ * Locate the rendered `<mp-splitter>` element for a given DockPath
194
+ * `segments` value (the split-tree path). Searches the dock's shadow.
195
+ */
196
+ private findSplitterByPath;
162
197
  private onPointerMove;
163
198
  private onPointerUp;
164
199
  private captureTabDragMetrics;
165
200
  private clearPendingTabDragMetrics;
201
+ /**
202
+ * Pointerdown handler arms a "may become a drag" gesture. Once the pointer
203
+ * moves past `threshold` pixels we promote it to an actual pane drag via
204
+ * {@link beginPaneDrag}; if the user releases first we just clear the
205
+ * pending tab metrics. All listeners self-clean on resolve so the gesture
206
+ * stays scoped to a single pointerdown.
207
+ */
208
+ private armPaneDragGesture;
166
209
  private beginPaneDrag;
167
210
  private preparePaneDragSource;
168
211
  private endPaneDrag;
169
- private onDragOver;
170
- private updateDraggedFloatingPosition;
171
- private onGlobalDragOver;
172
- private onDrag;
173
- private onGlobalDragEnd;
174
212
  private updateDraggedFloatingPositionFromPoint;
175
213
  private updatePaneDragDropTargetFromPoint;
176
214
  private isPointerOverSourceHeader;
@@ -180,18 +218,17 @@ declare class MintDockManagerElement extends LitElement {
180
218
  private clearHeaderDragPlaceholder;
181
219
  private startDragPointerTracking;
182
220
  private stopDragPointerTracking;
183
- private onDragMouseMove;
184
- private onDragTouchMove;
185
- private onDragMouseUp;
221
+ private onDragPointerMove;
222
+ private onDragPointerUp;
223
+ private onDragPointerCancel;
186
224
  private convertPendingTabDragToFloating;
225
+ private markDraggedFloatingWrapper;
226
+ private clearDraggedFloatingWrapperMarkers;
187
227
  private computeHeaderInsertIndex;
188
228
  private reorderPaneInLocationAtIndex;
189
- private onDragTouchEnd;
190
229
  private finalizeDropFromPoint;
191
230
  private clearPendingDragEndTimeout;
192
231
  private scheduleDeferredDragEnd;
193
- private onDrop;
194
- private onDragLeave;
195
232
  private handleDrop;
196
233
  private handleFloatingStackDrop;
197
234
  private insertWeight;
@@ -207,7 +244,6 @@ declare class MintDockManagerElement extends LitElement {
207
244
  private showDropIndicator;
208
245
  private hideDropIndicator;
209
246
  private findStackAtPoint;
210
- private findStackElement;
211
247
  private findStackInTargets;
212
248
  private activatePane;
213
249
  private getNodeAtPath;
@@ -1,7 +1,7 @@
1
1
  import * as _angular_core from '@angular/core';
2
2
  import { AfterViewInit, OnDestroy } from '@angular/core';
3
- import { ViewType, SchedulerEvent, Resource, ResourceGroup, SchedulerOptions } from '@mintplayer/scheduler-core';
4
- export { PreviewEvent, Resource, ResourceGroup, SchedulerEvent, SchedulerEventPart, SchedulerOptions, TimeSlot, ViewType, generateEventId, generateGroupId, generateResourceId } from '@mintplayer/scheduler-core';
3
+ import { ViewType, SchedulerEvent, Resource, ResourceGroup, SchedulerOptions } from '@mintplayer/ng-bootstrap/web-components/scheduler-core';
4
+ export { PreviewEvent, Resource, ResourceGroup, SchedulerEvent, SchedulerEventPart, SchedulerOptions, TimeSlot, ViewType, generateEventId, generateGroupId, generateResourceId } from '@mintplayer/ng-bootstrap/web-components/scheduler-core';
5
5
 
6
6
  /**
7
7
  * Event click event detail
@@ -1,6 +1,5 @@
1
1
  import * as _angular_core from '@angular/core';
2
2
  import { TemplateRef, ElementRef } from '@angular/core';
3
- import { CdkDragStart, CdkDragDrop } from '@angular/cdk/drag-drop';
4
3
 
5
4
  declare class BsTabPageHeaderDirective {
6
5
  template: TemplateRef<any>;
@@ -14,40 +13,37 @@ declare class BsTabPageComponent {
14
13
  constructor();
15
14
  tabId: _angular_core.WritableSignal<number>;
16
15
  tabName: _angular_core.Signal<string>;
16
+ contentSlotName: _angular_core.Signal<string | null>;
17
17
  disabled: _angular_core.InputSignal<boolean>;
18
18
  readonly headerTemplate: _angular_core.Signal<BsTabPageHeaderDirective | undefined>;
19
19
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<BsTabPageComponent, never>;
20
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<BsTabPageComponent, "bs-tab-page", never, { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, ["headerTemplate"], ["*"], true, never>;
20
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<BsTabPageComponent, "bs-tab-page", never, { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, ["headerTemplate"], ["*", "*"], true, never>;
21
21
  }
22
22
 
23
23
  type BsTabsPosition = 'top' | 'bottom';
24
24
 
25
25
  declare class BsTabControlComponent {
26
26
  element: ElementRef<any>;
27
+ private platformId;
28
+ readonly isServerSide: boolean;
27
29
  constructor();
28
30
  border: _angular_core.InputSignal<boolean>;
29
- restrictDragging: _angular_core.InputSignal<boolean>;
30
31
  selectFirstTab: _angular_core.InputSignal<boolean>;
31
32
  tabsPosition: _angular_core.InputSignal<BsTabsPosition>;
32
- allowDragDrop: _angular_core.InputSignal<boolean>;
33
- dragBoundarySelector: _angular_core.Signal<"ul" | "">;
34
33
  readonly tabPages: _angular_core.Signal<readonly BsTabPageComponent[]>;
35
34
  activeTab: _angular_core.WritableSignal<BsTabPageComponent | null>;
36
- orderedTabPages: _angular_core.WritableSignal<BsTabPageComponent[]>;
37
35
  tabControlId: _angular_core.WritableSignal<number>;
38
36
  tabControlName: _angular_core.Signal<string>;
39
37
  topTabs: _angular_core.Signal<boolean>;
40
38
  bottomTabs: _angular_core.Signal<boolean>;
41
- disableDragDrop: _angular_core.Signal<boolean>;
42
39
  checkedTab: _angular_core.Signal<BsTabPageComponent | null>;
40
+ activeTabName: _angular_core.Signal<string | null>;
43
41
  static tabControlCounter: number;
44
42
  tabCounter: number;
45
43
  setActiveTab(tab: BsTabPageComponent, event?: Event): boolean;
46
- headerKeydown(tab: BsTabPageComponent, event: KeyboardEvent): void;
47
- startDragTab(ev: CdkDragStart<BsTabPageComponent>): void;
48
- moveTab(ev: CdkDragDrop<readonly BsTabPageComponent[]>): void;
44
+ onTabActivate(event: Event): void;
49
45
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<BsTabControlComponent, never>;
50
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<BsTabControlComponent, "bs-tab-control", never, { "border": { "alias": "border"; "required": false; "isSignal": true; }; "restrictDragging": { "alias": "restrictDragging"; "required": false; "isSignal": true; }; "selectFirstTab": { "alias": "selectFirstTab"; "required": false; "isSignal": true; }; "tabsPosition": { "alias": "tabsPosition"; "required": false; "isSignal": true; }; "allowDragDrop": { "alias": "allowDragDrop"; "required": false; "isSignal": true; }; }, {}, ["tabPages"], ["*"], true, never>;
46
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<BsTabControlComponent, "bs-tab-control", never, { "border": { "alias": "border"; "required": false; "isSignal": true; }; "selectFirstTab": { "alias": "selectFirstTab"; "required": false; "isSignal": true; }; "tabsPosition": { "alias": "tabsPosition"; "required": false; "isSignal": true; }; }, {}, ["tabPages"], ["*", "*"], true, never>;
51
47
  }
52
48
 
53
49
  export { BsTabControlComponent, BsTabPageComponent, BsTabPageHeaderDirective };