solid-ui 3.1.0 → 3.1.1-test.0

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 +13 -13
  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 +111 -45
  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
@@ -77,7 +77,7 @@ const originalIconBase = icons.originalIconBase;
77
77
 
78
78
  /***/ },
79
79
 
80
- /***/ 325
80
+ /***/ 788
81
81
  (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
82
82
 
83
83
  "use strict";
@@ -1597,21 +1597,10 @@ async function getProspectiveHolder(targetDirectory) {
1597
1597
  // EXTERNAL MODULE: ./node_modules/escape-html/index.js
1598
1598
  var escape_html = __webpack_require__(580);
1599
1599
  var escape_html_default = /*#__PURE__*/__webpack_require__.n(escape_html);
1600
- ;// ./node_modules/uuid/dist/native.js
1601
- const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);
1602
- /* harmony default export */ const dist_native = ({ randomUUID });
1603
-
1604
1600
  ;// ./node_modules/uuid/dist/rng.js
1605
- let getRandomValues;
1606
1601
  const rnds8 = new Uint8Array(16);
1607
1602
  function rng() {
1608
- if (!getRandomValues) {
1609
- if (typeof crypto === 'undefined' || !crypto.getRandomValues) {
1610
- throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');
1611
- }
1612
- getRandomValues = crypto.getRandomValues.bind(crypto);
1613
- }
1614
- return getRandomValues(rnds8);
1603
+ return crypto.getRandomValues(rnds8);
1615
1604
  }
1616
1605
 
1617
1606
  ;// ./node_modules/uuid/dist/stringify.js
@@ -1655,7 +1644,12 @@ function stringify(arr, offset = 0) {
1655
1644
  ;// ./node_modules/uuid/dist/v4.js
1656
1645
 
1657
1646
 
1658
-
1647
+ function v4(options, buf, offset) {
1648
+ if (!buf && !options && crypto.randomUUID) {
1649
+ return crypto.randomUUID();
1650
+ }
1651
+ return _v4(options, buf, offset);
1652
+ }
1659
1653
  function _v4(options, buf, offset) {
1660
1654
  options = options || {};
1661
1655
  const rnds = options.random ?? options.rng?.() ?? rng();
@@ -1676,12 +1670,6 @@ function _v4(options, buf, offset) {
1676
1670
  }
1677
1671
  return unsafeStringify(rnds);
1678
1672
  }
1679
- function v4(options, buf, offset) {
1680
- if (dist_native.randomUUID && !buf && !options) {
1681
- return dist_native.randomUUID();
1682
- }
1683
- return _v4(options, buf, offset);
1684
- }
1685
1673
  /* harmony default export */ const dist_v4 = (v4);
1686
1674
 
1687
1675
  // EXTERNAL MODULE: ./node_modules/mime-types/index.js
@@ -1884,11 +1872,17 @@ style.setStyle = function setStyle(ele, styleName) {
1884
1872
  /* global FileReader alert */
1885
1873
 
1886
1874
  function makeDropTarget(ele, droppedURIHandler, droppedFileHandler) {
1875
+ const normalizeDroppedUris = function (uriText) {
1876
+ return uriText.split('\n').map(uri => uri.trim()).filter(uri => uri && uri[0] !== '#');
1877
+ };
1887
1878
  const dragoverListener = function (e) {
1888
1879
  e.preventDefault(); // Need this; otherwise, drop does not work.
1880
+ e.stopPropagation();
1889
1881
  e.dataTransfer.dropEffect = 'copy';
1890
1882
  };
1891
1883
  const dragenterListener = function (e) {
1884
+ e.preventDefault();
1885
+ e.stopPropagation();
1892
1886
  src_debug/* log */.Rm('dragenter event dropEffect: ' + e.dataTransfer.dropEffect);
1893
1887
  if (this.localStyle) {
1894
1888
  // necessary not sure when
@@ -1900,6 +1894,7 @@ function makeDropTarget(ele, droppedURIHandler, droppedFileHandler) {
1900
1894
  src_debug/* log */.Rm('dragenter event dropEffect 2: ' + e.dataTransfer.dropEffect);
1901
1895
  };
1902
1896
  const dragleaveListener = function (e) {
1897
+ e.stopPropagation();
1903
1898
  src_debug/* log */.Rm('dragleave event dropEffect: ' + e.dataTransfer.dropEffect);
1904
1899
  if (this.savedStyle) {
1905
1900
  this.localStyle = this.savedStyle;
@@ -1909,6 +1904,7 @@ function makeDropTarget(ele, droppedURIHandler, droppedFileHandler) {
1909
1904
  };
1910
1905
  const dropListener = function (e) {
1911
1906
  if (e.preventDefault) e.preventDefault(); // stops the browser from redirecting off to the text.
1907
+ if (e.stopPropagation) e.stopPropagation();
1912
1908
  src_debug/* log */.Rm('Drop event. dropEffect: ' + e.dataTransfer.dropEffect);
1913
1909
  src_debug/* log */.Rm('Drop event. types: ' + (e.dataTransfer.types ? e.dataTransfer.types.join(', ') : 'NOPE'));
1914
1910
  let uris = null;
@@ -1917,7 +1913,7 @@ function makeDropTarget(ele, droppedURIHandler, droppedFileHandler) {
1917
1913
  for (let t = 0; t < e.dataTransfer.types.length; t++) {
1918
1914
  const type = e.dataTransfer.types[t];
1919
1915
  if (type === 'text/uri-list') {
1920
- uris = e.dataTransfer.getData(type).split('\n'); // @ ignore those starting with #
1916
+ uris = normalizeDroppedUris(e.dataTransfer.getData(type));
1921
1917
  src_debug/* log */.Rm('Dropped text/uri-list: ' + uris);
1922
1918
  } else if (type === 'text/plain') {
1923
1919
  text = e.dataTransfer.getData(type);
@@ -1930,13 +1926,14 @@ function makeDropTarget(ele, droppedURIHandler, droppedFileHandler) {
1930
1926
  droppedFileHandler(files);
1931
1927
  }
1932
1928
  }
1933
- if (uris === null && text && text.slice(0, 4) === 'http') {
1934
- uris = text;
1935
- src_debug/* log */.Rm('Waring: Poor man\'s drop: using text for URI'); // chrome disables text/uri-list??
1929
+ const trimmedText = text ? text.trim() : '';
1930
+ if (uris === null && trimmedText && trimmedText.slice(0, 4) === 'http') {
1931
+ uris = [trimmedText];
1932
+ src_debug/* log */.Rm('Warning: Poor man\'s drop: using text for URI'); // chrome disables text/uri-list??
1936
1933
  }
1937
1934
  } else {
1938
1935
  // ... however, if we're IE, we don't have the .types property, so we'll just get the Text value
1939
- uris = [e.dataTransfer.getData('Text')];
1936
+ uris = normalizeDroppedUris(e.dataTransfer.getData('Text'));
1940
1937
  src_debug/* log */.Rm('WARNING non-standard drop event: ' + uris[0]);
1941
1938
  }
1942
1939
  src_debug/* log */.Rm('Dropped URI list (2): ' + uris);
@@ -3393,6 +3390,11 @@ function attachmentList(dom, subject, div, options = {}) {
3393
3390
  // options = options || {}
3394
3391
  const docsWaitingForRowRefresh = new Set();
3395
3392
  const hasAsyncEnrichedRowOptions = !!(options.renderSupportingInfo || options.renderNameSuffix);
3393
+ // Keep the generic default on for simple consumers: if row decoration depends on
3394
+ // linked-profile data arriving later, attachmentList will rerender once that
3395
+ // target document finishes loading. Complex callers with their own streaming or
3396
+ // batched refresh pipeline can opt out to avoid duplicate whole-list refreshes.
3397
+ const refreshOnDocumentLoad = options.refreshOnDocumentLoad ?? true;
3396
3398
  const deleteAttachment = function (target) {
3397
3399
  if (!kb.updater) {
3398
3400
  throw new Error('kb has no updater');
@@ -3412,13 +3414,16 @@ function attachmentList(dom, subject, div, options = {}) {
3412
3414
  };
3413
3415
  opt.renderSupportingInfo = options.renderSupportingInfo;
3414
3416
  opt.renderNameSuffix = options.renderNameSuffix;
3415
- if (hasAsyncEnrichedRowOptions && target?.uri && kb.fetcher) {
3417
+ if (hasAsyncEnrichedRowOptions && refreshOnDocumentLoad && target?.uri && kb.fetcher) {
3416
3418
  const targetDoc = target.doc();
3417
3419
  const requestState = targetDoc?.uri ? kb.fetcher.requested?.[targetDoc.uri] : undefined;
3418
3420
  const shouldWaitForFetch = requestState !== 'done' && requestState !== 'failed';
3419
3421
  if (targetDoc?.uri && shouldWaitForFetch && !docsWaitingForRowRefresh.has(targetDoc.uri)) {
3420
3422
  docsWaitingForRowRefresh.add(targetDoc.uri);
3421
- // Root fix: these row options can depend on async profile data, so rerender once fetch completes.
3423
+ // The row renderer may need data from the target profile that is not loaded yet.
3424
+ // Register one follow-up refresh per target document so simple attachmentList
3425
+ // consumers eventually show the enriched row contents without building their own
3426
+ // async refresh orchestration.
3422
3427
  kb.fetcher.nowOrWhenFetched(targetDoc, undefined, () => {
3423
3428
  docsWaitingForRowRefresh.delete(targetDoc.uri);
3424
3429
  refresh();
@@ -3505,6 +3510,10 @@ function attachmentList(dom, subject, div, options = {}) {
3505
3510
  attachmentLeft.appendChild(paperclip);
3506
3511
  const fhandler = options.uploadFolder ? droppedFileHandler : null;
3507
3512
  makeDropTarget(paperclip, droppedURIHandler, fhandler); // beware missing the wire of the paparclip!
3513
+ const paperclipImage = paperclip.querySelector('img');
3514
+ if (paperclipImage) {
3515
+ makeDropTarget(paperclipImage, droppedURIHandler, fhandler);
3516
+ }
3508
3517
  makeDropTarget(attachmentLeft, droppedURIHandler, fhandler); // just the outer won't do it
3509
3518
 
3510
3519
  if (options.uploadFolder) {
@@ -7801,34 +7810,66 @@ function buildCheckboxForm(dom, kb, lab, del, ins, form, dataDoc, tristate) {
7801
7810
  }
7802
7811
  refresh();
7803
7812
  if (!editable) return box;
7813
+ let isUpdating = false; // Prevent concurrent updates on double-click
7814
+
7804
7815
  const boxHandler = function (_e) {
7816
+ if (isUpdating) {
7817
+ return; // Ignore clicks while update is in progress
7818
+ }
7819
+ isUpdating = true;
7820
+ input.disabled = true; // Disable button to provide user feedback
7821
+ let didFinishUpdate = false;
7822
+ const finishUpdate = function () {
7823
+ if (didFinishUpdate) return false;
7824
+ didFinishUpdate = true;
7825
+ isUpdating = false;
7826
+ input.disabled = false;
7827
+ return true;
7828
+ };
7829
+ const showUpdateError = function (errorBody) {
7830
+ colorCarrier.style.color = '#000';
7831
+ colorCarrier.style.backgroundColor = '#fee';
7832
+ box.appendChild(errorMessageBlock(dom, `Checkbox: Error updating dataDoc from ${input.state} to ${input.newState}:\n\n${errorBody}`));
7833
+ };
7805
7834
  colorCarrier.style.color = '#bbb'; // grey -- not saved yet
7806
7835
  const toDelete = input.state === true ? ins : input.state === false ? del : [];
7807
7836
  input.newState = input.state === null ? true : input.state === true ? false : tristate ? null : true;
7808
7837
  const toInsert = input.newState === true ? ins : input.newState === false ? del : [];
7809
7838
  src_debug/* log */.Rm(` Deleting ${toDelete}`);
7810
7839
  src_debug/* log */.Rm(` Inserting ${toInsert}`);
7811
- kb.updater.update(toDelete, toInsert, function (uri, success, errorBody) {
7812
- if (!success) {
7813
- if (toDelete.why) {
7814
- const hmmm = kb.holds(toDelete.subject, toDelete.predicate, toDelete.object, toDelete.why);
7815
- if (hmmm) {
7816
- src_debug/* log */.Rm(' @@@@@ weird if 409 - does hold statement');
7840
+ try {
7841
+ const updateResult = kb.updater.update(toDelete, toInsert, function (uri, success, errorBody) {
7842
+ if (!finishUpdate()) return;
7843
+ if (!success) {
7844
+ if (toDelete.why) {
7845
+ const hmmm = kb.holds(toDelete.subject, toDelete.predicate, toDelete.object, toDelete.why);
7846
+ if (hmmm) {
7847
+ src_debug/* log */.Rm(' @@@@@ weird if 409 - does hold statement');
7848
+ }
7817
7849
  }
7850
+ showUpdateError(errorBody);
7851
+ } else {
7852
+ colorCarrier.style.color = '#000';
7853
+ input.state = input.newState;
7854
+ input.textContent = {
7855
+ true: checkMarkCharacter,
7856
+ false: cancelCharacter,
7857
+ null: dashCharacter
7858
+ }[input.state]; // @@
7818
7859
  }
7819
- colorCarrier.style.color = '#000';
7820
- colorCarrier.style.backgroundColor = '#fee';
7821
- box.appendChild(errorMessageBlock(dom, `Checkbox: Error updating dataDoc from ${input.state} to ${input.newState}:\n\n${errorBody}`));
7822
- } else {
7823
- colorCarrier.style.color = '#000';
7824
- input.state = input.newState;
7825
- input.textContent = {
7826
- true: checkMarkCharacter,
7827
- false: cancelCharacter,
7828
- null: dashCharacter
7829
- }[input.state]; // @@
7860
+ });
7861
+ if (updateResult && typeof updateResult.then === 'function') {
7862
+ updateResult.catch(function (error) {
7863
+ if (!finishUpdate()) return;
7864
+ showUpdateError(error instanceof Error ? error.message : error);
7865
+ }).finally(function () {
7866
+ finishUpdate();
7867
+ });
7830
7868
  }
7831
- });
7869
+ } catch (error) {
7870
+ finishUpdate();
7871
+ throw error;
7872
+ }
7832
7873
  };
7833
7874
  input.addEventListener('click', boxHandler, false);
7834
7875
  return box;
@@ -9143,14 +9184,24 @@ function newAppInstance(dom, appDetails, callback) {
9143
9184
  * and/or a developer
9144
9185
  */
9145
9186
  async function getUserRoles() {
9187
+ const sessionInfo = external_SolidLogic_.authSession.info;
9188
+ if (!sessionInfo?.isLoggedIn || !sessionInfo?.webId) {
9189
+ return [];
9190
+ }
9191
+ const currentUser = external_SolidLogic_.authn.currentUser();
9192
+ if (!currentUser) {
9193
+ return [];
9194
+ }
9146
9195
  try {
9147
9196
  const {
9148
9197
  me,
9149
9198
  preferencesFile,
9150
9199
  preferencesFileError
9151
- } = await ensureLoadedPreferences({});
9200
+ } = await ensureLoadedPreferences({
9201
+ me: currentUser
9202
+ });
9152
9203
  if (!preferencesFile || preferencesFileError) {
9153
- throw new Error(preferencesFileError);
9204
+ throw new Error(preferencesFileError || 'Unable to load user preferences file.');
9154
9205
  }
9155
9206
  return external_SolidLogic_.solidLogicSingleton.store.each(me, ns.rdf('type'), null, preferencesFile.doc());
9156
9207
  } catch (error) {
@@ -21581,7 +21632,7 @@ function tabWidget(options) {
21581
21632
  rootElement.style.flexDirection = (vertical ? 'row' : 'column') + (flipped ? '-reverse' : '');
21582
21633
  const navElement = rootElement.appendChild(dom.createElement('nav'));
21583
21634
  navElement.setAttribute('style', style.tabsNavElement);
21584
- const mainElement = rootElement.appendChild(dom.createElement('main'));
21635
+ const mainElement = rootElement.appendChild(dom.createElement('div'));
21585
21636
  mainElement.setAttribute('style', style.tabsMainElement); // override tabbedtab.css
21586
21637
  const tabContainer = navElement.appendChild(dom.createElement('ul'));
21587
21638
  tabContainer.setAttribute('style', style.tabContainer);
@@ -21703,7 +21754,7 @@ function tabWidget(options) {
21703
21754
  function getOrCreateContainerElement(ele) {
21704
21755
  const bodyMain = ele.bodyTR?.children[0];
21705
21756
  if (bodyMain) return bodyMain;
21706
- const newBodyMain = ele.bodyTR.appendChild(dom.createElement('main'));
21757
+ const newBodyMain = ele.bodyTR.appendChild(dom.createElement('div'));
21707
21758
  newBodyMain.setAttribute('style', bodyMainStyle);
21708
21759
  return newBodyMain;
21709
21760
  }
@@ -22297,7 +22348,7 @@ if (typeof window !== 'undefined') {
22297
22348
  /* harmony export */ });
22298
22349
  /* harmony import */ var rdflib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(511);
22299
22350
  /* harmony import */ var rdflib__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(rdflib__WEBPACK_IMPORTED_MODULE_0__);
22300
- /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(325);
22351
+ /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(788);
22301
22352
  /*
22302
22353
  Copied from mashlib/src/global/metadata.ts
22303
22354
  */
@@ -23069,7 +23120,7 @@ const lit_html_t=globalThis,lit_html_i=t=>t,lit_html_s=lit_html_t.trustedTypes,l
23069
23120
  var external_SolidLogic_ = __webpack_require__(892);
23070
23121
  // EXTERNAL MODULE: ./src/utils/headerFooterHelpers.ts
23071
23122
  var headerFooterHelpers = __webpack_require__(565);
23072
- ;// ./src/v2/components/footer/Footer.ts
23123
+ ;// ./src/v2/components/layout/footer/Footer.ts
23073
23124
 
23074
23125
 
23075
23126
 
@@ -23238,7 +23289,7 @@ class Footer extends lit_element_i {
23238
23289
  `;
23239
23290
  }
23240
23291
  }
23241
- ;// ./src/v2/components/footer/index.ts
23292
+ ;// ./src/v2/components/layout/footer/index.ts
23242
23293
 
23243
23294
 
23244
23295
  const FOOTER_TAG_NAME = 'solid-ui-footer';