@greypan/web-ui 11.2.0 → 12.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 (667) hide show
  1. package/README.CN.md +79 -68
  2. package/README.md +81 -72
  3. package/dist/_virtual/_@oxc-project_runtime@0.155.0/helpers/esm/decorate.js +8 -0
  4. package/dist/assets/menu-portal.js +3 -4
  5. package/dist/assets/menu-portal.js.map +1 -1
  6. package/dist/assets/modal-surface.js +3 -4
  7. package/dist/assets/modal-surface.js.map +1 -1
  8. package/dist/assets/overlay-motion.js +3 -4
  9. package/dist/assets/overlay-motion.js.map +1 -1
  10. package/dist/assets/scrollbar.js +5 -0
  11. package/dist/assets/scrollbar.js.map +1 -0
  12. package/dist/assets/selection-control.js +3 -4
  13. package/dist/assets/selection-control.js.map +1 -1
  14. package/dist/assets/toast-containers.js +3 -4
  15. package/dist/assets/toast-containers.js.map +1 -1
  16. package/dist/classes/glass.js +3 -4
  17. package/dist/classes/glass.js.map +1 -1
  18. package/dist/classes/glow.js +3 -4
  19. package/dist/classes/glow.js.map +1 -1
  20. package/dist/components/autocomplete/index.d.ts +485 -483
  21. package/dist/components/autocomplete/index.d.ts.map +1 -0
  22. package/dist/components/autocomplete/index.js +475 -267
  23. package/dist/components/autocomplete/index.js.map +1 -1
  24. package/dist/components/autocomplete/style.js +3 -4
  25. package/dist/components/autocomplete/style.js.map +1 -1
  26. package/dist/components/avatar/index.d.ts +26 -24
  27. package/dist/components/avatar/index.d.ts.map +1 -0
  28. package/dist/components/avatar/index.js +72 -52
  29. package/dist/components/avatar/index.js.map +1 -1
  30. package/dist/components/avatar/style.js +3 -4
  31. package/dist/components/avatar/style.js.map +1 -1
  32. package/dist/components/back-top/index.d.ts +30 -27
  33. package/dist/components/back-top/index.d.ts.map +1 -0
  34. package/dist/components/back-top/index.js +96 -62
  35. package/dist/components/back-top/index.js.map +1 -1
  36. package/dist/components/back-top/style.js +3 -4
  37. package/dist/components/back-top/style.js.map +1 -1
  38. package/dist/components/badge/index.d.ts +32 -26
  39. package/dist/components/badge/index.d.ts.map +1 -0
  40. package/dist/components/badge/index.js +116 -74
  41. package/dist/components/badge/index.js.map +1 -1
  42. package/dist/components/badge/style.js +3 -4
  43. package/dist/components/badge/style.js.map +1 -1
  44. package/dist/components/button/index.d.ts +392 -390
  45. package/dist/components/button/index.d.ts.map +1 -0
  46. package/dist/components/button/index.js +108 -74
  47. package/dist/components/button/index.js.map +1 -1
  48. package/dist/components/button/style.js +3 -4
  49. package/dist/components/button/style.js.map +1 -1
  50. package/dist/components/button-group/index.d.ts +14 -13
  51. package/dist/components/button-group/index.d.ts.map +1 -0
  52. package/dist/components/button-group/index.js +43 -33
  53. package/dist/components/button-group/index.js.map +1 -1
  54. package/dist/components/button-group/style.js +3 -4
  55. package/dist/components/button-group/style.js.map +1 -1
  56. package/dist/components/checkbox/index.d.ts +399 -397
  57. package/dist/components/checkbox/index.d.ts.map +1 -0
  58. package/dist/components/checkbox/index.js +103 -74
  59. package/dist/components/checkbox/index.js.map +1 -1
  60. package/dist/components/checkbox/style.js +3 -4
  61. package/dist/components/checkbox/style.js.map +1 -1
  62. package/dist/components/checkbox-group/index.d.ts +397 -396
  63. package/dist/components/checkbox-group/index.d.ts.map +1 -0
  64. package/dist/components/checkbox-group/index.js +92 -70
  65. package/dist/components/checkbox-group/index.js.map +1 -1
  66. package/dist/components/checkbox-group/style.js +3 -4
  67. package/dist/components/checkbox-group/style.js.map +1 -1
  68. package/dist/components/collapse/index.d.ts +72 -71
  69. package/dist/components/collapse/index.d.ts.map +1 -0
  70. package/dist/components/collapse/index.js +225 -130
  71. package/dist/components/collapse/index.js.map +1 -1
  72. package/dist/components/collapse/style.js +3 -4
  73. package/dist/components/collapse/style.js.map +1 -1
  74. package/dist/components/context-menu/index.d.ts +307 -310
  75. package/dist/components/context-menu/index.d.ts.map +1 -0
  76. package/dist/components/context-menu/index.js +685 -270
  77. package/dist/components/context-menu/index.js.map +1 -1
  78. package/dist/components/context-menu/scrim.js +3 -4
  79. package/dist/components/context-menu/scrim.js.map +1 -1
  80. package/dist/components/context-menu/style.js +3 -4
  81. package/dist/components/context-menu/style.js.map +1 -1
  82. package/dist/components/dialog/index.d.ts +87 -78
  83. package/dist/components/dialog/index.d.ts.map +1 -0
  84. package/dist/components/dialog/index.js +183 -88
  85. package/dist/components/dialog/index.js.map +1 -1
  86. package/dist/components/dialog/style.js +3 -4
  87. package/dist/components/dialog/style.js.map +1 -1
  88. package/dist/components/drawer/index.d.ts +159 -150
  89. package/dist/components/drawer/index.d.ts.map +1 -0
  90. package/dist/components/drawer/index.js +503 -242
  91. package/dist/components/drawer/index.js.map +1 -1
  92. package/dist/components/drawer/style.js +3 -4
  93. package/dist/components/drawer/style.js.map +1 -1
  94. package/dist/components/dropdown/index.d.ts +125 -124
  95. package/dist/components/dropdown/index.d.ts.map +1 -0
  96. package/dist/components/dropdown/index.js +556 -328
  97. package/dist/components/dropdown/index.js.map +1 -1
  98. package/dist/components/dropdown/style.js +3 -4
  99. package/dist/components/dropdown/style.js.map +1 -1
  100. package/dist/components/dropdown-divider/index.d.ts +7 -6
  101. package/dist/components/dropdown-divider/index.d.ts.map +1 -0
  102. package/dist/components/dropdown-divider/index.js +10 -11
  103. package/dist/components/dropdown-divider/index.js.map +1 -1
  104. package/dist/components/dropdown-divider/style.js +3 -4
  105. package/dist/components/dropdown-divider/style.js.map +1 -1
  106. package/dist/components/dropdown-header/index.d.ts +7 -6
  107. package/dist/components/dropdown-header/index.d.ts.map +1 -0
  108. package/dist/components/dropdown-header/index.js +10 -11
  109. package/dist/components/dropdown-header/index.js.map +1 -1
  110. package/dist/components/dropdown-header/style.js +3 -4
  111. package/dist/components/dropdown-header/style.js.map +1 -1
  112. package/dist/components/dropdown-item/index.d.ts +13 -11
  113. package/dist/components/dropdown-item/index.d.ts.map +1 -0
  114. package/dist/components/dropdown-item/index.js +32 -25
  115. package/dist/components/dropdown-item/index.js.map +1 -1
  116. package/dist/components/dropdown-item/style.js +3 -4
  117. package/dist/components/dropdown-item/style.js.map +1 -1
  118. package/dist/components/editable-text/index.d.ts +506 -505
  119. package/dist/components/editable-text/index.d.ts.map +1 -0
  120. package/dist/components/editable-text/index.js +281 -127
  121. package/dist/components/editable-text/index.js.map +1 -1
  122. package/dist/components/editable-text/style.js +3 -4
  123. package/dist/components/editable-text/style.js.map +1 -1
  124. package/dist/components/empty/index.d.ts +17 -15
  125. package/dist/components/empty/index.d.ts.map +1 -0
  126. package/dist/components/empty/index.js +66 -37
  127. package/dist/components/empty/index.js.map +1 -1
  128. package/dist/components/empty/style.js +3 -4
  129. package/dist/components/empty/style.js.map +1 -1
  130. package/dist/components/icon/index.d.ts +12 -11
  131. package/dist/components/icon/index.d.ts.map +1 -0
  132. package/dist/components/icon/index.js +34 -27
  133. package/dist/components/icon/index.js.map +1 -1
  134. package/dist/components/icon/style.js +3 -4
  135. package/dist/components/icon/style.js.map +1 -1
  136. package/dist/components/image-preview/index.d.ts +58 -44
  137. package/dist/components/image-preview/index.d.ts.map +1 -0
  138. package/dist/components/image-preview/index.js +536 -265
  139. package/dist/components/image-preview/index.js.map +1 -1
  140. package/dist/components/image-preview/style.js +3 -4
  141. package/dist/components/image-preview/style.js.map +1 -1
  142. package/dist/components/index.d.ts +46 -43
  143. package/dist/components/index.d.ts.map +1 -0
  144. package/dist/components/index.js +41 -41
  145. package/dist/components/input/index.d.ts +418 -413
  146. package/dist/components/input/index.d.ts.map +1 -0
  147. package/dist/components/input/index.js +148 -84
  148. package/dist/components/input/index.js.map +1 -1
  149. package/dist/components/input/style.js +3 -4
  150. package/dist/components/input/style.js.map +1 -1
  151. package/dist/components/input-number/index.d.ts +453 -447
  152. package/dist/components/input-number/index.d.ts.map +1 -0
  153. package/dist/components/input-number/index.js +484 -292
  154. package/dist/components/input-number/index.js.map +1 -1
  155. package/dist/components/input-number/style.js +3 -4
  156. package/dist/components/input-number/style.js.map +1 -1
  157. package/dist/components/layout/index.d.ts +110 -87
  158. package/dist/components/layout/index.d.ts.map +1 -0
  159. package/dist/components/layout/index.js +238 -144
  160. package/dist/components/layout/index.js.map +1 -1
  161. package/dist/components/layout/style.js +3 -4
  162. package/dist/components/layout/style.js.map +1 -1
  163. package/dist/components/middle-ellipsis/index.d.ts +93 -92
  164. package/dist/components/middle-ellipsis/index.d.ts.map +1 -0
  165. package/dist/components/middle-ellipsis/index.js +261 -107
  166. package/dist/components/middle-ellipsis/index.js.map +1 -1
  167. package/dist/components/middle-ellipsis/style.js +3 -4
  168. package/dist/components/middle-ellipsis/style.js.map +1 -1
  169. package/dist/components/middle-ellipsis/truncate.js +60 -30
  170. package/dist/components/middle-ellipsis/truncate.js.map +1 -1
  171. package/dist/components/option/index.d.ts +20 -18
  172. package/dist/components/option/index.d.ts.map +1 -0
  173. package/dist/components/option/index.js +53 -40
  174. package/dist/components/option/index.js.map +1 -1
  175. package/dist/components/option/style.js +3 -4
  176. package/dist/components/option/style.js.map +1 -1
  177. package/dist/components/popover/index.d.ts +69 -68
  178. package/dist/components/popover/index.d.ts.map +1 -0
  179. package/dist/components/popover/index.js +221 -104
  180. package/dist/components/popover/index.js.map +1 -1
  181. package/dist/components/popover/style.js +3 -4
  182. package/dist/components/popover/style.js.map +1 -1
  183. package/dist/components/radio/index.d.ts +396 -395
  184. package/dist/components/radio/index.d.ts.map +1 -0
  185. package/dist/components/radio/index.js +91 -62
  186. package/dist/components/radio/index.js.map +1 -1
  187. package/dist/components/radio/interaction.js +10 -11
  188. package/dist/components/radio/interaction.js.map +1 -1
  189. package/dist/components/radio/style.js +3 -4
  190. package/dist/components/radio/style.js.map +1 -1
  191. package/dist/components/radio-group/index.d.ts +417 -416
  192. package/dist/components/radio-group/index.d.ts.map +1 -0
  193. package/dist/components/radio-group/index.js +307 -207
  194. package/dist/components/radio-group/index.js.map +1 -1
  195. package/dist/components/radio-group/style.js +3 -4
  196. package/dist/components/radio-group/style.js.map +1 -1
  197. package/dist/components/segmented/index.d.ts +408 -402
  198. package/dist/components/segmented/index.d.ts.map +1 -0
  199. package/dist/components/segmented/index.js +267 -158
  200. package/dist/components/segmented/index.js.map +1 -1
  201. package/dist/components/segmented/style.js +3 -4
  202. package/dist/components/segmented/style.js.map +1 -1
  203. package/dist/components/segmented-trigger/index.d.ts +18 -17
  204. package/dist/components/segmented-trigger/index.d.ts.map +1 -0
  205. package/dist/components/segmented-trigger/index.js +45 -36
  206. package/dist/components/segmented-trigger/index.js.map +1 -1
  207. package/dist/components/segmented-trigger/style.js +3 -4
  208. package/dist/components/segmented-trigger/style.js.map +1 -1
  209. package/dist/components/select/index.d.ts +450 -448
  210. package/dist/components/select/index.d.ts.map +1 -0
  211. package/dist/components/select/index.js +342 -188
  212. package/dist/components/select/index.js.map +1 -1
  213. package/dist/components/select/style.js +3 -4
  214. package/dist/components/select/style.js.map +1 -1
  215. package/dist/components/slider/index.d.ts +428 -427
  216. package/dist/components/slider/index.d.ts.map +1 -0
  217. package/dist/components/slider/index.js +308 -216
  218. package/dist/components/slider/index.js.map +1 -1
  219. package/dist/components/slider/style.js +3 -4
  220. package/dist/components/slider/style.js.map +1 -1
  221. package/dist/components/spinner/index.d.ts +39 -38
  222. package/dist/components/spinner/index.d.ts.map +1 -0
  223. package/dist/components/spinner/index.js +118 -65
  224. package/dist/components/spinner/index.js.map +1 -1
  225. package/dist/components/spinner/style.js +3 -4
  226. package/dist/components/spinner/style.js.map +1 -1
  227. package/dist/components/svg-draw-lines/index.d.ts +40 -39
  228. package/dist/components/svg-draw-lines/index.d.ts.map +1 -0
  229. package/dist/components/svg-draw-lines/index.js +189 -106
  230. package/dist/components/svg-draw-lines/index.js.map +1 -1
  231. package/dist/components/svg-draw-lines/style.js +3 -4
  232. package/dist/components/svg-draw-lines/style.js.map +1 -1
  233. package/dist/components/switch/index.d.ts +411 -409
  234. package/dist/components/switch/index.d.ts.map +1 -0
  235. package/dist/components/switch/index.js +193 -106
  236. package/dist/components/switch/index.js.map +1 -1
  237. package/dist/components/switch/style.js +3 -4
  238. package/dist/components/switch/style.js.map +1 -1
  239. package/dist/components/textarea/index.d.ts +430 -425
  240. package/dist/components/textarea/index.d.ts.map +1 -0
  241. package/dist/components/textarea/index.js +187 -100
  242. package/dist/components/textarea/index.js.map +1 -1
  243. package/dist/components/textarea/style.js +3 -4
  244. package/dist/components/textarea/style.js.map +1 -1
  245. package/dist/components/theme/index.d.ts +45 -44
  246. package/dist/components/theme/index.d.ts.map +1 -0
  247. package/dist/components/theme/index.js +268 -161
  248. package/dist/components/theme/index.js.map +1 -1
  249. package/dist/components/theme/style.js +3 -4
  250. package/dist/components/theme/style.js.map +1 -1
  251. package/dist/components/toast/index.d.ts +4 -3
  252. package/dist/components/toast/index.js +3 -3
  253. package/dist/components/toast/manager.d.ts +9 -8
  254. package/dist/components/toast/manager.d.ts.map +1 -0
  255. package/dist/components/toast/manager.js +215 -119
  256. package/dist/components/toast/manager.js.map +1 -1
  257. package/dist/components/toast/style.js +3 -4
  258. package/dist/components/toast/style.js.map +1 -1
  259. package/dist/components/toast/toast.d.ts +75 -71
  260. package/dist/components/toast/toast.d.ts.map +1 -0
  261. package/dist/components/toast/toast.js +203 -96
  262. package/dist/components/toast/toast.js.map +1 -1
  263. package/dist/components/toast/types.d.ts +10 -9
  264. package/dist/components/toast/types.d.ts.map +1 -0
  265. package/dist/components/tooltip/index.d.ts +72 -62
  266. package/dist/components/tooltip/index.d.ts.map +1 -0
  267. package/dist/components/tooltip/index.js +251 -93
  268. package/dist/components/tooltip/index.js.map +1 -1
  269. package/dist/components/tooltip/style.js +3 -4
  270. package/dist/components/tooltip/style.js.map +1 -1
  271. package/dist/icons/generated/akar-icons-check.d.ts +5 -4
  272. package/dist/icons/generated/akar-icons-check.d.ts.map +1 -0
  273. package/dist/icons/generated/akar-icons-check.js +3 -4
  274. package/dist/icons/generated/akar-icons-check.js.map +1 -1
  275. package/dist/icons/generated/akar-icons-circle-check.d.ts +5 -4
  276. package/dist/icons/generated/akar-icons-circle-check.d.ts.map +1 -0
  277. package/dist/icons/generated/akar-icons-circle-check.js +3 -4
  278. package/dist/icons/generated/akar-icons-circle-check.js.map +1 -1
  279. package/dist/icons/generated/andrsrxn-inbox.d.ts +5 -4
  280. package/dist/icons/generated/andrsrxn-inbox.d.ts.map +1 -0
  281. package/dist/icons/generated/andrsrxn-inbox.js +3 -4
  282. package/dist/icons/generated/andrsrxn-inbox.js.map +1 -1
  283. package/dist/icons/generated/bi-check-lg.d.ts +5 -4
  284. package/dist/icons/generated/bi-check-lg.d.ts.map +1 -0
  285. package/dist/icons/generated/bi-check-lg.js +3 -4
  286. package/dist/icons/generated/bi-check-lg.js.map +1 -1
  287. package/dist/icons/generated/bi-check.d.ts +5 -4
  288. package/dist/icons/generated/bi-check.d.ts.map +1 -0
  289. package/dist/icons/generated/bi-check.js +3 -4
  290. package/dist/icons/generated/bi-check.js.map +1 -1
  291. package/dist/icons/generated/fluent-tag-search-24-regular.d.ts +5 -4
  292. package/dist/icons/generated/fluent-tag-search-24-regular.d.ts.map +1 -0
  293. package/dist/icons/generated/fluent-tag-search-24-regular.js +3 -4
  294. package/dist/icons/generated/fluent-tag-search-24-regular.js.map +1 -1
  295. package/dist/icons/generated/heroicons-bars-arrow-down-16-solid.d.ts +5 -4
  296. package/dist/icons/generated/heroicons-bars-arrow-down-16-solid.d.ts.map +1 -0
  297. package/dist/icons/generated/heroicons-bars-arrow-down-16-solid.js +3 -4
  298. package/dist/icons/generated/heroicons-bars-arrow-down-16-solid.js.map +1 -1
  299. package/dist/icons/generated/heroicons-bars-arrow-up-16-solid.d.ts +5 -4
  300. package/dist/icons/generated/heroicons-bars-arrow-up-16-solid.d.ts.map +1 -0
  301. package/dist/icons/generated/heroicons-bars-arrow-up-16-solid.js +3 -4
  302. package/dist/icons/generated/heroicons-bars-arrow-up-16-solid.js.map +1 -1
  303. package/dist/icons/generated/heroicons-check-16-solid.d.ts +5 -4
  304. package/dist/icons/generated/heroicons-check-16-solid.d.ts.map +1 -0
  305. package/dist/icons/generated/heroicons-check-16-solid.js +3 -4
  306. package/dist/icons/generated/heroicons-check-16-solid.js.map +1 -1
  307. package/dist/icons/generated/heroicons-x-mark-16-solid.d.ts +5 -4
  308. package/dist/icons/generated/heroicons-x-mark-16-solid.d.ts.map +1 -0
  309. package/dist/icons/generated/heroicons-x-mark-16-solid.js +3 -4
  310. package/dist/icons/generated/heroicons-x-mark-16-solid.js.map +1 -1
  311. package/dist/icons/generated/jam-close-circle-f.d.ts +7 -6
  312. package/dist/icons/generated/jam-close-circle-f.d.ts.map +1 -0
  313. package/dist/icons/generated/jam-close-circle-f.js +3 -4
  314. package/dist/icons/generated/jam-close-circle-f.js.map +1 -1
  315. package/dist/icons/generated/lucide-arrow-down-to-line.d.ts +5 -4
  316. package/dist/icons/generated/lucide-arrow-down-to-line.d.ts.map +1 -0
  317. package/dist/icons/generated/lucide-arrow-down-to-line.js +3 -4
  318. package/dist/icons/generated/lucide-arrow-down-to-line.js.map +1 -1
  319. package/dist/icons/generated/lucide-arrow-up-to-line.d.ts +5 -4
  320. package/dist/icons/generated/lucide-arrow-up-to-line.d.ts.map +1 -0
  321. package/dist/icons/generated/lucide-arrow-up-to-line.js +3 -4
  322. package/dist/icons/generated/lucide-arrow-up-to-line.js.map +1 -1
  323. package/dist/icons/generated/lucide-bell.d.ts +5 -4
  324. package/dist/icons/generated/lucide-bell.d.ts.map +1 -0
  325. package/dist/icons/generated/lucide-bell.js +3 -4
  326. package/dist/icons/generated/lucide-bell.js.map +1 -1
  327. package/dist/icons/generated/lucide-check.d.ts +5 -4
  328. package/dist/icons/generated/lucide-check.d.ts.map +1 -0
  329. package/dist/icons/generated/lucide-check.js +3 -4
  330. package/dist/icons/generated/lucide-check.js.map +1 -1
  331. package/dist/icons/generated/lucide-chevron-down.d.ts +5 -4
  332. package/dist/icons/generated/lucide-chevron-down.d.ts.map +1 -0
  333. package/dist/icons/generated/lucide-chevron-down.js +3 -4
  334. package/dist/icons/generated/lucide-chevron-down.js.map +1 -1
  335. package/dist/icons/generated/lucide-chevron-left.d.ts +5 -4
  336. package/dist/icons/generated/lucide-chevron-left.d.ts.map +1 -0
  337. package/dist/icons/generated/lucide-chevron-left.js +3 -4
  338. package/dist/icons/generated/lucide-chevron-left.js.map +1 -1
  339. package/dist/icons/generated/lucide-chevron-right.d.ts +5 -4
  340. package/dist/icons/generated/lucide-chevron-right.d.ts.map +1 -0
  341. package/dist/icons/generated/lucide-chevron-right.js +3 -4
  342. package/dist/icons/generated/lucide-chevron-right.js.map +1 -1
  343. package/dist/icons/generated/lucide-chevron-up.d.ts +5 -4
  344. package/dist/icons/generated/lucide-chevron-up.d.ts.map +1 -0
  345. package/dist/icons/generated/lucide-chevron-up.js +3 -4
  346. package/dist/icons/generated/lucide-chevron-up.js.map +1 -1
  347. package/dist/icons/generated/lucide-circle-alert.d.ts +5 -4
  348. package/dist/icons/generated/lucide-circle-alert.d.ts.map +1 -0
  349. package/dist/icons/generated/lucide-circle-alert.js +3 -4
  350. package/dist/icons/generated/lucide-circle-alert.js.map +1 -1
  351. package/dist/icons/generated/lucide-clapperboard.d.ts +5 -4
  352. package/dist/icons/generated/lucide-clapperboard.d.ts.map +1 -0
  353. package/dist/icons/generated/lucide-clapperboard.js +3 -4
  354. package/dist/icons/generated/lucide-clapperboard.js.map +1 -1
  355. package/dist/icons/generated/lucide-clipboard-paste.d.ts +5 -4
  356. package/dist/icons/generated/lucide-clipboard-paste.d.ts.map +1 -0
  357. package/dist/icons/generated/lucide-clipboard-paste.js +3 -4
  358. package/dist/icons/generated/lucide-clipboard-paste.js.map +1 -1
  359. package/dist/icons/generated/lucide-code.d.ts +5 -4
  360. package/dist/icons/generated/lucide-code.d.ts.map +1 -0
  361. package/dist/icons/generated/lucide-code.js +3 -4
  362. package/dist/icons/generated/lucide-code.js.map +1 -1
  363. package/dist/icons/generated/lucide-copy.d.ts +5 -4
  364. package/dist/icons/generated/lucide-copy.d.ts.map +1 -0
  365. package/dist/icons/generated/lucide-copy.js +3 -4
  366. package/dist/icons/generated/lucide-copy.js.map +1 -1
  367. package/dist/icons/generated/lucide-download.d.ts +5 -4
  368. package/dist/icons/generated/lucide-download.d.ts.map +1 -0
  369. package/dist/icons/generated/lucide-download.js +3 -4
  370. package/dist/icons/generated/lucide-download.js.map +1 -1
  371. package/dist/icons/generated/lucide-ellipsis-vertical.d.ts +5 -4
  372. package/dist/icons/generated/lucide-ellipsis-vertical.d.ts.map +1 -0
  373. package/dist/icons/generated/lucide-ellipsis-vertical.js +3 -4
  374. package/dist/icons/generated/lucide-ellipsis-vertical.js.map +1 -1
  375. package/dist/icons/generated/lucide-external-link.d.ts +5 -4
  376. package/dist/icons/generated/lucide-external-link.d.ts.map +1 -0
  377. package/dist/icons/generated/lucide-external-link.js +3 -4
  378. package/dist/icons/generated/lucide-external-link.js.map +1 -1
  379. package/dist/icons/generated/lucide-eye.d.ts +5 -4
  380. package/dist/icons/generated/lucide-eye.d.ts.map +1 -0
  381. package/dist/icons/generated/lucide-eye.js +3 -4
  382. package/dist/icons/generated/lucide-eye.js.map +1 -1
  383. package/dist/icons/generated/lucide-file-text.d.ts +5 -4
  384. package/dist/icons/generated/lucide-file-text.d.ts.map +1 -0
  385. package/dist/icons/generated/lucide-file-text.js +3 -4
  386. package/dist/icons/generated/lucide-file-text.js.map +1 -1
  387. package/dist/icons/generated/lucide-file.d.ts +5 -4
  388. package/dist/icons/generated/lucide-file.d.ts.map +1 -0
  389. package/dist/icons/generated/lucide-file.js +3 -4
  390. package/dist/icons/generated/lucide-file.js.map +1 -1
  391. package/dist/icons/generated/lucide-film.d.ts +5 -4
  392. package/dist/icons/generated/lucide-film.d.ts.map +1 -0
  393. package/dist/icons/generated/lucide-film.js +3 -4
  394. package/dist/icons/generated/lucide-film.js.map +1 -1
  395. package/dist/icons/generated/lucide-folder-open.d.ts +5 -4
  396. package/dist/icons/generated/lucide-folder-open.d.ts.map +1 -0
  397. package/dist/icons/generated/lucide-folder-open.js +3 -4
  398. package/dist/icons/generated/lucide-folder-open.js.map +1 -1
  399. package/dist/icons/generated/lucide-folder.d.ts +5 -4
  400. package/dist/icons/generated/lucide-folder.d.ts.map +1 -0
  401. package/dist/icons/generated/lucide-folder.js +3 -4
  402. package/dist/icons/generated/lucide-folder.js.map +1 -1
  403. package/dist/icons/generated/lucide-globe.d.ts +5 -4
  404. package/dist/icons/generated/lucide-globe.d.ts.map +1 -0
  405. package/dist/icons/generated/lucide-globe.js +3 -4
  406. package/dist/icons/generated/lucide-globe.js.map +1 -1
  407. package/dist/icons/generated/lucide-headphones.d.ts +5 -4
  408. package/dist/icons/generated/lucide-headphones.d.ts.map +1 -0
  409. package/dist/icons/generated/lucide-headphones.js +3 -4
  410. package/dist/icons/generated/lucide-headphones.js.map +1 -1
  411. package/dist/icons/generated/lucide-heart.d.ts +5 -4
  412. package/dist/icons/generated/lucide-heart.d.ts.map +1 -0
  413. package/dist/icons/generated/lucide-heart.js +3 -4
  414. package/dist/icons/generated/lucide-heart.js.map +1 -1
  415. package/dist/icons/generated/lucide-image.d.ts +5 -4
  416. package/dist/icons/generated/lucide-image.d.ts.map +1 -0
  417. package/dist/icons/generated/lucide-image.js +3 -4
  418. package/dist/icons/generated/lucide-image.js.map +1 -1
  419. package/dist/icons/generated/lucide-inbox.d.ts +5 -4
  420. package/dist/icons/generated/lucide-inbox.d.ts.map +1 -0
  421. package/dist/icons/generated/lucide-inbox.js +3 -4
  422. package/dist/icons/generated/lucide-inbox.js.map +1 -1
  423. package/dist/icons/generated/lucide-info.d.ts +5 -4
  424. package/dist/icons/generated/lucide-info.d.ts.map +1 -0
  425. package/dist/icons/generated/lucide-info.js +3 -4
  426. package/dist/icons/generated/lucide-info.js.map +1 -1
  427. package/dist/icons/generated/lucide-layout-grid.d.ts +5 -4
  428. package/dist/icons/generated/lucide-layout-grid.d.ts.map +1 -0
  429. package/dist/icons/generated/lucide-layout-grid.js +3 -4
  430. package/dist/icons/generated/lucide-layout-grid.js.map +1 -1
  431. package/dist/icons/generated/lucide-link.d.ts +5 -4
  432. package/dist/icons/generated/lucide-link.d.ts.map +1 -0
  433. package/dist/icons/generated/lucide-link.js +3 -4
  434. package/dist/icons/generated/lucide-link.js.map +1 -1
  435. package/dist/icons/generated/lucide-list-filter.d.ts +5 -4
  436. package/dist/icons/generated/lucide-list-filter.d.ts.map +1 -0
  437. package/dist/icons/generated/lucide-list-filter.js +3 -4
  438. package/dist/icons/generated/lucide-list-filter.js.map +1 -1
  439. package/dist/icons/generated/lucide-list-restart.d.ts +5 -4
  440. package/dist/icons/generated/lucide-list-restart.d.ts.map +1 -0
  441. package/dist/icons/generated/lucide-list-restart.js +3 -4
  442. package/dist/icons/generated/lucide-list-restart.js.map +1 -1
  443. package/dist/icons/generated/lucide-loader-circle.d.ts +5 -4
  444. package/dist/icons/generated/lucide-loader-circle.d.ts.map +1 -0
  445. package/dist/icons/generated/lucide-loader-circle.js +3 -4
  446. package/dist/icons/generated/lucide-loader-circle.js.map +1 -1
  447. package/dist/icons/generated/lucide-mail.d.ts +5 -4
  448. package/dist/icons/generated/lucide-mail.d.ts.map +1 -0
  449. package/dist/icons/generated/lucide-mail.js +3 -4
  450. package/dist/icons/generated/lucide-mail.js.map +1 -1
  451. package/dist/icons/generated/lucide-minus.d.ts +5 -4
  452. package/dist/icons/generated/lucide-minus.d.ts.map +1 -0
  453. package/dist/icons/generated/lucide-minus.js +3 -4
  454. package/dist/icons/generated/lucide-minus.js.map +1 -1
  455. package/dist/icons/generated/lucide-music.d.ts +5 -4
  456. package/dist/icons/generated/lucide-music.d.ts.map +1 -0
  457. package/dist/icons/generated/lucide-music.js +3 -4
  458. package/dist/icons/generated/lucide-music.js.map +1 -1
  459. package/dist/icons/generated/lucide-package.d.ts +5 -4
  460. package/dist/icons/generated/lucide-package.d.ts.map +1 -0
  461. package/dist/icons/generated/lucide-package.js +3 -4
  462. package/dist/icons/generated/lucide-package.js.map +1 -1
  463. package/dist/icons/generated/lucide-pen-line.d.ts +5 -4
  464. package/dist/icons/generated/lucide-pen-line.d.ts.map +1 -0
  465. package/dist/icons/generated/lucide-pen-line.js +3 -4
  466. package/dist/icons/generated/lucide-pen-line.js.map +1 -1
  467. package/dist/icons/generated/lucide-pencil.d.ts +5 -4
  468. package/dist/icons/generated/lucide-pencil.d.ts.map +1 -0
  469. package/dist/icons/generated/lucide-pencil.js +3 -4
  470. package/dist/icons/generated/lucide-pencil.js.map +1 -1
  471. package/dist/icons/generated/lucide-play.d.ts +5 -4
  472. package/dist/icons/generated/lucide-play.d.ts.map +1 -0
  473. package/dist/icons/generated/lucide-play.js +3 -4
  474. package/dist/icons/generated/lucide-play.js.map +1 -1
  475. package/dist/icons/generated/lucide-plus.d.ts +5 -4
  476. package/dist/icons/generated/lucide-plus.d.ts.map +1 -0
  477. package/dist/icons/generated/lucide-plus.js +3 -4
  478. package/dist/icons/generated/lucide-plus.js.map +1 -1
  479. package/dist/icons/generated/lucide-printer.d.ts +5 -4
  480. package/dist/icons/generated/lucide-printer.d.ts.map +1 -0
  481. package/dist/icons/generated/lucide-printer.js +3 -4
  482. package/dist/icons/generated/lucide-printer.js.map +1 -1
  483. package/dist/icons/generated/lucide-redo-2.d.ts +5 -4
  484. package/dist/icons/generated/lucide-redo-2.d.ts.map +1 -0
  485. package/dist/icons/generated/lucide-redo-2.js +3 -4
  486. package/dist/icons/generated/lucide-redo-2.js.map +1 -1
  487. package/dist/icons/generated/lucide-refresh-cw.d.ts +5 -4
  488. package/dist/icons/generated/lucide-refresh-cw.d.ts.map +1 -0
  489. package/dist/icons/generated/lucide-refresh-cw.js +3 -4
  490. package/dist/icons/generated/lucide-refresh-cw.js.map +1 -1
  491. package/dist/icons/generated/lucide-scissors.d.ts +5 -4
  492. package/dist/icons/generated/lucide-scissors.d.ts.map +1 -0
  493. package/dist/icons/generated/lucide-scissors.js +3 -4
  494. package/dist/icons/generated/lucide-scissors.js.map +1 -1
  495. package/dist/icons/generated/lucide-search.d.ts +5 -4
  496. package/dist/icons/generated/lucide-search.d.ts.map +1 -0
  497. package/dist/icons/generated/lucide-search.js +3 -4
  498. package/dist/icons/generated/lucide-search.js.map +1 -1
  499. package/dist/icons/generated/lucide-settings.d.ts +5 -4
  500. package/dist/icons/generated/lucide-settings.d.ts.map +1 -0
  501. package/dist/icons/generated/lucide-settings.js +3 -4
  502. package/dist/icons/generated/lucide-settings.js.map +1 -1
  503. package/dist/icons/generated/lucide-sliders-horizontal.d.ts +5 -4
  504. package/dist/icons/generated/lucide-sliders-horizontal.d.ts.map +1 -0
  505. package/dist/icons/generated/lucide-sliders-horizontal.js +3 -4
  506. package/dist/icons/generated/lucide-sliders-horizontal.js.map +1 -1
  507. package/dist/icons/generated/lucide-star.d.ts +5 -4
  508. package/dist/icons/generated/lucide-star.d.ts.map +1 -0
  509. package/dist/icons/generated/lucide-star.js +3 -4
  510. package/dist/icons/generated/lucide-star.js.map +1 -1
  511. package/dist/icons/generated/lucide-tag.d.ts +5 -4
  512. package/dist/icons/generated/lucide-tag.d.ts.map +1 -0
  513. package/dist/icons/generated/lucide-tag.js +3 -4
  514. package/dist/icons/generated/lucide-tag.js.map +1 -1
  515. package/dist/icons/generated/lucide-tags.d.ts +5 -4
  516. package/dist/icons/generated/lucide-tags.d.ts.map +1 -0
  517. package/dist/icons/generated/lucide-tags.js +3 -4
  518. package/dist/icons/generated/lucide-tags.js.map +1 -1
  519. package/dist/icons/generated/lucide-trash-2.d.ts +5 -4
  520. package/dist/icons/generated/lucide-trash-2.d.ts.map +1 -0
  521. package/dist/icons/generated/lucide-trash-2.js +3 -4
  522. package/dist/icons/generated/lucide-trash-2.js.map +1 -1
  523. package/dist/icons/generated/lucide-triangle-alert.d.ts +5 -4
  524. package/dist/icons/generated/lucide-triangle-alert.d.ts.map +1 -0
  525. package/dist/icons/generated/lucide-triangle-alert.js +3 -4
  526. package/dist/icons/generated/lucide-triangle-alert.js.map +1 -1
  527. package/dist/icons/generated/lucide-undo-2.d.ts +5 -4
  528. package/dist/icons/generated/lucide-undo-2.d.ts.map +1 -0
  529. package/dist/icons/generated/lucide-undo-2.js +3 -4
  530. package/dist/icons/generated/lucide-undo-2.js.map +1 -1
  531. package/dist/icons/generated/lucide-upload.d.ts +5 -4
  532. package/dist/icons/generated/lucide-upload.d.ts.map +1 -0
  533. package/dist/icons/generated/lucide-upload.js +3 -4
  534. package/dist/icons/generated/lucide-upload.js.map +1 -1
  535. package/dist/icons/generated/lucide-user.d.ts +5 -4
  536. package/dist/icons/generated/lucide-user.d.ts.map +1 -0
  537. package/dist/icons/generated/lucide-user.js +3 -4
  538. package/dist/icons/generated/lucide-user.js.map +1 -1
  539. package/dist/icons/generated/lucide-wrench.d.ts +5 -4
  540. package/dist/icons/generated/lucide-wrench.d.ts.map +1 -0
  541. package/dist/icons/generated/lucide-wrench.js +3 -4
  542. package/dist/icons/generated/lucide-wrench.js.map +1 -1
  543. package/dist/icons/generated/lucide-x.d.ts +5 -4
  544. package/dist/icons/generated/lucide-x.d.ts.map +1 -0
  545. package/dist/icons/generated/lucide-x.js +3 -4
  546. package/dist/icons/generated/lucide-x.js.map +1 -1
  547. package/dist/icons/generated/mdi-tag-search-outline.d.ts +5 -4
  548. package/dist/icons/generated/mdi-tag-search-outline.d.ts.map +1 -0
  549. package/dist/icons/generated/mdi-tag-search-outline.js +3 -4
  550. package/dist/icons/generated/mdi-tag-search-outline.js.map +1 -1
  551. package/dist/icons/generated/ooui-close.d.ts +5 -4
  552. package/dist/icons/generated/ooui-close.d.ts.map +1 -0
  553. package/dist/icons/generated/ooui-close.js +3 -4
  554. package/dist/icons/generated/ooui-close.js.map +1 -1
  555. package/dist/icons/generated/radix-icons-panel-left-minimized.d.ts +5 -4
  556. package/dist/icons/generated/radix-icons-panel-left-minimized.d.ts.map +1 -0
  557. package/dist/icons/generated/radix-icons-panel-left-minimized.js +3 -4
  558. package/dist/icons/generated/radix-icons-panel-left-minimized.js.map +1 -1
  559. package/dist/icons/generated/radix-icons-reset.d.ts +5 -4
  560. package/dist/icons/generated/radix-icons-reset.d.ts.map +1 -0
  561. package/dist/icons/generated/radix-icons-reset.js +3 -4
  562. package/dist/icons/generated/radix-icons-reset.js.map +1 -1
  563. package/dist/icons/generated/tabler-sort-ascending-letters.d.ts +5 -4
  564. package/dist/icons/generated/tabler-sort-ascending-letters.d.ts.map +1 -0
  565. package/dist/icons/generated/tabler-sort-ascending-letters.js +3 -4
  566. package/dist/icons/generated/tabler-sort-ascending-letters.js.map +1 -1
  567. package/dist/icons/index.d.ts +75 -74
  568. package/dist/icons/index.js +75 -75
  569. package/dist/shared/element-height/index.js +51 -25
  570. package/dist/shared/element-height/index.js.map +1 -1
  571. package/dist/shared/element-width/index.js +39 -24
  572. package/dist/shared/element-width/index.js.map +1 -1
  573. package/dist/shared/events/user-change.js +14 -8
  574. package/dist/shared/events/user-change.js.map +1 -1
  575. package/dist/shared/focus/pointer-focus.js +56 -30
  576. package/dist/shared/focus/pointer-focus.js.map +1 -1
  577. package/dist/shared/focus/tabbable.js +96 -0
  578. package/dist/shared/focus/tabbable.js.map +1 -0
  579. package/dist/shared/form-association/field-id.js +13 -6
  580. package/dist/shared/form-association/field-id.js.map +1 -1
  581. package/dist/shared/form-association/index.js +75 -42
  582. package/dist/shared/form-association/index.js.map +1 -1
  583. package/dist/shared/gesture/drag-gesture.js +239 -99
  584. package/dist/shared/gesture/drag-gesture.js.map +1 -1
  585. package/dist/shared/gesture/physics.js +49 -16
  586. package/dist/shared/gesture/physics.js.map +1 -1
  587. package/dist/shared/gesture/pinch-gesture.js +111 -60
  588. package/dist/shared/gesture/pinch-gesture.js.map +1 -1
  589. package/dist/shared/group-management/index.js +181 -84
  590. package/dist/shared/group-management/index.js.map +1 -1
  591. package/dist/shared/label-emptiness/index.js +45 -26
  592. package/dist/shared/label-emptiness/index.js.map +1 -1
  593. package/dist/shared/locale/builtin-labels.js +38 -0
  594. package/dist/shared/locale/builtin-labels.js.map +1 -0
  595. package/dist/shared/menu-behavior/index.js +113 -60
  596. package/dist/shared/menu-behavior/index.js.map +1 -1
  597. package/dist/shared/menu-portal/menu-portal.js +47 -26
  598. package/dist/shared/menu-portal/menu-portal.js.map +1 -1
  599. package/dist/shared/menu-portal/menu-tree.js +132 -75
  600. package/dist/shared/menu-portal/menu-tree.js.map +1 -1
  601. package/dist/shared/normalize/index.js +16 -7
  602. package/dist/shared/normalize/index.js.map +1 -1
  603. package/dist/shared/open-state/index.js +7 -8
  604. package/dist/shared/open-state/index.js.map +1 -1
  605. package/dist/shared/option-portal/combobox-shell.js +121 -56
  606. package/dist/shared/option-portal/combobox-shell.js.map +1 -1
  607. package/dist/shared/option-portal/index.js +65 -44
  608. package/dist/shared/option-portal/index.js.map +1 -1
  609. package/dist/shared/overlay/anchored-panel.js +75 -40
  610. package/dist/shared/overlay/anchored-panel.js.map +1 -1
  611. package/dist/shared/overlay/native-dialog-presence.js +116 -52
  612. package/dist/shared/overlay/native-dialog-presence.js.map +1 -1
  613. package/dist/shared/overlay/nested-drawer-layers.js +76 -46
  614. package/dist/shared/overlay/nested-drawer-layers.js.map +1 -1
  615. package/dist/shared/overlay/open-overlay.js +240 -136
  616. package/dist/shared/overlay/open-overlay.js.map +1 -1
  617. package/dist/shared/overlay/overlay-root.js +33 -24
  618. package/dist/shared/overlay/overlay-root.js.map +1 -1
  619. package/dist/shared/overlay/overlay.js +109 -66
  620. package/dist/shared/overlay/overlay.js.map +1 -1
  621. package/dist/shared/overlay/placement-props.js +9 -4
  622. package/dist/shared/overlay/placement-props.js.map +1 -1
  623. package/dist/shared/overlay/portal.d.ts +2 -0
  624. package/dist/shared/overlay/portal.d.ts.map +1 -0
  625. package/dist/shared/overlay/portal.js +202 -117
  626. package/dist/shared/overlay/portal.js.map +1 -1
  627. package/dist/shared/overlay/positioning-generation.js +9 -10
  628. package/dist/shared/overlay/positioning-generation.js.map +1 -1
  629. package/dist/shared/overlay/presence.js +43 -21
  630. package/dist/shared/overlay/presence.js.map +1 -1
  631. package/dist/shared/overlay/theme-overlay-scope.js +22 -19
  632. package/dist/shared/overlay/theme-overlay-scope.js.map +1 -1
  633. package/dist/shared/scroll-lock/scroll-lock.js +49 -15
  634. package/dist/shared/scroll-lock/scroll-lock.js.map +1 -1
  635. package/dist/shared/theme/duration.js +13 -6
  636. package/dist/shared/theme/duration.js.map +1 -1
  637. package/dist/shared/theme/reduced-motion.js +14 -9
  638. package/dist/shared/theme/reduced-motion.js.map +1 -1
  639. package/dist/shared/theme/root-sync.js +85 -32
  640. package/dist/shared/theme/root-sync.js.map +1 -1
  641. package/dist/shared/visible-area/index.js +81 -37
  642. package/dist/shared/visible-area/index.js.map +1 -1
  643. package/dist/types/iconify.d.ts +1 -1
  644. package/dist/types/iconify.js +0 -0
  645. package/dist/types/react.d.ts +8 -10
  646. package/dist/types/react.d.ts.map +1 -0
  647. package/dist/types/react.js +0 -0
  648. package/dist/types/utils.d.ts +8 -13
  649. package/dist/types/utils.d.ts.map +1 -0
  650. package/dist/types/utils.js +0 -0
  651. package/dist/types/vue.d.ts +9 -13
  652. package/dist/types/vue.d.ts.map +1 -0
  653. package/dist/types/vue.js +0 -0
  654. package/dist/vite/index.d.ts +1 -0
  655. package/dist/vite/index.d.ts.map +1 -0
  656. package/dist/vite/index.js +30 -4
  657. package/dist/vite/index.js.map +1 -1
  658. package/package.json +10 -23
  659. package/dist/_virtual/_@oxc-project_runtime@0.149.0/helpers/esm/decorate.js +0 -9
  660. package/dist/components/middle-ellipsis/truncate.d.ts +0 -62
  661. package/dist/components/radio/interaction.d.ts +0 -4
  662. package/dist/scrollbars/index.d.ts +0 -33
  663. package/dist/scrollbars/index.js +0 -18
  664. package/dist/scrollbars/index.js.map +0 -1
  665. package/dist/scrollbars/internal.js +0 -6
  666. package/dist/scrollbars/internal.js.map +0 -1
  667. package/dist/scrollbars/style.css +0 -10
@@ -1,123 +1,234 @@
1
- import e from "../../_virtual/_@oxc-project_runtime@0.149.0/helpers/esm/decorate.js";
1
+ import __decorate from "../../_virtual/_@oxc-project_runtime@0.155.0/helpers/esm/decorate.js";
2
2
  import "../icon/index.js";
3
- import t from "../../classes/glass.js";
4
- import n from "../../icons/generated/lucide-chevron-left.js";
5
- import r from "../../icons/generated/lucide-chevron-right.js";
6
- import i from "../../icons/generated/lucide-plus.js";
7
- import a from "../../icons/generated/lucide-minus.js";
8
- import o from "../../icons/generated/ooui-close.js";
9
- import s from "../../icons/generated/radix-icons-reset.js";
3
+ import glass_default from "../../classes/glass.js";
4
+ import lucide_chevron_left_default from "../../icons/generated/lucide-chevron-left.js";
5
+ import lucide_chevron_right_default from "../../icons/generated/lucide-chevron-right.js";
6
+ import lucide_plus_default from "../../icons/generated/lucide-plus.js";
7
+ import lucide_minus_default from "../../icons/generated/lucide-minus.js";
8
+ import ooui_close_default from "../../icons/generated/ooui-close.js";
9
+ import radix_icons_reset_default from "../../icons/generated/radix-icons-reset.js";
10
10
  import "../button/index.js";
11
- import { defineOpenOverlay as c } from "../../shared/overlay/open-overlay.js";
12
- import { getFallbackOverlayRoot as l } from "../../shared/overlay/overlay-root.js";
13
- import { findNearestTheme as u, findRootTheme as d } from "../../shared/overlay/theme-overlay-scope.js";
14
- import { defineScrollLockLease as f } from "../../shared/scroll-lock/scroll-lock.js";
15
- import p from "../../assets/modal-surface.js";
16
- import { defineNativeDialogPresence as m } from "../../shared/overlay/native-dialog-presence.js";
17
- import { attachDragGesture as h } from "../../shared/gesture/drag-gesture.js";
18
- import { clamp as g } from "../../shared/gesture/physics.js";
19
- import { attachPinchGesture as _ } from "../../shared/gesture/pinch-gesture.js";
20
- import v from "./style.js";
21
- import { LitElement as y, html as b, nothing as x, unsafeCSS as S } from "lit";
22
- import { customElement as C, property as w, state as T } from "lit/decorators.js";
23
- import { classMap as E } from "lit/directives/class-map.js";
24
- import { styleMap as D } from "lit/directives/style-map.js";
25
- //#region src/components/image-preview/index.ts
26
- var O = 1, k = 4, A = .5, j = .002, M = 3, N = .15, P = 320, F = 16, I = 160, L = 320, R = class extends y {
27
- constructor(...e) {
28
- super(...e), this.images = [], this.loop = !0, this.nav = !1, this.toolbar = !1, this.closable = !1, this.indicator = !1, this.swipe = !1, this.noScrollLock = !1, this.noBackdropClose = !1, this._open = !1, this._index = 0, this._scale = O, this._offsetX = 0, this._offsetY = 0, this._swipeOffset = 0, this._swipeSettling = !1, this._dragging = !1, this._loadedSources = /* @__PURE__ */ new Set(), this._swipeDir = 0, this._swipeStartTime = 0, this._swipeSettleCommit = !1, this._swipeSettleDir = 1, this._scrollLock = f().make(), this._overlay = c().make({
11
+ import { resolveBuiltinLabelSet } from "../../shared/locale/builtin-labels.js";
12
+ import { defineOpenOverlay } from "../../shared/overlay/open-overlay.js";
13
+ import { getFallbackOverlayRoot } from "../../shared/overlay/overlay-root.js";
14
+ import { findNearestTheme, findRootTheme } from "../../shared/overlay/theme-overlay-scope.js";
15
+ import { defineScrollLockLease } from "../../shared/scroll-lock/scroll-lock.js";
16
+ import modal_surface_default from "../../assets/modal-surface.js";
17
+ import { defineNativeDialogPresence } from "../../shared/overlay/native-dialog-presence.js";
18
+ import { attachDragGesture } from "../../shared/gesture/drag-gesture.js";
19
+ import { clamp } from "../../shared/gesture/physics.js";
20
+ import { attachPinchGesture } from "../../shared/gesture/pinch-gesture.js";
21
+ import style_default from "./style.js";
22
+ import { LitElement, html, nothing, unsafeCSS } from "lit";
23
+ import { customElement, property, state } from "lit/decorators.js";
24
+ import { classMap } from "lit/directives/class-map.js";
25
+ import { styleMap } from "lit/directives/style-map.js";
26
+ // src/components/image-preview/index.ts
27
+ const MIN_SCALE = 1;
28
+ const MAX_SCALE = 4;
29
+ const ZOOM_STEP = .5;
30
+ const WHEEL_ZOOM_SENSITIVITY = .002;
31
+ const PAN_MOVE_THRESHOLD = 3;
32
+ const SWIPE_DISTANCE_RATIO = .15;
33
+ const SWIPE_VELOCITY = 320;
34
+ const SWIPE_FLICK_DISTANCE = 16;
35
+ const SWIPE_FLICK_VELOCITY = 160;
36
+ const SWIPE_SETTLE_MS = 320;
37
+ /**
38
+ * 图像预览的内部宿主。对外只通过 `imagePreview()` 使用,因此不导出类、
39
+ * 不注册 `HTMLElementTagNameMap`,避免形成声明式 tag 契约。
40
+ *
41
+ * 内部使用原生 `<dialog>.showModal()`,与 `<web-ui-dialog>` 共享
42
+ * `native-dialog-presence` 与 `scroll-lock` 两个底层插件,而不是复用该组件:
43
+ * 本组件需要自身铺满视口的 dialog(backdrop 即 dialog 背景)与自有指针交互,
44
+ * 与 dialog 组件的玻璃卡片 / 插槽契约不同源。
45
+ */
46
+ let WebUiImagePreview = class WebUiImagePreview extends LitElement {
47
+ constructor(..._args) {
48
+ super(..._args);
49
+ this.images = [];
50
+ this.loop = true;
51
+ this.nav = false;
52
+ this.toolbar = false;
53
+ this.closable = false;
54
+ this.indicator = false;
55
+ this.swipe = false;
56
+ this.noScrollLock = false;
57
+ this.noBackdropClose = false;
58
+ this._open = false;
59
+ this._index = 0;
60
+ this._scale = MIN_SCALE;
61
+ this._offsetX = 0;
62
+ this._offsetY = 0;
63
+ this._swipeOffset = 0;
64
+ this._swipeSettling = false;
65
+ this._dragging = false;
66
+ this._loadedSources = /* @__PURE__ */ new Set();
67
+ this._swipeDir = 0;
68
+ this._swipeStartTime = 0;
69
+ this._swipeSettleCommit = false;
70
+ this._swipeSettleDir = 1;
71
+ this._scrollLock = defineScrollLockLease().make();
72
+ this._overlay = defineOpenOverlay().make({
29
73
  requestClose: () => this.close(),
30
74
  isConnected: () => this.isConnected
31
- }), this._handle = null, this._presence = m().make({
75
+ });
76
+ this._handle = null;
77
+ this._presence = defineNativeDialogPresence().make({
32
78
  getDialog: () => this.dialog,
33
79
  isConnected: () => this.isConnected,
34
80
  isOpen: () => this._open
35
- }), this._dismissed = !1, this._swipeGesture = !1, this._panOriginX = 0, this._panOriginY = 0, this._dragged = !1, this._blankPointerDown = !1, this._pinchScale = O, this._pinchLocalX = 0, this._pinchLocalY = 0, this._handleImageSettled = (e) => {
36
- let t = e.currentTarget;
37
- t && (this._markLoaded(t), this.requestUpdate());
38
- }, this._handleCancel = (e) => {
39
- e.preventDefault(), this.close();
40
- }, this._handleNativeClose = () => {
81
+ });
82
+ this._dismissed = false;
83
+ this._swipeGesture = false;
84
+ this._panOriginX = 0;
85
+ this._panOriginY = 0;
86
+ this._dragged = false;
87
+ this._blankPointerDown = false;
88
+ this._pinchScale = MIN_SCALE;
89
+ this._pinchLocalX = 0;
90
+ this._pinchLocalY = 0;
91
+ this._handleImageSettled = (event) => {
92
+ const image = event.currentTarget;
93
+ if (!image) return;
94
+ this._markLoaded(image);
95
+ this.requestUpdate();
96
+ };
97
+ this._handleCancel = (event) => {
98
+ event.preventDefault();
99
+ this.close();
100
+ };
101
+ this._handleNativeClose = () => {
41
102
  this._notifyDismissed();
42
- }, this._handleTransitionEnd = (e) => {
43
- this._presence.handleTransitionEnd(e);
44
- }, this._handleKeydown = (e) => {
45
- if (this._open && !e.defaultPrevented && !(e.altKey || e.ctrlKey || e.metaKey)) switch (e.key) {
103
+ };
104
+ this._handleTransitionEnd = (event) => {
105
+ this._presence.handleTransitionEnd(event);
106
+ };
107
+ this._handleKeydown = (event) => {
108
+ if (!this._open || event.defaultPrevented) return;
109
+ if (event.altKey || event.ctrlKey || event.metaKey) return;
110
+ switch (event.key) {
46
111
  case "ArrowLeft":
47
- e.preventDefault(), this.prev();
112
+ event.preventDefault();
113
+ this.prev();
48
114
  break;
49
115
  case "ArrowRight":
50
- e.preventDefault(), this.next();
116
+ event.preventDefault();
117
+ this.next();
51
118
  break;
52
119
  case "+":
53
120
  case "=":
54
- e.preventDefault(), this.zoomIn();
121
+ event.preventDefault();
122
+ this.zoomIn();
55
123
  break;
56
124
  case "-":
57
125
  case "_":
58
- e.preventDefault(), this.zoomOut();
126
+ event.preventDefault();
127
+ this.zoomOut();
59
128
  break;
60
- case "0": e.preventDefault(), this.resetZoom();
129
+ case "0":
130
+ event.preventDefault();
131
+ this.resetZoom();
61
132
  }
62
- }, this._handleWheel = (e) => {
133
+ };
134
+ this._handleWheel = (event) => {
63
135
  if (!this._open) return;
64
- e.preventDefault();
65
- let t = e.deltaMode === 1 ? e.deltaY * 16 : e.deltaY, n = this._stageOrigin();
66
- this._zoomAt(this._scale * Math.exp(-t * j), e.clientX - n.x, e.clientY - n.y);
67
- }, this._handleClick = (e) => {
136
+ event.preventDefault();
137
+ const delta = event.deltaMode === 1 ? event.deltaY * 16 : event.deltaY;
138
+ const origin = this._stageOrigin();
139
+ this._zoomAt(this._scale * Math.exp(-delta * WHEEL_ZOOM_SENSITIVITY), event.clientX - origin.x, event.clientY - origin.y);
140
+ };
141
+ this._handleClick = (event) => {
68
142
  if (!this._open) return;
69
- let t = this._blankPointerDown;
70
- if (this._blankPointerDown = !1, t && e.detail !== 0) {
71
- if (this._dragged) {
72
- this._dragged = !1;
73
- return;
74
- }
75
- this.noBackdropClose || this.close();
143
+ const blank = this._blankPointerDown;
144
+ this._blankPointerDown = false;
145
+ if (!blank) return;
146
+ if (event.detail === 0) return;
147
+ if (this._dragged) {
148
+ this._dragged = false;
149
+ return;
76
150
  }
77
- }, this._handleDoubleClick = (e) => {
78
- this._open && e.target === this._image && (this._scale > O ? this.resetZoom() : this._setScale(k / 2));
79
- }, this._handlePinchStart = (e) => {
151
+ if (this.noBackdropClose) return;
152
+ this.close();
153
+ };
154
+ this._handleDoubleClick = (event) => {
155
+ if (!this._open || event.target !== this._image) return;
156
+ if (this._scale > MIN_SCALE) this.resetZoom();
157
+ else this._setScale(MAX_SCALE / 2);
158
+ };
159
+ this._handlePinchStart = (info) => {
160
+ if (!this._open) return;
161
+ this._endGesture();
162
+ this._dragging = true;
163
+ this._dragged = true;
164
+ const origin = this._stageOrigin();
165
+ this._pinchScale = this._scale;
166
+ this._pinchLocalX = (info.centerX - origin.x - this._offsetX) / this._scale;
167
+ this._pinchLocalY = (info.centerY - origin.y - this._offsetY) / this._scale;
168
+ };
169
+ this._handlePinchMove = (info) => {
80
170
  if (!this._open) return;
81
- this._endGesture(), this._dragging = !0, this._dragged = !0;
82
- let t = this._stageOrigin();
83
- this._pinchScale = this._scale, this._pinchLocalX = (e.centerX - t.x - this._offsetX) / this._scale, this._pinchLocalY = (e.centerY - t.y - this._offsetY) / this._scale;
84
- }, this._handlePinchMove = (e) => {
171
+ const scale = clamp(this._pinchScale * info.ratio, MIN_SCALE, MAX_SCALE);
172
+ const origin = this._stageOrigin();
173
+ this._applyScale(scale, info.centerX - origin.x - this._pinchLocalX * scale, info.centerY - origin.y - this._pinchLocalY * scale);
174
+ };
175
+ this._handlePinchEnd = () => {
176
+ this._dragging = false;
177
+ };
178
+ this._handlePinchCancel = () => {
179
+ this._dragging = false;
180
+ };
181
+ this._handleSwipeSettleEnd = (event) => {
182
+ if (!this._swipeSettling || event.propertyName !== "transform") return;
183
+ this._finishSwipeSettle();
184
+ };
185
+ this._handlePointerDown = (event) => {
85
186
  if (!this._open) return;
86
- let t = g(this._pinchScale * e.ratio, O, k), n = this._stageOrigin();
87
- this._applyScale(t, e.centerX - n.x - this._pinchLocalX * t, e.centerY - n.y - this._pinchLocalY * t);
88
- }, this._handlePinchEnd = () => {
89
- this._dragging = !1;
90
- }, this._handlePinchCancel = () => {
91
- this._dragging = !1;
92
- }, this._handleSwipeSettleEnd = (e) => {
93
- this._swipeSettling && e.propertyName === "transform" && this._finishSwipeSettle();
94
- }, this._handlePointerDown = (e) => {
95
- if (!this._open || (this._cancelSwipeSettle(), this._swipeDir = 0, this._swipeOffset = 0, e.button !== 0 || e.isPrimary === !1)) return;
96
- this._blankPointerDown = this._isBlank(e.target), this._dragged = !1;
97
- let t = this._stage;
98
- t && (e.target === t || t.contains(e.target)) && (this._swipeGesture = this._scale === O && this.swipe && this.images.length > 1, this._swipeStartTime = e.timeStamp, this._panOriginX = this._offsetX, this._panOriginY = this._offsetY, this._gesture?.destroy(), this._gesture = h(e, {
187
+ this._cancelSwipeSettle();
188
+ this._swipeDir = 0;
189
+ this._swipeOffset = 0;
190
+ if (!(event.button === 0 && event.isPrimary !== false)) return;
191
+ this._blankPointerDown = this._isBlank(event.target);
192
+ this._dragged = false;
193
+ const stage = this._stage;
194
+ if (!stage || event.target !== stage && !stage.contains(event.target)) return;
195
+ this._swipeGesture = this._scale === MIN_SCALE && this.swipe && this.images.length > 1;
196
+ this._swipeStartTime = event.timeStamp;
197
+ this._panOriginX = this._offsetX;
198
+ this._panOriginY = this._offsetY;
199
+ this._gesture?.destroy();
200
+ this._gesture = attachDragGesture(event, {
99
201
  axis: "both",
100
- threshold: M,
101
- onMove: (e) => {
102
- this._swipeGesture ? (this._swipeOffset = e.deltaX, e.deltaX !== 0 && (this._swipeDir = e.deltaX < 0 ? 1 : -1)) : this._panTo(e.deltaX, e.deltaY);
202
+ threshold: PAN_MOVE_THRESHOLD,
203
+ onMove: (info) => {
204
+ if (this._swipeGesture) {
205
+ this._swipeOffset = info.deltaX;
206
+ if (info.deltaX !== 0) this._swipeDir = info.deltaX < 0 ? 1 : -1;
207
+ } else this._panTo(info.deltaX, info.deltaY);
103
208
  },
104
- onEnd: (e) => {
105
- this._dragged = !0, this._dragging = !1, this._swipeGesture && this._settleSwipe(e.deltaX, e.velocityX, e.timeStamp);
209
+ onEnd: (info) => {
210
+ this._dragged = true;
211
+ this._dragging = false;
212
+ if (this._swipeGesture) this._settleSwipe(info.deltaX, info.velocityX, info.timeStamp);
106
213
  },
107
214
  onTap: () => {
108
- this._dragging = !1;
215
+ this._dragging = false;
109
216
  },
110
217
  onCancel: () => {
111
- this._dragging = !1, this._cancelSwipeSettle(), this._swipeDir = 0, this._swipeOffset = 0;
218
+ this._dragging = false;
219
+ this._cancelSwipeSettle();
220
+ this._swipeDir = 0;
221
+ this._swipeOffset = 0;
112
222
  }
113
- }), this._dragging = !0);
223
+ });
224
+ this._dragging = true;
114
225
  };
115
226
  }
116
227
  static {
117
228
  this.styles = [
118
- S(t),
119
- S(p),
120
- S(v)
229
+ unsafeCSS(glass_default),
230
+ unsafeCSS(modal_surface_default),
231
+ unsafeCSS(style_default)
121
232
  ];
122
233
  }
123
234
  get dialog() {
@@ -135,20 +246,36 @@ var O = 1, k = 4, A = .5, j = .002, M = 3, N = .15, P = 320, F = 16, I = 160, L
135
246
  get scale() {
136
247
  return this._scale;
137
248
  }
138
- configure(e) {
139
- this.images = e.images, this.loop = e.loop, this.nav = e.nav, this.toolbar = e.toolbar, this.closable = e.closable, this.indicator = e.indicator, this.swipe = e.swipe, this.noScrollLock = e.noScrollLock, this.noBackdropClose = e.noBackdropClose, this._index = g(e.index, 0, Math.max(0, e.images.length - 1));
249
+ configure(options) {
250
+ this.images = options.images;
251
+ this.loop = options.loop;
252
+ this.nav = options.nav;
253
+ this.toolbar = options.toolbar;
254
+ this.closable = options.closable;
255
+ this.indicator = options.indicator;
256
+ this.swipe = options.swipe;
257
+ this.noScrollLock = options.noScrollLock;
258
+ this.noBackdropClose = options.noBackdropClose;
259
+ this.ariaLabels = options.ariaLabels;
260
+ this._index = clamp(options.index, 0, Math.max(0, options.images.length - 1));
140
261
  }
141
262
  show() {
142
- this._open ||= (this._dismissed = !1, !0);
263
+ if (this._open) return;
264
+ this._dismissed = false;
265
+ this._open = true;
143
266
  }
144
267
  close() {
145
- this._open &&= (this._endGesture(), !1);
146
- }
147
- goTo(e) {
148
- let t = this.images.length;
149
- if (t === 0) return;
150
- let n = this.loop ? (e % t + t) % t : g(e, 0, t - 1);
151
- n !== this._index && (this._index = n, this.resetZoom());
268
+ if (!this._open) return;
269
+ this._endGesture();
270
+ this._open = false;
271
+ }
272
+ goTo(target) {
273
+ const count = this.images.length;
274
+ if (count === 0) return;
275
+ const next = this.loop ? (target % count + count) % count : clamp(target, 0, count - 1);
276
+ if (next === this._index) return;
277
+ this._index = next;
278
+ this.resetZoom();
152
279
  }
153
280
  next() {
154
281
  this.goTo(this._index + 1);
@@ -157,150 +284,261 @@ var O = 1, k = 4, A = .5, j = .002, M = 3, N = .15, P = 320, F = 16, I = 160, L
157
284
  this.goTo(this._index - 1);
158
285
  }
159
286
  zoomIn() {
160
- this._setScale(this._scale + A);
287
+ this._setScale(this._scale + ZOOM_STEP);
161
288
  }
162
289
  zoomOut() {
163
- this._setScale(this._scale - A);
290
+ this._setScale(this._scale - ZOOM_STEP);
164
291
  }
165
292
  resetZoom() {
166
- (this._scale !== O || this._offsetX !== 0 || this._offsetY !== 0) && (this._scale = O, this._offsetX = 0, this._offsetY = 0);
293
+ if (this._scale === MIN_SCALE && this._offsetX === 0 && this._offsetY === 0) return;
294
+ this._scale = MIN_SCALE;
295
+ this._offsetX = 0;
296
+ this._offsetY = 0;
167
297
  }
168
298
  connectedCallback() {
169
- super.connectedCallback(), this._presence.reconcile(), this._syncScrollLock(), this._attachPinch(), this._reclaimIfOpen();
299
+ super.connectedCallback();
300
+ this._presence.reconcile();
301
+ this._syncScrollLock();
302
+ this._attachPinch();
303
+ this._reclaimIfOpen();
170
304
  }
171
305
  _reclaimIfOpen() {
172
306
  if (!this._open || this._handle) return;
173
- let e = this.dialog;
174
- e && (this._handle = this._overlay.claim(e, { ancestryFrom: this }));
307
+ const dialog = this.dialog;
308
+ if (!dialog) return;
309
+ this._handle = this._overlay.claim(dialog, { ancestryFrom: this });
175
310
  }
176
311
  firstUpdated() {
177
312
  this._attachPinch();
178
313
  }
314
+ /**
315
+ * 双指缩放手势挂载。`firstUpdated` 整个生命周期只跑一次,而断连时会 destroy
316
+ * 并清空 `_pinch`,宿主被移出文档再接回后手势会永久失效——因此首连与重挂
317
+ * 共用本方法,重挂时补挂。
318
+ */
179
319
  _attachPinch() {
180
320
  if (this._pinch) return;
181
- let e = this._stage;
182
- e && (this._pinch = _(e, {
321
+ const stage = this._stage;
322
+ if (!stage) return;
323
+ this._pinch = attachPinchGesture(stage, {
183
324
  onStart: this._handlePinchStart,
184
325
  onMove: this._handlePinchMove,
185
326
  onEnd: this._handlePinchEnd,
186
327
  onCancel: this._handlePinchCancel
187
- }));
188
- }
189
- updated(e) {
190
- if (super.updated(e), this.isConnected) {
191
- if (e.has("_open")) {
192
- this._presence.sync(this._open), this._open && window.getSelection()?.removeAllRanges();
193
- let e = this.dialog;
194
- e && (this._open ? (this._handle?.release(), this._handle = this._overlay.claim(e, { ancestryFrom: this })) : (this._handle?.release(), this._handle = null)), !this._open && !this.dialog?.open && queueMicrotask(() => this._notifyDismissed());
328
+ });
329
+ }
330
+ updated(props) {
331
+ super.updated(props);
332
+ if (!this.isConnected) return;
333
+ if (props.has("_open")) {
334
+ this._presence.sync(this._open);
335
+ if (this._open) window.getSelection()?.removeAllRanges();
336
+ const dialog = this.dialog;
337
+ if (dialog) {
338
+ if (this._open) {
339
+ this._handle?.release();
340
+ this._handle = this._overlay.claim(dialog, { ancestryFrom: this });
341
+ } else {
342
+ this._handle?.release();
343
+ this._handle = null;
344
+ }
195
345
  }
196
- (e.has("_open") || e.has("noScrollLock")) && this._syncScrollLock();
346
+ if (!this._open && !this.dialog?.open) queueMicrotask(() => this._notifyDismissed());
197
347
  }
348
+ if (props.has("_open") || props.has("noScrollLock")) this._syncScrollLock();
198
349
  }
199
350
  disconnectedCallback() {
200
- super.disconnectedCallback(), this._endGesture(), this._pinch?.destroy(), this._pinch = void 0, this._presence.dispose(), this._scrollLock.release(), this._handle?.release(), this._handle = null;
351
+ super.disconnectedCallback();
352
+ this._endGesture();
353
+ this._pinch?.destroy();
354
+ this._pinch = void 0;
355
+ this._presence.dispose();
356
+ this._scrollLock.release();
357
+ this._handle?.release();
358
+ this._handle = null;
201
359
  }
202
360
  _syncScrollLock() {
203
361
  this._scrollLock.sync(this._open && !this.noScrollLock);
204
362
  }
205
363
  _notifyDismissed() {
206
- this._dismissed || this._open || (this._dismissed = !0, this.dispatchEvent(new CustomEvent("preview-dismissed")));
207
- }
208
- _zoomAt(e, t, n) {
209
- let r = g(e, O, k);
210
- if (r === this._scale) return;
211
- let i = r / this._scale;
212
- this._applyScale(r, t - (t - this._offsetX) * i, n - (n - this._offsetY) * i);
213
- }
214
- _applyScale(e, t, n) {
215
- if (this._scale = e, e === O) {
216
- this._offsetX = 0, this._offsetY = 0;
364
+ if (this._dismissed || this._open) return;
365
+ this._dismissed = true;
366
+ this.dispatchEvent(new CustomEvent("preview-dismissed"));
367
+ }
368
+ /**
369
+ * 以锚点缩放:锚点是相对舞台中心的偏移,它覆盖的图片内容在缩放前后保持不动。
370
+ * 滚轮传光标位置,两指传两指中点,工具栏与键盘传 (0, 0)(即视口中心)。
371
+ */
372
+ _zoomAt(next, anchorX, anchorY) {
373
+ const scale = clamp(next, MIN_SCALE, MAX_SCALE);
374
+ if (scale === this._scale) return;
375
+ const ratio = scale / this._scale;
376
+ this._applyScale(scale, anchorX - (anchorX - this._offsetX) * ratio, anchorY - (anchorY - this._offsetY) * ratio);
377
+ }
378
+ _applyScale(scale, offsetX, offsetY) {
379
+ this._scale = scale;
380
+ if (scale === MIN_SCALE) {
381
+ this._offsetX = 0;
382
+ this._offsetY = 0;
217
383
  return;
218
384
  }
219
- this._offsetX = t, this._offsetY = n, this._clampOffsets();
385
+ this._offsetX = offsetX;
386
+ this._offsetY = offsetY;
387
+ this._clampOffsets();
220
388
  }
221
- _setScale(e) {
222
- this._zoomAt(e, 0, 0);
389
+ _setScale(next) {
390
+ this._zoomAt(next, 0, 0);
223
391
  }
392
+ /** 舞台中心的视口坐标;所有缩放锚点都以它为原点。 */
224
393
  _stageOrigin() {
225
- let e = this._stage;
226
- if (!e) return {
394
+ const stage = this._stage;
395
+ if (!stage) return {
227
396
  x: 0,
228
397
  y: 0
229
398
  };
230
- let t = e.getBoundingClientRect();
399
+ const rect = stage.getBoundingClientRect();
231
400
  return {
232
- x: t.left + t.width / 2,
233
- y: t.top + t.height / 2
401
+ x: rect.left + rect.width / 2,
402
+ y: rect.top + rect.height / 2
234
403
  };
235
404
  }
405
+ /**
406
+ * 平移边界 = 图片与舞台在缩放后「尺寸差」的一半。
407
+ *
408
+ * 图片比舞台大时它是「能露出多少边缘」,比舞台小时它是「能在视口内移动多远」——
409
+ * 两种情形是同一个绝对差,所以 1x 也能拖动,且图片永远拖不出视口。
410
+ * 图片只受 max-width/max-height 收缩(不放大),因此 offsetWidth/offsetHeight
411
+ * 就是绘制尺寸,不受 CSS transform 影响。
412
+ */
236
413
  _offsetBounds() {
237
- let e = this._stage, t = this._image;
238
- if (!e || !t) return {
414
+ const stage = this._stage;
415
+ const image = this._image;
416
+ if (!stage || !image) return {
239
417
  x: 0,
240
418
  y: 0
241
419
  };
242
- let n = t.offsetWidth, r = t.offsetHeight;
243
- return !n || !r ? {
420
+ const width = image.offsetWidth;
421
+ const height = image.offsetHeight;
422
+ if (!width || !height) return {
244
423
  x: 0,
245
424
  y: 0
246
- } : {
247
- x: Math.abs(n * this._scale - e.clientWidth) / 2,
248
- y: Math.abs(r * this._scale - e.clientHeight) / 2
425
+ };
426
+ return {
427
+ x: Math.abs(width * this._scale - stage.clientWidth) / 2,
428
+ y: Math.abs(height * this._scale - stage.clientHeight) / 2
249
429
  };
250
430
  }
431
+ /** 当前是否存在位移。1x 也能平移,因此「重置缩放」是否可用不能只看倍率。 */
251
432
  get _isPanned() {
252
433
  return this._offsetX !== 0 || this._offsetY !== 0;
253
434
  }
254
435
  _clampOffsets() {
255
- let e = this._offsetBounds();
256
- this._offsetX = g(this._offsetX, -e.x, e.x), this._offsetY = g(this._offsetY, -e.y, e.y);
257
- }
258
- _isBlank(e) {
259
- return e === this.dialog || e === this._stage;
260
- }
261
- _markLoaded(e) {
262
- let t = this.images[Number(e.dataset.index)]?.src;
263
- t !== void 0 && this._loadedSources.add(t);
436
+ const bounds = this._offsetBounds();
437
+ this._offsetX = clamp(this._offsetX, -bounds.x, bounds.x);
438
+ this._offsetY = clamp(this._offsetY, -bounds.y, bounds.y);
439
+ }
440
+ /**
441
+ * 空白 = dialog 本体或未被图片 / 控件覆盖的舞台区域。
442
+ *
443
+ * 只能在 pointerdown(指针捕获生效前)判定:一旦舞台通过 setPointerCapture
444
+ * 取得捕获,后续 click 的 target 会被重定向到舞台,用它判断会把「点图片」
445
+ * 误判成「点空白」而关闭 overlay。
446
+ */
447
+ _isBlank(target) {
448
+ return target === this.dialog || target === this._stage;
449
+ }
450
+ /**
451
+ * 登记加载完成的图片,键与 render 侧 `is-loaded` 的查询同源。
452
+ *
453
+ * 不能用 `image.src`:那是 IDL 属性,返回**相对 src 解析后的绝对 URL**,而查询用的是
454
+ * `this.images[i].src`(调用方原始串)。相对 src 下两者永不相等 → `is-loaded` 永不
455
+ * 施加 → 图片停在 `opacity: 0`,尽管 img 早已 `complete`。
456
+ *
457
+ * 所属下标由模板写在 `data-index` 上(与该 img 的 `src` 出自同一处),因此多图 /
458
+ * lazy 渲染下不会错位。
459
+ */
460
+ _markLoaded(image) {
461
+ const src = this.images[Number(image.dataset.index)]?.src;
462
+ if (src !== void 0) this._loadedSources.add(src);
264
463
  }
265
464
  _endGesture() {
266
- this._gesture?.destroy(), this._gesture = void 0, this._dragging = !1, this._cancelSwipeSettle(), this._swipeDir = 0, this._swipeOffset = 0;
267
- }
268
- _adjacentIndex(e) {
269
- let t = this.images.length;
270
- if (t <= 1) return -1;
271
- if (this.loop) return ((this._index + e) % t + t) % t;
272
- let n = this._index + e;
273
- return n >= 0 && n < t ? n : -1;
274
- }
465
+ this._gesture?.destroy();
466
+ this._gesture = void 0;
467
+ this._dragging = false;
468
+ this._cancelSwipeSettle();
469
+ this._swipeDir = 0;
470
+ this._swipeOffset = 0;
471
+ }
472
+ /** 轮播滑动的相邻图索引;单图没有相邻图,多图 loop 环绕,非 loop 越界返回 -1。 */
473
+ _adjacentIndex(dir) {
474
+ const count = this.images.length;
475
+ if (count <= 1) return -1;
476
+ if (this.loop) return ((this._index + dir) % count + count) % count;
477
+ const target = this._index + dir;
478
+ return target >= 0 && target < count ? target : -1;
479
+ }
480
+ /** 取消未完成的滑入/回位过渡(新手势、pointercancel、关闭等接管时)。 */
275
481
  _cancelSwipeSettle() {
276
- this._swipeSettleTimer !== void 0 && (clearTimeout(this._swipeSettleTimer), this._swipeSettleTimer = void 0), this._swipeSettling = !1, this._swipeSettleCommit = !1, this._swipeSettleDir = 1;
482
+ if (this._swipeSettleTimer !== void 0) {
483
+ clearTimeout(this._swipeSettleTimer);
484
+ this._swipeSettleTimer = void 0;
485
+ }
486
+ this._swipeSettling = false;
487
+ this._swipeSettleCommit = false;
488
+ this._swipeSettleDir = 1;
277
489
  }
490
+ /** 滑入/回位过渡结束:按目标提交索引切换,或复位到单图静止态。 */
278
491
  _finishSwipeSettle() {
279
492
  if (this._swipeSettleTimer === void 0) return;
280
- clearTimeout(this._swipeSettleTimer), this._swipeSettleTimer = void 0;
281
- let e = this._swipeSettleCommit, t = this._swipeSettleDir;
282
- this._swipeSettling = !1, this._swipeSettleCommit = !1, this._swipeDir = 0, this._swipeOffset = 0, e && this._commitSwipeTo(t);
283
- }
284
- _commitSwipeTo(e) {
285
- let t = this._adjacentIndex(e);
286
- t < 0 || t === this._index || (this._index = t, this.resetZoom());
287
- }
288
- _settleSwipe(e, t, n) {
289
- let r = this._swipeDir, i = this._stage?.clientWidth ?? 0;
290
- if (r === 0 || i <= 0) {
493
+ clearTimeout(this._swipeSettleTimer);
494
+ this._swipeSettleTimer = void 0;
495
+ const commit = this._swipeSettleCommit;
496
+ const dir = this._swipeSettleDir;
497
+ this._swipeSettling = false;
498
+ this._swipeSettleCommit = false;
499
+ this._swipeDir = 0;
500
+ this._swipeOffset = 0;
501
+ if (commit) this._commitSwipeTo(dir);
502
+ }
503
+ /** 把当前索引切换到相邻图;相邻图在滑动期间已在 DOM 中呈现,提交后直接以已加载态展示,避免重复淡入闪烁。 */
504
+ _commitSwipeTo(dir) {
505
+ const target = this._adjacentIndex(dir);
506
+ if (target < 0 || target === this._index) return;
507
+ this._index = target;
508
+ this.resetZoom();
509
+ }
510
+ /** 释放后的滑入/回位:把 _swipeOffset 从跟手位移过渡到目标位(越界滑入相邻图,否则回 0)。 */
511
+ _settleSwipe(deltaX, velocityX, endTime) {
512
+ const dir = this._swipeDir;
513
+ const stageW = this._stage?.clientWidth ?? 0;
514
+ if (dir === 0 || stageW <= 0) {
291
515
  this._swipeOffset = 0;
292
516
  return;
293
517
  }
294
- let a = Math.max(1, Math.round(i * N)), o = n - this._swipeStartTime, s = o >= 2 ? e / o * 1e3 : 0, c = (Math.abs(e) >= a || Math.abs(t) >= P || Math.abs(e) >= F && Math.max(Math.abs(t), Math.abs(s)) >= I) && this._adjacentIndex(r) !== -1;
295
- this._swipeSettling = !0, this._swipeSettleCommit = c, this._swipeSettleDir = r, this._swipeOffset = c ? -r * i : 0, this._swipeSettleTimer = setTimeout(() => this._finishSwipeSettle(), L);
296
- }
297
- _panTo(e, t) {
298
- let n = this._offsetBounds();
299
- this._offsetX = g(this._panOriginX + e, -n.x, n.x), this._offsetY = g(this._panOriginY + t, -n.y, n.y);
518
+ const distanceThreshold = Math.max(1, Math.round(stageW * SWIPE_DISTANCE_RATIO));
519
+ const spanMs = endTime - this._swipeStartTime;
520
+ const fullSpanVelocity = spanMs >= 2 ? deltaX / spanMs * 1e3 : 0;
521
+ const commit = (Math.abs(deltaX) >= distanceThreshold || Math.abs(velocityX) >= SWIPE_VELOCITY || Math.abs(deltaX) >= SWIPE_FLICK_DISTANCE && Math.max(Math.abs(velocityX), Math.abs(fullSpanVelocity)) >= SWIPE_FLICK_VELOCITY) && this._adjacentIndex(dir) !== -1;
522
+ this._swipeSettling = true;
523
+ this._swipeSettleCommit = commit;
524
+ this._swipeSettleDir = dir;
525
+ this._swipeOffset = commit ? -dir * stageW : 0;
526
+ this._swipeSettleTimer = setTimeout(() => this._finishSwipeSettle(), SWIPE_SETTLE_MS);
527
+ }
528
+ _panTo(deltaX, deltaY) {
529
+ const bounds = this._offsetBounds();
530
+ this._offsetX = clamp(this._panOriginX + deltaX, -bounds.x, bounds.x);
531
+ this._offsetY = clamp(this._panOriginY + deltaY, -bounds.y, bounds.y);
300
532
  }
301
533
  render() {
302
- let e = this.images.length, t = this._scale > O, c = e > 0 ? this._adjacentIndex(-1) : -1, l = e > 0 ? this._adjacentIndex(1) : -1, u = `translate3d(${this._swipeOffset}px, 0, 0)`, d = `translate3d(${this._offsetX}px, ${this._offsetY}px, 0) scale(${this._scale})`, f = t ? "translate3d(0, 0, 0) scale(1)" : `translate3d(0, ${this._offsetY}px, 0) scale(1)`;
303
- return b`
534
+ const count = this.images.length;
535
+ const zoomed = this._scale > MIN_SCALE;
536
+ const prevIndex = count > 0 ? this._adjacentIndex(-1) : -1;
537
+ const nextIndex = count > 0 ? this._adjacentIndex(1) : -1;
538
+ const trackTransform = `translate3d(${this._swipeOffset}px, 0, 0)`;
539
+ const imageTransform = `translate3d(${this._offsetX}px, ${this._offsetY}px, 0) scale(${this._scale})`;
540
+ const neighborTransform = zoomed ? "translate3d(0, 0, 0) scale(1)" : `translate3d(0, ${this._offsetY}px, 0) scale(1)`;
541
+ return html`
304
542
  <dialog
305
543
  aria-label="Image preview"
306
544
  @cancel=${this._handleCancel}
@@ -316,201 +554,234 @@ var O = 1, k = 4, A = .5, j = .002, M = 3, N = .15, P = 320, F = 16, I = 160, L
316
554
  <div class="wui-image-preview-content">
317
555
  <div class="wui-image-preview-surface">
318
556
  <div
319
- class=${E({
320
- "wui-image-preview-stage": !0,
321
- "is-zoomed": t,
557
+ class=${classMap({
558
+ "wui-image-preview-stage": true,
559
+ "is-zoomed": zoomed,
322
560
  "is-dragging": this._dragging,
323
561
  "is-settling": this._swipeSettling
324
562
  })}
325
563
  >
326
564
  <div
327
565
  class="wui-image-preview-track"
328
- style=${D({ transform: u })}
566
+ style=${styleMap({ transform: trackTransform })}
329
567
  @transitionend=${this._handleSwipeSettleEnd}
330
568
  >
331
- ${c >= 0 ? b`
569
+ ${prevIndex >= 0 ? html`
332
570
  <div class="wui-image-preview-slide is-prev" aria-hidden="true">
333
571
  <img
334
- class=${E({
335
- "wui-image-preview-image": !0,
336
- "is-loaded": this._loadedSources.has(this.images[c].src)
572
+ class=${classMap({
573
+ "wui-image-preview-image": true,
574
+ "is-loaded": this._loadedSources.has(this.images[prevIndex].src)
337
575
  })}
338
- data-index=${c}
339
- src=${this.images[c].src}
340
- alt=${this.images[c].alt ?? ""}
576
+ data-index=${prevIndex}
577
+ src=${this.images[prevIndex].src}
578
+ alt=${this.images[prevIndex].alt ?? ""}
341
579
  draggable="false"
342
- style=${D({ transform: f })}
580
+ style=${styleMap({ transform: neighborTransform })}
343
581
  @load=${this._handleImageSettled}
344
582
  @error=${this._handleImageSettled}
345
583
  />
346
584
  </div>
347
- ` : x}
348
- ${e > 0 ? b`
585
+ ` : nothing}
586
+ ${count > 0 ? html`
349
587
  <div class="wui-image-preview-slide is-current">
350
588
  <img
351
- class=${E({
352
- "wui-image-preview-image": !0,
589
+ class=${classMap({
590
+ "wui-image-preview-image": true,
353
591
  "is-loaded": this._loadedSources.has(this.images[this._index].src)
354
592
  })}
355
593
  data-index=${this._index}
356
594
  src=${this.images[this._index].src}
357
595
  alt=${this.images[this._index].alt ?? ""}
358
596
  draggable="false"
359
- style=${D({ transform: d })}
597
+ style=${styleMap({ transform: imageTransform })}
360
598
  @load=${this._handleImageSettled}
361
599
  @error=${this._handleImageSettled}
362
600
  />
363
601
  </div>
364
- ` : x}
365
- ${l >= 0 ? b`
602
+ ` : nothing}
603
+ ${nextIndex >= 0 ? html`
366
604
  <div class="wui-image-preview-slide is-next" aria-hidden="true">
367
605
  <img
368
- class=${E({
369
- "wui-image-preview-image": !0,
370
- "is-loaded": this._loadedSources.has(this.images[l].src)
606
+ class=${classMap({
607
+ "wui-image-preview-image": true,
608
+ "is-loaded": this._loadedSources.has(this.images[nextIndex].src)
371
609
  })}
372
- data-index=${l}
373
- src=${this.images[l].src}
374
- alt=${this.images[l].alt ?? ""}
610
+ data-index=${nextIndex}
611
+ src=${this.images[nextIndex].src}
612
+ alt=${this.images[nextIndex].alt ?? ""}
375
613
  draggable="false"
376
- style=${D({ transform: f })}
614
+ style=${styleMap({ transform: neighborTransform })}
377
615
  @load=${this._handleImageSettled}
378
616
  @error=${this._handleImageSettled}
379
617
  />
380
618
  </div>
381
- ` : x}
619
+ ` : nothing}
382
620
  </div>
383
621
  </div>
384
622
  </div>
385
623
  <div class="wui-image-preview-controls">
386
- ${this.indicator ? b`<span class="wui-image-preview-counter wui-glass" aria-live="polite"
387
- >${this._index + 1} / ${e}</span
388
- >` : x}
389
- ${this.closable ? b`
624
+ ${this.indicator ? html`<span class="wui-image-preview-counter wui-glass" aria-live="polite"
625
+ >${this._index + 1} / ${count}</span
626
+ >` : nothing}
627
+ ${this.closable ? html`
390
628
  <web-ui-button
391
629
  class="wui-image-preview-close"
392
630
  variant="glass"
393
631
  icon
394
632
  size="36"
395
- aria-label="Close"
633
+ aria-label=${resolveBuiltinLabelSet(this.ariaLabels, "close")}
396
634
  @click=${this.close}
397
635
  >
398
- <web-ui-icon size="16" .icon=${o}></web-ui-icon>
636
+ <web-ui-icon size="16" .icon=${ooui_close_default}></web-ui-icon>
399
637
  </web-ui-button>
400
- ` : x}
401
- ${this.nav && e > 1 ? b`
638
+ ` : nothing}
639
+ ${this.nav && count > 1 ? html`
402
640
  <web-ui-button
403
641
  class="wui-image-preview-nav wui-image-preview-nav-prev"
404
642
  variant="glass"
405
643
  icon
406
644
  size="44"
407
- aria-label="Previous image"
645
+ aria-label=${resolveBuiltinLabelSet(this.ariaLabels, "previousImage")}
408
646
  ?disabled=${!this.loop && this._index === 0}
409
647
  @click=${this.prev}
410
648
  >
411
- <web-ui-icon size="20" .icon=${n}></web-ui-icon>
649
+ <web-ui-icon size="20" .icon=${lucide_chevron_left_default}></web-ui-icon>
412
650
  </web-ui-button>
413
651
  <web-ui-button
414
652
  class="wui-image-preview-nav wui-image-preview-nav-next"
415
653
  variant="glass"
416
654
  icon
417
655
  size="44"
418
- aria-label="Next image"
419
- ?disabled=${!this.loop && this._index === e - 1}
656
+ aria-label=${resolveBuiltinLabelSet(this.ariaLabels, "nextImage")}
657
+ ?disabled=${!this.loop && this._index === count - 1}
420
658
  @click=${this.next}
421
659
  >
422
- <web-ui-icon size="20" .icon=${r}></web-ui-icon>
660
+ <web-ui-icon size="20" .icon=${lucide_chevron_right_default}></web-ui-icon>
423
661
  </web-ui-button>
424
- ` : x}
425
- ${this.toolbar ? b`
662
+ ` : nothing}
663
+ ${this.toolbar ? html`
426
664
  <div class="wui-image-preview-toolbar wui-glass">
427
665
  <web-ui-button
428
666
  variant="glass"
429
667
  icon
430
668
  size="30"
431
- aria-label="Zoom out"
432
- ?disabled=${this._scale <= O}
669
+ aria-label=${resolveBuiltinLabelSet(this.ariaLabels, "zoomOut")}
670
+ ?disabled=${this._scale <= MIN_SCALE}
433
671
  @click=${this.zoomOut}
434
672
  >
435
- <web-ui-icon size="16" .icon=${a}></web-ui-icon>
673
+ <web-ui-icon size="16" .icon=${lucide_minus_default}></web-ui-icon>
436
674
  </web-ui-button>
437
675
  <span class="wui-image-preview-scale">${Math.round(this._scale * 100)}%</span>
438
676
  <web-ui-button
439
677
  variant="glass"
440
678
  icon
441
679
  size="30"
442
- aria-label="Zoom in"
443
- ?disabled=${this._scale >= k}
680
+ aria-label=${resolveBuiltinLabelSet(this.ariaLabels, "zoomIn")}
681
+ ?disabled=${this._scale >= MAX_SCALE}
444
682
  @click=${this.zoomIn}
445
683
  >
446
- <web-ui-icon size="16" .icon=${i}></web-ui-icon>
684
+ <web-ui-icon size="16" .icon=${lucide_plus_default}></web-ui-icon>
447
685
  </web-ui-button>
448
686
  <web-ui-button
449
687
  variant="glass"
450
688
  icon
451
689
  size="30"
452
- aria-label="Reset zoom"
453
- ?disabled=${this._scale <= O && !this._isPanned}
690
+ aria-label=${resolveBuiltinLabelSet(this.ariaLabels, "resetZoom")}
691
+ ?disabled=${this._scale <= MIN_SCALE && !this._isPanned}
454
692
  @click=${this.resetZoom}
455
693
  >
456
- <web-ui-icon size="16" .icon=${s}></web-ui-icon>
694
+ <web-ui-icon size="16" .icon=${radix_icons_reset_default}></web-ui-icon>
457
695
  </web-ui-button>
458
696
  </div>
459
- ` : x}
697
+ ` : nothing}
460
698
  </div>
461
699
  </div>
462
700
  </dialog>
463
701
  `;
464
702
  }
465
703
  };
466
- e([w({ attribute: !1 })], R.prototype, "images", void 0), e([w({ attribute: !1 })], R.prototype, "loop", void 0), e([w({ attribute: !1 })], R.prototype, "nav", void 0), e([w({ attribute: !1 })], R.prototype, "toolbar", void 0), e([w({ attribute: !1 })], R.prototype, "closable", void 0), e([w({ attribute: !1 })], R.prototype, "indicator", void 0), e([w({ attribute: !1 })], R.prototype, "swipe", void 0), e([w({ attribute: !1 })], R.prototype, "noScrollLock", void 0), e([w({ attribute: !1 })], R.prototype, "noBackdropClose", void 0), e([T()], R.prototype, "_open", void 0), e([T()], R.prototype, "_index", void 0), e([T()], R.prototype, "_scale", void 0), e([T()], R.prototype, "_offsetX", void 0), e([T()], R.prototype, "_offsetY", void 0), e([T()], R.prototype, "_swipeOffset", void 0), e([T()], R.prototype, "_swipeSettling", void 0), e([T()], R.prototype, "_dragging", void 0), R = e([C("web-ui-image-preview")], R);
467
- function z(e) {
468
- let t = (e.images ?? []).map((e) => ({
469
- src: e.src,
470
- alt: e.alt ?? ""
704
+ __decorate([property({ attribute: false })], WebUiImagePreview.prototype, "images", void 0);
705
+ __decorate([property({ attribute: false })], WebUiImagePreview.prototype, "loop", void 0);
706
+ __decorate([property({ attribute: false })], WebUiImagePreview.prototype, "nav", void 0);
707
+ __decorate([property({ attribute: false })], WebUiImagePreview.prototype, "toolbar", void 0);
708
+ __decorate([property({ attribute: false })], WebUiImagePreview.prototype, "closable", void 0);
709
+ __decorate([property({ attribute: false })], WebUiImagePreview.prototype, "indicator", void 0);
710
+ __decorate([property({ attribute: false })], WebUiImagePreview.prototype, "swipe", void 0);
711
+ __decorate([property({ attribute: false })], WebUiImagePreview.prototype, "noScrollLock", void 0);
712
+ __decorate([property({ attribute: false })], WebUiImagePreview.prototype, "noBackdropClose", void 0);
713
+ __decorate([property({ attribute: false })], WebUiImagePreview.prototype, "ariaLabels", void 0);
714
+ __decorate([state()], WebUiImagePreview.prototype, "_open", void 0);
715
+ __decorate([state()], WebUiImagePreview.prototype, "_index", void 0);
716
+ __decorate([state()], WebUiImagePreview.prototype, "_scale", void 0);
717
+ __decorate([state()], WebUiImagePreview.prototype, "_offsetX", void 0);
718
+ __decorate([state()], WebUiImagePreview.prototype, "_offsetY", void 0);
719
+ __decorate([state()], WebUiImagePreview.prototype, "_swipeOffset", void 0);
720
+ __decorate([state()], WebUiImagePreview.prototype, "_swipeSettling", void 0);
721
+ __decorate([state()], WebUiImagePreview.prototype, "_dragging", void 0);
722
+ WebUiImagePreview = __decorate([customElement("web-ui-image-preview")], WebUiImagePreview);
723
+ /**
724
+ * 打开一个命令式 image preview。
725
+ *
726
+ * 组件挂载到目标 `web-ui-theme` 的 overlay 容器(无主题作用域时回退到全局
727
+ * fallback root),返回的 handle 是唯一的控制入口。所有展示类 option 默认关闭,
728
+ * 默认只渲染图片本身。
729
+ */
730
+ function imagePreview(options) {
731
+ const images = (options.images ?? []).map((item) => ({
732
+ src: item.src,
733
+ alt: item.alt ?? ""
471
734
  }));
472
- if (t.length === 0) throw Error("[web-ui-image-preview] imagePreview requires at least one image");
473
- let n = e.target ? u(e.target) : d(), r = e.container ?? n?.getOverlayRoot() ?? l(), i = document.createElement("web-ui-image-preview");
474
- i.configure({
475
- images: t,
476
- index: e.index ?? 0,
477
- loop: e.loop ?? !0,
478
- nav: e.nav ?? !1,
479
- toolbar: e.toolbar ?? !1,
480
- closable: e.closable ?? !1,
481
- indicator: e.indicator ?? !1,
482
- swipe: e.swipe ?? !1,
483
- noScrollLock: e.noScrollLock ?? !1,
484
- noBackdropClose: e.noBackdropClose ?? !1
735
+ if (images.length === 0) throw new Error("[web-ui-image-preview] imagePreview requires at least one image");
736
+ const theme = options.target ? findNearestTheme(options.target) : findRootTheme();
737
+ const container = options.container ?? theme?.getOverlayRoot() ?? getFallbackOverlayRoot();
738
+ const element = document.createElement("web-ui-image-preview");
739
+ element.configure({
740
+ images,
741
+ index: options.index ?? 0,
742
+ loop: options.loop ?? true,
743
+ nav: options.nav ?? false,
744
+ toolbar: options.toolbar ?? false,
745
+ closable: options.closable ?? false,
746
+ indicator: options.indicator ?? false,
747
+ swipe: options.swipe ?? false,
748
+ noScrollLock: options.noScrollLock ?? false,
749
+ noBackdropClose: options.noBackdropClose ?? false,
750
+ ariaLabels: options.ariaLabels
485
751
  });
486
- let a, o = new Promise((e) => {
487
- a = e;
752
+ let settle;
753
+ const closed = new Promise((resolve) => {
754
+ settle = resolve;
488
755
  });
489
- return i.addEventListener("preview-dismissed", () => {
490
- i.remove(), a?.(), a = void 0;
491
- }, { once: !0 }), r.appendChild(i), i.show(), {
756
+ element.addEventListener("preview-dismissed", () => {
757
+ element.remove();
758
+ settle?.();
759
+ settle = void 0;
760
+ }, { once: true });
761
+ container.appendChild(element);
762
+ element.show();
763
+ return {
492
764
  get index() {
493
- return i.index;
765
+ return element.index;
494
766
  },
495
767
  get scale() {
496
- return i.scale;
768
+ return element.scale;
497
769
  },
498
770
  get images() {
499
- return i.images;
771
+ return element.images;
500
772
  },
501
773
  get closed() {
502
- return o;
774
+ return closed;
503
775
  },
504
- next: () => i.next(),
505
- prev: () => i.prev(),
506
- goTo: (e) => i.goTo(e),
507
- zoomIn: () => i.zoomIn(),
508
- zoomOut: () => i.zoomOut(),
509
- resetZoom: () => i.resetZoom(),
510
- close: () => i.close()
776
+ next: () => element.next(),
777
+ prev: () => element.prev(),
778
+ goTo: (index) => element.goTo(index),
779
+ zoomIn: () => element.zoomIn(),
780
+ zoomOut: () => element.zoomOut(),
781
+ resetZoom: () => element.resetZoom(),
782
+ close: () => element.close()
511
783
  };
512
784
  }
513
- //#endregion
514
- export { z as imagePreview };
785
+ export { imagePreview };
515
786
 
516
787
  //# sourceMappingURL=index.js.map