udp-stencil-component-library 25.18.1-beta.7 → 25.18.1-beta.8

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 (324) hide show
  1. package/dist/cjs/add-map-feature-popup_4.cjs.entry.js +12 -12
  2. package/dist/cjs/advanced-search_50.cjs.entry.js +63 -60
  3. package/dist/cjs/ag-grid-base_5.cjs.entry.js +5 -5
  4. package/dist/cjs/api-method-instance-grid.cjs.entry.js +1 -1
  5. package/dist/cjs/check-box.cjs.entry.js +2 -2
  6. package/dist/cjs/chip-section.cjs.entry.js +2 -2
  7. package/dist/cjs/client-side-grid_2.cjs.entry.js +3 -3
  8. package/dist/cjs/color-preview.cjs.entry.js +1 -1
  9. package/dist/cjs/date-time-renderer_6.cjs.entry.js +8 -8
  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/image-upload_7.cjs.entry.js +6 -6
  13. package/dist/cjs/inputs-example.cjs.entry.js +2 -2
  14. package/dist/cjs/loader.cjs.js +1 -1
  15. package/dist/cjs/map-component_2.cjs.entry.js +2 -2
  16. package/dist/cjs/numeric-field_5.cjs.entry.js +15 -15
  17. package/dist/cjs/page-renderer.cjs.entry.js +1 -1
  18. package/dist/cjs/question-configs-renderer_5.cjs.entry.js +14 -14
  19. package/dist/cjs/resource-timeline-calendar.cjs.entry.js +1 -1
  20. package/dist/cjs/search-method-grid.cjs.entry.js +1 -1
  21. package/dist/cjs/server-side-grid.cjs.entry.js +1 -1
  22. package/dist/cjs/simple-card.cjs.entry.js +1 -1
  23. package/dist/cjs/stencil-library.cjs.js +1 -1
  24. package/dist/cjs/udp-chip_3.cjs.entry.js +1 -1
  25. package/dist/cjs/udp-container-query-grid-item.cjs.entry.js +1 -1
  26. package/dist/cjs/udp-container-query-grid.cjs.entry.js +1 -1
  27. package/dist/cjs/udp-container-query.cjs.entry.js +2 -2
  28. package/dist/cjs/udp-container.cjs.entry.js +2 -2
  29. package/dist/cjs/udp-date-range-selector.cjs.entry.js +1 -1
  30. package/dist/cjs/udp-dynamic-form.cjs.entry.js +1 -1
  31. package/dist/cjs/udp-forms-follow-up-list-card.cjs.entry.js +2 -2
  32. package/dist/cjs/udp-forms-list-card.cjs.entry.js +5 -5
  33. package/dist/cjs/udp-forms-list.cjs.entry.js +1 -1
  34. package/dist/cjs/udp-forms-renderer.cjs.entry.js +1 -1
  35. package/dist/cjs/udp-list-renderer.udp-pagination.udp-side-sheet.entry.cjs.js.map +1 -1
  36. package/dist/cjs/udp-list-renderer_3.cjs.entry.js +194 -5
  37. package/dist/cjs/udp-map.cjs.entry.js +3 -3
  38. package/dist/cjs/udp-page.cjs.entry.js +1 -1
  39. package/dist/cjs/udp-split-screen.cjs.entry.js +1 -1
  40. package/dist/cjs/udp-stepper-demo.cjs.entry.js +1 -1
  41. package/dist/cjs/udp-tab-panel.cjs.entry.js +2 -2
  42. package/dist/cjs/udp-vertical-spacer.cjs.entry.js +1 -1
  43. package/dist/collection/components/my-component/UI/data-display/icons/udp-icon.js +4 -1
  44. package/dist/collection/components/my-component/UI/data-display/icons/udp-icon.js.map +1 -1
  45. package/dist/collection/components/my-component/UI/data-display/kpi/kpi-list.js +1 -1
  46. package/dist/collection/components/my-component/UI/data-display/list-item/list-item.js +2 -2
  47. package/dist/collection/components/my-component/UI/data-display/pop-over/udp-pop-over.js +1 -1
  48. package/dist/collection/components/my-component/UI/data-display/pop-over-grid-action-header/udp-pop-over-grid-action-header.js +1 -1
  49. package/dist/collection/components/my-component/UI/data-display/primary-action-header/primary-action-header.js +2 -2
  50. package/dist/collection/components/my-component/UI/data-display/simple-card/simple-card.js +1 -1
  51. package/dist/collection/components/my-component/UI/data-display/tool-tip/udp-ambient-tool-tip.js +2 -2
  52. package/dist/collection/components/my-component/UI/data-display/tree/tree-list-item/search-item/search-list-item.js +1 -1
  53. package/dist/collection/components/my-component/UI/data-display/udp-avatar/udp-avatar.js +1 -1
  54. package/dist/collection/components/my-component/UI/dialogs/fluent-dialog/fluent-dialog.js +2 -2
  55. package/dist/collection/components/my-component/UI/dialogs/udp-dialog.js +1 -1
  56. package/dist/collection/components/my-component/UI/drawers/udp-side-sheet/types.js +2 -0
  57. package/dist/collection/components/my-component/UI/drawers/udp-side-sheet/types.js.map +1 -0
  58. package/dist/collection/components/my-component/UI/drawers/udp-side-sheet/udp-side-sheet.css +163 -137
  59. package/dist/collection/components/my-component/UI/drawers/udp-side-sheet/udp-side-sheet.js +269 -19
  60. package/dist/collection/components/my-component/UI/drawers/udp-side-sheet/udp-side-sheet.js.map +1 -1
  61. package/dist/collection/components/my-component/UI/feedback/udp-notification/alerts/upd-alert-banner.js +1 -1
  62. package/dist/collection/components/my-component/UI/feedback/udp-notification/udp-notification.js +2 -2
  63. package/dist/collection/components/my-component/UI/forms/dynamic-form/udp-dynamic-form.js +1 -1
  64. package/dist/collection/components/my-component/UI/forms/edit-view-form/edit-view-form.js +2 -2
  65. package/dist/collection/components/my-component/UI/forms/form/stencil-form.js +1 -1
  66. package/dist/collection/components/my-component/UI/forms/save-view-form/save-view-form.js +2 -2
  67. package/dist/collection/components/my-component/UI/forms/udp-forms/udp-forms-builder/forms-question-item/udp-forms-builder-question-item.js +2 -2
  68. package/dist/collection/components/my-component/UI/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/file-upload-renderer/file-upload-renderer.js +2 -2
  69. package/dist/collection/components/my-component/UI/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/list-option-renderer/list-options-renderer.js +3 -3
  70. package/dist/collection/components/my-component/UI/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/question-configs-renderer/question-configs-renderer.js +6 -6
  71. package/dist/collection/components/my-component/UI/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/section-configs-renderer/section-configs-renderer.js +3 -3
  72. package/dist/collection/components/my-component/UI/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/signature-renderer/signature-renderer.js +1 -1
  73. package/dist/collection/components/my-component/UI/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/text-input-renderer/text-input-renderer.js +2 -2
  74. package/dist/collection/components/my-component/UI/forms/udp-forms/udp-forms-builder/udp-forms-builder-menu/udp-forms-builder-menu.js +2 -2
  75. package/dist/collection/components/my-component/UI/forms/udp-forms/udp-forms-builder/udp-forms-builder-style-override/udp-forms-builder-style-override.js +1 -1
  76. package/dist/collection/components/my-component/UI/forms/udp-forms/udp-forms-list/udp-forms-list-card/udp-forms-list-card.js +5 -5
  77. package/dist/collection/components/my-component/UI/forms/udp-forms/udp-forms-list/udp-forms-list.js +1 -1
  78. package/dist/collection/components/my-component/UI/forms/udp-forms/udp-forms-renderer/udp-forms-renderer-follow-up-list-card/udp-forms-follow-up-list-card.js +2 -2
  79. package/dist/collection/components/my-component/UI/forms/udp-forms/udp-forms-renderer/udp-forms-renderer.js +1 -1
  80. package/dist/collection/components/my-component/UI/grid/ag-table/ag-table.js +1 -1
  81. package/dist/collection/components/my-component/UI/grid/ambient-template-grid/ambient-template-grid.js +15 -15
  82. package/dist/collection/components/my-component/UI/grid/grid-primary-bar/grid-primary-bar.js +2 -2
  83. package/dist/collection/components/my-component/UI/grid/hotlists/udp-hotlist-form/udp-hotlist-form.js +1 -1
  84. package/dist/collection/components/my-component/UI/grid/new-grid/ag-grid-base.js +1 -1
  85. package/dist/collection/components/my-component/UI/grid/new-grid/api-method-instance-grid.js +1 -1
  86. package/dist/collection/components/my-component/UI/grid/new-grid/client-side-grid.js +1 -1
  87. package/dist/collection/components/my-component/UI/grid/new-grid/entity-maintenance-grid.js +1 -1
  88. package/dist/collection/components/my-component/UI/grid/new-grid/search-method-grid.js +1 -1
  89. package/dist/collection/components/my-component/UI/grid/new-grid/server-side-grid.js +1 -1
  90. package/dist/collection/components/my-component/UI/grid/resource-timeline-calendar/resource-timeline-calendar.js +1 -1
  91. package/dist/collection/components/my-component/UI/grid/resource-timeline-calendar/resource-timeline-primary-bar.js +2 -2
  92. package/dist/collection/components/my-component/UI/inputs/checkbox/check-box.js +2 -2
  93. package/dist/collection/components/my-component/UI/inputs/date-range-selector/udp-date-range-selector.js +1 -1
  94. package/dist/collection/components/my-component/UI/inputs/date-selector/udp-date-selector.js +3 -3
  95. package/dist/collection/components/my-component/UI/inputs/date-time-selector/udp-datetime-selector.js +3 -3
  96. package/dist/collection/components/my-component/UI/inputs/image-upload/image-upload.js +1 -1
  97. package/dist/collection/components/my-component/UI/inputs/numeric-field/numeric-field.js +3 -3
  98. package/dist/collection/components/my-component/UI/inputs/signature-input/signature-input.js +2 -2
  99. package/dist/collection/components/my-component/UI/inputs/tally/tally.js +2 -2
  100. package/dist/collection/components/my-component/UI/inputs/text-area/text-area.js +3 -3
  101. package/dist/collection/components/my-component/UI/inputs/text-field/text-field.js +3 -3
  102. package/dist/collection/components/my-component/UI/inputs/time-selector/udp-time-selector.js +3 -3
  103. package/dist/collection/components/my-component/UI/inputs/toggle/stencil-toggle.js +4 -4
  104. package/dist/collection/components/my-component/UI/inputs/udp-selector/udp-selector.js +4 -4
  105. package/dist/collection/components/my-component/UI/layout/udp-container/udp-container.js +2 -2
  106. package/dist/collection/components/my-component/UI/layout/udp-container-query/udp-container-query.js +2 -2
  107. package/dist/collection/components/my-component/UI/layout/udp-container-query-grid/udp-container-query-grid.js +1 -1
  108. package/dist/collection/components/my-component/UI/layout/udp-container-query-grid-item/udp-container-query-grid-item.js +1 -1
  109. package/dist/collection/components/my-component/UI/layout/udp-page/udp-page.js +1 -1
  110. package/dist/collection/components/my-component/UI/layout/udp-split-screen/udp-split-screen.js +1 -1
  111. package/dist/collection/components/my-component/UI/layout/udp-vertical-spacer.js +1 -1
  112. package/dist/collection/components/my-component/UI/loaders/udp-grid-loader/udp-grid-loader.js +2 -2
  113. package/dist/collection/components/my-component/UI/loaders/udp-linear-loader/udp-linear-loader.js +1 -1
  114. package/dist/collection/components/my-component/UI/loaders/udp-skeleton-loading.js +1 -1
  115. package/dist/collection/components/my-component/UI/map/udp-map/map-component.js +1 -1
  116. package/dist/collection/components/my-component/UI/map/udp-map/popups/add-map-feature-popup.js +3 -3
  117. package/dist/collection/components/my-component/UI/map/udp-map/popups/feature-details-card/feature-details-card.js +4 -4
  118. package/dist/collection/components/my-component/UI/map/udp-map/popups/feature-details-popup.js +1 -1
  119. package/dist/collection/components/my-component/UI/map/udp-map/popups/select-layer-popup.js +2 -2
  120. package/dist/collection/components/my-component/UI/map/udp-map/popups/split-line-popup.js +1 -1
  121. package/dist/collection/components/my-component/UI/map/udp-map/toolbar/map-toolbar.js +6 -6
  122. package/dist/collection/components/my-component/UI/map/udp-map/udp-map-toolbar.js +1 -1
  123. package/dist/collection/components/my-component/UI/map/udp-map/udp-map.js +3 -3
  124. package/dist/collection/components/my-component/UI/menu/menu-item/udp-menu-item.js +1 -1
  125. package/dist/collection/components/my-component/UI/menu/udp-menu.js +1 -1
  126. package/dist/collection/components/my-component/UI/stepper/udp-stepper-demo.js +1 -1
  127. package/dist/collection/components/my-component/UI/tabs/tab/tabs/udp-tabs.js +2 -2
  128. package/dist/collection/components/my-component/UI/tabs/tab/udp-tab.js +1 -1
  129. package/dist/collection/components/my-component/UI/tabs/udp-tab-panel/udp-tab-panel.js +2 -2
  130. package/dist/collection/components/my-component/UI/toolbars/app-bar/app-bar.js +1 -1
  131. package/dist/collection/components/my-component/UI/util/ghost-render/ghost-render.js +1 -1
  132. package/dist/collection/components/my-component/demo/ambient-demo-container.js +1 -1
  133. package/dist/collection/components/test-component/inputs-example/inputs-example.js +2 -2
  134. package/dist/collection/page-renderer/page-renderer.js +1 -1
  135. package/dist/collection/theme/color-preview/color-preview.js +1 -1
  136. package/dist/collection/udp-utilities/layout/udp-dynamic-container-with-menu/chip-section/chip-section.js +2 -2
  137. package/dist/collection/udp-utilities/layout/udp-dynamic-container-with-menu/udp-dynamic-container-with-menu.js +1 -1
  138. package/dist/components/add-map-feature-popup2.js +3 -3
  139. package/dist/components/ag-grid-base2.js +1 -1
  140. package/dist/components/ag-table2.js +1 -1
  141. package/dist/components/ambient-demo-container2.js +1 -1
  142. package/dist/components/ambient-template-grid2.js +15 -15
  143. package/dist/components/api-method-instance-grid.js +1 -1
  144. package/dist/components/app-bar2.js +1 -1
  145. package/dist/components/check-box2.js +2 -2
  146. package/dist/components/chip-section.js +2 -2
  147. package/dist/components/client-side-grid2.js +1 -1
  148. package/dist/components/color-preview.js +1 -1
  149. package/dist/components/edit-view-form.js +2 -2
  150. package/dist/components/entity-maintenance-grid.js +1 -1
  151. package/dist/components/feature-details-card2.js +4 -4
  152. package/dist/components/feature-details-popup2.js +1 -1
  153. package/dist/components/file-upload-renderer2.js +2 -2
  154. package/dist/components/fluent-dialog2.js +2 -2
  155. package/dist/components/ghost-render2.js +1 -1
  156. package/dist/components/grid-primary-bar2.js +2 -2
  157. package/dist/components/image-upload2.js +1 -1
  158. package/dist/components/inputs-example.js +2 -2
  159. package/dist/components/kpi-list2.js +1 -1
  160. package/dist/components/list-item.js +2 -2
  161. package/dist/components/list-options-renderer2.js +3 -3
  162. package/dist/components/map-component2.js +1 -1
  163. package/dist/components/map-toolbar2.js +6 -6
  164. package/dist/components/numeric-field2.js +3 -3
  165. package/dist/components/page-renderer.js +1 -1
  166. package/dist/components/primary-action-header2.js +2 -2
  167. package/dist/components/question-configs-renderer2.js +6 -6
  168. package/dist/components/resource-timeline-calendar.js +1 -1
  169. package/dist/components/resource-timeline-primary-bar2.js +2 -2
  170. package/dist/components/save-view-form.js +2 -2
  171. package/dist/components/search-list-item2.js +1 -1
  172. package/dist/components/search-method-grid2.js +1 -1
  173. package/dist/components/section-configs-renderer2.js +3 -3
  174. package/dist/components/select-layer-popup2.js +2 -2
  175. package/dist/components/server-side-grid2.js +1 -1
  176. package/dist/components/signature-input2.js +2 -2
  177. package/dist/components/signature-renderer2.js +1 -1
  178. package/dist/components/simple-card.js +1 -1
  179. package/dist/components/split-line-popup2.js +1 -1
  180. package/dist/components/stencil-form2.js +1 -1
  181. package/dist/components/stencil-toggle2.js +4 -4
  182. package/dist/components/tally.js +2 -2
  183. package/dist/components/text-area2.js +3 -3
  184. package/dist/components/text-field2.js +3 -3
  185. package/dist/components/text-input-renderer2.js +2 -2
  186. package/dist/components/udp-ambient-tool-tip2.js +2 -2
  187. package/dist/components/udp-avatar2.js +1 -1
  188. package/dist/components/udp-container-query-grid-item.js +1 -1
  189. package/dist/components/udp-container-query-grid.js +1 -1
  190. package/dist/components/udp-container-query2.js +2 -2
  191. package/dist/components/udp-container2.js +2 -2
  192. package/dist/components/udp-date-range-selector.js +1 -1
  193. package/dist/components/udp-date-selector2.js +3 -3
  194. package/dist/components/udp-datetime-selector2.js +3 -3
  195. package/dist/components/udp-dialog2.js +1 -1
  196. package/dist/components/udp-dynamic-container-with-menu2.js +1 -1
  197. package/dist/components/udp-dynamic-form.js +1 -1
  198. package/dist/components/udp-forms-builder-menu2.js +2 -2
  199. package/dist/components/udp-forms-builder-question-item2.js +2 -2
  200. package/dist/components/udp-forms-builder-style-override2.js +1 -1
  201. package/dist/components/udp-forms-builder.js +72 -60
  202. package/dist/components/udp-forms-builder.js.map +1 -1
  203. package/dist/components/udp-forms-follow-up-list-card.js +2 -2
  204. package/dist/components/udp-forms-list-card2.js +5 -5
  205. package/dist/components/udp-forms-list.js +51 -39
  206. package/dist/components/udp-forms-list.js.map +1 -1
  207. package/dist/components/udp-forms-renderer.js +67 -55
  208. package/dist/components/udp-forms-renderer.js.map +1 -1
  209. package/dist/components/udp-grid-loader2.js +2 -2
  210. package/dist/components/udp-hotlist-form2.js +1 -1
  211. package/dist/components/udp-icon2.js +4 -1
  212. package/dist/components/udp-icon2.js.map +1 -1
  213. package/dist/components/udp-linear-loader2.js +1 -1
  214. package/dist/components/udp-map-toolbar2.js +1 -1
  215. package/dist/components/udp-map.js +3 -3
  216. package/dist/components/udp-menu-item2.js +1 -1
  217. package/dist/components/udp-menu2.js +1 -1
  218. package/dist/components/udp-notification2.js +2 -2
  219. package/dist/components/udp-page.js +1 -1
  220. package/dist/components/udp-pop-over-grid-action-header2.js +1 -1
  221. package/dist/components/udp-pop-over2.js +1 -1
  222. package/dist/components/udp-selector2.js +4 -4
  223. package/dist/components/udp-side-sheet2.js +228 -19
  224. package/dist/components/udp-side-sheet2.js.map +1 -1
  225. package/dist/components/udp-skeleton-loading2.js +1 -1
  226. package/dist/components/udp-split-screen.js +1 -1
  227. package/dist/components/udp-stepper-demo.js +1 -1
  228. package/dist/components/udp-tab-panel.js +2 -2
  229. package/dist/components/udp-tab2.js +1 -1
  230. package/dist/components/udp-tabs2.js +2 -2
  231. package/dist/components/udp-time-selector2.js +3 -3
  232. package/dist/components/udp-vertical-spacer.js +1 -1
  233. package/dist/components/upd-alert-banner2.js +1 -1
  234. package/dist/docs.json +123 -28
  235. package/dist/esm/add-map-feature-popup_4.entry.js +12 -12
  236. package/dist/esm/advanced-search_50.entry.js +63 -60
  237. package/dist/esm/ag-grid-base_5.entry.js +5 -5
  238. package/dist/esm/api-method-instance-grid.entry.js +1 -1
  239. package/dist/esm/check-box.entry.js +2 -2
  240. package/dist/esm/chip-section.entry.js +2 -2
  241. package/dist/esm/client-side-grid_2.entry.js +3 -3
  242. package/dist/esm/color-preview.entry.js +1 -1
  243. package/dist/esm/date-time-renderer_6.entry.js +8 -8
  244. package/dist/esm/entity-maintenance-grid.entry.js +1 -1
  245. package/dist/esm/feature-details-card_2.entry.js +5 -5
  246. package/dist/esm/image-upload_7.entry.js +6 -6
  247. package/dist/esm/inputs-example.entry.js +2 -2
  248. package/dist/esm/loader.js +1 -1
  249. package/dist/esm/map-component_2.entry.js +2 -2
  250. package/dist/esm/numeric-field_5.entry.js +15 -15
  251. package/dist/esm/page-renderer.entry.js +1 -1
  252. package/dist/esm/question-configs-renderer_5.entry.js +14 -14
  253. package/dist/esm/resource-timeline-calendar.entry.js +1 -1
  254. package/dist/esm/search-method-grid.entry.js +1 -1
  255. package/dist/esm/server-side-grid.entry.js +1 -1
  256. package/dist/esm/simple-card.entry.js +1 -1
  257. package/dist/esm/stencil-library.js +1 -1
  258. package/dist/esm/udp-chip_3.entry.js +1 -1
  259. package/dist/esm/udp-container-query-grid-item.entry.js +1 -1
  260. package/dist/esm/udp-container-query-grid.entry.js +1 -1
  261. package/dist/esm/udp-container-query.entry.js +2 -2
  262. package/dist/esm/udp-container.entry.js +2 -2
  263. package/dist/esm/udp-date-range-selector.entry.js +1 -1
  264. package/dist/esm/udp-dynamic-form.entry.js +1 -1
  265. package/dist/esm/udp-forms-follow-up-list-card.entry.js +2 -2
  266. package/dist/esm/udp-forms-list-card.entry.js +5 -5
  267. package/dist/esm/udp-forms-list.entry.js +1 -1
  268. package/dist/esm/udp-forms-renderer.entry.js +1 -1
  269. package/dist/esm/udp-list-renderer.udp-pagination.udp-side-sheet.entry.js.map +1 -1
  270. package/dist/esm/udp-list-renderer_3.entry.js +194 -5
  271. package/dist/esm/udp-map.entry.js +3 -3
  272. package/dist/esm/udp-page.entry.js +1 -1
  273. package/dist/esm/udp-split-screen.entry.js +1 -1
  274. package/dist/esm/udp-stepper-demo.entry.js +1 -1
  275. package/dist/esm/udp-tab-panel.entry.js +2 -2
  276. package/dist/esm/udp-vertical-spacer.entry.js +1 -1
  277. package/dist/stencil-library/add-map-feature-popup_4.entry.js +1 -1
  278. package/dist/stencil-library/advanced-search_50.entry.js +1 -1
  279. package/dist/stencil-library/advanced-search_50.entry.js.map +1 -1
  280. package/dist/stencil-library/ag-grid-base_5.entry.js +1 -1
  281. package/dist/stencil-library/api-method-instance-grid.entry.js +1 -1
  282. package/dist/stencil-library/check-box.entry.js +1 -1
  283. package/dist/stencil-library/chip-section.entry.js +1 -1
  284. package/dist/stencil-library/client-side-grid_2.entry.js +1 -1
  285. package/dist/stencil-library/color-preview.entry.js +1 -1
  286. package/dist/stencil-library/date-time-renderer_6.entry.js +1 -1
  287. package/dist/stencil-library/entity-maintenance-grid.entry.js +1 -1
  288. package/dist/stencil-library/feature-details-card_2.entry.js +1 -1
  289. package/dist/stencil-library/image-upload_7.entry.js +1 -1
  290. package/dist/stencil-library/inputs-example.entry.js +1 -1
  291. package/dist/stencil-library/map-component_2.entry.js +1 -1
  292. package/dist/stencil-library/numeric-field_5.entry.js +1 -1
  293. package/dist/stencil-library/page-renderer.entry.js +1 -1
  294. package/dist/stencil-library/question-configs-renderer_5.entry.js +1 -1
  295. package/dist/stencil-library/resource-timeline-calendar.entry.js +1 -1
  296. package/dist/stencil-library/search-method-grid.entry.js +1 -1
  297. package/dist/stencil-library/server-side-grid.entry.js +1 -1
  298. package/dist/stencil-library/simple-card.entry.js +1 -1
  299. package/dist/stencil-library/simple-card.entry.js.map +1 -1
  300. package/dist/stencil-library/stencil-library.esm.js +1 -1
  301. package/dist/stencil-library/udp-chip_3.entry.js +1 -1
  302. package/dist/stencil-library/udp-container-query-grid-item.entry.js +1 -1
  303. package/dist/stencil-library/udp-container-query-grid.entry.js +1 -1
  304. package/dist/stencil-library/udp-container-query.entry.js +1 -1
  305. package/dist/stencil-library/udp-container.entry.js +1 -1
  306. package/dist/stencil-library/udp-date-range-selector.entry.js +1 -1
  307. package/dist/stencil-library/udp-dynamic-form.entry.js +1 -1
  308. package/dist/stencil-library/udp-forms-follow-up-list-card.entry.js +1 -1
  309. package/dist/stencil-library/udp-forms-list-card.entry.js +1 -1
  310. package/dist/stencil-library/udp-forms-list.entry.js +1 -1
  311. package/dist/stencil-library/udp-forms-renderer.entry.js +1 -1
  312. package/dist/stencil-library/udp-list-renderer.udp-pagination.udp-side-sheet.entry.esm.js.map +1 -1
  313. package/dist/stencil-library/udp-list-renderer_3.entry.js +1 -1
  314. package/dist/stencil-library/udp-list-renderer_3.entry.js.map +1 -1
  315. package/dist/stencil-library/udp-map.entry.js +1 -1
  316. package/dist/stencil-library/udp-page.entry.js +1 -1
  317. package/dist/stencil-library/udp-split-screen.entry.js +1 -1
  318. package/dist/stencil-library/udp-stepper-demo.entry.js +1 -1
  319. package/dist/stencil-library/udp-tab-panel.entry.js +1 -1
  320. package/dist/stencil-library/udp-vertical-spacer.entry.js +1 -1
  321. package/dist/types/components/my-component/UI/drawers/udp-side-sheet/types.d.ts +7 -0
  322. package/dist/types/components/my-component/UI/drawers/udp-side-sheet/udp-side-sheet.d.ts +114 -0
  323. package/dist/types/components.d.ts +83 -0
  324. package/package.json +1 -1
@@ -1,59 +1,251 @@
1
- import { h } from "@stencil/core";
1
+ /* eslint-disable stencil/strict-boolean-conditions */
2
+ import { h, Build, } from "@stencil/core";
2
3
  import Close24 from "@carbon/icons/es/close/24";
4
+ /**
5
+ * Side sheet component used for contextual drawers.
6
+ */
3
7
  export class UdpSideSheet {
4
8
  constructor() {
9
+ /** When true, the side sheet is open and visible */
5
10
  this.open = false;
11
+ /** Position of the sheet on the screen */
6
12
  this.position = 'right';
13
+ /** Width preset or a numeric pixel width */
7
14
  this.width = 'md';
15
+ /** Controls whether default inner padding is applied */
8
16
  this.padding = true;
17
+ /** When true, shows a top loader */
9
18
  this.loading = false;
19
+ /** Whether the header action button is disabled */
10
20
  this.headerActionButtonDisabled = false;
21
+ /** Whether the primary footer button is disabled */
11
22
  this.primaryButtonDisabled = false;
23
+ /** Whether the footer should show the overflow "More" button */
24
+ this.showOverflowButton = false;
25
+ /** Whether the overflow popover is open */
26
+ this.openOverflowMenu = false;
27
+ this.visibleSecondaryButtons = [];
28
+ this.overflowSecondaryButtons = [];
29
+ /** Saved original document.body.overflow value to restore on close */
12
30
  this.originalBodyOverflow = '';
31
+ /** Saved original document.body.paddingRight value to restore on close */
32
+ this.originalBodyPaddingRight = '';
33
+ /**
34
+ * Transition end handler used to remove the host element from body after close.
35
+ *
36
+ * @private
37
+ */
13
38
  this.handleTransitionEnd = () => {
14
39
  if (!this.open && this.hostEl.parentElement === document.body) {
15
40
  document.body.removeChild(this.hostEl);
16
41
  }
17
42
  };
43
+ /**
44
+ * Close the side sheet and emit close event.
45
+ *
46
+ * @private
47
+ */
18
48
  this.onClose = () => {
19
49
  this.open = false;
20
50
  this.udpSideSheetClose.emit();
21
51
  };
52
+ /**
53
+ * Backdrop click handler. Only closes when clicking the backdrop itself.
54
+ *
55
+ * @param e - MouseEvent from the backdrop click
56
+ * @private
57
+ */
58
+ this.onCloseBackdrop = (e) => {
59
+ if (e.target === e.currentTarget) {
60
+ this.onClose();
61
+ }
62
+ };
63
+ /**
64
+ * Emit primary footer button click event.
65
+ *
66
+ * @private
67
+ */
22
68
  this.onPrimaryButtonClick = () => {
23
69
  this.udpPrimaryButtonClick.emit();
24
70
  };
25
- // Handler for the new header action button click
71
+ /**
72
+ * Emit header action button click event.
73
+ *
74
+ * @private
75
+ */
26
76
  this.onHeaderActionButtonClick = () => {
27
77
  this.udpHeaderActionButtonClick.emit();
28
78
  };
79
+ /**
80
+ * Open overflow menu anchored to the clicked element.
81
+ *
82
+ * @param event - MouseEvent from the "More" button click
83
+ * @private
84
+ */
85
+ this.onMoreActionButtonClick = (event) => {
86
+ this.overflowMenuAnchor = event.currentTarget;
87
+ this.openOverflowMenu = true;
88
+ };
89
+ /**
90
+ * Close the overflow popover.
91
+ *
92
+ * @param e - optional KeyboardEvent or MouseEvent (unused)
93
+ * @private
94
+ */
95
+ this.handleCloseOverflowMenu = () => {
96
+ this.openOverflowMenu = false;
97
+ };
29
98
  }
99
+ /**
100
+ * Watcher for `open` prop. Handles portal append/removal and body scroll lock.
101
+ *
102
+ * @param newValue - new value of the `open` prop
103
+ * @param oldValue - previous value of the `open` prop
104
+ */
30
105
  handleOpenChange(newValue, oldValue) {
31
106
  if (newValue === oldValue) {
32
107
  return;
33
108
  }
34
109
  if (newValue) {
110
+ // Calculate scrollbar width before hiding it
111
+ const scrollbarWidth = window.innerWidth - document.documentElement.clientWidth;
112
+ // Save original values
35
113
  this.originalBodyOverflow = document.body.style.overflow;
36
- document.body.style.overflow = 'hidden';
114
+ this.originalBodyPaddingRight = document.body.style.paddingRight;
37
115
  document.body.appendChild(this.hostEl);
116
+ // Add padding to compensate for scrollbar
117
+ if (scrollbarWidth > 0) {
118
+ const currentPadding = parseInt(window.getComputedStyle(document.body).paddingRight) || 0;
119
+ document.body.style.paddingRight = `${currentPadding + scrollbarWidth}px`;
120
+ }
121
+ document.body.style.overflow = 'hidden';
38
122
  requestAnimationFrame(() => {
39
123
  this.hostEl.classList.add('is-visible');
124
+ // Check overflow after the side sheet is visible
125
+ setTimeout(() => this.checkOverflow(), 50);
40
126
  });
41
127
  }
42
128
  else {
43
129
  this.hostEl.classList.remove('is-visible');
44
130
  document.body.style.overflow = this.originalBodyOverflow;
131
+ document.body.style.paddingRight = this.originalBodyPaddingRight;
45
132
  this.hostEl.addEventListener('transitionend', this.handleTransitionEnd, { once: true });
46
133
  }
47
134
  }
135
+ /**
136
+ * Watcher for footer secondary buttons changes. Triggers overflow recalculation.
137
+ */
138
+ handleSecondaryButtonsChange() {
139
+ // Recheck overflow when buttons change
140
+ setTimeout(() => this.checkOverflow(), 50);
141
+ }
142
+ /**
143
+ * Measures footer buttons in an offscreen container and sets `showOverflowButton`.
144
+ * Safely returns early if required refs are unavailable.
145
+ */
146
+ checkOverflow() {
147
+ if (!this.footerRef || !this.measurementContainerRef) {
148
+ return;
149
+ }
150
+ if (!this.footerSecondaryButtons || this.footerSecondaryButtons.length === 0) {
151
+ this.showOverflowButton = false;
152
+ return;
153
+ }
154
+ // Get the footer container width (minus padding)
155
+ const footerWidth = this.footerRef.offsetWidth;
156
+ const footerStyle = window.getComputedStyle(this.footerRef);
157
+ const footerPaddingLeft = parseFloat(footerStyle.paddingLeft);
158
+ const footerPaddingRight = parseFloat(footerStyle.paddingRight);
159
+ const availableWidth = footerWidth - footerPaddingLeft - footerPaddingRight;
160
+ // Measure all buttons in the hidden measurement container
161
+ const measurementButtons = this.measurementContainerRef.querySelectorAll('udp-button');
162
+ let totalWidth = 0;
163
+ measurementButtons.forEach((button, index) => {
164
+ const buttonWidth = button && button instanceof HTMLElement ? button.offsetWidth : 0;
165
+ totalWidth += buttonWidth;
166
+ // Add gap spacing between buttons (except for the last one)
167
+ if (index < measurementButtons.length - 1) {
168
+ const containerStyle = window.getComputedStyle(this.measurementContainerRef);
169
+ const gap = parseFloat(containerStyle.gap) || 4; // Default gap from CSS
170
+ totalWidth += gap;
171
+ }
172
+ });
173
+ // Add a small buffer to prevent edge cases
174
+ const buffer = 10;
175
+ const isOverflowing = totalWidth + buffer > availableWidth;
176
+ this.showOverflowButton = isOverflowing;
177
+ }
178
+ /**
179
+ * Lifecycle: componentDidLoad. Sets up ResizeObserver and initial overflow check.
180
+ *
181
+ * @private
182
+ */
183
+ componentDidLoad() {
184
+ if (Build.isBrowser) {
185
+ // Set up ResizeObserver to watch for footer size changes
186
+ this.resizeObserver = new ResizeObserver(() => {
187
+ this.checkOverflow();
188
+ });
189
+ // Initial check after a small delay to ensure DOM is ready
190
+ requestAnimationFrame(() => {
191
+ setTimeout(() => {
192
+ if (this.footerRef) {
193
+ this.resizeObserver.observe(this.footerRef);
194
+ }
195
+ this.checkOverflow();
196
+ }, 100);
197
+ });
198
+ }
199
+ }
200
+ /**
201
+ * Lifecycle: disconnectedCallback. Restores body styles and disconnects observers.
202
+ *
203
+ * @private
204
+ */
48
205
  disconnectedCallback() {
49
206
  if (document.body.style.overflow === 'hidden') {
50
207
  document.body.style.overflow = this.originalBodyOverflow;
208
+ document.body.style.paddingRight = this.originalBodyPaddingRight;
209
+ }
210
+ // Clean up ResizeObserver
211
+ if (this.resizeObserver) {
212
+ this.resizeObserver.disconnect();
51
213
  }
52
214
  }
215
+ /**
216
+ * Render the component UI.
217
+ *
218
+ * @returns JSX element tree
219
+ * @private
220
+ */
53
221
  render() {
222
+ var _a, _b, _c, _d, _e, _f, _g;
54
223
  const widthClass = typeof this.width === 'number' ? 'custom-width' : this.width;
55
224
  const sideSheetStyle = typeof this.width === 'number' ? { maxWidth: `${this.width}px` } : {};
56
- return (h("div", { key: '3071b6fbf443030422ad30d2fc7a86a3c71d060a', class: "backdrop", onClick: this.onClose }, h("div", { key: '75ae7c0f6bc4da076a3cd04579fc09252f701eb3', class: { sheet: true, [this.position]: true, [widthClass]: true }, style: sideSheetStyle, onClick: e => e.stopPropagation() }, h("div", { key: 'ec51c197afe4b00084881abb8688ca8f4f994a30', class: "title-container" }, h("div", { key: 'f382e9b4bf63314092b0b5d326069a9ca2316272', class: "close-button" }, h("stencil-icon-button", { key: 'ff449c9a65921a12207f2f4f6daaa45d9ff652c0', icon: Close24, onClick: this.onClose, secondary: true })), h("div", { key: '72e80626b9f519098dd069ebb357061f5e7008f8', class: "title-text" }, h("unity-typography", { key: 'fa7de8f448021ef6ac8a34d4825dcad745124dd2', variant: "h6" }, this.title)), this.headerActionButtonLabel && (h("div", { key: 'bcce55c18c3ff2b80cea48f471468ece741dc0bd', class: "header-action-button" }, h("udp-button", { key: '09d1343460e8b0d7fdceb8769ed8387647ab5a34', disabled: this.headerActionButtonDisabled, onClick: this.onHeaderActionButtonClick, startIcon: h("udp-icon", { iconName: this.headerActionButtonIcon, color: 'inherit' }), variant: "contained" }, this.headerActionButtonLabel)))), h("div", { key: '594932ae9ee30cfd5415fefcd48765c3d3f21aea', class: "loader-container" }, h("udp-linear-loader", { key: 'f3d09a98c7ac6bd22699339d2d0a7325c035e63d', class: { 'is-loading': this.loading }, color: "primary" })), h("div", { key: '59e987c1780a950dcdc8f56f012087a0ba55acb0', class: { content: true, padding: this.padding } }, h("slot", { key: 'fda6cf654587b15f3a28443b47a30f7564b2bf57' })), this.primaryButtonLabel && (h("div", { key: 'c6434be80f44e6f8a277bdff49503f67db5cdca7', class: "footer" }, h("udp-button", { key: '522a0e7bb290472cb1704bc4f61bf2a22ebda668', variant: "contained", size: "large", disabled: this.primaryButtonDisabled, onClick: this.onPrimaryButtonClick, endIcon: this.primaryButtonIcon }, this.primaryButtonLabel))))));
225
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
226
+ const headerStartIcon = Boolean(this.headerActionButtonIcon) ? (h("udp-icon", { iconName: this.headerActionButtonIcon, color: "inherit" })) : undefined;
227
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
228
+ const overflowIcon = h("udp-icon", { key: '3262baafbf833e25e0b4d1128b24fb503d1dd157', iconName: "overflowMenuVertical", color: "inherit" });
229
+ return (h("div", { key: '780c5705588899683400da7bce6569ad8ce15d30', class: "backdrop", onClick: this.onCloseBackdrop }, h("div", { key: 'a68811f8a6c59239c60c048453bb63eae7ed7ee0', class: { sheet: true, [this.position]: true, [widthClass]: true }, style: sideSheetStyle }, h("div", { key: '82207996d3f164f4e4a27132a64d6ce6b82ac401', class: "title-container" }, h("div", { key: 'e29501f861893b9e61f72509c44c337e7d1a5fb1', class: "close-button" }, h("stencil-icon-button", { key: '8980a42b0d47582a0fd91998cafe5c57982e9c04',
230
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
231
+ icon: Close24, onClick: this.onClose, secondary: true })), h("div", { key: '6b71ecb62ed1bac4560ca3e8e4ff1f643ee98555', class: "title-text" }, h("unity-typography", { key: 'b5f420d289dd23f040100d82def0ff635038cafd', variant: "h6" }, this.title)), (this.headerActionButtonLabel || ((_a = this.headerSecondaryButtons) === null || _a === void 0 ? void 0 : _a.length) > 0) && (h("div", { key: '65b8198f2a63096839fa678b6b69761ea2a93196', class: "header-action-button" }, (_b = this.headerSecondaryButtons) === null || _b === void 0 ? void 0 :
232
+ _b.map((item) => (h("udp-button", { variant: "outlined", disabled: item.disabled, onClick: item.onClick, endIcon: item.icon }, item.label))), this.headerActionButtonLabel && (h("udp-button", { key: 'a9985bcd675163a0a3dc47ea88cfe35e98a830fb', disabled: this.headerActionButtonDisabled, onClick: this.onHeaderActionButtonClick,
233
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
234
+ startIcon: headerStartIcon, variant: "contained" }, this.headerActionButtonLabel))))), h("div", { key: '362358edc955be022239e6662a0403baf49a4444', class: "loader-container" }, h("udp-linear-loader", { key: '0f93c37fc52e8400fbdb2d0db0879b49eb605859', class: { 'is-loading': this.loading }, color: "primary" })), h("div", { key: 'a2e70b272eb6f02878845350b7057908fdbb0cb2', class: { content: true, padding: this.padding } }, h("slot", { key: 'c6128fac4e8549fda3c25db826ed0377759a3bbb' })), (this.primaryButtonLabel || ((_c = this.footerSecondaryButtons) === null || _c === void 0 ? void 0 : _c.length) > 0) && (h("div", { key: '2d408d1f87df636effab01487739762b52c8897f' }, h("div", { key: '2fbdee5102a9837cc26d3f0cafb37141ebcc1527', class: "loader-container" }), h("div", { key: '8ba75738ab5ac6c4d33f828988f2d1e85ae1e3d5', class: {
235
+ footer: true,
236
+ }, ref: el => (this.footerRef = el) }, !this.showOverflowButton && ((_d = this.footerSecondaryButtons) === null || _d === void 0 ? void 0 : _d.length) > 0 && (h("div", { key: '13c00f7ff092655600f11885ce39d9acd4b9b26a', class: "footer-secondary-buttons-container" }, h("div", { key: '9bc81711a693c84bdab3274e67588193dc226203', class: "footer-secondary-buttons" }, (_e = this.footerSecondaryButtons) === null || _e === void 0 ? void 0 : _e.map((item) => (h("udp-button", { variant: "outlined", disabled: item.disabled, onClick: item.onClick, endIcon: item.icon }, item.label)))))), this.showOverflowButton && (h("udp-button", { key: '92c871d74675c9fd42ac890d9c5efe8e39a6aeb2', variant: "outlined", onClick: this.onMoreActionButtonClick, color: "secondary",
237
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
238
+ endIcon: overflowIcon }, "More")), this.primaryButtonLabel && (h("udp-button", { key: '94acda01904ab4265ced91dd6ef6e6d9ab788784', variant: "contained", disabled: this.primaryButtonDisabled, onClick: this.onPrimaryButtonClick, endIcon: this.primaryButtonIcon }, this.primaryButtonLabel)), this.showOverflowButton && (h("udp-pop-over", { key: 'c839371b5401fb7433417cba6b705c08c2242c09', anchorElement: this.overflowMenuAnchor, isOpen: this.openOverflowMenu, popoverWidth: '200px', popoverMaxHeight: '300px', handleOnClose: this.handleCloseOverflowMenu }, h("div", { key: '368023d9643a123acfa8215dab9ceaa85e613fbf', class: "menu" }, (_f = this.footerSecondaryButtons) === null || _f === void 0 ? void 0 : _f.map(item => (h("udp-menu-item", { label: item === null || item === void 0 ? void 0 : item.label, iconName: item === null || item === void 0 ? void 0 : item.icon, onItemClick: () => {
239
+ item === null || item === void 0 ? void 0 : item.onClick();
240
+ this.handleCloseOverflowMenu();
241
+ }, disabled: item === null || item === void 0 ? void 0 : item.disabled })))))), h("div", { key: '2dfb53eb181826fce129e856a4427da9edaeb756', ref: el => (this.measurementContainerRef = el), style: {
242
+ position: 'absolute',
243
+ visibility: 'hidden',
244
+ pointerEvents: 'none',
245
+ display: 'flex',
246
+ gap: 'var(--spacing-02, 4px)',
247
+ }, "aria-hidden": "true" }, (_g = this.footerSecondaryButtons) === null || _g === void 0 ? void 0 :
248
+ _g.map((item) => (h("udp-button", { variant: "text", size: "medium", disabled: item.disabled, endIcon: item.icon }, item.label))), this.primaryButtonLabel && (h("udp-button", { key: '5e6f99245f8649cbacfee9c34a88967966c2e856', variant: "contained", size: "medium", disabled: this.primaryButtonDisabled, endIcon: this.primaryButtonIcon }, this.primaryButtonLabel)))))))));
57
249
  }
58
250
  static get is() { return "udp-side-sheet"; }
59
251
  static get encapsulation() { return "shadow"; }
@@ -81,7 +273,7 @@ export class UdpSideSheet {
81
273
  "optional": false,
82
274
  "docs": {
83
275
  "tags": [],
84
- "text": ""
276
+ "text": "When true, the side sheet is open and visible"
85
277
  },
86
278
  "getter": false,
87
279
  "setter": false,
@@ -101,7 +293,7 @@ export class UdpSideSheet {
101
293
  "optional": false,
102
294
  "docs": {
103
295
  "tags": [],
104
- "text": ""
296
+ "text": "Title text displayed in the header"
105
297
  },
106
298
  "getter": false,
107
299
  "setter": false,
@@ -120,7 +312,7 @@ export class UdpSideSheet {
120
312
  "optional": false,
121
313
  "docs": {
122
314
  "tags": [],
123
- "text": ""
315
+ "text": "Position of the sheet on the screen"
124
316
  },
125
317
  "getter": false,
126
318
  "setter": false,
@@ -140,7 +332,7 @@ export class UdpSideSheet {
140
332
  "optional": false,
141
333
  "docs": {
142
334
  "tags": [],
143
- "text": ""
335
+ "text": "Width preset or a numeric pixel width"
144
336
  },
145
337
  "getter": false,
146
338
  "setter": false,
@@ -160,7 +352,7 @@ export class UdpSideSheet {
160
352
  "optional": false,
161
353
  "docs": {
162
354
  "tags": [],
163
- "text": ""
355
+ "text": "Controls whether default inner padding is applied"
164
356
  },
165
357
  "getter": false,
166
358
  "setter": false,
@@ -180,7 +372,7 @@ export class UdpSideSheet {
180
372
  "optional": false,
181
373
  "docs": {
182
374
  "tags": [],
183
- "text": ""
375
+ "text": "When true, shows a top loader"
184
376
  },
185
377
  "getter": false,
186
378
  "setter": false,
@@ -200,7 +392,7 @@ export class UdpSideSheet {
200
392
  "optional": false,
201
393
  "docs": {
202
394
  "tags": [],
203
- "text": ""
395
+ "text": "Label for the header primary action button"
204
396
  },
205
397
  "getter": false,
206
398
  "setter": false,
@@ -219,7 +411,7 @@ export class UdpSideSheet {
219
411
  "optional": false,
220
412
  "docs": {
221
413
  "tags": [],
222
- "text": ""
414
+ "text": "Whether the header action button is disabled"
223
415
  },
224
416
  "getter": false,
225
417
  "setter": false,
@@ -239,13 +431,36 @@ export class UdpSideSheet {
239
431
  "optional": false,
240
432
  "docs": {
241
433
  "tags": [],
242
- "text": ""
434
+ "text": "Icon name for the header action button"
243
435
  },
244
436
  "getter": false,
245
437
  "setter": false,
246
438
  "reflect": false,
247
439
  "attribute": "header-action-button-icon"
248
440
  },
441
+ "headerSecondaryButtons": {
442
+ "type": "unknown",
443
+ "mutable": false,
444
+ "complexType": {
445
+ "original": "SecondaryButton[]",
446
+ "resolved": "SecondaryButton[]",
447
+ "references": {
448
+ "SecondaryButton": {
449
+ "location": "import",
450
+ "path": "./types",
451
+ "id": "src/components/my-component/UI/drawers/udp-side-sheet/types.ts::SecondaryButton"
452
+ }
453
+ }
454
+ },
455
+ "required": false,
456
+ "optional": false,
457
+ "docs": {
458
+ "tags": [],
459
+ "text": "Additional secondary buttons to render in the header"
460
+ },
461
+ "getter": false,
462
+ "setter": false
463
+ },
249
464
  "primaryButtonLabel": {
250
465
  "type": "string",
251
466
  "mutable": false,
@@ -258,7 +473,7 @@ export class UdpSideSheet {
258
473
  "optional": false,
259
474
  "docs": {
260
475
  "tags": [],
261
- "text": ""
476
+ "text": "Label for the primary footer action button"
262
477
  },
263
478
  "getter": false,
264
479
  "setter": false,
@@ -277,7 +492,7 @@ export class UdpSideSheet {
277
492
  "optional": false,
278
493
  "docs": {
279
494
  "tags": [],
280
- "text": ""
495
+ "text": "Whether the primary footer button is disabled"
281
496
  },
282
497
  "getter": false,
283
498
  "setter": false,
@@ -297,15 +512,47 @@ export class UdpSideSheet {
297
512
  "optional": false,
298
513
  "docs": {
299
514
  "tags": [],
300
- "text": ""
515
+ "text": "Icon name for the primary footer button"
301
516
  },
302
517
  "getter": false,
303
518
  "setter": false,
304
519
  "reflect": false,
305
520
  "attribute": "primary-button-icon"
521
+ },
522
+ "footerSecondaryButtons": {
523
+ "type": "unknown",
524
+ "mutable": false,
525
+ "complexType": {
526
+ "original": "SecondaryButton[]",
527
+ "resolved": "SecondaryButton[]",
528
+ "references": {
529
+ "SecondaryButton": {
530
+ "location": "import",
531
+ "path": "./types",
532
+ "id": "src/components/my-component/UI/drawers/udp-side-sheet/types.ts::SecondaryButton"
533
+ }
534
+ }
535
+ },
536
+ "required": false,
537
+ "optional": true,
538
+ "docs": {
539
+ "tags": [],
540
+ "text": "Secondary buttons to render in the footer"
541
+ },
542
+ "getter": false,
543
+ "setter": false
306
544
  }
307
545
  };
308
546
  }
547
+ static get states() {
548
+ return {
549
+ "showOverflowButton": {},
550
+ "openOverflowMenu": {},
551
+ "overflowMenuAnchor": {},
552
+ "visibleSecondaryButtons": {},
553
+ "overflowSecondaryButtons": {}
554
+ };
555
+ }
309
556
  static get events() {
310
557
  return [{
311
558
  "method": "udpSideSheetClose",
@@ -315,7 +562,7 @@ export class UdpSideSheet {
315
562
  "composed": true,
316
563
  "docs": {
317
564
  "tags": [],
318
- "text": ""
565
+ "text": "Emitted when the sheet is closed"
319
566
  },
320
567
  "complexType": {
321
568
  "original": "void",
@@ -330,7 +577,7 @@ export class UdpSideSheet {
330
577
  "composed": true,
331
578
  "docs": {
332
579
  "tags": [],
333
- "text": ""
580
+ "text": "Emitted when the primary footer button is clicked"
334
581
  },
335
582
  "complexType": {
336
583
  "original": "void",
@@ -345,7 +592,7 @@ export class UdpSideSheet {
345
592
  "composed": true,
346
593
  "docs": {
347
594
  "tags": [],
348
- "text": ""
595
+ "text": "Emitted when the header action button is clicked"
349
596
  },
350
597
  "complexType": {
351
598
  "original": "void",
@@ -359,6 +606,9 @@ export class UdpSideSheet {
359
606
  return [{
360
607
  "propName": "open",
361
608
  "methodName": "handleOpenChange"
609
+ }, {
610
+ "propName": "footerSecondaryButtons",
611
+ "methodName": "handleSecondaryButtonsChange"
362
612
  }];
363
613
  }
364
614
  }
@@ -1 +1 @@
1
- {"version":3,"file":"udp-side-sheet.js","sourceRoot":"","sources":["../../../../../../src/components/my-component/UI/drawers/udp-side-sheet/udp-side-sheet.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, h, Prop, Element, Watch, Event, EventEmitter } from '@stencil/core';\nimport Close24 from '@carbon/icons/es/close/24';\n\n@Component({\n tag: 'udp-side-sheet',\n styleUrl: 'udp-side-sheet.css',\n shadow: true,\n})\nexport class UdpSideSheet {\n @Element() hostEl!: HTMLElement;\n\n @Prop({ reflect: true, mutable: true }) open = false;\n @Prop() title: string;\n @Prop() position: 'left' | 'right' = 'right';\n @Prop() width: 'sm' | 'md' | 'lg' | 'full' | number = 'md';\n @Prop() padding = true;\n @Prop() loading: boolean = false;\n\n // Props for the new header action button\n @Prop() headerActionButtonLabel: string;\n @Prop() headerActionButtonDisabled = false;\n @Prop() headerActionButtonIcon: string;\n\n // Props for the existing footer button\n @Prop() primaryButtonLabel: string;\n @Prop() primaryButtonDisabled = false;\n @Prop() primaryButtonIcon: string;\n\n @Event() udpSideSheetClose: EventEmitter<void>;\n @Event() udpPrimaryButtonClick: EventEmitter<void>;\n // Event for the new header action button\n @Event() udpHeaderActionButtonClick: EventEmitter<void>;\n\n private originalBodyOverflow: string = '';\n\n @Watch('open')\n handleOpenChange(newValue: boolean, oldValue: boolean) {\n if (newValue === oldValue) {\n return;\n }\n\n if (newValue) {\n this.originalBodyOverflow = document.body.style.overflow;\n document.body.style.overflow = 'hidden';\n document.body.appendChild(this.hostEl);\n\n requestAnimationFrame(() => {\n this.hostEl.classList.add('is-visible');\n });\n } else {\n this.hostEl.classList.remove('is-visible');\n document.body.style.overflow = this.originalBodyOverflow;\n this.hostEl.addEventListener('transitionend', this.handleTransitionEnd, { once: true });\n }\n }\n\n private handleTransitionEnd = () => {\n if (!this.open && this.hostEl.parentElement === document.body) {\n document.body.removeChild(this.hostEl);\n }\n };\n\n disconnectedCallback() {\n if (document.body.style.overflow === 'hidden') {\n document.body.style.overflow = this.originalBodyOverflow;\n }\n }\n\n private onClose = () => {\n this.open = false;\n this.udpSideSheetClose.emit();\n };\n\n private onPrimaryButtonClick = () => {\n this.udpPrimaryButtonClick.emit();\n };\n\n // Handler for the new header action button click\n private onHeaderActionButtonClick = () => {\n this.udpHeaderActionButtonClick.emit();\n };\n\n render() {\n const widthClass = typeof this.width === 'number' ? 'custom-width' : this.width;\n const sideSheetStyle = typeof this.width === 'number' ? { maxWidth: `${this.width}px` } : {};\n\n return (\n <div class=\"backdrop\" onClick={this.onClose}>\n <div\n class={{ sheet: true, [this.position]: true, [widthClass]: true }}\n style={sideSheetStyle}\n onClick={e => e.stopPropagation()}\n >\n {/* Header layout has been changed here */}\n <div class=\"title-container\">\n <div class=\"close-button\">\n <stencil-icon-button\n icon={Close24}\n onClick={this.onClose}\n secondary\n ></stencil-icon-button>\n </div>\n <div class=\"title-text\">\n <unity-typography variant=\"h6\">{this.title}</unity-typography>\n </div>\n {/* Conditionally render the new header action button */}\n {this.headerActionButtonLabel && (\n <div class=\"header-action-button\">\n <udp-button\n disabled={this.headerActionButtonDisabled}\n onClick={this.onHeaderActionButtonClick}\n startIcon={<udp-icon iconName={this.headerActionButtonIcon} color={'inherit'} />}\n variant=\"contained\"\n >\n {this.headerActionButtonLabel}\n </udp-button>\n </div>\n )}\n </div>\n <div class=\"loader-container\">\n <udp-linear-loader class={{ 'is-loading': this.loading }} color=\"primary\" />\n </div>\n\n <div class={{ content: true, padding: this.padding }}>\n\n <slot />\n </div>\n {this.primaryButtonLabel && (\n <div class=\"footer\">\n <udp-button\n variant=\"contained\"\n size=\"large\"\n disabled={this.primaryButtonDisabled}\n onClick={this.onPrimaryButtonClick}\n endIcon={this.primaryButtonIcon}\n >\n {this.primaryButtonLabel}\n </udp-button>\n </div>\n )}\n </div>\n </div>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"udp-side-sheet.js","sourceRoot":"","sources":["../../../../../../src/components/my-component/UI/drawers/udp-side-sheet/udp-side-sheet.tsx"],"names":[],"mappings":"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","sourcesContent":["/* 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"]}
@@ -7,7 +7,7 @@ export class UpdAlertBanner {
7
7
  this.message = '';
8
8
  }
9
9
  render() {
10
- return (h("div", { key: 'd252b1793bc4caa4e96acebb6e2ec6ba8e52f029', class: `alert-banner ${this.type}` }, h("unity-typography", { key: '7ec2b81da5013172c16f6d61b1454a3264ef66ca', variant: "data-display-three" }, " ", this.message, " ")));
10
+ return (h("div", { key: '4551695bcaba3fde5445c7a34f1d67d0444af855', class: `alert-banner ${this.type}` }, h("unity-typography", { key: 'd763dea98c2b14a12753f54d5b99c89be23aaf49', variant: "data-display-three" }, " ", this.message, " ")));
11
11
  }
12
12
  static get is() { return "upd-alert-banner"; }
13
13
  static get encapsulation() { return "shadow"; }
@@ -13,11 +13,11 @@ export class UdpNotification {
13
13
  }
14
14
  render() {
15
15
  const statusClass = `status-${this.status}`;
16
- return (h("div", { key: '6f9511dcb791934acf07b90000160a764d0fc6e7', class: {
16
+ return (h("div", { key: '555f2f94b04009382fac53a32d74f8f84f14a733', class: {
17
17
  'udp-notification': true,
18
18
  'visible': this.active,
19
19
  [statusClass]: true // This will apply the correct class based on the status
20
- } }, this.userCancel && (h("button", { key: '3e6f7df67c906e32d6e2bd38262c6441c77d21ed', class: "close-button", onClick: () => this.active = false }, "\u00D7")), h("span", { key: 'ebdd3141d533f86448edfd7c84d2f681f2315bac', class: "message" }, " ", h("unity-typography", { key: 'aae63f399ad043aef3ece93e022d4e9873d2d558', variant: 'body' }, " ", this.message, " "))));
20
+ } }, this.userCancel && (h("button", { key: 'a9e6b1a2faa49b97d3d39da732a0b3e35045228d', class: "close-button", onClick: () => this.active = false }, "\u00D7")), h("span", { key: 'ed21c8f3e5e3fa53d2a1d4a54835e0f4b63210c4', class: "message" }, " ", h("unity-typography", { key: '9283d1e980b03cd92e5721d7a41209ee0c109cdf', variant: 'body' }, " ", this.message, " "))));
21
21
  }
22
22
  static get is() { return "udp-notification"; }
23
23
  static get encapsulation() { return "shadow"; }
@@ -250,7 +250,7 @@ export class UdpDynamicForm {
250
250
  });
251
251
  }
252
252
  render() {
253
- return h("div", { key: 'e960c3bb0795530b409abbec56a9e50d9e6098e3', class: "form-root" }, this.renderFormFields());
253
+ return h("div", { key: '3ad645e7b28adea7f62b2e9c6e6f99d8cbd4f389', class: "form-root" }, this.renderFormFields());
254
254
  }
255
255
  static get is() { return "udp-dynamic-form"; }
256
256
  static get encapsulation() { return "shadow"; }
@@ -45,8 +45,8 @@ export class EditViewFormDialog {
45
45
  this.fetchedCurrentView = false;
46
46
  }
47
47
  render() {
48
- return (h("fluent-dialog", { key: '13510c696c9ee250e34511d939ec2162e6a4c798', open: this.open, actionOne: () => { this.handleSubmit(); this.closeDialog(); this.resetFetchedCurrentView(); }, actionTwo: () => { this.closeDialog(); this.resetFetchedCurrentView(); }, handleClose: this.handleClose, labelOne: "Save Update", labelTwo: "Cancel", title: this.title, disableOne: !this.name }, h("form", { key: '9a9bc362d32e3738d14b3a7f7120463cc8474236', class: "edit-form" }, h("text-field", { key: '7dd193fc122d44d11a5d879a9a0343a00d3f5139', label: "View Name", value: this.name, onInput: (event) => this.handleNameChange(event) }), this.fetchedCurrentView &&
49
- h("div", { key: 'e236df4118070b03b4a39cbc22d7e6e4dbf434ed', class: "toggle-options" }, h("div", { key: '6485d8d5bb333ad83a89312d342d08a5a75a601a' }, h("stencil-toggle", { key: '112c950264146cf27b715d008345dab4386564ee', label: "Private", checked: this.isPrivate === 1, onToggledChange: this.handlePrivateChange }), " "), h("div", { key: 'fdae4c4d5b87b027b72e59a5d53a8df08878d76b' }, h("stencil-toggle", { key: '740f081c7a644a30ce096a3a3e6b847767365712', label: "Default", checked: this.isDefault, onToggledChange: this.handleDefaultChange, style: { marginTop: '10px' } }))))));
48
+ return (h("fluent-dialog", { key: '7d9f36f3e3f076bf8e9b9ea76678c3a65431922c', open: this.open, actionOne: () => { this.handleSubmit(); this.closeDialog(); this.resetFetchedCurrentView(); }, actionTwo: () => { this.closeDialog(); this.resetFetchedCurrentView(); }, handleClose: this.handleClose, labelOne: "Save Update", labelTwo: "Cancel", title: this.title, disableOne: !this.name }, h("form", { key: '582cce3a0ea5f9a4670b2c67f7c4096f3cf97884', class: "edit-form" }, h("text-field", { key: 'c8b700f8db69b68666a03c539f893d29fe507d72', label: "View Name", value: this.name, onInput: (event) => this.handleNameChange(event) }), this.fetchedCurrentView &&
49
+ h("div", { key: '6ebbde8f024c03916bc1100e964d440868749154', class: "toggle-options" }, h("div", { key: 'f699dfeecb0ddf085d9c3d5a8dfc42c3987ae53e' }, h("stencil-toggle", { key: '8c1e54b90e023140879bafa1377388f8a4a18432', label: "Private", checked: this.isPrivate === 1, onToggledChange: this.handlePrivateChange }), " "), h("div", { key: '562103cb25f1fa01d4e0749f8c0a3cd400c809f6' }, h("stencil-toggle", { key: 'aaafe2ead718dae3489df1dd24027fb3c8a8300d', label: "Default", checked: this.isDefault, onToggledChange: this.handleDefaultChange, style: { marginTop: '10px' } }))))));
50
50
  }
51
51
  static get is() { return "edit-view-form-dialog"; }
52
52
  static get encapsulation() { return "shadow"; }
@@ -228,7 +228,7 @@ export class StencilForm {
228
228
  debounce(submitFunction, 1000, { leading: true, trailing: false })();
229
229
  }
230
230
  render() {
231
- return (h("form", { key: 'fd790369f0e37d43c8bafcaccde0e440e0746e08' }, h("slot", { key: 'd748fb1bb8a0946f8966b4799535865b466a1442' })));
231
+ return (h("form", { key: 'd4f22ff5b96b35639d98dae8c1d3adfbab8f493f' }, h("slot", { key: '4c460485b67440935235d078c08c92f6736f1a1a' })));
232
232
  }
233
233
  static get is() { return "stencil-form"; }
234
234
  static get encapsulation() { return "shadow"; }