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
|
@@ -5,38 +5,39 @@ import n from "../../lib/components/web-component/WebComponent.esm.js";
|
|
|
5
5
|
import "../../lib/components/index.esm.js";
|
|
6
6
|
import "../combobox/index.esm.js";
|
|
7
7
|
import "../combobox-option/index.esm.js";
|
|
8
|
+
import "../../_virtual/~icons/lucide/globe.esm.js";
|
|
8
9
|
import r from "./AccessControlSharedAccess.styles.esm.js";
|
|
9
10
|
import { sym as i } from "rdflib";
|
|
10
11
|
import { ACCESS_ROLES as a } from "solid-logic";
|
|
11
12
|
import { html as o } from "lit";
|
|
12
13
|
import { property as s, state as c } from "lit/decorators.js";
|
|
13
|
-
|
|
14
|
-
var l, u, d, f, p, m, h, g, _, v, y, b, x;
|
|
15
|
-
function
|
|
16
|
-
|
|
14
|
+
// src/components/access-control-modal/AccessControlSharedAccess.ts
|
|
15
|
+
var l, u, d, f, p, m, h, g, _, v, y, b, x, S, C, w;
|
|
16
|
+
function T(e, t, n) {
|
|
17
|
+
E(e, t), t.set(e, n);
|
|
17
18
|
}
|
|
18
|
-
function
|
|
19
|
+
function E(e, t) {
|
|
19
20
|
if (t.has(e)) throw TypeError("Cannot initialize the same private elements twice on an object");
|
|
20
21
|
}
|
|
21
|
-
function
|
|
22
|
-
return e.set(
|
|
22
|
+
function D(e, t, n) {
|
|
23
|
+
return e.set(k(e, t), n), n;
|
|
23
24
|
}
|
|
24
|
-
function
|
|
25
|
-
return e.get(
|
|
25
|
+
function O(e, t) {
|
|
26
|
+
return e.get(k(e, t));
|
|
26
27
|
}
|
|
27
|
-
function
|
|
28
|
+
function k(e, t, n) {
|
|
28
29
|
if (typeof e == "function" ? e === t : e.has(t)) return arguments.length < 3 ? t : n;
|
|
29
30
|
throw TypeError("Private element is not present on this object");
|
|
30
31
|
}
|
|
31
|
-
function
|
|
32
|
-
return (t =
|
|
32
|
+
function A(e, t, n) {
|
|
33
|
+
return (t = M(t)) in e ? Object.defineProperty(e, t, {
|
|
33
34
|
value: n,
|
|
34
35
|
enumerable: !0,
|
|
35
36
|
configurable: !0,
|
|
36
37
|
writable: !0
|
|
37
38
|
}) : e[t] = n, e;
|
|
38
39
|
}
|
|
39
|
-
function
|
|
40
|
+
function j(e, t, n, r, i, a) {
|
|
40
41
|
function o(e, t, n) {
|
|
41
42
|
return function(r, i) {
|
|
42
43
|
return n && n(r), e[t].call(r, i);
|
|
@@ -59,13 +60,13 @@ function O(e, t, n, r, i, a) {
|
|
|
59
60
|
n || Array.isArray(_) || (_ = [_]);
|
|
60
61
|
var b = {}, x = [], S = i === 3 ? "get" : i === 4 || p ? "set" : "value";
|
|
61
62
|
d ? (f || p ? b = {
|
|
62
|
-
get:
|
|
63
|
+
get: P(function() {
|
|
63
64
|
return v(this);
|
|
64
65
|
}, r, "get"),
|
|
65
66
|
set: function(e) {
|
|
66
67
|
t[4](this, e);
|
|
67
68
|
}
|
|
68
|
-
} : b[S] = v, f ||
|
|
69
|
+
} : b[S] = v, f || P(b[S], r, i === 2 ? "" : S)) : f || (b = Object.getOwnPropertyDescriptor(e, r));
|
|
69
70
|
}
|
|
70
71
|
for (var C = e, w = _.length - 1; w >= 0; w -= n ? 2 : 1) {
|
|
71
72
|
var T = _[w], E = n ? _[w - 1] : void 0, D = {}, O = {
|
|
@@ -95,10 +96,10 @@ function O(e, t, n, r, i, a) {
|
|
|
95
96
|
}, (i < 2 || i === 4) && (A = function(e, t) {
|
|
96
97
|
e[r] = t;
|
|
97
98
|
}));
|
|
98
|
-
var
|
|
99
|
+
var j = O.access = { has: d ? m.bind() : function(e) {
|
|
99
100
|
return r in e;
|
|
100
101
|
} };
|
|
101
|
-
if (k && (
|
|
102
|
+
if (k && (j.get = k), A && (j.set = A), C = T.call(E, p ? {
|
|
102
103
|
get: b.get,
|
|
103
104
|
set: b.set
|
|
104
105
|
} : b[S], O), p) {
|
|
@@ -125,7 +126,7 @@ function O(e, t, n, r, i, a) {
|
|
|
125
126
|
if (arguments.length >= 6) var d = a[Symbol.metadata || Symbol.for("Symbol.metadata")];
|
|
126
127
|
var f = Object.create(d ?? null), p = function(e, t, n, r) {
|
|
127
128
|
var i, a, o = [], c = function(t) {
|
|
128
|
-
return
|
|
129
|
+
return F(t) === e;
|
|
129
130
|
}, u = /* @__PURE__ */ new Map();
|
|
130
131
|
function d(e) {
|
|
131
132
|
e && o.push(s.bind(null, e));
|
|
@@ -139,7 +140,7 @@ function O(e, t, n, r, i, a) {
|
|
|
139
140
|
if (!0 === x || x === 3 && m !== 4 || x === 4 && m !== 3) throw Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: " + h);
|
|
140
141
|
u.set(b, !(m > 2) || m);
|
|
141
142
|
}
|
|
142
|
-
l(v ? e : e.prototype, p, _, g ? "#" + h :
|
|
143
|
+
l(v ? e : e.prototype, p, _, g ? "#" + h : M(h), m, r, v ? a ||= [] : i ||= [], o, v, g, y, m === 1, v && g ? c : n);
|
|
143
144
|
}
|
|
144
145
|
}
|
|
145
146
|
return d(i), d(a), o;
|
|
@@ -152,11 +153,11 @@ function O(e, t, n, r, i, a) {
|
|
|
152
153
|
}
|
|
153
154
|
};
|
|
154
155
|
}
|
|
155
|
-
function
|
|
156
|
-
var t =
|
|
156
|
+
function M(e) {
|
|
157
|
+
var t = N(e, "string");
|
|
157
158
|
return typeof t == "symbol" ? t : t + "";
|
|
158
159
|
}
|
|
159
|
-
function
|
|
160
|
+
function N(e, t) {
|
|
160
161
|
if (typeof e != "object" || !e) return e;
|
|
161
162
|
var n;
|
|
162
163
|
if (typeof Symbol < "u" && (n = e[Symbol.toPrimitive]) !== void 0) {
|
|
@@ -166,7 +167,7 @@ function A(e, t) {
|
|
|
166
167
|
}
|
|
167
168
|
return (t === "string" ? String : Number)(e);
|
|
168
169
|
}
|
|
169
|
-
function
|
|
170
|
+
function P(e, t, n) {
|
|
170
171
|
typeof t == "symbol" && (t = (t = t.description) ? "[" + t + "]" : "");
|
|
171
172
|
try {
|
|
172
173
|
Object.defineProperty(e, "name", {
|
|
@@ -176,30 +177,36 @@ function j(e, t, n) {
|
|
|
176
177
|
} catch {}
|
|
177
178
|
return e;
|
|
178
179
|
}
|
|
179
|
-
function
|
|
180
|
+
function F(e) {
|
|
180
181
|
if (Object(e) !== e) throw TypeError("right-hand side of 'in' should be an object, got " + (e === null ? "null" : typeof e));
|
|
181
182
|
return e;
|
|
182
183
|
}
|
|
183
|
-
function
|
|
184
|
+
function I(e) {
|
|
184
185
|
return e;
|
|
185
186
|
}
|
|
186
|
-
|
|
187
|
-
var
|
|
188
|
-
new (
|
|
187
|
+
g = [t("solid-ui-access-control-shared-access")];
|
|
188
|
+
var L;
|
|
189
|
+
new (C = (d = /*#__PURE__*/ new WeakMap(), f = /*#__PURE__*/ new WeakMap(), p = /*#__PURE__*/ new WeakMap(), w = (_ = s({ attribute: !1 }), y = s({ type: Boolean }), x = c(), "accessGrantViewModels"), u = class extends n {
|
|
189
190
|
constructor(...e) {
|
|
190
|
-
super(...e),
|
|
191
|
+
super(...e), T(this, d, (m(this), v(this, []))), T(this, f, b(this, !1)), T(this, p, S(this, ""));
|
|
191
192
|
}
|
|
192
|
-
get [
|
|
193
|
-
return
|
|
193
|
+
get [w]() {
|
|
194
|
+
return O(d, this);
|
|
194
195
|
}
|
|
195
196
|
set accessGrantViewModels(e) {
|
|
196
|
-
|
|
197
|
+
D(d, this, e);
|
|
198
|
+
}
|
|
199
|
+
get disabled() {
|
|
200
|
+
return O(f, this);
|
|
201
|
+
}
|
|
202
|
+
set disabled(e) {
|
|
203
|
+
D(f, this, e);
|
|
197
204
|
}
|
|
198
205
|
get searchValue() {
|
|
199
|
-
return
|
|
206
|
+
return O(p, this);
|
|
200
207
|
}
|
|
201
208
|
set searchValue(e) {
|
|
202
|
-
|
|
209
|
+
D(p, this, e);
|
|
203
210
|
}
|
|
204
211
|
onSearchInput(e) {
|
|
205
212
|
let t = e.currentTarget;
|
|
@@ -210,14 +217,14 @@ new (b = (d = /*#__PURE__*/ new WeakMap(), f = /*#__PURE__*/ new WeakMap(), x =
|
|
|
210
217
|
typeof t.label == "string" && (this.searchValue = t.label);
|
|
211
218
|
}
|
|
212
219
|
onAccessGrantRoleChange(e, t) {
|
|
213
|
-
let n = t.detail.option.value;
|
|
214
|
-
if (
|
|
215
|
-
let
|
|
220
|
+
let n = t.detail.option.value, r = typeof n == "string" ? a.find((e) => e === n) : void 0;
|
|
221
|
+
if (!r) return;
|
|
222
|
+
let i = {
|
|
216
223
|
id: e,
|
|
217
|
-
role:
|
|
224
|
+
role: r
|
|
218
225
|
};
|
|
219
226
|
this.dispatchEvent(new CustomEvent("access-grant-role-changed", {
|
|
220
|
-
detail:
|
|
227
|
+
detail: i,
|
|
221
228
|
bubbles: !0,
|
|
222
229
|
composed: !0
|
|
223
230
|
}));
|
|
@@ -239,7 +246,7 @@ new (b = (d = /*#__PURE__*/ new WeakMap(), f = /*#__PURE__*/ new WeakMap(), x =
|
|
|
239
246
|
let n = this.getAuthorizationBadge(e, t);
|
|
240
247
|
return o`
|
|
241
248
|
<div class="access-grants-image access-grants-image--${n.kind}">
|
|
242
|
-
${n.image ? o`<img src=${n.image} alt="" aria-hidden="true" />` : o`<span aria-hidden="true">${n.text}</span>`}
|
|
249
|
+
${n.image ? o`<img src=${n.image} alt="" aria-hidden="true" />` : n.kind === "origin" ? o`<icon-lucide-globe aria-hidden="true"></icon-lucide-globe>` : o`<span aria-hidden="true">${n.text}</span>`}
|
|
243
250
|
</div>
|
|
244
251
|
`;
|
|
245
252
|
}
|
|
@@ -268,7 +275,8 @@ new (b = (d = /*#__PURE__*/ new WeakMap(), f = /*#__PURE__*/ new WeakMap(), x =
|
|
|
268
275
|
}
|
|
269
276
|
return t.origin[0] ? {
|
|
270
277
|
kind: "origin",
|
|
271
|
-
text: "O"
|
|
278
|
+
text: "O",
|
|
279
|
+
image: ""
|
|
272
280
|
} : {
|
|
273
281
|
kind: "unknown",
|
|
274
282
|
text: "?"
|
|
@@ -281,6 +289,7 @@ new (b = (d = /*#__PURE__*/ new WeakMap(), f = /*#__PURE__*/ new WeakMap(), x =
|
|
|
281
289
|
return o`
|
|
282
290
|
<solid-ui-combobox
|
|
283
291
|
class="access-role-select access-role-select--compact access-grants-role access-grants-role--editable ${e === "Owner" ? "access-grants-role--owner" : ""}"
|
|
292
|
+
.disabled=${this.disabled}
|
|
284
293
|
.value=${e}
|
|
285
294
|
@change=${(e) => this.onAccessGrantRoleChange(t, e)}
|
|
286
295
|
>
|
|
@@ -298,7 +307,7 @@ new (b = (d = /*#__PURE__*/ new WeakMap(), f = /*#__PURE__*/ new WeakMap(), x =
|
|
|
298
307
|
return o`
|
|
299
308
|
<section aria-labelledby="access-grants-heading">
|
|
300
309
|
<div class="access-grants-header">
|
|
301
|
-
<h2 id="access-grants-heading">
|
|
310
|
+
<h2 id="access-grants-heading">Shared with</h2>
|
|
302
311
|
<solid-ui-combobox
|
|
303
312
|
class="access-grants-search-input"
|
|
304
313
|
label="Search access grants"
|
|
@@ -323,20 +332,27 @@ new (b = (d = /*#__PURE__*/ new WeakMap(), f = /*#__PURE__*/ new WeakMap(), x =
|
|
|
323
332
|
</section>
|
|
324
333
|
`;
|
|
325
334
|
}
|
|
326
|
-
}, {e: [
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
+
}, {e: [v, b, S, m], c: [L, h]} = j(u, [
|
|
336
|
+
[
|
|
337
|
+
_,
|
|
338
|
+
1,
|
|
339
|
+
"accessGrantViewModels"
|
|
340
|
+
],
|
|
341
|
+
[
|
|
342
|
+
y,
|
|
343
|
+
1,
|
|
344
|
+
"disabled"
|
|
345
|
+
],
|
|
346
|
+
[
|
|
347
|
+
x,
|
|
348
|
+
1,
|
|
349
|
+
"searchValue"
|
|
350
|
+
]
|
|
351
|
+
], g, 0, void 0, n), u), l = class extends I {
|
|
335
352
|
constructor() {
|
|
336
|
-
super(
|
|
353
|
+
super(L), A(this, "styles", r), h();
|
|
337
354
|
}
|
|
338
|
-
},
|
|
339
|
-
|
|
340
|
-
export { P as default };
|
|
355
|
+
}, A(l, C, void 0), l)();
|
|
356
|
+
export { L as default };
|
|
341
357
|
|
|
342
358
|
//# sourceMappingURL=AccessControlSharedAccess.esm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccessControlSharedAccess.esm.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","styles","WebComponent","AccessControlSharedAccess_styles_default","_Class","_AccessControlSharedAccess","_A","_B","_initProto","_initClass","_classDecs","_accessGrantViewModelsDecs","_init_accessGrantViewModels","_searchValueDecs","_init_searchValue","_AccessControlSharedA2","_ref","_classPrivateFieldInitSpec","a","_checkPrivateRedeclaration","_classPrivateFieldSet","s","_assertClassBrand","r","_classPrivateFieldGet","_defineProperty","_toPropertyKey","t","_applyDecs","i","n","o","c","applyDec","m","h","y","v","g","b","u","w","S","A","d","p","_setFunctionName","P","j","D","I","F","l","f","N","_checkInRHS","_toPrimitive","e","_identity","customElement","_AccessControlSharedA","property","state","args","target","event","option","value","ACCESS_ROLES","detail","query","subjects","subjectLabel","entry","badge","authorization","agent","image","findImage","sym","agentClass","maxWords","part","role","id","accessGrants"],"sources":["../../../src/components/access-control-modal/AccessControlSharedAccess.ts"],"sourcesContent":["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"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AccessControlSharedAccess.esm.js","names":["customElement","WebComponent","html","property","state","ACCESS_ROLES","findImage","sym","styles","_classDecs","_AccessControlSharedA","_AccessControlSharedA2","_A","WeakMap","_B","_C","_ref","_accessGrantViewModelsDecs","attribute","_disabledDecs","type","Boolean","_searchValueDecs","_AccessControlSharedAccess","AccessControlSharedAccess","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_accessGrantViewModels","_init_disabled","_init_searchValue","_classPrivateFieldGet","accessGrantViewModels","v","_classPrivateFieldSet","disabled","searchValue","onSearchInput","event","target","currentTarget","value","onSearchSelect","option","detail","label","onAccessGrantRoleChange","id","accessRole","find","candidate","undefined","role","dispatchEvent","CustomEvent","bubbles","composed","getFilteredAccessGrants","query","trim","toLowerCase","filter","subjectLabel","subjects","length","includes","renderAccessGrant","entry","renderAuthorizationBadge","authorization","renderAuthorizationRole","badge","getAuthorizationBadge","kind","image","text","agent","getInitials","agentGroup","agentClass","origin","maxWords","parts","split","slice","initials","map","part","join","toUpperCase","renderGrantRoleOptions","render","accessGrants","e","c","_initClass","_applyDecs","_Class","_identity","_defineProperty","default","styles","WebComponent","AccessControlSharedAccess_styles_default","_Class","_AccessControlSharedAccess","_A","_B","_C","_initProto","_initClass","_classDecs","_accessGrantViewModelsDecs","_init_accessGrantViewModels","_disabledDecs","_init_disabled","_searchValueDecs","_init_searchValue","_AccessControlSharedA2","_ref","_classPrivateFieldInitSpec","a","_checkPrivateRedeclaration","_classPrivateFieldSet","s","_assertClassBrand","r","_classPrivateFieldGet","_defineProperty","_toPropertyKey","t","_applyDecs","i","n","o","c","applyDec","m","h","y","v","g","b","u","w","S","A","d","p","_setFunctionName","P","j","D","I","F","l","f","N","_checkInRHS","_toPrimitive","e","_identity","customElement","_AccessControlSharedA","property","state","args","target","event","option","value","accessRole","ACCESS_ROLES","candidate","detail","query","subjects","subjectLabel","entry","badge","authorization","agent","image","findImage","sym","agentClass","maxWords","part","role","id","accessGrants"],"sources":["../../../src/components/access-control-modal/AccessControlSharedAccess.ts"],"sourcesContent":["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'\nimport '~icons/lucide/globe'\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 @property({ type: Boolean })\n accessor disabled = false\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 const accessRole = typeof value === 'string'\n ? ACCESS_ROLES.find(candidate => candidate === value)\n : undefined\n if (!accessRole) {\n return\n }\n\n const detail: AccessGrantRoleChangedDetail = {\n id,\n role: 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 : badge.kind === 'origin'\n ? html`<icon-lucide-globe aria-hidden=\"true\"></icon-lucide-globe>`\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 image: ''\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 .disabled=${this.disabled}\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\">Shared 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"],"mappings":"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"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { css as e } from "lit";
|
|
2
|
-
|
|
2
|
+
// src/components/access-control-modal/AccessControlSharedAccess.styles.css
|
|
3
3
|
var t = e`:host h2{color:var(--solid-ui-color-gray-900,#101828);font-size:var(--solid-ui-font-size-md,1rem);font-weight:600}:host .access-grants-header,:host .access-grants-list{align-self:stretch;padding:0 10px}:host .access-grants-header{justify-content:space-between;align-items:center;gap:15px;display:flex}:host .access-grants-header .access-grants-search-input{--solid-ui-input-border-color:transparent;width:12ch;min-width:12ch;color:var(--solid-ui-color-zinc-500,#71717b);font-size:var(--solid-ui-font-size-sm,.875rem);flex:none;font-weight:500}:host .access-grants-list{align-items:flex-start;gap:20px;display:flex}:host .access-grants-list ul{box-sizing:border-box;border:1px solid var(--solid-ui-color-gray-200,#e5e7eb);border-radius:10px;flex-direction:column;flex:1 0 0;align-items:flex-start;gap:15px;height:195px;min-height:0;padding:15px;display:flex;overflow:hidden auto}:host .access-grants-list li{flex:none;align-items:center;gap:10px;width:100%;display:flex}:host .access-grants-list li .access-grants-image{aspect-ratio:1;width:30px;height:30px;color:var(--solid-ui-color-white,#fff);text-align:center;font-size:var(--solid-ui-font-size-xs,.75rem);border-radius:999px;flex:0 0 30px;justify-content:center;align-items:center;font-weight:500;display:flex;overflow:hidden}:host .access-grants-list li .access-grants-image img{object-fit:cover;border-radius:999px;width:100%;height:100%;display:flex}:host .access-grants-list li .access-grants-image span{justify-content:center;align-items:center;width:100%;height:100%;line-height:1;display:flex}:host .access-grants-list li .access-grants-image--agentGroup{background:var(--solid-ui-color-blue-900,#083575)}:host .access-grants-list li .access-grants-image--agent,:host .access-grants-list li .access-grants-image--agentClass{background:var(--solid-ui-color-lavender-300,#e6dcff)}:host .access-grants-list li .access-grants-image--origin{background:var(--solid-ui-color-green-700,#15803d)}:host .access-grants-list li .access-grants-image--unknown{background:var(--solid-ui-color-gray-300,#d1d5db)}:host .access-grants-list li h3{min-width:0;color:var(--solid-ui-color-gray-800,#1e2939);font-size:var(--solid-ui-font-size-xs,.75rem);flex:auto;font-weight:600}:host .access-grants-list li span{text-align:right;flex:none;margin-left:auto}:host .access-grants-list li .access-grants-role{font-size:var(--solid-ui-font-size-xs,.75rem);flex:none;margin-left:auto}:host .access-grants-list li .access-grants-role--owner{font-size:var(--solid-ui-font-size-xs,.75rem)}:host .access-grants-list li .access-grants-role--editable{max-width:100%}:host .access-role-select--compact{--solid-ui-input-border-color:transparent;flex:0 0 110px;width:110px;min-width:110px;max-width:100%;margin-top:0}:host .access-grants-list li .access-role-select--compact{flex:0 0 110px;width:110px;min-width:110px}`;
|
|
4
|
-
//#endregion
|
|
5
4
|
export { t as default };
|
|
6
5
|
|
|
7
6
|
//# sourceMappingURL=AccessControlSharedAccess.styles.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const e=require("../../utils/label.cjs.js");let t=require("rdflib"),n=require("solid-logic");function r(e){return{...e,agentClass:e.agentClass.filter(e=>e!==n.Authenticated.iri&&e!==n.Public.iri)}}function i(e){return[{type:`agent`,iris:e.agent},{type:`agentGroup`,iris:e.agentGroup},{type:`agentClass`,iris:e.agentClass},{type:`origin`,iris:e.origin}].flatMap(({type:e,iris:t})=>t.map(t=>({type:e,iri:t})))}function a(e){return i(e).map(e=>`${e.type}:${e.iri}`).sort().join(`|`)}function o(e){let t=new Map;return e.map(e=>{let n=a(r(e)),i=t.get(n)??0;return t.set(n,i+1),i===0?n:`${n}#${i}`})}function s(n){let r=[...n.agent,...n.agentGroup,...n.agentClass,...n.origin];return r.length?r.map(n=>e.label((0,t.sym)(n))).join(`, `):`Unknown access holder`}function c(e){return n.solidLogicSingleton.acl.roleFromModes(e.mode)}function l(e){let t=r(e);return{id:a(t),authorization:t,role:c(t),initialRole:c(e),subjectLabel:s(t),subjects:i(t)}}function u(e){let t=o(e);return e.map((e,n)=>({...l(e),id:t[n]}))}function d(e){return[...e].sort((t,n)=>{let r=t.role===`Owner`,i=n.role===`Owner`;return r&&!i?-1:!r&&i?1:e.indexOf(t)-e.indexOf(n)})}function f(e){return d(e).filter(({role:e,initialRole:t,subjects:n})=>e!==t&&n.length>0).map(({authorization:e,subjects:t,role:n})=>({authorization:e,subjects:t,role:n}))}function p(e){let t=e.
|
|
1
|
+
const e=require("../../utils/label.cjs.js");let t=require("rdflib"),n=require("solid-logic");function r(e){return{...e,agentClass:e.agentClass.filter(e=>e!==n.Authenticated.iri&&e!==n.Public.iri)}}function i(e){return[{type:`agent`,iris:e.agent},{type:`agentGroup`,iris:e.agentGroup},{type:`agentClass`,iris:e.agentClass},{type:`origin`,iris:e.origin}].flatMap(({type:e,iris:t})=>t.map(t=>({type:e,iri:t})))}function a(e){return e.id?e.id:i(e).map(e=>`${e.type}:${e.iri}`).sort().join(`|`)}function o(e){let t=new Map;return e.map(e=>{let n=a(r(e)),i=t.get(n)??0;return t.set(n,i+1),i===0?n:`${n}#${i}`})}function s(n){let r=[...n.agent,...n.agentGroup,...n.agentClass,...n.origin];return r.length?r.map(n=>e.label((0,t.sym)(n))).join(`, `):`Unknown access holder`}function c(e){return n.solidLogicSingleton.acl.roleFromModes(e.mode)}function l(e){let t=r(e);return{id:a(t),authorization:t,role:c(t),initialRole:c(e),subjectLabel:s(t),subjects:i(t)}}function u(e){let t=o(e);return e.map((e,n)=>({...l(e),id:t[n]}))}function d(e){return[...e].sort((t,n)=>{let r=t.role===`Owner`,i=n.role===`Owner`;return r&&!i?-1:!r&&i?1:e.indexOf(t)-e.indexOf(n)})}function f(e){return d(e).filter(({role:e,initialRole:t,subjects:n})=>e!==t&&n.length>0).map(({authorization:e,subjects:t,role:n})=>({authorization:e,subjects:t,role:n}))}function p(e){let t=e.filter(e=>e.agentClass.includes(n.Authenticated.iri)).flatMap(e=>e.mode);return t.length?n.solidLogicSingleton.acl.roleFromModes(t):`No Access`}function m(e){let t=e.filter(e=>e.agentClass.includes(n.Public.iri)).flatMap(e=>e.mode);return t.length?n.solidLogicSingleton.acl.publicRoleFromModes(t):`No Access`}function h(r){return r.iri===n.Authenticated.iri?`Authenticated users`:r.iri===n.Public.iri?`Public`:e.label((0,t.sym)(r.iri)).trim()||r.iri}exports.createAccessGrantDraft=l,exports.createAccessGrantDrafts=u,exports.getAccessGrantId=a,exports.getAccessGrantIds=o,exports.getAccessGrantViewModels=d,exports.getAccessSubjectLabel=h,exports.getAuthenticatedAccessRole=p,exports.getAuthorizationRole=c,exports.getAuthorizationSubjectEntries=i,exports.getAuthorizationSubjectLabel=s,exports.getChangedAccessGrants=f,exports.getPublicAccessRole=m,exports.getSharedAuthorization=r;
|
|
2
2
|
//# sourceMappingURL=accessGrantDrafts.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accessGrantDrafts.cjs.js","names":["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","
|
|
1
|
+
{"version":3,"file":"accessGrantDrafts.cjs.js","names":["label","Authenticated","Public","solidLogicSingleton","sym","getSharedAuthorization","authorization","agentClass","filter","iri","getAuthorizationSubjectEntries","subjectSets","type","iris","agent","agentGroup","origin","flatMap","map","getAccessGrantId","id","subject","sort","join","getAccessGrantIds","authorizations","occurrences","Map","sharedAuthorization","baseId","occurrence","get","set","getAuthorizationSubjectLabel","subjects","length","getAuthorizationRole","acl","roleFromModes","mode","createAccessGrantDraft","role","initialRole","subjectLabel","createAccessGrantDrafts","ids","index","getAccessGrantViewModels","drafts","left","right","leftIsOwner","rightIsOwner","indexOf","getChangedAccessGrants","getAuthenticatedAccessRole","accessGrants","modes","item","includes","getPublicAccessRole","publicRoleFromModes","getAccessSubjectLabel","trim","Authenticated","Public","label","sym","solidLogicSingleton","require_label","rdflib","solid_logic","getSharedAuthorization","authorization","iri","getAuthorizationSubjectEntries","iris","getAccessGrantId","subject","getAccessGrantIds","occurrences","authorizations","baseId","occurrence","getAuthorizationSubjectLabel","subjects","getAuthorizationRole","createAccessGrantDraft","sharedAuthorization","createAccessGrantDrafts","ids","index","getAccessGrantViewModels","drafts","leftIsOwner","left","rightIsOwner","right","getChangedAccessGrants","role","initialRole","getAuthenticatedAccessRole","modes","accessGrants","item","getPublicAccessRole","getAccessSubjectLabel"],"sources":["../../../src/components/access-control-modal/accessGrantDrafts.ts"],"sourcesContent":["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 if (authorization.id) {\n return authorization.id\n }\n\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 modes = accessGrants\n .filter(item => item.agentClass.includes(Authenticated.iri))\n .flatMap(item => item.mode)\n return modes.length ? solidLogicSingleton.acl.roleFromModes(modes) : 'No Access'\n}\n\nexport function getPublicAccessRole (accessGrants: AccessAuthorization[]): AccessRole {\n const modes = accessGrants\n .filter(item => item.agentClass.includes(Public.iri))\n .flatMap(item => item.mode)\n return modes.length ? solidLogicSingleton.acl.publicRoleFromModes(modes) : '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"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accessGrantDrafts.d.ts","sourceRoot":"","sources":["../../../src/components/access-control-modal/accessGrantDrafts.ts"],"names":[],"mappings":"AACA,OAAO,EAA8C,KAAK,UAAU,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAA;AAE7G,OAAO,KAAK,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,oBAAoB,EAA2B,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAEvI,wBAAgB,sBAAsB,CAAE,aAAa,EAAE,mBAAmB,GAAG,mBAAmB,CAK/F;AAED,wBAAgB,8BAA8B,CAAE,aAAa,EAAE,mBAAmB,GAAG,aAAa,EAAE,CASnG;AAED,wBAAgB,gBAAgB,CAAE,aAAa,EAAE,mBAAmB,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"accessGrantDrafts.d.ts","sourceRoot":"","sources":["../../../src/components/access-control-modal/accessGrantDrafts.ts"],"names":[],"mappings":"AACA,OAAO,EAA8C,KAAK,UAAU,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAA;AAE7G,OAAO,KAAK,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,oBAAoB,EAA2B,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAEvI,wBAAgB,sBAAsB,CAAE,aAAa,EAAE,mBAAmB,GAAG,mBAAmB,CAK/F;AAED,wBAAgB,8BAA8B,CAAE,aAAa,EAAE,mBAAmB,GAAG,aAAa,EAAE,CASnG;AAED,wBAAgB,gBAAgB,CAAE,aAAa,EAAE,mBAAmB,GAAG,MAAM,CAS5E;AAED,wBAAgB,iBAAiB,CAAE,cAAc,EAAE,mBAAmB,EAAE,GAAG,MAAM,EAAE,CAUlF;AAED,wBAAgB,4BAA4B,CAAE,aAAa,EAAE,mBAAmB,GAAG,MAAM,CAQxF;AAED,wBAAgB,oBAAoB,CAAE,aAAa,EAAE,mBAAmB,GAAG,UAAU,CAEpF;AAED,wBAAgB,sBAAsB,CAAE,aAAa,EAAE,mBAAmB,GAAG,gBAAgB,CAU5F;AAED,wBAAgB,uBAAuB,CAAE,cAAc,EAAE,mBAAmB,EAAE,GAAG,gBAAgB,EAAE,CAMlG;AAED,wBAAgB,wBAAwB,CAAE,MAAM,EAAE,gBAAgB,EAAE,GAAG,oBAAoB,EAAE,CAU5F;AAED,wBAAgB,sBAAsB,CAAE,MAAM,EAAE,gBAAgB,EAAE,GAAG,kBAAkB,EAAE,CAIxF;AAED,wBAAgB,0BAA0B,CAAE,YAAY,EAAE,mBAAmB,EAAE,GAAG,UAAU,CAK3F;AAED,wBAAgB,mBAAmB,CAAE,YAAY,EAAE,mBAAmB,EAAE,GAAG,UAAU,CAKpF;AAED,wBAAgB,qBAAqB,CAAE,OAAO,EAAE,aAAa,GAAG,MAAM,CAUrE"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { label as e } from "../../utils/label.esm.js";
|
|
2
2
|
import { sym as t } from "rdflib";
|
|
3
3
|
import { Authenticated as n, Public as r, solidLogicSingleton as i } from "solid-logic";
|
|
4
|
-
|
|
4
|
+
// src/components/access-control-modal/accessGrantDrafts.ts
|
|
5
5
|
function a(e) {
|
|
6
6
|
return {
|
|
7
7
|
...e,
|
|
@@ -32,7 +32,7 @@ function o(e) {
|
|
|
32
32
|
})));
|
|
33
33
|
}
|
|
34
34
|
function s(e) {
|
|
35
|
-
return o(e).map((e) => `${e.type}:${e.iri}`).sort().join("|");
|
|
35
|
+
return e.id ? e.id : o(e).map((e) => `${e.type}:${e.iri}`).sort().join("|");
|
|
36
36
|
}
|
|
37
37
|
function c(e) {
|
|
38
38
|
let t = /* @__PURE__ */ new Map();
|
|
@@ -85,17 +85,16 @@ function m(e) {
|
|
|
85
85
|
}));
|
|
86
86
|
}
|
|
87
87
|
function h(e) {
|
|
88
|
-
let t = e.
|
|
89
|
-
return t ?
|
|
88
|
+
let t = e.filter((e) => e.agentClass.includes(n.iri)).flatMap((e) => e.mode);
|
|
89
|
+
return t.length ? i.acl.roleFromModes(t) : "No Access";
|
|
90
90
|
}
|
|
91
91
|
function g(e) {
|
|
92
|
-
let t = e.
|
|
93
|
-
return t ? i.acl.publicRoleFromModes(t
|
|
92
|
+
let t = e.filter((e) => e.agentClass.includes(r.iri)).flatMap((e) => e.mode);
|
|
93
|
+
return t.length ? i.acl.publicRoleFromModes(t) : "No Access";
|
|
94
94
|
}
|
|
95
95
|
function _(i) {
|
|
96
96
|
return i.iri === n.iri ? "Authenticated users" : i.iri === r.iri ? "Public" : e(t(i.iri)).trim() || i.iri;
|
|
97
97
|
}
|
|
98
|
-
//#endregion
|
|
99
98
|
export { d as createAccessGrantDraft, f as createAccessGrantDrafts, s as getAccessGrantId, c as getAccessGrantIds, p as getAccessGrantViewModels, _ as getAccessSubjectLabel, h as getAuthenticatedAccessRole, u as getAuthorizationRole, o as getAuthorizationSubjectEntries, l as getAuthorizationSubjectLabel, m as getChangedAccessGrants, g as getPublicAccessRole, a as getSharedAuthorization };
|
|
100
99
|
|
|
101
100
|
//# sourceMappingURL=accessGrantDrafts.esm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accessGrantDrafts.esm.js","names":["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","
|
|
1
|
+
{"version":3,"file":"accessGrantDrafts.esm.js","names":["label","Authenticated","Public","solidLogicSingleton","sym","getSharedAuthorization","authorization","agentClass","filter","iri","getAuthorizationSubjectEntries","subjectSets","type","iris","agent","agentGroup","origin","flatMap","map","getAccessGrantId","id","subject","sort","join","getAccessGrantIds","authorizations","occurrences","Map","sharedAuthorization","baseId","occurrence","get","set","getAuthorizationSubjectLabel","subjects","length","getAuthorizationRole","acl","roleFromModes","mode","createAccessGrantDraft","role","initialRole","subjectLabel","createAccessGrantDrafts","ids","index","getAccessGrantViewModels","drafts","left","right","leftIsOwner","rightIsOwner","indexOf","getChangedAccessGrants","getAuthenticatedAccessRole","accessGrants","modes","item","includes","getPublicAccessRole","publicRoleFromModes","getAccessSubjectLabel","trim","getSharedAuthorization","authorization","iri","Authenticated","Public","getAuthorizationSubjectEntries","iris","getAccessGrantId","subject","getAccessGrantIds","occurrences","authorizations","baseId","occurrence","getAuthorizationSubjectLabel","subjects","label","sym","getAuthorizationRole","solidLogicSingleton","createAccessGrantDraft","sharedAuthorization","createAccessGrantDrafts","ids","index","getAccessGrantViewModels","drafts","leftIsOwner","left","rightIsOwner","right","getChangedAccessGrants","role","initialRole","getAuthenticatedAccessRole","modes","accessGrants","item","getPublicAccessRole","getAccessSubjectLabel"],"sources":["../../../src/components/access-control-modal/accessGrantDrafts.ts"],"sourcesContent":["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 if (authorization.id) {\n return authorization.id\n }\n\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 modes = accessGrants\n .filter(item => item.agentClass.includes(Authenticated.iri))\n .flatMap(item => item.mode)\n return modes.length ? solidLogicSingleton.acl.roleFromModes(modes) : 'No Access'\n}\n\nexport function getPublicAccessRole (accessGrants: AccessAuthorization[]): AccessRole {\n const modes = accessGrants\n .filter(item => item.agentClass.includes(Public.iri))\n .flatMap(item => item.mode)\n return modes.length ? solidLogicSingleton.acl.publicRoleFromModes(modes) : '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"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const e=require("../../utils/label.cjs.js"),
|
|
1
|
+
const e=require("../../lib/ns.cjs.js"),t=require("../../utils/label.cjs.js"),n=require("../combobox/Combobox.cjs.js");require("../combobox/index.cjs.js"),require("../../_virtual/~icons/lucide/globe.cjs.js");const r=require("./AccessControlAddAccess.cjs.js"),i=require("./helpers.cjs.js");let a=require("rdflib"),o=require("solid-logic"),s=require("lit");async function c(e){let t=i.normalizeOriginInput(e);return t?{kind:`origin`,subjectValue:t}:i.isOriginUrl(e)?{kind:`origin`,subjectValue:new URL(e).origin}:await o.solidLogicSingleton.acl.classifyAccessControlSubject(e)}async function l(e,n){if(!e||e.kind===`origin`)return e?.subjectValue;let r=(0,a.sym)(e.subjectValue);await o.solidLogicSingleton.store.fetcher.load(r.doc());let i=n?.trim()||t.label(r).trim();if(!i||i===e.subjectValue)throw Error(`The access target has no usable display label.`);return i}async function u(e,t){let n=await c(e);if(!n)return;let r=await l(n,t);if(r)return{subjectType:n.kind,subjectValue:n.subjectValue,label:r,targetKind:n.kind===`origin`?`origin`:void 0}}async function d(e){let t=await u(e);return t?{label:t.label,value:e}:void 0}function f(e,t){return{label:t,value:e.uri,template:r.directoryEntryOptionTemplate({...e,label:t})}}async function p(e){let t=i.normalizeOriginInput(e);if(t)return[{label:`Use origin ${t}`,value:t,targetKind:`origin`,template:s.html`<span class="access-grants-directory-entry"><icon-lucide-globe style="width: 13px; height: 13px; flex: 0 0 13px;"></icon-lucide-globe><span>Use origin ${t}</span></span>`}];if(!i.isAbsoluteHttpUri(e))return[];if(i.isOriginUrl(e))return[{label:`Use origin ${new URL(e).origin}`,value:new URL(e).origin,targetKind:`origin`,template:s.html`<span class="access-grants-directory-entry"><icon-lucide-globe style="width: 13px; height: 13px; flex: 0 0 13px;"></icon-lucide-globe><span>Use origin ${new URL(e).origin}</span></span>`}];let n=await d(e);return i.dedupeComboboxOptions(n?[n]:[])}async function m(t){try{let n=o.solidLogicSingleton.authn.currentUser();if(!n)return[];await o.solidLogicSingleton.profile.loadProfile(n);let r=o.solidLogicSingleton.store;return r.each(n,e.default.acl(`trustedApp`)).flatMap(n=>{let a=r.any(n,e.default.acl(`origin`));if(!a||!i.isOriginUrl(a.value))return[];let o=new URL(a.value).origin;return t&&!`${o} trusted app`.toLowerCase().includes(t.toLowerCase())?[]:[{label:`Trusted app: ${o}`,value:o,targetKind:`trustedApp`,template:s.html`<span class="access-grants-directory-entry"><icon-lucide-globe style="width: 13px; height: 13px; flex: 0 0 13px;"></icon-lucide-globe><span>Trusted app: ${o}</span></span>`}]})}catch{return[]}}function h(e){return e.length?e:[{label:`Type at least 2 characters to search`,value:``,selectable:!1}]}var g=n.defineAsyncComboboxOptionsProvider(async e=>{let t=e.trim(),n=await p(t),r=await m(t);if(t.length<2)return i.dedupeByKey([...n,...r,...h(n)],e=>{let t=e;return typeof t.value==`string`?`${t.value}:${t.targetKind??`default`}`:void 0});let a=[];try{a=await o.solidLogicSingleton.directory.search({query:t,sources:o.DEFAULT_DIRECTORY_SOURCES})}catch(e){if(!n.length&&!r.length)throw e}let s=(await Promise.all(a.map(async e=>{try{let t=await u(e.uri,e.label);return t?{entry:e,label:t.label}:void 0}catch{return}}))).filter(e=>e!==void 0).map(({entry:e,label:t})=>f(e,t));return i.dedupeByKey([...n,...r,...s],e=>{let t=e;return typeof t.value==`string`?`${t.value}:${t.targetKind??`default`}`:void 0})});exports.accessPrincipalOptionsProvider=g,exports.resolveAccessTarget=u;
|
|
2
2
|
//# sourceMappingURL=accessTargetResolver.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accessTargetResolver.cjs.js","names":["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","normalizeOriginInput","solidLogicSingleton","sym","label","directoryEntryOptionTemplate","isAbsoluteHttpUri","isOriginUrl","dedupeComboboxOptions","defineAsyncComboboxOptionsProvider","DEFAULT_DIRECTORY_SOURCES","dedupeByKey","require_label","require_Combobox","require_helpers","require_AccessControlAddAccess","rdflib","solid_logic","classifyAccessTarget","normalizedOrigin","principal","resolveAccessTargetLabel","resolvedPrincipal","subject","resolvedLabel","preferredLabel","resolveAccessTarget","createUrlOption","resolved","uri","directoryEntryToOption","labelValue","entry","getPreferredAccessPrincipalOptions","query","urlOption","getShortQueryOptions","preferredOptions","accessPrincipalOptionsProvider","filter","entries","error","options","entryLabel","option"],"sources":["../../../src/components/access-control-modal/accessTargetResolver.ts"],"sourcesContent":["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"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"accessTargetResolver.cjs.js","names":["defineAsyncComboboxOptionsProvider","directoryEntryOptionTemplate","label","DEFAULT_DIRECTORY_SOURCES","solidLogicSingleton","sym","html","ns","dedupeByKey","dedupeComboboxOptions","isAbsoluteHttpUri","isOriginUrl","normalizeOriginInput","classifyAccessTarget","principal","normalizedOrigin","kind","subjectValue","URL","origin","acl","classifyAccessControlSubject","resolveAccessTargetLabel","resolvedPrincipal","preferredLabel","subject","store","fetcher","load","doc","resolvedLabel","trim","Error","resolveAccessTarget","undefined","subjectType","targetKind","createUrlOption","uri","resolved","value","directoryEntryToOption","entry","labelValue","template","getPreferredAccessPrincipalOptions","query","urlOption","getTrustedAppOptions","me","authn","currentUser","profile","loadProfile","apps","each","flatMap","app","any","toLowerCase","includes","getShortQueryOptions","preferredOptions","length","selectable","accessPrincipalOptionsProvider","filter","trustedAppOptions","option","targetOption","entries","directory","search","sources","error","verifiedEntries","Promise","all","map","options","entryLabel","normalizeOriginInput","isOriginUrl","solidLogicSingleton","sym","label","directoryEntryOptionTemplate","isAbsoluteHttpUri","dedupeComboboxOptions","ns","defineAsyncComboboxOptionsProvider","dedupeByKey","DEFAULT_DIRECTORY_SOURCES","require_ns","require_label","require_Combobox","require_AccessControlAddAccess","require_helpers","rdflib","solid_logic","lit","classifyAccessTarget","normalizedOrigin","principal","resolveAccessTargetLabel","resolvedPrincipal","subject","resolvedLabel","preferredLabel","resolveAccessTarget","createUrlOption","resolved","uri","directoryEntryToOption","labelValue","entry","getPreferredAccessPrincipalOptions","query","urlOption","getTrustedAppOptions","me","store","origin","app","getShortQueryOptions","preferredOptions","accessPrincipalOptionsProvider","filter","trustedAppOptions","targetOption","option","entries","error","options","entryLabel"],"sources":["../../../src/components/access-control-modal/accessTargetResolver.ts"],"sourcesContent":["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 { html } from 'lit'\nimport ns from '@/lib/ns'\nimport '~icons/lucide/globe'\nimport { dedupeByKey, dedupeComboboxOptions, isAbsoluteHttpUri, isOriginUrl, normalizeOriginInput, type StringComboboxOptionData } from './helpers'\n\nexport type ResolvedAccessTarget = {\n subjectType: AccessControlSubjectKind\n subjectValue: string\n label: string\n targetKind?: 'origin' | 'trustedApp'\n}\n\ntype AccessTargetOption = ComboboxOptionData & {\n targetKind?: 'origin' | 'trustedApp'\n}\n\nasync function classifyAccessTarget (principal: string) {\n const normalizedOrigin = normalizeOriginInput(principal)\n if (normalizedOrigin) {\n return { kind: 'origin' as const, subjectValue: normalizedOrigin }\n }\n\n if (isOriginUrl(principal)) {\n return { kind: 'origin' as const, subjectValue: new URL(principal).origin }\n }\n\n return 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 throw new Error('The access target has no usable display label.')\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 targetKind: resolvedPrincipal.kind === 'origin' ? 'origin' : undefined\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<AccessTargetOption[]> {\n const normalizedOrigin = normalizeOriginInput(query)\n if (normalizedOrigin) {\n return [{\n label: `Use origin ${normalizedOrigin}`,\n value: normalizedOrigin,\n targetKind: 'origin',\n template: html`<span class=\"access-grants-directory-entry\"><icon-lucide-globe style=\"width: 13px; height: 13px; flex: 0 0 13px;\"></icon-lucide-globe><span>Use origin ${normalizedOrigin}</span></span>`\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 targetKind: 'origin',\n template: html`<span class=\"access-grants-directory-entry\"><icon-lucide-globe style=\"width: 13px; height: 13px; flex: 0 0 13px;\"></icon-lucide-globe><span>Use origin ${new URL(query).origin}</span></span>`\n }]\n }\n\n const urlOption = await createUrlOption(query)\n return dedupeComboboxOptions(urlOption ? [urlOption] : [])\n}\n\nasync function getTrustedAppOptions (query: string): Promise<AccessTargetOption[]> {\n try {\n const me = solidLogicSingleton.authn.currentUser()\n if (!me) return []\n await solidLogicSingleton.profile.loadProfile(me)\n const store = solidLogicSingleton.store\n const apps = store.each(me, ns.acl('trustedApp')) as Array<ReturnType<typeof sym>>\n return apps.flatMap(app => {\n const origin = store.any(app, ns.acl('origin'))\n if (!origin || !isOriginUrl(origin.value)) return []\n const normalizedOrigin = new URL(origin.value).origin\n if (query && !`${normalizedOrigin} trusted app`.toLowerCase().includes(query.toLowerCase())) return []\n return [{\n label: `Trusted app: ${normalizedOrigin}`,\n value: normalizedOrigin,\n targetKind: 'trustedApp' as const,\n template: html`<span class=\"access-grants-directory-entry\"><icon-lucide-globe style=\"width: 13px; height: 13px; flex: 0 0 13px;\"></icon-lucide-globe><span>Trusted app: ${normalizedOrigin}</span></span>`\n }]\n })\n } catch {\n return []\n }\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 const trustedAppOptions = await getTrustedAppOptions(query)\n\n if (query.length < 2) {\n return dedupeByKey(\n [...preferredOptions, ...trustedAppOptions, ...getShortQueryOptions(preferredOptions)],\n option => {\n const targetOption = option as AccessTargetOption\n return typeof targetOption.value === 'string'\n ? `${targetOption.value}:${targetOption.targetKind ?? 'default'}`\n : undefined\n }\n )\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 && !trustedAppOptions.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, ...trustedAppOptions, ...options],\n option => {\n const targetOption = option as AccessTargetOption\n return typeof targetOption.value === 'string'\n ? `${targetOption.value}:${targetOption.targetKind ?? 'default'}`\n : undefined\n }\n )\n })\n"],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@ export type ResolvedAccessTarget = {
|
|
|
4
4
|
subjectType: AccessControlSubjectKind;
|
|
5
5
|
subjectValue: string;
|
|
6
6
|
label: string;
|
|
7
|
+
targetKind?: 'origin' | 'trustedApp';
|
|
7
8
|
};
|
|
8
9
|
export declare function resolveAccessTarget(principal: string, preferredLabel?: string): Promise<ResolvedAccessTarget | undefined>;
|
|
9
10
|
export declare const accessPrincipalOptionsProvider: AsyncComboboxOptionsProvider;
|