@pine-ds/core 0.0.2-alpha.0
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/LICENSE +21 -0
- package/dist/cjs/index-13500e25.js +2468 -0
- package/dist/cjs/index-13500e25.js.map +1 -0
- package/dist/cjs/index.cjs.js +4 -0
- package/dist/cjs/index.cjs.js.map +1 -0
- package/dist/cjs/loader.cjs.js +15 -0
- package/dist/cjs/loader.cjs.js.map +1 -0
- package/dist/cjs/pds-avatar.cjs.entry.js +70 -0
- package/dist/cjs/pds-avatar.cjs.entry.js.map +1 -0
- package/dist/cjs/pds-button.cjs.entry.js +57 -0
- package/dist/cjs/pds-button.cjs.entry.js.map +1 -0
- package/dist/cjs/pds-checkbox.cjs.entry.js +57 -0
- package/dist/cjs/pds-checkbox.cjs.entry.js.map +1 -0
- package/dist/cjs/pds-chip.cjs.entry.js +49 -0
- package/dist/cjs/pds-chip.cjs.entry.js.map +1 -0
- package/dist/cjs/pds-copytext.cjs.entry.js +68 -0
- package/dist/cjs/pds-copytext.cjs.entry.js.map +1 -0
- package/dist/cjs/pds-divider.cjs.entry.js +35 -0
- package/dist/cjs/pds-divider.cjs.entry.js.map +1 -0
- package/dist/cjs/pds-icon.cjs.entry.js +277 -0
- package/dist/cjs/pds-icon.cjs.entry.js.map +1 -0
- package/dist/cjs/pds-image.cjs.entry.js +31 -0
- package/dist/cjs/pds-image.cjs.entry.js.map +1 -0
- package/dist/cjs/pds-input.cjs.entry.js +44 -0
- package/dist/cjs/pds-input.cjs.entry.js.map +1 -0
- package/dist/cjs/pds-label-71ea2cad.js +44 -0
- package/dist/cjs/pds-label-71ea2cad.js.map +1 -0
- package/dist/cjs/pds-link.cjs.entry.js +37 -0
- package/dist/cjs/pds-link.cjs.entry.js.map +1 -0
- package/dist/cjs/pds-progress.cjs.entry.js +27 -0
- package/dist/cjs/pds-progress.cjs.entry.js.map +1 -0
- package/dist/cjs/pds-radio.cjs.entry.js +53 -0
- package/dist/cjs/pds-radio.cjs.entry.js.map +1 -0
- package/dist/cjs/pds-sortable-item.cjs.entry.js +24 -0
- package/dist/cjs/pds-sortable-item.cjs.entry.js.map +1 -0
- package/dist/cjs/pds-sortable.cjs.entry.js +2706 -0
- package/dist/cjs/pds-sortable.cjs.entry.js.map +1 -0
- package/dist/cjs/pds-switch.cjs.entry.js +55 -0
- package/dist/cjs/pds-switch.cjs.entry.js.map +1 -0
- package/dist/cjs/pds-tab.cjs.entry.js +33 -0
- package/dist/cjs/pds-tab.cjs.entry.js.map +1 -0
- package/dist/cjs/pds-tabpanel.cjs.entry.js +26 -0
- package/dist/cjs/pds-tabpanel.cjs.entry.js.map +1 -0
- package/dist/cjs/pds-tabs.cjs.entry.js +98 -0
- package/dist/cjs/pds-tabs.cjs.entry.js.map +1 -0
- package/dist/cjs/pds-textarea.cjs.entry.js +54 -0
- package/dist/cjs/pds-textarea.cjs.entry.js.map +1 -0
- package/dist/cjs/pds-tooltip.cjs.entry.js +151 -0
- package/dist/cjs/pds-tooltip.cjs.entry.js.map +1 -0
- package/dist/cjs/pine-core.cjs.js +25 -0
- package/dist/cjs/pine-core.cjs.js.map +1 -0
- package/dist/collection/collection-manifest.json +37 -0
- package/dist/collection/components/_internal/pds-label/pds-label.js +7 -0
- package/dist/collection/components/_internal/pds-label/pds-label.js.map +1 -0
- package/dist/collection/components/pds-avatar/pds-avatar.css +59 -0
- package/dist/collection/components/pds-avatar/pds-avatar.js +217 -0
- package/dist/collection/components/pds-avatar/pds-avatar.js.map +1 -0
- package/dist/collection/components/pds-avatar/stories/pds-avatar.stories.js +65 -0
- package/dist/collection/components/pds-button/pds-button.css +122 -0
- package/dist/collection/components/pds-button/pds-button.js +187 -0
- package/dist/collection/components/pds-button/pds-button.js.map +1 -0
- package/dist/collection/components/pds-button/stories/pds-button.stories.js +65 -0
- package/dist/collection/components/pds-checkbox/pds-checkbox.css +106 -0
- package/dist/collection/components/pds-checkbox/pds-checkbox.js +266 -0
- package/dist/collection/components/pds-checkbox/pds-checkbox.js.map +1 -0
- package/dist/collection/components/pds-checkbox/stories/pds-checkbox.stories.js +80 -0
- package/dist/collection/components/pds-chip/pds-chip.css +245 -0
- package/dist/collection/components/pds-chip/pds-chip.js +188 -0
- package/dist/collection/components/pds-chip/pds-chip.js.map +1 -0
- package/dist/collection/components/pds-chip/stories/pds-chip.stories.js +79 -0
- package/dist/collection/components/pds-copytext/pds-copytext.css +85 -0
- package/dist/collection/components/pds-copytext/pds-copytext.js +186 -0
- package/dist/collection/components/pds-copytext/pds-copytext.js.map +1 -0
- package/dist/collection/components/pds-copytext/stories/pds-copytext.stories.js +57 -0
- package/dist/collection/components/pds-divider/pds-divider.css +92 -0
- package/dist/collection/components/pds-divider/pds-divider.js +94 -0
- package/dist/collection/components/pds-divider/pds-divider.js.map +1 -0
- package/dist/collection/components/pds-divider/stories/pds-divider.stories.js +25 -0
- package/dist/collection/components/pds-icon/stories/pds-icon.stories.js +16 -0
- package/dist/collection/components/pds-image/pds-image.css +13 -0
- package/dist/collection/components/pds-image/pds-image.js +173 -0
- package/dist/collection/components/pds-image/pds-image.js.map +1 -0
- package/dist/collection/components/pds-image/stories/pds-image.stories.js +35 -0
- package/dist/collection/components/pds-input/pds-input.css +88 -0
- package/dist/collection/components/pds-input/pds-input.js +279 -0
- package/dist/collection/components/pds-input/pds-input.js.map +1 -0
- package/dist/collection/components/pds-input/stories/pds-input.stories.js +110 -0
- package/dist/collection/components/pds-link/pds-link.css +67 -0
- package/dist/collection/components/pds-link/pds-link.js +138 -0
- package/dist/collection/components/pds-link/pds-link.js.map +1 -0
- package/dist/collection/components/pds-link/stories/pds-link.stories.js +49 -0
- package/dist/collection/components/pds-progress/pds-progress.css +77 -0
- package/dist/collection/components/pds-progress/pds-progress.js +148 -0
- package/dist/collection/components/pds-progress/pds-progress.js.map +1 -0
- package/dist/collection/components/pds-progress/stories/pds-progress.stories.js +65 -0
- package/dist/collection/components/pds-radio/pds-radio.css +101 -0
- package/dist/collection/components/pds-radio/pds-radio.js +261 -0
- package/dist/collection/components/pds-radio/pds-radio.js.map +1 -0
- package/dist/collection/components/pds-radio/stories/pds-radio.stories.js +71 -0
- package/dist/collection/components/pds-sortable/pds-sortable-item/pds-sortable-item.css +63 -0
- package/dist/collection/components/pds-sortable/pds-sortable-item/pds-sortable-item.js +90 -0
- package/dist/collection/components/pds-sortable/pds-sortable-item/pds-sortable-item.js.map +1 -0
- package/dist/collection/components/pds-sortable/pds-sortable-item/stories/pds-sortable-item.stories.js +24 -0
- package/dist/collection/components/pds-sortable/pds-sortable.css +10 -0
- package/dist/collection/components/pds-sortable/pds-sortable.js +150 -0
- package/dist/collection/components/pds-sortable/pds-sortable.js.map +1 -0
- package/dist/collection/components/pds-sortable/stories/pds-sortable.stories.js +130 -0
- package/dist/collection/components/pds-switch/pds-switch.css +134 -0
- package/dist/collection/components/pds-switch/pds-switch.js +277 -0
- package/dist/collection/components/pds-switch/pds-switch.js.map +1 -0
- package/dist/collection/components/pds-switch/stories/pds-switch.stories.js +102 -0
- package/dist/collection/components/pds-tabs/pds-tab/pds-tab.css +158 -0
- package/dist/collection/components/pds-tabs/pds-tab/pds-tab.js +154 -0
- package/dist/collection/components/pds-tabs/pds-tab/pds-tab.js.map +1 -0
- package/dist/collection/components/pds-tabs/pds-tabpanel/pds-tabpanel.css +12 -0
- package/dist/collection/components/pds-tabs/pds-tabpanel/pds-tabpanel.js +107 -0
- package/dist/collection/components/pds-tabs/pds-tabpanel/pds-tabpanel.js.map +1 -0
- package/dist/collection/components/pds-tabs/pds-tabs.css +33 -0
- package/dist/collection/components/pds-tabs/pds-tabs.js +209 -0
- package/dist/collection/components/pds-tabs/pds-tabs.js.map +1 -0
- package/dist/collection/components/pds-tabs/stories/pds-tabs.stories.js +63 -0
- package/dist/collection/components/pds-textarea/pds-textarea.css +84 -0
- package/dist/collection/components/pds-textarea/pds-textarea.js +303 -0
- package/dist/collection/components/pds-textarea/pds-textarea.js.map +1 -0
- package/dist/collection/components/pds-textarea/stories/pds-textarea.stories.js +111 -0
- package/dist/collection/components/pds-textarea/textarea-interface.js +2 -0
- package/dist/collection/components/pds-textarea/textarea-interface.js.map +1 -0
- package/dist/collection/components/pds-tooltip/pds-tooltip.css +143 -0
- package/dist/collection/components/pds-tooltip/pds-tooltip.js +287 -0
- package/dist/collection/components/pds-tooltip/pds-tooltip.js.map +1 -0
- package/dist/collection/components/pds-tooltip/stories/pds-tooltip.stories.js +114 -0
- package/dist/collection/global/pine-ui-global.js +2 -0
- package/dist/collection/global/pine-ui-global.js.map +1 -0
- package/dist/collection/index.js +2 -0
- package/dist/collection/index.js.map +1 -0
- package/dist/collection/stories/_helpers/index.js +15 -0
- package/dist/collection/stories/_helpers/index.js.map +1 -0
- package/dist/collection/utils/form.js +28 -0
- package/dist/collection/utils/form.js.map +1 -0
- package/dist/collection/utils/overlay.js +68 -0
- package/dist/collection/utils/overlay.js.map +1 -0
- package/dist/collection/utils/types.js +2 -0
- package/dist/collection/utils/types.js.map +1 -0
- package/dist/collection/utils/utils.js +7 -0
- package/dist/collection/utils/utils.js.map +1 -0
- package/dist/docs.d.ts +421 -0
- package/dist/docs.json +3718 -0
- package/dist/esm/index-a58668b3.js +2438 -0
- package/dist/esm/index-a58668b3.js.map +1 -0
- package/dist/esm/index.js +3 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/loader.js +11 -0
- package/dist/esm/loader.js.map +1 -0
- package/dist/esm/pds-avatar.entry.js +66 -0
- package/dist/esm/pds-avatar.entry.js.map +1 -0
- package/dist/esm/pds-button.entry.js +53 -0
- package/dist/esm/pds-button.entry.js.map +1 -0
- package/dist/esm/pds-checkbox.entry.js +53 -0
- package/dist/esm/pds-checkbox.entry.js.map +1 -0
- package/dist/esm/pds-chip.entry.js +45 -0
- package/dist/esm/pds-chip.entry.js.map +1 -0
- package/dist/esm/pds-copytext.entry.js +64 -0
- package/dist/esm/pds-copytext.entry.js.map +1 -0
- package/dist/esm/pds-divider.entry.js +31 -0
- package/dist/esm/pds-divider.entry.js.map +1 -0
- package/dist/esm/pds-icon.entry.js +273 -0
- package/dist/esm/pds-icon.entry.js.map +1 -0
- package/dist/esm/pds-image.entry.js +27 -0
- package/dist/esm/pds-image.entry.js.map +1 -0
- package/dist/esm/pds-input.entry.js +40 -0
- package/dist/esm/pds-input.entry.js.map +1 -0
- package/dist/esm/pds-label-a26dd876.js +39 -0
- package/dist/esm/pds-label-a26dd876.js.map +1 -0
- package/dist/esm/pds-link.entry.js +33 -0
- package/dist/esm/pds-link.entry.js.map +1 -0
- package/dist/esm/pds-progress.entry.js +23 -0
- package/dist/esm/pds-progress.entry.js.map +1 -0
- package/dist/esm/pds-radio.entry.js +49 -0
- package/dist/esm/pds-radio.entry.js.map +1 -0
- package/dist/esm/pds-sortable-item.entry.js +20 -0
- package/dist/esm/pds-sortable-item.entry.js.map +1 -0
- package/dist/esm/pds-sortable.entry.js +2702 -0
- package/dist/esm/pds-sortable.entry.js.map +1 -0
- package/dist/esm/pds-switch.entry.js +51 -0
- package/dist/esm/pds-switch.entry.js.map +1 -0
- package/dist/esm/pds-tab.entry.js +29 -0
- package/dist/esm/pds-tab.entry.js.map +1 -0
- package/dist/esm/pds-tabpanel.entry.js +22 -0
- package/dist/esm/pds-tabpanel.entry.js.map +1 -0
- package/dist/esm/pds-tabs.entry.js +94 -0
- package/dist/esm/pds-tabs.entry.js.map +1 -0
- package/dist/esm/pds-textarea.entry.js +50 -0
- package/dist/esm/pds-textarea.entry.js.map +1 -0
- package/dist/esm/pds-tooltip.entry.js +147 -0
- package/dist/esm/pds-tooltip.entry.js.map +1 -0
- package/dist/esm/pine-core.js +20 -0
- package/dist/esm/pine-core.js.map +1 -0
- package/dist/esm/polyfills/core-js.js +11 -0
- package/dist/esm/polyfills/dom.js +79 -0
- package/dist/esm/polyfills/es5-html-element.js +1 -0
- package/dist/esm/polyfills/index.js +34 -0
- package/dist/esm/polyfills/system.js +6 -0
- package/dist/esm-es5/index-a58668b3.js +3 -0
- package/dist/esm-es5/index-a58668b3.js.map +1 -0
- package/dist/esm-es5/index.js +2 -0
- package/dist/esm-es5/index.js.map +1 -0
- package/dist/esm-es5/loader.js +2 -0
- package/dist/esm-es5/loader.js.map +1 -0
- package/dist/esm-es5/pds-avatar.entry.js +2 -0
- package/dist/esm-es5/pds-avatar.entry.js.map +1 -0
- package/dist/esm-es5/pds-button.entry.js +2 -0
- package/dist/esm-es5/pds-button.entry.js.map +1 -0
- package/dist/esm-es5/pds-checkbox.entry.js +2 -0
- package/dist/esm-es5/pds-checkbox.entry.js.map +1 -0
- package/dist/esm-es5/pds-chip.entry.js +2 -0
- package/dist/esm-es5/pds-chip.entry.js.map +1 -0
- package/dist/esm-es5/pds-copytext.entry.js +2 -0
- package/dist/esm-es5/pds-copytext.entry.js.map +1 -0
- package/dist/esm-es5/pds-divider.entry.js +2 -0
- package/dist/esm-es5/pds-divider.entry.js.map +1 -0
- package/dist/esm-es5/pds-icon.entry.js +2 -0
- package/dist/esm-es5/pds-icon.entry.js.map +1 -0
- package/dist/esm-es5/pds-image.entry.js +2 -0
- package/dist/esm-es5/pds-image.entry.js.map +1 -0
- package/dist/esm-es5/pds-input.entry.js +2 -0
- package/dist/esm-es5/pds-input.entry.js.map +1 -0
- package/dist/esm-es5/pds-label-a26dd876.js +2 -0
- package/dist/esm-es5/pds-label-a26dd876.js.map +1 -0
- package/dist/esm-es5/pds-link.entry.js +2 -0
- package/dist/esm-es5/pds-link.entry.js.map +1 -0
- package/dist/esm-es5/pds-progress.entry.js +2 -0
- package/dist/esm-es5/pds-progress.entry.js.map +1 -0
- package/dist/esm-es5/pds-radio.entry.js +2 -0
- package/dist/esm-es5/pds-radio.entry.js.map +1 -0
- package/dist/esm-es5/pds-sortable-item.entry.js +2 -0
- package/dist/esm-es5/pds-sortable-item.entry.js.map +1 -0
- package/dist/esm-es5/pds-sortable.entry.js +8 -0
- package/dist/esm-es5/pds-sortable.entry.js.map +1 -0
- package/dist/esm-es5/pds-switch.entry.js +2 -0
- package/dist/esm-es5/pds-switch.entry.js.map +1 -0
- package/dist/esm-es5/pds-tab.entry.js +2 -0
- package/dist/esm-es5/pds-tab.entry.js.map +1 -0
- package/dist/esm-es5/pds-tabpanel.entry.js +2 -0
- package/dist/esm-es5/pds-tabpanel.entry.js.map +1 -0
- package/dist/esm-es5/pds-tabs.entry.js +2 -0
- package/dist/esm-es5/pds-tabs.entry.js.map +1 -0
- package/dist/esm-es5/pds-textarea.entry.js +2 -0
- package/dist/esm-es5/pds-textarea.entry.js.map +1 -0
- package/dist/esm-es5/pds-tooltip.entry.js +2 -0
- package/dist/esm-es5/pds-tooltip.entry.js.map +1 -0
- package/dist/esm-es5/pine-core.js +2 -0
- package/dist/esm-es5/pine-core.js.map +1 -0
- package/dist/index.cjs.js +1 -0
- package/dist/index.js +1 -0
- package/dist/pine-core/index.esm.js +2 -0
- package/dist/pine-core/index.esm.js.map +1 -0
- package/dist/pine-core/p-0a776a7b.entry.js +2 -0
- package/dist/pine-core/p-0a776a7b.entry.js.map +1 -0
- package/dist/pine-core/p-0adb4b48.entry.js +2 -0
- package/dist/pine-core/p-0adb4b48.entry.js.map +1 -0
- package/dist/pine-core/p-0c26a00d.entry.js +2 -0
- package/dist/pine-core/p-0c26a00d.entry.js.map +1 -0
- package/dist/pine-core/p-1c0ffcab.entry.js +2 -0
- package/dist/pine-core/p-1c0ffcab.entry.js.map +1 -0
- package/dist/pine-core/p-22bd3102.system.entry.js +9 -0
- package/dist/pine-core/p-22bd3102.system.entry.js.map +1 -0
- package/dist/pine-core/p-22dd8116.entry.js +2 -0
- package/dist/pine-core/p-22dd8116.entry.js.map +1 -0
- package/dist/pine-core/p-23fb6af2.system.entry.js +2 -0
- package/dist/pine-core/p-23fb6af2.system.entry.js.map +1 -0
- package/dist/pine-core/p-24077dcd.entry.js +2 -0
- package/dist/pine-core/p-24077dcd.entry.js.map +1 -0
- package/dist/pine-core/p-27fd7f08.system.entry.js +2 -0
- package/dist/pine-core/p-27fd7f08.system.entry.js.map +1 -0
- package/dist/pine-core/p-331cbf1d.entry.js +2 -0
- package/dist/pine-core/p-331cbf1d.entry.js.map +1 -0
- package/dist/pine-core/p-3386bfe1.system.entry.js +2 -0
- package/dist/pine-core/p-3386bfe1.system.entry.js.map +1 -0
- package/dist/pine-core/p-401cd4bc.entry.js +2 -0
- package/dist/pine-core/p-401cd4bc.entry.js.map +1 -0
- package/dist/pine-core/p-4a804680.entry.js +2 -0
- package/dist/pine-core/p-4a804680.entry.js.map +1 -0
- package/dist/pine-core/p-4fc42ff3.system.entry.js +2 -0
- package/dist/pine-core/p-4fc42ff3.system.entry.js.map +1 -0
- package/dist/pine-core/p-50ea2036.system.js +2 -0
- package/dist/pine-core/p-50ea2036.system.js.map +1 -0
- package/dist/pine-core/p-5b37a4a2.system.entry.js +2 -0
- package/dist/pine-core/p-5b37a4a2.system.entry.js.map +1 -0
- package/dist/pine-core/p-643f5378.entry.js +2 -0
- package/dist/pine-core/p-643f5378.entry.js.map +1 -0
- package/dist/pine-core/p-669d948a.system.entry.js +2 -0
- package/dist/pine-core/p-669d948a.system.entry.js.map +1 -0
- package/dist/pine-core/p-73262287.system.entry.js +2 -0
- package/dist/pine-core/p-73262287.system.entry.js.map +1 -0
- package/dist/pine-core/p-79d7e0b1.system.entry.js +2 -0
- package/dist/pine-core/p-79d7e0b1.system.entry.js.map +1 -0
- package/dist/pine-core/p-7bc01826.entry.js +2 -0
- package/dist/pine-core/p-7bc01826.entry.js.map +1 -0
- package/dist/pine-core/p-7fcd5f0b.entry.js +8 -0
- package/dist/pine-core/p-7fcd5f0b.entry.js.map +1 -0
- package/dist/pine-core/p-85f6a94e.system.entry.js +2 -0
- package/dist/pine-core/p-85f6a94e.system.entry.js.map +1 -0
- package/dist/pine-core/p-8f62c812.entry.js +2 -0
- package/dist/pine-core/p-8f62c812.entry.js.map +1 -0
- package/dist/pine-core/p-930ab8a3.system.entry.js +2 -0
- package/dist/pine-core/p-930ab8a3.system.entry.js.map +1 -0
- package/dist/pine-core/p-938886d8.system.entry.js +2 -0
- package/dist/pine-core/p-938886d8.system.entry.js.map +1 -0
- package/dist/pine-core/p-97cb4285.entry.js +2 -0
- package/dist/pine-core/p-97cb4285.entry.js.map +1 -0
- package/dist/pine-core/p-abdca153.js +3 -0
- package/dist/pine-core/p-abdca153.js.map +1 -0
- package/dist/pine-core/p-ac31a7c8.system.entry.js +2 -0
- package/dist/pine-core/p-ac31a7c8.system.entry.js.map +1 -0
- package/dist/pine-core/p-af75cc15.entry.js +2 -0
- package/dist/pine-core/p-af75cc15.entry.js.map +1 -0
- package/dist/pine-core/p-b17b818b.entry.js +2 -0
- package/dist/pine-core/p-b17b818b.entry.js.map +1 -0
- package/dist/pine-core/p-b79a8b07.entry.js +2 -0
- package/dist/pine-core/p-b79a8b07.entry.js.map +1 -0
- package/dist/pine-core/p-bce2d5b5.system.entry.js +2 -0
- package/dist/pine-core/p-bce2d5b5.system.entry.js.map +1 -0
- package/dist/pine-core/p-bff583bd.system.js +2 -0
- package/dist/pine-core/p-bff583bd.system.js.map +1 -0
- package/dist/pine-core/p-c0f9dbe1.system.entry.js +2 -0
- package/dist/pine-core/p-c0f9dbe1.system.entry.js.map +1 -0
- package/dist/pine-core/p-c4dbae0e.system.js +2 -0
- package/dist/pine-core/p-c4dbae0e.system.js.map +1 -0
- package/dist/pine-core/p-c6d878f8.entry.js +2 -0
- package/dist/pine-core/p-c6d878f8.entry.js.map +1 -0
- package/dist/pine-core/p-c8a41b43.system.entry.js +2 -0
- package/dist/pine-core/p-c8a41b43.system.entry.js.map +1 -0
- package/dist/pine-core/p-d3e173ea.system.entry.js +2 -0
- package/dist/pine-core/p-d3e173ea.system.entry.js.map +1 -0
- package/dist/pine-core/p-f09892d3.system.entry.js +2 -0
- package/dist/pine-core/p-f09892d3.system.entry.js.map +1 -0
- package/dist/pine-core/p-f168654a.entry.js +2 -0
- package/dist/pine-core/p-f168654a.entry.js.map +1 -0
- package/dist/pine-core/p-f1d7f16f.js +2 -0
- package/dist/pine-core/p-f1d7f16f.js.map +1 -0
- package/dist/pine-core/p-f2c3035d.system.entry.js +2 -0
- package/dist/pine-core/p-f2c3035d.system.entry.js.map +1 -0
- package/dist/pine-core/p-f3af6d74.system.entry.js +2 -0
- package/dist/pine-core/p-f3af6d74.system.entry.js.map +1 -0
- package/dist/pine-core/p-fa5d4e73.system.js +3 -0
- package/dist/pine-core/p-fa5d4e73.system.js.map +1 -0
- package/dist/pine-core/p-fba29e90.entry.js +2 -0
- package/dist/pine-core/p-fba29e90.entry.js.map +1 -0
- package/dist/pine-core/pine-core.css +1 -0
- package/dist/pine-core/pine-core.esm.js +2 -0
- package/dist/pine-core/pine-core.esm.js.map +1 -0
- package/dist/pine-core/pine-core.js +127 -0
- package/dist/pine-core/svg/access-key.svg +1 -0
- package/dist/pine-core/svg/add-circle.svg +1 -0
- package/dist/pine-core/svg/add-image.svg +1 -0
- package/dist/pine-core/svg/add-small.svg +1 -0
- package/dist/pine-core/svg/add.svg +1 -0
- package/dist/pine-core/svg/ai-sparkle.svg +1 -0
- package/dist/pine-core/svg/ai-writer-filled.svg +1 -0
- package/dist/pine-core/svg/ai-writer.svg +1 -0
- package/dist/pine-core/svg/align-center.svg +1 -0
- package/dist/pine-core/svg/align-justify.svg +1 -0
- package/dist/pine-core/svg/align-left.svg +1 -0
- package/dist/pine-core/svg/align-right.svg +1 -0
- package/dist/pine-core/svg/analytics-filled.svg +1 -0
- package/dist/pine-core/svg/analytics-outline.svg +1 -0
- package/dist/pine-core/svg/app-store.svg +1 -0
- package/dist/pine-core/svg/archive.svg +1 -0
- package/dist/pine-core/svg/arrow-corner.svg +1 -0
- package/dist/pine-core/svg/arrow-down.svg +1 -0
- package/dist/pine-core/svg/arrow-left.svg +1 -0
- package/dist/pine-core/svg/arrow-right.svg +1 -0
- package/dist/pine-core/svg/arrow-up.svg +1 -0
- package/dist/pine-core/svg/assessment.svg +1 -0
- package/dist/pine-core/svg/at-sign.svg +1 -0
- package/dist/pine-core/svg/attach.svg +1 -0
- package/dist/pine-core/svg/automations.svg +1 -0
- package/dist/pine-core/svg/ban.svg +1 -0
- package/dist/pine-core/svg/bank.svg +1 -0
- package/dist/pine-core/svg/bell.svg +1 -0
- package/dist/pine-core/svg/blog-filled.svg +1 -0
- package/dist/pine-core/svg/blog.svg +1 -0
- package/dist/pine-core/svg/bold.svg +1 -0
- package/dist/pine-core/svg/broadcast.svg +1 -0
- package/dist/pine-core/svg/calendar-date.svg +1 -0
- package/dist/pine-core/svg/calendar-schedule.svg +1 -0
- package/dist/pine-core/svg/calendar-simple.svg +1 -0
- package/dist/pine-core/svg/card-bw-amex.svg +1 -0
- package/dist/pine-core/svg/card-bw-apple-card.svg +1 -0
- package/dist/pine-core/svg/card-bw-diners-club.svg +1 -0
- package/dist/pine-core/svg/card-bw-discover.svg +1 -0
- package/dist/pine-core/svg/card-bw-gpay-card.svg +1 -0
- package/dist/pine-core/svg/card-bw-mastercard.svg +1 -0
- package/dist/pine-core/svg/card-bw-paypal.svg +1 -0
- package/dist/pine-core/svg/card-bw-stripe.svg +1 -0
- package/dist/pine-core/svg/card-bw-visa.svg +1 -0
- package/dist/pine-core/svg/card-update.svg +1 -0
- package/dist/pine-core/svg/caret-down.svg +1 -0
- package/dist/pine-core/svg/caret-left.svg +1 -0
- package/dist/pine-core/svg/caret-right.svg +1 -0
- package/dist/pine-core/svg/caret-up.svg +1 -0
- package/dist/pine-core/svg/cart-add.svg +1 -0
- package/dist/pine-core/svg/cart.svg +1 -0
- package/dist/pine-core/svg/certificate.svg +1 -0
- package/dist/pine-core/svg/check-circle-filled.svg +1 -0
- package/dist/pine-core/svg/check-circle.svg +1 -0
- package/dist/pine-core/svg/check.svg +1 -0
- package/dist/pine-core/svg/circle-1.svg +1 -0
- package/dist/pine-core/svg/circle-2.svg +1 -0
- package/dist/pine-core/svg/circle-3.svg +1 -0
- package/dist/pine-core/svg/circle-4.svg +1 -0
- package/dist/pine-core/svg/circle-5.svg +1 -0
- package/dist/pine-core/svg/circle-6.svg +1 -0
- package/dist/pine-core/svg/circle-7.svg +1 -0
- package/dist/pine-core/svg/circle-8.svg +1 -0
- package/dist/pine-core/svg/circle-9.svg +1 -0
- package/dist/pine-core/svg/clock.svg +1 -0
- package/dist/pine-core/svg/closed-captions.svg +1 -0
- package/dist/pine-core/svg/cloud-upload.svg +1 -0
- package/dist/pine-core/svg/code.svg +1 -0
- package/dist/pine-core/svg/color.svg +1 -0
- package/dist/pine-core/svg/columns.svg +1 -0
- package/dist/pine-core/svg/comment.svg +1 -0
- package/dist/pine-core/svg/connect.svg +1 -0
- package/dist/pine-core/svg/contact.svg +1 -0
- package/dist/pine-core/svg/contacts-filled.svg +1 -0
- package/dist/pine-core/svg/contacts-outline.svg +1 -0
- package/dist/pine-core/svg/conversation.svg +1 -0
- package/dist/pine-core/svg/copy.svg +1 -0
- package/dist/pine-core/svg/coupon.svg +1 -0
- package/dist/pine-core/svg/course.svg +1 -0
- package/dist/pine-core/svg/creator-studio-filled.svg +1 -0
- package/dist/pine-core/svg/creator-studio.svg +1 -0
- package/dist/pine-core/svg/credit-card.svg +1 -0
- package/dist/pine-core/svg/custom-field.svg +1 -0
- package/dist/pine-core/svg/customize.svg +1 -0
- package/dist/pine-core/svg/danger-filled.svg +1 -0
- package/dist/pine-core/svg/danger.svg +1 -0
- package/dist/pine-core/svg/dashboard-filled.svg +1 -0
- package/dist/pine-core/svg/dashboard-outline.svg +1 -0
- package/dist/pine-core/svg/delete-circle.svg +1 -0
- package/dist/pine-core/svg/delete-key.svg +1 -0
- package/dist/pine-core/svg/delete-x.svg +1 -0
- package/dist/pine-core/svg/dollar-sign.svg +1 -0
- package/dist/pine-core/svg/dot-menu-horizontal.svg +1 -0
- package/dist/pine-core/svg/down-small.svg +1 -0
- package/dist/pine-core/svg/download.svg +1 -0
- package/dist/pine-core/svg/downsell.svg +1 -0
- package/dist/pine-core/svg/draft.svg +1 -0
- package/dist/pine-core/svg/drop.svg +1 -0
- package/dist/pine-core/svg/duplicate.svg +1 -0
- package/dist/pine-core/svg/email-activity.svg +1 -0
- package/dist/pine-core/svg/emoji.svg +1 -0
- package/dist/pine-core/svg/enlarge-vertical.svg +1 -0
- package/dist/pine-core/svg/enlarge.svg +1 -0
- package/dist/pine-core/svg/expand.svg +1 -0
- package/dist/pine-core/svg/facebook-2.svg +1 -0
- package/dist/pine-core/svg/facebook.svg +1 -0
- package/dist/pine-core/svg/favorite.svg +1 -0
- package/dist/pine-core/svg/feedback.svg +1 -0
- package/dist/pine-core/svg/file-money.svg +1 -0
- package/dist/pine-core/svg/file.svg +1 -0
- package/dist/pine-core/svg/filter.svg +1 -0
- package/dist/pine-core/svg/flag.svg +1 -0
- package/dist/pine-core/svg/flash-filled.svg +1 -0
- package/dist/pine-core/svg/flash.svg +1 -0
- package/dist/pine-core/svg/folder-group.svg +1 -0
- package/dist/pine-core/svg/folder.svg +1 -0
- package/dist/pine-core/svg/form-field.svg +1 -0
- package/dist/pine-core/svg/form-filled.svg +1 -0
- package/dist/pine-core/svg/form.svg +1 -0
- package/dist/pine-core/svg/fullscreen.svg +1 -0
- package/dist/pine-core/svg/funnel.svg +1 -0
- package/dist/pine-core/svg/grant-offer.svg +1 -0
- package/dist/pine-core/svg/handle-2-vertical.svg +1 -0
- package/dist/pine-core/svg/handle-2.svg +1 -0
- package/dist/pine-core/svg/handle.svg +1 -0
- package/dist/pine-core/svg/hashtag.svg +1 -0
- package/dist/pine-core/svg/hd-video.svg +1 -0
- package/dist/pine-core/svg/heading-large.svg +1 -0
- package/dist/pine-core/svg/heading-small.svg +1 -0
- package/dist/pine-core/svg/headset.svg +1 -0
- package/dist/pine-core/svg/help-filled.svg +1 -0
- package/dist/pine-core/svg/help-outline.svg +1 -0
- package/dist/pine-core/svg/home-alt.svg +1 -0
- package/dist/pine-core/svg/horizontal-line.svg +1 -0
- package/dist/pine-core/svg/image.svg +1 -0
- package/dist/pine-core/svg/info-circle-filled.svg +1 -0
- package/dist/pine-core/svg/info-circle.svg +1 -0
- package/dist/pine-core/svg/instagram.svg +1 -0
- package/dist/pine-core/svg/ios-battery.svg +1 -0
- package/dist/pine-core/svg/ios-data.svg +1 -0
- package/dist/pine-core/svg/ios-wifi.svg +1 -0
- package/dist/pine-core/svg/italic.svg +1 -0
- package/dist/pine-core/svg/kajabi-filled.svg +1 -0
- package/dist/pine-core/svg/kajabi-outlined.svg +1 -0
- package/dist/pine-core/svg/lab.svg +1 -0
- package/dist/pine-core/svg/launch.svg +1 -0
- package/dist/pine-core/svg/layout-grid.svg +1 -0
- package/dist/pine-core/svg/layout-list.svg +1 -0
- package/dist/pine-core/svg/left-small.svg +1 -0
- package/dist/pine-core/svg/linkedin.svg +1 -0
- package/dist/pine-core/svg/list-bullet.svg +1 -0
- package/dist/pine-core/svg/list-numbers.svg +1 -0
- package/dist/pine-core/svg/location.svg +1 -0
- package/dist/pine-core/svg/lock-alt.svg +1 -0
- package/dist/pine-core/svg/lock.svg +1 -0
- package/dist/pine-core/svg/logo-afterpay.svg +1 -0
- package/dist/pine-core/svg/loop.svg +1 -0
- package/dist/pine-core/svg/mail-filled.svg +1 -0
- package/dist/pine-core/svg/mail.svg +1 -0
- package/dist/pine-core/svg/map.svg +1 -0
- package/dist/pine-core/svg/mapped.svg +1 -0
- package/dist/pine-core/svg/margin-left.svg +1 -0
- package/dist/pine-core/svg/margin-right.svg +1 -0
- package/dist/pine-core/svg/marker-filled.svg +1 -0
- package/dist/pine-core/svg/marker.svg +1 -0
- package/dist/pine-core/svg/marketing-filled.svg +1 -0
- package/dist/pine-core/svg/marketing-outline.svg +1 -0
- package/dist/pine-core/svg/menu-2.svg +1 -0
- package/dist/pine-core/svg/menu-alt.svg +1 -0
- package/dist/pine-core/svg/menu.svg +1 -0
- package/dist/pine-core/svg/merge.svg +1 -0
- package/dist/pine-core/svg/microphone-off.svg +1 -0
- package/dist/pine-core/svg/microphone.svg +1 -0
- package/dist/pine-core/svg/move-left.svg +1 -0
- package/dist/pine-core/svg/move-right.svg +1 -0
- package/dist/pine-core/svg/multi-pay.svg +1 -0
- package/dist/pine-core/svg/newsletter.svg +1 -0
- package/dist/pine-core/svg/one-off-session.svg +1 -0
- package/dist/pine-core/svg/one-time.svg +1 -0
- package/dist/pine-core/svg/partners-filled.svg +1 -0
- package/dist/pine-core/svg/partners-outline.svg +1 -0
- package/dist/pine-core/svg/pause-circle.svg +1 -0
- package/dist/pine-core/svg/pause.svg +1 -0
- package/dist/pine-core/svg/payout.svg +1 -0
- package/dist/pine-core/svg/pen.svg +1 -0
- package/dist/pine-core/svg/phone-portrait.svg +1 -0
- package/dist/pine-core/svg/phone-toolbar.svg +1 -0
- package/dist/pine-core/svg/play-circle.svg +1 -0
- package/dist/pine-core/svg/play-outline.svg +1 -0
- package/dist/pine-core/svg/play-store.svg +1 -0
- package/dist/pine-core/svg/play.svg +1 -0
- package/dist/pine-core/svg/plug.svg +1 -0
- package/dist/pine-core/svg/premium.svg +1 -0
- package/dist/pine-core/svg/present.svg +1 -0
- package/dist/pine-core/svg/preview-off.svg +1 -0
- package/dist/pine-core/svg/preview-on.svg +1 -0
- package/dist/pine-core/svg/products-filled.svg +1 -0
- package/dist/pine-core/svg/products-outline.svg +1 -0
- package/dist/pine-core/svg/question-circle.svg +1 -0
- package/dist/pine-core/svg/quote.svg +1 -0
- package/dist/pine-core/svg/redo.svg +1 -0
- package/dist/pine-core/svg/refresh.svg +1 -0
- package/dist/pine-core/svg/remove-circle.svg +1 -0
- package/dist/pine-core/svg/remove.svg +1 -0
- package/dist/pine-core/svg/rename.svg +1 -0
- package/dist/pine-core/svg/reset-password.svg +1 -0
- package/dist/pine-core/svg/restore.svg +1 -0
- package/dist/pine-core/svg/right-small.svg +1 -0
- package/dist/pine-core/svg/round-dollar.svg +1 -0
- package/dist/pine-core/svg/rows.svg +1 -0
- package/dist/pine-core/svg/sales-filled.svg +1 -0
- package/dist/pine-core/svg/sales-outline.svg +1 -0
- package/dist/pine-core/svg/scissor.svg +1 -0
- package/dist/pine-core/svg/screen-share-off.svg +1 -0
- package/dist/pine-core/svg/screen-share-on.svg +1 -0
- package/dist/pine-core/svg/search-small.svg +1 -0
- package/dist/pine-core/svg/search.svg +1 -0
- package/dist/pine-core/svg/send-message.svg +1 -0
- package/dist/pine-core/svg/sequences.svg +1 -0
- package/dist/pine-core/svg/series.svg +1 -0
- package/dist/pine-core/svg/settings-filled.svg +1 -0
- package/dist/pine-core/svg/settings-outline.svg +1 -0
- package/dist/pine-core/svg/share.svg +1 -0
- package/dist/pine-core/svg/skipped.svg +1 -0
- package/dist/pine-core/svg/slash-divider.svg +1 -0
- package/dist/pine-core/svg/sparkle-filled.svg +1 -0
- package/dist/pine-core/svg/sparkle.svg +1 -0
- package/dist/pine-core/svg/speaker.svg +1 -0
- package/dist/pine-core/svg/stack.svg +1 -0
- package/dist/pine-core/svg/star.svg +1 -0
- package/dist/pine-core/svg/stop.svg +1 -0
- package/dist/pine-core/svg/stopwatch.svg +1 -0
- package/dist/pine-core/svg/strikethrough.svg +1 -0
- package/dist/pine-core/svg/subscript.svg +1 -0
- package/dist/pine-core/svg/subscriptions.svg +1 -0
- package/dist/pine-core/svg/super-admin.svg +1 -0
- package/dist/pine-core/svg/superscript.svg +1 -0
- package/dist/pine-core/svg/sync.svg +1 -0
- package/dist/pine-core/svg/tablet-landscape.svg +1 -0
- package/dist/pine-core/svg/tablet-portrait.svg +1 -0
- package/dist/pine-core/svg/text-styles.svg +1 -0
- package/dist/pine-core/svg/theme-store-filled.svg +1 -0
- package/dist/pine-core/svg/theme-store.svg +1 -0
- package/dist/pine-core/svg/thumbs-down-filled.svg +1 -0
- package/dist/pine-core/svg/thumbs-down.svg +1 -0
- package/dist/pine-core/svg/thumbs-up-filled.svg +1 -0
- package/dist/pine-core/svg/thumbs-up.svg +1 -0
- package/dist/pine-core/svg/tiktok.svg +1 -0
- package/dist/pine-core/svg/trash.svg +1 -0
- package/dist/pine-core/svg/twitter.svg +1 -0
- package/dist/pine-core/svg/underline.svg +1 -0
- package/dist/pine-core/svg/undo.svg +1 -0
- package/dist/pine-core/svg/unlock.svg +1 -0
- package/dist/pine-core/svg/unmapped.svg +1 -0
- package/dist/pine-core/svg/up-small.svg +1 -0
- package/dist/pine-core/svg/upload.svg +1 -0
- package/dist/pine-core/svg/url.svg +1 -0
- package/dist/pine-core/svg/user-filled.svg +1 -0
- package/dist/pine-core/svg/user.svg +1 -0
- package/dist/pine-core/svg/users-wm.svg +1 -0
- package/dist/pine-core/svg/users.svg +1 -0
- package/dist/pine-core/svg/video-off.svg +1 -0
- package/dist/pine-core/svg/video-on.svg +1 -0
- package/dist/pine-core/svg/warning-filled.svg +1 -0
- package/dist/pine-core/svg/warning.svg +1 -0
- package/dist/pine-core/svg/website-filled.svg +1 -0
- package/dist/pine-core/svg/website-outline.svg +1 -0
- package/dist/pine-core/svg/window-paragraph.svg +1 -0
- package/dist/pine-core/svg/world.svg +1 -0
- package/dist/pine-core/svg/wrench.svg +1 -0
- package/dist/pine-core/svg/youtube.svg +1 -0
- package/dist/scripts/build-tokens.js +160 -0
- package/dist/scripts/build-tokens.js.map +1 -0
- package/dist/types/components/_internal/pds-label/pds-label.d.ts +22 -0
- package/dist/types/components/pds-avatar/pds-avatar.d.ts +42 -0
- package/dist/types/components/pds-button/pds-button.d.ts +36 -0
- package/dist/types/components/pds-checkbox/pds-checkbox.d.ts +55 -0
- package/dist/types/components/pds-chip/pds-chip.d.ts +39 -0
- package/dist/types/components/pds-copytext/pds-copytext.d.ts +34 -0
- package/dist/types/components/pds-divider/pds-divider.d.ts +17 -0
- package/dist/types/components/pds-image/pds-image.d.ts +42 -0
- package/dist/types/components/pds-input/pds-input.d.ts +59 -0
- package/dist/types/components/pds-link/pds-link.d.ts +34 -0
- package/dist/types/components/pds-progress/pds-progress.d.ts +31 -0
- package/dist/types/components/pds-radio/pds-radio.d.ts +54 -0
- package/dist/types/components/pds-sortable/pds-sortable-item/pds-sortable-item.d.ts +20 -0
- package/dist/types/components/pds-sortable/pds-sortable.d.ts +28 -0
- package/dist/types/components/pds-switch/pds-switch.d.ts +59 -0
- package/dist/types/components/pds-tabs/pds-tab/pds-tab.d.ts +35 -0
- package/dist/types/components/pds-tabs/pds-tabpanel/pds-tabpanel.d.ts +23 -0
- package/dist/types/components/pds-tabs/pds-tabs.d.ts +40 -0
- package/dist/types/components/pds-textarea/pds-textarea.d.ts +64 -0
- package/dist/types/components/pds-textarea/textarea-interface.d.ts +8 -0
- package/dist/types/components/pds-tooltip/pds-tooltip.d.ts +68 -0
- package/dist/types/components.d.ts +1566 -0
- package/dist/types/global/pine-ui-global.d.ts +1 -0
- package/dist/types/home/runner/work/pine/pine/libs/core/.stencil/scripts/build-tokens.d.ts +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/interface.d.ts +17 -0
- package/dist/types/stencil-public-runtime.d.ts +1681 -0
- package/dist/types/stories/_helpers/index.d.ts +12 -0
- package/dist/types/utils/form.d.ts +12 -0
- package/dist/types/utils/overlay.d.ts +8 -0
- package/dist/types/utils/types.d.ts +1 -0
- package/dist/types/utils/utils.d.ts +2 -0
- package/loader/cdn.js +3 -0
- package/loader/index.cjs.js +3 -0
- package/loader/index.d.ts +21 -0
- package/loader/index.es2017.js +3 -0
- package/loader/index.js +4 -0
- package/loader/package.json +11 -0
- package/package.json +115 -0
- package/readme.md +75 -0
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
import { a as getAssetPath, r as registerInstance, h, H as Host, g as getElement } from './index-a58668b3.js';
|
|
2
|
+
|
|
3
|
+
let CACHED_MAP;
|
|
4
|
+
const getIconMap = () => {
|
|
5
|
+
if (typeof window === 'undefined') {
|
|
6
|
+
return new Map();
|
|
7
|
+
}
|
|
8
|
+
else {
|
|
9
|
+
if (!CACHED_MAP) {
|
|
10
|
+
const win = window; // eslint-disable-line @typescript-eslint/no-explicit-any
|
|
11
|
+
win.PdsIcons = win.PdsIcons || {};
|
|
12
|
+
CACHED_MAP = win.PdsIcons.map = win.PdsIcons.map || new Map();
|
|
13
|
+
}
|
|
14
|
+
return CACHED_MAP;
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
const getName = (iconName, icon) => {
|
|
18
|
+
if (!iconName && icon && !isSrc(icon)) {
|
|
19
|
+
iconName = icon;
|
|
20
|
+
}
|
|
21
|
+
if (isStr(iconName)) {
|
|
22
|
+
iconName = toLower(iconName);
|
|
23
|
+
}
|
|
24
|
+
if (!isStr(iconName) || iconName.trim() === '') {
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
const invalidChars = iconName.replace(/[a-z]|-|\d/gi, '');
|
|
28
|
+
if (invalidChars != '') {
|
|
29
|
+
return null;
|
|
30
|
+
}
|
|
31
|
+
return iconName;
|
|
32
|
+
};
|
|
33
|
+
const getNamedUrl = (iconName) => {
|
|
34
|
+
const url = getIconMap().get(iconName);
|
|
35
|
+
if (url) {
|
|
36
|
+
return url;
|
|
37
|
+
}
|
|
38
|
+
return getAssetPath(`svg/${iconName}.svg`);
|
|
39
|
+
};
|
|
40
|
+
const getSrc = (src) => {
|
|
41
|
+
if (isStr(src)) {
|
|
42
|
+
src = src.trim();
|
|
43
|
+
if (isSrc(src)) {
|
|
44
|
+
return src;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return null;
|
|
48
|
+
};
|
|
49
|
+
const getUrl = (pdsIcon) => {
|
|
50
|
+
let url = getName(pdsIcon.name, pdsIcon.icon);
|
|
51
|
+
if (url) {
|
|
52
|
+
return getNamedUrl(url);
|
|
53
|
+
}
|
|
54
|
+
if (pdsIcon.icon) {
|
|
55
|
+
url = getSrc(pdsIcon.icon);
|
|
56
|
+
if (url) {
|
|
57
|
+
return url;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
return null;
|
|
61
|
+
};
|
|
62
|
+
const isSrc = (str) => str.length > 0 && /(\/|\.)/.test(str);
|
|
63
|
+
const isStr = (val) => typeof val === 'string'; // eslint-disable-line @typescript-eslint/no-explicit-any
|
|
64
|
+
const toLower = (val) => val.toLowerCase();
|
|
65
|
+
/**
|
|
66
|
+
* Elements inside of web components sometimes need to inherit global attributes
|
|
67
|
+
* set on the host. For example, the inner input in `ion-input` should inherit
|
|
68
|
+
* the `title` attribute that developers set directly on `ion-input`. This
|
|
69
|
+
* helper function should be called in componentWillLoad and assigned to a variable
|
|
70
|
+
* that is later used in the render function.
|
|
71
|
+
*
|
|
72
|
+
* This does not need to be reactive as changing attributes on the host element
|
|
73
|
+
* does not trigger a re-render.
|
|
74
|
+
*/
|
|
75
|
+
const inheritAttributes = (el, attributes = []) => {
|
|
76
|
+
const attributeObject = {}; // eslint-disable-line @typescript-eslint/no-explicit-any
|
|
77
|
+
attributes.forEach(attr => {
|
|
78
|
+
if (el.hasAttribute(attr)) {
|
|
79
|
+
const value = el.getAttribute(attr);
|
|
80
|
+
if (value !== null) {
|
|
81
|
+
attributeObject[attr] = el.getAttribute(attr);
|
|
82
|
+
}
|
|
83
|
+
el.removeAttribute(attr);
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
return attributeObject;
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
const validateContent = (svgContent) => {
|
|
90
|
+
const div = document.createElement('div');
|
|
91
|
+
div.innerHTML = svgContent;
|
|
92
|
+
// setup this way to ensure it works on our buddy IE
|
|
93
|
+
for (let i = div.childNodes.length - 1; i >= 0; i--) {
|
|
94
|
+
if (div.childNodes[i].nodeName.toLowerCase() !== 'svg') {
|
|
95
|
+
div.removeChild(div.childNodes[i]);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
// must only have 1 root element
|
|
99
|
+
const svgElm = div.firstElementChild;
|
|
100
|
+
if (svgElm && svgElm.nodeName.toLowerCase() === 'svg') {
|
|
101
|
+
const svgClass = svgElm.getAttribute('class') || '';
|
|
102
|
+
svgElm.setAttribute('class', (svgClass + ' s-ion-icon').trim());
|
|
103
|
+
// root element must be an svg
|
|
104
|
+
// lets double check we've got valid elements
|
|
105
|
+
// do not allow scripts
|
|
106
|
+
if (isValid(svgElm)) {
|
|
107
|
+
return div.innerHTML;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
return '';
|
|
111
|
+
};
|
|
112
|
+
const isValid = (elm) => {
|
|
113
|
+
if (elm.nodeType === 1) {
|
|
114
|
+
if (elm.nodeName.toLowerCase() === 'script') {
|
|
115
|
+
return false;
|
|
116
|
+
}
|
|
117
|
+
for (let i = 0; i < elm.attributes.length; i++) {
|
|
118
|
+
const name = elm.attributes[i].name;
|
|
119
|
+
if (isStr(name) && name.toLowerCase().indexOf('on') === 0) {
|
|
120
|
+
return false;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
for (let i = 0; i < elm.childNodes.length; i++) {
|
|
124
|
+
if (!isValid(elm.childNodes[i])) {
|
|
125
|
+
return false;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
return true;
|
|
130
|
+
};
|
|
131
|
+
|
|
132
|
+
const pdsIconContent = new Map();
|
|
133
|
+
const requests = new Map(); // eslint-disable-line @typescript-eslint/no-explicit-any
|
|
134
|
+
const getSvgContent = (url, sanitize = false) => {
|
|
135
|
+
let req = requests.get(url);
|
|
136
|
+
if (!req) {
|
|
137
|
+
if (typeof fetch != 'undefined' && typeof document !== 'undefined') {
|
|
138
|
+
// we don't have a request
|
|
139
|
+
req = fetch(url).then((rsp) => {
|
|
140
|
+
if (rsp.ok) {
|
|
141
|
+
return rsp.text().then((svgContent) => {
|
|
142
|
+
if (svgContent && sanitize !== false) {
|
|
143
|
+
svgContent = validateContent(svgContent);
|
|
144
|
+
}
|
|
145
|
+
pdsIconContent.set(url, svgContent || '');
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
pdsIconContent.set(url, '');
|
|
149
|
+
});
|
|
150
|
+
requests.set(url, req);
|
|
151
|
+
}
|
|
152
|
+
else {
|
|
153
|
+
pdsIconContent.set(url, '');
|
|
154
|
+
return Promise.resolve();
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
return req;
|
|
158
|
+
};
|
|
159
|
+
|
|
160
|
+
const pdsIconCss = ":host{contain:strict;display:inline-block;fill:currentColor;height:1em;width:1em}:host .pdsicon{fill:currentColor}.pds-icon-fill-none{fill:none}.icon-inner,.pds-icon,svg{display:block;height:100%;width:100%}";
|
|
161
|
+
|
|
162
|
+
const PdsIcon = class {
|
|
163
|
+
constructor(hostRef) {
|
|
164
|
+
registerInstance(this, hostRef);
|
|
165
|
+
this.inheritedAttributes = {}; // eslint-disable-line @typescript-eslint/no-explicit-any
|
|
166
|
+
this.hasAriaHidden = () => {
|
|
167
|
+
const { el } = this;
|
|
168
|
+
return el.hasAttribute('aria-hidden') && el.getAttribute('aria-hidden') === 'true';
|
|
169
|
+
};
|
|
170
|
+
this.ariaLabel = undefined;
|
|
171
|
+
this.isVisible = false;
|
|
172
|
+
this.svgContent = undefined;
|
|
173
|
+
this.color = undefined;
|
|
174
|
+
this.icon = undefined;
|
|
175
|
+
this.name = undefined;
|
|
176
|
+
this.size = 'regular';
|
|
177
|
+
}
|
|
178
|
+
iconSize() {
|
|
179
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
180
|
+
const sizes = {
|
|
181
|
+
small: '12px',
|
|
182
|
+
regular: '16px',
|
|
183
|
+
medium: '20px',
|
|
184
|
+
large: '24px',
|
|
185
|
+
};
|
|
186
|
+
if (sizes[this.size]) {
|
|
187
|
+
return sizes[this.size];
|
|
188
|
+
}
|
|
189
|
+
else {
|
|
190
|
+
return this.size;
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
componentWillLoad() {
|
|
194
|
+
this.inheritedAttributes = inheritAttributes(this.el, ['aria-label']);
|
|
195
|
+
}
|
|
196
|
+
connectedCallback() {
|
|
197
|
+
this.waitUntilVisible(this.el, '50px', () => {
|
|
198
|
+
this.isVisible = true;
|
|
199
|
+
this.loadIcon();
|
|
200
|
+
});
|
|
201
|
+
}
|
|
202
|
+
disconnectedCallback() {
|
|
203
|
+
if (this.io) {
|
|
204
|
+
this.io.disconnect();
|
|
205
|
+
this.io = undefined;
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
loadIcon() {
|
|
209
|
+
if (this.isVisible) {
|
|
210
|
+
const url = getUrl(this);
|
|
211
|
+
if (url) {
|
|
212
|
+
if (pdsIconContent.has(url)) {
|
|
213
|
+
this.svgContent = pdsIconContent.get(url);
|
|
214
|
+
}
|
|
215
|
+
else {
|
|
216
|
+
getSvgContent(url).then(() => (this.svgContent = pdsIconContent.get(url)));
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
const label = getName(this.name, this.icon);
|
|
221
|
+
if (label) {
|
|
222
|
+
this.ariaLabel = label.replace(/\-/g, ' ');
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
render() {
|
|
226
|
+
const { ariaLabel, inheritedAttributes } = this;
|
|
227
|
+
const style = {
|
|
228
|
+
height: this.iconSize(),
|
|
229
|
+
width: this.iconSize(),
|
|
230
|
+
color: this.color,
|
|
231
|
+
};
|
|
232
|
+
return (h(Host, Object.assign({ "aria-label": ariaLabel !== undefined && !this.hasAriaHidden() ? ariaLabel : null, role: "img", style: style, class: Object.assign({}, createColorClasses(this.color)) }, inheritedAttributes), this.svgContent ? (h("div", { class: "icon-inner", innerHTML: this.svgContent })) : (h("div", { class: "icon-inner" }))));
|
|
233
|
+
}
|
|
234
|
+
/*****
|
|
235
|
+
* Private Methods
|
|
236
|
+
****/
|
|
237
|
+
waitUntilVisible(el, rootMargin, cb) {
|
|
238
|
+
if (typeof window !== 'undefined' && (window).IntersectionObserver) {
|
|
239
|
+
const io = (this.io = new (window).IntersectionObserver((data) => {
|
|
240
|
+
if (data[0].isIntersecting) {
|
|
241
|
+
io.disconnect();
|
|
242
|
+
this.io = undefined;
|
|
243
|
+
cb();
|
|
244
|
+
}
|
|
245
|
+
}, { rootMargin }));
|
|
246
|
+
io.observe(el);
|
|
247
|
+
}
|
|
248
|
+
else {
|
|
249
|
+
// browser doesn't support IntersectionObserver
|
|
250
|
+
// so just fallback to always show it
|
|
251
|
+
cb();
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
static get assetsDirs() { return ["svg"]; }
|
|
255
|
+
get el() { return getElement(this); }
|
|
256
|
+
static get watchers() { return {
|
|
257
|
+
"name": ["loadIcon"],
|
|
258
|
+
"icon": ["loadIcon"]
|
|
259
|
+
}; }
|
|
260
|
+
};
|
|
261
|
+
const createColorClasses = (color) => {
|
|
262
|
+
return color
|
|
263
|
+
? {
|
|
264
|
+
'pds-color': true,
|
|
265
|
+
[`pds-color-${color}`]: true,
|
|
266
|
+
}
|
|
267
|
+
: null;
|
|
268
|
+
};
|
|
269
|
+
PdsIcon.style = pdsIconCss;
|
|
270
|
+
|
|
271
|
+
export { PdsIcon as pds_icon };
|
|
272
|
+
|
|
273
|
+
//# sourceMappingURL=pds-icon.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"pds-icon.entry.js","mappings":"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","names":[],"sources":["../../node_modules/@pine-ds/icons/dist/collection/components/pds-icon/utils.js","../../node_modules/@pine-ds/icons/dist/collection/components/pds-icon/validate.js","../../node_modules/@pine-ds/icons/dist/collection/components/pds-icon/request.js","../../node_modules/@pine-ds/icons/dist/collection/components/pds-icon/pds-icon.css?tag=pds-icon&encapsulation=shadow","../../node_modules/@pine-ds/icons/dist/collection/components/pds-icon/pds-icon.js"],"sourcesContent":["import { getAssetPath } from \"@stencil/core\";\nlet CACHED_MAP;\nexport const addIcons = (icons) => {\n const map = getIconMap();\n Object.keys(icons).forEach(name => map.set(name, icons[name]));\n};\nexport const getIconMap = () => {\n if (typeof window === 'undefined') {\n return new Map();\n }\n else {\n if (!CACHED_MAP) {\n const win = window; // eslint-disable-line @typescript-eslint/no-explicit-any\n win.PdsIcons = win.PdsIcons || {};\n CACHED_MAP = win.PdsIcons.map = win.PdsIcons.map || new Map();\n }\n return CACHED_MAP;\n }\n};\nexport const getName = (iconName, icon) => {\n if (!iconName && icon && !isSrc(icon)) {\n iconName = icon;\n }\n if (isStr(iconName)) {\n iconName = toLower(iconName);\n }\n if (!isStr(iconName) || iconName.trim() === '') {\n return null;\n }\n const invalidChars = iconName.replace(/[a-z]|-|\\d/gi, '');\n if (invalidChars != '') {\n return null;\n }\n return iconName;\n};\nconst getNamedUrl = (iconName) => {\n const url = getIconMap().get(iconName);\n if (url) {\n return url;\n }\n return getAssetPath(`svg/${iconName}.svg`);\n};\nexport const getSrc = (src) => {\n if (isStr(src)) {\n src = src.trim();\n if (isSrc(src)) {\n return src;\n }\n }\n return null;\n};\nexport const getUrl = (pdsIcon) => {\n let url = getName(pdsIcon.name, pdsIcon.icon);\n if (url) {\n return getNamedUrl(url);\n }\n if (pdsIcon.icon) {\n url = getSrc(pdsIcon.icon);\n if (url) {\n return url;\n }\n }\n return null;\n};\nexport const isSrc = (str) => str.length > 0 && /(\\/|\\.)/.test(str);\nexport const isStr = (val) => typeof val === 'string'; // eslint-disable-line @typescript-eslint/no-explicit-any\nexport const toLower = (val) => val.toLowerCase();\n/**\n * Elements inside of web components sometimes need to inherit global attributes\n * set on the host. For example, the inner input in `ion-input` should inherit\n * the `title` attribute that developers set directly on `ion-input`. This\n * helper function should be called in componentWillLoad and assigned to a variable\n * that is later used in the render function.\n *\n * This does not need to be reactive as changing attributes on the host element\n * does not trigger a re-render.\n */\nexport const inheritAttributes = (el, attributes = []) => {\n const attributeObject = {}; // eslint-disable-line @typescript-eslint/no-explicit-any\n attributes.forEach(attr => {\n if (el.hasAttribute(attr)) {\n const value = el.getAttribute(attr);\n if (value !== null) {\n attributeObject[attr] = el.getAttribute(attr);\n }\n el.removeAttribute(attr);\n }\n });\n return attributeObject;\n};\n//# sourceMappingURL=utils.js.map\n","import { isStr } from \"./utils\";\nexport const validateContent = (svgContent) => {\n const div = document.createElement('div');\n div.innerHTML = svgContent;\n // setup this way to ensure it works on our buddy IE\n for (let i = div.childNodes.length - 1; i >= 0; i--) {\n if (div.childNodes[i].nodeName.toLowerCase() !== 'svg') {\n div.removeChild(div.childNodes[i]);\n }\n }\n // must only have 1 root element\n const svgElm = div.firstElementChild;\n if (svgElm && svgElm.nodeName.toLowerCase() === 'svg') {\n const svgClass = svgElm.getAttribute('class') || '';\n svgElm.setAttribute('class', (svgClass + ' s-ion-icon').trim());\n // root element must be an svg\n // lets double check we've got valid elements\n // do not allow scripts\n if (isValid(svgElm)) {\n return div.innerHTML;\n }\n }\n return '';\n};\nexport const isValid = (elm) => {\n if (elm.nodeType === 1) {\n if (elm.nodeName.toLowerCase() === 'script') {\n return false;\n }\n for (let i = 0; i < elm.attributes.length; i++) {\n const name = elm.attributes[i].name;\n if (isStr(name) && name.toLowerCase().indexOf('on') === 0) {\n return false;\n }\n }\n for (let i = 0; i < elm.childNodes.length; i++) {\n if (!isValid(elm.childNodes[i])) {\n return false;\n }\n }\n }\n return true;\n};\n//# sourceMappingURL=validate.js.map\n","import { validateContent } from \"./validate\";\nexport const pdsIconContent = new Map();\nconst requests = new Map(); // eslint-disable-line @typescript-eslint/no-explicit-any\nexport const getSvgContent = (url, sanitize = false) => {\n let req = requests.get(url);\n if (!req) {\n if (typeof fetch != 'undefined' && typeof document !== 'undefined') {\n // we don't have a request\n req = fetch(url).then((rsp) => {\n if (rsp.ok) {\n return rsp.text().then((svgContent) => {\n if (svgContent && sanitize !== false) {\n svgContent = validateContent(svgContent);\n }\n pdsIconContent.set(url, svgContent || '');\n });\n }\n pdsIconContent.set(url, '');\n });\n requests.set(url, req);\n }\n else {\n pdsIconContent.set(url, '');\n return Promise.resolve();\n }\n }\n return req;\n};\n//# sourceMappingURL=request.js.map\n",":host {\n contain: strict;\n display: inline-block;\n fill: currentColor;\n height: 1em;\n width: 1em;\n}\n:host .pdsicon {\n fill: currentColor;\n}\n\n.pds-icon-fill-none {\n fill: none;\n}\n\n.icon-inner,\n.pds-icon,\nsvg {\n display: block;\n height: 100%;\n width: 100%;\n}","import { Build, Host, h } from \"@stencil/core\";\nimport { getSvgContent, pdsIconContent } from \"./request\";\nimport { getName, getUrl, inheritAttributes } from \"./utils\";\nexport class PdsIcon {\n constructor() {\n this.inheritedAttributes = {}; // eslint-disable-line @typescript-eslint/no-explicit-any\n this.hasAriaHidden = () => {\n const { el } = this;\n return el.hasAttribute('aria-hidden') && el.getAttribute('aria-hidden') === 'true';\n };\n this.ariaLabel = undefined;\n this.isVisible = false;\n this.svgContent = undefined;\n this.color = undefined;\n this.icon = undefined;\n this.name = undefined;\n this.size = 'regular';\n }\n iconSize() {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const sizes = {\n small: '12px',\n regular: '16px',\n medium: '20px',\n large: '24px',\n };\n if (sizes[this.size]) {\n return sizes[this.size];\n }\n else {\n return this.size;\n }\n }\n componentWillLoad() {\n this.inheritedAttributes = inheritAttributes(this.el, ['aria-label']);\n }\n connectedCallback() {\n this.waitUntilVisible(this.el, '50px', () => {\n this.isVisible = true;\n this.loadIcon();\n });\n }\n disconnectedCallback() {\n if (this.io) {\n this.io.disconnect();\n this.io = undefined;\n }\n }\n loadIcon() {\n if (Build.isBrowser && this.isVisible) {\n const url = getUrl(this);\n if (url) {\n if (pdsIconContent.has(url)) {\n this.svgContent = pdsIconContent.get(url);\n }\n else {\n getSvgContent(url).then(() => (this.svgContent = pdsIconContent.get(url)));\n }\n }\n }\n const label = getName(this.name, this.icon);\n if (label) {\n this.ariaLabel = label.replace(/\\-/g, ' ');\n }\n }\n render() {\n const { ariaLabel, inheritedAttributes } = this;\n const style = {\n height: this.iconSize(),\n width: this.iconSize(),\n color: this.color,\n };\n return (h(Host, Object.assign({ \"aria-label\": ariaLabel !== undefined && !this.hasAriaHidden() ? ariaLabel : null, role: \"img\", style: style, class: Object.assign({}, createColorClasses(this.color)) }, inheritedAttributes), Build.isBrowser && this.svgContent ? (h(\"div\", { class: \"icon-inner\", innerHTML: this.svgContent })) : (h(\"div\", { class: \"icon-inner\" }))));\n }\n /*****\n * Private Methods\n ****/\n waitUntilVisible(el, rootMargin, cb) {\n if (Build.isBrowser && typeof window !== 'undefined' && (window).IntersectionObserver) {\n const io = (this.io = new (window).IntersectionObserver((data) => {\n if (data[0].isIntersecting) {\n io.disconnect();\n this.io = undefined;\n cb();\n }\n }, { rootMargin }));\n io.observe(el);\n }\n else {\n // browser doesn't support IntersectionObserver\n // so just fallback to always show it\n cb();\n }\n }\n static get is() { return \"pds-icon\"; }\n static get encapsulation() { return \"shadow\"; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"pds-icon.scss\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"pds-icon.css\"]\n };\n }\n static get assetsDirs() { return [\"svg\"]; }\n static get properties() {\n return {\n \"color\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"\\nThe color of the icon\"\n },\n \"attribute\": \"color\",\n \"reflect\": false\n },\n \"icon\": {\n \"type\": \"any\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"any\",\n \"resolved\": \"any\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"This a combination of both `name` and `src`. If a `src` url is detected\\nit will set the `src` property. Otherwise it assumes it's a built-in named\\nSVG and set the `name` property.\"\n },\n \"attribute\": \"icon\",\n \"reflect\": false\n },\n \"name\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The name of the icon to use from\\nthe built-in set.\"\n },\n \"attribute\": \"name\",\n \"reflect\": true\n },\n \"size\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"| 'small' // 12px\\n | 'regular' // 16px\\n | 'medium' // 20px\\n | 'large' // 24px\\n | 'auto'\\n | string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The size of the icon. This can be\\n'small', 'regular', 'medium', large, or a\\ncustom value (40px, 1rem, etc)\"\n },\n \"attribute\": \"size\",\n \"reflect\": true,\n \"defaultValue\": \"'regular'\"\n }\n };\n }\n static get states() {\n return {\n \"ariaLabel\": {},\n \"isVisible\": {},\n \"svgContent\": {}\n };\n }\n static get elementRef() { return \"el\"; }\n static get watchers() {\n return [{\n \"propName\": \"name\",\n \"methodName\": \"loadIcon\"\n }, {\n \"propName\": \"icon\",\n \"methodName\": \"loadIcon\"\n }];\n }\n}\nconst createColorClasses = (color) => {\n return color\n ? {\n 'pds-color': true,\n [`pds-color-${color}`]: true,\n }\n : null;\n};\n//# sourceMappingURL=pds-icon.js.map\n"],"version":3}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { r as registerInstance, h, H as Host } from './index-a58668b3.js';
|
|
2
|
+
|
|
3
|
+
const pdsImageCss = ":host{--image-aspect-ratio:auto;display:inline-block}img{aspect-ratio:var(--image-aspect-ratio);height:auto;width:100%}";
|
|
4
|
+
|
|
5
|
+
const PdsImage = class {
|
|
6
|
+
constructor(hostRef) {
|
|
7
|
+
registerInstance(this, hostRef);
|
|
8
|
+
this.alt = '';
|
|
9
|
+
this.componentId = undefined;
|
|
10
|
+
this.height = undefined;
|
|
11
|
+
this.loading = 'eager';
|
|
12
|
+
this.sizes = undefined;
|
|
13
|
+
this.src = undefined;
|
|
14
|
+
this.srcset = undefined;
|
|
15
|
+
this.width = undefined;
|
|
16
|
+
}
|
|
17
|
+
render() {
|
|
18
|
+
return (h(Host, { class: {
|
|
19
|
+
'pds-image': true,
|
|
20
|
+
}, id: this.componentId }, h("img", { alt: this.alt, height: this.height, loading: this.loading, sizes: this.sizes, src: this.src, srcset: this.srcset, width: this.width })));
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
PdsImage.style = pdsImageCss;
|
|
24
|
+
|
|
25
|
+
export { PdsImage as pds_image };
|
|
26
|
+
|
|
27
|
+
//# sourceMappingURL=pds-image.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"pds-image.entry.js","mappings":";;AAAA,MAAM,WAAW,GAAG,yHAAyH;;MCOhI,QAAQ;;;mBAKJ,EAAE;;;uBAiBoB,OAAO;;;;;;IA0B5C,MAAM;QACJ,QACE,EAAC,IAAI,IACH,KAAK,EAAE;gBACL,WAAW,EAAE,IAAI;aAClB,EACD,EAAE,EAAE,IAAI,CAAC,WAAW,IAEpB,WACE,GAAG,EAAE,IAAI,CAAC,GAAG,EACb,MAAM,EAAE,IAAI,CAAC,MAAM,EACnB,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,GAAG,EAAE,IAAI,CAAC,GAAG,EACb,MAAM,EAAE,IAAI,CAAC,MAAM,EACnB,KAAK,EAAE,IAAI,CAAC,KAAK,GACjB,CACG,EACP;KACH;;;;;;","names":[],"sources":["src/components/pds-image/pds-image.scss?tag=pds-image&encapsulation=shadow","src/components/pds-image/pds-image.tsx"],"sourcesContent":[":host {\n /**\n * @prop --image-aspect-ratio: The image's aspect ratio.\n */\n\n --image-aspect-ratio: auto;\n display: inline-block;\n}\n\nimg {\n aspect-ratio: var(--image-aspect-ratio);\n height: auto;\n width: 100%;\n}","import { Component, Host, h, Prop } from '@stencil/core';\n\n@Component({\n tag: 'pds-image',\n styleUrl: 'pds-image.scss',\n shadow: true,\n})\nexport class PdsImage {\n /**\n * The image's alt tag. If none is provided,\n * it will default to an empty string.\n */\n @Prop() alt? = '';\n\n /**\n * A unique identifier used for the underlying component `id` attribute.\n */\n @Prop() componentId: string;\n\n /**\n * The height of the image in pixels. Setting this will\n * devote space in the layout to prevent layout\n * shifts when the image is loaded.\n */\n @Prop() height?: number;\n\n /**\n * Indicates how the browser should load the image.\n */\n @Prop() loading?: 'eager' | 'lazy' = 'eager';\n\n /**\n * Determines the intended display size of an image\n * within certian breakpoints. Has no effect if `srcset`\n * is not set or value has no width descriptor.\n */\n @Prop() sizes?: string;\n\n /**\n * The image's source.\n */\n @Prop() src: string;\n\n /**\n * A set of image sources for the browser to use.\n */\n @Prop() srcset?: string\n\n /**\n * The width of the image in pixels. Setting this will\n * devote space in the layout to prevent layout\n * shifts when the image is loaded.\n */\n @Prop() width?: number;\n\n render() {\n return (\n <Host\n class={{\n 'pds-image': true,\n }}\n id={this.componentId}\n >\n <img\n alt={this.alt}\n height={this.height}\n loading={this.loading}\n sizes={this.sizes}\n src={this.src}\n srcset={this.srcset}\n width={this.width}\n />\n </Host>\n );\n }\n}\n"],"version":3}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { r as registerInstance, c as createEvent, h, H as Host } from './index-a58668b3.js';
|
|
2
|
+
import { P as PdsLabel, a as assignDescription, m as messageId } from './pds-label-a26dd876.js';
|
|
3
|
+
|
|
4
|
+
const pdsInputCss = ":host{--background:var(--pine-color-base-white);--background-disabled:var(--pine-color-neutral-grey-100);--color:var(--pine-color-neutral-charcoal-500);--color-error:var(--pine-color-red-300);--color-placeholder:var(--pine-color-neutral-charcoal-200);--color-disabled:var(--pine-color-neutral-grey-500);--border-color-default:var(--pine-color-neutral-grey-400);--border-color-hover:var(--pine-color-neutral-grey-500);--focus-box-shadow:0 0 0 4px var(--pine-color-primary-200);--label-font-size:var(--pine-font-size-body);--label-font-weight:var(--pine-font-weight-medium);--label-line-height:var(--pine-line-height-md);--label-margin-block-end:var(--pine-spacing-xs);--field-font-size:var(--pine-font-size-body);--field-font-weight:var(--pine-font-weight-regular);--field-line-height:var(--pine-line-height-md);--field-padding-block:var(--pine-spacing-xs);--field-padding-inline:var(--pine-spacing-sm);--helper-message-font-size:var(--pine-font-size-body);--helper-message-font-weight:var(--pine-font-weight-regular);--helper-message-line-height:var(--pine-line-height-sm);--helper-message-margin-top:var(--pine-spacing-xs);display:inline}.pds-input{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}label{font-size:var(--label-font-size);font-weight:var(--label-font-weight);line-height:var(--label-line-height);-webkit-margin-after:var(--label-margin-block-end);margin-block-end:var(--label-margin-block-end)}input{border:1px solid var(--border-color-default);border-radius:10px;font-size:var(--field-font-size);font-weight:var(--field-font-weight);line-height:var(--field-line-height);padding:var(--field-padding-block) var(--field-padding-inline);}input:disabled{background-color:var(--background-disabled);color:var(--color-disabled);cursor:not-allowed}input:hover{border-color:var(--border-color-hover)}input:focus{-webkit-box-shadow:var(--focus-box-shadow);box-shadow:var(--focus-box-shadow);outline:none}input::-webkit-input-placeholder{color:var(--color-placeholder)}input::-moz-placeholder{color:var(--color-placeholder)}input::-moz-placeholder{color:var(--color-placeholder)}input:-ms-input-placeholder{color:var(--color-placeholder)}input:has(~.pds-input__error-message){border-color:var(--color-error)}.pds-input__error-message,.pds-input__helper-message{font-size:var(--helper-message-font-size);font-weight:var(--helper-message-font-weight);line-height:var(--helper-message-line-height);-webkit-margin-after:0;margin-block-end:0;-webkit-margin-before:var(--helper-message-margin-top);margin-block-start:var(--helper-message-margin-top)}.pds-input__error-message{color:var(--color-error)}";
|
|
5
|
+
|
|
6
|
+
const PdsInput = class {
|
|
7
|
+
constructor(hostRef) {
|
|
8
|
+
registerInstance(this, hostRef);
|
|
9
|
+
this.pdsInput = createEvent(this, "pdsInput", 7);
|
|
10
|
+
this.onInputEvent = (ev) => {
|
|
11
|
+
const input = ev.target;
|
|
12
|
+
if (input) {
|
|
13
|
+
this.value = input.value || '';
|
|
14
|
+
}
|
|
15
|
+
this.pdsInput.emit(ev);
|
|
16
|
+
};
|
|
17
|
+
this.componentId = undefined;
|
|
18
|
+
this.disabled = undefined;
|
|
19
|
+
this.errorMessage = undefined;
|
|
20
|
+
this.helperMessage = undefined;
|
|
21
|
+
this.invalid = undefined;
|
|
22
|
+
this.label = undefined;
|
|
23
|
+
this.name = undefined;
|
|
24
|
+
this.placeholder = undefined;
|
|
25
|
+
this.readonly = undefined;
|
|
26
|
+
this.required = undefined;
|
|
27
|
+
this.type = 'text';
|
|
28
|
+
this.value = undefined;
|
|
29
|
+
}
|
|
30
|
+
render() {
|
|
31
|
+
return (h(Host, { "aria-disabled": this.disabled ? 'true' : null }, h("div", { class: "pds-input" }, h(PdsLabel, { htmlFor: this.componentId, text: this.label }), h("input", { class: "pds-input__field", "aria-describedby": assignDescription(this.componentId, this.invalid, this.helperMessage), "aria-invalid": this.invalid ? "true" : undefined, disabled: this.disabled, id: this.componentId, name: this.name, placeholder: this.placeholder, readOnly: this.readonly, required: this.required, type: this.type, value: this.value, onInput: this.onInputEvent }), this.helperMessage &&
|
|
32
|
+
h("p", { class: "pds-input__helper-message", id: messageId(this.componentId, 'helper') }, this.helperMessage), this.errorMessage &&
|
|
33
|
+
h("p", { class: "pds-input__error-message", id: messageId(this.componentId, 'error'), "aria-live": "assertive" }, this.errorMessage))));
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
PdsInput.style = pdsInputCss;
|
|
37
|
+
|
|
38
|
+
export { PdsInput as pds_input };
|
|
39
|
+
|
|
40
|
+
//# sourceMappingURL=pds-input.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"pds-input.entry.js","mappings":";;;AAAA,MAAM,WAAW,GAAG,2kFAA2kF;;MCSllF,QAAQ;;;;QAoEX,iBAAY,GAAG,CAAC,EAAS;YAC/B,MAAM,KAAK,GAAG,EAAE,CAAC,MAAiC,CAAC;YACnD,IAAI,KAAK,EAAE;gBACT,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;aAChC;YACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAgB,CAAC,CAAC;SACtC,CAAC;;;;;;;;;;;oBAlBa,MAAM;;;IAoBrB,MAAM;QACJ,QACE,EAAC,IAAI,qBACY,IAAI,CAAC,QAAQ,GAAG,MAAM,GAAG,IAAI,IAE5C,WAAK,KAAK,EAAC,WAAW,IACpB,EAAC,QAAQ,IAAC,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,GAAI,EACzD,aAAO,KAAK,EAAC,kBAAkB,sBACX,iBAAiB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,kBACzE,IAAI,CAAC,OAAO,GAAG,MAAM,GAAG,SAAS,EAC/C,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,EAAE,EAAE,IAAI,CAAC,WAAW,EACpB,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,OAAO,EAAE,IAAI,CAAC,YAAY,GAC1B,EACD,IAAI,CAAC,aAAa;YACjB,SACE,KAAK,EAAC,2BAA2B,EACjC,EAAE,EAAE,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,IAExC,IAAI,CAAC,aAAa,CACjB,EAEL,IAAI,CAAC,YAAY;YAChB,SACE,KAAK,EAAC,0BAA0B,EAChC,EAAE,EAAE,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,eAC9B,WAAW,IAEpB,IAAI,CAAC,YAAY,CAChB,CAEF,CACD,EACP;KACH;;;;;;","names":[],"sources":["src/components/pds-input/pds-input.scss?tag=pds-input&encapsulation=shadow","src/components/pds-input/pds-input.tsx"],"sourcesContent":[":host {\n --background: var(--pine-color-base-white);\n --background-disabled: var(--pine-color-neutral-grey-100);\n\n --color: var(--pine-color-neutral-charcoal-500);\n --color-error: var(--pine-color-red-300);\n --color-placeholder: var(--pine-color-neutral-charcoal-200);\n --color-disabled: var(--pine-color-neutral-grey-500);\n\n --border-color-default: var(--pine-color-neutral-grey-400);\n --border-color-hover: var(--pine-color-neutral-grey-500);\n\n --focus-box-shadow: 0 0 0 4px var(--pine-color-primary-200);\n\n --label-font-size: var(--pine-font-size-body);\n --label-font-weight: var(--pine-font-weight-medium);\n --label-line-height: var(--pine-line-height-md);\n --label-margin-block-end: var(--pine-spacing-xs);\n\n --field-font-size: var(--pine-font-size-body);\n --field-font-weight: var(--pine-font-weight-regular);\n --field-line-height: var(--pine-line-height-md);\n --field-padding-block: var(--pine-spacing-xs);\n --field-padding-inline: var(--pine-spacing-sm);\n\n --helper-message-font-size: var(--pine-font-size-body);\n --helper-message-font-weight: var(--pine-font-weight-regular);\n --helper-message-line-height: var(--pine-line-height-sm);\n --helper-message-margin-top: var(--pine-spacing-xs);\n\n display: inline;\n}\n\n.pds-input {\n display: flex;\n flex-direction: column;\n}\n\nlabel {\n font-size: var(--label-font-size);\n font-weight: var(--label-font-weight);\n line-height: var(--label-line-height);\n margin-block-end: var(--label-margin-block-end);\n}\n\ninput {\n border: 1px solid var(--border-color-default);\n border-radius: 10px;\n font-size: var(--field-font-size);\n font-weight: var(--field-font-weight);\n line-height: var(--field-line-height);\n padding: var(--field-padding-block) var(--field-padding-inline);\n\n &:disabled {\n background-color: var(--background-disabled);\n color: var(--color-disabled);\n cursor: not-allowed;\n }\n\n &:hover {\n border-color: var(--border-color-hover);\n }\n\n &:focus {\n box-shadow: var(--focus-box-shadow);\n outline: none;\n }\n\n /* stylelint-disable */\n &::-webkit-input-placeholder {\n color: var(--color-placeholder);\n }\n\n &::-moz-placeholder {\n color: var(--color-placeholder);\n }\n\n &::-moz-placeholder {\n color: var(--color-placeholder);\n }\n\n &:-ms-input-placeholder {\n color: var(--color-placeholder);\n }\n\n &:has(~.pds-input__error-message) {\n border-color: var(--color-error);\n }\n /* stylelint-enable */\n}\n\n.pds-input__error-message,\n.pds-input__helper-message {\n font-size: var(--helper-message-font-size);\n font-weight: var(--helper-message-font-weight);\n line-height: var(--helper-message-line-height);\n margin-block-end: 0;\n margin-block-start: var(--helper-message-margin-top);\n}\n\n.pds-input__error-message {\n color: var(--color-error);\n}\n","import { Component, Event, EventEmitter, h, Host, Prop } from '@stencil/core';\nimport { assignDescription, messageId } from '../../utils/form';\nimport { PdsLabel } from '../_internal/pds-label/pds-label';\n\n@Component({\n tag: 'pds-input',\n styleUrl: 'pds-input.scss',\n shadow: true,\n})\nexport class PdsInput {\n /**\n * A unique identifier used for the underlying component `id` attribute.\n */\n @Prop() componentId!: string;\n\n /**\n * Indicates whether or not the input field is disabled.\n */\n @Prop() disabled?: boolean;\n\n /**\n * Specifies the error message and provides an error-themed treatment to the field.\n */\n @Prop() errorMessage?: string;\n\n /**\n * Displays a message or hint below the input field.\n */\n @Prop() helperMessage?: string;\n\n /**\n * Indicates whether or not the input field is invalid or throws an error.\n */\n @Prop() invalid?: boolean;\n\n /**\n * Text to be displayed as the input label.\n */\n @Prop() label?: string;\n\n /**\n * Specifies the name. Submitted with the form name/value pair.\n */\n @Prop() name?: string;\n\n /**\n * Specifies a short hint that describes the expected value of the input field.\n */\n @Prop() placeholder?: string;\n\n /**\n * Indicates whether or not the input field is readonly.\n */\n @Prop() readonly?: boolean;\n\n /**\n * Indicates whether or not the input field is required.\n */\n @Prop() required?: boolean;\n\n /**\n * Determines the type of control that will be displayed\n `'email'`, `'number'`, `'password'`, `'tel'`, `'text'`\n * @defaultValue \"text\"\n */\n @Prop() type = 'text';\n\n /**\n * The value of the input.\n */\n @Prop({mutable: true}) value?: string;\n\n /**\n * Emitted when a keyboard input occurred.\n */\n @Event() pdsInput: EventEmitter<InputEvent>;\n\n private onInputEvent = (ev: Event) => {\n const input = ev.target as HTMLInputElement | null;\n if (input) {\n this.value = input.value || '';\n }\n this.pdsInput.emit(ev as InputEvent);\n };\n\n render() {\n return (\n <Host\n aria-disabled={this.disabled ? 'true' : null}\n >\n <div class=\"pds-input\">\n <PdsLabel htmlFor={this.componentId} text={this.label} />\n <input class=\"pds-input__field\"\n aria-describedby={assignDescription(this.componentId, this.invalid, this.helperMessage)}\n aria-invalid={this.invalid ? \"true\" : undefined}\n disabled={this.disabled}\n id={this.componentId}\n name={this.name}\n placeholder={this.placeholder}\n readOnly={this.readonly}\n required={this.required}\n type={this.type}\n value={this.value}\n onInput={this.onInputEvent}\n />\n {this.helperMessage &&\n <p\n class=\"pds-input__helper-message\"\n id={messageId(this.componentId, 'helper')}\n >\n {this.helperMessage}\n </p>\n }\n {this.errorMessage &&\n <p\n class=\"pds-input__error-message\"\n id={messageId(this.componentId, 'error')}\n aria-live=\"assertive\"\n >\n {this.errorMessage}\n </p>\n }\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { h } from './index-a58668b3.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Create id for messaging
|
|
5
|
+
*/
|
|
6
|
+
const messageId = (id, messageType) => {
|
|
7
|
+
return `${id}__${messageType}-message`;
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* Assign aria-description id to relate messages with form element
|
|
11
|
+
*/
|
|
12
|
+
const assignDescription = (id, invalid, helperMessage) => {
|
|
13
|
+
if (!helperMessage)
|
|
14
|
+
return;
|
|
15
|
+
let relatedId = messageId(id, 'helper');
|
|
16
|
+
if (invalid)
|
|
17
|
+
relatedId = messageId(id, 'error');
|
|
18
|
+
return relatedId;
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Updates the `invalid` prop of a form element based on it's values validity
|
|
22
|
+
*/
|
|
23
|
+
const isRequired = (target, component) => {
|
|
24
|
+
if (!target || !component)
|
|
25
|
+
return;
|
|
26
|
+
if (component.required === true) {
|
|
27
|
+
(target.checkValidity() === false) ? component.invalid = true : component.invalid = false;
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Returns markup for an input label.
|
|
33
|
+
* @internal
|
|
34
|
+
*/
|
|
35
|
+
const PdsLabel = ({ classNames, htmlFor, text }) => (h("label", { class: classNames, htmlFor: htmlFor }, text));
|
|
36
|
+
|
|
37
|
+
export { PdsLabel as P, assignDescription as a, isRequired as i, messageId as m };
|
|
38
|
+
|
|
39
|
+
//# sourceMappingURL=pds-label-a26dd876.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"pds-label-a26dd876.js","mappings":";;AAAA;;;MAGa,SAAS,GAAG,CAAC,EAAU,EAAE,WAAmB;IACvD,OAAO,GAAG,EAAE,KAAK,WAAW,UAAU,CAAC;AACzC,EAAE;AAEF;;;MAGa,iBAAiB,GAAG,CAAC,EAAU,EAAE,OAAgB,EAAE,aAAqB;IACnF,IAAI,CAAC,aAAa;QAAE,OAAM;IAE1B,IAAI,SAAS,GAAG,SAAS,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAA;IAEvC,IAAI,OAAO;QAAE,SAAS,GAAG,SAAS,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IAEhD,OAAO,SAAS,CAAC;AACnB,EAAE;AAEF;;;MAGa,UAAU,GAAG,CAAC,MAAM,EAAE,SAAS;IAC1C,IAAK,CAAC,MAAM,IAAI,CAAC,SAAS;QAAG,OAAO;IACpC,IAAI,SAAS,CAAC,QAAQ,KAAK,IAAI,EAAE;QAC/B,CAAC,MAAM,CAAC,aAAa,EAAE,KAAK,KAAK,IAAI,SAAS,CAAC,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC,OAAO,GAAG,KAAK,CAAC;KAC3F;AACH;;ACVA;;;;MAIa,QAAQ,GAAoC,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,MACrF,aAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,IAAG,IAAI,CAAS;;;;","names":[],"sources":["src/utils/form.ts","src/components/_internal/pds-label/pds-label.tsx"],"sourcesContent":["/**\n * Create id for messaging\n */\nexport const messageId = (id: string, messageType: string) => {\n return `${id}__${messageType}-message`;\n};\n\n/**\n * Assign aria-description id to relate messages with form element\n */\nexport const assignDescription = (id: string, invalid: boolean, helperMessage: string) => {\n if (!helperMessage) return\n\n let relatedId = messageId(id, 'helper')\n\n if (invalid) relatedId = messageId(id, 'error');\n\n return relatedId;\n};\n\n/**\n * Updates the `invalid` prop of a form element based on it's values validity\n */\nexport const isRequired = (target, component) => {\n if ( !target || !component ) return;\n if (component.required === true) {\n (target.checkValidity() === false) ? component.invalid = true : component.invalid = false;\n }\n}\n","import { FunctionalComponent, h } from '@stencil/core';\n\n/**\n * Props for the input label.\n */\ninterface LabelProps {\n classNames?: string,\n /**\n * Corresponds to the 'for' attribute on a label. Useful for\n * associating a label with a specific input.\n */\n htmlFor: string,\n /**\n * Label text displayed.\n */\n text: string,\n}\n\n/**\n * Returns markup for an input label.\n * @internal\n */\nexport const PdsLabel: FunctionalComponent<LabelProps> = ({ classNames, htmlFor, text }) => (\n <label class={classNames} htmlFor={htmlFor}>{text}</label>\n);\n"],"version":3}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { r as registerInstance, h } from './index-a58668b3.js';
|
|
2
|
+
|
|
3
|
+
const pdsLinkCss = ":host{--border-radius:var(--pine-border-radius-sm);--color:var(--pine-color-neutral-charcoal-400);--font-size:var(--pine-font-size-body);--font-size-sm:var(--pine-font-size-body-sm);--font-size-xs:var(--pine-font-size-body-xs);--font-weight:var(--pine-font-weight-medium);--margin-inline-start:var(--pine-spacing-xxs);--outline:4px solid var(--pine-color-primary-200);--svg-lg:15px;--svg-md:13px;--svg-sm:11px;display:inline}:host pds-icon{-webkit-margin-start:var(--margin-inline-start);margin-inline-start:var(--margin-inline-start)}.pds-link{-ms-flex-align:center;align-items:center;color:var(--color);display:-ms-inline-flexbox;display:inline-flex;font-weight:inherit}.pds-link:focus{border-radius:var(--border-radius);outline:var(--outline)}.pds-link--sm{font-size:var(--font-size-xs)}.pds-link--sm pds-icon{height:var(--svg-sm);width:var(--svg-sm)}.pds-link--md{font-size:var(--font-size-sm)}.pds-link--md pds-icon{height:var(--svg-md);width:var(--svg-md)}.pds-link--lg{font-size:var(--font-size)}.pds-link--lg pds-icon{height:var(--svg-lg);width:var(--svg-lg)}.pds-link--plain{font-weight:var(--font-weight);text-decoration:none}.pds-link--plain:hover{text-decoration:underline}.pds-link--default{text-decoration:underline}.pds-link--default:hover{text-decoration:none}";
|
|
4
|
+
|
|
5
|
+
const PdsLink = class {
|
|
6
|
+
constructor(hostRef) {
|
|
7
|
+
registerInstance(this, hostRef);
|
|
8
|
+
this.componentId = undefined;
|
|
9
|
+
this.external = false;
|
|
10
|
+
this.variant = 'inline';
|
|
11
|
+
this.fontSize = 'lg';
|
|
12
|
+
this.href = undefined;
|
|
13
|
+
}
|
|
14
|
+
classNames() {
|
|
15
|
+
const classNames = ['pds-link'];
|
|
16
|
+
if (this.fontSize) {
|
|
17
|
+
classNames.push('pds-link--' + this.fontSize);
|
|
18
|
+
}
|
|
19
|
+
if (this.variant) {
|
|
20
|
+
classNames.push('pds-link--' + this.variant);
|
|
21
|
+
}
|
|
22
|
+
return classNames.join(' ');
|
|
23
|
+
}
|
|
24
|
+
render() {
|
|
25
|
+
return (h("a", { class: this.classNames(), href: this.href, id: this.componentId, target: this.external ? '_blank' : undefined }, h("slot", null, this.href), this.external &&
|
|
26
|
+
h("pds-icon", { name: "launch", size: this.fontSize })));
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
PdsLink.style = pdsLinkCss;
|
|
30
|
+
|
|
31
|
+
export { PdsLink as pds_link };
|
|
32
|
+
|
|
33
|
+
//# sourceMappingURL=pds-link.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"pds-link.entry.js","mappings":";;AAAA,MAAM,UAAU,GAAG,8vCAA8vC;;MCUpwC,OAAO;;;;wBAUC,KAAK;uBAMc,QAAQ;wBAUP,IAAI;;;IAOnC,UAAU;QAChB,MAAM,UAAU,GAAG,CAAC,UAAU,CAAC,CAAC;QAEhC,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,UAAU,CAAC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;SAC/C;QAED,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,UAAU,CAAC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;SAC9C;QAED,OAAO,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAC7B;IAED,MAAM;QAEJ,QACE,SACE,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,EACxB,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,EAAE,EAAE,IAAI,CAAC,WAAW,EACpB,MAAM,EAAE,IAAI,CAAC,QAAQ,GAAG,QAAQ,GAAG,SAAS,IAE5C,gBAAO,IAAI,CAAC,IAAI,CAAQ,EACvB,IAAI,CAAC,QAAQ;YACZ,gBAAU,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,GAAa,CAExD,EACJ;KACH;;;;;;","names":[],"sources":["src/components/pds-link/pds-link.scss?tag=pds-link&encapsulation=shadow","src/components/pds-link/pds-link.tsx"],"sourcesContent":[":host {\n\n --border-radius: var(--pine-border-radius-sm);\n --color: var(--pine-color-neutral-charcoal-400);\n --font-size: var(--pine-font-size-body);\n --font-size-sm: var(--pine-font-size-body-sm);\n --font-size-xs: var(--pine-font-size-body-xs);\n --font-weight: var(--pine-font-weight-medium);\n --margin-inline-start: var(--pine-spacing-xxs);\n --outline: 4px solid var(--pine-color-primary-200);\n --svg-lg: 15px;\n --svg-md: 13px;\n --svg-sm: 11px;\n\n display: inline;\n\n pds-icon {\n margin-inline-start: var(--margin-inline-start);\n }\n}\n\n.pds-link {\n align-items: center;\n color: var(--color);\n display: inline-flex;\n font-weight: inherit;\n\n &:focus {\n border-radius: var(--border-radius);\n outline: var(--outline);\n }\n}\n\n// We have a small consensus stating that\n// fonts will be REMs, box-model will be\n// discussed later px or (r)em's\n.pds-link--sm {\n font-size: var(--font-size-xs);\n\n pds-icon {\n height: var(--svg-sm);\n width: var(--svg-sm);\n }\n}\n\n.pds-link--md {\n font-size: var(--font-size-sm);\n\n pds-icon {\n height: var(--svg-md);\n width: var(--svg-md);\n }\n}\n\n.pds-link--lg {\n font-size: var(--font-size);\n\n pds-icon {\n height: var(--svg-lg);\n width: var(--svg-lg);\n }\n}\n\n.pds-link--plain {\n font-weight: var(--font-weight);\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n}\n\n// Default = inline link\n.pds-link--default {\n text-decoration: underline;\n\n &:hover {\n text-decoration: none;\n }\n}\n","import { Component, h, Prop } from '@stencil/core';\n\n/**\n * @slot - Content is placed between the opening closing tags\n */\n@Component({\n tag: 'pds-link',\n styleUrl: 'pds-link.scss',\n shadow: true,\n})\nexport class PdsLink {\n /**\n * A unique identifier used for the underlying component `id` attribute.\n */\n @Prop() componentId: string;\n\n /**\n * When enabled, opens link in a new tab.\n * @defaultValue false\n */\n @Prop() external = false;\n\n /**\n *\n * Modifies the look of the link\n */\n @Prop() variant: 'inline' | 'plain' = 'inline';\n\n /**\n *\n * The Font size follows t-shirt model\n * sm: 12px\n * md: 14px\n * lg: 16px\n * @defaultValue lg\n */\n @Prop() fontSize: 'sm' | 'md' | 'lg' = 'lg';\n\n /**\n * The URL that the hyperlink points to.\n */\n @Prop() href!: string;\n\n private classNames() {\n const classNames = ['pds-link'];\n\n if (this.fontSize) {\n classNames.push('pds-link--' + this.fontSize);\n }\n\n if (this.variant) {\n classNames.push('pds-link--' + this.variant);\n }\n\n return classNames.join(' ');\n }\n\n render() {\n\n return (\n <a\n class={this.classNames()}\n href={this.href}\n id={this.componentId}\n target={this.external ? '_blank' : undefined}\n >\n <slot>{this.href}</slot>\n {this.external &&\n <pds-icon name=\"launch\" size={this.fontSize}></pds-icon>\n }\n </a>\n );\n }\n}\n"],"version":3}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { r as registerInstance, h, H as Host } from './index-a58668b3.js';
|
|
2
|
+
|
|
3
|
+
const pdsProgressCss = ":host{--progress-fill-color:var(--pine-color-primary-300);--height-progress-bar:8px;-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex}@-webkit-keyframes progressBar{0%{width:0}100%{width:100%}}@keyframes progressBar{0%{width:0}100%{width:100%}}.pds-progress{--background-progress-bar:var(--pine-color-neutral-grey-300);--border-radius:var(--pine-border-radius-xs);-ms-flex-align:center;align-items:center;background-color:var(--background-progress-bar);border-radius:var(--border-radius);display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;height:var(--height-progress-bar);position:relative;width:100%}:host(.is-animated) progress,:host(.is-animated) progress::-webkit-progress-bar{-webkit-animation:progressBar 3s ease;animation:progressBar 3s ease;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards}progress,progress::-webkit-progress-bar{background-color:transparent;border:0;height:var(--height-progress-bar);width:100%}progress::-webkit-progress-value{--background-color:var(--pine-color-primary-300);--border-radius:var(--pine-border-radius-xs);background-color:var(--progress-fill-color, var(--background-color));border-radius:var(--border-radius)}progress::-moz-progress-bar{--background-color:var(--pine-color-primary-300);--border-radius:var(--pine-border-radius-xs);background-color:var(--progress-fill-color, var(--background-color));border-radius:var(--border-radius)}.pds-progress__label{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.pds-progress__percentage{--font-size:var(--pine-font-size-body-sm);--line-height:var(--pine-line-height-sm);--font-weight:var(--pine-font-weight-medium);--margin-inline-start:var(--pine-spacing-md);font-size:var(--font-size);font-weight:var(--font-weight);line-height:var(--line-height);-webkit-margin-start:calc(var(--margin-inline-start) / 2);margin-inline-start:calc(var(--margin-inline-start) / 2)}";
|
|
4
|
+
|
|
5
|
+
const PdsProgress = class {
|
|
6
|
+
constructor(hostRef) {
|
|
7
|
+
registerInstance(this, hostRef);
|
|
8
|
+
this.animated = false;
|
|
9
|
+
this.componentId = undefined;
|
|
10
|
+
this.fillColor = undefined;
|
|
11
|
+
this.label = undefined;
|
|
12
|
+
this.percent = 0;
|
|
13
|
+
this.showPercent = false;
|
|
14
|
+
}
|
|
15
|
+
render() {
|
|
16
|
+
return (h(Host, { class: this.animated ? { 'is-animated': this.animated } : '' }, h("div", { class: "pds-progress" }, h("label", { class: "pds-progress__label", htmlFor: this.componentId }, this.label), h("progress", { id: this.componentId, max: "100", style: this.fillColor ? { '--progress-fill-color': this.fillColor } : {}, value: this.percent })), this.showPercent && h("div", { class: "pds-progress__percentage" }, this.percent, "%")));
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
PdsProgress.style = pdsProgressCss;
|
|
20
|
+
|
|
21
|
+
export { PdsProgress as pds_progress };
|
|
22
|
+
|
|
23
|
+
//# sourceMappingURL=pds-progress.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"pds-progress.entry.js","mappings":";;AAAA,MAAM,cAAc,GAAG,u7DAAu7D;;MCOj8D,WAAW;;;wBAKH,KAAK;;;;uBAsBN,CAAC;2BAMG,KAAK;;IAE3B,MAAM;QACJ,QACE,EAAC,IAAI,IAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,GAAG,EAAE,aAAa,EAAE,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,IAChE,WAAK,KAAK,EAAC,cAAc,IACvB,aAAO,KAAK,EAAC,qBAAqB,EAAC,OAAO,EAAE,IAAI,CAAC,WAAW,IACzD,IAAI,CAAC,KAAK,CACL,EACR,gBACE,EAAE,EAAE,IAAI,CAAC,WAAW,EACpB,GAAG,EAAC,KAAK,EACT,KAAK,EAAE,IAAI,CAAC,SAAS,GAAG,EAAE,uBAAuB,EAAE,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,EACxE,KAAK,EAAE,IAAI,CAAC,OAAO,GAEV,CACP,EACL,IAAI,CAAC,WAAW,IAAI,WAAK,KAAK,EAAC,0BAA0B,IAAE,IAAI,CAAC,OAAO,MAAQ,CAC3E,EACP;KACH;;;;;;","names":[],"sources":["src/components/pds-progress/pds-progress.scss?tag=pds-progress&encapsulation=shadow","src/components/pds-progress/pds-progress.tsx"],"sourcesContent":[":host {\n --progress-fill-color: var(--pine-color-primary-300);\n --height-progress-bar: 8px;\n\n align-items: center;\n display: flex;\n}\n\n@keyframes progressBar {\n 0% {\n width: 0\n }\n\n 100% {\n width: 100%\n }\n}\n\n.pds-progress {\n --background-progress-bar: var(--pine-color-neutral-grey-300);\n --border-radius: var(--pine-border-radius-xs);\n\n align-items: center;\n background-color: var(--background-progress-bar);\n border-radius: var(--border-radius);\n display: flex;\n flex-direction: row;\n height: var(--height-progress-bar);\n position: relative;\n width: 100%;\n}\n\n:host(.is-animated) progress,\n:host(.is-animated) progress::-webkit-progress-bar {\n animation: progressBar 3s ease;\n animation-fill-mode: forwards;\n}\n\nprogress,\nprogress::-webkit-progress-bar {\n background-color: transparent;\n border: 0;\n height: var(--height-progress-bar);\n width: 100%;\n}\n\nprogress::-webkit-progress-value {\n --background-color: var(--pine-color-primary-300);\n --border-radius: var(--pine-border-radius-xs);\n\n background-color: var(--progress-fill-color, var(--background-color));\n border-radius: var(--border-radius);\n}\n\nprogress::-moz-progress-bar {\n --background-color: var(--pine-color-primary-300);\n --border-radius: var(--pine-border-radius-xs);\n\n background-color: var(--progress-fill-color, var(--background-color));\n border-radius: var(--border-radius);\n}\n\n.pds-progress__label {\n border: 0;\n clip: rect(0 0 0 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n}\n\n.pds-progress__percentage {\n --font-size: var(--pine-font-size-body-sm);\n --line-height: var(--pine-line-height-sm);\n --font-weight: var(--pine-font-weight-medium);\n --margin-inline-start: var(--pine-spacing-md);\n\n font-size: var(--font-size);\n font-weight: var(--font-weight);\n line-height: var(--line-height);\n margin-inline-start: calc(var(--margin-inline-start) / 2);\n}\n","import { Component, Host, h, Prop } from '@stencil/core';\n\n@Component({\n tag: 'pds-progress',\n styleUrl: 'pds-progress.scss',\n shadow: true,\n})\nexport class PdsProgress {\n /**\n * Determines whether or not progress is animated.\n * @defaultValue false\n */\n @Prop() animated = false;\n\n /**\n * A unique identifier used for the underlying component `id` attribute and the label `for` attribute.\n */\n @Prop() componentId!: string;\n\n /**\n * Sets the progress fill color. Accepts a color token or a [valid color value](https://developer.mozilla.org/en-US/docs/Web/CSS/color_value).\n * @defaultValue 'var(--pds-color-primary)'\n */\n @Prop() fillColor: string;\n\n /**\n * String used for label text. Label is visually hidden but required for better accessibility.\n */\n @Prop() label!: string;\n\n /**\n * Sets the progress fill pecentage and visually displayed when `show-percentage=true`.\n * @defaultValue 0\n */\n @Prop() percent = 0;\n\n /**\n * Determines whether or not the percent value should be displayed as text.\n * @defaultValue false\n */\n @Prop() showPercent = false;\n\n render() {\n return (\n <Host class={this.animated ? { 'is-animated': this.animated } : ''}>\n <div class=\"pds-progress\">\n <label class=\"pds-progress__label\" htmlFor={this.componentId}>\n {this.label}\n </label>\n <progress\n id={this.componentId}\n max=\"100\"\n style={this.fillColor ? { '--progress-fill-color': this.fillColor } : {}}\n value={this.percent}\n >\n </progress>\n </div>\n {this.showPercent && <div class=\"pds-progress__percentage\">{this.percent}%</div>}\n </Host>\n );\n }\n}\n"],"version":3}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { r as registerInstance, c as createEvent, h, H as Host } from './index-a58668b3.js';
|
|
2
|
+
import { m as messageId, P as PdsLabel, a as assignDescription } from './pds-label-a26dd876.js';
|
|
3
|
+
|
|
4
|
+
const pdsRadioCss = ".sc-pds-radio-h{--background-color:var(--pine-color-base-white);--background-color-hover:var(--pine-color-neutral-grey-100);--background-color-disabled:var(--pine-color-neutral-grey-200);--border:var(--pine-border-interactive);--border-color-hover:var(--pine-border-interactive-hover-color);--border-color-disabled:var(--pine-color-neutral-grey-300);--border-radius:50%;--color:var(--pine-color-neutral-charcoal-200);--color-checked:var(--pine-color-neutral-charcoal-500);--color-disabled:var(--pine-color-neutral-grey-500);--color-focus:var(--pine-color-primary-200);--color-invalid:var(--pine-color-red-300);--color-invalid-focus:var(--pine-color-red-200);--font-size:var(--pine-font-size-body-sm);--input-size:16px;--check-size:6px;-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap}.is-invalid.sc-pds-radio-h input.sc-pds-radio{border-color:var(--color-invalid)}.is-invalid.sc-pds-radio-h input.sc-pds-radio:checked{background:var(--color-invalid)}.is-invalid.sc-pds-radio-h input.sc-pds-radio:focus-visible{-webkit-box-shadow:0 0 0 4px var(--color-invalid-focus);box-shadow:0 0 0 4px var(--color-invalid-focus);outline:none}.is-invalid.sc-pds-radio-h label.sc-pds-radio,.is-invalid.sc-pds-radio-h .pds-radio__message--error.sc-pds-radio{color:var(--color-invalid)}input.sc-pds-radio{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:var(--border);border-radius:var(--border-radius);height:var(--input-size);margin:0;position:relative;width:var(--input-size)}input.sc-pds-radio:hover{background:var(--background-color-hover);border-color:var(--border-color-hover)}input.sc-pds-radio:checked{background:var(--color-checked);border-color:var(--color-checked)}input.sc-pds-radio:checked::after{background:var(--background-color);border-radius:50%;content:\"\";display:block;height:var(--check-size);left:50%;position:absolute;top:50%;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);width:var(--check-size)}input.sc-pds-radio:disabled{background:var(--background-color-disabled);border-color:var(--border-color-disabled);cursor:not-allowed}input.sc-pds-radio:disabled:checked{background:var(--color-disabled);border-color:var(--border-color-disabled)}input.sc-pds-radio:disabled:checked::after{border-color:var(--border-color-disabled)}input.sc-pds-radio:disabled+label.sc-pds-radio{color:var(--border-color-hover);cursor:not-allowed}input.sc-pds-radio:disabled~.pds-radio__message.sc-pds-radio{color:var(--color-disabled)}input.sc-pds-radio:focus-visible{-webkit-box-shadow:0 0 0 4px var(--color-focus);box-shadow:0 0 0 4px var(--color-focus);outline:none}label.sc-pds-radio{-webkit-margin-start:10px;margin-inline-start:10px}.pds-radio__message.sc-pds-radio{color:var(--color);font-size:var(--font-size);-webkit-margin-before:var(--check-size);margin-block-start:var(--check-size);-webkit-margin-start:26px;margin-inline-start:26px;width:100%}";
|
|
5
|
+
|
|
6
|
+
const PdsRadio = class {
|
|
7
|
+
constructor(hostRef) {
|
|
8
|
+
registerInstance(this, hostRef);
|
|
9
|
+
this.pdsRadioChange = createEvent(this, "pdsRadioChange", 7);
|
|
10
|
+
this.handleRadioChange = (e) => {
|
|
11
|
+
if (this.disabled) {
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
const target = e.target;
|
|
15
|
+
const isChecked = target.checked;
|
|
16
|
+
this.pdsRadioChange.emit(isChecked);
|
|
17
|
+
};
|
|
18
|
+
this.checked = false;
|
|
19
|
+
this.disabled = false;
|
|
20
|
+
this.errorMessage = undefined;
|
|
21
|
+
this.invalid = false;
|
|
22
|
+
this.componentId = undefined;
|
|
23
|
+
this.label = undefined;
|
|
24
|
+
this.helperMessage = undefined;
|
|
25
|
+
this.name = undefined;
|
|
26
|
+
this.required = false;
|
|
27
|
+
this.value = undefined;
|
|
28
|
+
}
|
|
29
|
+
classNames() {
|
|
30
|
+
const classNames = [];
|
|
31
|
+
if (this.invalid) {
|
|
32
|
+
classNames.push('is-invalid');
|
|
33
|
+
}
|
|
34
|
+
if (this.disabled) {
|
|
35
|
+
classNames.push('is-disabled');
|
|
36
|
+
}
|
|
37
|
+
return classNames.join(' ');
|
|
38
|
+
}
|
|
39
|
+
render() {
|
|
40
|
+
return (h(Host, { class: this.classNames() }, h("input", { "aria-describedby": assignDescription(this.componentId, this.invalid, this.helperMessage), "aria-invalid": this.invalid ? "true" : undefined, type: "radio", id: this.componentId, name: this.name, value: this.value, checked: this.checked, required: this.required, disabled: this.disabled, onChange: this.handleRadioChange }), h(PdsLabel, { htmlFor: this.componentId, text: this.label }), this.helperMessage &&
|
|
41
|
+
h("div", { class: 'pds-radio__message', id: messageId(this.componentId, 'helper') }, this.helperMessage), this.errorMessage &&
|
|
42
|
+
h("div", { class: `pds-radio__message pds-radio__message--error`, id: messageId(this.componentId, 'error'), "aria-live": "assertive" }, this.errorMessage)));
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
PdsRadio.style = pdsRadioCss;
|
|
46
|
+
|
|
47
|
+
export { PdsRadio as pds_radio };
|
|
48
|
+
|
|
49
|
+
//# sourceMappingURL=pds-radio.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"pds-radio.entry.js","mappings":";;;AAAA,MAAM,WAAW,GAAG,04FAA04F;;MCSj5F,QAAQ;;;;QA4DX,sBAAiB,GAAG,CAAC,CAAQ;YACnC,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACjB,OAAO;aACR;YAED,MAAM,MAAM,GAAG,CAAC,CAAC,MAA0B,CAAC;YAC5C,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC;YAEjC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SACrC,CAAA;uBAhEiB,KAAK;wBAMJ,KAAK;;uBAWN,KAAK;;;;;wBA0BJ,KAAK;;;IAuBhB,UAAU;QAChB,MAAM,UAAU,GAAG,EAAE,CAAC;QAEtB,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SAC/B;QACD,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;SAChC;QAED,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC9B;IAED,MAAM;QACJ,QACE,EAAC,IAAI,IAAC,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,IAC5B,iCACoB,iBAAiB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,kBACzE,IAAI,CAAC,OAAO,GAAG,MAAM,GAAG,SAAS,EAC/C,IAAI,EAAC,OAAO,EACZ,EAAE,EAAE,IAAI,CAAC,WAAW,EACpB,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,QAAQ,EAAE,IAAI,CAAC,iBAAiB,GAChC,EACF,EAAC,QAAQ,IAAC,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,GAAI,EACxD,IAAI,CAAC,aAAa;YACjB,WACE,KAAK,EAAE,oBAAoB,EAC3B,EAAE,EAAE,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,IAExC,IAAI,CAAC,aAAa,CACf,EAEP,IAAI,CAAC,YAAY;YAChB,WACE,KAAK,EAAE,8CAA8C,EACrD,EAAE,EAAE,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,eAC9B,WAAW,IAEpB,IAAI,CAAC,YAAY,CACd,CAEH,EACP;KACH;;;;;;","names":[],"sources":["src/components/pds-radio/pds-radio.scss?tag=pds-radio&encapsulation=scoped","src/components/pds-radio/pds-radio.tsx"],"sourcesContent":[":host {\n --background-color: var(--pine-color-base-white);\n --background-color-hover: var(--pine-color-neutral-grey-100);\n --background-color-disabled: var(--pine-color-neutral-grey-200);\n --border: var(--pine-border-interactive);\n --border-color-hover: var(--pine-border-interactive-hover-color);\n --border-color-disabled: var(--pine-color-neutral-grey-300);\n --border-radius: 50%;\n --color: var(--pine-color-neutral-charcoal-200);\n --color-checked: var(--pine-color-neutral-charcoal-500);\n --color-disabled: var(--pine-color-neutral-grey-500);\n --color-focus: var(--pine-color-primary-200);\n --color-invalid: var(--pine-color-red-300);\n --color-invalid-focus: var(--pine-color-red-200);\n --font-size: var(--pine-font-size-body-sm);\n --input-size: 16px;\n --check-size: 6px;\n\n align-items: center;\n display: flex;\n flex-flow: row wrap;\n}\n\n:host(.is-invalid) {\n input {\n border-color: var(--color-invalid);\n\n &:checked {\n background: var(--color-invalid);\n }\n\n &:focus-visible {\n box-shadow: 0 0 0 4px var(--color-invalid-focus);\n outline: none;\n }\n }\n\n label,\n .pds-radio__message--error {\n color: var(--color-invalid);\n }\n}\n\ninput {\n appearance: none;\n border: var(--border);\n border-radius: var(--border-radius);\n height: var(--input-size);\n margin: 0;\n position: relative;\n width: var(--input-size);\n\n &:hover {\n background: var(--background-color-hover);\n border-color: var(--border-color-hover);\n }\n\n &:checked {\n background: var(--color-checked);\n border-color: var(--color-checked);\n\n &::after {\n background: var(--background-color);\n border-radius: 50%;\n content: \"\";\n display: block;\n height: var(--check-size);\n left: 50%;\n position: absolute;\n top: 50%;\n transform: translate(-50%, -50%);\n width: var(--check-size);\n }\n }\n\n &:disabled {\n background: var(--background-color-disabled);\n border-color: var(--border-color-disabled);\n cursor: not-allowed;\n\n &:checked {\n background: var(--color-disabled);\n border-color: var(--border-color-disabled);\n\n &::after {\n border-color: var(--border-color-disabled);\n }\n }\n\n + label {\n color: var(--border-color-hover);\n cursor: not-allowed;\n }\n\n ~ .pds-radio__message {\n color: var(--color-disabled);\n }\n }\n\n &:focus-visible {\n box-shadow: 0 0 0 4px var(--color-focus);\n outline: none;\n }\n\n}\n\nlabel {\n margin-inline-start: 10px;\n}\n\n.pds-radio__message {\n color: var(--color);\n font-size: var(--font-size);\n margin-block-start: var(--check-size);\n margin-inline-start: 26px;\n width: 100%;\n}\n","import { Component, Host, h, Prop, Event, EventEmitter } from '@stencil/core';\nimport { assignDescription, messageId } from '../../utils/form';\nimport { PdsLabel } from '../_internal/pds-label/pds-label';\n\n@Component({\n tag: 'pds-radio',\n styleUrl: 'pds-radio.scss',\n scoped: true,\n})\nexport class PdsRadio {\n /**\n * Determines whether or not the radio is checked.\n * @defaultValue false\n */\n @Prop() checked = false;\n\n /**\n * Determines whether or not the radio is disabled.\n * @defaultValue false\n */\n @Prop() disabled = false;\n\n /**\n * Displays message text describing an invalid state.\n */\n @Prop() errorMessage: string;\n\n /**\n * Determines whether or not the radio is invalid.\n * @defaultValue false\n */\n @Prop() invalid = false;\n\n /**\n * A unique identifier used for the underlying component `id` attribute and the label `for` attribute.\n */\n @Prop() componentId!: string;\n\n /**\n * String used for label text next to radio.\n */\n @Prop() label: string;\n\n /**\n * String used for helper message below radio.\n */\n @Prop() helperMessage: string;\n\n /**\n * String used for radio `name` attribute.\n */\n @Prop() name: string;\n\n /**\n * Determines whether or not the radio is required.\n * @defaultValue false\n */\n @Prop() required = false;\n\n /**\n * The value of the radio that is submitted with a form.\n */\n @Prop() value: string;\n\n /**\n * Emits a boolean indicating whether the checkbox is currently checked or unchecked.\n */\n @Event() pdsRadioChange: EventEmitter<boolean>;\n\n private handleRadioChange = (e: Event) => {\n if (this.disabled) {\n return;\n }\n\n const target = e.target as HTMLInputElement;\n const isChecked = target.checked;\n\n this.pdsRadioChange.emit(isChecked);\n }\n\n private classNames() {\n const classNames = [];\n\n if (this.invalid) {\n classNames.push('is-invalid');\n }\n if (this.disabled) {\n classNames.push('is-disabled');\n }\n\n return classNames.join(' ');\n }\n\n render() {\n return (\n <Host class={this.classNames()}>\n <input\n aria-describedby={assignDescription(this.componentId, this.invalid, this.helperMessage)}\n aria-invalid={this.invalid ? \"true\" : undefined}\n type=\"radio\"\n id={this.componentId}\n name={this.name}\n value={this.value}\n checked={this.checked}\n required={this.required}\n disabled={this.disabled}\n onChange={this.handleRadioChange}\n />\n <PdsLabel htmlFor={this.componentId} text={this.label} />\n {this.helperMessage &&\n <div\n class={'pds-radio__message'}\n id={messageId(this.componentId, 'helper')}\n >\n {this.helperMessage}\n </div>\n }\n {this.errorMessage &&\n <div\n class={`pds-radio__message pds-radio__message--error`}\n id={messageId(this.componentId, 'error')}\n aria-live=\"assertive\"\n >\n {this.errorMessage}\n </div>\n }\n </Host>\n );\n }\n}\n"],"version":3}
|