@govbr-ds/webcomponents 2.0.0-next.20 → 2.0.0-next.22
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/br-avatar.cjs.entry.js +2 -2
- package/dist/cjs/br-avatar.cjs.entry.js.map +1 -1
- package/dist/cjs/br-button_2.cjs.entry.js +175 -56
- package/dist/cjs/br-button_2.cjs.entry.js.map +1 -1
- package/dist/cjs/br-checkbox.cjs.entry.js +2 -2
- package/dist/cjs/br-checkbox.cjs.entry.js.map +1 -1
- package/dist/cjs/br-checkgroup.cjs.entry.js +101 -0
- package/dist/cjs/br-checkgroup.cjs.entry.js.map +1 -0
- package/dist/cjs/br-dropdown.cjs.entry.js +3 -3
- package/dist/cjs/br-dropdown.cjs.entry.js.map +1 -1
- package/dist/cjs/br-input_3.cjs.entry.js +284 -0
- package/dist/cjs/br-input_3.cjs.entry.js.map +1 -0
- package/dist/cjs/br-item.cjs.entry.js +40 -20
- package/dist/cjs/br-item.cjs.entry.js.map +1 -1
- package/dist/cjs/br-loading.cjs.entry.js +3 -3
- package/dist/cjs/br-loading.cjs.entry.js.map +1 -1
- package/dist/cjs/br-message.cjs.entry.js +3 -3
- package/dist/cjs/br-message.cjs.entry.js.map +1 -1
- package/dist/cjs/br-select.cjs.entry.js +281 -0
- package/dist/cjs/br-select.cjs.entry.js.map +1 -0
- package/dist/cjs/br-switch.cjs.entry.js +9 -6
- package/dist/cjs/br-switch.cjs.entry.js.map +1 -1
- package/dist/cjs/br-tag.cjs.entry.js +3 -3
- package/dist/cjs/br-tag.cjs.entry.js.map +1 -1
- package/dist/cjs/br-textarea.cjs.entry.js +3 -3
- package/dist/cjs/br-textarea.cjs.entry.js.map +1 -1
- package/dist/cjs/br-upload.cjs.entry.js +3 -3
- package/dist/cjs/br-upload.cjs.entry.js.map +1 -1
- package/dist/cjs/{index-81c11ce2.js → index-4fc1aab1.js} +851 -624
- package/dist/cjs/index-4fc1aab1.js.map +1 -0
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/webcomponents.cjs.js +3 -3
- package/dist/cjs/webcomponents.cjs.js.map +1 -1
- package/dist/collection/collection-manifest.json +3 -1
- package/dist/collection/components/avatar/avatar.css +11 -1
- package/dist/collection/components/avatar/avatar.js +16 -0
- package/dist/collection/components/avatar/avatar.js.map +1 -1
- package/dist/collection/components/button/button.css +11 -1
- package/dist/collection/components/button/button.js +18 -0
- package/dist/collection/components/button/button.js.map +1 -1
- package/dist/collection/components/checkbox/checkbox.css +11 -1
- package/dist/collection/components/checkbox/checkbox.js +18 -0
- package/dist/collection/components/checkbox/checkbox.js.map +1 -1
- package/dist/collection/components/checkgroup/checkgroup.css +605 -0
- package/dist/collection/components/checkgroup/checkgroup.js +197 -0
- package/dist/collection/components/checkgroup/checkgroup.js.map +1 -0
- package/dist/collection/components/dropdown/dropdown.css +11 -1
- package/dist/collection/components/dropdown/dropdown.js +3 -1
- package/dist/collection/components/dropdown/dropdown.js.map +1 -1
- package/dist/collection/components/icon/icon.css +11 -1
- package/dist/collection/components/icon/icon.js +15 -1
- package/dist/collection/components/icon/icon.js.map +1 -1
- package/dist/collection/components/input/input.css +11 -1
- package/dist/collection/components/input/input.js +47 -1
- package/dist/collection/components/input/input.js.map +1 -1
- package/dist/collection/components/item/item.css +11 -1
- package/dist/collection/components/item/item.js +65 -19
- package/dist/collection/components/item/item.js.map +1 -1
- package/dist/collection/components/list/list.css +11 -1
- package/dist/collection/components/list/list.js +7 -1
- package/dist/collection/components/list/list.js.map +1 -1
- package/dist/collection/components/loading/loading.css +11 -1
- package/dist/collection/components/loading/loading.js +9 -1
- package/dist/collection/components/loading/loading.js.map +1 -1
- package/dist/collection/components/message/message.css +11 -1
- package/dist/collection/components/message/message.js +15 -1
- package/dist/collection/components/message/message.js.map +1 -1
- package/dist/collection/components/radio/radio.css +11 -1
- package/dist/collection/components/radio/radio.js +17 -1
- package/dist/collection/components/radio/radio.js.map +1 -1
- package/dist/collection/components/select/select.css +865 -0
- package/dist/collection/components/select/select.js +509 -0
- package/dist/collection/components/select/select.js.map +1 -0
- package/dist/collection/components/switch/switch.css +11 -1
- package/dist/collection/components/switch/switch.js +30 -5
- package/dist/collection/components/switch/switch.js.map +1 -1
- package/dist/collection/components/tag/tag.css +11 -1
- package/dist/collection/components/tag/tag.js +17 -1
- package/dist/collection/components/tag/tag.js.map +1 -1
- package/dist/collection/components/textarea/textarea.css +11 -1
- package/dist/collection/components/textarea/textarea.js +19 -1
- package/dist/collection/components/textarea/textarea.js.map +1 -1
- package/dist/collection/components/upload/upload.css +11 -1
- package/dist/collection/components/upload/upload.js +13 -3
- package/dist/collection/components/upload/upload.js.map +1 -1
- package/dist/collection/index.js.map +1 -1
- package/dist/collection/pages/components/checkgroup/index.js +20 -0
- package/dist/collection/pages/components/item/index.js +1 -1
- package/dist/collection/pages/components/select/index.js +18 -0
- package/dist/collection/pages/components/switch/index.js +1 -1
- package/dist/collection/pages/scripts/menu.js +22 -2
- package/dist/collection/utils/inherited-attributes.js.map +1 -1
- package/dist/collection/utils/interfaces.js.map +1 -1
- package/dist/collection/utils/unique-id-generator.js.map +1 -1
- package/dist/components/br-avatar.js +1 -1
- package/dist/components/br-avatar.js.map +1 -1
- package/dist/components/br-button.js +1 -1
- package/dist/components/br-checkbox.js +1 -1
- package/dist/components/br-checkbox.js.map +1 -1
- package/dist/components/br-checkgroup.d.ts +11 -0
- package/dist/components/br-checkgroup.js +6 -0
- package/dist/components/br-checkgroup.js.map +1 -0
- package/dist/components/br-dropdown.js +1 -1
- package/dist/components/br-dropdown.js.map +1 -1
- package/dist/components/br-icon.js +1 -1
- package/dist/components/br-input.js +1 -1
- package/dist/components/br-input.js.map +1 -1
- package/dist/components/br-item.js +1 -1
- package/dist/components/br-item.js.map +1 -1
- package/dist/components/br-list.js +1 -1
- package/dist/components/br-list.js.map +1 -1
- package/dist/components/br-loading.js +1 -1
- package/dist/components/br-loading.js.map +1 -1
- package/dist/components/br-message.js +1 -1
- package/dist/components/br-message.js.map +1 -1
- package/dist/components/br-radio.js +1 -1
- package/dist/components/br-radio.js.map +1 -1
- package/dist/components/br-select.d.ts +11 -0
- package/dist/components/br-select.js +6 -0
- package/dist/components/br-select.js.map +1 -0
- package/dist/components/br-switch.js +1 -1
- package/dist/components/br-switch.js.map +1 -1
- package/dist/components/br-tag.js +1 -1
- package/dist/components/br-tag.js.map +1 -1
- package/dist/components/br-textarea.js +1 -1
- package/dist/components/br-textarea.js.map +1 -1
- package/dist/components/br-upload.js +1 -1
- package/dist/components/br-upload.js.map +1 -1
- package/dist/components/index.js +1 -1
- package/dist/components/p-126ad66d.js +17 -0
- package/dist/components/p-126ad66d.js.map +1 -0
- package/dist/components/p-184a3074.js +6 -0
- package/dist/components/p-184a3074.js.map +1 -0
- package/dist/components/p-5cb170a7.js +6 -0
- package/dist/components/p-5cb170a7.js.map +1 -0
- package/dist/components/p-65616dbd.js +7 -0
- package/dist/components/p-65616dbd.js.map +1 -0
- package/dist/components/p-65c54cc8.js +6 -0
- package/dist/components/p-65c54cc8.js.map +1 -0
- package/dist/components/p-a6dcabb0.js +6 -0
- package/dist/components/p-a6dcabb0.js.map +1 -0
- package/dist/components/p-ace62688.js +6 -0
- package/dist/components/p-ace62688.js.map +1 -0
- package/dist/esm/br-avatar.entry.js +2 -2
- package/dist/esm/br-avatar.entry.js.map +1 -1
- package/dist/esm/br-button_2.entry.js +175 -56
- package/dist/esm/br-button_2.entry.js.map +1 -1
- package/dist/esm/br-checkbox.entry.js +2 -2
- package/dist/esm/br-checkbox.entry.js.map +1 -1
- package/dist/esm/br-checkgroup.entry.js +97 -0
- package/dist/esm/br-checkgroup.entry.js.map +1 -0
- package/dist/esm/br-dropdown.entry.js +3 -3
- package/dist/esm/br-dropdown.entry.js.map +1 -1
- package/dist/esm/br-input_3.entry.js +278 -0
- package/dist/esm/br-input_3.entry.js.map +1 -0
- package/dist/esm/br-item.entry.js +40 -20
- package/dist/esm/br-item.entry.js.map +1 -1
- package/dist/esm/br-loading.entry.js +3 -3
- package/dist/esm/br-loading.entry.js.map +1 -1
- package/dist/esm/br-message.entry.js +3 -3
- package/dist/esm/br-message.entry.js.map +1 -1
- package/dist/esm/br-select.entry.js +277 -0
- package/dist/esm/br-select.entry.js.map +1 -0
- package/dist/esm/br-switch.entry.js +9 -6
- package/dist/esm/br-switch.entry.js.map +1 -1
- package/dist/esm/br-tag.entry.js +3 -3
- package/dist/esm/br-tag.entry.js.map +1 -1
- package/dist/esm/br-textarea.entry.js +3 -3
- package/dist/esm/br-textarea.entry.js.map +1 -1
- package/dist/esm/br-upload.entry.js +3 -3
- package/dist/esm/br-upload.entry.js.map +1 -1
- package/dist/esm/{index-aab4a630.js → index-45af9b53.js} +851 -624
- package/dist/esm/index-45af9b53.js.map +1 -0
- package/dist/esm/loader.js +3 -3
- package/dist/esm/webcomponents.js +4 -4
- package/dist/esm/webcomponents.js.map +1 -1
- package/dist/esm-es5/br-avatar.entry.js +1 -1
- package/dist/esm-es5/br-avatar.entry.js.map +1 -1
- package/dist/esm-es5/br-button_2.entry.js +4 -4
- package/dist/esm-es5/br-button_2.entry.js.map +1 -1
- package/dist/esm-es5/br-checkbox.entry.js +1 -1
- package/dist/esm-es5/br-checkbox.entry.js.map +1 -1
- package/dist/esm-es5/br-checkgroup.entry.js +6 -0
- package/dist/esm-es5/br-checkgroup.entry.js.map +1 -0
- package/dist/esm-es5/br-dropdown.entry.js +1 -1
- package/dist/esm-es5/br-dropdown.entry.js.map +1 -1
- package/dist/esm-es5/br-input_3.entry.js +6 -0
- package/dist/esm-es5/br-input_3.entry.js.map +1 -0
- package/dist/esm-es5/br-item.entry.js +1 -1
- package/dist/esm-es5/br-item.entry.js.map +1 -1
- package/dist/esm-es5/br-loading.entry.js +1 -1
- package/dist/esm-es5/br-loading.entry.js.map +1 -1
- package/dist/esm-es5/br-message.entry.js +1 -1
- package/dist/esm-es5/br-message.entry.js.map +1 -1
- package/dist/esm-es5/br-select.entry.js +6 -0
- package/dist/esm-es5/br-select.entry.js.map +1 -0
- package/dist/esm-es5/br-switch.entry.js +2 -2
- package/dist/esm-es5/br-switch.entry.js.map +1 -1
- package/dist/esm-es5/br-tag.entry.js +1 -1
- package/dist/esm-es5/br-tag.entry.js.map +1 -1
- package/dist/esm-es5/br-textarea.entry.js +1 -1
- package/dist/esm-es5/br-textarea.entry.js.map +1 -1
- package/dist/esm-es5/br-upload.entry.js +1 -1
- package/dist/esm-es5/br-upload.entry.js.map +1 -1
- package/dist/esm-es5/index-45af9b53.js +6 -0
- package/dist/esm-es5/index-45af9b53.js.map +1 -0
- package/dist/esm-es5/loader.js +2 -2
- package/dist/esm-es5/loader.js.map +1 -1
- package/dist/esm-es5/webcomponents.js +2 -2
- package/dist/esm-es5/webcomponents.js.map +1 -1
- package/dist/types/components/checkgroup/checkgroup.d.ts +52 -0
- package/dist/types/components/item/item.d.ts +5 -3
- package/dist/types/components/select/select.d.ts +98 -0
- package/dist/types/components/switch/switch.d.ts +2 -1
- package/dist/types/components/upload/upload.d.ts +2 -2
- package/dist/types/components.d.ts +171 -6
- package/dist/webcomponents/p-04a3d24e.system.entry.js +6 -0
- package/dist/webcomponents/{p-71be2e3f.system.entry.js.map → p-04a3d24e.system.entry.js.map} +1 -1
- package/dist/webcomponents/p-057dcb7c.system.entry.js +6 -0
- package/dist/webcomponents/p-057dcb7c.system.entry.js.map +1 -0
- package/dist/webcomponents/p-19b77f11.entry.js +6 -0
- package/dist/webcomponents/{p-5539ffa8.entry.js.map → p-19b77f11.entry.js.map} +1 -1
- package/dist/webcomponents/p-1acbc680.entry.js +6 -0
- package/dist/webcomponents/p-1acbc680.entry.js.map +1 -0
- package/dist/webcomponents/p-25d82c85.system.entry.js +6 -0
- package/dist/webcomponents/p-25d82c85.system.entry.js.map +1 -0
- package/dist/webcomponents/p-27b820ac.system.entry.js +6 -0
- package/dist/webcomponents/p-27b820ac.system.entry.js.map +1 -0
- package/dist/webcomponents/p-2b0430f4.entry.js +6 -0
- package/dist/webcomponents/p-2b0430f4.entry.js.map +1 -0
- package/dist/webcomponents/p-2ff5f694.system.entry.js +6 -0
- package/dist/webcomponents/p-2ff5f694.system.entry.js.map +1 -0
- package/dist/webcomponents/p-357e1105.system.entry.js +6 -0
- package/dist/webcomponents/p-357e1105.system.entry.js.map +1 -0
- package/dist/webcomponents/p-35f07e4b.entry.js +6 -0
- package/dist/webcomponents/p-35f07e4b.entry.js.map +1 -0
- package/dist/webcomponents/p-3e449bd5.system.entry.js +6 -0
- package/dist/webcomponents/p-3e449bd5.system.entry.js.map +1 -0
- package/dist/webcomponents/p-46a75920.system.js +6 -0
- package/dist/webcomponents/p-46a75920.system.js.map +1 -0
- package/dist/webcomponents/p-491cdd00.entry.js +6 -0
- package/dist/webcomponents/p-491cdd00.entry.js.map +1 -0
- package/dist/webcomponents/p-52e5bcdd.entry.js +6 -0
- package/dist/webcomponents/p-52e5bcdd.entry.js.map +1 -0
- package/dist/webcomponents/p-60879543.system.entry.js +6 -0
- package/dist/webcomponents/p-60879543.system.entry.js.map +1 -0
- package/dist/webcomponents/p-6bfb8eb6.entry.js +6 -0
- package/dist/webcomponents/p-6bfb8eb6.entry.js.map +1 -0
- package/dist/webcomponents/p-6d0d2846.system.js +7 -0
- package/dist/webcomponents/p-6d0d2846.system.js.map +1 -0
- package/dist/webcomponents/p-7c3554a7.system.entry.js +17 -0
- package/dist/webcomponents/p-7c3554a7.system.entry.js.map +1 -0
- package/dist/webcomponents/p-8fd11f97.system.entry.js +6 -0
- package/dist/webcomponents/p-8fd11f97.system.entry.js.map +1 -0
- package/dist/webcomponents/p-907fab5d.entry.js +6 -0
- package/dist/webcomponents/p-907fab5d.entry.js.map +1 -0
- package/dist/webcomponents/p-929db2b8.entry.js +17 -0
- package/dist/webcomponents/p-929db2b8.entry.js.map +1 -0
- package/dist/webcomponents/p-98e6f0c1.system.entry.js +6 -0
- package/dist/webcomponents/p-98e6f0c1.system.entry.js.map +1 -0
- package/dist/webcomponents/p-9b0f20d7.entry.js +6 -0
- package/dist/webcomponents/p-9b0f20d7.entry.js.map +1 -0
- package/dist/webcomponents/p-ad5a7b8b.system.entry.js +6 -0
- package/dist/webcomponents/{p-f5e674ba.system.entry.js.map → p-ad5a7b8b.system.entry.js.map} +1 -1
- package/dist/webcomponents/p-c3811f09.js +7 -0
- package/dist/webcomponents/p-c3811f09.js.map +1 -0
- package/dist/webcomponents/p-c6a9c8ac.entry.js +6 -0
- package/dist/webcomponents/p-c6a9c8ac.entry.js.map +1 -0
- package/dist/webcomponents/p-d46495d5.system.entry.js +6 -0
- package/dist/webcomponents/p-d46495d5.system.entry.js.map +1 -0
- package/dist/webcomponents/p-dc3d284a.entry.js +6 -0
- package/dist/webcomponents/p-dc3d284a.entry.js.map +1 -0
- package/dist/webcomponents/p-e98418a4.entry.js +6 -0
- package/dist/webcomponents/{p-e8b5b14f.entry.js.map → p-e98418a4.entry.js.map} +1 -1
- package/dist/webcomponents/p-ef89bcc9.system.entry.js +6 -0
- package/dist/webcomponents/p-ef89bcc9.system.entry.js.map +1 -0
- package/dist/webcomponents/p-fc11eac9.entry.js +6 -0
- package/dist/webcomponents/p-fc11eac9.entry.js.map +1 -0
- package/dist/webcomponents/webcomponents.esm.js +1 -1
- package/dist/webcomponents/webcomponents.esm.js.map +1 -1
- package/dist/webcomponents/webcomponents.js +1 -1
- package/hydrate/index.js +1434 -645
- package/hydrate/index.mjs +1434 -645
- package/package.json +2 -2
- package/vscode-data.json +72 -2
- package/dist/cjs/br-input.cjs.entry.js +0 -150
- package/dist/cjs/br-input.cjs.entry.js.map +0 -1
- package/dist/cjs/br-list.cjs.entry.js +0 -82
- package/dist/cjs/br-list.cjs.entry.js.map +0 -1
- package/dist/cjs/br-radio.cjs.entry.js +0 -79
- package/dist/cjs/br-radio.cjs.entry.js.map +0 -1
- package/dist/cjs/index-81c11ce2.js.map +0 -1
- package/dist/collection/scripts/menu.js +0 -146
- package/dist/components/p-2d8e59f6.js +0 -7
- package/dist/components/p-2d8e59f6.js.map +0 -1
- package/dist/components/p-64831033.js +0 -17
- package/dist/components/p-64831033.js.map +0 -1
- package/dist/components/p-e4af8eac.js +0 -6
- package/dist/components/p-e4af8eac.js.map +0 -1
- package/dist/esm/br-input.entry.js +0 -146
- package/dist/esm/br-input.entry.js.map +0 -1
- package/dist/esm/br-list.entry.js +0 -78
- package/dist/esm/br-list.entry.js.map +0 -1
- package/dist/esm/br-radio.entry.js +0 -75
- package/dist/esm/br-radio.entry.js.map +0 -1
- package/dist/esm/index-aab4a630.js.map +0 -1
- package/dist/esm-es5/br-input.entry.js +0 -6
- package/dist/esm-es5/br-input.entry.js.map +0 -1
- package/dist/esm-es5/br-list.entry.js +0 -6
- package/dist/esm-es5/br-list.entry.js.map +0 -1
- package/dist/esm-es5/br-radio.entry.js +0 -6
- package/dist/esm-es5/br-radio.entry.js.map +0 -1
- package/dist/esm-es5/index-aab4a630.js +0 -6
- package/dist/esm-es5/index-aab4a630.js.map +0 -1
- package/dist/playwright.config.js +0 -39
- package/dist/playwright.config.js.map +0 -1
- package/dist/types/builds/govbr-ds/bibliotecas/wbc/govbr-ds-wbc/packages/webcomponents/.stencil/playwright.config.d.ts +0 -5
- package/dist/webcomponents/p-05343155.system.entry.js +0 -6
- package/dist/webcomponents/p-05343155.system.entry.js.map +0 -1
- package/dist/webcomponents/p-183614c8.system.entry.js +0 -6
- package/dist/webcomponents/p-183614c8.system.entry.js.map +0 -1
- package/dist/webcomponents/p-2083ff7b.entry.js +0 -6
- package/dist/webcomponents/p-2083ff7b.entry.js.map +0 -1
- package/dist/webcomponents/p-24da392a.entry.js +0 -6
- package/dist/webcomponents/p-24da392a.entry.js.map +0 -1
- package/dist/webcomponents/p-28476b17.system.entry.js +0 -6
- package/dist/webcomponents/p-28476b17.system.entry.js.map +0 -1
- package/dist/webcomponents/p-2c2c8629.js +0 -7
- package/dist/webcomponents/p-2c2c8629.js.map +0 -1
- package/dist/webcomponents/p-3f00a196.entry.js +0 -6
- package/dist/webcomponents/p-3f00a196.entry.js.map +0 -1
- package/dist/webcomponents/p-430afeb5.system.js +0 -7
- package/dist/webcomponents/p-430afeb5.system.js.map +0 -1
- package/dist/webcomponents/p-447c8036.entry.js +0 -6
- package/dist/webcomponents/p-447c8036.entry.js.map +0 -1
- package/dist/webcomponents/p-5539ffa8.entry.js +0 -6
- package/dist/webcomponents/p-55604b7f.system.entry.js +0 -6
- package/dist/webcomponents/p-55604b7f.system.entry.js.map +0 -1
- package/dist/webcomponents/p-61523bc9.entry.js +0 -6
- package/dist/webcomponents/p-61523bc9.entry.js.map +0 -1
- package/dist/webcomponents/p-626fe2cb.entry.js +0 -6
- package/dist/webcomponents/p-626fe2cb.entry.js.map +0 -1
- package/dist/webcomponents/p-6a8226b3.system.entry.js +0 -6
- package/dist/webcomponents/p-6a8226b3.system.entry.js.map +0 -1
- package/dist/webcomponents/p-71be2e3f.system.entry.js +0 -6
- package/dist/webcomponents/p-7a4e1265.system.entry.js +0 -6
- package/dist/webcomponents/p-7a4e1265.system.entry.js.map +0 -1
- package/dist/webcomponents/p-8039a644.system.entry.js +0 -6
- package/dist/webcomponents/p-8039a644.system.entry.js.map +0 -1
- package/dist/webcomponents/p-842b2513.entry.js +0 -6
- package/dist/webcomponents/p-842b2513.entry.js.map +0 -1
- package/dist/webcomponents/p-8f156fc4.system.entry.js +0 -6
- package/dist/webcomponents/p-8f156fc4.system.entry.js.map +0 -1
- package/dist/webcomponents/p-9f0d01d1.entry.js +0 -6
- package/dist/webcomponents/p-9f0d01d1.entry.js.map +0 -1
- package/dist/webcomponents/p-ae629243.system.entry.js +0 -6
- package/dist/webcomponents/p-ae629243.system.entry.js.map +0 -1
- package/dist/webcomponents/p-b88a5d9a.system.js +0 -6
- package/dist/webcomponents/p-b88a5d9a.system.js.map +0 -1
- package/dist/webcomponents/p-b9fd2bc0.system.entry.js +0 -6
- package/dist/webcomponents/p-b9fd2bc0.system.entry.js.map +0 -1
- package/dist/webcomponents/p-baad00f8.system.entry.js +0 -6
- package/dist/webcomponents/p-baad00f8.system.entry.js.map +0 -1
- package/dist/webcomponents/p-d174c8cd.entry.js +0 -6
- package/dist/webcomponents/p-d174c8cd.entry.js.map +0 -1
- package/dist/webcomponents/p-d83e2172.system.entry.js +0 -17
- package/dist/webcomponents/p-d83e2172.system.entry.js.map +0 -1
- package/dist/webcomponents/p-dcf41d91.entry.js +0 -6
- package/dist/webcomponents/p-dcf41d91.entry.js.map +0 -1
- package/dist/webcomponents/p-e027fca2.entry.js +0 -6
- package/dist/webcomponents/p-e027fca2.entry.js.map +0 -1
- package/dist/webcomponents/p-e6d921ef.entry.js +0 -17
- package/dist/webcomponents/p-e6d921ef.entry.js.map +0 -1
- package/dist/webcomponents/p-e8b5b14f.entry.js +0 -6
- package/dist/webcomponents/p-f5e674ba.system.entry.js +0 -6
|
@@ -129,7 +129,7 @@ export class Input {
|
|
|
129
129
|
return null;
|
|
130
130
|
}
|
|
131
131
|
render() {
|
|
132
|
-
return (h(Host, { key: '
|
|
132
|
+
return (h(Host, { key: '7db54be8c6f64d73126cff434d407895f20e2075' }, h("div", { key: '9448cee18e6c87443ffb0dd67cbaf60d5539a11d', class: this.getInputCssClassMap() }, this.renderLabel(), this.isInline ? this.renderInlineInputContent() : this.renderInputContent())));
|
|
133
133
|
}
|
|
134
134
|
static get is() { return "br-input"; }
|
|
135
135
|
static get encapsulation() { return "shadow"; }
|
|
@@ -160,6 +160,8 @@ export class Input {
|
|
|
160
160
|
"tags": [],
|
|
161
161
|
"text": "Identificador \u00FAnico do input.\nCaso n\u00E3o seja fornecido, um ID gerado automaticamente ser\u00E1 usado."
|
|
162
162
|
},
|
|
163
|
+
"getter": false,
|
|
164
|
+
"setter": false,
|
|
163
165
|
"attribute": "id",
|
|
164
166
|
"reflect": true,
|
|
165
167
|
"defaultValue": "`br-input-${uuidv4()}`"
|
|
@@ -178,6 +180,8 @@ export class Input {
|
|
|
178
180
|
"tags": [],
|
|
179
181
|
"text": "Especifica o tipo de entrada do campo. Pode ser um dos seguintes:\n- 'color': Seletor de cor\n- 'email': Campo para e-mail\n- 'hidden': Campo oculto\n- 'password': Campo para senha\n- 'range': Controle deslizante\n- 'search': Campo de pesquisa\n- 'number': Campo para n\u00FAmeros\n- 'tel': Campo para n\u00FAmeros de telefone\n- 'text': Campo de texto padr\u00E3o\n- 'url': Campo para URLs"
|
|
180
182
|
},
|
|
183
|
+
"getter": false,
|
|
184
|
+
"setter": false,
|
|
181
185
|
"attribute": "type",
|
|
182
186
|
"reflect": true,
|
|
183
187
|
"defaultValue": "'text'"
|
|
@@ -196,6 +200,8 @@ export class Input {
|
|
|
196
200
|
"tags": [],
|
|
197
201
|
"text": "Controla o comportamento de preenchimento autom\u00E1tico do navegador para o input."
|
|
198
202
|
},
|
|
203
|
+
"getter": false,
|
|
204
|
+
"setter": false,
|
|
199
205
|
"attribute": "autocomplete",
|
|
200
206
|
"reflect": true
|
|
201
207
|
},
|
|
@@ -213,6 +219,8 @@ export class Input {
|
|
|
213
219
|
"tags": [],
|
|
214
220
|
"text": "Ajusta a densidade, alterando o espa\u00E7amento interno para um visual mais compacto ou mais expandido."
|
|
215
221
|
},
|
|
222
|
+
"getter": false,
|
|
223
|
+
"setter": false,
|
|
216
224
|
"attribute": "density",
|
|
217
225
|
"reflect": true,
|
|
218
226
|
"defaultValue": "'medium'"
|
|
@@ -231,6 +239,8 @@ export class Input {
|
|
|
231
239
|
"tags": [],
|
|
232
240
|
"text": "Desativa o input, tornando-o n\u00E3o interativo."
|
|
233
241
|
},
|
|
242
|
+
"getter": false,
|
|
243
|
+
"setter": false,
|
|
234
244
|
"attribute": "disabled",
|
|
235
245
|
"reflect": true,
|
|
236
246
|
"defaultValue": "false"
|
|
@@ -249,6 +259,8 @@ export class Input {
|
|
|
249
259
|
"tags": [],
|
|
250
260
|
"text": "Se verdadeiro, o r\u00F3tulo e o input estar\u00E3o na mesma linha (layout inline)."
|
|
251
261
|
},
|
|
262
|
+
"getter": false,
|
|
263
|
+
"setter": false,
|
|
252
264
|
"attribute": "is-inline",
|
|
253
265
|
"reflect": true,
|
|
254
266
|
"defaultValue": "false"
|
|
@@ -267,6 +279,8 @@ export class Input {
|
|
|
267
279
|
"tags": [],
|
|
268
280
|
"text": "Se verdadeiro, o input ter\u00E1 destaque visual."
|
|
269
281
|
},
|
|
282
|
+
"getter": false,
|
|
283
|
+
"setter": false,
|
|
270
284
|
"attribute": "is-highlight",
|
|
271
285
|
"reflect": true,
|
|
272
286
|
"defaultValue": "false"
|
|
@@ -285,6 +299,8 @@ export class Input {
|
|
|
285
299
|
"tags": [],
|
|
286
300
|
"text": "Define o estado do input\nOs poss\u00EDveis valores s\u00E3o:\n- 'info': Mensagem informativa.\n- 'warning': Mensagem de aviso.\n- 'danger': Mensagem de erro ou alerta.\n- 'success': Mensagem de sucesso.\nO valor padr\u00E3o \u00E9 'info'."
|
|
287
301
|
},
|
|
302
|
+
"getter": false,
|
|
303
|
+
"setter": false,
|
|
288
304
|
"attribute": "state",
|
|
289
305
|
"reflect": true
|
|
290
306
|
},
|
|
@@ -302,6 +318,8 @@ export class Input {
|
|
|
302
318
|
"tags": [],
|
|
303
319
|
"text": "Texto exibido como r\u00F3tulo do input."
|
|
304
320
|
},
|
|
321
|
+
"getter": false,
|
|
322
|
+
"setter": false,
|
|
305
323
|
"attribute": "label",
|
|
306
324
|
"reflect": true
|
|
307
325
|
},
|
|
@@ -319,6 +337,8 @@ export class Input {
|
|
|
319
337
|
"tags": [],
|
|
320
338
|
"text": "Nome do input, utilizado para identifica\u00E7\u00E3o em formul\u00E1rios."
|
|
321
339
|
},
|
|
340
|
+
"getter": false,
|
|
341
|
+
"setter": false,
|
|
322
342
|
"attribute": "name",
|
|
323
343
|
"reflect": true
|
|
324
344
|
},
|
|
@@ -336,6 +356,8 @@ export class Input {
|
|
|
336
356
|
"tags": [],
|
|
337
357
|
"text": "Texto exibido dentro do input quando est\u00E1 vazio, fornecendo uma dica ou sugest\u00E3o ao usu\u00E1rio."
|
|
338
358
|
},
|
|
359
|
+
"getter": false,
|
|
360
|
+
"setter": false,
|
|
339
361
|
"attribute": "placeholder",
|
|
340
362
|
"reflect": true
|
|
341
363
|
},
|
|
@@ -353,6 +375,8 @@ export class Input {
|
|
|
353
375
|
"tags": [],
|
|
354
376
|
"text": "Se verdadeiro, o valor do input \u00E9 exibido, mas n\u00E3o pode ser editado pelo usu\u00E1rio."
|
|
355
377
|
},
|
|
378
|
+
"getter": false,
|
|
379
|
+
"setter": false,
|
|
356
380
|
"attribute": "readonly",
|
|
357
381
|
"reflect": true,
|
|
358
382
|
"defaultValue": "false"
|
|
@@ -371,6 +395,8 @@ export class Input {
|
|
|
371
395
|
"tags": [],
|
|
372
396
|
"text": "Se verdadeiro, o input \u00E9 obrigat\u00F3rio e deve ser preenchido antes que o formul\u00E1rio possa ser enviado."
|
|
373
397
|
},
|
|
398
|
+
"getter": false,
|
|
399
|
+
"setter": false,
|
|
374
400
|
"attribute": "required",
|
|
375
401
|
"reflect": true,
|
|
376
402
|
"defaultValue": "false"
|
|
@@ -389,6 +415,8 @@ export class Input {
|
|
|
389
415
|
"tags": [],
|
|
390
416
|
"text": "Valor inicial exibido no input.\nPode ser alterado pelo usu\u00E1rio se a propriedade `readonly` n\u00E3o estiver ativa."
|
|
391
417
|
},
|
|
418
|
+
"getter": false,
|
|
419
|
+
"setter": false,
|
|
392
420
|
"attribute": "value",
|
|
393
421
|
"reflect": true
|
|
394
422
|
},
|
|
@@ -406,6 +434,8 @@ export class Input {
|
|
|
406
434
|
"tags": [],
|
|
407
435
|
"text": "Texto adicional que fornece ajuda ou informa\u00E7\u00F5es sobre o input."
|
|
408
436
|
},
|
|
437
|
+
"getter": false,
|
|
438
|
+
"setter": false,
|
|
409
439
|
"attribute": "help-text",
|
|
410
440
|
"reflect": true
|
|
411
441
|
},
|
|
@@ -423,6 +453,8 @@ export class Input {
|
|
|
423
453
|
"tags": [],
|
|
424
454
|
"text": "Controla a corre\u00E7\u00E3o autom\u00E1tica do texto."
|
|
425
455
|
},
|
|
456
|
+
"getter": false,
|
|
457
|
+
"setter": false,
|
|
426
458
|
"attribute": "autocorrect",
|
|
427
459
|
"reflect": true,
|
|
428
460
|
"defaultValue": "'off'"
|
|
@@ -441,6 +473,8 @@ export class Input {
|
|
|
441
473
|
"tags": [],
|
|
442
474
|
"text": "Define o valor m\u00EDnimo para campos de entrada num\u00E9ricos."
|
|
443
475
|
},
|
|
476
|
+
"getter": false,
|
|
477
|
+
"setter": false,
|
|
444
478
|
"attribute": "min",
|
|
445
479
|
"reflect": true
|
|
446
480
|
},
|
|
@@ -458,6 +492,8 @@ export class Input {
|
|
|
458
492
|
"tags": [],
|
|
459
493
|
"text": "Define o valor m\u00E1ximo para campos de entrada num\u00E9ricos."
|
|
460
494
|
},
|
|
495
|
+
"getter": false,
|
|
496
|
+
"setter": false,
|
|
461
497
|
"attribute": "max",
|
|
462
498
|
"reflect": true
|
|
463
499
|
},
|
|
@@ -475,6 +511,8 @@ export class Input {
|
|
|
475
511
|
"tags": [],
|
|
476
512
|
"text": "Define o comprimento m\u00EDnimo do valor do campo de entrada."
|
|
477
513
|
},
|
|
514
|
+
"getter": false,
|
|
515
|
+
"setter": false,
|
|
478
516
|
"attribute": "minlength",
|
|
479
517
|
"reflect": true
|
|
480
518
|
},
|
|
@@ -492,6 +530,8 @@ export class Input {
|
|
|
492
530
|
"tags": [],
|
|
493
531
|
"text": "Define o comprimento m\u00E1ximo do valor do campo de entrada."
|
|
494
532
|
},
|
|
533
|
+
"getter": false,
|
|
534
|
+
"setter": false,
|
|
495
535
|
"attribute": "maxlength",
|
|
496
536
|
"reflect": true
|
|
497
537
|
},
|
|
@@ -509,6 +549,8 @@ export class Input {
|
|
|
509
549
|
"tags": [],
|
|
510
550
|
"text": "Se verdadeiro, permite a sele\u00E7\u00E3o de m\u00FAltiplos arquivos."
|
|
511
551
|
},
|
|
552
|
+
"getter": false,
|
|
553
|
+
"setter": false,
|
|
512
554
|
"attribute": "multiple",
|
|
513
555
|
"reflect": true,
|
|
514
556
|
"defaultValue": "false"
|
|
@@ -527,6 +569,8 @@ export class Input {
|
|
|
527
569
|
"tags": [],
|
|
528
570
|
"text": "Define o padr\u00E3o de entrada para valida\u00E7\u00E3o."
|
|
529
571
|
},
|
|
572
|
+
"getter": false,
|
|
573
|
+
"setter": false,
|
|
530
574
|
"attribute": "pattern",
|
|
531
575
|
"reflect": true
|
|
532
576
|
},
|
|
@@ -544,6 +588,8 @@ export class Input {
|
|
|
544
588
|
"tags": [],
|
|
545
589
|
"text": "Define o valor do passo para campos de entrada num\u00E9ricos."
|
|
546
590
|
},
|
|
591
|
+
"getter": false,
|
|
592
|
+
"setter": false,
|
|
547
593
|
"attribute": "step",
|
|
548
594
|
"reflect": true
|
|
549
595
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input.js","sourceRoot":"","sources":["../../../../src/components/input/input.tsx"],"names":[],"mappings":"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","sourcesContent":["import { AttachInternals, Component, Element, Event, EventEmitter, h, Host, Prop, State } from '@stencil/core'\nimport { v4 as uuidv4 } from 'uuid'\n\nimport { Attributes, inheritAriaAttributes } from '../../utils/inherited-attributes'\nimport { CssClassMap } from '../../utils/interfaces'\n\n/**\n *\n * Para uma descrição detalhada, consulte a [documentação do GovBR-DS](https://www.gov.br/ds/components/input?tab=designer).\n *\n * @slot action - Botão à direita do input.\n * @slot icon - Ícone à esquerda do input.\n * @slot help-text - Personalização do texto de ajuda.\n */\n@Component({\n tag: 'br-input',\n styleUrl: 'input.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Input {\n /**\n * Referência ao elemento host do componente.\n * Utilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente.\n */\n @Element() el: HTMLBrInputElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Identificador único do input.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true, attribute: 'id' }) customId: string = `br-input-${uuidv4()}`\n\n /**\n * Especifica o tipo de entrada do campo. Pode ser um dos seguintes:\n * - 'color': Seletor de cor\n * - 'email': Campo para e-mail\n * - 'hidden': Campo oculto\n * - 'password': Campo para senha\n * - 'range': Controle deslizante\n * - 'search': Campo de pesquisa\n * - 'number': Campo para números\n * - 'tel': Campo para números de telefone\n * - 'text': Campo de texto padrão\n * - 'url': Campo para URLs\n */\n @Prop({ reflect: true }) type:\n | 'color'\n | 'email'\n | 'hidden'\n | 'password'\n | 'range'\n | 'search'\n | 'number'\n | 'tel'\n | 'text'\n | 'file'\n | 'url' = 'text'\n\n /**\n * Controla o comportamento de preenchimento automático do navegador para o input.\n */\n @Prop({ reflect: true }) autocomplete: 'on' | 'off'\n\n /**\n * Ajusta a densidade, alterando o espaçamento interno para um visual mais compacto ou mais expandido.\n */\n @Prop({ reflect: true }) density: 'large' | 'medium' | 'small' = 'medium'\n\n /**\n * Desativa o input, tornando-o não interativo.\n */\n @Prop({ reflect: true }) disabled: boolean = false\n\n /**\n * Se verdadeiro, o rótulo e o input estarão na mesma linha (layout inline).\n */\n @Prop({ reflect: true }) isInline: boolean = false\n\n /**\n * Se verdadeiro, o input terá destaque visual.\n */\n @Prop({ reflect: true }) isHighlight: boolean = false\n\n /**\n * Define o estado do input\n * Os possíveis valores são:\n * - 'info': Mensagem informativa.\n * - 'warning': Mensagem de aviso.\n * - 'danger': Mensagem de erro ou alerta.\n * - 'success': Mensagem de sucesso.\n * O valor padrão é 'info'.\n */\n @Prop({ reflect: true }) state: 'info' | 'warning' | 'danger' | 'success'\n\n /**\n * Texto exibido como rótulo do input.\n */\n @Prop({ reflect: true }) label: string\n\n /**\n * Nome do input, utilizado para identificação em formulários.\n */\n @Prop({ reflect: true }) name: string\n\n /**\n * Texto exibido dentro do input quando está vazio, fornecendo uma dica ou sugestão ao usuário.\n */\n @Prop({ reflect: true }) placeholder: string\n\n /**\n * Se verdadeiro, o valor do input é exibido, mas não pode ser editado pelo usuário.\n */\n @Prop({ reflect: true }) readonly: boolean = false\n\n /**\n * Se verdadeiro, o input é obrigatório e deve ser preenchido antes que o formulário possa ser enviado.\n */\n @Prop({ reflect: true }) required: boolean = false\n\n /**\n * Valor inicial exibido no input.\n * Pode ser alterado pelo usuário se a propriedade `readonly` não estiver ativa.\n */\n @Prop({ reflect: true, mutable: true }) value: string\n\n /**\n * Texto adicional que fornece ajuda ou informações sobre o input.\n */\n @Prop({ reflect: true }) helpText: string\n\n /**\n * Controla a correção automática do texto.\n */\n @Prop({ reflect: true }) autocorrect: 'off' | 'on' = 'off'\n\n /**\n * Define o valor mínimo para campos de entrada numéricos.\n */\n @Prop({ reflect: true }) min: number\n\n /**\n * Define o valor máximo para campos de entrada numéricos.\n */\n @Prop({ reflect: true }) max: number\n\n /**\n * Define o comprimento mínimo do valor do campo de entrada.\n */\n @Prop({ reflect: true }) minlength: number\n\n /**\n * Define o comprimento máximo do valor do campo de entrada.\n */\n @Prop({ reflect: true }) maxlength: number\n\n /**\n * Se verdadeiro, permite a seleção de múltiplos arquivos.\n */\n @Prop({ reflect: true }) multiple: boolean = false\n\n /**\n * Define o padrão de entrada para validação.\n */\n @Prop({ reflect: true }) pattern: string\n\n /**\n * Define o valor do passo para campos de entrada numéricos.\n */\n @Prop({ reflect: true }) step: number\n\n @State() isPasswordVisible: boolean = false\n\n @State() hasIconSlot: boolean = false\n\n @State() hasActionSlot: boolean = false\n\n componentWillLoad() {\n this.hasIconSlot = this.hasSlotContent('icon')\n this.hasActionSlot = this.hasSlotContent('action')\n this.inheritedAttributes = inheritAriaAttributes(this.el)\n }\n\n private getInputCssClassMap(): CssClassMap {\n return {\n 'br-input': true,\n 'input-button': this.hasActionSlot,\n small: this.density === 'small',\n large: this.density === 'large',\n medium: this.density === 'medium',\n 'input-inline': this.isInline,\n 'input-highlight': this.isHighlight,\n success: this.state === 'success',\n danger: this.state === 'danger',\n info: this.state === 'info',\n warning: this.state === 'warning',\n }\n }\n\n private inheritedAttributes: Attributes = {}\n\n /**\n * Valor atualizado do input\n */\n @Event() valueChange!: EventEmitter<string>\n private readonly handleInput = (event: Event) => {\n this.value = (event.target as HTMLInputElement).value\n this.valueChange.emit(this.value)\n }\n\n private readonly renderLabel = () => {\n if (this.label?.length > 0) {\n if (this.isInline) {\n return (\n <div class=\"input-label\">\n <label class=\"text-nowrap\" htmlFor={this.customId}>\n {this.label}\n </label>\n </div>\n )\n } else {\n return <label htmlFor={this.customId}>{this.label}</label>\n }\n }\n }\n\n private hasSlotContent(slotName: string): boolean {\n return this.el.querySelector(`[slot=\"${slotName}\"]`) !== null\n }\n\n private readonly renderInput = () => {\n return (\n <input\n class={this.isHighlight ? 'input-highlight' : null}\n id={this.customId}\n autocomplete={this.autocomplete}\n disabled={this.disabled}\n autoCorrect={this.autocorrect}\n min={this.min}\n max={this.max}\n minLength={this.minlength}\n maxLength={this.maxlength}\n multiple={this.multiple}\n name={this.name}\n pattern={this.pattern}\n step={this.step}\n onInput={this.handleInput}\n placeholder={this.placeholder}\n readonly={this.readonly}\n required={this.required}\n title={this.el.title}\n type={this.type}\n value={this.value}\n {...this.inheritedAttributes}\n />\n )\n }\n\n private readonly renderHelpText = () => {\n return this.helpText?.length > 0 ? <p>{this.helpText}</p> : <slot name=\"help-text\"></slot>\n }\n\n private readonly renderIconPassword = () => {\n const iconName = this.isPasswordVisible ? 'fa-solid:eye-slash' : 'fa-solid:eye'\n return <br-icon icon-name={iconName}></br-icon>\n }\n\n private readonly togglePasswordVisibility = () => {\n const input = this.el.shadowRoot.querySelector('input')\n this.isPasswordVisible = !this.isPasswordVisible\n input.type = this.isPasswordVisible ? 'text' : 'password'\n }\n\n private renderIconSlot() {\n if (this.hasSlotContent('icon')) {\n return (\n <div class=\"input-icon\">\n <slot name=\"icon\"></slot>\n </div>\n )\n }\n }\n\n private renderButton() {\n if (this.type === 'password') {\n return (\n <br-button\n class=\"button-transform\"\n shape=\"circle\"\n density=\"small\"\n aria-label=\"botão de ação do ícone\"\n onClick={this.togglePasswordVisibility}\n >\n {this.renderIconPassword()}\n </br-button>\n )\n } else if (this.hasSlotContent('action')) {\n return (\n <br-button\n class=\"button-transform\"\n shape=\"circle\"\n density=\"small\"\n aria-label=\"botão de ação do ícone\"\n // onClick={this.onIconAction}\n >\n <slot name=\"action\"></slot>\n </br-button>\n )\n }\n return null\n }\n\n private readonly renderInlineInputContent = () => {\n if (this.hasIconSlot) {\n return <div class=\"input-content\">{this.renderInputWithIcon()}</div>\n } else {\n return <div class=\"input-content\">{this.renderInputWithoutIcon()}</div>\n }\n }\n\n private readonly renderInputContent = () => {\n return this.hasIconSlot ? this.renderInputWithIcon() : this.renderInputWithoutIcon()\n }\n\n private readonly renderInputWithIcon = () => {\n return (\n <div class=\"input-group\">\n {this.renderIconSlot()}\n {this.renderInput()}\n {this.renderButton()}\n {this.renderHelpText()}\n </div>\n )\n }\n\n private readonly renderInputWithoutIcon = () => {\n return [this.renderInput(), this.renderButton(), this.renderHelpText()]\n }\n\n render() {\n return (\n <Host>\n <div class={this.getInputCssClassMap()}>\n {this.renderLabel()}\n\n {this.isInline ? this.renderInlineInputContent() : this.renderInputContent()}\n </div>\n </Host>\n )\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"input.js","sourceRoot":"","sources":["../../../src/components/input/input.tsx"],"names":[],"mappings":"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","sourcesContent":["import { AttachInternals, Component, Element, Event, EventEmitter, h, Host, Prop, State } from '@stencil/core'\nimport { v4 as uuidv4 } from 'uuid'\n\nimport { Attributes, inheritAriaAttributes } from '../../utils/inherited-attributes'\nimport { CssClassMap } from '../../utils/interfaces'\n\n/**\n *\n * Para uma descrição detalhada, consulte a [documentação do GovBR-DS](https://www.gov.br/ds/components/input?tab=designer).\n *\n * @slot action - Botão à direita do input.\n * @slot icon - Ícone à esquerda do input.\n * @slot help-text - Personalização do texto de ajuda.\n */\n@Component({\n tag: 'br-input',\n styleUrl: 'input.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Input {\n /**\n * Referência ao elemento host do componente.\n * Utilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente.\n */\n @Element() el: HTMLBrInputElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Identificador único do input.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true, attribute: 'id' }) customId: string = `br-input-${uuidv4()}`\n\n /**\n * Especifica o tipo de entrada do campo. Pode ser um dos seguintes:\n * - 'color': Seletor de cor\n * - 'email': Campo para e-mail\n * - 'hidden': Campo oculto\n * - 'password': Campo para senha\n * - 'range': Controle deslizante\n * - 'search': Campo de pesquisa\n * - 'number': Campo para números\n * - 'tel': Campo para números de telefone\n * - 'text': Campo de texto padrão\n * - 'url': Campo para URLs\n */\n @Prop({ reflect: true }) type:\n | 'color'\n | 'email'\n | 'hidden'\n | 'password'\n | 'range'\n | 'search'\n | 'number'\n | 'tel'\n | 'text'\n | 'file'\n | 'url' = 'text'\n\n /**\n * Controla o comportamento de preenchimento automático do navegador para o input.\n */\n @Prop({ reflect: true }) autocomplete: 'on' | 'off'\n\n /**\n * Ajusta a densidade, alterando o espaçamento interno para um visual mais compacto ou mais expandido.\n */\n @Prop({ reflect: true }) density: 'large' | 'medium' | 'small' = 'medium'\n\n /**\n * Desativa o input, tornando-o não interativo.\n */\n @Prop({ reflect: true }) disabled: boolean = false\n\n /**\n * Se verdadeiro, o rótulo e o input estarão na mesma linha (layout inline).\n */\n @Prop({ reflect: true }) isInline: boolean = false\n\n /**\n * Se verdadeiro, o input terá destaque visual.\n */\n @Prop({ reflect: true }) isHighlight: boolean = false\n\n /**\n * Define o estado do input\n * Os possíveis valores são:\n * - 'info': Mensagem informativa.\n * - 'warning': Mensagem de aviso.\n * - 'danger': Mensagem de erro ou alerta.\n * - 'success': Mensagem de sucesso.\n * O valor padrão é 'info'.\n */\n @Prop({ reflect: true }) state: 'info' | 'warning' | 'danger' | 'success'\n\n /**\n * Texto exibido como rótulo do input.\n */\n @Prop({ reflect: true }) label: string\n\n /**\n * Nome do input, utilizado para identificação em formulários.\n */\n @Prop({ reflect: true }) name: string\n\n /**\n * Texto exibido dentro do input quando está vazio, fornecendo uma dica ou sugestão ao usuário.\n */\n @Prop({ reflect: true }) placeholder: string\n\n /**\n * Se verdadeiro, o valor do input é exibido, mas não pode ser editado pelo usuário.\n */\n @Prop({ reflect: true }) readonly: boolean = false\n\n /**\n * Se verdadeiro, o input é obrigatório e deve ser preenchido antes que o formulário possa ser enviado.\n */\n @Prop({ reflect: true }) required: boolean = false\n\n /**\n * Valor inicial exibido no input.\n * Pode ser alterado pelo usuário se a propriedade `readonly` não estiver ativa.\n */\n @Prop({ reflect: true, mutable: true }) value: string\n\n /**\n * Texto adicional que fornece ajuda ou informações sobre o input.\n */\n @Prop({ reflect: true }) helpText: string\n\n /**\n * Controla a correção automática do texto.\n */\n @Prop({ reflect: true }) autocorrect: 'off' | 'on' = 'off'\n\n /**\n * Define o valor mínimo para campos de entrada numéricos.\n */\n @Prop({ reflect: true }) min: number\n\n /**\n * Define o valor máximo para campos de entrada numéricos.\n */\n @Prop({ reflect: true }) max: number\n\n /**\n * Define o comprimento mínimo do valor do campo de entrada.\n */\n @Prop({ reflect: true }) minlength: number\n\n /**\n * Define o comprimento máximo do valor do campo de entrada.\n */\n @Prop({ reflect: true }) maxlength: number\n\n /**\n * Se verdadeiro, permite a seleção de múltiplos arquivos.\n */\n @Prop({ reflect: true }) multiple: boolean = false\n\n /**\n * Define o padrão de entrada para validação.\n */\n @Prop({ reflect: true }) pattern: string\n\n /**\n * Define o valor do passo para campos de entrada numéricos.\n */\n @Prop({ reflect: true }) step: number\n\n @State() isPasswordVisible: boolean = false\n\n @State() hasIconSlot: boolean = false\n\n @State() hasActionSlot: boolean = false\n\n componentWillLoad() {\n this.hasIconSlot = this.hasSlotContent('icon')\n this.hasActionSlot = this.hasSlotContent('action')\n this.inheritedAttributes = inheritAriaAttributes(this.el)\n }\n\n private getInputCssClassMap(): CssClassMap {\n return {\n 'br-input': true,\n 'input-button': this.hasActionSlot,\n small: this.density === 'small',\n large: this.density === 'large',\n medium: this.density === 'medium',\n 'input-inline': this.isInline,\n 'input-highlight': this.isHighlight,\n success: this.state === 'success',\n danger: this.state === 'danger',\n info: this.state === 'info',\n warning: this.state === 'warning',\n }\n }\n\n private inheritedAttributes: Attributes = {}\n\n /**\n * Valor atualizado do input\n */\n @Event() valueChange!: EventEmitter<string>\n private readonly handleInput = (event: Event) => {\n this.value = (event.target as HTMLInputElement).value\n this.valueChange.emit(this.value)\n }\n\n private readonly renderLabel = () => {\n if (this.label?.length > 0) {\n if (this.isInline) {\n return (\n <div class=\"input-label\">\n <label class=\"text-nowrap\" htmlFor={this.customId}>\n {this.label}\n </label>\n </div>\n )\n } else {\n return <label htmlFor={this.customId}>{this.label}</label>\n }\n }\n }\n\n private hasSlotContent(slotName: string): boolean {\n return this.el.querySelector(`[slot=\"${slotName}\"]`) !== null\n }\n\n private readonly renderInput = () => {\n return (\n <input\n class={this.isHighlight ? 'input-highlight' : null}\n id={this.customId}\n autocomplete={this.autocomplete}\n disabled={this.disabled}\n autoCorrect={this.autocorrect}\n min={this.min}\n max={this.max}\n minLength={this.minlength}\n maxLength={this.maxlength}\n multiple={this.multiple}\n name={this.name}\n pattern={this.pattern}\n step={this.step}\n onInput={this.handleInput}\n placeholder={this.placeholder}\n readonly={this.readonly}\n required={this.required}\n title={this.el.title}\n type={this.type}\n value={this.value}\n {...this.inheritedAttributes}\n />\n )\n }\n\n private readonly renderHelpText = () => {\n return this.helpText?.length > 0 ? <p>{this.helpText}</p> : <slot name=\"help-text\"></slot>\n }\n\n private readonly renderIconPassword = () => {\n const iconName = this.isPasswordVisible ? 'fa-solid:eye-slash' : 'fa-solid:eye'\n return <br-icon icon-name={iconName}></br-icon>\n }\n\n private readonly togglePasswordVisibility = () => {\n const input = this.el.shadowRoot.querySelector('input')\n this.isPasswordVisible = !this.isPasswordVisible\n input.type = this.isPasswordVisible ? 'text' : 'password'\n }\n\n private renderIconSlot() {\n if (this.hasSlotContent('icon')) {\n return (\n <div class=\"input-icon\">\n <slot name=\"icon\"></slot>\n </div>\n )\n }\n }\n\n private renderButton() {\n if (this.type === 'password') {\n return (\n <br-button\n class=\"button-transform\"\n shape=\"circle\"\n density=\"small\"\n aria-label=\"botão de ação do ícone\"\n onClick={this.togglePasswordVisibility}\n >\n {this.renderIconPassword()}\n </br-button>\n )\n } else if (this.hasSlotContent('action')) {\n return (\n <br-button\n class=\"button-transform\"\n shape=\"circle\"\n density=\"small\"\n aria-label=\"botão de ação do ícone\"\n // onClick={this.onIconAction}\n >\n <slot name=\"action\"></slot>\n </br-button>\n )\n }\n return null\n }\n\n private readonly renderInlineInputContent = () => {\n if (this.hasIconSlot) {\n return <div class=\"input-content\">{this.renderInputWithIcon()}</div>\n } else {\n return <div class=\"input-content\">{this.renderInputWithoutIcon()}</div>\n }\n }\n\n private readonly renderInputContent = () => {\n return this.hasIconSlot ? this.renderInputWithIcon() : this.renderInputWithoutIcon()\n }\n\n private readonly renderInputWithIcon = () => {\n return (\n <div class=\"input-group\">\n {this.renderIconSlot()}\n {this.renderInput()}\n {this.renderButton()}\n {this.renderHelpText()}\n </div>\n )\n }\n\n private readonly renderInputWithoutIcon = () => {\n return [this.renderInput(), this.renderButton(), this.renderHelpText()]\n }\n\n render() {\n return (\n <Host>\n <div class={this.getInputCssClassMap()}>\n {this.renderLabel()}\n\n {this.isInline ? this.renderInlineInputContent() : this.renderInputContent()}\n </div>\n </Host>\n )\n }\n}\n"]}
|
|
@@ -34,6 +34,7 @@ img {
|
|
|
34
34
|
|
|
35
35
|
button,
|
|
36
36
|
input,
|
|
37
|
+
select,
|
|
37
38
|
textarea {
|
|
38
39
|
font-family: inherit;
|
|
39
40
|
font-size: 100%;
|
|
@@ -46,7 +47,8 @@ input {
|
|
|
46
47
|
overflow: visible;
|
|
47
48
|
}
|
|
48
49
|
|
|
49
|
-
button
|
|
50
|
+
button,
|
|
51
|
+
select {
|
|
50
52
|
text-transform: none;
|
|
51
53
|
}
|
|
52
54
|
|
|
@@ -211,6 +213,10 @@ textarea {
|
|
|
211
213
|
margin-right: var(--spacing-scale-half) !important;
|
|
212
214
|
}
|
|
213
215
|
|
|
216
|
+
.mb-1 {
|
|
217
|
+
margin-bottom: var(--spacing-scale-half) !important;
|
|
218
|
+
}
|
|
219
|
+
|
|
214
220
|
.mr-2 {
|
|
215
221
|
margin-right: var(--spacing-scale-base) !important;
|
|
216
222
|
}
|
|
@@ -219,6 +225,10 @@ textarea {
|
|
|
219
225
|
margin-right: calc(var(--spacing-scale-base) * -1) !important;
|
|
220
226
|
}
|
|
221
227
|
|
|
228
|
+
.ml-2 {
|
|
229
|
+
margin-left: var(--spacing-scale-base) !important;
|
|
230
|
+
}
|
|
231
|
+
|
|
222
232
|
.mb-3 {
|
|
223
233
|
margin-bottom: var(--spacing-scale-2x) !important;
|
|
224
234
|
}
|
|
@@ -14,6 +14,8 @@ import { Host, h } from "@stencil/core";
|
|
|
14
14
|
*/
|
|
15
15
|
export class Item {
|
|
16
16
|
constructor() {
|
|
17
|
+
// Propriedade para rastrear a presença de rádios dentro do item
|
|
18
|
+
this.hasRadios = false;
|
|
17
19
|
this.inheritedAttributes = {};
|
|
18
20
|
this.handleClick = (event) => {
|
|
19
21
|
const clickedElement = event.target;
|
|
@@ -21,6 +23,9 @@ export class Item {
|
|
|
21
23
|
event.preventDefault();
|
|
22
24
|
event.stopPropagation();
|
|
23
25
|
}
|
|
26
|
+
if (this.hasRadios) {
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
24
29
|
if (this.isButton) {
|
|
25
30
|
this.brDidClick.emit();
|
|
26
31
|
}
|
|
@@ -46,10 +51,15 @@ export class Item {
|
|
|
46
51
|
this.hasSlotEnd = false;
|
|
47
52
|
this.selectedValue = false;
|
|
48
53
|
}
|
|
49
|
-
|
|
54
|
+
handleRadioChange() {
|
|
55
|
+
requestAnimationFrame(() => {
|
|
56
|
+
this.updateRadioSelectionState();
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
handleCheckboxChange(event) {
|
|
50
60
|
const target = event.target;
|
|
51
61
|
if (this.el.contains(target)) {
|
|
52
|
-
this.
|
|
62
|
+
this.updateCheckboxSelectionState();
|
|
53
63
|
}
|
|
54
64
|
}
|
|
55
65
|
componentWillLoad() {
|
|
@@ -60,10 +70,19 @@ export class Item {
|
|
|
60
70
|
if (this.isButton) {
|
|
61
71
|
this.type = this.type || 'button';
|
|
62
72
|
}
|
|
63
|
-
this.
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
this.
|
|
73
|
+
const radios = Array.from(this.el.querySelectorAll('br-radio'));
|
|
74
|
+
const checkboxes = Array.from(this.el.querySelectorAll('br-checkbox'));
|
|
75
|
+
this.hasRadios = radios.length > 0;
|
|
76
|
+
if (this.isSelected) {
|
|
77
|
+
if (checkboxes.length > 0) {
|
|
78
|
+
checkboxes.forEach((checkbox) => (checkbox.checked = true));
|
|
79
|
+
}
|
|
80
|
+
if (radios.length > 0) {
|
|
81
|
+
radios[0].checked = true;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
this.updateRadioSelectionState();
|
|
85
|
+
this.updateCheckboxSelectionState();
|
|
67
86
|
}
|
|
68
87
|
hasSlotContentDefault() {
|
|
69
88
|
this.hasSlotDefault = this.el.innerHTML !== '';
|
|
@@ -94,20 +113,21 @@ export class Item {
|
|
|
94
113
|
getAttributes() {
|
|
95
114
|
const TagType = this.getTagType();
|
|
96
115
|
const baseAttributes = TagType === 'button' ? { type: this.type, value: this.value } : { href: this.href, target: this.target };
|
|
97
|
-
return Object.assign(Object.assign(Object.assign({}, baseAttributes), { 'aria-disabled': this.disabled ? 'true' : null, 'aria-current': this.isActive ? 'true' : null, 'data-toggle': this.isInteractive ? 'selection' : null }), this.inheritedAttributes);
|
|
116
|
+
return Object.assign(Object.assign(Object.assign({}, baseAttributes), { 'aria-disabled': this.disabled ? 'true' : null, 'aria-current': this.isActive ? 'true' : null, 'data-toggle': this.isInteractive ? 'selection' : null, 'is-selected': this.selectedValue ? true : null }), this.inheritedAttributes);
|
|
98
117
|
}
|
|
99
|
-
|
|
118
|
+
updateCheckboxSelectionState() {
|
|
119
|
+
if (this.hasRadios)
|
|
120
|
+
return;
|
|
100
121
|
const checkboxes = Array.from(this.el.querySelectorAll('br-checkbox'));
|
|
122
|
+
this.selectedValue = checkboxes.some(checkbox => checkbox.checked);
|
|
123
|
+
this.brDidSelect.emit({ selected: this.selectedValue });
|
|
124
|
+
}
|
|
125
|
+
updateRadioSelectionState() {
|
|
126
|
+
if (!this.hasRadios)
|
|
127
|
+
return;
|
|
101
128
|
const radios = Array.from(this.el.querySelectorAll('br-radio'));
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
if (checkboxes.length > 0) {
|
|
105
|
-
isAnyCheckboxChecked = checkboxes.some((cb) => cb.checked);
|
|
106
|
-
}
|
|
107
|
-
if (radios.length > 0) {
|
|
108
|
-
isAnyRadioSelected = radios.some((radio) => radio.checked);
|
|
109
|
-
}
|
|
110
|
-
this.selectedValue = isAnyCheckboxChecked || isAnyRadioSelected;
|
|
129
|
+
this.selectedValue = radios.some(radio => radio.checked);
|
|
130
|
+
this.brDidSelect.emit({ selected: this.selectedValue });
|
|
111
131
|
}
|
|
112
132
|
// Função para verificar se o clique foi dentro do slot do item.
|
|
113
133
|
isClickInsideInteractiveElement(target) {
|
|
@@ -125,7 +145,7 @@ export class Item {
|
|
|
125
145
|
const TagType = this.getTagType();
|
|
126
146
|
const attributes = this.getAttributes();
|
|
127
147
|
const classList = this.getCssClassMap();
|
|
128
|
-
return (h(Host, { key: '
|
|
148
|
+
return (h(Host, { key: 'f6c1cb0986dd510896aaff3c94a7a6505cc4c30b' }, h(TagType, Object.assign({ key: 'a3c91de0e8d46cc4cac5c1e7fbaa71bcde79cc23', class: classList }, attributes, { onClick: this.handleClick }), this.hasSlotStart || this.hasSlotEnd ? (h("div", { class: "row align-items-center" }, this.hasSlotStart && (h("div", { class: "col-auto" }, h("slot", { name: "start" }))), h("div", { class: "col" }, h("slot", null)), this.hasSlotEnd && (h("div", { class: "col-auto" }, h("slot", { name: "end" }))))) : (h("slot", null)))));
|
|
129
149
|
}
|
|
130
150
|
static get is() { return "br-item"; }
|
|
131
151
|
static get encapsulation() { return "shadow"; }
|
|
@@ -156,6 +176,8 @@ export class Item {
|
|
|
156
176
|
"tags": [],
|
|
157
177
|
"text": "Desativa o item, tornando-o n\u00E3o interativo."
|
|
158
178
|
},
|
|
179
|
+
"getter": false,
|
|
180
|
+
"setter": false,
|
|
159
181
|
"attribute": "disabled",
|
|
160
182
|
"reflect": true,
|
|
161
183
|
"defaultValue": "false"
|
|
@@ -174,6 +196,8 @@ export class Item {
|
|
|
174
196
|
"tags": [],
|
|
175
197
|
"text": "Indica se o item est\u00E1 no estado ativo.\nSe definido como verdadeiro, o item ser\u00E1 exibido como ativo."
|
|
176
198
|
},
|
|
199
|
+
"getter": false,
|
|
200
|
+
"setter": false,
|
|
177
201
|
"attribute": "is-active",
|
|
178
202
|
"reflect": true,
|
|
179
203
|
"defaultValue": "false"
|
|
@@ -192,6 +216,8 @@ export class Item {
|
|
|
192
216
|
"tags": [],
|
|
193
217
|
"text": "Indica se o item est\u00E1 no estado selecionado.\nSe definido como verdadeiro, o item ser\u00E1 exibido como selecionado."
|
|
194
218
|
},
|
|
219
|
+
"getter": false,
|
|
220
|
+
"setter": false,
|
|
195
221
|
"attribute": "is-selected",
|
|
196
222
|
"reflect": true,
|
|
197
223
|
"defaultValue": "false"
|
|
@@ -210,6 +236,8 @@ export class Item {
|
|
|
210
236
|
"tags": [],
|
|
211
237
|
"text": "Marca o item como interativo, permitindo que toda a superf\u00EDcie do item seja clic\u00E1vel."
|
|
212
238
|
},
|
|
239
|
+
"getter": false,
|
|
240
|
+
"setter": false,
|
|
213
241
|
"attribute": "is-interactive",
|
|
214
242
|
"reflect": true,
|
|
215
243
|
"defaultValue": "false"
|
|
@@ -228,6 +256,8 @@ export class Item {
|
|
|
228
256
|
"tags": [],
|
|
229
257
|
"text": "URL ou caminho para o qual o usu\u00E1rio ser\u00E1 direcionado ao clicar no item. Quando definido, o item ser\u00E1 renderizado como um link."
|
|
230
258
|
},
|
|
259
|
+
"getter": false,
|
|
260
|
+
"setter": false,
|
|
231
261
|
"attribute": "href",
|
|
232
262
|
"reflect": true
|
|
233
263
|
},
|
|
@@ -245,6 +275,8 @@ export class Item {
|
|
|
245
275
|
"tags": [],
|
|
246
276
|
"text": "Define o alvo do link quando `href` est\u00E1 presente. Pode ser:\n- `_blank` para abrir em uma nova aba,\n- `_self` para abrir na mesma aba,\n- `_parent` para abrir na aba pai,\n- `_top` para abrir na aba superior."
|
|
247
277
|
},
|
|
278
|
+
"getter": false,
|
|
279
|
+
"setter": false,
|
|
248
280
|
"attribute": "target",
|
|
249
281
|
"reflect": true
|
|
250
282
|
},
|
|
@@ -262,6 +294,8 @@ export class Item {
|
|
|
262
294
|
"tags": [],
|
|
263
295
|
"text": "Quando definido como `true`, o item ser\u00E1 tratado como um bot\u00E3o."
|
|
264
296
|
},
|
|
297
|
+
"getter": false,
|
|
298
|
+
"setter": false,
|
|
265
299
|
"attribute": "is-button",
|
|
266
300
|
"reflect": true,
|
|
267
301
|
"defaultValue": "false"
|
|
@@ -280,6 +314,8 @@ export class Item {
|
|
|
280
314
|
"tags": [],
|
|
281
315
|
"text": "Tipo do bot\u00E3o, aplic\u00E1vel apenas se `isButton` for `true`. Pode ser:\n- `'submit'` para enviar um formul\u00E1rio,\n- `'reset'` para redefinir um formul\u00E1rio,\n- `'button'` para um bot\u00E3o padr\u00E3o."
|
|
282
316
|
},
|
|
317
|
+
"getter": false,
|
|
318
|
+
"setter": false,
|
|
283
319
|
"attribute": "type",
|
|
284
320
|
"reflect": true
|
|
285
321
|
},
|
|
@@ -297,6 +333,8 @@ export class Item {
|
|
|
297
333
|
"tags": [],
|
|
298
334
|
"text": "Define um valor associado ao br-item quando renderizado como um bot\u00E3o, utilizado em contextos de formul\u00E1rio."
|
|
299
335
|
},
|
|
336
|
+
"getter": false,
|
|
337
|
+
"setter": false,
|
|
300
338
|
"attribute": "value",
|
|
301
339
|
"reflect": true
|
|
302
340
|
},
|
|
@@ -314,6 +352,8 @@ export class Item {
|
|
|
314
352
|
"tags": [],
|
|
315
353
|
"text": "Ajusta a densidade, alterando o espa\u00E7amento interno para um visual mais compacto ou mais expandido."
|
|
316
354
|
},
|
|
355
|
+
"getter": false,
|
|
356
|
+
"setter": false,
|
|
317
357
|
"attribute": "density",
|
|
318
358
|
"reflect": true,
|
|
319
359
|
"defaultValue": "'medium'"
|
|
@@ -364,8 +404,14 @@ export class Item {
|
|
|
364
404
|
static get elementRef() { return "el"; }
|
|
365
405
|
static get listeners() {
|
|
366
406
|
return [{
|
|
407
|
+
"name": "brDidChange",
|
|
408
|
+
"method": "handleRadioChange",
|
|
409
|
+
"target": "document",
|
|
410
|
+
"capture": false,
|
|
411
|
+
"passive": false
|
|
412
|
+
}, {
|
|
367
413
|
"name": "brDidCheckedChange",
|
|
368
|
-
"method": "
|
|
414
|
+
"method": "handleCheckboxChange",
|
|
369
415
|
"target": "document",
|
|
370
416
|
"capture": false,
|
|
371
417
|
"passive": false
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"item.js","sourceRoot":"","sources":["../../../../src/components/item/item.tsx"],"names":[],"mappings":"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","sourcesContent":["import { AttachInternals, Component, Element, Event, EventEmitter, Host, Listen, Prop, State, h } from '@stencil/core'\nimport { Attributes } from '../../utils/inherited-attributes'\nimport { CssClassMap } from '../../utils/interfaces'\n/**\n * Para uma descrição detalhada, consulte a [documentação do GovBR-DS](https://www.gov.br/ds/components/item?tab=designer).\n *\n * @slot default - Área de conteúdo, podendo conter qualquer componente, exceto botões primários e componentes relacionados à navegação (como carrosséis, paginações, abas, menus, etc.).\n *\n * @slot start - Área de recursos visuais, podendo conter elementos como ícones, avatares e mídias.\n *\n * @slot end - Área de recursos complementares, podendo conter componentes interativos, metadados e informações adicionais.\n */\n@Component({\n tag: 'br-item',\n styleUrl: 'item.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Item {\n /**\n * Referência ao elemento host do componente.\n * Utilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente.\n */\n @Element() el: HTMLBrItemElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Desativa o item, tornando-o não interativo.\n */\n @Prop({ reflect: true }) disabled: boolean = false\n\n /**\n * Indica se o item está no estado ativo.\n * Se definido como verdadeiro, o item será exibido como ativo.\n */\n @Prop({ reflect: true }) isActive: boolean = false\n\n /**\n * Indica se o item está no estado selecionado.\n * Se definido como verdadeiro, o item será exibido como selecionado.\n */\n @Prop({ reflect: true }) isSelected: boolean = false\n\n /**\n * Marca o item como interativo, permitindo que toda a superfície do item seja clicável.\n */\n @Prop({ reflect: true }) isInteractive: boolean = false\n\n /**\n * URL ou caminho para o qual o usuário será direcionado ao clicar no item. Quando definido, o item será renderizado como um link.\n */\n @Prop({ reflect: true }) href?: string\n\n /**\n * Define o alvo do link quando `href` está presente. Pode ser:\n * - `_blank` para abrir em uma nova aba,\n * - `_self` para abrir na mesma aba,\n * - `_parent` para abrir na aba pai,\n * - `_top` para abrir na aba superior.\n */\n @Prop({ reflect: true }) target?: '_blank' | '_self' | '_parent' | '_top'\n\n /**\n * Quando definido como `true`, o item será tratado como um botão.\n */\n @Prop({ reflect: true }) isButton: boolean = false\n\n /**\n * Tipo do botão, aplicável apenas se `isButton` for `true`. Pode ser:\n * - `'submit'` para enviar um formulário,\n * - `'reset'` para redefinir um formulário,\n * - `'button'` para um botão padrão.\n */\n @Prop({ reflect: true, mutable: true }) type: 'submit' | 'reset' | 'button'\n\n /**\n * Define um valor associado ao br-item quando renderizado como um botão, utilizado em contextos de formulário.\n */\n @Prop({ reflect: true }) value?: string\n\n /**\n * Ajusta a densidade, alterando o espaçamento interno para um visual mais compacto ou mais expandido.\n */\n @Prop({ reflect: true }) density: 'large' | 'medium' | 'small' = 'medium'\n\n // Propriedade interna para verificar a presença de conteúdo no slot default\n @State() hasSlotDefault: boolean = false\n\n @State() hasSlotStart: boolean = false\n\n @State() hasSlotEnd: boolean = false\n\n // Propriedade interna para armazenar o valor selecionado\n @State() selectedValue: boolean = false\n\n @Listen('brDidCheckedChange', { target: 'document' })\n handleChange(event: Event) {\n const target = event.target as HTMLElement\n\n if (this.el.contains(target)) {\n this.updateItemSelectionState()\n }\n }\n\n /**\n * Evento customizado emitido quando o item é clicado, aplicável apenas se o item for um botão (`<button>`).\n * Pode ser utilizado para ações personalizadas, exceto quando o item está desativado.\n */\n @Event({ composed: true, cancelable: true, bubbles: true }) brDidClick: EventEmitter\n\n /**\n * Evento customizado aplicável para todos os tipos de elementos (`div`, `button`, `a`), emitido quando o item é selecionado e desde que a propriedade `isInteractive` esteja presente.\n */\n @Event({ bubbles: true, composed: true }) brDidSelect: EventEmitter<{ selected: boolean }>\n\n componentWillLoad() {\n this.hasSlotContentDefault()\n this.hasSlotStart = this.hasSlotContent('start')\n this.hasSlotEnd = this.hasSlotContent('end')\n this.selectedValue = this.isSelected\n if (this.isButton) {\n this.type = this.type || 'button'\n }\n this.updateItemSelectionState()\n }\n\n componentDidLoad() {\n this.updateCheckboxes()\n }\n\n private hasSlotContentDefault(): any {\n this.hasSlotDefault = this.el.innerHTML !== ''\n }\n\n private hasSlotContent(slotName: string): boolean {\n return this.el.querySelector(`[slot=\"${slotName}\"]`) !== null\n }\n\n private getCssClassMap(): CssClassMap {\n return {\n 'br-item': true,\n disabled: this.disabled,\n active: this.isActive,\n selected: this.selectedValue,\n 'py-3': this.density === 'medium',\n 'py-4': this.density === 'small',\n }\n }\n\n private readonly inheritedAttributes: Attributes = {}\n\n private getTagType(): string {\n if (this.isButton) {\n return 'button'\n }\n if (this.href?.length > 0) {\n return 'a'\n }\n return 'div'\n }\n\n private getAttributes() {\n const TagType = this.getTagType()\n const baseAttributes =\n TagType === 'button' ? { type: this.type, value: this.value } : { href: this.href, target: this.target }\n\n return {\n ...baseAttributes,\n 'aria-disabled': this.disabled ? 'true' : null,\n 'aria-current': this.isActive ? 'true' : null,\n 'data-toggle': this.isInteractive ? 'selection' : null,\n ...this.inheritedAttributes,\n }\n }\n\n private updateItemSelectionState() {\n const checkboxes = Array.from(this.el.querySelectorAll('br-checkbox'))\n const radios = Array.from(this.el.querySelectorAll('br-radio'))\n\n let isAnyCheckboxChecked = false\n let isAnyRadioSelected = false\n\n if (checkboxes.length > 0) {\n isAnyCheckboxChecked = checkboxes.some((cb) => cb.checked)\n }\n if (radios.length > 0) {\n isAnyRadioSelected = radios.some((radio) => radio.checked)\n }\n\n this.selectedValue = isAnyCheckboxChecked || isAnyRadioSelected\n }\n\n // Função para verificar se o clique foi dentro do slot do item.\n private isClickInsideInteractiveElement(target: HTMLElement): boolean {\n const interactiveSelectors = 'br-checkbox, br-radio, br-input, br-button, br-select, br-textarea'\n const interactiveElements = this.el.querySelectorAll(interactiveSelectors)\n return Array.from(interactiveElements).some((el) => el.contains(target) || target === el)\n }\n\n private updateCheckboxes() {\n const checkboxes = Array.from(this.el.querySelectorAll('br-checkbox'))\n\n checkboxes.forEach((checkbox) => {\n checkbox.checked = this.selectedValue\n })\n }\n\n private readonly handleClick = (event: MouseEvent) => {\n const clickedElement = event.target as HTMLElement\n\n if (this.disabled) {\n event.preventDefault()\n event.stopPropagation()\n }\n\n if (this.isButton) {\n this.brDidClick.emit()\n } else if (this.isInteractive && !this.isClickInsideInteractiveElement(clickedElement)) {\n this.selectedValue = !this.selectedValue\n this.brDidSelect.emit({ selected: this.selectedValue })\n this.updateCheckboxes()\n }\n event.stopPropagation()\n }\n\n render() {\n const TagType = this.getTagType()\n const attributes = this.getAttributes()\n const classList = this.getCssClassMap()\n return (\n <Host>\n <TagType class={classList} {...attributes} onClick={this.handleClick}>\n {this.hasSlotStart || this.hasSlotEnd ? (\n <div class=\"row align-items-center\">\n {this.hasSlotStart && (\n <div class=\"col-auto\">\n <slot name=\"start\"></slot>\n </div>\n )}\n\n <div class=\"col\">\n <slot></slot>\n </div>\n\n {this.hasSlotEnd && (\n <div class=\"col-auto\">\n <slot name=\"end\"></slot>\n </div>\n )}\n </div>\n ) : (\n <slot></slot>\n )}\n </TagType>\n </Host>\n )\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"item.js","sourceRoot":"","sources":["../../../src/components/item/item.tsx"],"names":[],"mappings":"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","sourcesContent":["import { AttachInternals, Component, Element, Event, EventEmitter, Host, Listen, Prop, State, h } from '@stencil/core'\nimport { Attributes } from '../../utils/inherited-attributes'\nimport { CssClassMap } from '../../utils/interfaces'\n/**\n * Para uma descrição detalhada, consulte a [documentação do GovBR-DS](https://www.gov.br/ds/components/item?tab=designer).\n *\n * @slot default - Área de conteúdo, podendo conter qualquer componente, exceto botões primários e componentes relacionados à navegação (como carrosséis, paginações, abas, menus, etc.).\n *\n * @slot start - Área de recursos visuais, podendo conter elementos como ícones, avatares e mídias.\n *\n * @slot end - Área de recursos complementares, podendo conter componentes interativos, metadados e informações adicionais.\n */\n@Component({\n tag: 'br-item',\n styleUrl: 'item.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Item {\n /**\n * Referência ao elemento host do componente.\n * Utilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente.\n */\n @Element() el: HTMLBrItemElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Desativa o item, tornando-o não interativo.\n */\n @Prop({ reflect: true }) disabled: boolean = false\n\n /**\n * Indica se o item está no estado ativo.\n * Se definido como verdadeiro, o item será exibido como ativo.\n */\n @Prop({ reflect: true }) isActive: boolean = false\n\n /**\n * Indica se o item está no estado selecionado.\n * Se definido como verdadeiro, o item será exibido como selecionado.\n */\n @Prop({ reflect: true }) isSelected: boolean = false\n\n /**\n * Marca o item como interativo, permitindo que toda a superfície do item seja clicável.\n */\n @Prop({ reflect: true }) isInteractive: boolean = false\n\n /**\n * URL ou caminho para o qual o usuário será direcionado ao clicar no item. Quando definido, o item será renderizado como um link.\n */\n @Prop({ reflect: true }) href?: string\n\n /**\n * Define o alvo do link quando `href` está presente. Pode ser:\n * - `_blank` para abrir em uma nova aba,\n * - `_self` para abrir na mesma aba,\n * - `_parent` para abrir na aba pai,\n * - `_top` para abrir na aba superior.\n */\n @Prop({ reflect: true }) target?: '_blank' | '_self' | '_parent' | '_top'\n\n /**\n * Quando definido como `true`, o item será tratado como um botão.\n */\n @Prop({ reflect: true }) isButton: boolean = false\n\n /**\n * Tipo do botão, aplicável apenas se `isButton` for `true`. Pode ser:\n * - `'submit'` para enviar um formulário,\n * - `'reset'` para redefinir um formulário,\n * - `'button'` para um botão padrão.\n */\n @Prop({ reflect: true, mutable: true }) type: 'submit' | 'reset' | 'button'\n\n /**\n * Define um valor associado ao br-item quando renderizado como um botão, utilizado em contextos de formulário.\n */\n @Prop({ reflect: true }) value?: string\n\n /**\n * Ajusta a densidade, alterando o espaçamento interno para um visual mais compacto ou mais expandido.\n */\n @Prop({ reflect: true }) density: 'large' | 'medium' | 'small' = 'medium'\n\n // Propriedade interna para verificar a presença de conteúdo no slot default\n @State() hasSlotDefault: boolean = false\n\n @State() hasSlotStart: boolean = false\n\n @State() hasSlotEnd: boolean = false\n\n // Propriedade interna para armazenar o valor selecionado\n @State() selectedValue: boolean = false\n\n // Propriedade para rastrear a presença de rádios dentro do item\n private hasRadios: boolean = false;\n\n @Listen('brDidChange', { target: 'document' })\n handleRadioChange() {\n requestAnimationFrame(() => {\n this.updateRadioSelectionState();\n });\n }\n\n @Listen('brDidCheckedChange', { target: 'document' })\n handleCheckboxChange(event: Event) {\n const target = event.target as HTMLElement\n\n if (this.el.contains(target)) {\n this.updateCheckboxSelectionState();\n }\n }\n\n /**\n * Evento customizado emitido quando o item é clicado, aplicável apenas se o item for um botão (`<button>`).\n * Pode ser utilizado para ações personalizadas, exceto quando o item está desativado.\n */\n @Event({ composed: true, cancelable: true, bubbles: true }) brDidClick: EventEmitter\n\n /**\n * Evento customizado aplicável para todos os tipos de elementos (`div`, `button`, `a`), emitido quando o item é selecionado e desde que a propriedade `isInteractive` esteja presente.\n */\n @Event({ bubbles: true, composed: true }) brDidSelect: EventEmitter<{ selected: boolean }>\n\n componentWillLoad() {\n this.hasSlotContentDefault()\n this.hasSlotStart = this.hasSlotContent('start')\n this.hasSlotEnd = this.hasSlotContent('end')\n this.selectedValue = this.isSelected\n if (this.isButton) {\n this.type = this.type || 'button'\n }\n const radios = Array.from(this.el.querySelectorAll('br-radio'));\n const checkboxes = Array.from(this.el.querySelectorAll('br-checkbox'));\n this.hasRadios = radios.length > 0;\n\n if (this.isSelected) {\n if(checkboxes.length > 0){\n checkboxes.forEach((checkbox) => (checkbox.checked = true));\n }\n if (radios.length > 0) {\n radios[0].checked = true;\n }\n }\n\n this.updateRadioSelectionState();\n this.updateCheckboxSelectionState();\n }\n\n private hasSlotContentDefault(): any {\n this.hasSlotDefault = this.el.innerHTML !== ''\n }\n\n private hasSlotContent(slotName: string): boolean {\n return this.el.querySelector(`[slot=\"${slotName}\"]`) !== null\n }\n\n private getCssClassMap(): CssClassMap {\n return {\n 'br-item': true,\n disabled: this.disabled,\n active: this.isActive,\n selected: this.selectedValue,\n 'py-3': this.density === 'medium',\n 'py-4': this.density === 'small',\n }\n }\n\n private readonly inheritedAttributes: Attributes = {}\n\n private getTagType(): string {\n if (this.isButton) {\n return 'button'\n }\n if (this.href?.length > 0) {\n return 'a'\n }\n return 'div'\n }\n\n private getAttributes() {\n const TagType = this.getTagType()\n const baseAttributes =\n TagType === 'button' ? { type: this.type, value: this.value } : { href: this.href, target: this.target }\n\n return {\n ...baseAttributes,\n 'aria-disabled': this.disabled ? 'true' : null,\n 'aria-current': this.isActive ? 'true' : null,\n 'data-toggle': this.isInteractive ? 'selection' : null,\n 'is-selected': this.selectedValue ? true : null,\n ...this.inheritedAttributes,\n }\n }\n\n private updateCheckboxSelectionState() {\n if(this.hasRadios) return;\n\n const checkboxes = Array.from(this.el.querySelectorAll('br-checkbox'));\n\n this.selectedValue = checkboxes.some(checkbox => checkbox.checked);\n this.brDidSelect.emit({ selected: this.selectedValue });\n }\n\n private updateRadioSelectionState() {\n if(!this.hasRadios) return;\n\n const radios = Array.from(this.el.querySelectorAll('br-radio'));\n\n this.selectedValue = radios.some(radio => radio.checked);\n this.brDidSelect.emit({ selected: this.selectedValue });\n }\n\n // Função para verificar se o clique foi dentro do slot do item.\n private isClickInsideInteractiveElement(target: HTMLElement): boolean {\n const interactiveSelectors = 'br-checkbox, br-radio, br-input, br-button, br-select, br-textarea'\n const interactiveElements = this.el.querySelectorAll(interactiveSelectors)\n return Array.from(interactiveElements).some((el) => el.contains(target) || target === el)\n }\n\n private updateCheckboxes() {\n const checkboxes = Array.from(this.el.querySelectorAll('br-checkbox'))\n\n checkboxes.forEach((checkbox) => {\n checkbox.checked = this.selectedValue\n })\n }\n\n private readonly handleClick = (event: MouseEvent) => {\n const clickedElement = event.target as HTMLElement\n\n if (this.disabled) {\n event.preventDefault()\n event.stopPropagation()\n }\n\n if (this.hasRadios) {\n return;\n }\n\n if (this.isButton) {\n this.brDidClick.emit()\n } else if (this.isInteractive && !this.isClickInsideInteractiveElement(clickedElement)) {\n this.selectedValue = !this.selectedValue\n this.brDidSelect.emit({ selected: this.selectedValue })\n this.updateCheckboxes()\n }\n\n event.stopPropagation()\n }\n\n render() {\n const TagType = this.getTagType()\n const attributes = this.getAttributes()\n const classList = this.getCssClassMap()\n return (\n <Host>\n <TagType class={classList} {...attributes} onClick={this.handleClick}>\n {this.hasSlotStart || this.hasSlotEnd ? (\n <div class=\"row align-items-center\">\n {this.hasSlotStart && (\n <div class=\"col-auto\">\n <slot name=\"start\"></slot>\n </div>\n )}\n\n <div class=\"col\">\n <slot></slot>\n </div>\n\n {this.hasSlotEnd && (\n <div class=\"col-auto\">\n <slot name=\"end\"></slot>\n </div>\n )}\n </div>\n ) : (\n <slot></slot>\n )}\n </TagType>\n </Host>\n )\n }\n}\n"]}
|
|
@@ -34,6 +34,7 @@ img {
|
|
|
34
34
|
|
|
35
35
|
button,
|
|
36
36
|
input,
|
|
37
|
+
select,
|
|
37
38
|
textarea {
|
|
38
39
|
font-family: inherit;
|
|
39
40
|
font-size: 100%;
|
|
@@ -46,7 +47,8 @@ input {
|
|
|
46
47
|
overflow: visible;
|
|
47
48
|
}
|
|
48
49
|
|
|
49
|
-
button
|
|
50
|
+
button,
|
|
51
|
+
select {
|
|
50
52
|
text-transform: none;
|
|
51
53
|
}
|
|
52
54
|
|
|
@@ -211,6 +213,10 @@ textarea {
|
|
|
211
213
|
margin-right: var(--spacing-scale-half) !important;
|
|
212
214
|
}
|
|
213
215
|
|
|
216
|
+
.mb-1 {
|
|
217
|
+
margin-bottom: var(--spacing-scale-half) !important;
|
|
218
|
+
}
|
|
219
|
+
|
|
214
220
|
.mr-2 {
|
|
215
221
|
margin-right: var(--spacing-scale-base) !important;
|
|
216
222
|
}
|
|
@@ -219,6 +225,10 @@ textarea {
|
|
|
219
225
|
margin-right: calc(var(--spacing-scale-base) * -1) !important;
|
|
220
226
|
}
|
|
221
227
|
|
|
228
|
+
.ml-2 {
|
|
229
|
+
margin-left: var(--spacing-scale-base) !important;
|
|
230
|
+
}
|
|
231
|
+
|
|
222
232
|
.mb-3 {
|
|
223
233
|
margin-bottom: var(--spacing-scale-2x) !important;
|
|
224
234
|
}
|