@pine-ds/core 3.26.3 → 3.26.4
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/components/mock-pds-modal.js +1 -1
- package/components/mock-pds-modal.js.map +1 -1
- package/components/pds-combobox.js +1 -1
- package/components/pds-combobox.js.map +1 -1
- package/components/pds-dropdown-menu.js +1 -1
- package/components/pds-dropdown-menu.js.map +1 -1
- package/components/pds-filter.js +1 -1
- package/components/pds-filter.js.map +1 -1
- package/components/pds-input.js +1 -1
- package/components/pds-input.js.map +1 -1
- package/components/pds-modal.js +1 -1
- package/components/pds-modal.js.map +1 -1
- package/components/pds-multiselect.js +1 -1
- package/components/pds-multiselect.js.map +1 -1
- package/components/pds-popover.js +2 -2
- package/components/pds-popover.js.map +1 -1
- package/components/pds-radio.js +1 -1
- package/components/pds-radio.js.map +1 -1
- package/components/pds-toast.js +42 -6
- package/components/pds-toast.js.map +1 -1
- package/dist/cjs/{index-BYnQkA7p.js → index-BUvWX8u2.js} +3 -3
- package/dist/cjs/index-BUvWX8u2.js.map +1 -0
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/mock-pds-modal.cjs.entry.js +2 -2
- package/dist/cjs/mock-pds-modal.entry.cjs.js.map +1 -1
- package/dist/cjs/pds-accordion.cjs.entry.js +1 -1
- package/dist/cjs/pds-alert.cjs.entry.js +1 -1
- package/dist/cjs/pds-avatar.cjs.entry.js +1 -1
- package/dist/cjs/pds-box.cjs.entry.js +1 -1
- package/dist/cjs/pds-button.cjs.entry.js +1 -1
- package/dist/cjs/pds-checkbox.cjs.entry.js +1 -1
- package/dist/cjs/pds-chip.cjs.entry.js +1 -1
- package/dist/cjs/pds-combobox.cjs.entry.js +2 -2
- package/dist/cjs/pds-combobox.entry.cjs.js.map +1 -1
- package/dist/cjs/pds-container.cjs.entry.js +1 -1
- package/dist/cjs/pds-copytext.cjs.entry.js +1 -1
- package/dist/cjs/pds-divider.cjs.entry.js +1 -1
- package/dist/cjs/pds-dropdown-menu-item.cjs.entry.js +1 -1
- package/dist/cjs/pds-dropdown-menu-separator.cjs.entry.js +1 -1
- package/dist/cjs/pds-dropdown-menu.cjs.entry.js +2 -2
- package/dist/cjs/pds-dropdown-menu.entry.cjs.js.map +1 -1
- package/dist/cjs/pds-filter.cjs.entry.js +2 -2
- package/dist/cjs/pds-filter.entry.cjs.js.map +1 -1
- package/dist/cjs/pds-filters.cjs.entry.js +1 -1
- package/dist/cjs/pds-icon.cjs.entry.js +1 -1
- package/dist/cjs/pds-image.cjs.entry.js +1 -1
- package/dist/cjs/pds-input.cjs.entry.js +2 -2
- package/dist/cjs/pds-input.entry.cjs.js.map +1 -1
- package/dist/cjs/pds-link.cjs.entry.js +1 -1
- package/dist/cjs/pds-loader.cjs.entry.js +1 -1
- package/dist/cjs/pds-modal-content.cjs.entry.js +1 -1
- package/dist/cjs/pds-modal-footer.cjs.entry.js +1 -1
- package/dist/cjs/pds-modal-header.cjs.entry.js +1 -1
- package/dist/cjs/pds-modal.cjs.entry.js +2 -2
- package/dist/cjs/pds-modal.entry.cjs.js.map +1 -1
- package/dist/cjs/pds-multiselect.cjs.entry.js +2 -2
- package/dist/cjs/pds-multiselect.entry.cjs.js.map +1 -1
- package/dist/cjs/pds-popover.cjs.entry.js +3 -3
- package/dist/cjs/pds-popover.entry.cjs.js.map +1 -1
- package/dist/cjs/pds-progress.cjs.entry.js +1 -1
- package/dist/cjs/pds-property.cjs.entry.js +1 -1
- package/dist/cjs/pds-radio-group.cjs.entry.js +1 -1
- package/dist/cjs/pds-radio.cjs.entry.js +2 -2
- package/dist/cjs/pds-radio.entry.cjs.js.map +1 -1
- package/dist/cjs/pds-row.cjs.entry.js +1 -1
- package/dist/cjs/pds-select.cjs.entry.js +1 -1
- package/dist/cjs/pds-sortable-item.cjs.entry.js +1 -1
- package/dist/cjs/pds-sortable.cjs.entry.js +1 -1
- package/dist/cjs/pds-switch.cjs.entry.js +1 -1
- package/dist/cjs/pds-tab.cjs.entry.js +1 -1
- package/dist/cjs/pds-table-body.cjs.entry.js +1 -1
- package/dist/cjs/pds-table-cell.cjs.entry.js +1 -1
- package/dist/cjs/pds-table-head-cell.cjs.entry.js +1 -1
- package/dist/cjs/pds-table-head.cjs.entry.js +1 -1
- package/dist/cjs/pds-table-row.cjs.entry.js +1 -1
- package/dist/cjs/pds-table.cjs.entry.js +1 -1
- package/dist/cjs/pds-tabpanel.cjs.entry.js +1 -1
- package/dist/cjs/pds-tabs.cjs.entry.js +1 -1
- package/dist/cjs/pds-text.cjs.entry.js +1 -1
- package/dist/cjs/pds-textarea.cjs.entry.js +1 -1
- package/dist/cjs/pds-toast.cjs.entry.js +43 -7
- package/dist/cjs/pds-toast.entry.cjs.js.map +1 -1
- package/dist/cjs/pds-tooltip.cjs.entry.js +1 -1
- package/dist/cjs/pine-core.cjs.js +1 -1
- package/dist/collection/components/pds-combobox/pds-combobox.css +2 -2
- package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu.css +1 -1
- package/dist/collection/components/pds-filters/pds-filter/pds-filter.css +2 -2
- package/dist/collection/components/pds-input/pds-input.css +1 -1
- package/dist/collection/components/pds-modal/pds-modal.css +1 -1
- package/dist/collection/components/pds-multiselect/pds-multiselect.css +2 -2
- package/dist/collection/components/pds-popover/pds-popover.js +2 -2
- package/dist/collection/components/pds-popover/pds-popover.js.map +1 -1
- package/dist/collection/components/pds-radio/pds-radio.css +1 -1
- package/dist/collection/components/pds-toast/pds-toast.css +2 -2
- package/dist/collection/components/pds-toast/pds-toast.js +41 -5
- package/dist/collection/components/pds-toast/pds-toast.js.map +1 -1
- package/dist/docs.json +1 -1
- package/dist/esm/{index-QYCDCKN2.js → index-B2f84Zog.js} +3 -3
- package/dist/esm/index-B2f84Zog.js.map +1 -0
- package/dist/esm/loader.js +2 -2
- package/dist/esm/mock-pds-modal.entry.js +2 -2
- package/dist/esm/mock-pds-modal.entry.js.map +1 -1
- package/dist/esm/pds-accordion.entry.js +1 -1
- package/dist/esm/pds-alert.entry.js +1 -1
- package/dist/esm/pds-avatar.entry.js +1 -1
- package/dist/esm/pds-box.entry.js +1 -1
- package/dist/esm/pds-button.entry.js +1 -1
- package/dist/esm/pds-checkbox.entry.js +1 -1
- package/dist/esm/pds-chip.entry.js +1 -1
- package/dist/esm/pds-combobox.entry.js +2 -2
- package/dist/esm/pds-combobox.entry.js.map +1 -1
- package/dist/esm/pds-container.entry.js +1 -1
- package/dist/esm/pds-copytext.entry.js +1 -1
- package/dist/esm/pds-divider.entry.js +1 -1
- package/dist/esm/pds-dropdown-menu-item.entry.js +1 -1
- package/dist/esm/pds-dropdown-menu-separator.entry.js +1 -1
- package/dist/esm/pds-dropdown-menu.entry.js +2 -2
- package/dist/esm/pds-dropdown-menu.entry.js.map +1 -1
- package/dist/esm/pds-filter.entry.js +2 -2
- package/dist/esm/pds-filter.entry.js.map +1 -1
- package/dist/esm/pds-filters.entry.js +1 -1
- package/dist/esm/pds-icon.entry.js +1 -1
- package/dist/esm/pds-image.entry.js +1 -1
- package/dist/esm/pds-input.entry.js +2 -2
- package/dist/esm/pds-input.entry.js.map +1 -1
- package/dist/esm/pds-link.entry.js +1 -1
- package/dist/esm/pds-loader.entry.js +1 -1
- package/dist/esm/pds-modal-content.entry.js +1 -1
- package/dist/esm/pds-modal-footer.entry.js +1 -1
- package/dist/esm/pds-modal-header.entry.js +1 -1
- package/dist/esm/pds-modal.entry.js +2 -2
- package/dist/esm/pds-modal.entry.js.map +1 -1
- package/dist/esm/pds-multiselect.entry.js +2 -2
- package/dist/esm/pds-multiselect.entry.js.map +1 -1
- package/dist/esm/pds-popover.entry.js +3 -3
- package/dist/esm/pds-popover.entry.js.map +1 -1
- package/dist/esm/pds-progress.entry.js +1 -1
- package/dist/esm/pds-property.entry.js +1 -1
- package/dist/esm/pds-radio-group.entry.js +1 -1
- package/dist/esm/pds-radio.entry.js +2 -2
- package/dist/esm/pds-radio.entry.js.map +1 -1
- package/dist/esm/pds-row.entry.js +1 -1
- package/dist/esm/pds-select.entry.js +1 -1
- package/dist/esm/pds-sortable-item.entry.js +1 -1
- package/dist/esm/pds-sortable.entry.js +1 -1
- package/dist/esm/pds-switch.entry.js +1 -1
- package/dist/esm/pds-tab.entry.js +1 -1
- package/dist/esm/pds-table-body.entry.js +1 -1
- package/dist/esm/pds-table-cell.entry.js +1 -1
- package/dist/esm/pds-table-head-cell.entry.js +1 -1
- package/dist/esm/pds-table-head.entry.js +1 -1
- package/dist/esm/pds-table-row.entry.js +1 -1
- package/dist/esm/pds-table.entry.js +1 -1
- package/dist/esm/pds-tabpanel.entry.js +1 -1
- package/dist/esm/pds-tabs.entry.js +1 -1
- package/dist/esm/pds-text.entry.js +1 -1
- package/dist/esm/pds-textarea.entry.js +1 -1
- package/dist/esm/pds-toast.entry.js +43 -7
- package/dist/esm/pds-toast.entry.js.map +1 -1
- package/dist/esm/pds-tooltip.entry.js +1 -1
- package/dist/esm/pine-core.js +2 -2
- package/dist/esm-es5/index-B2f84Zog.js +3 -0
- package/dist/esm-es5/index-B2f84Zog.js.map +1 -0
- package/dist/esm-es5/loader.js +1 -1
- package/dist/esm-es5/mock-pds-modal.entry.js +1 -1
- package/dist/esm-es5/mock-pds-modal.entry.js.map +1 -1
- package/dist/esm-es5/pds-accordion.entry.js +1 -1
- package/dist/esm-es5/pds-alert.entry.js +1 -1
- package/dist/esm-es5/pds-avatar.entry.js +1 -1
- package/dist/esm-es5/pds-box.entry.js +1 -1
- package/dist/esm-es5/pds-button.entry.js +1 -1
- package/dist/esm-es5/pds-checkbox.entry.js +1 -1
- package/dist/esm-es5/pds-chip.entry.js +1 -1
- package/dist/esm-es5/pds-combobox.entry.js +2 -2
- package/dist/esm-es5/pds-combobox.entry.js.map +1 -1
- package/dist/esm-es5/pds-container.entry.js +1 -1
- package/dist/esm-es5/pds-copytext.entry.js +1 -1
- package/dist/esm-es5/pds-divider.entry.js +1 -1
- package/dist/esm-es5/pds-dropdown-menu-item.entry.js +1 -1
- package/dist/esm-es5/pds-dropdown-menu-separator.entry.js +1 -1
- package/dist/esm-es5/pds-dropdown-menu.entry.js +1 -1
- package/dist/esm-es5/pds-dropdown-menu.entry.js.map +1 -1
- package/dist/esm-es5/pds-filter.entry.js +1 -1
- package/dist/esm-es5/pds-filter.entry.js.map +1 -1
- package/dist/esm-es5/pds-filters.entry.js +1 -1
- package/dist/esm-es5/pds-icon.entry.js +1 -1
- package/dist/esm-es5/pds-image.entry.js +1 -1
- package/dist/esm-es5/pds-input.entry.js +1 -1
- package/dist/esm-es5/pds-input.entry.js.map +1 -1
- package/dist/esm-es5/pds-link.entry.js +1 -1
- package/dist/esm-es5/pds-loader.entry.js +1 -1
- package/dist/esm-es5/pds-modal-content.entry.js +1 -1
- package/dist/esm-es5/pds-modal-footer.entry.js +1 -1
- package/dist/esm-es5/pds-modal-header.entry.js +1 -1
- package/dist/esm-es5/pds-modal.entry.js +1 -1
- package/dist/esm-es5/pds-modal.entry.js.map +1 -1
- package/dist/esm-es5/pds-multiselect.entry.js +1 -1
- package/dist/esm-es5/pds-multiselect.entry.js.map +1 -1
- package/dist/esm-es5/pds-popover.entry.js +1 -1
- package/dist/esm-es5/pds-popover.entry.js.map +1 -1
- package/dist/esm-es5/pds-progress.entry.js +1 -1
- package/dist/esm-es5/pds-property.entry.js +1 -1
- package/dist/esm-es5/pds-radio-group.entry.js +1 -1
- package/dist/esm-es5/pds-radio.entry.js +1 -1
- package/dist/esm-es5/pds-radio.entry.js.map +1 -1
- package/dist/esm-es5/pds-row.entry.js +1 -1
- package/dist/esm-es5/pds-select.entry.js +1 -1
- package/dist/esm-es5/pds-sortable-item.entry.js +1 -1
- package/dist/esm-es5/pds-sortable.entry.js +1 -1
- package/dist/esm-es5/pds-switch.entry.js +1 -1
- package/dist/esm-es5/pds-tab.entry.js +1 -1
- package/dist/esm-es5/pds-table-body.entry.js +1 -1
- package/dist/esm-es5/pds-table-cell.entry.js +1 -1
- package/dist/esm-es5/pds-table-head-cell.entry.js +1 -1
- package/dist/esm-es5/pds-table-head.entry.js +1 -1
- package/dist/esm-es5/pds-table-row.entry.js +1 -1
- package/dist/esm-es5/pds-table.entry.js +1 -1
- package/dist/esm-es5/pds-tabpanel.entry.js +1 -1
- package/dist/esm-es5/pds-tabs.entry.js +1 -1
- package/dist/esm-es5/pds-text.entry.js +1 -1
- package/dist/esm-es5/pds-textarea.entry.js +1 -1
- package/dist/esm-es5/pds-toast.entry.js +1 -1
- package/dist/esm-es5/pds-toast.entry.js.map +1 -1
- package/dist/esm-es5/pds-tooltip.entry.js +1 -1
- package/dist/esm-es5/pine-core.js +1 -1
- package/dist/pine-core/mock-pds-modal.entry.esm.js.map +1 -1
- package/dist/pine-core/p-037dbdcd.system.entry.js +2 -0
- package/dist/pine-core/{p-847ca369.entry.js → p-06713f25.entry.js} +2 -2
- package/dist/pine-core/{p-cc7e0da3.entry.js → p-0977b2dd.entry.js} +2 -2
- package/dist/pine-core/{p-6a20ba14.system.entry.js → p-099e9f9b.system.entry.js} +2 -2
- package/dist/pine-core/p-0a7115f0.entry.js +2 -0
- package/dist/pine-core/{p-1700705c.entry.js.map → p-0a7115f0.entry.js.map} +1 -1
- package/dist/pine-core/{p-e65b1e5f.system.entry.js → p-0c1ab384.system.entry.js} +2 -2
- package/dist/pine-core/{p-e626cbd5.system.entry.js → p-0dee7449.system.entry.js} +2 -2
- package/dist/pine-core/{p-58bd1590.system.entry.js → p-102d0dd6.system.entry.js} +2 -2
- package/dist/pine-core/p-10ebecc5.entry.js +2 -0
- package/dist/pine-core/{p-44318b5c.entry.js.map → p-10ebecc5.entry.js.map} +1 -1
- package/dist/pine-core/{p-67a81e55.entry.js → p-1598f3af.entry.js} +2 -2
- package/dist/pine-core/{p-9a2dc18d.system.entry.js → p-1c32102e.system.entry.js} +2 -2
- package/dist/pine-core/p-2258b31b.system.entry.js +2 -0
- package/dist/pine-core/{p-2728bb30.system.entry.js.map → p-2258b31b.system.entry.js.map} +1 -1
- package/dist/pine-core/{p-d5ba377c.system.entry.js → p-275fa74c.system.entry.js} +2 -2
- package/dist/pine-core/p-27fc0737.system.entry.js +2 -0
- package/dist/pine-core/{p-65224129.system.entry.js.map → p-27fc0737.system.entry.js.map} +1 -1
- package/dist/pine-core/{p-b4c51353.system.entry.js → p-32ad2807.system.entry.js} +2 -2
- package/dist/pine-core/p-33544ed1.system.entry.js +2 -0
- package/dist/pine-core/{p-3eae6f9f.system.entry.js.map → p-33544ed1.system.entry.js.map} +1 -1
- package/dist/pine-core/{p-98332835.system.entry.js → p-34763aae.system.entry.js} +2 -2
- package/dist/pine-core/{p-0bc89023.system.entry.js → p-36070380.system.entry.js} +2 -2
- package/dist/pine-core/{p-360130c2.entry.js → p-3625bc45.entry.js} +2 -2
- package/dist/pine-core/{p-21a858a0.entry.js → p-3b087f24.entry.js} +2 -2
- package/dist/pine-core/{p-0ca1dada.entry.js → p-3f66c070.entry.js} +2 -2
- package/dist/pine-core/p-407aad2b.system.entry.js +2 -0
- package/dist/pine-core/{p-97e0b205.system.entry.js.map → p-407aad2b.system.entry.js.map} +1 -1
- package/dist/pine-core/{p-859aa3b0.entry.js → p-44ca9b92.entry.js} +2 -2
- package/dist/pine-core/{p-0d3a6abc.entry.js → p-476db791.entry.js} +2 -2
- package/dist/pine-core/{p-30302dbb.system.entry.js → p-4780403d.system.entry.js} +2 -2
- package/dist/pine-core/{p-56aedf71.entry.js → p-48ac6873.entry.js} +2 -2
- package/dist/pine-core/{p-BEk_6bpE.system.js.map → p-4FBDaIH3.system.js.map} +1 -1
- package/dist/pine-core/{p-9e62532d.entry.js → p-4ede20e6.entry.js} +2 -2
- package/dist/pine-core/{p-e4f66d23.system.entry.js → p-4f2a48cb.system.entry.js} +2 -2
- package/dist/pine-core/{p-e4f66d23.system.entry.js.map → p-4f2a48cb.system.entry.js.map} +1 -1
- package/dist/pine-core/{p-9e98793e.entry.js → p-4f440dd4.entry.js} +2 -2
- package/dist/pine-core/{p-Cm5r7dPz.system.js.map → p-4jrX5aRd.system.js.map} +1 -1
- package/dist/pine-core/p-51e47e6e.system.entry.js +2 -0
- package/dist/pine-core/{p-ef155f8e.system.entry.js.map → p-51e47e6e.system.entry.js.map} +1 -1
- package/dist/pine-core/{p-528d50eb.system.entry.js → p-52411757.system.entry.js} +2 -2
- package/dist/pine-core/{p-ad2bb5e4.entry.js → p-557005a0.entry.js} +2 -2
- package/dist/pine-core/{p-5f9a6f53.entry.js → p-5e117b98.entry.js} +2 -2
- package/dist/pine-core/{p-cd6b266c.system.entry.js → p-639012b9.system.entry.js} +2 -2
- package/dist/pine-core/{p-2335222d.entry.js → p-643b01ad.entry.js} +2 -2
- package/dist/pine-core/p-6623b257.system.entry.js +2 -0
- package/dist/pine-core/{p-2549e386.system.entry.js.map → p-6623b257.system.entry.js.map} +1 -1
- package/dist/pine-core/{p-33fd214a.system.entry.js → p-74ff4d96.system.entry.js} +2 -2
- package/dist/pine-core/{p-1d7cbf49.system.entry.js → p-77327e1b.system.entry.js} +2 -2
- package/dist/pine-core/{p-500ef8ee.entry.js → p-774ecbd4.entry.js} +2 -2
- package/dist/pine-core/{p-07a19657.entry.js → p-7926dc93.entry.js} +2 -2
- package/dist/pine-core/{p-c53bfe6e.entry.js → p-7a3eccef.entry.js} +2 -2
- package/dist/pine-core/{p-3d0f3dcb.system.entry.js → p-7acb131c.system.entry.js} +2 -2
- package/dist/pine-core/p-81a3e32b.entry.js +2 -0
- package/dist/pine-core/{p-a80f68ce.entry.js.map → p-81a3e32b.entry.js.map} +1 -1
- package/dist/pine-core/{p-fc2789df.system.entry.js → p-848763b6.system.entry.js} +2 -2
- package/dist/pine-core/{p-c7259d80.system.entry.js → p-85e889c3.system.entry.js} +3 -3
- package/dist/pine-core/{p-ce4de7f0.system.entry.js → p-8669e0e3.system.entry.js} +2 -2
- package/dist/pine-core/{p-b7342b09.entry.js → p-8735cb58.entry.js} +2 -2
- package/dist/pine-core/p-8b3aeaf9.system.entry.js +2 -0
- package/dist/pine-core/{p-4e79023c.system.entry.js.map → p-8b3aeaf9.system.entry.js.map} +1 -1
- package/dist/pine-core/p-8b7aa53d.entry.js +2 -0
- package/dist/pine-core/{p-b37b3ad2.entry.js.map → p-8b7aa53d.entry.js.map} +1 -1
- package/dist/pine-core/p-8c97fcb1.entry.js +2 -0
- package/dist/pine-core/{p-043395a8.entry.js.map → p-8c97fcb1.entry.js.map} +1 -1
- package/dist/pine-core/{p-78184199.entry.js → p-8c9f8ca6.entry.js} +2 -2
- package/dist/pine-core/{p-f9a46770.system.entry.js → p-904e8d9d.system.entry.js} +2 -2
- package/dist/pine-core/{p-ec7f210f.entry.js → p-91bea052.entry.js} +2 -2
- package/dist/pine-core/{p-ae80a5cc.system.entry.js → p-9230df2a.system.entry.js} +2 -2
- package/dist/pine-core/p-94a09b06.entry.js +2 -0
- package/dist/pine-core/p-94a09b06.entry.js.map +1 -0
- package/dist/pine-core/p-94d4d1de.entry.js +3 -0
- package/dist/pine-core/{p-2a4be282.entry.js.map → p-94d4d1de.entry.js.map} +1 -1
- package/dist/pine-core/{p-43565cf5.entry.js → p-984db3fc.entry.js} +2 -2
- package/dist/pine-core/{p-3f4435b8.system.entry.js → p-988d1723.system.entry.js} +2 -2
- package/dist/pine-core/p-98dabbbf.entry.js +2 -0
- package/dist/pine-core/{p-6c9bb2a5.entry.js.map → p-98dabbbf.entry.js.map} +1 -1
- package/dist/pine-core/{p-3824d80d.system.entry.js → p-9a3c9d15.system.entry.js} +2 -2
- package/dist/pine-core/{p-a896db32.system.entry.js → p-9b3aedeb.system.entry.js} +2 -2
- package/dist/pine-core/{p-3c89502e.system.entry.js → p-9ce56712.system.entry.js} +2 -2
- package/dist/pine-core/{p-08267d86.system.entry.js → p-9e48d1ea.system.entry.js} +2 -2
- package/dist/pine-core/{p-7ba75e19.entry.js → p-9e5c58c6.entry.js} +3 -3
- package/dist/pine-core/{p-D_X9pwRF.system.js.map → p-B-I9BXj1.system.js.map} +1 -1
- package/dist/pine-core/{p-lXz5a0gw.system.js.map → p-B-nnQT8K.system.js.map} +1 -1
- package/dist/pine-core/{p-QYCDCKN2.js → p-B2f84Zog.js} +2 -2
- package/dist/pine-core/p-B2f84Zog.js.map +1 -0
- package/dist/pine-core/{p-DtKEcQXo.system.js.map → p-BC7kndqW.system.js.map} +1 -1
- package/dist/pine-core/{p-B8wXrRCn.system.js.map → p-BFAhunk3.system.js.map} +1 -1
- package/dist/pine-core/{p-CIRsbQAW.system.js.map → p-BJQiqlL7.system.js.map} +1 -1
- package/dist/pine-core/{p-B_ue56xA.system.js.map → p-BLg534X3.system.js.map} +1 -1
- package/dist/pine-core/{p-CKshb3YH.system.js.map → p-BT-iITx_.system.js.map} +1 -1
- package/dist/pine-core/{p-C2Pw0xAP.system.js.map → p-BTsajr3h.system.js.map} +1 -1
- package/dist/pine-core/{p-KgPSFwRc.system.js.map → p-BcCpTdwz.system.js.map} +1 -1
- package/dist/pine-core/{p-0jF8lVUy.system.js.map → p-Bkk7A0W9.system.js.map} +1 -1
- package/dist/pine-core/{p-CG-Uj3mN.system.js.map → p-BmOvsRx7.system.js.map} +1 -1
- package/dist/pine-core/{p-DUaDwLU_.system.js.map → p-BtfqzsXS.system.js.map} +1 -1
- package/dist/pine-core/p-BvJkwltO.system.js.map +1 -0
- package/dist/pine-core/{p-CtZbV7sl.system.js.map → p-BvV4-w8H.system.js.map} +1 -1
- package/dist/pine-core/{p-DSfc0hSW.system.js.map → p-C3TuSlI7.system.js.map} +1 -1
- package/dist/pine-core/p-C5jXV4WJ.system.js.map +1 -0
- package/dist/pine-core/p-C5qxTQb1.system.js.map +1 -0
- package/dist/pine-core/p-C6yvFUy3.system.js.map +1 -0
- package/dist/pine-core/{p-8nqjUIna.system.js.map → p-CCRLZO4N.system.js.map} +1 -1
- package/dist/pine-core/{p-Ck9i0WVa.system.js.map → p-CD-PjU09.system.js.map} +1 -1
- package/dist/pine-core/{p-BhXECqd_.system.js.map → p-CI-oL5TR.system.js.map} +1 -1
- package/dist/pine-core/{p-1hZDd74J.system.js.map → p-CIbXcB4O.system.js.map} +1 -1
- package/dist/pine-core/{p-BzszOvm1.system.js.map → p-CIe6-SsT.system.js.map} +1 -1
- package/dist/pine-core/{p-CMbqUapr.system.js.map → p-CSVND2Gt.system.js.map} +1 -1
- package/dist/pine-core/{p-CQS3Y0nn.system.js.map → p-CUEE9EMe.system.js.map} +1 -1
- package/dist/pine-core/{p-CjuuQ5fk.system.js.map → p-CXImmjF5.system.js.map} +1 -1
- package/dist/pine-core/p-C_g3FnvJ.system.js.map +1 -0
- package/dist/pine-core/p-CmNZDo8q.system.js.map +1 -0
- package/dist/pine-core/p-Cn98QWqb.system.js.map +1 -0
- package/dist/pine-core/{p-9X_erY0S.system.js → p-Cqgvmo2o.system.js} +2 -2
- package/dist/pine-core/{p-9X_erY0S.system.js.map → p-Cqgvmo2o.system.js.map} +1 -1
- package/dist/pine-core/{p-Dt4eN_hu.system.js.map → p-Cu24FhMY.system.js.map} +1 -1
- package/dist/pine-core/{p-BfwVCQ2C.system.js.map → p-CwEjYXkp.system.js.map} +1 -1
- package/dist/pine-core/p-DA3fC_kX.system.js.map +1 -0
- package/dist/pine-core/{p-C0r-Omcz.system.js.map → p-DG_z5J3G.system.js.map} +1 -1
- package/dist/pine-core/{p-CgPvrU-c.system.js.map → p-DL3JCnpO.system.js.map} +1 -1
- package/dist/pine-core/{p-B5hxTy5U.system.js.map → p-DSlRwx2e.system.js.map} +1 -1
- package/dist/pine-core/{p-CyJVqIlm.system.js → p-DYlgS5d7.system.js} +3 -3
- package/dist/pine-core/p-DYlgS5d7.system.js.map +1 -0
- package/dist/pine-core/{p-BtZYIh3H.system.js.map → p-DeVgpUr5.system.js.map} +1 -1
- package/dist/pine-core/{p-CfyFDUw5.system.js.map → p-Dxrjs-vy.system.js.map} +1 -1
- package/dist/pine-core/{p-DuIwxDGo.system.js.map → p-H7VDsgsr.system.js.map} +1 -1
- package/dist/pine-core/{p-DUOWHRqL.system.js.map → p-JwuGXyPc.system.js.map} +1 -1
- package/dist/pine-core/{p-BILA6IDX.system.js.map → p-U1PewsWZ.system.js.map} +1 -1
- package/dist/pine-core/{p-C8wBjwhX.system.js.map → p-UILRZV99.system.js.map} +1 -1
- package/dist/pine-core/p-V-ORMWaS.system.js.map +1 -0
- package/dist/pine-core/p-W7E5TRNL.system.js.map +1 -0
- package/dist/pine-core/{p-C6LTEDPh.system.js.map → p-Yfy85hdp.system.js.map} +1 -1
- package/dist/pine-core/{p-CbRVp4gv.system.js.map → p-ZrPaY2bh.system.js.map} +1 -1
- package/dist/pine-core/{p-4fc48330.entry.js → p-a30b386f.entry.js} +2 -2
- package/dist/pine-core/{p-a81aa273.system.entry.js → p-a5014407.system.entry.js} +2 -2
- package/dist/pine-core/{p-e2c42a2e.system.entry.js → p-a695ff4c.system.entry.js} +2 -2
- package/dist/pine-core/{p-61bcaaee.entry.js → p-a8c49f8e.entry.js} +2 -2
- package/dist/pine-core/{p-7456ae7a.system.entry.js → p-ae74a4b6.system.entry.js} +2 -2
- package/dist/pine-core/{p-621405fc.entry.js → p-b1cde22a.entry.js} +2 -2
- package/dist/pine-core/{p-ac2900e1.system.entry.js → p-b9340fb1.system.entry.js} +2 -2
- package/dist/pine-core/{p-97d5a937.system.entry.js → p-b9fcc3f8.system.entry.js} +2 -2
- package/dist/pine-core/{p-Bdrd1hDP.system.js.map → p-bIvjoz7p.system.js.map} +1 -1
- package/dist/pine-core/{p-99739465.entry.js → p-bc8f61d1.entry.js} +2 -2
- package/dist/pine-core/{p-1256b83e.entry.js → p-bea013d1.entry.js} +2 -2
- package/dist/pine-core/{p-fcea314c.system.entry.js → p-c026479a.system.entry.js} +2 -2
- package/dist/pine-core/p-c9784d20.system.entry.js +4 -0
- package/dist/pine-core/{p-5c259f42.system.entry.js.map → p-c9784d20.system.entry.js.map} +1 -1
- package/dist/pine-core/p-c9b06db1.system.entry.js +2 -0
- package/dist/pine-core/p-c9b06db1.system.entry.js.map +1 -0
- package/dist/pine-core/{p-6c836757.entry.js → p-cab14421.entry.js} +2 -2
- package/dist/pine-core/{p-fa68509f.entry.js → p-d5fcdcdd.entry.js} +2 -2
- package/dist/pine-core/{p-cb9b6ccc.system.entry.js → p-d86e20b5.system.entry.js} +2 -2
- package/dist/pine-core/{p-acf6592f.system.entry.js → p-d9354ad3.system.entry.js} +2 -2
- package/dist/pine-core/{p-77807b63.entry.js → p-dab76f15.entry.js} +2 -2
- package/dist/pine-core/{p-24656fd4.entry.js → p-db16d1fe.entry.js} +2 -2
- package/dist/pine-core/{p-e9e4e7f9.system.entry.js → p-db63f83b.system.entry.js} +2 -2
- package/dist/pine-core/{p-9120a7fa.system.entry.js → p-dd3ea74e.system.entry.js} +2 -2
- package/dist/pine-core/p-ddb48534.entry.js +2 -0
- package/dist/pine-core/{p-6af000e5.entry.js.map → p-ddb48534.entry.js.map} +1 -1
- package/dist/pine-core/{p-d96c3850.entry.js → p-de9f43b6.entry.js} +2 -2
- package/dist/pine-core/{p-d96c3850.entry.js.map → p-de9f43b6.entry.js.map} +1 -1
- package/dist/pine-core/{p-5b521b20.entry.js → p-e25da259.entry.js} +2 -2
- package/dist/pine-core/{p-b611b9ab.system.entry.js → p-e288dc89.system.entry.js} +2 -2
- package/dist/pine-core/{p-8dea1946.system.entry.js → p-ea5c42b8.system.entry.js} +2 -2
- package/dist/pine-core/{p-6ca31ddd.entry.js → p-ed5d5be6.entry.js} +2 -2
- package/dist/pine-core/{p-d83e411d.entry.js → p-ef081f0f.entry.js} +2 -2
- package/dist/pine-core/{p-b42320fe.entry.js → p-f09c5021.entry.js} +2 -2
- package/dist/pine-core/{p-4728c80a.entry.js → p-f201cf57.entry.js} +2 -2
- package/dist/pine-core/{p-2dcd369d.entry.js → p-f20ab351.entry.js} +2 -2
- package/dist/pine-core/{p-8c8048df.entry.js → p-f2798581.entry.js} +2 -2
- package/dist/pine-core/{p-b294a16b.entry.js → p-f2ca0cf8.entry.js} +2 -2
- package/dist/pine-core/{p-74486022.system.entry.js → p-f77fad86.system.entry.js} +2 -2
- package/dist/pine-core/{p-6f4f62ff.system.entry.js → p-ff472f7c.system.entry.js} +2 -2
- package/dist/pine-core/{p-2c88b85e.entry.js → p-ff5b2c90.entry.js} +2 -2
- package/dist/pine-core/{p-Dn6xWpZX.system.js.map → p-g4mFEadi.system.js.map} +1 -1
- package/dist/pine-core/{p-BWYstZfx.system.js.map → p-vLxlRu4_.system.js.map} +1 -1
- package/dist/pine-core/{p-yb-SBJqk.system.js.map → p-ziMh7dwl.system.js.map} +1 -1
- package/dist/pine-core/pds-combobox.entry.esm.js.map +1 -1
- package/dist/pine-core/pds-dropdown-menu.entry.esm.js.map +1 -1
- package/dist/pine-core/pds-filter.entry.esm.js.map +1 -1
- package/dist/pine-core/pds-input.entry.esm.js.map +1 -1
- package/dist/pine-core/pds-modal.entry.esm.js.map +1 -1
- package/dist/pine-core/pds-multiselect.entry.esm.js.map +1 -1
- package/dist/pine-core/pds-popover.entry.esm.js.map +1 -1
- package/dist/pine-core/pds-radio.entry.esm.js.map +1 -1
- package/dist/pine-core/pds-toast.entry.esm.js.map +1 -1
- package/dist/pine-core/pine-core.css +1 -1
- package/dist/pine-core/pine-core.esm.js +1 -1
- package/dist/pine-core/pine-core.js +1 -1
- package/dist/types/components/pds-toast/pds-toast.d.ts +4 -0
- package/hydrate/index.js +52 -16
- package/hydrate/index.mjs +52 -16
- package/package.json +2 -2
- package/dist/cjs/index-BYnQkA7p.js.map +0 -1
- package/dist/esm/index-QYCDCKN2.js.map +0 -1
- package/dist/esm-es5/index-QYCDCKN2.js +0 -3
- package/dist/esm-es5/index-QYCDCKN2.js.map +0 -1
- package/dist/pine-core/p-043395a8.entry.js +0 -2
- package/dist/pine-core/p-1700705c.entry.js +0 -2
- package/dist/pine-core/p-1eJB2hvd.system.js.map +0 -1
- package/dist/pine-core/p-2549e386.system.entry.js +0 -2
- package/dist/pine-core/p-2728bb30.system.entry.js +0 -2
- package/dist/pine-core/p-2a4be282.entry.js +0 -3
- package/dist/pine-core/p-3eae6f9f.system.entry.js +0 -2
- package/dist/pine-core/p-44318b5c.entry.js +0 -2
- package/dist/pine-core/p-4a4048f3.entry.js +0 -2
- package/dist/pine-core/p-4a4048f3.entry.js.map +0 -1
- package/dist/pine-core/p-4e79023c.system.entry.js +0 -2
- package/dist/pine-core/p-5c259f42.system.entry.js +0 -4
- package/dist/pine-core/p-65224129.system.entry.js +0 -2
- package/dist/pine-core/p-6af000e5.entry.js +0 -2
- package/dist/pine-core/p-6c9bb2a5.entry.js +0 -2
- package/dist/pine-core/p-7u7MeeeZ.system.js.map +0 -1
- package/dist/pine-core/p-97e0b205.system.entry.js +0 -2
- package/dist/pine-core/p-BHr70Hts.system.js.map +0 -1
- package/dist/pine-core/p-BR3EzrR2.system.js.map +0 -1
- package/dist/pine-core/p-Bq2VWG-F.system.js.map +0 -1
- package/dist/pine-core/p-C0XRql_j.system.js.map +0 -1
- package/dist/pine-core/p-CX0Csdth.system.js.map +0 -1
- package/dist/pine-core/p-CZSA3A1S.system.js.map +0 -1
- package/dist/pine-core/p-CwlStDlm.system.js.map +0 -1
- package/dist/pine-core/p-CyJVqIlm.system.js.map +0 -1
- package/dist/pine-core/p-D2ZsBdFi.system.js.map +0 -1
- package/dist/pine-core/p-QYCDCKN2.js.map +0 -1
- package/dist/pine-core/p-a6ab979f.system.entry.js +0 -2
- package/dist/pine-core/p-a80f68ce.entry.js +0 -2
- package/dist/pine-core/p-b37b3ad2.entry.js +0 -2
- package/dist/pine-core/p-cfebee75.system.entry.js +0 -2
- package/dist/pine-core/p-cfebee75.system.entry.js.map +0 -1
- package/dist/pine-core/p-ef155f8e.system.entry.js +0 -2
- /package/dist/pine-core/{p-a6ab979f.system.entry.js.map → p-037dbdcd.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-847ca369.entry.js.map → p-06713f25.entry.js.map} +0 -0
- /package/dist/pine-core/{p-cc7e0da3.entry.js.map → p-0977b2dd.entry.js.map} +0 -0
- /package/dist/pine-core/{p-6a20ba14.system.entry.js.map → p-099e9f9b.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-e65b1e5f.system.entry.js.map → p-0c1ab384.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-e626cbd5.system.entry.js.map → p-0dee7449.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-58bd1590.system.entry.js.map → p-102d0dd6.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-67a81e55.entry.js.map → p-1598f3af.entry.js.map} +0 -0
- /package/dist/pine-core/{p-9a2dc18d.system.entry.js.map → p-1c32102e.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-d5ba377c.system.entry.js.map → p-275fa74c.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-b4c51353.system.entry.js.map → p-32ad2807.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-98332835.system.entry.js.map → p-34763aae.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-0bc89023.system.entry.js.map → p-36070380.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-360130c2.entry.js.map → p-3625bc45.entry.js.map} +0 -0
- /package/dist/pine-core/{p-21a858a0.entry.js.map → p-3b087f24.entry.js.map} +0 -0
- /package/dist/pine-core/{p-0ca1dada.entry.js.map → p-3f66c070.entry.js.map} +0 -0
- /package/dist/pine-core/{p-859aa3b0.entry.js.map → p-44ca9b92.entry.js.map} +0 -0
- /package/dist/pine-core/{p-0d3a6abc.entry.js.map → p-476db791.entry.js.map} +0 -0
- /package/dist/pine-core/{p-30302dbb.system.entry.js.map → p-4780403d.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-56aedf71.entry.js.map → p-48ac6873.entry.js.map} +0 -0
- /package/dist/pine-core/{p-9e62532d.entry.js.map → p-4ede20e6.entry.js.map} +0 -0
- /package/dist/pine-core/{p-9e98793e.entry.js.map → p-4f440dd4.entry.js.map} +0 -0
- /package/dist/pine-core/{p-528d50eb.system.entry.js.map → p-52411757.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-ad2bb5e4.entry.js.map → p-557005a0.entry.js.map} +0 -0
- /package/dist/pine-core/{p-5f9a6f53.entry.js.map → p-5e117b98.entry.js.map} +0 -0
- /package/dist/pine-core/{p-cd6b266c.system.entry.js.map → p-639012b9.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-2335222d.entry.js.map → p-643b01ad.entry.js.map} +0 -0
- /package/dist/pine-core/{p-33fd214a.system.entry.js.map → p-74ff4d96.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-1d7cbf49.system.entry.js.map → p-77327e1b.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-500ef8ee.entry.js.map → p-774ecbd4.entry.js.map} +0 -0
- /package/dist/pine-core/{p-07a19657.entry.js.map → p-7926dc93.entry.js.map} +0 -0
- /package/dist/pine-core/{p-c53bfe6e.entry.js.map → p-7a3eccef.entry.js.map} +0 -0
- /package/dist/pine-core/{p-3d0f3dcb.system.entry.js.map → p-7acb131c.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-fc2789df.system.entry.js.map → p-848763b6.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-c7259d80.system.entry.js.map → p-85e889c3.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-ce4de7f0.system.entry.js.map → p-8669e0e3.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-b7342b09.entry.js.map → p-8735cb58.entry.js.map} +0 -0
- /package/dist/pine-core/{p-78184199.entry.js.map → p-8c9f8ca6.entry.js.map} +0 -0
- /package/dist/pine-core/{p-f9a46770.system.entry.js.map → p-904e8d9d.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-ec7f210f.entry.js.map → p-91bea052.entry.js.map} +0 -0
- /package/dist/pine-core/{p-ae80a5cc.system.entry.js.map → p-9230df2a.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-43565cf5.entry.js.map → p-984db3fc.entry.js.map} +0 -0
- /package/dist/pine-core/{p-3f4435b8.system.entry.js.map → p-988d1723.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-3824d80d.system.entry.js.map → p-9a3c9d15.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-a896db32.system.entry.js.map → p-9b3aedeb.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-3c89502e.system.entry.js.map → p-9ce56712.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-08267d86.system.entry.js.map → p-9e48d1ea.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-7ba75e19.entry.js.map → p-9e5c58c6.entry.js.map} +0 -0
- /package/dist/pine-core/{p-4fc48330.entry.js.map → p-a30b386f.entry.js.map} +0 -0
- /package/dist/pine-core/{p-a81aa273.system.entry.js.map → p-a5014407.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-e2c42a2e.system.entry.js.map → p-a695ff4c.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-61bcaaee.entry.js.map → p-a8c49f8e.entry.js.map} +0 -0
- /package/dist/pine-core/{p-7456ae7a.system.entry.js.map → p-ae74a4b6.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-621405fc.entry.js.map → p-b1cde22a.entry.js.map} +0 -0
- /package/dist/pine-core/{p-ac2900e1.system.entry.js.map → p-b9340fb1.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-97d5a937.system.entry.js.map → p-b9fcc3f8.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-99739465.entry.js.map → p-bc8f61d1.entry.js.map} +0 -0
- /package/dist/pine-core/{p-1256b83e.entry.js.map → p-bea013d1.entry.js.map} +0 -0
- /package/dist/pine-core/{p-fcea314c.system.entry.js.map → p-c026479a.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-6c836757.entry.js.map → p-cab14421.entry.js.map} +0 -0
- /package/dist/pine-core/{p-fa68509f.entry.js.map → p-d5fcdcdd.entry.js.map} +0 -0
- /package/dist/pine-core/{p-cb9b6ccc.system.entry.js.map → p-d86e20b5.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-acf6592f.system.entry.js.map → p-d9354ad3.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-77807b63.entry.js.map → p-dab76f15.entry.js.map} +0 -0
- /package/dist/pine-core/{p-24656fd4.entry.js.map → p-db16d1fe.entry.js.map} +0 -0
- /package/dist/pine-core/{p-e9e4e7f9.system.entry.js.map → p-db63f83b.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-9120a7fa.system.entry.js.map → p-dd3ea74e.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-5b521b20.entry.js.map → p-e25da259.entry.js.map} +0 -0
- /package/dist/pine-core/{p-b611b9ab.system.entry.js.map → p-e288dc89.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-8dea1946.system.entry.js.map → p-ea5c42b8.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-6ca31ddd.entry.js.map → p-ed5d5be6.entry.js.map} +0 -0
- /package/dist/pine-core/{p-d83e411d.entry.js.map → p-ef081f0f.entry.js.map} +0 -0
- /package/dist/pine-core/{p-b42320fe.entry.js.map → p-f09c5021.entry.js.map} +0 -0
- /package/dist/pine-core/{p-4728c80a.entry.js.map → p-f201cf57.entry.js.map} +0 -0
- /package/dist/pine-core/{p-2dcd369d.entry.js.map → p-f20ab351.entry.js.map} +0 -0
- /package/dist/pine-core/{p-8c8048df.entry.js.map → p-f2798581.entry.js.map} +0 -0
- /package/dist/pine-core/{p-b294a16b.entry.js.map → p-f2ca0cf8.entry.js.map} +0 -0
- /package/dist/pine-core/{p-74486022.system.entry.js.map → p-f77fad86.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-6f4f62ff.system.entry.js.map → p-ff472f7c.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-2c88b85e.entry.js.map → p-ff5b2c90.entry.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pds-popover.entry.esm.js","sources":["src/components/pds-popover/pds-popover.scss?tag=pds-popover&encapsulation=shadow","src/components/pds-popover/pds-popover.tsx"],"sourcesContent":[":host {\n --sizing-max-width-default: 352px;\n\n display: inline-block;\n\n // Trigger wrapper for slotted content\n .pds-popover__trigger-wrapper {\n display: inline-block;\n }\n\n // Content slot wrapper is hidden (content is rendered in portal)\n .pds-popover__content-slot-wrapper {\n display: none;\n }\n}\n","import { Component, Element, Event, EventEmitter, Host, h, Method, Prop, State } from '@stencil/core';\nimport { PlacementType } from '@utils/types';\nimport { PdsPopoverEventDetail } from './popover-interface';\n\n/**\n * @slot trigger - The trigger element for the popover\n * @slot (default) - The content to display inside the popover\n */\n@Component({\n tag: 'pds-popover',\n styleUrl: 'pds-popover.scss',\n shadow: true,\n})\nexport class PdsPopover {\n /**\n * Reference to the Host element\n */\n @Element() el: HTMLPdsPopoverElement;\n\n /**\n * Determines when the popover is active\n * @defaultValue false\n */\n @State() active = false;\n\n /**\n * Tracks if the component is still mounted to prevent memory leaks\n */\n private isComponentMounted = true;\n\n /**\n * Reference to the trigger element\n */\n private triggerEl: HTMLElement | null = null;\n\n /**\n * Portal element rendered in document.body\n */\n private portalEl: HTMLElement | null = null;\n\n /**\n * Guard to prevent repositioning loops\n */\n private isRepositioning = false;\n\n /**\n * Debounce timers for performance optimization\n */\n private scrollDebounceTimer: ReturnType<typeof setTimeout> | null = null;\n private resizeDebounceTimer: ReturnType<typeof setTimeout> | null = null;\n\n /**\n * Track moved nodes and their placeholders for restoration\n */\n private movedNodes: Array<{ node: Node; placeholder: Comment }> = [];\n\n /**\n * Timestamp when popover was opened (for preventing immediate close)\n */\n private openTimestamp = 0;\n\n /**\n * Instance counter for unique IDs\n */\n private static instanceCounter = 0;\n\n /**\n * Bound handlers for cleanup\n */\n private boundClickOutsideHandler: (event: MouseEvent) => void;\n private boundEscapeKeyHandler: (event: KeyboardEvent) => void;\n private boundScrollHandler: () => void;\n private boundResizeHandler: () => void;\n\n /**\n * Emitted when the popover is opened\n */\n @Event() pdsPopoverOpen: EventEmitter<PdsPopoverEventDetail>;\n\n /**\n * Emitted when the popover is closed\n */\n @Event() pdsPopoverClose: EventEmitter<PdsPopoverEventDetail>;\n\n /**\n * Determines the action that triggers the popover. For manual popovers, the consumer is responsible for toggling this value.\n * @defaultValue \"show\"\n */\n @Prop() popoverTargetAction: 'show' | 'toggle' | 'hide' = 'show';\n\n /**\n * Determines the type of popover. Auto popovers can be \"light dismissed\" by clicking outside of the popover.\n * Manual popovers require the consumer to handle the visibility of the popover.\n */\n @Prop() popoverType: 'auto' | 'manual' = 'auto';\n\n /**\n * A unique identifier used for the underlying component `id` attribute.\n */\n @Prop() componentId: string;\n\n /**\n * Sets the maximum width of the popover content\n * @defaultValue 352\n */\n @Prop() maxWidth?: number = 352;\n\n /**\n * Determines the preferred position of the popover\n * @defaultValue \"right\"\n */\n @Prop({ reflect: true }) placement: PlacementType = 'right';\n\n componentDidLoad() {\n // Bind event handlers for cleanup\n this.boundClickOutsideHandler = this.handleClickOutside.bind(this);\n this.boundEscapeKeyHandler = this.handleEscapeKey.bind(this);\n this.boundScrollHandler = this.handleScroll.bind(this);\n this.boundResizeHandler = this.handleResize.bind(this);\n\n // Create portal element\n this.createPortal();\n\n // Initialize trigger element by calling slot change handler\n // This is a fallback for environments where slot change might not fire reliably\n const triggerSlot = this.el.shadowRoot?.querySelector('slot[name=\"trigger\"]') as HTMLSlotElement;\n if (triggerSlot && this.triggerEl == null) {\n const CustomEvent = (typeof window !== 'undefined' ? window.Event : global.Event) as any;\n const slotChangeEvent = new CustomEvent('slotchange');\n Object.defineProperty(slotChangeEvent, 'target', { value: triggerSlot, enumerable: true });\n this.handleTriggerSlotChange(slotChangeEvent);\n }\n }\n\n /**\n * Handles changes to the trigger slot\n */\n private handleTriggerSlotChange = (event: Event) => {\n const slot = event.target as HTMLSlotElement;\n const assignedElements = slot.assignedElements();\n\n // Clean up previous trigger's event listener if it exists\n if (this.triggerEl != null) {\n this.triggerEl.removeEventListener('click', this.handleTriggerClick);\n }\n\n if (assignedElements.length > 0) {\n // Use the first assigned element as the trigger\n this.triggerEl = assignedElements[0] as HTMLElement;\n\n // Set ARIA attributes to establish relationship between trigger and popover\n // This mirrors the native Popover API's accessibility behavior\n if (this.portalEl) {\n this.triggerEl.setAttribute('aria-expanded', String(this.active));\n this.triggerEl.setAttribute('aria-controls', this.portalEl.id);\n }\n\n // Attach click listener to handle popover visibility\n this.triggerEl.addEventListener('click', this.handleTriggerClick);\n } else {\n this.triggerEl = null;\n }\n };\n\n /**\n * Handles changes to the default slot (popover content)\n * When the popover is active, re-sync content with portal to handle dynamic updates\n */\n private handleContentSlotChange = () => {\n if (!this.active) return;\n this.updatePortalContent();\n };\n\n /**\n * Handles clicks on the trigger element\n */\n private handleTriggerClick = (event: Event) => {\n // Only prevent default if the trigger is not an anchor with href\n // This allows link navigation while still controlling popover visibility\n const composedPath = event.composedPath();\n const anchorWithHref = composedPath.find(\n (el) => el instanceof HTMLAnchorElement && (el as HTMLAnchorElement).href\n );\n\n if (!anchorWithHref) {\n event.preventDefault();\n }\n\n // Execute the appropriate action based on popoverTargetAction prop\n switch (this.popoverTargetAction) {\n case 'show':\n this.show();\n break;\n case 'hide':\n this.hide();\n break;\n case 'toggle':\n default:\n this.toggle();\n break;\n }\n };\n\n disconnectedCallback() {\n this.isComponentMounted = false;\n\n // Clean up trigger click event listener\n if (this.triggerEl != null) {\n this.triggerEl.removeEventListener('click', this.handleTriggerClick);\n }\n\n // Clean up all event listeners\n this.removeLightDismissListeners();\n this.removeScrollAndResizeListeners();\n\n // Clear any pending debounce timers\n this.clearDebounceTimers();\n\n // Remove portal from DOM\n this.removePortal();\n }\n\n /**\n * Clears any pending debounce timers\n */\n private clearDebounceTimers() {\n if (this.scrollDebounceTimer !== null) {\n clearTimeout(this.scrollDebounceTimer);\n this.scrollDebounceTimer = null;\n }\n if (this.resizeDebounceTimer !== null) {\n clearTimeout(this.resizeDebounceTimer);\n this.resizeDebounceTimer = null;\n }\n }\n\n private createPortal() {\n if (this.portalEl !== null) return;\n\n this.portalEl = document.createElement('div');\n this.portalEl.className = 'pds-popover';\n\n // Apply all styles inline since portal is outside shadow DOM\n this.portalEl.style.position = 'fixed';\n this.portalEl.style.zIndex = 'var(--pine-z-index-raised)';\n this.portalEl.style.maxWidth = `${this.maxWidth}px`;\n this.portalEl.style.display = 'none';\n this.portalEl.style.opacity = '0';\n this.portalEl.style.visibility = 'hidden';\n this.portalEl.style.backgroundColor = 'var(--pine-color-background-container)';\n this.portalEl.style.borderRadius = 'var(--pine-dimension-125)';\n this.portalEl.style.boxShadow = 'var(--pine-box-shadow-200)';\n this.portalEl.style.margin = 'var(--pine-dimension-none)';\n this.portalEl.style.padding = 'var(--pine-dimension-md)';\n\n // Generate unique ID\n if (!this.componentId) {\n const suffix = PdsPopover.instanceCounter++;\n this.portalEl.id = `pds-popover-portal-${suffix}`;\n } else {\n this.portalEl.id = `${this.componentId}-portal`;\n }\n\n // Add accessibility attributes for screen readers\n // Note: Native Popover API doesn't add a specific role, keeping semantic HTML\n this.portalEl.setAttribute('aria-modal', 'false'); // Not a modal, can interact with rest of page\n\n // Append to body\n document.body.appendChild(this.portalEl);\n\n // Add global focus styles to match Pine design system\n // This is done after appending to ensure it's part of the document and can access CSS variables\n this.addPortalFocusStyles();\n }\n\n /**\n * Adds Pine design system focus styles and dark mode border to the portal element\n * Uses CSS variables from Pine's design tokens\n */\n private addPortalFocusStyles() {\n if (!this.portalEl) return;\n\n const portalId = this.portalEl.id;\n\n // Check if style element already exists\n const existingStyle = document.querySelector(`style[data-pds-popover-focus=\"${portalId}\"]`);\n if (existingStyle) return;\n\n // Create style element with Pine's focus ring styles and dark mode border\n const styleEl = document.createElement('style');\n styleEl.setAttribute('data-pds-popover-focus', portalId);\n styleEl.textContent = `\n #${portalId}:focus {\n outline: var(--pine-outline-focus, 2px solid var(--pine-color-focus-ring, #6366f1)) !important;\n outline-offset: var(--pine-border-width, 1px);\n }\n #${portalId}:focus:not(:focus-visible) {\n outline: none;\n }\n [data-theme=\"dark\"] #${portalId} {\n border: var(--pine-border);\n }\n `;\n\n document.head.appendChild(styleEl);\n }\n\n /**\n * Moves slot content into portal (preserves event handlers and component instances)\n */\n private updatePortalContent() {\n if (!this.portalEl) return;\n\n const contentSlotWrapper = this.el.shadowRoot?.querySelector('.pds-popover__content-slot-wrapper');\n const defaultSlot = contentSlotWrapper?.querySelector('slot');\n\n if (defaultSlot) {\n const assignedNodes = defaultSlot.assignedNodes();\n\n // Move each node into portal and track with placeholder for restoration\n assignedNodes.forEach(node => {\n // Skip if node is already in the portal or already tracked\n const isAlreadyInPortal = node.parentNode === this.portalEl;\n const isAlreadyTracked = this.movedNodes.some(moved => moved.node === node);\n\n if (isAlreadyInPortal || isAlreadyTracked) {\n return;\n }\n\n // Create a placeholder comment to mark original position\n const placeholder = document.createComment('pds-popover-placeholder');\n\n // Insert placeholder before moving the node\n node.parentNode?.insertBefore(placeholder, node);\n\n // Move the actual node to portal (preserves all handlers and state)\n this.portalEl!.appendChild(node);\n\n // Track for restoration\n this.movedNodes.push({ node, placeholder });\n });\n }\n }\n\n /**\n * Restores moved nodes back to their original positions\n */\n private restorePortalContent() {\n // Restore each moved node to its original position\n this.movedNodes.forEach(({ node, placeholder }) => {\n if (placeholder.parentNode) {\n placeholder.parentNode.insertBefore(node, placeholder);\n placeholder.parentNode.removeChild(placeholder);\n }\n });\n\n // Clear tracking array\n this.movedNodes = [];\n }\n\n private removePortal() {\n if (this.portalEl) {\n // Remove the portal element from DOM\n if (this.portalEl.parentNode) {\n this.portalEl.parentNode.removeChild(this.portalEl);\n }\n\n // Remove the associated focus style element\n const portalId = this.portalEl.id;\n const styleEl = document.querySelector(`style[data-pds-popover-focus=\"${portalId}\"]`);\n if (styleEl && styleEl.parentNode) {\n styleEl.parentNode.removeChild(styleEl);\n }\n }\n this.portalEl = null;\n }\n\n /**\n * Opens the popover programmatically\n */\n @Method()\n async show() {\n if (this.active || !this.portalEl) return;\n\n this.active = true;\n\n // Record open timestamp to prevent immediate close from opening click\n this.openTimestamp = Date.now();\n\n // Update ARIA expanded state on trigger\n if (this.triggerEl) {\n this.triggerEl.setAttribute('aria-expanded', 'true');\n }\n\n // Update portal content with latest slot content\n this.updatePortalContent();\n\n // Show portal\n this.portalEl.style.display = 'block';\n this.portalEl.style.opacity = '1';\n this.portalEl.style.visibility = 'visible';\n\n // Position the popover\n requestAnimationFrame(() => {\n if (!this.isComponentMounted) return;\n this.handlePopoverPositioning();\n });\n\n // Add scroll and resize listeners for repositioning (always)\n this.addScrollAndResizeListeners();\n\n // Add document listeners for light dismiss and escape key (auto type only)\n if (this.popoverType === 'auto') {\n this.addLightDismissListeners();\n }\n\n // Emit open event\n this.pdsPopoverOpen.emit({\n componentId: this.componentId,\n popoverType: this.popoverType,\n });\n }\n\n /**\n * Closes the popover programmatically\n */\n @Method()\n async hide() {\n if (!this.active || !this.portalEl) return;\n\n this.active = false;\n\n // Update ARIA expanded state on trigger\n if (this.triggerEl) {\n this.triggerEl.setAttribute('aria-expanded', 'false');\n }\n\n // Restore content back to original slot positions\n this.restorePortalContent();\n\n // Hide portal\n this.portalEl.style.display = 'none';\n this.portalEl.style.opacity = '0';\n this.portalEl.style.visibility = 'hidden';\n\n // Return focus to trigger for keyboard accessibility\n // This mirrors native Popover API behavior on close\n this.returnFocusToTrigger();\n\n // Remove all listeners\n this.removeLightDismissListeners();\n this.removeScrollAndResizeListeners();\n\n // Clear any pending timers\n this.clearDebounceTimers();\n\n // Emit close event\n this.pdsPopoverClose.emit({\n componentId: this.componentId,\n popoverType: this.popoverType,\n });\n }\n\n /**\n * Toggles the popover open/closed state programmatically\n */\n @Method()\n async toggle() {\n if (this.active) {\n this.hide();\n } else {\n this.show();\n }\n }\n\n /**\n * Adds light dismiss listeners (click outside and escape key)\n */\n private addLightDismissListeners() {\n // Add listeners immediately - handleClickOutside will check timestamp\n document.addEventListener('click', this.boundClickOutsideHandler, true);\n document.addEventListener('keydown', this.boundEscapeKeyHandler);\n }\n\n /**\n * Removes light dismiss listeners\n */\n private removeLightDismissListeners() {\n document.removeEventListener('click', this.boundClickOutsideHandler, true);\n document.removeEventListener('keydown', this.boundEscapeKeyHandler);\n }\n\n /**\n * Adds scroll and resize listeners for repositioning\n */\n private addScrollAndResizeListeners() {\n window.addEventListener('scroll', this.boundScrollHandler, true);\n window.addEventListener('resize', this.boundResizeHandler);\n }\n\n /**\n * Removes scroll and resize listeners\n */\n private removeScrollAndResizeListeners() {\n window.removeEventListener('scroll', this.boundScrollHandler, true);\n window.removeEventListener('resize', this.boundResizeHandler);\n }\n\n /**\n * Handles clicks outside the popover for light dismiss (auto type only)\n */\n private handleClickOutside(event: MouseEvent) {\n // Ignore events that occurred at or before the popover opened\n // This prevents the opening click from immediately closing the popover\n // Convert event.timeStamp (DOMHighResTimeStamp from performance.now()) to epoch time\n // by calculating: currentEpochTime - (currentPerfTime - eventPerfTime)\n const eventTime = event.timeStamp\n ? Date.now() - (performance.now() - event.timeStamp)\n : Date.now();\n\n if (eventTime <= this.openTimestamp) {\n return;\n }\n\n const target = event.target as Node;\n\n // Check if click is outside both the popover portal and the trigger\n const clickedInsidePopover = this.portalEl?.contains(target);\n const clickedInsideTrigger = this.triggerEl?.contains(target);\n\n if (!clickedInsidePopover && !clickedInsideTrigger) {\n this.hide();\n }\n }\n\n /**\n * Returns focus to the trigger element with visible focus indicator\n * This ensures focus rings/outlines are shown as they would be with keyboard navigation\n */\n private returnFocusToTrigger() {\n if (!this.triggerEl) return;\n\n // Focus immediately while still in keyboard event context\n // This ensures the browser treats it as keyboard-initiated and shows focus ring\n this.triggerEl.focus({ preventScroll: true });\n }\n\n /**\n * Handles escape key press to close the popover\n * Mirrors native Popover API: Escape closes and returns focus to trigger\n */\n private handleEscapeKey(event: KeyboardEvent) {\n if (event.key === 'Escape') {\n // Prevent default Escape behavior and stop propagation\n // This mirrors native Popover API which handles Escape exclusively\n event.preventDefault();\n event.stopPropagation();\n\n // Close popover and return focus to trigger\n this.hide();\n }\n }\n\n /**\n * Handles scroll events to reposition the popover (debounced for performance)\n */\n private handleScroll() {\n if (!this.active) return;\n\n if (this.scrollDebounceTimer !== null) {\n clearTimeout(this.scrollDebounceTimer);\n }\n\n this.scrollDebounceTimer = setTimeout(() => {\n this.handlePopoverPositioning();\n this.scrollDebounceTimer = null;\n }, 10); // 10ms debounce for smooth repositioning\n }\n\n /**\n * Handles resize events to reposition the popover (debounced for performance)\n */\n private handleResize() {\n if (!this.active) return;\n\n if (this.resizeDebounceTimer !== null) {\n clearTimeout(this.resizeDebounceTimer);\n }\n\n this.resizeDebounceTimer = setTimeout(() => {\n this.handlePopoverPositioning();\n this.resizeDebounceTimer = null;\n }, 100); // 100ms debounce for resize\n }\n\n /**\n * Positions the popover relative to its trigger element\n */\n private handlePopoverPositioning() {\n // Prevent repositioning loops\n if (this.isRepositioning) {\n return;\n }\n\n this.isRepositioning = true;\n\n if (this.triggerEl == null || this.portalEl == null) {\n this.isRepositioning = false;\n return;\n }\n\n const triggerRect = this.triggerEl.getBoundingClientRect();\n const popoverRect = this.portalEl.getBoundingClientRect();\n\n // Safety check: ensure trigger has valid dimensions (is rendered and visible)\n if (triggerRect.width === 0 || triggerRect.height === 0) {\n this.isRepositioning = false;\n return;\n }\n\n let top = 0;\n let left = 0;\n const offset = 8;\n\n switch (this.placement) {\n case 'top':\n top = triggerRect.top - popoverRect.height - offset;\n left = triggerRect.left + (triggerRect.width - popoverRect.width) / 2;\n break;\n case 'top-start':\n top = triggerRect.top - popoverRect.height - offset;\n left = triggerRect.left;\n break;\n case 'top-end':\n top = triggerRect.top - popoverRect.height - offset;\n left = triggerRect.right - popoverRect.width;\n break;\n case 'right':\n top = triggerRect.top + (triggerRect.height - popoverRect.height) / 2;\n left = triggerRect.right + offset;\n break;\n case 'right-start':\n top = triggerRect.top;\n left = triggerRect.right + offset;\n break;\n case 'right-end':\n top = triggerRect.bottom - popoverRect.height;\n left = triggerRect.right + offset;\n break;\n case 'bottom':\n top = triggerRect.bottom + offset;\n left = triggerRect.left + (triggerRect.width - popoverRect.width) / 2;\n break;\n case 'bottom-start':\n top = triggerRect.bottom + offset;\n left = triggerRect.left;\n break;\n case 'bottom-end':\n top = triggerRect.bottom + offset;\n left = triggerRect.right - popoverRect.width;\n break;\n case 'left':\n top = triggerRect.top + (triggerRect.height - popoverRect.height) / 2;\n left = triggerRect.left - popoverRect.width - offset;\n break;\n case 'left-start':\n top = triggerRect.top;\n left = triggerRect.left - popoverRect.width - offset;\n break;\n case 'left-end':\n top = triggerRect.bottom - popoverRect.height;\n left = triggerRect.left - popoverRect.width - offset;\n break;\n }\n\n this.portalEl.style.top = `${top}px`;\n this.portalEl.style.left = `${left}px`;\n\n // Reset the repositioning guard after a short delay\n setTimeout(() => {\n this.isRepositioning = false;\n }, 16); // ~1 frame at 60fps\n }\n\n render() {\n return (\n <Host id={this.componentId}>\n <span class=\"pds-popover__trigger-wrapper\">\n <slot name=\"trigger\" onSlotchange={this.handleTriggerSlotChange}></slot>\n </span>\n\n <div class=\"pds-popover__content-slot-wrapper\">\n <slot onSlotchange={this.handleContentSlotChange}></slot>\n </div>\n </Host>\n );\n }\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pds-popover.entry.esm.js","sources":["src/components/pds-popover/pds-popover.scss?tag=pds-popover&encapsulation=shadow","src/components/pds-popover/pds-popover.tsx"],"sourcesContent":[":host {\n --sizing-max-width-default: 352px;\n\n display: inline-block;\n\n // Trigger wrapper for slotted content\n .pds-popover__trigger-wrapper {\n display: inline-block;\n }\n\n // Content slot wrapper is hidden (content is rendered in portal)\n .pds-popover__content-slot-wrapper {\n display: none;\n }\n}\n","import { Component, Element, Event, EventEmitter, Host, h, Method, Prop, State } from '@stencil/core';\nimport { PlacementType } from '@utils/types';\nimport { PdsPopoverEventDetail } from './popover-interface';\n\n/**\n * @slot trigger - The trigger element for the popover\n * @slot (default) - The content to display inside the popover\n */\n@Component({\n tag: 'pds-popover',\n styleUrl: 'pds-popover.scss',\n shadow: true,\n})\nexport class PdsPopover {\n /**\n * Reference to the Host element\n */\n @Element() el: HTMLPdsPopoverElement;\n\n /**\n * Determines when the popover is active\n * @defaultValue false\n */\n @State() active = false;\n\n /**\n * Tracks if the component is still mounted to prevent memory leaks\n */\n private isComponentMounted = true;\n\n /**\n * Reference to the trigger element\n */\n private triggerEl: HTMLElement | null = null;\n\n /**\n * Portal element rendered in document.body\n */\n private portalEl: HTMLElement | null = null;\n\n /**\n * Guard to prevent repositioning loops\n */\n private isRepositioning = false;\n\n /**\n * Debounce timers for performance optimization\n */\n private scrollDebounceTimer: ReturnType<typeof setTimeout> | null = null;\n private resizeDebounceTimer: ReturnType<typeof setTimeout> | null = null;\n\n /**\n * Track moved nodes and their placeholders for restoration\n */\n private movedNodes: Array<{ node: Node; placeholder: Comment }> = [];\n\n /**\n * Timestamp when popover was opened (for preventing immediate close)\n */\n private openTimestamp = 0;\n\n /**\n * Instance counter for unique IDs\n */\n private static instanceCounter = 0;\n\n /**\n * Bound handlers for cleanup\n */\n private boundClickOutsideHandler: (event: MouseEvent) => void;\n private boundEscapeKeyHandler: (event: KeyboardEvent) => void;\n private boundScrollHandler: () => void;\n private boundResizeHandler: () => void;\n\n /**\n * Emitted when the popover is opened\n */\n @Event() pdsPopoverOpen: EventEmitter<PdsPopoverEventDetail>;\n\n /**\n * Emitted when the popover is closed\n */\n @Event() pdsPopoverClose: EventEmitter<PdsPopoverEventDetail>;\n\n /**\n * Determines the action that triggers the popover. For manual popovers, the consumer is responsible for toggling this value.\n * @defaultValue \"show\"\n */\n @Prop() popoverTargetAction: 'show' | 'toggle' | 'hide' = 'show';\n\n /**\n * Determines the type of popover. Auto popovers can be \"light dismissed\" by clicking outside of the popover.\n * Manual popovers require the consumer to handle the visibility of the popover.\n */\n @Prop() popoverType: 'auto' | 'manual' = 'auto';\n\n /**\n * A unique identifier used for the underlying component `id` attribute.\n */\n @Prop() componentId: string;\n\n /**\n * Sets the maximum width of the popover content\n * @defaultValue 352\n */\n @Prop() maxWidth?: number = 352;\n\n /**\n * Determines the preferred position of the popover\n * @defaultValue \"right\"\n */\n @Prop({ reflect: true }) placement: PlacementType = 'right';\n\n componentDidLoad() {\n // Bind event handlers for cleanup\n this.boundClickOutsideHandler = this.handleClickOutside.bind(this);\n this.boundEscapeKeyHandler = this.handleEscapeKey.bind(this);\n this.boundScrollHandler = this.handleScroll.bind(this);\n this.boundResizeHandler = this.handleResize.bind(this);\n\n // Create portal element\n this.createPortal();\n\n // Initialize trigger element by calling slot change handler\n // This is a fallback for environments where slot change might not fire reliably\n const triggerSlot = this.el.shadowRoot?.querySelector('slot[name=\"trigger\"]') as HTMLSlotElement;\n if (triggerSlot && this.triggerEl == null) {\n const CustomEvent = (typeof window !== 'undefined' ? window.Event : global.Event) as any;\n const slotChangeEvent = new CustomEvent('slotchange');\n Object.defineProperty(slotChangeEvent, 'target', { value: triggerSlot, enumerable: true });\n this.handleTriggerSlotChange(slotChangeEvent);\n }\n }\n\n /**\n * Handles changes to the trigger slot\n */\n private handleTriggerSlotChange = (event: Event) => {\n const slot = event.target as HTMLSlotElement;\n const assignedElements = slot.assignedElements();\n\n // Clean up previous trigger's event listener if it exists\n if (this.triggerEl != null) {\n this.triggerEl.removeEventListener('click', this.handleTriggerClick);\n }\n\n if (assignedElements.length > 0) {\n // Use the first assigned element as the trigger\n this.triggerEl = assignedElements[0] as HTMLElement;\n\n // Set ARIA attributes to establish relationship between trigger and popover\n // This mirrors the native Popover API's accessibility behavior\n if (this.portalEl) {\n this.triggerEl.setAttribute('aria-expanded', String(this.active));\n this.triggerEl.setAttribute('aria-controls', this.portalEl.id);\n }\n\n // Attach click listener to handle popover visibility\n this.triggerEl.addEventListener('click', this.handleTriggerClick);\n } else {\n this.triggerEl = null;\n }\n };\n\n /**\n * Handles changes to the default slot (popover content)\n * When the popover is active, re-sync content with portal to handle dynamic updates\n */\n private handleContentSlotChange = () => {\n if (!this.active) return;\n this.updatePortalContent();\n };\n\n /**\n * Handles clicks on the trigger element\n */\n private handleTriggerClick = (event: Event) => {\n // Only prevent default if the trigger is not an anchor with href\n // This allows link navigation while still controlling popover visibility\n const composedPath = event.composedPath();\n const anchorWithHref = composedPath.find(\n (el) => el instanceof HTMLAnchorElement && (el as HTMLAnchorElement).href\n );\n\n if (!anchorWithHref) {\n event.preventDefault();\n }\n\n // Execute the appropriate action based on popoverTargetAction prop\n switch (this.popoverTargetAction) {\n case 'show':\n this.show();\n break;\n case 'hide':\n this.hide();\n break;\n case 'toggle':\n default:\n this.toggle();\n break;\n }\n };\n\n disconnectedCallback() {\n this.isComponentMounted = false;\n\n // Clean up trigger click event listener\n if (this.triggerEl != null) {\n this.triggerEl.removeEventListener('click', this.handleTriggerClick);\n }\n\n // Clean up all event listeners\n this.removeLightDismissListeners();\n this.removeScrollAndResizeListeners();\n\n // Clear any pending debounce timers\n this.clearDebounceTimers();\n\n // Remove portal from DOM\n this.removePortal();\n }\n\n /**\n * Clears any pending debounce timers\n */\n private clearDebounceTimers() {\n if (this.scrollDebounceTimer !== null) {\n clearTimeout(this.scrollDebounceTimer);\n this.scrollDebounceTimer = null;\n }\n if (this.resizeDebounceTimer !== null) {\n clearTimeout(this.resizeDebounceTimer);\n this.resizeDebounceTimer = null;\n }\n }\n\n private createPortal() {\n if (this.portalEl !== null) return;\n\n this.portalEl = document.createElement('div');\n this.portalEl.className = 'pds-popover';\n\n // Apply all styles inline since portal is outside shadow DOM\n this.portalEl.style.position = 'fixed';\n this.portalEl.style.zIndex = 'var(--pine-z-index-raised)';\n this.portalEl.style.maxWidth = `${this.maxWidth}px`;\n this.portalEl.style.display = 'none';\n this.portalEl.style.opacity = '0';\n this.portalEl.style.visibility = 'hidden';\n this.portalEl.style.backgroundColor = 'var(--pine-color-background-overlay)';\n this.portalEl.style.borderRadius = 'var(--pine-dimension-125)';\n this.portalEl.style.boxShadow = 'var(--pine-box-shadow-200)';\n this.portalEl.style.margin = 'var(--pine-dimension-none)';\n this.portalEl.style.padding = 'var(--pine-dimension-md)';\n\n // Generate unique ID\n if (!this.componentId) {\n const suffix = PdsPopover.instanceCounter++;\n this.portalEl.id = `pds-popover-portal-${suffix}`;\n } else {\n this.portalEl.id = `${this.componentId}-portal`;\n }\n\n // Add accessibility attributes for screen readers\n // Note: Native Popover API doesn't add a specific role, keeping semantic HTML\n this.portalEl.setAttribute('aria-modal', 'false'); // Not a modal, can interact with rest of page\n\n // Append to body\n document.body.appendChild(this.portalEl);\n\n // Add global focus styles to match Pine design system\n // This is done after appending to ensure it's part of the document and can access CSS variables\n this.addPortalFocusStyles();\n }\n\n /**\n * Adds Pine design system focus styles and dark mode border to the portal element\n * Uses CSS variables from Pine's design tokens\n */\n private addPortalFocusStyles() {\n if (!this.portalEl) return;\n\n const portalId = this.portalEl.id;\n\n // Check if style element already exists\n const existingStyle = document.querySelector(`style[data-pds-popover-focus=\"${portalId}\"]`);\n if (existingStyle) return;\n\n // Create style element with Pine's focus ring styles and dark mode border\n const styleEl = document.createElement('style');\n styleEl.setAttribute('data-pds-popover-focus', portalId);\n styleEl.textContent = `\n #${portalId}:focus {\n outline: var(--pine-outline-focus, 2px solid var(--pine-color-focus-ring, #6366f1)) !important;\n outline-offset: var(--pine-border-width, 1px);\n }\n #${portalId}:focus:not(:focus-visible) {\n outline: none;\n }\n [data-theme=\"dark\"] #${portalId} {\n border: var(--pine-border);\n }\n `;\n\n document.head.appendChild(styleEl);\n }\n\n /**\n * Moves slot content into portal (preserves event handlers and component instances)\n */\n private updatePortalContent() {\n if (!this.portalEl) return;\n\n const contentSlotWrapper = this.el.shadowRoot?.querySelector('.pds-popover__content-slot-wrapper');\n const defaultSlot = contentSlotWrapper?.querySelector('slot');\n\n if (defaultSlot) {\n const assignedNodes = defaultSlot.assignedNodes();\n\n // Move each node into portal and track with placeholder for restoration\n assignedNodes.forEach(node => {\n // Skip if node is already in the portal or already tracked\n const isAlreadyInPortal = node.parentNode === this.portalEl;\n const isAlreadyTracked = this.movedNodes.some(moved => moved.node === node);\n\n if (isAlreadyInPortal || isAlreadyTracked) {\n return;\n }\n\n // Create a placeholder comment to mark original position\n const placeholder = document.createComment('pds-popover-placeholder');\n\n // Insert placeholder before moving the node\n node.parentNode?.insertBefore(placeholder, node);\n\n // Move the actual node to portal (preserves all handlers and state)\n this.portalEl!.appendChild(node);\n\n // Track for restoration\n this.movedNodes.push({ node, placeholder });\n });\n }\n }\n\n /**\n * Restores moved nodes back to their original positions\n */\n private restorePortalContent() {\n // Restore each moved node to its original position\n this.movedNodes.forEach(({ node, placeholder }) => {\n if (placeholder.parentNode) {\n placeholder.parentNode.insertBefore(node, placeholder);\n placeholder.parentNode.removeChild(placeholder);\n }\n });\n\n // Clear tracking array\n this.movedNodes = [];\n }\n\n private removePortal() {\n if (this.portalEl) {\n // Remove the portal element from DOM\n if (this.portalEl.parentNode) {\n this.portalEl.parentNode.removeChild(this.portalEl);\n }\n\n // Remove the associated focus style element\n const portalId = this.portalEl.id;\n const styleEl = document.querySelector(`style[data-pds-popover-focus=\"${portalId}\"]`);\n if (styleEl && styleEl.parentNode) {\n styleEl.parentNode.removeChild(styleEl);\n }\n }\n this.portalEl = null;\n }\n\n /**\n * Opens the popover programmatically\n */\n @Method()\n async show() {\n if (this.active || !this.portalEl) return;\n\n this.active = true;\n\n // Record open timestamp to prevent immediate close from opening click\n this.openTimestamp = Date.now();\n\n // Update ARIA expanded state on trigger\n if (this.triggerEl) {\n this.triggerEl.setAttribute('aria-expanded', 'true');\n }\n\n // Update portal content with latest slot content\n this.updatePortalContent();\n\n // Show portal\n this.portalEl.style.display = 'block';\n this.portalEl.style.opacity = '1';\n this.portalEl.style.visibility = 'visible';\n\n // Position the popover\n requestAnimationFrame(() => {\n if (!this.isComponentMounted) return;\n this.handlePopoverPositioning();\n });\n\n // Add scroll and resize listeners for repositioning (always)\n this.addScrollAndResizeListeners();\n\n // Add document listeners for light dismiss and escape key (auto type only)\n if (this.popoverType === 'auto') {\n this.addLightDismissListeners();\n }\n\n // Emit open event\n this.pdsPopoverOpen.emit({\n componentId: this.componentId,\n popoverType: this.popoverType,\n });\n }\n\n /**\n * Closes the popover programmatically\n */\n @Method()\n async hide() {\n if (!this.active || !this.portalEl) return;\n\n this.active = false;\n\n // Update ARIA expanded state on trigger\n if (this.triggerEl) {\n this.triggerEl.setAttribute('aria-expanded', 'false');\n }\n\n // Restore content back to original slot positions\n this.restorePortalContent();\n\n // Hide portal\n this.portalEl.style.display = 'none';\n this.portalEl.style.opacity = '0';\n this.portalEl.style.visibility = 'hidden';\n\n // Return focus to trigger for keyboard accessibility\n // This mirrors native Popover API behavior on close\n this.returnFocusToTrigger();\n\n // Remove all listeners\n this.removeLightDismissListeners();\n this.removeScrollAndResizeListeners();\n\n // Clear any pending timers\n this.clearDebounceTimers();\n\n // Emit close event\n this.pdsPopoverClose.emit({\n componentId: this.componentId,\n popoverType: this.popoverType,\n });\n }\n\n /**\n * Toggles the popover open/closed state programmatically\n */\n @Method()\n async toggle() {\n if (this.active) {\n this.hide();\n } else {\n this.show();\n }\n }\n\n /**\n * Adds light dismiss listeners (click outside and escape key)\n */\n private addLightDismissListeners() {\n // Add listeners immediately - handleClickOutside will check timestamp\n document.addEventListener('click', this.boundClickOutsideHandler, true);\n document.addEventListener('keydown', this.boundEscapeKeyHandler);\n }\n\n /**\n * Removes light dismiss listeners\n */\n private removeLightDismissListeners() {\n document.removeEventListener('click', this.boundClickOutsideHandler, true);\n document.removeEventListener('keydown', this.boundEscapeKeyHandler);\n }\n\n /**\n * Adds scroll and resize listeners for repositioning\n */\n private addScrollAndResizeListeners() {\n window.addEventListener('scroll', this.boundScrollHandler, true);\n window.addEventListener('resize', this.boundResizeHandler);\n }\n\n /**\n * Removes scroll and resize listeners\n */\n private removeScrollAndResizeListeners() {\n window.removeEventListener('scroll', this.boundScrollHandler, true);\n window.removeEventListener('resize', this.boundResizeHandler);\n }\n\n /**\n * Handles clicks outside the popover for light dismiss (auto type only)\n */\n private handleClickOutside(event: MouseEvent) {\n // Ignore events that occurred at or before the popover opened\n // This prevents the opening click from immediately closing the popover\n // Convert event.timeStamp (DOMHighResTimeStamp from performance.now()) to epoch time\n // by calculating: currentEpochTime - (currentPerfTime - eventPerfTime)\n const eventTime = event.timeStamp\n ? Date.now() - (performance.now() - event.timeStamp)\n : Date.now();\n\n if (eventTime <= this.openTimestamp) {\n return;\n }\n\n const target = event.target as Node;\n\n // Check if click is outside both the popover portal and the trigger\n const clickedInsidePopover = this.portalEl?.contains(target);\n const clickedInsideTrigger = this.triggerEl?.contains(target);\n\n if (!clickedInsidePopover && !clickedInsideTrigger) {\n this.hide();\n }\n }\n\n /**\n * Returns focus to the trigger element with visible focus indicator\n * This ensures focus rings/outlines are shown as they would be with keyboard navigation\n */\n private returnFocusToTrigger() {\n if (!this.triggerEl) return;\n\n // Focus immediately while still in keyboard event context\n // This ensures the browser treats it as keyboard-initiated and shows focus ring\n this.triggerEl.focus({ preventScroll: true });\n }\n\n /**\n * Handles escape key press to close the popover\n * Mirrors native Popover API: Escape closes and returns focus to trigger\n */\n private handleEscapeKey(event: KeyboardEvent) {\n if (event.key === 'Escape') {\n // Prevent default Escape behavior and stop propagation\n // This mirrors native Popover API which handles Escape exclusively\n event.preventDefault();\n event.stopPropagation();\n\n // Close popover and return focus to trigger\n this.hide();\n }\n }\n\n /**\n * Handles scroll events to reposition the popover (debounced for performance)\n */\n private handleScroll() {\n if (!this.active) return;\n\n if (this.scrollDebounceTimer !== null) {\n clearTimeout(this.scrollDebounceTimer);\n }\n\n this.scrollDebounceTimer = setTimeout(() => {\n this.handlePopoverPositioning();\n this.scrollDebounceTimer = null;\n }, 10); // 10ms debounce for smooth repositioning\n }\n\n /**\n * Handles resize events to reposition the popover (debounced for performance)\n */\n private handleResize() {\n if (!this.active) return;\n\n if (this.resizeDebounceTimer !== null) {\n clearTimeout(this.resizeDebounceTimer);\n }\n\n this.resizeDebounceTimer = setTimeout(() => {\n this.handlePopoverPositioning();\n this.resizeDebounceTimer = null;\n }, 100); // 100ms debounce for resize\n }\n\n /**\n * Positions the popover relative to its trigger element\n */\n private handlePopoverPositioning() {\n // Prevent repositioning loops\n if (this.isRepositioning) {\n return;\n }\n\n this.isRepositioning = true;\n\n if (this.triggerEl == null || this.portalEl == null) {\n this.isRepositioning = false;\n return;\n }\n\n const triggerRect = this.triggerEl.getBoundingClientRect();\n const popoverRect = this.portalEl.getBoundingClientRect();\n\n // Safety check: ensure trigger has valid dimensions (is rendered and visible)\n if (triggerRect.width === 0 || triggerRect.height === 0) {\n this.isRepositioning = false;\n return;\n }\n\n let top = 0;\n let left = 0;\n const offset = 8;\n\n switch (this.placement) {\n case 'top':\n top = triggerRect.top - popoverRect.height - offset;\n left = triggerRect.left + (triggerRect.width - popoverRect.width) / 2;\n break;\n case 'top-start':\n top = triggerRect.top - popoverRect.height - offset;\n left = triggerRect.left;\n break;\n case 'top-end':\n top = triggerRect.top - popoverRect.height - offset;\n left = triggerRect.right - popoverRect.width;\n break;\n case 'right':\n top = triggerRect.top + (triggerRect.height - popoverRect.height) / 2;\n left = triggerRect.right + offset;\n break;\n case 'right-start':\n top = triggerRect.top;\n left = triggerRect.right + offset;\n break;\n case 'right-end':\n top = triggerRect.bottom - popoverRect.height;\n left = triggerRect.right + offset;\n break;\n case 'bottom':\n top = triggerRect.bottom + offset;\n left = triggerRect.left + (triggerRect.width - popoverRect.width) / 2;\n break;\n case 'bottom-start':\n top = triggerRect.bottom + offset;\n left = triggerRect.left;\n break;\n case 'bottom-end':\n top = triggerRect.bottom + offset;\n left = triggerRect.right - popoverRect.width;\n break;\n case 'left':\n top = triggerRect.top + (triggerRect.height - popoverRect.height) / 2;\n left = triggerRect.left - popoverRect.width - offset;\n break;\n case 'left-start':\n top = triggerRect.top;\n left = triggerRect.left - popoverRect.width - offset;\n break;\n case 'left-end':\n top = triggerRect.bottom - popoverRect.height;\n left = triggerRect.left - popoverRect.width - offset;\n break;\n }\n\n this.portalEl.style.top = `${top}px`;\n this.portalEl.style.left = `${left}px`;\n\n // Reset the repositioning guard after a short delay\n setTimeout(() => {\n this.isRepositioning = false;\n }, 16); // ~1 frame at 60fps\n }\n\n render() {\n return (\n <Host id={this.componentId}>\n <span class=\"pds-popover__trigger-wrapper\">\n <slot name=\"trigger\" onSlotchange={this.handleTriggerSlotChange}></slot>\n </span>\n\n <div class=\"pds-popover__content-slot-wrapper\">\n <slot onSlotchange={this.handleContentSlotChange}></slot>\n </div>\n </Host>\n );\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pds-radio.entry.esm.js","sources":["src/global/styles/utils/label.scss?tag=pds-radio&encapsulation=scoped","src/components/pds-radio/pds-radio.scss?tag=pds-radio&encapsulation=scoped","src/components/pds-radio/pds-radio.tsx"],"sourcesContent":[":host {\n display: inline-block;\n}\n\n:host([aria-disabled=\"true\"]) label {\n color: var(--pine-color-text-label-disabled);\n}\n\n:host([aria-readonly=\"true\"]) {\n label {\n color: var(--pine-color-text-label-readonly);\n }\n}\n\nlabel {\n color: var(--pine-color-text-label);\n font: var(--pine-typography-body-medium);\n letter-spacing: var(--pine-letter-spacing);\n}\n",":host {\n --sizing-check-size: 6px;\n --sizing-input-size: var(--pine-dimension-sm);\n --sizing-margin-block-start: 6px;\n\n align-items: center;\n display: flex;\n flex-flow: row wrap;\n position: relative;\n}\n\n:host(.is-invalid) {\n // Invalid state only affects error message styling, not the radio itself\n // This allows radio-group to handle error display without red radios\n .pds-radio__message--error {\n color: var(--pine-color-text-message-danger);\n }\n}\n\n:host(.has-border) {\n align-items: flex-start;\n border: var(--pine-border);\n border-radius: var(--pine-dimension-125);\n column-gap: var(--pine-dimension-xs);\n display: flex;\n flex: 1;\n flex-direction: column;\n padding: var(--pine-dimension-md);\n\n // On small screens, ensure full width when in a row layout\n @media (max-width: 767px) {\n box-sizing: border-box;\n flex: 1 1 100%;\n max-width: 100%;\n min-width: 0;\n }\n\n &:hover {\n border: var(--pine-border-hover);\n }\n\n &:has(input:checked) {\n box-shadow: 0 0 0 2px var(--pine-color-primary-hover);\n }\n\n label {\n color: var(--pine-color-text);\n font-weight: var(--pine-font-weight-semi-bold);\n\n &::after {\n content: \"\";\n cursor: pointer;\n height: 100%;\n left: 0;\n position: absolute;\n top: 0;\n width: 100%;\n z-index: 1;\n }\n }\n\n // Disabled state for bordered radios\n &:has(input:disabled) {\n background: var(--pine-color-background-container-disabled);\n border-color: var(--pine-color-border-disabled);\n cursor: not-allowed;\n\n label {\n color: var(--pine-color-text-label-disabled);\n cursor: not-allowed;\n }\n }\n\n // Invalid state for bordered radios - no red styling, only error message\n &.is-invalid {\n .pds-radio__message--error {\n color: var(--pine-color-text-message-danger);\n }\n }\n}\n\ninput {\n appearance: none;\n background: var(--pine-color-background-container);\n border: var(--pine-border);\n border-radius: var(--pine-border-radius-full);\n flex: none;\n height: var(--sizing-input-size);\n margin: 0;\n margin-block-start: var(--pine-dimension-025);\n position: relative;\n width: var(--sizing-input-size);\n\n /* stylelint-disable-next-line selector-no-qualifying-type */\n &.visually-hidden {\n border: 0;\n clip: rect(0 0 0 0);\n clip-path: polygon(0 0, 0 0, 0 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n white-space: nowrap;\n width: 1px;\n }\n\n &:hover {\n background: var(--pine-color-background-container-hover);\n border: var(--pine-border-hover);\n }\n\n &:checked {\n background: var(--pine-color-accent);\n border-color: var(--pine-color-accent);\n\n &:hover {\n background: var(--pine-color-accent-hover);\n border-color: var(--pine-color-accent-hover);\n }\n\n &::after {\n /* stylelint-disable-next-line pine-design-system/prefer-semantic-tokens */\n background: var(--pine-color-white);\n border-radius: var(--pine-border-radius-full);\n content: \"\";\n display: block;\n height: var(--sizing-check-size);\n left: 50%;\n position: absolute;\n top: 50%;\n transform: translate(-50%, -50%);\n width: var(--sizing-check-size);\n }\n }\n\n &:disabled {\n background: var(--pine-color-background-container-disabled);\n border-color: var(--pine-color-border-disabled);\n cursor: not-allowed;\n\n &:checked {\n background-color: var(--pine-color-accent-disabled);\n border-color: var(--pine-color-border-disabled);\n\n &::after {\n border-color: var(--pine-color-border-disabled);\n }\n }\n\n\n }\n\n &:focus-visible {\n outline: var(--pine-outline-focus);\n }\n\n}\n\nlabel {\n display: flex;\n gap: var(--pine-dimension-xs);\n}\n\n// Disabled label styling\nlabel:has(input:disabled) {\n color: var(--pine-color-text-label-disabled);\n cursor: not-allowed;\n}\n\n// Disabled message styling\n:host:has(input:disabled) .pds-radio__message {\n color: var(--pine-color-text-label-disabled);\n}\n\n.visually-hidden {\n border: 0;\n clip: rect(0 0 0 0);\n clip-path: polygon(0 0, 0 0, 0 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n white-space: nowrap;\n width: 1px;\n}\n\n.pds-radio__message {\n color: var(--pine-color-text-message);\n flex-basis: 100%; // Ensure message wraps to new line in flex container\n font: var(--pine-typography-body);\n margin-inline-start: var(--pine-dimension-md);\n width: 100%;\n}\n\n.pds-radio__message--error {\n display: flex;\n gap: var(--pine-dimension-2xs);\n\n pds-icon {\n margin-block-start: var(--pine-dimension-025);\n }\n}\n\n// Image-based radio styles - matches bordered layout\n:host(.has-image) {\n align-items: center;\n border: var(--pine-border);\n border-radius: var(--pine-dimension-125);\n column-gap: var(--pine-dimension-xs);\n display: flex;\n flex: 1;\n padding: var(--pine-dimension-md);\n\n // On small screens, ensure full width when in a row layout\n @media (max-width: 767px) {\n box-sizing: border-box;\n flex: 1 1 100%;\n max-width: 100%;\n min-width: 0;\n }\n\n &:hover {\n border: var(--pine-border-hover);\n }\n\n &:has(input:checked) {\n box-shadow: 0 0 0 2px var(--pine-color-primary-hover);\n }\n\n label {\n color: var(--pine-color-text);\n display: flex;\n font-weight: var(--pine-font-weight-semi-bold);\n gap: var(--pine-dimension-xs);\n\n &::after {\n content: \"\";\n cursor: pointer;\n height: 100%;\n left: 0;\n position: absolute;\n top: 0;\n width: 100%;\n z-index: 1;\n }\n }\n\n .pds-radio__image-container {\n align-items: center;\n align-self: center;\n border: var(--pine-border);\n border-radius: var(--pine-border-radius-full);\n cursor: pointer;\n display: flex;\n flex: none;\n grid-area: image;\n justify-content: center;\n overflow: hidden;\n position: relative;\n transition: all 0.2s ease;\n\n &:hover {\n border-color: var(--pine-color-border-hover);\n }\n\n .pds-radio__image {\n height: 100%;\n object-fit: cover;\n width: 100%;\n }\n }\n\n .pds-radio__message {\n grid-area: message;\n margin-block-start: 0;\n margin-inline-start: 0;\n }\n\n // Disabled state\n &.is-disabled {\n background: var(--pine-color-background-container-disabled);\n border-color: var(--pine-color-border-disabled);\n cursor: not-allowed;\n\n .pds-radio__image-container {\n border-color: var(--pine-color-border-disabled);\n cursor: not-allowed;\n opacity: 0.5;\n\n &:hover {\n border-color: var(--pine-color-border-disabled);\n }\n }\n\n label {\n color: var(--pine-color-text-label-disabled);\n cursor: not-allowed;\n }\n\n .pds-radio__message {\n color: var(--pine-color-text-label-disabled);\n }\n }\n\n // Invalid state - no red styling, only error message\n &.is-invalid {\n .pds-radio__message--error {\n color: var(--pine-color-text-message-danger);\n }\n }\n}\n","import { Component, Host, h, Prop, Event, EventEmitter, Element, State } from '@stencil/core';\nimport { assignDescription, messageId, exposeTypeProperty } from '../../utils/form';\nimport { danger } from '@pine-ds/icons/icons';\n\n/**\n * @slot image - Custom image content to display instead of the default radio input\n * @part image-container - The container for the image\n */\n@Component({\n tag: 'pds-radio',\n styleUrls: ['../../global/styles/utils/label.scss', 'pds-radio.scss'],\n scoped: true,\n})\nexport class PdsRadio {\n private readonly _type = 'radio' as const;\n\n @Element() el: HTMLPdsRadioElement;\n\n @State() private _hasImage = false;\n\n /**\n * Determines whether or not the radio is checked.\n * @defaultValue false\n */\n @Prop() checked = 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 * Determines whether or not the radio is disabled.\n * @defaultValue false\n */\n @Prop() disabled = false;\n\n /**\n * Displays error message text describing an invalid state.\n */\n @Prop() errorMessage: string;\n\n /**\n * Displays helper message text below radio.\n */\n @Prop() helperMessage: string;\n\n /**\n * Adds a border around the radio component for better visual separation.\n * @defaultValue false\n */\n @Prop() hasBorder = false;\n\n /**\n * Determines whether or not the radio is invalid.\n * @defaultValue false\n */\n @Prop() invalid = false;\n\n /**\n * String used for label text next to radio.\n */\n @Prop() label: string;\n\n /**\n * Visually hides the label text for instances where only the radio should be displayed. Label remains accessible to assistive technology such as screen readers.\n */\n @Prop() hideLabel: boolean;\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 /**\n * Emits a boolean indicating whether the radio 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 // If this radio is inside a pds-radio-group, don't emit the individual event\n // The group will handle emitting its own event\n if (this.el.closest('pds-radio-group')) {\n return;\n }\n\n this.pdsRadioChange.emit(isChecked);\n }\n\n private hasImageSlot(): boolean {\n const imageSlot = this.el.querySelector('[slot=\"image\"]');\n return !!imageSlot;\n }\n\n private hasImage(): boolean {\n return this._hasImage;\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 if (this.hasBorder) {\n classNames.push('has-border');\n }\n if (this.hasImage()) {\n classNames.push('has-image');\n }\n\n return classNames.join(' ');\n }\n\n componentWillLoad() {\n this._hasImage = this.hasImageSlot();\n }\n\n connectedCallback() {\n // Expose type property on the element instance to match native form element behavior\n exposeTypeProperty(this.el, () => this._type);\n }\n\n render() {\n const renderLabelAndMessages = () => [\n <label htmlFor={this.componentId} key={`${this.componentId}-label`}>\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 class={this.hasImage() ? 'visually-hidden' : ''}\n />\n <span class={this.hideLabel ? 'visually-hidden' : ''}>\n {this.label}\n </span>\n </label>,\n this.helperMessage && (\n <div\n key={`${this.componentId}-helper`}\n class={'pds-radio__message'}\n id={messageId(this.componentId, 'helper')}\n >\n {this.helperMessage}\n </div>\n ),\n this.errorMessage && (\n <div\n key={`${this.componentId}-error`}\n class={`pds-radio__message pds-radio__message--error`}\n id={messageId(this.componentId, 'error')}\n aria-live=\"assertive\"\n >\n <pds-icon icon={danger} size=\"small\" />\n {this.errorMessage}\n </div>\n )\n ];\n\n return (\n <Host class={this.classNames()}>\n {this.hasImage() && (\n <div class=\"pds-radio__image-container\" part=\"image-container\">\n <slot name=\"image\" onSlotchange={() => (this._hasImage = this.hasImageSlot())} />\n </div>\n )}\n {this.hasImage() ? (\n <div class=\"pds-radio__content-wrapper\">\n {renderLabelAndMessages()}\n </div>\n ) : (\n renderLabelAndMessages()\n )}\n </Host>\n );\n }\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pds-radio.entry.esm.js","sources":["src/global/styles/utils/label.scss?tag=pds-radio&encapsulation=scoped","src/components/pds-radio/pds-radio.scss?tag=pds-radio&encapsulation=scoped","src/components/pds-radio/pds-radio.tsx"],"sourcesContent":[":host {\n display: inline-block;\n}\n\n:host([aria-disabled=\"true\"]) label {\n color: var(--pine-color-text-label-disabled);\n}\n\n:host([aria-readonly=\"true\"]) {\n label {\n color: var(--pine-color-text-label-readonly);\n }\n}\n\nlabel {\n color: var(--pine-color-text-label);\n font: var(--pine-typography-body-medium);\n letter-spacing: var(--pine-letter-spacing);\n}\n",":host {\n --sizing-check-size: 6px;\n --sizing-input-size: var(--pine-dimension-sm);\n --sizing-margin-block-start: 6px;\n\n align-items: center;\n display: flex;\n flex-flow: row wrap;\n position: relative;\n}\n\n:host(.is-invalid) {\n // Invalid state only affects error message styling, not the radio itself\n // This allows radio-group to handle error display without red radios\n .pds-radio__message--error {\n color: var(--pine-color-text-message-danger);\n }\n}\n\n:host(.has-border) {\n align-items: flex-start;\n border: var(--pine-border);\n border-radius: var(--pine-dimension-125);\n column-gap: var(--pine-dimension-xs);\n display: flex;\n flex: 1;\n flex-direction: column;\n padding: var(--pine-dimension-md);\n\n // On small screens, ensure full width when in a row layout\n @media (max-width: 767px) {\n box-sizing: border-box;\n flex: 1 1 100%;\n max-width: 100%;\n min-width: 0;\n }\n\n &:hover {\n border: var(--pine-border-hover);\n }\n\n &:has(input:checked) {\n box-shadow: 0 0 0 2px var(--pine-color-primary-hover);\n }\n\n label {\n color: var(--pine-color-text);\n font-weight: var(--pine-font-weight-semi-bold);\n\n &::after {\n content: \"\";\n cursor: pointer;\n height: 100%;\n left: 0;\n position: absolute;\n top: 0;\n width: 100%;\n z-index: 1;\n }\n }\n\n // Disabled state for bordered radios\n &:has(input:disabled) {\n background: var(--pine-color-background-container-disabled);\n border-color: var(--pine-color-border-disabled);\n cursor: not-allowed;\n\n label {\n color: var(--pine-color-text-label-disabled);\n cursor: not-allowed;\n }\n }\n\n // Invalid state for bordered radios - no red styling, only error message\n &.is-invalid {\n .pds-radio__message--error {\n color: var(--pine-color-text-message-danger);\n }\n }\n}\n\ninput {\n appearance: none;\n background: var(--pine-color-background-container);\n border: var(--pine-border);\n border-radius: var(--pine-border-radius-full);\n flex: none;\n height: var(--sizing-input-size);\n margin: 0;\n margin-block-start: var(--pine-dimension-025);\n position: relative;\n width: var(--sizing-input-size);\n\n /* stylelint-disable-next-line selector-no-qualifying-type */\n &.visually-hidden {\n border: 0;\n clip: rect(0 0 0 0);\n clip-path: polygon(0 0, 0 0, 0 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n white-space: nowrap;\n width: 1px;\n }\n\n &:hover {\n background: var(--pine-color-background-container-hover);\n border: var(--pine-border-hover);\n }\n\n &:checked {\n background: var(--pine-color-accent);\n border-color: var(--pine-color-accent);\n\n &:hover {\n background: var(--pine-color-accent-hover);\n border-color: var(--pine-color-accent-hover);\n }\n\n &::after {\n /* stylelint-disable-next-line pine-design-system/prefer-semantic-tokens */\n background: var(--pine-color-white);\n border-radius: var(--pine-border-radius-full);\n content: \"\";\n display: block;\n height: var(--sizing-check-size);\n left: 50%;\n position: absolute;\n top: 50%;\n transform: translate(-50%, -50%);\n width: var(--sizing-check-size);\n }\n }\n\n &:disabled {\n background: var(--pine-color-background-container-disabled);\n border-color: var(--pine-color-border-disabled);\n cursor: not-allowed;\n\n &:checked {\n background-color: var(--pine-color-accent-disabled);\n border-color: var(--pine-color-border-disabled);\n\n &::after {\n border-color: var(--pine-color-border-disabled);\n }\n }\n\n\n }\n\n &:focus-visible {\n outline: var(--pine-outline-focus);\n }\n\n}\n\nlabel {\n display: flex;\n gap: var(--pine-dimension-xs);\n}\n\n// Disabled label styling\nlabel:has(input:disabled) {\n color: var(--pine-color-text-label-disabled);\n cursor: not-allowed;\n}\n\n// Disabled message styling\n:host:has(input:disabled) .pds-radio__message {\n color: var(--pine-color-text-label-disabled);\n}\n\n.visually-hidden {\n border: 0;\n clip: rect(0 0 0 0);\n clip-path: polygon(0 0, 0 0, 0 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n white-space: nowrap;\n width: 1px;\n}\n\n.pds-radio__message {\n color: var(--pine-color-text-message);\n flex-basis: 100%; // Ensure message wraps to new line in flex container\n font: var(--pine-typography-body);\n margin-inline-start: var(--pine-dimension-md);\n width: 100%;\n}\n\n.pds-radio__message--error {\n display: flex;\n gap: var(--pine-dimension-2xs);\n\n pds-icon {\n margin-block-start: var(--pine-dimension-025);\n }\n}\n\n// Image-based radio styles - matches bordered layout\n:host(.has-image) {\n align-items: center;\n border: var(--pine-border);\n border-radius: var(--pine-dimension-125);\n column-gap: var(--pine-dimension-xs);\n display: flex;\n flex: 1;\n padding: var(--pine-dimension-md);\n\n // On small screens, ensure full width when in a row layout\n @media (max-width: 767px) {\n box-sizing: border-box;\n flex: 1 1 100%;\n max-width: 100%;\n min-width: 0;\n }\n\n &:hover {\n border: var(--pine-border-hover);\n }\n\n &:has(input:checked) {\n box-shadow: 0 0 0 2px var(--pine-color-primary-hover);\n }\n\n label {\n color: var(--pine-color-text);\n display: flex;\n font-weight: var(--pine-font-weight-semi-bold);\n gap: var(--pine-dimension-xs);\n\n &::after {\n content: \"\";\n cursor: pointer;\n height: 100%;\n left: 0;\n position: absolute;\n top: 0;\n width: 100%;\n z-index: 1;\n }\n }\n\n .pds-radio__image-container {\n align-items: center;\n align-self: center;\n border: var(--pine-border);\n border-radius: var(--pine-border-radius-full);\n cursor: pointer;\n display: flex;\n flex: none;\n grid-area: image;\n justify-content: center;\n overflow: hidden;\n position: relative;\n transition: all var(--pine-motion-duration-base) ease;\n\n &:hover {\n border-color: var(--pine-color-border-hover);\n }\n\n .pds-radio__image {\n height: 100%;\n object-fit: cover;\n width: 100%;\n }\n }\n\n .pds-radio__message {\n grid-area: message;\n margin-block-start: 0;\n margin-inline-start: 0;\n }\n\n // Disabled state\n &.is-disabled {\n background: var(--pine-color-background-container-disabled);\n border-color: var(--pine-color-border-disabled);\n cursor: not-allowed;\n\n .pds-radio__image-container {\n border-color: var(--pine-color-border-disabled);\n cursor: not-allowed;\n opacity: 0.5;\n\n &:hover {\n border-color: var(--pine-color-border-disabled);\n }\n }\n\n label {\n color: var(--pine-color-text-label-disabled);\n cursor: not-allowed;\n }\n\n .pds-radio__message {\n color: var(--pine-color-text-label-disabled);\n }\n }\n\n // Invalid state - no red styling, only error message\n &.is-invalid {\n .pds-radio__message--error {\n color: var(--pine-color-text-message-danger);\n }\n }\n}\n","import { Component, Host, h, Prop, Event, EventEmitter, Element, State } from '@stencil/core';\nimport { assignDescription, messageId, exposeTypeProperty } from '../../utils/form';\nimport { danger } from '@pine-ds/icons/icons';\n\n/**\n * @slot image - Custom image content to display instead of the default radio input\n * @part image-container - The container for the image\n */\n@Component({\n tag: 'pds-radio',\n styleUrls: ['../../global/styles/utils/label.scss', 'pds-radio.scss'],\n scoped: true,\n})\nexport class PdsRadio {\n private readonly _type = 'radio' as const;\n\n @Element() el: HTMLPdsRadioElement;\n\n @State() private _hasImage = false;\n\n /**\n * Determines whether or not the radio is checked.\n * @defaultValue false\n */\n @Prop() checked = 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 * Determines whether or not the radio is disabled.\n * @defaultValue false\n */\n @Prop() disabled = false;\n\n /**\n * Displays error message text describing an invalid state.\n */\n @Prop() errorMessage: string;\n\n /**\n * Displays helper message text below radio.\n */\n @Prop() helperMessage: string;\n\n /**\n * Adds a border around the radio component for better visual separation.\n * @defaultValue false\n */\n @Prop() hasBorder = false;\n\n /**\n * Determines whether or not the radio is invalid.\n * @defaultValue false\n */\n @Prop() invalid = false;\n\n /**\n * String used for label text next to radio.\n */\n @Prop() label: string;\n\n /**\n * Visually hides the label text for instances where only the radio should be displayed. Label remains accessible to assistive technology such as screen readers.\n */\n @Prop() hideLabel: boolean;\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 /**\n * Emits a boolean indicating whether the radio 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 // If this radio is inside a pds-radio-group, don't emit the individual event\n // The group will handle emitting its own event\n if (this.el.closest('pds-radio-group')) {\n return;\n }\n\n this.pdsRadioChange.emit(isChecked);\n }\n\n private hasImageSlot(): boolean {\n const imageSlot = this.el.querySelector('[slot=\"image\"]');\n return !!imageSlot;\n }\n\n private hasImage(): boolean {\n return this._hasImage;\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 if (this.hasBorder) {\n classNames.push('has-border');\n }\n if (this.hasImage()) {\n classNames.push('has-image');\n }\n\n return classNames.join(' ');\n }\n\n componentWillLoad() {\n this._hasImage = this.hasImageSlot();\n }\n\n connectedCallback() {\n // Expose type property on the element instance to match native form element behavior\n exposeTypeProperty(this.el, () => this._type);\n }\n\n render() {\n const renderLabelAndMessages = () => [\n <label htmlFor={this.componentId} key={`${this.componentId}-label`}>\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 class={this.hasImage() ? 'visually-hidden' : ''}\n />\n <span class={this.hideLabel ? 'visually-hidden' : ''}>\n {this.label}\n </span>\n </label>,\n this.helperMessage && (\n <div\n key={`${this.componentId}-helper`}\n class={'pds-radio__message'}\n id={messageId(this.componentId, 'helper')}\n >\n {this.helperMessage}\n </div>\n ),\n this.errorMessage && (\n <div\n key={`${this.componentId}-error`}\n class={`pds-radio__message pds-radio__message--error`}\n id={messageId(this.componentId, 'error')}\n aria-live=\"assertive\"\n >\n <pds-icon icon={danger} size=\"small\" />\n {this.errorMessage}\n </div>\n )\n ];\n\n return (\n <Host class={this.classNames()}>\n {this.hasImage() && (\n <div class=\"pds-radio__image-container\" part=\"image-container\">\n <slot name=\"image\" onSlotchange={() => (this._hasImage = this.hasImageSlot())} />\n </div>\n )}\n {this.hasImage() ? (\n <div class=\"pds-radio__content-wrapper\">\n {renderLabelAndMessages()}\n </div>\n ) : (\n renderLabelAndMessages()\n )}\n </Host>\n );\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pds-toast.entry.esm.js","sources":["src/components/pds-toast/pds-toast.scss?tag=pds-toast&encapsulation=shadow","src/components/pds-toast/pds-toast.tsx"],"sourcesContent":[":host {\n --animation-duration: 0.3s;\n --animation-timing: cubic-bezier(0.4, 0, 0.2, 1);\n --padding-inline: var(--pine-dimension-md);\n --padding-inline-desktop: var(--pine-dimension-2xl);\n --sizing-height-default: 68px;\n --sizing-min-width: calc(var(--sizing-total-width) - (var(--padding-inline) * 2));\n --sizing-min-width-desktop: calc(var(--sizing-total-width) - (var(--padding-inline-desktop) * 2));\n --sizing-total-width: 350px;\n\n box-sizing: border-box;\n display: block;\n font: var(--pine-typography-body-medium);\n}\n\n.pds-toast {\n align-items: center;\n animation: pds-toast-animate-in var(--animation-duration) var(--animation-timing);\n background-color: var(--pine-color-primary);\n border-radius: var(--pine-dimension-xs);\n box-shadow: var(--pine-box-shadow);\n color: var(--pine-color-text-primary);\n display: flex;\n height: var(--sizing-height-default);\n justify-content: flex-start;\n margin-block-end: var(--pine-dimension-2xs);\n max-width: 90vw;\n min-width: var(--sizing-min-width);\n padding: 0 var(--padding-inline);\n position: relative;\n width: fit-content;\n\n @media screen and (max-width: 767px) {\n height: 36px;\n max-width: calc(100vw - (var(--pine-dimension-2xs) * 2));\n min-width: auto;\n padding-inline: var(--pine-dimension-2xs);\n }\n\n &--danger {\n background-color: var(--pine-color-danger);\n }\n\n &--loading {\n .pds-toast__loader {\n align-items: center;\n display: flex;\n justify-content: center;\n margin-inline-end: var(--pine-dimension-sm);\n position: relative;\n\n &-spinner {\n animation: pds-toast-rotate 2s linear infinite;\n height: 20px;\n width: 20px;\n }\n\n &-path {\n animation: pds-toast-dash 1.5s ease-in-out infinite;\n stroke-dasharray: 1, 200;\n stroke-dashoffset: 0;\n stroke-linecap: round;\n }\n }\n }\n}\n\n.pds-toast__icon {\n color: var(--pine-color-text-primary);\n display: inline-flex;\n margin-inline-end: var(--pine-dimension-sm);\n}\n\n.pds-toast__message {\n font: var(--pine-typography-body-sm-medium);\n margin-inline-end: auto;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n // Style all slotted links\n ::slotted(a) {\n color: var(--pine-color-text-primary);\n margin-inline-start: var(--pine-dimension-xs);\n opacity: 0.7;\n text-decoration: underline;\n\n &:hover,\n &:focus-visible {\n opacity: 1;\n }\n\n &:focus-visible {\n outline: 2px solid var(--pine-color-text-primary);\n outline-offset: 2px;\n }\n }\n}\n\n.pds-toast__button {\n align-items: center;\n background: none;\n border: 0;\n border-radius: var(--pine-border-radius-full);\n color: inherit;\n cursor: pointer;\n display: inline-flex;\n margin-inline-start: var(--pine-dimension-md);\n opacity: 0.7;\n padding: 0;\n white-space: nowrap;\n\n &:hover,\n &:focus {\n opacity: 1;\n }\n\n &:focus {\n outline: var(--pine-outline-focus);\n outline-offset: var(--pine-dimension-2xs);\n }\n}\n\n// Animation keyframes\n@keyframes pds-toast-animate-in {\n from {\n opacity: 0;\n transform: translateY(100%);\n }\n\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n@keyframes pds-toast-animate-out {\n from {\n opacity: 1;\n transform: translateY(0);\n }\n\n to {\n opacity: 0;\n transform: translateY(100%);\n }\n}\n\n// Loading animation keyframes\n@keyframes pds-toast-rotate {\n to {\n transform: rotate(360deg);\n }\n}\n\n@keyframes pds-toast-dash {\n 0% {\n stroke-dasharray: 1, 200;\n stroke-dashoffset: 0;\n }\n\n 50% {\n stroke-dasharray: 89, 200;\n stroke-dashoffset: -35;\n }\n\n 100% {\n stroke-dasharray: 89, 200;\n stroke-dashoffset: -124;\n }\n}\n\n// Animation for dismissing\n:host([hidden]) .pds-toast,\n.pds-toast--animating-out {\n animation: pds-toast-animate-out var(--animation-duration) var(--animation-timing) forwards;\n pointer-events: none; /* Prevent interaction during animation */\n}\n","import { Component, Event, EventEmitter, h, Host, Method, Prop, State, Watch } from '@stencil/core';\n\n/**\n * @part dismiss\n */\n@Component({\n tag: 'pds-toast',\n styleUrl: 'pds-toast.scss',\n shadow: true,\n})\nexport class PdsToast {\n // Props\n /**\n * A unique identifier used for the underlying component `id` attribute.\n */\n @Prop() componentId!: string;\n\n /**\n * Whether the toast can be dismissed manually via the close button.\n * Note: This only controls manual dismissal. Auto-dismissal via duration still applies.\n * @default true\n */\n @Prop() dismissible: boolean = true;\n\n /**\n * The duration in milliseconds to show the toast before auto-dismissing.\n * Set to 0 to disable auto-dismiss.\n * @default 4500\n */\n @Prop() duration: number = 4500;\n\n /**\n * The name of the icon to display in the toast.\n */\n @Prop() icon?: string;\n\n /**\n * The type of toast to display.\n * - default: Grey background (default)\n * - danger: Red background\n * - loading: With spinner animation\n * @default 'default'\n */\n @Prop() type: 'default' | 'danger' | 'loading' = 'default';\n\n /**\n * Whether the toast is currently visible.\n */\n @State() isVisible: boolean = true;\n\n /**\n * Whether the toast is animating out.\n */\n @State() isAnimatingOut: boolean = false;\n\n // Private properties\n /**\n * Timer for auto-dismissal\n */\n private dismissTimer?: number;\n\n /**\n * Event emitted when the toast is dismissed, either manually or automatically.\n */\n @Event() pdsToastDismissed: EventEmitter<{ componentId?: string }>;\n\n componentDidLoad() {\n if (this.duration > 0) {\n this.startDismissTimer();\n }\n }\n\n disconnectedCallback() {\n this.cleanup();\n }\n\n @Watch('duration')\n handleDurationChange(newDuration: number) {\n if (this.dismissTimer) {\n window.clearTimeout(this.dismissTimer);\n this.dismissTimer = undefined;\n }\n if (newDuration > 0) {\n this.startDismissTimer();\n }\n }\n\n @Method()\n async dismiss(): Promise<void> {\n // Start the animation out\n this.isAnimatingOut = true;\n\n // Wait for animation to complete before hiding and cleanup\n await new Promise((resolve) => setTimeout(resolve, 300)); // Match --animation-duration\n\n this.isVisible = false;\n this.cleanup();\n this.pdsToastDismissed.emit({ componentId: this.componentId });\n }\n\n // Private methods\n private cleanup(): void {\n if (this.dismissTimer) {\n window.clearTimeout(this.dismissTimer);\n this.dismissTimer = undefined;\n }\n }\n\n private startDismissTimer(): void {\n this.dismissTimer = window.setTimeout(() => {\n this.dismiss();\n }, this.duration);\n }\n\n private renderIcon() {\n // Loading type takes priority\n if (this.type === 'loading') {\n return (\n <div class=\"pds-toast__loader\">\n <svg class=\"pds-toast__loader-spinner\" viewBox=\"25 25 50 50\" aria-hidden=\"true\">\n <circle class=\"pds-toast__loader-path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"4\" stroke-linecap=\"round\" />\n </svg>\n </div>\n );\n }\n\n // Return icon if provided, otherwise undefined (which renders as nothing)\n return this.icon && <pds-icon name={this.icon} class=\"pds-toast__icon\" />;\n }\n\n render() {\n return (\n <Host hidden={!this.isVisible}>\n <div\n class={{\n 'pds-toast': true,\n [`pds-toast--${this.type}`]: this.type !== 'default',\n 'pds-toast--animating-out': this.isAnimatingOut\n }}\n role=\"alert\"\n aria-live=\"polite\"\n >\n {this.renderIcon()}\n\n <span class=\"pds-toast__message\">\n <slot></slot>\n </span>\n\n {this.dismissible && (\n <button\n type=\"button\"\n part=\"dismiss\"\n class=\"pds-toast__button\"\n onClick={() => {\n this.dismiss();\n }}\n aria-label=\"Dismiss message\"\n >\n <pds-icon name=\"remove\" />\n </button>\n )}\n </div>\n </Host>\n );\n }\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pds-toast.entry.esm.js","sources":["src/components/pds-toast/pds-toast.scss?tag=pds-toast&encapsulation=shadow","src/components/pds-toast/pds-toast.tsx"],"sourcesContent":[":host {\n --animation-duration: var(--pine-motion-duration-slow);\n --animation-timing: var(--pine-motion-easing-in-out);\n --padding-inline: var(--pine-dimension-md);\n --padding-inline-desktop: var(--pine-dimension-2xl);\n --sizing-height-default: 68px;\n --sizing-min-width: calc(var(--sizing-total-width) - (var(--padding-inline) * 2));\n --sizing-min-width-desktop: calc(var(--sizing-total-width) - (var(--padding-inline-desktop) * 2));\n --sizing-total-width: 350px;\n\n box-sizing: border-box;\n display: block;\n font: var(--pine-typography-body-medium);\n}\n\n.pds-toast {\n align-items: center;\n animation: pds-toast-animate-in var(--animation-duration) var(--animation-timing);\n background-color: var(--pine-color-primary);\n border-radius: var(--pine-dimension-xs);\n box-shadow: var(--pine-box-shadow);\n color: var(--pine-color-text-primary);\n display: flex;\n height: var(--sizing-height-default);\n justify-content: flex-start;\n margin-block-end: var(--pine-dimension-2xs);\n max-width: 90vw;\n min-width: var(--sizing-min-width);\n padding: 0 var(--padding-inline);\n position: relative;\n width: fit-content;\n\n @media screen and (max-width: 767px) {\n height: 36px;\n max-width: calc(100vw - (var(--pine-dimension-2xs) * 2));\n min-width: auto;\n padding-inline: var(--pine-dimension-2xs);\n }\n\n &--danger {\n background-color: var(--pine-color-danger);\n }\n\n &--loading {\n .pds-toast__loader {\n align-items: center;\n display: flex;\n justify-content: center;\n margin-inline-end: var(--pine-dimension-sm);\n position: relative;\n\n &-spinner {\n animation: pds-toast-rotate 2s linear infinite;\n height: 20px;\n width: 20px;\n }\n\n &-path {\n animation: pds-toast-dash 1.5s ease-in-out infinite;\n stroke-dasharray: 1, 200;\n stroke-dashoffset: 0;\n stroke-linecap: round;\n }\n }\n }\n}\n\n.pds-toast__icon {\n color: var(--pine-color-text-primary);\n display: inline-flex;\n margin-inline-end: var(--pine-dimension-sm);\n}\n\n.pds-toast__message {\n font: var(--pine-typography-body-sm-medium);\n margin-inline-end: auto;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n // Style all slotted links\n ::slotted(a) {\n color: var(--pine-color-text-primary);\n margin-inline-start: var(--pine-dimension-xs);\n opacity: 0.7;\n text-decoration: underline;\n\n &:hover,\n &:focus-visible {\n opacity: 1;\n }\n\n &:focus-visible {\n outline: 2px solid var(--pine-color-text-primary);\n outline-offset: 2px;\n }\n }\n}\n\n.pds-toast__button {\n align-items: center;\n background: none;\n border: 0;\n border-radius: var(--pine-border-radius-full);\n color: inherit;\n cursor: pointer;\n display: inline-flex;\n margin-inline-start: var(--pine-dimension-md);\n opacity: 0.7;\n padding: 0;\n white-space: nowrap;\n\n &:hover,\n &:focus {\n opacity: 1;\n }\n\n &:focus {\n outline: var(--pine-outline-focus);\n outline-offset: var(--pine-dimension-2xs);\n }\n}\n\n// Animation keyframes\n@keyframes pds-toast-animate-in {\n from {\n opacity: 0;\n transform: translateY(100%);\n }\n\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n@keyframes pds-toast-animate-out {\n from {\n opacity: 1;\n transform: translateY(0);\n }\n\n to {\n opacity: 0;\n transform: translateY(100%);\n }\n}\n\n// Loading animation keyframes\n@keyframes pds-toast-rotate {\n to {\n transform: rotate(360deg);\n }\n}\n\n@keyframes pds-toast-dash {\n 0% {\n stroke-dasharray: 1, 200;\n stroke-dashoffset: 0;\n }\n\n 50% {\n stroke-dasharray: 89, 200;\n stroke-dashoffset: -35;\n }\n\n 100% {\n stroke-dasharray: 89, 200;\n stroke-dashoffset: -124;\n }\n}\n\n// Animation for dismissing\n:host([hidden]) .pds-toast,\n.pds-toast--animating-out {\n animation: pds-toast-animate-out var(--animation-duration) var(--animation-timing) forwards;\n pointer-events: none; /* Prevent interaction during animation */\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Method, Prop, State, Watch } from '@stencil/core';\n\n/** Fallback when computed `--animation-duration` is unavailable (matches `--pine-motion-duration-slow`). */\nconst TOAST_DISMISS_ANIMATION_MS = 300;\n\n/**\n * @part dismiss\n */\n@Component({\n tag: 'pds-toast',\n styleUrl: 'pds-toast.scss',\n shadow: true,\n})\nexport class PdsToast {\n @Element() el!: HTMLPdsToastElement;\n\n // Props\n /**\n * A unique identifier used for the underlying component `id` attribute.\n */\n @Prop() componentId!: string;\n\n /**\n * Whether the toast can be dismissed manually via the close button.\n * Note: This only controls manual dismissal. Auto-dismissal via duration still applies.\n * @default true\n */\n @Prop() dismissible: boolean = true;\n\n /**\n * The duration in milliseconds to show the toast before auto-dismissing.\n * Set to 0 to disable auto-dismiss.\n * @default 4500\n */\n @Prop() duration: number = 4500;\n\n /**\n * The name of the icon to display in the toast.\n */\n @Prop() icon?: string;\n\n /**\n * The type of toast to display.\n * - default: Grey background (default)\n * - danger: Red background\n * - loading: With spinner animation\n * @default 'default'\n */\n @Prop() type: 'default' | 'danger' | 'loading' = 'default';\n\n /**\n * Whether the toast is currently visible.\n */\n @State() isVisible: boolean = true;\n\n /**\n * Whether the toast is animating out.\n */\n @State() isAnimatingOut: boolean = false;\n\n // Private properties\n /**\n * Timer for auto-dismissal\n */\n private dismissTimer?: number;\n\n /**\n * Event emitted when the toast is dismissed, either manually or automatically.\n */\n @Event() pdsToastDismissed: EventEmitter<{ componentId?: string }>;\n\n componentDidLoad() {\n if (this.duration > 0) {\n this.startDismissTimer();\n }\n }\n\n disconnectedCallback() {\n this.cleanup();\n }\n\n @Watch('duration')\n handleDurationChange(newDuration: number) {\n if (this.dismissTimer) {\n window.clearTimeout(this.dismissTimer);\n this.dismissTimer = undefined;\n }\n if (newDuration > 0) {\n this.startDismissTimer();\n }\n }\n\n @Method()\n async dismiss(): Promise<void> {\n // Start the animation out\n this.isAnimatingOut = true;\n\n await this.waitForDismissAnimation();\n\n this.isVisible = false;\n this.cleanup();\n this.pdsToastDismissed.emit({ componentId: this.componentId });\n }\n\n // Private methods\n private waitForDismissAnimation(): Promise<void> {\n const durationMs = this.getDismissAnimationDurationMs();\n if (durationMs <= 0) {\n return Promise.resolve();\n }\n return new Promise((resolve) => window.setTimeout(resolve, durationMs));\n }\n\n private getDismissAnimationDurationMs(): number {\n if (typeof window === 'undefined') {\n return TOAST_DISMISS_ANIMATION_MS;\n }\n\n if (window.matchMedia('(prefers-reduced-motion: reduce)').matches) {\n return 0;\n }\n\n const fromCss = this.parseCssDurationToMs(\n getComputedStyle(this.el).getPropertyValue('--animation-duration').trim(),\n );\n\n return fromCss ?? TOAST_DISMISS_ANIMATION_MS;\n }\n\n private parseCssDurationToMs(value: string): number | undefined {\n if (!value) {\n return undefined;\n }\n if (value === '0' || value === '0ms' || value === '0s') {\n return 0;\n }\n if (value.endsWith('ms')) {\n const ms = Number.parseFloat(value);\n return Number.isFinite(ms) ? ms : undefined;\n }\n if (value.endsWith('s')) {\n const seconds = Number.parseFloat(value);\n return Number.isFinite(seconds) ? seconds * 1000 : undefined;\n }\n return undefined;\n }\n\n private cleanup(): void {\n if (this.dismissTimer) {\n window.clearTimeout(this.dismissTimer);\n this.dismissTimer = undefined;\n }\n }\n\n private startDismissTimer(): void {\n this.dismissTimer = window.setTimeout(() => {\n this.dismiss();\n }, this.duration);\n }\n\n private renderIcon() {\n // Loading type takes priority\n if (this.type === 'loading') {\n return (\n <div class=\"pds-toast__loader\">\n <svg class=\"pds-toast__loader-spinner\" viewBox=\"25 25 50 50\" aria-hidden=\"true\">\n <circle class=\"pds-toast__loader-path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"4\" stroke-linecap=\"round\" />\n </svg>\n </div>\n );\n }\n\n // Return icon if provided, otherwise undefined (which renders as nothing)\n return this.icon && <pds-icon name={this.icon} class=\"pds-toast__icon\" />;\n }\n\n render() {\n return (\n <Host hidden={!this.isVisible}>\n <div\n class={{\n 'pds-toast': true,\n [`pds-toast--${this.type}`]: this.type !== 'default',\n 'pds-toast--animating-out': this.isAnimatingOut\n }}\n role=\"alert\"\n aria-live=\"polite\"\n >\n {this.renderIcon()}\n\n <span class=\"pds-toast__message\">\n <slot></slot>\n </span>\n\n {this.dismissible && (\n <button\n type=\"button\"\n part=\"dismiss\"\n class=\"pds-toast__button\"\n onClick={() => {\n this.dismiss();\n }}\n aria-label=\"Dismiss message\"\n >\n <pds-icon name=\"remove\" />\n </button>\n )}\n </div>\n </Host>\n );\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
:root{--pine-border-width-none:0px;--pine-border-width-thin:1px;--pine-border-width-thick:2px;--pine-border-width:var(--pine-border-width-thin);--pine-box-shadow-100:0 1px 3px 0 rgba(0,0,0,.1), 0 1px 2px 0 rgba(0,0,0,.06);--pine-box-shadow-150:0 4px 8px -2px rgba(0,0,0,.1), 0 2px 4px -2px rgba(0,0,0,.06);--pine-box-shadow-200:0 12px 16px -4px rgba(0,0,0,.08), 0 4px 6px -2px rgba(0,0,0,.03);--pine-box-shadow-300:0 20px 24px -4px rgba(0,0,0,.08), 0 8px 8px -4px rgba(0,0,0,.03);--pine-box-shadow-400:0 24px 48px -12px rgba(0,0,0,.18);--pine-box-shadow-500:0 32px 64px -12px rgba(0,0,0,.14);--pine-box-shadow-050:0 1px 2px 0 rgba(0,0,0,.05);--pine-box-shadow:var(--pine-box-shadow-100);--pine-color-white:#ffffff;--pine-color-black:#000000;--pine-color-grey-100:#f8f8f8;--pine-color-grey-150:#f0f0f0;--pine-color-grey-200:#e4e4e4;--pine-color-grey-300:#d2d1d1;--pine-color-grey-400:#bbbab9;--pine-color-grey-500:#9b9a98;--pine-color-grey-600:#828180;--pine-color-grey-700:#6c6a69;--pine-color-grey-800:#4d4d4c;--pine-color-grey-900:#343332;--pine-color-grey-950:#1a1a19;--pine-color-grey-050:#fcfcfc;--pine-color-blue-100:#eff6ff;--pine-color-blue-150:#dbeafe;--pine-color-blue-200:#bfdbfe;--pine-color-blue-300:#93c5fd;--pine-color-blue-400:#60a5fa;--pine-color-blue-500:#3b82f6;--pine-color-blue-600:#2563eb;--pine-color-blue-700:#1d4ed8;--pine-color-blue-800:#1e40af;--pine-color-blue-900:#1e3a8a;--pine-color-blue-950:#172554;--pine-color-blue-050:#fafcff;--pine-color-green-100:#edfcf2;--pine-color-green-150:#d3f8df;--pine-color-green-200:#aaf0c4;--pine-color-green-300:#73e2a3;--pine-color-green-400:#3ccb7f;--pine-color-green-500:#16b364;--pine-color-green-600:#099250;--pine-color-green-700:#087443;--pine-color-green-800:#095c37;--pine-color-green-900:#084c2e;--pine-color-green-950:#052e1c;--pine-color-green-050:#fbfefc;--pine-color-red-100:#fef2f2;--pine-color-red-150:#fee2e2;--pine-color-red-200:#fecaca;--pine-color-red-300:#fca5a5;--pine-color-red-400:#f87171;--pine-color-red-500:#ef4444;--pine-color-red-600:#dc2626;--pine-color-red-700:#b91c1c;--pine-color-red-800:#991b1b;--pine-color-red-900:#7f1d1d;--pine-color-red-950:#450a0a;--pine-color-red-050:#fffafa;--pine-color-yellow-100:#fffbeb;--pine-color-yellow-150:#fff2c6;--pine-color-yellow-200:#fee589;--pine-color-yellow-300:#fed04b;--pine-color-yellow-400:#fdbb21;--pine-color-yellow-500:#f79a09;--pine-color-yellow-600:#db7204;--pine-color-yellow-700:#b64f07;--pine-color-yellow-800:#933d0d;--pine-color-yellow-900:#79330e;--pine-color-yellow-950:#461902;--pine-color-yellow-050:#fffefa;--pine-color-mercury-100:#fff4f1;--pine-color-mercury-150:#ffeae5;--pine-color-mercury-200:#fed4cd;--pine-color-mercury-300:#fdb1a4;--pine-color-mercury-400:#fb8271;--pine-color-mercury-500:#ff3e14;--pine-color-mercury-600:#f02006;--pine-color-mercury-700:#c71307;--pine-color-mercury-800:#9e110e;--pine-color-mercury-900:#7f120f;--pine-color-mercury-950:#450506;--pine-color-mercury-050:#fffbfa;--pine-color-purple-100:#eef1ff;--pine-color-purple-150:#e0e4ff;--pine-color-purple-200:#c7cdfe;--pine-color-purple-300:#a4acfd;--pine-color-purple-400:#8081f9;--pine-color-purple-500:#6b62f2;--pine-color-purple-600:#533be5;--pine-color-purple-700:#4f37cb;--pine-color-purple-800:#402fa4;--pine-color-purple-900:#372d82;--pine-color-purple-950:#221b4b;--pine-color-purple-050:#fafbff;--pine-color-forest-100:#effaf6;--pine-color-forest-150:#d9f2e7;--pine-color-forest-200:#b5e5d2;--pine-color-forest-300:#85d0b7;--pine-color-forest-400:#52b597;--pine-color-forest-500:#30997d;--pine-color-forest-600:#23856d;--pine-color-forest-700:#1a6253;--pine-color-forest-800:#174e43;--pine-color-forest-900:#144038;--pine-color-forest-950:#0a2420;--pine-color-forest-050:#fbfefd;--pine-color-lime-100:#f7fee7;--pine-color-lime-150:#ecfccb;--pine-color-lime-200:#d9f99d;--pine-color-lime-300:#bef264;--pine-color-lime-400:#a3e635;--pine-color-lime-500:#84cc16;--pine-color-lime-600:#65a30d;--pine-color-lime-700:#4d7c0f;--pine-color-lime-800:#3f6212;--pine-color-lime-900:#365314;--pine-color-lime-950:#1b290a;--pine-color-lime-050:#fdfffa;--pine-color-magenta-100:#fdf4ff;--pine-color-magenta-150:#fae8ff;--pine-color-magenta-200:#f5d0fe;--pine-color-magenta-300:#f0abfc;--pine-color-magenta-400:#e879f9;--pine-color-magenta-500:#d946ef;--pine-color-magenta-600:#c026d3;--pine-color-magenta-700:#a21caf;--pine-color-magenta-800:#86198f;--pine-color-magenta-900:#701a75;--pine-color-magenta-950:#4a044e;--pine-color-magenta-050:#fefaff;--pine-color-pink-100:#fdf2f8;--pine-color-pink-150:#fce7f3;--pine-color-pink-200:#fbcfe8;--pine-color-pink-300:#f9a8d4;--pine-color-pink-400:#f472b6;--pine-color-pink-500:#ec4899;--pine-color-pink-600:#db2777;--pine-color-pink-700:#be185d;--pine-color-pink-800:#9d174d;--pine-color-pink-900:#831843;--pine-color-pink-950:#500724;--pine-color-pink-050:#fffafa;--pine-color-salmon-100:#fff1f2;--pine-color-salmon-150:#ffe4e6;--pine-color-salmon-200:#fecdd3;--pine-color-salmon-300:#fda4af;--pine-color-salmon-400:#fb7185;--pine-color-salmon-500:#f43f5e;--pine-color-salmon-600:#e11d48;--pine-color-salmon-700:#be123c;--pine-color-salmon-800:#9f1239;--pine-color-salmon-900:#881337;--pine-color-salmon-950:#4c0519;--pine-color-salmon-050:#fffafa;--pine-color-sky-100:#f0f9ff;--pine-color-sky-150:#e0f2fe;--pine-color-sky-200:#bae6fd;--pine-color-sky-300:#7dd3fc;--pine-color-sky-400:#38bdf8;--pine-color-sky-500:#0ea5e9;--pine-color-sky-600:#0284c7;--pine-color-sky-700:#0369a1;--pine-color-sky-800:#075985;--pine-color-sky-900:#0c4a6e;--pine-color-sky-950:#082f49;--pine-color-sky-050:#fafdff;--pine-color-teal-100:#f0fdfa;--pine-color-teal-150:#ccfbf1;--pine-color-teal-200:#99f6e4;--pine-color-teal-300:#5eead4;--pine-color-teal-400:#2dd4bf;--pine-color-teal-500:#14b8a6;--pine-color-teal-600:#0d9488;--pine-color-teal-700:#0f766e;--pine-color-teal-800:#115e59;--pine-color-teal-900:#134e4a;--pine-color-teal-950:#042f2e;--pine-color-teal-050:#fbfefe;--pine-color-accent:var(--pine-color-purple-500);--pine-color-accent-disabled:var(--pine-color-purple-100);--pine-color-accent-hover:var(--pine-color-purple-600);--pine-color-background-app:var(--pine-color-grey-100);--pine-color-background-subtle:var(--pine-color-grey-100);--pine-color-background-muted:var(--pine-color-grey-150);--pine-color-background-inverse-app:var(--pine-color-grey-900);--pine-color-background-inverse-subtle:var(--pine-color-grey-800);--pine-color-background-inverse-muted:var(--pine-color-grey-700);--pine-color-background-inverse-container:var(--pine-color-black);--pine-color-background-inverse-inset:var(--pine-color-grey-950);--pine-color-background-container:var(--pine-color-white);--pine-color-background-container-disabled:var(--pine-color-grey-150);--pine-color-background-container-hover:var(--pine-color-grey-050);--pine-color-background-inset:var(--pine-color-grey-200);--pine-color-background-inset-emphasized:var(--pine-color-grey-300);--pine-color-border:var(--pine-color-grey-300);--pine-color-border-hover:var(--pine-color-grey-400);--pine-color-border-disabled:var(--pine-color-grey-200);--pine-color-border-active:var(--pine-color-grey-400);--pine-color-border-danger:var(--pine-color-red-600);--pine-color-border-danger-hover:var(--pine-color-red-700);--pine-color-border-subtle:var(--pine-color-grey-200);--pine-color-danger:var(--pine-color-red-600);--pine-color-danger-disabled:var(--pine-color-red-100);--pine-color-danger-hover:var(--pine-color-red-700);--pine-color-focus-ring:var(--pine-color-purple-300);--pine-color-focus-ring-danger:var(--pine-color-red-300);--pine-color-info:var(--pine-color-blue-500);--pine-color-info-disabled:var(--pine-color-blue-100);--pine-color-info-hover:var(--pine-color-blue-600);--pine-color-neutral:var(--pine-color-grey-500);--pine-color-neutral-disabled:var(--pine-color-grey-100);--pine-color-neutral-hover:var(--pine-color-grey-600);--pine-color-primary:var(--pine-color-grey-900);--pine-color-primary-disabled:var(--pine-color-grey-150);--pine-color-primary-hover:var(--pine-color-grey-950);--pine-color-secondary:var(--pine-color-white);--pine-color-secondary-disabled:var(--pine-color-white);--pine-color-secondary-hover:var(--pine-color-grey-050);--pine-color-success:var(--pine-color-green-500);--pine-color-success-disabled:var(--pine-color-green-100);--pine-color-success-hover:var(--pine-color-green-600);--pine-color-text:var(--pine-color-grey-900);--pine-color-text-hover:var(--pine-color-grey-950);--pine-color-text-disabled:var(--pine-color-grey-500);--pine-color-text-readonly:var(--pine-color-grey-700);--pine-color-text-active:var(--pine-color-grey-950);--pine-color-text-accent:var(--pine-color-purple-900);--pine-color-text-accent-disabled:var(--pine-color-purple-300);--pine-color-text-accent-hover:var(--pine-color-purple-950);--pine-color-text-danger:var(--pine-color-red-900);--pine-color-text-danger-disabled:var(--pine-color-red-300);--pine-color-text-danger-hover:var(--pine-color-red-950);--pine-color-text-info:var(--pine-color-blue-900);--pine-color-text-info-disabled:var(--pine-color-blue-300);--pine-color-text-info-hover:var(--pine-color-blue-950);--pine-color-text-label:var(--pine-color-grey-950);--pine-color-text-label-disabled:var(--pine-color-grey-500);--pine-color-text-label-readonly:var(--pine-color-grey-700);--pine-color-text-message:var(--pine-color-grey-800);--pine-color-text-message-danger:var(--pine-color-red-600);--pine-color-text-message-disabled:var(--pine-color-grey-600);--pine-color-text-neutral:var(--pine-color-grey-900);--pine-color-text-neutral-disabled:var(--pine-color-grey-600);--pine-color-text-neutral-hover:var(--pine-color-grey-950);--pine-color-text-placeholder:var(--pine-color-grey-600);--pine-color-text-placeholder-disabled:var(--pine-color-grey-400);--pine-color-text-primary:var(--pine-color-white);--pine-color-text-primary-disabled:var(--pine-color-grey-400);--pine-color-text-secondary:var(--pine-color-grey-800);--pine-color-text-secondary-disabled:var(--pine-color-grey-400);--pine-color-text-secondary-hover:var(--pine-color-grey-900);--pine-color-text-tertiary:var(--pine-color-grey-600);--pine-color-text-tertiary-disabled:var(--pine-color-grey-400);--pine-color-text-subtle:var(--pine-color-grey-500);--pine-color-text-subtle-disabled:var(--pine-color-grey-300);--pine-color-text-muted:var(--pine-color-grey-700);--pine-color-text-muted-disabled:var(--pine-color-grey-500);--pine-color-text-strong:var(--pine-color-grey-950);--pine-color-text-strong-disabled:var(--pine-color-grey-600);--pine-color-text-emphasis:var(--pine-color-black);--pine-color-text-inverse:var(--pine-color-grey-100);--pine-color-text-inverse-secondary:var(--pine-color-grey-150);--pine-color-text-inverse-tertiary:var(--pine-color-grey-300);--pine-color-text-inverse-emphasis:var(--pine-color-white);--pine-color-text-success:var(--pine-color-green-900);--pine-color-text-success-disabled:var(--pine-color-green-300);--pine-color-text-success-hover:var(--pine-color-green-950);--pine-color-text-warning:var(--pine-color-yellow-900);--pine-color-text-warning-disabled:var(--pine-color-yellow-300);--pine-color-text-warning-hover:var(--pine-color-yellow-950);--pine-color-warning:var(--pine-color-yellow-500);--pine-color-warning-disabled:var(--pine-color-yellow-100);--pine-color-warning-hover:var(--pine-color-yellow-600);--pine-color-icon:var(--pine-color-grey-700);--pine-color-icon-subtle:var(--pine-color-grey-500);--pine-color-icon-disabled:var(--pine-color-grey-400);--pine-color-icon-inverse:var(--pine-color-white);--pine-color-brand:var(--pine-color-black);--pine-font-family-inter:"Inter", system-ui, "Segoe UI", "Roboto", "Ubuntu", sans-serif;--pine-font-family-faire-sprig:"FAIRE Sprig";--pine-font-family-heading:var(--pine-font-family-inter);--pine-font-family-body:var(--pine-font-family-inter);--pine-font-size-100:14px;--pine-font-size-116:16px;--pine-font-size-128:18px;--pine-font-size-142:20px;--pine-font-size-157:22px;--pine-font-size-171:24px;--pine-font-size-185:26px;--pine-font-size-200:28px;--pine-font-size-214:30px;--pine-font-size-228:32px;--pine-font-size-242:34px;--pine-font-size-257:36px;--pine-font-size-271:38px;--pine-font-size-285:40px;--pine-font-size-057:8px;--pine-font-size-071:10px;--pine-font-size-085:12px;--pine-font-size:var(--pine-font-size-100);--pine-font-size-body-2xs:var(--pine-font-size-057);--pine-font-size-body-xs:var(--pine-font-size-071);--pine-font-size-body-sm:var(--pine-font-size-085);--pine-font-size-body-md:var(--pine-font-size-100);--pine-font-size-body-lg:var(--pine-font-size-116);--pine-font-size-body-xl:var(--pine-font-size-128);--pine-font-size-body-2xl:var(--pine-font-size-142);--pine-font-size-heading-1:var(--pine-font-size-200);--pine-font-size-heading-2:var(--pine-font-size-185);--pine-font-size-heading-3:var(--pine-font-size-157);--pine-font-size-heading-4:var(--pine-font-size-142);--pine-font-size-heading-5:var(--pine-font-size-128);--pine-font-size-heading-6:var(--pine-font-size-116);--pine-font-size-heading-caption:var(--pine-font-size-085);--pine-font-weight-100:100;--pine-font-weight-200:200;--pine-font-weight-300:300;--pine-font-weight-400:400;--pine-font-weight-500:500;--pine-font-weight-600:600;--pine-font-weight-700:700;--pine-font-weight-800:800;--pine-font-weight-900:900;--pine-font-weight-thin:var(--pine-font-weight-100);--pine-font-weight-extra-light:var(--pine-font-weight-200);--pine-font-weight-light:var(--pine-font-weight-300);--pine-font-weight-regular:var(--pine-font-weight-400);--pine-font-weight-medium:var(--pine-font-weight-500);--pine-font-weight-semi-bold:var(--pine-font-weight-600);--pine-font-weight-bold:var(--pine-font-weight-700);--pine-font-weight-extra-bold:var(--pine-font-weight-800);--pine-font-weight-heavy:var(--pine-font-weight-900);--pine-font-weight-text-message:var(--pine-font-weight-400);--pine-line-height-100:1;--pine-line-height-125:1.25;--pine-line-height-150:1.5;--pine-line-height-175:1.75;--pine-line-height-200:2;--pine-line-height-225:2.25;--pine-line-height-250:2.5;--pine-line-height-275:2.75;--pine-line-height-300:3;--pine-line-height-025:.625;--pine-line-height-050:.78125;--pine-line-height-075:.9375;--pine-line-height-text-message:var(--pine-line-height-125);--pine-line-height-heading:var(--pine-line-height-125);--pine-line-height-body:1.425;--pine-dimension-0:0px;--pine-dimension-100:8px;--pine-dimension-125:10px;--pine-dimension-150:12px;--pine-dimension-200:16px;--pine-dimension-250:20px;--pine-dimension-300:24px;--pine-dimension-350:28px;--pine-dimension-400:32px;--pine-dimension-450:36px;--pine-dimension-500:40px;--pine-dimension-550:44px;--pine-dimension-600:48px;--pine-dimension-650:52px;--pine-dimension-700:56px;--pine-dimension-750:60px;--pine-dimension-800:64px;--pine-dimension-050:4px;--pine-dimension-025:2px;--pine-dimension-none:var(--pine-dimension-0);--pine-dimension-2xs:var(--pine-dimension-050);--pine-dimension-xs:var(--pine-dimension-100);--pine-dimension-sm:var(--pine-dimension-200);--pine-dimension-md:var(--pine-dimension-300);--pine-dimension-lg:var(--pine-dimension-400);--pine-dimension-xl:var(--pine-dimension-500);--pine-dimension-2xl:var(--pine-dimension-600);--pine-letter-spacing-0:0px;--pine-letter-spacing-100:.14px;--pine-letter-spacing-114:.16px;--pine-letter-spacing-128:.18px;--pine-letter-spacing-142:.2px;--pine-letter-spacing-157:.22px;--pine-letter-spacing-171:.24px;--pine-letter-spacing-185:.26px;--pine-letter-spacing-078:.11px;--pine-letter-spacing-085:.12px;--pine-letter-spacing:var(--pine-letter-spacing-114) * -1;--pine-letter-spacing-heading-1:var(--pine-letter-spacing-185);--pine-letter-spacing-heading-2:var(--pine-letter-spacing-171);--pine-letter-spacing-heading-3:var(--pine-letter-spacing-157);--pine-letter-spacing-heading-4:var(--pine-letter-spacing-142);--pine-letter-spacing-heading-5:var(--pine-letter-spacing-128);--pine-letter-spacing-heading-6:var(--pine-letter-spacing-114);--pine-motion-duration-none:0ms;--pine-motion-duration-fast:.12s;--pine-motion-duration-base:.2s;--pine-motion-duration-slow:.3s;--pine-motion-easing-out:cubic-bezier(0, 0, .2, 1);--pine-motion-easing-in:cubic-bezier(.4, 0, 1, 1);--pine-motion-easing-in-out:cubic-bezier(.4, 0, .2, 1);--pine-z-index-0:0;--pine-z-index-1:1000;--pine-z-index-2:2000;--pine-z-index-3:3000;--pine-z-index-4:4000;--pine-z-index-5:5000;--pine-z-index-6:6000;--pine-z-index-8:8000;--pine-z-index-9:9000;--pine-z-index-n1:-1;--pine-z-index:var(--pine-z-index-0);--pine-z-index-hide:var(--pine-z-index-n1);--pine-z-index-raised:var(--pine-z-index-1);--pine-z-index-alert:var(--pine-z-index-2);--pine-z-index-underlay:var(--pine-z-index-3);--pine-z-index-navigation:var(--pine-z-index-4);--pine-z-index-overlay:var(--pine-z-index-5);--pine-z-index-modal:var(--pine-z-index-6);--pine-z-index-priority:var(--pine-z-index-8);--pine-z-index-nuclear:var(--pine-z-index-9);--pine-border:var(--pine-border-width-thin) solid var(--pine-color-grey-300);--pine-border-hover:var(--pine-border-width-thin) solid var(--pine-color-grey-400);--pine-border-none:var(--pine-border-width-none) solid var(--pine-color-grey-300);--pine-border-radius-sm:var(--pine-dimension-050);--pine-border-radius-md:var(--pine-dimension-125);--pine-border-radius-lg:var(--pine-dimension-200);--pine-border-radius-full:9999px;--pine-typography-heading-1:var(--pine-font-weight-semi-bold) var(--pine-font-size-heading-1)/var(--pine-line-height-heading) var(--pine-font-family-inter);--pine-typography-heading-2:var(--pine-font-weight-semi-bold) var(--pine-font-size-heading-2)/var(--pine-line-height-heading) var(--pine-font-family-inter);--pine-typography-heading-3:var(--pine-font-weight-semi-bold) var(--pine-font-size-heading-3)/var(--pine-line-height-heading) var(--pine-font-family-inter);--pine-typography-heading-4:var(--pine-font-weight-semi-bold) var(--pine-font-size-heading-4)/var(--pine-line-height-heading) var(--pine-font-family-inter);--pine-typography-heading-5:var(--pine-font-weight-medium) var(--pine-font-size-heading-5)/var(--pine-line-height-heading) var(--pine-font-family-inter);--pine-typography-heading-6:var(--pine-font-weight-medium) var(--pine-font-size-heading-6)/var(--pine-line-height-heading) var(--pine-font-family-inter);--pine-typography-heading-caption:var(--pine-font-weight-semi-bold) var(--pine-font-size-heading-caption)/var(--pine-line-height-heading) var(--pine-font-family-inter);--pine-typography-body:var(--pine-font-weight-regular) var(--pine-font-size-body-md)/var(--pine-line-height-body) var(--pine-font-family-inter);--pine-typography-body-medium:var(--pine-font-weight-medium) var(--pine-font-size-body-md)/var(--pine-line-height-body) var(--pine-font-family-inter);--pine-typography-body-mono:var(--pine-font-weight-medium) var(--pine-font-size-body-md)/var(--pine-line-height-body) var(--pine-monospace);--pine-typography-body-semi-bold:var(--pine-font-weight-semi-bold) var(--pine-font-size-body-md)/var(--pine-line-height-body) var(--pine-font-family-inter);--pine-typography-body-bold:var(--pine-font-weight-bold) var(--pine-font-size-body-md)/var(--pine-line-height-body) var(--pine-font-family-inter);--pine-typography-body-brand-label:var(--pine-font-weight-medium) var(--pine-font-size-body-md)/var(--pine-line-height-body) var(--pine-font-family-inter);--pine-typography-body-brand-text:var(--pine-font-weight-medium) var(--pine-font-size-body-md)/var(--pine-line-height-body) var(--pine-font-family-faire-sprig);--pine-typography-body-sm:var(--pine-font-weight-regular) var(--pine-font-size-body-sm)/var(--pine-line-height-body) var(--pine-font-family-inter);--pine-typography-body-sm-medium:var(--pine-font-weight-medium) var(--pine-font-size-body-sm)/var(--pine-line-height-body) var(--pine-font-family-inter);--pine-typography-body-sm-mono:var(--pine-font-weight-medium) var(--pine-font-size-body-sm)/var(--pine-line-height-body) var(--pine-monospace);--pine-typography-body-sm-bold:var(--pine-font-weight-bold) var(--pine-font-size-body-sm)/var(--pine-line-height-body) var(--pine-font-family-inter);--pine-typography-body-sm-brand-label:var(--pine-font-weight-medium) var(--pine-font-size-body-sm)/var(--pine-line-height-body) var(--pine-font-family-inter);--pine-typography-body-sm-brand-text:var(--pine-font-weight-medium) var(--pine-font-size-body-sm)/var(--pine-line-height-body) var(--pine-font-family-faire-sprig);--pine-outline-focus:var(--pine-border-width-thick) solid var(--pine-color-focus-ring);--pine-outline-focus-danger:var(--pine-border-width-thick) solid var(--pine-color-focus-ring-danger)}@media (prefers-reduced-motion: reduce){:root{--pine-motion-duration-fast:0ms;--pine-motion-duration-base:0ms;--pine-motion-duration-slow:0ms}}[data-theme=dark]{--pine-color-accent:var(--pine-color-purple-500);--pine-color-accent-disabled:var(--pine-color-purple-100);--pine-color-accent-hover:var(--pine-color-purple-600);--pine-color-background-app:var(--pine-color-grey-900);--pine-color-background-subtle:var(--pine-color-grey-900);--pine-color-background-muted:var(--pine-color-grey-800);--pine-color-background-inverse-app:var(--pine-color-grey-100);--pine-color-background-inverse-subtle:var(--pine-color-grey-150);--pine-color-background-inverse-muted:var(--pine-color-grey-200);--pine-color-background-inverse-container:var(--pine-color-white);--pine-color-background-inverse-inset:var(--pine-color-grey-050);--pine-color-background-container:var(--pine-color-black);--pine-color-background-container-disabled:var(--pine-color-grey-800);--pine-color-background-container-hover:var(--pine-color-grey-950);--pine-color-background-inset:var(--pine-color-grey-700);--pine-color-background-inset-emphasized:var(--pine-color-grey-600);--pine-color-border:var(--pine-color-grey-600);--pine-color-border-hover:var(--pine-color-grey-500);--pine-color-border-disabled:var(--pine-color-grey-700);--pine-color-border-active:var(--pine-color-grey-500);--pine-color-border-danger:var(--pine-color-red-600);--pine-color-border-danger-hover:var(--pine-color-red-700);--pine-color-border-subtle:var(--pine-color-grey-700);--pine-color-danger:var(--pine-color-red-600);--pine-color-danger-disabled:var(--pine-color-red-100);--pine-color-danger-hover:var(--pine-color-red-700);--pine-color-focus-ring:var(--pine-color-purple-300);--pine-color-focus-ring-danger:var(--pine-color-red-300);--pine-color-info:var(--pine-color-blue-500);--pine-color-info-disabled:var(--pine-color-blue-100);--pine-color-info-hover:var(--pine-color-blue-600);--pine-color-neutral:var(--pine-color-grey-400);--pine-color-neutral-disabled:var(--pine-color-grey-900);--pine-color-neutral-hover:var(--pine-color-grey-300);--pine-color-primary:var(--pine-color-grey-100);--pine-color-primary-disabled:var(--pine-color-grey-800);--pine-color-primary-hover:var(--pine-color-white);--pine-color-secondary:var(--pine-color-black);--pine-color-secondary-disabled:var(--pine-color-black);--pine-color-secondary-hover:var(--pine-color-grey-950);--pine-color-success:var(--pine-color-green-500);--pine-color-success-disabled:var(--pine-color-green-100);--pine-color-success-hover:var(--pine-color-green-600);--pine-color-text:var(--pine-color-grey-100);--pine-color-text-hover:var(--pine-color-grey-050);--pine-color-text-disabled:var(--pine-color-grey-400);--pine-color-text-readonly:var(--pine-color-grey-200);--pine-color-text-active:var(--pine-color-grey-050);--pine-color-text-accent:var(--pine-color-purple-900);--pine-color-text-accent-disabled:var(--pine-color-purple-300);--pine-color-text-accent-hover:var(--pine-color-purple-950);--pine-color-text-danger:var(--pine-color-red-900);--pine-color-text-danger-disabled:var(--pine-color-red-300);--pine-color-text-danger-hover:var(--pine-color-red-950);--pine-color-text-info:var(--pine-color-blue-900);--pine-color-text-info-disabled:var(--pine-color-blue-300);--pine-color-text-info-hover:var(--pine-color-blue-950);--pine-color-text-label:var(--pine-color-grey-050);--pine-color-text-label-disabled:var(--pine-color-grey-400);--pine-color-text-label-readonly:var(--pine-color-grey-200);--pine-color-text-message:var(--pine-color-grey-150);--pine-color-text-message-danger:var(--pine-color-red-500);--pine-color-text-message-disabled:var(--pine-color-grey-300);--pine-color-text-neutral:var(--pine-color-grey-100);--pine-color-text-neutral-disabled:var(--pine-color-grey-300);--pine-color-text-neutral-hover:var(--pine-color-grey-050);--pine-color-text-placeholder:var(--pine-color-grey-300);--pine-color-text-placeholder-disabled:var(--pine-color-grey-500);--pine-color-text-primary:var(--pine-color-black);--pine-color-text-primary-disabled:var(--pine-color-grey-500);--pine-color-text-secondary:var(--pine-color-grey-150);--pine-color-text-secondary-disabled:var(--pine-color-grey-500);--pine-color-text-secondary-hover:var(--pine-color-grey-100);--pine-color-text-tertiary:var(--pine-color-grey-300);--pine-color-text-tertiary-disabled:var(--pine-color-grey-500);--pine-color-text-subtle:var(--pine-color-grey-400);--pine-color-text-subtle-disabled:var(--pine-color-grey-600);--pine-color-text-muted:var(--pine-color-grey-200);--pine-color-text-muted-disabled:var(--pine-color-grey-400);--pine-color-text-strong:var(--pine-color-grey-050);--pine-color-text-strong-disabled:var(--pine-color-grey-300);--pine-color-text-emphasis:var(--pine-color-white);--pine-color-text-inverse:var(--pine-color-grey-900);--pine-color-text-inverse-secondary:var(--pine-color-grey-800);--pine-color-text-inverse-tertiary:var(--pine-color-grey-600);--pine-color-text-inverse-emphasis:var(--pine-color-black);--pine-color-text-success:var(--pine-color-green-900);--pine-color-text-success-disabled:var(--pine-color-green-300);--pine-color-text-success-hover:var(--pine-color-green-950);--pine-color-text-warning:var(--pine-color-yellow-900);--pine-color-text-warning-disabled:var(--pine-color-yellow-300);--pine-color-text-warning-hover:var(--pine-color-yellow-950);--pine-color-warning:var(--pine-color-yellow-500);--pine-color-warning-disabled:var(--pine-color-yellow-100);--pine-color-warning-hover:var(--pine-color-yellow-600);--pine-color-icon:var(--pine-color-grey-200);--pine-color-icon-subtle:var(--pine-color-grey-400);--pine-color-icon-disabled:var(--pine-color-grey-500);--pine-color-icon-inverse:var(--pine-color-grey-900);--pine-color-brand:var(--pine-color-grey-050);--pine-border:var(--pine-border-width-thin) solid var(--pine-color-grey-600);--pine-border-hover:var(--pine-border-width-thin) solid var(--pine-color-grey-400);--pine-border-none:var(--pine-border-width-none) solid var(--pine-color-grey-600)}@font-face{font-display:swap;font-family:"Inter";font-style:normal;font-weight:100;src:local("Inter-Thin"), url("https://sage.kajabi-cdn.com/fonts/inter/Inter-Thin.woff2?v=1") format("woff2")}@font-face{font-display:swap;font-family:"Inter";font-style:italic;font-weight:100;src:local("Inter-ThinItalic"), url("https://sage.kajabi-cdn.com/fonts/inter/Inter-ThinItalic.woff2?v=1") format("woff2")}@font-face{font-display:swap;font-family:"Inter";font-style:normal;font-weight:200;src:local("Inter-ExtraLight"), url("https://sage.kajabi-cdn.com/fonts/inter/Inter-ExtraLight.woff2?v=1") format("woff2")}@font-face{font-display:swap;font-family:"Inter";font-style:italic;font-weight:200;src:local("Inter-ExtraLightItalic"), url("https://sage.kajabi-cdn.com/fonts/inter/Inter-ExtraLightItalic.woff2?v=1") format("woff2")}@font-face{font-display:swap;font-family:"Inter";font-style:normal;font-weight:300;src:local("Inter-Light"), url("https://sage.kajabi-cdn.com/fonts/inter/Inter-Light.woff2?v=1") format("woff2")}@font-face{font-display:swap;font-family:"Inter";font-style:italic;font-weight:300;src:local("Inter-LightItalic"), url("https://sage.kajabi-cdn.com/fonts/inter/Inter-LightItalic.woff2?v=1") format("woff2")}@font-face{font-display:swap;font-family:"Inter";font-style:normal;font-weight:400;src:local("Inter-Regular"), url("https://sage.kajabi-cdn.com/fonts/inter/Inter-Regular.woff2?v=1") format("woff2")}@font-face{font-display:swap;font-family:"Inter";font-style:italic;font-weight:400;src:local("Inter-Italic"), url("https://sage.kajabi-cdn.com/fonts/inter/Inter-Italic.woff2?v=1") format("woff2")}@font-face{font-display:swap;font-family:"Inter";font-style:normal;font-weight:500;src:local("Inter-Medium"), url("https://sage.kajabi-cdn.com/fonts/inter/Inter-Medium.woff2?v=1") format("woff2")}@font-face{font-display:swap;font-family:"Inter";font-style:italic;font-weight:500;src:local("Inter-MediumItalic"), url("https://sage.kajabi-cdn.com/fonts/inter/Inter-MediumItalic.woff2?v=1") format("woff2")}@font-face{font-display:swap;font-family:"Inter";font-style:normal;font-weight:600;src:local("Inter-SemiBold"), url("https://sage.kajabi-cdn.com/fonts/inter/Inter-SemiBold.woff2?v=1") format("woff2")}@font-face{font-display:swap;font-family:"Inter";font-style:italic;font-weight:600;src:local("Inter-SemiBoldItalic"), url("https://sage.kajabi-cdn.com/fonts/inter/Inter-SemiBoldItalic.woff2?v=1") format("woff2")}@font-face{font-display:swap;font-family:"Inter";font-style:normal;font-weight:700;src:local("Inter-Bold"), url("https://sage.kajabi-cdn.com/fonts/inter/Inter-Bold.woff2?v=1") format("woff2")}@font-face{font-display:swap;font-family:"Inter";font-style:italic;font-weight:700;src:local("Inter-BoldItalic"), url("https://sage.kajabi-cdn.com/fonts/inter/Inter-BoldItalic.woff2?v=1") format("woff2")}@font-face{font-display:swap;font-family:"Inter";font-style:normal;font-weight:800;src:local("Inter-ExtraBold"), url("https://sage.kajabi-cdn.com/fonts/inter/Inter-ExtraBold.woff2?v=1") format("woff2")}@font-face{font-display:swap;font-family:"Inter";font-style:italic;font-weight:800;src:local("Inter-ExtraBoldItalic"), url("https://sage.kajabi-cdn.com/fonts/inter/Inter-ExtraBoldItalic.woff2?v=1") format("woff2")}@font-face{font-display:swap;font-family:"Inter";font-style:normal;font-weight:900;src:local("Inter-Black"), url("https://sage.kajabi-cdn.com/fonts/inter/Inter-Black.woff2?v=1") format("woff2")}@font-face{font-display:swap;font-family:"Inter";font-style:italic;font-weight:900;src:local("Inter-BlackItalic"), url("https://sage.kajabi-cdn.com/fonts/inter/Inter-BlackItalic.woff2?v=1") format("woff2")}@font-face{font-display:swap;font-family:"FAIRE Sprig";font-style:normal;font-weight:200;src:local("FAIRE-Sprig-Thin"), url("https://sage.kajabi-cdn.com/fonts/sprig/FAIRE-Sprig-Thin.woff2?v=1") format("woff2")}@font-face{font-display:swap;font-family:"FAIRE Sprig";font-style:italic;font-weight:200;src:local("FAIRE-Sprig-ThinItalic"), url("https://sage.kajabi-cdn.com/fonts/sprig/FAIRE-Sprig-ThinItalic.woff2?v=1") format("woff2")}@font-face{font-display:swap;font-family:"FAIRE Sprig";font-style:normal;font-weight:300;src:local("FAIRE-Sprig-Light"), url("https://sage.kajabi-cdn.com/fonts/sprig/FAIRE-Sprig-Light.woff2?v=1") format("woff2")}@font-face{font-display:swap;font-family:"FAIRE Sprig";font-style:italic;font-weight:300;src:local("FAIRE-Sprig-LightItalic"), url("https://sage.kajabi-cdn.com/fonts/sprig/FAIRE-Sprig-LightItalic.woff2?v=1") format("woff2")}@font-face{font-display:swap;font-family:"FAIRE Sprig";font-style:normal;font-weight:400;src:local("FAIRE-Sprig-Regular"), url("https://sage.kajabi-cdn.com/fonts/sprig/FAIRE-Sprig-Regular.woff2?v=1") format("woff2")}@font-face{font-display:swap;font-family:"FAIRE Sprig";font-style:italic;font-weight:400;src:local("FAIRE-Sprig-RegularItalic"), url("https://sage.kajabi-cdn.com/fonts/sprig/FAIRE-Sprig-RegularItalic.woff2?v=1") format("woff2")}@font-face{font-display:swap;font-family:"FAIRE Sprig";font-style:normal;font-weight:500;src:local("FAIRE-Sprig-Medium"), url("https://sage.kajabi-cdn.com/fonts/sprig/FAIRE-Sprig-Medium.woff2?v=1") format("woff2")}@font-face{font-display:swap;font-family:"FAIRE Sprig";font-style:italic;font-weight:500;src:local("FAIRE-Sprig-MediumItalic"), url("https://sage.kajabi-cdn.com/fonts/sprig/FAIRE-Sprig-MediumItalic.woff2?v=1") format("woff2")}@font-face{font-display:swap;font-family:"FAIRE Sprig";font-style:normal;font-weight:700;src:local("FAIRE-Sprig-Bold"), url("https://sage.kajabi-cdn.com/fonts/sprig/FAIRE-Sprig-Bold.woff2?v=1") format("woff2")}@font-face{font-display:swap;font-family:"FAIRE Sprig";font-style:italic;font-weight:700;src:local("FAIRE-Sprig-BoldItalic"), url("https://sage.kajabi-cdn.com/fonts/sprig/FAIRE-Sprig-BoldItalic.woff2?v=1") format("woff2")}@font-face{font-display:swap;font-family:"FAIRE Sprig";font-style:normal;font-weight:900;src:local("FAIRE-Sprig-Super"), url("https://sage.kajabi-cdn.com/fonts/sprig/FAIRE-Sprig-Super.woff2?v=1") format("woff2")}@font-face{font-display:swap;font-family:"FAIRE Sprig";font-style:italic;font-weight:900;src:local("FAIRE-Sprig-SuperItalic"), url("https://sage.kajabi-cdn.com/fonts/sprig/FAIRE-Sprig-SuperItalic.woff2?v=1") format("woff2")}@font-face{font-display:swap;font-family:"Noto Sans Arabic";font-style:normal;font-weight:normal;src:local("Noto-Sans-Arabic"), url("https://sage.kajabi-cdn.com/fonts/noto/Noto-Sans-Arabic.woff2?v=1") format("woff2")}@font-face{font-display:swap;font-family:"Noto Sans Hebrew";font-style:normal;font-weight:normal;src:local("Noto-Sans-Hebrew"), url("https://sage.kajabi-cdn.com/fonts/noto/Noto-Sans-Hebrew.woff2?v=1") format("woff2")}@font-face{font-display:swap;font-family:"Noto Sans Devanagari";font-style:normal;font-weight:normal;src:local("Noto-Sans-Devanagari"), url("https://sage.kajabi-cdn.com/fonts/noto/Noto-Sans-Devanagari.woff2?v=1") format("woff2")}:root{--pine-motion-duration-fast:120ms;--pine-motion-duration-base:200ms;--pine-motion-duration-slow:300ms;--pine-motion-easing-out:cubic-bezier(0, 0, 0.2, 1);--pine-motion-easing-in:cubic-bezier(0.4, 0, 1, 1);--pine-motion-easing-in-out:cubic-bezier(0.4, 0, 0.2, 1)}@media (prefers-reduced-motion: reduce){:root{--pine-motion-duration-fast:0ms;--pine-motion-duration-base:0ms;--pine-motion-duration-slow:0ms}}.pds-combobox-dropdown-portal .pds-combobox__listbox{background:var(--pine-color-background-container);border:0;border-radius:var(--pine-dimension-125);-webkit-box-shadow:var(--pine-box-shadow);box-shadow:var(--pine-box-shadow);list-style:none;margin:0;min-width:220px;overflow-y:auto;padding:var(--pine-dimension-xs);position:absolute;z-index:var(--pine-z-index-raised)}.pds-combobox-dropdown-portal .pds-combobox__option{-ms-flex-align:center;align-items:center;background:transparent;border-radius:var(--pine-dimension-125);color:var(--pine-color-text-secondary);cursor:pointer;display:-ms-flexbox;display:flex;font:var(--pine-typography-body-medium);-ms-flex-pack:justify;justify-content:space-between;padding:var(--pine-dimension-xs) var(--pine-dimension-sm);position:relative;-webkit-transition:background 0.15s;transition:background 0.15s}.pds-combobox-dropdown-portal .pds-combobox__option[aria-selected=true]{background:var(--pine-color-background-muted)}.pds-combobox-dropdown-portal .pds-combobox__option:focus-visible{outline:0}.pds-combobox-dropdown-portal .pds-combobox__option.pds-combobox__option--layout .pds-combobox__option-layout-wrapper{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;width:100%}.pds-combobox-dropdown-portal .pds-combobox__option.pds-combobox__option--chip .pds-combobox__option-chip{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;width:100%}.pds-combobox-dropdown-portal .pds-combobox__option:last-child{-webkit-margin-after:0;margin-block-end:0}.pds-combobox-dropdown-portal .pds-combobox__option--highlighted,.pds-combobox-dropdown-portal .pds-combobox__option[selected],.pds-combobox-dropdown-portal .pds-combobox__option--selected{background:var(--pine-color-background-muted)}.pds-combobox-dropdown-portal .pds-combobox__option-check{color:currentColor;font-size:var(--pine-dimension-150);-webkit-margin-start:var(--pine-dimension-150);margin-inline-start:var(--pine-dimension-150)}.pds-combobox-dropdown-portal .pds-combobox__group-label{color:var(--pine-color-text-tertiary);cursor:default;font:var(--pine-typography-heading-caption);-webkit-margin-after:var(--pine-dimension-2xs);margin-block-end:var(--pine-dimension-2xs);-webkit-margin-before:var(--pine-dimension-150);margin-block-start:var(--pine-dimension-150);padding:var(--pine-dimension-2xs) var(--pine-dimension-sm);text-transform:uppercase}.pds-combobox-dropdown-portal .pds-combobox__group-label:first-child{-webkit-margin-before:0;margin-block-start:0}.pds-combobox-dropdown-portal .pds-combobox__loading{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;padding:var(--pine-dimension-150)}.pds-combobox-dropdown-portal .pds-combobox__empty{color:var(--pine-color-text-tertiary);padding:var(--pine-dimension-150) var(--pine-dimension-sm);text-align:center}.pds-combobox-dropdown-portal .pds-combobox__load-more{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;padding:var(--pine-dimension-150)}.pds-combobox-dropdown-portal .pds-combobox__listbox{position:fixed;z-index:var(--pine-z-index-priority)}[hidden]{display:none !important}
|
|
1
|
+
:root{--pine-border-width-none:0px;--pine-border-width-thin:1px;--pine-border-width-thick:2px;--pine-border-width:var(--pine-border-width-thin);--pine-box-shadow-100:0 1px 3px 0 rgba(0,0,0,.1), 0 1px 2px 0 rgba(0,0,0,.06);--pine-box-shadow-150:0 4px 8px -2px rgba(0,0,0,.1), 0 2px 4px -2px rgba(0,0,0,.06);--pine-box-shadow-200:0 12px 16px -4px rgba(0,0,0,.08), 0 4px 6px -2px rgba(0,0,0,.03);--pine-box-shadow-300:0 20px 24px -4px rgba(0,0,0,.08), 0 8px 8px -4px rgba(0,0,0,.03);--pine-box-shadow-400:0 24px 48px -12px rgba(0,0,0,.18);--pine-box-shadow-500:0 32px 64px -12px rgba(0,0,0,.14);--pine-box-shadow-050:0 1px 2px 0 rgba(0,0,0,.05);--pine-box-shadow:var(--pine-box-shadow-100);--pine-color-white:#ffffff;--pine-color-black:#000000;--pine-color-grey-100:#f8f8f8;--pine-color-grey-150:#f0f0f0;--pine-color-grey-200:#e4e4e4;--pine-color-grey-300:#d2d1d1;--pine-color-grey-400:#bbbab9;--pine-color-grey-500:#9b9a98;--pine-color-grey-600:#828180;--pine-color-grey-700:#6c6a69;--pine-color-grey-800:#4d4d4c;--pine-color-grey-900:#343332;--pine-color-grey-950:#1a1a19;--pine-color-grey-050:#fcfcfc;--pine-color-blue-100:#eff6ff;--pine-color-blue-150:#dbeafe;--pine-color-blue-200:#bfdbfe;--pine-color-blue-300:#93c5fd;--pine-color-blue-400:#60a5fa;--pine-color-blue-500:#3b82f6;--pine-color-blue-600:#2563eb;--pine-color-blue-700:#1d4ed8;--pine-color-blue-800:#1e40af;--pine-color-blue-900:#1e3a8a;--pine-color-blue-950:#172554;--pine-color-blue-050:#fafcff;--pine-color-green-100:#edfcf2;--pine-color-green-150:#d3f8df;--pine-color-green-200:#aaf0c4;--pine-color-green-300:#73e2a3;--pine-color-green-400:#3ccb7f;--pine-color-green-500:#16b364;--pine-color-green-600:#099250;--pine-color-green-700:#087443;--pine-color-green-800:#095c37;--pine-color-green-900:#084c2e;--pine-color-green-950:#052e1c;--pine-color-green-050:#fbfefc;--pine-color-red-100:#fef2f2;--pine-color-red-150:#fee2e2;--pine-color-red-200:#fecaca;--pine-color-red-300:#fca5a5;--pine-color-red-400:#f87171;--pine-color-red-500:#ef4444;--pine-color-red-600:#dc2626;--pine-color-red-700:#b91c1c;--pine-color-red-800:#991b1b;--pine-color-red-900:#7f1d1d;--pine-color-red-950:#450a0a;--pine-color-red-050:#fffafa;--pine-color-yellow-100:#fffbeb;--pine-color-yellow-150:#fff2c6;--pine-color-yellow-200:#fee589;--pine-color-yellow-300:#fed04b;--pine-color-yellow-400:#fdbb21;--pine-color-yellow-500:#f79a09;--pine-color-yellow-600:#db7204;--pine-color-yellow-700:#b64f07;--pine-color-yellow-800:#933d0d;--pine-color-yellow-900:#79330e;--pine-color-yellow-950:#461902;--pine-color-yellow-050:#fffefa;--pine-color-mercury-100:#fff4f1;--pine-color-mercury-150:#ffeae5;--pine-color-mercury-200:#fed4cd;--pine-color-mercury-300:#fdb1a4;--pine-color-mercury-400:#fb8271;--pine-color-mercury-500:#ff3e14;--pine-color-mercury-600:#f02006;--pine-color-mercury-700:#c71307;--pine-color-mercury-800:#9e110e;--pine-color-mercury-900:#7f120f;--pine-color-mercury-950:#450506;--pine-color-mercury-050:#fffbfa;--pine-color-purple-100:#eef1ff;--pine-color-purple-150:#e0e4ff;--pine-color-purple-200:#c7cdfe;--pine-color-purple-300:#a4acfd;--pine-color-purple-400:#8081f9;--pine-color-purple-500:#6b62f2;--pine-color-purple-600:#533be5;--pine-color-purple-700:#4f37cb;--pine-color-purple-800:#402fa4;--pine-color-purple-900:#372d82;--pine-color-purple-950:#221b4b;--pine-color-purple-050:#fafbff;--pine-color-forest-100:#effaf6;--pine-color-forest-150:#d9f2e7;--pine-color-forest-200:#b5e5d2;--pine-color-forest-300:#85d0b7;--pine-color-forest-400:#52b597;--pine-color-forest-500:#30997d;--pine-color-forest-600:#23856d;--pine-color-forest-700:#1a6253;--pine-color-forest-800:#174e43;--pine-color-forest-900:#144038;--pine-color-forest-950:#0a2420;--pine-color-forest-050:#fbfefd;--pine-color-lime-100:#f7fee7;--pine-color-lime-150:#ecfccb;--pine-color-lime-200:#d9f99d;--pine-color-lime-300:#bef264;--pine-color-lime-400:#a3e635;--pine-color-lime-500:#84cc16;--pine-color-lime-600:#65a30d;--pine-color-lime-700:#4d7c0f;--pine-color-lime-800:#3f6212;--pine-color-lime-900:#365314;--pine-color-lime-950:#1b290a;--pine-color-lime-050:#fdfffa;--pine-color-magenta-100:#fdf4ff;--pine-color-magenta-150:#fae8ff;--pine-color-magenta-200:#f5d0fe;--pine-color-magenta-300:#f0abfc;--pine-color-magenta-400:#e879f9;--pine-color-magenta-500:#d946ef;--pine-color-magenta-600:#c026d3;--pine-color-magenta-700:#a21caf;--pine-color-magenta-800:#86198f;--pine-color-magenta-900:#701a75;--pine-color-magenta-950:#4a044e;--pine-color-magenta-050:#fefaff;--pine-color-pink-100:#fdf2f8;--pine-color-pink-150:#fce7f3;--pine-color-pink-200:#fbcfe8;--pine-color-pink-300:#f9a8d4;--pine-color-pink-400:#f472b6;--pine-color-pink-500:#ec4899;--pine-color-pink-600:#db2777;--pine-color-pink-700:#be185d;--pine-color-pink-800:#9d174d;--pine-color-pink-900:#831843;--pine-color-pink-950:#500724;--pine-color-pink-050:#fffafa;--pine-color-salmon-100:#fff1f2;--pine-color-salmon-150:#ffe4e6;--pine-color-salmon-200:#fecdd3;--pine-color-salmon-300:#fda4af;--pine-color-salmon-400:#fb7185;--pine-color-salmon-500:#f43f5e;--pine-color-salmon-600:#e11d48;--pine-color-salmon-700:#be123c;--pine-color-salmon-800:#9f1239;--pine-color-salmon-900:#881337;--pine-color-salmon-950:#4c0519;--pine-color-salmon-050:#fffafa;--pine-color-sky-100:#f0f9ff;--pine-color-sky-150:#e0f2fe;--pine-color-sky-200:#bae6fd;--pine-color-sky-300:#7dd3fc;--pine-color-sky-400:#38bdf8;--pine-color-sky-500:#0ea5e9;--pine-color-sky-600:#0284c7;--pine-color-sky-700:#0369a1;--pine-color-sky-800:#075985;--pine-color-sky-900:#0c4a6e;--pine-color-sky-950:#082f49;--pine-color-sky-050:#fafdff;--pine-color-teal-100:#f0fdfa;--pine-color-teal-150:#ccfbf1;--pine-color-teal-200:#99f6e4;--pine-color-teal-300:#5eead4;--pine-color-teal-400:#2dd4bf;--pine-color-teal-500:#14b8a6;--pine-color-teal-600:#0d9488;--pine-color-teal-700:#0f766e;--pine-color-teal-800:#115e59;--pine-color-teal-900:#134e4a;--pine-color-teal-950:#042f2e;--pine-color-teal-050:#fbfefe;--pine-color-accent:var(--pine-color-purple-500);--pine-color-accent-disabled:var(--pine-color-purple-100);--pine-color-accent-hover:var(--pine-color-purple-600);--pine-color-background-app:var(--pine-color-grey-100);--pine-color-background-subtle:var(--pine-color-grey-100);--pine-color-background-muted:var(--pine-color-grey-150);--pine-color-background-inverse-app:var(--pine-color-grey-900);--pine-color-background-inverse-subtle:var(--pine-color-grey-800);--pine-color-background-inverse-muted:var(--pine-color-grey-700);--pine-color-background-inverse-container:var(--pine-color-black);--pine-color-background-inverse-inset:var(--pine-color-grey-950);--pine-color-background-container:var(--pine-color-white);--pine-color-background-container-disabled:var(--pine-color-grey-150);--pine-color-background-container-hover:var(--pine-color-grey-050);--pine-color-background-inset:var(--pine-color-grey-200);--pine-color-background-inset-emphasized:var(--pine-color-grey-300);--pine-color-background-overlay:var(--pine-color-white);--pine-color-border:var(--pine-color-grey-300);--pine-color-border-hover:var(--pine-color-grey-400);--pine-color-border-disabled:var(--pine-color-grey-200);--pine-color-border-active:var(--pine-color-grey-400);--pine-color-border-danger:var(--pine-color-red-600);--pine-color-border-danger-hover:var(--pine-color-red-700);--pine-color-border-subtle:var(--pine-color-grey-200);--pine-color-danger:var(--pine-color-red-600);--pine-color-danger-disabled:var(--pine-color-red-100);--pine-color-danger-hover:var(--pine-color-red-700);--pine-color-focus-ring:var(--pine-color-purple-300);--pine-color-focus-ring-danger:var(--pine-color-red-300);--pine-color-info:var(--pine-color-blue-500);--pine-color-info-disabled:var(--pine-color-blue-100);--pine-color-info-hover:var(--pine-color-blue-600);--pine-color-neutral:var(--pine-color-grey-500);--pine-color-neutral-disabled:var(--pine-color-grey-100);--pine-color-neutral-hover:var(--pine-color-grey-600);--pine-color-primary:var(--pine-color-grey-900);--pine-color-primary-disabled:var(--pine-color-grey-150);--pine-color-primary-hover:var(--pine-color-grey-950);--pine-color-secondary:var(--pine-color-white);--pine-color-secondary-disabled:var(--pine-color-white);--pine-color-secondary-hover:var(--pine-color-grey-050);--pine-color-success:var(--pine-color-green-500);--pine-color-success-disabled:var(--pine-color-green-100);--pine-color-success-hover:var(--pine-color-green-600);--pine-color-text:var(--pine-color-grey-900);--pine-color-text-hover:var(--pine-color-grey-950);--pine-color-text-disabled:var(--pine-color-grey-500);--pine-color-text-readonly:var(--pine-color-grey-700);--pine-color-text-active:var(--pine-color-grey-950);--pine-color-text-accent:var(--pine-color-purple-900);--pine-color-text-accent-disabled:var(--pine-color-purple-300);--pine-color-text-accent-hover:var(--pine-color-purple-950);--pine-color-text-danger:var(--pine-color-red-900);--pine-color-text-danger-disabled:var(--pine-color-red-300);--pine-color-text-danger-hover:var(--pine-color-red-950);--pine-color-text-info:var(--pine-color-blue-900);--pine-color-text-info-disabled:var(--pine-color-blue-300);--pine-color-text-info-hover:var(--pine-color-blue-950);--pine-color-text-label:var(--pine-color-grey-950);--pine-color-text-label-disabled:var(--pine-color-grey-500);--pine-color-text-label-readonly:var(--pine-color-grey-700);--pine-color-text-message:var(--pine-color-grey-800);--pine-color-text-message-danger:var(--pine-color-red-600);--pine-color-text-message-disabled:var(--pine-color-grey-600);--pine-color-text-neutral:var(--pine-color-grey-900);--pine-color-text-neutral-disabled:var(--pine-color-grey-600);--pine-color-text-neutral-hover:var(--pine-color-grey-950);--pine-color-text-placeholder:var(--pine-color-grey-600);--pine-color-text-placeholder-disabled:var(--pine-color-grey-400);--pine-color-text-primary:var(--pine-color-white);--pine-color-text-primary-disabled:var(--pine-color-grey-400);--pine-color-text-secondary:var(--pine-color-grey-800);--pine-color-text-secondary-disabled:var(--pine-color-grey-400);--pine-color-text-secondary-hover:var(--pine-color-grey-900);--pine-color-text-tertiary:var(--pine-color-grey-600);--pine-color-text-tertiary-disabled:var(--pine-color-grey-400);--pine-color-text-subtle:var(--pine-color-grey-500);--pine-color-text-subtle-disabled:var(--pine-color-grey-300);--pine-color-text-muted:var(--pine-color-grey-700);--pine-color-text-muted-disabled:var(--pine-color-grey-500);--pine-color-text-strong:var(--pine-color-grey-950);--pine-color-text-strong-disabled:var(--pine-color-grey-600);--pine-color-text-emphasis:var(--pine-color-black);--pine-color-text-inverse:var(--pine-color-grey-100);--pine-color-text-inverse-secondary:var(--pine-color-grey-150);--pine-color-text-inverse-tertiary:var(--pine-color-grey-300);--pine-color-text-inverse-emphasis:var(--pine-color-white);--pine-color-text-success:var(--pine-color-green-900);--pine-color-text-success-disabled:var(--pine-color-green-300);--pine-color-text-success-hover:var(--pine-color-green-950);--pine-color-text-warning:var(--pine-color-yellow-900);--pine-color-text-warning-disabled:var(--pine-color-yellow-300);--pine-color-text-warning-hover:var(--pine-color-yellow-950);--pine-color-warning:var(--pine-color-yellow-500);--pine-color-warning-disabled:var(--pine-color-yellow-100);--pine-color-warning-hover:var(--pine-color-yellow-600);--pine-color-icon:var(--pine-color-grey-700);--pine-color-icon-subtle:var(--pine-color-grey-500);--pine-color-icon-disabled:var(--pine-color-grey-400);--pine-color-icon-inverse:var(--pine-color-white);--pine-color-brand:var(--pine-color-black);--pine-font-family-inter:"Inter", system-ui, "Segoe UI", "Roboto", "Ubuntu", sans-serif;--pine-font-family-faire-sprig:"FAIRE Sprig";--pine-font-family-heading:var(--pine-font-family-inter);--pine-font-family-body:var(--pine-font-family-inter);--pine-font-size-100:14px;--pine-font-size-116:16px;--pine-font-size-128:18px;--pine-font-size-142:20px;--pine-font-size-157:22px;--pine-font-size-171:24px;--pine-font-size-185:26px;--pine-font-size-200:28px;--pine-font-size-214:30px;--pine-font-size-228:32px;--pine-font-size-242:34px;--pine-font-size-257:36px;--pine-font-size-271:38px;--pine-font-size-285:40px;--pine-font-size-057:8px;--pine-font-size-071:10px;--pine-font-size-085:12px;--pine-font-size:var(--pine-font-size-100);--pine-font-size-body-2xs:var(--pine-font-size-057);--pine-font-size-body-xs:var(--pine-font-size-071);--pine-font-size-body-sm:var(--pine-font-size-085);--pine-font-size-body-md:var(--pine-font-size-100);--pine-font-size-body-lg:var(--pine-font-size-116);--pine-font-size-body-xl:var(--pine-font-size-128);--pine-font-size-body-2xl:var(--pine-font-size-142);--pine-font-size-heading-1:var(--pine-font-size-200);--pine-font-size-heading-2:var(--pine-font-size-185);--pine-font-size-heading-3:var(--pine-font-size-157);--pine-font-size-heading-4:var(--pine-font-size-142);--pine-font-size-heading-5:var(--pine-font-size-128);--pine-font-size-heading-6:var(--pine-font-size-116);--pine-font-size-heading-caption:var(--pine-font-size-085);--pine-font-weight-100:100;--pine-font-weight-200:200;--pine-font-weight-300:300;--pine-font-weight-400:400;--pine-font-weight-500:500;--pine-font-weight-600:600;--pine-font-weight-700:700;--pine-font-weight-800:800;--pine-font-weight-900:900;--pine-font-weight-thin:var(--pine-font-weight-100);--pine-font-weight-extra-light:var(--pine-font-weight-200);--pine-font-weight-light:var(--pine-font-weight-300);--pine-font-weight-regular:var(--pine-font-weight-400);--pine-font-weight-medium:var(--pine-font-weight-500);--pine-font-weight-semi-bold:var(--pine-font-weight-600);--pine-font-weight-bold:var(--pine-font-weight-700);--pine-font-weight-extra-bold:var(--pine-font-weight-800);--pine-font-weight-heavy:var(--pine-font-weight-900);--pine-font-weight-text-message:var(--pine-font-weight-400);--pine-line-height-100:1;--pine-line-height-125:1.25;--pine-line-height-150:1.5;--pine-line-height-175:1.75;--pine-line-height-200:2;--pine-line-height-225:2.25;--pine-line-height-250:2.5;--pine-line-height-275:2.75;--pine-line-height-300:3;--pine-line-height-025:.625;--pine-line-height-050:.78125;--pine-line-height-075:.9375;--pine-line-height-text-message:var(--pine-line-height-125);--pine-line-height-heading:var(--pine-line-height-125);--pine-line-height-body:1.425;--pine-dimension-0:0px;--pine-dimension-100:8px;--pine-dimension-125:10px;--pine-dimension-150:12px;--pine-dimension-200:16px;--pine-dimension-250:20px;--pine-dimension-300:24px;--pine-dimension-350:28px;--pine-dimension-400:32px;--pine-dimension-450:36px;--pine-dimension-500:40px;--pine-dimension-550:44px;--pine-dimension-600:48px;--pine-dimension-650:52px;--pine-dimension-700:56px;--pine-dimension-750:60px;--pine-dimension-800:64px;--pine-dimension-050:4px;--pine-dimension-025:2px;--pine-dimension-none:var(--pine-dimension-0);--pine-dimension-2xs:var(--pine-dimension-050);--pine-dimension-xs:var(--pine-dimension-100);--pine-dimension-sm:var(--pine-dimension-200);--pine-dimension-md:var(--pine-dimension-300);--pine-dimension-lg:var(--pine-dimension-400);--pine-dimension-xl:var(--pine-dimension-500);--pine-dimension-2xl:var(--pine-dimension-600);--pine-letter-spacing-0:0px;--pine-letter-spacing-100:.14px;--pine-letter-spacing-114:.16px;--pine-letter-spacing-128:.18px;--pine-letter-spacing-142:.2px;--pine-letter-spacing-157:.22px;--pine-letter-spacing-171:.24px;--pine-letter-spacing-185:.26px;--pine-letter-spacing-078:.11px;--pine-letter-spacing-085:.12px;--pine-letter-spacing:var(--pine-letter-spacing-114) * -1;--pine-letter-spacing-heading-1:var(--pine-letter-spacing-185);--pine-letter-spacing-heading-2:var(--pine-letter-spacing-171);--pine-letter-spacing-heading-3:var(--pine-letter-spacing-157);--pine-letter-spacing-heading-4:var(--pine-letter-spacing-142);--pine-letter-spacing-heading-5:var(--pine-letter-spacing-128);--pine-letter-spacing-heading-6:var(--pine-letter-spacing-114);--pine-motion-duration-none:0ms;--pine-motion-duration-fast:.12s;--pine-motion-duration-base:.2s;--pine-motion-duration-slow:.3s;--pine-motion-easing-out:cubic-bezier(0, 0, .2, 1);--pine-motion-easing-in:cubic-bezier(.4, 0, 1, 1);--pine-motion-easing-in-out:cubic-bezier(.4, 0, .2, 1);--pine-z-index-0:0;--pine-z-index-1:1000;--pine-z-index-2:2000;--pine-z-index-3:3000;--pine-z-index-4:4000;--pine-z-index-5:5000;--pine-z-index-6:6000;--pine-z-index-8:8000;--pine-z-index-9:9000;--pine-z-index-n1:-1;--pine-z-index:var(--pine-z-index-0);--pine-z-index-hide:var(--pine-z-index-n1);--pine-z-index-raised:var(--pine-z-index-1);--pine-z-index-alert:var(--pine-z-index-2);--pine-z-index-underlay:var(--pine-z-index-3);--pine-z-index-navigation:var(--pine-z-index-4);--pine-z-index-overlay:var(--pine-z-index-5);--pine-z-index-modal:var(--pine-z-index-6);--pine-z-index-priority:var(--pine-z-index-8);--pine-z-index-nuclear:var(--pine-z-index-9);--pine-border:var(--pine-border-width-thin) solid var(--pine-color-grey-300);--pine-border-hover:var(--pine-border-width-thin) solid var(--pine-color-grey-400);--pine-border-none:var(--pine-border-width-none) solid var(--pine-color-grey-300);--pine-border-radius-sm:var(--pine-dimension-050);--pine-border-radius-md:var(--pine-dimension-125);--pine-border-radius-lg:var(--pine-dimension-200);--pine-border-radius-full:9999px;--pine-typography-heading-1:var(--pine-font-weight-semi-bold) var(--pine-font-size-heading-1)/var(--pine-line-height-heading) var(--pine-font-family-inter);--pine-typography-heading-2:var(--pine-font-weight-semi-bold) var(--pine-font-size-heading-2)/var(--pine-line-height-heading) var(--pine-font-family-inter);--pine-typography-heading-3:var(--pine-font-weight-semi-bold) var(--pine-font-size-heading-3)/var(--pine-line-height-heading) var(--pine-font-family-inter);--pine-typography-heading-4:var(--pine-font-weight-semi-bold) var(--pine-font-size-heading-4)/var(--pine-line-height-heading) var(--pine-font-family-inter);--pine-typography-heading-5:var(--pine-font-weight-medium) var(--pine-font-size-heading-5)/var(--pine-line-height-heading) var(--pine-font-family-inter);--pine-typography-heading-6:var(--pine-font-weight-medium) var(--pine-font-size-heading-6)/var(--pine-line-height-heading) var(--pine-font-family-inter);--pine-typography-heading-caption:var(--pine-font-weight-semi-bold) var(--pine-font-size-heading-caption)/var(--pine-line-height-heading) var(--pine-font-family-inter);--pine-typography-body:var(--pine-font-weight-regular) var(--pine-font-size-body-md)/var(--pine-line-height-body) var(--pine-font-family-inter);--pine-typography-body-medium:var(--pine-font-weight-medium) var(--pine-font-size-body-md)/var(--pine-line-height-body) var(--pine-font-family-inter);--pine-typography-body-mono:var(--pine-font-weight-medium) var(--pine-font-size-body-md)/var(--pine-line-height-body) var(--pine-monospace);--pine-typography-body-semi-bold:var(--pine-font-weight-semi-bold) var(--pine-font-size-body-md)/var(--pine-line-height-body) var(--pine-font-family-inter);--pine-typography-body-bold:var(--pine-font-weight-bold) var(--pine-font-size-body-md)/var(--pine-line-height-body) var(--pine-font-family-inter);--pine-typography-body-brand-label:var(--pine-font-weight-medium) var(--pine-font-size-body-md)/var(--pine-line-height-body) var(--pine-font-family-inter);--pine-typography-body-brand-text:var(--pine-font-weight-medium) var(--pine-font-size-body-md)/var(--pine-line-height-body) var(--pine-font-family-faire-sprig);--pine-typography-body-sm:var(--pine-font-weight-regular) var(--pine-font-size-body-sm)/var(--pine-line-height-body) var(--pine-font-family-inter);--pine-typography-body-sm-medium:var(--pine-font-weight-medium) var(--pine-font-size-body-sm)/var(--pine-line-height-body) var(--pine-font-family-inter);--pine-typography-body-sm-mono:var(--pine-font-weight-medium) var(--pine-font-size-body-sm)/var(--pine-line-height-body) var(--pine-monospace);--pine-typography-body-sm-bold:var(--pine-font-weight-bold) var(--pine-font-size-body-sm)/var(--pine-line-height-body) var(--pine-font-family-inter);--pine-typography-body-sm-brand-label:var(--pine-font-weight-medium) var(--pine-font-size-body-sm)/var(--pine-line-height-body) var(--pine-font-family-inter);--pine-typography-body-sm-brand-text:var(--pine-font-weight-medium) var(--pine-font-size-body-sm)/var(--pine-line-height-body) var(--pine-font-family-faire-sprig);--pine-outline-focus:var(--pine-border-width-thick) solid var(--pine-color-focus-ring);--pine-outline-focus-danger:var(--pine-border-width-thick) solid var(--pine-color-focus-ring-danger)}@media (prefers-reduced-motion: reduce){:root{--pine-motion-duration-fast:0ms;--pine-motion-duration-base:0ms;--pine-motion-duration-slow:0ms}}[data-theme=dark]{--pine-color-accent:var(--pine-color-purple-500);--pine-color-accent-disabled:var(--pine-color-purple-100);--pine-color-accent-hover:var(--pine-color-purple-600);--pine-color-background-app:var(--pine-color-grey-900);--pine-color-background-subtle:var(--pine-color-grey-900);--pine-color-background-muted:var(--pine-color-grey-800);--pine-color-background-inverse-app:var(--pine-color-grey-100);--pine-color-background-inverse-subtle:var(--pine-color-grey-150);--pine-color-background-inverse-muted:var(--pine-color-grey-200);--pine-color-background-inverse-container:var(--pine-color-white);--pine-color-background-inverse-inset:var(--pine-color-grey-050);--pine-color-background-container:var(--pine-color-black);--pine-color-background-container-disabled:var(--pine-color-grey-800);--pine-color-background-container-hover:var(--pine-color-grey-950);--pine-color-background-inset:var(--pine-color-grey-700);--pine-color-background-inset-emphasized:var(--pine-color-grey-600);--pine-color-background-overlay:var(--pine-color-grey-900);--pine-color-border:var(--pine-color-grey-600);--pine-color-border-hover:var(--pine-color-grey-500);--pine-color-border-disabled:var(--pine-color-grey-700);--pine-color-border-active:var(--pine-color-grey-500);--pine-color-border-danger:var(--pine-color-red-600);--pine-color-border-danger-hover:var(--pine-color-red-700);--pine-color-border-subtle:var(--pine-color-grey-700);--pine-color-danger:var(--pine-color-red-600);--pine-color-danger-disabled:var(--pine-color-red-100);--pine-color-danger-hover:var(--pine-color-red-700);--pine-color-focus-ring:var(--pine-color-purple-300);--pine-color-focus-ring-danger:var(--pine-color-red-300);--pine-color-info:var(--pine-color-blue-500);--pine-color-info-disabled:var(--pine-color-blue-100);--pine-color-info-hover:var(--pine-color-blue-600);--pine-color-neutral:var(--pine-color-grey-400);--pine-color-neutral-disabled:var(--pine-color-grey-900);--pine-color-neutral-hover:var(--pine-color-grey-300);--pine-color-primary:var(--pine-color-grey-100);--pine-color-primary-disabled:var(--pine-color-grey-800);--pine-color-primary-hover:var(--pine-color-white);--pine-color-secondary:var(--pine-color-black);--pine-color-secondary-disabled:var(--pine-color-black);--pine-color-secondary-hover:var(--pine-color-grey-950);--pine-color-success:var(--pine-color-green-500);--pine-color-success-disabled:var(--pine-color-green-100);--pine-color-success-hover:var(--pine-color-green-600);--pine-color-text:var(--pine-color-grey-100);--pine-color-text-hover:var(--pine-color-grey-050);--pine-color-text-disabled:var(--pine-color-grey-400);--pine-color-text-readonly:var(--pine-color-grey-200);--pine-color-text-active:var(--pine-color-grey-050);--pine-color-text-accent:var(--pine-color-purple-900);--pine-color-text-accent-disabled:var(--pine-color-purple-300);--pine-color-text-accent-hover:var(--pine-color-purple-950);--pine-color-text-danger:var(--pine-color-red-900);--pine-color-text-danger-disabled:var(--pine-color-red-300);--pine-color-text-danger-hover:var(--pine-color-red-950);--pine-color-text-info:var(--pine-color-blue-900);--pine-color-text-info-disabled:var(--pine-color-blue-300);--pine-color-text-info-hover:var(--pine-color-blue-950);--pine-color-text-label:var(--pine-color-grey-050);--pine-color-text-label-disabled:var(--pine-color-grey-400);--pine-color-text-label-readonly:var(--pine-color-grey-200);--pine-color-text-message:var(--pine-color-grey-150);--pine-color-text-message-danger:var(--pine-color-red-500);--pine-color-text-message-disabled:var(--pine-color-grey-300);--pine-color-text-neutral:var(--pine-color-grey-100);--pine-color-text-neutral-disabled:var(--pine-color-grey-300);--pine-color-text-neutral-hover:var(--pine-color-grey-050);--pine-color-text-placeholder:var(--pine-color-grey-300);--pine-color-text-placeholder-disabled:var(--pine-color-grey-500);--pine-color-text-primary:var(--pine-color-black);--pine-color-text-primary-disabled:var(--pine-color-grey-500);--pine-color-text-secondary:var(--pine-color-grey-150);--pine-color-text-secondary-disabled:var(--pine-color-grey-500);--pine-color-text-secondary-hover:var(--pine-color-grey-100);--pine-color-text-tertiary:var(--pine-color-grey-300);--pine-color-text-tertiary-disabled:var(--pine-color-grey-500);--pine-color-text-subtle:var(--pine-color-grey-400);--pine-color-text-subtle-disabled:var(--pine-color-grey-600);--pine-color-text-muted:var(--pine-color-grey-200);--pine-color-text-muted-disabled:var(--pine-color-grey-400);--pine-color-text-strong:var(--pine-color-grey-050);--pine-color-text-strong-disabled:var(--pine-color-grey-300);--pine-color-text-emphasis:var(--pine-color-white);--pine-color-text-inverse:var(--pine-color-grey-900);--pine-color-text-inverse-secondary:var(--pine-color-grey-800);--pine-color-text-inverse-tertiary:var(--pine-color-grey-600);--pine-color-text-inverse-emphasis:var(--pine-color-black);--pine-color-text-success:var(--pine-color-green-900);--pine-color-text-success-disabled:var(--pine-color-green-300);--pine-color-text-success-hover:var(--pine-color-green-950);--pine-color-text-warning:var(--pine-color-yellow-900);--pine-color-text-warning-disabled:var(--pine-color-yellow-300);--pine-color-text-warning-hover:var(--pine-color-yellow-950);--pine-color-warning:var(--pine-color-yellow-500);--pine-color-warning-disabled:var(--pine-color-yellow-100);--pine-color-warning-hover:var(--pine-color-yellow-600);--pine-color-icon:var(--pine-color-grey-200);--pine-color-icon-subtle:var(--pine-color-grey-400);--pine-color-icon-disabled:var(--pine-color-grey-500);--pine-color-icon-inverse:var(--pine-color-grey-900);--pine-color-brand:var(--pine-color-grey-050);--pine-border:var(--pine-border-width-thin) solid var(--pine-color-grey-600);--pine-border-hover:var(--pine-border-width-thin) solid var(--pine-color-grey-400);--pine-border-none:var(--pine-border-width-none) solid var(--pine-color-grey-600)}@font-face{font-display:swap;font-family:"Inter";font-style:normal;font-weight:100;src:local("Inter-Thin"), url("https://sage.kajabi-cdn.com/fonts/inter/Inter-Thin.woff2?v=1") format("woff2")}@font-face{font-display:swap;font-family:"Inter";font-style:italic;font-weight:100;src:local("Inter-ThinItalic"), url("https://sage.kajabi-cdn.com/fonts/inter/Inter-ThinItalic.woff2?v=1") format("woff2")}@font-face{font-display:swap;font-family:"Inter";font-style:normal;font-weight:200;src:local("Inter-ExtraLight"), url("https://sage.kajabi-cdn.com/fonts/inter/Inter-ExtraLight.woff2?v=1") format("woff2")}@font-face{font-display:swap;font-family:"Inter";font-style:italic;font-weight:200;src:local("Inter-ExtraLightItalic"), url("https://sage.kajabi-cdn.com/fonts/inter/Inter-ExtraLightItalic.woff2?v=1") format("woff2")}@font-face{font-display:swap;font-family:"Inter";font-style:normal;font-weight:300;src:local("Inter-Light"), url("https://sage.kajabi-cdn.com/fonts/inter/Inter-Light.woff2?v=1") format("woff2")}@font-face{font-display:swap;font-family:"Inter";font-style:italic;font-weight:300;src:local("Inter-LightItalic"), url("https://sage.kajabi-cdn.com/fonts/inter/Inter-LightItalic.woff2?v=1") format("woff2")}@font-face{font-display:swap;font-family:"Inter";font-style:normal;font-weight:400;src:local("Inter-Regular"), url("https://sage.kajabi-cdn.com/fonts/inter/Inter-Regular.woff2?v=1") format("woff2")}@font-face{font-display:swap;font-family:"Inter";font-style:italic;font-weight:400;src:local("Inter-Italic"), url("https://sage.kajabi-cdn.com/fonts/inter/Inter-Italic.woff2?v=1") format("woff2")}@font-face{font-display:swap;font-family:"Inter";font-style:normal;font-weight:500;src:local("Inter-Medium"), url("https://sage.kajabi-cdn.com/fonts/inter/Inter-Medium.woff2?v=1") format("woff2")}@font-face{font-display:swap;font-family:"Inter";font-style:italic;font-weight:500;src:local("Inter-MediumItalic"), url("https://sage.kajabi-cdn.com/fonts/inter/Inter-MediumItalic.woff2?v=1") format("woff2")}@font-face{font-display:swap;font-family:"Inter";font-style:normal;font-weight:600;src:local("Inter-SemiBold"), url("https://sage.kajabi-cdn.com/fonts/inter/Inter-SemiBold.woff2?v=1") format("woff2")}@font-face{font-display:swap;font-family:"Inter";font-style:italic;font-weight:600;src:local("Inter-SemiBoldItalic"), url("https://sage.kajabi-cdn.com/fonts/inter/Inter-SemiBoldItalic.woff2?v=1") format("woff2")}@font-face{font-display:swap;font-family:"Inter";font-style:normal;font-weight:700;src:local("Inter-Bold"), url("https://sage.kajabi-cdn.com/fonts/inter/Inter-Bold.woff2?v=1") format("woff2")}@font-face{font-display:swap;font-family:"Inter";font-style:italic;font-weight:700;src:local("Inter-BoldItalic"), url("https://sage.kajabi-cdn.com/fonts/inter/Inter-BoldItalic.woff2?v=1") format("woff2")}@font-face{font-display:swap;font-family:"Inter";font-style:normal;font-weight:800;src:local("Inter-ExtraBold"), url("https://sage.kajabi-cdn.com/fonts/inter/Inter-ExtraBold.woff2?v=1") format("woff2")}@font-face{font-display:swap;font-family:"Inter";font-style:italic;font-weight:800;src:local("Inter-ExtraBoldItalic"), url("https://sage.kajabi-cdn.com/fonts/inter/Inter-ExtraBoldItalic.woff2?v=1") format("woff2")}@font-face{font-display:swap;font-family:"Inter";font-style:normal;font-weight:900;src:local("Inter-Black"), url("https://sage.kajabi-cdn.com/fonts/inter/Inter-Black.woff2?v=1") format("woff2")}@font-face{font-display:swap;font-family:"Inter";font-style:italic;font-weight:900;src:local("Inter-BlackItalic"), url("https://sage.kajabi-cdn.com/fonts/inter/Inter-BlackItalic.woff2?v=1") format("woff2")}@font-face{font-display:swap;font-family:"FAIRE Sprig";font-style:normal;font-weight:200;src:local("FAIRE-Sprig-Thin"), url("https://sage.kajabi-cdn.com/fonts/sprig/FAIRE-Sprig-Thin.woff2?v=1") format("woff2")}@font-face{font-display:swap;font-family:"FAIRE Sprig";font-style:italic;font-weight:200;src:local("FAIRE-Sprig-ThinItalic"), url("https://sage.kajabi-cdn.com/fonts/sprig/FAIRE-Sprig-ThinItalic.woff2?v=1") format("woff2")}@font-face{font-display:swap;font-family:"FAIRE Sprig";font-style:normal;font-weight:300;src:local("FAIRE-Sprig-Light"), url("https://sage.kajabi-cdn.com/fonts/sprig/FAIRE-Sprig-Light.woff2?v=1") format("woff2")}@font-face{font-display:swap;font-family:"FAIRE Sprig";font-style:italic;font-weight:300;src:local("FAIRE-Sprig-LightItalic"), url("https://sage.kajabi-cdn.com/fonts/sprig/FAIRE-Sprig-LightItalic.woff2?v=1") format("woff2")}@font-face{font-display:swap;font-family:"FAIRE Sprig";font-style:normal;font-weight:400;src:local("FAIRE-Sprig-Regular"), url("https://sage.kajabi-cdn.com/fonts/sprig/FAIRE-Sprig-Regular.woff2?v=1") format("woff2")}@font-face{font-display:swap;font-family:"FAIRE Sprig";font-style:italic;font-weight:400;src:local("FAIRE-Sprig-RegularItalic"), url("https://sage.kajabi-cdn.com/fonts/sprig/FAIRE-Sprig-RegularItalic.woff2?v=1") format("woff2")}@font-face{font-display:swap;font-family:"FAIRE Sprig";font-style:normal;font-weight:500;src:local("FAIRE-Sprig-Medium"), url("https://sage.kajabi-cdn.com/fonts/sprig/FAIRE-Sprig-Medium.woff2?v=1") format("woff2")}@font-face{font-display:swap;font-family:"FAIRE Sprig";font-style:italic;font-weight:500;src:local("FAIRE-Sprig-MediumItalic"), url("https://sage.kajabi-cdn.com/fonts/sprig/FAIRE-Sprig-MediumItalic.woff2?v=1") format("woff2")}@font-face{font-display:swap;font-family:"FAIRE Sprig";font-style:normal;font-weight:700;src:local("FAIRE-Sprig-Bold"), url("https://sage.kajabi-cdn.com/fonts/sprig/FAIRE-Sprig-Bold.woff2?v=1") format("woff2")}@font-face{font-display:swap;font-family:"FAIRE Sprig";font-style:italic;font-weight:700;src:local("FAIRE-Sprig-BoldItalic"), url("https://sage.kajabi-cdn.com/fonts/sprig/FAIRE-Sprig-BoldItalic.woff2?v=1") format("woff2")}@font-face{font-display:swap;font-family:"FAIRE Sprig";font-style:normal;font-weight:900;src:local("FAIRE-Sprig-Super"), url("https://sage.kajabi-cdn.com/fonts/sprig/FAIRE-Sprig-Super.woff2?v=1") format("woff2")}@font-face{font-display:swap;font-family:"FAIRE Sprig";font-style:italic;font-weight:900;src:local("FAIRE-Sprig-SuperItalic"), url("https://sage.kajabi-cdn.com/fonts/sprig/FAIRE-Sprig-SuperItalic.woff2?v=1") format("woff2")}@font-face{font-display:swap;font-family:"Noto Sans Arabic";font-style:normal;font-weight:normal;src:local("Noto-Sans-Arabic"), url("https://sage.kajabi-cdn.com/fonts/noto/Noto-Sans-Arabic.woff2?v=1") format("woff2")}@font-face{font-display:swap;font-family:"Noto Sans Hebrew";font-style:normal;font-weight:normal;src:local("Noto-Sans-Hebrew"), url("https://sage.kajabi-cdn.com/fonts/noto/Noto-Sans-Hebrew.woff2?v=1") format("woff2")}@font-face{font-display:swap;font-family:"Noto Sans Devanagari";font-style:normal;font-weight:normal;src:local("Noto-Sans-Devanagari"), url("https://sage.kajabi-cdn.com/fonts/noto/Noto-Sans-Devanagari.woff2?v=1") format("woff2")}:root{--pine-motion-duration-fast:120ms;--pine-motion-duration-base:200ms;--pine-motion-duration-slow:300ms;--pine-motion-easing-out:cubic-bezier(0, 0, 0.2, 1);--pine-motion-easing-in:cubic-bezier(0.4, 0, 1, 1);--pine-motion-easing-in-out:cubic-bezier(0.4, 0, 0.2, 1)}@media (prefers-reduced-motion: reduce){:root{--pine-motion-duration-fast:0ms;--pine-motion-duration-base:0ms;--pine-motion-duration-slow:0ms}}.pds-combobox-dropdown-portal .pds-combobox__listbox{background:var(--pine-color-background-overlay);border:0;border-radius:var(--pine-dimension-125);-webkit-box-shadow:var(--pine-box-shadow);box-shadow:var(--pine-box-shadow);list-style:none;margin:0;min-width:220px;overflow-y:auto;padding:var(--pine-dimension-xs);position:absolute;z-index:var(--pine-z-index-raised)}.pds-combobox-dropdown-portal .pds-combobox__option{-ms-flex-align:center;align-items:center;background:transparent;border-radius:var(--pine-dimension-125);color:var(--pine-color-text-secondary);cursor:pointer;display:-ms-flexbox;display:flex;font:var(--pine-typography-body-medium);-ms-flex-pack:justify;justify-content:space-between;padding:var(--pine-dimension-xs) var(--pine-dimension-sm);position:relative;-webkit-transition:background 0.15s;transition:background 0.15s}.pds-combobox-dropdown-portal .pds-combobox__option[aria-selected=true]{background:var(--pine-color-background-muted)}.pds-combobox-dropdown-portal .pds-combobox__option:focus-visible{outline:0}.pds-combobox-dropdown-portal .pds-combobox__option.pds-combobox__option--layout .pds-combobox__option-layout-wrapper{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;width:100%}.pds-combobox-dropdown-portal .pds-combobox__option.pds-combobox__option--chip .pds-combobox__option-chip{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;width:100%}.pds-combobox-dropdown-portal .pds-combobox__option:last-child{-webkit-margin-after:0;margin-block-end:0}.pds-combobox-dropdown-portal .pds-combobox__option--highlighted,.pds-combobox-dropdown-portal .pds-combobox__option[selected],.pds-combobox-dropdown-portal .pds-combobox__option--selected{background:var(--pine-color-background-muted)}.pds-combobox-dropdown-portal .pds-combobox__option-check{color:currentColor;font-size:var(--pine-dimension-150);-webkit-margin-start:var(--pine-dimension-150);margin-inline-start:var(--pine-dimension-150)}.pds-combobox-dropdown-portal .pds-combobox__group-label{color:var(--pine-color-text-tertiary);cursor:default;font:var(--pine-typography-heading-caption);-webkit-margin-after:var(--pine-dimension-2xs);margin-block-end:var(--pine-dimension-2xs);-webkit-margin-before:var(--pine-dimension-150);margin-block-start:var(--pine-dimension-150);padding:var(--pine-dimension-2xs) var(--pine-dimension-sm);text-transform:uppercase}.pds-combobox-dropdown-portal .pds-combobox__group-label:first-child{-webkit-margin-before:0;margin-block-start:0}.pds-combobox-dropdown-portal .pds-combobox__loading{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;padding:var(--pine-dimension-150)}.pds-combobox-dropdown-portal .pds-combobox__empty{color:var(--pine-color-text-tertiary);padding:var(--pine-dimension-150) var(--pine-dimension-sm);text-align:center}.pds-combobox-dropdown-portal .pds-combobox__load-more{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;padding:var(--pine-dimension-150)}.pds-combobox-dropdown-portal .pds-combobox__listbox{position:fixed;z-index:var(--pine-z-index-priority)}[hidden]{display:none !important}
|