solid-panes 5.0.0 → 5.1.0-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 (408) hide show
  1. package/README.md +67 -2
  2. package/dist/RDFXMLPane2.cjs.js.map +1 -1
  3. package/dist/_virtual/~icons/lucide/cake.cjs.js +2 -0
  4. package/dist/_virtual/~icons/lucide/cake.cjs.js.map +1 -0
  5. package/dist/_virtual/~icons/lucide/cake.esm.js +11 -0
  6. package/dist/_virtual/~icons/lucide/cake.esm.js.map +1 -0
  7. package/dist/_virtual/~icons/lucide/camera.cjs.js +2 -0
  8. package/dist/_virtual/~icons/lucide/camera.cjs.js.map +1 -0
  9. package/dist/_virtual/~icons/lucide/camera.esm.js +11 -0
  10. package/dist/_virtual/~icons/lucide/camera.esm.js.map +1 -0
  11. package/dist/_virtual/~icons/lucide/circle-user-round.cjs.js +2 -0
  12. package/dist/_virtual/~icons/lucide/circle-user-round.cjs.js.map +1 -0
  13. package/dist/_virtual/~icons/lucide/circle-user-round.esm.js +11 -0
  14. package/dist/_virtual/~icons/lucide/circle-user-round.esm.js.map +1 -0
  15. package/dist/_virtual/~icons/lucide/mail.cjs.js +2 -0
  16. package/dist/_virtual/~icons/lucide/mail.cjs.js.map +1 -0
  17. package/dist/_virtual/~icons/lucide/mail.esm.js +11 -0
  18. package/dist/_virtual/~icons/lucide/mail.esm.js.map +1 -0
  19. package/dist/_virtual/~icons/lucide/map-pin.cjs.js +2 -0
  20. package/dist/_virtual/~icons/lucide/map-pin.cjs.js.map +1 -0
  21. package/dist/_virtual/~icons/lucide/map-pin.esm.js +11 -0
  22. package/dist/_virtual/~icons/lucide/map-pin.esm.js.map +1 -0
  23. package/dist/_virtual/~icons/lucide/phone.cjs.js +2 -0
  24. package/dist/_virtual/~icons/lucide/phone.cjs.js.map +1 -0
  25. package/dist/_virtual/~icons/lucide/phone.esm.js +11 -0
  26. package/dist/_virtual/~icons/lucide/phone.esm.js.map +1 -0
  27. package/dist/_virtual/~icons/lucide/user-round-plus.cjs.js +2 -0
  28. package/dist/_virtual/~icons/lucide/user-round-plus.cjs.js.map +1 -0
  29. package/dist/_virtual/~icons/lucide/user-round-plus.esm.js +11 -0
  30. package/dist/_virtual/~icons/lucide/user-round-plus.esm.js.map +1 -0
  31. package/dist/_virtual/~icons/lucide/x.cjs.js +2 -0
  32. package/dist/_virtual/~icons/lucide/x.cjs.js.map +1 -0
  33. package/dist/_virtual/~icons/lucide/x.esm.js +11 -0
  34. package/dist/_virtual/~icons/lucide/x.esm.js.map +1 -0
  35. package/dist/audio/audioPane.cjs.js +1 -1
  36. package/dist/audio/audioPane.cjs.js.map +1 -1
  37. package/dist/audio/audioPane.esm.js +1 -5
  38. package/dist/audio/audioPane.esm.js.map +1 -1
  39. package/dist/classInstancePane.cjs.js.map +1 -1
  40. package/dist/components/editor-card/EditorCard.cjs.js +1 -1
  41. package/dist/components/editor-card/EditorCard.cjs.js.map +1 -1
  42. package/dist/components/editor-card/EditorCard.esm.js +4 -7
  43. package/dist/components/editor-card/EditorCard.esm.js.map +1 -1
  44. package/dist/components/file-explorer-header/FileExplorerHeader.cjs.js +1 -1
  45. package/dist/components/file-explorer-header/FileExplorerHeader.cjs.js.map +1 -1
  46. package/dist/components/file-explorer-header/FileExplorerHeader.esm.js +2 -2
  47. package/dist/components/file-explorer-header/FileExplorerHeaderControls.cjs.js +1 -1
  48. package/dist/components/file-explorer-header/FileExplorerHeaderControls.cjs.js.map +1 -1
  49. package/dist/components/file-explorer-header/FileExplorerHeaderControls.esm.js +2 -2
  50. package/dist/components/file-explorer-header/FileExplorerHeaderSummary.cjs.js +1 -1
  51. package/dist/components/file-explorer-header/FileExplorerHeaderSummary.cjs.js.map +1 -1
  52. package/dist/components/file-explorer-header/FileExplorerHeaderSummary.esm.js +2 -2
  53. package/dist/components/file-explorer-header/FileExplorerProvider.cjs.js +5 -5
  54. package/dist/components/file-explorer-header/FileExplorerProvider.cjs.js.map +1 -1
  55. package/dist/components/file-explorer-header/FileExplorerProvider.d.ts.map +1 -1
  56. package/dist/components/file-explorer-header/FileExplorerProvider.esm.js +97 -96
  57. package/dist/components/file-explorer-header/FileExplorerProvider.esm.js.map +1 -1
  58. package/dist/components/header/Header.cjs.js +1 -1
  59. package/dist/components/header/Header.cjs.js.map +1 -1
  60. package/dist/components/header/Header.esm.js +2 -2
  61. package/dist/components/header/Header.styles.cjs.js +1 -1
  62. package/dist/components/header/Header.styles.cjs.js.map +1 -1
  63. package/dist/components/header/Header.styles.esm.js +1 -1
  64. package/dist/components/header/Header.styles.esm.js.map +1 -1
  65. package/dist/components/navbar/Navbar.cjs.js +1 -1
  66. package/dist/components/navbar/Navbar.cjs.js.map +1 -1
  67. package/dist/components/navbar/Navbar.d.ts +2 -0
  68. package/dist/components/navbar/Navbar.d.ts.map +1 -1
  69. package/dist/components/navbar/Navbar.esm.js +2 -2
  70. package/dist/components/navbar/Navbar.esm.js.map +1 -1
  71. package/dist/components/navbar/Navbar.styles.cjs.js +1 -1
  72. package/dist/components/navbar/Navbar.styles.cjs.js.map +1 -1
  73. package/dist/components/navbar/Navbar.styles.esm.js +1 -1
  74. package/dist/components/navbar/Navbar.styles.esm.js.map +1 -1
  75. package/dist/components/profile-heading/ProfileHeading.cjs.js +95 -0
  76. package/dist/components/profile-heading/ProfileHeading.cjs.js.map +1 -0
  77. package/dist/components/profile-heading/ProfileHeading.d.ts +45 -0
  78. package/dist/components/profile-heading/ProfileHeading.d.ts.map +1 -0
  79. package/dist/components/profile-heading/ProfileHeading.esm.js +480 -0
  80. package/dist/components/profile-heading/ProfileHeading.esm.js.map +1 -0
  81. package/dist/components/profile-heading/ProfileHeading.styles.cjs.js +2 -0
  82. package/dist/components/profile-heading/ProfileHeading.styles.cjs.js.map +1 -0
  83. package/dist/components/profile-heading/ProfileHeading.styles.esm.js +7 -0
  84. package/dist/components/profile-heading/ProfileHeading.styles.esm.js.map +1 -0
  85. package/dist/components/profile-heading/editor/index.d.ts +3 -0
  86. package/dist/components/profile-heading/editor/index.d.ts.map +1 -0
  87. package/dist/components/profile-heading/editor/sections/contactInfo/types.d.ts +44 -0
  88. package/dist/components/profile-heading/editor/sections/contactInfo/types.d.ts.map +1 -0
  89. package/dist/components/profile-heading/editor/sections/heading/HeadingEditDialog.cjs.js +297 -0
  90. package/dist/components/profile-heading/editor/sections/heading/HeadingEditDialog.cjs.js.map +1 -0
  91. package/dist/components/profile-heading/editor/sections/heading/HeadingEditDialog.d.ts +5 -0
  92. package/dist/components/profile-heading/editor/sections/heading/HeadingEditDialog.d.ts.map +1 -0
  93. package/dist/components/profile-heading/editor/sections/heading/HeadingEditDialog.esm.js +642 -0
  94. package/dist/components/profile-heading/editor/sections/heading/HeadingEditDialog.esm.js.map +1 -0
  95. package/dist/components/profile-heading/editor/sections/heading/dateHelpers.cjs.js +2 -0
  96. package/dist/components/profile-heading/editor/sections/heading/dateHelpers.cjs.js.map +1 -0
  97. package/dist/components/profile-heading/editor/sections/heading/dateHelpers.d.ts +4 -0
  98. package/dist/components/profile-heading/editor/sections/heading/dateHelpers.d.ts.map +1 -0
  99. package/dist/components/profile-heading/editor/sections/heading/dateHelpers.esm.js +16 -0
  100. package/dist/components/profile-heading/editor/sections/heading/dateHelpers.esm.js.map +1 -0
  101. package/dist/components/profile-heading/editor/sections/heading/imageHelpers.cjs.js +2 -0
  102. package/dist/components/profile-heading/editor/sections/heading/imageHelpers.cjs.js.map +1 -0
  103. package/dist/components/profile-heading/editor/sections/heading/imageHelpers.d.ts +5 -0
  104. package/dist/components/profile-heading/editor/sections/heading/imageHelpers.d.ts.map +1 -0
  105. package/dist/components/profile-heading/editor/sections/heading/imageHelpers.esm.js +76 -0
  106. package/dist/components/profile-heading/editor/sections/heading/imageHelpers.esm.js.map +1 -0
  107. package/dist/components/profile-heading/editor/sections/heading/imagePreview.cjs.js +19 -0
  108. package/dist/components/profile-heading/editor/sections/heading/imagePreview.cjs.js.map +1 -0
  109. package/dist/components/profile-heading/editor/sections/heading/imagePreview.d.ts +2 -0
  110. package/dist/components/profile-heading/editor/sections/heading/imagePreview.d.ts.map +1 -0
  111. package/dist/components/profile-heading/editor/sections/heading/imagePreview.esm.js +28 -0
  112. package/dist/components/profile-heading/editor/sections/heading/imagePreview.esm.js.map +1 -0
  113. package/dist/components/profile-heading/editor/sections/heading/mutations.cjs.js +2 -0
  114. package/dist/components/profile-heading/editor/sections/heading/mutations.cjs.js.map +1 -0
  115. package/dist/components/profile-heading/editor/sections/heading/mutations.d.ts +4 -0
  116. package/dist/components/profile-heading/editor/sections/heading/mutations.d.ts.map +1 -0
  117. package/dist/components/profile-heading/editor/sections/heading/mutations.esm.js +151 -0
  118. package/dist/components/profile-heading/editor/sections/heading/mutations.esm.js.map +1 -0
  119. package/dist/components/profile-heading/editor/sections/heading/types.d.ts +34 -0
  120. package/dist/components/profile-heading/editor/sections/heading/types.d.ts.map +1 -0
  121. package/dist/components/profile-heading/editor/sections/shared/contactTypeUtils.cjs.js +2 -0
  122. package/dist/components/profile-heading/editor/sections/shared/contactTypeUtils.cjs.js.map +1 -0
  123. package/dist/components/profile-heading/editor/sections/shared/contactTypeUtils.d.ts +7 -0
  124. package/dist/components/profile-heading/editor/sections/shared/contactTypeUtils.d.ts.map +1 -0
  125. package/dist/components/profile-heading/editor/sections/shared/contactTypeUtils.esm.js +20 -0
  126. package/dist/components/profile-heading/editor/sections/shared/contactTypeUtils.esm.js.map +1 -0
  127. package/dist/components/profile-heading/editor/sections/shared/idNodeFactory.cjs.js +2 -0
  128. package/dist/components/profile-heading/editor/sections/shared/idNodeFactory.cjs.js.map +1 -0
  129. package/dist/components/profile-heading/editor/sections/shared/idNodeFactory.d.ts +3 -0
  130. package/dist/components/profile-heading/editor/sections/shared/idNodeFactory.d.ts.map +1 -0
  131. package/dist/components/profile-heading/editor/sections/shared/idNodeFactory.esm.js +11 -0
  132. package/dist/components/profile-heading/editor/sections/shared/idNodeFactory.esm.js.map +1 -0
  133. package/dist/components/profile-heading/editor/sections/shared/phoneCountries.cjs.js +2 -0
  134. package/dist/components/profile-heading/editor/sections/shared/phoneCountries.cjs.js.map +1 -0
  135. package/dist/components/profile-heading/editor/sections/shared/phoneCountries.d.ts +20 -0
  136. package/dist/components/profile-heading/editor/sections/shared/phoneCountries.d.ts.map +1 -0
  137. package/dist/components/profile-heading/editor/sections/shared/phoneCountries.esm.js +1291 -0
  138. package/dist/components/profile-heading/editor/sections/shared/phoneCountries.esm.js.map +1 -0
  139. package/dist/components/profile-heading/editor/sections/shared/rdfMutationHelpers.cjs.js +2 -0
  140. package/dist/components/profile-heading/editor/sections/shared/rdfMutationHelpers.cjs.js.map +1 -0
  141. package/dist/components/profile-heading/editor/sections/shared/rdfMutationHelpers.d.ts +45 -0
  142. package/dist/components/profile-heading/editor/sections/shared/rdfMutationHelpers.d.ts.map +1 -0
  143. package/dist/components/profile-heading/editor/sections/shared/rdfMutationHelpers.esm.js +211 -0
  144. package/dist/components/profile-heading/editor/sections/shared/rdfMutationHelpers.esm.js.map +1 -0
  145. package/dist/components/profile-heading/editor/sections/shared/rowState.cjs.js +2 -0
  146. package/dist/components/profile-heading/editor/sections/shared/rowState.cjs.js.map +1 -0
  147. package/dist/components/profile-heading/editor/sections/shared/rowState.d.ts +21 -0
  148. package/dist/components/profile-heading/editor/sections/shared/rowState.d.ts.map +1 -0
  149. package/dist/components/profile-heading/editor/sections/shared/rowState.esm.js +18 -0
  150. package/dist/components/profile-heading/editor/sections/shared/rowState.esm.js.map +1 -0
  151. package/dist/components/profile-heading/editor/sections/shared/sanitizeUtils.cjs.js +2 -0
  152. package/dist/components/profile-heading/editor/sections/shared/sanitizeUtils.cjs.js.map +1 -0
  153. package/dist/components/profile-heading/editor/sections/shared/sanitizeUtils.d.ts +5 -0
  154. package/dist/components/profile-heading/editor/sections/shared/sanitizeUtils.d.ts.map +1 -0
  155. package/dist/components/profile-heading/editor/sections/shared/sanitizeUtils.esm.js +18 -0
  156. package/dist/components/profile-heading/editor/sections/shared/sanitizeUtils.esm.js.map +1 -0
  157. package/dist/components/profile-heading/editor/sections/shared/types.d.ts +31 -0
  158. package/dist/components/profile-heading/editor/sections/shared/types.d.ts.map +1 -0
  159. package/dist/components/profile-heading/editor/textUtils.cjs.js +2 -0
  160. package/dist/components/profile-heading/editor/textUtils.cjs.js.map +1 -0
  161. package/dist/components/profile-heading/editor/textUtils.d.ts +6 -0
  162. package/dist/components/profile-heading/editor/textUtils.d.ts.map +1 -0
  163. package/dist/components/profile-heading/editor/textUtils.esm.js +26 -0
  164. package/dist/components/profile-heading/editor/textUtils.esm.js.map +1 -0
  165. package/dist/components/profile-heading/editor/texts/buttonTexts.d.ts +9 -0
  166. package/dist/components/profile-heading/editor/texts/buttonTexts.d.ts.map +1 -0
  167. package/dist/components/profile-heading/editor/texts/dialogTexts.cjs.js +2 -0
  168. package/dist/components/profile-heading/editor/texts/dialogTexts.cjs.js.map +1 -0
  169. package/dist/components/profile-heading/editor/texts/dialogTexts.d.ts +14 -0
  170. package/dist/components/profile-heading/editor/texts/dialogTexts.d.ts.map +1 -0
  171. package/dist/components/profile-heading/editor/texts/dialogTexts.esm.js +6 -0
  172. package/dist/components/profile-heading/editor/texts/dialogTexts.esm.js.map +1 -0
  173. package/dist/components/profile-heading/editor/texts/messageTexts.cjs.js +2 -0
  174. package/dist/components/profile-heading/editor/texts/messageTexts.cjs.js.map +1 -0
  175. package/dist/components/profile-heading/editor/texts/messageTexts.d.ts +42 -0
  176. package/dist/components/profile-heading/editor/texts/messageTexts.d.ts.map +1 -0
  177. package/dist/components/profile-heading/editor/texts/messageTexts.esm.js +6 -0
  178. package/dist/components/profile-heading/editor/texts/messageTexts.esm.js.map +1 -0
  179. package/dist/components/profile-heading/editor/texts/profileTexts.d.ts +14 -0
  180. package/dist/components/profile-heading/editor/texts/profileTexts.d.ts.map +1 -0
  181. package/dist/components/profile-heading/editor/texts/qrCodeTexts.d.ts +2 -0
  182. package/dist/components/profile-heading/editor/texts/qrCodeTexts.d.ts.map +1 -0
  183. package/dist/components/profile-heading/editor/texts.d.ts +6 -0
  184. package/dist/components/profile-heading/editor/texts.d.ts.map +1 -0
  185. package/dist/components/profile-heading/editor/ui/dialog.d.ts +41 -0
  186. package/dist/components/profile-heading/editor/ui/dialog.d.ts.map +1 -0
  187. package/dist/components/profile-heading/editor/ui/dialog2.cjs.js +17 -0
  188. package/dist/components/profile-heading/editor/ui/dialog2.cjs.js.map +1 -0
  189. package/dist/components/profile-heading/editor/ui/dialog2.esm.js +263 -0
  190. package/dist/components/profile-heading/editor/ui/dialog2.esm.js.map +1 -0
  191. package/dist/components/profile-heading/editor/ui/spinner.cjs.js +5 -0
  192. package/dist/components/profile-heading/editor/ui/spinner.cjs.js.map +1 -0
  193. package/dist/components/profile-heading/editor/ui/spinner.d.ts +3 -0
  194. package/dist/components/profile-heading/editor/ui/spinner.d.ts.map +1 -0
  195. package/dist/components/profile-heading/editor/ui/spinner.esm.js +12 -0
  196. package/dist/components/profile-heading/editor/ui/spinner.esm.js.map +1 -0
  197. package/dist/components/profile-heading/editor/utils/errorDisplay.cjs.js +2 -0
  198. package/dist/components/profile-heading/editor/utils/errorDisplay.cjs.js.map +1 -0
  199. package/dist/components/profile-heading/editor/utils/errorDisplay.d.ts +2 -0
  200. package/dist/components/profile-heading/editor/utils/errorDisplay.d.ts.map +1 -0
  201. package/dist/components/profile-heading/editor/utils/errorDisplay.esm.js +18 -0
  202. package/dist/components/profile-heading/editor/utils/errorDisplay.esm.js.map +1 -0
  203. package/dist/components/profile-heading/friendActions.cjs.js +2 -0
  204. package/dist/components/profile-heading/friendActions.cjs.js.map +1 -0
  205. package/dist/components/profile-heading/friendActions.d.ts +11 -0
  206. package/dist/components/profile-heading/friendActions.d.ts.map +1 -0
  207. package/dist/components/profile-heading/friendActions.esm.js +32 -0
  208. package/dist/components/profile-heading/friendActions.esm.js.map +1 -0
  209. package/dist/components/profile-heading/index.cjs.js +1 -0
  210. package/dist/components/profile-heading/index.d.ts +5 -0
  211. package/dist/components/profile-heading/index.d.ts.map +1 -0
  212. package/dist/components/profile-heading/index.esm.js +1 -0
  213. package/dist/components/profile-heading/profileHeadingData.cjs.js +2 -0
  214. package/dist/components/profile-heading/profileHeadingData.cjs.js.map +1 -0
  215. package/dist/components/profile-heading/profileHeadingData.d.ts +6 -0
  216. package/dist/components/profile-heading/profileHeadingData.d.ts.map +1 -0
  217. package/dist/components/profile-heading/profileHeadingData.esm.js +81 -0
  218. package/dist/components/profile-heading/profileHeadingData.esm.js.map +1 -0
  219. package/dist/components/resource-actions-menu/ResourceActionsMenu.cjs.js +1 -1
  220. package/dist/components/resource-actions-menu/ResourceActionsMenu.cjs.js.map +1 -1
  221. package/dist/components/resource-actions-menu/ResourceActionsMenu.esm.js +2 -2
  222. package/dist/dashboard/basicPreferences.cjs.js.map +1 -1
  223. package/dist/dashboard/dashboardPane.cjs.js.map +1 -1
  224. package/dist/dashboard/homepage.cjs.js.map +1 -1
  225. package/dist/dataContentPane2.cjs.js.map +1 -1
  226. package/dist/defaultPane2.cjs.js.map +1 -1
  227. package/dist/dokieli/dokieliPane.cjs.js.map +1 -1
  228. package/dist/form/pane.cjs.js.map +1 -1
  229. package/dist/home/homePane.cjs.js.map +1 -1
  230. package/dist/humanReadablePane2.cjs.js.map +1 -1
  231. package/dist/icons/folder.cjs.js.map +1 -1
  232. package/dist/icons/friends.cjs.js.map +1 -1
  233. package/dist/icons/person.cjs.js.map +1 -1
  234. package/dist/imagePane2.cjs.js.map +1 -1
  235. package/dist/index.cjs.js +1 -1
  236. package/dist/index.cjs.js.map +1 -1
  237. package/dist/index.d.ts +2 -1
  238. package/dist/index.d.ts.map +1 -1
  239. package/dist/index.esm.js +15 -14
  240. package/dist/index.esm.js.map +1 -1
  241. package/dist/internal/internalPane2.cjs.js +1 -1
  242. package/dist/internal/internalPane2.cjs.js.map +1 -1
  243. package/dist/internal/internalPane2.esm.js +2 -5
  244. package/dist/internal/internalPane2.esm.js.map +1 -1
  245. package/dist/mainPage/header.cjs.js +1 -1
  246. package/dist/mainPage/header.cjs.js.map +1 -1
  247. package/dist/mainPage/header.d.ts +2 -2
  248. package/dist/mainPage/header.d.ts.map +1 -1
  249. package/dist/mainPage/header.esm.js +48 -44
  250. package/dist/mainPage/header.esm.js.map +1 -1
  251. package/dist/mainPage/index.cjs.js +1 -1
  252. package/dist/mainPage/index.cjs.js.map +1 -1
  253. package/dist/mainPage/index.d.ts.map +1 -1
  254. package/dist/mainPage/index.esm.js +27 -21
  255. package/dist/mainPage/index.esm.js.map +1 -1
  256. package/dist/mainPage/navbar.cjs.js +1 -1
  257. package/dist/mainPage/navbar.cjs.js.map +1 -1
  258. package/dist/mainPage/navbar.d.ts +3 -2
  259. package/dist/mainPage/navbar.d.ts.map +1 -1
  260. package/dist/mainPage/navbar.esm.js +77 -42
  261. package/dist/mainPage/navbar.esm.js.map +1 -1
  262. package/dist/mainPage/navigation.cjs.js +2 -0
  263. package/dist/mainPage/navigation.cjs.js.map +1 -0
  264. package/dist/mainPage/navigation.d.ts +6 -0
  265. package/dist/mainPage/navigation.d.ts.map +1 -0
  266. package/dist/mainPage/navigation.esm.js +22 -0
  267. package/dist/mainPage/navigation.esm.js.map +1 -0
  268. package/dist/mainPage/profileHeading.d.ts +5 -0
  269. package/dist/mainPage/profileHeading.d.ts.map +1 -0
  270. package/dist/mainPage/profileHeading2.cjs.js +2 -0
  271. package/dist/mainPage/profileHeading2.cjs.js.map +1 -0
  272. package/dist/mainPage/profileHeading2.esm.js +158 -0
  273. package/dist/mainPage/profileHeading2.esm.js.map +1 -0
  274. package/dist/n3Pane2.cjs.js.map +1 -1
  275. package/dist/navigation/browserEvents.cjs.js +2 -0
  276. package/dist/navigation/browserEvents.cjs.js.map +1 -0
  277. package/dist/navigation/browserEvents.d.ts +15 -0
  278. package/dist/navigation/browserEvents.d.ts.map +1 -0
  279. package/dist/navigation/browserEvents.esm.js +32 -0
  280. package/dist/navigation/browserEvents.esm.js.map +1 -0
  281. package/dist/navigation/chrome.cjs.js +2 -0
  282. package/dist/navigation/chrome.cjs.js.map +1 -0
  283. package/dist/navigation/chrome.d.ts +69 -0
  284. package/dist/navigation/chrome.d.ts.map +1 -0
  285. package/dist/navigation/chrome.esm.js +43 -0
  286. package/dist/navigation/chrome.esm.js.map +1 -0
  287. package/dist/navigation/controller.cjs.js +2 -0
  288. package/dist/navigation/controller.cjs.js.map +1 -0
  289. package/dist/navigation/controller.d.ts +51 -0
  290. package/dist/navigation/controller.d.ts.map +1 -0
  291. package/dist/navigation/controller.esm.js +45 -0
  292. package/dist/navigation/controller.esm.js.map +1 -0
  293. package/dist/navigation/events.cjs.js +2 -0
  294. package/dist/navigation/events.cjs.js.map +1 -0
  295. package/dist/navigation/events.d.ts +17 -0
  296. package/dist/navigation/events.d.ts.map +1 -0
  297. package/dist/navigation/events.esm.js +18 -0
  298. package/dist/navigation/events.esm.js.map +1 -0
  299. package/dist/navigation/navbarVisibility.cjs.js +2 -0
  300. package/dist/navigation/navbarVisibility.cjs.js.map +1 -0
  301. package/dist/navigation/navbarVisibility.d.ts +5 -0
  302. package/dist/navigation/navbarVisibility.d.ts.map +1 -0
  303. package/dist/navigation/navbarVisibility.esm.js +26 -0
  304. package/dist/navigation/navbarVisibility.esm.js.map +1 -0
  305. package/dist/navigation/options.cjs.js +2 -0
  306. package/dist/navigation/options.cjs.js.map +1 -0
  307. package/dist/navigation/options.d.ts +16 -0
  308. package/dist/navigation/options.d.ts.map +1 -0
  309. package/dist/navigation/options.esm.js +8 -0
  310. package/dist/navigation/options.esm.js.map +1 -0
  311. package/dist/navigation/podContext.cjs.js +2 -0
  312. package/dist/navigation/podContext.cjs.js.map +1 -0
  313. package/dist/navigation/podContext.d.ts +21 -0
  314. package/dist/navigation/podContext.d.ts.map +1 -0
  315. package/dist/navigation/podContext.esm.js +62 -0
  316. package/dist/navigation/podContext.esm.js.map +1 -0
  317. package/dist/navigation/state.cjs.js +2 -0
  318. package/dist/navigation/state.cjs.js.map +1 -0
  319. package/dist/navigation/state.d.ts +40 -0
  320. package/dist/navigation/state.d.ts.map +1 -0
  321. package/dist/navigation/state.esm.js +41 -0
  322. package/dist/navigation/state.esm.js.map +1 -0
  323. package/dist/outline/context.cjs.js.map +1 -1
  324. package/dist/outline/manager2.cjs.js +1 -1
  325. package/dist/outline/manager2.cjs.js.map +1 -1
  326. package/dist/outline/manager2.esm.js +387 -353
  327. package/dist/outline/manager2.esm.js.map +1 -1
  328. package/dist/outline/outlineIcons.cjs.js.map +1 -1
  329. package/dist/outline/propertyViews.cjs.js.map +1 -1
  330. package/dist/outline/queryByExample.cjs.js.map +1 -1
  331. package/dist/outline/userInput.cjs.js +1 -1
  332. package/dist/outline/userInput.cjs.js.map +1 -1
  333. package/dist/outline/userInput.esm.js +12 -13
  334. package/dist/outline/userInput.esm.js.map +1 -1
  335. package/dist/outline/viewAsImage.cjs.js.map +1 -1
  336. package/dist/outline/viewAsMbox.cjs.js.map +1 -1
  337. package/dist/pad/padPane2.cjs.js +1 -1
  338. package/dist/pad/padPane2.cjs.js.map +1 -1
  339. package/dist/pad/padPane2.esm.js +2 -6
  340. package/dist/pad/padPane2.esm.js.map +1 -1
  341. package/dist/playlist/playlistPane.cjs.js.map +1 -1
  342. package/dist/registerPanes.cjs.js.map +1 -1
  343. package/dist/schedule/schedulePane2.cjs.js +1 -1
  344. package/dist/schedule/schedulePane2.cjs.js.map +1 -1
  345. package/dist/schedule/schedulePane2.esm.js +1 -5
  346. package/dist/schedule/schedulePane2.esm.js.map +1 -1
  347. package/dist/sharing/sharingPane.cjs.js.map +1 -1
  348. package/dist/slideshow/slideshowPane.cjs.js.map +1 -1
  349. package/dist/social/editProfileDetails.cjs.js +1 -1
  350. package/dist/social/editProfileDetails.cjs.js.map +1 -1
  351. package/dist/social/editProfileDetails.esm.js +0 -2
  352. package/dist/social/editProfileDetails.esm.js.map +1 -1
  353. package/dist/social/icons.cjs.js +4 -4
  354. package/dist/social/icons.cjs.js.map +1 -1
  355. package/dist/social/icons.esm.js +5 -5
  356. package/dist/social/icons.esm.js.map +1 -1
  357. package/dist/social/socialPane.d.ts +0 -1
  358. package/dist/social/socialPane.d.ts.map +1 -1
  359. package/dist/social/socialPane2.cjs.js +3 -3
  360. package/dist/social/socialPane2.cjs.js.map +1 -1
  361. package/dist/social/socialPane2.esm.js +97 -154
  362. package/dist/social/socialPane2.esm.js.map +1 -1
  363. package/dist/social/socialSections.cjs.js +1 -1
  364. package/dist/social/socialSections.cjs.js.map +1 -1
  365. package/dist/social/socialSections.d.ts +2 -1
  366. package/dist/social/socialSections.d.ts.map +1 -1
  367. package/dist/social/socialSections.esm.js +54 -129
  368. package/dist/social/socialSections.esm.js.map +1 -1
  369. package/dist/social/triage.cjs.js.map +1 -1
  370. package/dist/tabbed/tabbedPane.cjs.js.map +1 -1
  371. package/dist/tableViewPane.cjs.js.map +1 -1
  372. package/dist/transaction/pane.cjs.js.map +1 -1
  373. package/dist/transaction/pane.esm.js +1 -1
  374. package/dist/transaction/pane.esm.js.map +1 -1
  375. package/dist/transaction/period.cjs.js.map +1 -1
  376. package/dist/trip/tripPane.cjs.js.map +1 -1
  377. package/dist/trustedApplications/trustedApplications.dom.cjs.js.map +1 -1
  378. package/dist/trustedApplications/trustedApplications.utils.cjs.js.map +1 -1
  379. package/dist/trustedApplications/trustedApplications.view.cjs.js.map +1 -1
  380. package/dist/types.d.ts +3 -0
  381. package/dist/types.d.ts.map +1 -0
  382. package/dist/ui/pane.cjs.js +1 -1
  383. package/dist/ui/pane.cjs.js.map +1 -1
  384. package/dist/ui/pane.esm.js +2 -5
  385. package/dist/ui/pane.esm.js.map +1 -1
  386. package/dist/utils/paneUtils.cjs.js +1 -1
  387. package/dist/utils/paneUtils.cjs.js.map +1 -1
  388. package/dist/utils/paneUtils.esm.js +4 -4
  389. package/dist/utils/paneUtils.esm.js.map +1 -1
  390. package/dist/utils/podUtils.cjs.js.map +1 -1
  391. package/dist/utils/viewerUtils.cjs.js +2 -0
  392. package/dist/utils/viewerUtils.cjs.js.map +1 -0
  393. package/dist/utils/viewerUtils.d.ts +5 -0
  394. package/dist/utils/viewerUtils.d.ts.map +1 -0
  395. package/dist/utils/viewerUtils.esm.js +13 -0
  396. package/dist/utils/viewerUtils.esm.js.map +1 -0
  397. package/dist/utils/webIdUtils.cjs.js +1 -1
  398. package/dist/utils/webIdUtils.cjs.js.map +1 -1
  399. package/dist/utils/webIdUtils.d.ts +1 -0
  400. package/dist/utils/webIdUtils.d.ts.map +1 -1
  401. package/dist/utils/webIdUtils.esm.js +23 -19
  402. package/dist/utils/webIdUtils.esm.js.map +1 -1
  403. package/dist/versionInfo.cjs.js +1 -1
  404. package/dist/versionInfo.cjs.js.map +1 -1
  405. package/dist/versionInfo.esm.js +11 -11
  406. package/dist/versionInfo.esm.js.map +1 -1
  407. package/dist/video/videoPane.cjs.js.map +1 -1
  408. package/package.json +6 -5
@@ -0,0 +1,5 @@
1
+ export declare function sanitizeEmailValue(value: string): string;
2
+ export declare function sanitizePhoneLocalValue(value: string): string;
3
+ export declare function sanitizeAddressFieldValue(value: string): string;
4
+ export declare function sanitizeBasicInputFieldValue(value: string): string;
5
+ //# sourceMappingURL=sanitizeUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sanitizeUtils.d.ts","sourceRoot":"","sources":["../../../../../../src/components/profile-heading/editor/sections/shared/sanitizeUtils.ts"],"names":[],"mappings":"AAEA,wBAAgB,kBAAkB,CAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED,wBAAgB,uBAAuB,CAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAE9D;AAED,wBAAgB,yBAAyB,CAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED,wBAAgB,4BAA4B,CAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAEnE"}
@@ -0,0 +1,18 @@
1
+ import { sanitizeTextValue as e } from "../../textUtils.esm.js";
2
+ //#region src/components/profile-heading/editor/sections/shared/sanitizeUtils.ts
3
+ function t(t) {
4
+ return e(t).replace(/\s+/g, "");
5
+ }
6
+ function n(t) {
7
+ return e(t).replace(/[^0-9()\-\s.]/g, "");
8
+ }
9
+ function r(t) {
10
+ return e(t);
11
+ }
12
+ function i(t) {
13
+ return e(t);
14
+ }
15
+ //#endregion
16
+ export { r as sanitizeAddressFieldValue, i as sanitizeBasicInputFieldValue, t as sanitizeEmailValue, n as sanitizePhoneLocalValue };
17
+
18
+ //# sourceMappingURL=sanitizeUtils.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sanitizeUtils.esm.js","names":["sanitizeTextValue","sanitizeEmailValue","value","replace","sanitizePhoneLocalValue","sanitizeAddressFieldValue","sanitizeBasicInputFieldValue","sanitizeEmailValue","sanitizeTextValue","value","sanitizePhoneLocalValue","sanitizeAddressFieldValue","sanitizeBasicInputFieldValue"],"sources":["../../../../../../src/components/profile-heading/editor/sections/shared/sanitizeUtils.ts"],"sourcesContent":["import { sanitizeTextValue } from '../../textUtils'\n\nexport function sanitizeEmailValue (value: string): string {\n return sanitizeTextValue(value).replace(/\\s+/g, '')\n}\n\nexport function sanitizePhoneLocalValue (value: string): string {\n return sanitizeTextValue(value).replace(/[^0-9()\\-\\s.]/g, '')\n}\n\nexport function sanitizeAddressFieldValue (value: string): string {\n return sanitizeTextValue(value)\n}\n\nexport function sanitizeBasicInputFieldValue (value: string): string {\n return sanitizeTextValue(value)\n}\n"],"mappings":";;AAEA,SAAgBC,EAAoBC,GAAuB;CACzD,OAAOF,EAAkBE,CAAK,CAAC,CAACC,QAAQ,QAAQ,EAAE;AACpD;AAEA,SAAgBC,EAAyBF,GAAuB;CAC9D,OAAOF,EAAkBE,CAAK,CAAC,CAACC,QAAQ,kBAAkB,EAAE;AAC9D;AAEA,SAAgBE,EAA2BH,GAAuB;CAChE,OAAOF,EAAkBE,CAAK;AAChC;AAEA,SAAgBI,EAA8BJ,GAAuB;CACnE,OAAOF,EAAkBE,CAAK;AAChC"}
@@ -0,0 +1,31 @@
1
+ import { LiveStore, NamedNode, st } from '../../../../../../node_modules/rdflib';
2
+ export type RowStatus = 'existing' | 'new' | 'modified' | 'deleted';
3
+ export type MutationOps<T> = {
4
+ create: T[];
5
+ update: T[];
6
+ remove: T[];
7
+ };
8
+ export type RdfStatement = ReturnType<typeof st>;
9
+ export type PrefixCapable = {
10
+ namespaces?: Record<string, string>;
11
+ setPrefixForURI?: (prefix: string, uri: string) => void;
12
+ };
13
+ export type UpdateCallback = (_uri: string, ok: boolean, message?: string) => void;
14
+ export type DavUpdateCallback = (_uri: string, ok: boolean, body?: string) => void;
15
+ export type RdfUpdater = PrefixCapable & {
16
+ update?: (deletions: RdfStatement[], insertions: RdfStatement[], callback: UpdateCallback) => void;
17
+ updateDav?: (doc: NamedNode, deletions: RdfStatement[], insertions: RdfStatement[], callback: DavUpdateCallback) => void;
18
+ serialize?: (docUri: string, statements: RdfStatement[], contentType: string) => string;
19
+ store?: PrefixCapable;
20
+ };
21
+ export type WebOperationResponse = {
22
+ ok?: boolean;
23
+ status?: number;
24
+ responseText?: string;
25
+ };
26
+ export type RdfFetcher = {
27
+ load?: (doc: NamedNode) => Promise<unknown>;
28
+ webOperation?: (...args: unknown[]) => Promise<WebOperationResponse>;
29
+ };
30
+ export type MutationCapableStore = LiveStore;
31
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/components/profile-heading/editor/sections/shared/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAEjD,MAAM,MAAM,SAAS,GAAG,UAAU,GAAG,KAAK,GAAG,UAAU,GAAG,SAAS,CAAA;AAEnE,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;IAC3B,MAAM,EAAE,CAAC,EAAE,CAAA;IACX,MAAM,EAAE,CAAC,EAAE,CAAA;IACX,MAAM,EAAE,CAAC,EAAE,CAAA;CACZ,CAAA;AAED,MAAM,MAAM,YAAY,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC,CAAA;AAEhD,MAAM,MAAM,aAAa,GAAG;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACnC,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;CACxD,CAAA;AAED,MAAM,MAAM,cAAc,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;AAElF,MAAM,MAAM,iBAAiB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;AAElF,MAAM,MAAM,UAAU,GAAG,aAAa,GAAG;IACvC,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,YAAY,EAAE,EAAE,UAAU,EAAE,YAAY,EAAE,EAAE,QAAQ,EAAE,cAAc,KAAK,IAAI,CAAA;IAClG,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,EAAE,UAAU,EAAE,YAAY,EAAE,EAAE,QAAQ,EAAE,iBAAiB,KAAK,IAAI,CAAA;IACxH,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,EAAE,WAAW,EAAE,MAAM,KAAK,MAAM,CAAA;IACvF,KAAK,CAAC,EAAE,aAAa,CAAA;CACtB,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,EAAE,CAAC,EAAE,OAAO,CAAA;IACZ,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB,CAAA;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,SAAS,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;IAC3C,YAAY,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,oBAAoB,CAAC,CAAA;CACrE,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG,SAAS,CAAA"}
@@ -0,0 +1,2 @@
1
+ function e(e){if(!e)return``;if(typeof e==`string`)return e;if(typeof e==`object`&&`value`in e){let t=e.value;return typeof t==`string`?t:``}return``}function t(t){let n=e(t).trim();if(!n)return``;let r=n.replace(/^<|>$/g,``).split(`#`),i=r[r.length-1].split(`/`);return i[i.length-1]}function n(e){return e.replace(/[\u0000-\u001F\u007F]/g,` `).replace(/\s+/g,` `).trim()}function r(e){return!!(e&&e.trim()!==``)}exports.hasNonEmptyText=r,exports.sanitizeTextValue=n,exports.toText=e,exports.toTypeLabel=t;
2
+ //# sourceMappingURL=textUtils.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"textUtils.cjs.js","names":["strToUpperCase","str","trim","length","strCase","split","i","charAt","toUpperCase","substring","join","toText","value","nested","toTypeLabel","raw","withoutAngles","replace","hashParts","lastByHash","slashParts","sanitizeTextValue","hasNonEmptyText","Boolean","toText","value","nested","toTypeLabel","raw","hashParts","slashParts","sanitizeTextValue","hasNonEmptyText"],"sources":["../../../../src/components/profile-heading/editor/textUtils.ts"],"sourcesContent":["export function strToUpperCase (str: string) {\n if (str.trim().length > 0) {\n const strCase = str.split(' ')\n for (let i = 0; i < strCase.length; i++) {\n strCase[i] = strCase[i].charAt(0).toUpperCase() +\n strCase[i].substring(1)\n }\n return strCase.join(' ')\n }\n return ''\n}\n\nexport function toText (value: unknown): string {\n if (!value) return ''\n if (typeof value === 'string') return value\n if (typeof value === 'object' && 'value' in (value as Record<string, unknown>)) {\n const nested = (value as { value?: unknown }).value\n return typeof nested === 'string' ? nested : ''\n }\n return ''\n}\n\nexport function toTypeLabel (value: unknown): string {\n const raw = toText(value).trim()\n if (!raw) return ''\n const withoutAngles = raw.replace(/^<|>$/g, '')\n const hashParts = withoutAngles.split('#')\n const lastByHash = hashParts[hashParts.length - 1]\n const slashParts = lastByHash.split('/')\n return slashParts[slashParts.length - 1]\n}\n\nexport function sanitizeTextValue (value: string): string {\n return value\n // Control characters must be removed from user-entered profile values.\n // eslint-disable-next-line no-control-regex\n .replace(/[\\u0000-\\u001F\\u007F]/g, ' ')\n .replace(/\\s+/g, ' ')\n .trim()\n}\n\nexport function hasNonEmptyText (value: string | undefined): boolean {\n return Boolean(value && value.trim() !== '')\n}\n"],"mappings":"AAYA,SAAgBW,EAAQC,EAAwB,CAC9C,GAAI,CAACA,EAAO,MAAO,GACnB,GAAI,OAAOA,GAAU,SAAU,OAAOA,EACtC,GAAI,OAAOA,GAAU,UAAY,UAAYA,EAAmC,CAC9E,IAAMC,EAAUD,EAA8BA,MAC9C,OAAO,OAAOC,GAAW,SAAWA,EAAS,EAC/C,CACA,MAAO,EACT,CAEA,SAAgBC,EAAaF,EAAwB,CACnD,IAAMG,EAAMJ,EAAOC,CAAK,CAAC,CAACV,KAAK,EAC/B,GAAI,CAACa,EAAK,MAAO,GAEjB,IAAMG,EADgBH,EAAIE,QAAQ,SAAU,EAC1BD,CAAAA,CAAcX,MAAM,GAAG,EAEnCe,EADaF,EAAUA,EAAUf,OAAS,EAC7BgB,CAAWd,MAAM,GAAG,EACvC,OAAOe,EAAWA,EAAWjB,OAAS,EACxC,CAEA,SAAgBkB,EAAmBT,EAAuB,CACxD,OAAOA,EAGJK,QAAQ,yBAA0B,GAAG,CAAC,CACtCA,QAAQ,OAAQ,GAAG,CAAC,CACpBf,KAAK,CACV,CAEA,SAAgBoB,EAAiBV,EAAoC,CACnE,MAAOW,GAAQX,GAASA,EAAMV,KAAK,IAAM,GAC3C,C"}
@@ -0,0 +1,6 @@
1
+ export declare function strToUpperCase(str: string): string;
2
+ export declare function toText(value: unknown): string;
3
+ export declare function toTypeLabel(value: unknown): string;
4
+ export declare function sanitizeTextValue(value: string): string;
5
+ export declare function hasNonEmptyText(value: string | undefined): boolean;
6
+ //# sourceMappingURL=textUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"textUtils.d.ts","sourceRoot":"","sources":["../../../../src/components/profile-heading/editor/textUtils.ts"],"names":[],"mappings":"AAAA,wBAAgB,cAAc,CAAE,GAAG,EAAE,MAAM,UAU1C;AAED,wBAAgB,MAAM,CAAE,KAAK,EAAE,OAAO,GAAG,MAAM,CAQ9C;AAED,wBAAgB,WAAW,CAAE,KAAK,EAAE,OAAO,GAAG,MAAM,CAQnD;AAED,wBAAgB,iBAAiB,CAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAOxD;AAED,wBAAgB,eAAe,CAAE,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAEnE"}
@@ -0,0 +1,26 @@
1
+ //#region src/components/profile-heading/editor/textUtils.ts
2
+ function e(e) {
3
+ if (!e) return "";
4
+ if (typeof e == "string") return e;
5
+ if (typeof e == "object" && "value" in e) {
6
+ let t = e.value;
7
+ return typeof t == "string" ? t : "";
8
+ }
9
+ return "";
10
+ }
11
+ function t(t) {
12
+ let n = e(t).trim();
13
+ if (!n) return "";
14
+ let r = n.replace(/^<|>$/g, "").split("#"), i = r[r.length - 1].split("/");
15
+ return i[i.length - 1];
16
+ }
17
+ function n(e) {
18
+ return e.replace(/[\u0000-\u001F\u007F]/g, " ").replace(/\s+/g, " ").trim();
19
+ }
20
+ function r(e) {
21
+ return !!(e && e.trim() !== "");
22
+ }
23
+ //#endregion
24
+ export { r as hasNonEmptyText, n as sanitizeTextValue, e as toText, t as toTypeLabel };
25
+
26
+ //# sourceMappingURL=textUtils.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"textUtils.esm.js","names":["strToUpperCase","str","trim","length","strCase","split","i","charAt","toUpperCase","substring","join","toText","value","nested","toTypeLabel","raw","withoutAngles","replace","hashParts","lastByHash","slashParts","sanitizeTextValue","hasNonEmptyText","Boolean","toText","value","nested","toTypeLabel","raw","hashParts","slashParts","sanitizeTextValue","hasNonEmptyText"],"sources":["../../../../src/components/profile-heading/editor/textUtils.ts"],"sourcesContent":["export function strToUpperCase (str: string) {\n if (str.trim().length > 0) {\n const strCase = str.split(' ')\n for (let i = 0; i < strCase.length; i++) {\n strCase[i] = strCase[i].charAt(0).toUpperCase() +\n strCase[i].substring(1)\n }\n return strCase.join(' ')\n }\n return ''\n}\n\nexport function toText (value: unknown): string {\n if (!value) return ''\n if (typeof value === 'string') return value\n if (typeof value === 'object' && 'value' in (value as Record<string, unknown>)) {\n const nested = (value as { value?: unknown }).value\n return typeof nested === 'string' ? nested : ''\n }\n return ''\n}\n\nexport function toTypeLabel (value: unknown): string {\n const raw = toText(value).trim()\n if (!raw) return ''\n const withoutAngles = raw.replace(/^<|>$/g, '')\n const hashParts = withoutAngles.split('#')\n const lastByHash = hashParts[hashParts.length - 1]\n const slashParts = lastByHash.split('/')\n return slashParts[slashParts.length - 1]\n}\n\nexport function sanitizeTextValue (value: string): string {\n return value\n // Control characters must be removed from user-entered profile values.\n // eslint-disable-next-line no-control-regex\n .replace(/[\\u0000-\\u001F\\u007F]/g, ' ')\n .replace(/\\s+/g, ' ')\n .trim()\n}\n\nexport function hasNonEmptyText (value: string | undefined): boolean {\n return Boolean(value && value.trim() !== '')\n}\n"],"mappings":";AAYA,SAAgBW,EAAQC,GAAwB;CAC9C,IAAI,CAACA,GAAO,OAAO;CACnB,IAAI,OAAOA,KAAU,UAAU,OAAOA;CACtC,IAAI,OAAOA,KAAU,YAAY,WAAYA,GAAmC;EAC9E,IAAMC,IAAUD,EAA8BA;EAC9C,OAAO,OAAOC,KAAW,WAAWA,IAAS;CAC/C;CACA,OAAO;AACT;AAEA,SAAgBC,EAAaF,GAAwB;CACnD,IAAMG,IAAMJ,EAAOC,CAAK,CAAC,CAACV,KAAK;CAC/B,IAAI,CAACa,GAAK,OAAO;CAEjB,IAAMG,IADgBH,EAAIE,QAAQ,UAAU,EAC1BD,CAAAA,CAAcX,MAAM,GAAG,GAEnCe,IADaF,EAAUA,EAAUf,SAAS,EAC7BgB,CAAWd,MAAM,GAAG;CACvC,OAAOe,EAAWA,EAAWjB,SAAS;AACxC;AAEA,SAAgBkB,EAAmBT,GAAuB;CACxD,OAAOA,EAGJK,QAAQ,0BAA0B,GAAG,CAAC,CACtCA,QAAQ,QAAQ,GAAG,CAAC,CACpBf,KAAK;AACV;AAEA,SAAgBoB,EAAiBV,GAAoC;CACnE,OAAOW,GAAQX,KAASA,EAAMV,KAAK,MAAM;AAC3C"}
@@ -0,0 +1,9 @@
1
+ export declare const addMeToYourFriendsButtonText = "Add as friend";
2
+ export declare const logInAddMeToYourFriendsButtonText = "Log in to add as friend";
3
+ export declare const addMeToYourContactsButtonText = "Add as Contact";
4
+ export declare const logInAddMeToYourContactsButtonText = "Login to add me to your contacts";
5
+ export declare const logInToChatWithMeButtonText = "Login to chat with me";
6
+ export declare const friendExistsAlreadyButtonText = "Already a friend";
7
+ export declare const contactExistsAlreadyButtonText = "Already part of contacts";
8
+ export declare const contactExistsAlreadyByNameButtonText = "Add webID to contact";
9
+ //# sourceMappingURL=buttonTexts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buttonTexts.d.ts","sourceRoot":"","sources":["../../../../../src/components/profile-heading/editor/texts/buttonTexts.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,4BAA4B,kBAAkB,CAAA;AAC3D,eAAO,MAAM,iCAAiC,4BAA4B,CAAA;AAC1E,eAAO,MAAM,6BAA6B,mBAAmB,CAAA;AAC7D,eAAO,MAAM,kCAAkC,qCAAqC,CAAA;AACpF,eAAO,MAAM,2BAA2B,0BAA0B,CAAA;AAClE,eAAO,MAAM,6BAA6B,qBAAqB,CAAA;AAC/D,eAAO,MAAM,8BAA8B,6BAA6B,CAAA;AACxE,eAAO,MAAM,oCAAoC,yBAAyB,CAAA"}
@@ -0,0 +1,2 @@
1
+ var e=`Edit Heading`,t=`Save Changes`,n=`Cancel`;exports.dialogCancelLabelText=n,exports.dialogSubmitLabelText=t,exports.editHeadingDialogTitleText=e;
2
+ //# sourceMappingURL=dialogTexts.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialogTexts.cjs.js","names":["editSkillsDialogTitleText","editLanguagesDialogTitleText","editContactInfoDialogTitleText","editResumeDialogTitleText","editEducationDialogTitleText","editProjectsDialogTitleText","editHeadingDialogTitleText","editSocialDialogTitleText","editBioDialogTitleText","dialogSubmitLabelText","dialogCancelLabelText","pasteEntryButtonTitleText","deleteEntryButtonTitleText","editHeadingDialogTitleText","dialogSubmitLabelText","dialogCancelLabelText"],"sources":["../../../../../src/components/profile-heading/editor/texts/dialogTexts.ts"],"sourcesContent":["export const editSkillsDialogTitleText = 'Edit Skills'\nexport const editLanguagesDialogTitleText = 'Edit Languages'\nexport const editContactInfoDialogTitleText = 'Edit More Contacts'\nexport const editResumeDialogTitleText = 'Edit Resume'\nexport const editEducationDialogTitleText = 'Edit Education'\nexport const editProjectsDialogTitleText = 'Add Projects & Communities'\nexport const editHeadingDialogTitleText = 'Edit Heading'\nexport const editSocialDialogTitleText = 'Edit Social Links'\nexport const editBioDialogTitleText = 'Edit Bio'\nexport const dialogSubmitLabelText = 'Save Changes'\nexport const dialogCancelLabelText = 'Cancel'\nexport const pasteEntryButtonTitleText = 'Paste'\nexport const deleteEntryButtonTitleText = 'Delete entry'\n"],"mappings":"AAMA,IAAaM,EAA6B,eAG7BG,EAAwB,eACxBC,EAAwB,S"}
@@ -0,0 +1,14 @@
1
+ export declare const editSkillsDialogTitleText = "Edit Skills";
2
+ export declare const editLanguagesDialogTitleText = "Edit Languages";
3
+ export declare const editContactInfoDialogTitleText = "Edit More Contacts";
4
+ export declare const editResumeDialogTitleText = "Edit Resume";
5
+ export declare const editEducationDialogTitleText = "Edit Education";
6
+ export declare const editProjectsDialogTitleText = "Add Projects & Communities";
7
+ export declare const editHeadingDialogTitleText = "Edit Heading";
8
+ export declare const editSocialDialogTitleText = "Edit Social Links";
9
+ export declare const editBioDialogTitleText = "Edit Bio";
10
+ export declare const dialogSubmitLabelText = "Save Changes";
11
+ export declare const dialogCancelLabelText = "Cancel";
12
+ export declare const pasteEntryButtonTitleText = "Paste";
13
+ export declare const deleteEntryButtonTitleText = "Delete entry";
14
+ //# sourceMappingURL=dialogTexts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialogTexts.d.ts","sourceRoot":"","sources":["../../../../../src/components/profile-heading/editor/texts/dialogTexts.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,yBAAyB,gBAAgB,CAAA;AACtD,eAAO,MAAM,4BAA4B,mBAAmB,CAAA;AAC5D,eAAO,MAAM,8BAA8B,uBAAuB,CAAA;AAClE,eAAO,MAAM,yBAAyB,gBAAgB,CAAA;AACtD,eAAO,MAAM,4BAA4B,mBAAmB,CAAA;AAC5D,eAAO,MAAM,2BAA2B,+BAA+B,CAAA;AACvE,eAAO,MAAM,0BAA0B,iBAAiB,CAAA;AACxD,eAAO,MAAM,yBAAyB,sBAAsB,CAAA;AAC5D,eAAO,MAAM,sBAAsB,aAAa,CAAA;AAChD,eAAO,MAAM,qBAAqB,iBAAiB,CAAA;AACnD,eAAO,MAAM,qBAAqB,WAAW,CAAA;AAC7C,eAAO,MAAM,yBAAyB,UAAU,CAAA;AAChD,eAAO,MAAM,0BAA0B,iBAAiB,CAAA"}
@@ -0,0 +1,6 @@
1
+ //#region src/components/profile-heading/editor/texts/dialogTexts.ts
2
+ var e = "Edit Heading", t = "Save Changes", n = "Cancel";
3
+ //#endregion
4
+ export { n as dialogCancelLabelText, t as dialogSubmitLabelText, e as editHeadingDialogTitleText };
5
+
6
+ //# sourceMappingURL=dialogTexts.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialogTexts.esm.js","names":["editSkillsDialogTitleText","editLanguagesDialogTitleText","editContactInfoDialogTitleText","editResumeDialogTitleText","editEducationDialogTitleText","editProjectsDialogTitleText","editHeadingDialogTitleText","editSocialDialogTitleText","editBioDialogTitleText","dialogSubmitLabelText","dialogCancelLabelText","pasteEntryButtonTitleText","deleteEntryButtonTitleText","editHeadingDialogTitleText","dialogSubmitLabelText","dialogCancelLabelText"],"sources":["../../../../../src/components/profile-heading/editor/texts/dialogTexts.ts"],"sourcesContent":["export const editSkillsDialogTitleText = 'Edit Skills'\nexport const editLanguagesDialogTitleText = 'Edit Languages'\nexport const editContactInfoDialogTitleText = 'Edit More Contacts'\nexport const editResumeDialogTitleText = 'Edit Resume'\nexport const editEducationDialogTitleText = 'Edit Education'\nexport const editProjectsDialogTitleText = 'Add Projects & Communities'\nexport const editHeadingDialogTitleText = 'Edit Heading'\nexport const editSocialDialogTitleText = 'Edit Social Links'\nexport const editBioDialogTitleText = 'Edit Bio'\nexport const dialogSubmitLabelText = 'Save Changes'\nexport const dialogCancelLabelText = 'Cancel'\nexport const pasteEntryButtonTitleText = 'Paste'\nexport const deleteEntryButtonTitleText = 'Delete entry'\n"],"mappings":";AAMA,IAAaM,IAA6B,gBAG7BG,IAAwB,gBACxBC,IAAwB"}
@@ -0,0 +1,2 @@
1
+ var e=`You need to log in as the profile owner to save contact updates.`,t=`Unable to save your heading information.`,n=`Heading mutation save failed`,r=`Store does not support updates`,i=`Failed to save updates`;exports.fallbackSaveUpdatesErrorMessageText=i,exports.headingMutationSaveFailedDebugText=n,exports.ownerLoginRequiredDialogMessageText=e,exports.saveHeadingUpdatesFailedMessageText=t,exports.updaterUnsupportedStoreErrorMessageText=r;
2
+ //# sourceMappingURL=messageTexts.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messageTexts.cjs.js","names":["userNotLoggedInErrorMessage","friendWasAddedSuccesMessage","contactWasAddedSuccesMessage","friendExistsMessage","contactExistsMessage","loadingMessage","groupIsRequired","errorGroupCreation","errorContactCreation","errorAddressBookCreation","errorReadingAddressBook","errorLoadingContact","errorGettingAddressBooks","errorNotExistsAddressBookUri","errorProcessingUriAddressBook","errorUnableToDetermineUserWorkspace","errorAddingContactWebIDToAddressBook","ownerLoginRequiredDialogMessageText","saveContactUpdatesFailedMessageText","saveHeadingUpdatesFailedMessageText","saveLanguageUpdatesFailedMessageText","saveSkillsUpdatesFailedMessageText","saveResumeUpdatesFailedMessageText","saveEducationUpdatesFailedMessageText","saveProjectsUpdatesFailedMessageText","unfollowProjectFailedMessageText","saveSocialUpdatesFailedMessageText","saveBioUpdatesFailedMessageText","bioMutationSaveFailedDebugText","addContactWebIdSaveFailedDebugText","contactInfoMutationSaveFailedDebugText","educationMutationSaveFailedDebugText","headingMutationSaveFailedDebugText","languageMutationSaveFailedDebugText","projectsMutationSaveFailedDebugText","resumeMutationSaveFailedDebugText","skillsMutationSaveFailedDebugText","socialMutationSaveFailedDebugText","resumeUpdateEntryNotFoundErrorMessageText","updaterUnsupportedStoreErrorMessageText","fallbackSaveUpdatesErrorMessageText","ownerLoginRequiredDialogMessageText","saveHeadingUpdatesFailedMessageText","headingMutationSaveFailedDebugText","updaterUnsupportedStoreErrorMessageText","fallbackSaveUpdatesErrorMessageText"],"sources":["../../../../../src/components/profile-heading/editor/texts/messageTexts.ts"],"sourcesContent":["export const userNotLoggedInErrorMessage = 'Current user not found! Not logged in?'\nexport const friendWasAddedSuccesMessage = 'Friend was added!'\nexport const contactWasAddedSuccesMessage = 'Contact was added!'\nexport const friendExistsMessage = 'Friend already exists'\nexport const contactExistsMessage = 'Contact already exists'\nexport const loadingMessage = 'Loading...'\nexport const groupIsRequired = 'You need to either pick a group or enter one.'\nexport const errorGroupCreation = 'Unable to create the group.'\nexport const errorContactCreation = 'Unable to add the contact.'\nexport const errorAddressBookCreation = 'Unable to create your address book.'\nexport const errorReadingAddressBook = 'There was an error reading your address book.'\nexport const errorLoadingContact = 'There was an error loading the contact: '\nexport const errorGettingAddressBooks = 'There was an error getting your address books.'\nexport const errorNotExistsAddressBookUri = 'Please enter an address book URI.'\nexport const errorProcessingUriAddressBook = 'Unable to add your address book.'\nexport const errorUnableToDetermineUserWorkspace = 'Unable to determine user workspace for new address book.'\nexport const errorAddingContactWebIDToAddressBook = 'Contact webID was not saved.'\nexport const ownerLoginRequiredDialogMessageText = 'You need to log in as the profile owner to save contact updates.'\n\nexport const saveContactUpdatesFailedMessageText = 'Unable to save your contact information.'\nexport const saveHeadingUpdatesFailedMessageText = 'Unable to save your heading information.'\nexport const saveLanguageUpdatesFailedMessageText = 'Unable to save your languages.'\nexport const saveSkillsUpdatesFailedMessageText = 'Unable to save your skills.'\nexport const saveResumeUpdatesFailedMessageText = 'Unable to save your resume.'\nexport const saveEducationUpdatesFailedMessageText = 'Unable to save your education history.'\nexport const saveProjectsUpdatesFailedMessageText = 'Unable to save your project data.'\nexport const unfollowProjectFailedMessageText = 'Unable to unfollow the project.'\nexport const saveSocialUpdatesFailedMessageText = 'Unable to save your social accounts.'\nexport const saveBioUpdatesFailedMessageText = 'Unable to save your bio.'\n\nexport const bioMutationSaveFailedDebugText = 'Bio mutation save failed'\nexport const addContactWebIdSaveFailedDebugText = 'Add contact WebID save failed'\nexport const contactInfoMutationSaveFailedDebugText = 'Contact info mutation save failed'\nexport const educationMutationSaveFailedDebugText = 'Education mutation save failed'\nexport const headingMutationSaveFailedDebugText = 'Heading mutation save failed'\nexport const languageMutationSaveFailedDebugText = 'Language mutation save failed'\nexport const projectsMutationSaveFailedDebugText = 'Projects mutation save failed'\nexport const resumeMutationSaveFailedDebugText = 'Resume mutation save failed'\nexport const skillsMutationSaveFailedDebugText = 'Skills mutation save failed'\nexport const socialMutationSaveFailedDebugText = 'Social mutation save failed'\nexport const resumeUpdateEntryNotFoundErrorMessageText = 'Could not find existing resume entry for update. Please reload profile data and try again.'\nexport const updaterUnsupportedStoreErrorMessageText = 'Store does not support updates'\nexport const fallbackSaveUpdatesErrorMessageText = 'Failed to save updates'\n"],"mappings":"AAiBA,IAAaiB,EAAsC,mEAGtCE,EAAsC,2CActCa,EAAqC,+BAOrCO,EAA0C,iCAC1CC,EAAsC,yB"}
@@ -0,0 +1,42 @@
1
+ export declare const userNotLoggedInErrorMessage = "Current user not found! Not logged in?";
2
+ export declare const friendWasAddedSuccesMessage = "Friend was added!";
3
+ export declare const contactWasAddedSuccesMessage = "Contact was added!";
4
+ export declare const friendExistsMessage = "Friend already exists";
5
+ export declare const contactExistsMessage = "Contact already exists";
6
+ export declare const loadingMessage = "Loading...";
7
+ export declare const groupIsRequired = "You need to either pick a group or enter one.";
8
+ export declare const errorGroupCreation = "Unable to create the group.";
9
+ export declare const errorContactCreation = "Unable to add the contact.";
10
+ export declare const errorAddressBookCreation = "Unable to create your address book.";
11
+ export declare const errorReadingAddressBook = "There was an error reading your address book.";
12
+ export declare const errorLoadingContact = "There was an error loading the contact: ";
13
+ export declare const errorGettingAddressBooks = "There was an error getting your address books.";
14
+ export declare const errorNotExistsAddressBookUri = "Please enter an address book URI.";
15
+ export declare const errorProcessingUriAddressBook = "Unable to add your address book.";
16
+ export declare const errorUnableToDetermineUserWorkspace = "Unable to determine user workspace for new address book.";
17
+ export declare const errorAddingContactWebIDToAddressBook = "Contact webID was not saved.";
18
+ export declare const ownerLoginRequiredDialogMessageText = "You need to log in as the profile owner to save contact updates.";
19
+ export declare const saveContactUpdatesFailedMessageText = "Unable to save your contact information.";
20
+ export declare const saveHeadingUpdatesFailedMessageText = "Unable to save your heading information.";
21
+ export declare const saveLanguageUpdatesFailedMessageText = "Unable to save your languages.";
22
+ export declare const saveSkillsUpdatesFailedMessageText = "Unable to save your skills.";
23
+ export declare const saveResumeUpdatesFailedMessageText = "Unable to save your resume.";
24
+ export declare const saveEducationUpdatesFailedMessageText = "Unable to save your education history.";
25
+ export declare const saveProjectsUpdatesFailedMessageText = "Unable to save your project data.";
26
+ export declare const unfollowProjectFailedMessageText = "Unable to unfollow the project.";
27
+ export declare const saveSocialUpdatesFailedMessageText = "Unable to save your social accounts.";
28
+ export declare const saveBioUpdatesFailedMessageText = "Unable to save your bio.";
29
+ export declare const bioMutationSaveFailedDebugText = "Bio mutation save failed";
30
+ export declare const addContactWebIdSaveFailedDebugText = "Add contact WebID save failed";
31
+ export declare const contactInfoMutationSaveFailedDebugText = "Contact info mutation save failed";
32
+ export declare const educationMutationSaveFailedDebugText = "Education mutation save failed";
33
+ export declare const headingMutationSaveFailedDebugText = "Heading mutation save failed";
34
+ export declare const languageMutationSaveFailedDebugText = "Language mutation save failed";
35
+ export declare const projectsMutationSaveFailedDebugText = "Projects mutation save failed";
36
+ export declare const resumeMutationSaveFailedDebugText = "Resume mutation save failed";
37
+ export declare const skillsMutationSaveFailedDebugText = "Skills mutation save failed";
38
+ export declare const socialMutationSaveFailedDebugText = "Social mutation save failed";
39
+ export declare const resumeUpdateEntryNotFoundErrorMessageText = "Could not find existing resume entry for update. Please reload profile data and try again.";
40
+ export declare const updaterUnsupportedStoreErrorMessageText = "Store does not support updates";
41
+ export declare const fallbackSaveUpdatesErrorMessageText = "Failed to save updates";
42
+ //# sourceMappingURL=messageTexts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messageTexts.d.ts","sourceRoot":"","sources":["../../../../../src/components/profile-heading/editor/texts/messageTexts.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,2BAA2B,2CAA2C,CAAA;AACnF,eAAO,MAAM,2BAA2B,sBAAsB,CAAA;AAC9D,eAAO,MAAM,4BAA4B,uBAAuB,CAAA;AAChE,eAAO,MAAM,mBAAmB,0BAA0B,CAAA;AAC1D,eAAO,MAAM,oBAAoB,2BAA2B,CAAA;AAC5D,eAAO,MAAM,cAAc,eAAe,CAAA;AAC1C,eAAO,MAAM,eAAe,kDAAkD,CAAA;AAC9E,eAAO,MAAM,kBAAkB,gCAAgC,CAAA;AAC/D,eAAO,MAAM,oBAAoB,+BAA+B,CAAA;AAChE,eAAO,MAAM,wBAAwB,wCAAwC,CAAA;AAC7E,eAAO,MAAM,uBAAuB,kDAAkD,CAAA;AACtF,eAAO,MAAM,mBAAmB,6CAA6C,CAAA;AAC7E,eAAO,MAAM,wBAAwB,mDAAmD,CAAA;AACxF,eAAO,MAAM,4BAA4B,sCAAsC,CAAA;AAC/E,eAAO,MAAM,6BAA6B,qCAAqC,CAAA;AAC/E,eAAO,MAAM,mCAAmC,6DAA6D,CAAA;AAC7G,eAAO,MAAM,oCAAoC,iCAAiC,CAAA;AAClF,eAAO,MAAM,mCAAmC,qEAAqE,CAAA;AAErH,eAAO,MAAM,mCAAmC,6CAA6C,CAAA;AAC7F,eAAO,MAAM,mCAAmC,6CAA6C,CAAA;AAC7F,eAAO,MAAM,oCAAoC,mCAAmC,CAAA;AACpF,eAAO,MAAM,kCAAkC,gCAAgC,CAAA;AAC/E,eAAO,MAAM,kCAAkC,gCAAgC,CAAA;AAC/E,eAAO,MAAM,qCAAqC,2CAA2C,CAAA;AAC7F,eAAO,MAAM,oCAAoC,sCAAsC,CAAA;AACvF,eAAO,MAAM,gCAAgC,oCAAoC,CAAA;AACjF,eAAO,MAAM,kCAAkC,yCAAyC,CAAA;AACxF,eAAO,MAAM,+BAA+B,6BAA6B,CAAA;AAEzE,eAAO,MAAM,8BAA8B,6BAA6B,CAAA;AACxE,eAAO,MAAM,kCAAkC,kCAAkC,CAAA;AACjF,eAAO,MAAM,sCAAsC,sCAAsC,CAAA;AACzF,eAAO,MAAM,oCAAoC,mCAAmC,CAAA;AACpF,eAAO,MAAM,kCAAkC,iCAAiC,CAAA;AAChF,eAAO,MAAM,mCAAmC,kCAAkC,CAAA;AAClF,eAAO,MAAM,mCAAmC,kCAAkC,CAAA;AAClF,eAAO,MAAM,iCAAiC,gCAAgC,CAAA;AAC9E,eAAO,MAAM,iCAAiC,gCAAgC,CAAA;AAC9E,eAAO,MAAM,iCAAiC,gCAAgC,CAAA;AAC9E,eAAO,MAAM,yCAAyC,+FAA+F,CAAA;AACrJ,eAAO,MAAM,uCAAuC,mCAAmC,CAAA;AACvF,eAAO,MAAM,mCAAmC,2BAA2B,CAAA"}
@@ -0,0 +1,6 @@
1
+ //#region src/components/profile-heading/editor/texts/messageTexts.ts
2
+ var e = "You need to log in as the profile owner to save contact updates.", t = "Unable to save your heading information.", n = "Heading mutation save failed", r = "Store does not support updates", i = "Failed to save updates";
3
+ //#endregion
4
+ export { i as fallbackSaveUpdatesErrorMessageText, n as headingMutationSaveFailedDebugText, e as ownerLoginRequiredDialogMessageText, t as saveHeadingUpdatesFailedMessageText, r as updaterUnsupportedStoreErrorMessageText };
5
+
6
+ //# sourceMappingURL=messageTexts.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messageTexts.esm.js","names":["userNotLoggedInErrorMessage","friendWasAddedSuccesMessage","contactWasAddedSuccesMessage","friendExistsMessage","contactExistsMessage","loadingMessage","groupIsRequired","errorGroupCreation","errorContactCreation","errorAddressBookCreation","errorReadingAddressBook","errorLoadingContact","errorGettingAddressBooks","errorNotExistsAddressBookUri","errorProcessingUriAddressBook","errorUnableToDetermineUserWorkspace","errorAddingContactWebIDToAddressBook","ownerLoginRequiredDialogMessageText","saveContactUpdatesFailedMessageText","saveHeadingUpdatesFailedMessageText","saveLanguageUpdatesFailedMessageText","saveSkillsUpdatesFailedMessageText","saveResumeUpdatesFailedMessageText","saveEducationUpdatesFailedMessageText","saveProjectsUpdatesFailedMessageText","unfollowProjectFailedMessageText","saveSocialUpdatesFailedMessageText","saveBioUpdatesFailedMessageText","bioMutationSaveFailedDebugText","addContactWebIdSaveFailedDebugText","contactInfoMutationSaveFailedDebugText","educationMutationSaveFailedDebugText","headingMutationSaveFailedDebugText","languageMutationSaveFailedDebugText","projectsMutationSaveFailedDebugText","resumeMutationSaveFailedDebugText","skillsMutationSaveFailedDebugText","socialMutationSaveFailedDebugText","resumeUpdateEntryNotFoundErrorMessageText","updaterUnsupportedStoreErrorMessageText","fallbackSaveUpdatesErrorMessageText","ownerLoginRequiredDialogMessageText","saveHeadingUpdatesFailedMessageText","headingMutationSaveFailedDebugText","updaterUnsupportedStoreErrorMessageText","fallbackSaveUpdatesErrorMessageText"],"sources":["../../../../../src/components/profile-heading/editor/texts/messageTexts.ts"],"sourcesContent":["export const userNotLoggedInErrorMessage = 'Current user not found! Not logged in?'\nexport const friendWasAddedSuccesMessage = 'Friend was added!'\nexport const contactWasAddedSuccesMessage = 'Contact was added!'\nexport const friendExistsMessage = 'Friend already exists'\nexport const contactExistsMessage = 'Contact already exists'\nexport const loadingMessage = 'Loading...'\nexport const groupIsRequired = 'You need to either pick a group or enter one.'\nexport const errorGroupCreation = 'Unable to create the group.'\nexport const errorContactCreation = 'Unable to add the contact.'\nexport const errorAddressBookCreation = 'Unable to create your address book.'\nexport const errorReadingAddressBook = 'There was an error reading your address book.'\nexport const errorLoadingContact = 'There was an error loading the contact: '\nexport const errorGettingAddressBooks = 'There was an error getting your address books.'\nexport const errorNotExistsAddressBookUri = 'Please enter an address book URI.'\nexport const errorProcessingUriAddressBook = 'Unable to add your address book.'\nexport const errorUnableToDetermineUserWorkspace = 'Unable to determine user workspace for new address book.'\nexport const errorAddingContactWebIDToAddressBook = 'Contact webID was not saved.'\nexport const ownerLoginRequiredDialogMessageText = 'You need to log in as the profile owner to save contact updates.'\n\nexport const saveContactUpdatesFailedMessageText = 'Unable to save your contact information.'\nexport const saveHeadingUpdatesFailedMessageText = 'Unable to save your heading information.'\nexport const saveLanguageUpdatesFailedMessageText = 'Unable to save your languages.'\nexport const saveSkillsUpdatesFailedMessageText = 'Unable to save your skills.'\nexport const saveResumeUpdatesFailedMessageText = 'Unable to save your resume.'\nexport const saveEducationUpdatesFailedMessageText = 'Unable to save your education history.'\nexport const saveProjectsUpdatesFailedMessageText = 'Unable to save your project data.'\nexport const unfollowProjectFailedMessageText = 'Unable to unfollow the project.'\nexport const saveSocialUpdatesFailedMessageText = 'Unable to save your social accounts.'\nexport const saveBioUpdatesFailedMessageText = 'Unable to save your bio.'\n\nexport const bioMutationSaveFailedDebugText = 'Bio mutation save failed'\nexport const addContactWebIdSaveFailedDebugText = 'Add contact WebID save failed'\nexport const contactInfoMutationSaveFailedDebugText = 'Contact info mutation save failed'\nexport const educationMutationSaveFailedDebugText = 'Education mutation save failed'\nexport const headingMutationSaveFailedDebugText = 'Heading mutation save failed'\nexport const languageMutationSaveFailedDebugText = 'Language mutation save failed'\nexport const projectsMutationSaveFailedDebugText = 'Projects mutation save failed'\nexport const resumeMutationSaveFailedDebugText = 'Resume mutation save failed'\nexport const skillsMutationSaveFailedDebugText = 'Skills mutation save failed'\nexport const socialMutationSaveFailedDebugText = 'Social mutation save failed'\nexport const resumeUpdateEntryNotFoundErrorMessageText = 'Could not find existing resume entry for update. Please reload profile data and try again.'\nexport const updaterUnsupportedStoreErrorMessageText = 'Store does not support updates'\nexport const fallbackSaveUpdatesErrorMessageText = 'Failed to save updates'\n"],"mappings":";AAiBA,IAAaiB,IAAsC,oEAGtCE,IAAsC,4CActCa,IAAqC,gCAOrCO,IAA0C,kCAC1CC,IAAsC"}
@@ -0,0 +1,14 @@
1
+ export declare const yourContactInformationHeading = "Your profile";
2
+ export declare const otherPreferencesHeadingText = "Other preferences";
3
+ export declare const communitiesHeadingText = "Your communities";
4
+ export declare const resumeHeadingText = "Resume";
5
+ export declare const bioHeadingText = "Bio";
6
+ export declare const educationHeadingText = "Education";
7
+ export declare const skillsHeadingText = "Skills";
8
+ export declare const languagesHeadingText = "Languages";
9
+ export declare const projectsHeadingText = "Projects & Communities";
10
+ export declare const contactInfoHeadingText = "More Contacts";
11
+ export declare const contactInfoEmptyHeadingText = "Contact Info";
12
+ export declare const socialAccountsHeadingText = "Follow me on";
13
+ export declare const friendsHeadingText = "Friends";
14
+ //# sourceMappingURL=profileTexts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profileTexts.d.ts","sourceRoot":"","sources":["../../../../../src/components/profile-heading/editor/texts/profileTexts.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,6BAA6B,iBAAiB,CAAA;AAC3D,eAAO,MAAM,2BAA2B,sBAAsB,CAAA;AAC9D,eAAO,MAAM,sBAAsB,qBAAqB,CAAA;AACxD,eAAO,MAAM,iBAAiB,WAAW,CAAA;AACzC,eAAO,MAAM,cAAc,QAAQ,CAAA;AACnC,eAAO,MAAM,oBAAoB,cAAc,CAAA;AAC/C,eAAO,MAAM,iBAAiB,WAAW,CAAA;AACzC,eAAO,MAAM,oBAAoB,cAAc,CAAA;AAC/C,eAAO,MAAM,mBAAmB,2BAA2B,CAAA;AAC3D,eAAO,MAAM,sBAAsB,kBAAkB,CAAA;AACrD,eAAO,MAAM,2BAA2B,iBAAiB,CAAA;AACzD,eAAO,MAAM,yBAAyB,iBAAiB,CAAA;AACvD,eAAO,MAAM,kBAAkB,YAAY,CAAA"}
@@ -0,0 +1,2 @@
1
+ export declare const scanQrToConnectText = "Add to Contacts";
2
+ //# sourceMappingURL=qrCodeTexts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"qrCodeTexts.d.ts","sourceRoot":"","sources":["../../../../../src/components/profile-heading/editor/texts/qrCodeTexts.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,oBAAoB,CAAA"}
@@ -0,0 +1,6 @@
1
+ export * from './texts/buttonTexts';
2
+ export * from './texts/dialogTexts';
3
+ export * from './texts/messageTexts';
4
+ export * from './texts/profileTexts';
5
+ export * from './texts/qrCodeTexts';
6
+ //# sourceMappingURL=texts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"texts.d.ts","sourceRoot":"","sources":["../../../../src/components/profile-heading/editor/texts.ts"],"names":[],"mappings":"AACA,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,cAAc,sBAAsB,CAAA;AACpC,cAAc,sBAAsB,CAAA;AACpC,cAAc,qBAAqB,CAAA"}
@@ -0,0 +1,41 @@
1
+ type DialogButtonValue = boolean | 'save' | null;
2
+ type DialogHeaderAction = {
3
+ type: 'close';
4
+ } | {
5
+ type: 'none';
6
+ } | {
7
+ type: 'button';
8
+ label: string;
9
+ ariaLabel?: string;
10
+ className?: string;
11
+ onClick?: () => Promise<void> | void;
12
+ };
13
+ type DialogActionControl = HTMLElement & {
14
+ disabled?: boolean;
15
+ label?: string;
16
+ click: () => void;
17
+ shadowRoot?: ShadowRoot | null;
18
+ };
19
+ export declare function getSharedDialogSaveButton(root: ParentNode): DialogActionControl | null;
20
+ export declare function getSharedDialogCancelButton(root: ParentNode): DialogActionControl | null;
21
+ export declare function closeSharedDialog(): void;
22
+ export declare function alertDialog(message: string, title: string | undefined, dom: Document): Promise<DialogButtonValue>;
23
+ export declare function setSharedDialogSavingState(dom: Document, isSaving: boolean, submitLabel?: string): void;
24
+ type OpenInputDialogCustom = {
25
+ title: string;
26
+ dom: Document;
27
+ form: HTMLFormElement;
28
+ submitLabel?: string;
29
+ cancelLabel?: string;
30
+ headerAction?: DialogHeaderAction;
31
+ hideFooterButtons?: boolean;
32
+ onOpen?: () => void;
33
+ shouldCloseWithoutSave?: () => Promise<boolean> | boolean;
34
+ validate?: () => Promise<string | null> | string | null;
35
+ onSave?: () => Promise<void> | void;
36
+ formatSaveError?: (error: unknown) => string;
37
+ };
38
+ type InputDialogValues = Record<string, string>;
39
+ export declare function openInputDialog(options: OpenInputDialogCustom): Promise<InputDialogValues | null>;
40
+ export {};
41
+ //# sourceMappingURL=dialog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialog.d.ts","sourceRoot":"","sources":["../../../../../src/components/profile-heading/editor/ui/dialog.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,CAAA;AACrB,OAAO,4BAA4B,CAAA;AACnC,OAAO,iBAAiB,CAAA;AAqHxB,KAAK,iBAAiB,GAAG,OAAO,GAAG,MAAM,GAAG,IAAI,CAAA;AAShD,KAAK,kBAAkB,GACnB;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IACA,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;CACrC,CAAA;AAYH,KAAK,mBAAmB,GAAG,WAAW,GAAG;IACvC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,UAAU,CAAC,EAAE,UAAU,GAAG,IAAI,CAAA;CAC/B,CAAA;AAyBD,wBAAgB,yBAAyB,CAAE,IAAI,EAAE,UAAU,GAAG,mBAAmB,GAAG,IAAI,CAEvF;AAED,wBAAgB,2BAA2B,CAAE,IAAI,EAAE,UAAU,GAAG,mBAAmB,GAAG,IAAI,CAEzF;AA4RD,wBAAgB,iBAAiB,IAAK,IAAI,CAEzC;AAED,wBAAgB,WAAW,CAAE,OAAO,EAAE,MAAM,EAAE,KAAK,oBAAgB,EAAE,GAAG,EAAE,QAAQ,8BAOjF;AAwCD,wBAAgB,0BAA0B,CAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,SAAmB,GAAG,IAAI,CAGlH;AAED,KAAK,qBAAqB,GAAG;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,QAAQ,CAAC;IACd,IAAI,EAAE,eAAe,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,sBAAsB,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;IAC1D,QAAQ,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC;IACxD,MAAM,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACpC,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAA;CAC7C,CAAA;AAED,KAAK,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAK/C,wBAAgB,eAAe,CAAE,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CA8GlG"}
@@ -0,0 +1,17 @@
1
+ (function(){try{if(typeof document<`u`){var e=document.createElement(`style`);e.appendChild(document.createTextNode(`#profile-modal .modal:has(#modal-desc>.profile__edit-form solid-ui-combobox:focus-within) #modal-desc{padding-bottom:calc(var(--profile-modal-panel-inline-padding) + 30px)}@media (width<=576px){#profile-modal{--profile-modal-panel-max-height:calc(100dvh - 4 * 15px);padding-top:max(15px, env(safe-area-inset-top));padding-right:0;padding-bottom:max(15px, env(safe-area-inset-bottom));place-items:center;padding-left:0}#profile-modal .modal{width:var(--profile-modal-panel-width);max-width:var(--profile-modal-panel-max-width);overscroll-behavior:contain;border-radius:5px;place-self:center;min-width:0;margin:0;padding:0}#profile-modal .modal .modal-header{gap:25px;padding:15px}#profile-modal .modal #modal-title{font-size:var(--solid-ui-font-size-lg,1.125rem);line-height:1.4}#profile-modal .modal #modal-desc{padding:15px 15px 25px}#profile-modal #modal-buttons{justify-content:flex-end;align-items:center;gap:var(--profile-modal-button-gap);padding:var(--profile-modal-compact-padding);flex-direction:row;width:100%}#profile-modal #modal-buttons>solid-ui-button{flex:1 0 0;width:auto;min-width:0}}html[data-layout=mobile] #profile-modal{--profile-modal-panel-max-height:calc(100dvh - 4 * 15px);padding-top:max(15px, env(safe-area-inset-top));padding-right:0;padding-bottom:max(15px, env(safe-area-inset-bottom));place-items:center;padding-left:0}html[data-layout=mobile] #profile-modal .modal{width:var(--profile-modal-panel-width);height:auto;max-height:var(--profile-modal-panel-max-height);max-width:var(--profile-modal-panel-max-width);overscroll-behavior:contain;border-radius:5px;place-self:center;min-width:0;margin:0;padding:0}html[data-layout=mobile] #profile-modal .modal .modal-header{gap:25px;padding:15px}html[data-layout=mobile] #profile-modal .modal #modal-title{font-size:var(--solid-ui-font-size-lg,1.125rem);line-height:1.4}html[data-layout=mobile] #profile-modal .modal #modal-desc{padding:15px 15px 25px}html[data-layout=mobile] #profile-modal #modal-buttons{justify-content:flex-end;align-items:center;gap:var(--profile-modal-button-gap);padding:var(--profile-modal-compact-padding);flex-direction:row;width:100%}html[data-layout=mobile] #profile-modal #modal-buttons>solid-ui-button{flex:1 0 0;width:auto;min-width:0}#profile-modal{--profile-modal-backdrop:var(--overlay-bg-muted,#00000080);--profile-modal-panel-inline-padding:25px;--profile-modal-panel-block-padding:20px;--profile-modal-compact-padding:15px;--profile-modal-button-gap:15px;--profile-modal-error-padding:12px;--profile-modal-panel-width:min(600px, calc(100vw - 32px));--profile-modal-panel-max-width:600px;--profile-modal-panel-max-height:calc(100dvh - 32px);background:var(--profile-modal-backdrop);z-index:9999;overscroll-behavior:contain;width:100%;max-width:none;height:100%;max-height:none;padding:0;padding-top:max(25px, env(safe-area-inset-top));padding-right:0;padding-bottom:max(25px, env(safe-area-inset-bottom));border:none;place-items:center;margin:0;padding-left:0;display:grid;position:fixed;inset:0;overflow:hidden}#profile-modal:not([open]){display:none}#profile-modal::backdrop{background:var(--profile-modal-backdrop)}#profile-modal .modal{box-sizing:border-box;background:var(--color-background);max-width:var(--profile-modal-panel-max-width);width:var(--profile-modal-panel-width);max-height:var(--profile-modal-panel-max-height);box-shadow:var(--box-shadow-modal,0 2px 10px #0000004d);border-radius:5px;grid-template-rows:auto minmax(0,1fr) auto auto;place-self:center;margin:0;display:grid;position:relative;overflow:hidden}#profile-modal .modal .modal-header{gap:var(--spacing-lg);width:100%;min-width:0;padding:var(--profile-modal-panel-block-padding) var(--profile-modal-panel-inline-padding);box-sizing:border-box;border-bottom:1px solid var(--solid-ui-color-slate-200,#e2e8f0);background:var(--solid-ui-color-slate-50,#f8fafc);border-radius:5px 5px 0 0}#profile-modal .modal #modal-desc{overscroll-behavior:contain;width:100%;min-width:0;min-height:0;padding:var(--profile-modal-panel-inline-padding);box-sizing:border-box;overflow:auto}#profile-modal .modal #modal-desc:has(>.profile__edit-form--projects){padding:10px var(--profile-modal-panel-inline-padding)}#profile-modal .modal #modal-desc:has(>#contacts-addressbook-picker-dialog){padding-top:0}#profile-modal #modal-desc>.profile__edit-form--projects{flex-direction:column;gap:10px;display:flex}#profile-modal .modal #modal-title{color:var(--color-text-subheading,var(--gray-900,#101828));margin:0}:is(#profile-modal .modal:has(#modal-desc>.profile__edit-form--projects) #modal-header-action,#profile-modal .modal:has(#modal-desc>.profile__edit-form--contact-info) #modal-header-action){display:none}#profile-modal #modal-buttons{width:100%;min-width:0;padding:var(--profile-modal-panel-block-padding) calc(var(--profile-modal-panel-inline-padding) + var(--spacing-xxs,.3125rem)) var(--profile-modal-compact-padding);gap:var(--profile-modal-button-gap);box-sizing:border-box;border-top:1px solid var(--solid-ui-color-slate-200,#e2e8f0);background:var(--color-surface-tertiary,var(--gray-50,#f9fafb));align-self:stretch}#profile-modal #modal-buttons[hidden]{display:none!important}#profile-modal #modal-buttons>solid-ui-button{width:10.8rem}#profile-modal .modal__error-section{margin-top:var(--spacing-sm);padding:var(--profile-modal-error-padding);border:1px solid var(--dialog-error-border,var(--pink-700,#ff98b3));background:var(--dialog-error-background,var(--pink-500,#ffdde6));color:var(--solid-ui-color-error,#b00020);text-align:center;white-space:pre-wrap;overflow-wrap:anywhere;border-radius:5px;margin-bottom:0}#profile-modal .modal__error-section[hidden]{display:none!important}#profile-modal #modal-saving-overlay{z-index:10;background:#ffffffc7;place-items:center;display:grid;position:absolute;inset:0}#profile-modal #modal-saving-overlay[hidden]{display:none}#profile-modal.modal--saving #modal-desc{opacity:.45;pointer-events:none}#profile-modal .modal__saving-indicator{gap:0}`)),document.head.appendChild(e)}}catch(e){console.error(`vite-plugin-css-injected-by-js`,e)}})();require("../../../../_virtual/~icons/lucide/x.cjs.js");const e=require("./spinner.cjs.js"),t=require("../utils/errorDisplay.cjs.js");require("solid-ui/components/button");let n=require("lit-html");var r=n.html`<icon-lucide-x aria-hidden="true" focusable="false" style="width:12px;height:12px;color:#667085"></icon-lucide-x>`,i=null,a=new WeakMap;function o(e){return e instanceof HTMLElement?e:e instanceof Node?e.parentElement:null}function s(e){return typeof e.composedPath==`function`?e.composedPath():e.target?[e.target]:[]}function c(e){let t=s(e),n=i?.querySelector(`#modal-desc`);if(n&&t.includes(n)||i&&t.includes(i))return!0;let r=o(e.target);return!r||!i||!i.contains(r)?!1:!!r.closest(`#modal-desc`)}function l(e){let t=a.get(e);return t||(t={count:0,previousHtmlOverflow:e.documentElement.style.overflow,previousBodyOverflow:e.body.style.overflow,removeScrollGuard:null},a.set(e,t)),t}function u(e){let t=l(e);if(t.removeScrollGuard)return;let n=e=>{c(e)||e.preventDefault()};e.addEventListener(`wheel`,n,{capture:!0,passive:!1}),e.addEventListener(`touchmove`,n,{capture:!0,passive:!1}),t.removeScrollGuard=()=>{e.removeEventListener(`wheel`,n,!0),e.removeEventListener(`touchmove`,n,!0),t.removeScrollGuard=null}}function d(e){let t=l(e);t.count===0&&(t.previousHtmlOverflow=e.documentElement.style.overflow,t.previousBodyOverflow=e.body.style.overflow,e.documentElement.style.overflow=`hidden`,e.body.style.overflow=`hidden`,u(e)),t.count+=1}function f(e){let t=l(e);t.count!==0&&(--t.count,!(t.count>0)&&(e.documentElement.style.overflow=t.previousHtmlOverflow,e.body.style.overflow=t.previousBodyOverflow,t.removeScrollGuard?.(),t.removeScrollGuard=null))}function p(e){return e.body}function m(e){return e?.tagName===`SOLID-UI-BUTTON`}function h(e,t){e&&(e.disabled=t,e.toggleAttribute(`disabled`,t))}function g(e,t){e&&(m(e)&&(e.label=t,e.setAttribute(`label`,t)),e.textContent=t)}function _(e){return e.querySelector(`#modal-buttons [data-dialog-primary="true"]`)}function v(e){return e.querySelector(`#modal-buttons [data-cancel="true"]`)}function y(e){let t=p(e);return i&&e.body.contains(i)?(i.parentElement!==t&&t.appendChild(i),i):(i=null,i=e.createElement(`dialog`),i.id=`profile-modal`,i.setAttribute(`aria-modal`,`true`),i.setAttribute(`aria-labelledby`,`modal-title`),i.setAttribute(`aria-describedby`,`modal-desc`),i.innerHTML=`
2
+ <div class="modal">
3
+ <div class="modal-header flex-row align-center justify-between">
4
+ <h2 id="modal-title"></h2>
5
+ <div id="modal-header-action" class="flex-row align-center"></div>
6
+ </div>
7
+ <div id="modal-desc"></div>
8
+ <section id="modal-error" class="modal__error-section" aria-live="assertive" aria-atomic="true" aria-hidden="true" role="alert" tabindex="-1" hidden></section>
9
+ <div id="modal-buttons" class="flex-row align-center justify-end"></div>
10
+ <div id="modal-saving-overlay" hidden></div>
11
+ </div>
12
+ `,t.appendChild(i),i)}function b(e){return{dialog:e,title:e.querySelector(`#modal-title`),headerAction:e.querySelector(`#modal-header-action`),description:e.querySelector(`#modal-desc`),error:e.querySelector(`#modal-error`),buttons:e.querySelector(`#modal-buttons`),savingOverlay:e.querySelector(`#modal-saving-overlay`)}}function x(e){let t=`modal-desc`,n=e.error.hidden||!e.error.textContent?.trim()?t:`${t} modal-error`;e.dialog.setAttribute(`aria-describedby`,n)}function S(e){e.error.textContent=``,e.error.setAttribute(`aria-hidden`,`true`),e.error.hidden=!0,x(e)}function C(e,n,r){e.error.textContent=t.formatDisplayError(n,r),e.error.setAttribute(`aria-hidden`,`false`),e.error.hidden=!1,x(e)}function w(e){if(d(e.ownerDocument),typeof e.showModal==`function`)try{e.open||e.showModal();return}catch{}e.setAttribute(`open`,``)}function T(e){try{if(typeof e.close==`function`&&e.open){e.close();return}e.removeAttribute(`open`)}finally{f(e.ownerDocument)}}function E(e){return!!e.querySelector(`[data-layout='mobile']`)}function D(e){return!(e.hasAttribute(`disabled`)||e.getAttribute(`aria-hidden`)===`true`||e.getAttribute(`hidden`)!==null||e.tabIndex<0)}function O(e){let t=e.querySelectorAll([`input:not([type="hidden"]):not([disabled])`,`textarea:not([disabled])`,`select:not([disabled])`,`solid-ui-select:not([disabled])`,`solid-ui-combobox:not([disabled])`,`[contenteditable="true"]`,`button:not([disabled])`,`solid-ui-button:not([disabled])`,`[tabindex]:not([tabindex="-1"])`].join(`,`));for(let e of t)if(e instanceof HTMLElement&&D(e))return e;return null}function k(e,t,n){if(E(e.ownerDocument)){e.tabIndex=-1,e.focus();return}let r=O(t);if(r){r.focus(),(r instanceof HTMLInputElement||r instanceof HTMLTextAreaElement)&&r.select();return}let i=O(n);i&&i.focus()}function A(e){let t=new FormData(e),n={};return t.forEach((e,t)=>{n[t]=String(e)}),n}function j({title:e,message:t,buttons:i,headerAction:a,dom:o}){let s=y(o),c=b(s);return w(s),c.title.textContent=e||``,c.description.innerHTML=``,typeof t==`string`?c.description.textContent=t:t&&c.description.appendChild(t),c.buttons.innerHTML=``,S(c),new Promise(e=>{let t=t=>{M(t),e(t)},l=()=>{let e=v(s);e?e.click():t(!1)};s.oncancel=e=>{e.preventDefault(),l()},c.headerAction.innerHTML=``;let u=a||{type:`close`};if(u.type===`close`){let e=o.createElement(`solid-ui-button`);e.setAttribute(`variant`,`ghost`),e.setAttribute(`aria-label`,`Close dialog`);let t=o.createElement(`span`);t.setAttribute(`slot`,`icon`),(0,n.render)(r,t),e.appendChild(t),e.onclick=()=>l(),c.headerAction.appendChild(e)}else if(u.type===`button`){let e=o.createElement(`solid-ui-button`);e.setAttribute(`variant`,`tertiary`),e.className=u.className||``,e.textContent=u.label,e.setAttribute(`label`,u.label),e.setAttribute(`aria-label`,u.ariaLabel||u.label),e.onclick=async()=>{u.onClick&&await u.onClick()},c.headerAction.appendChild(e)}i.forEach(e=>{let n=o.createElement(`solid-ui-button`);n.setAttribute(`label`,e.label),n.setAttribute(`variant`,e.primary?`primary`:`secondary`),n.textContent=e.label,e.primary&&n.setAttribute(`data-dialog-primary`,`true`),e.cancel&&n.setAttribute(`data-cancel`,`true`),n.addEventListener(`click`,async()=>{(!e.beforeClose||await e.beforeClose())&&t(e.value)}),c.buttons.appendChild(n)}),(o.defaultView?.requestAnimationFrame?e=>o.defaultView?.requestAnimationFrame(()=>e()):e=>setTimeout(e,0))(()=>{k(s,c.description,c.buttons)})})}function M(e){if(i){S(b(i)),T(i),i.oncancel=null;let e=i.querySelector(`#modal-header-action button`);e&&(e.onclick=null)}}function N(t,r,i){let a=b(t),o=_(t),s=v(t);if(t.classList.toggle(`modal--saving`,i),t.setAttribute(`aria-busy`,String(i)),a.description.toggleAttribute(`inert`,i),i){let e=t.ownerDocument.activeElement;e&&t.contains(e)&&e.blur()}o&&(h(o,i),o.setAttribute(`aria-busy`,String(i)),g(o,r)),s&&h(s,i),a.savingOverlay.hidden=!i,i?(0,n.render)(n.html`
13
+ <div class="modal__saving-indicator inline-flex-row justify-center" aria-live="polite" aria-label="Saving changes">
14
+ ${e.createSpinner()}
15
+ </div>
16
+ `,a.savingOverlay):(0,n.render)(n.html``,a.savingOverlay)}function P(e){let t=e.submitLabel||`Save Changes`,n=e.cancelLabel||`Cancel`,r=y(e.dom),i=b(r),a=e=>e.replace(/^\s*edit\s+/i,``).replace(/^\s*add\s+/i,``).replace(/^\s*create\s+/i,``).trim();(()=>{let t=a(e.title);if(!t)return;let n=Array.from(e.form.querySelectorAll([`input:not([type="hidden"])`,`textarea`,`select`].join(`,`)));if(n.length!==1)return;let[r]=n,i=r.hasAttribute(`aria-label`)||r.hasAttribute(`aria-labelledby`),o=!!r.closest(`label`);i||o||r.getAttribute(`type`)===`hidden`||r.getAttribute(`aria-label`)||r.setAttribute(`aria-label`,t)})();let o=e=>{e.preventDefault(),_(r)?.click()};e.form.addEventListener(`submit`,o);let s=j({title:e.title,message:e.form,headerAction:e.headerAction,buttons:[{label:n,value:null,cancel:!0},{label:t,value:`save`,primary:!0,beforeClose:async()=>{if(S(i),e.shouldCloseWithoutSave&&await e.shouldCloseWithoutSave())return!0;if(e.validate){let t=await e.validate();if(t)return C(i,t),!1}if(!e.onSave)return!0;try{return N(r,t,!0),await e.onSave(),!0}catch(n){N(r,t,!1);let a=e.formatSaveError?e.formatSaveError(n):void 0;return C(i,n,a),!1}}}],dom:e.dom}),c=e.dom.defaultView?.requestAnimationFrame?t=>e.dom.defaultView?.requestAnimationFrame(()=>t()):e=>setTimeout(e,0);return e.onOpen&&c(e.onOpen),i.buttons.hidden=!!e.hideFooterButtons,s.then(t=>t===`save`?A(e.form):null).finally(()=>{i.buttons.hidden=!1,N(r,t,!1),e.form.removeEventListener(`submit`,o)})}exports.getSharedDialogCancelButton=v,exports.getSharedDialogSaveButton=_,exports.openInputDialog=P;
17
+ //# sourceMappingURL=dialog2.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialog2.cjs.js","names":["html","render","createSpinner","formatDisplayError","closeIcon","modalDialog","scrollLockState","WeakMap","getEventTargetElement","target","HTMLElement","Node","parentElement","getEventPath","event","composedPath","isDialogScrollRegionTarget","path","description","querySelector","includes","targetElement","contains","Boolean","closest","getDocumentScrollLockState","dom","state","get","count","previousHtmlOverflow","documentElement","style","overflow","previousBodyOverflow","body","removeScrollGuard","set","installDocumentScrollGuard","preventBackgroundScroll","preventDefault","addEventListener","capture","passive","removeEventListener","lockDocumentScroll","unlockDocumentScroll","getDialogMountTarget","isSolidUiButton","control","tagName","setDialogActionDisabled","disabled","toggleAttribute","setDialogActionLabel","label","setAttribute","textContent","getSharedDialogSaveButton","root","getSharedDialogCancelButton","ensureModalDialog","mountTarget","appendChild","createElement","id","innerHTML","getDialogElements","dialog","title","headerAction","error","buttons","savingOverlay","syncDialogErrorDescription","elements","defaultDescription","describedBy","hidden","trim","clearModalError","setModalError","fallbackMessage","openDialogElement","ownerDocument","showModal","open","closeDialogElement","close","removeAttribute","isMobileDialogLayout","isFocusableElement","element","hasAttribute","getAttribute","tabIndex","findPreferredInitialFocusTarget","container","focusableControls","querySelectorAll","join","match","focusInitialDialogTarget","focus","initialTarget","HTMLInputElement","HTMLTextAreaElement","select","firstButton","collectFormValues","form","data","FormData","values","forEach","value","key","String","openModal","message","Promise","resolve","finish","closeModal","requestCancel","cancelBtn","click","oncancel","resolvedHeaderAction","type","closeButton","iconSlot","onclick","actionButton","className","ariaLabel","onClick","btn","b","primary","cancel","beforeClose","shouldClose","scheduleInitialFocus","defaultView","requestAnimationFrame","callback","setTimeout","_result","headerActionButton","closeSharedDialog","alertDialog","updateSavingUI","submitLabel","isSaving","saveButton","cancelButton","classList","toggle","activeElement","blur","setSharedDialogSavingState","openInputDialog","options","cancelLabel","deriveDefaultFieldLabel","replace","ensureFormControlsHaveAccessibleNames","titleLabel","controls","Array","from","length","hasExplicitLabel","hasNativeLabel","handleSubmit","dialogPromise","shouldCloseWithoutSave","validate","validationMessage","onSave","fallback","formatSaveError","undefined","scheduleOpenCallback","onOpen","hideFooterButtons","then","result","finally","formatDisplayError","createSpinner","require_spinner","require_errorDisplay","lit_html","closeIcon","modalDialog","scrollLockState","getEventTargetElement","target","getEventPath","event","isDialogScrollRegionTarget","path","description","targetElement","getDocumentScrollLockState","state","dom","installDocumentScrollGuard","preventBackgroundScroll","lockDocumentScroll","unlockDocumentScroll","getDialogMountTarget","isSolidUiButton","control","setDialogActionDisabled","disabled","setDialogActionLabel","label","getSharedDialogSaveButton","root","getSharedDialogCancelButton","ensureModalDialog","mountTarget","getDialogElements","dialog","syncDialogErrorDescription","defaultDescription","describedBy","elements","clearModalError","setModalError","error","fallbackMessage","openDialogElement","closeDialogElement","isMobileDialogLayout","isFocusableElement","element","findPreferredInitialFocusTarget","focusableControls","container","match","focusInitialDialogTarget","initialTarget","firstButton","buttons","collectFormValues","data","form","values","key","value","openModal","title","message","finish","closeModal","resolve","requestCancel","cancelBtn","resolvedHeaderAction","headerAction","closeButton","iconSlot","actionButton","b","btn","callback","headerActionButton","updateSavingUI","saveButton","cancelButton","isSaving","activeElement","submitLabel","openInputDialog","options","cancelLabel","deriveDefaultFieldLabel","titleLabel","controls","hasExplicitLabel","hasNativeLabel","handleSubmit","dialogPromise","validationMessage","fallback","scheduleOpenCallback","result"],"sources":["../../../../../src/components/profile-heading/editor/ui/dialog.ts"],"sourcesContent":["import './dialog.css'\nimport 'solid-ui/components/button'\nimport '~icons/lucide/x'\nimport { html, render } from 'lit-html'\nimport { createSpinner } from './spinner'\nimport { formatDisplayError } from '../utils/errorDisplay'\n\nconst closeIcon = html`<icon-lucide-x aria-hidden=\"true\" focusable=\"false\" style=\"width:12px;height:12px;color:#667085\"></icon-lucide-x>`\n\n/* Copied from issue-pane, minor typescript adjustments */\n/* Changed modal from div to dialog element */\nlet modalDialog: HTMLDialogElement | null = null\n\nconst scrollLockState = new WeakMap<Document, {\n count: number,\n previousHtmlOverflow: string,\n previousBodyOverflow: string,\n removeScrollGuard: (() => void) | null\n}>()\n\nfunction getEventTargetElement (target: EventTarget | null): HTMLElement | null {\n if (target instanceof HTMLElement) return target\n if (target instanceof Node) return target.parentElement\n return null\n}\n\nfunction getEventPath (event: Event): EventTarget[] {\n if (typeof event.composedPath === 'function') {\n return event.composedPath()\n }\n\n return event.target ? [event.target] : []\n}\n\nfunction isDialogScrollRegionTarget (event: Event): boolean {\n const path = getEventPath(event)\n const description = modalDialog?.querySelector('#modal-desc')\n\n if (description && path.includes(description)) {\n return true\n }\n\n if (modalDialog && path.includes(modalDialog)) {\n return true\n }\n\n const targetElement = getEventTargetElement(event.target)\n if (!targetElement || !modalDialog || !modalDialog.contains(targetElement)) {\n return false\n }\n\n return Boolean(targetElement.closest('#modal-desc'))\n}\n\nfunction getDocumentScrollLockState (dom: Document) {\n let state = scrollLockState.get(dom)\n if (!state) {\n state = {\n count: 0,\n previousHtmlOverflow: dom.documentElement.style.overflow,\n previousBodyOverflow: dom.body.style.overflow,\n removeScrollGuard: null\n }\n scrollLockState.set(dom, state)\n }\n return state\n}\n\nfunction installDocumentScrollGuard (dom: Document): void {\n const state = getDocumentScrollLockState(dom)\n if (state.removeScrollGuard) return\n\n const preventBackgroundScroll = (event: Event) => {\n if (!isDialogScrollRegionTarget(event)) {\n event.preventDefault()\n }\n }\n\n dom.addEventListener('wheel', preventBackgroundScroll, { capture: true, passive: false })\n dom.addEventListener('touchmove', preventBackgroundScroll, { capture: true, passive: false })\n state.removeScrollGuard = () => {\n dom.removeEventListener('wheel', preventBackgroundScroll, true)\n dom.removeEventListener('touchmove', preventBackgroundScroll, true)\n state.removeScrollGuard = null\n }\n}\n\nfunction lockDocumentScroll (dom: Document): void {\n const state = getDocumentScrollLockState(dom)\n\n if (state.count === 0) {\n state.previousHtmlOverflow = dom.documentElement.style.overflow\n state.previousBodyOverflow = dom.body.style.overflow\n\n dom.documentElement.style.overflow = 'hidden'\n dom.body.style.overflow = 'hidden'\n installDocumentScrollGuard(dom)\n }\n\n state.count += 1\n}\n\nfunction unlockDocumentScroll (dom: Document): void {\n const state = getDocumentScrollLockState(dom)\n if (state.count === 0) return\n\n state.count -= 1\n if (state.count > 0) return\n\n dom.documentElement.style.overflow = state.previousHtmlOverflow\n dom.body.style.overflow = state.previousBodyOverflow\n state.removeScrollGuard?.()\n state.removeScrollGuard = null\n}\n\nfunction getDialogMountTarget (dom: Document): HTMLElement {\n return dom.body\n}\n\ntype DialogButtonValue = boolean | 'save' | null\ntype DialogButton = {\n label: string,\n value: DialogButtonValue,\n primary?: boolean,\n cancel?: boolean,\n beforeClose?: () => Promise<boolean> | boolean\n}\n\ntype DialogHeaderAction =\n | { type: 'close' }\n | { type: 'none' }\n | {\n type: 'button',\n label: string,\n ariaLabel?: string,\n className?: string,\n onClick?: () => Promise<void> | void\n }\n\ntype DialogElements = {\n dialog: HTMLDialogElement,\n title: HTMLHeadingElement,\n headerAction: HTMLDivElement,\n description: HTMLDivElement,\n error: HTMLElement,\n buttons: HTMLDivElement,\n savingOverlay: HTMLDivElement\n}\n\ntype DialogActionControl = HTMLElement & {\n disabled?: boolean,\n label?: string,\n click: () => void,\n shadowRoot?: ShadowRoot | null\n}\n\nfunction isSolidUiButton (control: Element | null): control is DialogActionControl {\n return control?.tagName === 'SOLID-UI-BUTTON'\n}\n\nfunction setDialogActionDisabled (control: DialogActionControl | null, disabled: boolean): void {\n if (!control) return\n control.disabled = disabled\n control.toggleAttribute('disabled', disabled)\n}\n\nfunction setDialogActionLabel (control: DialogActionControl | null, label: string): void {\n if (!control) return\n\n if (isSolidUiButton(control)) {\n control.label = label\n control.setAttribute('label', label)\n control.textContent = label\n return\n }\n\n ;(control as HTMLElement).textContent = label\n}\n\nexport function getSharedDialogSaveButton (root: ParentNode): DialogActionControl | null {\n return root.querySelector('#modal-buttons [data-dialog-primary=\"true\"]') as DialogActionControl | null\n}\n\nexport function getSharedDialogCancelButton (root: ParentNode): DialogActionControl | null {\n return root.querySelector('#modal-buttons [data-cancel=\"true\"]') as DialogActionControl | null\n}\n\nfunction ensureModalDialog (dom: Document): HTMLDialogElement {\n const mountTarget = getDialogMountTarget(dom)\n\n // if we previously created a dialog but it was removed from the document\n // (tests clear body), rebuild it. Checking presence ensures our reference\n // doesn't point at a detached element.\n if (modalDialog && dom.body.contains(modalDialog)) {\n if (modalDialog.parentElement !== mountTarget) {\n mountTarget.appendChild(modalDialog)\n }\n return modalDialog\n }\n\n modalDialog = null\n modalDialog = dom.createElement('dialog')\n modalDialog.id = 'profile-modal'\n modalDialog.setAttribute('aria-modal', 'true')\n modalDialog.setAttribute('aria-labelledby', 'modal-title')\n modalDialog.setAttribute('aria-describedby', 'modal-desc')\n\n modalDialog.innerHTML = `\n <div class=\"modal\">\n <div class=\"modal-header flex-row align-center justify-between\">\n <h2 id=\"modal-title\"></h2>\n <div id=\"modal-header-action\" class=\"flex-row align-center\"></div>\n </div>\n <div id=\"modal-desc\"></div>\n <section id=\"modal-error\" class=\"modal__error-section\" aria-live=\"assertive\" aria-atomic=\"true\" aria-hidden=\"true\" role=\"alert\" tabindex=\"-1\" hidden></section>\n <div id=\"modal-buttons\" class=\"flex-row align-center justify-end\"></div>\n <div id=\"modal-saving-overlay\" hidden></div>\n </div>\n `\n\n mountTarget.appendChild(modalDialog)\n return modalDialog\n}\n\nfunction getDialogElements (dialog: HTMLDialogElement): DialogElements {\n return {\n dialog,\n title: dialog.querySelector('#modal-title') as HTMLHeadingElement,\n headerAction: dialog.querySelector('#modal-header-action') as HTMLDivElement,\n description: dialog.querySelector('#modal-desc') as HTMLDivElement,\n error: dialog.querySelector('#modal-error') as HTMLElement,\n buttons: dialog.querySelector('#modal-buttons') as HTMLDivElement,\n savingOverlay: dialog.querySelector('#modal-saving-overlay') as HTMLDivElement\n }\n}\n\nfunction syncDialogErrorDescription (elements: DialogElements): void {\n const defaultDescription = 'modal-desc'\n const describedBy = elements.error.hidden || !elements.error.textContent?.trim()\n ? defaultDescription\n : `${defaultDescription} modal-error`\n\n elements.dialog.setAttribute('aria-describedby', describedBy)\n}\n\nfunction clearModalError (elements: DialogElements): void {\n elements.error.textContent = ''\n elements.error.setAttribute('aria-hidden', 'true')\n elements.error.hidden = true\n syncDialogErrorDescription(elements)\n}\n\nfunction setModalError (elements: DialogElements, error: unknown, fallbackMessage?: string): void {\n elements.error.textContent = formatDisplayError(error, fallbackMessage)\n elements.error.setAttribute('aria-hidden', 'false')\n elements.error.hidden = false\n syncDialogErrorDescription(elements)\n}\n\nfunction openDialogElement (dialog: HTMLDialogElement): void {\n lockDocumentScroll(dialog.ownerDocument)\n\n if (typeof dialog.showModal === 'function') {\n try {\n if (!dialog.open) dialog.showModal()\n return\n } catch {\n // Fall back for jsdom or partial dialog implementations.\n }\n }\n\n dialog.setAttribute('open', '')\n}\n\nfunction closeDialogElement (dialog: HTMLDialogElement): void {\n try {\n if (typeof dialog.close === 'function' && dialog.open) {\n dialog.close()\n return\n }\n\n dialog.removeAttribute('open')\n } finally {\n unlockDocumentScroll(dialog.ownerDocument)\n }\n}\n\nfunction isMobileDialogLayout (dom: Document): boolean {\n return Boolean(dom.querySelector('[data-layout=\\'mobile\\']'))\n}\n\nfunction isFocusableElement (element: HTMLElement): boolean {\n if (element.hasAttribute('disabled')) return false\n if (element.getAttribute('aria-hidden') === 'true') return false\n if (element.getAttribute('hidden') !== null) return false\n if (element.tabIndex < 0) return false\n return true\n}\n\nfunction findPreferredInitialFocusTarget (container: ParentNode): HTMLElement | null {\n const focusableControls = container.querySelectorAll([\n 'input:not([type=\"hidden\"]):not([disabled])',\n 'textarea:not([disabled])',\n 'select:not([disabled])',\n 'solid-ui-select:not([disabled])',\n 'solid-ui-combobox:not([disabled])',\n '[contenteditable=\"true\"]',\n 'button:not([disabled])',\n 'solid-ui-button:not([disabled])',\n '[tabindex]:not([tabindex=\"-1\"])'\n ].join(','))\n\n for (const match of focusableControls) {\n if (match instanceof HTMLElement && isFocusableElement(match)) return match\n }\n\n return null\n}\n\nfunction focusInitialDialogTarget (dialog: HTMLDialogElement, description: HTMLDivElement, buttons: HTMLDivElement): void {\n if (isMobileDialogLayout(dialog.ownerDocument)) {\n dialog.tabIndex = -1\n dialog.focus()\n return\n }\n\n const initialTarget = findPreferredInitialFocusTarget(description)\n if (initialTarget) {\n initialTarget.focus()\n if (initialTarget instanceof HTMLInputElement || initialTarget instanceof HTMLTextAreaElement) {\n initialTarget.select()\n }\n return\n }\n\n const firstButton = findPreferredInitialFocusTarget(buttons)\n if (firstButton) {\n firstButton.focus()\n }\n}\n\nfunction collectFormValues (form: HTMLFormElement): InputDialogValues {\n const data = new FormData(form)\n const values: InputDialogValues = {}\n data.forEach((value, key) => {\n values[key] = String(value)\n })\n return values\n}\n\nfunction openModal ({\n title,\n message,\n buttons,\n headerAction,\n dom\n}: {\n title?: string,\n message?: string | Node,\n buttons: DialogButton[],\n headerAction?: DialogHeaderAction,\n dom: Document\n}) {\n const dialog = ensureModalDialog(dom)\n const elements = getDialogElements(dialog)\n\n openDialogElement(dialog)\n\n elements.title.textContent = title || ''\n elements.description.innerHTML = ''\n if (typeof message === 'string') {\n elements.description.textContent = message\n } else if (message) {\n elements.description.appendChild(message)\n }\n\n elements.buttons.innerHTML = ''\n clearModalError(elements)\n\n return new Promise<DialogButtonValue>((resolve) => {\n const finish = (value: DialogButtonValue) => {\n closeModal(value)\n resolve(value)\n }\n\n const requestCancel = () => {\n const cancelBtn = getSharedDialogCancelButton(dialog)\n if (cancelBtn) {\n cancelBtn.click()\n return\n }\n\n finish(false)\n }\n\n dialog.oncancel = (event: Event) => {\n event.preventDefault()\n requestCancel()\n }\n\n elements.headerAction.innerHTML = ''\n const resolvedHeaderAction = headerAction || { type: 'close' as const }\n if (resolvedHeaderAction.type === 'close') {\n const closeButton = dom.createElement('solid-ui-button') as DialogActionControl\n closeButton.setAttribute('variant', 'ghost')\n closeButton.setAttribute('aria-label', 'Close dialog')\n const iconSlot = dom.createElement('span')\n iconSlot.setAttribute('slot', 'icon')\n render(closeIcon, iconSlot)\n closeButton.appendChild(iconSlot)\n closeButton.onclick = () => requestCancel()\n elements.headerAction.appendChild(closeButton)\n } else if (resolvedHeaderAction.type === 'button') {\n const actionButton = dom.createElement('solid-ui-button') as DialogActionControl\n actionButton.setAttribute('variant', 'tertiary')\n actionButton.className = resolvedHeaderAction.className || ''\n actionButton.textContent = resolvedHeaderAction.label\n actionButton.setAttribute('label', resolvedHeaderAction.label)\n actionButton.setAttribute('aria-label', resolvedHeaderAction.ariaLabel || resolvedHeaderAction.label)\n actionButton.onclick = async () => {\n if (resolvedHeaderAction.onClick) {\n await resolvedHeaderAction.onClick()\n }\n }\n elements.headerAction.appendChild(actionButton)\n }\n\n buttons.forEach((btn) => {\n const b = dom.createElement('solid-ui-button') as DialogActionControl\n b.setAttribute('label', btn.label)\n b.setAttribute('variant', btn.primary ? 'primary' : 'secondary')\n b.textContent = btn.label\n if (btn.primary) {\n b.setAttribute('data-dialog-primary', 'true')\n }\n if (btn.cancel) {\n b.setAttribute('data-cancel', 'true')\n }\n b.addEventListener('click', async () => {\n if (btn.beforeClose) {\n const shouldClose = await btn.beforeClose()\n if (!shouldClose) return\n }\n finish(btn.value)\n })\n elements.buttons.appendChild(b)\n })\n\n const scheduleInitialFocus = dom.defaultView?.requestAnimationFrame\n ? (callback: () => void) => dom.defaultView?.requestAnimationFrame(() => callback())\n : (callback: () => void) => setTimeout(callback, 0)\n\n scheduleInitialFocus(() => {\n focusInitialDialogTarget(dialog, elements.description, elements.buttons)\n })\n })\n}\n\nfunction closeModal (_result: DialogButtonValue): void {\n if (modalDialog) {\n const elements = getDialogElements(modalDialog)\n clearModalError(elements)\n closeDialogElement(modalDialog)\n modalDialog.oncancel = null\n const headerActionButton = modalDialog.querySelector('#modal-header-action button') as HTMLButtonElement | null\n if (headerActionButton) headerActionButton.onclick = null\n }\n}\n\nexport function closeSharedDialog (): void {\n closeModal(null)\n}\n\nexport function alertDialog (message: string, title = 'Information', dom: Document) {\n return openModal({\n title,\n message,\n buttons: [{ label: 'OK', value: true, primary: true }],\n dom\n })\n}\n\nfunction updateSavingUI (dialog: HTMLDialogElement, submitLabel: string, isSaving: boolean) {\n const elements = getDialogElements(dialog)\n const saveButton = getSharedDialogSaveButton(dialog)\n const cancelButton = getSharedDialogCancelButton(dialog)\n\n dialog.classList.toggle('modal--saving', isSaving)\n dialog.setAttribute('aria-busy', String(isSaving))\n elements.description.toggleAttribute('inert', isSaving)\n\n if (isSaving) {\n const activeElement = dialog.ownerDocument.activeElement as HTMLElement | null\n if (activeElement && dialog.contains(activeElement)) {\n activeElement.blur()\n }\n }\n\n if (saveButton) {\n setDialogActionDisabled(saveButton, isSaving)\n saveButton.setAttribute('aria-busy', String(isSaving))\n setDialogActionLabel(saveButton, submitLabel)\n }\n\n if (cancelButton) {\n setDialogActionDisabled(cancelButton, isSaving)\n }\n\n elements.savingOverlay.hidden = !isSaving\n if (isSaving) {\n render(html`\n <div class=\"modal__saving-indicator inline-flex-row justify-center\" aria-live=\"polite\" aria-label=\"Saving changes\">\n ${createSpinner()}\n </div>\n `, elements.savingOverlay)\n } else {\n render(html``, elements.savingOverlay)\n }\n}\n\nexport function setSharedDialogSavingState (dom: Document, isSaving: boolean, submitLabel = 'Saving Changes'): void {\n const dialog = ensureModalDialog(dom)\n updateSavingUI(dialog, submitLabel, isSaving)\n}\n\ntype OpenInputDialogCustom = {\n title: string,\n dom: Document,\n form: HTMLFormElement,\n submitLabel?: string,\n cancelLabel?: string,\n headerAction?: DialogHeaderAction,\n hideFooterButtons?: boolean,\n onOpen?: () => void,\n shouldCloseWithoutSave?: () => Promise<boolean> | boolean,\n validate?: () => Promise<string | null> | string | null,\n onSave?: () => Promise<void> | void,\n formatSaveError?: (error: unknown) => string\n}\n\ntype InputDialogValues = Record<string, string>\n/* Function below generated by AI Model: GPT-5.3-Codex */\n/* Prompt: write me a reusable function to open a dialog with a form and return the form values on submit.\nThe function should also support validation and display error messages in the dialog.\nIt should reuse the OpenModal function for consistency. Done in 2 passes */\nexport function openInputDialog (options: OpenInputDialogCustom): Promise<InputDialogValues | null> {\n const submitLabel = options.submitLabel || 'Save Changes'\n const cancelLabel = options.cancelLabel || 'Cancel'\n const dialog = ensureModalDialog(options.dom)\n const elements = getDialogElements(dialog)\n\n const deriveDefaultFieldLabel = (value: string): string => value\n .replace(/^\\s*edit\\s+/i, '')\n .replace(/^\\s*add\\s+/i, '')\n .replace(/^\\s*create\\s+/i, '')\n .trim()\n\n const ensureFormControlsHaveAccessibleNames = () => {\n const titleLabel = deriveDefaultFieldLabel(options.title)\n if (!titleLabel) return\n\n const controls = Array.from(options.form.querySelectorAll<HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement>([\n 'input:not([type=\"hidden\"])',\n 'textarea',\n 'select'\n ].join(',')))\n\n if (controls.length !== 1) return\n\n const [control] = controls\n const hasExplicitLabel = control.hasAttribute('aria-label') || control.hasAttribute('aria-labelledby')\n const hasNativeLabel = Boolean(control.closest('label'))\n if (hasExplicitLabel || hasNativeLabel || control.getAttribute('type') === 'hidden') {\n return\n }\n\n if (!control.getAttribute('aria-label')) {\n control.setAttribute('aria-label', titleLabel)\n }\n }\n\n ensureFormControlsHaveAccessibleNames()\n\n const handleSubmit = (event: SubmitEvent) => {\n event.preventDefault()\n const saveButton = getSharedDialogSaveButton(dialog)\n saveButton?.click()\n }\n\n options.form.addEventListener('submit', handleSubmit)\n\n const dialogPromise = openModal({\n title: options.title,\n message: options.form,\n headerAction: options.headerAction,\n buttons: [\n { label: cancelLabel, value: null, cancel: true },\n {\n label: submitLabel,\n value: 'save',\n primary: true,\n beforeClose: async () => {\n clearModalError(elements)\n\n if (options.shouldCloseWithoutSave && await options.shouldCloseWithoutSave()) {\n return true\n }\n\n if (options.validate) {\n const validationMessage = await options.validate()\n if (validationMessage) {\n setModalError(elements, validationMessage)\n return false\n }\n }\n\n if (!options.onSave) return true\n\n try {\n updateSavingUI(dialog, submitLabel, true)\n\n await options.onSave()\n return true\n } catch (error) {\n updateSavingUI(dialog, submitLabel, false)\n const fallback = options.formatSaveError ? options.formatSaveError(error) : undefined\n setModalError(elements, error, fallback)\n return false\n }\n }\n }\n ],\n dom: options.dom\n })\n\n const scheduleOpenCallback = options.dom.defaultView?.requestAnimationFrame\n ? (callback: () => void) => options.dom.defaultView?.requestAnimationFrame(() => callback())\n : (callback: () => void) => setTimeout(callback, 0)\n\n if (options.onOpen) {\n scheduleOpenCallback(options.onOpen)\n }\n\n elements.buttons.hidden = Boolean(options.hideFooterButtons)\n\n return dialogPromise\n .then((result) => {\n if (result !== 'save') return null\n return collectFormValues(options.form)\n })\n .finally(() => {\n elements.buttons.hidden = false\n updateSavingUI(dialog, submitLabel, false)\n options.form.removeEventListener('submit', handleSubmit)\n })\n}\n"],"mappings":"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"}