@xlabs-store/core 0.0.1 → 0.0.3

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 (1097) hide show
  1. package/LICENSE +21 -21
  2. package/components/index.d.ts +0 -0
  3. package/components/index.js +1 -1
  4. package/components/p--BbMiBIf.js +1 -0
  5. package/components/p-4BROAJ-M.js +1 -0
  6. package/components/p-9T3IQVUX.js +1 -0
  7. package/components/p-B1Y8S28h.js +1 -0
  8. package/components/p-B5VsEsBC.js +1 -0
  9. package/components/p-B7SdFSQT.js +1 -0
  10. package/components/p-B97Hj_bs.js +1 -0
  11. package/components/p-BBTo0Tfc.js +1 -0
  12. package/components/p-BCuFZ3xx.js +1 -0
  13. package/components/p-BFPoQ179.js +1 -0
  14. package/components/p-BLqwG7xa.js +1 -0
  15. package/components/p-BPaLHj9P.js +1 -0
  16. package/components/p-BQtB82ld.js +1 -0
  17. package/components/p-BSLE4EQn.js +1 -0
  18. package/components/{p-DcRlYBIl.js → p-BUXxKr3t.js} +1 -1
  19. package/components/p-BYCebYZT.js +1 -0
  20. package/components/p-BZdNMS4e.js +1 -0
  21. package/components/p-BhWqNJhk.js +1 -0
  22. package/components/p-BnnNgLpE.js +1 -0
  23. package/components/p-BoPZ9Se8.js +1 -0
  24. package/components/p-BogEYBiK.js +1 -0
  25. package/components/p-Brr9Q7gj.js +1 -0
  26. package/components/p-BvOnPBRo.js +1 -0
  27. package/components/p-BzX-LA7W.js +1 -0
  28. package/components/p-C-KgrbKX.js +1 -0
  29. package/components/{p-CfhgoXyB.js → p-C-rau5Ex.js} +1 -1
  30. package/components/{p-B4R9Mtmk.js → p-C1PUbETy.js} +1 -1
  31. package/components/p-C1_JmoB8.js +1 -0
  32. package/components/{p-noTpj1Kh.js → p-C3Kx_-Wc.js} +1 -1
  33. package/components/p-CIOnWzKr.js +1 -0
  34. package/components/p-CQ2VND9-.js +1 -0
  35. package/components/p-CQQI-pRu.js +1 -0
  36. package/components/p-CXhCHTJf.js +1 -0
  37. package/components/p-CaJOfbTg.js +1 -0
  38. package/components/p-Cf_74fjT.js +1 -0
  39. package/components/{p-DVz50Dd3.js → p-CgLn4Y4c.js} +1 -1
  40. package/components/p-CgaLhv3u.js +1 -0
  41. package/components/{p-CGYOWZnh.js → p-CijqjTOk.js} +1 -1
  42. package/components/p-CkwLFDlS.js +1 -0
  43. package/components/p-CkyEMR2k.js +1 -0
  44. package/components/{p-Ce32Mo_Q.js → p-CmfyRJYt.js} +1 -1
  45. package/components/p-CnPsn8zN.js +1 -0
  46. package/components/p-Cp3SPBy3.js +1 -0
  47. package/components/p-CsYh9t-z.js +1 -0
  48. package/components/{p-BM-ap7lt.js → p-CtFbsd8j.js} +1 -1
  49. package/components/p-Cuf33Rgj.js +1 -0
  50. package/components/p-CwNmnRmr.js +1 -0
  51. package/components/p-CxMQkHjk.js +1 -0
  52. package/components/p-CzErFq8K.js +1 -0
  53. package/components/p-CzHtwC1k.js +1 -0
  54. package/components/p-CzjK_fJj.js +1 -0
  55. package/components/p-D4Joi-Km.js +1 -0
  56. package/components/p-D4am7l6X.js +1 -0
  57. package/components/p-D7kqIlVo.js +1 -0
  58. package/components/p-DFzUUEiS.js +1 -0
  59. package/components/p-DINdyuGa.js +1 -0
  60. package/components/p-DIZuWptV.js +1 -0
  61. package/components/p-DPo53FC8.js +1 -0
  62. package/components/p-DPt8hDp3.js +1 -0
  63. package/components/p-DSC5zsOB.js +1 -0
  64. package/components/{p-Co3Y9VjQ.js → p-DSa1uqPO.js} +1 -1
  65. package/components/p-DT7-VE44.js +1 -0
  66. package/components/p-DTPUsC3Q.js +1 -0
  67. package/components/p-DUjF0MeP.js +1 -0
  68. package/components/p-DXMO8s1V.js +1 -0
  69. package/components/p-DZtvVtvb.js +1 -0
  70. package/components/p-D_184xNl.js +1 -0
  71. package/components/p-D_hKBumm.js +1 -0
  72. package/components/p-Da7AZprv.js +1 -0
  73. package/components/p-DcqkhKqy.js +1 -0
  74. package/components/p-Dkga4pDL.js +1 -0
  75. package/components/p-Dn1c0e9W.js +1 -0
  76. package/components/p-DobuHW4v.js +1 -0
  77. package/components/p-DqayamUz.js +1 -0
  78. package/components/{p-Cd919NAP.js → p-DtIk7IPf.js} +1 -1
  79. package/components/p-DwySgZYx.js +1 -0
  80. package/components/p-DynL8Hj8.js +1 -0
  81. package/components/p-EYMvnfpO.js +1 -0
  82. package/components/p-K2tV3sog.js +1 -0
  83. package/components/p-LX68sH4m.js +1 -0
  84. package/components/{p-CKVSyuIH.js → p-MRcLOacJ.js} +1 -1
  85. package/components/p-N4_1eZ9k.js +1 -0
  86. package/components/p-PNU1f8B9.js +1 -0
  87. package/components/p-SFcKtdEL.js +1 -0
  88. package/components/p-VezrLuwj.js +1 -0
  89. package/components/p-eF_oZrS1.js +1 -0
  90. package/components/p-ez-wfqCC.js +1 -0
  91. package/components/p-gQbQhfDs.js +1 -0
  92. package/components/p-ibXnjCdF.js +1 -0
  93. package/components/p-jTIj1nFL.js +1 -0
  94. package/components/p-k2uLDFNn.js +1 -0
  95. package/components/p-pK9HRi91.js +1 -0
  96. package/components/p-sijpPVRP.js +1 -0
  97. package/components/p-tMIvQ4L0.js +1 -0
  98. package/components/p-yktKa2eA.js +1 -0
  99. package/components/x-address.js +1 -1
  100. package/components/x-affix.d.ts +0 -0
  101. package/components/x-affix.js +1 -1
  102. package/components/x-alert.d.ts +0 -0
  103. package/components/x-alert.js +1 -1
  104. package/components/x-anchor-link.d.ts +0 -0
  105. package/components/x-anchor-link.js +1 -1
  106. package/components/x-anchor.d.ts +0 -0
  107. package/components/x-anchor.js +1 -1
  108. package/components/x-app.d.ts +0 -0
  109. package/components/x-app.js +1 -1
  110. package/components/x-auto-complete-dropdown-content.d.ts +0 -0
  111. package/components/x-auto-complete-dropdown-content.js +1 -1
  112. package/components/x-auto-complete.d.ts +0 -0
  113. package/components/x-auto-complete.js +1 -1
  114. package/components/x-avatar.d.ts +0 -0
  115. package/components/x-avatar.js +1 -1
  116. package/components/x-back-top.js +1 -1
  117. package/components/x-badge.d.ts +0 -0
  118. package/components/x-badge.js +1 -1
  119. package/components/x-breadcrumb-item.d.ts +0 -0
  120. package/components/x-breadcrumb-item.js +1 -1
  121. package/components/x-breadcrumb.d.ts +0 -0
  122. package/components/x-breadcrumb.js +1 -1
  123. package/components/x-button.d.ts +0 -0
  124. package/components/x-button.js +1 -1
  125. package/components/x-captcha.js +1 -1
  126. package/components/x-card.d.ts +0 -0
  127. package/components/x-card.js +1 -1
  128. package/components/x-carousel.d.ts +0 -0
  129. package/components/x-carousel.js +1 -1
  130. package/components/x-cascader-dropdown-content.d.ts +0 -0
  131. package/components/x-cascader-dropdown-content.js +1 -1
  132. package/components/x-cascader.d.ts +0 -0
  133. package/components/x-cascader.js +1 -1
  134. package/components/x-checkbox.d.ts +0 -0
  135. package/components/x-checkbox.js +1 -1
  136. package/components/x-code-editor.d.ts +11 -0
  137. package/components/x-code-editor.js +1 -0
  138. package/components/x-col.d.ts +0 -0
  139. package/components/x-col.js +1 -1
  140. package/components/x-collapse-panel.d.ts +0 -0
  141. package/components/x-collapse-panel.js +1 -1
  142. package/components/x-collapse.d.ts +0 -0
  143. package/components/x-collapse.js +1 -1
  144. package/components/x-color-picker-panel.d.ts +0 -0
  145. package/components/x-color-picker-panel.js +1 -1
  146. package/components/x-color-picker.d.ts +0 -0
  147. package/components/x-color-picker.js +1 -1
  148. package/components/x-comment.d.ts +0 -0
  149. package/components/x-comment.js +1 -1
  150. package/components/x-content.d.ts +0 -0
  151. package/components/x-content.js +1 -1
  152. package/components/x-date-picker-dropdown-content.d.ts +0 -0
  153. package/components/x-date-picker-dropdown-content.js +1 -1
  154. package/components/x-date-picker.d.ts +0 -0
  155. package/components/x-date-picker.js +1 -1
  156. package/components/x-descriptions-item.d.ts +0 -0
  157. package/components/x-descriptions-item.js +1 -1
  158. package/components/x-descriptions.d.ts +0 -0
  159. package/components/x-descriptions.js +1 -1
  160. package/components/x-divider.d.ts +0 -0
  161. package/components/x-divider.js +1 -1
  162. package/components/x-drawer-content.d.ts +0 -0
  163. package/components/x-drawer-content.js +1 -1
  164. package/components/x-drawer.d.ts +0 -0
  165. package/components/x-drawer.js +1 -1
  166. package/components/x-dropdown-content.d.ts +0 -0
  167. package/components/x-dropdown-content.js +1 -1
  168. package/components/x-dropdown.d.ts +0 -0
  169. package/components/x-dropdown.js +1 -1
  170. package/components/x-editor.d.ts +0 -0
  171. package/components/x-editor.js +1 -1
  172. package/components/x-empty.d.ts +0 -0
  173. package/components/x-empty.js +1 -1
  174. package/components/x-finder.d.ts +0 -0
  175. package/components/x-finder.js +1 -1
  176. package/components/x-flex.d.ts +0 -0
  177. package/components/x-flex.js +1 -1
  178. package/components/x-float-button.d.ts +0 -0
  179. package/components/x-float-button.js +1 -1
  180. package/components/x-footer.d.ts +0 -0
  181. package/components/x-footer.js +1 -1
  182. package/components/x-form-builder.d.ts +0 -0
  183. package/components/x-form-builder.js +1 -1
  184. package/components/x-form-item.d.ts +0 -0
  185. package/components/x-form-item.js +1 -1
  186. package/components/x-form.d.ts +0 -0
  187. package/components/x-form.js +1 -1
  188. package/components/x-header.d.ts +0 -0
  189. package/components/x-header.js +1 -1
  190. package/components/x-icon-picker-dropdown-content.d.ts +11 -0
  191. package/components/x-icon-picker-dropdown-content.js +1 -0
  192. package/components/x-icon.d.ts +0 -0
  193. package/components/x-icon.js +1 -1
  194. package/components/x-image.d.ts +0 -0
  195. package/components/x-image.js +1 -1
  196. package/components/x-infinite-scroll.d.ts +0 -0
  197. package/components/x-infinite-scroll.js +1 -1
  198. package/components/x-input-icon.d.ts +11 -0
  199. package/components/x-input-icon.js +1 -0
  200. package/components/x-input-number.d.ts +0 -0
  201. package/components/x-input-number.js +1 -1
  202. package/components/x-input.d.ts +0 -0
  203. package/components/x-input.js +1 -1
  204. package/components/x-layout-admin.d.ts +11 -0
  205. package/components/x-layout-admin.js +1 -0
  206. package/components/x-layout-detail.d.ts +11 -0
  207. package/components/x-layout-detail.js +1 -0
  208. package/components/x-layout-list.d.ts +11 -0
  209. package/components/x-layout-list.js +1 -0
  210. package/components/x-layout.d.ts +0 -0
  211. package/components/x-layout.js +1 -1
  212. package/components/x-list-item.js +1 -1
  213. package/components/x-list.d.ts +0 -0
  214. package/components/x-list.js +1 -1
  215. package/components/x-login.d.ts +11 -0
  216. package/components/x-login.js +1 -0
  217. package/components/x-mentions.d.ts +0 -0
  218. package/components/x-mentions.js +1 -1
  219. package/components/x-menu-divider.d.ts +0 -0
  220. package/components/x-menu-divider.js +1 -1
  221. package/components/x-menu-item-group.d.ts +0 -0
  222. package/components/x-menu-item-group.js +1 -1
  223. package/components/x-menu-item.d.ts +0 -0
  224. package/components/x-menu-item.js +1 -1
  225. package/components/x-menu-submenu.d.ts +0 -0
  226. package/components/x-menu-submenu.js +1 -1
  227. package/components/x-menu.d.ts +0 -0
  228. package/components/x-menu.js +1 -1
  229. package/components/x-message.d.ts +0 -0
  230. package/components/x-message.js +1 -1
  231. package/components/x-modal-content.d.ts +0 -0
  232. package/components/x-modal-content.js +1 -1
  233. package/components/x-modal.d.ts +0 -0
  234. package/components/x-modal.js +1 -1
  235. package/components/x-notification.d.ts +0 -0
  236. package/components/x-notification.js +1 -1
  237. package/components/x-page-header.js +1 -1
  238. package/components/x-pagination.d.ts +0 -0
  239. package/components/x-pagination.js +1 -1
  240. package/components/x-popconfirm-content.d.ts +0 -0
  241. package/components/x-popconfirm-content.js +1 -1
  242. package/components/x-popconfirm.d.ts +0 -0
  243. package/components/x-popconfirm.js +1 -1
  244. package/components/x-popover-content.d.ts +0 -0
  245. package/components/x-popover-content.js +1 -1
  246. package/components/x-popover.d.ts +0 -0
  247. package/components/x-popover.js +1 -1
  248. package/components/x-progress.d.ts +0 -0
  249. package/components/x-progress.js +1 -1
  250. package/components/x-qr-code.d.ts +0 -0
  251. package/components/x-qr-code.js +1 -1
  252. package/components/x-radio-group.d.ts +0 -0
  253. package/components/x-radio-group.js +1 -1
  254. package/components/x-radio.d.ts +0 -0
  255. package/components/x-radio.js +1 -1
  256. package/components/x-range-picker-dropdown-content.d.ts +0 -0
  257. package/components/x-range-picker-dropdown-content.js +1 -1
  258. package/components/x-range-picker.d.ts +0 -0
  259. package/components/x-range-picker.js +1 -1
  260. package/components/x-rate.d.ts +0 -0
  261. package/components/x-rate.js +1 -1
  262. package/components/x-result.d.ts +0 -0
  263. package/components/x-result.js +1 -1
  264. package/components/x-row.d.ts +0 -0
  265. package/components/x-row.js +1 -1
  266. package/components/x-segmented.d.ts +0 -0
  267. package/components/x-segmented.js +1 -1
  268. package/components/x-select-dropdown-content.d.ts +0 -0
  269. package/components/x-select-dropdown-content.js +1 -1
  270. package/components/x-select-option.d.ts +0 -0
  271. package/components/x-select-option.js +1 -1
  272. package/components/x-select.d.ts +0 -0
  273. package/components/x-select.js +1 -1
  274. package/components/x-sider.d.ts +0 -0
  275. package/components/x-sider.js +1 -1
  276. package/components/x-skeleton.d.ts +0 -0
  277. package/components/x-skeleton.js +1 -1
  278. package/components/x-slider.d.ts +0 -0
  279. package/components/x-slider.js +1 -1
  280. package/components/x-space.d.ts +0 -0
  281. package/components/x-space.js +1 -1
  282. package/components/x-spin.d.ts +0 -0
  283. package/components/x-spin.js +1 -1
  284. package/components/x-splitter-panel.d.ts +0 -0
  285. package/components/x-splitter-panel.js +1 -1
  286. package/components/x-splitter.d.ts +0 -0
  287. package/components/x-splitter.js +1 -1
  288. package/components/x-statistic.d.ts +0 -0
  289. package/components/x-statistic.js +1 -1
  290. package/components/x-step.d.ts +0 -0
  291. package/components/x-step.js +1 -1
  292. package/components/x-steps.d.ts +0 -0
  293. package/components/x-steps.js +1 -1
  294. package/components/x-switch.d.ts +0 -0
  295. package/components/x-switch.js +1 -1
  296. package/components/x-tab-pane.js +1 -1
  297. package/components/x-table-cell.d.ts +0 -0
  298. package/components/x-table-cell.js +1 -1
  299. package/components/x-table-row.d.ts +0 -0
  300. package/components/x-table-row.js +1 -1
  301. package/components/x-table.d.ts +0 -0
  302. package/components/x-table.js +1 -1
  303. package/components/x-tabs.d.ts +0 -0
  304. package/components/x-tabs.js +1 -1
  305. package/components/x-tag.d.ts +0 -0
  306. package/components/x-tag.js +1 -1
  307. package/components/x-textarea.d.ts +0 -0
  308. package/components/x-textarea.js +1 -1
  309. package/components/x-time-picker-dropdown-content.d.ts +0 -0
  310. package/components/x-time-picker-dropdown-content.js +1 -1
  311. package/components/x-time-picker.d.ts +0 -0
  312. package/components/x-time-picker.js +1 -1
  313. package/components/x-timeline-item.d.ts +0 -0
  314. package/components/x-timeline-item.js +1 -1
  315. package/components/x-timeline.d.ts +0 -0
  316. package/components/x-timeline.js +1 -1
  317. package/components/x-tooltip-content.d.ts +0 -0
  318. package/components/x-tooltip-content.js +1 -1
  319. package/components/x-tooltip.d.ts +0 -0
  320. package/components/x-tooltip.js +1 -1
  321. package/components/x-tour-panel.d.ts +0 -0
  322. package/components/x-tour-panel.js +1 -1
  323. package/components/x-tour.d.ts +0 -0
  324. package/components/x-tour.js +1 -1
  325. package/components/x-transfer.d.ts +0 -0
  326. package/components/x-transfer.js +1 -1
  327. package/components/x-tree-select-dropdown-content.js +1 -1
  328. package/components/x-tree-select.d.ts +0 -0
  329. package/components/x-tree-select.js +1 -1
  330. package/components/x-tree.d.ts +0 -0
  331. package/components/x-tree.js +1 -1
  332. package/components/x-typography.d.ts +0 -0
  333. package/components/x-typography.js +1 -1
  334. package/components/x-upload.d.ts +0 -0
  335. package/components/x-upload.js +1 -1
  336. package/components/x-virtual-scroll.d.ts +0 -0
  337. package/components/x-virtual-scroll.js +1 -1
  338. package/components/x-workflow-builder.d.ts +0 -0
  339. package/components/x-workflow-builder.js +1 -1
  340. package/components/x-workflow.d.ts +0 -0
  341. package/components/x-workflow.js +1 -1
  342. package/dist/cjs/{abstract-control-C4D0eNCC.js → abstract-control-JI4_szTV.js} +40 -14
  343. package/dist/cjs/{config-BP9bROYD.js → config-BYR5qIIZ.js} +3 -3
  344. package/dist/cjs/icons-BfHE2jcr.js +19261 -0
  345. package/dist/cjs/{index-C7sKs9A2.js → index-Cy2P_ln3.js} +39 -12
  346. package/dist/cjs/index.cjs.js +7 -5
  347. package/dist/cjs/loader.cjs.js +2 -2
  348. package/dist/cjs/{locale.service-Cz-aZQnr.js → locale.service-DT6E8Rzd.js} +17 -9
  349. package/dist/cjs/{modal-service-BtAF0mFq.js → modal-service-FQpCPk_L.js} +34 -14
  350. package/dist/cjs/{notification-service-m6I5U9aG.js → notification-service-v7LRmTyh.js} +12 -13
  351. package/dist/cjs/{portal-controller-CtYVbhXL.js → portal-controller-DJft2QkA.js} +11 -16
  352. package/dist/cjs/{schema-builder-CYnX7lKi.js → schema-builder-DAwDwgIM.js} +385 -99
  353. package/dist/cjs/{tree.service-fxLOCSpD.js → tree.service-u0qqS1Qh.js} +22 -22
  354. package/dist/cjs/x-address_51.cjs.entry.js +26978 -0
  355. package/dist/cjs/x-affix.cjs.entry.js +5 -5
  356. package/dist/cjs/{x-alert_11.cjs.entry.js → x-alert_9.cjs.entry.js} +267 -646
  357. package/dist/cjs/x-anchor-link.cjs.entry.js +3 -3
  358. package/dist/cjs/x-anchor.cjs.entry.js +11 -9
  359. package/dist/cjs/x-app.cjs.entry.js +19 -19
  360. package/dist/cjs/x-back-top.cjs.entry.js +4 -4
  361. package/dist/cjs/x-breadcrumb_2.cjs.entry.js +124 -0
  362. package/dist/cjs/x-carousel.cjs.entry.js +7 -7
  363. package/dist/cjs/x-code-editor.cjs.entry.js +2365 -0
  364. package/dist/cjs/x-col_11.cjs.entry.js +1204 -0
  365. package/dist/cjs/x-collapse-panel.cjs.entry.js +4 -4
  366. package/dist/cjs/x-collapse.cjs.entry.js +4 -4
  367. package/dist/cjs/x-comment.cjs.entry.js +5 -5
  368. package/dist/cjs/x-descriptions-item.cjs.entry.js +6 -6
  369. package/dist/cjs/{x-breadcrumb_5.cjs.entry.js → x-descriptions_3.cjs.entry.js} +36 -157
  370. package/dist/cjs/x-drawer-content.cjs.entry.js +8 -8
  371. package/dist/cjs/x-drawer.cjs.entry.js +9 -7
  372. package/dist/cjs/x-finder.cjs.entry.js +39 -32
  373. package/dist/cjs/x-icon-picker-dropdown-content.cjs.entry.js +158 -0
  374. package/dist/cjs/x-infinite-scroll.cjs.entry.js +4 -4
  375. package/dist/cjs/x-input-icon.cjs.entry.js +361 -0
  376. package/dist/cjs/x-layout-admin.cjs.entry.js +45 -0
  377. package/dist/cjs/x-layout-detail.cjs.entry.js +145 -0
  378. package/dist/cjs/x-layout-list.cjs.entry.js +259 -0
  379. package/dist/cjs/x-list-item.cjs.entry.js +3 -3
  380. package/dist/cjs/{x-menu-submenu.cjs.entry.js → x-list_2.cjs.entry.js} +141 -7
  381. package/dist/cjs/x-mentions.cjs.entry.js +6 -6
  382. package/dist/cjs/x-menu-divider.cjs.entry.js +2 -2
  383. package/dist/cjs/x-menu-item-group.cjs.entry.js +2 -2
  384. package/dist/cjs/x-menu_2.cjs.entry.js +509 -0
  385. package/dist/cjs/x-message.cjs.entry.js +7 -7
  386. package/dist/cjs/x-notification.cjs.entry.js +7 -7
  387. package/dist/cjs/x-page-header.cjs.entry.js +3 -3
  388. package/dist/cjs/x-popconfirm-content.cjs.entry.js +4 -4
  389. package/dist/cjs/x-popconfirm.cjs.entry.js +5 -5
  390. package/dist/cjs/x-progress.cjs.entry.js +10 -10
  391. package/dist/cjs/x-qr-code.cjs.entry.js +11 -9
  392. package/dist/cjs/x-skeleton.cjs.entry.js +5 -5
  393. package/dist/cjs/x-splitter-panel.cjs.entry.js +2 -2
  394. package/dist/cjs/x-splitter.cjs.entry.js +11 -5
  395. package/dist/cjs/x-statistic.cjs.entry.js +3 -3
  396. package/dist/cjs/x-step.cjs.entry.js +7 -7
  397. package/dist/cjs/x-steps.cjs.entry.js +6 -8
  398. package/dist/cjs/x-table-cell.cjs.entry.js +4 -4
  399. package/dist/cjs/x-table-row.cjs.entry.js +13 -10
  400. package/dist/cjs/x-timeline-item.cjs.entry.js +4 -4
  401. package/dist/cjs/x-timeline.cjs.entry.js +4 -4
  402. package/dist/cjs/x-tour-panel.cjs.entry.js +3 -3
  403. package/dist/cjs/x-tour.cjs.entry.js +16 -16
  404. package/dist/cjs/x-virtual-scroll.cjs.entry.js +5 -5
  405. package/dist/cjs/x-workflow-builder.cjs.entry.js +8 -8
  406. package/dist/cjs/xlabs.cjs.js +24 -0
  407. package/dist/collection/collection-manifest.json +8 -1
  408. package/dist/collection/components/x-address/vietnam-data.js +3 -3
  409. package/dist/collection/components/x-address/x-address.css +5 -2
  410. package/dist/collection/components/x-address/x-address.js +8 -10
  411. package/dist/collection/components/x-affix/x-affix.js +4 -4
  412. package/dist/collection/components/x-alert/x-alert.css +5 -2
  413. package/dist/collection/components/x-alert/x-alert.js +1 -1
  414. package/dist/collection/components/x-anchor/x-anchor.js +16 -8
  415. package/dist/collection/components/x-anchor-link/x-anchor-link.js +2 -2
  416. package/dist/collection/components/x-app/x-app.js +15 -15
  417. package/dist/collection/components/x-auto-complete/auto-complete-dropdown-content/auto-complete-dropdown-content.css +5 -2
  418. package/dist/collection/components/x-auto-complete/auto-complete-dropdown-content/auto-complete-dropdown-content.js +1 -1
  419. package/dist/collection/components/x-auto-complete/types.js +2 -5
  420. package/dist/collection/components/x-auto-complete/x-auto-complete.css +5 -2
  421. package/dist/collection/components/x-auto-complete/x-auto-complete.js +52 -25
  422. package/dist/collection/components/x-avatar/x-avatar.js +23 -14
  423. package/dist/collection/components/x-back-top/x-back-top.js +3 -3
  424. package/dist/collection/components/x-badge/x-badge.js +3 -7
  425. package/dist/collection/components/x-breadcrumb/x-breadcrumb.js +3 -3
  426. package/dist/collection/components/x-breadcrumb-item/x-breadcrumb-item.js +1 -1
  427. package/dist/collection/components/x-button/x-button.js +7 -7
  428. package/dist/collection/components/x-captcha/x-captcha.js +28 -8
  429. package/dist/collection/components/x-card/x-card.css +9 -4
  430. package/dist/collection/components/x-card/x-card.js +1 -1
  431. package/dist/collection/components/x-carousel/x-carousel.css +5 -2
  432. package/dist/collection/components/x-carousel/x-carousel.js +5 -5
  433. package/dist/collection/components/x-cascader/cascader-dropdown-content/cascader-dropdown-content.css +5 -2
  434. package/dist/collection/components/x-cascader/cascader-dropdown-content/cascader-dropdown-content.js +9 -9
  435. package/dist/collection/components/x-cascader/x-cascader.css +5 -2
  436. package/dist/collection/components/x-cascader/x-cascader.js +17 -20
  437. package/dist/collection/components/x-checkbox/x-checkbox.css +5 -2
  438. package/dist/collection/components/x-checkbox/x-checkbox.js +9 -19
  439. package/dist/collection/components/x-code-editor/types.js +1 -0
  440. package/dist/collection/components/x-code-editor/x-code-editor.css +1274 -0
  441. package/dist/collection/components/x-code-editor/x-code-editor.js +1497 -0
  442. package/dist/collection/components/x-col/x-col.css +5 -2
  443. package/dist/collection/components/x-col/x-col.js +14 -14
  444. package/dist/collection/components/x-collapse/x-collapse.css +5 -2
  445. package/dist/collection/components/x-collapse/x-collapse.js +4 -4
  446. package/dist/collection/components/x-collapse-panel/x-collapse-panel.css +5 -2
  447. package/dist/collection/components/x-collapse-panel/x-collapse-panel.js +4 -4
  448. package/dist/collection/components/x-color-picker/x-color-picker-panel.js +6 -8
  449. package/dist/collection/components/x-color-picker/x-color-picker.css +5 -2
  450. package/dist/collection/components/x-color-picker/x-color-picker.js +72 -12
  451. package/dist/collection/components/x-comment/x-comment.css +5 -2
  452. package/dist/collection/components/x-comment/x-comment.js +3 -3
  453. package/dist/collection/components/x-content/x-content.css +5 -4
  454. package/dist/collection/components/x-content/x-content.js +3 -3
  455. package/dist/collection/components/x-date-picker/date-picker-dropdown-content/date-picker-dropdown-content.css +7 -3
  456. package/dist/collection/components/x-date-picker/date-picker-dropdown-content/date-picker-dropdown-content.js +5 -9
  457. package/dist/collection/components/x-date-picker/x-date-picker.css +5 -2
  458. package/dist/collection/components/x-date-picker/x-date-picker.js +65 -23
  459. package/dist/collection/components/x-descriptions/x-descriptions.css +5 -2
  460. package/dist/collection/components/x-descriptions/x-descriptions.js +3 -3
  461. package/dist/collection/components/x-descriptions-item/x-descriptions-item.css +5 -2
  462. package/dist/collection/components/x-descriptions-item/x-descriptions-item.js +4 -4
  463. package/dist/collection/components/x-divider/x-divider.css +5 -2
  464. package/dist/collection/components/x-divider/x-divider.js +3 -3
  465. package/dist/collection/components/x-drawer/x-drawer.css +5 -2
  466. package/dist/collection/components/x-drawer/x-drawer.js +6 -4
  467. package/dist/collection/components/x-drawer-content/x-drawer-content.css +5 -2
  468. package/dist/collection/components/x-drawer-content/x-drawer-content.js +4 -4
  469. package/dist/collection/components/x-dropdown/dropdown-content/dropdown-content.css +5 -2
  470. package/dist/collection/components/x-dropdown/dropdown-content/dropdown-content.js +1 -1
  471. package/dist/collection/components/x-dropdown/x-dropdown.css +5 -2
  472. package/dist/collection/components/x-dropdown/x-dropdown.js +34 -12
  473. package/dist/collection/components/x-editor/types.js +4 -6
  474. package/dist/collection/components/x-editor/x-editor.css +25 -10
  475. package/dist/collection/components/x-editor/x-editor.js +80 -74
  476. package/dist/collection/components/x-empty/x-empty.css +5 -2
  477. package/dist/collection/components/x-empty/x-empty.js +1 -1
  478. package/dist/collection/components/x-finder/services/finder-service.js +7 -9
  479. package/dist/collection/components/x-finder/x-finder.css +10 -4
  480. package/dist/collection/components/x-finder/x-finder.js +28 -19
  481. package/dist/collection/components/x-flex/x-flex.css +5 -2
  482. package/dist/collection/components/x-flex/x-flex.js +5 -7
  483. package/dist/collection/components/x-float-button/x-float-button.css +5 -2
  484. package/dist/collection/components/x-float-button/x-float-button.js +4 -4
  485. package/dist/collection/components/x-footer/x-footer.css +5 -2
  486. package/dist/collection/components/x-footer/x-footer.js +1 -1
  487. package/dist/collection/components/x-form/x-form.css +5 -2
  488. package/dist/collection/components/x-form/x-form.js +98 -3
  489. package/dist/collection/components/x-form-builder/services/apis/api-client.js +24 -15
  490. package/dist/collection/components/x-form-builder/services/forms/form-array.js +3 -5
  491. package/dist/collection/components/x-form-builder/services/forms/form-group.js +6 -6
  492. package/dist/collection/components/x-form-builder/services/forms/validators.js +20 -10
  493. package/dist/collection/components/x-form-builder/services/schema/condition-builder.js +73 -50
  494. package/dist/collection/components/x-form-builder/services/schema/default-registry.js +108 -87
  495. package/dist/collection/components/x-form-builder/services/schema/form-mapping.js +80 -5
  496. package/dist/collection/components/x-form-builder/services/schema/formula-builder.js +114 -0
  497. package/dist/collection/components/x-form-builder/services/schema/schema-builder.js +7 -2
  498. package/dist/collection/components/x-form-builder/services/schema/schema-validator.js +1 -1
  499. package/dist/collection/components/x-form-builder/types/common/index.js +1 -0
  500. package/dist/collection/components/x-form-builder/types/common/ui-types.js +1 -0
  501. package/dist/collection/components/x-form-builder/types/fields/selection-fields.js +1 -9
  502. package/dist/collection/components/x-form-builder/utils/condition-engine.js +56 -14
  503. package/dist/collection/components/x-form-builder/utils/utils.js +25 -6
  504. package/dist/collection/components/x-form-builder/x-form-builder.js +559 -206
  505. package/dist/collection/components/x-form-item/x-form-item.css +16 -10
  506. package/dist/collection/components/x-form-item/x-form-item.js +46 -28
  507. package/dist/collection/components/x-header/x-header.css +5 -2
  508. package/dist/collection/components/x-header/x-header.js +1 -1
  509. package/dist/collection/components/x-icon/icons.js +19257 -2716
  510. package/dist/collection/components/x-icon/x-icon.css +5 -2
  511. package/dist/collection/components/x-icon/x-icon.js +6 -6
  512. package/dist/collection/components/x-image/x-image.css +5 -2
  513. package/dist/collection/components/x-image/x-image.js +6 -6
  514. package/dist/collection/components/x-infinite-scroll/x-infinite-scroll.css +5 -2
  515. package/dist/collection/components/x-infinite-scroll/x-infinite-scroll.js +2 -2
  516. package/dist/collection/components/x-input/x-input.css +25 -2
  517. package/dist/collection/components/x-input/x-input.js +38 -9
  518. package/dist/collection/components/x-input-icon/icon-picker-dropdown-content/icon-picker-dropdown-content.css +453 -0
  519. package/dist/collection/components/x-input-icon/icon-picker-dropdown-content/icon-picker-dropdown-content.js +304 -0
  520. package/dist/collection/components/x-input-icon/types.js +1 -0
  521. package/dist/collection/components/x-input-icon/x-input-icon.css +404 -0
  522. package/dist/collection/components/x-input-icon/x-input-icon.js +917 -0
  523. package/dist/collection/components/x-input-number/x-input-number.css +5 -2
  524. package/dist/collection/components/x-input-number/x-input-number.js +108 -13
  525. package/dist/collection/components/x-layout/x-layout.css +5 -2
  526. package/dist/collection/components/x-layout/x-layout.js +11 -5
  527. package/dist/collection/components/x-layout-admin/x-layout-admin.css +403 -0
  528. package/dist/collection/components/x-layout-admin/x-layout-admin.js +127 -0
  529. package/dist/collection/components/x-layout-detail/x-layout-detail.css +479 -0
  530. package/dist/collection/components/x-layout-detail/x-layout-detail.js +300 -0
  531. package/dist/collection/components/x-layout-list/types.js +1 -0
  532. package/dist/collection/components/x-layout-list/x-layout-list.css +511 -0
  533. package/dist/collection/components/x-layout-list/x-layout-list.js +619 -0
  534. package/dist/collection/components/x-list/x-list.css +5 -2
  535. package/dist/collection/components/x-list/x-list.js +3 -3
  536. package/dist/collection/components/x-list-item/x-list-item.css +5 -2
  537. package/dist/collection/components/x-list-item/x-list-item.js +1 -1
  538. package/dist/collection/components/x-login/types.js +1 -0
  539. package/dist/collection/components/x-login/x-login.css +562 -0
  540. package/dist/collection/components/x-login/x-login.js +706 -0
  541. package/dist/collection/components/x-mentions/x-mentions.css +5 -2
  542. package/dist/collection/components/x-mentions/x-mentions.js +4 -4
  543. package/dist/collection/components/x-menu/x-menu.js +1 -1
  544. package/dist/collection/components/x-menu-divider/x-menu-divider.js +1 -1
  545. package/dist/collection/components/x-menu-item/x-menu-item.js +2 -2
  546. package/dist/collection/components/x-menu-item-group/x-menu-item-group.js +1 -1
  547. package/dist/collection/components/x-menu-submenu/x-menu-submenu.js +5 -5
  548. package/dist/collection/components/x-message/message-service.js +2 -2
  549. package/dist/collection/components/x-message/x-message.css +5 -2
  550. package/dist/collection/components/x-message/x-message.js +5 -5
  551. package/dist/collection/components/x-modal/modal-service.js +33 -13
  552. package/dist/collection/components/x-modal/x-modal.css +5 -2
  553. package/dist/collection/components/x-modal/x-modal.js +148 -47
  554. package/dist/collection/components/x-modal-content/x-modal-content.css +110 -18
  555. package/dist/collection/components/x-modal-content/x-modal-content.js +157 -12
  556. package/dist/collection/components/x-notification/notification-service.js +9 -10
  557. package/dist/collection/components/x-notification/x-notification.css +6 -2
  558. package/dist/collection/components/x-notification/x-notification.js +4 -4
  559. package/dist/collection/components/x-page-header/x-page-header.css +5 -2
  560. package/dist/collection/components/x-page-header/x-page-header.js +1 -1
  561. package/dist/collection/components/x-pagination/x-pagination.css +11 -2
  562. package/dist/collection/components/x-pagination/x-pagination.js +18 -14
  563. package/dist/collection/components/x-popconfirm/popconfirm-content/popconfirm-content.css +5 -2
  564. package/dist/collection/components/x-popconfirm/popconfirm-content/popconfirm-content.js +1 -1
  565. package/dist/collection/components/x-popconfirm/x-popconfirm.css +5 -2
  566. package/dist/collection/components/x-popconfirm/x-popconfirm.js +1 -1
  567. package/dist/collection/components/x-popover/popover-content/popover-content.css +5 -2
  568. package/dist/collection/components/x-popover/popover-content/popover-content.js +1 -1
  569. package/dist/collection/components/x-popover/x-popover.css +5 -2
  570. package/dist/collection/components/x-popover/x-popover.js +1 -1
  571. package/dist/collection/components/x-portal/positioning.js +11 -16
  572. package/dist/collection/components/x-progress/x-progress.css +5 -2
  573. package/dist/collection/components/x-progress/x-progress.js +8 -8
  574. package/dist/collection/components/x-qr-code/x-qr-code.css +2 -1
  575. package/dist/collection/components/x-qr-code/x-qr-code.js +23 -1
  576. package/dist/collection/components/x-radio/x-radio.css +5 -2
  577. package/dist/collection/components/x-radio/x-radio.js +5 -5
  578. package/dist/collection/components/x-radio-group/x-radio-group.css +5 -2
  579. package/dist/collection/components/x-radio-group/x-radio-group.js +6 -8
  580. package/dist/collection/components/x-range-picker/range-picker-dropdown-content/range-picker-dropdown-content.css +7 -3
  581. package/dist/collection/components/x-range-picker/range-picker-dropdown-content/range-picker-dropdown-content.js +13 -13
  582. package/dist/collection/components/x-range-picker/x-range-picker.css +5 -2
  583. package/dist/collection/components/x-range-picker/x-range-picker.js +9 -18
  584. package/dist/collection/components/x-rate/x-rate.css +5 -2
  585. package/dist/collection/components/x-rate/x-rate.js +3 -3
  586. package/dist/collection/components/x-result/x-result.css +5 -2
  587. package/dist/collection/components/x-result/x-result.js +11 -10
  588. package/dist/collection/components/x-row/x-row.css +5 -2
  589. package/dist/collection/components/x-row/x-row.js +4 -4
  590. package/dist/collection/components/x-segmented/x-segmented.css +5 -2
  591. package/dist/collection/components/x-segmented/x-segmented.js +8 -8
  592. package/dist/collection/components/x-select/select-dropdown-content/select-dropdown-content.css +11 -4
  593. package/dist/collection/components/x-select/select-dropdown-content/select-dropdown-content.js +1 -1
  594. package/dist/collection/components/x-select/x-select.css +11 -4
  595. package/dist/collection/components/x-select/x-select.js +33 -39
  596. package/dist/collection/components/x-select-option/x-select-option.css +5 -2
  597. package/dist/collection/components/x-select-option/x-select-option.js +3 -3
  598. package/dist/collection/components/x-sider/x-sider.css +7 -4
  599. package/dist/collection/components/x-sider/x-sider.js +7 -9
  600. package/dist/collection/components/x-skeleton/x-skeleton.css +5 -2
  601. package/dist/collection/components/x-skeleton/x-skeleton.js +3 -3
  602. package/dist/collection/components/x-slider/x-slider.css +5 -2
  603. package/dist/collection/components/x-slider/x-slider.js +11 -23
  604. package/dist/collection/components/x-space/x-space.css +5 -2
  605. package/dist/collection/components/x-space/x-space.js +4 -4
  606. package/dist/collection/components/x-spin/x-spin.css +5 -2
  607. package/dist/collection/components/x-spin/x-spin.js +1 -1
  608. package/dist/collection/components/x-splitter/x-splitter.js +14 -8
  609. package/dist/collection/components/x-splitter-panel/x-splitter-panel.js +1 -1
  610. package/dist/collection/components/x-statistic/x-statistic.css +5 -2
  611. package/dist/collection/components/x-statistic/x-statistic.js +1 -1
  612. package/dist/collection/components/x-step/x-step.css +5 -2
  613. package/dist/collection/components/x-step/x-step.js +5 -5
  614. package/dist/collection/components/x-steps/x-steps.css +5 -2
  615. package/dist/collection/components/x-steps/x-steps.js +4 -6
  616. package/dist/collection/components/x-switch/x-switch.css +5 -2
  617. package/dist/collection/components/x-switch/x-switch.js +7 -4
  618. package/dist/collection/components/x-tab-pane/x-tab-pane.css +5 -2
  619. package/dist/collection/components/x-tab-pane/x-tab-pane.js +58 -2
  620. package/dist/collection/components/x-table/x-table.css +187 -41
  621. package/dist/collection/components/x-table/x-table.js +257 -105
  622. package/dist/collection/components/x-table-cell/x-table-cell.css +5 -2
  623. package/dist/collection/components/x-table-cell/x-table-cell.js +2 -2
  624. package/dist/collection/components/x-table-row/x-table-row.css +5 -2
  625. package/dist/collection/components/x-table-row/x-table-row.js +11 -8
  626. package/dist/collection/components/x-tabs/x-tabs.css +17 -2
  627. package/dist/collection/components/x-tabs/x-tabs.js +130 -12
  628. package/dist/collection/components/x-tag/x-tag.css +6 -3
  629. package/dist/collection/components/x-tag/x-tag.js +1 -4
  630. package/dist/collection/components/x-textarea/x-textarea.css +5 -2
  631. package/dist/collection/components/x-textarea/x-textarea.js +5 -5
  632. package/dist/collection/components/x-time-picker/time-picker-dropdown-content/time-picker-dropdown-content.css +5 -2
  633. package/dist/collection/components/x-time-picker/time-picker-dropdown-content/time-picker-dropdown-content.js +1 -1
  634. package/dist/collection/components/x-time-picker/x-time-picker.css +5 -2
  635. package/dist/collection/components/x-time-picker/x-time-picker.js +4 -7
  636. package/dist/collection/components/x-timeline/x-timeline.css +5 -2
  637. package/dist/collection/components/x-timeline/x-timeline.js +2 -2
  638. package/dist/collection/components/x-timeline-item/x-timeline-item.css +5 -2
  639. package/dist/collection/components/x-timeline-item/x-timeline-item.js +2 -2
  640. package/dist/collection/components/x-tooltip/x-tooltip.css +5 -2
  641. package/dist/collection/components/x-tooltip/x-tooltip.js +6 -8
  642. package/dist/collection/components/x-tooltip-content/x-tooltip-content.js +2 -2
  643. package/dist/collection/components/x-tour/x-tour-panel.css +5 -2
  644. package/dist/collection/components/x-tour/x-tour-panel.js +1 -1
  645. package/dist/collection/components/x-tour/x-tour.css +5 -2
  646. package/dist/collection/components/x-tour/x-tour.js +15 -15
  647. package/dist/collection/components/x-transfer/x-transfer.css +5 -2
  648. package/dist/collection/components/x-transfer/x-transfer.js +8 -8
  649. package/dist/collection/components/x-tree/x-tree.css +5 -2
  650. package/dist/collection/components/x-tree/x-tree.js +25 -26
  651. package/dist/collection/components/x-tree-select/tree-select-dropdown-content/tree-select-dropdown-content.css +5 -2
  652. package/dist/collection/components/x-tree-select/tree-select-dropdown-content/tree-select-dropdown-content.js +6 -6
  653. package/dist/collection/components/x-tree-select/x-tree-select.css +5 -2
  654. package/dist/collection/components/x-tree-select/x-tree-select.js +21 -31
  655. package/dist/collection/components/x-typography/x-typography.css +10 -3
  656. package/dist/collection/components/x-typography/x-typography.js +12 -12
  657. package/dist/collection/components/x-upload/x-upload.css +5 -2
  658. package/dist/collection/components/x-upload/x-upload.js +342 -48
  659. package/dist/collection/components/x-virtual-scroll/x-virtual-scroll.js +5 -5
  660. package/dist/collection/components/x-workflow/x-workflow.css +3 -1
  661. package/dist/collection/components/x-workflow/x-workflow.js +81 -66
  662. package/dist/collection/components/x-workflow-builder/x-workflow-builder.css +5 -2
  663. package/dist/collection/components/x-workflow-builder/x-workflow-builder.js +6 -6
  664. package/dist/collection/index.js +2 -0
  665. package/dist/collection/locales/languages/mn_MN.js +14 -1
  666. package/dist/collection/locales/locale.service.js +4 -9
  667. package/dist/collection/utils/code-editor/ast-parser.js +378 -0
  668. package/dist/collection/utils/code-editor/autocomplete-db.js +590 -0
  669. package/dist/collection/utils/code-editor/history.js +56 -0
  670. package/dist/collection/utils/code-editor/index.js +4 -0
  671. package/dist/collection/utils/code-editor/plugin-system.js +54 -0
  672. package/dist/collection/utils/code-editor/tokenizer.js +300 -0
  673. package/dist/collection/utils/config.js +3 -3
  674. package/dist/collection/utils/form/core/abstract-control.js +40 -14
  675. package/dist/collection/utils/form/core/form-array.js +7 -5
  676. package/dist/collection/utils/form/core/form-group.js +8 -4
  677. package/dist/collection/utils/form/frameworks.js +7 -3
  678. package/dist/collection/utils/form/validators/validators.js +3 -9
  679. package/dist/collection/utils/qr-code/engine/qr.engine.js +3 -3
  680. package/dist/collection/utils/qr-code/engine/qr.mask.js +3 -3
  681. package/dist/collection/utils/qr-code/engine/qr.rs.js +1 -1
  682. package/dist/collection/utils/table.service.js +40 -14
  683. package/dist/collection/utils/tree.service.js +22 -22
  684. package/dist/collection/utils/workflow/flow.service.js +95 -30
  685. package/dist/esm/{abstract-control-XBF88YT_.js → abstract-control-BtYiIQqg.js} +40 -14
  686. package/dist/esm/{config-BPeosvTA.js → config-RKpMhZmc.js} +3 -3
  687. package/dist/esm/icons-CQ2VND9-.js +19259 -0
  688. package/dist/esm/{index-ig_mFsVk.js → index-BMTt8QT3.js} +39 -12
  689. package/dist/esm/index.js +6 -5
  690. package/dist/esm/loader.js +3 -3
  691. package/dist/esm/{locale.service-D66tF8_2.js → locale.service-DFADJBLL.js} +17 -9
  692. package/dist/esm/{modal-service-C_e0SaFZ.js → modal-service-ikfAY1gn.js} +34 -14
  693. package/dist/esm/{notification-service-DJTSPOq7.js → notification-service-CUyIF7K-.js} +12 -13
  694. package/dist/esm/{portal-controller-COpzIi1n.js → portal-controller-DM8AggMt.js} +11 -16
  695. package/dist/esm/{schema-builder-DBPGgJBx.js → schema-builder-CekbhOnD.js} +385 -99
  696. package/dist/esm/{tree.service-Dgxy93Bg.js → tree.service-iG9CbEpE.js} +22 -22
  697. package/dist/esm/x-address_51.entry.js +26926 -0
  698. package/dist/esm/x-affix.entry.js +5 -5
  699. package/dist/esm/{x-alert_11.entry.js → x-alert_9.entry.js} +268 -645
  700. package/dist/esm/x-anchor-link.entry.js +3 -3
  701. package/dist/esm/x-anchor.entry.js +11 -9
  702. package/dist/esm/x-app.entry.js +19 -19
  703. package/dist/esm/x-back-top.entry.js +4 -4
  704. package/dist/esm/x-breadcrumb_2.entry.js +121 -0
  705. package/dist/esm/x-carousel.entry.js +7 -7
  706. package/dist/esm/x-code-editor.entry.js +2363 -0
  707. package/dist/esm/x-col_11.entry.js +1192 -0
  708. package/dist/esm/x-collapse-panel.entry.js +4 -4
  709. package/dist/esm/x-collapse.entry.js +4 -4
  710. package/dist/esm/x-comment.entry.js +5 -5
  711. package/dist/esm/x-descriptions-item.entry.js +6 -6
  712. package/dist/esm/{x-breadcrumb_5.entry.js → x-descriptions_3.entry.js} +37 -156
  713. package/dist/esm/x-drawer-content.entry.js +8 -8
  714. package/dist/esm/x-drawer.entry.js +9 -7
  715. package/dist/esm/x-finder.entry.js +39 -32
  716. package/dist/esm/x-icon-picker-dropdown-content.entry.js +156 -0
  717. package/dist/esm/x-infinite-scroll.entry.js +4 -4
  718. package/dist/esm/x-input-icon.entry.js +359 -0
  719. package/dist/esm/x-layout-admin.entry.js +43 -0
  720. package/dist/esm/x-layout-detail.entry.js +143 -0
  721. package/dist/esm/x-layout-list.entry.js +257 -0
  722. package/dist/esm/x-list-item.entry.js +3 -3
  723. package/dist/esm/{x-menu-submenu.entry.js → x-list_2.entry.js} +141 -8
  724. package/dist/esm/x-mentions.entry.js +6 -6
  725. package/dist/esm/x-menu-divider.entry.js +2 -2
  726. package/dist/esm/x-menu-item-group.entry.js +2 -2
  727. package/dist/esm/x-menu_2.entry.js +506 -0
  728. package/dist/esm/x-message.entry.js +7 -7
  729. package/dist/esm/x-notification.entry.js +7 -7
  730. package/dist/esm/x-page-header.entry.js +3 -3
  731. package/dist/esm/x-popconfirm-content.entry.js +4 -4
  732. package/dist/esm/x-popconfirm.entry.js +5 -5
  733. package/dist/esm/x-progress.entry.js +10 -10
  734. package/dist/esm/x-qr-code.entry.js +11 -9
  735. package/dist/esm/x-skeleton.entry.js +5 -5
  736. package/dist/esm/x-splitter-panel.entry.js +2 -2
  737. package/dist/esm/x-splitter.entry.js +11 -5
  738. package/dist/esm/x-statistic.entry.js +3 -3
  739. package/dist/esm/x-step.entry.js +7 -7
  740. package/dist/esm/x-steps.entry.js +6 -8
  741. package/dist/esm/x-table-cell.entry.js +4 -4
  742. package/dist/esm/x-table-row.entry.js +13 -10
  743. package/dist/esm/x-timeline-item.entry.js +4 -4
  744. package/dist/esm/x-timeline.entry.js +4 -4
  745. package/dist/esm/x-tour-panel.entry.js +3 -3
  746. package/dist/esm/x-tour.entry.js +16 -16
  747. package/dist/esm/x-virtual-scroll.entry.js +5 -5
  748. package/dist/esm/x-workflow-builder.entry.js +8 -8
  749. package/dist/esm/xlabs.js +20 -0
  750. package/dist/types/components/x-app/x-app.d.ts +12 -12
  751. package/dist/types/components/x-auto-complete/auto-complete-dropdown-content/index.d.ts +1 -1
  752. package/dist/types/components/x-auto-complete/x-auto-complete.d.ts +6 -0
  753. package/dist/types/components/x-avatar/x-avatar.d.ts +3 -2
  754. package/dist/types/components/x-captcha/x-captcha.d.ts +4 -0
  755. package/dist/types/components/x-checkbox/x-checkbox.d.ts +0 -4
  756. package/dist/types/components/x-code-editor/types.d.ts +26 -0
  757. package/dist/types/components/x-code-editor/x-code-editor.d.ts +141 -0
  758. package/dist/types/components/x-color-picker/types.d.ts +4 -0
  759. package/dist/types/components/x-color-picker/x-color-picker.d.ts +8 -1
  760. package/dist/types/components/x-content/x-content.d.ts +1 -1
  761. package/dist/types/components/x-date-picker/x-date-picker.d.ts +4 -0
  762. package/dist/types/components/x-form/x-form.d.ts +12 -0
  763. package/dist/types/components/x-form-builder/services/forms/validators.d.ts +1 -0
  764. package/dist/types/components/x-form-builder/services/schema/form-mapping.d.ts +4 -0
  765. package/dist/types/components/x-form-builder/services/schema/formula-builder.d.ts +29 -0
  766. package/dist/types/components/x-form-builder/services/schema/schema-builder.d.ts +6 -1
  767. package/dist/types/components/x-form-builder/types/common/common-types.d.ts +5 -0
  768. package/dist/types/components/x-form-builder/types/common/field-types-enum.d.ts +1 -1
  769. package/dist/types/components/x-form-builder/types/common/index.d.ts +1 -0
  770. package/dist/types/components/x-form-builder/types/common/ui-types.d.ts +28 -0
  771. package/dist/types/components/x-form-builder/types/common/validation-types.d.ts +1 -1
  772. package/dist/types/components/x-form-builder/types/fields/advanced-fields.d.ts +1 -0
  773. package/dist/types/components/x-form-builder/types/fields/base-field.d.ts +4 -1
  774. package/dist/types/components/x-form-builder/types/fields/datetime-file-fields.d.ts +10 -3
  775. package/dist/types/components/x-form-builder/types/fields/display-fields.d.ts +3 -0
  776. package/dist/types/components/x-form-builder/types/fields/form-field-union.d.ts +5 -5
  777. package/dist/types/components/x-form-builder/types/fields/input-fields.d.ts +5 -0
  778. package/dist/types/components/x-form-builder/types/fields/layout-fields.d.ts +29 -2
  779. package/dist/types/components/x-form-builder/types/fields/selection-fields.d.ts +11 -4
  780. package/dist/types/components/x-form-builder/types/fields/special-input-fields.d.ts +3 -0
  781. package/dist/types/components/x-form-builder/types/form/schema-types.d.ts +7 -3
  782. package/dist/types/components/x-form-builder/utils/values.d.ts +1 -1
  783. package/dist/types/components/x-form-builder/x-form-builder.d.ts +11 -3
  784. package/dist/types/components/x-icon/icons.d.ts +12 -2716
  785. package/dist/types/components/x-icon/x-icon.d.ts +1 -1
  786. package/dist/types/components/x-input/types.d.ts +1 -1
  787. package/dist/types/components/x-input/x-input.d.ts +6 -0
  788. package/dist/types/components/x-input-icon/icon-picker-dropdown-content/icon-picker-dropdown-content.d.ts +39 -0
  789. package/dist/types/components/x-input-icon/types.d.ts +9 -0
  790. package/dist/types/components/x-input-icon/x-input-icon.d.ts +150 -0
  791. package/dist/types/components/x-input-number/x-input-number.d.ts +5 -0
  792. package/dist/types/components/x-layout/x-layout.d.ts +2 -1
  793. package/dist/types/components/x-layout-admin/x-layout-admin.d.ts +23 -0
  794. package/dist/types/components/x-layout-detail/x-layout-detail.d.ts +86 -0
  795. package/dist/types/components/x-layout-list/types.d.ts +100 -0
  796. package/dist/types/components/x-layout-list/x-layout-list.d.ts +107 -0
  797. package/dist/types/components/x-login/types.d.ts +113 -0
  798. package/dist/types/components/x-login/x-login.d.ts +126 -0
  799. package/dist/types/components/x-message/message-service.d.ts +1 -1
  800. package/dist/types/components/x-modal/x-modal.d.ts +31 -6
  801. package/dist/types/components/x-modal-content/x-modal-content.d.ts +24 -0
  802. package/dist/types/components/x-notification/notification-service.d.ts +1 -1
  803. package/dist/types/components/x-qr-code/x-qr-code.d.ts +2 -0
  804. package/dist/types/components/x-select/select-dropdown-content/index.d.ts +1 -1
  805. package/dist/types/components/x-tab-pane/x-tab-pane.d.ts +11 -0
  806. package/dist/types/components/x-table/types.d.ts +3 -0
  807. package/dist/types/components/x-table/x-table.d.ts +15 -4
  808. package/dist/types/components/x-tabs/types.d.ts +9 -0
  809. package/dist/types/components/x-tabs/x-tabs.d.ts +40 -1
  810. package/dist/types/components/x-time-picker/time-picker-dropdown-content/index.d.ts +1 -1
  811. package/dist/types/components/x-transfer/types.d.ts +3 -1
  812. package/dist/types/components/x-upload/types.d.ts +14 -0
  813. package/dist/types/components/x-upload/x-upload.d.ts +34 -7
  814. package/dist/types/components.d.ts +1304 -70
  815. package/dist/types/index.d.ts +2 -0
  816. package/dist/types/locales/locale.service.d.ts +3 -3
  817. package/dist/types/types.d.ts +2 -0
  818. package/dist/types/utils/code-editor/ast-parser.d.ts +5 -0
  819. package/dist/types/utils/code-editor/autocomplete-db.d.ts +10 -0
  820. package/dist/types/utils/code-editor/history.d.ts +19 -0
  821. package/dist/types/utils/code-editor/index.d.ts +4 -0
  822. package/dist/types/utils/code-editor/plugin-system.d.ts +31 -0
  823. package/dist/types/utils/code-editor/tokenizer.d.ts +2 -0
  824. package/dist/types/utils/form/types.d.ts +1 -1
  825. package/dist/types/utils/table.service.d.ts +2 -1
  826. package/dist/xlabs/index.esm.js +1 -0
  827. package/dist/xlabs/p-0139d27f.entry.js +1 -0
  828. package/dist/xlabs/p-04985e4d.entry.js +1 -0
  829. package/dist/xlabs/p-05a79f30.entry.js +1 -0
  830. package/dist/xlabs/p-0a08e0c8.entry.js +1 -0
  831. package/dist/xlabs/p-0d5fb8de.entry.js +1 -0
  832. package/dist/{xlabs-store/p-cd3c3374.entry.js → xlabs/p-121911e5.entry.js} +1 -1
  833. package/dist/xlabs/p-1260ad3b.entry.js +1 -0
  834. package/dist/xlabs/p-1c0ee15c.entry.js +1 -0
  835. package/dist/{xlabs-store/p-023259c9.entry.js → xlabs/p-1cd3b259.entry.js} +1 -1
  836. package/dist/xlabs/p-2451ab24.entry.js +1 -0
  837. package/dist/xlabs/p-2ab3bc58.entry.js +1 -0
  838. package/dist/xlabs/p-2f9d0da7.entry.js +1 -0
  839. package/dist/xlabs/p-302ab3b9.entry.js +1 -0
  840. package/dist/xlabs/p-31029063.entry.js +1 -0
  841. package/dist/xlabs/p-31c814c2.entry.js +1 -0
  842. package/dist/xlabs/p-3f5b28e5.entry.js +1 -0
  843. package/dist/xlabs/p-43d10a6e.entry.js +1 -0
  844. package/dist/xlabs/p-4bf9b6f7.entry.js +1 -0
  845. package/dist/xlabs/p-5ab9ce39.entry.js +1 -0
  846. package/dist/xlabs/p-5e495388.entry.js +1 -0
  847. package/dist/xlabs/p-6039e514.entry.js +1 -0
  848. package/dist/xlabs/p-674527b2.entry.js +1 -0
  849. package/dist/xlabs/p-68056c0e.entry.js +1 -0
  850. package/dist/xlabs/p-6d7480c0.entry.js +1 -0
  851. package/dist/xlabs/p-7697ef47.entry.js +1 -0
  852. package/dist/xlabs/p-7b8bdd79.entry.js +1 -0
  853. package/dist/xlabs/p-7f9a80e0.entry.js +1 -0
  854. package/dist/xlabs/p-948a032e.entry.js +1 -0
  855. package/dist/xlabs/p-99c568fd.entry.js +1 -0
  856. package/dist/{xlabs-store/p-7a8f11b4.entry.js → xlabs/p-9ae3501d.entry.js} +1 -1
  857. package/dist/xlabs/p-9b3a4aa6.entry.js +1 -0
  858. package/dist/xlabs/p-9c1cc5ff.entry.js +1 -0
  859. package/dist/xlabs/p-BMTt8QT3.js +2 -0
  860. package/dist/xlabs/p-CQ2VND9-.js +1 -0
  861. package/dist/xlabs/p-CkwLFDlS.js +1 -0
  862. package/dist/xlabs/p-D7kqIlVo.js +1 -0
  863. package/dist/{xlabs-store/p-Co3Y9VjQ.js → xlabs/p-DSa1uqPO.js} +1 -1
  864. package/dist/{xlabs-store/p-c0ca6f7d.entry.js → xlabs/p-a2d14538.entry.js} +1 -1
  865. package/dist/xlabs/p-a415c8c1.entry.js +1 -0
  866. package/dist/xlabs/p-a4995e36.entry.js +1 -0
  867. package/dist/{xlabs-store/p-fdec5d89.entry.js → xlabs/p-aba80f73.entry.js} +1 -1
  868. package/dist/xlabs/p-bc5969e0.entry.js +1 -0
  869. package/dist/xlabs/p-bef8def9.entry.js +1 -0
  870. package/dist/xlabs/p-cc57e705.entry.js +1 -0
  871. package/dist/xlabs/p-d11de492.entry.js +1 -0
  872. package/dist/xlabs/p-d4558f7b.entry.js +1 -0
  873. package/dist/xlabs/p-d921a2c7.entry.js +1 -0
  874. package/dist/xlabs/p-df10e5a1.entry.js +1 -0
  875. package/dist/xlabs/p-e1a1acbe.entry.js +1 -0
  876. package/dist/xlabs/p-eab901c4.entry.js +1 -0
  877. package/dist/xlabs/p-edcb4001.entry.js +1 -0
  878. package/dist/xlabs/p-f07d9ee7.entry.js +1 -0
  879. package/dist/xlabs/p-f280faed.entry.js +1 -0
  880. package/dist/xlabs/p-f5b96f2a.entry.js +1 -0
  881. package/dist/xlabs/p-f6950840.entry.js +1 -0
  882. package/dist/{xlabs-store/p-96b1939d.entry.js → xlabs/p-f69d2b16.entry.js} +1 -1
  883. package/dist/{xlabs-store/p-8bcbb4e3.entry.js → xlabs/p-fd003457.entry.js} +1 -1
  884. package/dist/xlabs/xlabs.css +2 -0
  885. package/dist/xlabs/xlabs.esm.js +1 -0
  886. package/loader/cdn.js +0 -0
  887. package/loader/index.cjs.js +0 -0
  888. package/loader/index.d.ts +0 -0
  889. package/loader/index.es2017.js +0 -0
  890. package/loader/index.js +0 -0
  891. package/package.json +65 -69
  892. package/readme.md +107 -50
  893. package/components/p-5c86X8JO.js +0 -1
  894. package/components/p-6KpqCGp9.js +0 -1
  895. package/components/p-ADwHM_jT.js +0 -1
  896. package/components/p-AgSyA7Ia.js +0 -1
  897. package/components/p-B-7Hwizp.js +0 -1
  898. package/components/p-B-ClGFfy.js +0 -1
  899. package/components/p-B4rO7Sgt.js +0 -1
  900. package/components/p-B5Syz0fw.js +0 -1
  901. package/components/p-B6p-mzW-.js +0 -1
  902. package/components/p-B8SZP5Xz.js +0 -1
  903. package/components/p-BBGHXZqR.js +0 -1
  904. package/components/p-BHLvuyOq.js +0 -1
  905. package/components/p-BOCR5Zk0.js +0 -1
  906. package/components/p-BRBrLtOz.js +0 -1
  907. package/components/p-BSRP2TGa.js +0 -1
  908. package/components/p-BUjRcJoK.js +0 -1
  909. package/components/p-BVeQ5W_G.js +0 -1
  910. package/components/p-BVnVlCcd.js +0 -1
  911. package/components/p-BZQcq9R_.js +0 -1
  912. package/components/p-BeIFU-wn.js +0 -1
  913. package/components/p-BkEgl31q.js +0 -1
  914. package/components/p-BkPJ1Whr.js +0 -1
  915. package/components/p-BkevSugc.js +0 -1
  916. package/components/p-BkiOFW3H.js +0 -1
  917. package/components/p-BskMfHyY.js +0 -1
  918. package/components/p-Bu2JqZs8.js +0 -1
  919. package/components/p-BvjR2Q5Q.js +0 -1
  920. package/components/p-Bz7MhZ4K.js +0 -1
  921. package/components/p-C3gvR6nN.js +0 -1
  922. package/components/p-C70KKm8p.js +0 -1
  923. package/components/p-C7csgUoA.js +0 -1
  924. package/components/p-CAPfC5Vn.js +0 -1
  925. package/components/p-CEBSDVyp.js +0 -1
  926. package/components/p-CFB6xkAX.js +0 -1
  927. package/components/p-CGIxdOEm.js +0 -1
  928. package/components/p-CHRrsVXB.js +0 -1
  929. package/components/p-CKUzvJue.js +0 -1
  930. package/components/p-CRBPzT4B.js +0 -1
  931. package/components/p-CSfrs76m.js +0 -1
  932. package/components/p-C_ZBjXFP.js +0 -1
  933. package/components/p-Ce5L9qbY.js +0 -1
  934. package/components/p-CeBfFEIa.js +0 -1
  935. package/components/p-Ck6SW8G3.js +0 -1
  936. package/components/p-D7ijqXRY.js +0 -1
  937. package/components/p-D7n-26Q5.js +0 -1
  938. package/components/p-D8ew7Rgv.js +0 -1
  939. package/components/p-DBk4T-b-.js +0 -1
  940. package/components/p-DD-W_fMF.js +0 -1
  941. package/components/p-DElCk9ta.js +0 -1
  942. package/components/p-DEumEVI3.js +0 -1
  943. package/components/p-DGqQ8PT4.js +0 -1
  944. package/components/p-DJ1WhSJ4.js +0 -1
  945. package/components/p-DOxXxhXb.js +0 -1
  946. package/components/p-DRa4o4c6.js +0 -1
  947. package/components/p-DTlSrH8_.js +0 -1
  948. package/components/p-DTvD0UO5.js +0 -1
  949. package/components/p-DZFphzg1.js +0 -1
  950. package/components/p-DZPUUptR.js +0 -1
  951. package/components/p-D_xaGiZU.js +0 -1
  952. package/components/p-DaL42JUi.js +0 -1
  953. package/components/p-DbRpEXwX.js +0 -1
  954. package/components/p-Dg0xgMke.js +0 -1
  955. package/components/p-Dky_8i8S.js +0 -1
  956. package/components/p-DlwlBBr4.js +0 -1
  957. package/components/p-DoTf8yXn.js +0 -1
  958. package/components/p-DphUq6Z5.js +0 -1
  959. package/components/p-DsgWQbJY.js +0 -1
  960. package/components/p-Dx3yBe39.js +0 -1
  961. package/components/p-DxKMnrS8.js +0 -1
  962. package/components/p-O88oQkR1.js +0 -1
  963. package/components/p-PlUkLT0A.js +0 -1
  964. package/components/p-QTSiPk0I.js +0 -1
  965. package/components/p-TC9DZAbC.js +0 -1
  966. package/components/p-bVsOg7S9.js +0 -1
  967. package/components/p-ccpcKv5U.js +0 -1
  968. package/components/p-en06CSUT.js +0 -1
  969. package/components/p-g6ZBqIze.js +0 -1
  970. package/dist/cjs/types-DQ-V76ZQ.js +0 -255
  971. package/dist/cjs/x-address_14.cjs.entry.js +0 -12577
  972. package/dist/cjs/x-auto-complete-dropdown-content.cjs.entry.js +0 -69
  973. package/dist/cjs/x-avatar.cjs.entry.js +0 -269
  974. package/dist/cjs/x-button.cjs.entry.js +0 -174
  975. package/dist/cjs/x-card_12.cjs.entry.js +0 -1386
  976. package/dist/cjs/x-cascader-dropdown-content.cjs.entry.js +0 -364
  977. package/dist/cjs/x-checkbox_5.cjs.entry.js +0 -1376
  978. package/dist/cjs/x-color-picker-panel_2.cjs.entry.js +0 -873
  979. package/dist/cjs/x-color-picker_9.cjs.entry.js +0 -3085
  980. package/dist/cjs/x-date-picker-dropdown-content.cjs.entry.js +0 -757
  981. package/dist/cjs/x-dropdown_2.cjs.entry.js +0 -735
  982. package/dist/cjs/x-empty.cjs.entry.js +0 -64
  983. package/dist/cjs/x-form-builder.cjs.entry.js +0 -807
  984. package/dist/cjs/x-icon.cjs.entry.js +0 -144
  985. package/dist/cjs/x-list.cjs.entry.js +0 -138
  986. package/dist/cjs/x-modal-content.cjs.entry.js +0 -217
  987. package/dist/cjs/x-range-picker-dropdown-content.cjs.entry.js +0 -821
  988. package/dist/cjs/x-select_2.cjs.entry.js +0 -1316
  989. package/dist/cjs/x-spin.cjs.entry.js +0 -62
  990. package/dist/cjs/x-tab-pane.cjs.entry.js +0 -73
  991. package/dist/cjs/x-tabs.cjs.entry.js +0 -609
  992. package/dist/cjs/x-time-picker-dropdown-content.cjs.entry.js +0 -389
  993. package/dist/cjs/x-tree-select-dropdown-content.cjs.entry.js +0 -439
  994. package/dist/cjs/xlabs-store.cjs.js +0 -24
  995. package/dist/esm/types-C_QdJRdB.js +0 -253
  996. package/dist/esm/x-address_14.entry.js +0 -12562
  997. package/dist/esm/x-auto-complete-dropdown-content.entry.js +0 -67
  998. package/dist/esm/x-avatar.entry.js +0 -267
  999. package/dist/esm/x-button.entry.js +0 -172
  1000. package/dist/esm/x-card_12.entry.js +0 -1373
  1001. package/dist/esm/x-cascader-dropdown-content.entry.js +0 -362
  1002. package/dist/esm/x-checkbox_5.entry.js +0 -1370
  1003. package/dist/esm/x-color-picker-panel_2.entry.js +0 -870
  1004. package/dist/esm/x-color-picker_9.entry.js +0 -3075
  1005. package/dist/esm/x-date-picker-dropdown-content.entry.js +0 -755
  1006. package/dist/esm/x-dropdown_2.entry.js +0 -732
  1007. package/dist/esm/x-empty.entry.js +0 -62
  1008. package/dist/esm/x-form-builder.entry.js +0 -805
  1009. package/dist/esm/x-icon.entry.js +0 -142
  1010. package/dist/esm/x-list.entry.js +0 -136
  1011. package/dist/esm/x-modal-content.entry.js +0 -215
  1012. package/dist/esm/x-range-picker-dropdown-content.entry.js +0 -819
  1013. package/dist/esm/x-select_2.entry.js +0 -1313
  1014. package/dist/esm/x-spin.entry.js +0 -60
  1015. package/dist/esm/x-tab-pane.entry.js +0 -71
  1016. package/dist/esm/x-tabs.entry.js +0 -607
  1017. package/dist/esm/x-time-picker-dropdown-content.entry.js +0 -387
  1018. package/dist/esm/x-tree-select-dropdown-content.entry.js +0 -437
  1019. package/dist/esm/xlabs-store.js +0 -20
  1020. package/dist/xlabs-store/index.esm.js +0 -1
  1021. package/dist/xlabs-store/p-016194dc.entry.js +0 -1
  1022. package/dist/xlabs-store/p-04a3721a.entry.js +0 -1
  1023. package/dist/xlabs-store/p-072445b7.entry.js +0 -1
  1024. package/dist/xlabs-store/p-0ec21454.entry.js +0 -1
  1025. package/dist/xlabs-store/p-12b6a843.entry.js +0 -1
  1026. package/dist/xlabs-store/p-1a81cf09.entry.js +0 -1
  1027. package/dist/xlabs-store/p-1b019aeb.entry.js +0 -1
  1028. package/dist/xlabs-store/p-262a0673.entry.js +0 -1
  1029. package/dist/xlabs-store/p-34cce823.entry.js +0 -1
  1030. package/dist/xlabs-store/p-3a9fdefe.entry.js +0 -1
  1031. package/dist/xlabs-store/p-40036100.entry.js +0 -1
  1032. package/dist/xlabs-store/p-45f04e8d.entry.js +0 -1
  1033. package/dist/xlabs-store/p-48ba7c34.entry.js +0 -1
  1034. package/dist/xlabs-store/p-48e2c26e.entry.js +0 -1
  1035. package/dist/xlabs-store/p-4ac2e915.entry.js +0 -1
  1036. package/dist/xlabs-store/p-4d7c2a35.entry.js +0 -1
  1037. package/dist/xlabs-store/p-4f67cb33.entry.js +0 -1
  1038. package/dist/xlabs-store/p-502b345e.entry.js +0 -1
  1039. package/dist/xlabs-store/p-555c5e48.entry.js +0 -1
  1040. package/dist/xlabs-store/p-5878525f.entry.js +0 -1
  1041. package/dist/xlabs-store/p-5abbdca7.entry.js +0 -1
  1042. package/dist/xlabs-store/p-6243ca69.entry.js +0 -1
  1043. package/dist/xlabs-store/p-64e7a057.entry.js +0 -1
  1044. package/dist/xlabs-store/p-6530d2ef.entry.js +0 -1
  1045. package/dist/xlabs-store/p-675a39e1.entry.js +0 -1
  1046. package/dist/xlabs-store/p-689c52ef.entry.js +0 -1
  1047. package/dist/xlabs-store/p-69b8cb7d.entry.js +0 -1
  1048. package/dist/xlabs-store/p-6b121c60.entry.js +0 -1
  1049. package/dist/xlabs-store/p-6c75fc39.entry.js +0 -1
  1050. package/dist/xlabs-store/p-6f705deb.entry.js +0 -1
  1051. package/dist/xlabs-store/p-723d362c.entry.js +0 -1
  1052. package/dist/xlabs-store/p-783545e3.entry.js +0 -1
  1053. package/dist/xlabs-store/p-81fb4caf.entry.js +0 -1
  1054. package/dist/xlabs-store/p-863dd67d.entry.js +0 -1
  1055. package/dist/xlabs-store/p-8bcc219a.entry.js +0 -1
  1056. package/dist/xlabs-store/p-914b0ae2.entry.js +0 -1
  1057. package/dist/xlabs-store/p-9ac291ea.entry.js +0 -1
  1058. package/dist/xlabs-store/p-9de03a07.entry.js +0 -1
  1059. package/dist/xlabs-store/p-C_QdJRdB.js +0 -1
  1060. package/dist/xlabs-store/p-Ce5L9qbY.js +0 -1
  1061. package/dist/xlabs-store/p-DElCk9ta.js +0 -1
  1062. package/dist/xlabs-store/p-a4223feb.entry.js +0 -1
  1063. package/dist/xlabs-store/p-a8c2eca7.entry.js +0 -1
  1064. package/dist/xlabs-store/p-ac9ba3aa.entry.js +0 -1
  1065. package/dist/xlabs-store/p-bd5084b8.entry.js +0 -1
  1066. package/dist/xlabs-store/p-bda322db.entry.js +0 -1
  1067. package/dist/xlabs-store/p-c4c8840c.entry.js +0 -1
  1068. package/dist/xlabs-store/p-c4d0ce0d.entry.js +0 -1
  1069. package/dist/xlabs-store/p-cf4697bc.entry.js +0 -1
  1070. package/dist/xlabs-store/p-d2ec3d4a.entry.js +0 -1
  1071. package/dist/xlabs-store/p-d4d00aff.entry.js +0 -1
  1072. package/dist/xlabs-store/p-d9d0147b.entry.js +0 -1
  1073. package/dist/xlabs-store/p-dd930f2a.entry.js +0 -1
  1074. package/dist/xlabs-store/p-e04836e8.entry.js +0 -1
  1075. package/dist/xlabs-store/p-e14b5f6d.entry.js +0 -1
  1076. package/dist/xlabs-store/p-eb1dd3c2.entry.js +0 -1
  1077. package/dist/xlabs-store/p-f02155e4.entry.js +0 -1
  1078. package/dist/xlabs-store/p-f1331938.entry.js +0 -1
  1079. package/dist/xlabs-store/p-fac0b689.entry.js +0 -1
  1080. package/dist/xlabs-store/p-fd2e1d9c.entry.js +0 -1
  1081. package/dist/xlabs-store/p-ffba56b2.entry.js +0 -1
  1082. package/dist/xlabs-store/p-ig_mFsVk.js +0 -2
  1083. package/dist/xlabs-store/xlabs-store.css +0 -1
  1084. package/dist/xlabs-store/xlabs-store.esm.js +0 -1
  1085. /package/components/{p-XBF88YT_.js → p-BtYiIQqg.js} +0 -0
  1086. /package/components/{p-D66tF8_2.js → p-DFADJBLL.js} +0 -0
  1087. /package/components/{p-COpzIi1n.js → p-DM8AggMt.js} +0 -0
  1088. /package/components/{p-BPeosvTA.js → p-RKpMhZmc.js} +0 -0
  1089. /package/components/{p-Dgxy93Bg.js → p-iG9CbEpE.js} +0 -0
  1090. /package/dist/{xlabs-store → xlabs}/fonts/xlabs-outlined.woff2 +0 -0
  1091. /package/dist/{xlabs-store → xlabs}/fonts/xlabs-rounded.woff2 +0 -0
  1092. /package/dist/{xlabs-store → xlabs}/fonts/xlabs-solided.woff2 +0 -0
  1093. /package/dist/{xlabs-store/p-XBF88YT_.js → xlabs/p-BtYiIQqg.js} +0 -0
  1094. /package/dist/{xlabs-store/p-D66tF8_2.js → xlabs/p-DFADJBLL.js} +0 -0
  1095. /package/dist/{xlabs-store/p-COpzIi1n.js → xlabs/p-DM8AggMt.js} +0 -0
  1096. /package/dist/{xlabs-store/p-BPeosvTA.js → xlabs/p-RKpMhZmc.js} +0 -0
  1097. /package/dist/{xlabs-store/p-Dgxy93Bg.js → xlabs/p-iG9CbEpE.js} +0 -0
@@ -1,3075 +0,0 @@
1
- import { r as registerInstance, c as createEvent, a as getElement, h, H as Host } from './index-ig_mFsVk.js';
2
- import { P as PortalController } from './portal-controller-COpzIi1n.js';
3
- import { g as getIcon } from './config-BPeosvTA.js';
4
- import { c as createColor } from './types-C_QdJRdB.js';
5
- import { A as AbstractControl } from './abstract-control-XBF88YT_.js';
6
- import { t as translate } from './locale.service-D66tF8_2.js';
7
-
8
- const xColorPickerCss = () => `:root{--x-color-primary:#1677ff;--x-color-primary-rgb:22, 119, 255;--x-color-primary-contrast:#ffffff;--x-color-primary-contrast-rgb:255, 255, 255;--x-color-primary-shade:#0958d9;--x-color-primary-tint:#4096ff;--x-color-primary-bg:#e6f4ff;--x-color-primary-bg-hover:#bae0ff;--x-color-primary-border:#91caff;--x-color-primary-border-hover:#69b1ff;--x-color-primary-hover:#4096ff;--x-color-primary-active:#0958d9;--x-color-primary-text:#1677ff;--x-color-primary-text-hover:#4096ff;--x-color-primary-text-active:#0958d9;--x-color-secondary:#3dc2ff;--x-color-secondary-rgb:61, 194, 255;--x-color-secondary-contrast:#ffffff;--x-color-secondary-contrast-rgb:255, 255, 255;--x-color-secondary-shade:#36abe0;--x-color-secondary-tint:#50c8ff;--x-color-success:#52c41a;--x-color-success-rgb:82, 196, 26;--x-color-success-contrast:#ffffff;--x-color-success-contrast-rgb:255, 255, 255;--x-color-success-shade:#389e0d;--x-color-success-tint:#73d13d;--x-color-success-bg:#f6ffed;--x-color-success-bg-hover:#d9f7be;--x-color-success-border:#b7eb8f;--x-color-success-border-hover:#95de64;--x-color-success-hover:#73d13d;--x-color-success-active:#389e0d;--x-color-success-text:#52c41a;--x-color-success-text-hover:#73d13d;--x-color-success-text-active:#389e0d;--x-color-warning:#faad14;--x-color-warning-rgb:250, 173, 20;--x-color-warning-contrast:#000000;--x-color-warning-contrast-rgb:0, 0, 0;--x-color-warning-shade:#d48806;--x-color-warning-tint:#ffc53d;--x-color-warning-bg:#fffbe6;--x-color-warning-bg-hover:#fff1b8;--x-color-warning-border:#ffe58f;--x-color-warning-border-hover:#ffd666;--x-color-warning-hover:#ffc53d;--x-color-warning-active:#d48806;--x-color-warning-text:#faad14;--x-color-warning-text-hover:#ffc53d;--x-color-warning-text-active:#d48806;--x-color-danger:#ff4d4f;--x-color-danger-rgb:255, 77, 79;--x-color-danger-contrast:#ffffff;--x-color-danger-contrast-rgb:255, 255, 255;--x-color-danger-shade:#cf1322;--x-color-danger-tint:#ff7875;--x-color-error:#ff4d4f;--x-color-error-rgb:255, 77, 79;--x-color-error-bg:#fff2f0;--x-color-error-bg-hover:#ffccc7;--x-color-error-border:#ffa39e;--x-color-error-border-hover:#ff7875;--x-color-error-hover:#ff7875;--x-color-error-active:#d9363e;--x-color-error-text:#ff4d4f;--x-color-error-text-hover:#ff7875;--x-color-error-text-active:#d9363e;--x-color-info:#1677ff;--x-color-info-rgb:22, 119, 255;--x-color-info-bg:#e6f4ff;--x-color-info-bg-hover:#bae0ff;--x-color-info-border:#91caff;--x-color-info-border-hover:#69b1ff;--x-color-info-hover:#69b1ff;--x-color-info-active:#0958d9;--x-color-info-text:#1677ff;--x-color-info-text-hover:#69b1ff;--x-color-info-text-active:#0958d9;--x-color-text:rgba(0, 0, 0, 0.88);--x-color-text-secondary:rgba(0, 0, 0, 0.65);--x-color-text-tertiary:rgba(0, 0, 0, 0.45);--x-color-text-quaternary:rgba(0, 0, 0, 0.25);--x-color-text-disabled:rgba(0, 0, 0, 0.25);--x-color-text-placeholder:rgba(0, 0, 0, 0.25);--x-color-text-heading:rgba(0, 0, 0, 0.88);--x-color-text-label:rgba(0, 0, 0, 0.65);--x-color-text-description:rgba(0, 0, 0, 0.45);--x-color-text-light-solid:#ffffff;--x-color-bg-container:#ffffff;--x-color-bg-elevated:#ffffff;--x-color-bg-layout:#f5f5f5;--x-color-bg-spotlight:rgba(0, 0, 0, 0.85);--x-color-bg-mask:rgba(0, 0, 0, 0.45);--x-color-bg-base:#ffffff;--x-color-bg-container-disabled:#f5f5f5;--x-color-bg-container-loading:rgba(255, 255, 255, 0.65);--x-color-white:#ffffff;--x-color-fill:rgba(0, 0, 0, 0.15);--x-color-fill-secondary:rgba(0, 0, 0, 0.06);--x-color-fill-tertiary:rgba(0, 0, 0, 0.04);--x-color-fill-quaternary:rgba(0, 0, 0, 0.02);--x-color-border:#d9d9d9;--x-color-border-secondary:#f0f0f0;--x-color-border-bg:#ffffff;--x-color-split:rgba(5, 5, 5, 0.06);--x-color-dark:#222428;--x-color-dark-rgb:34, 36, 40;--x-color-dark-contrast:#ffffff;--x-color-dark-contrast-rgb:255, 255, 255;--x-color-dark-shade:#1e2023;--x-color-dark-tint:#383a3e;--x-color-medium:#92949c;--x-color-medium-rgb:146, 148, 156;--x-color-medium-contrast:#ffffff;--x-color-medium-contrast-rgb:255, 255, 255;--x-color-medium-shade:#808289;--x-color-medium-tint:#9d9fa6;--x-color-light:#f4f5f8;--x-color-light-rgb:244, 245, 248;--x-color-light-contrast:#000000;--x-color-light-contrast-rgb:0, 0, 0;--x-color-light-shade:#d7d8da;--x-color-light-tint:#f5f6f9;--x-font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--x-font-family-code:"SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace;--x-font-size:14px;--x-font-size-sm:12px;--x-font-size-lg:16px;--x-font-size-xl:20px;--x-font-size-heading-1:38px;--x-font-size-heading-2:30px;--x-font-size-heading-3:24px;--x-font-size-heading-4:20px;--x-font-size-heading-5:16px;--x-line-height:1.5714285714285714;--x-line-height-lg:1.5;--x-line-height-sm:1.6666666666666667;--x-line-height-heading-1:1.2105263157894737;--x-line-height-heading-2:1.2666666666666666;--x-line-height-heading-3:1.3333333333333333;--x-line-height-heading-4:1.4;--x-line-height-heading-5:1.5;--x-font-weight-normal:400;--x-font-weight-medium:500;--x-font-weight-semibold:600;--x-font-weight-strong:600;--x-font-size-base:14px;--x-font-size-xxl:24px;--x-line-height-base:1.5714285714285714;--x-spacing-xxs:4px;--x-spacing-xs:8px;--x-spacing-sm:12px;--x-spacing-md:16px;--x-spacing-lg:20px;--x-spacing-xl:24px;--x-spacing-xxl:32px;--x-spacing-xxxl:48px;--x-margin-xxs:4px;--x-margin-xs:8px;--x-margin-sm:12px;--x-margin-md:16px;--x-margin-lg:24px;--x-margin-xl:32px;--x-margin-xxl:48px;--x-padding-xxs:4px;--x-padding-xs:8px;--x-padding-sm:12px;--x-padding-md:16px;--x-padding-lg:24px;--x-padding-content-horizontal-lg:24px;--x-padding-content-vertical-lg:12px;--x-padding-content-horizontal:16px;--x-padding-content-vertical:12px;--x-padding-content-horizontal-sm:16px;--x-padding-content-vertical-sm:8px;--x-border-radius:6px;--x-border-radius-xs:2px;--x-border-radius-sm:4px;--x-border-radius-lg:8px;--x-border-radius-xl:12px;--x-border-radius-outer:4px;--x-border-radius-base:6px;--x-border-width:1px;--x-border-width-base:1px;--x-shadow:0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 9px 28px 8px rgba(0, 0, 0, 0.05);--x-shadow-secondary:0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 9px 28px 8px rgba(0, 0, 0, 0.05);--x-shadow-tertiary:0 1px 2px 0 rgba(0, 0, 0, 0.03), 0 1px 6px -1px rgba(0, 0, 0, 0.02), 0 2px 4px 0 rgba(0, 0, 0, 0.02);--x-shadow-lg:0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 9px 28px 8px rgba(0, 0, 0, 0.05);--x-box-shadow:0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 9px 28px 8px rgba(0, 0, 0, 0.05);--x-box-shadow-secondary:0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 9px 28px 8px rgba(0, 0, 0, 0.05);--x-box-shadow-tertiary:0 1px 2px 0 rgba(0, 0, 0, 0.03), 0 1px 6px -1px rgba(0, 0, 0, 0.02), 0 2px 4px 0 rgba(0, 0, 0, 0.02);--x-box-shadow-popover-arrow:2px 2px 5px rgba(0, 0, 0, 0.05);--x-box-shadow-card:0 1px 2px -2px rgba(0, 0, 0, 0.16), 0 3px 6px 0 rgba(0, 0, 0, 0.12), 0 5px 12px 4px rgba(0, 0, 0, 0.09);--x-box-shadow-drawer-right:-6px 0 16px 0 rgba(0, 0, 0, 0.08), -3px 0 6px -4px rgba(0, 0, 0, 0.12), -9px 0 28px 8px rgba(0, 0, 0, 0.05);--x-box-shadow-drawer-left:6px 0 16px 0 rgba(0, 0, 0, 0.08), 3px 0 6px -4px rgba(0, 0, 0, 0.12), 9px 0 28px 8px rgba(0, 0, 0, 0.05);--x-box-shadow-drawer-up:0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 9px 28px 8px rgba(0, 0, 0, 0.05);--x-box-shadow-drawer-down:0 -6px 16px 0 rgba(0, 0, 0, 0.08), 0 -3px 6px -4px rgba(0, 0, 0, 0.12), 0 -9px 28px 8px rgba(0, 0, 0, 0.05);--x-box-shadow-tabs-overflow-left:inset 10px 0 8px -8px rgba(0, 0, 0, 0.08);--x-box-shadow-tabs-overflow-right:inset -10px 0 8px -8px rgba(0, 0, 0, 0.08);--x-box-shadow-tabs-overflow-top:inset 0 10px 8px -8px rgba(0, 0, 0, 0.08);--x-box-shadow-tabs-overflow-bottom:inset 0 -10px 8px -8px rgba(0, 0, 0, 0.08);--x-motion-duration-fast:0.1s;--x-motion-duration-mid:0.2s;--x-motion-duration-slow:0.3s;--x-motion-ease-in-out:cubic-bezier(0.645, 0.045, 0.355, 1);--x-motion-ease-out:cubic-bezier(0.215, 0.61, 0.355, 1);--x-motion-ease-in:cubic-bezier(0.55, 0.055, 0.675, 0.19);--x-motion-ease-out-back:cubic-bezier(0.12, 0.4, 0.29, 1.46);--x-motion-ease-in-back:cubic-bezier(0.71, -0.46, 0.88, 0.6);--x-motion-ease-in-out-circle:cubic-bezier(0.78, 0.14, 0.15, 0.86);--x-motion-ease-out-circle:cubic-bezier(0.08, 0.82, 0.17, 1);--x-motion-ease-in-circle:cubic-bezier(0.6, 0.04, 0.98, 0.34);--x-motion-ease-in-quint:cubic-bezier(0.755, 0.05, 0.855, 0.06);--x-motion-ease-out-quint:cubic-bezier(0.23, 1, 0.32, 1);--x-z-index-base:0;--x-z-index-popup-base:1000;--x-z-index-popup:1030;--x-z-index-affix:10;--x-z-index-modal:1000;--x-z-index-modal-mask:1000;--x-z-index-drawer:1000;--x-z-index-popover:1030;--x-z-index-dropdown:1050;--x-z-index-tooltip:1070;--x-z-index-notification:1080;--x-z-index-message:1090;--x-z-index-popconfirm:1060;--x-z-index-table-fixed:10;--x-opacity-loading:0.65;--x-opacity-image:1;--x-opacity-disabled:0.5;--x-control-height:32px;--x-control-height-xs:24px;--x-control-height-sm:24px;--x-control-height-lg:40px;--x-control-radio-size:16px;--x-control-checkbox-size:16px;--x-control-padding-horizontal:12px;--x-control-padding-horizontal-sm:8px;--x-control-outline-width:2px;--x-control-outline:rgba(5, 145, 255, 0.1);--x-control-item-bg-hover:rgba(0, 0, 0, 0.04);--x-control-item-bg-active:#e6f4ff;--x-control-item-bg-active-hover:#bae0ff;--x-control-item-bg-active-disabled:rgba(0, 0, 0, 0.15);--x-control-tmp-outline:rgba(0, 0, 0, 0.02);--x-color-yellow:#fadb14;--x-color-yellow-rgb:250, 219, 20;--x-font-family-base:var(--x-font-family);--x-color-link:#1677ff;--x-color-link-hover:#69b1ff;--x-color-link-active:#0958d9;--x-color-icon:rgba(0, 0, 0, 0.45);--x-color-icon-hover:rgba(0, 0, 0, 0.88);--x-color-highlight:#ff4d4f;--x-color-bg-text-hover:rgba(0, 0, 0, 0.06);--x-color-bg-text-active:rgba(0, 0, 0, 0.15);--x-screen-xs:480px;--x-screen-xs-min:480px;--x-screen-xs-max:575px;--x-screen-sm:576px;--x-screen-sm-min:576px;--x-screen-sm-max:767px;--x-screen-md:768px;--x-screen-md-min:768px;--x-screen-md-max:991px;--x-screen-lg:992px;--x-screen-lg-min:992px;--x-screen-lg-max:1199px;--x-screen-xl:1200px;--x-screen-xl-min:1200px;--x-screen-xl-max:1599px;--x-screen-xxl:1600px;--x-screen-xxl-min:1600px;--x-color-fill-content:rgba(0, 0, 0, 0.06);--x-color-fill-content-hover:rgba(0, 0, 0, 0.15);--x-color-fill-alter:rgba(0, 0, 0, 0.02);--x-scrollbar-width:12px;--x-scrollbar-track-bg:rgba(0, 0, 0, 0.04);--x-scrollbar-thumb-bg:rgba(0, 0, 0, 0.25);--x-scrollbar-thumb-bg-hover:rgba(0, 0, 0, 0.35);--x-menu-dark-bg:#001529;--x-menu-dark-item-bg:#001529;--x-menu-dark-popup-bg:#001529;--x-menu-dark-submenu-item-bg:#000c17}:host{display:inline-block;font-size:14px;line-height:1.5715}:host(.x-color-picker-disabled){cursor:not-allowed}.x-color-picker-trigger{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;min-width:44px;height:32px;padding:4px 8px;background-color:#fff;border:1px solid #d9d9d9;border-radius:6px;cursor:pointer;-webkit-transition:all 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);transition:all 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);gap:8px}.x-color-picker-trigger:hover{border-color:#4096ff}.x-color-picker-trigger:focus-visible{border-color:#1677ff;outline:none;-webkit-box-shadow:0 0 0 2px rgba(22, 119, 255, 0.1);box-shadow:0 0 0 2px rgba(22, 119, 255, 0.1)}:host(.x-color-picker-sm) .x-color-picker-trigger{height:24px;padding:0 4px;font-size:12px;border-radius:4px}:host(.x-color-picker-sm) .x-color-picker-color-block{width:16px;height:16px}:host(.x-color-picker-lg) .x-color-picker-trigger{height:40px;padding:4px 12px}:host(.x-color-picker-lg) .x-color-picker-color-block{width:28px;height:28px}:host(.x-color-picker-disabled) .x-color-picker-trigger{background-color:#f5f5f5;border-color:#d9d9d9;cursor:not-allowed}:host(.x-color-picker-disabled) .x-color-picker-trigger:hover{border-color:#d9d9d9}:host(.x-color-picker-disabled) .x-color-picker-text{color:rgba(0, 0, 0, 0.25)}.x-color-picker-color-block{position:relative;width:24px;height:24px;border-radius:4px;overflow:hidden;-webkit-box-shadow:inset 0 0 1px 0 rgba(0, 0, 0, 0.25);box-shadow:inset 0 0 1px 0 rgba(0, 0, 0, 0.25)}.x-color-picker-color-block::before{content:"";position:absolute;inset:0;background-image:conic-gradient(rgba(0, 0, 0, 0.06) 25%, transparent 25%, transparent 50%, rgba(0, 0, 0, 0.06) 50%, rgba(0, 0, 0, 0.06) 75%, transparent 75%);background-size:8px 8px;z-index:0}.x-color-picker-color-block-inner{position:relative;width:100%;height:100%;border-radius:inherit;z-index:1}.x-color-picker-color-block-cleared .x-color-picker-color-block-inner::after{content:"";position:absolute;top:50%;left:-2px;right:-2px;height:2px;background:#ff4d4f;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.x-color-picker-text{color:rgba(0, 0, 0, 0.88);font-size:inherit;white-space:nowrap}.x-color-picker-arrow{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;color:rgba(0, 0, 0, 0.45);font-size:12px;-webkit-transition:-webkit-transform 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);transition:-webkit-transform 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);transition:transform 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);transition:transform 0.2s cubic-bezier(0.645, 0.045, 0.355, 1), -webkit-transform 0.2s cubic-bezier(0.645, 0.045, 0.355, 1)}.x-color-picker-arrow.x-color-picker-arrow-open{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.x-color-picker-clear{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:16px;height:16px;color:rgba(0, 0, 0, 0.45);font-size:12px;cursor:pointer;-webkit-transition:color 0.2s;transition:color 0.2s}.x-color-picker-clear:hover{color:rgba(0, 0, 0, 0.88)}`;
9
-
10
- const XColorPicker = class {
11
- constructor(hostRef) {
12
- registerInstance(this, hostRef);
13
- this.xChange = createEvent(this, "xChange", 7);
14
- this.xChangeComplete = createEvent(this, "xChangeComplete", 7);
15
- this.xFormatChange = createEvent(this, "xFormatChange", 7);
16
- this.xOpenChange = createEvent(this, "xOpenChange", 7);
17
- this.xClear = createEvent(this, "xClear", 7);
18
- }
19
- get el() { return getElement(this); }
20
- // ==================== Props ====================
21
- /**
22
- * Allow clearing color selected
23
- * @default false
24
- * @example
25
- * <x-color-picker allowClear></x-color-picker>
26
- */
27
- allowClear = false;
28
- /**
29
- * Default value of color
30
- * @example
31
- * <x-color-picker defaultValue="#ff4d4f"></x-color-picker>
32
- */
33
- defaultValue;
34
- /**
35
- * Default format of color
36
- * @default 'hex'
37
- * @example
38
- * <x-color-picker defaultFormat="rgb"></x-color-picker>
39
- */
40
- defaultFormat = 'hex';
41
- /**
42
- * Disable ColorPicker
43
- * @default false
44
- * @example
45
- * <x-color-picker disabled></x-color-picker>
46
- */
47
- disabled = false;
48
- /**
49
- * Disable Alpha slider
50
- * @default false
51
- * @example
52
- * <x-color-picker disabledAlpha></x-color-picker>
53
- */
54
- disabledAlpha = false;
55
- /**
56
- * Disable format selector
57
- * @default false
58
- * @example
59
- * <x-color-picker disabledFormat></x-color-picker>
60
- */
61
- disabledFormat = false;
62
- /**
63
- * Format of color
64
- * @example
65
- * <x-color-picker format="hsb"></x-color-picker>
66
- */
67
- format;
68
- /**
69
- * Whether to show popup
70
- * @example
71
- * <x-color-picker open></x-color-picker>
72
- */
73
- open;
74
- /**
75
- * Preset colors
76
- * @example
77
- * <x-color-picker presets={[{ label: 'Primary', colors: ['#1677ff'] }]}></x-color-picker>
78
- */
79
- presets;
80
- /**
81
- * Placement of popup
82
- * @default 'bottomLeft'
83
- * @example
84
- * <x-color-picker placement="topLeft"></x-color-picker>
85
- */
86
- placement = 'bottomLeft';
87
- /**
88
- * Show color text
89
- * @default false
90
- * @example
91
- * <x-color-picker showText></x-color-picker>
92
- */
93
- showText = false;
94
- /**
95
- * Size of trigger
96
- * @default 'middle'
97
- * @example
98
- * <x-color-picker size="small"></x-color-picker>
99
- */
100
- size = 'middle';
101
- /**
102
- * Trigger mode
103
- * @default 'click'
104
- * @example
105
- * <x-color-picker trigger="hover"></x-color-picker>
106
- */
107
- trigger = 'click';
108
- /**
109
- * Value of color
110
- * @example
111
- * <x-color-picker value="#1677ff"></x-color-picker>
112
- */
113
- value;
114
- /**
115
- * Custom class names
116
- * @example
117
- * <x-color-picker classNames={{ root: 'my-color-picker' }}></x-color-picker>
118
- */
119
- classNames;
120
- /**
121
- * Custom styles
122
- * @example
123
- * <x-color-picker styles={{ root: { minWidth: '120px' } }}></x-color-picker>
124
- */
125
- styles;
126
- // ==================== Events ====================
127
- /**
128
- * Callback when value is changed
129
- * @example
130
- * <x-color-picker onXChange={(ev) => console.log(ev.detail)}></x-color-picker>
131
- */
132
- xChange;
133
- /**
134
- * Called when color pick ends
135
- * @example
136
- * <x-color-picker onXChangeComplete={(ev) => console.log(ev.detail)}></x-color-picker>
137
- */
138
- xChangeComplete;
139
- /**
140
- * Callback when format is changed
141
- * @example
142
- * <x-color-picker onXFormatChange={(ev) => console.log(ev.detail)}></x-color-picker>
143
- */
144
- xFormatChange;
145
- /**
146
- * Callback when open is changed
147
- * @example
148
- * <x-color-picker onXOpenChange={(ev) => console.log(ev.detail)}></x-color-picker>
149
- */
150
- xOpenChange;
151
- /**
152
- * Called when clear
153
- * @example
154
- * <x-color-picker onXClear={() => {}}></x-color-picker>
155
- */
156
- xClear;
157
- // ==================== State ====================
158
- /**
159
- * Internal open state for uncontrolled mode.
160
- */
161
- internalOpen = false;
162
- /**
163
- * Internal color format.
164
- */
165
- internalFormat = 'hex';
166
- /**
167
- * Internal color object.
168
- */
169
- internalColor = null;
170
- /**
171
- * Cleared state flag.
172
- */
173
- isCleared = false;
174
- // ==================== Private Properties ====================
175
- /**
176
- * Trigger element reference.
177
- */
178
- triggerRef;
179
- /**
180
- * Portal instance for panel.
181
- */
182
- portalInstance = null;
183
- /**
184
- * Panel element reference.
185
- */
186
- panelElement = null;
187
- /**
188
- * Dragging flag for hover behavior.
189
- */
190
- isDragging = false;
191
- // ==================== Lifecycle ====================
192
- /**
193
- * Initialize format and color.
194
- * @returns void
195
- */
196
- componentWillLoad() {
197
- // Initialize format
198
- this.internalFormat = this.format ?? this.defaultFormat;
199
- // Initialize color
200
- const initialValue = this.value ?? this.defaultValue ?? '#1677ff';
201
- if (typeof initialValue === 'string') {
202
- this.internalColor = createColor(initialValue);
203
- }
204
- }
205
- /**
206
- * Cleanup portal on disconnect.
207
- * @returns void
208
- */
209
- disconnectedCallback() {
210
- this.destroyPortal();
211
- }
212
- // ==================== Watchers ====================
213
- /**
214
- * Sync internal color when value changes.
215
- * @param newValue - New color value.
216
- * @returns void
217
- */
218
- handleValueChange(newValue) {
219
- if (typeof newValue === 'string') {
220
- this.internalColor = createColor(newValue);
221
- this.isCleared = false;
222
- }
223
- }
224
- /**
225
- * Sync format when format prop changes.
226
- * @param newFormat - New format.
227
- * @returns void
228
- */
229
- handleFormatChange(newFormat) {
230
- if (newFormat) {
231
- this.internalFormat = newFormat;
232
- }
233
- }
234
- /**
235
- * Sync open state when controlled prop changes.
236
- * @param newOpen - Open state.
237
- * @returns void
238
- */
239
- handleOpenPropChange(newOpen) {
240
- if (newOpen !== undefined) {
241
- this.setOpen(newOpen);
242
- }
243
- }
244
- // ==================== Listeners ====================
245
- /**
246
- * Close panel on outside click.
247
- *
248
- * Flow:
249
- * 1. Checks if panel is open.
250
- * 2. Determines click target.
251
- * 3. Checks if click is inside the trigger element or the portal panel.
252
- * 4. If outside both, closes the panel by calling \`setOpen(false)\`.
253
- *
254
- * @param e - Mouse event.
255
- * @returns void
256
- */
257
- handleDocumentClick(e) {
258
- if (!this.internalOpen)
259
- return;
260
- const path = e.composedPath();
261
- const isInsideTrigger = path.includes(this.el);
262
- const portalEl = this.portalInstance?.getElement();
263
- const isInsidePanel = portalEl ? path.includes(portalEl) : false;
264
- if (!isInsideTrigger && !isInsidePanel) {
265
- this.setOpen(false);
266
- }
267
- }
268
- /**
269
- * Close panel on Escape key.
270
- * @param e - Keyboard event.
271
- * @returns void
272
- */
273
- handleKeydown(e) {
274
- if (e.key === 'Escape' && this.internalOpen) {
275
- this.setOpen(false);
276
- }
277
- }
278
- // ==================== Public Methods ====================
279
- /**
280
- * Get current color object
281
- * @returns Promise<Color | null>
282
- * @example
283
- * const color = await el.getColor()
284
- */
285
- async getColor() {
286
- return this.internalColor;
287
- }
288
- // ==================== Private Methods ====================
289
- /**
290
- * Update open state and portal.
291
- *
292
- * Flow:
293
- * 1. Checks if disabled; returns if true.
294
- * 2. Updates `internalOpen` state.
295
- * 3. Emits `xOpenChange` event.
296
- * 4. Calls `updatePortal` (if opening) or `destroyPortal` (if closing).
297
- *
298
- * @param open - Open state.
299
- * @returns void
300
- */
301
- setOpen(open) {
302
- if (this.disabled)
303
- return;
304
- this.internalOpen = open;
305
- this.xOpenChange.emit({ open });
306
- if (open) {
307
- this.updatePortal();
308
- }
309
- else {
310
- this.destroyPortal();
311
- }
312
- }
313
- /**
314
- * Handle trigger click.
315
- * @returns void
316
- */
317
- handleTriggerClick = () => {
318
- if (this.trigger === 'click') {
319
- this.setOpen(!this.internalOpen);
320
- }
321
- };
322
- /**
323
- * Handle trigger mouse enter.
324
- * @returns void
325
- */
326
- handleTriggerMouseEnter = () => {
327
- if (this.trigger === 'hover') {
328
- this.setOpen(true);
329
- }
330
- };
331
- /**
332
- * Handle trigger mouse leave.
333
- * @returns void
334
- */
335
- handleTriggerMouseLeave = () => {
336
- if (this.trigger === 'hover' && !this.isDragging) {
337
- const portalEl = this.portalInstance?.getElement();
338
- setTimeout(() => {
339
- if (!portalEl?.matches(':hover') && !this.el.matches(':hover')) {
340
- this.setOpen(false);
341
- }
342
- }, 100);
343
- }
344
- };
345
- /**
346
- * Handle clear action.
347
- * @param e - Event.
348
- * @returns void
349
- */
350
- handleClear = (e) => {
351
- e.stopPropagation();
352
- this.isCleared = true;
353
- this.xClear.emit();
354
- };
355
- // ==================== Portal Management ====================
356
- /**
357
- * Build color picker panel element.
358
- * @returns HTMLElement
359
- */
360
- buildPanelElement() {
361
- // Create x-color-picker-panel component
362
- const panelEl = document.createElement('x-color-picker-panel');
363
- // Set props on the panel element
364
- panelEl.color = this.internalColor;
365
- panelEl.format = this.internalFormat;
366
- panelEl.disabledAlpha = this.disabledAlpha;
367
- panelEl.disabledFormat = this.disabledFormat;
368
- panelEl.presets = this.presets;
369
- panelEl.allowClear = this.allowClear;
370
- // Apply custom class and styles
371
- if (this.classNames?.popup) {
372
- panelEl.classList.add(...this.classNames.popup.split(' '));
373
- }
374
- if (this.styles?.popup) {
375
- Object.assign(panelEl.style, this.styles.popup);
376
- }
377
- // Bind events
378
- panelEl.addEventListener('colorChange', (e) => {
379
- this.handleColorChange(e.detail);
380
- });
381
- panelEl.addEventListener('colorChangeComplete', (e) => {
382
- this.xChangeComplete.emit(e.detail);
383
- this.isDragging = false;
384
- });
385
- panelEl.addEventListener('formatChange', (e) => {
386
- this.internalFormat = e.detail;
387
- this.xFormatChange.emit({ format: e.detail });
388
- });
389
- panelEl.addEventListener('colorClear', () => {
390
- this.isCleared = true;
391
- this.xClear.emit();
392
- this.setOpen(false);
393
- });
394
- // Track dragging state
395
- panelEl.addEventListener('mousedown', () => {
396
- this.isDragging = true;
397
- });
398
- return panelEl;
399
- }
400
- /**
401
- * Get trigger element for portal target.
402
- * @returns HTMLElement
403
- */
404
- getWrapperEl() {
405
- return this.triggerRef;
406
- }
407
- /**
408
- * Create or update portal for panel.
409
- *
410
- * Flow:
411
- * 1. Checks if `internalOpen` is true.
412
- * 2. Builds or reuses the panel element.
413
- * 3. Uses `PortalController` to render the panel:
414
- * - Creates new instance if none exists.
415
- * - Updates existing instance with new content/position.
416
- * 4. Requests animation frame to ensure position update.
417
- *
418
- * @returns void
419
- */
420
- updatePortal() {
421
- if (!this.internalOpen) {
422
- this.destroyPortal();
423
- return;
424
- }
425
- this.panelElement = this.buildPanelElement();
426
- if (!this.portalInstance) {
427
- this.portalInstance = PortalController.create({
428
- open: true,
429
- target: this.getWrapperEl(),
430
- placement: this.placement,
431
- content: this.panelElement,
432
- zIndex: 1050,
433
- });
434
- }
435
- else {
436
- this.portalInstance.update({
437
- open: true,
438
- target: this.getWrapperEl(),
439
- placement: this.placement,
440
- content: this.panelElement,
441
- });
442
- }
443
- // Update position after render
444
- requestAnimationFrame(() => {
445
- if (this.portalInstance) {
446
- this.portalInstance.update({});
447
- }
448
- });
449
- }
450
- /**
451
- * Destroy portal instance if present.
452
- * @returns void
453
- */
454
- destroyPortal() {
455
- if (this.portalInstance) {
456
- this.portalInstance.destroy();
457
- this.portalInstance = null;
458
- this.panelElement = null;
459
- }
460
- }
461
- /**
462
- * Handle color change from panel.
463
- * @param color - New color.
464
- * @returns void
465
- */
466
- handleColorChange(color) {
467
- this.internalColor = color;
468
- this.isCleared = false;
469
- this.value = color.toHexString();
470
- this.xChange.emit({
471
- color,
472
- css: color.toCssString(),
473
- });
474
- // Update panel element with new color
475
- if (this.panelElement) {
476
- this.panelElement.color = color;
477
- }
478
- }
479
- // ==================== Render ====================
480
- /**
481
- * Get display text for current color.
482
- * @returns string
483
- */
484
- getDisplayText() {
485
- if (!this.internalColor || this.isCleared)
486
- return '';
487
- if (typeof this.showText === 'function') {
488
- return this.showText(this.internalColor);
489
- }
490
- switch (this.internalFormat) {
491
- case 'rgb':
492
- return this.internalColor.toRgbString();
493
- case 'hsb':
494
- return this.internalColor.toHsbString();
495
- default:
496
- return this.internalColor.toHexString().toUpperCase();
497
- }
498
- }
499
- /**
500
- * Render down arrow icon.
501
- * @returns JSX.Element
502
- */
503
- renderDownArrow() {
504
- return (
505
- // <svg viewBox="64 64 896 896" focusable="false" width="1em" height="1em" fill="currentColor">
506
- // <path d="M884 256h-75c-5.1 0-9.9 2.5-12.9 6.6L512 654.2 227.9 262.6c-3-4.1-7.8-6.6-12.9-6.6h-75c-6.5 0-10.3 7.4-6.5 12.7l352.6 486.1c12.8 17.6 39 17.6 51.7 0l352.6-486.1c3.9-5.3.1-12.7-6.4-12.7z" />
507
- // </svg>
508
- h("x-icon", { name: getIcon('arrowDown') }));
509
- }
510
- /**
511
- * Render clear icon.
512
- * @returns JSX.Element
513
- */
514
- renderCloseIcon() {
515
- return (
516
- // <svg viewBox="64 64 896 896" focusable="false" width="1em" height="1em" fill="currentColor">
517
- // <path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm165.4 618.2l-66-.3L512 563.4l-99.3 118.4-66.1.3c-4.4 0-8-3.5-8-8 0-1.9.7-3.7 1.9-5.2l130.1-155L340.5 359a8.32 8.32 0 01-1.9-5.2c0-4.4 3.6-8 8-8l66.1.3L512 464.6l99.3-118.4 66-.3c4.4 0 8 3.5 8 8 0 1.9-.7 3.7-1.9 5.2L553.5 514l130 155c1.2 1.5 1.9 3.3 1.9 5.2 0 4.4-3.6 8-8 8z" />
518
- // </svg>
519
- h("x-icon", { name: getIcon('clear') }));
520
- }
521
- /**
522
- * Render trigger and optional text.
523
- * @returns JSX.Element
524
- */
525
- render() {
526
- const hostClasses = {
527
- 'x-color-picker': true,
528
- 'x-color-picker-sm': this.size === 'small',
529
- 'x-color-picker-lg': this.size === 'large',
530
- 'x-color-picker-disabled': this.disabled,
531
- [this.classNames?.root ?? '']: !!this.classNames?.root,
532
- };
533
- const colorValue = this.internalColor && !this.isCleared
534
- ? this.internalColor.toCssString()
535
- : 'transparent';
536
- return (h(Host, { key: 'f8f38365b7fd8c36aac0d9dc1799fc568516fea9', class: hostClasses, style: this.styles?.root }, h("div", { key: '8df150a9ac5477f34c21ef391c6a110a9518127e', class: "x-color-picker-trigger", ref: (el) => (this.triggerRef = el), onClick: this.handleTriggerClick, onMouseEnter: this.handleTriggerMouseEnter, onMouseLeave: this.handleTriggerMouseLeave, tabindex: this.disabled ? -1 : 0, role: "button", "aria-haspopup": "true", "aria-expanded": this.internalOpen ? 'true' : 'false' }, h("slot", { key: '77c612bde00f68546e52eb30351f9e26c724bbd8' }, h("div", { key: '19ddcbfc6acea0c985d263abeae54facb1878856', class: {
537
- 'x-color-picker-color-block': true,
538
- 'x-color-picker-color-block-cleared': this.isCleared,
539
- } }, h("div", { key: 'd6223ba45365f694a1b760fc0779273903a3e080', class: "x-color-picker-color-block-inner", style: { background: colorValue } })), this.showText && (h("span", { key: 'b80debccfafa45df16aeabedfafcc9e0721a3a4d', class: "x-color-picker-text" }, this.getDisplayText())), this.allowClear && !this.isCleared && this.internalColor && (h("span", { key: '8caa5439b9ad31915420be95deb94eff604bc411', class: "x-color-picker-clear", onClick: this.handleClear }, this.renderCloseIcon())), h("span", { key: 'ed22036212268e812ebfe9869918cd31fcebaaef', class: {
540
- 'x-color-picker-arrow': true,
541
- 'x-color-picker-arrow-open': this.internalOpen,
542
- } }, this.renderDownArrow())))));
543
- }
544
- static get watchers() { return {
545
- "value": [{
546
- "handleValueChange": 0
547
- }],
548
- "format": [{
549
- "handleFormatChange": 0
550
- }],
551
- "open": [{
552
- "handleOpenPropChange": 0
553
- }]
554
- }; }
555
- };
556
- XColorPicker.style = xColorPickerCss();
557
-
558
- const xDividerCss = () => `@charset "UTF-8";:root{--x-color-primary:#1677ff;--x-color-primary-rgb:22, 119, 255;--x-color-primary-contrast:#ffffff;--x-color-primary-contrast-rgb:255, 255, 255;--x-color-primary-shade:#0958d9;--x-color-primary-tint:#4096ff;--x-color-primary-bg:#e6f4ff;--x-color-primary-bg-hover:#bae0ff;--x-color-primary-border:#91caff;--x-color-primary-border-hover:#69b1ff;--x-color-primary-hover:#4096ff;--x-color-primary-active:#0958d9;--x-color-primary-text:#1677ff;--x-color-primary-text-hover:#4096ff;--x-color-primary-text-active:#0958d9;--x-color-secondary:#3dc2ff;--x-color-secondary-rgb:61, 194, 255;--x-color-secondary-contrast:#ffffff;--x-color-secondary-contrast-rgb:255, 255, 255;--x-color-secondary-shade:#36abe0;--x-color-secondary-tint:#50c8ff;--x-color-success:#52c41a;--x-color-success-rgb:82, 196, 26;--x-color-success-contrast:#ffffff;--x-color-success-contrast-rgb:255, 255, 255;--x-color-success-shade:#389e0d;--x-color-success-tint:#73d13d;--x-color-success-bg:#f6ffed;--x-color-success-bg-hover:#d9f7be;--x-color-success-border:#b7eb8f;--x-color-success-border-hover:#95de64;--x-color-success-hover:#73d13d;--x-color-success-active:#389e0d;--x-color-success-text:#52c41a;--x-color-success-text-hover:#73d13d;--x-color-success-text-active:#389e0d;--x-color-warning:#faad14;--x-color-warning-rgb:250, 173, 20;--x-color-warning-contrast:#000000;--x-color-warning-contrast-rgb:0, 0, 0;--x-color-warning-shade:#d48806;--x-color-warning-tint:#ffc53d;--x-color-warning-bg:#fffbe6;--x-color-warning-bg-hover:#fff1b8;--x-color-warning-border:#ffe58f;--x-color-warning-border-hover:#ffd666;--x-color-warning-hover:#ffc53d;--x-color-warning-active:#d48806;--x-color-warning-text:#faad14;--x-color-warning-text-hover:#ffc53d;--x-color-warning-text-active:#d48806;--x-color-danger:#ff4d4f;--x-color-danger-rgb:255, 77, 79;--x-color-danger-contrast:#ffffff;--x-color-danger-contrast-rgb:255, 255, 255;--x-color-danger-shade:#cf1322;--x-color-danger-tint:#ff7875;--x-color-error:#ff4d4f;--x-color-error-rgb:255, 77, 79;--x-color-error-bg:#fff2f0;--x-color-error-bg-hover:#ffccc7;--x-color-error-border:#ffa39e;--x-color-error-border-hover:#ff7875;--x-color-error-hover:#ff7875;--x-color-error-active:#d9363e;--x-color-error-text:#ff4d4f;--x-color-error-text-hover:#ff7875;--x-color-error-text-active:#d9363e;--x-color-info:#1677ff;--x-color-info-rgb:22, 119, 255;--x-color-info-bg:#e6f4ff;--x-color-info-bg-hover:#bae0ff;--x-color-info-border:#91caff;--x-color-info-border-hover:#69b1ff;--x-color-info-hover:#69b1ff;--x-color-info-active:#0958d9;--x-color-info-text:#1677ff;--x-color-info-text-hover:#69b1ff;--x-color-info-text-active:#0958d9;--x-color-text:rgba(0, 0, 0, 0.88);--x-color-text-secondary:rgba(0, 0, 0, 0.65);--x-color-text-tertiary:rgba(0, 0, 0, 0.45);--x-color-text-quaternary:rgba(0, 0, 0, 0.25);--x-color-text-disabled:rgba(0, 0, 0, 0.25);--x-color-text-placeholder:rgba(0, 0, 0, 0.25);--x-color-text-heading:rgba(0, 0, 0, 0.88);--x-color-text-label:rgba(0, 0, 0, 0.65);--x-color-text-description:rgba(0, 0, 0, 0.45);--x-color-text-light-solid:#ffffff;--x-color-bg-container:#ffffff;--x-color-bg-elevated:#ffffff;--x-color-bg-layout:#f5f5f5;--x-color-bg-spotlight:rgba(0, 0, 0, 0.85);--x-color-bg-mask:rgba(0, 0, 0, 0.45);--x-color-bg-base:#ffffff;--x-color-bg-container-disabled:#f5f5f5;--x-color-bg-container-loading:rgba(255, 255, 255, 0.65);--x-color-white:#ffffff;--x-color-fill:rgba(0, 0, 0, 0.15);--x-color-fill-secondary:rgba(0, 0, 0, 0.06);--x-color-fill-tertiary:rgba(0, 0, 0, 0.04);--x-color-fill-quaternary:rgba(0, 0, 0, 0.02);--x-color-border:#d9d9d9;--x-color-border-secondary:#f0f0f0;--x-color-border-bg:#ffffff;--x-color-split:rgba(5, 5, 5, 0.06);--x-color-dark:#222428;--x-color-dark-rgb:34, 36, 40;--x-color-dark-contrast:#ffffff;--x-color-dark-contrast-rgb:255, 255, 255;--x-color-dark-shade:#1e2023;--x-color-dark-tint:#383a3e;--x-color-medium:#92949c;--x-color-medium-rgb:146, 148, 156;--x-color-medium-contrast:#ffffff;--x-color-medium-contrast-rgb:255, 255, 255;--x-color-medium-shade:#808289;--x-color-medium-tint:#9d9fa6;--x-color-light:#f4f5f8;--x-color-light-rgb:244, 245, 248;--x-color-light-contrast:#000000;--x-color-light-contrast-rgb:0, 0, 0;--x-color-light-shade:#d7d8da;--x-color-light-tint:#f5f6f9;--x-font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--x-font-family-code:"SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace;--x-font-size:14px;--x-font-size-sm:12px;--x-font-size-lg:16px;--x-font-size-xl:20px;--x-font-size-heading-1:38px;--x-font-size-heading-2:30px;--x-font-size-heading-3:24px;--x-font-size-heading-4:20px;--x-font-size-heading-5:16px;--x-line-height:1.5714285714285714;--x-line-height-lg:1.5;--x-line-height-sm:1.6666666666666667;--x-line-height-heading-1:1.2105263157894737;--x-line-height-heading-2:1.2666666666666666;--x-line-height-heading-3:1.3333333333333333;--x-line-height-heading-4:1.4;--x-line-height-heading-5:1.5;--x-font-weight-normal:400;--x-font-weight-medium:500;--x-font-weight-semibold:600;--x-font-weight-strong:600;--x-font-size-base:14px;--x-font-size-xxl:24px;--x-line-height-base:1.5714285714285714;--x-spacing-xxs:4px;--x-spacing-xs:8px;--x-spacing-sm:12px;--x-spacing-md:16px;--x-spacing-lg:20px;--x-spacing-xl:24px;--x-spacing-xxl:32px;--x-spacing-xxxl:48px;--x-margin-xxs:4px;--x-margin-xs:8px;--x-margin-sm:12px;--x-margin-md:16px;--x-margin-lg:24px;--x-margin-xl:32px;--x-margin-xxl:48px;--x-padding-xxs:4px;--x-padding-xs:8px;--x-padding-sm:12px;--x-padding-md:16px;--x-padding-lg:24px;--x-padding-content-horizontal-lg:24px;--x-padding-content-vertical-lg:12px;--x-padding-content-horizontal:16px;--x-padding-content-vertical:12px;--x-padding-content-horizontal-sm:16px;--x-padding-content-vertical-sm:8px;--x-border-radius:6px;--x-border-radius-xs:2px;--x-border-radius-sm:4px;--x-border-radius-lg:8px;--x-border-radius-xl:12px;--x-border-radius-outer:4px;--x-border-radius-base:6px;--x-border-width:1px;--x-border-width-base:1px;--x-shadow:0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 9px 28px 8px rgba(0, 0, 0, 0.05);--x-shadow-secondary:0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 9px 28px 8px rgba(0, 0, 0, 0.05);--x-shadow-tertiary:0 1px 2px 0 rgba(0, 0, 0, 0.03), 0 1px 6px -1px rgba(0, 0, 0, 0.02), 0 2px 4px 0 rgba(0, 0, 0, 0.02);--x-shadow-lg:0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 9px 28px 8px rgba(0, 0, 0, 0.05);--x-box-shadow:0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 9px 28px 8px rgba(0, 0, 0, 0.05);--x-box-shadow-secondary:0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 9px 28px 8px rgba(0, 0, 0, 0.05);--x-box-shadow-tertiary:0 1px 2px 0 rgba(0, 0, 0, 0.03), 0 1px 6px -1px rgba(0, 0, 0, 0.02), 0 2px 4px 0 rgba(0, 0, 0, 0.02);--x-box-shadow-popover-arrow:2px 2px 5px rgba(0, 0, 0, 0.05);--x-box-shadow-card:0 1px 2px -2px rgba(0, 0, 0, 0.16), 0 3px 6px 0 rgba(0, 0, 0, 0.12), 0 5px 12px 4px rgba(0, 0, 0, 0.09);--x-box-shadow-drawer-right:-6px 0 16px 0 rgba(0, 0, 0, 0.08), -3px 0 6px -4px rgba(0, 0, 0, 0.12), -9px 0 28px 8px rgba(0, 0, 0, 0.05);--x-box-shadow-drawer-left:6px 0 16px 0 rgba(0, 0, 0, 0.08), 3px 0 6px -4px rgba(0, 0, 0, 0.12), 9px 0 28px 8px rgba(0, 0, 0, 0.05);--x-box-shadow-drawer-up:0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 9px 28px 8px rgba(0, 0, 0, 0.05);--x-box-shadow-drawer-down:0 -6px 16px 0 rgba(0, 0, 0, 0.08), 0 -3px 6px -4px rgba(0, 0, 0, 0.12), 0 -9px 28px 8px rgba(0, 0, 0, 0.05);--x-box-shadow-tabs-overflow-left:inset 10px 0 8px -8px rgba(0, 0, 0, 0.08);--x-box-shadow-tabs-overflow-right:inset -10px 0 8px -8px rgba(0, 0, 0, 0.08);--x-box-shadow-tabs-overflow-top:inset 0 10px 8px -8px rgba(0, 0, 0, 0.08);--x-box-shadow-tabs-overflow-bottom:inset 0 -10px 8px -8px rgba(0, 0, 0, 0.08);--x-motion-duration-fast:0.1s;--x-motion-duration-mid:0.2s;--x-motion-duration-slow:0.3s;--x-motion-ease-in-out:cubic-bezier(0.645, 0.045, 0.355, 1);--x-motion-ease-out:cubic-bezier(0.215, 0.61, 0.355, 1);--x-motion-ease-in:cubic-bezier(0.55, 0.055, 0.675, 0.19);--x-motion-ease-out-back:cubic-bezier(0.12, 0.4, 0.29, 1.46);--x-motion-ease-in-back:cubic-bezier(0.71, -0.46, 0.88, 0.6);--x-motion-ease-in-out-circle:cubic-bezier(0.78, 0.14, 0.15, 0.86);--x-motion-ease-out-circle:cubic-bezier(0.08, 0.82, 0.17, 1);--x-motion-ease-in-circle:cubic-bezier(0.6, 0.04, 0.98, 0.34);--x-motion-ease-in-quint:cubic-bezier(0.755, 0.05, 0.855, 0.06);--x-motion-ease-out-quint:cubic-bezier(0.23, 1, 0.32, 1);--x-z-index-base:0;--x-z-index-popup-base:1000;--x-z-index-popup:1030;--x-z-index-affix:10;--x-z-index-modal:1000;--x-z-index-modal-mask:1000;--x-z-index-drawer:1000;--x-z-index-popover:1030;--x-z-index-dropdown:1050;--x-z-index-tooltip:1070;--x-z-index-notification:1080;--x-z-index-message:1090;--x-z-index-popconfirm:1060;--x-z-index-table-fixed:10;--x-opacity-loading:0.65;--x-opacity-image:1;--x-opacity-disabled:0.5;--x-control-height:32px;--x-control-height-xs:24px;--x-control-height-sm:24px;--x-control-height-lg:40px;--x-control-radio-size:16px;--x-control-checkbox-size:16px;--x-control-padding-horizontal:12px;--x-control-padding-horizontal-sm:8px;--x-control-outline-width:2px;--x-control-outline:rgba(5, 145, 255, 0.1);--x-control-item-bg-hover:rgba(0, 0, 0, 0.04);--x-control-item-bg-active:#e6f4ff;--x-control-item-bg-active-hover:#bae0ff;--x-control-item-bg-active-disabled:rgba(0, 0, 0, 0.15);--x-control-tmp-outline:rgba(0, 0, 0, 0.02);--x-color-yellow:#fadb14;--x-color-yellow-rgb:250, 219, 20;--x-font-family-base:var(--x-font-family);--x-color-link:#1677ff;--x-color-link-hover:#69b1ff;--x-color-link-active:#0958d9;--x-color-icon:rgba(0, 0, 0, 0.45);--x-color-icon-hover:rgba(0, 0, 0, 0.88);--x-color-highlight:#ff4d4f;--x-color-bg-text-hover:rgba(0, 0, 0, 0.06);--x-color-bg-text-active:rgba(0, 0, 0, 0.15);--x-screen-xs:480px;--x-screen-xs-min:480px;--x-screen-xs-max:575px;--x-screen-sm:576px;--x-screen-sm-min:576px;--x-screen-sm-max:767px;--x-screen-md:768px;--x-screen-md-min:768px;--x-screen-md-max:991px;--x-screen-lg:992px;--x-screen-lg-min:992px;--x-screen-lg-max:1199px;--x-screen-xl:1200px;--x-screen-xl-min:1200px;--x-screen-xl-max:1599px;--x-screen-xxl:1600px;--x-screen-xxl-min:1600px;--x-color-fill-content:rgba(0, 0, 0, 0.06);--x-color-fill-content-hover:rgba(0, 0, 0, 0.15);--x-color-fill-alter:rgba(0, 0, 0, 0.02);--x-scrollbar-width:12px;--x-scrollbar-track-bg:rgba(0, 0, 0, 0.04);--x-scrollbar-thumb-bg:rgba(0, 0, 0, 0.25);--x-scrollbar-thumb-bg-hover:rgba(0, 0, 0, 0.35);--x-menu-dark-bg:#001529;--x-menu-dark-item-bg:#001529;--x-menu-dark-popup-bg:#001529;--x-menu-dark-submenu-item-bg:#000c17}:host{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:var(--x-divider-color, var(--x-color-text, rgba(0, 0, 0, 0.88)));font-size:var(--x-divider-font-size, var(--x-font-size-base, 14px));font-variant:tabular-nums;line-height:var(--x-divider-line-height, var(--x-line-height-base, 1.5714));list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";border-top:var(--x-divider-border-width, var(--x-border-width-base, 1px)) solid var(--x-divider-border-color, var(--x-color-split, rgba(5, 5, 5, 0.06)))}:host(.x-divider-vertical){position:relative;top:var(--x-divider-vertical-top, -0.06em);display:inline-block;height:var(--x-divider-vertical-height, 0.9em);margin:0 var(--x-divider-margin-horizontal, var(--x-spacing-xs, 8px));vertical-align:middle;border-top:0;border-left:var(--x-divider-border-width, var(--x-border-width-base, 1px)) solid var(--x-divider-border-color, var(--x-color-split, rgba(5, 5, 5, 0.06)))}:host(.x-divider-horizontal){display:-ms-flexbox;display:flex;clear:both;width:100%;min-width:100%;margin:var(--x-divider-margin-vertical, var(--x-spacing-lg, 24px)) 0}:host(.x-divider-dashed){background:none;border-color:var(--x-divider-border-color, var(--x-color-split, rgba(5, 5, 5, 0.06)));border-style:dashed;border-width:var(--x-divider-border-width, var(--x-border-width-base, 1px)) 0 0}:host(.x-divider-horizontal.x-divider-with-text){display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;margin:var(--x-divider-with-text-margin, var(--x-spacing-md, 16px)) 0;color:var(--x-divider-color, var(--x-color-text, rgba(0, 0, 0, 0.88)));font-weight:var(--x-divider-font-weight, var(--x-font-weight-medium, 500));font-size:var(--x-divider-font-size-lg, var(--x-font-size-lg, 16px));white-space:nowrap;text-align:center;border-top:0;border-top-color:var(--x-divider-border-color, var(--x-color-split, rgba(5, 5, 5, 0.06)))}:host(.x-divider-horizontal.x-divider-with-text)::before,:host(.x-divider-horizontal.x-divider-with-text)::after{position:relative;width:50%;border-top:var(--x-divider-border-width, var(--x-border-width-base, 1px)) solid transparent;border-top-color:inherit;border-bottom:0;-webkit-transform:translateY(50%);transform:translateY(50%);content:"";-ms-flex:1;flex:1}:host(.x-divider-horizontal.x-divider-with-text-left)::before{-ms-flex:0 0 var(--x-divider-text-margin-left, 5%);flex:0 0 var(--x-divider-text-margin-left, 5%);width:var(--x-divider-text-margin-left, 5%)}:host(.x-divider-horizontal.x-divider-with-text-left)::after{-ms-flex:1;flex:1}:host(.x-divider-horizontal.x-divider-with-text-right)::before{-ms-flex:1;flex:1}:host(.x-divider-horizontal.x-divider-with-text-right)::after{-ms-flex:0 0 var(--x-divider-text-margin-right, 5%);flex:0 0 var(--x-divider-text-margin-right, 5%);width:var(--x-divider-text-margin-right, 5%)}.x-divider-inner-text{display:inline-block;padding:0 var(--x-divider-text-padding, 1em)}:host(.x-divider-plain) .x-divider-inner-text{font-weight:normal;font-size:var(--x-divider-font-size, var(--x-font-size-base, 14px))}`;
559
-
560
- const XDivider = class {
561
- constructor(hostRef) {
562
- registerInstance(this, hostRef);
563
- }
564
- get el() { return getElement(this); }
565
- /**
566
- * Tracks whether the divider has text content.
567
- */
568
- hasContent = false;
569
- /**
570
- * Whether line is dashed.
571
- * @example
572
- * <x-divider dashed></x-divider>
573
- */
574
- dashed = false;
575
- /**
576
- * The position of title inside divider.
577
- * @example
578
- * <x-divider orientation="left">Left</x-divider>
579
- */
580
- orientation = 'center';
581
- /**
582
- * Divider text show as plain style.
583
- * @example
584
- * <x-divider plain>Text</x-divider>
585
- */
586
- plain = false;
587
- /**
588
- * The direction type of divider.
589
- * @example
590
- * <x-divider type="vertical"></x-divider>
591
- */
592
- type = 'horizontal';
593
- /**
594
- * The margin-left/right of the title.
595
- * @example
596
- * <x-divider orientation="left" orientationMargin="12px">Text</x-divider>
597
- */
598
- orientationMargin;
599
- /**
600
- * Check for initial slot content.
601
- * @returns void
602
- * @example
603
- * <x-divider>Text</x-divider>
604
- */
605
- componentWillLoad() {
606
- this.checkContent();
607
- }
608
- /**
609
- * Determine if default slot has content.
610
- * @returns void
611
- * @example
612
- * <x-divider>Text</x-divider>
613
- */
614
- checkContent() {
615
- // Initial check, though slotchange is better for dynamic updates
616
- this.hasContent = this.el.innerHTML.trim().length > 0;
617
- }
618
- /**
619
- * Update content state when slot changes.
620
- * @param e - Slot change event.
621
- * @returns void
622
- * @example
623
- * <x-divider>Text</x-divider>
624
- */
625
- handleSlotChange = (e) => {
626
- const slot = e.target;
627
- this.hasContent = slot.assignedNodes({ flatten: true }).length > 0;
628
- };
629
- /**
630
- * Render divider with optional text and orientation styles.
631
- *
632
- * Flow:
633
- * 1. Constructs class map based on type (horizontal/vertical), style (dashed/plain), and content presence.
634
- * 2. Calculates orientation styles (margin-left/right) if needed.
635
- * 3. Renders Host element.
636
- * 4. If horizontal with content:
637
- * - Renders text wrapper span.
638
- * - Projects slot.
639
- * 5. Otherwise (vertical or empty):
640
- * - Projects slot directly.
641
- *
642
- * @returns JSX.Element
643
- * @example
644
- * <x-divider orientation="right">Right</x-divider>
645
- */
646
- render() {
647
- const { dashed, orientation, plain, type, orientationMargin, hasContent } = this;
648
- // Build classes based on type and text presence.
649
- const classes = {
650
- 'x-divider': true,
651
- [`x-divider-${type}`]: true,
652
- [`x-divider-with-text`]: hasContent && type === 'horizontal',
653
- [`x-divider-with-text-${orientation}`]: hasContent && type === 'horizontal',
654
- 'x-divider-dashed': dashed,
655
- 'x-divider-plain': plain,
656
- };
657
- // Apply margin styles when orientation is left/right.
658
- const style = {};
659
- if (orientationMargin && type === 'horizontal' && hasContent) {
660
- // Apply margin for left or right alignment.
661
- if (orientation === 'left') {
662
- style['--x-divider-margin-left'] = orientationMargin;
663
- }
664
- else if (orientation === 'right') {
665
- style['--x-divider-margin-right'] = orientationMargin;
666
- }
667
- }
668
- return (h(Host, { key: 'c01c2f45c5bd8644531889d9787efb9afaa53e5f', class: classes, style: style }, type === 'horizontal' && hasContent && (h("span", { key: 'de69f4795c2069fe4844d087827f33c625759e9a', class: "x-divider-inner-text" }, h("slot", { key: 'cb0b0e462a05bd6035579554f5665a4baf52b856', onSlotchange: this.handleSlotChange }))), (!hasContent || type === 'vertical') && h("slot", { key: '054ecd7d528d560edffbf86722a1e8084f29890e', onSlotchange: this.handleSlotChange })));
669
- }
670
- };
671
- XDivider.style = xDividerCss();
672
-
673
- /**
674
- * FormControl — Tracks value & validity of an individual form control
675
- * Mirrors Angular's FormControl API 100%
676
- */
677
- class FormControl extends AbstractControl {
678
- constructor(formState = null, validatorsOrOptions, asyncValidators) {
679
- super();
680
- this._initialize(formState, validatorsOrOptions, asyncValidators);
681
- this._updateValueAndValidity({ onlySelf: true, emitEvent: false });
682
- }
683
- get value() {
684
- return this._value;
685
- }
686
- setValue(value, options = {}) {
687
- this._value = value;
688
- if (this._onChange.length && options.emitModelToViewChange !== false) {
689
- this._onChange.forEach(changeFn => changeFn(this._value));
690
- }
691
- this._updateValueAndValidity(options);
692
- if (options.emitEvent !== false) {
693
- this._emitValueChange(this._value);
694
- }
695
- }
696
- patchValue(value, options = {}) {
697
- this.setValue(value, options);
698
- }
699
- reset(formState = null, options = {}) {
700
- this._initialize(formState, this._validators, this._asyncValidators);
701
- this.markAsPristine(options);
702
- this.markAsUntouched(options);
703
- this._updateValueAndValidity(options);
704
- if (options.emitEvent !== false) {
705
- this._emitValueChange(this._value);
706
- }
707
- }
708
- // ─── Internal ────────────────────────────────────────────────
709
- _initialize(formState, validatorsOrOptions, asyncValidators) {
710
- if (this._isFormControlOptions(validatorsOrOptions)) {
711
- this._applyValidators(validatorsOrOptions);
712
- this._updateOn = validatorsOrOptions.updateOn || 'change';
713
- }
714
- else {
715
- this._applyValidators(validatorsOrOptions, asyncValidators);
716
- }
717
- if (formState !== null && typeof formState === 'object' && 'value' in formState) {
718
- const state = formState;
719
- this._value = state.value;
720
- if (state.disabled) {
721
- this.disable({ onlySelf: true, emitEvent: false });
722
- }
723
- }
724
- else {
725
- this._value = formState;
726
- }
727
- }
728
- _isFormControlOptions(obj) {
729
- return !!obj && typeof obj === 'object' && !Array.isArray(obj) && ('validators' in obj || 'asyncValidators' in obj || 'updateOn' in obj);
730
- }
731
- _runValidation() {
732
- if (this._status === 'DISABLED')
733
- return;
734
- this._errors = this._runValidators(this._value);
735
- this._status = this._calculateStatus();
736
- if (this._status === 'VALID' && this._asyncValidators.length > 0) {
737
- this._runAsyncValidators(this._value);
738
- }
739
- }
740
- }
741
-
742
- const xFormItemCss = () => `@charset "UTF-8";:root{--x-color-primary:#1677ff;--x-color-primary-rgb:22, 119, 255;--x-color-primary-contrast:#ffffff;--x-color-primary-contrast-rgb:255, 255, 255;--x-color-primary-shade:#0958d9;--x-color-primary-tint:#4096ff;--x-color-primary-bg:#e6f4ff;--x-color-primary-bg-hover:#bae0ff;--x-color-primary-border:#91caff;--x-color-primary-border-hover:#69b1ff;--x-color-primary-hover:#4096ff;--x-color-primary-active:#0958d9;--x-color-primary-text:#1677ff;--x-color-primary-text-hover:#4096ff;--x-color-primary-text-active:#0958d9;--x-color-secondary:#3dc2ff;--x-color-secondary-rgb:61, 194, 255;--x-color-secondary-contrast:#ffffff;--x-color-secondary-contrast-rgb:255, 255, 255;--x-color-secondary-shade:#36abe0;--x-color-secondary-tint:#50c8ff;--x-color-success:#52c41a;--x-color-success-rgb:82, 196, 26;--x-color-success-contrast:#ffffff;--x-color-success-contrast-rgb:255, 255, 255;--x-color-success-shade:#389e0d;--x-color-success-tint:#73d13d;--x-color-success-bg:#f6ffed;--x-color-success-bg-hover:#d9f7be;--x-color-success-border:#b7eb8f;--x-color-success-border-hover:#95de64;--x-color-success-hover:#73d13d;--x-color-success-active:#389e0d;--x-color-success-text:#52c41a;--x-color-success-text-hover:#73d13d;--x-color-success-text-active:#389e0d;--x-color-warning:#faad14;--x-color-warning-rgb:250, 173, 20;--x-color-warning-contrast:#000000;--x-color-warning-contrast-rgb:0, 0, 0;--x-color-warning-shade:#d48806;--x-color-warning-tint:#ffc53d;--x-color-warning-bg:#fffbe6;--x-color-warning-bg-hover:#fff1b8;--x-color-warning-border:#ffe58f;--x-color-warning-border-hover:#ffd666;--x-color-warning-hover:#ffc53d;--x-color-warning-active:#d48806;--x-color-warning-text:#faad14;--x-color-warning-text-hover:#ffc53d;--x-color-warning-text-active:#d48806;--x-color-danger:#ff4d4f;--x-color-danger-rgb:255, 77, 79;--x-color-danger-contrast:#ffffff;--x-color-danger-contrast-rgb:255, 255, 255;--x-color-danger-shade:#cf1322;--x-color-danger-tint:#ff7875;--x-color-error:#ff4d4f;--x-color-error-rgb:255, 77, 79;--x-color-error-bg:#fff2f0;--x-color-error-bg-hover:#ffccc7;--x-color-error-border:#ffa39e;--x-color-error-border-hover:#ff7875;--x-color-error-hover:#ff7875;--x-color-error-active:#d9363e;--x-color-error-text:#ff4d4f;--x-color-error-text-hover:#ff7875;--x-color-error-text-active:#d9363e;--x-color-info:#1677ff;--x-color-info-rgb:22, 119, 255;--x-color-info-bg:#e6f4ff;--x-color-info-bg-hover:#bae0ff;--x-color-info-border:#91caff;--x-color-info-border-hover:#69b1ff;--x-color-info-hover:#69b1ff;--x-color-info-active:#0958d9;--x-color-info-text:#1677ff;--x-color-info-text-hover:#69b1ff;--x-color-info-text-active:#0958d9;--x-color-text:rgba(0, 0, 0, 0.88);--x-color-text-secondary:rgba(0, 0, 0, 0.65);--x-color-text-tertiary:rgba(0, 0, 0, 0.45);--x-color-text-quaternary:rgba(0, 0, 0, 0.25);--x-color-text-disabled:rgba(0, 0, 0, 0.25);--x-color-text-placeholder:rgba(0, 0, 0, 0.25);--x-color-text-heading:rgba(0, 0, 0, 0.88);--x-color-text-label:rgba(0, 0, 0, 0.65);--x-color-text-description:rgba(0, 0, 0, 0.45);--x-color-text-light-solid:#ffffff;--x-color-bg-container:#ffffff;--x-color-bg-elevated:#ffffff;--x-color-bg-layout:#f5f5f5;--x-color-bg-spotlight:rgba(0, 0, 0, 0.85);--x-color-bg-mask:rgba(0, 0, 0, 0.45);--x-color-bg-base:#ffffff;--x-color-bg-container-disabled:#f5f5f5;--x-color-bg-container-loading:rgba(255, 255, 255, 0.65);--x-color-white:#ffffff;--x-color-fill:rgba(0, 0, 0, 0.15);--x-color-fill-secondary:rgba(0, 0, 0, 0.06);--x-color-fill-tertiary:rgba(0, 0, 0, 0.04);--x-color-fill-quaternary:rgba(0, 0, 0, 0.02);--x-color-border:#d9d9d9;--x-color-border-secondary:#f0f0f0;--x-color-border-bg:#ffffff;--x-color-split:rgba(5, 5, 5, 0.06);--x-color-dark:#222428;--x-color-dark-rgb:34, 36, 40;--x-color-dark-contrast:#ffffff;--x-color-dark-contrast-rgb:255, 255, 255;--x-color-dark-shade:#1e2023;--x-color-dark-tint:#383a3e;--x-color-medium:#92949c;--x-color-medium-rgb:146, 148, 156;--x-color-medium-contrast:#ffffff;--x-color-medium-contrast-rgb:255, 255, 255;--x-color-medium-shade:#808289;--x-color-medium-tint:#9d9fa6;--x-color-light:#f4f5f8;--x-color-light-rgb:244, 245, 248;--x-color-light-contrast:#000000;--x-color-light-contrast-rgb:0, 0, 0;--x-color-light-shade:#d7d8da;--x-color-light-tint:#f5f6f9;--x-font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--x-font-family-code:"SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace;--x-font-size:14px;--x-font-size-sm:12px;--x-font-size-lg:16px;--x-font-size-xl:20px;--x-font-size-heading-1:38px;--x-font-size-heading-2:30px;--x-font-size-heading-3:24px;--x-font-size-heading-4:20px;--x-font-size-heading-5:16px;--x-line-height:1.5714285714285714;--x-line-height-lg:1.5;--x-line-height-sm:1.6666666666666667;--x-line-height-heading-1:1.2105263157894737;--x-line-height-heading-2:1.2666666666666666;--x-line-height-heading-3:1.3333333333333333;--x-line-height-heading-4:1.4;--x-line-height-heading-5:1.5;--x-font-weight-normal:400;--x-font-weight-medium:500;--x-font-weight-semibold:600;--x-font-weight-strong:600;--x-font-size-base:14px;--x-font-size-xxl:24px;--x-line-height-base:1.5714285714285714;--x-spacing-xxs:4px;--x-spacing-xs:8px;--x-spacing-sm:12px;--x-spacing-md:16px;--x-spacing-lg:20px;--x-spacing-xl:24px;--x-spacing-xxl:32px;--x-spacing-xxxl:48px;--x-margin-xxs:4px;--x-margin-xs:8px;--x-margin-sm:12px;--x-margin-md:16px;--x-margin-lg:24px;--x-margin-xl:32px;--x-margin-xxl:48px;--x-padding-xxs:4px;--x-padding-xs:8px;--x-padding-sm:12px;--x-padding-md:16px;--x-padding-lg:24px;--x-padding-content-horizontal-lg:24px;--x-padding-content-vertical-lg:12px;--x-padding-content-horizontal:16px;--x-padding-content-vertical:12px;--x-padding-content-horizontal-sm:16px;--x-padding-content-vertical-sm:8px;--x-border-radius:6px;--x-border-radius-xs:2px;--x-border-radius-sm:4px;--x-border-radius-lg:8px;--x-border-radius-xl:12px;--x-border-radius-outer:4px;--x-border-radius-base:6px;--x-border-width:1px;--x-border-width-base:1px;--x-shadow:0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 9px 28px 8px rgba(0, 0, 0, 0.05);--x-shadow-secondary:0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 9px 28px 8px rgba(0, 0, 0, 0.05);--x-shadow-tertiary:0 1px 2px 0 rgba(0, 0, 0, 0.03), 0 1px 6px -1px rgba(0, 0, 0, 0.02), 0 2px 4px 0 rgba(0, 0, 0, 0.02);--x-shadow-lg:0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 9px 28px 8px rgba(0, 0, 0, 0.05);--x-box-shadow:0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 9px 28px 8px rgba(0, 0, 0, 0.05);--x-box-shadow-secondary:0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 9px 28px 8px rgba(0, 0, 0, 0.05);--x-box-shadow-tertiary:0 1px 2px 0 rgba(0, 0, 0, 0.03), 0 1px 6px -1px rgba(0, 0, 0, 0.02), 0 2px 4px 0 rgba(0, 0, 0, 0.02);--x-box-shadow-popover-arrow:2px 2px 5px rgba(0, 0, 0, 0.05);--x-box-shadow-card:0 1px 2px -2px rgba(0, 0, 0, 0.16), 0 3px 6px 0 rgba(0, 0, 0, 0.12), 0 5px 12px 4px rgba(0, 0, 0, 0.09);--x-box-shadow-drawer-right:-6px 0 16px 0 rgba(0, 0, 0, 0.08), -3px 0 6px -4px rgba(0, 0, 0, 0.12), -9px 0 28px 8px rgba(0, 0, 0, 0.05);--x-box-shadow-drawer-left:6px 0 16px 0 rgba(0, 0, 0, 0.08), 3px 0 6px -4px rgba(0, 0, 0, 0.12), 9px 0 28px 8px rgba(0, 0, 0, 0.05);--x-box-shadow-drawer-up:0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 9px 28px 8px rgba(0, 0, 0, 0.05);--x-box-shadow-drawer-down:0 -6px 16px 0 rgba(0, 0, 0, 0.08), 0 -3px 6px -4px rgba(0, 0, 0, 0.12), 0 -9px 28px 8px rgba(0, 0, 0, 0.05);--x-box-shadow-tabs-overflow-left:inset 10px 0 8px -8px rgba(0, 0, 0, 0.08);--x-box-shadow-tabs-overflow-right:inset -10px 0 8px -8px rgba(0, 0, 0, 0.08);--x-box-shadow-tabs-overflow-top:inset 0 10px 8px -8px rgba(0, 0, 0, 0.08);--x-box-shadow-tabs-overflow-bottom:inset 0 -10px 8px -8px rgba(0, 0, 0, 0.08);--x-motion-duration-fast:0.1s;--x-motion-duration-mid:0.2s;--x-motion-duration-slow:0.3s;--x-motion-ease-in-out:cubic-bezier(0.645, 0.045, 0.355, 1);--x-motion-ease-out:cubic-bezier(0.215, 0.61, 0.355, 1);--x-motion-ease-in:cubic-bezier(0.55, 0.055, 0.675, 0.19);--x-motion-ease-out-back:cubic-bezier(0.12, 0.4, 0.29, 1.46);--x-motion-ease-in-back:cubic-bezier(0.71, -0.46, 0.88, 0.6);--x-motion-ease-in-out-circle:cubic-bezier(0.78, 0.14, 0.15, 0.86);--x-motion-ease-out-circle:cubic-bezier(0.08, 0.82, 0.17, 1);--x-motion-ease-in-circle:cubic-bezier(0.6, 0.04, 0.98, 0.34);--x-motion-ease-in-quint:cubic-bezier(0.755, 0.05, 0.855, 0.06);--x-motion-ease-out-quint:cubic-bezier(0.23, 1, 0.32, 1);--x-z-index-base:0;--x-z-index-popup-base:1000;--x-z-index-popup:1030;--x-z-index-affix:10;--x-z-index-modal:1000;--x-z-index-modal-mask:1000;--x-z-index-drawer:1000;--x-z-index-popover:1030;--x-z-index-dropdown:1050;--x-z-index-tooltip:1070;--x-z-index-notification:1080;--x-z-index-message:1090;--x-z-index-popconfirm:1060;--x-z-index-table-fixed:10;--x-opacity-loading:0.65;--x-opacity-image:1;--x-opacity-disabled:0.5;--x-control-height:32px;--x-control-height-xs:24px;--x-control-height-sm:24px;--x-control-height-lg:40px;--x-control-radio-size:16px;--x-control-checkbox-size:16px;--x-control-padding-horizontal:12px;--x-control-padding-horizontal-sm:8px;--x-control-outline-width:2px;--x-control-outline:rgba(5, 145, 255, 0.1);--x-control-item-bg-hover:rgba(0, 0, 0, 0.04);--x-control-item-bg-active:#e6f4ff;--x-control-item-bg-active-hover:#bae0ff;--x-control-item-bg-active-disabled:rgba(0, 0, 0, 0.15);--x-control-tmp-outline:rgba(0, 0, 0, 0.02);--x-color-yellow:#fadb14;--x-color-yellow-rgb:250, 219, 20;--x-font-family-base:var(--x-font-family);--x-color-link:#1677ff;--x-color-link-hover:#69b1ff;--x-color-link-active:#0958d9;--x-color-icon:rgba(0, 0, 0, 0.45);--x-color-icon-hover:rgba(0, 0, 0, 0.88);--x-color-highlight:#ff4d4f;--x-color-bg-text-hover:rgba(0, 0, 0, 0.06);--x-color-bg-text-active:rgba(0, 0, 0, 0.15);--x-screen-xs:480px;--x-screen-xs-min:480px;--x-screen-xs-max:575px;--x-screen-sm:576px;--x-screen-sm-min:576px;--x-screen-sm-max:767px;--x-screen-md:768px;--x-screen-md-min:768px;--x-screen-md-max:991px;--x-screen-lg:992px;--x-screen-lg-min:992px;--x-screen-lg-max:1199px;--x-screen-xl:1200px;--x-screen-xl-min:1200px;--x-screen-xl-max:1599px;--x-screen-xxl:1600px;--x-screen-xxl-min:1600px;--x-color-fill-content:rgba(0, 0, 0, 0.06);--x-color-fill-content-hover:rgba(0, 0, 0, 0.15);--x-color-fill-alter:rgba(0, 0, 0, 0.02);--x-scrollbar-width:12px;--x-scrollbar-track-bg:rgba(0, 0, 0, 0.04);--x-scrollbar-thumb-bg:rgba(0, 0, 0, 0.25);--x-scrollbar-thumb-bg-hover:rgba(0, 0, 0, 0.35);--x-menu-dark-bg:#001529;--x-menu-dark-item-bg:#001529;--x-menu-dark-popup-bg:#001529;--x-menu-dark-submenu-item-bg:#000c17}:host{display:block;margin-bottom:var(--x-form-item-margin-bottom, var(--x-spacing-lg, 24px));-webkit-transition:all var(--x-form-item-motion-duration, var(--x-motion-duration-mid, 0.2s)) var(--x-form-item-motion-ease-out, var(--x-motion-ease-out, cubic-bezier(0.215, 0.61, 0.355, 1)));transition:all var(--x-form-item-motion-duration, var(--x-motion-duration-mid, 0.2s)) var(--x-form-item-motion-ease-out, var(--x-motion-ease-out, cubic-bezier(0.215, 0.61, 0.355, 1)));-webkit-box-sizing:border-box;box-sizing:border-box;padding:0;color:var(--x-form-item-color, var(--x-color-text, rgba(0, 0, 0, 0.88)));font-size:var(--x-form-item-font-size, var(--x-font-size-base, 14px));font-variant:tabular-nums;line-height:var(--x-form-item-line-height, var(--x-line-height-base, 1.5715));list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum"}:host(.x-form-item-horizontal) .x-form-item-row{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;min-width:0}:host(.x-form-item-vertical) .x-form-item-row{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}:host(.x-form-item-vertical) .x-form-item-label{text-align:left;padding:0 0 8px;line-height:var(--x-form-item-line-height, var(--x-line-height-base, 1.5715))}:host(.x-form-item-vertical) .x-form-item-label label::after{display:none}:host(.x-form-item-inline){display:-ms-inline-flexbox;display:inline-flex;margin-right:var(--x-form-item-inline-margin-right, 16px);margin-bottom:0}:host(.x-form-item-inline) .x-form-item-row{display:-ms-flexbox;display:flex;-ms-flex-wrap:nowrap;flex-wrap:nowrap}:host(.x-form-item-horizontal) .x-form-item-row{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap}:host(.x-form-item-vertical) .x-form-item-row{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}:host(.x-form-item-vertical) .x-form-item-label{text-align:left;margin-right:0;padding:0 0 var(--x-form-item-explain-padding-top, var(--x-spacing-xxs, 4px));width:100%}:host(.x-form-item-vertical) .x-form-item-label label{height:auto}:host(.x-form-item-vertical) .x-form-item-label label::after{display:none !important}:host(.x-form-item-inline){display:-ms-inline-flexbox;display:inline-flex;margin-right:var(--x-form-item-inline-margin-right, 16px);margin-bottom:0}:host(.x-form-item-inline) .x-form-item-row{display:-ms-flexbox;display:flex;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-ms-flex-align:center;align-items:center}:host(.x-form-item-inline) .x-form-item-label{margin-right:var(--x-form-item-inline-label-margin-right, 8px)}.x-form-item-row{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;min-width:0;width:100%}.x-form-item-label{-ms-flex-positive:0;flex-grow:0;overflow:hidden;white-space:nowrap;vertical-align:middle;display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center}.x-form-item-label.x-form-item-label-left{-ms-flex-pack:start !important;justify-content:flex-start !important;text-align:left !important}.x-form-item-label.x-form-item-label-right{-ms-flex-pack:end !important;justify-content:flex-end !important;text-align:right !important}.x-form-item-label.x-form-item-label-center{-ms-flex-pack:center !important;justify-content:center !important;text-align:center !important}.x-form-item-label{margin-right:var(--x-form-item-label-margin-right, var(--x-spacing-md, 16px));line-height:var(--x-form-item-control-height, var(--x-control-height, 32px))}.x-form-item-label label{position:relative;display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;max-width:100%;height:var(--x-form-item-control-height, var(--x-control-height, 32px));color:var(--x-form-item-color, var(--x-color-text, rgba(0, 0, 0, 0.88)));font-size:var(--x-form-item-font-size, var(--x-font-size-base, 14px))}.x-form-item-label label::after{content:":";position:relative;top:-0.5px;margin:0 var(--x-form-item-label-colon-margin-inline, var(--x-spacing-xs, 8px)) 0 var(--x-form-item-label-colon-margin-inline-start, 2px)}.x-form-item-label label.x-form-item-no-colon::after{content:" "}.x-form-item-label label.x-form-item-required::before{display:inline-block;margin-right:var(--x-form-item-required-margin-right, var(--x-spacing-xxs, 4px));color:var(--x-form-item-color-error, var(--x-color-error, #ff4d4f));font-size:var(--x-form-item-font-size, var(--x-font-size-base, 14px));font-family:SimSun, sans-serif;line-height:1;content:"*"}.x-form-item-control{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-positive:1;flex-grow:1}.x-form-item-control-input{position:relative;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;min-height:var(--x-form-item-control-height, var(--x-control-height, 32px))}.x-form-item-control-input-content{-ms-flex:auto;flex:auto;max-width:100%}.x-form-item-children-icon{position:absolute;top:50%;right:var(--x-form-item-control-padding-horizontal, var(--x-control-padding-horizontal, 11px));z-index:1;width:var(--x-form-item-icon-size, var(--x-spacing-md, 16px));height:var(--x-form-item-icon-size, var(--x-spacing-md, 16px));margin-top:calc(var(--x-form-item-icon-size, var(--x-spacing-md, 16px)) / -2);font-size:var(--x-form-item-icon-size, var(--x-spacing-md, 16px));line-height:var(--x-form-item-icon-size, var(--x-spacing-md, 16px));text-align:center;visibility:visible;-webkit-animation:zoomIn var(--x-form-item-motion-duration, var(--x-motion-duration-mid, 0.2s)) var(--x-form-item-motion-ease-out-back, var(--x-motion-ease-out-back, cubic-bezier(0.12, 0.4, 0.29, 1.46)));animation:zoomIn var(--x-form-item-motion-duration, var(--x-motion-duration-mid, 0.2s)) var(--x-form-item-motion-ease-out-back, var(--x-motion-ease-out-back, cubic-bezier(0.12, 0.4, 0.29, 1.46)));pointer-events:none}.x-form-item-explain{clear:both;min-height:var(--x-form-item-explain-min-height, var(--x-spacing-lg, 24px));margin-top:var(--x-form-item-explain-margin-top, -2px);color:var(--x-form-item-color-secondary, var(--x-color-text-secondary, rgba(0, 0, 0, 0.45)));font-size:var(--x-form-item-font-size, var(--x-font-size-base, 14px));line-height:var(--x-form-item-line-height, var(--x-line-height-base, 1.5715));-webkit-transition:color var(--x-form-item-motion-duration, var(--x-motion-duration-mid, 0.2s)) var(--x-form-item-motion-ease-in-out, var(--x-motion-ease-in-out, cubic-bezier(0.645, 0.045, 0.355, 1)));transition:color var(--x-form-item-motion-duration, var(--x-motion-duration-mid, 0.2s)) var(--x-form-item-motion-ease-in-out, var(--x-motion-ease-in-out, cubic-bezier(0.645, 0.045, 0.355, 1)));padding-top:var(--x-form-item-explain-padding-top, var(--x-spacing-xxs, 4px))}:host(.x-form-item-has-error) .x-form-item-children-icon{color:var(--x-form-item-color-error, var(--x-color-error, #ff4d4f))}:host(.x-form-item-has-error) .x-form-item-explain{color:var(--x-form-item-color-error, var(--x-color-error, #ff4d4f))}:host(.x-form-item-has-warning) .x-form-item-children-icon{color:var(--x-form-item-color-warning, var(--x-color-warning, #faad14))}:host(.x-form-item-has-warning) .x-form-item-explain{color:var(--x-form-item-color-warning, var(--x-color-warning, #faad14))}:host(.x-form-item-has-success) .x-form-item-children-icon{color:var(--x-form-item-color-success, var(--x-color-success, #52c41a))}:host-context(.x-form-vertical) .x-form-item{-ms-flex-direction:column;flex-direction:column}:host-context(.x-form-vertical) .x-form-item-label{text-align:left;margin-right:0;padding:0 0 var(--x-form-item-explain-padding-top, var(--x-spacing-xxs, 4px));line-height:var(--x-form-item-line-height, var(--x-line-height-base, 1.5715))}:host-context(.x-form-vertical) .x-form-item-label label{height:auto}:host-context(.x-form-vertical) .x-form-item-label label::after{display:none}@-webkit-keyframes zoomIn{0%{-webkit-transform:scale(0);transform:scale(0);opacity:0}100%{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes zoomIn{0%{-webkit-transform:scale(0);transform:scale(0);opacity:0}100%{-webkit-transform:scale(1);transform:scale(1);opacity:1}}.anticon-spin{-webkit-animation:loadingCircle 1s infinite linear;animation:loadingCircle 1s infinite linear}@-webkit-keyframes loadingCircle{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes loadingCircle{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}`;
743
-
744
- const XFormItem = class {
745
- constructor(hostRef) {
746
- registerInstance(this, hostRef);
747
- }
748
- get el() { return getElement(this); }
749
- /**
750
- * Label text
751
- * @example
752
- * <x-form-item label="Email"></x-form-item>
753
- */
754
- label;
755
- /**
756
- * The validation status. If not provided, it will be automatically inferred from the form control.
757
- * @example
758
- * <x-form-item validateStatus="error"></x-form-item>
759
- */
760
- validateStatus;
761
- /**
762
- * The help message. If not provided, it will be automatically inferred from the form control errors.
763
- * @example
764
- * <x-form-item help="Required"></x-form-item>
765
- */
766
- help;
767
- /**
768
- * Whether to show the required mark. If not provided, it will be automatically inferred from the form control validators.
769
- * @example
770
- * <x-form-item required label="Name"></x-form-item>
771
- */
772
- required = false;
773
- /**
774
- * Whether to show the colon after label
775
- * @example
776
- * <x-form-item colon={false} label="Name"></x-form-item>
777
- */
778
- colon = true;
779
- /**
780
- * Whether to show the feedback icon
781
- * @example
782
- * <x-form-item hasFeedback validateStatus="success"></x-form-item>
783
- */
784
- hasFeedback = false;
785
- /**
786
- * Label column layout (e.g. span)
787
- * @example
788
- * <x-form-item labelCol="span: 6"></x-form-item>
789
- */
790
- labelCol;
791
- /**
792
- * Wrapper column layout
793
- * @example
794
- * <x-form-item wrapperCol="span: 18"></x-form-item>
795
- */
796
- wrapperCol;
797
- /**
798
- * Label alignment in horizontal layout
799
- */
800
- labelAlign;
801
- /**
802
- * Form layout (overrides parent x-form layout)
803
- */
804
- layout;
805
- /**
806
- * Field name for form binding
807
- */
808
- name;
809
- /**
810
- * Props of children node, for example checkbox should be 'checked'
811
- */
812
- valuePropName = 'value';
813
- /**
814
- * Extra prompt message
815
- */
816
- extra;
817
- control;
818
- status;
819
- errorMessage;
820
- parentLayout;
821
- parentColon;
822
- parentHideRequiredMark;
823
- parentLabelAlign;
824
- formEl = null;
825
- unsubscribe = null;
826
- observer = null;
827
- nameChanged() {
828
- this.connectControl();
829
- }
830
- componentWillLoad() {
831
- this.formEl = this.el.closest('x-form');
832
- if (this.formEl) {
833
- this.syncParentProps();
834
- this.setupObserver();
835
- }
836
- this.connectControl();
837
- }
838
- syncParentProps() {
839
- if (this.formEl) {
840
- this.parentLayout = this.formEl.getAttribute('layout') || this.formEl.layout || 'horizontal';
841
- this.parentColon = this.formEl.getAttribute('colon') !== 'false' && this.formEl.colon !== false;
842
- this.parentHideRequiredMark = this.formEl.getAttribute('hide-required-mark') === 'true' || this.formEl.hideRequiredMark === true;
843
- this.parentLabelAlign = this.formEl.labelAlign || 'right';
844
- }
845
- }
846
- setupObserver() {
847
- if (this.formEl && !this.observer) {
848
- this.observer = new MutationObserver((mutations) => {
849
- mutations.forEach((mutation) => {
850
- if (mutation.type === 'attributes' && (mutation.attributeName === 'layout' ||
851
- mutation.attributeName === 'colon' ||
852
- mutation.attributeName === 'hide-required-mark')) {
853
- this.syncParentProps();
854
- }
855
- });
856
- });
857
- this.observer.observe(this.formEl, { attributes: true });
858
- }
859
- }
860
- disconnectedCallback() {
861
- if (this.unsubscribe) {
862
- this.unsubscribe();
863
- }
864
- if (this.observer) {
865
- this.observer.disconnect();
866
- }
867
- }
868
- connectControl() {
869
- if (this.unsubscribe) {
870
- this.unsubscribe();
871
- }
872
- if (this.formEl && this.formEl.form && this.name) {
873
- let control = this.formEl.form.get(this.name);
874
- if (!control) {
875
- // Self-registration: create a control if it doesn't exist
876
- const initialValue = this.formEl.initialValues?.[this.name];
877
- control = new FormControl(initialValue);
878
- this.formEl.form.addControl(this.name, control);
879
- }
880
- if (control) {
881
- this.control = control;
882
- this.syncState(control);
883
- this.unsubscribe = control.stateChanges(() => {
884
- this.syncState(control);
885
- });
886
- // Update child component value
887
- this.updateChildValue(control.value);
888
- }
889
- }
890
- }
891
- syncState(control) {
892
- if (control.touched || control.dirty) {
893
- this.validateStatus = control.invalid ? 'error' : (control.pending ? 'validating' : 'success');
894
- if (control.errors && !this.help) {
895
- this.errorMessage = Object.values(control.errors)[0];
896
- }
897
- else {
898
- this.errorMessage = '';
899
- }
900
- }
901
- const internalControl = control;
902
- const validators = (internalControl._validators || internalControl.validators || []);
903
- const isRequired = Array.isArray(validators) && validators.some((v) => v.name === 'required' ||
904
- (v.toString && v.toString().includes('required')) ||
905
- (v.validator && v.validator.name === 'required'));
906
- if (isRequired && !this.required) {
907
- this.required = true;
908
- }
909
- }
910
- updateChildValue(value) {
911
- const input = this.el.querySelector('x-input, x-input-number, x-select, x-checkbox, x-switch');
912
- if (input && input[this.valuePropName] !== value) {
913
- input[this.valuePropName] = value;
914
- }
915
- }
916
- handleControlChange = (ev) => {
917
- if (this.control && this.name) {
918
- const detail = ev.detail;
919
- const value = detail?.[this.valuePropName] !== undefined
920
- ? detail[this.valuePropName]
921
- : (detail?.value !== undefined ? detail.value : ev.target[this.valuePropName]);
922
- this.control.setValue(value);
923
- this.control.markAsDirty();
924
- }
925
- };
926
- handleControlBlur = () => {
927
- if (this.control) {
928
- this.control.markAsTouched();
929
- }
930
- };
931
- componentDidLoad() {
932
- // Listen to changes from child inputs
933
- this.el.addEventListener('xChange', this.handleControlChange);
934
- this.el.addEventListener('xBlur', this.handleControlBlur);
935
- }
936
- render() {
937
- const displayHelp = this.help || this.errorMessage;
938
- const layout = this.layout || this.parentLayout || 'horizontal';
939
- const isHorizontal = layout === 'horizontal';
940
- const isVertical = layout === 'vertical';
941
- const isInline = layout === 'inline';
942
- const showColon = this.el.hasAttribute('colon') ? this.colon : this.parentColon;
943
- const hideMark = this.parentHideRequiredMark;
944
- return (h(Host, { key: '9e53e5534b7091f5041150f831adec589cffa581', class: {
945
- 'x-form-item': true,
946
- 'x-form-item-with-help': !!displayHelp,
947
- 'x-form-item-has-error': this.validateStatus === 'error',
948
- 'x-form-item-has-warning': this.validateStatus === 'warning',
949
- 'x-form-item-has-success': this.validateStatus === 'success',
950
- 'x-form-item-validating': this.validateStatus === 'validating',
951
- 'x-form-item-has-feedback': this.hasFeedback,
952
- 'x-form-item-horizontal': isHorizontal,
953
- 'x-form-item-vertical': isVertical,
954
- 'x-form-item-inline': isInline,
955
- } }, h("div", { key: 'c5dd09be09f559f986fb4d36c70f5c391622b107', class: "x-form-item-row" }, this.label && (h("div", { key: 'f77d9c4d9b5241a540546b9d674178f375e92c6d', class: {
956
- 'x-form-item-label': true,
957
- ...(typeof this.labelCol === 'string' ? { [this.labelCol]: true } : {}),
958
- [`x-form-item-label-${this.labelAlign || this.parentLabelAlign || 'right'}`]: true
959
- }, style: typeof this.labelCol === 'object' && this.labelCol?.span ? {
960
- flex: `0 0 ${(this.labelCol.span / 24) * 100}%`,
961
- maxWidth: `${(this.labelCol.span / 24) * 100}%`
962
- } : {} }, h("label", { key: 'e4464d27147d1cee39619ad37cb7c5a6f9cb3139', class: {
963
- 'x-form-item-required': this.required && !hideMark,
964
- 'x-form-item-no-colon': !showColon
965
- }, title: this.label }, this.label))), h("div", { key: '508207d8171598a5d2122eddc91ab9ddbedb8494', class: {
966
- 'x-form-item-control': true,
967
- ...(typeof this.wrapperCol === 'string' ? { [this.wrapperCol]: true } : {})
968
- }, style: typeof this.wrapperCol === 'object' && this.wrapperCol?.span ? {
969
- flex: `0 0 ${(this.wrapperCol.span / 24) * 100}%`,
970
- maxWidth: `${(this.wrapperCol.span / 24) * 100}%`
971
- } : {} }, h("div", { key: 'b47d5161aaf6f42cd47781118b11094c599e240b', class: "x-form-item-control-input" }, h("div", { key: '3437bb735c66cafb7c463f7be885f19470fdf137', class: "x-form-item-control-input-content" }, h("slot", { key: '7f8b3ce874b4281e3a3f9eec36fe1f2a7a772a44' })), this.hasFeedback && this.validateStatus && (h("span", { key: '4e032dde91980865acc598ecb093d293f1188fa7', class: "x-form-item-children-icon" }, this.validateStatus === 'success' && (h("span", { key: 'b7af17e662a03db206209e6ac5fbb8e43630d2d5', role: "img", "aria-label": "check-circle", class: "anticon anticon-check-circle" }, h("svg", { key: '14772b5dbf639304b9fc6dc3fc64355a45ca880d', viewBox: "64 64 896 896", focusable: "false", "data-icon": "check-circle", width: "1em", height: "1em", fill: "currentColor", "aria-hidden": "true" }, h("path", { key: '1f5f902d9fd9cca98d5c6e0858a98bafcc346ae5', d: "M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm193.5 301.7l-210.6 292a31.8 31.8 0 01-51.7 0L318.5 484.9c-3.8-5.3 0-12.7 6.5-12.7h46.9c10.2 0 19.9 4.9 25.9 13.3l71.2 98.8 157.2-218c6-8.3 15.6-13.3 25.9-13.3H699c6.5 0 10.3 7.4 6.5 12.7z" })))), this.validateStatus === 'error' && (h("span", { key: 'a26ddb33d965813b3b07c20579f96ea37a5ea5b7', role: "img", "aria-label": "close-circle", class: "anticon anticon-close-circle" }, h("svg", { key: 'c5a5ecb10bcbbb892a339747122e8245f0f19543', viewBox: "64 64 896 896", focusable: "false", "data-icon": "close-circle", width: "1em", height: "1em", fill: "currentColor", "aria-hidden": "true" }, h("path", { key: '5ad8e00a4a77691849eaede2b8a23baaf029805f', d: "M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm165.4 618.2l-66-.3L512 563.4l-99.3 118.4-66.1.3c-4.4 0-8-3.5-8-8 0-1.9.7-3.7 1.9-5.2l130.1-155L340.5 359a8.32 8.32 0 01-1.9-5.2c0-4.4 3.6-8 8-8l66.1.3L512 464.6l99.3-118.4 66-.3c4.4 0 8 3.5 8 8 0 1.9-.7 3.7-1.9 5.2L553.5 514l130 155c1.2 1.5 1.9 3.3 1.9 5.2 0 4.4-3.6 8-8 8z" })))), this.validateStatus === 'warning' && (h("span", { key: '7ebd6dd058a5c99ac84a9d2941d89638b2b1e52a', role: "img", "aria-label": "exclamation-circle", class: "anticon anticon-exclamation-circle" }, h("svg", { key: 'b3e076d376e5b977fa8a7a3aeed8e827d393e340', viewBox: "64 64 896 896", focusable: "false", "data-icon": "exclamation-circle", width: "1em", height: "1em", fill: "currentColor", "aria-hidden": "true" }, h("path", { key: '57965d3b6febe5754bff10a1971e2a6f7e6f742c', d: "M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm-32 232c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v272c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V296zm32 440a48.01 48.01 0 010-96 48.01 48.01 0 010 96z" })))), this.validateStatus === 'validating' && (h("span", { key: 'c6f937df1576cf819f82b781a51b4251327e58d0', role: "img", "aria-label": "loading", class: "anticon anticon-loading" }, h("svg", { key: '0ddc19bd99b81eb8d9cbfeef27713a84738821bc', viewBox: "0 0 1024 1024", focusable: "false", "data-icon": "loading", width: "1em", height: "1em", fill: "currentColor", "aria-hidden": "true", class: "anticon-spin" }, h("path", { key: '4170c00b2eb78bca579c05afcde8c6f74b2534f6', d: "M988 548c-19.9 0-36-16.1-36-36 0-59.4-11.6-117-34.6-171.3a440.45 440.45 0 00-94.3-139.9 437.71 437.71 0 00-139.9-94.3C629 83.6 571.4 72 512 72c-19.9 0-36-16.1-36-36s16.1-36 36-36c69.1 0 136.2 13.5 199.3 40.3C772.3 66 827 103 874 150c47 47 83.9 101.8 109.7 162.7 26.7 63.1 40.2 130.2 40.2 199.3.1 19.9-16 36-35.9 36z" }))))))), displayHelp && (h("div", { key: 'c0fee0d5924b829c6e83fdde04e6f6b8083763c6', class: "x-form-item-explain" }, h("div", { key: '95dfa6a1a8d9643934e09c13ec7266fd8e824df4', role: "alert" }, displayHelp))), this.extra && (h("div", { key: 'b71cc65d15e1eae8ce0a904d0db956c0f549dcce', class: "x-form-item-extra" }, this.extra))))));
972
- }
973
- static get watchers() { return {
974
- "name": [{
975
- "nameChanged": 0
976
- }]
977
- }; }
978
- };
979
- XFormItem.style = xFormItemCss();
980
-
981
- /**
982
- * X-Input-Number Types - Following Ant Design Specification
983
- */
984
- /**
985
- * Helper to validate if value is within range
986
- */
987
- /**
988
- * Helper to clamp value within range
989
- */
990
- function clampValue(value, min, max, precision) {
991
- if (value === null || value === undefined || value === '') {
992
- return value;
993
- }
994
- let numValue = typeof value === 'string' ? parseFloat(value) : value;
995
- if (isNaN(numValue)) {
996
- return null;
997
- }
998
- // Clamp to range
999
- numValue = Math.min(Math.max(numValue, min), max);
1000
- // Apply precision
1001
- if (precision !== undefined && precision >= 0) {
1002
- numValue = parseFloat(numValue.toFixed(precision));
1003
- }
1004
- return numValue;
1005
- }
1006
- /**
1007
- * Helper to format number with precision
1008
- */
1009
- function formatWithPrecision(value, precision) {
1010
- if (value === null || value === undefined || value === '') {
1011
- return '';
1012
- }
1013
- const numValue = typeof value === 'string' ? parseFloat(value) : value;
1014
- if (isNaN(numValue)) {
1015
- return '';
1016
- }
1017
- if (precision !== undefined && precision >= 0) {
1018
- return numValue.toFixed(precision);
1019
- }
1020
- return String(numValue);
1021
- }
1022
- /**
1023
- * Helper to add step with precision handling
1024
- */
1025
- function addStep(value, step, direction, precision) {
1026
- let numValue = 0;
1027
- if (value !== null && value !== undefined && value !== '') {
1028
- numValue = typeof value === 'string' ? parseFloat(value) : value;
1029
- if (isNaN(numValue)) {
1030
- numValue = 0;
1031
- }
1032
- }
1033
- const offset = direction === 'up' ? step : -step;
1034
- let nextValue = numValue + offset;
1035
- // Handle floating point precision issues
1036
- if (precision !== undefined && precision >= 0) {
1037
- nextValue = parseFloat(nextValue.toFixed(precision));
1038
- }
1039
- else {
1040
- // Auto-detect precision from step
1041
- const stepStr = String(step);
1042
- const decimalIndex = stepStr.indexOf('.');
1043
- if (decimalIndex !== -1) {
1044
- const stepPrecision = stepStr.length - decimalIndex - 1;
1045
- nextValue = parseFloat(nextValue.toFixed(stepPrecision));
1046
- }
1047
- }
1048
- return nextValue;
1049
- }
1050
-
1051
- const xInputNumberCss = () => `:root{--x-color-primary:#1677ff;--x-color-primary-rgb:22, 119, 255;--x-color-primary-contrast:#ffffff;--x-color-primary-contrast-rgb:255, 255, 255;--x-color-primary-shade:#0958d9;--x-color-primary-tint:#4096ff;--x-color-primary-bg:#e6f4ff;--x-color-primary-bg-hover:#bae0ff;--x-color-primary-border:#91caff;--x-color-primary-border-hover:#69b1ff;--x-color-primary-hover:#4096ff;--x-color-primary-active:#0958d9;--x-color-primary-text:#1677ff;--x-color-primary-text-hover:#4096ff;--x-color-primary-text-active:#0958d9;--x-color-secondary:#3dc2ff;--x-color-secondary-rgb:61, 194, 255;--x-color-secondary-contrast:#ffffff;--x-color-secondary-contrast-rgb:255, 255, 255;--x-color-secondary-shade:#36abe0;--x-color-secondary-tint:#50c8ff;--x-color-success:#52c41a;--x-color-success-rgb:82, 196, 26;--x-color-success-contrast:#ffffff;--x-color-success-contrast-rgb:255, 255, 255;--x-color-success-shade:#389e0d;--x-color-success-tint:#73d13d;--x-color-success-bg:#f6ffed;--x-color-success-bg-hover:#d9f7be;--x-color-success-border:#b7eb8f;--x-color-success-border-hover:#95de64;--x-color-success-hover:#73d13d;--x-color-success-active:#389e0d;--x-color-success-text:#52c41a;--x-color-success-text-hover:#73d13d;--x-color-success-text-active:#389e0d;--x-color-warning:#faad14;--x-color-warning-rgb:250, 173, 20;--x-color-warning-contrast:#000000;--x-color-warning-contrast-rgb:0, 0, 0;--x-color-warning-shade:#d48806;--x-color-warning-tint:#ffc53d;--x-color-warning-bg:#fffbe6;--x-color-warning-bg-hover:#fff1b8;--x-color-warning-border:#ffe58f;--x-color-warning-border-hover:#ffd666;--x-color-warning-hover:#ffc53d;--x-color-warning-active:#d48806;--x-color-warning-text:#faad14;--x-color-warning-text-hover:#ffc53d;--x-color-warning-text-active:#d48806;--x-color-danger:#ff4d4f;--x-color-danger-rgb:255, 77, 79;--x-color-danger-contrast:#ffffff;--x-color-danger-contrast-rgb:255, 255, 255;--x-color-danger-shade:#cf1322;--x-color-danger-tint:#ff7875;--x-color-error:#ff4d4f;--x-color-error-rgb:255, 77, 79;--x-color-error-bg:#fff2f0;--x-color-error-bg-hover:#ffccc7;--x-color-error-border:#ffa39e;--x-color-error-border-hover:#ff7875;--x-color-error-hover:#ff7875;--x-color-error-active:#d9363e;--x-color-error-text:#ff4d4f;--x-color-error-text-hover:#ff7875;--x-color-error-text-active:#d9363e;--x-color-info:#1677ff;--x-color-info-rgb:22, 119, 255;--x-color-info-bg:#e6f4ff;--x-color-info-bg-hover:#bae0ff;--x-color-info-border:#91caff;--x-color-info-border-hover:#69b1ff;--x-color-info-hover:#69b1ff;--x-color-info-active:#0958d9;--x-color-info-text:#1677ff;--x-color-info-text-hover:#69b1ff;--x-color-info-text-active:#0958d9;--x-color-text:rgba(0, 0, 0, 0.88);--x-color-text-secondary:rgba(0, 0, 0, 0.65);--x-color-text-tertiary:rgba(0, 0, 0, 0.45);--x-color-text-quaternary:rgba(0, 0, 0, 0.25);--x-color-text-disabled:rgba(0, 0, 0, 0.25);--x-color-text-placeholder:rgba(0, 0, 0, 0.25);--x-color-text-heading:rgba(0, 0, 0, 0.88);--x-color-text-label:rgba(0, 0, 0, 0.65);--x-color-text-description:rgba(0, 0, 0, 0.45);--x-color-text-light-solid:#ffffff;--x-color-bg-container:#ffffff;--x-color-bg-elevated:#ffffff;--x-color-bg-layout:#f5f5f5;--x-color-bg-spotlight:rgba(0, 0, 0, 0.85);--x-color-bg-mask:rgba(0, 0, 0, 0.45);--x-color-bg-base:#ffffff;--x-color-bg-container-disabled:#f5f5f5;--x-color-bg-container-loading:rgba(255, 255, 255, 0.65);--x-color-white:#ffffff;--x-color-fill:rgba(0, 0, 0, 0.15);--x-color-fill-secondary:rgba(0, 0, 0, 0.06);--x-color-fill-tertiary:rgba(0, 0, 0, 0.04);--x-color-fill-quaternary:rgba(0, 0, 0, 0.02);--x-color-border:#d9d9d9;--x-color-border-secondary:#f0f0f0;--x-color-border-bg:#ffffff;--x-color-split:rgba(5, 5, 5, 0.06);--x-color-dark:#222428;--x-color-dark-rgb:34, 36, 40;--x-color-dark-contrast:#ffffff;--x-color-dark-contrast-rgb:255, 255, 255;--x-color-dark-shade:#1e2023;--x-color-dark-tint:#383a3e;--x-color-medium:#92949c;--x-color-medium-rgb:146, 148, 156;--x-color-medium-contrast:#ffffff;--x-color-medium-contrast-rgb:255, 255, 255;--x-color-medium-shade:#808289;--x-color-medium-tint:#9d9fa6;--x-color-light:#f4f5f8;--x-color-light-rgb:244, 245, 248;--x-color-light-contrast:#000000;--x-color-light-contrast-rgb:0, 0, 0;--x-color-light-shade:#d7d8da;--x-color-light-tint:#f5f6f9;--x-font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--x-font-family-code:"SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace;--x-font-size:14px;--x-font-size-sm:12px;--x-font-size-lg:16px;--x-font-size-xl:20px;--x-font-size-heading-1:38px;--x-font-size-heading-2:30px;--x-font-size-heading-3:24px;--x-font-size-heading-4:20px;--x-font-size-heading-5:16px;--x-line-height:1.5714285714285714;--x-line-height-lg:1.5;--x-line-height-sm:1.6666666666666667;--x-line-height-heading-1:1.2105263157894737;--x-line-height-heading-2:1.2666666666666666;--x-line-height-heading-3:1.3333333333333333;--x-line-height-heading-4:1.4;--x-line-height-heading-5:1.5;--x-font-weight-normal:400;--x-font-weight-medium:500;--x-font-weight-semibold:600;--x-font-weight-strong:600;--x-font-size-base:14px;--x-font-size-xxl:24px;--x-line-height-base:1.5714285714285714;--x-spacing-xxs:4px;--x-spacing-xs:8px;--x-spacing-sm:12px;--x-spacing-md:16px;--x-spacing-lg:20px;--x-spacing-xl:24px;--x-spacing-xxl:32px;--x-spacing-xxxl:48px;--x-margin-xxs:4px;--x-margin-xs:8px;--x-margin-sm:12px;--x-margin-md:16px;--x-margin-lg:24px;--x-margin-xl:32px;--x-margin-xxl:48px;--x-padding-xxs:4px;--x-padding-xs:8px;--x-padding-sm:12px;--x-padding-md:16px;--x-padding-lg:24px;--x-padding-content-horizontal-lg:24px;--x-padding-content-vertical-lg:12px;--x-padding-content-horizontal:16px;--x-padding-content-vertical:12px;--x-padding-content-horizontal-sm:16px;--x-padding-content-vertical-sm:8px;--x-border-radius:6px;--x-border-radius-xs:2px;--x-border-radius-sm:4px;--x-border-radius-lg:8px;--x-border-radius-xl:12px;--x-border-radius-outer:4px;--x-border-radius-base:6px;--x-border-width:1px;--x-border-width-base:1px;--x-shadow:0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 9px 28px 8px rgba(0, 0, 0, 0.05);--x-shadow-secondary:0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 9px 28px 8px rgba(0, 0, 0, 0.05);--x-shadow-tertiary:0 1px 2px 0 rgba(0, 0, 0, 0.03), 0 1px 6px -1px rgba(0, 0, 0, 0.02), 0 2px 4px 0 rgba(0, 0, 0, 0.02);--x-shadow-lg:0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 9px 28px 8px rgba(0, 0, 0, 0.05);--x-box-shadow:0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 9px 28px 8px rgba(0, 0, 0, 0.05);--x-box-shadow-secondary:0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 9px 28px 8px rgba(0, 0, 0, 0.05);--x-box-shadow-tertiary:0 1px 2px 0 rgba(0, 0, 0, 0.03), 0 1px 6px -1px rgba(0, 0, 0, 0.02), 0 2px 4px 0 rgba(0, 0, 0, 0.02);--x-box-shadow-popover-arrow:2px 2px 5px rgba(0, 0, 0, 0.05);--x-box-shadow-card:0 1px 2px -2px rgba(0, 0, 0, 0.16), 0 3px 6px 0 rgba(0, 0, 0, 0.12), 0 5px 12px 4px rgba(0, 0, 0, 0.09);--x-box-shadow-drawer-right:-6px 0 16px 0 rgba(0, 0, 0, 0.08), -3px 0 6px -4px rgba(0, 0, 0, 0.12), -9px 0 28px 8px rgba(0, 0, 0, 0.05);--x-box-shadow-drawer-left:6px 0 16px 0 rgba(0, 0, 0, 0.08), 3px 0 6px -4px rgba(0, 0, 0, 0.12), 9px 0 28px 8px rgba(0, 0, 0, 0.05);--x-box-shadow-drawer-up:0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 9px 28px 8px rgba(0, 0, 0, 0.05);--x-box-shadow-drawer-down:0 -6px 16px 0 rgba(0, 0, 0, 0.08), 0 -3px 6px -4px rgba(0, 0, 0, 0.12), 0 -9px 28px 8px rgba(0, 0, 0, 0.05);--x-box-shadow-tabs-overflow-left:inset 10px 0 8px -8px rgba(0, 0, 0, 0.08);--x-box-shadow-tabs-overflow-right:inset -10px 0 8px -8px rgba(0, 0, 0, 0.08);--x-box-shadow-tabs-overflow-top:inset 0 10px 8px -8px rgba(0, 0, 0, 0.08);--x-box-shadow-tabs-overflow-bottom:inset 0 -10px 8px -8px rgba(0, 0, 0, 0.08);--x-motion-duration-fast:0.1s;--x-motion-duration-mid:0.2s;--x-motion-duration-slow:0.3s;--x-motion-ease-in-out:cubic-bezier(0.645, 0.045, 0.355, 1);--x-motion-ease-out:cubic-bezier(0.215, 0.61, 0.355, 1);--x-motion-ease-in:cubic-bezier(0.55, 0.055, 0.675, 0.19);--x-motion-ease-out-back:cubic-bezier(0.12, 0.4, 0.29, 1.46);--x-motion-ease-in-back:cubic-bezier(0.71, -0.46, 0.88, 0.6);--x-motion-ease-in-out-circle:cubic-bezier(0.78, 0.14, 0.15, 0.86);--x-motion-ease-out-circle:cubic-bezier(0.08, 0.82, 0.17, 1);--x-motion-ease-in-circle:cubic-bezier(0.6, 0.04, 0.98, 0.34);--x-motion-ease-in-quint:cubic-bezier(0.755, 0.05, 0.855, 0.06);--x-motion-ease-out-quint:cubic-bezier(0.23, 1, 0.32, 1);--x-z-index-base:0;--x-z-index-popup-base:1000;--x-z-index-popup:1030;--x-z-index-affix:10;--x-z-index-modal:1000;--x-z-index-modal-mask:1000;--x-z-index-drawer:1000;--x-z-index-popover:1030;--x-z-index-dropdown:1050;--x-z-index-tooltip:1070;--x-z-index-notification:1080;--x-z-index-message:1090;--x-z-index-popconfirm:1060;--x-z-index-table-fixed:10;--x-opacity-loading:0.65;--x-opacity-image:1;--x-opacity-disabled:0.5;--x-control-height:32px;--x-control-height-xs:24px;--x-control-height-sm:24px;--x-control-height-lg:40px;--x-control-radio-size:16px;--x-control-checkbox-size:16px;--x-control-padding-horizontal:12px;--x-control-padding-horizontal-sm:8px;--x-control-outline-width:2px;--x-control-outline:rgba(5, 145, 255, 0.1);--x-control-item-bg-hover:rgba(0, 0, 0, 0.04);--x-control-item-bg-active:#e6f4ff;--x-control-item-bg-active-hover:#bae0ff;--x-control-item-bg-active-disabled:rgba(0, 0, 0, 0.15);--x-control-tmp-outline:rgba(0, 0, 0, 0.02);--x-color-yellow:#fadb14;--x-color-yellow-rgb:250, 219, 20;--x-font-family-base:var(--x-font-family);--x-color-link:#1677ff;--x-color-link-hover:#69b1ff;--x-color-link-active:#0958d9;--x-color-icon:rgba(0, 0, 0, 0.45);--x-color-icon-hover:rgba(0, 0, 0, 0.88);--x-color-highlight:#ff4d4f;--x-color-bg-text-hover:rgba(0, 0, 0, 0.06);--x-color-bg-text-active:rgba(0, 0, 0, 0.15);--x-screen-xs:480px;--x-screen-xs-min:480px;--x-screen-xs-max:575px;--x-screen-sm:576px;--x-screen-sm-min:576px;--x-screen-sm-max:767px;--x-screen-md:768px;--x-screen-md-min:768px;--x-screen-md-max:991px;--x-screen-lg:992px;--x-screen-lg-min:992px;--x-screen-lg-max:1199px;--x-screen-xl:1200px;--x-screen-xl-min:1200px;--x-screen-xl-max:1599px;--x-screen-xxl:1600px;--x-screen-xxl-min:1600px;--x-color-fill-content:rgba(0, 0, 0, 0.06);--x-color-fill-content-hover:rgba(0, 0, 0, 0.15);--x-color-fill-alter:rgba(0, 0, 0, 0.02);--x-scrollbar-width:12px;--x-scrollbar-track-bg:rgba(0, 0, 0, 0.04);--x-scrollbar-thumb-bg:rgba(0, 0, 0, 0.25);--x-scrollbar-thumb-bg-hover:rgba(0, 0, 0, 0.35);--x-menu-dark-bg:#001529;--x-menu-dark-item-bg:#001529;--x-menu-dark-popup-bg:#001529;--x-menu-dark-submenu-item-bg:#000c17}:host{display:-ms-inline-flexbox;display:inline-flex;width:100%;font-size:var(--x-input-number-font-size, var(--x-control-font-size, var(--x-font-size-base, 14px)));line-height:var(--x-input-number-line-height, var(--x-line-height-base, 1.5714285714));color:var(--x-input-number-color, var(--x-control-color, var(--x-color-text, rgba(0, 0, 0, 0.88))));-webkit-box-sizing:border-box;box-sizing:border-box}:host(.x-input-number-small){width:100%;font-size:var(--x-input-number-font-size-sm, var(--x-font-size-base, 14px))}:host(.x-input-number-large){width:100%;font-size:var(--x-input-number-font-size-lg, var(--x-font-size-lg, 16px))}.x-input-number-wrapper{position:relative;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;width:100%;min-width:0;padding:0 var(--x-control-padding-horizontal, var(--x-spacing-md, 12px));min-height:var(--x-control-height, var(--x-size-control-height, 32px));background-color:var(--x-control-bg, var(--x-color-bg-container, #ffffff));border:var(--x-control-border-width, var(--x-border-width-base, 1px)) solid var(--x-control-border-color, var(--x-color-border, #d9d9d9));border-radius:var(--x-control-border-radius, var(--x-border-radius-base, 6px));-webkit-transition:all 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);transition:all 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);-webkit-box-sizing:border-box;box-sizing:border-box}.x-input-number-wrapper:hover:not(.disabled):not([disabled]):not([class*=-disabled]){border-color:var(--x-control-border-color-hover, var(--x-color-primary-hover, #4096ff))}.x-input-number-wrapper.focused:not(.disabled):not([disabled]):not([class*=-disabled]),.x-input-number-wrapper:focus-within:not(.disabled):not([disabled]):not([class*=-disabled]){border-color:var(--x-control-border-color-focus, var(--x-color-primary, #1677ff)) !important;-webkit-box-shadow:0 0 0 3px var(--x-color-primary-bg, rgba(22, 119, 255, 0.06));box-shadow:0 0 0 3px var(--x-color-primary-bg, rgba(22, 119, 255, 0.06));z-index:1;outline:none}.x-input-number-wrapper{display:-ms-inline-flexbox;display:inline-flex;padding:0;background-color:var(--x-input-number-bg, var(--x-control-bg, var(--x-color-bg-container, #ffffff)))}.x-input-number-wrapper:hover .x-input-number-handler-wrap{opacity:1}.x-input-number-wrapper.x-input-number-focused .x-input-number-handler-wrap{opacity:1}.x-input-number-wrapper.x-input-number-disabled.disabled,.x-input-number-wrapper.x-input-number-disabled[disabled],.x-input-number-wrapper.x-input-number-disabled[class*=-disabled]{background-color:var(--x-control-bg-disabled, var(--x-color-bg-container-disabled, rgba(0, 0, 0, 0.04)));border-color:var(--x-control-border-color-disabled, var(--x-color-border, #d9d9d9));color:var(--x-control-color-disabled, var(--x-color-text-disabled, rgba(0, 0, 0, 0.25)));cursor:not-allowed}.x-input-number-wrapper.x-input-number-disabled.disabled:hover,.x-input-number-wrapper.x-input-number-disabled[disabled]:hover,.x-input-number-wrapper.x-input-number-disabled[class*=-disabled]:hover{border-color:var(--x-control-border-color-disabled, var(--x-color-border, #d9d9d9)) !important}.x-input-number-wrapper.x-input-number-disabled .x-input-number-input{color:var(--x-input-number-disabled-color, var(--x-control-color-disabled, var(--x-color-text-disabled, rgba(0, 0, 0, 0.25))));cursor:not-allowed}.x-input-number-wrapper.x-input-number-disabled .x-input-number-handler-wrap{display:none}.x-input-number-wrapper.x-input-number-readonly .x-input-number-handler-wrap{display:none}.x-input-number-wrapper.x-input-number-out-of-range .x-input-number-input{color:var(--x-input-number-out-of-range-color, var(--x-color-error, #ff4d4f))}.x-input-number-wrapper.x-input-number-status-error{border-color:var(--x-control-border-color-error, var(--x-color-error, #ff4d4f))}.x-input-number-wrapper.x-input-number-status-error:hover:not(.disabled):not([disabled]){border-color:var(--x-control-border-color-error-hover, var(--x-color-error-hover, #ff7875))}.x-input-number-wrapper.x-input-number-status-error.focused,.x-input-number-wrapper.x-input-number-status-error:focus-within{border-color:var(--x-control-border-color-error, var(--x-color-error, #ff4d4f));-webkit-box-shadow:0 0 0 3px var(--x-control-focus-shadow-error-color, var(--x-color-error-bg, rgba(255, 38, 5, 0.06)));box-shadow:0 0 0 3px var(--x-control-focus-shadow-error-color, var(--x-color-error-bg, rgba(255, 38, 5, 0.06)))}.x-input-number-wrapper.x-input-number-status-warning{border-color:var(--x-control-border-color-warning, var(--x-color-warning, #faad14))}.x-input-number-wrapper.x-input-number-status-warning:hover:not(.disabled):not([disabled]){border-color:var(--x-control-border-color-warning-hover, var(--x-color-warning-hover, #ffc53d))}.x-input-number-wrapper.x-input-number-status-warning.focused,.x-input-number-wrapper.x-input-number-status-warning:focus-within{border-color:var(--x-control-border-color-warning, var(--x-color-warning, #faad14));-webkit-box-shadow:0 0 0 3px var(--x-control-focus-shadow-warning-color, var(--x-color-warning-bg, rgba(255, 215, 5, 0.1)));box-shadow:0 0 0 3px var(--x-control-focus-shadow-warning-color, var(--x-color-warning-bg, rgba(255, 215, 5, 0.1)))}.x-input-number-wrapper.x-input-number-borderless{background-color:transparent;border-color:transparent;-webkit-box-shadow:none;box-shadow:none}.x-input-number-wrapper.x-input-number-borderless:hover{border-color:transparent}.x-input-number-wrapper.x-input-number-borderless.focused,.x-input-number-wrapper.x-input-number-borderless:focus-within{border-color:transparent;-webkit-box-shadow:none;box-shadow:none}.x-input-number-wrapper.x-input-number-filled{background-color:var(--x-color-fill-tertiary, rgba(0, 0, 0, 0.04));border-color:transparent}.x-input-number-wrapper.x-input-number-filled:hover:not(.disabled):not([disabled]){background-color:var(--x-color-fill-secondary, rgba(0, 0, 0, 0.06));border-color:transparent}.x-input-number-wrapper.x-input-number-filled.focused,.x-input-number-wrapper.x-input-number-filled:focus-within{background-color:var(--x-control-bg, var(--x-color-bg-container, #ffffff));border-color:var(--x-control-border-color-focus, var(--x-color-primary, #1677ff))}.x-input-number-input-wrap{-ms-flex:1;flex:1;min-width:0}.x-input-number-input{width:100%;height:var(--x-input-number-height, var(--x-control-height, var(--x-size-control-height, 32px)));padding:var(--x-input-number-padding-vertical, var(--x-control-padding-vertical, 4px)) var(--x-input-number-padding-horizontal, var(--x-control-padding-horizontal, 11px));background-color:transparent;border:none;border-radius:var(--x-input-number-border-radius, var(--x-border-radius-base, 6px));outline:none;color:inherit;font-size:inherit;line-height:inherit;text-align:left;-webkit-transition:all var(--x-input-number-motion-duration, var(--x-motion-duration-mid, 0.2s)) var(--x-input-number-motion-ease, var(--x-motion-ease-in-out, cubic-bezier(0.645, 0.045, 0.355, 1)));transition:all var(--x-input-number-motion-duration, var(--x-motion-duration-mid, 0.2s)) var(--x-input-number-motion-ease, var(--x-motion-ease-in-out, cubic-bezier(0.645, 0.045, 0.355, 1)));-webkit-box-sizing:border-box;box-sizing:border-box;-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.x-input-number-input::-webkit-inner-spin-button,.x-input-number-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.x-input-number-input::-webkit-input-placeholder{color:var(--x-input-number-placeholder-color, var(--x-control-placeholder-color, var(--x-color-text-placeholder, rgba(0, 0, 0, 0.25))))}.x-input-number-input::-moz-placeholder{color:var(--x-input-number-placeholder-color, var(--x-control-placeholder-color, var(--x-color-text-placeholder, rgba(0, 0, 0, 0.25))))}.x-input-number-input:-ms-input-placeholder{color:var(--x-input-number-placeholder-color, var(--x-control-placeholder-color, var(--x-color-text-placeholder, rgba(0, 0, 0, 0.25))))}.x-input-number-input::-ms-input-placeholder{color:var(--x-input-number-placeholder-color, var(--x-control-placeholder-color, var(--x-color-text-placeholder, rgba(0, 0, 0, 0.25))))}.x-input-number-input::placeholder{color:var(--x-input-number-placeholder-color, var(--x-control-placeholder-color, var(--x-color-text-placeholder, rgba(0, 0, 0, 0.25))))}.x-input-number-small .x-input-number-input{height:var(--x-input-number-height-sm, var(--x-control-height-sm, var(--x-size-control-height-sm, 24px)));padding:0 var(--x-input-number-padding-horizontal-sm, var(--x-control-padding-horizontal-sm, 7px))}.x-input-number-small{border-radius:var(--x-input-number-border-radius-sm, var(--x-border-radius-sm, 4px))}.x-input-number-small .x-input-number-handler-wrap{width:var(--x-input-number-handler-width-sm, 18px)}.x-input-number-large .x-input-number-input{height:var(--x-input-number-height-lg, var(--x-control-height-lg, var(--x-size-control-height-lg, 40px)));padding:var(--x-input-number-padding-vertical, var(--x-control-padding-vertical, 4px)) var(--x-input-number-padding-horizontal-lg, var(--x-control-padding-horizontal, 11px));font-size:var(--x-input-number-font-size-lg, var(--x-font-size-lg, 16px))}.x-input-number-large{border-radius:var(--x-input-number-border-radius-lg, var(--x-border-radius-lg, 8px))}.x-input-number-large .x-input-number-handler-wrap{width:var(--x-input-number-handler-width-lg, 24px)}.x-input-number-handler-wrap{position:absolute;top:0;right:0;width:var(--x-input-number-handler-width, 22px);height:100%;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;background-color:var(--x-input-number-handler-bg, var(--x-color-bg-container, #fff));border-left:var(--x-input-number-border-width, var(--x-control-border-width, var(--x-border-width-base, 1px))) solid var(--x-input-number-handler-border-color, var(--x-color-border, #d9d9d9));border-radius:0 var(--x-input-number-border-radius, var(--x-border-radius-base, 6px)) var(--x-input-number-border-radius, var(--x-border-radius-base, 6px)) 0;opacity:0;-webkit-transition:opacity var(--x-input-number-motion-duration-fast, var(--x-motion-duration-fast, 0.1s)) ease;transition:opacity var(--x-input-number-motion-duration-fast, var(--x-motion-duration-fast, 0.1s)) ease;overflow:hidden}.x-input-number-handler{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;-ms-flex:1;flex:1;height:50%;color:var(--x-input-number-handler-color, var(--x-color-text-tertiary, rgba(0, 0, 0, 0.45)));font-size:7px;cursor:pointer;-webkit-transition:all var(--x-input-number-motion-duration-fast, var(--x-motion-duration-fast, 0.1s)) var(--x-input-number-motion-ease, var(--x-motion-ease-in-out, cubic-bezier(0.645, 0.045, 0.355, 1)));transition:all var(--x-input-number-motion-duration-fast, var(--x-motion-duration-fast, 0.1s)) var(--x-input-number-motion-ease, var(--x-motion-ease-in-out, cubic-bezier(0.645, 0.045, 0.355, 1)));-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.x-input-number-handler:hover{height:60%;color:var(--x-input-number-handler-color-hover, var(--x-color-primary, #1677ff))}.x-input-number-handler:active{background-color:var(--x-input-number-handler-active-bg, var(--x-color-fill-alter, rgba(0, 0, 0, 0.02)))}.x-input-number-handler.x-input-number-handler-disabled{color:var(--x-input-number-disabled-color, var(--x-control-color-disabled, var(--x-color-text-disabled, rgba(0, 0, 0, 0.25))));cursor:not-allowed}.x-input-number-handler.x-input-number-handler-disabled:hover{height:50%;color:var(--x-input-number-disabled-color, var(--x-control-color-disabled, var(--x-color-text-disabled, rgba(0, 0, 0, 0.25))))}.x-input-number-handler-up{border-bottom:var(--x-input-number-border-width, var(--x-control-border-width, var(--x-border-width-base, 1px))) solid var(--x-input-number-handler-border-color, var(--x-color-border, #d9d9d9));border-radius:0 var(--x-input-number-border-radius, var(--x-border-radius-base, 6px)) 0 0}.x-input-number-handler-down{border-radius:0 0 var(--x-input-number-border-radius, var(--x-border-radius-base, 6px)) 0}.x-input-number-handler-up-inner,.x-input-number-handler-down-inner{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:12px;height:12px}.x-input-number-handler-up-inner svg,.x-input-number-handler-down-inner svg{width:1em;height:1em}.x-input-number-prefix,.x-input-number-suffix{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;color:var(--x-input-number-color, var(--x-control-color, var(--x-color-text, rgba(0, 0, 0, 0.88))))}.x-input-number-prefix{padding-left:var(--x-input-number-padding-horizontal, var(--x-control-padding-horizontal, 11px))}.x-input-number-suffix{padding-right:var(--x-input-number-padding-horizontal, var(--x-control-padding-horizontal, 11px))}.x-input-number-has-affix .x-input-number-input{padding-left:8px;padding-right:8px}.x-input-number-group-addon{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:0 12px;background-color:var(--x-input-number-addon-bg, var(--x-color-fill-alter, rgba(0, 0, 0, 0.02)));border:var(--x-input-number-border-width, var(--x-control-border-width, var(--x-border-width-base, 1px))) solid var(--x-input-number-border-color, var(--x-control-border-color, var(--x-color-border, #d9d9d9)));color:var(--x-input-number-addon-color, var(--x-color-text, rgba(0, 0, 0, 0.88)));font-size:var(--x-input-number-font-size, var(--x-control-font-size, var(--x-font-size-base, 14px)));white-space:nowrap;-webkit-transition:all var(--x-input-number-motion-duration, var(--x-motion-duration-mid, 0.2s)) var(--x-input-number-motion-ease, var(--x-motion-ease-in-out, cubic-bezier(0.645, 0.045, 0.355, 1)));transition:all var(--x-input-number-motion-duration, var(--x-motion-duration-mid, 0.2s)) var(--x-input-number-motion-ease, var(--x-motion-ease-in-out, cubic-bezier(0.645, 0.045, 0.355, 1)))}.x-input-number-group-addon-before{border-right:0;border-radius:var(--x-input-number-border-radius, var(--x-border-radius-base, 6px)) 0 0 var(--x-input-number-border-radius, var(--x-border-radius-base, 6px))}.x-input-number-group-addon-after{border-left:0;border-radius:0 var(--x-input-number-border-radius, var(--x-border-radius-base, 6px)) var(--x-input-number-border-radius, var(--x-border-radius-base, 6px)) 0}.x-input-number-has-addon{border-radius:0}:host:has(.x-input-number-group-addon-before) .x-input-number-wrapper{border-top-left-radius:0;border-bottom-left-radius:0}:host:has(.x-input-number-group-addon-after) .x-input-number-wrapper{border-top-right-radius:0;border-bottom-right-radius:0}`;
1052
-
1053
- const XInputNumber = class {
1054
- constructor(hostRef) {
1055
- registerInstance(this, hostRef);
1056
- this.xChange = createEvent(this, "xChange", 7);
1057
- this.xPressEnter = createEvent(this, "xPressEnter", 7);
1058
- this.xStep = createEvent(this, "xStep", 7);
1059
- this.xFocus = createEvent(this, "xFocus", 7);
1060
- this.xBlur = createEvent(this, "xBlur", 7);
1061
- }
1062
- get el() { return getElement(this); }
1063
- // ==================== Props ====================
1064
- /**
1065
- * The label text displayed after (on the right side of) the input field
1066
- * @example
1067
- * <x-input-number addonAfter="USD"></x-input-number>
1068
- */
1069
- addonAfter;
1070
- /**
1071
- * The label text displayed before (on the left side of) the input field
1072
- * @example
1073
- * <x-input-number addonBefore="$"></x-input-number>
1074
- */
1075
- addonBefore;
1076
- /**
1077
- * Whether to get focus when component mounted
1078
- * @default false
1079
- * @example
1080
- * <x-input-number autoFocus></x-input-number>
1081
- */
1082
- autoFocus = false;
1083
- /**
1084
- * Whether to show +/- controls
1085
- * @default true
1086
- * @example
1087
- * <x-input-number controls={false}></x-input-number>
1088
- */
1089
- controls = true;
1090
- /**
1091
- * Custom decimal separator
1092
- * @example
1093
- * <x-input-number decimalSeparator=","></x-input-number>
1094
- */
1095
- decimalSeparator;
1096
- /**
1097
- * Default value
1098
- * @example
1099
- * <x-input-number defaultValue={3}></x-input-number>
1100
- */
1101
- defaultValue;
1102
- /**
1103
- * Whether the input is disabled
1104
- * @default false
1105
- * @example
1106
- * <x-input-number disabled></x-input-number>
1107
- */
1108
- disabled = false;
1109
- /**
1110
- * Specifies the format of the value presented
1111
- * @example
1112
- * <x-input-number formatter={(v) => `$${v}`}></x-input-number>
1113
- */
1114
- formatter;
1115
- /**
1116
- * Whether to enable keyboard behavior
1117
- * @default true
1118
- * @example
1119
- * <x-input-number keyboard={false}></x-input-number>
1120
- */
1121
- keyboard = true;
1122
- /**
1123
- * The max value
1124
- * @default Number.MAX_SAFE_INTEGER
1125
- * @example
1126
- * <x-input-number max={100}></x-input-number>
1127
- */
1128
- max = Number.MAX_SAFE_INTEGER;
1129
- /**
1130
- * The min value
1131
- * @default Number.MIN_SAFE_INTEGER
1132
- * @example
1133
- * <x-input-number min={0}></x-input-number>
1134
- */
1135
- min = Number.MIN_SAFE_INTEGER;
1136
- /**
1137
- * Specifies the value extracted from formatter
1138
- * @example
1139
- * <x-input-number parser={(v) => v.replace(/[^\d.]/g, '')}></x-input-number>
1140
- */
1141
- parser;
1142
- /**
1143
- * Placeholder text
1144
- * @example
1145
- * <x-input-number placeholder="Amount"></x-input-number>
1146
- */
1147
- placeholder;
1148
- /**
1149
- * The precision of input value
1150
- * @example
1151
- * <x-input-number precision={2}></x-input-number>
1152
- */
1153
- precision;
1154
- /**
1155
- * The prefix icon/text for the Input
1156
- * @example
1157
- * <x-input-number prefixIcon="calculate"></x-input-number>
1158
- */
1159
- prefixIcon;
1160
- /**
1161
- * Whether the input is read only
1162
- * @default false
1163
- * @example
1164
- * <x-input-number readOnly></x-input-number>
1165
- */
1166
- readOnly = false;
1167
- /**
1168
- * The size of the input box
1169
- * @default 'middle'
1170
- * @example
1171
- * <x-input-number size="small"></x-input-number>
1172
- */
1173
- size = 'middle';
1174
- /**
1175
- * Set validation status
1176
- * @example
1177
- * <x-input-number status="error"></x-input-number>
1178
- */
1179
- status;
1180
- /**
1181
- * The number to which the current value is increased or decreased
1182
- * @default 1
1183
- * @example
1184
- * <x-input-number step={0.5}></x-input-number>
1185
- */
1186
- step = 1;
1187
- /**
1188
- * Set value as string to support high precision decimals
1189
- * @default false
1190
- * @example
1191
- * <x-input-number stringMode></x-input-number>
1192
- */
1193
- stringMode = false;
1194
- /**
1195
- * The suffix icon/text for the Input
1196
- * @example
1197
- * <x-input-number suffix="kg"></x-input-number>
1198
- */
1199
- suffix;
1200
- /**
1201
- * Current value
1202
- * @example
1203
- * <x-input-number value={10}></x-input-number>
1204
- */
1205
- value;
1206
- /**
1207
- * Variants of Input
1208
- * @default 'outlined'
1209
- * @example
1210
- * <x-input-number variant="filled"></x-input-number>
1211
- */
1212
- variant = 'outlined';
1213
- /**
1214
- * Enable wheel to change value
1215
- * @default false
1216
- * @example
1217
- * <x-input-number changeOnWheel></x-input-number>
1218
- */
1219
- changeOnWheel = false;
1220
- /**
1221
- * Custom class names
1222
- * @example
1223
- * <x-input-number classNames={{ root: 'my-input-number' }}></x-input-number>
1224
- */
1225
- classNames;
1226
- /**
1227
- * Custom styles
1228
- * @example
1229
- * <x-input-number styles={{ root: { width: '200px' } }}></x-input-number>
1230
- */
1231
- styles;
1232
- // ==================== Events ====================
1233
- /**
1234
- * Emitted when value is changed
1235
- * @example
1236
- * <x-input-number onXChange={(ev) => console.log(ev.detail)}></x-input-number>
1237
- */
1238
- xChange;
1239
- /**
1240
- * Emitted when the user presses Enter
1241
- * @example
1242
- * <x-input-number onXPressEnter={(ev) => console.log(ev.key)}></x-input-number>
1243
- */
1244
- xPressEnter;
1245
- /**
1246
- * Emitted when step button is clicked
1247
- * @example
1248
- * <x-input-number onXStep={(ev) => console.log(ev.detail)}></x-input-number>
1249
- */
1250
- xStep;
1251
- /**
1252
- * Emitted when input gets focus
1253
- * @example
1254
- * <x-input-number onXFocus={(ev) => console.log(ev)}></x-input-number>
1255
- */
1256
- xFocus;
1257
- /**
1258
- * Emitted when input loses focus
1259
- * @example
1260
- * <x-input-number onXBlur={(ev) => console.log(ev)}></x-input-number>
1261
- */
1262
- xBlur;
1263
- // ==================== State ====================
1264
- /**
1265
- * Focus state.
1266
- */
1267
- focused = false;
1268
- /**
1269
- * Display value in input.
1270
- */
1271
- inputValue = '';
1272
- /**
1273
- * Typing state to avoid clamping mid-typing.
1274
- */
1275
- isTyping = false;
1276
- // ==================== Private Properties ====================
1277
- /**
1278
- * Input element reference.
1279
- */
1280
- inputRef;
1281
- /**
1282
- * Timer for long-press stepping.
1283
- */
1284
- holdTimer;
1285
- // ==================== Lifecycle ====================
1286
- /**
1287
- * Initialize value before render.
1288
- * @returns void
1289
- */
1290
- componentWillLoad() {
1291
- // Initialize value
1292
- if (this.value === undefined && this.defaultValue !== undefined) {
1293
- this.value = this.defaultValue;
1294
- }
1295
- this.updateInputValue();
1296
- }
1297
- /**
1298
- * Auto focus on mount when enabled.
1299
- * @returns void
1300
- */
1301
- componentDidLoad() {
1302
- if (this.autoFocus && this.inputRef) {
1303
- this.inputRef.focus();
1304
- }
1305
- }
1306
- /**
1307
- * Cleanup timers on disconnect.
1308
- * @returns void
1309
- */
1310
- disconnectedCallback() {
1311
- if (this.holdTimer) {
1312
- clearInterval(this.holdTimer);
1313
- }
1314
- }
1315
- // ==================== Watchers ====================
1316
- /**
1317
- * Sync input display when value changes.
1318
- * @returns void
1319
- */
1320
- handleValueChange() {
1321
- if (!this.isTyping) {
1322
- this.updateInputValue();
1323
- }
1324
- }
1325
- // ==================== Public Methods ====================
1326
- /**
1327
- * Focus the input element
1328
- * @returns Promise<void>
1329
- * @example
1330
- * await el.setFocus()
1331
- */
1332
- async setFocus() {
1333
- this.inputRef?.focus();
1334
- }
1335
- /**
1336
- * Remove focus from the input element
1337
- * @returns Promise<void>
1338
- * @example
1339
- * await el.setBlur()
1340
- */
1341
- async setBlur() {
1342
- this.inputRef?.blur();
1343
- }
1344
- // ==================== Private Methods ====================
1345
- /**
1346
- * Update formatted input display value.
1347
- *
1348
- * Flow:
1349
- * 1. Checks if `value` is valid.
1350
- * 2. Formats value using `formatter` prop or default `formatWithPrecision`.
1351
- * 3. Replaces decimal separator if custom one is provided.
1352
- * 4. Updates `inputValue` state (which is displayed in the input).
1353
- *
1354
- * @returns void
1355
- */
1356
- updateInputValue() {
1357
- let displayValue = '';
1358
- if (this.value !== null && this.value !== undefined && this.value !== '') {
1359
- if (this.formatter) {
1360
- displayValue = this.formatter(this.value, {
1361
- userTyping: this.isTyping,
1362
- input: this.inputValue,
1363
- });
1364
- }
1365
- else {
1366
- displayValue = formatWithPrecision(this.value, this.precision);
1367
- }
1368
- // Apply custom decimal separator
1369
- if (this.decimalSeparator && this.decimalSeparator !== '.') {
1370
- displayValue = displayValue.replace('.', this.decimalSeparator);
1371
- }
1372
- }
1373
- this.inputValue = displayValue;
1374
- }
1375
- /**
1376
- * Parse input string into numeric value.
1377
- *
1378
- * Flow:
1379
- * 1. Handles empty or invalid inputs.
1380
- * 2. Applies `parser` prop if provided.
1381
- * 3. Normalizes custom decimal separator to dot.
1382
- * 4. Removes non-numeric characters.
1383
- * 5. Parses string to float.
1384
- *
1385
- * @param input - Input string.
1386
- * @returns InputNumberValue
1387
- */
1388
- parseValue(input) {
1389
- if (!input || input === '' || input === '-') {
1390
- return null;
1391
- }
1392
- let value = input;
1393
- // Apply parser if provided
1394
- if (this.parser) {
1395
- return this.parser(value);
1396
- }
1397
- // Replace custom decimal separator
1398
- if (this.decimalSeparator && this.decimalSeparator !== '.') {
1399
- value = value.replace(new RegExp(`\\${this.decimalSeparator}`, 'g'), '.');
1400
- }
1401
- // Remove non-numeric characters
1402
- value = value.replace(/[^\d.-]/g, '');
1403
- const numValue = parseFloat(value);
1404
- return isNaN(numValue) ? null : numValue;
1405
- }
1406
- /**
1407
- * Handle input change and emit events.
1408
- *
1409
- * Flow:
1410
- * 1. Updates `inputValue` state from target.
1411
- * 2. Sets `isTyping` flag to true (prevents auto-formatting while typing).
1412
- * 3. Parses value.
1413
- * 4. Updates `value` state (without clamping, to allow intermediate invalid states while typing).
1414
- * 5. Emits `xChange` event.
1415
- *
1416
- * @param e - Input event.
1417
- * @returns void
1418
- */
1419
- handleInput = (e) => {
1420
- const target = e.target;
1421
- this.inputValue = target.value;
1422
- this.isTyping = true;
1423
- const parsedValue = this.parseValue(target.value);
1424
- if (parsedValue !== null) {
1425
- // Don't clamp while typing, just update value
1426
- this.value = this.stringMode ? String(parsedValue) : parsedValue;
1427
- this.xChange.emit({ value: this.value });
1428
- }
1429
- };
1430
- /**
1431
- * Handle input focus.
1432
- * @param e - Focus event.
1433
- * @returns void
1434
- */
1435
- handleFocus = (e) => {
1436
- this.focused = true;
1437
- this.xFocus.emit(e);
1438
- };
1439
- /**
1440
- * Handle input blur and clamp value.
1441
- * @param e - Focus event.
1442
- * @returns void
1443
- */
1444
- handleBlur = (e) => {
1445
- this.focused = false;
1446
- this.isTyping = false;
1447
- // Validate and clamp value on blur
1448
- let finalValue = this.value;
1449
- if (finalValue !== null && finalValue !== undefined && finalValue !== '') {
1450
- finalValue = clampValue(finalValue, this.min, this.max, this.precision);
1451
- }
1452
- if (finalValue !== this.value) {
1453
- this.value = finalValue;
1454
- this.xChange.emit({ value: this.value });
1455
- }
1456
- this.updateInputValue();
1457
- this.xBlur.emit(e);
1458
- };
1459
- /**
1460
- * Handle keyboard input and stepping.
1461
- * @param e - Keyboard event.
1462
- * @returns void
1463
- */
1464
- handleKeyDown = (e) => {
1465
- if (e.key === 'Enter') {
1466
- this.xPressEnter.emit(e);
1467
- this.handleBlur(e);
1468
- }
1469
- else if (this.keyboard) {
1470
- if (e.key === 'ArrowUp') {
1471
- e.preventDefault();
1472
- this.handleStep('up');
1473
- }
1474
- else if (e.key === 'ArrowDown') {
1475
- e.preventDefault();
1476
- this.handleStep('down');
1477
- }
1478
- }
1479
- };
1480
- /**
1481
- * Handle mouse wheel for stepping.
1482
- * @param e - Wheel event.
1483
- * @returns void
1484
- */
1485
- handleWheel = (e) => {
1486
- if (!this.changeOnWheel || !this.focused || this.disabled || this.readOnly) {
1487
- return;
1488
- }
1489
- e.preventDefault();
1490
- if (e.deltaY < 0) {
1491
- this.handleStep('up');
1492
- }
1493
- else if (e.deltaY > 0) {
1494
- this.handleStep('down');
1495
- }
1496
- };
1497
- /**
1498
- * Handle step change.
1499
- *
1500
- * Flow:
1501
- * 1. Checks if disabled or readonly.
1502
- * 2. Calculates next value using `addStep`.
1503
- * 3. Clamps result within bounds.
1504
- * 4. Updates `value` and `inputValue`.
1505
- * 5. Emits `xChange` and `xStep` events.
1506
- *
1507
- * @param type - Step direction.
1508
- * @returns void
1509
- */
1510
- handleStep = (type) => {
1511
- if (this.disabled || this.readOnly)
1512
- return;
1513
- const nextValue = addStep(this.value, this.step, type, this.precision);
1514
- const clampedValue = clampValue(nextValue, this.min, this.max, this.precision);
1515
- if (clampedValue !== null) {
1516
- this.value = this.stringMode ? String(clampedValue) : clampedValue;
1517
- this.isTyping = false;
1518
- this.updateInputValue();
1519
- this.xChange.emit({ value: this.value });
1520
- this.xStep.emit({
1521
- value: this.value,
1522
- offset: type === 'up' ? this.step : -this.step,
1523
- type,
1524
- });
1525
- }
1526
- };
1527
- /**
1528
- * Handle step button press and start repeat.
1529
- * @param type - Step direction.
1530
- * @param e - Mouse event.
1531
- * @returns void
1532
- */
1533
- handleStepMouseDown = (type, e) => {
1534
- e.preventDefault();
1535
- this.handleStep(type);
1536
- // Long press handling
1537
- let delay = 600;
1538
- const repeatStep = () => {
1539
- this.handleStep(type);
1540
- delay = Math.max(50, delay * 0.9);
1541
- this.holdTimer = window.setTimeout(repeatStep, delay);
1542
- };
1543
- this.holdTimer = window.setTimeout(repeatStep, delay);
1544
- };
1545
- /**
1546
- * Stop long-press stepping.
1547
- * @returns void
1548
- */
1549
- handleStepMouseUp = () => {
1550
- if (this.holdTimer) {
1551
- clearTimeout(this.holdTimer);
1552
- this.holdTimer = undefined;
1553
- }
1554
- };
1555
- /**
1556
- * Check if step-up is disabled.
1557
- * @returns boolean
1558
- */
1559
- isUpDisabled() {
1560
- if (this.disabled || this.readOnly)
1561
- return true;
1562
- const numValue = typeof this.value === 'string' ? parseFloat(this.value) : this.value;
1563
- return numValue !== null && numValue !== undefined && !isNaN(numValue) && numValue >= this.max;
1564
- }
1565
- /**
1566
- * Check if step-down is disabled.
1567
- * @returns boolean
1568
- */
1569
- isDownDisabled() {
1570
- if (this.disabled || this.readOnly)
1571
- return true;
1572
- const numValue = typeof this.value === 'string' ? parseFloat(this.value) : this.value;
1573
- return numValue !== null && numValue !== undefined && !isNaN(numValue) && numValue <= this.min;
1574
- }
1575
- /**
1576
- * Check if current value is out of range.
1577
- * @returns boolean
1578
- */
1579
- isOutOfRange() {
1580
- if (this.value === null || this.value === undefined || this.value === '') {
1581
- return false;
1582
- }
1583
- const numValue = typeof this.value === 'string' ? parseFloat(this.value) : this.value;
1584
- if (isNaN(numValue))
1585
- return false;
1586
- return numValue < this.min || numValue > this.max;
1587
- }
1588
- // ==================== Render ====================
1589
- /**
1590
- * Render up icon.
1591
- * @returns JSX.Element
1592
- */
1593
- renderUpIcon() {
1594
- return (
1595
- // <svg viewBox="64 64 896 896" focusable="false" width="1em" height="1em" fill="currentColor">
1596
- // <path d="M890.5 755.3L537.9 269.2c-12.8-17.6-39-17.6-51.7 0L133.5 755.3A8 8 0 00140 768h75c5.1 0 9.9-2.5 12.9-6.6L512 369.8l284.1 391.6c3 4.1 7.8 6.6 12.9 6.6h75c6.5 0 10.3-7.4 6.5-12.7z" />
1597
- // </svg>
1598
- h("x-icon", { name: getIcon('arrowUp') }));
1599
- }
1600
- /**
1601
- * Render down icon.
1602
- * @returns JSX.Element
1603
- */
1604
- renderDownIcon() {
1605
- return (
1606
- // <svg viewBox="64 64 896 896" focusable="false" width="1em" height="1em" fill="currentColor">
1607
- // <path d="M884 256h-75c-5.1 0-9.9 2.5-12.9 6.6L512 654.2 227.9 262.6c-3-4.1-7.8-6.6-12.9-6.6h-75c-6.5 0-10.3 7.4-6.5 12.7l352.6 486.1c12.8 17.6 39 17.6 51.7 0l352.6-486.1c3.9-5.3.1-12.7-6.4-12.7z" />
1608
- // </svg>
1609
- h("x-icon", { name: getIcon('arrowDown') }));
1610
- }
1611
- /**
1612
- * Render input number with controls.
1613
- * @returns JSX.Element
1614
- * @example
1615
- * <x-input-number min={0} max={10} step={1}></x-input-number>
1616
- */
1617
- render() {
1618
- const hasAddon = !!this.addonBefore || !!this.addonAfter;
1619
- const hasAffix = !!this.prefixIcon || !!this.suffix;
1620
- const wrapperClasses = {
1621
- 'x-input-number-wrapper': true,
1622
- 'x-input-number-focused': this.focused,
1623
- 'x-input-number-disabled': this.disabled,
1624
- 'x-input-number-readonly': this.readOnly,
1625
- 'disabled': this.disabled,
1626
- 'readonly': this.readOnly,
1627
- 'x-input-number-out-of-range': this.isOutOfRange(),
1628
- 'x-input-number-status-error': this.status === 'error',
1629
- 'x-input-number-status-warning': this.status === 'warning',
1630
- [`x-input-number-${this.size}`]: true,
1631
- [`x-input-number-${this.variant}`]: true,
1632
- 'x-input-number-has-addon': hasAddon,
1633
- 'x-input-number-has-affix': hasAffix,
1634
- [this.classNames?.root ?? '']: !!this.classNames?.root,
1635
- };
1636
- return (h(Host, { key: '121ff396550785581268cf58bbba452398aa194e', class: {
1637
- 'x-input-number': true,
1638
- [`x-input-number-${this.size}`]: true,
1639
- } }, this.addonBefore && (h("span", { key: '65f9ebae015943f7748f625888a9257d3424d7de', class: "x-input-number-group-addon x-input-number-group-addon-before" }, h("slot", { key: 'eeaa2f4a4c22a04597109330901320ce5ca4d17a', name: "addonBefore" }, this.addonBefore))), h("div", { key: '4f13fea7319c6ea1520860a3eb62e758ed5f7e86', class: wrapperClasses, style: this.styles?.root }, this.prefixIcon && (h("span", { key: '5aef84bfd3445b9eba412a03c5bf3d6f4839849d', class: { 'x-input-number-prefix': true, [this.classNames?.prefix ?? '']: !!this.classNames?.prefix } }, h("slot", { key: 'e4d077e06a16fd89ea7e4d98767840b408123669', name: "prefix" }, this.prefixIcon))), h("div", { key: '95e44d6fb300e9a94c5bcbb64602523ee87bf26d', class: "x-input-number-input-wrap" }, h("input", { key: '9c416504c66b8ac7faa07dc2f83eca2867bb8d42', ref: (el) => (this.inputRef = el), class: {
1640
- 'x-input-number-input': true,
1641
- [this.classNames?.input ?? '']: !!this.classNames?.input,
1642
- }, style: this.styles?.input, type: "text", inputMode: "decimal", autocomplete: "off", role: "spinbutton", "aria-valuemin": this.min, "aria-valuemax": this.max, "aria-valuenow": this.value, value: this.inputValue, disabled: this.disabled, readOnly: this.readOnly, placeholder: this.placeholder, onInput: this.handleInput, onFocus: this.handleFocus, onBlur: this.handleBlur, onKeyDown: this.handleKeyDown, onWheel: this.handleWheel })), this.suffix && (h("span", { key: 'f5d9448d1dd2f00cc7c874230e7aa44ee08d9116', class: { 'x-input-number-suffix': true, [this.classNames?.suffix ?? '']: !!this.classNames?.suffix } }, h("slot", { key: 'f58380ae67766132439c8146d823e2a86b6bf32b', name: "suffix" }, this.suffix))), this.controls && (h("div", { key: '72e5024bf232d212300639b5b2030093b2149531', class: { 'x-input-number-handler-wrap': true, [this.classNames?.handlers ?? '']: !!this.classNames?.handlers } }, h("span", { key: '67968406dee6198ff1cc652351d39ac53e6043ef', class: {
1643
- 'x-input-number-handler': true,
1644
- 'x-input-number-handler-up': true,
1645
- 'x-input-number-handler-disabled': this.isUpDisabled(),
1646
- }, onMouseDown: (e) => !this.isUpDisabled() && this.handleStepMouseDown('up', e), onMouseUp: this.handleStepMouseUp, onMouseLeave: this.handleStepMouseUp }, h("span", { key: 'fba5d46dc0b52db13e8315e3201c87f23fd08f84', class: "x-input-number-handler-up-inner" }, this.renderUpIcon())), h("span", { key: '3ecbdf11351a90ebc795f021f0cccb05cf1e08f9', class: {
1647
- 'x-input-number-handler': true,
1648
- 'x-input-number-handler-down': true,
1649
- 'x-input-number-handler-disabled': this.isDownDisabled(),
1650
- }, onMouseDown: (e) => !this.isDownDisabled() && this.handleStepMouseDown('down', e), onMouseUp: this.handleStepMouseUp, onMouseLeave: this.handleStepMouseUp }, h("span", { key: '4335fd45f1a1842d1419a8e5edc2449f45f3faf8', class: "x-input-number-handler-down-inner" }, this.renderDownIcon()))))), this.addonAfter && (h("span", { key: '0ca6d501421a7641e0ed055b1abd5f0d29e498d2', class: "x-input-number-group-addon x-input-number-group-addon-after" }, h("slot", { key: '41f103cb4fe2b0c7a6e6d2dccf82ac3b2a983f56', name: "addonAfter" }, this.addonAfter)))));
1651
- }
1652
- static get watchers() { return {
1653
- "value": [{
1654
- "handleValueChange": 0
1655
- }]
1656
- }; }
1657
- };
1658
- XInputNumber.style = xInputNumberCss();
1659
-
1660
- const xModalCss = () => `@charset "UTF-8";:root{--x-color-primary:#1677ff;--x-color-primary-rgb:22, 119, 255;--x-color-primary-contrast:#ffffff;--x-color-primary-contrast-rgb:255, 255, 255;--x-color-primary-shade:#0958d9;--x-color-primary-tint:#4096ff;--x-color-primary-bg:#e6f4ff;--x-color-primary-bg-hover:#bae0ff;--x-color-primary-border:#91caff;--x-color-primary-border-hover:#69b1ff;--x-color-primary-hover:#4096ff;--x-color-primary-active:#0958d9;--x-color-primary-text:#1677ff;--x-color-primary-text-hover:#4096ff;--x-color-primary-text-active:#0958d9;--x-color-secondary:#3dc2ff;--x-color-secondary-rgb:61, 194, 255;--x-color-secondary-contrast:#ffffff;--x-color-secondary-contrast-rgb:255, 255, 255;--x-color-secondary-shade:#36abe0;--x-color-secondary-tint:#50c8ff;--x-color-success:#52c41a;--x-color-success-rgb:82, 196, 26;--x-color-success-contrast:#ffffff;--x-color-success-contrast-rgb:255, 255, 255;--x-color-success-shade:#389e0d;--x-color-success-tint:#73d13d;--x-color-success-bg:#f6ffed;--x-color-success-bg-hover:#d9f7be;--x-color-success-border:#b7eb8f;--x-color-success-border-hover:#95de64;--x-color-success-hover:#73d13d;--x-color-success-active:#389e0d;--x-color-success-text:#52c41a;--x-color-success-text-hover:#73d13d;--x-color-success-text-active:#389e0d;--x-color-warning:#faad14;--x-color-warning-rgb:250, 173, 20;--x-color-warning-contrast:#000000;--x-color-warning-contrast-rgb:0, 0, 0;--x-color-warning-shade:#d48806;--x-color-warning-tint:#ffc53d;--x-color-warning-bg:#fffbe6;--x-color-warning-bg-hover:#fff1b8;--x-color-warning-border:#ffe58f;--x-color-warning-border-hover:#ffd666;--x-color-warning-hover:#ffc53d;--x-color-warning-active:#d48806;--x-color-warning-text:#faad14;--x-color-warning-text-hover:#ffc53d;--x-color-warning-text-active:#d48806;--x-color-danger:#ff4d4f;--x-color-danger-rgb:255, 77, 79;--x-color-danger-contrast:#ffffff;--x-color-danger-contrast-rgb:255, 255, 255;--x-color-danger-shade:#cf1322;--x-color-danger-tint:#ff7875;--x-color-error:#ff4d4f;--x-color-error-rgb:255, 77, 79;--x-color-error-bg:#fff2f0;--x-color-error-bg-hover:#ffccc7;--x-color-error-border:#ffa39e;--x-color-error-border-hover:#ff7875;--x-color-error-hover:#ff7875;--x-color-error-active:#d9363e;--x-color-error-text:#ff4d4f;--x-color-error-text-hover:#ff7875;--x-color-error-text-active:#d9363e;--x-color-info:#1677ff;--x-color-info-rgb:22, 119, 255;--x-color-info-bg:#e6f4ff;--x-color-info-bg-hover:#bae0ff;--x-color-info-border:#91caff;--x-color-info-border-hover:#69b1ff;--x-color-info-hover:#69b1ff;--x-color-info-active:#0958d9;--x-color-info-text:#1677ff;--x-color-info-text-hover:#69b1ff;--x-color-info-text-active:#0958d9;--x-color-text:rgba(0, 0, 0, 0.88);--x-color-text-secondary:rgba(0, 0, 0, 0.65);--x-color-text-tertiary:rgba(0, 0, 0, 0.45);--x-color-text-quaternary:rgba(0, 0, 0, 0.25);--x-color-text-disabled:rgba(0, 0, 0, 0.25);--x-color-text-placeholder:rgba(0, 0, 0, 0.25);--x-color-text-heading:rgba(0, 0, 0, 0.88);--x-color-text-label:rgba(0, 0, 0, 0.65);--x-color-text-description:rgba(0, 0, 0, 0.45);--x-color-text-light-solid:#ffffff;--x-color-bg-container:#ffffff;--x-color-bg-elevated:#ffffff;--x-color-bg-layout:#f5f5f5;--x-color-bg-spotlight:rgba(0, 0, 0, 0.85);--x-color-bg-mask:rgba(0, 0, 0, 0.45);--x-color-bg-base:#ffffff;--x-color-bg-container-disabled:#f5f5f5;--x-color-bg-container-loading:rgba(255, 255, 255, 0.65);--x-color-white:#ffffff;--x-color-fill:rgba(0, 0, 0, 0.15);--x-color-fill-secondary:rgba(0, 0, 0, 0.06);--x-color-fill-tertiary:rgba(0, 0, 0, 0.04);--x-color-fill-quaternary:rgba(0, 0, 0, 0.02);--x-color-border:#d9d9d9;--x-color-border-secondary:#f0f0f0;--x-color-border-bg:#ffffff;--x-color-split:rgba(5, 5, 5, 0.06);--x-color-dark:#222428;--x-color-dark-rgb:34, 36, 40;--x-color-dark-contrast:#ffffff;--x-color-dark-contrast-rgb:255, 255, 255;--x-color-dark-shade:#1e2023;--x-color-dark-tint:#383a3e;--x-color-medium:#92949c;--x-color-medium-rgb:146, 148, 156;--x-color-medium-contrast:#ffffff;--x-color-medium-contrast-rgb:255, 255, 255;--x-color-medium-shade:#808289;--x-color-medium-tint:#9d9fa6;--x-color-light:#f4f5f8;--x-color-light-rgb:244, 245, 248;--x-color-light-contrast:#000000;--x-color-light-contrast-rgb:0, 0, 0;--x-color-light-shade:#d7d8da;--x-color-light-tint:#f5f6f9;--x-font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--x-font-family-code:"SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace;--x-font-size:14px;--x-font-size-sm:12px;--x-font-size-lg:16px;--x-font-size-xl:20px;--x-font-size-heading-1:38px;--x-font-size-heading-2:30px;--x-font-size-heading-3:24px;--x-font-size-heading-4:20px;--x-font-size-heading-5:16px;--x-line-height:1.5714285714285714;--x-line-height-lg:1.5;--x-line-height-sm:1.6666666666666667;--x-line-height-heading-1:1.2105263157894737;--x-line-height-heading-2:1.2666666666666666;--x-line-height-heading-3:1.3333333333333333;--x-line-height-heading-4:1.4;--x-line-height-heading-5:1.5;--x-font-weight-normal:400;--x-font-weight-medium:500;--x-font-weight-semibold:600;--x-font-weight-strong:600;--x-font-size-base:14px;--x-font-size-xxl:24px;--x-line-height-base:1.5714285714285714;--x-spacing-xxs:4px;--x-spacing-xs:8px;--x-spacing-sm:12px;--x-spacing-md:16px;--x-spacing-lg:20px;--x-spacing-xl:24px;--x-spacing-xxl:32px;--x-spacing-xxxl:48px;--x-margin-xxs:4px;--x-margin-xs:8px;--x-margin-sm:12px;--x-margin-md:16px;--x-margin-lg:24px;--x-margin-xl:32px;--x-margin-xxl:48px;--x-padding-xxs:4px;--x-padding-xs:8px;--x-padding-sm:12px;--x-padding-md:16px;--x-padding-lg:24px;--x-padding-content-horizontal-lg:24px;--x-padding-content-vertical-lg:12px;--x-padding-content-horizontal:16px;--x-padding-content-vertical:12px;--x-padding-content-horizontal-sm:16px;--x-padding-content-vertical-sm:8px;--x-border-radius:6px;--x-border-radius-xs:2px;--x-border-radius-sm:4px;--x-border-radius-lg:8px;--x-border-radius-xl:12px;--x-border-radius-outer:4px;--x-border-radius-base:6px;--x-border-width:1px;--x-border-width-base:1px;--x-shadow:0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 9px 28px 8px rgba(0, 0, 0, 0.05);--x-shadow-secondary:0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 9px 28px 8px rgba(0, 0, 0, 0.05);--x-shadow-tertiary:0 1px 2px 0 rgba(0, 0, 0, 0.03), 0 1px 6px -1px rgba(0, 0, 0, 0.02), 0 2px 4px 0 rgba(0, 0, 0, 0.02);--x-shadow-lg:0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 9px 28px 8px rgba(0, 0, 0, 0.05);--x-box-shadow:0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 9px 28px 8px rgba(0, 0, 0, 0.05);--x-box-shadow-secondary:0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 9px 28px 8px rgba(0, 0, 0, 0.05);--x-box-shadow-tertiary:0 1px 2px 0 rgba(0, 0, 0, 0.03), 0 1px 6px -1px rgba(0, 0, 0, 0.02), 0 2px 4px 0 rgba(0, 0, 0, 0.02);--x-box-shadow-popover-arrow:2px 2px 5px rgba(0, 0, 0, 0.05);--x-box-shadow-card:0 1px 2px -2px rgba(0, 0, 0, 0.16), 0 3px 6px 0 rgba(0, 0, 0, 0.12), 0 5px 12px 4px rgba(0, 0, 0, 0.09);--x-box-shadow-drawer-right:-6px 0 16px 0 rgba(0, 0, 0, 0.08), -3px 0 6px -4px rgba(0, 0, 0, 0.12), -9px 0 28px 8px rgba(0, 0, 0, 0.05);--x-box-shadow-drawer-left:6px 0 16px 0 rgba(0, 0, 0, 0.08), 3px 0 6px -4px rgba(0, 0, 0, 0.12), 9px 0 28px 8px rgba(0, 0, 0, 0.05);--x-box-shadow-drawer-up:0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 9px 28px 8px rgba(0, 0, 0, 0.05);--x-box-shadow-drawer-down:0 -6px 16px 0 rgba(0, 0, 0, 0.08), 0 -3px 6px -4px rgba(0, 0, 0, 0.12), 0 -9px 28px 8px rgba(0, 0, 0, 0.05);--x-box-shadow-tabs-overflow-left:inset 10px 0 8px -8px rgba(0, 0, 0, 0.08);--x-box-shadow-tabs-overflow-right:inset -10px 0 8px -8px rgba(0, 0, 0, 0.08);--x-box-shadow-tabs-overflow-top:inset 0 10px 8px -8px rgba(0, 0, 0, 0.08);--x-box-shadow-tabs-overflow-bottom:inset 0 -10px 8px -8px rgba(0, 0, 0, 0.08);--x-motion-duration-fast:0.1s;--x-motion-duration-mid:0.2s;--x-motion-duration-slow:0.3s;--x-motion-ease-in-out:cubic-bezier(0.645, 0.045, 0.355, 1);--x-motion-ease-out:cubic-bezier(0.215, 0.61, 0.355, 1);--x-motion-ease-in:cubic-bezier(0.55, 0.055, 0.675, 0.19);--x-motion-ease-out-back:cubic-bezier(0.12, 0.4, 0.29, 1.46);--x-motion-ease-in-back:cubic-bezier(0.71, -0.46, 0.88, 0.6);--x-motion-ease-in-out-circle:cubic-bezier(0.78, 0.14, 0.15, 0.86);--x-motion-ease-out-circle:cubic-bezier(0.08, 0.82, 0.17, 1);--x-motion-ease-in-circle:cubic-bezier(0.6, 0.04, 0.98, 0.34);--x-motion-ease-in-quint:cubic-bezier(0.755, 0.05, 0.855, 0.06);--x-motion-ease-out-quint:cubic-bezier(0.23, 1, 0.32, 1);--x-z-index-base:0;--x-z-index-popup-base:1000;--x-z-index-popup:1030;--x-z-index-affix:10;--x-z-index-modal:1000;--x-z-index-modal-mask:1000;--x-z-index-drawer:1000;--x-z-index-popover:1030;--x-z-index-dropdown:1050;--x-z-index-tooltip:1070;--x-z-index-notification:1080;--x-z-index-message:1090;--x-z-index-popconfirm:1060;--x-z-index-table-fixed:10;--x-opacity-loading:0.65;--x-opacity-image:1;--x-opacity-disabled:0.5;--x-control-height:32px;--x-control-height-xs:24px;--x-control-height-sm:24px;--x-control-height-lg:40px;--x-control-radio-size:16px;--x-control-checkbox-size:16px;--x-control-padding-horizontal:12px;--x-control-padding-horizontal-sm:8px;--x-control-outline-width:2px;--x-control-outline:rgba(5, 145, 255, 0.1);--x-control-item-bg-hover:rgba(0, 0, 0, 0.04);--x-control-item-bg-active:#e6f4ff;--x-control-item-bg-active-hover:#bae0ff;--x-control-item-bg-active-disabled:rgba(0, 0, 0, 0.15);--x-control-tmp-outline:rgba(0, 0, 0, 0.02);--x-color-yellow:#fadb14;--x-color-yellow-rgb:250, 219, 20;--x-font-family-base:var(--x-font-family);--x-color-link:#1677ff;--x-color-link-hover:#69b1ff;--x-color-link-active:#0958d9;--x-color-icon:rgba(0, 0, 0, 0.45);--x-color-icon-hover:rgba(0, 0, 0, 0.88);--x-color-highlight:#ff4d4f;--x-color-bg-text-hover:rgba(0, 0, 0, 0.06);--x-color-bg-text-active:rgba(0, 0, 0, 0.15);--x-screen-xs:480px;--x-screen-xs-min:480px;--x-screen-xs-max:575px;--x-screen-sm:576px;--x-screen-sm-min:576px;--x-screen-sm-max:767px;--x-screen-md:768px;--x-screen-md-min:768px;--x-screen-md-max:991px;--x-screen-lg:992px;--x-screen-lg-min:992px;--x-screen-lg-max:1199px;--x-screen-xl:1200px;--x-screen-xl-min:1200px;--x-screen-xl-max:1599px;--x-screen-xxl:1600px;--x-screen-xxl-min:1600px;--x-color-fill-content:rgba(0, 0, 0, 0.06);--x-color-fill-content-hover:rgba(0, 0, 0, 0.15);--x-color-fill-alter:rgba(0, 0, 0, 0.02);--x-scrollbar-width:12px;--x-scrollbar-track-bg:rgba(0, 0, 0, 0.04);--x-scrollbar-thumb-bg:rgba(0, 0, 0, 0.25);--x-scrollbar-thumb-bg-hover:rgba(0, 0, 0, 0.35);--x-menu-dark-bg:#001529;--x-menu-dark-item-bg:#001529;--x-menu-dark-popup-bg:#001529;--x-menu-dark-submenu-item-bg:#000c17}:host{display:none;position:fixed;top:0;left:0;width:100%;height:100%;z-index:var(--x-modal-z-index, 1000);font-family:var(--x-modal-font-family, var(--x-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif))}:host(.x-modal-open){display:block}.x-modal-mask{position:fixed;top:0;left:0;width:100%;height:100%;background-color:var(--x-modal-mask-bg, var(--x-color-bg-mask, rgba(0, 0, 0, 0.45)));z-index:var(--x-modal-mask-z-index, 1000)}.x-modal-wrap{position:fixed;top:0;left:0;width:100%;height:100%;overflow:auto;outline:0;z-index:var(--x-modal-z-index, 1000);display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:center;justify-content:center;padding:var(--x-modal-padding-top, 100px) 0 var(--x-modal-padding-bottom, var(--x-spacing-xl, 24px))}:host(.x-modal-centered) .x-modal-wrap{-ms-flex-align:center;align-items:center;padding:0}.x-modal-content{position:relative;background-color:var(--x-modal-content-bg, var(--x-color-bg-container, #ffffff));background-clip:padding-box;border:0;border-radius:var(--x-modal-content-border-radius, var(--x-border-radius-lg, 8px));-webkit-box-shadow:var(--x-modal-content-shadow, var(--x-box-shadow, 0 6px 16px 0 rgba(0, 0, 0, 0.08)));box-shadow:var(--x-modal-content-shadow, var(--x-box-shadow, 0 6px 16px 0 rgba(0, 0, 0, 0.08)));pointer-events:auto;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.x-modal-header{padding:var(--x-modal-header-padding-block, var(--x-spacing-md, 16px)) var(--x-modal-header-padding-inline, var(--x-spacing-xl, 24px));color:var(--x-modal-title-color, var(--x-color-text-heading, rgba(0, 0, 0, 0.88)));background:var(--x-modal-header-bg, var(--x-color-bg-container, #ffffff));border-bottom:var(--x-modal-header-border-width, var(--x-border-width, 1px)) solid var(--x-modal-header-border-color, var(--x-color-border-secondary, #f0f0f0));border-radius:var(--x-modal-content-border-radius, var(--x-border-radius-lg, 8px)) var(--x-modal-content-border-radius, var(--x-border-radius-lg, 8px)) 0 0;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-align:center;align-items:center}.x-modal-title{margin:0;color:var(--x-modal-title-color, var(--x-color-text-heading, rgba(0, 0, 0, 0.88)));font-weight:var(--x-modal-title-font-weight, var(--x-font-weight-strong, 600));font-size:var(--x-modal-title-font-size, var(--x-font-size-lg, 16px));line-height:var(--x-modal-close-size, 22px);word-wrap:break-word}.x-modal-close{display:block;width:var(--x-modal-close-size, 22px);height:var(--x-modal-close-size, 22px);margin-right:var(--x-modal-close-margin-end, -12px);padding:0;color:var(--x-modal-close-color, var(--x-color-icon, rgba(0, 0, 0, 0.45)));font-weight:var(--x-modal-close-font-weight, 700);line-height:var(--x-modal-close-line-height, 1);text-decoration:none;background:transparent;border:0;outline:0;cursor:pointer;-webkit-transition:color var(--x-modal-motion-duration, var(--x-motion-duration-slow, 0.3s));transition:color var(--x-modal-motion-duration, var(--x-motion-duration-slow, 0.3s))}.x-modal-close:hover{color:var(--x-modal-close-color-hover, var(--x-color-icon-hover, rgba(0, 0, 0, 0.88)));text-decoration:none}.x-modal-body{padding:var(--x-modal-body-padding, var(--x-spacing-xl, 24px));font-size:var(--x-modal-body-font-size, var(--x-font-size-base, 14px));line-height:var(--x-modal-body-line-height, var(--x-line-height-base, 1.5714));word-wrap:break-word}.x-modal-footer{padding:var(--x-modal-footer-padding-block, var(--x-spacing-sm, 8px)) var(--x-modal-footer-padding-inline, var(--x-spacing-md, 16px));text-align:right;background:transparent;border-top:var(--x-modal-header-border-width, var(--x-border-width, 1px)) solid var(--x-modal-footer-border-color, var(--x-color-border-secondary, #f0f0f0));border-radius:0 0 var(--x-modal-footer-border-radius, var(--x-border-radius-xs, 2px)) var(--x-modal-footer-border-radius, var(--x-border-radius-xs, 2px));display:-ms-flexbox;display:flex;-ms-flex-pack:end;justify-content:flex-end;gap:var(--x-modal-footer-gap, var(--x-spacing-xs, 8px))}`;
1661
-
1662
- const XModal = class {
1663
- constructor(hostRef) {
1664
- registerInstance(this, hostRef);
1665
- this.xOk = createEvent(this, "xOk", 7);
1666
- this.xCancel = createEvent(this, "xCancel", 7);
1667
- }
1668
- get el() { return getElement(this); }
1669
- /**
1670
- * Whether the modal is visible.
1671
- * @example
1672
- * <x-modal visible></x-modal>
1673
- */
1674
- visible = false;
1675
- /**
1676
- * Modal title.
1677
- * @example
1678
- * <x-modal modalTitle="Confirm"></x-modal>
1679
- */
1680
- modalTitle;
1681
- /**
1682
- * Width of the modal.
1683
- * @example
1684
- * <x-modal width={600}></x-modal>
1685
- */
1686
- width = 520;
1687
- /**
1688
- * Whether to show footer.
1689
- * @example
1690
- * <x-modal footer={false}></x-modal>
1691
- */
1692
- footer = true;
1693
- /**
1694
- * Whether to show close button.
1695
- * @example
1696
- * <x-modal closable={false}></x-modal>
1697
- */
1698
- closable = true;
1699
- /**
1700
- * Whether to show mask.
1701
- * @example
1702
- * <x-modal mask={false}></x-modal>
1703
- */
1704
- mask = true;
1705
- /**
1706
- * Whether clicking mask closes modal.
1707
- * @example
1708
- * <x-modal maskClosable={false}></x-modal>
1709
- */
1710
- maskClosable = true;
1711
- /**
1712
- * Whether to center the modal.
1713
- * @example
1714
- * <x-modal centered></x-modal>
1715
- */
1716
- centered = false;
1717
- /**
1718
- * OK button text.
1719
- * @example
1720
- * <x-modal okText="OK"></x-modal>
1721
- */
1722
- okText = translate('Modal.okText', {}, 'OK');
1723
- /**
1724
- * Cancel button text.
1725
- * @example
1726
- * <x-modal cancelText="Cancel"></x-modal>
1727
- */
1728
- cancelText = translate('Modal.cancelText', {}, 'Cancel');
1729
- /**
1730
- * OK button loading state.
1731
- * @example
1732
- * <x-modal okLoading></x-modal>
1733
- */
1734
- okLoading = false;
1735
- /**
1736
- * Cancel button loading state.
1737
- * @example
1738
- * <x-modal cancelLoading></x-modal>
1739
- */
1740
- cancelLoading = false;
1741
- /**
1742
- * OK button type.
1743
- * @example
1744
- * <x-modal okType="primary"></x-modal>
1745
- */
1746
- okType = 'primary';
1747
- /**
1748
- * Modal type (info, success, error, warning, confirm).
1749
- * @example
1750
- * <x-modal type="info"></x-modal>
1751
- */
1752
- type;
1753
- /**
1754
- * Event emitted when OK button is clicked.
1755
- * @example
1756
- * <x-modal onXOk={() => {}}></x-modal>
1757
- */
1758
- xOk;
1759
- /**
1760
- * Event emitted when Cancel button or modal is closed.
1761
- * @example
1762
- * <x-modal onXCancel={() => {}}></x-modal>
1763
- */
1764
- xCancel;
1765
- /**
1766
- * Portal instance for modal content.
1767
- */
1768
- portalInstance = null;
1769
- /**
1770
- * Create portal on initial visible state.
1771
- * @returns void
1772
- */
1773
- componentDidLoad() {
1774
- if (this.visible) {
1775
- this.updatePortal();
1776
- }
1777
- }
1778
- /**
1779
- * Cleanup portal on disconnect.
1780
- * @returns void
1781
- */
1782
- disconnectedCallback() {
1783
- this.destroyPortal();
1784
- }
1785
- handleVisibleChange() {
1786
- this.updatePortal();
1787
- }
1788
- handlePropsChange() {
1789
- if (this.visible) {
1790
- this.updatePortal();
1791
- }
1792
- }
1793
- /**
1794
- * Get body content from slot.
1795
- * @returns string
1796
- */
1797
- getBodyContent() {
1798
- const slot = this.el.shadowRoot?.querySelector('slot:not([name])');
1799
- if (slot) {
1800
- const nodes = slot.assignedNodes({ flatten: true });
1801
- return nodes.map(node => {
1802
- if (node.nodeType === Node.ELEMENT_NODE) {
1803
- return node.outerHTML;
1804
- }
1805
- return node.textContent || '';
1806
- }).join('');
1807
- }
1808
- return '';
1809
- }
1810
- /**
1811
- * Get footer content from slot.
1812
- * @returns string
1813
- */
1814
- getFooterContent() {
1815
- const slot = this.el.shadowRoot?.querySelector('slot[name="footer"]');
1816
- if (slot) {
1817
- const nodes = slot.assignedNodes({ flatten: true });
1818
- if (nodes.length > 0) {
1819
- return nodes.map(node => {
1820
- if (node.nodeType === Node.ELEMENT_NODE) {
1821
- return node.outerHTML;
1822
- }
1823
- return node.textContent || '';
1824
- }).join('');
1825
- }
1826
- }
1827
- return '';
1828
- }
1829
- /**
1830
- * Build modal content element for portal.
1831
- *
1832
- * Flow:
1833
- * 1. Creates `x-modal-content` element.
1834
- * 2. Assigns all visual props (title, width, footer, etc.).
1835
- * 3. Injects body and footer content extracted from slots.
1836
- * 4. Attaches `xOk` and `xCancel` event listeners to forward events.
1837
- *
1838
- * @returns HTMLElement
1839
- */
1840
- buildModalElement() {
1841
- const modalEl = document.createElement('x-modal-content');
1842
- // Set properties
1843
- modalEl.modalTitle = this.modalTitle;
1844
- modalEl.width = this.width;
1845
- modalEl.footer = this.footer;
1846
- modalEl.closable = this.closable;
1847
- modalEl.mask = this.mask;
1848
- modalEl.maskClosable = this.maskClosable;
1849
- modalEl.centered = this.centered;
1850
- modalEl.okText = this.okText;
1851
- modalEl.cancelText = this.cancelText;
1852
- modalEl.okLoading = this.okLoading;
1853
- modalEl.cancelLoading = this.cancelLoading;
1854
- modalEl.okType = this.okType;
1855
- modalEl.type = this.type;
1856
- // Get slot content
1857
- modalEl.bodyContent = this.getBodyContent();
1858
- modalEl.footerContent = this.getFooterContent();
1859
- // Attach event listeners
1860
- modalEl.addEventListener('xOk', () => {
1861
- this.xOk.emit();
1862
- });
1863
- modalEl.addEventListener('xCancel', () => {
1864
- this.xCancel.emit();
1865
- });
1866
- return modalEl;
1867
- }
1868
- /**
1869
- * Update portal with modal content.
1870
- * @returns void
1871
- */
1872
- updatePortal() {
1873
- if (!this.visible) {
1874
- this.destroyPortal();
1875
- return;
1876
- }
1877
- // Build modal element
1878
- const modalElement = this.buildModalElement();
1879
- if (!this.portalInstance) {
1880
- // Create new portal instance
1881
- this.portalInstance = PortalController.create({
1882
- open: true,
1883
- zIndex: 1000,
1884
- content: modalElement,
1885
- });
1886
- }
1887
- else {
1888
- // Update existing portal
1889
- this.portalInstance.update({
1890
- open: true,
1891
- content: modalElement,
1892
- });
1893
- }
1894
- }
1895
- /**
1896
- * Destroy portal instance.
1897
- * @returns void
1898
- */
1899
- destroyPortal() {
1900
- if (this.portalInstance) {
1901
- this.portalInstance.destroy();
1902
- this.portalInstance = null;
1903
- }
1904
- }
1905
- /**
1906
- * Render hidden slots to capture content for portal.
1907
- * @returns JSX.Element
1908
- */
1909
- render() {
1910
- return (h(Host, { key: 'c3e46fc9b067f8d4700762b5bb0d284dc190c1e8', class: {
1911
- 'x-modal': true,
1912
- 'x-modal-open': this.visible,
1913
- } }, h("div", { key: 'd620493f845e4b86b29fa46b868dbab2d632908a', style: { display: 'none' } }, h("slot", { key: '202a7875383dfb9f3c6b5fc9a5183a916d0b9563' }), h("slot", { key: '10e85c6d0994bf249c3974bdb881efda16385702', name: "footer" }))));
1914
- }
1915
- static get watchers() { return {
1916
- "visible": [{
1917
- "handleVisibleChange": 0
1918
- }],
1919
- "modalTitle": [{
1920
- "handlePropsChange": 0
1921
- }],
1922
- "width": [{
1923
- "handlePropsChange": 0
1924
- }],
1925
- "footer": [{
1926
- "handlePropsChange": 0
1927
- }],
1928
- "closable": [{
1929
- "handlePropsChange": 0
1930
- }],
1931
- "mask": [{
1932
- "handlePropsChange": 0
1933
- }],
1934
- "maskClosable": [{
1935
- "handlePropsChange": 0
1936
- }],
1937
- "centered": [{
1938
- "handlePropsChange": 0
1939
- }],
1940
- "okText": [{
1941
- "handlePropsChange": 0
1942
- }],
1943
- "cancelText": [{
1944
- "handlePropsChange": 0
1945
- }],
1946
- "okLoading": [{
1947
- "handlePropsChange": 0
1948
- }],
1949
- "cancelLoading": [{
1950
- "handlePropsChange": 0
1951
- }],
1952
- "okType": [{
1953
- "handlePropsChange": 0
1954
- }],
1955
- "type": [{
1956
- "handlePropsChange": 0
1957
- }]
1958
- }; }
1959
- };
1960
- XModal.style = xModalCss();
1961
-
1962
- const xSliderCss = () => `@charset "UTF-8";:root{--x-color-primary:#1677ff;--x-color-primary-rgb:22, 119, 255;--x-color-primary-contrast:#ffffff;--x-color-primary-contrast-rgb:255, 255, 255;--x-color-primary-shade:#0958d9;--x-color-primary-tint:#4096ff;--x-color-primary-bg:#e6f4ff;--x-color-primary-bg-hover:#bae0ff;--x-color-primary-border:#91caff;--x-color-primary-border-hover:#69b1ff;--x-color-primary-hover:#4096ff;--x-color-primary-active:#0958d9;--x-color-primary-text:#1677ff;--x-color-primary-text-hover:#4096ff;--x-color-primary-text-active:#0958d9;--x-color-secondary:#3dc2ff;--x-color-secondary-rgb:61, 194, 255;--x-color-secondary-contrast:#ffffff;--x-color-secondary-contrast-rgb:255, 255, 255;--x-color-secondary-shade:#36abe0;--x-color-secondary-tint:#50c8ff;--x-color-success:#52c41a;--x-color-success-rgb:82, 196, 26;--x-color-success-contrast:#ffffff;--x-color-success-contrast-rgb:255, 255, 255;--x-color-success-shade:#389e0d;--x-color-success-tint:#73d13d;--x-color-success-bg:#f6ffed;--x-color-success-bg-hover:#d9f7be;--x-color-success-border:#b7eb8f;--x-color-success-border-hover:#95de64;--x-color-success-hover:#73d13d;--x-color-success-active:#389e0d;--x-color-success-text:#52c41a;--x-color-success-text-hover:#73d13d;--x-color-success-text-active:#389e0d;--x-color-warning:#faad14;--x-color-warning-rgb:250, 173, 20;--x-color-warning-contrast:#000000;--x-color-warning-contrast-rgb:0, 0, 0;--x-color-warning-shade:#d48806;--x-color-warning-tint:#ffc53d;--x-color-warning-bg:#fffbe6;--x-color-warning-bg-hover:#fff1b8;--x-color-warning-border:#ffe58f;--x-color-warning-border-hover:#ffd666;--x-color-warning-hover:#ffc53d;--x-color-warning-active:#d48806;--x-color-warning-text:#faad14;--x-color-warning-text-hover:#ffc53d;--x-color-warning-text-active:#d48806;--x-color-danger:#ff4d4f;--x-color-danger-rgb:255, 77, 79;--x-color-danger-contrast:#ffffff;--x-color-danger-contrast-rgb:255, 255, 255;--x-color-danger-shade:#cf1322;--x-color-danger-tint:#ff7875;--x-color-error:#ff4d4f;--x-color-error-rgb:255, 77, 79;--x-color-error-bg:#fff2f0;--x-color-error-bg-hover:#ffccc7;--x-color-error-border:#ffa39e;--x-color-error-border-hover:#ff7875;--x-color-error-hover:#ff7875;--x-color-error-active:#d9363e;--x-color-error-text:#ff4d4f;--x-color-error-text-hover:#ff7875;--x-color-error-text-active:#d9363e;--x-color-info:#1677ff;--x-color-info-rgb:22, 119, 255;--x-color-info-bg:#e6f4ff;--x-color-info-bg-hover:#bae0ff;--x-color-info-border:#91caff;--x-color-info-border-hover:#69b1ff;--x-color-info-hover:#69b1ff;--x-color-info-active:#0958d9;--x-color-info-text:#1677ff;--x-color-info-text-hover:#69b1ff;--x-color-info-text-active:#0958d9;--x-color-text:rgba(0, 0, 0, 0.88);--x-color-text-secondary:rgba(0, 0, 0, 0.65);--x-color-text-tertiary:rgba(0, 0, 0, 0.45);--x-color-text-quaternary:rgba(0, 0, 0, 0.25);--x-color-text-disabled:rgba(0, 0, 0, 0.25);--x-color-text-placeholder:rgba(0, 0, 0, 0.25);--x-color-text-heading:rgba(0, 0, 0, 0.88);--x-color-text-label:rgba(0, 0, 0, 0.65);--x-color-text-description:rgba(0, 0, 0, 0.45);--x-color-text-light-solid:#ffffff;--x-color-bg-container:#ffffff;--x-color-bg-elevated:#ffffff;--x-color-bg-layout:#f5f5f5;--x-color-bg-spotlight:rgba(0, 0, 0, 0.85);--x-color-bg-mask:rgba(0, 0, 0, 0.45);--x-color-bg-base:#ffffff;--x-color-bg-container-disabled:#f5f5f5;--x-color-bg-container-loading:rgba(255, 255, 255, 0.65);--x-color-white:#ffffff;--x-color-fill:rgba(0, 0, 0, 0.15);--x-color-fill-secondary:rgba(0, 0, 0, 0.06);--x-color-fill-tertiary:rgba(0, 0, 0, 0.04);--x-color-fill-quaternary:rgba(0, 0, 0, 0.02);--x-color-border:#d9d9d9;--x-color-border-secondary:#f0f0f0;--x-color-border-bg:#ffffff;--x-color-split:rgba(5, 5, 5, 0.06);--x-color-dark:#222428;--x-color-dark-rgb:34, 36, 40;--x-color-dark-contrast:#ffffff;--x-color-dark-contrast-rgb:255, 255, 255;--x-color-dark-shade:#1e2023;--x-color-dark-tint:#383a3e;--x-color-medium:#92949c;--x-color-medium-rgb:146, 148, 156;--x-color-medium-contrast:#ffffff;--x-color-medium-contrast-rgb:255, 255, 255;--x-color-medium-shade:#808289;--x-color-medium-tint:#9d9fa6;--x-color-light:#f4f5f8;--x-color-light-rgb:244, 245, 248;--x-color-light-contrast:#000000;--x-color-light-contrast-rgb:0, 0, 0;--x-color-light-shade:#d7d8da;--x-color-light-tint:#f5f6f9;--x-font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--x-font-family-code:"SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace;--x-font-size:14px;--x-font-size-sm:12px;--x-font-size-lg:16px;--x-font-size-xl:20px;--x-font-size-heading-1:38px;--x-font-size-heading-2:30px;--x-font-size-heading-3:24px;--x-font-size-heading-4:20px;--x-font-size-heading-5:16px;--x-line-height:1.5714285714285714;--x-line-height-lg:1.5;--x-line-height-sm:1.6666666666666667;--x-line-height-heading-1:1.2105263157894737;--x-line-height-heading-2:1.2666666666666666;--x-line-height-heading-3:1.3333333333333333;--x-line-height-heading-4:1.4;--x-line-height-heading-5:1.5;--x-font-weight-normal:400;--x-font-weight-medium:500;--x-font-weight-semibold:600;--x-font-weight-strong:600;--x-font-size-base:14px;--x-font-size-xxl:24px;--x-line-height-base:1.5714285714285714;--x-spacing-xxs:4px;--x-spacing-xs:8px;--x-spacing-sm:12px;--x-spacing-md:16px;--x-spacing-lg:20px;--x-spacing-xl:24px;--x-spacing-xxl:32px;--x-spacing-xxxl:48px;--x-margin-xxs:4px;--x-margin-xs:8px;--x-margin-sm:12px;--x-margin-md:16px;--x-margin-lg:24px;--x-margin-xl:32px;--x-margin-xxl:48px;--x-padding-xxs:4px;--x-padding-xs:8px;--x-padding-sm:12px;--x-padding-md:16px;--x-padding-lg:24px;--x-padding-content-horizontal-lg:24px;--x-padding-content-vertical-lg:12px;--x-padding-content-horizontal:16px;--x-padding-content-vertical:12px;--x-padding-content-horizontal-sm:16px;--x-padding-content-vertical-sm:8px;--x-border-radius:6px;--x-border-radius-xs:2px;--x-border-radius-sm:4px;--x-border-radius-lg:8px;--x-border-radius-xl:12px;--x-border-radius-outer:4px;--x-border-radius-base:6px;--x-border-width:1px;--x-border-width-base:1px;--x-shadow:0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 9px 28px 8px rgba(0, 0, 0, 0.05);--x-shadow-secondary:0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 9px 28px 8px rgba(0, 0, 0, 0.05);--x-shadow-tertiary:0 1px 2px 0 rgba(0, 0, 0, 0.03), 0 1px 6px -1px rgba(0, 0, 0, 0.02), 0 2px 4px 0 rgba(0, 0, 0, 0.02);--x-shadow-lg:0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 9px 28px 8px rgba(0, 0, 0, 0.05);--x-box-shadow:0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 9px 28px 8px rgba(0, 0, 0, 0.05);--x-box-shadow-secondary:0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 9px 28px 8px rgba(0, 0, 0, 0.05);--x-box-shadow-tertiary:0 1px 2px 0 rgba(0, 0, 0, 0.03), 0 1px 6px -1px rgba(0, 0, 0, 0.02), 0 2px 4px 0 rgba(0, 0, 0, 0.02);--x-box-shadow-popover-arrow:2px 2px 5px rgba(0, 0, 0, 0.05);--x-box-shadow-card:0 1px 2px -2px rgba(0, 0, 0, 0.16), 0 3px 6px 0 rgba(0, 0, 0, 0.12), 0 5px 12px 4px rgba(0, 0, 0, 0.09);--x-box-shadow-drawer-right:-6px 0 16px 0 rgba(0, 0, 0, 0.08), -3px 0 6px -4px rgba(0, 0, 0, 0.12), -9px 0 28px 8px rgba(0, 0, 0, 0.05);--x-box-shadow-drawer-left:6px 0 16px 0 rgba(0, 0, 0, 0.08), 3px 0 6px -4px rgba(0, 0, 0, 0.12), 9px 0 28px 8px rgba(0, 0, 0, 0.05);--x-box-shadow-drawer-up:0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 9px 28px 8px rgba(0, 0, 0, 0.05);--x-box-shadow-drawer-down:0 -6px 16px 0 rgba(0, 0, 0, 0.08), 0 -3px 6px -4px rgba(0, 0, 0, 0.12), 0 -9px 28px 8px rgba(0, 0, 0, 0.05);--x-box-shadow-tabs-overflow-left:inset 10px 0 8px -8px rgba(0, 0, 0, 0.08);--x-box-shadow-tabs-overflow-right:inset -10px 0 8px -8px rgba(0, 0, 0, 0.08);--x-box-shadow-tabs-overflow-top:inset 0 10px 8px -8px rgba(0, 0, 0, 0.08);--x-box-shadow-tabs-overflow-bottom:inset 0 -10px 8px -8px rgba(0, 0, 0, 0.08);--x-motion-duration-fast:0.1s;--x-motion-duration-mid:0.2s;--x-motion-duration-slow:0.3s;--x-motion-ease-in-out:cubic-bezier(0.645, 0.045, 0.355, 1);--x-motion-ease-out:cubic-bezier(0.215, 0.61, 0.355, 1);--x-motion-ease-in:cubic-bezier(0.55, 0.055, 0.675, 0.19);--x-motion-ease-out-back:cubic-bezier(0.12, 0.4, 0.29, 1.46);--x-motion-ease-in-back:cubic-bezier(0.71, -0.46, 0.88, 0.6);--x-motion-ease-in-out-circle:cubic-bezier(0.78, 0.14, 0.15, 0.86);--x-motion-ease-out-circle:cubic-bezier(0.08, 0.82, 0.17, 1);--x-motion-ease-in-circle:cubic-bezier(0.6, 0.04, 0.98, 0.34);--x-motion-ease-in-quint:cubic-bezier(0.755, 0.05, 0.855, 0.06);--x-motion-ease-out-quint:cubic-bezier(0.23, 1, 0.32, 1);--x-z-index-base:0;--x-z-index-popup-base:1000;--x-z-index-popup:1030;--x-z-index-affix:10;--x-z-index-modal:1000;--x-z-index-modal-mask:1000;--x-z-index-drawer:1000;--x-z-index-popover:1030;--x-z-index-dropdown:1050;--x-z-index-tooltip:1070;--x-z-index-notification:1080;--x-z-index-message:1090;--x-z-index-popconfirm:1060;--x-z-index-table-fixed:10;--x-opacity-loading:0.65;--x-opacity-image:1;--x-opacity-disabled:0.5;--x-control-height:32px;--x-control-height-xs:24px;--x-control-height-sm:24px;--x-control-height-lg:40px;--x-control-radio-size:16px;--x-control-checkbox-size:16px;--x-control-padding-horizontal:12px;--x-control-padding-horizontal-sm:8px;--x-control-outline-width:2px;--x-control-outline:rgba(5, 145, 255, 0.1);--x-control-item-bg-hover:rgba(0, 0, 0, 0.04);--x-control-item-bg-active:#e6f4ff;--x-control-item-bg-active-hover:#bae0ff;--x-control-item-bg-active-disabled:rgba(0, 0, 0, 0.15);--x-control-tmp-outline:rgba(0, 0, 0, 0.02);--x-color-yellow:#fadb14;--x-color-yellow-rgb:250, 219, 20;--x-font-family-base:var(--x-font-family);--x-color-link:#1677ff;--x-color-link-hover:#69b1ff;--x-color-link-active:#0958d9;--x-color-icon:rgba(0, 0, 0, 0.45);--x-color-icon-hover:rgba(0, 0, 0, 0.88);--x-color-highlight:#ff4d4f;--x-color-bg-text-hover:rgba(0, 0, 0, 0.06);--x-color-bg-text-active:rgba(0, 0, 0, 0.15);--x-screen-xs:480px;--x-screen-xs-min:480px;--x-screen-xs-max:575px;--x-screen-sm:576px;--x-screen-sm-min:576px;--x-screen-sm-max:767px;--x-screen-md:768px;--x-screen-md-min:768px;--x-screen-md-max:991px;--x-screen-lg:992px;--x-screen-lg-min:992px;--x-screen-lg-max:1199px;--x-screen-xl:1200px;--x-screen-xl-min:1200px;--x-screen-xl-max:1599px;--x-screen-xxl:1600px;--x-screen-xxl-min:1600px;--x-color-fill-content:rgba(0, 0, 0, 0.06);--x-color-fill-content-hover:rgba(0, 0, 0, 0.15);--x-color-fill-alter:rgba(0, 0, 0, 0.02);--x-scrollbar-width:12px;--x-scrollbar-track-bg:rgba(0, 0, 0, 0.04);--x-scrollbar-thumb-bg:rgba(0, 0, 0, 0.25);--x-scrollbar-thumb-bg-hover:rgba(0, 0, 0, 0.35);--x-menu-dark-bg:#001529;--x-menu-dark-item-bg:#001529;--x-menu-dark-popup-bg:#001529;--x-menu-dark-submenu-item-bg:#000c17}:host{display:inline-block;position:relative;width:100%;height:var(--x-slider-height, var(--x-spacing-md, 16px));margin:var(--x-slider-margin-vertical, var(--x-spacing-sm, 12px)) var(--x-slider-margin-horizontal, var(--x-spacing-xs, 8px));padding:var(--x-slider-padding, var(--x-spacing-xxs, 4px)) 0;-ms-touch-action:none;touch-action:none;cursor:pointer;-webkit-box-sizing:border-box;box-sizing:border-box}:host(.x-slider-disabled){cursor:not-allowed}:host(.x-slider-vertical){width:var(--x-slider-height, var(--x-spacing-md, 16px));height:100%;margin:var(--x-slider-margin-horizontal, var(--x-spacing-xs, 8px)) var(--x-slider-margin-vertical, var(--x-spacing-sm, 12px));padding:0 var(--x-slider-padding, var(--x-spacing-xxs, 4px))}.x-slider-rail{position:absolute;top:50%;left:0;width:100%;height:var(--x-slider-track-height, 4px);background:var(--x-slider-rail-bg, var(--x-color-fill-secondary, rgba(0, 0, 0, 0.06)));border-radius:var(--x-slider-border-radius, var(--x-border-radius-xs, 4px));-webkit-transform:translateY(-50%);transform:translateY(-50%);-webkit-transition:background var(--x-slider-motion-duration, var(--x-motion-duration-mid, 0.2s));transition:background var(--x-slider-motion-duration, var(--x-motion-duration-mid, 0.2s))}:host(.x-slider-vertical) .x-slider-rail{top:0;left:50%;width:var(--x-slider-track-height, 4px);height:100%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.x-slider-track{position:absolute;top:50%;height:var(--x-slider-track-height, 4px);background:var(--x-slider-track-bg, var(--x-color-primary-bg-hover, #91caff));border-radius:var(--x-slider-border-radius, var(--x-border-radius-xs, 4px));-webkit-transform:translateY(-50%);transform:translateY(-50%);-webkit-transition:all var(--x-slider-motion-duration, var(--x-motion-duration-mid, 0.2s));transition:all var(--x-slider-motion-duration, var(--x-motion-duration-mid, 0.2s))}:host(.x-slider-vertical) .x-slider-track{left:50%;width:var(--x-slider-track-height, 4px);-webkit-transform:translateX(-50%);transform:translateX(-50%)}.x-slider-handle{position:absolute;top:50%;width:var(--x-slider-handle-size, var(--x-font-size-base, 14px));height:var(--x-slider-handle-size, var(--x-font-size-base, 14px));background:var(--x-slider-handle-bg, var(--x-color-white, #ffffff));border:2px solid var(--x-slider-handle-border-color, var(--x-color-primary, #1677ff));border-radius:50%;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);-webkit-transition:border-color var(--x-slider-motion-duration, var(--x-motion-duration-mid, 0.2s)), -webkit-box-shadow var(--x-slider-motion-duration-slow, var(--x-motion-duration-slow, 0.3s)), -webkit-transform var(--x-slider-motion-duration, var(--x-motion-duration-mid, 0.2s)) var(--x-slider-motion-ease, var(--x-motion-ease-out-back, cubic-bezier(0.34, 1.56, 0.64, 1)));transition:border-color var(--x-slider-motion-duration, var(--x-motion-duration-mid, 0.2s)), -webkit-box-shadow var(--x-slider-motion-duration-slow, var(--x-motion-duration-slow, 0.3s)), -webkit-transform var(--x-slider-motion-duration, var(--x-motion-duration-mid, 0.2s)) var(--x-slider-motion-ease, var(--x-motion-ease-out-back, cubic-bezier(0.34, 1.56, 0.64, 1)));transition:border-color var(--x-slider-motion-duration, var(--x-motion-duration-mid, 0.2s)), box-shadow var(--x-slider-motion-duration-slow, var(--x-motion-duration-slow, 0.3s)), transform var(--x-slider-motion-duration, var(--x-motion-duration-mid, 0.2s)) var(--x-slider-motion-ease, var(--x-motion-ease-out-back, cubic-bezier(0.34, 1.56, 0.64, 1)));transition:border-color var(--x-slider-motion-duration, var(--x-motion-duration-mid, 0.2s)), box-shadow var(--x-slider-motion-duration-slow, var(--x-motion-duration-slow, 0.3s)), transform var(--x-slider-motion-duration, var(--x-motion-duration-mid, 0.2s)) var(--x-slider-motion-ease, var(--x-motion-ease-out-back, cubic-bezier(0.34, 1.56, 0.64, 1))), -webkit-box-shadow var(--x-slider-motion-duration-slow, var(--x-motion-duration-slow, 0.3s)), -webkit-transform var(--x-slider-motion-duration, var(--x-motion-duration-mid, 0.2s)) var(--x-slider-motion-ease, var(--x-motion-ease-out-back, cubic-bezier(0.34, 1.56, 0.64, 1)));cursor:-webkit-grab;cursor:grab;z-index:2}.x-slider-handle:hover{border-color:var(--x-slider-handle-border-color-hover, var(--x-color-primary, #1677ff))}.x-slider-handle:active{cursor:-webkit-grabbing;cursor:grabbing;-webkit-transform:translate(-50%, -50%) scale(1.1);transform:translate(-50%, -50%) scale(1.1);-webkit-box-shadow:var(--x-slider-handle-focus-shadow, 0 0 0 5px var(--x-color-primary-bg, rgba(22, 119, 255, 0.1)));box-shadow:var(--x-slider-handle-focus-shadow, 0 0 0 5px var(--x-color-primary-bg, rgba(22, 119, 255, 0.1)))}.x-slider-handle:focus{outline:none;border-color:var(--x-slider-handle-border-color-hover, var(--x-color-primary, #1677ff));-webkit-box-shadow:var(--x-slider-handle-focus-shadow, 0 0 0 5px var(--x-color-primary-bg, rgba(22, 119, 255, 0.1)));box-shadow:var(--x-slider-handle-focus-shadow, 0 0 0 5px var(--x-color-primary-bg, rgba(22, 119, 255, 0.1)))}:host(.x-slider-vertical) .x-slider-handle{left:50%;top:auto;-webkit-transform:translate(-50%, 50%);transform:translate(-50%, 50%)}.x-slider-tooltip{position:absolute;bottom:120%;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%);padding:4px 8px;font-size:12px;background:#000;color:#fff;border-radius:4px;white-space:nowrap;opacity:0;pointer-events:none;-webkit-transition:opacity 0.2s ease;transition:opacity 0.2s ease}.x-slider-handle:hover .x-slider-tooltip,.x-slider-handle:active .x-slider-tooltip{opacity:1}:host(.x-slider-vertical) .x-slider-tooltip{left:120%;bottom:auto;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.x-slider-marks{position:absolute;top:100%;left:0;width:100%;margin-top:8px;font-size:12px}:host(.x-slider-vertical) .x-slider-marks{left:100%;top:0;width:auto;height:100%;margin-left:8px}.x-slider-mark{position:absolute;-webkit-transform:translateX(-50%);transform:translateX(-50%);color:rgba(0, 0, 0, 0.45);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;white-space:nowrap}:host(.x-slider-vertical) .x-slider-mark{-webkit-transform:translateY(50%);transform:translateY(50%)}:host(.x-slider-disabled) .x-slider-rail{background:var(--x-slider-rail-bg-disabled, var(--x-color-fill-tertiary, rgba(0, 0, 0, 0.04)))}:host(.x-slider-disabled) .x-slider-track{background:var(--x-slider-track-bg-disabled, var(--x-color-text-quaternary, rgba(0, 0, 0, 0.25)))}:host(.x-slider-disabled) .x-slider-handle{border-color:var(--x-slider-handle-border-color-disabled, var(--x-color-text-quaternary, rgba(0, 0, 0, 0.25)));cursor:not-allowed;-webkit-box-shadow:none;box-shadow:none;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%)}:host(.x-slider-disabled) .x-slider-tooltip{display:none}`;
1963
-
1964
- const XSlider = class {
1965
- constructor(hostRef) {
1966
- registerInstance(this, hostRef);
1967
- this.xChange = createEvent(this, "xChange", 7);
1968
- this.xAfterChange = createEvent(this, "xAfterChange", 7);
1969
- }
1970
- get el() { return getElement(this); }
1971
- /* ---------------- PROPS ---------------- */
1972
- /**
1973
- * Minimum slider value.
1974
- * @example
1975
- * <x-slider min={0}></x-slider>
1976
- */
1977
- min = 0;
1978
- /**
1979
- * Maximum slider value.
1980
- * @example
1981
- * <x-slider max={100}></x-slider>
1982
- */
1983
- max = 100;
1984
- /**
1985
- * Step size between values, or null to use marks.
1986
- * @example
1987
- * <x-slider step={5}></x-slider>
1988
- */
1989
- step = 1;
1990
- /**
1991
- * Enable range mode with two thumbs.
1992
- * @example
1993
- * <x-slider range></x-slider>
1994
- */
1995
- range = false;
1996
- /**
1997
- * Render slider vertically.
1998
- * @example
1999
- * <x-slider vertical></x-slider>
2000
- */
2001
- vertical = false;
2002
- /**
2003
- * Disable interaction.
2004
- * @example
2005
- * <x-slider disabled></x-slider>
2006
- */
2007
- disabled = false;
2008
- /**
2009
- * Allow thumbs to cross in range mode.
2010
- * @example
2011
- * <x-slider range allowCross={false}></x-slider>
2012
- */
2013
- allowCross = true;
2014
- /**
2015
- * Push behavior or minimum distance between thumbs.
2016
- * @example
2017
- * <x-slider range pushable={10}></x-slider>
2018
- */
2019
- pushable = false;
2020
- /**
2021
- * Allow dragging the selected track in range mode.
2022
- * @example
2023
- * <x-slider range draggableTrack></x-slider>
2024
- */
2025
- draggableTrack = false;
2026
- /**
2027
- * Show tooltip values on handles.
2028
- * @example
2029
- * <x-slider tooltip={false}></x-slider>
2030
- */
2031
- tooltip = true;
2032
- /**
2033
- * Marks displayed on the rail.
2034
- * @example
2035
- * <x-slider marks={{ 0: '0', 100: '100' }}></x-slider>
2036
- */
2037
- marks = {};
2038
- /**
2039
- * Controlled value for slider.
2040
- * @example
2041
- * <x-slider value={50}></x-slider>
2042
- */
2043
- value;
2044
- /**
2045
- * Default value when uncontrolled.
2046
- * @example
2047
- * <x-slider defaultValue={20}></x-slider>
2048
- */
2049
- defaultValue = 0;
2050
- /* ---------------- STATE ---------------- */
2051
- /**
2052
- * Active thumb index while dragging.
2053
- */
2054
- activeThumb = null;
2055
- /**
2056
- * Whether a drag interaction is active.
2057
- */
2058
- isDragging = false;
2059
- /* ---------------- EVENTS ---------------- */
2060
- /**
2061
- * Emits on value change.
2062
- * @example
2063
- * <x-slider onXChange={(ev) => console.log(ev.detail)}></x-slider>
2064
- */
2065
- xChange;
2066
- /**
2067
- * Emits after drag interaction ends.
2068
- * @example
2069
- * <x-slider onXAfterChange={(ev) => console.log(ev.detail)}></x-slider>
2070
- */
2071
- xAfterChange;
2072
- /**
2073
- * Rail element reference for position calculations.
2074
- */
2075
- rail;
2076
- /* ---------------- LIFECYCLE ---------------- */
2077
- componentWillLoad() {
2078
- if (this.value === undefined) {
2079
- this.value = this.range
2080
- ? [this.min, this.max]
2081
- : this.defaultValue;
2082
- }
2083
- }
2084
- onValueChange() {
2085
- this.xChange.emit(this.value);
2086
- }
2087
- /* ---------------- UTIL ---------------- */
2088
- /**
2089
- * Clamp value within min and max.
2090
- * @param v - Input value.
2091
- * @returns number
2092
- * @example
2093
- * this.clamp(120)
2094
- */
2095
- clamp(v) {
2096
- return Math.min(this.max, Math.max(this.min, v));
2097
- }
2098
- /**
2099
- * Build list of steps based on step or marks.
2100
- * @returns number[]
2101
- * @example
2102
- * this.getSteps()
2103
- */
2104
- getSteps() {
2105
- if (this.step === null) {
2106
- return Object.keys(this.marks).map(Number);
2107
- }
2108
- const arr = [];
2109
- for (let v = this.min; v <= this.max; v += this.step) {
2110
- arr.push(v);
2111
- }
2112
- return arr;
2113
- }
2114
- /**
2115
- * Snap value to nearest step or mark.
2116
- * @param v - Raw value.
2117
- * @returns number
2118
- * @example
2119
- * this.snap(42)
2120
- */
2121
- snap(v) {
2122
- if (this.step === null) {
2123
- const steps = this.getSteps();
2124
- return steps.reduce((prev, curr) => Math.abs(curr - v) < Math.abs(prev - v) ? curr : prev);
2125
- }
2126
- return Math.round(v / this.step) * this.step;
2127
- }
2128
- /**
2129
- * Convert value to percentage along the rail.
2130
- * @param v - Value to convert.
2131
- * @returns number
2132
- * @example
2133
- * this.percent(50)
2134
- */
2135
- percent(v) {
2136
- return ((v - this.min) / (this.max - this.min)) * 100;
2137
- }
2138
- /**
2139
- * Calculates the slider value based on a mouse event.
2140
- *
2141
- * Flow:
2142
- * 1. Gets the bounding rectangle of the rail.
2143
- * 2. Calculates the ratio of the mouse position relative to the rail's width (or height if vertical).
2144
- * 3. Maps the ratio to the [min, max] range.
2145
- * 4. Clamps the value to ensure it stays within bounds.
2146
- * 5. Snaps the value to the nearest step.
2147
- *
2148
- * @param e - The mouse event.
2149
- * @returns number - The calculated value.
2150
- */
2151
- getValueFromEvent(e) {
2152
- const rect = this.rail.getBoundingClientRect();
2153
- const ratio = this.vertical
2154
- ? (rect.bottom - e.clientY) / rect.height
2155
- : (e.clientX - rect.left) / rect.width;
2156
- const v = this.min + this.clamp(ratio) * (this.max - this.min);
2157
- return this.snap(this.clamp(v));
2158
- }
2159
- /* ---------------- PUSH LOGIC ---------------- */
2160
- /**
2161
- * Enforces the `pushable` constraint between range thumbs.
2162
- * Ensures thumbs maintain a minimum distance from each other.
2163
- *
2164
- * @param values - Current range values [v1, v2].
2165
- * @param index - The index of the thumb actively being moved.
2166
- * @returns [number, number] - The adjusted values.
2167
- */
2168
- pushRange(values, index) {
2169
- if (!this.pushable)
2170
- return values;
2171
- const distance = typeof this.pushable === 'number' ? this.pushable : 1;
2172
- if (index === 0 && values[1] - values[0] < distance) {
2173
- values[1] = values[0] + distance;
2174
- }
2175
- if (index === 1 && values[1] - values[0] < distance) {
2176
- values[0] = values[1] - distance;
2177
- }
2178
- return values;
2179
- }
2180
- /* ---------------- MOUSE ---------------- */
2181
- /**
2182
- * Handles the mouse down event to initiate dragging.
2183
- *
2184
- * Flow:
2185
- * 1. Checks if disabled.
2186
- * 2. Sets `isDragging` flag.
2187
- * 3. Determines which thumb is active (closest to click if not specified).
2188
- * 4. Updates the value immediately.
2189
- * 5. Attaches global mouse listeners for drag and release.
2190
- *
2191
- * @param e - The mouse event.
2192
- * @param index - Optional index of the handle being clicked.
2193
- */
2194
- onMouseDown = (e, index) => {
2195
- if (this.disabled)
2196
- return;
2197
- this.isDragging = true;
2198
- if (this.range) {
2199
- this.activeThumb =
2200
- index ??
2201
- this.getClosestThumb(this.getValueFromEvent(e));
2202
- }
2203
- this.updateValue(e);
2204
- document.addEventListener('mousemove', this.onMouseMove);
2205
- document.addEventListener('mouseup', this.onMouseUp);
2206
- };
2207
- /**
2208
- * Handles mouse move during drag.
2209
- * Updates the value if dragging is active.
2210
- */
2211
- onMouseMove = (e) => {
2212
- if (!this.isDragging)
2213
- return;
2214
- this.updateValue(e);
2215
- };
2216
- /**
2217
- * Handles mouse up to end drag.
2218
- * Clears state, emits final change event, and removes listeners.
2219
- */
2220
- onMouseUp = () => {
2221
- this.isDragging = false;
2222
- this.activeThumb = null;
2223
- this.xAfterChange.emit(this.value);
2224
- document.removeEventListener('mousemove', this.onMouseMove);
2225
- document.removeEventListener('mouseup', this.onMouseUp);
2226
- };
2227
- /**
2228
- * Updates the slider value logic during interaction.
2229
- *
2230
- * Flow:
2231
- * 1. Calculates new value from event.
2232
- * 2. If single mode, updates value directly.
2233
- * 3. If range mode:
2234
- * - Handles track dragging (moving both thumbs).
2235
- * - Handles individual thumb dragging.
2236
- * - Enforces `allowCross` constraint (swapping thumbs if needed).
2237
- * - Enforces `pushRange` constraint.
2238
- *
2239
- * @param e - The mouse event.
2240
- */
2241
- updateValue(e) {
2242
- const v = this.getValueFromEvent(e);
2243
- if (!this.range) {
2244
- this.value = v;
2245
- return;
2246
- }
2247
- let values = [...this.value];
2248
- if (this.draggableTrack && this.activeThumb === null) {
2249
- const diff = v - values[0];
2250
- values = [values[0] + diff, values[1] + diff];
2251
- }
2252
- else {
2253
- values[this.activeThumb] = v;
2254
- if (!this.allowCross) {
2255
- if (this.activeThumb === 0)
2256
- values[0] = Math.min(values[0], values[1]);
2257
- else
2258
- values[1] = Math.max(values[1], values[0]);
2259
- }
2260
- values = this.pushRange(values, this.activeThumb);
2261
- }
2262
- this.value = values;
2263
- }
2264
- /**
2265
- * Finds the index of the thumb closest to the given value.
2266
- * Used to determine which thumb to move when clicking on the rail.
2267
- *
2268
- * @param v - The target value.
2269
- * @returns number - 0 or 1.
2270
- */
2271
- getClosestThumb(v) {
2272
- const [v1, v2] = this.value;
2273
- return Math.abs(v - v1) < Math.abs(v - v2) ? 0 : 1;
2274
- }
2275
- /* ---------------- KEYBOARD ---------------- */
2276
- /**
2277
- * Handles keyboard navigation for fine-tuning values.
2278
- * Supports Arrow keys for stepping up/down.
2279
- *
2280
- * @param e - Keyboard event.
2281
- * @param index - Index of the handle focused.
2282
- */
2283
- onKeyDown = (e, index) => {
2284
- if (this.disabled)
2285
- return;
2286
- const delta = e.key === 'ArrowRight' || e.key === 'ArrowUp'
2287
- ? this.step ?? 1
2288
- : e.key === 'ArrowLeft' || e.key === 'ArrowDown'
2289
- ? -(this.step ?? 1)
2290
- : 0;
2291
- if (!delta)
2292
- return;
2293
- e.preventDefault();
2294
- if (!this.range) {
2295
- this.value = this.clamp(this.value + delta);
2296
- }
2297
- else {
2298
- const values = [...this.value];
2299
- values[index] = this.clamp(values[index] + delta);
2300
- this.value = values;
2301
- }
2302
- };
2303
- /* ---------------- RENDER ---------------- */
2304
- /**
2305
- * Renders the marks (ticks) along the slider rail.
2306
- *
2307
- * @returns JSX.Element[] - List of mark elements positioned by percentage.
2308
- */
2309
- renderMarks() {
2310
- return Object.entries(this.marks).map(([k, label]) => {
2311
- const percent = this.percent(Number(k));
2312
- return (h("div", { class: "x-slider-mark", style: {
2313
- [this.vertical ? 'bottom' : 'left']: `${percent}%`,
2314
- } }, label));
2315
- });
2316
- }
2317
- /**
2318
- * Main render method for the Slider component.
2319
- *
2320
- * Structure:
2321
- * - Host element with classes for vertical/disabled state.
2322
- * - Rail: The background line.
2323
- * - Track: The active/colored segment indicating selected range.
2324
- * - Handles: Draggable knobs for interacting with values.
2325
- * - Marks: Optional labeled ticks.
2326
- *
2327
- * @returns JSX.Element
2328
- */
2329
- render() {
2330
- const values = this.range
2331
- ? this.value
2332
- : [this.value];
2333
- const p1 = this.percent(values[0]);
2334
- const p2 = this.range ? this.percent(values[1]) : p1;
2335
- return (h(Host, { key: '90fc23fbdcc78816be8c8d32d3e46e4687d3fad6', class: {
2336
- 'x-slider': true,
2337
- 'x-slider-vertical': this.vertical,
2338
- 'x-slider-disabled': this.disabled,
2339
- } }, h("div", { key: '9ff4c3df41adfcd7cc3f7c65784fc569b6693ff3', class: "x-slider-rail", ref: el => (this.rail = el), onClick: e => this.onMouseDown(e) }), h("div", { key: '0c5f77c19a65e251e46d0393e626bfe96abd18c9', class: "x-slider-track", style: {
2340
- [this.vertical ? 'height' : 'width']: `${this.range ? p2 - p1 : p1}%`,
2341
- [this.vertical ? 'bottom' : 'left']: `${this.range ? p1 : 0}%`,
2342
- } }), values.map((v, i) => {
2343
- const percent = this.percent(v);
2344
- return (h("div", { class: "x-slider-handle", style: {
2345
- [this.vertical ? 'bottom' : 'left']: `${percent}%`,
2346
- }, tabindex: 0, role: "slider", "aria-valuemin": this.min, "aria-valuemax": this.max, "aria-valuenow": v, onMouseDown: e => this.onMouseDown(e, i), onKeyDown: e => this.onKeyDown(e, i) }, this.tooltip && (h("div", { class: "x-slider-tooltip" }, v))));
2347
- }), h("div", { key: 'f3dd9f0c39947e115fd6160c1003cf48f93e97af', class: "x-slider-marks" }, this.renderMarks())));
2348
- }
2349
- static get watchers() { return {
2350
- "value": [{
2351
- "onValueChange": 0
2352
- }]
2353
- }; }
2354
- };
2355
- XSlider.style = xSliderCss();
2356
-
2357
- const xSwitchCss = () => `@charset "UTF-8";:root{--x-color-primary:#1677ff;--x-color-primary-rgb:22, 119, 255;--x-color-primary-contrast:#ffffff;--x-color-primary-contrast-rgb:255, 255, 255;--x-color-primary-shade:#0958d9;--x-color-primary-tint:#4096ff;--x-color-primary-bg:#e6f4ff;--x-color-primary-bg-hover:#bae0ff;--x-color-primary-border:#91caff;--x-color-primary-border-hover:#69b1ff;--x-color-primary-hover:#4096ff;--x-color-primary-active:#0958d9;--x-color-primary-text:#1677ff;--x-color-primary-text-hover:#4096ff;--x-color-primary-text-active:#0958d9;--x-color-secondary:#3dc2ff;--x-color-secondary-rgb:61, 194, 255;--x-color-secondary-contrast:#ffffff;--x-color-secondary-contrast-rgb:255, 255, 255;--x-color-secondary-shade:#36abe0;--x-color-secondary-tint:#50c8ff;--x-color-success:#52c41a;--x-color-success-rgb:82, 196, 26;--x-color-success-contrast:#ffffff;--x-color-success-contrast-rgb:255, 255, 255;--x-color-success-shade:#389e0d;--x-color-success-tint:#73d13d;--x-color-success-bg:#f6ffed;--x-color-success-bg-hover:#d9f7be;--x-color-success-border:#b7eb8f;--x-color-success-border-hover:#95de64;--x-color-success-hover:#73d13d;--x-color-success-active:#389e0d;--x-color-success-text:#52c41a;--x-color-success-text-hover:#73d13d;--x-color-success-text-active:#389e0d;--x-color-warning:#faad14;--x-color-warning-rgb:250, 173, 20;--x-color-warning-contrast:#000000;--x-color-warning-contrast-rgb:0, 0, 0;--x-color-warning-shade:#d48806;--x-color-warning-tint:#ffc53d;--x-color-warning-bg:#fffbe6;--x-color-warning-bg-hover:#fff1b8;--x-color-warning-border:#ffe58f;--x-color-warning-border-hover:#ffd666;--x-color-warning-hover:#ffc53d;--x-color-warning-active:#d48806;--x-color-warning-text:#faad14;--x-color-warning-text-hover:#ffc53d;--x-color-warning-text-active:#d48806;--x-color-danger:#ff4d4f;--x-color-danger-rgb:255, 77, 79;--x-color-danger-contrast:#ffffff;--x-color-danger-contrast-rgb:255, 255, 255;--x-color-danger-shade:#cf1322;--x-color-danger-tint:#ff7875;--x-color-error:#ff4d4f;--x-color-error-rgb:255, 77, 79;--x-color-error-bg:#fff2f0;--x-color-error-bg-hover:#ffccc7;--x-color-error-border:#ffa39e;--x-color-error-border-hover:#ff7875;--x-color-error-hover:#ff7875;--x-color-error-active:#d9363e;--x-color-error-text:#ff4d4f;--x-color-error-text-hover:#ff7875;--x-color-error-text-active:#d9363e;--x-color-info:#1677ff;--x-color-info-rgb:22, 119, 255;--x-color-info-bg:#e6f4ff;--x-color-info-bg-hover:#bae0ff;--x-color-info-border:#91caff;--x-color-info-border-hover:#69b1ff;--x-color-info-hover:#69b1ff;--x-color-info-active:#0958d9;--x-color-info-text:#1677ff;--x-color-info-text-hover:#69b1ff;--x-color-info-text-active:#0958d9;--x-color-text:rgba(0, 0, 0, 0.88);--x-color-text-secondary:rgba(0, 0, 0, 0.65);--x-color-text-tertiary:rgba(0, 0, 0, 0.45);--x-color-text-quaternary:rgba(0, 0, 0, 0.25);--x-color-text-disabled:rgba(0, 0, 0, 0.25);--x-color-text-placeholder:rgba(0, 0, 0, 0.25);--x-color-text-heading:rgba(0, 0, 0, 0.88);--x-color-text-label:rgba(0, 0, 0, 0.65);--x-color-text-description:rgba(0, 0, 0, 0.45);--x-color-text-light-solid:#ffffff;--x-color-bg-container:#ffffff;--x-color-bg-elevated:#ffffff;--x-color-bg-layout:#f5f5f5;--x-color-bg-spotlight:rgba(0, 0, 0, 0.85);--x-color-bg-mask:rgba(0, 0, 0, 0.45);--x-color-bg-base:#ffffff;--x-color-bg-container-disabled:#f5f5f5;--x-color-bg-container-loading:rgba(255, 255, 255, 0.65);--x-color-white:#ffffff;--x-color-fill:rgba(0, 0, 0, 0.15);--x-color-fill-secondary:rgba(0, 0, 0, 0.06);--x-color-fill-tertiary:rgba(0, 0, 0, 0.04);--x-color-fill-quaternary:rgba(0, 0, 0, 0.02);--x-color-border:#d9d9d9;--x-color-border-secondary:#f0f0f0;--x-color-border-bg:#ffffff;--x-color-split:rgba(5, 5, 5, 0.06);--x-color-dark:#222428;--x-color-dark-rgb:34, 36, 40;--x-color-dark-contrast:#ffffff;--x-color-dark-contrast-rgb:255, 255, 255;--x-color-dark-shade:#1e2023;--x-color-dark-tint:#383a3e;--x-color-medium:#92949c;--x-color-medium-rgb:146, 148, 156;--x-color-medium-contrast:#ffffff;--x-color-medium-contrast-rgb:255, 255, 255;--x-color-medium-shade:#808289;--x-color-medium-tint:#9d9fa6;--x-color-light:#f4f5f8;--x-color-light-rgb:244, 245, 248;--x-color-light-contrast:#000000;--x-color-light-contrast-rgb:0, 0, 0;--x-color-light-shade:#d7d8da;--x-color-light-tint:#f5f6f9;--x-font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--x-font-family-code:"SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace;--x-font-size:14px;--x-font-size-sm:12px;--x-font-size-lg:16px;--x-font-size-xl:20px;--x-font-size-heading-1:38px;--x-font-size-heading-2:30px;--x-font-size-heading-3:24px;--x-font-size-heading-4:20px;--x-font-size-heading-5:16px;--x-line-height:1.5714285714285714;--x-line-height-lg:1.5;--x-line-height-sm:1.6666666666666667;--x-line-height-heading-1:1.2105263157894737;--x-line-height-heading-2:1.2666666666666666;--x-line-height-heading-3:1.3333333333333333;--x-line-height-heading-4:1.4;--x-line-height-heading-5:1.5;--x-font-weight-normal:400;--x-font-weight-medium:500;--x-font-weight-semibold:600;--x-font-weight-strong:600;--x-font-size-base:14px;--x-font-size-xxl:24px;--x-line-height-base:1.5714285714285714;--x-spacing-xxs:4px;--x-spacing-xs:8px;--x-spacing-sm:12px;--x-spacing-md:16px;--x-spacing-lg:20px;--x-spacing-xl:24px;--x-spacing-xxl:32px;--x-spacing-xxxl:48px;--x-margin-xxs:4px;--x-margin-xs:8px;--x-margin-sm:12px;--x-margin-md:16px;--x-margin-lg:24px;--x-margin-xl:32px;--x-margin-xxl:48px;--x-padding-xxs:4px;--x-padding-xs:8px;--x-padding-sm:12px;--x-padding-md:16px;--x-padding-lg:24px;--x-padding-content-horizontal-lg:24px;--x-padding-content-vertical-lg:12px;--x-padding-content-horizontal:16px;--x-padding-content-vertical:12px;--x-padding-content-horizontal-sm:16px;--x-padding-content-vertical-sm:8px;--x-border-radius:6px;--x-border-radius-xs:2px;--x-border-radius-sm:4px;--x-border-radius-lg:8px;--x-border-radius-xl:12px;--x-border-radius-outer:4px;--x-border-radius-base:6px;--x-border-width:1px;--x-border-width-base:1px;--x-shadow:0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 9px 28px 8px rgba(0, 0, 0, 0.05);--x-shadow-secondary:0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 9px 28px 8px rgba(0, 0, 0, 0.05);--x-shadow-tertiary:0 1px 2px 0 rgba(0, 0, 0, 0.03), 0 1px 6px -1px rgba(0, 0, 0, 0.02), 0 2px 4px 0 rgba(0, 0, 0, 0.02);--x-shadow-lg:0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 9px 28px 8px rgba(0, 0, 0, 0.05);--x-box-shadow:0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 9px 28px 8px rgba(0, 0, 0, 0.05);--x-box-shadow-secondary:0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 9px 28px 8px rgba(0, 0, 0, 0.05);--x-box-shadow-tertiary:0 1px 2px 0 rgba(0, 0, 0, 0.03), 0 1px 6px -1px rgba(0, 0, 0, 0.02), 0 2px 4px 0 rgba(0, 0, 0, 0.02);--x-box-shadow-popover-arrow:2px 2px 5px rgba(0, 0, 0, 0.05);--x-box-shadow-card:0 1px 2px -2px rgba(0, 0, 0, 0.16), 0 3px 6px 0 rgba(0, 0, 0, 0.12), 0 5px 12px 4px rgba(0, 0, 0, 0.09);--x-box-shadow-drawer-right:-6px 0 16px 0 rgba(0, 0, 0, 0.08), -3px 0 6px -4px rgba(0, 0, 0, 0.12), -9px 0 28px 8px rgba(0, 0, 0, 0.05);--x-box-shadow-drawer-left:6px 0 16px 0 rgba(0, 0, 0, 0.08), 3px 0 6px -4px rgba(0, 0, 0, 0.12), 9px 0 28px 8px rgba(0, 0, 0, 0.05);--x-box-shadow-drawer-up:0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 9px 28px 8px rgba(0, 0, 0, 0.05);--x-box-shadow-drawer-down:0 -6px 16px 0 rgba(0, 0, 0, 0.08), 0 -3px 6px -4px rgba(0, 0, 0, 0.12), 0 -9px 28px 8px rgba(0, 0, 0, 0.05);--x-box-shadow-tabs-overflow-left:inset 10px 0 8px -8px rgba(0, 0, 0, 0.08);--x-box-shadow-tabs-overflow-right:inset -10px 0 8px -8px rgba(0, 0, 0, 0.08);--x-box-shadow-tabs-overflow-top:inset 0 10px 8px -8px rgba(0, 0, 0, 0.08);--x-box-shadow-tabs-overflow-bottom:inset 0 -10px 8px -8px rgba(0, 0, 0, 0.08);--x-motion-duration-fast:0.1s;--x-motion-duration-mid:0.2s;--x-motion-duration-slow:0.3s;--x-motion-ease-in-out:cubic-bezier(0.645, 0.045, 0.355, 1);--x-motion-ease-out:cubic-bezier(0.215, 0.61, 0.355, 1);--x-motion-ease-in:cubic-bezier(0.55, 0.055, 0.675, 0.19);--x-motion-ease-out-back:cubic-bezier(0.12, 0.4, 0.29, 1.46);--x-motion-ease-in-back:cubic-bezier(0.71, -0.46, 0.88, 0.6);--x-motion-ease-in-out-circle:cubic-bezier(0.78, 0.14, 0.15, 0.86);--x-motion-ease-out-circle:cubic-bezier(0.08, 0.82, 0.17, 1);--x-motion-ease-in-circle:cubic-bezier(0.6, 0.04, 0.98, 0.34);--x-motion-ease-in-quint:cubic-bezier(0.755, 0.05, 0.855, 0.06);--x-motion-ease-out-quint:cubic-bezier(0.23, 1, 0.32, 1);--x-z-index-base:0;--x-z-index-popup-base:1000;--x-z-index-popup:1030;--x-z-index-affix:10;--x-z-index-modal:1000;--x-z-index-modal-mask:1000;--x-z-index-drawer:1000;--x-z-index-popover:1030;--x-z-index-dropdown:1050;--x-z-index-tooltip:1070;--x-z-index-notification:1080;--x-z-index-message:1090;--x-z-index-popconfirm:1060;--x-z-index-table-fixed:10;--x-opacity-loading:0.65;--x-opacity-image:1;--x-opacity-disabled:0.5;--x-control-height:32px;--x-control-height-xs:24px;--x-control-height-sm:24px;--x-control-height-lg:40px;--x-control-radio-size:16px;--x-control-checkbox-size:16px;--x-control-padding-horizontal:12px;--x-control-padding-horizontal-sm:8px;--x-control-outline-width:2px;--x-control-outline:rgba(5, 145, 255, 0.1);--x-control-item-bg-hover:rgba(0, 0, 0, 0.04);--x-control-item-bg-active:#e6f4ff;--x-control-item-bg-active-hover:#bae0ff;--x-control-item-bg-active-disabled:rgba(0, 0, 0, 0.15);--x-control-tmp-outline:rgba(0, 0, 0, 0.02);--x-color-yellow:#fadb14;--x-color-yellow-rgb:250, 219, 20;--x-font-family-base:var(--x-font-family);--x-color-link:#1677ff;--x-color-link-hover:#69b1ff;--x-color-link-active:#0958d9;--x-color-icon:rgba(0, 0, 0, 0.45);--x-color-icon-hover:rgba(0, 0, 0, 0.88);--x-color-highlight:#ff4d4f;--x-color-bg-text-hover:rgba(0, 0, 0, 0.06);--x-color-bg-text-active:rgba(0, 0, 0, 0.15);--x-screen-xs:480px;--x-screen-xs-min:480px;--x-screen-xs-max:575px;--x-screen-sm:576px;--x-screen-sm-min:576px;--x-screen-sm-max:767px;--x-screen-md:768px;--x-screen-md-min:768px;--x-screen-md-max:991px;--x-screen-lg:992px;--x-screen-lg-min:992px;--x-screen-lg-max:1199px;--x-screen-xl:1200px;--x-screen-xl-min:1200px;--x-screen-xl-max:1599px;--x-screen-xxl:1600px;--x-screen-xxl-min:1600px;--x-color-fill-content:rgba(0, 0, 0, 0.06);--x-color-fill-content-hover:rgba(0, 0, 0, 0.15);--x-color-fill-alter:rgba(0, 0, 0, 0.02);--x-scrollbar-width:12px;--x-scrollbar-track-bg:rgba(0, 0, 0, 0.04);--x-scrollbar-thumb-bg:rgba(0, 0, 0, 0.25);--x-scrollbar-thumb-bg-hover:rgba(0, 0, 0, 0.35);--x-menu-dark-bg:#001529;--x-menu-dark-item-bg:#001529;--x-menu-dark-popup-bg:#001529;--x-menu-dark-submenu-item-bg:#000c17}:host{margin:0;padding:0;color:var(--x-switch-inner-color, var(--x-color-white, #ffffff));font-size:var(--x-switch-font-size, var(--x-font-size-sm, 12px));line-height:var(--x-switch-height, 22px);list-style:none;position:relative;display:inline-block;min-width:var(--x-switch-min-width, 44px);height:var(--x-switch-height, 22px);vertical-align:middle;background:var(--x-switch-bg, var(--x-color-text-quaternary, rgba(0, 0, 0, 0.25)));border:0;border-radius:100px;cursor:pointer;-webkit-transition:all var(--x-switch-motion-duration, var(--x-motion-duration-fast, 0.1s)) var(--x-switch-motion-timing, ease-in-out);transition:all var(--x-switch-motion-duration, var(--x-motion-duration-fast, 0.1s)) var(--x-switch-motion-timing, ease-in-out);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}:host(.x-switch-checked){background:var(--x-switch-bg-checked, var(--x-color-primary, #1677ff))}:host(.x-switch-checked):not(.x-switch-disabled):not(.x-switch-loading):hover{background:var(--x-switch-bg-checked-hover, var(--x-color-primary-hover, #4096ff))}:host(.x-switch-disabled){cursor:not-allowed;opacity:var(--x-switch-opacity-disabled, var(--x-opacity-disabled, 0.65))}:host(.x-switch-loading){cursor:not-allowed;opacity:var(--x-switch-opacity-disabled, var(--x-opacity-disabled, 0.65))}.x-switch-handle{position:absolute;top:var(--x-switch-handle-offset, 2px);left:var(--x-switch-handle-offset, 2px);width:var(--x-switch-handle-size, 18px);height:var(--x-switch-handle-size, 18px);background:var(--x-switch-handle-bg, var(--x-color-white, #ffffff));border-radius:var(--x-switch-handle-size, 18px);-webkit-transition:all var(--x-switch-motion-duration, var(--x-motion-duration-fast, 0.1s)) var(--x-switch-motion-timing, ease-in-out);transition:all var(--x-switch-motion-duration, var(--x-motion-duration-fast, 0.1s)) var(--x-switch-motion-timing, ease-in-out);display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.x-switch-handle::before{position:absolute;top:0;right:0;bottom:0;left:0;background-color:transparent;border-radius:calc(var(--x-switch-handle-size, 18px) / 2);-webkit-box-shadow:var(--x-switch-handle-shadow, var(--x-shadow-tertiary, 0 2px 4px 0 rgba(0, 21, 41, 0.08)));box-shadow:var(--x-switch-handle-shadow, var(--x-shadow-tertiary, 0 2px 4px 0 rgba(0, 21, 41, 0.08)));-webkit-transition:all var(--x-switch-motion-duration, var(--x-motion-duration-fast, 0.1s)) var(--x-switch-motion-timing, ease-in-out);transition:all var(--x-switch-motion-duration, var(--x-motion-duration-fast, 0.1s)) var(--x-switch-motion-timing, ease-in-out);content:""}:host(.x-switch-checked) .x-switch-handle{left:calc(100% - var(--x-switch-handle-size, 18px) - var(--x-switch-handle-offset, 2px))}.x-switch-inner{display:block;margin:0 7px 0 25px;color:var(--x-switch-inner-color, var(--x-color-white, #ffffff));font-size:var(--x-switch-font-size, var(--x-font-size-sm, 12px));-webkit-transition:margin var(--x-switch-motion-duration, var(--x-motion-duration-fast, 0.1s)) var(--x-switch-motion-timing, ease-in-out);transition:margin var(--x-switch-motion-duration, var(--x-motion-duration-fast, 0.1s)) var(--x-switch-motion-timing, ease-in-out)}:host(.x-switch-checked) .x-switch-inner{margin:0 25px 0 7px}:host(.x-switch-small){min-width:var(--x-switch-min-width-sm, 28px);height:var(--x-switch-height-sm, 16px);line-height:var(--x-switch-height-sm, 16px)}:host(.x-switch-small) .x-switch-handle{width:var(--x-switch-handle-size-sm, 12px);height:var(--x-switch-handle-size-sm, 12px)}:host(.x-switch-small.x-switch-checked) .x-switch-handle{left:calc(100% - var(--x-switch-handle-size-sm, 12px) - var(--x-switch-handle-offset, 2px))}:host(.x-switch-small) .x-switch-inner{margin:0 5px 0 18px}:host(.x-switch-small.x-switch-checked) .x-switch-inner{margin:0 18px 0 5px}.x-switch-loading-icon{color:var(--x-switch-loading-color, var(--x-color-text-secondary, rgba(0, 0, 0, 0.45)));font-size:var(--x-switch-font-size, var(--x-font-size-sm, 12px))}@-webkit-keyframes loadingCircle{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes loadingCircle{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.anticon-spin{display:inline-block;-webkit-animation:loadingCircle 1s infinite linear;animation:loadingCircle 1s infinite linear}`;
2358
-
2359
- const XSwitch = class {
2360
- constructor(hostRef) {
2361
- registerInstance(this, hostRef);
2362
- this.xChange = createEvent(this, "xChange", 7);
2363
- this.xClick = createEvent(this, "xClick", 7);
2364
- }
2365
- /**
2366
- * Whether the switch is automatically focused.
2367
- * @example
2368
- * <x-switch autoFocus></x-switch>
2369
- */
2370
- autoFocus = false;
2371
- /**
2372
- * Determine whether the Switch is checked.
2373
- * @example
2374
- * <x-switch checked></x-switch>
2375
- */
2376
- checked = false;
2377
- /**
2378
- * The content to be shown when the state is checked.
2379
- * @example
2380
- * <x-switch checkedChildren="On"></x-switch>
2381
- */
2382
- checkedChildren;
2383
- /**
2384
- * Whether to set the initial state.
2385
- * @example
2386
- * <x-switch defaultChecked></x-switch>
2387
- */
2388
- defaultChecked = false;
2389
- /**
2390
- * Disable switch.
2391
- * @example
2392
- * <x-switch disabled></x-switch>
2393
- */
2394
- disabled = false;
2395
- /**
2396
- * Loading state of switch.
2397
- * @example
2398
- * <x-switch loading></x-switch>
2399
- */
2400
- loading = false;
2401
- /**
2402
- * The size of the Switch.
2403
- * @example
2404
- * <x-switch size="small"></x-switch>
2405
- */
2406
- size = 'default';
2407
- /**
2408
- * The content to be shown when the state is unchecked.
2409
- * @example
2410
- * <x-switch unCheckedChildren="Off"></x-switch>
2411
- */
2412
- unCheckedChildren;
2413
- /**
2414
- * Emits when checked state changes.
2415
- * @example
2416
- * <x-switch onXChange={(ev) => console.log(ev.detail)}></x-switch>
2417
- */
2418
- xChange;
2419
- /**
2420
- * Emits when switch is clicked.
2421
- * @example
2422
- * <x-switch onXClick={(ev) => console.log(ev.detail)}></x-switch>
2423
- */
2424
- xClick;
2425
- /**
2426
- * Component lifecycle method called before loading.
2427
- * Initializes the checked state if `defaultChecked` is true.
2428
- */
2429
- componentWillLoad() {
2430
- if (this.defaultChecked) {
2431
- this.checked = true;
2432
- }
2433
- }
2434
- /**
2435
- * Handles click events to toggle the switch state.
2436
- *
2437
- * Flow:
2438
- * 1. Checks if disabled or loading; if so, returns immediately.
2439
- * 2. Toggles the `checked` state.
2440
- * 3. Emits `xChange` with the new boolean state.
2441
- * 4. Emits `xClick` with the original event.
2442
- *
2443
- * @param e - The click event.
2444
- */
2445
- handleClick(e) {
2446
- if (this.disabled || this.loading)
2447
- return;
2448
- this.checked = !this.checked;
2449
- this.xChange.emit(this.checked);
2450
- this.xClick.emit(e);
2451
- }
2452
- /**
2453
- * Renders the Switch component.
2454
- *
2455
- * Structure:
2456
- * - Host element serves as the container and click target.
2457
- * - Handle: The moving circle part (contains loading spinner if active).
2458
- * - Inner: The text label (On/Off) depending on checked state.
2459
- *
2460
- * @returns JSX.Element
2461
- */
2462
- render() {
2463
- return (h(Host, { key: '1503ee5789c9b75305a76eac0e2eece6c2422fa0', class: {
2464
- 'x-switch': true,
2465
- 'x-switch-checked': this.checked,
2466
- 'x-switch-disabled': this.disabled,
2467
- 'x-switch-loading': this.loading,
2468
- 'x-switch-small': this.size === 'small',
2469
- }, onClick: (e) => this.handleClick(e) }, h("div", { key: 'b6ff513a02e20c628773c7424536c59b1e279f40', class: "x-switch-handle" }, this.loading && (h("span", { key: '79ae4f5fe973ef32f912eddcd312016eb7d43113', role: "img", "aria-label": "loading", class: "anticon anticon-loading x-switch-loading-icon" }, h("svg", { key: 'cc4f860e48867197507817752d901e6b4439aed4', viewBox: "0 0 1024 1024", focusable: "false", "data-icon": "loading", width: "1em", height: "1em", fill: "currentColor", "aria-hidden": "true", class: "anticon-spin" }, h("path", { key: '61d09ab8a2b080403e93bafb51e59c1624258097', d: "M988 548c-19.9 0-36-16.1-36-36 0-59.4-11.6-117-34.6-171.3a440.45 440.45 0 00-94.3-139.9 437.71 437.71 0 00-139.9-94.3C629 83.6 571.4 72 512 72c-19.9 0-36-16.1-36-36s16.1-36 36-36c69.1 0 136.2 13.5 199.3 40.3C772.3 66 827 103 874 150c47 47 83.9 101.8 109.7 162.7 26.7 63.1 40.2 130.2 40.2 199.3.1 19.9-16 36-35.9 36z" }))))), h("span", { key: '6bc8ccdd4d4468eae859ed05618a037fe8c324b9', class: "x-switch-inner" }, this.checked ? this.checkedChildren : this.unCheckedChildren)));
2470
- }
2471
- };
2472
- XSwitch.style = xSwitchCss();
2473
-
2474
- const xTooltipCss = () => `@charset "UTF-8";:root{--x-color-primary:#1677ff;--x-color-primary-rgb:22, 119, 255;--x-color-primary-contrast:#ffffff;--x-color-primary-contrast-rgb:255, 255, 255;--x-color-primary-shade:#0958d9;--x-color-primary-tint:#4096ff;--x-color-primary-bg:#e6f4ff;--x-color-primary-bg-hover:#bae0ff;--x-color-primary-border:#91caff;--x-color-primary-border-hover:#69b1ff;--x-color-primary-hover:#4096ff;--x-color-primary-active:#0958d9;--x-color-primary-text:#1677ff;--x-color-primary-text-hover:#4096ff;--x-color-primary-text-active:#0958d9;--x-color-secondary:#3dc2ff;--x-color-secondary-rgb:61, 194, 255;--x-color-secondary-contrast:#ffffff;--x-color-secondary-contrast-rgb:255, 255, 255;--x-color-secondary-shade:#36abe0;--x-color-secondary-tint:#50c8ff;--x-color-success:#52c41a;--x-color-success-rgb:82, 196, 26;--x-color-success-contrast:#ffffff;--x-color-success-contrast-rgb:255, 255, 255;--x-color-success-shade:#389e0d;--x-color-success-tint:#73d13d;--x-color-success-bg:#f6ffed;--x-color-success-bg-hover:#d9f7be;--x-color-success-border:#b7eb8f;--x-color-success-border-hover:#95de64;--x-color-success-hover:#73d13d;--x-color-success-active:#389e0d;--x-color-success-text:#52c41a;--x-color-success-text-hover:#73d13d;--x-color-success-text-active:#389e0d;--x-color-warning:#faad14;--x-color-warning-rgb:250, 173, 20;--x-color-warning-contrast:#000000;--x-color-warning-contrast-rgb:0, 0, 0;--x-color-warning-shade:#d48806;--x-color-warning-tint:#ffc53d;--x-color-warning-bg:#fffbe6;--x-color-warning-bg-hover:#fff1b8;--x-color-warning-border:#ffe58f;--x-color-warning-border-hover:#ffd666;--x-color-warning-hover:#ffc53d;--x-color-warning-active:#d48806;--x-color-warning-text:#faad14;--x-color-warning-text-hover:#ffc53d;--x-color-warning-text-active:#d48806;--x-color-danger:#ff4d4f;--x-color-danger-rgb:255, 77, 79;--x-color-danger-contrast:#ffffff;--x-color-danger-contrast-rgb:255, 255, 255;--x-color-danger-shade:#cf1322;--x-color-danger-tint:#ff7875;--x-color-error:#ff4d4f;--x-color-error-rgb:255, 77, 79;--x-color-error-bg:#fff2f0;--x-color-error-bg-hover:#ffccc7;--x-color-error-border:#ffa39e;--x-color-error-border-hover:#ff7875;--x-color-error-hover:#ff7875;--x-color-error-active:#d9363e;--x-color-error-text:#ff4d4f;--x-color-error-text-hover:#ff7875;--x-color-error-text-active:#d9363e;--x-color-info:#1677ff;--x-color-info-rgb:22, 119, 255;--x-color-info-bg:#e6f4ff;--x-color-info-bg-hover:#bae0ff;--x-color-info-border:#91caff;--x-color-info-border-hover:#69b1ff;--x-color-info-hover:#69b1ff;--x-color-info-active:#0958d9;--x-color-info-text:#1677ff;--x-color-info-text-hover:#69b1ff;--x-color-info-text-active:#0958d9;--x-color-text:rgba(0, 0, 0, 0.88);--x-color-text-secondary:rgba(0, 0, 0, 0.65);--x-color-text-tertiary:rgba(0, 0, 0, 0.45);--x-color-text-quaternary:rgba(0, 0, 0, 0.25);--x-color-text-disabled:rgba(0, 0, 0, 0.25);--x-color-text-placeholder:rgba(0, 0, 0, 0.25);--x-color-text-heading:rgba(0, 0, 0, 0.88);--x-color-text-label:rgba(0, 0, 0, 0.65);--x-color-text-description:rgba(0, 0, 0, 0.45);--x-color-text-light-solid:#ffffff;--x-color-bg-container:#ffffff;--x-color-bg-elevated:#ffffff;--x-color-bg-layout:#f5f5f5;--x-color-bg-spotlight:rgba(0, 0, 0, 0.85);--x-color-bg-mask:rgba(0, 0, 0, 0.45);--x-color-bg-base:#ffffff;--x-color-bg-container-disabled:#f5f5f5;--x-color-bg-container-loading:rgba(255, 255, 255, 0.65);--x-color-white:#ffffff;--x-color-fill:rgba(0, 0, 0, 0.15);--x-color-fill-secondary:rgba(0, 0, 0, 0.06);--x-color-fill-tertiary:rgba(0, 0, 0, 0.04);--x-color-fill-quaternary:rgba(0, 0, 0, 0.02);--x-color-border:#d9d9d9;--x-color-border-secondary:#f0f0f0;--x-color-border-bg:#ffffff;--x-color-split:rgba(5, 5, 5, 0.06);--x-color-dark:#222428;--x-color-dark-rgb:34, 36, 40;--x-color-dark-contrast:#ffffff;--x-color-dark-contrast-rgb:255, 255, 255;--x-color-dark-shade:#1e2023;--x-color-dark-tint:#383a3e;--x-color-medium:#92949c;--x-color-medium-rgb:146, 148, 156;--x-color-medium-contrast:#ffffff;--x-color-medium-contrast-rgb:255, 255, 255;--x-color-medium-shade:#808289;--x-color-medium-tint:#9d9fa6;--x-color-light:#f4f5f8;--x-color-light-rgb:244, 245, 248;--x-color-light-contrast:#000000;--x-color-light-contrast-rgb:0, 0, 0;--x-color-light-shade:#d7d8da;--x-color-light-tint:#f5f6f9;--x-font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--x-font-family-code:"SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace;--x-font-size:14px;--x-font-size-sm:12px;--x-font-size-lg:16px;--x-font-size-xl:20px;--x-font-size-heading-1:38px;--x-font-size-heading-2:30px;--x-font-size-heading-3:24px;--x-font-size-heading-4:20px;--x-font-size-heading-5:16px;--x-line-height:1.5714285714285714;--x-line-height-lg:1.5;--x-line-height-sm:1.6666666666666667;--x-line-height-heading-1:1.2105263157894737;--x-line-height-heading-2:1.2666666666666666;--x-line-height-heading-3:1.3333333333333333;--x-line-height-heading-4:1.4;--x-line-height-heading-5:1.5;--x-font-weight-normal:400;--x-font-weight-medium:500;--x-font-weight-semibold:600;--x-font-weight-strong:600;--x-font-size-base:14px;--x-font-size-xxl:24px;--x-line-height-base:1.5714285714285714;--x-spacing-xxs:4px;--x-spacing-xs:8px;--x-spacing-sm:12px;--x-spacing-md:16px;--x-spacing-lg:20px;--x-spacing-xl:24px;--x-spacing-xxl:32px;--x-spacing-xxxl:48px;--x-margin-xxs:4px;--x-margin-xs:8px;--x-margin-sm:12px;--x-margin-md:16px;--x-margin-lg:24px;--x-margin-xl:32px;--x-margin-xxl:48px;--x-padding-xxs:4px;--x-padding-xs:8px;--x-padding-sm:12px;--x-padding-md:16px;--x-padding-lg:24px;--x-padding-content-horizontal-lg:24px;--x-padding-content-vertical-lg:12px;--x-padding-content-horizontal:16px;--x-padding-content-vertical:12px;--x-padding-content-horizontal-sm:16px;--x-padding-content-vertical-sm:8px;--x-border-radius:6px;--x-border-radius-xs:2px;--x-border-radius-sm:4px;--x-border-radius-lg:8px;--x-border-radius-xl:12px;--x-border-radius-outer:4px;--x-border-radius-base:6px;--x-border-width:1px;--x-border-width-base:1px;--x-shadow:0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 9px 28px 8px rgba(0, 0, 0, 0.05);--x-shadow-secondary:0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 9px 28px 8px rgba(0, 0, 0, 0.05);--x-shadow-tertiary:0 1px 2px 0 rgba(0, 0, 0, 0.03), 0 1px 6px -1px rgba(0, 0, 0, 0.02), 0 2px 4px 0 rgba(0, 0, 0, 0.02);--x-shadow-lg:0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 9px 28px 8px rgba(0, 0, 0, 0.05);--x-box-shadow:0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 9px 28px 8px rgba(0, 0, 0, 0.05);--x-box-shadow-secondary:0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 9px 28px 8px rgba(0, 0, 0, 0.05);--x-box-shadow-tertiary:0 1px 2px 0 rgba(0, 0, 0, 0.03), 0 1px 6px -1px rgba(0, 0, 0, 0.02), 0 2px 4px 0 rgba(0, 0, 0, 0.02);--x-box-shadow-popover-arrow:2px 2px 5px rgba(0, 0, 0, 0.05);--x-box-shadow-card:0 1px 2px -2px rgba(0, 0, 0, 0.16), 0 3px 6px 0 rgba(0, 0, 0, 0.12), 0 5px 12px 4px rgba(0, 0, 0, 0.09);--x-box-shadow-drawer-right:-6px 0 16px 0 rgba(0, 0, 0, 0.08), -3px 0 6px -4px rgba(0, 0, 0, 0.12), -9px 0 28px 8px rgba(0, 0, 0, 0.05);--x-box-shadow-drawer-left:6px 0 16px 0 rgba(0, 0, 0, 0.08), 3px 0 6px -4px rgba(0, 0, 0, 0.12), 9px 0 28px 8px rgba(0, 0, 0, 0.05);--x-box-shadow-drawer-up:0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 9px 28px 8px rgba(0, 0, 0, 0.05);--x-box-shadow-drawer-down:0 -6px 16px 0 rgba(0, 0, 0, 0.08), 0 -3px 6px -4px rgba(0, 0, 0, 0.12), 0 -9px 28px 8px rgba(0, 0, 0, 0.05);--x-box-shadow-tabs-overflow-left:inset 10px 0 8px -8px rgba(0, 0, 0, 0.08);--x-box-shadow-tabs-overflow-right:inset -10px 0 8px -8px rgba(0, 0, 0, 0.08);--x-box-shadow-tabs-overflow-top:inset 0 10px 8px -8px rgba(0, 0, 0, 0.08);--x-box-shadow-tabs-overflow-bottom:inset 0 -10px 8px -8px rgba(0, 0, 0, 0.08);--x-motion-duration-fast:0.1s;--x-motion-duration-mid:0.2s;--x-motion-duration-slow:0.3s;--x-motion-ease-in-out:cubic-bezier(0.645, 0.045, 0.355, 1);--x-motion-ease-out:cubic-bezier(0.215, 0.61, 0.355, 1);--x-motion-ease-in:cubic-bezier(0.55, 0.055, 0.675, 0.19);--x-motion-ease-out-back:cubic-bezier(0.12, 0.4, 0.29, 1.46);--x-motion-ease-in-back:cubic-bezier(0.71, -0.46, 0.88, 0.6);--x-motion-ease-in-out-circle:cubic-bezier(0.78, 0.14, 0.15, 0.86);--x-motion-ease-out-circle:cubic-bezier(0.08, 0.82, 0.17, 1);--x-motion-ease-in-circle:cubic-bezier(0.6, 0.04, 0.98, 0.34);--x-motion-ease-in-quint:cubic-bezier(0.755, 0.05, 0.855, 0.06);--x-motion-ease-out-quint:cubic-bezier(0.23, 1, 0.32, 1);--x-z-index-base:0;--x-z-index-popup-base:1000;--x-z-index-popup:1030;--x-z-index-affix:10;--x-z-index-modal:1000;--x-z-index-modal-mask:1000;--x-z-index-drawer:1000;--x-z-index-popover:1030;--x-z-index-dropdown:1050;--x-z-index-tooltip:1070;--x-z-index-notification:1080;--x-z-index-message:1090;--x-z-index-popconfirm:1060;--x-z-index-table-fixed:10;--x-opacity-loading:0.65;--x-opacity-image:1;--x-opacity-disabled:0.5;--x-control-height:32px;--x-control-height-xs:24px;--x-control-height-sm:24px;--x-control-height-lg:40px;--x-control-radio-size:16px;--x-control-checkbox-size:16px;--x-control-padding-horizontal:12px;--x-control-padding-horizontal-sm:8px;--x-control-outline-width:2px;--x-control-outline:rgba(5, 145, 255, 0.1);--x-control-item-bg-hover:rgba(0, 0, 0, 0.04);--x-control-item-bg-active:#e6f4ff;--x-control-item-bg-active-hover:#bae0ff;--x-control-item-bg-active-disabled:rgba(0, 0, 0, 0.15);--x-control-tmp-outline:rgba(0, 0, 0, 0.02);--x-color-yellow:#fadb14;--x-color-yellow-rgb:250, 219, 20;--x-font-family-base:var(--x-font-family);--x-color-link:#1677ff;--x-color-link-hover:#69b1ff;--x-color-link-active:#0958d9;--x-color-icon:rgba(0, 0, 0, 0.45);--x-color-icon-hover:rgba(0, 0, 0, 0.88);--x-color-highlight:#ff4d4f;--x-color-bg-text-hover:rgba(0, 0, 0, 0.06);--x-color-bg-text-active:rgba(0, 0, 0, 0.15);--x-screen-xs:480px;--x-screen-xs-min:480px;--x-screen-xs-max:575px;--x-screen-sm:576px;--x-screen-sm-min:576px;--x-screen-sm-max:767px;--x-screen-md:768px;--x-screen-md-min:768px;--x-screen-md-max:991px;--x-screen-lg:992px;--x-screen-lg-min:992px;--x-screen-lg-max:1199px;--x-screen-xl:1200px;--x-screen-xl-min:1200px;--x-screen-xl-max:1599px;--x-screen-xxl:1600px;--x-screen-xxl-min:1600px;--x-color-fill-content:rgba(0, 0, 0, 0.06);--x-color-fill-content-hover:rgba(0, 0, 0, 0.15);--x-color-fill-alter:rgba(0, 0, 0, 0.02);--x-scrollbar-width:12px;--x-scrollbar-track-bg:rgba(0, 0, 0, 0.04);--x-scrollbar-thumb-bg:rgba(0, 0, 0, 0.25);--x-scrollbar-thumb-bg-hover:rgba(0, 0, 0, 0.35);--x-menu-dark-bg:#001529;--x-menu-dark-item-bg:#001529;--x-menu-dark-popup-bg:#001529;--x-menu-dark-submenu-item-bg:#000c17}:host{display:inline-block;position:relative;font-family:var(--x-tooltip-font-family, var(--x-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif))}.x-tooltip-trigger{display:inline-block}.x-tooltip{position:absolute;z-index:var(--x-tooltip-z-index, var(--x-tooltip-z-index, var(--x-z-index-tooltip, 1070)));display:block;visibility:visible;font-size:var(--x-tooltip-font-size, var(--x-font-size, 14px));line-height:var(--x-tooltip-line-height, var(--x-line-height, 1.5714));word-wrap:break-word;opacity:1;-webkit-transition:opacity var(--x-tooltip-motion-duration, var(--x-motion-duration-slow, 0.3s)), visibility var(--x-tooltip-motion-duration, var(--x-motion-duration-slow, 0.3s));transition:opacity var(--x-tooltip-motion-duration, var(--x-motion-duration-slow, 0.3s)), visibility var(--x-tooltip-motion-duration, var(--x-motion-duration-slow, 0.3s));white-space:nowrap;max-width:var(--x-tooltip-max-width, 250px);pointer-events:none}.x-tooltip.x-tooltip-hidden{opacity:0;visibility:hidden;pointer-events:none}.x-tooltip-inner{min-width:var(--x-tooltip-min-width, 30px);min-height:var(--x-tooltip-min-height, var(--x-control-height, 32px));padding:var(--x-tooltip-padding-block, var(--x-spacing-xxs, 4px)) var(--x-tooltip-padding-inline, var(--x-spacing-xs, 8px));color:var(--x-tooltip-color, var(--x-color-white, #ffffff));text-align:left;text-decoration:none;word-wrap:break-word;background-color:var(--x-tooltip-color, var(--x-tooltip-bg, var(--x-color-bg-spotlight, rgba(0, 0, 0, 0.85))));border-radius:var(--x-tooltip-border-radius, var(--x-border-radius-xs, 4px));-webkit-box-shadow:var(--x-tooltip-shadow, var(--x-shadow-secondary, 0 6px 16px 0 rgba(0, 0, 0, 0.08)));box-shadow:var(--x-tooltip-shadow, var(--x-shadow-secondary, 0 6px 16px 0 rgba(0, 0, 0, 0.08)))}.x-tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.x-tooltip-placement-top{bottom:100%;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%);padding-bottom:var(--x-tooltip-offset, var(--x-spacing-xs, 8px))}.x-tooltip-placement-top .x-tooltip-arrow{bottom:var(--x-tooltip-arrow-offset-vertical, 3px);left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%);border-width:var(--x-tooltip-arrow-size, 5px) var(--x-tooltip-arrow-size, 5px) 0;border-top-color:var(--x-tooltip-color, var(--x-tooltip-bg, var(--x-color-bg-spotlight, rgba(0, 0, 0, 0.85))))}.x-tooltip-placement-topLeft{bottom:100%;left:0;padding-bottom:var(--x-tooltip-offset, var(--x-spacing-xs, 8px))}.x-tooltip-placement-topLeft .x-tooltip-arrow{bottom:var(--x-tooltip-arrow-offset-vertical, 3px);left:var(--x-tooltip-arrow-offset-horizontal, 16px);border-width:var(--x-tooltip-arrow-size, 5px) var(--x-tooltip-arrow-size, 5px) 0;border-top-color:var(--x-tooltip-color, var(--x-tooltip-bg, var(--x-color-bg-spotlight, rgba(0, 0, 0, 0.85))))}.x-tooltip-placement-topRight{bottom:100%;right:0;padding-bottom:var(--x-tooltip-offset, var(--x-spacing-xs, 8px))}.x-tooltip-placement-topRight .x-tooltip-arrow{bottom:var(--x-tooltip-arrow-offset-vertical, 3px);right:var(--x-tooltip-arrow-offset-horizontal, 16px);border-width:var(--x-tooltip-arrow-size, 5px) var(--x-tooltip-arrow-size, 5px) 0;border-top-color:var(--x-tooltip-color, var(--x-tooltip-bg, var(--x-color-bg-spotlight, rgba(0, 0, 0, 0.85))))}.x-tooltip-placement-bottom{top:100%;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%);padding-top:var(--x-tooltip-offset, var(--x-spacing-xs, 8px))}.x-tooltip-placement-bottom .x-tooltip-arrow{top:var(--x-tooltip-arrow-offset-vertical, 3px);left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%);border-width:0 var(--x-tooltip-arrow-size, 5px) var(--x-tooltip-arrow-size, 5px);border-bottom-color:var(--x-tooltip-color, var(--x-tooltip-bg, var(--x-color-bg-spotlight, rgba(0, 0, 0, 0.85))))}.x-tooltip-placement-bottomLeft{top:100%;left:0;padding-top:var(--x-tooltip-offset, var(--x-spacing-xs, 8px))}.x-tooltip-placement-bottomLeft .x-tooltip-arrow{top:var(--x-tooltip-arrow-offset-vertical, 3px);left:var(--x-tooltip-arrow-offset-horizontal, 16px);border-width:0 var(--x-tooltip-arrow-size, 5px) var(--x-tooltip-arrow-size, 5px);border-bottom-color:var(--x-tooltip-color, var(--x-tooltip-bg, var(--x-color-bg-spotlight, rgba(0, 0, 0, 0.85))))}.x-tooltip-placement-bottomRight{top:100%;right:0;padding-top:var(--x-tooltip-offset, var(--x-spacing-xs, 8px))}.x-tooltip-placement-bottomRight .x-tooltip-arrow{top:var(--x-tooltip-arrow-offset-vertical, 3px);right:var(--x-tooltip-arrow-offset-horizontal, 16px);border-width:0 var(--x-tooltip-arrow-size, 5px) var(--x-tooltip-arrow-size, 5px);border-bottom-color:var(--x-tooltip-color, var(--x-tooltip-bg, var(--x-color-bg-spotlight, rgba(0, 0, 0, 0.85))))}.x-tooltip-placement-left{right:100%;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);padding-right:var(--x-tooltip-offset, var(--x-spacing-xs, 8px))}.x-tooltip-placement-left .x-tooltip-arrow{right:var(--x-tooltip-arrow-offset-vertical, 3px);top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);border-width:var(--x-tooltip-arrow-size, 5px) 0 var(--x-tooltip-arrow-size, 5px) var(--x-tooltip-arrow-size, 5px);border-left-color:var(--x-tooltip-color, var(--x-tooltip-bg, var(--x-color-bg-spotlight, rgba(0, 0, 0, 0.85))))}.x-tooltip-placement-leftTop{right:100%;top:0;padding-right:var(--x-tooltip-offset, var(--x-spacing-xs, 8px))}.x-tooltip-placement-leftTop .x-tooltip-arrow{right:var(--x-tooltip-arrow-offset-vertical, 3px);top:var(--x-tooltip-arrow-edge-offset, 8px);border-width:var(--x-tooltip-arrow-size, 5px) 0 var(--x-tooltip-arrow-size, 5px) var(--x-tooltip-arrow-size, 5px);border-left-color:var(--x-tooltip-color, var(--x-tooltip-bg, var(--x-color-bg-spotlight, rgba(0, 0, 0, 0.85))))}.x-tooltip-placement-leftBottom{right:100%;bottom:0;padding-right:var(--x-tooltip-offset, var(--x-spacing-xs, 8px))}.x-tooltip-placement-leftBottom .x-tooltip-arrow{right:var(--x-tooltip-arrow-offset-vertical, 3px);bottom:var(--x-tooltip-arrow-edge-offset, 8px);border-width:var(--x-tooltip-arrow-size, 5px) 0 var(--x-tooltip-arrow-size, 5px) var(--x-tooltip-arrow-size, 5px);border-left-color:var(--x-tooltip-color, var(--x-tooltip-bg, var(--x-color-bg-spotlight, rgba(0, 0, 0, 0.85))))}.x-tooltip-placement-right{left:100%;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);padding-left:var(--x-tooltip-offset, var(--x-spacing-xs, 8px))}.x-tooltip-placement-right .x-tooltip-arrow{left:var(--x-tooltip-arrow-offset-vertical, 3px);top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);border-width:var(--x-tooltip-arrow-size, 5px) var(--x-tooltip-arrow-size, 5px) var(--x-tooltip-arrow-size, 5px) 0;border-right-color:var(--x-tooltip-color, var(--x-tooltip-bg, var(--x-color-bg-spotlight, rgba(0, 0, 0, 0.85))))}.x-tooltip-placement-rightTop{left:100%;top:0;padding-left:var(--x-tooltip-offset, var(--x-spacing-xs, 8px))}.x-tooltip-placement-rightTop .x-tooltip-arrow{left:var(--x-tooltip-arrow-offset-vertical, 3px);top:var(--x-tooltip-arrow-edge-offset, 8px);border-width:var(--x-tooltip-arrow-size, 5px) var(--x-tooltip-arrow-size, 5px) var(--x-tooltip-arrow-size, 5px) 0;border-right-color:var(--x-tooltip-color, var(--x-tooltip-bg, var(--x-color-bg-spotlight, rgba(0, 0, 0, 0.85))))}.x-tooltip-placement-rightBottom{left:100%;bottom:0;padding-left:var(--x-tooltip-offset, var(--x-spacing-xs, 8px))}.x-tooltip-placement-rightBottom .x-tooltip-arrow{left:var(--x-tooltip-arrow-offset-vertical, 3px);bottom:var(--x-tooltip-arrow-edge-offset, 8px);border-width:var(--x-tooltip-arrow-size, 5px) var(--x-tooltip-arrow-size, 5px) var(--x-tooltip-arrow-size, 5px) 0;border-right-color:var(--x-tooltip-color, var(--x-tooltip-bg, var(--x-color-bg-spotlight, rgba(0, 0, 0, 0.85))))}`;
2475
-
2476
- const XTooltip = class {
2477
- constructor(hostRef) {
2478
- registerInstance(this, hostRef);
2479
- this.openChange = createEvent(this, "openChange", 7);
2480
- }
2481
- get el() { return getElement(this); }
2482
- // ==================== Props ====================
2483
- /**
2484
- * The text shown in the tooltip.
2485
- * Use `tooltipTitle` to avoid conflict with native `title` attribute.
2486
- * @example
2487
- * <x-tooltip tooltip-title="Info"></x-tooltip>
2488
- */
2489
- tooltipTitle;
2490
- /**
2491
- * The position of the tooltip relative to the target.
2492
- * @default 'top'
2493
- * @example
2494
- * <x-tooltip placement="bottom"></x-tooltip>
2495
- */
2496
- placement = 'top';
2497
- /**
2498
- * Tooltip trigger mode.
2499
- * @default 'hover'
2500
- * @example
2501
- * <x-tooltip trigger="click"></x-tooltip>
2502
- */
2503
- trigger = 'hover';
2504
- /**
2505
- * Background color of the tooltip.
2506
- * @example
2507
- * <x-tooltip color="#333"></x-tooltip>
2508
- */
2509
- color;
2510
- /**
2511
- * Whether the floating tooltip card is visible or not (controlled mode).
2512
- * @example
2513
- * <x-tooltip open></x-tooltip>
2514
- */
2515
- open;
2516
- /**
2517
- * Whether the floating tooltip card is visible by default.
2518
- * @example
2519
- * <x-tooltip defaultOpen></x-tooltip>
2520
- */
2521
- defaultOpen = false;
2522
- /**
2523
- * Whether to show arrow.
2524
- * Can be a boolean or an object with `pointAtCenter` option.
2525
- * @default true
2526
- * @example
2527
- * <x-tooltip arrow={false}></x-tooltip>
2528
- */
2529
- arrow = true;
2530
- /**
2531
- * Delay in seconds before tooltip is shown on mouse enter.
2532
- * @default 0.1
2533
- * @example
2534
- * <x-tooltip mouseEnterDelay={0.5}></x-tooltip>
2535
- */
2536
- mouseEnterDelay = 0.1;
2537
- /**
2538
- * Delay in seconds before tooltip is hidden on mouse leave.
2539
- * @default 0.1
2540
- * @example
2541
- * <x-tooltip mouseLeaveDelay={0.5}></x-tooltip>
2542
- */
2543
- mouseLeaveDelay = 0.1;
2544
- /**
2545
- * Whether to destroy tooltip on hide.
2546
- * @default false
2547
- * @example
2548
- * <x-tooltip destroyTooltipOnHide></x-tooltip>
2549
- */
2550
- destroyTooltipOnHide = false;
2551
- /**
2552
- * Whether to adjust popup placement automatically when popup is off screen.
2553
- * @default true
2554
- * @example
2555
- * <x-tooltip autoAdjustOverflow={false}></x-tooltip>
2556
- */
2557
- autoAdjustOverflow = true;
2558
- /**
2559
- * Z-index of the tooltip.
2560
- * @example
2561
- * <x-tooltip zIndex={2000}></x-tooltip>
2562
- */
2563
- zIndex = 9999;
2564
- /**
2565
- * Custom class names for tooltip parts.
2566
- * @example
2567
- * <x-tooltip classNames={{ root: 'my-tooltip' }}></x-tooltip>
2568
- */
2569
- classNames;
2570
- /**
2571
- * Custom styles for tooltip parts.
2572
- * @example
2573
- * <x-tooltip styles={{ root: { background: '#000' } }}></x-tooltip>
2574
- */
2575
- styles;
2576
- // ==================== Events ====================
2577
- /**
2578
- * Callback executed when visibility of the tooltip card is changed.
2579
- * @example
2580
- * <x-tooltip onOpenChange={(ev) => console.log(ev.detail)}></x-tooltip>
2581
- */
2582
- openChange;
2583
- // ==================== State ====================
2584
- /**
2585
- * Internal visibility state.
2586
- */
2587
- visible = false;
2588
- // ==================== Private ====================
2589
- /**
2590
- * Portal instance for tooltip content.
2591
- */
2592
- portalInstance = null;
2593
- /**
2594
- * Timeout for delayed show.
2595
- */
2596
- showTimeout;
2597
- /**
2598
- * Timeout for delayed hide.
2599
- */
2600
- hideTimeout;
2601
- // ==================== Computed ====================
2602
- get isOpen() {
2603
- return this.open ?? this.visible;
2604
- }
2605
- // ==================== Lifecycle ====================
2606
- componentWillLoad() {
2607
- this.visible = this.open ?? this.defaultOpen ?? false;
2608
- }
2609
- componentDidLoad() {
2610
- this.addEventListeners();
2611
- }
2612
- componentDidRender() {
2613
- this.updatePortal();
2614
- }
2615
- disconnectedCallback() {
2616
- this.clearTimeouts();
2617
- this.removeEventListeners();
2618
- this.destroyPortal();
2619
- }
2620
- // ==================== Watchers ====================
2621
- handleOpenChange(newValue) {
2622
- if (newValue !== undefined) {
2623
- this.setVisible(newValue);
2624
- }
2625
- }
2626
- // ==================== Methods ====================
2627
- /**
2628
- * Show the tooltip programmatically.
2629
- * @returns Promise<void>
2630
- * @example
2631
- * await el.show()
2632
- */
2633
- async show() {
2634
- this.setVisible(true);
2635
- }
2636
- /**
2637
- * Hide the tooltip programmatically.
2638
- * @returns Promise<void>
2639
- * @example
2640
- * await el.hide()
2641
- */
2642
- async hide() {
2643
- this.setVisible(false);
2644
- }
2645
- // ==================== Private Methods ====================
2646
- /**
2647
- * Clear pending show/hide timeouts.
2648
- * @returns void
2649
- */
2650
- clearTimeouts() {
2651
- if (this.showTimeout) {
2652
- clearTimeout(this.showTimeout);
2653
- this.showTimeout = undefined;
2654
- }
2655
- if (this.hideTimeout) {
2656
- clearTimeout(this.hideTimeout);
2657
- this.hideTimeout = undefined;
2658
- }
2659
- }
2660
- /**
2661
- * Update internal visibility and emit openChange.
2662
- * @param visible - New visibility state.
2663
- * @returns void
2664
- */
2665
- setVisible(visible) {
2666
- if (this.visible === visible)
2667
- return;
2668
- this.visible = visible;
2669
- this.openChange.emit({ open: visible });
2670
- }
2671
- /**
2672
- * Delay showing tooltip based on mouseEnterDelay.
2673
- * @returns void
2674
- */
2675
- delayShow = () => {
2676
- this.clearTimeouts();
2677
- const delay = (this.mouseEnterDelay ?? 0.1) * 1000;
2678
- this.showTimeout = setTimeout(() => {
2679
- if (this.open === undefined) {
2680
- this.setVisible(true);
2681
- }
2682
- }, delay);
2683
- };
2684
- /**
2685
- * Delay hiding tooltip based on mouseLeaveDelay.
2686
- * @returns void
2687
- */
2688
- delayHide = () => {
2689
- this.clearTimeouts();
2690
- const delay = (this.mouseLeaveDelay ?? 0.1) * 1000;
2691
- this.hideTimeout = setTimeout(() => {
2692
- if (this.open === undefined) {
2693
- this.setVisible(false);
2694
- }
2695
- }, delay);
2696
- };
2697
- /**
2698
- * Handle trigger mouse enter for hover mode.
2699
- * @returns void
2700
- */
2701
- handleMouseEnter = () => {
2702
- if (this.trigger === 'hover') {
2703
- this.delayShow();
2704
- }
2705
- };
2706
- /**
2707
- * Handle trigger mouse leave for hover mode.
2708
- * @returns void
2709
- */
2710
- handleMouseLeave = () => {
2711
- if (this.trigger === 'hover') {
2712
- this.delayHide();
2713
- }
2714
- };
2715
- /**
2716
- * Handle focus for focus trigger mode.
2717
- * @returns void
2718
- */
2719
- handleFocus = () => {
2720
- if (this.trigger === 'focus') {
2721
- this.delayShow();
2722
- }
2723
- };
2724
- /**
2725
- * Handle blur for focus trigger mode.
2726
- * @returns void
2727
- */
2728
- handleBlur = () => {
2729
- if (this.trigger === 'focus') {
2730
- this.delayHide();
2731
- }
2732
- };
2733
- /**
2734
- * Handle click for click trigger mode.
2735
- * @returns void
2736
- */
2737
- handleClick = () => {
2738
- if (this.trigger === 'click') {
2739
- if (this.open === undefined) {
2740
- this.setVisible(!this.visible);
2741
- }
2742
- }
2743
- };
2744
- /**
2745
- * Handle context menu trigger mode.
2746
- * @param e - Mouse event.
2747
- * @returns void
2748
- */
2749
- handleContextMenu = (e) => {
2750
- if (this.trigger === 'contextMenu') {
2751
- e.preventDefault();
2752
- if (this.open === undefined) {
2753
- this.setVisible(!this.visible);
2754
- }
2755
- }
2756
- };
2757
- /**
2758
- * Close tooltip when clicking outside.
2759
- * @param e - Mouse event.
2760
- * @returns void
2761
- */
2762
- handleDocumentClick = (e) => {
2763
- if (this.trigger === 'click' || this.trigger === 'contextMenu') {
2764
- const target = e.target;
2765
- // Check if click is inside component
2766
- if (this.el.contains(target))
2767
- return;
2768
- // Check if click is inside portal
2769
- const portalEl = this.portalInstance?.getElement?.();
2770
- if (portalEl?.contains(target))
2771
- return;
2772
- if (this.open === undefined) {
2773
- this.setVisible(false);
2774
- }
2775
- }
2776
- };
2777
- /**
2778
- * Handle hover inside portal to prevent hide.
2779
- * @returns void
2780
- */
2781
- handlePortalMouseEnter = () => {
2782
- if (this.trigger === 'hover') {
2783
- this.clearTimeouts();
2784
- }
2785
- };
2786
- /**
2787
- * Handle mouse leave from portal for hover trigger.
2788
- * @returns void
2789
- */
2790
- handlePortalMouseLeave = () => {
2791
- if (this.trigger === 'hover') {
2792
- this.delayHide();
2793
- }
2794
- };
2795
- /**
2796
- * Add global event listeners.
2797
- * @returns void
2798
- */
2799
- addEventListeners() {
2800
- document.addEventListener('click', this.handleDocumentClick);
2801
- }
2802
- /**
2803
- * Remove global event listeners.
2804
- * @returns void
2805
- */
2806
- removeEventListeners() {
2807
- document.removeEventListener('click', this.handleDocumentClick);
2808
- }
2809
- /**
2810
- * Determine whether to render arrow.
2811
- * @returns boolean
2812
- */
2813
- shouldShowArrow() {
2814
- if (typeof this.arrow === 'boolean') {
2815
- return this.arrow;
2816
- }
2817
- return this.arrow !== undefined;
2818
- }
2819
- /**
2820
- * Get trigger element inside shadow root.
2821
- * @returns HTMLElement | undefined
2822
- */
2823
- getTriggerEl() {
2824
- return this.el.shadowRoot
2825
- ? this.el.shadowRoot.querySelector('.x-tooltip-trigger')
2826
- : this.el.querySelector('.x-tooltip-trigger');
2827
- }
2828
- // ==================== Portal Methods ====================
2829
- /**
2830
- * Calculate arrow position based on trigger element and placement
2831
- * @returns { arrowX: number; arrowY: number }
2832
- */
2833
- calculateArrowPosition() {
2834
- const triggerEl = this.getTriggerEl();
2835
- if (!triggerEl) {
2836
- return { arrowX: 0, arrowY: 0 };
2837
- }
2838
- const triggerRect = triggerEl.getBoundingClientRect();
2839
- const triggerWidth = triggerRect.width;
2840
- const triggerHeight = triggerRect.height;
2841
- let arrowX = 0;
2842
- let arrowY = 0;
2843
- // Calculate arrow position based on placement
2844
- // We want the arrow to point at the center of the trigger
2845
- switch (this.placement) {
2846
- // Top placements - arrow points down, X is relative to trigger center
2847
- case 'top':
2848
- arrowX = triggerWidth / 2;
2849
- arrowY = 0;
2850
- break;
2851
- case 'topLeft':
2852
- arrowX = Math.min(20, triggerWidth / 2);
2853
- arrowY = 0;
2854
- break;
2855
- case 'topRight':
2856
- arrowX = triggerWidth - Math.min(20, triggerWidth / 2);
2857
- arrowY = 0;
2858
- break;
2859
- // Bottom placements - arrow points up, X is relative to trigger center
2860
- case 'bottom':
2861
- arrowX = triggerWidth / 2;
2862
- arrowY = 0;
2863
- break;
2864
- case 'bottomLeft':
2865
- arrowX = Math.min(20, triggerWidth / 2);
2866
- arrowY = 0;
2867
- break;
2868
- case 'bottomRight':
2869
- arrowX = triggerWidth - Math.min(20, triggerWidth / 2);
2870
- arrowY = 0;
2871
- break;
2872
- // Left placements - arrow points right, Y is relative to trigger center
2873
- case 'left':
2874
- arrowX = 0;
2875
- arrowY = triggerHeight / 2;
2876
- break;
2877
- case 'leftTop':
2878
- arrowX = 0;
2879
- arrowY = Math.min(16, triggerHeight / 2);
2880
- break;
2881
- case 'leftBottom':
2882
- arrowX = 0;
2883
- arrowY = triggerHeight - Math.min(16, triggerHeight / 2);
2884
- break;
2885
- // Right placements - arrow points left, Y is relative to trigger center
2886
- case 'right':
2887
- arrowX = 0;
2888
- arrowY = triggerHeight / 2;
2889
- break;
2890
- case 'rightTop':
2891
- arrowX = 0;
2892
- arrowY = Math.min(16, triggerHeight / 2);
2893
- break;
2894
- case 'rightBottom':
2895
- arrowX = 0;
2896
- arrowY = triggerHeight - Math.min(16, triggerHeight / 2);
2897
- break;
2898
- }
2899
- return { arrowX, arrowY };
2900
- }
2901
- /**
2902
- * Build tooltip content element for portal.
2903
- * @returns HTMLElement
2904
- */
2905
- buildTooltipElement() {
2906
- // Create x-tooltip-content component
2907
- const tooltipEl = document.createElement('x-tooltip-content');
2908
- // Set properties
2909
- tooltipEl.tooltipTitle = this.tooltipTitle || '';
2910
- tooltipEl.placement = this.placement;
2911
- tooltipEl.showArrow = this.shouldShowArrow();
2912
- if (this.color) {
2913
- tooltipEl.color = this.color;
2914
- }
2915
- if (this.classNames?.root) {
2916
- tooltipEl.contentClass = this.classNames.root;
2917
- }
2918
- // Calculate and set arrow position CSS variables
2919
- const { arrowX, arrowY } = this.calculateArrowPosition();
2920
- tooltipEl.style.setProperty('--arrow-x', `${arrowX}px`);
2921
- tooltipEl.style.setProperty('--arrow-y', `${arrowY}px`);
2922
- // Add event listeners for hover on portal
2923
- tooltipEl.addEventListener('mouseenter', this.handlePortalMouseEnter);
2924
- tooltipEl.addEventListener('mouseleave', this.handlePortalMouseLeave);
2925
- return tooltipEl;
2926
- }
2927
- /**
2928
- * Create or update portal content for tooltip.
2929
- * @returns void
2930
- */
2931
- updatePortal() {
2932
- const hasTitle = !!this.tooltipTitle;
2933
- if (!this.isOpen || !hasTitle) {
2934
- if (this.portalInstance) {
2935
- this.portalInstance.destroy();
2936
- this.portalInstance = null;
2937
- }
2938
- return;
2939
- }
2940
- const tooltipElement = this.buildTooltipElement();
2941
- if (!this.portalInstance) {
2942
- this.portalInstance = PortalController.create({
2943
- open: this.isOpen,
2944
- target: this.getTriggerEl(),
2945
- placement: this.placement,
2946
- zIndex: this.zIndex || 9999,
2947
- offset: 8, // arrow size (5px) + gap (3px)
2948
- content: tooltipElement,
2949
- flip: false,
2950
- shift: this.autoAdjustOverflow !== false,
2951
- });
2952
- }
2953
- else {
2954
- this.portalInstance.update({
2955
- open: this.isOpen,
2956
- target: this.getTriggerEl(),
2957
- placement: this.placement,
2958
- offset: 8,
2959
- content: tooltipElement,
2960
- flip: false,
2961
- shift: this.autoAdjustOverflow !== false,
2962
- });
2963
- }
2964
- }
2965
- /**
2966
- * Destroy portal instance if present.
2967
- * @returns void
2968
- */
2969
- destroyPortal() {
2970
- if (this.portalInstance) {
2971
- this.portalInstance.destroy();
2972
- this.portalInstance = null;
2973
- }
2974
- }
2975
- // ==================== Render ====================
2976
- /**
2977
- * Renders the Tooltip component.
2978
- *
2979
- * Flow:
2980
- * 1. Constructs host classes based on visibility and color.
2981
- * 2. Attaches event listeners for all trigger modes (hover, focus, click, contextMenu).
2982
- * 3. Renders a trigger wrapper `span` that wraps the default slot.
2983
- * 4. The actual tooltip content is rendered via a Portal (managed by `updatePortal`) to escape container clipping.
2984
- *
2985
- * @returns JSX.Element
2986
- */
2987
- render() {
2988
- return (h(Host, { key: '7f714f3aef2633cd18aac1fe03be7c840f01aa81', class: {
2989
- 'x-tooltip-wrapper': true,
2990
- 'x-tooltip-open': this.isOpen,
2991
- 'x-tooltip-color': this.color ? true : false,
2992
- }, onMouseEnter: this.handleMouseEnter, onMouseLeave: this.handleMouseLeave, onFocus: this.handleFocus, onBlur: this.handleBlur, onClick: this.handleClick, onContextMenu: this.handleContextMenu }, h("span", { key: 'ae94a1ccfc97a0ba7bddb87394e7cbe0e4a4ff2a', class: "x-tooltip-trigger" }, h("slot", { key: '1f2ca22b7b432abe47e12d69e3ea94efe4c06c08' }))));
2993
- }
2994
- static get watchers() { return {
2995
- "open": [{
2996
- "handleOpenChange": 0
2997
- }]
2998
- }; }
2999
- };
3000
- XTooltip.style = xTooltipCss();
3001
-
3002
- const xTooltipContentCss = () => `.x-tooltip-content{position:relative;display:block;font-family:var(--x-tooltip-font-family, var(--x-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif));font-size:var(--x-tooltip-font-size, var(--x-font-size-sm, 14px));line-height:var(--x-tooltip-line-height, var(--x-line-height, 1.5714));word-wrap:break-word;white-space:normal;max-width:var(--x-tooltip-max-width, 250px);pointer-events:auto;-webkit-animation:x-tooltip-fade-in var(--x-tooltip-motion-duration, 0.2s) ease-out;animation:x-tooltip-fade-in var(--x-tooltip-motion-duration, 0.2s) ease-out}@-webkit-keyframes x-tooltip-fade-in{from{opacity:0;-webkit-transform:scale(0.95);transform:scale(0.95)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes x-tooltip-fade-in{from{opacity:0;-webkit-transform:scale(0.95);transform:scale(0.95)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}.x-tooltip-content-inner{min-width:var(--x-tooltip-min-width, 30px);min-height:var(--x-tooltip-min-height, 32px);padding:var(--x-tooltip-padding-block, 6px) var(--x-tooltip-padding-inline, 8px)}.x-tooltip-content-inner:not(.x-tooltip-content-color){color:var(--x-tooltip-color, #ffffff)}.x-tooltip-content-inner.x-tooltip-content-color{color:white}.x-tooltip-content-inner{text-align:left;text-decoration:none;word-wrap:break-word;background-color:var(--x-tooltip-color, var(--x-tooltip-bg, rgba(0, 0, 0, 0.85)));border-radius:var(--x-tooltip-border-radius, 6px);-webkit-box-shadow:var(--x-tooltip-shadow, 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 9px 28px 8px rgba(0, 0, 0, 0.05));box-shadow:var(--x-tooltip-shadow, 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 9px 28px 8px rgba(0, 0, 0, 0.05));-webkit-box-sizing:border-box;box-sizing:border-box}.x-tooltip-content-arrow{position:absolute;width:0;height:0;border-style:solid;border-color:transparent;pointer-events:none}[class*=x-tooltip-content-placement-top]{-webkit-transform-origin:bottom center;transform-origin:bottom center}[class*=x-tooltip-content-placement-bottom]{-webkit-transform-origin:top center;transform-origin:top center}[class*=x-tooltip-content-placement-left]{-webkit-transform-origin:right center;transform-origin:right center}[class*=x-tooltip-content-placement-right]{-webkit-transform-origin:left center;transform-origin:left center}.x-tooltip-content-placement-top{padding-bottom:var(--x-tooltip-arrow-size, 8px)}.x-tooltip-content-placement-top .x-tooltip-content-arrow{bottom:0;left:var(--arrow-x, 50%);-webkit-transform:translateX(-50%);transform:translateX(-50%);border-width:var(--x-tooltip-arrow-size, 8px) var(--x-tooltip-arrow-size, 8px) 0;border-top-color:var(--x-tooltip-color, var(--x-tooltip-bg, rgba(0, 0, 0, 0.85)))}.x-tooltip-content-placement-topLeft{padding-bottom:var(--x-tooltip-arrow-size, 8px)}.x-tooltip-content-placement-topLeft .x-tooltip-content-arrow{bottom:0;left:var(--arrow-x, 16px);-webkit-transform:translateX(-50%);transform:translateX(-50%);border-width:var(--x-tooltip-arrow-size, 8px) var(--x-tooltip-arrow-size, 8px) 0;border-top-color:var(--x-tooltip-color, var(--x-tooltip-bg, rgba(0, 0, 0, 0.85)))}.x-tooltip-content-placement-topRight{padding-bottom:var(--x-tooltip-arrow-size, 8px)}.x-tooltip-content-placement-topRight .x-tooltip-content-arrow{bottom:0;right:var(--arrow-x, 16px);-webkit-transform:translateX(50%);transform:translateX(50%);border-width:var(--x-tooltip-arrow-size, 8px) var(--x-tooltip-arrow-size, 8px) 0;border-top-color:var(--x-tooltip-color, var(--x-tooltip-bg, rgba(0, 0, 0, 0.85)))}.x-tooltip-content-placement-bottom{padding-top:var(--x-tooltip-arrow-size, 8px)}.x-tooltip-content-placement-bottom .x-tooltip-content-arrow{top:0;left:var(--arrow-x, 50%);-webkit-transform:translateX(-50%);transform:translateX(-50%);border-width:0 var(--x-tooltip-arrow-size, 8px) var(--x-tooltip-arrow-size, 8px);border-bottom-color:var(--x-tooltip-color, var(--x-tooltip-bg, rgba(0, 0, 0, 0.85)))}.x-tooltip-content-placement-bottomLeft{padding-top:var(--x-tooltip-arrow-size, 8px)}.x-tooltip-content-placement-bottomLeft .x-tooltip-content-arrow{top:0;left:var(--arrow-x, 16px);-webkit-transform:translateX(-50%);transform:translateX(-50%);border-width:0 var(--x-tooltip-arrow-size, 8px) var(--x-tooltip-arrow-size, 8px);border-bottom-color:var(--x-tooltip-color, var(--x-tooltip-bg, rgba(0, 0, 0, 0.85)))}.x-tooltip-content-placement-bottomRight{padding-top:var(--x-tooltip-arrow-size, 8px)}.x-tooltip-content-placement-bottomRight .x-tooltip-content-arrow{top:0;right:var(--arrow-x, 16px);-webkit-transform:translateX(50%);transform:translateX(50%);border-width:0 var(--x-tooltip-arrow-size, 8px) var(--x-tooltip-arrow-size, 8px);border-bottom-color:var(--x-tooltip-color, var(--x-tooltip-bg, rgba(0, 0, 0, 0.85)))}.x-tooltip-content-placement-left{padding-right:var(--x-tooltip-arrow-size, 8px)}.x-tooltip-content-placement-left .x-tooltip-content-arrow{right:0;top:var(--arrow-y, 50%);-webkit-transform:translateY(-50%);transform:translateY(-50%);border-width:var(--x-tooltip-arrow-size, 8px) 0 var(--x-tooltip-arrow-size, 8px) var(--x-tooltip-arrow-size, 8px);border-left-color:var(--x-tooltip-color, var(--x-tooltip-bg, rgba(0, 0, 0, 0.85)))}.x-tooltip-content-placement-leftTop{padding-right:var(--x-tooltip-arrow-size, 8px)}.x-tooltip-content-placement-leftTop .x-tooltip-content-arrow{right:0;top:var(--arrow-y, 12px);-webkit-transform:translateY(-50%);transform:translateY(-50%);border-width:var(--x-tooltip-arrow-size, 8px) 0 var(--x-tooltip-arrow-size, 8px) var(--x-tooltip-arrow-size, 8px);border-left-color:var(--x-tooltip-color, var(--x-tooltip-bg, rgba(0, 0, 0, 0.85)))}.x-tooltip-content-placement-leftBottom{padding-right:var(--x-tooltip-arrow-size, 8px)}.x-tooltip-content-placement-leftBottom .x-tooltip-content-arrow{right:0;bottom:var(--arrow-y, 12px);-webkit-transform:translateY(50%);transform:translateY(50%);border-width:var(--x-tooltip-arrow-size, 8px) 0 var(--x-tooltip-arrow-size, 8px) var(--x-tooltip-arrow-size, 8px);border-left-color:var(--x-tooltip-color, var(--x-tooltip-bg, rgba(0, 0, 0, 0.85)))}.x-tooltip-content-placement-right{padding-left:var(--x-tooltip-arrow-size, 8px)}.x-tooltip-content-placement-right .x-tooltip-content-arrow{left:0;top:var(--arrow-y, 50%);-webkit-transform:translateY(-50%);transform:translateY(-50%);border-width:var(--x-tooltip-arrow-size, 8px) var(--x-tooltip-arrow-size, 8px) var(--x-tooltip-arrow-size, 8px) 0;border-right-color:var(--x-tooltip-color, var(--x-tooltip-bg, rgba(0, 0, 0, 0.85)))}.x-tooltip-content-placement-rightTop{padding-left:var(--x-tooltip-arrow-size, 8px)}.x-tooltip-content-placement-rightTop .x-tooltip-content-arrow{left:0;top:var(--arrow-y, 12px);-webkit-transform:translateY(-50%);transform:translateY(-50%);border-width:var(--x-tooltip-arrow-size, 8px) var(--x-tooltip-arrow-size, 8px) var(--x-tooltip-arrow-size, 8px) 0;border-right-color:var(--x-tooltip-color, var(--x-tooltip-bg, rgba(0, 0, 0, 0.85)))}.x-tooltip-content-placement-rightBottom{padding-left:var(--x-tooltip-arrow-size, 8px)}.x-tooltip-content-placement-rightBottom .x-tooltip-content-arrow{left:0;bottom:var(--arrow-y, 12px);-webkit-transform:translateY(50%);transform:translateY(50%);border-width:var(--x-tooltip-arrow-size, 8px) var(--x-tooltip-arrow-size, 8px) var(--x-tooltip-arrow-size, 8px) 0;border-right-color:var(--x-tooltip-color, var(--x-tooltip-bg, rgba(0, 0, 0, 0.85)))}.x-tooltip-content-hidden{display:none;pointer-events:none}`;
3003
-
3004
- const XTooltipContent = class {
3005
- constructor(hostRef) {
3006
- registerInstance(this, hostRef);
3007
- }
3008
- get el() { return getElement(this); }
3009
- // ==================== Props ====================
3010
- /**
3011
- * Tooltip title/content text.
3012
- * @example
3013
- * <x-tooltip-content tooltipTitle="Info"></x-tooltip-content>
3014
- */
3015
- tooltipTitle;
3016
- /**
3017
- * Placement of the tooltip.
3018
- * @example
3019
- * <x-tooltip-content placement="bottom"></x-tooltip-content>
3020
- */
3021
- placement = 'top';
3022
- /**
3023
- * Whether to show arrow.
3024
- * @example
3025
- * <x-tooltip-content showArrow={false}></x-tooltip-content>
3026
- */
3027
- showArrow = true;
3028
- /**
3029
- * Custom background color.
3030
- * @example
3031
- * <x-tooltip-content color="#333"></x-tooltip-content>
3032
- */
3033
- color;
3034
- /**
3035
- * Custom class for the content.
3036
- * @example
3037
- * <x-tooltip-content contentClass="my-tooltip"></x-tooltip-content>
3038
- */
3039
- contentClass;
3040
- /**
3041
- * Whether the tooltip is hidden.
3042
- * @example
3043
- * <x-tooltip-content hidden></x-tooltip-content>
3044
- */
3045
- hidden = false;
3046
- // ==================== Render ====================
3047
- /**
3048
- * Render tooltip content, arrow, and slot.
3049
- * @returns JSX.Element
3050
- * @example
3051
- * <x-tooltip-content tooltipTitle="Tip"></x-tooltip-content>
3052
- */
3053
- render() {
3054
- // Build class map based on placement and visibility.
3055
- const classes = {
3056
- 'x-tooltip-content': true,
3057
- [`x-tooltip-content-placement-${this.placement}`]: true,
3058
- 'x-tooltip-content-hidden': this.hidden,
3059
- [this.contentClass || '']: !!this.contentClass,
3060
- };
3061
- // Apply CSS variable for custom color.
3062
- const style = {};
3063
- if (this.color) {
3064
- style['--x-tooltip-color'] = this.color;
3065
- }
3066
- return (h(Host, { key: 'a583a96aef26105e6b21504201ffda958a46103c', class: classes, style: style, role: "tooltip" }, h("div", { key: '9cf9e614628b794ff569e26d679507c437395548', class: {
3067
- 'x-tooltip-content-inner': true,
3068
- 'x-tooltip-content-color': this.color ? true : false,
3069
- [this.contentClass || '']: !!this.contentClass,
3070
- } }, this.tooltipTitle, h("slot", { key: '799907798ddfca9bf4ccdee5850301af616f8127' })), this.showArrow && (h("div", { key: '0a9215b4cbb5f583188851171cb3a50bd26683a2', class: "x-tooltip-content-arrow" }))));
3071
- }
3072
- };
3073
- XTooltipContent.style = xTooltipContentCss();
3074
-
3075
- export { XColorPicker as x_color_picker, XDivider as x_divider, XFormItem as x_form_item, XInputNumber as x_input_number, XModal as x_modal, XSlider as x_slider, XSwitch as x_switch, XTooltip as x_tooltip, XTooltipContent as x_tooltip_content };