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
@@ -20,7 +20,7 @@ const UdpContainerQueryGridItem = class {
20
20
  .join('\n');
21
21
  }
22
22
  render() {
23
- return (index.h(index.Host, { key: 'a12c7a9e3567019bfa3129cf0b45b9e5f9454044' }, index.h("style", { key: 'c41e5e648f8a78f965ff1044479ca1e7c785b598' }, this.getSpanStyles()), index.h("slot", { key: 'a6ac351a5a3ec74ce36667cdef91c88c1459482a' })));
23
+ return (index.h(index.Host, { key: '9e1c6d6c0f8011400b6271af8bcdbf5574d725dc' }, index.h("style", { key: '6243776119bad211fe96af76fdc18d8fe4b8aa1e' }, this.getSpanStyles()), index.h("slot", { key: '57c8cab142be8b9fcd66509c70bd0e01a08b08d8' })));
24
24
  }
25
25
  };
26
26
  UdpContainerQueryGridItem.style = udpContainerQueryGridItemCss;
@@ -34,7 +34,7 @@ const UdpContainerQueryGrid = class {
34
34
  gap: `${this.gaps[breakpoint]}rem`,
35
35
  }));
36
36
  });
37
- return (index.h(index.Host, { key: '63e6f7902336ffc08bd3bb251907877325cf0d12' }, index.h("udp-container-query", { key: 'c8206e4612990b72e81105673e2c72e3e63410bb', queries: queries }, index.h("div", { key: 'cc01e88216ba2dd069ad1cd194ceb8c5026b4a37', class: "grid-container" }, index.h("slot", { key: '37b9a99849d97ef8e8c33d1e401f90b919115a51' }))), index.h("style", { key: '4ec725b30fc8e830798e4816ae1bc0c5a9b38fd4' }, `
37
+ return (index.h(index.Host, { key: '8fcf614cb145b65faa50f9cd77f2196931e5ac3e' }, index.h("udp-container-query", { key: '7f9e61025ff57faae311f536f479e36360334b44', queries: queries }, index.h("div", { key: 'c810de4cea74a5278556751f9148123e91ad7f21', class: "grid-container" }, index.h("slot", { key: '71a1ab5854110ebfaaab31bc76751d8925881801' }))), index.h("style", { key: '39d63f3510f1bf7abc892c3131480c71b969cb5d' }, `
38
38
  .grid-container {
39
39
  display: grid;
40
40
  grid-template-columns: repeat(${this.columns[0]}, 1fr);
@@ -27,9 +27,9 @@ const UdpContainerQuery = class {
27
27
  return styleRules;
28
28
  }
29
29
  render() {
30
- return (index.h(index.Host, { key: '9bc9f62ca83c3c794e909ee966947675fb9870da', class: {
30
+ return (index.h(index.Host, { key: 'abba69fdcf35ed43f74dea1cfa19a6e7e9ae80d2', class: {
31
31
  [this.customClass]: !!this.customClass,
32
- } }, index.h("style", { key: '43ba2fd574da0e60066064c06413a84004e57d83' }, this.getContainerQueryStyle()), index.h("slot", { key: '17633bfe61d8993a986de0263a4a68399d0f9262' })));
32
+ } }, index.h("style", { key: 'dc349f2310a763938cd017553a49296e397cf645' }, this.getContainerQueryStyle()), index.h("slot", { key: '481e4dfe1f0f7a7fcf153461d5f3a0cfae6ecfee' })));
33
33
  }
34
34
  };
35
35
  UdpContainerQuery.style = udpContainerQueryCss;
@@ -0,0 +1,35 @@
1
+ 'use strict';
2
+
3
+ var index = require('./index-CGCOXUJE.js');
4
+
5
+ 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}";
6
+
7
+ const UdpContainer = class {
8
+ constructor(hostRef) {
9
+ index.registerInstance(this, hostRef);
10
+ /**
11
+ * If true, the container will be fluid (100% width at all breakpoints)
12
+ */
13
+ this.fluid = false;
14
+ /**
15
+ * Maximum width for the container at different breakpoints
16
+ */
17
+ this.maxWidth = 'lg';
18
+ /**
19
+ * Add padding to the container
20
+ */
21
+ this.padding = true;
22
+ }
23
+ render() {
24
+ return (index.h("div", { key: 'fb6ff14c09a223d0181b361acc1243f070e062e3', class: {
25
+ 'udp-container': true,
26
+ 'udp-container--fluid': this.fluid,
27
+ 'udp-container--padded': this.padding,
28
+ [`udp-container--${this.maxWidth}`]: true,
29
+ } }, index.h("slot", { key: '00a20124101fcbed8deef25139de5598b44f178a' })));
30
+ }
31
+ };
32
+ UdpContainer.style = udpContainerCss;
33
+
34
+ exports.udp_container = UdpContainer;
35
+ //# sourceMappingURL=udp-container.entry.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"udp-container.entry.cjs.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":["h"],"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,QACEA,OACE,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,EAEDA,OAAa,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAA,CACT;;;;;;;"}
@@ -35,7 +35,7 @@ const UdpDateRangeSelector = class {
35
35
  : this.variant === 'single'
36
36
  ? 'calendar-date'
37
37
  : 'calendar-range';
38
- return (index.h(index.Host, { key: '98fb48f793658c67a5ae8e84daa712295a9e3080', style: { '--calendar-width': this.width } }, index.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 }, index.h("udp-icon", { key: '7f8a4aa9e0ecebdc6e806c3d20fe9fb55559e0ab', slot: "previous", iconName: 'chevronLeft16', color: "inherit" }), index.h("udp-icon", { key: 'ab0efbca0d3bd404c2e9fe43864eac1f156a73d0', slot: "next", iconName: 'chevronRight16', color: "inherit" }), index.h("div", { key: 'aadb14be39e4ef95630514ae378aa254bcfb2d53', class: "grid" }, Array.from({ length: this.monthsToDisplay }).map((_, index$1) => (index.h("calendar-month", { offset: index$1 })))))));
38
+ return (index.h(index.Host, { key: '872a0ac12d8ba50108eb2c996f5c68d853fe538b', style: { '--calendar-width': this.width } }, index.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 }, index.h("udp-icon", { key: 'eaf925e2c0ad13010adc17825dd012377e736a69', slot: "previous", iconName: 'chevronLeft16', color: "inherit" }), index.h("udp-icon", { key: '1bc7f790f4b310fd80ed48824b63acef742ef196', slot: "next", iconName: 'chevronRight16', color: "inherit" }), index.h("div", { key: 'df184ba087089ce5e53ea80d1cda01e6428e36f3', class: "grid" }, Array.from({ length: this.monthsToDisplay }).map((_, index$1) => (index.h("calendar-month", { offset: index$1 })))))));
39
39
  }
40
40
  };
41
41
  UdpDateRangeSelector.style = udpDateRangeSelectorCss;
@@ -121,7 +121,7 @@ const DynamicContainerWithMenu = class {
121
121
  this.udpChipClicked.emit(chipText);
122
122
  }
123
123
  render() {
124
- return (index.h("div", { key: '7aa41191a2fd7b8852f465ac8a1957fb57a9791d', class: "container" }, index.h("div", { key: 'd62603a8717a3b95f6d4552c6ba44ad58885da3c', class: "chips" }, console.log('Received data for chips via executeQwith', this.visibleChildren), this.visibleChildren && this.visibleChildren.map((child, index$1) => (index.h("stencil-chip", { color: "secondary", key: index$1, text: child.description, "show-delete": "false", externalToggleString: this.externalToggle })))), index.h("div", { key: '584c495f74c2f53a0c6b53e3b23fe1dbbba481f4', class: "overflow" }, index.h("udp-pop-over", { key: '8ee9fb7ca327b54f6bf120d1e57fed80eb7211b4', isOpen: this.popoverOpen, anchorElement: document.getElementById('anchorElement') }, index.h("div", { key: '84ed96340e2c4eb20ee83dafb868301eea36b939', class: "menu" }, this.menuChildren && this.menuChildren.map((child, index$1) => (index.h("stencil-chip", { key: index$1, text: child.label, "show-delete": "false" }, " "))))))));
124
+ return (index.h("div", { key: 'f09bf517019dc24f5a721b4c8be5856eb0b457ac', class: "container" }, index.h("div", { key: '6881c4b03240b798a2377957131d824a6086f2a0', class: "chips" }, console.log('Received data for chips via executeQwith', this.visibleChildren), this.visibleChildren && this.visibleChildren.map((child, index$1) => (index.h("stencil-chip", { color: "secondary", key: index$1, text: child.description, "show-delete": "false", externalToggleString: this.externalToggle })))), index.h("div", { key: '039f9472b7beb854f632859ba4c4718bea5a05c8', class: "overflow" }, index.h("udp-pop-over", { key: '358e339b4e83af974cd5470a593638becac83754', isOpen: this.popoverOpen, anchorElement: document.getElementById('anchorElement') }, index.h("div", { key: 'ec28e9f5ad344f13d319da7576188200044c60f5', class: "menu" }, this.menuChildren && this.menuChildren.map((child, index$1) => (index.h("stencil-chip", { key: index$1, text: child.label, "show-delete": "false" }, " "))))))));
125
125
  }
126
126
  get el() { return index.getElement(this); }
127
127
  static get watchers() { return {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"udp-linear-loader.udp-side-sheet.entry.cjs.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":["h","Host","Close24"],"mappings":"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"}
@@ -0,0 +1,289 @@
1
+ 'use strict';
2
+
3
+ var index = require('./index-CGCOXUJE.js');
4
+ var Close24 = require('@carbon/icons/es/close/24');
5
+
6
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
7
+
8
+ var Close24__default = /*#__PURE__*/_interopDefault(Close24);
9
+
10
+ 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%}}";
11
+
12
+ const UdpLinearLoader = class {
13
+ constructor(hostRef) {
14
+ index.registerInstance(this, hostRef);
15
+ /**
16
+ * The color of the loader. It supports theming using global CSS variables.
17
+ */
18
+ this.color = 'primary';
19
+ }
20
+ render() {
21
+ const loaderClasses = {
22
+ loader: true,
23
+ [`loader--color-${this.color}`]: true,
24
+ };
25
+ return (index.h(index.Host, { key: '9a117a437dfa0fb96e428aa052de8a5d04f8fd15' }, index.h("div", { key: '369d4f034b7d962bcc7eb621a078db1f107a0f8a', class: loaderClasses }, index.h("div", { key: 'ed2a6774666c41ba5e67147ffedce6af63aeb1e1', class: "indeterminate" }))));
26
+ }
27
+ };
28
+ UdpLinearLoader.style = udpLinearLoaderCss;
29
+
30
+ 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;}";
31
+
32
+ const UdpSideSheet = class {
33
+ constructor(hostRef) {
34
+ index.registerInstance(this, hostRef);
35
+ this.udpSideSheetClose = index.createEvent(this, "udpSideSheetClose");
36
+ this.udpPrimaryButtonClick = index.createEvent(this, "udpPrimaryButtonClick");
37
+ this.udpHeaderActionButtonClick = index.createEvent(this, "udpHeaderActionButtonClick");
38
+ /** When true, the side sheet is open and visible */
39
+ this.open = false;
40
+ /** Position of the sheet on the screen */
41
+ this.position = 'right';
42
+ /** Width preset or a numeric pixel width */
43
+ this.width = 'md';
44
+ /** Controls whether default inner padding is applied */
45
+ this.padding = true;
46
+ /** When true, shows a top loader */
47
+ this.loading = false;
48
+ /** Whether the header action button is disabled */
49
+ this.headerActionButtonDisabled = false;
50
+ /** Whether the primary footer button is disabled */
51
+ this.primaryButtonDisabled = false;
52
+ /** Whether the footer should show the overflow "More" button */
53
+ this.showOverflowButton = false;
54
+ /** Whether the overflow popover is open */
55
+ this.openOverflowMenu = false;
56
+ this.visibleSecondaryButtons = [];
57
+ this.overflowSecondaryButtons = [];
58
+ /** Saved original document.body.overflow value to restore on close */
59
+ this.originalBodyOverflow = '';
60
+ /** Saved original document.body.paddingRight value to restore on close */
61
+ this.originalBodyPaddingRight = '';
62
+ /**
63
+ * Transition end handler used to remove the host element from body after close.
64
+ *
65
+ * @private
66
+ */
67
+ this.handleTransitionEnd = () => {
68
+ if (!this.open && this.hostEl.parentElement === document.body) {
69
+ document.body.removeChild(this.hostEl);
70
+ }
71
+ };
72
+ /**
73
+ * Close the side sheet and emit close event.
74
+ *
75
+ * @private
76
+ */
77
+ this.onClose = () => {
78
+ this.open = false;
79
+ this.udpSideSheetClose.emit();
80
+ };
81
+ /**
82
+ * Backdrop click handler. Only closes when clicking the backdrop itself.
83
+ *
84
+ * @param e - MouseEvent from the backdrop click
85
+ * @private
86
+ */
87
+ this.onCloseBackdrop = (e) => {
88
+ if (e.target === e.currentTarget) {
89
+ this.onClose();
90
+ }
91
+ };
92
+ /**
93
+ * Emit primary footer button click event.
94
+ *
95
+ * @private
96
+ */
97
+ this.onPrimaryButtonClick = () => {
98
+ this.udpPrimaryButtonClick.emit();
99
+ };
100
+ /**
101
+ * Emit header action button click event.
102
+ *
103
+ * @private
104
+ */
105
+ this.onHeaderActionButtonClick = () => {
106
+ this.udpHeaderActionButtonClick.emit();
107
+ };
108
+ /**
109
+ * Open overflow menu anchored to the clicked element.
110
+ *
111
+ * @param event - MouseEvent from the "More" button click
112
+ * @private
113
+ */
114
+ this.onMoreActionButtonClick = (event) => {
115
+ this.overflowMenuAnchor = event.currentTarget;
116
+ this.openOverflowMenu = true;
117
+ };
118
+ /**
119
+ * Close the overflow popover.
120
+ *
121
+ * @param e - optional KeyboardEvent or MouseEvent (unused)
122
+ * @private
123
+ */
124
+ this.handleCloseOverflowMenu = () => {
125
+ this.openOverflowMenu = false;
126
+ };
127
+ }
128
+ /**
129
+ * Watcher for `open` prop. Handles portal append/removal and body scroll lock.
130
+ *
131
+ * @param newValue - new value of the `open` prop
132
+ * @param oldValue - previous value of the `open` prop
133
+ */
134
+ handleOpenChange(newValue, oldValue) {
135
+ if (newValue === oldValue) {
136
+ return;
137
+ }
138
+ if (newValue) {
139
+ // Calculate scrollbar width before hiding it
140
+ const scrollbarWidth = window.innerWidth - document.documentElement.clientWidth;
141
+ // Save original values
142
+ this.originalBodyOverflow = document.body.style.overflow;
143
+ this.originalBodyPaddingRight = document.body.style.paddingRight;
144
+ document.body.appendChild(this.hostEl);
145
+ // Add padding to compensate for scrollbar
146
+ if (scrollbarWidth > 0) {
147
+ const currentPadding = parseInt(window.getComputedStyle(document.body).paddingRight) || 0;
148
+ document.body.style.paddingRight = `${currentPadding + scrollbarWidth}px`;
149
+ }
150
+ document.body.style.overflow = 'hidden';
151
+ requestAnimationFrame(() => {
152
+ this.hostEl.classList.add('is-visible');
153
+ // Check overflow after the side sheet is visible
154
+ setTimeout(() => this.checkOverflow(), 50);
155
+ });
156
+ }
157
+ else {
158
+ this.hostEl.classList.remove('is-visible');
159
+ document.body.style.overflow = this.originalBodyOverflow;
160
+ document.body.style.paddingRight = this.originalBodyPaddingRight;
161
+ this.hostEl.addEventListener('transitionend', this.handleTransitionEnd, { once: true });
162
+ }
163
+ }
164
+ /**
165
+ * Watcher for footer secondary buttons changes. Triggers overflow recalculation.
166
+ */
167
+ handleSecondaryButtonsChange() {
168
+ // Recheck overflow when buttons change
169
+ setTimeout(() => this.checkOverflow(), 50);
170
+ }
171
+ /**
172
+ * Measures footer buttons in an offscreen container and sets `showOverflowButton`.
173
+ * Safely returns early if required refs are unavailable.
174
+ */
175
+ checkOverflow() {
176
+ if (!this.footerRef || !this.measurementContainerRef) {
177
+ return;
178
+ }
179
+ if (!this.footerSecondaryButtons || this.footerSecondaryButtons.length === 0) {
180
+ this.showOverflowButton = false;
181
+ return;
182
+ }
183
+ // Get the footer container width (minus padding)
184
+ const footerWidth = this.footerRef.offsetWidth;
185
+ const footerStyle = window.getComputedStyle(this.footerRef);
186
+ const footerPaddingLeft = parseFloat(footerStyle.paddingLeft);
187
+ const footerPaddingRight = parseFloat(footerStyle.paddingRight);
188
+ const availableWidth = footerWidth - footerPaddingLeft - footerPaddingRight;
189
+ // Measure all buttons in the hidden measurement container
190
+ const measurementButtons = this.measurementContainerRef.querySelectorAll('udp-button');
191
+ let totalWidth = 0;
192
+ measurementButtons.forEach((button, index) => {
193
+ const buttonWidth = button && button instanceof HTMLElement ? button.offsetWidth : 0;
194
+ totalWidth += buttonWidth;
195
+ // Add gap spacing between buttons (except for the last one)
196
+ if (index < measurementButtons.length - 1) {
197
+ const containerStyle = window.getComputedStyle(this.measurementContainerRef);
198
+ const gap = parseFloat(containerStyle.gap) || 4; // Default gap from CSS
199
+ totalWidth += gap;
200
+ }
201
+ });
202
+ // Add a small buffer to prevent edge cases
203
+ const buffer = 10;
204
+ const isOverflowing = totalWidth + buffer > availableWidth;
205
+ this.showOverflowButton = isOverflowing;
206
+ }
207
+ /**
208
+ * Lifecycle: componentDidLoad. Sets up ResizeObserver and initial overflow check.
209
+ *
210
+ * @private
211
+ */
212
+ componentDidLoad() {
213
+ {
214
+ // Set up ResizeObserver to watch for footer size changes
215
+ this.resizeObserver = new ResizeObserver(() => {
216
+ this.checkOverflow();
217
+ });
218
+ // Initial check after a small delay to ensure DOM is ready
219
+ requestAnimationFrame(() => {
220
+ setTimeout(() => {
221
+ if (this.footerRef) {
222
+ this.resizeObserver.observe(this.footerRef);
223
+ }
224
+ this.checkOverflow();
225
+ }, 100);
226
+ });
227
+ }
228
+ }
229
+ /**
230
+ * Lifecycle: disconnectedCallback. Restores body styles and disconnects observers.
231
+ *
232
+ * @private
233
+ */
234
+ disconnectedCallback() {
235
+ if (document.body.style.overflow === 'hidden') {
236
+ document.body.style.overflow = this.originalBodyOverflow;
237
+ document.body.style.paddingRight = this.originalBodyPaddingRight;
238
+ }
239
+ // Clean up ResizeObserver
240
+ if (this.resizeObserver) {
241
+ this.resizeObserver.disconnect();
242
+ }
243
+ }
244
+ /**
245
+ * Render the component UI.
246
+ *
247
+ * @returns JSX element tree
248
+ * @private
249
+ */
250
+ render() {
251
+ var _a, _b, _c, _d, _e, _f, _g;
252
+ const widthClass = typeof this.width === 'number' ? 'custom-width' : this.width;
253
+ const sideSheetStyle = typeof this.width === 'number' ? { maxWidth: `${this.width}px` } : {};
254
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
255
+ const headerStartIcon = Boolean(this.headerActionButtonIcon) ? (index.h("udp-icon", { iconName: this.headerActionButtonIcon, color: "inherit" })) : undefined;
256
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
257
+ const overflowIcon = index.h("udp-icon", { key: '6da1f10cce0b9e2b2f597df9249ef45128445801', iconName: "overflowMenuVertical", color: "inherit" });
258
+ return (index.h("div", { key: '20237474eebbd73253c97b28229607d10ac91e2f', class: "backdrop", onClick: this.onCloseBackdrop }, index.h("div", { key: '5b09a3b7e0905a7eef6875499eb863daedcb8969', class: { sheet: true, [this.position]: true, [widthClass]: true }, style: sideSheetStyle }, index.h("div", { key: '99c0fa14ced2b4397b066f9348984cf85c5e6325', class: "title-container" }, index.h("div", { key: 'a47a3669b74bfc3e7235ab4487fcae6b24675b26', class: "close-button" }, index.h("stencil-icon-button", { key: '46a52c8e2f4ac95b4ef668e05905fdde9f8d0ee4',
259
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
260
+ icon: Close24__default.default, onClick: this.onClose, secondary: true })), index.h("div", { key: '267ede825a8d9fab576c7bb0eeac782b8195372c', class: "title-text" }, index.h("unity-typography", { key: 'b3001278f39e3311e2b736dd47d91ecb04601981', variant: "h6" }, this.title)), (this.headerActionButtonLabel || ((_a = this.headerSecondaryButtons) === null || _a === void 0 ? void 0 : _a.length) > 0) && (index.h("div", { key: '5751cfe92eb7b01c836085d50429f19234844b31', class: "header-action-button" }, (_b = this.headerSecondaryButtons) === null || _b === void 0 ? void 0 :
261
+ _b.map((item) => (index.h("udp-button", { variant: "outlined", disabled: item.disabled, onClick: item.onClick, endIcon: item.icon }, item.label))), this.headerActionButtonLabel && (index.h("udp-button", { key: 'a8f34ed12616418ee42cb5eec10e92add96598a6', disabled: this.headerActionButtonDisabled, onClick: this.onHeaderActionButtonClick,
262
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
263
+ startIcon: headerStartIcon, variant: "contained" }, this.headerActionButtonLabel))))), index.h("div", { key: '94364ba51f35c7a46fddb17792c7905dfd6ebc45', class: "loader-container" }, index.h("udp-linear-loader", { key: 'e12b1130a11b4a9de87aa8da219f538354508e9f', class: { 'is-loading': this.loading }, color: "primary" })), index.h("div", { key: 'eb842f58defdcd74ef6a28815f11f21c68c8c2ee', class: { content: true, padding: this.padding } }, index.h("slot", { key: 'd7731b049a94fb19d38c045ea76c2bf78062ec1b' })), (this.primaryButtonLabel || ((_c = this.footerSecondaryButtons) === null || _c === void 0 ? void 0 : _c.length) > 0) && (index.h("div", { key: '0991510d62b3fefd3027f15b96e46d44a8ac66e1' }, index.h("div", { key: '148a2ebb2385c9e04c5957fff1d9be90a57d441c', class: "loader-container" }), index.h("div", { key: 'ffe55575f51be1c9136cc1bdf8eb3a43e14b01da', class: {
264
+ footer: true,
265
+ }, ref: el => (this.footerRef = el) }, !this.showOverflowButton && ((_d = this.footerSecondaryButtons) === null || _d === void 0 ? void 0 : _d.length) > 0 && (index.h("div", { key: '47b70ed64e9246d63819afcdb93d40eb6559a9a8', class: "footer-secondary-buttons-container" }, index.h("div", { key: 'ef8f34e7c4c01c4a9f689a1cffe648837663a46c', class: "footer-secondary-buttons" }, (_e = this.footerSecondaryButtons) === null || _e === void 0 ? void 0 : _e.map((item) => (index.h("udp-button", { variant: "outlined", disabled: item.disabled, onClick: item.onClick, endIcon: item.icon }, item.label)))))), this.showOverflowButton && (index.h("udp-button", { key: 'aa388701ba4d91be157b3ee4ad434d50b8d03efe', variant: "outlined", onClick: this.onMoreActionButtonClick, color: "secondary",
266
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
267
+ endIcon: overflowIcon }, "More")), this.primaryButtonLabel && (index.h("udp-button", { key: 'cb644736d0d39dcd89cd2fe2d721810781a581d2', variant: "contained", disabled: this.primaryButtonDisabled, onClick: this.onPrimaryButtonClick, endIcon: this.primaryButtonIcon }, this.primaryButtonLabel)), this.showOverflowButton && (index.h("udp-pop-over", { key: '7de1a458880803c3a3b912aaa567c9df82748531', anchorElement: this.overflowMenuAnchor, isOpen: this.openOverflowMenu, popoverWidth: '200px', popoverMaxHeight: '300px', handleOnClose: this.handleCloseOverflowMenu }, index.h("div", { key: 'dc0dc7b56615ede816650bf970e6059b8ea30c2d', class: "menu" }, (_f = this.footerSecondaryButtons) === null || _f === void 0 ? void 0 : _f.map(item => (index.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: () => {
268
+ item === null || item === void 0 ? void 0 : item.onClick();
269
+ this.handleCloseOverflowMenu();
270
+ }, disabled: item === null || item === void 0 ? void 0 : item.disabled })))))), index.h("div", { key: 'a7aecadc65eb2fb3a106c19f6101e4c6c158c960', ref: el => (this.measurementContainerRef = el), style: {
271
+ position: 'absolute',
272
+ visibility: 'hidden',
273
+ pointerEvents: 'none',
274
+ display: 'flex',
275
+ gap: 'var(--spacing-02, 4px)',
276
+ }, "aria-hidden": "true" }, (_g = this.footerSecondaryButtons) === null || _g === void 0 ? void 0 :
277
+ _g.map((item) => (index.h("udp-button", { variant: "text", size: "medium", disabled: item.disabled, endIcon: item.icon }, item.label))), this.primaryButtonLabel && (index.h("udp-button", { key: '64be9bf39748c7c301d4f4d264fae98ed0e40302', variant: "contained", size: "medium", disabled: this.primaryButtonDisabled, endIcon: this.primaryButtonIcon }, this.primaryButtonLabel)))))))));
278
+ }
279
+ get hostEl() { return index.getElement(this); }
280
+ static get watchers() { return {
281
+ "open": ["handleOpenChange"],
282
+ "footerSecondaryButtons": ["handleSecondaryButtonsChange"]
283
+ }; }
284
+ };
285
+ UdpSideSheet.style = udpSideSheetCss;
286
+
287
+ exports.udp_linear_loader = UdpLinearLoader;
288
+ exports.udp_side_sheet = UdpSideSheet;
289
+ //# sourceMappingURL=udp-linear-loader.udp-side-sheet.entry.cjs.js.map
@@ -95,11 +95,11 @@ const UdpMap = class {
95
95
  }
96
96
  //////////////////////////////////////////////////////////RENDER/////////////////////////////////////////////////////
97
97
  render() {
98
- return (index.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 => {
98
+ return (index.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 => {
99
99
  this.updateSelectedLayers(val);
100
- }, 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 && (index.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 => {
100
+ }, 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 && (index.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 => {
101
101
  this.updateSelectedLayers(val);
102
- }, addFeaturePanelConfig: this.addFeaturePanelConfig })), index.h("slot", { key: '88fad9362a1e7d28a537eb2dfcdcb9735f491542' })));
102
+ }, addFeaturePanelConfig: this.addFeaturePanelConfig })), index.h("slot", { key: '00102aa5f21cb5fa6382f9e0785486cd956d714f' })));
103
103
  }
104
104
  static get watchers() { return {
105
105
  "enableDragBox": ["watchDragBoxandSelectedFeatureInteraction"],
@@ -0,0 +1 @@
1
+ {"version":3,"file":"udp-menu-item.udp-pop-over.entry.cjs.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":["h","createPopper","Host"],"mappings":"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"}
@@ -3,6 +3,27 @@
3
3
  var index = require('./index-CGCOXUJE.js');
4
4
  var core = require('@popperjs/core');
5
5
 
6
+ 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%}";
7
+
8
+ const UdpMenuItem = class {
9
+ constructor(hostRef) {
10
+ index.registerInstance(this, hostRef);
11
+ this.itemClick = index.createEvent(this, "itemClick");
12
+ this.disabled = false; // reflect: true helps with CSS styling
13
+ this.handleItemClick = (e) => {
14
+ // if (this.disabled) {
15
+ // e.stopPropagation();
16
+ // return;
17
+ // }
18
+ this.itemClick.emit(e);
19
+ };
20
+ }
21
+ render() {
22
+ return (index.h("button", { key: '4a43cdb229edec0f13ceda8672bfd3c48c545dc6', class: "menu-item-root", onClick: this.handleItemClick, disabled: this.disabled, role: "menuitem" }, this.iconName && index.h("udp-icon", { key: '499c217a79efe99f11e289f9792eb1f9307264bb', iconName: this.iconName, class: "menu-icon" }), index.h("span", { key: '8c414f47700d8b3802d81579fb1374aa81c8691b', class: "menu-item-label" }, index.h("unity-typography", { key: '5c95b5ab659abe6c7baa2a1b7a287077afd4af92', variant: 'body1' }, this.label))));
23
+ }
24
+ };
25
+ UdpMenuItem.style = udpMenuItemCss;
26
+
6
27
  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}";
7
28
 
8
29
  const UdpPopOver = class {
@@ -128,5 +149,6 @@ const UdpPopOver = class {
128
149
  };
129
150
  UdpPopOver.style = udpPopOverCss;
130
151
 
152
+ exports.udp_menu_item = UdpMenuItem;
131
153
  exports.udp_pop_over = UdpPopOver;
132
- //# sourceMappingURL=udp-pop-over.entry.cjs.js.map
154
+ //# sourceMappingURL=udp-menu-item.udp-pop-over.entry.cjs.js.map
@@ -22,7 +22,7 @@ const UdpPage = class {
22
22
  padding: this.padding,
23
23
  margin: '0 auto', // Centers the content if max-width is set
24
24
  };
25
- return (index.h("div", { key: 'cd340c347257f5eb66d73ed93ce4164ba0d6c94c', style: style }, index.h("slot", { key: '68e33d37810a56cf7fc6f7290a6d44c10c4ef781' }), " "));
25
+ return (index.h("div", { key: '87960916a8c702c88f3a7dd7a9ef90227d76f605', style: style }, index.h("slot", { key: '1915453eae25182b42e004450ca04ee20c17cbff' }), " "));
26
26
  }
27
27
  };
28
28
  UdpPage.style = udpPageCss;
@@ -13,7 +13,7 @@ const UdpSkeletonLoading = class {
13
13
  this.borderRadius = '4px';
14
14
  }
15
15
  render() {
16
- return (index.h("div", { key: 'c4d09711b610d9d0219f5964d1572ef7af46b738', class: "skeleton-loader", style: { width: this.width, height: this.height, borderRadius: this.borderRadius } }));
16
+ return (index.h("div", { key: '2801b43f47755995952a8ebda27acd6557b340f8', class: "skeleton-loader", style: { width: this.width, height: this.height, borderRadius: this.borderRadius } }));
17
17
  }
18
18
  };
19
19
  UdpSkeletonLoading.style = udpSkeletonLoadingCss;