@icen.ai/ui 0.10.0 → 0.11.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.
- package/AGENTS.md +79 -309
- package/LICENSE +21 -0
- package/README.md +43 -54
- package/dist/base.css +68 -22
- package/dist/behaviors/accordion.mjs +1 -1
- package/dist/behaviors/ai-branch.mjs +14 -0
- package/dist/behaviors/ai-chat.d.mts +2 -2
- package/dist/behaviors/ai-chat.mjs +66 -10
- package/dist/behaviors/ai-composer.d.mts +5 -5
- package/dist/behaviors/ai-composer.mjs +34 -10
- package/dist/behaviors/ai-core.mjs +14 -0
- package/dist/behaviors/ai-diff.mjs +14 -0
- package/dist/behaviors/ai-feedback.mjs +14 -0
- package/dist/behaviors/ai-panel.d.mts +2 -2
- package/dist/behaviors/ai-panel.mjs +14 -0
- package/dist/behaviors/ai-provider.d.mts +1 -1
- package/dist/behaviors/ai-provider.mjs +14 -0
- package/dist/behaviors/ai-threads.mjs +14 -0
- package/dist/behaviors/ai-tool.d.mts +1 -1
- package/dist/behaviors/ai-tool.mjs +299 -24
- package/dist/behaviors/ai-tools.mjs +1179 -28
- package/dist/behaviors/autocomplete.d.mts +1 -1
- package/dist/behaviors/autocomplete.mjs +14 -0
- package/dist/behaviors/back-top.mjs +14 -0
- package/dist/behaviors/carousel.mjs +21 -1
- package/dist/behaviors/cascader.mjs +27 -0
- package/dist/behaviors/charts.d.mts +12 -1
- package/dist/behaviors/charts.mjs +298 -20
- package/dist/behaviors/code-block.mjs +22 -1
- package/dist/behaviors/command-palette.mjs +3 -3
- package/dist/behaviors/context-menu.d.mts +2 -2
- package/dist/behaviors/context-menu.mjs +14 -0
- package/dist/behaviors/controls.d.mts +8 -8
- package/dist/behaviors/controls.mjs +50 -6
- package/dist/behaviors/copy.mjs +14 -0
- package/dist/behaviors/datatable.d.mts +3 -3
- package/dist/behaviors/datatable.mjs +89 -11
- package/dist/behaviors/date-picker.mjs +14 -0
- package/dist/behaviors/events.d.mts +10 -10
- package/dist/behaviors/events.mjs +11 -1
- package/dist/behaviors/form-validate.d.mts +10 -1
- package/dist/behaviors/form-validate.mjs +279 -4611
- package/dist/behaviors/i18n.d.mts +14 -0
- package/dist/behaviors/i18n.mjs +28 -0
- package/dist/behaviors/input.mjs +16 -0
- package/dist/behaviors/kb-access.d.mts +2 -2
- package/dist/behaviors/kb-access.mjs +21 -2
- package/dist/behaviors/kb-acl.d.mts +2 -2
- package/dist/behaviors/kb-acl.mjs +14 -0
- package/dist/behaviors/kb-answer.d.mts +2 -2
- package/dist/behaviors/kb-answer.mjs +298 -23
- package/dist/behaviors/kb-audit.d.mts +2 -2
- package/dist/behaviors/kb-audit.mjs +14 -0
- package/dist/behaviors/kb-canvas.d.mts +3 -3
- package/dist/behaviors/kb-canvas.mjs +14 -0
- package/dist/behaviors/kb-chain.d.mts +2 -2
- package/dist/behaviors/kb-chain.mjs +14 -0
- package/dist/behaviors/kb-checkpoint.d.mts +2 -2
- package/dist/behaviors/kb-checkpoint.mjs +14 -0
- package/dist/behaviors/kb-chunks.d.mts +2 -2
- package/dist/behaviors/kb-chunks.mjs +14 -0
- package/dist/behaviors/kb-citation.d.mts +2 -2
- package/dist/behaviors/kb-citation.mjs +33 -6
- package/dist/behaviors/kb-clarify.d.mts +2 -2
- package/dist/behaviors/kb-clarify.mjs +14 -0
- package/dist/behaviors/kb-conflict.d.mts +2 -2
- package/dist/behaviors/kb-conflict.mjs +14 -0
- package/dist/behaviors/kb-connector.d.mts +2 -2
- package/dist/behaviors/kb-connector.mjs +14 -0
- package/dist/behaviors/kb-core.d.mts +1 -1
- package/dist/behaviors/kb-core.mjs +14 -0
- package/dist/behaviors/kb-eval.d.mts +2 -2
- package/dist/behaviors/kb-eval.mjs +21 -2
- package/dist/behaviors/kb-explain.d.mts +2 -2
- package/dist/behaviors/kb-explain.mjs +26 -2
- package/dist/behaviors/kb-filter.d.mts +2 -2
- package/dist/behaviors/kb-filter.mjs +21 -2
- package/dist/behaviors/kb-gap.d.mts +2 -2
- package/dist/behaviors/kb-gap.mjs +14 -0
- package/dist/behaviors/kb-hittest.d.mts +2 -2
- package/dist/behaviors/kb-hittest.mjs +15 -1
- package/dist/behaviors/kb-metadata.mjs +19 -0
- package/dist/behaviors/kb-passage.d.mts +2 -2
- package/dist/behaviors/kb-passage.mjs +14 -0
- package/dist/behaviors/kb-pipeline.d.mts +2 -2
- package/dist/behaviors/kb-pipeline.mjs +14 -0
- package/dist/behaviors/kb-qa.mjs +14 -0
- package/dist/behaviors/kb-rerank.d.mts +2 -2
- package/dist/behaviors/kb-rerank.mjs +14 -0
- package/dist/behaviors/kb-retrieval.d.mts +2 -2
- package/dist/behaviors/kb-retrieval.mjs +31 -4
- package/dist/behaviors/kb-review.d.mts +2 -2
- package/dist/behaviors/kb-review.mjs +21 -2
- package/dist/behaviors/kb-sandbox.d.mts +2 -2
- package/dist/behaviors/kb-sandbox.mjs +20 -1
- package/dist/behaviors/kb-segment.d.mts +2 -2
- package/dist/behaviors/kb-segment.mjs +15 -1
- package/dist/behaviors/kb-select.mjs +21 -2
- package/dist/behaviors/kb-sources.d.mts +2 -2
- package/dist/behaviors/kb-sources.mjs +14 -0
- package/dist/behaviors/kb-sql.d.mts +2 -2
- package/dist/behaviors/kb-sql.mjs +14 -0
- package/dist/behaviors/kb-trace.d.mts +2 -2
- package/dist/behaviors/kb-trace.mjs +22 -3
- package/dist/behaviors/kb-visibility.d.mts +2 -2
- package/dist/behaviors/kb-visibility.mjs +14 -0
- package/dist/behaviors/kb-who-can.d.mts +2 -2
- package/dist/behaviors/kb-who-can.mjs +21 -2
- package/dist/behaviors/mentions.d.mts +1 -1
- package/dist/behaviors/mentions.mjs +14 -0
- package/dist/behaviors/modal.d.mts +1 -1
- package/dist/behaviors/modal.mjs +14 -0
- package/dist/behaviors/motion.d.mts +16 -0
- package/dist/behaviors/motion.mjs +39 -0
- package/dist/behaviors/notification.d.mts +2 -2
- package/dist/behaviors/notification.mjs +27 -3
- package/dist/behaviors/panel.mjs +14 -0
- package/dist/behaviors/scroll-area.d.mts +17 -0
- package/dist/behaviors/scroll-area.mjs +59 -0
- package/dist/behaviors/select.mjs +21 -2
- package/dist/behaviors/slider.mjs +3 -3
- package/dist/behaviors/split-pane.mjs +2 -0
- package/dist/behaviors/suggestions.mjs +14 -0
- package/dist/behaviors/tabs.mjs +10 -0
- package/dist/behaviors/tag-input.mjs +14 -0
- package/dist/behaviors/theme-switcher.d.mts +2 -2
- package/dist/behaviors/theme-switcher.mjs +30 -2
- package/dist/behaviors/theme.mjs +16 -2
- package/dist/behaviors/toast.d.mts +2 -2
- package/dist/behaviors/toast.mjs +14 -0
- package/dist/behaviors/tree-select.mjs +27 -0
- package/dist/behaviors/tree.mjs +4 -4
- package/dist/behaviors/upload.mjs +14 -0
- package/dist/behaviors/url-safety.d.mts +8 -0
- package/dist/behaviors/url-safety.mjs +11 -0
- package/dist/components/accordion.d.mts +2 -0
- package/dist/components/ai-branch.d.mts +2 -0
- package/dist/components/ai-chat.css +40 -33
- package/dist/components/ai-chat.d.mts +2 -0
- package/dist/components/ai-composer.d.mts +2 -0
- package/dist/components/ai-context.d.mts +2 -0
- package/dist/components/ai-context.mjs +1 -0
- package/dist/components/ai-diff.css +6 -6
- package/dist/components/ai-diff.d.mts +2 -0
- package/dist/components/ai-feedback.d.mts +2 -0
- package/dist/components/ai-files.d.mts +2 -0
- package/dist/components/ai-message.d.mts +2 -0
- package/dist/components/ai-panel.css +12 -10
- package/dist/components/ai-reasoning.d.mts +2 -0
- package/dist/components/ai-subagent.d.mts +2 -0
- package/dist/components/ai-subagent.mjs +1 -0
- package/dist/components/ai-threads.d.mts +2 -0
- package/dist/components/ai-todo.d.mts +2 -0
- package/dist/components/ai-todo.mjs +1 -0
- package/dist/components/ai-tool-call.d.mts +2 -0
- package/dist/components/ai-tool-call.mjs +1 -0
- package/dist/components/ai-tool.css +16 -16
- package/dist/components/ai-usage.d.mts +2 -0
- package/dist/components/alert.d.mts +2 -0
- package/dist/components/autocomplete.css +12 -12
- package/dist/components/autocomplete.d.mts +2 -0
- package/dist/components/avatar.d.mts +2 -0
- package/dist/components/back-top.css +47 -16
- package/dist/components/back-top.d.mts +2 -0
- package/dist/components/badge.css +1 -1
- package/dist/components/badge.d.mts +2 -0
- package/dist/components/breadcrumb.css +26 -8
- package/dist/components/breadcrumb.d.mts +2 -0
- package/dist/components/btn.css +67 -62
- package/dist/components/btn.d.mts +2 -0
- package/dist/components/card.css +22 -22
- package/dist/components/card.d.mts +2 -0
- package/dist/components/carousel.d.mts +2 -0
- package/dist/components/cascader.css +56 -35
- package/dist/components/cascader.d.mts +2 -0
- package/dist/components/chart-area.css +46 -0
- package/dist/components/chart-area.d.mts +2 -0
- package/dist/components/chart-bar.css +66 -19
- package/dist/components/chart-bar.d.mts +2 -0
- package/dist/components/chart-calendar.d.mts +2 -0
- package/dist/components/chart-gauge.css +23 -3
- package/dist/components/chart-gauge.d.mts +2 -0
- package/dist/components/chart-graph.css +15 -3
- package/dist/components/chart-graph.d.mts +2 -0
- package/dist/components/chart-heatmap.css +117 -95
- package/dist/components/chart-heatmap.d.mts +2 -0
- package/dist/components/chart-line.css +54 -0
- package/dist/components/chart-line.d.mts +2 -0
- package/dist/components/chart-map.d.mts +2 -0
- package/dist/components/chart-pie.css +29 -0
- package/dist/components/chart-pie.d.mts +2 -0
- package/dist/components/chart-radar.css +50 -1
- package/dist/components/chart-radar.d.mts +2 -0
- package/dist/components/chart-scatter.css +39 -2
- package/dist/components/chart-scatter.d.mts +2 -0
- package/dist/components/chart-sparkline.css +20 -0
- package/dist/components/chart-sparkline.d.mts +2 -0
- package/dist/components/chart-stack.css +16 -5
- package/dist/components/chart-stack.d.mts +2 -0
- package/dist/components/charts.css +109 -35
- package/dist/components/charts.d.mts +2 -0
- package/dist/components/code-block.css +10 -8
- package/dist/components/code-block.d.mts +2 -0
- package/dist/components/command-palette.css +45 -38
- package/dist/components/command-palette.d.mts +2 -0
- package/dist/components/content.css +62 -57
- package/dist/components/context-menu.d.mts +2 -0
- package/dist/components/copy.css +10 -10
- package/dist/components/copy.d.mts +2 -0
- package/dist/components/datatable.css +72 -59
- package/dist/components/datatable.d.mts +2 -0
- package/dist/components/date-picker.css +26 -26
- package/dist/components/date-picker.d.mts +2 -0
- package/dist/components/desc.d.mts +2 -0
- package/dist/components/dropdown.d.mts +2 -0
- package/dist/components/empty.css +16 -16
- package/dist/components/empty.d.mts +2 -0
- package/dist/components/feedback.css +31 -29
- package/dist/components/form-validate.css +20 -6
- package/dist/components/form-validate.d.mts +2 -0
- package/dist/components/form.css +17 -14
- package/dist/components/form.d.mts +2 -0
- package/dist/components/icon.css +21 -10
- package/dist/components/icon.d.mts +2 -0
- package/dist/components/input.css +22 -22
- package/dist/components/input.d.mts +2 -0
- package/dist/components/kb-access.d.mts +2 -0
- package/dist/components/kb-acl.d.mts +2 -0
- package/dist/components/kb-agent.css +134 -55
- package/dist/components/kb-answer.d.mts +2 -0
- package/dist/components/kb-audit.d.mts +2 -0
- package/dist/components/kb-canvas.d.mts +2 -0
- package/dist/components/kb-chain.d.mts +2 -0
- package/dist/components/kb-checkpoint.d.mts +2 -0
- package/dist/components/kb-chunks.d.mts +2 -0
- package/dist/components/kb-citation.d.mts +2 -0
- package/dist/components/kb-clarify.d.mts +2 -0
- package/dist/components/kb-conflict.d.mts +2 -0
- package/dist/components/kb-connector.d.mts +2 -0
- package/dist/components/kb-data.css +192 -80
- package/dist/components/kb-eval.d.mts +2 -0
- package/dist/components/kb-explain.d.mts +2 -0
- package/dist/components/kb-filter.d.mts +2 -0
- package/dist/components/kb-gap.d.mts +2 -0
- package/dist/components/kb-ground.css +165 -73
- package/dist/components/kb-hittest.d.mts +2 -0
- package/dist/components/kb-ingest.css +308 -113
- package/dist/components/kb-metadata.d.mts +2 -0
- package/dist/components/kb-ops.css +189 -75
- package/dist/components/kb-passage.d.mts +2 -0
- package/dist/components/kb-perm.css +158 -87
- package/dist/components/kb-pipeline.d.mts +2 -0
- package/dist/components/kb-qa.d.mts +2 -0
- package/dist/components/kb-rerank.d.mts +2 -0
- package/dist/components/kb-retrieval.d.mts +2 -0
- package/dist/components/kb-review.d.mts +2 -0
- package/dist/components/kb-sandbox.d.mts +2 -0
- package/dist/components/kb-search.css +353 -116
- package/dist/components/kb-segment.d.mts +2 -0
- package/dist/components/kb-sources.d.mts +2 -0
- package/dist/components/kb-sql.d.mts +2 -0
- package/dist/components/kb-trace.d.mts +2 -0
- package/dist/components/kb-visibility.d.mts +2 -0
- package/dist/components/kb-who-can.d.mts +2 -0
- package/dist/components/kb.css +60 -36
- package/dist/components/kb.d.mts +2 -0
- package/dist/components/kbd.d.mts +2 -0
- package/dist/components/layout.css +10 -10
- package/dist/components/layout.d.mts +2 -0
- package/dist/components/list.d.mts +2 -0
- package/dist/components/material-chinese.css +10 -0
- package/dist/components/material-soviet.css +10 -0
- package/dist/components/material.css +61 -18
- package/dist/components/media-card.d.mts +2 -0
- package/dist/components/media.css +22 -27
- package/dist/components/mentions.css +18 -17
- package/dist/components/mentions.d.mts +2 -0
- package/dist/components/menu.css +32 -28
- package/dist/components/modal.css +30 -27
- package/dist/components/modal.d.mts +2 -0
- package/dist/components/nav.css +48 -44
- package/dist/components/nav.d.mts +2 -0
- package/dist/components/notification.css +31 -25
- package/dist/components/notification.d.mts +2 -0
- package/dist/components/pagination.css +15 -13
- package/dist/components/pagination.d.mts +2 -0
- package/dist/components/panel.css +19 -20
- package/dist/components/panel.d.mts +2 -0
- package/dist/components/pill.css +8 -7
- package/dist/components/pill.d.mts +2 -0
- package/dist/components/popover.css +32 -23
- package/dist/components/popover.d.mts +2 -0
- package/dist/components/progress.d.mts +2 -0
- package/dist/components/rating.d.mts +2 -0
- package/dist/components/result.d.mts +2 -0
- package/dist/components/scroll-area.css +84 -112
- package/dist/components/scroll-area.d.mts +2 -0
- package/dist/components/scroll-area.mjs +1 -0
- package/dist/components/segmented.css +47 -29
- package/dist/components/segmented.d.mts +2 -0
- package/dist/components/select.css +80 -41
- package/dist/components/select.d.mts +2 -0
- package/dist/components/sidebar.css +42 -38
- package/dist/components/sidebar.d.mts +2 -0
- package/dist/components/skeleton.d.mts +2 -0
- package/dist/components/slider.css +26 -22
- package/dist/components/slider.d.mts +2 -0
- package/dist/components/spinner.d.mts +2 -0
- package/dist/components/split-pane.css +16 -7
- package/dist/components/split-pane.d.mts +2 -0
- package/dist/components/stat.css +17 -16
- package/dist/components/stat.d.mts +2 -0
- package/dist/components/steps.css +26 -26
- package/dist/components/steps.d.mts +2 -0
- package/dist/components/switch.css +78 -39
- package/dist/components/switch.d.mts +2 -0
- package/dist/components/table.css +54 -32
- package/dist/components/table.d.mts +2 -0
- package/dist/components/tabs.css +53 -32
- package/dist/components/tabs.d.mts +2 -0
- package/dist/components/tag-input.css +12 -8
- package/dist/components/tag-input.d.mts +2 -0
- package/dist/components/tag.css +20 -12
- package/dist/components/tag.d.mts +2 -0
- package/dist/components/theme-switcher.css +7 -7
- package/dist/components/theme-switcher.d.mts +2 -0
- package/dist/components/timeline.d.mts +2 -0
- package/dist/components/toast.css +34 -30
- package/dist/components/toast.d.mts +2 -0
- package/dist/components/toolbar.css +19 -18
- package/dist/components/toolbar.d.mts +2 -0
- package/dist/components/tooltip.css +9 -8
- package/dist/components/tooltip.d.mts +2 -0
- package/dist/components/tree-select.css +63 -40
- package/dist/components/tree-select.d.mts +2 -0
- package/dist/components/tree.d.mts +2 -0
- package/dist/components/upload.css +9 -11
- package/dist/components/upload.d.mts +2 -0
- package/dist/index.d.mts +85 -84
- package/dist/index.mjs +14644 -13935
- package/dist/react.d.mts +18 -18
- package/dist/react.mjs +377 -36
- package/dist/registry.json +797 -64
- package/dist/tokens/colors.css +6 -0
- package/dist/tokens/design.css +137 -31
- package/dist/tokens/dtcg.json +9592 -2008
- package/dist/tokens/figma.variables.json +7451 -2141
- package/dist/tokens/motion.css +51 -0
- package/dist/tokens/pixel.css +10 -0
- package/dist/tokens/scrollbars.css +40 -0
- package/dist/tokens/tokens-studio.json +8390 -1142
- package/dist/tokens/typography.css +33 -0
- package/dist/tokens.css +402 -82
- package/dist/ui.css +4196 -2163
- package/dist/vue.d.mts +17 -17
- package/dist/vue.mjs +371 -34
- package/docs/spec/charts-scale-a11y.md +115 -0
- package/docs/spec/design-philosophy.md +5 -5
- package/docs/spec/design-primitives.md +10 -10
- package/docs/spec/motion-typography.md +105 -0
- package/docs/spec/scrollbars.md +46 -0
- package/package.json +17 -3
|
@@ -21,6 +21,7 @@ var ICEN_LOCALE_ZH_CN = {
|
|
|
21
21
|
"aiChat.roleTool": "\u5DE5",
|
|
22
22
|
"aiChat.roleUser": "\u6211",
|
|
23
23
|
"aiChat.thinking": "\u601D\u8003 {p0}",
|
|
24
|
+
"aiChat.thinkingNow": "\u6B63\u5728\u601D\u8003\u2026",
|
|
24
25
|
/* ── aiComposer ── */
|
|
25
26
|
"aiComposer.attachAgent": "\u4EE3\u7406",
|
|
26
27
|
"aiComposer.library": "\u6DFB\u52A0\u4E0A\u4E0B\u6587\u4E0E\u547D\u4EE4",
|
|
@@ -203,6 +204,19 @@ var ICEN_LOCALE_ZH_CN = {
|
|
|
203
204
|
"charts.noData": "\u6682\u65E0\u6570\u636E",
|
|
204
205
|
"charts.resetZoom": "\u91CD\u7F6E\u7F29\u653E",
|
|
205
206
|
"charts.sampled": "\u5DF2\u62BD\u6837 {p0}\u2192{p1} \u70B9",
|
|
207
|
+
"charts.a11y.keyboardHint": "\u65B9\u5411\u952E\u9010\u70B9\u6D4F\u89C8\uFF0CHome/End \u8DF3\u9996\u5C3E\uFF0CEsc \u91CD\u7F6E\u7F29\u653E",
|
|
208
|
+
"charts.a11y.max": "\u6700\u5927 {p0}\uFF08{p1}\uFF09",
|
|
209
|
+
"charts.a11y.min": "\u6700\u5C0F {p0}\uFF08{p1}\uFF09",
|
|
210
|
+
"charts.a11y.point": "{p0}\uFF1A{p1}\uFF0C\u7B2C {p2}/{p3} \u70B9",
|
|
211
|
+
"charts.a11y.pointSeries": "{p0} \xB7 {p1}\uFF1A{p2}\uFF0C\u7B2C {p3}/{p4} \u70B9",
|
|
212
|
+
"charts.a11y.range": "\u7C7B\u76EE {p0} \u81F3 {p1}",
|
|
213
|
+
"charts.a11y.scatterRange": "x \u8303\u56F4 {p0}\u2013{p1}\uFF0Cy \u8303\u56F4 {p2}\u2013{p3}",
|
|
214
|
+
"charts.a11y.seriesCount": "{p0} \u4E2A\u7CFB\u5217",
|
|
215
|
+
"charts.a11y.tableCaption": "{p0} \u6570\u636E\u8868",
|
|
216
|
+
"charts.a11y.trend": "\u9996\u7CFB\u5217\u8D8B\u52BF{p0}",
|
|
217
|
+
"charts.a11y.trendDown": "\u4E0B\u964D",
|
|
218
|
+
"charts.a11y.trendFlat": "\u6301\u5E73",
|
|
219
|
+
"charts.a11y.trendUp": "\u4E0A\u5347",
|
|
206
220
|
"charts.type.area": "\u9762\u79EF\u56FE",
|
|
207
221
|
"charts.type.donut": "\u73AF\u5F62\u56FE",
|
|
208
222
|
"charts.type.gauge": "\u4EEA\u8868\u76D8",
|
package/dist/behaviors/modal.mjs
CHANGED
|
@@ -157,6 +157,7 @@ var ICEN_LOCALE_ZH_CN = {
|
|
|
157
157
|
"aiChat.roleTool": "\u5DE5",
|
|
158
158
|
"aiChat.roleUser": "\u6211",
|
|
159
159
|
"aiChat.thinking": "\u601D\u8003 {p0}",
|
|
160
|
+
"aiChat.thinkingNow": "\u6B63\u5728\u601D\u8003\u2026",
|
|
160
161
|
/* ── aiComposer ── */
|
|
161
162
|
"aiComposer.attachAgent": "\u4EE3\u7406",
|
|
162
163
|
"aiComposer.library": "\u6DFB\u52A0\u4E0A\u4E0B\u6587\u4E0E\u547D\u4EE4",
|
|
@@ -339,6 +340,19 @@ var ICEN_LOCALE_ZH_CN = {
|
|
|
339
340
|
"charts.noData": "\u6682\u65E0\u6570\u636E",
|
|
340
341
|
"charts.resetZoom": "\u91CD\u7F6E\u7F29\u653E",
|
|
341
342
|
"charts.sampled": "\u5DF2\u62BD\u6837 {p0}\u2192{p1} \u70B9",
|
|
343
|
+
"charts.a11y.keyboardHint": "\u65B9\u5411\u952E\u9010\u70B9\u6D4F\u89C8\uFF0CHome/End \u8DF3\u9996\u5C3E\uFF0CEsc \u91CD\u7F6E\u7F29\u653E",
|
|
344
|
+
"charts.a11y.max": "\u6700\u5927 {p0}\uFF08{p1}\uFF09",
|
|
345
|
+
"charts.a11y.min": "\u6700\u5C0F {p0}\uFF08{p1}\uFF09",
|
|
346
|
+
"charts.a11y.point": "{p0}\uFF1A{p1}\uFF0C\u7B2C {p2}/{p3} \u70B9",
|
|
347
|
+
"charts.a11y.pointSeries": "{p0} \xB7 {p1}\uFF1A{p2}\uFF0C\u7B2C {p3}/{p4} \u70B9",
|
|
348
|
+
"charts.a11y.range": "\u7C7B\u76EE {p0} \u81F3 {p1}",
|
|
349
|
+
"charts.a11y.scatterRange": "x \u8303\u56F4 {p0}\u2013{p1}\uFF0Cy \u8303\u56F4 {p2}\u2013{p3}",
|
|
350
|
+
"charts.a11y.seriesCount": "{p0} \u4E2A\u7CFB\u5217",
|
|
351
|
+
"charts.a11y.tableCaption": "{p0} \u6570\u636E\u8868",
|
|
352
|
+
"charts.a11y.trend": "\u9996\u7CFB\u5217\u8D8B\u52BF{p0}",
|
|
353
|
+
"charts.a11y.trendDown": "\u4E0B\u964D",
|
|
354
|
+
"charts.a11y.trendFlat": "\u6301\u5E73",
|
|
355
|
+
"charts.a11y.trendUp": "\u4E0A\u5347",
|
|
342
356
|
"charts.type.area": "\u9762\u79EF\u56FE",
|
|
343
357
|
"charts.type.donut": "\u73AF\u5F62\u56FE",
|
|
344
358
|
"charts.type.gauge": "\u4EEA\u8868\u76D8",
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/** 手动覆盖值(`<html data-icen-motion>` 只认 reduce/full;无属性或非法值 = null = 跟随系统)。 */
|
|
2
|
+
type IcenMotionMode = 'reduce' | 'full';
|
|
3
|
+
/** 当前手动覆盖。SSR 返回 null。 */
|
|
4
|
+
declare function icenMotionOverride(): IcenMotionMode | null;
|
|
5
|
+
/** 是否处于降级态:手动 reduce > 手动 full > 系统偏好。SSR/无 matchMedia 返回 false(不降级)。 */
|
|
6
|
+
declare function icenMotionReduced(): boolean;
|
|
7
|
+
/**
|
|
8
|
+
* 订阅降级态变化(系统偏好切换 + data-icen-motion 属性改写),返回销毁函数。
|
|
9
|
+
* 设置属性本身即触发回调(MutationObserver 同帧),消费方无需手动补一次——但初始值不主动回调。
|
|
10
|
+
* SSR 返回 noop。
|
|
11
|
+
*/
|
|
12
|
+
declare function onIcenMotionChange(cb: (reduced: boolean) => void): () => void;
|
|
13
|
+
/** 设置/清除手动覆盖(写 `<html data-icen-motion>`;null = 移除属性、跟随系统)。SSR 静默跳过。 */
|
|
14
|
+
declare function setIcenMotion(mode: IcenMotionMode | null): void;
|
|
15
|
+
|
|
16
|
+
export { type IcenMotionMode, icenMotionOverride, icenMotionReduced, onIcenMotionChange, setIcenMotion };
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
// src/behaviors/motion.ts
|
|
2
|
+
function icenMotionOverride() {
|
|
3
|
+
if (typeof document === "undefined") return null;
|
|
4
|
+
const v = document.documentElement.getAttribute("data-icen-motion");
|
|
5
|
+
return v === "reduce" || v === "full" ? v : null;
|
|
6
|
+
}
|
|
7
|
+
function icenMotionReduced() {
|
|
8
|
+
const override = icenMotionOverride();
|
|
9
|
+
if (override) return override === "reduce";
|
|
10
|
+
if (typeof window === "undefined" || typeof window.matchMedia !== "function") return false;
|
|
11
|
+
return window.matchMedia("(prefers-reduced-motion: reduce)").matches;
|
|
12
|
+
}
|
|
13
|
+
function onIcenMotionChange(cb) {
|
|
14
|
+
if (typeof window === "undefined" || typeof document === "undefined") return () => {
|
|
15
|
+
};
|
|
16
|
+
const notify = () => cb(icenMotionReduced());
|
|
17
|
+
const mq = typeof window.matchMedia === "function" ? window.matchMedia("(prefers-reduced-motion: reduce)") : null;
|
|
18
|
+
mq?.addEventListener("change", notify);
|
|
19
|
+
const mo = new MutationObserver((records) => {
|
|
20
|
+
if (records.some((r) => r.attributeName === "data-icen-motion")) notify();
|
|
21
|
+
});
|
|
22
|
+
mo.observe(document.documentElement, { attributes: true, attributeFilter: ["data-icen-motion"] });
|
|
23
|
+
return () => {
|
|
24
|
+
mq?.removeEventListener("change", notify);
|
|
25
|
+
mo.disconnect();
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
function setIcenMotion(mode) {
|
|
29
|
+
if (typeof document === "undefined") return;
|
|
30
|
+
const el = document.documentElement;
|
|
31
|
+
if (mode === null) el.removeAttribute("data-icen-motion");
|
|
32
|
+
else el.setAttribute("data-icen-motion", mode);
|
|
33
|
+
}
|
|
34
|
+
export {
|
|
35
|
+
icenMotionOverride,
|
|
36
|
+
icenMotionReduced,
|
|
37
|
+
onIcenMotionChange,
|
|
38
|
+
setIcenMotion
|
|
39
|
+
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { FeedbackAction } from './feedback.
|
|
2
|
-
import { IconName } from './icons.
|
|
1
|
+
import { FeedbackAction } from './feedback.mjs';
|
|
2
|
+
import { IconName } from './icons.mjs';
|
|
3
3
|
|
|
4
4
|
type NotificationKind = 'success' | 'warning' | 'error' | 'info';
|
|
5
5
|
interface NotificationAction {
|
|
@@ -302,6 +302,7 @@ var ICEN_LOCALE_ZH_CN = {
|
|
|
302
302
|
"aiChat.roleTool": "\u5DE5",
|
|
303
303
|
"aiChat.roleUser": "\u6211",
|
|
304
304
|
"aiChat.thinking": "\u601D\u8003 {p0}",
|
|
305
|
+
"aiChat.thinkingNow": "\u6B63\u5728\u601D\u8003\u2026",
|
|
305
306
|
/* ── aiComposer ── */
|
|
306
307
|
"aiComposer.attachAgent": "\u4EE3\u7406",
|
|
307
308
|
"aiComposer.library": "\u6DFB\u52A0\u4E0A\u4E0B\u6587\u4E0E\u547D\u4EE4",
|
|
@@ -484,6 +485,19 @@ var ICEN_LOCALE_ZH_CN = {
|
|
|
484
485
|
"charts.noData": "\u6682\u65E0\u6570\u636E",
|
|
485
486
|
"charts.resetZoom": "\u91CD\u7F6E\u7F29\u653E",
|
|
486
487
|
"charts.sampled": "\u5DF2\u62BD\u6837 {p0}\u2192{p1} \u70B9",
|
|
488
|
+
"charts.a11y.keyboardHint": "\u65B9\u5411\u952E\u9010\u70B9\u6D4F\u89C8\uFF0CHome/End \u8DF3\u9996\u5C3E\uFF0CEsc \u91CD\u7F6E\u7F29\u653E",
|
|
489
|
+
"charts.a11y.max": "\u6700\u5927 {p0}\uFF08{p1}\uFF09",
|
|
490
|
+
"charts.a11y.min": "\u6700\u5C0F {p0}\uFF08{p1}\uFF09",
|
|
491
|
+
"charts.a11y.point": "{p0}\uFF1A{p1}\uFF0C\u7B2C {p2}/{p3} \u70B9",
|
|
492
|
+
"charts.a11y.pointSeries": "{p0} \xB7 {p1}\uFF1A{p2}\uFF0C\u7B2C {p3}/{p4} \u70B9",
|
|
493
|
+
"charts.a11y.range": "\u7C7B\u76EE {p0} \u81F3 {p1}",
|
|
494
|
+
"charts.a11y.scatterRange": "x \u8303\u56F4 {p0}\u2013{p1}\uFF0Cy \u8303\u56F4 {p2}\u2013{p3}",
|
|
495
|
+
"charts.a11y.seriesCount": "{p0} \u4E2A\u7CFB\u5217",
|
|
496
|
+
"charts.a11y.tableCaption": "{p0} \u6570\u636E\u8868",
|
|
497
|
+
"charts.a11y.trend": "\u9996\u7CFB\u5217\u8D8B\u52BF{p0}",
|
|
498
|
+
"charts.a11y.trendDown": "\u4E0B\u964D",
|
|
499
|
+
"charts.a11y.trendFlat": "\u6301\u5E73",
|
|
500
|
+
"charts.a11y.trendUp": "\u4E0A\u5347",
|
|
487
501
|
"charts.type.area": "\u9762\u79EF\u56FE",
|
|
488
502
|
"charts.type.donut": "\u73AF\u5F62\u56FE",
|
|
489
503
|
"charts.type.gauge": "\u4EEA\u8868\u76D8",
|
|
@@ -1164,6 +1178,15 @@ function parseSvg(source) {
|
|
|
1164
1178
|
return document.importNode(root, true);
|
|
1165
1179
|
}
|
|
1166
1180
|
|
|
1181
|
+
// src/behaviors/url-safety.ts
|
|
1182
|
+
function safeUrl(uri) {
|
|
1183
|
+
const s = uri.replace(/[\t\n\r\0-\x1f\x7f]/g, "").trim().toLowerCase();
|
|
1184
|
+
if (!s) return void 0;
|
|
1185
|
+
if (s.startsWith("javascript:") || s.startsWith("vbscript:")) return void 0;
|
|
1186
|
+
if (/^data:\s*text\/html/.test(s)) return void 0;
|
|
1187
|
+
return uri;
|
|
1188
|
+
}
|
|
1189
|
+
|
|
1167
1190
|
// src/behaviors/notification.ts
|
|
1168
1191
|
var clocks = /* @__PURE__ */ new WeakMap();
|
|
1169
1192
|
var KIND_SYMBOL = { success: "circle-check", warning: "triangle-alert", error: "circle-error", info: "circle-info" };
|
|
@@ -1378,7 +1401,7 @@ function buildIcon(record) {
|
|
|
1378
1401
|
wrap.className = "icen-notification-icon";
|
|
1379
1402
|
wrap.setAttribute("aria-hidden", "true");
|
|
1380
1403
|
const { icon, avatar } = record.opts;
|
|
1381
|
-
if (avatar) {
|
|
1404
|
+
if (avatar && safeUrl(avatar)) {
|
|
1382
1405
|
const img = document.createElement("img");
|
|
1383
1406
|
img.className = "icen-notification-avatar";
|
|
1384
1407
|
img.src = avatar;
|
|
@@ -1481,12 +1504,13 @@ function buildActions(record) {
|
|
|
1481
1504
|
}
|
|
1482
1505
|
function buildLink(record) {
|
|
1483
1506
|
const { link, linkLabel } = record.opts;
|
|
1484
|
-
|
|
1507
|
+
const href = link ? safeUrl(link) : void 0;
|
|
1508
|
+
if (!href) return null;
|
|
1485
1509
|
const wrap = document.createElement("div");
|
|
1486
1510
|
wrap.className = "icen-notification-link-wrap";
|
|
1487
1511
|
const a = document.createElement("a");
|
|
1488
1512
|
a.className = "icen-notification-link";
|
|
1489
|
-
a.href =
|
|
1513
|
+
a.href = href;
|
|
1490
1514
|
a.textContent = linkLabel ?? t("notification.viewDetails");
|
|
1491
1515
|
a.addEventListener("click", (ev) => ev.stopPropagation());
|
|
1492
1516
|
wrap.appendChild(a);
|
package/dist/behaviors/panel.mjs
CHANGED
|
@@ -116,6 +116,7 @@ var ICEN_LOCALE_ZH_CN = {
|
|
|
116
116
|
"aiChat.roleTool": "\u5DE5",
|
|
117
117
|
"aiChat.roleUser": "\u6211",
|
|
118
118
|
"aiChat.thinking": "\u601D\u8003 {p0}",
|
|
119
|
+
"aiChat.thinkingNow": "\u6B63\u5728\u601D\u8003\u2026",
|
|
119
120
|
/* ── aiComposer ── */
|
|
120
121
|
"aiComposer.attachAgent": "\u4EE3\u7406",
|
|
121
122
|
"aiComposer.library": "\u6DFB\u52A0\u4E0A\u4E0B\u6587\u4E0E\u547D\u4EE4",
|
|
@@ -298,6 +299,19 @@ var ICEN_LOCALE_ZH_CN = {
|
|
|
298
299
|
"charts.noData": "\u6682\u65E0\u6570\u636E",
|
|
299
300
|
"charts.resetZoom": "\u91CD\u7F6E\u7F29\u653E",
|
|
300
301
|
"charts.sampled": "\u5DF2\u62BD\u6837 {p0}\u2192{p1} \u70B9",
|
|
302
|
+
"charts.a11y.keyboardHint": "\u65B9\u5411\u952E\u9010\u70B9\u6D4F\u89C8\uFF0CHome/End \u8DF3\u9996\u5C3E\uFF0CEsc \u91CD\u7F6E\u7F29\u653E",
|
|
303
|
+
"charts.a11y.max": "\u6700\u5927 {p0}\uFF08{p1}\uFF09",
|
|
304
|
+
"charts.a11y.min": "\u6700\u5C0F {p0}\uFF08{p1}\uFF09",
|
|
305
|
+
"charts.a11y.point": "{p0}\uFF1A{p1}\uFF0C\u7B2C {p2}/{p3} \u70B9",
|
|
306
|
+
"charts.a11y.pointSeries": "{p0} \xB7 {p1}\uFF1A{p2}\uFF0C\u7B2C {p3}/{p4} \u70B9",
|
|
307
|
+
"charts.a11y.range": "\u7C7B\u76EE {p0} \u81F3 {p1}",
|
|
308
|
+
"charts.a11y.scatterRange": "x \u8303\u56F4 {p0}\u2013{p1}\uFF0Cy \u8303\u56F4 {p2}\u2013{p3}",
|
|
309
|
+
"charts.a11y.seriesCount": "{p0} \u4E2A\u7CFB\u5217",
|
|
310
|
+
"charts.a11y.tableCaption": "{p0} \u6570\u636E\u8868",
|
|
311
|
+
"charts.a11y.trend": "\u9996\u7CFB\u5217\u8D8B\u52BF{p0}",
|
|
312
|
+
"charts.a11y.trendDown": "\u4E0B\u964D",
|
|
313
|
+
"charts.a11y.trendFlat": "\u6301\u5E73",
|
|
314
|
+
"charts.a11y.trendUp": "\u4E0A\u5347",
|
|
301
315
|
"charts.type.area": "\u9762\u79EF\u56FE",
|
|
302
316
|
"charts.type.donut": "\u73AF\u5F62\u56FE",
|
|
303
317
|
"charts.type.gauge": "\u4EEA\u8868\u76D8",
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/** Native scrolling with delegated activity tracking; no replacement tracks or wheel interception. */
|
|
2
|
+
interface ScrollAreaOptions {
|
|
3
|
+
/** Delegation scope. Defaults to document; includes future descendants. */
|
|
4
|
+
root?: Document | HTMLElement;
|
|
5
|
+
/** Idle delay in milliseconds. Local data-icen-scrollbar-delay wins; CSS token is the fallback. */
|
|
6
|
+
idleDelay?: number;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Enables idle hiding for every native scroller in a scope, including portalled
|
|
10
|
+
* panels when mounted on document. Idempotent, SSR-safe, returns cleanup.
|
|
11
|
+
* CSS-only use keeps scrollbars visible; enabled scopes default to scroll mode.
|
|
12
|
+
* Local data-icen-scrollbars selects
|
|
13
|
+
* auto (scroll/hover/focus), scroll (scroll/focus), visible, or hidden.
|
|
14
|
+
*/
|
|
15
|
+
declare function initScrollArea(options?: ScrollAreaOptions): () => void;
|
|
16
|
+
|
|
17
|
+
export { type ScrollAreaOptions, initScrollArea };
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
// src/behaviors/scroll-area.ts
|
|
2
|
+
var mounted = /* @__PURE__ */ new WeakSet();
|
|
3
|
+
var noop = () => {
|
|
4
|
+
};
|
|
5
|
+
var isDocument = (node) => node?.nodeType === 9;
|
|
6
|
+
function initScrollArea(options = {}) {
|
|
7
|
+
if (typeof document === "undefined" || typeof window === "undefined") return noop;
|
|
8
|
+
const root = options.root ?? document;
|
|
9
|
+
if (mounted.has(root)) return noop;
|
|
10
|
+
mounted.add(root);
|
|
11
|
+
const host = isDocument(root) ? root.documentElement : root;
|
|
12
|
+
const previous = host.getAttribute("data-icen-scrollbars-ready");
|
|
13
|
+
host.setAttribute("data-icen-scrollbars-ready", "");
|
|
14
|
+
const pending = /* @__PURE__ */ new Map();
|
|
15
|
+
const restore = (el, value) => {
|
|
16
|
+
if (value === null) el.removeAttribute("data-icen-scroll-active");
|
|
17
|
+
else el.setAttribute("data-icen-scroll-active", value);
|
|
18
|
+
};
|
|
19
|
+
const onScroll = (event) => {
|
|
20
|
+
const el = isDocument(event.target) ? event.target.documentElement : event.target;
|
|
21
|
+
if (!(el instanceof HTMLElement)) return;
|
|
22
|
+
for (let node = el; node; node = node.parentElement) {
|
|
23
|
+
if (!mounted.has(node)) continue;
|
|
24
|
+
if (node !== root) return;
|
|
25
|
+
break;
|
|
26
|
+
}
|
|
27
|
+
const old = pending.get(el);
|
|
28
|
+
if (old) clearTimeout(old.timer);
|
|
29
|
+
const before = old ? old.previous : el.getAttribute("data-icen-scroll-active");
|
|
30
|
+
el.setAttribute("data-icen-scroll-active", "");
|
|
31
|
+
const local = el.closest("[data-icen-scrollbar-delay]")?.dataset.icenScrollbarDelay;
|
|
32
|
+
const token = getComputedStyle(el).getPropertyValue("--icen-token-scrollbar-idle-delay").trim();
|
|
33
|
+
const parsed = local !== void 0 ? Number(local) : options.idleDelay ?? (token ? Number.parseFloat(token) * (token.endsWith("ms") ? 1 : token.endsWith("s") ? 1e3 : 1) : 900);
|
|
34
|
+
const delay = Number.isFinite(parsed) ? Math.max(0, Math.min(6e4, parsed)) : 900;
|
|
35
|
+
const timer = setTimeout(() => {
|
|
36
|
+
restore(el, before);
|
|
37
|
+
pending.delete(el);
|
|
38
|
+
}, delay);
|
|
39
|
+
pending.set(el, { timer, previous: before });
|
|
40
|
+
};
|
|
41
|
+
root.addEventListener("scroll", onScroll, { capture: true, passive: true });
|
|
42
|
+
let disposed = false;
|
|
43
|
+
return () => {
|
|
44
|
+
if (disposed) return;
|
|
45
|
+
disposed = true;
|
|
46
|
+
root.removeEventListener("scroll", onScroll, true);
|
|
47
|
+
for (const [el, state] of pending) {
|
|
48
|
+
clearTimeout(state.timer);
|
|
49
|
+
restore(el, state.previous);
|
|
50
|
+
}
|
|
51
|
+
pending.clear();
|
|
52
|
+
if (previous === null) host.removeAttribute("data-icen-scrollbars-ready");
|
|
53
|
+
else host.setAttribute("data-icen-scrollbars-ready", previous);
|
|
54
|
+
mounted.delete(root);
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
export {
|
|
58
|
+
initScrollArea
|
|
59
|
+
};
|
|
@@ -21,6 +21,7 @@ var ICEN_LOCALE_ZH_CN = {
|
|
|
21
21
|
"aiChat.roleTool": "\u5DE5",
|
|
22
22
|
"aiChat.roleUser": "\u6211",
|
|
23
23
|
"aiChat.thinking": "\u601D\u8003 {p0}",
|
|
24
|
+
"aiChat.thinkingNow": "\u6B63\u5728\u601D\u8003\u2026",
|
|
24
25
|
/* ── aiComposer ── */
|
|
25
26
|
"aiComposer.attachAgent": "\u4EE3\u7406",
|
|
26
27
|
"aiComposer.library": "\u6DFB\u52A0\u4E0A\u4E0B\u6587\u4E0E\u547D\u4EE4",
|
|
@@ -203,6 +204,19 @@ var ICEN_LOCALE_ZH_CN = {
|
|
|
203
204
|
"charts.noData": "\u6682\u65E0\u6570\u636E",
|
|
204
205
|
"charts.resetZoom": "\u91CD\u7F6E\u7F29\u653E",
|
|
205
206
|
"charts.sampled": "\u5DF2\u62BD\u6837 {p0}\u2192{p1} \u70B9",
|
|
207
|
+
"charts.a11y.keyboardHint": "\u65B9\u5411\u952E\u9010\u70B9\u6D4F\u89C8\uFF0CHome/End \u8DF3\u9996\u5C3E\uFF0CEsc \u91CD\u7F6E\u7F29\u653E",
|
|
208
|
+
"charts.a11y.max": "\u6700\u5927 {p0}\uFF08{p1}\uFF09",
|
|
209
|
+
"charts.a11y.min": "\u6700\u5C0F {p0}\uFF08{p1}\uFF09",
|
|
210
|
+
"charts.a11y.point": "{p0}\uFF1A{p1}\uFF0C\u7B2C {p2}/{p3} \u70B9",
|
|
211
|
+
"charts.a11y.pointSeries": "{p0} \xB7 {p1}\uFF1A{p2}\uFF0C\u7B2C {p3}/{p4} \u70B9",
|
|
212
|
+
"charts.a11y.range": "\u7C7B\u76EE {p0} \u81F3 {p1}",
|
|
213
|
+
"charts.a11y.scatterRange": "x \u8303\u56F4 {p0}\u2013{p1}\uFF0Cy \u8303\u56F4 {p2}\u2013{p3}",
|
|
214
|
+
"charts.a11y.seriesCount": "{p0} \u4E2A\u7CFB\u5217",
|
|
215
|
+
"charts.a11y.tableCaption": "{p0} \u6570\u636E\u8868",
|
|
216
|
+
"charts.a11y.trend": "\u9996\u7CFB\u5217\u8D8B\u52BF{p0}",
|
|
217
|
+
"charts.a11y.trendDown": "\u4E0B\u964D",
|
|
218
|
+
"charts.a11y.trendFlat": "\u6301\u5E73",
|
|
219
|
+
"charts.a11y.trendUp": "\u4E0A\u5347",
|
|
206
220
|
"charts.type.area": "\u9762\u79EF\u56FE",
|
|
207
221
|
"charts.type.donut": "\u73AF\u5F62\u56FE",
|
|
208
222
|
"charts.type.gauge": "\u4EEA\u8868\u76D8",
|
|
@@ -1209,8 +1223,13 @@ function setup(container) {
|
|
|
1209
1223
|
el.__icenSelectInit = true;
|
|
1210
1224
|
const trigger = triggerEl;
|
|
1211
1225
|
const panel = panelEl;
|
|
1212
|
-
|
|
1213
|
-
|
|
1226
|
+
if (!trigger.querySelector(".icen-select-chevron")) {
|
|
1227
|
+
const chevron = createIcon("chevron-down", { size: 12, className: "icen-select-chevron" });
|
|
1228
|
+
if (chevron) {
|
|
1229
|
+
chevron.setAttribute("aria-hidden", "true");
|
|
1230
|
+
trigger.append(chevron);
|
|
1231
|
+
}
|
|
1232
|
+
}
|
|
1214
1233
|
const isMultiple = container.hasAttribute("data-icen-select-multiple");
|
|
1215
1234
|
const isSearchable = container.hasAttribute("data-icen-select-search");
|
|
1216
1235
|
if (isMultiple && !trigger.hasAttribute("aria-label") && !trigger.hasAttribute("aria-labelledby")) trigger.setAttribute("aria-label", container.getAttribute("data-icen-select-label") ?? t("select.fieldLabel"));
|
|
@@ -23,7 +23,7 @@ function setupSingle(slider, native, bag) {
|
|
|
23
23
|
const sync = () => {
|
|
24
24
|
const p = pct(native);
|
|
25
25
|
if (fill) fill.style.width = `${p}%`;
|
|
26
|
-
if (thumb) thumb.style.left =
|
|
26
|
+
if (thumb) thumb.style.left = `${p}%`;
|
|
27
27
|
};
|
|
28
28
|
bind(native, "input", () => {
|
|
29
29
|
sync();
|
|
@@ -59,8 +59,8 @@ function setupDual(slider, natives, bag) {
|
|
|
59
59
|
range.style.left = `${pLo}%`;
|
|
60
60
|
range.style.right = `${100 - pHi}%`;
|
|
61
61
|
}
|
|
62
|
-
if (thumbLo) thumbLo.style.left =
|
|
63
|
-
if (thumbHi) thumbHi.style.left =
|
|
62
|
+
if (thumbLo) thumbLo.style.left = `${pLo}%`;
|
|
63
|
+
if (thumbHi) thumbHi.style.left = `${pHi}%`;
|
|
64
64
|
lo.style.clipPath = `inset(0 ${100 - pLo}% 0 0)`;
|
|
65
65
|
hi.style.clipPath = `inset(0 0 0 ${pHi}%)`;
|
|
66
66
|
};
|
|
@@ -48,6 +48,8 @@ function setup(container) {
|
|
|
48
48
|
divider.setAttribute("aria-valuenow", String(Math.round(readCurrent())));
|
|
49
49
|
let dragging = false;
|
|
50
50
|
const onDown = (ev) => {
|
|
51
|
+
if (ev.pointerType === "mouse" && ev.button !== 0) return;
|
|
52
|
+
if (!ev.isPrimary) return;
|
|
51
53
|
dragging = true;
|
|
52
54
|
divider.classList.add("is-dragging");
|
|
53
55
|
divider.setPointerCapture(ev.pointerId);
|
|
@@ -129,6 +129,7 @@ var ICEN_LOCALE_ZH_CN = {
|
|
|
129
129
|
"aiChat.roleTool": "\u5DE5",
|
|
130
130
|
"aiChat.roleUser": "\u6211",
|
|
131
131
|
"aiChat.thinking": "\u601D\u8003 {p0}",
|
|
132
|
+
"aiChat.thinkingNow": "\u6B63\u5728\u601D\u8003\u2026",
|
|
132
133
|
/* ── aiComposer ── */
|
|
133
134
|
"aiComposer.attachAgent": "\u4EE3\u7406",
|
|
134
135
|
"aiComposer.library": "\u6DFB\u52A0\u4E0A\u4E0B\u6587\u4E0E\u547D\u4EE4",
|
|
@@ -311,6 +312,19 @@ var ICEN_LOCALE_ZH_CN = {
|
|
|
311
312
|
"charts.noData": "\u6682\u65E0\u6570\u636E",
|
|
312
313
|
"charts.resetZoom": "\u91CD\u7F6E\u7F29\u653E",
|
|
313
314
|
"charts.sampled": "\u5DF2\u62BD\u6837 {p0}\u2192{p1} \u70B9",
|
|
315
|
+
"charts.a11y.keyboardHint": "\u65B9\u5411\u952E\u9010\u70B9\u6D4F\u89C8\uFF0CHome/End \u8DF3\u9996\u5C3E\uFF0CEsc \u91CD\u7F6E\u7F29\u653E",
|
|
316
|
+
"charts.a11y.max": "\u6700\u5927 {p0}\uFF08{p1}\uFF09",
|
|
317
|
+
"charts.a11y.min": "\u6700\u5C0F {p0}\uFF08{p1}\uFF09",
|
|
318
|
+
"charts.a11y.point": "{p0}\uFF1A{p1}\uFF0C\u7B2C {p2}/{p3} \u70B9",
|
|
319
|
+
"charts.a11y.pointSeries": "{p0} \xB7 {p1}\uFF1A{p2}\uFF0C\u7B2C {p3}/{p4} \u70B9",
|
|
320
|
+
"charts.a11y.range": "\u7C7B\u76EE {p0} \u81F3 {p1}",
|
|
321
|
+
"charts.a11y.scatterRange": "x \u8303\u56F4 {p0}\u2013{p1}\uFF0Cy \u8303\u56F4 {p2}\u2013{p3}",
|
|
322
|
+
"charts.a11y.seriesCount": "{p0} \u4E2A\u7CFB\u5217",
|
|
323
|
+
"charts.a11y.tableCaption": "{p0} \u6570\u636E\u8868",
|
|
324
|
+
"charts.a11y.trend": "\u9996\u7CFB\u5217\u8D8B\u52BF{p0}",
|
|
325
|
+
"charts.a11y.trendDown": "\u4E0B\u964D",
|
|
326
|
+
"charts.a11y.trendFlat": "\u6301\u5E73",
|
|
327
|
+
"charts.a11y.trendUp": "\u4E0A\u5347",
|
|
314
328
|
"charts.type.area": "\u9762\u79EF\u56FE",
|
|
315
329
|
"charts.type.donut": "\u73AF\u5F62\u56FE",
|
|
316
330
|
"charts.type.gauge": "\u4EEA\u8868\u76D8",
|
package/dist/behaviors/tabs.mjs
CHANGED
|
@@ -28,6 +28,13 @@ function syncInk(container, name) {
|
|
|
28
28
|
if (!ink) return;
|
|
29
29
|
ink.style.width = `${btn.offsetWidth}px`;
|
|
30
30
|
ink.style.transform = `translateX(${btn.offsetLeft}px)`;
|
|
31
|
+
if (btn.offsetTop > 0) {
|
|
32
|
+
ink.style.top = `${btn.offsetTop + btn.offsetHeight}px`;
|
|
33
|
+
ink.style.bottom = "auto";
|
|
34
|
+
} else {
|
|
35
|
+
ink.style.top = "";
|
|
36
|
+
ink.style.bottom = "";
|
|
37
|
+
}
|
|
31
38
|
}
|
|
32
39
|
function activate(container, name, writeHash, emit = false) {
|
|
33
40
|
const buttons = tabButtons(container);
|
|
@@ -70,6 +77,9 @@ function focusTab(container, idx) {
|
|
|
70
77
|
const buttons = tabButtons(container);
|
|
71
78
|
const target = buttons[idx];
|
|
72
79
|
if (!target || isDisabled(target)) return;
|
|
80
|
+
buttons.forEach((b) => {
|
|
81
|
+
b.tabIndex = b === target ? 0 : -1;
|
|
82
|
+
});
|
|
73
83
|
target.focus();
|
|
74
84
|
}
|
|
75
85
|
function nextEnabled(container, from, dir) {
|
|
@@ -116,6 +116,7 @@ var ICEN_LOCALE_ZH_CN = {
|
|
|
116
116
|
"aiChat.roleTool": "\u5DE5",
|
|
117
117
|
"aiChat.roleUser": "\u6211",
|
|
118
118
|
"aiChat.thinking": "\u601D\u8003 {p0}",
|
|
119
|
+
"aiChat.thinkingNow": "\u6B63\u5728\u601D\u8003\u2026",
|
|
119
120
|
/* ── aiComposer ── */
|
|
120
121
|
"aiComposer.attachAgent": "\u4EE3\u7406",
|
|
121
122
|
"aiComposer.library": "\u6DFB\u52A0\u4E0A\u4E0B\u6587\u4E0E\u547D\u4EE4",
|
|
@@ -298,6 +299,19 @@ var ICEN_LOCALE_ZH_CN = {
|
|
|
298
299
|
"charts.noData": "\u6682\u65E0\u6570\u636E",
|
|
299
300
|
"charts.resetZoom": "\u91CD\u7F6E\u7F29\u653E",
|
|
300
301
|
"charts.sampled": "\u5DF2\u62BD\u6837 {p0}\u2192{p1} \u70B9",
|
|
302
|
+
"charts.a11y.keyboardHint": "\u65B9\u5411\u952E\u9010\u70B9\u6D4F\u89C8\uFF0CHome/End \u8DF3\u9996\u5C3E\uFF0CEsc \u91CD\u7F6E\u7F29\u653E",
|
|
303
|
+
"charts.a11y.max": "\u6700\u5927 {p0}\uFF08{p1}\uFF09",
|
|
304
|
+
"charts.a11y.min": "\u6700\u5C0F {p0}\uFF08{p1}\uFF09",
|
|
305
|
+
"charts.a11y.point": "{p0}\uFF1A{p1}\uFF0C\u7B2C {p2}/{p3} \u70B9",
|
|
306
|
+
"charts.a11y.pointSeries": "{p0} \xB7 {p1}\uFF1A{p2}\uFF0C\u7B2C {p3}/{p4} \u70B9",
|
|
307
|
+
"charts.a11y.range": "\u7C7B\u76EE {p0} \u81F3 {p1}",
|
|
308
|
+
"charts.a11y.scatterRange": "x \u8303\u56F4 {p0}\u2013{p1}\uFF0Cy \u8303\u56F4 {p2}\u2013{p3}",
|
|
309
|
+
"charts.a11y.seriesCount": "{p0} \u4E2A\u7CFB\u5217",
|
|
310
|
+
"charts.a11y.tableCaption": "{p0} \u6570\u636E\u8868",
|
|
311
|
+
"charts.a11y.trend": "\u9996\u7CFB\u5217\u8D8B\u52BF{p0}",
|
|
312
|
+
"charts.a11y.trendDown": "\u4E0B\u964D",
|
|
313
|
+
"charts.a11y.trendFlat": "\u6301\u5E73",
|
|
314
|
+
"charts.a11y.trendUp": "\u4E0A\u5347",
|
|
301
315
|
"charts.type.area": "\u9762\u79EF\u56FE",
|
|
302
316
|
"charts.type.donut": "\u73AF\u5F62\u56FE",
|
|
303
317
|
"charts.type.gauge": "\u4EEA\u8868\u76D8",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ThemeState } from './theme.
|
|
2
|
-
import { PanelSizing } from './popover.
|
|
1
|
+
import { ThemeState } from './theme.mjs';
|
|
2
|
+
import { PanelSizing } from './popover.mjs';
|
|
3
3
|
|
|
4
4
|
interface ThemeSwitcherOptions {
|
|
5
5
|
/** all = one appearance menu; individual axes can be composed freely. */
|
|
@@ -528,8 +528,22 @@ function toggleDark() {
|
|
|
528
528
|
var systemListenerAttached = false;
|
|
529
529
|
var storageListenerAttached = false;
|
|
530
530
|
function initTheme() {
|
|
531
|
-
|
|
532
|
-
|
|
531
|
+
let t2 = getTheme();
|
|
532
|
+
if (isBrowser()) {
|
|
533
|
+
const root = document.documentElement;
|
|
534
|
+
if (!hasPersistedPreference() && root.hasAttribute("data-icen-preset") && root.hasAttribute("data-icen-style")) {
|
|
535
|
+
t2 = {
|
|
536
|
+
preset: root.getAttribute("data-icen-preset") ?? t2.preset,
|
|
537
|
+
dark: root.getAttribute("data-icen-theme") === "dark",
|
|
538
|
+
style: root.getAttribute("data-icen-style") ?? t2.style
|
|
539
|
+
};
|
|
540
|
+
lastApplied = { ...t2 };
|
|
541
|
+
} else {
|
|
542
|
+
applyTheme(t2);
|
|
543
|
+
}
|
|
544
|
+
} else {
|
|
545
|
+
applyTheme(t2);
|
|
546
|
+
}
|
|
533
547
|
if (isBrowser() && !storageListenerAttached) {
|
|
534
548
|
storageListenerAttached = true;
|
|
535
549
|
window.addEventListener("storage", (event) => {
|
|
@@ -898,6 +912,7 @@ var ICEN_LOCALE_ZH_CN = {
|
|
|
898
912
|
"aiChat.roleTool": "\u5DE5",
|
|
899
913
|
"aiChat.roleUser": "\u6211",
|
|
900
914
|
"aiChat.thinking": "\u601D\u8003 {p0}",
|
|
915
|
+
"aiChat.thinkingNow": "\u6B63\u5728\u601D\u8003\u2026",
|
|
901
916
|
/* ── aiComposer ── */
|
|
902
917
|
"aiComposer.attachAgent": "\u4EE3\u7406",
|
|
903
918
|
"aiComposer.library": "\u6DFB\u52A0\u4E0A\u4E0B\u6587\u4E0E\u547D\u4EE4",
|
|
@@ -1080,6 +1095,19 @@ var ICEN_LOCALE_ZH_CN = {
|
|
|
1080
1095
|
"charts.noData": "\u6682\u65E0\u6570\u636E",
|
|
1081
1096
|
"charts.resetZoom": "\u91CD\u7F6E\u7F29\u653E",
|
|
1082
1097
|
"charts.sampled": "\u5DF2\u62BD\u6837 {p0}\u2192{p1} \u70B9",
|
|
1098
|
+
"charts.a11y.keyboardHint": "\u65B9\u5411\u952E\u9010\u70B9\u6D4F\u89C8\uFF0CHome/End \u8DF3\u9996\u5C3E\uFF0CEsc \u91CD\u7F6E\u7F29\u653E",
|
|
1099
|
+
"charts.a11y.max": "\u6700\u5927 {p0}\uFF08{p1}\uFF09",
|
|
1100
|
+
"charts.a11y.min": "\u6700\u5C0F {p0}\uFF08{p1}\uFF09",
|
|
1101
|
+
"charts.a11y.point": "{p0}\uFF1A{p1}\uFF0C\u7B2C {p2}/{p3} \u70B9",
|
|
1102
|
+
"charts.a11y.pointSeries": "{p0} \xB7 {p1}\uFF1A{p2}\uFF0C\u7B2C {p3}/{p4} \u70B9",
|
|
1103
|
+
"charts.a11y.range": "\u7C7B\u76EE {p0} \u81F3 {p1}",
|
|
1104
|
+
"charts.a11y.scatterRange": "x \u8303\u56F4 {p0}\u2013{p1}\uFF0Cy \u8303\u56F4 {p2}\u2013{p3}",
|
|
1105
|
+
"charts.a11y.seriesCount": "{p0} \u4E2A\u7CFB\u5217",
|
|
1106
|
+
"charts.a11y.tableCaption": "{p0} \u6570\u636E\u8868",
|
|
1107
|
+
"charts.a11y.trend": "\u9996\u7CFB\u5217\u8D8B\u52BF{p0}",
|
|
1108
|
+
"charts.a11y.trendDown": "\u4E0B\u964D",
|
|
1109
|
+
"charts.a11y.trendFlat": "\u6301\u5E73",
|
|
1110
|
+
"charts.a11y.trendUp": "\u4E0A\u5347",
|
|
1083
1111
|
"charts.type.area": "\u9762\u79EF\u56FE",
|
|
1084
1112
|
"charts.type.donut": "\u73AF\u5F62\u56FE",
|
|
1085
1113
|
"charts.type.gauge": "\u4EEA\u8868\u76D8",
|
package/dist/behaviors/theme.mjs
CHANGED
|
@@ -458,8 +458,22 @@ function setPrimitive(primitive) {
|
|
|
458
458
|
var systemListenerAttached = false;
|
|
459
459
|
var storageListenerAttached = false;
|
|
460
460
|
function initTheme() {
|
|
461
|
-
|
|
462
|
-
|
|
461
|
+
let t = getTheme();
|
|
462
|
+
if (isBrowser()) {
|
|
463
|
+
const root = document.documentElement;
|
|
464
|
+
if (!hasPersistedPreference() && root.hasAttribute("data-icen-preset") && root.hasAttribute("data-icen-style")) {
|
|
465
|
+
t = {
|
|
466
|
+
preset: root.getAttribute("data-icen-preset") ?? t.preset,
|
|
467
|
+
dark: root.getAttribute("data-icen-theme") === "dark",
|
|
468
|
+
style: root.getAttribute("data-icen-style") ?? t.style
|
|
469
|
+
};
|
|
470
|
+
lastApplied = { ...t };
|
|
471
|
+
} else {
|
|
472
|
+
applyTheme(t);
|
|
473
|
+
}
|
|
474
|
+
} else {
|
|
475
|
+
applyTheme(t);
|
|
476
|
+
}
|
|
463
477
|
if (isBrowser() && !storageListenerAttached) {
|
|
464
478
|
storageListenerAttached = true;
|
|
465
479
|
window.addEventListener("storage", (event) => {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { FeedbackAction } from './feedback.
|
|
2
|
-
import { IconName } from './icons.
|
|
1
|
+
import { FeedbackAction } from './feedback.mjs';
|
|
2
|
+
import { IconName } from './icons.mjs';
|
|
3
3
|
|
|
4
4
|
type ToastKind = 'warn' | 'info' | 'success' | 'error';
|
|
5
5
|
interface ToastOptions {
|
package/dist/behaviors/toast.mjs
CHANGED
|
@@ -302,6 +302,7 @@ var ICEN_LOCALE_ZH_CN = {
|
|
|
302
302
|
"aiChat.roleTool": "\u5DE5",
|
|
303
303
|
"aiChat.roleUser": "\u6211",
|
|
304
304
|
"aiChat.thinking": "\u601D\u8003 {p0}",
|
|
305
|
+
"aiChat.thinkingNow": "\u6B63\u5728\u601D\u8003\u2026",
|
|
305
306
|
/* ── aiComposer ── */
|
|
306
307
|
"aiComposer.attachAgent": "\u4EE3\u7406",
|
|
307
308
|
"aiComposer.library": "\u6DFB\u52A0\u4E0A\u4E0B\u6587\u4E0E\u547D\u4EE4",
|
|
@@ -484,6 +485,19 @@ var ICEN_LOCALE_ZH_CN = {
|
|
|
484
485
|
"charts.noData": "\u6682\u65E0\u6570\u636E",
|
|
485
486
|
"charts.resetZoom": "\u91CD\u7F6E\u7F29\u653E",
|
|
486
487
|
"charts.sampled": "\u5DF2\u62BD\u6837 {p0}\u2192{p1} \u70B9",
|
|
488
|
+
"charts.a11y.keyboardHint": "\u65B9\u5411\u952E\u9010\u70B9\u6D4F\u89C8\uFF0CHome/End \u8DF3\u9996\u5C3E\uFF0CEsc \u91CD\u7F6E\u7F29\u653E",
|
|
489
|
+
"charts.a11y.max": "\u6700\u5927 {p0}\uFF08{p1}\uFF09",
|
|
490
|
+
"charts.a11y.min": "\u6700\u5C0F {p0}\uFF08{p1}\uFF09",
|
|
491
|
+
"charts.a11y.point": "{p0}\uFF1A{p1}\uFF0C\u7B2C {p2}/{p3} \u70B9",
|
|
492
|
+
"charts.a11y.pointSeries": "{p0} \xB7 {p1}\uFF1A{p2}\uFF0C\u7B2C {p3}/{p4} \u70B9",
|
|
493
|
+
"charts.a11y.range": "\u7C7B\u76EE {p0} \u81F3 {p1}",
|
|
494
|
+
"charts.a11y.scatterRange": "x \u8303\u56F4 {p0}\u2013{p1}\uFF0Cy \u8303\u56F4 {p2}\u2013{p3}",
|
|
495
|
+
"charts.a11y.seriesCount": "{p0} \u4E2A\u7CFB\u5217",
|
|
496
|
+
"charts.a11y.tableCaption": "{p0} \u6570\u636E\u8868",
|
|
497
|
+
"charts.a11y.trend": "\u9996\u7CFB\u5217\u8D8B\u52BF{p0}",
|
|
498
|
+
"charts.a11y.trendDown": "\u4E0B\u964D",
|
|
499
|
+
"charts.a11y.trendFlat": "\u6301\u5E73",
|
|
500
|
+
"charts.a11y.trendUp": "\u4E0A\u5347",
|
|
487
501
|
"charts.type.area": "\u9762\u79EF\u56FE",
|
|
488
502
|
"charts.type.donut": "\u73AF\u5F62\u56FE",
|
|
489
503
|
"charts.type.gauge": "\u4EEA\u8868\u76D8",
|