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.
- package/dist/cjs/add-map-feature-popup_4.cjs.entry.js +11 -11
- package/dist/cjs/advanced-search_50.cjs.entry.js +109 -41
- package/dist/cjs/advanced-search_50.cjs.entry.js.map +1 -1
- package/dist/cjs/ag-grid-base_2.cjs.entry.js +2 -2
- package/dist/cjs/api-method-grid.cjs.entry.js +1 -1
- package/dist/cjs/check-box.cjs.entry.js +2 -2
- package/dist/cjs/chip-section.cjs.entry.js +2 -2
- package/dist/cjs/client-side-grid.cjs.entry.js +1 -1
- package/dist/cjs/color-preview.cjs.entry.js +1 -1
- 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
- package/dist/cjs/date-time-renderer_5.cjs.entry.js +17 -16
- package/dist/cjs/date-time-renderer_5.cjs.entry.js.map +1 -1
- package/dist/cjs/enums-CA1UjPVU.js +25 -0
- package/dist/cjs/enums-CA1UjPVU.js.map +1 -0
- package/dist/cjs/feature-details-card_2.cjs.entry.js +5 -5
- package/dist/cjs/file-upload.selectable-list.stencil-field.entry.cjs.js.map +1 -1
- package/dist/cjs/file-upload_3.cjs.entry.js +73 -29
- package/dist/cjs/file-upload_3.cjs.entry.js.map +1 -1
- package/dist/cjs/index-Bu1pSYrV.js +8 -8
- package/dist/cjs/inputs-example.cjs.entry.js +2 -2
- package/dist/cjs/inputs-example.cjs.entry.js.map +1 -1
- package/dist/cjs/inputs-example.entry.cjs.js.map +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/map-component_2.cjs.entry.js +2 -2
- package/dist/cjs/numeric-field.text-area.udp-date-selector.udp-datetime-selector.udp-time-selector.entry.cjs.js.map +1 -1
- package/dist/cjs/numeric-field_5.cjs.entry.js +194 -19
- package/dist/cjs/numeric-field_5.cjs.entry.js.map +1 -1
- package/dist/cjs/page-renderer.cjs.entry.js +1 -1
- 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
- package/dist/cjs/question-configs-renderer_5.cjs.entry.js +17 -4
- package/dist/cjs/question-configs-renderer_5.cjs.entry.js.map +1 -1
- package/dist/cjs/resource-timeline-calendar.cjs.entry.js +1 -1
- package/dist/cjs/resource-timeline-primary-bar.cjs.entry.js +1 -1
- package/dist/cjs/server-side-grid.cjs.entry.js +1 -1
- package/dist/cjs/signature-input.stencil-form.tally-display.udp-icon-button.udp-question.udp-save-draft-button.entry.cjs.js.map +1 -0
- package/dist/cjs/{signature-input_4.cjs.entry.js → signature-input_6.cjs.entry.js} +359 -157
- package/dist/cjs/signature-input_6.cjs.entry.js.map +1 -0
- package/dist/cjs/stencil-library.cjs.js +1 -1
- package/dist/cjs/udp-container-query-grid-item.cjs.entry.js +1 -1
- package/dist/cjs/udp-container-query-grid.cjs.entry.js +1 -1
- package/dist/cjs/udp-container-query.cjs.entry.js +2 -2
- package/dist/cjs/udp-container.cjs.entry.js +2 -2
- package/dist/cjs/udp-drive-utils-BOyI3h7K.js +180 -0
- package/dist/cjs/udp-drive-utils-BOyI3h7K.js.map +1 -0
- package/dist/cjs/udp-forms-builder.cjs.entry.js +133 -152
- package/dist/cjs/udp-forms-builder.cjs.entry.js.map +1 -1
- package/dist/cjs/udp-forms-builder.entry.cjs.js.map +1 -1
- package/dist/cjs/udp-forms-list-card_2.cjs.entry.js +5 -5
- package/dist/cjs/udp-forms-list.cjs.entry.js +1 -1
- package/dist/cjs/udp-forms-renderer.cjs.entry.js +185 -175
- package/dist/cjs/udp-forms-renderer.cjs.entry.js.map +1 -1
- package/dist/cjs/udp-forms-renderer.entry.cjs.js.map +1 -1
- package/dist/cjs/udp-forms-ui.cjs.entry.js +113 -82
- package/dist/cjs/udp-forms-ui.cjs.entry.js.map +1 -1
- package/dist/cjs/udp-forms-ui.entry.cjs.js.map +1 -1
- package/dist/cjs/udp-map.cjs.entry.js +3 -3
- package/dist/cjs/udp-page.cjs.entry.js +1 -1
- package/dist/cjs/udp-split-screen.cjs.entry.js +1 -1
- package/dist/cjs/udp-stepper-demo.cjs.entry.js +1 -1
- package/dist/cjs/udp-vertical-spacer.cjs.entry.js +1 -1
- package/dist/cjs/utils-CdiEmuDf.js +34 -0
- package/dist/cjs/utils-CdiEmuDf.js.map +1 -0
- package/dist/collection/collection-manifest.json +2 -0
- package/dist/collection/components/my-component/UI/buttons/icon-button/stencil-icon-button.js +22 -0
- package/dist/collection/components/my-component/UI/buttons/icon-button/stencil-icon-button.js.map +1 -1
- package/dist/collection/components/my-component/UI/buttons/udp-icon-button/udp-icon-button.css +269 -0
- package/dist/collection/components/my-component/UI/buttons/udp-icon-button/udp-icon-button.js +392 -0
- package/dist/collection/components/my-component/UI/buttons/udp-icon-button/udp-icon-button.js.map +1 -0
- package/dist/collection/components/my-component/UI/forms/form/stencil-field.js +38 -14
- package/dist/collection/components/my-component/UI/forms/form/stencil-field.js.map +1 -1
- package/dist/collection/components/my-component/UI/forms/form/stencil-form.js +81 -28
- package/dist/collection/components/my-component/UI/forms/form/stencil-form.js.map +1 -1
- package/dist/collection/components/my-component/UI/forms/udp-forms/mockData.js +1 -0
- package/dist/collection/components/my-component/UI/forms/udp-forms/mockData.js.map +1 -1
- package/dist/collection/components/my-component/UI/forms/udp-forms/types.js.map +1 -1
- package/dist/collection/components/my-component/UI/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/question-specific-configs-renderer.js +13 -17
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- package/dist/collection/components/my-component/UI/forms/udp-forms/udp-forms-builder/udp-forms-builder.js +135 -159
- package/dist/collection/components/my-component/UI/forms/udp-forms/udp-forms-builder/udp-forms-builder.js.map +1 -1
- package/dist/collection/components/my-component/UI/forms/udp-forms/udp-forms-list/udp-forms-list-card.js +5 -5
- package/dist/collection/components/my-component/UI/forms/udp-forms/udp-forms-list/udp-forms-list.js +1 -1
- package/dist/collection/components/my-component/UI/forms/udp-forms/udp-forms-renderer/form-handler/PrivateFormHandler.js +1 -5
- package/dist/collection/components/my-component/UI/forms/udp-forms/udp-forms-renderer/form-handler/PrivateFormHandler.js.map +1 -1
- package/dist/collection/components/my-component/UI/forms/udp-forms/udp-forms-renderer/form-handler/PublicFormHandler.js +1 -0
- package/dist/collection/components/my-component/UI/forms/udp-forms/udp-forms-renderer/form-handler/PublicFormHandler.js.map +1 -1
- package/dist/collection/components/my-component/UI/forms/udp-forms/udp-forms-renderer/udp-forms-renderer.js +188 -172
- package/dist/collection/components/my-component/UI/forms/udp-forms/udp-forms-renderer/udp-forms-renderer.js.map +1 -1
- package/dist/collection/components/my-component/UI/forms/udp-forms/udp-forms-renderer/udp-forms-ui.css +175 -0
- package/dist/collection/components/my-component/UI/forms/udp-forms/udp-forms-renderer/udp-forms-ui.js +211 -88
- package/dist/collection/components/my-component/UI/forms/udp-forms/udp-forms-renderer/udp-forms-ui.js.map +1 -1
- package/dist/collection/components/my-component/UI/forms/udp-forms/udp-forms-renderer/udp-save-draft-button/udp-save-draft-button.css +166 -0
- package/dist/collection/components/my-component/UI/forms/udp-forms/udp-forms-renderer/udp-save-draft-button/udp-save-draft-button.js +215 -0
- 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
- package/dist/collection/components/my-component/UI/forms/udp-forms/udp-question/udp-question.js +5 -5
- package/dist/collection/components/my-component/UI/forms/udp-forms/udp-question/udp-question.js.map +1 -1
- package/dist/collection/components/my-component/UI/grid/ag-table/ag-table.js +1 -1
- package/dist/collection/components/my-component/UI/grid/ambient-template-grid/ambient-template-grid.js +15 -15
- package/dist/collection/components/my-component/UI/grid/grid-primary-bar/grid-primary-bar.js +2 -2
- package/dist/collection/components/my-component/UI/grid/hotlists/udp-hotlist-form/udp-hotlist-form.js +1 -1
- package/dist/collection/components/my-component/UI/grid/new-grid/ag-grid-base.js +1 -1
- package/dist/collection/components/my-component/UI/grid/new-grid/api-method-grid.js +1 -1
- package/dist/collection/components/my-component/UI/grid/new-grid/client-side-grid.js +1 -1
- package/dist/collection/components/my-component/UI/grid/new-grid/grid-header.js +1 -1
- package/dist/collection/components/my-component/UI/grid/new-grid/server-side-grid.js +1 -1
- package/dist/collection/components/my-component/UI/grid/resource-timeline-calendar/resource-timeline-calendar.js +1 -1
- package/dist/collection/components/my-component/UI/grid/resource-timeline-calendar/resource-timeline-primary-bar.js +1 -1
- package/dist/collection/components/my-component/UI/inputs/checkbox/check-box.js +2 -2
- package/dist/collection/components/my-component/UI/inputs/date-selector/udp-date-selector.js +3 -3
- package/dist/collection/components/my-component/UI/inputs/date-time-selector/udp-datetime-selector.js +3 -3
- package/dist/collection/components/my-component/UI/inputs/file-upload/file-upload.js +35 -22
- package/dist/collection/components/my-component/UI/inputs/file-upload/file-upload.js.map +1 -1
- package/dist/collection/components/my-component/UI/inputs/file-upload/udp-drive-utils.js +202 -10
- package/dist/collection/components/my-component/UI/inputs/file-upload/udp-drive-utils.js.map +1 -1
- package/dist/collection/components/my-component/UI/inputs/numeric-field/numeric-field.js +6 -6
- package/dist/collection/components/my-component/UI/inputs/numeric-field/numeric-field.js.map +1 -1
- package/dist/collection/components/my-component/UI/inputs/signature-input/signature-input.js +52 -22
- package/dist/collection/components/my-component/UI/inputs/signature-input/signature-input.js.map +1 -1
- package/dist/collection/components/my-component/UI/inputs/tally/tally.js +2 -2
- package/dist/collection/components/my-component/UI/inputs/text-area/text-area.js +99 -3
- package/dist/collection/components/my-component/UI/inputs/text-area/text-area.js.map +1 -1
- package/dist/collection/components/my-component/UI/inputs/text-field/text-field.js +99 -3
- package/dist/collection/components/my-component/UI/inputs/text-field/text-field.js.map +1 -1
- package/dist/collection/components/my-component/UI/inputs/time-selector/udp-time-selector.js +132 -6
- package/dist/collection/components/my-component/UI/inputs/time-selector/udp-time-selector.js.map +1 -1
- package/dist/collection/components/my-component/UI/inputs/toggle/stencil-toggle.js +4 -4
- package/dist/collection/components/my-component/UI/inputs/udp-selector/udp-selector.js +4 -4
- package/dist/collection/components/my-component/UI/layout/udp-container/udp-container.js +2 -2
- package/dist/collection/components/my-component/UI/layout/udp-container-query/udp-container-query.js +2 -2
- package/dist/collection/components/my-component/UI/layout/udp-container-query-grid/udp-container-query-grid.js +1 -1
- package/dist/collection/components/my-component/UI/layout/udp-container-query-grid-item/udp-container-query-grid-item.js +1 -1
- package/dist/collection/components/my-component/UI/layout/udp-page/udp-page.js +1 -1
- package/dist/collection/components/my-component/UI/layout/udp-split-screen/udp-split-screen.js +1 -1
- package/dist/collection/components/my-component/UI/layout/udp-vertical-spacer.js +1 -1
- package/dist/collection/components/my-component/UI/loaders/udp-grid-loader/udp-grid-loader.js +2 -2
- package/dist/collection/components/my-component/UI/loaders/udp-linear-loader/udp-linear-loader.js +1 -1
- package/dist/collection/components/my-component/UI/loaders/udp-skeleton-loading.js +1 -1
- package/dist/collection/components/my-component/UI/map/udp-map/map-component.js +1 -1
- package/dist/collection/components/my-component/UI/map/udp-map/popups/add-map-feature-popup.js +3 -3
- package/dist/collection/components/my-component/UI/map/udp-map/popups/feature-details-card/feature-details-card.js +4 -4
- package/dist/collection/components/my-component/UI/map/udp-map/popups/feature-details-popup.js +1 -1
- package/dist/collection/components/my-component/UI/map/udp-map/popups/select-layer-popup.js +1 -1
- package/dist/collection/components/my-component/UI/map/udp-map/popups/split-line-popup.js +1 -1
- package/dist/collection/components/my-component/UI/map/udp-map/toolbar/map-toolbar.js +6 -6
- package/dist/collection/components/my-component/UI/map/udp-map/udp-map-toolbar.js +1 -1
- package/dist/collection/components/my-component/UI/map/udp-map/udp-map.js +3 -3
- package/dist/collection/components/my-component/UI/menu/menu-item/udp-menu-item.js +2 -2
- package/dist/collection/components/my-component/UI/stepper/udp-stepper-demo.js +1 -1
- package/dist/collection/components/my-component/UI/tabs/tab/tabs/udp-tabs.js +1 -1
- package/dist/collection/components/my-component/UI/tabs/tab/udp-tab.js +1 -1
- package/dist/collection/components/my-component/UI/toolbars/app-bar/app-bar.js +1 -1
- package/dist/collection/components/my-component/demo/ambient-demo-container.js +1 -1
- package/dist/collection/components/test-component/inputs-example/inputs-example.js +2 -2
- package/dist/collection/components/test-component/inputs-example/inputs-example.js.map +1 -1
- package/dist/collection/page-renderer/page-renderer.js +1 -1
- package/dist/collection/theme/color-preview/color-preview.js +1 -1
- package/dist/collection/udp-utilities/layout/udp-dynamic-container-with-menu/chip-section/chip-section.js +2 -2
- package/dist/collection/udp-utilities/layout/udp-dynamic-container-with-menu/udp-dynamic-container-with-menu.js +1 -1
- package/dist/components/add-map-feature-popup.js +1 -1
- package/dist/components/advanced-search-grouped.js +1 -1
- package/dist/components/advanced-search.js +1 -1
- package/dist/components/ag-grid-base.js +1 -1
- package/dist/components/ag-table.js +1 -1
- package/dist/components/ambient-demo-container.js +1 -1
- package/dist/components/ambient-template-grid.js +1 -1
- package/dist/components/api-method-grid.js +4 -4
- package/dist/components/app-bar.js +1 -1
- package/dist/components/chart-container.js +1 -1
- package/dist/components/check-box-group.js +1 -1
- package/dist/components/check-box.js +1 -1
- package/dist/components/chip-section.js +3 -3
- package/dist/components/client-side-grid.js +3 -3
- package/dist/components/color-preview.js +1 -1
- package/dist/components/date-time-renderer.js +1 -1
- package/dist/components/edit-view-form-dialog.js +1 -1
- package/dist/components/feature-details-card.js +1 -1
- package/dist/components/feature-details-popup.js +1 -1
- package/dist/components/file-upload-renderer.js +1 -1
- package/dist/components/file-upload.js +1 -1
- package/dist/components/grid-header.js +1 -1
- package/dist/components/grid-primary-bar.js +1 -1
- package/dist/components/inputs-example.js +15 -15
- package/dist/components/inputs-example.js.map +1 -1
- package/dist/components/list-options-renderer.js +1 -1
- package/dist/components/map-component.js +1 -1
- package/dist/components/map-toolbar.js +1 -1
- package/dist/components/my-component.js +26 -26
- package/dist/components/numeric-field.js +1 -1
- package/dist/components/{p-CfZR5rek.js → p-0F2I6Qvn.js} +3 -3
- package/dist/components/{p-CfZR5rek.js.map → p-0F2I6Qvn.js.map} +1 -1
- package/dist/components/{p-BbC2Itep.js → p-1CPON0Xx.js} +5 -5
- package/dist/components/{p-BbC2Itep.js.map → p-1CPON0Xx.js.map} +1 -1
- package/dist/components/{p-IlXn87Ki.js → p-1Cv4cku0.js} +4 -14
- package/dist/components/p-1Cv4cku0.js.map +1 -0
- package/dist/components/{p-CTn3c76I.js → p-1uly65Sv.js} +3 -3
- package/dist/components/{p-CTn3c76I.js.map → p-1uly65Sv.js.map} +1 -1
- package/dist/components/{p-C8cWVxBF.js → p-26jyxB7s.js} +66 -27
- package/dist/components/p-26jyxB7s.js.map +1 -0
- package/dist/components/{p-GQEOUb0c.js → p-4hWvEEZf.js} +5 -5
- package/dist/components/{p-GQEOUb0c.js.map → p-4hWvEEZf.js.map} +1 -1
- package/dist/components/{p-HrsHnWeG.js → p-6EzLtNtq.js} +6 -6
- package/dist/components/{p-HrsHnWeG.js.map → p-6EzLtNtq.js.map} +1 -1
- package/dist/components/{p-syf9yo9-.js → p-8avkq8Fj.js} +4 -4
- package/dist/components/{p-syf9yo9-.js.map → p-8avkq8Fj.js.map} +1 -1
- package/dist/components/{p-B8k9GGZB.js → p-8paOuPay.js} +4 -4
- package/dist/components/{p-B8k9GGZB.js.map → p-8paOuPay.js.map} +1 -1
- package/dist/components/{p-DntePo7I.js → p-B2mj8zmp.js} +3 -3
- package/dist/components/{p-DntePo7I.js.map → p-B2mj8zmp.js.map} +1 -1
- package/dist/components/{p-Bv1MGbhE.js → p-B3gbGwCE.js} +50 -83
- package/dist/components/p-B3gbGwCE.js.map +1 -0
- package/dist/components/{p-ves_LtSN.js → p-B6A-djr0.js} +4 -4
- package/dist/components/{p-ves_LtSN.js.map → p-B6A-djr0.js.map} +1 -1
- package/dist/components/{p-D0T6NTw2.js → p-BANMRVyZ.js} +3 -3
- package/dist/components/{p-D0T6NTw2.js.map → p-BANMRVyZ.js.map} +1 -1
- package/dist/components/{p-D-JeGky8.js → p-BB2sALAW.js} +3 -3
- package/dist/components/{p-D-JeGky8.js.map → p-BB2sALAW.js.map} +1 -1
- package/dist/components/{p-DehJN46u.js → p-BLWvjl_b.js} +6 -6
- package/dist/components/{p-DehJN46u.js.map → p-BLWvjl_b.js.map} +1 -1
- package/dist/components/{p-y6ddPVSK.js → p-BO3Kzy6x.js} +6 -6
- package/dist/components/{p-y6ddPVSK.js.map → p-BO3Kzy6x.js.map} +1 -1
- package/dist/components/p-BY5RQ-T1.js +16 -0
- package/dist/components/p-BY5RQ-T1.js.map +1 -0
- package/dist/components/{p-ClToknIK.js → p-BbOHuqrJ.js} +5 -5
- package/dist/components/{p-ClToknIK.js.map → p-BbOHuqrJ.js.map} +1 -1
- package/dist/components/{p-CJsnV8uM.js → p-BfT3KUJC.js} +4 -4
- package/dist/components/{p-CJsnV8uM.js.map → p-BfT3KUJC.js.map} +1 -1
- package/dist/components/{p-BdWgc1UD.js → p-Bi8lqIP-.js} +8 -7
- package/dist/components/p-Bi8lqIP-.js.map +1 -0
- package/dist/components/{p-DNxY-i6k.js → p-BpD1NQKC.js} +5 -5
- package/dist/components/{p-DNxY-i6k.js.map → p-BpD1NQKC.js.map} +1 -1
- package/dist/components/p-BtOBW9_N.js +142 -0
- package/dist/components/p-BtOBW9_N.js.map +1 -0
- package/dist/components/{p-Akx0UDMW.js → p-BwPAbBUr.js} +4 -4
- package/dist/components/{p-Akx0UDMW.js.map → p-BwPAbBUr.js.map} +1 -1
- package/dist/components/p-BzH4NpB-.js +301 -0
- package/dist/components/p-BzH4NpB-.js.map +1 -0
- package/dist/components/{p-CSunqYw8.js → p-C-E6e6mL.js} +17 -17
- package/dist/components/{p-CSunqYw8.js.map → p-C-E6e6mL.js.map} +1 -1
- package/dist/components/{p-DWJbhjYR.js → p-C1K2NBql.js} +5 -5
- package/dist/components/{p-DWJbhjYR.js.map → p-C1K2NBql.js.map} +1 -1
- package/dist/components/{p-CNC3rtXm.js → p-C2j9tPIU.js} +4 -4
- package/dist/components/{p-CNC3rtXm.js.map → p-C2j9tPIU.js.map} +1 -1
- package/dist/components/p-C5aOw4Ij.js +168 -0
- package/dist/components/p-C5aOw4Ij.js.map +1 -0
- package/dist/components/{p-CJINZgmD.js → p-C6bm8Rs4.js} +17 -17
- package/dist/components/{p-CJINZgmD.js.map → p-C6bm8Rs4.js.map} +1 -1
- package/dist/components/{p-PqypuW_Q.js → p-CL4gkS6u.js} +22 -84
- package/dist/components/p-CL4gkS6u.js.map +1 -0
- package/dist/components/{p-DeS7YSzc.js → p-CMTLAuz8.js} +3 -3
- package/dist/components/{p-DeS7YSzc.js.map → p-CMTLAuz8.js.map} +1 -1
- package/dist/components/p-CWAWWTnd.js +47 -0
- package/dist/components/p-CWAWWTnd.js.map +1 -0
- package/dist/components/{p-B3-pcvgV.js → p-Cdz5sX_v.js} +38 -25
- package/dist/components/p-Cdz5sX_v.js.map +1 -0
- package/dist/components/{p-byKLubNE.js → p-Coa3kO6W.js} +3 -3
- package/dist/components/{p-byKLubNE.js.map → p-Coa3kO6W.js.map} +1 -1
- package/dist/components/{p-DzaN4l_Y.js → p-Cp1kbBGM.js} +5 -5
- package/dist/components/{p-DzaN4l_Y.js.map → p-Cp1kbBGM.js.map} +1 -1
- package/dist/components/{p-BYsLvu6g.js → p-CpMdhv3j.js} +69 -5
- package/dist/components/p-CpMdhv3j.js.map +1 -0
- package/dist/components/{p-BWI0GtPn.js → p-CpQin4NC.js} +7 -7
- package/dist/components/{p-BWI0GtPn.js.map → p-CpQin4NC.js.map} +1 -1
- package/dist/components/{p-DIPIddaO.js → p-CqiZ9SAU.js} +3 -3
- package/dist/components/{p-DIPIddaO.js.map → p-CqiZ9SAU.js.map} +1 -1
- package/dist/components/{p-DxJCXXmE.js → p-Cr_ifuX-.js} +27 -26
- package/dist/components/p-Cr_ifuX-.js.map +1 -0
- package/dist/components/{p-bLKTEsIH.js → p-CsMmUkoQ.js} +8 -8
- package/dist/components/{p-bLKTEsIH.js.map → p-CsMmUkoQ.js.map} +1 -1
- package/dist/components/{p-Cf-3pInV.js → p-Ct7EvUCI.js} +3 -3
- package/dist/components/{p-Cf-3pInV.js.map → p-Ct7EvUCI.js.map} +1 -1
- package/dist/components/{p-BbHv2Hzb.js → p-CvQ8X76F.js} +8 -8
- package/dist/components/{p-BbHv2Hzb.js.map → p-CvQ8X76F.js.map} +1 -1
- package/dist/components/{p-BEwTqpWE.js → p-CxOYMG-r.js} +4 -4
- package/dist/components/{p-BEwTqpWE.js.map → p-CxOYMG-r.js.map} +1 -1
- package/dist/components/{p-DOKGpXin.js → p-Cyigv-iT.js} +27 -8
- package/dist/components/p-Cyigv-iT.js.map +1 -0
- package/dist/components/{p-hRee3qYx.js → p-D6Wo7quX.js} +7 -2
- package/dist/components/p-D6Wo7quX.js.map +1 -0
- package/dist/components/{p-BUw3R0Ql.js → p-D9A5l8BE.js} +7 -7
- package/dist/components/{p-BUw3R0Ql.js.map → p-D9A5l8BE.js.map} +1 -1
- package/dist/components/{p-CDnOrzs3.js → p-DBtdo56U.js} +4 -4
- package/dist/components/{p-CDnOrzs3.js.map → p-DBtdo56U.js.map} +1 -1
- package/dist/components/{p-BIc3R4fE.js → p-DFKz-3Nr.js} +5 -5
- package/dist/components/{p-BIc3R4fE.js.map → p-DFKz-3Nr.js.map} +1 -1
- package/dist/components/{p-BJerffMg.js → p-DL9uHt-7.js} +5 -5
- package/dist/components/{p-BJerffMg.js.map → p-DL9uHt-7.js.map} +1 -1
- package/dist/components/{p-DIcPqQkn.js → p-DSIcWNUB.js} +5 -4
- package/dist/components/p-DSIcWNUB.js.map +1 -0
- package/dist/components/{p-CRiQA7Cy.js → p-DZaCCOXB.js} +69 -5
- package/dist/components/p-DZaCCOXB.js.map +1 -0
- package/dist/components/{p-BwHEv1Kb.js → p-DaMmzX_J.js} +13 -13
- package/dist/components/{p-BwHEv1Kb.js.map → p-DaMmzX_J.js.map} +1 -1
- package/dist/components/{p-CY0PAhIT.js → p-Dmmz74K2.js} +4 -4
- package/dist/components/{p-CY0PAhIT.js.map → p-Dmmz74K2.js.map} +1 -1
- package/dist/components/{p-DMcaGgHq.js → p-DnMRLbBX.js} +5 -5
- package/dist/components/{p-DMcaGgHq.js.map → p-DnMRLbBX.js.map} +1 -1
- package/dist/components/{p-ChdtzL8Z.js → p-Dpvhge5H.js} +10 -9
- package/dist/components/p-Dpvhge5H.js.map +1 -0
- package/dist/components/p-DtiAfg0X.js +25 -0
- package/dist/components/p-DtiAfg0X.js.map +1 -0
- package/dist/components/{p-XoXMxeuq.js → p-Dwnxv7WO.js} +3 -3
- package/dist/components/{p-XoXMxeuq.js.map → p-Dwnxv7WO.js.map} +1 -1
- package/dist/components/{p-BvSuY3tY.js → p-Dx5ehH3t.js} +7 -7
- package/dist/components/{p-BvSuY3tY.js.map → p-Dx5ehH3t.js.map} +1 -1
- package/dist/components/{p-DueJnVH4.js → p-DyC6jVV8.js} +10 -9
- package/dist/components/p-DyC6jVV8.js.map +1 -0
- package/dist/components/{p-Bdt-oOnd.js → p-Oil5iqFm.js} +120 -8
- package/dist/components/p-Oil5iqFm.js.map +1 -0
- package/dist/components/{p-C6aDnKNm.js → p-P3YTnOWe.js} +5 -5
- package/dist/components/{p-C6aDnKNm.js.map → p-P3YTnOWe.js.map} +1 -1
- package/dist/components/{p-CLvAjrtw.js → p-Qxi-zxd0.js} +8 -8
- package/dist/components/{p-CLvAjrtw.js.map → p-Qxi-zxd0.js.map} +1 -1
- package/dist/components/{p-DRO3I7Mm.js → p-Qxw1cxga.js} +8 -8
- package/dist/components/{p-DRO3I7Mm.js.map → p-Qxw1cxga.js.map} +1 -1
- package/dist/components/{p-DLWUrvpt.js → p-Tu9UB-v3.js} +5 -5
- package/dist/components/{p-DLWUrvpt.js.map → p-Tu9UB-v3.js.map} +1 -1
- package/dist/components/{p-DQIj9UI7.js → p-Ut5zP7nE.js} +5 -5
- package/dist/components/{p-DQIj9UI7.js.map → p-Ut5zP7nE.js.map} +1 -1
- package/dist/components/{p-Thx6k3Xp.js → p-WLd9SWLl.js} +4 -4
- package/dist/components/{p-Thx6k3Xp.js.map → p-WLd9SWLl.js.map} +1 -1
- package/dist/components/{p-BTIWOttf.js → p-W_kxEzVl.js} +6 -6
- package/dist/components/{p-BTIWOttf.js.map → p-W_kxEzVl.js.map} +1 -1
- package/dist/components/{p-BOW03S7b.js → p-XP8tp0pm.js} +5 -5
- package/dist/components/{p-BOW03S7b.js.map → p-XP8tp0pm.js.map} +1 -1
- package/dist/components/{p-w2FTnlQG.js → p-_HuUfybA.js} +3 -3
- package/dist/components/{p-w2FTnlQG.js.map → p-_HuUfybA.js.map} +1 -1
- package/dist/components/{p-BU706xtx.js → p-hWgAmNsF.js} +3 -3
- package/dist/components/{p-BU706xtx.js.map → p-hWgAmNsF.js.map} +1 -1
- package/dist/components/{p-Bykep8mm.js → p-ibwbE8nI.js} +4 -4
- package/dist/components/{p-Bykep8mm.js.map → p-ibwbE8nI.js.map} +1 -1
- package/dist/components/{p-CA-v1fbV.js → p-ill5r6eV.js} +40 -9
- package/dist/components/p-ill5r6eV.js.map +1 -0
- package/dist/components/{p-DqYsDDHy.js → p-jdqTpLxN.js} +4 -4
- package/dist/components/{p-DqYsDDHy.js.map → p-jdqTpLxN.js.map} +1 -1
- package/dist/components/{p-ByM88ZWk.js → p-jpt3zFdi.js} +3 -3
- package/dist/components/{p-ByM88ZWk.js.map → p-jpt3zFdi.js.map} +1 -1
- package/dist/components/{p-BEtm34A3.js → p-ncemY4Wx.js} +37 -36
- package/dist/components/p-ncemY4Wx.js.map +1 -0
- package/dist/components/{p-DqPGCQm2.js → p-s8qXxEgi.js} +3 -3
- package/dist/components/{p-DqPGCQm2.js.map → p-s8qXxEgi.js.map} +1 -1
- package/dist/components/p-vrP9HZiW.js +156 -0
- package/dist/components/p-vrP9HZiW.js.map +1 -0
- package/dist/components/{p-D32jPxWa.js → p-ycrk0Lr4.js} +5 -5
- package/dist/components/{p-D32jPxWa.js.map → p-ycrk0Lr4.js.map} +1 -1
- package/dist/components/page-renderer.js +21 -21
- package/dist/components/primary-action-header.js +1 -1
- package/dist/components/question-configs-renderer.js +1 -1
- package/dist/components/question-specific-configs-renderer.js +1 -1
- package/dist/components/resource-timeline-calendar.js +5 -5
- package/dist/components/resource-timeline-primary-bar.js +1 -1
- package/dist/components/save-view-form-dialog.js +1 -1
- package/dist/components/search-list-item.js +1 -1
- package/dist/components/section-configs-renderer.js +1 -1
- package/dist/components/select-layer-popup.js +1 -1
- package/dist/components/server-side-grid.js +1 -1
- package/dist/components/side-sheet.js +1 -1
- package/dist/components/signature-input.js +1 -1
- package/dist/components/split-line-popup.js +1 -1
- package/dist/components/stencil-field.js +1 -1
- package/dist/components/stencil-form.js +1 -1
- package/dist/components/stencil-icon-button.js +1 -1
- package/dist/components/stencil-toggle.js +1 -1
- package/dist/components/tally-display.js +1 -1
- package/dist/components/text-area.js +1 -1
- package/dist/components/text-field.js +1 -1
- package/dist/components/text-input-renderer.js +1 -1
- package/dist/components/udp-ambient-card.js +1 -1
- package/dist/components/udp-avatar.js +1 -1
- package/dist/components/udp-bar-chart.js +1 -1
- package/dist/components/udp-charts-example.js +7 -7
- package/dist/components/udp-container-query-grid-item.js +1 -1
- package/dist/components/udp-container-query-grid.js +2 -2
- package/dist/components/udp-container-query.js +1 -1
- package/dist/components/udp-container.js +1 -1
- package/dist/components/udp-date-selector.js +1 -1
- package/dist/components/udp-datetime-selector.js +1 -1
- package/dist/components/udp-distribution-chart.js +1 -1
- package/dist/components/udp-donut-chart.js +1 -1
- package/dist/components/udp-dynamic-container-with-menu.js +1 -1
- package/dist/components/udp-dynamic-form.js +4 -4
- package/dist/components/udp-forms-builder-menu.js +1 -1
- package/dist/components/udp-forms-builder-question-item.js +1 -1
- package/dist/components/udp-forms-builder-style-override.js +1 -1
- package/dist/components/udp-forms-builder.js +162 -183
- package/dist/components/udp-forms-builder.js.map +1 -1
- package/dist/components/udp-forms-list-card.js +1 -1
- package/dist/components/udp-forms-list.js +10 -10
- package/dist/components/udp-forms-renderer.js +244 -219
- package/dist/components/udp-forms-renderer.js.map +1 -1
- package/dist/components/udp-forms-ui.js +1 -1
- package/dist/components/udp-grid-loader.js +1 -1
- package/dist/components/udp-hotlist-form.js +1 -1
- package/dist/components/udp-icon-button.d.ts +11 -0
- package/dist/components/udp-icon-button.js +9 -0
- package/dist/components/udp-icon-button.js.map +1 -0
- package/dist/components/udp-icon.js +1 -1
- package/dist/components/udp-line-chart.js +1 -1
- package/dist/components/udp-linear-loader.js +1 -1
- package/dist/components/udp-list-item.js +2 -2
- package/dist/components/udp-map-toolbar.js +1 -1
- package/dist/components/udp-map.js +17 -17
- package/dist/components/udp-menu-item.js +1 -1
- package/dist/components/udp-page.js +1 -1
- package/dist/components/udp-question.js +1 -1
- package/dist/components/udp-save-draft-button.d.ts +11 -0
- package/dist/components/udp-save-draft-button.js +9 -0
- package/dist/components/udp-save-draft-button.js.map +1 -0
- package/dist/components/udp-selector.js +1 -1
- package/dist/components/udp-side-sheet.js +1 -1
- package/dist/components/udp-skeleton-loading.js +1 -1
- package/dist/components/udp-split-screen.js +1 -1
- package/dist/components/udp-stepper-demo.js +1 -1
- package/dist/components/udp-tab.js +1 -1
- package/dist/components/udp-tabs.js +1 -1
- package/dist/components/udp-time-selector.js +1 -1
- package/dist/components/udp-vertical-spacer.js +1 -1
- package/dist/esm/add-map-feature-popup_4.entry.js +11 -11
- package/dist/esm/advanced-search_50.entry.js +109 -41
- package/dist/esm/advanced-search_50.entry.js.map +1 -1
- package/dist/esm/ag-grid-base_2.entry.js +2 -2
- package/dist/esm/api-method-grid.entry.js +1 -1
- package/dist/esm/check-box.entry.js +2 -2
- package/dist/esm/chip-section.entry.js +2 -2
- package/dist/esm/client-side-grid.entry.js +1 -1
- package/dist/esm/color-preview.entry.js +1 -1
- package/dist/esm/date-time-renderer.file-upload-renderer.list-options-renderer.question-specific-configs-renderer.text-input-renderer.entry.js.map +1 -1
- package/dist/esm/date-time-renderer_5.entry.js +17 -16
- package/dist/esm/date-time-renderer_5.entry.js.map +1 -1
- package/dist/esm/enums-DtiAfg0X.js +25 -0
- package/dist/esm/enums-DtiAfg0X.js.map +1 -0
- package/dist/esm/feature-details-card_2.entry.js +5 -5
- package/dist/esm/file-upload.selectable-list.stencil-field.entry.js.map +1 -1
- package/dist/esm/file-upload_3.entry.js +73 -29
- package/dist/esm/file-upload_3.entry.js.map +1 -1
- package/dist/esm/index-CaIWDYyq.js +8 -8
- package/dist/esm/inputs-example.entry.js +2 -2
- package/dist/esm/inputs-example.entry.js.map +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/map-component_2.entry.js +2 -2
- package/dist/esm/numeric-field.text-area.udp-date-selector.udp-datetime-selector.udp-time-selector.entry.js.map +1 -1
- package/dist/esm/numeric-field_5.entry.js +195 -20
- package/dist/esm/numeric-field_5.entry.js.map +1 -1
- package/dist/esm/page-renderer.entry.js +1 -1
- 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
- package/dist/esm/question-configs-renderer_5.entry.js +17 -4
- package/dist/esm/question-configs-renderer_5.entry.js.map +1 -1
- package/dist/esm/resource-timeline-calendar.entry.js +1 -1
- package/dist/esm/resource-timeline-primary-bar.entry.js +1 -1
- package/dist/esm/server-side-grid.entry.js +1 -1
- package/dist/esm/signature-input.stencil-form.tally-display.udp-icon-button.udp-question.udp-save-draft-button.entry.js.map +1 -0
- package/dist/esm/{signature-input_4.entry.js → signature-input_6.entry.js} +315 -115
- package/dist/esm/signature-input_6.entry.js.map +1 -0
- package/dist/esm/stencil-library.js +1 -1
- package/dist/esm/udp-container-query-grid-item.entry.js +1 -1
- package/dist/esm/udp-container-query-grid.entry.js +1 -1
- package/dist/esm/udp-container-query.entry.js +2 -2
- package/dist/esm/udp-container.entry.js +2 -2
- package/dist/esm/udp-drive-utils-Cm3Sms8t.js +168 -0
- package/dist/esm/udp-drive-utils-Cm3Sms8t.js.map +1 -0
- package/dist/esm/udp-forms-builder.entry.js +133 -152
- package/dist/esm/udp-forms-builder.entry.js.map +1 -1
- package/dist/esm/udp-forms-list-card_2.entry.js +5 -5
- package/dist/esm/udp-forms-list.entry.js +1 -1
- package/dist/esm/udp-forms-renderer.entry.js +186 -176
- package/dist/esm/udp-forms-renderer.entry.js.map +1 -1
- package/dist/esm/udp-forms-ui.entry.js +113 -82
- package/dist/esm/udp-forms-ui.entry.js.map +1 -1
- package/dist/esm/udp-map.entry.js +3 -3
- package/dist/esm/udp-page.entry.js +1 -1
- package/dist/esm/udp-split-screen.entry.js +1 -1
- package/dist/esm/udp-stepper-demo.entry.js +1 -1
- package/dist/esm/udp-vertical-spacer.entry.js +1 -1
- package/dist/esm/utils-DZv4MqyU.js +31 -0
- package/dist/esm/utils-DZv4MqyU.js.map +1 -0
- 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
- package/dist/stencil-library/file-upload.selectable-list.stencil-field.entry.esm.js.map +1 -1
- package/dist/stencil-library/inputs-example.entry.esm.js.map +1 -1
- package/dist/stencil-library/numeric-field.text-area.udp-date-selector.udp-datetime-selector.udp-time-selector.entry.esm.js.map +1 -1
- package/dist/stencil-library/p-09319660.entry.js +2 -0
- package/dist/stencil-library/p-09319660.entry.js.map +1 -0
- package/dist/stencil-library/p-146bc917.entry.js +2 -0
- package/dist/stencil-library/{p-b3b6310e.entry.js → p-147c4595.entry.js} +2 -2
- package/dist/stencil-library/{p-06ca29e0.entry.js → p-1b001f78.entry.js} +2 -2
- package/dist/stencil-library/{p-762591f6.entry.js → p-2635a6cc.entry.js} +2 -2
- package/dist/stencil-library/p-2f2fd111.entry.js +2 -0
- package/dist/stencil-library/{p-368be454.entry.js → p-2fc495ce.entry.js} +2 -2
- package/dist/stencil-library/{p-fdfa7087.entry.js → p-476c08df.entry.js} +2 -2
- package/dist/stencil-library/{p-ee1610d3.entry.js → p-4ab893a0.entry.js} +2 -2
- package/dist/stencil-library/p-4dac2b6d.entry.js +2 -0
- package/dist/stencil-library/p-4dac2b6d.entry.js.map +1 -0
- package/dist/stencil-library/p-556a182f.entry.js +2 -0
- package/dist/stencil-library/p-556a182f.entry.js.map +1 -0
- package/dist/stencil-library/p-5ac16f81.entry.js +2 -0
- package/dist/stencil-library/p-5ac16f81.entry.js.map +1 -0
- package/dist/stencil-library/p-609236fc.entry.js +2 -0
- package/dist/stencil-library/p-609236fc.entry.js.map +1 -0
- package/dist/stencil-library/{p-9b0b311b.entry.js → p-64330dbb.entry.js} +2 -2
- package/dist/stencil-library/p-65a5cce3.entry.js +2 -0
- package/dist/stencil-library/{p-5a946191.entry.js → p-70d8a0d8.entry.js} +2 -2
- package/dist/stencil-library/{p-79065768.entry.js → p-8119eb18.entry.js} +2 -2
- package/dist/stencil-library/{p-2f99476a.entry.js → p-86cd0134.entry.js} +2 -2
- package/dist/stencil-library/p-89aa56f1.entry.js +2 -0
- package/dist/stencil-library/p-89aa56f1.entry.js.map +1 -0
- package/dist/stencil-library/{p-767b7be7.entry.js → p-8a0b6bd4.entry.js} +2 -2
- package/dist/stencil-library/{p-40127f9f.entry.js → p-90fbca0f.entry.js} +2 -2
- package/dist/stencil-library/p-C5aOw4Ij.js +2 -0
- package/dist/stencil-library/p-C5aOw4Ij.js.map +1 -0
- package/dist/stencil-library/p-DZv4MqyU.js +2 -0
- package/dist/stencil-library/p-DZv4MqyU.js.map +1 -0
- package/dist/stencil-library/p-DtiAfg0X.js +2 -0
- package/dist/stencil-library/p-DtiAfg0X.js.map +1 -0
- package/dist/stencil-library/{p-f4f4ba61.entry.js → p-a98b033e.entry.js} +2 -2
- package/dist/stencil-library/p-a98b033e.entry.js.map +1 -0
- package/dist/stencil-library/{p-2a11c543.entry.js → p-ae167d4b.entry.js} +2 -2
- package/dist/stencil-library/{p-55459135.entry.js → p-b53e1b9a.entry.js} +2 -2
- package/dist/stencil-library/p-c1966f2c.entry.js +2 -0
- package/dist/stencil-library/p-c1966f2c.entry.js.map +1 -0
- package/dist/stencil-library/{p-0de6045a.entry.js → p-c9046d64.entry.js} +2 -2
- package/dist/stencil-library/{p-c1809ef3.entry.js → p-ca53be83.entry.js} +2 -2
- package/dist/stencil-library/p-d46dd16c.entry.js +2 -0
- package/dist/stencil-library/{p-09186dea.entry.js → p-d48b5599.entry.js} +2 -2
- package/dist/stencil-library/p-d4f31146.entry.js +2 -0
- package/dist/stencil-library/p-d4f31146.entry.js.map +1 -0
- package/dist/stencil-library/{p-b0b70c0b.entry.js → p-e7e8a8a3.entry.js} +2 -2
- package/dist/stencil-library/p-ea6e9a24.entry.js +2 -0
- package/dist/stencil-library/p-ea6e9a24.entry.js.map +1 -0
- package/dist/stencil-library/{p-79587009.entry.js → p-f4b5879d.entry.js} +2 -2
- package/dist/stencil-library/p-fbfbbcf1.entry.js +2 -0
- 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
- 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
- package/dist/stencil-library/stencil-library.esm.js +1 -1
- package/dist/stencil-library/udp-forms-builder.entry.esm.js.map +1 -1
- package/dist/stencil-library/udp-forms-renderer.entry.esm.js.map +1 -1
- package/dist/stencil-library/udp-forms-ui.entry.esm.js.map +1 -1
- package/dist/types/components/my-component/UI/buttons/icon-button/stencil-icon-button.d.ts +14 -0
- package/dist/types/components/my-component/UI/buttons/udp-icon-button/udp-icon-button.d.ts +91 -0
- package/dist/types/components/my-component/UI/forms/form/stencil-field.d.ts +2 -1
- package/dist/types/components/my-component/UI/forms/form/stencil-form.d.ts +7 -5
- package/dist/types/components/my-component/UI/forms/udp-forms/types.d.ts +16 -0
- 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
- package/dist/types/components/my-component/UI/forms/udp-forms/udp-forms-builder/udp-forms-builder.d.ts +16 -19
- package/dist/types/components/my-component/UI/forms/udp-forms/udp-forms-renderer/udp-forms-renderer.d.ts +14 -26
- package/dist/types/components/my-component/UI/forms/udp-forms/udp-forms-renderer/udp-forms-ui.d.ts +21 -7
- 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
- package/dist/types/components/my-component/UI/inputs/file-upload/file-upload.d.ts +1 -1
- package/dist/types/components/my-component/UI/inputs/file-upload/udp-drive-utils.d.ts +68 -1
- package/dist/types/components/my-component/UI/inputs/numeric-field/numeric-field.d.ts +1 -1
- package/dist/types/components/my-component/UI/inputs/signature-input/signature-input.d.ts +1 -1
- package/dist/types/components/my-component/UI/inputs/text-area/text-area.d.ts +21 -0
- package/dist/types/components/my-component/UI/inputs/text-field/text-field.d.ts +21 -0
- package/dist/types/components/my-component/UI/inputs/time-selector/udp-time-selector.d.ts +33 -1
- package/dist/types/components.d.ts +384 -14
- package/package.json +1 -1
- package/dist/cjs/signature-input.stencil-form.tally-display.udp-question.entry.cjs.js.map +0 -1
- package/dist/cjs/signature-input_4.cjs.entry.js.map +0 -1
- package/dist/cjs/utils-DMhqs00g.js +0 -55
- package/dist/cjs/utils-DMhqs00g.js.map +0 -1
- package/dist/collection/components/my-component/UI/forms/form/stencil-field.css +0 -70
- package/dist/collection/components/my-component/UI/forms/udp-forms/udp-forms-renderer/udp-forms-renderer.css +0 -89
- package/dist/components/p-B3-pcvgV.js.map +0 -1
- package/dist/components/p-BEtm34A3.js.map +0 -1
- package/dist/components/p-BYsLvu6g.js.map +0 -1
- package/dist/components/p-BdWgc1UD.js.map +0 -1
- package/dist/components/p-Bdt-oOnd.js.map +0 -1
- package/dist/components/p-Bv1MGbhE.js.map +0 -1
- package/dist/components/p-C8cWVxBF.js.map +0 -1
- package/dist/components/p-C9cEH65u.js +0 -307
- package/dist/components/p-C9cEH65u.js.map +0 -1
- package/dist/components/p-CA-v1fbV.js.map +0 -1
- package/dist/components/p-CRiQA7Cy.js.map +0 -1
- package/dist/components/p-ChdtzL8Z.js.map +0 -1
- package/dist/components/p-DIcPqQkn.js.map +0 -1
- package/dist/components/p-DOKGpXin.js.map +0 -1
- package/dist/components/p-DueJnVH4.js.map +0 -1
- package/dist/components/p-DxJCXXmE.js.map +0 -1
- package/dist/components/p-IlXn87Ki.js.map +0 -1
- package/dist/components/p-PqypuW_Q.js.map +0 -1
- package/dist/components/p-hRee3qYx.js.map +0 -1
- package/dist/esm/signature-input.stencil-form.tally-display.udp-question.entry.js.map +0 -1
- package/dist/esm/signature-input_4.entry.js.map +0 -1
- package/dist/esm/utils-vXSpJxEK.js +0 -52
- package/dist/esm/utils-vXSpJxEK.js.map +0 -1
- package/dist/stencil-library/p-00c1ce44.entry.js +0 -2
- package/dist/stencil-library/p-00c1ce44.entry.js.map +0 -1
- package/dist/stencil-library/p-250a8400.entry.js +0 -2
- package/dist/stencil-library/p-2fda98ee.entry.js +0 -2
- package/dist/stencil-library/p-2fda98ee.entry.js.map +0 -1
- package/dist/stencil-library/p-50f67815.entry.js +0 -2
- package/dist/stencil-library/p-50f67815.entry.js.map +0 -1
- package/dist/stencil-library/p-584552e6.entry.js +0 -2
- package/dist/stencil-library/p-5e96c57a.entry.js +0 -2
- package/dist/stencil-library/p-5e96c57a.entry.js.map +0 -1
- package/dist/stencil-library/p-6a1febc9.entry.js +0 -2
- package/dist/stencil-library/p-6ed5258c.entry.js +0 -2
- package/dist/stencil-library/p-6ed5258c.entry.js.map +0 -1
- package/dist/stencil-library/p-77739d4b.entry.js +0 -2
- package/dist/stencil-library/p-77739d4b.entry.js.map +0 -1
- package/dist/stencil-library/p-7a2202b9.entry.js +0 -2
- package/dist/stencil-library/p-7a2202b9.entry.js.map +0 -1
- package/dist/stencil-library/p-84109194.entry.js +0 -2
- package/dist/stencil-library/p-b1d412a7.entry.js +0 -2
- package/dist/stencil-library/p-b1d412a7.entry.js.map +0 -1
- package/dist/stencil-library/p-f4f4ba61.entry.js.map +0 -1
- package/dist/stencil-library/p-f7c855d0.entry.js +0 -2
- package/dist/stencil-library/p-f889438a.entry.js +0 -2
- package/dist/stencil-library/p-f889438a.entry.js.map +0 -1
- package/dist/stencil-library/p-vXSpJxEK.js +0 -2
- package/dist/stencil-library/p-vXSpJxEK.js.map +0 -1
- package/dist/stencil-library/signature-input.stencil-form.tally-display.udp-question.entry.esm.js.map +0 -1
- /package/dist/stencil-library/{p-84109194.entry.js.map → p-146bc917.entry.js.map} +0 -0
- /package/dist/stencil-library/{p-b3b6310e.entry.js.map → p-147c4595.entry.js.map} +0 -0
- /package/dist/stencil-library/{p-06ca29e0.entry.js.map → p-1b001f78.entry.js.map} +0 -0
- /package/dist/stencil-library/{p-762591f6.entry.js.map → p-2635a6cc.entry.js.map} +0 -0
- /package/dist/stencil-library/{p-6a1febc9.entry.js.map → p-2f2fd111.entry.js.map} +0 -0
- /package/dist/stencil-library/{p-368be454.entry.js.map → p-2fc495ce.entry.js.map} +0 -0
- /package/dist/stencil-library/{p-fdfa7087.entry.js.map → p-476c08df.entry.js.map} +0 -0
- /package/dist/stencil-library/{p-ee1610d3.entry.js.map → p-4ab893a0.entry.js.map} +0 -0
- /package/dist/stencil-library/{p-9b0b311b.entry.js.map → p-64330dbb.entry.js.map} +0 -0
- /package/dist/stencil-library/{p-584552e6.entry.js.map → p-65a5cce3.entry.js.map} +0 -0
- /package/dist/stencil-library/{p-5a946191.entry.js.map → p-70d8a0d8.entry.js.map} +0 -0
- /package/dist/stencil-library/{p-79065768.entry.js.map → p-8119eb18.entry.js.map} +0 -0
- /package/dist/stencil-library/{p-2f99476a.entry.js.map → p-86cd0134.entry.js.map} +0 -0
- /package/dist/stencil-library/{p-767b7be7.entry.js.map → p-8a0b6bd4.entry.js.map} +0 -0
- /package/dist/stencil-library/{p-40127f9f.entry.js.map → p-90fbca0f.entry.js.map} +0 -0
- /package/dist/stencil-library/{p-2a11c543.entry.js.map → p-ae167d4b.entry.js.map} +0 -0
- /package/dist/stencil-library/{p-55459135.entry.js.map → p-b53e1b9a.entry.js.map} +0 -0
- /package/dist/stencil-library/{p-0de6045a.entry.js.map → p-c9046d64.entry.js.map} +0 -0
- /package/dist/stencil-library/{p-c1809ef3.entry.js.map → p-ca53be83.entry.js.map} +0 -0
- /package/dist/stencil-library/{p-f7c855d0.entry.js.map → p-d46dd16c.entry.js.map} +0 -0
- /package/dist/stencil-library/{p-09186dea.entry.js.map → p-d48b5599.entry.js.map} +0 -0
- /package/dist/stencil-library/{p-b0b70c0b.entry.js.map → p-e7e8a8a3.entry.js.map} +0 -0
- /package/dist/stencil-library/{p-79587009.entry.js.map → p-f4b5879d.entry.js.map} +0 -0
- /package/dist/stencil-library/{p-250a8400.entry.js.map → p-fbfbbcf1.entry.js.map} +0 -0
|
@@ -0,0 +1,392 @@
|
|
|
1
|
+
import { h } from "@stencil/core";
|
|
2
|
+
/**
|
|
3
|
+
* UdpIconButton is a versatile icon button component that matches the udp-button API.
|
|
4
|
+
* It's designed to replace the deprecated `stencil-icon-button` with better consistency.
|
|
5
|
+
*
|
|
6
|
+
* Key improvements over `stencil-icon-button`:
|
|
7
|
+
* - Consistent API with `udp-button`
|
|
8
|
+
* - Better theming support using global CSS variables
|
|
9
|
+
* - Improved accessibility
|
|
10
|
+
* - Cleaner prop structure
|
|
11
|
+
* - Better TypeScript support
|
|
12
|
+
*
|
|
13
|
+
* Migration from `stencil-icon-button`:
|
|
14
|
+
* - `iconName` → Not needed, use `icon` prop directly
|
|
15
|
+
* - `iconClassName` → Not needed, styling handled by component
|
|
16
|
+
* - `secondary=true` → `variant='text'` or `variant='outlined'`
|
|
17
|
+
* - `noBackground=true` → `variant='text'`
|
|
18
|
+
* - `darkIcon` → Use `color` prop instead
|
|
19
|
+
* - `showLabel` → Use slot content (if content provided, label shows)
|
|
20
|
+
* - `count` → Use `badgeContent` prop
|
|
21
|
+
*/
|
|
22
|
+
export class UdpIconButton {
|
|
23
|
+
constructor() {
|
|
24
|
+
/**
|
|
25
|
+
* The variant to use.
|
|
26
|
+
* - `text`: Typically used for less-pronounced actions (replaces noBackground=true).
|
|
27
|
+
* - `outlined`: Emphasizes actions with a border.
|
|
28
|
+
* - `contained`: High-emphasis, distinguished by a background color.
|
|
29
|
+
*/
|
|
30
|
+
this.variant = 'text';
|
|
31
|
+
/**
|
|
32
|
+
* The color of the component. It supports theming using global CSS variables.
|
|
33
|
+
* `inherit` will inherit the color from its parent.
|
|
34
|
+
*/
|
|
35
|
+
this.color = 'primary';
|
|
36
|
+
/**
|
|
37
|
+
* The size of the component.
|
|
38
|
+
*/
|
|
39
|
+
this.size = 'medium';
|
|
40
|
+
/**
|
|
41
|
+
* If `true`, the component is disabled.
|
|
42
|
+
*/
|
|
43
|
+
this.disabled = false;
|
|
44
|
+
/**
|
|
45
|
+
* The type of the button. Only used if `href` is not set.
|
|
46
|
+
* Corresponds to the native `type` attribute of a `<button>` element.
|
|
47
|
+
*/
|
|
48
|
+
this.type = 'button';
|
|
49
|
+
this.handleClick = (event) => {
|
|
50
|
+
if (!this.disabled) {
|
|
51
|
+
this.click.emit(event);
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
renderIcon() {
|
|
56
|
+
if (!this.icon)
|
|
57
|
+
return null;
|
|
58
|
+
const iconData = this.icon;
|
|
59
|
+
const iconColorClass = this.iconColor ? `icon-color-${this.iconColor}` : '';
|
|
60
|
+
return (h("svg", Object.assign({}, iconData.attrs, { class: `icon ${iconColorClass}`.trim() }), iconData.content.map((item, index) => {
|
|
61
|
+
if (item.elem === 'path') {
|
|
62
|
+
return h("path", Object.assign({}, item.attrs, { key: index }));
|
|
63
|
+
}
|
|
64
|
+
else if (item.elem === 'circle') {
|
|
65
|
+
return h("circle", Object.assign({}, item.attrs, { key: index }));
|
|
66
|
+
}
|
|
67
|
+
return null;
|
|
68
|
+
})));
|
|
69
|
+
}
|
|
70
|
+
renderButton() {
|
|
71
|
+
var _a;
|
|
72
|
+
const hasLabel = (_a = this.el.textContent) === null || _a === void 0 ? void 0 : _a.trim();
|
|
73
|
+
const ariaLabel = this.ariaLabel || this.tooltip || undefined;
|
|
74
|
+
const buttonClasses = {
|
|
75
|
+
'udp-icon-button': true,
|
|
76
|
+
[`variant-${this.variant}`]: true,
|
|
77
|
+
[`color-${this.color}`]: true,
|
|
78
|
+
[`size-${this.size}`]: true,
|
|
79
|
+
'has-label': !!hasLabel,
|
|
80
|
+
'icon-only': !hasLabel,
|
|
81
|
+
};
|
|
82
|
+
const buttonContent = (h("button", { type: this.type, disabled: this.disabled, class: buttonClasses, onClick: this.handleClick, "aria-label": ariaLabel, title: this.tooltip, id: this.buttonId }, h("span", { class: "icon-container" }, this.renderIcon()), hasLabel && (h("span", { class: "label" }, h("slot", null)))));
|
|
83
|
+
// Wrap with badge if badgeContent is provided
|
|
84
|
+
if (this.badgeContent) {
|
|
85
|
+
return (h("udp-badge", { content: this.badgeContent }, buttonContent));
|
|
86
|
+
}
|
|
87
|
+
return buttonContent;
|
|
88
|
+
}
|
|
89
|
+
renderLink() {
|
|
90
|
+
var _a;
|
|
91
|
+
const hasLabel = (_a = this.el.textContent) === null || _a === void 0 ? void 0 : _a.trim();
|
|
92
|
+
const ariaLabel = this.ariaLabel || this.tooltip || undefined;
|
|
93
|
+
const linkClasses = {
|
|
94
|
+
'udp-icon-button': true,
|
|
95
|
+
[`variant-${this.variant}`]: true,
|
|
96
|
+
[`color-${this.color}`]: true,
|
|
97
|
+
[`size-${this.size}`]: true,
|
|
98
|
+
'has-label': !!hasLabel,
|
|
99
|
+
'icon-only': !hasLabel,
|
|
100
|
+
};
|
|
101
|
+
const linkContent = (h("a", { href: this.href, class: linkClasses, onClick: this.handleClick, "aria-label": ariaLabel, title: this.tooltip, id: this.buttonId }, h("span", { class: "icon-container" }, this.renderIcon()), hasLabel && (h("span", { class: "label" }, h("slot", null)))));
|
|
102
|
+
// Wrap with badge if badgeContent is provided
|
|
103
|
+
if (this.badgeContent) {
|
|
104
|
+
return (h("udp-badge", { content: this.badgeContent }, linkContent));
|
|
105
|
+
}
|
|
106
|
+
return linkContent;
|
|
107
|
+
}
|
|
108
|
+
render() {
|
|
109
|
+
var _a;
|
|
110
|
+
// Wrap with tooltip if tooltiprovided and no label
|
|
111
|
+
const hasLabel = (_a = this.el.textContent) === null || _a === void 0 ? void 0 : _a.trim();
|
|
112
|
+
const content = this.href ? this.renderLink() : this.renderButton();
|
|
113
|
+
if (this.tooltip && !hasLabel) {
|
|
114
|
+
return (h("udp-ambient-tool-tip", { content: this.tooltip }, content));
|
|
115
|
+
}
|
|
116
|
+
return content;
|
|
117
|
+
}
|
|
118
|
+
static get is() { return "udp-icon-button"; }
|
|
119
|
+
static get encapsulation() { return "shadow"; }
|
|
120
|
+
static get originalStyleUrls() {
|
|
121
|
+
return {
|
|
122
|
+
"$": ["udp-icon-button.css"]
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
static get styleUrls() {
|
|
126
|
+
return {
|
|
127
|
+
"$": ["udp-icon-button.css"]
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
static get properties() {
|
|
131
|
+
return {
|
|
132
|
+
"variant": {
|
|
133
|
+
"type": "string",
|
|
134
|
+
"attribute": "variant",
|
|
135
|
+
"mutable": false,
|
|
136
|
+
"complexType": {
|
|
137
|
+
"original": "'text' | 'outlined' | 'contained'",
|
|
138
|
+
"resolved": "\"contained\" | \"outlined\" | \"text\"",
|
|
139
|
+
"references": {}
|
|
140
|
+
},
|
|
141
|
+
"required": false,
|
|
142
|
+
"optional": false,
|
|
143
|
+
"docs": {
|
|
144
|
+
"tags": [],
|
|
145
|
+
"text": "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."
|
|
146
|
+
},
|
|
147
|
+
"getter": false,
|
|
148
|
+
"setter": false,
|
|
149
|
+
"reflect": false,
|
|
150
|
+
"defaultValue": "'text'"
|
|
151
|
+
},
|
|
152
|
+
"color": {
|
|
153
|
+
"type": "string",
|
|
154
|
+
"attribute": "color",
|
|
155
|
+
"mutable": false,
|
|
156
|
+
"complexType": {
|
|
157
|
+
"original": "'primary' | 'secondary' | 'success' | 'error' | 'warning' | 'info' | 'inherit'",
|
|
158
|
+
"resolved": "\"error\" | \"info\" | \"inherit\" | \"primary\" | \"secondary\" | \"success\" | \"warning\"",
|
|
159
|
+
"references": {}
|
|
160
|
+
},
|
|
161
|
+
"required": false,
|
|
162
|
+
"optional": false,
|
|
163
|
+
"docs": {
|
|
164
|
+
"tags": [],
|
|
165
|
+
"text": "The color of the component. It supports theming using global CSS variables.\n`inherit` will inherit the color from its parent."
|
|
166
|
+
},
|
|
167
|
+
"getter": false,
|
|
168
|
+
"setter": false,
|
|
169
|
+
"reflect": false,
|
|
170
|
+
"defaultValue": "'primary'"
|
|
171
|
+
},
|
|
172
|
+
"size": {
|
|
173
|
+
"type": "string",
|
|
174
|
+
"attribute": "size",
|
|
175
|
+
"mutable": false,
|
|
176
|
+
"complexType": {
|
|
177
|
+
"original": "'small' | 'medium' | 'large'",
|
|
178
|
+
"resolved": "\"large\" | \"medium\" | \"small\"",
|
|
179
|
+
"references": {}
|
|
180
|
+
},
|
|
181
|
+
"required": false,
|
|
182
|
+
"optional": false,
|
|
183
|
+
"docs": {
|
|
184
|
+
"tags": [],
|
|
185
|
+
"text": "The size of the component."
|
|
186
|
+
},
|
|
187
|
+
"getter": false,
|
|
188
|
+
"setter": false,
|
|
189
|
+
"reflect": false,
|
|
190
|
+
"defaultValue": "'medium'"
|
|
191
|
+
},
|
|
192
|
+
"disabled": {
|
|
193
|
+
"type": "boolean",
|
|
194
|
+
"attribute": "disabled",
|
|
195
|
+
"mutable": false,
|
|
196
|
+
"complexType": {
|
|
197
|
+
"original": "boolean",
|
|
198
|
+
"resolved": "boolean",
|
|
199
|
+
"references": {}
|
|
200
|
+
},
|
|
201
|
+
"required": false,
|
|
202
|
+
"optional": false,
|
|
203
|
+
"docs": {
|
|
204
|
+
"tags": [],
|
|
205
|
+
"text": "If `true`, the component is disabled."
|
|
206
|
+
},
|
|
207
|
+
"getter": false,
|
|
208
|
+
"setter": false,
|
|
209
|
+
"reflect": false,
|
|
210
|
+
"defaultValue": "false"
|
|
211
|
+
},
|
|
212
|
+
"href": {
|
|
213
|
+
"type": "string",
|
|
214
|
+
"attribute": "href",
|
|
215
|
+
"mutable": false,
|
|
216
|
+
"complexType": {
|
|
217
|
+
"original": "string",
|
|
218
|
+
"resolved": "string",
|
|
219
|
+
"references": {}
|
|
220
|
+
},
|
|
221
|
+
"required": false,
|
|
222
|
+
"optional": true,
|
|
223
|
+
"docs": {
|
|
224
|
+
"tags": [],
|
|
225
|
+
"text": "The URL to link to when the button is clicked. If provided, the component renders as an `<a>` tag."
|
|
226
|
+
},
|
|
227
|
+
"getter": false,
|
|
228
|
+
"setter": false,
|
|
229
|
+
"reflect": false
|
|
230
|
+
},
|
|
231
|
+
"type": {
|
|
232
|
+
"type": "string",
|
|
233
|
+
"attribute": "type",
|
|
234
|
+
"mutable": false,
|
|
235
|
+
"complexType": {
|
|
236
|
+
"original": "'button' | 'submit' | 'reset'",
|
|
237
|
+
"resolved": "\"button\" | \"reset\" | \"submit\"",
|
|
238
|
+
"references": {}
|
|
239
|
+
},
|
|
240
|
+
"required": false,
|
|
241
|
+
"optional": false,
|
|
242
|
+
"docs": {
|
|
243
|
+
"tags": [],
|
|
244
|
+
"text": "The type of the button. Only used if `href` is not set.\nCorresponds to the native `type` attribute of a `<button>` element."
|
|
245
|
+
},
|
|
246
|
+
"getter": false,
|
|
247
|
+
"setter": false,
|
|
248
|
+
"reflect": false,
|
|
249
|
+
"defaultValue": "'button'"
|
|
250
|
+
},
|
|
251
|
+
"icon": {
|
|
252
|
+
"type": "any",
|
|
253
|
+
"attribute": "icon",
|
|
254
|
+
"mutable": false,
|
|
255
|
+
"complexType": {
|
|
256
|
+
"original": "any",
|
|
257
|
+
"resolved": "any",
|
|
258
|
+
"references": {}
|
|
259
|
+
},
|
|
260
|
+
"required": false,
|
|
261
|
+
"optional": false,
|
|
262
|
+
"docs": {
|
|
263
|
+
"tags": [],
|
|
264
|
+
"text": "The icon to display. Should be a Carbon icon or similar SVG icon object.\nExpected format: { attrs: {...}, content: [...] }"
|
|
265
|
+
},
|
|
266
|
+
"getter": false,
|
|
267
|
+
"setter": false,
|
|
268
|
+
"reflect": false
|
|
269
|
+
},
|
|
270
|
+
"tooltip": {
|
|
271
|
+
"type": "string",
|
|
272
|
+
"attribute": "tooltip",
|
|
273
|
+
"mutable": false,
|
|
274
|
+
"complexType": {
|
|
275
|
+
"original": "string",
|
|
276
|
+
"resolved": "string",
|
|
277
|
+
"references": {}
|
|
278
|
+
},
|
|
279
|
+
"required": false,
|
|
280
|
+
"optional": true,
|
|
281
|
+
"docs": {
|
|
282
|
+
"tags": [],
|
|
283
|
+
"text": "Tooltip text to display on hover."
|
|
284
|
+
},
|
|
285
|
+
"getter": false,
|
|
286
|
+
"setter": false,
|
|
287
|
+
"reflect": false
|
|
288
|
+
},
|
|
289
|
+
"badgeContent": {
|
|
290
|
+
"type": "number",
|
|
291
|
+
"attribute": "badge-content",
|
|
292
|
+
"mutable": false,
|
|
293
|
+
"complexType": {
|
|
294
|
+
"original": "number",
|
|
295
|
+
"resolved": "number",
|
|
296
|
+
"references": {}
|
|
297
|
+
},
|
|
298
|
+
"required": false,
|
|
299
|
+
"optional": true,
|
|
300
|
+
"docs": {
|
|
301
|
+
"tags": [],
|
|
302
|
+
"text": "If provided, displays a badge with this content over the icon.\nReplaces the old `count` prop from stencil-icon-button.\nMust be a number as required by udp-badge component."
|
|
303
|
+
},
|
|
304
|
+
"getter": false,
|
|
305
|
+
"setter": false,
|
|
306
|
+
"reflect": false
|
|
307
|
+
},
|
|
308
|
+
"ariaLabel": {
|
|
309
|
+
"type": "string",
|
|
310
|
+
"attribute": "aria-label",
|
|
311
|
+
"mutable": false,
|
|
312
|
+
"complexType": {
|
|
313
|
+
"original": "string",
|
|
314
|
+
"resolved": "string",
|
|
315
|
+
"references": {}
|
|
316
|
+
},
|
|
317
|
+
"required": false,
|
|
318
|
+
"optional": true,
|
|
319
|
+
"docs": {
|
|
320
|
+
"tags": [],
|
|
321
|
+
"text": "Optional aria-label for accessibility.\nIf not provided and tooltip exists, tooltip will be used."
|
|
322
|
+
},
|
|
323
|
+
"getter": false,
|
|
324
|
+
"setter": false,
|
|
325
|
+
"reflect": false
|
|
326
|
+
},
|
|
327
|
+
"buttonId": {
|
|
328
|
+
"type": "string",
|
|
329
|
+
"attribute": "button-id",
|
|
330
|
+
"mutable": false,
|
|
331
|
+
"complexType": {
|
|
332
|
+
"original": "string",
|
|
333
|
+
"resolved": "string",
|
|
334
|
+
"references": {}
|
|
335
|
+
},
|
|
336
|
+
"required": false,
|
|
337
|
+
"optional": true,
|
|
338
|
+
"docs": {
|
|
339
|
+
"tags": [],
|
|
340
|
+
"text": "Optional button ID for testing/tracking purposes."
|
|
341
|
+
},
|
|
342
|
+
"getter": false,
|
|
343
|
+
"setter": false,
|
|
344
|
+
"reflect": false
|
|
345
|
+
},
|
|
346
|
+
"iconColor": {
|
|
347
|
+
"type": "string",
|
|
348
|
+
"attribute": "icon-color",
|
|
349
|
+
"mutable": false,
|
|
350
|
+
"complexType": {
|
|
351
|
+
"original": "'primary' | 'secondary' | 'success' | 'error' | 'warning' | 'info' | 'inherit'",
|
|
352
|
+
"resolved": "\"error\" | \"info\" | \"inherit\" | \"primary\" | \"secondary\" | \"success\" | \"warning\"",
|
|
353
|
+
"references": {}
|
|
354
|
+
},
|
|
355
|
+
"required": false,
|
|
356
|
+
"optional": true,
|
|
357
|
+
"docs": {
|
|
358
|
+
"tags": [],
|
|
359
|
+
"text": "The color of the icon. If not provided, uses the button's color.\nAllows independent control of icon color from button color."
|
|
360
|
+
},
|
|
361
|
+
"getter": false,
|
|
362
|
+
"setter": false,
|
|
363
|
+
"reflect": false
|
|
364
|
+
}
|
|
365
|
+
};
|
|
366
|
+
}
|
|
367
|
+
static get events() {
|
|
368
|
+
return [{
|
|
369
|
+
"method": "click",
|
|
370
|
+
"name": "click",
|
|
371
|
+
"bubbles": true,
|
|
372
|
+
"cancelable": true,
|
|
373
|
+
"composed": true,
|
|
374
|
+
"docs": {
|
|
375
|
+
"tags": [],
|
|
376
|
+
"text": "Emitted when the button is clicked."
|
|
377
|
+
},
|
|
378
|
+
"complexType": {
|
|
379
|
+
"original": "MouseEvent",
|
|
380
|
+
"resolved": "MouseEvent",
|
|
381
|
+
"references": {
|
|
382
|
+
"MouseEvent": {
|
|
383
|
+
"location": "global",
|
|
384
|
+
"id": "global::MouseEvent"
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
}];
|
|
389
|
+
}
|
|
390
|
+
static get elementRef() { return "el"; }
|
|
391
|
+
}
|
|
392
|
+
//# sourceMappingURL=udp-icon-button.js.map
|
package/dist/collection/components/my-component/UI/buttons/udp-icon-button/udp-icon-button.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"udp-icon-button.js","sourceRoot":"","sources":["../../../../../../src/components/my-component/UI/buttons/udp-icon-button/udp-icon-button.tsx"],"names":[],"mappings":"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","sourcesContent":["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"]}
|
|
@@ -114,20 +114,24 @@ export class StencilField {
|
|
|
114
114
|
this.finalFormBlur = () => {
|
|
115
115
|
var _a;
|
|
116
116
|
blur();
|
|
117
|
-
|
|
117
|
+
// Preserve custom errors - only use Final Form errors if no custom error exists
|
|
118
|
+
const finalFormError = (_a = this.state.api.getFieldState(this.name)) === null || _a === void 0 ? void 0 : _a.error;
|
|
119
|
+
if (!this.errorMessage) {
|
|
120
|
+
this.errorMessage = finalFormError || '';
|
|
121
|
+
}
|
|
118
122
|
};
|
|
119
123
|
this.finalFormChange = event => {
|
|
120
124
|
change(event);
|
|
121
125
|
// reset the error on change, error state will be re-evaluated when the blur event is triggered
|
|
122
126
|
this.errorMessage = '';
|
|
123
|
-
// Force re-render to inject cleared error into child components
|
|
127
|
+
// // Force re-render to inject cleared error into child components
|
|
124
128
|
this.injectPropsIntoSlottedElements();
|
|
125
129
|
};
|
|
126
130
|
this.finalFormFocus = focus;
|
|
127
131
|
this.registered = true;
|
|
128
132
|
}
|
|
129
133
|
// update value
|
|
130
|
-
this.value = value;
|
|
134
|
+
this.value = value !== null && value !== void 0 ? value : "";
|
|
131
135
|
}, {
|
|
132
136
|
value: true,
|
|
133
137
|
error: false,
|
|
@@ -164,6 +168,7 @@ export class StencilField {
|
|
|
164
168
|
element.addEventListener('change', this.handleChange.bind(this));
|
|
165
169
|
element.addEventListener('blur', this.handleBlur.bind(this));
|
|
166
170
|
element.addEventListener('focus', this.handleFocus.bind(this));
|
|
171
|
+
element.addEventListener('error', this.handleError.bind(this));
|
|
167
172
|
element.setAttribute('data-field-events-bound', 'true');
|
|
168
173
|
}
|
|
169
174
|
});
|
|
@@ -264,8 +269,37 @@ export class StencilField {
|
|
|
264
269
|
var _a;
|
|
265
270
|
(_a = this.finalFormBlur) === null || _a === void 0 ? void 0 : _a.call(this, e);
|
|
266
271
|
}
|
|
272
|
+
handleError(e) {
|
|
273
|
+
var _a, _b;
|
|
274
|
+
// Handle error events from slotted child components
|
|
275
|
+
if (e.detail !== undefined) {
|
|
276
|
+
this.errorMessage = e.detail;
|
|
277
|
+
// Store the custom error in the form's custom errors registry
|
|
278
|
+
if (((_a = this.state) === null || _a === void 0 ? void 0 : _a.registeredFields) && this.name) {
|
|
279
|
+
if (!this.state.customErrors) {
|
|
280
|
+
this.state.customErrors = {};
|
|
281
|
+
}
|
|
282
|
+
this.state.customErrors[this.name] = e.detail;
|
|
283
|
+
// Trigger form validation to include custom errors
|
|
284
|
+
if (this.state.api) {
|
|
285
|
+
// Force re-validation by changing the field value to itself
|
|
286
|
+
const currentValue = (_b = this.state.api.getFieldState(this.name)) === null || _b === void 0 ? void 0 : _b.value;
|
|
287
|
+
this.state.api.change(this.name, currentValue);
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
// Force re-render to inject error state
|
|
291
|
+
this.injectPropsIntoSlottedElements();
|
|
292
|
+
}
|
|
293
|
+
}
|
|
267
294
|
stencilInvalid(e) {
|
|
268
|
-
|
|
295
|
+
// Handle form validation errors
|
|
296
|
+
if (e.detail && this.name && e.detail[this.name]) {
|
|
297
|
+
// Set the error message for this specific field
|
|
298
|
+
this.errorMessage = e.detail[this.name];
|
|
299
|
+
// Force re-render to inject error into child components
|
|
300
|
+
this.injectPropsIntoSlottedElements();
|
|
301
|
+
}
|
|
302
|
+
// Don't call finalFormBlur here as it might overwrite custom errors
|
|
269
303
|
}
|
|
270
304
|
render() {
|
|
271
305
|
if (!this.registered) {
|
|
@@ -275,16 +309,6 @@ export class StencilField {
|
|
|
275
309
|
return h("slot", null);
|
|
276
310
|
}
|
|
277
311
|
static get is() { return "stencil-field"; }
|
|
278
|
-
static get originalStyleUrls() {
|
|
279
|
-
return {
|
|
280
|
-
"$": ["stencil-field.css"]
|
|
281
|
-
};
|
|
282
|
-
}
|
|
283
|
-
static get styleUrls() {
|
|
284
|
-
return {
|
|
285
|
-
"$": ["stencil-field.css"]
|
|
286
|
-
};
|
|
287
|
-
}
|
|
288
312
|
static get properties() {
|
|
289
313
|
return {
|
|
290
314
|
"id": {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stencil-field.js","sourceRoot":"","sources":["../../../../../../src/components/my-component/UI/forms/form/stencil-field.tsx"],"names":[],"mappings":"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","sourcesContent":["/**\n * StencilField - Form field wrapper component that integrates with Final Form\n *\n * This component acts as a bridge between form input components and Final Form state management.\n * It uses slot-based rendering and property injection to work with any child input component.\n *\n * REQUIREMENTS FOR CHILD COMPONENTS:\n *\n * 1. VALUE HANDLING:\n * - SIMPLE INPUTS: Manage own value state, receive initialValue prop from stencil-field\n * - COMPLEX INPUTS: Same approach - internal value management with initialValue\n * - stencil-field reads values from DOM events or custom events, never directly modifies component value\n *\n * 2. ERROR HANDLING:\n * - Child component should have an @Prop() error: string\n * - Use @Watch('error') to react to validation errors\n *\n * 3. EVENT HANDLERS:\n * - Child component must emit standard DOM events (input, change, blur, focus)\n * - SIMPLE INPUTS: Standard HTML input/textarea that emits native events\n * - COMPLEX INPUTS: Emit CustomEvent with detail containing the value\n *\n * 4. STANDARD FORM PROPS:\n * - @Prop() name: string (for form field identification)\n * - @Prop() id: string (for accessibility)\n * - @Prop() label: string (for field labeling)\n * - @Prop() initialValue: string (for setting initial/default values)\n *\n * EXAMPLE SIMPLE INPUT:\n * ```tsx\n * @Component({ tag: 'simple-input' })\n * export class SimpleInput {\n * @Prop() error: string;\n * @Prop() name: string;\n * @Prop() id: string;\n * @Prop() label: string;\n * @Prop() initialValue: string;\n * @State() value: string;\n *\n * componentWillLoad() {\n * this.value = this.initialValue || '';\n * }\n *\n * private onChange = (e: Event) => {\n * this.value = (e.target as HTMLInputElement).value;\n * }\n *\n * render() {\n * return <input name={this.name} id={this.id} value={this.value} onInput={this.onChange} />;\n * }\n * }\n * ```\n *\n * EXAMPLE COMPLEX INPUT:\n * ```tsx\n * @Component({ tag: 'complex-input' })\n * export class ComplexInput {\n * @Prop() error: string;\n * @Prop() name: string;\n * @Prop() id: string;\n * @Prop() label: string;\n * @Prop() initialValue: string;\n * @State() value: string;\n *\n * componentWillLoad() {\n * this.value = this.initialValue || '';\n * }\n *\n * @Watch('error')\n * updateError() {\n * // Handle error display\n * }\n *\n * private onChange = (newValue: string) => {\n * this.value = newValue; // Update internal state\n * // Emit custom event for stencil-field\n * this.el.dispatchEvent(new CustomEvent('input', {\n * detail: newValue,\n * bubbles: true\n * }));\n * }\n * }\n * ```\n *\n * USAGE:\n * ```tsx\n * <!-- Simple input with initial value -->\n * <stencil-field name=\"email\" label=\"Email\" required>\n * <simple-input />\n * </stencil-field>\n *\n * <!-- Complex component -->\n * <stencil-field name=\"tags\" label=\"Tags\" required>\n * <tag-selector />\n * </stencil-field>\n * ```\n */\nimport { Component, Prop, h, State, Listen, Element, Method } from '@stencil/core';\n\n@Component({\n tag: 'stencil-field',\n styleUrl: 'stencil-field.css',\n shadow: false,\n})\nexport class StencilField {\n @Element() el: HTMLElement;\n @Prop() id: string;\n @Prop() defaultValue: string;\n @Prop() name: string;\n @Prop() label: string;\n @Prop() required: boolean = false;\n @Prop({ mutable: true }) value: string;\n @State() errorMessage: string;\n @State() registered: boolean = false;\n @State() finalFormBlur: (e: Event) => void = () => {};\n @State() finalFormChange: (value: any) => void = () => {};\n @State() finalFormFocus: (e: Event) => void = () => {};\n\n private state: any;\n\n @Method()\n async setFormApi(formApi: any) {\n this.state = formApi;\n this.state.api.registerField(\n this.name,\n fieldState => {\n const { blur, change, focus, value } = fieldState;\n if (!this.state.registeredFields[this.name]) {\n this.state.registeredFields[this.name] = { required: this.required };\n // first time, register event listeners\n\n this.finalFormBlur = () => {\n blur();\n this.errorMessage = this.state.api.getFieldState(this.name)?.error;\n };\n this.finalFormChange = event => {\n change(event);\n // reset the error on change, error state will be re-evaluated when the blur event is triggered\n this.errorMessage = '';\n // Force re-render to inject cleared error into child components\n this.injectPropsIntoSlottedElements();\n };\n this.finalFormFocus = focus;\n this.registered = true;\n }\n\n // update value\n\n this.value = value;\n },\n {\n value: true,\n error: false,\n touched: false,\n },\n );\n }\n\n componentDidRender() {\n this.injectPropsIntoSlottedElements();\n }\n\n componentDidUpdate() {\n this.injectPropsIntoSlottedElements();\n }\n\n private injectPropsIntoSlottedElements() {\n const hasSlottedContent = this.el.children.length > 0;\n\n if (hasSlottedContent) {\n Array.from(this.el.children).forEach((element: any) => {\n // Inject form field props\n // Pass initial value only, don't control the component's value directly\n if (this.value !== undefined && !element.hasAttribute('data-initial-value-set')) {\n element.initialValue = this.value;\n element.setAttribute('data-initial-value-set', 'true');\n }\n\n // Always update error state (including clearing it)\n element.error = this.errorMessage || '';\n\n if (this.name) element.name = this.name;\n if (this.id) element.id = this.id;\n if (this.label) element.label = this.label;\n\n // Set up event handlers if not already bound\n if (!element.hasAttribute('data-field-events-bound')) {\n element.addEventListener('input', this.handleInput.bind(this));\n element.addEventListener('change', this.handleChange.bind(this));\n element.addEventListener('blur', this.handleBlur.bind(this));\n element.addEventListener('focus', this.handleFocus.bind(this));\n element.setAttribute('data-field-events-bound', 'true');\n }\n });\n }\n }\n\n disconnectedCallback() {\n // Clean up the field from the registry when component is unmounted\n if (!this.name) {\n return;\n }\n if (this.state.registeredFields[this.name]) {\n delete this.state.registeredFields[this.name];\n }\n\n // Final Form automatically handles field cleanup when no longer subscribed,\n // but we can also explicitly remove the field value if needed\n try {\n if (this.state.api?.change) {\n this.state.api.change(this.name, undefined);\n }\n } catch (error) {\n // Silently handle any errors during cleanup\n console.debug('Field cleanup warning:', error);\n }\n\n // Reset registration state\n this.registered = false;\n }\n\n @Listen('input')\n handleInput(e: Event) {\n let value;\n\n // Handle custom events from complex components\n if (e instanceof CustomEvent && e.detail !== undefined) {\n value = e.detail;\n } else {\n // Handle standard DOM events - need to find the actual input element\n const target = e.target as HTMLElement;\n\n // If target is a custom component, look for the actual input in its shadow DOM\n if (target.shadowRoot) {\n const input = target.shadowRoot.querySelector('input, textarea, select') as HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement;\n if (input) {\n value = input.value;\n }\n }\n // If target is the actual input element\n else if (target.tagName === 'INPUT' || target.tagName === 'TEXTAREA' || target.tagName === 'SELECT') {\n value = (target as HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement).value;\n }\n // Fallback: check if the custom component has a value property\n else if ('value' in target) {\n value = (target as any).value;\n }\n }\n\n if (value !== undefined) {\n this.finalFormChange?.(value);\n }\n }\n\n @Listen('change')\n handleChange(e: Event) {\n let value;\n\n // Handle custom events from complex components\n if (e instanceof CustomEvent && e.detail !== undefined) {\n value = e.detail;\n } else {\n // Handle standard DOM events - need to find the actual input element\n const target = e.target as HTMLElement;\n\n // If target is a custom component, look for the actual input in its shadow DOM\n if (target.shadowRoot) {\n const input = target.shadowRoot.querySelector('input, textarea, select') as HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement;\n if (input) {\n value = input.value;\n }\n }\n // If target is the actual input element\n else if (target.tagName === 'INPUT' || target.tagName === 'TEXTAREA' || target.tagName === 'SELECT') {\n value = (target as HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement).value;\n }\n // Fallback: check if the custom component has a value property\n else if ('value' in target) {\n value = (target as any).value;\n }\n }\n\n if (value !== undefined) {\n this.finalFormChange?.(value);\n // For complex components that emit custom events, also trigger blur validation\n if (e instanceof CustomEvent) {\n this.finalFormBlur?.(e);\n }\n }\n }\n\n @Listen('focus')\n handleFocus(e: FocusEvent) {\n this.finalFormFocus?.(e);\n }\n\n @Listen('blur')\n handleBlur(e: FocusEvent) {\n this.finalFormBlur?.(e);\n }\n\n @Listen('stencilFormInvalidEvent', {target: 'body'})\n stencilInvalid(e){\n this.finalFormBlur(e);\n }\n render() {\n if (!this.registered) {\n return null;\n }\n\n // Always use slot-based rendering\n return <slot />;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"stencil-field.js","sourceRoot":"","sources":["../../../../../../src/components/my-component/UI/forms/form/stencil-field.tsx"],"names":[],"mappings":"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","sourcesContent":["/**\n * StencilField - Form field wrapper component that integrates with Final Form\n *\n * This component acts as a bridge between form input components and Final Form state management.\n * It uses slot-based rendering and property injection to work with any child input component.\n *\n * REQUIREMENTS FOR CHILD COMPONENTS:\n *\n * 1. VALUE HANDLING:\n * - SIMPLE INPUTS: Manage own value state, receive initialValue prop from stencil-field\n * - COMPLEX INPUTS: Same approach - internal value management with initialValue\n * - stencil-field reads values from DOM events or custom events, never directly modifies component value\n *\n * 2. ERROR HANDLING:\n * - Child component should have an @Prop() error: string\n * - Use @Watch('error') to react to validation errors\n *\n * 3. EVENT HANDLERS:\n * - Child component must emit standard DOM events (input, change, blur, focus)\n * - SIMPLE INPUTS: Standard HTML input/textarea that emits native events\n * - COMPLEX INPUTS: Emit CustomEvent with detail containing the value\n *\n * 4. STANDARD FORM PROPS:\n * - @Prop() name: string (for form field identification)\n * - @Prop() id: string (for accessibility)\n * - @Prop() label: string (for field labeling)\n * - @Prop() initialValue: string (for setting initial/default values)\n *\n * EXAMPLE SIMPLE INPUT:\n * ```tsx\n * @Component({ tag: 'simple-input' })\n * export class SimpleInput {\n * @Prop() error: string;\n * @Prop() name: string;\n * @Prop() id: string;\n * @Prop() label: string;\n * @Prop() initialValue: string;\n * @State() value: string;\n *\n * componentWillLoad() {\n * this.value = this.initialValue || '';\n * }\n *\n * private onChange = (e: Event) => {\n * this.value = (e.target as HTMLInputElement).value;\n * }\n *\n * render() {\n * return <input name={this.name} id={this.id} value={this.value} onInput={this.onChange} />;\n * }\n * }\n * ```\n *\n * EXAMPLE COMPLEX INPUT:\n * ```tsx\n * @Component({ tag: 'complex-input' })\n * export class ComplexInput {\n * @Prop() error: string;\n * @Prop() name: string;\n * @Prop() id: string;\n * @Prop() label: string;\n * @Prop() initialValue: string;\n * @State() value: string;\n *\n * componentWillLoad() {\n * this.value = this.initialValue || '';\n * }\n *\n * @Watch('error')\n * updateError() {\n * // Handle error display\n * }\n *\n * private onChange = (newValue: string) => {\n * this.value = newValue; // Update internal state\n * // Emit custom event for stencil-field\n * this.el.dispatchEvent(new CustomEvent('input', {\n * detail: newValue,\n * bubbles: true\n * }));\n * }\n * }\n * ```\n *\n * USAGE:\n * ```tsx\n * <!-- Simple input with initial value -->\n * <stencil-field name=\"email\" label=\"Email\" required>\n * <simple-input />\n * </stencil-field>\n *\n * <!-- Complex component -->\n * <stencil-field name=\"tags\" label=\"Tags\" required>\n * <tag-selector />\n * </stencil-field>\n * ```\n */\nimport { Component, Prop, h, State, Listen, Element, Method } from '@stencil/core';\n\n@Component({\n tag: 'stencil-field',\n shadow: false,\n})\nexport class StencilField {\n @Element() el: HTMLElement;\n @Prop() id: string;\n @Prop() defaultValue: string;\n @Prop() name: string;\n @Prop() label: string;\n @Prop() required: boolean = false;\n @Prop({ mutable: true }) value: string;\n @State() errorMessage: string;\n @State() registered: boolean = false;\n @State() finalFormBlur: (e: Event) => void = () => { };\n @State() finalFormChange: (value: any) => void = () => { };\n @State() finalFormFocus: (e: Event) => void = () => { };\n\n private state: any;\n\n @Method()\n async setFormApi(formApi: any) {\n this.state = formApi;\n this.state.api.registerField(\n this.name,\n fieldState => {\n const { blur, change, focus, value } = fieldState;\n if (!this.state.registeredFields[this.name]) {\n this.state.registeredFields[this.name] = { required: this.required };\n // first time, register event listeners\n\n this.finalFormBlur = () => {\n blur();\n // Preserve custom errors - only use Final Form errors if no custom error exists\n const finalFormError = this.state.api.getFieldState(this.name)?.error;\n if (!this.errorMessage) {\n this.errorMessage = finalFormError || '';\n }\n };\n this.finalFormChange = event => {\n change(event);\n // reset the error on change, error state will be re-evaluated when the blur event is triggered\n this.errorMessage = '';\n // // Force re-render to inject cleared error into child components\n this.injectPropsIntoSlottedElements();\n };\n this.finalFormFocus = focus;\n this.registered = true;\n }\n\n // update value\n\n this.value = value ?? \"\";\n },\n {\n value: true,\n error: false,\n touched: false,\n },\n );\n }\n\n componentDidRender() {\n this.injectPropsIntoSlottedElements();\n }\n\n componentDidUpdate() {\n this.injectPropsIntoSlottedElements();\n }\n\n private injectPropsIntoSlottedElements() {\n const hasSlottedContent = this.el.children.length > 0;\n\n if (hasSlottedContent) {\n Array.from(this.el.children).forEach((element: any) => {\n // Inject form field props\n // Pass initial value only, don't control the component's value directly\n if (this.value !== undefined && !element.hasAttribute('data-initial-value-set')) {\n element.initialValue = this.value;\n element.setAttribute('data-initial-value-set', 'true');\n }\n\n // Always update error state (including clearing it)\n element.error = this.errorMessage || '';\n\n if (this.name) element.name = this.name;\n if (this.id) element.id = this.id;\n if (this.label) element.label = this.label;\n\n // Set up event handlers if not already bound\n if (!element.hasAttribute('data-field-events-bound')) {\n element.addEventListener('input', this.handleInput.bind(this));\n element.addEventListener('change', this.handleChange.bind(this));\n element.addEventListener('blur', this.handleBlur.bind(this));\n element.addEventListener('focus', this.handleFocus.bind(this));\n element.addEventListener('error', this.handleError.bind(this));\n element.setAttribute('data-field-events-bound', 'true');\n }\n });\n }\n }\n\n disconnectedCallback() {\n // Clean up the field from the registry when component is unmounted\n if (!this.name) {\n return;\n }\n if (this.state.registeredFields[this.name]) {\n delete this.state.registeredFields[this.name];\n }\n\n // Final Form automatically handles field cleanup when no longer subscribed,\n // but we can also explicitly remove the field value if needed\n try {\n if (this.state.api?.change) {\n this.state.api.change(this.name, undefined);\n }\n } catch (error) {\n // Silently handle any errors during cleanup\n console.debug('Field cleanup warning:', error);\n }\n\n // Reset registration state\n this.registered = false;\n }\n\n @Listen('input')\n handleInput(e: Event) {\n let value;\n\n // Handle custom events from complex components\n if (e instanceof CustomEvent && e.detail !== undefined) {\n value = e.detail;\n } else {\n // Handle standard DOM events - need to find the actual input element\n const target = e.target as HTMLElement;\n\n // If target is a custom component, look for the actual input in its shadow DOM\n if (target.shadowRoot) {\n const input = target.shadowRoot.querySelector('input, textarea, select') as HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement;\n if (input) {\n value = input.value;\n }\n }\n // If target is the actual input element\n else if (target.tagName === 'INPUT' || target.tagName === 'TEXTAREA' || target.tagName === 'SELECT') {\n value = (target as HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement).value;\n }\n // Fallback: check if the custom component has a value property\n else if ('value' in target) {\n value = (target as any).value;\n }\n }\n\n if (value !== undefined) {\n this.finalFormChange?.(value);\n }\n }\n\n @Listen('change')\n handleChange(e: Event) {\n let value;\n\n // Handle custom events from complex components\n if (e instanceof CustomEvent && e.detail !== undefined) {\n value = e.detail;\n } else {\n // Handle standard DOM events - need to find the actual input element\n const target = e.target as HTMLElement;\n\n // If target is a custom component, look for the actual input in its shadow DOM\n if (target.shadowRoot) {\n const input = target.shadowRoot.querySelector('input, textarea, select') as HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement;\n if (input) {\n value = input.value;\n }\n }\n // If target is the actual input element\n else if (target.tagName === 'INPUT' || target.tagName === 'TEXTAREA' || target.tagName === 'SELECT') {\n value = (target as HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement).value;\n }\n // Fallback: check if the custom component has a value property\n else if ('value' in target) {\n value = (target as any).value;\n }\n }\n\n if (value !== undefined) {\n this.finalFormChange?.(value);\n // For complex components that emit custom events, also trigger blur validation\n if (e instanceof CustomEvent) {\n this.finalFormBlur?.(e);\n }\n }\n }\n\n @Listen('focus')\n handleFocus(e: FocusEvent) {\n this.finalFormFocus?.(e);\n }\n\n @Listen('blur')\n handleBlur(e: FocusEvent) {\n this.finalFormBlur?.(e);\n }\n\n handleError(e: CustomEvent) {\n // Handle error events from slotted child components\n if (e.detail !== undefined) {\n this.errorMessage = e.detail;\n\n // Store the custom error in the form's custom errors registry\n if (this.state?.registeredFields && this.name) {\n if (!this.state.customErrors) {\n this.state.customErrors = {};\n }\n this.state.customErrors[this.name] = e.detail;\n\n // Trigger form validation to include custom errors\n if (this.state.api) {\n // Force re-validation by changing the field value to itself\n const currentValue = this.state.api.getFieldState(this.name)?.value;\n this.state.api.change(this.name, currentValue);\n }\n }\n\n // Force re-render to inject error state\n this.injectPropsIntoSlottedElements();\n }\n }\n\n @Listen('stencilFormInvalidEvent', { target: 'body' })\n stencilInvalid(e: CustomEvent) {\n // Handle form validation errors\n if (e.detail && this.name && e.detail[this.name]) {\n // Set the error message for this specific field\n this.errorMessage = e.detail[this.name];\n // Force re-render to inject error into child components\n this.injectPropsIntoSlottedElements();\n }\n // Don't call finalFormBlur here as it might overwrite custom errors\n }\n render() {\n if (!this.registered) {\n return null;\n }\n\n // Always use slot-based rendering\n return <slot />;\n }\n}\n"]}
|