solid-ui 3.1.0 → 3.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (242) hide show
  1. package/README.md +22 -4
  2. package/dist/components/button/index.d.ts +1 -0
  3. package/dist/components/button/index.esm.js +546 -0
  4. package/dist/components/button/index.esm.js.map +1 -0
  5. package/dist/components/button/index.esm.min.js +268 -0
  6. package/dist/components/button/index.esm.min.js.map +1 -0
  7. package/dist/components/button/index.js +428 -0
  8. package/dist/components/button/index.js.map +1 -0
  9. package/dist/components/button/index.min.js +257 -0
  10. package/dist/components/button/index.min.js.map +1 -0
  11. package/dist/components/combobox/index.d.ts +1 -0
  12. package/dist/components/combobox/index.esm.js +953 -0
  13. package/dist/components/combobox/index.esm.js.map +1 -0
  14. package/dist/components/combobox/index.esm.min.js +339 -0
  15. package/dist/components/combobox/index.esm.min.js.map +1 -0
  16. package/dist/components/combobox/index.js +782 -0
  17. package/dist/components/combobox/index.js.map +1 -0
  18. package/dist/components/combobox/index.min.js +328 -0
  19. package/dist/components/combobox/index.min.js.map +1 -0
  20. package/dist/components/footer/index.d.ts +1 -1
  21. package/dist/components/footer/index.esm.js +105 -63
  22. package/dist/components/footer/index.esm.js.map +1 -1
  23. package/dist/components/footer/index.esm.min.js +4 -4
  24. package/dist/components/footer/index.esm.min.js.map +1 -1
  25. package/dist/components/footer/index.js +103 -52
  26. package/dist/components/footer/index.js.map +1 -1
  27. package/dist/components/footer/index.min.js +8 -8
  28. package/dist/components/footer/index.min.js.map +1 -1
  29. package/dist/components/header/index.d.ts +1 -1
  30. package/dist/components/header/index.esm.js +1405 -1363
  31. package/dist/components/header/index.esm.js.map +1 -1
  32. package/dist/components/header/index.esm.min.js +857 -815
  33. package/dist/components/header/index.esm.min.js.map +1 -1
  34. package/dist/components/header/index.js +61 -19
  35. package/dist/components/header/index.js.map +1 -1
  36. package/dist/components/header/index.min.js +53 -11
  37. package/dist/components/header/index.min.js.map +1 -1
  38. package/dist/components/loginButton/index.d.ts +1 -1
  39. package/dist/components/loginButton/index.esm.js +50 -8
  40. package/dist/components/loginButton/index.esm.js.map +1 -1
  41. package/dist/components/loginButton/index.esm.min.js +60 -18
  42. package/dist/components/loginButton/index.esm.min.js.map +1 -1
  43. package/dist/components/loginButton/index.js +49 -7
  44. package/dist/components/loginButton/index.js.map +1 -1
  45. package/dist/components/loginButton/index.min.js +58 -16
  46. package/dist/components/loginButton/index.min.js.map +1 -1
  47. package/dist/components/photoCapture/index.d.ts +1 -0
  48. package/dist/components/photoCapture/index.esm.js +966 -0
  49. package/dist/components/photoCapture/index.esm.js.map +1 -0
  50. package/dist/components/photoCapture/index.esm.min.js +304 -0
  51. package/dist/components/photoCapture/index.esm.min.js.map +1 -0
  52. package/dist/components/photoCapture/index.js +848 -0
  53. package/dist/components/photoCapture/index.js.map +1 -0
  54. package/dist/components/photoCapture/index.min.js +293 -0
  55. package/dist/components/photoCapture/index.min.js.map +1 -0
  56. package/dist/components/select/index.d.ts +1 -0
  57. package/dist/components/select/index.esm.js +939 -0
  58. package/dist/components/select/index.esm.js.map +1 -0
  59. package/dist/components/select/index.esm.min.js +370 -0
  60. package/dist/components/select/index.esm.min.js.map +1 -0
  61. package/dist/components/select/index.js +771 -0
  62. package/dist/components/select/index.js.map +1 -0
  63. package/dist/components/select/index.min.js +359 -0
  64. package/dist/components/select/index.min.js.map +1 -0
  65. package/dist/components/signupButton/index.d.ts +1 -1
  66. package/dist/components/signupButton/index.esm.js +2 -2
  67. package/dist/components/signupButton/index.esm.js.map +1 -1
  68. package/dist/components/signupButton/index.esm.min.js +2 -2
  69. package/dist/components/signupButton/index.esm.min.js.map +1 -1
  70. package/dist/components/signupButton/index.js +2 -2
  71. package/dist/components/signupButton/index.js.map +1 -1
  72. package/dist/components/signupButton/index.min.js.map +1 -1
  73. package/dist/login/login.d.ts.map +1 -1
  74. package/dist/login/login.js +12 -2
  75. package/dist/login/login.js.map +1 -1
  76. package/dist/matrix/matrix.js.map +1 -1
  77. package/dist/solid-ui.esm.js +103 -61
  78. package/dist/solid-ui.esm.js.map +1 -1
  79. package/dist/solid-ui.esm.min.js +6 -6
  80. package/dist/solid-ui.esm.min.js.map +1 -1
  81. package/dist/solid-ui.js +102 -51
  82. package/dist/solid-ui.js.map +1 -1
  83. package/dist/solid-ui.min.js +9 -9
  84. package/dist/solid-ui.min.js.map +1 -1
  85. package/dist/tabs.js +2 -2
  86. package/dist/tabs.js.map +1 -1
  87. package/dist/v2/components/actions/button/Button.d.ts +97 -0
  88. package/dist/v2/components/actions/button/Button.d.ts.map +1 -0
  89. package/dist/v2/components/actions/button/Button.js +325 -0
  90. package/dist/v2/components/actions/button/Button.js.map +1 -0
  91. package/dist/v2/components/actions/button/Button.test.d.ts +2 -0
  92. package/dist/v2/components/actions/button/Button.test.d.ts.map +1 -0
  93. package/dist/v2/components/actions/button/Button.test.js +117 -0
  94. package/dist/v2/components/actions/button/Button.test.js.map +1 -0
  95. package/dist/v2/components/actions/button/index.d.ts +8 -0
  96. package/dist/v2/components/actions/button/index.d.ts.map +1 -0
  97. package/dist/v2/components/actions/button/index.js +7 -0
  98. package/dist/v2/components/actions/button/index.js.map +1 -0
  99. package/dist/v2/components/auth/loginButton/LoginButton.d.ts.map +1 -0
  100. package/dist/v2/components/{loginButton → auth/loginButton}/LoginButton.js +46 -4
  101. package/dist/v2/components/auth/loginButton/LoginButton.js.map +1 -0
  102. package/dist/v2/components/auth/loginButton/LoginButton.test.d.ts.map +1 -0
  103. package/dist/v2/components/auth/loginButton/LoginButton.test.js.map +1 -0
  104. package/dist/v2/components/auth/loginButton/downArrow.d.ts.map +1 -0
  105. package/dist/v2/components/auth/loginButton/downArrow.js.map +1 -0
  106. package/dist/v2/components/auth/loginButton/index.d.ts.map +1 -0
  107. package/dist/v2/components/auth/loginButton/index.js.map +1 -0
  108. package/dist/v2/components/auth/signupButton/SignupButton.d.ts.map +1 -0
  109. package/dist/v2/components/auth/signupButton/SignupButton.js.map +1 -0
  110. package/dist/v2/components/auth/signupButton/SignupButton.test.d.ts.map +1 -0
  111. package/dist/v2/components/auth/signupButton/SignupButton.test.js.map +1 -0
  112. package/dist/v2/components/auth/signupButton/index.d.ts.map +1 -0
  113. package/dist/v2/components/auth/signupButton/index.js.map +1 -0
  114. package/dist/v2/components/forms/combobox/Combobox.d.ts +82 -0
  115. package/dist/v2/components/forms/combobox/Combobox.d.ts.map +1 -0
  116. package/dist/v2/components/forms/combobox/Combobox.js +506 -0
  117. package/dist/v2/components/forms/combobox/Combobox.js.map +1 -0
  118. package/dist/v2/components/forms/combobox/Combobox.test.d.ts +2 -0
  119. package/dist/v2/components/forms/combobox/Combobox.test.d.ts.map +1 -0
  120. package/dist/v2/components/forms/combobox/Combobox.test.js +201 -0
  121. package/dist/v2/components/forms/combobox/Combobox.test.js.map +1 -0
  122. package/dist/v2/components/forms/combobox/comboboxTypes.d.ts +6 -0
  123. package/dist/v2/components/forms/combobox/comboboxTypes.d.ts.map +1 -0
  124. package/dist/v2/components/forms/combobox/comboboxTypes.js +2 -0
  125. package/dist/v2/components/forms/combobox/comboboxTypes.js.map +1 -0
  126. package/dist/v2/components/forms/combobox/index.d.ts +3 -0
  127. package/dist/v2/components/forms/combobox/index.d.ts.map +1 -0
  128. package/dist/v2/components/forms/combobox/index.js +7 -0
  129. package/dist/v2/components/forms/combobox/index.js.map +1 -0
  130. package/dist/v2/components/forms/select/Select.d.ts +68 -0
  131. package/dist/v2/components/forms/select/Select.d.ts.map +1 -0
  132. package/dist/v2/components/forms/select/Select.js +499 -0
  133. package/dist/v2/components/forms/select/Select.js.map +1 -0
  134. package/dist/v2/components/forms/select/Select.test.d.ts +2 -0
  135. package/dist/v2/components/forms/select/Select.test.d.ts.map +1 -0
  136. package/dist/v2/components/forms/select/Select.test.js +168 -0
  137. package/dist/v2/components/forms/select/Select.test.js.map +1 -0
  138. package/dist/v2/components/forms/select/index.d.ts +3 -0
  139. package/dist/v2/components/forms/select/index.d.ts.map +1 -0
  140. package/dist/v2/components/forms/select/index.js +7 -0
  141. package/dist/v2/components/forms/select/index.js.map +1 -0
  142. package/dist/v2/components/forms/shared/downArrow.d.ts +2 -0
  143. package/dist/v2/components/forms/shared/downArrow.d.ts.map +1 -0
  144. package/dist/v2/components/forms/shared/downArrow.js +10 -0
  145. package/dist/v2/components/forms/shared/downArrow.js.map +1 -0
  146. package/dist/v2/components/forms/shared/keyboard.d.ts +7 -0
  147. package/dist/v2/components/forms/shared/keyboard.d.ts.map +1 -0
  148. package/dist/v2/components/forms/shared/keyboard.js +56 -0
  149. package/dist/v2/components/forms/shared/keyboard.js.map +1 -0
  150. package/dist/v2/components/forms/shared/listboxStyles.d.ts +2 -0
  151. package/dist/v2/components/forms/shared/listboxStyles.d.ts.map +1 -0
  152. package/dist/v2/components/forms/shared/listboxStyles.js +96 -0
  153. package/dist/v2/components/forms/shared/listboxStyles.js.map +1 -0
  154. package/dist/v2/components/forms/shared/listboxTemplate.d.ts +11 -0
  155. package/dist/v2/components/forms/shared/listboxTemplate.d.ts.map +1 -0
  156. package/dist/v2/components/forms/shared/listboxTemplate.js +37 -0
  157. package/dist/v2/components/forms/shared/listboxTemplate.js.map +1 -0
  158. package/dist/v2/components/forms/shared/optionTypes.d.ts +6 -0
  159. package/dist/v2/components/forms/shared/optionTypes.d.ts.map +1 -0
  160. package/dist/v2/components/forms/shared/optionTypes.js +2 -0
  161. package/dist/v2/components/forms/shared/optionTypes.js.map +1 -0
  162. package/dist/v2/components/layout/footer/Footer.d.ts.map +1 -0
  163. package/dist/v2/components/{footer → layout/footer}/Footer.js +1 -1
  164. package/dist/v2/components/layout/footer/Footer.js.map +1 -0
  165. package/dist/v2/components/layout/footer/Footer.test.d.ts.map +1 -0
  166. package/dist/v2/components/layout/footer/Footer.test.js.map +1 -0
  167. package/dist/v2/components/layout/footer/index.d.ts.map +1 -0
  168. package/dist/v2/components/layout/footer/index.js.map +1 -0
  169. package/dist/v2/components/{header → layout/header}/Header.d.ts +2 -2
  170. package/dist/v2/components/layout/header/Header.d.ts.map +1 -0
  171. package/dist/v2/components/{header → layout/header}/Header.js +5 -5
  172. package/dist/v2/components/layout/header/Header.js.map +1 -0
  173. package/dist/v2/components/layout/header/header.test.d.ts.map +1 -0
  174. package/dist/v2/components/layout/header/header.test.js.map +1 -0
  175. package/dist/v2/components/layout/header/index.d.ts.map +1 -0
  176. package/dist/v2/components/layout/header/index.js.map +1 -0
  177. package/dist/v2/components/media/photoCapture/PhotoCapture.d.ts +200 -0
  178. package/dist/v2/components/media/photoCapture/PhotoCapture.d.ts.map +1 -0
  179. package/dist/v2/components/media/photoCapture/PhotoCapture.js +723 -0
  180. package/dist/v2/components/media/photoCapture/PhotoCapture.js.map +1 -0
  181. package/dist/v2/components/media/photoCapture/PhotoCapture.test.d.ts +2 -0
  182. package/dist/v2/components/media/photoCapture/PhotoCapture.test.d.ts.map +1 -0
  183. package/dist/v2/components/media/photoCapture/PhotoCapture.test.js +157 -0
  184. package/dist/v2/components/media/photoCapture/PhotoCapture.test.js.map +1 -0
  185. package/dist/v2/components/media/photoCapture/index.d.ts +3 -0
  186. package/dist/v2/components/media/photoCapture/index.d.ts.map +1 -0
  187. package/dist/v2/components/media/photoCapture/index.js +7 -0
  188. package/dist/v2/components/media/photoCapture/index.js.map +1 -0
  189. package/dist/versionInfo.js +14 -14
  190. package/dist/widgets/buttons.d.ts +1 -0
  191. package/dist/widgets/buttons.d.ts.map +1 -1
  192. package/dist/widgets/buttons.js +15 -2
  193. package/dist/widgets/buttons.js.map +1 -1
  194. package/package.json +223 -157
  195. package/dist/v2/components/footer/Footer.d.ts.map +0 -1
  196. package/dist/v2/components/footer/Footer.js.map +0 -1
  197. package/dist/v2/components/footer/Footer.test.d.ts.map +0 -1
  198. package/dist/v2/components/footer/Footer.test.js.map +0 -1
  199. package/dist/v2/components/footer/index.d.ts.map +0 -1
  200. package/dist/v2/components/footer/index.js.map +0 -1
  201. package/dist/v2/components/header/Header.d.ts.map +0 -1
  202. package/dist/v2/components/header/Header.js.map +0 -1
  203. package/dist/v2/components/header/header.test.d.ts.map +0 -1
  204. package/dist/v2/components/header/header.test.js.map +0 -1
  205. package/dist/v2/components/header/index.d.ts.map +0 -1
  206. package/dist/v2/components/header/index.js.map +0 -1
  207. package/dist/v2/components/loginButton/LoginButton.d.ts.map +0 -1
  208. package/dist/v2/components/loginButton/LoginButton.js.map +0 -1
  209. package/dist/v2/components/loginButton/LoginButton.test.d.ts.map +0 -1
  210. package/dist/v2/components/loginButton/LoginButton.test.js.map +0 -1
  211. package/dist/v2/components/loginButton/downArrow.d.ts.map +0 -1
  212. package/dist/v2/components/loginButton/downArrow.js.map +0 -1
  213. package/dist/v2/components/loginButton/index.d.ts.map +0 -1
  214. package/dist/v2/components/loginButton/index.js.map +0 -1
  215. package/dist/v2/components/signupButton/SignupButton.d.ts.map +0 -1
  216. package/dist/v2/components/signupButton/SignupButton.js.map +0 -1
  217. package/dist/v2/components/signupButton/SignupButton.test.d.ts.map +0 -1
  218. package/dist/v2/components/signupButton/SignupButton.test.js.map +0 -1
  219. package/dist/v2/components/signupButton/index.d.ts.map +0 -1
  220. package/dist/v2/components/signupButton/index.js.map +0 -1
  221. /package/dist/v2/components/{loginButton → auth/loginButton}/LoginButton.d.ts +0 -0
  222. /package/dist/v2/components/{loginButton → auth/loginButton}/LoginButton.test.d.ts +0 -0
  223. /package/dist/v2/components/{loginButton → auth/loginButton}/LoginButton.test.js +0 -0
  224. /package/dist/v2/components/{loginButton → auth/loginButton}/downArrow.d.ts +0 -0
  225. /package/dist/v2/components/{loginButton → auth/loginButton}/downArrow.js +0 -0
  226. /package/dist/v2/components/{loginButton → auth/loginButton}/index.d.ts +0 -0
  227. /package/dist/v2/components/{loginButton → auth/loginButton}/index.js +0 -0
  228. /package/dist/v2/components/{signupButton → auth/signupButton}/SignupButton.d.ts +0 -0
  229. /package/dist/v2/components/{signupButton → auth/signupButton}/SignupButton.js +0 -0
  230. /package/dist/v2/components/{signupButton → auth/signupButton}/SignupButton.test.d.ts +0 -0
  231. /package/dist/v2/components/{signupButton → auth/signupButton}/SignupButton.test.js +0 -0
  232. /package/dist/v2/components/{signupButton → auth/signupButton}/index.d.ts +0 -0
  233. /package/dist/v2/components/{signupButton → auth/signupButton}/index.js +0 -0
  234. /package/dist/v2/components/{footer → layout/footer}/Footer.d.ts +0 -0
  235. /package/dist/v2/components/{footer → layout/footer}/Footer.test.d.ts +0 -0
  236. /package/dist/v2/components/{footer → layout/footer}/Footer.test.js +0 -0
  237. /package/dist/v2/components/{footer → layout/footer}/index.d.ts +0 -0
  238. /package/dist/v2/components/{footer → layout/footer}/index.js +0 -0
  239. /package/dist/v2/components/{header → layout/header}/header.test.d.ts +0 -0
  240. /package/dist/v2/components/{header → layout/header}/header.test.js +0 -0
  241. /package/dist/v2/components/{header → layout/header}/index.d.ts +0 -0
  242. /package/dist/v2/components/{header → layout/header}/index.js +0 -0
package/dist/solid-ui.js CHANGED
@@ -87,7 +87,7 @@ const originalIconBase = icons.originalIconBase;
87
87
 
88
88
  /***/ },
89
89
 
90
- /***/ 325
90
+ /***/ 788
91
91
  (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
92
92
 
93
93
  "use strict";
@@ -1629,21 +1629,10 @@ async function getProspectiveHolder(targetDirectory) {
1629
1629
  // EXTERNAL MODULE: ./node_modules/escape-html/index.js
1630
1630
  var escape_html = __webpack_require__(580);
1631
1631
  var escape_html_default = /*#__PURE__*/__webpack_require__.n(escape_html);
1632
- ;// ./node_modules/uuid/dist/native.js
1633
- const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);
1634
- /* harmony default export */ const dist_native = ({ randomUUID });
1635
-
1636
1632
  ;// ./node_modules/uuid/dist/rng.js
1637
- let getRandomValues;
1638
1633
  const rnds8 = new Uint8Array(16);
1639
1634
  function rng() {
1640
- if (!getRandomValues) {
1641
- if (typeof crypto === 'undefined' || !crypto.getRandomValues) {
1642
- throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');
1643
- }
1644
- getRandomValues = crypto.getRandomValues.bind(crypto);
1645
- }
1646
- return getRandomValues(rnds8);
1635
+ return crypto.getRandomValues(rnds8);
1647
1636
  }
1648
1637
 
1649
1638
  ;// ./node_modules/uuid/dist/stringify.js
@@ -1687,7 +1676,12 @@ function stringify(arr, offset = 0) {
1687
1676
  ;// ./node_modules/uuid/dist/v4.js
1688
1677
 
1689
1678
 
1690
-
1679
+ function v4(options, buf, offset) {
1680
+ if (!buf && !options && crypto.randomUUID) {
1681
+ return crypto.randomUUID();
1682
+ }
1683
+ return _v4(options, buf, offset);
1684
+ }
1691
1685
  function _v4(options, buf, offset) {
1692
1686
  options = options || {};
1693
1687
  const rnds = options.random ?? options.rng?.() ?? rng();
@@ -1708,12 +1702,6 @@ function _v4(options, buf, offset) {
1708
1702
  }
1709
1703
  return unsafeStringify(rnds);
1710
1704
  }
1711
- function v4(options, buf, offset) {
1712
- if (dist_native.randomUUID && !buf && !options) {
1713
- return dist_native.randomUUID();
1714
- }
1715
- return _v4(options, buf, offset);
1716
- }
1717
1705
  /* harmony default export */ const dist_v4 = (v4);
1718
1706
 
1719
1707
  // EXTERNAL MODULE: ./node_modules/mime-types/index.js
@@ -1916,11 +1904,17 @@ style.setStyle = function setStyle(ele, styleName) {
1916
1904
  /* global FileReader alert */
1917
1905
 
1918
1906
  function makeDropTarget(ele, droppedURIHandler, droppedFileHandler) {
1907
+ const normalizeDroppedUris = function (uriText) {
1908
+ return uriText.split('\n').map(uri => uri.trim()).filter(uri => uri && uri[0] !== '#');
1909
+ };
1919
1910
  const dragoverListener = function (e) {
1920
1911
  e.preventDefault(); // Need this; otherwise, drop does not work.
1912
+ e.stopPropagation();
1921
1913
  e.dataTransfer.dropEffect = 'copy';
1922
1914
  };
1923
1915
  const dragenterListener = function (e) {
1916
+ e.preventDefault();
1917
+ e.stopPropagation();
1924
1918
  src_debug/* log */.Rm('dragenter event dropEffect: ' + e.dataTransfer.dropEffect);
1925
1919
  if (this.localStyle) {
1926
1920
  // necessary not sure when
@@ -1932,6 +1926,7 @@ function makeDropTarget(ele, droppedURIHandler, droppedFileHandler) {
1932
1926
  src_debug/* log */.Rm('dragenter event dropEffect 2: ' + e.dataTransfer.dropEffect);
1933
1927
  };
1934
1928
  const dragleaveListener = function (e) {
1929
+ e.stopPropagation();
1935
1930
  src_debug/* log */.Rm('dragleave event dropEffect: ' + e.dataTransfer.dropEffect);
1936
1931
  if (this.savedStyle) {
1937
1932
  this.localStyle = this.savedStyle;
@@ -1941,6 +1936,7 @@ function makeDropTarget(ele, droppedURIHandler, droppedFileHandler) {
1941
1936
  };
1942
1937
  const dropListener = function (e) {
1943
1938
  if (e.preventDefault) e.preventDefault(); // stops the browser from redirecting off to the text.
1939
+ if (e.stopPropagation) e.stopPropagation();
1944
1940
  src_debug/* log */.Rm('Drop event. dropEffect: ' + e.dataTransfer.dropEffect);
1945
1941
  src_debug/* log */.Rm('Drop event. types: ' + (e.dataTransfer.types ? e.dataTransfer.types.join(', ') : 'NOPE'));
1946
1942
  let uris = null;
@@ -1949,7 +1945,7 @@ function makeDropTarget(ele, droppedURIHandler, droppedFileHandler) {
1949
1945
  for (let t = 0; t < e.dataTransfer.types.length; t++) {
1950
1946
  const type = e.dataTransfer.types[t];
1951
1947
  if (type === 'text/uri-list') {
1952
- uris = e.dataTransfer.getData(type).split('\n'); // @ ignore those starting with #
1948
+ uris = normalizeDroppedUris(e.dataTransfer.getData(type));
1953
1949
  src_debug/* log */.Rm('Dropped text/uri-list: ' + uris);
1954
1950
  } else if (type === 'text/plain') {
1955
1951
  text = e.dataTransfer.getData(type);
@@ -1962,13 +1958,14 @@ function makeDropTarget(ele, droppedURIHandler, droppedFileHandler) {
1962
1958
  droppedFileHandler(files);
1963
1959
  }
1964
1960
  }
1965
- if (uris === null && text && text.slice(0, 4) === 'http') {
1966
- uris = text;
1967
- src_debug/* log */.Rm('Waring: Poor man\'s drop: using text for URI'); // chrome disables text/uri-list??
1961
+ const trimmedText = text ? text.trim() : '';
1962
+ if (uris === null && trimmedText && trimmedText.slice(0, 4) === 'http') {
1963
+ uris = [trimmedText];
1964
+ src_debug/* log */.Rm('Warning: Poor man\'s drop: using text for URI'); // chrome disables text/uri-list??
1968
1965
  }
1969
1966
  } else {
1970
1967
  // ... however, if we're IE, we don't have the .types property, so we'll just get the Text value
1971
- uris = [e.dataTransfer.getData('Text')];
1968
+ uris = normalizeDroppedUris(e.dataTransfer.getData('Text'));
1972
1969
  src_debug/* log */.Rm('WARNING non-standard drop event: ' + uris[0]);
1973
1970
  }
1974
1971
  src_debug/* log */.Rm('Dropped URI list (2): ' + uris);
@@ -3425,6 +3422,11 @@ function attachmentList(dom, subject, div, options = {}) {
3425
3422
  // options = options || {}
3426
3423
  const docsWaitingForRowRefresh = new Set();
3427
3424
  const hasAsyncEnrichedRowOptions = !!(options.renderSupportingInfo || options.renderNameSuffix);
3425
+ // Keep the generic default on for simple consumers: if row decoration depends on
3426
+ // linked-profile data arriving later, attachmentList will rerender once that
3427
+ // target document finishes loading. Complex callers with their own streaming or
3428
+ // batched refresh pipeline can opt out to avoid duplicate whole-list refreshes.
3429
+ const refreshOnDocumentLoad = options.refreshOnDocumentLoad ?? true;
3428
3430
  const deleteAttachment = function (target) {
3429
3431
  if (!kb.updater) {
3430
3432
  throw new Error('kb has no updater');
@@ -3444,13 +3446,16 @@ function attachmentList(dom, subject, div, options = {}) {
3444
3446
  };
3445
3447
  opt.renderSupportingInfo = options.renderSupportingInfo;
3446
3448
  opt.renderNameSuffix = options.renderNameSuffix;
3447
- if (hasAsyncEnrichedRowOptions && target?.uri && kb.fetcher) {
3449
+ if (hasAsyncEnrichedRowOptions && refreshOnDocumentLoad && target?.uri && kb.fetcher) {
3448
3450
  const targetDoc = target.doc();
3449
3451
  const requestState = targetDoc?.uri ? kb.fetcher.requested?.[targetDoc.uri] : undefined;
3450
3452
  const shouldWaitForFetch = requestState !== 'done' && requestState !== 'failed';
3451
3453
  if (targetDoc?.uri && shouldWaitForFetch && !docsWaitingForRowRefresh.has(targetDoc.uri)) {
3452
3454
  docsWaitingForRowRefresh.add(targetDoc.uri);
3453
- // Root fix: these row options can depend on async profile data, so rerender once fetch completes.
3455
+ // The row renderer may need data from the target profile that is not loaded yet.
3456
+ // Register one follow-up refresh per target document so simple attachmentList
3457
+ // consumers eventually show the enriched row contents without building their own
3458
+ // async refresh orchestration.
3454
3459
  kb.fetcher.nowOrWhenFetched(targetDoc, undefined, () => {
3455
3460
  docsWaitingForRowRefresh.delete(targetDoc.uri);
3456
3461
  refresh();
@@ -3537,6 +3542,10 @@ function attachmentList(dom, subject, div, options = {}) {
3537
3542
  attachmentLeft.appendChild(paperclip);
3538
3543
  const fhandler = options.uploadFolder ? droppedFileHandler : null;
3539
3544
  makeDropTarget(paperclip, droppedURIHandler, fhandler); // beware missing the wire of the paparclip!
3545
+ const paperclipImage = paperclip.querySelector('img');
3546
+ if (paperclipImage) {
3547
+ makeDropTarget(paperclipImage, droppedURIHandler, fhandler);
3548
+ }
3540
3549
  makeDropTarget(attachmentLeft, droppedURIHandler, fhandler); // just the outer won't do it
3541
3550
 
3542
3551
  if (options.uploadFolder) {
@@ -7833,34 +7842,66 @@ function buildCheckboxForm(dom, kb, lab, del, ins, form, dataDoc, tristate) {
7833
7842
  }
7834
7843
  refresh();
7835
7844
  if (!editable) return box;
7845
+ let isUpdating = false; // Prevent concurrent updates on double-click
7846
+
7836
7847
  const boxHandler = function (_e) {
7848
+ if (isUpdating) {
7849
+ return; // Ignore clicks while update is in progress
7850
+ }
7851
+ isUpdating = true;
7852
+ input.disabled = true; // Disable button to provide user feedback
7853
+ let didFinishUpdate = false;
7854
+ const finishUpdate = function () {
7855
+ if (didFinishUpdate) return false;
7856
+ didFinishUpdate = true;
7857
+ isUpdating = false;
7858
+ input.disabled = false;
7859
+ return true;
7860
+ };
7861
+ const showUpdateError = function (errorBody) {
7862
+ colorCarrier.style.color = '#000';
7863
+ colorCarrier.style.backgroundColor = '#fee';
7864
+ box.appendChild(errorMessageBlock(dom, `Checkbox: Error updating dataDoc from ${input.state} to ${input.newState}:\n\n${errorBody}`));
7865
+ };
7837
7866
  colorCarrier.style.color = '#bbb'; // grey -- not saved yet
7838
7867
  const toDelete = input.state === true ? ins : input.state === false ? del : [];
7839
7868
  input.newState = input.state === null ? true : input.state === true ? false : tristate ? null : true;
7840
7869
  const toInsert = input.newState === true ? ins : input.newState === false ? del : [];
7841
7870
  src_debug/* log */.Rm(` Deleting ${toDelete}`);
7842
7871
  src_debug/* log */.Rm(` Inserting ${toInsert}`);
7843
- kb.updater.update(toDelete, toInsert, function (uri, success, errorBody) {
7844
- if (!success) {
7845
- if (toDelete.why) {
7846
- const hmmm = kb.holds(toDelete.subject, toDelete.predicate, toDelete.object, toDelete.why);
7847
- if (hmmm) {
7848
- src_debug/* log */.Rm(' @@@@@ weird if 409 - does hold statement');
7872
+ try {
7873
+ const updateResult = kb.updater.update(toDelete, toInsert, function (uri, success, errorBody) {
7874
+ if (!finishUpdate()) return;
7875
+ if (!success) {
7876
+ if (toDelete.why) {
7877
+ const hmmm = kb.holds(toDelete.subject, toDelete.predicate, toDelete.object, toDelete.why);
7878
+ if (hmmm) {
7879
+ src_debug/* log */.Rm(' @@@@@ weird if 409 - does hold statement');
7880
+ }
7849
7881
  }
7882
+ showUpdateError(errorBody);
7883
+ } else {
7884
+ colorCarrier.style.color = '#000';
7885
+ input.state = input.newState;
7886
+ input.textContent = {
7887
+ true: checkMarkCharacter,
7888
+ false: cancelCharacter,
7889
+ null: dashCharacter
7890
+ }[input.state]; // @@
7850
7891
  }
7851
- colorCarrier.style.color = '#000';
7852
- colorCarrier.style.backgroundColor = '#fee';
7853
- box.appendChild(errorMessageBlock(dom, `Checkbox: Error updating dataDoc from ${input.state} to ${input.newState}:\n\n${errorBody}`));
7854
- } else {
7855
- colorCarrier.style.color = '#000';
7856
- input.state = input.newState;
7857
- input.textContent = {
7858
- true: checkMarkCharacter,
7859
- false: cancelCharacter,
7860
- null: dashCharacter
7861
- }[input.state]; // @@
7892
+ });
7893
+ if (updateResult && typeof updateResult.then === 'function') {
7894
+ updateResult.catch(function (error) {
7895
+ if (!finishUpdate()) return;
7896
+ showUpdateError(error instanceof Error ? error.message : error);
7897
+ }).finally(function () {
7898
+ finishUpdate();
7899
+ });
7862
7900
  }
7863
- });
7901
+ } catch (error) {
7902
+ finishUpdate();
7903
+ throw error;
7904
+ }
7864
7905
  };
7865
7906
  input.addEventListener('click', boxHandler, false);
7866
7907
  return box;
@@ -9175,14 +9216,24 @@ function newAppInstance(dom, appDetails, callback) {
9175
9216
  * and/or a developer
9176
9217
  */
9177
9218
  async function getUserRoles() {
9219
+ const sessionInfo = external_SolidLogic_.authSession.info;
9220
+ if (!sessionInfo?.isLoggedIn || !sessionInfo?.webId) {
9221
+ return [];
9222
+ }
9223
+ const currentUser = external_SolidLogic_.authn.currentUser();
9224
+ if (!currentUser) {
9225
+ return [];
9226
+ }
9178
9227
  try {
9179
9228
  const {
9180
9229
  me,
9181
9230
  preferencesFile,
9182
9231
  preferencesFileError
9183
- } = await ensureLoadedPreferences({});
9232
+ } = await ensureLoadedPreferences({
9233
+ me: currentUser
9234
+ });
9184
9235
  if (!preferencesFile || preferencesFileError) {
9185
- throw new Error(preferencesFileError);
9236
+ throw new Error(preferencesFileError || 'Unable to load user preferences file.');
9186
9237
  }
9187
9238
  return external_SolidLogic_.solidLogicSingleton.store.each(me, ns.rdf('type'), null, preferencesFile.doc());
9188
9239
  } catch (error) {
@@ -21613,7 +21664,7 @@ function tabWidget(options) {
21613
21664
  rootElement.style.flexDirection = (vertical ? 'row' : 'column') + (flipped ? '-reverse' : '');
21614
21665
  const navElement = rootElement.appendChild(dom.createElement('nav'));
21615
21666
  navElement.setAttribute('style', style.tabsNavElement);
21616
- const mainElement = rootElement.appendChild(dom.createElement('main'));
21667
+ const mainElement = rootElement.appendChild(dom.createElement('div'));
21617
21668
  mainElement.setAttribute('style', style.tabsMainElement); // override tabbedtab.css
21618
21669
  const tabContainer = navElement.appendChild(dom.createElement('ul'));
21619
21670
  tabContainer.setAttribute('style', style.tabContainer);
@@ -21735,7 +21786,7 @@ function tabWidget(options) {
21735
21786
  function getOrCreateContainerElement(ele) {
21736
21787
  const bodyMain = ele.bodyTR?.children[0];
21737
21788
  if (bodyMain) return bodyMain;
21738
- const newBodyMain = ele.bodyTR.appendChild(dom.createElement('main'));
21789
+ const newBodyMain = ele.bodyTR.appendChild(dom.createElement('div'));
21739
21790
  newBodyMain.setAttribute('style', bodyMainStyle);
21740
21791
  return newBodyMain;
21741
21792
  }
@@ -22329,7 +22380,7 @@ if (typeof window !== 'undefined') {
22329
22380
  /* harmony export */ });
22330
22381
  /* harmony import */ var rdflib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(511);
22331
22382
  /* harmony import */ var rdflib__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(rdflib__WEBPACK_IMPORTED_MODULE_0__);
22332
- /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(325);
22383
+ /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(788);
22333
22384
  /*
22334
22385
  Copied from mashlib/src/global/metadata.ts
22335
22386
  */
@@ -23054,7 +23105,7 @@ module.exports = /*#__PURE__*/JSON.parse('{"application/1d-interleaved-parityfec
23054
23105
  /******/ // startup
23055
23106
  /******/ // Load entry module and return exports
23056
23107
  /******/ // This entry module is referenced by other modules so it can't be inlined
23057
- /******/ var __webpack_exports__ = __webpack_require__(325);
23108
+ /******/ var __webpack_exports__ = __webpack_require__(788);
23058
23109
  /******/
23059
23110
  /******/ return __webpack_exports__;
23060
23111
  /******/ })()