@greypan/web-ui 11.1.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 -391
  45. package/dist/components/button/index.d.ts.map +1 -0
  46. package/dist/components/button/index.js +109 -79
  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 +82 -75
  69. package/dist/components/collapse/index.d.ts.map +1 -0
  70. package/dist/components/collapse/index.js +228 -135
  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 +26 -36
  125. package/dist/components/empty/index.d.ts.map +1 -0
  126. package/dist/components/empty/index.js +73 -60
  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 +7 -0
  280. package/dist/icons/generated/andrsrxn-inbox.d.ts.map +1 -0
  281. package/dist/icons/generated/andrsrxn-inbox.js +9 -0
  282. package/dist/icons/generated/andrsrxn-inbox.js.map +1 -0
  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 -73
  568. package/dist/icons/index.js +75 -74
  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 +11 -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,45 +1,75 @@
1
- //#region src/components/middle-ellipsis/truncate.ts
2
- var e;
3
- function t(t) {
4
- if (t === "") return [];
5
- e ??= new Intl.Segmenter(void 0, { granularity: "grapheme" });
6
- let n = [];
7
- for (let { index: r, segment: i } of e.segment(t)) n.push(r + i.length);
8
- return n;
1
+ // src/components/middle-ellipsis/truncate.ts
2
+ let segmenter;
3
+ /**
4
+ * 每个字素簇的 UTF-16 结束偏移(升序,不含 0),末项恒等于 `text.length`。
5
+ *
6
+ * `Intl.Segmenter` 的构造不便宜,单例复用。目标浏览器(见 package.json 的 browserslist)
7
+ * 与本地 node 测试环境都自带它,因此不写按码点切的退化分支——那会在部分环境里悄悄改变
8
+ * 切分口径,而这正是本模块唯一的正确性来源。
9
+ */
10
+ function clusterEnds(text) {
11
+ if (text === "") return [];
12
+ segmenter ??= new Intl.Segmenter(void 0, { granularity: "grapheme" });
13
+ const ends = [];
14
+ for (const { index, segment } of segmenter.segment(text)) ends.push(index + segment.length);
15
+ return ends;
9
16
  }
10
- function n(e, t) {
11
- let n = 0, r = e;
12
- for (; n < r;) {
13
- let e = n + r + 1 >> 1;
14
- t(e) ? n = e : r = e - 1;
17
+ /** 宽度对簇数单调不减,因此可以二分求预算内放得下的最大簇数。 */
18
+ function fitCount(total, fits) {
19
+ let lo = 0;
20
+ let hi = total;
21
+ while (lo < hi) {
22
+ const mid = lo + hi + 1 >> 1;
23
+ if (fits(mid)) lo = mid;
24
+ else hi = mid - 1;
15
25
  }
16
- return n;
26
+ return lo;
17
27
  }
18
- function r(e, r, i, a, o) {
19
- if (e === "") return {
28
+ /**
29
+ * 在 `available` 内把 `text` 切成 `head + marker + tail`。
30
+ *
31
+ * `position` 与 CSSWG css-overflow-5 的 `text-overflow: ellipsis <length-percentage>` 同向:
32
+ * 量的是标记结束边距行末边的距离占可用行内空间的比例。`0` 把标记贴在行末(只剩头部,等价于
33
+ * 末尾省略),`100` 贴在行首(只剩尾部),`50` 居中;两端额度因此是 `(1 - p)` 与 `p`。
34
+ */
35
+ function truncateMiddle(text, marker, position, available, probe) {
36
+ if (text === "") return {
20
37
  head: "",
21
38
  tail: "",
22
- truncated: !1
39
+ truncated: false
23
40
  };
24
- if (o.prefix(e.length) <= a) return {
25
- head: e,
41
+ if (probe.prefix(text.length) <= available) return {
42
+ head: text,
26
43
  tail: "",
27
- truncated: !1
44
+ truncated: false
28
45
  };
29
- let s = t(e), c = s.length, l = a - o.marker();
30
- if (l <= 0) return {
46
+ const ends = clusterEnds(text);
47
+ const total = ends.length;
48
+ const space = available - probe.marker();
49
+ if (space <= 0) return {
31
50
  head: "",
32
51
  tail: "",
33
- truncated: !0
52
+ truncated: true
34
53
  };
35
- let u = Math.min(1, Math.max(0, i / 100)), d = l * (1 - u), f = l * u, p = (e) => e === 0 ? 0 : s[e - 1] ?? 0, m = (t) => t === 0 ? e.length : s[c - t - 1] ?? 0, h = n(c, (e) => o.prefix(p(e)) <= d), g = n(c, (t) => o.suffix(e.length - m(t)) <= f);
36
- return h + g > c && (h = Math.min(h, c), g = c - h), {
37
- head: e.slice(0, p(h)),
38
- tail: e.slice(m(g)),
39
- truncated: !0
54
+ const ratio = Math.min(1, Math.max(0, position / 100));
55
+ const headBudget = space * (1 - ratio);
56
+ const tailBudget = space * ratio;
57
+ /** 前 `count` 个簇在原串里的结束偏移。 */
58
+ const headEnd = (count) => count === 0 ? 0 : ends[count - 1] ?? 0;
59
+ /** 后 `count` 个簇在原串里的起始偏移。 */
60
+ const tailStart = (count) => count === 0 ? text.length : ends[total - count - 1] ?? 0;
61
+ let headCount = fitCount(total, (count) => probe.prefix(headEnd(count)) <= headBudget);
62
+ let tailCount = fitCount(total, (count) => probe.suffix(text.length - tailStart(count)) <= tailBudget);
63
+ if (headCount + tailCount > total) {
64
+ headCount = Math.min(headCount, total);
65
+ tailCount = total - headCount;
66
+ }
67
+ return {
68
+ head: text.slice(0, headEnd(headCount)),
69
+ tail: text.slice(tailStart(tailCount)),
70
+ truncated: true
40
71
  };
41
72
  }
42
- //#endregion
43
- export { t as clusterEnds, r as truncateMiddle };
73
+ export { clusterEnds, truncateMiddle };
44
74
 
45
75
  //# sourceMappingURL=truncate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"truncate.js","names":[],"sources":["../../../src/components/middle-ellipsis/truncate.ts"],"sourcesContent":["/**\n * 单行「中间省略」的切分运算。\n *\n * 目标:把 `text` 拆成 `head + marker + tail`,两端各自在原串里连续、中间那段被丢掉,\n * 且合串不超过可用行内空间。切点只落在**字素簇**边界上,代理对、组合符序列和 ZWJ emoji\n * 都不会被从中间劈开——按 UTF-16 下标切一定会。\n *\n * 为什么这一层不能由 CSS 承担:`text-overflow` 渲染的是行盒里**一段连续**的内容,结构上\n * 不可能同时显示首尾而丢掉中间。能靠 `direction` / 双值写法挪动的只是省略号落在行的哪一\n * 端,而且 `direction: rtl` 那条路还会按双向算法重排内容(`2026-report.pdf` → `report.pdf-2026`)。\n * 完整调研见 docs/research/web-ui-middle-ellipsis-261007.md。\n *\n * 宽度口径:两端额度按 `position` 从可用空间里分出来,各自用「前 i 簇 / 后 i 簇」的**实测**\n * 宽度二分逼近。实测走调用方给的探针(Range 读取,不写 DOM),所以重算一次只有若干次读取,\n * 没有回流——panel 里同时存在成百上千个这样的单元格时,这个差别就是「一帧一次布局」与\n * 「一个单元格一次布局」的差别。\n *\n * 分段宽度不蕴含合串宽度:`head|marker` 与 `marker|tail` 两个接缝的字距和连字是分段量看不见\n * 的。这里不做合串实测,因为那要写一次 DOM 再读、把上面省下的回流又付回去;复核交给调用方\n * 对着**渲染出来的真实盒子**做一次(见组件的 `updated()`),那才是「放得下」的直接证据。\n */\n\n/** 默认省略标记:U+2026 HORIZONTAL ELLIPSIS。 */\nexport const DEFAULT_MARKER = '…'\n\nlet segmenter: Intl.Segmenter | undefined\n\n/**\n * 每个字素簇的 UTF-16 结束偏移(升序,不含 0),末项恒等于 `text.length`。\n *\n * `Intl.Segmenter` 的构造不便宜,单例复用。目标浏览器(见 package.json 的 browserslist)\n * 与本地 node 测试环境都自带它,因此不写按码点切的退化分支——那会在部分环境里悄悄改变\n * 切分口径,而这正是本模块唯一的正确性来源。\n */\nexport function clusterEnds(text: string): number[] {\n if (text === '') return []\n\n segmenter ??= new Intl.Segmenter(undefined, { granularity: 'grapheme' })\n\n const ends: number[] = []\n for (const { index, segment } of segmenter.segment(text)) ends.push(index + segment.length)\n return ends\n}\n\n/**\n * 宽度探针。\n *\n * 三段都必须是**真实排版**下量到的宽度:字体回退、字距、连字、`letter-spacing`、\n * `text-transform` 都会改变字形的推进量,任何独立的估算(例如用 canvas 的 `measureText`)\n * 都要自己复刻这一整套解析,复刻不全就是静默的量错。\n */\nexport interface WidthProbe {\n /** 原文前 `units` 个 UTF-16 单元的渲染宽度。 */\n prefix(units: number): number\n /** 原文后 `units` 个 UTF-16 单元的渲染宽度。 */\n suffix(units: number): number\n /** 标记自身的渲染宽度。 */\n marker(): number\n}\n\nexport interface MiddleTruncation {\n /** 保留的原文前缀。 */\n readonly head: string\n /** 保留的原文后缀。 */\n readonly tail: string\n /** 是否真的丢掉了内容;`false` 时合串就是原文,标记不出现。 */\n readonly truncated: boolean\n}\n\n/** 宽度对簇数单调不减,因此可以二分求预算内放得下的最大簇数。 */\nfunction fitCount(total: number, fits: (count: number) => boolean): number {\n let lo = 0\n let hi = total\n while (lo < hi) {\n const mid = (lo + hi + 1) >> 1\n if (fits(mid)) lo = mid\n else hi = mid - 1\n }\n return lo\n}\n\n/**\n * 在 `available` 内把 `text` 切成 `head + marker + tail`。\n *\n * `position` 与 CSSWG css-overflow-5 的 `text-overflow: ellipsis <length-percentage>` 同向:\n * 量的是标记结束边距行末边的距离占可用行内空间的比例。`0` 把标记贴在行末(只剩头部,等价于\n * 末尾省略),`100` 贴在行首(只剩尾部),`50` 居中;两端额度因此是 `(1 - p)` 与 `p`。\n */\nexport function truncateMiddle(\n text: string,\n marker: string,\n position: number,\n available: number,\n probe: WidthProbe\n): MiddleTruncation {\n if (text === '') return { head: '', tail: '', truncated: false }\n\n // 放得下就不截断,一个字符都不动——这既是正确性也是「短文本不该出现省略号」的体检点。\n if (probe.prefix(text.length) <= available) return { head: text, tail: '', truncated: false }\n\n const ends = clusterEnds(text)\n const total = ends.length\n\n /*\n * 标记自己都放不下的快速路径:让标记溢出、由 overflow 把它裁掉(与 text-overflow 的既有语义\n * 一致),而不是退回全文——退回全文会把标记挤出盒外,用户连「这里被截断了」的信号都看不到。\n *\n * 这一条不是正确性分支:预算为负时下面的通用路径同样得到 head / tail 都为空(`prefix(0) = 0`\n * 不满足 `<= 负数`,两次二分都返回 0)。变异验证过——把它改成 `available <= 0`,整套测试仍全绿。\n * 留着只是省掉两次二分,并把「标记放不下」这个意图写在明面上。\n */\n const space = available - probe.marker()\n if (space <= 0) return { head: '', tail: '', truncated: true }\n\n const ratio = Math.min(1, Math.max(0, position / 100))\n const headBudget = space * (1 - ratio)\n const tailBudget = space * ratio\n\n /** 前 `count` 个簇在原串里的结束偏移。 */\n const headEnd = (count: number): number => (count === 0 ? 0 : (ends[count - 1] ?? 0))\n /** 后 `count` 个簇在原串里的起始偏移。 */\n const tailStart = (count: number): number => (count === 0 ? text.length : (ends[total - count - 1] ?? 0))\n\n let headCount = fitCount(total, count => probe.prefix(headEnd(count)) <= headBudget)\n let tailCount = fitCount(total, count => probe.suffix(text.length - tailStart(count)) <= tailBudget)\n\n /*\n * 两端选中的簇加起来超过原文长度时,说明合串其实放得下,与上面的早退矛盾——那一步已经\n * 用同一个探针量过全文。浮点误差仍可能把两个预算都推过界一点点,这里按头部优先夹紧,\n * 保证 head 与 tail 不重叠。\n */\n if (headCount + tailCount > total) {\n headCount = Math.min(headCount, total)\n tailCount = total - headCount\n }\n\n return {\n head: text.slice(0, headEnd(headCount)),\n tail: text.slice(tailStart(tailCount)),\n truncated: true\n }\n}\n"],"mappings":";AAyBA,IAAI;AASJ,SAAgB,EAAY,GAAwB;CAClD,IAAI,MAAS,IAAI,OAAO,CAAC;CAEzB,MAAc,IAAI,KAAK,UAAU,KAAA,GAAW,EAAE,aAAa,WAAW,CAAC;CAEvE,IAAM,IAAiB,CAAC;CACxB,KAAK,IAAM,EAAE,UAAO,gBAAa,EAAU,QAAQ,CAAI,GAAG,EAAK,KAAK,IAAQ,EAAQ,MAAM;CAC1F,OAAO;AACT;AA4BA,SAAS,EAAS,GAAe,GAA0C;CACzE,IAAI,IAAK,GACL,IAAK;CACT,OAAO,IAAK,IAAI;EACd,IAAM,IAAO,IAAK,IAAK,KAAM;EAC7B,AAAI,EAAK,CAAG,IAAG,IAAK,IACf,IAAK,IAAM;CAClB;CACA,OAAO;AACT;AASA,SAAgB,EACd,GACA,GACA,GACA,GACA,GACkB;CAClB,IAAI,MAAS,IAAI,OAAO;EAAE,MAAM;EAAI,MAAM;EAAI,WAAW;CAAM;CAG/D,IAAI,EAAM,OAAO,EAAK,MAAM,KAAK,GAAW,OAAO;EAAE,MAAM;EAAM,MAAM;EAAI,WAAW;CAAM;CAE5F,IAAM,IAAO,EAAY,CAAI,GACvB,IAAQ,EAAK,QAUb,IAAQ,IAAY,EAAM,OAAO;CACvC,IAAI,KAAS,GAAG,OAAO;EAAE,MAAM;EAAI,MAAM;EAAI,WAAW;CAAK;CAE7D,IAAM,IAAQ,KAAK,IAAI,GAAG,KAAK,IAAI,GAAG,IAAW,GAAG,CAAC,GAC/C,IAAa,KAAS,IAAI,IAC1B,IAAa,IAAQ,GAGrB,KAAW,MAA2B,MAAU,IAAI,IAAK,EAAK,IAAQ,MAAM,GAE5E,KAAa,MAA2B,MAAU,IAAI,EAAK,SAAU,EAAK,IAAQ,IAAQ,MAAM,GAElG,IAAY,EAAS,IAAO,MAAS,EAAM,OAAO,EAAQ,CAAK,CAAC,KAAK,CAAU,GAC/E,IAAY,EAAS,IAAO,MAAS,EAAM,OAAO,EAAK,SAAS,EAAU,CAAK,CAAC,KAAK,CAAU;CAYnG,OALI,IAAY,IAAY,MAC1B,IAAY,KAAK,IAAI,GAAW,CAAK,GACrC,IAAY,IAAQ,IAGf;EACL,MAAM,EAAK,MAAM,GAAG,EAAQ,CAAS,CAAC;EACtC,MAAM,EAAK,MAAM,EAAU,CAAS,CAAC;EACrC,WAAW;CACb;AACF"}
1
+ {"version":3,"file":"truncate.js","names":[],"sources":["../../../src/components/middle-ellipsis/truncate.ts"],"sourcesContent":["/**\n * 单行「中间省略」的切分运算。\n *\n * 目标:把 `text` 拆成 `head + marker + tail`,两端各自在原串里连续、中间那段被丢掉,\n * 且合串不超过可用行内空间。切点只落在**字素簇**边界上,代理对、组合符序列和 ZWJ emoji\n * 都不会被从中间劈开——按 UTF-16 下标切一定会。\n *\n * 为什么这一层不能由 CSS 承担:`text-overflow` 渲染的是行盒里**一段连续**的内容,结构上\n * 不可能同时显示首尾而丢掉中间。能靠 `direction` / 双值写法挪动的只是省略号落在行的哪一\n * 端,而且 `direction: rtl` 那条路还会按双向算法重排内容(`2026-report.pdf` → `report.pdf-2026`)。\n * 完整调研见 docs/research/web-ui-middle-ellipsis-261007.md。\n *\n * 宽度口径:两端额度按 `position` 从可用空间里分出来,各自用「前 i 簇 / 后 i 簇」的**实测**\n * 宽度二分逼近。实测走调用方给的探针(Range 读取,不写 DOM),所以重算一次只有若干次读取,\n * 没有回流——panel 里同时存在成百上千个这样的单元格时,这个差别就是「一帧一次布局」与\n * 「一个单元格一次布局」的差别。\n *\n * 分段宽度不蕴含合串宽度:`head|marker` 与 `marker|tail` 两个接缝的字距和连字是分段量看不见\n * 的。这里不做合串实测,因为那要写一次 DOM 再读、把上面省下的回流又付回去;复核交给调用方\n * 对着**渲染出来的真实盒子**做一次(见组件的 `updated()`),那才是「放得下」的直接证据。\n */\n\n/** 默认省略标记:U+2026 HORIZONTAL ELLIPSIS。 */\nexport const DEFAULT_MARKER = '…'\n\nlet segmenter: Intl.Segmenter | undefined\n\n/**\n * 每个字素簇的 UTF-16 结束偏移(升序,不含 0),末项恒等于 `text.length`。\n *\n * `Intl.Segmenter` 的构造不便宜,单例复用。目标浏览器(见 package.json 的 browserslist)\n * 与本地 node 测试环境都自带它,因此不写按码点切的退化分支——那会在部分环境里悄悄改变\n * 切分口径,而这正是本模块唯一的正确性来源。\n */\nexport function clusterEnds(text: string): number[] {\n if (text === '') return []\n\n segmenter ??= new Intl.Segmenter(undefined, { granularity: 'grapheme' })\n\n const ends: number[] = []\n for (const { index, segment } of segmenter.segment(text)) ends.push(index + segment.length)\n return ends\n}\n\n/**\n * 宽度探针。\n *\n * 三段都必须是**真实排版**下量到的宽度:字体回退、字距、连字、`letter-spacing`、\n * `text-transform` 都会改变字形的推进量,任何独立的估算(例如用 canvas 的 `measureText`)\n * 都要自己复刻这一整套解析,复刻不全就是静默的量错。\n */\nexport interface WidthProbe {\n /** 原文前 `units` 个 UTF-16 单元的渲染宽度。 */\n prefix(units: number): number\n /** 原文后 `units` 个 UTF-16 单元的渲染宽度。 */\n suffix(units: number): number\n /** 标记自身的渲染宽度。 */\n marker(): number\n}\n\nexport interface MiddleTruncation {\n /** 保留的原文前缀。 */\n readonly head: string\n /** 保留的原文后缀。 */\n readonly tail: string\n /** 是否真的丢掉了内容;`false` 时合串就是原文,标记不出现。 */\n readonly truncated: boolean\n}\n\n/** 宽度对簇数单调不减,因此可以二分求预算内放得下的最大簇数。 */\nfunction fitCount(total: number, fits: (count: number) => boolean): number {\n let lo = 0\n let hi = total\n while (lo < hi) {\n const mid = (lo + hi + 1) >> 1\n if (fits(mid)) lo = mid\n else hi = mid - 1\n }\n return lo\n}\n\n/**\n * 在 `available` 内把 `text` 切成 `head + marker + tail`。\n *\n * `position` 与 CSSWG css-overflow-5 的 `text-overflow: ellipsis <length-percentage>` 同向:\n * 量的是标记结束边距行末边的距离占可用行内空间的比例。`0` 把标记贴在行末(只剩头部,等价于\n * 末尾省略),`100` 贴在行首(只剩尾部),`50` 居中;两端额度因此是 `(1 - p)` 与 `p`。\n */\nexport function truncateMiddle(\n text: string,\n marker: string,\n position: number,\n available: number,\n probe: WidthProbe\n): MiddleTruncation {\n if (text === '') return { head: '', tail: '', truncated: false }\n\n // 放得下就不截断,一个字符都不动——这既是正确性也是「短文本不该出现省略号」的体检点。\n if (probe.prefix(text.length) <= available) return { head: text, tail: '', truncated: false }\n\n const ends = clusterEnds(text)\n const total = ends.length\n\n /*\n * 标记自己都放不下的快速路径:让标记溢出、由 overflow 把它裁掉(与 text-overflow 的既有语义\n * 一致),而不是退回全文——退回全文会把标记挤出盒外,用户连「这里被截断了」的信号都看不到。\n *\n * 这一条不是正确性分支:预算为负时下面的通用路径同样得到 head / tail 都为空(`prefix(0) = 0`\n * 不满足 `<= 负数`,两次二分都返回 0)。变异验证过——把它改成 `available <= 0`,整套测试仍全绿。\n * 留着只是省掉两次二分,并把「标记放不下」这个意图写在明面上。\n */\n const space = available - probe.marker()\n if (space <= 0) return { head: '', tail: '', truncated: true }\n\n const ratio = Math.min(1, Math.max(0, position / 100))\n const headBudget = space * (1 - ratio)\n const tailBudget = space * ratio\n\n /** 前 `count` 个簇在原串里的结束偏移。 */\n const headEnd = (count: number): number => (count === 0 ? 0 : (ends[count - 1] ?? 0))\n /** 后 `count` 个簇在原串里的起始偏移。 */\n const tailStart = (count: number): number => (count === 0 ? text.length : (ends[total - count - 1] ?? 0))\n\n let headCount = fitCount(total, count => probe.prefix(headEnd(count)) <= headBudget)\n let tailCount = fitCount(total, count => probe.suffix(text.length - tailStart(count)) <= tailBudget)\n\n /*\n * 两端选中的簇加起来超过原文长度时,说明合串其实放得下,与上面的早退矛盾——那一步已经\n * 用同一个探针量过全文。浮点误差仍可能把两个预算都推过界一点点,这里按头部优先夹紧,\n * 保证 head 与 tail 不重叠。\n */\n if (headCount + tailCount > total) {\n headCount = Math.min(headCount, total)\n tailCount = total - headCount\n }\n\n return {\n head: text.slice(0, headEnd(headCount)),\n tail: text.slice(tailStart(tailCount)),\n truncated: true\n }\n}\n"],"mappings":";AAyBA,IAAI;;;;;;;;AASJ,SAAgB,YAAY,MAAwB;CAClD,IAAI,SAAS,IAAI,OAAO,CAAC;CAEzB,cAAc,IAAI,KAAK,UAAU,KAAA,GAAW,EAAE,aAAa,WAAW,CAAC;CAEvE,MAAM,OAAiB,CAAC;CACxB,KAAK,MAAM,EAAE,OAAO,aAAa,UAAU,QAAQ,IAAI,GAAG,KAAK,KAAK,QAAQ,QAAQ,MAAM;CAC1F,OAAO;AACT;;AA4BA,SAAS,SAAS,OAAe,MAA0C;CACzE,IAAI,KAAK;CACT,IAAI,KAAK;CACT,OAAO,KAAK,IAAI;EACd,MAAM,MAAO,KAAK,KAAK,KAAM;EAC7B,IAAI,KAAK,GAAG,GAAG,KAAK;OACf,KAAK,MAAM;CAClB;CACA,OAAO;AACT;;;;;;;;AASA,SAAgB,eACd,MACA,QACA,UACA,WACA,OACkB;CAClB,IAAI,SAAS,IAAI,OAAO;EAAE,MAAM;EAAI,MAAM;EAAI,WAAW;CAAM;CAG/D,IAAI,MAAM,OAAO,KAAK,MAAM,KAAK,WAAW,OAAO;EAAE,MAAM;EAAM,MAAM;EAAI,WAAW;CAAM;CAE5F,MAAM,OAAO,YAAY,IAAI;CAC7B,MAAM,QAAQ,KAAK;CAUnB,MAAM,QAAQ,YAAY,MAAM,OAAO;CACvC,IAAI,SAAS,GAAG,OAAO;EAAE,MAAM;EAAI,MAAM;EAAI,WAAW;CAAK;CAE7D,MAAM,QAAQ,KAAK,IAAI,GAAG,KAAK,IAAI,GAAG,WAAW,GAAG,CAAC;CACrD,MAAM,aAAa,SAAS,IAAI;CAChC,MAAM,aAAa,QAAQ;;CAG3B,MAAM,WAAW,UAA2B,UAAU,IAAI,IAAK,KAAK,QAAQ,MAAM;;CAElF,MAAM,aAAa,UAA2B,UAAU,IAAI,KAAK,SAAU,KAAK,QAAQ,QAAQ,MAAM;CAEtG,IAAI,YAAY,SAAS,QAAO,UAAS,MAAM,OAAO,QAAQ,KAAK,CAAC,KAAK,UAAU;CACnF,IAAI,YAAY,SAAS,QAAO,UAAS,MAAM,OAAO,KAAK,SAAS,UAAU,KAAK,CAAC,KAAK,UAAU;CAOnG,IAAI,YAAY,YAAY,OAAO;EACjC,YAAY,KAAK,IAAI,WAAW,KAAK;EACrC,YAAY,QAAQ;CACtB;CAEA,OAAO;EACL,MAAM,KAAK,MAAM,GAAG,QAAQ,SAAS,CAAC;EACtC,MAAM,KAAK,MAAM,UAAU,SAAS,CAAC;EACrC,WAAW;CACb;AACF"}
@@ -1,22 +1,24 @@
1
- import { LitElement, PropertyValues } from 'lit';
1
+ import "../icon/index.js";
2
+ import { LitElement, PropertyValues } from "lit";
2
3
  export declare class WebUiOption extends LitElement {
3
- static styles: import('lit').CSSResult;
4
- value: string;
5
- get label(): string;
6
- set label(value: string);
7
- private _label;
8
- private _slottedLabel;
9
- disabled: boolean;
10
- selected: boolean;
11
- connectedCallback(): void;
12
- disconnectedCallback(): void;
13
- updated(changed: PropertyValues): void;
14
- private _onLabelSlotChange;
15
- private _getSlottedLabel;
16
- render(): import('lit').TemplateResult<1>;
4
+ static styles: import("lit").CSSResult;
5
+ value: string;
6
+ get label(): string;
7
+ set label(value: string);
8
+ private _label;
9
+ private _slottedLabel;
10
+ disabled: boolean;
11
+ selected: boolean;
12
+ connectedCallback(): void;
13
+ disconnectedCallback(): void;
14
+ updated(changed: PropertyValues): void;
15
+ private _onLabelSlotChange;
16
+ private _getSlottedLabel;
17
+ render(): import("lit").TemplateResult<1>;
17
18
  }
18
19
  declare global {
19
- interface HTMLElementTagNameMap {
20
- 'web-ui-option': WebUiOption;
21
- }
20
+ interface HTMLElementTagNameMap {
21
+ 'web-ui-option': WebUiOption;
22
+ }
22
23
  }
24
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/components/option/index.ts"],"mappings":";;qBAUa,oBAAoB;SACf,sBAAM;EAEqB;MAEvC;MAGA,MAAM;UAKF;UACA;EAEoC;EACA;EAEnC;EAWA;EAWA,QAAQ,SAAS;UAWlB;UASA;EAQC,wBAAM;;QAYT;YACI;IACR,iBAAiB"}
@@ -1,33 +1,42 @@
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 "../../icons/generated/heroicons-check-16-solid.js";
4
- import n from "./style.js";
5
- import { LitElement as r, html as i, unsafeCSS as a } from "lit";
6
- import { customElement as o, property as s } from "lit/decorators.js";
7
- //#region src/components/option/index.ts
8
- var c = class extends r {
9
- constructor(...e) {
10
- super(...e), this.value = "", this._label = "", this._slottedLabel = "", this.disabled = !1, this.selected = !1, this._onLabelSlotChange = () => {
11
- let e = this._getSlottedLabel();
12
- if (e === this._slottedLabel) return;
13
- let t = this._label || this._slottedLabel;
14
- this._slottedLabel = e, this.requestUpdate("label", t);
3
+ import heroicons_check_16_solid_default from "../../icons/generated/heroicons-check-16-solid.js";
4
+ import style_default from "./style.js";
5
+ import { LitElement, html, unsafeCSS } from "lit";
6
+ import { customElement, property } from "lit/decorators.js";
7
+ // src/components/option/index.ts
8
+ let WebUiOption = class WebUiOption extends LitElement {
9
+ constructor(..._args) {
10
+ super(..._args);
11
+ this.value = "";
12
+ this._label = "";
13
+ this._slottedLabel = "";
14
+ this.disabled = false;
15
+ this.selected = false;
16
+ this._onLabelSlotChange = () => {
17
+ const label = this._getSlottedLabel();
18
+ if (label === this._slottedLabel) return;
19
+ const old = this._label || this._slottedLabel;
20
+ this._slottedLabel = label;
21
+ this.requestUpdate("label", old);
15
22
  };
16
23
  }
17
24
  static {
18
- this.styles = a(n);
25
+ this.styles = unsafeCSS(style_default);
19
26
  }
20
27
  get label() {
21
28
  return this._label || this._getSlottedLabel();
22
29
  }
23
- set label(e) {
24
- let t = this.label;
25
- this._label = e, this.requestUpdate("label", t);
30
+ set label(value) {
31
+ const old = this.label;
32
+ this._label = value;
33
+ this.requestUpdate("label", old);
26
34
  }
27
35
  connectedCallback() {
28
- super.connectedCallback(), this.dispatchEvent(new CustomEvent("option-register", {
29
- bubbles: !0,
30
- composed: !0,
36
+ super.connectedCallback();
37
+ this.dispatchEvent(new CustomEvent("option-register", {
38
+ bubbles: true,
39
+ composed: true,
31
40
  detail: {
32
41
  value: this.value,
33
42
  label: this.label,
@@ -36,43 +45,47 @@ var c = class extends r {
36
45
  }));
37
46
  }
38
47
  disconnectedCallback() {
39
- super.disconnectedCallback(), this.dispatchEvent(new CustomEvent("option-unregister", {
40
- bubbles: !0,
41
- composed: !0,
48
+ super.disconnectedCallback();
49
+ this.dispatchEvent(new CustomEvent("option-unregister", {
50
+ bubbles: true,
51
+ composed: true,
42
52
  detail: { value: this.value }
43
53
  }));
44
54
  }
45
- updated(e) {
46
- (e.has("value") || e.has("label") || e.has("disabled")) && this.dispatchEvent(new CustomEvent("option-update", {
47
- bubbles: !0,
48
- composed: !0
55
+ updated(changed) {
56
+ if (changed.has("value") || changed.has("label") || changed.has("disabled")) this.dispatchEvent(new CustomEvent("option-update", {
57
+ bubbles: true,
58
+ composed: true
49
59
  }));
50
60
  }
51
61
  _getSlottedLabel() {
52
- return [...this.childNodes].filter((e) => !(e instanceof HTMLElement && e.slot)).map((e) => e.textContent).join("").trim();
62
+ return [...this.childNodes].filter((node) => !(node instanceof HTMLElement && node.slot)).map((node) => node.textContent).join("").trim();
53
63
  }
54
64
  render() {
55
- return i`
65
+ return html`
56
66
  <div class="option-label">
57
- <web-ui-icon class="check" size="16" .icon=${t}></web-ui-icon>
67
+ <web-ui-icon class="check" size="16" .icon=${heroicons_check_16_solid_default}></web-ui-icon>
58
68
  <slot name="prefix"></slot>
59
- <span class="content-wrap">${this._label || i`<slot @slotchange=${this._onLabelSlotChange}></slot>`}</span>
69
+ <span class="content-wrap">${this._label || html`<slot @slotchange=${this._onLabelSlotChange}></slot>`}</span>
60
70
  <slot name="suffix"></slot>
61
71
  </div>
62
72
  `;
63
73
  }
64
74
  };
65
- e([s({
75
+ __decorate([property({
66
76
  type: String,
67
- reflect: !0
68
- })], c.prototype, "value", void 0), e([s({ type: String })], c.prototype, "label", null), e([s({
77
+ reflect: true
78
+ })], WebUiOption.prototype, "value", void 0);
79
+ __decorate([property({ type: String })], WebUiOption.prototype, "label", null);
80
+ __decorate([property({
69
81
  type: Boolean,
70
- reflect: !0
71
- })], c.prototype, "disabled", void 0), e([s({
82
+ reflect: true
83
+ })], WebUiOption.prototype, "disabled", void 0);
84
+ __decorate([property({
72
85
  type: Boolean,
73
- reflect: !0
74
- })], c.prototype, "selected", void 0), c = e([o("web-ui-option")], c);
75
- //#endregion
76
- export { c as WebUiOption };
86
+ reflect: true
87
+ })], WebUiOption.prototype, "selected", void 0);
88
+ WebUiOption = __decorate([customElement("web-ui-option")], WebUiOption);
89
+ export { WebUiOption };
77
90
 
78
91
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../src/components/option/index.ts"],"sourcesContent":["import '@/components/icon'\n\nimport { html, LitElement, type PropertyValues, unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\nimport { heroiconsCheck16Solid } from '@/icons'\n\nimport style from './style.css?inline'\n\n@customElement('web-ui-option')\nexport class WebUiOption extends LitElement {\n static override styles = unsafeCSS(style)\n\n @property({ type: String, reflect: true }) value = ''\n @property({ type: String })\n get label(): string {\n return this._label || this._getSlottedLabel()\n }\n set label(value: string) {\n const old = this.label\n this._label = value\n this.requestUpdate('label', old)\n }\n private _label = ''\n private _slottedLabel = ''\n\n @property({ type: Boolean, reflect: true }) disabled = false\n @property({ type: Boolean, reflect: true }) selected = false\n\n override connectedCallback() {\n super.connectedCallback()\n this.dispatchEvent(\n new CustomEvent('option-register', {\n bubbles: true,\n composed: true,\n detail: { value: this.value, label: this.label, disabled: this.disabled }\n })\n )\n }\n\n override disconnectedCallback() {\n super.disconnectedCallback()\n this.dispatchEvent(\n new CustomEvent('option-unregister', {\n bubbles: true,\n composed: true,\n detail: { value: this.value }\n })\n )\n }\n\n override updated(changed: PropertyValues) {\n if (changed.has('value') || changed.has('label') || changed.has('disabled')) {\n this.dispatchEvent(\n new CustomEvent('option-update', {\n bubbles: true,\n composed: true\n })\n )\n }\n }\n\n private _onLabelSlotChange = () => {\n const label = this._getSlottedLabel()\n if (label === this._slottedLabel) return\n\n const old = this._label || this._slottedLabel\n this._slottedLabel = label\n this.requestUpdate('label', old)\n }\n\n private _getSlottedLabel(): string {\n return [...this.childNodes]\n .filter(node => !(node instanceof HTMLElement && node.slot))\n .map(node => node.textContent)\n .join('')\n .trim()\n }\n\n override render() {\n return html`\n <div class=\"option-label\">\n <web-ui-icon class=\"check\" size=\"16\" .icon=${heroiconsCheck16Solid}></web-ui-icon>\n <slot name=\"prefix\"></slot>\n <span class=\"content-wrap\">${this._label || html`<slot @slotchange=${this._onLabelSlotChange}></slot>`}</span>\n <slot name=\"suffix\"></slot>\n </div>\n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'web-ui-option': WebUiOption\n }\n}\n"],"mappings":";;;;;;;AAUO,IAAM,IAAN,cAA0B,EAAW;;EAoDP,aAjDgB,KAAA,QAAA,IAUlC,KAAA,SAAA,IACO,KAAA,gBAAA,IAE+B,KAAA,WAAA,IACA,KAAA,WAAA,IAmCpB,KAAA,2BAAA;GACjC,IAAM,IAAQ,KAAK,iBAAiB;GACpC,IAAI,MAAU,KAAK,eAAe;GAElC,IAAM,IAAM,KAAK,UAAU,KAAK;GAEhC,AADA,KAAK,gBAAgB,GACrB,KAAK,cAAc,SAAS,CAAG;EACjC;;;EA1DyB,KAAA,SAAA,EAAU,CAAK;;CAGxC,IACI,QAAgB;EAClB,OAAO,KAAK,UAAU,KAAK,iBAAiB;CAC9C;CACA,IAAI,MAAM,GAAe;EACvB,IAAM,IAAM,KAAK;EAEjB,AADA,KAAK,SAAS,GACd,KAAK,cAAc,SAAS,CAAG;CACjC;CAOA,oBAA6B;EAE3B,AADA,MAAM,kBAAkB,GACxB,KAAK,cACH,IAAI,YAAY,mBAAmB;GACjC,SAAS;GACT,UAAU;GACV,QAAQ;IAAE,OAAO,KAAK;IAAO,OAAO,KAAK;IAAO,UAAU,KAAK;GAAS;EAC1E,CAAC,CACH;CACF;CAEA,uBAAgC;EAE9B,AADA,MAAM,qBAAqB,GAC3B,KAAK,cACH,IAAI,YAAY,qBAAqB;GACnC,SAAS;GACT,UAAU;GACV,QAAQ,EAAE,OAAO,KAAK,MAAM;EAC9B,CAAC,CACH;CACF;CAEA,QAAiB,GAAyB;EACxC,CAAI,EAAQ,IAAI,OAAO,KAAK,EAAQ,IAAI,OAAO,KAAK,EAAQ,IAAI,UAAU,MACxE,KAAK,cACH,IAAI,YAAY,iBAAiB;GAC/B,SAAS;GACT,UAAU;EACZ,CAAC,CACH;CAEJ;CAWA,mBAAmC;EACjC,OAAO,CAAC,GAAG,KAAK,UAAU,CAAC,CACxB,QAAO,MAAQ,EAAE,aAAgB,eAAe,EAAK,KAAK,CAAC,CAC3D,KAAI,MAAQ,EAAK,WAAW,CAAC,CAC7B,KAAK,EAAE,CAAC,CACR,KAAK;CACV;CAEA,SAAkB;EAChB,OAAO,CAAI;;qDAEsC,EAAsB;;qCAEtC,KAAK,UAAU,CAAI,qBAAqB,KAAK,mBAAmB,UAAU;;;;CAI7G;AACF;AA5EG,EAAA,CAAA,EAAS;CAAE,MAAM;CAAQ,SAAS;AAAK,CAAC,CAAA,GAAA,EAAA,WAAA,SAAA,KAAA,CAAA,GACxC,EAAA,CAAA,EAAS,EAAE,MAAM,OAAO,CAAC,CAAA,GAAA,EAAA,WAAA,SAAA,IAAA,GAYzB,EAAA,CAAA,EAAS;CAAE,MAAM;CAAS,SAAS;AAAK,CAAC,CAAA,GAAA,EAAA,WAAA,YAAA,KAAA,CAAA,GACzC,EAAA,CAAA,EAAS;CAAE,MAAM;CAAS,SAAS;AAAK,CAAC,CAAA,GAAA,EAAA,WAAA,YAAA,KAAA,CAAA,GAlB3C,IAAA,EAAA,CAAA,EAAc,eAAe,CAAA,GAAA,CAAA"}
1
+ {"version":3,"file":"index.js","names":["style","heroiconsCheck16Solid"],"sources":["../../../src/components/option/index.ts"],"sourcesContent":["import '@/components/icon'\n\nimport { html, LitElement, type PropertyValues, unsafeCSS } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\nimport { heroiconsCheck16Solid } from '@/icons'\n\nimport style from './style.css?inline'\n\n@customElement('web-ui-option')\nexport class WebUiOption extends LitElement {\n static override styles = unsafeCSS(style)\n\n @property({ type: String, reflect: true }) value = ''\n @property({ type: String })\n get label(): string {\n return this._label || this._getSlottedLabel()\n }\n set label(value: string) {\n const old = this.label\n this._label = value\n this.requestUpdate('label', old)\n }\n private _label = ''\n private _slottedLabel = ''\n\n @property({ type: Boolean, reflect: true }) disabled = false\n @property({ type: Boolean, reflect: true }) selected = false\n\n override connectedCallback() {\n super.connectedCallback()\n this.dispatchEvent(\n new CustomEvent('option-register', {\n bubbles: true,\n composed: true,\n detail: { value: this.value, label: this.label, disabled: this.disabled }\n })\n )\n }\n\n override disconnectedCallback() {\n super.disconnectedCallback()\n this.dispatchEvent(\n new CustomEvent('option-unregister', {\n bubbles: true,\n composed: true,\n detail: { value: this.value }\n })\n )\n }\n\n override updated(changed: PropertyValues) {\n if (changed.has('value') || changed.has('label') || changed.has('disabled')) {\n this.dispatchEvent(\n new CustomEvent('option-update', {\n bubbles: true,\n composed: true\n })\n )\n }\n }\n\n private _onLabelSlotChange = () => {\n const label = this._getSlottedLabel()\n if (label === this._slottedLabel) return\n\n const old = this._label || this._slottedLabel\n this._slottedLabel = label\n this.requestUpdate('label', old)\n }\n\n private _getSlottedLabel(): string {\n return [...this.childNodes]\n .filter(node => !(node instanceof HTMLElement && node.slot))\n .map(node => node.textContent)\n .join('')\n .trim()\n }\n\n override render() {\n return html`\n <div class=\"option-label\">\n <web-ui-icon class=\"check\" size=\"16\" .icon=${heroiconsCheck16Solid}></web-ui-icon>\n <slot name=\"prefix\"></slot>\n <span class=\"content-wrap\">${this._label || html`<slot @slotchange=${this._onLabelSlotChange}></slot>`}</span>\n <slot name=\"suffix\"></slot>\n </div>\n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'web-ui-option': WebUiOption\n }\n}\n"],"mappings":";;;;;;;AAUO,IAAM,cAAN,MAAM,oBAAoB,WAAW;;;EAGS,KAAA,QAAA;EAUlC,KAAA,SAAA;EACO,KAAA,gBAAA;EAE+B,KAAA,WAAA;EACA,KAAA,WAAA;EAmCpB,KAAA,2BAAA;GACjC,MAAM,QAAQ,KAAK,iBAAiB;GACpC,IAAI,UAAU,KAAK,eAAe;GAElC,MAAM,MAAM,KAAK,UAAU,KAAK;GAChC,KAAK,gBAAgB;GACrB,KAAK,cAAc,SAAS,GAAG;EACjC;;;EA1DyB,KAAA,SAAA,UAAUA,aAAK;;CAGxC,IACI,QAAgB;EAClB,OAAO,KAAK,UAAU,KAAK,iBAAiB;CAC9C;CACA,IAAI,MAAM,OAAe;EACvB,MAAM,MAAM,KAAK;EACjB,KAAK,SAAS;EACd,KAAK,cAAc,SAAS,GAAG;CACjC;CAOA,oBAA6B;EAC3B,MAAM,kBAAkB;EACxB,KAAK,cACH,IAAI,YAAY,mBAAmB;GACjC,SAAS;GACT,UAAU;GACV,QAAQ;IAAE,OAAO,KAAK;IAAO,OAAO,KAAK;IAAO,UAAU,KAAK;GAAS;EAC1E,CAAC,CACH;CACF;CAEA,uBAAgC;EAC9B,MAAM,qBAAqB;EAC3B,KAAK,cACH,IAAI,YAAY,qBAAqB;GACnC,SAAS;GACT,UAAU;GACV,QAAQ,EAAE,OAAO,KAAK,MAAM;EAC9B,CAAC,CACH;CACF;CAEA,QAAiB,SAAyB;EACxC,IAAI,QAAQ,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,QAAQ,IAAI,UAAU,GACxE,KAAK,cACH,IAAI,YAAY,iBAAiB;GAC/B,SAAS;GACT,UAAU;EACZ,CAAC,CACH;CAEJ;CAWA,mBAAmC;EACjC,OAAO,CAAC,GAAG,KAAK,UAAU,CAAC,CACxB,QAAO,SAAQ,EAAE,gBAAgB,eAAe,KAAK,KAAK,CAAC,CAC3D,KAAI,SAAQ,KAAK,WAAW,CAAC,CAC7B,KAAK,EAAE,CAAC,CACR,KAAK;CACV;CAEA,SAAkB;EAChB,OAAO,IAAI;;qDAEsCC,iCAAsB;;qCAEtC,KAAK,UAAU,IAAI,qBAAqB,KAAK,mBAAmB,UAAU;;;;CAI7G;AACF;AA5EG,WAAA,CAAA,SAAS;CAAE,MAAM;CAAQ,SAAS;AAAK,CAAC,CAAA,GAAA,YAAA,WAAA,SAAA,KAAA,CAAA;AACxC,WAAA,CAAA,SAAS,EAAE,MAAM,OAAO,CAAC,CAAA,GAAA,YAAA,WAAA,SAAA,IAAA;AAYzB,WAAA,CAAA,SAAS;CAAE,MAAM;CAAS,SAAS;AAAK,CAAC,CAAA,GAAA,YAAA,WAAA,YAAA,KAAA,CAAA;AACzC,WAAA,CAAA,SAAS;CAAE,MAAM;CAAS,SAAS;AAAK,CAAC,CAAA,GAAA,YAAA,WAAA,YAAA,KAAA,CAAA;AAlB3C,cAAA,WAAA,CAAA,cAAc,eAAe,CAAA,GAAA,WAAA"}
@@ -1,6 +1,5 @@
1
- //#region src/components/option/style.css?inline
2
- var e = "*,:before,:after{box-sizing:border-box}:host{display:block}:host([disabled]){cursor:not-allowed;opacity:.4}.option-label{cursor:default;-webkit-user-select:none;user-select:none;gap:var(--wui-space-2,8px);box-sizing:border-box;height:32px;padding:0 var(--wui-space-2,8px);border-radius:var(--wui-radius-control,calc(infinity * 1px));font-size:var(--wui-font-size,14px);color:var(--wui-color-text,#1b1b1b);text-overflow:ellipsis;white-space:nowrap;align-items:center;display:flex;overflow:hidden}.check{display:var(--wui-option-check-display,block);flex-shrink:0}.content-wrap{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}:host(:not([selected])) .check{visibility:hidden}::slotted([slot=prefix]),::slotted([slot=suffix]){flex-shrink:0}.option-label:focus-visible{outline:var(--wui-focus-ring-width,3px) solid var(--wui-color-focus-ring,color-mix(in srgb, var(--wui-color-accent,#0071e3) 40%, transparent));outline-offset:2px}:host([active]) .option-label{color:var(--wui-color-on-accent,#fff);background:var(--wui-color-accent,#0071e3)}@media (hover:hover) and (pointer:fine){:host(:not([active])) .option-label:hover{background:var(--wui-color-border,#0000001a)}}:host([disabled]) .option-label{cursor:not-allowed}";
3
- //#endregion
4
- export { e as default };
1
+ // src/components/option/style.css?inline
2
+ var style_default = "*,:before,:after{box-sizing:border-box}:host{display:block}:host([disabled]){cursor:not-allowed;opacity:.4}.option-label{cursor:default;-webkit-user-select:none;user-select:none;gap:var(--wui-space-2,8px);box-sizing:border-box;height:32px;padding:0 var(--wui-space-2,8px);border-radius:var(--wui-radius-control,calc(infinity * 1px));font-size:var(--wui-font-size,14px);color:var(--wui-color-text,#1b1b1b);text-overflow:ellipsis;white-space:nowrap;align-items:center;display:flex;overflow:hidden}.check{display:var(--wui-option-check-display,block);flex-shrink:0}.content-wrap{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}:host(:not([selected])) .check{visibility:hidden}::slotted([slot=prefix]),::slotted([slot=suffix]){flex-shrink:0}.option-label:focus-visible{outline:var(--wui-focus-ring-width,3px) solid var(--wui-color-focus-ring,color-mix(in srgb, var(--wui-color-accent,#0071e3) 40%, transparent));outline-offset:2px}:host([active]) .option-label{color:var(--wui-color-on-accent,#fff);background:var(--wui-color-accent,#0071e3)}@media (hover:hover) and (pointer:fine){:host(:not([active])) .option-label:hover{background:var(--wui-color-border,#0000001a)}}:host([disabled]) .option-label{cursor:not-allowed}\n";
3
+ export { style_default as default };
5
4
 
6
5
  //# sourceMappingURL=style.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"style.js","names":[],"sources":["../../../src/components/option/style.css?inline"],"sourcesContent":["*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\n:host {\n display: block;\n}\n\n:host([disabled]) {\n cursor: not-allowed;\n opacity: 0.4;\n}\n\n.option-label {\n cursor: default;\n user-select: none;\n\n overflow: hidden;\n display: flex;\n gap: var(--wui-space-2, 8px);\n align-items: center;\n\n box-sizing: border-box;\n height: 32px;\n padding: 0 var(--wui-space-2, 8px);\n border-radius: var(--wui-radius-control, calc(infinity * 1px));\n\n font-size: var(--wui-font-size, 14px);\n color: var(--wui-color-text, #1b1b1b);\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.check {\n display: var(--wui-option-check-display, block);\n flex-shrink: 0;\n}\n\n.content-wrap {\n overflow: hidden;\n flex: 1;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n:host(:not([selected])) .check {\n visibility: hidden;\n}\n\n::slotted([slot='prefix']),\n::slotted([slot='suffix']) {\n flex-shrink: 0;\n}\n\n.option-label:focus-visible {\n outline: var(--wui-focus-ring-width, 3px) solid\n var(--wui-color-focus-ring, color-mix(in srgb, var(--wui-color-accent, #0071e3) 40%, transparent));\n outline-offset: 2px;\n}\n\n:host([active]) .option-label {\n color: var(--wui-color-on-accent, #fff);\n background: var(--wui-color-accent, #0071e3);\n}\n\n@media (hover: hover) and (pointer: fine) {\n :host(:not([active])) .option-label:hover {\n background: var(--wui-color-border, rgb(0 0 0 / 0.1));\n }\n}\n\n:host([disabled]) .option-label {\n cursor: not-allowed;\n}\n"],"mappings":""}
1
+ {"version":3,"file":"style.js","names":[],"sources":["../../../src/components/option/style.css?inline"],"sourcesContent":["*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\n:host {\n display: block;\n}\n\n:host([disabled]) {\n cursor: not-allowed;\n opacity: 0.4;\n}\n\n.option-label {\n cursor: default;\n user-select: none;\n\n overflow: hidden;\n display: flex;\n gap: var(--wui-space-2, 8px);\n align-items: center;\n\n box-sizing: border-box;\n height: 32px;\n padding: 0 var(--wui-space-2, 8px);\n border-radius: var(--wui-radius-control, calc(infinity * 1px));\n\n font-size: var(--wui-font-size, 14px);\n color: var(--wui-color-text, #1b1b1b);\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.check {\n display: var(--wui-option-check-display, block);\n flex-shrink: 0;\n}\n\n.content-wrap {\n overflow: hidden;\n flex: 1;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n:host(:not([selected])) .check {\n visibility: hidden;\n}\n\n::slotted([slot='prefix']),\n::slotted([slot='suffix']) {\n flex-shrink: 0;\n}\n\n.option-label:focus-visible {\n outline: var(--wui-focus-ring-width, 3px) solid\n var(--wui-color-focus-ring, color-mix(in srgb, var(--wui-color-accent, #0071e3) 40%, transparent));\n outline-offset: 2px;\n}\n\n:host([active]) .option-label {\n color: var(--wui-color-on-accent, #fff);\n background: var(--wui-color-accent, #0071e3);\n}\n\n@media (hover: hover) and (pointer: fine) {\n :host(:not([active])) .option-label:hover {\n background: var(--wui-color-border, rgb(0 0 0 / 0.1));\n }\n}\n\n:host([disabled]) .option-label {\n cursor: not-allowed;\n}\n"],"mappings":";AAAA,IAAA,gBAAA"}
@@ -1,72 +1,73 @@
1
- import { Placement } from '@floating-ui/dom';
2
- import { LitElement } from 'lit';
3
- import { OverlayContainer } from '../../shared/overlay/portal';
1
+ import { OverlayContainer } from "../../shared/overlay/portal.js";
2
+ import { LitElement } from "lit";
3
+ import { Placement } from "@floating-ui/dom";
4
4
  export declare class WebUiPopover extends LitElement {
5
- static styles: import('lit').CSSResult[];
6
- open: boolean;
7
- disabled: boolean;
8
- get placement(): Placement;
9
- set placement(v: string);
10
- private _placement;
11
- get offset(): number;
12
- set offset(v: number);
13
- private _offset;
14
- get trigger(): 'click' | 'hover' | 'manual';
15
- set trigger(v: string);
16
- private _trigger;
17
- portal: boolean;
18
- overlayContainer?: OverlayContainer;
19
- private _showTimer?;
20
- private _hideTimer?;
21
- private readonly _userOpenChange;
22
- private _shouldOpenInstantly;
23
- private _panelId;
24
- private _portal?;
25
- /**
26
- * 开启态 overlay(issue #120 Block 1):本组件不再自行监听 keydown,只声明「我开着」,
27
- * 由唯一仲裁者决定一次 Escape 关谁。实例作用域的帧事务入口也在这里(合并了原
28
- * lifecycle)—— 它的 lifetime 长于一次开合(跨 `suspend()`/`resume()`),
29
- * 但不长于实例本身。
30
- */
31
- private readonly _overlay;
32
- private readonly _panel;
33
- get isOpen(): boolean;
34
- connectedCallback(): void;
35
- firstUpdated(): void;
36
- disconnectedCallback(): void;
37
- protected updated(changed: Map<string, unknown>): void;
38
- show(): void;
39
- close(): void;
40
- toggle(): void;
41
- private _isInsideShadowRoot;
42
- private _syncTriggerListeners;
43
- private _syncOverlayInert;
44
- private _openOverlay;
45
- private _migratableContentNodes;
46
- private _createPortal;
47
- private _closeOverlay;
48
- private _reconfigureOverlay;
49
- private _dispatchChange;
50
- private _syncTriggerAria;
51
- private _focusPanel;
52
- private _returnFocus;
53
- private _queryTrigger;
54
- private _onTriggerClick;
55
- private _onClickOutside;
56
- private _onFocusOut;
57
- private _onPointerEnter;
58
- private _onPointerLeave;
59
- private _onPanelPointerEnter;
60
- private _onPanelPointerLeave;
61
- render(): import('lit').TemplateResult<1>;
62
- readonly $events: {
63
- 'open-change': CustomEvent<{
64
- open: boolean;
65
- }>;
66
- };
5
+ static styles: import("lit").CSSResult[];
6
+ open: boolean;
7
+ disabled: boolean;
8
+ get placement(): Placement;
9
+ set placement(v: string);
10
+ private _placement;
11
+ get offset(): number;
12
+ set offset(v: number);
13
+ private _offset;
14
+ get trigger(): 'click' | 'hover' | 'manual';
15
+ set trigger(v: string);
16
+ private _trigger;
17
+ portal: boolean;
18
+ overlayContainer?: OverlayContainer;
19
+ private _showTimer?;
20
+ private _hideTimer?;
21
+ private readonly _userOpenChange;
22
+ private _shouldOpenInstantly;
23
+ private _panelId;
24
+ private _portal?;
25
+ /**
26
+ * 开启态 overlay(issue #120 Block 1):本组件不自行监听 keydown,只声明「我开着」,
27
+ * 由唯一仲裁者决定一次 Escape 关谁。实例作用域的帧事务入口也在这里
28
+ * —— 它的 lifetime 长于一次开合(跨 `suspend()`/`resume()`),
29
+ * 但不长于实例本身。
30
+ */
31
+ private readonly _overlay;
32
+ private readonly _panel;
33
+ get isOpen(): boolean;
34
+ connectedCallback(): void;
35
+ firstUpdated(): void;
36
+ disconnectedCallback(): void;
37
+ protected updated(changed: Map<string, unknown>): void;
38
+ show(): void;
39
+ close(): void;
40
+ toggle(): void;
41
+ private _isInsideShadowRoot;
42
+ private _syncTriggerListeners;
43
+ private _syncOverlayInert;
44
+ private _openOverlay;
45
+ private _migratableContentNodes;
46
+ private _createPortal;
47
+ private _closeOverlay;
48
+ private _reconfigureOverlay;
49
+ private _dispatchChange;
50
+ private _syncTriggerAria;
51
+ private _focusPanel;
52
+ private _returnFocus;
53
+ private _queryTrigger;
54
+ private _onTriggerClick;
55
+ private _onClickOutside;
56
+ private _onFocusOut;
57
+ private _onPointerEnter;
58
+ private _onPointerLeave;
59
+ private _onPanelPointerEnter;
60
+ private _onPanelPointerLeave;
61
+ render(): import("lit").TemplateResult<1>;
62
+ readonly $events: {
63
+ 'open-change': CustomEvent<{
64
+ open: boolean;
65
+ }>;
66
+ };
67
67
  }
68
68
  declare global {
69
- interface HTMLElementTagNameMap {
70
- 'web-ui-popover': WebUiPopover;
71
- }
69
+ interface HTMLElementTagNameMap {
70
+ 'web-ui-popover': WebUiPopover;
71
+ }
72
72
  }
73
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/components/popover/index.ts"],"mappings":";;;qBAqBa,qBAAqB;SAChB,sBAAM;EAEsB;EACA;MAGxC,aAAa;MAGb,UAAU;UAKN;MAGJ;MAGA,OAAO;UAKH;MAGJ;MAGA,QAAQ;UAKJ;EAEoC;EACZ,mBAAmB;UAE3C;UACA;mBACS;UACT;UAEA;UACA;;;;;;;mBAOS;mBAOA;MAab;EAIK;EAQA;EAiBA;YAaU,QAAQ,SAAS;EAsCpC;EAKA;EAKA;UAKQ;UAOA;UAYA;UAIA;UAWA;UAMA;UAmBM;UAIN;UAaA;UASA;UAOA;UAQA;UAOA;UAMA;UAUA;UAUA;UAWA;UAYA;UAWA;UAMA;EAUC,wBAAM;WA0BE;IACf,eAAe;MAAc;;;;QAIzB;YACI;IACR,kBAAkB"}