solid-ui 5.0.2-0 → 5.0.2-1
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/_rolldown/runtime.esm.js +1 -2
- package/dist/_virtual/~icons/app/solid-emblem.esm.js +1 -2
- package/dist/_virtual/~icons/lucide/book-user.esm.js +1 -2
- package/dist/_virtual/~icons/lucide/chevron-down.esm.js +1 -2
- package/dist/_virtual/~icons/lucide/circle-user.esm.js +1 -2
- package/dist/_virtual/~icons/lucide/circle-x.esm.js +1 -2
- package/dist/_virtual/~icons/lucide/folder-open.cjs.js +2 -0
- package/dist/_virtual/~icons/lucide/folder-open.cjs.js.map +1 -0
- package/dist/_virtual/~icons/lucide/folder-open.esm.js +10 -0
- package/dist/_virtual/~icons/lucide/folder-open.esm.js.map +1 -0
- package/dist/_virtual/~icons/lucide/folder.cjs.js +2 -0
- package/dist/_virtual/~icons/lucide/folder.cjs.js.map +1 -0
- package/dist/_virtual/~icons/lucide/folder.esm.js +10 -0
- package/dist/_virtual/~icons/lucide/folder.esm.js.map +1 -0
- package/dist/_virtual/~icons/lucide/globe.esm.js +1 -2
- package/dist/_virtual/~icons/lucide/link.esm.js +1 -2
- package/dist/_virtual/~icons/lucide/log-in.esm.js +1 -2
- package/dist/_virtual/~icons/lucide/log-out.esm.js +1 -2
- package/dist/_virtual/~icons/lucide/square-arrow-out-up-right.esm.js +1 -2
- package/dist/_virtual/~icons/lucide/triangle-alert.esm.js +1 -2
- package/dist/_virtual/~icons/lucide/user-round.esm.js +1 -2
- package/dist/_virtual/~icons/lucide/user.esm.js +1 -2
- package/dist/_virtual/~icons/lucide/users.esm.js +1 -2
- package/dist/_virtual/~icons/lucide/x.esm.js +1 -2
- package/dist/_virtual/~icons/svg-spinners/180-ring.esm.js +1 -2
- package/dist/_virtual/~icons/svg-spinners/3-dots-fade.esm.js +1 -2
- package/dist/acl/access-controller.esm.js +1 -2
- package/dist/acl/access-groups.esm.js +1 -2
- package/dist/acl/acl-control.esm.js +1 -2
- package/dist/acl/acl.esm.js +1 -2
- package/dist/acl/add-agent-buttons.esm.js +1 -2
- package/dist/acl/index.esm.js +1 -2
- package/dist/chat/bookmarks.esm.js +1 -2
- package/dist/chat/chatLogic.esm.js +1 -2
- package/dist/chat/dateFolder.esm.js +1 -2
- package/dist/chat/infinite.cjs.js +1 -1
- package/dist/chat/infinite.cjs.js.map +1 -1
- package/dist/chat/infinite.esm.js +2 -3
- package/dist/chat/infinite.esm.js.map +1 -1
- package/dist/chat/keys.esm.js +1 -2
- package/dist/chat/message.esm.js +1 -2
- package/dist/chat/messageTools.esm.js +1 -2
- package/dist/chat/signature.esm.js +0 -1
- package/dist/chunks/{DialogProvider-B7oVYKJO.js → DialogProvider-C89v7x0r.js} +5 -8
- package/dist/chunks/{DialogProvider-B7oVYKJO.js.map → DialogProvider-C89v7x0r.js.map} +1 -1
- package/dist/chunks/{access-control-modal-eOv2-U27.js → access-control-modal-Dcg6-f4V.js} +924 -540
- package/dist/chunks/access-control-modal-Dcg6-f4V.js.map +1 -0
- package/dist/chunks/{account-DpmYJEd-.js → account-D6JK-n7u.js} +16 -21
- package/dist/chunks/{account-DpmYJEd-.js.map → account-D6JK-n7u.js.map} +1 -1
- package/dist/chunks/{auth-Hp8M6TQf.js → auth-B_abPDvH.js} +28 -31
- package/dist/chunks/auth-B_abPDvH.js.map +1 -0
- package/dist/chunks/{avatar-D5rcw6gN.js → avatar-BR3COVSQ.js} +6 -9
- package/dist/chunks/{avatar-D5rcw6gN.js.map → avatar-BR3COVSQ.js.map} +1 -1
- package/dist/chunks/{button-lol95DqR.js → button-D6qO2idW.js} +5 -8
- package/dist/chunks/{button-lol95DqR.js.map → button-D6qO2idW.js.map} +1 -1
- package/dist/chunks/{chevron-down-ujxRg3MD.js → chevron-down-CqUEolao.js} +2 -3
- package/dist/chunks/chevron-down-CqUEolao.js.map +1 -0
- package/dist/chunks/{chunk.UEBQI7VV-OBPERnuy.js → chunk.UEBQI7VV-lcP-fpUk.js} +14 -23
- package/dist/chunks/{chunk.UEBQI7VV-OBPERnuy.js.map → chunk.UEBQI7VV-lcP-fpUk.js.map} +1 -1
- package/dist/chunks/{combobox-Dmv-TZtI.js → combobox-fSTp9qoT.js} +11 -15
- package/dist/chunks/combobox-fSTp9qoT.js.map +1 -0
- package/dist/chunks/{combobox-option-B-Hksiq2.js → combobox-option-DOtGuKel.js} +4 -6
- package/dist/chunks/{combobox-option-B-Hksiq2.js.map → combobox-option-DOtGuKel.js.map} +1 -1
- package/dist/chunks/{components-Bdqizu8x.js → components-C8c2Ucm5.js} +17 -33
- package/dist/chunks/{components-Bdqizu8x.js.map → components-C8c2Ucm5.js.map} +1 -1
- package/dist/chunks/{dialog-DYgcCurb.js → dialog-CgYK767T.js} +8 -10
- package/dist/chunks/{dialog-DYgcCurb.js.map → dialog-CgYK767T.js.map} +1 -1
- package/dist/chunks/{dialog-content-jx08y2Oa.js → dialog-content-DjwRH1ci.js} +4 -6
- package/dist/chunks/{dialog-content-jx08y2Oa.js.map → dialog-content-DjwRH1ci.js.map} +1 -1
- package/dist/chunks/{dialog-footer-Bhl8k1PX.js → dialog-footer-GQWi8lfB.js} +4 -6
- package/dist/chunks/{dialog-footer-Bhl8k1PX.js.map → dialog-footer-GQWi8lfB.js.map} +1 -1
- package/dist/chunks/{dialog-header-Dn6PQzFB.js → dialog-header-c3qOMQfb.js} +4 -6
- package/dist/chunks/{dialog-header-Dn6PQzFB.js.map → dialog-header-c3qOMQfb.js.map} +1 -1
- package/dist/chunks/{dialogs-B6TfxrPt.js → dialogs-BmtLjMzg.js} +5 -7
- package/dist/chunks/{dialogs-B6TfxrPt.js.map → dialogs-BmtLjMzg.js.map} +1 -1
- package/dist/chunks/{dialogs-root-Qiucjj9u.js → dialogs-root-BcQo2XMF.js} +6 -8
- package/dist/chunks/{dialogs-root-Qiucjj9u.js.map → dialogs-root-BcQo2XMF.js.map} +1 -1
- package/dist/chunks/{error-state-DK1x-kNd.js → error-state-BD4_Wrkz.js} +6 -8
- package/dist/chunks/{error-state-DK1x-kNd.js.map → error-state-BD4_Wrkz.js.map} +1 -1
- package/dist/chunks/{guard-FbhNrJGh.js → guard-bTeM7wd7.js} +5 -7
- package/dist/chunks/{guard-FbhNrJGh.js.map → guard-bTeM7wd7.js.map} +1 -1
- package/dist/chunks/{index.esm-N8NHgFUj.js → index.esm-CECfD0e9.js} +3256 -3083
- package/dist/chunks/index.esm-CECfD0e9.js.map +1 -0
- package/dist/chunks/{input-lpqx_k53.js → input-Bz3l514j.js} +5 -7
- package/dist/chunks/{input-lpqx_k53.js.map → input-Bz3l514j.js.map} +1 -1
- package/dist/chunks/{jsonld-Djw57WRt.js → jsonld-CnfzCyCn.js} +4 -5
- package/dist/chunks/{jsonld-Djw57WRt.js.map → jsonld-CnfzCyCn.js.map} +1 -1
- package/dist/chunks/{login-button-DCq4Gi3_.js → login-button-Div4ZT4J.js} +6 -8
- package/dist/chunks/{login-button-DCq4Gi3_.js.map → login-button-Div4ZT4J.js.map} +1 -1
- package/dist/chunks/{logout-button-D3dJrsV4.js → logout-button-D3lqlnCX.js} +6 -8
- package/dist/chunks/{logout-button-D3dJrsV4.js.map → logout-button-D3lqlnCX.js.map} +1 -1
- package/dist/chunks/{menu-RJklqKQE.js → menu-D0k2fkiE.js} +22 -39
- package/dist/chunks/{menu-RJklqKQE.js.map → menu-D0k2fkiE.js.map} +1 -1
- package/dist/chunks/{menu-item-C2e0qj-v.js → menu-item-nfPpH4dN.js} +5 -7
- package/dist/chunks/{menu-item-C2e0qj-v.js.map → menu-item-nfPpH4dN.js.map} +1 -1
- package/dist/chunks/{photo-capture-DEMQNmzb.js → photo-capture-hJaJm4TM.js} +6 -8
- package/dist/chunks/{photo-capture-DEMQNmzb.js.map → photo-capture-hJaJm4TM.js.map} +1 -1
- package/dist/chunks/{photo-capture-modal-C7oESDQq.js → photo-capture-modal-BsHv6wmh.js} +9 -11
- package/dist/chunks/{photo-capture-modal-C7oESDQq.js.map → photo-capture-modal-BsHv6wmh.js.map} +1 -1
- package/dist/chunks/{provider-D9UgRI4G.js → provider-Dcd1NPYx.js} +7 -9
- package/dist/chunks/{provider-D9UgRI4G.js.map → provider-Dcd1NPYx.js.map} +1 -1
- package/dist/chunks/{query-BYu9q8lA.js → query-DjAOg-tk.js} +3 -5
- package/dist/chunks/{query-BYu9q8lA.js.map → query-DjAOg-tk.js.map} +1 -1
- package/dist/chunks/{rdf-form-BLgKdXP2.js → rdf-form-CmPnHKR-.js} +23 -25
- package/dist/chunks/{rdf-form-BLgKdXP2.js.map → rdf-form-CmPnHKR-.js.map} +1 -1
- package/dist/chunks/{rdf-input-DWnDpkXy.js → rdf-input-3AgoeCkJ.js} +48 -51
- package/dist/chunks/{rdf-input-DWnDpkXy.js.map → rdf-input-3AgoeCkJ.js.map} +1 -1
- package/dist/chunks/{select-CnkJMo_K.js → select-ClPkDkGl.js} +7 -10
- package/dist/chunks/{select-CnkJMo_K.js.map → select-ClPkDkGl.js.map} +1 -1
- package/dist/chunks/{select-option-B9HSZiTp.js → select-option-DQan7rcB.js} +4 -6
- package/dist/chunks/{select-option-B9HSZiTp.js.map → select-option-DQan7rcB.js.map} +1 -1
- package/dist/chunks/{show-dialog-eEW5yRBv.js → show-dialog-DAmFslrf.js} +2 -3
- package/dist/chunks/{show-dialog-eEW5yRBv.js.map → show-dialog-DAmFslrf.js.map} +1 -1
- package/dist/chunks/{signup-button-BQ4AWem2.js → signup-button-2fAoS0Nv.js} +6 -8
- package/dist/chunks/{signup-button-BQ4AWem2.js.map → signup-button-2fAoS0Nv.js.map} +1 -1
- package/dist/chunks/{solid-emblem-DNjQSX1z.js → solid-emblem-DwLdkGuO.js} +5 -8
- package/dist/chunks/{solid-emblem-DNjQSX1z.js.map → solid-emblem-DwLdkGuO.js.map} +1 -1
- package/dist/chunks/{src-DQMZZG1B.js → src-Dx7k_VIe.js} +2732 -2782
- package/dist/chunks/src-Dx7k_VIe.js.map +1 -0
- package/dist/chunks/{style-ChFDDB1c.js → style-w0Fl0xnd.js} +25 -29
- package/dist/chunks/{style-ChFDDB1c.js.map → style-w0Fl0xnd.js.map} +1 -1
- package/dist/chunks/{widgets-CVLwnfkU.js → widgets-BWpm5CPx.js} +694 -715
- package/dist/chunks/widgets-BWpm5CPx.js.map +1 -0
- package/dist/chunks/{x-BRRkraZN.js → x-D1JUUSOS.js} +2 -3
- package/dist/chunks/x-D1JUUSOS.js.map +1 -0
- package/dist/components/access-control-modal/AccessControlAddAccess.cjs.js +11 -5
- package/dist/components/access-control-modal/AccessControlAddAccess.cjs.js.map +1 -1
- package/dist/components/access-control-modal/AccessControlAddAccess.d.ts +1 -0
- package/dist/components/access-control-modal/AccessControlAddAccess.d.ts.map +1 -1
- package/dist/components/access-control-modal/AccessControlAddAccess.esm.js +75 -57
- package/dist/components/access-control-modal/AccessControlAddAccess.esm.js.map +1 -1
- package/dist/components/access-control-modal/AccessControlAddAccess.styles.cjs.js +1 -1
- package/dist/components/access-control-modal/AccessControlAddAccess.styles.cjs.js.map +1 -1
- package/dist/components/access-control-modal/AccessControlAddAccess.styles.esm.js +2 -3
- package/dist/components/access-control-modal/AccessControlAddAccess.styles.esm.js.map +1 -1
- package/dist/components/access-control-modal/AccessControlErrors.cjs.js +3 -2
- package/dist/components/access-control-modal/AccessControlErrors.cjs.js.map +1 -1
- package/dist/components/access-control-modal/AccessControlErrors.d.ts +1 -0
- package/dist/components/access-control-modal/AccessControlErrors.d.ts.map +1 -1
- package/dist/components/access-control-modal/AccessControlErrors.esm.js +6 -3
- package/dist/components/access-control-modal/AccessControlErrors.esm.js.map +1 -1
- package/dist/components/access-control-modal/AccessControlErrors.styles.esm.js +1 -2
- package/dist/components/access-control-modal/AccessControlGeneralAccess.cjs.js +5 -3
- package/dist/components/access-control-modal/AccessControlGeneralAccess.cjs.js.map +1 -1
- package/dist/components/access-control-modal/AccessControlGeneralAccess.d.ts +1 -0
- package/dist/components/access-control-modal/AccessControlGeneralAccess.d.ts.map +1 -1
- package/dist/components/access-control-modal/AccessControlGeneralAccess.esm.js +57 -45
- package/dist/components/access-control-modal/AccessControlGeneralAccess.esm.js.map +1 -1
- package/dist/components/access-control-modal/AccessControlGeneralAccess.styles.esm.js +1 -2
- package/dist/components/access-control-modal/AccessControlModal.cjs.js +112 -6
- package/dist/components/access-control-modal/AccessControlModal.cjs.js.map +1 -1
- package/dist/components/access-control-modal/AccessControlModal.d.ts +27 -0
- package/dist/components/access-control-modal/AccessControlModal.d.ts.map +1 -1
- package/dist/components/access-control-modal/AccessControlModal.esm.js +411 -127
- package/dist/components/access-control-modal/AccessControlModal.esm.js.map +1 -1
- package/dist/components/access-control-modal/AccessControlModal.styles.cjs.js +1 -1
- package/dist/components/access-control-modal/AccessControlModal.styles.cjs.js.map +1 -1
- package/dist/components/access-control-modal/AccessControlModal.styles.esm.js +2 -3
- package/dist/components/access-control-modal/AccessControlModal.styles.esm.js.map +1 -1
- package/dist/components/access-control-modal/AccessControlSharedAccess.cjs.js +6 -5
- package/dist/components/access-control-modal/AccessControlSharedAccess.cjs.js.map +1 -1
- package/dist/components/access-control-modal/AccessControlSharedAccess.d.ts +1 -0
- package/dist/components/access-control-modal/AccessControlSharedAccess.d.ts.map +1 -1
- package/dist/components/access-control-modal/AccessControlSharedAccess.esm.js +71 -55
- package/dist/components/access-control-modal/AccessControlSharedAccess.esm.js.map +1 -1
- package/dist/components/access-control-modal/AccessControlSharedAccess.styles.esm.js +1 -2
- package/dist/components/access-control-modal/accessGrantDrafts.cjs.js +1 -1
- package/dist/components/access-control-modal/accessGrantDrafts.cjs.js.map +1 -1
- package/dist/components/access-control-modal/accessGrantDrafts.d.ts.map +1 -1
- package/dist/components/access-control-modal/accessGrantDrafts.esm.js +6 -7
- package/dist/components/access-control-modal/accessGrantDrafts.esm.js.map +1 -1
- package/dist/components/access-control-modal/accessTargetResolver.cjs.js +1 -1
- package/dist/components/access-control-modal/accessTargetResolver.cjs.js.map +1 -1
- package/dist/components/access-control-modal/accessTargetResolver.d.ts +1 -0
- package/dist/components/access-control-modal/accessTargetResolver.d.ts.map +1 -1
- package/dist/components/access-control-modal/accessTargetResolver.esm.js +92 -46
- package/dist/components/access-control-modal/accessTargetResolver.esm.js.map +1 -1
- package/dist/components/access-control-modal/applyAccessChanges.cjs.js +1 -1
- package/dist/components/access-control-modal/applyAccessChanges.cjs.js.map +1 -1
- package/dist/components/access-control-modal/applyAccessChanges.d.ts +4 -2
- package/dist/components/access-control-modal/applyAccessChanges.d.ts.map +1 -1
- package/dist/components/access-control-modal/applyAccessChanges.esm.js +23 -15
- package/dist/components/access-control-modal/applyAccessChanges.esm.js.map +1 -1
- package/dist/components/access-control-modal/buildAccessChanges.esm.js +1 -2
- package/dist/components/access-control-modal/helpers.esm.js +1 -2
- package/dist/components/access-control-modal/index.esm.js +1 -2
- package/dist/components/access-control-modal/types.d.ts +6 -1
- package/dist/components/access-control-modal/types.d.ts.map +1 -1
- package/dist/components/access-control-modal.js +1 -1
- package/dist/components/account/Account.esm.js +1 -2
- package/dist/components/account/Account.styles.esm.js +1 -2
- package/dist/components/account/index.esm.js +1 -2
- package/dist/components/account.js +1 -1
- package/dist/components/avatar/Avatar.esm.js +1 -2
- package/dist/components/avatar/Avatar.styles.esm.js +1 -2
- package/dist/components/avatar/index.esm.js +1 -2
- package/dist/components/avatar.js +1 -1
- package/dist/components/button/Button.esm.js +1 -2
- package/dist/components/button/Button.styles.esm.js +1 -2
- package/dist/components/button/index.esm.js +1 -2
- package/dist/components/button.js +1 -1
- package/dist/components/combobox/Combobox.cjs.js +1 -0
- package/dist/components/combobox/Combobox.cjs.js.map +1 -1
- package/dist/components/combobox/Combobox.d.ts.map +1 -1
- package/dist/components/combobox/Combobox.esm.js +2 -2
- package/dist/components/combobox/Combobox.esm.js.map +1 -1
- package/dist/components/combobox/Combobox.styles.esm.js +1 -2
- package/dist/components/combobox/index.esm.js +1 -2
- package/dist/components/combobox-option/ComboboxOption.esm.js +1 -2
- package/dist/components/combobox-option/index.esm.js +1 -2
- package/dist/components/combobox-option.js +1 -1
- package/dist/components/combobox.js +1 -1
- package/dist/components/dialog/Dialog.esm.js +1 -2
- package/dist/components/dialog/Dialog.styles.esm.js +1 -2
- package/dist/components/dialog/index.esm.js +1 -2
- package/dist/components/dialog-content/DialogContent.esm.js +1 -2
- package/dist/components/dialog-content/DialogContent.styles.esm.js +1 -2
- package/dist/components/dialog-content/index.esm.js +1 -2
- package/dist/components/dialog-content.js +1 -1
- package/dist/components/dialog-footer/DialogFooter.esm.js +1 -2
- package/dist/components/dialog-footer/DialogFooter.styles.esm.js +1 -2
- package/dist/components/dialog-footer/index.esm.js +1 -2
- package/dist/components/dialog-footer.js +1 -1
- package/dist/components/dialog-header/DialogHeader.esm.js +1 -2
- package/dist/components/dialog-header/DialogHeader.styles.esm.js +1 -2
- package/dist/components/dialog-header/index.esm.js +1 -2
- package/dist/components/dialog-header.js +1 -1
- package/dist/components/dialog-provider/DialogProvider.esm.js +1 -2
- package/dist/components/dialog-provider/index.esm.js +1 -2
- package/dist/components/dialog-provider.js +2 -3
- package/dist/components/dialog.js +1 -1
- package/dist/components/dialogs-root/DialogsRoot.esm.js +1 -2
- package/dist/components/dialogs-root/index.esm.js +1 -2
- package/dist/components/dialogs-root.js +1 -1
- package/dist/components/error-state/ErrorState.esm.js +1 -2
- package/dist/components/error-state/ErrorState.styles.esm.js +1 -2
- package/dist/components/error-state.js +1 -1
- package/dist/components/guard/Guard.esm.js +1 -2
- package/dist/components/guard/index.esm.js +1 -2
- package/dist/components/guard.js +1 -1
- package/dist/components/input/Input.esm.js +1 -2
- package/dist/components/input/Input.styles.esm.js +1 -2
- package/dist/components/input/index.esm.js +1 -2
- package/dist/components/input.js +1 -1
- package/dist/components/login-button/LoginButton.esm.js +1 -2
- package/dist/components/login-button/index.esm.js +1 -2
- package/dist/components/login-button.js +1 -1
- package/dist/components/login-modal/LoginModal.esm.js +1 -2
- package/dist/components/login-modal/LoginModal.styles.esm.js +1 -2
- package/dist/components/login-modal/index.esm.js +1 -2
- package/dist/components/login-modal.js +1 -1
- package/dist/components/logout-button/LogoutButton.esm.js +1 -2
- package/dist/components/logout-button/index.esm.js +1 -2
- package/dist/components/logout-button.js +1 -1
- package/dist/components/menu/Menu.esm.js +1 -2
- package/dist/components/menu/Menu.styles.esm.js +1 -2
- package/dist/components/menu/index.esm.js +1 -2
- package/dist/components/menu-item/MenuItem.esm.js +1 -2
- package/dist/components/menu-item/MenuItem.styles.esm.js +1 -2
- package/dist/components/menu-item/index.esm.js +1 -2
- package/dist/components/menu-item.js +1 -1
- package/dist/components/menu.js +1 -1
- package/dist/components/photo-capture/PhotoCapture.esm.js +1 -2
- package/dist/components/photo-capture/index.esm.js +1 -2
- package/dist/components/photo-capture-modal/PhotoCaptureModal.cjs.js +1 -1
- package/dist/components/photo-capture-modal/PhotoCaptureModal.cjs.js.map +1 -1
- package/dist/components/photo-capture-modal/PhotoCaptureModal.esm.js +2 -3
- package/dist/components/photo-capture-modal/PhotoCaptureModal.esm.js.map +1 -1
- package/dist/components/photo-capture-modal/PhotoCaptureModal.styles.esm.js +1 -2
- package/dist/components/photo-capture-modal/index.esm.js +1 -2
- package/dist/components/photo-capture-modal.js +1 -1
- package/dist/components/photo-capture.js +1 -1
- package/dist/components/provider/Provider.esm.js +1 -2
- package/dist/components/provider/index.esm.js +1 -2
- package/dist/components/provider.js +1 -1
- package/dist/components/rdf-form/RDFForm.esm.js +1 -2
- package/dist/components/rdf-form/index.esm.js +1 -2
- package/dist/components/rdf-form.js +1 -1
- package/dist/components/rdf-input/RDFInput.esm.js +1 -2
- package/dist/components/rdf-input/index.esm.js +1 -2
- package/dist/components/rdf-input.js +1 -1
- package/dist/components/select/Select.esm.js +1 -2
- package/dist/components/select/Select.styles.esm.js +1 -2
- package/dist/components/select/index.esm.js +1 -2
- package/dist/components/select-option/SelectOption.esm.js +1 -2
- package/dist/components/select-option/index.esm.js +1 -2
- package/dist/components/select-option.js +1 -1
- package/dist/components/select.js +1 -1
- package/dist/components/signup-button/SignupButton.esm.js +1 -2
- package/dist/components/signup-button/index.esm.js +1 -2
- package/dist/components/signup-button.js +1 -1
- package/dist/components/solid-emblem/SolidEmblem.esm.js +1 -2
- package/dist/components/solid-emblem/SolidEmblem.styles.esm.js +1 -2
- package/dist/components/solid-emblem/index.esm.js +1 -2
- package/dist/components/solid-emblem.js +1 -1
- package/dist/components.js +28 -28
- package/dist/create/create.esm.js +1 -2
- package/dist/create/index.esm.js +1 -2
- package/dist/create/types.esm.js +1 -2
- package/dist/footer/index.esm.js +1 -2
- package/dist/header/empty-profile.esm.js +1 -2
- package/dist/header/index.esm.js +1 -2
- package/dist/index.esm.js +1 -2
- package/dist/index.js +8 -8
- package/dist/lib/auth/Account.esm.js +1 -2
- package/dist/lib/auth/NoopAuth.esm.js +1 -2
- package/dist/lib/auth/SolidAuth.esm.js +1 -2
- package/dist/lib/auth/context.esm.js +1 -2
- package/dist/lib/code-editor/CodeEditor.esm.js +1 -2
- package/dist/lib/components/decorators.esm.js +1 -2
- package/dist/lib/components/dialog-component/DialogComponent.esm.js +1 -2
- package/dist/lib/components/form-control-component/FormControlComponent.esm.js +1 -2
- package/dist/lib/components/ids.esm.js +1 -2
- package/dist/lib/components/traits/DialogTrait.esm.js +1 -2
- package/dist/lib/components/traits/FormControlTrait.esm.js +1 -2
- package/dist/lib/components/web-component/WebComponent.esm.js +1 -2
- package/dist/lib/components/web-component/WebComponent.styles.esm.js +1 -2
- package/dist/lib/debug.esm.js +1 -2
- package/dist/lib/dialogs/Dialog.esm.js +1 -2
- package/dist/lib/dialogs/context.esm.js +1 -2
- package/dist/lib/dialogs/events/close-dialog.esm.js +1 -2
- package/dist/lib/dialogs/events/show-dialog.esm.js +1 -2
- package/dist/lib/dialogs/helpers.esm.js +1 -2
- package/dist/lib/file-explorer/context.esm.js +1 -2
- package/dist/lib/forms/fieldParams.esm.js +1 -2
- package/dist/lib/forms/rdfFormsHelper.esm.js +1 -2
- package/dist/lib/forms/store/NoopStore.esm.js +1 -2
- package/dist/lib/forms/store/StoreContext.esm.js +1 -2
- package/dist/lib/iconBase.esm.js +1 -2
- package/dist/lib/log.esm.js +1 -2
- package/dist/lib/messageArea.esm.js +1 -2
- package/dist/lib/newperson.esm.js +1 -2
- package/dist/lib/ns.esm.js +1 -2
- package/dist/lib/pad.esm.js +1 -2
- package/dist/lib/participation.esm.js +1 -2
- package/dist/lib/preferences.esm.js +1 -2
- package/dist/lib/style.esm.js +1 -2
- package/dist/lib/styleConstants.esm.js +1 -2
- package/dist/lib/style_multiSelect.esm.js +1 -2
- package/dist/lib/table.esm.js +1 -2
- package/dist/lib/tabs.esm.js +1 -2
- package/dist/lib/timing.esm.js +1 -2
- package/dist/lib/values.esm.js +1 -2
- package/dist/loader.js +8 -8
- package/dist/login/login.esm.js +1 -2
- package/dist/matrix/index.esm.js +1 -2
- package/dist/matrix/matrix.esm.js +1 -2
- package/dist/media/index.esm.js +1 -2
- package/dist/media/media-capture.esm.js +1 -2
- package/dist/signup/config-default.esm.js +1 -2
- package/dist/signup/signup.esm.js +1 -2
- package/dist/solid-ui.js +243 -126
- package/dist/solid-ui.min.js +243 -126
- package/dist/solid-ui.min.js.map +1 -1
- package/dist/utils/headerFooterHelpers.esm.js +1 -2
- package/dist/utils/index.esm.js +1 -2
- package/dist/utils/keyHelpers/accessData.esm.js +1 -2
- package/dist/utils/keyHelpers/acl.esm.js +1 -2
- package/dist/utils/keyHelpers/otherHelpers.esm.js +1 -2
- package/dist/utils/label.esm.js +1 -2
- package/dist/widgets/buttons/iconLinks.esm.js +1 -2
- package/dist/widgets/buttons.esm.js +1 -2
- package/dist/widgets/dragAndDrop.esm.js +1 -2
- package/dist/widgets/error.esm.js +1 -2
- package/dist/widgets/forms/autocomplete/autocompleteBar.esm.js +1 -2
- package/dist/widgets/forms/autocomplete/autocompleteField.esm.js +1 -2
- package/dist/widgets/forms/autocomplete/autocompletePicker.cjs.js +1 -1
- package/dist/widgets/forms/autocomplete/autocompletePicker.cjs.js.map +1 -1
- package/dist/widgets/forms/autocomplete/autocompletePicker.esm.js +2 -3
- package/dist/widgets/forms/autocomplete/autocompletePicker.esm.js.map +1 -1
- package/dist/widgets/forms/autocomplete/language.esm.js +1 -2
- package/dist/widgets/forms/autocomplete/publicData.esm.js +1 -2
- package/dist/widgets/forms/basic.esm.js +1 -2
- package/dist/widgets/forms/fieldFunction.esm.js +1 -2
- package/dist/widgets/forms/fieldParams.esm.js +1 -2
- package/dist/widgets/forms/formStyle.esm.js +1 -2
- package/dist/widgets/forms.esm.js +1 -2
- package/dist/widgets/index.esm.js +1 -2
- package/dist/widgets/multiSelect.esm.js +1 -2
- package/dist/widgets/peoplePicker.esm.js +1 -2
- package/dist/widgets/widgetHelpers.esm.js +1 -2
- package/package.json +2 -2
- package/dist/chunks/access-control-modal-eOv2-U27.js.map +0 -1
- package/dist/chunks/auth-Hp8M6TQf.js.map +0 -1
- package/dist/chunks/chevron-down-ujxRg3MD.js.map +0 -1
- package/dist/chunks/combobox-Dmv-TZtI.js.map +0 -1
- package/dist/chunks/index.esm-N8NHgFUj.js.map +0 -1
- package/dist/chunks/src-DQMZZG1B.js.map +0 -1
- package/dist/chunks/widgets-CVLwnfkU.js.map +0 -1
- package/dist/chunks/x-BRRkraZN.js.map +0 -1
|
@@ -7,7 +7,7 @@ import * as a from "rdflib";
|
|
|
7
7
|
import { solidLogicSingleton as o } from "solid-logic";
|
|
8
8
|
import s from "escape-html";
|
|
9
9
|
import { v4 as c } from "uuid";
|
|
10
|
-
|
|
10
|
+
// src/widgets/peoplePicker.js
|
|
11
11
|
var l = o.store, u = class {
|
|
12
12
|
constructor(e, t, n, r) {
|
|
13
13
|
this.options = r || {}, this.element = e, this.typeIndex = t, this.groupPickedCb = n, this.selectedgroup = this.options.selectedgroup, this.onSelectGroup = this.onSelectGroup.bind(this);
|
|
@@ -218,7 +218,6 @@ function _(t) {
|
|
|
218
218
|
groupContainer: l.sym(t.dir().uri + "Group/")
|
|
219
219
|
};
|
|
220
220
|
}
|
|
221
|
-
//#endregion
|
|
222
221
|
export { f as Group, p as GroupBuilder, d as GroupPicker, u as PeoplePicker, m as Person };
|
|
223
222
|
|
|
224
223
|
//# sourceMappingURL=peoplePicker.esm.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { style as e } from "../lib/style.esm.js";
|
|
2
|
-
|
|
2
|
+
// src/widgets/widgetHelpers.ts
|
|
3
3
|
var t = (e, t, n) => {
|
|
4
4
|
let r = e.createElement("tr");
|
|
5
5
|
return r.appendChild(e.createElement("td")).appendChild(t), r.subject = n, r;
|
|
@@ -9,7 +9,6 @@ var t = (e, t, n) => {
|
|
|
9
9
|
let i = n.appendChild(t.createElement("div"));
|
|
10
10
|
i.setAttribute("style", e.imageDivStyle), i.appendChild(r), r.setAttribute("draggable", "false");
|
|
11
11
|
};
|
|
12
|
-
//#endregion
|
|
13
12
|
export { n as addClickListenerToElement, r as createImageDiv, t as wrapDivInATR };
|
|
14
13
|
|
|
15
14
|
//# sourceMappingURL=widgetHelpers.esm.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "solid-ui",
|
|
3
|
-
"version": "5.0.2-
|
|
3
|
+
"version": "5.0.2-1",
|
|
4
4
|
"description": "UI library for Solid applications",
|
|
5
5
|
"main": "dist/index.cjs.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -114,7 +114,7 @@
|
|
|
114
114
|
"mime-types": "^3.0.2",
|
|
115
115
|
"pane-registry": "5.0.2-0",
|
|
116
116
|
"rdflib": "2.4.1",
|
|
117
|
-
"solid-logic": "6.0.1-
|
|
117
|
+
"solid-logic": "6.0.1-3",
|
|
118
118
|
"solid-namespace": "^0.5.4",
|
|
119
119
|
"uuid": "^14.0.0"
|
|
120
120
|
},
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"access-control-modal-eOv2-U27.js","names":["customElement","WebComponent","html","property","state","ACCESS_ROLES","findImage","sym","styles","_classDecs","_AccessControlSharedA","_AccessControlSharedA2","_A","WeakMap","_B","_ref","_accessGrantViewModelsDecs","attribute","_searchValueDecs","_AccessControlSharedAccess","AccessControlSharedAccess","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_accessGrantViewModels","_init_searchValue","_classPrivateFieldGet","accessGrantViewModels","v","_classPrivateFieldSet","searchValue","onSearchInput","event","target","currentTarget","value","onSearchSelect","option","detail","label","onAccessGrantRoleChange","id","includes","role","dispatchEvent","CustomEvent","bubbles","composed","getFilteredAccessGrants","query","trim","toLowerCase","filter","subjectLabel","subjects","length","renderAccessGrant","entry","renderAuthorizationBadge","authorization","renderAuthorizationRole","badge","getAuthorizationBadge","kind","image","text","agent","getInitials","agentGroup","agentClass","origin","maxWords","parts","split","Boolean","slice","initials","map","part","join","toUpperCase","renderGrantRoleOptions","render","accessGrants","e","c","_initClass","_applyDecs","_Class","_identity","_defineProperty","default","_Class","_A","_B","_initProto","_initClass","_classDecs","_ref","_classPrivateFieldInitSpec","_checkPrivateRedeclaration","_classPrivateFieldSet","_assertClassBrand","_classPrivateFieldGet","_defineProperty","_toPropertyKey","_applyDecs","_setFunctionName","_checkInRHS","_toPrimitive","_identity","property","state","ACCESS_ROLES","sym","styles","customElement","WebComponent","html","property","ACCESS_ROLES","PUBLIC_ACCESS_ROLES","debug","styles","_classDecs","_AccessControlGeneral","_AccessControlGeneral2","_A","WeakMap","_B","_C","_ref","_subjectUriDecs","attribute","_authenticatedAccessRoleValueDecs","_publicAccessRoleValueDecs","_AccessControlGeneralAccess","AccessControlGeneralAccess","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_subjectUri","undefined","_init_authenticatedAccessRoleValue","_init_publicAccessRoleValue","_classPrivateFieldGet","subjectUri","v","_classPrivateFieldSet","authenticatedAccessRoleValue","publicAccessRoleValue","onAuthenticatedRoleChange","event","dispatchRoleChange","onPublicRoleChange","eventName","roles","value","detail","option","includes","role","dispatchEvent","CustomEvent","bubbles","composed","onCopyLinkClick","preventDefault","navigator","clipboard","writeText","error","renderAuthenticatedRoleOptions","map","renderPublicRoleOptions","renderAuthenticatedModeSelector","renderPublicModeSelector","renderGeneralAccessIcon","renderGeneralShareRow","options","title","description","variant","render","e","c","_initClass","_applyDecs","_Class","_identity","_defineProperty","default","_Class","_A","_B","_C","_initProto","_initClass","_classDecs","_subjectUriDecs","_init_subjectUri","_authenticatedAccessRoleValueDecs","_init_authenticatedAccessRoleValue","_publicAccessRoleValueDecs","_init_publicAccessRoleValue","_ref","_classPrivateFieldInitSpec","_checkPrivateRedeclaration","_classPrivateFieldSet","_assertClassBrand","_classPrivateFieldGet","_defineProperty","_toPropertyKey","_applyDecs","_setFunctionName","_checkInRHS","_toPrimitive","_identity","property","ACCESS_ROLES","PUBLIC_ACCESS_ROLES","error","styles","customElement","WebComponent","html","property","styles","_classDecs","_AccessControlErrors","_AccessControlErrors2","_A","WeakMap","_B","_ref","_errorsDecs","attribute","_successfulChangesRefreshedDecs","_AccessControlErrors3","AccessControlErrors","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_errors","_init_successfulChangesRefreshed","_classPrivateFieldGet","errors","v","_classPrivateFieldSet","successfulChangesRefreshed","onClose","event","stopPropagation","dispatchEvent","CustomEvent","bubbles","composed","render","length","map","error","label","action","role","e","c","_initClass","_applyDecs","_Class","_identity","_defineProperty","default","_Class","_A","_B","_initProto","_initClass","_classDecs","_errorsDecs","_init_errors","_successfulChangesRefreshedDecs","_init_successfulChangesRefreshed","_ref","_classPrivateFieldInitSpec","_checkPrivateRedeclaration","_classPrivateFieldSet","_assertClassBrand","_classPrivateFieldGet","_defineProperty","_toPropertyKey","_applyDecs","_setFunctionName","_checkInRHS","_toPrimitive","_identity","property","styles","isAbsoluteHttpUri","value","url","URL","protocol","Boolean","hostname","isOriginUrl","pathname","search","hash","username","password","normalizeOriginInput","trimmedValue","trim","undefined","parsed","isHttpOrigin","hasOnlyOriginParts","isRecognizedHost","includes","origin","dedupeByKey","items","getKey","uniqueItems","Map","item","key","has","set","values","dedupeComboboxOptions","options","option","label","Authenticated","Public","solidLogicSingleton","sym","getSharedAuthorization","authorization","agentClass","filter","iri","getAuthorizationSubjectEntries","subjectSets","type","iris","agent","agentGroup","origin","flatMap","map","getAccessGrantId","subject","sort","join","getAccessGrantIds","authorizations","occurrences","Map","sharedAuthorization","baseId","occurrence","get","set","getAuthorizationSubjectLabel","subjects","length","getAuthorizationRole","acl","roleFromModes","mode","createAccessGrantDraft","id","role","initialRole","subjectLabel","createAccessGrantDrafts","ids","index","getAccessGrantViewModels","drafts","left","right","leftIsOwner","rightIsOwner","indexOf","getChangedAccessGrants","getAuthenticatedAccessRole","accessGrants","find","item","includes","getPublicAccessRole","publicRoleFromModes","getAccessSubjectLabel","trim","sym","solidLogicSingleton","customElement","WebComponent","html","nothing","property","ACCESS_ROLES","styles","directoryEntryOptionTemplate","entry","renderDirectoryEntryIcon","label","sources","includes","_classDecs","_AccessControlAddAcce","_AccessControlAddAcce2","_A","WeakMap","_B","_C","_D","_E","_ref","_principalInputValueDecs","attribute","_addAccessRoleValueDecs","_pendingAccessGrantsDecs","_inputErrorDecs","_asyncOptionsProviderDecs","_AccessControlAddAccess","AccessControlAddAccess","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_principalInputValue","_init_addAccessRoleValue","_init_pendingAccessGrants","_init_inputError","_init_asyncOptionsProvider","_classPrivateFieldGet","principalInputValue","v","_classPrivateFieldSet","addAccessRoleValue","pendingAccessGrants","inputError","asyncOptionsProvider","onPrincipalInput","event","value","getEventValue","dispatchEvent","CustomEvent","detail","bubbles","composed","onPrincipalSelect","option","onRoleChange","role","onPendingGrantRemove","index","target","currentTarget","render","renderPendingAccessGrants","filter","map","length","grant","e","c","_initClass","_applyDecs","_Class","_identity","_defineProperty","default","_Class","_A","_B","_C","_D","_E","_initProto","_initClass","_classDecs","_principalInputValueDecs","_init_principalInputValue","_addAccessRoleValueDecs","_init_addAccessRoleValue","_pendingAccessGrantsDecs","_init_pendingAccessGrants","_ref","_classPrivateFieldInitSpec","_checkPrivateRedeclaration","_classPrivateFieldSet","_assertClassBrand","_classPrivateFieldGet","_defineProperty","_toPropertyKey","_applyDecs","_setFunctionName","_checkInRHS","_toPrimitive","_identity","nothing","property","ACCESS_ROLES","styles","defineAsyncComboboxOptionsProvider","directoryEntryOptionTemplate","label","DEFAULT_DIRECTORY_SOURCES","solidLogicSingleton","sym","dedupeByKey","dedupeComboboxOptions","isAbsoluteHttpUri","isOriginUrl","normalizeOriginInput","classifyAccessTarget","principal","normalizedOrigin","kind","subjectValue","acl","classifyAccessControlSubject","resolveAccessTargetLabel","resolvedPrincipal","preferredLabel","subject","store","fetcher","load","doc","resolvedLabel","trim","undefined","resolveAccessTarget","subjectType","createUrlOption","uri","resolved","value","directoryEntryToOption","entry","labelValue","template","getPreferredAccessPrincipalOptions","query","URL","origin","urlOption","getShortQueryOptions","preferredOptions","length","selectable","accessPrincipalOptionsProvider","filter","entries","directory","search","sources","error","verifiedEntries","Promise","all","map","options","entryLabel","option","solidLogicSingleton","sym","DEFAULT_DIRECTORY_SOURCES","Public","solidLogicSingleton","applyAccessChanges","subjectUri","accessChanges","errors","subject","label","role","plan","acl","planRevoke","planGrant","type","iri","modesFromPublicRole","modesFromRole","applyPlan","error","push","action","targetUri","message","Error","solidLogicSingleton","getAccessSubjectLabel","buildAccessChanges","pendingAccessGrants","generalAccessChanges","changedAccessGrants","map","grant","subject","type","subjectType","iri","subjectValue","role","label","flatMap","subjects","customElement","DialogComponent","html","property","state","label","debug","Authenticated","Public","solidLogicSingleton","sym","styles","dedupeByKey","createAccessGrantDrafts","getAccessGrantIds","getAccessGrantViewModels","getAuthenticatedAccessRole","getAuthorizationSubjectLabel","getChangedAccessGrants","getPublicAccessRole","getSharedAuthorization","accessPrincipalOptionsProvider","resolveAccessTarget","applyAccessChanges","buildAccessChanges","isDefined","value","undefined","_classDecs","_AccessControlModal","_AccessControlModal2","_A","WeakMap","_B","_C","_D","_E","_F","_G","_H","_I","_J","_K","_ref","_subjectUriDecs","attribute","_accessGrantsDecs","_principalInputValueDecs","_addAccessRoleValueDecs","_authenticatedAccessRoleValueDecs","_publicAccessRoleValueDecs","_submittingDecs","_pendingAccessGrantsDecs","_accessGrantDraftsDecs","_errorsDecs","_successfulChangesRefreshedDecs","_AccessControlModal3","AccessControlModal","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_subjectUri","_init_accessGrants","_init_principalInputValue","_init_addAccessRoleValue","_init_authenticatedAccessRoleValue","_init_publicAccessRoleValue","_init_submitting","_init_pendingAccessGrants","_init_accessGrantDrafts","_init_errors","_init_successfulChangesRefreshed","_defineProperty","_classPrivateFieldGet","subjectUri","v","_classPrivateFieldSet","accessGrants","principalInputValue","addAccessRoleValue","authenticatedAccessRoleValue","publicAccessRoleValue","submitting","pendingAccessGrants","accessGrantDrafts","errors","successfulChangesRefreshed","disconnectedCallback","accessGrantLabelRequestVersion","inputError","find","error","action","message","saveErrors","filter","setInputError","item","clearInputError","willUpdate","changedProperties","has","updated","refreshAccessGrantLabels","catch","requestVersion","grants","length","labels","Promise","all","map","authorization","agentGroup","groupUri","store","fetcher","load","doc","labelsById","Map","id","index","draft","subjectLabel","get","getDialogTitle","subject","trim","render","dialogTitle","onSubmit","onPrincipalInput","onPrincipalSelect","onAddAccessRoleInput","onPendingGrantRemoved","onAccessGrantRoleInput","onAuthenticatedAccessRoleInput","onPublicAccessRoleInput","onCancelClick","hasUnsavedChanges","onSaveClick","e","preventDefault","commitPrincipalFromInputSafely","committed","saveAccessChanges","close","changedAccessGrants","generalAccessChanges","getGeneralAccessChanges","accessChanges","acl","findAccessGrants","targetUri","Error","event","detail","queuePendingPrincipal","currentAuthenticatedRole","currentPublicRole","authenticatedChange","role","publicChange","grant","_","pendingIndex","Boolean","commitPrincipalFromInput","rawValue","inputSnapshot","principal","preferredLabel","snapshot","result","createPendingAccessGrant","merged","dedupePendingAccessGrants","normalizedPrincipal","resolvedTarget","subjectType","subjectValue","draftGrants","draftGrant","c","_initClass","_applyDecs","_Class","_identity","default","property","state","error","solidLogicSingleton","sym","styles","AccessControlModal","AccessControlModal","namedNode","Authenticated","c$1","h","g","c","Public","label","error","findImage","DialogComponent","A","customElement","n","WebComponent","i","b","defineAsyncComboboxOptionsProvider","iconlucidecirclex","AccessControlSharedAccess_styles_default","_Class$4","_AccessControlSharedAccess","_A$4","_B$4","_initProto$4","_initClass$4","_classDecs$4","_accessGrantViewModelsDecs","_init_accessGrantViewModels","_searchValueDecs","_init_searchValue","_AccessControlSharedA2","_ref$4","_classPrivateFieldInitSpec$4","a","_checkPrivateRedeclaration$4","_classPrivateFieldSet$4","s","_assertClassBrand$4","r","_classPrivateFieldGet$4","_defineProperty$4","_toPropertyKey$4","t","_applyDecs$4","o","applyDec","m","y","v","u","w","S","d","p","_setFunctionName$4","P","j","D","I","F","l","f","N","_checkInRHS$4","_toPrimitive$4","e","_identity$4","_AccessControlSharedA","args","target","event","option","value","detail","query","subjects","subjectLabel","entry","badge","authorization","agent","image","agentClass","maxWords","part","role","id","accessGrants","iconlucidelink","iconlucideglobe","AccessControlGeneralAccess_styles_default","_Class$3","_AccessControlGeneralAccess","_A$3","_B$3","_C$2","_initProto$3","_initClass$3","_classDecs$3","_subjectUriDecs$1","_init_subjectUri$1","_authenticatedAccessRoleValueDecs$1","_init_authenticatedAccessRoleValue$1","_publicAccessRoleValueDecs$1","_init_publicAccessRoleValue$1","_AccessControlGeneral2","_ref$3","_classPrivateFieldInitSpec$3","_checkPrivateRedeclaration$3","_classPrivateFieldSet$3","_assertClassBrand$3","_classPrivateFieldGet$3","_defineProperty$3","_toPropertyKey$3","_applyDecs$3","_setFunctionName$3","_checkInRHS$3","_toPrimitive$3","_identity$3","_AccessControlGeneral","roles","eventName","error$4","options","AccessControlErrors_styles_default","_Class$2","_AccessControlErrors3","_A$2","_B$2","_initProto$2","_initClass$2","_classDecs$2","_errorsDecs$1","_init_errors$1","_successfulChangesRefreshedDecs$1","_init_successfulChangesRefreshed$1","_AccessControlErrors2","_ref$2","_classPrivateFieldInitSpec$2","_checkPrivateRedeclaration$2","_classPrivateFieldSet$2","_assertClassBrand$2","_classPrivateFieldGet$2","_defineProperty$2","_toPropertyKey$2","_applyDecs$2","_setFunctionName$2","_checkInRHS$2","_toPrimitive$2","_identity$2","_AccessControlErrors","AccessControlModal_styles_default","isAbsoluteHttpUri","url","isOriginUrl","normalizeOriginInput","trimmedValue","parsed","isHttpOrigin","hasOnlyOriginParts","isRecognizedHost","dedupeByKey","uniqueItems","item","items","key","getKey","dedupeComboboxOptions","getSharedAuthorization","iri","getAuthorizationSubjectEntries","iris","getAccessGrantId","subject","getAccessGrantIds","occurrences","authorizations","baseId","occurrence","getAuthorizationSubjectLabel","getAuthorizationRole","createAccessGrantDraft","sharedAuthorization","createAccessGrantDrafts","ids","index","getAccessGrantViewModels","drafts","leftIsOwner","left","rightIsOwner","right","getChangedAccessGrants","initialRole","getAuthenticatedAccessRole","getPublicAccessRole","getAccessSubjectLabel","iconlucidebookuser","iconlucideuserround","iconlucideusers","AccessControlAddAccess_styles_default","_Class$1","_AccessControlAddAccess","_A$1","_B$1","_C$1","_D$1","_E$1","_initProto$1","_initClass$1","_classDecs$1","_principalInputValueDecs$1","_init_principalInputValue$1","_addAccessRoleValueDecs$1","_init_addAccessRoleValue$1","_pendingAccessGrantsDecs$1","_init_pendingAccessGrants$1","_inputErrorDecs","_init_inputError","_asyncOptionsProviderDecs","_init_asyncOptionsProvider","_AccessControlAddAcce2","_ref$1","_classPrivateFieldInitSpec$1","_checkPrivateRedeclaration$1","_classPrivateFieldSet$1","_assertClassBrand$1","_classPrivateFieldGet$1","_defineProperty$1","_toPropertyKey$1","_applyDecs$1","_setFunctionName$1","_checkInRHS$1","_toPrimitive$1","_identity$1","directoryEntryOptionTemplate","renderDirectoryEntryIcon","_AccessControlAddAcce","grant","classifyAccessTarget","normalizedOrigin","principal","resolveAccessTargetLabel","resolvedPrincipal","resolvedLabel","preferredLabel","resolveAccessTarget","createUrlOption","resolved","uri","directoryEntryToOption","labelValue","getPreferredAccessPrincipalOptions","urlOption","getShortQueryOptions","preferredOptions","accessPrincipalOptionsProvider","filter","entries","entryLabel","applyAccessChanges","errors","accessChanges","plan","subjectUri","buildAccessChanges","pendingAccessGrants","generalAccessChanges","changedAccessGrants","_Class","_AccessControlModal3","_A","_B","_C","_D","_E","_F","_G","_H","_I","_J","_K","_initProto","_initClass","_classDecs","_subjectUriDecs","_init_subjectUri","_accessGrantsDecs","_init_accessGrants","_principalInputValueDecs","_init_principalInputValue","_addAccessRoleValueDecs","_init_addAccessRoleValue","_authenticatedAccessRoleValueDecs","_init_authenticatedAccessRoleValue","_publicAccessRoleValueDecs","_init_publicAccessRoleValue","_submittingDecs","_init_submitting","_pendingAccessGrantsDecs","_init_pendingAccessGrants","_accessGrantDraftsDecs","_init_accessGrantDrafts","_errorsDecs","_init_errors","_successfulChangesRefreshedDecs","_init_successfulChangesRefreshed","_AccessControlModal2","_ref","_classPrivateFieldInitSpec","_checkPrivateRedeclaration","_classPrivateFieldSet","_assertClassBrand","_classPrivateFieldGet","_defineProperty","_toPropertyKey","_applyDecs","_setFunctionName","_checkInRHS","_toPrimitive","_identity","isDefined","_AccessControlModal","changedProperties","error$3","requestVersion","grants","labels","groupUri","labelsById","draft","dialogTitle","saveErrors","error$2","currentAuthenticatedRole","currentPublicRole","pendingIndex","rawValue","inputSnapshot","error$1","snapshot","result","merged","normalizedPrincipal","resolvedTarget","draftGrants","draftGrant","access_control_modal_default"],"sources":["../../src/components/access-control-modal/AccessControlSharedAccess.styles.css","../../src/components/access-control-modal/AccessControlSharedAccess.ts","../../src/components/access-control-modal/AccessControlGeneralAccess.styles.css","../../src/components/access-control-modal/AccessControlGeneralAccess.ts","../../src/components/access-control-modal/AccessControlErrors.styles.css","../../src/components/access-control-modal/AccessControlErrors.ts","../../src/components/access-control-modal/AccessControlModal.styles.css","../../src/components/access-control-modal/helpers.ts","../../src/components/access-control-modal/accessGrantDrafts.ts","../../src/components/access-control-modal/AccessControlAddAccess.styles.css","../../src/components/access-control-modal/AccessControlAddAccess.ts","../../src/components/access-control-modal/accessTargetResolver.ts","../../src/components/access-control-modal/applyAccessChanges.ts","../../src/components/access-control-modal/buildAccessChanges.ts","../../src/components/access-control-modal/AccessControlModal.ts","../../src/components/access-control-modal/index.ts"],"sourcesContent":[":host {\n h2 {\n color: var(--solid-ui-color-gray-900, #101828);\n font-size: var(--solid-ui-font-size-md, 1rem);\n font-weight: 600;\n }\n\n .access-grants-header,\n .access-grants-list {\n padding: 0 10px;\n align-self: stretch;\n }\n\n .access-grants-header {\n display: flex;\n align-items: center;\n gap: 15px;\n justify-content: space-between;\n\n .access-grants-search-input {\n flex: 0 0 auto;\n width: 12ch;\n min-width: 12ch;\n --solid-ui-input-border-color: transparent;\n color: var(--solid-ui-color-zinc-500, #71717B);\n font-size: var(--solid-ui-font-size-sm, .875rem);\n font-weight: 500;\n }\n }\n\n .access-grants-list {\n display: flex;\n align-items: flex-start;\n gap: 20px;\n\n ul {\n display: flex;\n flex-direction: column;\n height: 195px;\n padding: 15px;\n align-items: flex-start;\n gap: 15px;\n flex: 1 0 0;\n min-height: 0;\n box-sizing: border-box;\n overflow-y: auto;\n overflow-x: hidden;\n border-radius: 10px;\n border: 1px solid var(--solid-ui-color-gray-200, #E5E7EB);\n }\n\n li {\n display: flex;\n align-items: center;\n gap: 10px;\n flex: 0 0 auto;\n width: 100%;\n\n .access-grants-image {\n display: flex;\n justify-content: center;\n align-items: center;\n aspect-ratio: 1/1;\n width: 30px;\n height: 30px;\n flex: 0 0 30px;\n border-radius: 999px;\n overflow: hidden;\n color: var(--solid-ui-color-white, #FFF);\n text-align: center;\n font-size: var(--solid-ui-font-size-xs, .75rem);\n font-weight: 500;\n\n img {\n display: flex;\n width: 100%;\n height: 100%;\n border-radius: 999px;\n object-fit: cover;\n }\n\n span {\n display: flex;\n width: 100%;\n height: 100%;\n align-items: center;\n justify-content: center;\n line-height: 1;\n }\n }\n\n .access-grants-image--agentGroup {\n background: var(--solid-ui-color-blue-900, #083575);\n }\n\n .access-grants-image--agent,\n .access-grants-image--agentClass {\n background: var(--solid-ui-color-lavender-300, #e6dcff);\n }\n\n .access-grants-image--origin {\n background: var(--solid-ui-color-green-700, #15803D);\n }\n\n .access-grants-image--unknown {\n background: var(--solid-ui-color-gray-300, #D1D5DB);\n }\n\n h3 {\n flex: 1 1 auto;\n min-width: 0;\n color: var(--solid-ui-color-gray-800, #1E2939);\n font-size: var(--solid-ui-font-size-xs, .75rem);\n font-weight: 600;\n }\n\n span {\n margin-left: auto;\n flex: 0 0 auto;\n text-align: right;\n }\n\n .access-grants-role {\n margin-left: auto;\n flex: 0 0 auto;\n font-size: var(--solid-ui-font-size-xs, .75rem);\n }\n\n .access-grants-role--owner {\n font-size: var(--solid-ui-font-size-xs, .75rem);\n }\n\n .access-grants-role--editable {\n max-width: 100%;\n }\n }\n }\n\n .access-role-select--compact {\n width: 110px;\n min-width: 110px;\n flex: 0 0 110px;\n max-width: 100%;\n --solid-ui-input-border-color: transparent;\n margin-top: 0;\n }\n\n .access-grants-list li .access-role-select--compact {\n width: 110px;\n min-width: 110px;\n flex: 0 0 110px;\n }\n}\n","import { customElement, WebComponent } from '@/lib/components'\nimport { html } from 'lit'\nimport { property, state } from 'lit/decorators.js'\nimport { ACCESS_ROLES, type AccessRole } from 'solid-logic'\nimport { findImage } from '@/widgets'\nimport type { ComboboxChangeEvent } from '@/components/combobox'\nimport { sym } from 'rdflib'\n\nimport '@/components/combobox'\nimport '@/components/combobox-option'\n\nimport styles from './AccessControlSharedAccess.styles.css'\nimport type { AccessGrantRoleChangedDetail, AccessGrantViewModel } from './types'\n\n@customElement('solid-ui-access-control-shared-access')\nexport default class AccessControlSharedAccess extends WebComponent {\n static styles = styles\n\n @property({ attribute: false })\n accessor accessGrantViewModels: AccessGrantViewModel[] = []\n\n @state()\n private accessor searchValue = ''\n\n private onSearchInput (event: Event) {\n const target = event.currentTarget as { value?: string | null } | null\n this.searchValue = typeof target?.value === 'string' ? target.value : ''\n }\n\n private onSearchSelect (event: ComboboxChangeEvent) {\n const option = event.detail.option\n if (typeof option.label !== 'string') {\n return\n }\n\n this.searchValue = option.label\n }\n\n private onAccessGrantRoleChange (id: string, event: ComboboxChangeEvent) {\n const value = event.detail.option.value\n if (typeof value !== 'string' || !ACCESS_ROLES.includes(value as AccessRole)) {\n return\n }\n\n const detail: AccessGrantRoleChangedDetail = {\n id,\n role: value as AccessRole\n }\n\n this.dispatchEvent(new CustomEvent<AccessGrantRoleChangedDetail>('access-grant-role-changed', {\n detail,\n bubbles: true,\n composed: true\n }))\n }\n\n private getFilteredAccessGrants () {\n const query = this.searchValue.trim().toLowerCase()\n\n return this.accessGrantViewModels.filter(({ subjectLabel, subjects }) => {\n if (!subjects.length) {\n return false\n }\n\n return !query || subjectLabel.toLowerCase().includes(query)\n })\n }\n\n private renderAccessGrant (entry: AccessGrantViewModel) {\n return html`\n <li>\n ${this.renderAuthorizationBadge(entry.authorization, entry.subjectLabel)}\n <h3>${entry.subjectLabel}</h3>\n ${this.renderAuthorizationRole(entry.role, entry.id)}\n </li>\n `\n }\n\n private renderAuthorizationBadge (authorization: AccessGrantViewModel['authorization'], subjectLabel: string) {\n const badge = this.getAuthorizationBadge(authorization, subjectLabel)\n\n return html`\n <div class=\"access-grants-image access-grants-image--${badge.kind}\">\n ${badge.image\n ? html`<img src=${badge.image} alt=\"\" aria-hidden=\"true\" />`\n : html`<span aria-hidden=\"true\">${badge.text}</span>`}\n </div>\n `\n }\n\n private getAuthorizationBadge (\n authorization: AccessGrantViewModel['authorization'],\n subjectLabel: string\n ) {\n const agent = authorization.agent[0]\n if (agent) {\n const image = findImage(sym(agent))\n return {\n kind: 'agent' as const,\n image,\n text: image ? '' : this.getInitials(subjectLabel, 2)\n }\n }\n\n const agentGroup = authorization.agentGroup[0]\n if (agentGroup) {\n return {\n kind: 'agentGroup' as const,\n text: this.getInitials(subjectLabel, 1)\n }\n }\n\n const agentClass = authorization.agentClass[0]\n if (agentClass) {\n const image = findImage(sym(agentClass))\n return {\n kind: 'agentClass' as const,\n image,\n text: image ? '' : this.getInitials(subjectLabel, 2)\n }\n }\n\n if (authorization.origin[0]) {\n return {\n kind: 'origin' as const,\n text: 'O'\n }\n }\n\n return {\n kind: 'unknown' as const,\n text: '?'\n }\n }\n\n private getInitials (value: string, maxWords = 2): string {\n const parts = value.split(/\\s+/).filter(Boolean).slice(0, maxWords)\n const initials = parts.map(part => part[0]).join('')\n return (initials || value.slice(0, maxWords)).toUpperCase()\n }\n\n private renderAuthorizationRole (role: AccessRole, id: string) {\n return html`\n <solid-ui-combobox\n class=\"access-role-select access-role-select--compact access-grants-role access-grants-role--editable ${role === 'Owner' ? 'access-grants-role--owner' : ''}\"\n .value=${role}\n @change=${(event: ComboboxChangeEvent) => this.onAccessGrantRoleChange(id, event)}\n >\n ${this.renderGrantRoleOptions()}\n </solid-ui-combobox>\n `\n }\n\n private renderGrantRoleOptions () {\n return ACCESS_ROLES.map(role => html`\n <solid-ui-combobox-option value=${role}>${role === 'No Access' ? 'Remove' : role}</solid-ui-combobox-option>\n `)\n }\n\n protected render () {\n const accessGrants = this.getFilteredAccessGrants()\n\n return html`\n <section aria-labelledby=\"access-grants-heading\">\n <div class=\"access-grants-header\">\n <h2 id=\"access-grants-heading\">Share with</h2>\n <solid-ui-combobox\n class=\"access-grants-search-input\"\n label=\"Search access grants\"\n .srOnlyLabel=${true}\n .value=${this.searchValue}\n placeholder=\"Search\"\n @input=${this.onSearchInput}\n @change=${this.onSearchSelect}\n >\n ${this.accessGrantViewModels\n .filter(({ subjects }) => subjects.length > 0)\n .map(({ subjectLabel }) => html`\n <solid-ui-combobox-option .value=${subjectLabel}>\n ${subjectLabel}\n </solid-ui-combobox-option>\n `)}\n </solid-ui-combobox>\n </div>\n <div class=\"access-grants-list\">\n <ul>\n ${accessGrants.length > 0\n ? accessGrants.map(entry => this.renderAccessGrant(entry))\n : html`<li>No access grants</li>`}\n </ul>\n </div>\n </section>\n `\n }\n}\n",":host {\n h2 {\n color: var(--solid-ui-color-gray-900, #101828);\n font-size: var(--solid-ui-font-size-md, 1rem);\n font-weight: 600;\n }\n\n .access-grants-general {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: 10px;\n padding: 0 10px;\n align-self: stretch;\n\n solid-ui-combobox,\n solid-ui-input {\n --solid-ui-input-border-color: var(--solid-ui-color-slate-200, #E2E8F0);\n }\n\n .access-grants-general-header {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n gap: 15px;\n align-self: stretch;\n\n .access-grants-copy-link-button-label {\n font-size: var(--solid-ui-font-size-xs, .75rem);\n font-weight: 500;\n }\n\n .access-grants-copy-link-button icon-lucide-link {\n width: 12px;\n height: 12px;\n aspect-ratio: 1/1;\n }\n }\n\n .access-grants-general-share {\n display: flex;\n align-items: center;\n gap: 10px;\n align-self: stretch;\n\n .access-grants-general-share-content {\n display: flex;\n flex-direction: row;\n align-items: flex-start;\n gap: 10px;\n flex: 1 0 0;\n\n .access-grants-general-share-icon {\n display: flex;\n width: 30px;\n height: 30px;\n padding: 5px;\n justify-content: center;\n align-items: center;\n aspect-ratio: 1/1;\n border-radius: 50px;\n background: var(--solid-ui-color-violet-50, #F5F3FF);\n }\n\n .access-grants-general-share-icon-inner {\n display: flex;\n width: 20px;\n height: 20px;\n padding: 1.25px;\n justify-content: center;\n align-items: center;\n flex-shrink: 0;\n aspect-ratio: 1/1;\n\n icon-lucide-globe {\n width: 17.5px;\n height: 17.5px;\n flex-shrink: 0;\n aspect-ratio: 1/1;\n }\n }\n\n .access-grants-general-share-text {\n flex: 1 1 auto;\n min-width: 0;\n\n .access-grants-general-share-text-title {\n color: var(--solid-ui-color-gray-900, #101828);\n font-size: var(--solid-ui-font-size-sm, .875rem);\n font-weight: 600;\n }\n\n .access-grants-general-share-text-description {\n color: var(--solid-ui-color-gray-700, #364153);\n font-size: var(--solid-ui-font-size-sm, .875rem);\n }\n }\n }\n }\n }\n\n .access-role-select--general {\n width: 120px;\n min-width: 120px;\n flex: 0 0 120px;\n font-size: var(--solid-ui-font-size-xs, .75rem);\n font-weight: 500;\n }\n\n .access-role-select--compact {\n display: block;\n max-width: 100%;\n --solid-ui-input-border-color: transparent;\n margin-top: 0;\n }\n}\n","import { customElement, WebComponent } from '@/lib/components'\nimport { html } from 'lit'\nimport { property } from 'lit/decorators.js'\nimport { ACCESS_ROLES, PUBLIC_ACCESS_ROLES, type AccessRole } from 'solid-logic'\nimport * as debug from '@/lib/debug'\nimport type { ComboboxChangeEvent } from '@/components/combobox'\n\nimport '~icons/lucide/link'\nimport '~icons/lucide/globe'\nimport '@/components/button'\nimport '@/components/combobox'\nimport '@/components/combobox-option'\n\nimport styles from './AccessControlGeneralAccess.styles.css'\nimport type { RoleChangedDetail } from './types'\n\n@customElement('solid-ui-access-control-general-access')\nexport default class AccessControlGeneralAccess extends WebComponent {\n static styles = styles\n\n @property({ attribute: false })\n accessor subjectUri: string | undefined = undefined\n\n @property({ attribute: false })\n accessor authenticatedAccessRoleValue: AccessRole = 'No Access'\n\n @property({ attribute: false })\n accessor publicAccessRoleValue: AccessRole = 'No Access'\n\n private onAuthenticatedRoleChange (event: ComboboxChangeEvent) {\n this.dispatchRoleChange('authenticated-role-changed', event, ACCESS_ROLES)\n }\n\n private onPublicRoleChange (event: ComboboxChangeEvent) {\n this.dispatchRoleChange('public-role-changed', event, PUBLIC_ACCESS_ROLES)\n }\n\n private dispatchRoleChange (\n eventName: 'authenticated-role-changed' | 'public-role-changed',\n event: ComboboxChangeEvent,\n roles: readonly string[]\n ) {\n const value = event.detail.option.value\n if (typeof value !== 'string' || !roles.includes(value)) {\n return\n }\n\n const detail: RoleChangedDetail = { role: value as AccessRole }\n this.dispatchEvent(new CustomEvent<RoleChangedDetail>(eventName, {\n detail,\n bubbles: true,\n composed: true\n }))\n }\n\n private async onCopyLinkClick (event: Event) {\n event.preventDefault()\n\n if (!this.subjectUri) {\n return\n }\n\n try {\n await navigator.clipboard.writeText(this.subjectUri)\n } catch (error) {\n debug.error('Failed to copy resource link', error)\n }\n }\n\n private renderAuthenticatedRoleOptions () {\n return ACCESS_ROLES.map(role => html`\n <solid-ui-combobox-option value=${role}>${role}</solid-ui-combobox-option>\n `)\n }\n\n private renderPublicRoleOptions () {\n return PUBLIC_ACCESS_ROLES.map(role => html`\n <solid-ui-combobox-option value=${role}>${role}</solid-ui-combobox-option>\n `)\n }\n\n private renderAuthenticatedModeSelector () {\n return html`\n <solid-ui-combobox\n class=\"access-role-select access-role-select--compact access-role-select--general access-grants-role access-grants-role--editable access-role-select--authenticated\"\n .value=${this.authenticatedAccessRoleValue}\n @change=${this.onAuthenticatedRoleChange}\n >\n ${this.renderAuthenticatedRoleOptions()}\n </solid-ui-combobox>\n `\n }\n\n private renderPublicModeSelector () {\n return html`\n <solid-ui-combobox\n class=\"access-role-select access-role-select--compact access-role-select--general access-grants-role access-grants-role--editable access-role-select--public\"\n .value=${this.publicAccessRoleValue}\n @change=${this.onPublicRoleChange}\n >\n ${this.renderPublicRoleOptions()}\n </solid-ui-combobox>\n `\n }\n\n private renderGeneralAccessIcon () {\n return html`\n <div class=\"access-grants-general-share-icon\">\n <div class=\"access-grants-general-share-icon-inner\">\n <icon-lucide-globe class=\"access-grants-general-share-icon-image\"></icon-lucide-globe>\n </div>\n </div>\n `\n }\n\n private renderGeneralShareRow (options: {\n title: string\n description: string\n variant: 'authenticated' | 'public'\n }) {\n return html`\n <div class=\"access-grants-general-share\">\n <div class=\"access-grants-general-share-content\">\n ${this.renderGeneralAccessIcon()}\n <div class=\"access-grants-general-share-text\">\n <p class=\"access-grants-general-share-text-title\">${options.title}</p>\n <p class=\"access-grants-general-share-text-description\">${options.description}</p>\n </div>\n </div>\n ${options.variant === 'authenticated'\n ? this.renderAuthenticatedModeSelector()\n : this.renderPublicModeSelector()}\n </div>\n `\n }\n\n protected render () {\n return html`\n <section class=\"access-grants-general\" aria-labelledby=\"general-access-heading\">\n <div class=\"access-grants-general-header\">\n <h2 id=\"general-access-heading\">General Access</h2>\n <solid-ui-button\n class=\"access-grants-copy-link-button\"\n variant=\"tertiary\"\n @click=${this.onCopyLinkClick}\n >\n <icon-lucide-link slot=\"left-icon\"></icon-lucide-link>\n <span class=\"access-grants-copy-link-button-label\">Copy Link</span>\n </solid-ui-button>\n </div>\n ${this.renderGeneralShareRow({\n title: 'Share with Anyone Signed In',\n description: 'Users must sign in to SolidOS to access this shared item using the link.',\n variant: 'authenticated'\n })}\n ${this.renderGeneralShareRow({\n title: 'Anyone with the Link',\n description: 'Anyone on the internet with the link can view.',\n variant: 'public'\n })}\n </section>\n `\n }\n}\n",":host {\n display: block;\n width: 100%;\n contain: inline-size;\n\n solid-ui-error-state {\n width: 100%;\n max-width: 100%;\n contain: inline-size;\n }\n\n .access-control-save-errors {\n display: grid;\n gap: 8px;\n width: 100%;\n margin: 0;\n padding-left: 0;\n box-sizing: border-box;\n list-style: none;\n\n li {\n display: grid;\n grid-template-columns: minmax(0, 18rem) minmax(0, 1fr);\n align-items: baseline;\n gap: 6px;\n min-width: 0;\n color: var(--solid-ui-color-red-600, #be2e48);\n font-size: var(--solid-ui-font-size-sm, .875rem);\n line-height: 1.4;\n }\n\n .access-control-save-error-label {\n font-weight: 500;\n overflow-wrap: anywhere;\n }\n\n .access-control-save-error-detail {\n min-width: 0;\n overflow-wrap: anywhere;\n }\n }\n\n @media (max-width: 600px) {\n .access-control-save-errors li {\n grid-template-columns: minmax(0, 40%) minmax(0, 1fr);\n }\n }\n}\n","import { customElement, WebComponent } from '@/lib/components'\nimport { html } from 'lit'\nimport { property } from 'lit/decorators.js'\n\nimport '@/components/error-state'\n\nimport styles from './AccessControlErrors.styles.css'\nimport type { AccessSaveError } from './types'\n\n@customElement('solid-ui-access-control-errors')\nexport default class AccessControlErrors extends WebComponent {\n static styles = styles\n\n @property({ attribute: false })\n accessor errors: AccessSaveError[] = []\n\n @property({ attribute: false })\n accessor successfulChangesRefreshed = true\n\n private onClose (event: Event) {\n event.stopPropagation()\n this.dispatchEvent(new CustomEvent('close', {\n bubbles: true,\n composed: true\n }))\n }\n\n protected render () {\n if (!this.errors.length) {\n return html``\n }\n\n return html`\n <solid-ui-error-state\n title=\"Some access changes could not be saved\"\n message=${this.successfulChangesRefreshed\n ? 'Any successful changes are shown above. The list below shows only the changes that failed. Close this dialog and reopen it if you want to try again.'\n : 'Some changes may have been saved, but we could not refresh the Shared with list. The list below shows only the changes that failed. Close this dialog and reopen it if you want to try again.'}\n @close=${this.onClose}\n >\n <ul class=\"access-control-save-errors\">\n ${this.errors.map(error => html`\n <li>\n <span class=\"access-control-save-error-label\">${error.label}</span>\n <span class=\"access-control-save-error-detail\">\n ${error.action === 'grant'\n ? `Could not grant ${error.role ?? 'access'}`\n : error.action === 'revoke'\n ? 'Could not remove access'\n : 'Could not save access changes'}\n </span>\n </li>\n `)}\n </ul>\n </solid-ui-error-state>\n `\n }\n}\n",":host {\n .access-control-footer-actions {\n display: flex;\n justify-content: flex-end;\n align-items: center;\n gap: 15px;\n width: 100%;\n\n > solid-ui-button {\n min-width: 132px;\n }\n }\n\n @media (max-width: 380px) {\n .access-control-footer-actions {\n gap: 8px;\n\n > solid-ui-button {\n min-width: 0;\n flex: 1 1 0;\n }\n }\n }\n}\n","import type { ComboboxOptionData } from '@/components/combobox'\n\nexport type StringComboboxOptionData = ComboboxOptionData & { value: string }\n\nexport function isAbsoluteHttpUri (value: string): boolean {\n try {\n const url = new URL(value)\n return (url.protocol === 'http:' || url.protocol === 'https:') && Boolean(url.hostname)\n } catch {\n return false\n }\n}\n\nexport function isOriginUrl (value: string): boolean {\n if (!isAbsoluteHttpUri(value)) {\n return false\n }\n\n const url = new URL(value)\n return url.pathname === '/' &&\n !url.search &&\n !url.hash &&\n !url.username &&\n !url.password\n}\n\nexport function normalizeOriginInput (value: string): string | undefined {\n const trimmedValue = value.trim()\n if (!trimmedValue || isAbsoluteHttpUri(trimmedValue)) {\n return undefined\n }\n\n try {\n const parsed = new URL(`https://${trimmedValue}`)\n const isHttpOrigin = parsed.protocol === 'http:' || parsed.protocol === 'https:'\n const hasOnlyOriginParts = parsed.pathname === '/' && !parsed.search && !parsed.hash\n const isRecognizedHost = parsed.hostname.includes('.') ||\n parsed.hostname.includes(':')\n\n return isHttpOrigin && hasOnlyOriginParts && isRecognizedHost && !parsed.username && !parsed.password\n ? parsed.origin\n : undefined\n } catch {\n return undefined\n }\n}\n\nexport function dedupeByKey<T> (items: T[], getKey: (item: T) => string | undefined): T[] {\n const uniqueItems = new Map<string, T>()\n\n for (const item of items) {\n const key = getKey(item)\n if (key && !uniqueItems.has(key)) {\n uniqueItems.set(key, item)\n }\n }\n\n return [...uniqueItems.values()]\n}\n\nexport function dedupeComboboxOptions (options: StringComboboxOptionData[]): StringComboboxOptionData[] {\n return dedupeByKey(options, option => option.value)\n}\n","import { label } from '@/utils/label'\nimport { Authenticated, Public, solidLogicSingleton, type AccessRole, type AccessSubject } from 'solid-logic'\nimport { sym } from 'rdflib'\nimport type { AccessAuthorization, AccessGrantDraft, AccessGrantViewModel, AuthorizationSubjectSet, ChangedAccessGrant } from './types'\n\nexport function getSharedAuthorization (authorization: AccessAuthorization): AccessAuthorization {\n return {\n ...authorization,\n agentClass: authorization.agentClass.filter(iri => iri !== Authenticated.iri && iri !== Public.iri)\n }\n}\n\nexport function getAuthorizationSubjectEntries (authorization: AccessAuthorization): AccessSubject[] {\n const subjectSets: AuthorizationSubjectSet[] = [\n { type: 'agent', iris: authorization.agent },\n { type: 'agentGroup', iris: authorization.agentGroup },\n { type: 'agentClass', iris: authorization.agentClass },\n { type: 'origin', iris: authorization.origin }\n ]\n\n return subjectSets.flatMap(({ type, iris }) => iris.map(iri => ({ type, iri })))\n}\n\nexport function getAccessGrantId (authorization: AccessAuthorization): string {\n return getAuthorizationSubjectEntries(authorization)\n .map(subject => `${subject.type}:${subject.iri}`)\n .sort()\n .join('|')\n}\n\nexport function getAccessGrantIds (authorizations: AccessAuthorization[]): string[] {\n const occurrences = new Map<string, number>()\n\n return authorizations.map(authorization => {\n const sharedAuthorization = getSharedAuthorization(authorization)\n const baseId = getAccessGrantId(sharedAuthorization)\n const occurrence = occurrences.get(baseId) ?? 0\n occurrences.set(baseId, occurrence + 1)\n return occurrence === 0 ? baseId : `${baseId}#${occurrence}`\n })\n}\n\nexport function getAuthorizationSubjectLabel (authorization: AccessAuthorization): string {\n const subjects = [\n ...authorization.agent,\n ...authorization.agentGroup,\n ...authorization.agentClass,\n ...authorization.origin\n ]\n return subjects.length ? subjects.map(subject => label(sym(subject))).join(', ') : 'Unknown access holder'\n}\n\nexport function getAuthorizationRole (authorization: AccessAuthorization): AccessRole {\n return solidLogicSingleton.acl.roleFromModes(authorization.mode)\n}\n\nexport function createAccessGrantDraft (authorization: AccessAuthorization): AccessGrantDraft {\n const sharedAuthorization = getSharedAuthorization(authorization)\n return {\n id: getAccessGrantId(sharedAuthorization),\n authorization: sharedAuthorization,\n role: getAuthorizationRole(sharedAuthorization),\n initialRole: getAuthorizationRole(authorization),\n subjectLabel: getAuthorizationSubjectLabel(sharedAuthorization),\n subjects: getAuthorizationSubjectEntries(sharedAuthorization)\n }\n}\n\nexport function createAccessGrantDrafts (authorizations: AccessAuthorization[]): AccessGrantDraft[] {\n const ids = getAccessGrantIds(authorizations)\n return authorizations.map((authorization, index) => ({\n ...createAccessGrantDraft(authorization),\n id: ids[index]\n }))\n}\n\nexport function getAccessGrantViewModels (drafts: AccessGrantDraft[]): AccessGrantViewModel[] {\n return [...drafts]\n .sort((left, right) => {\n const leftIsOwner = left.role === 'Owner'\n const rightIsOwner = right.role === 'Owner'\n\n if (leftIsOwner && !rightIsOwner) return -1\n if (!leftIsOwner && rightIsOwner) return 1\n return drafts.indexOf(left) - drafts.indexOf(right)\n })\n}\n\nexport function getChangedAccessGrants (drafts: AccessGrantDraft[]): ChangedAccessGrant[] {\n return getAccessGrantViewModels(drafts)\n .filter(({ role, initialRole, subjects }) => role !== initialRole && subjects.length > 0)\n .map(({ authorization, subjects, role }) => ({ authorization, subjects, role }))\n}\n\nexport function getAuthenticatedAccessRole (accessGrants: AccessAuthorization[]): AccessRole {\n const authorization = accessGrants.find(item => item.agentClass.includes(Authenticated.iri))\n return authorization ? getAuthorizationRole(authorization) : 'No Access'\n}\n\nexport function getPublicAccessRole (accessGrants: AccessAuthorization[]): AccessRole {\n const authorization = accessGrants.find(item => item.agentClass.includes(Public.iri))\n return authorization ? solidLogicSingleton.acl.publicRoleFromModes(authorization.mode) : 'No Access'\n}\n\nexport function getAccessSubjectLabel (subject: AccessSubject): string {\n if (subject.iri === Authenticated.iri) {\n return 'Authenticated users'\n }\n\n if (subject.iri === Public.iri) {\n return 'Public'\n }\n\n return label(sym(subject.iri)).trim() || subject.iri\n}\n",":host {\n .access-grants-form {\n display: flex;\n flex-direction: column;\n padding: 10px;\n align-items: flex-start;\n gap: 10px;\n align-self: stretch;\n font-size: var(--solid-ui-font-size-sm, .875rem);\n\n --access-role-select-width: 129px;\n\n p {\n color: var(--solid-ui-color-gray-600, #4A5565);\n line-height: 1.5;\n }\n\n .access-grants-form-main {\n display: flex;\n align-items: flex-start;\n gap: 10px;\n align-self: stretch;\n\n .access-grants-input {\n display: flex;\n flex-direction: column;\n flex: 1 1 auto;\n min-width: 0;\n padding: 10px 15px;\n gap: 12px;\n align-items: flex-start;\n border-radius: 5px;\n border: 1px solid var(--solid-ui-color-slate-200, #E2E8F0);\n background: var(--solid-ui-color-white, #FFF);\n\n solid-ui-combobox {\n width: 100%;\n --solid-ui-input-border-color: var(--solid-ui-color-slate-200, #E2E8F0);\n }\n\n .access-principal-error {\n margin: 0;\n color: var(--solid-ui-color-red-700, #B42318);\n font-size: var(--solid-ui-font-size-xs, .75rem);\n line-height: 1.4;\n }\n }\n }\n\n .access-grants-pending {\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n min-height: 42px;\n align-items: center;\n }\n\n .access-grants-pending-item {\n display: flex;\n padding: 5px 10px;\n align-items: center;\n gap: 6px;\n max-width: 100%;\n border-radius: 5px;\n border: 1px solid var(--solid-ui-color-gray-300, #D1D5DC);\n background: var(--solid-ui-color-gray-50, #F9FAFB);\n color: var(--solid-ui-color-gray-700, #374151);\n }\n\n .access-grants-pending-item-label {\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: var(--solid-ui-color-gray-500, #6A7282);\n font-size: var(--solid-ui-font-size-xs, .75rem);\n line-height: 1;\n }\n\n .access-grants-pending-item-remove {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n padding: 0;\n border: none;\n border-radius: 999px;\n background: transparent;\n color: var(--solid-ui-color-gray-300, #D1D5DC);\n cursor: pointer;\n\n icon-lucide-circle-x {\n width: 14px;\n height: 14px;\n }\n }\n }\n\n .access-grants-directory-entry {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n line-height: 1;\n }\n\n .access-role-select {\n display: block;\n max-width: 100%;\n margin-top: 25px;\n flex: 0 0 auto;\n width: var(--access-role-select-width);\n --solid-ui-input-border-color: var(--solid-ui-color-slate-200, #E2E8F0);\n }\n\n .access-role-select--top {\n margin-top: 0;\n }\n}\n","import { customElement, WebComponent } from '@/lib/components'\nimport { html, nothing } from 'lit'\nimport { property } from 'lit/decorators.js'\nimport { ACCESS_ROLES, type AccessRole, type DirectoryEntry } from 'solid-logic'\nimport type { AsyncComboboxOptionsProvider, ComboboxChangeEvent } from '@/components/combobox'\n\nimport '~icons/lucide/book-user'\nimport '~icons/lucide/user-round'\nimport '~icons/lucide/users'\nimport '~icons/lucide/circle-x'\nimport '@/components/button'\nimport '@/components/combobox'\nimport '@/components/combobox-option'\n\nimport styles from './AccessControlAddAccess.styles.css'\nimport type { PendingAccessGrant, PendingGrantRemovedDetail, RoleChangedDetail, TargetInputDetail, TargetSelectedDetail } from './types'\n\nexport function directoryEntryOptionTemplate (entry: DirectoryEntry) {\n return html`\n <span class=\"access-grants-directory-entry\">\n ${renderDirectoryEntryIcon(entry)}\n <span>${entry.label}</span>\n </span>\n `\n}\n\nfunction renderDirectoryEntryIcon (entry: DirectoryEntry) {\n if (entry.sources.includes('contacts') || entry.sources.includes('groups')) {\n return html`<icon-lucide-book-user style=\"width: 13px; height: 13px; flex: 0 0 13px;\"></icon-lucide-book-user>`\n }\n\n if (entry.sources.includes('friends')) {\n return html`<icon-lucide-users style=\"width: 13px; height: 13px; flex: 0 0 13px;\"></icon-lucide-users>`\n }\n\n if (entry.sources.includes('catalog')) {\n return html`<icon-lucide-user-round style=\"width: 13px; height: 13px; flex: 0 0 13px;\"></icon-lucide-user-round>`\n }\n\n return nothing\n}\n\n@customElement('solid-ui-access-control-add-access')\nexport default class AccessControlAddAccess extends WebComponent {\n static styles = styles\n\n @property({ attribute: false })\n accessor principalInputValue = ''\n\n @property({ attribute: false })\n accessor addAccessRoleValue: AccessRole = 'Viewer'\n\n @property({ attribute: false })\n accessor pendingAccessGrants: PendingAccessGrant[] = []\n\n @property({ attribute: false })\n accessor inputError = ''\n\n @property({ attribute: false })\n accessor asyncOptionsProvider: AsyncComboboxOptionsProvider | null = null\n\n private onPrincipalInput (event: Event) {\n const value = this.getEventValue(event)\n this.dispatchEvent(new CustomEvent<TargetInputDetail>('target-input', {\n detail: { value },\n bubbles: true,\n composed: true\n }))\n }\n\n private onPrincipalSelect (event: ComboboxChangeEvent) {\n const option = event.detail.option\n if (typeof option.value !== 'string') {\n return\n }\n\n this.dispatchEvent(new CustomEvent<TargetSelectedDetail>('target-selected', {\n detail: {\n value: option.value,\n label: option.label\n },\n bubbles: true,\n composed: true\n }))\n }\n\n private onRoleChange (event: ComboboxChangeEvent) {\n const role = event.detail.option.value\n if (typeof role !== 'string' || !ACCESS_ROLES.includes(role as AccessRole)) {\n return\n }\n\n this.dispatchEvent(new CustomEvent<RoleChangedDetail>('role-changed', {\n detail: { role: role as AccessRole },\n bubbles: true,\n composed: true\n }))\n }\n\n private onPendingGrantRemove (index: number) {\n this.dispatchEvent(new CustomEvent<PendingGrantRemovedDetail>('pending-grant-removed', {\n detail: { index },\n bubbles: true,\n composed: true\n }))\n }\n\n private getEventValue (event: Event): string {\n const target = event.currentTarget as { value?: string | null } | null\n return typeof target?.value === 'string' ? target.value : ''\n }\n\n protected render () {\n return html`\n <section class=\"access-grants-form\" aria-label=\"Add access\">\n <p>Add person, group or software agent URL.</p>\n <div class=\"access-grants-form-main\">\n <div class=\"access-grants-input\">\n <solid-ui-combobox\n class=\"access-principal-combobox\"\n label=\"Add person, group or software agent URL.\"\n .srOnlyLabel=${true}\n .value=${this.principalInputValue}\n placeholder=\"Paste a link or enter a name\"\n .asyncOptionsProvider=${this.asyncOptionsProvider}\n @input=${this.onPrincipalInput}\n @change=${this.onPrincipalSelect}\n ></solid-ui-combobox>\n ${this.inputError\n ? html`<p class=\"access-principal-error\" role=\"alert\">${this.inputError}</p>`\n : nothing}\n ${this.renderPendingAccessGrants()}\n </div>\n <solid-ui-combobox\n class=\"access-role-select access-role-select--top\"\n .value=${this.addAccessRoleValue}\n @change=${this.onRoleChange}\n >\n ${ACCESS_ROLES\n .filter(role => role !== 'No Access')\n .map(role => html`\n <solid-ui-combobox-option value=${role}>${role}</solid-ui-combobox-option>\n `)}\n </solid-ui-combobox>\n </div>\n </section>\n `\n }\n\n private renderPendingAccessGrants () {\n if (!this.pendingAccessGrants.length) {\n return nothing\n }\n\n return html`\n <div class=\"access-grants-pending\">\n ${this.pendingAccessGrants.map((grant, index) => html`\n <div class=\"access-grants-pending-item\">\n <span class=\"access-grants-pending-item-label\">${grant.label}</span>\n <solid-ui-button\n type=\"button\"\n variant=\"ghost\"\n class=\"access-grants-pending-item-remove\"\n @click=${() => this.onPendingGrantRemove(index)}\n >\n <span class=\"sr-only\">Remove ${grant.label}</span>\n <icon-lucide-circle-x slot=\"icon\"></icon-lucide-circle-x>\n </solid-ui-button>\n </div>\n `)}\n </div>\n `\n }\n}\n","import { defineAsyncComboboxOptionsProvider, type AsyncComboboxOptionsProvider, type ComboboxOptionData } from '@/components/combobox'\nimport { directoryEntryOptionTemplate } from './AccessControlAddAccess'\nimport { label } from '@/utils/label'\nimport { DEFAULT_DIRECTORY_SOURCES, solidLogicSingleton, type AccessControlSubjectKind, type DirectoryEntry } from 'solid-logic'\nimport { sym } from 'rdflib'\nimport { dedupeByKey, dedupeComboboxOptions, isAbsoluteHttpUri, isOriginUrl, normalizeOriginInput, type StringComboboxOptionData } from './helpers'\n\nexport type ResolvedAccessTarget = {\n subjectType: AccessControlSubjectKind\n subjectValue: string\n label: string\n}\n\nasync function classifyAccessTarget (principal: string) {\n const normalizedOrigin = normalizeOriginInput(principal)\n return normalizedOrigin\n ? { kind: 'origin' as const, subjectValue: normalizedOrigin }\n : await solidLogicSingleton.acl.classifyAccessControlSubject(principal)\n}\n\nasync function resolveAccessTargetLabel (\n resolvedPrincipal: Awaited<ReturnType<typeof classifyAccessTarget>>,\n preferredLabel?: string\n): Promise<string | undefined> {\n if (!resolvedPrincipal || resolvedPrincipal.kind === 'origin') {\n return resolvedPrincipal?.subjectValue\n }\n\n const subject = sym(resolvedPrincipal.subjectValue)\n await solidLogicSingleton.store.fetcher.load(subject.doc())\n const resolvedLabel = preferredLabel?.trim() || label(subject).trim()\n if (!resolvedLabel || resolvedLabel === resolvedPrincipal.subjectValue) {\n return undefined\n }\n\n return resolvedLabel\n}\n\nexport async function resolveAccessTarget (\n principal: string,\n preferredLabel?: string\n): Promise<ResolvedAccessTarget | undefined> {\n const resolvedPrincipal = await classifyAccessTarget(principal)\n if (!resolvedPrincipal) {\n return undefined\n }\n\n const resolvedLabel = await resolveAccessTargetLabel(resolvedPrincipal, preferredLabel)\n if (!resolvedLabel) {\n return undefined\n }\n\n return {\n subjectType: resolvedPrincipal.kind,\n subjectValue: resolvedPrincipal.subjectValue,\n label: resolvedLabel\n }\n}\n\nasync function createUrlOption (uri: string): Promise<StringComboboxOptionData | undefined> {\n const resolved = await resolveAccessTarget(uri)\n return resolved\n ? { label: resolved.label, value: uri }\n : undefined\n}\n\nfunction directoryEntryToOption (entry: DirectoryEntry, labelValue: string): ComboboxOptionData {\n return {\n label: labelValue,\n value: entry.uri,\n template: directoryEntryOptionTemplate({ ...entry, label: labelValue })\n }\n}\n\nasync function getPreferredAccessPrincipalOptions (query: string): Promise<ComboboxOptionData[]> {\n const normalizedOrigin = normalizeOriginInput(query)\n if (normalizedOrigin) {\n return [{\n label: `Use origin ${normalizedOrigin}`,\n value: normalizedOrigin\n }]\n }\n\n if (!isAbsoluteHttpUri(query)) {\n return []\n }\n\n if (isOriginUrl(query)) {\n return [{\n label: `Use origin ${new URL(query).origin}`,\n value: new URL(query).origin\n }]\n }\n\n const urlOption = await createUrlOption(query)\n return dedupeComboboxOptions(urlOption ? [urlOption] : [])\n}\n\nfunction getShortQueryOptions (preferredOptions: ComboboxOptionData[]): ComboboxOptionData[] {\n if (preferredOptions.length) {\n return preferredOptions\n }\n\n return [{\n label: 'Type at least 2 characters to search',\n value: '',\n selectable: false\n }]\n}\n\nexport const accessPrincipalOptionsProvider: AsyncComboboxOptionsProvider =\n defineAsyncComboboxOptionsProvider(async (filter: string) => {\n const query = filter.trim()\n const preferredOptions = await getPreferredAccessPrincipalOptions(query)\n\n if (query.length < 2) {\n return getShortQueryOptions(preferredOptions)\n }\n\n let entries: DirectoryEntry[] = []\n\n try {\n entries = await solidLogicSingleton.directory.search({\n query,\n sources: DEFAULT_DIRECTORY_SOURCES\n })\n } catch (error) {\n if (!preferredOptions.length) {\n throw error\n }\n }\n\n const verifiedEntries = await Promise.all(entries.map(async entry => {\n try {\n const resolved = await resolveAccessTarget(entry.uri, entry.label)\n return resolved ? { entry, label: resolved.label } : undefined\n } catch {\n return undefined\n }\n }))\n const options = verifiedEntries\n .filter((entry): entry is { entry: DirectoryEntry, label: string } => entry !== undefined)\n .map(({ entry, label: entryLabel }) => directoryEntryToOption(entry, entryLabel))\n return dedupeByKey(\n [...preferredOptions, ...options],\n option => typeof option.value === 'string' ? option.value : undefined\n )\n })\n","import { PUBLIC_ACCESS_ROLES, Public, solidLogicSingleton } from 'solid-logic'\nimport type { AccessChange, AccessSaveError } from './types'\n\nexport async function applyAccessChanges (\n subjectUri: string,\n accessChanges: AccessChange[]\n): Promise<AccessSaveError[]> {\n const errors: AccessSaveError[] = []\n\n for (const { subject, label, role } of accessChanges) {\n try {\n const plan = role === 'No Access'\n ? await solidLogicSingleton.acl.planRevoke(subjectUri, subject)\n : await solidLogicSingleton.acl.planGrant(subjectUri, subject, subject.type === 'agentClass' && subject.iri === Public.iri\n ? solidLogicSingleton.acl.modesFromPublicRole(role as (typeof PUBLIC_ACCESS_ROLES)[number])\n : solidLogicSingleton.acl.modesFromRole(role))\n\n await solidLogicSingleton.acl.applyPlan(plan)\n } catch (error) {\n errors.push({\n action: role === 'No Access' ? 'revoke' : 'grant',\n targetUri: subject.iri,\n label,\n role,\n message: error instanceof Error\n ? error.message\n : 'Unable to apply access change.'\n })\n }\n }\n\n return errors\n}\n","import { getAccessSubjectLabel } from './accessGrantDrafts'\nimport type { AccessChange, ChangedAccessGrant, PendingAccessGrant } from './types'\n\nexport type AccessChangeDrafts = {\n pendingAccessGrants: PendingAccessGrant[]\n generalAccessChanges: AccessChange[]\n changedAccessGrants: ChangedAccessGrant[]\n}\n\nexport function buildAccessChanges ({\n pendingAccessGrants,\n generalAccessChanges,\n changedAccessGrants\n}: AccessChangeDrafts): AccessChange[] {\n return [\n ...pendingAccessGrants.map(grant => ({\n subject: { type: grant.subjectType, iri: grant.subjectValue },\n role: grant.role,\n label: grant.label\n })),\n ...generalAccessChanges,\n ...changedAccessGrants.flatMap(({ subjects, role }) =>\n subjects.map(subject => ({\n subject,\n role,\n label: getAccessSubjectLabel(subject)\n }))\n )\n ]\n}\n","import { customElement, DialogComponent } from '@/lib/components'\nimport { html } from 'lit'\nimport type { PropertyValues } from 'lit'\nimport { property, state } from 'lit/decorators.js'\nimport { label } from '@/utils/label'\nimport * as debug from '@/lib/debug'\nimport { Authenticated, Public, solidLogicSingleton, type AccessRole, type Authorization } from 'solid-logic'\nimport { sym } from 'rdflib'\n\nimport '~icons/lucide/circle-x'\nimport '@/components/dialog'\nimport '@/components/dialog-content'\nimport '@/components/dialog-footer'\nimport '@/components/button'\nimport '@/components/combobox'\nimport '@/components/combobox-option'\nimport './AccessControlSharedAccess'\nimport './AccessControlGeneralAccess'\nimport './AccessControlErrors'\n\nimport styles from './AccessControlModal.styles.css'\nimport type { AccessChange, AccessControlError, AccessGrantDraft, AccessGrantRoleChangedEvent, AccessSaveError, InputAccessControlError, PendingAccessGrant, PendingGrantRemovedEvent, RoleChangedEvent, TargetInputEvent, TargetSelectedEvent } from './types'\nimport { dedupeByKey } from './helpers'\nimport { createAccessGrantDrafts, getAccessGrantIds, getAccessGrantViewModels, getAuthenticatedAccessRole, getAuthorizationSubjectLabel, getChangedAccessGrants, getPublicAccessRole, getSharedAuthorization } from './accessGrantDrafts'\nimport { accessPrincipalOptionsProvider, resolveAccessTarget } from './accessTargetResolver'\nimport { applyAccessChanges } from './applyAccessChanges'\nimport { buildAccessChanges } from './buildAccessChanges'\n\nfunction isDefined<T> (value: T | undefined | null): value is T {\n return value !== undefined && value !== null\n}\n\ntype PendingAccessGrantCreationResult =\n | { grant: PendingAccessGrant }\n | { error: InputAccessControlError }\n\n@customElement('solid-ui-access-control-modal')\nexport default class AccessControlModal extends DialogComponent<void> {\n static styles = styles\n\n @property({ attribute: false })\n accessor subjectUri: string | undefined = undefined\n\n @property({ attribute: false })\n accessor accessGrants: Authorization[] | undefined = undefined\n\n @state()\n private accessor principalInputValue: string = ''\n\n @state()\n private accessor addAccessRoleValue: AccessRole = 'Viewer'\n\n @state()\n private accessor authenticatedAccessRoleValue: AccessRole = 'No Access'\n\n @state()\n private accessor publicAccessRoleValue: AccessRole = 'No Access'\n\n @state()\n private accessor submitting: boolean = false\n\n @state()\n private accessor pendingAccessGrants: PendingAccessGrant[] = []\n\n @state()\n private accessor accessGrantDrafts: AccessGrantDraft[] = []\n\n @state()\n private accessor errors: AccessControlError[] = []\n\n @state()\n private accessor successfulChangesRefreshed = true\n\n private accessGrantLabelRequestVersion = 0\n\n disconnectedCallback (): void {\n this.accessGrantLabelRequestVersion++\n this.errors = []\n super.disconnectedCallback()\n }\n\n private get inputError (): string {\n return this.errors.find(error => error.action === 'input')?.message ?? ''\n }\n\n private get saveErrors (): AccessSaveError[] {\n return this.errors.filter((error): error is AccessSaveError => error.action !== 'input')\n }\n\n private setInputError (error: InputAccessControlError) {\n this.errors = [\n ...this.errors.filter(item => item.action !== 'input'),\n error\n ]\n }\n\n private clearInputError () {\n this.errors = this.errors.filter(error => error.action !== 'input')\n }\n\n protected willUpdate (changedProperties: PropertyValues<this>) {\n super.willUpdate(changedProperties)\n\n if (changedProperties.has('accessGrants')) {\n const accessGrants = this.accessGrants ?? []\n this.accessGrantDrafts = createAccessGrantDrafts(accessGrants)\n this.authenticatedAccessRoleValue = getAuthenticatedAccessRole(accessGrants)\n this.publicAccessRoleValue = getPublicAccessRole(accessGrants)\n }\n }\n\n protected updated (changedProperties: PropertyValues<this>) {\n super.updated(changedProperties)\n\n if (changedProperties.has('accessGrants')) {\n this.refreshAccessGrantLabels().catch((error: unknown) => {\n debug.error('Failed to refresh access grant labels', error)\n })\n }\n }\n\n private async refreshAccessGrantLabels () {\n const requestVersion = ++this.accessGrantLabelRequestVersion\n const grants = this.accessGrants ?? []\n if (!grants.length) {\n this.accessGrantDrafts = []\n return\n }\n\n const labels = await Promise.all(grants.map(async authorization => {\n await Promise.all(authorization.agentGroup.map(async groupUri => {\n try {\n await solidLogicSingleton.store.fetcher.load(sym(groupUri).doc())\n } catch {\n // Keep the fallback label if the group document cannot be loaded.\n }\n }))\n\n return getAuthorizationSubjectLabel(getSharedAuthorization(authorization))\n }))\n\n if (requestVersion === this.accessGrantLabelRequestVersion && this.accessGrants === grants) {\n const labelsById = new Map(getAccessGrantIds(grants).map((id, index) => [id, labels[index]]))\n this.accessGrantDrafts = this.accessGrantDrafts.map(draft => ({\n ...draft,\n subjectLabel: labelsById.get(draft.id) ?? draft.subjectLabel\n }))\n }\n }\n\n private getDialogTitle (): string {\n const subject = this.subjectUri ? sym(this.subjectUri) : undefined\n const subjectLabel = subject ? label(subject).trim() : ''\n\n if (!subjectLabel || subjectLabel === 'this resource') {\n return 'Share this resource'\n }\n\n return `Share \"${subjectLabel}\"`\n }\n\n protected render () {\n const dialogTitle = this.getDialogTitle()\n\n return html`\n <solid-ui-dialog title=${dialogTitle}>\n <form @submit=${this.onSubmit}>\n <solid-ui-dialog-content>\n <solid-ui-access-control-add-access\n .principalInputValue=${this.principalInputValue}\n .addAccessRoleValue=${this.addAccessRoleValue}\n .pendingAccessGrants=${this.pendingAccessGrants}\n .inputError=${this.inputError}\n .asyncOptionsProvider=${accessPrincipalOptionsProvider}\n @target-input=${this.onPrincipalInput}\n @target-selected=${this.onPrincipalSelect}\n @role-changed=${this.onAddAccessRoleInput}\n @pending-grant-removed=${this.onPendingGrantRemoved}\n ></solid-ui-access-control-add-access>\n <solid-ui-access-control-shared-access\n .accessGrantViewModels=${getAccessGrantViewModels(this.accessGrantDrafts)}\n @access-grant-role-changed=${this.onAccessGrantRoleInput}\n ></solid-ui-access-control-shared-access>\n <solid-ui-access-control-general-access\n .subjectUri=${this.subjectUri}\n .authenticatedAccessRoleValue=${this.authenticatedAccessRoleValue}\n .publicAccessRoleValue=${this.publicAccessRoleValue}\n @authenticated-role-changed=${this.onAuthenticatedAccessRoleInput}\n @public-role-changed=${this.onPublicAccessRoleInput}\n ></solid-ui-access-control-general-access>\n <solid-ui-access-control-errors\n .errors=${this.saveErrors}\n .successfulChangesRefreshed=${this.successfulChangesRefreshed}\n @close=${this.onCancelClick}\n ></solid-ui-access-control-errors>\n </solid-ui-dialog-content>\n\n <solid-ui-dialog-footer>\n <div class=\"access-control-footer-actions\">\n <solid-ui-button\n variant=\"secondary\"\n @click=${this.onCancelClick}\n >\n Cancel\n </solid-ui-button>\n <solid-ui-button\n ?disabled=${!this.hasUnsavedChanges() || this.submitting || this.saveErrors.length > 0}\n ?loading=${this.submitting}\n type=\"button\"\n @click=${this.onSaveClick}\n >\n Save Changes\n </solid-ui-button>\n </div>\n </solid-ui-dialog-footer>\n </form>\n </solid-ui-dialog>\n `\n }\n\n private async onSubmit (e: Event) {\n e.preventDefault()\n\n if (this.submitting) {\n return\n }\n\n await this.commitPrincipalFromInputSafely()\n }\n\n private async onSaveClick () {\n if (this.submitting) {\n return\n }\n\n if (this.principalInputValue.trim()) {\n const committed = await this.commitPrincipalFromInputSafely()\n\n if (!committed) {\n return\n }\n }\n\n await this.saveAccessChanges()\n }\n\n private onCancelClick () {\n this.close()\n }\n\n private async saveAccessChanges () {\n if (this.submitting) {\n return\n }\n\n const changedAccessGrants = getChangedAccessGrants(this.accessGrantDrafts)\n const generalAccessChanges = this.getGeneralAccessChanges()\n\n if (!this.pendingAccessGrants.length && !changedAccessGrants.length && !generalAccessChanges.length) {\n return\n }\n\n if (!this.subjectUri) {\n return\n }\n\n this.submitting = true\n this.errors = this.errors.filter(error => error.action === 'input')\n this.successfulChangesRefreshed = true\n\n try {\n const accessChanges = buildAccessChanges({\n pendingAccessGrants: this.pendingAccessGrants,\n generalAccessChanges,\n changedAccessGrants\n })\n\n const saveErrors = await applyAccessChanges(this.subjectUri, accessChanges)\n if (saveErrors.length) {\n this.errors = [...this.errors, ...saveErrors]\n this.principalInputValue = ''\n this.pendingAccessGrants = []\n\n try {\n this.accessGrants = await solidLogicSingleton.acl.findAccessGrants(this.subjectUri)\n } catch (error) {\n this.successfulChangesRefreshed = false\n this.errors = [\n ...this.errors,\n {\n action: 'save',\n targetUri: this.subjectUri,\n label: 'Shared with list',\n message: error instanceof Error\n ? error.message\n : 'Unable to refresh the access list.'\n }\n ]\n debug.error('Failed to refresh access grants after save errors', error)\n }\n\n debug.error('Failed to save some access changes', saveErrors)\n return\n }\n\n this.principalInputValue = ''\n this.pendingAccessGrants = []\n this.close()\n } catch (error) {\n this.errors = [\n ...this.errors,\n {\n action: 'save',\n targetUri: this.subjectUri ?? '',\n label: 'Access changes',\n message: error instanceof Error\n ? error.message\n : 'Unexpected error while saving access changes.'\n }\n ]\n } finally {\n this.submitting = false\n }\n }\n\n private onPrincipalInput (event: TargetInputEvent) {\n this.principalInputValue = event.detail.value\n this.clearInputError()\n }\n\n private onPrincipalSelect (event: TargetSelectedEvent) {\n this.queuePendingPrincipal(event.detail.value, this.addAccessRoleValue, event.detail.label)\n }\n\n private getGeneralAccessChanges (): AccessChange[] {\n if (!this.subjectUri) {\n return []\n }\n\n const accessGrants = this.accessGrants ?? []\n const currentAuthenticatedRole = getAuthenticatedAccessRole(accessGrants)\n const currentPublicRole = getPublicAccessRole(accessGrants)\n\n const authenticatedChange = this.authenticatedAccessRoleValue === currentAuthenticatedRole\n ? undefined\n : {\n subject: Authenticated,\n role: this.authenticatedAccessRoleValue,\n label: 'Authenticated users'\n }\n\n const publicChange = this.publicAccessRoleValue === currentPublicRole\n ? undefined\n : {\n subject: Public,\n role: this.publicAccessRoleValue,\n label: 'Public'\n }\n\n return [authenticatedChange, publicChange].filter(isDefined)\n }\n\n private onAddAccessRoleInput (event: RoleChangedEvent) {\n this.addAccessRoleValue = event.detail.role\n this.pendingAccessGrants = this.pendingAccessGrants.map(grant => ({\n ...grant,\n role: event.detail.role\n }))\n }\n\n private onAuthenticatedAccessRoleInput (event: RoleChangedEvent) {\n this.authenticatedAccessRoleValue = event.detail.role\n }\n\n private onPublicAccessRoleInput (event: RoleChangedEvent) {\n this.publicAccessRoleValue = event.detail.role\n }\n\n private onAccessGrantRoleInput (event: AccessGrantRoleChangedEvent) {\n this.accessGrantDrafts = this.accessGrantDrafts.map(draft =>\n draft.id === event.detail.id\n ? { ...draft, role: event.detail.role }\n : draft\n )\n }\n\n private onPendingGrantRemoved (event: PendingGrantRemovedEvent) {\n this.pendingAccessGrants = this.pendingAccessGrants.filter((_, pendingIndex) => pendingIndex !== event.detail.index)\n }\n\n private hasUnsavedChanges (): boolean {\n return Boolean(\n this.pendingAccessGrants.length ||\n this.principalInputValue.trim() ||\n getChangedAccessGrants(this.accessGrantDrafts).length ||\n this.getGeneralAccessChanges().length\n )\n }\n\n private async commitPrincipalFromInput (): Promise<boolean> {\n const rawValue = this.principalInputValue.trim()\n if (!rawValue) {\n return false\n }\n\n return this.queuePendingPrincipal(rawValue, this.addAccessRoleValue, undefined, rawValue)\n }\n\n private async commitPrincipalFromInputSafely (): Promise<boolean> {\n const inputSnapshot = this.principalInputValue.trim()\n\n try {\n return await this.commitPrincipalFromInput()\n } catch (error) {\n if (this.principalInputValue.trim() !== inputSnapshot) {\n debug.error('Ignored stale access-target validation error', error)\n return false\n }\n\n this.setInputError({\n action: 'input',\n label: 'Access target',\n targetUri: this.principalInputValue.trim(),\n message: 'We could not verify this access target. Check the value and try again.'\n })\n debug.error('Failed to commit pending access grants', error)\n return false\n }\n }\n\n private async queuePendingPrincipal (\n principal: string,\n role: AccessRole = this.addAccessRoleValue,\n preferredLabel?: string,\n inputSnapshot?: string\n ): Promise<boolean> {\n const snapshot = inputSnapshot ?? this.principalInputValue.trim()\n const result = await this.createPendingAccessGrant(principal, role, preferredLabel)\n\n if ('error' in result) {\n if (this.principalInputValue.trim() === snapshot) {\n this.setInputError(result.error)\n }\n debug.error('Failed to add access grant:', result.error.message)\n return false\n }\n\n const merged = [...this.pendingAccessGrants, result.grant]\n this.pendingAccessGrants = this.dedupePendingAccessGrants(merged)\n\n if (this.principalInputValue.trim() === snapshot) {\n this.clearInputError()\n this.principalInputValue = ''\n }\n\n return true\n }\n\n private async createPendingAccessGrant (\n principal: string,\n role: AccessRole = this.addAccessRoleValue,\n preferredLabel?: string\n ): Promise<PendingAccessGrantCreationResult> {\n try {\n const normalizedPrincipal = principal.trim()\n const resolvedTarget = await resolveAccessTarget(normalizedPrincipal, preferredLabel)\n if (!resolvedTarget) {\n return {\n error: {\n action: 'input',\n label: 'Access target',\n targetUri: normalizedPrincipal,\n message: 'Could not verify this access target'\n }\n }\n }\n\n return {\n grant: {\n subjectType: resolvedTarget.subjectType,\n subjectValue: resolvedTarget.subjectValue,\n role,\n label: resolvedTarget.label\n }\n }\n } catch (error) {\n return {\n error: {\n action: 'input',\n label: 'Access target',\n targetUri: principal,\n message: error instanceof Error && error.message.trim()\n ? error.message\n : 'Could not verify this access target'\n }\n }\n }\n }\n\n private dedupePendingAccessGrants (draftGrants: PendingAccessGrant[]): PendingAccessGrant[] {\n return dedupeByKey(draftGrants, draftGrant => `${draftGrant.subjectType}:${draftGrant.subjectValue}`)\n }\n}\n","import AccessControlModal from './AccessControlModal'\n\nexport { AccessControlModal }\nexport default AccessControlModal\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"auth-Hp8M6TQf.js","names":["Account","webId","avatarUrl","constructor","NoopAuth","initialized","account","login","Error","signup","logout","onSessionUpdated","undefined","createContext","NoopAuth","DEFAULT_AUTH_CONTEXT","authContext","Symbol","createContext","customElement","WebComponent","html","nothing","consume","property","query","state","authContext","DEFAULT_AUTH_CONTEXT","getSuggestedIssuers","styles","_classDecs","_LoginModal","_LoginModal2","_A","WeakMap","_B","_C","_D","_E","_F","_ref","_issuerUrlDecs","type","String","reflect","_issuerInputValueDecs","_failedDecs","_submittingDecs","_authDecs","context","subscribe","_dialogDecs","_LoginModal3","LoginModal","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_issuerUrl","_init_issuerInputValue","_init_failed","_init_submitting","_init_auth","_init_dialog","_classPrivateFieldGet","issuerUrl","v","_classPrivateFieldSet","issuerInputValue","failed","submitting","auth","dialog","connectedCallback","localStorage","getItem","uri","render","suggestedIssuers","onSubmit","onIssuerInputChange","map","issuer","name","close","e","target","value","preventDefault","login","error","console","c","_initClass","_applyDecs","_Class","_identity","_defineProperty","default","property","state","consume","query","getSuggestedIssuers","nothing","styles","LoginModal","LoginModal","Account","ns","authn","authSession","reloadOnIdentityReplaced","solidLogicSingleton","showDialog","LoginModal","DEFAULT_SIGNUP_URL","findAccountImage","webId","store","me","sym","image","any","sioc","foaf","vcard","value","undefined","SolidAuth","_initialized","profileLoaded","listeners","constructor","signupUrl","initialize","events","on","updater","flagAuthorizationMetadata","info","isLoggedIn","window","location","reload","checkUser","forEach","listener","loadProfile","account","profile","loadMe","initialized","isActive","Boolean","avatarUrl","login","loginUrl","preLoginRedirectHash","URL","href","hash","localStorage","setItem","locationUrl","signup","open","logout","onSessionUpdated","callback","sessionEventTarget","push","addEventListener","filter","_listener","removeEventListener","off","solidLogicSingleton","ns","authSession","authn","LoginModal","ns_default","c","C","C$1","c$1","A","customElement","n$1","WebComponent","i","b","n","e$1","showDialog","e","t","r","Account","webId","avatarUrl","NoopAuth","DEFAULT_AUTH_CONTEXT","authContext","LoginModal_styles_default","_Class","_LoginModal3","_A","_B","_C","_D","_E","_F","_initProto","_initClass","_classDecs","_issuerUrlDecs","_init_issuerUrl","_issuerInputValueDecs","_init_issuerInputValue","_failedDecs","_init_failed","_submittingDecs","_init_submitting","_authDecs","_init_auth","_dialogDecs","_init_dialog","_LoginModal2","_ref","_classPrivateFieldInitSpec","a","_checkPrivateRedeclaration","_classPrivateFieldSet","s","_assertClassBrand","_classPrivateFieldGet","_defineProperty","_toPropertyKey","_applyDecs","o","applyDec","m","h","y","v","g","u","w","S","d","p","_setFunctionName","P","j","D","I","F","l","f","N","_checkInRHS","_toPrimitive","_identity","_LoginModal","args","suggestedIssuers","issuer","error","login_modal_default","DEFAULT_SIGNUP_URL","findAccountImage","store","me","image","SolidAuth","signupUrl","listener","loginUrl","preLoginRedirectHash","locationUrl","sessionEventTarget","_listener"],"sources":["../../node_modules/solid-logic/dist/issuer/issuerLogic.esm.js","../../src/lib/auth/Account.ts","../../src/lib/auth/NoopAuth.ts","../../src/lib/auth/context.ts","../../src/components/login-modal/LoginModal.styles.css","../../src/components/login-modal/LoginModal.ts","../../src/components/login-modal/index.ts","../../src/lib/auth/SolidAuth.ts"],"sourcesContent":["//#region src/issuer/issuerLogic.ts\nvar e = [\n\t{\n\t\tname: \"Solid Community\",\n\t\turi: \"https://solidcommunity.net\"\n\t},\n\t{\n\t\tname: \"Solid Web\",\n\t\turi: \"https://solidweb.org\"\n\t},\n\t{\n\t\tname: \"Solid Web ME\",\n\t\turi: \"https://solidweb.me\"\n\t},\n\t{\n\t\tname: \"Inrupt.com\",\n\t\turi: \"https://login.inrupt.com\"\n\t}\n];\nfunction t() {\n\tlet t = [...e], { host: n, origin: r } = new URL(location.href);\n\treturn t.map(({ uri: e }) => new URL(e).host).includes(n) || t.unshift({\n\t\tname: n,\n\t\turi: r\n\t}), t;\n}\n//#endregion\nexport { t as getSuggestedIssuers };\n\n//# sourceMappingURL=issuerLogic.esm.js.map","export default class Account {\n public readonly webId: string\n public readonly avatarUrl?: string\n\n constructor (webId: string, avatarUrl?: string) {\n this.webId = webId\n this.avatarUrl = avatarUrl\n }\n}\n","import { AuthContext } from './context'\n\nexport default class NoopAuth implements AuthContext {\n public readonly initialized = false\n public readonly account = null\n\n async login () {\n throw new Error('Can\\'t use auth, missing context provider')\n }\n\n async signup () {\n throw new Error('Can\\'t use auth, missing context provider')\n }\n\n async logout () {\n throw new Error('Can\\'t use auth, missing context provider')\n }\n\n onSessionUpdated () {\n return () => undefined\n }\n}\n","import { createContext } from '@lit/context'\nimport NoopAuth from './NoopAuth'\nimport Account from './Account'\n\nexport interface AuthContext {\n initialized: boolean;\n account: Account | null;\n login(loginUrl?: string): Promise<void>;\n loadProfile?(): Promise<void>;\n signup(): Promise<void>;\n logout(): Promise<void>;\n onSessionUpdated(callback: () => unknown): () => void;\n}\n\nexport const DEFAULT_AUTH_CONTEXT = new NoopAuth()\nexport const authContext = createContext<AuthContext>(Symbol('auth'))\n",".error-message {\n color: var(--solid-ui-color-error);\n font-size: var(--solid-ui-font-size-sm);\n font-weight: 500;\n text-align: center;\n width: 100%;\n}\n\nsolid-ui-combobox {\n width: 100%;\n}\n\nsolid-ui-button {\n flex: 1;\n}\n","import { customElement, WebComponent } from '@/lib/components'\nimport { html, nothing } from 'lit'\nimport { consume } from '@lit/context'\nimport { property, query, state } from 'lit/decorators.js'\nimport { AuthContext, authContext, DEFAULT_AUTH_CONTEXT } from '@/lib/auth'\nimport { getSuggestedIssuers } from 'solid-logic'\nimport type Dialog from '@/components/dialog'\nimport type Combobox from '@/components/combobox'\n\nimport '~icons/lucide/chevron-down'\nimport '@/components/dialog'\nimport '@/components/dialog-content'\nimport '@/components/dialog-footer'\nimport '@/components/button'\nimport '@/components/combobox'\nimport '@/components/combobox-option'\n\nimport styles from './LoginModal.styles.css'\n\n@customElement('solid-ui-login-modal')\nexport default class LoginModal extends WebComponent {\n static styles = styles\n\n @property({ type: String, reflect: true })\n accessor issuerUrl = ''\n\n @state()\n private accessor issuerInputValue = ''\n\n @state()\n private accessor failed: boolean = false\n\n @state()\n private accessor submitting: boolean = false\n\n @consume({ context: authContext, subscribe: true })\n private accessor auth: AuthContext = DEFAULT_AUTH_CONTEXT\n\n @query('solid-ui-dialog')\n private accessor dialog: Dialog | null = null\n\n connectedCallback () {\n super.connectedCallback()\n\n this.issuerInputValue =\n (typeof localStorage !== 'undefined' && localStorage.getItem('loginIssuer')) ||\n this.issuerUrl ||\n getSuggestedIssuers()[0]?.uri ||\n ''\n }\n\n protected render () {\n const suggestedIssuers = getSuggestedIssuers()\n\n return html`\n <solid-ui-dialog title=\"Select an identity provider\">\n <form @submit=${this.onSubmit}>\n <solid-ui-dialog-content>\n <solid-ui-combobox label=\"Solid Identity Provider\" .value=${this.issuerInputValue} @input=${this.onIssuerInputChange}>\n ${suggestedIssuers.map(issuer => html`<solid-ui-combobox-option value=\"${issuer.uri}\">${issuer.name}</solid-ui-combobox-option>`)}\n </solid-ui-combobox>\n\n ${this.failed ? html`<p class=\"error-message\">Something went wrong</p>` : nothing}\n </solid-ui-dialog-content>\n\n <solid-ui-dialog-footer>\n <solid-ui-button\n variant=\"secondary\"\n @click=\"${() => this.dialog?.close()}\"\n >\n Cancel\n </solid-ui-button>\n <solid-ui-button\n ?disabled=${!this.issuerInputValue || this.submitting}\n ?loading=${this.submitting}\n type=\"submit\"\n >\n Login\n </solid-ui-button>\n </solid-ui-dialog-footer>\n </form>\n </solid-ui-dialog>\n `\n }\n\n private onIssuerInputChange (e: Event) {\n this.issuerInputValue = String((e.target as Combobox).value)\n }\n\n private async onSubmit (e: Event) {\n e.preventDefault()\n\n this.failed = false\n\n if (!this.issuerInputValue) {\n return\n }\n\n this.submitting = true\n\n try {\n await this.auth.login(this.issuerInputValue)\n } catch (error) {\n console.error(error)\n\n this.failed = true\n } finally {\n this.submitting = false\n }\n }\n}\n","import LoginModal from './LoginModal'\n\nexport { LoginModal }\nexport default LoginModal\n","import Account from '@/lib/auth/Account'\nimport ns from '@/lib/ns'\nimport { authn, authSession, reloadOnIdentityReplaced, solidLogicSingleton } from 'solid-logic'\nimport { AuthContext } from '@/lib/auth'\nimport { showDialog } from '@/lib/dialogs'\n\nimport LoginModal from '@/components/login-modal'\n\nexport const DEFAULT_SIGNUP_URL = 'https://solidproject.org/get_a_pod'\n\nfunction findAccountImage (webId: string): string | undefined {\n const store = solidLogicSingleton.store\n const me = store.sym(webId)\n const image =\n store.any(me, ns.sioc('avatar')) ||\n store.any(me, ns.foaf('img')) ||\n store.any(me, ns.vcard('logo')) ||\n store.any(me, ns.vcard('hasPhoto')) ||\n store.any(me, ns.vcard('photo')) ||\n store.any(me, ns.foaf('depiction'))\n\n return image ? (image as any).value : undefined\n}\n\nexport default class SolidAuth implements AuthContext {\n private _initialized = false\n private profileLoaded = false\n private listeners: (() => unknown)[] = []\n\n constructor (public signupUrl: string = DEFAULT_SIGNUP_URL) {}\n\n async initialize () {\n authSession.events.on('sessionRestore', () => {\n ;(solidLogicSingleton.store.updater as any).flagAuthorizationMetadata()\n })\n\n // An identity that was actively established was replaced while the session\n // stayed active (A -> B, e.g. from another tab): everything fetched under\n // the previous identity is stale, so the app reloads. A logout is not a\n // reload case here — the derived info already reports logged out and the\n // logout path runs its own cleanup and navigation.\n reloadOnIdentityReplaced(authSession.events, () => {\n if (authSession.info?.isLoggedIn) window.location.reload()\n })\n\n await authn.checkUser()\n\n this._initialized = true\n this.listeners.forEach(listener => listener())\n }\n\n async loadProfile () {\n if (this.profileLoaded || !this.account) {\n return\n }\n\n this.profileLoaded = true\n\n await solidLogicSingleton.profile.loadMe()\n\n this.listeners.forEach(listener => listener())\n }\n\n get initialized (): boolean {\n return this._initialized\n }\n\n get account (): Account | null {\n const webId: string | undefined = authSession.webId ?? authSession.info?.webId\n const isActive: boolean = authSession.isActive ?? authSession.info?.isLoggedIn ?? Boolean(webId)\n\n if (!isActive || !webId) {\n return null\n }\n\n const avatarUrl = findAccountImage(webId)\n\n return new Account(webId, avatarUrl)\n }\n\n async login (loginUrl?: string) {\n if (!loginUrl) {\n showDialog(LoginModal)\n\n return\n }\n\n // clear authorization metadata from store\n ;(solidLogicSingleton.store.updater as any).flagAuthorizationMetadata()\n\n const preLoginRedirectHash = new URL(window.location.href).hash\n if (preLoginRedirectHash) {\n window.localStorage.setItem('preLoginRedirectHash', preLoginRedirectHash)\n }\n window.localStorage.setItem('loginIssuer', loginUrl)\n\n const locationUrl = new URL(window.location.href)\n\n locationUrl.hash = ''\n\n await authSession.login(loginUrl, locationUrl.href)\n }\n\n async signup () {\n window.open(this.signupUrl, '_blank', 'noopener,noreferrer')\n }\n\n async logout () {\n await authSession.logout()\n }\n\n onSessionUpdated (callback: () => unknown) {\n const sessionEventTarget = authSession as unknown as EventTarget\n const listener = () => {\n callback()\n }\n\n this.listeners.push(listener)\n\n if (typeof sessionEventTarget.addEventListener === 'function') {\n sessionEventTarget.addEventListener('sessionStateChange', listener)\n } else {\n authSession.events.on('login', listener)\n authSession.events.on('logout', listener)\n authSession.events.on('sessionRestore', listener)\n }\n\n return () => {\n this.listeners = this.listeners.filter(_listener => _listener !== listener)\n\n if (typeof sessionEventTarget.removeEventListener === 'function') {\n sessionEventTarget.removeEventListener('sessionStateChange', listener)\n } else {\n authSession.events.off('login', listener)\n authSession.events.off('logout', listener)\n authSession.events.off('sessionRestore', listener)\n }\n }\n }\n}\n"],"ignoreList":[0],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chevron-down-ujxRg3MD.js","names":["iconlucidechevrondown"],"sources":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"combobox-Dmv-TZtI.js","names":["t","debounce","delay","callback","timeout","debouncedCallback","args","cancel","setTimeout","clearTimeout","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","onInputClick","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","property","query","state","nothing","Task","styles","Combobox","Combobox","A","customElement","n","i$1","r$1","FormControlComponent","b","e","i","h","t","s","r","f","debounce","timeout","debouncedCallback","args","callback","delay","iconsvgspinners3dotsfade","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","_assertClassBrand","_classPrivateFieldGet","_defineProperty","_toPropertyKey","_applyDecs","o","c","applyDec","m","y","v","g","u","w","S","d","p","_setFunctionName","P","j","D","I","F","l","N","_checkInRHS","_toPrimitive","_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","combobox_default"],"sources":["../../node_modules/@lit/task/task.js","../../src/lib/timing.ts","../../src/components/combobox/Combobox.styles.css","../../src/components/combobox/Combobox.ts","../../src/components/combobox/index.ts"],"sourcesContent":["import{notEqual as t}from\"@lit/reactive-element\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const s={INITIAL:0,PENDING:1,COMPLETE:2,ERROR:3},i=Symbol();class h{get taskComplete(){return this.t||(1===this.i?this.t=new Promise(((t,s)=>{this.o=t,this.h=s})):3===this.i?this.t=Promise.reject(this.l):this.t=Promise.resolve(this.u)),this.t}constructor(t,s,i){this.p=0,this.i=0,(this._=t).addController(this);const h=\"object\"==typeof s?s:{task:s,args:i};this.v=h.task,this.j=h.args,this.m=h.argsEqual??r,this.k=h.onComplete,this.A=h.onError,this.autoRun=h.autoRun??!0,\"initialValue\"in h&&(this.u=h.initialValue,this.i=2,this.O=this.T?.())}hostUpdate(){!0===this.autoRun&&this.S()}hostUpdated(){\"afterUpdate\"===this.autoRun&&this.S()}T(){if(void 0===this.j)return;const t=this.j();if(!Array.isArray(t))throw Error(\"The args function must return an array\");return t}async S(){const t=this.T(),s=this.O;this.O=t,t===s||void 0===t||void 0!==s&&this.m(s,t)||await this.run(t)}async run(t){let s,h;t??=this.T(),this.O=t,1===this.i?this.q?.abort():(this.t=void 0,this.o=void 0,this.h=void 0),this.i=1,\"afterUpdate\"===this.autoRun?queueMicrotask((()=>this._.requestUpdate())):this._.requestUpdate();const r=++this.p;this.q=new AbortController;let e=!1;try{s=await this.v(t,{signal:this.q.signal})}catch(t){e=!0,h=t}if(this.p===r){if(s===i)this.i=0;else{if(!1===e){try{this.k?.(s)}catch{}this.i=2,this.o?.(s)}else{try{this.A?.(h)}catch{}this.i=3,this.h?.(h)}this.u=s,this.l=h}this._.requestUpdate()}}abort(t){1===this.i&&this.q?.abort(t)}get value(){return this.u}get error(){return this.l}get status(){return this.i}render(t){switch(this.i){case 0:return t.initial?.();case 1:return t.pending?.();case 2:return t.complete?.(this.value);case 3:return t.error?.(this.error);default:throw Error(\"Unexpected status: \"+this.i)}}}const r=(s,i)=>s===i||s.length===i.length&&s.every(((s,h)=>!t(s,i[h])));export{h as Task,s as TaskStatus,i as initialState,r as shallowArrayEquals};\n//# sourceMappingURL=task.js.map\n","export interface DebouncedFunction<Args extends any[]> {\n (...args: Args): void;\n cancel(): void;\n}\n\nexport function debounce<Args extends any[]> (\n delay: number,\n callback: (...args: Args) => unknown\n): DebouncedFunction<Args> {\n let timeout: ReturnType<typeof setTimeout> | null = null\n\n const debouncedCallback: DebouncedFunction<Args> = (...args: Args) => {\n debouncedCallback.cancel()\n timeout = setTimeout(() => callback(...args), delay)\n }\n\n debouncedCallback.cancel = () => {\n if (timeout === null) {\n return\n }\n\n clearTimeout(timeout)\n timeout = null\n }\n\n return debouncedCallback\n}\n",":host {\n --solid-ui-input-border-color: var(--solid-ui-color-gray-400);\n\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-input-border-color);\n border-radius: 5px;\n padding: 10px;\n padding-right: 40px;\n width: 100%;\n\n /* Global focus styles don't reach into the shadow DOM, so mirror them here. */\n &:focus-visible {\n outline: var(--focus-indicator-width, 2px) solid var(--color-primary, var(--solid-ui-color-primary, #7C4DFF));\n outline-offset: 2px;\n box-shadow: 0 0 0 1px var(--color-background, #F8F9FB), 0 0 0 4px rgba(124, 77, 255, 0.2);\n transition: none;\n }\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","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 @click=${this.onInputClick}\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 onInputClick () {\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","import Combobox from './Combobox'\n\nexport * from './Combobox'\nexport { Combobox }\nexport default Combobox\n"],"ignoreList":[0],"mappings":"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"}
|