@icen.ai/ui 0.8.1 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (335) hide show
  1. package/AGENTS.md +176 -75
  2. package/README.md +66 -88
  3. package/dist/base.css +208 -179
  4. package/dist/behaviors/accordion.mjs +8 -8
  5. package/dist/behaviors/ai-branch.d.mts +19 -0
  6. package/dist/behaviors/ai-branch.mjs +1133 -0
  7. package/dist/behaviors/ai-chat.d.mts +12 -10
  8. package/dist/behaviors/ai-chat.mjs +1125 -155
  9. package/dist/behaviors/ai-composer.d.mts +44 -12
  10. package/dist/behaviors/ai-composer.mjs +2084 -523
  11. package/dist/behaviors/ai-core.d.mts +1 -1
  12. package/dist/behaviors/ai-core.mjs +1016 -107
  13. package/dist/behaviors/ai-diff.mjs +1019 -127
  14. package/dist/behaviors/ai-feedback.d.mts +26 -0
  15. package/dist/behaviors/ai-feedback.mjs +1212 -0
  16. package/dist/behaviors/ai-panel.d.mts +21 -7
  17. package/dist/behaviors/ai-panel.mjs +1308 -264
  18. package/dist/behaviors/ai-provider.mjs +1003 -101
  19. package/dist/behaviors/ai-threads.d.mts +38 -0
  20. package/dist/behaviors/ai-threads.mjs +1233 -0
  21. package/dist/behaviors/ai-tool.d.mts +2 -2
  22. package/dist/behaviors/ai-tool.mjs +2042 -396
  23. package/dist/behaviors/ai-tools.d.mts +89 -16
  24. package/dist/behaviors/ai-tools.mjs +4453 -372
  25. package/dist/behaviors/autocomplete.d.mts +53 -0
  26. package/dist/behaviors/autocomplete.mjs +1600 -0
  27. package/dist/behaviors/back-top.d.mts +1 -1
  28. package/dist/behaviors/back-top.mjs +951 -14
  29. package/dist/behaviors/carousel.d.mts +1 -1
  30. package/dist/behaviors/carousel.mjs +906 -11
  31. package/dist/behaviors/cascader.d.mts +48 -0
  32. package/dist/behaviors/cascader.mjs +1853 -0
  33. package/dist/behaviors/charts.d.mts +174 -8
  34. package/dist/behaviors/charts.mjs +2632 -192
  35. package/dist/behaviors/code-block.d.mts +36 -0
  36. package/dist/behaviors/code-block.mjs +1611 -0
  37. package/dist/behaviors/command-palette.d.mts +9 -6
  38. package/dist/behaviors/command-palette.mjs +161 -59
  39. package/dist/behaviors/context-menu.d.mts +9 -8
  40. package/dist/behaviors/context-menu.mjs +1112 -44
  41. package/dist/behaviors/controls.d.mts +13 -13
  42. package/dist/behaviors/controls.mjs +989 -130
  43. package/dist/behaviors/copy.d.mts +21 -2
  44. package/dist/behaviors/copy.mjs +1206 -42
  45. package/dist/behaviors/datatable.d.mts +53 -3
  46. package/dist/behaviors/datatable.mjs +1963 -207
  47. package/dist/behaviors/date-picker.d.mts +0 -1
  48. package/dist/behaviors/date-picker.mjs +1340 -293
  49. package/dist/behaviors/design.d.mts +54 -0
  50. package/dist/behaviors/design.mjs +109 -0
  51. package/dist/behaviors/dropdown.d.mts +5 -6
  52. package/dist/behaviors/dropdown.mjs +262 -110
  53. package/dist/behaviors/events.d.mts +313 -3
  54. package/dist/behaviors/events.mjs +47 -2
  55. package/dist/behaviors/feedback.d.mts +30 -0
  56. package/dist/behaviors/feedback.mjs +296 -0
  57. package/dist/behaviors/focus.d.mts +8 -0
  58. package/dist/behaviors/focus.mjs +24 -0
  59. package/dist/behaviors/form-validate.d.mts +102 -0
  60. package/dist/behaviors/form-validate.mjs +6091 -0
  61. package/dist/behaviors/i18n.d.mts +789 -0
  62. package/dist/behaviors/i18n.mjs +1711 -0
  63. package/dist/behaviors/icons.d.mts +93 -0
  64. package/dist/behaviors/icons.mjs +113 -0
  65. package/dist/behaviors/input.d.mts +9 -1
  66. package/dist/behaviors/input.mjs +1056 -60
  67. package/dist/behaviors/kb-access.d.mts +34 -0
  68. package/dist/behaviors/kb-access.mjs +2459 -0
  69. package/dist/behaviors/kb-acl.d.mts +50 -0
  70. package/dist/behaviors/kb-acl.mjs +1345 -0
  71. package/dist/behaviors/kb-answer.d.mts +38 -0
  72. package/dist/behaviors/kb-answer.mjs +3707 -0
  73. package/dist/behaviors/kb-audit.d.mts +23 -0
  74. package/dist/behaviors/kb-audit.mjs +1297 -0
  75. package/dist/behaviors/kb-canvas.d.mts +44 -0
  76. package/dist/behaviors/kb-canvas.mjs +1512 -0
  77. package/dist/behaviors/kb-chain.d.mts +15 -0
  78. package/dist/behaviors/kb-chain.mjs +1192 -0
  79. package/dist/behaviors/kb-checkpoint.d.mts +16 -0
  80. package/dist/behaviors/kb-checkpoint.mjs +1492 -0
  81. package/dist/behaviors/kb-chunks.d.mts +31 -0
  82. package/dist/behaviors/kb-chunks.mjs +1414 -0
  83. package/dist/behaviors/kb-citation.d.mts +38 -0
  84. package/dist/behaviors/kb-citation.mjs +1699 -0
  85. package/dist/behaviors/kb-clarify.d.mts +20 -0
  86. package/dist/behaviors/kb-clarify.mjs +1176 -0
  87. package/dist/behaviors/kb-conflict.d.mts +22 -0
  88. package/dist/behaviors/kb-conflict.mjs +1206 -0
  89. package/dist/behaviors/kb-connector.d.mts +17 -0
  90. package/dist/behaviors/kb-connector.mjs +1303 -0
  91. package/dist/behaviors/kb-core.d.mts +534 -0
  92. package/dist/behaviors/kb-core.mjs +1805 -0
  93. package/dist/behaviors/kb-eval.d.mts +22 -0
  94. package/dist/behaviors/kb-eval.mjs +2235 -0
  95. package/dist/behaviors/kb-explain.d.mts +11 -0
  96. package/dist/behaviors/kb-explain.mjs +1165 -0
  97. package/dist/behaviors/kb-filter.d.mts +31 -0
  98. package/dist/behaviors/kb-filter.mjs +2417 -0
  99. package/dist/behaviors/kb-gap.d.mts +27 -0
  100. package/dist/behaviors/kb-gap.mjs +1195 -0
  101. package/dist/behaviors/kb-hittest.d.mts +34 -0
  102. package/dist/behaviors/kb-hittest.mjs +1352 -0
  103. package/dist/behaviors/kb-metadata.d.mts +29 -0
  104. package/dist/behaviors/kb-metadata.mjs +1248 -0
  105. package/dist/behaviors/kb-passage.d.mts +41 -0
  106. package/dist/behaviors/kb-passage.mjs +1469 -0
  107. package/dist/behaviors/kb-pipeline.d.mts +18 -0
  108. package/dist/behaviors/kb-pipeline.mjs +1301 -0
  109. package/dist/behaviors/kb-qa.d.mts +26 -0
  110. package/dist/behaviors/kb-qa.mjs +1260 -0
  111. package/dist/behaviors/kb-rerank.d.mts +20 -0
  112. package/dist/behaviors/kb-rerank.mjs +1248 -0
  113. package/dist/behaviors/kb-retrieval.d.mts +49 -0
  114. package/dist/behaviors/kb-retrieval.mjs +2585 -0
  115. package/dist/behaviors/kb-review.d.mts +44 -0
  116. package/dist/behaviors/kb-review.mjs +2282 -0
  117. package/dist/behaviors/kb-sandbox.d.mts +33 -0
  118. package/dist/behaviors/kb-sandbox.mjs +1247 -0
  119. package/dist/behaviors/kb-segment.d.mts +32 -0
  120. package/dist/behaviors/kb-segment.mjs +1431 -0
  121. package/dist/behaviors/kb-select.d.mts +24 -0
  122. package/dist/behaviors/kb-select.mjs +1989 -0
  123. package/dist/behaviors/kb-sources.d.mts +27 -0
  124. package/dist/behaviors/kb-sources.mjs +1287 -0
  125. package/dist/behaviors/kb-sql.d.mts +43 -0
  126. package/dist/behaviors/kb-sql.mjs +1865 -0
  127. package/dist/behaviors/kb-trace.d.mts +16 -0
  128. package/dist/behaviors/kb-trace.mjs +1328 -0
  129. package/dist/behaviors/kb-visibility.d.mts +44 -0
  130. package/dist/behaviors/kb-visibility.mjs +1331 -0
  131. package/dist/behaviors/kb-who-can.d.mts +32 -0
  132. package/dist/behaviors/kb-who-can.mjs +2216 -0
  133. package/dist/behaviors/mentions.d.mts +93 -0
  134. package/dist/behaviors/mentions.mjs +2152 -0
  135. package/dist/behaviors/modal.d.mts +4 -3
  136. package/dist/behaviors/modal.mjs +1055 -33
  137. package/dist/behaviors/nav.d.mts +1 -1
  138. package/dist/behaviors/nav.mjs +6 -6
  139. package/dist/behaviors/notification.d.mts +16 -8
  140. package/dist/behaviors/notification.mjs +1615 -265
  141. package/dist/behaviors/panel.d.mts +4 -0
  142. package/dist/behaviors/panel.mjs +994 -0
  143. package/dist/behaviors/popover.d.mts +28 -5
  144. package/dist/behaviors/popover.mjs +225 -24
  145. package/dist/behaviors/select.d.mts +5 -2
  146. package/dist/behaviors/select.mjs +1410 -117
  147. package/dist/behaviors/sidebar.d.mts +1 -1
  148. package/dist/behaviors/sidebar.mjs +13 -13
  149. package/dist/behaviors/slider.d.mts +1 -1
  150. package/dist/behaviors/slider.mjs +9 -9
  151. package/dist/behaviors/split-pane.d.mts +1 -1
  152. package/dist/behaviors/split-pane.mjs +7 -7
  153. package/dist/behaviors/suggestions.d.mts +27 -0
  154. package/dist/behaviors/suggestions.mjs +1089 -0
  155. package/dist/behaviors/svg-parse.d.mts +14 -0
  156. package/dist/behaviors/svg-parse.mjs +37 -0
  157. package/dist/behaviors/tabs.d.mts +2 -2
  158. package/dist/behaviors/tabs.mjs +25 -25
  159. package/dist/behaviors/tag-input.d.mts +23 -5
  160. package/dist/behaviors/tag-input.mjs +1359 -104
  161. package/dist/behaviors/theme-switcher.d.mts +24 -0
  162. package/dist/behaviors/theme-switcher.mjs +1981 -0
  163. package/dist/behaviors/theme.d.mts +15 -8
  164. package/dist/behaviors/theme.mjs +390 -28
  165. package/dist/behaviors/toast.d.mts +24 -25
  166. package/dist/behaviors/toast.mjs +1266 -88
  167. package/dist/behaviors/tooltip.d.mts +4 -0
  168. package/dist/behaviors/tooltip.mjs +378 -0
  169. package/dist/behaviors/tree-select.d.mts +69 -0
  170. package/dist/behaviors/tree-select.mjs +1907 -0
  171. package/dist/behaviors/tree.d.mts +1 -1
  172. package/dist/behaviors/tree.mjs +15 -15
  173. package/dist/behaviors/upload.d.mts +3 -2
  174. package/dist/behaviors/upload.mjs +1076 -66
  175. package/dist/cli.mjs +5 -6
  176. package/dist/components/ai-branch.mjs +3 -0
  177. package/dist/components/ai-chat.css +846 -458
  178. package/dist/components/ai-diff.css +153 -132
  179. package/dist/components/ai-feedback.mjs +3 -0
  180. package/dist/components/ai-panel.css +495 -270
  181. package/dist/components/ai-threads.mjs +3 -0
  182. package/dist/components/ai-tool.css +393 -238
  183. package/dist/components/autocomplete.css +61 -0
  184. package/dist/components/autocomplete.mjs +3 -0
  185. package/dist/components/back-top.css +34 -31
  186. package/dist/components/badge.css +44 -41
  187. package/dist/components/breadcrumb.css +67 -46
  188. package/dist/components/btn.css +80 -74
  189. package/dist/components/card.css +117 -106
  190. package/dist/components/cascader.css +311 -0
  191. package/dist/components/cascader.mjs +3 -0
  192. package/dist/components/chart-area.css +8 -2
  193. package/dist/components/chart-bar.css +95 -33
  194. package/dist/components/chart-gauge.css +14 -11
  195. package/dist/components/chart-graph.css +60 -0
  196. package/dist/components/chart-graph.mjs +4 -0
  197. package/dist/components/chart-heatmap.css +96 -90
  198. package/dist/components/chart-line.css +8 -3
  199. package/dist/components/chart-map.mjs +3 -0
  200. package/dist/components/chart-pie.css +9 -6
  201. package/dist/components/chart-radar.css +8 -5
  202. package/dist/components/chart-scatter.css +9 -6
  203. package/dist/components/chart-scatter.mjs +1 -1
  204. package/dist/components/chart-sparkline.css +5 -2
  205. package/dist/components/chart-stack.css +14 -11
  206. package/dist/components/charts.css +190 -67
  207. package/dist/components/charts.mjs +1 -0
  208. package/dist/components/code-block.css +418 -0
  209. package/dist/components/code-block.mjs +4 -0
  210. package/dist/components/command-palette.css +138 -117
  211. package/dist/components/content.css +257 -251
  212. package/dist/components/copy.css +72 -44
  213. package/dist/components/datatable.css +423 -181
  214. package/dist/components/date-picker.css +135 -104
  215. package/dist/components/empty.css +68 -65
  216. package/dist/components/feedback.css +201 -183
  217. package/dist/components/form-validate.css +120 -0
  218. package/dist/components/form-validate.mjs +3 -0
  219. package/dist/components/form.css +150 -127
  220. package/dist/components/icon.css +102 -0
  221. package/dist/components/icon.mjs +3 -0
  222. package/dist/components/input.css +159 -104
  223. package/dist/components/kb-access.mjs +4 -0
  224. package/dist/components/kb-acl.mjs +4 -0
  225. package/dist/components/kb-agent.css +496 -0
  226. package/dist/components/kb-answer.mjs +4 -0
  227. package/dist/components/kb-audit.mjs +4 -0
  228. package/dist/components/kb-canvas.mjs +4 -0
  229. package/dist/components/kb-chain.mjs +4 -0
  230. package/dist/components/kb-checkpoint.mjs +4 -0
  231. package/dist/components/kb-chunks.mjs +4 -0
  232. package/dist/components/kb-citation.mjs +4 -0
  233. package/dist/components/kb-clarify.mjs +4 -0
  234. package/dist/components/kb-conflict.mjs +4 -0
  235. package/dist/components/kb-connector.mjs +4 -0
  236. package/dist/components/kb-data.css +653 -0
  237. package/dist/components/kb-eval.mjs +4 -0
  238. package/dist/components/kb-explain.mjs +4 -0
  239. package/dist/components/kb-filter.mjs +4 -0
  240. package/dist/components/kb-gap.mjs +4 -0
  241. package/dist/components/kb-ground.css +578 -0
  242. package/dist/components/kb-hittest.mjs +4 -0
  243. package/dist/components/kb-ingest.css +882 -0
  244. package/dist/components/kb-metadata.mjs +4 -0
  245. package/dist/components/kb-ops.css +554 -0
  246. package/dist/components/kb-passage.mjs +4 -0
  247. package/dist/components/kb-perm.css +433 -0
  248. package/dist/components/kb-pipeline.mjs +4 -0
  249. package/dist/components/kb-qa.mjs +4 -0
  250. package/dist/components/kb-rerank.mjs +4 -0
  251. package/dist/components/kb-retrieval.mjs +4 -0
  252. package/dist/components/kb-review.mjs +4 -0
  253. package/dist/components/kb-sandbox.mjs +4 -0
  254. package/dist/components/kb-search.css +897 -0
  255. package/dist/components/kb-segment.mjs +4 -0
  256. package/dist/components/kb-sources.mjs +4 -0
  257. package/dist/components/kb-sql.mjs +4 -0
  258. package/dist/components/kb-trace.mjs +4 -0
  259. package/dist/components/kb-visibility.mjs +4 -0
  260. package/dist/components/kb-who-can.mjs +4 -0
  261. package/dist/components/kb.css +263 -0
  262. package/dist/components/kb.mjs +9 -0
  263. package/dist/components/layout.css +85 -82
  264. package/dist/components/material-chinese.css +73 -0
  265. package/dist/components/material-soviet.css +76 -0
  266. package/dist/components/material.css +275 -0
  267. package/dist/components/media.css +220 -166
  268. package/dist/components/mentions.css +189 -0
  269. package/dist/components/mentions.mjs +3 -0
  270. package/dist/components/menu.css +113 -105
  271. package/dist/components/modal.css +107 -112
  272. package/dist/components/nav.css +118 -115
  273. package/dist/components/notification.css +238 -174
  274. package/dist/components/pagination.css +56 -53
  275. package/dist/components/panel.css +66 -63
  276. package/dist/components/panel.mjs +1 -0
  277. package/dist/components/pill.css +81 -71
  278. package/dist/components/popover.css +67 -53
  279. package/dist/components/scroll-area.css +113 -110
  280. package/dist/components/segmented.css +146 -143
  281. package/dist/components/select.css +206 -186
  282. package/dist/components/sidebar.css +137 -127
  283. package/dist/components/slider.css +117 -114
  284. package/dist/components/split-pane.css +112 -109
  285. package/dist/components/stat.css +112 -106
  286. package/dist/components/steps.css +109 -103
  287. package/dist/components/switch.css +138 -134
  288. package/dist/components/table.css +131 -107
  289. package/dist/components/tabs.css +114 -108
  290. package/dist/components/tag-input.css +48 -133
  291. package/dist/components/tag.css +81 -71
  292. package/dist/components/theme-switcher.css +105 -0
  293. package/dist/components/theme-switcher.mjs +3 -0
  294. package/dist/components/toast.css +100 -86
  295. package/dist/components/toolbar.css +45 -42
  296. package/dist/components/tooltip.css +102 -43
  297. package/dist/components/tooltip.mjs +1 -0
  298. package/dist/components/tree-select.css +416 -0
  299. package/dist/components/tree-select.mjs +3 -0
  300. package/dist/components/upload.css +135 -92
  301. package/dist/fonts/LICENSES/ark-pixel/OFL.txt +96 -0
  302. package/dist/fonts/LICENSES/cubic-11/OFL.txt +108 -0
  303. package/dist/fonts/LICENSES/galmuri/LICENSE.txt +93 -0
  304. package/dist/fonts/OFL.txt +96 -0
  305. package/dist/fonts/README.md +14 -0
  306. package/dist/fonts/fusion-pixel-12px-zh-hans.woff2 +0 -0
  307. package/dist/index.d.mts +64 -15
  308. package/dist/index.mjs +28049 -8595
  309. package/dist/react.d.mts +91 -0
  310. package/dist/react.mjs +8208 -0
  311. package/dist/registry.json +454 -15
  312. package/dist/tokens/chinese.css +44 -0
  313. package/dist/tokens/colors.css +365 -1222
  314. package/dist/tokens/design.css +109 -0
  315. package/dist/tokens/dtcg.json +11198 -0
  316. package/dist/tokens/figma.variables.json +7017 -0
  317. package/dist/tokens/icon-masks.css +78 -0
  318. package/dist/tokens/pixel.css +50 -0
  319. package/dist/tokens/soviet.css +44 -0
  320. package/dist/tokens/style-profiles.css +36 -547
  321. package/dist/tokens/themes.json +308 -0
  322. package/dist/tokens/tokens-studio.json +6728 -0
  323. package/dist/tokens/typography.css +21 -18
  324. package/dist/tokens.css +1555 -1801
  325. package/dist/ui.css +16147 -8597
  326. package/dist/vue.d.mts +344 -0
  327. package/dist/vue.mjs +7781 -0
  328. package/docs/spec/ai-input-experience.md +75 -0
  329. package/docs/spec/ai-native.md +238 -147
  330. package/docs/spec/design-philosophy.md +189 -0
  331. package/docs/spec/design-primitives.md +196 -0
  332. package/docs/spec/kb-family.md +475 -0
  333. package/package.json +42 -7
  334. package/dist/retro-effects.css +0 -255
  335. package/dist/tokens/retro-effects.css +0 -255
@@ -1,5 +1,5 @@
1
1
  /**
2
- * 为 root 下每个 .sidebar 初始化(root 自身是 .sidebar 也算)。
2
+ * 为 root 下每个 .icen-sidebar 初始化(root 自身是 .icen-sidebar 也算)。
3
3
  * 返回销毁函数:移除本次挂上的容器监听并复位幂等标记(销毁后可重新 init)。SSR 下返回 no-op。
4
4
  */
5
5
  declare function initSidebar(root?: ParentNode): () => void;
@@ -10,33 +10,33 @@ function setup(sidebar) {
10
10
  const el = sidebar;
11
11
  if (el.__icenSidebarInit) return void 0;
12
12
  el.__icenSidebarInit = true;
13
- sidebar.querySelectorAll(".sidebar-group-title").forEach((title) => {
14
- const group = title.closest(".sidebar-group");
15
- const panel = group?.querySelector(".sidebar-group-panel");
13
+ sidebar.querySelectorAll(".icen-sidebar-group-title").forEach((title) => {
14
+ const group = title.closest(".icen-sidebar-group");
15
+ const panel = group?.querySelector(".icen-sidebar-group-panel");
16
16
  if (panel && !title.hasAttribute("aria-controls")) {
17
17
  if (!panel.id) panel.id = `sb-panel-${Math.random().toString(36).slice(2, 9)}`;
18
18
  title.setAttribute("aria-controls", panel.id);
19
19
  }
20
20
  });
21
- sidebar.querySelectorAll("[data-sidebar-collapse]").forEach((btn) => {
21
+ sidebar.querySelectorAll("[data-icen-sidebar-collapse]").forEach((btn) => {
22
22
  if (!btn.hasAttribute("aria-expanded")) {
23
- btn.setAttribute("aria-expanded", String(!sidebar.classList.contains("sidebar--collapsed")));
23
+ btn.setAttribute("aria-expanded", String(!sidebar.classList.contains("icen-sidebar--collapsed")));
24
24
  }
25
25
  });
26
26
  const onClick = (ev) => {
27
27
  const target = ev.target;
28
28
  if (!(target instanceof Element)) return;
29
- const collapseBtn = target.closest("[data-sidebar-collapse]");
30
- if (collapseBtn && collapseBtn.closest(".sidebar") === el) {
31
- const collapsed = el.classList.toggle("sidebar--collapsed");
29
+ const collapseBtn = target.closest("[data-icen-sidebar-collapse]");
30
+ if (collapseBtn && collapseBtn.closest(".icen-sidebar") === el) {
31
+ const collapsed = el.classList.toggle("icen-sidebar--collapsed");
32
32
  collapseBtn.setAttribute("aria-expanded", String(!collapsed));
33
33
  emitIcen(el, "icen:sidebar-collapse", { collapsed });
34
34
  return;
35
35
  }
36
- const title = target.closest(".sidebar-group-title");
36
+ const title = target.closest(".icen-sidebar-group-title");
37
37
  if (!(title instanceof HTMLElement)) return;
38
- if (title.closest(".sidebar") !== el) return;
39
- const group = title.closest(".sidebar-group");
38
+ if (title.closest(".icen-sidebar") !== el) return;
39
+ const group = title.closest(".icen-sidebar-group");
40
40
  if (!group) return;
41
41
  const open = group.classList.toggle("is-open");
42
42
  title.setAttribute("aria-expanded", String(open));
@@ -53,8 +53,8 @@ function initSidebar(root) {
53
53
  if (typeof document !== "undefined") {
54
54
  const scope = root ?? document;
55
55
  const sidebars = [];
56
- if (scope instanceof Element && scope.matches(".sidebar")) sidebars.push(scope);
57
- sidebars.push(...Array.from(scope.querySelectorAll(".sidebar")));
56
+ if (scope instanceof Element && scope.matches(".icen-sidebar")) sidebars.push(scope);
57
+ sidebars.push(...Array.from(scope.querySelectorAll(".icen-sidebar")));
58
58
  for (const s of sidebars) {
59
59
  const cleanup = setup(s);
60
60
  if (cleanup) cleanups.push(cleanup);
@@ -1,5 +1,5 @@
1
1
  /**
2
- * 为 root 下每个 .slider 容器初始化(root 自身是 .slider 也算)。
2
+ * 为 root 下每个 .icen-slider 容器初始化(root 自身是 .icen-slider 也算)。
3
3
  * 返回销毁函数:移除本次挂上的全部监听并复位幂等标记(销毁后可重新 init)。SSR 下返回 no-op。
4
4
  */
5
5
  declare function initSlider(root?: ParentNode): () => void;
@@ -18,8 +18,8 @@ function pct(input) {
18
18
  return (Number(input.value) - min) / range * 100;
19
19
  }
20
20
  function setupSingle(slider, native, bag) {
21
- const fill = slider.querySelector(".slider-fill");
22
- const thumb = slider.querySelector(".slider-thumb");
21
+ const fill = slider.querySelector(".icen-slider-fill");
22
+ const thumb = slider.querySelector(".icen-slider-thumb");
23
23
  const sync = () => {
24
24
  const p = pct(native);
25
25
  if (fill) fill.style.width = `${p}%`;
@@ -35,10 +35,10 @@ function setupSingle(slider, native, bag) {
35
35
  sync();
36
36
  }
37
37
  function setupDual(slider, natives, bag) {
38
- const lo = natives.find((n) => n.getAttribute("data-thumb") === "lo") ?? natives[0];
39
- const hi = natives.find((n) => n.getAttribute("data-thumb") === "hi") ?? natives[1];
38
+ const lo = natives.find((n) => n.getAttribute("data-icen-thumb") === "lo") ?? natives[0];
39
+ const hi = natives.find((n) => n.getAttribute("data-icen-thumb") === "hi") ?? natives[1];
40
40
  if (!lo || !hi || lo === hi) return;
41
- const range = slider.querySelector(".slider-range");
41
+ const range = slider.querySelector(".icen-slider-range");
42
42
  const thumbLo = slider.querySelector(".slider-thumb--lo");
43
43
  const thumbHi = slider.querySelector(".slider-thumb--hi");
44
44
  const sync = (changed) => {
@@ -82,11 +82,11 @@ function setupDual(slider, natives, bag) {
82
82
  function setup(slider) {
83
83
  const el = slider;
84
84
  if (el.__icenSliderInit) return void 0;
85
- const natives = Array.from(slider.querySelectorAll(".slider-native"));
85
+ const natives = Array.from(slider.querySelectorAll(".icen-slider-native"));
86
86
  if (natives.length === 0) return void 0;
87
87
  el.__icenSliderInit = true;
88
88
  const bag = [];
89
- if (slider.classList.contains("slider--dual")) setupDual(slider, natives, bag);
89
+ if (slider.classList.contains("icen-slider--dual")) setupDual(slider, natives, bag);
90
90
  else setupSingle(slider, natives[0], bag);
91
91
  return () => {
92
92
  for (const off of bag) off();
@@ -99,8 +99,8 @@ function initSlider(root) {
99
99
  if (typeof document !== "undefined") {
100
100
  const scope = root ?? document;
101
101
  const containers = [];
102
- if (scope instanceof Element && scope.matches(".slider")) containers.push(scope);
103
- containers.push(...Array.from(scope.querySelectorAll(".slider")));
102
+ if (scope instanceof Element && scope.matches(".icen-slider")) containers.push(scope);
103
+ containers.push(...Array.from(scope.querySelectorAll(".icen-slider")));
104
104
  for (const c of containers) {
105
105
  const cleanup = setup(c);
106
106
  if (cleanup) cleanups.push(cleanup);
@@ -1,5 +1,5 @@
1
1
  /**
2
- * 为 root 下每个 .split-pane[data-split-pane] 初始化(root 自身匹配也算)。
2
+ * 为 root 下每个 .icen-split-pane[data-icen-split-pane] 初始化(root 自身匹配也算)。
3
3
  * 返回销毁函数:移除本次初始化挂上的全部监听并复位幂等标记(销毁后可重新 init)。
4
4
  * SSR 下返回 no-op。
5
5
  */
@@ -17,13 +17,13 @@ function pct(value, min, max) {
17
17
  function setup(container) {
18
18
  const el = container;
19
19
  if (el.__icenSplitPaneInit) return void 0;
20
- const divider = el.querySelector(".split-pane-divider");
20
+ const divider = el.querySelector(".icen-split-pane-divider");
21
21
  if (!divider) return void 0;
22
22
  el.__icenSplitPaneInit = true;
23
- const min = numOr(el.dataset.splitMin, 10);
24
- const max = numOr(el.dataset.splitMax, 90);
25
- const step = numOr(el.dataset.splitStep, 2);
26
- const vertical = el.classList.contains("split-pane--vertical");
23
+ const min = numOr(el.dataset.icenSplitMin, 10);
24
+ const max = numOr(el.dataset.icenSplitMax, 90);
25
+ const step = numOr(el.dataset.icenSplitStep, 2);
26
+ const vertical = el.classList.contains("icen-split-pane--vertical");
27
27
  const orientation = vertical ? "vertical" : "horizontal";
28
28
  divider.setAttribute("role", "separator");
29
29
  divider.setAttribute("aria-orientation", orientation === "vertical" ? "horizontal" : "vertical");
@@ -126,8 +126,8 @@ function initSplitPane(root) {
126
126
  if (typeof document !== "undefined") {
127
127
  const scope = root ?? document;
128
128
  const panes = [];
129
- if (scope instanceof Element && scope.matches(".split-pane[data-split-pane]")) panes.push(scope);
130
- panes.push(...Array.from(scope.querySelectorAll(".split-pane[data-split-pane]")));
129
+ if (scope instanceof Element && scope.matches(".icen-split-pane[data-icen-split-pane]")) panes.push(scope);
130
+ panes.push(...Array.from(scope.querySelectorAll(".icen-split-pane[data-icen-split-pane]")));
131
131
  for (const p of panes) {
132
132
  const cleanup = setup(p);
133
133
  if (cleanup) cleanups.push(cleanup);
@@ -0,0 +1,27 @@
1
+ interface SuggestionSourceContext {
2
+ signal: AbortSignal;
3
+ }
4
+ declare function afterSuggestionField(input: HTMLElement, panel: HTMLElement): HTMLElement;
5
+ declare function canQuery(input: HTMLInputElement | HTMLTextAreaElement): boolean;
6
+ /** Follow inherited disabled/hidden state as well as local sizing and direction. */
7
+ declare function watchSuggestionField(input: HTMLElement, changed: () => void): () => void;
8
+ declare function createSuggestionQuery<T>(source: (query: string, context: SuggestionSourceContext) => T | Promise<T>, hooks: {
9
+ pending(): void;
10
+ success(value: T): void;
11
+ error(error: unknown): void;
12
+ }): {
13
+ cancel: () => void;
14
+ run(query: string, delay?: number): void;
15
+ destroy(): void;
16
+ };
17
+ /** Status and retry live beside the listbox, never among its option children. */
18
+ declare function createSuggestionStatus(retry: () => void, labels?: {
19
+ loading?: string;
20
+ error?: string;
21
+ retry?: string;
22
+ }): {
23
+ el: HTMLElement;
24
+ show(_state: "loading" | "error" | null): void;
25
+ };
26
+
27
+ export { type SuggestionSourceContext, afterSuggestionField, canQuery, createSuggestionQuery, createSuggestionStatus, watchSuggestionField };