@robot-admin/naive-ui-components 0.14.2 → 0.15.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 (255) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/README.md +130 -721
  3. package/README_EN.md +137 -658
  4. package/dist/C_ActionBar.css +57 -58
  5. package/dist/C_ActionBar2.cjs +1 -1
  6. package/dist/C_ActionBar2.js +1 -1
  7. package/dist/C_AntV.css +215 -222
  8. package/dist/C_AntV2.cjs +2 -2
  9. package/dist/C_AntV2.js +2 -2
  10. package/dist/C_AudioPlayer.css +11 -12
  11. package/dist/C_AvatarGroup.css +5 -6
  12. package/dist/C_Barcode.css +1 -1
  13. package/dist/C_Breadcrumb.css +15 -17
  14. package/dist/C_Breadcrumb2.cjs +1 -1
  15. package/dist/C_Breadcrumb2.js +1 -1
  16. package/dist/C_Captcha.css +45 -47
  17. package/dist/C_Captcha2.cjs +1 -1
  18. package/dist/C_Captcha2.js +1 -1
  19. package/dist/C_Cascade.css +2 -2
  20. package/dist/C_Chat.css +8 -8
  21. package/dist/C_City.css +6 -7
  22. package/dist/C_Code.css +14 -15
  23. package/dist/C_CollapsePanel.css +12 -13
  24. package/dist/C_ContextMenu.css +31 -31
  25. package/dist/C_Cron.css +272 -275
  26. package/dist/C_Date.css +1 -1
  27. package/dist/C_Draggable.css +10 -11
  28. package/dist/C_Editor.css +2 -2
  29. package/dist/C_FilePreview.css +193 -193
  30. package/dist/C_Form.base.css +607 -601
  31. package/dist/C_Form.cjs +1 -1
  32. package/dist/C_Form.css +609 -603
  33. package/dist/C_Form.d.cts +2 -2
  34. package/dist/C_Form.d.ts +2 -2
  35. package/dist/C_Form.js +1 -1
  36. package/dist/C_FormModal.cjs +1 -1
  37. package/dist/C_FormModal.css +14 -20
  38. package/dist/C_FormModal.js +1 -1
  39. package/dist/C_FormModal2.cjs +1 -1
  40. package/dist/C_FormModal2.js +1 -1
  41. package/dist/C_FormSearch.css +53 -55
  42. package/dist/C_FormSearch2.cjs +1 -1
  43. package/dist/C_FormSearch2.js +1 -1
  44. package/dist/C_FormulaEditor.css +314 -315
  45. package/dist/C_FullCalendar.css +14 -16
  46. package/dist/C_FullCalendar2.cjs +1 -1
  47. package/dist/C_FullCalendar2.js +1 -1
  48. package/dist/C_GlobalSearch.css +2 -2
  49. package/dist/C_Guide.css +14 -15
  50. package/dist/C_Icon.css +7 -8
  51. package/dist/C_ImageCropper.css +69 -69
  52. package/dist/C_Language.css +8 -8
  53. package/dist/C_Loading.css +20 -22
  54. package/dist/C_Loading2.cjs +1 -1
  55. package/dist/C_Loading2.js +1 -1
  56. package/dist/C_Login.css +130 -135
  57. package/dist/C_Login2.cjs +1 -1
  58. package/dist/C_Login2.js +1 -1
  59. package/dist/C_Map.css +22 -23
  60. package/dist/C_Markdown.css +2 -2
  61. package/dist/C_Menu.css +2 -5
  62. package/dist/C_Menu2.cjs +1 -1
  63. package/dist/C_Menu2.js +1 -1
  64. package/dist/C_NotificationCenter.css +300 -301
  65. package/dist/C_OrgChart.css +3 -3
  66. package/dist/C_PageLoading.css +35 -39
  67. package/dist/C_QRCode.css +5 -6
  68. package/dist/C_Signature.css +5 -6
  69. package/dist/C_Skeleton.css +6 -7
  70. package/dist/C_SplitPane.css +2 -2
  71. package/dist/C_Steps.css +2 -2
  72. package/dist/C_Table.base.css +1097 -870
  73. package/dist/C_Table.cjs +1 -1
  74. package/dist/C_Table.css +1101 -874
  75. package/dist/C_Table.d.cts +1 -1
  76. package/dist/C_Table.d.ts +1 -1
  77. package/dist/C_Table.js +1 -1
  78. package/dist/C_Tabs.css +2 -2
  79. package/dist/C_TagsView.css +72 -76
  80. package/dist/C_TagsView2.cjs +1 -1
  81. package/dist/C_TagsView2.js +1 -1
  82. package/dist/C_Theme.css +7 -8
  83. package/dist/C_Time.css +1 -1
  84. package/dist/C_Timeline.css +8 -8
  85. package/dist/C_Transfer.css +10 -11
  86. package/dist/C_Tree.css +16 -17
  87. package/dist/C_Upload.css +147 -148
  88. package/dist/C_VideoPlayer.css +280 -281
  89. package/dist/C_VtableGantt.css +2 -2
  90. package/dist/C_WaterFall.css +17 -18
  91. package/dist/C_WorkFlow.css +453 -457
  92. package/dist/C_WorkFlow2.cjs +1 -1
  93. package/dist/C_WorkFlow2.js +1 -1
  94. package/dist/Card.cjs +1 -0
  95. package/dist/Card.js +1 -0
  96. package/dist/Custom.cjs +1 -0
  97. package/dist/Custom.js +1 -0
  98. package/dist/Dynamic.cjs +1 -0
  99. package/dist/Dynamic.js +1 -0
  100. package/dist/Steps.cjs +1 -0
  101. package/dist/Steps.js +1 -0
  102. package/dist/Tabs.cjs +1 -0
  103. package/dist/Tabs.js +1 -0
  104. package/dist/cascader.cjs +1 -0
  105. package/dist/cascader.js +1 -0
  106. package/dist/color-picker.cjs +1 -0
  107. package/dist/color-picker.js +1 -0
  108. package/dist/constants.d.cts +1 -1
  109. package/dist/constants.d.ts +1 -1
  110. package/dist/constants3.d.cts +5 -5
  111. package/dist/constants3.d.ts +5 -5
  112. package/dist/constants4.d.cts +4 -4
  113. package/dist/constants4.d.ts +4 -4
  114. package/dist/constants5.d.cts +2 -2
  115. package/dist/constants5.d.ts +2 -2
  116. package/dist/context.cjs +1 -0
  117. package/dist/context.js +1 -0
  118. package/dist/contracts.d.cts +24 -0
  119. package/dist/contracts.d.ts +24 -0
  120. package/dist/createPageLoading.cjs +1 -1
  121. package/dist/createPageLoading.js +1 -1
  122. package/dist/data.cjs +1 -1
  123. package/dist/data.d.cts +9 -9
  124. package/dist/data.d.ts +9 -9
  125. package/dist/data.js +1 -1
  126. package/dist/date-picker.cjs +1 -0
  127. package/dist/date-picker.js +1 -0
  128. package/dist/feedback.cjs +1 -0
  129. package/dist/feedback.js +1 -0
  130. package/dist/helpers.cjs +1 -1
  131. package/dist/helpers.js +1 -1
  132. package/dist/index.cjs +1 -1
  133. package/dist/index.d.cts +6 -4
  134. package/dist/index.d.ts +6 -4
  135. package/dist/index.js +1 -1
  136. package/dist/index.vue.d.cts +4 -4
  137. package/dist/index.vue.d.ts +4 -4
  138. package/dist/index10.vue.d.cts +3 -3
  139. package/dist/index11.vue.d.ts +2 -2
  140. package/dist/index12.vue.d.cts +2 -2
  141. package/dist/index12.vue.d.ts +1 -1
  142. package/dist/index13.vue.d.cts +1 -1
  143. package/dist/index13.vue.d.ts +3 -3
  144. package/dist/index14.vue.d.cts +3 -3
  145. package/dist/index14.vue.d.ts +7 -7
  146. package/dist/index15.vue.d.cts +7 -7
  147. package/dist/index16.vue.d.ts +1 -1
  148. package/dist/index17.vue.d.cts +1 -1
  149. package/dist/index17.vue.d.ts +1 -1
  150. package/dist/index18.vue.d.cts +1 -1
  151. package/dist/index18.vue.d.ts +1 -1
  152. package/dist/index19.vue.d.cts +1 -1
  153. package/dist/index19.vue.d.ts +2 -9
  154. package/dist/index2.vue.d.cts +2 -2
  155. package/dist/index2.vue.d.ts +2 -2
  156. package/dist/index20.vue.d.cts +1 -1
  157. package/dist/index20.vue.d.ts +1 -1
  158. package/dist/index21.vue.d.cts +1 -1
  159. package/dist/index21.vue.d.ts +1 -1
  160. package/dist/index22.vue.d.cts +2 -2
  161. package/dist/index22.vue.d.ts +2 -2
  162. package/dist/index23.vue.d.cts +1 -1
  163. package/dist/index23.vue.d.ts +1 -1
  164. package/dist/index25.vue.d.cts +4 -4
  165. package/dist/index25.vue.d.ts +4 -4
  166. package/dist/index26.vue.d.cts +1 -1
  167. package/dist/index26.vue.d.ts +1 -1
  168. package/dist/index27.vue.d.cts +4 -4
  169. package/dist/index27.vue.d.ts +4 -4
  170. package/dist/index28.vue.d.cts +1 -1
  171. package/dist/index28.vue.d.ts +1 -1
  172. package/dist/index3.vue.d.cts +4 -4
  173. package/dist/index3.vue.d.ts +4 -4
  174. package/dist/index4.vue.d.cts +2 -9
  175. package/dist/index6.vue.d.ts +3 -3
  176. package/dist/index7.vue.d.cts +3 -3
  177. package/dist/index8.vue.d.ts +2 -2
  178. package/dist/index9.vue.d.cts +2 -2
  179. package/dist/index9.vue.d.ts +3 -3
  180. package/dist/mapUtils.d.cts +2 -2
  181. package/dist/mapUtils.d.ts +2 -2
  182. package/dist/presets.d.cts +8 -2
  183. package/dist/presets.d.ts +8 -2
  184. package/dist/rate.cjs +1 -0
  185. package/dist/rate.js +1 -0
  186. package/dist/slider.cjs +1 -0
  187. package/dist/slider.js +1 -0
  188. package/dist/style.css +10898 -10915
  189. package/dist/time-picker.cjs +1 -0
  190. package/dist/time-picker.js +1 -0
  191. package/dist/upload.cjs +1 -0
  192. package/dist/upload.js +1 -0
  193. package/dist/useActionTask.cjs +1 -0
  194. package/dist/useActionTask.js +1 -0
  195. package/dist/useCalendarEvents.d.cts +1 -1
  196. package/dist/useCalendarEvents.d.ts +1 -1
  197. package/dist/useCollapsePanel.d.cts +4 -4
  198. package/dist/useCollapsePanel.d.ts +4 -4
  199. package/dist/useComponentLocale.cjs +1 -0
  200. package/dist/useComponentLocale.js +1 -0
  201. package/dist/useCropperCore.d.cts +6 -6
  202. package/dist/useCropperCore.d.ts +6 -6
  203. package/dist/useDraggableLayout.d.cts +1 -1
  204. package/dist/useDraggableLayout.d.ts +1 -1
  205. package/dist/useDynamicFormState.cjs +1 -0
  206. package/dist/useDynamicFormState.d.cts +64 -40
  207. package/dist/useDynamicFormState.d.ts +64 -40
  208. package/dist/useDynamicFormState.js +1 -0
  209. package/dist/useEdgeInteraction.d.cts +3 -3
  210. package/dist/useEdgeInteraction.d.ts +3 -3
  211. package/dist/useGlobalSearch.d.cts +1 -1
  212. package/dist/useGlobalSearch.d.ts +1 -1
  213. package/dist/useQRCode.d.cts +2 -2
  214. package/dist/useQRCode.d.ts +2 -2
  215. package/dist/useSearchState.d.cts +15 -725
  216. package/dist/useSearchState.d.ts +15 -834
  217. package/dist/useSignatureHistory.d.cts +4 -4
  218. package/dist/useSignatureHistory.d.ts +4 -4
  219. package/dist/useSplitResize.d.cts +3 -3
  220. package/dist/useSplitResize.d.ts +3 -3
  221. package/dist/useTableQuery.cjs +3 -3
  222. package/dist/useTableQuery.d.cts +73 -34
  223. package/dist/useTableQuery.d.ts +73 -34
  224. package/dist/useTableQuery.js +3 -3
  225. package/dist/useTimeSelection.d.cts +1 -1
  226. package/dist/useTimeSelection.d.ts +1 -1
  227. package/dist/useTreeOperations.d.cts +5 -5
  228. package/dist/useTreeOperations.d.ts +5 -5
  229. package/dist/useWorkflowValidation.d.cts +3 -3
  230. package/dist/useWorkflowValidation.d.ts +3 -3
  231. package/dist/verification.d.cts +4 -4
  232. package/dist/verification.d.ts +4 -4
  233. package/docs/architecture.en.md +83 -0
  234. package/docs/architecture.md +83 -0
  235. package/docs/assets/README.md +47 -0
  236. package/docs/assets/naive-ui-components-banner.png +0 -0
  237. package/docs/assets/naive-ui-components-banner.svg +69 -0
  238. package/docs/assets/naive-ui-components-logo.png +0 -0
  239. package/docs/assets/naive-ui-components-logo.svg +22 -0
  240. package/docs/components.en.md +118 -0
  241. package/docs/components.md +118 -0
  242. package/docs/engineering.en.md +132 -0
  243. package/docs/engineering.md +133 -0
  244. package/docs/guides/usage.en.md +638 -0
  245. package/docs/guides/usage.md +699 -0
  246. package/docs/performance-0.15.0.md +20 -0
  247. package/docs/security-scan-2026-10-06.md +11 -0
  248. package/docs/security-scan-2026-10-18.md +16 -0
  249. package/package.json +35 -12
  250. package/dist/C_Form2.cjs +0 -1
  251. package/dist/C_Form2.js +0 -1
  252. package/dist/config.cjs +0 -1
  253. package/dist/config.d.cts +0 -33
  254. package/dist/config.d.ts +0 -33
  255. package/dist/config.js +0 -1
@@ -1,12 +1,6 @@
1
1
  :root{--c-primary: var(--primary-color, #2080f0);--c-primary-hover: var(--primary-color-hover, #4098fc);--c-primary-pressed: var(--primary-color-pressed, #1060c9);--c-success: var(--success-color, #18a058);--c-warning: var(--warning-color, #f0a020);--c-error: var(--error-color, #d03050);--c-info: var(--info-color, #2080f0);--c-bg-body: var(--body-color, #ffffff);--c-bg-card: var(--card-color, #ffffff);--c-bg-surface: var(--popover-color, #ffffff);--c-text-1: var(--text-color-1, #262626);--c-text-2: var(--text-color-2, #525252);--c-text-3: var(--text-color-3, #a3a3a3);--c-text-4: var(--text-color-4, #c0c0c0);--c-border: var(--border-color, #e5e7eb);--c-radius-sm: var(--border-radius-small, 4px);--c-radius: var(--border-radius, 6px);--c-transition-fast: 0.15s cubic-bezier(0.4, 0, 0.2, 1);--c-transition-base: 0.3s cubic-bezier(0.4, 0, 0.2, 1);--c-shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.08);--c-shadow-md: 0 4px 6px rgba(0, 0, 0, 0.1);--c-shadow-lg: 0 10px 15px rgba(0, 0, 0, 0.1)}
2
2
 
3
- /* unplugin-vue-components disabled */
4
- /* layer: default */
5
- .inline-flex[data-v-075758a0]{display:inline-flex;}
6
- .transform[data-v-075758a0]{transform:translateX(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotateZ(var(--un-rotate-z)) skewX(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z));}
7
- .px[data-v-075758a0]{padding-left:1rem;padding-right:1rem;}
8
-
9
- /* unplugin-vue-components disabled */.c-icon[data-v-075758a0] {
3
+ .c-icon[data-v-075758a0] {
10
4
  display: inline-flex;
11
5
  align-items: center;
12
6
  justify-content: center;
@@ -65,202 +59,122 @@
65
59
  transform: rotate(360deg);
66
60
  }
67
61
  }
68
- /* unplugin-vue-components disabled *//* 公式工作区:变量、原生输入与试算结果共享一个模型。 */
69
- .c-formula[data-v-b006a294] {
70
- container: formula-editor/inline-size;
71
- overflow: auto;
72
- border: 1px solid var(--c-border);
73
- border-radius: 16px;
74
- background: var(--c-bg-card);
75
- color: var(--c-text-2);
76
- }
77
- .c-formula h2[data-v-b006a294],
78
- .c-formula p[data-v-b006a294] {
79
- margin: 0;
80
- }
81
- .c-formula__title-row[data-v-b006a294] {
62
+
63
+ /* layer: default */
64
+ .inline-flex[data-v-075758a0]{display:inline-flex;}
65
+ .transform[data-v-075758a0]{transform:translateX(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotateZ(var(--un-rotate-z)) skewX(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z));}
66
+ .px[data-v-075758a0]{padding-left:1rem;padding-right:1rem;}
67
+
68
+ /* 原生文本输入与转义后的结构预览,避免 contenteditable 光标和样式副作用。 */
69
+ .formula-input__header[data-v-5b2f30eb] {
82
70
  display: flex;
83
- align-items: center;
84
71
  justify-content: space-between;
85
- flex-wrap: wrap;
86
- gap: 16px;
87
- padding: 24px;
88
- border-bottom: 1px solid var(--c-border);
89
- }
90
- .c-formula__title-row h2[data-v-b006a294] {
91
- margin-top: 8px;
92
- color: var(--c-text-1);
93
- font-size: 22px;
94
- letter-spacing: -0.4px;
95
- }
96
- .c-formula__title-row p[data-v-b006a294] {
97
- margin-top: 6px;
98
- font-size: 13px;
99
- }
100
- .c-formula__eyebrow[data-v-b006a294] {
101
- color: var(--c-primary);
102
- font: 600 10px ui-monospace, monospace;
103
- letter-spacing: 2px;
104
- }
105
- .c-formula__actions[data-v-b006a294] {
106
- display: flex;
107
72
  align-items: center;
108
73
  gap: 12px;
74
+ margin-bottom: 16px;
109
75
  }
110
- .c-formula__templates[data-v-b006a294] {
111
- display: grid;
112
- grid-template-columns: repeat(auto-fit, minmax(min(100%, 180px), 1fr));
113
- gap: 8px;
114
- padding: 16px 24px;
115
- border-bottom: 1px solid var(--c-border);
76
+ .formula-input__label[data-v-5b2f30eb] {
77
+ color: var(--c-text-1);
78
+ font-size: 13px;
79
+ font-weight: 600;
116
80
  }
117
- .c-formula__templates button[data-v-b006a294] {
81
+ .formula-input__clear[data-v-5b2f30eb] {
118
82
  appearance: none;
119
- display: flex;
120
- flex-direction: column;
121
- text-align: left;
122
- gap: 4px;
123
- border: 1px solid var(--c-border);
124
- border-radius: 10px;
125
- padding: 12px 16px;
83
+ border: 0;
126
84
  background: transparent;
127
- color: var(--c-text-2);
85
+ color: var(--c-primary);
128
86
  font: inherit;
129
- cursor: pointer;
130
- }
131
- .c-formula__templates button strong[data-v-b006a294] {
132
- color: var(--c-text-1);
133
87
  font-size: 12px;
88
+ cursor: pointer;
134
89
  }
135
- .c-formula__templates button span[data-v-b006a294] {
136
- font-size: 11px;
137
- }
138
- .c-formula__templates button[aria-pressed=true][data-v-b006a294], .c-formula__templates button[data-v-b006a294]:hover:enabled {
139
- border-color: var(--c-primary);
140
- background: color-mix(in srgb, var(--c-primary) 6%, transparent);
141
- }
142
- .c-formula__templates button[data-v-b006a294]:disabled {
143
- opacity: 0.5;
144
- cursor: not-allowed;
145
- }
146
- .c-formula__templates button[data-v-b006a294]:focus-visible {
147
- outline: 2px solid var(--c-primary);
148
- outline-offset: 2px;
149
- }
150
- .c-formula__body[data-v-b006a294] {
151
- display: grid;
152
- grid-template-columns: 210px minmax(0, 1fr) 300px;
153
- align-items: stretch;
154
- }
155
- .c-formula__body--no-sidebar[data-v-b006a294] {
156
- grid-template-columns: minmax(0, 1fr) 300px;
157
- }
158
- .c-formula__body--no-preview[data-v-b006a294] {
159
- grid-template-columns: 210px minmax(0, 1fr);
160
- }
161
- .c-formula__body--no-sidebar.c-formula__body--no-preview[data-v-b006a294] {
162
- grid-template-columns: minmax(0, 1fr);
163
- }
164
- .c-formula__sidebar[data-v-b006a294] {
165
- min-width: 0;
166
- border-right: 1px solid var(--c-border);
167
- }
168
- .c-formula__main[data-v-b006a294] {
169
- min-width: 0;
170
- padding: 24px;
171
- }
172
- .c-formula__keyboard[data-v-b006a294] {
173
- margin-top: 20px;
90
+ .formula-input__editor[data-v-5b2f30eb] {
91
+ display: block;
92
+ width: 100%;
93
+ box-sizing: border-box;
94
+ min-height: 168px;
95
+ resize: vertical;
96
+ padding: 18px;
174
97
  border: 1px solid var(--c-border);
175
98
  border-radius: 12px;
176
99
  background: color-mix(in srgb, var(--c-primary) 2%, var(--c-bg-card));
100
+ color: var(--c-text-1);
101
+ font: 15px/1.9 ui-monospace, "SFMono-Regular", Consolas, monospace;
102
+ outline: none;
103
+ overflow-wrap: anywhere;
177
104
  }
178
- .c-formula__keyboard summary[data-v-b006a294] {
179
- display: flex;
180
- align-items: center;
181
- gap: 10px;
182
- padding: 12px 16px;
183
- list-style: none;
184
- font-size: 12px;
185
- cursor: pointer;
186
- color: var(--c-primary);
187
- }
188
- .c-formula__keyboard summary[data-v-b006a294]::-webkit-details-marker {
189
- display: none;
105
+ .formula-input__editor[data-v-5b2f30eb]:focus {
106
+ border-color: var(--c-primary);
107
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--c-primary) 12%, transparent);
190
108
  }
191
- .c-formula__keyboard summary[data-v-b006a294]:focus-visible {
192
- outline: 2px solid var(--c-primary);
193
- outline-offset: 2px;
109
+ .formula-input__editor[data-v-5b2f30eb]::placeholder {
110
+ font-size: 13px;
111
+ color: var(--c-text-3);
194
112
  }
195
- .c-formula__keyboard[open] summary[data-v-b006a294] {
196
- border-bottom: 1px solid var(--c-border);
113
+ .formula-input__editor[data-v-5b2f30eb]:read-only {
114
+ background: color-mix(in srgb, var(--c-border) 25%, var(--c-bg-card));
197
115
  }
198
- .c-formula__keyboard[open] .c-formula__keyboard-chevron[data-v-b006a294] {
199
- transform: rotate(180deg);
116
+ .formula-input--error .formula-input__editor[data-v-5b2f30eb] {
117
+ border-color: var(--c-error);
200
118
  }
201
- .c-formula__keyboard-title[data-v-b006a294] {
202
- min-width: 0;
203
- flex: 1;
204
- color: var(--c-text-1);
205
- font-weight: 600;
119
+ .formula-input__tokens[data-v-5b2f30eb] {
120
+ margin-top: 16px;
121
+ padding: 14px 16px;
122
+ border: 1px dashed var(--c-border);
123
+ border-radius: 10px;
124
+ font: 12px/2 ui-monospace, monospace;
125
+ white-space: pre-wrap;
126
+ overflow-wrap: anywhere;
206
127
  }
207
- .c-formula__keyboard-title small[data-v-b006a294] {
128
+ .formula-input__tokens > span[data-v-5b2f30eb]:first-child {
208
129
  display: block;
209
- margin-top: 3px;
130
+ font: 11px/1.5 sans-serif;
131
+ margin-bottom: 8px;
210
132
  color: var(--c-text-3);
211
- font-size: 11px;
212
- font-weight: 400;
213
133
  }
214
- .c-formula__keyboard-chevron[data-v-b006a294] {
215
- flex-shrink: 0;
216
- }
217
- .c-formula__guide[data-v-b006a294] {
134
+ .formula-input__validation[data-v-5b2f30eb] {
218
135
  display: flex;
219
- align-items: flex-start;
220
- gap: 8px;
221
- margin-top: 20px;
222
- font-size: 11px;
136
+ align-items: center;
137
+ justify-content: space-between;
138
+ gap: 10px;
139
+ margin-top: 12px;
140
+ font-size: 12px;
223
141
  color: var(--c-text-3);
224
- line-height: 1.8;
142
+ line-height: 1.7;
225
143
  }
226
- .c-formula__guide[data-v-b006a294] > :first-child {
144
+ .formula-input__validation button[data-v-5b2f30eb] {
145
+ appearance: none;
227
146
  flex-shrink: 0;
228
- margin-top: 3px;
229
- }
230
- .c-formula__guide code[data-v-b006a294] {
147
+ border: 0;
148
+ padding: 2px 0;
231
149
  color: var(--c-primary);
150
+ background: transparent;
151
+ cursor: pointer;
152
+ font: inherit;
232
153
  }
233
- @container formula-editor (max-width: 980px) {
234
- .c-formula__body[data-v-b006a294] {
235
- grid-template-columns: 190px minmax(0, 1fr);
236
- }
237
- .c-formula__body--no-sidebar[data-v-b006a294] {
238
- grid-template-columns: minmax(0, 1fr);
239
- }
240
- .c-formula__body[data-v-b006a294] > .formula-preview {
241
- grid-column: 1/-1;
242
- border-left: 0;
243
- border-top: 1px solid var(--c-border);
154
+ .formula-input--error .formula-input__validation[data-v-5b2f30eb] {
155
+ color: var(--c-error);
244
156
  }
157
+ .formula-input button[data-v-5b2f30eb]:focus-visible {
158
+ outline: 2px solid var(--c-primary);
159
+ outline-offset: 3px;
245
160
  }
246
- @container formula-editor (max-width: 580px) {
247
- .c-formula__body[data-v-b006a294] {
248
- grid-template-columns: minmax(0, 1fr);
161
+ .formula-input .formula-token--variable[data-v-5b2f30eb] {
162
+ color: var(--c-primary);
163
+ padding: 2px 5px;
164
+ border-radius: 4px;
165
+ background: color-mix(in srgb, var(--c-primary) 9%, transparent);
249
166
  }
250
- .c-formula__sidebar[data-v-b006a294] {
251
- border-right: 0;
252
- border-bottom: 1px solid var(--c-border);
167
+ .formula-input .formula-token--function[data-v-5b2f30eb] {
168
+ color: var(--c-success);
169
+ font-weight: 600;
253
170
  }
254
- .c-formula__title-row[data-v-b006a294],
255
- .c-formula__main[data-v-b006a294] {
256
- padding: 18px;
171
+ .formula-input .formula-token--operator[data-v-5b2f30eb] {
172
+ color: var(--c-primary);
257
173
  }
174
+ .formula-input .formula-token--number[data-v-5b2f30eb] {
175
+ color: var(--c-warning);
258
176
  }
259
- /* unplugin-vue-components disabled */
260
- /* layer: default */
261
- .px[data-v-b006a294]{padding-left:1rem;padding-right:1rem;}
262
-
263
- /* unplugin-vue-components disabled *//* 隔离试算值与明确结果,组件宽度变化时自然换行。 */
177
+ /* 隔离试算值与明确结果,组件宽度变化时自然换行。 */
264
178
  .formula-preview[data-v-b2656900] {
265
179
  min-width: 0;
266
180
  padding: 24px;
@@ -321,161 +235,52 @@
321
235
  }
322
236
  .formula-preview__vars-title[data-v-b2656900] {
323
237
  display: flex;
324
- justify-content: space-between;
325
- font-size: 12px;
326
- font-weight: 600;
327
- }
328
- .formula-preview__vars-title span[data-v-b2656900] {
329
- color: var(--c-text-3);
330
- font-weight: 400;
331
- }
332
- .formula-preview__var-row[data-v-b2656900] {
333
- padding-top: 16px;
334
- }
335
- .formula-preview__var-row p[data-v-b2656900] {
336
- color: var(--c-text-3);
337
- font-size: 11px;
338
- margin-top: 5px;
339
- }
340
- .formula-preview__var-heading[data-v-b2656900] {
341
- display: flex;
342
- justify-content: space-between;
343
- gap: 8px;
344
- margin-bottom: 7px;
345
- }
346
- .formula-preview__var-heading label[data-v-b2656900] {
347
- font-size: 12px;
348
- color: var(--c-text-1);
349
- }
350
- .formula-preview__var-heading code[data-v-b2656900] {
351
- color: var(--c-text-3);
352
- font-size: 10px;
353
- overflow-wrap: anywhere;
354
- }
355
- .formula-preview__var-value[data-v-b2656900] {
356
- font-family: ui-monospace, monospace;
357
- }
358
- .formula-preview__empty[data-v-b2656900], .formula-preview__note[data-v-b2656900] {
359
- font-size: 11px;
360
- color: var(--c-text-3);
361
- line-height: 1.8;
362
- margin-top: 16px !important;
363
- }
364
- .formula-preview__note[data-v-b2656900] {
365
- margin-top: 24px !important;
366
- padding-top: 16px;
367
- border-top: 1px solid var(--c-border);
368
- }
369
- /* unplugin-vue-components disabled *//* 原生文本输入与转义后的结构预览,避免 contenteditable 光标和样式副作用。 */
370
- .formula-input__header[data-v-5b2f30eb] {
371
- display: flex;
372
- justify-content: space-between;
373
- align-items: center;
374
- gap: 12px;
375
- margin-bottom: 16px;
376
- }
377
- .formula-input__label[data-v-5b2f30eb] {
378
- color: var(--c-text-1);
379
- font-size: 13px;
380
- font-weight: 600;
381
- }
382
- .formula-input__clear[data-v-5b2f30eb] {
383
- appearance: none;
384
- border: 0;
385
- background: transparent;
386
- color: var(--c-primary);
387
- font: inherit;
388
- font-size: 12px;
389
- cursor: pointer;
390
- }
391
- .formula-input__editor[data-v-5b2f30eb] {
392
- display: block;
393
- width: 100%;
394
- box-sizing: border-box;
395
- min-height: 168px;
396
- resize: vertical;
397
- padding: 18px;
398
- border: 1px solid var(--c-border);
399
- border-radius: 12px;
400
- background: color-mix(in srgb, var(--c-primary) 2%, var(--c-bg-card));
401
- color: var(--c-text-1);
402
- font: 15px/1.9 ui-monospace, "SFMono-Regular", Consolas, monospace;
403
- outline: none;
404
- overflow-wrap: anywhere;
405
- }
406
- .formula-input__editor[data-v-5b2f30eb]:focus {
407
- border-color: var(--c-primary);
408
- box-shadow: 0 0 0 3px color-mix(in srgb, var(--c-primary) 12%, transparent);
409
- }
410
- .formula-input__editor[data-v-5b2f30eb]::placeholder {
411
- font-size: 13px;
412
- color: var(--c-text-3);
413
- }
414
- .formula-input__editor[data-v-5b2f30eb]:read-only {
415
- background: color-mix(in srgb, var(--c-border) 25%, var(--c-bg-card));
416
- }
417
- .formula-input--error .formula-input__editor[data-v-5b2f30eb] {
418
- border-color: var(--c-error);
419
- }
420
- .formula-input__tokens[data-v-5b2f30eb] {
421
- margin-top: 16px;
422
- padding: 14px 16px;
423
- border: 1px dashed var(--c-border);
424
- border-radius: 10px;
425
- font: 12px/2 ui-monospace, monospace;
426
- white-space: pre-wrap;
427
- overflow-wrap: anywhere;
428
- }
429
- .formula-input__tokens > span[data-v-5b2f30eb]:first-child {
430
- display: block;
431
- font: 11px/1.5 sans-serif;
432
- margin-bottom: 8px;
433
- color: var(--c-text-3);
434
- }
435
- .formula-input__validation[data-v-5b2f30eb] {
436
- display: flex;
437
- align-items: center;
438
- justify-content: space-between;
439
- gap: 10px;
440
- margin-top: 12px;
238
+ justify-content: space-between;
441
239
  font-size: 12px;
240
+ font-weight: 600;
241
+ }
242
+ .formula-preview__vars-title span[data-v-b2656900] {
442
243
  color: var(--c-text-3);
443
- line-height: 1.7;
244
+ font-weight: 400;
444
245
  }
445
- .formula-input__validation button[data-v-5b2f30eb] {
446
- appearance: none;
447
- flex-shrink: 0;
448
- border: 0;
449
- padding: 2px 0;
450
- color: var(--c-primary);
451
- background: transparent;
452
- cursor: pointer;
453
- font: inherit;
246
+ .formula-preview__var-row[data-v-b2656900] {
247
+ padding-top: 16px;
454
248
  }
455
- .formula-input--error .formula-input__validation[data-v-5b2f30eb] {
456
- color: var(--c-error);
249
+ .formula-preview__var-row p[data-v-b2656900] {
250
+ color: var(--c-text-3);
251
+ font-size: 11px;
252
+ margin-top: 5px;
457
253
  }
458
- .formula-input button[data-v-5b2f30eb]:focus-visible {
459
- outline: 2px solid var(--c-primary);
460
- outline-offset: 3px;
254
+ .formula-preview__var-heading[data-v-b2656900] {
255
+ display: flex;
256
+ justify-content: space-between;
257
+ gap: 8px;
258
+ margin-bottom: 7px;
461
259
  }
462
- .formula-input .formula-token--variable[data-v-5b2f30eb] {
463
- color: var(--c-primary);
464
- padding: 2px 5px;
465
- border-radius: 4px;
466
- background: color-mix(in srgb, var(--c-primary) 9%, transparent);
260
+ .formula-preview__var-heading label[data-v-b2656900] {
261
+ font-size: 12px;
262
+ color: var(--c-text-1);
467
263
  }
468
- .formula-input .formula-token--function[data-v-5b2f30eb] {
469
- color: var(--c-success);
470
- font-weight: 600;
264
+ .formula-preview__var-heading code[data-v-b2656900] {
265
+ color: var(--c-text-3);
266
+ font-size: 10px;
267
+ overflow-wrap: anywhere;
471
268
  }
472
- .formula-input .formula-token--operator[data-v-5b2f30eb] {
473
- color: var(--c-primary);
269
+ .formula-preview__var-value[data-v-b2656900] {
270
+ font-family: ui-monospace, monospace;
474
271
  }
475
- .formula-input .formula-token--number[data-v-5b2f30eb] {
476
- color: var(--c-warning);
272
+ .formula-preview__empty[data-v-b2656900], .formula-preview__note[data-v-b2656900] {
273
+ font-size: 11px;
274
+ color: var(--c-text-3);
275
+ line-height: 1.8;
276
+ margin-top: 16px !important;
277
+ }
278
+ .formula-preview__note[data-v-b2656900] {
279
+ margin-top: 24px !important;
280
+ padding-top: 16px;
281
+ border-top: 1px solid var(--c-border);
477
282
  }
478
- /* unplugin-vue-components disabled *//* VariablePanel 组件样式 */
283
+ /* VariablePanel 组件样式 */
479
284
  .variable-panel[data-v-2d73fec7] {
480
285
  display: flex;
481
286
  flex-direction: column;
@@ -635,7 +440,7 @@
635
440
  color: var(--c-text-3);
636
441
  margin-top: 3px;
637
442
  }
638
- /* unplugin-vue-components disabled *//*
443
+ /*
639
444
  * @Author: ChenYu ycyplus@gmail.com
640
445
  * @Date: 2026-10-07
641
446
  * @Description: 主题驱动的公式键帽与容器响应式布局
@@ -826,4 +631,198 @@
826
631
  .virtual-keyboard__key[data-v-05f0982d] {
827
632
  transition: none;
828
633
  }
829
- }
634
+ }
635
+ /* 公式工作区:变量、原生输入与试算结果共享一个模型。 */
636
+ .c-formula[data-v-b006a294] {
637
+ container: formula-editor/inline-size;
638
+ overflow: auto;
639
+ border: 1px solid var(--c-border);
640
+ border-radius: 16px;
641
+ background: var(--c-bg-card);
642
+ color: var(--c-text-2);
643
+ }
644
+ .c-formula h2[data-v-b006a294],
645
+ .c-formula p[data-v-b006a294] {
646
+ margin: 0;
647
+ }
648
+ .c-formula__title-row[data-v-b006a294] {
649
+ display: flex;
650
+ align-items: center;
651
+ justify-content: space-between;
652
+ flex-wrap: wrap;
653
+ gap: 16px;
654
+ padding: 24px;
655
+ border-bottom: 1px solid var(--c-border);
656
+ }
657
+ .c-formula__title-row h2[data-v-b006a294] {
658
+ margin-top: 8px;
659
+ color: var(--c-text-1);
660
+ font-size: 22px;
661
+ letter-spacing: -0.4px;
662
+ }
663
+ .c-formula__title-row p[data-v-b006a294] {
664
+ margin-top: 6px;
665
+ font-size: 13px;
666
+ }
667
+ .c-formula__eyebrow[data-v-b006a294] {
668
+ color: var(--c-primary);
669
+ font: 600 10px ui-monospace, monospace;
670
+ letter-spacing: 2px;
671
+ }
672
+ .c-formula__actions[data-v-b006a294] {
673
+ display: flex;
674
+ align-items: center;
675
+ gap: 12px;
676
+ }
677
+ .c-formula__templates[data-v-b006a294] {
678
+ display: grid;
679
+ grid-template-columns: repeat(auto-fit, minmax(min(100%, 180px), 1fr));
680
+ gap: 8px;
681
+ padding: 16px 24px;
682
+ border-bottom: 1px solid var(--c-border);
683
+ }
684
+ .c-formula__templates button[data-v-b006a294] {
685
+ appearance: none;
686
+ display: flex;
687
+ flex-direction: column;
688
+ text-align: left;
689
+ gap: 4px;
690
+ border: 1px solid var(--c-border);
691
+ border-radius: 10px;
692
+ padding: 12px 16px;
693
+ background: transparent;
694
+ color: var(--c-text-2);
695
+ font: inherit;
696
+ cursor: pointer;
697
+ }
698
+ .c-formula__templates button strong[data-v-b006a294] {
699
+ color: var(--c-text-1);
700
+ font-size: 12px;
701
+ }
702
+ .c-formula__templates button span[data-v-b006a294] {
703
+ font-size: 11px;
704
+ }
705
+ .c-formula__templates button[aria-pressed=true][data-v-b006a294], .c-formula__templates button[data-v-b006a294]:hover:enabled {
706
+ border-color: var(--c-primary);
707
+ background: color-mix(in srgb, var(--c-primary) 6%, transparent);
708
+ }
709
+ .c-formula__templates button[data-v-b006a294]:disabled {
710
+ opacity: 0.5;
711
+ cursor: not-allowed;
712
+ }
713
+ .c-formula__templates button[data-v-b006a294]:focus-visible {
714
+ outline: 2px solid var(--c-primary);
715
+ outline-offset: 2px;
716
+ }
717
+ .c-formula__body[data-v-b006a294] {
718
+ display: grid;
719
+ grid-template-columns: 210px minmax(0, 1fr) 300px;
720
+ align-items: stretch;
721
+ }
722
+ .c-formula__body--no-sidebar[data-v-b006a294] {
723
+ grid-template-columns: minmax(0, 1fr) 300px;
724
+ }
725
+ .c-formula__body--no-preview[data-v-b006a294] {
726
+ grid-template-columns: 210px minmax(0, 1fr);
727
+ }
728
+ .c-formula__body--no-sidebar.c-formula__body--no-preview[data-v-b006a294] {
729
+ grid-template-columns: minmax(0, 1fr);
730
+ }
731
+ .c-formula__sidebar[data-v-b006a294] {
732
+ min-width: 0;
733
+ border-right: 1px solid var(--c-border);
734
+ }
735
+ .c-formula__main[data-v-b006a294] {
736
+ min-width: 0;
737
+ padding: 24px;
738
+ }
739
+ .c-formula__keyboard[data-v-b006a294] {
740
+ margin-top: 20px;
741
+ border: 1px solid var(--c-border);
742
+ border-radius: 12px;
743
+ background: color-mix(in srgb, var(--c-primary) 2%, var(--c-bg-card));
744
+ }
745
+ .c-formula__keyboard summary[data-v-b006a294] {
746
+ display: flex;
747
+ align-items: center;
748
+ gap: 10px;
749
+ padding: 12px 16px;
750
+ list-style: none;
751
+ font-size: 12px;
752
+ cursor: pointer;
753
+ color: var(--c-primary);
754
+ }
755
+ .c-formula__keyboard summary[data-v-b006a294]::-webkit-details-marker {
756
+ display: none;
757
+ }
758
+ .c-formula__keyboard summary[data-v-b006a294]:focus-visible {
759
+ outline: 2px solid var(--c-primary);
760
+ outline-offset: 2px;
761
+ }
762
+ .c-formula__keyboard[open] summary[data-v-b006a294] {
763
+ border-bottom: 1px solid var(--c-border);
764
+ }
765
+ .c-formula__keyboard[open] .c-formula__keyboard-chevron[data-v-b006a294] {
766
+ transform: rotate(180deg);
767
+ }
768
+ .c-formula__keyboard-title[data-v-b006a294] {
769
+ min-width: 0;
770
+ flex: 1;
771
+ color: var(--c-text-1);
772
+ font-weight: 600;
773
+ }
774
+ .c-formula__keyboard-title small[data-v-b006a294] {
775
+ display: block;
776
+ margin-top: 3px;
777
+ color: var(--c-text-3);
778
+ font-size: 11px;
779
+ font-weight: 400;
780
+ }
781
+ .c-formula__keyboard-chevron[data-v-b006a294] {
782
+ flex-shrink: 0;
783
+ }
784
+ .c-formula__guide[data-v-b006a294] {
785
+ display: flex;
786
+ align-items: flex-start;
787
+ gap: 8px;
788
+ margin-top: 20px;
789
+ font-size: 11px;
790
+ color: var(--c-text-3);
791
+ line-height: 1.8;
792
+ }
793
+ .c-formula__guide[data-v-b006a294] > :first-child {
794
+ flex-shrink: 0;
795
+ margin-top: 3px;
796
+ }
797
+ .c-formula__guide code[data-v-b006a294] {
798
+ color: var(--c-primary);
799
+ }
800
+ @container formula-editor (max-width: 980px) {
801
+ .c-formula__body[data-v-b006a294] {
802
+ grid-template-columns: 190px minmax(0, 1fr);
803
+ }
804
+ .c-formula__body--no-sidebar[data-v-b006a294] {
805
+ grid-template-columns: minmax(0, 1fr);
806
+ }
807
+ .c-formula__body[data-v-b006a294] > .formula-preview {
808
+ grid-column: 1/-1;
809
+ border-left: 0;
810
+ border-top: 1px solid var(--c-border);
811
+ }
812
+ }
813
+ @container formula-editor (max-width: 580px) {
814
+ .c-formula__body[data-v-b006a294] {
815
+ grid-template-columns: minmax(0, 1fr);
816
+ }
817
+ .c-formula__sidebar[data-v-b006a294] {
818
+ border-right: 0;
819
+ border-bottom: 1px solid var(--c-border);
820
+ }
821
+ .c-formula__title-row[data-v-b006a294],
822
+ .c-formula__main[data-v-b006a294] {
823
+ padding: 18px;
824
+ }
825
+ }
826
+
827
+ /* layer: default */
828
+ .px[data-v-b006a294]{padding-left:1rem;padding-right:1rem;}