solid-ui 5.0.0-2 → 5.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_virtual/~icons/app/solid-emblem.cjs.js.map +1 -1
- package/dist/_virtual/~icons/app/solid-emblem.esm.js.map +1 -1
- package/dist/_virtual/~icons/lucide/chevron-down.cjs.js.map +1 -1
- package/dist/_virtual/~icons/lucide/chevron-down.esm.js.map +1 -1
- package/dist/_virtual/~icons/lucide/circle-user.cjs.js.map +1 -1
- package/dist/_virtual/~icons/lucide/circle-user.esm.js.map +1 -1
- package/dist/_virtual/~icons/lucide/log-in.cjs.js.map +1 -1
- package/dist/_virtual/~icons/lucide/log-in.esm.js.map +1 -1
- package/dist/_virtual/~icons/lucide/log-out.cjs.js.map +1 -1
- package/dist/_virtual/~icons/lucide/log-out.esm.js.map +1 -1
- package/dist/_virtual/~icons/lucide/user.cjs.js.map +1 -1
- package/dist/_virtual/~icons/lucide/user.esm.js.map +1 -1
- package/dist/_virtual/~icons/lucide/x.cjs.js.map +1 -1
- package/dist/_virtual/~icons/lucide/x.esm.js.map +1 -1
- package/dist/_virtual/~icons/svg-spinners/180-ring.cjs.js.map +1 -1
- package/dist/_virtual/~icons/svg-spinners/180-ring.esm.js.map +1 -1
- package/dist/_virtual/~icons/svg-spinners/3-dots-fade.cjs.js.map +1 -1
- package/dist/_virtual/~icons/svg-spinners/3-dots-fade.esm.js.map +1 -1
- package/dist/acl/access-controller.cjs.js.map +1 -1
- package/dist/acl/access-controller.esm.js.map +1 -1
- package/dist/acl/access-groups.cjs.js.map +1 -1
- package/dist/acl/access-groups.esm.js.map +1 -1
- package/dist/acl/acl-control.cjs.js.map +1 -1
- package/dist/acl/acl-control.esm.js.map +1 -1
- package/dist/acl/acl.cjs.js.map +1 -1
- package/dist/acl/acl.esm.js.map +1 -1
- package/dist/acl/add-agent-buttons.cjs.js.map +1 -1
- package/dist/acl/add-agent-buttons.esm.js.map +1 -1
- package/dist/acl/index.cjs.js.map +1 -1
- package/dist/acl/index.esm.js.map +1 -1
- package/dist/chat/bookmarks.cjs.js.map +1 -1
- package/dist/chat/bookmarks.esm.js.map +1 -1
- package/dist/chat/chatLogic.cjs.js.map +1 -1
- package/dist/chat/chatLogic.esm.js.map +1 -1
- package/dist/chat/dateFolder.cjs.js.map +1 -1
- package/dist/chat/dateFolder.esm.js.map +1 -1
- package/dist/chat/infinite.cjs.js.map +1 -1
- package/dist/chat/infinite.esm.js.map +1 -1
- package/dist/chat/keys.cjs.js.map +1 -1
- package/dist/chat/keys.esm.js.map +1 -1
- package/dist/chat/message.cjs.js.map +1 -1
- package/dist/chat/message.esm.js.map +1 -1
- package/dist/chat/messageTools.cjs.js.map +1 -1
- package/dist/chat/messageTools.esm.js.map +1 -1
- package/dist/chat/signature.cjs.js.map +1 -1
- package/dist/chat/signature.esm.js.map +1 -1
- package/dist/chunks/DialogProvider-BFllJFfq.js.map +1 -1
- package/dist/chunks/{account-C4JpDQFa.js → account-BawgTPEQ.js} +7 -7
- package/dist/chunks/account-BawgTPEQ.js.map +1 -0
- package/dist/chunks/{auth-DfCfMOuM.js → auth-DrN7Ex4E.js} +2 -2
- package/dist/chunks/auth-DrN7Ex4E.js.map +1 -0
- package/dist/chunks/{avatar-C677VD9J.js → avatar-CoxEa3ul.js} +2 -2
- package/dist/chunks/avatar-CoxEa3ul.js.map +1 -0
- package/dist/chunks/button-CnmrOsEf.js.map +1 -1
- package/dist/chunks/chevron-down-ujxRg3MD.js.map +1 -1
- package/dist/chunks/{chunk.KB3IOPVF-Ckx3HIiR.js → chunk.UEBQI7VV-1WRlPl6u.js} +12 -2
- package/dist/chunks/chunk.UEBQI7VV-1WRlPl6u.js.map +1 -0
- package/dist/chunks/{combobox-BZ9n8wQw.js → combobox-B0TqOl9L.js} +2 -2
- package/dist/chunks/combobox-B0TqOl9L.js.map +1 -0
- package/dist/chunks/combobox-option-BcXpUnWu.js.map +1 -1
- package/dist/chunks/components-BHoVP7zE.js.map +1 -1
- package/dist/chunks/dialog-D9Ellvjx.js.map +1 -1
- package/dist/chunks/dialog-content-B2FmmQvH.js.map +1 -1
- package/dist/chunks/dialog-footer-CxjoqQJF.js.map +1 -1
- package/dist/chunks/dialog-header-0dobhr5C.js.map +1 -1
- package/dist/chunks/dialogs-D2n-R0lI.js.map +1 -1
- package/dist/chunks/dialogs-root-ngPW2Q6K.js.map +1 -1
- package/dist/chunks/{guard-DcrczXhs.js → guard-BtHmPAJt.js} +2 -2
- package/dist/chunks/guard-BtHmPAJt.js.map +1 -0
- package/dist/chunks/index.esm-AZPmKqjU.js.map +1 -1
- package/dist/chunks/input-BIhn_8nf.js.map +1 -1
- package/dist/chunks/jsonld-CDR2WyN_.js.map +1 -1
- package/dist/chunks/{login-button-CRQbpCob.js → login-button-DAzbhvKk.js} +2 -2
- package/dist/chunks/login-button-DAzbhvKk.js.map +1 -0
- package/dist/chunks/{logout-button-H-ckaICm.js → logout-button-lGJtt7lq.js} +2 -2
- package/dist/chunks/logout-button-lGJtt7lq.js.map +1 -0
- package/dist/chunks/{menu-DhnJDuBz.js → menu-BLZREG4_.js} +5 -4
- package/dist/chunks/menu-BLZREG4_.js.map +1 -0
- package/dist/chunks/menu-item-BdCkmJol.js.map +1 -1
- package/dist/chunks/photo-capture-Bvixtxsq.js.map +1 -1
- package/dist/chunks/photo-capture-modal-BhmL3kYD.js.map +1 -1
- package/dist/chunks/{provider-v6Wz9BOu.js → provider-D5r57fK1.js} +2 -2
- package/dist/chunks/provider-D5r57fK1.js.map +1 -0
- package/dist/chunks/query-BYu9q8lA.js.map +1 -1
- package/dist/chunks/rdf-form-B2zTR8Qv.js.map +1 -1
- package/dist/chunks/rdf-input-DeDhyQ3p.js.map +1 -1
- package/dist/chunks/select-BcC-ICqO.js.map +1 -1
- package/dist/chunks/select-option-B0uXcj2O.js.map +1 -1
- package/dist/chunks/show-dialog-eEW5yRBv.js.map +1 -1
- package/dist/chunks/{signup-button-Cy6FwVhE.js → signup-button-DnPnUTTm.js} +2 -2
- package/dist/chunks/signup-button-DnPnUTTm.js.map +1 -0
- package/dist/chunks/solid-emblem-CcQOqRX0.js.map +1 -1
- package/dist/chunks/{src-Ca8thhHS.js → src-BWY65mD0.js} +915 -891
- package/dist/chunks/src-BWY65mD0.js.map +1 -0
- package/dist/chunks/style-Dpwrc8CC.js.map +1 -1
- package/dist/components/account/Account.cjs.js.map +1 -1
- package/dist/components/account/Account.esm.js.map +1 -1
- package/dist/components/account/Account.styles.cjs.js.map +1 -1
- package/dist/components/account/Account.styles.esm.js.map +1 -1
- package/dist/components/account/index.cjs.js.map +1 -1
- package/dist/components/account/index.esm.js.map +1 -1
- package/dist/components/account.js +1 -1
- package/dist/components/avatar/Avatar.cjs.js.map +1 -1
- package/dist/components/avatar/Avatar.esm.js.map +1 -1
- package/dist/components/avatar/Avatar.styles.cjs.js.map +1 -1
- package/dist/components/avatar/Avatar.styles.esm.js.map +1 -1
- package/dist/components/avatar/index.cjs.js.map +1 -1
- package/dist/components/avatar/index.esm.js.map +1 -1
- package/dist/components/avatar.js +1 -1
- package/dist/components/button/Button.cjs.js.map +1 -1
- package/dist/components/button/Button.esm.js.map +1 -1
- package/dist/components/button/Button.styles.cjs.js.map +1 -1
- package/dist/components/button/Button.styles.esm.js.map +1 -1
- package/dist/components/button/index.cjs.js.map +1 -1
- package/dist/components/button/index.esm.js.map +1 -1
- package/dist/components/combobox/Combobox.cjs.js.map +1 -1
- package/dist/components/combobox/Combobox.esm.js.map +1 -1
- package/dist/components/combobox/Combobox.styles.cjs.js.map +1 -1
- package/dist/components/combobox/Combobox.styles.esm.js.map +1 -1
- package/dist/components/combobox/index.cjs.js.map +1 -1
- package/dist/components/combobox/index.esm.js.map +1 -1
- package/dist/components/combobox-option/ComboboxOption.cjs.js.map +1 -1
- package/dist/components/combobox-option/ComboboxOption.esm.js.map +1 -1
- package/dist/components/combobox-option/index.cjs.js.map +1 -1
- package/dist/components/combobox-option/index.esm.js.map +1 -1
- package/dist/components/combobox.js +1 -1
- package/dist/components/dialog/Dialog.cjs.js.map +1 -1
- package/dist/components/dialog/Dialog.esm.js.map +1 -1
- package/dist/components/dialog/Dialog.styles.cjs.js.map +1 -1
- package/dist/components/dialog/Dialog.styles.esm.js.map +1 -1
- package/dist/components/dialog/index.cjs.js.map +1 -1
- package/dist/components/dialog/index.esm.js.map +1 -1
- package/dist/components/dialog-content/DialogContent.cjs.js.map +1 -1
- package/dist/components/dialog-content/DialogContent.esm.js.map +1 -1
- package/dist/components/dialog-content/DialogContent.styles.cjs.js.map +1 -1
- package/dist/components/dialog-content/DialogContent.styles.esm.js.map +1 -1
- package/dist/components/dialog-content/index.cjs.js.map +1 -1
- package/dist/components/dialog-content/index.esm.js.map +1 -1
- package/dist/components/dialog-footer/DialogFooter.cjs.js.map +1 -1
- package/dist/components/dialog-footer/DialogFooter.esm.js.map +1 -1
- package/dist/components/dialog-footer/DialogFooter.styles.cjs.js.map +1 -1
- package/dist/components/dialog-footer/DialogFooter.styles.esm.js.map +1 -1
- package/dist/components/dialog-footer/index.cjs.js.map +1 -1
- package/dist/components/dialog-footer/index.esm.js.map +1 -1
- package/dist/components/dialog-header/DialogHeader.cjs.js.map +1 -1
- package/dist/components/dialog-header/DialogHeader.esm.js.map +1 -1
- package/dist/components/dialog-header/DialogHeader.styles.cjs.js.map +1 -1
- package/dist/components/dialog-header/DialogHeader.styles.esm.js.map +1 -1
- package/dist/components/dialog-header/index.cjs.js.map +1 -1
- package/dist/components/dialog-header/index.esm.js.map +1 -1
- package/dist/components/dialog-provider/DialogProvider.cjs.js.map +1 -1
- package/dist/components/dialog-provider/DialogProvider.esm.js.map +1 -1
- package/dist/components/dialog-provider/index.cjs.js.map +1 -1
- package/dist/components/dialog-provider/index.esm.js.map +1 -1
- package/dist/components/dialog-provider.js.map +1 -1
- package/dist/components/dialogs-root/DialogsRoot.cjs.js.map +1 -1
- package/dist/components/dialogs-root/DialogsRoot.esm.js.map +1 -1
- package/dist/components/dialogs-root/index.cjs.js.map +1 -1
- package/dist/components/dialogs-root/index.esm.js.map +1 -1
- package/dist/components/guard/Guard.cjs.js.map +1 -1
- package/dist/components/guard/Guard.esm.js.map +1 -1
- package/dist/components/guard/index.cjs.js.map +1 -1
- package/dist/components/guard/index.esm.js.map +1 -1
- package/dist/components/guard.js +1 -1
- package/dist/components/input/Input.cjs.js.map +1 -1
- package/dist/components/input/Input.esm.js.map +1 -1
- package/dist/components/input/Input.styles.cjs.js.map +1 -1
- package/dist/components/input/Input.styles.esm.js.map +1 -1
- package/dist/components/input/index.cjs.js.map +1 -1
- package/dist/components/input/index.esm.js.map +1 -1
- package/dist/components/login-button/LoginButton.cjs.js.map +1 -1
- package/dist/components/login-button/LoginButton.esm.js.map +1 -1
- package/dist/components/login-button/index.cjs.js.map +1 -1
- package/dist/components/login-button/index.esm.js.map +1 -1
- package/dist/components/login-button.js +1 -1
- package/dist/components/login-modal/LoginModal.cjs.js.map +1 -1
- package/dist/components/login-modal/LoginModal.esm.js.map +1 -1
- package/dist/components/login-modal/LoginModal.styles.cjs.js.map +1 -1
- package/dist/components/login-modal/LoginModal.styles.esm.js.map +1 -1
- package/dist/components/login-modal/index.cjs.js.map +1 -1
- package/dist/components/login-modal/index.esm.js.map +1 -1
- package/dist/components/login-modal.js +1 -1
- package/dist/components/logout-button/LogoutButton.cjs.js.map +1 -1
- package/dist/components/logout-button/LogoutButton.esm.js.map +1 -1
- package/dist/components/logout-button/index.cjs.js.map +1 -1
- package/dist/components/logout-button/index.esm.js.map +1 -1
- package/dist/components/logout-button.js +1 -1
- package/dist/components/menu/Menu.cjs.js.map +1 -1
- package/dist/components/menu/Menu.esm.js.map +1 -1
- package/dist/components/menu/Menu.styles.cjs.js.map +1 -1
- package/dist/components/menu/Menu.styles.esm.js.map +1 -1
- package/dist/components/menu/index.cjs.js.map +1 -1
- package/dist/components/menu/index.esm.js.map +1 -1
- package/dist/components/menu-item/MenuItem.cjs.js.map +1 -1
- package/dist/components/menu-item/MenuItem.esm.js.map +1 -1
- package/dist/components/menu-item/MenuItem.styles.cjs.js.map +1 -1
- package/dist/components/menu-item/MenuItem.styles.esm.js.map +1 -1
- package/dist/components/menu-item/index.cjs.js.map +1 -1
- package/dist/components/menu-item/index.esm.js.map +1 -1
- package/dist/components/menu.js +1 -1
- package/dist/components/photo-capture/PhotoCapture.cjs.js.map +1 -1
- package/dist/components/photo-capture/PhotoCapture.esm.js.map +1 -1
- package/dist/components/photo-capture/index.cjs.js.map +1 -1
- package/dist/components/photo-capture/index.esm.js.map +1 -1
- package/dist/components/photo-capture-modal/PhotoCaptureModal.cjs.js.map +1 -1
- package/dist/components/photo-capture-modal/PhotoCaptureModal.esm.js.map +1 -1
- package/dist/components/photo-capture-modal/PhotoCaptureModal.styles.cjs.js.map +1 -1
- package/dist/components/photo-capture-modal/PhotoCaptureModal.styles.esm.js.map +1 -1
- package/dist/components/photo-capture-modal/index.cjs.js.map +1 -1
- package/dist/components/photo-capture-modal/index.esm.js.map +1 -1
- package/dist/components/provider/Provider.cjs.js.map +1 -1
- package/dist/components/provider/Provider.esm.js.map +1 -1
- package/dist/components/provider/index.cjs.js.map +1 -1
- package/dist/components/provider/index.esm.js.map +1 -1
- package/dist/components/provider.js +1 -1
- package/dist/components/rdf-form/RDFForm.cjs.js.map +1 -1
- package/dist/components/rdf-form/RDFForm.esm.js.map +1 -1
- package/dist/components/rdf-form/index.cjs.js.map +1 -1
- package/dist/components/rdf-form/index.esm.js.map +1 -1
- package/dist/components/rdf-input/RDFInput.cjs.js.map +1 -1
- package/dist/components/rdf-input/RDFInput.esm.js.map +1 -1
- package/dist/components/rdf-input/index.cjs.js.map +1 -1
- package/dist/components/rdf-input/index.esm.js.map +1 -1
- package/dist/components/select/Select.cjs.js.map +1 -1
- package/dist/components/select/Select.esm.js.map +1 -1
- package/dist/components/select/Select.styles.cjs.js.map +1 -1
- package/dist/components/select/Select.styles.esm.js.map +1 -1
- package/dist/components/select/index.cjs.js.map +1 -1
- package/dist/components/select/index.esm.js.map +1 -1
- package/dist/components/select-option/SelectOption.cjs.js.map +1 -1
- package/dist/components/select-option/SelectOption.esm.js.map +1 -1
- package/dist/components/select-option/index.cjs.js.map +1 -1
- package/dist/components/select-option/index.esm.js.map +1 -1
- package/dist/components/signup-button/SignupButton.cjs.js.map +1 -1
- package/dist/components/signup-button/SignupButton.esm.js.map +1 -1
- package/dist/components/signup-button/index.cjs.js.map +1 -1
- package/dist/components/signup-button/index.esm.js.map +1 -1
- package/dist/components/signup-button.js +1 -1
- package/dist/components/solid-emblem/SolidEmblem.cjs.js.map +1 -1
- package/dist/components/solid-emblem/SolidEmblem.esm.js.map +1 -1
- package/dist/components/solid-emblem/SolidEmblem.styles.cjs.js.map +1 -1
- package/dist/components/solid-emblem/SolidEmblem.styles.esm.js.map +1 -1
- package/dist/components/solid-emblem/index.cjs.js.map +1 -1
- package/dist/components/solid-emblem/index.esm.js.map +1 -1
- package/dist/components.js +10 -10
- package/dist/create/create.cjs.js.map +1 -1
- package/dist/create/create.esm.js.map +1 -1
- package/dist/create/index.cjs.js.map +1 -1
- package/dist/create/index.esm.js.map +1 -1
- package/dist/create/types.cjs.js.map +1 -1
- package/dist/create/types.esm.js.map +1 -1
- package/dist/footer/index.cjs.js.map +1 -1
- package/dist/footer/index.esm.js.map +1 -1
- package/dist/header/empty-profile.cjs.js.map +1 -1
- package/dist/header/empty-profile.esm.js.map +1 -1
- package/dist/header/index.cjs.js.map +1 -1
- package/dist/header/index.esm.js.map +1 -1
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +2 -2
- package/dist/lib/auth/Account.cjs.js.map +1 -1
- package/dist/lib/auth/Account.esm.js.map +1 -1
- package/dist/lib/auth/NoopAuth.cjs.js.map +1 -1
- package/dist/lib/auth/NoopAuth.esm.js.map +1 -1
- package/dist/lib/auth/SolidAuth.cjs.js.map +1 -1
- package/dist/lib/auth/SolidAuth.esm.js.map +1 -1
- package/dist/lib/auth/context.cjs.js.map +1 -1
- package/dist/lib/auth/context.esm.js.map +1 -1
- package/dist/lib/code-editor/CodeEditor.cjs.js.map +1 -1
- package/dist/lib/code-editor/CodeEditor.esm.js.map +1 -1
- package/dist/lib/components/decorators.cjs.js.map +1 -1
- package/dist/lib/components/decorators.esm.js.map +1 -1
- package/dist/lib/components/dialog-component/DialogComponent.cjs.js.map +1 -1
- package/dist/lib/components/dialog-component/DialogComponent.esm.js.map +1 -1
- package/dist/lib/components/form-control-component/FormControlComponent.cjs.js.map +1 -1
- package/dist/lib/components/form-control-component/FormControlComponent.esm.js.map +1 -1
- package/dist/lib/components/ids.cjs.js.map +1 -1
- package/dist/lib/components/ids.esm.js.map +1 -1
- package/dist/lib/components/traits/DialogTrait.cjs.js.map +1 -1
- package/dist/lib/components/traits/DialogTrait.esm.js.map +1 -1
- package/dist/lib/components/traits/FormControlTrait.cjs.js.map +1 -1
- package/dist/lib/components/traits/FormControlTrait.esm.js.map +1 -1
- package/dist/lib/components/web-component/WebComponent.cjs.js.map +1 -1
- package/dist/lib/components/web-component/WebComponent.esm.js.map +1 -1
- package/dist/lib/components/web-component/WebComponent.styles.cjs.js.map +1 -1
- package/dist/lib/components/web-component/WebComponent.styles.esm.js.map +1 -1
- package/dist/lib/debug.cjs.js.map +1 -1
- package/dist/lib/debug.esm.js.map +1 -1
- package/dist/lib/dialogs/Dialog.cjs.js.map +1 -1
- package/dist/lib/dialogs/Dialog.esm.js.map +1 -1
- package/dist/lib/dialogs/context.cjs.js.map +1 -1
- package/dist/lib/dialogs/context.esm.js.map +1 -1
- package/dist/lib/dialogs/events/close-dialog.cjs.js.map +1 -1
- package/dist/lib/dialogs/events/close-dialog.esm.js.map +1 -1
- package/dist/lib/dialogs/events/show-dialog.cjs.js.map +1 -1
- package/dist/lib/dialogs/events/show-dialog.esm.js.map +1 -1
- package/dist/lib/dialogs/helpers.cjs.js.map +1 -1
- package/dist/lib/dialogs/helpers.esm.js.map +1 -1
- package/dist/lib/file-explorer/context.cjs.js.map +1 -1
- package/dist/lib/file-explorer/context.esm.js.map +1 -1
- package/dist/lib/forms/fieldParams.cjs.js.map +1 -1
- package/dist/lib/forms/fieldParams.esm.js.map +1 -1
- package/dist/lib/forms/rdfFormsHelper.cjs.js.map +1 -1
- package/dist/lib/forms/rdfFormsHelper.esm.js.map +1 -1
- package/dist/lib/forms/store/NoopStore.cjs.js.map +1 -1
- package/dist/lib/forms/store/NoopStore.esm.js.map +1 -1
- package/dist/lib/forms/store/StoreContext.cjs.js.map +1 -1
- package/dist/lib/forms/store/StoreContext.esm.js.map +1 -1
- package/dist/lib/iconBase.cjs.js.map +1 -1
- package/dist/lib/iconBase.esm.js.map +1 -1
- package/dist/lib/log.cjs.js.map +1 -1
- package/dist/lib/log.esm.js.map +1 -1
- package/dist/lib/messageArea.cjs.js.map +1 -1
- package/dist/lib/messageArea.esm.js.map +1 -1
- package/dist/lib/newperson.cjs.js.map +1 -1
- package/dist/lib/newperson.esm.js.map +1 -1
- package/dist/lib/ns.cjs.js.map +1 -1
- package/dist/lib/ns.esm.js.map +1 -1
- package/dist/lib/pad.cjs.js.map +1 -1
- package/dist/lib/pad.esm.js.map +1 -1
- package/dist/lib/participation.cjs.js.map +1 -1
- package/dist/lib/participation.esm.js.map +1 -1
- package/dist/lib/preferences.cjs.js.map +1 -1
- package/dist/lib/preferences.esm.js.map +1 -1
- package/dist/lib/style.cjs.js.map +1 -1
- package/dist/lib/style.esm.js.map +1 -1
- package/dist/lib/styleConstants.cjs.js.map +1 -1
- package/dist/lib/styleConstants.esm.js.map +1 -1
- package/dist/lib/style_multiSelect.cjs.js.map +1 -1
- package/dist/lib/style_multiSelect.esm.js.map +1 -1
- package/dist/lib/table.cjs.js.map +1 -1
- package/dist/lib/table.esm.js.map +1 -1
- package/dist/lib/tabs.cjs.js.map +1 -1
- package/dist/lib/tabs.esm.js.map +1 -1
- package/dist/lib/timing.cjs.js.map +1 -1
- package/dist/lib/timing.esm.js.map +1 -1
- package/dist/lib/values.cjs.js.map +1 -1
- package/dist/lib/values.esm.js.map +1 -1
- package/dist/loader.js +2 -2
- package/dist/login/login.cjs.js.map +1 -1
- package/dist/login/login.esm.js.map +1 -1
- package/dist/matrix/index.cjs.js.map +1 -1
- package/dist/matrix/index.esm.js.map +1 -1
- package/dist/matrix/matrix.cjs.js.map +1 -1
- package/dist/matrix/matrix.esm.js.map +1 -1
- package/dist/media/index.cjs.js.map +1 -1
- package/dist/media/index.esm.js.map +1 -1
- package/dist/media/media-capture.cjs.js.map +1 -1
- package/dist/media/media-capture.esm.js.map +1 -1
- package/dist/signup/config-default.cjs.js.map +1 -1
- package/dist/signup/config-default.esm.js.map +1 -1
- package/dist/signup/signup.cjs.js.map +1 -1
- package/dist/signup/signup.esm.js.map +1 -1
- package/dist/solid-ui.js +20 -20
- package/dist/solid-ui.min.js +20 -20
- package/dist/solid-ui.min.js.map +1 -1
- package/dist/utils/headerFooterHelpers.cjs.js.map +1 -1
- package/dist/utils/headerFooterHelpers.esm.js.map +1 -1
- package/dist/utils/index.cjs.js.map +1 -1
- package/dist/utils/index.esm.js.map +1 -1
- package/dist/utils/keyHelpers/accessData.cjs.js.map +1 -1
- package/dist/utils/keyHelpers/accessData.esm.js.map +1 -1
- package/dist/utils/keyHelpers/acl.cjs.js.map +1 -1
- package/dist/utils/keyHelpers/acl.esm.js.map +1 -1
- package/dist/utils/keyHelpers/otherHelpers.cjs.js.map +1 -1
- package/dist/utils/keyHelpers/otherHelpers.esm.js.map +1 -1
- package/dist/utils/label.cjs.js.map +1 -1
- package/dist/utils/label.esm.js.map +1 -1
- package/dist/widgets/buttons/iconLinks.cjs.js.map +1 -1
- package/dist/widgets/buttons/iconLinks.esm.js.map +1 -1
- package/dist/widgets/buttons.cjs.js.map +1 -1
- package/dist/widgets/buttons.esm.js.map +1 -1
- package/dist/widgets/dragAndDrop.cjs.js.map +1 -1
- package/dist/widgets/dragAndDrop.esm.js.map +1 -1
- package/dist/widgets/error.cjs.js.map +1 -1
- package/dist/widgets/error.esm.js.map +1 -1
- package/dist/widgets/forms/autocomplete/autocompleteBar.cjs.js.map +1 -1
- package/dist/widgets/forms/autocomplete/autocompleteBar.esm.js.map +1 -1
- package/dist/widgets/forms/autocomplete/autocompleteField.cjs.js.map +1 -1
- package/dist/widgets/forms/autocomplete/autocompleteField.esm.js.map +1 -1
- package/dist/widgets/forms/autocomplete/autocompletePicker.cjs.js.map +1 -1
- package/dist/widgets/forms/autocomplete/autocompletePicker.esm.js.map +1 -1
- package/dist/widgets/forms/autocomplete/language.cjs.js.map +1 -1
- package/dist/widgets/forms/autocomplete/language.esm.js.map +1 -1
- package/dist/widgets/forms/autocomplete/publicData.cjs.js.map +1 -1
- package/dist/widgets/forms/autocomplete/publicData.esm.js.map +1 -1
- package/dist/widgets/forms/basic.cjs.js.map +1 -1
- package/dist/widgets/forms/basic.esm.js.map +1 -1
- package/dist/widgets/forms/fieldFunction.cjs.js.map +1 -1
- package/dist/widgets/forms/fieldFunction.esm.js.map +1 -1
- package/dist/widgets/forms/fieldParams.cjs.js.map +1 -1
- package/dist/widgets/forms/fieldParams.esm.js.map +1 -1
- package/dist/widgets/forms/formStyle.cjs.js.map +1 -1
- package/dist/widgets/forms/formStyle.esm.js.map +1 -1
- package/dist/widgets/forms.cjs.js.map +1 -1
- package/dist/widgets/forms.esm.js.map +1 -1
- package/dist/widgets/index.cjs.js.map +1 -1
- package/dist/widgets/index.esm.js.map +1 -1
- package/dist/widgets/multiSelect.cjs.js.map +1 -1
- package/dist/widgets/multiSelect.esm.js.map +1 -1
- package/dist/widgets/peoplePicker.cjs.js.map +1 -1
- package/dist/widgets/peoplePicker.esm.js.map +1 -1
- package/dist/widgets/widgetHelpers.cjs.js.map +1 -1
- package/dist/widgets/widgetHelpers.esm.js.map +1 -1
- package/package.json +1 -1
- package/dist/chunks/account-C4JpDQFa.js.map +0 -1
- package/dist/chunks/auth-DfCfMOuM.js.map +0 -1
- package/dist/chunks/avatar-C677VD9J.js.map +0 -1
- package/dist/chunks/chunk.KB3IOPVF-Ckx3HIiR.js.map +0 -1
- package/dist/chunks/combobox-BZ9n8wQw.js.map +0 -1
- package/dist/chunks/guard-DcrczXhs.js.map +0 -1
- package/dist/chunks/login-button-CRQbpCob.js.map +0 -1
- package/dist/chunks/logout-button-H-ckaICm.js.map +0 -1
- package/dist/chunks/menu-DhnJDuBz.js.map +0 -1
- package/dist/chunks/provider-v6Wz9BOu.js.map +0 -1
- package/dist/chunks/signup-button-Cy6FwVhE.js.map +0 -1
- package/dist/chunks/src-Ca8thhHS.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.esm.js","names":["customElement","WebComponent","html","nothing","property","styles","BUTTON_VARIANTS","_classDecs","_Button","_Button2","_A","WeakMap","_B","_C","_D","_ref","_variantDecs","type","String","reflect","_typeDecs","_disabledDecs","Boolean","_loadingDecs","_Button3","Button","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_variant","_init_type","_init_disabled","undefined","_init_loading","_classPrivateFieldGet","variant","v","_classPrivateFieldSet","disabled","loading","render","onClick","onIconSlotChange","e","slot","target","toggleAttribute","assignedElements","length","getInternals","form","requestSubmit","reset","c","_initClass","_applyDecs","_Class","_identity","_defineProperty","default"],"sources":["../../../src/components/button/Button.ts"],"sourcesContent":["import { customElement, WebComponent } from '@/lib/components'\nimport { html, nothing } from 'lit'\nimport { property } from 'lit/decorators.js'\n\nimport '~icons/svg-spinners/180-ring'\n\nimport styles from './Button.styles.css'\n\nexport const BUTTON_VARIANTS = ['primary', 'secondary', 'tertiary', 'outline', 'ghost'] as const\nexport type ButtonVariant = typeof BUTTON_VARIANTS[number]\n\n@customElement('solid-ui-button')\nexport default class Button extends WebComponent {\n static styles = styles\n static formAssociated = true\n\n @property({ type: String, reflect: true })\n accessor variant: ButtonVariant = 'primary'\n\n @property({ type: String, reflect: true })\n accessor type = 'button'\n\n @property({ type: Boolean })\n accessor disabled: boolean | undefined = undefined\n\n @property({ type: Boolean })\n accessor loading = false\n\n render () {\n const disabled = this.disabled ?? this.loading\n\n return html`\n <button type=${this.type} ?disabled=${disabled} @click=${this.onClick}>\n ${this.loading ? html`<icon-svg-spinners-180-ring></icon-svg-spinners-180-ring>` : nothing}\n <slot name=\"left-icon\"></slot>\n <slot @slotchange=${this.onIconSlotChange} name=\"icon\"></slot>\n <slot></slot>\n <slot name=\"right-icon\"></slot>\n </button>\n `\n }\n\n private onIconSlotChange (e: Event) {\n const slot = e.target as HTMLSlotElement\n\n this.toggleAttribute('data-has-icon-slot', slot.assignedElements().length > 0)\n }\n\n private onClick () {\n switch (this.type) {\n case 'submit':\n this.getInternals().form?.requestSubmit()\n break\n case 'reset':\n this.getInternals().form?.reset()\n break\n }\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Button.esm.js","names":["customElement","WebComponent","html","nothing","property","styles","BUTTON_VARIANTS","_classDecs","_Button","_Button2","_A","WeakMap","_B","_C","_D","_ref","_variantDecs","type","String","reflect","_typeDecs","_disabledDecs","Boolean","_loadingDecs","_Button3","Button","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_variant","_init_type","_init_disabled","undefined","_init_loading","_classPrivateFieldGet","variant","v","_classPrivateFieldSet","disabled","loading","render","onClick","onIconSlotChange","e","slot","target","toggleAttribute","assignedElements","length","getInternals","form","requestSubmit","reset","c","_initClass","_applyDecs","_Class","_identity","_defineProperty","default","styles","WebComponent","Button_styles_default","_Class","_Button3","_A","_B","_C","_D","_initProto","_initClass","_classDecs","_variantDecs","_init_variant","_typeDecs","_init_type","_disabledDecs","_init_disabled","_loadingDecs","_init_loading","_Button2","_ref","_classPrivateFieldInitSpec","a","_checkPrivateRedeclaration","_classPrivateFieldSet","s","_assertClassBrand","r","_classPrivateFieldGet","_defineProperty","_toPropertyKey","t","_applyDecs","i","n","o","c","applyDec","m","h","y","v","g","b","u","w","S","A","d","p","_setFunctionName","P","j","D","I","F","l","f","N","_checkInRHS","_toPrimitive","e","_identity","BUTTON_VARIANTS","customElement","_Button","property","args","disabled","nothing","slot"],"sources":["../../../src/components/button/Button.ts"],"sourcesContent":["import { customElement, WebComponent } from '@/lib/components'\nimport { html, nothing } from 'lit'\nimport { property } from 'lit/decorators.js'\n\nimport '~icons/svg-spinners/180-ring'\n\nimport styles from './Button.styles.css'\n\nexport const BUTTON_VARIANTS = ['primary', 'secondary', 'tertiary', 'outline', 'ghost'] as const\nexport type ButtonVariant = typeof BUTTON_VARIANTS[number]\n\n@customElement('solid-ui-button')\nexport default class Button extends WebComponent {\n static styles = styles\n static formAssociated = true\n\n @property({ type: String, reflect: true })\n accessor variant: ButtonVariant = 'primary'\n\n @property({ type: String, reflect: true })\n accessor type = 'button'\n\n @property({ type: Boolean })\n accessor disabled: boolean | undefined = undefined\n\n @property({ type: Boolean })\n accessor loading = false\n\n render () {\n const disabled = this.disabled ?? this.loading\n\n return html`\n <button type=${this.type} ?disabled=${disabled} @click=${this.onClick}>\n ${this.loading ? html`<icon-svg-spinners-180-ring></icon-svg-spinners-180-ring>` : nothing}\n <slot name=\"left-icon\"></slot>\n <slot @slotchange=${this.onIconSlotChange} name=\"icon\"></slot>\n <slot></slot>\n <slot name=\"right-icon\"></slot>\n </button>\n `\n }\n\n private onIconSlotChange (e: Event) {\n const slot = e.target as HTMLSlotElement\n\n this.toggleAttribute('data-has-icon-slot', slot.assignedElements().length > 0)\n }\n\n private onClick () {\n switch (this.type) {\n case 'submit':\n this.getInternals().form?.requestSubmit()\n break\n case 'reset':\n this.getInternals().form?.reset()\n break\n }\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,IAAaM,IAAkB;CAAC;CAAW;CAAa;CAAY;CAAW;AAAO;AAAUC,IAAA,CAG/FP,EAAc,iBAAiB,CAAC;AAAA,IAAAQ;AAAA,KAAAC,KAAAC,kBAAA,IAAAC,QAAA,GAAAC,kBAAA,IAAAD,QAAA,GAAAE,kBAAA,IAAAF,QAAA,GAAAG,kBAAA,IAAAH,QAAA,GAAAI,KAAAC,IAK9BZ,EAAS;CAAEa,MAAMC;CAAQC,SAAS;AAAK,CAAC,GAACC,IAGzChB,EAAS;CAAEa,MAAMC;CAAQC,SAAS;AAAK,CAAC,GAACE,IAGzCjB,EAAS,EAAEa,MAAMK,QAAQ,CAAC,GAACC,IAG3BnB,EAAS,EAAEa,MAAMK,QAAQ,CAAC,GAAC,YAAAE,IAd9B,cACoCvB,EAAa;CAAAyB,YAAA,GAAAC,GAAA;EAWGC,AAXH,MAAA,GAAAD,CAAA,GAAAC,EAAA,MAAAlB,IAAAmB,EAAA,IAAA,GAAAC,EAAA,MAKb,SAAS,EAAA,GAAAF,EAAA,MAAAhB,GAAAmB,EAAA,MAG3B,QAAQ,CAAA,GAAAH,EAAA,MAAAf,GAAAmB,EAAA,MAGiBC,KAAAA,CAAS,CAAA,GAAAL,EAAA,MAAAd,GAAAoB,EAAA,MAG/B,EAAK,CAAA;CAAA;CAAA,KAAAnB,KAAA;EAAA,OAAAoB,EAAAzB,GAAA,IAAA;CAAA;CAAA,IATf0B,QAAOC,GAAA;EAAAC,EAAA5B,GAAA,MAAA2B,CAAA;CAAA;CAAA,IAGPpB,OAAI;EAAA,OAAAkB,EAAAvB,GAAA,IAAA;CAAA;CAAA,IAAJK,KAAIoB,GAAA;EAAAC,EAAA1B,GAAA,MAAAyB,CAAA;CAAA;CAAA,IAGJE,WAAQ;EAAA,OAAAJ,EAAAtB,GAAA,IAAA;CAAA;CAAA,IAAR0B,SAAQF,GAAA;EAAAC,EAAAzB,GAAA,MAAAwB,CAAA;CAAA;CAAA,IAGRG,UAAO;EAAA,OAAAL,EAAArB,GAAA,IAAA;CAAA;CAAA,IAAP0B,QAAOH,GAAA;EAAAC,EAAAxB,GAAA,MAAAuB,CAAA;CAAA;CAEhBI,SAAU;EACR,IAAMF,IAAW,KAAKA,YAAY,KAAKC;EAEvC,OAAOtC,CAAI;uBACQ,KAAKe,KAAI,aAAcsB,EAAQ,UAAW,KAAKG,QAAO;cAC/D,KAAKF,UAAUtC,CAAI,8DAA8DC,EAAO;;gCAEtE,KAAKwC,iBAAgB;;;;;CAKnD;CAEQA,iBAAkBC,GAAU;EAClC,IAAMC,IAAOD,EAAEE;EAEf,KAAKC,gBAAgB,sBAAsBF,EAAKG,iBAAiB,CAAC,CAACC,SAAS,CAAC;CAC/E;CAEQP,UAAW;EACjB,QAAQ,KAAKzB,MAAb;GACE,KAAK;IACH,KAAKiC,aAAa,CAAC,CAACC,MAAMC,cAAc;IACxC;GACF,KAAK,SACH,KAAKF,aAAa,CAAC,CAACC,MAAME,MAAM;EAEpC;CACF;AACF,GAAC,CAAAT,GAAA,CAAAd,GAAAC,GAAAC,GAAAE,GAAAL,IAAAyB,GAAA,CAAA9C,GAAA+C,MAAAC,EAAAhC,GAAA;CAAA;EAAAR;EAAA;EAAA;CAAA;CAAA;EAAAI;EAAA;EAAA;CAAA;CAAA;EAAAC;EAAA;EAAA;CAAA;CAAA;EAAAE;EAAA;EAAA;CAAA;AAAA,GAAAhB,GAAA,GAAA,KAAA,GA9CmCN,CAAY,GAAAuB,IAAAiC,IAAA,cAAAC,EAAA;CAAAhC,cAAA;EAAA,MAAAlB,CAAA,GAAAmD,EAAA,MAAA,UAC9BtD,CAAM,GAAAsD,EAAA,MAAA,kBACE,EAAI,GAAAJ,EAAA;CAAA;AAAA,GAAAI,EAAAF,GAAAhD,GAAA,KAAA,CAAA,GAAAgD,GAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.styles.cjs.js","names":[],"sources":["../../../src/components/button/Button.styles.css"],"sourcesContent":[":host {\n --text-color: var(--solid-ui-color-white);\n --border-color: var(--solid-ui-color-primary);\n --background-color: var(--solid-ui-color-primary);\n --hover-text-color: var(--text-color);\n --hover-border-color: var(--solid-ui-color-tertiary);\n --hover-background-color: var(--solid-ui-color-tertiary);\n\n display: inline-flex;\n\n button {\n position: relative;\n padding: 7px 12px;\n border-radius: 5px;\n font-size: var(--solid-ui-font-size-md);\n font-weight: 600;\n color: var(--text-color);\n background: var(--background-color);\n border: 1px solid var(--border-color);\n display: flex;\n justify-content: center;\n align-items: center;\n gap: 5px;\n flex: 1;\n\n &:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n &:hover:not(:disabled) {\n color: var(--hover-text-color);\n background: var(--hover-background-color);\n border-color: var(--hover-border-color);\n }\n\n icon-svg-spinners-180-ring, ::slotted([slot=\"left-icon\"]), ::slotted([slot=\"right-icon\"]) {\n width: var(--solid-ui-font-size-md);\n height: var(--solid-ui-font-size-md);\n }\n\n &::after {\n content: \"\";\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: var(--solid-ui-clickable-area);\n height: var(--solid-ui-clickable-area);\n }\n }\n}\n\n:host([data-has-icon-slot]) button {\n padding: 4px;\n\n ::slotted([slot=\"icon\"]) {\n width: var(--solid-ui-font-size-2xl);\n height: var(--solid-ui-font-size-2xl);\n }\n}\n\n:host([variant='secondary']) button {\n --text-color: var(--solid-ui-color-gray-800);\n --border-color: var(--solid-ui-color-slate-400);\n --background-color: var(--solid-ui-color-white);\n --hover-text-color: var(--solid-ui-color-white);\n --hover-background-color: var(--solid-ui-color-tertiary);\n --hover-border-color: var(--solid-ui-color-tertiary);\n}\n\n:host([variant='tertiary']) button {\n --text-color: var(--solid-ui-color-primary);\n --border-color: transparent;\n --background-color: transparent;\n --hover-text-color: var(--solid-ui-color-tertiary);\n --hover-border-color: var(--solid-ui-color-tertiary);\n --hover-background-color: transparent;\n\n padding: 0;\n border-radius: 0;\n border-width: 0;\n border-bottom-width: 1px;\n}\n\n:host([variant='outline']) button {\n --text-color: currentColor;\n --border-color: currentColor;\n --background-color: transparent;\n --hover-text-color: currentColor;\n --hover-border-color: currentColor;\n --hover-background-color: color-mix(in srgb, currentColor 25%, transparent);\n}\n\n:host([variant='ghost']) button {\n --text-color: currentColor;\n --border-color: transparent;\n --background-color: transparent;\n --hover-text-color: currentColor;\n --hover-border-color: transparent;\n --hover-background-color: var(--solid-ui-color-primary-hover);\n}\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"Button.styles.cjs.js","names":["Button_styles_default"],"sources":["../../../src/components/button/Button.styles.css"],"sourcesContent":[":host {\n --text-color: var(--solid-ui-color-white);\n --border-color: var(--solid-ui-color-primary);\n --background-color: var(--solid-ui-color-primary);\n --hover-text-color: var(--text-color);\n --hover-border-color: var(--solid-ui-color-tertiary);\n --hover-background-color: var(--solid-ui-color-tertiary);\n\n display: inline-flex;\n\n button {\n position: relative;\n padding: 7px 12px;\n border-radius: 5px;\n font-size: var(--solid-ui-font-size-md);\n font-weight: 600;\n color: var(--text-color);\n background: var(--background-color);\n border: 1px solid var(--border-color);\n display: flex;\n justify-content: center;\n align-items: center;\n gap: 5px;\n flex: 1;\n\n &:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n &:hover:not(:disabled) {\n color: var(--hover-text-color);\n background: var(--hover-background-color);\n border-color: var(--hover-border-color);\n }\n\n icon-svg-spinners-180-ring, ::slotted([slot=\"left-icon\"]), ::slotted([slot=\"right-icon\"]) {\n width: var(--solid-ui-font-size-md);\n height: var(--solid-ui-font-size-md);\n }\n\n &::after {\n content: \"\";\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: var(--solid-ui-clickable-area);\n height: var(--solid-ui-clickable-area);\n }\n }\n}\n\n:host([data-has-icon-slot]) button {\n padding: 4px;\n\n ::slotted([slot=\"icon\"]) {\n width: var(--solid-ui-font-size-2xl);\n height: var(--solid-ui-font-size-2xl);\n }\n}\n\n:host([variant='secondary']) button {\n --text-color: var(--solid-ui-color-gray-800);\n --border-color: var(--solid-ui-color-slate-400);\n --background-color: var(--solid-ui-color-white);\n --hover-text-color: var(--solid-ui-color-white);\n --hover-background-color: var(--solid-ui-color-tertiary);\n --hover-border-color: var(--solid-ui-color-tertiary);\n}\n\n:host([variant='tertiary']) button {\n --text-color: var(--solid-ui-color-primary);\n --border-color: transparent;\n --background-color: transparent;\n --hover-text-color: var(--solid-ui-color-tertiary);\n --hover-border-color: var(--solid-ui-color-tertiary);\n --hover-background-color: transparent;\n\n padding: 0;\n border-radius: 0;\n border-width: 0;\n border-bottom-width: 1px;\n}\n\n:host([variant='outline']) button {\n --text-color: currentColor;\n --border-color: currentColor;\n --background-color: transparent;\n --hover-text-color: currentColor;\n --hover-border-color: currentColor;\n --hover-background-color: color-mix(in srgb, currentColor 25%, transparent);\n}\n\n:host([variant='ghost']) button {\n --text-color: currentColor;\n --border-color: transparent;\n --background-color: transparent;\n --hover-text-color: currentColor;\n --hover-border-color: transparent;\n --hover-background-color: var(--solid-ui-color-primary-hover);\n}\n"],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.styles.esm.js","names":[],"sources":["../../../src/components/button/Button.styles.css"],"sourcesContent":[":host {\n --text-color: var(--solid-ui-color-white);\n --border-color: var(--solid-ui-color-primary);\n --background-color: var(--solid-ui-color-primary);\n --hover-text-color: var(--text-color);\n --hover-border-color: var(--solid-ui-color-tertiary);\n --hover-background-color: var(--solid-ui-color-tertiary);\n\n display: inline-flex;\n\n button {\n position: relative;\n padding: 7px 12px;\n border-radius: 5px;\n font-size: var(--solid-ui-font-size-md);\n font-weight: 600;\n color: var(--text-color);\n background: var(--background-color);\n border: 1px solid var(--border-color);\n display: flex;\n justify-content: center;\n align-items: center;\n gap: 5px;\n flex: 1;\n\n &:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n &:hover:not(:disabled) {\n color: var(--hover-text-color);\n background: var(--hover-background-color);\n border-color: var(--hover-border-color);\n }\n\n icon-svg-spinners-180-ring, ::slotted([slot=\"left-icon\"]), ::slotted([slot=\"right-icon\"]) {\n width: var(--solid-ui-font-size-md);\n height: var(--solid-ui-font-size-md);\n }\n\n &::after {\n content: \"\";\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: var(--solid-ui-clickable-area);\n height: var(--solid-ui-clickable-area);\n }\n }\n}\n\n:host([data-has-icon-slot]) button {\n padding: 4px;\n\n ::slotted([slot=\"icon\"]) {\n width: var(--solid-ui-font-size-2xl);\n height: var(--solid-ui-font-size-2xl);\n }\n}\n\n:host([variant='secondary']) button {\n --text-color: var(--solid-ui-color-gray-800);\n --border-color: var(--solid-ui-color-slate-400);\n --background-color: var(--solid-ui-color-white);\n --hover-text-color: var(--solid-ui-color-white);\n --hover-background-color: var(--solid-ui-color-tertiary);\n --hover-border-color: var(--solid-ui-color-tertiary);\n}\n\n:host([variant='tertiary']) button {\n --text-color: var(--solid-ui-color-primary);\n --border-color: transparent;\n --background-color: transparent;\n --hover-text-color: var(--solid-ui-color-tertiary);\n --hover-border-color: var(--solid-ui-color-tertiary);\n --hover-background-color: transparent;\n\n padding: 0;\n border-radius: 0;\n border-width: 0;\n border-bottom-width: 1px;\n}\n\n:host([variant='outline']) button {\n --text-color: currentColor;\n --border-color: currentColor;\n --background-color: transparent;\n --hover-text-color: currentColor;\n --hover-border-color: currentColor;\n --hover-background-color: color-mix(in srgb, currentColor 25%, transparent);\n}\n\n:host([variant='ghost']) button {\n --text-color: currentColor;\n --border-color: transparent;\n --background-color: transparent;\n --hover-text-color: currentColor;\n --hover-border-color: transparent;\n --hover-background-color: var(--solid-ui-color-primary-hover);\n}\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"Button.styles.esm.js","names":["Button_styles_default"],"sources":["../../../src/components/button/Button.styles.css"],"sourcesContent":[":host {\n --text-color: var(--solid-ui-color-white);\n --border-color: var(--solid-ui-color-primary);\n --background-color: var(--solid-ui-color-primary);\n --hover-text-color: var(--text-color);\n --hover-border-color: var(--solid-ui-color-tertiary);\n --hover-background-color: var(--solid-ui-color-tertiary);\n\n display: inline-flex;\n\n button {\n position: relative;\n padding: 7px 12px;\n border-radius: 5px;\n font-size: var(--solid-ui-font-size-md);\n font-weight: 600;\n color: var(--text-color);\n background: var(--background-color);\n border: 1px solid var(--border-color);\n display: flex;\n justify-content: center;\n align-items: center;\n gap: 5px;\n flex: 1;\n\n &:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n &:hover:not(:disabled) {\n color: var(--hover-text-color);\n background: var(--hover-background-color);\n border-color: var(--hover-border-color);\n }\n\n icon-svg-spinners-180-ring, ::slotted([slot=\"left-icon\"]), ::slotted([slot=\"right-icon\"]) {\n width: var(--solid-ui-font-size-md);\n height: var(--solid-ui-font-size-md);\n }\n\n &::after {\n content: \"\";\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: var(--solid-ui-clickable-area);\n height: var(--solid-ui-clickable-area);\n }\n }\n}\n\n:host([data-has-icon-slot]) button {\n padding: 4px;\n\n ::slotted([slot=\"icon\"]) {\n width: var(--solid-ui-font-size-2xl);\n height: var(--solid-ui-font-size-2xl);\n }\n}\n\n:host([variant='secondary']) button {\n --text-color: var(--solid-ui-color-gray-800);\n --border-color: var(--solid-ui-color-slate-400);\n --background-color: var(--solid-ui-color-white);\n --hover-text-color: var(--solid-ui-color-white);\n --hover-background-color: var(--solid-ui-color-tertiary);\n --hover-border-color: var(--solid-ui-color-tertiary);\n}\n\n:host([variant='tertiary']) button {\n --text-color: var(--solid-ui-color-primary);\n --border-color: transparent;\n --background-color: transparent;\n --hover-text-color: var(--solid-ui-color-tertiary);\n --hover-border-color: var(--solid-ui-color-tertiary);\n --hover-background-color: transparent;\n\n padding: 0;\n border-radius: 0;\n border-width: 0;\n border-bottom-width: 1px;\n}\n\n:host([variant='outline']) button {\n --text-color: currentColor;\n --border-color: currentColor;\n --background-color: transparent;\n --hover-text-color: currentColor;\n --hover-border-color: currentColor;\n --hover-background-color: color-mix(in srgb, currentColor 25%, transparent);\n}\n\n:host([variant='ghost']) button {\n --text-color: currentColor;\n --border-color: transparent;\n --background-color: transparent;\n --hover-text-color: currentColor;\n --hover-border-color: transparent;\n --hover-background-color: var(--solid-ui-color-primary-hover);\n}\n"],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs.js","names":["Button","BUTTON_VARIANTS"],"sources":["../../../src/components/button/index.ts"],"sourcesContent":["import Button, { BUTTON_VARIANTS, type ButtonVariant } from './Button'\n\nexport { Button, BUTTON_VARIANTS, type ButtonVariant }\nexport default Button\n"],"mappings":"kIAGA,
|
|
1
|
+
{"version":3,"file":"index.cjs.js","names":["Button","BUTTON_VARIANTS","Button","require_Button","button_default"],"sources":["../../../src/components/button/index.ts"],"sourcesContent":["import Button, { BUTTON_VARIANTS, type ButtonVariant } from './Button'\n\nexport { Button, BUTTON_VARIANTS, type ButtonVariant }\nexport default Button\n"],"mappings":"kIAGA,IAAAI,EAAeJ,EAAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","names":["Button","BUTTON_VARIANTS"],"sources":["../../../src/components/button/index.ts"],"sourcesContent":["import Button, { BUTTON_VARIANTS, type ButtonVariant } from './Button'\n\nexport { Button, BUTTON_VARIANTS, type ButtonVariant }\nexport default Button\n"],"mappings":";;AAGA,
|
|
1
|
+
{"version":3,"file":"index.esm.js","names":["Button","BUTTON_VARIANTS","Button","_Button","button_default","BUTTON_VARIANTS"],"sources":["../../../src/components/button/index.ts"],"sourcesContent":["import Button, { BUTTON_VARIANTS, type ButtonVariant } from './Button'\n\nexport { Button, BUTTON_VARIANTS, type ButtonVariant }\nexport default Button\n"],"mappings":";;AAGA,IAAAI,IAAeJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Combobox.cjs.js","names":["customElement","FormControlComponent","Task","html","nothing","property","query","state","debounce","styles","AsyncOptionsInfo","Error","defineAsyncComboboxOptionsProvider","provider","_classDecs","_Combobox","_Combobox2","_A","WeakMap","_B","_C","_D","_E","_F","_G","_H","_I","_J","_K","_L","_M","_ref","_selectOnlyDecs","type","Boolean","reflect","attribute","_asyncOptionsUrlDecs","String","_asyncOptionsResultsFieldDecs","_asyncOptionsLabelFieldDecs","_asyncOptionsValueFieldDecs","_asyncOptionsProviderDecs","Function","_optionsFallbackDecs","Array","_controlElementDecs","_readonlyDecs","_filterDecs","_displayValueDecs","_openDecs","_activeIndexDecs","_Combobox3","Combobox","_classPrivateFieldGet","selectOnly","v","_classPrivateFieldSet","asyncOptionsUrl","asyncOptionsResultsField","asyncOptionsLabelField","asyncOptionsValueField","asyncOptionsProvider","optionsFallback","controlElement","readonly","filter","displayValue","open","activeIndex","constructor","_classPrivateFieldInitSpec","_initProto","_init_selectOnly","_init_asyncOptionsUrl","_init_asyncOptionsResultsField","_init_asyncOptionsLabelField","_init_asyncOptionsValueField","_init_asyncOptionsProvider","_init_optionsFallback","_init_controlElement","_init_readonly","_init_filter","_init_displayValue","_init_open","_init_activeIndex","_defineProperty","value","event","path","composedPath","includes","hide","listboxId","controlTrait","controlId","selectedOption","_selectedOption","disconnectedCallback","removeOpenListeners","willUpdate","changedProperties","has","updateAsyncOptionsTask","options","getFilteredOptions","option","find","selectable","optionLabel","label","updateDisplayValue","getInitialActiveIndex","undefined","render","activeOption","activeDescendant","getOptionId","accessibleName","placeholder","renderLabel","onAnchorMouseDown","name","labelId","required","onInputKeyDown","onInputFocus","onInput","onListboxMouseDown","map","index","setActiveIndex","template","asyncOptionsTask","initial","complete","pending","error","isError","message","Object","getOptionsFromDOM","toLowerCase","querySelectorAll","from","textContent","selectedIndex","findIndex","length","getNextIndex","currentIndex","direction","updateDebouncedFilter","results","response","fetch","replace","encodeURIComponent","data","json","labelField","valueField","result","show","filteredOptions","focusLast","addOpenListeners","requestAnimationFrame","scrollActiveOptionIntoView","cancel","selectOption","previousValue","setValue","focus","preventScroll","dispatchEvent","CustomEvent","bubbles","composed","detail","shadowRoot","querySelector","scrollIntoView","block","openListenersAttached","document","addEventListener","handleDocumentFocusIn","handleDocumentMouseDown","root","getRootNode","removeEventListener","target","preventDefault","openPopupFromKey","key","onSubmit","stopPropagation","HTMLElement","optionElement","closest","optionId","id","Number","parseInt","e","c","_initClass","_applyDecs","_Class","_identity","default"],"sources":["../../../src/components/combobox/Combobox.ts"],"sourcesContent":["import { customElement, FormControlComponent, FormControlValue } from '@/lib/components'\nimport { Task } from '@lit/task'\nimport { html, nothing, TemplateResult, type PropertyValues } from 'lit'\nimport { property, query, state } from 'lit/decorators.js'\nimport { debounce } from '@/lib/timing'\nimport type ComboboxOption from '@/components/combobox-option/ComboboxOption'\n\nimport '~icons/lucide/chevron-down'\nimport '~icons/svg-spinners/3-dots-fade'\nimport '@awesome.me/webawesome/dist/components/popup/popup.js'\n\nimport styles from './Combobox.styles.css'\n\nclass AsyncOptionsInfo extends Error {}\n\nexport type ComboboxOptionData = {\n value: FormControlValue;\n label: string;\n template?: TemplateResult;\n selectable?: boolean;\n}\n\nexport type ComboboxChangeEvent = CustomEvent<{ option: ComboboxOptionData }>\n\nexport type AsyncComboboxOptionsProvider = (query: string) => Promise<ComboboxOptionData[]>\n\nexport function defineAsyncComboboxOptionsProvider<T extends AsyncComboboxOptionsProvider> (provider: T): T {\n return provider\n}\n\n@customElement('solid-ui-combobox')\nexport default class Combobox extends FormControlComponent {\n static styles = styles\n\n @property({ type: Boolean, reflect: true, attribute: 'select-only' })\n accessor selectOnly = false\n\n @property({ type: String, attribute: 'async-options-url' })\n accessor asyncOptionsUrl = ''\n\n @property({ type: String, attribute: 'async-options-results-field' })\n accessor asyncOptionsResultsField = ''\n\n @property({ type: String, attribute: 'async-options-label-field' })\n accessor asyncOptionsLabelField = ''\n\n @property({ type: String, attribute: 'async-options-value-field' })\n accessor asyncOptionsValueField = ''\n\n @property({ type: Function })\n accessor asyncOptionsProvider: AsyncComboboxOptionsProvider | null = null\n\n @property({ type: Array })\n accessor optionsFallback: ComboboxOptionData[] | null = null\n\n @query('input')\n protected accessor controlElement: HTMLInputElement | null = null\n\n @property({ type: Boolean, reflect: true })\n accessor readonly = false\n\n @state()\n private accessor filter = ''\n\n @state()\n private accessor displayValue = ''\n\n @state()\n private accessor open = false\n\n @state()\n private accessor activeIndex = -1\n\n private openListenersAttached = false\n private updateDebouncedFilter = debounce(300, (value) => (this.filter = value))\n private asyncOptionsTask?: Task<readonly [string], ComboboxOptionData[]>\n private _selectedOption: ComboboxOptionData | undefined\n private readonly listboxId: string\n\n constructor () {\n super()\n\n this.listboxId = `listbox-${this.controlTrait.controlId}`\n }\n\n get selectedOption (): ComboboxOptionData | undefined {\n return this._selectedOption\n }\n\n disconnectedCallback () {\n super.disconnectedCallback()\n\n this.removeOpenListeners()\n }\n\n protected willUpdate (changedProperties: PropertyValues<this>) {\n super.willUpdate(changedProperties)\n\n if (changedProperties.has('asyncOptionsUrl') || changedProperties.has('asyncOptionsProvider')) {\n this.updateAsyncOptionsTask()\n }\n\n if (changedProperties.has('value')) {\n const options = this.getFilteredOptions()\n const option = options.find((option) => option.selectable !== false && option.value === this.value) ??\n this.optionsFallback?.find((option) => option.value === this.value)\n const optionLabel = option?.selectable !== false && option?.label\n\n this.updateDisplayValue(optionLabel || this.value)\n\n if (this.open) {\n this.activeIndex = this.getInitialActiveIndex(options)\n }\n\n if (this._selectedOption && this._selectedOption.value !== this.value) {\n this._selectedOption = undefined\n }\n }\n }\n\n protected render () {\n const options = this.getFilteredOptions()\n const activeOption =\n this.open && this.activeIndex >= 0 ? options[this.activeIndex] : undefined\n const activeDescendant =\n activeOption !== undefined ? this.getOptionId(this.activeIndex) : undefined\n const accessibleName = this.placeholder || 'Combobox'\n\n return html`\n ${this.controlTrait.renderLabel()}\n <wa-popup\n placement=\"bottom\"\n flip\n shift\n sync=\"width\"\n auto-size=\"vertical\"\n auto-size-padding=\"10\"\n ?active=${this.open}\n >\n <div class=\"input-wrapper\" slot=\"anchor\" @mousedown=${this.onAnchorMouseDown}>\n <input\n id=\"${this.controlTrait.controlId}\"\n type=\"text\"\n name=${this.name}\n placeholder=${this.placeholder}\n role=\"combobox\"\n aria-autocomplete=\"list\"\n aria-haspopup=\"listbox\"\n aria-expanded=${this.open ? 'true' : 'false'}\n aria-controls=${this.listboxId}\n aria-activedescendant=${activeDescendant ?? nothing}\n aria-labelledby=${this.label ? this.controlTrait.labelId : nothing}\n aria-label=${this.label ? nothing : accessibleName}\n aria-required=${this.required ? 'true' : nothing}\n autocomplete=\"off\"\n spellcheck=\"false\"\n ?required=${this.required}\n .value=${this.displayValue}\n @keydown=${this.onInputKeyDown}\n @focus=${this.onInputFocus}\n @input=${() => this.selectOnly ? this.updateDisplayValue(this.controlElement?.value ?? '') : this.controlTrait.onInput()}\n />\n <icon-lucide-chevron-down></icon-lucide-chevron-down>\n </div>\n <div\n id=${this.listboxId}\n class=\"listbox\"\n role=\"listbox\"\n aria-orientation=\"vertical\"\n aria-labelledby=${this.label ? this.controlTrait.labelId : nothing}\n aria-label=${this.label ? nothing : accessibleName}\n ?hidden=${!this.open}\n @mousedown=${this.onListboxMouseDown}\n >\n ${options.map((option, index) => {\n return option.selectable !== false\n ? html`<div\n id=${this.getOptionId(index)}\n role=\"option\"\n aria-selected=${option.value === this.value ? 'true' : 'false'}\n data-active=${index === this.activeIndex || nothing}\n @mousemove=${() => this.setActiveIndex(index)}\n >\n ${option.template ?? option.label}\n </div>`\n : html`<div class=\"non-selectable-option\">${option.template ?? option.label}</div>`\n })}\n </div>\n </wa-popup>\n `\n }\n\n private getFilteredOptions (): ComboboxOptionData[] {\n if (this.asyncOptionsTask) {\n return this.asyncOptionsTask.render({\n initial: () => this.optionsFallback ?? [],\n complete: (options) => options,\n pending: () => [\n {\n value: '',\n label: 'Loading...',\n template: html`<icon-svg-spinners-3-dots-fade></icon-svg-spinners-3-dots-fade>`,\n selectable: false\n } as const,\n ],\n error: (error) => {\n const isError = !(error instanceof AsyncOptionsInfo)\n const message = Object(error).message ?? 'Something went wrong'\n\n return [\n {\n value: '',\n label: message,\n template: html`<span class=\"message message--${isError ? 'error' : 'info'}\">${message}</span>`,\n selectable: false\n } as const,\n ]\n },\n })\n }\n\n return this.getOptionsFromDOM().filter((option) =>\n String(option.label).toLowerCase().includes(this.filter)\n )\n }\n\n private getOptionsFromDOM (): ComboboxOptionData[] {\n const options = this.querySelectorAll<ComboboxOption>(\n 'solid-ui-combobox-option'\n )\n\n return Array.from(options).map((option) => ({\n value: option.value,\n label: option.textContent ?? '',\n }))\n }\n\n private getOptionId (index: number): string {\n return `${this.listboxId}-option-${index}`\n }\n\n private getInitialActiveIndex (options: ComboboxOptionData[]): number {\n const selectedIndex = options.findIndex((option) => option.value === this.value)\n\n if (selectedIndex >= 0) {\n return selectedIndex\n }\n\n return options.length > 0 ? 0 : -1\n }\n\n private getNextIndex (\n currentIndex: number,\n options: ComboboxOptionData[],\n direction: 1 | -1\n ): number {\n if (options.length === 0) {\n return -1\n }\n\n return (currentIndex + direction + options.length) % options.length\n }\n\n private setActiveIndex (index: number) {\n this.activeIndex = index\n }\n\n private updateDisplayValue (value: unknown) {\n this.displayValue = value ? String(value) : ''\n\n if (this.open) {\n const filter = this.displayValue.toLowerCase()\n\n if (this.asyncOptionsTask) {\n this.updateDebouncedFilter(filter)\n } else {\n this.filter = filter\n }\n }\n }\n\n private updateAsyncOptionsTask () {\n if (!this.asyncOptionsUrl && !this.asyncOptionsProvider) {\n this.asyncOptionsTask = undefined\n\n return\n }\n\n this.asyncOptionsTask ??= new Task(\n this,\n async ([filter]) => {\n if (this.asyncOptionsProvider) {\n const results = await this.asyncOptionsProvider(filter)\n\n if (results.length === 0) {\n throw new AsyncOptionsInfo('No results found')\n }\n\n return results\n }\n\n const response = await fetch(\n this.asyncOptionsUrl.replace('%search%', encodeURIComponent(filter))\n )\n const data = await response.json()\n const results = Array.from(\n this.asyncOptionsResultsField\n ? data[this.asyncOptionsResultsField]\n : data\n )\n\n if (results.length === 0) {\n throw new AsyncOptionsInfo('No results found')\n }\n\n const labelField = this.asyncOptionsLabelField || 'label'\n const valueField = this.asyncOptionsValueField || 'value'\n\n return results.map((result) => ({\n label: String(Object(result)[labelField]),\n value: Object(result)[valueField],\n }))\n },\n () => [this.filter]\n )\n }\n\n private show (options?: { focusLast?: boolean }) {\n if (this.open) {\n return\n }\n\n const filteredOptions = this.getFilteredOptions()\n\n if (filteredOptions.length === 0) {\n return\n }\n\n this.open = true\n this.activeIndex = options?.focusLast\n ? filteredOptions.length - 1\n : this.getInitialActiveIndex(filteredOptions)\n this.addOpenListeners()\n\n requestAnimationFrame(() => this.scrollActiveOptionIntoView())\n }\n\n private hide () {\n if (!this.open) {\n return\n }\n\n this.filter = ''\n this.open = false\n this.activeIndex = -1\n this.removeOpenListeners()\n this.updateDebouncedFilter.cancel()\n }\n\n private selectOption (option: ComboboxOptionData) {\n const previousValue = this.value\n\n this._selectedOption = option\n\n this.hide()\n this.controlTrait.setValue(option.value)\n this.controlElement?.focus({ preventScroll: true })\n this.dispatchEvent(new CustomEvent('change', { bubbles: true, composed: true, detail: { option } }))\n\n if (previousValue === this.value) {\n this.updateDisplayValue(option.label)\n }\n }\n\n private scrollActiveOptionIntoView () {\n if (this.activeIndex < 0) {\n return\n }\n\n this.shadowRoot\n ?.querySelector(`#${this.getOptionId(this.activeIndex)}`)\n ?.scrollIntoView({ block: 'nearest' })\n }\n\n private addOpenListeners () {\n if (this.openListenersAttached) {\n return\n }\n\n document.addEventListener('focusin', this.handleDocumentFocusIn)\n document.addEventListener('mousedown', this.handleDocumentMouseDown)\n\n const root = this.getRootNode()\n\n if (root !== document) {\n root.addEventListener('focusin', this.handleDocumentFocusIn)\n }\n\n this.openListenersAttached = true\n }\n\n private removeOpenListeners () {\n if (!this.openListenersAttached) {\n return\n }\n\n document.removeEventListener('focusin', this.handleDocumentFocusIn)\n document.removeEventListener('mousedown', this.handleDocumentMouseDown)\n\n const root = this.getRootNode()\n\n if (root !== document) {\n root.removeEventListener('focusin', this.handleDocumentFocusIn)\n }\n\n this.openListenersAttached = false\n }\n\n private handleDocumentFocusIn = (event: Event) => {\n const path = event.composedPath()\n\n if (!path.includes(this)) {\n this.hide()\n }\n }\n\n private handleDocumentMouseDown = (event: MouseEvent) => {\n const path = event.composedPath()\n\n if (!path.includes(this)) {\n this.hide()\n }\n }\n\n private onAnchorMouseDown (event: MouseEvent) {\n if (event.target === this.controlElement) {\n return\n }\n\n event.preventDefault()\n this.controlElement?.focus({ preventScroll: true })\n }\n\n private onInputFocus () {\n this.show()\n }\n\n private openPopupFromKey (focusLast: boolean) {\n if (!this.open) {\n this.show({ focusLast })\n }\n }\n\n private onInputKeyDown (event: KeyboardEvent) {\n const options = this.getFilteredOptions()\n\n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault()\n\n if (!this.open) {\n this.openPopupFromKey(false)\n } else {\n this.activeIndex = this.getNextIndex(this.activeIndex, options, 1)\n this.scrollActiveOptionIntoView()\n }\n break\n case 'ArrowUp':\n event.preventDefault()\n\n if (!this.open) {\n this.openPopupFromKey(true)\n } else {\n this.activeIndex = this.getNextIndex(this.activeIndex, options, -1)\n this.scrollActiveOptionIntoView()\n }\n break\n case 'Enter':\n if (this.open && this.activeIndex >= 0 && options[this.activeIndex]) {\n event.preventDefault()\n this.selectOption(options[this.activeIndex])\n } else if (!this.open) {\n event.preventDefault()\n this.controlTrait.onSubmit()\n }\n break\n case 'Escape':\n if (this.open) {\n event.preventDefault()\n event.stopPropagation()\n this.hide()\n this.controlElement?.focus({ preventScroll: true })\n }\n break\n case 'Tab':\n this.hide()\n break\n default:\n if (!this.open) {\n this.show()\n }\n }\n }\n\n private onListboxMouseDown (event: MouseEvent) {\n event.preventDefault()\n\n if (!(event.target instanceof HTMLElement)) {\n return\n }\n\n const optionElement = event.target.closest('[role=\"option\"]')\n\n if (!optionElement) {\n return\n }\n\n const optionId = optionElement.id\n const index = Number.parseInt(optionId.replace(`${this.listboxId}-option-`, ''), 10)\n const option = this.getFilteredOptions()[index]\n\n if (option) {\n this.selectOption(option)\n }\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Combobox.cjs.js","names":["customElement","FormControlComponent","Task","html","nothing","property","query","state","debounce","styles","AsyncOptionsInfo","Error","defineAsyncComboboxOptionsProvider","provider","_classDecs","_Combobox","_Combobox2","_A","WeakMap","_B","_C","_D","_E","_F","_G","_H","_I","_J","_K","_L","_M","_ref","_selectOnlyDecs","type","Boolean","reflect","attribute","_asyncOptionsUrlDecs","String","_asyncOptionsResultsFieldDecs","_asyncOptionsLabelFieldDecs","_asyncOptionsValueFieldDecs","_asyncOptionsProviderDecs","Function","_optionsFallbackDecs","Array","_controlElementDecs","_readonlyDecs","_filterDecs","_displayValueDecs","_openDecs","_activeIndexDecs","_Combobox3","Combobox","_classPrivateFieldGet","selectOnly","v","_classPrivateFieldSet","asyncOptionsUrl","asyncOptionsResultsField","asyncOptionsLabelField","asyncOptionsValueField","asyncOptionsProvider","optionsFallback","controlElement","readonly","filter","displayValue","open","activeIndex","constructor","_classPrivateFieldInitSpec","_initProto","_init_selectOnly","_init_asyncOptionsUrl","_init_asyncOptionsResultsField","_init_asyncOptionsLabelField","_init_asyncOptionsValueField","_init_asyncOptionsProvider","_init_optionsFallback","_init_controlElement","_init_readonly","_init_filter","_init_displayValue","_init_open","_init_activeIndex","_defineProperty","value","event","path","composedPath","includes","hide","listboxId","controlTrait","controlId","selectedOption","_selectedOption","disconnectedCallback","removeOpenListeners","willUpdate","changedProperties","has","updateAsyncOptionsTask","options","getFilteredOptions","option","find","selectable","optionLabel","label","updateDisplayValue","getInitialActiveIndex","undefined","render","activeOption","activeDescendant","getOptionId","accessibleName","placeholder","renderLabel","onAnchorMouseDown","name","labelId","required","onInputKeyDown","onInputFocus","onInput","onListboxMouseDown","map","index","setActiveIndex","template","asyncOptionsTask","initial","complete","pending","error","isError","message","Object","getOptionsFromDOM","toLowerCase","querySelectorAll","from","textContent","selectedIndex","findIndex","length","getNextIndex","currentIndex","direction","updateDebouncedFilter","results","response","fetch","replace","encodeURIComponent","data","json","labelField","valueField","result","show","filteredOptions","focusLast","addOpenListeners","requestAnimationFrame","scrollActiveOptionIntoView","cancel","selectOption","previousValue","setValue","focus","preventScroll","dispatchEvent","CustomEvent","bubbles","composed","detail","shadowRoot","querySelector","scrollIntoView","block","openListenersAttached","document","addEventListener","handleDocumentFocusIn","handleDocumentMouseDown","root","getRootNode","removeEventListener","target","preventDefault","openPopupFromKey","key","onSubmit","stopPropagation","HTMLElement","optionElement","closest","optionId","id","Number","parseInt","e","c","_initClass","_applyDecs","_Class","_identity","default","customElement","property","query","state","FormControlComponent","debounce","nothing","Task","styles","require_decorators","require_FormControlComponent","require_timing","require_Combobox_styles","lit","lit_decorators_js","_lit_task","_Class","_Combobox3","_A","_B","_C","_D","_E","_F","_G","_H","_I","_J","_K","_L","_M","_initProto","_initClass","_classDecs","_selectOnlyDecs","_init_selectOnly","_asyncOptionsUrlDecs","_init_asyncOptionsUrl","_asyncOptionsResultsFieldDecs","_init_asyncOptionsResultsField","_asyncOptionsLabelFieldDecs","_init_asyncOptionsLabelField","_asyncOptionsValueFieldDecs","_init_asyncOptionsValueField","_asyncOptionsProviderDecs","_init_asyncOptionsProvider","_optionsFallbackDecs","_init_optionsFallback","_controlElementDecs","_init_controlElement","_readonlyDecs","_init_readonly","_filterDecs","_init_filter","_displayValueDecs","_init_displayValue","_openDecs","_init_open","_activeIndexDecs","_init_activeIndex","_Combobox2","_ref","_classPrivateFieldInitSpec","_checkPrivateRedeclaration","a","_classPrivateFieldSet","s","_assertClassBrand","r","_classPrivateFieldGet","_defineProperty","_toPropertyKey","t","_applyDecs","i","n","o","c","applyDec","m","h","y","v","g","b","u","w","S","A","d","f","p","_setFunctionName","P","j","D","I","F","l","N","_checkInRHS","_toPrimitive","e","_identity","AsyncOptionsInfo","defineAsyncComboboxOptionsProvider","provider","_Combobox","value","event","changedProperties","options","option","optionLabel","activeDescendant","accessibleName","index","isError","error","message","selectedIndex","currentIndex","direction","filter","results","data","labelField","valueField","result","filteredOptions","previousValue","root","optionElement","optionId"],"sources":["../../../src/components/combobox/Combobox.ts"],"sourcesContent":["import { customElement, FormControlComponent, FormControlValue } from '@/lib/components'\nimport { Task } from '@lit/task'\nimport { html, nothing, TemplateResult, type PropertyValues } from 'lit'\nimport { property, query, state } from 'lit/decorators.js'\nimport { debounce } from '@/lib/timing'\nimport type ComboboxOption from '@/components/combobox-option/ComboboxOption'\n\nimport '~icons/lucide/chevron-down'\nimport '~icons/svg-spinners/3-dots-fade'\nimport '@awesome.me/webawesome/dist/components/popup/popup.js'\n\nimport styles from './Combobox.styles.css'\n\nclass AsyncOptionsInfo extends Error {}\n\nexport type ComboboxOptionData = {\n value: FormControlValue;\n label: string;\n template?: TemplateResult;\n selectable?: boolean;\n}\n\nexport type ComboboxChangeEvent = CustomEvent<{ option: ComboboxOptionData }>\n\nexport type AsyncComboboxOptionsProvider = (query: string) => Promise<ComboboxOptionData[]>\n\nexport function defineAsyncComboboxOptionsProvider<T extends AsyncComboboxOptionsProvider> (provider: T): T {\n return provider\n}\n\n@customElement('solid-ui-combobox')\nexport default class Combobox extends FormControlComponent {\n static styles = styles\n\n @property({ type: Boolean, reflect: true, attribute: 'select-only' })\n accessor selectOnly = false\n\n @property({ type: String, attribute: 'async-options-url' })\n accessor asyncOptionsUrl = ''\n\n @property({ type: String, attribute: 'async-options-results-field' })\n accessor asyncOptionsResultsField = ''\n\n @property({ type: String, attribute: 'async-options-label-field' })\n accessor asyncOptionsLabelField = ''\n\n @property({ type: String, attribute: 'async-options-value-field' })\n accessor asyncOptionsValueField = ''\n\n @property({ type: Function })\n accessor asyncOptionsProvider: AsyncComboboxOptionsProvider | null = null\n\n @property({ type: Array })\n accessor optionsFallback: ComboboxOptionData[] | null = null\n\n @query('input')\n protected accessor controlElement: HTMLInputElement | null = null\n\n @property({ type: Boolean, reflect: true })\n accessor readonly = false\n\n @state()\n private accessor filter = ''\n\n @state()\n private accessor displayValue = ''\n\n @state()\n private accessor open = false\n\n @state()\n private accessor activeIndex = -1\n\n private openListenersAttached = false\n private updateDebouncedFilter = debounce(300, (value) => (this.filter = value))\n private asyncOptionsTask?: Task<readonly [string], ComboboxOptionData[]>\n private _selectedOption: ComboboxOptionData | undefined\n private readonly listboxId: string\n\n constructor () {\n super()\n\n this.listboxId = `listbox-${this.controlTrait.controlId}`\n }\n\n get selectedOption (): ComboboxOptionData | undefined {\n return this._selectedOption\n }\n\n disconnectedCallback () {\n super.disconnectedCallback()\n\n this.removeOpenListeners()\n }\n\n protected willUpdate (changedProperties: PropertyValues<this>) {\n super.willUpdate(changedProperties)\n\n if (changedProperties.has('asyncOptionsUrl') || changedProperties.has('asyncOptionsProvider')) {\n this.updateAsyncOptionsTask()\n }\n\n if (changedProperties.has('value')) {\n const options = this.getFilteredOptions()\n const option = options.find((option) => option.selectable !== false && option.value === this.value) ??\n this.optionsFallback?.find((option) => option.value === this.value)\n const optionLabel = option?.selectable !== false && option?.label\n\n this.updateDisplayValue(optionLabel || this.value)\n\n if (this.open) {\n this.activeIndex = this.getInitialActiveIndex(options)\n }\n\n if (this._selectedOption && this._selectedOption.value !== this.value) {\n this._selectedOption = undefined\n }\n }\n }\n\n protected render () {\n const options = this.getFilteredOptions()\n const activeOption =\n this.open && this.activeIndex >= 0 ? options[this.activeIndex] : undefined\n const activeDescendant =\n activeOption !== undefined ? this.getOptionId(this.activeIndex) : undefined\n const accessibleName = this.placeholder || 'Combobox'\n\n return html`\n ${this.controlTrait.renderLabel()}\n <wa-popup\n placement=\"bottom\"\n flip\n shift\n sync=\"width\"\n auto-size=\"vertical\"\n auto-size-padding=\"10\"\n ?active=${this.open}\n >\n <div class=\"input-wrapper\" slot=\"anchor\" @mousedown=${this.onAnchorMouseDown}>\n <input\n id=\"${this.controlTrait.controlId}\"\n type=\"text\"\n name=${this.name}\n placeholder=${this.placeholder}\n role=\"combobox\"\n aria-autocomplete=\"list\"\n aria-haspopup=\"listbox\"\n aria-expanded=${this.open ? 'true' : 'false'}\n aria-controls=${this.listboxId}\n aria-activedescendant=${activeDescendant ?? nothing}\n aria-labelledby=${this.label ? this.controlTrait.labelId : nothing}\n aria-label=${this.label ? nothing : accessibleName}\n aria-required=${this.required ? 'true' : nothing}\n autocomplete=\"off\"\n spellcheck=\"false\"\n ?required=${this.required}\n .value=${this.displayValue}\n @keydown=${this.onInputKeyDown}\n @focus=${this.onInputFocus}\n @input=${() => this.selectOnly ? this.updateDisplayValue(this.controlElement?.value ?? '') : this.controlTrait.onInput()}\n />\n <icon-lucide-chevron-down></icon-lucide-chevron-down>\n </div>\n <div\n id=${this.listboxId}\n class=\"listbox\"\n role=\"listbox\"\n aria-orientation=\"vertical\"\n aria-labelledby=${this.label ? this.controlTrait.labelId : nothing}\n aria-label=${this.label ? nothing : accessibleName}\n ?hidden=${!this.open}\n @mousedown=${this.onListboxMouseDown}\n >\n ${options.map((option, index) => {\n return option.selectable !== false\n ? html`<div\n id=${this.getOptionId(index)}\n role=\"option\"\n aria-selected=${option.value === this.value ? 'true' : 'false'}\n data-active=${index === this.activeIndex || nothing}\n @mousemove=${() => this.setActiveIndex(index)}\n >\n ${option.template ?? option.label}\n </div>`\n : html`<div class=\"non-selectable-option\">${option.template ?? option.label}</div>`\n })}\n </div>\n </wa-popup>\n `\n }\n\n private getFilteredOptions (): ComboboxOptionData[] {\n if (this.asyncOptionsTask) {\n return this.asyncOptionsTask.render({\n initial: () => this.optionsFallback ?? [],\n complete: (options) => options,\n pending: () => [\n {\n value: '',\n label: 'Loading...',\n template: html`<icon-svg-spinners-3-dots-fade></icon-svg-spinners-3-dots-fade>`,\n selectable: false\n } as const,\n ],\n error: (error) => {\n const isError = !(error instanceof AsyncOptionsInfo)\n const message = Object(error).message ?? 'Something went wrong'\n\n return [\n {\n value: '',\n label: message,\n template: html`<span class=\"message message--${isError ? 'error' : 'info'}\">${message}</span>`,\n selectable: false\n } as const,\n ]\n },\n })\n }\n\n return this.getOptionsFromDOM().filter((option) =>\n String(option.label).toLowerCase().includes(this.filter)\n )\n }\n\n private getOptionsFromDOM (): ComboboxOptionData[] {\n const options = this.querySelectorAll<ComboboxOption>(\n 'solid-ui-combobox-option'\n )\n\n return Array.from(options).map((option) => ({\n value: option.value,\n label: option.textContent ?? '',\n }))\n }\n\n private getOptionId (index: number): string {\n return `${this.listboxId}-option-${index}`\n }\n\n private getInitialActiveIndex (options: ComboboxOptionData[]): number {\n const selectedIndex = options.findIndex((option) => option.value === this.value)\n\n if (selectedIndex >= 0) {\n return selectedIndex\n }\n\n return options.length > 0 ? 0 : -1\n }\n\n private getNextIndex (\n currentIndex: number,\n options: ComboboxOptionData[],\n direction: 1 | -1\n ): number {\n if (options.length === 0) {\n return -1\n }\n\n return (currentIndex + direction + options.length) % options.length\n }\n\n private setActiveIndex (index: number) {\n this.activeIndex = index\n }\n\n private updateDisplayValue (value: unknown) {\n this.displayValue = value ? String(value) : ''\n\n if (this.open) {\n const filter = this.displayValue.toLowerCase()\n\n if (this.asyncOptionsTask) {\n this.updateDebouncedFilter(filter)\n } else {\n this.filter = filter\n }\n }\n }\n\n private updateAsyncOptionsTask () {\n if (!this.asyncOptionsUrl && !this.asyncOptionsProvider) {\n this.asyncOptionsTask = undefined\n\n return\n }\n\n this.asyncOptionsTask ??= new Task(\n this,\n async ([filter]) => {\n if (this.asyncOptionsProvider) {\n const results = await this.asyncOptionsProvider(filter)\n\n if (results.length === 0) {\n throw new AsyncOptionsInfo('No results found')\n }\n\n return results\n }\n\n const response = await fetch(\n this.asyncOptionsUrl.replace('%search%', encodeURIComponent(filter))\n )\n const data = await response.json()\n const results = Array.from(\n this.asyncOptionsResultsField\n ? data[this.asyncOptionsResultsField]\n : data\n )\n\n if (results.length === 0) {\n throw new AsyncOptionsInfo('No results found')\n }\n\n const labelField = this.asyncOptionsLabelField || 'label'\n const valueField = this.asyncOptionsValueField || 'value'\n\n return results.map((result) => ({\n label: String(Object(result)[labelField]),\n value: Object(result)[valueField],\n }))\n },\n () => [this.filter]\n )\n }\n\n private show (options?: { focusLast?: boolean }) {\n if (this.open) {\n return\n }\n\n const filteredOptions = this.getFilteredOptions()\n\n if (filteredOptions.length === 0) {\n return\n }\n\n this.open = true\n this.activeIndex = options?.focusLast\n ? filteredOptions.length - 1\n : this.getInitialActiveIndex(filteredOptions)\n this.addOpenListeners()\n\n requestAnimationFrame(() => this.scrollActiveOptionIntoView())\n }\n\n private hide () {\n if (!this.open) {\n return\n }\n\n this.filter = ''\n this.open = false\n this.activeIndex = -1\n this.removeOpenListeners()\n this.updateDebouncedFilter.cancel()\n }\n\n private selectOption (option: ComboboxOptionData) {\n const previousValue = this.value\n\n this._selectedOption = option\n\n this.hide()\n this.controlTrait.setValue(option.value)\n this.controlElement?.focus({ preventScroll: true })\n this.dispatchEvent(new CustomEvent('change', { bubbles: true, composed: true, detail: { option } }))\n\n if (previousValue === this.value) {\n this.updateDisplayValue(option.label)\n }\n }\n\n private scrollActiveOptionIntoView () {\n if (this.activeIndex < 0) {\n return\n }\n\n this.shadowRoot\n ?.querySelector(`#${this.getOptionId(this.activeIndex)}`)\n ?.scrollIntoView({ block: 'nearest' })\n }\n\n private addOpenListeners () {\n if (this.openListenersAttached) {\n return\n }\n\n document.addEventListener('focusin', this.handleDocumentFocusIn)\n document.addEventListener('mousedown', this.handleDocumentMouseDown)\n\n const root = this.getRootNode()\n\n if (root !== document) {\n root.addEventListener('focusin', this.handleDocumentFocusIn)\n }\n\n this.openListenersAttached = true\n }\n\n private removeOpenListeners () {\n if (!this.openListenersAttached) {\n return\n }\n\n document.removeEventListener('focusin', this.handleDocumentFocusIn)\n document.removeEventListener('mousedown', this.handleDocumentMouseDown)\n\n const root = this.getRootNode()\n\n if (root !== document) {\n root.removeEventListener('focusin', this.handleDocumentFocusIn)\n }\n\n this.openListenersAttached = false\n }\n\n private handleDocumentFocusIn = (event: Event) => {\n const path = event.composedPath()\n\n if (!path.includes(this)) {\n this.hide()\n }\n }\n\n private handleDocumentMouseDown = (event: MouseEvent) => {\n const path = event.composedPath()\n\n if (!path.includes(this)) {\n this.hide()\n }\n }\n\n private onAnchorMouseDown (event: MouseEvent) {\n if (event.target === this.controlElement) {\n return\n }\n\n event.preventDefault()\n this.controlElement?.focus({ preventScroll: true })\n }\n\n private onInputFocus () {\n this.show()\n }\n\n private openPopupFromKey (focusLast: boolean) {\n if (!this.open) {\n this.show({ focusLast })\n }\n }\n\n private onInputKeyDown (event: KeyboardEvent) {\n const options = this.getFilteredOptions()\n\n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault()\n\n if (!this.open) {\n this.openPopupFromKey(false)\n } else {\n this.activeIndex = this.getNextIndex(this.activeIndex, options, 1)\n this.scrollActiveOptionIntoView()\n }\n break\n case 'ArrowUp':\n event.preventDefault()\n\n if (!this.open) {\n this.openPopupFromKey(true)\n } else {\n this.activeIndex = this.getNextIndex(this.activeIndex, options, -1)\n this.scrollActiveOptionIntoView()\n }\n break\n case 'Enter':\n if (this.open && this.activeIndex >= 0 && options[this.activeIndex]) {\n event.preventDefault()\n this.selectOption(options[this.activeIndex])\n } else if (!this.open) {\n event.preventDefault()\n this.controlTrait.onSubmit()\n }\n break\n case 'Escape':\n if (this.open) {\n event.preventDefault()\n event.stopPropagation()\n this.hide()\n this.controlElement?.focus({ preventScroll: true })\n }\n break\n case 'Tab':\n this.hide()\n break\n default:\n if (!this.open) {\n this.show()\n }\n }\n }\n\n private onListboxMouseDown (event: MouseEvent) {\n event.preventDefault()\n\n if (!(event.target instanceof HTMLElement)) {\n return\n }\n\n const optionElement = event.target.closest('[role=\"option\"]')\n\n if (!optionElement) {\n return\n }\n\n const optionId = optionElement.id\n const index = Number.parseInt(optionId.replace(`${this.listboxId}-option-`, ''), 10)\n const option = this.getFilteredOptions()[index]\n\n if (option) {\n this.selectOption(option)\n }\n }\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Combobox.esm.js","names":["customElement","FormControlComponent","Task","html","nothing","property","query","state","debounce","styles","AsyncOptionsInfo","Error","defineAsyncComboboxOptionsProvider","provider","_classDecs","_Combobox","_Combobox2","_A","WeakMap","_B","_C","_D","_E","_F","_G","_H","_I","_J","_K","_L","_M","_ref","_selectOnlyDecs","type","Boolean","reflect","attribute","_asyncOptionsUrlDecs","String","_asyncOptionsResultsFieldDecs","_asyncOptionsLabelFieldDecs","_asyncOptionsValueFieldDecs","_asyncOptionsProviderDecs","Function","_optionsFallbackDecs","Array","_controlElementDecs","_readonlyDecs","_filterDecs","_displayValueDecs","_openDecs","_activeIndexDecs","_Combobox3","Combobox","_classPrivateFieldGet","selectOnly","v","_classPrivateFieldSet","asyncOptionsUrl","asyncOptionsResultsField","asyncOptionsLabelField","asyncOptionsValueField","asyncOptionsProvider","optionsFallback","controlElement","readonly","filter","displayValue","open","activeIndex","constructor","_classPrivateFieldInitSpec","_initProto","_init_selectOnly","_init_asyncOptionsUrl","_init_asyncOptionsResultsField","_init_asyncOptionsLabelField","_init_asyncOptionsValueField","_init_asyncOptionsProvider","_init_optionsFallback","_init_controlElement","_init_readonly","_init_filter","_init_displayValue","_init_open","_init_activeIndex","_defineProperty","value","event","path","composedPath","includes","hide","listboxId","controlTrait","controlId","selectedOption","_selectedOption","disconnectedCallback","removeOpenListeners","willUpdate","changedProperties","has","updateAsyncOptionsTask","options","getFilteredOptions","option","find","selectable","optionLabel","label","updateDisplayValue","getInitialActiveIndex","undefined","render","activeOption","activeDescendant","getOptionId","accessibleName","placeholder","renderLabel","onAnchorMouseDown","name","labelId","required","onInputKeyDown","onInputFocus","onInput","onListboxMouseDown","map","index","setActiveIndex","template","asyncOptionsTask","initial","complete","pending","error","isError","message","Object","getOptionsFromDOM","toLowerCase","querySelectorAll","from","textContent","selectedIndex","findIndex","length","getNextIndex","currentIndex","direction","updateDebouncedFilter","results","response","fetch","replace","encodeURIComponent","data","json","labelField","valueField","result","show","filteredOptions","focusLast","addOpenListeners","requestAnimationFrame","scrollActiveOptionIntoView","cancel","selectOption","previousValue","setValue","focus","preventScroll","dispatchEvent","CustomEvent","bubbles","composed","detail","shadowRoot","querySelector","scrollIntoView","block","openListenersAttached","document","addEventListener","handleDocumentFocusIn","handleDocumentMouseDown","root","getRootNode","removeEventListener","target","preventDefault","openPopupFromKey","key","onSubmit","stopPropagation","HTMLElement","optionElement","closest","optionId","id","Number","parseInt","e","c","_initClass","_applyDecs","_Class","_identity","default"],"sources":["../../../src/components/combobox/Combobox.ts"],"sourcesContent":["import { customElement, FormControlComponent, FormControlValue } from '@/lib/components'\nimport { Task } from '@lit/task'\nimport { html, nothing, TemplateResult, type PropertyValues } from 'lit'\nimport { property, query, state } from 'lit/decorators.js'\nimport { debounce } from '@/lib/timing'\nimport type ComboboxOption from '@/components/combobox-option/ComboboxOption'\n\nimport '~icons/lucide/chevron-down'\nimport '~icons/svg-spinners/3-dots-fade'\nimport '@awesome.me/webawesome/dist/components/popup/popup.js'\n\nimport styles from './Combobox.styles.css'\n\nclass AsyncOptionsInfo extends Error {}\n\nexport type ComboboxOptionData = {\n value: FormControlValue;\n label: string;\n template?: TemplateResult;\n selectable?: boolean;\n}\n\nexport type ComboboxChangeEvent = CustomEvent<{ option: ComboboxOptionData }>\n\nexport type AsyncComboboxOptionsProvider = (query: string) => Promise<ComboboxOptionData[]>\n\nexport function defineAsyncComboboxOptionsProvider<T extends AsyncComboboxOptionsProvider> (provider: T): T {\n return provider\n}\n\n@customElement('solid-ui-combobox')\nexport default class Combobox extends FormControlComponent {\n static styles = styles\n\n @property({ type: Boolean, reflect: true, attribute: 'select-only' })\n accessor selectOnly = false\n\n @property({ type: String, attribute: 'async-options-url' })\n accessor asyncOptionsUrl = ''\n\n @property({ type: String, attribute: 'async-options-results-field' })\n accessor asyncOptionsResultsField = ''\n\n @property({ type: String, attribute: 'async-options-label-field' })\n accessor asyncOptionsLabelField = ''\n\n @property({ type: String, attribute: 'async-options-value-field' })\n accessor asyncOptionsValueField = ''\n\n @property({ type: Function })\n accessor asyncOptionsProvider: AsyncComboboxOptionsProvider | null = null\n\n @property({ type: Array })\n accessor optionsFallback: ComboboxOptionData[] | null = null\n\n @query('input')\n protected accessor controlElement: HTMLInputElement | null = null\n\n @property({ type: Boolean, reflect: true })\n accessor readonly = false\n\n @state()\n private accessor filter = ''\n\n @state()\n private accessor displayValue = ''\n\n @state()\n private accessor open = false\n\n @state()\n private accessor activeIndex = -1\n\n private openListenersAttached = false\n private updateDebouncedFilter = debounce(300, (value) => (this.filter = value))\n private asyncOptionsTask?: Task<readonly [string], ComboboxOptionData[]>\n private _selectedOption: ComboboxOptionData | undefined\n private readonly listboxId: string\n\n constructor () {\n super()\n\n this.listboxId = `listbox-${this.controlTrait.controlId}`\n }\n\n get selectedOption (): ComboboxOptionData | undefined {\n return this._selectedOption\n }\n\n disconnectedCallback () {\n super.disconnectedCallback()\n\n this.removeOpenListeners()\n }\n\n protected willUpdate (changedProperties: PropertyValues<this>) {\n super.willUpdate(changedProperties)\n\n if (changedProperties.has('asyncOptionsUrl') || changedProperties.has('asyncOptionsProvider')) {\n this.updateAsyncOptionsTask()\n }\n\n if (changedProperties.has('value')) {\n const options = this.getFilteredOptions()\n const option = options.find((option) => option.selectable !== false && option.value === this.value) ??\n this.optionsFallback?.find((option) => option.value === this.value)\n const optionLabel = option?.selectable !== false && option?.label\n\n this.updateDisplayValue(optionLabel || this.value)\n\n if (this.open) {\n this.activeIndex = this.getInitialActiveIndex(options)\n }\n\n if (this._selectedOption && this._selectedOption.value !== this.value) {\n this._selectedOption = undefined\n }\n }\n }\n\n protected render () {\n const options = this.getFilteredOptions()\n const activeOption =\n this.open && this.activeIndex >= 0 ? options[this.activeIndex] : undefined\n const activeDescendant =\n activeOption !== undefined ? this.getOptionId(this.activeIndex) : undefined\n const accessibleName = this.placeholder || 'Combobox'\n\n return html`\n ${this.controlTrait.renderLabel()}\n <wa-popup\n placement=\"bottom\"\n flip\n shift\n sync=\"width\"\n auto-size=\"vertical\"\n auto-size-padding=\"10\"\n ?active=${this.open}\n >\n <div class=\"input-wrapper\" slot=\"anchor\" @mousedown=${this.onAnchorMouseDown}>\n <input\n id=\"${this.controlTrait.controlId}\"\n type=\"text\"\n name=${this.name}\n placeholder=${this.placeholder}\n role=\"combobox\"\n aria-autocomplete=\"list\"\n aria-haspopup=\"listbox\"\n aria-expanded=${this.open ? 'true' : 'false'}\n aria-controls=${this.listboxId}\n aria-activedescendant=${activeDescendant ?? nothing}\n aria-labelledby=${this.label ? this.controlTrait.labelId : nothing}\n aria-label=${this.label ? nothing : accessibleName}\n aria-required=${this.required ? 'true' : nothing}\n autocomplete=\"off\"\n spellcheck=\"false\"\n ?required=${this.required}\n .value=${this.displayValue}\n @keydown=${this.onInputKeyDown}\n @focus=${this.onInputFocus}\n @input=${() => this.selectOnly ? this.updateDisplayValue(this.controlElement?.value ?? '') : this.controlTrait.onInput()}\n />\n <icon-lucide-chevron-down></icon-lucide-chevron-down>\n </div>\n <div\n id=${this.listboxId}\n class=\"listbox\"\n role=\"listbox\"\n aria-orientation=\"vertical\"\n aria-labelledby=${this.label ? this.controlTrait.labelId : nothing}\n aria-label=${this.label ? nothing : accessibleName}\n ?hidden=${!this.open}\n @mousedown=${this.onListboxMouseDown}\n >\n ${options.map((option, index) => {\n return option.selectable !== false\n ? html`<div\n id=${this.getOptionId(index)}\n role=\"option\"\n aria-selected=${option.value === this.value ? 'true' : 'false'}\n data-active=${index === this.activeIndex || nothing}\n @mousemove=${() => this.setActiveIndex(index)}\n >\n ${option.template ?? option.label}\n </div>`\n : html`<div class=\"non-selectable-option\">${option.template ?? option.label}</div>`\n })}\n </div>\n </wa-popup>\n `\n }\n\n private getFilteredOptions (): ComboboxOptionData[] {\n if (this.asyncOptionsTask) {\n return this.asyncOptionsTask.render({\n initial: () => this.optionsFallback ?? [],\n complete: (options) => options,\n pending: () => [\n {\n value: '',\n label: 'Loading...',\n template: html`<icon-svg-spinners-3-dots-fade></icon-svg-spinners-3-dots-fade>`,\n selectable: false\n } as const,\n ],\n error: (error) => {\n const isError = !(error instanceof AsyncOptionsInfo)\n const message = Object(error).message ?? 'Something went wrong'\n\n return [\n {\n value: '',\n label: message,\n template: html`<span class=\"message message--${isError ? 'error' : 'info'}\">${message}</span>`,\n selectable: false\n } as const,\n ]\n },\n })\n }\n\n return this.getOptionsFromDOM().filter((option) =>\n String(option.label).toLowerCase().includes(this.filter)\n )\n }\n\n private getOptionsFromDOM (): ComboboxOptionData[] {\n const options = this.querySelectorAll<ComboboxOption>(\n 'solid-ui-combobox-option'\n )\n\n return Array.from(options).map((option) => ({\n value: option.value,\n label: option.textContent ?? '',\n }))\n }\n\n private getOptionId (index: number): string {\n return `${this.listboxId}-option-${index}`\n }\n\n private getInitialActiveIndex (options: ComboboxOptionData[]): number {\n const selectedIndex = options.findIndex((option) => option.value === this.value)\n\n if (selectedIndex >= 0) {\n return selectedIndex\n }\n\n return options.length > 0 ? 0 : -1\n }\n\n private getNextIndex (\n currentIndex: number,\n options: ComboboxOptionData[],\n direction: 1 | -1\n ): number {\n if (options.length === 0) {\n return -1\n }\n\n return (currentIndex + direction + options.length) % options.length\n }\n\n private setActiveIndex (index: number) {\n this.activeIndex = index\n }\n\n private updateDisplayValue (value: unknown) {\n this.displayValue = value ? String(value) : ''\n\n if (this.open) {\n const filter = this.displayValue.toLowerCase()\n\n if (this.asyncOptionsTask) {\n this.updateDebouncedFilter(filter)\n } else {\n this.filter = filter\n }\n }\n }\n\n private updateAsyncOptionsTask () {\n if (!this.asyncOptionsUrl && !this.asyncOptionsProvider) {\n this.asyncOptionsTask = undefined\n\n return\n }\n\n this.asyncOptionsTask ??= new Task(\n this,\n async ([filter]) => {\n if (this.asyncOptionsProvider) {\n const results = await this.asyncOptionsProvider(filter)\n\n if (results.length === 0) {\n throw new AsyncOptionsInfo('No results found')\n }\n\n return results\n }\n\n const response = await fetch(\n this.asyncOptionsUrl.replace('%search%', encodeURIComponent(filter))\n )\n const data = await response.json()\n const results = Array.from(\n this.asyncOptionsResultsField\n ? data[this.asyncOptionsResultsField]\n : data\n )\n\n if (results.length === 0) {\n throw new AsyncOptionsInfo('No results found')\n }\n\n const labelField = this.asyncOptionsLabelField || 'label'\n const valueField = this.asyncOptionsValueField || 'value'\n\n return results.map((result) => ({\n label: String(Object(result)[labelField]),\n value: Object(result)[valueField],\n }))\n },\n () => [this.filter]\n )\n }\n\n private show (options?: { focusLast?: boolean }) {\n if (this.open) {\n return\n }\n\n const filteredOptions = this.getFilteredOptions()\n\n if (filteredOptions.length === 0) {\n return\n }\n\n this.open = true\n this.activeIndex = options?.focusLast\n ? filteredOptions.length - 1\n : this.getInitialActiveIndex(filteredOptions)\n this.addOpenListeners()\n\n requestAnimationFrame(() => this.scrollActiveOptionIntoView())\n }\n\n private hide () {\n if (!this.open) {\n return\n }\n\n this.filter = ''\n this.open = false\n this.activeIndex = -1\n this.removeOpenListeners()\n this.updateDebouncedFilter.cancel()\n }\n\n private selectOption (option: ComboboxOptionData) {\n const previousValue = this.value\n\n this._selectedOption = option\n\n this.hide()\n this.controlTrait.setValue(option.value)\n this.controlElement?.focus({ preventScroll: true })\n this.dispatchEvent(new CustomEvent('change', { bubbles: true, composed: true, detail: { option } }))\n\n if (previousValue === this.value) {\n this.updateDisplayValue(option.label)\n }\n }\n\n private scrollActiveOptionIntoView () {\n if (this.activeIndex < 0) {\n return\n }\n\n this.shadowRoot\n ?.querySelector(`#${this.getOptionId(this.activeIndex)}`)\n ?.scrollIntoView({ block: 'nearest' })\n }\n\n private addOpenListeners () {\n if (this.openListenersAttached) {\n return\n }\n\n document.addEventListener('focusin', this.handleDocumentFocusIn)\n document.addEventListener('mousedown', this.handleDocumentMouseDown)\n\n const root = this.getRootNode()\n\n if (root !== document) {\n root.addEventListener('focusin', this.handleDocumentFocusIn)\n }\n\n this.openListenersAttached = true\n }\n\n private removeOpenListeners () {\n if (!this.openListenersAttached) {\n return\n }\n\n document.removeEventListener('focusin', this.handleDocumentFocusIn)\n document.removeEventListener('mousedown', this.handleDocumentMouseDown)\n\n const root = this.getRootNode()\n\n if (root !== document) {\n root.removeEventListener('focusin', this.handleDocumentFocusIn)\n }\n\n this.openListenersAttached = false\n }\n\n private handleDocumentFocusIn = (event: Event) => {\n const path = event.composedPath()\n\n if (!path.includes(this)) {\n this.hide()\n }\n }\n\n private handleDocumentMouseDown = (event: MouseEvent) => {\n const path = event.composedPath()\n\n if (!path.includes(this)) {\n this.hide()\n }\n }\n\n private onAnchorMouseDown (event: MouseEvent) {\n if (event.target === this.controlElement) {\n return\n }\n\n event.preventDefault()\n this.controlElement?.focus({ preventScroll: true })\n }\n\n private onInputFocus () {\n this.show()\n }\n\n private openPopupFromKey (focusLast: boolean) {\n if (!this.open) {\n this.show({ focusLast })\n }\n }\n\n private onInputKeyDown (event: KeyboardEvent) {\n const options = this.getFilteredOptions()\n\n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault()\n\n if (!this.open) {\n this.openPopupFromKey(false)\n } else {\n this.activeIndex = this.getNextIndex(this.activeIndex, options, 1)\n this.scrollActiveOptionIntoView()\n }\n break\n case 'ArrowUp':\n event.preventDefault()\n\n if (!this.open) {\n this.openPopupFromKey(true)\n } else {\n this.activeIndex = this.getNextIndex(this.activeIndex, options, -1)\n this.scrollActiveOptionIntoView()\n }\n break\n case 'Enter':\n if (this.open && this.activeIndex >= 0 && options[this.activeIndex]) {\n event.preventDefault()\n this.selectOption(options[this.activeIndex])\n } else if (!this.open) {\n event.preventDefault()\n this.controlTrait.onSubmit()\n }\n break\n case 'Escape':\n if (this.open) {\n event.preventDefault()\n event.stopPropagation()\n this.hide()\n this.controlElement?.focus({ preventScroll: true })\n }\n break\n case 'Tab':\n this.hide()\n break\n default:\n if (!this.open) {\n this.show()\n }\n }\n }\n\n private onListboxMouseDown (event: MouseEvent) {\n event.preventDefault()\n\n if (!(event.target instanceof HTMLElement)) {\n return\n }\n\n const optionElement = event.target.closest('[role=\"option\"]')\n\n if (!optionElement) {\n return\n }\n\n const optionId = optionElement.id\n const index = Number.parseInt(optionId.replace(`${this.listboxId}-option-`, ''), 10)\n const option = this.getFilteredOptions()[index]\n\n if (option) {\n this.selectOption(option)\n }\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAaA,IAAMU,IAAN,cAA+BC,MAAM,CAAA;AAarC,SAAgBC,GAA4EC,GAAgB;CAC1G,OAAOA;AACT;AAACC,IAAA,CAEAd,EAAc,mBAAmB,CAAC;AAAA,IAAAe;AAAA,KAAAC,MAAAC,kBAAA,IAAAC,QAAA,GAAAC,kBAAA,IAAAD,QAAA,GAAAE,kBAAA,IAAAF,QAAA,GAAAG,kBAAA,IAAAH,QAAA,GAAAI,kBAAA,IAAAJ,QAAA,GAAAK,kBAAA,IAAAL,QAAA,GAAAM,kBAAA,IAAAN,QAAA,GAAAO,kBAAA,IAAAP,QAAA,GAAAQ,kBAAA,IAAAR,QAAA,GAAAS,kBAAA,IAAAT,QAAA,GAAAU,kBAAA,IAAAV,QAAA,GAAAW,kBAAA,IAAAX,QAAA,GAAAY,kBAAA,IAAAZ,QAAA,GAAAa,MAAAC,IAIhC3B,EAAS;CAAE4B,MAAMC;CAASC,SAAS;CAAMC,WAAW;AAAc,CAAC,GAACC,IAGpEhC,EAAS;CAAE4B,MAAMK;CAAQF,WAAW;AAAoB,CAAC,GAACG,KAG1DlC,EAAS;CAAE4B,MAAMK;CAAQF,WAAW;AAA8B,CAAC,GAACI,KAGpEnC,EAAS;CAAE4B,MAAMK;CAAQF,WAAW;AAA4B,CAAC,GAACK,KAGlEpC,EAAS;CAAE4B,MAAMK;CAAQF,WAAW;AAA4B,CAAC,GAACM,KAGlErC,EAAS,EAAE4B,MAAMU,SAAS,CAAC,GAACC,IAG5BvC,EAAS,EAAE4B,MAAMY,MAAM,CAAC,GAACC,IAGzBxC,EAAM,OAAO,GAACyC,IAGd1C,EAAS;CAAE4B,MAAMC;CAASC,SAAS;AAAK,CAAC,GAACa,IAG1CzC,EAAM,GAAC0C,IAGP1C,EAAM,GAAC2C,IAGP3C,EAAM,GAAC4C,IAGP5C,EAAM,GAAC,eAAA6C,IAxCV,cACsCnD,EAAqB;CAAA,KAAA8B,MAAA;EAAA,OAAAuB,EAAArC,GAAA,IAAA;CAAA;CAAA,IAIhDsC,WAAUC,GAAA;EAAAC,EAAAxC,GAAA,MAAAuC,CAAA;CAAA;CAAA,IAGVE,kBAAe;EAAA,OAAAJ,EAAAnC,GAAA,IAAA;CAAA;CAAA,IAAfuC,gBAAeF,GAAA;EAAAC,EAAAtC,GAAA,MAAAqC,CAAA;CAAA;CAAA,IAGfG,2BAAwB;EAAA,OAAAL,EAAAlC,GAAA,IAAA;CAAA;CAAA,IAAxBuC,yBAAwBH,GAAA;EAAAC,EAAArC,GAAA,MAAAoC,CAAA;CAAA;CAAA,IAGxBI,yBAAsB;EAAA,OAAAN,EAAAjC,GAAA,IAAA;CAAA;CAAA,IAAtBuC,uBAAsBJ,GAAA;EAAAC,EAAApC,GAAA,MAAAmC,CAAA;CAAA;CAAA,IAGtBK,yBAAsB;EAAA,OAAAP,EAAAhC,GAAA,IAAA;CAAA;CAAA,IAAtBuC,uBAAsBL,GAAA;EAAAC,EAAAnC,GAAA,MAAAkC,CAAA;CAAA;CAAA,IAGtBM,uBAAoB;EAAA,OAAAR,EAAA/B,GAAA,IAAA;CAAA;CAAA,IAApBuC,qBAAoBN,GAAA;EAAAC,EAAAlC,GAAA,MAAAiC,CAAA;CAAA;CAAA,IAGpBO,kBAAe;EAAA,OAAAT,EAAA9B,GAAA,IAAA;CAAA;CAAA,IAAfuC,gBAAeP,GAAA;EAAAC,EAAAjC,GAAA,MAAAgC,CAAA;CAAA;CAAA,IAGLQ,iBAAc;EAAA,OAAAV,EAAA7B,GAAA,IAAA;CAAA;CAAA,IAAduC,eAAcR,GAAA;EAAAC,EAAAhC,GAAA,MAAA+B,CAAA;CAAA;CAAA,IAGxBS,WAAQ;EAAA,OAAAX,EAAA5B,GAAA,IAAA;CAAA;CAAA,IAARuC,SAAQT,GAAA;EAAAC,EAAA/B,GAAA,MAAA8B,CAAA;CAAA;CAAA,IAGAU,SAAM;EAAA,OAAAZ,EAAA3B,GAAA,IAAA;CAAA;CAAA,IAANuC,OAAMV,GAAA;EAAAC,EAAA9B,GAAA,MAAA6B,CAAA;CAAA;CAAA,IAGNW,eAAY;EAAA,OAAAb,EAAA1B,GAAA,IAAA;CAAA;CAAA,IAAZuC,aAAYX,GAAA;EAAAC,EAAA7B,GAAA,MAAA4B,CAAA;CAAA;CAAA,IAGZY,OAAI;EAAA,OAAAd,EAAAzB,GAAA,IAAA;CAAA;CAAA,IAAJuC,KAAIZ,GAAA;EAAAC,EAAA5B,GAAA,MAAA2B,CAAA;CAAA;CAAA,IAGJa,cAAW;EAAA,OAAAf,EAAAxB,GAAA,IAAA;CAAA;CAAA,IAAXuC,YAAWb,GAAA;EAAAC,EAAA3B,GAAA,MAAA0B,CAAA;CAAA;CAQ5Bc,cAAe;EAGb,AAFA,MAAM,GAACC,EAAA,MAAAtD,IAAAuD,EAAA,IAAA,GAAAC,EAAA,MA7Ca,EAAK,EAAA,GAAAF,EAAA,MAAApD,GAAAuD,EAAA,MAGA,EAAE,CAAA,GAAAH,EAAA,MAAAnD,GAAAuD,GAAA,MAGO,EAAE,CAAA,GAAAJ,EAAA,MAAAlD,GAAAuD,GAAA,MAGJ,EAAE,CAAA,GAAAL,EAAA,MAAAjD,GAAAuD,GAAA,MAGF,EAAE,CAAA,GAAAN,EAAA,MAAAhD,GAAAuD,EAAA,MAGiC,IAAI,CAAA,GAAAP,EAAA,MAAA/C,GAAAuD,EAAA,MAGjB,IAAI,CAAA,GAAAR,EAAA,MAAA9C,GAAAuD,EAAA,MAGC,IAAI,CAAA,GAAAT,EAAA,MAAA7C,GAAAuD,EAAA,MAG7C,EAAK,CAAA,GAAAV,EAAA,MAAA5C,GAAAuD,EAAA,MAGC,EAAE,CAAA,GAAAX,EAAA,MAAA3C,GAAAuD,EAAA,MAGI,EAAE,CAAA,GAAAZ,EAAA,MAAA1C,GAAAuD,EAAA,MAGV,EAAK,CAAA,GAAAb,EAAA,MAAAzC,GAAAuD,EAAA,MAGE,EAAE,CAAA,GAAAC,EAAA,MAAA,yBAED,EAAK,GAAAA,EAAA,MAAA,yBACL9E,EAAS,MAAM+E,MAAW,KAAKrB,SAASqB,CAAM,CAAC,GAAAD,EAAA,MAAA,oBAAA,KAAA,CAAA,GAAAA,EAAA,MAAA,mBAAA,KAAA,CAAA,GAAAA,EAAA,MAAA,aAAA,KAAA,CAAA,GAAAA,EAAA,MAAA,0BAwV9CE,MAAiB;GAGhD,AAFaA,EAAME,aAEdD,CAAAA,CAAKE,SAAS,IAAI,KACrB,KAAKC,KAAK;EAEd,CAAC,GAAAN,EAAA,MAAA,4BAEkCE,MAAsB;GAGvD,AAFaA,EAAME,aAEdD,CAAAA,CAAKE,SAAS,IAAI,KACrB,KAAKC,KAAK;EAEd,CAAC,GA9VC,KAAKC,YAAY,WAAW,KAAKC,aAAaC;CAChD;CAEA,IAAIC,iBAAkD;EACpD,OAAO,KAAKC;CACd;CAEAC,uBAAwB;EAGtB,AAFA,MAAMA,qBAAqB,GAE3B,KAAKC,oBAAoB;CAC3B;CAEUC,WAAYC,GAAyC;EAO7D,IANA,MAAMD,WAAWC,CAAiB,IAE9BA,EAAkBC,IAAI,iBAAiB,KAAKD,EAAkBC,IAAI,sBAAsB,MAC1F,KAAKC,uBAAuB,GAG1BF,EAAkBC,IAAI,OAAO,GAAG;GAClC,IAAME,IAAU,KAAKC,mBAAmB,GAClCC,IAASF,EAAQG,MAAMD,MAAWA,EAAOE,eAAe,MAASF,EAAOnB,UAAU,KAAKA,KAAK,KAChG,KAAKxB,iBAAiB4C,MAAMD,MAAWA,EAAOnB,UAAU,KAAKA,KAAK,GAC9DsB,IAAcH,GAAQE,eAAe,MAASF,GAAQI;GAQ5D,AANA,KAAKC,mBAAmBF,KAAe,KAAKtB,KAAK,GAE7C,KAAKnB,SACP,KAAKC,cAAc,KAAK2C,sBAAsBR,CAAO,IAGnD,KAAKP,mBAAmB,KAAKA,gBAAgBV,UAAU,KAAKA,UAC9D,KAAKU,kBAAkBgB,KAAAA;EAE3B;CACF;CAEUC,SAAU;EAClB,IAAMV,IAAU,KAAKC,mBAAmB,GAGlCW,KADJ,KAAKhD,QAAQ,KAAKC,eAAe,IAAImC,EAAQ,KAAKnC,eAAe4C,KAAAA,OAEhDA,KAAAA,IAAiDA,KAAAA,IAArC,KAAKI,YAAY,KAAKhD,WAAW,GAC1DiD,IAAiB,KAAKC,eAAe;EAE3C,OAAOpH,CAAI;QACP,KAAK2F,aAAa0B,YAAY,EAAC;;;;;;;;kBAQrB,KAAKpD,KAAI;;8DAEmC,KAAKqD,kBAAiB;;kBAElE,KAAK3B,aAAaC,UAAS;;mBAE1B,KAAK2B,KAAI;0BACF,KAAKH,YAAW;;;;4BAId,KAAKnD,OAAO,SAAS,QAAO;4BAC5B,KAAKyB,UAAS;oCACNuB,KAAoBhH,EAAO;8BACjC,KAAK0G,QAAQ,KAAKhB,aAAa6B,UAAUvH,EAAO;yBACrD,KAAK0G,QAAQ1G,IAAUkH,EAAc;4BAClC,KAAKM,WAAW,SAASxH,EAAO;;;wBAGpC,KAAKwH,SAAQ;qBAChB,KAAKzD,aAAY;uBACf,KAAK0D,eAAc;qBACrB,KAAKC,aAAY;2BACX,KAAKvE,aAAa,KAAKwD,mBAAmB,KAAK/C,gBAAgBuB,SAAS,EAAE,IAAI,KAAKO,aAAaiC,QAAQ,EAAC;;;;;eAKrH,KAAKlC,UAAS;;;;4BAID,KAAKiB,QAAQ,KAAKhB,aAAa6B,UAAUvH,EAAO;uBACrD,KAAK0G,QAAQ1G,IAAUkH,EAAc;oBACxC,CAAC,KAAKlD,KAAI;uBACP,KAAK4D,mBAAkB;;YAElCxB,EAAQyB,KAAKvB,GAAQwB,MACdxB,EAAOE,eAAe,KAUzBzG,CAAI,sCAAsCuG,EAAO0B,YAAY1B,EAAOI,MAAK,UATzE3G,CAAI;uBACG,KAAKkH,YAAYa,CAAK,EAAC;;kCAEZxB,EAAOnB,UAAU,KAAKA,QAAQ,SAAS,QAAO;gCAChD2C,MAAU,KAAK7D,eAAejE,EAAO;qCAChC,KAAK+H,eAAeD,CAAK,EAAC;;oBAE3CxB,EAAO0B,YAAY1B,EAAOI,MAAK;uBAGxC,EAAC;;;;CAIV;CAEQL,qBAA4C;EA6BlD,OA5BI,KAAK4B,mBACA,KAAKA,iBAAiBnB,OAAO;GAClCoB,eAAe,KAAKvE,mBAAmB,CAAA;GACvCwE,WAAW/B,MAAYA;GACvBgC,eAAe,CACb;IACEjD,OAAO;IACPuB,OAAO;IACPsB,UAAUjI,CAAI;IACdyG,YAAY;GACd,CAAC;GAEH6B,QAAQA,MAAU;IAChB,IAAMC,IAAU,EAAED,aAAiB/H,IAC7BiI,IAAUC,OAAOH,CAAK,CAAC,CAACE,WAAW;IAEzC,OAAO,CACL;KACEpD,OAAO;KACPuB,OAAO6B;KACPP,UAAUjI,CAAI,iCAAiCuI,IAAU,UAAU,OAAM,IAAKC,EAAO;KACrF/B,YAAY;IACd,CAAC;GAEL;EACF,CAAC,IAGI,KAAKiC,kBAAkB,CAAC,CAAC3E,QAAQwC,MACtCpE,OAAOoE,EAAOI,KAAK,CAAC,CAACgC,YAAY,CAAC,CAACnD,SAAS,KAAKzB,MAAM,CACzD;CACF;CAEQ2E,oBAA2C;EACjD,IAAMrC,IAAU,KAAKuC,iBACnB,0BACF;EAEA,OAAOlG,MAAMmG,KAAKxC,CAAO,CAAC,CAACyB,KAAKvB,OAAY;GAC1CnB,OAAOmB,EAAOnB;GACduB,OAAOJ,EAAOuC,eAAe;EAC/B,EAAE;CACJ;CAEQ5B,YAAaa,GAAuB;EAC1C,OAAO,GAAG,KAAKrC,UAAS,UAAWqC;CACrC;CAEQlB,sBAAuBR,GAAuC;EACpE,IAAM0C,IAAgB1C,EAAQ2C,WAAWzC,MAAWA,EAAOnB,UAAU,KAAKA,KAAK;EAM/E,OAJI2D,KAAiB,IACZA,IAGF1C,EAAQ4C,SAAS,IAAI,IAAI;CAClC;CAEQC,aACNC,GACA9C,GACA+C,GACQ;EAKR,OAJI/C,EAAQ4C,WAAW,IACd,MAGDE,IAAeC,IAAY/C,EAAQ4C,UAAU5C,EAAQ4C;CAC/D;CAEQjB,eAAgBD,GAAe;EACrC,KAAK7D,cAAc6D;CACrB;CAEQnB,mBAAoBxB,GAAgB;EAG1C,IAFA,KAAKpB,eAAeoB,IAAQjD,OAAOiD,CAAK,IAAI,IAExC,KAAKnB,MAAM;GACb,IAAMF,IAAS,KAAKC,aAAa2E,YAAY;GAE7C,AAAI,KAAKT,mBACP,KAAKmB,sBAAsBtF,CAAM,IAEjC,KAAKA,SAASA;EAElB;CACF;CAEQqC,yBAA0B;EAChC,IAAI,CAAC,KAAK7C,mBAAmB,CAAC,KAAKI,sBAAsB;GACvD,KAAKuE,mBAAmBpB,KAAAA;GAExB;EACF;EAEA,KAAKoB,qBAAqB,IAAInI,EAC5B,MACA,OAAO,CAACgE,OAAY;GAClB,IAAI,KAAKJ,sBAAsB;IAC7B,IAAM2F,IAAU,MAAM,KAAK3F,qBAAqBI,CAAM;IAEtD,IAAIuF,EAAQL,WAAW,GACrB,MAAM,IAAI1I,EAAiB,kBAAkB;IAG/C,OAAO+I;GACT;GAKA,IAAMK,IAAO,OAAMJ,MAHIC,MACrB,KAAKjG,gBAAgBkG,QAAQ,YAAYC,mBAAmB3F,CAAM,CAAC,CACrE,EAAA,CAC4B6F,KAAK,GAC3BN,IAAU5G,MAAMmG,KACpB,KAAKrF,2BACDmG,EAAK,KAAKnG,4BACVmG,CACN;GAEA,IAAIL,EAAQL,WAAW,GACrB,MAAM,IAAI1I,EAAiB,kBAAkB;GAG/C,IAAMsJ,IAAa,KAAKpG,0BAA0B,SAC5CqG,IAAa,KAAKpG,0BAA0B;GAElD,OAAO4F,EAAQxB,KAAKiC,OAAY;IAC9BpD,OAAOxE,OAAOsG,OAAOsB,CAAM,CAAC,CAACF,EAAW;IACxCzE,OAAOqD,OAAOsB,CAAM,CAAC,CAACD;GACxB,EAAE;EACJ,SACM,CAAC,KAAK/F,MAAM,CACpB;CACF;CAEQiG,KAAM3D,GAAmC;EAC/C,IAAI,KAAKpC,MACP;EAGF,IAAMgG,IAAkB,KAAK3D,mBAAmB;EAE5C2D,EAAgBhB,WAAW,MAI/B,KAAKhF,OAAO,IACZ,KAAKC,cAAcmC,GAAS6D,YACxBD,EAAgBhB,SAAS,IACzB,KAAKpC,sBAAsBoD,CAAe,GAC9C,KAAKE,iBAAiB,GAEtBC,4BAA4B,KAAKC,2BAA2B,CAAC;CAC/D;CAEQ5E,OAAQ;EACT,KAAKxB,SAIV,KAAKF,SAAS,IACd,KAAKE,OAAO,IACZ,KAAKC,cAAc,IACnB,KAAK8B,oBAAoB,GACzB,KAAKqD,sBAAsBiB,OAAO;CACpC;CAEQC,aAAchE,GAA4B;EAChD,IAAMiE,IAAgB,KAAKpF;EAS3B,AAPA,KAAKU,kBAAkBS,GAEvB,KAAKd,KAAK,GACV,KAAKE,aAAa8E,SAASlE,EAAOnB,KAAK,GACvC,KAAKvB,gBAAgB6G,MAAM,EAAEC,eAAe,GAAK,CAAC,GAClD,KAAKC,cAAc,IAAIC,YAAY,UAAU;GAAEC,SAAS;GAAMC,UAAU;GAAMC,QAAQ,EAAEzE,UAAO;EAAE,CAAC,CAAC,GAE/FiE,MAAkB,KAAKpF,SACzB,KAAKwB,mBAAmBL,EAAOI,KAAK;CAExC;CAEQ0D,6BAA8B;EAChC,KAAKnG,cAAc,KAIvB,KAAK+G,YACDC,cAAc,IAAI,KAAKhE,YAAY,KAAKhD,WAAW,GAAG,CAAC,EACvDiH,eAAe,EAAEC,OAAO,UAAU,CAAC;CACzC;CAEQjB,mBAAoB;EAC1B,IAAI,KAAKkB,uBACP;EAIFC,AADAA,SAASC,iBAAiB,WAAW,KAAKC,qBAAqB,GAC/DF,SAASC,iBAAiB,aAAa,KAAKE,uBAAuB;EAEnE,IAAMC,IAAO,KAAKC,YAAY;EAM9B,AAJID,MAASJ,YACXI,EAAKH,iBAAiB,WAAW,KAAKC,qBAAqB,GAG7D,KAAKH,wBAAwB;CAC/B;CAEQrF,sBAAuB;EAC7B,IAAI,CAAC,KAAKqF,uBACR;EAIFC,AADAA,SAASM,oBAAoB,WAAW,KAAKJ,qBAAqB,GAClEF,SAASM,oBAAoB,aAAa,KAAKH,uBAAuB;EAEtE,IAAMC,IAAO,KAAKC,YAAY;EAM9B,AAJID,MAASJ,YACXI,EAAKE,oBAAoB,WAAW,KAAKJ,qBAAqB,GAGhE,KAAKH,wBAAwB;CAC/B;CAkBQ/D,kBAAmBjC,GAAmB;EACxCA,EAAMwG,WAAW,KAAKhI,mBAI1BwB,EAAMyG,eAAe,GACrB,KAAKjI,gBAAgB6G,MAAM,EAAEC,eAAe,GAAK,CAAC;CACpD;CAEQhD,eAAgB;EACtB,KAAKqC,KAAK;CACZ;CAEQ+B,iBAAkB7B,GAAoB;EAC5C,AAAK,KAAKjG,QACR,KAAK+F,KAAK,EAAEE,aAAU,CAAC;CAE3B;CAEQxC,eAAgBrC,GAAsB;EAC5C,IAAMgB,IAAU,KAAKC,mBAAmB;EAExC,QAAQjB,EAAM2G,KAAd;GACE,KAAK;IAGH,AAFA3G,EAAMyG,eAAe,GAEhB,KAAK7H,QAGR,KAAKC,cAAc,KAAKgF,aAAa,KAAKhF,aAAamC,GAAS,CAAC,GACjE,KAAKgE,2BAA2B,KAHhC,KAAK0B,iBAAiB,EAAK;IAK7B;GACF,KAAK;IAGH,AAFA1G,EAAMyG,eAAe,GAEhB,KAAK7H,QAGR,KAAKC,cAAc,KAAKgF,aAAa,KAAKhF,aAAamC,GAAS,EAAE,GAClE,KAAKgE,2BAA2B,KAHhC,KAAK0B,iBAAiB,EAAI;IAK5B;GACF,KAAK;IACH,AAAI,KAAK9H,QAAQ,KAAKC,eAAe,KAAKmC,EAAQ,KAAKnC,gBACrDmB,EAAMyG,eAAe,GACrB,KAAKvB,aAAalE,EAAQ,KAAKnC,YAAY,KACjC,KAAKD,SACfoB,EAAMyG,eAAe,GACrB,KAAKnG,aAAasG,SAAS;IAE7B;GACF,KAAK;IACH,AAAI,KAAKhI,SACPoB,EAAMyG,eAAe,GACrBzG,EAAM6G,gBAAgB,GACtB,KAAKzG,KAAK,GACV,KAAK5B,gBAAgB6G,MAAM,EAAEC,eAAe,GAAK,CAAC;IAEpD;GACF,KAAK;IACH,KAAKlF,KAAK;IACV;GACF,SACE,AAAK,KAAKxB,QACR,KAAK+F,KAAK;EAEhB;CACF;CAEQnC,mBAAoBxC,GAAmB;EAG7C,IAFAA,EAAMyG,eAAe,GAEjB,EAAEzG,EAAMwG,kBAAkBM,cAC5B;EAGF,IAAMC,IAAgB/G,EAAMwG,OAAOQ,QAAQ,mBAAiB;EAE5D,IAAI,CAACD,GACH;EAGF,IAAME,IAAWF,EAAcG,IACzBxE,IAAQyE,OAAOC,SAASH,EAAS7C,QAAQ,GAAG,KAAK/D,UAAS,WAAY,EAAE,GAAG,EAAE,GAC7Ea,IAAS,KAAKD,mBAAmB,CAAC,CAACyB;EAEzC,AAAIxB,KACF,KAAKgE,aAAahE,CAAM;CAE5B;AACF,GAAC,CAAAmG,GAAA,CAAApI,GAAAC,GAAAC,IAAAC,IAAAC,IAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAb,IAAAsI,GAAA,CAAA/L,GAAAgM,MAAAC,GAAA5J,GAAA;CAAA;EAAApB;EAAA;EAAA;CAAA;CAAA;EAAAK;EAAA;EAAA;CAAA;CAAA;EAAAE;EAAA;EAAA;CAAA;CAAA;EAAAC;EAAA;EAAA;CAAA;CAAA;EAAAC;EAAA;EAAA;CAAA;CAAA;EAAAC;EAAA;EAAA;CAAA;CAAA;EAAAE;EAAA;EAAA;CAAA;CAAA;EAAAE;EAAA;EAAA;CAAA;CAAA;EAAAC;EAAA;EAAA;CAAA;CAAA;EAAAC;EAAA;EAAA;CAAA;CAAA;EAAAC;EAAA;EAAA;CAAA;CAAA;EAAAC;EAAA;EAAA;CAAA;CAAA;EAAAC;EAAA;EAAA;CAAA;AAAA,GAAArC,GAAA,GAAA,KAAA,GA9eqCb,CAAoB,GAAAmD,IAAA6J,IAAA,cAAAC,GAAA;CAAA5I,cAAA;EAAA,MAAAvD,CAAA,GAAAuE,EAAA,MAAA,UACxC7E,CAAM,GAAAsM,EAAA;CAAA;AAAA,GAAAzH,EAAA2H,GAAAjM,IAAA,KAAA,CAAA,GAAAiM,GAAA"}
|
|
1
|
+
{"version":3,"file":"Combobox.esm.js","names":["customElement","FormControlComponent","Task","html","nothing","property","query","state","debounce","styles","AsyncOptionsInfo","Error","defineAsyncComboboxOptionsProvider","provider","_classDecs","_Combobox","_Combobox2","_A","WeakMap","_B","_C","_D","_E","_F","_G","_H","_I","_J","_K","_L","_M","_ref","_selectOnlyDecs","type","Boolean","reflect","attribute","_asyncOptionsUrlDecs","String","_asyncOptionsResultsFieldDecs","_asyncOptionsLabelFieldDecs","_asyncOptionsValueFieldDecs","_asyncOptionsProviderDecs","Function","_optionsFallbackDecs","Array","_controlElementDecs","_readonlyDecs","_filterDecs","_displayValueDecs","_openDecs","_activeIndexDecs","_Combobox3","Combobox","_classPrivateFieldGet","selectOnly","v","_classPrivateFieldSet","asyncOptionsUrl","asyncOptionsResultsField","asyncOptionsLabelField","asyncOptionsValueField","asyncOptionsProvider","optionsFallback","controlElement","readonly","filter","displayValue","open","activeIndex","constructor","_classPrivateFieldInitSpec","_initProto","_init_selectOnly","_init_asyncOptionsUrl","_init_asyncOptionsResultsField","_init_asyncOptionsLabelField","_init_asyncOptionsValueField","_init_asyncOptionsProvider","_init_optionsFallback","_init_controlElement","_init_readonly","_init_filter","_init_displayValue","_init_open","_init_activeIndex","_defineProperty","value","event","path","composedPath","includes","hide","listboxId","controlTrait","controlId","selectedOption","_selectedOption","disconnectedCallback","removeOpenListeners","willUpdate","changedProperties","has","updateAsyncOptionsTask","options","getFilteredOptions","option","find","selectable","optionLabel","label","updateDisplayValue","getInitialActiveIndex","undefined","render","activeOption","activeDescendant","getOptionId","accessibleName","placeholder","renderLabel","onAnchorMouseDown","name","labelId","required","onInputKeyDown","onInputFocus","onInput","onListboxMouseDown","map","index","setActiveIndex","template","asyncOptionsTask","initial","complete","pending","error","isError","message","Object","getOptionsFromDOM","toLowerCase","querySelectorAll","from","textContent","selectedIndex","findIndex","length","getNextIndex","currentIndex","direction","updateDebouncedFilter","results","response","fetch","replace","encodeURIComponent","data","json","labelField","valueField","result","show","filteredOptions","focusLast","addOpenListeners","requestAnimationFrame","scrollActiveOptionIntoView","cancel","selectOption","previousValue","setValue","focus","preventScroll","dispatchEvent","CustomEvent","bubbles","composed","detail","shadowRoot","querySelector","scrollIntoView","block","openListenersAttached","document","addEventListener","handleDocumentFocusIn","handleDocumentMouseDown","root","getRootNode","removeEventListener","target","preventDefault","openPopupFromKey","key","onSubmit","stopPropagation","HTMLElement","optionElement","closest","optionId","id","Number","parseInt","e","c","_initClass","_applyDecs","_Class","_identity","default","styles","FormControlComponent","Combobox_styles_default","_Class","_Combobox3","_A","_B","_C","_D","_E","_F","_G","_H","_I","_J","_K","_L","_M","_initProto","_initClass","_classDecs","_selectOnlyDecs","_init_selectOnly","_asyncOptionsUrlDecs","_init_asyncOptionsUrl","_asyncOptionsResultsFieldDecs","_init_asyncOptionsResultsField","_asyncOptionsLabelFieldDecs","_init_asyncOptionsLabelField","_asyncOptionsValueFieldDecs","_init_asyncOptionsValueField","_asyncOptionsProviderDecs","_init_asyncOptionsProvider","_optionsFallbackDecs","_init_optionsFallback","_controlElementDecs","_init_controlElement","_readonlyDecs","_init_readonly","_filterDecs","_init_filter","_displayValueDecs","_init_displayValue","_openDecs","_init_open","_activeIndexDecs","_init_activeIndex","_Combobox2","_ref","_classPrivateFieldInitSpec","a","_checkPrivateRedeclaration","_classPrivateFieldSet","s","_assertClassBrand","r","_classPrivateFieldGet","_defineProperty","_toPropertyKey","t","_applyDecs","i","n","o","c","applyDec","m","h","y","v","g","b","u","w","S","A","d","p","_setFunctionName","P","j","D","I","F","l","f","N","_checkInRHS","_toPrimitive","e","_identity","AsyncOptionsInfo","defineAsyncComboboxOptionsProvider","provider","customElement","_Combobox","property","query","state","debounce","value","event","changedProperties","options","option","optionLabel","activeDescendant","accessibleName","nothing","index","isError","error","message","selectedIndex","currentIndex","direction","filter","Task","results","data","labelField","valueField","result","filteredOptions","previousValue","root","optionElement","optionId"],"sources":["../../../src/components/combobox/Combobox.ts"],"sourcesContent":["import { customElement, FormControlComponent, FormControlValue } from '@/lib/components'\nimport { Task } from '@lit/task'\nimport { html, nothing, TemplateResult, type PropertyValues } from 'lit'\nimport { property, query, state } from 'lit/decorators.js'\nimport { debounce } from '@/lib/timing'\nimport type ComboboxOption from '@/components/combobox-option/ComboboxOption'\n\nimport '~icons/lucide/chevron-down'\nimport '~icons/svg-spinners/3-dots-fade'\nimport '@awesome.me/webawesome/dist/components/popup/popup.js'\n\nimport styles from './Combobox.styles.css'\n\nclass AsyncOptionsInfo extends Error {}\n\nexport type ComboboxOptionData = {\n value: FormControlValue;\n label: string;\n template?: TemplateResult;\n selectable?: boolean;\n}\n\nexport type ComboboxChangeEvent = CustomEvent<{ option: ComboboxOptionData }>\n\nexport type AsyncComboboxOptionsProvider = (query: string) => Promise<ComboboxOptionData[]>\n\nexport function defineAsyncComboboxOptionsProvider<T extends AsyncComboboxOptionsProvider> (provider: T): T {\n return provider\n}\n\n@customElement('solid-ui-combobox')\nexport default class Combobox extends FormControlComponent {\n static styles = styles\n\n @property({ type: Boolean, reflect: true, attribute: 'select-only' })\n accessor selectOnly = false\n\n @property({ type: String, attribute: 'async-options-url' })\n accessor asyncOptionsUrl = ''\n\n @property({ type: String, attribute: 'async-options-results-field' })\n accessor asyncOptionsResultsField = ''\n\n @property({ type: String, attribute: 'async-options-label-field' })\n accessor asyncOptionsLabelField = ''\n\n @property({ type: String, attribute: 'async-options-value-field' })\n accessor asyncOptionsValueField = ''\n\n @property({ type: Function })\n accessor asyncOptionsProvider: AsyncComboboxOptionsProvider | null = null\n\n @property({ type: Array })\n accessor optionsFallback: ComboboxOptionData[] | null = null\n\n @query('input')\n protected accessor controlElement: HTMLInputElement | null = null\n\n @property({ type: Boolean, reflect: true })\n accessor readonly = false\n\n @state()\n private accessor filter = ''\n\n @state()\n private accessor displayValue = ''\n\n @state()\n private accessor open = false\n\n @state()\n private accessor activeIndex = -1\n\n private openListenersAttached = false\n private updateDebouncedFilter = debounce(300, (value) => (this.filter = value))\n private asyncOptionsTask?: Task<readonly [string], ComboboxOptionData[]>\n private _selectedOption: ComboboxOptionData | undefined\n private readonly listboxId: string\n\n constructor () {\n super()\n\n this.listboxId = `listbox-${this.controlTrait.controlId}`\n }\n\n get selectedOption (): ComboboxOptionData | undefined {\n return this._selectedOption\n }\n\n disconnectedCallback () {\n super.disconnectedCallback()\n\n this.removeOpenListeners()\n }\n\n protected willUpdate (changedProperties: PropertyValues<this>) {\n super.willUpdate(changedProperties)\n\n if (changedProperties.has('asyncOptionsUrl') || changedProperties.has('asyncOptionsProvider')) {\n this.updateAsyncOptionsTask()\n }\n\n if (changedProperties.has('value')) {\n const options = this.getFilteredOptions()\n const option = options.find((option) => option.selectable !== false && option.value === this.value) ??\n this.optionsFallback?.find((option) => option.value === this.value)\n const optionLabel = option?.selectable !== false && option?.label\n\n this.updateDisplayValue(optionLabel || this.value)\n\n if (this.open) {\n this.activeIndex = this.getInitialActiveIndex(options)\n }\n\n if (this._selectedOption && this._selectedOption.value !== this.value) {\n this._selectedOption = undefined\n }\n }\n }\n\n protected render () {\n const options = this.getFilteredOptions()\n const activeOption =\n this.open && this.activeIndex >= 0 ? options[this.activeIndex] : undefined\n const activeDescendant =\n activeOption !== undefined ? this.getOptionId(this.activeIndex) : undefined\n const accessibleName = this.placeholder || 'Combobox'\n\n return html`\n ${this.controlTrait.renderLabel()}\n <wa-popup\n placement=\"bottom\"\n flip\n shift\n sync=\"width\"\n auto-size=\"vertical\"\n auto-size-padding=\"10\"\n ?active=${this.open}\n >\n <div class=\"input-wrapper\" slot=\"anchor\" @mousedown=${this.onAnchorMouseDown}>\n <input\n id=\"${this.controlTrait.controlId}\"\n type=\"text\"\n name=${this.name}\n placeholder=${this.placeholder}\n role=\"combobox\"\n aria-autocomplete=\"list\"\n aria-haspopup=\"listbox\"\n aria-expanded=${this.open ? 'true' : 'false'}\n aria-controls=${this.listboxId}\n aria-activedescendant=${activeDescendant ?? nothing}\n aria-labelledby=${this.label ? this.controlTrait.labelId : nothing}\n aria-label=${this.label ? nothing : accessibleName}\n aria-required=${this.required ? 'true' : nothing}\n autocomplete=\"off\"\n spellcheck=\"false\"\n ?required=${this.required}\n .value=${this.displayValue}\n @keydown=${this.onInputKeyDown}\n @focus=${this.onInputFocus}\n @input=${() => this.selectOnly ? this.updateDisplayValue(this.controlElement?.value ?? '') : this.controlTrait.onInput()}\n />\n <icon-lucide-chevron-down></icon-lucide-chevron-down>\n </div>\n <div\n id=${this.listboxId}\n class=\"listbox\"\n role=\"listbox\"\n aria-orientation=\"vertical\"\n aria-labelledby=${this.label ? this.controlTrait.labelId : nothing}\n aria-label=${this.label ? nothing : accessibleName}\n ?hidden=${!this.open}\n @mousedown=${this.onListboxMouseDown}\n >\n ${options.map((option, index) => {\n return option.selectable !== false\n ? html`<div\n id=${this.getOptionId(index)}\n role=\"option\"\n aria-selected=${option.value === this.value ? 'true' : 'false'}\n data-active=${index === this.activeIndex || nothing}\n @mousemove=${() => this.setActiveIndex(index)}\n >\n ${option.template ?? option.label}\n </div>`\n : html`<div class=\"non-selectable-option\">${option.template ?? option.label}</div>`\n })}\n </div>\n </wa-popup>\n `\n }\n\n private getFilteredOptions (): ComboboxOptionData[] {\n if (this.asyncOptionsTask) {\n return this.asyncOptionsTask.render({\n initial: () => this.optionsFallback ?? [],\n complete: (options) => options,\n pending: () => [\n {\n value: '',\n label: 'Loading...',\n template: html`<icon-svg-spinners-3-dots-fade></icon-svg-spinners-3-dots-fade>`,\n selectable: false\n } as const,\n ],\n error: (error) => {\n const isError = !(error instanceof AsyncOptionsInfo)\n const message = Object(error).message ?? 'Something went wrong'\n\n return [\n {\n value: '',\n label: message,\n template: html`<span class=\"message message--${isError ? 'error' : 'info'}\">${message}</span>`,\n selectable: false\n } as const,\n ]\n },\n })\n }\n\n return this.getOptionsFromDOM().filter((option) =>\n String(option.label).toLowerCase().includes(this.filter)\n )\n }\n\n private getOptionsFromDOM (): ComboboxOptionData[] {\n const options = this.querySelectorAll<ComboboxOption>(\n 'solid-ui-combobox-option'\n )\n\n return Array.from(options).map((option) => ({\n value: option.value,\n label: option.textContent ?? '',\n }))\n }\n\n private getOptionId (index: number): string {\n return `${this.listboxId}-option-${index}`\n }\n\n private getInitialActiveIndex (options: ComboboxOptionData[]): number {\n const selectedIndex = options.findIndex((option) => option.value === this.value)\n\n if (selectedIndex >= 0) {\n return selectedIndex\n }\n\n return options.length > 0 ? 0 : -1\n }\n\n private getNextIndex (\n currentIndex: number,\n options: ComboboxOptionData[],\n direction: 1 | -1\n ): number {\n if (options.length === 0) {\n return -1\n }\n\n return (currentIndex + direction + options.length) % options.length\n }\n\n private setActiveIndex (index: number) {\n this.activeIndex = index\n }\n\n private updateDisplayValue (value: unknown) {\n this.displayValue = value ? String(value) : ''\n\n if (this.open) {\n const filter = this.displayValue.toLowerCase()\n\n if (this.asyncOptionsTask) {\n this.updateDebouncedFilter(filter)\n } else {\n this.filter = filter\n }\n }\n }\n\n private updateAsyncOptionsTask () {\n if (!this.asyncOptionsUrl && !this.asyncOptionsProvider) {\n this.asyncOptionsTask = undefined\n\n return\n }\n\n this.asyncOptionsTask ??= new Task(\n this,\n async ([filter]) => {\n if (this.asyncOptionsProvider) {\n const results = await this.asyncOptionsProvider(filter)\n\n if (results.length === 0) {\n throw new AsyncOptionsInfo('No results found')\n }\n\n return results\n }\n\n const response = await fetch(\n this.asyncOptionsUrl.replace('%search%', encodeURIComponent(filter))\n )\n const data = await response.json()\n const results = Array.from(\n this.asyncOptionsResultsField\n ? data[this.asyncOptionsResultsField]\n : data\n )\n\n if (results.length === 0) {\n throw new AsyncOptionsInfo('No results found')\n }\n\n const labelField = this.asyncOptionsLabelField || 'label'\n const valueField = this.asyncOptionsValueField || 'value'\n\n return results.map((result) => ({\n label: String(Object(result)[labelField]),\n value: Object(result)[valueField],\n }))\n },\n () => [this.filter]\n )\n }\n\n private show (options?: { focusLast?: boolean }) {\n if (this.open) {\n return\n }\n\n const filteredOptions = this.getFilteredOptions()\n\n if (filteredOptions.length === 0) {\n return\n }\n\n this.open = true\n this.activeIndex = options?.focusLast\n ? filteredOptions.length - 1\n : this.getInitialActiveIndex(filteredOptions)\n this.addOpenListeners()\n\n requestAnimationFrame(() => this.scrollActiveOptionIntoView())\n }\n\n private hide () {\n if (!this.open) {\n return\n }\n\n this.filter = ''\n this.open = false\n this.activeIndex = -1\n this.removeOpenListeners()\n this.updateDebouncedFilter.cancel()\n }\n\n private selectOption (option: ComboboxOptionData) {\n const previousValue = this.value\n\n this._selectedOption = option\n\n this.hide()\n this.controlTrait.setValue(option.value)\n this.controlElement?.focus({ preventScroll: true })\n this.dispatchEvent(new CustomEvent('change', { bubbles: true, composed: true, detail: { option } }))\n\n if (previousValue === this.value) {\n this.updateDisplayValue(option.label)\n }\n }\n\n private scrollActiveOptionIntoView () {\n if (this.activeIndex < 0) {\n return\n }\n\n this.shadowRoot\n ?.querySelector(`#${this.getOptionId(this.activeIndex)}`)\n ?.scrollIntoView({ block: 'nearest' })\n }\n\n private addOpenListeners () {\n if (this.openListenersAttached) {\n return\n }\n\n document.addEventListener('focusin', this.handleDocumentFocusIn)\n document.addEventListener('mousedown', this.handleDocumentMouseDown)\n\n const root = this.getRootNode()\n\n if (root !== document) {\n root.addEventListener('focusin', this.handleDocumentFocusIn)\n }\n\n this.openListenersAttached = true\n }\n\n private removeOpenListeners () {\n if (!this.openListenersAttached) {\n return\n }\n\n document.removeEventListener('focusin', this.handleDocumentFocusIn)\n document.removeEventListener('mousedown', this.handleDocumentMouseDown)\n\n const root = this.getRootNode()\n\n if (root !== document) {\n root.removeEventListener('focusin', this.handleDocumentFocusIn)\n }\n\n this.openListenersAttached = false\n }\n\n private handleDocumentFocusIn = (event: Event) => {\n const path = event.composedPath()\n\n if (!path.includes(this)) {\n this.hide()\n }\n }\n\n private handleDocumentMouseDown = (event: MouseEvent) => {\n const path = event.composedPath()\n\n if (!path.includes(this)) {\n this.hide()\n }\n }\n\n private onAnchorMouseDown (event: MouseEvent) {\n if (event.target === this.controlElement) {\n return\n }\n\n event.preventDefault()\n this.controlElement?.focus({ preventScroll: true })\n }\n\n private onInputFocus () {\n this.show()\n }\n\n private openPopupFromKey (focusLast: boolean) {\n if (!this.open) {\n this.show({ focusLast })\n }\n }\n\n private onInputKeyDown (event: KeyboardEvent) {\n const options = this.getFilteredOptions()\n\n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault()\n\n if (!this.open) {\n this.openPopupFromKey(false)\n } else {\n this.activeIndex = this.getNextIndex(this.activeIndex, options, 1)\n this.scrollActiveOptionIntoView()\n }\n break\n case 'ArrowUp':\n event.preventDefault()\n\n if (!this.open) {\n this.openPopupFromKey(true)\n } else {\n this.activeIndex = this.getNextIndex(this.activeIndex, options, -1)\n this.scrollActiveOptionIntoView()\n }\n break\n case 'Enter':\n if (this.open && this.activeIndex >= 0 && options[this.activeIndex]) {\n event.preventDefault()\n this.selectOption(options[this.activeIndex])\n } else if (!this.open) {\n event.preventDefault()\n this.controlTrait.onSubmit()\n }\n break\n case 'Escape':\n if (this.open) {\n event.preventDefault()\n event.stopPropagation()\n this.hide()\n this.controlElement?.focus({ preventScroll: true })\n }\n break\n case 'Tab':\n this.hide()\n break\n default:\n if (!this.open) {\n this.show()\n }\n }\n }\n\n private onListboxMouseDown (event: MouseEvent) {\n event.preventDefault()\n\n if (!(event.target instanceof HTMLElement)) {\n return\n }\n\n const optionElement = event.target.closest('[role=\"option\"]')\n\n if (!optionElement) {\n return\n }\n\n const optionId = optionElement.id\n const index = Number.parseInt(optionId.replace(`${this.listboxId}-option-`, ''), 10)\n const option = this.getFilteredOptions()[index]\n\n if (option) {\n this.selectOption(option)\n }\n }\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Combobox.styles.cjs.js","names":[],"sources":["../../../src/components/combobox/Combobox.styles.css"],"sourcesContent":[":host {\n display: inline-flex;\n flex-direction: column;\n align-items: flex-start;\n gap: 5px;\n\n label {\n color: var(--solid-ui-color-gray-600);\n font-size: var(--solid-ui-font-size-sm);\n font-weight: 400;\n }\n\n wa-popup {\n display: block;\n width: 100%;\n }\n\n wa-popup::part(popup) {\n background: white;\n border: 1px solid var(--solid-ui-color-gray-100);\n border-radius: 5px;\n box-shadow: 0px 4px 16px 0px rgba(0, 0, 0, 0.35);\n overflow: hidden;\n padding: 4px;\n }\n\n .input-wrapper {\n position: relative;\n width: 100%;\n\n input {\n border: 1px solid var(--solid-ui-color-gray-400);\n border-radius: 5px;\n padding: 10px;\n padding-right: 40px;\n width: 100%;\n }\n\n icon-lucide-chevron-down {\n position: absolute;\n right: 15px;\n top: 50%;\n transform: translateY(-50%);\n color: var(--solid-ui-color-gray-500);\n width: var(--solid-ui-font-size-lg);\n height: var(--solid-ui-font-size-lg);\n pointer-events: none;\n }\n }\n\n .listbox {\n display: flex;\n flex-direction: column;\n gap: 2px;\n max-height: min(28rem, calc(100dvh - 6rem), var(--auto-size-available-height, 28rem));\n overflow-x: hidden;\n overflow-y: auto;\n overscroll-behavior: contain;\n scrollbar-width: thin;\n\n &::-webkit-scrollbar {\n width: 4px;\n }\n\n [role=\"option\"], .non-selectable-option {\n color: var(--solid-ui-color-gray-700);\n padding: 12px 8px;\n border-radius: 5px;\n }\n\n [role=\"option\"] {\n cursor: pointer;\n\n &:hover,\n &[data-active] {\n background: var(--solid-ui-color-primary-hover);\n }\n\n &[aria-selected=\"true\"] {\n background: var(--solid-ui-color-primary-selected);\n }\n }\n\n .non-selectable-option {\n display: flex;\n justify-content: center;\n align-items: center;\n\n icon-svg-spinners-3-dots-fade {\n width: 2rem;\n }\n\n .message--error {\n color: var(--solid-ui-color-error);\n }\n }\n }\n}\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"Combobox.styles.cjs.js","names":["Combobox_styles_default"],"sources":["../../../src/components/combobox/Combobox.styles.css"],"sourcesContent":[":host {\n display: inline-flex;\n flex-direction: column;\n align-items: flex-start;\n gap: 5px;\n\n label {\n color: var(--solid-ui-color-gray-600);\n font-size: var(--solid-ui-font-size-sm);\n font-weight: 400;\n }\n\n wa-popup {\n display: block;\n width: 100%;\n }\n\n wa-popup::part(popup) {\n background: white;\n border: 1px solid var(--solid-ui-color-gray-100);\n border-radius: 5px;\n box-shadow: 0px 4px 16px 0px rgba(0, 0, 0, 0.35);\n overflow: hidden;\n padding: 4px;\n }\n\n .input-wrapper {\n position: relative;\n width: 100%;\n\n input {\n border: 1px solid var(--solid-ui-color-gray-400);\n border-radius: 5px;\n padding: 10px;\n padding-right: 40px;\n width: 100%;\n }\n\n icon-lucide-chevron-down {\n position: absolute;\n right: 15px;\n top: 50%;\n transform: translateY(-50%);\n color: var(--solid-ui-color-gray-500);\n width: var(--solid-ui-font-size-lg);\n height: var(--solid-ui-font-size-lg);\n pointer-events: none;\n }\n }\n\n .listbox {\n display: flex;\n flex-direction: column;\n gap: 2px;\n max-height: min(28rem, calc(100dvh - 6rem), var(--auto-size-available-height, 28rem));\n overflow-x: hidden;\n overflow-y: auto;\n overscroll-behavior: contain;\n scrollbar-width: thin;\n\n &::-webkit-scrollbar {\n width: 4px;\n }\n\n [role=\"option\"], .non-selectable-option {\n color: var(--solid-ui-color-gray-700);\n padding: 12px 8px;\n border-radius: 5px;\n }\n\n [role=\"option\"] {\n cursor: pointer;\n\n &:hover,\n &[data-active] {\n background: var(--solid-ui-color-primary-hover);\n }\n\n &[aria-selected=\"true\"] {\n background: var(--solid-ui-color-primary-selected);\n }\n }\n\n .non-selectable-option {\n display: flex;\n justify-content: center;\n align-items: center;\n\n icon-svg-spinners-3-dots-fade {\n width: 2rem;\n }\n\n .message--error {\n color: var(--solid-ui-color-error);\n }\n }\n }\n}\n"],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Combobox.styles.esm.js","names":[],"sources":["../../../src/components/combobox/Combobox.styles.css"],"sourcesContent":[":host {\n display: inline-flex;\n flex-direction: column;\n align-items: flex-start;\n gap: 5px;\n\n label {\n color: var(--solid-ui-color-gray-600);\n font-size: var(--solid-ui-font-size-sm);\n font-weight: 400;\n }\n\n wa-popup {\n display: block;\n width: 100%;\n }\n\n wa-popup::part(popup) {\n background: white;\n border: 1px solid var(--solid-ui-color-gray-100);\n border-radius: 5px;\n box-shadow: 0px 4px 16px 0px rgba(0, 0, 0, 0.35);\n overflow: hidden;\n padding: 4px;\n }\n\n .input-wrapper {\n position: relative;\n width: 100%;\n\n input {\n border: 1px solid var(--solid-ui-color-gray-400);\n border-radius: 5px;\n padding: 10px;\n padding-right: 40px;\n width: 100%;\n }\n\n icon-lucide-chevron-down {\n position: absolute;\n right: 15px;\n top: 50%;\n transform: translateY(-50%);\n color: var(--solid-ui-color-gray-500);\n width: var(--solid-ui-font-size-lg);\n height: var(--solid-ui-font-size-lg);\n pointer-events: none;\n }\n }\n\n .listbox {\n display: flex;\n flex-direction: column;\n gap: 2px;\n max-height: min(28rem, calc(100dvh - 6rem), var(--auto-size-available-height, 28rem));\n overflow-x: hidden;\n overflow-y: auto;\n overscroll-behavior: contain;\n scrollbar-width: thin;\n\n &::-webkit-scrollbar {\n width: 4px;\n }\n\n [role=\"option\"], .non-selectable-option {\n color: var(--solid-ui-color-gray-700);\n padding: 12px 8px;\n border-radius: 5px;\n }\n\n [role=\"option\"] {\n cursor: pointer;\n\n &:hover,\n &[data-active] {\n background: var(--solid-ui-color-primary-hover);\n }\n\n &[aria-selected=\"true\"] {\n background: var(--solid-ui-color-primary-selected);\n }\n }\n\n .non-selectable-option {\n display: flex;\n justify-content: center;\n align-items: center;\n\n icon-svg-spinners-3-dots-fade {\n width: 2rem;\n }\n\n .message--error {\n color: var(--solid-ui-color-error);\n }\n }\n }\n}\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"Combobox.styles.esm.js","names":["Combobox_styles_default"],"sources":["../../../src/components/combobox/Combobox.styles.css"],"sourcesContent":[":host {\n display: inline-flex;\n flex-direction: column;\n align-items: flex-start;\n gap: 5px;\n\n label {\n color: var(--solid-ui-color-gray-600);\n font-size: var(--solid-ui-font-size-sm);\n font-weight: 400;\n }\n\n wa-popup {\n display: block;\n width: 100%;\n }\n\n wa-popup::part(popup) {\n background: white;\n border: 1px solid var(--solid-ui-color-gray-100);\n border-radius: 5px;\n box-shadow: 0px 4px 16px 0px rgba(0, 0, 0, 0.35);\n overflow: hidden;\n padding: 4px;\n }\n\n .input-wrapper {\n position: relative;\n width: 100%;\n\n input {\n border: 1px solid var(--solid-ui-color-gray-400);\n border-radius: 5px;\n padding: 10px;\n padding-right: 40px;\n width: 100%;\n }\n\n icon-lucide-chevron-down {\n position: absolute;\n right: 15px;\n top: 50%;\n transform: translateY(-50%);\n color: var(--solid-ui-color-gray-500);\n width: var(--solid-ui-font-size-lg);\n height: var(--solid-ui-font-size-lg);\n pointer-events: none;\n }\n }\n\n .listbox {\n display: flex;\n flex-direction: column;\n gap: 2px;\n max-height: min(28rem, calc(100dvh - 6rem), var(--auto-size-available-height, 28rem));\n overflow-x: hidden;\n overflow-y: auto;\n overscroll-behavior: contain;\n scrollbar-width: thin;\n\n &::-webkit-scrollbar {\n width: 4px;\n }\n\n [role=\"option\"], .non-selectable-option {\n color: var(--solid-ui-color-gray-700);\n padding: 12px 8px;\n border-radius: 5px;\n }\n\n [role=\"option\"] {\n cursor: pointer;\n\n &:hover,\n &[data-active] {\n background: var(--solid-ui-color-primary-hover);\n }\n\n &[aria-selected=\"true\"] {\n background: var(--solid-ui-color-primary-selected);\n }\n }\n\n .non-selectable-option {\n display: flex;\n justify-content: center;\n align-items: center;\n\n icon-svg-spinners-3-dots-fade {\n width: 2rem;\n }\n\n .message--error {\n color: var(--solid-ui-color-error);\n }\n }\n }\n}\n"],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs.js","names":["Combobox"],"sources":["../../../src/components/combobox/index.ts"],"sourcesContent":["import Combobox from './Combobox'\n\nexport * from './Combobox'\nexport { Combobox }\nexport default Combobox\n"],"mappings":"oIAIA,
|
|
1
|
+
{"version":3,"file":"index.cjs.js","names":["Combobox","Combobox","require_Combobox","combobox_default"],"sources":["../../../src/components/combobox/index.ts"],"sourcesContent":["import Combobox from './Combobox'\n\nexport * from './Combobox'\nexport { Combobox }\nexport default Combobox\n"],"mappings":"oIAIA,IAAAG,EAAeH,EAAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","names":["Combobox"],"sources":["../../../src/components/combobox/index.ts"],"sourcesContent":["import Combobox from './Combobox'\n\nexport * from './Combobox'\nexport { Combobox }\nexport default Combobox\n"],"mappings":";;AAIA,
|
|
1
|
+
{"version":3,"file":"index.esm.js","names":["Combobox","Combobox","_Combobox","combobox_default","defineAsyncComboboxOptionsProvider"],"sources":["../../../src/components/combobox/index.ts"],"sourcesContent":["import Combobox from './Combobox'\n\nexport * from './Combobox'\nexport { Combobox }\nexport default Combobox\n"],"mappings":";;AAIA,IAAAG,IAAeH"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ComboboxOption.cjs.js","names":["customElement","WebComponent","html","nothing","property","_classDecs","_ComboboxOption","_A","WeakMap","_ref","_valueDecs","type","String","reflect","ComboboxOption","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_value","_classPrivateFieldGet","value","v","_classPrivateFieldSet","render","_ComboboxOption2","e","c","_initClass","_applyDecs","default"],"sources":["../../../src/components/combobox-option/ComboboxOption.ts"],"sourcesContent":["import { customElement, WebComponent } from '@/lib/components'\nimport { html, nothing } from 'lit'\nimport { property } from 'lit/decorators.js'\n\n@customElement('solid-ui-combobox-option')\nexport default class ComboboxOption extends WebComponent {\n @property({ type: String, reflect: true })\n accessor value = ''\n\n protected render () {\n return html`${nothing}`\n }\n}\n"],"mappings":"ipIAE4CK,EAAA,CAE3CL,EAAAA,cAAc,0BAA0B,CAAC,EAAA,IAAAM,EAAAC,EAAA,IAAAC,QAAAC,GAAAC,GAAAA,EAEvCN,EAAAA,SAAAA,CAAS,CAAEO,KAAMC,OAAQC,QAAS,EAAK,CAAC,EAAC,SAM3CY,EAAAX,cAP2Cb,EAAAA,OAAa,CAAAc,YAAA,GAAAC,EAAA,CAAA,MAAA,GAAAA,CAAA,EAAAC,EAAA,KAAAV,GAAAW,EAAA,IAAA,EAAAC,EAAA,KAEtC,EAAE,EAAA,CAAA,CAAA,IAAAV,IAAA,CAAA,OAAAW,EAAAb,EAAA,IAAA,CAAA,CAAA,IAAVc,MAAKC,EAAA,CAAAC,EAAAhB,EAAA,KAAAe,CAAA,CAAA,CAEJE,QAAU,CAClB,MAAOtB,GAAAA,IAAI,GAAGC,EAAAA,SAChB,CACF,EAAC,CAAAuB,EAAA,CAAAP,EAAAD,GAAAS,EAAA,CAAArB,EAAAsB,IAAAC,EAAAJ,EAAA,CAAA,CAAAf,EAAA,EAAA,OAAA,CAAA,EAAAL,EAAA,EAAA,IAAA,GAP2CJ,EAAAA,OAAY,EAAA2B,EAAA"}
|
|
1
|
+
{"version":3,"file":"ComboboxOption.cjs.js","names":["customElement","WebComponent","html","nothing","property","_classDecs","_ComboboxOption","_A","WeakMap","_ref","_valueDecs","type","String","reflect","ComboboxOption","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_value","_classPrivateFieldGet","value","v","_classPrivateFieldSet","render","_ComboboxOption2","e","c","_initClass","_applyDecs","default","customElement","property","WebComponent","nothing","require_decorators","require_WebComponent","lit","lit_decorators_js","_ComboboxOption2","_initProto","_initClass","_classDecs","_valueDecs","_init_value","_ref","_classPrivateFieldInitSpec","_checkPrivateRedeclaration","a","_classPrivateFieldSet","s","_assertClassBrand","r","_classPrivateFieldGet","_applyDecs","i","n","o","c","applyDec","m","h","y","v","g","u","w","A","d","f","p","_setFunctionName","P","j","D","E","I","O","k","F","l","N","_checkInRHS","b","_toPropertyKey","_toPrimitive","t","e","_ComboboxOption","_A","args"],"sources":["../../../src/components/combobox-option/ComboboxOption.ts"],"sourcesContent":["import { customElement, WebComponent } from '@/lib/components'\nimport { html, nothing } from 'lit'\nimport { property } from 'lit/decorators.js'\n\n@customElement('solid-ui-combobox-option')\nexport default class ComboboxOption extends WebComponent {\n @property({ type: String, reflect: true })\n accessor value = ''\n\n protected render () {\n return html`${nothing}`\n }\n}\n"],"mappings":"ipIAE4CK,EAAA,CAE3CL,EAAAA,cAAc,0BAA0B,CAAC,EAAA,IAAAM,EAAAC,EAAA,IAAAC,QAAAC,GAAAC,GAAAA,EAEvCN,EAAAA,SAAAA,CAAS,CAAEO,KAAMC,OAAQC,QAAS,EAAK,CAAC,EAAC,SAM3CY,EAAAX,cAP2Cb,EAAAA,OAAa,CAAAc,YAAA,GAAAC,EAAA,CAAA,MAAA,GAAAA,CAAA,EAAAC,EAAA,KAAAV,GAAAW,EAAA,IAAA,EAAAC,EAAA,KAEtC,EAAE,EAAA,CAAA,CAAA,IAAAV,IAAA,CAAA,OAAAW,EAAAb,EAAA,IAAA,CAAA,CAAA,IAAVc,MAAKC,EAAA,CAAAC,EAAAhB,EAAA,KAAAe,CAAA,CAAA,CAEJE,QAAU,CAClB,MAAOtB,GAAAA,IAAI,GAAGC,EAAAA,SAChB,CACF,EAAC,CAAAuB,EAAA,CAAAP,EAAAD,GAAAS,EAAA,CAAArB,EAAAsB,IAAAC,EAAAJ,EAAA,CAAA,CAAAf,EAAA,EAAA,OAAA,CAAA,EAAAL,EAAA,EAAA,IAAA,GAP2CJ,EAAAA,OAAY,EAAA2B,EAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ComboboxOption.esm.js","names":["customElement","WebComponent","html","nothing","property","_classDecs","_ComboboxOption","_A","WeakMap","_ref","_valueDecs","type","String","reflect","ComboboxOption","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_value","_classPrivateFieldGet","value","v","_classPrivateFieldSet","render","_ComboboxOption2","e","c","_initClass","_applyDecs","default"],"sources":["../../../src/components/combobox-option/ComboboxOption.ts"],"sourcesContent":["import { customElement, WebComponent } from '@/lib/components'\nimport { html, nothing } from 'lit'\nimport { property } from 'lit/decorators.js'\n\n@customElement('solid-ui-combobox-option')\nexport default class ComboboxOption extends WebComponent {\n @property({ type: String, reflect: true })\n accessor value = ''\n\n protected render () {\n return html`${nothing}`\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAE4CK,IAAA,CAE3CL,EAAc,0BAA0B,CAAC;AAAA,IAAAM,GAAAC,kBAAA,IAAAC,QAAA;AAAAC,KAAAC,IAEvCN,EAAS;CAAEO,MAAMC;CAAQC,SAAS;AAAK,CAAC,GAAC,UAM3CY,IAAAX,cAP2Cb,EAAa;CAAAc,YAAA,GAAAC,GAAA;EAAAC,AAAA,MAAA,GAAAD,CAAA,GAAAC,EAAA,MAAAV,IAAAW,EAAA,IAAA,GAAAC,EAAA,MAEtC,EAAE,EAAA;CAAA;CAAA,KAAAV,KAAA;EAAA,OAAAW,EAAAb,GAAA,IAAA;CAAA;CAAA,IAAVc,MAAKC,GAAA;EAAAC,EAAAhB,GAAA,MAAAe,CAAA;CAAA;CAEJE,SAAU;EAClB,OAAOtB,CAAI,GAAGC;CAChB;AACF,GAAC,CAAAuB,GAAA,CAAAP,GAAAD,IAAAS,GAAA,CAAArB,GAAAsB,MAAAC,EAAAJ,GAAA,CAAA;CAAAf;CAAA;CAAA;AAAA,CAAA,GAAAL,GAAA,GAAA,KAAA,GAP2CJ,CAAY,GAAA2B,EAAA"}
|
|
1
|
+
{"version":3,"file":"ComboboxOption.esm.js","names":["customElement","WebComponent","html","nothing","property","_classDecs","_ComboboxOption","_A","WeakMap","_ref","_valueDecs","type","String","reflect","ComboboxOption","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_value","_classPrivateFieldGet","value","v","_classPrivateFieldSet","render","_ComboboxOption2","e","c","_initClass","_applyDecs","default","WebComponent","_ComboboxOption2","_initProto","_initClass","_classDecs","_valueDecs","_init_value","_ref","_classPrivateFieldInitSpec","a","_checkPrivateRedeclaration","_classPrivateFieldSet","s","_assertClassBrand","r","_classPrivateFieldGet","_applyDecs","i","n","o","c","applyDec","m","h","y","v","g","b","u","w","A","d","p","_setFunctionName","P","j","D","E","I","O","k","F","l","f","N","_checkInRHS","_toPropertyKey","_toPrimitive","t","e","customElement","_ComboboxOption","_A","property","args","nothing"],"sources":["../../../src/components/combobox-option/ComboboxOption.ts"],"sourcesContent":["import { customElement, WebComponent } from '@/lib/components'\nimport { html, nothing } from 'lit'\nimport { property } from 'lit/decorators.js'\n\n@customElement('solid-ui-combobox-option')\nexport default class ComboboxOption extends WebComponent {\n @property({ type: String, reflect: true })\n accessor value = ''\n\n protected render () {\n return html`${nothing}`\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAE4CK,IAAA,CAE3CL,EAAc,0BAA0B,CAAC;AAAA,IAAAM,GAAAC,kBAAA,IAAAC,QAAA;AAAAC,KAAAC,IAEvCN,EAAS;CAAEO,MAAMC;CAAQC,SAAS;AAAK,CAAC,GAAC,UAM3CY,IAAAX,cAP2Cb,EAAa;CAAAc,YAAA,GAAAC,GAAA;EAAAC,AAAA,MAAA,GAAAD,CAAA,GAAAC,EAAA,MAAAV,IAAAW,EAAA,IAAA,GAAAC,EAAA,MAEtC,EAAE,EAAA;CAAA;CAAA,KAAAV,KAAA;EAAA,OAAAW,EAAAb,GAAA,IAAA;CAAA;CAAA,IAAVc,MAAKC,GAAA;EAAAC,EAAAhB,GAAA,MAAAe,CAAA;CAAA;CAEJE,SAAU;EAClB,OAAOtB,CAAI,GAAGC;CAChB;AACF,GAAC,CAAAuB,GAAA,CAAAP,GAAAD,IAAAS,GAAA,CAAArB,GAAAsB,MAAAC,EAAAJ,GAAA,CAAA;CAAAf;CAAA;CAAA;AAAA,CAAA,GAAAL,GAAA,GAAA,KAAA,GAP2CJ,CAAY,GAAA2B,EAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs.js","names":["ComboboxOption"],"sources":["../../../src/components/combobox-option/index.ts"],"sourcesContent":["import ComboboxOption from './ComboboxOption'\n\nexport { ComboboxOption }\nexport default ComboboxOption\n"],"mappings":"0IAGA,
|
|
1
|
+
{"version":3,"file":"index.cjs.js","names":["ComboboxOption","ComboboxOption","require_ComboboxOption","combobox_option_default"],"sources":["../../../src/components/combobox-option/index.ts"],"sourcesContent":["import ComboboxOption from './ComboboxOption'\n\nexport { ComboboxOption }\nexport default ComboboxOption\n"],"mappings":"0IAGA,IAAAG,EAAeH,EAAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","names":["ComboboxOption"],"sources":["../../../src/components/combobox-option/index.ts"],"sourcesContent":["import ComboboxOption from './ComboboxOption'\n\nexport { ComboboxOption }\nexport default ComboboxOption\n"],"mappings":";;AAGA,
|
|
1
|
+
{"version":3,"file":"index.esm.js","names":["ComboboxOption","ComboboxOption","_ComboboxOption","combobox_option_default"],"sources":["../../../src/components/combobox-option/index.ts"],"sourcesContent":["import ComboboxOption from './ComboboxOption'\n\nexport { ComboboxOption }\nexport default ComboboxOption\n"],"mappings":";;AAGA,IAAAG,IAAeH"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as e, r as t, t as n } from "../chunks/combobox-
|
|
1
|
+
import { n as e, r as t, t as n } from "../chunks/combobox-B0TqOl9L.js";
|
|
2
2
|
export { e as Combobox, n as default, t as defineAsyncComboboxOptionsProvider };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dialog.cjs.js","names":["customElement","WebComponent","consume","html","nothing","property","query","dialogContext","DEFAULT_DIALOG_CONTEXT","DialogTrait","styles","_classDecs","_Dialog","_Dialog2","_A","WeakMap","_B","_C","_ref","_titleDecs","type","String","reflect","_nativeDialogDecs","_contextDecs","context","subscribe","_Dialog3","Dialog","_classPrivateFieldGet","title","v","_classPrivateFieldSet","nativeDialog","constructor","_classPrivateFieldInitSpec","_initProto","_init_title","_init_nativeDialog","_init_context","_defineProperty","dialogTrait","addTrait","getContext","close","data","firstUpdated","showModal","show","setAttribute","addEventListener","render","header","e","c","_initClass","_applyDecs","_Class","_identity","default"],"sources":["../../../src/components/dialog/Dialog.ts"],"sourcesContent":["import { customElement, WebComponent } from '@/lib/components'\nimport { consume } from '@lit/context'\nimport { html, nothing } from 'lit'\nimport { property, query } from 'lit/decorators.js'\nimport { DialogContext, dialogContext, DEFAULT_DIALOG_CONTEXT } from '@/lib/dialogs/context'\nimport DialogTrait from '@/lib/components/traits/DialogTrait'\n\nimport '~icons/lucide/x'\nimport '@/components/dialog-header'\nimport '@/components/button'\n\nimport styles from './Dialog.styles.css'\n\n@customElement('solid-ui-dialog')\nexport default class Dialog extends WebComponent {\n static styles = styles\n\n @property({ type: String, reflect: true })\n accessor title = ''\n\n @query('dialog')\n private accessor nativeDialog: HTMLDialogElement | null = null\n\n @consume({ context: dialogContext, subscribe: true })\n private accessor context: DialogContext = DEFAULT_DIALOG_CONTEXT\n\n private dialogTrait: DialogTrait<unknown>\n\n constructor () {\n super()\n\n this.dialogTrait = this.addTrait(new DialogTrait(this, {\n getContext: () => this.context\n }))\n }\n\n public close (data?: unknown) {\n this.dialogTrait.close(data)\n }\n\n protected firstUpdated () {\n if (!this.nativeDialog) {\n return\n }\n\n if (typeof this.nativeDialog.showModal === 'function') {\n this.nativeDialog.showModal()\n } else if (typeof this.nativeDialog.show === 'function') {\n this.nativeDialog.show()\n } else {\n this.nativeDialog.setAttribute('open', '')\n }\n\n this.nativeDialog.addEventListener('close', () => this.close())\n }\n\n protected render () {\n const header = this.title\n ? html`\n <solid-ui-dialog-header>\n <h1>${this.title}</h1>\n\n <solid-ui-button variant=\"ghost\" @click=${() => this.close()}>\n <span class=\"sr-only\">Close</span>\n <icon-lucide-x slot=\"icon\"></icon-lucide-x>\n </solid-ui-button>\n </solid-ui-dialog-header>\n `\n : nothing\n\n return html`\n <dialog>\n <slot name=\"header\">${header}</slot>\n <slot></slot>\n <slot name=\"footer\"></slot>\n </dialog>\n `\n }\n}\n"],"mappings":"imJAWwCW,EAAA,CAEvCX,EAAAA,cAAc,iBAAiB,CAAC,EAAA,IAAAY,EAAA,IAAAC,GAAAC,EAAA,IAAAC,QAAAC,EAAA,IAAAD,QAAAE,EAAA,IAAAF,QAAAG,GAAAC,GAAAA,EAI9Bd,EAAAA,SAAAA,CAAS,CAAEe,KAAMC,OAAQC,QAAS,EAAK,CAAC,EAACC,GAAAA,EAGzCjB,EAAAA,MAAAA,CAAM,QAAQ,EAACkB,GAAAA,EAGftB,EAAAA,QAAAA,CAAQ,CAAEuB,QAASlB,EAAAA,cAAemB,UAAW,EAAK,CAAC,EAAC,SAAAC,EAVvD,cACoC1B,EAAAA,OAAa,CAAA,IAAAiB,IAAA,CAAA,OAAAW,EAAAf,EAAA,IAAA,CAAA,CAAA,IAItCgB,MAAKC,EAAA,CAAAC,EAAAlB,EAAA,KAAAiB,CAAA,CAAA,CAAA,IAGGE,cAAY,CAAA,OAAAJ,EAAAb,EAAA,IAAA,CAAA,CAAA,IAAZiB,aAAYF,EAAA,CAAAC,EAAAhB,EAAA,KAAAe,CAAA,CAAA,CAAA,IAGZN,SAAO,CAAA,OAAAI,EAAAZ,EAAA,IAAA,CAAA,CAAA,IAAPQ,QAAOM,EAAA,CAAAC,EAAAf,EAAA,KAAAc,CAAA,CAAA,CAIxBG,aAAe,CACb,MAAM,EAACC,EAAA,KAAArB,GAAAsB,EAAA,IAAA,EAAAC,EAAA,KAXQ,EAAE,EAAA,EAAAF,EAAA,KAAAnB,EAAAsB,EAAA,KAGuC,IAAI,CAAA,EAAAH,EAAA,KAAAlB,EAAAsB,EAAA,KAGpB/B,EAAAA,sBAAsB,CAAA,EAAAgC,EAAA,KAAA,cAAA,IAAA,EAAA,EAO9D,KAAKC,YAAc,KAAKC,SAAS,IAAIjC,EAAAA,QAAY,KAAM,CACrDkC,eAAkB,KAAKlB,OACzB,CAAC,CAAC,CACJ,CAEOmB,MAAOC,EAAgB,CAC5B,KAAKJ,YAAYG,MAAMC,CAAI,CAC7B,CAEUC,cAAgB,CACnB,KAAKb,eAIN,OAAO,KAAKA,aAAac,WAAc,WACzC,KAAKd,aAAac,UAAU,EACnB,OAAO,KAAKd,aAAae,MAAS,WAC3C,KAAKf,aAAae,KAAK,EAEvB,KAAKf,aAAagB,aAAa,OAAQ,EAAE,EAG3C,KAAKhB,aAAaiB,iBAAiB,YAAe,KAAKN,MAAM,CAAC,EAChE,CAEUO,QAAU,CAClB,IAAMC,EAAS,KAAKtB,MAChB3B,EAAAA,IAAI;;kBAEM,KAAK2B,MAAK;;0DAEgC,KAAKc,MAAM,EAAC;;;;;UAMhExC,EAAAA,QAEJ,MAAOD,GAAAA,IAAI;;kCAEmBiD,EAAM;;;;KAKtC,CACF,EAAC,CAAAC,EAAA,CAAAhB,EAAAC,EAAAC,EAAAH,GAAAkB,EAAA,CAAA1C,EAAA2C,IAAAC,EAAA7B,EAAA,CAAA,CAAAR,EAAA,EAAA,OAAA,EAAA,CAAAI,EAAA,EAAA,cAAA,EAAA,CAAAC,EAAA,EAAA,SAAA,CAAA,EAAAb,EAAA,EAAA,IAAA,GAhEmCV,EAAAA,OAAY,EAAA0B,GAAA8B,EAAA,cAAAC,CAAA,CAAAxB,aAAA,CAAA,MAAAtB,CAAA,EAAA4B,EAAA,KAAA,SAC9B9B,EAAAA,OAAM,EAAA6C,EAAA,CAAA,CAAA,EAAAf,EAAAiB,EAAA5C,EAAA,IAAA,EAAA,EAAA4C"}
|
|
1
|
+
{"version":3,"file":"Dialog.cjs.js","names":["customElement","WebComponent","consume","html","nothing","property","query","dialogContext","DEFAULT_DIALOG_CONTEXT","DialogTrait","styles","_classDecs","_Dialog","_Dialog2","_A","WeakMap","_B","_C","_ref","_titleDecs","type","String","reflect","_nativeDialogDecs","_contextDecs","context","subscribe","_Dialog3","Dialog","_classPrivateFieldGet","title","v","_classPrivateFieldSet","nativeDialog","constructor","_classPrivateFieldInitSpec","_initProto","_init_title","_init_nativeDialog","_init_context","_defineProperty","dialogTrait","addTrait","getContext","close","data","firstUpdated","showModal","show","setAttribute","addEventListener","render","header","e","c","_initClass","_applyDecs","_Class","_identity","default","customElement","property","query","consume","dialogContext","WebComponent","DEFAULT_DIALOG_CONTEXT","DialogTrait","nothing","styles","require_context","require_decorators","require_DialogTrait","require_WebComponent","require_Dialog_styles","_lit_context","lit","lit_decorators_js","_Class","_Dialog3","_A","_B","_C","_initProto","_initClass","_classDecs","_titleDecs","_init_title","_nativeDialogDecs","_init_nativeDialog","_contextDecs","_init_context","_Dialog2","_ref","_classPrivateFieldInitSpec","_checkPrivateRedeclaration","a","_classPrivateFieldSet","s","_assertClassBrand","r","_classPrivateFieldGet","_defineProperty","_toPropertyKey","t","_applyDecs","i","n","o","c","applyDec","m","h","y","v","g","b","u","w","S","A","d","f","p","_setFunctionName","P","j","D","I","F","l","N","_checkInRHS","_toPrimitive","e","_identity","_Dialog","data","header"],"sources":["../../../src/components/dialog/Dialog.ts"],"sourcesContent":["import { customElement, WebComponent } from '@/lib/components'\nimport { consume } from '@lit/context'\nimport { html, nothing } from 'lit'\nimport { property, query } from 'lit/decorators.js'\nimport { DialogContext, dialogContext, DEFAULT_DIALOG_CONTEXT } from '@/lib/dialogs/context'\nimport DialogTrait from '@/lib/components/traits/DialogTrait'\n\nimport '~icons/lucide/x'\nimport '@/components/dialog-header'\nimport '@/components/button'\n\nimport styles from './Dialog.styles.css'\n\n@customElement('solid-ui-dialog')\nexport default class Dialog extends WebComponent {\n static styles = styles\n\n @property({ type: String, reflect: true })\n accessor title = ''\n\n @query('dialog')\n private accessor nativeDialog: HTMLDialogElement | null = null\n\n @consume({ context: dialogContext, subscribe: true })\n private accessor context: DialogContext = DEFAULT_DIALOG_CONTEXT\n\n private dialogTrait: DialogTrait<unknown>\n\n constructor () {\n super()\n\n this.dialogTrait = this.addTrait(new DialogTrait(this, {\n getContext: () => this.context\n }))\n }\n\n public close (data?: unknown) {\n this.dialogTrait.close(data)\n }\n\n protected firstUpdated () {\n if (!this.nativeDialog) {\n return\n }\n\n if (typeof this.nativeDialog.showModal === 'function') {\n this.nativeDialog.showModal()\n } else if (typeof this.nativeDialog.show === 'function') {\n this.nativeDialog.show()\n } else {\n this.nativeDialog.setAttribute('open', '')\n }\n\n this.nativeDialog.addEventListener('close', () => this.close())\n }\n\n protected render () {\n const header = this.title\n ? html`\n <solid-ui-dialog-header>\n <h1>${this.title}</h1>\n\n <solid-ui-button variant=\"ghost\" @click=${() => this.close()}>\n <span class=\"sr-only\">Close</span>\n <icon-lucide-x slot=\"icon\"></icon-lucide-x>\n </solid-ui-button>\n </solid-ui-dialog-header>\n `\n : nothing\n\n return html`\n <dialog>\n <slot name=\"header\">${header}</slot>\n <slot></slot>\n <slot name=\"footer\"></slot>\n </dialog>\n `\n }\n}\n"],"mappings":"imJAWwCW,EAAA,CAEvCX,EAAAA,cAAc,iBAAiB,CAAC,EAAA,IAAAY,EAAA,IAAAC,GAAAC,EAAA,IAAAC,QAAAC,EAAA,IAAAD,QAAAE,EAAA,IAAAF,QAAAG,GAAAC,GAAAA,EAI9Bd,EAAAA,SAAAA,CAAS,CAAEe,KAAMC,OAAQC,QAAS,EAAK,CAAC,EAACC,GAAAA,EAGzCjB,EAAAA,MAAAA,CAAM,QAAQ,EAACkB,GAAAA,EAGftB,EAAAA,QAAAA,CAAQ,CAAEuB,QAASlB,EAAAA,cAAemB,UAAW,EAAK,CAAC,EAAC,SAAAC,EAVvD,cACoC1B,EAAAA,OAAa,CAAA,IAAAiB,IAAA,CAAA,OAAAW,EAAAf,EAAA,IAAA,CAAA,CAAA,IAItCgB,MAAKC,EAAA,CAAAC,EAAAlB,EAAA,KAAAiB,CAAA,CAAA,CAAA,IAGGE,cAAY,CAAA,OAAAJ,EAAAb,EAAA,IAAA,CAAA,CAAA,IAAZiB,aAAYF,EAAA,CAAAC,EAAAhB,EAAA,KAAAe,CAAA,CAAA,CAAA,IAGZN,SAAO,CAAA,OAAAI,EAAAZ,EAAA,IAAA,CAAA,CAAA,IAAPQ,QAAOM,EAAA,CAAAC,EAAAf,EAAA,KAAAc,CAAA,CAAA,CAIxBG,aAAe,CACb,MAAM,EAACC,EAAA,KAAArB,GAAAsB,EAAA,IAAA,EAAAC,EAAA,KAXQ,EAAE,EAAA,EAAAF,EAAA,KAAAnB,EAAAsB,EAAA,KAGuC,IAAI,CAAA,EAAAH,EAAA,KAAAlB,EAAAsB,EAAA,KAGpB/B,EAAAA,sBAAsB,CAAA,EAAAgC,EAAA,KAAA,cAAA,IAAA,EAAA,EAO9D,KAAKC,YAAc,KAAKC,SAAS,IAAIjC,EAAAA,QAAY,KAAM,CACrDkC,eAAkB,KAAKlB,OACzB,CAAC,CAAC,CACJ,CAEOmB,MAAOC,EAAgB,CAC5B,KAAKJ,YAAYG,MAAMC,CAAI,CAC7B,CAEUC,cAAgB,CACnB,KAAKb,eAIN,OAAO,KAAKA,aAAac,WAAc,WACzC,KAAKd,aAAac,UAAU,EACnB,OAAO,KAAKd,aAAae,MAAS,WAC3C,KAAKf,aAAae,KAAK,EAEvB,KAAKf,aAAagB,aAAa,OAAQ,EAAE,EAG3C,KAAKhB,aAAaiB,iBAAiB,YAAe,KAAKN,MAAM,CAAC,EAChE,CAEUO,QAAU,CAClB,IAAMC,EAAS,KAAKtB,MAChB3B,EAAAA,IAAI;;kBAEM,KAAK2B,MAAK;;0DAEgC,KAAKc,MAAM,EAAC;;;;;UAMhExC,EAAAA,QAEJ,MAAOD,GAAAA,IAAI;;kCAEmBiD,EAAM;;;;KAKtC,CACF,EAAC,CAAAC,EAAA,CAAAhB,EAAAC,EAAAC,EAAAH,GAAAkB,EAAA,CAAA1C,EAAA2C,IAAAC,EAAA7B,EAAA,CAAA,CAAAR,EAAA,EAAA,OAAA,EAAA,CAAAI,EAAA,EAAA,cAAA,EAAA,CAAAC,EAAA,EAAA,SAAA,CAAA,EAAAb,EAAA,EAAA,IAAA,GAhEmCV,EAAAA,OAAY,EAAA0B,GAAA8B,EAAA,cAAAC,CAAA,CAAAxB,aAAA,CAAA,MAAAtB,CAAA,EAAA4B,EAAA,KAAA,SAC9B9B,EAAAA,OAAM,EAAA6C,EAAA,CAAA,CAAA,EAAAf,EAAAiB,EAAA5C,EAAA,IAAA,EAAA,EAAA4C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dialog.esm.js","names":["customElement","WebComponent","consume","html","nothing","property","query","dialogContext","DEFAULT_DIALOG_CONTEXT","DialogTrait","styles","_classDecs","_Dialog","_Dialog2","_A","WeakMap","_B","_C","_ref","_titleDecs","type","String","reflect","_nativeDialogDecs","_contextDecs","context","subscribe","_Dialog3","Dialog","_classPrivateFieldGet","title","v","_classPrivateFieldSet","nativeDialog","constructor","_classPrivateFieldInitSpec","_initProto","_init_title","_init_nativeDialog","_init_context","_defineProperty","dialogTrait","addTrait","getContext","close","data","firstUpdated","showModal","show","setAttribute","addEventListener","render","header","e","c","_initClass","_applyDecs","_Class","_identity","default"],"sources":["../../../src/components/dialog/Dialog.ts"],"sourcesContent":["import { customElement, WebComponent } from '@/lib/components'\nimport { consume } from '@lit/context'\nimport { html, nothing } from 'lit'\nimport { property, query } from 'lit/decorators.js'\nimport { DialogContext, dialogContext, DEFAULT_DIALOG_CONTEXT } from '@/lib/dialogs/context'\nimport DialogTrait from '@/lib/components/traits/DialogTrait'\n\nimport '~icons/lucide/x'\nimport '@/components/dialog-header'\nimport '@/components/button'\n\nimport styles from './Dialog.styles.css'\n\n@customElement('solid-ui-dialog')\nexport default class Dialog extends WebComponent {\n static styles = styles\n\n @property({ type: String, reflect: true })\n accessor title = ''\n\n @query('dialog')\n private accessor nativeDialog: HTMLDialogElement | null = null\n\n @consume({ context: dialogContext, subscribe: true })\n private accessor context: DialogContext = DEFAULT_DIALOG_CONTEXT\n\n private dialogTrait: DialogTrait<unknown>\n\n constructor () {\n super()\n\n this.dialogTrait = this.addTrait(new DialogTrait(this, {\n getContext: () => this.context\n }))\n }\n\n public close (data?: unknown) {\n this.dialogTrait.close(data)\n }\n\n protected firstUpdated () {\n if (!this.nativeDialog) {\n return\n }\n\n if (typeof this.nativeDialog.showModal === 'function') {\n this.nativeDialog.showModal()\n } else if (typeof this.nativeDialog.show === 'function') {\n this.nativeDialog.show()\n } else {\n this.nativeDialog.setAttribute('open', '')\n }\n\n this.nativeDialog.addEventListener('close', () => this.close())\n }\n\n protected render () {\n const header = this.title\n ? html`\n <solid-ui-dialog-header>\n <h1>${this.title}</h1>\n\n <solid-ui-button variant=\"ghost\" @click=${() => this.close()}>\n <span class=\"sr-only\">Close</span>\n <icon-lucide-x slot=\"icon\"></icon-lucide-x>\n </solid-ui-button>\n </solid-ui-dialog-header>\n `\n : nothing\n\n return html`\n <dialog>\n <slot name=\"header\">${header}</slot>\n <slot></slot>\n <slot name=\"footer\"></slot>\n </dialog>\n `\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWwCW,IAAA,CAEvCX,EAAc,iBAAiB,CAAC;AAAA,IAAAY;AAAA,KAAAC,KAAAC,kBAAA,IAAAC,QAAA,GAAAC,kBAAA,IAAAD,QAAA,GAAAE,kBAAA,IAAAF,QAAA,GAAAG,KAAAC,IAI9Bd,EAAS;CAAEe,MAAMC;CAAQC,SAAS;AAAK,CAAC,GAACC,IAGzCjB,EAAM,QAAQ,GAACkB,IAGftB,EAAQ;CAAEuB,SAASlB;CAAemB,WAAW;AAAK,CAAC,GAAC,UAAAC,IAVvD,cACoC1B,EAAa;CAAA,KAAAiB,KAAA;EAAA,OAAAW,EAAAf,GAAA,IAAA;CAAA;CAAA,IAItCgB,MAAKC,GAAA;EAAAC,EAAAlB,GAAA,MAAAiB,CAAA;CAAA;CAAA,IAGGE,eAAY;EAAA,OAAAJ,EAAAb,GAAA,IAAA;CAAA;CAAA,IAAZiB,aAAYF,GAAA;EAAAC,EAAAhB,GAAA,MAAAe,CAAA;CAAA;CAAA,IAGZN,UAAO;EAAA,OAAAI,EAAAZ,GAAA,IAAA;CAAA;CAAA,IAAPQ,QAAOM,GAAA;EAAAC,EAAAf,GAAA,MAAAc,CAAA;CAAA;CAIxBG,cAAe;EAGb,AAFA,MAAM,GAACC,EAAA,MAAArB,IAAAsB,EAAA,IAAA,GAAAC,EAAA,MAXQ,EAAE,EAAA,GAAAF,EAAA,MAAAnB,GAAAsB,EAAA,MAGuC,IAAI,CAAA,GAAAH,EAAA,MAAAlB,GAAAsB,EAAA,MAGpB/B,CAAsB,CAAA,GAAAgC,EAAA,MAAA,eAAA,KAAA,CAAA,GAO9D,KAAKC,cAAc,KAAKC,SAAS,IAAIjC,EAAY,MAAM,EACrDkC,kBAAkB,KAAKlB,QACzB,CAAC,CAAC;CACJ;CAEOmB,MAAOC,GAAgB;EAC5B,KAAKJ,YAAYG,MAAMC,CAAI;CAC7B;CAEUC,eAAgB;
|
|
1
|
+
{"version":3,"file":"Dialog.esm.js","names":["customElement","WebComponent","consume","html","nothing","property","query","dialogContext","DEFAULT_DIALOG_CONTEXT","DialogTrait","styles","_classDecs","_Dialog","_Dialog2","_A","WeakMap","_B","_C","_ref","_titleDecs","type","String","reflect","_nativeDialogDecs","_contextDecs","context","subscribe","_Dialog3","Dialog","_classPrivateFieldGet","title","v","_classPrivateFieldSet","nativeDialog","constructor","_classPrivateFieldInitSpec","_initProto","_init_title","_init_nativeDialog","_init_context","_defineProperty","dialogTrait","addTrait","getContext","close","data","firstUpdated","showModal","show","setAttribute","addEventListener","render","header","e","c","_initClass","_applyDecs","_Class","_identity","default","styles","DialogTrait","WebComponent","Dialog_styles_default","_Class","_Dialog3","_A","_B","_C","_initProto","_initClass","_classDecs","_titleDecs","_init_title","_nativeDialogDecs","_init_nativeDialog","_contextDecs","_init_context","_Dialog2","_ref","_classPrivateFieldInitSpec","a","_checkPrivateRedeclaration","_classPrivateFieldSet","s","_assertClassBrand","r","_classPrivateFieldGet","_defineProperty","_toPropertyKey","t","_applyDecs","i","n","o","c","applyDec","m","h","y","v","g","b","u","w","S","A","d","p","_setFunctionName","P","j","D","I","F","l","f","N","_checkInRHS","_toPrimitive","e","_identity","customElement","_Dialog","property","query","consume","dialogContext","DEFAULT_DIALOG_CONTEXT","data","header","nothing"],"sources":["../../../src/components/dialog/Dialog.ts"],"sourcesContent":["import { customElement, WebComponent } from '@/lib/components'\nimport { consume } from '@lit/context'\nimport { html, nothing } from 'lit'\nimport { property, query } from 'lit/decorators.js'\nimport { DialogContext, dialogContext, DEFAULT_DIALOG_CONTEXT } from '@/lib/dialogs/context'\nimport DialogTrait from '@/lib/components/traits/DialogTrait'\n\nimport '~icons/lucide/x'\nimport '@/components/dialog-header'\nimport '@/components/button'\n\nimport styles from './Dialog.styles.css'\n\n@customElement('solid-ui-dialog')\nexport default class Dialog extends WebComponent {\n static styles = styles\n\n @property({ type: String, reflect: true })\n accessor title = ''\n\n @query('dialog')\n private accessor nativeDialog: HTMLDialogElement | null = null\n\n @consume({ context: dialogContext, subscribe: true })\n private accessor context: DialogContext = DEFAULT_DIALOG_CONTEXT\n\n private dialogTrait: DialogTrait<unknown>\n\n constructor () {\n super()\n\n this.dialogTrait = this.addTrait(new DialogTrait(this, {\n getContext: () => this.context\n }))\n }\n\n public close (data?: unknown) {\n this.dialogTrait.close(data)\n }\n\n protected firstUpdated () {\n if (!this.nativeDialog) {\n return\n }\n\n if (typeof this.nativeDialog.showModal === 'function') {\n this.nativeDialog.showModal()\n } else if (typeof this.nativeDialog.show === 'function') {\n this.nativeDialog.show()\n } else {\n this.nativeDialog.setAttribute('open', '')\n }\n\n this.nativeDialog.addEventListener('close', () => this.close())\n }\n\n protected render () {\n const header = this.title\n ? html`\n <solid-ui-dialog-header>\n <h1>${this.title}</h1>\n\n <solid-ui-button variant=\"ghost\" @click=${() => this.close()}>\n <span class=\"sr-only\">Close</span>\n <icon-lucide-x slot=\"icon\"></icon-lucide-x>\n </solid-ui-button>\n </solid-ui-dialog-header>\n `\n : nothing\n\n return html`\n <dialog>\n <slot name=\"header\">${header}</slot>\n <slot></slot>\n <slot name=\"footer\"></slot>\n </dialog>\n `\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWwCW,IAAA,CAEvCX,EAAc,iBAAiB,CAAC;AAAA,IAAAY;AAAA,KAAAC,KAAAC,kBAAA,IAAAC,QAAA,GAAAC,kBAAA,IAAAD,QAAA,GAAAE,kBAAA,IAAAF,QAAA,GAAAG,KAAAC,IAI9Bd,EAAS;CAAEe,MAAMC;CAAQC,SAAS;AAAK,CAAC,GAACC,IAGzCjB,EAAM,QAAQ,GAACkB,IAGftB,EAAQ;CAAEuB,SAASlB;CAAemB,WAAW;AAAK,CAAC,GAAC,UAAAC,IAVvD,cACoC1B,EAAa;CAAA,KAAAiB,KAAA;EAAA,OAAAW,EAAAf,GAAA,IAAA;CAAA;CAAA,IAItCgB,MAAKC,GAAA;EAAAC,EAAAlB,GAAA,MAAAiB,CAAA;CAAA;CAAA,IAGGE,eAAY;EAAA,OAAAJ,EAAAb,GAAA,IAAA;CAAA;CAAA,IAAZiB,aAAYF,GAAA;EAAAC,EAAAhB,GAAA,MAAAe,CAAA;CAAA;CAAA,IAGZN,UAAO;EAAA,OAAAI,EAAAZ,GAAA,IAAA;CAAA;CAAA,IAAPQ,QAAOM,GAAA;EAAAC,EAAAf,GAAA,MAAAc,CAAA;CAAA;CAIxBG,cAAe;EAGb,AAFA,MAAM,GAACC,EAAA,MAAArB,IAAAsB,EAAA,IAAA,GAAAC,EAAA,MAXQ,EAAE,EAAA,GAAAF,EAAA,MAAAnB,GAAAsB,EAAA,MAGuC,IAAI,CAAA,GAAAH,EAAA,MAAAlB,GAAAsB,EAAA,MAGpB/B,CAAsB,CAAA,GAAAgC,EAAA,MAAA,eAAA,KAAA,CAAA,GAO9D,KAAKC,cAAc,KAAKC,SAAS,IAAIjC,EAAY,MAAM,EACrDkC,kBAAkB,KAAKlB,QACzB,CAAC,CAAC;CACJ;CAEOmB,MAAOC,GAAgB;EAC5B,KAAKJ,YAAYG,MAAMC,CAAI;CAC7B;CAEUC,eAAgB;EACxB,AAAK,KAAKb,iBAIN,OAAO,KAAKA,aAAac,aAAc,aACzC,KAAKd,aAAac,UAAU,IACnB,OAAO,KAAKd,aAAae,QAAS,aAC3C,KAAKf,aAAae,KAAK,IAEvB,KAAKf,aAAagB,aAAa,QAAQ,EAAE,GAG3C,KAAKhB,aAAaiB,iBAAiB,eAAe,KAAKN,MAAM,CAAC;CAChE;CAEUO,SAAU;EAClB,IAAMC,IAAS,KAAKtB,QAChB3B,CAAI;;kBAEM,KAAK2B,MAAK;;4DAEgC,KAAKc,MAAM,EAAC;;;;;YAMhExC;EAEJ,OAAOD,CAAI;;kCAEmBiD,EAAM;;;;;CAKtC;AACF,GAAC,CAAAC,GAAA,CAAAhB,GAAAC,GAAAC,GAAAH,IAAAkB,GAAA,CAAA1C,GAAA2C,MAAAC,EAAA7B,GAAA;CAAA;EAAAR;EAAA;EAAA;CAAA;CAAA;EAAAI;EAAA;EAAA;CAAA;CAAA;EAAAC;EAAA;EAAA;CAAA;AAAA,GAAAb,GAAA,GAAA,KAAA,GAhEmCV,CAAY,GAAA0B,IAAA8B,IAAA,cAAAC,EAAA;CAAAxB,cAAA;EAAA,MAAAtB,CAAA,GAAA4B,EAAA,MAAA,UAC9B9B,CAAM,GAAA6C,EAAA;CAAA;AAAA,GAAAf,EAAAiB,GAAA5C,GAAA,KAAA,CAAA,GAAA4C,GAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dialog.styles.cjs.js","names":[],"sources":["../../../src/components/dialog/Dialog.styles.css"],"sourcesContent":["dialog {\n margin: auto;\n border-radius: 5px;\n box-shadow: 0px 4px 16px 0px rgba(0, 0, 0, 0.35);\n min-width: 343px;\n\n solid-ui-dialog-header solid-ui-button {\n color: var(--solid-ui-color-gray-600);\n }\n}\n\ndialog:not([open]) {\n display: none;\n}\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"Dialog.styles.cjs.js","names":["Dialog_styles_default"],"sources":["../../../src/components/dialog/Dialog.styles.css"],"sourcesContent":["dialog {\n margin: auto;\n border-radius: 5px;\n box-shadow: 0px 4px 16px 0px rgba(0, 0, 0, 0.35);\n min-width: 343px;\n\n solid-ui-dialog-header solid-ui-button {\n color: var(--solid-ui-color-gray-600);\n }\n}\n\ndialog:not([open]) {\n display: none;\n}\n"],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dialog.styles.esm.js","names":[],"sources":["../../../src/components/dialog/Dialog.styles.css"],"sourcesContent":["dialog {\n margin: auto;\n border-radius: 5px;\n box-shadow: 0px 4px 16px 0px rgba(0, 0, 0, 0.35);\n min-width: 343px;\n\n solid-ui-dialog-header solid-ui-button {\n color: var(--solid-ui-color-gray-600);\n }\n}\n\ndialog:not([open]) {\n display: none;\n}\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"Dialog.styles.esm.js","names":["Dialog_styles_default"],"sources":["../../../src/components/dialog/Dialog.styles.css"],"sourcesContent":["dialog {\n margin: auto;\n border-radius: 5px;\n box-shadow: 0px 4px 16px 0px rgba(0, 0, 0, 0.35);\n min-width: 343px;\n\n solid-ui-dialog-header solid-ui-button {\n color: var(--solid-ui-color-gray-600);\n }\n}\n\ndialog:not([open]) {\n display: none;\n}\n"],"mappings":""}
|