@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,3085 +0,0 @@
1
- 'use strict';
2
-
3
- var index = require('./index-C7sKs9A2.js');
4
- var portalController = require('./portal-controller-CtYVbhXL.js');
5
- var config = require('./config-BP9bROYD.js');
6
- var types = require('./types-DQ-V76ZQ.js');
7
- var abstractControl = require('./abstract-control-C4D0eNCC.js');
8
- var locale_service = require('./locale.service-Cz-aZQnr.js');
9
-
10
- 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)}`;
11
-
12
- const XColorPicker = class {
13
- constructor(hostRef) {
14
- index.registerInstance(this, hostRef);
15
- this.xChange = index.createEvent(this, "xChange", 7);
16
- this.xChangeComplete = index.createEvent(this, "xChangeComplete", 7);
17
- this.xFormatChange = index.createEvent(this, "xFormatChange", 7);
18
- this.xOpenChange = index.createEvent(this, "xOpenChange", 7);
19
- this.xClear = index.createEvent(this, "xClear", 7);
20
- }
21
- get el() { return index.getElement(this); }
22
- // ==================== Props ====================
23
- /**
24
- * Allow clearing color selected
25
- * @default false
26
- * @example
27
- * <x-color-picker allowClear></x-color-picker>
28
- */
29
- allowClear = false;
30
- /**
31
- * Default value of color
32
- * @example
33
- * <x-color-picker defaultValue="#ff4d4f"></x-color-picker>
34
- */
35
- defaultValue;
36
- /**
37
- * Default format of color
38
- * @default 'hex'
39
- * @example
40
- * <x-color-picker defaultFormat="rgb"></x-color-picker>
41
- */
42
- defaultFormat = 'hex';
43
- /**
44
- * Disable ColorPicker
45
- * @default false
46
- * @example
47
- * <x-color-picker disabled></x-color-picker>
48
- */
49
- disabled = false;
50
- /**
51
- * Disable Alpha slider
52
- * @default false
53
- * @example
54
- * <x-color-picker disabledAlpha></x-color-picker>
55
- */
56
- disabledAlpha = false;
57
- /**
58
- * Disable format selector
59
- * @default false
60
- * @example
61
- * <x-color-picker disabledFormat></x-color-picker>
62
- */
63
- disabledFormat = false;
64
- /**
65
- * Format of color
66
- * @example
67
- * <x-color-picker format="hsb"></x-color-picker>
68
- */
69
- format;
70
- /**
71
- * Whether to show popup
72
- * @example
73
- * <x-color-picker open></x-color-picker>
74
- */
75
- open;
76
- /**
77
- * Preset colors
78
- * @example
79
- * <x-color-picker presets={[{ label: 'Primary', colors: ['#1677ff'] }]}></x-color-picker>
80
- */
81
- presets;
82
- /**
83
- * Placement of popup
84
- * @default 'bottomLeft'
85
- * @example
86
- * <x-color-picker placement="topLeft"></x-color-picker>
87
- */
88
- placement = 'bottomLeft';
89
- /**
90
- * Show color text
91
- * @default false
92
- * @example
93
- * <x-color-picker showText></x-color-picker>
94
- */
95
- showText = false;
96
- /**
97
- * Size of trigger
98
- * @default 'middle'
99
- * @example
100
- * <x-color-picker size="small"></x-color-picker>
101
- */
102
- size = 'middle';
103
- /**
104
- * Trigger mode
105
- * @default 'click'
106
- * @example
107
- * <x-color-picker trigger="hover"></x-color-picker>
108
- */
109
- trigger = 'click';
110
- /**
111
- * Value of color
112
- * @example
113
- * <x-color-picker value="#1677ff"></x-color-picker>
114
- */
115
- value;
116
- /**
117
- * Custom class names
118
- * @example
119
- * <x-color-picker classNames={{ root: 'my-color-picker' }}></x-color-picker>
120
- */
121
- classNames;
122
- /**
123
- * Custom styles
124
- * @example
125
- * <x-color-picker styles={{ root: { minWidth: '120px' } }}></x-color-picker>
126
- */
127
- styles;
128
- // ==================== Events ====================
129
- /**
130
- * Callback when value is changed
131
- * @example
132
- * <x-color-picker onXChange={(ev) => console.log(ev.detail)}></x-color-picker>
133
- */
134
- xChange;
135
- /**
136
- * Called when color pick ends
137
- * @example
138
- * <x-color-picker onXChangeComplete={(ev) => console.log(ev.detail)}></x-color-picker>
139
- */
140
- xChangeComplete;
141
- /**
142
- * Callback when format is changed
143
- * @example
144
- * <x-color-picker onXFormatChange={(ev) => console.log(ev.detail)}></x-color-picker>
145
- */
146
- xFormatChange;
147
- /**
148
- * Callback when open is changed
149
- * @example
150
- * <x-color-picker onXOpenChange={(ev) => console.log(ev.detail)}></x-color-picker>
151
- */
152
- xOpenChange;
153
- /**
154
- * Called when clear
155
- * @example
156
- * <x-color-picker onXClear={() => {}}></x-color-picker>
157
- */
158
- xClear;
159
- // ==================== State ====================
160
- /**
161
- * Internal open state for uncontrolled mode.
162
- */
163
- internalOpen = false;
164
- /**
165
- * Internal color format.
166
- */
167
- internalFormat = 'hex';
168
- /**
169
- * Internal color object.
170
- */
171
- internalColor = null;
172
- /**
173
- * Cleared state flag.
174
- */
175
- isCleared = false;
176
- // ==================== Private Properties ====================
177
- /**
178
- * Trigger element reference.
179
- */
180
- triggerRef;
181
- /**
182
- * Portal instance for panel.
183
- */
184
- portalInstance = null;
185
- /**
186
- * Panel element reference.
187
- */
188
- panelElement = null;
189
- /**
190
- * Dragging flag for hover behavior.
191
- */
192
- isDragging = false;
193
- // ==================== Lifecycle ====================
194
- /**
195
- * Initialize format and color.
196
- * @returns void
197
- */
198
- componentWillLoad() {
199
- // Initialize format
200
- this.internalFormat = this.format ?? this.defaultFormat;
201
- // Initialize color
202
- const initialValue = this.value ?? this.defaultValue ?? '#1677ff';
203
- if (typeof initialValue === 'string') {
204
- this.internalColor = types.createColor(initialValue);
205
- }
206
- }
207
- /**
208
- * Cleanup portal on disconnect.
209
- * @returns void
210
- */
211
- disconnectedCallback() {
212
- this.destroyPortal();
213
- }
214
- // ==================== Watchers ====================
215
- /**
216
- * Sync internal color when value changes.
217
- * @param newValue - New color value.
218
- * @returns void
219
- */
220
- handleValueChange(newValue) {
221
- if (typeof newValue === 'string') {
222
- this.internalColor = types.createColor(newValue);
223
- this.isCleared = false;
224
- }
225
- }
226
- /**
227
- * Sync format when format prop changes.
228
- * @param newFormat - New format.
229
- * @returns void
230
- */
231
- handleFormatChange(newFormat) {
232
- if (newFormat) {
233
- this.internalFormat = newFormat;
234
- }
235
- }
236
- /**
237
- * Sync open state when controlled prop changes.
238
- * @param newOpen - Open state.
239
- * @returns void
240
- */
241
- handleOpenPropChange(newOpen) {
242
- if (newOpen !== undefined) {
243
- this.setOpen(newOpen);
244
- }
245
- }
246
- // ==================== Listeners ====================
247
- /**
248
- * Close panel on outside click.
249
- *
250
- * Flow:
251
- * 1. Checks if panel is open.
252
- * 2. Determines click target.
253
- * 3. Checks if click is inside the trigger element or the portal panel.
254
- * 4. If outside both, closes the panel by calling \`setOpen(false)\`.
255
- *
256
- * @param e - Mouse event.
257
- * @returns void
258
- */
259
- handleDocumentClick(e) {
260
- if (!this.internalOpen)
261
- return;
262
- const path = e.composedPath();
263
- const isInsideTrigger = path.includes(this.el);
264
- const portalEl = this.portalInstance?.getElement();
265
- const isInsidePanel = portalEl ? path.includes(portalEl) : false;
266
- if (!isInsideTrigger && !isInsidePanel) {
267
- this.setOpen(false);
268
- }
269
- }
270
- /**
271
- * Close panel on Escape key.
272
- * @param e - Keyboard event.
273
- * @returns void
274
- */
275
- handleKeydown(e) {
276
- if (e.key === 'Escape' && this.internalOpen) {
277
- this.setOpen(false);
278
- }
279
- }
280
- // ==================== Public Methods ====================
281
- /**
282
- * Get current color object
283
- * @returns Promise<Color | null>
284
- * @example
285
- * const color = await el.getColor()
286
- */
287
- async getColor() {
288
- return this.internalColor;
289
- }
290
- // ==================== Private Methods ====================
291
- /**
292
- * Update open state and portal.
293
- *
294
- * Flow:
295
- * 1. Checks if disabled; returns if true.
296
- * 2. Updates `internalOpen` state.
297
- * 3. Emits `xOpenChange` event.
298
- * 4. Calls `updatePortal` (if opening) or `destroyPortal` (if closing).
299
- *
300
- * @param open - Open state.
301
- * @returns void
302
- */
303
- setOpen(open) {
304
- if (this.disabled)
305
- return;
306
- this.internalOpen = open;
307
- this.xOpenChange.emit({ open });
308
- if (open) {
309
- this.updatePortal();
310
- }
311
- else {
312
- this.destroyPortal();
313
- }
314
- }
315
- /**
316
- * Handle trigger click.
317
- * @returns void
318
- */
319
- handleTriggerClick = () => {
320
- if (this.trigger === 'click') {
321
- this.setOpen(!this.internalOpen);
322
- }
323
- };
324
- /**
325
- * Handle trigger mouse enter.
326
- * @returns void
327
- */
328
- handleTriggerMouseEnter = () => {
329
- if (this.trigger === 'hover') {
330
- this.setOpen(true);
331
- }
332
- };
333
- /**
334
- * Handle trigger mouse leave.
335
- * @returns void
336
- */
337
- handleTriggerMouseLeave = () => {
338
- if (this.trigger === 'hover' && !this.isDragging) {
339
- const portalEl = this.portalInstance?.getElement();
340
- setTimeout(() => {
341
- if (!portalEl?.matches(':hover') && !this.el.matches(':hover')) {
342
- this.setOpen(false);
343
- }
344
- }, 100);
345
- }
346
- };
347
- /**
348
- * Handle clear action.
349
- * @param e - Event.
350
- * @returns void
351
- */
352
- handleClear = (e) => {
353
- e.stopPropagation();
354
- this.isCleared = true;
355
- this.xClear.emit();
356
- };
357
- // ==================== Portal Management ====================
358
- /**
359
- * Build color picker panel element.
360
- * @returns HTMLElement
361
- */
362
- buildPanelElement() {
363
- // Create x-color-picker-panel component
364
- const panelEl = document.createElement('x-color-picker-panel');
365
- // Set props on the panel element
366
- panelEl.color = this.internalColor;
367
- panelEl.format = this.internalFormat;
368
- panelEl.disabledAlpha = this.disabledAlpha;
369
- panelEl.disabledFormat = this.disabledFormat;
370
- panelEl.presets = this.presets;
371
- panelEl.allowClear = this.allowClear;
372
- // Apply custom class and styles
373
- if (this.classNames?.popup) {
374
- panelEl.classList.add(...this.classNames.popup.split(' '));
375
- }
376
- if (this.styles?.popup) {
377
- Object.assign(panelEl.style, this.styles.popup);
378
- }
379
- // Bind events
380
- panelEl.addEventListener('colorChange', (e) => {
381
- this.handleColorChange(e.detail);
382
- });
383
- panelEl.addEventListener('colorChangeComplete', (e) => {
384
- this.xChangeComplete.emit(e.detail);
385
- this.isDragging = false;
386
- });
387
- panelEl.addEventListener('formatChange', (e) => {
388
- this.internalFormat = e.detail;
389
- this.xFormatChange.emit({ format: e.detail });
390
- });
391
- panelEl.addEventListener('colorClear', () => {
392
- this.isCleared = true;
393
- this.xClear.emit();
394
- this.setOpen(false);
395
- });
396
- // Track dragging state
397
- panelEl.addEventListener('mousedown', () => {
398
- this.isDragging = true;
399
- });
400
- return panelEl;
401
- }
402
- /**
403
- * Get trigger element for portal target.
404
- * @returns HTMLElement
405
- */
406
- getWrapperEl() {
407
- return this.triggerRef;
408
- }
409
- /**
410
- * Create or update portal for panel.
411
- *
412
- * Flow:
413
- * 1. Checks if `internalOpen` is true.
414
- * 2. Builds or reuses the panel element.
415
- * 3. Uses `PortalController` to render the panel:
416
- * - Creates new instance if none exists.
417
- * - Updates existing instance with new content/position.
418
- * 4. Requests animation frame to ensure position update.
419
- *
420
- * @returns void
421
- */
422
- updatePortal() {
423
- if (!this.internalOpen) {
424
- this.destroyPortal();
425
- return;
426
- }
427
- this.panelElement = this.buildPanelElement();
428
- if (!this.portalInstance) {
429
- this.portalInstance = portalController.PortalController.create({
430
- open: true,
431
- target: this.getWrapperEl(),
432
- placement: this.placement,
433
- content: this.panelElement,
434
- zIndex: 1050,
435
- });
436
- }
437
- else {
438
- this.portalInstance.update({
439
- open: true,
440
- target: this.getWrapperEl(),
441
- placement: this.placement,
442
- content: this.panelElement,
443
- });
444
- }
445
- // Update position after render
446
- requestAnimationFrame(() => {
447
- if (this.portalInstance) {
448
- this.portalInstance.update({});
449
- }
450
- });
451
- }
452
- /**
453
- * Destroy portal instance if present.
454
- * @returns void
455
- */
456
- destroyPortal() {
457
- if (this.portalInstance) {
458
- this.portalInstance.destroy();
459
- this.portalInstance = null;
460
- this.panelElement = null;
461
- }
462
- }
463
- /**
464
- * Handle color change from panel.
465
- * @param color - New color.
466
- * @returns void
467
- */
468
- handleColorChange(color) {
469
- this.internalColor = color;
470
- this.isCleared = false;
471
- this.value = color.toHexString();
472
- this.xChange.emit({
473
- color,
474
- css: color.toCssString(),
475
- });
476
- // Update panel element with new color
477
- if (this.panelElement) {
478
- this.panelElement.color = color;
479
- }
480
- }
481
- // ==================== Render ====================
482
- /**
483
- * Get display text for current color.
484
- * @returns string
485
- */
486
- getDisplayText() {
487
- if (!this.internalColor || this.isCleared)
488
- return '';
489
- if (typeof this.showText === 'function') {
490
- return this.showText(this.internalColor);
491
- }
492
- switch (this.internalFormat) {
493
- case 'rgb':
494
- return this.internalColor.toRgbString();
495
- case 'hsb':
496
- return this.internalColor.toHsbString();
497
- default:
498
- return this.internalColor.toHexString().toUpperCase();
499
- }
500
- }
501
- /**
502
- * Render down arrow icon.
503
- * @returns JSX.Element
504
- */
505
- renderDownArrow() {
506
- return (
507
- // <svg viewBox="64 64 896 896" focusable="false" width="1em" height="1em" fill="currentColor">
508
- // <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" />
509
- // </svg>
510
- index.h("x-icon", { name: config.getIcon('arrowDown') }));
511
- }
512
- /**
513
- * Render clear icon.
514
- * @returns JSX.Element
515
- */
516
- renderCloseIcon() {
517
- return (
518
- // <svg viewBox="64 64 896 896" focusable="false" width="1em" height="1em" fill="currentColor">
519
- // <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" />
520
- // </svg>
521
- index.h("x-icon", { name: config.getIcon('clear') }));
522
- }
523
- /**
524
- * Render trigger and optional text.
525
- * @returns JSX.Element
526
- */
527
- render() {
528
- const hostClasses = {
529
- 'x-color-picker': true,
530
- 'x-color-picker-sm': this.size === 'small',
531
- 'x-color-picker-lg': this.size === 'large',
532
- 'x-color-picker-disabled': this.disabled,
533
- [this.classNames?.root ?? '']: !!this.classNames?.root,
534
- };
535
- const colorValue = this.internalColor && !this.isCleared
536
- ? this.internalColor.toCssString()
537
- : 'transparent';
538
- return (index.h(index.Host, { key: 'f8f38365b7fd8c36aac0d9dc1799fc568516fea9', class: hostClasses, style: this.styles?.root }, index.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' }, index.h("slot", { key: '77c612bde00f68546e52eb30351f9e26c724bbd8' }, index.h("div", { key: '19ddcbfc6acea0c985d263abeae54facb1878856', class: {
539
- 'x-color-picker-color-block': true,
540
- 'x-color-picker-color-block-cleared': this.isCleared,
541
- } }, index.h("div", { key: 'd6223ba45365f694a1b760fc0779273903a3e080', class: "x-color-picker-color-block-inner", style: { background: colorValue } })), this.showText && (index.h("span", { key: 'b80debccfafa45df16aeabedfafcc9e0721a3a4d', class: "x-color-picker-text" }, this.getDisplayText())), this.allowClear && !this.isCleared && this.internalColor && (index.h("span", { key: '8caa5439b9ad31915420be95deb94eff604bc411', class: "x-color-picker-clear", onClick: this.handleClear }, this.renderCloseIcon())), index.h("span", { key: 'ed22036212268e812ebfe9869918cd31fcebaaef', class: {
542
- 'x-color-picker-arrow': true,
543
- 'x-color-picker-arrow-open': this.internalOpen,
544
- } }, this.renderDownArrow())))));
545
- }
546
- static get watchers() { return {
547
- "value": [{
548
- "handleValueChange": 0
549
- }],
550
- "format": [{
551
- "handleFormatChange": 0
552
- }],
553
- "open": [{
554
- "handleOpenPropChange": 0
555
- }]
556
- }; }
557
- };
558
- XColorPicker.style = xColorPickerCss();
559
-
560
- 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))}`;
561
-
562
- const XDivider = class {
563
- constructor(hostRef) {
564
- index.registerInstance(this, hostRef);
565
- }
566
- get el() { return index.getElement(this); }
567
- /**
568
- * Tracks whether the divider has text content.
569
- */
570
- hasContent = false;
571
- /**
572
- * Whether line is dashed.
573
- * @example
574
- * <x-divider dashed></x-divider>
575
- */
576
- dashed = false;
577
- /**
578
- * The position of title inside divider.
579
- * @example
580
- * <x-divider orientation="left">Left</x-divider>
581
- */
582
- orientation = 'center';
583
- /**
584
- * Divider text show as plain style.
585
- * @example
586
- * <x-divider plain>Text</x-divider>
587
- */
588
- plain = false;
589
- /**
590
- * The direction type of divider.
591
- * @example
592
- * <x-divider type="vertical"></x-divider>
593
- */
594
- type = 'horizontal';
595
- /**
596
- * The margin-left/right of the title.
597
- * @example
598
- * <x-divider orientation="left" orientationMargin="12px">Text</x-divider>
599
- */
600
- orientationMargin;
601
- /**
602
- * Check for initial slot content.
603
- * @returns void
604
- * @example
605
- * <x-divider>Text</x-divider>
606
- */
607
- componentWillLoad() {
608
- this.checkContent();
609
- }
610
- /**
611
- * Determine if default slot has content.
612
- * @returns void
613
- * @example
614
- * <x-divider>Text</x-divider>
615
- */
616
- checkContent() {
617
- // Initial check, though slotchange is better for dynamic updates
618
- this.hasContent = this.el.innerHTML.trim().length > 0;
619
- }
620
- /**
621
- * Update content state when slot changes.
622
- * @param e - Slot change event.
623
- * @returns void
624
- * @example
625
- * <x-divider>Text</x-divider>
626
- */
627
- handleSlotChange = (e) => {
628
- const slot = e.target;
629
- this.hasContent = slot.assignedNodes({ flatten: true }).length > 0;
630
- };
631
- /**
632
- * Render divider with optional text and orientation styles.
633
- *
634
- * Flow:
635
- * 1. Constructs class map based on type (horizontal/vertical), style (dashed/plain), and content presence.
636
- * 2. Calculates orientation styles (margin-left/right) if needed.
637
- * 3. Renders Host element.
638
- * 4. If horizontal with content:
639
- * - Renders text wrapper span.
640
- * - Projects slot.
641
- * 5. Otherwise (vertical or empty):
642
- * - Projects slot directly.
643
- *
644
- * @returns JSX.Element
645
- * @example
646
- * <x-divider orientation="right">Right</x-divider>
647
- */
648
- render() {
649
- const { dashed, orientation, plain, type, orientationMargin, hasContent } = this;
650
- // Build classes based on type and text presence.
651
- const classes = {
652
- 'x-divider': true,
653
- [`x-divider-${type}`]: true,
654
- [`x-divider-with-text`]: hasContent && type === 'horizontal',
655
- [`x-divider-with-text-${orientation}`]: hasContent && type === 'horizontal',
656
- 'x-divider-dashed': dashed,
657
- 'x-divider-plain': plain,
658
- };
659
- // Apply margin styles when orientation is left/right.
660
- const style = {};
661
- if (orientationMargin && type === 'horizontal' && hasContent) {
662
- // Apply margin for left or right alignment.
663
- if (orientation === 'left') {
664
- style['--x-divider-margin-left'] = orientationMargin;
665
- }
666
- else if (orientation === 'right') {
667
- style['--x-divider-margin-right'] = orientationMargin;
668
- }
669
- }
670
- return (index.h(index.Host, { key: 'c01c2f45c5bd8644531889d9787efb9afaa53e5f', class: classes, style: style }, type === 'horizontal' && hasContent && (index.h("span", { key: 'de69f4795c2069fe4844d087827f33c625759e9a', class: "x-divider-inner-text" }, index.h("slot", { key: 'cb0b0e462a05bd6035579554f5665a4baf52b856', onSlotchange: this.handleSlotChange }))), (!hasContent || type === 'vertical') && index.h("slot", { key: '054ecd7d528d560edffbf86722a1e8084f29890e', onSlotchange: this.handleSlotChange })));
671
- }
672
- };
673
- XDivider.style = xDividerCss();
674
-
675
- /**
676
- * FormControl — Tracks value & validity of an individual form control
677
- * Mirrors Angular's FormControl API 100%
678
- */
679
- class FormControl extends abstractControl.AbstractControl {
680
- constructor(formState = null, validatorsOrOptions, asyncValidators) {
681
- super();
682
- this._initialize(formState, validatorsOrOptions, asyncValidators);
683
- this._updateValueAndValidity({ onlySelf: true, emitEvent: false });
684
- }
685
- get value() {
686
- return this._value;
687
- }
688
- setValue(value, options = {}) {
689
- this._value = value;
690
- if (this._onChange.length && options.emitModelToViewChange !== false) {
691
- this._onChange.forEach(changeFn => changeFn(this._value));
692
- }
693
- this._updateValueAndValidity(options);
694
- if (options.emitEvent !== false) {
695
- this._emitValueChange(this._value);
696
- }
697
- }
698
- patchValue(value, options = {}) {
699
- this.setValue(value, options);
700
- }
701
- reset(formState = null, options = {}) {
702
- this._initialize(formState, this._validators, this._asyncValidators);
703
- this.markAsPristine(options);
704
- this.markAsUntouched(options);
705
- this._updateValueAndValidity(options);
706
- if (options.emitEvent !== false) {
707
- this._emitValueChange(this._value);
708
- }
709
- }
710
- // ─── Internal ────────────────────────────────────────────────
711
- _initialize(formState, validatorsOrOptions, asyncValidators) {
712
- if (this._isFormControlOptions(validatorsOrOptions)) {
713
- this._applyValidators(validatorsOrOptions);
714
- this._updateOn = validatorsOrOptions.updateOn || 'change';
715
- }
716
- else {
717
- this._applyValidators(validatorsOrOptions, asyncValidators);
718
- }
719
- if (formState !== null && typeof formState === 'object' && 'value' in formState) {
720
- const state = formState;
721
- this._value = state.value;
722
- if (state.disabled) {
723
- this.disable({ onlySelf: true, emitEvent: false });
724
- }
725
- }
726
- else {
727
- this._value = formState;
728
- }
729
- }
730
- _isFormControlOptions(obj) {
731
- return !!obj && typeof obj === 'object' && !Array.isArray(obj) && ('validators' in obj || 'asyncValidators' in obj || 'updateOn' in obj);
732
- }
733
- _runValidation() {
734
- if (this._status === 'DISABLED')
735
- return;
736
- this._errors = this._runValidators(this._value);
737
- this._status = this._calculateStatus();
738
- if (this._status === 'VALID' && this._asyncValidators.length > 0) {
739
- this._runAsyncValidators(this._value);
740
- }
741
- }
742
- }
743
-
744
- 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)}}`;
745
-
746
- const XFormItem = class {
747
- constructor(hostRef) {
748
- index.registerInstance(this, hostRef);
749
- }
750
- get el() { return index.getElement(this); }
751
- /**
752
- * Label text
753
- * @example
754
- * <x-form-item label="Email"></x-form-item>
755
- */
756
- label;
757
- /**
758
- * The validation status. If not provided, it will be automatically inferred from the form control.
759
- * @example
760
- * <x-form-item validateStatus="error"></x-form-item>
761
- */
762
- validateStatus;
763
- /**
764
- * The help message. If not provided, it will be automatically inferred from the form control errors.
765
- * @example
766
- * <x-form-item help="Required"></x-form-item>
767
- */
768
- help;
769
- /**
770
- * Whether to show the required mark. If not provided, it will be automatically inferred from the form control validators.
771
- * @example
772
- * <x-form-item required label="Name"></x-form-item>
773
- */
774
- required = false;
775
- /**
776
- * Whether to show the colon after label
777
- * @example
778
- * <x-form-item colon={false} label="Name"></x-form-item>
779
- */
780
- colon = true;
781
- /**
782
- * Whether to show the feedback icon
783
- * @example
784
- * <x-form-item hasFeedback validateStatus="success"></x-form-item>
785
- */
786
- hasFeedback = false;
787
- /**
788
- * Label column layout (e.g. span)
789
- * @example
790
- * <x-form-item labelCol="span: 6"></x-form-item>
791
- */
792
- labelCol;
793
- /**
794
- * Wrapper column layout
795
- * @example
796
- * <x-form-item wrapperCol="span: 18"></x-form-item>
797
- */
798
- wrapperCol;
799
- /**
800
- * Label alignment in horizontal layout
801
- */
802
- labelAlign;
803
- /**
804
- * Form layout (overrides parent x-form layout)
805
- */
806
- layout;
807
- /**
808
- * Field name for form binding
809
- */
810
- name;
811
- /**
812
- * Props of children node, for example checkbox should be 'checked'
813
- */
814
- valuePropName = 'value';
815
- /**
816
- * Extra prompt message
817
- */
818
- extra;
819
- control;
820
- status;
821
- errorMessage;
822
- parentLayout;
823
- parentColon;
824
- parentHideRequiredMark;
825
- parentLabelAlign;
826
- formEl = null;
827
- unsubscribe = null;
828
- observer = null;
829
- nameChanged() {
830
- this.connectControl();
831
- }
832
- componentWillLoad() {
833
- this.formEl = this.el.closest('x-form');
834
- if (this.formEl) {
835
- this.syncParentProps();
836
- this.setupObserver();
837
- }
838
- this.connectControl();
839
- }
840
- syncParentProps() {
841
- if (this.formEl) {
842
- this.parentLayout = this.formEl.getAttribute('layout') || this.formEl.layout || 'horizontal';
843
- this.parentColon = this.formEl.getAttribute('colon') !== 'false' && this.formEl.colon !== false;
844
- this.parentHideRequiredMark = this.formEl.getAttribute('hide-required-mark') === 'true' || this.formEl.hideRequiredMark === true;
845
- this.parentLabelAlign = this.formEl.labelAlign || 'right';
846
- }
847
- }
848
- setupObserver() {
849
- if (this.formEl && !this.observer) {
850
- this.observer = new MutationObserver((mutations) => {
851
- mutations.forEach((mutation) => {
852
- if (mutation.type === 'attributes' && (mutation.attributeName === 'layout' ||
853
- mutation.attributeName === 'colon' ||
854
- mutation.attributeName === 'hide-required-mark')) {
855
- this.syncParentProps();
856
- }
857
- });
858
- });
859
- this.observer.observe(this.formEl, { attributes: true });
860
- }
861
- }
862
- disconnectedCallback() {
863
- if (this.unsubscribe) {
864
- this.unsubscribe();
865
- }
866
- if (this.observer) {
867
- this.observer.disconnect();
868
- }
869
- }
870
- connectControl() {
871
- if (this.unsubscribe) {
872
- this.unsubscribe();
873
- }
874
- if (this.formEl && this.formEl.form && this.name) {
875
- let control = this.formEl.form.get(this.name);
876
- if (!control) {
877
- // Self-registration: create a control if it doesn't exist
878
- const initialValue = this.formEl.initialValues?.[this.name];
879
- control = new FormControl(initialValue);
880
- this.formEl.form.addControl(this.name, control);
881
- }
882
- if (control) {
883
- this.control = control;
884
- this.syncState(control);
885
- this.unsubscribe = control.stateChanges(() => {
886
- this.syncState(control);
887
- });
888
- // Update child component value
889
- this.updateChildValue(control.value);
890
- }
891
- }
892
- }
893
- syncState(control) {
894
- if (control.touched || control.dirty) {
895
- this.validateStatus = control.invalid ? 'error' : (control.pending ? 'validating' : 'success');
896
- if (control.errors && !this.help) {
897
- this.errorMessage = Object.values(control.errors)[0];
898
- }
899
- else {
900
- this.errorMessage = '';
901
- }
902
- }
903
- const internalControl = control;
904
- const validators = (internalControl._validators || internalControl.validators || []);
905
- const isRequired = Array.isArray(validators) && validators.some((v) => v.name === 'required' ||
906
- (v.toString && v.toString().includes('required')) ||
907
- (v.validator && v.validator.name === 'required'));
908
- if (isRequired && !this.required) {
909
- this.required = true;
910
- }
911
- }
912
- updateChildValue(value) {
913
- const input = this.el.querySelector('x-input, x-input-number, x-select, x-checkbox, x-switch');
914
- if (input && input[this.valuePropName] !== value) {
915
- input[this.valuePropName] = value;
916
- }
917
- }
918
- handleControlChange = (ev) => {
919
- if (this.control && this.name) {
920
- const detail = ev.detail;
921
- const value = detail?.[this.valuePropName] !== undefined
922
- ? detail[this.valuePropName]
923
- : (detail?.value !== undefined ? detail.value : ev.target[this.valuePropName]);
924
- this.control.setValue(value);
925
- this.control.markAsDirty();
926
- }
927
- };
928
- handleControlBlur = () => {
929
- if (this.control) {
930
- this.control.markAsTouched();
931
- }
932
- };
933
- componentDidLoad() {
934
- // Listen to changes from child inputs
935
- this.el.addEventListener('xChange', this.handleControlChange);
936
- this.el.addEventListener('xBlur', this.handleControlBlur);
937
- }
938
- render() {
939
- const displayHelp = this.help || this.errorMessage;
940
- const layout = this.layout || this.parentLayout || 'horizontal';
941
- const isHorizontal = layout === 'horizontal';
942
- const isVertical = layout === 'vertical';
943
- const isInline = layout === 'inline';
944
- const showColon = this.el.hasAttribute('colon') ? this.colon : this.parentColon;
945
- const hideMark = this.parentHideRequiredMark;
946
- return (index.h(index.Host, { key: '9e53e5534b7091f5041150f831adec589cffa581', class: {
947
- 'x-form-item': true,
948
- 'x-form-item-with-help': !!displayHelp,
949
- 'x-form-item-has-error': this.validateStatus === 'error',
950
- 'x-form-item-has-warning': this.validateStatus === 'warning',
951
- 'x-form-item-has-success': this.validateStatus === 'success',
952
- 'x-form-item-validating': this.validateStatus === 'validating',
953
- 'x-form-item-has-feedback': this.hasFeedback,
954
- 'x-form-item-horizontal': isHorizontal,
955
- 'x-form-item-vertical': isVertical,
956
- 'x-form-item-inline': isInline,
957
- } }, index.h("div", { key: 'c5dd09be09f559f986fb4d36c70f5c391622b107', class: "x-form-item-row" }, this.label && (index.h("div", { key: 'f77d9c4d9b5241a540546b9d674178f375e92c6d', class: {
958
- 'x-form-item-label': true,
959
- ...(typeof this.labelCol === 'string' ? { [this.labelCol]: true } : {}),
960
- [`x-form-item-label-${this.labelAlign || this.parentLabelAlign || 'right'}`]: true
961
- }, style: typeof this.labelCol === 'object' && this.labelCol?.span ? {
962
- flex: `0 0 ${(this.labelCol.span / 24) * 100}%`,
963
- maxWidth: `${(this.labelCol.span / 24) * 100}%`
964
- } : {} }, index.h("label", { key: 'e4464d27147d1cee39619ad37cb7c5a6f9cb3139', class: {
965
- 'x-form-item-required': this.required && !hideMark,
966
- 'x-form-item-no-colon': !showColon
967
- }, title: this.label }, this.label))), index.h("div", { key: '508207d8171598a5d2122eddc91ab9ddbedb8494', class: {
968
- 'x-form-item-control': true,
969
- ...(typeof this.wrapperCol === 'string' ? { [this.wrapperCol]: true } : {})
970
- }, style: typeof this.wrapperCol === 'object' && this.wrapperCol?.span ? {
971
- flex: `0 0 ${(this.wrapperCol.span / 24) * 100}%`,
972
- maxWidth: `${(this.wrapperCol.span / 24) * 100}%`
973
- } : {} }, index.h("div", { key: 'b47d5161aaf6f42cd47781118b11094c599e240b', class: "x-form-item-control-input" }, index.h("div", { key: '3437bb735c66cafb7c463f7be885f19470fdf137', class: "x-form-item-control-input-content" }, index.h("slot", { key: '7f8b3ce874b4281e3a3f9eec36fe1f2a7a772a44' })), this.hasFeedback && this.validateStatus && (index.h("span", { key: '4e032dde91980865acc598ecb093d293f1188fa7', class: "x-form-item-children-icon" }, this.validateStatus === 'success' && (index.h("span", { key: 'b7af17e662a03db206209e6ac5fbb8e43630d2d5', role: "img", "aria-label": "check-circle", class: "anticon anticon-check-circle" }, index.h("svg", { key: '14772b5dbf639304b9fc6dc3fc64355a45ca880d', viewBox: "64 64 896 896", focusable: "false", "data-icon": "check-circle", width: "1em", height: "1em", fill: "currentColor", "aria-hidden": "true" }, index.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' && (index.h("span", { key: 'a26ddb33d965813b3b07c20579f96ea37a5ea5b7', role: "img", "aria-label": "close-circle", class: "anticon anticon-close-circle" }, index.h("svg", { key: 'c5a5ecb10bcbbb892a339747122e8245f0f19543', viewBox: "64 64 896 896", focusable: "false", "data-icon": "close-circle", width: "1em", height: "1em", fill: "currentColor", "aria-hidden": "true" }, index.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' && (index.h("span", { key: '7ebd6dd058a5c99ac84a9d2941d89638b2b1e52a', role: "img", "aria-label": "exclamation-circle", class: "anticon anticon-exclamation-circle" }, index.h("svg", { key: 'b3e076d376e5b977fa8a7a3aeed8e827d393e340', viewBox: "64 64 896 896", focusable: "false", "data-icon": "exclamation-circle", width: "1em", height: "1em", fill: "currentColor", "aria-hidden": "true" }, index.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' && (index.h("span", { key: 'c6f937df1576cf819f82b781a51b4251327e58d0', role: "img", "aria-label": "loading", class: "anticon anticon-loading" }, index.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" }, index.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 && (index.h("div", { key: 'c0fee0d5924b829c6e83fdde04e6f6b8083763c6', class: "x-form-item-explain" }, index.h("div", { key: '95dfa6a1a8d9643934e09c13ec7266fd8e824df4', role: "alert" }, displayHelp))), this.extra && (index.h("div", { key: 'b71cc65d15e1eae8ce0a904d0db956c0f549dcce', class: "x-form-item-extra" }, this.extra))))));
974
- }
975
- static get watchers() { return {
976
- "name": [{
977
- "nameChanged": 0
978
- }]
979
- }; }
980
- };
981
- XFormItem.style = xFormItemCss();
982
-
983
- /**
984
- * X-Input-Number Types - Following Ant Design Specification
985
- */
986
- /**
987
- * Helper to validate if value is within range
988
- */
989
- /**
990
- * Helper to clamp value within range
991
- */
992
- function clampValue(value, min, max, precision) {
993
- if (value === null || value === undefined || value === '') {
994
- return value;
995
- }
996
- let numValue = typeof value === 'string' ? parseFloat(value) : value;
997
- if (isNaN(numValue)) {
998
- return null;
999
- }
1000
- // Clamp to range
1001
- numValue = Math.min(Math.max(numValue, min), max);
1002
- // Apply precision
1003
- if (precision !== undefined && precision >= 0) {
1004
- numValue = parseFloat(numValue.toFixed(precision));
1005
- }
1006
- return numValue;
1007
- }
1008
- /**
1009
- * Helper to format number with precision
1010
- */
1011
- function formatWithPrecision(value, precision) {
1012
- if (value === null || value === undefined || value === '') {
1013
- return '';
1014
- }
1015
- const numValue = typeof value === 'string' ? parseFloat(value) : value;
1016
- if (isNaN(numValue)) {
1017
- return '';
1018
- }
1019
- if (precision !== undefined && precision >= 0) {
1020
- return numValue.toFixed(precision);
1021
- }
1022
- return String(numValue);
1023
- }
1024
- /**
1025
- * Helper to add step with precision handling
1026
- */
1027
- function addStep(value, step, direction, precision) {
1028
- let numValue = 0;
1029
- if (value !== null && value !== undefined && value !== '') {
1030
- numValue = typeof value === 'string' ? parseFloat(value) : value;
1031
- if (isNaN(numValue)) {
1032
- numValue = 0;
1033
- }
1034
- }
1035
- const offset = direction === 'up' ? step : -step;
1036
- let nextValue = numValue + offset;
1037
- // Handle floating point precision issues
1038
- if (precision !== undefined && precision >= 0) {
1039
- nextValue = parseFloat(nextValue.toFixed(precision));
1040
- }
1041
- else {
1042
- // Auto-detect precision from step
1043
- const stepStr = String(step);
1044
- const decimalIndex = stepStr.indexOf('.');
1045
- if (decimalIndex !== -1) {
1046
- const stepPrecision = stepStr.length - decimalIndex - 1;
1047
- nextValue = parseFloat(nextValue.toFixed(stepPrecision));
1048
- }
1049
- }
1050
- return nextValue;
1051
- }
1052
-
1053
- 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}`;
1054
-
1055
- const XInputNumber = class {
1056
- constructor(hostRef) {
1057
- index.registerInstance(this, hostRef);
1058
- this.xChange = index.createEvent(this, "xChange", 7);
1059
- this.xPressEnter = index.createEvent(this, "xPressEnter", 7);
1060
- this.xStep = index.createEvent(this, "xStep", 7);
1061
- this.xFocus = index.createEvent(this, "xFocus", 7);
1062
- this.xBlur = index.createEvent(this, "xBlur", 7);
1063
- }
1064
- get el() { return index.getElement(this); }
1065
- // ==================== Props ====================
1066
- /**
1067
- * The label text displayed after (on the right side of) the input field
1068
- * @example
1069
- * <x-input-number addonAfter="USD"></x-input-number>
1070
- */
1071
- addonAfter;
1072
- /**
1073
- * The label text displayed before (on the left side of) the input field
1074
- * @example
1075
- * <x-input-number addonBefore="$"></x-input-number>
1076
- */
1077
- addonBefore;
1078
- /**
1079
- * Whether to get focus when component mounted
1080
- * @default false
1081
- * @example
1082
- * <x-input-number autoFocus></x-input-number>
1083
- */
1084
- autoFocus = false;
1085
- /**
1086
- * Whether to show +/- controls
1087
- * @default true
1088
- * @example
1089
- * <x-input-number controls={false}></x-input-number>
1090
- */
1091
- controls = true;
1092
- /**
1093
- * Custom decimal separator
1094
- * @example
1095
- * <x-input-number decimalSeparator=","></x-input-number>
1096
- */
1097
- decimalSeparator;
1098
- /**
1099
- * Default value
1100
- * @example
1101
- * <x-input-number defaultValue={3}></x-input-number>
1102
- */
1103
- defaultValue;
1104
- /**
1105
- * Whether the input is disabled
1106
- * @default false
1107
- * @example
1108
- * <x-input-number disabled></x-input-number>
1109
- */
1110
- disabled = false;
1111
- /**
1112
- * Specifies the format of the value presented
1113
- * @example
1114
- * <x-input-number formatter={(v) => `$${v}`}></x-input-number>
1115
- */
1116
- formatter;
1117
- /**
1118
- * Whether to enable keyboard behavior
1119
- * @default true
1120
- * @example
1121
- * <x-input-number keyboard={false}></x-input-number>
1122
- */
1123
- keyboard = true;
1124
- /**
1125
- * The max value
1126
- * @default Number.MAX_SAFE_INTEGER
1127
- * @example
1128
- * <x-input-number max={100}></x-input-number>
1129
- */
1130
- max = Number.MAX_SAFE_INTEGER;
1131
- /**
1132
- * The min value
1133
- * @default Number.MIN_SAFE_INTEGER
1134
- * @example
1135
- * <x-input-number min={0}></x-input-number>
1136
- */
1137
- min = Number.MIN_SAFE_INTEGER;
1138
- /**
1139
- * Specifies the value extracted from formatter
1140
- * @example
1141
- * <x-input-number parser={(v) => v.replace(/[^\d.]/g, '')}></x-input-number>
1142
- */
1143
- parser;
1144
- /**
1145
- * Placeholder text
1146
- * @example
1147
- * <x-input-number placeholder="Amount"></x-input-number>
1148
- */
1149
- placeholder;
1150
- /**
1151
- * The precision of input value
1152
- * @example
1153
- * <x-input-number precision={2}></x-input-number>
1154
- */
1155
- precision;
1156
- /**
1157
- * The prefix icon/text for the Input
1158
- * @example
1159
- * <x-input-number prefixIcon="calculate"></x-input-number>
1160
- */
1161
- prefixIcon;
1162
- /**
1163
- * Whether the input is read only
1164
- * @default false
1165
- * @example
1166
- * <x-input-number readOnly></x-input-number>
1167
- */
1168
- readOnly = false;
1169
- /**
1170
- * The size of the input box
1171
- * @default 'middle'
1172
- * @example
1173
- * <x-input-number size="small"></x-input-number>
1174
- */
1175
- size = 'middle';
1176
- /**
1177
- * Set validation status
1178
- * @example
1179
- * <x-input-number status="error"></x-input-number>
1180
- */
1181
- status;
1182
- /**
1183
- * The number to which the current value is increased or decreased
1184
- * @default 1
1185
- * @example
1186
- * <x-input-number step={0.5}></x-input-number>
1187
- */
1188
- step = 1;
1189
- /**
1190
- * Set value as string to support high precision decimals
1191
- * @default false
1192
- * @example
1193
- * <x-input-number stringMode></x-input-number>
1194
- */
1195
- stringMode = false;
1196
- /**
1197
- * The suffix icon/text for the Input
1198
- * @example
1199
- * <x-input-number suffix="kg"></x-input-number>
1200
- */
1201
- suffix;
1202
- /**
1203
- * Current value
1204
- * @example
1205
- * <x-input-number value={10}></x-input-number>
1206
- */
1207
- value;
1208
- /**
1209
- * Variants of Input
1210
- * @default 'outlined'
1211
- * @example
1212
- * <x-input-number variant="filled"></x-input-number>
1213
- */
1214
- variant = 'outlined';
1215
- /**
1216
- * Enable wheel to change value
1217
- * @default false
1218
- * @example
1219
- * <x-input-number changeOnWheel></x-input-number>
1220
- */
1221
- changeOnWheel = false;
1222
- /**
1223
- * Custom class names
1224
- * @example
1225
- * <x-input-number classNames={{ root: 'my-input-number' }}></x-input-number>
1226
- */
1227
- classNames;
1228
- /**
1229
- * Custom styles
1230
- * @example
1231
- * <x-input-number styles={{ root: { width: '200px' } }}></x-input-number>
1232
- */
1233
- styles;
1234
- // ==================== Events ====================
1235
- /**
1236
- * Emitted when value is changed
1237
- * @example
1238
- * <x-input-number onXChange={(ev) => console.log(ev.detail)}></x-input-number>
1239
- */
1240
- xChange;
1241
- /**
1242
- * Emitted when the user presses Enter
1243
- * @example
1244
- * <x-input-number onXPressEnter={(ev) => console.log(ev.key)}></x-input-number>
1245
- */
1246
- xPressEnter;
1247
- /**
1248
- * Emitted when step button is clicked
1249
- * @example
1250
- * <x-input-number onXStep={(ev) => console.log(ev.detail)}></x-input-number>
1251
- */
1252
- xStep;
1253
- /**
1254
- * Emitted when input gets focus
1255
- * @example
1256
- * <x-input-number onXFocus={(ev) => console.log(ev)}></x-input-number>
1257
- */
1258
- xFocus;
1259
- /**
1260
- * Emitted when input loses focus
1261
- * @example
1262
- * <x-input-number onXBlur={(ev) => console.log(ev)}></x-input-number>
1263
- */
1264
- xBlur;
1265
- // ==================== State ====================
1266
- /**
1267
- * Focus state.
1268
- */
1269
- focused = false;
1270
- /**
1271
- * Display value in input.
1272
- */
1273
- inputValue = '';
1274
- /**
1275
- * Typing state to avoid clamping mid-typing.
1276
- */
1277
- isTyping = false;
1278
- // ==================== Private Properties ====================
1279
- /**
1280
- * Input element reference.
1281
- */
1282
- inputRef;
1283
- /**
1284
- * Timer for long-press stepping.
1285
- */
1286
- holdTimer;
1287
- // ==================== Lifecycle ====================
1288
- /**
1289
- * Initialize value before render.
1290
- * @returns void
1291
- */
1292
- componentWillLoad() {
1293
- // Initialize value
1294
- if (this.value === undefined && this.defaultValue !== undefined) {
1295
- this.value = this.defaultValue;
1296
- }
1297
- this.updateInputValue();
1298
- }
1299
- /**
1300
- * Auto focus on mount when enabled.
1301
- * @returns void
1302
- */
1303
- componentDidLoad() {
1304
- if (this.autoFocus && this.inputRef) {
1305
- this.inputRef.focus();
1306
- }
1307
- }
1308
- /**
1309
- * Cleanup timers on disconnect.
1310
- * @returns void
1311
- */
1312
- disconnectedCallback() {
1313
- if (this.holdTimer) {
1314
- clearInterval(this.holdTimer);
1315
- }
1316
- }
1317
- // ==================== Watchers ====================
1318
- /**
1319
- * Sync input display when value changes.
1320
- * @returns void
1321
- */
1322
- handleValueChange() {
1323
- if (!this.isTyping) {
1324
- this.updateInputValue();
1325
- }
1326
- }
1327
- // ==================== Public Methods ====================
1328
- /**
1329
- * Focus the input element
1330
- * @returns Promise<void>
1331
- * @example
1332
- * await el.setFocus()
1333
- */
1334
- async setFocus() {
1335
- this.inputRef?.focus();
1336
- }
1337
- /**
1338
- * Remove focus from the input element
1339
- * @returns Promise<void>
1340
- * @example
1341
- * await el.setBlur()
1342
- */
1343
- async setBlur() {
1344
- this.inputRef?.blur();
1345
- }
1346
- // ==================== Private Methods ====================
1347
- /**
1348
- * Update formatted input display value.
1349
- *
1350
- * Flow:
1351
- * 1. Checks if `value` is valid.
1352
- * 2. Formats value using `formatter` prop or default `formatWithPrecision`.
1353
- * 3. Replaces decimal separator if custom one is provided.
1354
- * 4. Updates `inputValue` state (which is displayed in the input).
1355
- *
1356
- * @returns void
1357
- */
1358
- updateInputValue() {
1359
- let displayValue = '';
1360
- if (this.value !== null && this.value !== undefined && this.value !== '') {
1361
- if (this.formatter) {
1362
- displayValue = this.formatter(this.value, {
1363
- userTyping: this.isTyping,
1364
- input: this.inputValue,
1365
- });
1366
- }
1367
- else {
1368
- displayValue = formatWithPrecision(this.value, this.precision);
1369
- }
1370
- // Apply custom decimal separator
1371
- if (this.decimalSeparator && this.decimalSeparator !== '.') {
1372
- displayValue = displayValue.replace('.', this.decimalSeparator);
1373
- }
1374
- }
1375
- this.inputValue = displayValue;
1376
- }
1377
- /**
1378
- * Parse input string into numeric value.
1379
- *
1380
- * Flow:
1381
- * 1. Handles empty or invalid inputs.
1382
- * 2. Applies `parser` prop if provided.
1383
- * 3. Normalizes custom decimal separator to dot.
1384
- * 4. Removes non-numeric characters.
1385
- * 5. Parses string to float.
1386
- *
1387
- * @param input - Input string.
1388
- * @returns InputNumberValue
1389
- */
1390
- parseValue(input) {
1391
- if (!input || input === '' || input === '-') {
1392
- return null;
1393
- }
1394
- let value = input;
1395
- // Apply parser if provided
1396
- if (this.parser) {
1397
- return this.parser(value);
1398
- }
1399
- // Replace custom decimal separator
1400
- if (this.decimalSeparator && this.decimalSeparator !== '.') {
1401
- value = value.replace(new RegExp(`\\${this.decimalSeparator}`, 'g'), '.');
1402
- }
1403
- // Remove non-numeric characters
1404
- value = value.replace(/[^\d.-]/g, '');
1405
- const numValue = parseFloat(value);
1406
- return isNaN(numValue) ? null : numValue;
1407
- }
1408
- /**
1409
- * Handle input change and emit events.
1410
- *
1411
- * Flow:
1412
- * 1. Updates `inputValue` state from target.
1413
- * 2. Sets `isTyping` flag to true (prevents auto-formatting while typing).
1414
- * 3. Parses value.
1415
- * 4. Updates `value` state (without clamping, to allow intermediate invalid states while typing).
1416
- * 5. Emits `xChange` event.
1417
- *
1418
- * @param e - Input event.
1419
- * @returns void
1420
- */
1421
- handleInput = (e) => {
1422
- const target = e.target;
1423
- this.inputValue = target.value;
1424
- this.isTyping = true;
1425
- const parsedValue = this.parseValue(target.value);
1426
- if (parsedValue !== null) {
1427
- // Don't clamp while typing, just update value
1428
- this.value = this.stringMode ? String(parsedValue) : parsedValue;
1429
- this.xChange.emit({ value: this.value });
1430
- }
1431
- };
1432
- /**
1433
- * Handle input focus.
1434
- * @param e - Focus event.
1435
- * @returns void
1436
- */
1437
- handleFocus = (e) => {
1438
- this.focused = true;
1439
- this.xFocus.emit(e);
1440
- };
1441
- /**
1442
- * Handle input blur and clamp value.
1443
- * @param e - Focus event.
1444
- * @returns void
1445
- */
1446
- handleBlur = (e) => {
1447
- this.focused = false;
1448
- this.isTyping = false;
1449
- // Validate and clamp value on blur
1450
- let finalValue = this.value;
1451
- if (finalValue !== null && finalValue !== undefined && finalValue !== '') {
1452
- finalValue = clampValue(finalValue, this.min, this.max, this.precision);
1453
- }
1454
- if (finalValue !== this.value) {
1455
- this.value = finalValue;
1456
- this.xChange.emit({ value: this.value });
1457
- }
1458
- this.updateInputValue();
1459
- this.xBlur.emit(e);
1460
- };
1461
- /**
1462
- * Handle keyboard input and stepping.
1463
- * @param e - Keyboard event.
1464
- * @returns void
1465
- */
1466
- handleKeyDown = (e) => {
1467
- if (e.key === 'Enter') {
1468
- this.xPressEnter.emit(e);
1469
- this.handleBlur(e);
1470
- }
1471
- else if (this.keyboard) {
1472
- if (e.key === 'ArrowUp') {
1473
- e.preventDefault();
1474
- this.handleStep('up');
1475
- }
1476
- else if (e.key === 'ArrowDown') {
1477
- e.preventDefault();
1478
- this.handleStep('down');
1479
- }
1480
- }
1481
- };
1482
- /**
1483
- * Handle mouse wheel for stepping.
1484
- * @param e - Wheel event.
1485
- * @returns void
1486
- */
1487
- handleWheel = (e) => {
1488
- if (!this.changeOnWheel || !this.focused || this.disabled || this.readOnly) {
1489
- return;
1490
- }
1491
- e.preventDefault();
1492
- if (e.deltaY < 0) {
1493
- this.handleStep('up');
1494
- }
1495
- else if (e.deltaY > 0) {
1496
- this.handleStep('down');
1497
- }
1498
- };
1499
- /**
1500
- * Handle step change.
1501
- *
1502
- * Flow:
1503
- * 1. Checks if disabled or readonly.
1504
- * 2. Calculates next value using `addStep`.
1505
- * 3. Clamps result within bounds.
1506
- * 4. Updates `value` and `inputValue`.
1507
- * 5. Emits `xChange` and `xStep` events.
1508
- *
1509
- * @param type - Step direction.
1510
- * @returns void
1511
- */
1512
- handleStep = (type) => {
1513
- if (this.disabled || this.readOnly)
1514
- return;
1515
- const nextValue = addStep(this.value, this.step, type, this.precision);
1516
- const clampedValue = clampValue(nextValue, this.min, this.max, this.precision);
1517
- if (clampedValue !== null) {
1518
- this.value = this.stringMode ? String(clampedValue) : clampedValue;
1519
- this.isTyping = false;
1520
- this.updateInputValue();
1521
- this.xChange.emit({ value: this.value });
1522
- this.xStep.emit({
1523
- value: this.value,
1524
- offset: type === 'up' ? this.step : -this.step,
1525
- type,
1526
- });
1527
- }
1528
- };
1529
- /**
1530
- * Handle step button press and start repeat.
1531
- * @param type - Step direction.
1532
- * @param e - Mouse event.
1533
- * @returns void
1534
- */
1535
- handleStepMouseDown = (type, e) => {
1536
- e.preventDefault();
1537
- this.handleStep(type);
1538
- // Long press handling
1539
- let delay = 600;
1540
- const repeatStep = () => {
1541
- this.handleStep(type);
1542
- delay = Math.max(50, delay * 0.9);
1543
- this.holdTimer = window.setTimeout(repeatStep, delay);
1544
- };
1545
- this.holdTimer = window.setTimeout(repeatStep, delay);
1546
- };
1547
- /**
1548
- * Stop long-press stepping.
1549
- * @returns void
1550
- */
1551
- handleStepMouseUp = () => {
1552
- if (this.holdTimer) {
1553
- clearTimeout(this.holdTimer);
1554
- this.holdTimer = undefined;
1555
- }
1556
- };
1557
- /**
1558
- * Check if step-up is disabled.
1559
- * @returns boolean
1560
- */
1561
- isUpDisabled() {
1562
- if (this.disabled || this.readOnly)
1563
- return true;
1564
- const numValue = typeof this.value === 'string' ? parseFloat(this.value) : this.value;
1565
- return numValue !== null && numValue !== undefined && !isNaN(numValue) && numValue >= this.max;
1566
- }
1567
- /**
1568
- * Check if step-down is disabled.
1569
- * @returns boolean
1570
- */
1571
- isDownDisabled() {
1572
- if (this.disabled || this.readOnly)
1573
- return true;
1574
- const numValue = typeof this.value === 'string' ? parseFloat(this.value) : this.value;
1575
- return numValue !== null && numValue !== undefined && !isNaN(numValue) && numValue <= this.min;
1576
- }
1577
- /**
1578
- * Check if current value is out of range.
1579
- * @returns boolean
1580
- */
1581
- isOutOfRange() {
1582
- if (this.value === null || this.value === undefined || this.value === '') {
1583
- return false;
1584
- }
1585
- const numValue = typeof this.value === 'string' ? parseFloat(this.value) : this.value;
1586
- if (isNaN(numValue))
1587
- return false;
1588
- return numValue < this.min || numValue > this.max;
1589
- }
1590
- // ==================== Render ====================
1591
- /**
1592
- * Render up icon.
1593
- * @returns JSX.Element
1594
- */
1595
- renderUpIcon() {
1596
- return (
1597
- // <svg viewBox="64 64 896 896" focusable="false" width="1em" height="1em" fill="currentColor">
1598
- // <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" />
1599
- // </svg>
1600
- index.h("x-icon", { name: config.getIcon('arrowUp') }));
1601
- }
1602
- /**
1603
- * Render down icon.
1604
- * @returns JSX.Element
1605
- */
1606
- renderDownIcon() {
1607
- return (
1608
- // <svg viewBox="64 64 896 896" focusable="false" width="1em" height="1em" fill="currentColor">
1609
- // <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" />
1610
- // </svg>
1611
- index.h("x-icon", { name: config.getIcon('arrowDown') }));
1612
- }
1613
- /**
1614
- * Render input number with controls.
1615
- * @returns JSX.Element
1616
- * @example
1617
- * <x-input-number min={0} max={10} step={1}></x-input-number>
1618
- */
1619
- render() {
1620
- const hasAddon = !!this.addonBefore || !!this.addonAfter;
1621
- const hasAffix = !!this.prefixIcon || !!this.suffix;
1622
- const wrapperClasses = {
1623
- 'x-input-number-wrapper': true,
1624
- 'x-input-number-focused': this.focused,
1625
- 'x-input-number-disabled': this.disabled,
1626
- 'x-input-number-readonly': this.readOnly,
1627
- 'disabled': this.disabled,
1628
- 'readonly': this.readOnly,
1629
- 'x-input-number-out-of-range': this.isOutOfRange(),
1630
- 'x-input-number-status-error': this.status === 'error',
1631
- 'x-input-number-status-warning': this.status === 'warning',
1632
- [`x-input-number-${this.size}`]: true,
1633
- [`x-input-number-${this.variant}`]: true,
1634
- 'x-input-number-has-addon': hasAddon,
1635
- 'x-input-number-has-affix': hasAffix,
1636
- [this.classNames?.root ?? '']: !!this.classNames?.root,
1637
- };
1638
- return (index.h(index.Host, { key: '121ff396550785581268cf58bbba452398aa194e', class: {
1639
- 'x-input-number': true,
1640
- [`x-input-number-${this.size}`]: true,
1641
- } }, this.addonBefore && (index.h("span", { key: '65f9ebae015943f7748f625888a9257d3424d7de', class: "x-input-number-group-addon x-input-number-group-addon-before" }, index.h("slot", { key: 'eeaa2f4a4c22a04597109330901320ce5ca4d17a', name: "addonBefore" }, this.addonBefore))), index.h("div", { key: '4f13fea7319c6ea1520860a3eb62e758ed5f7e86', class: wrapperClasses, style: this.styles?.root }, this.prefixIcon && (index.h("span", { key: '5aef84bfd3445b9eba412a03c5bf3d6f4839849d', class: { 'x-input-number-prefix': true, [this.classNames?.prefix ?? '']: !!this.classNames?.prefix } }, index.h("slot", { key: 'e4d077e06a16fd89ea7e4d98767840b408123669', name: "prefix" }, this.prefixIcon))), index.h("div", { key: '95e44d6fb300e9a94c5bcbb64602523ee87bf26d', class: "x-input-number-input-wrap" }, index.h("input", { key: '9c416504c66b8ac7faa07dc2f83eca2867bb8d42', ref: (el) => (this.inputRef = el), class: {
1642
- 'x-input-number-input': true,
1643
- [this.classNames?.input ?? '']: !!this.classNames?.input,
1644
- }, 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 && (index.h("span", { key: 'f5d9448d1dd2f00cc7c874230e7aa44ee08d9116', class: { 'x-input-number-suffix': true, [this.classNames?.suffix ?? '']: !!this.classNames?.suffix } }, index.h("slot", { key: 'f58380ae67766132439c8146d823e2a86b6bf32b', name: "suffix" }, this.suffix))), this.controls && (index.h("div", { key: '72e5024bf232d212300639b5b2030093b2149531', class: { 'x-input-number-handler-wrap': true, [this.classNames?.handlers ?? '']: !!this.classNames?.handlers } }, index.h("span", { key: '67968406dee6198ff1cc652351d39ac53e6043ef', class: {
1645
- 'x-input-number-handler': true,
1646
- 'x-input-number-handler-up': true,
1647
- 'x-input-number-handler-disabled': this.isUpDisabled(),
1648
- }, onMouseDown: (e) => !this.isUpDisabled() && this.handleStepMouseDown('up', e), onMouseUp: this.handleStepMouseUp, onMouseLeave: this.handleStepMouseUp }, index.h("span", { key: 'fba5d46dc0b52db13e8315e3201c87f23fd08f84', class: "x-input-number-handler-up-inner" }, this.renderUpIcon())), index.h("span", { key: '3ecbdf11351a90ebc795f021f0cccb05cf1e08f9', class: {
1649
- 'x-input-number-handler': true,
1650
- 'x-input-number-handler-down': true,
1651
- 'x-input-number-handler-disabled': this.isDownDisabled(),
1652
- }, onMouseDown: (e) => !this.isDownDisabled() && this.handleStepMouseDown('down', e), onMouseUp: this.handleStepMouseUp, onMouseLeave: this.handleStepMouseUp }, index.h("span", { key: '4335fd45f1a1842d1419a8e5edc2449f45f3faf8', class: "x-input-number-handler-down-inner" }, this.renderDownIcon()))))), this.addonAfter && (index.h("span", { key: '0ca6d501421a7641e0ed055b1abd5f0d29e498d2', class: "x-input-number-group-addon x-input-number-group-addon-after" }, index.h("slot", { key: '41f103cb4fe2b0c7a6e6d2dccf82ac3b2a983f56', name: "addonAfter" }, this.addonAfter)))));
1653
- }
1654
- static get watchers() { return {
1655
- "value": [{
1656
- "handleValueChange": 0
1657
- }]
1658
- }; }
1659
- };
1660
- XInputNumber.style = xInputNumberCss();
1661
-
1662
- 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))}`;
1663
-
1664
- const XModal = class {
1665
- constructor(hostRef) {
1666
- index.registerInstance(this, hostRef);
1667
- this.xOk = index.createEvent(this, "xOk", 7);
1668
- this.xCancel = index.createEvent(this, "xCancel", 7);
1669
- }
1670
- get el() { return index.getElement(this); }
1671
- /**
1672
- * Whether the modal is visible.
1673
- * @example
1674
- * <x-modal visible></x-modal>
1675
- */
1676
- visible = false;
1677
- /**
1678
- * Modal title.
1679
- * @example
1680
- * <x-modal modalTitle="Confirm"></x-modal>
1681
- */
1682
- modalTitle;
1683
- /**
1684
- * Width of the modal.
1685
- * @example
1686
- * <x-modal width={600}></x-modal>
1687
- */
1688
- width = 520;
1689
- /**
1690
- * Whether to show footer.
1691
- * @example
1692
- * <x-modal footer={false}></x-modal>
1693
- */
1694
- footer = true;
1695
- /**
1696
- * Whether to show close button.
1697
- * @example
1698
- * <x-modal closable={false}></x-modal>
1699
- */
1700
- closable = true;
1701
- /**
1702
- * Whether to show mask.
1703
- * @example
1704
- * <x-modal mask={false}></x-modal>
1705
- */
1706
- mask = true;
1707
- /**
1708
- * Whether clicking mask closes modal.
1709
- * @example
1710
- * <x-modal maskClosable={false}></x-modal>
1711
- */
1712
- maskClosable = true;
1713
- /**
1714
- * Whether to center the modal.
1715
- * @example
1716
- * <x-modal centered></x-modal>
1717
- */
1718
- centered = false;
1719
- /**
1720
- * OK button text.
1721
- * @example
1722
- * <x-modal okText="OK"></x-modal>
1723
- */
1724
- okText = locale_service.translate('Modal.okText', {}, 'OK');
1725
- /**
1726
- * Cancel button text.
1727
- * @example
1728
- * <x-modal cancelText="Cancel"></x-modal>
1729
- */
1730
- cancelText = locale_service.translate('Modal.cancelText', {}, 'Cancel');
1731
- /**
1732
- * OK button loading state.
1733
- * @example
1734
- * <x-modal okLoading></x-modal>
1735
- */
1736
- okLoading = false;
1737
- /**
1738
- * Cancel button loading state.
1739
- * @example
1740
- * <x-modal cancelLoading></x-modal>
1741
- */
1742
- cancelLoading = false;
1743
- /**
1744
- * OK button type.
1745
- * @example
1746
- * <x-modal okType="primary"></x-modal>
1747
- */
1748
- okType = 'primary';
1749
- /**
1750
- * Modal type (info, success, error, warning, confirm).
1751
- * @example
1752
- * <x-modal type="info"></x-modal>
1753
- */
1754
- type;
1755
- /**
1756
- * Event emitted when OK button is clicked.
1757
- * @example
1758
- * <x-modal onXOk={() => {}}></x-modal>
1759
- */
1760
- xOk;
1761
- /**
1762
- * Event emitted when Cancel button or modal is closed.
1763
- * @example
1764
- * <x-modal onXCancel={() => {}}></x-modal>
1765
- */
1766
- xCancel;
1767
- /**
1768
- * Portal instance for modal content.
1769
- */
1770
- portalInstance = null;
1771
- /**
1772
- * Create portal on initial visible state.
1773
- * @returns void
1774
- */
1775
- componentDidLoad() {
1776
- if (this.visible) {
1777
- this.updatePortal();
1778
- }
1779
- }
1780
- /**
1781
- * Cleanup portal on disconnect.
1782
- * @returns void
1783
- */
1784
- disconnectedCallback() {
1785
- this.destroyPortal();
1786
- }
1787
- handleVisibleChange() {
1788
- this.updatePortal();
1789
- }
1790
- handlePropsChange() {
1791
- if (this.visible) {
1792
- this.updatePortal();
1793
- }
1794
- }
1795
- /**
1796
- * Get body content from slot.
1797
- * @returns string
1798
- */
1799
- getBodyContent() {
1800
- const slot = this.el.shadowRoot?.querySelector('slot:not([name])');
1801
- if (slot) {
1802
- const nodes = slot.assignedNodes({ flatten: true });
1803
- return nodes.map(node => {
1804
- if (node.nodeType === Node.ELEMENT_NODE) {
1805
- return node.outerHTML;
1806
- }
1807
- return node.textContent || '';
1808
- }).join('');
1809
- }
1810
- return '';
1811
- }
1812
- /**
1813
- * Get footer content from slot.
1814
- * @returns string
1815
- */
1816
- getFooterContent() {
1817
- const slot = this.el.shadowRoot?.querySelector('slot[name="footer"]');
1818
- if (slot) {
1819
- const nodes = slot.assignedNodes({ flatten: true });
1820
- if (nodes.length > 0) {
1821
- return nodes.map(node => {
1822
- if (node.nodeType === Node.ELEMENT_NODE) {
1823
- return node.outerHTML;
1824
- }
1825
- return node.textContent || '';
1826
- }).join('');
1827
- }
1828
- }
1829
- return '';
1830
- }
1831
- /**
1832
- * Build modal content element for portal.
1833
- *
1834
- * Flow:
1835
- * 1. Creates `x-modal-content` element.
1836
- * 2. Assigns all visual props (title, width, footer, etc.).
1837
- * 3. Injects body and footer content extracted from slots.
1838
- * 4. Attaches `xOk` and `xCancel` event listeners to forward events.
1839
- *
1840
- * @returns HTMLElement
1841
- */
1842
- buildModalElement() {
1843
- const modalEl = document.createElement('x-modal-content');
1844
- // Set properties
1845
- modalEl.modalTitle = this.modalTitle;
1846
- modalEl.width = this.width;
1847
- modalEl.footer = this.footer;
1848
- modalEl.closable = this.closable;
1849
- modalEl.mask = this.mask;
1850
- modalEl.maskClosable = this.maskClosable;
1851
- modalEl.centered = this.centered;
1852
- modalEl.okText = this.okText;
1853
- modalEl.cancelText = this.cancelText;
1854
- modalEl.okLoading = this.okLoading;
1855
- modalEl.cancelLoading = this.cancelLoading;
1856
- modalEl.okType = this.okType;
1857
- modalEl.type = this.type;
1858
- // Get slot content
1859
- modalEl.bodyContent = this.getBodyContent();
1860
- modalEl.footerContent = this.getFooterContent();
1861
- // Attach event listeners
1862
- modalEl.addEventListener('xOk', () => {
1863
- this.xOk.emit();
1864
- });
1865
- modalEl.addEventListener('xCancel', () => {
1866
- this.xCancel.emit();
1867
- });
1868
- return modalEl;
1869
- }
1870
- /**
1871
- * Update portal with modal content.
1872
- * @returns void
1873
- */
1874
- updatePortal() {
1875
- if (!this.visible) {
1876
- this.destroyPortal();
1877
- return;
1878
- }
1879
- // Build modal element
1880
- const modalElement = this.buildModalElement();
1881
- if (!this.portalInstance) {
1882
- // Create new portal instance
1883
- this.portalInstance = portalController.PortalController.create({
1884
- open: true,
1885
- zIndex: 1000,
1886
- content: modalElement,
1887
- });
1888
- }
1889
- else {
1890
- // Update existing portal
1891
- this.portalInstance.update({
1892
- open: true,
1893
- content: modalElement,
1894
- });
1895
- }
1896
- }
1897
- /**
1898
- * Destroy portal instance.
1899
- * @returns void
1900
- */
1901
- destroyPortal() {
1902
- if (this.portalInstance) {
1903
- this.portalInstance.destroy();
1904
- this.portalInstance = null;
1905
- }
1906
- }
1907
- /**
1908
- * Render hidden slots to capture content for portal.
1909
- * @returns JSX.Element
1910
- */
1911
- render() {
1912
- return (index.h(index.Host, { key: 'c3e46fc9b067f8d4700762b5bb0d284dc190c1e8', class: {
1913
- 'x-modal': true,
1914
- 'x-modal-open': this.visible,
1915
- } }, index.h("div", { key: 'd620493f845e4b86b29fa46b868dbab2d632908a', style: { display: 'none' } }, index.h("slot", { key: '202a7875383dfb9f3c6b5fc9a5183a916d0b9563' }), index.h("slot", { key: '10e85c6d0994bf249c3974bdb881efda16385702', name: "footer" }))));
1916
- }
1917
- static get watchers() { return {
1918
- "visible": [{
1919
- "handleVisibleChange": 0
1920
- }],
1921
- "modalTitle": [{
1922
- "handlePropsChange": 0
1923
- }],
1924
- "width": [{
1925
- "handlePropsChange": 0
1926
- }],
1927
- "footer": [{
1928
- "handlePropsChange": 0
1929
- }],
1930
- "closable": [{
1931
- "handlePropsChange": 0
1932
- }],
1933
- "mask": [{
1934
- "handlePropsChange": 0
1935
- }],
1936
- "maskClosable": [{
1937
- "handlePropsChange": 0
1938
- }],
1939
- "centered": [{
1940
- "handlePropsChange": 0
1941
- }],
1942
- "okText": [{
1943
- "handlePropsChange": 0
1944
- }],
1945
- "cancelText": [{
1946
- "handlePropsChange": 0
1947
- }],
1948
- "okLoading": [{
1949
- "handlePropsChange": 0
1950
- }],
1951
- "cancelLoading": [{
1952
- "handlePropsChange": 0
1953
- }],
1954
- "okType": [{
1955
- "handlePropsChange": 0
1956
- }],
1957
- "type": [{
1958
- "handlePropsChange": 0
1959
- }]
1960
- }; }
1961
- };
1962
- XModal.style = xModalCss();
1963
-
1964
- 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}`;
1965
-
1966
- const XSlider = class {
1967
- constructor(hostRef) {
1968
- index.registerInstance(this, hostRef);
1969
- this.xChange = index.createEvent(this, "xChange", 7);
1970
- this.xAfterChange = index.createEvent(this, "xAfterChange", 7);
1971
- }
1972
- get el() { return index.getElement(this); }
1973
- /* ---------------- PROPS ---------------- */
1974
- /**
1975
- * Minimum slider value.
1976
- * @example
1977
- * <x-slider min={0}></x-slider>
1978
- */
1979
- min = 0;
1980
- /**
1981
- * Maximum slider value.
1982
- * @example
1983
- * <x-slider max={100}></x-slider>
1984
- */
1985
- max = 100;
1986
- /**
1987
- * Step size between values, or null to use marks.
1988
- * @example
1989
- * <x-slider step={5}></x-slider>
1990
- */
1991
- step = 1;
1992
- /**
1993
- * Enable range mode with two thumbs.
1994
- * @example
1995
- * <x-slider range></x-slider>
1996
- */
1997
- range = false;
1998
- /**
1999
- * Render slider vertically.
2000
- * @example
2001
- * <x-slider vertical></x-slider>
2002
- */
2003
- vertical = false;
2004
- /**
2005
- * Disable interaction.
2006
- * @example
2007
- * <x-slider disabled></x-slider>
2008
- */
2009
- disabled = false;
2010
- /**
2011
- * Allow thumbs to cross in range mode.
2012
- * @example
2013
- * <x-slider range allowCross={false}></x-slider>
2014
- */
2015
- allowCross = true;
2016
- /**
2017
- * Push behavior or minimum distance between thumbs.
2018
- * @example
2019
- * <x-slider range pushable={10}></x-slider>
2020
- */
2021
- pushable = false;
2022
- /**
2023
- * Allow dragging the selected track in range mode.
2024
- * @example
2025
- * <x-slider range draggableTrack></x-slider>
2026
- */
2027
- draggableTrack = false;
2028
- /**
2029
- * Show tooltip values on handles.
2030
- * @example
2031
- * <x-slider tooltip={false}></x-slider>
2032
- */
2033
- tooltip = true;
2034
- /**
2035
- * Marks displayed on the rail.
2036
- * @example
2037
- * <x-slider marks={{ 0: '0', 100: '100' }}></x-slider>
2038
- */
2039
- marks = {};
2040
- /**
2041
- * Controlled value for slider.
2042
- * @example
2043
- * <x-slider value={50}></x-slider>
2044
- */
2045
- value;
2046
- /**
2047
- * Default value when uncontrolled.
2048
- * @example
2049
- * <x-slider defaultValue={20}></x-slider>
2050
- */
2051
- defaultValue = 0;
2052
- /* ---------------- STATE ---------------- */
2053
- /**
2054
- * Active thumb index while dragging.
2055
- */
2056
- activeThumb = null;
2057
- /**
2058
- * Whether a drag interaction is active.
2059
- */
2060
- isDragging = false;
2061
- /* ---------------- EVENTS ---------------- */
2062
- /**
2063
- * Emits on value change.
2064
- * @example
2065
- * <x-slider onXChange={(ev) => console.log(ev.detail)}></x-slider>
2066
- */
2067
- xChange;
2068
- /**
2069
- * Emits after drag interaction ends.
2070
- * @example
2071
- * <x-slider onXAfterChange={(ev) => console.log(ev.detail)}></x-slider>
2072
- */
2073
- xAfterChange;
2074
- /**
2075
- * Rail element reference for position calculations.
2076
- */
2077
- rail;
2078
- /* ---------------- LIFECYCLE ---------------- */
2079
- componentWillLoad() {
2080
- if (this.value === undefined) {
2081
- this.value = this.range
2082
- ? [this.min, this.max]
2083
- : this.defaultValue;
2084
- }
2085
- }
2086
- onValueChange() {
2087
- this.xChange.emit(this.value);
2088
- }
2089
- /* ---------------- UTIL ---------------- */
2090
- /**
2091
- * Clamp value within min and max.
2092
- * @param v - Input value.
2093
- * @returns number
2094
- * @example
2095
- * this.clamp(120)
2096
- */
2097
- clamp(v) {
2098
- return Math.min(this.max, Math.max(this.min, v));
2099
- }
2100
- /**
2101
- * Build list of steps based on step or marks.
2102
- * @returns number[]
2103
- * @example
2104
- * this.getSteps()
2105
- */
2106
- getSteps() {
2107
- if (this.step === null) {
2108
- return Object.keys(this.marks).map(Number);
2109
- }
2110
- const arr = [];
2111
- for (let v = this.min; v <= this.max; v += this.step) {
2112
- arr.push(v);
2113
- }
2114
- return arr;
2115
- }
2116
- /**
2117
- * Snap value to nearest step or mark.
2118
- * @param v - Raw value.
2119
- * @returns number
2120
- * @example
2121
- * this.snap(42)
2122
- */
2123
- snap(v) {
2124
- if (this.step === null) {
2125
- const steps = this.getSteps();
2126
- return steps.reduce((prev, curr) => Math.abs(curr - v) < Math.abs(prev - v) ? curr : prev);
2127
- }
2128
- return Math.round(v / this.step) * this.step;
2129
- }
2130
- /**
2131
- * Convert value to percentage along the rail.
2132
- * @param v - Value to convert.
2133
- * @returns number
2134
- * @example
2135
- * this.percent(50)
2136
- */
2137
- percent(v) {
2138
- return ((v - this.min) / (this.max - this.min)) * 100;
2139
- }
2140
- /**
2141
- * Calculates the slider value based on a mouse event.
2142
- *
2143
- * Flow:
2144
- * 1. Gets the bounding rectangle of the rail.
2145
- * 2. Calculates the ratio of the mouse position relative to the rail's width (or height if vertical).
2146
- * 3. Maps the ratio to the [min, max] range.
2147
- * 4. Clamps the value to ensure it stays within bounds.
2148
- * 5. Snaps the value to the nearest step.
2149
- *
2150
- * @param e - The mouse event.
2151
- * @returns number - The calculated value.
2152
- */
2153
- getValueFromEvent(e) {
2154
- const rect = this.rail.getBoundingClientRect();
2155
- const ratio = this.vertical
2156
- ? (rect.bottom - e.clientY) / rect.height
2157
- : (e.clientX - rect.left) / rect.width;
2158
- const v = this.min + this.clamp(ratio) * (this.max - this.min);
2159
- return this.snap(this.clamp(v));
2160
- }
2161
- /* ---------------- PUSH LOGIC ---------------- */
2162
- /**
2163
- * Enforces the `pushable` constraint between range thumbs.
2164
- * Ensures thumbs maintain a minimum distance from each other.
2165
- *
2166
- * @param values - Current range values [v1, v2].
2167
- * @param index - The index of the thumb actively being moved.
2168
- * @returns [number, number] - The adjusted values.
2169
- */
2170
- pushRange(values, index) {
2171
- if (!this.pushable)
2172
- return values;
2173
- const distance = typeof this.pushable === 'number' ? this.pushable : 1;
2174
- if (index === 0 && values[1] - values[0] < distance) {
2175
- values[1] = values[0] + distance;
2176
- }
2177
- if (index === 1 && values[1] - values[0] < distance) {
2178
- values[0] = values[1] - distance;
2179
- }
2180
- return values;
2181
- }
2182
- /* ---------------- MOUSE ---------------- */
2183
- /**
2184
- * Handles the mouse down event to initiate dragging.
2185
- *
2186
- * Flow:
2187
- * 1. Checks if disabled.
2188
- * 2. Sets `isDragging` flag.
2189
- * 3. Determines which thumb is active (closest to click if not specified).
2190
- * 4. Updates the value immediately.
2191
- * 5. Attaches global mouse listeners for drag and release.
2192
- *
2193
- * @param e - The mouse event.
2194
- * @param index - Optional index of the handle being clicked.
2195
- */
2196
- onMouseDown = (e, index) => {
2197
- if (this.disabled)
2198
- return;
2199
- this.isDragging = true;
2200
- if (this.range) {
2201
- this.activeThumb =
2202
- index ??
2203
- this.getClosestThumb(this.getValueFromEvent(e));
2204
- }
2205
- this.updateValue(e);
2206
- document.addEventListener('mousemove', this.onMouseMove);
2207
- document.addEventListener('mouseup', this.onMouseUp);
2208
- };
2209
- /**
2210
- * Handles mouse move during drag.
2211
- * Updates the value if dragging is active.
2212
- */
2213
- onMouseMove = (e) => {
2214
- if (!this.isDragging)
2215
- return;
2216
- this.updateValue(e);
2217
- };
2218
- /**
2219
- * Handles mouse up to end drag.
2220
- * Clears state, emits final change event, and removes listeners.
2221
- */
2222
- onMouseUp = () => {
2223
- this.isDragging = false;
2224
- this.activeThumb = null;
2225
- this.xAfterChange.emit(this.value);
2226
- document.removeEventListener('mousemove', this.onMouseMove);
2227
- document.removeEventListener('mouseup', this.onMouseUp);
2228
- };
2229
- /**
2230
- * Updates the slider value logic during interaction.
2231
- *
2232
- * Flow:
2233
- * 1. Calculates new value from event.
2234
- * 2. If single mode, updates value directly.
2235
- * 3. If range mode:
2236
- * - Handles track dragging (moving both thumbs).
2237
- * - Handles individual thumb dragging.
2238
- * - Enforces `allowCross` constraint (swapping thumbs if needed).
2239
- * - Enforces `pushRange` constraint.
2240
- *
2241
- * @param e - The mouse event.
2242
- */
2243
- updateValue(e) {
2244
- const v = this.getValueFromEvent(e);
2245
- if (!this.range) {
2246
- this.value = v;
2247
- return;
2248
- }
2249
- let values = [...this.value];
2250
- if (this.draggableTrack && this.activeThumb === null) {
2251
- const diff = v - values[0];
2252
- values = [values[0] + diff, values[1] + diff];
2253
- }
2254
- else {
2255
- values[this.activeThumb] = v;
2256
- if (!this.allowCross) {
2257
- if (this.activeThumb === 0)
2258
- values[0] = Math.min(values[0], values[1]);
2259
- else
2260
- values[1] = Math.max(values[1], values[0]);
2261
- }
2262
- values = this.pushRange(values, this.activeThumb);
2263
- }
2264
- this.value = values;
2265
- }
2266
- /**
2267
- * Finds the index of the thumb closest to the given value.
2268
- * Used to determine which thumb to move when clicking on the rail.
2269
- *
2270
- * @param v - The target value.
2271
- * @returns number - 0 or 1.
2272
- */
2273
- getClosestThumb(v) {
2274
- const [v1, v2] = this.value;
2275
- return Math.abs(v - v1) < Math.abs(v - v2) ? 0 : 1;
2276
- }
2277
- /* ---------------- KEYBOARD ---------------- */
2278
- /**
2279
- * Handles keyboard navigation for fine-tuning values.
2280
- * Supports Arrow keys for stepping up/down.
2281
- *
2282
- * @param e - Keyboard event.
2283
- * @param index - Index of the handle focused.
2284
- */
2285
- onKeyDown = (e, index) => {
2286
- if (this.disabled)
2287
- return;
2288
- const delta = e.key === 'ArrowRight' || e.key === 'ArrowUp'
2289
- ? this.step ?? 1
2290
- : e.key === 'ArrowLeft' || e.key === 'ArrowDown'
2291
- ? -(this.step ?? 1)
2292
- : 0;
2293
- if (!delta)
2294
- return;
2295
- e.preventDefault();
2296
- if (!this.range) {
2297
- this.value = this.clamp(this.value + delta);
2298
- }
2299
- else {
2300
- const values = [...this.value];
2301
- values[index] = this.clamp(values[index] + delta);
2302
- this.value = values;
2303
- }
2304
- };
2305
- /* ---------------- RENDER ---------------- */
2306
- /**
2307
- * Renders the marks (ticks) along the slider rail.
2308
- *
2309
- * @returns JSX.Element[] - List of mark elements positioned by percentage.
2310
- */
2311
- renderMarks() {
2312
- return Object.entries(this.marks).map(([k, label]) => {
2313
- const percent = this.percent(Number(k));
2314
- return (index.h("div", { class: "x-slider-mark", style: {
2315
- [this.vertical ? 'bottom' : 'left']: `${percent}%`,
2316
- } }, label));
2317
- });
2318
- }
2319
- /**
2320
- * Main render method for the Slider component.
2321
- *
2322
- * Structure:
2323
- * - Host element with classes for vertical/disabled state.
2324
- * - Rail: The background line.
2325
- * - Track: The active/colored segment indicating selected range.
2326
- * - Handles: Draggable knobs for interacting with values.
2327
- * - Marks: Optional labeled ticks.
2328
- *
2329
- * @returns JSX.Element
2330
- */
2331
- render() {
2332
- const values = this.range
2333
- ? this.value
2334
- : [this.value];
2335
- const p1 = this.percent(values[0]);
2336
- const p2 = this.range ? this.percent(values[1]) : p1;
2337
- return (index.h(index.Host, { key: '90fc23fbdcc78816be8c8d32d3e46e4687d3fad6', class: {
2338
- 'x-slider': true,
2339
- 'x-slider-vertical': this.vertical,
2340
- 'x-slider-disabled': this.disabled,
2341
- } }, index.h("div", { key: '9ff4c3df41adfcd7cc3f7c65784fc569b6693ff3', class: "x-slider-rail", ref: el => (this.rail = el), onClick: e => this.onMouseDown(e) }), index.h("div", { key: '0c5f77c19a65e251e46d0393e626bfe96abd18c9', class: "x-slider-track", style: {
2342
- [this.vertical ? 'height' : 'width']: `${this.range ? p2 - p1 : p1}%`,
2343
- [this.vertical ? 'bottom' : 'left']: `${this.range ? p1 : 0}%`,
2344
- } }), values.map((v, i) => {
2345
- const percent = this.percent(v);
2346
- return (index.h("div", { class: "x-slider-handle", style: {
2347
- [this.vertical ? 'bottom' : 'left']: `${percent}%`,
2348
- }, 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 && (index.h("div", { class: "x-slider-tooltip" }, v))));
2349
- }), index.h("div", { key: 'f3dd9f0c39947e115fd6160c1003cf48f93e97af', class: "x-slider-marks" }, this.renderMarks())));
2350
- }
2351
- static get watchers() { return {
2352
- "value": [{
2353
- "onValueChange": 0
2354
- }]
2355
- }; }
2356
- };
2357
- XSlider.style = xSliderCss();
2358
-
2359
- 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}`;
2360
-
2361
- const XSwitch = class {
2362
- constructor(hostRef) {
2363
- index.registerInstance(this, hostRef);
2364
- this.xChange = index.createEvent(this, "xChange", 7);
2365
- this.xClick = index.createEvent(this, "xClick", 7);
2366
- }
2367
- /**
2368
- * Whether the switch is automatically focused.
2369
- * @example
2370
- * <x-switch autoFocus></x-switch>
2371
- */
2372
- autoFocus = false;
2373
- /**
2374
- * Determine whether the Switch is checked.
2375
- * @example
2376
- * <x-switch checked></x-switch>
2377
- */
2378
- checked = false;
2379
- /**
2380
- * The content to be shown when the state is checked.
2381
- * @example
2382
- * <x-switch checkedChildren="On"></x-switch>
2383
- */
2384
- checkedChildren;
2385
- /**
2386
- * Whether to set the initial state.
2387
- * @example
2388
- * <x-switch defaultChecked></x-switch>
2389
- */
2390
- defaultChecked = false;
2391
- /**
2392
- * Disable switch.
2393
- * @example
2394
- * <x-switch disabled></x-switch>
2395
- */
2396
- disabled = false;
2397
- /**
2398
- * Loading state of switch.
2399
- * @example
2400
- * <x-switch loading></x-switch>
2401
- */
2402
- loading = false;
2403
- /**
2404
- * The size of the Switch.
2405
- * @example
2406
- * <x-switch size="small"></x-switch>
2407
- */
2408
- size = 'default';
2409
- /**
2410
- * The content to be shown when the state is unchecked.
2411
- * @example
2412
- * <x-switch unCheckedChildren="Off"></x-switch>
2413
- */
2414
- unCheckedChildren;
2415
- /**
2416
- * Emits when checked state changes.
2417
- * @example
2418
- * <x-switch onXChange={(ev) => console.log(ev.detail)}></x-switch>
2419
- */
2420
- xChange;
2421
- /**
2422
- * Emits when switch is clicked.
2423
- * @example
2424
- * <x-switch onXClick={(ev) => console.log(ev.detail)}></x-switch>
2425
- */
2426
- xClick;
2427
- /**
2428
- * Component lifecycle method called before loading.
2429
- * Initializes the checked state if `defaultChecked` is true.
2430
- */
2431
- componentWillLoad() {
2432
- if (this.defaultChecked) {
2433
- this.checked = true;
2434
- }
2435
- }
2436
- /**
2437
- * Handles click events to toggle the switch state.
2438
- *
2439
- * Flow:
2440
- * 1. Checks if disabled or loading; if so, returns immediately.
2441
- * 2. Toggles the `checked` state.
2442
- * 3. Emits `xChange` with the new boolean state.
2443
- * 4. Emits `xClick` with the original event.
2444
- *
2445
- * @param e - The click event.
2446
- */
2447
- handleClick(e) {
2448
- if (this.disabled || this.loading)
2449
- return;
2450
- this.checked = !this.checked;
2451
- this.xChange.emit(this.checked);
2452
- this.xClick.emit(e);
2453
- }
2454
- /**
2455
- * Renders the Switch component.
2456
- *
2457
- * Structure:
2458
- * - Host element serves as the container and click target.
2459
- * - Handle: The moving circle part (contains loading spinner if active).
2460
- * - Inner: The text label (On/Off) depending on checked state.
2461
- *
2462
- * @returns JSX.Element
2463
- */
2464
- render() {
2465
- return (index.h(index.Host, { key: '1503ee5789c9b75305a76eac0e2eece6c2422fa0', class: {
2466
- 'x-switch': true,
2467
- 'x-switch-checked': this.checked,
2468
- 'x-switch-disabled': this.disabled,
2469
- 'x-switch-loading': this.loading,
2470
- 'x-switch-small': this.size === 'small',
2471
- }, onClick: (e) => this.handleClick(e) }, index.h("div", { key: 'b6ff513a02e20c628773c7424536c59b1e279f40', class: "x-switch-handle" }, this.loading && (index.h("span", { key: '79ae4f5fe973ef32f912eddcd312016eb7d43113', role: "img", "aria-label": "loading", class: "anticon anticon-loading x-switch-loading-icon" }, index.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" }, index.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" }))))), index.h("span", { key: '6bc8ccdd4d4468eae859ed05618a037fe8c324b9', class: "x-switch-inner" }, this.checked ? this.checkedChildren : this.unCheckedChildren)));
2472
- }
2473
- };
2474
- XSwitch.style = xSwitchCss();
2475
-
2476
- 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))))}`;
2477
-
2478
- const XTooltip = class {
2479
- constructor(hostRef) {
2480
- index.registerInstance(this, hostRef);
2481
- this.openChange = index.createEvent(this, "openChange", 7);
2482
- }
2483
- get el() { return index.getElement(this); }
2484
- // ==================== Props ====================
2485
- /**
2486
- * The text shown in the tooltip.
2487
- * Use `tooltipTitle` to avoid conflict with native `title` attribute.
2488
- * @example
2489
- * <x-tooltip tooltip-title="Info"></x-tooltip>
2490
- */
2491
- tooltipTitle;
2492
- /**
2493
- * The position of the tooltip relative to the target.
2494
- * @default 'top'
2495
- * @example
2496
- * <x-tooltip placement="bottom"></x-tooltip>
2497
- */
2498
- placement = 'top';
2499
- /**
2500
- * Tooltip trigger mode.
2501
- * @default 'hover'
2502
- * @example
2503
- * <x-tooltip trigger="click"></x-tooltip>
2504
- */
2505
- trigger = 'hover';
2506
- /**
2507
- * Background color of the tooltip.
2508
- * @example
2509
- * <x-tooltip color="#333"></x-tooltip>
2510
- */
2511
- color;
2512
- /**
2513
- * Whether the floating tooltip card is visible or not (controlled mode).
2514
- * @example
2515
- * <x-tooltip open></x-tooltip>
2516
- */
2517
- open;
2518
- /**
2519
- * Whether the floating tooltip card is visible by default.
2520
- * @example
2521
- * <x-tooltip defaultOpen></x-tooltip>
2522
- */
2523
- defaultOpen = false;
2524
- /**
2525
- * Whether to show arrow.
2526
- * Can be a boolean or an object with `pointAtCenter` option.
2527
- * @default true
2528
- * @example
2529
- * <x-tooltip arrow={false}></x-tooltip>
2530
- */
2531
- arrow = true;
2532
- /**
2533
- * Delay in seconds before tooltip is shown on mouse enter.
2534
- * @default 0.1
2535
- * @example
2536
- * <x-tooltip mouseEnterDelay={0.5}></x-tooltip>
2537
- */
2538
- mouseEnterDelay = 0.1;
2539
- /**
2540
- * Delay in seconds before tooltip is hidden on mouse leave.
2541
- * @default 0.1
2542
- * @example
2543
- * <x-tooltip mouseLeaveDelay={0.5}></x-tooltip>
2544
- */
2545
- mouseLeaveDelay = 0.1;
2546
- /**
2547
- * Whether to destroy tooltip on hide.
2548
- * @default false
2549
- * @example
2550
- * <x-tooltip destroyTooltipOnHide></x-tooltip>
2551
- */
2552
- destroyTooltipOnHide = false;
2553
- /**
2554
- * Whether to adjust popup placement automatically when popup is off screen.
2555
- * @default true
2556
- * @example
2557
- * <x-tooltip autoAdjustOverflow={false}></x-tooltip>
2558
- */
2559
- autoAdjustOverflow = true;
2560
- /**
2561
- * Z-index of the tooltip.
2562
- * @example
2563
- * <x-tooltip zIndex={2000}></x-tooltip>
2564
- */
2565
- zIndex = 9999;
2566
- /**
2567
- * Custom class names for tooltip parts.
2568
- * @example
2569
- * <x-tooltip classNames={{ root: 'my-tooltip' }}></x-tooltip>
2570
- */
2571
- classNames;
2572
- /**
2573
- * Custom styles for tooltip parts.
2574
- * @example
2575
- * <x-tooltip styles={{ root: { background: '#000' } }}></x-tooltip>
2576
- */
2577
- styles;
2578
- // ==================== Events ====================
2579
- /**
2580
- * Callback executed when visibility of the tooltip card is changed.
2581
- * @example
2582
- * <x-tooltip onOpenChange={(ev) => console.log(ev.detail)}></x-tooltip>
2583
- */
2584
- openChange;
2585
- // ==================== State ====================
2586
- /**
2587
- * Internal visibility state.
2588
- */
2589
- visible = false;
2590
- // ==================== Private ====================
2591
- /**
2592
- * Portal instance for tooltip content.
2593
- */
2594
- portalInstance = null;
2595
- /**
2596
- * Timeout for delayed show.
2597
- */
2598
- showTimeout;
2599
- /**
2600
- * Timeout for delayed hide.
2601
- */
2602
- hideTimeout;
2603
- // ==================== Computed ====================
2604
- get isOpen() {
2605
- return this.open ?? this.visible;
2606
- }
2607
- // ==================== Lifecycle ====================
2608
- componentWillLoad() {
2609
- this.visible = this.open ?? this.defaultOpen ?? false;
2610
- }
2611
- componentDidLoad() {
2612
- this.addEventListeners();
2613
- }
2614
- componentDidRender() {
2615
- this.updatePortal();
2616
- }
2617
- disconnectedCallback() {
2618
- this.clearTimeouts();
2619
- this.removeEventListeners();
2620
- this.destroyPortal();
2621
- }
2622
- // ==================== Watchers ====================
2623
- handleOpenChange(newValue) {
2624
- if (newValue !== undefined) {
2625
- this.setVisible(newValue);
2626
- }
2627
- }
2628
- // ==================== Methods ====================
2629
- /**
2630
- * Show the tooltip programmatically.
2631
- * @returns Promise<void>
2632
- * @example
2633
- * await el.show()
2634
- */
2635
- async show() {
2636
- this.setVisible(true);
2637
- }
2638
- /**
2639
- * Hide the tooltip programmatically.
2640
- * @returns Promise<void>
2641
- * @example
2642
- * await el.hide()
2643
- */
2644
- async hide() {
2645
- this.setVisible(false);
2646
- }
2647
- // ==================== Private Methods ====================
2648
- /**
2649
- * Clear pending show/hide timeouts.
2650
- * @returns void
2651
- */
2652
- clearTimeouts() {
2653
- if (this.showTimeout) {
2654
- clearTimeout(this.showTimeout);
2655
- this.showTimeout = undefined;
2656
- }
2657
- if (this.hideTimeout) {
2658
- clearTimeout(this.hideTimeout);
2659
- this.hideTimeout = undefined;
2660
- }
2661
- }
2662
- /**
2663
- * Update internal visibility and emit openChange.
2664
- * @param visible - New visibility state.
2665
- * @returns void
2666
- */
2667
- setVisible(visible) {
2668
- if (this.visible === visible)
2669
- return;
2670
- this.visible = visible;
2671
- this.openChange.emit({ open: visible });
2672
- }
2673
- /**
2674
- * Delay showing tooltip based on mouseEnterDelay.
2675
- * @returns void
2676
- */
2677
- delayShow = () => {
2678
- this.clearTimeouts();
2679
- const delay = (this.mouseEnterDelay ?? 0.1) * 1000;
2680
- this.showTimeout = setTimeout(() => {
2681
- if (this.open === undefined) {
2682
- this.setVisible(true);
2683
- }
2684
- }, delay);
2685
- };
2686
- /**
2687
- * Delay hiding tooltip based on mouseLeaveDelay.
2688
- * @returns void
2689
- */
2690
- delayHide = () => {
2691
- this.clearTimeouts();
2692
- const delay = (this.mouseLeaveDelay ?? 0.1) * 1000;
2693
- this.hideTimeout = setTimeout(() => {
2694
- if (this.open === undefined) {
2695
- this.setVisible(false);
2696
- }
2697
- }, delay);
2698
- };
2699
- /**
2700
- * Handle trigger mouse enter for hover mode.
2701
- * @returns void
2702
- */
2703
- handleMouseEnter = () => {
2704
- if (this.trigger === 'hover') {
2705
- this.delayShow();
2706
- }
2707
- };
2708
- /**
2709
- * Handle trigger mouse leave for hover mode.
2710
- * @returns void
2711
- */
2712
- handleMouseLeave = () => {
2713
- if (this.trigger === 'hover') {
2714
- this.delayHide();
2715
- }
2716
- };
2717
- /**
2718
- * Handle focus for focus trigger mode.
2719
- * @returns void
2720
- */
2721
- handleFocus = () => {
2722
- if (this.trigger === 'focus') {
2723
- this.delayShow();
2724
- }
2725
- };
2726
- /**
2727
- * Handle blur for focus trigger mode.
2728
- * @returns void
2729
- */
2730
- handleBlur = () => {
2731
- if (this.trigger === 'focus') {
2732
- this.delayHide();
2733
- }
2734
- };
2735
- /**
2736
- * Handle click for click trigger mode.
2737
- * @returns void
2738
- */
2739
- handleClick = () => {
2740
- if (this.trigger === 'click') {
2741
- if (this.open === undefined) {
2742
- this.setVisible(!this.visible);
2743
- }
2744
- }
2745
- };
2746
- /**
2747
- * Handle context menu trigger mode.
2748
- * @param e - Mouse event.
2749
- * @returns void
2750
- */
2751
- handleContextMenu = (e) => {
2752
- if (this.trigger === 'contextMenu') {
2753
- e.preventDefault();
2754
- if (this.open === undefined) {
2755
- this.setVisible(!this.visible);
2756
- }
2757
- }
2758
- };
2759
- /**
2760
- * Close tooltip when clicking outside.
2761
- * @param e - Mouse event.
2762
- * @returns void
2763
- */
2764
- handleDocumentClick = (e) => {
2765
- if (this.trigger === 'click' || this.trigger === 'contextMenu') {
2766
- const target = e.target;
2767
- // Check if click is inside component
2768
- if (this.el.contains(target))
2769
- return;
2770
- // Check if click is inside portal
2771
- const portalEl = this.portalInstance?.getElement?.();
2772
- if (portalEl?.contains(target))
2773
- return;
2774
- if (this.open === undefined) {
2775
- this.setVisible(false);
2776
- }
2777
- }
2778
- };
2779
- /**
2780
- * Handle hover inside portal to prevent hide.
2781
- * @returns void
2782
- */
2783
- handlePortalMouseEnter = () => {
2784
- if (this.trigger === 'hover') {
2785
- this.clearTimeouts();
2786
- }
2787
- };
2788
- /**
2789
- * Handle mouse leave from portal for hover trigger.
2790
- * @returns void
2791
- */
2792
- handlePortalMouseLeave = () => {
2793
- if (this.trigger === 'hover') {
2794
- this.delayHide();
2795
- }
2796
- };
2797
- /**
2798
- * Add global event listeners.
2799
- * @returns void
2800
- */
2801
- addEventListeners() {
2802
- document.addEventListener('click', this.handleDocumentClick);
2803
- }
2804
- /**
2805
- * Remove global event listeners.
2806
- * @returns void
2807
- */
2808
- removeEventListeners() {
2809
- document.removeEventListener('click', this.handleDocumentClick);
2810
- }
2811
- /**
2812
- * Determine whether to render arrow.
2813
- * @returns boolean
2814
- */
2815
- shouldShowArrow() {
2816
- if (typeof this.arrow === 'boolean') {
2817
- return this.arrow;
2818
- }
2819
- return this.arrow !== undefined;
2820
- }
2821
- /**
2822
- * Get trigger element inside shadow root.
2823
- * @returns HTMLElement | undefined
2824
- */
2825
- getTriggerEl() {
2826
- return this.el.shadowRoot
2827
- ? this.el.shadowRoot.querySelector('.x-tooltip-trigger')
2828
- : this.el.querySelector('.x-tooltip-trigger');
2829
- }
2830
- // ==================== Portal Methods ====================
2831
- /**
2832
- * Calculate arrow position based on trigger element and placement
2833
- * @returns { arrowX: number; arrowY: number }
2834
- */
2835
- calculateArrowPosition() {
2836
- const triggerEl = this.getTriggerEl();
2837
- if (!triggerEl) {
2838
- return { arrowX: 0, arrowY: 0 };
2839
- }
2840
- const triggerRect = triggerEl.getBoundingClientRect();
2841
- const triggerWidth = triggerRect.width;
2842
- const triggerHeight = triggerRect.height;
2843
- let arrowX = 0;
2844
- let arrowY = 0;
2845
- // Calculate arrow position based on placement
2846
- // We want the arrow to point at the center of the trigger
2847
- switch (this.placement) {
2848
- // Top placements - arrow points down, X is relative to trigger center
2849
- case 'top':
2850
- arrowX = triggerWidth / 2;
2851
- arrowY = 0;
2852
- break;
2853
- case 'topLeft':
2854
- arrowX = Math.min(20, triggerWidth / 2);
2855
- arrowY = 0;
2856
- break;
2857
- case 'topRight':
2858
- arrowX = triggerWidth - Math.min(20, triggerWidth / 2);
2859
- arrowY = 0;
2860
- break;
2861
- // Bottom placements - arrow points up, X is relative to trigger center
2862
- case 'bottom':
2863
- arrowX = triggerWidth / 2;
2864
- arrowY = 0;
2865
- break;
2866
- case 'bottomLeft':
2867
- arrowX = Math.min(20, triggerWidth / 2);
2868
- arrowY = 0;
2869
- break;
2870
- case 'bottomRight':
2871
- arrowX = triggerWidth - Math.min(20, triggerWidth / 2);
2872
- arrowY = 0;
2873
- break;
2874
- // Left placements - arrow points right, Y is relative to trigger center
2875
- case 'left':
2876
- arrowX = 0;
2877
- arrowY = triggerHeight / 2;
2878
- break;
2879
- case 'leftTop':
2880
- arrowX = 0;
2881
- arrowY = Math.min(16, triggerHeight / 2);
2882
- break;
2883
- case 'leftBottom':
2884
- arrowX = 0;
2885
- arrowY = triggerHeight - Math.min(16, triggerHeight / 2);
2886
- break;
2887
- // Right placements - arrow points left, Y is relative to trigger center
2888
- case 'right':
2889
- arrowX = 0;
2890
- arrowY = triggerHeight / 2;
2891
- break;
2892
- case 'rightTop':
2893
- arrowX = 0;
2894
- arrowY = Math.min(16, triggerHeight / 2);
2895
- break;
2896
- case 'rightBottom':
2897
- arrowX = 0;
2898
- arrowY = triggerHeight - Math.min(16, triggerHeight / 2);
2899
- break;
2900
- }
2901
- return { arrowX, arrowY };
2902
- }
2903
- /**
2904
- * Build tooltip content element for portal.
2905
- * @returns HTMLElement
2906
- */
2907
- buildTooltipElement() {
2908
- // Create x-tooltip-content component
2909
- const tooltipEl = document.createElement('x-tooltip-content');
2910
- // Set properties
2911
- tooltipEl.tooltipTitle = this.tooltipTitle || '';
2912
- tooltipEl.placement = this.placement;
2913
- tooltipEl.showArrow = this.shouldShowArrow();
2914
- if (this.color) {
2915
- tooltipEl.color = this.color;
2916
- }
2917
- if (this.classNames?.root) {
2918
- tooltipEl.contentClass = this.classNames.root;
2919
- }
2920
- // Calculate and set arrow position CSS variables
2921
- const { arrowX, arrowY } = this.calculateArrowPosition();
2922
- tooltipEl.style.setProperty('--arrow-x', `${arrowX}px`);
2923
- tooltipEl.style.setProperty('--arrow-y', `${arrowY}px`);
2924
- // Add event listeners for hover on portal
2925
- tooltipEl.addEventListener('mouseenter', this.handlePortalMouseEnter);
2926
- tooltipEl.addEventListener('mouseleave', this.handlePortalMouseLeave);
2927
- return tooltipEl;
2928
- }
2929
- /**
2930
- * Create or update portal content for tooltip.
2931
- * @returns void
2932
- */
2933
- updatePortal() {
2934
- const hasTitle = !!this.tooltipTitle;
2935
- if (!this.isOpen || !hasTitle) {
2936
- if (this.portalInstance) {
2937
- this.portalInstance.destroy();
2938
- this.portalInstance = null;
2939
- }
2940
- return;
2941
- }
2942
- const tooltipElement = this.buildTooltipElement();
2943
- if (!this.portalInstance) {
2944
- this.portalInstance = portalController.PortalController.create({
2945
- open: this.isOpen,
2946
- target: this.getTriggerEl(),
2947
- placement: this.placement,
2948
- zIndex: this.zIndex || 9999,
2949
- offset: 8, // arrow size (5px) + gap (3px)
2950
- content: tooltipElement,
2951
- flip: false,
2952
- shift: this.autoAdjustOverflow !== false,
2953
- });
2954
- }
2955
- else {
2956
- this.portalInstance.update({
2957
- open: this.isOpen,
2958
- target: this.getTriggerEl(),
2959
- placement: this.placement,
2960
- offset: 8,
2961
- content: tooltipElement,
2962
- flip: false,
2963
- shift: this.autoAdjustOverflow !== false,
2964
- });
2965
- }
2966
- }
2967
- /**
2968
- * Destroy portal instance if present.
2969
- * @returns void
2970
- */
2971
- destroyPortal() {
2972
- if (this.portalInstance) {
2973
- this.portalInstance.destroy();
2974
- this.portalInstance = null;
2975
- }
2976
- }
2977
- // ==================== Render ====================
2978
- /**
2979
- * Renders the Tooltip component.
2980
- *
2981
- * Flow:
2982
- * 1. Constructs host classes based on visibility and color.
2983
- * 2. Attaches event listeners for all trigger modes (hover, focus, click, contextMenu).
2984
- * 3. Renders a trigger wrapper `span` that wraps the default slot.
2985
- * 4. The actual tooltip content is rendered via a Portal (managed by `updatePortal`) to escape container clipping.
2986
- *
2987
- * @returns JSX.Element
2988
- */
2989
- render() {
2990
- return (index.h(index.Host, { key: '7f714f3aef2633cd18aac1fe03be7c840f01aa81', class: {
2991
- 'x-tooltip-wrapper': true,
2992
- 'x-tooltip-open': this.isOpen,
2993
- 'x-tooltip-color': this.color ? true : false,
2994
- }, onMouseEnter: this.handleMouseEnter, onMouseLeave: this.handleMouseLeave, onFocus: this.handleFocus, onBlur: this.handleBlur, onClick: this.handleClick, onContextMenu: this.handleContextMenu }, index.h("span", { key: 'ae94a1ccfc97a0ba7bddb87394e7cbe0e4a4ff2a', class: "x-tooltip-trigger" }, index.h("slot", { key: '1f2ca22b7b432abe47e12d69e3ea94efe4c06c08' }))));
2995
- }
2996
- static get watchers() { return {
2997
- "open": [{
2998
- "handleOpenChange": 0
2999
- }]
3000
- }; }
3001
- };
3002
- XTooltip.style = xTooltipCss();
3003
-
3004
- 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}`;
3005
-
3006
- const XTooltipContent = class {
3007
- constructor(hostRef) {
3008
- index.registerInstance(this, hostRef);
3009
- }
3010
- get el() { return index.getElement(this); }
3011
- // ==================== Props ====================
3012
- /**
3013
- * Tooltip title/content text.
3014
- * @example
3015
- * <x-tooltip-content tooltipTitle="Info"></x-tooltip-content>
3016
- */
3017
- tooltipTitle;
3018
- /**
3019
- * Placement of the tooltip.
3020
- * @example
3021
- * <x-tooltip-content placement="bottom"></x-tooltip-content>
3022
- */
3023
- placement = 'top';
3024
- /**
3025
- * Whether to show arrow.
3026
- * @example
3027
- * <x-tooltip-content showArrow={false}></x-tooltip-content>
3028
- */
3029
- showArrow = true;
3030
- /**
3031
- * Custom background color.
3032
- * @example
3033
- * <x-tooltip-content color="#333"></x-tooltip-content>
3034
- */
3035
- color;
3036
- /**
3037
- * Custom class for the content.
3038
- * @example
3039
- * <x-tooltip-content contentClass="my-tooltip"></x-tooltip-content>
3040
- */
3041
- contentClass;
3042
- /**
3043
- * Whether the tooltip is hidden.
3044
- * @example
3045
- * <x-tooltip-content hidden></x-tooltip-content>
3046
- */
3047
- hidden = false;
3048
- // ==================== Render ====================
3049
- /**
3050
- * Render tooltip content, arrow, and slot.
3051
- * @returns JSX.Element
3052
- * @example
3053
- * <x-tooltip-content tooltipTitle="Tip"></x-tooltip-content>
3054
- */
3055
- render() {
3056
- // Build class map based on placement and visibility.
3057
- const classes = {
3058
- 'x-tooltip-content': true,
3059
- [`x-tooltip-content-placement-${this.placement}`]: true,
3060
- 'x-tooltip-content-hidden': this.hidden,
3061
- [this.contentClass || '']: !!this.contentClass,
3062
- };
3063
- // Apply CSS variable for custom color.
3064
- const style = {};
3065
- if (this.color) {
3066
- style['--x-tooltip-color'] = this.color;
3067
- }
3068
- return (index.h(index.Host, { key: 'a583a96aef26105e6b21504201ffda958a46103c', class: classes, style: style, role: "tooltip" }, index.h("div", { key: '9cf9e614628b794ff569e26d679507c437395548', class: {
3069
- 'x-tooltip-content-inner': true,
3070
- 'x-tooltip-content-color': this.color ? true : false,
3071
- [this.contentClass || '']: !!this.contentClass,
3072
- } }, this.tooltipTitle, index.h("slot", { key: '799907798ddfca9bf4ccdee5850301af616f8127' })), this.showArrow && (index.h("div", { key: '0a9215b4cbb5f583188851171cb3a50bd26683a2', class: "x-tooltip-content-arrow" }))));
3073
- }
3074
- };
3075
- XTooltipContent.style = xTooltipContentCss();
3076
-
3077
- exports.x_color_picker = XColorPicker;
3078
- exports.x_divider = XDivider;
3079
- exports.x_form_item = XFormItem;
3080
- exports.x_input_number = XInputNumber;
3081
- exports.x_modal = XModal;
3082
- exports.x_slider = XSlider;
3083
- exports.x_switch = XSwitch;
3084
- exports.x_tooltip = XTooltip;
3085
- exports.x_tooltip_content = XTooltipContent;