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

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 (965) hide show
  1. package/dist/cjs/add-map-feature-popup_4.cjs.entry.js +12 -12
  2. package/dist/cjs/advanced-search-builder.cjs.entry.js +2 -2
  3. package/dist/cjs/advanced-search.advanced-search-grouped.ag-table.edit-view-form-dialog.grid-primary-bar.kpi-list.save-view-form-dialog.side-sheet.udp-hotlist-form.udp-notification.udp-pop-over-grid-action-header.upd-alert-banner.entry.cjs.js.map +1 -0
  4. package/dist/cjs/advanced-search_12.cjs.entry.js +876 -0
  5. package/dist/cjs/ag-grid-base.ghost-render.grid-header.hint-panel.udp-dialog.udp-list-item.entry.cjs.js.map +1 -0
  6. package/dist/cjs/{ag-grid-base_5.cjs.entry.js → ag-grid-base_6.cjs.entry.js} +26 -8
  7. package/dist/cjs/{advanced-search_50.cjs.entry.js → ambient-template-grid.cjs.entry.js} +43 -4915
  8. package/dist/cjs/ambient-template-grid.entry.cjs.js.map +1 -0
  9. package/dist/cjs/api-method-instance-grid.cjs.entry.js +1 -1
  10. package/dist/cjs/app-bar.cjs.entry.js +23 -0
  11. package/dist/cjs/app-bar.entry.cjs.js.map +1 -0
  12. package/dist/cjs/catalog-store-BOiNPWZB.js +34 -0
  13. package/dist/cjs/catalog-store-BOiNPWZB.js.map +1 -0
  14. package/dist/cjs/chart-container_3.cjs.entry.js +2 -2
  15. package/dist/cjs/check-box.cjs.entry.js +2 -2
  16. package/dist/cjs/chip-section.cjs.entry.js +2 -2
  17. package/dist/cjs/client-side-grid.resource-timeline-primary-bar.entry.cjs.js.map +1 -1
  18. package/dist/cjs/client-side-grid_2.cjs.entry.js +5 -4
  19. package/dist/cjs/color-preview.cjs.entry.js +1 -1
  20. package/dist/cjs/conversionFunctions-B_9y17KE.js +135 -0
  21. package/dist/cjs/conversionFunctions-B_9y17KE.js.map +1 -0
  22. package/dist/cjs/{currency-renderer-D8Tuzf0W.js → currency-renderer-53i7rUkS.js} +7 -8
  23. package/dist/cjs/currency-renderer-53i7rUkS.js.map +1 -0
  24. package/dist/cjs/custom-button.cjs.entry.js +52 -0
  25. package/dist/cjs/custom-button.entry.cjs.js.map +1 -0
  26. package/dist/cjs/date-time-renderer.file-upload-renderer.list-options-renderer.question-specific-configs-renderer.signature-renderer.text-input-renderer.entry.cjs.js.map +1 -1
  27. package/dist/cjs/date-time-renderer_6.cjs.entry.js +10 -9
  28. package/dist/cjs/entity-maintenance-grid.cjs.entry.js +1 -1
  29. package/dist/cjs/feature-details-card.feature-details-popup.entry.cjs.js.map +1 -1
  30. package/dist/cjs/feature-details-card_2.cjs.entry.js +7 -6
  31. package/dist/cjs/filter-conditions.search-list-item.tree-list-item.udp-column-header.udp-grid-loader.udp-page-header.udp-radio-button.entry.cjs.js.map +1 -0
  32. package/dist/cjs/filter-conditions_7.cjs.entry.js +309 -0
  33. package/dist/cjs/filter-group.validation-chip.entry.cjs.js.map +1 -1
  34. package/dist/cjs/filter-group_2.cjs.entry.js +3 -2
  35. package/dist/cjs/fluent-dialog.cjs.entry.js +23 -0
  36. package/dist/cjs/fluent-dialog.entry.cjs.js.map +1 -0
  37. package/dist/cjs/{iconUtils-Bfr2fT9-.js → iconMapping-BV2-Gk9Y.js} +2 -13
  38. package/dist/cjs/iconMapping-BV2-Gk9Y.js.map +1 -0
  39. package/dist/cjs/iconUtils-2mh73T__.js +18 -0
  40. package/dist/cjs/iconUtils-2mh73T__.js.map +1 -0
  41. package/dist/cjs/image-upload.signature-input.stencil-form.tally-display.udp-question.udp-question-comment.udp-save-draft-button.entry.cjs.js.map +1 -1
  42. package/dist/cjs/image-upload_7.cjs.entry.js +8 -7
  43. package/dist/cjs/index-DrMNAZCL.js +162 -94
  44. package/dist/cjs/index.cjs.js +57 -17
  45. package/dist/cjs/index.cjs.js.map +1 -1
  46. package/dist/cjs/inputs-example.cjs.entry.js +2 -2
  47. package/dist/cjs/loader.cjs.js +1 -1
  48. package/dist/cjs/logical-search-indicator.cjs.entry.js +1 -1
  49. package/dist/cjs/map-component_2.cjs.entry.js +2 -2
  50. package/dist/cjs/numeric-field_5.cjs.entry.js +15 -15
  51. package/dist/cjs/primary-action-header.udp-side-sheet.udp-tabs.entry.cjs.js.map +1 -0
  52. package/dist/cjs/primary-action-header_3.cjs.entry.js +644 -0
  53. package/dist/cjs/question-configs-renderer.section-configs-renderer.udp-forms-builder-menu.udp-forms-builder-question-item.udp-forms-builder-style-override.entry.cjs.js.map +1 -1
  54. package/dist/cjs/question-configs-renderer_5.cjs.entry.js +16 -15
  55. package/dist/cjs/resource-timeline-calendar.cjs.entry.js +1 -1
  56. package/dist/cjs/search-method-grid.cjs.entry.js +1 -1
  57. package/dist/cjs/server-side-grid.cjs.entry.js +1 -1
  58. package/dist/cjs/side-sheet-container.cjs.entry.js +20 -0
  59. package/dist/cjs/side-sheet-container.entry.cjs.js.map +1 -0
  60. package/dist/cjs/simple-card.cjs.entry.js +1 -1
  61. package/dist/cjs/status-chip.udp-function-button.entry.cjs.js.map +1 -0
  62. package/dist/cjs/status-chip_2.cjs.entry.js +109 -0
  63. package/dist/cjs/stencil-chip.cjs.entry.js +112 -0
  64. package/dist/cjs/stencil-chip.entry.cjs.js.map +1 -0
  65. package/dist/cjs/stencil-icon-button-grid-action-header.cjs.entry.js +44 -0
  66. package/dist/cjs/stencil-icon-button-grid-action-header.entry.cjs.js.map +1 -0
  67. package/dist/cjs/stencil-icon-button.udp-ambient-tool-tip.udp-badge.entry.cjs.js.map +1 -0
  68. package/dist/cjs/stencil-icon-button_3.cjs.entry.js +158 -0
  69. package/dist/cjs/stencil-library.cjs.js +1 -1
  70. package/dist/cjs/stencil-toggle.cjs.entry.js +150 -0
  71. package/dist/cjs/stencil-toggle.entry.cjs.js.map +1 -0
  72. package/dist/cjs/text-field.udp-selector.entry.cjs.js.map +1 -0
  73. package/dist/cjs/text-field_2.cjs.entry.js +568 -0
  74. package/dist/cjs/{catalog-store-yJKDPXXM.js → transformSearchData-B4bk4Aik.js} +2 -31
  75. package/dist/cjs/transformSearchData-B4bk4Aik.js.map +1 -0
  76. package/dist/cjs/udp-adornment.cjs.entry.js +1 -1
  77. package/dist/cjs/udp-advanced-search-builder.cjs.entry.js +1 -1
  78. package/dist/cjs/udp-avatar.cjs.entry.js +57 -0
  79. package/dist/cjs/udp-avatar.entry.cjs.js.map +1 -0
  80. package/dist/cjs/udp-bar-chart_4.cjs.entry.js +4 -4
  81. package/dist/cjs/udp-button.cjs.entry.js +113 -0
  82. package/dist/cjs/udp-button.entry.cjs.js.map +1 -0
  83. package/dist/cjs/udp-calendar-base.cjs.entry.js +1 -1
  84. package/dist/cjs/udp-calendar-day.cjs.entry.js +1 -1
  85. package/dist/cjs/udp-calendar-month.cjs.entry.js +1 -1
  86. package/dist/cjs/udp-calendar-week.cjs.entry.js +1 -1
  87. package/dist/cjs/udp-calendar-year.cjs.entry.js +1 -1
  88. package/dist/cjs/udp-card-action-area.cjs.entry.js +1 -1
  89. package/dist/cjs/udp-card_6.cjs.entry.js +7 -7
  90. package/dist/cjs/udp-charts-example.cjs.entry.js +1 -1
  91. package/dist/cjs/udp-chip_3.cjs.entry.js +2 -2
  92. package/dist/cjs/udp-container-query-grid-item.cjs.entry.js +1 -1
  93. package/dist/cjs/udp-container-query-grid.cjs.entry.js +1 -1
  94. package/dist/cjs/udp-container-query.cjs.entry.js +2 -2
  95. package/dist/cjs/udp-container.udp-linear-loader.entry.cjs.js.map +1 -0
  96. package/dist/cjs/udp-container_2.cjs.entry.js +56 -0
  97. package/dist/cjs/udp-date-range-selector.cjs.entry.js +1 -1
  98. package/dist/cjs/udp-divider.cjs.entry.js +22 -0
  99. package/dist/cjs/udp-divider.entry.cjs.js.map +1 -0
  100. package/dist/cjs/udp-dynamic-container-with-menu.cjs.entry.js +134 -0
  101. package/dist/cjs/udp-dynamic-container-with-menu.entry.cjs.js.map +1 -0
  102. package/dist/cjs/udp-dynamic-form.cjs.entry.js +1 -1
  103. package/dist/cjs/udp-empty-state-display.cjs.entry.js +1 -1
  104. package/dist/cjs/udp-forms-builder.cjs.entry.js +2 -1
  105. package/dist/cjs/udp-forms-builder.entry.cjs.js.map +1 -1
  106. package/dist/cjs/udp-forms-follow-up-list-card.cjs.entry.js +2 -2
  107. package/dist/cjs/udp-forms-list-card.cjs.entry.js +5 -5
  108. package/dist/cjs/udp-forms-list.cjs.entry.js +1 -1
  109. package/dist/cjs/udp-forms-renderer.cjs.entry.js +1 -1
  110. package/dist/cjs/udp-forms-ui.cjs.entry.js +2 -1
  111. package/dist/cjs/udp-forms-ui.entry.cjs.js.map +1 -1
  112. package/dist/cjs/udp-icon.cjs.entry.js +151 -0
  113. package/dist/cjs/udp-icon.entry.cjs.js.map +1 -0
  114. package/dist/cjs/udp-list-renderer.udp-pagination.entry.cjs.js.map +1 -0
  115. package/dist/cjs/udp-list-renderer_2.cjs.entry.js +204 -0
  116. package/dist/cjs/udp-map.cjs.entry.js +3 -3
  117. package/dist/cjs/udp-menu-item.cjs.entry.js +27 -0
  118. package/dist/cjs/udp-menu-item.entry.cjs.js.map +1 -0
  119. package/dist/cjs/udp-page.cjs.entry.js +1 -1
  120. package/dist/cjs/udp-pop-over.cjs.entry.js +132 -0
  121. package/dist/cjs/udp-pop-over.entry.cjs.js.map +1 -0
  122. package/dist/cjs/udp-sankey-chart.cjs.entry.js +1 -1
  123. package/dist/cjs/udp-skeleton-loading.cjs.entry.js +22 -0
  124. package/dist/cjs/udp-skeleton-loading.entry.cjs.js.map +1 -0
  125. package/dist/cjs/udp-split-screen.cjs.entry.js +1 -1
  126. package/dist/cjs/udp-stepper-demo.cjs.entry.js +1 -1
  127. package/dist/cjs/udp-tab-panel.cjs.entry.js +2 -2
  128. package/dist/cjs/udp-tab.cjs.entry.js +38 -0
  129. package/dist/cjs/udp-tab.entry.cjs.js.map +1 -0
  130. package/dist/cjs/udp-vertical-spacer.cjs.entry.js +1 -1
  131. package/dist/cjs/udp-xy-chart.cjs.entry.js +1 -1
  132. package/dist/cjs/udp-xy-multi-series-chart.cjs.entry.js +1 -1
  133. package/dist/cjs/unity-typography.cjs.entry.js +63 -0
  134. package/dist/cjs/unity-typography.entry.cjs.js.map +1 -0
  135. package/dist/collection/collection-manifest.json +0 -8
  136. package/dist/collection/components/deprecated/side-sheet/side-sheet-container.js +1 -1
  137. package/dist/collection/components/deprecated/side-sheet/side-sheet.js +1 -1
  138. package/dist/collection/components/my-component/UI/advanced-search/advanced-search-grouped.js +6 -2
  139. package/dist/collection/components/my-component/UI/advanced-search/advanced-search-grouped.js.map +1 -1
  140. package/dist/collection/components/my-component/UI/advanced-search/advanced-search.js +6 -2
  141. package/dist/collection/components/my-component/UI/advanced-search/advanced-search.js.map +1 -1
  142. package/dist/collection/components/my-component/UI/advanced-search/filter-conditions/filter-conditions.js +1 -1
  143. package/dist/collection/components/my-component/UI/advanced-search/ui/logical-search-indicator/logical-search-indicator.js +1 -1
  144. package/dist/collection/components/my-component/UI/advanced-search-builder/advanced-search-builder.js +2 -2
  145. package/dist/collection/components/my-component/UI/advanced-search-builder/udp-advanced-search-builder.js +1 -1
  146. package/dist/collection/components/my-component/UI/advanced-search-builder/validation-chip.js +1 -1
  147. package/dist/collection/components/my-component/UI/buttons/icon-button/function-button/udp-function-button.js +1 -1
  148. package/dist/collection/components/my-component/UI/buttons/icon-button/primary-button/custom-button.js +1 -1
  149. package/dist/collection/components/my-component/UI/buttons/icon-button/radio-button/udp-radio-button.js +1 -1
  150. package/dist/collection/components/my-component/UI/buttons/udp-button/udp-button.js +1 -1
  151. package/dist/collection/components/my-component/UI/calendar/udp-calendar-base.js +1 -1
  152. package/dist/collection/components/my-component/UI/calendar/udp-calendar-day.js +1 -1
  153. package/dist/collection/components/my-component/UI/calendar/udp-calendar-month.js +1 -1
  154. package/dist/collection/components/my-component/UI/calendar/udp-calendar-week.js +1 -1
  155. package/dist/collection/components/my-component/UI/calendar/udp-calendar-year.js +1 -1
  156. package/dist/collection/components/my-component/UI/charts/chart-kpi/chart-kpi.js +1 -1
  157. package/dist/collection/components/my-component/UI/charts/udp-bar-chart/udp-bar-chart.js +1 -1
  158. package/dist/collection/components/my-component/UI/charts/udp-charts-example.js +1 -1
  159. package/dist/collection/components/my-component/UI/charts/udp-distribution-chart/udp-distribution-chart.js +1 -1
  160. package/dist/collection/components/my-component/UI/charts/udp-donut-chart/udp-donut-chart.js +1 -1
  161. package/dist/collection/components/my-component/UI/charts/udp-line-chart/udp-line-chart.js +1 -1
  162. package/dist/collection/components/my-component/UI/charts/udp-sankey-chart/udp-sankey-chart.js +1 -1
  163. package/dist/collection/components/my-component/UI/charts/udp-xy-chart/udp-xy-chart.js +1 -1
  164. package/dist/collection/components/my-component/UI/charts/udp-xy-multi-series-chart/udp-xy-multi-series-chart.js +1 -1
  165. package/dist/collection/components/my-component/UI/data-display/adornment/udp-adornment/udp-adornment.js +1 -1
  166. package/dist/collection/components/my-component/UI/data-display/badge/udp-badge.js +1 -1
  167. package/dist/collection/components/my-component/UI/data-display/cards/udp-ambient-card/udp-ambient-card.js +1 -1
  168. package/dist/collection/components/my-component/UI/data-display/cards/udp-card/udp-card-action-area/udp-card-action-area.js +1 -1
  169. package/dist/collection/components/my-component/UI/data-display/cards/udp-card/udp-card-actions/udp-card-actions.js +1 -1
  170. package/dist/collection/components/my-component/UI/data-display/cards/udp-card/udp-card-content/udp-card-content.js +1 -1
  171. package/dist/collection/components/my-component/UI/data-display/cards/udp-card/udp-card-header/udp-card-header.js +1 -1
  172. package/dist/collection/components/my-component/UI/data-display/cards/udp-card/udp-card-media/udp-card-media.js +1 -1
  173. package/dist/collection/components/my-component/UI/data-display/cards/udp-card/udp-card.js +3 -3
  174. package/dist/collection/components/my-component/UI/data-display/chips/stencil-chip/status-chip/status-chip.js +1 -1
  175. package/dist/collection/components/my-component/UI/data-display/chips/stencil-chip/stencil-chip.js +2 -2
  176. package/dist/collection/components/my-component/UI/data-display/chips/udp-chip.js +1 -1
  177. package/dist/collection/components/my-component/UI/data-display/divider/udp-divider.js +1 -1
  178. package/dist/collection/components/my-component/UI/data-display/empty-state-display/udp-empty-state-display.js +1 -1
  179. package/dist/collection/components/my-component/UI/data-display/headers/udp-column-header.js +1 -1
  180. package/dist/collection/components/my-component/UI/data-display/headers/udp-page-header/udp-page-header.js +1 -1
  181. package/dist/collection/components/my-component/UI/data-display/hint-panel/hint-panel.js +1 -1
  182. package/dist/collection/components/my-component/UI/data-display/kpi/kpi-list.js +1 -1
  183. package/dist/collection/components/my-component/UI/data-display/list-item/list-item.js +2 -2
  184. package/dist/collection/components/my-component/UI/data-display/pop-over/udp-pop-over.js +1 -1
  185. package/dist/collection/components/my-component/UI/data-display/pop-over-grid-action-header/udp-pop-over-grid-action-header.js +1 -1
  186. package/dist/collection/components/my-component/UI/data-display/primary-action-header/primary-action-header.js +2 -2
  187. package/dist/collection/components/my-component/UI/data-display/simple-card/simple-card.js +1 -1
  188. package/dist/collection/components/my-component/UI/data-display/tool-tip/udp-ambient-tool-tip.js +2 -2
  189. package/dist/collection/components/my-component/UI/data-display/tree/tree-list-item/search-item/search-list-item.js +1 -1
  190. package/dist/collection/components/my-component/UI/data-display/udp-avatar/udp-avatar.js +1 -1
  191. package/dist/collection/components/my-component/UI/dialogs/fluent-dialog/fluent-dialog.js +2 -2
  192. package/dist/collection/components/my-component/UI/dialogs/udp-dialog.js +1 -1
  193. package/dist/collection/components/my-component/UI/drawers/udp-side-sheet/udp-side-sheet.js +9 -9
  194. package/dist/collection/components/my-component/UI/feedback/udp-notification/alerts/upd-alert-banner.js +1 -1
  195. package/dist/collection/components/my-component/UI/feedback/udp-notification/udp-notification.js +2 -2
  196. package/dist/collection/components/my-component/UI/forms/dynamic-form/udp-dynamic-form.js +1 -1
  197. package/dist/collection/components/my-component/UI/forms/edit-view-form/edit-view-form.js +2 -2
  198. package/dist/collection/components/my-component/UI/forms/form/stencil-form.js +1 -1
  199. package/dist/collection/components/my-component/UI/forms/save-view-form/save-view-form.js +2 -2
  200. package/dist/collection/components/my-component/UI/forms/udp-forms/udp-forms-builder/forms-question-item/udp-forms-builder-question-item.js +2 -2
  201. 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
  202. 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
  203. 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
  204. 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
  205. package/dist/collection/components/my-component/UI/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/signature-renderer/signature-renderer.js +1 -1
  206. 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
  207. package/dist/collection/components/my-component/UI/forms/udp-forms/udp-forms-builder/udp-forms-builder-menu/udp-forms-builder-menu.js +2 -2
  208. 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
  209. package/dist/collection/components/my-component/UI/forms/udp-forms/udp-forms-list/udp-forms-list-card/udp-forms-list-card.js +5 -5
  210. package/dist/collection/components/my-component/UI/forms/udp-forms/udp-forms-list/udp-forms-list.js +1 -1
  211. 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
  212. package/dist/collection/components/my-component/UI/forms/udp-forms/udp-forms-renderer/udp-forms-renderer.js +1 -1
  213. package/dist/collection/components/my-component/UI/grid/ag-table/ag-table.js +1 -1
  214. package/dist/collection/components/my-component/UI/grid/ambient-template-grid/ambient-template-grid.js +19 -15
  215. package/dist/collection/components/my-component/UI/grid/ambient-template-grid/ambient-template-grid.js.map +1 -1
  216. package/dist/collection/components/my-component/UI/grid/grid-primary-bar/grid-primary-bar.js +2 -2
  217. package/dist/collection/components/my-component/UI/grid/hotlists/udp-hotlist-form/udp-hotlist-form.js +1 -1
  218. package/dist/collection/components/my-component/UI/grid/new-grid/ag-grid-base.js +1 -1
  219. package/dist/collection/components/my-component/UI/grid/new-grid/api-method-instance-grid.js +1 -1
  220. package/dist/collection/components/my-component/UI/grid/new-grid/client-side-grid.js +1 -1
  221. package/dist/collection/components/my-component/UI/grid/new-grid/entity-maintenance-grid.js +1 -1
  222. package/dist/collection/components/my-component/UI/grid/new-grid/search-method-grid.js +1 -1
  223. package/dist/collection/components/my-component/UI/grid/new-grid/server-side-grid.js +1 -1
  224. package/dist/collection/components/my-component/UI/grid/renderers/currency-renderer.js +11 -1
  225. package/dist/collection/components/my-component/UI/grid/renderers/currency-renderer.js.map +1 -1
  226. package/dist/collection/components/my-component/UI/grid/renderers/hot-list-add-renderer.js +3 -0
  227. package/dist/collection/components/my-component/UI/grid/renderers/hot-list-add-renderer.js.map +1 -1
  228. package/dist/collection/components/my-component/UI/grid/resource-timeline-calendar/resource-timeline-calendar.js +1 -1
  229. package/dist/collection/components/my-component/UI/grid/resource-timeline-calendar/resource-timeline-primary-bar.js +2 -2
  230. package/dist/collection/components/my-component/UI/inputs/checkbox/check-box.js +2 -2
  231. package/dist/collection/components/my-component/UI/inputs/date-range-selector/udp-date-range-selector.js +1 -1
  232. package/dist/collection/components/my-component/UI/inputs/date-selector/udp-date-selector.js +3 -3
  233. package/dist/collection/components/my-component/UI/inputs/date-time-selector/udp-datetime-selector.js +3 -3
  234. package/dist/collection/components/my-component/UI/inputs/image-upload/image-upload.js +1 -1
  235. package/dist/collection/components/my-component/UI/inputs/numeric-field/numeric-field.js +3 -3
  236. package/dist/collection/components/my-component/UI/inputs/signature-input/signature-input.js +2 -2
  237. package/dist/collection/components/my-component/UI/inputs/tally/tally.js +2 -2
  238. package/dist/collection/components/my-component/UI/inputs/text-area/text-area.js +3 -3
  239. package/dist/collection/components/my-component/UI/inputs/text-field/text-field.js +3 -3
  240. package/dist/collection/components/my-component/UI/inputs/time-selector/udp-time-selector.js +3 -3
  241. package/dist/collection/components/my-component/UI/inputs/toggle/stencil-toggle.js +4 -4
  242. package/dist/collection/components/my-component/UI/inputs/udp-selector/udp-selector.js +4 -4
  243. package/dist/collection/components/my-component/UI/layout/udp-container/udp-container.js +2 -2
  244. package/dist/collection/components/my-component/UI/layout/udp-container-query/udp-container-query.js +2 -2
  245. package/dist/collection/components/my-component/UI/layout/udp-container-query-grid/udp-container-query-grid.js +1 -1
  246. package/dist/collection/components/my-component/UI/layout/udp-container-query-grid-item/udp-container-query-grid-item.js +1 -1
  247. package/dist/collection/components/my-component/UI/layout/udp-page/udp-page.js +1 -1
  248. package/dist/collection/components/my-component/UI/layout/udp-split-screen/udp-split-screen.js +1 -1
  249. package/dist/collection/components/my-component/UI/layout/udp-vertical-spacer.js +1 -1
  250. package/dist/collection/components/my-component/UI/loaders/udp-grid-loader/udp-grid-loader.js +2 -2
  251. package/dist/collection/components/my-component/UI/loaders/udp-linear-loader/udp-linear-loader.js +1 -1
  252. package/dist/collection/components/my-component/UI/loaders/udp-skeleton-loading.js +1 -1
  253. package/dist/collection/components/my-component/UI/map/udp-map/map-component.js +1 -1
  254. package/dist/collection/components/my-component/UI/map/udp-map/popups/add-map-feature-popup.js +3 -3
  255. package/dist/collection/components/my-component/UI/map/udp-map/popups/feature-details-card/feature-details-card.js +4 -4
  256. package/dist/collection/components/my-component/UI/map/udp-map/popups/feature-details-popup.js +1 -1
  257. package/dist/collection/components/my-component/UI/map/udp-map/popups/select-layer-popup.js +2 -2
  258. package/dist/collection/components/my-component/UI/map/udp-map/popups/split-line-popup.js +1 -1
  259. package/dist/collection/components/my-component/UI/map/udp-map/toolbar/map-toolbar.js +6 -6
  260. package/dist/collection/components/my-component/UI/map/udp-map/udp-map-toolbar.js +1 -1
  261. package/dist/collection/components/my-component/UI/map/udp-map/udp-map.js +3 -3
  262. package/dist/collection/components/my-component/UI/menu/menu-item/udp-menu-item.js +1 -1
  263. package/dist/collection/components/my-component/UI/menu/udp-menu.js +1 -1
  264. package/dist/collection/components/my-component/UI/stepper/udp-stepper-demo.js +1 -1
  265. package/dist/collection/components/my-component/UI/tabs/tab/tabs/udp-tabs.js +2 -2
  266. package/dist/collection/components/my-component/UI/tabs/tab/udp-tab.js +1 -1
  267. package/dist/collection/components/my-component/UI/tabs/udp-tab-panel/udp-tab-panel.js +2 -2
  268. package/dist/collection/components/my-component/UI/toolbars/app-bar/app-bar.js +1 -1
  269. package/dist/collection/components/my-component/UI/util/ghost-render/ghost-render.js +1 -1
  270. package/dist/collection/components/test-component/inputs-example/inputs-example.js +2 -2
  271. package/dist/collection/global/ag-grid.js +3 -0
  272. package/dist/collection/global/ag-grid.js.map +1 -1
  273. package/dist/collection/index.js +0 -3
  274. package/dist/collection/index.js.map +1 -1
  275. package/dist/collection/store/user-store.js.map +1 -1
  276. package/dist/collection/theme/color-preview/color-preview.js +1 -1
  277. package/dist/collection/udp-utilities/api-udp/apiMutate.js.map +1 -1
  278. package/dist/collection/udp-utilities/layout/udp-dynamic-container-with-menu/chip-section/chip-section.js +2 -2
  279. package/dist/collection/udp-utilities/layout/udp-dynamic-container-with-menu/udp-dynamic-container-with-menu.js +1 -1
  280. package/dist/components/add-map-feature-popup2.js +3 -3
  281. package/dist/components/advanced-search-builder2.js +2 -2
  282. package/dist/components/advanced-search-grouped2.js +2 -2
  283. package/dist/components/advanced-search-grouped2.js.map +1 -1
  284. package/dist/components/advanced-search2.js +2 -2
  285. package/dist/components/advanced-search2.js.map +1 -1
  286. package/dist/components/ag-grid-base2.js +2 -2
  287. package/dist/components/ag-table2.js +1 -1
  288. package/dist/components/ambient-template-grid.js +4350 -1
  289. package/dist/components/ambient-template-grid.js.map +1 -1
  290. package/dist/components/api-method-instance-grid.js +1 -1
  291. package/dist/components/apiUtils.js +1 -1
  292. package/dist/components/app-bar.js +69 -1
  293. package/dist/components/app-bar.js.map +1 -1
  294. package/dist/components/catalog-store.js +1 -1
  295. package/dist/components/chart-kpi2.js +1 -1
  296. package/dist/components/check-box2.js +2 -2
  297. package/dist/components/chip-section.js +2 -2
  298. package/dist/components/client-side-grid2.js +1 -1
  299. package/dist/components/color-preview.js +1 -1
  300. package/dist/components/custom-button2.js +1 -1
  301. package/dist/components/edit-view-form.js +2 -2
  302. package/dist/components/entity-maintenance-grid.js +2 -2
  303. package/dist/components/feature-details-card2.js +4 -4
  304. package/dist/components/feature-details-popup2.js +1 -1
  305. package/dist/components/file-upload-renderer2.js +2 -2
  306. package/dist/components/filter-conditions2.js +1 -1
  307. package/dist/components/fluent-dialog2.js +2 -2
  308. package/dist/components/ghost-render2.js +1 -1
  309. package/dist/components/grid-primary-bar2.js +2 -2
  310. package/dist/components/hint-panel2.js +1 -1
  311. package/dist/components/image-upload2.js +1 -1
  312. package/dist/components/index.js +45 -4
  313. package/dist/components/index.js.map +1 -1
  314. package/dist/components/inputs-example.js +2 -2
  315. package/dist/components/kpi-list2.js +1 -1
  316. package/dist/components/list-item.js +2 -2
  317. package/dist/components/list-options-renderer2.js +3 -3
  318. package/dist/components/logical-search-indicator.js +1 -1
  319. package/dist/components/map-component2.js +1 -1
  320. package/dist/components/map-toolbar2.js +6 -6
  321. package/dist/components/numeric-field2.js +3 -3
  322. package/dist/components/primary-action-header2.js +2 -2
  323. package/dist/components/question-configs-renderer2.js +6 -6
  324. package/dist/components/resource-timeline-calendar.js +1 -1
  325. package/dist/components/resource-timeline-primary-bar2.js +2 -2
  326. package/dist/components/save-view-form.js +2 -2
  327. package/dist/components/search-list-item2.js +1 -1
  328. package/dist/components/search-method-grid2.js +2 -2
  329. package/dist/components/section-configs-renderer2.js +3 -3
  330. package/dist/components/select-layer-popup2.js +2 -2
  331. package/dist/components/server-side-grid2.js +1 -1
  332. package/dist/components/side-sheet-container2.js +1 -1
  333. package/dist/components/side-sheet2.js +1 -1
  334. package/dist/components/signature-input2.js +2 -2
  335. package/dist/components/signature-renderer2.js +1 -1
  336. package/dist/components/simple-card.js +1 -1
  337. package/dist/components/split-line-popup2.js +1 -1
  338. package/dist/components/status-chip2.js +1 -1
  339. package/dist/components/status-renderer.js +4 -5
  340. package/dist/components/status-renderer.js.map +1 -1
  341. package/dist/components/stencil-chip2.js +2 -2
  342. package/dist/components/stencil-form2.js +1 -1
  343. package/dist/components/stencil-toggle2.js +4 -4
  344. package/dist/components/tally.js +2 -2
  345. package/dist/components/text-area2.js +3 -3
  346. package/dist/components/text-field2.js +3 -3
  347. package/dist/components/text-input-renderer2.js +2 -2
  348. package/dist/components/udp-adornment2.js +1 -1
  349. package/dist/components/udp-advanced-search-builder.js +1 -1
  350. package/dist/components/udp-ambient-card2.js +1 -1
  351. package/dist/components/udp-ambient-tool-tip2.js +2 -2
  352. package/dist/components/udp-avatar2.js +1 -1
  353. package/dist/components/udp-badge2.js +1 -1
  354. package/dist/components/udp-bar-chart2.js +1 -1
  355. package/dist/components/udp-button2.js +1 -1
  356. package/dist/components/udp-calendar-base2.js +1 -1
  357. package/dist/components/udp-calendar-day.js +1 -1
  358. package/dist/components/udp-calendar-month.js +1 -1
  359. package/dist/components/udp-calendar-week.js +1 -1
  360. package/dist/components/udp-calendar-year.js +1 -1
  361. package/dist/components/udp-card-action-area.js +1 -1
  362. package/dist/components/udp-card-actions2.js +1 -1
  363. package/dist/components/udp-card-content2.js +1 -1
  364. package/dist/components/udp-card-header2.js +1 -1
  365. package/dist/components/udp-card-media2.js +1 -1
  366. package/dist/components/udp-card2.js +3 -3
  367. package/dist/components/udp-charts-example.js +1 -1
  368. package/dist/components/udp-chip2.js +1 -1
  369. package/dist/components/udp-column-header2.js +1 -1
  370. package/dist/components/udp-container-query-grid-item.js +1 -1
  371. package/dist/components/udp-container-query-grid.js +1 -1
  372. package/dist/components/udp-container-query2.js +2 -2
  373. package/dist/components/udp-container2.js +2 -2
  374. package/dist/components/udp-date-range-selector.js +1 -1
  375. package/dist/components/udp-date-selector2.js +3 -3
  376. package/dist/components/udp-datetime-selector2.js +3 -3
  377. package/dist/components/udp-dialog2.js +1 -1
  378. package/dist/components/udp-distribution-chart2.js +1 -1
  379. package/dist/components/udp-divider2.js +1 -1
  380. package/dist/components/udp-donut-chart2.js +1 -1
  381. package/dist/components/udp-dynamic-container-with-menu2.js +1 -1
  382. package/dist/components/udp-dynamic-form.js +1 -1
  383. package/dist/components/udp-empty-state-display.js +1 -1
  384. package/dist/components/udp-forms-builder-menu2.js +2 -2
  385. package/dist/components/udp-forms-builder-question-item2.js +2 -2
  386. package/dist/components/udp-forms-builder-style-override2.js +1 -1
  387. package/dist/components/udp-forms-follow-up-list-card.js +2 -2
  388. package/dist/components/udp-forms-list-card2.js +5 -5
  389. package/dist/components/udp-forms-list.js +1 -1
  390. package/dist/components/udp-forms-renderer.js +1 -1
  391. package/dist/components/udp-function-button2.js +1 -1
  392. package/dist/components/udp-grid-loader2.js +2 -2
  393. package/dist/components/udp-hotlist-form2.js +1 -1
  394. package/dist/components/udp-line-chart2.js +1 -1
  395. package/dist/components/udp-linear-loader2.js +1 -1
  396. package/dist/components/udp-map-toolbar2.js +1 -1
  397. package/dist/components/udp-map.js +3 -3
  398. package/dist/components/udp-menu-item2.js +1 -1
  399. package/dist/components/udp-menu2.js +1 -1
  400. package/dist/components/udp-notification2.js +2 -2
  401. package/dist/components/udp-page-header2.js +1 -1
  402. package/dist/components/udp-page.js +1 -1
  403. package/dist/components/udp-pop-over-grid-action-header2.js +1 -1
  404. package/dist/components/udp-pop-over2.js +1 -1
  405. package/dist/components/udp-radio-button2.js +1 -1
  406. package/dist/components/udp-sankey-chart.js +1 -1
  407. package/dist/components/udp-selector2.js +4 -4
  408. package/dist/components/udp-side-sheet2.js +9 -9
  409. package/dist/components/udp-skeleton-loading2.js +1 -1
  410. package/dist/components/udp-split-screen.js +1 -1
  411. package/dist/components/udp-stepper-demo.js +1 -1
  412. package/dist/components/udp-tab-panel.js +2 -2
  413. package/dist/components/udp-tab.js +56 -1
  414. package/dist/components/udp-tab.js.map +1 -1
  415. package/dist/components/udp-tabs2.js +2 -2
  416. package/dist/components/udp-time-selector2.js +3 -3
  417. package/dist/components/udp-user-creator.js +86 -1
  418. package/dist/components/udp-user-creator.js.map +1 -1
  419. package/dist/components/udp-vertical-spacer.js +1 -1
  420. package/dist/components/udp-xy-chart2.js +1 -1
  421. package/dist/components/udp-xy-multi-series-chart.js +1 -1
  422. package/dist/components/upd-alert-banner2.js +1 -1
  423. package/dist/components/validation-chip2.js +1 -1
  424. package/dist/docs.json +363 -1408
  425. package/dist/esm/{action-column-util-BArOL_Uz.js → action-column-util-DUK_9dnF.js} +3 -3
  426. package/dist/esm/{action-column-util-BArOL_Uz.js.map → action-column-util-DUK_9dnF.js.map} +1 -1
  427. package/dist/esm/add-map-feature-popup_4.entry.js +13 -13
  428. package/dist/esm/advanced-search-builder.entry.js +2 -2
  429. package/dist/esm/advanced-search.advanced-search-grouped.ag-table.edit-view-form-dialog.grid-primary-bar.kpi-list.save-view-form-dialog.side-sheet.udp-hotlist-form.udp-notification.udp-pop-over-grid-action-header.upd-alert-banner.entry.js.map +1 -0
  430. package/dist/esm/advanced-search_12.entry.js +850 -0
  431. package/dist/esm/ag-grid-base.ghost-render.grid-header.hint-panel.udp-dialog.udp-list-item.entry.js.map +1 -0
  432. package/dist/esm/{ag-grid-base_5.entry.js → ag-grid-base_6.entry.js} +27 -10
  433. package/dist/{components/ambient-template-grid2.js → esm/ambient-template-grid.entry.js} +128 -489
  434. package/dist/esm/ambient-template-grid.entry.js.map +1 -0
  435. package/dist/esm/api-method-instance-grid.entry.js +1 -1
  436. package/dist/esm/{apiUtils-CudiwABF.js → apiUtils-cUHs50y0.js} +3 -3
  437. package/dist/{stencil-library/apiUtils-CudiwABF.js.map → esm/apiUtils-cUHs50y0.js.map} +1 -1
  438. package/dist/esm/app-bar.entry.js +17 -0
  439. package/dist/esm/app-bar.entry.js.map +1 -0
  440. package/dist/esm/catalog-store-BhgNAUY6.js +30 -0
  441. package/dist/esm/catalog-store-BhgNAUY6.js.map +1 -0
  442. package/dist/esm/chart-container_3.entry.js +2 -2
  443. package/dist/esm/{chartUtils-DqjnIahA.js → chartUtils-DFIyEsL1.js} +3 -3
  444. package/dist/esm/{chartUtils-DqjnIahA.js.map → chartUtils-DFIyEsL1.js.map} +1 -1
  445. package/dist/esm/check-box.entry.js +2 -2
  446. package/dist/esm/chip-section.entry.js +2 -2
  447. package/dist/esm/client-side-grid.resource-timeline-primary-bar.entry.js.map +1 -1
  448. package/dist/esm/client-side-grid_2.entry.js +5 -4
  449. package/dist/esm/color-preview.entry.js +1 -1
  450. package/dist/esm/conversionFunctions-CNWYTvRs.js +132 -0
  451. package/dist/esm/conversionFunctions-CNWYTvRs.js.map +1 -0
  452. package/dist/esm/{currency-renderer-BQ-hUac8.js → currency-renderer-CRK1v2o-.js} +7 -8
  453. package/dist/esm/currency-renderer-CRK1v2o-.js.map +1 -0
  454. package/dist/esm/custom-button.entry.js +50 -0
  455. package/dist/esm/custom-button.entry.js.map +1 -0
  456. package/dist/esm/date-time-renderer.file-upload-renderer.list-options-renderer.question-specific-configs-renderer.signature-renderer.text-input-renderer.entry.js.map +1 -1
  457. package/dist/esm/date-time-renderer_6.entry.js +12 -11
  458. package/dist/esm/entity-maintenance-grid.entry.js +2 -2
  459. package/dist/esm/{enums-CE8s6a9b.js → enums-BOc5zJ68.js} +3 -3
  460. package/dist/esm/{enums-CE8s6a9b.js.map → enums-BOc5zJ68.js.map} +1 -1
  461. package/dist/esm/feature-details-card.feature-details-popup.entry.js.map +1 -1
  462. package/dist/esm/feature-details-card_2.entry.js +9 -8
  463. package/dist/esm/file-upload_2.entry.js +1 -1
  464. package/dist/esm/filter-conditions.search-list-item.tree-list-item.udp-column-header.udp-grid-loader.udp-page-header.udp-radio-button.entry.js.map +1 -0
  465. package/dist/esm/filter-conditions_7.entry.js +297 -0
  466. package/dist/esm/filter-group.validation-chip.entry.js.map +1 -1
  467. package/dist/esm/filter-group_2.entry.js +3 -2
  468. package/dist/esm/fluent-dialog.entry.js +21 -0
  469. package/dist/esm/fluent-dialog.entry.js.map +1 -0
  470. package/dist/esm/{iconUtils-KSv32PVD.js → iconMapping-C_IYrnjG.js} +3 -13
  471. package/dist/esm/iconMapping-C_IYrnjG.js.map +1 -0
  472. package/dist/esm/iconUtils-BsS5FaLc.js +16 -0
  473. package/dist/esm/iconUtils-BsS5FaLc.js.map +1 -0
  474. package/dist/esm/image-upload.signature-input.stencil-form.tally-display.udp-question.udp-question-comment.udp-save-draft-button.entry.js.map +1 -1
  475. package/dist/esm/image-upload_7.entry.js +10 -9
  476. package/dist/esm/index-n-1ZSeAs.js +162 -94
  477. package/dist/esm/index.js +48 -9
  478. package/dist/esm/index.js.map +1 -1
  479. package/dist/esm/inputs-example.entry.js +2 -2
  480. package/dist/esm/loader.js +1 -1
  481. package/dist/esm/logical-search-indicator.entry.js +1 -1
  482. package/dist/esm/map-component_2.entry.js +3 -3
  483. package/dist/esm/numeric-field_5.entry.js +15 -15
  484. package/dist/esm/primary-action-header.udp-side-sheet.udp-tabs.entry.js.map +1 -0
  485. package/dist/esm/primary-action-header_3.entry.js +636 -0
  486. package/dist/esm/question-configs-renderer.section-configs-renderer.udp-forms-builder-menu.udp-forms-builder-question-item.udp-forms-builder-style-override.entry.js.map +1 -1
  487. package/dist/esm/question-configs-renderer_5.entry.js +18 -17
  488. package/dist/esm/resource-timeline-calendar.entry.js +1 -1
  489. package/dist/esm/search-method-grid.entry.js +2 -2
  490. package/dist/esm/server-side-grid.entry.js +1 -1
  491. package/dist/esm/side-sheet-container.entry.js +18 -0
  492. package/dist/esm/side-sheet-container.entry.js.map +1 -0
  493. package/dist/esm/simple-card.entry.js +1 -1
  494. package/dist/esm/status-chip.udp-function-button.entry.js.map +1 -0
  495. package/dist/esm/status-chip_2.entry.js +96 -0
  496. package/dist/esm/stencil-chip.entry.js +106 -0
  497. package/dist/esm/stencil-chip.entry.js.map +1 -0
  498. package/dist/esm/stencil-icon-button-grid-action-header.entry.js +42 -0
  499. package/dist/esm/stencil-icon-button-grid-action-header.entry.js.map +1 -0
  500. package/dist/esm/stencil-icon-button.udp-ambient-tool-tip.udp-badge.entry.js.map +1 -0
  501. package/dist/esm/stencil-icon-button_3.entry.js +154 -0
  502. package/dist/esm/stencil-library.js +1 -1
  503. package/dist/esm/stencil-toggle.entry.js +148 -0
  504. package/dist/esm/stencil-toggle.entry.js.map +1 -0
  505. package/dist/esm/text-field.udp-selector.entry.js.map +1 -0
  506. package/dist/esm/text-field_2.entry.js +565 -0
  507. package/dist/esm/{catalog-store-CeVER_Bk.js → transformSearchData-DBjFnXu6.js} +3 -29
  508. package/dist/esm/transformSearchData-DBjFnXu6.js.map +1 -0
  509. package/dist/esm/udp-adornment.entry.js +1 -1
  510. package/dist/esm/udp-advanced-search-builder.entry.js +1 -1
  511. package/dist/esm/udp-avatar.entry.js +55 -0
  512. package/dist/esm/udp-avatar.entry.js.map +1 -0
  513. package/dist/esm/udp-bar-chart_4.entry.js +5 -5
  514. package/dist/esm/udp-button.entry.js +111 -0
  515. package/dist/esm/udp-button.entry.js.map +1 -0
  516. package/dist/esm/udp-calendar-base.entry.js +1 -1
  517. package/dist/esm/udp-calendar-day.entry.js +1 -1
  518. package/dist/esm/udp-calendar-month.entry.js +1 -1
  519. package/dist/esm/udp-calendar-week.entry.js +1 -1
  520. package/dist/esm/udp-calendar-year.entry.js +1 -1
  521. package/dist/esm/udp-card-action-area.entry.js +1 -1
  522. package/dist/esm/udp-card_6.entry.js +7 -7
  523. package/dist/esm/udp-charts-example.entry.js +1 -1
  524. package/dist/esm/udp-chip_3.entry.js +2 -2
  525. package/dist/esm/udp-container-query-grid-item.entry.js +1 -1
  526. package/dist/esm/udp-container-query-grid.entry.js +1 -1
  527. package/dist/esm/udp-container-query.entry.js +2 -2
  528. package/dist/esm/udp-container.udp-linear-loader.entry.js.map +1 -0
  529. package/dist/esm/udp-container_2.entry.js +53 -0
  530. package/dist/esm/udp-date-range-selector.entry.js +1 -1
  531. package/dist/esm/udp-divider.entry.js +20 -0
  532. package/dist/esm/udp-divider.entry.js.map +1 -0
  533. package/dist/esm/{udp-drive-utils-BiYKUATs.js → udp-drive-utils-CIrjVGiJ.js} +3 -3
  534. package/dist/{stencil-library/udp-drive-utils-BiYKUATs.js.map → esm/udp-drive-utils-CIrjVGiJ.js.map} +1 -1
  535. package/dist/esm/udp-dynamic-container-with-menu.entry.js +132 -0
  536. package/dist/esm/udp-dynamic-container-with-menu.entry.js.map +1 -0
  537. package/dist/esm/udp-dynamic-form.entry.js +1 -1
  538. package/dist/esm/udp-empty-state-display.entry.js +1 -1
  539. package/dist/esm/{udp-forms-builder-question-template-y1XU3Z2l.js → udp-forms-builder-question-template-BwyE73q_.js} +3 -3
  540. package/dist/esm/{udp-forms-builder-question-template-y1XU3Z2l.js.map → udp-forms-builder-question-template-BwyE73q_.js.map} +1 -1
  541. package/dist/esm/udp-forms-builder.entry.js +4 -3
  542. package/dist/esm/udp-forms-builder.entry.js.map +1 -1
  543. package/dist/esm/udp-forms-follow-up-list-card.entry.js +3 -3
  544. package/dist/esm/udp-forms-list-card.entry.js +6 -6
  545. package/dist/esm/udp-forms-list.entry.js +2 -2
  546. package/dist/esm/udp-forms-renderer.entry.js +2 -2
  547. package/dist/esm/udp-forms-ui.entry.js +3 -2
  548. package/dist/esm/udp-forms-ui.entry.js.map +1 -1
  549. package/dist/esm/udp-icon.entry.js +149 -0
  550. package/dist/esm/udp-icon.entry.js.map +1 -0
  551. package/dist/esm/udp-list-renderer.udp-pagination.entry.js.map +1 -0
  552. package/dist/esm/udp-list-renderer_2.entry.js +201 -0
  553. package/dist/esm/{udp-map-utils-BokzHQF1.js → udp-map-utils-DNAUNI5U.js} +3 -3
  554. package/dist/esm/{udp-map-utils-BokzHQF1.js.map → udp-map-utils-DNAUNI5U.js.map} +1 -1
  555. package/dist/esm/udp-map.entry.js +3 -3
  556. package/dist/esm/udp-menu-item.entry.js +25 -0
  557. package/dist/esm/udp-menu-item.entry.js.map +1 -0
  558. package/dist/esm/udp-page.entry.js +1 -1
  559. package/dist/esm/udp-pop-over.entry.js +130 -0
  560. package/dist/esm/udp-pop-over.entry.js.map +1 -0
  561. package/dist/esm/udp-sankey-chart.entry.js +2 -2
  562. package/dist/esm/udp-skeleton-loading.entry.js +20 -0
  563. package/dist/esm/udp-skeleton-loading.entry.js.map +1 -0
  564. package/dist/esm/udp-split-screen.entry.js +1 -1
  565. package/dist/esm/udp-stepper-demo.entry.js +1 -1
  566. package/dist/esm/udp-tab-panel.entry.js +2 -2
  567. package/dist/esm/udp-tab.entry.js +36 -0
  568. package/dist/esm/udp-tab.entry.js.map +1 -0
  569. package/dist/esm/udp-vertical-spacer.entry.js +1 -1
  570. package/dist/esm/udp-xy-chart.entry.js +2 -2
  571. package/dist/esm/udp-xy-multi-series-chart.entry.js +2 -2
  572. package/dist/esm/unity-typography.entry.js +61 -0
  573. package/dist/esm/unity-typography.entry.js.map +1 -0
  574. package/dist/stencil-library/{action-column-util-BArOL_Uz.js → action-column-util-DUK_9dnF.js} +2 -2
  575. package/dist/stencil-library/{action-column-util-BArOL_Uz.js.map → action-column-util-DUK_9dnF.js.map} +1 -1
  576. package/dist/stencil-library/add-map-feature-popup_4.entry.js +1 -1
  577. package/dist/stencil-library/advanced-search-builder.entry.js +1 -1
  578. package/dist/stencil-library/advanced-search.advanced-search-grouped.ag-table.edit-view-form-dialog.grid-primary-bar.kpi-list.save-view-form-dialog.side-sheet.udp-hotlist-form.udp-notification.udp-pop-over-grid-action-header.upd-alert-banner.entry.esm.js.map +1 -0
  579. package/dist/stencil-library/advanced-search_12.entry.js +2 -0
  580. package/dist/stencil-library/advanced-search_12.entry.js.map +1 -0
  581. package/dist/stencil-library/ag-grid-base.ghost-render.grid-header.hint-panel.udp-dialog.udp-list-item.entry.esm.js.map +1 -0
  582. package/dist/stencil-library/ag-grid-base_6.entry.js +2 -0
  583. package/dist/stencil-library/ag-grid-base_6.entry.js.map +1 -0
  584. package/dist/stencil-library/ambient-template-grid.entry.esm.js.map +1 -0
  585. package/dist/stencil-library/ambient-template-grid.entry.js +2 -0
  586. package/dist/stencil-library/ambient-template-grid.entry.js.map +1 -0
  587. package/dist/stencil-library/api-method-instance-grid.entry.js +1 -1
  588. package/dist/stencil-library/{apiUtils-CudiwABF.js → apiUtils-cUHs50y0.js} +2 -2
  589. package/dist/{esm/apiUtils-CudiwABF.js.map → stencil-library/apiUtils-cUHs50y0.js.map} +1 -1
  590. package/dist/stencil-library/app-bar.entry.esm.js.map +1 -0
  591. package/dist/stencil-library/app-bar.entry.js +2 -0
  592. package/dist/stencil-library/app-bar.entry.js.map +1 -0
  593. package/dist/stencil-library/catalog-store-BhgNAUY6.js +2 -0
  594. package/dist/stencil-library/catalog-store-BhgNAUY6.js.map +1 -0
  595. package/dist/stencil-library/chart-container_3.entry.js +1 -1
  596. package/dist/stencil-library/chart-container_3.entry.js.map +1 -1
  597. package/dist/stencil-library/{chartUtils-DqjnIahA.js → chartUtils-DFIyEsL1.js} +2 -2
  598. package/dist/stencil-library/{chartUtils-DqjnIahA.js.map → chartUtils-DFIyEsL1.js.map} +1 -1
  599. package/dist/stencil-library/check-box.entry.js +1 -1
  600. package/dist/stencil-library/chip-section.entry.js +1 -1
  601. package/dist/stencil-library/client-side-grid.resource-timeline-primary-bar.entry.esm.js.map +1 -1
  602. package/dist/stencil-library/client-side-grid_2.entry.js +1 -1
  603. package/dist/stencil-library/client-side-grid_2.entry.js.map +1 -1
  604. package/dist/stencil-library/color-preview.entry.js +1 -1
  605. package/dist/stencil-library/conversionFunctions-CNWYTvRs.js +2 -0
  606. package/dist/stencil-library/conversionFunctions-CNWYTvRs.js.map +1 -0
  607. package/dist/stencil-library/{currency-renderer-BQ-hUac8.js → currency-renderer-CRK1v2o-.js} +2 -2
  608. package/dist/stencil-library/currency-renderer-CRK1v2o-.js.map +1 -0
  609. package/dist/stencil-library/custom-button.entry.esm.js.map +1 -0
  610. package/dist/stencil-library/custom-button.entry.js +2 -0
  611. package/dist/stencil-library/custom-button.entry.js.map +1 -0
  612. package/dist/stencil-library/date-time-renderer.file-upload-renderer.list-options-renderer.question-specific-configs-renderer.signature-renderer.text-input-renderer.entry.esm.js.map +1 -1
  613. package/dist/stencil-library/date-time-renderer_6.entry.js +1 -1
  614. package/dist/stencil-library/date-time-renderer_6.entry.js.map +1 -1
  615. package/dist/stencil-library/entity-maintenance-grid.entry.js +1 -1
  616. package/dist/stencil-library/{enums-CE8s6a9b.js → enums-BOc5zJ68.js} +2 -2
  617. package/dist/stencil-library/{enums-CE8s6a9b.js.map → enums-BOc5zJ68.js.map} +1 -1
  618. package/dist/stencil-library/feature-details-card.feature-details-popup.entry.esm.js.map +1 -1
  619. package/dist/stencil-library/feature-details-card_2.entry.js +1 -1
  620. package/dist/stencil-library/feature-details-card_2.entry.js.map +1 -1
  621. package/dist/stencil-library/file-upload_2.entry.js +1 -1
  622. package/dist/stencil-library/filter-conditions.search-list-item.tree-list-item.udp-column-header.udp-grid-loader.udp-page-header.udp-radio-button.entry.esm.js.map +1 -0
  623. package/dist/stencil-library/filter-conditions_7.entry.js +2 -0
  624. package/dist/stencil-library/filter-conditions_7.entry.js.map +1 -0
  625. package/dist/stencil-library/filter-group.validation-chip.entry.esm.js.map +1 -1
  626. package/dist/stencil-library/filter-group_2.entry.js +1 -1
  627. package/dist/stencil-library/filter-group_2.entry.js.map +1 -1
  628. package/dist/stencil-library/fluent-dialog.entry.esm.js.map +1 -0
  629. package/dist/stencil-library/fluent-dialog.entry.js +2 -0
  630. package/dist/stencil-library/fluent-dialog.entry.js.map +1 -0
  631. package/dist/stencil-library/{iconUtils-KSv32PVD.js → iconMapping-C_IYrnjG.js} +2 -2
  632. package/dist/stencil-library/iconMapping-C_IYrnjG.js.map +1 -0
  633. package/dist/stencil-library/iconUtils-BsS5FaLc.js +2 -0
  634. package/dist/stencil-library/iconUtils-BsS5FaLc.js.map +1 -0
  635. package/dist/stencil-library/image-upload.signature-input.stencil-form.tally-display.udp-question.udp-question-comment.udp-save-draft-button.entry.esm.js.map +1 -1
  636. package/dist/stencil-library/image-upload_7.entry.js +1 -1
  637. package/dist/stencil-library/image-upload_7.entry.js.map +1 -1
  638. package/dist/stencil-library/index.esm.js +1 -1
  639. package/dist/stencil-library/index.esm.js.map +1 -1
  640. package/dist/stencil-library/inputs-example.entry.js +1 -1
  641. package/dist/stencil-library/logical-search-indicator.entry.js +1 -1
  642. package/dist/stencil-library/map-component_2.entry.js +1 -1
  643. package/dist/stencil-library/numeric-field_5.entry.js +1 -1
  644. package/dist/stencil-library/primary-action-header.udp-side-sheet.udp-tabs.entry.esm.js.map +1 -0
  645. package/dist/stencil-library/primary-action-header_3.entry.js +2 -0
  646. package/dist/stencil-library/primary-action-header_3.entry.js.map +1 -0
  647. package/dist/stencil-library/question-configs-renderer.section-configs-renderer.udp-forms-builder-menu.udp-forms-builder-question-item.udp-forms-builder-style-override.entry.esm.js.map +1 -1
  648. package/dist/stencil-library/question-configs-renderer_5.entry.js +1 -1
  649. package/dist/stencil-library/question-configs-renderer_5.entry.js.map +1 -1
  650. package/dist/stencil-library/resource-timeline-calendar.entry.js +1 -1
  651. package/dist/stencil-library/search-method-grid.entry.js +1 -1
  652. package/dist/stencil-library/server-side-grid.entry.js +1 -1
  653. package/dist/stencil-library/side-sheet-container.entry.esm.js.map +1 -0
  654. package/dist/stencil-library/side-sheet-container.entry.js +2 -0
  655. package/dist/stencil-library/side-sheet-container.entry.js.map +1 -0
  656. package/dist/stencil-library/simple-card.entry.js +1 -1
  657. package/dist/stencil-library/status-chip.udp-function-button.entry.esm.js.map +1 -0
  658. package/dist/stencil-library/status-chip_2.entry.js +2 -0
  659. package/dist/stencil-library/status-chip_2.entry.js.map +1 -0
  660. package/dist/stencil-library/stencil-chip.entry.esm.js.map +1 -0
  661. package/dist/stencil-library/stencil-chip.entry.js +2 -0
  662. package/dist/stencil-library/stencil-chip.entry.js.map +1 -0
  663. package/dist/stencil-library/stencil-icon-button-grid-action-header.entry.esm.js.map +1 -0
  664. package/dist/stencil-library/stencil-icon-button-grid-action-header.entry.js +2 -0
  665. package/dist/stencil-library/stencil-icon-button-grid-action-header.entry.js.map +1 -0
  666. package/dist/stencil-library/stencil-icon-button.udp-ambient-tool-tip.udp-badge.entry.esm.js.map +1 -0
  667. package/dist/stencil-library/stencil-icon-button_3.entry.js +2 -0
  668. package/dist/stencil-library/stencil-icon-button_3.entry.js.map +1 -0
  669. package/dist/stencil-library/stencil-library.esm.js +1 -1
  670. package/dist/stencil-library/stencil-toggle.entry.esm.js.map +1 -0
  671. package/dist/stencil-library/stencil-toggle.entry.js +2 -0
  672. package/dist/stencil-library/stencil-toggle.entry.js.map +1 -0
  673. package/dist/stencil-library/text-field.udp-selector.entry.esm.js.map +1 -0
  674. package/dist/stencil-library/text-field_2.entry.js +2 -0
  675. package/dist/stencil-library/text-field_2.entry.js.map +1 -0
  676. package/dist/stencil-library/transformSearchData-DBjFnXu6.js +2 -0
  677. package/dist/stencil-library/transformSearchData-DBjFnXu6.js.map +1 -0
  678. package/dist/stencil-library/udp-adornment.entry.js +1 -1
  679. package/dist/stencil-library/udp-advanced-search-builder.entry.js +1 -1
  680. package/dist/stencil-library/udp-avatar.entry.esm.js.map +1 -0
  681. package/dist/stencil-library/udp-avatar.entry.js +2 -0
  682. package/dist/stencil-library/udp-avatar.entry.js.map +1 -0
  683. package/dist/stencil-library/udp-bar-chart_4.entry.js +1 -1
  684. package/dist/stencil-library/udp-button.entry.esm.js.map +1 -0
  685. package/dist/stencil-library/udp-button.entry.js +2 -0
  686. package/dist/stencil-library/udp-button.entry.js.map +1 -0
  687. package/dist/stencil-library/udp-calendar-base.entry.js +1 -1
  688. package/dist/stencil-library/udp-calendar-day.entry.js +1 -1
  689. package/dist/stencil-library/udp-calendar-month.entry.js +1 -1
  690. package/dist/stencil-library/udp-calendar-week.entry.js +1 -1
  691. package/dist/stencil-library/udp-calendar-year.entry.js +1 -1
  692. package/dist/stencil-library/udp-card-action-area.entry.js +1 -1
  693. package/dist/stencil-library/udp-card_6.entry.js +1 -1
  694. package/dist/stencil-library/udp-charts-example.entry.js +1 -1
  695. package/dist/stencil-library/udp-chip_3.entry.js +1 -1
  696. package/dist/stencil-library/udp-container-query-grid-item.entry.js +1 -1
  697. package/dist/stencil-library/udp-container-query-grid.entry.js +1 -1
  698. package/dist/stencil-library/udp-container-query.entry.js +1 -1
  699. package/dist/stencil-library/udp-container.udp-linear-loader.entry.esm.js.map +1 -0
  700. package/dist/stencil-library/udp-container_2.entry.js +2 -0
  701. package/dist/stencil-library/udp-container_2.entry.js.map +1 -0
  702. package/dist/stencil-library/udp-date-range-selector.entry.js +1 -1
  703. package/dist/stencil-library/udp-divider.entry.esm.js.map +1 -0
  704. package/dist/stencil-library/udp-divider.entry.js +2 -0
  705. package/dist/stencil-library/udp-divider.entry.js.map +1 -0
  706. package/dist/stencil-library/{udp-drive-utils-BiYKUATs.js → udp-drive-utils-CIrjVGiJ.js} +2 -2
  707. package/dist/{esm/udp-drive-utils-BiYKUATs.js.map → stencil-library/udp-drive-utils-CIrjVGiJ.js.map} +1 -1
  708. package/dist/stencil-library/udp-dynamic-container-with-menu.entry.esm.js.map +1 -0
  709. package/dist/stencil-library/udp-dynamic-container-with-menu.entry.js +2 -0
  710. package/dist/stencil-library/udp-dynamic-container-with-menu.entry.js.map +1 -0
  711. package/dist/stencil-library/udp-dynamic-form.entry.js +1 -1
  712. package/dist/stencil-library/udp-empty-state-display.entry.js +1 -1
  713. package/dist/stencil-library/{udp-forms-builder-question-template-y1XU3Z2l.js → udp-forms-builder-question-template-BwyE73q_.js} +2 -2
  714. package/dist/stencil-library/{udp-forms-builder-question-template-y1XU3Z2l.js.map → udp-forms-builder-question-template-BwyE73q_.js.map} +1 -1
  715. package/dist/stencil-library/udp-forms-builder.entry.esm.js.map +1 -1
  716. package/dist/stencil-library/udp-forms-builder.entry.js +1 -1
  717. package/dist/stencil-library/udp-forms-builder.entry.js.map +1 -1
  718. package/dist/stencil-library/udp-forms-follow-up-list-card.entry.js +1 -1
  719. package/dist/stencil-library/udp-forms-list-card.entry.js +1 -1
  720. package/dist/stencil-library/udp-forms-list.entry.js +1 -1
  721. package/dist/stencil-library/udp-forms-renderer.entry.js +1 -1
  722. package/dist/stencil-library/udp-forms-ui.entry.esm.js.map +1 -1
  723. package/dist/stencil-library/udp-forms-ui.entry.js +1 -1
  724. package/dist/stencil-library/udp-forms-ui.entry.js.map +1 -1
  725. package/dist/stencil-library/udp-icon.entry.esm.js.map +1 -0
  726. package/dist/stencil-library/udp-icon.entry.js +2 -0
  727. package/dist/stencil-library/udp-icon.entry.js.map +1 -0
  728. package/dist/stencil-library/udp-list-renderer.udp-pagination.entry.esm.js.map +1 -0
  729. package/dist/stencil-library/udp-list-renderer_2.entry.js +2 -0
  730. package/dist/stencil-library/udp-list-renderer_2.entry.js.map +1 -0
  731. package/dist/stencil-library/{udp-map-utils-BokzHQF1.js → udp-map-utils-DNAUNI5U.js} +2 -2
  732. package/dist/stencil-library/{udp-map-utils-BokzHQF1.js.map → udp-map-utils-DNAUNI5U.js.map} +1 -1
  733. package/dist/stencil-library/udp-map.entry.js +1 -1
  734. package/dist/stencil-library/udp-menu-item.entry.esm.js.map +1 -0
  735. package/dist/stencil-library/udp-menu-item.entry.js +2 -0
  736. package/dist/stencil-library/udp-menu-item.entry.js.map +1 -0
  737. package/dist/stencil-library/udp-page.entry.js +1 -1
  738. package/dist/stencil-library/udp-pop-over.entry.esm.js.map +1 -0
  739. package/dist/stencil-library/udp-pop-over.entry.js +2 -0
  740. package/dist/stencil-library/udp-pop-over.entry.js.map +1 -0
  741. package/dist/stencil-library/udp-sankey-chart.entry.js +1 -1
  742. package/dist/stencil-library/udp-skeleton-loading.entry.esm.js.map +1 -0
  743. package/dist/stencil-library/udp-skeleton-loading.entry.js +2 -0
  744. package/dist/stencil-library/udp-skeleton-loading.entry.js.map +1 -0
  745. package/dist/stencil-library/udp-split-screen.entry.js +1 -1
  746. package/dist/stencil-library/udp-stepper-demo.entry.js +1 -1
  747. package/dist/stencil-library/udp-tab-panel.entry.js +1 -1
  748. package/dist/stencil-library/udp-tab.entry.esm.js.map +1 -0
  749. package/dist/stencil-library/udp-tab.entry.js +2 -0
  750. package/dist/stencil-library/udp-tab.entry.js.map +1 -0
  751. package/dist/stencil-library/udp-vertical-spacer.entry.js +1 -1
  752. package/dist/stencil-library/udp-xy-chart.entry.js +1 -1
  753. package/dist/stencil-library/udp-xy-multi-series-chart.entry.js +1 -1
  754. package/dist/stencil-library/unity-typography.entry.esm.js.map +1 -0
  755. package/dist/stencil-library/unity-typography.entry.js +2 -0
  756. package/dist/stencil-library/unity-typography.entry.js.map +1 -0
  757. package/dist/types/components/my-component/UI/advanced-search/advanced-search-grouped.d.ts +4 -0
  758. package/dist/types/components/my-component/UI/advanced-search/advanced-search.d.ts +4 -0
  759. package/dist/types/components/my-component/UI/grid/ambient-template-grid/ambient-template-grid.d.ts +4 -0
  760. package/dist/types/components/my-component/UI/grid/renderers/currency-renderer.d.ts +0 -4
  761. package/dist/types/components/my-component/UI/grid/renderers/hot-list-add-renderer.d.ts +3 -0
  762. package/dist/types/components.d.ts +48 -192
  763. package/dist/types/global/ag-grid.d.ts +3 -0
  764. package/dist/types/index.d.ts +0 -3
  765. package/dist/types/store/user-store.d.ts +3 -0
  766. package/dist/types/udp-utilities/api-udp/apiMutate.d.ts +4 -0
  767. package/package.json +1 -1
  768. package/dist/cjs/ag-grid-base.ghost-render.grid-header.udp-dialog.udp-list-item.entry.cjs.js.map +0 -1
  769. package/dist/cjs/api-services-NWeAzI4X.js +0 -56
  770. package/dist/cjs/api-services-NWeAzI4X.js.map +0 -1
  771. package/dist/cjs/catalog-store-yJKDPXXM.js.map +0 -1
  772. package/dist/cjs/currency-renderer-D8Tuzf0W.js.map +0 -1
  773. package/dist/cjs/get-user-DFb8yrQ2.js +0 -88
  774. package/dist/cjs/get-user-DFb8yrQ2.js.map +0 -1
  775. package/dist/cjs/get-user.cjs.entry.js +0 -12
  776. package/dist/cjs/get-user.entry.cjs.js.map +0 -1
  777. package/dist/cjs/iconUtils-Bfr2fT9-.js.map +0 -1
  778. package/dist/cjs/page-renderer.cjs.entry.js +0 -40
  779. package/dist/cjs/page-renderer.entry.cjs.js.map +0 -1
  780. package/dist/cjs/test-api-updated.cjs.entry.js +0 -82
  781. package/dist/cjs/test-api-updated.entry.cjs.js.map +0 -1
  782. package/dist/cjs/test-api.cjs.entry.js +0 -72
  783. package/dist/cjs/test-api.entry.cjs.js.map +0 -1
  784. package/dist/cjs/toggle-button.cjs.entry.js +0 -19
  785. package/dist/cjs/toggle-button.entry.cjs.js.map +0 -1
  786. package/dist/cjs/udp-container.cjs.entry.js +0 -35
  787. package/dist/cjs/udp-container.entry.cjs.js.map +0 -1
  788. package/dist/cjs/udp-fetch-C9800dwI.js +0 -267
  789. package/dist/cjs/udp-fetch-C9800dwI.js.map +0 -1
  790. package/dist/cjs/udp-fetch.cjs.entry.js +0 -10
  791. package/dist/cjs/udp-fetch.entry.cjs.js.map +0 -1
  792. package/dist/cjs/udp-list-renderer.udp-pagination.udp-side-sheet.entry.cjs.js.map +0 -1
  793. package/dist/cjs/udp-list-renderer_3.cjs.entry.js +0 -467
  794. package/dist/collection/components/my-component/AG-Grid.js +0 -352
  795. package/dist/collection/components/my-component/AG-Grid.js.map +0 -1
  796. package/dist/collection/components/my-component/demo/ambient-demo-container.css +0 -17
  797. package/dist/collection/components/my-component/demo/ambient-demo-container.js +0 -42
  798. package/dist/collection/components/my-component/demo/ambient-demo-container.js.map +0 -1
  799. package/dist/collection/components/my-component/my-component.css +0 -27
  800. package/dist/collection/components/my-component/my-component.js +0 -1575
  801. package/dist/collection/components/my-component/my-component.js.map +0 -1
  802. package/dist/collection/components/my-component/test-api/test-api.js +0 -46
  803. package/dist/collection/components/my-component/test-api/test-api.js.map +0 -1
  804. package/dist/collection/page-renderer/page-renderer.css +0 -0
  805. package/dist/collection/page-renderer/page-renderer.js +0 -159
  806. package/dist/collection/page-renderer/page-renderer.js.map +0 -1
  807. package/dist/collection/toggle-button.css +0 -29
  808. package/dist/collection/toggle-button.js +0 -64
  809. package/dist/collection/toggle-button.js.map +0 -1
  810. package/dist/collection/udp-utilities/api/api-services.js +0 -45
  811. package/dist/collection/udp-utilities/api/api-services.js.map +0 -1
  812. package/dist/collection/udp-utilities/api/useAxiosGet/useAxiosGet.js +0 -38
  813. package/dist/collection/udp-utilities/api/useAxiosGet/useAxiosGet.js.map +0 -1
  814. package/dist/collection/udp-utilities/api/useAxiosMutate/testApi.js +0 -50
  815. package/dist/collection/udp-utilities/api/useAxiosMutate/testApi.js.map +0 -1
  816. package/dist/collection/udp-utilities/api/useAxiosMutate/useApiServiceGetQuery.js +0 -37
  817. package/dist/collection/udp-utilities/api/useAxiosMutate/useApiServiceGetQuery.js.map +0 -1
  818. package/dist/collection/udp-utilities/api/useAxiosMutate/useApiServiceMutate.js +0 -36
  819. package/dist/collection/udp-utilities/api/useAxiosMutate/useApiServiceMutate.js.map +0 -1
  820. package/dist/collection/udp-utilities/api/useAxiosMutate/useAxiosMutate.js +0 -29
  821. package/dist/collection/udp-utilities/api/useAxiosMutate/useAxiosMutate.js.map +0 -1
  822. package/dist/collection/udp-utilities/api-udp/get-user.js +0 -125
  823. package/dist/collection/udp-utilities/api-udp/get-user.js.map +0 -1
  824. package/dist/collection/udp-utilities/api-udp/udp-fetch.js +0 -284
  825. package/dist/collection/udp-utilities/api-udp/udp-fetch.js.map +0 -1
  826. package/dist/collection/udp-utilities/auth/auth-actions.js +0 -39
  827. package/dist/collection/udp-utilities/auth/auth-actions.js.map +0 -1
  828. package/dist/collection/udp-utilities/auth/auth-config.js +0 -26
  829. package/dist/collection/udp-utilities/auth/auth-config.js.map +0 -1
  830. package/dist/collection/udp-utilities/auth/auth.js +0 -1
  831. package/dist/collection/udp-utilities/auth/auth.js.map +0 -1
  832. package/dist/collection/udp-utilities/auth/sign-in-auth-provider.js +0 -63
  833. package/dist/collection/udp-utilities/auth/sign-in-auth-provider.js.map +0 -1
  834. package/dist/collection/udp-utilities/baseSearchPayload.js +0 -13
  835. package/dist/collection/udp-utilities/baseSearchPayload.js.map +0 -1
  836. package/dist/collection/udp-utilities/testAuth/manualAccessToken.js +0 -4
  837. package/dist/collection/udp-utilities/testAuth/manualAccessToken.js.map +0 -1
  838. package/dist/collection/utils/utils.js +0 -15
  839. package/dist/collection/utils/utils.js.map +0 -1
  840. package/dist/components/ambient-demo-container.d.ts +0 -11
  841. package/dist/components/ambient-demo-container.js +0 -9
  842. package/dist/components/ambient-demo-container.js.map +0 -1
  843. package/dist/components/ambient-demo-container2.js +0 -43
  844. package/dist/components/ambient-demo-container2.js.map +0 -1
  845. package/dist/components/ambient-template-grid2.js.map +0 -1
  846. package/dist/components/api-services.js +0 -50
  847. package/dist/components/api-services.js.map +0 -1
  848. package/dist/components/app-bar2.js +0 -74
  849. package/dist/components/app-bar2.js.map +0 -1
  850. package/dist/components/get-user.d.ts +0 -11
  851. package/dist/components/get-user.js +0 -9
  852. package/dist/components/get-user.js.map +0 -1
  853. package/dist/components/get-user2.js +0 -103
  854. package/dist/components/get-user2.js.map +0 -1
  855. package/dist/components/my-component.d.ts +0 -11
  856. package/dist/components/my-component.js +0 -1796
  857. package/dist/components/my-component.js.map +0 -1
  858. package/dist/components/page-renderer.d.ts +0 -11
  859. package/dist/components/page-renderer.js +0 -325
  860. package/dist/components/page-renderer.js.map +0 -1
  861. package/dist/components/test-api-updated.d.ts +0 -11
  862. package/dist/components/test-api-updated.js +0 -105
  863. package/dist/components/test-api-updated.js.map +0 -1
  864. package/dist/components/test-api.d.ts +0 -11
  865. package/dist/components/test-api.js +0 -92
  866. package/dist/components/test-api.js.map +0 -1
  867. package/dist/components/toggle-button.d.ts +0 -11
  868. package/dist/components/toggle-button.js +0 -42
  869. package/dist/components/toggle-button.js.map +0 -1
  870. package/dist/components/udp-fetch.d.ts +0 -11
  871. package/dist/components/udp-fetch.js +0 -9
  872. package/dist/components/udp-fetch.js.map +0 -1
  873. package/dist/components/udp-fetch2.js +0 -284
  874. package/dist/components/udp-fetch2.js.map +0 -1
  875. package/dist/components/udp-tab2.js +0 -61
  876. package/dist/components/udp-tab2.js.map +0 -1
  877. package/dist/components/udp-user-creator2.js +0 -91
  878. package/dist/components/udp-user-creator2.js.map +0 -1
  879. package/dist/esm/advanced-search_50.entry.js +0 -8795
  880. package/dist/esm/ag-grid-base.ghost-render.grid-header.udp-dialog.udp-list-item.entry.js.map +0 -1
  881. package/dist/esm/api-services-C0O6l6cU.js +0 -50
  882. package/dist/esm/api-services-C0O6l6cU.js.map +0 -1
  883. package/dist/esm/catalog-store-CeVER_Bk.js.map +0 -1
  884. package/dist/esm/currency-renderer-BQ-hUac8.js.map +0 -1
  885. package/dist/esm/get-user-BtNVBI86.js +0 -82
  886. package/dist/esm/get-user-BtNVBI86.js.map +0 -1
  887. package/dist/esm/get-user.entry.js +0 -6
  888. package/dist/esm/get-user.entry.js.map +0 -1
  889. package/dist/esm/iconUtils-KSv32PVD.js.map +0 -1
  890. package/dist/esm/page-renderer.entry.js +0 -38
  891. package/dist/esm/page-renderer.entry.js.map +0 -1
  892. package/dist/esm/test-api-updated.entry.js +0 -80
  893. package/dist/esm/test-api-updated.entry.js.map +0 -1
  894. package/dist/esm/test-api.entry.js +0 -66
  895. package/dist/esm/test-api.entry.js.map +0 -1
  896. package/dist/esm/toggle-button.entry.js +0 -17
  897. package/dist/esm/toggle-button.entry.js.map +0 -1
  898. package/dist/esm/udp-container.entry.js +0 -33
  899. package/dist/esm/udp-container.entry.js.map +0 -1
  900. package/dist/esm/udp-fetch-BGMJ3xhH.js +0 -259
  901. package/dist/esm/udp-fetch-BGMJ3xhH.js.map +0 -1
  902. package/dist/esm/udp-fetch.entry.js +0 -4
  903. package/dist/esm/udp-fetch.entry.js.map +0 -1
  904. package/dist/esm/udp-list-renderer.udp-pagination.udp-side-sheet.entry.js.map +0 -1
  905. package/dist/esm/udp-list-renderer_3.entry.js +0 -459
  906. package/dist/stencil-library/advanced-search_50.entry.js +0 -2
  907. package/dist/stencil-library/advanced-search_50.entry.js.map +0 -1
  908. package/dist/stencil-library/ag-grid-base.ghost-render.grid-header.udp-dialog.udp-list-item.entry.esm.js.map +0 -1
  909. package/dist/stencil-library/ag-grid-base_5.entry.js +0 -2
  910. package/dist/stencil-library/ag-grid-base_5.entry.js.map +0 -1
  911. package/dist/stencil-library/api-services-C0O6l6cU.js +0 -2
  912. package/dist/stencil-library/api-services-C0O6l6cU.js.map +0 -1
  913. package/dist/stencil-library/catalog-store-CeVER_Bk.js +0 -2
  914. package/dist/stencil-library/catalog-store-CeVER_Bk.js.map +0 -1
  915. package/dist/stencil-library/currency-renderer-BQ-hUac8.js.map +0 -1
  916. package/dist/stencil-library/get-user-BtNVBI86.js +0 -2
  917. package/dist/stencil-library/get-user-BtNVBI86.js.map +0 -1
  918. package/dist/stencil-library/get-user.entry.esm.js.map +0 -1
  919. package/dist/stencil-library/get-user.entry.js +0 -2
  920. package/dist/stencil-library/get-user.entry.js.map +0 -1
  921. package/dist/stencil-library/iconUtils-KSv32PVD.js.map +0 -1
  922. package/dist/stencil-library/page-renderer.entry.esm.js.map +0 -1
  923. package/dist/stencil-library/page-renderer.entry.js +0 -2
  924. package/dist/stencil-library/page-renderer.entry.js.map +0 -1
  925. package/dist/stencil-library/test-api-updated.entry.esm.js.map +0 -1
  926. package/dist/stencil-library/test-api-updated.entry.js +0 -2
  927. package/dist/stencil-library/test-api-updated.entry.js.map +0 -1
  928. package/dist/stencil-library/test-api.entry.esm.js.map +0 -1
  929. package/dist/stencil-library/test-api.entry.js +0 -2
  930. package/dist/stencil-library/test-api.entry.js.map +0 -1
  931. package/dist/stencil-library/toggle-button.entry.esm.js.map +0 -1
  932. package/dist/stencil-library/toggle-button.entry.js +0 -2
  933. package/dist/stencil-library/toggle-button.entry.js.map +0 -1
  934. package/dist/stencil-library/udp-container.entry.esm.js.map +0 -1
  935. package/dist/stencil-library/udp-container.entry.js +0 -2
  936. package/dist/stencil-library/udp-container.entry.js.map +0 -1
  937. package/dist/stencil-library/udp-fetch-BGMJ3xhH.js +0 -2
  938. package/dist/stencil-library/udp-fetch-BGMJ3xhH.js.map +0 -1
  939. package/dist/stencil-library/udp-fetch.entry.esm.js.map +0 -1
  940. package/dist/stencil-library/udp-fetch.entry.js +0 -2
  941. package/dist/stencil-library/udp-fetch.entry.js.map +0 -1
  942. package/dist/stencil-library/udp-list-renderer.udp-pagination.udp-side-sheet.entry.esm.js.map +0 -1
  943. package/dist/stencil-library/udp-list-renderer_3.entry.js +0 -2
  944. package/dist/stencil-library/udp-list-renderer_3.entry.js.map +0 -1
  945. package/dist/types/components/my-component/AG-Grid.d.ts +0 -0
  946. package/dist/types/components/my-component/demo/ambient-demo-container.d.ts +0 -4
  947. package/dist/types/components/my-component/my-component.d.ts +0 -699
  948. package/dist/types/components/my-component/test-api/test-api.d.ts +0 -7
  949. package/dist/types/page-renderer/page-renderer.d.ts +0 -10
  950. package/dist/types/toggle-button.d.ts +0 -5
  951. package/dist/types/udp-utilities/api/api-services.d.ts +0 -14
  952. package/dist/types/udp-utilities/api/useAxiosGet/useAxiosGet.d.ts +0 -19
  953. package/dist/types/udp-utilities/api/useAxiosMutate/testApi.d.ts +0 -7
  954. package/dist/types/udp-utilities/api/useAxiosMutate/useApiServiceGetQuery.d.ts +0 -19
  955. package/dist/types/udp-utilities/api/useAxiosMutate/useApiServiceMutate.d.ts +0 -5
  956. package/dist/types/udp-utilities/api/useAxiosMutate/useAxiosMutate.d.ts +0 -12
  957. package/dist/types/udp-utilities/api-udp/get-user.d.ts +0 -18
  958. package/dist/types/udp-utilities/api-udp/udp-fetch.d.ts +0 -10
  959. package/dist/types/udp-utilities/auth/auth-actions.d.ts +0 -0
  960. package/dist/types/udp-utilities/auth/auth-config.d.ts +0 -14
  961. package/dist/types/udp-utilities/auth/auth.d.ts +0 -0
  962. package/dist/types/udp-utilities/auth/sign-in-auth-provider.d.ts +0 -0
  963. package/dist/types/udp-utilities/baseSearchPayload.d.ts +0 -2
  964. package/dist/types/udp-utilities/testAuth/manualAccessToken.d.ts +0 -2
  965. package/dist/types/utils/utils.d.ts +0 -2
@@ -1 +1 @@
1
- {"version":3,"file":"image-upload.signature-input.stencil-form.tally-display.udp-question.udp-question-comment.udp-save-draft-button.entry.cjs.js","sources":["src/components/my-component/UI/inputs/image-upload/image-upload.css?tag=image-upload&encapsulation=shadow","src/components/my-component/UI/inputs/image-upload/image-upload.tsx","src/components/my-component/UI/inputs/signature-input/signature-input.css?tag=signature-input&encapsulation=shadow","src/components/my-component/UI/inputs/signature-input/signature-input.tsx","src/components/my-component/UI/forms/form/stencil-form.tsx","src/components/my-component/UI/inputs/tally/tally.css?tag=tally-display&encapsulation=shadow","src/components/my-component/UI/inputs/tally/tally.tsx","src/components/my-component/UI/forms/form/useFormApi.ts","src/components/my-component/UI/forms/udp-forms/udp-question/udp-question.css?tag=udp-question&encapsulation=shadow","src/components/my-component/UI/forms/udp-forms/udp-question/udp-question.tsx","src/components/my-component/UI/forms/udp-forms/udp-question/udp-question-comment/udp-question-comment.css?tag=udp-question-comment&encapsulation=shadow","src/components/my-component/UI/forms/udp-forms/udp-question/udp-question-comment/udp-question-comment.tsx","src/components/my-component/UI/forms/udp-forms/udp-forms-renderer/udp-save-draft-button/udp-save-draft-button.css?tag=udp-save-draft-button&encapsulation=shadow","src/components/my-component/UI/forms/udp-forms/udp-forms-renderer/udp-save-draft-button/udp-save-draft-button.tsx"],"sourcesContent":[":host {\n display: block;\n}\n","import { Component, h, Host, Prop, Event, EventEmitter } from '@stencil/core';\nimport { UdpDriveFile } from '../../../../../global/types';\n\n/**\n * A specialized image upload component that wraps the file-upload component\n * with image-specific functionality including image preview, rendering, and validation.\n *\n * This component automatically restricts file types to common image formats\n * and provides image preview functionality.\n *\n * @example\n * ```tsx\n * // Basic image upload\n * <image-upload\n * allowMultiple={true}\n * onChange={(e) => console.log('Images:', e.detail.files)}\n * />\n *\n * // With existing images and preview\n * <image-upload\n * initialValue={existingImages}\n * renderImages={true}\n * onChange={handleImageChange}\n * />\n * ```\n */\n@Component({\n tag: 'image-upload',\n styleUrl: 'image-upload.css',\n shadow: true,\n})\nexport class ImageUpload {\n\n\n /**\n * Array of allowed image MIME types. Defaults to common image formats.\n * Overrides the default image MIME types if specified.\n * Example: ['image/jpeg', 'image/png', 'image/gif']\n */\n @Prop() allowedMimeTypes: Array<string> = ['image/jpeg', 'image/png', 'image/gif', 'image/svg+xml', 'image/webp'];\n\n /**\n * Whether the component should take the full width of its container.\n */\n @Prop() fullWidth: boolean = false;\n\n /**\n * Whether image selection is required.\n */\n @Prop() required: boolean;\n\n /**\n * Error message to display.\n */\n @Prop() error: string;\n\n /**\n * Message for the drag-and-drop area.\n */\n @Prop() dragAndDropMessage: string = 'Drag and drop your images here';\n\n /**\n * Text for the browse files button.\n */\n @Prop() browseFileMessage: string = 'Browse Images';\n\n /**\n * Whether to hide the drag-and-drop area.\n */\n @Prop() hideDragAndDrop: boolean = false;\n\n /**\n * Whether to hide the browse files button.\n */\n @Prop() hideButton: boolean = false;\n\n /**\n * Unique identifier for the component.\n */\n @Prop() id: string;\n\n /**\n * Name attribute for the component.\n */\n @Prop() name: string;\n\n /**\n * Label for the component.\n */\n @Prop() label: string;\n\n /**\n * Whether the component is disabled.\n */\n @Prop() disabled: boolean = false;\n\n /**\n * Whether the component is in a read-only state.\n */\n @Prop() readonly: boolean = false;\n\n /**\n * Initial value for the component (UdpDriveFile, File, or string).\n */\n @Prop() initialValue: UdpDriveFile | UdpDriveFile[] | File | File[] | string;\n\n /**\n * Emitted when the selected images change.\n */\n @Event() change: EventEmitter<{ value: string; files: File[] }>;\n\n private handleFileChange = (event: CustomEvent) => {\n // Prevent the event from bubbling up further, as we are re-emitting it.\n event.stopPropagation();\n this.change.emit(event.detail);\n };\n\n render() {\n return (\n <Host>\n <file-upload\n allowMultiple={false}\n allowedMimeTypes={this.allowedMimeTypes}\n fullWidth={this.fullWidth}\n required={this.required}\n error={this.error}\n dragAndDropMessage={this.dragAndDropMessage}\n browseFileMessage={this.browseFileMessage}\n hideDragAndDrop={this.hideDragAndDrop}\n hideButton={this.hideButton}\n id={this.id}\n name={this.name}\n label={this.label}\n disabled={this.disabled}\n readonly={this.readonly}\n initialValue={this.initialValue}\n renderImage={true}\n onChange={this.handleFileChange}\n ></file-upload>\n </Host>\n );\n }\n}\n","@import '../inputs.css';\n\n/* Size variants for canvas sizing */\n:host(.udp-input--size-small) .signature-canvas {\n height: 150px;\n}\n\n:host(.udp-input--size-normal) .signature-canvas {\n height: 200px;\n}\n\n:host(.udp-input--size-large) .signature-canvas {\n height: 250px;\n}\n\n/* Size variants for clear button */\n:host(.udp-input--size-small) .clear-button {\n padding: var(--spacing-01) var(--spacing-02);\n font-size: var(--caption-font-size, 0.875rem);\n top: var(--spacing-02);\n right: var(--spacing-02);\n}\n\n:host(.udp-input--size-normal) .clear-button {\n padding: var(--spacing-02) var(--spacing-03);\n font-size: var(--body-font-size);\n top: var(--spacing-02);\n right: var(--spacing-02);\n}\n\n:host(.udp-input--size-large) .clear-button {\n padding: var(--spacing-03) var(--spacing-04);\n font-size: var(--body-font-size);\n top: var(--spacing-03);\n right: var(--spacing-03);\n}\n\n.signature-pad-container {\n position: relative;\n border: 1px solid var(--udp-mid-gray-color);\n border-radius: 4px;\n background-color: var(--udp-light-gray-color);\n}\n\n.signature-canvas {\n display: block;\n width: 100%;\n height: 200px; /* Default height, overridden by density variants */\n}\n\n.signature-pad-container.readonly {\n background-color: var(--udp-disabled-gray-color);\n}\n\n.signature-canvas.readonly {\n cursor: not-allowed;\n}\n\n.clear-button {\n position: absolute;\n top: var(--spacing-02); /* Default, overridden by density variants */\n right: var(--spacing-02); /* Default, overridden by density variants */\n background-color: var(--udp-light-gray-color);\n border: 1px solid var(--udp-mid-gray-color);\n color: var(--udp-primary-color);\n cursor: pointer;\n border-radius: 4px;\n padding: var(--spacing-02) var(--spacing-03); /* Default, overridden by density variants */\n}\n\n.clear-button:hover {\n background-color: var(--udp-mid-gray-color);\n}\n\n.clear-button:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n}\n","import { Component, Prop, h, State, Watch, Event, EventEmitter, Element, Host } from '@stencil/core';\nimport type SignaturePad from 'signature_pad';\nimport { UdpDriveFile } from '../../../../../global/types';\nimport { InputSize, InputMargin } from '../input-types';\nimport {\n isUdpDriveFile,\n isFileReference,\n parseFileReference,\n downloadFileFromUdpDriveFile,\n createFileFromString,\n isFile,\n} from '../file-upload/udp-drive-utils';\n\n@Component({\n tag: 'signature-input',\n styleUrl: 'signature-input.css',\n shadow: true,\n})\nexport class SignatureInput {\n @Element() el: HTMLElement;\n\n /**\n * Label for the input field.\n */\n @Prop() label: string;\n\n /**\n * Unique identifier for the input.\n */\n @Prop() id: string;\n\n /**\n * Whether the field is required.\n */\n @Prop() required: boolean;\n\n /**\n * Whether to save location and timestamp data in the submission.\n */\n @Prop() includeLocation: boolean = false;\n\n /**\n * Whether the field is disabled.\n */\n @Prop() disabled: boolean = false;\n\n /**\n * Whether the field is read-only.\n */\n @Prop() readonly: boolean = false;\n\n /**\n * Error message to display.\n */\n @Prop() error: string;\n\n /**\n * Size variant for the signature input.\n * - 'small': Compact signature area\n * - 'normal': Standard signature area (default)\n * - 'large': Generous signature area\n */\n @Prop() size: InputSize = 'normal';\n\n /**\n * Margin variant for the input spacing.\n * - 'none': No margin\n * - 'dense': Minimal margin spacing\n * - 'normal': Standard margin spacing (default)\n */\n @Prop() margin: InputMargin = 'normal';\n\n /**\n * The current value of the signature, can be a File or UdpDriveFile.\n */\n @Prop({ mutable: true }) value: File | UdpDriveFile;\n\n /**\n * The initial value, used if `value` is not provided.\n */\n @Prop() initialValue: File | UdpDriveFile | string;\n\n /**\n * Emitted when the signature changes.\n */\n @Event() change: EventEmitter<File | null>;\n @Event() metadataEmit: EventEmitter<{ key: string; value: any } | null>;\n\n @State() private internalError: string;\n @State() private signaturePad: SignaturePad;\n @State() private cachedLocation: GeolocationPosition | null = null;\n\n private canvasEl: HTMLCanvasElement;\n private SignaturePadLib: typeof SignaturePad;\n\n private lastCanvasRect: DOMRect;\n private resizeTimeout: any;\n\n\n @Watch('error')\n onErrorChange(newValue: string) {\n this.internalError = newValue;\n }\n\n @Watch('value')\n async onValueChange(newValue: File | UdpDriveFile) {\n await this.loadSignaturePad();\n if (this.signaturePad) {\n this.signaturePad.clear();\n if (newValue) {\n this.loadSignature(newValue);\n }\n }\n }\n\n @Watch('initialValue')\n async onInitialValueChange(newValue: any) {\n if (!newValue) {\n return;\n }\n\n try {\n const value = Array.isArray(newValue) ? newValue[0] : newValue;\n if (!value) return;\n\n let loadedFile: File | null = null;\n\n // Case 1: The value is a special reference string (e.g., \"name|udp:id\" or \"name|b64:data\")\n if (typeof value === 'string' && isFileReference(value)) {\n const parsedFile = await parseFileReference(value);\n\n if (parsedFile) {\n // If it was a UDP reference, the parsed file is a placeholder. We need to download the content.\n if ((parsedFile as any).driveFileId) {\n const udpInfo: Partial<UdpDriveFile> = {\n name: parsedFile.name,\n driveFileId: (parsedFile as any).driveFileId,\n extension: parsedFile.name.split('.').pop() || '',\n tenantId: null, // Dummy value, assuming not needed for download\n productId: 0, // Dummy value\n path: '', // Dummy value\n };\n loadedFile = await downloadFileFromUdpDriveFile(udpInfo);\n } else {\n // If it was a base64 reference, the file content is already loaded.\n loadedFile = parsedFile;\n }\n }\n }\n // Case 2: The value is a UdpDriveFile object\n else if (isUdpDriveFile(value)) {\n loadedFile = await downloadFileFromUdpDriveFile(value);\n }\n // Case 3: The value is a standard URL or data-uri string\n else if (typeof value === 'string') {\n loadedFile = await createFileFromString(value, 'initial_signature.png');\n }\n // Case 4: The value is already a File object\n else if (isFile(value)) {\n loadedFile = value;\n }\n\n // If a file was successfully prepared, update the component\n if (loadedFile) {\n this.value = loadedFile;\n this.resizeCanvasForDPR();\n this.initializeSignaturePad();\n } else {\n console.warn('Initial value could not be processed into a valid file:', value);\n }\n } catch (err) {\n console.error('Failed to process initial value for signature pad:', err);\n }\n }\n\n async componentWillLoad() {\n this.internalError = this.error;\n await this.loadSignaturePad();\n\n // Prewarm location if enabled\n if (this.includeLocation) {\n navigator.geolocation.getCurrentPosition(\n (coords) => {\n this.cachedLocation = coords;\n },\n (err) => {\n console.warn(\"Prewarm geolocation error:\", err);\n this.cachedLocation = null;\n },\n { enableHighAccuracy: true, timeout: 30000, maximumAge: 0 }\n );\n }\n }\n\n async componentDidLoad() {\n let file = this.initialValue;\n if (file) {\n if(Array.isArray(file)) {\n file = file[0]; // Handle case where initialValue is an array\n }\n if (isUdpDriveFile(this.initialValue)) {\n // Try to fetch the file from UdpDriveFile\n console.log('Loading signature from UdpDriveFile:', this.initialValue);\n try {\n const file = await downloadFileFromUdpDriveFile(this.initialValue as UdpDriveFile);\n this.value = file;\n this.readonly = false; // Try editable first\n } catch (err) {\n console.error('Failed to fetch UdpDriveFile for signature:', err);\n this.value = this.initialValue;\n this.readonly = true; // Fallback to readonly if not editable\n }\n } else {\n this.value = await this.urlToFile(this.initialValue as string, 'initial_signature.png');\n }\n }\n this.resizeCanvasForDPR();\n this.initializeSignaturePad();\n this.lastCanvasRect = this.canvasEl.getBoundingClientRect();\n window.addEventListener('resize', this.handleResize);\n }\n\n disconnectedCallback() {\n window.removeEventListener('resize', this.handleResize);\n if (this.resizeTimeout) clearTimeout(this.resizeTimeout);\n }\n\n private handleResize = () => {\n if (this.resizeTimeout) clearTimeout(this.resizeTimeout);\n this.resizeTimeout = setTimeout(() => {\n const rect = this.canvasEl.getBoundingClientRect();\n if (!this.lastCanvasRect || rect.width !== this.lastCanvasRect.width || rect.height !== this.lastCanvasRect.height) {\n // Save current signature as dataURL\n let dataURL = this.signaturePad && !this.signaturePad.isEmpty() ? this.signaturePad.toDataURL() : null;\n this.resizeCanvasForDPR();\n this.initializeSignaturePad();\n this.lastCanvasRect = rect;\n // Restore signature if it existed\n if (dataURL && this.signaturePad) {\n this.signaturePad.fromDataURL(dataURL);\n }\n }\n }, 200);\n }\n\n private resizeCanvasForDPR() {\n if (!this.canvasEl) return;\n const ratio = window.devicePixelRatio || 1;\n // Get the CSS size\n const rect = this.canvasEl.getBoundingClientRect();\n this.canvasEl.width = rect.width * ratio;\n this.canvasEl.height = rect.height * ratio;\n this.canvasEl.getContext('2d').scale(ratio, ratio);\n }\n\n private async loadSignaturePad() {\n if (!this.SignaturePadLib) {\n try {\n const module = await import('signature_pad');\n this.SignaturePadLib = module.default;\n } catch (e) {\n console.error('Failed to load signature_pad library', e);\n }\n }\n }\n\n private initializeSignaturePad() {\n this.resizeCanvasForDPR();\n if (this.SignaturePadLib && this.canvasEl) {\n this.signaturePad = new this.SignaturePadLib(this.canvasEl);\n this.signaturePad.addEventListener(\"endStroke\", this.handleSignatureEnd);\n this.handleStateChange();\n if (this.value) {\n this.loadSignature(this.value);\n }\n }\n }\n\n @Watch('disabled')\n @Watch('readonly')\n handleStateChange() {\n if (this.signaturePad) {\n if (this.disabled || this.readonly) {\n this.signaturePad.off();\n } else {\n this.signaturePad.on();\n }\n }\n }\n\n\n private handleSignatureEnd = async () => {\n if (this.signaturePad.isEmpty()) {\n this.value = null;\n this.change.emit(null);\n this.metadataEmit.emit({ key: 'signature.latitude', value: null });\n this.metadataEmit.emit({ key: 'signature.longitude', value: null });\n this.metadataEmit.emit({ key: 'signature.timestamp', value: null });\n } else {\n const dataURL = this.signaturePad.toDataURL();\n const signatureFile = await this.urlToFile(dataURL, 'signature.png');\n this.value = signatureFile;\n this.change.emit(signatureFile);\n\n // Timestamp always emitted\n this.metadataEmit.emit({\n key: 'signature.timestamp',\n value: new Date().toISOString(),\n });\n\n // Location handling\n if (this.includeLocation) {\n try {\n let coords = this.cachedLocation;\n\n if (!coords) {\n // Fallback if prewarm failed\n coords = await new Promise<GeolocationPosition>((resolve, reject) => {\n navigator.geolocation.getCurrentPosition(resolve, reject, {\n enableHighAccuracy: true,\n timeout: 30000,\n maximumAge: 0,\n });\n });\n }\n\n if (coords) {\n this.metadataEmit.emit({ key: 'signature.latitude', value: coords.coords.latitude });\n this.metadataEmit.emit({ key: 'signature.longitude', value: coords.coords.longitude });\n } else {\n this.metadataEmit.emit({ key: 'signature.latitude', value: null });\n this.metadataEmit.emit({ key: 'signature.longitude', value: null });\n }\n\n } catch (err) {\n console.warn(\"Geolocation error:\", err);\n this.metadataEmit.emit({ key: 'signature.latitude', value: null });\n this.metadataEmit.emit({ key: 'signature.longitude', value: null });\n }\n }\n }\n };\n\n\n private async loadSignature(signatureValue: File | UdpDriveFile | string) {\n let imageUrl: string;\n if (typeof signatureValue === 'string') {\n imageUrl = signatureValue;\n } else if (isUdpDriveFile(signatureValue)) {\n try {\n const file = await downloadFileFromUdpDriveFile(signatureValue as UdpDriveFile);\n imageUrl = URL.createObjectURL(file);\n } catch (error) {\n console.error('Error loading signature image from UdpDriveFile:', error);\n return;\n }\n } else if (signatureValue instanceof File) {\n imageUrl = URL.createObjectURL(signatureValue);\n }\n\n if (imageUrl && this.signaturePad) {\n this.signaturePad.fromDataURL(imageUrl, {\n ratio: window.devicePixelRatio,\n width: this.canvasEl.width,\n height: this.canvasEl.height,\n });\n }\n }\n\n private async urlToFile(url: string, filename: string): Promise<File> {\n const res = await fetch(url);\n const blob = await res.blob();\n return new File([blob], filename, { type: blob.type });\n }\n\n private clearSignature = () => {\n if (this.signaturePad) {\n this.signaturePad.clear();\n this.handleSignatureEnd(); // to emit the change\n }\n };\n\n render() {\n const isError = !!this.internalError;\n const containerClasses = {\n 'signature-pad-container': true,\n 'readonly': this.readonly,\n 'disabled': this.disabled,\n };\n\n return (\n <Host\n class={{\n 'udp-input': true,\n 'udp-input--error': isError,\n 'udp-input--disabled': this.disabled,\n 'udp-input--required': this.required,\n 'udp-input--readonly': this.readonly,\n [`udp-input--size-${this.size}`]: true,\n [`udp-input--margin-${this.margin}`]: true,\n }}\n >\n <div class=\"bx--form-item\">\n {this.label && (\n <unity-typography variant=\"caption-text\">\n <label htmlFor={this.id} class=\"bx--label\">\n {this.label}\n {this.required && '*'}\n </label>\n </unity-typography>\n )}\n <div class={containerClasses}>\n <canvas\n ref={el => (this.canvasEl = el as HTMLCanvasElement)}\n class={{ 'signature-canvas': true, 'readonly': this.readonly || this.disabled }}\n id={this.id}\n ></canvas>\n {!this.readonly && !this.disabled && (\n <button\n type=\"button\"\n class=\"clear-button\"\n onClick={this.clearSignature}\n disabled={this.disabled}\n >\n Clear\n </button>\n )}\n </div>\n {isError && (\n <div class=\"error-message\">\n <unity-typography variant=\"caption-text\" color=\"error\">{this.internalError}</unity-typography>\n </div>\n )}\n </div>\n </Host>\n );\n }\n}\n\n","import { Component, h, Prop, Event as StencilEvent, EventEmitter, State, Element, Method } from '@stencil/core';\nimport { createForm, FormApi } from 'final-form';\nimport debounce from 'lodash.debounce';\n\n@Component({\n tag: 'stencil-form',\n shadow: true,\n})\nexport class StencilForm {\n @Element() el: HTMLElement;\n @Prop() handleSubmit: (values: Object) => void;\n @Prop() initialValues: Object;\n @Prop() handleValidate: (values: Object, errors: Object) => Object;\n @Prop() validateOnBlur: boolean = true;\n @Prop() handleChange: (values: Object) => void;\n @StencilEvent() stencilFormInvalidEvent: EventEmitter<Object>;\n @StencilEvent() dirtyChange: EventEmitter<boolean>;\n\n private observer: MutationObserver;\n\n @State() api: FormApi;\n @State() registeredFields: { [key: string]: { required: boolean, ignoreDirty?: boolean } } = {};\n @State() customErrors: { [key: string]: string } = {};\n\n constructor() {\n this.submitWithValidation = this.submitWithValidation.bind(this);\n this.defaultValidation = this.defaultValidation.bind(this);\n this.submit = this.submit.bind(this);\n this.onFormChange = this.onFormChange.bind(this);\n }\n\n private connectField(field: HTMLStencilFieldElement) {\n if ((field as any).__connectedToForm) return;\n\n field.setFormApi({\n api: this.api,\n registeredFields: this.registeredFields,\n customErrors: this.customErrors,\n });\n\n (field as any).__connectedToForm = true;\n }\n\n /**\n * Asynchronously and recursively traverses a node and all of its light DOM\n * and shadow DOM descendants, connecting any stencil-fields it finds.\n */\n private async processNodeRecursively(node: Node) {\n // 1. Skip anything that isn't an element\n if (node.nodeType !== Node.ELEMENT_NODE) {\n return;\n }\n const element = node as Element;\n\n // 2. If the element is a custom component, wait for it to be defined.\n // This ensures its shadowRoot is available if it has one.\n if (element.localName.includes('-')) {\n await customElements.whenDefined(element.localName);\n }\n\n // 3. Process the element itself\n if (element.matches('stencil-field')) {\n this.connectField(element as HTMLStencilFieldElement);\n }\n\n // 4. Connect submit buttons\n this.connectSubmitButtons(element);\n\n // 5. If the element has a shadowRoot, recursively process its children\n if (element.shadowRoot) {\n for (const child of Array.from(element.shadowRoot.childNodes)) {\n await this.processNodeRecursively(child);\n }\n }\n\n // 6. Recursively process all light DOM children\n for (const child of Array.from(element.childNodes)) {\n await this.processNodeRecursively(child);\n }\n }\n\n /**\n * The event handler for slot changes. It kicks off the recursive processing.\n */\n private handleSlotChange = () => {\n const slot = this.el.shadowRoot.querySelector('slot');\n if (!slot) return;\n\n // Process every node assigned to the slot\n slot.assignedNodes().forEach(node => this.processNodeRecursively(node));\n };\n\n /**\n * Connect submit buttons in slotted content to this form\n */\n private connectSubmitButtons(node: Node) {\n if (node.nodeType !== Node.ELEMENT_NODE) {\n return;\n }\n const element = node as Element;\n\n // Check if the element itself is a submit button\n if (element.matches('input[type=\"submit\"], button[type=\"submit\"]')) {\n const htmlElement = element as HTMLElement;\n // Avoid duplicate event listeners\n if (!htmlElement.dataset.stencilFormConnected) {\n htmlElement.dataset.stencilFormConnected = 'true';\n element.addEventListener('click', e => {\n e.preventDefault();\n this.submit(e);\n });\n }\n }\n\n // Find submit buttons in descendants and connect them\n const submitButtons = element.querySelectorAll('input[type=\"submit\"], button[type=\"submit\"]');\n submitButtons.forEach((button: Element) => {\n const htmlButton = button as HTMLElement;\n // Avoid duplicate event listeners\n if (!htmlButton.dataset.stencilFormConnected) {\n htmlButton.dataset.stencilFormConnected = 'true';\n button.addEventListener('click', e => {\n e.preventDefault();\n this.submit(e);\n });\n }\n });\n }\n\n componentWillLoad() {\n this.api = createForm({\n onSubmit: this.submitWithValidation,\n initialValues: this.initialValues,\n validate: this.defaultValidation,\n validateOnBlur: this.validateOnBlur,\n });\n\n if (this.handleChange) {\n this.api.subscribe(this.onFormChange, { values: true });\n }\n\n // Subscription for the dirty state change event, but consider ignoreDirty flags and ignore any fields configured with ignoreDirty=true\n this.api.subscribe(\n formState => {\n const { dirtyFields } = formState;\n const registered = this.registeredFields;\n\n // Determine if any field that is *not ignored* is dirty\n const hasDirtyFields = Object.keys(dirtyFields || {}).some(\n name => dirtyFields[name] && !registered[name]?.ignoreDirty\n );\n\n this.dirtyChange.emit(hasDirtyFields);\n },\n { dirtyFields: true },\n );\n }\n\n componentDidLoad() {\n const slot = this.el.shadowRoot.querySelector('slot');\n\n // Create the observer first\n this.observer = new MutationObserver(mutations => {\n for (const mutation of mutations) {\n mutation.addedNodes.forEach(node => {\n this.processNodeRecursively(node);\n });\n }\n });\n\n // Function to handle slot changes or initial processing\n const observeAssignedNodes = () => {\n const assignedNodes = slot?.assignedNodes({ flatten: true }) || [];\n\n assignedNodes.forEach(node => {\n if (node.nodeType === Node.ELEMENT_NODE) {\n this.observer.observe(node, { childList: true, subtree: true });\n this.processNodeRecursively(node); // Process immediately in case nodes are already present\n }\n });\n };\n\n if (slot) {\n observeAssignedNodes(); // Initial\n slot.addEventListener('slotchange', observeAssignedNodes); // Handle dynamic slot content\n }\n\n // If you're also rendering some fields directly in this.el (not through slot), you can keep this:\n this.observer.observe(this.el, { childList: true, subtree: true });\n\n this.el.dispatchEvent(new CustomEvent('stencilFormReady', { bubbles: true, composed: true }));\n }\n\n disconnectedCallback() {\n this.api = null;\n this.registeredFields = {};\n\n const slot = this.el.shadowRoot?.querySelector('slot');\n if (slot) {\n slot.removeEventListener('slotchange', this.handleSlotChange);\n }\n }\n\n onFormChange(formState: any): void {\n if (this.handleChange && formState.values) {\n this.handleChange(formState.values);\n }\n }\n\n async submitWithValidation(values: { [key: string]: any }): Promise<void> {\n const errors = this.defaultValidation(values);\n if (Object.keys(errors).length === 0) {\n this.handleSubmit(values);\n } else {\n this.stencilFormInvalidEvent.emit(errors);\n }\n }\n\n defaultValidation(values: Object): Object {\n const { registeredFields, customErrors } = this;\n const errors = {};\n\n // Helper to get value from nested path (dot + bracket notation)\n const getByPath = (obj, path) =>\n path\n .replace(/\\[(\\d+)\\]/g, '.$1') // convert [0] to .0\n .split('.')\n .reduce((o, k) => (o != null ? o[k] : undefined), obj);\n\n // Check for required field validation\n Object.keys(registeredFields).forEach(field => {\n const meta = registeredFields[field];\n if (meta?.ignoreDirty) return; // skip ignored fields entirely\n\n const valRef = getByPath(values, field);\n\n // null or undefined, empty string, or false/'false' are considered \"empty\" values\n if (\n meta.required &&\n (valRef == null ||\n (typeof valRef === 'string' && valRef.trim() === '') ||\n valRef === false ||\n valRef === 'false')\n ) {\n errors[field] = 'This field is required';\n }\n });\n\n // Merge in any custom errors from stencil-field components\n if (customErrors) {\n Object.keys(customErrors).forEach(field => {\n if (customErrors[field]) {\n errors[field] = customErrors[field];\n }\n });\n }\n\n // Merge with user-provided custom validation\n if (this?.handleValidate) {\n const customErrorsFromHandler = this.handleValidate(values, errors);\n return { ...errors, ...customErrorsFromHandler };\n }\n\n return errors;\n }\n\n @Method()\n async getApi(): Promise<FormApi> {\n if (!this.api) {\n console.error('❌ Form API not initialized yet.');\n return null;\n }\n return this.api;\n }\n\n submit(e) {\n e?.preventDefault?.();\n const values = this.api.getState().values;\n const errors = this.defaultValidation(values);\n\n const submitFunction = () => {\n if (Object.keys(errors).length) {\n this.stencilFormInvalidEvent.emit(errors);\n return;\n }\n this.api?.submit();\n };\n debounce(submitFunction, 1000, { leading: true, trailing: false })();\n }\n\n render() {\n return (\n <form>\n <slot />\n </form>\n );\n }\n}\n",":host {\n display: block;\n width: 100%;\n}\n\n.tally-container {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-02, 8px);\n}\n\n.tally-label {\n font-weight: 600;\n margin-bottom: var(--spacing-02, 8px);\n}\n\n.tally-loading {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: var(--spacing-04, 16px);\n color: var(--text-secondary, #6b7280);\n}\n\n.tally-content {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-03, 12px);\n}\n\n.tally-stats {\n display: flex;\n gap: var(--spacing-04, 16px);\n flex-wrap: wrap;\n}\n\n.tally-item {\n display: flex;\n flex-direction: column;\n align-items: center;\n padding: var(--spacing-03, 12px) var(--spacing-04, 16px);\n border-radius: var(--border-radius-01, 4px);\n border: 1px solid var(--border-subtle, #e5e7eb);\n background-color: var(--layer-01, #ffffff);\n min-width: 80px;\n flex: 1;\n max-width: 120px;\n}\n\n.tally-item.tally-yes {\n border-color: var(--support-success, #42be65);\n background-color: var(--support-success-hover, #f6f8ff);\n}\n\n.tally-item.tally-no {\n border-color: var(--support-error, #da1e28);\n background-color: var(--support-error-hover, #fff1f1);\n}\n\n.tally-item.tally-unanswered {\n border-color: var(--support-warning, #f1c21b);\n background-color: var(--support-warning-hover, #fcf4d6);\n}\n\n.tally-count {\n font-weight: 700;\n line-height: 1.2;\n margin-bottom: var(--spacing-01, 4px);\n}\n\n.tally-yes .tally-count {\n color: var(--support-success, #42be65);\n}\n\n.tally-no .tally-count {\n color: var(--support-error, #da1e28);\n}\n\n.tally-unanswered .tally-count {\n color: var(--support-warning, #f1c21b);\n}\n\n.tally-item .tally-label {\n margin: 0;\n font-weight: 500;\n text-transform: uppercase;\n font-size: 0.75rem;\n letter-spacing: 0.02em;\n}\n\n.tally-summary {\n padding: var(--spacing-02, 8px) 0;\n border-top: 1px solid var(--border-subtle, #e5e7eb);\n text-align: center;\n}\n\n.error-message {\n margin-top: var(--spacing-02, 8px);\n padding: var(--spacing-02, 8px);\n border-radius: var(--border-radius-01, 4px);\n background-color: var(--support-error-hover, #fff1f1);\n border: 1px solid var(--support-error, #da1e28);\n}\n\n/* Size variants */\n:host(.udp-input--size-small) .tally-item {\n padding: var(--spacing-02, 8px) var(--spacing-03, 12px);\n min-width: 60px;\n max-width: 90px;\n}\n\n:host(.udp-input--size-small) .tally-count {\n font-size: 1.25rem;\n}\n\n:host(.udp-input--size-large) .tally-item {\n padding: var(--spacing-04, 16px) var(--spacing-05, 20px);\n min-width: 100px;\n max-width: 150px;\n}\n\n:host(.udp-input--size-large) .tally-count {\n font-size: 2rem;\n}\n\n/* Margin variants */\n:host(.udp-input--margin-none) .tally-container {\n gap: 0;\n}\n\n:host(.udp-input--margin-dense) .tally-container {\n gap: var(--spacing-01, 4px);\n}\n\n:host(.udp-input--margin-comfortable) .tally-container {\n gap: var(--spacing-04, 16px);\n}\n\n/* Disabled state */\n:host(.udp-input--disabled) .tally-item {\n opacity: 0.5;\n pointer-events: none;\n}\n\n/* Read-only state */\n:host(.udp-input--readonly) .tally-item {\n background-color: var(--field-01, #f4f4f4);\n}\n\n/* Responsive design */\n@media (max-width: 480px) {\n .tally-stats {\n flex-direction: column;\n }\n \n .tally-item {\n max-width: none;\n flex: none;\n }\n}\n","import { Component, Prop, h, Host } from '@stencil/core';\nimport { InputSize, InputMargin } from '../input-types';\n\n/**\n * A tally component that displays counts of Yes/No responses.\n * This is a pure display component that receives tally data as props.\n */\n@Component({\n tag: 'tally-display',\n styleUrl: 'tally.css',\n shadow: true,\n})\nexport class TallyDisplay {\n\n /**\n * Label for the tally display.\n */\n @Prop() label: string = 'Response Tally';\n\n /**\n * Unique identifier for the tally.\n */\n @Prop() id: string;\n\n /**\n * Number of Yes responses.\n */\n @Prop() yesCount: number = 0;\n\n /**\n * Number of No responses.\n */\n @Prop() noCount: number = 0;\n\n /**\n * Number of Not Applicable responses.\n */\n @Prop() naCount: number = 0;\n\n /**\n * Total number of fields being tallied.\n */\n @Prop() totalFields: number = 0;\n\n /**\n * Whether the component is disabled.\n */\n @Prop() disabled: boolean = false;\n\n /**\n * Whether the component is read-only.\n */\n @Prop() readonly: boolean = false;\n\n /**\n * Error message to display.\n */\n @Prop() error: string;\n\n /**\n * Size variant for the tally display.\n */\n @Prop() size: InputSize = 'normal';\n\n /**\n * Margin variant for the component spacing.\n */\n @Prop() margin: InputMargin = 'normal';\n\n render() {\n const isError = !!this.error;\n const answeredCount = this.yesCount + this.noCount + this.naCount;\n const unansweredCount = this.totalFields - answeredCount;\n \n return (\n <Host\n class={{\n 'udp-input': true,\n 'udp-input--error': isError,\n 'udp-input--disabled': this.disabled,\n 'udp-input--readonly': this.readonly,\n [`udp-input--size-${this.size}`]: true,\n [`udp-input--margin-${this.margin}`]: true,\n }}\n >\n <div class=\"tally-container\">\n {this.label && (\n <unity-typography variant=\"caption-text\">\n <label htmlFor={this.id} class=\"tally-label\">\n {this.label}\n </label>\n </unity-typography>\n )}\n <div class=\"tally-content\" id={this.id}>\n <div class=\"tally-stats\">\n <div class=\"tally-item tally-yes\">\n <unity-typography variant=\"h4\" class=\"tally-count\">\n {this.yesCount}\n </unity-typography>\n <unity-typography variant=\"caption-text\" class=\"tally-label\">\n Yes\n </unity-typography>\n </div>\n <div class=\"tally-item tally-no\">\n <unity-typography variant=\"h4\" class=\"tally-count\">\n {this.noCount}\n </unity-typography>\n <unity-typography variant=\"caption-text\" class=\"tally-label\">\n No\n </unity-typography>\n </div>\n <div class=\"tally-item tally-na\">\n <unity-typography variant=\"h4\" class=\"tally-count\">\n {this.naCount}\n </unity-typography>\n <unity-typography variant=\"caption-text\" class=\"tally-label\">\n Not Applicable\n </unity-typography>\n </div>\n {unansweredCount > 0 && (\n <div class=\"tally-item tally-unanswered\">\n <unity-typography variant=\"h4\" class=\"tally-count\">\n {unansweredCount}\n </unity-typography>\n <unity-typography variant=\"caption-text\" class=\"tally-label\">\n Unanswered\n </unity-typography>\n </div>\n )}\n </div>\n <div class=\"tally-summary\">\n <unity-typography variant=\"caption-text\">\n Total Questions: {this.totalFields}\n </unity-typography>\n </div>\n </div>\n {isError && (\n <div class=\"error-message\">\n <unity-typography variant=\"caption-text\" color=\"error\">\n {this.error}\n </unity-typography>\n </div>\n )}\n </div>\n </Host>\n );\n }\n}\n","/**\n * Finds the parent stencil-form and returns its Final Form API.\n * This function correctly traverses up through nested Shadow DOM boundaries.\n *\n * @param element The host element of the component calling this function.\n * @returns A promise that resolves with the FormApi instance, or null if not found.\n */\nexport async function useFormApi(element: HTMLElement): Promise<any | null> {\n let current: HTMLElement | null = element;\n let form: Element | null = null;\n\n // Walk up the DOM tree, escaping shadow roots as we go.\n while (current) {\n // Look for the form in the current scope\n const foundForm = current.closest('stencil-form');\n if (foundForm) {\n form = foundForm;\n break; // Found it!\n }\n\n // If not found, we might be in a shadow root.\n // Let's try to escape it.\n const root = current.getRootNode();\n if (root instanceof ShadowRoot) {\n current = root.host as HTMLElement;\n } else {\n // We're in the main document and didn't find it.\n break;\n }\n }\n\n if (!form) {\n return null;\n }\n\n // Check if getApi method exists\n if (typeof (form as any).getApi !== 'function') {\n return null;\n }\n\n const formApi = await (form as any).getApi();\n \n if (!formApi) {\n return null;\n }\n \n return formApi;\n}\n","\n.hidden {\n display: none;\n}\n\n.question-container {\n border-top: 1px solid rgba(0, 0, 0, 0.08); \n padding-top: 1rem; \n}\n\n.question-title-and-helper-container {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-03)\n}\n\n.question-title-and-followup-container {\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n","import { Component, ComponentInterface, Element, h, Prop, State, Watch, Event, EventEmitter } from '@stencil/core';\nimport { UdpFormQuestion, Guid } from '../utils/types';\nimport { UdpFormsFieldTypeEnum } from '../utils/enums';\nimport { FontOverrides } from '../utils/types';\nimport { fontOverrideMapping, overrideFont } from '../utils/utils';\nimport { useFormApi } from '../../form/useFormApi';\nimport { getIconFromName } from '../../../data-display/icons/iconUtils';\nimport { UdpFormsPageIdEnum } from '../utils/enums';\n\n@Component({\n tag: 'udp-question',\n styleUrl: 'udp-question.css',\n shadow: true,\n})\nexport class UdpQuestion {\n @Prop() question: UdpFormQuestion;\n @Prop() questionNumber: number;\n @Prop({ mutable: true }) value: string; // only used for Paragraph type (UdpFormsFieldTypeEnum.Paragraph)\n @Prop() disabled: boolean = false;\n @Prop() readonly: boolean = false;\n @Prop() styleOverrides: {\n helperText: FontOverrides;\n questionText: FontOverrides;\n paragraphText: FontOverrides;\n };\n @Prop() initialValues: { [name: string]: any } = {};\n @Prop() userId: Guid | null = null;\n\n @Event() launchFollowUpFormSideSheet: EventEmitter<any>;\n\n @State() private _fieldComponent: ComponentInterface;\n @State() private tallyData: {\n yesCount: number;\n noCount: number;\n naCount: number;\n totalFields: number;\n } = { yesCount: 0, noCount: 0, naCount: 0, totalFields: 0 };\n @State() private formApi: any = null;\n\n @Element() el: HTMLElement;\n\n @Watch('question')\n @Watch('questionNumber')\n @Watch('value')\n @Watch('disabled')\n @Watch('readonly')\n @Watch('styleOverrides')\n protected propChanged() {\n this.updateFieldComponent();\n }\n\n async componentWillLoad() {\n this.updateFieldComponent();\n if (this.question.fieldTypeId === UdpFormsFieldTypeEnum.Tally) {\n await this.initializeFormApiForTally();\n }\n }\n\n private async initializeFormApiForTally() {\n try {\n this.formApi = await useFormApi(this.el);\n\n if (this.formApi) {\n // Subscribe to form changes to update tally in real-time\n const unsubscribe = this.formApi.subscribe(\n () => {\n this.calculateTally();\n },\n { active: true, dirty: true, values: true },\n );\n\n // Store unsubscribe function for cleanup if needed\n (this as any).unsubscribeFormApi = unsubscribe;\n\n // Initial calculation\n this.calculateTally();\n }\n } catch (error) {\n console.error('Failed to initialize form API for tally:', error);\n }\n }\n\n private calculateTally() {\n if (!this.formApi || this.question.fieldTypeId !== UdpFormsFieldTypeEnum.Tally) {\n return;\n }\n\n try {\n const formValues = this.formApi.getState().values;\n\n const formElement = this.el.closest('stencil-form');\n if (!formElement) {\n return;\n }\n\n // Get all udp-question elements in the form\n const questionElements = formElement.querySelectorAll('udp-question');\n const yesNoFields: string[] = [];\n\n // Identify YesNo field types\n questionElements.forEach((questionEl: any) => {\n if (questionEl.question && questionEl.question.fieldTypeId === UdpFormsFieldTypeEnum.YesNo) {\n const fieldName = `${questionEl.question.questionIdentifierKey}.value`;\n if (fieldName) {\n const shouldInclude = this.shouldIncludeFieldInTally(fieldName);\n if (shouldInclude) {\n yesNoFields.push(fieldName);\n }\n }\n }\n });\n\n // Count Yes/No/NA responses\n let yesCount = 0;\n let noCount = 0;\n let naCount = 0;\n\n yesNoFields.forEach(fieldName => {\n const [sectionKey, questionKey] = fieldName.split(\".\");\n const value = formValues[sectionKey][questionKey].value;\n\n if (value === 'true' || value === true) {\n yesCount++;\n } else if (value === 'false' || value === false) {\n noCount++;\n } else if (value === 'na') {\n naCount++;\n }\n });\n\n this.tallyData = {\n yesCount,\n noCount,\n naCount,\n totalFields: yesNoFields.length,\n };\n\n // Force a re-render to update the component\n this.updateFieldComponent();\n } catch (error) {\n console.error('Error calculating tally:', error);\n }\n }\n\n private shouldIncludeFieldInTally(fieldName: string): boolean {\n const fieldProps = this.question.fieldProperties;\n\n // If includeFields is specified, only include those fields\n if (fieldProps?.includeFields && fieldProps.includeFields.length > 0) {\n return fieldProps.includeFields.includes(fieldName);\n }\n\n // If excludeFields is specified, exclude those fields\n if (fieldProps?.excludeFields && fieldProps.excludeFields.length > 0) {\n return !fieldProps.excludeFields.includes(fieldName);\n }\n\n // Include all fields by default\n return true;\n }\n\n private updateFieldComponent() {\n this._fieldComponent = this.getFieldComponent();\n }\n\n private getFieldComponent(): ComponentInterface {\n const props = {\n name: `${this.question.questionIdentifierKey}.value`,\n required: this.question.required,\n };\n\n const fieldProps = { ...this.question.fieldProperties, id: this.questionNumber, disabled: this.disabled, readonly: this.readonly };\n switch (this.question.fieldTypeId) {\n case UdpFormsFieldTypeEnum.SingleLineText:\n return (\n <stencil-field {...props}>\n <text-field {...fieldProps} />\n </stencil-field>\n );\n case UdpFormsFieldTypeEnum.MultiLineText:\n return (\n <stencil-field {...props}>\n <text-area fullWidth={true} {...fieldProps} />\n </stencil-field>\n );\n case UdpFormsFieldTypeEnum.Checkbox:\n return (\n <stencil-field {...props}>\n <selectable-list valueKey=\"value\" displayKey=\"display\" multiSelect={true} useCheckbox={true} {...fieldProps} />\n </stencil-field>\n );\n case UdpFormsFieldTypeEnum.RadioButton:\n return (\n <stencil-field {...props}>\n <selectable-list valueKey=\"value\" displayKey=\"display\" useCheckbox={true} {...fieldProps} />\n </stencil-field>\n );\n case UdpFormsFieldTypeEnum.DropdownSingleSelect:\n case UdpFormsFieldTypeEnum.DropdownMultipleSelect:\n let options: { label: string; value: string } = fieldProps?.items?.map?.(items => ({ label: items.display, value: items.value, ...fieldProps }));\n return (\n <stencil-field {...props}>\n <udp-selector options={options ?? []} multiSelect={this.question.fieldTypeId === UdpFormsFieldTypeEnum.DropdownMultipleSelect} {...fieldProps} />\n </stencil-field>\n );\n case UdpFormsFieldTypeEnum.YesNo:\n return (\n <stencil-field {...props}>\n <selectable-list\n valueKey=\"value\"\n displayKey=\"display\"\n useCheckbox={true} // Use radio buttons\n multiSelect={false}\n items={[\n { value: 'true', display: 'Yes' },\n { value: 'false', display: 'No' },\n { value: 'na', display: 'Not Applicable' },\n ]}\n {...fieldProps}\n />\n </stencil-field>\n );\n case UdpFormsFieldTypeEnum.ListMultiSelect:\n return (\n <stencil-field {...props}>\n <selectable-list valueKey=\"value\" displayKey=\"display\" multiSelect={true} {...fieldProps} />\n </stencil-field>\n );\n case UdpFormsFieldTypeEnum.DateSelector:\n return (\n <stencil-field {...props}>\n <udp-date-selector min={fieldProps?.minDate} max={fieldProps?.maxDate} {...fieldProps} />\n </stencil-field>\n );\n case UdpFormsFieldTypeEnum.TimeSelector:\n return (\n <stencil-field {...props}>\n <udp-time-selector min={fieldProps?.minTime} max={fieldProps?.maxTime} {...fieldProps} />\n </stencil-field>\n );\n case UdpFormsFieldTypeEnum.DateTimeSelector:\n return (\n <stencil-field {...props}>\n <udp-datetime-selector max={fieldProps?.maxDateTime} min={fieldProps?.minDateTime} {...fieldProps} />\n </stencil-field>\n );\n case UdpFormsFieldTypeEnum.FileUpload:\n return (\n <stencil-field {...props}>\n <file-upload fullWidth={true} allowMultiple={false} {...fieldProps} />\n </stencil-field>\n );\n case UdpFormsFieldTypeEnum.ImageUpload:\n return (\n <stencil-field {...props}>\n <image-upload fullWidth={true} {...fieldProps} />\n </stencil-field>\n );\n case UdpFormsFieldTypeEnum.Signature:\n return (\n <div>\n <stencil-field {...props} fieldIdentifierKey={`${this.question.questionIdentifierKey}`} registerMetadata={true} metadataFieldNames={['signature.latitude', 'signature.longitude', 'signature.timestamp']}>\n <signature-input {...fieldProps} value={this.value} />\n </stencil-field>\n <stencil-field required={this.question.required} name={ `${this.question.questionIdentifierKey}.metadata.signature.fullName`}>\n <text-field {...fieldProps} label={'Full Name'}/>\n </stencil-field>\n </div>\n );\n case UdpFormsFieldTypeEnum.Paragraph:\n // Wrap in stencil-field and include a hidden input so the value is part of the form submission\n return (\n <stencil-field name={this.question.name} required={false}>\n <input type=\"hidden\" name={this.question.name} value={this.value || ''} />\n {this.value ? (\n <unity-typography id={`paragraphText${this.question.name}`} variant={this.styleOverrides?.paragraphText?.variant || 'body'}>\n {this.value}\n </unity-typography>\n ) : (\n <div />\n )}\n </stencil-field>\n );\n case UdpFormsFieldTypeEnum.Number:\n return (\n <stencil-field {...props}>\n <numeric-field {...fieldProps} />\n </stencil-field>\n );\n\n case UdpFormsFieldTypeEnum.Tally:\n return (\n <tally-display\n id={this.questionNumber}\n label={this.question.questionText || 'Response Tally'}\n yesCount={this.tallyData.yesCount}\n noCount={this.tallyData.noCount}\n naCount={this.tallyData.naCount}\n totalFields={this.tallyData.totalFields}\n {...fieldProps}\n required={false}\n />\n );\n case UdpFormsFieldTypeEnum.Hidden:\n default:\n return <div />;\n }\n }\n async componentDidLoad() {\n // If form API wasn't available during componentWillLoad, try again\n if (this.question.fieldTypeId === UdpFormsFieldTypeEnum.Tally && !this.formApi) {\n await this.initializeFormApiForTally();\n }\n\n // override the fonts based on style overrides\n const variantsAndOverrides = [];\n for (const override in this.styleOverrides) {\n variantsAndOverrides.push({\n id: override + this.question.name,\n fontOverride: this.styleOverrides?.[override]?.fontFamily,\n variant: this.styleOverrides?.[override]?.variant,\n });\n }\n variantsAndOverrides.forEach(override => {\n if (!fontOverrideMapping[override?.fontOverride] || !this.el || !this.el.shadowRoot) return;\n overrideFont(this.el?.shadowRoot?.getElementById?.(override.id), fontOverrideMapping[override?.fontOverride]);\n });\n }\n render() {\n const component = this._fieldComponent;\n const titleText = `${this.question.fieldTypeId === UdpFormsFieldTypeEnum.Paragraph ? '' : `${this.questionNumber}.`} ${this.question.questionText} ${\n this.question.required && this.question.fieldTypeId !== UdpFormsFieldTypeEnum.Paragraph ? '*' : ''\n }`;\n const commentFieldProps = { disabled: this.disabled, readonly: this.readonly };\n const fieldName = `${this.question.questionIdentifierKey}.value`;\n const [sectionKey, questionKey] = fieldName.split(\".\");\n\n if (!component) return null;\n return (\n <div\n class={{\n 'hidden': this.question.fieldTypeId === UdpFormsFieldTypeEnum.Hidden,\n 'question-container': true,\n }}\n >\n <div class=\"question-title-and-helper-container\">\n <div class=\"question-title-and-followup-container\">\n {this.question.questionText && (\n <unity-typography\n id={`questionText${this.question.name}`}\n variant={this.styleOverrides?.questionText?.variant || 'h3'}\n >\n {titleText}\n </unity-typography>\n )}\n <div>\n {this.question.fieldProperties.allowFollowUpForms && (\n (() => {\n const metadata = this.initialValues[sectionKey][questionKey]?.metadata;\n const followUpId = metadata?.followUpFormSubmissionId;\n if (followUpId) {\n // Valid GUID → show arrow icon to open follow-up form\n const url = `/page/${UdpFormsPageIdEnum.FormRendererPageId}?udpf_submissionId=${followUpId}`;\n return (\n <stencil-icon-button\n icon={getIconFromName('link')}\n tooltip=\"Open Follow-Up Form\"\n onClick={() => window.open(url, '_blank')}\n />\n );\n }\n\n if (!this.readonly) {\n // No valid follow-up yet → show link icon to create one\n return (\n <stencil-icon-button\n icon={getIconFromName('document')}\n tooltip=\"Create Follow-Up Form\"\n onClick={() => {\n console.log('clicked create follow up form')\n this.launchFollowUpFormSideSheet.emit({ sectionKey, questionKey });\n }}\n />\n );\n }\n \n })()\n )}\n </div>\n </div>\n {this.question.helperText && (\n <unity-typography\n id={`helperText${this.question.name}`}\n variant={this.styleOverrides?.helperText?.variant || 'caption-text'}\n >\n {this.question.helperText}\n </unity-typography>\n )}\n </div>\n\n {component}\n\n {this.question.fieldProperties.allowFollowUpForms && (\n <div>\n <stencil-field hidden={true} name={`${this.question.questionIdentifierKey}.metadata.followUpParentFormId`}>\n <text-field />\n </stencil-field>\n <stencil-field hidden={true} name={`${this.question.questionIdentifierKey}.metadata.followUpParentFormVersion`}>\n <text-field />\n </stencil-field>\n <stencil-field hidden={true} name={`${this.question.questionIdentifierKey}.metadata.followUpParentFormSubmissionId`}>\n <text-field />\n </stencil-field>\n </div>\n )}\n\n {this.question.fieldProperties.allowComments && (\n <udp-question-comment\n question={this.question}\n readonly={this.readonly}\n commentFieldProps={commentFieldProps}\n initialValues={this.initialValues}\n userId={this.userId}\n />\n )}\n </div>\n );\n }\n}\n",".question-comment-add-comment-button {\n display: flex;\n justify-content: center;\n}\n\n.question-comment-action-container {\n display: flex;\n justify-content: end;\n}\n\n.question-comment-display {\n position: relative;\n display: flex;\n flex-direction: column;\n gap: var(--spacing-03);\n margin-bottom: var(--spacing-05);\n\n border: 1px solid var(--border-color, #ccc);\n border-radius: 6px;\n padding: var(--spacing-05) var(--spacing-04);\n}\n\n/* target just the first unity-typography inside */\n.question-comment-display > .question-comment-header {\n position: absolute;\n bottom: -0.6em; \n right: 1em;\n background: white; \n padding: 0 0.4em;\n font-size: 0.85em; \n}","import { Component, h, Prop, Event, EventEmitter } from '@stencil/core';\nimport { UdpFormQuestion, Guid } from '../../utils/types';\n\n@Component({\n tag: 'udp-question-comment',\n styleUrl: 'udp-question-comment.css',\n shadow: true,\n})\nexport class UdpQuestionComment {\n @Prop() question: UdpFormQuestion;\n @Prop() readonly: boolean = false;\n @Prop() commentFieldProps: object = {};\n @Prop() initialValues: { [name: string]: any } = {};\n @Prop() userId: Guid | null = null;\n\n private isContainsSavedComment: boolean = false;\n private isContainsDraftComment: boolean = false;\n private isCommentOwner: boolean = false;\n\n @Event({ bubbles: true, composed: true }) questionCommentAction: EventEmitter<{\n type: 'add' | 'save' | 'edit' | 'delete';\n key: string;\n }>;\n\n private emitQuestionCommentAction(type: 'add' | 'save' | 'edit' | 'delete') {\n this.questionCommentAction.emit({ type, key: this.question.questionIdentifierKey });\n }\n\n private handleCommentAdd() {\n this.emitQuestionCommentAction('add');\n }\n private handleCommentSave() {\n this.emitQuestionCommentAction('save');\n }\n private handleCommentEdit() {\n this.emitQuestionCommentAction('edit');\n }\n private handleCommentDelete() {\n this.emitQuestionCommentAction('delete');\n }\n\n componentWillRender() {\n const questionIdentifierKey = this.question.questionIdentifierKey;\n const [sectionName, questionName] = questionIdentifierKey.split('.');\n const questionObj = this.initialValues[sectionName][questionName]\n\n questionObj.draftComment\n ? (this.isContainsDraftComment = true)\n : (this.isContainsDraftComment = false);\n\n questionObj.comments.length > 0\n ? (this.isContainsSavedComment = true)\n : (this.isContainsSavedComment = false);\n\n questionObj.comments[0]?.userId == this.userId\n ? (this.isCommentOwner = true)\n : (this.isCommentOwner = false);\n }\n\n render() {\n const commentsIdentifierValueKey = `${this.question.questionIdentifierKey}.comments[0].value`;\n const commentsIdentifierDraftKey = `${this.question.questionIdentifierKey}.draftComment.value`;\n const [sectionName, questionName] = this.question.questionIdentifierKey.split('.');\n const commentObj = this.initialValues[sectionName][questionName].comments[0] || null;\n\n // read only mode\n if (this.readonly) {\n return this.isContainsSavedComment ? (\n <div class=\"question-comment-display\">\n <unity-typography variant=\"h4\" color=\"inherit\" class='question-comment-header'>\n User Comment\n </unity-typography>\n <unity-typography variant=\"body\" color=\"inherit\">\n {commentObj?.value}\n </unity-typography>\n </div>\n ) : null;\n }\n\n // everything below is in non-readOnly mode\n\n // display comment if it exists and not by the owner\n if (this.isContainsSavedComment && !this.isCommentOwner) {\n return (\n <div class=\"question-comment-display\">\n <unity-typography variant=\"h4\" color=\"inherit\" class='question-comment-header'>\n User Comment\n </unity-typography>\n <unity-typography variant=\"body\" color=\"inherit\">\n {commentObj?.value}\n </unity-typography>\n </div>\n );\n }\n\n // user is in draft mode\n if (this.isContainsDraftComment) {\n return (\n <div class=\"question-comment-draft-container\">\n <stencil-field name={commentsIdentifierDraftKey} required={true} ignoreDirty={true}>\n <text-area {...this.commentFieldProps} label=\"Comment:\" placeholder=\"Add a comment\" />\n </stencil-field>\n <div class=\"question-comment-action-container\">\n <udp-button\n variant=\"text\"\n onClick={() => {\n this.handleCommentDelete();\n }}\n startIcon={<udp-icon iconName=\"trashCan\" color=\"inherit\" />}\n >\n Delete\n </udp-button>\n <udp-button\n variant=\"text\"\n onClick={() => {\n this.handleCommentSave();\n }}\n startIcon={<udp-icon iconName=\"save\" color=\"inherit\" />}\n >\n Save\n </udp-button>\n </div>\n </div>\n );\n }\n\n // user has a saved comment\n if (this.isContainsSavedComment) {\n return (\n <div class=\"question-comment-input-container\">\n <div>\n <stencil-field name={commentsIdentifierValueKey} style={{ display: 'none' }}>\n <text-area disabled={true} />\n </stencil-field>\n <div class=\"question-comment-display\">\n <unity-typography variant=\"h4\" color=\"inherit\" class='question-comment-header'>\n {`Comment by: ${commentObj?.userDisplayName}`}\n </unity-typography>\n <unity-typography variant=\"body\" color=\"inherit\">\n {`${commentObj?.value}`}\n </unity-typography>\n </div>\n <div class=\"question-comment-action-container\">\n <udp-button\n variant=\"text\"\n onClick={() => {\n this.handleCommentEdit();\n }}\n startIcon={<udp-icon iconName=\"edit\" color=\"inherit\" />}\n >\n Edit\n </udp-button>\n </div>\n </div>\n </div>\n );\n }\n\n // no comment saved in draft or saved. allow add comment\n return (\n <div class=\"question-comment-add-comment-button\">\n <udp-button\n variant=\"text\"\n onClick={() => {\n this.handleCommentAdd();\n }}\n startIcon={<udp-icon iconName=\"add\" color=\"inherit\" />}\n >\n Add a Comment\n </udp-button>\n </div>\n );\n }\n}\n","/* Single save button that moves between header and floating positions */\n\n/* Floating mode - positioned fixed in top-right, accounting for app bar */\n.floating-save-button {\n position: fixed;\n top: 5rem; /* Increased from 2rem to account for app bar height */\n right: 2rem;\n z-index: 1000;\n animation: slideInDown 0.3s ease-out;\n}\n\n/* Inline mode - positioned relative for header placement */\n.inline-save-button {\n position: relative;\n display: inline-flex;\n align-items: center;\n margin-left: auto; /* Push to right side of header */\n}\n\n/* Common styles for both modes */\n.floating-save-button.saving,\n.inline-save-button.saving {\n pointer-events: none;\n}\n\n/* Saving state styling */\n.saving-state {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n padding: 0.75rem 1rem;\n background: rgba(0, 0, 0, 0.8);\n color: white;\n border-radius: 8px;\n font-size: 0.9rem;\n}\n\n/* Saved state styling */\n.saved-state {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n padding: 0.75rem 1rem;\n background: rgba(34, 139, 34, 0.9); /* Forest green background */\n color: white;\n border-radius: 8px;\n font-size: 0.9rem;\n animation: fadeIn 0.3s ease-out;\n}\n\n/* Inline saving state - more compact */\n.inline-save-button .saving-state {\n padding: 0.5rem 0.75rem;\n background: rgba(0, 0, 0, 0.6);\n font-size: 0.8rem;\n}\n\n/* Inline saved state - more compact */\n.inline-save-button .saved-state {\n padding: 0.5rem 0.75rem;\n background: rgba(34, 139, 34, 0.8);\n font-size: 0.8rem;\n}\n\n/* Error tooltip positioning - for floating button (top-right) */\n.save-error-tooltip {\n position: absolute;\n top: 100%;\n right: 0;\n margin-top: 0.5rem;\n background: #dc3545;\n color: white;\n padding: 0.5rem 1rem;\n border-radius: 8px;\n font-size: 0.8rem;\n white-space: nowrap;\n box-shadow: 0 4px 12px rgba(220, 53, 69, 0.3);\n animation: fadeIn 0.3s ease-out;\n z-index: 1001;\n}\n\n.save-error-tooltip::after {\n content: '';\n position: absolute;\n bottom: 100%;\n right: 1rem;\n border: 6px solid transparent;\n border-bottom-color: #dc3545;\n}\n\n/* Inline mode error tooltip - position differently */\n.inline-save-button .save-error-tooltip {\n top: 100%;\n bottom: auto;\n margin-top: 0.5rem;\n margin-bottom: 0;\n}\n\n.inline-save-button .save-error-tooltip::after {\n top: -6px;\n border-top-color: transparent;\n border-bottom-color: #dc3545;\n}\n\n/* Animations */\n@keyframes slideInDown {\n from {\n opacity: 0;\n transform: translateY(-20px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n@keyframes fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n\n/* Responsive adjustments */\n@media (max-width: 768px) {\n .floating-save-button {\n bottom: 1rem;\n right: 1rem;\n top: auto; /* Override fixed top position on small screens */\n }\n\n .saving-state {\n padding: 0.6rem 0.8rem;\n font-size: 0.8rem;\n }\n\n .inline-save-button .saving-state {\n padding: 0.4rem 0.6rem;\n font-size: 0.75rem;\n }\n}\n\n/* Override icon color to primary when button is inherit color */\n.primary-icon {\n --icon-color: var(--primary-color, #1976d2);\n}\n\n.primary-icon::part(icon) {\n fill: var(--icon-color) !important;\n}\n\n/* Alternative approach using deep selector */\n.primary-icon udp-icon-button::part(icon),\n.primary-icon .icon {\n fill: var(--primary-color, #1976d2) !important;\n}\n\n/* Reduced motion support */\n@media (prefers-reduced-motion: reduce) {\n .floating-save-button,\n .save-error-tooltip {\n animation: none;\n }\n}\n","import { Component, Prop, h, State, Element, Listen } from '@stencil/core';\nimport Save from '@carbon/icons/es/save/20';\nimport { useFormApi } from '../../../form/useFormApi';\n\n@Component({\n tag: 'udp-save-draft-button',\n styleUrl: 'udp-save-draft-button.css',\n shadow: true,\n})\nexport class UdpSaveDraftButton {\n @Element() el: HTMLElement;\n\n @Prop() isVisible: boolean = false;\n @Prop() isSaving: boolean = false;\n @Prop() saveErrorMessage: string | null = null;\n @Prop() showSavedMessage: boolean = false;\n @Prop() handleSave: (values?: any) => void;\n\n @State() shouldBeInline: boolean = false;\n @State() private formApi: any | null = null;\n\n private resizeObserver: ResizeObserver;\n private checkOverlapTimeoutId: any;\n\n async componentDidLoad() {\n this.formApi = await useFormApi(this.el);\n this.checkForOverlap();\n this.setupOverlapDetection();\n }\n\n disconnectedCallback() {\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n }\n if (this.checkOverlapTimeoutId) {\n clearTimeout(this.checkOverlapTimeoutId);\n }\n }\n\n @Listen('resize', { target: 'window' })\n handleWindowResize() {\n this.debouncedOverlapCheck();\n }\n\n private setupOverlapDetection() {\n if (typeof ResizeObserver !== 'undefined') {\n this.resizeObserver = new ResizeObserver(() => {\n this.debouncedOverlapCheck();\n });\n const formContainer = this.el.closest('udp-forms-ui, .form-container, udp-container');\n if (formContainer) {\n this.resizeObserver.observe(formContainer);\n }\n const mainContent = document.querySelector('main, [role=\"main\"]') || document.body;\n if (mainContent) {\n this.resizeObserver.observe(mainContent);\n }\n }\n }\n\n private debouncedOverlapCheck() {\n if (this.checkOverlapTimeoutId) {\n clearTimeout(this.checkOverlapTimeoutId);\n }\n this.checkOverlapTimeoutId = setTimeout(() => {\n this.checkForOverlap();\n }, 100);\n }\n\n private checkForOverlap() {\n // This logic determines which style to apply.\n // Using 1024px as the breakpoint to switch between floating and inline.\n const minWidthNeeded = 1280;\n this.shouldBeInline = window.innerWidth < minWidthNeeded;\n }\n\n private handleSaveClick = async () => {\n if (!this.formApi || this.isSaving) {\n return;\n }\n if (typeof this.handleSave !== 'function') {\n return;\n }\n const values = this.formApi.getState().values;\n try {\n await this.handleSave(values);\n this.formApi.reset(values);\n } catch (error) {\n console.error('The onSave handler threw an error. The form will remain dirty.', error);\n }\n };\n\n render() {\n if (!this.isVisible && !this.showSavedMessage) {\n return null;\n }\n\n // Dynamically set the class based on screen size.\n // This will toggle between your .floating-save-button and .inline-save-button styles.\n const containerClass = this.shouldBeInline ? 'inline-save-button' : 'floating-save-button';\n const isInlineMode = this.shouldBeInline;\n\n return (\n <div class={`${containerClass} ${this.isSaving ? 'saving' : ''} ${this.showSavedMessage ? 'saved' : ''}`}>\n {this.isSaving ? (\n <div class=\"saving-state\">\n <unity-spinner size=\"small\" />\n {!isInlineMode && <span>Saving...</span>}\n </div>\n ) : this.isVisible ? (\n <udp-icon-button\n icon={Save}\n onClick={this.handleSaveClick}\n tooltip={'Save Changes'}\n variant=\"contained\"\n color={isInlineMode ? 'inherit' : 'primary'}\n iconColor={isInlineMode ? 'primary' : null}\n size={isInlineMode ? 'small' : 'medium'}\n >\n {isInlineMode ? '' : 'Save Changes'}\n </udp-icon-button>\n ) : (\n <div class=\"saved-state\">\n <span>Saved</span>\n </div>\n )}\n\n {this.saveErrorMessage && <div class=\"save-error-tooltip\">{this.saveErrorMessage}</div>}\n </div>\n );\n }\n}\n"],"names":["h","Host","isFileReference","parseFileReference","downloadFileFromUdpDriveFile","isUdpDriveFile","createFileFromString","isFile","createForm","debounce","UdpFormsFieldTypeEnum","fontOverrideMapping","overrideFont","UdpFormsPageIdEnum","getIconFromName","Save"],"mappings":"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"}
1
+ {"version":3,"file":"image-upload.signature-input.stencil-form.tally-display.udp-question.udp-question-comment.udp-save-draft-button.entry.cjs.js","sources":["src/components/my-component/UI/inputs/image-upload/image-upload.css?tag=image-upload&encapsulation=shadow","src/components/my-component/UI/inputs/image-upload/image-upload.tsx","src/components/my-component/UI/inputs/signature-input/signature-input.css?tag=signature-input&encapsulation=shadow","src/components/my-component/UI/inputs/signature-input/signature-input.tsx","src/components/my-component/UI/forms/form/stencil-form.tsx","src/components/my-component/UI/inputs/tally/tally.css?tag=tally-display&encapsulation=shadow","src/components/my-component/UI/inputs/tally/tally.tsx","src/components/my-component/UI/forms/form/useFormApi.ts","src/components/my-component/UI/forms/udp-forms/udp-question/udp-question.css?tag=udp-question&encapsulation=shadow","src/components/my-component/UI/forms/udp-forms/udp-question/udp-question.tsx","src/components/my-component/UI/forms/udp-forms/udp-question/udp-question-comment/udp-question-comment.css?tag=udp-question-comment&encapsulation=shadow","src/components/my-component/UI/forms/udp-forms/udp-question/udp-question-comment/udp-question-comment.tsx","src/components/my-component/UI/forms/udp-forms/udp-forms-renderer/udp-save-draft-button/udp-save-draft-button.css?tag=udp-save-draft-button&encapsulation=shadow","src/components/my-component/UI/forms/udp-forms/udp-forms-renderer/udp-save-draft-button/udp-save-draft-button.tsx"],"sourcesContent":[":host {\n display: block;\n}\n","import { Component, h, Host, Prop, Event, EventEmitter } from '@stencil/core';\nimport { UdpDriveFile } from '../../../../../global/types';\n\n/**\n * A specialized image upload component that wraps the file-upload component\n * with image-specific functionality including image preview, rendering, and validation.\n *\n * This component automatically restricts file types to common image formats\n * and provides image preview functionality.\n *\n * @example\n * ```tsx\n * // Basic image upload\n * <image-upload\n * allowMultiple={true}\n * onChange={(e) => console.log('Images:', e.detail.files)}\n * />\n *\n * // With existing images and preview\n * <image-upload\n * initialValue={existingImages}\n * renderImages={true}\n * onChange={handleImageChange}\n * />\n * ```\n */\n@Component({\n tag: 'image-upload',\n styleUrl: 'image-upload.css',\n shadow: true,\n})\nexport class ImageUpload {\n\n\n /**\n * Array of allowed image MIME types. Defaults to common image formats.\n * Overrides the default image MIME types if specified.\n * Example: ['image/jpeg', 'image/png', 'image/gif']\n */\n @Prop() allowedMimeTypes: Array<string> = ['image/jpeg', 'image/png', 'image/gif', 'image/svg+xml', 'image/webp'];\n\n /**\n * Whether the component should take the full width of its container.\n */\n @Prop() fullWidth: boolean = false;\n\n /**\n * Whether image selection is required.\n */\n @Prop() required: boolean;\n\n /**\n * Error message to display.\n */\n @Prop() error: string;\n\n /**\n * Message for the drag-and-drop area.\n */\n @Prop() dragAndDropMessage: string = 'Drag and drop your images here';\n\n /**\n * Text for the browse files button.\n */\n @Prop() browseFileMessage: string = 'Browse Images';\n\n /**\n * Whether to hide the drag-and-drop area.\n */\n @Prop() hideDragAndDrop: boolean = false;\n\n /**\n * Whether to hide the browse files button.\n */\n @Prop() hideButton: boolean = false;\n\n /**\n * Unique identifier for the component.\n */\n @Prop() id: string;\n\n /**\n * Name attribute for the component.\n */\n @Prop() name: string;\n\n /**\n * Label for the component.\n */\n @Prop() label: string;\n\n /**\n * Whether the component is disabled.\n */\n @Prop() disabled: boolean = false;\n\n /**\n * Whether the component is in a read-only state.\n */\n @Prop() readonly: boolean = false;\n\n /**\n * Initial value for the component (UdpDriveFile, File, or string).\n */\n @Prop() initialValue: UdpDriveFile | UdpDriveFile[] | File | File[] | string;\n\n /**\n * Emitted when the selected images change.\n */\n @Event() change: EventEmitter<{ value: string; files: File[] }>;\n\n private handleFileChange = (event: CustomEvent) => {\n // Prevent the event from bubbling up further, as we are re-emitting it.\n event.stopPropagation();\n this.change.emit(event.detail);\n };\n\n render() {\n return (\n <Host>\n <file-upload\n allowMultiple={false}\n allowedMimeTypes={this.allowedMimeTypes}\n fullWidth={this.fullWidth}\n required={this.required}\n error={this.error}\n dragAndDropMessage={this.dragAndDropMessage}\n browseFileMessage={this.browseFileMessage}\n hideDragAndDrop={this.hideDragAndDrop}\n hideButton={this.hideButton}\n id={this.id}\n name={this.name}\n label={this.label}\n disabled={this.disabled}\n readonly={this.readonly}\n initialValue={this.initialValue}\n renderImage={true}\n onChange={this.handleFileChange}\n ></file-upload>\n </Host>\n );\n }\n}\n","@import '../inputs.css';\n\n/* Size variants for canvas sizing */\n:host(.udp-input--size-small) .signature-canvas {\n height: 150px;\n}\n\n:host(.udp-input--size-normal) .signature-canvas {\n height: 200px;\n}\n\n:host(.udp-input--size-large) .signature-canvas {\n height: 250px;\n}\n\n/* Size variants for clear button */\n:host(.udp-input--size-small) .clear-button {\n padding: var(--spacing-01) var(--spacing-02);\n font-size: var(--caption-font-size, 0.875rem);\n top: var(--spacing-02);\n right: var(--spacing-02);\n}\n\n:host(.udp-input--size-normal) .clear-button {\n padding: var(--spacing-02) var(--spacing-03);\n font-size: var(--body-font-size);\n top: var(--spacing-02);\n right: var(--spacing-02);\n}\n\n:host(.udp-input--size-large) .clear-button {\n padding: var(--spacing-03) var(--spacing-04);\n font-size: var(--body-font-size);\n top: var(--spacing-03);\n right: var(--spacing-03);\n}\n\n.signature-pad-container {\n position: relative;\n border: 1px solid var(--udp-mid-gray-color);\n border-radius: 4px;\n background-color: var(--udp-light-gray-color);\n}\n\n.signature-canvas {\n display: block;\n width: 100%;\n height: 200px; /* Default height, overridden by density variants */\n}\n\n.signature-pad-container.readonly {\n background-color: var(--udp-disabled-gray-color);\n}\n\n.signature-canvas.readonly {\n cursor: not-allowed;\n}\n\n.clear-button {\n position: absolute;\n top: var(--spacing-02); /* Default, overridden by density variants */\n right: var(--spacing-02); /* Default, overridden by density variants */\n background-color: var(--udp-light-gray-color);\n border: 1px solid var(--udp-mid-gray-color);\n color: var(--udp-primary-color);\n cursor: pointer;\n border-radius: 4px;\n padding: var(--spacing-02) var(--spacing-03); /* Default, overridden by density variants */\n}\n\n.clear-button:hover {\n background-color: var(--udp-mid-gray-color);\n}\n\n.clear-button:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n}\n","import { Component, Prop, h, State, Watch, Event, EventEmitter, Element, Host } from '@stencil/core';\nimport type SignaturePad from 'signature_pad';\nimport { UdpDriveFile } from '../../../../../global/types';\nimport { InputSize, InputMargin } from '../input-types';\nimport {\n isUdpDriveFile,\n isFileReference,\n parseFileReference,\n downloadFileFromUdpDriveFile,\n createFileFromString,\n isFile,\n} from '../file-upload/udp-drive-utils';\n\n@Component({\n tag: 'signature-input',\n styleUrl: 'signature-input.css',\n shadow: true,\n})\nexport class SignatureInput {\n @Element() el: HTMLElement;\n\n /**\n * Label for the input field.\n */\n @Prop() label: string;\n\n /**\n * Unique identifier for the input.\n */\n @Prop() id: string;\n\n /**\n * Whether the field is required.\n */\n @Prop() required: boolean;\n\n /**\n * Whether to save location and timestamp data in the submission.\n */\n @Prop() includeLocation: boolean = false;\n\n /**\n * Whether the field is disabled.\n */\n @Prop() disabled: boolean = false;\n\n /**\n * Whether the field is read-only.\n */\n @Prop() readonly: boolean = false;\n\n /**\n * Error message to display.\n */\n @Prop() error: string;\n\n /**\n * Size variant for the signature input.\n * - 'small': Compact signature area\n * - 'normal': Standard signature area (default)\n * - 'large': Generous signature area\n */\n @Prop() size: InputSize = 'normal';\n\n /**\n * Margin variant for the input spacing.\n * - 'none': No margin\n * - 'dense': Minimal margin spacing\n * - 'normal': Standard margin spacing (default)\n */\n @Prop() margin: InputMargin = 'normal';\n\n /**\n * The current value of the signature, can be a File or UdpDriveFile.\n */\n @Prop({ mutable: true }) value: File | UdpDriveFile;\n\n /**\n * The initial value, used if `value` is not provided.\n */\n @Prop() initialValue: File | UdpDriveFile | string;\n\n /**\n * Emitted when the signature changes.\n */\n @Event() change: EventEmitter<File | null>;\n @Event() metadataEmit: EventEmitter<{ key: string; value: any } | null>;\n\n @State() private internalError: string;\n @State() private signaturePad: SignaturePad;\n @State() private cachedLocation: GeolocationPosition | null = null;\n\n private canvasEl: HTMLCanvasElement;\n private SignaturePadLib: typeof SignaturePad;\n\n private lastCanvasRect: DOMRect;\n private resizeTimeout: any;\n\n\n @Watch('error')\n onErrorChange(newValue: string) {\n this.internalError = newValue;\n }\n\n @Watch('value')\n async onValueChange(newValue: File | UdpDriveFile) {\n await this.loadSignaturePad();\n if (this.signaturePad) {\n this.signaturePad.clear();\n if (newValue) {\n this.loadSignature(newValue);\n }\n }\n }\n\n @Watch('initialValue')\n async onInitialValueChange(newValue: any) {\n if (!newValue) {\n return;\n }\n\n try {\n const value = Array.isArray(newValue) ? newValue[0] : newValue;\n if (!value) return;\n\n let loadedFile: File | null = null;\n\n // Case 1: The value is a special reference string (e.g., \"name|udp:id\" or \"name|b64:data\")\n if (typeof value === 'string' && isFileReference(value)) {\n const parsedFile = await parseFileReference(value);\n\n if (parsedFile) {\n // If it was a UDP reference, the parsed file is a placeholder. We need to download the content.\n if ((parsedFile as any).driveFileId) {\n const udpInfo: Partial<UdpDriveFile> = {\n name: parsedFile.name,\n driveFileId: (parsedFile as any).driveFileId,\n extension: parsedFile.name.split('.').pop() || '',\n tenantId: null, // Dummy value, assuming not needed for download\n productId: 0, // Dummy value\n path: '', // Dummy value\n };\n loadedFile = await downloadFileFromUdpDriveFile(udpInfo);\n } else {\n // If it was a base64 reference, the file content is already loaded.\n loadedFile = parsedFile;\n }\n }\n }\n // Case 2: The value is a UdpDriveFile object\n else if (isUdpDriveFile(value)) {\n loadedFile = await downloadFileFromUdpDriveFile(value);\n }\n // Case 3: The value is a standard URL or data-uri string\n else if (typeof value === 'string') {\n loadedFile = await createFileFromString(value, 'initial_signature.png');\n }\n // Case 4: The value is already a File object\n else if (isFile(value)) {\n loadedFile = value;\n }\n\n // If a file was successfully prepared, update the component\n if (loadedFile) {\n this.value = loadedFile;\n this.resizeCanvasForDPR();\n this.initializeSignaturePad();\n } else {\n console.warn('Initial value could not be processed into a valid file:', value);\n }\n } catch (err) {\n console.error('Failed to process initial value for signature pad:', err);\n }\n }\n\n async componentWillLoad() {\n this.internalError = this.error;\n await this.loadSignaturePad();\n\n // Prewarm location if enabled\n if (this.includeLocation) {\n navigator.geolocation.getCurrentPosition(\n (coords) => {\n this.cachedLocation = coords;\n },\n (err) => {\n console.warn(\"Prewarm geolocation error:\", err);\n this.cachedLocation = null;\n },\n { enableHighAccuracy: true, timeout: 30000, maximumAge: 0 }\n );\n }\n }\n\n async componentDidLoad() {\n let file = this.initialValue;\n if (file) {\n if(Array.isArray(file)) {\n file = file[0]; // Handle case where initialValue is an array\n }\n if (isUdpDriveFile(this.initialValue)) {\n // Try to fetch the file from UdpDriveFile\n console.log('Loading signature from UdpDriveFile:', this.initialValue);\n try {\n const file = await downloadFileFromUdpDriveFile(this.initialValue as UdpDriveFile);\n this.value = file;\n this.readonly = false; // Try editable first\n } catch (err) {\n console.error('Failed to fetch UdpDriveFile for signature:', err);\n this.value = this.initialValue;\n this.readonly = true; // Fallback to readonly if not editable\n }\n } else {\n this.value = await this.urlToFile(this.initialValue as string, 'initial_signature.png');\n }\n }\n this.resizeCanvasForDPR();\n this.initializeSignaturePad();\n this.lastCanvasRect = this.canvasEl.getBoundingClientRect();\n window.addEventListener('resize', this.handleResize);\n }\n\n disconnectedCallback() {\n window.removeEventListener('resize', this.handleResize);\n if (this.resizeTimeout) clearTimeout(this.resizeTimeout);\n }\n\n private handleResize = () => {\n if (this.resizeTimeout) clearTimeout(this.resizeTimeout);\n this.resizeTimeout = setTimeout(() => {\n const rect = this.canvasEl.getBoundingClientRect();\n if (!this.lastCanvasRect || rect.width !== this.lastCanvasRect.width || rect.height !== this.lastCanvasRect.height) {\n // Save current signature as dataURL\n let dataURL = this.signaturePad && !this.signaturePad.isEmpty() ? this.signaturePad.toDataURL() : null;\n this.resizeCanvasForDPR();\n this.initializeSignaturePad();\n this.lastCanvasRect = rect;\n // Restore signature if it existed\n if (dataURL && this.signaturePad) {\n this.signaturePad.fromDataURL(dataURL);\n }\n }\n }, 200);\n }\n\n private resizeCanvasForDPR() {\n if (!this.canvasEl) return;\n const ratio = window.devicePixelRatio || 1;\n // Get the CSS size\n const rect = this.canvasEl.getBoundingClientRect();\n this.canvasEl.width = rect.width * ratio;\n this.canvasEl.height = rect.height * ratio;\n this.canvasEl.getContext('2d').scale(ratio, ratio);\n }\n\n private async loadSignaturePad() {\n if (!this.SignaturePadLib) {\n try {\n const module = await import('signature_pad');\n this.SignaturePadLib = module.default;\n } catch (e) {\n console.error('Failed to load signature_pad library', e);\n }\n }\n }\n\n private initializeSignaturePad() {\n this.resizeCanvasForDPR();\n if (this.SignaturePadLib && this.canvasEl) {\n this.signaturePad = new this.SignaturePadLib(this.canvasEl);\n this.signaturePad.addEventListener(\"endStroke\", this.handleSignatureEnd);\n this.handleStateChange();\n if (this.value) {\n this.loadSignature(this.value);\n }\n }\n }\n\n @Watch('disabled')\n @Watch('readonly')\n handleStateChange() {\n if (this.signaturePad) {\n if (this.disabled || this.readonly) {\n this.signaturePad.off();\n } else {\n this.signaturePad.on();\n }\n }\n }\n\n\n private handleSignatureEnd = async () => {\n if (this.signaturePad.isEmpty()) {\n this.value = null;\n this.change.emit(null);\n this.metadataEmit.emit({ key: 'signature.latitude', value: null });\n this.metadataEmit.emit({ key: 'signature.longitude', value: null });\n this.metadataEmit.emit({ key: 'signature.timestamp', value: null });\n } else {\n const dataURL = this.signaturePad.toDataURL();\n const signatureFile = await this.urlToFile(dataURL, 'signature.png');\n this.value = signatureFile;\n this.change.emit(signatureFile);\n\n // Timestamp always emitted\n this.metadataEmit.emit({\n key: 'signature.timestamp',\n value: new Date().toISOString(),\n });\n\n // Location handling\n if (this.includeLocation) {\n try {\n let coords = this.cachedLocation;\n\n if (!coords) {\n // Fallback if prewarm failed\n coords = await new Promise<GeolocationPosition>((resolve, reject) => {\n navigator.geolocation.getCurrentPosition(resolve, reject, {\n enableHighAccuracy: true,\n timeout: 30000,\n maximumAge: 0,\n });\n });\n }\n\n if (coords) {\n this.metadataEmit.emit({ key: 'signature.latitude', value: coords.coords.latitude });\n this.metadataEmit.emit({ key: 'signature.longitude', value: coords.coords.longitude });\n } else {\n this.metadataEmit.emit({ key: 'signature.latitude', value: null });\n this.metadataEmit.emit({ key: 'signature.longitude', value: null });\n }\n\n } catch (err) {\n console.warn(\"Geolocation error:\", err);\n this.metadataEmit.emit({ key: 'signature.latitude', value: null });\n this.metadataEmit.emit({ key: 'signature.longitude', value: null });\n }\n }\n }\n };\n\n\n private async loadSignature(signatureValue: File | UdpDriveFile | string) {\n let imageUrl: string;\n if (typeof signatureValue === 'string') {\n imageUrl = signatureValue;\n } else if (isUdpDriveFile(signatureValue)) {\n try {\n const file = await downloadFileFromUdpDriveFile(signatureValue as UdpDriveFile);\n imageUrl = URL.createObjectURL(file);\n } catch (error) {\n console.error('Error loading signature image from UdpDriveFile:', error);\n return;\n }\n } else if (signatureValue instanceof File) {\n imageUrl = URL.createObjectURL(signatureValue);\n }\n\n if (imageUrl && this.signaturePad) {\n this.signaturePad.fromDataURL(imageUrl, {\n ratio: window.devicePixelRatio,\n width: this.canvasEl.width,\n height: this.canvasEl.height,\n });\n }\n }\n\n private async urlToFile(url: string, filename: string): Promise<File> {\n const res = await fetch(url);\n const blob = await res.blob();\n return new File([blob], filename, { type: blob.type });\n }\n\n private clearSignature = () => {\n if (this.signaturePad) {\n this.signaturePad.clear();\n this.handleSignatureEnd(); // to emit the change\n }\n };\n\n render() {\n const isError = !!this.internalError;\n const containerClasses = {\n 'signature-pad-container': true,\n 'readonly': this.readonly,\n 'disabled': this.disabled,\n };\n\n return (\n <Host\n class={{\n 'udp-input': true,\n 'udp-input--error': isError,\n 'udp-input--disabled': this.disabled,\n 'udp-input--required': this.required,\n 'udp-input--readonly': this.readonly,\n [`udp-input--size-${this.size}`]: true,\n [`udp-input--margin-${this.margin}`]: true,\n }}\n >\n <div class=\"bx--form-item\">\n {this.label && (\n <unity-typography variant=\"caption-text\">\n <label htmlFor={this.id} class=\"bx--label\">\n {this.label}\n {this.required && '*'}\n </label>\n </unity-typography>\n )}\n <div class={containerClasses}>\n <canvas\n ref={el => (this.canvasEl = el as HTMLCanvasElement)}\n class={{ 'signature-canvas': true, 'readonly': this.readonly || this.disabled }}\n id={this.id}\n ></canvas>\n {!this.readonly && !this.disabled && (\n <button\n type=\"button\"\n class=\"clear-button\"\n onClick={this.clearSignature}\n disabled={this.disabled}\n >\n Clear\n </button>\n )}\n </div>\n {isError && (\n <div class=\"error-message\">\n <unity-typography variant=\"caption-text\" color=\"error\">{this.internalError}</unity-typography>\n </div>\n )}\n </div>\n </Host>\n );\n }\n}\n\n","import { Component, h, Prop, Event as StencilEvent, EventEmitter, State, Element, Method } from '@stencil/core';\nimport { createForm, FormApi } from 'final-form';\nimport debounce from 'lodash.debounce';\n\n@Component({\n tag: 'stencil-form',\n shadow: true,\n})\nexport class StencilForm {\n @Element() el: HTMLElement;\n @Prop() handleSubmit: (values: Object) => void;\n @Prop() initialValues: Object;\n @Prop() handleValidate: (values: Object, errors: Object) => Object;\n @Prop() validateOnBlur: boolean = true;\n @Prop() handleChange: (values: Object) => void;\n @StencilEvent() stencilFormInvalidEvent: EventEmitter<Object>;\n @StencilEvent() dirtyChange: EventEmitter<boolean>;\n\n private observer: MutationObserver;\n\n @State() api: FormApi;\n @State() registeredFields: { [key: string]: { required: boolean, ignoreDirty?: boolean } } = {};\n @State() customErrors: { [key: string]: string } = {};\n\n constructor() {\n this.submitWithValidation = this.submitWithValidation.bind(this);\n this.defaultValidation = this.defaultValidation.bind(this);\n this.submit = this.submit.bind(this);\n this.onFormChange = this.onFormChange.bind(this);\n }\n\n private connectField(field: HTMLStencilFieldElement) {\n if ((field as any).__connectedToForm) return;\n\n field.setFormApi({\n api: this.api,\n registeredFields: this.registeredFields,\n customErrors: this.customErrors,\n });\n\n (field as any).__connectedToForm = true;\n }\n\n /**\n * Asynchronously and recursively traverses a node and all of its light DOM\n * and shadow DOM descendants, connecting any stencil-fields it finds.\n */\n private async processNodeRecursively(node: Node) {\n // 1. Skip anything that isn't an element\n if (node.nodeType !== Node.ELEMENT_NODE) {\n return;\n }\n const element = node as Element;\n\n // 2. If the element is a custom component, wait for it to be defined.\n // This ensures its shadowRoot is available if it has one.\n if (element.localName.includes('-')) {\n await customElements.whenDefined(element.localName);\n }\n\n // 3. Process the element itself\n if (element.matches('stencil-field')) {\n this.connectField(element as HTMLStencilFieldElement);\n }\n\n // 4. Connect submit buttons\n this.connectSubmitButtons(element);\n\n // 5. If the element has a shadowRoot, recursively process its children\n if (element.shadowRoot) {\n for (const child of Array.from(element.shadowRoot.childNodes)) {\n await this.processNodeRecursively(child);\n }\n }\n\n // 6. Recursively process all light DOM children\n for (const child of Array.from(element.childNodes)) {\n await this.processNodeRecursively(child);\n }\n }\n\n /**\n * The event handler for slot changes. It kicks off the recursive processing.\n */\n private handleSlotChange = () => {\n const slot = this.el.shadowRoot.querySelector('slot');\n if (!slot) return;\n\n // Process every node assigned to the slot\n slot.assignedNodes().forEach(node => this.processNodeRecursively(node));\n };\n\n /**\n * Connect submit buttons in slotted content to this form\n */\n private connectSubmitButtons(node: Node) {\n if (node.nodeType !== Node.ELEMENT_NODE) {\n return;\n }\n const element = node as Element;\n\n // Check if the element itself is a submit button\n if (element.matches('input[type=\"submit\"], button[type=\"submit\"]')) {\n const htmlElement = element as HTMLElement;\n // Avoid duplicate event listeners\n if (!htmlElement.dataset.stencilFormConnected) {\n htmlElement.dataset.stencilFormConnected = 'true';\n element.addEventListener('click', e => {\n e.preventDefault();\n this.submit(e);\n });\n }\n }\n\n // Find submit buttons in descendants and connect them\n const submitButtons = element.querySelectorAll('input[type=\"submit\"], button[type=\"submit\"]');\n submitButtons.forEach((button: Element) => {\n const htmlButton = button as HTMLElement;\n // Avoid duplicate event listeners\n if (!htmlButton.dataset.stencilFormConnected) {\n htmlButton.dataset.stencilFormConnected = 'true';\n button.addEventListener('click', e => {\n e.preventDefault();\n this.submit(e);\n });\n }\n });\n }\n\n componentWillLoad() {\n this.api = createForm({\n onSubmit: this.submitWithValidation,\n initialValues: this.initialValues,\n validate: this.defaultValidation,\n validateOnBlur: this.validateOnBlur,\n });\n\n if (this.handleChange) {\n this.api.subscribe(this.onFormChange, { values: true });\n }\n\n // Subscription for the dirty state change event, but consider ignoreDirty flags and ignore any fields configured with ignoreDirty=true\n this.api.subscribe(\n formState => {\n const { dirtyFields } = formState;\n const registered = this.registeredFields;\n\n // Determine if any field that is *not ignored* is dirty\n const hasDirtyFields = Object.keys(dirtyFields || {}).some(\n name => dirtyFields[name] && !registered[name]?.ignoreDirty\n );\n\n this.dirtyChange.emit(hasDirtyFields);\n },\n { dirtyFields: true },\n );\n }\n\n componentDidLoad() {\n const slot = this.el.shadowRoot.querySelector('slot');\n\n // Create the observer first\n this.observer = new MutationObserver(mutations => {\n for (const mutation of mutations) {\n mutation.addedNodes.forEach(node => {\n this.processNodeRecursively(node);\n });\n }\n });\n\n // Function to handle slot changes or initial processing\n const observeAssignedNodes = () => {\n const assignedNodes = slot?.assignedNodes({ flatten: true }) || [];\n\n assignedNodes.forEach(node => {\n if (node.nodeType === Node.ELEMENT_NODE) {\n this.observer.observe(node, { childList: true, subtree: true });\n this.processNodeRecursively(node); // Process immediately in case nodes are already present\n }\n });\n };\n\n if (slot) {\n observeAssignedNodes(); // Initial\n slot.addEventListener('slotchange', observeAssignedNodes); // Handle dynamic slot content\n }\n\n // If you're also rendering some fields directly in this.el (not through slot), you can keep this:\n this.observer.observe(this.el, { childList: true, subtree: true });\n\n this.el.dispatchEvent(new CustomEvent('stencilFormReady', { bubbles: true, composed: true }));\n }\n\n disconnectedCallback() {\n this.api = null;\n this.registeredFields = {};\n\n const slot = this.el.shadowRoot?.querySelector('slot');\n if (slot) {\n slot.removeEventListener('slotchange', this.handleSlotChange);\n }\n }\n\n onFormChange(formState: any): void {\n if (this.handleChange && formState.values) {\n this.handleChange(formState.values);\n }\n }\n\n async submitWithValidation(values: { [key: string]: any }): Promise<void> {\n const errors = this.defaultValidation(values);\n if (Object.keys(errors).length === 0) {\n this.handleSubmit(values);\n } else {\n this.stencilFormInvalidEvent.emit(errors);\n }\n }\n\n defaultValidation(values: Object): Object {\n const { registeredFields, customErrors } = this;\n const errors = {};\n\n // Helper to get value from nested path (dot + bracket notation)\n const getByPath = (obj, path) =>\n path\n .replace(/\\[(\\d+)\\]/g, '.$1') // convert [0] to .0\n .split('.')\n .reduce((o, k) => (o != null ? o[k] : undefined), obj);\n\n // Check for required field validation\n Object.keys(registeredFields).forEach(field => {\n const meta = registeredFields[field];\n if (meta?.ignoreDirty) return; // skip ignored fields entirely\n\n const valRef = getByPath(values, field);\n\n // null or undefined, empty string, or false/'false' are considered \"empty\" values\n if (\n meta.required &&\n (valRef == null ||\n (typeof valRef === 'string' && valRef.trim() === '') ||\n valRef === false ||\n valRef === 'false')\n ) {\n errors[field] = 'This field is required';\n }\n });\n\n // Merge in any custom errors from stencil-field components\n if (customErrors) {\n Object.keys(customErrors).forEach(field => {\n if (customErrors[field]) {\n errors[field] = customErrors[field];\n }\n });\n }\n\n // Merge with user-provided custom validation\n if (this?.handleValidate) {\n const customErrorsFromHandler = this.handleValidate(values, errors);\n return { ...errors, ...customErrorsFromHandler };\n }\n\n return errors;\n }\n\n @Method()\n async getApi(): Promise<FormApi> {\n if (!this.api) {\n console.error('❌ Form API not initialized yet.');\n return null;\n }\n return this.api;\n }\n\n submit(e) {\n e?.preventDefault?.();\n const values = this.api.getState().values;\n const errors = this.defaultValidation(values);\n\n const submitFunction = () => {\n if (Object.keys(errors).length) {\n this.stencilFormInvalidEvent.emit(errors);\n return;\n }\n this.api?.submit();\n };\n debounce(submitFunction, 1000, { leading: true, trailing: false })();\n }\n\n render() {\n return (\n <form>\n <slot />\n </form>\n );\n }\n}\n",":host {\n display: block;\n width: 100%;\n}\n\n.tally-container {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-02, 8px);\n}\n\n.tally-label {\n font-weight: 600;\n margin-bottom: var(--spacing-02, 8px);\n}\n\n.tally-loading {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: var(--spacing-04, 16px);\n color: var(--text-secondary, #6b7280);\n}\n\n.tally-content {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-03, 12px);\n}\n\n.tally-stats {\n display: flex;\n gap: var(--spacing-04, 16px);\n flex-wrap: wrap;\n}\n\n.tally-item {\n display: flex;\n flex-direction: column;\n align-items: center;\n padding: var(--spacing-03, 12px) var(--spacing-04, 16px);\n border-radius: var(--border-radius-01, 4px);\n border: 1px solid var(--border-subtle, #e5e7eb);\n background-color: var(--layer-01, #ffffff);\n min-width: 80px;\n flex: 1;\n max-width: 120px;\n}\n\n.tally-item.tally-yes {\n border-color: var(--support-success, #42be65);\n background-color: var(--support-success-hover, #f6f8ff);\n}\n\n.tally-item.tally-no {\n border-color: var(--support-error, #da1e28);\n background-color: var(--support-error-hover, #fff1f1);\n}\n\n.tally-item.tally-unanswered {\n border-color: var(--support-warning, #f1c21b);\n background-color: var(--support-warning-hover, #fcf4d6);\n}\n\n.tally-count {\n font-weight: 700;\n line-height: 1.2;\n margin-bottom: var(--spacing-01, 4px);\n}\n\n.tally-yes .tally-count {\n color: var(--support-success, #42be65);\n}\n\n.tally-no .tally-count {\n color: var(--support-error, #da1e28);\n}\n\n.tally-unanswered .tally-count {\n color: var(--support-warning, #f1c21b);\n}\n\n.tally-item .tally-label {\n margin: 0;\n font-weight: 500;\n text-transform: uppercase;\n font-size: 0.75rem;\n letter-spacing: 0.02em;\n}\n\n.tally-summary {\n padding: var(--spacing-02, 8px) 0;\n border-top: 1px solid var(--border-subtle, #e5e7eb);\n text-align: center;\n}\n\n.error-message {\n margin-top: var(--spacing-02, 8px);\n padding: var(--spacing-02, 8px);\n border-radius: var(--border-radius-01, 4px);\n background-color: var(--support-error-hover, #fff1f1);\n border: 1px solid var(--support-error, #da1e28);\n}\n\n/* Size variants */\n:host(.udp-input--size-small) .tally-item {\n padding: var(--spacing-02, 8px) var(--spacing-03, 12px);\n min-width: 60px;\n max-width: 90px;\n}\n\n:host(.udp-input--size-small) .tally-count {\n font-size: 1.25rem;\n}\n\n:host(.udp-input--size-large) .tally-item {\n padding: var(--spacing-04, 16px) var(--spacing-05, 20px);\n min-width: 100px;\n max-width: 150px;\n}\n\n:host(.udp-input--size-large) .tally-count {\n font-size: 2rem;\n}\n\n/* Margin variants */\n:host(.udp-input--margin-none) .tally-container {\n gap: 0;\n}\n\n:host(.udp-input--margin-dense) .tally-container {\n gap: var(--spacing-01, 4px);\n}\n\n:host(.udp-input--margin-comfortable) .tally-container {\n gap: var(--spacing-04, 16px);\n}\n\n/* Disabled state */\n:host(.udp-input--disabled) .tally-item {\n opacity: 0.5;\n pointer-events: none;\n}\n\n/* Read-only state */\n:host(.udp-input--readonly) .tally-item {\n background-color: var(--field-01, #f4f4f4);\n}\n\n/* Responsive design */\n@media (max-width: 480px) {\n .tally-stats {\n flex-direction: column;\n }\n \n .tally-item {\n max-width: none;\n flex: none;\n }\n}\n","import { Component, Prop, h, Host } from '@stencil/core';\nimport { InputSize, InputMargin } from '../input-types';\n\n/**\n * A tally component that displays counts of Yes/No responses.\n * This is a pure display component that receives tally data as props.\n */\n@Component({\n tag: 'tally-display',\n styleUrl: 'tally.css',\n shadow: true,\n})\nexport class TallyDisplay {\n\n /**\n * Label for the tally display.\n */\n @Prop() label: string = 'Response Tally';\n\n /**\n * Unique identifier for the tally.\n */\n @Prop() id: string;\n\n /**\n * Number of Yes responses.\n */\n @Prop() yesCount: number = 0;\n\n /**\n * Number of No responses.\n */\n @Prop() noCount: number = 0;\n\n /**\n * Number of Not Applicable responses.\n */\n @Prop() naCount: number = 0;\n\n /**\n * Total number of fields being tallied.\n */\n @Prop() totalFields: number = 0;\n\n /**\n * Whether the component is disabled.\n */\n @Prop() disabled: boolean = false;\n\n /**\n * Whether the component is read-only.\n */\n @Prop() readonly: boolean = false;\n\n /**\n * Error message to display.\n */\n @Prop() error: string;\n\n /**\n * Size variant for the tally display.\n */\n @Prop() size: InputSize = 'normal';\n\n /**\n * Margin variant for the component spacing.\n */\n @Prop() margin: InputMargin = 'normal';\n\n render() {\n const isError = !!this.error;\n const answeredCount = this.yesCount + this.noCount + this.naCount;\n const unansweredCount = this.totalFields - answeredCount;\n \n return (\n <Host\n class={{\n 'udp-input': true,\n 'udp-input--error': isError,\n 'udp-input--disabled': this.disabled,\n 'udp-input--readonly': this.readonly,\n [`udp-input--size-${this.size}`]: true,\n [`udp-input--margin-${this.margin}`]: true,\n }}\n >\n <div class=\"tally-container\">\n {this.label && (\n <unity-typography variant=\"caption-text\">\n <label htmlFor={this.id} class=\"tally-label\">\n {this.label}\n </label>\n </unity-typography>\n )}\n <div class=\"tally-content\" id={this.id}>\n <div class=\"tally-stats\">\n <div class=\"tally-item tally-yes\">\n <unity-typography variant=\"h4\" class=\"tally-count\">\n {this.yesCount}\n </unity-typography>\n <unity-typography variant=\"caption-text\" class=\"tally-label\">\n Yes\n </unity-typography>\n </div>\n <div class=\"tally-item tally-no\">\n <unity-typography variant=\"h4\" class=\"tally-count\">\n {this.noCount}\n </unity-typography>\n <unity-typography variant=\"caption-text\" class=\"tally-label\">\n No\n </unity-typography>\n </div>\n <div class=\"tally-item tally-na\">\n <unity-typography variant=\"h4\" class=\"tally-count\">\n {this.naCount}\n </unity-typography>\n <unity-typography variant=\"caption-text\" class=\"tally-label\">\n Not Applicable\n </unity-typography>\n </div>\n {unansweredCount > 0 && (\n <div class=\"tally-item tally-unanswered\">\n <unity-typography variant=\"h4\" class=\"tally-count\">\n {unansweredCount}\n </unity-typography>\n <unity-typography variant=\"caption-text\" class=\"tally-label\">\n Unanswered\n </unity-typography>\n </div>\n )}\n </div>\n <div class=\"tally-summary\">\n <unity-typography variant=\"caption-text\">\n Total Questions: {this.totalFields}\n </unity-typography>\n </div>\n </div>\n {isError && (\n <div class=\"error-message\">\n <unity-typography variant=\"caption-text\" color=\"error\">\n {this.error}\n </unity-typography>\n </div>\n )}\n </div>\n </Host>\n );\n }\n}\n","/**\n * Finds the parent stencil-form and returns its Final Form API.\n * This function correctly traverses up through nested Shadow DOM boundaries.\n *\n * @param element The host element of the component calling this function.\n * @returns A promise that resolves with the FormApi instance, or null if not found.\n */\nexport async function useFormApi(element: HTMLElement): Promise<any | null> {\n let current: HTMLElement | null = element;\n let form: Element | null = null;\n\n // Walk up the DOM tree, escaping shadow roots as we go.\n while (current) {\n // Look for the form in the current scope\n const foundForm = current.closest('stencil-form');\n if (foundForm) {\n form = foundForm;\n break; // Found it!\n }\n\n // If not found, we might be in a shadow root.\n // Let's try to escape it.\n const root = current.getRootNode();\n if (root instanceof ShadowRoot) {\n current = root.host as HTMLElement;\n } else {\n // We're in the main document and didn't find it.\n break;\n }\n }\n\n if (!form) {\n return null;\n }\n\n // Check if getApi method exists\n if (typeof (form as any).getApi !== 'function') {\n return null;\n }\n\n const formApi = await (form as any).getApi();\n \n if (!formApi) {\n return null;\n }\n \n return formApi;\n}\n","\n.hidden {\n display: none;\n}\n\n.question-container {\n border-top: 1px solid rgba(0, 0, 0, 0.08); \n padding-top: 1rem; \n}\n\n.question-title-and-helper-container {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-03)\n}\n\n.question-title-and-followup-container {\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n","import { Component, ComponentInterface, Element, h, Prop, State, Watch, Event, EventEmitter } from '@stencil/core';\nimport { UdpFormQuestion, Guid } from '../utils/types';\nimport { UdpFormsFieldTypeEnum } from '../utils/enums';\nimport { FontOverrides } from '../utils/types';\nimport { fontOverrideMapping, overrideFont } from '../utils/utils';\nimport { useFormApi } from '../../form/useFormApi';\nimport { getIconFromName } from '../../../data-display/icons/iconUtils';\nimport { UdpFormsPageIdEnum } from '../utils/enums';\n\n@Component({\n tag: 'udp-question',\n styleUrl: 'udp-question.css',\n shadow: true,\n})\nexport class UdpQuestion {\n @Prop() question: UdpFormQuestion;\n @Prop() questionNumber: number;\n @Prop({ mutable: true }) value: string; // only used for Paragraph type (UdpFormsFieldTypeEnum.Paragraph)\n @Prop() disabled: boolean = false;\n @Prop() readonly: boolean = false;\n @Prop() styleOverrides: {\n helperText: FontOverrides;\n questionText: FontOverrides;\n paragraphText: FontOverrides;\n };\n @Prop() initialValues: { [name: string]: any } = {};\n @Prop() userId: Guid | null = null;\n\n @Event() launchFollowUpFormSideSheet: EventEmitter<any>;\n\n @State() private _fieldComponent: ComponentInterface;\n @State() private tallyData: {\n yesCount: number;\n noCount: number;\n naCount: number;\n totalFields: number;\n } = { yesCount: 0, noCount: 0, naCount: 0, totalFields: 0 };\n @State() private formApi: any = null;\n\n @Element() el: HTMLElement;\n\n @Watch('question')\n @Watch('questionNumber')\n @Watch('value')\n @Watch('disabled')\n @Watch('readonly')\n @Watch('styleOverrides')\n protected propChanged() {\n this.updateFieldComponent();\n }\n\n async componentWillLoad() {\n this.updateFieldComponent();\n if (this.question.fieldTypeId === UdpFormsFieldTypeEnum.Tally) {\n await this.initializeFormApiForTally();\n }\n }\n\n private async initializeFormApiForTally() {\n try {\n this.formApi = await useFormApi(this.el);\n\n if (this.formApi) {\n // Subscribe to form changes to update tally in real-time\n const unsubscribe = this.formApi.subscribe(\n () => {\n this.calculateTally();\n },\n { active: true, dirty: true, values: true },\n );\n\n // Store unsubscribe function for cleanup if needed\n (this as any).unsubscribeFormApi = unsubscribe;\n\n // Initial calculation\n this.calculateTally();\n }\n } catch (error) {\n console.error('Failed to initialize form API for tally:', error);\n }\n }\n\n private calculateTally() {\n if (!this.formApi || this.question.fieldTypeId !== UdpFormsFieldTypeEnum.Tally) {\n return;\n }\n\n try {\n const formValues = this.formApi.getState().values;\n\n const formElement = this.el.closest('stencil-form');\n if (!formElement) {\n return;\n }\n\n // Get all udp-question elements in the form\n const questionElements = formElement.querySelectorAll('udp-question');\n const yesNoFields: string[] = [];\n\n // Identify YesNo field types\n questionElements.forEach((questionEl: any) => {\n if (questionEl.question && questionEl.question.fieldTypeId === UdpFormsFieldTypeEnum.YesNo) {\n const fieldName = `${questionEl.question.questionIdentifierKey}.value`;\n if (fieldName) {\n const shouldInclude = this.shouldIncludeFieldInTally(fieldName);\n if (shouldInclude) {\n yesNoFields.push(fieldName);\n }\n }\n }\n });\n\n // Count Yes/No/NA responses\n let yesCount = 0;\n let noCount = 0;\n let naCount = 0;\n\n yesNoFields.forEach(fieldName => {\n const [sectionKey, questionKey] = fieldName.split(\".\");\n const value = formValues[sectionKey][questionKey].value;\n\n if (value === 'true' || value === true) {\n yesCount++;\n } else if (value === 'false' || value === false) {\n noCount++;\n } else if (value === 'na') {\n naCount++;\n }\n });\n\n this.tallyData = {\n yesCount,\n noCount,\n naCount,\n totalFields: yesNoFields.length,\n };\n\n // Force a re-render to update the component\n this.updateFieldComponent();\n } catch (error) {\n console.error('Error calculating tally:', error);\n }\n }\n\n private shouldIncludeFieldInTally(fieldName: string): boolean {\n const fieldProps = this.question.fieldProperties;\n\n // If includeFields is specified, only include those fields\n if (fieldProps?.includeFields && fieldProps.includeFields.length > 0) {\n return fieldProps.includeFields.includes(fieldName);\n }\n\n // If excludeFields is specified, exclude those fields\n if (fieldProps?.excludeFields && fieldProps.excludeFields.length > 0) {\n return !fieldProps.excludeFields.includes(fieldName);\n }\n\n // Include all fields by default\n return true;\n }\n\n private updateFieldComponent() {\n this._fieldComponent = this.getFieldComponent();\n }\n\n private getFieldComponent(): ComponentInterface {\n const props = {\n name: `${this.question.questionIdentifierKey}.value`,\n required: this.question.required,\n };\n\n const fieldProps = { ...this.question.fieldProperties, id: this.questionNumber, disabled: this.disabled, readonly: this.readonly };\n switch (this.question.fieldTypeId) {\n case UdpFormsFieldTypeEnum.SingleLineText:\n return (\n <stencil-field {...props}>\n <text-field {...fieldProps} />\n </stencil-field>\n );\n case UdpFormsFieldTypeEnum.MultiLineText:\n return (\n <stencil-field {...props}>\n <text-area fullWidth={true} {...fieldProps} />\n </stencil-field>\n );\n case UdpFormsFieldTypeEnum.Checkbox:\n return (\n <stencil-field {...props}>\n <selectable-list valueKey=\"value\" displayKey=\"display\" multiSelect={true} useCheckbox={true} {...fieldProps} />\n </stencil-field>\n );\n case UdpFormsFieldTypeEnum.RadioButton:\n return (\n <stencil-field {...props}>\n <selectable-list valueKey=\"value\" displayKey=\"display\" useCheckbox={true} {...fieldProps} />\n </stencil-field>\n );\n case UdpFormsFieldTypeEnum.DropdownSingleSelect:\n case UdpFormsFieldTypeEnum.DropdownMultipleSelect:\n let options: { label: string; value: string } = fieldProps?.items?.map?.(items => ({ label: items.display, value: items.value, ...fieldProps }));\n return (\n <stencil-field {...props}>\n <udp-selector options={options ?? []} multiSelect={this.question.fieldTypeId === UdpFormsFieldTypeEnum.DropdownMultipleSelect} {...fieldProps} />\n </stencil-field>\n );\n case UdpFormsFieldTypeEnum.YesNo:\n return (\n <stencil-field {...props}>\n <selectable-list\n valueKey=\"value\"\n displayKey=\"display\"\n useCheckbox={true} // Use radio buttons\n multiSelect={false}\n items={[\n { value: 'true', display: 'Yes' },\n { value: 'false', display: 'No' },\n { value: 'na', display: 'Not Applicable' },\n ]}\n {...fieldProps}\n />\n </stencil-field>\n );\n case UdpFormsFieldTypeEnum.ListMultiSelect:\n return (\n <stencil-field {...props}>\n <selectable-list valueKey=\"value\" displayKey=\"display\" multiSelect={true} {...fieldProps} />\n </stencil-field>\n );\n case UdpFormsFieldTypeEnum.DateSelector:\n return (\n <stencil-field {...props}>\n <udp-date-selector min={fieldProps?.minDate} max={fieldProps?.maxDate} {...fieldProps} />\n </stencil-field>\n );\n case UdpFormsFieldTypeEnum.TimeSelector:\n return (\n <stencil-field {...props}>\n <udp-time-selector min={fieldProps?.minTime} max={fieldProps?.maxTime} {...fieldProps} />\n </stencil-field>\n );\n case UdpFormsFieldTypeEnum.DateTimeSelector:\n return (\n <stencil-field {...props}>\n <udp-datetime-selector max={fieldProps?.maxDateTime} min={fieldProps?.minDateTime} {...fieldProps} />\n </stencil-field>\n );\n case UdpFormsFieldTypeEnum.FileUpload:\n return (\n <stencil-field {...props}>\n <file-upload fullWidth={true} allowMultiple={false} {...fieldProps} />\n </stencil-field>\n );\n case UdpFormsFieldTypeEnum.ImageUpload:\n return (\n <stencil-field {...props}>\n <image-upload fullWidth={true} {...fieldProps} />\n </stencil-field>\n );\n case UdpFormsFieldTypeEnum.Signature:\n return (\n <div>\n <stencil-field {...props} fieldIdentifierKey={`${this.question.questionIdentifierKey}`} registerMetadata={true} metadataFieldNames={['signature.latitude', 'signature.longitude', 'signature.timestamp']}>\n <signature-input {...fieldProps} value={this.value} />\n </stencil-field>\n <stencil-field required={this.question.required} name={ `${this.question.questionIdentifierKey}.metadata.signature.fullName`}>\n <text-field {...fieldProps} label={'Full Name'}/>\n </stencil-field>\n </div>\n );\n case UdpFormsFieldTypeEnum.Paragraph:\n // Wrap in stencil-field and include a hidden input so the value is part of the form submission\n return (\n <stencil-field name={this.question.name} required={false}>\n <input type=\"hidden\" name={this.question.name} value={this.value || ''} />\n {this.value ? (\n <unity-typography id={`paragraphText${this.question.name}`} variant={this.styleOverrides?.paragraphText?.variant || 'body'}>\n {this.value}\n </unity-typography>\n ) : (\n <div />\n )}\n </stencil-field>\n );\n case UdpFormsFieldTypeEnum.Number:\n return (\n <stencil-field {...props}>\n <numeric-field {...fieldProps} />\n </stencil-field>\n );\n\n case UdpFormsFieldTypeEnum.Tally:\n return (\n <tally-display\n id={this.questionNumber}\n label={this.question.questionText || 'Response Tally'}\n yesCount={this.tallyData.yesCount}\n noCount={this.tallyData.noCount}\n naCount={this.tallyData.naCount}\n totalFields={this.tallyData.totalFields}\n {...fieldProps}\n required={false}\n />\n );\n case UdpFormsFieldTypeEnum.Hidden:\n default:\n return <div />;\n }\n }\n async componentDidLoad() {\n // If form API wasn't available during componentWillLoad, try again\n if (this.question.fieldTypeId === UdpFormsFieldTypeEnum.Tally && !this.formApi) {\n await this.initializeFormApiForTally();\n }\n\n // override the fonts based on style overrides\n const variantsAndOverrides = [];\n for (const override in this.styleOverrides) {\n variantsAndOverrides.push({\n id: override + this.question.name,\n fontOverride: this.styleOverrides?.[override]?.fontFamily,\n variant: this.styleOverrides?.[override]?.variant,\n });\n }\n variantsAndOverrides.forEach(override => {\n if (!fontOverrideMapping[override?.fontOverride] || !this.el || !this.el.shadowRoot) return;\n overrideFont(this.el?.shadowRoot?.getElementById?.(override.id), fontOverrideMapping[override?.fontOverride]);\n });\n }\n render() {\n const component = this._fieldComponent;\n const titleText = `${this.question.fieldTypeId === UdpFormsFieldTypeEnum.Paragraph ? '' : `${this.questionNumber}.`} ${this.question.questionText} ${\n this.question.required && this.question.fieldTypeId !== UdpFormsFieldTypeEnum.Paragraph ? '*' : ''\n }`;\n const commentFieldProps = { disabled: this.disabled, readonly: this.readonly };\n const fieldName = `${this.question.questionIdentifierKey}.value`;\n const [sectionKey, questionKey] = fieldName.split(\".\");\n\n if (!component) return null;\n return (\n <div\n class={{\n 'hidden': this.question.fieldTypeId === UdpFormsFieldTypeEnum.Hidden,\n 'question-container': true,\n }}\n >\n <div class=\"question-title-and-helper-container\">\n <div class=\"question-title-and-followup-container\">\n {this.question.questionText && (\n <unity-typography\n id={`questionText${this.question.name}`}\n variant={this.styleOverrides?.questionText?.variant || 'h3'}\n >\n {titleText}\n </unity-typography>\n )}\n <div>\n {this.question.fieldProperties.allowFollowUpForms && (\n (() => {\n const metadata = this.initialValues[sectionKey][questionKey]?.metadata;\n const followUpId = metadata?.followUpFormSubmissionId;\n if (followUpId) {\n // Valid GUID → show arrow icon to open follow-up form\n const url = `/page/${UdpFormsPageIdEnum.FormRendererPageId}?udpf_submissionId=${followUpId}`;\n return (\n <stencil-icon-button\n icon={getIconFromName('link')}\n tooltip=\"Open Follow-Up Form\"\n onClick={() => window.open(url, '_blank')}\n />\n );\n }\n\n if (!this.readonly) {\n // No valid follow-up yet → show link icon to create one\n return (\n <stencil-icon-button\n icon={getIconFromName('document')}\n tooltip=\"Create Follow-Up Form\"\n onClick={() => {\n console.log('clicked create follow up form')\n this.launchFollowUpFormSideSheet.emit({ sectionKey, questionKey });\n }}\n />\n );\n }\n \n })()\n )}\n </div>\n </div>\n {this.question.helperText && (\n <unity-typography\n id={`helperText${this.question.name}`}\n variant={this.styleOverrides?.helperText?.variant || 'caption-text'}\n >\n {this.question.helperText}\n </unity-typography>\n )}\n </div>\n\n {component}\n\n {this.question.fieldProperties.allowFollowUpForms && (\n <div>\n <stencil-field hidden={true} name={`${this.question.questionIdentifierKey}.metadata.followUpParentFormId`}>\n <text-field />\n </stencil-field>\n <stencil-field hidden={true} name={`${this.question.questionIdentifierKey}.metadata.followUpParentFormVersion`}>\n <text-field />\n </stencil-field>\n <stencil-field hidden={true} name={`${this.question.questionIdentifierKey}.metadata.followUpParentFormSubmissionId`}>\n <text-field />\n </stencil-field>\n </div>\n )}\n\n {this.question.fieldProperties.allowComments && (\n <udp-question-comment\n question={this.question}\n readonly={this.readonly}\n commentFieldProps={commentFieldProps}\n initialValues={this.initialValues}\n userId={this.userId}\n />\n )}\n </div>\n );\n }\n}\n",".question-comment-add-comment-button {\n display: flex;\n justify-content: center;\n}\n\n.question-comment-action-container {\n display: flex;\n justify-content: end;\n}\n\n.question-comment-display {\n position: relative;\n display: flex;\n flex-direction: column;\n gap: var(--spacing-03);\n margin-bottom: var(--spacing-05);\n\n border: 1px solid var(--border-color, #ccc);\n border-radius: 6px;\n padding: var(--spacing-05) var(--spacing-04);\n}\n\n/* target just the first unity-typography inside */\n.question-comment-display > .question-comment-header {\n position: absolute;\n bottom: -0.6em; \n right: 1em;\n background: white; \n padding: 0 0.4em;\n font-size: 0.85em; \n}","import { Component, h, Prop, Event, EventEmitter } from '@stencil/core';\nimport { UdpFormQuestion, Guid } from '../../utils/types';\n\n@Component({\n tag: 'udp-question-comment',\n styleUrl: 'udp-question-comment.css',\n shadow: true,\n})\nexport class UdpQuestionComment {\n @Prop() question: UdpFormQuestion;\n @Prop() readonly: boolean = false;\n @Prop() commentFieldProps: object = {};\n @Prop() initialValues: { [name: string]: any } = {};\n @Prop() userId: Guid | null = null;\n\n private isContainsSavedComment: boolean = false;\n private isContainsDraftComment: boolean = false;\n private isCommentOwner: boolean = false;\n\n @Event({ bubbles: true, composed: true }) questionCommentAction: EventEmitter<{\n type: 'add' | 'save' | 'edit' | 'delete';\n key: string;\n }>;\n\n private emitQuestionCommentAction(type: 'add' | 'save' | 'edit' | 'delete') {\n this.questionCommentAction.emit({ type, key: this.question.questionIdentifierKey });\n }\n\n private handleCommentAdd() {\n this.emitQuestionCommentAction('add');\n }\n private handleCommentSave() {\n this.emitQuestionCommentAction('save');\n }\n private handleCommentEdit() {\n this.emitQuestionCommentAction('edit');\n }\n private handleCommentDelete() {\n this.emitQuestionCommentAction('delete');\n }\n\n componentWillRender() {\n const questionIdentifierKey = this.question.questionIdentifierKey;\n const [sectionName, questionName] = questionIdentifierKey.split('.');\n const questionObj = this.initialValues[sectionName][questionName]\n\n questionObj.draftComment\n ? (this.isContainsDraftComment = true)\n : (this.isContainsDraftComment = false);\n\n questionObj.comments.length > 0\n ? (this.isContainsSavedComment = true)\n : (this.isContainsSavedComment = false);\n\n questionObj.comments[0]?.userId == this.userId\n ? (this.isCommentOwner = true)\n : (this.isCommentOwner = false);\n }\n\n render() {\n const commentsIdentifierValueKey = `${this.question.questionIdentifierKey}.comments[0].value`;\n const commentsIdentifierDraftKey = `${this.question.questionIdentifierKey}.draftComment.value`;\n const [sectionName, questionName] = this.question.questionIdentifierKey.split('.');\n const commentObj = this.initialValues[sectionName][questionName].comments[0] || null;\n\n // read only mode\n if (this.readonly) {\n return this.isContainsSavedComment ? (\n <div class=\"question-comment-display\">\n <unity-typography variant=\"h4\" color=\"inherit\" class='question-comment-header'>\n User Comment\n </unity-typography>\n <unity-typography variant=\"body\" color=\"inherit\">\n {commentObj?.value}\n </unity-typography>\n </div>\n ) : null;\n }\n\n // everything below is in non-readOnly mode\n\n // display comment if it exists and not by the owner\n if (this.isContainsSavedComment && !this.isCommentOwner) {\n return (\n <div class=\"question-comment-display\">\n <unity-typography variant=\"h4\" color=\"inherit\" class='question-comment-header'>\n User Comment\n </unity-typography>\n <unity-typography variant=\"body\" color=\"inherit\">\n {commentObj?.value}\n </unity-typography>\n </div>\n );\n }\n\n // user is in draft mode\n if (this.isContainsDraftComment) {\n return (\n <div class=\"question-comment-draft-container\">\n <stencil-field name={commentsIdentifierDraftKey} required={true} ignoreDirty={true}>\n <text-area {...this.commentFieldProps} label=\"Comment:\" placeholder=\"Add a comment\" />\n </stencil-field>\n <div class=\"question-comment-action-container\">\n <udp-button\n variant=\"text\"\n onClick={() => {\n this.handleCommentDelete();\n }}\n startIcon={<udp-icon iconName=\"trashCan\" color=\"inherit\" />}\n >\n Delete\n </udp-button>\n <udp-button\n variant=\"text\"\n onClick={() => {\n this.handleCommentSave();\n }}\n startIcon={<udp-icon iconName=\"save\" color=\"inherit\" />}\n >\n Save\n </udp-button>\n </div>\n </div>\n );\n }\n\n // user has a saved comment\n if (this.isContainsSavedComment) {\n return (\n <div class=\"question-comment-input-container\">\n <div>\n <stencil-field name={commentsIdentifierValueKey} style={{ display: 'none' }}>\n <text-area disabled={true} />\n </stencil-field>\n <div class=\"question-comment-display\">\n <unity-typography variant=\"h4\" color=\"inherit\" class='question-comment-header'>\n {`Comment by: ${commentObj?.userDisplayName}`}\n </unity-typography>\n <unity-typography variant=\"body\" color=\"inherit\">\n {`${commentObj?.value}`}\n </unity-typography>\n </div>\n <div class=\"question-comment-action-container\">\n <udp-button\n variant=\"text\"\n onClick={() => {\n this.handleCommentEdit();\n }}\n startIcon={<udp-icon iconName=\"edit\" color=\"inherit\" />}\n >\n Edit\n </udp-button>\n </div>\n </div>\n </div>\n );\n }\n\n // no comment saved in draft or saved. allow add comment\n return (\n <div class=\"question-comment-add-comment-button\">\n <udp-button\n variant=\"text\"\n onClick={() => {\n this.handleCommentAdd();\n }}\n startIcon={<udp-icon iconName=\"add\" color=\"inherit\" />}\n >\n Add a Comment\n </udp-button>\n </div>\n );\n }\n}\n","/* Single save button that moves between header and floating positions */\n\n/* Floating mode - positioned fixed in top-right, accounting for app bar */\n.floating-save-button {\n position: fixed;\n top: 5rem; /* Increased from 2rem to account for app bar height */\n right: 2rem;\n z-index: 1000;\n animation: slideInDown 0.3s ease-out;\n}\n\n/* Inline mode - positioned relative for header placement */\n.inline-save-button {\n position: relative;\n display: inline-flex;\n align-items: center;\n margin-left: auto; /* Push to right side of header */\n}\n\n/* Common styles for both modes */\n.floating-save-button.saving,\n.inline-save-button.saving {\n pointer-events: none;\n}\n\n/* Saving state styling */\n.saving-state {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n padding: 0.75rem 1rem;\n background: rgba(0, 0, 0, 0.8);\n color: white;\n border-radius: 8px;\n font-size: 0.9rem;\n}\n\n/* Saved state styling */\n.saved-state {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n padding: 0.75rem 1rem;\n background: rgba(34, 139, 34, 0.9); /* Forest green background */\n color: white;\n border-radius: 8px;\n font-size: 0.9rem;\n animation: fadeIn 0.3s ease-out;\n}\n\n/* Inline saving state - more compact */\n.inline-save-button .saving-state {\n padding: 0.5rem 0.75rem;\n background: rgba(0, 0, 0, 0.6);\n font-size: 0.8rem;\n}\n\n/* Inline saved state - more compact */\n.inline-save-button .saved-state {\n padding: 0.5rem 0.75rem;\n background: rgba(34, 139, 34, 0.8);\n font-size: 0.8rem;\n}\n\n/* Error tooltip positioning - for floating button (top-right) */\n.save-error-tooltip {\n position: absolute;\n top: 100%;\n right: 0;\n margin-top: 0.5rem;\n background: #dc3545;\n color: white;\n padding: 0.5rem 1rem;\n border-radius: 8px;\n font-size: 0.8rem;\n white-space: nowrap;\n box-shadow: 0 4px 12px rgba(220, 53, 69, 0.3);\n animation: fadeIn 0.3s ease-out;\n z-index: 1001;\n}\n\n.save-error-tooltip::after {\n content: '';\n position: absolute;\n bottom: 100%;\n right: 1rem;\n border: 6px solid transparent;\n border-bottom-color: #dc3545;\n}\n\n/* Inline mode error tooltip - position differently */\n.inline-save-button .save-error-tooltip {\n top: 100%;\n bottom: auto;\n margin-top: 0.5rem;\n margin-bottom: 0;\n}\n\n.inline-save-button .save-error-tooltip::after {\n top: -6px;\n border-top-color: transparent;\n border-bottom-color: #dc3545;\n}\n\n/* Animations */\n@keyframes slideInDown {\n from {\n opacity: 0;\n transform: translateY(-20px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n@keyframes fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n\n/* Responsive adjustments */\n@media (max-width: 768px) {\n .floating-save-button {\n bottom: 1rem;\n right: 1rem;\n top: auto; /* Override fixed top position on small screens */\n }\n\n .saving-state {\n padding: 0.6rem 0.8rem;\n font-size: 0.8rem;\n }\n\n .inline-save-button .saving-state {\n padding: 0.4rem 0.6rem;\n font-size: 0.75rem;\n }\n}\n\n/* Override icon color to primary when button is inherit color */\n.primary-icon {\n --icon-color: var(--primary-color, #1976d2);\n}\n\n.primary-icon::part(icon) {\n fill: var(--icon-color) !important;\n}\n\n/* Alternative approach using deep selector */\n.primary-icon udp-icon-button::part(icon),\n.primary-icon .icon {\n fill: var(--primary-color, #1976d2) !important;\n}\n\n/* Reduced motion support */\n@media (prefers-reduced-motion: reduce) {\n .floating-save-button,\n .save-error-tooltip {\n animation: none;\n }\n}\n","import { Component, Prop, h, State, Element, Listen } from '@stencil/core';\nimport Save from '@carbon/icons/es/save/20';\nimport { useFormApi } from '../../../form/useFormApi';\n\n@Component({\n tag: 'udp-save-draft-button',\n styleUrl: 'udp-save-draft-button.css',\n shadow: true,\n})\nexport class UdpSaveDraftButton {\n @Element() el: HTMLElement;\n\n @Prop() isVisible: boolean = false;\n @Prop() isSaving: boolean = false;\n @Prop() saveErrorMessage: string | null = null;\n @Prop() showSavedMessage: boolean = false;\n @Prop() handleSave: (values?: any) => void;\n\n @State() shouldBeInline: boolean = false;\n @State() private formApi: any | null = null;\n\n private resizeObserver: ResizeObserver;\n private checkOverlapTimeoutId: any;\n\n async componentDidLoad() {\n this.formApi = await useFormApi(this.el);\n this.checkForOverlap();\n this.setupOverlapDetection();\n }\n\n disconnectedCallback() {\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n }\n if (this.checkOverlapTimeoutId) {\n clearTimeout(this.checkOverlapTimeoutId);\n }\n }\n\n @Listen('resize', { target: 'window' })\n handleWindowResize() {\n this.debouncedOverlapCheck();\n }\n\n private setupOverlapDetection() {\n if (typeof ResizeObserver !== 'undefined') {\n this.resizeObserver = new ResizeObserver(() => {\n this.debouncedOverlapCheck();\n });\n const formContainer = this.el.closest('udp-forms-ui, .form-container, udp-container');\n if (formContainer) {\n this.resizeObserver.observe(formContainer);\n }\n const mainContent = document.querySelector('main, [role=\"main\"]') || document.body;\n if (mainContent) {\n this.resizeObserver.observe(mainContent);\n }\n }\n }\n\n private debouncedOverlapCheck() {\n if (this.checkOverlapTimeoutId) {\n clearTimeout(this.checkOverlapTimeoutId);\n }\n this.checkOverlapTimeoutId = setTimeout(() => {\n this.checkForOverlap();\n }, 100);\n }\n\n private checkForOverlap() {\n // This logic determines which style to apply.\n // Using 1024px as the breakpoint to switch between floating and inline.\n const minWidthNeeded = 1280;\n this.shouldBeInline = window.innerWidth < minWidthNeeded;\n }\n\n private handleSaveClick = async () => {\n if (!this.formApi || this.isSaving) {\n return;\n }\n if (typeof this.handleSave !== 'function') {\n return;\n }\n const values = this.formApi.getState().values;\n try {\n await this.handleSave(values);\n this.formApi.reset(values);\n } catch (error) {\n console.error('The onSave handler threw an error. The form will remain dirty.', error);\n }\n };\n\n render() {\n if (!this.isVisible && !this.showSavedMessage) {\n return null;\n }\n\n // Dynamically set the class based on screen size.\n // This will toggle between your .floating-save-button and .inline-save-button styles.\n const containerClass = this.shouldBeInline ? 'inline-save-button' : 'floating-save-button';\n const isInlineMode = this.shouldBeInline;\n\n return (\n <div class={`${containerClass} ${this.isSaving ? 'saving' : ''} ${this.showSavedMessage ? 'saved' : ''}`}>\n {this.isSaving ? (\n <div class=\"saving-state\">\n <unity-spinner size=\"small\" />\n {!isInlineMode && <span>Saving...</span>}\n </div>\n ) : this.isVisible ? (\n <udp-icon-button\n icon={Save}\n onClick={this.handleSaveClick}\n tooltip={'Save Changes'}\n variant=\"contained\"\n color={isInlineMode ? 'inherit' : 'primary'}\n iconColor={isInlineMode ? 'primary' : null}\n size={isInlineMode ? 'small' : 'medium'}\n >\n {isInlineMode ? '' : 'Save Changes'}\n </udp-icon-button>\n ) : (\n <div class=\"saved-state\">\n <span>Saved</span>\n </div>\n )}\n\n {this.saveErrorMessage && <div class=\"save-error-tooltip\">{this.saveErrorMessage}</div>}\n </div>\n );\n }\n}\n"],"names":["h","Host","isFileReference","parseFileReference","downloadFileFromUdpDriveFile","isUdpDriveFile","createFileFromString","isFile","createForm","debounce","UdpFormsFieldTypeEnum","fontOverrideMapping","overrideFont","UdpFormsPageIdEnum","getIconFromName","Save"],"mappings":"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"}