@aithe/aithe-ui 26.2.3 → 26.3.1

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 (564) hide show
  1. package/README.md +16 -11
  2. package/dist/apps/admin/app.js +12 -0
  3. package/dist/apps/admin/components/admin-app.js +83 -0
  4. package/dist/apps/admin/components/admin-layout.d.ts +0 -1
  5. package/dist/apps/admin/components/admin-layout.d.ts.map +1 -1
  6. package/dist/apps/admin/components/admin-layout.js +250 -0
  7. package/dist/apps/admin/datahub/auth.js +24 -0
  8. package/dist/apps/admin/datahub/dashboard.js +16 -0
  9. package/dist/apps/admin/datahub/index.js +42 -0
  10. package/dist/apps/admin/datahub/menu.js +16 -0
  11. package/dist/apps/admin/datahub/mock/auth.js +11 -0
  12. package/dist/apps/admin/datahub/mock/dashboard.js +10 -0
  13. package/dist/apps/admin/datahub/mock/menu.js +42 -0
  14. package/dist/apps/admin/i18n/de-DE.js +37 -0
  15. package/dist/apps/admin/i18n/en-US.js +37 -0
  16. package/dist/apps/admin/i18n/es-ES.js +38 -0
  17. package/dist/apps/admin/i18n/fr-FR.js +37 -0
  18. package/dist/apps/admin/i18n/index.js +27 -0
  19. package/dist/apps/admin/i18n/ja-JP.js +38 -0
  20. package/dist/apps/admin/i18n/ko-KR.js +37 -0
  21. package/dist/apps/admin/i18n/pt-BR.js +37 -0
  22. package/dist/apps/admin/i18n/zh-CN.js +37 -0
  23. package/dist/apps/admin/i18n/zh-HK.js +37 -0
  24. package/dist/apps/admin/i18n/zh-TW.js +37 -0
  25. package/dist/apps/admin/pages/dashboard-page.d.ts +1 -0
  26. package/dist/apps/admin/pages/dashboard-page.d.ts.map +1 -1
  27. package/dist/apps/admin/pages/dashboard-page.js +199 -0
  28. package/dist/apps/admin/pages/login-page.js +278 -0
  29. package/dist/apps/admin/pages/not-found-page.js +57 -0
  30. package/dist/apps/admin/pages/role-page.js +76 -0
  31. package/dist/apps/admin/pages/settings-page.js +95 -0
  32. package/dist/apps/admin/pages/user-page.js +76 -0
  33. package/dist/apps/admin/router/index.js +43 -0
  34. package/dist/apps/admin/standalone.js +1 -0
  35. package/dist/apps/admin/store/auth.js +42 -0
  36. package/dist/apps/api/app.js +82 -0
  37. package/dist/apps/api/demo-data.d.ts.map +1 -1
  38. package/dist/apps/api/demo-data.js +965 -0
  39. package/dist/apps/api/docs-viewer.js +684 -0
  40. package/dist/apps/api/i18n/de-DE.d.ts.map +1 -1
  41. package/dist/apps/api/i18n/de-DE.js +130 -0
  42. package/dist/apps/api/i18n/en-US.d.ts.map +1 -1
  43. package/dist/apps/api/i18n/en-US.js +140 -0
  44. package/dist/apps/api/i18n/es-ES.d.ts.map +1 -1
  45. package/dist/apps/api/i18n/es-ES.js +130 -0
  46. package/dist/apps/api/i18n/fr-FR.d.ts.map +1 -1
  47. package/dist/apps/api/i18n/fr-FR.js +130 -0
  48. package/dist/apps/api/i18n/index.js +27 -0
  49. package/dist/apps/api/i18n/ja-JP.d.ts.map +1 -1
  50. package/dist/apps/api/i18n/ja-JP.js +130 -0
  51. package/dist/apps/api/i18n/ko-KR.d.ts.map +1 -1
  52. package/dist/apps/api/i18n/ko-KR.js +130 -0
  53. package/dist/apps/api/i18n/pt-BR.d.ts.map +1 -1
  54. package/dist/apps/api/i18n/pt-BR.js +130 -0
  55. package/dist/apps/api/i18n/zh-CN.d.ts.map +1 -1
  56. package/dist/apps/api/i18n/zh-CN.js +140 -0
  57. package/dist/apps/api/i18n/zh-HK.d.ts.map +1 -1
  58. package/dist/apps/api/i18n/zh-HK.js +130 -0
  59. package/dist/apps/api/i18n/zh-TW.d.ts.map +1 -1
  60. package/dist/apps/api/i18n/zh-TW.js +130 -0
  61. package/dist/apps/api/pages/docs.d.ts.map +1 -1
  62. package/dist/apps/api/pages/docs.js +367 -0
  63. package/dist/apps/api/standalone.js +1 -0
  64. package/dist/apps/demo/app.js +273 -0
  65. package/dist/apps/demo/editor.d.ts.map +1 -1
  66. package/dist/apps/demo/editor.js +270 -0
  67. package/dist/apps/demo/helpers.js +7 -0
  68. package/dist/apps/demo/i18n/de-DE.d.ts.map +1 -1
  69. package/dist/apps/demo/i18n/de-DE.js +269 -0
  70. package/dist/apps/demo/i18n/en-US.d.ts.map +1 -1
  71. package/dist/apps/demo/i18n/en-US.js +281 -0
  72. package/dist/apps/demo/i18n/es-ES.d.ts.map +1 -1
  73. package/dist/apps/demo/i18n/es-ES.js +269 -0
  74. package/dist/apps/demo/i18n/fr-FR.d.ts.map +1 -1
  75. package/dist/apps/demo/i18n/fr-FR.js +269 -0
  76. package/dist/apps/demo/i18n/index.js +27 -0
  77. package/dist/apps/demo/i18n/ja-JP.d.ts.map +1 -1
  78. package/dist/apps/demo/i18n/ja-JP.js +269 -0
  79. package/dist/apps/demo/i18n/ko-KR.d.ts.map +1 -1
  80. package/dist/apps/demo/i18n/ko-KR.js +269 -0
  81. package/dist/apps/demo/i18n/pt-BR.d.ts.map +1 -1
  82. package/dist/apps/demo/i18n/pt-BR.js +269 -0
  83. package/dist/apps/demo/i18n/zh-CN.d.ts.map +1 -1
  84. package/dist/apps/demo/i18n/zh-CN.js +281 -0
  85. package/dist/apps/demo/i18n/zh-HK.d.ts.map +1 -1
  86. package/dist/apps/demo/i18n/zh-HK.js +269 -0
  87. package/dist/apps/demo/i18n/zh-TW.d.ts.map +1 -1
  88. package/dist/apps/demo/i18n/zh-TW.js +269 -0
  89. package/dist/apps/demo/pages/autoform.js +412 -0
  90. package/dist/apps/demo/pages/basic.js +157 -0
  91. package/dist/apps/demo/pages/code.js +1088 -0
  92. package/dist/apps/demo/pages/container.js +42 -0
  93. package/dist/apps/demo/pages/dashboard.js +159 -0
  94. package/dist/apps/demo/pages/data.d.ts.map +1 -1
  95. package/dist/apps/demo/pages/data.js +327 -0
  96. package/dist/apps/demo/pages/display.d.ts.map +1 -1
  97. package/dist/apps/demo/pages/display.js +295 -0
  98. package/dist/apps/demo/pages/feedback.js +94 -0
  99. package/dist/apps/demo/pages/form.js +99 -0
  100. package/dist/apps/demo/pages/layout.js +74 -0
  101. package/dist/apps/demo/pages/navigation.js +54 -0
  102. package/dist/apps/demo/pages/progress.js +42 -0
  103. package/dist/apps/demo/pages/theme.js +126 -0
  104. package/dist/apps/demo/standalone.js +1 -0
  105. package/dist/components/basic/AGENTS.md +1 -0
  106. package/dist/components/basic/avatar.js +168 -0
  107. package/dist/components/basic/badge.js +157 -0
  108. package/dist/components/basic/button-group.js +70 -0
  109. package/dist/components/basic/button.d.ts +2 -4
  110. package/dist/components/basic/button.d.ts.map +1 -1
  111. package/dist/components/basic/button.js +315 -0
  112. package/dist/components/basic/card.js +186 -0
  113. package/dist/components/basic/chip.js +103 -0
  114. package/dist/components/basic/divider.js +127 -0
  115. package/dist/components/basic/empty.js +72 -0
  116. package/dist/components/basic/icon.js +129 -0
  117. package/dist/components/basic/input.d.ts.map +1 -1
  118. package/dist/components/basic/input.js +314 -0
  119. package/dist/components/basic/tag.d.ts +7 -2
  120. package/dist/components/basic/tag.d.ts.map +1 -1
  121. package/dist/components/basic/tag.js +248 -0
  122. package/dist/components/basic/textarea.d.ts +0 -1
  123. package/dist/components/basic/textarea.d.ts.map +1 -1
  124. package/dist/components/basic/textarea.js +130 -0
  125. package/dist/components/container/callout.js +108 -0
  126. package/dist/components/container/details.js +117 -0
  127. package/dist/components/container/scroller.js +144 -0
  128. package/dist/components/container/split-panel.js +150 -0
  129. package/dist/components/data/AGENTS.md +1 -1
  130. package/dist/components/data/box-table.d.ts +53 -0
  131. package/dist/components/data/box-table.d.ts.map +1 -0
  132. package/dist/components/data/box-table.js +220 -0
  133. package/dist/components/data/dropdown.d.ts +8 -5
  134. package/dist/components/data/dropdown.d.ts.map +1 -1
  135. package/dist/components/data/dropdown.js +219 -0
  136. package/dist/components/data/metrics-group.js +180 -0
  137. package/dist/components/data/metrics.d.ts +11 -0
  138. package/dist/components/data/metrics.d.ts.map +1 -1
  139. package/dist/components/data/metrics.js +309 -0
  140. package/dist/components/data/pagination.js +119 -0
  141. package/dist/components/data/tab-pane.d.ts +58 -12
  142. package/dist/components/data/tab-pane.d.ts.map +1 -1
  143. package/dist/components/data/tab-pane.js +130 -0
  144. package/dist/components/data/table-column.d.ts +29 -5
  145. package/dist/components/data/table-column.d.ts.map +1 -1
  146. package/dist/components/data/table-column.js +123 -0
  147. package/dist/components/data/table.d.ts +134 -54
  148. package/dist/components/data/table.d.ts.map +1 -1
  149. package/dist/components/data/table.js +1210 -0
  150. package/dist/components/data/tabs.d.ts +60 -3
  151. package/dist/components/data/tabs.d.ts.map +1 -1
  152. package/dist/components/data/tabs.js +416 -0
  153. package/dist/components/data/timeline-item.js +127 -0
  154. package/dist/components/data/timeline.js +204 -0
  155. package/dist/components/data/tree-menu.d.ts +12 -2
  156. package/dist/components/data/tree-menu.d.ts.map +1 -1
  157. package/dist/components/data/tree-menu.js +482 -0
  158. package/dist/components/data/tree.js +269 -0
  159. package/dist/components/display/AGENTS.md +5 -2
  160. package/dist/components/display/animated-image.js +98 -0
  161. package/dist/components/display/brief-box.d.ts +42 -0
  162. package/dist/components/display/brief-box.d.ts.map +1 -0
  163. package/dist/components/display/brief-box.js +117 -0
  164. package/dist/components/display/carousel.js +223 -0
  165. package/dist/components/display/code-editor.d.ts.map +1 -1
  166. package/dist/components/display/code-editor.js +976 -0
  167. package/dist/components/display/comparison.js +132 -0
  168. package/dist/components/display/desc-item.d.ts +48 -0
  169. package/dist/components/display/desc-item.d.ts.map +1 -0
  170. package/dist/components/display/desc-item.js +150 -0
  171. package/dist/components/display/desc.d.ts +64 -0
  172. package/dist/components/display/desc.d.ts.map +1 -0
  173. package/dist/components/display/desc.js +363 -0
  174. package/dist/components/display/detail-box.d.ts +51 -0
  175. package/dist/components/display/detail-box.d.ts.map +1 -0
  176. package/dist/components/display/detail-box.js +157 -0
  177. package/dist/components/display/label.js +166 -0
  178. package/dist/components/display/markdown-editor.js +319 -0
  179. package/dist/components/display/markdown.d.ts.map +1 -1
  180. package/dist/components/display/markdown.js +193 -0
  181. package/dist/components/display/mini-box.d.ts +31 -0
  182. package/dist/components/display/mini-box.d.ts.map +1 -0
  183. package/dist/components/display/mini-box.js +137 -0
  184. package/dist/components/display/profile.d.ts +18 -0
  185. package/dist/components/display/profile.d.ts.map +1 -0
  186. package/dist/components/display/profile.js +164 -0
  187. package/dist/components/feedback/AGENTS.md +1 -0
  188. package/dist/components/feedback/alert.js +150 -0
  189. package/dist/components/feedback/dialog.js +228 -0
  190. package/dist/components/feedback/drawer.d.ts.map +1 -1
  191. package/dist/components/feedback/drawer.js +338 -0
  192. package/dist/components/feedback/loading.js +130 -0
  193. package/dist/components/feedback/modal.d.ts.map +1 -1
  194. package/dist/components/feedback/modal.js +303 -0
  195. package/dist/components/feedback/notification.js +170 -0
  196. package/dist/components/feedback/popover.d.ts +1 -1
  197. package/dist/components/feedback/popover.js +124 -0
  198. package/dist/components/feedback/toast.js +142 -0
  199. package/dist/components/feedback/tooltip.d.ts +1 -1
  200. package/dist/components/feedback/tooltip.js +153 -0
  201. package/dist/components/form/AGENTS.md +4 -0
  202. package/dist/components/form/autoform-item.js +761 -0
  203. package/dist/components/form/autoform.d.ts +15 -5
  204. package/dist/components/form/autoform.d.ts.map +1 -1
  205. package/dist/components/form/autoform.js +303 -0
  206. package/dist/components/form/checkbox-group.js +118 -0
  207. package/dist/components/form/checkbox.js +123 -0
  208. package/dist/components/form/color-picker.js +148 -0
  209. package/dist/components/form/combobox.d.ts.map +1 -1
  210. package/dist/components/form/combobox.js +282 -0
  211. package/dist/components/form/date-picker.js +123 -0
  212. package/dist/components/form/form-item.d.ts.map +1 -1
  213. package/dist/components/form/form-item.js +141 -0
  214. package/dist/components/form/form.js +94 -0
  215. package/dist/components/form/radio-group.js +106 -0
  216. package/dist/components/form/radio.js +110 -0
  217. package/dist/components/form/rate.js +116 -0
  218. package/dist/components/form/select.d.ts +1 -1
  219. package/dist/components/form/select.js +495 -0
  220. package/dist/components/form/slider.js +134 -0
  221. package/dist/components/form/switch.js +146 -0
  222. package/dist/components/form/time-picker.js +92 -0
  223. package/dist/components/form/transfer.js +273 -0
  224. package/dist/components/form/upload.js +138 -0
  225. package/dist/components/framework/body.js +333 -0
  226. package/dist/components/framework/dashboard-panel.js +519 -0
  227. package/dist/components/framework/dashboard.d.ts.map +1 -1
  228. package/dist/components/framework/dashboard.js +1084 -0
  229. package/dist/components/framework/header.js +237 -0
  230. package/dist/components/framework/log-panel.js +637 -0
  231. package/dist/components/framework/page.js +151 -0
  232. package/dist/components/framework/sidebar.d.ts +4 -10
  233. package/dist/components/framework/sidebar.d.ts.map +1 -1
  234. package/dist/components/framework/sidebar.js +477 -0
  235. package/dist/components/layout/affix.js +137 -0
  236. package/dist/components/layout/col.js +103 -0
  237. package/dist/components/layout/collapse-item.js +165 -0
  238. package/dist/components/layout/collapse.js +108 -0
  239. package/dist/components/layout/container.js +92 -0
  240. package/dist/components/layout/flex.js +100 -0
  241. package/dist/components/layout/row.js +103 -0
  242. package/dist/components/layout/space.js +85 -0
  243. package/dist/components/navigation/back-top.js +127 -0
  244. package/dist/components/navigation/breadcrumb-item.js +108 -0
  245. package/dist/components/navigation/breadcrumb.js +70 -0
  246. package/dist/components/navigation/menu-item.js +181 -0
  247. package/dist/components/navigation/menu.js +126 -0
  248. package/dist/components/navigation/steps.js +183 -0
  249. package/dist/components/navigation/sub-menu.js +253 -0
  250. package/dist/components/progress/progress-bar.js +97 -0
  251. package/dist/components/progress/progress-ring.js +111 -0
  252. package/dist/components/progress/skeleton.js +108 -0
  253. package/dist/components/progress/spinner.js +129 -0
  254. package/dist/components/theme/locale-switch.js +241 -0
  255. package/dist/components/theme/shadow-picker.js +233 -0
  256. package/dist/components/theme/shape-picker.js +232 -0
  257. package/dist/components/theme/theme-picker.js +236 -0
  258. package/dist/components/theme/theme-preview.d.ts +1 -2
  259. package/dist/components/theme/theme-preview.d.ts.map +1 -1
  260. package/dist/components/theme/theme-preview.js +376 -0
  261. package/dist/components/theme/theme-switch.d.ts.map +1 -1
  262. package/dist/components/theme/theme-switch.js +318 -0
  263. package/dist/components/theme/typo-picker.js +219 -0
  264. package/dist/core/AGENTS.md +6 -1
  265. package/dist/core/aithe-element.d.ts +2 -2
  266. package/dist/core/aithe-element.js +135 -0
  267. package/dist/core/aithe-widget.js +30 -0
  268. package/dist/core/anchored-overlay.d.ts +3 -0
  269. package/dist/core/anchored-overlay.d.ts.map +1 -1
  270. package/dist/core/anchored-overlay.js +111 -0
  271. package/dist/core/autoform/autoform.js +79 -0
  272. package/dist/core/autoform/condition.js +170 -0
  273. package/dist/core/autoform/index.js +8 -0
  274. package/dist/core/autoform/types.js +7 -0
  275. package/dist/core/datahub/config/strategy.d.ts +1 -1
  276. package/dist/core/datahub/config/strategy.d.ts.map +1 -1
  277. package/dist/core/datahub/config/strategy.js +50 -0
  278. package/dist/core/datahub/core/adapter/fetch-adapter.d.ts +1 -1
  279. package/dist/core/datahub/core/adapter/fetch-adapter.d.ts.map +1 -1
  280. package/dist/core/datahub/core/adapter/fetch-adapter.js +118 -0
  281. package/dist/core/datahub/core/adapter/index.js +7 -0
  282. package/dist/core/datahub/core/adapter/mock-adapter.d.ts +1 -1
  283. package/dist/core/datahub/core/adapter/mock-adapter.d.ts.map +1 -1
  284. package/dist/core/datahub/core/adapter/mock-adapter.js +58 -0
  285. package/dist/core/datahub/core/api-styles.d.ts +1 -1
  286. package/dist/core/datahub/core/api-styles.d.ts.map +1 -1
  287. package/dist/core/datahub/core/api-styles.js +131 -0
  288. package/dist/core/datahub/core/datahub-core.d.ts +3 -3
  289. package/dist/core/datahub/core/datahub-core.d.ts.map +1 -1
  290. package/dist/core/datahub/core/datahub-core.js +441 -0
  291. package/dist/core/datahub/core/index.js +7 -0
  292. package/dist/core/datahub/index.js +50 -0
  293. package/dist/core/datahub/types.d.ts +6 -0
  294. package/dist/core/datahub/types.d.ts.map +1 -1
  295. package/dist/core/datahub/types.js +31 -0
  296. package/dist/core/datahub/utils/cache.js +55 -0
  297. package/dist/core/datahub/utils/common.js +23 -0
  298. package/dist/core/datahub/utils/dedup.d.ts +1 -1
  299. package/dist/core/datahub/utils/dedup.d.ts.map +1 -1
  300. package/dist/core/datahub/utils/dedup.js +52 -0
  301. package/dist/core/datahub/utils/idempotent.js +61 -0
  302. package/dist/core/datahub/utils/is-query.js +53 -0
  303. package/dist/core/datahub/utils/loading.js +78 -0
  304. package/dist/core/filter/__tests__/index.test.d.ts +2 -0
  305. package/dist/core/filter/__tests__/index.test.d.ts.map +1 -0
  306. package/dist/core/filter/__tests__/index.test.js +230 -0
  307. package/dist/core/filter/builtins.d.ts +60 -0
  308. package/dist/core/filter/builtins.d.ts.map +1 -0
  309. package/dist/core/filter/builtins.js +172 -0
  310. package/dist/core/filter/factory.d.ts +54 -0
  311. package/dist/core/filter/factory.d.ts.map +1 -0
  312. package/dist/core/filter/factory.js +96 -0
  313. package/dist/core/filter/index.d.ts +11 -0
  314. package/dist/core/filter/index.d.ts.map +1 -0
  315. package/dist/core/filter/index.js +9 -0
  316. package/dist/core/filter/types.d.ts +12 -0
  317. package/dist/core/filter/types.d.ts.map +1 -0
  318. package/dist/core/filter/types.js +1 -0
  319. package/dist/core/floating.js +132 -0
  320. package/dist/core/highlight/index.js +43 -0
  321. package/dist/core/highlight/lang-bash.js +27 -0
  322. package/dist/core/highlight/lang-c.js +27 -0
  323. package/dist/core/highlight/lang-cmake.js +27 -0
  324. package/dist/core/highlight/lang-cpp.js +27 -0
  325. package/dist/core/highlight/lang-css.js +24 -0
  326. package/dist/core/highlight/lang-dart.js +27 -0
  327. package/dist/core/highlight/lang-dockerfile.js +16 -0
  328. package/dist/core/highlight/lang-fsharp.js +23 -0
  329. package/dist/core/highlight/lang-go.js +22 -0
  330. package/dist/core/highlight/lang-html.js +12 -0
  331. package/dist/core/highlight/lang-java.js +22 -0
  332. package/dist/core/highlight/lang-javascript.js +26 -0
  333. package/dist/core/highlight/lang-json.js +13 -0
  334. package/dist/core/highlight/lang-jsonline.js +13 -0
  335. package/dist/core/highlight/lang-jsx.js +30 -0
  336. package/dist/core/highlight/lang-kotlin.js +27 -0
  337. package/dist/core/highlight/lang-latex.js +22 -0
  338. package/dist/core/highlight/lang-lua.js +26 -0
  339. package/dist/core/highlight/lang-makefile.js +22 -0
  340. package/dist/core/highlight/lang-markdown.js +18 -0
  341. package/dist/core/highlight/lang-objectivec.js +24 -0
  342. package/dist/core/highlight/lang-perl.js +30 -0
  343. package/dist/core/highlight/lang-powershell.js +23 -0
  344. package/dist/core/highlight/lang-python.js +27 -0
  345. package/dist/core/highlight/lang-r.js +21 -0
  346. package/dist/core/highlight/lang-ruby.js +29 -0
  347. package/dist/core/highlight/lang-rust.js +24 -0
  348. package/dist/core/highlight/lang-scala.js +26 -0
  349. package/dist/core/highlight/lang-sql.js +21 -0
  350. package/dist/core/highlight/lang-svelte.js +27 -0
  351. package/dist/core/highlight/lang-swift.js +28 -0
  352. package/dist/core/highlight/lang-tsx.js +35 -0
  353. package/dist/core/highlight/lang-typescript.js +31 -0
  354. package/dist/core/highlight/lang-vue.js +29 -0
  355. package/dist/core/highlight/lang-wasm.js +22 -0
  356. package/dist/core/highlight/lang-xml.js +12 -0
  357. package/dist/core/highlight/lang-yaml.js +14 -0
  358. package/dist/core/highlight/registry.js +99 -0
  359. package/dist/core/logger/LoggerCore.js +626 -0
  360. package/dist/core/logger/index.js +10 -0
  361. package/dist/core/logger/types.js +29 -0
  362. package/dist/core/markdown/index.js +20 -0
  363. package/dist/core/markdown/parser.d.ts +2 -0
  364. package/dist/core/markdown/parser.d.ts.map +1 -1
  365. package/dist/core/markdown/parser.js +376 -0
  366. package/dist/core/markdown/plugins.js +608 -0
  367. package/dist/core/markdown/types.d.ts +5 -0
  368. package/dist/core/markdown/types.d.ts.map +1 -1
  369. package/dist/core/markdown/types.js +7 -0
  370. package/dist/core/router/index.js +244 -0
  371. package/dist/core/styles.js +44 -0
  372. package/dist/core/types.d.ts +50 -3
  373. package/dist/core/types.d.ts.map +1 -1
  374. package/dist/core/types.js +1 -0
  375. package/dist/index.d.ts +8 -0
  376. package/dist/index.d.ts.map +1 -1
  377. package/dist/index.js +2812 -1253
  378. package/dist/index.js.map +1 -1
  379. package/dist/index.umd.js +1670 -728
  380. package/dist/index.umd.js.map +1 -1
  381. package/dist/styles/aithe-ui.d.ts +23 -0
  382. package/dist/styles/aithe-ui.d.ts.map +1 -1
  383. package/dist/styles/aithe-ui.js +185 -0
  384. package/dist/styles/global.css.d.ts +1 -1
  385. package/dist/styles/global.css.d.ts.map +1 -1
  386. package/dist/styles/global.css.js +119 -0
  387. package/dist/styles/i18n/index.js +206 -0
  388. package/dist/styles/i18n/locales/de-DE.d.ts.map +1 -1
  389. package/dist/styles/i18n/locales/de-DE.js +148 -0
  390. package/dist/styles/i18n/locales/en-US.d.ts.map +1 -1
  391. package/dist/styles/i18n/locales/en-US.js +157 -0
  392. package/dist/styles/i18n/locales/es-ES.d.ts.map +1 -1
  393. package/dist/styles/i18n/locales/es-ES.js +148 -0
  394. package/dist/styles/i18n/locales/fr-FR.d.ts.map +1 -1
  395. package/dist/styles/i18n/locales/fr-FR.js +148 -0
  396. package/dist/styles/i18n/locales/index.js +14 -0
  397. package/dist/styles/i18n/locales/ja-JP.d.ts.map +1 -1
  398. package/dist/styles/i18n/locales/ja-JP.js +148 -0
  399. package/dist/styles/i18n/locales/ko-KR.d.ts.map +1 -1
  400. package/dist/styles/i18n/locales/ko-KR.js +148 -0
  401. package/dist/styles/i18n/locales/pt-BR.d.ts.map +1 -1
  402. package/dist/styles/i18n/locales/pt-BR.js +148 -0
  403. package/dist/styles/i18n/locales/zh-CN.d.ts.map +1 -1
  404. package/dist/styles/i18n/locales/zh-CN.js +157 -0
  405. package/dist/styles/i18n/locales/zh-HK.d.ts.map +1 -1
  406. package/dist/styles/i18n/locales/zh-HK.js +148 -0
  407. package/dist/styles/i18n/locales/zh-TW.d.ts.map +1 -1
  408. package/dist/styles/i18n/locales/zh-TW.js +148 -0
  409. package/dist/styles/layout/index.js +88 -0
  410. package/dist/styles/mixins.js +43 -0
  411. package/dist/styles/shadow/cyber.js +19 -0
  412. package/dist/styles/shadow/deep.js +19 -0
  413. package/dist/styles/shadow/diffuse.js +19 -0
  414. package/dist/styles/shadow/flat.js +19 -0
  415. package/dist/styles/shadow/glassmorphism.js +19 -0
  416. package/dist/styles/shadow/index.js +129 -0
  417. package/dist/styles/shadow/neumorphism.js +21 -0
  418. package/dist/styles/shadow/retro.js +19 -0
  419. package/dist/styles/shadow/sharp-business.js +19 -0
  420. package/dist/styles/shadow/skeuomorphic.js +21 -0
  421. package/dist/styles/shape/chamfer.js +19 -0
  422. package/dist/styles/shape/circle.js +19 -0
  423. package/dist/styles/shape/index.js +174 -0
  424. package/dist/styles/shape/organic.js +19 -0
  425. package/dist/styles/shape/pill.js +19 -0
  426. package/dist/styles/shape/rounded.js +21 -0
  427. package/dist/styles/shape/rounder.js +19 -0
  428. package/dist/styles/shape/sharp.js +19 -0
  429. package/dist/styles/shape/smooth.js +19 -0
  430. package/dist/styles/theme/aliyun.d.ts +1 -1
  431. package/dist/styles/theme/aliyun.d.ts.map +1 -1
  432. package/dist/styles/theme/aliyun.js +102 -0
  433. package/dist/styles/theme/amber.d.ts +1 -1
  434. package/dist/styles/theme/amber.d.ts.map +1 -1
  435. package/dist/styles/theme/amber.js +101 -0
  436. package/dist/styles/theme/blue.d.ts +1 -1
  437. package/dist/styles/theme/blue.d.ts.map +1 -1
  438. package/dist/styles/theme/blue.js +101 -0
  439. package/dist/styles/theme/charcoal.d.ts +1 -1
  440. package/dist/styles/theme/charcoal.d.ts.map +1 -1
  441. package/dist/styles/theme/charcoal.js +106 -0
  442. package/dist/styles/theme/cyan.d.ts +1 -1
  443. package/dist/styles/theme/cyan.d.ts.map +1 -1
  444. package/dist/styles/theme/cyan.js +96 -0
  445. package/dist/styles/theme/dark.d.ts +1 -1
  446. package/dist/styles/theme/dark.d.ts.map +1 -1
  447. package/dist/styles/theme/dark.js +106 -0
  448. package/dist/styles/theme/ebony.d.ts +1 -1
  449. package/dist/styles/theme/ebony.d.ts.map +1 -1
  450. package/dist/styles/theme/ebony.js +106 -0
  451. package/dist/styles/theme/festive.d.ts +1 -1
  452. package/dist/styles/theme/festive.d.ts.map +1 -1
  453. package/dist/styles/theme/festive.js +101 -0
  454. package/dist/styles/theme/graphite.d.ts +1 -1
  455. package/dist/styles/theme/graphite.d.ts.map +1 -1
  456. package/dist/styles/theme/graphite.js +106 -0
  457. package/dist/styles/theme/gray.d.ts +1 -1
  458. package/dist/styles/theme/gray.d.ts.map +1 -1
  459. package/dist/styles/theme/gray.js +101 -0
  460. package/dist/styles/theme/huawei.d.ts +1 -1
  461. package/dist/styles/theme/huawei.d.ts.map +1 -1
  462. package/dist/styles/theme/huawei.js +102 -0
  463. package/dist/styles/theme/index.d.ts +1 -1
  464. package/dist/styles/theme/index.d.ts.map +1 -1
  465. package/dist/styles/theme/index.js +276 -0
  466. package/dist/styles/theme/indigo.d.ts +1 -1
  467. package/dist/styles/theme/indigo.d.ts.map +1 -1
  468. package/dist/styles/theme/indigo.js +101 -0
  469. package/dist/styles/theme/ink.d.ts +1 -1
  470. package/dist/styles/theme/ink.d.ts.map +1 -1
  471. package/dist/styles/theme/ink.js +106 -0
  472. package/dist/styles/theme/light.d.ts +1 -1
  473. package/dist/styles/theme/light.d.ts.map +1 -1
  474. package/dist/styles/theme/light.js +102 -0
  475. package/dist/styles/theme/midnight.d.ts +1 -1
  476. package/dist/styles/theme/midnight.d.ts.map +1 -1
  477. package/dist/styles/theme/midnight.js +106 -0
  478. package/dist/styles/theme/navy.d.ts +1 -1
  479. package/dist/styles/theme/navy.d.ts.map +1 -1
  480. package/dist/styles/theme/navy.js +106 -0
  481. package/dist/styles/theme/obsidian.d.ts +1 -1
  482. package/dist/styles/theme/obsidian.d.ts.map +1 -1
  483. package/dist/styles/theme/obsidian.js +106 -0
  484. package/dist/styles/theme/onyx.d.ts +1 -1
  485. package/dist/styles/theme/onyx.d.ts.map +1 -1
  486. package/dist/styles/theme/onyx.js +106 -0
  487. package/dist/styles/theme/orange.d.ts +1 -1
  488. package/dist/styles/theme/orange.d.ts.map +1 -1
  489. package/dist/styles/theme/orange.js +101 -0
  490. package/dist/styles/theme/pink.d.ts +1 -1
  491. package/dist/styles/theme/pink.d.ts.map +1 -1
  492. package/dist/styles/theme/pink.js +101 -0
  493. package/dist/styles/theme/purple.d.ts +1 -1
  494. package/dist/styles/theme/purple.d.ts.map +1 -1
  495. package/dist/styles/theme/purple.js +101 -0
  496. package/dist/styles/theme/raisin.d.ts +1 -1
  497. package/dist/styles/theme/raisin.d.ts.map +1 -1
  498. package/dist/styles/theme/raisin.js +106 -0
  499. package/dist/styles/theme/slate.d.ts +1 -1
  500. package/dist/styles/theme/slate.d.ts.map +1 -1
  501. package/dist/styles/theme/slate.js +106 -0
  502. package/dist/styles/theme/teal.d.ts +1 -1
  503. package/dist/styles/theme/teal.d.ts.map +1 -1
  504. package/dist/styles/theme/teal.js +101 -0
  505. package/dist/styles/theme/tianyi.d.ts +1 -1
  506. package/dist/styles/theme/tianyi.d.ts.map +1 -1
  507. package/dist/styles/theme/tianyi.js +102 -0
  508. package/dist/styles/types.js +1 -0
  509. package/dist/styles/typo/business.js +34 -0
  510. package/dist/styles/typo/compact.js +34 -0
  511. package/dist/styles/typo/index.js +99 -0
  512. package/dist/styles/typo/luxury.js +34 -0
  513. package/dist/styles/typo/minimal.js +34 -0
  514. package/dist/types/index.js +2 -0
  515. package/dist/utils/dom.js +51 -0
  516. package/dist/utils/events.js +32 -0
  517. package/dist/utils/icon.js +176 -0
  518. package/dist/utils/index.js +4 -0
  519. package/dist/utils/utils.d.ts +5 -5
  520. package/dist/utils/utils.js +89 -0
  521. package/dist/utils/validation.js +52 -0
  522. package/docs/api/basic/button.md +9 -6
  523. package/docs/api/basic/tag.md +24 -17
  524. package/docs/api/data/box-table.md +73 -0
  525. package/docs/api/data/dropdown.md +3 -2
  526. package/docs/api/data/metrics.md +2 -0
  527. package/docs/api/data/table-column.md +37 -23
  528. package/docs/api/data/table.md +158 -44
  529. package/docs/api/data/tabs.md +46 -1
  530. package/docs/api/data/tree-menu.md +55 -2
  531. package/docs/api/display/box.md +66 -0
  532. package/docs/api/display/brief-box.md +73 -0
  533. package/docs/api/display/desc-item.md +57 -0
  534. package/docs/api/display/desc.md +204 -0
  535. package/docs/api/display/detail-box.md +75 -0
  536. package/docs/api/display/mini-box.md +100 -0
  537. package/docs/api/display/profile.md +92 -0
  538. package/docs/api/feedback/popover.md +10 -10
  539. package/docs/api/feedback/tooltip.md +14 -14
  540. package/docs/api/form/autoform-item.md +100 -0
  541. package/docs/api/form/autoform.md +4 -1
  542. package/docs/api/form/select.md +28 -28
  543. package/docs/api/framework/log-panel.md +46 -0
  544. package/docs/api/framework/sidebar.md +3 -2
  545. package/docs/api/summary.md +45 -35
  546. package/docs/api/theme/theme-switch.md +1 -1
  547. package/docs/autoform.md +13 -1
  548. package/docs/changelog/CHANGELOG.md +80 -0
  549. package/docs/changelog/VERSION_26.3.1.md +966 -0
  550. package/docs/datahub.md +1 -1
  551. package/docs/filter.md +332 -0
  552. package/docs/framework-integration.md +2 -2
  553. package/docs/guide.md +66 -1
  554. package/docs/i18n.md +2 -2
  555. package/docs/issue/issue_26.3.1.0.md +84 -0
  556. package/docs/issue/issue_26.3.1.1.md +72 -0
  557. package/docs/issue/issue_26.3.1.2.md +75 -0
  558. package/docs/issue/issue_26.3.1.3.md +78 -0
  559. package/docs/issue/issue_26.3.1.4.md +113 -0
  560. package/docs/issue/issue_26.3.1.5.md +142 -0
  561. package/docs/issue/issue_26.3.1.6.md +100 -0
  562. package/docs/issue/issue_26.3.1.7.md +78 -0
  563. package/docs/quickstart.md +5 -5
  564. package/package.json +5 -2
@@ -0,0 +1,363 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ /**
8
+ * @file AitheDesc — description list component / AitheDesc — 描述列表组件
9
+ * @description A description list component that displays key-value pairs in a structured table-like layout.
10
+ * Supports border mode, column count, title, extra actions, direction control, and rowspan.
11
+ * AitheDesc 描述列表组件,以结构化的类表格布局展示键值对。
12
+ * 支持边框模式、列数、标题、额外操作、方向控制和跨行合并。
13
+ *
14
+ * @slot title - Custom title content. 自定义标题内容。
15
+ * @slot extra - Extra action content in the header. 头部额外操作内容。
16
+ * @slot (default) - Description items (`<aithe-desc-item>`). 描述条目(`<aithe-desc-item>`)。
17
+ *
18
+ * @csspart header - The header container. 头部容器。
19
+ * @csspart body - The body container. 主体容器。
20
+ *
21
+ * @fires aithe-desc-click - Fired when the description list is clicked. 点击描述列表时触发。
22
+ *
23
+ * @example
24
+ * ```html
25
+ * <aithe-desc title="User Info" border>
26
+ * <aithe-desc-item label="Name">John Doe</aithe-desc-item>
27
+ * <aithe-desc-item label="Age">30</aithe-desc-item>
28
+ * <aithe-desc-item label="Email">john@example.com</aithe-desc-item>
29
+ * </aithe-desc>
30
+ * ```
31
+ */
32
+ import { css, html, nothing } from 'lit';
33
+ import { classMap } from 'lit/directives/class-map.js';
34
+ import { unsafeHTML } from 'lit/directives/unsafe-html.js';
35
+ import { customElement, property } from 'lit/decorators.js';
36
+ import { aitheBaseStyles } from '../../core/styles';
37
+ import { AitheElement } from '../../core/aithe-element';
38
+ import { filterFactory } from '../../core/filter';
39
+ let AitheDesc = class AitheDesc extends AitheElement {
40
+ constructor() {
41
+ super(...arguments);
42
+ /** Title text displayed in the header. 头部标题文本。 */
43
+ this.title = '';
44
+ /** Number of columns for the description layout. 描述布局的列数。 */
45
+ this.column = 1;
46
+ /** Whether to show border. 是否显示边框。 */
47
+ this.border = false;
48
+ /** Layout direction: horizontal (label left of content) or vertical (label above content). 布局方向:horizontal(标签在内容左侧)或 vertical(标签在内容上方)。 */
49
+ this.direction = 'horizontal';
50
+ /** Size of the description list. 描述列表的尺寸。 */
51
+ this.size = 'md';
52
+ /** Global label width for all items. 全局标签宽度。 */
53
+ this.labelWidth = '150px';
54
+ /** Whether to show the title header. When false, the header row is hidden even if title or extra slot is set. 是否显示标题头。为 false 时隐藏标题行。 */
55
+ this.showTitle = true;
56
+ /** Maximum number of visible rows. Items beyond this limit are hidden. 0 means no limit. 最大可见行数。超出部分隐藏。0 表示不限制。 */
57
+ this.maxRows = 0;
58
+ }
59
+ static { this.styles = [
60
+ aitheBaseStyles,
61
+ css `
62
+ :host {
63
+ display: block;
64
+ font-family: var(--aithe-font-family);
65
+ color: var(--aithe-color-text);
66
+ border-radius: var(--aithe-radius-md, 6px);
67
+ overflow: hidden;
68
+ }
69
+
70
+ .desc-header {
71
+ display: flex;
72
+ align-items: center;
73
+ justify-content: space-between;
74
+ padding: var(--aithe-space-3, 12px) 0;
75
+ font-size: var(--aithe-font-size-base);
76
+ font-weight: var(--aithe-font-weight-medium, 500);
77
+ }
78
+
79
+ .desc-header-title {
80
+ flex: 1;
81
+ min-width: 0;
82
+ }
83
+
84
+ .desc-header-extra {
85
+ flex-shrink: 0;
86
+ margin-left: var(--aithe-space-3, 12px);
87
+ }
88
+
89
+ .desc-body {
90
+ display: grid;
91
+ border: 1px solid var(--aithe-color-border, #e5e6eb);
92
+ border-radius: var(--aithe-radius-md, 6px);
93
+ overflow: hidden;
94
+ }
95
+
96
+ .desc-body.no-border {
97
+ border: none;
98
+ }
99
+
100
+ .desc-cell.vertical {
101
+ display: flex;
102
+ flex-direction: column;
103
+ }
104
+
105
+ .desc-cell.vertical .desc-cell-content {
106
+ flex: 1;
107
+ }
108
+
109
+ .desc-cell-label {
110
+ display: flex;
111
+ align-items: center;
112
+ font-size: var(--aithe-font-size-sm);
113
+ color: var(--aithe-color-text-secondary);
114
+ line-height: 1.5;
115
+ box-sizing: border-box;
116
+ background: var(--aithe-fill-2, #f0f1f3);
117
+ font-weight: 500;
118
+ min-width: 80px;
119
+ border-bottom: 1px solid var(--aithe-color-border, #e5e6eb);
120
+ border-right: 1px solid var(--aithe-color-border, #e5e6eb);
121
+ word-break: break-word;
122
+ overflow-wrap: break-word;
123
+ }
124
+
125
+ .desc-cell-label.no-border {
126
+ border: none;
127
+ }
128
+
129
+ .desc-cell-label.is-bordered {
130
+ background: var(--aithe-fill-2, #f0f1f3);
131
+ }
132
+
133
+ .desc-cell-content {
134
+ font-size: var(--aithe-font-size-sm);
135
+ color: var(--aithe-color-text);
136
+ padding: var(--aithe-space-2, 8px) var(--aithe-space-3, 12px);
137
+ line-height: 1.5;
138
+ min-width: 0;
139
+ box-sizing: border-box;
140
+ border-bottom: 1px solid var(--aithe-color-border, #e5e6eb);
141
+ width: 100%;
142
+ word-break: break-word;
143
+ overflow-wrap: break-word;
144
+ }
145
+
146
+ .desc-cell-content.is-bordered:hover {
147
+ background: var(--aithe-color-surface-hover);
148
+ }
149
+
150
+ .desc-cell-content.no-border {
151
+ border: none;
152
+ }
153
+
154
+ /* Vertical direction */
155
+ .desc-cell.vertical .desc-cell-label {
156
+ border-right: none;
157
+ }
158
+
159
+ /* Size variants */
160
+ :host([size='sm']) .desc-cell-label,
161
+ :host([size='sm']) .desc-cell-content {
162
+ padding: var(--aithe-space-1, 4px) var(--aithe-space-2, 8px);
163
+ font-size: var(--aithe-font-size-xs);
164
+ }
165
+
166
+ :host([size='lg']) .desc-cell-label,
167
+ :host([size='lg']) .desc-cell-content {
168
+ padding: var(--aithe-space-3, 12px) var(--aithe-space-4, 16px);
169
+ font-size: var(--aithe-font-size-base);
170
+ }
171
+ `,
172
+ ]; }
173
+ _getItems() {
174
+ return Array.from(this.children).filter((child) => child.tagName === 'AITHE-DESC-ITEM');
175
+ }
176
+ /**
177
+ * Layout items into a grid, resolving colspan and rowspan.
178
+ * Uses a 2D grid approach: place items left-to-right, top-to-bottom,
179
+ * skipping cells occupied by rowspan from previous rows.
180
+ */
181
+ _layoutCells(items) {
182
+ const column = Math.max(1, this.column);
183
+ const isVertical = this.direction === 'vertical';
184
+ const cells = [];
185
+ const gridCols = isVertical ? column : column * 2;
186
+ const occupied = new Set();
187
+ let currentRow = 0;
188
+ let currentCol = 0;
189
+ for (const item of items) {
190
+ const colspan = Math.min(Math.max(1, item.span), column);
191
+ const rowspan = Math.max(1, item.rowspan);
192
+ const gridColspan = isVertical ? colspan : colspan * 2;
193
+ [currentRow, currentCol] = this._findNextPosition(occupied, gridCols, currentRow, currentCol);
194
+ const col = currentCol;
195
+ const row = currentRow;
196
+ this._markOccupied(occupied, row, col, rowspan, gridColspan);
197
+ cells.push({ item, col, row, colspan, rowspan });
198
+ currentCol += gridColspan;
199
+ if (currentCol >= gridCols) {
200
+ currentCol = 0;
201
+ currentRow++;
202
+ }
203
+ }
204
+ return cells;
205
+ }
206
+ _findNextPosition(occupied, gridCols, row, col) {
207
+ while (occupied.has(`${row},${col}`)) {
208
+ col++;
209
+ if (col >= gridCols) {
210
+ col = 0;
211
+ row++;
212
+ }
213
+ }
214
+ return [row, col];
215
+ }
216
+ _markOccupied(occupied, row, col, rowspan, gridColspan) {
217
+ for (let r = 0; r < rowspan; r++) {
218
+ for (let c = 0; c < gridColspan; c++) {
219
+ occupied.add(`${row + r},${col + c}`);
220
+ }
221
+ }
222
+ }
223
+ _getTotalRows(cells) {
224
+ let maxRow = 0;
225
+ for (const cell of cells) {
226
+ maxRow = Math.max(maxRow, cell.row + cell.rowspan);
227
+ }
228
+ return maxRow;
229
+ }
230
+ _getItemContent(item) {
231
+ if (!item.content) {
232
+ return Array.from(item.childNodes)
233
+ .filter((n) => n.nodeType !== Node.COMMENT_NODE && !(n instanceof HTMLElement && n.hasAttribute('slot')))
234
+ .map((n) => {
235
+ if (n instanceof HTMLElement)
236
+ return n.outerHTML;
237
+ return n.textContent ?? '';
238
+ })
239
+ .join('');
240
+ }
241
+ return String(item.filter ? filterFactory.format(item.content, item.filter) : item.content);
242
+ }
243
+ render() {
244
+ const column = Math.max(1, this.column);
245
+ const isBordered = this.border;
246
+ const isVertical = this.direction === 'vertical';
247
+ const items = this._getItems();
248
+ const cells = this._layoutCells(items);
249
+ const gridTemplateColumns = isVertical
250
+ ? `repeat(${column}, 1fr)`
251
+ : `repeat(${column}, ${this.labelWidth || '150px'} 1fr)`;
252
+ // Apply maxRows: hide rows beyond the limit
253
+ const maxRowLimit = Math.max(0, this.maxRows);
254
+ const totalRows = this._getTotalRows(cells);
255
+ const cellElements = cells
256
+ .filter((cell) => maxRowLimit === 0 || cell.row < maxRowLimit)
257
+ .map((cell) => {
258
+ const item = cell.item;
259
+ const labelStyle = [
260
+ !isVertical && this.labelWidth ? `width:${this.labelWidth}` : '',
261
+ `text-align:${item.labelAlign}`,
262
+ ].filter(Boolean).join(';');
263
+ const contentStyle = [
264
+ item.width ? `width:${item.width}` : '',
265
+ item.minWidth ? `min-width:${item.minWidth}` : '',
266
+ `text-align:${item.align}`,
267
+ ].filter(Boolean).join(';');
268
+ const isLastRow = cell.row + cell.rowspan >= totalRows;
269
+ const labelClasses = classMap({
270
+ 'desc-cell-label': true,
271
+ 'no-border': !isBordered || isLastRow,
272
+ 'is-bordered': isBordered && isLastRow,
273
+ });
274
+ const contentClasses = classMap({
275
+ 'desc-cell-content': true,
276
+ 'no-border': !isBordered || isLastRow,
277
+ 'is-bordered': isBordered,
278
+ });
279
+ const contentHtml = this._getItemContent(item);
280
+ if (isVertical) {
281
+ const gridColumn = `${cell.col + 1} / span ${cell.colspan}`;
282
+ const gridRow = `${cell.row + 1} / span ${cell.rowspan}`;
283
+ return html `
284
+ <div
285
+ class="desc-cell vertical ${isBordered ? '' : 'no-border'}"
286
+ style="grid-column:${gridColumn};grid-row:${gridRow};"
287
+ part="cell"
288
+ >
289
+ <div class="${labelClasses}" part="label" style=${labelStyle || nothing}>
290
+ ${item.label}
291
+ </div>
292
+ <div class="${contentClasses}" part="content" style=${contentStyle || nothing}>
293
+ ${contentHtml ? unsafeHTML(contentHtml) : nothing}
294
+ </div>
295
+ </div>
296
+ `;
297
+ }
298
+ const labelCol = `${cell.col + 1}`;
299
+ const contentColStart = cell.col + 2;
300
+ const contentColSpan = cell.colspan * 2 - 1;
301
+ const gridRow = `${cell.row + 1} / span ${cell.rowspan}`;
302
+ return html `
303
+ <div class="${labelClasses}" part="label"
304
+ style="grid-column:${labelCol};grid-row:${gridRow};${labelStyle || ''}"
305
+ >${item.label}</div>
306
+ <div class="${contentClasses}" part="content"
307
+ style="grid-column:${contentColStart} / span ${contentColSpan};grid-row:${gridRow};${contentStyle || ''}"
308
+ >${contentHtml ? unsafeHTML(contentHtml) : nothing}</div>
309
+ `;
310
+ });
311
+ return html `
312
+ ${this.showTitle && (this.title || this.querySelector('[slot="extra"]'))
313
+ ? html `
314
+ <div class="desc-header" part="header">
315
+ <div class="desc-header-title">
316
+ <slot name="title">${this.title}</slot>
317
+ </div>
318
+ <div class="desc-header-extra">
319
+ <slot name="extra"></slot>
320
+ </div>
321
+ </div>
322
+ `
323
+ : nothing}
324
+ <div
325
+ class="desc-body ${isBordered ? '' : 'no-border'}"
326
+ part="body"
327
+ style="grid-template-columns:${gridTemplateColumns};"
328
+ @slotchange=${() => this.requestUpdate()}
329
+ >
330
+ ${cellElements}
331
+ </div>
332
+ <slot style="display:none;" @slotchange=${() => this.requestUpdate()}></slot>
333
+ `;
334
+ }
335
+ };
336
+ __decorate([
337
+ property({ type: String })
338
+ ], AitheDesc.prototype, "title", void 0);
339
+ __decorate([
340
+ property({ type: Number })
341
+ ], AitheDesc.prototype, "column", void 0);
342
+ __decorate([
343
+ property({ type: Boolean })
344
+ ], AitheDesc.prototype, "border", void 0);
345
+ __decorate([
346
+ property({ type: String })
347
+ ], AitheDesc.prototype, "direction", void 0);
348
+ __decorate([
349
+ property({ type: String })
350
+ ], AitheDesc.prototype, "size", void 0);
351
+ __decorate([
352
+ property({ attribute: 'label-width', type: String })
353
+ ], AitheDesc.prototype, "labelWidth", void 0);
354
+ __decorate([
355
+ property({ attribute: 'show-title', type: Boolean })
356
+ ], AitheDesc.prototype, "showTitle", void 0);
357
+ __decorate([
358
+ property({ attribute: 'max-rows', type: Number })
359
+ ], AitheDesc.prototype, "maxRows", void 0);
360
+ AitheDesc = __decorate([
361
+ customElement('aithe-desc')
362
+ ], AitheDesc);
363
+ export { AitheDesc };
@@ -0,0 +1,51 @@
1
+ /**
2
+ * @file AitheDetailBox — detail card display / AitheDetailBox — 详情卡片展示
3
+ * @description AitheDetailBox renders a card with name, tags, status, content
4
+ * and actions at the bottom with a separator.
5
+ * AitheDetailBox 渲染卡片:上方 name/tags/status/content,底部 actions(有分割线)。
6
+ *
7
+ * @slot name - Primary label / title region. 主标签/标题区域。
8
+ * @slot tags - Tags region. 标签区域。
9
+ * @slot status - Status indicator region. 状态指示器区域。
10
+ * @slot actions - Action buttons region at the bottom. 底部操作按钮区域。
11
+ * @slot content - Content region. 内容区域。
12
+ * @slot - Default slot, rendered inside the content region. 默认插槽,渲染在内容区域内。
13
+ *
14
+ * @csspart select - The select region container. 选择区域容器。
15
+ * @csspart name - The name region container. 名称区域容器。
16
+ * @csspart tags - The tags region container. 标签区域容器。
17
+ * @csspart status - The status region container. 状态区域容器。
18
+ * @csspart actions - The actions region container. 操作区域容器。
19
+ * @csspart content - The content region container. 内容区域容器。
20
+ *
21
+ * @fires aithe-box-click - Fired when the box is clicked. 点击 box 时触发。
22
+ * @fires aithe-selected-change - Fired when selected changes via checkbox. selected 变化时触发。
23
+ *
24
+ * @example
25
+ * ```html
26
+ * <aithe-detail-box selectable>
27
+ * <aithe-profile slot="name" title="Project Alpha" desc="Frontend application" icon="(class)app"></aithe-profile>
28
+ * <span slot="tags"><aithe-tag>frontend</aithe-tag></span>
29
+ * <span slot="status">Active</span>
30
+ * <span slot="actions"><aithe-button size="sm">Edit</aithe-button></span>
31
+ * <span slot="content">Detailed description goes here.</span>
32
+ * </aithe-detail-box>
33
+ * ```
34
+ */
35
+ import { type TemplateResult } from 'lit';
36
+ import { AitheMiniBox } from './mini-box';
37
+ export declare class AitheDetailBox extends AitheMiniBox {
38
+ private _hasContent;
39
+ private _hasActions;
40
+ private _checkSlot;
41
+ firstUpdated(): void;
42
+ private _onSlotChange;
43
+ static readonly styles: (import("lit").CSSResult | import("lit").CSSResult[])[];
44
+ render(): TemplateResult;
45
+ }
46
+ declare global {
47
+ interface HTMLElementTagNameMap {
48
+ 'aithe-detail-box': AitheDetailBox;
49
+ }
50
+ }
51
+ //# sourceMappingURL=detail-box.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detail-box.d.ts","sourceRoot":"","sources":["../../../src/components/display/detail-box.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,OAAO,EAAa,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAGrD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,qBACa,cAAe,SAAQ,YAAY;IACrC,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,WAAW,CAAS;IAErC,OAAO,CAAC,UAAU;IAQT,YAAY,IAAI,IAAI;IAK7B,OAAO,CAAC,aAAa;IAIrB,gBAAyB,MAAM,0DA0D7B;IAEO,MAAM,IAAI,cAAc;CAwBlC;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,kBAAkB,EAAE,cAAc,CAAC;KACpC;CACF"}
@@ -0,0 +1,157 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ /**
8
+ * @file AitheDetailBox — detail card display / AitheDetailBox — 详情卡片展示
9
+ * @description AitheDetailBox renders a card with name, tags, status, content
10
+ * and actions at the bottom with a separator.
11
+ * AitheDetailBox 渲染卡片:上方 name/tags/status/content,底部 actions(有分割线)。
12
+ *
13
+ * @slot name - Primary label / title region. 主标签/标题区域。
14
+ * @slot tags - Tags region. 标签区域。
15
+ * @slot status - Status indicator region. 状态指示器区域。
16
+ * @slot actions - Action buttons region at the bottom. 底部操作按钮区域。
17
+ * @slot content - Content region. 内容区域。
18
+ * @slot - Default slot, rendered inside the content region. 默认插槽,渲染在内容区域内。
19
+ *
20
+ * @csspart select - The select region container. 选择区域容器。
21
+ * @csspart name - The name region container. 名称区域容器。
22
+ * @csspart tags - The tags region container. 标签区域容器。
23
+ * @csspart status - The status region container. 状态区域容器。
24
+ * @csspart actions - The actions region container. 操作区域容器。
25
+ * @csspart content - The content region container. 内容区域容器。
26
+ *
27
+ * @fires aithe-box-click - Fired when the box is clicked. 点击 box 时触发。
28
+ * @fires aithe-selected-change - Fired when selected changes via checkbox. selected 变化时触发。
29
+ *
30
+ * @example
31
+ * ```html
32
+ * <aithe-detail-box selectable>
33
+ * <aithe-profile slot="name" title="Project Alpha" desc="Frontend application" icon="(class)app"></aithe-profile>
34
+ * <span slot="tags"><aithe-tag>frontend</aithe-tag></span>
35
+ * <span slot="status">Active</span>
36
+ * <span slot="actions"><aithe-button size="sm">Edit</aithe-button></span>
37
+ * <span slot="content">Detailed description goes here.</span>
38
+ * </aithe-detail-box>
39
+ * ```
40
+ */
41
+ import { css, html } from 'lit';
42
+ import { customElement, state } from 'lit/decorators.js';
43
+ import { AitheMiniBox } from './mini-box';
44
+ let AitheDetailBox = class AitheDetailBox extends AitheMiniBox {
45
+ constructor() {
46
+ super(...arguments);
47
+ this._hasContent = false;
48
+ this._hasActions = false;
49
+ }
50
+ _checkSlot(name) {
51
+ const slot = this.renderRoot.querySelector(`slot[name="${name}"]`);
52
+ if (!slot)
53
+ return false;
54
+ return slot.assignedNodes().some((n) => n.nodeType !== Node.TEXT_NODE || (n.textContent ?? '').trim().length > 0);
55
+ }
56
+ firstUpdated() {
57
+ this._hasContent = this._checkSlot('content');
58
+ this._hasActions = this._checkSlot('actions');
59
+ }
60
+ _onSlotChange() {
61
+ this._hasContent = this._checkSlot('content');
62
+ this._hasActions = this._checkSlot('actions');
63
+ }
64
+ static { this.styles = [
65
+ ...AitheMiniBox.styles,
66
+ css `
67
+ .box-inner {
68
+ align-items: stretch;
69
+ }
70
+
71
+ .detail-body {
72
+ flex: 1;
73
+ min-width: 0;
74
+ display: flex;
75
+ flex-direction: column;
76
+ gap: var(--aithe-space-2, 8px);
77
+ padding: var(--aithe-space-1, 4px) 0;
78
+ }
79
+
80
+ .detail-top {
81
+ display: flex;
82
+ flex-direction: row;
83
+ align-items: center;
84
+ gap: var(--aithe-space-2, 8px);
85
+ }
86
+
87
+ .detail-status {
88
+ margin-left: auto;
89
+ flex-shrink: 0;
90
+ }
91
+
92
+ .detail-tags {
93
+ display: flex;
94
+ gap: var(--aithe-space-1, 4px);
95
+ overflow: hidden;
96
+ flex-wrap: nowrap;
97
+ }
98
+
99
+ .detail-content {
100
+ font-size: var(--aithe-font-size-sm);
101
+ color: var(--aithe-color-text-secondary);
102
+ word-break: break-word;
103
+ }
104
+
105
+ .detail-content[hidden] {
106
+ display: none;
107
+ }
108
+
109
+ .detail-actions {
110
+ display: flex;
111
+ align-items: center;
112
+ gap: var(--aithe-space-2, 8px);
113
+ flex-wrap: wrap;
114
+ padding-top: var(--aithe-space-2, 8px);
115
+ border-top: 1px solid var(--aithe-color-border);
116
+ }
117
+
118
+ .detail-actions[hidden] {
119
+ display: none;
120
+ }
121
+ `,
122
+ ]; }
123
+ render() {
124
+ return html `
125
+ <div class="box-inner" @click=${this.handleBoxClick}>
126
+ ${this.renderCheckbox()}
127
+ <div class="detail-body">
128
+ <div class="detail-top">
129
+ <slot name="name"></slot>
130
+ <div class="detail-status" part="status">
131
+ <slot name="status"></slot>
132
+ </div>
133
+ </div>
134
+ <div class="detail-tags">
135
+ <slot name="tags"></slot>
136
+ </div>
137
+ <div class="detail-content" part="content" ?hidden=${!this._hasContent}>
138
+ <slot name="content" @slotchange=${this._onSlotChange}></slot>
139
+ </div>
140
+ <div class="detail-actions" part="actions" ?hidden=${!this._hasActions}>
141
+ <slot name="actions" @slotchange=${this._onSlotChange}></slot>
142
+ </div>
143
+ </div>
144
+ </div>
145
+ `;
146
+ }
147
+ };
148
+ __decorate([
149
+ state()
150
+ ], AitheDetailBox.prototype, "_hasContent", void 0);
151
+ __decorate([
152
+ state()
153
+ ], AitheDetailBox.prototype, "_hasActions", void 0);
154
+ AitheDetailBox = __decorate([
155
+ customElement('aithe-detail-box')
156
+ ], AitheDetailBox);
157
+ export { AitheDetailBox };