udp-stencil-component-library 25.18.2-beta.5 → 25.18.2-beta.6

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 (317) hide show
  1. package/dist/cjs/add-map-feature-popup_4.cjs.entry.js +12 -12
  2. package/dist/cjs/advanced-search_12.cjs.entry.js +1 -1
  3. package/dist/cjs/ag-grid-base.ghost-render.grid-header.hint-panel.udp-dialog.udp-list-item.entry.cjs.js.map +1 -1
  4. package/dist/cjs/ag-grid-base_6.cjs.entry.js +27 -11
  5. package/dist/cjs/api-method-instance-grid.cjs.entry.js +1 -1
  6. package/dist/cjs/app-bar.cjs.entry.js +1 -1
  7. package/dist/cjs/check-box.cjs.entry.js +2 -2
  8. package/dist/cjs/chip-section.cjs.entry.js +2 -2
  9. package/dist/cjs/client-side-grid_2.cjs.entry.js +3 -3
  10. package/dist/cjs/entity-maintenance-grid.cjs.entry.js +1 -1
  11. package/dist/cjs/feature-details-card_2.cjs.entry.js +5 -5
  12. package/dist/cjs/filter-conditions_7.cjs.entry.js +2 -2
  13. package/dist/cjs/form-metadata-display_8.cjs.entry.js +6 -6
  14. package/dist/cjs/index-CGCOXUJE.js +10 -10
  15. package/dist/cjs/loader.cjs.js +1 -1
  16. package/dist/cjs/map-component_2.cjs.entry.js +2 -2
  17. package/dist/cjs/numeric-field_5.cjs.entry.js +15 -15
  18. package/dist/cjs/primary-action-header.udp-tabs.entry.cjs.js.map +1 -0
  19. package/dist/cjs/{primary-action-header_3.cjs.entry.js → primary-action-header_2.cjs.entry.js} +4 -266
  20. package/dist/cjs/resource-timeline-calendar.cjs.entry.js +1 -1
  21. package/dist/cjs/search-method-grid.cjs.entry.js +2 -1
  22. package/dist/cjs/search-method-grid.entry.cjs.js.map +1 -1
  23. package/dist/cjs/server-side-grid.cjs.entry.js +1 -1
  24. package/dist/cjs/side-sheet-container.cjs.entry.js +1 -1
  25. package/dist/cjs/stencil-library.cjs.js +1 -1
  26. package/dist/cjs/stencil-toggle.cjs.entry.js +4 -4
  27. package/dist/cjs/text-field_2.cjs.entry.js +7 -7
  28. package/dist/cjs/udp-chip_3.cjs.entry.js +1 -1
  29. package/dist/cjs/udp-container-query-grid-item.cjs.entry.js +1 -1
  30. package/dist/cjs/udp-container-query-grid.cjs.entry.js +1 -1
  31. package/dist/cjs/udp-container-query.cjs.entry.js +2 -2
  32. package/dist/cjs/udp-container.cjs.entry.js +35 -0
  33. package/dist/cjs/udp-container.entry.cjs.js.map +1 -0
  34. package/dist/cjs/udp-date-range-selector.cjs.entry.js +1 -1
  35. package/dist/cjs/udp-dynamic-container-with-menu.cjs.entry.js +1 -1
  36. package/dist/cjs/udp-linear-loader.udp-side-sheet.entry.cjs.js.map +1 -0
  37. package/dist/cjs/udp-linear-loader_2.cjs.entry.js +289 -0
  38. package/dist/cjs/udp-map.cjs.entry.js +3 -3
  39. package/dist/cjs/udp-menu-item.udp-pop-over.entry.cjs.js.map +1 -0
  40. package/dist/cjs/{udp-pop-over.cjs.entry.js → udp-menu-item_2.cjs.entry.js} +23 -1
  41. package/dist/cjs/udp-page.cjs.entry.js +1 -1
  42. package/dist/cjs/udp-skeleton-loading.cjs.entry.js +1 -1
  43. package/dist/cjs/udp-split-screen.cjs.entry.js +1 -1
  44. package/dist/cjs/udp-stepper-demo.cjs.entry.js +1 -1
  45. package/dist/cjs/udp-tab-panel.cjs.entry.js +2 -2
  46. package/dist/cjs/udp-tab.cjs.entry.js +1 -1
  47. package/dist/cjs/udp-timeline-connector.cjs.entry.js +1 -1
  48. package/dist/cjs/udp-timeline-dot.cjs.entry.js +1 -1
  49. package/dist/cjs/udp-timeline-item.cjs.entry.js +2 -2
  50. package/dist/cjs/udp-timeline-separator.cjs.entry.js +1 -1
  51. package/dist/cjs/udp-timeline.cjs.entry.js +1 -1
  52. package/dist/cjs/udp-vertical-spacer.cjs.entry.js +1 -1
  53. package/dist/collection/components/grid/new-grid/ag-grid-base.js +2 -1
  54. package/dist/collection/components/grid/new-grid/ag-grid-base.js.map +1 -1
  55. package/dist/collection/components/grid/new-grid/api-method-instance-grid.js +1 -1
  56. package/dist/collection/components/grid/new-grid/client-side-grid.js +1 -1
  57. package/dist/collection/components/grid/new-grid/datasources/searchMethodDatasource.js +1 -0
  58. package/dist/collection/components/grid/new-grid/datasources/searchMethodDatasource.js.map +1 -1
  59. package/dist/collection/components/grid/new-grid/entity-maintenance-grid.js +1 -1
  60. package/dist/collection/components/grid/new-grid/gridFunctions/bulkActions.js +24 -9
  61. package/dist/collection/components/grid/new-grid/gridFunctions/bulkActions.js.map +1 -1
  62. package/dist/collection/components/grid/new-grid/interfaces/grid.js.map +1 -1
  63. package/dist/collection/components/grid/new-grid/search-method-grid.js +1 -1
  64. package/dist/collection/components/grid/new-grid/server-side-grid.js +1 -1
  65. package/dist/collection/components/grid/resource-timeline-calendar/resource-timeline-calendar.js +1 -1
  66. package/dist/collection/components/grid/resource-timeline-calendar/resource-timeline-primary-bar.js +2 -2
  67. package/dist/collection/components/inputs/checkbox/check-box.js +2 -2
  68. package/dist/collection/components/inputs/date-range-selector/udp-date-range-selector.js +1 -1
  69. package/dist/collection/components/inputs/date-selector/udp-date-selector.js +3 -3
  70. package/dist/collection/components/inputs/date-time-selector/udp-datetime-selector.js +3 -3
  71. package/dist/collection/components/inputs/form metadata display/form-metadata-display.js +1 -1
  72. package/dist/collection/components/inputs/image-upload/image-upload.js +1 -1
  73. package/dist/collection/components/inputs/numeric-field/numeric-field.js +3 -3
  74. package/dist/collection/components/inputs/signature-input/signature-input.js +2 -2
  75. package/dist/collection/components/inputs/tally/tally.js +2 -2
  76. package/dist/collection/components/inputs/text-area/text-area.js +3 -3
  77. package/dist/collection/components/inputs/text-field/text-field.js +3 -3
  78. package/dist/collection/components/inputs/time-selector/udp-time-selector.js +3 -3
  79. package/dist/collection/components/inputs/toggle/stencil-toggle.js +4 -4
  80. package/dist/collection/components/inputs/udp-selector/udp-selector.js +4 -4
  81. package/dist/collection/components/layout/udp-container/udp-container.js +2 -2
  82. package/dist/collection/components/layout/udp-container-query/udp-container-query.js +2 -2
  83. package/dist/collection/components/layout/udp-container-query-grid/udp-container-query-grid.js +1 -1
  84. package/dist/collection/components/layout/udp-container-query-grid-item/udp-container-query-grid-item.js +1 -1
  85. package/dist/collection/components/layout/udp-page/udp-page.js +1 -1
  86. package/dist/collection/components/layout/udp-split-screen/udp-split-screen.js +1 -1
  87. package/dist/collection/components/layout/udp-vertical-spacer.js +1 -1
  88. package/dist/collection/components/loaders/udp-grid-loader/udp-grid-loader.js +2 -2
  89. package/dist/collection/components/loaders/udp-linear-loader/udp-linear-loader.js +1 -1
  90. package/dist/collection/components/loaders/udp-skeleton-loading.js +1 -1
  91. package/dist/collection/components/map/udp-map/map-component.js +1 -1
  92. package/dist/collection/components/map/udp-map/popups/add-map-feature-popup.js +3 -3
  93. package/dist/collection/components/map/udp-map/popups/feature-details-card/feature-details-card.js +4 -4
  94. package/dist/collection/components/map/udp-map/popups/feature-details-popup.js +1 -1
  95. package/dist/collection/components/map/udp-map/popups/select-layer-popup.js +2 -2
  96. package/dist/collection/components/map/udp-map/popups/split-line-popup.js +1 -1
  97. package/dist/collection/components/map/udp-map/toolbar/map-toolbar.js +6 -6
  98. package/dist/collection/components/map/udp-map/udp-map-toolbar.js +1 -1
  99. package/dist/collection/components/map/udp-map/udp-map.js +3 -3
  100. package/dist/collection/components/menu/menu-item/udp-menu-item.js +1 -1
  101. package/dist/collection/components/menu/udp-menu.js +1 -1
  102. package/dist/collection/components/stepper/udp-stepper-demo.js +1 -1
  103. package/dist/collection/components/tabs/tab/tabs/udp-tabs.js +2 -2
  104. package/dist/collection/components/tabs/tab/udp-tab.js +1 -1
  105. package/dist/collection/components/tabs/udp-tab-panel/udp-tab-panel.js +2 -2
  106. package/dist/collection/components/timeline/udp-timeline-connector.js +1 -1
  107. package/dist/collection/components/timeline/udp-timeline-dot.js +1 -1
  108. package/dist/collection/components/timeline/udp-timeline-item.js +2 -2
  109. package/dist/collection/components/timeline/udp-timeline-separator.js +1 -1
  110. package/dist/collection/components/timeline/udp-timeline.js +1 -1
  111. package/dist/collection/components/toolbars/app-bar/app-bar.js +1 -1
  112. package/dist/collection/components/util/ghost-render/ghost-render.js +1 -1
  113. package/dist/collection/deprecated/components/side-sheet/side-sheet-container.js +1 -1
  114. package/dist/collection/deprecated/components/side-sheet/side-sheet.js +1 -1
  115. package/dist/collection/udp-utilities/layout/udp-dynamic-container-with-menu/chip-section/chip-section.js +2 -2
  116. package/dist/collection/udp-utilities/layout/udp-dynamic-container-with-menu/udp-dynamic-container-with-menu.js +1 -1
  117. package/dist/components/add-map-feature-popup2.js +3 -3
  118. package/dist/components/ag-grid-base2.js +78 -38
  119. package/dist/components/ag-grid-base2.js.map +1 -1
  120. package/dist/components/api-method-instance-grid.js +59 -35
  121. package/dist/components/api-method-instance-grid.js.map +1 -1
  122. package/dist/components/app-bar.js +1 -1
  123. package/dist/components/check-box.js +2 -2
  124. package/dist/components/chip-section.js +2 -2
  125. package/dist/components/client-side-grid2.js +55 -31
  126. package/dist/components/client-side-grid2.js.map +1 -1
  127. package/dist/components/entity-maintenance-grid.js +1 -1
  128. package/dist/components/feature-details-card2.js +4 -4
  129. package/dist/components/feature-details-popup2.js +1 -1
  130. package/dist/components/form-metadata-display2.js +1 -1
  131. package/dist/components/ghost-render2.js +1 -1
  132. package/dist/components/image-upload2.js +1 -1
  133. package/dist/components/map-component2.js +1 -1
  134. package/dist/components/map-toolbar2.js +6 -6
  135. package/dist/components/numeric-field2.js +3 -3
  136. package/dist/components/resource-timeline-calendar.js +59 -35
  137. package/dist/components/resource-timeline-calendar.js.map +1 -1
  138. package/dist/components/resource-timeline-primary-bar2.js +2 -2
  139. package/dist/components/search-method-grid2.js +58 -33
  140. package/dist/components/search-method-grid2.js.map +1 -1
  141. package/dist/components/select-layer-popup2.js +2 -2
  142. package/dist/components/server-side-grid2.js +55 -31
  143. package/dist/components/server-side-grid2.js.map +1 -1
  144. package/dist/components/side-sheet-container2.js +1 -1
  145. package/dist/components/side-sheet2.js +1 -1
  146. package/dist/components/signature-input2.js +2 -2
  147. package/dist/components/split-line-popup2.js +1 -1
  148. package/dist/components/stencil-toggle2.js +4 -4
  149. package/dist/components/tally.js +2 -2
  150. package/dist/components/text-area2.js +3 -3
  151. package/dist/components/text-field2.js +3 -3
  152. package/dist/components/udp-container-query-grid-item.js +1 -1
  153. package/dist/components/udp-container-query-grid.js +1 -1
  154. package/dist/components/udp-container-query2.js +2 -2
  155. package/dist/components/udp-container2.js +2 -2
  156. package/dist/components/udp-date-range-selector.js +1 -1
  157. package/dist/components/udp-date-selector2.js +3 -3
  158. package/dist/components/udp-datetime-selector2.js +3 -3
  159. package/dist/components/udp-dynamic-container-with-menu2.js +1 -1
  160. package/dist/components/udp-grid-loader2.js +2 -2
  161. package/dist/components/udp-linear-loader2.js +1 -1
  162. package/dist/components/udp-map-toolbar2.js +1 -1
  163. package/dist/components/udp-map.js +3 -3
  164. package/dist/components/udp-menu-item2.js +1 -1
  165. package/dist/components/udp-menu2.js +1 -1
  166. package/dist/components/udp-page.js +1 -1
  167. package/dist/components/udp-selector2.js +4 -4
  168. package/dist/components/udp-skeleton-loading2.js +1 -1
  169. package/dist/components/udp-split-screen.js +1 -1
  170. package/dist/components/udp-stepper-demo.js +1 -1
  171. package/dist/components/udp-tab-panel.js +2 -2
  172. package/dist/components/udp-tab.js +1 -1
  173. package/dist/components/udp-tabs2.js +2 -2
  174. package/dist/components/udp-time-selector2.js +3 -3
  175. package/dist/components/udp-timeline-connector.js +1 -1
  176. package/dist/components/udp-timeline-dot.js +1 -1
  177. package/dist/components/udp-timeline-item.js +2 -2
  178. package/dist/components/udp-timeline-separator.js +1 -1
  179. package/dist/components/udp-timeline.js +1 -1
  180. package/dist/components/udp-vertical-spacer.js +1 -1
  181. package/dist/docs.json +141 -52
  182. package/dist/esm/add-map-feature-popup_4.entry.js +12 -12
  183. package/dist/esm/advanced-search_12.entry.js +1 -1
  184. package/dist/esm/ag-grid-base.ghost-render.grid-header.hint-panel.udp-dialog.udp-list-item.entry.js.map +1 -1
  185. package/dist/esm/ag-grid-base_6.entry.js +27 -11
  186. package/dist/esm/api-method-instance-grid.entry.js +1 -1
  187. package/dist/esm/app-bar.entry.js +1 -1
  188. package/dist/esm/check-box.entry.js +2 -2
  189. package/dist/esm/chip-section.entry.js +2 -2
  190. package/dist/esm/client-side-grid_2.entry.js +3 -3
  191. package/dist/esm/entity-maintenance-grid.entry.js +1 -1
  192. package/dist/esm/feature-details-card_2.entry.js +5 -5
  193. package/dist/esm/filter-conditions_7.entry.js +2 -2
  194. package/dist/esm/form-metadata-display_8.entry.js +6 -6
  195. package/dist/esm/index-CaZq3YdB.js +10 -10
  196. package/dist/esm/loader.js +1 -1
  197. package/dist/esm/map-component_2.entry.js +2 -2
  198. package/dist/esm/numeric-field_5.entry.js +15 -15
  199. package/dist/esm/primary-action-header.udp-tabs.entry.js.map +1 -0
  200. package/dist/esm/{primary-action-header_3.entry.js → primary-action-header_2.entry.js} +5 -262
  201. package/dist/esm/resource-timeline-calendar.entry.js +1 -1
  202. package/dist/esm/search-method-grid.entry.js +2 -1
  203. package/dist/esm/search-method-grid.entry.js.map +1 -1
  204. package/dist/esm/server-side-grid.entry.js +1 -1
  205. package/dist/esm/side-sheet-container.entry.js +1 -1
  206. package/dist/esm/stencil-library.js +1 -1
  207. package/dist/esm/stencil-toggle.entry.js +4 -4
  208. package/dist/esm/text-field_2.entry.js +7 -7
  209. package/dist/esm/udp-chip_3.entry.js +1 -1
  210. package/dist/esm/udp-container-query-grid-item.entry.js +1 -1
  211. package/dist/esm/udp-container-query-grid.entry.js +1 -1
  212. package/dist/esm/udp-container-query.entry.js +2 -2
  213. package/dist/esm/udp-container.entry.js +33 -0
  214. package/dist/esm/udp-container.entry.js.map +1 -0
  215. package/dist/esm/udp-date-range-selector.entry.js +1 -1
  216. package/dist/esm/udp-dynamic-container-with-menu.entry.js +1 -1
  217. package/dist/esm/udp-linear-loader.udp-side-sheet.entry.js.map +1 -0
  218. package/dist/esm/udp-linear-loader_2.entry.js +282 -0
  219. package/dist/esm/udp-map.entry.js +3 -3
  220. package/dist/esm/udp-menu-item.udp-pop-over.entry.js.map +1 -0
  221. package/dist/esm/{udp-pop-over.entry.js → udp-menu-item_2.entry.js} +24 -3
  222. package/dist/esm/udp-page.entry.js +1 -1
  223. package/dist/esm/udp-skeleton-loading.entry.js +1 -1
  224. package/dist/esm/udp-split-screen.entry.js +1 -1
  225. package/dist/esm/udp-stepper-demo.entry.js +1 -1
  226. package/dist/esm/udp-tab-panel.entry.js +2 -2
  227. package/dist/esm/udp-tab.entry.js +1 -1
  228. package/dist/esm/udp-timeline-connector.entry.js +1 -1
  229. package/dist/esm/udp-timeline-dot.entry.js +1 -1
  230. package/dist/esm/udp-timeline-item.entry.js +2 -2
  231. package/dist/esm/udp-timeline-separator.entry.js +1 -1
  232. package/dist/esm/udp-timeline.entry.js +1 -1
  233. package/dist/esm/udp-vertical-spacer.entry.js +1 -1
  234. package/dist/stencil-library/add-map-feature-popup_4.entry.js +1 -1
  235. package/dist/stencil-library/advanced-search_12.entry.js +1 -1
  236. package/dist/stencil-library/ag-grid-base.ghost-render.grid-header.hint-panel.udp-dialog.udp-list-item.entry.esm.js.map +1 -1
  237. package/dist/stencil-library/ag-grid-base_6.entry.js +1 -1
  238. package/dist/stencil-library/ag-grid-base_6.entry.js.map +1 -1
  239. package/dist/stencil-library/api-method-instance-grid.entry.js +1 -1
  240. package/dist/stencil-library/app-bar.entry.js +1 -1
  241. package/dist/stencil-library/check-box.entry.js +1 -1
  242. package/dist/stencil-library/chip-section.entry.js +1 -1
  243. package/dist/stencil-library/client-side-grid_2.entry.js +1 -1
  244. package/dist/stencil-library/entity-maintenance-grid.entry.js +1 -1
  245. package/dist/stencil-library/feature-details-card_2.entry.js +1 -1
  246. package/dist/stencil-library/filter-conditions_7.entry.js +1 -1
  247. package/dist/stencil-library/form-metadata-display_8.entry.js +1 -1
  248. package/dist/stencil-library/map-component_2.entry.js +1 -1
  249. package/dist/stencil-library/numeric-field_5.entry.js +1 -1
  250. package/dist/stencil-library/primary-action-header.udp-tabs.entry.esm.js.map +1 -0
  251. package/dist/stencil-library/primary-action-header_2.entry.js +2 -0
  252. package/dist/stencil-library/primary-action-header_2.entry.js.map +1 -0
  253. package/dist/stencil-library/resource-timeline-calendar.entry.js +1 -1
  254. package/dist/stencil-library/search-method-grid.entry.esm.js.map +1 -1
  255. package/dist/stencil-library/search-method-grid.entry.js +1 -1
  256. package/dist/stencil-library/search-method-grid.entry.js.map +1 -1
  257. package/dist/stencil-library/server-side-grid.entry.js +1 -1
  258. package/dist/stencil-library/side-sheet-container.entry.js +1 -1
  259. package/dist/stencil-library/stencil-library.esm.js +1 -1
  260. package/dist/stencil-library/stencil-toggle.entry.js +1 -1
  261. package/dist/stencil-library/text-field_2.entry.js +1 -1
  262. package/dist/stencil-library/udp-chip_3.entry.js +1 -1
  263. package/dist/stencil-library/udp-container-query-grid-item.entry.js +1 -1
  264. package/dist/stencil-library/udp-container-query-grid.entry.js +1 -1
  265. package/dist/stencil-library/udp-container-query.entry.js +1 -1
  266. package/dist/stencil-library/udp-container.entry.esm.js.map +1 -0
  267. package/dist/stencil-library/udp-container.entry.js +2 -0
  268. package/dist/stencil-library/udp-container.entry.js.map +1 -0
  269. package/dist/stencil-library/udp-date-range-selector.entry.js +1 -1
  270. package/dist/stencil-library/udp-dynamic-container-with-menu.entry.js +1 -1
  271. package/dist/stencil-library/udp-linear-loader.udp-side-sheet.entry.esm.js.map +1 -0
  272. package/dist/stencil-library/udp-linear-loader_2.entry.js +2 -0
  273. package/dist/stencil-library/udp-linear-loader_2.entry.js.map +1 -0
  274. package/dist/stencil-library/udp-map.entry.js +1 -1
  275. package/dist/stencil-library/udp-menu-item.udp-pop-over.entry.esm.js.map +1 -0
  276. package/dist/stencil-library/udp-menu-item_2.entry.js +2 -0
  277. package/dist/stencil-library/udp-menu-item_2.entry.js.map +1 -0
  278. package/dist/stencil-library/udp-page.entry.js +1 -1
  279. package/dist/stencil-library/udp-skeleton-loading.entry.js +1 -1
  280. package/dist/stencil-library/udp-split-screen.entry.js +1 -1
  281. package/dist/stencil-library/udp-stepper-demo.entry.js +1 -1
  282. package/dist/stencil-library/udp-tab-panel.entry.js +1 -1
  283. package/dist/stencil-library/udp-tab.entry.js +1 -1
  284. package/dist/stencil-library/udp-timeline-connector.entry.js +1 -1
  285. package/dist/stencil-library/udp-timeline-dot.entry.js +1 -1
  286. package/dist/stencil-library/udp-timeline-item.entry.js +1 -1
  287. package/dist/stencil-library/udp-timeline-item.entry.js.map +1 -1
  288. package/dist/stencil-library/udp-timeline-separator.entry.js +1 -1
  289. package/dist/stencil-library/udp-timeline.entry.js +1 -1
  290. package/dist/stencil-library/udp-vertical-spacer.entry.js +1 -1
  291. package/dist/types/components/grid/new-grid/gridFunctions/bulkActions.d.ts +4 -2
  292. package/dist/types/components/grid/new-grid/interfaces/grid.d.ts +1 -0
  293. package/package.json +1 -1
  294. package/dist/cjs/primary-action-header.udp-side-sheet.udp-tabs.entry.cjs.js.map +0 -1
  295. package/dist/cjs/udp-container.udp-linear-loader.entry.cjs.js.map +0 -1
  296. package/dist/cjs/udp-container_2.cjs.entry.js +0 -56
  297. package/dist/cjs/udp-menu-item.cjs.entry.js +0 -27
  298. package/dist/cjs/udp-menu-item.entry.cjs.js.map +0 -1
  299. package/dist/cjs/udp-pop-over.entry.cjs.js.map +0 -1
  300. package/dist/esm/primary-action-header.udp-side-sheet.udp-tabs.entry.js.map +0 -1
  301. package/dist/esm/udp-container.udp-linear-loader.entry.js.map +0 -1
  302. package/dist/esm/udp-container_2.entry.js +0 -53
  303. package/dist/esm/udp-menu-item.entry.js +0 -25
  304. package/dist/esm/udp-menu-item.entry.js.map +0 -1
  305. package/dist/esm/udp-pop-over.entry.js.map +0 -1
  306. package/dist/stencil-library/primary-action-header.udp-side-sheet.udp-tabs.entry.esm.js.map +0 -1
  307. package/dist/stencil-library/primary-action-header_3.entry.js +0 -2
  308. package/dist/stencil-library/primary-action-header_3.entry.js.map +0 -1
  309. package/dist/stencil-library/udp-container.udp-linear-loader.entry.esm.js.map +0 -1
  310. package/dist/stencil-library/udp-container_2.entry.js +0 -2
  311. package/dist/stencil-library/udp-container_2.entry.js.map +0 -1
  312. package/dist/stencil-library/udp-menu-item.entry.esm.js.map +0 -1
  313. package/dist/stencil-library/udp-menu-item.entry.js +0 -2
  314. package/dist/stencil-library/udp-menu-item.entry.js.map +0 -1
  315. package/dist/stencil-library/udp-pop-over.entry.esm.js.map +0 -1
  316. package/dist/stencil-library/udp-pop-over.entry.js +0 -2
  317. package/dist/stencil-library/udp-pop-over.entry.js.map +0 -1
@@ -32,7 +32,7 @@ const UdpContainerQueryGrid = class {
32
32
  gap: `${this.gaps[breakpoint]}rem`,
33
33
  }));
34
34
  });
35
- return (h(Host, { key: '63e6f7902336ffc08bd3bb251907877325cf0d12' }, h("udp-container-query", { key: 'c8206e4612990b72e81105673e2c72e3e63410bb', queries: queries }, h("div", { key: 'cc01e88216ba2dd069ad1cd194ceb8c5026b4a37', class: "grid-container" }, h("slot", { key: '37b9a99849d97ef8e8c33d1e401f90b919115a51' }))), h("style", { key: '4ec725b30fc8e830798e4816ae1bc0c5a9b38fd4' }, `
35
+ return (h(Host, { key: '8fcf614cb145b65faa50f9cd77f2196931e5ac3e' }, h("udp-container-query", { key: '7f9e61025ff57faae311f536f479e36360334b44', queries: queries }, h("div", { key: 'c810de4cea74a5278556751f9148123e91ad7f21', class: "grid-container" }, h("slot", { key: '71a1ab5854110ebfaaab31bc76751d8925881801' }))), h("style", { key: '39d63f3510f1bf7abc892c3131480c71b969cb5d' }, `
36
36
  .grid-container {
37
37
  display: grid;
38
38
  grid-template-columns: repeat(${this.columns[0]}, 1fr);
@@ -25,9 +25,9 @@ const UdpContainerQuery = class {
25
25
  return styleRules;
26
26
  }
27
27
  render() {
28
- return (h(Host, { key: '9bc9f62ca83c3c794e909ee966947675fb9870da', class: {
28
+ return (h(Host, { key: 'abba69fdcf35ed43f74dea1cfa19a6e7e9ae80d2', class: {
29
29
  [this.customClass]: !!this.customClass,
30
- } }, h("style", { key: '43ba2fd574da0e60066064c06413a84004e57d83' }, this.getContainerQueryStyle()), h("slot", { key: '17633bfe61d8993a986de0263a4a68399d0f9262' })));
30
+ } }, h("style", { key: 'dc349f2310a763938cd017553a49296e397cf645' }, this.getContainerQueryStyle()), h("slot", { key: '481e4dfe1f0f7a7fcf153461d5f3a0cfae6ecfee' })));
31
31
  }
32
32
  };
33
33
  UdpContainerQuery.style = udpContainerQueryCss;
@@ -0,0 +1,33 @@
1
+ import { r as registerInstance, h } from './index-CaZq3YdB.js';
2
+
3
+ const udpContainerCss = ":host{display:block;width:100%}.udp-container{width:100%;margin-left:auto;margin-right:auto;box-sizing:border-box}.udp-container--padded{padding-left:1rem;padding-right:1rem}.udp-container--fluid{max-width:100%}.udp-container--sm{max-width:640px}.udp-container--md{max-width:768px}.udp-container--lg{max-width:1024px}.udp-container--xl{max-width:1280px}.udp-container--2xl{max-width:1536px}";
4
+
5
+ const UdpContainer = class {
6
+ constructor(hostRef) {
7
+ registerInstance(this, hostRef);
8
+ /**
9
+ * If true, the container will be fluid (100% width at all breakpoints)
10
+ */
11
+ this.fluid = false;
12
+ /**
13
+ * Maximum width for the container at different breakpoints
14
+ */
15
+ this.maxWidth = 'lg';
16
+ /**
17
+ * Add padding to the container
18
+ */
19
+ this.padding = true;
20
+ }
21
+ render() {
22
+ return (h("div", { key: 'fb6ff14c09a223d0181b361acc1243f070e062e3', class: {
23
+ 'udp-container': true,
24
+ 'udp-container--fluid': this.fluid,
25
+ 'udp-container--padded': this.padding,
26
+ [`udp-container--${this.maxWidth}`]: true,
27
+ } }, h("slot", { key: '00a20124101fcbed8deef25139de5598b44f178a' })));
28
+ }
29
+ };
30
+ UdpContainer.style = udpContainerCss;
31
+
32
+ export { UdpContainer as udp_container };
33
+ //# sourceMappingURL=udp-container.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"udp-container.entry.js","sources":["src/components/layout/udp-container/udp-container.css?tag=udp-container&encapsulation=shadow","src/components/layout/udp-container/udp-container.tsx"],"sourcesContent":[":host {\n display: block;\n width: 100%;\n}\n\n.udp-container {\n width: 100%;\n margin-left: auto;\n margin-right: auto;\n box-sizing: border-box;\n}\n\n.udp-container--padded {\n padding-left: 1rem;\n padding-right: 1rem;\n}\n\n/* Fluid container takes full width */\n.udp-container--fluid {\n max-width: 100%;\n}\n\n/* Responsive container max-widths */\n.udp-container--sm {\n max-width: 640px;\n}\n\n.udp-container--md {\n max-width: 768px;\n}\n\n.udp-container--lg {\n max-width: 1024px;\n}\n\n.udp-container--xl {\n max-width: 1280px;\n}\n\n.udp-container--2xl {\n max-width: 1536px;\n} ","import { Component, Prop, h } from '@stencil/core';\n\n@Component({\n tag: 'udp-container',\n styleUrl: 'udp-container.css',\n shadow: true,\n})\nexport class UdpContainer {\n /**\n * If true, the container will be fluid (100% width at all breakpoints)\n */\n @Prop() fluid: boolean = false;\n\n /**\n * Maximum width for the container at different breakpoints\n */\n @Prop() maxWidth: 'sm' | 'md' | 'lg' | 'xl' | '2xl' = 'lg';\n\n /**\n * Add padding to the container\n */\n @Prop() padding: boolean = true;\n\n render() {\n return (\n <div\n class={{\n 'udp-container': true,\n 'udp-container--fluid': this.fluid,\n 'udp-container--padded': this.padding,\n [`udp-container--${this.maxWidth}`]: true,\n }}\n >\n <slot></slot>\n </div>\n );\n }\n}\n"],"names":[],"mappings":";;AAAA,MAAM,eAAe,GAAG,wYAAwY;;MCOnZ,YAAY,GAAA,MAAA;AALzB,IAAA,WAAA,CAAA,OAAA,EAAA;;AAME;;AAEG;AACK,QAAA,IAAK,CAAA,KAAA,GAAY,KAAK;AAE9B;;AAEG;AACK,QAAA,IAAQ,CAAA,QAAA,GAAsC,IAAI;AAE1D;;AAEG;AACK,QAAA,IAAO,CAAA,OAAA,GAAY,IAAI;AAgBhC;IAdC,MAAM,GAAA;QACJ,QACE,CACE,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAE;AACL,gBAAA,eAAe,EAAE,IAAI;gBACrB,sBAAsB,EAAE,IAAI,CAAC,KAAK;gBAClC,uBAAuB,EAAE,IAAI,CAAC,OAAO;AACrC,gBAAA,CAAC,kBAAkB,IAAI,CAAC,QAAQ,CAAE,CAAA,GAAG,IAAI;AAC1C,aAAA,EAAA,EAED,CAAa,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAA,CACT;;;;;;;"}
@@ -33,7 +33,7 @@ const UdpDateRangeSelector = class {
33
33
  : this.variant === 'single'
34
34
  ? 'calendar-date'
35
35
  : 'calendar-range';
36
- return (h(Host, { key: '98fb48f793658c67a5ae8e84daa712295a9e3080', style: { '--calendar-width': this.width } }, h(CalendarTag, { key: '03bd3adc716431fcfc7da2ab6bc40ccb804e9113', value: this.value, min: this.minDate, max: this.maxDate, firstDayOfWeek: 0, months: this.monthsToDisplay, showOutsideDays: true, pageBy: "single", isDateDisallowed: this.isDateDisallowed, getDayParts: this.getDayParts, onChange: this.handleChange }, h("udp-icon", { key: '7f8a4aa9e0ecebdc6e806c3d20fe9fb55559e0ab', slot: "previous", iconName: 'chevronLeft16', color: "inherit" }), h("udp-icon", { key: 'ab0efbca0d3bd404c2e9fe43864eac1f156a73d0', slot: "next", iconName: 'chevronRight16', color: "inherit" }), h("div", { key: 'aadb14be39e4ef95630514ae378aa254bcfb2d53', class: "grid" }, Array.from({ length: this.monthsToDisplay }).map((_, index) => (h("calendar-month", { offset: index })))))));
36
+ return (h(Host, { key: '872a0ac12d8ba50108eb2c996f5c68d853fe538b', style: { '--calendar-width': this.width } }, h(CalendarTag, { key: 'e1348c050e9b49f4a5826bd5f6b07be7e6e2ed2b', value: this.value, min: this.minDate, max: this.maxDate, firstDayOfWeek: 0, months: this.monthsToDisplay, showOutsideDays: true, pageBy: "single", isDateDisallowed: this.isDateDisallowed, getDayParts: this.getDayParts, onChange: this.handleChange }, h("udp-icon", { key: 'eaf925e2c0ad13010adc17825dd012377e736a69', slot: "previous", iconName: 'chevronLeft16', color: "inherit" }), h("udp-icon", { key: '1bc7f790f4b310fd80ed48824b63acef742ef196', slot: "next", iconName: 'chevronRight16', color: "inherit" }), h("div", { key: 'df184ba087089ce5e53ea80d1cda01e6428e36f3', class: "grid" }, Array.from({ length: this.monthsToDisplay }).map((_, index) => (h("calendar-month", { offset: index })))))));
37
37
  }
38
38
  };
39
39
  UdpDateRangeSelector.style = udpDateRangeSelectorCss;
@@ -119,7 +119,7 @@ const DynamicContainerWithMenu = class {
119
119
  this.udpChipClicked.emit(chipText);
120
120
  }
121
121
  render() {
122
- return (h("div", { key: '7aa41191a2fd7b8852f465ac8a1957fb57a9791d', class: "container" }, h("div", { key: 'd62603a8717a3b95f6d4552c6ba44ad58885da3c', class: "chips" }, console.log('Received data for chips via executeQwith', this.visibleChildren), this.visibleChildren && this.visibleChildren.map((child, index) => (h("stencil-chip", { color: "secondary", key: index, text: child.description, "show-delete": "false", externalToggleString: this.externalToggle })))), h("div", { key: '584c495f74c2f53a0c6b53e3b23fe1dbbba481f4', class: "overflow" }, h("udp-pop-over", { key: '8ee9fb7ca327b54f6bf120d1e57fed80eb7211b4', isOpen: this.popoverOpen, anchorElement: document.getElementById('anchorElement') }, h("div", { key: '84ed96340e2c4eb20ee83dafb868301eea36b939', class: "menu" }, this.menuChildren && this.menuChildren.map((child, index) => (h("stencil-chip", { key: index, text: child.label, "show-delete": "false" }, " "))))))));
122
+ return (h("div", { key: 'f09bf517019dc24f5a721b4c8be5856eb0b457ac', class: "container" }, h("div", { key: '6881c4b03240b798a2377957131d824a6086f2a0', class: "chips" }, console.log('Received data for chips via executeQwith', this.visibleChildren), this.visibleChildren && this.visibleChildren.map((child, index) => (h("stencil-chip", { color: "secondary", key: index, text: child.description, "show-delete": "false", externalToggleString: this.externalToggle })))), h("div", { key: '039f9472b7beb854f632859ba4c4718bea5a05c8', class: "overflow" }, h("udp-pop-over", { key: '358e339b4e83af974cd5470a593638becac83754', isOpen: this.popoverOpen, anchorElement: document.getElementById('anchorElement') }, h("div", { key: 'ec28e9f5ad344f13d319da7576188200044c60f5', class: "menu" }, this.menuChildren && this.menuChildren.map((child, index) => (h("stencil-chip", { key: index, text: child.label, "show-delete": "false" }, " "))))))));
123
123
  }
124
124
  get el() { return getElement(this); }
125
125
  static get watchers() { return {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"udp-linear-loader.udp-side-sheet.entry.js","sources":["src/components/loaders/udp-linear-loader/udp-linear-loader.css?tag=udp-linear-loader&encapsulation=shadow","src/components/loaders/udp-linear-loader/udp-linear-loader.tsx","src/components/drawers/udp-side-sheet/udp-side-sheet.css?tag=udp-side-sheet&encapsulation=shadow","src/components/drawers/udp-side-sheet/udp-side-sheet.tsx"],"sourcesContent":[":host {\n /* Define color variables, similar to the button component for consistency */\n --udp-loader-primary-color: var(--primary-color, #2953ff);\n --udp-loader-secondary-color: var(--secondary-color, #6f767a);\n --udp-loader-success-color: var(--success-color, #0da40d);\n --udp-loader-error-color: var(--error-color, #ff0000);\n --udp-loader-warning-color: var(--warning-color, #ffa500);\n --udp-loader-info-color: var(--info-color, #2953ff);\n}\n\n.loader {\n position: relative;\n width: 100%;\n height: 4px;\n background-color: transparent; /* The track is transparent, so it's invisible. */\n overflow: hidden; /* Ensures the animation stays within the bounds. */\n}\n\n.indeterminate {\n /* The default color will be primary */\n background-color: var(--udp-loader-primary-color);\n position: absolute;\n width: 40%;\n height: 100%;\n animation: indeterminate 1s linear infinite;\n}\n\n/* Apply the selected color to the moving bar */\n.loader--color-primary .indeterminate {\n background-color: var(--udp-loader-primary-color);\n}\n.loader--color-secondary .indeterminate {\n background-color: var(--udp-loader-secondary-color);\n}\n.loader--color-success .indeterminate {\n background-color: var(--udp-loader-success-color);\n}\n.loader--color-error .indeterminate {\n background-color: var(--udp-loader-error-color);\n}\n.loader--color-warning .indeterminate {\n background-color: var(--udp-loader-warning-color);\n}\n.loader--color-info .indeterminate {\n background-color: var(--udp-loader-info-color);\n}\n\n/*\n This animation makes the bar travel from left to right over the entire duration.\n This removes the long pause where the bar was off-screen.\n*/\n@keyframes indeterminate {\n 0% {\n left: -50%;\n width: 50%;\n }\n 100% {\n left: 100%;\n width: 100%;\n }\n}\n","import { Component, h, Host, Prop } from '@stencil/core';\n\n@Component({\n tag: 'udp-linear-loader',\n styleUrl: 'udp-linear-loader.css',\n shadow: true,\n})\nexport class UdpLinearLoader {\n /**\n * The color of the loader. It supports theming using global CSS variables.\n */\n @Prop() color: 'primary' | 'secondary' | 'success' | 'error' | 'warning' | 'info' = 'primary';\n\n render() {\n const loaderClasses = {\n loader: true,\n [`loader--color-${this.color}`]: true,\n };\n\n return (\n <Host>\n <div class={loaderClasses}>\n <div class=\"indeterminate\"></div>\n </div>\n </Host>\n );\n }\n}\n",":host {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 0;\r\n height: 0;\r\n overflow: hidden;\r\n /* CRITICAL: transform creates a containing block, forcing fixed children to respect overflow: hidden */\r\n transform: translate(0);\r\n z-index: 9999;\r\n visibility: hidden;\r\n transition: visibility 0s 0.2s, width 0s 0.2s, height 0s 0.2s;\r\n}\r\n\r\n:host(.is-visible) {\r\n width: 100vw;\r\n height: 100vh;\r\n overflow: visible;\r\n visibility: visible;\r\n transition-delay: 0s;\r\n}\r\n\r\n.backdrop {\r\n background: rgba(0, 0, 0, 0.5);\r\n width: 100%;\r\n height: 100%;\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n opacity: 0;\r\n transition: opacity 0.2s ease-in-out;\r\n}\r\n\r\n:host(.is-visible) .backdrop {\r\n opacity: 1;\r\n}\r\n\r\n.sheet {\r\n background: white;\r\n height: 100vh;\r\n position: fixed;\r\n top: 0;\r\n display: flex;\r\n flex-direction: column;\r\n box-shadow: 0 0 4px rgba(0, 0, 0, 0.3);\r\n transition: transform 0.2s ease-in-out;\r\n width: 100%;\r\n}\r\n\r\n.sheet.right {\r\n right: 0;\r\n transform: translateX(100%);\r\n}\r\n\r\n.sheet.left {\r\n left: 0;\r\n transform: translateX(-100%);\r\n}\r\n\r\n:host(.is-visible) .sheet {\r\n transform: translateX(0);\r\n}\r\n\r\n.sheet.sm {\r\n max-width: 360px;\r\n}\r\n\r\n.sheet.md {\r\n max-width: 600px;\r\n}\r\n\r\n.sheet.lg {\r\n max-width: 960px;\r\n}\r\n\r\n.sheet.full {\r\n max-width: 100%;\r\n}\r\n\r\n.sheet.custom-width {\r\n /* max-width is set via inline style */\r\n}\r\n\r\n/* Updated title container for new layout */\r\n.title-container {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n flex-shrink: 0;\r\n box-shadow: var(--elevation-01, 0 4px 8px rgba(0, 0, 0, 0.1));\r\n gap: var(--spacing-02)\r\n}\r\n\r\n.title-text {\r\n flex-grow: 1;\r\n text-align: left;\r\n /* Ensure title stays left-aligned */\r\n}\r\n\r\n.close-button {\r\n flex-shrink: 0;\r\n}\r\n\r\n/* Added styles for the new button's container */\r\n.header-action-button {\r\n flex-shrink: 0;\r\n display: flex;\r\n align-items: center;\r\n gap: var(--spacing-02, 4px);\r\n padding: var(--spacing-03, 8px) var(--spacing-03, 8px) var(--spacing-03, 8px) 0;\r\n}\r\n\r\n.content {\r\n overflow-y: auto;\r\n flex-grow: 1;\r\n background-color: var(--gray-01);\r\n}\r\n\r\n.content.padding {\r\n padding: var(--spacing-05, 24px);\r\n}\r\n\r\n.footer {\r\n padding: var(--spacing-03, 8px);\r\n box-shadow: var(--elevation-01, 0 4px 8px rgba(0, 0, 0, 0.1));\r\n display: flex;\r\n justify-content: flex-end;\r\n flex-shrink: 0;\r\n width: 100%;\r\n gap: var(--spacing-02, 4px);\r\n align-items: center;\r\n}\r\n\r\n.footer.secondary-button-overflow {\r\n flex-direction: row-reverse;\r\n}\r\n\r\n.footer-secondary-buttons-container {\r\n flex-grow: 2;\r\n width: 100%;\r\n}\r\n\r\n.footer-secondary-buttons {\r\n display: flex;\r\n justify-content: flex-end;\r\n gap: var(--spacing-02, 4px);\r\n align-items: center;\r\n}\r\n\r\n.footer-secondary-buttons.secondary-button-overflow {\r\n flex-grow: 1;\r\n}\r\n\r\n/* This container reserves the space for the loader (4px height).\r\n This prevents the content below it from shifting up and down\r\n when the loader appears or disappears.\r\n*/\r\n.loader-container {\r\n height: 4px;\r\n width: 100%;\r\n background-color: var(--gray-01);\r\n}\r\n\r\n/*\r\n By default, the loader is instantly hidden.\r\n There is no transition applied in its hidden state.\r\n*/\r\n.loader-container udp-linear-loader {\r\n visibility: hidden;\r\n opacity: 0;\r\n transition: none;\r\n}\r\n\r\n/*\r\n When the .is-loading class is applied, we make the loader visible\r\n AND apply a transition so it fades in smoothly. When the class is removed,\r\n it reverts to the rule above and disappears instantly.\r\n*/\r\n.loader-container udp-linear-loader.is-loading {\r\n visibility: visible;\r\n opacity: 1;\r\n /* transition: opacity 0.3s ease-in-out; */\r\n}\r\n","/* eslint-disable stencil/strict-boolean-conditions */\r\nimport {\r\n Component,\r\n h,\r\n Prop,\r\n Element,\r\n Watch,\r\n Event,\r\n EventEmitter,\r\n State,\r\n Build,\r\n} from '@stencil/core';\r\nimport Close24 from '@carbon/icons/es/close/24';\r\nimport { SecondaryButton } from './types';\r\n\r\n/**\r\n * Side sheet component used for contextual drawers.\r\n */\r\n@Component({\r\n tag: 'udp-side-sheet',\r\n styleUrl: 'udp-side-sheet.css',\r\n shadow: true,\r\n})\r\nexport class UdpSideSheet {\r\n /** Host element reference for portal behavior */\r\n @Element() hostEl!: HTMLElement;\r\n\r\n /** When true, the side sheet is open and visible */\r\n @Prop({ reflect: true, mutable: true }) open = false;\r\n\r\n /** Title text displayed in the header */\r\n @Prop() title: string;\r\n\r\n /** Position of the sheet on the screen */\r\n @Prop() position: 'left' | 'right' = 'right';\r\n\r\n /** Width preset or a numeric pixel width */\r\n @Prop() width: 'sm' | 'md' | 'lg' | 'full' | number = 'md';\r\n\r\n /** Controls whether default inner padding is applied */\r\n @Prop() padding = true;\r\n\r\n /** When true, shows a top loader */\r\n @Prop() loading: boolean = false;\r\n\r\n // Header action button props\r\n\r\n /** Label for the header primary action button */\r\n @Prop() headerActionButtonLabel: string;\r\n\r\n /** Whether the header action button is disabled */\r\n @Prop() headerActionButtonDisabled = false;\r\n\r\n /** Icon name for the header action button */\r\n @Prop() headerActionButtonIcon: string;\r\n\r\n /** Additional secondary buttons to render in the header */\r\n @Prop() headerSecondaryButtons: SecondaryButton[];\r\n\r\n // Footer / primary button props\r\n\r\n /** Label for the primary footer action button */\r\n @Prop() primaryButtonLabel: string;\r\n\r\n /** Whether the primary footer button is disabled */\r\n @Prop() primaryButtonDisabled = false;\r\n\r\n /** Icon name for the primary footer button */\r\n @Prop() primaryButtonIcon: string;\r\n\r\n /** Secondary buttons to render in the footer */\r\n @Prop() footerSecondaryButtons?: SecondaryButton[];\r\n\r\n /** Emitted when the sheet is closed */\r\n @Event() udpSideSheetClose: EventEmitter<void>;\r\n\r\n /** Emitted when the primary footer button is clicked */\r\n @Event() udpPrimaryButtonClick: EventEmitter<void>;\r\n\r\n /** Emitted when the header action button is clicked */\r\n @Event() udpHeaderActionButtonClick: EventEmitter<void>;\r\n\r\n /** Whether the footer should show the overflow \"More\" button */\r\n @State() showOverflowButton: boolean = false;\r\n\r\n /** Whether the overflow popover is open */\r\n @State() openOverflowMenu: boolean = false;\r\n\r\n /** Anchor element for the overflow popover */\r\n @State() overflowMenuAnchor: HTMLElement;\r\n\r\n @State() visibleSecondaryButtons: SecondaryButton[] = [];\r\n @State() overflowSecondaryButtons: SecondaryButton[] = [];\r\n\r\n /** Saved original document.body.overflow value to restore on close */\r\n private originalBodyOverflow: string = '';\r\n\r\n /** ResizeObserver instance watching footer size changes */\r\n private resizeObserver: ResizeObserver;\r\n\r\n /** Reference to the footer element */\r\n private footerRef: HTMLElement;\r\n\r\n /** Offscreen measurement container for buttons */\r\n private measurementContainerRef: HTMLElement;\r\n\r\n /** Saved original document.body.paddingRight value to restore on close */\r\n private originalBodyPaddingRight: string = '';\r\n\r\n /**\r\n * Watcher for `open` prop. Handles portal append/removal and body scroll lock.\r\n *\r\n * @param newValue - new value of the `open` prop\r\n * @param oldValue - previous value of the `open` prop\r\n */\r\n @Watch('open')\r\n handleOpenChange(newValue: boolean, oldValue: boolean) {\r\n if (newValue === oldValue) {\r\n return;\r\n }\r\n\r\n if (newValue) {\r\n // Calculate scrollbar width before hiding it\r\n const scrollbarWidth = window.innerWidth - document.documentElement.clientWidth;\r\n\r\n // Save original values\r\n this.originalBodyOverflow = document.body.style.overflow;\r\n this.originalBodyPaddingRight = document.body.style.paddingRight;\r\n\r\n document.body.appendChild(this.hostEl);\r\n\r\n // Add padding to compensate for scrollbar\r\n if (scrollbarWidth > 0) {\r\n const currentPadding = parseInt(window.getComputedStyle(document.body).paddingRight) || 0;\r\n document.body.style.paddingRight = `${currentPadding + scrollbarWidth}px`;\r\n }\r\n\r\n document.body.style.overflow = 'hidden';\r\n\r\n requestAnimationFrame(() => {\r\n this.hostEl.classList.add('is-visible');\r\n // Check overflow after the side sheet is visible\r\n setTimeout(() => this.checkOverflow(), 50);\r\n });\r\n } else {\r\n this.hostEl.classList.remove('is-visible');\r\n document.body.style.overflow = this.originalBodyOverflow;\r\n document.body.style.paddingRight = this.originalBodyPaddingRight;\r\n this.hostEl.addEventListener('transitionend', this.handleTransitionEnd, { once: true });\r\n }\r\n }\r\n\r\n /**\r\n * Watcher for footer secondary buttons changes. Triggers overflow recalculation.\r\n */\r\n @Watch('footerSecondaryButtons')\r\n handleSecondaryButtonsChange() {\r\n // Recheck overflow when buttons change\r\n setTimeout(() => this.checkOverflow(), 50);\r\n }\r\n\r\n /**\r\n * Measures footer buttons in an offscreen container and sets `showOverflowButton`.\r\n * Safely returns early if required refs are unavailable.\r\n */\r\n private checkOverflow() {\r\n if (!this.footerRef || !this.measurementContainerRef) {\r\n return;\r\n }\r\n\r\n if (!this.footerSecondaryButtons || this.footerSecondaryButtons.length === 0) {\r\n this.showOverflowButton = false;\r\n return;\r\n }\r\n\r\n // Get the footer container width (minus padding)\r\n const footerWidth = this.footerRef.offsetWidth;\r\n const footerStyle = window.getComputedStyle(this.footerRef);\r\n const footerPaddingLeft = parseFloat(footerStyle.paddingLeft);\r\n const footerPaddingRight = parseFloat(footerStyle.paddingRight);\r\n const availableWidth = footerWidth - footerPaddingLeft - footerPaddingRight;\r\n\r\n // Measure all buttons in the hidden measurement container\r\n const measurementButtons = this.measurementContainerRef.querySelectorAll('udp-button');\r\n let totalWidth = 0;\r\n\r\n measurementButtons.forEach((button, index) => {\r\n const buttonWidth = button && button instanceof HTMLElement ? button.offsetWidth : 0;\r\n totalWidth += buttonWidth;\r\n\r\n // Add gap spacing between buttons (except for the last one)\r\n if (index < measurementButtons.length - 1) {\r\n const containerStyle = window.getComputedStyle(this.measurementContainerRef);\r\n const gap = parseFloat(containerStyle.gap) || 4; // Default gap from CSS\r\n totalWidth += gap;\r\n }\r\n });\r\n\r\n // Add a small buffer to prevent edge cases\r\n const buffer = 10;\r\n const isOverflowing = totalWidth + buffer > availableWidth;\r\n\r\n this.showOverflowButton = isOverflowing;\r\n }\r\n\r\n /**\r\n * Transition end handler used to remove the host element from body after close.\r\n *\r\n * @private\r\n */\r\n private handleTransitionEnd = () => {\r\n if (!this.open && this.hostEl.parentElement === document.body) {\r\n document.body.removeChild(this.hostEl);\r\n }\r\n };\r\n\r\n /**\r\n * Lifecycle: componentDidLoad. Sets up ResizeObserver and initial overflow check.\r\n *\r\n * @private\r\n */\r\n componentDidLoad() {\r\n if (Build.isBrowser) {\r\n // Set up ResizeObserver to watch for footer size changes\r\n this.resizeObserver = new ResizeObserver(() => {\r\n this.checkOverflow();\r\n });\r\n\r\n // Initial check after a small delay to ensure DOM is ready\r\n requestAnimationFrame(() => {\r\n setTimeout(() => {\r\n if (this.footerRef) {\r\n this.resizeObserver.observe(this.footerRef);\r\n }\r\n this.checkOverflow();\r\n }, 100);\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Lifecycle: disconnectedCallback. Restores body styles and disconnects observers.\r\n *\r\n * @private\r\n */\r\n disconnectedCallback() {\r\n if (document.body.style.overflow === 'hidden') {\r\n document.body.style.overflow = this.originalBodyOverflow;\r\n document.body.style.paddingRight = this.originalBodyPaddingRight;\r\n }\r\n\r\n // Clean up ResizeObserver\r\n if (this.resizeObserver) {\r\n this.resizeObserver.disconnect();\r\n }\r\n }\r\n\r\n /**\r\n * Close the side sheet and emit close event.\r\n *\r\n * @private\r\n */\r\n private onClose = () => {\r\n this.open = false;\r\n this.udpSideSheetClose.emit();\r\n };\r\n\r\n /**\r\n * Backdrop click handler. Only closes when clicking the backdrop itself.\r\n *\r\n * @param e - MouseEvent from the backdrop click\r\n * @private\r\n */\r\n private onCloseBackdrop = (e: MouseEvent) => {\r\n if (e.target === e.currentTarget) {\r\n this.onClose();\r\n }\r\n };\r\n\r\n /**\r\n * Emit primary footer button click event.\r\n *\r\n * @private\r\n */\r\n private onPrimaryButtonClick = () => {\r\n this.udpPrimaryButtonClick.emit();\r\n };\r\n\r\n /**\r\n * Emit header action button click event.\r\n *\r\n * @private\r\n */\r\n private onHeaderActionButtonClick = () => {\r\n this.udpHeaderActionButtonClick.emit();\r\n };\r\n\r\n /**\r\n * Open overflow menu anchored to the clicked element.\r\n *\r\n * @param event - MouseEvent from the \"More\" button click\r\n * @private\r\n */\r\n private onMoreActionButtonClick = (event: MouseEvent) => {\r\n this.overflowMenuAnchor = event.currentTarget as HTMLElement;\r\n this.openOverflowMenu = true;\r\n };\r\n\r\n /**\r\n * Close the overflow popover.\r\n *\r\n * @param e - optional KeyboardEvent or MouseEvent (unused)\r\n * @private\r\n */\r\n private handleCloseOverflowMenu = () => {\r\n this.openOverflowMenu = false;\r\n };\r\n\r\n /**\r\n * Render the component UI.\r\n *\r\n * @returns JSX element tree\r\n * @private\r\n */\r\n render() {\r\n const widthClass = typeof this.width === 'number' ? 'custom-width' : this.width;\r\n const sideSheetStyle = typeof this.width === 'number' ? { maxWidth: `${this.width}px` } : {};\r\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\r\n const headerStartIcon = Boolean(this.headerActionButtonIcon) ? (\r\n <udp-icon iconName={this.headerActionButtonIcon} color=\"inherit\" />\r\n ) : undefined;\r\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\r\n const overflowIcon = <udp-icon iconName=\"overflowMenuVertical\" color=\"inherit\" />;\r\n\r\n return (\r\n <div class=\"backdrop\" onClick={this.onCloseBackdrop}>\r\n <div\r\n class={{ sheet: true, [this.position]: true, [widthClass]: true }}\r\n style={sideSheetStyle}\r\n >\r\n {/* Header layout has been changed here */}\r\n <div class=\"title-container\">\r\n <div class=\"close-button\">\r\n <stencil-icon-button\r\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\r\n icon={Close24}\r\n onClick={this.onClose}\r\n secondary\r\n ></stencil-icon-button>\r\n </div>\r\n <div class=\"title-text\">\r\n <unity-typography variant=\"h6\">{this.title}</unity-typography>\r\n </div>\r\n {/* Conditionally render the new header action button */}\r\n {(this.headerActionButtonLabel || this.headerSecondaryButtons?.length > 0) && (\r\n <div class=\"header-action-button\">\r\n {this.headerSecondaryButtons?.map((item: SecondaryButton) => (\r\n <udp-button\r\n variant=\"outlined\"\r\n disabled={item.disabled}\r\n onClick={item.onClick}\r\n endIcon={item.icon}\r\n >\r\n {item.label}\r\n </udp-button>\r\n ))}\r\n {this.headerActionButtonLabel && (\r\n <udp-button\r\n disabled={this.headerActionButtonDisabled}\r\n onClick={this.onHeaderActionButtonClick}\r\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\r\n startIcon={headerStartIcon}\r\n variant=\"contained\"\r\n >\r\n {this.headerActionButtonLabel}\r\n </udp-button>\r\n )}\r\n </div>\r\n )}\r\n </div>\r\n <div class=\"loader-container\">\r\n <udp-linear-loader class={{ 'is-loading': this.loading }} color=\"primary\" />\r\n </div>\r\n\r\n <div class={{ content: true, padding: this.padding }}>\r\n <slot />\r\n </div>\r\n {(this.primaryButtonLabel || this.footerSecondaryButtons?.length > 0) && (\r\n <div>\r\n <div class=\"loader-container\"></div>\r\n <div\r\n class={{\r\n footer: true,\r\n }}\r\n ref={el => (this.footerRef = el)}\r\n >\r\n {/* Visible buttons container */}\r\n {!this.showOverflowButton && this.footerSecondaryButtons?.length > 0 && (\r\n <div class=\"footer-secondary-buttons-container\">\r\n <div class=\"footer-secondary-buttons\">\r\n {this.footerSecondaryButtons?.map((item: SecondaryButton) => (\r\n <udp-button\r\n variant=\"outlined\"\r\n disabled={item.disabled}\r\n onClick={item.onClick}\r\n endIcon={item.icon}\r\n >\r\n {item.label}\r\n </udp-button>\r\n ))}\r\n </div>\r\n </div>\r\n )}\r\n\r\n {/* More button when overflowing */}\r\n {this.showOverflowButton && (\r\n <udp-button\r\n variant=\"outlined\"\r\n onClick={this.onMoreActionButtonClick}\r\n color=\"secondary\"\r\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\r\n endIcon={overflowIcon}\r\n >\r\n More\r\n </udp-button>\r\n )}\r\n\r\n {/* Primary button */}\r\n {this.primaryButtonLabel && (\r\n <udp-button\r\n variant=\"contained\"\r\n disabled={this.primaryButtonDisabled}\r\n onClick={this.onPrimaryButtonClick}\r\n endIcon={this.primaryButtonIcon}\r\n >\r\n {this.primaryButtonLabel}\r\n </udp-button>\r\n )}\r\n\r\n {/* Overflow menu */}\r\n {this.showOverflowButton && (\r\n <udp-pop-over\r\n anchorElement={this.overflowMenuAnchor}\r\n isOpen={this.openOverflowMenu}\r\n popoverWidth={'200px'}\r\n popoverMaxHeight={'300px'}\r\n handleOnClose={this.handleCloseOverflowMenu}\r\n >\r\n <div class=\"menu\">\r\n {this.footerSecondaryButtons?.map(item => (\r\n <udp-menu-item\r\n label={item?.label}\r\n iconName={item?.icon}\r\n onItemClick={() => {\r\n item?.onClick();\r\n this.handleCloseOverflowMenu();\r\n }}\r\n disabled={item?.disabled}\r\n />\r\n ))}\r\n </div>\r\n </udp-pop-over>\r\n )}\r\n\r\n {/* Hidden measurement container - renders all buttons for measurement */}\r\n <div\r\n ref={el => (this.measurementContainerRef = el)}\r\n style={{\r\n position: 'absolute',\r\n visibility: 'hidden',\r\n pointerEvents: 'none',\r\n display: 'flex',\r\n gap: 'var(--spacing-02, 4px)',\r\n }}\r\n aria-hidden=\"true\"\r\n >\r\n {this.footerSecondaryButtons?.map((item: SecondaryButton) => (\r\n <udp-button\r\n variant=\"text\"\r\n size=\"medium\"\r\n disabled={item.disabled}\r\n endIcon={item.icon}\r\n >\r\n {item.label}\r\n </udp-button>\r\n ))}\r\n {this.primaryButtonLabel && (\r\n <udp-button\r\n variant=\"contained\"\r\n size=\"medium\"\r\n disabled={this.primaryButtonDisabled}\r\n endIcon={this.primaryButtonIcon}\r\n >\r\n {this.primaryButtonLabel}\r\n </udp-button>\r\n )}\r\n </div>\r\n </div>\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n );\r\n }\r\n}\r\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,282 @@
1
+ import { r as registerInstance, h, H as Host, c as createEvent, a as getElement } from './index-CaZq3YdB.js';
2
+ import Close24 from '@carbon/icons/es/close/24';
3
+
4
+ const udpLinearLoaderCss = ":host{--udp-loader-primary-color:var(--primary-color, #2953ff);--udp-loader-secondary-color:var(--secondary-color, #6f767a);--udp-loader-success-color:var(--success-color, #0da40d);--udp-loader-error-color:var(--error-color, #ff0000);--udp-loader-warning-color:var(--warning-color, #ffa500);--udp-loader-info-color:var(--info-color, #2953ff)}.loader{position:relative;width:100%;height:4px;background-color:transparent;overflow:hidden;}.indeterminate{background-color:var(--udp-loader-primary-color);position:absolute;width:40%;height:100%;animation:indeterminate 1s linear infinite}.loader--color-primary .indeterminate{background-color:var(--udp-loader-primary-color)}.loader--color-secondary .indeterminate{background-color:var(--udp-loader-secondary-color)}.loader--color-success .indeterminate{background-color:var(--udp-loader-success-color)}.loader--color-error .indeterminate{background-color:var(--udp-loader-error-color)}.loader--color-warning .indeterminate{background-color:var(--udp-loader-warning-color)}.loader--color-info .indeterminate{background-color:var(--udp-loader-info-color)}@keyframes indeterminate{0%{left:-50%;width:50%}100%{left:100%;width:100%}}";
5
+
6
+ const UdpLinearLoader = class {
7
+ constructor(hostRef) {
8
+ registerInstance(this, hostRef);
9
+ /**
10
+ * The color of the loader. It supports theming using global CSS variables.
11
+ */
12
+ this.color = 'primary';
13
+ }
14
+ render() {
15
+ const loaderClasses = {
16
+ loader: true,
17
+ [`loader--color-${this.color}`]: true,
18
+ };
19
+ return (h(Host, { key: '9a117a437dfa0fb96e428aa052de8a5d04f8fd15' }, h("div", { key: '369d4f034b7d962bcc7eb621a078db1f107a0f8a', class: loaderClasses }, h("div", { key: 'ed2a6774666c41ba5e67147ffedce6af63aeb1e1', class: "indeterminate" }))));
20
+ }
21
+ };
22
+ UdpLinearLoader.style = udpLinearLoaderCss;
23
+
24
+ const udpSideSheetCss = ":host{position:fixed;top:0;left:0;width:0;height:0;overflow:hidden;transform:translate(0);z-index:9999;visibility:hidden;transition:visibility 0s 0.2s, width 0s 0.2s, height 0s 0.2s}:host(.is-visible){width:100vw;height:100vh;overflow:visible;visibility:visible;transition-delay:0s}.backdrop{background:rgba(0, 0, 0, 0.5);width:100%;height:100%;position:fixed;top:0;left:0;opacity:0;transition:opacity 0.2s ease-in-out}:host(.is-visible) .backdrop{opacity:1}.sheet{background:white;height:100vh;position:fixed;top:0;display:flex;flex-direction:column;box-shadow:0 0 4px rgba(0, 0, 0, 0.3);transition:transform 0.2s ease-in-out;width:100%}.sheet.right{right:0;transform:translateX(100%)}.sheet.left{left:0;transform:translateX(-100%)}:host(.is-visible) .sheet{transform:translateX(0)}.sheet.sm{max-width:360px}.sheet.md{max-width:600px}.sheet.lg{max-width:960px}.sheet.full{max-width:100%}.sheet.custom-width{}.title-container{display:flex;justify-content:space-between;align-items:center;flex-shrink:0;box-shadow:var(--elevation-01, 0 4px 8px rgba(0, 0, 0, 0.1));gap:var(--spacing-02)}.title-text{flex-grow:1;text-align:left;}.close-button{flex-shrink:0}.header-action-button{flex-shrink:0;display:flex;align-items:center;gap:var(--spacing-02, 4px);padding:var(--spacing-03, 8px) var(--spacing-03, 8px) var(--spacing-03, 8px) 0}.content{overflow-y:auto;flex-grow:1;background-color:var(--gray-01)}.content.padding{padding:var(--spacing-05, 24px)}.footer{padding:var(--spacing-03, 8px);box-shadow:var(--elevation-01, 0 4px 8px rgba(0, 0, 0, 0.1));display:flex;justify-content:flex-end;flex-shrink:0;width:100%;gap:var(--spacing-02, 4px);align-items:center}.footer.secondary-button-overflow{flex-direction:row-reverse}.footer-secondary-buttons-container{flex-grow:2;width:100%}.footer-secondary-buttons{display:flex;justify-content:flex-end;gap:var(--spacing-02, 4px);align-items:center}.footer-secondary-buttons.secondary-button-overflow{flex-grow:1}.loader-container{height:4px;width:100%;background-color:var(--gray-01)}.loader-container udp-linear-loader{visibility:hidden;opacity:0;transition:none}.loader-container udp-linear-loader.is-loading{visibility:visible;opacity:1;}";
25
+
26
+ const UdpSideSheet = class {
27
+ constructor(hostRef) {
28
+ registerInstance(this, hostRef);
29
+ this.udpSideSheetClose = createEvent(this, "udpSideSheetClose");
30
+ this.udpPrimaryButtonClick = createEvent(this, "udpPrimaryButtonClick");
31
+ this.udpHeaderActionButtonClick = createEvent(this, "udpHeaderActionButtonClick");
32
+ /** When true, the side sheet is open and visible */
33
+ this.open = false;
34
+ /** Position of the sheet on the screen */
35
+ this.position = 'right';
36
+ /** Width preset or a numeric pixel width */
37
+ this.width = 'md';
38
+ /** Controls whether default inner padding is applied */
39
+ this.padding = true;
40
+ /** When true, shows a top loader */
41
+ this.loading = false;
42
+ /** Whether the header action button is disabled */
43
+ this.headerActionButtonDisabled = false;
44
+ /** Whether the primary footer button is disabled */
45
+ this.primaryButtonDisabled = false;
46
+ /** Whether the footer should show the overflow "More" button */
47
+ this.showOverflowButton = false;
48
+ /** Whether the overflow popover is open */
49
+ this.openOverflowMenu = false;
50
+ this.visibleSecondaryButtons = [];
51
+ this.overflowSecondaryButtons = [];
52
+ /** Saved original document.body.overflow value to restore on close */
53
+ this.originalBodyOverflow = '';
54
+ /** Saved original document.body.paddingRight value to restore on close */
55
+ this.originalBodyPaddingRight = '';
56
+ /**
57
+ * Transition end handler used to remove the host element from body after close.
58
+ *
59
+ * @private
60
+ */
61
+ this.handleTransitionEnd = () => {
62
+ if (!this.open && this.hostEl.parentElement === document.body) {
63
+ document.body.removeChild(this.hostEl);
64
+ }
65
+ };
66
+ /**
67
+ * Close the side sheet and emit close event.
68
+ *
69
+ * @private
70
+ */
71
+ this.onClose = () => {
72
+ this.open = false;
73
+ this.udpSideSheetClose.emit();
74
+ };
75
+ /**
76
+ * Backdrop click handler. Only closes when clicking the backdrop itself.
77
+ *
78
+ * @param e - MouseEvent from the backdrop click
79
+ * @private
80
+ */
81
+ this.onCloseBackdrop = (e) => {
82
+ if (e.target === e.currentTarget) {
83
+ this.onClose();
84
+ }
85
+ };
86
+ /**
87
+ * Emit primary footer button click event.
88
+ *
89
+ * @private
90
+ */
91
+ this.onPrimaryButtonClick = () => {
92
+ this.udpPrimaryButtonClick.emit();
93
+ };
94
+ /**
95
+ * Emit header action button click event.
96
+ *
97
+ * @private
98
+ */
99
+ this.onHeaderActionButtonClick = () => {
100
+ this.udpHeaderActionButtonClick.emit();
101
+ };
102
+ /**
103
+ * Open overflow menu anchored to the clicked element.
104
+ *
105
+ * @param event - MouseEvent from the "More" button click
106
+ * @private
107
+ */
108
+ this.onMoreActionButtonClick = (event) => {
109
+ this.overflowMenuAnchor = event.currentTarget;
110
+ this.openOverflowMenu = true;
111
+ };
112
+ /**
113
+ * Close the overflow popover.
114
+ *
115
+ * @param e - optional KeyboardEvent or MouseEvent (unused)
116
+ * @private
117
+ */
118
+ this.handleCloseOverflowMenu = () => {
119
+ this.openOverflowMenu = false;
120
+ };
121
+ }
122
+ /**
123
+ * Watcher for `open` prop. Handles portal append/removal and body scroll lock.
124
+ *
125
+ * @param newValue - new value of the `open` prop
126
+ * @param oldValue - previous value of the `open` prop
127
+ */
128
+ handleOpenChange(newValue, oldValue) {
129
+ if (newValue === oldValue) {
130
+ return;
131
+ }
132
+ if (newValue) {
133
+ // Calculate scrollbar width before hiding it
134
+ const scrollbarWidth = window.innerWidth - document.documentElement.clientWidth;
135
+ // Save original values
136
+ this.originalBodyOverflow = document.body.style.overflow;
137
+ this.originalBodyPaddingRight = document.body.style.paddingRight;
138
+ document.body.appendChild(this.hostEl);
139
+ // Add padding to compensate for scrollbar
140
+ if (scrollbarWidth > 0) {
141
+ const currentPadding = parseInt(window.getComputedStyle(document.body).paddingRight) || 0;
142
+ document.body.style.paddingRight = `${currentPadding + scrollbarWidth}px`;
143
+ }
144
+ document.body.style.overflow = 'hidden';
145
+ requestAnimationFrame(() => {
146
+ this.hostEl.classList.add('is-visible');
147
+ // Check overflow after the side sheet is visible
148
+ setTimeout(() => this.checkOverflow(), 50);
149
+ });
150
+ }
151
+ else {
152
+ this.hostEl.classList.remove('is-visible');
153
+ document.body.style.overflow = this.originalBodyOverflow;
154
+ document.body.style.paddingRight = this.originalBodyPaddingRight;
155
+ this.hostEl.addEventListener('transitionend', this.handleTransitionEnd, { once: true });
156
+ }
157
+ }
158
+ /**
159
+ * Watcher for footer secondary buttons changes. Triggers overflow recalculation.
160
+ */
161
+ handleSecondaryButtonsChange() {
162
+ // Recheck overflow when buttons change
163
+ setTimeout(() => this.checkOverflow(), 50);
164
+ }
165
+ /**
166
+ * Measures footer buttons in an offscreen container and sets `showOverflowButton`.
167
+ * Safely returns early if required refs are unavailable.
168
+ */
169
+ checkOverflow() {
170
+ if (!this.footerRef || !this.measurementContainerRef) {
171
+ return;
172
+ }
173
+ if (!this.footerSecondaryButtons || this.footerSecondaryButtons.length === 0) {
174
+ this.showOverflowButton = false;
175
+ return;
176
+ }
177
+ // Get the footer container width (minus padding)
178
+ const footerWidth = this.footerRef.offsetWidth;
179
+ const footerStyle = window.getComputedStyle(this.footerRef);
180
+ const footerPaddingLeft = parseFloat(footerStyle.paddingLeft);
181
+ const footerPaddingRight = parseFloat(footerStyle.paddingRight);
182
+ const availableWidth = footerWidth - footerPaddingLeft - footerPaddingRight;
183
+ // Measure all buttons in the hidden measurement container
184
+ const measurementButtons = this.measurementContainerRef.querySelectorAll('udp-button');
185
+ let totalWidth = 0;
186
+ measurementButtons.forEach((button, index) => {
187
+ const buttonWidth = button && button instanceof HTMLElement ? button.offsetWidth : 0;
188
+ totalWidth += buttonWidth;
189
+ // Add gap spacing between buttons (except for the last one)
190
+ if (index < measurementButtons.length - 1) {
191
+ const containerStyle = window.getComputedStyle(this.measurementContainerRef);
192
+ const gap = parseFloat(containerStyle.gap) || 4; // Default gap from CSS
193
+ totalWidth += gap;
194
+ }
195
+ });
196
+ // Add a small buffer to prevent edge cases
197
+ const buffer = 10;
198
+ const isOverflowing = totalWidth + buffer > availableWidth;
199
+ this.showOverflowButton = isOverflowing;
200
+ }
201
+ /**
202
+ * Lifecycle: componentDidLoad. Sets up ResizeObserver and initial overflow check.
203
+ *
204
+ * @private
205
+ */
206
+ componentDidLoad() {
207
+ {
208
+ // Set up ResizeObserver to watch for footer size changes
209
+ this.resizeObserver = new ResizeObserver(() => {
210
+ this.checkOverflow();
211
+ });
212
+ // Initial check after a small delay to ensure DOM is ready
213
+ requestAnimationFrame(() => {
214
+ setTimeout(() => {
215
+ if (this.footerRef) {
216
+ this.resizeObserver.observe(this.footerRef);
217
+ }
218
+ this.checkOverflow();
219
+ }, 100);
220
+ });
221
+ }
222
+ }
223
+ /**
224
+ * Lifecycle: disconnectedCallback. Restores body styles and disconnects observers.
225
+ *
226
+ * @private
227
+ */
228
+ disconnectedCallback() {
229
+ if (document.body.style.overflow === 'hidden') {
230
+ document.body.style.overflow = this.originalBodyOverflow;
231
+ document.body.style.paddingRight = this.originalBodyPaddingRight;
232
+ }
233
+ // Clean up ResizeObserver
234
+ if (this.resizeObserver) {
235
+ this.resizeObserver.disconnect();
236
+ }
237
+ }
238
+ /**
239
+ * Render the component UI.
240
+ *
241
+ * @returns JSX element tree
242
+ * @private
243
+ */
244
+ render() {
245
+ var _a, _b, _c, _d, _e, _f, _g;
246
+ const widthClass = typeof this.width === 'number' ? 'custom-width' : this.width;
247
+ const sideSheetStyle = typeof this.width === 'number' ? { maxWidth: `${this.width}px` } : {};
248
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
249
+ const headerStartIcon = Boolean(this.headerActionButtonIcon) ? (h("udp-icon", { iconName: this.headerActionButtonIcon, color: "inherit" })) : undefined;
250
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
251
+ const overflowIcon = h("udp-icon", { key: '6da1f10cce0b9e2b2f597df9249ef45128445801', iconName: "overflowMenuVertical", color: "inherit" });
252
+ return (h("div", { key: '20237474eebbd73253c97b28229607d10ac91e2f', class: "backdrop", onClick: this.onCloseBackdrop }, h("div", { key: '5b09a3b7e0905a7eef6875499eb863daedcb8969', class: { sheet: true, [this.position]: true, [widthClass]: true }, style: sideSheetStyle }, h("div", { key: '99c0fa14ced2b4397b066f9348984cf85c5e6325', class: "title-container" }, h("div", { key: 'a47a3669b74bfc3e7235ab4487fcae6b24675b26', class: "close-button" }, h("stencil-icon-button", { key: '46a52c8e2f4ac95b4ef668e05905fdde9f8d0ee4',
253
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
254
+ icon: Close24, onClick: this.onClose, secondary: true })), h("div", { key: '267ede825a8d9fab576c7bb0eeac782b8195372c', class: "title-text" }, h("unity-typography", { key: 'b3001278f39e3311e2b736dd47d91ecb04601981', variant: "h6" }, this.title)), (this.headerActionButtonLabel || ((_a = this.headerSecondaryButtons) === null || _a === void 0 ? void 0 : _a.length) > 0) && (h("div", { key: '5751cfe92eb7b01c836085d50429f19234844b31', class: "header-action-button" }, (_b = this.headerSecondaryButtons) === null || _b === void 0 ? void 0 :
255
+ _b.map((item) => (h("udp-button", { variant: "outlined", disabled: item.disabled, onClick: item.onClick, endIcon: item.icon }, item.label))), this.headerActionButtonLabel && (h("udp-button", { key: 'a8f34ed12616418ee42cb5eec10e92add96598a6', disabled: this.headerActionButtonDisabled, onClick: this.onHeaderActionButtonClick,
256
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
257
+ startIcon: headerStartIcon, variant: "contained" }, this.headerActionButtonLabel))))), h("div", { key: '94364ba51f35c7a46fddb17792c7905dfd6ebc45', class: "loader-container" }, h("udp-linear-loader", { key: 'e12b1130a11b4a9de87aa8da219f538354508e9f', class: { 'is-loading': this.loading }, color: "primary" })), h("div", { key: 'eb842f58defdcd74ef6a28815f11f21c68c8c2ee', class: { content: true, padding: this.padding } }, h("slot", { key: 'd7731b049a94fb19d38c045ea76c2bf78062ec1b' })), (this.primaryButtonLabel || ((_c = this.footerSecondaryButtons) === null || _c === void 0 ? void 0 : _c.length) > 0) && (h("div", { key: '0991510d62b3fefd3027f15b96e46d44a8ac66e1' }, h("div", { key: '148a2ebb2385c9e04c5957fff1d9be90a57d441c', class: "loader-container" }), h("div", { key: 'ffe55575f51be1c9136cc1bdf8eb3a43e14b01da', class: {
258
+ footer: true,
259
+ }, ref: el => (this.footerRef = el) }, !this.showOverflowButton && ((_d = this.footerSecondaryButtons) === null || _d === void 0 ? void 0 : _d.length) > 0 && (h("div", { key: '47b70ed64e9246d63819afcdb93d40eb6559a9a8', class: "footer-secondary-buttons-container" }, h("div", { key: 'ef8f34e7c4c01c4a9f689a1cffe648837663a46c', class: "footer-secondary-buttons" }, (_e = this.footerSecondaryButtons) === null || _e === void 0 ? void 0 : _e.map((item) => (h("udp-button", { variant: "outlined", disabled: item.disabled, onClick: item.onClick, endIcon: item.icon }, item.label)))))), this.showOverflowButton && (h("udp-button", { key: 'aa388701ba4d91be157b3ee4ad434d50b8d03efe', variant: "outlined", onClick: this.onMoreActionButtonClick, color: "secondary",
260
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
261
+ endIcon: overflowIcon }, "More")), this.primaryButtonLabel && (h("udp-button", { key: 'cb644736d0d39dcd89cd2fe2d721810781a581d2', variant: "contained", disabled: this.primaryButtonDisabled, onClick: this.onPrimaryButtonClick, endIcon: this.primaryButtonIcon }, this.primaryButtonLabel)), this.showOverflowButton && (h("udp-pop-over", { key: '7de1a458880803c3a3b912aaa567c9df82748531', anchorElement: this.overflowMenuAnchor, isOpen: this.openOverflowMenu, popoverWidth: '200px', popoverMaxHeight: '300px', handleOnClose: this.handleCloseOverflowMenu }, h("div", { key: 'dc0dc7b56615ede816650bf970e6059b8ea30c2d', class: "menu" }, (_f = this.footerSecondaryButtons) === null || _f === void 0 ? void 0 : _f.map(item => (h("udp-menu-item", { label: item === null || item === void 0 ? void 0 : item.label, iconName: item === null || item === void 0 ? void 0 : item.icon, onItemClick: () => {
262
+ item === null || item === void 0 ? void 0 : item.onClick();
263
+ this.handleCloseOverflowMenu();
264
+ }, disabled: item === null || item === void 0 ? void 0 : item.disabled })))))), h("div", { key: 'a7aecadc65eb2fb3a106c19f6101e4c6c158c960', ref: el => (this.measurementContainerRef = el), style: {
265
+ position: 'absolute',
266
+ visibility: 'hidden',
267
+ pointerEvents: 'none',
268
+ display: 'flex',
269
+ gap: 'var(--spacing-02, 4px)',
270
+ }, "aria-hidden": "true" }, (_g = this.footerSecondaryButtons) === null || _g === void 0 ? void 0 :
271
+ _g.map((item) => (h("udp-button", { variant: "text", size: "medium", disabled: item.disabled, endIcon: item.icon }, item.label))), this.primaryButtonLabel && (h("udp-button", { key: '64be9bf39748c7c301d4f4d264fae98ed0e40302', variant: "contained", size: "medium", disabled: this.primaryButtonDisabled, endIcon: this.primaryButtonIcon }, this.primaryButtonLabel)))))))));
272
+ }
273
+ get hostEl() { return getElement(this); }
274
+ static get watchers() { return {
275
+ "open": ["handleOpenChange"],
276
+ "footerSecondaryButtons": ["handleSecondaryButtonsChange"]
277
+ }; }
278
+ };
279
+ UdpSideSheet.style = udpSideSheetCss;
280
+
281
+ export { UdpLinearLoader as udp_linear_loader, UdpSideSheet as udp_side_sheet };
282
+ //# sourceMappingURL=udp-linear-loader.udp-side-sheet.entry.js.map
@@ -93,11 +93,11 @@ const UdpMap = class {
93
93
  }
94
94
  //////////////////////////////////////////////////////////RENDER/////////////////////////////////////////////////////
95
95
  render() {
96
- return (h("map-component", { key: 'cf730fe0040dac4733618efa7f1b5912273a4014', handleSetMapComponent: this.handleSetMapComponent, data: this.data, isGeoJsonFormat: this.isGeoJsonFormat, geoJsonMappingConfig: this.geoJsonMappingConfig, enableZoom: this.enableZoom, mapZoom: this.mapZoom, mapCenter: this.mapCenter, mapHeight: this.mapHeight, crs: this.crs, mapProjection: this.mapProjection, mapDataProjection: this.mapDataProjection, getFilteredMapData: this.getFilteredMapData, getFeatureStyles: this.getFeatureStyles, getSelectedFeatureStyles: this.getSelectedFeatureStyles, filterPanel: this.filterPanel, filterPanelCallback: this.filterPanelCallback, enableTileSelection: this.enableTileSelection, tileLayersOptions: this.tileLayersOptions, defaultTileOptionName: this.defaultTileOptionName, layerOptions: this.layerOptions, initialSelectedLayers: this.initialSelectedLayers, bulkSelectedFeaturesActionPanel: this.bulkSelectedFeaturesActionPanel, handleSetSelectedFeaturesOnBulkSelect: this.handleSetSelectedFeaturesOnBulkSelect, handleSetSelectedFeatureOnSelect: this.handleSetSelectedFeatureOnSelect, filterLayersByRole: this.filterLayersByRole, layerKeys: this.layerKeys, layerKeySeparator: this.layerKeySeparator, user: this.user, layerRoles: this.layerRoles, filteredLayerOptionsByRole: this.filteredLayerOptionsByRole, handleSetFilteredLayerOptionsByRole: this.handleSetFilteredLayerOptionsByRole, readOnlyMap: this.readOnlyMap, enableViewFeature: this.enableViewFeature, handleViewFeature: this.handleViewFeature, bulkSelectionActive: this.bulkSelectionActive, splitActive: this.splitActive, enableDragBox: this.enableDragBox, selectFeatureInteraction: this.selectFeatureInteraction, handleSetSelectedFeatureProperties: this.handleSetSelectedFeatureProperties, selectedFeatureCoordinates: this.selectedFeatureCoordinates, selectedFeatureProperties: this.selectedFeatureProperties, enableAddNewFeature: this.enableAddNewFeature, handleGetZoomExtent: this.handleGetZoomExtent, selectedLayers: this.selectedLayers, handleSetSelectedLayers: val => {
96
+ return (h("map-component", { key: '69efae07b0c9f45f2f66d59fd5bb9092557d7d75', handleSetMapComponent: this.handleSetMapComponent, data: this.data, isGeoJsonFormat: this.isGeoJsonFormat, geoJsonMappingConfig: this.geoJsonMappingConfig, enableZoom: this.enableZoom, mapZoom: this.mapZoom, mapCenter: this.mapCenter, mapHeight: this.mapHeight, crs: this.crs, mapProjection: this.mapProjection, mapDataProjection: this.mapDataProjection, getFilteredMapData: this.getFilteredMapData, getFeatureStyles: this.getFeatureStyles, getSelectedFeatureStyles: this.getSelectedFeatureStyles, filterPanel: this.filterPanel, filterPanelCallback: this.filterPanelCallback, enableTileSelection: this.enableTileSelection, tileLayersOptions: this.tileLayersOptions, defaultTileOptionName: this.defaultTileOptionName, layerOptions: this.layerOptions, initialSelectedLayers: this.initialSelectedLayers, bulkSelectedFeaturesActionPanel: this.bulkSelectedFeaturesActionPanel, handleSetSelectedFeaturesOnBulkSelect: this.handleSetSelectedFeaturesOnBulkSelect, handleSetSelectedFeatureOnSelect: this.handleSetSelectedFeatureOnSelect, filterLayersByRole: this.filterLayersByRole, layerKeys: this.layerKeys, layerKeySeparator: this.layerKeySeparator, user: this.user, layerRoles: this.layerRoles, filteredLayerOptionsByRole: this.filteredLayerOptionsByRole, handleSetFilteredLayerOptionsByRole: this.handleSetFilteredLayerOptionsByRole, readOnlyMap: this.readOnlyMap, enableViewFeature: this.enableViewFeature, handleViewFeature: this.handleViewFeature, bulkSelectionActive: this.bulkSelectionActive, splitActive: this.splitActive, enableDragBox: this.enableDragBox, selectFeatureInteraction: this.selectFeatureInteraction, handleSetSelectedFeatureProperties: this.handleSetSelectedFeatureProperties, selectedFeatureCoordinates: this.selectedFeatureCoordinates, selectedFeatureProperties: this.selectedFeatureProperties, enableAddNewFeature: this.enableAddNewFeature, handleGetZoomExtent: this.handleGetZoomExtent, selectedLayers: this.selectedLayers, handleSetSelectedLayers: val => {
97
97
  this.updateSelectedLayers(val);
98
- }, readOnlyLayers: this.readOnlyLayers, additionalOnclosePopover: this.additionalOnclosePopover, popoverPrimaryActions: this.popoverPrimaryActions, popoverMoreIconButtonActions: this.popoverMoreIconButtonActions, getMessagePopover: this.getMessagePopover, getMessageIconPopover: this.getMessageIconPopover, hideMessageIconPopover: this.hideMessageIconPopover, popoverCardConfig: this.cardConfig, popoverWidth: this.popoverWidth, handleGetAdditionalFeaturePropertiesOnSelect: this.handleGetAdditionalFeaturePropertiesOnSelect, minZoom: this.minZoom, maxZoom: this.maxZoom }, this.enableToolbar && (h("udp-map-toolbar", { key: '49d244cc30139684e35f2f3d62a19fb994438882', map: this.map, mapTitle: this.mapTitle, mapProjection: this.mapProjection, getFeatureStyles: this.getFeatureStyles, getSelectedFeatureStyles: this.getSelectedFeatureStyles, filterPanel: this.filterPanel, enableTileSelection: this.enableTileSelection, tileLayersOptions: this.tileLayersOptions, defaultTileOptionName: this.defaultTileOptionName, layerOptions: this.layerOptions, bulkSelectedFeaturesActionPanel: this.bulkSelectedFeaturesActionPanel, handleSetSelectedFeaturesOnBulkSelect: this.handleSetSelectedFeaturesOnBulkSelect, handleRefresh: this.handleRefresh, refreshButtonTooltip: this.refreshButtonTooltip, readOnlyMap: this.readOnlyMap, enableAdd: this.enableAdd, handleAddNewFeatures: this.handleAddNewFeatures, addMultipleFeatures: this.addMultipleFeatures, enableSplitFeature: this.enableSplitFeature, handleSplitFeature: this.handleSplitFeature, handleSetSelectedFeatureProperties: this.handleSetSelectedFeatureProperties, filteredLayerOptionsByRole: this.filteredLayerOptionsByRole, handleSetBulkSelectionActive: this.handleSetBulkSelectionActive, enableDragBox: this.enableDragBox, handleSetEnableDragBox: this.handleSetEnableDragBox, splitActive: this.splitActive, handleSetSplitActive: this.handleSetSplitActive, selectFeatureInteraction: this.selectFeatureInteraction, enableAddNewFeature: this.enableAddNewFeature, handleEnableAddNewFeature: this.handleEnableAddNewFeature, handleSelectLayersCallback: this.handleSelectLayersCallback, selectedLayers: this.selectedLayers, handleSetSelectedLayers: val => {
98
+ }, readOnlyLayers: this.readOnlyLayers, additionalOnclosePopover: this.additionalOnclosePopover, popoverPrimaryActions: this.popoverPrimaryActions, popoverMoreIconButtonActions: this.popoverMoreIconButtonActions, getMessagePopover: this.getMessagePopover, getMessageIconPopover: this.getMessageIconPopover, hideMessageIconPopover: this.hideMessageIconPopover, popoverCardConfig: this.cardConfig, popoverWidth: this.popoverWidth, handleGetAdditionalFeaturePropertiesOnSelect: this.handleGetAdditionalFeaturePropertiesOnSelect, minZoom: this.minZoom, maxZoom: this.maxZoom }, this.enableToolbar && (h("udp-map-toolbar", { key: '3af4c7dd6451b1a16146eb0161ebcb13f12040f6', map: this.map, mapTitle: this.mapTitle, mapProjection: this.mapProjection, getFeatureStyles: this.getFeatureStyles, getSelectedFeatureStyles: this.getSelectedFeatureStyles, filterPanel: this.filterPanel, enableTileSelection: this.enableTileSelection, tileLayersOptions: this.tileLayersOptions, defaultTileOptionName: this.defaultTileOptionName, layerOptions: this.layerOptions, bulkSelectedFeaturesActionPanel: this.bulkSelectedFeaturesActionPanel, handleSetSelectedFeaturesOnBulkSelect: this.handleSetSelectedFeaturesOnBulkSelect, handleRefresh: this.handleRefresh, refreshButtonTooltip: this.refreshButtonTooltip, readOnlyMap: this.readOnlyMap, enableAdd: this.enableAdd, handleAddNewFeatures: this.handleAddNewFeatures, addMultipleFeatures: this.addMultipleFeatures, enableSplitFeature: this.enableSplitFeature, handleSplitFeature: this.handleSplitFeature, handleSetSelectedFeatureProperties: this.handleSetSelectedFeatureProperties, filteredLayerOptionsByRole: this.filteredLayerOptionsByRole, handleSetBulkSelectionActive: this.handleSetBulkSelectionActive, enableDragBox: this.enableDragBox, handleSetEnableDragBox: this.handleSetEnableDragBox, splitActive: this.splitActive, handleSetSplitActive: this.handleSetSplitActive, selectFeatureInteraction: this.selectFeatureInteraction, enableAddNewFeature: this.enableAddNewFeature, handleEnableAddNewFeature: this.handleEnableAddNewFeature, handleSelectLayersCallback: this.handleSelectLayersCallback, selectedLayers: this.selectedLayers, handleSetSelectedLayers: val => {
99
99
  this.updateSelectedLayers(val);
100
- }, addFeaturePanelConfig: this.addFeaturePanelConfig })), h("slot", { key: '88fad9362a1e7d28a537eb2dfcdcb9735f491542' })));
100
+ }, addFeaturePanelConfig: this.addFeaturePanelConfig })), h("slot", { key: '00102aa5f21cb5fa6382f9e0785486cd956d714f' })));
101
101
  }
102
102
  static get watchers() { return {
103
103
  "enableDragBox": ["watchDragBoxandSelectedFeatureInteraction"],
@@ -0,0 +1 @@
1
+ {"version":3,"file":"udp-menu-item.udp-pop-over.entry.js","sources":["src/components/menu/menu-item/udp-menu-item.css?tag=udp-menu-item&encapsulation=shadow","src/components/menu/menu-item/udp-menu-item.tsx","src/components/data-display/pop-over/udp-pop-over.css?tag=udp-pop-over&encapsulation=shadow","src/components/data-display/pop-over/udp-pop-over.tsx"],"sourcesContent":["/* Reset default button styles and apply menu-item look */\n.menu-item-root {\n display: flex;\n width: 100%;\n padding: 8px 16px;\n gap: 8px;\n align-items: center;\n\n /* Reset button defaults */\n background: none;\n border: none;\n font-family: inherit;\n text-align: left;\n\n cursor: pointer;\n transition: background-color 0.15s ease-in-out;\n}\n\n.menu-item-root:hover:not(:disabled) {\n background-color: rgba(0, 0, 0, 0.08);\n}\n\n.menu-item-label {\n font-size: 14px;\n}\n\n/* The native :disabled pseudo-class is now used */\n.menu-item-root:disabled {\n cursor: not-allowed;\n opacity: 0.4;\n}\n\n.menu-icon {\n height: 100%;\n}\n","import { Component, Prop, h, Event, EventEmitter } from '@stencil/core';\n\n@Component({\n tag: 'udp-menu-item',\n styleUrl: 'udp-menu-item.css',\n shadow: true,\n})\nexport class UdpMenuItem {\n @Prop() label: string;\n @Prop() iconName: string;\n @Prop({ reflect: true }) disabled: boolean = false; // reflect: true helps with CSS styling\n\n /**\n * @deprecated Use itemClick event\n */\n @Prop() handleOnClick: (e: Event) => void;\n\n /** Emits when the item is clicked. */\n @Event() itemClick: EventEmitter<MouseEvent>;\n\n private handleItemClick = (e: MouseEvent) => {\n // if (this.disabled) {\n // e.stopPropagation();\n // return;\n // }\n this.itemClick.emit(e);\n };\n\n render() {\n return (\n <button\n class=\"menu-item-root\"\n onClick={this.handleItemClick}\n disabled={this.disabled}\n role=\"menuitem\"\n >\n {this.iconName && <udp-icon iconName={this.iconName} class=\"menu-icon\" />}\n <span class=\"menu-item-label\">\n <unity-typography variant='body1'>{this.label}</unity-typography>\n </span>\n </button>\n );\n }\n}\n",":host {\n display: block;\n position: fixed;\n z-index: 9999;\n\n /* FIX: Start with pointer-events none so it can't be clicked when invisible. */\n pointer-events: none;\n opacity: 0;\n\n /* This gives the subtle \"pop\" effect without the flying animation. */\n transform: scale(0.95);\n\n /* FIX: Only transition opacity for a clean fade-in/out. */\n transition: opacity 0.2s ease-out;\n\n}\n\n:host(.is-visible) {\n /* FIX: Re-enable pointer events so the menu can be clicked. */\n pointer-events: auto;\n opacity: 1;\n transform: scale(1);\n}\n\n.popover {\n background-color: white;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n border: 1px solid #e0e0e0;\n}\n","import { createPopper, Instance } from '@popperjs/core';\nimport { Component, h, Host, Prop, Watch, Element } from '@stencil/core';\n\n@Component({\n tag: 'udp-pop-over',\n styleUrl: 'udp-pop-over.css',\n shadow: true,\n})\nexport class UdpPopOver {\n @Element() hostEl!: HTMLElement;\n @Prop() anchorElement: string | HTMLElement;\n @Prop({ reflect: true }) isOpen: boolean = false;\n @Prop() popoverWidth: string;\n @Prop() popoverMaxHeight: string;\n @Prop() popoverPlacement: any = 'bottom-start';\n @Prop() handleOnClose?: (event: Event) => void;\n @Prop() appendToBody: boolean = true;\n @Prop() container?: HTMLElement;\n @Prop() overflow?: string = 'auto';\n\n private popperInstance: Instance;\n\n disconnectedCallback() {\n this.removeListeners();\n this.destroyPopper();\n }\n\n @Watch('isOpen')\n handleOpenChange(newValue: boolean) {\n newValue ? this.present() : this.dismiss();\n }\n\n private present() {\n const containerEl = this.getContainer();\n\n if (containerEl) {\n containerEl.appendChild(this.hostEl);\n }\n\n this.addListeners();\n\n requestAnimationFrame(() => {\n this.setupPopper();\n this.hostEl.classList.add('is-visible');\n });\n }\n\n private dismiss() {\n this.removeListeners();\n this.hostEl.classList.remove('is-visible');\n this.hostEl.addEventListener('transitionend', this.handleTransitionEnd, { once: true });\n }\n\n private handleTransitionEnd = () => {\n // FIX: Only remove from body if it's truly closed and still there.\n if (!this.isOpen) {\n if (this.appendToBody && this.hostEl.parentElement === document.body) {\n document.body.removeChild(this.hostEl);\n } else if (this.container && this.hostEl.parentElement === this.container) {\n this.container.removeChild(this.hostEl);\n }\n }\n this.destroyPopper();\n };\n\n private addListeners() {\n document.addEventListener('keydown', this.handleKeyDown);\n setTimeout(() => {\n if (this.isOpen) {\n document.addEventListener('click', this.handleClickOutside);\n }\n }, 0);\n }\n\n private removeListeners() {\n document.removeEventListener('keydown', this.handleKeyDown);\n document.removeEventListener('click', this.handleClickOutside);\n }\n\n private handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n this.handleOnClose?.(event);\n }\n };\n\n private handleClickOutside = (event: MouseEvent) => {\n const path = event.composedPath();\n const anchorEl = this.getAnchorElement();\n if (path.includes(this.hostEl) || (anchorEl && path.includes(anchorEl))) {\n return;\n }\n this.handleOnClose?.(event);\n };\n\n private getAnchorElement(): HTMLElement | null {\n return typeof this.anchorElement === 'string' ? document.getElementById(this.anchorElement) : this.anchorElement;\n }\n\n private getContainer(): HTMLElement {\n if (this.container) return this.container;\n\n if (this.appendToBody) {\n return document.body;\n }\n\n return null;\n }\n\n private setupPopper() {\n const anchorEl = this.getAnchorElement();\n if (!anchorEl) {\n console.error('UdpPopover: Anchor element could not be found.');\n return;\n }\n // Ensure we don't create multiple instances\n if (this.popperInstance) {\n this.popperInstance.destroy();\n }\n\n this.popperInstance = createPopper(anchorEl, this.hostEl as HTMLElement, {\n strategy: 'fixed',\n placement: this.popoverPlacement,\n modifiers: [{ name: 'offset', options: { offset: [0, 8] } }, { name: 'preventOverflow', options: { padding: 8 } }, { name: 'flip' }],\n });\n }\n\n private destroyPopper() {\n if (this.popperInstance) {\n this.popperInstance.destroy();\n this.popperInstance = null;\n }\n }\n\n componentWillLoad() {\n if (this.isOpen) {\n this.present();\n }\n }\n\n\n render() {\n const style = {\n width: this.popoverWidth,\n maxHeight: this.popoverMaxHeight,\n overflow: this.overflow\n };\n\n return (\n <Host>\n <div class=\"popover\" style={style}>\n <slot />\n </div>\n </Host>\n );\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1,6 +1,27 @@
1
- import { r as registerInstance, h, H as Host, a as getElement } from './index-CaZq3YdB.js';
1
+ import { r as registerInstance, c as createEvent, h, H as Host, a as getElement } from './index-CaZq3YdB.js';
2
2
  import { createPopper } from '@popperjs/core';
3
3
 
4
+ const udpMenuItemCss = ".menu-item-root{display:flex;width:100%;padding:8px 16px;gap:8px;align-items:center;background:none;border:none;font-family:inherit;text-align:left;cursor:pointer;transition:background-color 0.15s ease-in-out}.menu-item-root:hover:not(:disabled){background-color:rgba(0, 0, 0, 0.08)}.menu-item-label{font-size:14px}.menu-item-root:disabled{cursor:not-allowed;opacity:0.4}.menu-icon{height:100%}";
5
+
6
+ const UdpMenuItem = class {
7
+ constructor(hostRef) {
8
+ registerInstance(this, hostRef);
9
+ this.itemClick = createEvent(this, "itemClick");
10
+ this.disabled = false; // reflect: true helps with CSS styling
11
+ this.handleItemClick = (e) => {
12
+ // if (this.disabled) {
13
+ // e.stopPropagation();
14
+ // return;
15
+ // }
16
+ this.itemClick.emit(e);
17
+ };
18
+ }
19
+ render() {
20
+ return (h("button", { key: '4a43cdb229edec0f13ceda8672bfd3c48c545dc6', class: "menu-item-root", onClick: this.handleItemClick, disabled: this.disabled, role: "menuitem" }, this.iconName && h("udp-icon", { key: '499c217a79efe99f11e289f9792eb1f9307264bb', iconName: this.iconName, class: "menu-icon" }), h("span", { key: '8c414f47700d8b3802d81579fb1374aa81c8691b', class: "menu-item-label" }, h("unity-typography", { key: '5c95b5ab659abe6c7baa2a1b7a287077afd4af92', variant: 'body1' }, this.label))));
21
+ }
22
+ };
23
+ UdpMenuItem.style = udpMenuItemCss;
24
+
4
25
  const udpPopOverCss = ":host{display:block;position:fixed;z-index:9999;pointer-events:none;opacity:0;transform:scale(0.95);transition:opacity 0.2s ease-out}:host(.is-visible){pointer-events:auto;opacity:1;transform:scale(1)}.popover{background-color:white;box-shadow:0 4px 12px rgba(0, 0, 0, 0.15);border:1px solid #e0e0e0}";
5
26
 
6
27
  const UdpPopOver = class {
@@ -126,5 +147,5 @@ const UdpPopOver = class {
126
147
  };
127
148
  UdpPopOver.style = udpPopOverCss;
128
149
 
129
- export { UdpPopOver as udp_pop_over };
130
- //# sourceMappingURL=udp-pop-over.entry.js.map
150
+ export { UdpMenuItem as udp_menu_item, UdpPopOver as udp_pop_over };
151
+ //# sourceMappingURL=udp-menu-item.udp-pop-over.entry.js.map
@@ -20,7 +20,7 @@ const UdpPage = class {
20
20
  padding: this.padding,
21
21
  margin: '0 auto', // Centers the content if max-width is set
22
22
  };
23
- return (h("div", { key: 'cd340c347257f5eb66d73ed93ce4164ba0d6c94c', style: style }, h("slot", { key: '68e33d37810a56cf7fc6f7290a6d44c10c4ef781' }), " "));
23
+ return (h("div", { key: '87960916a8c702c88f3a7dd7a9ef90227d76f605', style: style }, h("slot", { key: '1915453eae25182b42e004450ca04ee20c17cbff' }), " "));
24
24
  }
25
25
  };
26
26
  UdpPage.style = udpPageCss;
@@ -11,7 +11,7 @@ const UdpSkeletonLoading = class {
11
11
  this.borderRadius = '4px';
12
12
  }
13
13
  render() {
14
- return (h("div", { key: 'c4d09711b610d9d0219f5964d1572ef7af46b738', class: "skeleton-loader", style: { width: this.width, height: this.height, borderRadius: this.borderRadius } }));
14
+ return (h("div", { key: '2801b43f47755995952a8ebda27acd6557b340f8', class: "skeleton-loader", style: { width: this.width, height: this.height, borderRadius: this.borderRadius } }));
15
15
  }
16
16
  };
17
17
  UdpSkeletonLoading.style = udpSkeletonLoadingCss;
@@ -55,7 +55,7 @@ const UdpSplitScreen = class {
55
55
  }
56
56
  }
57
57
  render() {
58
- return (h("div", { key: '45482d8017aa9e124177dcdf2d4173361b05fac8', ref: (el) => this.element = el, class: { 'container': true, 'open': this.isOpen } }, h("div", { key: 'c50057f1966e96ed6c6e01e025f30167ca34eda2', class: "panel", style: { width: `${this.panelWidth}%` } }, h("slot", { key: '47bd54df69170935664bac84157d563ca9f7db34', name: "first-panel" })), h("div", { key: 'ba66ae724133870c289a9b5eafc19a1ca220c0ef', class: "resizer", onMouseDown: (event) => event.preventDefault() }, h("div", { key: '6b40d3ca3df57595ef9dd206b37b1932bf033809', class: "drag-handle" })), h("div", { key: 'fc515cb4a0c2eec22d45ba818a5b271f3a861039', class: "panel", style: { width: `${100 - this.panelWidth}%` } }, h("slot", { key: '103aac71fb969095ab17605be85e57053f596d71', name: "second-panel" }, this.panelContent))));
58
+ return (h("div", { key: 'c1a7e0eba3ac1fcc5fd02ebcfd24ad866ddd5a43', ref: (el) => this.element = el, class: { 'container': true, 'open': this.isOpen } }, h("div", { key: 'ba41dc15748286b532e98574db37413ec8428110', class: "panel", style: { width: `${this.panelWidth}%` } }, h("slot", { key: 'a5789cb6914ad71421a23bbedff897ab3af03356', name: "first-panel" })), h("div", { key: 'bc81bfcfe169236f7102ad340b5e87b169cbb368', class: "resizer", onMouseDown: (event) => event.preventDefault() }, h("div", { key: 'eb72ee3c6aeed6c26d07d72f0818bcce3d1b0dc6', class: "drag-handle" })), h("div", { key: '606d564838ffaad254738b761d9d4e1f382888f6', class: "panel", style: { width: `${100 - this.panelWidth}%` } }, h("slot", { key: '682ce28bd7d62692855eb5254da515119dab9214', name: "second-panel" }, this.panelContent))));
59
59
  }
60
60
  };
61
61
  UdpSplitScreen.style = udpSplitScreenCss;