solid-ui 5.0.2-0 → 5.0.2-2
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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccessControlModal.esm.js","names":["customElement","DialogComponent","html","property","state","label","debug","Authenticated","Public","solidLogicSingleton","sym","styles","dedupeByKey","createAccessGrantDrafts","getAccessGrantIds","getAccessGrantViewModels","getAuthenticatedAccessRole","getAuthorizationSubjectLabel","getChangedAccessGrants","getPublicAccessRole","getSharedAuthorization","accessPrincipalOptionsProvider","resolveAccessTarget","applyAccessChanges","buildAccessChanges","isDefined","value","undefined","_classDecs","_AccessControlModal","_AccessControlModal2","_A","WeakMap","_B","_C","_D","_E","_F","_G","_H","_I","_J","_K","_ref","_subjectUriDecs","attribute","_accessGrantsDecs","_principalInputValueDecs","_addAccessRoleValueDecs","_authenticatedAccessRoleValueDecs","_publicAccessRoleValueDecs","_submittingDecs","_pendingAccessGrantsDecs","_accessGrantDraftsDecs","_errorsDecs","_successfulChangesRefreshedDecs","_AccessControlModal3","AccessControlModal","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_subjectUri","_init_accessGrants","_init_principalInputValue","_init_addAccessRoleValue","_init_authenticatedAccessRoleValue","_init_publicAccessRoleValue","_init_submitting","_init_pendingAccessGrants","_init_accessGrantDrafts","_init_errors","_init_successfulChangesRefreshed","_defineProperty","_classPrivateFieldGet","subjectUri","v","_classPrivateFieldSet","accessGrants","principalInputValue","addAccessRoleValue","authenticatedAccessRoleValue","publicAccessRoleValue","submitting","pendingAccessGrants","accessGrantDrafts","errors","successfulChangesRefreshed","disconnectedCallback","accessGrantLabelRequestVersion","inputError","find","error","action","message","saveErrors","filter","setInputError","item","clearInputError","willUpdate","changedProperties","has","updated","refreshAccessGrantLabels","catch","requestVersion","grants","length","labels","Promise","all","map","authorization","agentGroup","groupUri","store","fetcher","load","doc","labelsById","Map","id","index","draft","subjectLabel","get","getDialogTitle","subject","trim","render","dialogTitle","onSubmit","onPrincipalInput","onPrincipalSelect","onAddAccessRoleInput","onPendingGrantRemoved","onAccessGrantRoleInput","onAuthenticatedAccessRoleInput","onPublicAccessRoleInput","onCancelClick","hasUnsavedChanges","onSaveClick","e","preventDefault","commitPrincipalFromInputSafely","committed","saveAccessChanges","close","changedAccessGrants","generalAccessChanges","getGeneralAccessChanges","accessChanges","acl","findAccessGrants","targetUri","Error","event","detail","queuePendingPrincipal","currentAuthenticatedRole","currentPublicRole","authenticatedChange","role","publicChange","grant","_","pendingIndex","Boolean","commitPrincipalFromInput","rawValue","inputSnapshot","principal","preferredLabel","snapshot","result","createPendingAccessGrant","merged","dedupePendingAccessGrants","normalizedPrincipal","resolvedTarget","subjectType","subjectValue","draftGrants","draftGrant","c","_initClass","_applyDecs","_Class","_identity","default","error","styles","DialogComponent","AccessControlModal_styles_default","_Class","_AccessControlModal3","_A","_B","_C","_D","_E","_F","_G","_H","_I","_J","_K","_initProto","_initClass","_classDecs","_subjectUriDecs","_init_subjectUri","_accessGrantsDecs","_init_accessGrants","_principalInputValueDecs","_init_principalInputValue","_addAccessRoleValueDecs","_init_addAccessRoleValue","_authenticatedAccessRoleValueDecs","_init_authenticatedAccessRoleValue","_publicAccessRoleValueDecs","_init_publicAccessRoleValue","_submittingDecs","_init_submitting","_pendingAccessGrantsDecs","_init_pendingAccessGrants","_accessGrantDraftsDecs","_init_accessGrantDrafts","_errorsDecs","_init_errors","_successfulChangesRefreshedDecs","_init_successfulChangesRefreshed","_AccessControlModal2","_ref","_classPrivateFieldInitSpec","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","isDefined","value","customElement","_AccessControlModal","property","state","args","error","item","changedProperties","accessGrants","createAccessGrantDrafts","getAuthenticatedAccessRole","getPublicAccessRole","error$3","requestVersion","grants","labels","authorization","solidLogicSingleton","sym","groupUri","getAuthorizationSubjectLabel","getSharedAuthorization","labelsById","getAccessGrantIds","id","index","draft","subject","subjectLabel","label","dialogTitle","accessPrincipalOptionsProvider","getAccessGrantViewModels","changedAccessGrants","getChangedAccessGrants","generalAccessChanges","accessChanges","buildAccessChanges","saveErrors","applyAccessChanges","error$2","event","currentAuthenticatedRole","currentPublicRole","Authenticated","Public","grant","pendingIndex","rawValue","inputSnapshot","error$1","snapshot","result","principal","role","preferredLabel","merged","normalizedPrincipal","resolvedTarget","resolveAccessTarget","dedupeByKey","draftGrants","draftGrant"],"sources":["../../../src/components/access-control-modal/AccessControlModal.ts"],"sourcesContent":["import { customElement, DialogComponent } from '@/lib/components'\nimport { html } from 'lit'\nimport type { PropertyValues } from 'lit'\nimport { property, state } from 'lit/decorators.js'\nimport { label } from '@/utils/label'\nimport * as debug from '@/lib/debug'\nimport { Authenticated, Public, solidLogicSingleton, type AccessRole, type Authorization } from 'solid-logic'\nimport { sym } from 'rdflib'\n\nimport '~icons/lucide/circle-x'\nimport '@/components/dialog'\nimport '@/components/dialog-content'\nimport '@/components/dialog-footer'\nimport '@/components/button'\nimport '@/components/combobox'\nimport '@/components/combobox-option'\nimport './AccessControlSharedAccess'\nimport './AccessControlGeneralAccess'\nimport './AccessControlErrors'\n\nimport styles from './AccessControlModal.styles.css'\nimport type { AccessChange, AccessControlError, AccessGrantDraft, AccessGrantRoleChangedEvent, AccessSaveError, InputAccessControlError, PendingAccessGrant, PendingGrantRemovedEvent, RoleChangedEvent, TargetInputEvent, TargetSelectedEvent } from './types'\nimport { dedupeByKey } from './helpers'\nimport { createAccessGrantDrafts, getAccessGrantIds, getAccessGrantViewModels, getAuthenticatedAccessRole, getAuthorizationSubjectLabel, getChangedAccessGrants, getPublicAccessRole, getSharedAuthorization } from './accessGrantDrafts'\nimport { accessPrincipalOptionsProvider, resolveAccessTarget } from './accessTargetResolver'\nimport { applyAccessChanges } from './applyAccessChanges'\nimport { buildAccessChanges } from './buildAccessChanges'\n\nfunction isDefined<T> (value: T | undefined | null): value is T {\n return value !== undefined && value !== null\n}\n\ntype PendingAccessGrantCreationResult =\n | { grant: PendingAccessGrant }\n | { error: InputAccessControlError }\n\n@customElement('solid-ui-access-control-modal')\nexport default class AccessControlModal extends DialogComponent<void> {\n static styles = styles\n\n @property({ attribute: false })\n accessor subjectUri: string | undefined = undefined\n\n @property({ attribute: false })\n accessor accessGrants: Authorization[] | undefined = undefined\n\n @state()\n private accessor principalInputValue: string = ''\n\n @state()\n private accessor addAccessRoleValue: AccessRole = 'Viewer'\n\n @state()\n private accessor authenticatedAccessRoleValue: AccessRole = 'No Access'\n\n @state()\n private accessor publicAccessRoleValue: AccessRole = 'No Access'\n\n @state()\n private accessor submitting: boolean = false\n\n @state()\n private accessor pendingAccessGrants: PendingAccessGrant[] = []\n\n @state()\n private accessor accessGrantDrafts: AccessGrantDraft[] = []\n\n @state()\n private accessor errors: AccessControlError[] = []\n\n @state()\n private accessor successfulChangesRefreshed = true\n\n private accessGrantLabelRequestVersion = 0\n\n disconnectedCallback (): void {\n this.accessGrantLabelRequestVersion++\n this.errors = []\n super.disconnectedCallback()\n }\n\n private get inputError (): string {\n return this.errors.find(error => error.action === 'input')?.message ?? ''\n }\n\n private get saveErrors (): AccessSaveError[] {\n return this.errors.filter((error): error is AccessSaveError => error.action !== 'input')\n }\n\n private setInputError (error: InputAccessControlError) {\n this.errors = [\n ...this.errors.filter(item => item.action !== 'input'),\n error\n ]\n }\n\n private clearInputError () {\n this.errors = this.errors.filter(error => error.action !== 'input')\n }\n\n protected willUpdate (changedProperties: PropertyValues<this>) {\n super.willUpdate(changedProperties)\n\n if (changedProperties.has('accessGrants')) {\n const accessGrants = this.accessGrants ?? []\n this.accessGrantDrafts = createAccessGrantDrafts(accessGrants)\n this.authenticatedAccessRoleValue = getAuthenticatedAccessRole(accessGrants)\n this.publicAccessRoleValue = getPublicAccessRole(accessGrants)\n }\n }\n\n protected updated (changedProperties: PropertyValues<this>) {\n super.updated(changedProperties)\n\n if (changedProperties.has('accessGrants')) {\n this.refreshAccessGrantLabels().catch((error: unknown) => {\n debug.error('Failed to refresh access grant labels', error)\n })\n }\n }\n\n private async refreshAccessGrantLabels () {\n const requestVersion = ++this.accessGrantLabelRequestVersion\n const grants = this.accessGrants ?? []\n if (!grants.length) {\n this.accessGrantDrafts = []\n return\n }\n\n const labels = await Promise.all(grants.map(async authorization => {\n await Promise.all(authorization.agentGroup.map(async groupUri => {\n try {\n await solidLogicSingleton.store.fetcher.load(sym(groupUri).doc())\n } catch {\n // Keep the fallback label if the group document cannot be loaded.\n }\n }))\n\n return getAuthorizationSubjectLabel(getSharedAuthorization(authorization))\n }))\n\n if (requestVersion === this.accessGrantLabelRequestVersion && this.accessGrants === grants) {\n const labelsById = new Map(getAccessGrantIds(grants).map((id, index) => [id, labels[index]]))\n this.accessGrantDrafts = this.accessGrantDrafts.map(draft => ({\n ...draft,\n subjectLabel: labelsById.get(draft.id) ?? draft.subjectLabel\n }))\n }\n }\n\n private getDialogTitle (): string {\n const subject = this.subjectUri ? sym(this.subjectUri) : undefined\n const subjectLabel = subject ? label(subject).trim() : ''\n\n if (!subjectLabel || subjectLabel === 'this resource') {\n return 'Share this resource'\n }\n\n return `Share \"${subjectLabel}\"`\n }\n\n protected render () {\n const dialogTitle = this.getDialogTitle()\n\n return html`\n <solid-ui-dialog title=${dialogTitle}>\n <form @submit=${this.onSubmit}>\n <solid-ui-dialog-content>\n <solid-ui-access-control-add-access\n .principalInputValue=${this.principalInputValue}\n .addAccessRoleValue=${this.addAccessRoleValue}\n .pendingAccessGrants=${this.pendingAccessGrants}\n .inputError=${this.inputError}\n .asyncOptionsProvider=${accessPrincipalOptionsProvider}\n @target-input=${this.onPrincipalInput}\n @target-selected=${this.onPrincipalSelect}\n @role-changed=${this.onAddAccessRoleInput}\n @pending-grant-removed=${this.onPendingGrantRemoved}\n ></solid-ui-access-control-add-access>\n <solid-ui-access-control-shared-access\n .accessGrantViewModels=${getAccessGrantViewModels(this.accessGrantDrafts)}\n @access-grant-role-changed=${this.onAccessGrantRoleInput}\n ></solid-ui-access-control-shared-access>\n <solid-ui-access-control-general-access\n .subjectUri=${this.subjectUri}\n .authenticatedAccessRoleValue=${this.authenticatedAccessRoleValue}\n .publicAccessRoleValue=${this.publicAccessRoleValue}\n @authenticated-role-changed=${this.onAuthenticatedAccessRoleInput}\n @public-role-changed=${this.onPublicAccessRoleInput}\n ></solid-ui-access-control-general-access>\n <solid-ui-access-control-errors\n .errors=${this.saveErrors}\n .successfulChangesRefreshed=${this.successfulChangesRefreshed}\n @close=${this.onCancelClick}\n ></solid-ui-access-control-errors>\n </solid-ui-dialog-content>\n\n <solid-ui-dialog-footer>\n <div class=\"access-control-footer-actions\">\n <solid-ui-button\n variant=\"secondary\"\n @click=${this.onCancelClick}\n >\n Cancel\n </solid-ui-button>\n <solid-ui-button\n ?disabled=${!this.hasUnsavedChanges() || this.submitting || this.saveErrors.length > 0}\n ?loading=${this.submitting}\n type=\"button\"\n @click=${this.onSaveClick}\n >\n Save Changes\n </solid-ui-button>\n </div>\n </solid-ui-dialog-footer>\n </form>\n </solid-ui-dialog>\n `\n }\n\n private async onSubmit (e: Event) {\n e.preventDefault()\n\n if (this.submitting) {\n return\n }\n\n await this.commitPrincipalFromInputSafely()\n }\n\n private async onSaveClick () {\n if (this.submitting) {\n return\n }\n\n if (this.principalInputValue.trim()) {\n const committed = await this.commitPrincipalFromInputSafely()\n\n if (!committed) {\n return\n }\n }\n\n await this.saveAccessChanges()\n }\n\n private onCancelClick () {\n this.close()\n }\n\n private async saveAccessChanges () {\n if (this.submitting) {\n return\n }\n\n const changedAccessGrants = getChangedAccessGrants(this.accessGrantDrafts)\n const generalAccessChanges = this.getGeneralAccessChanges()\n\n if (!this.pendingAccessGrants.length && !changedAccessGrants.length && !generalAccessChanges.length) {\n return\n }\n\n if (!this.subjectUri) {\n return\n }\n\n this.submitting = true\n this.errors = this.errors.filter(error => error.action === 'input')\n this.successfulChangesRefreshed = true\n\n try {\n const accessChanges = buildAccessChanges({\n pendingAccessGrants: this.pendingAccessGrants,\n generalAccessChanges,\n changedAccessGrants\n })\n\n const saveErrors = await applyAccessChanges(this.subjectUri, accessChanges)\n if (saveErrors.length) {\n this.errors = [...this.errors, ...saveErrors]\n this.principalInputValue = ''\n this.pendingAccessGrants = []\n\n try {\n this.accessGrants = await solidLogicSingleton.acl.findAccessGrants(this.subjectUri)\n } catch (error) {\n this.successfulChangesRefreshed = false\n this.errors = [\n ...this.errors,\n {\n action: 'save',\n targetUri: this.subjectUri,\n label: 'Shared with list',\n message: error instanceof Error\n ? error.message\n : 'Unable to refresh the access list.'\n }\n ]\n debug.error('Failed to refresh access grants after save errors', error)\n }\n\n debug.error('Failed to save some access changes', saveErrors)\n return\n }\n\n this.principalInputValue = ''\n this.pendingAccessGrants = []\n this.close()\n } catch (error) {\n this.errors = [\n ...this.errors,\n {\n action: 'save',\n targetUri: this.subjectUri ?? '',\n label: 'Access changes',\n message: error instanceof Error\n ? error.message\n : 'Unexpected error while saving access changes.'\n }\n ]\n } finally {\n this.submitting = false\n }\n }\n\n private onPrincipalInput (event: TargetInputEvent) {\n this.principalInputValue = event.detail.value\n this.clearInputError()\n }\n\n private onPrincipalSelect (event: TargetSelectedEvent) {\n this.queuePendingPrincipal(event.detail.value, this.addAccessRoleValue, event.detail.label)\n }\n\n private getGeneralAccessChanges (): AccessChange[] {\n if (!this.subjectUri) {\n return []\n }\n\n const accessGrants = this.accessGrants ?? []\n const currentAuthenticatedRole = getAuthenticatedAccessRole(accessGrants)\n const currentPublicRole = getPublicAccessRole(accessGrants)\n\n const authenticatedChange = this.authenticatedAccessRoleValue === currentAuthenticatedRole\n ? undefined\n : {\n subject: Authenticated,\n role: this.authenticatedAccessRoleValue,\n label: 'Authenticated users'\n }\n\n const publicChange = this.publicAccessRoleValue === currentPublicRole\n ? undefined\n : {\n subject: Public,\n role: this.publicAccessRoleValue,\n label: 'Public'\n }\n\n return [authenticatedChange, publicChange].filter(isDefined)\n }\n\n private onAddAccessRoleInput (event: RoleChangedEvent) {\n this.addAccessRoleValue = event.detail.role\n this.pendingAccessGrants = this.pendingAccessGrants.map(grant => ({\n ...grant,\n role: event.detail.role\n }))\n }\n\n private onAuthenticatedAccessRoleInput (event: RoleChangedEvent) {\n this.authenticatedAccessRoleValue = event.detail.role\n }\n\n private onPublicAccessRoleInput (event: RoleChangedEvent) {\n this.publicAccessRoleValue = event.detail.role\n }\n\n private onAccessGrantRoleInput (event: AccessGrantRoleChangedEvent) {\n this.accessGrantDrafts = this.accessGrantDrafts.map(draft =>\n draft.id === event.detail.id\n ? { ...draft, role: event.detail.role }\n : draft\n )\n }\n\n private onPendingGrantRemoved (event: PendingGrantRemovedEvent) {\n this.pendingAccessGrants = this.pendingAccessGrants.filter((_, pendingIndex) => pendingIndex !== event.detail.index)\n }\n\n private hasUnsavedChanges (): boolean {\n return Boolean(\n this.pendingAccessGrants.length ||\n this.principalInputValue.trim() ||\n getChangedAccessGrants(this.accessGrantDrafts).length ||\n this.getGeneralAccessChanges().length\n )\n }\n\n private async commitPrincipalFromInput (): Promise<boolean> {\n const rawValue = this.principalInputValue.trim()\n if (!rawValue) {\n return false\n }\n\n return this.queuePendingPrincipal(rawValue, this.addAccessRoleValue, undefined, rawValue)\n }\n\n private async commitPrincipalFromInputSafely (): Promise<boolean> {\n const inputSnapshot = this.principalInputValue.trim()\n\n try {\n return await this.commitPrincipalFromInput()\n } catch (error) {\n if (this.principalInputValue.trim() !== inputSnapshot) {\n debug.error('Ignored stale access-target validation error', error)\n return false\n }\n\n this.setInputError({\n action: 'input',\n label: 'Access target',\n targetUri: this.principalInputValue.trim(),\n message: 'We could not verify this access target. Check the value and try again.'\n })\n debug.error('Failed to commit pending access grants', error)\n return false\n }\n }\n\n private async queuePendingPrincipal (\n principal: string,\n role: AccessRole = this.addAccessRoleValue,\n preferredLabel?: string,\n inputSnapshot?: string\n ): Promise<boolean> {\n const snapshot = inputSnapshot ?? this.principalInputValue.trim()\n const result = await this.createPendingAccessGrant(principal, role, preferredLabel)\n\n if ('error' in result) {\n if (this.principalInputValue.trim() === snapshot) {\n this.setInputError(result.error)\n }\n debug.error('Failed to add access grant:', result.error.message)\n return false\n }\n\n const merged = [...this.pendingAccessGrants, result.grant]\n this.pendingAccessGrants = this.dedupePendingAccessGrants(merged)\n\n if (this.principalInputValue.trim() === snapshot) {\n this.clearInputError()\n this.principalInputValue = ''\n }\n\n return true\n }\n\n private async createPendingAccessGrant (\n principal: string,\n role: AccessRole = this.addAccessRoleValue,\n preferredLabel?: string\n ): Promise<PendingAccessGrantCreationResult> {\n try {\n const normalizedPrincipal = principal.trim()\n const resolvedTarget = await resolveAccessTarget(normalizedPrincipal, preferredLabel)\n if (!resolvedTarget) {\n return {\n error: {\n action: 'input',\n label: 'Access target',\n targetUri: normalizedPrincipal,\n message: 'Could not verify this access target'\n }\n }\n }\n\n return {\n grant: {\n subjectType: resolvedTarget.subjectType,\n subjectValue: resolvedTarget.subjectValue,\n role,\n label: resolvedTarget.label\n }\n }\n } catch (error) {\n return {\n error: {\n action: 'input',\n label: 'Access target',\n targetUri: principal,\n message: error instanceof Error && error.message.trim()\n ? error.message\n : 'Could not verify this access target'\n }\n }\n }\n }\n\n private dedupePendingAccessGrants (draftGrants: PendingAccessGrant[]): PendingAccessGrant[] {\n return dedupeByKey(draftGrants, draftGrant => `${draftGrant.subjectType}:${draftGrant.subjectValue}`)\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AccessControlModal.esm.js","names":["customElement","DialogComponent","html","property","state","label","debug","Authenticated","Public","analyzeContainerAccessScope","filterAuthorizationsByContainerScope","solidLogicSingleton","sym","styles","createAccessGrantDrafts","getAccessGrantIds","getAccessGrantViewModels","getAuthenticatedAccessRole","getAuthorizationSubjectLabel","getChangedAccessGrants","getPublicAccessRole","getSharedAuthorization","accessPrincipalOptionsProvider","resolveAccessTarget","applyAccessChanges","buildAccessChanges","isDefined","value","undefined","_classDecs","_AccessControlModal","_AccessControlModal2","_A","WeakMap","_B","_C","_D","_E","_F","_G","_H","_I","_J","_K","_L","_M","_N","_O","_P","_Q","_R","_ref","_subjectUriDecs","attribute","_accessGrantsDecs","_principalInputValueDecs","_addAccessRoleValueDecs","_authenticatedAccessRoleValueDecs","_publicAccessRoleValueDecs","_submittingDecs","_pendingAccessGrantsDecs","_accessGrantDraftsDecs","_errorsDecs","_successfulChangesRefreshedDecs","_accessContextDecs","_accessContextLoadingDecs","_accessContextErrorDecs","_advancedSharingOpenDecs","_containerScopeDecs","_containerScopeAnalysisDecs","_protectedTargetDecs","_AccessControlModal3","AccessControlModal","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_subjectUri","_init_accessGrants","_init_principalInputValue","_init_addAccessRoleValue","_init_authenticatedAccessRoleValue","_init_publicAccessRoleValue","_init_submitting","_init_pendingAccessGrants","_init_accessGrantDrafts","_init_errors","_init_successfulChangesRefreshed","_init_accessContext","_init_accessContextLoading","_init_accessContextError","_init_advancedSharingOpen","_init_containerScope","_init_containerScopeAnalysis","_init_protectedTarget","_defineProperty","_classPrivateFieldGet","subjectUri","v","_classPrivateFieldSet","accessGrants","principalInputValue","addAccessRoleValue","authenticatedAccessRoleValue","publicAccessRoleValue","submitting","pendingAccessGrants","accessGrantDrafts","errors","successfulChangesRefreshed","accessContext","accessContextLoading","accessContextError","advancedSharingOpen","containerScope","containerScopeAnalysis","protectedTarget","disconnectedCallback","accessGrantLabelRequestVersion","accessContextRequestVersion","inputError","find","error","action","message","saveErrors","filter","setInputError","item","clearInputError","willUpdate","changedProperties","has","scopedAccessGrants","getScopedAccessGrants","updated","loadAccessContext","catch","refreshAccessGrantLabels","refreshContainerScopeAnalysis","isContainer","primaryScope","refreshScopedAccessGrantDrafts","requestVersion","sourceAccessGrants","scope","getSelectedContainerScope","grants","length","labels","Promise","all","map","authorization","agentGroup","groupUri","store","fetcher","load","doc","labelsById","Map","id","index","draft","subjectLabel","get","getDialogTitle","subject","trim","Boolean","URL","pathname","endsWith","accessContextSubjectUri","acl","findEffectiveAcl","inherited","authorizations","isProtectedResource","Error","ensureAccessContext","isConnected","canMutate","retryAccessContext","renderSharingInformation","isCustomSharing","inheritedContainer","effectiveContainer","inheritedContainerLabel","defaultContainer","onResetToDefault","renderSharingState","renderAdvancedSharing","hasMixedContainerPolicy","mixed","renderAccessContextState","renderMixedContainerWarning","selectContainerScope","checked","closeAdvancedSharing","render","dialogTitle","onSubmit","onPrincipalInput","onPrincipalSelect","onAddAccessRoleInput","onPendingGrantRemoved","onAccessGrantRoleInput","onAuthenticatedAccessRoleInput","onPublicAccessRoleInput","onCancelClick","hasUnsavedChanges","onSaveClick","e","preventDefault","commitPrincipalFromInputSafely","committed","saveAccessChanges","close","resetToDefault","directAccessGrants","findAccessGrants","targetUri","changedAccessGrants","generalAccessChanges","getGeneralAccessChanges","accessChanges","event","detail","queuePendingPrincipal","targetKind","currentAuthenticatedRole","currentPublicRole","authenticatedChange","role","publicChange","grant","_","pendingIndex","commitPrincipalFromInput","rawValue","inputSnapshot","principal","preferredLabel","snapshot","result","createPendingAccessGrant","merged","dedupePendingAccessGrants","normalizedPrincipal","resolvedTarget","subjectType","subjectValue","draftGrants","grantsBySubject","draftGrant","set","values","c","_initClass","_applyDecs","_Class","_identity","default","error","styles","DialogComponent","AccessControlModal_styles_default","_Class","_AccessControlModal3","_A","_B","_C","_D","_E","_F","_G","_H","_I","_J","_K","_L","_M","_N","_O","_P","_Q","_R","_initProto","_initClass","_classDecs","_subjectUriDecs","_init_subjectUri","_accessGrantsDecs","_init_accessGrants","_principalInputValueDecs","_init_principalInputValue","_addAccessRoleValueDecs","_init_addAccessRoleValue","_authenticatedAccessRoleValueDecs","_init_authenticatedAccessRoleValue","_publicAccessRoleValueDecs","_init_publicAccessRoleValue","_submittingDecs","_init_submitting","_pendingAccessGrantsDecs","_init_pendingAccessGrants","_accessGrantDraftsDecs","_init_accessGrantDrafts","_errorsDecs","_init_errors","_successfulChangesRefreshedDecs","_init_successfulChangesRefreshed","_accessContextDecs","_init_accessContext","_accessContextLoadingDecs","_init_accessContextLoading","_accessContextErrorDecs","_init_accessContextError","_advancedSharingOpenDecs","_init_advancedSharingOpen","_containerScopeDecs","_init_containerScope","_containerScopeAnalysisDecs","_init_containerScopeAnalysis","_protectedTargetDecs","_init_protectedTarget","_AccessControlModal2","_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","isDefined","value","customElement","_AccessControlModal","property","state","args","error","item","changedProperties","scopedAccessGrants","createAccessGrantDrafts","getAuthenticatedAccessRole","getPublicAccessRole","error$2","error$3","analyzeContainerAccessScope","requestVersion","sourceAccessGrants","subjectUri","scope","grants","labels","authorization","solidLogicSingleton","sym","groupUri","getAuthorizationSubjectLabel","getSharedAuthorization","labelsById","getAccessGrantIds","id","index","draft","subject","subjectLabel","label","accessContext","error$6","isCustomSharing","inheritedContainer","inheritedContainerLabel","defaultContainer","filterAuthorizationsByContainerScope","checked","dialogTitle","accessPrincipalOptionsProvider","getAccessGrantViewModels","directAccessGrants","error$1","changedAccessGrants","getChangedAccessGrants","generalAccessChanges","accessChanges","buildAccessChanges","saveErrors","applyAccessChanges","error$5","event","accessGrants","currentAuthenticatedRole","currentPublicRole","Authenticated","Public","grant","pendingIndex","rawValue","inputSnapshot","error$4","snapshot","result","principal","role","preferredLabel","targetKind","merged","normalizedPrincipal","resolvedTarget","resolveAccessTarget","grantsBySubject","draftGrant","draftGrants"],"sources":["../../../src/components/access-control-modal/AccessControlModal.ts"],"sourcesContent":["import { customElement, DialogComponent } from '@/lib/components'\nimport { html } from 'lit'\nimport type { PropertyValues } from 'lit'\nimport { property, state } from 'lit/decorators.js'\nimport { label } from '@/utils/label'\nimport * as debug from '@/lib/debug'\nimport { Authenticated, Public, analyzeContainerAccessScope, filterAuthorizationsByContainerScope, solidLogicSingleton, type ACLContext, type AccessRole, type Authorization, type ContainerAccessScope, type ContainerAccessScopeResult } from 'solid-logic'\nimport { sym } from 'rdflib'\n\nimport '~icons/lucide/circle-x'\nimport '~icons/lucide/folder'\nimport '~icons/lucide/folder-open'\nimport '~icons/lucide/x'\nimport '@/components/dialog'\nimport '@/components/dialog-content'\nimport '@/components/dialog-footer'\nimport '@/components/button'\nimport '@/components/combobox'\nimport '@/components/combobox-option'\nimport './AccessControlSharedAccess'\nimport './AccessControlGeneralAccess'\nimport './AccessControlErrors'\n\nimport styles from './AccessControlModal.styles.css'\nimport type { AccessChange, AccessControlError, AccessGrantDraft, AccessGrantRoleChangedEvent, AccessSaveError, AccessSaveScope, InputAccessControlError, PendingAccessGrant, PendingGrantRemovedEvent, RoleChangedEvent, TargetInputEvent, TargetSelectedEvent } from './types'\nimport { createAccessGrantDrafts, getAccessGrantIds, getAccessGrantViewModels, getAuthenticatedAccessRole, getAuthorizationSubjectLabel, getChangedAccessGrants, getPublicAccessRole, getSharedAuthorization } from './accessGrantDrafts'\nimport { accessPrincipalOptionsProvider, resolveAccessTarget } from './accessTargetResolver'\nimport { applyAccessChanges } from './applyAccessChanges'\nimport { buildAccessChanges } from './buildAccessChanges'\n\nfunction isDefined<T> (value: T | undefined | null): value is T {\n return value !== undefined && value !== null\n}\n\ntype PendingAccessGrantCreationResult =\n | { grant: PendingAccessGrant }\n | { error: InputAccessControlError }\n\n@customElement('solid-ui-access-control-modal')\nexport default class AccessControlModal extends DialogComponent<void> {\n static styles = styles\n\n @property({ attribute: false })\n accessor subjectUri: string | undefined = undefined\n\n @property({ attribute: false })\n accessor accessGrants: Authorization[] | undefined = undefined\n\n @state()\n private accessor principalInputValue: string = ''\n\n @state()\n private accessor addAccessRoleValue: AccessRole = 'Viewer'\n\n @state()\n private accessor authenticatedAccessRoleValue: AccessRole = 'No Access'\n\n @state()\n private accessor publicAccessRoleValue: AccessRole = 'No Access'\n\n @state()\n private accessor submitting: boolean = false\n\n @state()\n private accessor pendingAccessGrants: PendingAccessGrant[] = []\n\n @state()\n private accessor accessGrantDrafts: AccessGrantDraft[] = []\n\n @state()\n private accessor errors: AccessControlError[] = []\n\n @state()\n private accessor successfulChangesRefreshed = true\n\n @state()\n private accessor accessContext: ACLContext | undefined\n\n @state()\n private accessor accessContextLoading = false\n\n @state()\n private accessor accessContextError = ''\n\n // Intentionally has no opener this release: scope selectors and reset are deferred.\n @state()\n private accessor advancedSharingOpen = false\n\n @state()\n private accessor containerScope: ContainerAccessScope = 'folder+contents'\n\n @state()\n private accessor containerScopeAnalysis: ContainerAccessScopeResult | undefined\n\n @state()\n private accessor protectedTarget = false\n\n private accessGrantLabelRequestVersion = 0\n private accessContextRequestVersion = 0\n private accessContextSubjectUri: string | undefined\n\n disconnectedCallback (): void {\n this.accessGrantLabelRequestVersion++\n this.accessContextRequestVersion++\n this.errors = []\n super.disconnectedCallback()\n }\n\n private get inputError (): string {\n return this.errors.find(error => error.action === 'input')?.message ?? ''\n }\n\n private get saveErrors (): AccessSaveError[] {\n return this.errors.filter((error): error is AccessSaveError => error.action !== 'input')\n }\n\n private setInputError (error: InputAccessControlError) {\n this.errors = [\n ...this.errors.filter(item => item.action !== 'input'),\n error\n ]\n }\n\n private clearInputError () {\n this.errors = this.errors.filter(error => error.action !== 'input')\n }\n\n protected willUpdate (changedProperties: PropertyValues<this>) {\n super.willUpdate(changedProperties)\n\n if (changedProperties.has('accessGrants')) {\n const scopedAccessGrants = this.getScopedAccessGrants()\n this.accessGrantDrafts = createAccessGrantDrafts(scopedAccessGrants)\n this.authenticatedAccessRoleValue = getAuthenticatedAccessRole(scopedAccessGrants)\n this.publicAccessRoleValue = getPublicAccessRole(scopedAccessGrants)\n }\n }\n\n protected updated (changedProperties: PropertyValues<this>) {\n super.updated(changedProperties)\n\n if (changedProperties.has('subjectUri')) {\n this.loadAccessContext().catch(error => {\n debug.error('Failed to load access control context', error)\n })\n }\n\n if (changedProperties.has('accessGrants')) {\n this.refreshAccessGrantLabels().catch((error: unknown) => {\n debug.error('Failed to refresh access grant labels', error)\n })\n }\n\n if (changedProperties.has('accessContext' as keyof AccessControlModal) && !changedProperties.has('subjectUri')) {\n this.refreshContainerScopeAnalysis()\n }\n }\n\n private refreshContainerScopeAnalysis () {\n if (this.isContainer() && this.accessContext) {\n this.containerScopeAnalysis = analyzeContainerAccessScope(this.accessContext)\n this.containerScope = this.containerScopeAnalysis.primaryScope\n this.refreshScopedAccessGrantDrafts()\n } else {\n this.containerScopeAnalysis = undefined\n }\n }\n\n private async refreshAccessGrantLabels () {\n const requestVersion = ++this.accessGrantLabelRequestVersion\n const sourceAccessGrants = this.accessGrants\n const subjectUri = this.subjectUri\n const scope = this.getSelectedContainerScope()\n const grants = this.getScopedAccessGrants(scope)\n if (!grants.length) {\n this.accessGrantDrafts = []\n return\n }\n\n const labels = await Promise.all(grants.map(async authorization => {\n await Promise.all(authorization.agentGroup.map(async groupUri => {\n try {\n await solidLogicSingleton.store.fetcher.load(sym(groupUri).doc())\n } catch {\n // Keep the fallback label if the group document cannot be loaded.\n }\n }))\n\n return getAuthorizationSubjectLabel(getSharedAuthorization(authorization))\n }))\n\n if (\n requestVersion === this.accessGrantLabelRequestVersion &&\n this.accessGrants === sourceAccessGrants &&\n this.subjectUri === subjectUri &&\n this.getSelectedContainerScope() === scope\n ) {\n const labelsById = new Map(getAccessGrantIds(grants).map((id, index) => [id, labels[index]]))\n this.accessGrantDrafts = this.accessGrantDrafts.map(draft => ({\n ...draft,\n subjectLabel: labelsById.get(draft.id) ?? draft.subjectLabel\n }))\n }\n }\n\n private getDialogTitle (): string {\n const subject = this.subjectUri ? sym(this.subjectUri) : undefined\n const subjectLabel = subject ? label(subject).trim() : ''\n\n if (!subjectLabel || subjectLabel === 'this resource') {\n return 'Manage Access of \"this resource\"'\n }\n return `Manage Access of \"${subjectLabel}\"`\n }\n\n private isContainer (): boolean {\n return Boolean(this.subjectUri && new URL(this.subjectUri).pathname.endsWith('/'))\n }\n\n private async loadAccessContext (): Promise<void> {\n const requestVersion = ++this.accessContextRequestVersion\n const subjectUri = this.subjectUri\n this.accessContext = undefined\n this.accessContextSubjectUri = undefined\n this.accessContextError = ''\n this.accessContextLoading = Boolean(subjectUri)\n\n if (!subjectUri) {\n this.accessContextLoading = false\n return\n }\n\n try {\n const accessContext = await solidLogicSingleton.acl.findEffectiveAcl(subjectUri)\n if (requestVersion !== this.accessContextRequestVersion || this.subjectUri !== subjectUri) {\n return\n }\n\n this.accessContext = accessContext\n this.accessContextSubjectUri = subjectUri\n if (this.accessContext?.inherited && !(this.accessGrants?.length)) {\n // findAccessGrants only reports ACLs attached directly to the resource.\n // Inherited permissions are the effective grants users need to review.\n this.accessGrants = this.accessContext.authorizations\n }\n this.refreshContainerScopeAnalysis()\n this.protectedTarget = solidLogicSingleton.acl.isProtectedResource(subjectUri)\n if (this.protectedTarget) {\n this.refreshScopedAccessGrantDrafts()\n }\n } catch (error) {\n if (requestVersion !== this.accessContextRequestVersion || this.subjectUri !== subjectUri) {\n return\n }\n\n this.accessContextError = error instanceof Error && error.message.trim()\n ? error.message\n : 'Unable to load access settings for this resource.'\n debug.error('Failed to load access control context', error)\n } finally {\n if (requestVersion === this.accessContextRequestVersion && this.subjectUri === subjectUri) {\n this.accessContextLoading = false\n }\n }\n }\n\n private async ensureAccessContext (): Promise<boolean> {\n if (!this.subjectUri) {\n return false\n }\n\n // Direct method calls are used by consumers and unit tests before the\n // element is connected; the rendered controls are always guarded below.\n if (!this.isConnected) {\n return true\n }\n\n if (this.accessContextSubjectUri === this.subjectUri && this.accessContext && !this.accessContextError) {\n return true\n }\n\n await this.loadAccessContext()\n return this.accessContextSubjectUri === this.subjectUri && Boolean(this.accessContext) && !this.accessContextError\n }\n\n private canMutate (): boolean {\n if (!this.isConnected) {\n return true\n }\n\n if (!this.subjectUri) {\n return true\n }\n\n return Boolean(\n this.subjectUri &&\n this.accessContextSubjectUri === this.subjectUri &&\n this.accessContext &&\n !this.accessContextLoading &&\n !this.accessContextError\n )\n }\n\n private async retryAccessContext () {\n await this.loadAccessContext()\n }\n\n private renderSharingInformation () {\n if (!this.accessContext) {\n return html``\n }\n\n const isCustomSharing = !this.accessContext.inherited\n const inheritedContainer = this.accessContext?.effectiveContainer\n const inheritedContainerLabel = inheritedContainer\n ? label(sym(inheritedContainer)).trim()\n : ''\n const defaultContainer = inheritedContainerLabel && inheritedContainerLabel !== inheritedContainer\n ? html`<strong>${inheritedContainerLabel}</strong> (${inheritedContainer})`\n : html`<strong>${inheritedContainer ?? 'the parent container'}</strong>`\n return html`\n <div class=\"access-control-sharing-state-panel\">\n ${isCustomSharing\n ? html`\n <div class=\"access-control-sharing-state-custom-row\">\n <p>This resource has its own sharing settings.</p>\n ${!this.protectedTarget\n ? html`\n <solid-ui-button\n type=\"button\"\n variant=\"tertiary\"\n aria-label=\"Reset custom sharing to default\"\n @click=${this.onResetToDefault}\n >\n Reset to default\n </solid-ui-button>\n `\n : html``}\n </div>\n `\n : inheritedContainer\n ? html`<p>This resource inherits sharing settings from ${defaultContainer}.</p>`\n : html`<p>This resource inherits sharing settings, but no inherited default is available.</p>`}\n ${this.protectedTarget\n ? html`<p class=\"access-control-sharing-state-protected-message\">This is a protected storage resource. Its primary access-control settings cannot be reset here.</p>`\n : html``}\n </div>\n `\n }\n\n private renderSharingState () {\n if (!this.accessContext || !this.advancedSharingOpen) {\n return html``\n }\n\n return html`\n <section\n class=\"access-control-sharing-state\"\n aria-labelledby=\"access-control-advanced-sharing-heading\"\n >\n ${this.renderSharingInformation()}\n ${this.renderAdvancedSharing()}\n </section>\n `\n }\n\n private getSelectedContainerScope (): ContainerAccessScope {\n return this.containerScope\n }\n\n private hasMixedContainerPolicy (): boolean {\n return this.isContainer() && this.containerScopeAnalysis?.mixed === true\n }\n\n private renderAccessContextState () {\n if (this.accessContextLoading) {\n return html`<p role=\"status\">Loading access settings...</p>`\n }\n\n if (this.accessContextError) {\n return html`\n <solid-ui-error-state\n title=\"Could not load access settings\"\n message=${this.accessContextError}\n >\n <solid-ui-button type=\"button\" variant=\"secondary\" @click=${this.retryAccessContext}>\n Retry\n </solid-ui-button>\n </solid-ui-error-state>\n `\n }\n\n if (!this.accessContext) {\n return html`<p role=\"status\">Access settings are not ready yet.</p>`\n }\n\n return html``\n }\n\n private renderMixedContainerWarning () {\n if (!this.hasMixedContainerPolicy()) {\n return html``\n }\n\n return html`\n <div class=\"access-control-mixed-policy-warning\" role=\"alert\">\n <strong>This container has different access settings for the folder and its contents.</strong>\n <span>Changing this mixed policy is an advanced feature and will be available in the next release. Access changes are disabled for now.</span>\n </div>\n `\n }\n\n private getScopedAccessGrants (scope = this.getSelectedContainerScope()): Authorization[] {\n const grants = this.accessGrants ?? []\n if (!this.isContainer() || !this.subjectUri || this.protectedTarget) {\n return grants\n }\n return filterAuthorizationsByContainerScope(this.subjectUri, grants, scope, this.accessContext?.inherited ?? false)\n }\n\n private refreshScopedAccessGrantDrafts () {\n const scopedAccessGrants = this.getScopedAccessGrants()\n this.accessGrantDrafts = createAccessGrantDrafts(scopedAccessGrants)\n this.authenticatedAccessRoleValue = getAuthenticatedAccessRole(scopedAccessGrants)\n this.publicAccessRoleValue = getPublicAccessRole(scopedAccessGrants)\n }\n\n private selectContainerScope (scope: 'folder+contents' | 'contents' | 'folder') {\n this.containerScope = scope\n this.refreshScopedAccessGrantDrafts()\n }\n\n private renderAdvancedSharing () {\n if (!this.advancedSharingOpen) return html``\n\n return html`\n <section\n id=\"access-control-advanced-sharing\"\n class=\"access-control-advanced-sharing\"\n role=\"group\"\n aria-labelledby=\"access-control-advanced-sharing-heading\"\n aria-describedby=\"access-control-advanced-sharing-description\"\n >\n <h2 id=\"access-control-advanced-sharing-heading\">Advanced sharing</h2>\n <p id=\"access-control-advanced-sharing-description\">\n <span class=\"access-control-advanced-sharing-description-line\">Use this option when the folder and its contents have different access requirements.</span>\n <span class=\"access-control-advanced-sharing-description-line\">Choose which access settings to edit.</span>\n <span class=\"access-control-advanced-sharing-description-line\">Save Changes applies your current edits only to that scope.</span>\n </p>\n ${this.isContainer()\n ? html`\n <button\n type=\"button\"\n class=\"access-control-same-access-toggle\"\n role=\"switch\"\n aria-checked=${this.containerScope === 'folder+contents' ? 'true' : 'false'}\n @click=${() => {\n const checked = this.containerScope !== 'folder+contents'\n this.selectContainerScope(checked\n ? 'folder+contents'\n : this.containerScope === 'contents' ? 'contents' : 'folder')\n }}\n >\n <span class=\"access-control-switch-track\" aria-hidden=\"true\">\n <span class=\"access-control-switch-thumb\"></span>\n </span>\n <span>Use the same access for this folder and its contents</span>\n </button>\n <div class=\"access-control-advanced-sharing-options\">\n <solid-ui-button\n type=\"button\"\n variant=${this.containerScope === 'folder' ? 'primary' : 'secondary'}\n aria-pressed=${this.containerScope === 'folder' ? 'true' : 'false'}\n @click=${() => { this.selectContainerScope('folder') }}\n >\n Folder Only\n </solid-ui-button>\n <solid-ui-button\n type=\"button\"\n variant=${this.containerScope === 'contents' ? 'primary' : 'secondary'}\n aria-pressed=${this.containerScope === 'contents' ? 'true' : 'false'}\n @click=${() => { this.selectContainerScope('contents') }}\n >\n Contents Only\n </solid-ui-button>\n </div>\n `\n : html``}\n <div class=\"access-control-advanced-sharing-actions\">\n <solid-ui-button\n type=\"button\"\n variant=\"ghost\"\n aria-label=\"Close advanced sharing\"\n title=\"Close advanced sharing\"\n @click=${this.closeAdvancedSharing}\n >\n <icon-lucide-x slot=\"icon\" aria-hidden=\"true\"></icon-lucide-x>\n <span class=\"sr-only\">Close</span>\n </solid-ui-button>\n </div>\n </section>\n `\n }\n\n protected render () {\n const dialogTitle = this.getDialogTitle()\n\n return html`\n <solid-ui-dialog title=${dialogTitle}>\n <form @submit=${this.onSubmit}>\n <solid-ui-dialog-content>\n ${this.renderAccessContextState()}\n ${this.renderMixedContainerWarning()}\n <solid-ui-access-control-add-access\n .disabled=${!this.canMutate() || this.hasMixedContainerPolicy()}\n .principalInputValue=${this.principalInputValue}\n .addAccessRoleValue=${this.addAccessRoleValue}\n .pendingAccessGrants=${this.pendingAccessGrants}\n .inputError=${this.inputError}\n .asyncOptionsProvider=${accessPrincipalOptionsProvider}\n @target-input=${this.onPrincipalInput}\n @target-selected=${this.onPrincipalSelect}\n @role-changed=${this.onAddAccessRoleInput}\n @pending-grant-removed=${this.onPendingGrantRemoved}\n ></solid-ui-access-control-add-access>\n <solid-ui-access-control-shared-access\n .disabled=${!this.canMutate() || this.hasMixedContainerPolicy()}\n .accessGrantViewModels=${getAccessGrantViewModels(this.accessGrantDrafts)}\n @access-grant-role-changed=${this.onAccessGrantRoleInput}\n ></solid-ui-access-control-shared-access>\n <solid-ui-access-control-general-access\n .disabled=${!this.canMutate() || this.hasMixedContainerPolicy()}\n .subjectUri=${this.subjectUri}\n .authenticatedAccessRoleValue=${this.authenticatedAccessRoleValue}\n .publicAccessRoleValue=${this.publicAccessRoleValue}\n @authenticated-role-changed=${this.onAuthenticatedAccessRoleInput}\n @public-role-changed=${this.onPublicAccessRoleInput}\n ></solid-ui-access-control-general-access>\n <solid-ui-access-control-errors\n .errors=${this.saveErrors}\n .successfulChangesRefreshed=${this.successfulChangesRefreshed}\n @close=${this.onCancelClick}\n ></solid-ui-access-control-errors>\n ${this.renderSharingState()}\n </solid-ui-dialog-content>\n\n <solid-ui-dialog-footer>\n <div class=\"access-control-footer-actions\">\n <solid-ui-button\n variant=\"secondary\"\n @click=${this.onCancelClick}\n >\n Cancel\n </solid-ui-button>\n <solid-ui-button\n ?disabled=${!this.canMutate() || !this.hasUnsavedChanges() || this.submitting || this.saveErrors.length > 0 || this.hasMixedContainerPolicy()}\n ?loading=${this.submitting}\n type=\"button\"\n @click=${this.onSaveClick}\n >\n Save Changes\n </solid-ui-button>\n </div>\n </solid-ui-dialog-footer>\n </form>\n </solid-ui-dialog>\n `\n }\n\n private async onSubmit (e: Event) {\n e.preventDefault()\n\n if (this.submitting || this.hasMixedContainerPolicy()) {\n return\n }\n\n if (this.isConnected && !await this.ensureAccessContext()) {\n return\n }\n\n await this.commitPrincipalFromInputSafely()\n }\n\n private async onSaveClick () {\n if (this.submitting || this.hasMixedContainerPolicy()) {\n return\n }\n\n if (this.isConnected && !await this.ensureAccessContext()) {\n return\n }\n\n if (this.principalInputValue.trim()) {\n const committed = await this.commitPrincipalFromInputSafely()\n\n if (!committed) {\n return\n }\n }\n\n const scope = this.isContainer() && !this.protectedTarget\n ? this.getSelectedContainerScope()\n : 'file'\n await this.saveAccessChanges(scope === 'folder' ? 'container' : scope)\n }\n\n private onCancelClick () {\n this.close()\n }\n\n private closeAdvancedSharing () {\n this.advancedSharingOpen = false\n }\n\n private async onResetToDefault () {\n if (!this.subjectUri || !this.canMutate() || !this.accessContext || this.accessContext.inherited || this.submitting || this.hasMixedContainerPolicy()) return\n\n this.submitting = true\n this.errors = this.errors.filter(error => error.action === 'input')\n try {\n await solidLogicSingleton.acl.resetToDefault(this.subjectUri)\n await this.loadAccessContext()\n const directAccessGrants = await solidLogicSingleton.acl.findAccessGrants(this.subjectUri)\n this.accessGrants = this.accessContext?.inherited\n ? this.accessContext.authorizations\n : directAccessGrants\n } catch (error) {\n this.errors = [...this.errors, {\n action: 'reset',\n targetUri: this.subjectUri,\n label: 'Custom sharing',\n message: error instanceof Error ? error.message : 'Unable to reset sharing.'\n }]\n debug.error('Failed to reset access control', error)\n } finally {\n this.submitting = false\n }\n }\n\n private async saveAccessChanges (scope: AccessSaveScope = 'file') {\n if (this.submitting || !this.canMutate() || this.hasMixedContainerPolicy()) {\n return\n }\n\n const changedAccessGrants = getChangedAccessGrants(this.accessGrantDrafts)\n const generalAccessChanges = this.getGeneralAccessChanges()\n\n if (!this.pendingAccessGrants.length && !changedAccessGrants.length && !generalAccessChanges.length) {\n return\n }\n\n if (!this.subjectUri) {\n return\n }\n\n this.submitting = true\n this.errors = this.errors.filter(error => error.action === 'input')\n this.successfulChangesRefreshed = true\n\n try {\n const accessChanges = buildAccessChanges({\n pendingAccessGrants: this.pendingAccessGrants,\n generalAccessChanges,\n changedAccessGrants\n })\n\n const saveErrors = await applyAccessChanges(this.subjectUri, accessChanges, {\n containerScope: scope\n })\n if (saveErrors.length) {\n this.errors = [...this.errors, ...saveErrors]\n this.principalInputValue = ''\n this.pendingAccessGrants = []\n\n try {\n this.accessGrants = await solidLogicSingleton.acl.findAccessGrants(this.subjectUri)\n } catch (error) {\n this.successfulChangesRefreshed = false\n this.errors = [\n ...this.errors,\n {\n action: 'save',\n targetUri: this.subjectUri,\n label: 'Shared with list',\n message: error instanceof Error\n ? error.message\n : 'Unable to refresh the access list.'\n }\n ]\n debug.error('Failed to refresh access grants after save errors', error)\n }\n\n debug.error('Failed to save some access changes', saveErrors)\n return\n }\n\n this.principalInputValue = ''\n this.pendingAccessGrants = []\n this.close()\n } catch (error) {\n this.errors = [\n ...this.errors,\n {\n action: 'save',\n targetUri: this.subjectUri ?? '',\n label: 'Access changes',\n message: error instanceof Error\n ? error.message\n : 'Unexpected error while saving access changes.'\n }\n ]\n } finally {\n this.submitting = false\n }\n }\n\n private onPrincipalInput (event: TargetInputEvent) {\n if (!this.canMutate() || this.hasMixedContainerPolicy()) return\n this.principalInputValue = event.detail.value\n this.clearInputError()\n }\n\n private onPrincipalSelect (event: TargetSelectedEvent) {\n if (!this.canMutate() || this.hasMixedContainerPolicy()) return\n this.queuePendingPrincipal(event.detail.value, this.addAccessRoleValue, event.detail.label, undefined, event.detail.targetKind)\n }\n\n private getGeneralAccessChanges (): AccessChange[] {\n if (!this.subjectUri) {\n return []\n }\n\n const accessGrants = this.getScopedAccessGrants()\n const currentAuthenticatedRole = getAuthenticatedAccessRole(accessGrants)\n const currentPublicRole = getPublicAccessRole(accessGrants)\n\n const authenticatedChange = this.authenticatedAccessRoleValue === currentAuthenticatedRole\n ? undefined\n : {\n subject: Authenticated,\n role: this.authenticatedAccessRoleValue,\n label: 'Authenticated users'\n }\n\n const publicChange = this.publicAccessRoleValue === currentPublicRole\n ? undefined\n : {\n subject: Public,\n role: this.publicAccessRoleValue,\n label: 'Public'\n }\n\n return [authenticatedChange, publicChange].filter(isDefined)\n }\n\n private onAddAccessRoleInput (event: RoleChangedEvent) {\n if (!this.canMutate() || this.hasMixedContainerPolicy()) return\n this.addAccessRoleValue = event.detail.role\n this.pendingAccessGrants = this.pendingAccessGrants.map(grant => ({\n ...grant,\n role: event.detail.role\n }))\n }\n\n private onAuthenticatedAccessRoleInput (event: RoleChangedEvent) {\n if (!this.canMutate() || this.hasMixedContainerPolicy()) return\n this.authenticatedAccessRoleValue = event.detail.role\n }\n\n private onPublicAccessRoleInput (event: RoleChangedEvent) {\n if (!this.canMutate() || this.hasMixedContainerPolicy()) return\n this.publicAccessRoleValue = event.detail.role\n }\n\n private onAccessGrantRoleInput (event: AccessGrantRoleChangedEvent) {\n if (!this.canMutate() || this.hasMixedContainerPolicy()) return\n this.accessGrantDrafts = this.accessGrantDrafts.map(draft =>\n draft.id === event.detail.id\n ? { ...draft, role: event.detail.role }\n : draft\n )\n }\n\n private onPendingGrantRemoved (event: PendingGrantRemovedEvent) {\n if (!this.canMutate() || this.hasMixedContainerPolicy()) return\n this.pendingAccessGrants = this.pendingAccessGrants.filter((_, pendingIndex) => pendingIndex !== event.detail.index)\n }\n\n private hasUnsavedChanges (): boolean {\n return Boolean(\n this.pendingAccessGrants.length ||\n this.principalInputValue.trim() ||\n getChangedAccessGrants(this.accessGrantDrafts).length ||\n this.getGeneralAccessChanges().length\n )\n }\n\n private async commitPrincipalFromInput (): Promise<boolean> {\n if (!this.canMutate() || this.hasMixedContainerPolicy()) {\n return false\n }\n\n const rawValue = this.principalInputValue.trim()\n if (!rawValue) {\n return false\n }\n\n return this.queuePendingPrincipal(rawValue, this.addAccessRoleValue, undefined, rawValue)\n }\n\n private async commitPrincipalFromInputSafely (): Promise<boolean> {\n const inputSnapshot = this.principalInputValue.trim()\n\n try {\n return await this.commitPrincipalFromInput()\n } catch (error) {\n if (this.principalInputValue.trim() !== inputSnapshot) {\n debug.error('Ignored stale access-target validation error', error)\n return false\n }\n\n this.setInputError({\n action: 'input',\n label: 'Access target',\n targetUri: this.principalInputValue.trim(),\n message: 'We could not verify this access target. Check the value and try again.'\n })\n debug.error('Failed to commit pending access grants', error)\n return false\n }\n }\n\n private async queuePendingPrincipal (\n principal: string,\n role: AccessRole = this.addAccessRoleValue,\n preferredLabel?: string,\n inputSnapshot?: string,\n targetKind?: 'origin' | 'trustedApp'\n ): Promise<boolean> {\n const snapshot = inputSnapshot ?? this.principalInputValue.trim()\n const result = await this.createPendingAccessGrant(principal, role, preferredLabel, targetKind)\n\n if ('error' in result) {\n if (this.principalInputValue.trim() === snapshot) {\n this.setInputError(result.error)\n }\n debug.error('Failed to add access grant:', result.error.message)\n return false\n }\n\n const merged = [...this.pendingAccessGrants, result.grant]\n this.pendingAccessGrants = this.dedupePendingAccessGrants(merged)\n\n if (this.principalInputValue.trim() === snapshot) {\n this.clearInputError()\n this.principalInputValue = ''\n }\n\n return true\n }\n\n private async createPendingAccessGrant (\n principal: string,\n role: AccessRole = this.addAccessRoleValue,\n preferredLabel?: string,\n targetKind?: 'origin' | 'trustedApp'\n ): Promise<PendingAccessGrantCreationResult> {\n try {\n const normalizedPrincipal = principal.trim()\n const resolvedTarget = await resolveAccessTarget(normalizedPrincipal, preferredLabel)\n if (!resolvedTarget) {\n return {\n error: {\n action: 'input',\n label: 'Access target',\n targetUri: normalizedPrincipal,\n message: 'Could not verify this access target'\n }\n }\n }\n\n return {\n grant: {\n subjectType: resolvedTarget.subjectType,\n subjectValue: resolvedTarget.subjectValue,\n role,\n label: resolvedTarget.label,\n targetKind: targetKind ?? resolvedTarget.targetKind\n }\n }\n } catch (error) {\n return {\n error: {\n action: 'input',\n label: 'Access target',\n targetUri: principal,\n message: error instanceof Error && error.message.trim()\n ? error.message\n : 'Could not verify this access target'\n }\n }\n }\n }\n\n private dedupePendingAccessGrants (draftGrants: PendingAccessGrant[]): PendingAccessGrant[] {\n const grantsBySubject = new Map<string, PendingAccessGrant>()\n for (const draftGrant of draftGrants) {\n grantsBySubject.set(`${draftGrant.subjectType}:${draftGrant.subjectValue}`, draftGrant)\n }\n return [...grantsBySubject.values()]\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var e=require("lit").css`:host .access-control-footer-actions{justify-content:flex-end;align-items:center;gap:15px;width:100%;display:flex}:host .access-control-footer-actions>solid-ui-button{min-width:132px}@media (width<=380px){:host .access-control-footer-actions{gap:8px}:host .access-control-footer-actions>solid-ui-button{flex:1 1 0;min-width:0}}`;exports.default=e;
|
|
1
|
+
var e=require("lit").css`:host .access-control-mixed-policy-warning{border:1px solid var(--solid-ui-color-red-300,#fca5a5);background:var(--solid-ui-color-red-50,#fef2f2);color:var(--solid-ui-color-red-800,#991b1b);font-size:var(--solid-ui-font-size-sm,.875rem);border-radius:5px;gap:4px;margin:0 0 16px;padding:12px 14px;line-height:1.45;display:grid}:host .access-control-mixed-policy-warning strong{font-weight:600}:host .access-control-same-access-toggle{color:var(--solid-ui-color-gray-900,#101828);text-align:left;line-height:1.4;font:inherit;cursor:pointer;background:0 0;border:0;align-items:flex-start;gap:8px;margin-top:12px;padding:0;display:flex}:host .access-control-switch-track{background:var(--solid-ui-color-slate-300,#cbd5e1);border-radius:999px;flex:none;width:34px;height:20px;margin-top:1px;padding:2px;transition:background .15s;display:inline-flex}:host .access-control-same-access-toggle[aria-checked=true] .access-control-switch-track{background:var(--solid-ui-color-purple-600,#9333ea)}:host .access-control-switch-thumb{background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .15s;box-shadow:0 1px 2px #00000040}:host .access-control-same-access-toggle[aria-checked=true] .access-control-switch-thumb{transform:translate(14px)}:host .access-control-same-access-toggle>span:last-child{overflow-wrap:anywhere;min-width:0;max-width:100%}:host .access-control-sharing-state,:host .access-control-contents-prompt{box-sizing:border-box;min-width:0;max-width:100%;font-size:var(--solid-ui-font-size-sm,.875rem);margin-bottom:16px;padding:10px}:is(:host .access-control-sharing-state,:host .access-control-contents-prompt) h2{color:var(--solid-ui-color-gray-900,#101828);font-size:var(--solid-ui-font-size-md,1rem);margin:0 0 10px;font-weight:600}:is(:host .access-control-sharing-state,:host .access-control-contents-prompt) .access-control-advanced-sharing{box-sizing:border-box;overflow-wrap:anywhere;width:100%;min-width:0;max-width:100%;margin-top:10px;padding:10px 48px 10px 15px;position:relative}:is(:host .access-control-sharing-state,:host .access-control-contents-prompt) .access-control-advanced-sharing h2{color:var(--solid-ui-color-gray-900,#101828);font-size:var(--solid-ui-font-size-md,1rem);margin:0 0 4px;font-weight:600}:is(:host .access-control-sharing-state,:host .access-control-contents-prompt) .access-control-advanced-sharing p{overflow-wrap:anywhere;min-width:0;max-width:100%;color:var(--solid-ui-color-gray-600,#4a5565);font-size:var(--solid-ui-font-size-xs,.75rem);margin:0;line-height:1.5}:is(:host .access-control-sharing-state,:host .access-control-contents-prompt) .access-control-advanced-sharing .access-control-advanced-sharing-description-line{max-width:100%;display:block}:is(:host .access-control-sharing-state,:host .access-control-contents-prompt) .access-control-advanced-sharing-options,:is(:host .access-control-sharing-state,:host .access-control-contents-prompt) .access-control-advanced-sharing-actions{flex-wrap:wrap;gap:8px;min-width:0;margin-top:10px;display:flex}:is(:is(:host .access-control-sharing-state,:host .access-control-contents-prompt) .access-control-advanced-sharing-options,:is(:host .access-control-sharing-state,:host .access-control-contents-prompt) .access-control-advanced-sharing-actions) solid-ui-button{--solid-ui-font-size-md:var(--solid-ui-font-size-sm,.875rem);white-space:normal;min-width:0;max-width:100%}:is(:host .access-control-sharing-state,:host .access-control-contents-prompt) .access-control-advanced-sharing-actions{justify-content:flex-end;margin-top:0;position:absolute;top:10px;right:15px}:is(:host .access-control-sharing-state,:host .access-control-contents-prompt) .access-control-advanced-sharing-actions solid-ui-button{color:var(--solid-ui-color-gray-600,#4a5565)}:is(:host .access-control-sharing-state,:host .access-control-contents-prompt) p{overflow-wrap:anywhere;min-width:0;max-width:100%;color:var(--solid-ui-color-gray-600,#4a5565);margin:0;line-height:1.5}:host .access-control-sharing-state-panel,:host .access-control-contents-prompt{box-sizing:border-box;border:1px solid var(--solid-ui-color-slate-200,#e2e8f0);background:var(--solid-ui-color-white,#fff);border-radius:5px;min-width:0;max-width:100%;padding:10px 15px}:host .access-control-sharing-state-panel{gap:10px;display:grid}:host .access-control-sharing-state-panel p{overflow-wrap:anywhere;min-width:0;max-width:100%}:host .access-control-sharing-state-panel .access-control-sharing-state-custom-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}:host .access-control-sharing-state-panel .access-control-sharing-state-custom-row p{flex:auto}:host .access-control-sharing-state-panel .access-control-sharing-state-custom-row solid-ui-button{--solid-ui-font-size-md:var(--solid-ui-font-size-sm,.875rem);flex:none}:host .access-control-sharing-guidance{justify-content:space-between;align-items:center;gap:12px;min-width:0;display:flex}:host .access-control-sharing-guidance p{overflow-wrap:anywhere;min-width:0;max-width:100%}:host .access-control-sharing-guidance solid-ui-button{--solid-ui-font-size-md:var(--solid-ui-font-size-sm,.875rem);flex:none}:host .access-control-sharing-state-actions{flex-direction:column;justify-content:flex-end;align-items:flex-end;gap:8px;min-width:0;margin-top:10px;display:flex}:host .access-control-sharing-state-actions solid-ui-button{--solid-ui-font-size-md:var(--solid-ui-font-size-sm,.875rem);max-width:100%}@media (width<=420px){:host .access-control-sharing-guidance{flex-direction:column;align-items:flex-start;gap:8px}:host .access-control-sharing-guidance solid-ui-button{align-self:flex-end}}:host .access-control-contents-prompt .access-control-contents-prompt-actions{flex-wrap:wrap;gap:8px;min-width:0;margin-top:10px;display:flex}:host .access-control-contents-prompt solid-ui-button{--solid-ui-font-size-md:var(--solid-ui-font-size-sm,.875rem);flex:0 auto;max-width:100%}:host .access-control-contents-prompt h2{margin-bottom:4px}:host .access-control-footer-actions{justify-content:flex-end;align-items:center;gap:15px;width:100%;display:flex}:host .access-control-footer-actions>solid-ui-button{min-width:132px}@media (width<=380px){:host .access-control-footer-actions{gap:8px}:host .access-control-footer-actions>solid-ui-button{flex:1 1 0;min-width:0}}`;exports.default=e;
|
|
2
2
|
//# sourceMappingURL=AccessControlModal.styles.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccessControlModal.styles.cjs.js","names":["AccessControlModal_styles_default"],"sources":["../../../src/components/access-control-modal/AccessControlModal.styles.css"],"sourcesContent":[":host {\n .access-control-footer-actions {\n display: flex;\n justify-content: flex-end;\n align-items: center;\n gap: 15px;\n width: 100%;\n\n > solid-ui-button {\n min-width: 132px;\n }\n }\n\n @media (max-width: 380px) {\n .access-control-footer-actions {\n gap: 8px;\n\n > solid-ui-button {\n min-width: 0;\n flex: 1 1 0;\n }\n }\n }\n}\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"AccessControlModal.styles.cjs.js","names":["AccessControlModal_styles_default"],"sources":["../../../src/components/access-control-modal/AccessControlModal.styles.css"],"sourcesContent":[":host {\n .access-control-mixed-policy-warning {\n display: grid;\n gap: 4px;\n margin: 0 0 16px;\n padding: 12px 14px;\n border: 1px solid var(--solid-ui-color-red-300, #FCA5A5);\n border-radius: 5px;\n background: var(--solid-ui-color-red-50, #FEF2F2);\n color: var(--solid-ui-color-red-800, #991B1B);\n font-size: var(--solid-ui-font-size-sm, .875rem);\n line-height: 1.45;\n\n strong {\n font-weight: 600;\n }\n }\n\n .access-control-same-access-toggle {\n display: flex;\n align-items: flex-start;\n gap: 8px;\n margin-top: 12px;\n color: var(--solid-ui-color-gray-900, #101828);\n line-height: 1.4;\n border: 0;\n background: transparent;\n padding: 0;\n text-align: left;\n font: inherit;\n cursor: pointer;\n }\n\n .access-control-switch-track {\n display: inline-flex;\n flex: 0 0 auto;\n width: 34px;\n height: 20px;\n margin-top: 1px;\n border-radius: 999px;\n background: var(--solid-ui-color-slate-300, #CBD5E1);\n padding: 2px;\n transition: background .15s ease;\n }\n\n .access-control-same-access-toggle[aria-checked='true'] .access-control-switch-track {\n background: var(--solid-ui-color-purple-600, #9333EA);\n }\n\n .access-control-switch-thumb {\n width: 16px;\n height: 16px;\n border-radius: 50%;\n background: white;\n box-shadow: 0 1px 2px rgb(0 0 0 / 25%);\n transition: transform .15s ease;\n }\n\n .access-control-same-access-toggle[aria-checked='true'] .access-control-switch-thumb {\n transform: translateX(14px);\n }\n\n .access-control-same-access-toggle > span:last-child {\n min-width: 0;\n max-width: 100%;\n overflow-wrap: anywhere;\n }\n\n .access-control-sharing-state,\n .access-control-contents-prompt {\n box-sizing: border-box;\n min-width: 0;\n max-width: 100%;\n padding: 10px;\n margin-bottom: 16px;\n font-size: var(--solid-ui-font-size-sm, .875rem);\n\n h2 {\n margin: 0 0 10px;\n color: var(--solid-ui-color-gray-900, #101828);\n font-size: var(--solid-ui-font-size-md, 1rem);\n font-weight: 600;\n }\n\n .access-control-advanced-sharing {\n box-sizing: border-box;\n min-width: 0;\n width: 100%;\n max-width: 100%;\n overflow-wrap: anywhere;\n margin-top: 10px;\n padding: 10px 15px;\n position: relative;\n padding-right: 48px;\n\n h2 {\n margin: 0 0 4px;\n color: var(--solid-ui-color-gray-900, #101828);\n font-size: var(--solid-ui-font-size-md, 1rem);\n font-weight: 600;\n }\n\n p {\n margin: 0;\n min-width: 0;\n max-width: 100%;\n overflow-wrap: anywhere;\n color: var(--solid-ui-color-gray-600, #4A5565);\n font-size: var(--solid-ui-font-size-xs, .75rem);\n line-height: 1.5;\n }\n\n .access-control-advanced-sharing-description-line {\n display: block;\n max-width: 100%;\n }\n }\n\n .access-control-advanced-sharing-options,\n .access-control-advanced-sharing-actions {\n display: flex;\n flex-wrap: wrap;\n min-width: 0;\n gap: 8px;\n margin-top: 10px;\n\n solid-ui-button {\n --solid-ui-font-size-md: var(--solid-ui-font-size-sm, .875rem);\n min-width: 0;\n max-width: 100%;\n white-space: normal;\n }\n }\n\n .access-control-advanced-sharing-actions {\n justify-content: flex-end;\n position: absolute;\n top: 10px;\n right: 15px;\n margin-top: 0;\n\n solid-ui-button {\n color: var(--solid-ui-color-gray-600, #4A5565);\n }\n }\n\n p {\n margin: 0;\n min-width: 0;\n max-width: 100%;\n overflow-wrap: anywhere;\n color: var(--solid-ui-color-gray-600, #4A5565);\n line-height: 1.5;\n }\n }\n\n .access-control-sharing-state-panel,\n .access-control-contents-prompt {\n box-sizing: border-box;\n min-width: 0;\n max-width: 100%;\n border: 1px solid var(--solid-ui-color-slate-200, #E2E8F0);\n border-radius: 5px;\n background: var(--solid-ui-color-white, #FFF);\n padding: 10px 15px;\n }\n\n .access-control-sharing-state-panel {\n display: grid;\n gap: 10px;\n\n p {\n min-width: 0;\n max-width: 100%;\n overflow-wrap: anywhere;\n }\n\n .access-control-sharing-state-custom-row {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n gap: 8px;\n\n p {\n flex: 1 1 auto;\n }\n\n solid-ui-button {\n flex: 0 0 auto;\n --solid-ui-font-size-md: var(--solid-ui-font-size-sm, .875rem);\n }\n }\n }\n\n .access-control-sharing-guidance {\n display: flex;\n align-items: center;\n justify-content: space-between;\n min-width: 0;\n gap: 12px;\n\n p {\n min-width: 0;\n max-width: 100%;\n overflow-wrap: anywhere;\n }\n\n solid-ui-button {\n flex: 0 0 auto;\n --solid-ui-font-size-md: var(--solid-ui-font-size-sm, .875rem);\n }\n }\n\n .access-control-sharing-state-actions {\n display: flex;\n flex-direction: column;\n align-items: flex-end;\n min-width: 0;\n justify-content: flex-end;\n margin-top: 10px;\n gap: 8px;\n\n solid-ui-button {\n --solid-ui-font-size-md: var(--solid-ui-font-size-sm, .875rem);\n max-width: 100%;\n }\n }\n\n @media (max-width: 420px) {\n .access-control-sharing-guidance {\n align-items: flex-start;\n flex-direction: column;\n gap: 8px;\n\n solid-ui-button {\n align-self: flex-end;\n }\n }\n }\n\n .access-control-contents-prompt {\n .access-control-contents-prompt-actions {\n display: flex;\n flex-wrap: wrap;\n min-width: 0;\n gap: 8px;\n margin-top: 10px;\n }\n\n solid-ui-button {\n --solid-ui-font-size-md: var(--solid-ui-font-size-sm, .875rem);\n max-width: 100%;\n flex: 0 1 auto;\n }\n }\n\n .access-control-contents-prompt h2 {\n margin-bottom: 4px;\n }\n\n .access-control-footer-actions {\n display: flex;\n justify-content: flex-end;\n align-items: center;\n gap: 15px;\n width: 100%;\n\n > solid-ui-button {\n min-width: 132px;\n }\n }\n\n @media (max-width: 380px) {\n .access-control-footer-actions {\n gap: 8px;\n\n > solid-ui-button {\n min-width: 0;\n flex: 1 1 0;\n }\n }\n }\n}\n"],"mappings":""}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { css as e } from "lit";
|
|
2
|
-
|
|
3
|
-
var t = e`:host .access-control-footer-actions{justify-content:flex-end;align-items:center;gap:15px;width:100%;display:flex}:host .access-control-footer-actions>solid-ui-button{min-width:132px}@media (width<=380px){:host .access-control-footer-actions{gap:8px}:host .access-control-footer-actions>solid-ui-button{flex:1 1 0;min-width:0}}`;
|
|
4
|
-
//#endregion
|
|
2
|
+
// src/components/access-control-modal/AccessControlModal.styles.css
|
|
3
|
+
var t = e`:host .access-control-mixed-policy-warning{border:1px solid var(--solid-ui-color-red-300,#fca5a5);background:var(--solid-ui-color-red-50,#fef2f2);color:var(--solid-ui-color-red-800,#991b1b);font-size:var(--solid-ui-font-size-sm,.875rem);border-radius:5px;gap:4px;margin:0 0 16px;padding:12px 14px;line-height:1.45;display:grid}:host .access-control-mixed-policy-warning strong{font-weight:600}:host .access-control-same-access-toggle{color:var(--solid-ui-color-gray-900,#101828);text-align:left;line-height:1.4;font:inherit;cursor:pointer;background:0 0;border:0;align-items:flex-start;gap:8px;margin-top:12px;padding:0;display:flex}:host .access-control-switch-track{background:var(--solid-ui-color-slate-300,#cbd5e1);border-radius:999px;flex:none;width:34px;height:20px;margin-top:1px;padding:2px;transition:background .15s;display:inline-flex}:host .access-control-same-access-toggle[aria-checked=true] .access-control-switch-track{background:var(--solid-ui-color-purple-600,#9333ea)}:host .access-control-switch-thumb{background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .15s;box-shadow:0 1px 2px #00000040}:host .access-control-same-access-toggle[aria-checked=true] .access-control-switch-thumb{transform:translate(14px)}:host .access-control-same-access-toggle>span:last-child{overflow-wrap:anywhere;min-width:0;max-width:100%}:host .access-control-sharing-state,:host .access-control-contents-prompt{box-sizing:border-box;min-width:0;max-width:100%;font-size:var(--solid-ui-font-size-sm,.875rem);margin-bottom:16px;padding:10px}:is(:host .access-control-sharing-state,:host .access-control-contents-prompt) h2{color:var(--solid-ui-color-gray-900,#101828);font-size:var(--solid-ui-font-size-md,1rem);margin:0 0 10px;font-weight:600}:is(:host .access-control-sharing-state,:host .access-control-contents-prompt) .access-control-advanced-sharing{box-sizing:border-box;overflow-wrap:anywhere;width:100%;min-width:0;max-width:100%;margin-top:10px;padding:10px 48px 10px 15px;position:relative}:is(:host .access-control-sharing-state,:host .access-control-contents-prompt) .access-control-advanced-sharing h2{color:var(--solid-ui-color-gray-900,#101828);font-size:var(--solid-ui-font-size-md,1rem);margin:0 0 4px;font-weight:600}:is(:host .access-control-sharing-state,:host .access-control-contents-prompt) .access-control-advanced-sharing p{overflow-wrap:anywhere;min-width:0;max-width:100%;color:var(--solid-ui-color-gray-600,#4a5565);font-size:var(--solid-ui-font-size-xs,.75rem);margin:0;line-height:1.5}:is(:host .access-control-sharing-state,:host .access-control-contents-prompt) .access-control-advanced-sharing .access-control-advanced-sharing-description-line{max-width:100%;display:block}:is(:host .access-control-sharing-state,:host .access-control-contents-prompt) .access-control-advanced-sharing-options,:is(:host .access-control-sharing-state,:host .access-control-contents-prompt) .access-control-advanced-sharing-actions{flex-wrap:wrap;gap:8px;min-width:0;margin-top:10px;display:flex}:is(:is(:host .access-control-sharing-state,:host .access-control-contents-prompt) .access-control-advanced-sharing-options,:is(:host .access-control-sharing-state,:host .access-control-contents-prompt) .access-control-advanced-sharing-actions) solid-ui-button{--solid-ui-font-size-md:var(--solid-ui-font-size-sm,.875rem);white-space:normal;min-width:0;max-width:100%}:is(:host .access-control-sharing-state,:host .access-control-contents-prompt) .access-control-advanced-sharing-actions{justify-content:flex-end;margin-top:0;position:absolute;top:10px;right:15px}:is(:host .access-control-sharing-state,:host .access-control-contents-prompt) .access-control-advanced-sharing-actions solid-ui-button{color:var(--solid-ui-color-gray-600,#4a5565)}:is(:host .access-control-sharing-state,:host .access-control-contents-prompt) p{overflow-wrap:anywhere;min-width:0;max-width:100%;color:var(--solid-ui-color-gray-600,#4a5565);margin:0;line-height:1.5}:host .access-control-sharing-state-panel,:host .access-control-contents-prompt{box-sizing:border-box;border:1px solid var(--solid-ui-color-slate-200,#e2e8f0);background:var(--solid-ui-color-white,#fff);border-radius:5px;min-width:0;max-width:100%;padding:10px 15px}:host .access-control-sharing-state-panel{gap:10px;display:grid}:host .access-control-sharing-state-panel p{overflow-wrap:anywhere;min-width:0;max-width:100%}:host .access-control-sharing-state-panel .access-control-sharing-state-custom-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}:host .access-control-sharing-state-panel .access-control-sharing-state-custom-row p{flex:auto}:host .access-control-sharing-state-panel .access-control-sharing-state-custom-row solid-ui-button{--solid-ui-font-size-md:var(--solid-ui-font-size-sm,.875rem);flex:none}:host .access-control-sharing-guidance{justify-content:space-between;align-items:center;gap:12px;min-width:0;display:flex}:host .access-control-sharing-guidance p{overflow-wrap:anywhere;min-width:0;max-width:100%}:host .access-control-sharing-guidance solid-ui-button{--solid-ui-font-size-md:var(--solid-ui-font-size-sm,.875rem);flex:none}:host .access-control-sharing-state-actions{flex-direction:column;justify-content:flex-end;align-items:flex-end;gap:8px;min-width:0;margin-top:10px;display:flex}:host .access-control-sharing-state-actions solid-ui-button{--solid-ui-font-size-md:var(--solid-ui-font-size-sm,.875rem);max-width:100%}@media (width<=420px){:host .access-control-sharing-guidance{flex-direction:column;align-items:flex-start;gap:8px}:host .access-control-sharing-guidance solid-ui-button{align-self:flex-end}}:host .access-control-contents-prompt .access-control-contents-prompt-actions{flex-wrap:wrap;gap:8px;min-width:0;margin-top:10px;display:flex}:host .access-control-contents-prompt solid-ui-button{--solid-ui-font-size-md:var(--solid-ui-font-size-sm,.875rem);flex:0 auto;max-width:100%}:host .access-control-contents-prompt h2{margin-bottom:4px}:host .access-control-footer-actions{justify-content:flex-end;align-items:center;gap:15px;width:100%;display:flex}:host .access-control-footer-actions>solid-ui-button{min-width:132px}@media (width<=380px){:host .access-control-footer-actions{gap:8px}:host .access-control-footer-actions>solid-ui-button{flex:1 1 0;min-width:0}}`;
|
|
5
4
|
export { t as default };
|
|
6
5
|
|
|
7
6
|
//# sourceMappingURL=AccessControlModal.styles.esm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccessControlModal.styles.esm.js","names":["AccessControlModal_styles_default"],"sources":["../../../src/components/access-control-modal/AccessControlModal.styles.css"],"sourcesContent":[":host {\n .access-control-footer-actions {\n display: flex;\n justify-content: flex-end;\n align-items: center;\n gap: 15px;\n width: 100%;\n\n > solid-ui-button {\n min-width: 132px;\n }\n }\n\n @media (max-width: 380px) {\n .access-control-footer-actions {\n gap: 8px;\n\n > solid-ui-button {\n min-width: 0;\n flex: 1 1 0;\n }\n }\n }\n}\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"AccessControlModal.styles.esm.js","names":["AccessControlModal_styles_default"],"sources":["../../../src/components/access-control-modal/AccessControlModal.styles.css"],"sourcesContent":[":host {\n .access-control-mixed-policy-warning {\n display: grid;\n gap: 4px;\n margin: 0 0 16px;\n padding: 12px 14px;\n border: 1px solid var(--solid-ui-color-red-300, #FCA5A5);\n border-radius: 5px;\n background: var(--solid-ui-color-red-50, #FEF2F2);\n color: var(--solid-ui-color-red-800, #991B1B);\n font-size: var(--solid-ui-font-size-sm, .875rem);\n line-height: 1.45;\n\n strong {\n font-weight: 600;\n }\n }\n\n .access-control-same-access-toggle {\n display: flex;\n align-items: flex-start;\n gap: 8px;\n margin-top: 12px;\n color: var(--solid-ui-color-gray-900, #101828);\n line-height: 1.4;\n border: 0;\n background: transparent;\n padding: 0;\n text-align: left;\n font: inherit;\n cursor: pointer;\n }\n\n .access-control-switch-track {\n display: inline-flex;\n flex: 0 0 auto;\n width: 34px;\n height: 20px;\n margin-top: 1px;\n border-radius: 999px;\n background: var(--solid-ui-color-slate-300, #CBD5E1);\n padding: 2px;\n transition: background .15s ease;\n }\n\n .access-control-same-access-toggle[aria-checked='true'] .access-control-switch-track {\n background: var(--solid-ui-color-purple-600, #9333EA);\n }\n\n .access-control-switch-thumb {\n width: 16px;\n height: 16px;\n border-radius: 50%;\n background: white;\n box-shadow: 0 1px 2px rgb(0 0 0 / 25%);\n transition: transform .15s ease;\n }\n\n .access-control-same-access-toggle[aria-checked='true'] .access-control-switch-thumb {\n transform: translateX(14px);\n }\n\n .access-control-same-access-toggle > span:last-child {\n min-width: 0;\n max-width: 100%;\n overflow-wrap: anywhere;\n }\n\n .access-control-sharing-state,\n .access-control-contents-prompt {\n box-sizing: border-box;\n min-width: 0;\n max-width: 100%;\n padding: 10px;\n margin-bottom: 16px;\n font-size: var(--solid-ui-font-size-sm, .875rem);\n\n h2 {\n margin: 0 0 10px;\n color: var(--solid-ui-color-gray-900, #101828);\n font-size: var(--solid-ui-font-size-md, 1rem);\n font-weight: 600;\n }\n\n .access-control-advanced-sharing {\n box-sizing: border-box;\n min-width: 0;\n width: 100%;\n max-width: 100%;\n overflow-wrap: anywhere;\n margin-top: 10px;\n padding: 10px 15px;\n position: relative;\n padding-right: 48px;\n\n h2 {\n margin: 0 0 4px;\n color: var(--solid-ui-color-gray-900, #101828);\n font-size: var(--solid-ui-font-size-md, 1rem);\n font-weight: 600;\n }\n\n p {\n margin: 0;\n min-width: 0;\n max-width: 100%;\n overflow-wrap: anywhere;\n color: var(--solid-ui-color-gray-600, #4A5565);\n font-size: var(--solid-ui-font-size-xs, .75rem);\n line-height: 1.5;\n }\n\n .access-control-advanced-sharing-description-line {\n display: block;\n max-width: 100%;\n }\n }\n\n .access-control-advanced-sharing-options,\n .access-control-advanced-sharing-actions {\n display: flex;\n flex-wrap: wrap;\n min-width: 0;\n gap: 8px;\n margin-top: 10px;\n\n solid-ui-button {\n --solid-ui-font-size-md: var(--solid-ui-font-size-sm, .875rem);\n min-width: 0;\n max-width: 100%;\n white-space: normal;\n }\n }\n\n .access-control-advanced-sharing-actions {\n justify-content: flex-end;\n position: absolute;\n top: 10px;\n right: 15px;\n margin-top: 0;\n\n solid-ui-button {\n color: var(--solid-ui-color-gray-600, #4A5565);\n }\n }\n\n p {\n margin: 0;\n min-width: 0;\n max-width: 100%;\n overflow-wrap: anywhere;\n color: var(--solid-ui-color-gray-600, #4A5565);\n line-height: 1.5;\n }\n }\n\n .access-control-sharing-state-panel,\n .access-control-contents-prompt {\n box-sizing: border-box;\n min-width: 0;\n max-width: 100%;\n border: 1px solid var(--solid-ui-color-slate-200, #E2E8F0);\n border-radius: 5px;\n background: var(--solid-ui-color-white, #FFF);\n padding: 10px 15px;\n }\n\n .access-control-sharing-state-panel {\n display: grid;\n gap: 10px;\n\n p {\n min-width: 0;\n max-width: 100%;\n overflow-wrap: anywhere;\n }\n\n .access-control-sharing-state-custom-row {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n gap: 8px;\n\n p {\n flex: 1 1 auto;\n }\n\n solid-ui-button {\n flex: 0 0 auto;\n --solid-ui-font-size-md: var(--solid-ui-font-size-sm, .875rem);\n }\n }\n }\n\n .access-control-sharing-guidance {\n display: flex;\n align-items: center;\n justify-content: space-between;\n min-width: 0;\n gap: 12px;\n\n p {\n min-width: 0;\n max-width: 100%;\n overflow-wrap: anywhere;\n }\n\n solid-ui-button {\n flex: 0 0 auto;\n --solid-ui-font-size-md: var(--solid-ui-font-size-sm, .875rem);\n }\n }\n\n .access-control-sharing-state-actions {\n display: flex;\n flex-direction: column;\n align-items: flex-end;\n min-width: 0;\n justify-content: flex-end;\n margin-top: 10px;\n gap: 8px;\n\n solid-ui-button {\n --solid-ui-font-size-md: var(--solid-ui-font-size-sm, .875rem);\n max-width: 100%;\n }\n }\n\n @media (max-width: 420px) {\n .access-control-sharing-guidance {\n align-items: flex-start;\n flex-direction: column;\n gap: 8px;\n\n solid-ui-button {\n align-self: flex-end;\n }\n }\n }\n\n .access-control-contents-prompt {\n .access-control-contents-prompt-actions {\n display: flex;\n flex-wrap: wrap;\n min-width: 0;\n gap: 8px;\n margin-top: 10px;\n }\n\n solid-ui-button {\n --solid-ui-font-size-md: var(--solid-ui-font-size-sm, .875rem);\n max-width: 100%;\n flex: 0 1 auto;\n }\n }\n\n .access-control-contents-prompt h2 {\n margin-bottom: 4px;\n }\n\n .access-control-footer-actions {\n display: flex;\n justify-content: flex-end;\n align-items: center;\n gap: 15px;\n width: 100%;\n\n > solid-ui-button {\n min-width: 132px;\n }\n }\n\n @media (max-width: 380px) {\n .access-control-footer-actions {\n gap: 8px;\n\n > solid-ui-button {\n min-width: 0;\n flex: 1 1 0;\n }\n }\n }\n}\n"],"mappings":""}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const e=require("../../widgets/buttons.cjs.js");require("../../widgets/index.cjs.js");const t=require("../../lib/components/decorators.cjs.js"),n=require("../../lib/components/web-component/WebComponent.cjs.js");require("../../lib/components/index.cjs.js"),require("../combobox/index.cjs.js"),require("../combobox-option/index.cjs.js");const r=require("./AccessControlSharedAccess.styles.cjs.js");let i=require("rdflib"),a=require("solid-logic"),o=require("lit"),s=require("lit/decorators.js");var c,l,u,d,f,p,m,h,g,_,v,y,b;function
|
|
1
|
+
const e=require("../../widgets/buttons.cjs.js");require("../../widgets/index.cjs.js");const t=require("../../lib/components/decorators.cjs.js"),n=require("../../lib/components/web-component/WebComponent.cjs.js");require("../../lib/components/index.cjs.js"),require("../combobox/index.cjs.js"),require("../combobox-option/index.cjs.js"),require("../../_virtual/~icons/lucide/globe.cjs.js");const r=require("./AccessControlSharedAccess.styles.cjs.js");let i=require("rdflib"),a=require("solid-logic"),o=require("lit"),s=require("lit/decorators.js");var c,l,u,d,f,p,m,h,g,_,v,y,b,x,S,C;function w(e,t,n){T(e,t),t.set(e,n)}function T(e,t){if(t.has(e))throw TypeError(`Cannot initialize the same private elements twice on an object`)}function E(e,t,n){return e.set(O(e,t),n),n}function D(e,t){return e.get(O(e,t))}function O(e,t,n){if(typeof e==`function`?e===t:e.has(t))return arguments.length<3?t:n;throw TypeError(`Private element is not present on this object`)}function k(e,t,n){return(t=j(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function A(e,t,n,r,i,a){function o(e,t,n){return function(r,i){return n&&n(r),e[t].call(r,i)}}function s(e,t){for(var n=0;n<e.length;n++)e[n].call(t);return t}function c(e,t,n,r){if(typeof e!=`function`&&(r||e!==void 0))throw TypeError(t+` must `+(n||`be`)+` a function`+(r?``:` or undefined`));return e}function l(e,t,n,r,i,a,s,l,u,d,f,p,m){function h(e){if(!m(e))throw TypeError(`Attempted to access private element on non-instance`)}var g,_=t[0],v=t[3],y=!l;if(!y){n||Array.isArray(_)||(_=[_]);var b={},x=[],S=i===3?`get`:i===4||p?`set`:`value`;d?(f||p?b={get:N(function(){return v(this)},r,`get`),set:function(e){t[4](this,e)}}:b[S]=v,f||N(b[S],r,i===2?``:S)):f||(b=Object.getOwnPropertyDescriptor(e,r))}for(var C=e,w=_.length-1;w>=0;w-=n?2:1){var T=_[w],E=n?_[w-1]:void 0,D={},O={kind:[`field`,`accessor`,`method`,`getter`,`setter`,`class`][i],name:r,metadata:a,addInitializer:function(e,t){if(e.v)throw Error(`attempted to call addInitializer after decoration was finished`);c(t,`An initializer`,`be`,!0),s.push(t)}.bind(null,D)};try{if(y)(g=c(T.call(E,C,O),`class decorators`,`return`))&&(C=g);else{var k,A;O.static=u,O.private=d,d?i===2?k=function(e){return h(e),b.value}:(i<4&&(k=o(b,`get`,h)),i!==3&&(A=o(b,`set`,h))):(k=function(e){return e[r]},(i<2||i===4)&&(A=function(e,t){e[r]=t}));var j=O.access={has:d?m.bind():function(e){return r in e}};if(k&&(j.get=k),A&&(j.set=A),C=T.call(E,p?{get:b.get,set:b.set}:b[S],O),p){if(typeof C==`object`&&C)(g=c(C.get,`accessor.get`))&&(b.get=g),(g=c(C.set,`accessor.set`))&&(b.set=g),(g=c(C.init,`accessor.init`))&&x.push(g);else if(C!==void 0)throw TypeError(`accessor decorators must return an object with get, set, or init properties or void 0`)}else c(C,(f?`field`:`method`)+` decorators`,`return`)&&(f?x.push(C):b[S]=C)}}finally{D.v=!0}}return(f||p)&&l.push(function(e,t){for(var n=x.length-1;n>=0;n--)t=x[n].call(e,t);return t}),f||y||(d?p?l.push(o(b,`get`),o(b,`set`)):l.push(i===2?b[S]:o.call.bind(b[S])):Object.defineProperty(e,r,b)),C}function u(e,t){return Object.defineProperty(e,Symbol.metadata||Symbol.for(`Symbol.metadata`),{configurable:!0,enumerable:!0,value:t})}if(arguments.length>=6)var d=a[Symbol.metadata||Symbol.for(`Symbol.metadata`)];var f=Object.create(d??null),p=function(e,t,n,r){var i,a,o=[],c=function(t){return P(t)===e},u=new Map;function d(e){e&&o.push(s.bind(null,e))}for(var f=0;f<t.length;f++){var p=t[f];if(Array.isArray(p)){var m=p[1],h=p[2],g=p.length>3,_=16&m,v=!!(8&m),y=(m&=7)==0,b=h+`/`+v;if(!y&&!g){var x=u.get(b);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);u.set(b,!(m>2)||m)}l(v?e:e.prototype,p,_,g?`#`+h:j(h),m,r,v?a||=[]:i||=[],o,v,g,y,m===1,v&&g?c:n)}}return d(i),d(a),o}(e,t,i,f);return n.length||u(e,f),{e:p,get c(){var t=[];return n.length&&[u(l(e,[n],r,e.name,5,f,t),f),s.bind(null,t,e)]}}}function j(e){var t=M(e,`string`);return typeof t==`symbol`?t:t+``}function M(e,t){if(typeof e!=`object`||!e)return e;var n;if(typeof Symbol<`u`&&(n=e[Symbol.toPrimitive])!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function N(e,t,n){typeof t==`symbol`&&(t=(t=t.description)?`[`+t+`]`:``);try{Object.defineProperty(e,"name",{configurable:!0,value:n?n+` `+t:t})}catch{}return e}function P(e){if(Object(e)!==e)throw TypeError(`right-hand side of 'in' should be an object, got `+(e===null?`null`:typeof e));return e}function F(e){return e}h=[t.customElement(`solid-ui-access-control-shared-access`)];var I;new(S=(u=new WeakMap,d=new WeakMap,f=new WeakMap,C=(g=(0,s.property)({attribute:!1}),v=(0,s.property)({type:Boolean}),b=(0,s.state)(),`accessGrantViewModels`),l=class extends n.default{constructor(...e){super(...e),w(this,u,(p(this),_(this,[]))),w(this,d,y(this,!1)),w(this,f,x(this,``))}get[C](){return D(u,this)}set accessGrantViewModels(e){E(u,this,e)}get disabled(){return D(d,this)}set disabled(e){E(d,this,e)}get searchValue(){return D(f,this)}set searchValue(e){E(f,this,e)}onSearchInput(e){let t=e.currentTarget;this.searchValue=typeof t?.value==`string`?t.value:``}onSearchSelect(e){let t=e.detail.option;typeof t.label==`string`&&(this.searchValue=t.label)}onAccessGrantRoleChange(e,t){let n=t.detail.option.value,r=typeof n==`string`?a.ACCESS_ROLES.find(e=>e===n):void 0;if(!r)return;let i={id:e,role:r};this.dispatchEvent(new CustomEvent(`access-grant-role-changed`,{detail:i,bubbles:!0,composed:!0}))}getFilteredAccessGrants(){let e=this.searchValue.trim().toLowerCase();return this.accessGrantViewModels.filter(({subjectLabel:t,subjects:n})=>n.length?!e||t.toLowerCase().includes(e):!1)}renderAccessGrant(e){return o.html`
|
|
2
2
|
<li>
|
|
3
3
|
${this.renderAuthorizationBadge(e.authorization,e.subjectLabel)}
|
|
4
4
|
<h3>${e.subjectLabel}</h3>
|
|
@@ -6,11 +6,12 @@ const e=require("../../widgets/buttons.cjs.js");require("../../widgets/index.cjs
|
|
|
6
6
|
</li>
|
|
7
7
|
`}renderAuthorizationBadge(e,t){let n=this.getAuthorizationBadge(e,t);return o.html`
|
|
8
8
|
<div class="access-grants-image access-grants-image--${n.kind}">
|
|
9
|
-
${n.image?o.html`<img src=${n.image} alt="" aria-hidden="true" />`:o.html`<span aria-hidden="true">${n.text}</span>`}
|
|
9
|
+
${n.image?o.html`<img src=${n.image} alt="" aria-hidden="true" />`:n.kind===`origin`?o.html`<icon-lucide-globe aria-hidden="true"></icon-lucide-globe>`:o.html`<span aria-hidden="true">${n.text}</span>`}
|
|
10
10
|
</div>
|
|
11
|
-
`}getAuthorizationBadge(t,n){let r=t.agent[0];if(r){let t=e.findImage((0,i.sym)(r));return{kind:`agent`,image:t,text:t?``:this.getInitials(n,2)}}if(t.agentGroup[0])return{kind:`agentGroup`,text:this.getInitials(n,1)};let a=t.agentClass[0];if(a){let t=e.findImage((0,i.sym)(a));return{kind:`agentClass`,image:t,text:t?``:this.getInitials(n,2)}}return t.origin[0]?{kind:`origin`,text:`O
|
|
11
|
+
`}getAuthorizationBadge(t,n){let r=t.agent[0];if(r){let t=e.findImage((0,i.sym)(r));return{kind:`agent`,image:t,text:t?``:this.getInitials(n,2)}}if(t.agentGroup[0])return{kind:`agentGroup`,text:this.getInitials(n,1)};let a=t.agentClass[0];if(a){let t=e.findImage((0,i.sym)(a));return{kind:`agentClass`,image:t,text:t?``:this.getInitials(n,2)}}return t.origin[0]?{kind:`origin`,text:`O`,image:``}:{kind:`unknown`,text:`?`}}getInitials(e,t=2){return(e.split(/\s+/).filter(Boolean).slice(0,t).map(e=>e[0]).join(``)||e.slice(0,t)).toUpperCase()}renderAuthorizationRole(e,t){return o.html`
|
|
12
12
|
<solid-ui-combobox
|
|
13
13
|
class="access-role-select access-role-select--compact access-grants-role access-grants-role--editable ${e===`Owner`?`access-grants-role--owner`:``}"
|
|
14
|
+
.disabled=${this.disabled}
|
|
14
15
|
.value=${e}
|
|
15
16
|
@change=${e=>this.onAccessGrantRoleChange(t,e)}
|
|
16
17
|
>
|
|
@@ -21,7 +22,7 @@ const e=require("../../widgets/buttons.cjs.js");require("../../widgets/index.cjs
|
|
|
21
22
|
`)}render(){let e=this.getFilteredAccessGrants();return o.html`
|
|
22
23
|
<section aria-labelledby="access-grants-heading">
|
|
23
24
|
<div class="access-grants-header">
|
|
24
|
-
<h2 id="access-grants-heading">
|
|
25
|
+
<h2 id="access-grants-heading">Shared with</h2>
|
|
25
26
|
<solid-ui-combobox
|
|
26
27
|
class="access-grants-search-input"
|
|
27
28
|
label="Search access grants"
|
|
@@ -44,5 +45,5 @@ const e=require("../../widgets/buttons.cjs.js");require("../../widgets/index.cjs
|
|
|
44
45
|
</ul>
|
|
45
46
|
</div>
|
|
46
47
|
</section>
|
|
47
|
-
`}},{e:[
|
|
48
|
+
`}},{e:[_,y,x,p],c:[I,m]}=A(l,[[g,1,`accessGrantViewModels`],[v,1,`disabled`],[b,1,`searchValue`]],h,0,void 0,n.default),l),c=class extends F{constructor(){super(I),k(this,`styles`,r.default),m()}},k(c,S,void 0),c),Object.defineProperty(exports,"default",{enumerable:!0,get:function(){return I}});
|
|
48
49
|
//# sourceMappingURL=AccessControlSharedAccess.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccessControlSharedAccess.cjs.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","customElement","property","state","WebComponent","ACCESS_ROLES","findImage","sym","styles","require_buttons","require_decorators","require_WebComponent","require_AccessControlSharedAccess_styles","rdflib","solid_logic","lit","lit_decorators_js","_Class","_AccessControlSharedAccess","_A","_B","_initProto","_initClass","_classDecs","_accessGrantViewModelsDecs","_init_accessGrantViewModels","_searchValueDecs","_init_searchValue","_AccessControlSharedA2","_ref","_classPrivateFieldInitSpec","_checkPrivateRedeclaration","a","_classPrivateFieldSet","s","_assertClassBrand","r","_classPrivateFieldGet","_defineProperty","_toPropertyKey","t","_applyDecs","i","n","o","c","applyDec","m","h","y","v","g","b","u","w","S","A","d","f","p","_setFunctionName","P","j","D","I","F","l","N","_checkInRHS","_toPrimitive","e","_identity","_AccessControlSharedA","args","target","event","option","value","detail","query","subjects","subjectLabel","entry","badge","authorization","agent","image","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.cjs.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","customElement","property","state","WebComponent","ACCESS_ROLES","findImage","sym","styles","require_buttons","require_decorators","require_WebComponent","require_AccessControlSharedAccess_styles","rdflib","solid_logic","lit","lit_decorators_js","_Class","_AccessControlSharedAccess","_A","_B","_C","_initProto","_initClass","_classDecs","_accessGrantViewModelsDecs","_init_accessGrantViewModels","_disabledDecs","_init_disabled","_searchValueDecs","_init_searchValue","_AccessControlSharedA2","_ref","_classPrivateFieldInitSpec","_checkPrivateRedeclaration","a","_classPrivateFieldSet","s","_assertClassBrand","r","_classPrivateFieldGet","_defineProperty","_toPropertyKey","t","_applyDecs","i","n","o","c","applyDec","m","h","y","v","g","b","u","w","S","A","d","f","p","_setFunctionName","P","j","D","I","F","l","N","_checkInRHS","_toPrimitive","e","_identity","_AccessControlSharedA","args","target","event","option","value","accessRole","candidate","detail","query","subjects","subjectLabel","entry","badge","authorization","agent","image","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":"A,gpJAY2DS,EAAA,CAG1DT,EAAAA,cAAc,uCAAuC,CAAC,EAAA,IAAAU,EAAA,IAAAC,GAAAC,EAAA,IAAAC,QAAAC,EAAA,IAAAD,QAAAE,EAAA,IAAAF,QAAAG,GAAAC,GAAAA,EAIpDd,EAAAA,SAAAA,CAAS,CAAEe,UAAW,EAAM,CAAC,EAACC,GAAAA,EAG9BhB,EAAAA,SAAAA,CAAS,CAAEiB,KAAMC,OAAQ,CAAC,EAACC,GAAAA,EAG3BlB,EAAAA,MAAAA,CAAM,EAAC,yBAAAmB,EAVV,cACuDtB,EAAAA,OAAa,CAAAwB,YAAA,GAAAC,EAAA,CAAA,MAAA,GAAAA,CAAA,EAAAC,EAAA,KAAAf,GAAAgB,EAAA,IAAA,EAAAC,EAAA,KAIT,CAAA,CAAE,EAAA,EAAAF,EAAA,KAAAb,EAAAgB,EAAA,KAGvC,EAAK,CAAA,EAAAH,EAAA,KAAAZ,EAAAgB,EAAA,KAGM,EAAE,CAAA,CAAA,CAAA,IAAAf,IAAA,CAAA,OAAAgB,EAAApB,EAAA,IAAA,CAAA,CAAA,IANxBqB,sBAAqBC,EAAA,CAAAC,EAAAvB,EAAA,KAAAsB,CAAA,CAAA,CAAA,IAGrBE,UAAQ,CAAA,OAAAJ,EAAAlB,EAAA,IAAA,CAAA,CAAA,IAARsB,SAAQF,EAAA,CAAAC,EAAArB,EAAA,KAAAoB,CAAA,CAAA,CAAA,IAGAG,aAAW,CAAA,OAAAL,EAAAjB,EAAA,IAAA,CAAA,CAAA,IAAXsB,YAAWH,EAAA,CAAAC,EAAApB,EAAA,KAAAmB,CAAA,CAAA,CAEpBI,cAAeC,EAAc,CACnC,IAAMC,EAASD,EAAME,cACrB,KAAKJ,YAAc,OAAOG,GAAQE,OAAU,SAAWF,EAAOE,MAAQ,EACxE,CAEQC,eAAgBJ,EAA4B,CAClD,IAAMK,EAASL,EAAMM,OAAOD,OACxB,OAAOA,EAAOE,OAAU,WAI5B,KAAKT,YAAcO,EAAOE,MAC5B,CAEQC,wBAAyBC,EAAYT,EAA4B,CACvE,IAAMG,EAAQH,EAAMM,OAAOD,OAAOF,MAC5BO,EAAa,OAAOP,GAAU,SAChCrC,EAAAA,aAAa6C,KAAKC,GAAaA,IAAcT,CAAK,EAClDU,IAAAA,GACJ,GAAI,CAACH,EACH,OAGF,IAAMJ,EAAuC,CAC3CG,KACAK,KAAMJ,CACR,EAEA,KAAKK,cAAc,IAAIC,YAA0C,4BAA6B,CAC5FV,SACAW,QAAS,GACTC,SAAU,EACZ,CAAC,CAAC,CACJ,CAEQC,yBAA2B,CACjC,IAAMC,EAAQ,KAAKtB,YAAYuB,KAAK,CAAC,CAACC,YAAY,EAElD,OAAO,KAAK5B,sBAAsB6B,QAAQ,CAAEC,eAAcC,cACnDA,EAASC,OAIP,CAACN,GAASI,EAAaF,YAAY,CAAC,CAACK,SAASP,CAAK,EAHjD,EAIV,CACH,CAEQQ,kBAAmBC,EAA6B,CACtD,MAAOlE,GAAAA,IAAI;;UAEL,KAAKmE,yBAAyBD,EAAME,cAAeF,EAAML,YAAY,EAAC;cAClEK,EAAML,aAAY;UACtB,KAAKQ,wBAAwBH,EAAMf,KAAMe,EAAMpB,EAAE,EAAC;;KAG1D,CAEQqB,yBAA0BC,EAAsDP,EAAsB,CAC5G,IAAMS,EAAQ,KAAKC,sBAAsBH,EAAeP,CAAY,EAEpE,MAAO7D,GAAAA,IAAI;6DAC8CsE,EAAME,KAAI;UAC7DF,EAAMG,MACJzE,EAAAA,IAAI,YAAYsE,EAAMG,MAAK,+BAC3BH,EAAME,OAAS,SACbxE,EAAAA,IAAI,6DACNA,EAAAA,IAAI,4BAA4BsE,EAAMI,KAAI,SAAS;;KAG7D,CAEQH,sBACNH,EACAP,EACA,CACA,IAAMc,EAAQP,EAAcO,MAAM,GAClC,GAAIA,EAAO,CACT,IAAMF,EAAQrE,EAAAA,WAAAA,EAAUC,EAAAA,IAAAA,CAAIsE,CAAK,CAAC,EAClC,MAAO,CACLH,KAAM,QACNC,QACAC,KAAMD,EAAQ,GAAK,KAAKG,YAAYf,EAAc,CAAC,CACrD,CACF,CAGA,GADmBO,EAAcS,WAAW,GAE1C,MAAO,CACLL,KAAM,aACNE,KAAM,KAAKE,YAAYf,EAAc,CAAC,CACxC,EAGF,IAAMiB,EAAaV,EAAcU,WAAW,GAC5C,GAAIA,EAAY,CACd,IAAML,EAAQrE,EAAAA,WAAAA,EAAUC,EAAAA,IAAAA,CAAIyE,CAAU,CAAC,EACvC,MAAO,CACLN,KAAM,aACNC,QACAC,KAAMD,EAAQ,GAAK,KAAKG,YAAYf,EAAc,CAAC,CACrD,CACF,CAUA,OARIO,EAAcW,OAAO,GAChB,CACLP,KAAM,SACNE,KAAM,IACND,MAAO,EACT,EAGK,CACLD,KAAM,UACNE,KAAM,GACR,CACF,CAEQE,YAAapC,EAAewC,EAAW,EAAW,CAGxD,OAFcxC,EAAM0C,MAAM,KAAK,CAAC,CAACtB,OAAOzC,OAAO,CAAC,CAACgE,MAAM,EAAGH,CACzCC,CAAAA,CAAMI,IAAIC,GAAQA,EAAK,EAAE,CAAC,CAACC,KAAK,EACzCH,GAAY5C,EAAM2C,MAAM,EAAGH,CAAQ,EAAA,CAAGQ,YAAY,CAC5D,CAEQnB,wBAAyBlB,EAAkBL,EAAY,CAC7D,MAAO9C,GAAAA,IAAI;;gHAEiGmD,IAAS,QAAU,4BAA8B,GAAE;oBAC/I,KAAKjB,SAAQ;iBAChBiB,EAAI;kBACFd,GAA+B,KAAKQ,wBAAwBC,EAAIT,CAAK,EAAC;;UAE/E,KAAKoD,uBAAuB,EAAC;;KAGrC,CAEQA,wBAA0B,CAChC,OAAOtF,EAAAA,aAAakF,IAAIlC,GAAQnD,EAAAA,IAAI;wCACAmD,EAAI,GAAIA,IAAS,YAAc,SAAWA,EAAI;KACjF,CACH,CAEUuC,QAAU,CAClB,IAAMC,EAAe,KAAKnC,wBAAwB,EAElD,MAAOxD,GAAAA,IAAI;;;;;;;2BAOY,GAAI;qBACV,KAAKmC,YAAW;;qBAEhB,KAAKC,cAAa;sBACjB,KAAKK,eAAc;;cAE3B,KAAKV,sBACJ6B,QAAQ,CAAEE,cAAeA,EAASC,OAAS,CAAC,CAAC,CAC7CsB,KAAK,CAAExB,kBAAmB7D,EAAAA,IAAI;mDACM6D,EAAY;oBAC3CA,EAAY;;eAEjB,EAAC;;;;;cAKF8B,EAAa5B,OAAS,EACpB4B,EAAaN,IAAInB,GAAS,KAAKD,kBAAkBC,CAAK,CAAC,EACvDlE,EAAAA,IAAI,4BAA2B;;;;KAK7C,CACF,EAAC,CAAA4F,EAAA,CAAAjE,EAAAC,EAAAC,EAAAH,GAAAmE,EAAA,CAAArF,EAAAsF,IAAAC,EAAA1E,EAAA,CAAA,CAAAN,EAAA,EAAA,uBAAA,EAAA,CAAAE,EAAA,EAAA,UAAA,EAAA,CAAAG,EAAA,EAAA,aAAA,CAAA,EAAAb,EAAA,EAAA,IAAA,GA7LsDR,EAAAA,OAAY,EAAAsB,GAAA2E,EAAA,cAAAC,CAAA,CAAA1E,aAAA,CAAA,MAAAf,CAAA,EAAA0F,EAAA,KAAA,SACjD5F,EAAAA,OAAM,EAAAwF,EAAA,CAAA,CAAA,EAAAI,EAAAF,EAAAvF,EAAA,IAAA,EAAA,EAAAuF,G"}
|
|
@@ -3,6 +3,7 @@ import { AccessGrantViewModel } from './types';
|
|
|
3
3
|
export default class AccessControlSharedAccess extends WebComponent {
|
|
4
4
|
static styles: import('lit').CSSResult;
|
|
5
5
|
accessor accessGrantViewModels: AccessGrantViewModel[];
|
|
6
|
+
accessor disabled: boolean;
|
|
6
7
|
private accessor searchValue;
|
|
7
8
|
private onSearchInput;
|
|
8
9
|
private onSearchSelect;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccessControlSharedAccess.d.ts","sourceRoot":"","sources":["../../../src/components/access-control-modal/AccessControlSharedAccess.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAQ9D,OAAO,uBAAuB,CAAA;AAC9B,OAAO,8BAA8B,CAAA;
|
|
1
|
+
{"version":3,"file":"AccessControlSharedAccess.d.ts","sourceRoot":"","sources":["../../../src/components/access-control-modal/AccessControlSharedAccess.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAQ9D,OAAO,uBAAuB,CAAA;AAC9B,OAAO,8BAA8B,CAAA;AACrC,OAAO,qBAAqB,CAAA;AAG5B,OAAO,KAAK,EAAgC,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAGjF,MAAM,CAAC,OAAO,OAAO,yBAA0B,SAAQ,YAAY;IACjE,MAAM,CAAC,MAAM,0BAAS;IAGtB,QAAQ,CAAC,qBAAqB,EAAE,oBAAoB,EAAE,CAAK;IAG3D,QAAQ,CAAC,QAAQ,UAAQ;IAGzB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAK;IAEjC,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,uBAAuB;IAqB/B,OAAO,CAAC,uBAAuB;IAY/B,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,wBAAwB;IAchC,OAAO,CAAC,qBAAqB;IA8C7B,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,uBAAuB;IAa/B,OAAO,CAAC,sBAAsB;IAM9B,SAAS,CAAC,MAAM;CAmCjB"}
|