udp-stencil-component-library 1.0.2 → 1.0.3

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 (638) hide show
  1. package/dist/cjs/add-map-feature-popup_4.cjs.entry.js +11 -11
  2. package/dist/cjs/advanced-search_50.cjs.entry.js +109 -41
  3. package/dist/cjs/advanced-search_50.cjs.entry.js.map +1 -1
  4. package/dist/cjs/ag-grid-base_2.cjs.entry.js +2 -2
  5. package/dist/cjs/api-method-grid.cjs.entry.js +1 -1
  6. package/dist/cjs/check-box.cjs.entry.js +2 -2
  7. package/dist/cjs/chip-section.cjs.entry.js +2 -2
  8. package/dist/cjs/client-side-grid.cjs.entry.js +1 -1
  9. package/dist/cjs/color-preview.cjs.entry.js +1 -1
  10. package/dist/cjs/date-time-renderer.file-upload-renderer.list-options-renderer.question-specific-configs-renderer.text-input-renderer.entry.cjs.js.map +1 -1
  11. package/dist/cjs/date-time-renderer_5.cjs.entry.js +17 -16
  12. package/dist/cjs/date-time-renderer_5.cjs.entry.js.map +1 -1
  13. package/dist/cjs/enums-CA1UjPVU.js +25 -0
  14. package/dist/cjs/enums-CA1UjPVU.js.map +1 -0
  15. package/dist/cjs/feature-details-card_2.cjs.entry.js +5 -5
  16. package/dist/cjs/file-upload.selectable-list.stencil-field.entry.cjs.js.map +1 -1
  17. package/dist/cjs/file-upload_3.cjs.entry.js +73 -29
  18. package/dist/cjs/file-upload_3.cjs.entry.js.map +1 -1
  19. package/dist/cjs/index-Bu1pSYrV.js +8 -8
  20. package/dist/cjs/inputs-example.cjs.entry.js +2 -2
  21. package/dist/cjs/inputs-example.cjs.entry.js.map +1 -1
  22. package/dist/cjs/inputs-example.entry.cjs.js.map +1 -1
  23. package/dist/cjs/loader.cjs.js +1 -1
  24. package/dist/cjs/map-component_2.cjs.entry.js +2 -2
  25. package/dist/cjs/numeric-field.text-area.udp-date-selector.udp-datetime-selector.udp-time-selector.entry.cjs.js.map +1 -1
  26. package/dist/cjs/numeric-field_5.cjs.entry.js +194 -19
  27. package/dist/cjs/numeric-field_5.cjs.entry.js.map +1 -1
  28. package/dist/cjs/page-renderer.cjs.entry.js +1 -1
  29. 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
  30. package/dist/cjs/question-configs-renderer_5.cjs.entry.js +17 -4
  31. package/dist/cjs/question-configs-renderer_5.cjs.entry.js.map +1 -1
  32. package/dist/cjs/resource-timeline-calendar.cjs.entry.js +1 -1
  33. package/dist/cjs/resource-timeline-primary-bar.cjs.entry.js +1 -1
  34. package/dist/cjs/server-side-grid.cjs.entry.js +1 -1
  35. package/dist/cjs/signature-input.stencil-form.tally-display.udp-icon-button.udp-question.udp-save-draft-button.entry.cjs.js.map +1 -0
  36. package/dist/cjs/{signature-input_4.cjs.entry.js → signature-input_6.cjs.entry.js} +359 -157
  37. package/dist/cjs/signature-input_6.cjs.entry.js.map +1 -0
  38. package/dist/cjs/stencil-library.cjs.js +1 -1
  39. package/dist/cjs/udp-container-query-grid-item.cjs.entry.js +1 -1
  40. package/dist/cjs/udp-container-query-grid.cjs.entry.js +1 -1
  41. package/dist/cjs/udp-container-query.cjs.entry.js +2 -2
  42. package/dist/cjs/udp-container.cjs.entry.js +2 -2
  43. package/dist/cjs/udp-drive-utils-BOyI3h7K.js +180 -0
  44. package/dist/cjs/udp-drive-utils-BOyI3h7K.js.map +1 -0
  45. package/dist/cjs/udp-forms-builder.cjs.entry.js +133 -152
  46. package/dist/cjs/udp-forms-builder.cjs.entry.js.map +1 -1
  47. package/dist/cjs/udp-forms-builder.entry.cjs.js.map +1 -1
  48. package/dist/cjs/udp-forms-list-card_2.cjs.entry.js +5 -5
  49. package/dist/cjs/udp-forms-list.cjs.entry.js +1 -1
  50. package/dist/cjs/udp-forms-renderer.cjs.entry.js +185 -175
  51. package/dist/cjs/udp-forms-renderer.cjs.entry.js.map +1 -1
  52. package/dist/cjs/udp-forms-renderer.entry.cjs.js.map +1 -1
  53. package/dist/cjs/udp-forms-ui.cjs.entry.js +113 -82
  54. package/dist/cjs/udp-forms-ui.cjs.entry.js.map +1 -1
  55. package/dist/cjs/udp-forms-ui.entry.cjs.js.map +1 -1
  56. package/dist/cjs/udp-map.cjs.entry.js +3 -3
  57. package/dist/cjs/udp-page.cjs.entry.js +1 -1
  58. package/dist/cjs/udp-split-screen.cjs.entry.js +1 -1
  59. package/dist/cjs/udp-stepper-demo.cjs.entry.js +1 -1
  60. package/dist/cjs/udp-vertical-spacer.cjs.entry.js +1 -1
  61. package/dist/cjs/utils-CdiEmuDf.js +34 -0
  62. package/dist/cjs/utils-CdiEmuDf.js.map +1 -0
  63. package/dist/collection/collection-manifest.json +2 -0
  64. package/dist/collection/components/my-component/UI/buttons/icon-button/stencil-icon-button.js +22 -0
  65. package/dist/collection/components/my-component/UI/buttons/icon-button/stencil-icon-button.js.map +1 -1
  66. package/dist/collection/components/my-component/UI/buttons/udp-icon-button/udp-icon-button.css +269 -0
  67. package/dist/collection/components/my-component/UI/buttons/udp-icon-button/udp-icon-button.js +392 -0
  68. package/dist/collection/components/my-component/UI/buttons/udp-icon-button/udp-icon-button.js.map +1 -0
  69. package/dist/collection/components/my-component/UI/forms/form/stencil-field.js +38 -14
  70. package/dist/collection/components/my-component/UI/forms/form/stencil-field.js.map +1 -1
  71. package/dist/collection/components/my-component/UI/forms/form/stencil-form.js +81 -28
  72. package/dist/collection/components/my-component/UI/forms/form/stencil-form.js.map +1 -1
  73. package/dist/collection/components/my-component/UI/forms/udp-forms/mockData.js +1 -0
  74. package/dist/collection/components/my-component/UI/forms/udp-forms/mockData.js.map +1 -1
  75. package/dist/collection/components/my-component/UI/forms/udp-forms/types.js.map +1 -1
  76. package/dist/collection/components/my-component/UI/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/question-specific-configs-renderer.js +13 -17
  77. package/dist/collection/components/my-component/UI/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/question-specific-configs-renderer.js.map +1 -1
  78. package/dist/collection/components/my-component/UI/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/question_type_renderers/date-time-renderer.js +4 -3
  79. package/dist/collection/components/my-component/UI/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/question_type_renderers/date-time-renderer.js.map +1 -1
  80. package/dist/collection/components/my-component/UI/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/question_type_renderers/section-configs-renderer.css +0 -1
  81. package/dist/collection/components/my-component/UI/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/question_type_renderers/section-configs-renderer.js +16 -3
  82. package/dist/collection/components/my-component/UI/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/question_type_renderers/section-configs-renderer.js.map +1 -1
  83. package/dist/collection/components/my-component/UI/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/question_type_renderers/text-input-renderer.js +2 -2
  84. package/dist/collection/components/my-component/UI/forms/udp-forms/udp-forms-builder/udp-forms-builder.js +135 -159
  85. package/dist/collection/components/my-component/UI/forms/udp-forms/udp-forms-builder/udp-forms-builder.js.map +1 -1
  86. package/dist/collection/components/my-component/UI/forms/udp-forms/udp-forms-list/udp-forms-list-card.js +5 -5
  87. package/dist/collection/components/my-component/UI/forms/udp-forms/udp-forms-list/udp-forms-list.js +1 -1
  88. package/dist/collection/components/my-component/UI/forms/udp-forms/udp-forms-renderer/form-handler/PrivateFormHandler.js +1 -5
  89. package/dist/collection/components/my-component/UI/forms/udp-forms/udp-forms-renderer/form-handler/PrivateFormHandler.js.map +1 -1
  90. package/dist/collection/components/my-component/UI/forms/udp-forms/udp-forms-renderer/form-handler/PublicFormHandler.js +1 -0
  91. package/dist/collection/components/my-component/UI/forms/udp-forms/udp-forms-renderer/form-handler/PublicFormHandler.js.map +1 -1
  92. package/dist/collection/components/my-component/UI/forms/udp-forms/udp-forms-renderer/udp-forms-renderer.js +188 -172
  93. package/dist/collection/components/my-component/UI/forms/udp-forms/udp-forms-renderer/udp-forms-renderer.js.map +1 -1
  94. package/dist/collection/components/my-component/UI/forms/udp-forms/udp-forms-renderer/udp-forms-ui.css +175 -0
  95. package/dist/collection/components/my-component/UI/forms/udp-forms/udp-forms-renderer/udp-forms-ui.js +211 -88
  96. package/dist/collection/components/my-component/UI/forms/udp-forms/udp-forms-renderer/udp-forms-ui.js.map +1 -1
  97. package/dist/collection/components/my-component/UI/forms/udp-forms/udp-forms-renderer/udp-save-draft-button/udp-save-draft-button.css +166 -0
  98. package/dist/collection/components/my-component/UI/forms/udp-forms/udp-forms-renderer/udp-save-draft-button/udp-save-draft-button.js +215 -0
  99. package/dist/collection/components/my-component/UI/forms/udp-forms/udp-forms-renderer/udp-save-draft-button/udp-save-draft-button.js.map +1 -0
  100. package/dist/collection/components/my-component/UI/forms/udp-forms/udp-question/udp-question.js +5 -5
  101. package/dist/collection/components/my-component/UI/forms/udp-forms/udp-question/udp-question.js.map +1 -1
  102. package/dist/collection/components/my-component/UI/grid/ag-table/ag-table.js +1 -1
  103. package/dist/collection/components/my-component/UI/grid/ambient-template-grid/ambient-template-grid.js +15 -15
  104. package/dist/collection/components/my-component/UI/grid/grid-primary-bar/grid-primary-bar.js +2 -2
  105. package/dist/collection/components/my-component/UI/grid/hotlists/udp-hotlist-form/udp-hotlist-form.js +1 -1
  106. package/dist/collection/components/my-component/UI/grid/new-grid/ag-grid-base.js +1 -1
  107. package/dist/collection/components/my-component/UI/grid/new-grid/api-method-grid.js +1 -1
  108. package/dist/collection/components/my-component/UI/grid/new-grid/client-side-grid.js +1 -1
  109. package/dist/collection/components/my-component/UI/grid/new-grid/grid-header.js +1 -1
  110. package/dist/collection/components/my-component/UI/grid/new-grid/server-side-grid.js +1 -1
  111. package/dist/collection/components/my-component/UI/grid/resource-timeline-calendar/resource-timeline-calendar.js +1 -1
  112. package/dist/collection/components/my-component/UI/grid/resource-timeline-calendar/resource-timeline-primary-bar.js +1 -1
  113. package/dist/collection/components/my-component/UI/inputs/checkbox/check-box.js +2 -2
  114. package/dist/collection/components/my-component/UI/inputs/date-selector/udp-date-selector.js +3 -3
  115. package/dist/collection/components/my-component/UI/inputs/date-time-selector/udp-datetime-selector.js +3 -3
  116. package/dist/collection/components/my-component/UI/inputs/file-upload/file-upload.js +35 -22
  117. package/dist/collection/components/my-component/UI/inputs/file-upload/file-upload.js.map +1 -1
  118. package/dist/collection/components/my-component/UI/inputs/file-upload/udp-drive-utils.js +202 -10
  119. package/dist/collection/components/my-component/UI/inputs/file-upload/udp-drive-utils.js.map +1 -1
  120. package/dist/collection/components/my-component/UI/inputs/numeric-field/numeric-field.js +6 -6
  121. package/dist/collection/components/my-component/UI/inputs/numeric-field/numeric-field.js.map +1 -1
  122. package/dist/collection/components/my-component/UI/inputs/signature-input/signature-input.js +52 -22
  123. package/dist/collection/components/my-component/UI/inputs/signature-input/signature-input.js.map +1 -1
  124. package/dist/collection/components/my-component/UI/inputs/tally/tally.js +2 -2
  125. package/dist/collection/components/my-component/UI/inputs/text-area/text-area.js +99 -3
  126. package/dist/collection/components/my-component/UI/inputs/text-area/text-area.js.map +1 -1
  127. package/dist/collection/components/my-component/UI/inputs/text-field/text-field.js +99 -3
  128. package/dist/collection/components/my-component/UI/inputs/text-field/text-field.js.map +1 -1
  129. package/dist/collection/components/my-component/UI/inputs/time-selector/udp-time-selector.js +132 -6
  130. package/dist/collection/components/my-component/UI/inputs/time-selector/udp-time-selector.js.map +1 -1
  131. package/dist/collection/components/my-component/UI/inputs/toggle/stencil-toggle.js +4 -4
  132. package/dist/collection/components/my-component/UI/inputs/udp-selector/udp-selector.js +4 -4
  133. package/dist/collection/components/my-component/UI/layout/udp-container/udp-container.js +2 -2
  134. package/dist/collection/components/my-component/UI/layout/udp-container-query/udp-container-query.js +2 -2
  135. package/dist/collection/components/my-component/UI/layout/udp-container-query-grid/udp-container-query-grid.js +1 -1
  136. package/dist/collection/components/my-component/UI/layout/udp-container-query-grid-item/udp-container-query-grid-item.js +1 -1
  137. package/dist/collection/components/my-component/UI/layout/udp-page/udp-page.js +1 -1
  138. package/dist/collection/components/my-component/UI/layout/udp-split-screen/udp-split-screen.js +1 -1
  139. package/dist/collection/components/my-component/UI/layout/udp-vertical-spacer.js +1 -1
  140. package/dist/collection/components/my-component/UI/loaders/udp-grid-loader/udp-grid-loader.js +2 -2
  141. package/dist/collection/components/my-component/UI/loaders/udp-linear-loader/udp-linear-loader.js +1 -1
  142. package/dist/collection/components/my-component/UI/loaders/udp-skeleton-loading.js +1 -1
  143. package/dist/collection/components/my-component/UI/map/udp-map/map-component.js +1 -1
  144. package/dist/collection/components/my-component/UI/map/udp-map/popups/add-map-feature-popup.js +3 -3
  145. package/dist/collection/components/my-component/UI/map/udp-map/popups/feature-details-card/feature-details-card.js +4 -4
  146. package/dist/collection/components/my-component/UI/map/udp-map/popups/feature-details-popup.js +1 -1
  147. package/dist/collection/components/my-component/UI/map/udp-map/popups/select-layer-popup.js +1 -1
  148. package/dist/collection/components/my-component/UI/map/udp-map/popups/split-line-popup.js +1 -1
  149. package/dist/collection/components/my-component/UI/map/udp-map/toolbar/map-toolbar.js +6 -6
  150. package/dist/collection/components/my-component/UI/map/udp-map/udp-map-toolbar.js +1 -1
  151. package/dist/collection/components/my-component/UI/map/udp-map/udp-map.js +3 -3
  152. package/dist/collection/components/my-component/UI/menu/menu-item/udp-menu-item.js +2 -2
  153. package/dist/collection/components/my-component/UI/stepper/udp-stepper-demo.js +1 -1
  154. package/dist/collection/components/my-component/UI/tabs/tab/tabs/udp-tabs.js +1 -1
  155. package/dist/collection/components/my-component/UI/tabs/tab/udp-tab.js +1 -1
  156. package/dist/collection/components/my-component/UI/toolbars/app-bar/app-bar.js +1 -1
  157. package/dist/collection/components/my-component/demo/ambient-demo-container.js +1 -1
  158. package/dist/collection/components/test-component/inputs-example/inputs-example.js +2 -2
  159. package/dist/collection/components/test-component/inputs-example/inputs-example.js.map +1 -1
  160. package/dist/collection/page-renderer/page-renderer.js +1 -1
  161. package/dist/collection/theme/color-preview/color-preview.js +1 -1
  162. package/dist/collection/udp-utilities/layout/udp-dynamic-container-with-menu/chip-section/chip-section.js +2 -2
  163. package/dist/collection/udp-utilities/layout/udp-dynamic-container-with-menu/udp-dynamic-container-with-menu.js +1 -1
  164. package/dist/components/add-map-feature-popup.js +1 -1
  165. package/dist/components/advanced-search-grouped.js +1 -1
  166. package/dist/components/advanced-search.js +1 -1
  167. package/dist/components/ag-grid-base.js +1 -1
  168. package/dist/components/ag-table.js +1 -1
  169. package/dist/components/ambient-demo-container.js +1 -1
  170. package/dist/components/ambient-template-grid.js +1 -1
  171. package/dist/components/api-method-grid.js +4 -4
  172. package/dist/components/app-bar.js +1 -1
  173. package/dist/components/chart-container.js +1 -1
  174. package/dist/components/check-box-group.js +1 -1
  175. package/dist/components/check-box.js +1 -1
  176. package/dist/components/chip-section.js +3 -3
  177. package/dist/components/client-side-grid.js +3 -3
  178. package/dist/components/color-preview.js +1 -1
  179. package/dist/components/date-time-renderer.js +1 -1
  180. package/dist/components/edit-view-form-dialog.js +1 -1
  181. package/dist/components/feature-details-card.js +1 -1
  182. package/dist/components/feature-details-popup.js +1 -1
  183. package/dist/components/file-upload-renderer.js +1 -1
  184. package/dist/components/file-upload.js +1 -1
  185. package/dist/components/grid-header.js +1 -1
  186. package/dist/components/grid-primary-bar.js +1 -1
  187. package/dist/components/inputs-example.js +15 -15
  188. package/dist/components/inputs-example.js.map +1 -1
  189. package/dist/components/list-options-renderer.js +1 -1
  190. package/dist/components/map-component.js +1 -1
  191. package/dist/components/map-toolbar.js +1 -1
  192. package/dist/components/my-component.js +26 -26
  193. package/dist/components/numeric-field.js +1 -1
  194. package/dist/components/{p-CfZR5rek.js → p-0F2I6Qvn.js} +3 -3
  195. package/dist/components/{p-CfZR5rek.js.map → p-0F2I6Qvn.js.map} +1 -1
  196. package/dist/components/{p-BbC2Itep.js → p-1CPON0Xx.js} +5 -5
  197. package/dist/components/{p-BbC2Itep.js.map → p-1CPON0Xx.js.map} +1 -1
  198. package/dist/components/{p-IlXn87Ki.js → p-1Cv4cku0.js} +4 -14
  199. package/dist/components/p-1Cv4cku0.js.map +1 -0
  200. package/dist/components/{p-CTn3c76I.js → p-1uly65Sv.js} +3 -3
  201. package/dist/components/{p-CTn3c76I.js.map → p-1uly65Sv.js.map} +1 -1
  202. package/dist/components/{p-C8cWVxBF.js → p-26jyxB7s.js} +66 -27
  203. package/dist/components/p-26jyxB7s.js.map +1 -0
  204. package/dist/components/{p-GQEOUb0c.js → p-4hWvEEZf.js} +5 -5
  205. package/dist/components/{p-GQEOUb0c.js.map → p-4hWvEEZf.js.map} +1 -1
  206. package/dist/components/{p-HrsHnWeG.js → p-6EzLtNtq.js} +6 -6
  207. package/dist/components/{p-HrsHnWeG.js.map → p-6EzLtNtq.js.map} +1 -1
  208. package/dist/components/{p-syf9yo9-.js → p-8avkq8Fj.js} +4 -4
  209. package/dist/components/{p-syf9yo9-.js.map → p-8avkq8Fj.js.map} +1 -1
  210. package/dist/components/{p-B8k9GGZB.js → p-8paOuPay.js} +4 -4
  211. package/dist/components/{p-B8k9GGZB.js.map → p-8paOuPay.js.map} +1 -1
  212. package/dist/components/{p-DntePo7I.js → p-B2mj8zmp.js} +3 -3
  213. package/dist/components/{p-DntePo7I.js.map → p-B2mj8zmp.js.map} +1 -1
  214. package/dist/components/{p-Bv1MGbhE.js → p-B3gbGwCE.js} +50 -83
  215. package/dist/components/p-B3gbGwCE.js.map +1 -0
  216. package/dist/components/{p-ves_LtSN.js → p-B6A-djr0.js} +4 -4
  217. package/dist/components/{p-ves_LtSN.js.map → p-B6A-djr0.js.map} +1 -1
  218. package/dist/components/{p-D0T6NTw2.js → p-BANMRVyZ.js} +3 -3
  219. package/dist/components/{p-D0T6NTw2.js.map → p-BANMRVyZ.js.map} +1 -1
  220. package/dist/components/{p-D-JeGky8.js → p-BB2sALAW.js} +3 -3
  221. package/dist/components/{p-D-JeGky8.js.map → p-BB2sALAW.js.map} +1 -1
  222. package/dist/components/{p-DehJN46u.js → p-BLWvjl_b.js} +6 -6
  223. package/dist/components/{p-DehJN46u.js.map → p-BLWvjl_b.js.map} +1 -1
  224. package/dist/components/{p-y6ddPVSK.js → p-BO3Kzy6x.js} +6 -6
  225. package/dist/components/{p-y6ddPVSK.js.map → p-BO3Kzy6x.js.map} +1 -1
  226. package/dist/components/p-BY5RQ-T1.js +16 -0
  227. package/dist/components/p-BY5RQ-T1.js.map +1 -0
  228. package/dist/components/{p-ClToknIK.js → p-BbOHuqrJ.js} +5 -5
  229. package/dist/components/{p-ClToknIK.js.map → p-BbOHuqrJ.js.map} +1 -1
  230. package/dist/components/{p-CJsnV8uM.js → p-BfT3KUJC.js} +4 -4
  231. package/dist/components/{p-CJsnV8uM.js.map → p-BfT3KUJC.js.map} +1 -1
  232. package/dist/components/{p-BdWgc1UD.js → p-Bi8lqIP-.js} +8 -7
  233. package/dist/components/p-Bi8lqIP-.js.map +1 -0
  234. package/dist/components/{p-DNxY-i6k.js → p-BpD1NQKC.js} +5 -5
  235. package/dist/components/{p-DNxY-i6k.js.map → p-BpD1NQKC.js.map} +1 -1
  236. package/dist/components/p-BtOBW9_N.js +142 -0
  237. package/dist/components/p-BtOBW9_N.js.map +1 -0
  238. package/dist/components/{p-Akx0UDMW.js → p-BwPAbBUr.js} +4 -4
  239. package/dist/components/{p-Akx0UDMW.js.map → p-BwPAbBUr.js.map} +1 -1
  240. package/dist/components/p-BzH4NpB-.js +301 -0
  241. package/dist/components/p-BzH4NpB-.js.map +1 -0
  242. package/dist/components/{p-CSunqYw8.js → p-C-E6e6mL.js} +17 -17
  243. package/dist/components/{p-CSunqYw8.js.map → p-C-E6e6mL.js.map} +1 -1
  244. package/dist/components/{p-DWJbhjYR.js → p-C1K2NBql.js} +5 -5
  245. package/dist/components/{p-DWJbhjYR.js.map → p-C1K2NBql.js.map} +1 -1
  246. package/dist/components/{p-CNC3rtXm.js → p-C2j9tPIU.js} +4 -4
  247. package/dist/components/{p-CNC3rtXm.js.map → p-C2j9tPIU.js.map} +1 -1
  248. package/dist/components/p-C5aOw4Ij.js +168 -0
  249. package/dist/components/p-C5aOw4Ij.js.map +1 -0
  250. package/dist/components/{p-CJINZgmD.js → p-C6bm8Rs4.js} +17 -17
  251. package/dist/components/{p-CJINZgmD.js.map → p-C6bm8Rs4.js.map} +1 -1
  252. package/dist/components/{p-PqypuW_Q.js → p-CL4gkS6u.js} +22 -84
  253. package/dist/components/p-CL4gkS6u.js.map +1 -0
  254. package/dist/components/{p-DeS7YSzc.js → p-CMTLAuz8.js} +3 -3
  255. package/dist/components/{p-DeS7YSzc.js.map → p-CMTLAuz8.js.map} +1 -1
  256. package/dist/components/p-CWAWWTnd.js +47 -0
  257. package/dist/components/p-CWAWWTnd.js.map +1 -0
  258. package/dist/components/{p-B3-pcvgV.js → p-Cdz5sX_v.js} +38 -25
  259. package/dist/components/p-Cdz5sX_v.js.map +1 -0
  260. package/dist/components/{p-byKLubNE.js → p-Coa3kO6W.js} +3 -3
  261. package/dist/components/{p-byKLubNE.js.map → p-Coa3kO6W.js.map} +1 -1
  262. package/dist/components/{p-DzaN4l_Y.js → p-Cp1kbBGM.js} +5 -5
  263. package/dist/components/{p-DzaN4l_Y.js.map → p-Cp1kbBGM.js.map} +1 -1
  264. package/dist/components/{p-BYsLvu6g.js → p-CpMdhv3j.js} +69 -5
  265. package/dist/components/p-CpMdhv3j.js.map +1 -0
  266. package/dist/components/{p-BWI0GtPn.js → p-CpQin4NC.js} +7 -7
  267. package/dist/components/{p-BWI0GtPn.js.map → p-CpQin4NC.js.map} +1 -1
  268. package/dist/components/{p-DIPIddaO.js → p-CqiZ9SAU.js} +3 -3
  269. package/dist/components/{p-DIPIddaO.js.map → p-CqiZ9SAU.js.map} +1 -1
  270. package/dist/components/{p-DxJCXXmE.js → p-Cr_ifuX-.js} +27 -26
  271. package/dist/components/p-Cr_ifuX-.js.map +1 -0
  272. package/dist/components/{p-bLKTEsIH.js → p-CsMmUkoQ.js} +8 -8
  273. package/dist/components/{p-bLKTEsIH.js.map → p-CsMmUkoQ.js.map} +1 -1
  274. package/dist/components/{p-Cf-3pInV.js → p-Ct7EvUCI.js} +3 -3
  275. package/dist/components/{p-Cf-3pInV.js.map → p-Ct7EvUCI.js.map} +1 -1
  276. package/dist/components/{p-BbHv2Hzb.js → p-CvQ8X76F.js} +8 -8
  277. package/dist/components/{p-BbHv2Hzb.js.map → p-CvQ8X76F.js.map} +1 -1
  278. package/dist/components/{p-BEwTqpWE.js → p-CxOYMG-r.js} +4 -4
  279. package/dist/components/{p-BEwTqpWE.js.map → p-CxOYMG-r.js.map} +1 -1
  280. package/dist/components/{p-DOKGpXin.js → p-Cyigv-iT.js} +27 -8
  281. package/dist/components/p-Cyigv-iT.js.map +1 -0
  282. package/dist/components/{p-hRee3qYx.js → p-D6Wo7quX.js} +7 -2
  283. package/dist/components/p-D6Wo7quX.js.map +1 -0
  284. package/dist/components/{p-BUw3R0Ql.js → p-D9A5l8BE.js} +7 -7
  285. package/dist/components/{p-BUw3R0Ql.js.map → p-D9A5l8BE.js.map} +1 -1
  286. package/dist/components/{p-CDnOrzs3.js → p-DBtdo56U.js} +4 -4
  287. package/dist/components/{p-CDnOrzs3.js.map → p-DBtdo56U.js.map} +1 -1
  288. package/dist/components/{p-BIc3R4fE.js → p-DFKz-3Nr.js} +5 -5
  289. package/dist/components/{p-BIc3R4fE.js.map → p-DFKz-3Nr.js.map} +1 -1
  290. package/dist/components/{p-BJerffMg.js → p-DL9uHt-7.js} +5 -5
  291. package/dist/components/{p-BJerffMg.js.map → p-DL9uHt-7.js.map} +1 -1
  292. package/dist/components/{p-DIcPqQkn.js → p-DSIcWNUB.js} +5 -4
  293. package/dist/components/p-DSIcWNUB.js.map +1 -0
  294. package/dist/components/{p-CRiQA7Cy.js → p-DZaCCOXB.js} +69 -5
  295. package/dist/components/p-DZaCCOXB.js.map +1 -0
  296. package/dist/components/{p-BwHEv1Kb.js → p-DaMmzX_J.js} +13 -13
  297. package/dist/components/{p-BwHEv1Kb.js.map → p-DaMmzX_J.js.map} +1 -1
  298. package/dist/components/{p-CY0PAhIT.js → p-Dmmz74K2.js} +4 -4
  299. package/dist/components/{p-CY0PAhIT.js.map → p-Dmmz74K2.js.map} +1 -1
  300. package/dist/components/{p-DMcaGgHq.js → p-DnMRLbBX.js} +5 -5
  301. package/dist/components/{p-DMcaGgHq.js.map → p-DnMRLbBX.js.map} +1 -1
  302. package/dist/components/{p-ChdtzL8Z.js → p-Dpvhge5H.js} +10 -9
  303. package/dist/components/p-Dpvhge5H.js.map +1 -0
  304. package/dist/components/p-DtiAfg0X.js +25 -0
  305. package/dist/components/p-DtiAfg0X.js.map +1 -0
  306. package/dist/components/{p-XoXMxeuq.js → p-Dwnxv7WO.js} +3 -3
  307. package/dist/components/{p-XoXMxeuq.js.map → p-Dwnxv7WO.js.map} +1 -1
  308. package/dist/components/{p-BvSuY3tY.js → p-Dx5ehH3t.js} +7 -7
  309. package/dist/components/{p-BvSuY3tY.js.map → p-Dx5ehH3t.js.map} +1 -1
  310. package/dist/components/{p-DueJnVH4.js → p-DyC6jVV8.js} +10 -9
  311. package/dist/components/p-DyC6jVV8.js.map +1 -0
  312. package/dist/components/{p-Bdt-oOnd.js → p-Oil5iqFm.js} +120 -8
  313. package/dist/components/p-Oil5iqFm.js.map +1 -0
  314. package/dist/components/{p-C6aDnKNm.js → p-P3YTnOWe.js} +5 -5
  315. package/dist/components/{p-C6aDnKNm.js.map → p-P3YTnOWe.js.map} +1 -1
  316. package/dist/components/{p-CLvAjrtw.js → p-Qxi-zxd0.js} +8 -8
  317. package/dist/components/{p-CLvAjrtw.js.map → p-Qxi-zxd0.js.map} +1 -1
  318. package/dist/components/{p-DRO3I7Mm.js → p-Qxw1cxga.js} +8 -8
  319. package/dist/components/{p-DRO3I7Mm.js.map → p-Qxw1cxga.js.map} +1 -1
  320. package/dist/components/{p-DLWUrvpt.js → p-Tu9UB-v3.js} +5 -5
  321. package/dist/components/{p-DLWUrvpt.js.map → p-Tu9UB-v3.js.map} +1 -1
  322. package/dist/components/{p-DQIj9UI7.js → p-Ut5zP7nE.js} +5 -5
  323. package/dist/components/{p-DQIj9UI7.js.map → p-Ut5zP7nE.js.map} +1 -1
  324. package/dist/components/{p-Thx6k3Xp.js → p-WLd9SWLl.js} +4 -4
  325. package/dist/components/{p-Thx6k3Xp.js.map → p-WLd9SWLl.js.map} +1 -1
  326. package/dist/components/{p-BTIWOttf.js → p-W_kxEzVl.js} +6 -6
  327. package/dist/components/{p-BTIWOttf.js.map → p-W_kxEzVl.js.map} +1 -1
  328. package/dist/components/{p-BOW03S7b.js → p-XP8tp0pm.js} +5 -5
  329. package/dist/components/{p-BOW03S7b.js.map → p-XP8tp0pm.js.map} +1 -1
  330. package/dist/components/{p-w2FTnlQG.js → p-_HuUfybA.js} +3 -3
  331. package/dist/components/{p-w2FTnlQG.js.map → p-_HuUfybA.js.map} +1 -1
  332. package/dist/components/{p-BU706xtx.js → p-hWgAmNsF.js} +3 -3
  333. package/dist/components/{p-BU706xtx.js.map → p-hWgAmNsF.js.map} +1 -1
  334. package/dist/components/{p-Bykep8mm.js → p-ibwbE8nI.js} +4 -4
  335. package/dist/components/{p-Bykep8mm.js.map → p-ibwbE8nI.js.map} +1 -1
  336. package/dist/components/{p-CA-v1fbV.js → p-ill5r6eV.js} +40 -9
  337. package/dist/components/p-ill5r6eV.js.map +1 -0
  338. package/dist/components/{p-DqYsDDHy.js → p-jdqTpLxN.js} +4 -4
  339. package/dist/components/{p-DqYsDDHy.js.map → p-jdqTpLxN.js.map} +1 -1
  340. package/dist/components/{p-ByM88ZWk.js → p-jpt3zFdi.js} +3 -3
  341. package/dist/components/{p-ByM88ZWk.js.map → p-jpt3zFdi.js.map} +1 -1
  342. package/dist/components/{p-BEtm34A3.js → p-ncemY4Wx.js} +37 -36
  343. package/dist/components/p-ncemY4Wx.js.map +1 -0
  344. package/dist/components/{p-DqPGCQm2.js → p-s8qXxEgi.js} +3 -3
  345. package/dist/components/{p-DqPGCQm2.js.map → p-s8qXxEgi.js.map} +1 -1
  346. package/dist/components/p-vrP9HZiW.js +156 -0
  347. package/dist/components/p-vrP9HZiW.js.map +1 -0
  348. package/dist/components/{p-D32jPxWa.js → p-ycrk0Lr4.js} +5 -5
  349. package/dist/components/{p-D32jPxWa.js.map → p-ycrk0Lr4.js.map} +1 -1
  350. package/dist/components/page-renderer.js +21 -21
  351. package/dist/components/primary-action-header.js +1 -1
  352. package/dist/components/question-configs-renderer.js +1 -1
  353. package/dist/components/question-specific-configs-renderer.js +1 -1
  354. package/dist/components/resource-timeline-calendar.js +5 -5
  355. package/dist/components/resource-timeline-primary-bar.js +1 -1
  356. package/dist/components/save-view-form-dialog.js +1 -1
  357. package/dist/components/search-list-item.js +1 -1
  358. package/dist/components/section-configs-renderer.js +1 -1
  359. package/dist/components/select-layer-popup.js +1 -1
  360. package/dist/components/server-side-grid.js +1 -1
  361. package/dist/components/side-sheet.js +1 -1
  362. package/dist/components/signature-input.js +1 -1
  363. package/dist/components/split-line-popup.js +1 -1
  364. package/dist/components/stencil-field.js +1 -1
  365. package/dist/components/stencil-form.js +1 -1
  366. package/dist/components/stencil-icon-button.js +1 -1
  367. package/dist/components/stencil-toggle.js +1 -1
  368. package/dist/components/tally-display.js +1 -1
  369. package/dist/components/text-area.js +1 -1
  370. package/dist/components/text-field.js +1 -1
  371. package/dist/components/text-input-renderer.js +1 -1
  372. package/dist/components/udp-ambient-card.js +1 -1
  373. package/dist/components/udp-avatar.js +1 -1
  374. package/dist/components/udp-bar-chart.js +1 -1
  375. package/dist/components/udp-charts-example.js +7 -7
  376. package/dist/components/udp-container-query-grid-item.js +1 -1
  377. package/dist/components/udp-container-query-grid.js +2 -2
  378. package/dist/components/udp-container-query.js +1 -1
  379. package/dist/components/udp-container.js +1 -1
  380. package/dist/components/udp-date-selector.js +1 -1
  381. package/dist/components/udp-datetime-selector.js +1 -1
  382. package/dist/components/udp-distribution-chart.js +1 -1
  383. package/dist/components/udp-donut-chart.js +1 -1
  384. package/dist/components/udp-dynamic-container-with-menu.js +1 -1
  385. package/dist/components/udp-dynamic-form.js +4 -4
  386. package/dist/components/udp-forms-builder-menu.js +1 -1
  387. package/dist/components/udp-forms-builder-question-item.js +1 -1
  388. package/dist/components/udp-forms-builder-style-override.js +1 -1
  389. package/dist/components/udp-forms-builder.js +162 -183
  390. package/dist/components/udp-forms-builder.js.map +1 -1
  391. package/dist/components/udp-forms-list-card.js +1 -1
  392. package/dist/components/udp-forms-list.js +10 -10
  393. package/dist/components/udp-forms-renderer.js +244 -219
  394. package/dist/components/udp-forms-renderer.js.map +1 -1
  395. package/dist/components/udp-forms-ui.js +1 -1
  396. package/dist/components/udp-grid-loader.js +1 -1
  397. package/dist/components/udp-hotlist-form.js +1 -1
  398. package/dist/components/udp-icon-button.d.ts +11 -0
  399. package/dist/components/udp-icon-button.js +9 -0
  400. package/dist/components/udp-icon-button.js.map +1 -0
  401. package/dist/components/udp-icon.js +1 -1
  402. package/dist/components/udp-line-chart.js +1 -1
  403. package/dist/components/udp-linear-loader.js +1 -1
  404. package/dist/components/udp-list-item.js +2 -2
  405. package/dist/components/udp-map-toolbar.js +1 -1
  406. package/dist/components/udp-map.js +17 -17
  407. package/dist/components/udp-menu-item.js +1 -1
  408. package/dist/components/udp-page.js +1 -1
  409. package/dist/components/udp-question.js +1 -1
  410. package/dist/components/udp-save-draft-button.d.ts +11 -0
  411. package/dist/components/udp-save-draft-button.js +9 -0
  412. package/dist/components/udp-save-draft-button.js.map +1 -0
  413. package/dist/components/udp-selector.js +1 -1
  414. package/dist/components/udp-side-sheet.js +1 -1
  415. package/dist/components/udp-skeleton-loading.js +1 -1
  416. package/dist/components/udp-split-screen.js +1 -1
  417. package/dist/components/udp-stepper-demo.js +1 -1
  418. package/dist/components/udp-tab.js +1 -1
  419. package/dist/components/udp-tabs.js +1 -1
  420. package/dist/components/udp-time-selector.js +1 -1
  421. package/dist/components/udp-vertical-spacer.js +1 -1
  422. package/dist/esm/add-map-feature-popup_4.entry.js +11 -11
  423. package/dist/esm/advanced-search_50.entry.js +109 -41
  424. package/dist/esm/advanced-search_50.entry.js.map +1 -1
  425. package/dist/esm/ag-grid-base_2.entry.js +2 -2
  426. package/dist/esm/api-method-grid.entry.js +1 -1
  427. package/dist/esm/check-box.entry.js +2 -2
  428. package/dist/esm/chip-section.entry.js +2 -2
  429. package/dist/esm/client-side-grid.entry.js +1 -1
  430. package/dist/esm/color-preview.entry.js +1 -1
  431. package/dist/esm/date-time-renderer.file-upload-renderer.list-options-renderer.question-specific-configs-renderer.text-input-renderer.entry.js.map +1 -1
  432. package/dist/esm/date-time-renderer_5.entry.js +17 -16
  433. package/dist/esm/date-time-renderer_5.entry.js.map +1 -1
  434. package/dist/esm/enums-DtiAfg0X.js +25 -0
  435. package/dist/esm/enums-DtiAfg0X.js.map +1 -0
  436. package/dist/esm/feature-details-card_2.entry.js +5 -5
  437. package/dist/esm/file-upload.selectable-list.stencil-field.entry.js.map +1 -1
  438. package/dist/esm/file-upload_3.entry.js +73 -29
  439. package/dist/esm/file-upload_3.entry.js.map +1 -1
  440. package/dist/esm/index-CaIWDYyq.js +8 -8
  441. package/dist/esm/inputs-example.entry.js +2 -2
  442. package/dist/esm/inputs-example.entry.js.map +1 -1
  443. package/dist/esm/loader.js +1 -1
  444. package/dist/esm/map-component_2.entry.js +2 -2
  445. package/dist/esm/numeric-field.text-area.udp-date-selector.udp-datetime-selector.udp-time-selector.entry.js.map +1 -1
  446. package/dist/esm/numeric-field_5.entry.js +195 -20
  447. package/dist/esm/numeric-field_5.entry.js.map +1 -1
  448. package/dist/esm/page-renderer.entry.js +1 -1
  449. 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
  450. package/dist/esm/question-configs-renderer_5.entry.js +17 -4
  451. package/dist/esm/question-configs-renderer_5.entry.js.map +1 -1
  452. package/dist/esm/resource-timeline-calendar.entry.js +1 -1
  453. package/dist/esm/resource-timeline-primary-bar.entry.js +1 -1
  454. package/dist/esm/server-side-grid.entry.js +1 -1
  455. package/dist/esm/signature-input.stencil-form.tally-display.udp-icon-button.udp-question.udp-save-draft-button.entry.js.map +1 -0
  456. package/dist/esm/{signature-input_4.entry.js → signature-input_6.entry.js} +315 -115
  457. package/dist/esm/signature-input_6.entry.js.map +1 -0
  458. package/dist/esm/stencil-library.js +1 -1
  459. package/dist/esm/udp-container-query-grid-item.entry.js +1 -1
  460. package/dist/esm/udp-container-query-grid.entry.js +1 -1
  461. package/dist/esm/udp-container-query.entry.js +2 -2
  462. package/dist/esm/udp-container.entry.js +2 -2
  463. package/dist/esm/udp-drive-utils-Cm3Sms8t.js +168 -0
  464. package/dist/esm/udp-drive-utils-Cm3Sms8t.js.map +1 -0
  465. package/dist/esm/udp-forms-builder.entry.js +133 -152
  466. package/dist/esm/udp-forms-builder.entry.js.map +1 -1
  467. package/dist/esm/udp-forms-list-card_2.entry.js +5 -5
  468. package/dist/esm/udp-forms-list.entry.js +1 -1
  469. package/dist/esm/udp-forms-renderer.entry.js +186 -176
  470. package/dist/esm/udp-forms-renderer.entry.js.map +1 -1
  471. package/dist/esm/udp-forms-ui.entry.js +113 -82
  472. package/dist/esm/udp-forms-ui.entry.js.map +1 -1
  473. package/dist/esm/udp-map.entry.js +3 -3
  474. package/dist/esm/udp-page.entry.js +1 -1
  475. package/dist/esm/udp-split-screen.entry.js +1 -1
  476. package/dist/esm/udp-stepper-demo.entry.js +1 -1
  477. package/dist/esm/udp-vertical-spacer.entry.js +1 -1
  478. package/dist/esm/utils-DZv4MqyU.js +31 -0
  479. package/dist/esm/utils-DZv4MqyU.js.map +1 -0
  480. package/dist/stencil-library/date-time-renderer.file-upload-renderer.list-options-renderer.question-specific-configs-renderer.text-input-renderer.entry.esm.js.map +1 -1
  481. package/dist/stencil-library/file-upload.selectable-list.stencil-field.entry.esm.js.map +1 -1
  482. package/dist/stencil-library/inputs-example.entry.esm.js.map +1 -1
  483. package/dist/stencil-library/numeric-field.text-area.udp-date-selector.udp-datetime-selector.udp-time-selector.entry.esm.js.map +1 -1
  484. package/dist/stencil-library/p-09319660.entry.js +2 -0
  485. package/dist/stencil-library/p-09319660.entry.js.map +1 -0
  486. package/dist/stencil-library/p-146bc917.entry.js +2 -0
  487. package/dist/stencil-library/{p-b3b6310e.entry.js → p-147c4595.entry.js} +2 -2
  488. package/dist/stencil-library/{p-06ca29e0.entry.js → p-1b001f78.entry.js} +2 -2
  489. package/dist/stencil-library/{p-762591f6.entry.js → p-2635a6cc.entry.js} +2 -2
  490. package/dist/stencil-library/p-2f2fd111.entry.js +2 -0
  491. package/dist/stencil-library/{p-368be454.entry.js → p-2fc495ce.entry.js} +2 -2
  492. package/dist/stencil-library/{p-fdfa7087.entry.js → p-476c08df.entry.js} +2 -2
  493. package/dist/stencil-library/{p-ee1610d3.entry.js → p-4ab893a0.entry.js} +2 -2
  494. package/dist/stencil-library/p-4dac2b6d.entry.js +2 -0
  495. package/dist/stencil-library/p-4dac2b6d.entry.js.map +1 -0
  496. package/dist/stencil-library/p-556a182f.entry.js +2 -0
  497. package/dist/stencil-library/p-556a182f.entry.js.map +1 -0
  498. package/dist/stencil-library/p-5ac16f81.entry.js +2 -0
  499. package/dist/stencil-library/p-5ac16f81.entry.js.map +1 -0
  500. package/dist/stencil-library/p-609236fc.entry.js +2 -0
  501. package/dist/stencil-library/p-609236fc.entry.js.map +1 -0
  502. package/dist/stencil-library/{p-9b0b311b.entry.js → p-64330dbb.entry.js} +2 -2
  503. package/dist/stencil-library/p-65a5cce3.entry.js +2 -0
  504. package/dist/stencil-library/{p-5a946191.entry.js → p-70d8a0d8.entry.js} +2 -2
  505. package/dist/stencil-library/{p-79065768.entry.js → p-8119eb18.entry.js} +2 -2
  506. package/dist/stencil-library/{p-2f99476a.entry.js → p-86cd0134.entry.js} +2 -2
  507. package/dist/stencil-library/p-89aa56f1.entry.js +2 -0
  508. package/dist/stencil-library/p-89aa56f1.entry.js.map +1 -0
  509. package/dist/stencil-library/{p-767b7be7.entry.js → p-8a0b6bd4.entry.js} +2 -2
  510. package/dist/stencil-library/{p-40127f9f.entry.js → p-90fbca0f.entry.js} +2 -2
  511. package/dist/stencil-library/p-C5aOw4Ij.js +2 -0
  512. package/dist/stencil-library/p-C5aOw4Ij.js.map +1 -0
  513. package/dist/stencil-library/p-DZv4MqyU.js +2 -0
  514. package/dist/stencil-library/p-DZv4MqyU.js.map +1 -0
  515. package/dist/stencil-library/p-DtiAfg0X.js +2 -0
  516. package/dist/stencil-library/p-DtiAfg0X.js.map +1 -0
  517. package/dist/stencil-library/{p-f4f4ba61.entry.js → p-a98b033e.entry.js} +2 -2
  518. package/dist/stencil-library/p-a98b033e.entry.js.map +1 -0
  519. package/dist/stencil-library/{p-2a11c543.entry.js → p-ae167d4b.entry.js} +2 -2
  520. package/dist/stencil-library/{p-55459135.entry.js → p-b53e1b9a.entry.js} +2 -2
  521. package/dist/stencil-library/p-c1966f2c.entry.js +2 -0
  522. package/dist/stencil-library/p-c1966f2c.entry.js.map +1 -0
  523. package/dist/stencil-library/{p-0de6045a.entry.js → p-c9046d64.entry.js} +2 -2
  524. package/dist/stencil-library/{p-c1809ef3.entry.js → p-ca53be83.entry.js} +2 -2
  525. package/dist/stencil-library/p-d46dd16c.entry.js +2 -0
  526. package/dist/stencil-library/{p-09186dea.entry.js → p-d48b5599.entry.js} +2 -2
  527. package/dist/stencil-library/p-d4f31146.entry.js +2 -0
  528. package/dist/stencil-library/p-d4f31146.entry.js.map +1 -0
  529. package/dist/stencil-library/{p-b0b70c0b.entry.js → p-e7e8a8a3.entry.js} +2 -2
  530. package/dist/stencil-library/p-ea6e9a24.entry.js +2 -0
  531. package/dist/stencil-library/p-ea6e9a24.entry.js.map +1 -0
  532. package/dist/stencil-library/{p-79587009.entry.js → p-f4b5879d.entry.js} +2 -2
  533. package/dist/stencil-library/p-fbfbbcf1.entry.js +2 -0
  534. 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
  535. package/dist/stencil-library/signature-input.stencil-form.tally-display.udp-icon-button.udp-question.udp-save-draft-button.entry.esm.js.map +1 -0
  536. package/dist/stencil-library/stencil-library.esm.js +1 -1
  537. package/dist/stencil-library/udp-forms-builder.entry.esm.js.map +1 -1
  538. package/dist/stencil-library/udp-forms-renderer.entry.esm.js.map +1 -1
  539. package/dist/stencil-library/udp-forms-ui.entry.esm.js.map +1 -1
  540. package/dist/types/components/my-component/UI/buttons/icon-button/stencil-icon-button.d.ts +14 -0
  541. package/dist/types/components/my-component/UI/buttons/udp-icon-button/udp-icon-button.d.ts +91 -0
  542. package/dist/types/components/my-component/UI/forms/form/stencil-field.d.ts +2 -1
  543. package/dist/types/components/my-component/UI/forms/form/stencil-form.d.ts +7 -5
  544. package/dist/types/components/my-component/UI/forms/udp-forms/types.d.ts +16 -0
  545. package/dist/types/components/my-component/UI/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/question_type_renderers/section-configs-renderer.d.ts +1 -0
  546. package/dist/types/components/my-component/UI/forms/udp-forms/udp-forms-builder/udp-forms-builder.d.ts +16 -19
  547. package/dist/types/components/my-component/UI/forms/udp-forms/udp-forms-renderer/udp-forms-renderer.d.ts +14 -26
  548. package/dist/types/components/my-component/UI/forms/udp-forms/udp-forms-renderer/udp-forms-ui.d.ts +21 -7
  549. package/dist/types/components/my-component/UI/forms/udp-forms/udp-forms-renderer/udp-save-draft-button/udp-save-draft-button.d.ts +20 -0
  550. package/dist/types/components/my-component/UI/inputs/file-upload/file-upload.d.ts +1 -1
  551. package/dist/types/components/my-component/UI/inputs/file-upload/udp-drive-utils.d.ts +68 -1
  552. package/dist/types/components/my-component/UI/inputs/numeric-field/numeric-field.d.ts +1 -1
  553. package/dist/types/components/my-component/UI/inputs/signature-input/signature-input.d.ts +1 -1
  554. package/dist/types/components/my-component/UI/inputs/text-area/text-area.d.ts +21 -0
  555. package/dist/types/components/my-component/UI/inputs/text-field/text-field.d.ts +21 -0
  556. package/dist/types/components/my-component/UI/inputs/time-selector/udp-time-selector.d.ts +33 -1
  557. package/dist/types/components.d.ts +384 -14
  558. package/package.json +1 -1
  559. package/dist/cjs/signature-input.stencil-form.tally-display.udp-question.entry.cjs.js.map +0 -1
  560. package/dist/cjs/signature-input_4.cjs.entry.js.map +0 -1
  561. package/dist/cjs/utils-DMhqs00g.js +0 -55
  562. package/dist/cjs/utils-DMhqs00g.js.map +0 -1
  563. package/dist/collection/components/my-component/UI/forms/form/stencil-field.css +0 -70
  564. package/dist/collection/components/my-component/UI/forms/udp-forms/udp-forms-renderer/udp-forms-renderer.css +0 -89
  565. package/dist/components/p-B3-pcvgV.js.map +0 -1
  566. package/dist/components/p-BEtm34A3.js.map +0 -1
  567. package/dist/components/p-BYsLvu6g.js.map +0 -1
  568. package/dist/components/p-BdWgc1UD.js.map +0 -1
  569. package/dist/components/p-Bdt-oOnd.js.map +0 -1
  570. package/dist/components/p-Bv1MGbhE.js.map +0 -1
  571. package/dist/components/p-C8cWVxBF.js.map +0 -1
  572. package/dist/components/p-C9cEH65u.js +0 -307
  573. package/dist/components/p-C9cEH65u.js.map +0 -1
  574. package/dist/components/p-CA-v1fbV.js.map +0 -1
  575. package/dist/components/p-CRiQA7Cy.js.map +0 -1
  576. package/dist/components/p-ChdtzL8Z.js.map +0 -1
  577. package/dist/components/p-DIcPqQkn.js.map +0 -1
  578. package/dist/components/p-DOKGpXin.js.map +0 -1
  579. package/dist/components/p-DueJnVH4.js.map +0 -1
  580. package/dist/components/p-DxJCXXmE.js.map +0 -1
  581. package/dist/components/p-IlXn87Ki.js.map +0 -1
  582. package/dist/components/p-PqypuW_Q.js.map +0 -1
  583. package/dist/components/p-hRee3qYx.js.map +0 -1
  584. package/dist/esm/signature-input.stencil-form.tally-display.udp-question.entry.js.map +0 -1
  585. package/dist/esm/signature-input_4.entry.js.map +0 -1
  586. package/dist/esm/utils-vXSpJxEK.js +0 -52
  587. package/dist/esm/utils-vXSpJxEK.js.map +0 -1
  588. package/dist/stencil-library/p-00c1ce44.entry.js +0 -2
  589. package/dist/stencil-library/p-00c1ce44.entry.js.map +0 -1
  590. package/dist/stencil-library/p-250a8400.entry.js +0 -2
  591. package/dist/stencil-library/p-2fda98ee.entry.js +0 -2
  592. package/dist/stencil-library/p-2fda98ee.entry.js.map +0 -1
  593. package/dist/stencil-library/p-50f67815.entry.js +0 -2
  594. package/dist/stencil-library/p-50f67815.entry.js.map +0 -1
  595. package/dist/stencil-library/p-584552e6.entry.js +0 -2
  596. package/dist/stencil-library/p-5e96c57a.entry.js +0 -2
  597. package/dist/stencil-library/p-5e96c57a.entry.js.map +0 -1
  598. package/dist/stencil-library/p-6a1febc9.entry.js +0 -2
  599. package/dist/stencil-library/p-6ed5258c.entry.js +0 -2
  600. package/dist/stencil-library/p-6ed5258c.entry.js.map +0 -1
  601. package/dist/stencil-library/p-77739d4b.entry.js +0 -2
  602. package/dist/stencil-library/p-77739d4b.entry.js.map +0 -1
  603. package/dist/stencil-library/p-7a2202b9.entry.js +0 -2
  604. package/dist/stencil-library/p-7a2202b9.entry.js.map +0 -1
  605. package/dist/stencil-library/p-84109194.entry.js +0 -2
  606. package/dist/stencil-library/p-b1d412a7.entry.js +0 -2
  607. package/dist/stencil-library/p-b1d412a7.entry.js.map +0 -1
  608. package/dist/stencil-library/p-f4f4ba61.entry.js.map +0 -1
  609. package/dist/stencil-library/p-f7c855d0.entry.js +0 -2
  610. package/dist/stencil-library/p-f889438a.entry.js +0 -2
  611. package/dist/stencil-library/p-f889438a.entry.js.map +0 -1
  612. package/dist/stencil-library/p-vXSpJxEK.js +0 -2
  613. package/dist/stencil-library/p-vXSpJxEK.js.map +0 -1
  614. package/dist/stencil-library/signature-input.stencil-form.tally-display.udp-question.entry.esm.js.map +0 -1
  615. /package/dist/stencil-library/{p-84109194.entry.js.map → p-146bc917.entry.js.map} +0 -0
  616. /package/dist/stencil-library/{p-b3b6310e.entry.js.map → p-147c4595.entry.js.map} +0 -0
  617. /package/dist/stencil-library/{p-06ca29e0.entry.js.map → p-1b001f78.entry.js.map} +0 -0
  618. /package/dist/stencil-library/{p-762591f6.entry.js.map → p-2635a6cc.entry.js.map} +0 -0
  619. /package/dist/stencil-library/{p-6a1febc9.entry.js.map → p-2f2fd111.entry.js.map} +0 -0
  620. /package/dist/stencil-library/{p-368be454.entry.js.map → p-2fc495ce.entry.js.map} +0 -0
  621. /package/dist/stencil-library/{p-fdfa7087.entry.js.map → p-476c08df.entry.js.map} +0 -0
  622. /package/dist/stencil-library/{p-ee1610d3.entry.js.map → p-4ab893a0.entry.js.map} +0 -0
  623. /package/dist/stencil-library/{p-9b0b311b.entry.js.map → p-64330dbb.entry.js.map} +0 -0
  624. /package/dist/stencil-library/{p-584552e6.entry.js.map → p-65a5cce3.entry.js.map} +0 -0
  625. /package/dist/stencil-library/{p-5a946191.entry.js.map → p-70d8a0d8.entry.js.map} +0 -0
  626. /package/dist/stencil-library/{p-79065768.entry.js.map → p-8119eb18.entry.js.map} +0 -0
  627. /package/dist/stencil-library/{p-2f99476a.entry.js.map → p-86cd0134.entry.js.map} +0 -0
  628. /package/dist/stencil-library/{p-767b7be7.entry.js.map → p-8a0b6bd4.entry.js.map} +0 -0
  629. /package/dist/stencil-library/{p-40127f9f.entry.js.map → p-90fbca0f.entry.js.map} +0 -0
  630. /package/dist/stencil-library/{p-2a11c543.entry.js.map → p-ae167d4b.entry.js.map} +0 -0
  631. /package/dist/stencil-library/{p-55459135.entry.js.map → p-b53e1b9a.entry.js.map} +0 -0
  632. /package/dist/stencil-library/{p-0de6045a.entry.js.map → p-c9046d64.entry.js.map} +0 -0
  633. /package/dist/stencil-library/{p-c1809ef3.entry.js.map → p-ca53be83.entry.js.map} +0 -0
  634. /package/dist/stencil-library/{p-f7c855d0.entry.js.map → p-d46dd16c.entry.js.map} +0 -0
  635. /package/dist/stencil-library/{p-09186dea.entry.js.map → p-d48b5599.entry.js.map} +0 -0
  636. /package/dist/stencil-library/{p-b0b70c0b.entry.js.map → p-e7e8a8a3.entry.js.map} +0 -0
  637. /package/dist/stencil-library/{p-79587009.entry.js.map → p-f4b5879d.entry.js.map} +0 -0
  638. /package/dist/stencil-library/{p-250a8400.entry.js.map → p-fbfbbcf1.entry.js.map} +0 -0
@@ -1,2 +1,2 @@
1
- import{r as e,h as t,a as i}from"./p-CaIWDYyq.js";import"@carbon/icons/es/chevron--right/16";import"@carbon/icons/es/edit/16";import"@carbon/icons/es/view/16";import a from"axios";import{g as s}from"./p-Basdb1b1.js";import{C as r}from"./p-Cn7PuhQz.js";const o=(e,t,i,o)=>a.post(`${r.productV1ApiUrl}/UdpFormLatestVersionView/search`,{eagerLoad:false,pageNumber:e,pageSize:t,filterElements:[...i,{searchField:"tenantId",searchOperator:"=",searchValue:s()}],orderElements:[o]});const n=(e,t,i)=>a.post(`${r.productV1ApiUrl}/UdpForm/search`,{eagerLoad:false,pageNumber:t,pageSize:i,filterElements:[{searchField:"tenantId",searchOperator:"=",searchValue:s()},{searchField:"id",searchOperator:"=",searchValue:e}],orderElements:[{sortColumn:"Version",sortDirection:"DESC"}]});const h=":host{display:block}.udp-form-filter-container{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-05);flex-wrap:nowrap;padding:var(--spacing-05) 0}.error-banner{background-color:#fdecea;border:1px solid #f5c6cb;color:#a94442;padding:12px;margin-bottom:12px;border-radius:4px}.selector-group,.search-group{display:flex;gap:0.75rem;align-items:flex-end}.selector-group{flex-grow:1;flex-shrink:1;max-width:300px}";const d=class{constructor(t){e(this,t);this.isSideSheetOpen=false;this.mainFormsList=[];this.sideSheetFormsList=[];this.mainListPageNumber=1;this.sideSheetListPageNumber=1;this.mainTotalItems=0;this.sideSheetTotalItems=0;this.isLoading=true;this.errorMessage="";this.sortState={sortDirection:"DESC",sortColumn:"lastModifiedOn"};this.searchFilters=[];this.nameFilter="";this.pageBuilderId="c77aa2c8-f8b8-41af-aa77-c8612fc918c1";this.renderPageId="c696afbd-8d83-4f80-aaa1-9a3530a05a21";this.SIDE_SHEET_PAGE_SIZE=8;this.MAIN_PAGE_SIZE=6;this.componentMap={history:"history",pageBuilderId:"pageBuilderId",renderPageId:"renderPageId",isSideSheetList:"isSideSheetList",openSideSheet:"openSideSheet",data:"data",titleClick:"titleClick"};this.SORT_DIRECTIONS=[{label:"Asc",value:"ASC"},{label:"Desc",value:"DESC"}];this.SORT_COLUMNS=[{label:"Last Modified",value:"lastModifiedOn"},{label:"Created On",value:"initialCreatedOn"},{label:"Name",value:"name"}];this.debouncedFormNameSearch=(()=>{let e;return()=>{clearTimeout(e);e=window.setTimeout((()=>this.loadMainForms()),300)}})();this.handleHeaderPrimaryActionClick=()=>{this.history.push(`/page/${this.pageBuilderId}`)};this.handleSideSheetPrimaryAction=()=>{const e=this.mainFormsList.find((e=>e.data.id===this.sideSheetFormsList[0].data.id)).data;const t=e.id;const i=e.version;this.history.push(`/page/${this.pageBuilderId}?udpf_formId=${t}&udpf_version=${i}`);this.isSideSheetOpen=false};this.handleSideSheetClose=()=>{this.sideSheetFormsList=[];this.sideSheetListPageNumber=1;this.sideSheetTotalItems=0;this.isSideSheetOpen=false}}componentDidLoad(){return this.loadMainForms()}async loadMainForms(){var e;this.isLoading=true;this.errorMessage="";try{const t=await o(this.mainListPageNumber,this.MAIN_PAGE_SIZE,this.searchFilters,this.sortState);const i=t.data;if(!i||!Array.isArray(i.pageList)){throw new Error("Malformed data received from server.")}this.mainFormsList=this.formatList(i.pageList,false);this.mainTotalItems=(e=i.total)!==null&&e!==void 0?e:0}catch(e){console.error("Error loading forms data:",e);this.errorMessage="Failed to load forms. Please try again."}finally{this.isLoading=false}}async loadFormVersions(){var e;this.isLoading=true;this.errorMessage="";try{const t=await n(this.currentFormId,this.sideSheetListPageNumber,this.SIDE_SHEET_PAGE_SIZE);const i=t.data;if(!i||!Array.isArray(i.pageList)){throw new Error("Malformed form versions data.")}this.sideSheetFormsList=this.formatList(i.pageList,true);this.sideSheetTotalItems=(e=i.total)!==null&&e!==void 0?e:0}catch(e){console.error("Error loading form versions:",e);this.errorMessage="Failed to load form versions."}finally{this.isLoading=false}}formatList(e,t){return e.map((e=>({data:e,history:this.history,pageBuilderId:this.pageBuilderId,renderPageId:this.renderPageId,isSideSheetList:t,openSideSheet:()=>this.handleOpenSideSheet(e.id)})))}async handleMainPageChange(e){this.mainListPageNumber=e;await this.loadMainForms()}handleOrderFilterChange({fieldName:e,value:t}){this.sortState=Object.assign(Object.assign({},this.sortState),{[e]:t})}handleFormNameSearchFilterChange(e){const t=e.target;this.nameFilter=t.value;const i="name";const a="LIKE";const s={searchField:i,searchOperator:a,searchValue:t.value};let r=this.searchFilters.filter((e=>e.searchField!==i));if(t.value.trim()!==""){r.push(s)}this.searchFilters=r;this.mainListPageNumber=1}async refetchMainListData(e,t){if(JSON.stringify(e)===JSON.stringify(t))return;this.mainListPageNumber=1;await this.loadMainForms()}async handleOpenSideSheet(e){this.currentFormId=e;this.sideSheetListPageNumber=1;this.isSideSheetOpen=true;await this.loadFormVersions()}async handleSideSheetPageChange(e){this.sideSheetListPageNumber=e;await this.loadFormVersions()}renderFilters(){return t("div",{class:"udp-form-filter-container"},t("div",{class:"search-group"},t("text-field",{label:"Search Name",value:this.nameFilter,placeholder:"Search Form Name",onInput:async e=>{this.handleFormNameSearchFilterChange(e);this.debouncedFormNameSearch()},margin:"none"})),t("div",{class:"selector-group"},t("udp-selector",{label:"Sort By",name:"sortColumn",options:this.SORT_COLUMNS,onChange:e=>this.handleOrderFilterChange({fieldName:"sortColumn",value:e.detail}),initialValue:this.sortState.sortColumn}),t("udp-selector",{label:"Sort Direction",name:"sortDirection",options:this.SORT_DIRECTIONS,onChange:e=>this.handleOrderFilterChange({fieldName:"sortDirection",value:e.detail}),initialValue:this.sortState.sortDirection})))}renderSideSheet(){return t("udp-side-sheet",{primaryButtonLabel:"Create New Form Version",title:"Form Version History",open:this.isSideSheetOpen,onUdpSideSheetClose:()=>this.handleSideSheetClose(),position:"right",width:"md",onUdpPrimaryButtonClick:()=>this.handleSideSheetPrimaryAction()},this.isLoading&&this.isSideSheetOpen&&t("udp-linear-loader",null),t("udp-list-renderer",{itemComponent:"udp-forms-list-card",data:this.sideSheetFormsList,pagination:true,isServerSide:true,isLoading:this.isLoading,itemsPerPage:this.SIDE_SHEET_PAGE_SIZE,currentPage:this.sideSheetListPageNumber,totalItems:this.sideSheetTotalItems,onPageChange:e=>this.handleSideSheetPageChange(e.detail),componentDataMap:this.componentMap,spacing:"md"}))}renderErrorMessage(){return this.errorMessage?t("div",{class:"error-banner"},t("unity-typography",{variant:"body2"},this.errorMessage)):null}render(){return t("div",{key:"edf1d9d62eec83e2fecf58a85fb16b79da4485bd",class:"udp-forms-list-container"},t("primary-action-header",{key:"b675690b769dfe3fdd6d314f8480811cd61682ce",title:"UDP Forms",primaryActionClick:()=>this.handleHeaderPrimaryActionClick(),actionButtonLabel:"Create New Form",tabs:false}),this.isLoading&&t("udp-linear-loader",{key:"927ddb52e4e8add066608ae2278f57e5da30bacb"}),this.renderSideSheet(),t("udp-container",{key:"562738434eccfb5f17c3c91cc8ae6025cf88361e",maxWidth:"lg"},this.renderErrorMessage(),this.renderFilters(),t("udp-list-renderer",{key:"de542087076395e604a8a15e5e2e3d9a947f0852",itemComponent:"udp-forms-list-card",data:this.mainFormsList,pagination:true,isServerSide:true,isLoading:this.isLoading,itemsPerPage:this.MAIN_PAGE_SIZE,currentPage:this.mainListPageNumber,totalItems:this.mainTotalItems,onPageChange:e=>this.handleMainPageChange(e.detail),componentDataMap:this.componentMap,spacing:"md"})),t("udp-forms-list-card",{key:"1b7d25511e2c9ea7370a4da6ca6520f9a20d9f57",style:{display:"none"}}),t("div",{key:"5a3d8623287c4db2ae91d4c9a70567c8065b444b",style:{height:"60px"}}))}get el(){return i(this)}static get watchers(){return{sortState:["refetchMainListData"]}}};d.style=h;export{d as udp_forms_list};
2
- //# sourceMappingURL=p-2a11c543.entry.js.map
1
+ import{r as e,h as t,a as i}from"./p-CaIWDYyq.js";import"@carbon/icons/es/chevron--right/16";import"@carbon/icons/es/edit/16";import"@carbon/icons/es/view/16";import a from"axios";import{g as s}from"./p-Basdb1b1.js";import{C as r}from"./p-Cn7PuhQz.js";const o=(e,t,i,o)=>a.post(`${r.productV1ApiUrl}/UdpFormLatestVersionView/search`,{eagerLoad:false,pageNumber:e,pageSize:t,filterElements:[...i,{searchField:"tenantId",searchOperator:"=",searchValue:s()}],orderElements:[o]});const n=(e,t,i)=>a.post(`${r.productV1ApiUrl}/UdpForm/search`,{eagerLoad:false,pageNumber:t,pageSize:i,filterElements:[{searchField:"tenantId",searchOperator:"=",searchValue:s()},{searchField:"id",searchOperator:"=",searchValue:e}],orderElements:[{sortColumn:"Version",sortDirection:"DESC"}]});const h=":host{display:block}.udp-form-filter-container{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-05);flex-wrap:nowrap;padding:var(--spacing-05) 0}.error-banner{background-color:#fdecea;border:1px solid #f5c6cb;color:#a94442;padding:12px;margin-bottom:12px;border-radius:4px}.selector-group,.search-group{display:flex;gap:0.75rem;align-items:flex-end}.selector-group{flex-grow:1;flex-shrink:1;max-width:300px}";const d=class{constructor(t){e(this,t);this.isSideSheetOpen=false;this.mainFormsList=[];this.sideSheetFormsList=[];this.mainListPageNumber=1;this.sideSheetListPageNumber=1;this.mainTotalItems=0;this.sideSheetTotalItems=0;this.isLoading=true;this.errorMessage="";this.sortState={sortDirection:"DESC",sortColumn:"lastModifiedOn"};this.searchFilters=[];this.nameFilter="";this.pageBuilderId="c77aa2c8-f8b8-41af-aa77-c8612fc918c1";this.renderPageId="c696afbd-8d83-4f80-aaa1-9a3530a05a21";this.SIDE_SHEET_PAGE_SIZE=8;this.MAIN_PAGE_SIZE=6;this.componentMap={history:"history",pageBuilderId:"pageBuilderId",renderPageId:"renderPageId",isSideSheetList:"isSideSheetList",openSideSheet:"openSideSheet",data:"data",titleClick:"titleClick"};this.SORT_DIRECTIONS=[{label:"Asc",value:"ASC"},{label:"Desc",value:"DESC"}];this.SORT_COLUMNS=[{label:"Last Modified",value:"lastModifiedOn"},{label:"Created On",value:"initialCreatedOn"},{label:"Name",value:"name"}];this.debouncedFormNameSearch=(()=>{let e;return()=>{clearTimeout(e);e=window.setTimeout((()=>this.loadMainForms()),300)}})();this.handleHeaderPrimaryActionClick=()=>{this.history.push(`/page/${this.pageBuilderId}`)};this.handleSideSheetPrimaryAction=()=>{const e=this.mainFormsList.find((e=>e.data.id===this.sideSheetFormsList[0].data.id)).data;const t=e.id;const i=e.version;this.history.push(`/page/${this.pageBuilderId}?udpf_formId=${t}&udpf_version=${i}`);this.isSideSheetOpen=false};this.handleSideSheetClose=()=>{this.sideSheetFormsList=[];this.sideSheetListPageNumber=1;this.sideSheetTotalItems=0;this.isSideSheetOpen=false}}componentDidLoad(){return this.loadMainForms()}async loadMainForms(){var e;this.isLoading=true;this.errorMessage="";try{const t=await o(this.mainListPageNumber,this.MAIN_PAGE_SIZE,this.searchFilters,this.sortState);const i=t.data;if(!i||!Array.isArray(i.pageList)){throw new Error("Malformed data received from server.")}this.mainFormsList=this.formatList(i.pageList,false);this.mainTotalItems=(e=i.total)!==null&&e!==void 0?e:0}catch(e){console.error("Error loading forms data:",e);this.errorMessage="Failed to load forms. Please try again."}finally{this.isLoading=false}}async loadFormVersions(){var e;this.isLoading=true;this.errorMessage="";try{const t=await n(this.currentFormId,this.sideSheetListPageNumber,this.SIDE_SHEET_PAGE_SIZE);const i=t.data;if(!i||!Array.isArray(i.pageList)){throw new Error("Malformed form versions data.")}this.sideSheetFormsList=this.formatList(i.pageList,true);this.sideSheetTotalItems=(e=i.total)!==null&&e!==void 0?e:0}catch(e){console.error("Error loading form versions:",e);this.errorMessage="Failed to load form versions."}finally{this.isLoading=false}}formatList(e,t){return e.map((e=>({data:e,history:this.history,pageBuilderId:this.pageBuilderId,renderPageId:this.renderPageId,isSideSheetList:t,openSideSheet:()=>this.handleOpenSideSheet(e.id)})))}async handleMainPageChange(e){this.mainListPageNumber=e;await this.loadMainForms()}handleOrderFilterChange({fieldName:e,value:t}){this.sortState=Object.assign(Object.assign({},this.sortState),{[e]:t})}handleFormNameSearchFilterChange(e){const t=e.target;this.nameFilter=t.value;const i="name";const a="LIKE";const s={searchField:i,searchOperator:a,searchValue:t.value};let r=this.searchFilters.filter((e=>e.searchField!==i));if(t.value.trim()!==""){r.push(s)}this.searchFilters=r;this.mainListPageNumber=1}async refetchMainListData(e,t){if(JSON.stringify(e)===JSON.stringify(t))return;this.mainListPageNumber=1;await this.loadMainForms()}async handleOpenSideSheet(e){this.currentFormId=e;this.sideSheetListPageNumber=1;this.isSideSheetOpen=true;await this.loadFormVersions()}async handleSideSheetPageChange(e){this.sideSheetListPageNumber=e;await this.loadFormVersions()}renderFilters(){return t("div",{class:"udp-form-filter-container"},t("div",{class:"search-group"},t("text-field",{label:"Search Name",value:this.nameFilter,placeholder:"Search Form Name",onInput:async e=>{this.handleFormNameSearchFilterChange(e);this.debouncedFormNameSearch()},margin:"none"})),t("div",{class:"selector-group"},t("udp-selector",{label:"Sort By",name:"sortColumn",options:this.SORT_COLUMNS,onChange:e=>this.handleOrderFilterChange({fieldName:"sortColumn",value:e.detail}),initialValue:this.sortState.sortColumn}),t("udp-selector",{label:"Sort Direction",name:"sortDirection",options:this.SORT_DIRECTIONS,onChange:e=>this.handleOrderFilterChange({fieldName:"sortDirection",value:e.detail}),initialValue:this.sortState.sortDirection})))}renderSideSheet(){return t("udp-side-sheet",{primaryButtonLabel:"Create New Form Version",title:"Form Version History",open:this.isSideSheetOpen,onUdpSideSheetClose:()=>this.handleSideSheetClose(),position:"right",width:"md",onUdpPrimaryButtonClick:()=>this.handleSideSheetPrimaryAction()},this.isLoading&&this.isSideSheetOpen&&t("udp-linear-loader",null),t("udp-list-renderer",{itemComponent:"udp-forms-list-card",data:this.sideSheetFormsList,pagination:true,isServerSide:true,isLoading:this.isLoading,itemsPerPage:this.SIDE_SHEET_PAGE_SIZE,currentPage:this.sideSheetListPageNumber,totalItems:this.sideSheetTotalItems,onPageChange:e=>this.handleSideSheetPageChange(e.detail),componentDataMap:this.componentMap,spacing:"md"}))}renderErrorMessage(){return this.errorMessage?t("div",{class:"error-banner"},t("unity-typography",{variant:"body2"},this.errorMessage)):null}render(){return t("div",{key:"08480dd8a75feae89264197dc0633114277d501a",class:"udp-forms-list-container"},t("primary-action-header",{key:"015ba462057ccd4db6b63027367e2e59401af05b",title:"UDP Forms",primaryActionClick:()=>this.handleHeaderPrimaryActionClick(),actionButtonLabel:"Create New Form",tabs:false}),this.isLoading&&t("udp-linear-loader",{key:"1b4948c763781a0338bd21d9244897898b03e16f"}),this.renderSideSheet(),t("udp-container",{key:"0f920cc1171c4b1a0ed76288e402a67eaf2e56b1",maxWidth:"lg"},this.renderErrorMessage(),this.renderFilters(),t("udp-list-renderer",{key:"7678dd6db687a74e931c26face24b8d35cf4bb05",itemComponent:"udp-forms-list-card",data:this.mainFormsList,pagination:true,isServerSide:true,isLoading:this.isLoading,itemsPerPage:this.MAIN_PAGE_SIZE,currentPage:this.mainListPageNumber,totalItems:this.mainTotalItems,onPageChange:e=>this.handleMainPageChange(e.detail),componentDataMap:this.componentMap,spacing:"md"})),t("udp-forms-list-card",{key:"fcb26d9a3a445355cb9f8acfc9f28408eefdf04c",style:{display:"none"}}),t("div",{key:"c1ee42e7cd7e146dccfa1409859ab7970c037c4f",style:{height:"60px"}}))}get el(){return i(this)}static get watchers(){return{sortState:["refetchMainListData"]}}};d.style=h;export{d as udp_forms_list};
2
+ //# sourceMappingURL=p-ae167d4b.entry.js.map
@@ -1,2 +1,2 @@
1
- import{r as t,h as i,F as e,c as s}from"./p-CaIWDYyq.js";import n from"@carbon/icons/es/chevron--right/16";import r from"@carbon/icons/es/edit/16";import a from"@carbon/icons/es/view/16";const o=class{constructor(i){t(this,i);this.formBuilderHandler=()=>{this.history.push(`/page/${this.pageBuilderId}?udpf_formId=${this.data.id}&udpf_version=${this.data.version}`)};this.formRendererHandler=()=>{this.history.push(`/page/${this.renderPageId}?udpf_formId=${this.data.id}&udpf_version=${this.data.version}`)};this.handleTitleClick=t=>{t.preventDefault();this.formBuilderHandler()}}render(){const t=i(e,{key:"f43e57fd8f935e58ed0d331d7f5375db971e6b90"},i("unity-typography",{key:"ab0168c803d35d92612607639470ab0b0448f1b1",variant:"body1",color:"textSecondary"},"Version: ",this.data.version),!this.isSideSheetList&&i("unity-typography",{key:"c9761048e153e9af5055f7c19a6bcbc277c4387d",variant:"body1",color:"textSecondary"},"Last Modified: ",new Date(this.data.lastModifiedOn).toLocaleDateString()),i("unity-typography",{key:"ee5a0182ea7e83adfc63113ce041d31d282d3c94",variant:"body1",color:"textSecondary"},"Created On: ",this.isSideSheetList?new Date(this.data.createdOn).toLocaleDateString():new Date(this.data.initialCreatedOn).toLocaleDateString()));const s=i(e,{key:"4043c5423a975f20aca9a3743d311048847946a0"},!this.isSideSheetList&&i("stencil-icon-button",{key:"ff1e7c810d7a34628162f5f490fa19f016b5d522",icon:r,tooltip:"Edit in Builder",onClick:t=>{t.stopPropagation();this.formBuilderHandler()}}),i("stencil-icon-button",{key:"a2f73ef0c957183225347199db6ec86e590e19f7",icon:a,tooltip:"View in Renderer",onClick:t=>{t.stopPropagation();this.formRendererHandler()}}),!this.isSideSheetList&&i("stencil-icon-button",{key:"f9daf67190c6306cc84e91bb874bb314637df35f",icon:n,tooltip:"See Version History",onClick:t=>{var i;t.stopPropagation();(i=this.openSideSheet)===null||i===void 0?void 0:i.call(this)}}));return i("udp-card",{key:"f3e1094b2b0e1741170b71992cca5c916cf8a7c5",cardTitle:this.data.name,subheader:this.data.description,actions:s,onTitleClick:this.handleTitleClick,disableContentPadding:true,adornmentStatus:"info"},t)}};const c=":host{display:block}.udp-list-renderer-container{display:flex;flex-direction:column}.item-list-container{display:flex;flex-direction:column}.item-list-container.spacing-xs{gap:var(--spacing-02)}.item-list-container.spacing-sm{gap:var(--spacing-03)}.item-list-container.spacing-md{gap:var(--spacing-04)}.item-list-container.spacing-lg{gap:var(--spacing-06)}.item-list-container.spacing-condensed{gap:var(--spacing-01)}.loading-container{display:flex;justify-content:center;align-items:center;padding:var(--spacing-07);min-height:100px;}";const h=class{constructor(i){t(this,i);this.pageChange=s(this,"pageChange");this.data=[];this.pagination=false;this.itemsPerPage=10;this.isServerSide=false;this.totalItems=0;this.currentPage=1;this.isLoading=false;this.spacing="md";this.internalCurrentPage=1}currentPageChanged(t){if(t!==this.internalCurrentPage){this.internalCurrentPage=t}}componentWillLoad(){this.internalCurrentPage=this.currentPage}getPaginatedData(){if(!this.pagination||this.isServerSide){return this.data}const t=(this.internalCurrentPage-1)*this.itemsPerPage;const i=t+this.itemsPerPage;return this.data.slice(t,i)}getTotalPages(){if(!this.pagination)return 1;if(this.isServerSide){if(this.totalItems===0||this.itemsPerPage===0)return 1;return Math.ceil(this.totalItems/this.itemsPerPage)}if(this.data.length===0||this.itemsPerPage===0)return 1;return Math.ceil(this.data.length/this.itemsPerPage)}handlePageChange(t){if(this.isLoading)return;if(t>=1&&t<=this.getTotalPages()){if(this.isServerSide){this.pageChange.emit(t)}else{this.internalCurrentPage=t;this.currentPage=t;this.pageChange.emit(t)}}}renderItems(){if(!this.itemComponent){console.warn("[udp-item-list] itemComponent prop is required.");return i("p",null,"Error: itemComponent prop is not defined.")}if(!this.componentDataMap){console.warn("[udp-item-list] componentDataMap prop is required.");return i("p",null,"Error: componentDataMap prop is not defined.")}const t=this.getPaginatedData();if(!t||t.length===0){return i("p",null,"No items to display.")}return t.map((t=>{const e={};for(const i in this.componentDataMap){if(t.hasOwnProperty(i)){const s=this.componentDataMap[i];e[s]=t[i]}}const s=this.itemComponent;return i(s,Object.assign({},e))}))}render(){if(this.isLoading&&(!this.data||this.data.length===0)){return i("div",{class:"loading-container"},i("p",null,"Loading..."))}const t={"item-list-container":true,[`spacing-${this.spacing}`]:true};return i("host",null,i("div",{class:t},this.renderItems()),this.pagination&&this.getTotalPages()>1&&i("udp-pagination",{currentPage:this.internalCurrentPage,totalPages:this.getTotalPages(),isLoading:this.isLoading,onPageChange:t=>this.handlePageChange(t.detail)}))}static get watchers(){return{currentPage:["currentPageChanged"]}}};h.style=c;export{o as udp_forms_list_card,h as udp_list_renderer};
2
- //# sourceMappingURL=p-55459135.entry.js.map
1
+ import{r as t,h as i,F as e,c as s}from"./p-CaIWDYyq.js";import n from"@carbon/icons/es/chevron--right/16";import a from"@carbon/icons/es/edit/16";import r from"@carbon/icons/es/view/16";const o=class{constructor(i){t(this,i);this.formBuilderHandler=()=>{this.history.push(`/page/${this.pageBuilderId}?udpf_formId=${this.data.id}&udpf_version=${this.data.version}`)};this.formRendererHandler=()=>{this.history.push(`/page/${this.renderPageId}?udpf_formId=${this.data.id}&udpf_version=${this.data.version}`)};this.handleTitleClick=t=>{t.preventDefault();this.formBuilderHandler()}}render(){const t=i(e,{key:"40e6bc5bb3e16141b71006982d29925b0915d977"},i("unity-typography",{key:"ae35b146f92dc5aa8b03b83635acf6566f1410f3",variant:"body1",color:"textSecondary"},"Version: ",this.data.version),!this.isSideSheetList&&i("unity-typography",{key:"1a3178db9787a435fbead12bd3988c027aa82c95",variant:"body1",color:"textSecondary"},"Last Modified: ",new Date(this.data.lastModifiedOn).toLocaleDateString()),i("unity-typography",{key:"67b21ff969297f42fa2727bf78939c58bcba7a5c",variant:"body1",color:"textSecondary"},"Created On: ",this.isSideSheetList?new Date(this.data.createdOn).toLocaleDateString():new Date(this.data.initialCreatedOn).toLocaleDateString()));const s=i(e,{key:"c34c9cca08606e242fe60cc8911496ee991e4023"},!this.isSideSheetList&&i("stencil-icon-button",{key:"a7af5cfc40e4a7d11d682a676be52dcfc8b0e90c",icon:a,tooltip:"Edit in Builder",onClick:t=>{t.stopPropagation();this.formBuilderHandler()}}),i("stencil-icon-button",{key:"0e8b5dd135d5322aa0b19ade7e9d09dda11300fa",icon:r,tooltip:"View in Renderer",onClick:t=>{t.stopPropagation();this.formRendererHandler()}}),!this.isSideSheetList&&i("stencil-icon-button",{key:"30e623f191bc0b9d6d6c8ba857ee7702a20a17ca",icon:n,tooltip:"See Version History",onClick:t=>{var i;t.stopPropagation();(i=this.openSideSheet)===null||i===void 0?void 0:i.call(this)}}));return i("udp-card",{key:"581f7ade121c77616b8e495374e6598d58ba50b1",cardTitle:this.data.name,subheader:this.data.description,actions:s,onTitleClick:this.handleTitleClick,disableContentPadding:true,adornmentStatus:"info"},t)}};const c=":host{display:block}.udp-list-renderer-container{display:flex;flex-direction:column}.item-list-container{display:flex;flex-direction:column}.item-list-container.spacing-xs{gap:var(--spacing-02)}.item-list-container.spacing-sm{gap:var(--spacing-03)}.item-list-container.spacing-md{gap:var(--spacing-04)}.item-list-container.spacing-lg{gap:var(--spacing-06)}.item-list-container.spacing-condensed{gap:var(--spacing-01)}.loading-container{display:flex;justify-content:center;align-items:center;padding:var(--spacing-07);min-height:100px;}";const h=class{constructor(i){t(this,i);this.pageChange=s(this,"pageChange");this.data=[];this.pagination=false;this.itemsPerPage=10;this.isServerSide=false;this.totalItems=0;this.currentPage=1;this.isLoading=false;this.spacing="md";this.internalCurrentPage=1}currentPageChanged(t){if(t!==this.internalCurrentPage){this.internalCurrentPage=t}}componentWillLoad(){this.internalCurrentPage=this.currentPage}getPaginatedData(){if(!this.pagination||this.isServerSide){return this.data}const t=(this.internalCurrentPage-1)*this.itemsPerPage;const i=t+this.itemsPerPage;return this.data.slice(t,i)}getTotalPages(){if(!this.pagination)return 1;if(this.isServerSide){if(this.totalItems===0||this.itemsPerPage===0)return 1;return Math.ceil(this.totalItems/this.itemsPerPage)}if(this.data.length===0||this.itemsPerPage===0)return 1;return Math.ceil(this.data.length/this.itemsPerPage)}handlePageChange(t){if(this.isLoading)return;if(t>=1&&t<=this.getTotalPages()){if(this.isServerSide){this.pageChange.emit(t)}else{this.internalCurrentPage=t;this.currentPage=t;this.pageChange.emit(t)}}}renderItems(){if(!this.itemComponent){console.warn("[udp-item-list] itemComponent prop is required.");return i("p",null,"Error: itemComponent prop is not defined.")}if(!this.componentDataMap){console.warn("[udp-item-list] componentDataMap prop is required.");return i("p",null,"Error: componentDataMap prop is not defined.")}const t=this.getPaginatedData();if(!t||t.length===0){return i("p",null,"No items to display.")}return t.map((t=>{const e={};for(const i in this.componentDataMap){if(t.hasOwnProperty(i)){const s=this.componentDataMap[i];e[s]=t[i]}}const s=this.itemComponent;return i(s,Object.assign({},e))}))}render(){if(this.isLoading&&(!this.data||this.data.length===0)){return i("div",{class:"loading-container"},i("p",null,"Loading..."))}const t={"item-list-container":true,[`spacing-${this.spacing}`]:true};return i("host",null,i("div",{class:t},this.renderItems()),this.pagination&&this.getTotalPages()>1&&i("udp-pagination",{currentPage:this.internalCurrentPage,totalPages:this.getTotalPages(),isLoading:this.isLoading,onPageChange:t=>this.handlePageChange(t.detail)}))}static get watchers(){return{currentPage:["currentPageChanged"]}}};h.style=c;export{o as udp_forms_list_card,h as udp_list_renderer};
2
+ //# sourceMappingURL=p-b53e1b9a.entry.js.map
@@ -0,0 +1,2 @@
1
+ import{r as t,c as i,h as e,H as r,a}from"./p-CaIWDYyq.js";import{i as o,a as n,d as s,b as l,c,e as d}from"./p-C5aOw4Ij.js";import{createForm as p}from"final-form";import u from"lodash.debounce";import{U as h}from"./p-DtiAfg0X.js";import{f,o as b}from"./p-DZv4MqyU.js";import v from"@carbon/icons/es/save/20";import"./p-Cn7PuhQz.js";import"axios";const y=':host(.udp-input){display:block;box-sizing:border-box;position:relative}:host(.udp-input--full-width){width:100%}:host(.udp-input--error){--input-border-color:var(--input-underline-color-error)}:host(.udp-input--disabled){pointer-events:none;opacity:0.5;cursor:not-allowed}:host(.udp-input--required){position:relative}:host(.udp-input--readonly){--input-background:var(--gray-02)}:host(.udp-input--hidden){display:none}:host(.udp-input--checked){--input-accent-color:var(--primary-color)}:host(.udp-input--multi-select){--list-max-height:200px}:host(.udp-input) .bx--text-input:focus{outline:none;}:host(.udp-input) .bx--form-item{margin-bottom:var(--spacing-05)}:host(.udp-input) .bx--label{display:block;margin-bottom:var(--spacing-03);color:var(--text-main);font-size:var(--caption-text-font-size);font-weight:var(--caption-text-font-weight);line-height:var(--caption-text-line-height)}@media (max-width: var(--breakpoint-xs-max)){:host(.udp-input){margin-bottom:var(--spacing-04)}:host(.udp-input) .bx--form-item{margin-bottom:var(--spacing-04)}}@media (min-width: var(--breakpoint-sm-min)){:host(.udp-input){min-height:2.5rem;}}:host(.udp-input--size-small) .bx--text-input,:host(.udp-input--size-small) textarea,:host(.udp-input--size-small) input[type="text"],:host(.udp-input--size-small) input[type="number"],:host(.udp-input--size-small) input[type="email"],:host(.udp-input--size-small) input[type="password"],:host(.udp-input--size-small) input[type="tel"],:host(.udp-input--size-small) input[type="url"],:host(.udp-input--size-small) input[type="search"]{padding:var(--spacing-02);padding-bottom:6px;font-size:var(--caption-font-size, 0.875rem)}:host(.udp-input--size-normal) .bx--text-input,:host(.udp-input--size-normal) textarea,:host(.udp-input--size-normal) input[type="text"],:host(.udp-input--size-normal) input[type="number"],:host(.udp-input--size-normal) input[type="email"],:host(.udp-input--size-normal) input[type="password"],:host(.udp-input--size-normal) input[type="tel"],:host(.udp-input--size-normal) input[type="url"],:host(.udp-input--size-normal) input[type="search"]{padding:var(--spacing-03);padding-bottom:9px;font-size:var(--body-font-size)}:host(.udp-input--size-large) .bx--text-input,:host(.udp-input--size-large) textarea,:host(.udp-input--size-large) input[type="text"],:host(.udp-input--size-large) input[type="number"],:host(.udp-input--size-large) input[type="email"],:host(.udp-input--size-large) input[type="password"],:host(.udp-input--size-large) input[type="tel"],:host(.udp-input--size-large) input[type="url"],:host(.udp-input--size-large) input[type="search"]{padding:var(--spacing-04);padding-bottom:12px;font-size:var(--body-font-size)}:host(.udp-input--margin-none){margin:0}:host(.udp-input--margin-dense){margin:var(--spacing-02) 0}:host(.udp-input--margin-normal){margin:var(--spacing-03) 0}:host(.udp-input--margin-comfortable){margin:var(--spacing-04) 0}:host(.udp-input--size-small) .bx--label{margin-bottom:var(--spacing-02);font-size:var(--caption-font-size, 0.875rem)}:host(.udp-input--size-normal) .bx--label{margin-bottom:var(--spacing-03);font-size:var(--body-font-size)}:host(.udp-input--size-large) .bx--label{margin-bottom:var(--spacing-04);font-size:var(--body-font-size)}.bx--text-input,textarea,input[type="text"],input[type="number"],input[type="email"],input[type="password"],input[type="tel"],input[type="url"],input[type="search"]{display:inline-block;padding:var(--spacing-03);padding-bottom:9px;box-sizing:border-box;border:none;font-size:var(--body-font-size);background:var(--input-background);border-bottom:var(--underline-standard) solid var(--input-underline-color, var(--gray-08));width:100%;font-family:var(--font-family);transition:border-bottom-color 0.15s ease-in-out}.bx--text-input:focus,textarea:focus,input[type="text"]:focus,input[type="number"]:focus,input[type="email"]:focus,input[type="password"]:focus,input[type="tel"]:focus,input[type="url"]:focus,input[type="search"]:focus{border-bottom-color:var(--input-underline-color-focus, var(--primary-color));border-bottom-width:2px}.bx--text-input--error,.bx--text-input:user-invalid,:host(.udp-input--error) .bx--text-input,:host(.udp-input--error) textarea,:host(.udp-input--error) input[type="text"],:host(.udp-input--error) input[type="number"],:host(.udp-input--error) input[type="email"],:host(.udp-input--error) input[type="password"],:host(.udp-input--error) input[type="tel"],:host(.udp-input--error) input[type="url"],:host(.udp-input--error) input[type="search"],input[type="text"]:user-invalid,input[type="number"]:user-invalid,input[type="email"]:user-invalid,input[type="password"]:user-invalid,input[type="tel"]:user-invalid,input[type="url"]:user-invalid,input[type="search"]:user-invalid{border-bottom-color:var(--input-underline-color-error, var(--error-color-main)) !important}:host(.udp-input--disabled) .bx--text-input,:host(.udp-input--disabled) textarea,:host(.udp-input--disabled) input[type="text"],:host(.udp-input--disabled) input[type="number"],:host(.udp-input--disabled) input[type="email"],:host(.udp-input--disabled) input[type="password"],:host(.udp-input--disabled) input[type="tel"],:host(.udp-input--disabled) input[type="url"],:host(.udp-input--disabled) input[type="search"]{border-bottom-color:var(--input-underline-color-disabled, var(--gray-08))}textarea.bx--text-input{resize:vertical;min-height:var(--spacing-08)}.bx--text-input::placeholder,textarea::placeholder,input[type="text"]::placeholder,input[type="number"]::placeholder,input[type="email"]::placeholder,input[type="password"]::placeholder,input[type="tel"]::placeholder,input[type="url"]::placeholder,input[type="search"]::placeholder{color:var(--placeholder-color, #999);opacity:1}:host(.udp-input),:host{display:block;width:100%;box-sizing:border-box}.bx--form-item{margin-bottom:var(--spacing-05)}.bx--label{display:block;margin-bottom:var(--spacing-03)}.error-message,.bx--form-requirement,:host(.udp-input--error) .error-message,:host(.udp-input--error) .bx--form-requirement{color:var(--error-color-main, #d32f2f) !important;margin-top:var(--spacing-02);font-size:var(--caption-font-size, 0.875rem);--unity-typography-inherit-color:var(--error-color-main, #d32f2f)}.helper-text{color:var(--text-02, #525252);margin-top:var(--spacing-02);font-size:var(--caption-font-size, 0.875rem)}:host(.udp-input--disabled) .bx--text-input,:host(.udp-input--disabled) textarea,:host(.udp-input--disabled) input,:host(.udp-input--disabled){cursor:not-allowed;opacity:0.6}:host(.udp-input--readonly) .bx--text-input,:host(.udp-input--readonly) textarea,:host(.udp-input--readonly) input{background-color:var(--field-01, #f4f4f4);cursor:default}:host(.udp-input--size-small) .signature-canvas{height:150px}:host(.udp-input--size-normal) .signature-canvas{height:200px}:host(.udp-input--size-large) .signature-canvas{height:250px}:host(.udp-input--size-small) .clear-button{padding:var(--spacing-01) var(--spacing-02);font-size:var(--caption-font-size, 0.875rem);top:var(--spacing-02);right:var(--spacing-02)}:host(.udp-input--size-normal) .clear-button{padding:var(--spacing-02) var(--spacing-03);font-size:var(--body-font-size);top:var(--spacing-02);right:var(--spacing-02)}:host(.udp-input--size-large) .clear-button{padding:var(--spacing-03) var(--spacing-04);font-size:var(--body-font-size);top:var(--spacing-03);right:var(--spacing-03)}.signature-pad-container{position:relative;border:1px solid var(--udp-mid-gray-color);border-radius:4px;background-color:var(--udp-light-gray-color)}.signature-canvas{display:block;width:100%;height:200px;}.signature-pad-container.readonly{background-color:var(--udp-disabled-gray-color)}.signature-canvas.readonly{cursor:not-allowed}.clear-button{position:absolute;top:var(--spacing-02);right:var(--spacing-02);background-color:var(--udp-light-gray-color);border:1px solid var(--udp-mid-gray-color);color:var(--udp-primary-color);cursor:pointer;border-radius:4px;padding:var(--spacing-02) var(--spacing-03);}.clear-button:hover{background-color:var(--udp-mid-gray-color)}.clear-button:disabled{cursor:not-allowed;opacity:0.5}';const m=class{constructor(e){t(this,e);this.change=i(this,"change");this.disabled=false;this.readonly=false;this.size="normal";this.margin="normal";this.handleResize=()=>{if(this.resizeTimeout)clearTimeout(this.resizeTimeout);this.resizeTimeout=setTimeout((()=>{const t=this.canvasEl.getBoundingClientRect();if(!this.lastCanvasRect||t.width!==this.lastCanvasRect.width||t.height!==this.lastCanvasRect.height){let i=this.signaturePad&&!this.signaturePad.isEmpty()?this.signaturePad.toDataURL():null;this.resizeCanvasForDPR();this.initializeSignaturePad();this.lastCanvasRect=t;if(i&&this.signaturePad){this.signaturePad.fromDataURL(i)}}}),200)};this.handleSignatureEnd=async()=>{if(this.signaturePad.isEmpty()){this.value=null;this.change.emit(null)}else{const t=this.signaturePad.toDataURL();const i=await this.urlToFile(t,"signature.png");this.value=i;this.change.emit(i)}};this.clearSignature=()=>{if(this.signaturePad){this.signaturePad.clear();this.handleSignatureEnd()}}}onErrorChange(t){this.internalError=t}async onValueChange(t){await this.loadSignaturePad();if(this.signaturePad){this.signaturePad.clear();if(t){this.loadSignature(t)}}}async onInitialValueChange(t){if(!t){return}try{const i=Array.isArray(t)?t[0]:t;if(!i)return;let e=null;if(typeof i==="string"&&o(i)){const t=await n(i);if(t){if(t.driveFileId){const i={name:t.name,driveFileId:t.driveFileId,extension:t.name.split(".").pop()||""};e=await s(i)}else{e=t}}}else if(l(i)){e=await s(i)}else if(typeof i==="string"){e=await c(i,"initial_signature.png")}else if(d(i)){e=i}if(e){this.value=e;this.resizeCanvasForDPR();this.initializeSignaturePad()}else{console.warn("Initial value could not be processed into a valid file:",i)}}catch(t){console.error("Failed to process initial value for signature pad:",t)}}async componentWillLoad(){this.internalError=this.error;await this.loadSignaturePad()}async componentDidLoad(){let t=this.initialValue;if(t){if(Array.isArray(t)){t=t[0]}if(l(this.initialValue)){console.log("Loading signature from UdpDriveFile:",this.initialValue);try{const t=await s(this.initialValue);this.value=t;this.readonly=false}catch(t){console.error("Failed to fetch UdpDriveFile for signature:",t);this.value=this.initialValue;this.readonly=true}}else{this.value=await this.urlToFile(this.initialValue,"initial_signature.png")}}this.resizeCanvasForDPR();this.initializeSignaturePad();this.lastCanvasRect=this.canvasEl.getBoundingClientRect();window.addEventListener("resize",this.handleResize)}disconnectedCallback(){window.removeEventListener("resize",this.handleResize);if(this.resizeTimeout)clearTimeout(this.resizeTimeout)}resizeCanvasForDPR(){if(!this.canvasEl)return;const t=window.devicePixelRatio||1;const i=this.canvasEl.getBoundingClientRect();this.canvasEl.width=i.width*t;this.canvasEl.height=i.height*t;this.canvasEl.getContext("2d").scale(t,t)}async loadSignaturePad(){if(!this.SignaturePadLib){try{const t=await import("signature_pad");this.SignaturePadLib=t.default}catch(t){console.error("Failed to load signature_pad library",t)}}}initializeSignaturePad(){this.resizeCanvasForDPR();if(this.SignaturePadLib&&this.canvasEl){this.signaturePad=new this.SignaturePadLib(this.canvasEl);this.signaturePad.addEventListener("endStroke",this.handleSignatureEnd);this.handleStateChange();if(this.value){this.loadSignature(this.value)}}}handleStateChange(){if(this.signaturePad){if(this.disabled||this.readonly){this.signaturePad.off()}else{this.signaturePad.on()}}}async loadSignature(t){let i;if(typeof t==="string"){i=t}else if(l(t)){try{const e=await s(t);i=URL.createObjectURL(e)}catch(t){console.error("Error loading signature image from UdpDriveFile:",t);return}}else if(t instanceof File){i=URL.createObjectURL(t)}if(i&&this.signaturePad){this.signaturePad.fromDataURL(i,{ratio:window.devicePixelRatio,width:this.canvasEl.width,height:this.canvasEl.height})}}async urlToFile(t,i){const e=await fetch(t);const r=await e.blob();return new File([r],i,{type:r.type})}render(){const t=!!this.internalError;const i={"signature-pad-container":true,readonly:this.readonly,disabled:this.disabled};return e(r,{key:"fbdb1a7c619c9d857b246cd0c22d76a2cdecbe5c",class:{"udp-input":true,"udp-input--error":t,"udp-input--disabled":this.disabled,"udp-input--required":this.required,"udp-input--readonly":this.readonly,[`udp-input--size-${this.size}`]:true,[`udp-input--margin-${this.margin}`]:true}},e("div",{key:"cc61b8c78a837a27815cefe6f05a44aa0cf79fd3",class:"bx--form-item"},this.label&&e("unity-typography",{key:"68d20d02f044f0ca1c0a8318b6ac01cbf5878258",variant:"caption-text"},e("label",{key:"33196dec5e0fda28b9e139837b8e0cad604731af",htmlFor:this.id,class:"bx--label"},this.label,this.required&&"*")),e("div",{key:"59421fd7fc93eabec847a43d035bdf23a8d837ed",class:i},e("canvas",{key:"66510e6aed0c582a24ada1dea11ebf0052288b0f",ref:t=>this.canvasEl=t,class:{"signature-canvas":true,readonly:this.readonly||this.disabled},id:this.id}),!this.readonly&&!this.disabled&&e("button",{key:"42389616c9eff97410fe944d7b561dc3c34482ce",type:"button",class:"clear-button",onClick:this.clearSignature,disabled:this.disabled},"Clear")),t&&e("div",{key:"560500b756625db1788770e2a5fb9c4c35f661ae",class:"error-message"},e("unity-typography",{key:"6a9ced9c1052e3a537759ad308f10a008312802c",variant:"caption-text",color:"error"},this.internalError))))}get el(){return a(this)}static get watchers(){return{error:["onErrorChange"],value:["onValueChange"],initialValue:["onInitialValueChange"],disabled:["handleStateChange"],readonly:["handleStateChange"]}}};m.style=y;const g=class{constructor(e){t(this,e);this.stencilFormInvalidEvent=i(this,"stencilFormInvalidEvent");this.dirtyChange=i(this,"dirtyChange");this.validateOnBlur=true;this.registeredFields={};this.customErrors={};this.handleSlotChange=()=>{const t=this.el.shadowRoot.querySelector("slot");if(!t)return;t.assignedNodes().forEach((t=>this.processNodeRecursively(t)))};this.submitWithValidation=this.submitWithValidation.bind(this);this.defaultValidation=this.defaultValidation.bind(this);this.submit=this.submit.bind(this);this.onFormChange=this.onFormChange.bind(this)}connectField(t){if(t.__connectedToForm)return;t.setFormApi({api:this.api,registeredFields:this.registeredFields,customErrors:this.customErrors});t.__connectedToForm=true}async processNodeRecursively(t){if(t.nodeType!==Node.ELEMENT_NODE){return}const i=t;if(i.localName.includes("-")){await customElements.whenDefined(i.localName)}if(i.matches("stencil-field")){this.connectField(i)}this.connectSubmitButtons(i);if(i.shadowRoot){for(const t of Array.from(i.shadowRoot.childNodes)){await this.processNodeRecursively(t)}}for(const t of Array.from(i.childNodes)){await this.processNodeRecursively(t)}}connectSubmitButtons(t){if(t.nodeType!==Node.ELEMENT_NODE){return}const i=t;if(i.matches('input[type="submit"], button[type="submit"]')){const t=i;if(!t.dataset.stencilFormConnected){t.dataset.stencilFormConnected="true";i.addEventListener("click",(t=>{t.preventDefault();this.submit(t)}))}}const e=i.querySelectorAll('input[type="submit"], button[type="submit"]');e.forEach((t=>{const i=t;if(!i.dataset.stencilFormConnected){i.dataset.stencilFormConnected="true";t.addEventListener("click",(t=>{t.preventDefault();this.submit(t)}))}}))}componentWillLoad(){this.api=p({onSubmit:this.submitWithValidation,initialValues:this.initialValues,validate:this.defaultValidation,validateOnBlur:this.validateOnBlur});if(this.handleChange){this.api.subscribe(this.onFormChange,{values:true})}this.api.subscribe((t=>{this.dirtyChange.emit(t.dirty)}),{dirty:true})}componentDidLoad(){const t=this.el.shadowRoot.querySelector("slot");this.observer=new MutationObserver((t=>{for(const i of t){i.addedNodes.forEach((t=>{this.processNodeRecursively(t)}))}}));const i=()=>{const i=(t===null||t===void 0?void 0:t.assignedNodes({flatten:true}))||[];i.forEach((t=>{if(t.nodeType===Node.ELEMENT_NODE){this.observer.observe(t,{childList:true,subtree:true});this.processNodeRecursively(t)}}))};if(t){i();t.addEventListener("slotchange",i)}this.observer.observe(this.el,{childList:true,subtree:true});this.el.dispatchEvent(new CustomEvent("stencilFormReady",{bubbles:true,composed:true}))}disconnectedCallback(){var t;this.api=null;this.registeredFields={};const i=(t=this.el.shadowRoot)===null||t===void 0?void 0:t.querySelector("slot");if(i){i.removeEventListener("slotchange",this.handleSlotChange)}}onFormChange(t){if(this.handleChange&&t.values){this.handleChange(t.values)}}async submitWithValidation(t){const i=this.defaultValidation(t);if(Object.keys(i).length===0){this.handleSubmit(t)}else{this.stencilFormInvalidEvent.emit(i)}}defaultValidation(t){const{registeredFields:i,customErrors:e}=this;const r={};Object.keys(i).forEach((e=>{var a;if(i[e].required&&(!t[e]||((a=t[e])===null||a===void 0?void 0:a.length)===0||t[e]==="false")){r[e]="This field is required"}}));if(e){Object.keys(e).forEach((t=>{if(e[t]){r[t]=e[t]}}))}if(this===null||this===void 0?void 0:this.handleValidate){const i=this.handleValidate(t,r);return Object.assign(Object.assign({},r),i)}return r}getValues(){const t={};this.api.getRegisteredFields().forEach((i=>{var e;t[i]=(e=this.api.getFieldState(i).value)!==null&&e!==void 0?e:""}));console.log(t);return t}async getApi(){if(!this.api){console.error("❌ Form API not initialized yet.");return null}this.api.getValues=()=>this.getValues();return this.api}submit(t){var i;(i=t===null||t===void 0?void 0:t.preventDefault)===null||i===void 0?void 0:i.call(t);const e=()=>{var t;const i=this.defaultValidation(this.getValues());if(Object.keys(i).length){this.stencilFormInvalidEvent.emit(i);return}(t=this.api)===null||t===void 0?void 0:t.submit()};u(e,1e3,{leading:true,trailing:false})()}render(){return e("form",{key:"57fac6a8c5a18c89ab72307a66c9bde0c601018c",onSubmit:this.submit},e("slot",{key:"4759a58068ac592dfeaab1d88a7f42547be8b3ec"}))}get el(){return a(this)}};const x=":host{display:block;width:100%}.tally-container{display:flex;flex-direction:column;gap:var(--spacing-02, 8px)}.tally-label{font-weight:600;margin-bottom:var(--spacing-02, 8px)}.tally-loading{display:flex;align-items:center;justify-content:center;padding:var(--spacing-04, 16px);color:var(--text-secondary, #6b7280)}.tally-content{display:flex;flex-direction:column;gap:var(--spacing-03, 12px)}.tally-stats{display:flex;gap:var(--spacing-04, 16px);flex-wrap:wrap}.tally-item{display:flex;flex-direction:column;align-items:center;padding:var(--spacing-03, 12px) var(--spacing-04, 16px);border-radius:var(--border-radius-01, 4px);border:1px solid var(--border-subtle, #e5e7eb);background-color:var(--layer-01, #ffffff);min-width:80px;flex:1;max-width:120px}.tally-item.tally-yes{border-color:var(--support-success, #42be65);background-color:var(--support-success-hover, #f6f8ff)}.tally-item.tally-no{border-color:var(--support-error, #da1e28);background-color:var(--support-error-hover, #fff1f1)}.tally-item.tally-unanswered{border-color:var(--support-warning, #f1c21b);background-color:var(--support-warning-hover, #fcf4d6)}.tally-count{font-weight:700;line-height:1.2;margin-bottom:var(--spacing-01, 4px)}.tally-yes .tally-count{color:var(--support-success, #42be65)}.tally-no .tally-count{color:var(--support-error, #da1e28)}.tally-unanswered .tally-count{color:var(--support-warning, #f1c21b)}.tally-item .tally-label{margin:0;font-weight:500;text-transform:uppercase;font-size:0.75rem;letter-spacing:0.02em}.tally-summary{padding:var(--spacing-02, 8px) 0;border-top:1px solid var(--border-subtle, #e5e7eb);text-align:center}.error-message{margin-top:var(--spacing-02, 8px);padding:var(--spacing-02, 8px);border-radius:var(--border-radius-01, 4px);background-color:var(--support-error-hover, #fff1f1);border:1px solid var(--support-error, #da1e28)}:host(.udp-input--size-small) .tally-item{padding:var(--spacing-02, 8px) var(--spacing-03, 12px);min-width:60px;max-width:90px}:host(.udp-input--size-small) .tally-count{font-size:1.25rem}:host(.udp-input--size-large) .tally-item{padding:var(--spacing-04, 16px) var(--spacing-05, 20px);min-width:100px;max-width:150px}:host(.udp-input--size-large) .tally-count{font-size:2rem}:host(.udp-input--margin-none) .tally-container{gap:0}:host(.udp-input--margin-dense) .tally-container{gap:var(--spacing-01, 4px)}:host(.udp-input--margin-comfortable) .tally-container{gap:var(--spacing-04, 16px)}:host(.udp-input--disabled) .tally-item{opacity:0.5;pointer-events:none}:host(.udp-input--readonly) .tally-item{background-color:var(--field-01, #f4f4f4)}@media (max-width: 480px){.tally-stats{flex-direction:column}.tally-item{max-width:none;flex:none}}";const w=class{constructor(i){t(this,i);this.label="Response Tally";this.yesCount=0;this.noCount=0;this.naCount=0;this.totalFields=0;this.disabled=false;this.readonly=false;this.size="normal";this.margin="normal"}render(){const t=!!this.error;const i=this.yesCount+this.noCount+this.naCount;const a=this.totalFields-i;return e(r,{key:"e70832a7be82ea3f53df3bc06b0194ed46d05f07",class:{"udp-input":true,"udp-input--error":t,"udp-input--disabled":this.disabled,"udp-input--readonly":this.readonly,[`udp-input--size-${this.size}`]:true,[`udp-input--margin-${this.margin}`]:true}},e("div",{key:"1926ed64b5652e92d39ebf735b18046dd7f906ad",class:"tally-container"},this.label&&e("unity-typography",{key:"a324b324caeab596ec7dc6587fe10f10ccc185cb",variant:"caption-text"},e("label",{key:"23ef28f8d34e3003107cc121e031e5fc0cb122fe",htmlFor:this.id,class:"tally-label"},this.label)),e("div",{key:"28c393290da3f3fee8c7d82dd686e8234d894844",class:"tally-content",id:this.id},e("div",{key:"7104a0a1fcdfa61a1d865d8cda60464121befe45",class:"tally-stats"},e("div",{key:"c743c8e990a753b657cb39453c039efce5c66636",class:"tally-item tally-yes"},e("unity-typography",{key:"9499309b4ccb1e321f04a42101887534452468cc",variant:"h4",class:"tally-count"},this.yesCount),e("unity-typography",{key:"6ffbc0edd30df2be26ec61d66ecf93f3f036e962",variant:"caption-text",class:"tally-label"},"Yes")),e("div",{key:"99fcf973f8b69622c32b64842894331f8740abf0",class:"tally-item tally-no"},e("unity-typography",{key:"cd6b12324049384b85f154e0cec72cebe56128f0",variant:"h4",class:"tally-count"},this.noCount),e("unity-typography",{key:"cc985586b310629ac16389225e116457361fe4b2",variant:"caption-text",class:"tally-label"},"No")),e("div",{key:"603468dfe92a730e6d3448994e2be6b48b07b5e1",class:"tally-item tally-na"},e("unity-typography",{key:"d55ee6a1f72e355cb907768062c771c89a601cb7",variant:"h4",class:"tally-count"},this.naCount),e("unity-typography",{key:"84217e46cacba4009a7079433e9ef56aa395727c",variant:"caption-text",class:"tally-label"},"Not Applicable")),a>0&&e("div",{key:"ca2a789a78fa47312db0b0ba550e50b1be906734",class:"tally-item tally-unanswered"},e("unity-typography",{key:"388bbaba571af7a2bbae6240b818237ad86c79a3",variant:"h4",class:"tally-count"},a),e("unity-typography",{key:"0bf1a145c8a081e576159ed98447b2626f7d23ff",variant:"caption-text",class:"tally-label"},"Unanswered"))),e("div",{key:"22627fff48cab72e895f7f51728455ba6ae84bf2",class:"tally-summary"},e("unity-typography",{key:"d491c8295d698be02874cf6108220f0254473a34",variant:"caption-text"},"Total Questions: ",this.totalFields))),t&&e("div",{key:"27b0e582ed93014a938dc66b5df146639d65be82",class:"error-message"},e("unity-typography",{key:"0a0ac562398899def5863296f9dff96ac9928c70",variant:"caption-text",color:"error"},this.error))))}};w.style=x;const z=".udp-icon-button{display:inline-flex;align-items:center;justify-content:center;gap:0.5rem;border:none;border-radius:var(--border-radius, 4px);cursor:pointer;font-family:inherit;font-weight:500;text-decoration:none;transition:all 0.2s ease-in-out;position:relative;outline:none;box-sizing:border-box}.udp-icon-button:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px}.udp-icon-button:disabled{opacity:0.6;cursor:not-allowed;pointer-events:none}.icon-container{display:flex;align-items:center;justify-content:center;flex-shrink:0}.icon{display:block;fill:currentColor}.label{display:flex;align-items:center}.size-small{min-height:32px;padding:6px;font-size:0.875rem}.size-small.has-label{padding:6px 12px}.size-small .icon{width:16px;height:16px}.size-medium{min-height:40px;padding:8px;font-size:0.875rem}.size-medium.has-label{padding:8px 16px}.size-medium .icon{width:20px;height:20px}.size-large{min-height:48px;padding:12px;font-size:1rem}.size-large.has-label{padding:12px 20px}.size-large .icon{width:24px;height:24px}.icon-only{border-radius:50%}.icon-only.size-small{width:32px;height:32px}.icon-only.size-medium{width:40px;height:40px}.icon-only.size-large{width:48px;height:48px}.variant-text{background:transparent;border:1px solid transparent}.variant-text:hover:not(:disabled){background:rgba(var(--primary-color-rgb, 0, 0, 0), 0.04)}.variant-text:active:not(:disabled){background:rgba(var(--primary-color-rgb, 0, 0, 0), 0.08)}.variant-outlined{background:transparent;border:1px solid currentColor}.variant-outlined:hover:not(:disabled){background:rgba(var(--primary-color-rgb, 0, 0, 0), 0.04)}.variant-outlined:active:not(:disabled){background:rgba(var(--primary-color-rgb, 0, 0, 0), 0.08)}.variant-contained{background:var(--primary-color, #1976d2);color:var(--primary-color-contrast, #fff);border:1px solid var(--primary-color, #1976d2)}.variant-contained:hover:not(:disabled){background:var(--primary-color-dark, #1565c0);border-color:var(--primary-color-dark, #1565c0)}.variant-contained:active:not(:disabled){background:var(--primary-color-darker, #0d47a1);border-color:var(--primary-color-darker, #0d47a1)}.color-primary{color:var(--primary-color, #1976d2)}.color-primary.variant-contained{background:var(--primary-color, #1976d2);color:var(--primary-color-contrast, #fff);border-color:var(--primary-color, #1976d2)}.color-secondary{color:var(--secondary-color, #dc004e)}.color-secondary.variant-contained{background:var(--secondary-color, #dc004e);color:var(--secondary-color-contrast, #fff);border-color:var(--secondary-color, #dc004e)}.color-secondary.variant-contained:hover:not(:disabled){background:var(--secondary-color-dark, #c5004a);border-color:var(--secondary-color-dark, #c5004a)}.color-success{color:var(--success-color, #2e7d32)}.color-success.variant-contained{background:var(--success-color, #2e7d32);color:var(--success-color-contrast, #fff);border-color:var(--success-color, #2e7d32)}.color-error{color:var(--error-color, #d32f2f)}.color-error.variant-contained{background:var(--error-color, #d32f2f);color:var(--error-color-contrast, #fff);border-color:var(--error-color, #d32f2f)}.color-warning{color:var(--warning-color, #ed6c02)}.color-warning.variant-contained{background:var(--warning-color, #ed6c02);color:var(--warning-color-contrast, #fff);border-color:var(--warning-color, #ed6c02)}.color-info{color:var(--info-color, #0288d1)}.color-info.variant-contained{background:var(--info-color, #0288d1);color:var(--info-color-contrast, #fff);border-color:var(--info-color, #0288d1)}.color-inherit{color:inherit}.color-inherit.variant-contained{background:currentColor;color:var(--background-color, #fff);border-color:currentColor}.icon-color-primary{fill:var(--primary-color, #1976d2) !important}.icon-color-secondary{fill:var(--secondary-color, #dc004e) !important}.icon-color-success{fill:var(--success-color, #2e7d32) !important}.icon-color-error{fill:var(--error-color, #d32f2f) !important}.icon-color-warning{fill:var(--warning-color, #ed6c02) !important}.icon-color-info{fill:var(--info-color, #0288d1) !important}.icon-color-inherit{fill:inherit !important}";const k=class{constructor(e){t(this,e);this.click=i(this,"click");this.variant="text";this.color="primary";this.size="medium";this.disabled=false;this.type="button";this.handleClick=t=>{if(!this.disabled){this.click.emit(t)}}}renderIcon(){if(!this.icon)return null;const t=this.icon;const i=this.iconColor?`icon-color-${this.iconColor}`:"";return e("svg",Object.assign({},t.attrs,{class:`icon ${i}`.trim()}),t.content.map(((t,i)=>{if(t.elem==="path"){return e("path",Object.assign({},t.attrs,{key:i}))}else if(t.elem==="circle"){return e("circle",Object.assign({},t.attrs,{key:i}))}return null})))}renderButton(){var t;const i=(t=this.el.textContent)===null||t===void 0?void 0:t.trim();const r=this.ariaLabel||this.tooltip||undefined;const a={"udp-icon-button":true,[`variant-${this.variant}`]:true,[`color-${this.color}`]:true,[`size-${this.size}`]:true,"has-label":!!i,"icon-only":!i};const o=e("button",{type:this.type,disabled:this.disabled,class:a,onClick:this.handleClick,"aria-label":r,title:this.tooltip,id:this.buttonId},e("span",{class:"icon-container"},this.renderIcon()),i&&e("span",{class:"label"},e("slot",null)));if(this.badgeContent){return e("udp-badge",{content:this.badgeContent},o)}return o}renderLink(){var t;const i=(t=this.el.textContent)===null||t===void 0?void 0:t.trim();const r=this.ariaLabel||this.tooltip||undefined;const a={"udp-icon-button":true,[`variant-${this.variant}`]:true,[`color-${this.color}`]:true,[`size-${this.size}`]:true,"has-label":!!i,"icon-only":!i};const o=e("a",{href:this.href,class:a,onClick:this.handleClick,"aria-label":r,title:this.tooltip,id:this.buttonId},e("span",{class:"icon-container"},this.renderIcon()),i&&e("span",{class:"label"},e("slot",null)));if(this.badgeContent){return e("udp-badge",{content:this.badgeContent},o)}return o}render(){var t;const i=(t=this.el.textContent)===null||t===void 0?void 0:t.trim();const r=this.href?this.renderLink():this.renderButton();if(this.tooltip&&!i){return e("udp-ambient-tool-tip",{content:this.tooltip},r)}return r}get el(){return a(this)}};k.style=z;async function C(t){let i=t;let e=null;while(i){const t=i.closest("stencil-form");if(t){e=t;break}const r=i.getRootNode();if(r instanceof ShadowRoot){i=r.host}else{break}}if(!e){return null}if(typeof e.getApi!=="function"){return null}const r=await e.getApi();if(!r){return null}return r}const O=".hidden{display:none}";const j=class{constructor(i){t(this,i);this.disabled=false;this.readonly=false;this.tallyData={yesCount:0,noCount:0,naCount:0,totalFields:0};this.formApi=null}propChanged(){this.updateFieldComponent()}async componentWillLoad(){this.updateFieldComponent();if(this.question.fieldTypeId===h.Tally){await this.initializeFormApiForTally()}}async initializeFormApiForTally(){try{this.formApi=await C(this.el);if(this.formApi){const t=this.formApi.subscribe((()=>{this.calculateTally()}),{active:true,dirty:true,values:true});this.unsubscribeFormApi=t;this.calculateTally()}}catch(t){console.error("Failed to initialize form API for tally:",t)}}calculateTally(){if(!this.formApi||this.question.fieldTypeId!==h.Tally){return}try{const t=this.formApi.getState().values;const i=this.el.closest("stencil-form");if(!i){return}const e=i.querySelectorAll("udp-question");const r=[];e.forEach((t=>{if(t.question&&t.question.fieldTypeId===h.YesNo){const i=t.question.processedSubmissionName;if(i){const t=this.shouldIncludeFieldInTally(i);if(t){r.push(i)}}}}));let a=0;let o=0;let n=0;r.forEach((i=>{const e=t[i];if(e==="true"||e===true){a++}else if(e==="false"||e===false){o++}else if(e==="na"){n++}}));this.tallyData={yesCount:a,noCount:o,naCount:n,totalFields:r.length};this.updateFieldComponent()}catch(t){console.error("Error calculating tally:",t)}}shouldIncludeFieldInTally(t){const i=this.question.fieldProperties;if((i===null||i===void 0?void 0:i.includeFields)&&i.includeFields.length>0){return i.includeFields.includes(t)}if((i===null||i===void 0?void 0:i.excludeFields)&&i.excludeFields.length>0){return!i.excludeFields.includes(t)}return true}updateFieldComponent(){this._fieldComponent=this.getFieldComponent()}getFieldComponent(){var t,i,r,a;const o={name:this.question.processedSubmissionName,required:this.question.required};const n=Object.assign(Object.assign({},this.question.fieldProperties),{id:this.questionNumber,disabled:this.disabled,readonly:this.readonly});switch(this.question.fieldTypeId){case h.SingleLineText:return e("stencil-field",Object.assign({},o),e("text-field",Object.assign({},n)));case h.MultiLineText:return e("stencil-field",Object.assign({},o),e("text-area",Object.assign({fullWidth:true},n)));case h.Checkbox:return e("stencil-field",Object.assign({},o),e("selectable-list",Object.assign({valueKey:"value",displayKey:"display",multiSelect:true,useCheckbox:true},n)));case h.RadioButton:return e("stencil-field",Object.assign({},o),e("selectable-list",Object.assign({valueKey:"value",displayKey:"display",useCheckbox:true},n)));case h.DropdownSingleSelect:case h.DropdownMultipleSelect:let s=(i=(t=n===null||n===void 0?void 0:n.items)===null||t===void 0?void 0:t.map)===null||i===void 0?void 0:i.call(t,(t=>Object.assign({label:t.display,value:t.value},n)));return e("stencil-field",Object.assign({},o),e("udp-selector",Object.assign({options:s!==null&&s!==void 0?s:[],multiSelect:this.question.fieldTypeId===h.DropdownMultipleSelect},n)));case h.YesNo:return e("stencil-field",Object.assign({},o),e("selectable-list",Object.assign({valueKey:"value",displayKey:"display",useCheckbox:true,multiSelect:false,items:[{value:"true",display:"Yes"},{value:"false",display:"No"},{value:"na",display:"Not Applicable"}]},n)));case h.ListMultiSelect:return e("stencil-field",Object.assign({},o),e("selectable-list",Object.assign({valueKey:"value",displayKey:"display",multiSelect:true},n)));case h.DateSelector:return e("stencil-field",Object.assign({},o),e("udp-date-selector",Object.assign({min:n===null||n===void 0?void 0:n.minDate,max:n===null||n===void 0?void 0:n.maxDate},n)));case h.TimeSelector:return e("stencil-field",Object.assign({},o),e("udp-time-selector",Object.assign({min:n===null||n===void 0?void 0:n.minTime,max:n===null||n===void 0?void 0:n.maxTime},n)));case h.DateTimeSelector:return e("stencil-field",Object.assign({},o),e("udp-datetime-selector",Object.assign({max:n===null||n===void 0?void 0:n.maxDateTime,min:n===null||n===void 0?void 0:n.minDateTime},n)));case h.FileUpload:return e("stencil-field",Object.assign({},o),e("file-upload",Object.assign({fullWidth:true,allowMultiple:false},n)));case h.Signature:return e("stencil-field",Object.assign({},o),e("signature-input",Object.assign({},n,{value:this.value})));case h.Paragraph:return this.value?e("unity-typography",{id:`paragraphText${this.question.name}`,variant:((a=(r=this.styleOverrides)===null||r===void 0?void 0:r.paragraphText)===null||a===void 0?void 0:a.variant)||"body"},this.value):e("div",null);case h.Number:return e("stencil-field",Object.assign({},o),e("numeric-field",Object.assign({},n)));case h.Tally:return e("tally-display",Object.assign({id:this.questionNumber,label:this.question.questionText||"Response Tally",yesCount:this.tallyData.yesCount,noCount:this.tallyData.noCount,naCount:this.tallyData.naCount,totalFields:this.tallyData.totalFields},n,{required:false}));case h.Hidden:default:return e("div",null)}}async componentDidLoad(){var t,i,e,r;if(this.question.fieldTypeId===h.Tally&&!this.formApi){await this.initializeFormApiForTally()}const a=[];for(const o in this.styleOverrides){a.push({id:o+this.question.name,fontOverride:(i=(t=this.styleOverrides)===null||t===void 0?void 0:t[o])===null||i===void 0?void 0:i.fontFamily,variant:(r=(e=this.styleOverrides)===null||e===void 0?void 0:e[o])===null||r===void 0?void 0:r.variant})}a.forEach((t=>{var i,e,r;if(!f[t===null||t===void 0?void 0:t.fontOverride]||!this.el||!this.el.shadowRoot)return;b((r=(e=(i=this.el)===null||i===void 0?void 0:i.shadowRoot)===null||e===void 0?void 0:e.getElementById)===null||r===void 0?void 0:r.call(e,t.id),f[t===null||t===void 0?void 0:t.fontOverride])}))}render(){var t,i,r,a;const o=this._fieldComponent;const n=`${this.question.fieldTypeId===h.Paragraph?"":`${this.questionNumber}.`} ${this.question.questionText} ${this.question.required&&this.question.fieldTypeId!==h.Paragraph?"*":""}`;if(!o)return null;return e("div",{class:this.question.fieldTypeId===h.Hidden?"hidden":""},this.question.questionText?e("unity-typography",{id:`questionText${this.question.name}`,variant:((i=(t=this.styleOverrides)===null||t===void 0?void 0:t.questionText)===null||i===void 0?void 0:i.variant)||"h3"},n):"",o,e("unity-typography",{id:`helperText${this.question.name}`,variant:((a=(r=this.styleOverrides)===null||r===void 0?void 0:r.helperText)===null||a===void 0?void 0:a.variant)||"caption-text"},this.question.helperText))}get el(){return a(this)}static get watchers(){return{question:["propChanged"],questionNumber:["propChanged"],value:["propChanged"],disabled:["propChanged"],readonly:["propChanged"],styleOverrides:["propChanged"]}}};j.style=O;const F=".floating-save-button{position:fixed;top:5rem;right:2rem;z-index:1000;animation:slideInDown 0.3s ease-out}.inline-save-button{position:relative;display:inline-flex;align-items:center;margin-left:auto;}.floating-save-button.saving,.inline-save-button.saving{pointer-events:none}.saving-state{display:flex;align-items:center;gap:0.5rem;padding:0.75rem 1rem;background:rgba(0, 0, 0, 0.8);color:white;border-radius:8px;font-size:0.9rem}.saved-state{display:flex;align-items:center;gap:0.5rem;padding:0.75rem 1rem;background:rgba(34, 139, 34, 0.9);color:white;border-radius:8px;font-size:0.9rem;animation:fadeIn 0.3s ease-out}.inline-save-button .saving-state{padding:0.5rem 0.75rem;background:rgba(0, 0, 0, 0.6);font-size:0.8rem}.inline-save-button .saved-state{padding:0.5rem 0.75rem;background:rgba(34, 139, 34, 0.8);font-size:0.8rem}.save-error-tooltip{position:absolute;top:100%;right:0;margin-top:0.5rem;background:#dc3545;color:white;padding:0.5rem 1rem;border-radius:8px;font-size:0.8rem;white-space:nowrap;box-shadow:0 4px 12px rgba(220, 53, 69, 0.3);animation:fadeIn 0.3s ease-out;z-index:1001}.save-error-tooltip::after{content:'';position:absolute;bottom:100%;right:1rem;border:6px solid transparent;border-bottom-color:#dc3545}.inline-save-button .save-error-tooltip{top:100%;bottom:auto;margin-top:0.5rem;margin-bottom:0}.inline-save-button .save-error-tooltip::after{top:-6px;border-top-color:transparent;border-bottom-color:#dc3545}@keyframes slideInDown{from{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@media (max-width: 768px){.floating-save-button{bottom:1rem;right:1rem;top:auto;}.saving-state{padding:0.6rem 0.8rem;font-size:0.8rem}.inline-save-button .saving-state{padding:0.4rem 0.6rem;font-size:0.75rem}}.primary-icon{--icon-color:var(--primary-color, #1976d2)}.primary-icon::part(icon){fill:var(--icon-color) !important}.primary-icon udp-icon-button::part(icon),.primary-icon .icon{fill:var(--primary-color, #1976d2) !important}@media (prefers-reduced-motion: reduce){.floating-save-button,.save-error-tooltip{animation:none}}";const $=class{constructor(i){t(this,i);this.isVisible=false;this.isSaving=false;this.saveError=null;this.showSavedMessage=false;this.shouldBeInline=false;this.formApi=null;this.handleSaveClick=async()=>{if(!this.formApi||this.isSaving){return}if(typeof this.handleSave!=="function"){return}const t=this.formApi.getValues();try{await this.handleSave(t);this.formApi.reset(t)}catch(t){console.error("The onSave handler threw an error. The form will remain dirty.",t)}}}async componentDidLoad(){this.formApi=await C(this.el);this.checkForOverlap();this.setupOverlapDetection()}disconnectedCallback(){if(this.resizeObserver){this.resizeObserver.disconnect()}if(this.checkOverlapTimeoutId){clearTimeout(this.checkOverlapTimeoutId)}}handleWindowResize(){this.debouncedOverlapCheck()}setupOverlapDetection(){if(typeof ResizeObserver!=="undefined"){this.resizeObserver=new ResizeObserver((()=>{this.debouncedOverlapCheck()}));const t=this.el.closest("udp-forms-ui, .form-container, udp-container");if(t){this.resizeObserver.observe(t)}const i=document.querySelector('main, [role="main"]')||document.body;if(i){this.resizeObserver.observe(i)}}}debouncedOverlapCheck(){if(this.checkOverlapTimeoutId){clearTimeout(this.checkOverlapTimeoutId)}this.checkOverlapTimeoutId=setTimeout((()=>{this.checkForOverlap()}),100)}checkForOverlap(){const t=1280;this.shouldBeInline=window.innerWidth<t}render(){if(!this.isVisible&&!this.showSavedMessage){return null}const t=this.shouldBeInline?"inline-save-button":"floating-save-button";const i=this.shouldBeInline;return e("div",{class:`${t} ${this.isSaving?"saving":""} ${this.showSavedMessage?"saved":""}`},this.isSaving?e("div",{class:"saving-state"},e("unity-spinner",{size:"small"}),!i&&e("span",null,"Saving...")):this.isVisible?e("udp-icon-button",{icon:v,onClick:this.handleSaveClick,tooltip:i?undefined:"Save Changes",variant:"contained",color:i?"inherit":"primary",iconColor:i?"primary":null,size:i?"small":"medium"},i?"":"Save Changes"):e("div",{class:"saved-state"},!i&&e("span",null,"Saved")),this.saveError&&e("div",{class:"save-error-tooltip"},this.saveError))}get el(){return a(this)}};$.style=F;export{m as signature_input,g as stencil_form,w as tally_display,k as udp_icon_button,j as udp_question,$ as udp_save_draft_button};
2
+ //# sourceMappingURL=p-c1966f2c.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["signatureInputCss","SignatureInput","constructor","hostRef","this","disabled","readonly","size","margin","handleResize","resizeTimeout","clearTimeout","setTimeout","rect","canvasEl","getBoundingClientRect","lastCanvasRect","width","height","dataURL","signaturePad","isEmpty","toDataURL","resizeCanvasForDPR","initializeSignaturePad","fromDataURL","handleSignatureEnd","async","value","change","emit","signatureFile","urlToFile","clearSignature","clear","onErrorChange","newValue","internalError","onValueChange","loadSignaturePad","loadSignature","onInitialValueChange","Array","isArray","loadedFile","isFileReference","parsedFile","parseFileReference","driveFileId","udpInfo","name","extension","split","pop","downloadFileFromUdpDriveFile","isUdpDriveFile","createFileFromString","isFile","console","warn","err","error","componentWillLoad","componentDidLoad","file","initialValue","log","window","addEventListener","disconnectedCallback","removeEventListener","ratio","devicePixelRatio","getContext","scale","SignaturePadLib","module","import","default","e","handleStateChange","off","on","signatureValue","imageUrl","URL","createObjectURL","File","url","filename","res","fetch","blob","type","render","isError","containerClasses","h","Host","key","class","required","label","variant","htmlFor","id","ref","el","onClick","color","StencilForm","validateOnBlur","registeredFields","customErrors","handleSlotChange","slot","shadowRoot","querySelector","assignedNodes","forEach","node","processNodeRecursively","submitWithValidation","bind","defaultValidation","submit","onFormChange","connectField","field","__connectedToForm","setFormApi","api","nodeType","Node","ELEMENT_NODE","element","localName","includes","customElements","whenDefined","matches","connectSubmitButtons","child","from","childNodes","htmlElement","dataset","stencilFormConnected","preventDefault","submitButtons","querySelectorAll","button","htmlButton","createForm","onSubmit","initialValues","validate","handleChange","subscribe","values","formState","dirtyChange","dirty","observer","MutationObserver","mutations","mutation","addedNodes","observeAssignedNodes","flatten","observe","childList","subtree","dispatchEvent","CustomEvent","bubbles","composed","_a","errors","Object","keys","length","handleSubmit","stencilFormInvalidEvent","handleValidate","assign","getValues","getRegisteredFields","fieldName","getFieldState","getApi","call","submitFunction","debounce","leading","trailing","tallyCss","TallyDisplay","yesCount","noCount","naCount","totalFields","answeredCount","unansweredCount","udpIconButtonCss","UdpIconButton","handleClick","event","click","renderIcon","icon","iconData","iconColorClass","iconColor","attrs","trim","content","map","item","index","elem","renderButton","hasLabel","textContent","ariaLabel","tooltip","undefined","buttonClasses","buttonContent","title","buttonId","badgeContent","renderLink","linkClasses","linkContent","href","useFormApi","current","form","foundForm","closest","root","getRootNode","ShadowRoot","host","formApi","udpQuestionCss","UdpQuestion","tallyData","propChanged","updateFieldComponent","question","fieldTypeId","UdpFormsFieldTypeEnum","Tally","initializeFormApiForTally","unsubscribe","calculateTally","active","unsubscribeFormApi","formValues","getState","formElement","questionElements","yesNoFields","questionEl","YesNo","processedSubmissionName","shouldInclude","shouldIncludeFieldInTally","push","fieldProps","fieldProperties","includeFields","excludeFields","_fieldComponent","getFieldComponent","props","questionNumber","SingleLineText","MultiLineText","fullWidth","Checkbox","valueKey","displayKey","multiSelect","useCheckbox","RadioButton","DropdownSingleSelect","DropdownMultipleSelect","options","_b","items","display","ListMultiSelect","DateSelector","min","minDate","max","maxDate","TimeSelector","minTime","maxTime","DateTimeSelector","maxDateTime","minDateTime","FileUpload","allowMultiple","Signature","Paragraph","_d","_c","styleOverrides","paragraphText","Number","questionText","Hidden","variantsAndOverrides","override","fontOverride","fontFamily","fontOverrideMapping","overrideFont","getElementById","component","titleText","helperText","udpSaveDraftButtonCss","UdpSaveDraftButton","isVisible","isSaving","saveError","showSavedMessage","shouldBeInline","handleSaveClick","handleSave","reset","checkForOverlap","setupOverlapDetection","resizeObserver","disconnect","checkOverlapTimeoutId","handleWindowResize","debouncedOverlapCheck","ResizeObserver","formContainer","mainContent","document","body","minWidthNeeded","innerWidth","containerClass","isInlineMode","Save"],"sources":["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/buttons/udp-icon-button/udp-icon-button.css?tag=udp-icon-button&encapsulation=shadow","src/components/my-component/UI/buttons/udp-icon-button/udp-icon-button.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-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":["@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 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\n @State() private internalError: string;\n @State() private signaturePad: SignaturePad;\n\n private canvasEl: HTMLCanvasElement;\n private SignaturePadLib: typeof SignaturePad;\n\n private lastCanvasRect: DOMRect;\n private resizeTimeout: any;\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\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 private handleSignatureEnd = async () => {\n if (this.signaturePad.isEmpty()) {\n this.value = null;\n this.change.emit(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 };\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","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 } } = {};\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\n this.api.subscribe(\n formState => {\n this.dirtyChange.emit(formState.dirty);\n },\n { dirty: 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 // Check for required field validation\n Object.keys(registeredFields).forEach(field => {\n if (registeredFields[field].required && (!values[field] || values[field]?.length === 0 || values[field] === 'false')) {\n errors[field] = 'This field is required';\n }\n });\n\n // Include custom errors from stencil-field components (like min/max validation)\n if (customErrors) {\n Object.keys(customErrors).forEach(field => {\n if (customErrors[field]) {\n errors[field] = customErrors[field];\n }\n });\n }\n\n // If custom validation is provided, merge with default validation\n if (this?.handleValidate) {\n const customErrors = this.handleValidate(values, errors);\n return { ...errors, ...customErrors };\n }\n\n return errors;\n }\n\n getValues() {\n const values = {};\n this.api.getRegisteredFields().forEach((fieldName: string) => {\n values[fieldName] = this.api.getFieldState(fieldName).value ?? '';\n });\n console.log(values);\n return values;\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 // @ts-ignore\n this.api.getValues = () => this.getValues();\n return this.api;\n }\n\n submit(e) {\n e?.preventDefault?.();\n const submitFunction = () => {\n const errors = this.defaultValidation(this.getValues());\n\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 onSubmit={this.submit}>\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","/* Base icon button styles */\n.udp-icon-button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 0.5rem;\n border: none;\n border-radius: var(--border-radius, 4px);\n cursor: pointer;\n font-family: inherit;\n font-weight: 500;\n text-decoration: none;\n transition: all 0.2s ease-in-out;\n position: relative;\n outline: none;\n box-sizing: border-box;\n}\n\n.udp-icon-button:focus-visible {\n outline: 2px solid var(--primary-color);\n outline-offset: 2px;\n}\n\n.udp-icon-button:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n pointer-events: none;\n}\n\n/* Icon container */\n.icon-container {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.icon {\n display: block;\n fill: currentColor;\n}\n\n/* Label */\n.label {\n display: flex;\n align-items: center;\n}\n\n/* Size variants */\n.size-small {\n min-height: 32px;\n padding: 6px;\n font-size: 0.875rem;\n}\n\n.size-small.has-label {\n padding: 6px 12px;\n}\n\n.size-small .icon {\n width: 16px;\n height: 16px;\n}\n\n.size-medium {\n min-height: 40px;\n padding: 8px;\n font-size: 0.875rem;\n}\n\n.size-medium.has-label {\n padding: 8px 16px;\n}\n\n.size-medium .icon {\n width: 20px;\n height: 20px;\n}\n\n.size-large {\n min-height: 48px;\n padding: 12px;\n font-size: 1rem;\n}\n\n.size-large.has-label {\n padding: 12px 20px;\n}\n\n.size-large .icon {\n width: 24px;\n height: 24px;\n}\n\n/* Icon-only specific styles */\n.icon-only {\n border-radius: 50%;\n}\n\n.icon-only.size-small {\n width: 32px;\n height: 32px;\n}\n\n.icon-only.size-medium {\n width: 40px;\n height: 40px;\n}\n\n.icon-only.size-large {\n width: 48px;\n height: 48px;\n}\n\n/* Variant styles - Text */\n.variant-text {\n background: transparent;\n border: 1px solid transparent;\n}\n\n.variant-text:hover:not(:disabled) {\n background: rgba(var(--primary-color-rgb, 0, 0, 0), 0.04);\n}\n\n.variant-text:active:not(:disabled) {\n background: rgba(var(--primary-color-rgb, 0, 0, 0), 0.08);\n}\n\n/* Variant styles - Outlined */\n.variant-outlined {\n background: transparent;\n border: 1px solid currentColor;\n}\n\n.variant-outlined:hover:not(:disabled) {\n background: rgba(var(--primary-color-rgb, 0, 0, 0), 0.04);\n}\n\n.variant-outlined:active:not(:disabled) {\n background: rgba(var(--primary-color-rgb, 0, 0, 0), 0.08);\n}\n\n/* Variant styles - Contained */\n.variant-contained {\n background: var(--primary-color, #1976d2);\n color: var(--primary-color-contrast, #fff);\n border: 1px solid var(--primary-color, #1976d2);\n}\n\n.variant-contained:hover:not(:disabled) {\n background: var(--primary-color-dark, #1565c0);\n border-color: var(--primary-color-dark, #1565c0);\n}\n\n.variant-contained:active:not(:disabled) {\n background: var(--primary-color-darker, #0d47a1);\n border-color: var(--primary-color-darker, #0d47a1);\n}\n\n/* Color variants - Primary */\n.color-primary {\n color: var(--primary-color, #1976d2);\n}\n\n.color-primary.variant-contained {\n background: var(--primary-color, #1976d2);\n color: var(--primary-color-contrast, #fff);\n border-color: var(--primary-color, #1976d2);\n}\n\n/* Color variants - Secondary */\n.color-secondary {\n color: var(--secondary-color, #dc004e);\n}\n\n.color-secondary.variant-contained {\n background: var(--secondary-color, #dc004e);\n color: var(--secondary-color-contrast, #fff);\n border-color: var(--secondary-color, #dc004e);\n}\n\n.color-secondary.variant-contained:hover:not(:disabled) {\n background: var(--secondary-color-dark, #c5004a);\n border-color: var(--secondary-color-dark, #c5004a);\n}\n\n/* Color variants - Success */\n.color-success {\n color: var(--success-color, #2e7d32);\n}\n\n.color-success.variant-contained {\n background: var(--success-color, #2e7d32);\n color: var(--success-color-contrast, #fff);\n border-color: var(--success-color, #2e7d32);\n}\n\n/* Color variants - Error */\n.color-error {\n color: var(--error-color, #d32f2f);\n}\n\n.color-error.variant-contained {\n background: var(--error-color, #d32f2f);\n color: var(--error-color-contrast, #fff);\n border-color: var(--error-color, #d32f2f);\n}\n\n/* Color variants - Warning */\n.color-warning {\n color: var(--warning-color, #ed6c02);\n}\n\n.color-warning.variant-contained {\n background: var(--warning-color, #ed6c02);\n color: var(--warning-color-contrast, #fff);\n border-color: var(--warning-color, #ed6c02);\n}\n\n/* Color variants - Info */\n.color-info {\n color: var(--info-color, #0288d1);\n}\n\n.color-info.variant-contained {\n background: var(--info-color, #0288d1);\n color: var(--info-color-contrast, #fff);\n border-color: var(--info-color, #0288d1);\n}\n\n/* Color variants - Inherit */\n.color-inherit {\n color: inherit;\n}\n\n.color-inherit.variant-contained {\n background: currentColor;\n color: var(--background-color, #fff);\n border-color: currentColor;\n}\n\n/* Icon color overrides - allows independent icon coloring */\n.icon-color-primary {\n fill: var(--primary-color, #1976d2) !important;\n}\n\n.icon-color-secondary {\n fill: var(--secondary-color, #dc004e) !important;\n}\n\n.icon-color-success {\n fill: var(--success-color, #2e7d32) !important;\n}\n\n.icon-color-error {\n fill: var(--error-color, #d32f2f) !important;\n}\n\n.icon-color-warning {\n fill: var(--warning-color, #ed6c02) !important;\n}\n\n.icon-color-info {\n fill: var(--info-color, #0288d1) !important;\n}\n\n.icon-color-inherit {\n fill: inherit !important;\n}\n","import { Component, Prop, h, Event, EventEmitter, Element } from '@stencil/core';\n\n/**\n * UdpIconButton is a versatile icon button component that matches the udp-button API.\n * It's designed to replace the deprecated `stencil-icon-button` with better consistency.\n *\n * Key improvements over `stencil-icon-button`:\n * - Consistent API with `udp-button`\n * - Better theming support using global CSS variables\n * - Improved accessibility\n * - Cleaner prop structure\n * - Better TypeScript support\n *\n * Migration from `stencil-icon-button`:\n * - `iconName` → Not needed, use `icon` prop directly\n * - `iconClassName` → Not needed, styling handled by component\n * - `secondary=true` → `variant='text'` or `variant='outlined'`\n * - `noBackground=true` → `variant='text'`\n * - `darkIcon` → Use `color` prop instead\n * - `showLabel` → Use slot content (if content provided, label shows)\n * - `count` → Use `badgeContent` prop\n */\n@Component({\n tag: 'udp-icon-button',\n styleUrl: 'udp-icon-button.css',\n shadow: true,\n})\nexport class UdpIconButton {\n @Element() el: HTMLElement;\n\n /**\n * The variant to use.\n * - `text`: Typically used for less-pronounced actions (replaces noBackground=true).\n * - `outlined`: Emphasizes actions with a border.\n * - `contained`: High-emphasis, distinguished by a background color.\n */\n @Prop() variant: 'text' | 'outlined' | 'contained' = 'text';\n\n /**\n * The color of the component. It supports theming using global CSS variables.\n * `inherit` will inherit the color from its parent.\n */\n @Prop() color: 'primary' | 'secondary' | 'success' | 'error' | 'warning' | 'info' | 'inherit' = 'primary';\n\n /**\n * The size of the component.\n */\n @Prop() size: 'small' | 'medium' | 'large' = 'medium';\n\n /**\n * If `true`, the component is disabled.\n */\n @Prop() disabled: boolean = false;\n\n /**\n * The URL to link to when the button is clicked. If provided, the component renders as an `<a>` tag.\n */\n @Prop() href?: string;\n\n /**\n * The type of the button. Only used if `href` is not set.\n * Corresponds to the native `type` attribute of a `<button>` element.\n */\n @Prop() type: 'button' | 'submit' | 'reset' = 'button';\n\n /**\n * The icon to display. Should be a Carbon icon or similar SVG icon object.\n * Expected format: { attrs: {...}, content: [...] }\n */\n @Prop() icon: any;\n\n /**\n * Tooltip text to display on hover.\n */\n @Prop() tooltip?: string;\n\n /**\n * If provided, displays a badge with this content over the icon.\n * Replaces the old `count` prop from stencil-icon-button.\n * Must be a number as required by udp-badge component.\n */\n @Prop() badgeContent?: number;\n\n /**\n * Emitted when the button is clicked.\n */\n @Event() click: EventEmitter<MouseEvent>;\n\n /**\n * Optional aria-label for accessibility.\n * If not provided and tooltip exists, tooltip will be used.\n */\n @Prop() ariaLabel?: string;\n\n /**\n * Optional button ID for testing/tracking purposes.\n */\n @Prop() buttonId?: string;\n\n /**\n * The color of the icon. If not provided, uses the button's color.\n * Allows independent control of icon color from button color.\n */\n @Prop() iconColor?: 'primary' | 'secondary' | 'success' | 'error' | 'warning' | 'info' | 'inherit';\n\n private handleClick = (event: MouseEvent) => {\n if (!this.disabled) {\n this.click.emit(event);\n }\n };\n\n private renderIcon() {\n if (!this.icon) return null;\n\n const iconData = this.icon;\n const iconColorClass = this.iconColor ? `icon-color-${this.iconColor}` : '';\n\n return (\n <svg {...iconData.attrs} class={`icon ${iconColorClass}`.trim()}>\n {iconData.content.map((item, index) => {\n if (item.elem === 'path') {\n return <path {...item.attrs} key={index} />;\n } else if (item.elem === 'circle') {\n return <circle {...item.attrs} key={index} />;\n }\n return null;\n })}\n </svg>\n );\n }\n\n private renderButton() {\n const hasLabel = this.el.textContent?.trim();\n const ariaLabel = this.ariaLabel || this.tooltip || undefined;\n\n const buttonClasses = {\n 'udp-icon-button': true,\n [`variant-${this.variant}`]: true,\n [`color-${this.color}`]: true,\n [`size-${this.size}`]: true,\n 'has-label': !!hasLabel,\n 'icon-only': !hasLabel,\n };\n\n const buttonContent = (\n <button\n type={this.type}\n disabled={this.disabled}\n class={buttonClasses}\n onClick={this.handleClick}\n aria-label={ariaLabel}\n title={this.tooltip}\n id={this.buttonId}\n >\n <span class=\"icon-container\">\n {this.renderIcon()}\n </span>\n {hasLabel && (\n <span class=\"label\">\n <slot></slot>\n </span>\n )}\n </button>\n );\n\n // Wrap with badge if badgeContent is provided\n if (this.badgeContent) {\n return (\n <udp-badge content={this.badgeContent}>\n {buttonContent}\n </udp-badge>\n );\n }\n\n return buttonContent;\n }\n\n private renderLink() {\n const hasLabel = this.el.textContent?.trim();\n const ariaLabel = this.ariaLabel || this.tooltip || undefined;\n\n const linkClasses = {\n 'udp-icon-button': true,\n [`variant-${this.variant}`]: true,\n [`color-${this.color}`]: true,\n [`size-${this.size}`]: true,\n 'has-label': !!hasLabel,\n 'icon-only': !hasLabel,\n };\n\n const linkContent = (\n <a\n href={this.href}\n class={linkClasses}\n onClick={this.handleClick}\n aria-label={ariaLabel}\n title={this.tooltip}\n id={this.buttonId}\n >\n <span class=\"icon-container\">\n {this.renderIcon()}\n </span>\n {hasLabel && (\n <span class=\"label\">\n <slot></slot>\n </span>\n )}\n </a>\n );\n\n // Wrap with badge if badgeContent is provided\n if (this.badgeContent) {\n return (\n <udp-badge content={this.badgeContent}>\n {linkContent}\n </udp-badge>\n );\n }\n\n return linkContent;\n }\n\n render() {\n // Wrap with tooltip if tooltiprovided and no label\n const hasLabel = this.el.textContent?.trim();\n const content = this.href ? this.renderLink() : this.renderButton();\n\n if (this.tooltip && !hasLabel) {\n return (\n <udp-ambient-tool-tip content={this.tooltip}>\n {content}\n </udp-ambient-tool-tip>\n );\n }\n\n return content;\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: HTMLElement | 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","import { Component, ComponentInterface, Element, h, Prop, State, Watch } from '@stencil/core';\nimport { UdpFormQuestion } from '../types';\nimport { UdpFormsFieldTypeEnum } from '../enums';\nimport { FontOverrides } from '../types';\nimport { fontOverrideMapping, overrideFont } from '../utils';\nimport { useFormApi } from '../../form/useFormApi';\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\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.processedSubmissionName;\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 value = formValues[fieldName];\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\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.processedSubmissionName,\n required: this.question.required,\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\n valueKey=\"value\"\n displayKey=\"display\"\n multiSelect={true}\n useCheckbox={true}\n {...fieldProps}\n />\n </stencil-field>\n );\n case UdpFormsFieldTypeEnum.RadioButton:\n return (\n <stencil-field {...props}>\n <selectable-list\n valueKey=\"value\"\n displayKey=\"display\"\n useCheckbox={true}\n {...fieldProps}\n />\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\n options={options ?? []}\n multiSelect={this.question.fieldTypeId === UdpFormsFieldTypeEnum.DropdownMultipleSelect}\n {...fieldProps}\n />\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\n valueKey=\"value\"\n displayKey=\"display\"\n multiSelect={true}\n {...fieldProps}\n />\n </stencil-field>\n );\n case UdpFormsFieldTypeEnum.DateSelector:\n return (\n <stencil-field {...props}>\n <udp-date-selector\n min={fieldProps?.minDate}\n max={fieldProps?.maxDate}\n {...fieldProps}\n />\n </stencil-field>\n );\n case UdpFormsFieldTypeEnum.TimeSelector:\n return (\n <stencil-field {...props}>\n <udp-time-selector\n min={fieldProps?.minTime}\n max={fieldProps?.maxTime}\n {...fieldProps}\n />\n </stencil-field>\n );\n case UdpFormsFieldTypeEnum.DateTimeSelector:\n return (\n <stencil-field {...props}>\n <udp-datetime-selector\n max={fieldProps?.maxDateTime}\n min={fieldProps?.minDateTime}\n {...fieldProps}\n />\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.Signature:\n return (\n <stencil-field {...props}>\n <signature-input {...fieldProps} value={this.value} />\n </stencil-field>\n );\n case UdpFormsFieldTypeEnum.Paragraph:\n return this.value ? <unity-typography id={`paragraphText${this.question.name}`} variant={this.styleOverrides?.paragraphText?.variant || 'body'} >{this.value}</unity-typography> : <div />;\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 }\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 }\n render() {\n\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 if (!component) return null;\n return (\n <div class={this.question.fieldTypeId === UdpFormsFieldTypeEnum.Hidden ? 'hidden' : ''}>\n {this.question.questionText ? <unity-typography id={`questionText${this.question.name}`} variant={this.styleOverrides?.questionText?.variant || 'h3'} >{titleText}</unity-typography> : ''}\n {component}\n\n <unity-typography id={`helperText${this.question.name}`} variant={this.styleOverrides?.helperText?.variant || 'caption-text'} >{this.question.helperText}</unity-typography>\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() saveError: 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.getValues();\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={isInlineMode ? undefined : '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 {!isInlineMode && <span>Saved</span>}\n </div>\n )}\n\n {this.saveError && <div class=\"save-error-tooltip\">{this.saveError}</div>}\n </div>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import{r as t,h as e}from"./p-CaIWDYyq.js";const i=class{constructor(i){t(this,i);this.activeStep=0;this.completed={};this.step1=e("div",null,"This is step 1 content - Try clicking next!");this.step2=e("div",null,"This is step 2 content - You can go back or forward");this.step3=e("div",null,"This is step 3 content - Final step!");this.steps=[{stepDisplay:{inProcessIcon:"1",completeIcon:"✓",title:"First Step",subTitle:"Start here"},stepTitle:"Step 1",showTitle:true,buttons:[{title:"Next",action:2,variant:"default",customAction:()=>{this.completed=Object.assign(Object.assign({},this.completed),{[0]:true});this.activeStep=1}}],content:this.step1},{stepDisplay:{inProcessIcon:"2",completeIcon:"✓",title:"Second Step",subTitle:"Middle step"},stepTitle:"Step 2",showTitle:true,buttons:[{title:"Back",action:1,variant:"outline",customAction:()=>this.activeStep=0},{title:"Next",action:3,variant:"default",customAction:()=>{this.completed=Object.assign(Object.assign({},this.completed),{[1]:true});this.activeStep=2}}],content:this.step2},{stepDisplay:{inProcessIcon:"3",completeIcon:"✓",title:"Final Step",subTitle:"Complete the process"},stepTitle:"Step 3",showTitle:true,buttons:[{title:"Back",action:2,customAction:()=>this.activeStep=1},{title:"Finish",action:3,variant:"default",customAction:()=>{this.completed=Object.assign(Object.assign({},this.completed),{[2]:true});console.log("Process completed!")}}],content:this.step3}];this.handleStepChange=t=>{this.activeStep=t}}render(){return e("div",{key:"9ef8e3c29b52950c9107604e9926779a4b1390ff",style:{padding:"2rem"}},e("unity-typography",{key:"129fca81d58dadf60c642ce71d6998a04ffb5866",variant:"h2"},"Horizontal Stepper with Labels bottom"),e("udp-stepper",{key:"23fdf08f0cb1008c7dce1951f2c7dcd08aa5d9bb",steps:this.steps,activeStep:this.activeStep,completed:this.completed,stepChange:this.handleStepChange,orientation:"horizontal",labelDisplay:"all",labelPosition:"bottom"}),e("unity-typography",{key:"895d3b1b55d32818c357ca32b2b8eb35b7a53faa",variant:"h2"},"Horizontal Stepper without Labels"),e("udp-stepper",{key:"46620d533b8bb79c2eb80fc2de4a84e34aaa49d4",steps:this.steps,activeStep:this.activeStep,completed:this.completed,stepChange:this.handleStepChange,orientation:"horizontal",labelDisplay:"none",labelPosition:"bottom"}),e("unity-typography",{key:"d4687b9b0bda118186b8d0bf923ce4181c202e4e",variant:"h2"},"Horizontal Stepper with Labels to Right"),e("udp-stepper",{key:"ae6eb63003f34e01f6d90b1a19f53c3e3460aa5e",steps:this.steps,activeStep:this.activeStep,completed:this.completed,stepChange:this.handleStepChange,orientation:"horizontal",labelDisplay:"all",labelPosition:"right"}),e("unity-typography",{key:"3b164683fed82038c2a235357eeaffe85088e6a6",variant:"h2"},"Vertical Stepper"),e("udp-stepper",{key:"28bdfa1403f1f38cdc431e0a09e58f70392ee95f",steps:this.steps,activeStep:this.activeStep,completed:this.completed,stepChange:this.handleStepChange,orientation:"vertical",labelDisplay:"all",labelPosition:"right"}))}};export{i as udp_stepper_demo};
2
- //# sourceMappingURL=p-0de6045a.entry.js.map
1
+ import{r as t,h as e}from"./p-CaIWDYyq.js";const i=class{constructor(i){t(this,i);this.activeStep=0;this.completed={};this.step1=e("div",null,"This is step 1 content - Try clicking next!");this.step2=e("div",null,"This is step 2 content - You can go back or forward");this.step3=e("div",null,"This is step 3 content - Final step!");this.steps=[{stepDisplay:{inProcessIcon:"1",completeIcon:"✓",title:"First Step",subTitle:"Start here"},stepTitle:"Step 1",showTitle:true,buttons:[{title:"Next",action:2,variant:"default",customAction:()=>{this.completed=Object.assign(Object.assign({},this.completed),{[0]:true});this.activeStep=1}}],content:this.step1},{stepDisplay:{inProcessIcon:"2",completeIcon:"✓",title:"Second Step",subTitle:"Middle step"},stepTitle:"Step 2",showTitle:true,buttons:[{title:"Back",action:1,variant:"outline",customAction:()=>this.activeStep=0},{title:"Next",action:3,variant:"default",customAction:()=>{this.completed=Object.assign(Object.assign({},this.completed),{[1]:true});this.activeStep=2}}],content:this.step2},{stepDisplay:{inProcessIcon:"3",completeIcon:"✓",title:"Final Step",subTitle:"Complete the process"},stepTitle:"Step 3",showTitle:true,buttons:[{title:"Back",action:2,customAction:()=>this.activeStep=1},{title:"Finish",action:3,variant:"default",customAction:()=>{this.completed=Object.assign(Object.assign({},this.completed),{[2]:true});console.log("Process completed!")}}],content:this.step3}];this.handleStepChange=t=>{this.activeStep=t}}render(){return e("div",{key:"6516e89f4536b2e7206ccdf67aeb58a6b9cde9e1",style:{padding:"2rem"}},e("unity-typography",{key:"d353bbf42fda0c08a0d2cfa3f8af3f95e5b0886a",variant:"h2"},"Horizontal Stepper with Labels bottom"),e("udp-stepper",{key:"ea2701e37dcf5ca61aaf604f4af4e6d89e3ff3a0",steps:this.steps,activeStep:this.activeStep,completed:this.completed,stepChange:this.handleStepChange,orientation:"horizontal",labelDisplay:"all",labelPosition:"bottom"}),e("unity-typography",{key:"43d04b503652595027202e798d3edbdf25043c72",variant:"h2"},"Horizontal Stepper without Labels"),e("udp-stepper",{key:"3a2517ebccab447d7ea490f5922165a4eb3d5880",steps:this.steps,activeStep:this.activeStep,completed:this.completed,stepChange:this.handleStepChange,orientation:"horizontal",labelDisplay:"none",labelPosition:"bottom"}),e("unity-typography",{key:"4b752459b0a8bc96150477c40f4ce9ea25b8a981",variant:"h2"},"Horizontal Stepper with Labels to Right"),e("udp-stepper",{key:"ab70fdd5285e4bc776d9a1ba8475a2d2f1e3a3b6",steps:this.steps,activeStep:this.activeStep,completed:this.completed,stepChange:this.handleStepChange,orientation:"horizontal",labelDisplay:"all",labelPosition:"right"}),e("unity-typography",{key:"8d0bd0df9f65c5534e01600d977dcaaf94bf3268",variant:"h2"},"Vertical Stepper"),e("udp-stepper",{key:"5fb38ef1199564567bbaefa28d20780d1abc5ce3",steps:this.steps,activeStep:this.activeStep,completed:this.completed,stepChange:this.handleStepChange,orientation:"vertical",labelDisplay:"all",labelPosition:"right"}))}};export{i as udp_stepper_demo};
2
+ //# sourceMappingURL=p-c9046d64.entry.js.map
@@ -1,2 +1,2 @@
1
- import{r as s,h as a}from"./p-CaIWDYyq.js";const c=":host{display:block;width:100%}.spacing-01{height:var(--spacing-01)}.spacing-07{height:var(--spacing-07)}.spacing-13{height:var(--spacing-13)}";const i=class{constructor(a){s(this,a)}render(){const s={small:"spacing-01",medium:"spacing-07",large:"spacing-13"};const c=s[this.unit]||"spacing-01";return a("div",{key:"03a9fa7b390df96ed46b1c6bcc8dc36423a5780c",class:c})}};i.style=c;export{i as udp_vertical_spacer};
2
- //# sourceMappingURL=p-c1809ef3.entry.js.map
1
+ import{r as s,h as a}from"./p-CaIWDYyq.js";const c=":host{display:block;width:100%}.spacing-01{height:var(--spacing-01)}.spacing-07{height:var(--spacing-07)}.spacing-13{height:var(--spacing-13)}";const i=class{constructor(a){s(this,a)}render(){const s={small:"spacing-01",medium:"spacing-07",large:"spacing-13"};const c=s[this.unit]||"spacing-01";return a("div",{key:"a3cd3a28c2077e145860fee96ec5ec1210b0191d",class:c})}};i.style=c;export{i as udp_vertical_spacer};
2
+ //# sourceMappingURL=p-ca53be83.entry.js.map
@@ -0,0 +1,2 @@
1
+ import{r as t,h as i}from"./p-CaIWDYyq.js";import e from"@carbon/icons/es/chevron--left/16";import o from"@carbon/icons/es/chevron--right/16";import c from"@carbon/icons/es/add/16";import a from"@carbon/icons/es/fit-to-width/16";import n from"@carbon/icons/es/checkmark/16";import s from"@carbon/icons/es/fit-to-height/16";import r from"@carbon/icons/es/locked/16";const b=".header-bar{display:flex;justify-content:space-between;align-items:center;width:100%;background:var(--accent-color)}.title-section{flex:1;margin-left:16px;display:flex;flex-direction:column}.title{font-weight:900}.subtitle{display:flex;flex-direction:row}.lock-icon{margin-top:-6px;margin-left:-4px}.status-icon{height:16px;margin-left:var(--spacing-03)}.button-section{display:flex;gap:var(--spacing-03);align-items:center;padding-right:var(--spacing-05);padding-top:var(--spacing-03);padding-bottom:var(--spacing-03)}";const l=class{constructor(i){t(this,i);this.subtitleStatusMappingClasses={}}render(){return i("div",{key:"e4b02bd2b8ef3c4d9fa44b6017cd0f8a5eff7dc6",class:"header-bar"},i("div",{key:"abbc6920ba41e8b3d04a0240688d653da29d2613",class:"title-section"},this.gridBarTitle||this.gridBarTitle===""?i("unity-typography",{class:"title",variant:"button"},this.gridBarTitle," "):i("udp-skeleton-loading",{width:"200px"}),i("div",{key:"17cbe8b25b091780ffabb93d4f6cca1559e91990",class:"subtitle"},this.subTitle||this.subTitle===""?i("unity-typography",{variant:"caption-text"},this.subTitle," "):i("udp-skeleton-loading",{width:"200px"}),this.subtitleStatus&&i("status-chip",{key:"d9bb742ccd6f3d7a998b50b07ee4c6cc16660bcc",class:"status-icon",statusValue:this.subtitleStatus,statusClasses:this.subtitleStatusMappingClasses},this.subtitleStatus),this.showLockedIcon&&i("stencil-icon-button",{key:"025b0509aa82b4508b664d3c019f844485d93046",class:"lock-icon",noBackground:true,darkIcon:true,icon:r,noTooltip:true,showLabel:false}))),i("div",{key:"380e7c5ef0b95d15e3f26be4bf53475bffcb0be8",class:"button-section"},i("stencil-icon-button",{key:"0bd6f18e7d0bb59ba99a6bff450b2eba3343beaa",darkIcon:true,icon:a,showLabel:false,noTooltip:true,onClick:this.customFitColumnClick}),i("stencil-icon-button",{key:"34bba89ede7b553a4d43e847eeda746337f7a8bb",darkIcon:true,icon:s,showLabel:false,noTooltip:true,onClick:this.toggleGroupExpandAll}),this.clickBackward&&i("stencil-icon-button",{key:"2c14f28291d321fa5299de614382107733a44ed5",darkIcon:true,icon:e,showLabel:false,noTooltip:true,onClick:this.clickBackward}),this.clickToday&&i("stencil-icon-button",{key:"379933b13162a8be2c0bb963ca56f2c59ee45496",tooltip:"Current Date",noTooltip:true,onClick:this.clickToday},"Today"),this.clickForward&&i("stencil-icon-button",{key:"554d6b488646122513c6ad649669a7df7689961b",darkIcon:true,icon:o,noTooltip:true,showLabel:false,onClick:this.clickForward}),this.secondaryActionClick&&i("stencil-icon-button",{key:"524dbc82dc876402db5bb022c7a4646bca639a03",icon:n,disabled:this.disableSecondaryAction,noTooltip:true,onClick:this.secondaryActionClick},this.secondaryActionTitle),this.primaryActionClick&&i("stencil-icon-button",{key:"17adba355edac1f687ce9a95cd382b643fd7e9cc",disabled:this.disablePrimaryAction,darkIcon:true,icon:c,noTooltip:true,onClick:this.primaryActionClick},this.primaryActionTitle)))}};l.style=b;export{l as resource_timeline_primary_bar};
2
+ //# sourceMappingURL=p-d46dd16c.entry.js.map
@@ -1,2 +1,2 @@
1
- import{r as t,h as d}from"./p-CaIWDYyq.js";const i=":host{display:block;width:100%}.udp-container{width:100%;margin-left:auto;margin-right:auto;box-sizing:border-box}.udp-container--padded{padding-left:1rem;padding-right:1rem}.udp-container--fluid{max-width:100%}.udp-container--sm{max-width:640px}.udp-container--md{max-width:768px}.udp-container--lg{max-width:1024px}.udp-container--xl{max-width:1280px}.udp-container--2xl{max-width:1536px}";const a=class{constructor(d){t(this,d);this.fluid=false;this.maxWidth="lg";this.padding=true}render(){return d("div",{key:"66333c5149153a9d4510ba416e4bb3a505d51782",class:{"udp-container":true,"udp-container--fluid":this.fluid,"udp-container--padded":this.padding,[`udp-container--${this.maxWidth}`]:true}},d("slot",{key:"c2d2402708cd7f46c81640cb86d227189c3312b6"}))}};a.style=i;export{a as udp_container};
2
- //# sourceMappingURL=p-09186dea.entry.js.map
1
+ import{r as t,h as i}from"./p-CaIWDYyq.js";const d=":host{display:block;width:100%}.udp-container{width:100%;margin-left:auto;margin-right:auto;box-sizing:border-box}.udp-container--padded{padding-left:1rem;padding-right:1rem}.udp-container--fluid{max-width:100%}.udp-container--sm{max-width:640px}.udp-container--md{max-width:768px}.udp-container--lg{max-width:1024px}.udp-container--xl{max-width:1280px}.udp-container--2xl{max-width:1536px}";const a=class{constructor(i){t(this,i);this.fluid=false;this.maxWidth="lg";this.padding=true}render(){return i("div",{key:"585b9bb995cb7e179c328d07748c66459269c1a0",class:{"udp-container":true,"udp-container--fluid":this.fluid,"udp-container--padded":this.padding,[`udp-container--${this.maxWidth}`]:true}},i("slot",{key:"5851c51e280c4322cc404bbea3bb3979ac14681e"}))}};a.style=d;export{a as udp_container};
2
+ //# sourceMappingURL=p-d48b5599.entry.js.map