solid-ui 5.0.2-2 → 5.0.2-3

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.
Files changed (320) hide show
  1. package/dist/_virtual/~icons/lucide/arrow-left.cjs.js +2 -0
  2. package/dist/_virtual/~icons/lucide/arrow-left.cjs.js.map +1 -0
  3. package/dist/_virtual/~icons/lucide/arrow-left.esm.js +10 -0
  4. package/dist/_virtual/~icons/lucide/arrow-left.esm.js.map +1 -0
  5. package/dist/_virtual/~icons/lucide/ellipsis-vertical.cjs.js +2 -0
  6. package/dist/_virtual/~icons/lucide/ellipsis-vertical.cjs.js.map +1 -0
  7. package/dist/_virtual/~icons/lucide/ellipsis-vertical.esm.js +10 -0
  8. package/dist/_virtual/~icons/lucide/ellipsis-vertical.esm.js.map +1 -0
  9. package/dist/_virtual/~icons/lucide/file.cjs.js +2 -0
  10. package/dist/_virtual/~icons/lucide/file.cjs.js.map +1 -0
  11. package/dist/_virtual/~icons/lucide/file.esm.js +10 -0
  12. package/dist/_virtual/~icons/lucide/file.esm.js.map +1 -0
  13. package/dist/_virtual/~icons/lucide/lock-keyhole.cjs.js +2 -0
  14. package/dist/_virtual/~icons/lucide/lock-keyhole.cjs.js.map +1 -0
  15. package/dist/_virtual/~icons/lucide/lock-keyhole.esm.js +10 -0
  16. package/dist/_virtual/~icons/lucide/lock-keyhole.esm.js.map +1 -0
  17. package/dist/_virtual/~icons/lucide/pencil.cjs.js +2 -0
  18. package/dist/_virtual/~icons/lucide/pencil.cjs.js.map +1 -0
  19. package/dist/_virtual/~icons/lucide/pencil.esm.js +10 -0
  20. package/dist/_virtual/~icons/lucide/pencil.esm.js.map +1 -0
  21. package/dist/_virtual/~icons/lucide/share-2.cjs.js +2 -0
  22. package/dist/_virtual/~icons/lucide/share-2.cjs.js.map +1 -0
  23. package/dist/_virtual/~icons/lucide/share-2.esm.js +10 -0
  24. package/dist/_virtual/~icons/lucide/share-2.esm.js.map +1 -0
  25. package/dist/_virtual/~icons/lucide/user-round-cog.cjs.js +2 -0
  26. package/dist/_virtual/~icons/lucide/user-round-cog.cjs.js.map +1 -0
  27. package/dist/_virtual/~icons/lucide/user-round-cog.esm.js +10 -0
  28. package/dist/_virtual/~icons/lucide/user-round-cog.esm.js.map +1 -0
  29. package/dist/chunks/DialogProvider-dagk2fHm.js +209 -0
  30. package/dist/chunks/DialogProvider-dagk2fHm.js.map +1 -0
  31. package/dist/chunks/ResourceActionsMenu-o-8kWx8z.js +379 -0
  32. package/dist/chunks/ResourceActionsMenu-o-8kWx8z.js.map +1 -0
  33. package/dist/chunks/{access-control-modal-Dcg6-f4V.js → access-control-modal-CWH98HX3.js} +466 -478
  34. package/dist/chunks/access-control-modal-CWH98HX3.js.map +1 -0
  35. package/dist/chunks/{account-D6JK-n7u.js → account-Cocvv0H3.js} +21 -20
  36. package/dist/chunks/{account-D6JK-n7u.js.map → account-Cocvv0H3.js.map} +1 -1
  37. package/dist/chunks/{auth-B_abPDvH.js → auth-Df5uYksz.js} +41 -39
  38. package/dist/chunks/{auth-B_abPDvH.js.map → auth-Df5uYksz.js.map} +1 -1
  39. package/dist/chunks/{avatar-BR3COVSQ.js → avatar-DeotTinS.js} +11 -10
  40. package/dist/chunks/{avatar-BR3COVSQ.js.map → avatar-DeotTinS.js.map} +1 -1
  41. package/dist/chunks/{button-D6qO2idW.js → button-Dy1aFjqG.js} +11 -10
  42. package/dist/chunks/{button-D6qO2idW.js.map → button-Dy1aFjqG.js.map} +1 -1
  43. package/dist/chunks/{chunk.UEBQI7VV-lcP-fpUk.js → chunk.UEBQI7VV-9M5gO7Ew.js} +9 -12
  44. package/dist/chunks/chunk.UEBQI7VV-9M5gO7Ew.js.map +1 -0
  45. package/dist/chunks/{combobox-fSTp9qoT.js → combobox-BL0-8wef.js} +18 -17
  46. package/dist/chunks/{combobox-fSTp9qoT.js.map → combobox-BL0-8wef.js.map} +1 -1
  47. package/dist/chunks/{combobox-option-DOtGuKel.js → combobox-option-DjlmXt1O.js} +8 -7
  48. package/dist/chunks/{combobox-option-DOtGuKel.js.map → combobox-option-DjlmXt1O.js.map} +1 -1
  49. package/dist/chunks/{components-C8c2Ucm5.js → components-LxiwG5ae.js} +190 -201
  50. package/dist/chunks/components-LxiwG5ae.js.map +1 -0
  51. package/dist/chunks/context-By_u12WA.js +21 -0
  52. package/dist/chunks/context-By_u12WA.js.map +1 -0
  53. package/dist/chunks/custom-element-BW8Ua4c7.js +9 -0
  54. package/dist/chunks/custom-element-BW8Ua4c7.js.map +1 -0
  55. package/dist/chunks/decorators-V-B013l9.js +12 -0
  56. package/dist/chunks/decorators-V-B013l9.js.map +1 -0
  57. package/dist/chunks/{dialog-CgYK767T.js → dialog-CrmftB9c.js} +16 -15
  58. package/dist/chunks/{dialog-CgYK767T.js.map → dialog-CrmftB9c.js.map} +1 -1
  59. package/dist/chunks/{dialog-content-DjwRH1ci.js → dialog-content-Cw3xqJ45.js} +6 -5
  60. package/dist/chunks/{dialog-content-DjwRH1ci.js.map → dialog-content-Cw3xqJ45.js.map} +1 -1
  61. package/dist/chunks/{dialog-footer-GQWi8lfB.js → dialog-footer-sFQf-2zD.js} +6 -5
  62. package/dist/chunks/{dialog-footer-GQWi8lfB.js.map → dialog-footer-sFQf-2zD.js.map} +1 -1
  63. package/dist/chunks/{dialog-header-c3qOMQfb.js → dialog-header-xIWIqfZK.js} +6 -5
  64. package/dist/chunks/{dialog-header-c3qOMQfb.js.map → dialog-header-xIWIqfZK.js.map} +1 -1
  65. package/dist/chunks/{dialogs-BmtLjMzg.js → dialogs-B3tHtjMf.js} +2 -2
  66. package/dist/chunks/{dialogs-BmtLjMzg.js.map → dialogs-B3tHtjMf.js.map} +1 -1
  67. package/dist/chunks/{dialogs-root-BcQo2XMF.js → dialogs-root-Lh2u-3Cs.js} +9 -8
  68. package/dist/chunks/{dialogs-root-BcQo2XMF.js.map → dialogs-root-Lh2u-3Cs.js.map} +1 -1
  69. package/dist/chunks/{error-state-BD4_Wrkz.js → error-state-DnsXVj1z.js} +11 -10
  70. package/dist/chunks/{error-state-BD4_Wrkz.js.map → error-state-DnsXVj1z.js.map} +1 -1
  71. package/dist/chunks/events-CXQHDCs2.js +8 -0
  72. package/dist/chunks/events-CXQHDCs2.js.map +1 -0
  73. package/dist/chunks/file-explorer-header-B6-Q0i6V.js +963 -0
  74. package/dist/chunks/file-explorer-header-B6-Q0i6V.js.map +1 -0
  75. package/dist/chunks/file-explorer-provider-B3gUBkHg.js +296 -0
  76. package/dist/chunks/file-explorer-provider-B3gUBkHg.js.map +1 -0
  77. package/dist/chunks/globe-CsCgZcy5.js +16 -0
  78. package/dist/chunks/globe-CsCgZcy5.js.map +1 -0
  79. package/dist/chunks/{guard-bTeM7wd7.js → guard-C39y81In.js} +11 -10
  80. package/dist/chunks/{guard-bTeM7wd7.js.map → guard-C39y81In.js.map} +1 -1
  81. package/dist/chunks/index.esm-C9oV3H3X.js +6 -0
  82. package/dist/chunks/index.esm-C9oV3H3X.js.map +1 -0
  83. package/dist/chunks/{input-Bz3l514j.js → input-Bi6ZBZQw.js} +12 -11
  84. package/dist/chunks/{input-Bz3l514j.js.map → input-Bi6ZBZQw.js.map} +1 -1
  85. package/dist/chunks/{jsonld-CnfzCyCn.js → jsonld-D-TE94B0.js} +2 -2
  86. package/dist/chunks/{jsonld-CnfzCyCn.js.map → jsonld-D-TE94B0.js.map} +1 -1
  87. package/dist/chunks/{login-button-Div4ZT4J.js → login-button-fo0P8vym.js} +10 -9
  88. package/dist/chunks/{login-button-Div4ZT4J.js.map → login-button-fo0P8vym.js.map} +1 -1
  89. package/dist/chunks/{logout-button-D3lqlnCX.js → logout-button-CF2YFgID.js} +10 -9
  90. package/dist/chunks/{logout-button-D3lqlnCX.js.map → logout-button-CF2YFgID.js.map} +1 -1
  91. package/dist/chunks/{menu-D0k2fkiE.js → menu-RumUciM-.js} +49 -47
  92. package/dist/chunks/{menu-D0k2fkiE.js.map → menu-RumUciM-.js.map} +1 -1
  93. package/dist/chunks/{menu-item-nfPpH4dN.js → menu-item-CVAZyipz.js} +11 -10
  94. package/dist/chunks/{menu-item-nfPpH4dN.js.map → menu-item-CVAZyipz.js.map} +1 -1
  95. package/dist/chunks/{photo-capture-hJaJm4TM.js → photo-capture-CAfo7y6-.js} +21 -20
  96. package/dist/chunks/photo-capture-CAfo7y6-.js.map +1 -0
  97. package/dist/chunks/{photo-capture-modal-BsHv6wmh.js → photo-capture-modal-DWmDE_Ws.js} +29 -28
  98. package/dist/chunks/{photo-capture-modal-BsHv6wmh.js.map → photo-capture-modal-DWmDE_Ws.js.map} +1 -1
  99. package/dist/chunks/provide-B5NeVMM_.js +111 -0
  100. package/dist/chunks/provide-B5NeVMM_.js.map +1 -0
  101. package/dist/chunks/{provider-Dcd1NPYx.js → provider-BbT2duMy.js} +11 -10
  102. package/dist/chunks/{provider-Dcd1NPYx.js.map → provider-BbT2duMy.js.map} +1 -1
  103. package/dist/chunks/{rdf-form-CmPnHKR-.js → rdf-form-CH9bDx98.js} +30 -29
  104. package/dist/chunks/{rdf-form-CmPnHKR-.js.map → rdf-form-CH9bDx98.js.map} +1 -1
  105. package/dist/chunks/{rdf-input-3AgoeCkJ.js → rdf-input-C_V0pIS5.js} +56 -55
  106. package/dist/chunks/{rdf-input-3AgoeCkJ.js.map → rdf-input-C_V0pIS5.js.map} +1 -1
  107. package/dist/chunks/{select-option-DQan7rcB.js → select-option-U4ALXL20.js} +8 -7
  108. package/dist/chunks/{select-option-DQan7rcB.js.map → select-option-U4ALXL20.js.map} +1 -1
  109. package/dist/chunks/{select-ClPkDkGl.js → select-y1Z6fwmh.js} +10 -9
  110. package/dist/chunks/{select-ClPkDkGl.js.map → select-y1Z6fwmh.js.map} +1 -1
  111. package/dist/chunks/{signup-button-2fAoS0Nv.js → signup-button-DicFpAjD.js} +10 -9
  112. package/dist/chunks/{signup-button-2fAoS0Nv.js.map → signup-button-DicFpAjD.js.map} +1 -1
  113. package/dist/chunks/{solid-emblem-DwLdkGuO.js → solid-emblem-CeCXTpve.js} +8 -7
  114. package/dist/chunks/{solid-emblem-DwLdkGuO.js.map → solid-emblem-CeCXTpve.js.map} +1 -1
  115. package/dist/chunks/{index.esm-CECfD0e9.js → solidLogicSingleton.esm-BXyHD7mn.js} +1210 -1161
  116. package/dist/chunks/solidLogicSingleton.esm-BXyHD7mn.js.map +1 -0
  117. package/dist/chunks/{src-Dx7k_VIe.js → src-Bhtor0ZC.js} +2311 -2282
  118. package/dist/chunks/src-Bhtor0ZC.js.map +1 -0
  119. package/dist/chunks/{style-w0Fl0xnd.js → style-CXaw5EYi.js} +9 -8
  120. package/dist/chunks/{style-w0Fl0xnd.js.map → style-CXaw5EYi.js.map} +1 -1
  121. package/dist/chunks/{widgets-BWpm5CPx.js → widgets-BBEQu0CS.js} +722 -721
  122. package/dist/chunks/{widgets-BWpm5CPx.js.map → widgets-BBEQu0CS.js.map} +1 -1
  123. package/dist/components/access-control-modal/AccessControlAddAccess.esm.js.map +1 -1
  124. package/dist/components/access-control-modal/AccessControlErrors.esm.js.map +1 -1
  125. package/dist/components/access-control-modal/AccessControlGeneralAccess.esm.js.map +1 -1
  126. package/dist/components/access-control-modal/AccessControlModal.cjs.js +1 -1
  127. package/dist/components/access-control-modal/AccessControlModal.cjs.js.map +1 -1
  128. package/dist/components/access-control-modal/AccessControlModal.esm.js +1 -1
  129. package/dist/components/access-control-modal/AccessControlModal.esm.js.map +1 -1
  130. package/dist/components/access-control-modal/AccessControlSharedAccess.esm.js.map +1 -1
  131. package/dist/components/access-control-modal.js +1 -1
  132. package/dist/components/account/Account.esm.js.map +1 -1
  133. package/dist/components/account.js +1 -1
  134. package/dist/components/all.cjs.js +1 -1
  135. package/dist/components/all.esm.js +3 -0
  136. package/dist/components/avatar.js +1 -1
  137. package/dist/components/button/Button.esm.js.map +1 -1
  138. package/dist/components/button.js +1 -1
  139. package/dist/components/combobox/Combobox.esm.js.map +1 -1
  140. package/dist/components/combobox-option/ComboboxOption.esm.js.map +1 -1
  141. package/dist/components/combobox-option.js +1 -1
  142. package/dist/components/combobox.js +1 -1
  143. package/dist/components/dialog/Dialog.esm.js.map +1 -1
  144. package/dist/components/dialog-content.js +1 -1
  145. package/dist/components/dialog-footer.js +1 -1
  146. package/dist/components/dialog-header.js +1 -1
  147. package/dist/components/dialog-provider/DialogProvider.esm.js.map +1 -1
  148. package/dist/components/dialog-provider.js +1 -1
  149. package/dist/components/dialog.js +1 -1
  150. package/dist/components/dialogs-root/DialogsRoot.esm.js.map +1 -1
  151. package/dist/components/dialogs-root.js +1 -1
  152. package/dist/components/error-state/ErrorState.esm.js.map +1 -1
  153. package/dist/components/error-state.js +1 -1
  154. package/dist/components/file-explorer-header/FileExplorerHeader.cjs.js +15 -0
  155. package/dist/components/file-explorer-header/FileExplorerHeader.cjs.js.map +1 -0
  156. package/dist/components/file-explorer-header/FileExplorerHeader.d.ts +20 -0
  157. package/dist/components/file-explorer-header/FileExplorerHeader.d.ts.map +1 -0
  158. package/dist/components/file-explorer-header/FileExplorerHeader.esm.js +309 -0
  159. package/dist/components/file-explorer-header/FileExplorerHeader.esm.js.map +1 -0
  160. package/dist/components/file-explorer-header/FileExplorerHeader.styles.cjs.js +2 -0
  161. package/dist/components/file-explorer-header/FileExplorerHeader.styles.cjs.js.map +1 -0
  162. package/dist/components/file-explorer-header/FileExplorerHeader.styles.esm.js +6 -0
  163. package/dist/components/file-explorer-header/FileExplorerHeader.styles.esm.js.map +1 -0
  164. package/dist/components/file-explorer-header/FileExplorerHeaderControls.cjs.js +35 -0
  165. package/dist/components/file-explorer-header/FileExplorerHeaderControls.cjs.js.map +1 -0
  166. package/dist/components/file-explorer-header/FileExplorerHeaderControls.d.ts +23 -0
  167. package/dist/components/file-explorer-header/FileExplorerHeaderControls.d.ts.map +1 -0
  168. package/dist/components/file-explorer-header/FileExplorerHeaderControls.esm.js +317 -0
  169. package/dist/components/file-explorer-header/FileExplorerHeaderControls.esm.js.map +1 -0
  170. package/dist/components/file-explorer-header/FileExplorerHeaderControls.styles.cjs.js +2 -0
  171. package/dist/components/file-explorer-header/FileExplorerHeaderControls.styles.cjs.js.map +1 -0
  172. package/dist/components/file-explorer-header/FileExplorerHeaderControls.styles.esm.js +6 -0
  173. package/dist/components/file-explorer-header/FileExplorerHeaderControls.styles.esm.js.map +1 -0
  174. package/dist/components/file-explorer-header/FileExplorerHeaderSummary.cjs.js +35 -0
  175. package/dist/components/file-explorer-header/FileExplorerHeaderSummary.cjs.js.map +1 -0
  176. package/dist/components/file-explorer-header/FileExplorerHeaderSummary.d.ts +22 -0
  177. package/dist/components/file-explorer-header/FileExplorerHeaderSummary.d.ts.map +1 -0
  178. package/dist/components/file-explorer-header/FileExplorerHeaderSummary.esm.js +355 -0
  179. package/dist/components/file-explorer-header/FileExplorerHeaderSummary.esm.js.map +1 -0
  180. package/dist/components/file-explorer-header/FileExplorerHeaderSummary.styles.cjs.js +2 -0
  181. package/dist/components/file-explorer-header/FileExplorerHeaderSummary.styles.cjs.js.map +1 -0
  182. package/dist/components/file-explorer-header/FileExplorerHeaderSummary.styles.esm.js +6 -0
  183. package/dist/components/file-explorer-header/FileExplorerHeaderSummary.styles.esm.js.map +1 -0
  184. package/dist/components/file-explorer-header/index.cjs.js +2 -0
  185. package/dist/components/file-explorer-header/index.cjs.js.map +1 -0
  186. package/dist/components/file-explorer-header/index.d.ts +4 -0
  187. package/dist/components/file-explorer-header/index.d.ts.map +1 -0
  188. package/dist/components/file-explorer-header/index.esm.js +6 -0
  189. package/dist/components/file-explorer-header/index.esm.js.map +1 -0
  190. package/dist/components/file-explorer-header/types.d.ts +11 -0
  191. package/dist/components/file-explorer-header/types.d.ts.map +1 -0
  192. package/dist/components/file-explorer-header.js +1 -0
  193. package/dist/components/file-explorer-provider/FileExplorerProvider.cjs.js +2 -0
  194. package/dist/components/file-explorer-provider/FileExplorerProvider.cjs.js.map +1 -0
  195. package/dist/components/file-explorer-provider/FileExplorerProvider.d.ts +17 -0
  196. package/dist/components/file-explorer-provider/FileExplorerProvider.d.ts.map +1 -0
  197. package/dist/components/file-explorer-provider/FileExplorerProvider.esm.js +296 -0
  198. package/dist/components/file-explorer-provider/FileExplorerProvider.esm.js.map +1 -0
  199. package/dist/components/file-explorer-provider/index.cjs.js +2 -0
  200. package/dist/components/file-explorer-provider/index.cjs.js.map +1 -0
  201. package/dist/components/file-explorer-provider/index.d.ts +4 -0
  202. package/dist/components/file-explorer-provider/index.d.ts.map +1 -0
  203. package/dist/components/file-explorer-provider/index.esm.js +6 -0
  204. package/dist/components/file-explorer-provider/index.esm.js.map +1 -0
  205. package/dist/components/file-explorer-provider.js +1 -0
  206. package/dist/components/guard.js +1 -1
  207. package/dist/components/index.cjs.js +1 -1
  208. package/dist/components/index.d.ts.map +1 -1
  209. package/dist/components/index.esm.js +1 -0
  210. package/dist/components/input/Input.esm.js.map +1 -1
  211. package/dist/components/input.js +1 -1
  212. package/dist/components/login-button.js +1 -1
  213. package/dist/components/login-modal/LoginModal.esm.js.map +1 -1
  214. package/dist/components/login-modal.js +1 -1
  215. package/dist/components/logout-button.js +1 -1
  216. package/dist/components/menu/Menu.esm.js.map +1 -1
  217. package/dist/components/menu-item/MenuItem.esm.js.map +1 -1
  218. package/dist/components/menu-item.js +1 -1
  219. package/dist/components/menu.js +1 -1
  220. package/dist/components/photo-capture/PhotoCapture.esm.js.map +1 -1
  221. package/dist/components/photo-capture-modal/PhotoCaptureModal.esm.js.map +1 -1
  222. package/dist/components/photo-capture-modal.js +1 -1
  223. package/dist/components/photo-capture.js +1 -1
  224. package/dist/components/provider/Provider.esm.js.map +1 -1
  225. package/dist/components/provider.js +1 -1
  226. package/dist/components/rdf-form/RDFForm.esm.js.map +1 -1
  227. package/dist/components/rdf-form.js +1 -1
  228. package/dist/components/rdf-input/RDFInput.esm.js.map +1 -1
  229. package/dist/components/rdf-input.js +1 -1
  230. package/dist/components/resource-actions-menu/DeleteResourceDialog.d.ts +8 -0
  231. package/dist/components/resource-actions-menu/DeleteResourceDialog.d.ts.map +1 -0
  232. package/dist/components/resource-actions-menu/ResourceActionsMenu.cjs.js +27 -0
  233. package/dist/components/resource-actions-menu/ResourceActionsMenu.cjs.js.map +1 -0
  234. package/dist/components/resource-actions-menu/ResourceActionsMenu.d.ts +23 -0
  235. package/dist/components/resource-actions-menu/ResourceActionsMenu.d.ts.map +1 -0
  236. package/dist/components/resource-actions-menu/ResourceActionsMenu.esm.js +343 -0
  237. package/dist/components/resource-actions-menu/ResourceActionsMenu.esm.js.map +1 -0
  238. package/dist/components/resource-actions-menu/ResourceActionsMenu.styles.cjs.js +2 -0
  239. package/dist/components/resource-actions-menu/ResourceActionsMenu.styles.cjs.js.map +1 -0
  240. package/dist/components/resource-actions-menu/ResourceActionsMenu.styles.esm.js +6 -0
  241. package/dist/components/resource-actions-menu/ResourceActionsMenu.styles.esm.js.map +1 -0
  242. package/dist/components/resource-actions-menu/ResourceActionsMenu.test.d.ts +1 -0
  243. package/dist/components/resource-actions-menu/ResourceActionsMenu.test.d.ts.map +1 -0
  244. package/dist/components/resource-actions-menu/index.cjs.js +1 -0
  245. package/dist/components/resource-actions-menu/index.d.ts +2 -0
  246. package/dist/components/resource-actions-menu/index.d.ts.map +1 -0
  247. package/dist/components/resource-actions-menu/index.esm.js +1 -0
  248. package/dist/components/resource-actions-menu.js +1 -0
  249. package/dist/components/select/Select.esm.js.map +1 -1
  250. package/dist/components/select-option/SelectOption.esm.js.map +1 -1
  251. package/dist/components/select-option.js +1 -1
  252. package/dist/components/select.js +1 -1
  253. package/dist/components/signup-button.js +1 -1
  254. package/dist/components/solid-emblem.js +1 -1
  255. package/dist/components.js +31 -28
  256. package/dist/index.cjs.js +1 -1
  257. package/dist/index.cjs.js.map +1 -1
  258. package/dist/index.d.ts +1 -1
  259. package/dist/index.d.ts.map +1 -1
  260. package/dist/index.esm.js +8 -4
  261. package/dist/index.esm.js.map +1 -1
  262. package/dist/index.js +12 -9
  263. package/dist/lib/context/noopContext.cjs.js +2 -0
  264. package/dist/lib/context/noopContext.cjs.js.map +1 -0
  265. package/dist/lib/context/noopContext.d.ts +2 -0
  266. package/dist/lib/context/noopContext.d.ts.map +1 -0
  267. package/dist/lib/context/noopContext.esm.js +18 -0
  268. package/dist/lib/context/noopContext.esm.js.map +1 -0
  269. package/dist/lib/file-explorer/compose-explorer.cjs.js +2 -0
  270. package/dist/lib/file-explorer/compose-explorer.cjs.js.map +1 -0
  271. package/dist/lib/file-explorer/compose-explorer.d.ts +17 -0
  272. package/dist/lib/file-explorer/compose-explorer.d.ts.map +1 -0
  273. package/dist/lib/file-explorer/compose-explorer.esm.js +18 -0
  274. package/dist/lib/file-explorer/compose-explorer.esm.js.map +1 -0
  275. package/dist/lib/file-explorer/context.cjs.js +1 -1
  276. package/dist/lib/file-explorer/context.cjs.js.map +1 -1
  277. package/dist/lib/file-explorer/context.d.ts +12 -14
  278. package/dist/lib/file-explorer/context.d.ts.map +1 -1
  279. package/dist/lib/file-explorer/context.esm.js +4 -3
  280. package/dist/lib/file-explorer/context.esm.js.map +1 -1
  281. package/dist/lib/file-explorer/events.cjs.js +2 -0
  282. package/dist/lib/file-explorer/events.cjs.js.map +1 -0
  283. package/dist/lib/file-explorer/events.d.ts +16 -0
  284. package/dist/lib/file-explorer/events.d.ts.map +1 -0
  285. package/dist/lib/file-explorer/events.esm.js +8 -0
  286. package/dist/lib/file-explorer/events.esm.js.map +1 -0
  287. package/dist/lib/file-explorer/index.cjs.js +1 -0
  288. package/dist/lib/file-explorer/index.d.ts +5 -0
  289. package/dist/lib/file-explorer/index.d.ts.map +1 -0
  290. package/dist/lib/file-explorer/index.esm.js +5 -0
  291. package/dist/lib/file-explorer/relevant-panes.cjs.js +2 -0
  292. package/dist/lib/file-explorer/relevant-panes.cjs.js.map +1 -0
  293. package/dist/lib/file-explorer/relevant-panes.d.ts +15 -0
  294. package/dist/lib/file-explorer/relevant-panes.d.ts.map +1 -0
  295. package/dist/lib/file-explorer/relevant-panes.esm.js +14 -0
  296. package/dist/lib/file-explorer/relevant-panes.esm.js.map +1 -0
  297. package/dist/loader.js +12 -9
  298. package/dist/solid-ui.js +211 -107
  299. package/dist/solid-ui.min.js +211 -107
  300. package/dist/solid-ui.min.js.map +1 -1
  301. package/dist/theme.css +1 -1
  302. package/dist/utils/podUtils.cjs.js +2 -0
  303. package/dist/utils/podUtils.cjs.js.map +1 -0
  304. package/dist/utils/podUtils.d.ts +6 -0
  305. package/dist/utils/podUtils.d.ts.map +1 -0
  306. package/dist/utils/podUtils.esm.js +22 -0
  307. package/dist/utils/podUtils.esm.js.map +1 -0
  308. package/dist/utils/webIdUtils.cjs.js +1 -0
  309. package/dist/utils/webIdUtils.d.ts +7 -0
  310. package/dist/utils/webIdUtils.d.ts.map +1 -0
  311. package/dist/utils/webIdUtils.esm.js +3 -0
  312. package/package.json +3 -3
  313. package/dist/chunks/DialogProvider-C89v7x0r.js +0 -314
  314. package/dist/chunks/DialogProvider-C89v7x0r.js.map +0 -1
  315. package/dist/chunks/access-control-modal-Dcg6-f4V.js.map +0 -1
  316. package/dist/chunks/chunk.UEBQI7VV-lcP-fpUk.js.map +0 -1
  317. package/dist/chunks/components-C8c2Ucm5.js.map +0 -1
  318. package/dist/chunks/index.esm-CECfD0e9.js.map +0 -1
  319. package/dist/chunks/photo-capture-hJaJm4TM.js.map +0 -1
  320. package/dist/chunks/src-Dx7k_VIe.js.map +0 -1
@@ -1 +1 @@
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
+ {"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","customElement","error","styles","customElement$1","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","_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. You can still change access for the folder or its contents separately below.</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 +1 @@
1
- {"version":3,"file":"AccessControlSharedAccess.esm.js","names":["customElement","WebComponent","html","property","state","ACCESS_ROLES","findImage","sym","styles","_classDecs","_AccessControlSharedA","_AccessControlSharedA2","_A","WeakMap","_B","_C","_ref","_accessGrantViewModelsDecs","attribute","_disabledDecs","type","Boolean","_searchValueDecs","_AccessControlSharedAccess","AccessControlSharedAccess","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_accessGrantViewModels","_init_disabled","_init_searchValue","_classPrivateFieldGet","accessGrantViewModels","v","_classPrivateFieldSet","disabled","searchValue","onSearchInput","event","target","currentTarget","value","onSearchSelect","option","detail","label","onAccessGrantRoleChange","id","accessRole","find","candidate","undefined","role","dispatchEvent","CustomEvent","bubbles","composed","getFilteredAccessGrants","query","trim","toLowerCase","filter","subjectLabel","subjects","length","includes","renderAccessGrant","entry","renderAuthorizationBadge","authorization","renderAuthorizationRole","badge","getAuthorizationBadge","kind","image","text","agent","getInitials","agentGroup","agentClass","origin","maxWords","parts","split","slice","initials","map","part","join","toUpperCase","renderGrantRoleOptions","render","accessGrants","e","c","_initClass","_applyDecs","_Class","_identity","_defineProperty","default","styles","WebComponent","AccessControlSharedAccess_styles_default","_Class","_AccessControlSharedAccess","_A","_B","_C","_initProto","_initClass","_classDecs","_accessGrantViewModelsDecs","_init_accessGrantViewModels","_disabledDecs","_init_disabled","_searchValueDecs","_init_searchValue","_AccessControlSharedA2","_ref","_classPrivateFieldInitSpec","a","_checkPrivateRedeclaration","_classPrivateFieldSet","s","_assertClassBrand","r","_classPrivateFieldGet","_defineProperty","_toPropertyKey","t","_applyDecs","i","n","o","c","applyDec","m","h","y","v","g","b","u","w","S","A","d","p","_setFunctionName","P","j","D","I","F","l","f","N","_checkInRHS","_toPrimitive","e","_identity","customElement","_AccessControlSharedA","property","state","args","target","event","option","value","accessRole","ACCESS_ROLES","candidate","detail","query","subjects","subjectLabel","entry","badge","authorization","agent","image","findImage","sym","agentClass","maxWords","part","role","id","accessGrants"],"sources":["../../../src/components/access-control-modal/AccessControlSharedAccess.ts"],"sourcesContent":["import { customElement, WebComponent } from '@/lib/components'\nimport { html } from 'lit'\nimport { property, state } from 'lit/decorators.js'\nimport { ACCESS_ROLES, type AccessRole } from 'solid-logic'\nimport { findImage } from '@/widgets'\nimport type { ComboboxChangeEvent } from '@/components/combobox'\nimport { sym } from 'rdflib'\n\nimport '@/components/combobox'\nimport '@/components/combobox-option'\nimport '~icons/lucide/globe'\n\nimport styles from './AccessControlSharedAccess.styles.css'\nimport type { AccessGrantRoleChangedDetail, AccessGrantViewModel } from './types'\n\n@customElement('solid-ui-access-control-shared-access')\nexport default class AccessControlSharedAccess extends WebComponent {\n static styles = styles\n\n @property({ attribute: false })\n accessor accessGrantViewModels: AccessGrantViewModel[] = []\n\n @property({ type: Boolean })\n accessor disabled = false\n\n @state()\n private accessor searchValue = ''\n\n private onSearchInput (event: Event) {\n const target = event.currentTarget as { value?: string | null } | null\n this.searchValue = typeof target?.value === 'string' ? target.value : ''\n }\n\n private onSearchSelect (event: ComboboxChangeEvent) {\n const option = event.detail.option\n if (typeof option.label !== 'string') {\n return\n }\n\n this.searchValue = option.label\n }\n\n private onAccessGrantRoleChange (id: string, event: ComboboxChangeEvent) {\n const value = event.detail.option.value\n const accessRole = typeof value === 'string'\n ? ACCESS_ROLES.find(candidate => candidate === value)\n : undefined\n if (!accessRole) {\n return\n }\n\n const detail: AccessGrantRoleChangedDetail = {\n id,\n role: accessRole\n }\n\n this.dispatchEvent(new CustomEvent<AccessGrantRoleChangedDetail>('access-grant-role-changed', {\n detail,\n bubbles: true,\n composed: true\n }))\n }\n\n private getFilteredAccessGrants () {\n const query = this.searchValue.trim().toLowerCase()\n\n return this.accessGrantViewModels.filter(({ subjectLabel, subjects }) => {\n if (!subjects.length) {\n return false\n }\n\n return !query || subjectLabel.toLowerCase().includes(query)\n })\n }\n\n private renderAccessGrant (entry: AccessGrantViewModel) {\n return html`\n <li>\n ${this.renderAuthorizationBadge(entry.authorization, entry.subjectLabel)}\n <h3>${entry.subjectLabel}</h3>\n ${this.renderAuthorizationRole(entry.role, entry.id)}\n </li>\n `\n }\n\n private renderAuthorizationBadge (authorization: AccessGrantViewModel['authorization'], subjectLabel: string) {\n const badge = this.getAuthorizationBadge(authorization, subjectLabel)\n\n return html`\n <div class=\"access-grants-image access-grants-image--${badge.kind}\">\n ${badge.image\n ? html`<img src=${badge.image} alt=\"\" aria-hidden=\"true\" />`\n : badge.kind === 'origin'\n ? html`<icon-lucide-globe aria-hidden=\"true\"></icon-lucide-globe>`\n : html`<span aria-hidden=\"true\">${badge.text}</span>`}\n </div>\n `\n }\n\n private getAuthorizationBadge (\n authorization: AccessGrantViewModel['authorization'],\n subjectLabel: string\n ) {\n const agent = authorization.agent[0]\n if (agent) {\n const image = findImage(sym(agent))\n return {\n kind: 'agent' as const,\n image,\n text: image ? '' : this.getInitials(subjectLabel, 2)\n }\n }\n\n const agentGroup = authorization.agentGroup[0]\n if (agentGroup) {\n return {\n kind: 'agentGroup' as const,\n text: this.getInitials(subjectLabel, 1)\n }\n }\n\n const agentClass = authorization.agentClass[0]\n if (agentClass) {\n const image = findImage(sym(agentClass))\n return {\n kind: 'agentClass' as const,\n image,\n text: image ? '' : this.getInitials(subjectLabel, 2)\n }\n }\n\n if (authorization.origin[0]) {\n return {\n kind: 'origin' as const,\n text: 'O',\n image: ''\n }\n }\n\n return {\n kind: 'unknown' as const,\n text: '?'\n }\n }\n\n private getInitials (value: string, maxWords = 2): string {\n const parts = value.split(/\\s+/).filter(Boolean).slice(0, maxWords)\n const initials = parts.map(part => part[0]).join('')\n return (initials || value.slice(0, maxWords)).toUpperCase()\n }\n\n private renderAuthorizationRole (role: AccessRole, id: string) {\n return html`\n <solid-ui-combobox\n class=\"access-role-select access-role-select--compact access-grants-role access-grants-role--editable ${role === 'Owner' ? 'access-grants-role--owner' : ''}\"\n .disabled=${this.disabled}\n .value=${role}\n @change=${(event: ComboboxChangeEvent) => this.onAccessGrantRoleChange(id, event)}\n >\n ${this.renderGrantRoleOptions()}\n </solid-ui-combobox>\n `\n }\n\n private renderGrantRoleOptions () {\n return ACCESS_ROLES.map(role => html`\n <solid-ui-combobox-option value=${role}>${role === 'No Access' ? 'Remove' : role}</solid-ui-combobox-option>\n `)\n }\n\n protected render () {\n const accessGrants = this.getFilteredAccessGrants()\n\n return html`\n <section aria-labelledby=\"access-grants-heading\">\n <div class=\"access-grants-header\">\n <h2 id=\"access-grants-heading\">Shared with</h2>\n <solid-ui-combobox\n class=\"access-grants-search-input\"\n label=\"Search access grants\"\n .srOnlyLabel=${true}\n .value=${this.searchValue}\n placeholder=\"Search\"\n @input=${this.onSearchInput}\n @change=${this.onSearchSelect}\n >\n ${this.accessGrantViewModels\n .filter(({ subjects }) => subjects.length > 0)\n .map(({ subjectLabel }) => html`\n <solid-ui-combobox-option .value=${subjectLabel}>\n ${subjectLabel}\n </solid-ui-combobox-option>\n `)}\n </solid-ui-combobox>\n </div>\n <div class=\"access-grants-list\">\n <ul>\n ${accessGrants.length > 0\n ? accessGrants.map(entry => this.renderAccessGrant(entry))\n : html`<li>No access grants</li>`}\n </ul>\n </div>\n </section>\n `\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAY2DS,IAAA,CAG1DT,EAAc,uCAAuC,CAAC;AAAA,IAAAU;AAAA,KAAAC,KAAAC,kBAAA,IAAAC,QAAA,GAAAC,kBAAA,IAAAD,QAAA,GAAAE,kBAAA,IAAAF,QAAA,GAAAG,KAAAC,IAIpDd,EAAS,EAAEe,WAAW,GAAM,CAAC,GAACC,IAG9BhB,EAAS,EAAEiB,MAAMC,QAAQ,CAAC,GAACC,IAG3BlB,EAAM,GAAC,0BAAAmB,IAVV,cACuDtB,EAAa;CAAAwB,YAAA,GAAAC,GAAA;EAOzCC,AAPyC,MAAA,GAAAD,CAAA,GAAAC,EAAA,MAAAf,IAAAgB,EAAA,IAAA,GAAAC,EAAA,MAIT,CAAA,CAAE,EAAA,GAAAF,EAAA,MAAAb,GAAAgB,EAAA,MAGvC,EAAK,CAAA,GAAAH,EAAA,MAAAZ,GAAAgB,EAAA,MAGM,EAAE,CAAA;CAAA;CAAA,KAAAf,KAAA;EAAA,OAAAgB,EAAApB,GAAA,IAAA;CAAA;CAAA,IANxBqB,sBAAqBC,GAAA;EAAAC,EAAAvB,GAAA,MAAAsB,CAAA;CAAA;CAAA,IAGrBE,WAAQ;EAAA,OAAAJ,EAAAlB,GAAA,IAAA;CAAA;CAAA,IAARsB,SAAQF,GAAA;EAAAC,EAAArB,GAAA,MAAAoB,CAAA;CAAA;CAAA,IAGAG,cAAW;EAAA,OAAAL,EAAAjB,GAAA,IAAA;CAAA;CAAA,IAAXsB,YAAWH,GAAA;EAAAC,EAAApB,GAAA,MAAAmB,CAAA;CAAA;CAEpBI,cAAeC,GAAc;EACnC,IAAMC,IAASD,EAAME;EACrB,KAAKJ,cAAc,OAAOG,GAAQE,SAAU,WAAWF,EAAOE,QAAQ;CACxE;CAEQC,eAAgBJ,GAA4B;EAClD,IAAMK,IAASL,EAAMM,OAAOD;EAC5B,AAAI,OAAOA,EAAOE,SAAU,aAI5B,KAAKT,cAAcO,EAAOE;CAC5B;CAEQC,wBAAyBC,GAAYT,GAA4B;EACvE,IAAMG,IAAQH,EAAMM,OAAOD,OAAOF,OAC5BO,IAAa,OAAOP,KAAU,WAChCrC,EAAa6C,MAAKC,MAAaA,MAAcT,CAAK,IAClDU,KAAAA;EACJ,IAAI,CAACH,GACH;EAGF,IAAMJ,IAAuC;GAC3CG;GACAK,MAAMJ;EACR;EAEA,KAAKK,cAAc,IAAIC,YAA0C,6BAA6B;GAC5FV;GACAW,SAAS;GACTC,UAAU;EACZ,CAAC,CAAC;CACJ;CAEQC,0BAA2B;EACjC,IAAMC,IAAQ,KAAKtB,YAAYuB,KAAK,CAAC,CAACC,YAAY;EAElD,OAAO,KAAK5B,sBAAsB6B,QAAQ,EAAEC,iBAAcC,kBACnDA,EAASC,SAIP,CAACN,KAASI,EAAaF,YAAY,CAAC,CAACK,SAASP,CAAK,IAHjD,EAIV;CACH;CAEQQ,kBAAmBC,GAA6B;EACtD,OAAOlE,CAAI;;UAEL,KAAKmE,yBAAyBD,EAAME,eAAeF,EAAML,YAAY,EAAC;cAClEK,EAAML,aAAY;UACtB,KAAKQ,wBAAwBH,EAAMf,MAAMe,EAAMpB,EAAE,EAAC;;;CAG1D;CAEQqB,yBAA0BC,GAAsDP,GAAsB;EAC5G,IAAMS,IAAQ,KAAKC,sBAAsBH,GAAeP,CAAY;EAEpE,OAAO7D,CAAI;6DAC8CsE,EAAME,KAAI;UAC7DF,EAAMG,QACJzE,CAAI,YAAYsE,EAAMG,MAAK,iCAC3BH,EAAME,SAAS,WACbxE,CAAI,+DACNA,CAAI,4BAA4BsE,EAAMI,KAAI,SAAS;;;CAG7D;CAEQH,sBACNH,GACAP,GACA;EACA,IAAMc,IAAQP,EAAcO,MAAM;EAClC,IAAIA,GAAO;GACT,IAAMF,IAAQrE,EAAUC,EAAIsE,CAAK,CAAC;GAClC,OAAO;IACLH,MAAM;IACNC;IACAC,MAAMD,IAAQ,KAAK,KAAKG,YAAYf,GAAc,CAAC;GACrD;EACF;EAGA,IADmBO,EAAcS,WAAW,IAE1C,OAAO;GACLL,MAAM;GACNE,MAAM,KAAKE,YAAYf,GAAc,CAAC;EACxC;EAGF,IAAMiB,IAAaV,EAAcU,WAAW;EAC5C,IAAIA,GAAY;GACd,IAAML,IAAQrE,EAAUC,EAAIyE,CAAU,CAAC;GACvC,OAAO;IACLN,MAAM;IACNC;IACAC,MAAMD,IAAQ,KAAK,KAAKG,YAAYf,GAAc,CAAC;GACrD;EACF;EAUA,OARIO,EAAcW,OAAO,KAChB;GACLP,MAAM;GACNE,MAAM;GACND,OAAO;EACT,IAGK;GACLD,MAAM;GACNE,MAAM;EACR;CACF;CAEQE,YAAapC,GAAewC,IAAW,GAAW;EAGxD,QAFcxC,EAAM0C,MAAM,KAAK,CAAC,CAACtB,OAAOzC,OAAO,CAAC,CAACgE,MAAM,GAAGH,CACzCC,CAAAA,CAAMI,KAAIC,MAAQA,EAAK,EAAE,CAAC,CAACC,KAAK,EACzCH,KAAY5C,EAAM2C,MAAM,GAAGH,CAAQ,EAAA,CAAGQ,YAAY;CAC5D;CAEQnB,wBAAyBlB,GAAkBL,GAAY;EAC7D,OAAO9C,CAAI;;gHAEiGmD,MAAS,UAAU,8BAA8B,GAAE;oBAC/I,KAAKjB,SAAQ;iBAChBiB,EAAI;mBACFd,MAA+B,KAAKQ,wBAAwBC,GAAIT,CAAK,EAAC;;UAE/E,KAAKoD,uBAAuB,EAAC;;;CAGrC;CAEQA,yBAA0B;EAChC,OAAOtF,EAAakF,KAAIlC,MAAQnD,CAAI;wCACAmD,EAAI,GAAIA,MAAS,cAAc,WAAWA,EAAI;KACjF;CACH;CAEUuC,SAAU;EAClB,IAAMC,IAAe,KAAKnC,wBAAwB;EAElD,OAAOxD,CAAI;;;;;;;2BAOY,GAAI;qBACV,KAAKmC,YAAW;;qBAEhB,KAAKC,cAAa;sBACjB,KAAKK,eAAc;;cAE3B,KAAKV,sBACJ6B,QAAQ,EAAEE,kBAAeA,EAASC,SAAS,CAAC,CAAC,CAC7CsB,KAAK,EAAExB,sBAAmB7D,CAAI;mDACM6D,EAAY;oBAC3CA,EAAY;;eAEjB,EAAC;;;;;cAKF8B,EAAa5B,SAAS,IACpB4B,EAAaN,KAAInB,MAAS,KAAKD,kBAAkBC,CAAK,CAAC,IACvDlE,CAAI,4BAA2B;;;;;CAK7C;AACF,GAAC,CAAA4F,GAAA,CAAAjE,GAAAC,GAAAC,GAAAH,IAAAmE,GAAA,CAAArF,GAAAsF,MAAAC,EAAA1E,GAAA;CAAA;EAAAN;EAAA;EAAA;CAAA;CAAA;EAAAE;EAAA;EAAA;CAAA;CAAA;EAAAG;EAAA;EAAA;CAAA;AAAA,GAAAb,GAAA,GAAA,KAAA,GA7LsDR,CAAY,GAAAsB,IAAA2E,IAAA,cAAAC,EAAA;CAAA1E,cAAA;EAAA,MAAAf,CAAA,GAAA0F,EAAA,MAAA,UACjD5F,CAAM,GAAAwF,EAAA;CAAA;AAAA,GAAAI,EAAAF,GAAAvF,GAAA,KAAA,CAAA,GAAAuF,GAAA"}
1
+ {"version":3,"file":"AccessControlSharedAccess.esm.js","names":["customElement","WebComponent","html","property","state","ACCESS_ROLES","findImage","sym","styles","_classDecs","_AccessControlSharedA","_AccessControlSharedA2","_A","WeakMap","_B","_C","_ref","_accessGrantViewModelsDecs","attribute","_disabledDecs","type","Boolean","_searchValueDecs","_AccessControlSharedAccess","AccessControlSharedAccess","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_accessGrantViewModels","_init_disabled","_init_searchValue","_classPrivateFieldGet","accessGrantViewModels","v","_classPrivateFieldSet","disabled","searchValue","onSearchInput","event","target","currentTarget","value","onSearchSelect","option","detail","label","onAccessGrantRoleChange","id","accessRole","find","candidate","undefined","role","dispatchEvent","CustomEvent","bubbles","composed","getFilteredAccessGrants","query","trim","toLowerCase","filter","subjectLabel","subjects","length","includes","renderAccessGrant","entry","renderAuthorizationBadge","authorization","renderAuthorizationRole","badge","getAuthorizationBadge","kind","image","text","agent","getInitials","agentGroup","agentClass","origin","maxWords","parts","split","slice","initials","map","part","join","toUpperCase","renderGrantRoleOptions","render","accessGrants","e","c","_initClass","_applyDecs","_Class","_identity","_defineProperty","default","customElement","styles","customElement$1","WebComponent","AccessControlSharedAccess_styles_default","_Class","_AccessControlSharedAccess","_A","_B","_C","_initProto","_initClass","_classDecs","_accessGrantViewModelsDecs","_init_accessGrantViewModels","_disabledDecs","_init_disabled","_searchValueDecs","_init_searchValue","_AccessControlSharedA2","_ref","_classPrivateFieldInitSpec","a","_checkPrivateRedeclaration","_classPrivateFieldSet","s","_assertClassBrand","r","_classPrivateFieldGet","_defineProperty","_toPropertyKey","t","_applyDecs","i","n","o","c","applyDec","m","h","y","v","g","b","u","w","S","A","d","p","_setFunctionName","P","j","D","I","F","l","f","N","_checkInRHS","_toPrimitive","e","_identity","_AccessControlSharedA","property","state","args","target","event","option","value","accessRole","ACCESS_ROLES","candidate","detail","query","subjects","subjectLabel","entry","badge","authorization","agent","image","findImage","sym","agentClass","maxWords","part","role","id","accessGrants"],"sources":["../../../src/components/access-control-modal/AccessControlSharedAccess.ts"],"sourcesContent":["import { customElement, WebComponent } from '@/lib/components'\nimport { html } from 'lit'\nimport { property, state } from 'lit/decorators.js'\nimport { ACCESS_ROLES, type AccessRole } from 'solid-logic'\nimport { findImage } from '@/widgets'\nimport type { ComboboxChangeEvent } from '@/components/combobox'\nimport { sym } from 'rdflib'\n\nimport '@/components/combobox'\nimport '@/components/combobox-option'\nimport '~icons/lucide/globe'\n\nimport styles from './AccessControlSharedAccess.styles.css'\nimport type { AccessGrantRoleChangedDetail, AccessGrantViewModel } from './types'\n\n@customElement('solid-ui-access-control-shared-access')\nexport default class AccessControlSharedAccess extends WebComponent {\n static styles = styles\n\n @property({ attribute: false })\n accessor accessGrantViewModels: AccessGrantViewModel[] = []\n\n @property({ type: Boolean })\n accessor disabled = false\n\n @state()\n private accessor searchValue = ''\n\n private onSearchInput (event: Event) {\n const target = event.currentTarget as { value?: string | null } | null\n this.searchValue = typeof target?.value === 'string' ? target.value : ''\n }\n\n private onSearchSelect (event: ComboboxChangeEvent) {\n const option = event.detail.option\n if (typeof option.label !== 'string') {\n return\n }\n\n this.searchValue = option.label\n }\n\n private onAccessGrantRoleChange (id: string, event: ComboboxChangeEvent) {\n const value = event.detail.option.value\n const accessRole = typeof value === 'string'\n ? ACCESS_ROLES.find(candidate => candidate === value)\n : undefined\n if (!accessRole) {\n return\n }\n\n const detail: AccessGrantRoleChangedDetail = {\n id,\n role: accessRole\n }\n\n this.dispatchEvent(new CustomEvent<AccessGrantRoleChangedDetail>('access-grant-role-changed', {\n detail,\n bubbles: true,\n composed: true\n }))\n }\n\n private getFilteredAccessGrants () {\n const query = this.searchValue.trim().toLowerCase()\n\n return this.accessGrantViewModels.filter(({ subjectLabel, subjects }) => {\n if (!subjects.length) {\n return false\n }\n\n return !query || subjectLabel.toLowerCase().includes(query)\n })\n }\n\n private renderAccessGrant (entry: AccessGrantViewModel) {\n return html`\n <li>\n ${this.renderAuthorizationBadge(entry.authorization, entry.subjectLabel)}\n <h3>${entry.subjectLabel}</h3>\n ${this.renderAuthorizationRole(entry.role, entry.id)}\n </li>\n `\n }\n\n private renderAuthorizationBadge (authorization: AccessGrantViewModel['authorization'], subjectLabel: string) {\n const badge = this.getAuthorizationBadge(authorization, subjectLabel)\n\n return html`\n <div class=\"access-grants-image access-grants-image--${badge.kind}\">\n ${badge.image\n ? html`<img src=${badge.image} alt=\"\" aria-hidden=\"true\" />`\n : badge.kind === 'origin'\n ? html`<icon-lucide-globe aria-hidden=\"true\"></icon-lucide-globe>`\n : html`<span aria-hidden=\"true\">${badge.text}</span>`}\n </div>\n `\n }\n\n private getAuthorizationBadge (\n authorization: AccessGrantViewModel['authorization'],\n subjectLabel: string\n ) {\n const agent = authorization.agent[0]\n if (agent) {\n const image = findImage(sym(agent))\n return {\n kind: 'agent' as const,\n image,\n text: image ? '' : this.getInitials(subjectLabel, 2)\n }\n }\n\n const agentGroup = authorization.agentGroup[0]\n if (agentGroup) {\n return {\n kind: 'agentGroup' as const,\n text: this.getInitials(subjectLabel, 1)\n }\n }\n\n const agentClass = authorization.agentClass[0]\n if (agentClass) {\n const image = findImage(sym(agentClass))\n return {\n kind: 'agentClass' as const,\n image,\n text: image ? '' : this.getInitials(subjectLabel, 2)\n }\n }\n\n if (authorization.origin[0]) {\n return {\n kind: 'origin' as const,\n text: 'O',\n image: ''\n }\n }\n\n return {\n kind: 'unknown' as const,\n text: '?'\n }\n }\n\n private getInitials (value: string, maxWords = 2): string {\n const parts = value.split(/\\s+/).filter(Boolean).slice(0, maxWords)\n const initials = parts.map(part => part[0]).join('')\n return (initials || value.slice(0, maxWords)).toUpperCase()\n }\n\n private renderAuthorizationRole (role: AccessRole, id: string) {\n return html`\n <solid-ui-combobox\n class=\"access-role-select access-role-select--compact access-grants-role access-grants-role--editable ${role === 'Owner' ? 'access-grants-role--owner' : ''}\"\n .disabled=${this.disabled}\n .value=${role}\n @change=${(event: ComboboxChangeEvent) => this.onAccessGrantRoleChange(id, event)}\n >\n ${this.renderGrantRoleOptions()}\n </solid-ui-combobox>\n `\n }\n\n private renderGrantRoleOptions () {\n return ACCESS_ROLES.map(role => html`\n <solid-ui-combobox-option value=${role}>${role === 'No Access' ? 'Remove' : role}</solid-ui-combobox-option>\n `)\n }\n\n protected render () {\n const accessGrants = this.getFilteredAccessGrants()\n\n return html`\n <section aria-labelledby=\"access-grants-heading\">\n <div class=\"access-grants-header\">\n <h2 id=\"access-grants-heading\">Shared with</h2>\n <solid-ui-combobox\n class=\"access-grants-search-input\"\n label=\"Search access grants\"\n .srOnlyLabel=${true}\n .value=${this.searchValue}\n placeholder=\"Search\"\n @input=${this.onSearchInput}\n @change=${this.onSearchSelect}\n >\n ${this.accessGrantViewModels\n .filter(({ subjects }) => subjects.length > 0)\n .map(({ subjectLabel }) => html`\n <solid-ui-combobox-option .value=${subjectLabel}>\n ${subjectLabel}\n </solid-ui-combobox-option>\n `)}\n </solid-ui-combobox>\n </div>\n <div class=\"access-grants-list\">\n <ul>\n ${accessGrants.length > 0\n ? accessGrants.map(entry => this.renderAccessGrant(entry))\n : html`<li>No access grants</li>`}\n </ul>\n </div>\n </section>\n `\n }\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- export { n as AccessControlModal, t as default } from "../chunks/access-control-modal-Dcg6-f4V.js";
1
+ export { n as AccessControlModal, t as default } from "../chunks/access-control-modal-CWH98HX3.js";
@@ -1 +1 @@
1
- {"version":3,"file":"Account.esm.js","names":["consume","html","nothing","property","customElement","WebComponent","authContext","DEFAULT_AUTH_CONTEXT","styles","_classDecs","_Account","_Account2","_A","WeakMap","_B","_ref","_menuItemsDecs","type","Array","_authDecs","context","subscribe","_Account3","Account","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_menuItems","_init_auth","_defineProperty","_classPrivateFieldGet","menuItems","v","_classPrivateFieldSet","auth","connectedCallback","unsubscribeSessionUpdated","onSessionUpdated","requestUpdate","disconnectedCallback","render","initialized","account","map","menuItem","href","selected","onSelected","label","e","c","_initClass","_applyDecs","_Class","_identity","initializing","component","loggedIn","default","styles","WebComponent","Account_styles_default","_Class","_Account3","_A","_B","_initProto","_initClass","_classDecs","_menuItemsDecs","_init_menuItems","_authDecs","_init_auth","_Account2","_ref","_classPrivateFieldInitSpec","a","_checkPrivateRedeclaration","_classPrivateFieldSet","s","_assertClassBrand","r","_classPrivateFieldGet","_defineProperty","_toPropertyKey","t","_applyDecs","i","n","o","c","applyDec","m","h","y","v","g","b","u","w","S","A","d","p","_setFunctionName","P","j","D","I","F","l","f","N","_checkInRHS","_toPrimitive","e","_identity","customElement","_Account","property","consume","authContext","args","DEFAULT_AUTH_CONTEXT","menuItem","nothing","component"],"sources":["../../../src/components/account/Account.ts"],"sourcesContent":["import { consume } from '@lit/context'\nimport { html, nothing, TemplateResult } from 'lit'\nimport { property } from 'lit/decorators.js'\nimport { customElement, WebComponent } from '@/lib/components'\nimport { authContext, AuthContext, DEFAULT_AUTH_CONTEXT } from '@/lib/auth'\n\nimport '@/components/avatar'\nimport '@/components/button'\nimport '@/components/login-button'\nimport '@/components/logout-button'\nimport '@/components/menu-item'\nimport '@/components/menu'\nimport '@/components/signup-button'\nimport '~icons/lucide/chevron-down'\nimport '~icons/lucide/log-in'\nimport '~icons/lucide/log-out'\nimport '~icons/lucide/user'\nimport '~icons/svg-spinners/180-ring'\n\nimport styles from './Account.styles.css'\n\nexport interface AccountMenuItem {\n label: string | TemplateResult\n href?: string\n selected?: boolean\n onSelected?(): void\n}\n\n@customElement('solid-ui-account')\nexport default class Account extends WebComponent {\n static styles = styles\n static states = {\n initializing: (component: Account) => !component.auth.initialized,\n loggedIn: (component: Account) => !!component.auth.account,\n }\n\n @property({ type: Array })\n accessor menuItems: AccountMenuItem[] = []\n\n @consume({ context: authContext, subscribe: true })\n private accessor auth: AuthContext = DEFAULT_AUTH_CONTEXT\n\n private unsubscribeSessionUpdated?: () => void\n\n connectedCallback () {\n super.connectedCallback()\n\n this.unsubscribeSessionUpdated = this.auth.onSessionUpdated(() => this.requestUpdate())\n }\n\n disconnectedCallback () {\n super.disconnectedCallback()\n\n this.unsubscribeSessionUpdated?.()\n }\n\n protected render () {\n if (!this.auth.initialized) {\n return html`\n <icon-svg-spinners-180-ring></icon-svg-spinners-180-ring>\n `\n }\n\n if (!this.auth.account) {\n return html`\n <solid-ui-login-button>\n <solid-ui-button slot=\"trigger\">\n <icon-lucide-user slot=\"left-icon\"></icon-lucide-user>\n Log In\n </solid-ui-button>\n </solid-ui-login-button>\n <solid-ui-signup-button>\n <solid-ui-button slot=\"trigger\" variant=\"outline\">\n <icon-lucide-log-in slot=\"left-icon\"></icon-lucide-log-in>\n Sign Up\n </solid-ui-button>\n </solid-ui-signup-button>\n `\n }\n\n return html`\n <solid-ui-menu placement=\"bottom-end\">\n <button type=\"button\" slot=\"trigger\">\n <solid-ui-avatar></solid-ui-avatar>\n <icon-lucide-chevron-down slot=\"right-icon\"></icon-lucide-chevron-down>\n </button>\n\n ${this.menuItems.map(menuItem => html`\n <solid-ui-menu-item .href=${menuItem.href ?? nothing} ?selected=${menuItem.selected} @solid-ui-select=${() => menuItem.onSelected?.()}>\n ${menuItem.label}\n </solid-ui-menu-item>\n `)}\n <solid-ui-logout-button>\n <solid-ui-menu-item slot=\"trigger\">\n <icon-lucide-log-out slot=\"left-icon\"></icon-lucide-log-out>\n Sign out\n </solid-ui-menu-item>\n </solid-ui-logout-button>\n </solid-ui-menu>\n `\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmByCS,IAAA,CASxCL,EAAc,kBAAkB,CAAC;AAAA,IAAAM;AAAA,KAAAC,KAAAC,kBAAA,IAAAC,QAAA,GAAAC,kBAAA,IAAAD,QAAA,GAAAE,KAAAC,IAQ/Bb,EAAS,EAAEc,MAAMC,MAAM,CAAC,GAACC,IAGzBnB,EAAQ;CAAEoB,SAASd;CAAae,WAAW;AAAK,CAAC,GAAC,cAAAC,IAXrD,cACqCjB,EAAa;CAAAmB,YAAA,GAAAC,GAAA;EAWSK,AAXT,MAAA,GAAAL,CAAA,GAAAC,EAAA,MAAAd,IAAAe,EAAA,IAAA,GAAAC,EAAA,MAQR,CAAA,CAAE,EAAA,GAAAF,EAAA,MAAAZ,GAAAe,EAAA,MAGLtB,CAAoB,CAAA,GAAAuB,EAAA,MAAA,6BAAA,KAAA,CAAA;CAAA;CAAA,KAAAf,KAAA;EAAA,OAAAgB,EAAAnB,GAAA,IAAA;CAAA;CAAA,IAHhDoB,UAASC,GAAA;EAAAC,EAAAtB,GAAA,MAAAqB,CAAA;CAAA;CAAA,IAGDE,OAAI;EAAA,OAAAJ,EAAAjB,GAAA,IAAA;CAAA;CAAA,IAAJqB,KAAIF,GAAA;EAAAC,EAAApB,GAAA,MAAAmB,CAAA;CAAA;CAIrBG,oBAAqB;EAGnB,AAFA,MAAMA,kBAAkB,GAExB,KAAKC,4BAA4B,KAAKF,KAAKG,uBAAuB,KAAKC,cAAc,CAAC;CACxF;CAEAC,uBAAwB;EAGtB,AAFA,MAAMA,qBAAqB,GAE3B,KAAKH,4BAA4B;CACnC;CAEUI,SAAU;EAwBlB,OAvBK,KAAKN,KAAKO,cAMV,KAAKP,KAAKQ,UAiBR1C,CAAI;;;;;;;cAOD,KAAK+B,UAAUY,KAAIC,MAAY5C,CAAI;4CACL4C,EAASC,QAAQ5C,EAAO,aAAc2C,EAASE,SAAQ,0BAA2BF,EAASG,aAAa,EAAC;sBAC/HH,EAASI,MAAK;;aAEvB,EAAC;;;;;;;;QA3BDhD,CAAI;;;;;;;;;;;;;UANJA,CAAI;;;CA0Cf;AACF,GAAC,CAAAiD,GAAA,CAAAtB,GAAAC,GAAAF,IAAAwB,GAAA,CAAAzC,GAAA0C,MAAAC,EAAA/B,GAAA,CAAA;CAAAN;CAAA;CAAA;AAAA,GAAA;CAAAG;CAAA;CAAA;AAAA,CAAA,GAAAV,GAAA,GAAA,KAAA,GAxEoCJ,CAAY,GAAAiB,IAAAgC,IAAA,cAAAC,EAAA;CAAA/B,cAAA;EAAA,MAAAd,CAAA,GAAAoB,EAAA,MAAA,UAC/BtB,CAAM,GAAAsB,EAAA,MAAA,UACN;GACd0B,eAAeC,MAAuB,CAACA,EAAUtB,KAAKO;GACtDgB,WAAWD,MAAuB,CAAC,CAACA,EAAUtB,KAAKQ;EACrD,CAAC,GAAAS,EAAA;CAAA;AAAA,GAAAtB,EAAAwB,GAAA3C,GAAA,KAAA,CAAA,GAAA2C,GAAA"}
1
+ {"version":3,"file":"Account.esm.js","names":["consume","html","nothing","property","customElement","WebComponent","authContext","DEFAULT_AUTH_CONTEXT","styles","_classDecs","_Account","_Account2","_A","WeakMap","_B","_ref","_menuItemsDecs","type","Array","_authDecs","context","subscribe","_Account3","Account","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_menuItems","_init_auth","_defineProperty","_classPrivateFieldGet","menuItems","v","_classPrivateFieldSet","auth","connectedCallback","unsubscribeSessionUpdated","onSessionUpdated","requestUpdate","disconnectedCallback","render","initialized","account","map","menuItem","href","selected","onSelected","label","e","c","_initClass","_applyDecs","_Class","_identity","initializing","component","loggedIn","default","customElement","styles","customElement$1","WebComponent","Account_styles_default","_Class","_Account3","_A","_B","_initProto","_initClass","_classDecs","_menuItemsDecs","_init_menuItems","_authDecs","_init_auth","_Account2","_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","_Account","property","consume","authContext","args","DEFAULT_AUTH_CONTEXT","menuItem","nothing","component"],"sources":["../../../src/components/account/Account.ts"],"sourcesContent":["import { consume } from '@lit/context'\nimport { html, nothing, TemplateResult } from 'lit'\nimport { property } from 'lit/decorators.js'\nimport { customElement, WebComponent } from '@/lib/components'\nimport { authContext, AuthContext, DEFAULT_AUTH_CONTEXT } from '@/lib/auth'\n\nimport '@/components/avatar'\nimport '@/components/button'\nimport '@/components/login-button'\nimport '@/components/logout-button'\nimport '@/components/menu-item'\nimport '@/components/menu'\nimport '@/components/signup-button'\nimport '~icons/lucide/chevron-down'\nimport '~icons/lucide/log-in'\nimport '~icons/lucide/log-out'\nimport '~icons/lucide/user'\nimport '~icons/svg-spinners/180-ring'\n\nimport styles from './Account.styles.css'\n\nexport interface AccountMenuItem {\n label: string | TemplateResult\n href?: string\n selected?: boolean\n onSelected?(): void\n}\n\n@customElement('solid-ui-account')\nexport default class Account extends WebComponent {\n static styles = styles\n static states = {\n initializing: (component: Account) => !component.auth.initialized,\n loggedIn: (component: Account) => !!component.auth.account,\n }\n\n @property({ type: Array })\n accessor menuItems: AccountMenuItem[] = []\n\n @consume({ context: authContext, subscribe: true })\n private accessor auth: AuthContext = DEFAULT_AUTH_CONTEXT\n\n private unsubscribeSessionUpdated?: () => void\n\n connectedCallback () {\n super.connectedCallback()\n\n this.unsubscribeSessionUpdated = this.auth.onSessionUpdated(() => this.requestUpdate())\n }\n\n disconnectedCallback () {\n super.disconnectedCallback()\n\n this.unsubscribeSessionUpdated?.()\n }\n\n protected render () {\n if (!this.auth.initialized) {\n return html`\n <icon-svg-spinners-180-ring></icon-svg-spinners-180-ring>\n `\n }\n\n if (!this.auth.account) {\n return html`\n <solid-ui-login-button>\n <solid-ui-button slot=\"trigger\">\n <icon-lucide-user slot=\"left-icon\"></icon-lucide-user>\n Log In\n </solid-ui-button>\n </solid-ui-login-button>\n <solid-ui-signup-button>\n <solid-ui-button slot=\"trigger\" variant=\"outline\">\n <icon-lucide-log-in slot=\"left-icon\"></icon-lucide-log-in>\n Sign Up\n </solid-ui-button>\n </solid-ui-signup-button>\n `\n }\n\n return html`\n <solid-ui-menu placement=\"bottom-end\">\n <button type=\"button\" slot=\"trigger\">\n <solid-ui-avatar></solid-ui-avatar>\n <icon-lucide-chevron-down slot=\"right-icon\"></icon-lucide-chevron-down>\n </button>\n\n ${this.menuItems.map(menuItem => html`\n <solid-ui-menu-item .href=${menuItem.href ?? nothing} ?selected=${menuItem.selected} @solid-ui-select=${() => menuItem.onSelected?.()}>\n ${menuItem.label}\n </solid-ui-menu-item>\n `)}\n <solid-ui-logout-button>\n <solid-ui-menu-item slot=\"trigger\">\n <icon-lucide-log-out slot=\"left-icon\"></icon-lucide-log-out>\n Sign out\n </solid-ui-menu-item>\n </solid-ui-logout-button>\n </solid-ui-menu>\n `\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmByCS,IAAA,CASxCL,EAAc,kBAAkB,CAAC;AAAA,IAAAM;AAAA,KAAAC,KAAAC,kBAAA,IAAAC,QAAA,GAAAC,kBAAA,IAAAD,QAAA,GAAAE,KAAAC,IAQ/Bb,EAAS,EAAEc,MAAMC,MAAM,CAAC,GAACC,IAGzBnB,EAAQ;CAAEoB,SAASd;CAAae,WAAW;AAAK,CAAC,GAAC,cAAAC,IAXrD,cACqCjB,EAAa;CAAAmB,YAAA,GAAAC,GAAA;EAWSK,AAXT,MAAA,GAAAL,CAAA,GAAAC,EAAA,MAAAd,IAAAe,EAAA,IAAA,GAAAC,EAAA,MAQR,CAAA,CAAE,EAAA,GAAAF,EAAA,MAAAZ,GAAAe,EAAA,MAGLtB,CAAoB,CAAA,GAAAuB,EAAA,MAAA,6BAAA,KAAA,CAAA;CAAA;CAAA,KAAAf,KAAA;EAAA,OAAAgB,EAAAnB,GAAA,IAAA;CAAA;CAAA,IAHhDoB,UAASC,GAAA;EAAAC,EAAAtB,GAAA,MAAAqB,CAAA;CAAA;CAAA,IAGDE,OAAI;EAAA,OAAAJ,EAAAjB,GAAA,IAAA;CAAA;CAAA,IAAJqB,KAAIF,GAAA;EAAAC,EAAApB,GAAA,MAAAmB,CAAA;CAAA;CAIrBG,oBAAqB;EAGnB,AAFA,MAAMA,kBAAkB,GAExB,KAAKC,4BAA4B,KAAKF,KAAKG,uBAAuB,KAAKC,cAAc,CAAC;CACxF;CAEAC,uBAAwB;EAGtB,AAFA,MAAMA,qBAAqB,GAE3B,KAAKH,4BAA4B;CACnC;CAEUI,SAAU;EAwBlB,OAvBK,KAAKN,KAAKO,cAMV,KAAKP,KAAKQ,UAiBR1C,CAAI;;;;;;;cAOD,KAAK+B,UAAUY,KAAIC,MAAY5C,CAAI;4CACL4C,EAASC,QAAQ5C,EAAO,aAAc2C,EAASE,SAAQ,0BAA2BF,EAASG,aAAa,EAAC;sBAC/HH,EAASI,MAAK;;aAEvB,EAAC;;;;;;;;QA3BDhD,CAAI;;;;;;;;;;;;;UANJA,CAAI;;;CA0Cf;AACF,GAAC,CAAAiD,GAAA,CAAAtB,GAAAC,GAAAF,IAAAwB,GAAA,CAAAzC,GAAA0C,MAAAC,EAAA/B,GAAA,CAAA;CAAAN;CAAA;CAAA;AAAA,GAAA;CAAAG;CAAA;CAAA;AAAA,CAAA,GAAAV,GAAA,GAAA,KAAA,GAxEoCJ,CAAY,GAAAiB,IAAAgC,IAAA,cAAAC,EAAA;CAAA/B,cAAA;EAAA,MAAAd,CAAA,GAAAoB,EAAA,MAAA,UAC/BtB,CAAM,GAAAsB,EAAA,MAAA,UACN;GACd0B,eAAeC,MAAuB,CAACA,EAAUtB,KAAKO;GACtDgB,WAAWD,MAAuB,CAAC,CAACA,EAAUtB,KAAKQ;EACrD,CAAC,GAAAS,EAAA;CAAA;AAAA,GAAAtB,EAAAwB,GAAA3C,GAAA,KAAA,CAAA,GAAA2C,GAAA"}
@@ -1 +1 @@
1
- export { n as Account, t as default } from "../chunks/account-D6JK-n7u.js";
1
+ export { n as Account, t as default } from "../chunks/account-Cocvv0H3.js";
@@ -1 +1 @@
1
- require("./dialog-header/index.cjs.js"),require("./button/index.cjs.js"),require("./dialog/index.cjs.js"),require("./dialog-content/index.cjs.js"),require("./dialog-footer/index.cjs.js"),require("./combobox/index.cjs.js"),require("./combobox-option/index.cjs.js"),require("./login-modal/index.cjs.js"),require("./dialogs-root/index.cjs.js"),require("./error-state/index.cjs.js"),require("./access-control-modal/index.cjs.js"),require("./avatar/index.cjs.js"),require("./login-button/index.cjs.js"),require("./logout-button/index.cjs.js"),require("./menu-item/index.cjs.js"),require("./menu/index.cjs.js"),require("./signup-button/index.cjs.js"),require("./account/index.cjs.js"),require("./dialog-provider/index.cjs.js"),require("./guard/index.cjs.js"),require("./input/index.cjs.js"),require("./photo-capture-modal/index.cjs.js"),require("./photo-capture/index.cjs.js"),require("./rdf-input/index.cjs.js"),require("./rdf-form/index.cjs.js"),require("./select/index.cjs.js"),require("./select-option/index.cjs.js"),require("./solid-emblem/index.cjs.js");
1
+ require("./dialog-header/index.cjs.js"),require("./button/index.cjs.js"),require("./dialog/index.cjs.js"),require("./dialog-content/index.cjs.js"),require("./dialog-footer/index.cjs.js"),require("./combobox/index.cjs.js"),require("./combobox-option/index.cjs.js"),require("./login-modal/index.cjs.js"),require("./dialogs-root/index.cjs.js"),require("./file-explorer-provider/index.cjs.js"),require("./error-state/index.cjs.js"),require("./access-control-modal/index.cjs.js"),require("./avatar/index.cjs.js"),require("./login-button/index.cjs.js"),require("./logout-button/index.cjs.js"),require("./menu-item/index.cjs.js"),require("./menu/index.cjs.js"),require("./signup-button/index.cjs.js"),require("./account/index.cjs.js"),require("./dialog-provider/index.cjs.js"),require("./file-explorer-header/index.cjs.js"),require("./guard/index.cjs.js"),require("./input/index.cjs.js"),require("./photo-capture-modal/index.cjs.js"),require("./photo-capture/index.cjs.js"),require("./rdf-input/index.cjs.js"),require("./rdf-form/index.cjs.js"),require("./resource-actions-menu/index.cjs.js"),require("./select/index.cjs.js"),require("./select-option/index.cjs.js"),require("./solid-emblem/index.cjs.js");
@@ -7,6 +7,7 @@ import "./combobox/index.esm.js";
7
7
  import "./combobox-option/index.esm.js";
8
8
  import "./login-modal/index.esm.js";
9
9
  import "./dialogs-root/index.esm.js";
10
+ import "./file-explorer-provider/index.esm.js";
10
11
  import "./error-state/index.esm.js";
11
12
  import "./access-control-modal/index.esm.js";
12
13
  import "./avatar/index.esm.js";
@@ -17,12 +18,14 @@ import "./menu/index.esm.js";
17
18
  import "./signup-button/index.esm.js";
18
19
  import "./account/index.esm.js";
19
20
  import "./dialog-provider/index.esm.js";
21
+ import "./file-explorer-header/index.esm.js";
20
22
  import "./guard/index.esm.js";
21
23
  import "./input/index.esm.js";
22
24
  import "./photo-capture-modal/index.esm.js";
23
25
  import "./photo-capture/index.esm.js";
24
26
  import "./rdf-input/index.esm.js";
25
27
  import "./rdf-form/index.esm.js";
28
+ import "./resource-actions-menu/index.esm.js";
26
29
  import "./select/index.esm.js";
27
30
  import "./select-option/index.esm.js";
28
31
  import "./solid-emblem/index.esm.js";
@@ -1 +1 @@
1
- export { n as Avatar, t as default } from "../chunks/avatar-BR3COVSQ.js";
1
+ export { n as Avatar, t as default } from "../chunks/avatar-DeotTinS.js";
@@ -1 +1 @@
1
- {"version":3,"file":"Button.esm.js","names":["customElement","WebComponent","html","nothing","property","styles","BUTTON_VARIANTS","_classDecs","_Button","_Button2","_A","WeakMap","_B","_C","_D","_ref","_variantDecs","type","String","reflect","_typeDecs","_disabledDecs","Boolean","_loadingDecs","_Button3","Button","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_variant","_init_type","_init_disabled","undefined","_init_loading","_classPrivateFieldGet","variant","v","_classPrivateFieldSet","disabled","loading","render","onClick","onIconSlotChange","e","slot","target","toggleAttribute","assignedElements","length","getInternals","form","requestSubmit","reset","c","_initClass","_applyDecs","_Class","_identity","_defineProperty","default","styles","WebComponent","Button_styles_default","_Class","_Button3","_A","_B","_C","_D","_initProto","_initClass","_classDecs","_variantDecs","_init_variant","_typeDecs","_init_type","_disabledDecs","_init_disabled","_loadingDecs","_init_loading","_Button2","_ref","_classPrivateFieldInitSpec","a","_checkPrivateRedeclaration","_classPrivateFieldSet","s","_assertClassBrand","r","_classPrivateFieldGet","_defineProperty","_toPropertyKey","t","_applyDecs","i","n","o","c","applyDec","m","h","y","v","g","b","u","w","S","A","d","p","_setFunctionName","P","j","D","I","F","l","f","N","_checkInRHS","_toPrimitive","e","_identity","BUTTON_VARIANTS","customElement","_Button","property","args","disabled","nothing","slot"],"sources":["../../../src/components/button/Button.ts"],"sourcesContent":["import { customElement, WebComponent } from '@/lib/components'\nimport { html, nothing } from 'lit'\nimport { property } from 'lit/decorators.js'\n\nimport '~icons/svg-spinners/180-ring'\n\nimport styles from './Button.styles.css'\n\nexport const BUTTON_VARIANTS = ['primary', 'secondary', 'tertiary', 'outline', 'ghost'] as const\nexport type ButtonVariant = typeof BUTTON_VARIANTS[number]\n\n@customElement('solid-ui-button')\nexport default class Button extends WebComponent {\n static styles = styles\n static formAssociated = true\n\n @property({ type: String, reflect: true })\n accessor variant: ButtonVariant = 'primary'\n\n @property({ type: String, reflect: true })\n accessor type = 'button'\n\n @property({ type: Boolean })\n accessor disabled: boolean | undefined = undefined\n\n @property({ type: Boolean })\n accessor loading = false\n\n render () {\n const disabled = this.disabled ?? this.loading\n\n return html`\n <button type=${this.type} ?disabled=${disabled} @click=${this.onClick}>\n ${this.loading ? html`<icon-svg-spinners-180-ring></icon-svg-spinners-180-ring>` : nothing}\n <slot name=\"left-icon\"></slot>\n <slot @slotchange=${this.onIconSlotChange} name=\"icon\"></slot>\n <slot></slot>\n <slot name=\"right-icon\"></slot>\n </button>\n `\n }\n\n private onIconSlotChange (e: Event) {\n const slot = e.target as HTMLSlotElement\n\n this.toggleAttribute('data-has-icon-slot', slot.assignedElements().length > 0)\n }\n\n private onClick () {\n switch (this.type) {\n case 'submit':\n this.getInternals().form?.requestSubmit()\n break\n case 'reset':\n this.getInternals().form?.reset()\n break\n }\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"Button.esm.js","names":["customElement","WebComponent","html","nothing","property","styles","BUTTON_VARIANTS","_classDecs","_Button","_Button2","_A","WeakMap","_B","_C","_D","_ref","_variantDecs","type","String","reflect","_typeDecs","_disabledDecs","Boolean","_loadingDecs","_Button3","Button","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_variant","_init_type","_init_disabled","undefined","_init_loading","_classPrivateFieldGet","variant","v","_classPrivateFieldSet","disabled","loading","render","onClick","onIconSlotChange","e","slot","target","toggleAttribute","assignedElements","length","getInternals","form","requestSubmit","reset","c","_initClass","_applyDecs","_Class","_identity","_defineProperty","default","customElement","styles","customElement$1","WebComponent","Button_styles_default","_Class","_Button3","_A","_B","_C","_D","_initProto","_initClass","_classDecs","_variantDecs","_init_variant","_typeDecs","_init_type","_disabledDecs","_init_disabled","_loadingDecs","_init_loading","_Button2","_ref","_classPrivateFieldInitSpec","a","_checkPrivateRedeclaration","_classPrivateFieldSet","s","_assertClassBrand","r","_classPrivateFieldGet","_defineProperty","_toPropertyKey","t","_applyDecs","i","n","o","c","applyDec","m","h","y","v","g","b","u","w","S","A","d","p","_setFunctionName","P","j","D","I","F","l","f","N","_checkInRHS","_toPrimitive","e","_identity","BUTTON_VARIANTS","_Button","property","args","disabled","nothing","slot"],"sources":["../../../src/components/button/Button.ts"],"sourcesContent":["import { customElement, WebComponent } from '@/lib/components'\nimport { html, nothing } from 'lit'\nimport { property } from 'lit/decorators.js'\n\nimport '~icons/svg-spinners/180-ring'\n\nimport styles from './Button.styles.css'\n\nexport const BUTTON_VARIANTS = ['primary', 'secondary', 'tertiary', 'outline', 'ghost'] as const\nexport type ButtonVariant = typeof BUTTON_VARIANTS[number]\n\n@customElement('solid-ui-button')\nexport default class Button extends WebComponent {\n static styles = styles\n static formAssociated = true\n\n @property({ type: String, reflect: true })\n accessor variant: ButtonVariant = 'primary'\n\n @property({ type: String, reflect: true })\n accessor type = 'button'\n\n @property({ type: Boolean })\n accessor disabled: boolean | undefined = undefined\n\n @property({ type: Boolean })\n accessor loading = false\n\n render () {\n const disabled = this.disabled ?? this.loading\n\n return html`\n <button type=${this.type} ?disabled=${disabled} @click=${this.onClick}>\n ${this.loading ? html`<icon-svg-spinners-180-ring></icon-svg-spinners-180-ring>` : nothing}\n <slot name=\"left-icon\"></slot>\n <slot @slotchange=${this.onIconSlotChange} name=\"icon\"></slot>\n <slot></slot>\n <slot name=\"right-icon\"></slot>\n </button>\n `\n }\n\n private onIconSlotChange (e: Event) {\n const slot = e.target as HTMLSlotElement\n\n this.toggleAttribute('data-has-icon-slot', slot.assignedElements().length > 0)\n }\n\n private onClick () {\n switch (this.type) {\n case 'submit':\n this.getInternals().form?.requestSubmit()\n break\n case 'reset':\n this.getInternals().form?.reset()\n break\n }\n }\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- export { n as BUTTON_VARIANTS, r as Button, t as default } from "../chunks/button-D6qO2idW.js";
1
+ export { n as BUTTON_VARIANTS, r as Button, t as default } from "../chunks/button-Dy1aFjqG.js";