@ticatec/topside-elements 1.0.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 (809) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/LICENSE +21 -0
  3. package/README.md +308 -0
  4. package/README_CN.md +372 -0
  5. package/dist/app_layout/ClassicLayout.svelte +140 -0
  6. package/dist/app_layout/ClassicLayout.svelte.d.ts +21 -0
  7. package/dist/app_layout/ColumnsLayout.svelte +95 -0
  8. package/dist/app_layout/ColumnsLayout.svelte.d.ts +23 -0
  9. package/dist/app_layout/HeaderLayout.svelte +93 -0
  10. package/dist/app_layout/HeaderLayout.svelte.d.ts +14 -0
  11. package/dist/app_layout/README.md +316 -0
  12. package/dist/app_layout/README_CN.md +323 -0
  13. package/dist/app_layout/RowsLayout.svelte +95 -0
  14. package/dist/app_layout/RowsLayout.svelte.d.ts +23 -0
  15. package/dist/app_layout/SidebarLayout.svelte +93 -0
  16. package/dist/app_layout/SidebarLayout.svelte.d.ts +14 -0
  17. package/dist/app_layout/index.d.ts +6 -0
  18. package/dist/app_layout/index.js +6 -0
  19. package/dist/assets/loading.gif +0 -0
  20. package/dist/base-calendar/CalendarBase.svelte +188 -0
  21. package/dist/base-calendar/CalendarBase.svelte.d.ts +15 -0
  22. package/dist/base-calendar/CalendarDay.d.ts +7 -0
  23. package/dist/base-calendar/CalendarDay.js +1 -0
  24. package/dist/base-calendar/DateContext.d.ts +19 -0
  25. package/dist/base-calendar/DateContext.js +49 -0
  26. package/dist/base-calendar/MonthPickupPanel.svelte +101 -0
  27. package/dist/base-calendar/MonthPickupPanel.svelte.d.ts +8 -0
  28. package/dist/base-calendar/MonthlyCalendar.svelte +227 -0
  29. package/dist/base-calendar/MonthlyCalendar.svelte.d.ts +25 -0
  30. package/dist/base-calendar/YearPickupPanel.svelte +143 -0
  31. package/dist/base-calendar/YearPickupPanel.svelte.d.ts +9 -0
  32. package/dist/base-calendar/dateUtils.d.ts +9 -0
  33. package/dist/base-calendar/dateUtils.js +38 -0
  34. package/dist/base-calendar/index.d.ts +5 -0
  35. package/dist/base-calendar/index.js +5 -0
  36. package/dist/composite/pagination_panel/PaginationPanel.svelte +117 -0
  37. package/dist/composite/pagination_panel/PaginationPanel.svelte.d.ts +22 -0
  38. package/dist/composite/pagination_panel/README.md +130 -0
  39. package/dist/composite/pagination_panel/README_CN.md +130 -0
  40. package/dist/composite/pagination_panel/index.d.ts +4 -0
  41. package/dist/composite/pagination_panel/index.js +2 -0
  42. package/dist/composite/transfer/README.md +795 -0
  43. package/dist/composite/transfer/Transfer.svelte +136 -0
  44. package/dist/composite/transfer/Transfer.svelte.d.ts +25 -0
  45. package/dist/composite/transfer/index.d.ts +4 -0
  46. package/dist/composite/transfer/index.js +2 -0
  47. package/dist/data_display/accordion/Accordion.svelte +76 -0
  48. package/dist/data_display/accordion/Accordion.svelte.d.ts +12 -0
  49. package/dist/data_display/accordion/AccordionItem.d.ts +5 -0
  50. package/dist/data_display/accordion/AccordionItem.js +1 -0
  51. package/dist/data_display/accordion/AccordionItemView.svelte +128 -0
  52. package/dist/data_display/accordion/AccordionItemView.svelte.d.ts +13 -0
  53. package/dist/data_display/accordion/README.md +104 -0
  54. package/dist/data_display/accordion/README_CN.md +104 -0
  55. package/dist/data_display/accordion/index.d.ts +4 -0
  56. package/dist/data_display/accordion/index.js +2 -0
  57. package/dist/data_display/card/Card.svelte +107 -0
  58. package/dist/data_display/card/Card.svelte.d.ts +23 -0
  59. package/dist/data_display/card/CardAction.d.ts +36 -0
  60. package/dist/data_display/card/CardAction.js +1 -0
  61. package/dist/data_display/card/CardHeader.svelte +20 -0
  62. package/dist/data_display/card/CardHeader.svelte.d.ts +6 -0
  63. package/dist/data_display/card/CommonCardActionBar.svelte +156 -0
  64. package/dist/data_display/card/CommonCardActionBar.svelte.d.ts +15 -0
  65. package/dist/data_display/card/README.md +144 -0
  66. package/dist/data_display/card/README_CN.md +144 -0
  67. package/dist/data_display/card/index.d.ts +5 -0
  68. package/dist/data_display/card/index.js +2 -0
  69. package/dist/data_display/concise_data_table/Column.d.ts +9 -0
  70. package/dist/data_display/concise_data_table/Column.js +1 -0
  71. package/dist/data_display/concise_data_table/ConciseListTable.svelte +274 -0
  72. package/dist/data_display/concise_data_table/ConciseListTable.svelte.d.ts +20 -0
  73. package/dist/data_display/concise_data_table/DataCell.svelte +28 -0
  74. package/dist/data_display/concise_data_table/DataCell.svelte.d.ts +9 -0
  75. package/dist/data_display/concise_data_table/DataRow.svelte +44 -0
  76. package/dist/data_display/concise_data_table/DataRow.svelte.d.ts +11 -0
  77. package/dist/data_display/concise_data_table/README.md +177 -0
  78. package/dist/data_display/concise_data_table/README_CN.md +177 -0
  79. package/dist/data_display/concise_data_table/TableOptions.d.ts +11 -0
  80. package/dist/data_display/concise_data_table/TableOptions.js +1 -0
  81. package/dist/data_display/concise_data_table/index.d.ts +5 -0
  82. package/dist/data_display/concise_data_table/index.js +2 -0
  83. package/dist/data_display/concise_data_table/utils.d.ts +6 -0
  84. package/dist/data_display/concise_data_table/utils.js +38 -0
  85. package/dist/data_display/list_box/ListBox.svelte +424 -0
  86. package/dist/data_display/list_box/ListBox.svelte.d.ts +31 -0
  87. package/dist/data_display/list_box/README.md +158 -0
  88. package/dist/data_display/list_box/README_CN.md +158 -0
  89. package/dist/data_display/list_box/index.d.ts +4 -0
  90. package/dist/data_display/list_box/index.js +2 -0
  91. package/dist/data_display/tree_view/README.md +246 -0
  92. package/dist/data_display/tree_view/README_CN.md +240 -0
  93. package/dist/data_display/tree_view/TreeNodeView.svelte +227 -0
  94. package/dist/data_display/tree_view/TreeNodeView.svelte.d.ts +22 -0
  95. package/dist/data_display/tree_view/TreeView.svelte +225 -0
  96. package/dist/data_display/tree_view/TreeView.svelte.d.ts +45 -0
  97. package/dist/data_display/tree_view/index.d.ts +7 -0
  98. package/dist/data_display/tree_view/index.js +2 -0
  99. package/dist/data_table/DataTable.svelte +249 -0
  100. package/dist/data_table/DataTable.svelte.d.ts +57 -0
  101. package/dist/data_table/README.md +728 -0
  102. package/dist/data_table/README_CN.md +753 -0
  103. package/dist/data_table/UniDataTable.d.ts +30 -0
  104. package/dist/data_table/UniDataTable.js +89 -0
  105. package/dist/data_table/assets/loading.gif +0 -0
  106. package/dist/data_table/index.d.ts +15 -0
  107. package/dist/data_table/index.js +4 -0
  108. package/dist/data_table/lib/ActionsColumn.d.ts +15 -0
  109. package/dist/data_table/lib/ActionsColumn.js +1 -0
  110. package/dist/data_table/lib/CellAction.d.ts +9 -0
  111. package/dist/data_table/lib/CellAction.js +1 -0
  112. package/dist/data_table/lib/CommonHeaderCell.d.ts +37 -0
  113. package/dist/data_table/lib/CommonHeaderCell.js +1 -0
  114. package/dist/data_table/lib/CompareFn.d.ts +3 -0
  115. package/dist/data_table/lib/CompareFn.js +2 -0
  116. package/dist/data_table/lib/DataColumn.d.ts +83 -0
  117. package/dist/data_table/lib/DataColumn.js +1 -0
  118. package/dist/data_table/lib/FixedColumns.d.ts +15 -0
  119. package/dist/data_table/lib/FixedColumns.js +1 -0
  120. package/dist/data_table/lib/FormatCellFn.d.ts +2 -0
  121. package/dist/data_table/lib/FormatCellFn.js +1 -0
  122. package/dist/data_table/lib/HrefLink.d.ts +12 -0
  123. package/dist/data_table/lib/HrefLink.js +1 -0
  124. package/dist/data_table/lib/IndicatorColumn.d.ts +19 -0
  125. package/dist/data_table/lib/IndicatorColumn.js +1 -0
  126. package/dist/data_table/lib/OrderDirection.d.ts +4 -0
  127. package/dist/data_table/lib/OrderDirection.js +5 -0
  128. package/dist/data_table/lib/RowAction.d.ts +23 -0
  129. package/dist/data_table/lib/RowAction.js +1 -0
  130. package/dist/data_table/lib/TabContext.d.ts +4 -0
  131. package/dist/data_table/lib/TabContext.js +4 -0
  132. package/dist/data_table/lib/TableColumns.d.ts +9 -0
  133. package/dist/data_table/lib/TableColumns.js +12 -0
  134. package/dist/data_table/lib/TableUtils.d.ts +4 -0
  135. package/dist/data_table/lib/TableUtils.js +18 -0
  136. package/dist/data_table/lib/clickOutSide.d.ts +3 -0
  137. package/dist/data_table/lib/clickOutSide.js +17 -0
  138. package/dist/data_table/lib/summary.d.ts +40 -0
  139. package/dist/data_table/lib/summary.js +123 -0
  140. package/dist/data_table/lib/virtualWindow.d.ts +37 -0
  141. package/dist/data_table/lib/virtualWindow.js +41 -0
  142. package/dist/data_table/parts/ActionCell.svelte +23 -0
  143. package/dist/data_table/parts/ActionCell.svelte.d.ts +8 -0
  144. package/dist/data_table/parts/ActionsPanel.svelte +108 -0
  145. package/dist/data_table/parts/ActionsPanel.svelte.d.ts +19 -0
  146. package/dist/data_table/parts/ActionsRow.svelte +150 -0
  147. package/dist/data_table/parts/ActionsRow.svelte.d.ts +14 -0
  148. package/dist/data_table/parts/ContentPanel.svelte +210 -0
  149. package/dist/data_table/parts/ContentPanel.svelte.d.ts +36 -0
  150. package/dist/data_table/parts/DataCell.svelte +40 -0
  151. package/dist/data_table/parts/DataCell.svelte.d.ts +10 -0
  152. package/dist/data_table/parts/DataRow.svelte +43 -0
  153. package/dist/data_table/parts/DataRow.svelte.d.ts +13 -0
  154. package/dist/data_table/parts/FixedColumnsPanel.svelte +195 -0
  155. package/dist/data_table/parts/FixedColumnsPanel.svelte.d.ts +31 -0
  156. package/dist/data_table/parts/FixedHeaderPanel.svelte +151 -0
  157. package/dist/data_table/parts/FixedHeaderPanel.svelte.d.ts +19 -0
  158. package/dist/data_table/parts/FixedRow.svelte +88 -0
  159. package/dist/data_table/parts/FixedRow.svelte.d.ts +22 -0
  160. package/dist/data_table/parts/HrefCell.svelte +47 -0
  161. package/dist/data_table/parts/HrefCell.svelte.d.ts +8 -0
  162. package/dist/data_table/parts/PopupMenu.svelte +71 -0
  163. package/dist/data_table/parts/PopupMenu.svelte.d.ts +9 -0
  164. package/dist/data_table/parts/TableHeaderPanel.svelte +112 -0
  165. package/dist/data_table/parts/TableHeaderPanel.svelte.d.ts +17 -0
  166. package/dist/data_table/parts/TableRow.d.ts +4 -0
  167. package/dist/data_table/parts/TableRow.js +6 -0
  168. package/dist/data_table/parts/TableRows.d.ts +7 -0
  169. package/dist/data_table/parts/TableRows.js +13 -0
  170. package/dist/data_table/parts/TextCell.svelte +27 -0
  171. package/dist/data_table/parts/TextCell.svelte.d.ts +8 -0
  172. package/dist/data_table/parts/TreeRootCell.svelte +2 -0
  173. package/dist/data_table/parts/TreeRootCell.svelte.d.ts +18 -0
  174. package/dist/feedback/progress-bar/ProgressBar.svelte +150 -0
  175. package/dist/feedback/progress-bar/ProgressBar.svelte.d.ts +16 -0
  176. package/dist/feedback/progress-bar/ProgressStatus.d.ts +6 -0
  177. package/dist/feedback/progress-bar/ProgressStatus.js +8 -0
  178. package/dist/feedback/progress-bar/README.md +242 -0
  179. package/dist/feedback/progress-bar/README_CN.md +242 -0
  180. package/dist/feedback/progress-bar/index.d.ts +4 -0
  181. package/dist/feedback/progress-bar/index.js +4 -0
  182. package/dist/form/FormEditor.svelte +42 -0
  183. package/dist/form/FormEditor.svelte.d.ts +17 -0
  184. package/dist/form/attachment_files/AttachmentEditor.svelte +494 -0
  185. package/dist/form/attachment_files/AttachmentEditor.svelte.d.ts +75 -0
  186. package/dist/form/attachment_files/AttachmentFile.d.ts +53 -0
  187. package/dist/form/attachment_files/AttachmentFile.js +84 -0
  188. package/dist/form/attachment_files/AttachmentListItem.svelte +208 -0
  189. package/dist/form/attachment_files/AttachmentListItem.svelte.d.ts +25 -0
  190. package/dist/form/attachment_files/AttachmentTile.svelte +296 -0
  191. package/dist/form/attachment_files/AttachmentTile.svelte.d.ts +25 -0
  192. package/dist/form/attachment_files/FileUpload.d.ts +22 -0
  193. package/dist/form/attachment_files/FileUpload.js +1 -0
  194. package/dist/form/attachment_files/README.md +111 -0
  195. package/dist/form/attachment_files/README_CN.md +111 -0
  196. package/dist/form/attachment_files/UploadTask.d.ts +27 -0
  197. package/dist/form/attachment_files/UploadTask.js +1 -0
  198. package/dist/form/attachment_files/index.d.ts +11 -0
  199. package/dist/form/attachment_files/index.js +6 -0
  200. package/dist/form/cascade_options_select/CascadeOptionSelect.svelte +170 -0
  201. package/dist/form/cascade_options_select/CascadeOptionSelect.svelte.d.ts +23 -0
  202. package/dist/form/cascade_options_select/IsLeaf.d.ts +4 -0
  203. package/dist/form/cascade_options_select/IsLeaf.js +1 -0
  204. package/dist/form/cascade_options_select/OptionsBox.svelte +81 -0
  205. package/dist/form/cascade_options_select/OptionsBox.svelte.d.ts +12 -0
  206. package/dist/form/cascade_options_select/README.md +188 -0
  207. package/dist/form/cascade_options_select/README_CN.md +188 -0
  208. package/dist/form/cascade_options_select/index.d.ts +2 -0
  209. package/dist/form/cascade_options_select/index.js +2 -0
  210. package/dist/form/checkbox/CheckBox.svelte +222 -0
  211. package/dist/form/checkbox/CheckBox.svelte.d.ts +18 -0
  212. package/dist/form/checkbox/README.md +366 -0
  213. package/dist/form/checkbox/README_CN.md +366 -0
  214. package/dist/form/checkbox/index.d.ts +2 -0
  215. package/dist/form/checkbox/index.js +2 -0
  216. package/dist/form/color_picker/ColorPicker.svelte +173 -0
  217. package/dist/form/color_picker/ColorPicker.svelte.d.ts +9 -0
  218. package/dist/form/color_picker/ColorPickerPanel.svelte +178 -0
  219. package/dist/form/color_picker/ColorPickerPanel.svelte.d.ts +10 -0
  220. package/dist/form/color_picker/README.md +296 -0
  221. package/dist/form/color_picker/README_CN.md +296 -0
  222. package/dist/form/color_picker/index.d.ts +2 -0
  223. package/dist/form/color_picker/index.js +2 -0
  224. package/dist/form/common_editor/BasePicker.svelte +48 -0
  225. package/dist/form/common_editor/BasePicker.svelte.d.ts +11 -0
  226. package/dist/form/common_editor/CommonEditor.svelte +121 -0
  227. package/dist/form/common_editor/CommonEditor.svelte.d.ts +15 -0
  228. package/dist/form/common_editor/CommonEditorProps.d.ts +26 -0
  229. package/dist/form/common_editor/CommonEditorProps.js +1 -0
  230. package/dist/form/common_editor/CommonFieldProps.d.ts +56 -0
  231. package/dist/form/common_editor/CommonFieldProps.js +1 -0
  232. package/dist/form/common_editor/CommonPicker.svelte +201 -0
  233. package/dist/form/common_editor/CommonPicker.svelte.d.ts +29 -0
  234. package/dist/form/common_editor/CommonPickerProps.d.ts +12 -0
  235. package/dist/form/common_editor/CommonPickerProps.js +1 -0
  236. package/dist/form/common_editor/CommonPopupEditor.svelte +99 -0
  237. package/dist/form/common_editor/CommonPopupEditor.svelte.d.ts +18 -0
  238. package/dist/form/common_editor/NumberInput.svelte +255 -0
  239. package/dist/form/common_editor/NumberInput.svelte.d.ts +17 -0
  240. package/dist/form/common_editor/index.d.ts +8 -0
  241. package/dist/form/common_editor/index.js +6 -0
  242. package/dist/form/common_range_editor/CommonRangeEditor.svelte +141 -0
  243. package/dist/form/common_range_editor/CommonRangeEditor.svelte.d.ts +23 -0
  244. package/dist/form/common_range_editor/index.d.ts +2 -0
  245. package/dist/form/common_range_editor/index.js +2 -0
  246. package/dist/form/date_picker/DatePicker.svelte +71 -0
  247. package/dist/form/date_picker/DatePicker.svelte.d.ts +11 -0
  248. package/dist/form/date_picker/DateTimePicker.svelte +168 -0
  249. package/dist/form/date_picker/DateTimePicker.svelte.d.ts +14 -0
  250. package/dist/form/date_picker/README.md +341 -0
  251. package/dist/form/date_picker/README_CN.md +341 -0
  252. package/dist/form/date_picker/ScrollBar.svelte +129 -0
  253. package/dist/form/date_picker/ScrollBar.svelte.d.ts +10 -0
  254. package/dist/form/date_picker/TimePanel.svelte +95 -0
  255. package/dist/form/date_picker/TimePanel.svelte.d.ts +11 -0
  256. package/dist/form/date_picker/index.d.ts +4 -0
  257. package/dist/form/date_picker/index.js +4 -0
  258. package/dist/form/date_range/DateRangeEditor.svelte +123 -0
  259. package/dist/form/date_range/DateRangeEditor.svelte.d.ts +21 -0
  260. package/dist/form/date_range/README.md +250 -0
  261. package/dist/form/date_range/README_CN.md +250 -0
  262. package/dist/form/date_range/index.d.ts +2 -0
  263. package/dist/form/date_range/index.js +2 -0
  264. package/dist/form/events.d.ts +70 -0
  265. package/dist/form/events.js +6 -0
  266. package/dist/form/group_box/group-check-box/GroupCheckBox.svelte +211 -0
  267. package/dist/form/group_box/group-check-box/GroupCheckBox.svelte.d.ts +32 -0
  268. package/dist/form/group_box/group-check-box/README.md +336 -0
  269. package/dist/form/group_box/group-check-box/README_CN.md +336 -0
  270. package/dist/form/group_box/group-check-box/index.d.ts +2 -0
  271. package/dist/form/group_box/group-check-box/index.js +2 -0
  272. package/dist/form/group_box/group-radio-box/GroupRadioBox.svelte +159 -0
  273. package/dist/form/group_box/group-radio-box/GroupRadioBox.svelte.d.ts +29 -0
  274. package/dist/form/group_box/group-radio-box/README.md +910 -0
  275. package/dist/form/group_box/group-radio-box/README_CN.md +910 -0
  276. package/dist/form/group_box/group-radio-box/index.d.ts +2 -0
  277. package/dist/form/group_box/group-radio-box/index.js +2 -0
  278. package/dist/form/image_editor/ImageEditor.svelte +118 -0
  279. package/dist/form/image_editor/ImageEditor.svelte.d.ts +52 -0
  280. package/dist/form/image_editor/ImageFile.d.ts +11 -0
  281. package/dist/form/image_editor/ImageFile.js +1 -0
  282. package/dist/form/image_editor/ImagePreview.svelte +151 -0
  283. package/dist/form/image_editor/ImagePreview.svelte.d.ts +7 -0
  284. package/dist/form/image_editor/README.md +89 -0
  285. package/dist/form/image_editor/README_CN.md +89 -0
  286. package/dist/form/image_editor/index.d.ts +11 -0
  287. package/dist/form/image_editor/index.js +4 -0
  288. package/dist/form/input_options_select/InputOptionsSelect.svelte +257 -0
  289. package/dist/form/input_options_select/InputOptionsSelect.svelte.d.ts +18 -0
  290. package/dist/form/input_options_select/README.md +73 -0
  291. package/dist/form/input_options_select/README_CN.md +73 -0
  292. package/dist/form/input_options_select/index.d.ts +4 -0
  293. package/dist/form/input_options_select/index.js +2 -0
  294. package/dist/form/lookup_editor/LookupEditor.svelte +85 -0
  295. package/dist/form/lookup_editor/LookupEditor.svelte.d.ts +16 -0
  296. package/dist/form/lookup_editor/README.md +345 -0
  297. package/dist/form/lookup_editor/README_CN.md +345 -0
  298. package/dist/form/lookup_editor/index.d.ts +2 -0
  299. package/dist/form/lookup_editor/index.js +2 -0
  300. package/dist/form/memo_editor/MemoEditor.svelte +176 -0
  301. package/dist/form/memo_editor/MemoEditor.svelte.d.ts +18 -0
  302. package/dist/form/memo_editor/README.md +283 -0
  303. package/dist/form/memo_editor/README_CN.md +283 -0
  304. package/dist/form/memo_editor/index.d.ts +2 -0
  305. package/dist/form/memo_editor/index.js +2 -0
  306. package/dist/form/number_editor/NumberEditor.svelte +113 -0
  307. package/dist/form/number_editor/NumberEditor.svelte.d.ts +20 -0
  308. package/dist/form/number_editor/README.md +356 -0
  309. package/dist/form/number_editor/README_CN.md +356 -0
  310. package/dist/form/number_editor/index.d.ts +2 -0
  311. package/dist/form/number_editor/index.js +2 -0
  312. package/dist/form/number_range/NumberRange.svelte +69 -0
  313. package/dist/form/number_range/NumberRange.svelte.d.ts +20 -0
  314. package/dist/form/number_range/README.md +498 -0
  315. package/dist/form/number_range/README_CN.md +488 -0
  316. package/dist/form/number_range/index.d.ts +2 -0
  317. package/dist/form/number_range/index.js +2 -0
  318. package/dist/form/options_multi_select/OptionsMultiSelect.svelte +229 -0
  319. package/dist/form/options_multi_select/OptionsMultiSelect.svelte.d.ts +21 -0
  320. package/dist/form/options_multi_select/README.md +251 -0
  321. package/dist/form/options_multi_select/README_CN.md +242 -0
  322. package/dist/form/options_multi_select/index.d.ts +2 -0
  323. package/dist/form/options_multi_select/index.js +2 -0
  324. package/dist/form/options_select/OptionsSelect.svelte +208 -0
  325. package/dist/form/options_select/OptionsSelect.svelte.d.ts +43 -0
  326. package/dist/form/options_select/README.md +371 -0
  327. package/dist/form/options_select/README_CN.md +368 -0
  328. package/dist/form/options_select/index.d.ts +2 -0
  329. package/dist/form/options_select/index.js +2 -0
  330. package/dist/form/prompts_text_editor/PromptsTextEditor.svelte +96 -0
  331. package/dist/form/prompts_text_editor/PromptsTextEditor.svelte.d.ts +15 -0
  332. package/dist/form/prompts_text_editor/README.md +320 -0
  333. package/dist/form/prompts_text_editor/README_CN.md +320 -0
  334. package/dist/form/prompts_text_editor/index.d.ts +2 -0
  335. package/dist/form/prompts_text_editor/index.js +2 -0
  336. package/dist/form/radio_button/README.md +372 -0
  337. package/dist/form/radio_button/README_CN.md +363 -0
  338. package/dist/form/radio_button/RadioButton.svelte +177 -0
  339. package/dist/form/radio_button/RadioButton.svelte.d.ts +17 -0
  340. package/dist/form/radio_button/index.d.ts +2 -0
  341. package/dist/form/radio_button/index.js +2 -0
  342. package/dist/form/search_box/README.md +301 -0
  343. package/dist/form/search_box/README_CN.md +301 -0
  344. package/dist/form/search_box/SearchBox.svelte +91 -0
  345. package/dist/form/search_box/SearchBox.svelte.d.ts +11 -0
  346. package/dist/form/search_box/index.d.ts +2 -0
  347. package/dist/form/search_box/index.js +2 -0
  348. package/dist/form/switch/README.md +231 -0
  349. package/dist/form/switch/README_CN.md +255 -0
  350. package/dist/form/switch/Switch.svelte +138 -0
  351. package/dist/form/switch/Switch.svelte.d.ts +12 -0
  352. package/dist/form/switch/index.d.ts +2 -0
  353. package/dist/form/switch/index.js +2 -0
  354. package/dist/form/text_editor/PasswordEditor.svelte +70 -0
  355. package/dist/form/text_editor/PasswordEditor.svelte.d.ts +9 -0
  356. package/dist/form/text_editor/PasswordEditor_README.md +551 -0
  357. package/dist/form/text_editor/PasswordEditor_README_CN.md +551 -0
  358. package/dist/form/text_editor/README.md +356 -0
  359. package/dist/form/text_editor/README_CN.md +356 -0
  360. package/dist/form/text_editor/TextEditor.svelte +91 -0
  361. package/dist/form/text_editor/TextEditor.svelte.d.ts +16 -0
  362. package/dist/form/text_editor/index.d.ts +4 -0
  363. package/dist/form/text_editor/index.js +4 -0
  364. package/dist/form/time_editor/README.md +386 -0
  365. package/dist/form/time_editor/README_CN.md +386 -0
  366. package/dist/form/time_editor/TimeEditor.svelte +231 -0
  367. package/dist/form/time_editor/TimeEditor.svelte.d.ts +16 -0
  368. package/dist/form/time_editor/index.d.ts +2 -0
  369. package/dist/form/time_editor/index.js +2 -0
  370. package/dist/form/types.d.ts +8 -0
  371. package/dist/form/types.js +1 -0
  372. package/dist/form/unit-number-editor/README.md +352 -0
  373. package/dist/form/unit-number-editor/README_CN.md +352 -0
  374. package/dist/form/unit-number-editor/UnitNumberEditor.svelte +221 -0
  375. package/dist/form/unit-number-editor/UnitNumberEditor.svelte.d.ts +30 -0
  376. package/dist/form/unit-number-editor/UnitOption.d.ts +26 -0
  377. package/dist/form/unit-number-editor/UnitOption.js +1 -0
  378. package/dist/form/unit-number-editor/index.d.ts +4 -0
  379. package/dist/form/unit-number-editor/index.js +3 -0
  380. package/dist/general/button/Button.svelte +72 -0
  381. package/dist/general/button/Button.svelte.d.ts +23 -0
  382. package/dist/general/button/IconButton.svelte +60 -0
  383. package/dist/general/button/IconButton.svelte.d.ts +21 -0
  384. package/dist/general/button/IconButton_README.md +522 -0
  385. package/dist/general/button/IconButton_README_CN.md +522 -0
  386. package/dist/general/button/README.md +361 -0
  387. package/dist/general/button/README_CN.md +357 -0
  388. package/dist/general/button/TextButton.svelte +74 -0
  389. package/dist/general/button/TextButton.svelte.d.ts +22 -0
  390. package/dist/general/button/TextButton_README.md +569 -0
  391. package/dist/general/button/TextButton_README_CN.md +569 -0
  392. package/dist/general/button/index.d.ts +8 -0
  393. package/dist/general/button/index.js +6 -0
  394. package/dist/general/icon/Icon.svelte +90 -0
  395. package/dist/general/icon/Icon.svelte.d.ts +14 -0
  396. package/dist/general/icon/README.md +255 -0
  397. package/dist/general/icon/README_CN.md +255 -0
  398. package/dist/general/icon/index.d.ts +2 -0
  399. package/dist/general/icon/index.js +2 -0
  400. package/dist/general/separator/README.md +203 -0
  401. package/dist/general/separator/README_CN.md +203 -0
  402. package/dist/general/separator/Separator.svelte +24 -0
  403. package/dist/general/separator/Separator.svelte.d.ts +7 -0
  404. package/dist/general/separator/index.d.ts +2 -0
  405. package/dist/general/separator/index.js +2 -0
  406. package/dist/general/split/README.md +312 -0
  407. package/dist/general/split/README_CN.md +312 -0
  408. package/dist/general/split/Split.svelte +150 -0
  409. package/dist/general/split/Split.svelte.d.ts +10 -0
  410. package/dist/general/split/index.d.ts +2 -0
  411. package/dist/general/split/index.js +2 -0
  412. package/dist/general/tag/README.md +319 -0
  413. package/dist/general/tag/README_CN.md +319 -0
  414. package/dist/general/tag/Tag.svelte +193 -0
  415. package/dist/general/tag/Tag.svelte.d.ts +17 -0
  416. package/dist/general/tag/index.d.ts +2 -0
  417. package/dist/general/tag/index.js +2 -0
  418. package/dist/i18nRes/i18nRes.d.ts +47 -0
  419. package/dist/i18nRes/i18nRes.js +49 -0
  420. package/dist/i18nRes/index.d.ts +2 -0
  421. package/dist/i18nRes/index.js +2 -0
  422. package/dist/index.d.ts +10 -0
  423. package/dist/index.js +4 -0
  424. package/dist/layouts/action_bar/ActionBar.svelte +60 -0
  425. package/dist/layouts/action_bar/ActionBar.svelte.d.ts +12 -0
  426. package/dist/layouts/action_bar/ButtonAction.d.ts +1 -0
  427. package/dist/layouts/action_bar/ButtonAction.js +1 -0
  428. package/dist/layouts/action_bar/README.md +304 -0
  429. package/dist/layouts/action_bar/README_CN.md +304 -0
  430. package/dist/layouts/action_bar/index.d.ts +5 -0
  431. package/dist/layouts/action_bar/index.js +2 -0
  432. package/dist/layouts/app_top_bar/AppTopBar.svelte +83 -0
  433. package/dist/layouts/app_top_bar/AppTopBar.svelte.d.ts +12 -0
  434. package/dist/layouts/app_top_bar/README.md +258 -0
  435. package/dist/layouts/app_top_bar/README_CN.md +258 -0
  436. package/dist/layouts/app_top_bar/index.d.ts +2 -0
  437. package/dist/layouts/app_top_bar/index.js +2 -0
  438. package/dist/layouts/box/Box.svelte +104 -0
  439. package/dist/layouts/box/Box.svelte.d.ts +15 -0
  440. package/dist/layouts/box/README.md +312 -0
  441. package/dist/layouts/box/README_CN.md +312 -0
  442. package/dist/layouts/box/index.d.ts +2 -0
  443. package/dist/layouts/box/index.js +2 -0
  444. package/dist/layouts/criteria_field/CriteriaField.svelte +97 -0
  445. package/dist/layouts/criteria_field/CriteriaField.svelte.d.ts +13 -0
  446. package/dist/layouts/criteria_field/README.md +277 -0
  447. package/dist/layouts/criteria_field/README_CN.md +277 -0
  448. package/dist/layouts/criteria_field/index.d.ts +2 -0
  449. package/dist/layouts/criteria_field/index.js +2 -0
  450. package/dist/layouts/form_field/FormField.svelte +139 -0
  451. package/dist/layouts/form_field/FormField.svelte.d.ts +19 -0
  452. package/dist/layouts/form_field/README.md +252 -0
  453. package/dist/layouts/form_field/README_CN.md +251 -0
  454. package/dist/layouts/form_field/index.d.ts +2 -0
  455. package/dist/layouts/form_field/index.js +2 -0
  456. package/dist/layouts/form_panel/flex_form/CellField.svelte +42 -0
  457. package/dist/layouts/form_panel/flex_form/CellField.svelte.d.ts +13 -0
  458. package/dist/layouts/form_panel/flex_form/EmptyCell.svelte +26 -0
  459. package/dist/layouts/form_panel/flex_form/EmptyCell.svelte.d.ts +6 -0
  460. package/dist/layouts/form_panel/flex_form/FlexForm.svelte +44 -0
  461. package/dist/layouts/form_panel/flex_form/FlexForm.svelte.d.ts +9 -0
  462. package/dist/layouts/form_panel/flex_form/README.md +202 -0
  463. package/dist/layouts/form_panel/flex_form/README_CN.md +202 -0
  464. package/dist/layouts/form_panel/flex_form/RowBreak.svelte +11 -0
  465. package/dist/layouts/form_panel/flex_form/RowBreak.svelte.d.ts +18 -0
  466. package/dist/layouts/form_panel/flex_form/index.d.ts +6 -0
  467. package/dist/layouts/form_panel/flex_form/index.js +6 -0
  468. package/dist/layouts/form_panel/flex_row_form/Cell.svelte +42 -0
  469. package/dist/layouts/form_panel/flex_row_form/Cell.svelte.d.ts +13 -0
  470. package/dist/layouts/form_panel/flex_row_form/FormContainer.svelte +45 -0
  471. package/dist/layouts/form_panel/flex_row_form/FormContainer.svelte.d.ts +10 -0
  472. package/dist/layouts/form_panel/flex_row_form/README.md +224 -0
  473. package/dist/layouts/form_panel/flex_row_form/README_CN.md +224 -0
  474. package/dist/layouts/form_panel/flex_row_form/Row.svelte +37 -0
  475. package/dist/layouts/form_panel/flex_row_form/Row.svelte.d.ts +12 -0
  476. package/dist/layouts/form_panel/flex_row_form/index.d.ts +7 -0
  477. package/dist/layouts/form_panel/flex_row_form/index.js +7 -0
  478. package/dist/layouts/form_panel/grid_form/EmptyCell.svelte +32 -0
  479. package/dist/layouts/form_panel/grid_form/EmptyCell.svelte.d.ts +9 -0
  480. package/dist/layouts/form_panel/grid_form/GridField.svelte +48 -0
  481. package/dist/layouts/form_panel/grid_form/GridField.svelte.d.ts +22 -0
  482. package/dist/layouts/form_panel/grid_form/GridForm.svelte +49 -0
  483. package/dist/layouts/form_panel/grid_form/GridForm.svelte.d.ts +13 -0
  484. package/dist/layouts/form_panel/grid_form/README.md +217 -0
  485. package/dist/layouts/form_panel/grid_form/README_CN.md +217 -0
  486. package/dist/layouts/form_panel/grid_form/index.d.ts +5 -0
  487. package/dist/layouts/form_panel/grid_form/index.js +5 -0
  488. package/dist/layouts/form_panel/index.d.ts +4 -0
  489. package/dist/layouts/form_panel/index.js +4 -0
  490. package/dist/layouts/page/Page.svelte +98 -0
  491. package/dist/layouts/page/Page.svelte.d.ts +19 -0
  492. package/dist/layouts/page/PageHeader.svelte +59 -0
  493. package/dist/layouts/page/PageHeader.svelte.d.ts +12 -0
  494. package/dist/layouts/page/README.md +286 -0
  495. package/dist/layouts/page/README_CN.md +286 -0
  496. package/dist/layouts/page/index.d.ts +6 -0
  497. package/dist/layouts/page/index.js +4 -0
  498. package/dist/lib/index.d.ts +7 -0
  499. package/dist/lib/index.js +3 -0
  500. package/dist/navigation/breadcrumbs/Breadcrumb.d.ts +4 -0
  501. package/dist/navigation/breadcrumbs/Breadcrumb.js +1 -0
  502. package/dist/navigation/breadcrumbs/Breadcrumbs.svelte +91 -0
  503. package/dist/navigation/breadcrumbs/Breadcrumbs.svelte.d.ts +12 -0
  504. package/dist/navigation/breadcrumbs/README.md +257 -0
  505. package/dist/navigation/breadcrumbs/README_CN.md +257 -0
  506. package/dist/navigation/breadcrumbs/index.d.ts +4 -0
  507. package/dist/navigation/breadcrumbs/index.js +2 -0
  508. package/dist/navigation/nav_menu/MenuItem.d.ts +9 -0
  509. package/dist/navigation/nav_menu/MenuItem.js +1 -0
  510. package/dist/navigation/nav_menu/Menus.d.ts +12 -0
  511. package/dist/navigation/nav_menu/Menus.js +15 -0
  512. package/dist/navigation/nav_menu/NavigatorMenu.svelte +318 -0
  513. package/dist/navigation/nav_menu/NavigatorMenu.svelte.d.ts +17 -0
  514. package/dist/navigation/nav_menu/NavigatorMenuItem.svelte +183 -0
  515. package/dist/navigation/nav_menu/NavigatorMenuItem.svelte.d.ts +18 -0
  516. package/dist/navigation/nav_menu/README.md +224 -0
  517. package/dist/navigation/nav_menu/README_CN.md +224 -0
  518. package/dist/navigation/nav_menu/index.d.ts +8 -0
  519. package/dist/navigation/nav_menu/index.js +4 -0
  520. package/dist/navigation/navigator/NavItemStatus.d.ts +5 -0
  521. package/dist/navigation/navigator/NavItemStatus.js +6 -0
  522. package/dist/navigation/navigator/Navigator.svelte +156 -0
  523. package/dist/navigation/navigator/Navigator.svelte.d.ts +15 -0
  524. package/dist/navigation/navigator/README.md +304 -0
  525. package/dist/navigation/navigator/README_CN.md +304 -0
  526. package/dist/navigation/navigator/index.d.ts +4 -0
  527. package/dist/navigation/navigator/index.js +4 -0
  528. package/dist/navigation/page-stack/PageStack.svelte +160 -0
  529. package/dist/navigation/page-stack/PageStack.svelte.d.ts +24 -0
  530. package/dist/navigation/page-stack/PageStackContext.d.ts +25 -0
  531. package/dist/navigation/page-stack/PageStackContext.js +12 -0
  532. package/dist/navigation/page-stack/PageStackFrame.svelte +24 -0
  533. package/dist/navigation/page-stack/PageStackFrame.svelte.d.ts +11 -0
  534. package/dist/navigation/page-stack/README.md +154 -0
  535. package/dist/navigation/page-stack/README_CN.md +154 -0
  536. package/dist/navigation/page-stack/index.d.ts +6 -0
  537. package/dist/navigation/page-stack/index.js +4 -0
  538. package/dist/navigation/pagination/Pagination.svelte +300 -0
  539. package/dist/navigation/pagination/Pagination.svelte.d.ts +15 -0
  540. package/dist/navigation/pagination/README.md +248 -0
  541. package/dist/navigation/pagination/README_CN.md +248 -0
  542. package/dist/navigation/pagination/index.d.ts +2 -0
  543. package/dist/navigation/pagination/index.js +2 -0
  544. package/dist/navigation/progress_step_bar/ProgressStep.d.ts +20 -0
  545. package/dist/navigation/progress_step_bar/ProgressStep.js +6 -0
  546. package/dist/navigation/progress_step_bar/ProgressStepBar.svelte +56 -0
  547. package/dist/navigation/progress_step_bar/ProgressStepBar.svelte.d.ts +11 -0
  548. package/dist/navigation/progress_step_bar/ProgressStepBlock.svelte +197 -0
  549. package/dist/navigation/progress_step_bar/ProgressStepBlock.svelte.d.ts +12 -0
  550. package/dist/navigation/progress_step_bar/README.md +247 -0
  551. package/dist/navigation/progress_step_bar/README_CN.md +247 -0
  552. package/dist/navigation/progress_step_bar/index.d.ts +6 -0
  553. package/dist/navigation/progress_step_bar/index.js +5 -0
  554. package/dist/navigation/tabs/README.md +353 -0
  555. package/dist/navigation/tabs/README_CN.md +353 -0
  556. package/dist/navigation/tabs/Tabs.svelte +400 -0
  557. package/dist/navigation/tabs/Tabs.svelte.d.ts +28 -0
  558. package/dist/navigation/tabs/index.d.ts +4 -0
  559. package/dist/navigation/tabs/index.js +2 -0
  560. package/dist/overlay/common/DateFormats.d.ts +5 -0
  561. package/dist/overlay/common/DateFormats.js +6 -0
  562. package/dist/overlay/common/FloatingPanel.svelte +69 -0
  563. package/dist/overlay/common/FloatingPanel.svelte.d.ts +15 -0
  564. package/dist/overlay/common/FullscreenOverlay.svelte +42 -0
  565. package/dist/overlay/common/FullscreenOverlay.svelte.d.ts +8 -0
  566. package/dist/overlay/common/ModalPopover.svelte +56 -0
  567. package/dist/overlay/common/ModalPopover.svelte.d.ts +11 -0
  568. package/dist/overlay/common/Popover.svelte +155 -0
  569. package/dist/overlay/common/Popover.svelte.d.ts +17 -0
  570. package/dist/overlay/common/escapeClose.d.ts +28 -0
  571. package/dist/overlay/common/escapeClose.js +47 -0
  572. package/dist/overlay/common/focusTrap.d.ts +8 -0
  573. package/dist/overlay/common/focusTrap.js +83 -0
  574. package/dist/overlay/common/mountSingleton.d.ts +28 -0
  575. package/dist/overlay/common/mountSingleton.js +48 -0
  576. package/dist/overlay/common/outsideClick.d.ts +28 -0
  577. package/dist/overlay/common/outsideClick.js +20 -0
  578. package/dist/overlay/common/scrollLock.d.ts +8 -0
  579. package/dist/overlay/common/scrollLock.js +49 -0
  580. package/dist/overlay/common/topside-utils.d.ts +3 -0
  581. package/dist/overlay/common/topside-utils.js +19 -0
  582. package/dist/overlay/common/utils.d.ts +13 -0
  583. package/dist/overlay/common/utils.js +136 -0
  584. package/dist/overlay/context-menu/ContextMenu.svelte.d.ts +22 -0
  585. package/dist/overlay/context-menu/ContextMenu.svelte.js +53 -0
  586. package/dist/overlay/context-menu/ContextMenuItem.d.ts +31 -0
  587. package/dist/overlay/context-menu/ContextMenuItem.js +1 -0
  588. package/dist/overlay/context-menu/ContextMenuPanel.svelte +211 -0
  589. package/dist/overlay/context-menu/ContextMenuPanel.svelte.d.ts +3 -0
  590. package/dist/overlay/context-menu/README.md +361 -0
  591. package/dist/overlay/context-menu/README_CN.md +361 -0
  592. package/dist/overlay/context-menu/index.d.ts +6 -0
  593. package/dist/overlay/context-menu/index.js +3 -0
  594. package/dist/overlay/dialog/BeforeClose.d.ts +4 -0
  595. package/dist/overlay/dialog/BeforeClose.js +1 -0
  596. package/dist/overlay/dialog/CommonDialog.svelte +58 -0
  597. package/dist/overlay/dialog/CommonDialog.svelte.d.ts +22 -0
  598. package/dist/overlay/dialog/Dialog.svelte +255 -0
  599. package/dist/overlay/dialog/Dialog.svelte.d.ts +29 -0
  600. package/dist/overlay/dialog/DialogBoard.svelte +15 -0
  601. package/dist/overlay/dialog/DialogBoard.svelte.d.ts +18 -0
  602. package/dist/overlay/dialog/DialogManager.svelte.d.ts +24 -0
  603. package/dist/overlay/dialog/DialogManager.svelte.js +58 -0
  604. package/dist/overlay/dialog/DialogWrapper.svelte +12 -0
  605. package/dist/overlay/dialog/DialogWrapper.svelte.d.ts +8 -0
  606. package/dist/overlay/dialog/IDialog.d.ts +14 -0
  607. package/dist/overlay/dialog/IDialog.js +2 -0
  608. package/dist/overlay/dialog/README.md +540 -0
  609. package/dist/overlay/dialog/README_CN.md +540 -0
  610. package/dist/overlay/dialog/index.d.ts +14 -0
  611. package/dist/overlay/dialog/index.js +7 -0
  612. package/dist/overlay/drawer/Drawer.svelte +116 -0
  613. package/dist/overlay/drawer/Drawer.svelte.d.ts +11 -0
  614. package/dist/overlay/drawer/README.md +249 -0
  615. package/dist/overlay/drawer/README_CN.md +249 -0
  616. package/dist/overlay/drawer/index.d.ts +2 -0
  617. package/dist/overlay/drawer/index.js +2 -0
  618. package/dist/overlay/indicator/Indicator.svelte.d.ts +14 -0
  619. package/dist/overlay/indicator/Indicator.svelte.js +27 -0
  620. package/dist/overlay/indicator/IndicatorPanel.svelte +43 -0
  621. package/dist/overlay/indicator/IndicatorPanel.svelte.d.ts +18 -0
  622. package/dist/overlay/indicator/README.md +142 -0
  623. package/dist/overlay/indicator/README_CN.md +142 -0
  624. package/dist/overlay/indicator/index.d.ts +2 -0
  625. package/dist/overlay/indicator/index.js +2 -0
  626. package/dist/overlay/message-box/IMessageBox.d.ts +17 -0
  627. package/dist/overlay/message-box/IMessageBox.js +6 -0
  628. package/dist/overlay/message-box/MessageBox.svelte.d.ts +36 -0
  629. package/dist/overlay/message-box/MessageBox.svelte.js +77 -0
  630. package/dist/overlay/message-box/MessageBoxPanel.svelte +247 -0
  631. package/dist/overlay/message-box/MessageBoxPanel.svelte.d.ts +3 -0
  632. package/dist/overlay/message-box/README.md +92 -0
  633. package/dist/overlay/message-box/README_CN.md +92 -0
  634. package/dist/overlay/message-box/index.d.ts +5 -0
  635. package/dist/overlay/message-box/index.js +4 -0
  636. package/dist/overlay/toast/README.md +59 -0
  637. package/dist/overlay/toast/README_CN.md +59 -0
  638. package/dist/overlay/toast/Toast.svelte.d.ts +18 -0
  639. package/dist/overlay/toast/Toast.svelte.js +49 -0
  640. package/dist/overlay/toast/ToastPanel.svelte +56 -0
  641. package/dist/overlay/toast/ToastPanel.svelte.d.ts +3 -0
  642. package/dist/overlay/toast/index.d.ts +2 -0
  643. package/dist/overlay/toast/index.js +2 -0
  644. package/dist/overlay/tooltip/README.md +334 -0
  645. package/dist/overlay/tooltip/README_CN.md +334 -0
  646. package/dist/overlay/tooltip/Tooltip.svelte +280 -0
  647. package/dist/overlay/tooltip/Tooltip.svelte.d.ts +7 -0
  648. package/dist/overlay/tooltip/index.d.ts +2 -0
  649. package/dist/overlay/tooltip/index.js +2 -0
  650. package/dist/topside-elements.css +1753 -0
  651. package/dist/topsideContext.d.ts +10 -0
  652. package/dist/topsideContext.js +59 -0
  653. package/dist/types.d.ts +184 -0
  654. package/dist/types.js +9 -0
  655. package/dist/utils/exclude.d.ts +1 -0
  656. package/dist/utils/exclude.js +3 -0
  657. package/dist/utils/prefixFilter.d.ts +5 -0
  658. package/dist/utils/prefixFilter.js +33 -0
  659. package/docs/NAMING.md +364 -0
  660. package/docs/NAMING_CN.md +364 -0
  661. package/docs/components/README.md +135 -0
  662. package/docs/components/accordion/README.md +71 -0
  663. package/docs/components/accordion/example.svelte +8 -0
  664. package/docs/components/action-bar/README.md +114 -0
  665. package/docs/components/action-bar/example.svelte +7 -0
  666. package/docs/components/app-top-bar/README.md +60 -0
  667. package/docs/components/app-top-bar/example.svelte +9 -0
  668. package/docs/components/attachment-editor/README.md +224 -0
  669. package/docs/components/attachment-editor/example.svelte +22 -0
  670. package/docs/components/box/README.md +63 -0
  671. package/docs/components/box/example.svelte +10 -0
  672. package/docs/components/breadcrumbs/README.md +86 -0
  673. package/docs/components/breadcrumbs/example.svelte +11 -0
  674. package/docs/components/button/README.md +110 -0
  675. package/docs/components/button/example.svelte +11 -0
  676. package/docs/components/card/README.md +127 -0
  677. package/docs/components/card/example.svelte +10 -0
  678. package/docs/components/cascade-options-select/README.md +168 -0
  679. package/docs/components/cascade-options-select/example.svelte +18 -0
  680. package/docs/components/checkbox/README.md +103 -0
  681. package/docs/components/checkbox/example.svelte +15 -0
  682. package/docs/components/classic-layout/README.md +76 -0
  683. package/docs/components/classic-layout/example.svelte +16 -0
  684. package/docs/components/color-picker/README.md +132 -0
  685. package/docs/components/color-picker/example.svelte +16 -0
  686. package/docs/components/columns-layout/README.md +74 -0
  687. package/docs/components/columns-layout/example.svelte +16 -0
  688. package/docs/components/common-dialog/README.md +118 -0
  689. package/docs/components/common-dialog/example.svelte +13 -0
  690. package/docs/components/concise-data-table/README.md +296 -0
  691. package/docs/components/concise-data-table/example.svelte +16 -0
  692. package/docs/components/context-menu/README.md +99 -0
  693. package/docs/components/context-menu/example.svelte +10 -0
  694. package/docs/components/criteria-field/README.md +70 -0
  695. package/docs/components/criteria-field/example.svelte +10 -0
  696. package/docs/components/data-table/README.md +388 -0
  697. package/docs/components/data-table/example.svelte +23 -0
  698. package/docs/components/date-picker/README.md +136 -0
  699. package/docs/components/date-picker/example.svelte +16 -0
  700. package/docs/components/date-range/README.md +122 -0
  701. package/docs/components/date-range/example.svelte +15 -0
  702. package/docs/components/date-time-picker/README.md +142 -0
  703. package/docs/components/date-time-picker/example.svelte +16 -0
  704. package/docs/components/dialog/README.md +181 -0
  705. package/docs/components/dialog/example.svelte +13 -0
  706. package/docs/components/dialog-board/README.md +41 -0
  707. package/docs/components/dialog-board/example.svelte +5 -0
  708. package/docs/components/drawer/README.md +70 -0
  709. package/docs/components/drawer/example.svelte +12 -0
  710. package/docs/components/flex-form/README.md +55 -0
  711. package/docs/components/flex-form/example.svelte +7 -0
  712. package/docs/components/flex-row-form/README.md +56 -0
  713. package/docs/components/flex-row-form/example.svelte +7 -0
  714. package/docs/components/form-field/README.md +84 -0
  715. package/docs/components/form-field/example.svelte +10 -0
  716. package/docs/components/full-screen-overlay/README.md +66 -0
  717. package/docs/components/full-screen-overlay/example.svelte +11 -0
  718. package/docs/components/grid-form/README.md +85 -0
  719. package/docs/components/grid-form/example.svelte +9 -0
  720. package/docs/components/group-check-box/README.md +147 -0
  721. package/docs/components/group-check-box/example.svelte +21 -0
  722. package/docs/components/group-radio-box/README.md +144 -0
  723. package/docs/components/group-radio-box/example.svelte +21 -0
  724. package/docs/components/header-layout/README.md +65 -0
  725. package/docs/components/header-layout/example.svelte +12 -0
  726. package/docs/components/icon/README.md +88 -0
  727. package/docs/components/icon/example.svelte +9 -0
  728. package/docs/components/icon-button/README.md +100 -0
  729. package/docs/components/icon-button/example.svelte +11 -0
  730. package/docs/components/image-editor/README.md +262 -0
  731. package/docs/components/image-editor/example.svelte +21 -0
  732. package/docs/components/indicator/README.md +53 -0
  733. package/docs/components/indicator/example.svelte +14 -0
  734. package/docs/components/input-options-select/README.md +163 -0
  735. package/docs/components/input-options-select/example.svelte +16 -0
  736. package/docs/components/list-box/ListItem.svelte +14 -0
  737. package/docs/components/list-box/README.md +220 -0
  738. package/docs/components/list-box/example.svelte +61 -0
  739. package/docs/components/lookup-editor/README.md +137 -0
  740. package/docs/components/lookup-editor/example.svelte +16 -0
  741. package/docs/components/memo-editor/README.md +143 -0
  742. package/docs/components/memo-editor/example.svelte +16 -0
  743. package/docs/components/message-box/README.md +68 -0
  744. package/docs/components/message-box/example.svelte +10 -0
  745. package/docs/components/navigator/README.md +76 -0
  746. package/docs/components/navigator/example.svelte +14 -0
  747. package/docs/components/navigator-menu/README.md +116 -0
  748. package/docs/components/navigator-menu/example.svelte +12 -0
  749. package/docs/components/number-editor/README.md +144 -0
  750. package/docs/components/number-editor/example.svelte +16 -0
  751. package/docs/components/number-range/README.md +116 -0
  752. package/docs/components/number-range/example.svelte +15 -0
  753. package/docs/components/options-multi-select/README.md +161 -0
  754. package/docs/components/options-multi-select/example.svelte +20 -0
  755. package/docs/components/options-select/README.md +160 -0
  756. package/docs/components/options-select/example.svelte +21 -0
  757. package/docs/components/page/README.md +77 -0
  758. package/docs/components/page/example.svelte +10 -0
  759. package/docs/components/page-stack/README.md +67 -0
  760. package/docs/components/page-stack/example.svelte +7 -0
  761. package/docs/components/pagination/README.md +105 -0
  762. package/docs/components/pagination/example.svelte +13 -0
  763. package/docs/components/pagination-panel/README.md +135 -0
  764. package/docs/components/pagination-panel/example.svelte +17 -0
  765. package/docs/components/password-editor/README.md +128 -0
  766. package/docs/components/password-editor/example.svelte +16 -0
  767. package/docs/components/popup-hint/README.md +44 -0
  768. package/docs/components/popup-hint/example.svelte +5 -0
  769. package/docs/components/progress-bar/README.md +74 -0
  770. package/docs/components/progress-bar/example.svelte +8 -0
  771. package/docs/components/progress-step-bar/README.md +102 -0
  772. package/docs/components/progress-step-bar/example.svelte +11 -0
  773. package/docs/components/prompts-text-editor/README.md +148 -0
  774. package/docs/components/prompts-text-editor/example.svelte +16 -0
  775. package/docs/components/radio-button/README.md +121 -0
  776. package/docs/components/radio-button/example.svelte +18 -0
  777. package/docs/components/rows-layout/README.md +74 -0
  778. package/docs/components/rows-layout/example.svelte +16 -0
  779. package/docs/components/search-box/README.md +136 -0
  780. package/docs/components/search-box/example.svelte +16 -0
  781. package/docs/components/separator/README.md +44 -0
  782. package/docs/components/separator/example.svelte +7 -0
  783. package/docs/components/sidebar-layout/README.md +65 -0
  784. package/docs/components/sidebar-layout/example.svelte +12 -0
  785. package/docs/components/split/README.md +48 -0
  786. package/docs/components/split/example.svelte +8 -0
  787. package/docs/components/switch/README.md +77 -0
  788. package/docs/components/switch/example.svelte +11 -0
  789. package/docs/components/tabs/README.md +142 -0
  790. package/docs/components/tabs/example.svelte +22 -0
  791. package/docs/components/tag/README.md +74 -0
  792. package/docs/components/tag/example.svelte +9 -0
  793. package/docs/components/text-button/README.md +109 -0
  794. package/docs/components/text-button/example.svelte +11 -0
  795. package/docs/components/text-editor/README.md +147 -0
  796. package/docs/components/text-editor/example.svelte +16 -0
  797. package/docs/components/time-editor/README.md +130 -0
  798. package/docs/components/time-editor/example.svelte +16 -0
  799. package/docs/components/toast/README.md +52 -0
  800. package/docs/components/toast/example.svelte +9 -0
  801. package/docs/components/tooltip/README.md +44 -0
  802. package/docs/components/tooltip/example.svelte +5 -0
  803. package/docs/components/transfer/README.md +116 -0
  804. package/docs/components/transfer/example.svelte +13 -0
  805. package/docs/components/tree-view/README.md +179 -0
  806. package/docs/components/tree-view/example.svelte +27 -0
  807. package/docs/components/unit-number-editor/README.md +195 -0
  808. package/docs/components/unit-number-editor/example.svelte +17 -0
  809. package/package.json +515 -0
@@ -0,0 +1,1753 @@
1
+ @charset "UTF-8";
2
+ :root {
3
+ /* === Overlay z-index scale ===
4
+ A single source of truth for stacking order across every overlay
5
+ surface. Previously each component hardcoded its own literal with no
6
+ documented relationship to the others — Popover and Indicator both used
7
+ 100, and ContextMenu/FloatingPanel both used 1000, by accident rather
8
+ than by design. Consumers can override any layer; the relative order
9
+ below is what actually matters; the absolute numbers only need enough
10
+ headroom between layers for app code to slot things in between. */
11
+ --topside-z-dialog: 20;
12
+ --topside-z-message-box: 30;
13
+ --topside-z-toast: 40;
14
+ --topside-z-drawer: 99;
15
+ --topside-z-popover: 100;
16
+ --topside-z-indicator: 110;
17
+ --topside-z-context-menu: 1000;
18
+ --topside-z-floating-panel: 1010;
19
+ --topside-z-modal-overlay: 9998;
20
+ --topside-z-tooltip: 9999;
21
+ /* === Color Tokens === */
22
+ --color-primary: #0061FF;
23
+ --color-secondary: #22BDFF;
24
+ --color-accent: #2DC071;
25
+ --color-neutral-50: #F9FAFB;
26
+ --color-neutral-100: #F3F4F6;
27
+ --color-neutral-200: #E5E7EB;
28
+ --color-neutral-300: #D1D5DB;
29
+ --color-neutral-400: #9CA3AF;
30
+ --color-neutral-500: #6B7280;
31
+ --color-neutral-600: #4B5563;
32
+ --color-neutral-700: #374151;
33
+ --color-neutral-800: #1F2937;
34
+ --color-neutral-900: #111827;
35
+ --color-surface: #FFFFFF;
36
+ --color-surface-variant: #F8FAFC;
37
+ --color-surface-elevated: #FFFFFF;
38
+ --color-border: #E2E8F0;
39
+ --color-border-subtle: #F1F5F9;
40
+ /* === Color Tokens === */
41
+ --topside-color-surface: #FFFFFF;
42
+ --topside-color-surface-variant: #F8FAFC;
43
+ --topside-color-border-primary: #d1d5db;
44
+ --topside-color-border-secondary: #e5e7eb;
45
+ /* === Spacing Tokens (Tailwind scale: 0.25rem = 4px) === */
46
+ --topside-spacing-0: 0;
47
+ --topside-spacing-px: 1px;
48
+ --topside-spacing-0_5: 2px;
49
+ --topside-spacing-1: 4px;
50
+ --topside-spacing-1_5: 6px;
51
+ --topside-spacing-2: 8px;
52
+ --topside-spacing-2_5: 10px;
53
+ --topside-spacing-3: 12px;
54
+ --topside-spacing-3_5: 14px;
55
+ --topside-spacing-4: 16px;
56
+ --topside-spacing-5: 20px;
57
+ --topside-spacing-6: 24px;
58
+ --topside-spacing-8: 32px;
59
+ --topside-spacing-10: 40px;
60
+ --topside-spacing-12: 48px;
61
+ --topside-spacing-16: 64px;
62
+ /* === Radius Tokens (Tailwind scale) === */
63
+ --topside-radius-none: 0px;
64
+ --topside-radius-sm: 2px;
65
+ --topside-radius: 4px;
66
+ --topside-radius-md: 6px;
67
+ --topside-radius-lg: 8px;
68
+ --topside-radius-xl: 12px;
69
+ --topside-radius-2xl: 16px;
70
+ --topside-radius-3xl: 24px;
71
+ --topside-radius-full: 9999px;
72
+ --topside-color-overlay-mask-surface: rgba(255, 255, 255, 0.13);
73
+ --topside-color-dialog-mask-surface: rgba(255, 255, 255, 0.0625);
74
+ /* Topside Toast */
75
+ --topside-toast-margin: 16px 60px;
76
+ --topside-toast-radius: 8px;
77
+ --topside-toast-font-size: 15px;
78
+ --topside-toast-color-surface-error: #FF685B;
79
+ --topside-toast-color-surface-info: #0061FF;
80
+ --topside-toast-color-surface-success: #2DC071;
81
+ --topside-toast-color: var(--topside-color-surface);
82
+ --topside-dialog-action-bar-margin: 16px 24px;
83
+ --topside-dialog-action-bar-text-align: right;
84
+ --topside-dialog-action-button-color-hover-surface: rgba(0, 0, 0, 0.05);
85
+ /* Options popover layer tokens*/
86
+ --topside-popover-layer-top-margin: 0;
87
+ --topside-option-item-margin: 6px 8px;
88
+ --topside-popover-layer-color-surface: var(--topside-color-surface);
89
+ --topside-popover-layer-color: #1f2937;
90
+ --topside-popover-layer-color-border: #e5e7eb;
91
+ --topside-popover-layer-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05), 0 10px 15px -3px rgba(0, 0, 0, 0.08);
92
+ --topside-popover-item-color-surface-hover: #f3f4f6;
93
+ --topside-popover-item-color-hover: #111827;
94
+ --topside-popover-item-color-surface-active: #eff6ff;
95
+ --topside-popover-item-color-active: #2563eb;
96
+ /* Message box */
97
+ --topside-message-box-radius: 12px;
98
+ --topside-message-box-width: 480px;
99
+ --topside-message-box-margin: 8px 12px;
100
+ --topside-message-box-spacing: 24px;
101
+ --topside-message-box-title-height: 40px;
102
+ --topside-message-box-title-bar-margin: 0 16px;
103
+ --topside-message-box-content-margin: 16px 24px;
104
+ --topside-message-box-action-bar-margin: 16px 24px;
105
+ --topside-message-box-action-bar-text-align: center;
106
+ --topside-message-box-icon-size: 56px;
107
+ --topside-message-box-color-surface: #f8fafc;
108
+ --topside-messagebox-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.05), 0 4px 6px -4px rgba(0, 0, 0, 0.05), 0 20px 25px -5px rgba(0, 0, 0, 0.1);
109
+ --topside-message-color-question: #0284c7;
110
+ --topside-message-color-warning: #d97706;
111
+ --topside-message-color-info: #2563eb;
112
+ --topside-message-color-title-bar: #1f2937;
113
+ --topside-message-color-title-bar-border: #f0f0f0;
114
+ /* Context Menu token */
115
+ --topside-contextmenu-margin: 6px 8px;
116
+ --topside-contextmenu-minimal-width: 150px;
117
+ --topside-contextmenu-minimal-height: 100px;
118
+ --topside-contextmenu-spacing: 8px;
119
+ --topside-contextmenu-item-margin: 8px;
120
+ --topside-contextmenu-separator-margin: 8px;
121
+ --topside-contextmenu-color-surface: var(--topside-color-surface);
122
+ --topside-contextmenu-color: var(--topside-color-primary);
123
+ --topside-contextmenu-shadow: 0 2px 4px -1px rgba(0, 0, 0, 0.06), 0 4px 12px rgba(0, 0, 0, 0.08);
124
+ --topside-contextmenu-color-hover-surface: #f3f4f6;
125
+ --topside-contextmenu-color-hover: #111827;
126
+ --topside-contextmenu-color-separator: #e5e7eb;
127
+ /* Indicator Tokens */
128
+ --topside-indicator-border-radius: var(--topside-radius-lg, 8px);
129
+ --topside-indicator-content-spacing: 12px;
130
+ --topside-indicator-content-margin: 16px 24px;
131
+ --topside-indicator-minimal-size: 300px;
132
+ --topside-indicator-color-overlay-surface: rgba(255, 255, 255, 0.13);
133
+ --topside-indicator-color-surface: var(--topside-color-surface);
134
+ --topside-indicator-color-border: var(--topside-color-border-secondary);
135
+ --topside-indicator-color: var(--topside-color-secondary);
136
+ --topside-indicator-box-shadow: rgba(17, 17, 26, 0.1) 0px 8px 24px, rgba(17, 17, 26, 0.1) 0px 16px 56px, rgba(17, 17, 26, 0.1) 0px 24px 80px;
137
+ /* Tooltip tokens */
138
+ --topside-tooltip-color-surface: #FFFFE1;
139
+ --topside-tooltip-color: #374151;
140
+ --topside-tooltip-box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
141
+ --topside-tooltip-radius: var(--topside-radius-lg);
142
+ --topside-tooltip-margin: var(--topside-spacing-2) var(--topside-spacing-3);
143
+ /* === Shadow Tokens === */
144
+ --topside-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.05);
145
+ --topside-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
146
+ --topside-shadow-lg: 0 4px 6px rgba(0, 0, 0, 0.1);
147
+ --topside-shadow-xl: 0 10px 15px rgba(0, 0, 0, 0.1);
148
+ --topside-primary-color-font: #374151;
149
+ --topside-secondary-color-font: #6B7280;
150
+ --topside-second-color-font: #374151;
151
+ --topside-color-primary: #374151;
152
+ --topside-color-secondary: #7f7f7f;
153
+ --topside-color-disabled: #94A3B8;
154
+ --topside-color-disabled-surface: #F8FAFC;
155
+ /*
156
+ * Calendar Tokens
157
+ */
158
+ --topside-calendar-color-surface: #ffffff;
159
+ --topside-calendar-color-title: #1f2937;
160
+ --topside-calendar-color-action: #4b5563;
161
+ --topside-calendar-color-day-text: #1f2937;
162
+ --topside-calendar-color-weekend-text: #ea580c;
163
+ --topside-calendar-color-day-muted-text: #d1d5db;
164
+ --topside-calendar-color-today-border: #2563eb;
165
+ --topside-calendar-color-selected-surface: #60a5fa;
166
+ --topside-calendar-color-selected: #ffffff;
167
+ --topside-calendar-color-day-surface-hover: #f3f4f6;
168
+ /* Card Tokens*/
169
+ --topside-card-default-size: 240px;
170
+ --topside-card-radius: 10px;
171
+ --topside-card-header-margin: 8px 16px;
172
+ --topside-card-content-margin: 20px;
173
+ --topside-card-content-font-size: 14px;
174
+ --topside-card-bar-font-size: 24px;
175
+ --topside-card-footer-margin: 12px 24px;
176
+ --topside-card-footer-height: 40px;
177
+ --topside-card-color-surface: #ffffff;
178
+ /* PageStack Tokens */
179
+ --topside-page-stack-color-surface: var(--topside-color-surface);
180
+ --topside-card-color: #111827;
181
+ /* Card.svelte (and the component's own README/README_CN) reference
182
+ --topside-card-text-muted; this used to be named --topside-card-color-muted
183
+ here instead, so the header title color silently fell back to inherited
184
+ text color everywhere, in both light and dark mode. */
185
+ --topside-card-text-muted: #4b5563;
186
+ --topside-card-border-color: var(--topside-color-border-secondary);
187
+ --topside-card-color-inside-border: #f3f4f6;
188
+ --topside-card-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.06), 0 1px 2px -1px rgba(0, 0, 0, 0.04);
189
+ --topside-card-color-action-bar: #6b7280;
190
+ --topside-card-color-action-bar-hover: #1f2937;
191
+ --topside-card-color-action-bar-disabled: #bdc3c7;
192
+ --topside-action-image-size: 15px;
193
+ /* === Topside Button Tokens === */
194
+ --topside-button-height: 28px;
195
+ --topside-button-minimal-size: 90px;
196
+ --topside-button-spacing: 8px;
197
+ --topside-button-margin: 12px;
198
+ --topside-button-radius: var(--radius-md, 4px);
199
+ --topside-button-height-big: 32px;
200
+ --topside-button-height-small: 24px;
201
+ --topside-button-radius-round: 18px;
202
+ --topside-button-radius-round-big: 24px;
203
+ --topside-button-radius-round-small: 12px;
204
+ --topside-button-color-gap: var(--topside-color-surface);
205
+ /* ==========================================
206
+ ===== Plain (次要/中性灰按钮) =====
207
+ ========================================== */
208
+ --topside-button-plain-color-surface: #F3F4F6; /* 稍微提升质感至 Tailwind gray-100 */
209
+ --topside-button-plain-border-color: #E5E7EB; /* 让边框比背景略深,更有型 */
210
+ --topside-button-plain-color: #374151; /* 稳重的深灰文字 */
211
+ --topside-button-plain-color-surface-hover: #E5E7EB; /* Hover:实色加深 (gray-200) */
212
+ --topside-button-plain-color-surface-active: #D1D5DB; /* Active:压得更深 (gray-300) */
213
+ /* ==========================================
214
+ ===== Primary (主按钮:科技蓝) =====
215
+ ========================================== */
216
+ --topside-button-primary-color-surface: #42A5F5;
217
+ --topside-button-primary-border-color: #42B5DB;
218
+ --topside-button-primary-color: #FFFFFF;
219
+ --topside-button-primary-color-surface-hover: #1E88E5; /* Hover:实色蓝色加深,白字更锐利 */
220
+ --topside-button-primary-color-surface-active: #1565C0; /* Active:深蓝色底反馈 */
221
+ /* ==========================================
222
+ ===== Secondary (二级按钮:珊瑚红/警示) =====
223
+ ========================================== */
224
+ --topside-button-secondary-color-surface: #FF685B;
225
+ --topside-button-secondary-border-color: #FF7875;
226
+ --topside-button-secondary-color: #FFFFFF;
227
+ --topside-button-secondary-color-surface-hover: #E55347; /* Hover:实色红加深 */
228
+ --topside-button-secondary-color-surface-active: #C63F34; /* Active:稳重深红 */
229
+ /* ==========================================
230
+ ===== Third (三级按钮:成功绿) =====
231
+ ========================================== */
232
+ --topside-button-third-color-surface: #2DC071;
233
+ --topside-button-third-border-color: #2DD08B;
234
+ --topside-button-third-color: #FFFFFF;
235
+ --topside-button-third-color-surface-hover: #24A15E; /* Hover:修正原代码绿色偏色,改为实色深绿 */
236
+ --topside-button-third-color-surface-active: #1B7F4A; /* Active:深绿反馈 */
237
+ /* ==========================================
238
+ ===== Forth (四级按钮:警告黄/注意) =====
239
+ ========================================== */
240
+ --topside-button-forth-color-surface: #FAD85D;
241
+ --topside-button-forth-border-color: #FAE877;
242
+ --topside-button-forth-color: #374151; /* 深色文字 */
243
+ --topside-button-forth-color-surface-hover: #F4C430; /* Hover:向琥珀/深黄过渡,确保不刺眼 */
244
+ --topside-button-forth-color-surface-active: #D9A716; /* Active:暗金黄色反馈 */
245
+ /* ===== disabled(可单独保留) ===== */
246
+ --topside-button-disabled-color-surface: #F8FAFC;
247
+ --topside-button-disabled-border-color: #E2E8F0;
248
+ --topside-button-disabled-color: #94A3B8;
249
+ --topside-text-button-plain-color: #374151; /* 正常状态:稳重的深灰文字 */
250
+ --topside-text-button-plain-color-hover: #111827; /* Hover 状态:实色加深至极深黑(Tailwind gray-900),让用户感知到聚焦 */
251
+ --topside-text-button-plain-color-active: #4B5563; /* Active 状态:点击时稍微回弹变淡(或向中灰收敛),模拟物理按压 */
252
+ /* 全局统一变量 */
253
+ --topside-margin-sm: 4px;
254
+ --topside-margin-md: 6px;
255
+ --topside-margin: 8px;
256
+ --topside-margin-lg: 12px;
257
+ --topside-margin-xl: 16px;
258
+ --topside-popup-color-surface: var(--topside-color-surface);
259
+ --topside-popup-shadow: rgba(99, 99, 99, 0.2) 0 2px 8px 0;
260
+ --topside-accordion-header-bg: #F8FAFC;
261
+ --topside-accordion-header-hover-bg: #F1F5F9;
262
+ --topside-accordion-header-border: #E2E8F0;
263
+ /* AppTopBar Tokens */
264
+ --topside-app-top-bar-height: 48px;
265
+ --topside-app-top-bar-font-size: 24px;
266
+ --topside-app-top-bar-margin: 12px;
267
+ --topside-top-bar-avatar-size: 40px;
268
+ --topside-app-top-bar-spacing: 8px;
269
+ --topside-top-bar-avatar-radius: 50%;
270
+ --topside-top-bar-color-surface: #0061FF;
271
+ --topside-top-bar-color-text: #f0f0f0;
272
+ /** Box Tokens **/
273
+ --topside-box-radius: var(--topside-radius-md);
274
+ --topside-box-header-padding: var(--topside-margin-md) var(--topside-margin);
275
+ --topside-box-footer-padding: var(--topside-margin-md) var(--topside-margin);
276
+ --topside-box-color-border: var(--topside-color-border-secondary);
277
+ --topside-box-color-surface: var(--topside-color-surface);
278
+ --topside-box-color-header-surface: var(--topside-color-surface-variant);
279
+ --topside-box-color-header-title: var(--topside-primary-color-font);
280
+ --topside-box-color-footer-surface: var(--topside-color-surface-variant);
281
+ --topside-box-color-footer-title: var(--topside-second-color-font);
282
+ /* Page Tokens */
283
+ --topside-page-border-radius: var(--topside-radius-lg);
284
+ --topside-page-margin-size: var(--topside-margin-lg);
285
+ --topside-page-header-height: 48px;
286
+ --topside-page-header-margin: 12px;
287
+ --topside-page-color-text: var(--topside-primary-color-font);
288
+ --topside-page-color-surface: var(--topside-color-surface);
289
+ --topside-page-color-margin-surface: #ffffff;
290
+ --topside-page-color-header-bottom: var(--color-neutral-100);
291
+ --topside-page-color-header-comment: var(--color-neutral-500);
292
+ --topside-page-border-color: rgba(9, 30, 66, 0.07);
293
+ --topside-page-box-shadow: rgba(9, 30, 66, 0.05) 0px 4px 12px -2px;
294
+ /* Drawer Tokens */
295
+ --topside-drawer-color-surface: var(--topside-color-surface);
296
+ --topside-drawer-left-shadow: rgba(0, 0, 0, 0.08) 6px 0px 16px, rgba(0, 0, 0, 0.04) 16px 0px 48px;
297
+ --topside-drawer-right-shadow: rgba(0, 0, 0, 0.08) 6px 0px 16px, rgba(0, 0, 0, 0.04) 16px 0px 48px;
298
+ /* NavigatorMenu Tokens */
299
+ --topside-nav-menu-bg: #ffffff;
300
+ --topside-nav-menu-color: #374151;
301
+ --topside-nav-menu-hover-bg: #81D4FA;
302
+ --topside-nav-menu-hover-color: #374151;
303
+ --topside-spacing-actionbar: 8px;
304
+ /* FormPanel Tokens */
305
+ --topside-form-row-gap: 12px;
306
+ --topside-form-container-padding: 8px 6px;
307
+ --topside-form-cell-padding: 0 6px;
308
+ --topside-form-row-padding: 6px 0;
309
+ --topside-grid-cell-padding: 6px;
310
+ /* Editor Tokens */
311
+ --topside-editor-clean-icon-bg: #B3BCCA;
312
+ --topside-editor-clean-icon-color: #ffffff;
313
+ --topside-embed-icon-color: #6B7280;
314
+ --topside-editor-text-color: #374151;
315
+ --topside-option-text-color: #374151;
316
+ --topside-editor-line-height: 16px;
317
+ --topside-editor-padding: 0 8px;
318
+ --topside-editor-border-color: #E2E8F0;
319
+ --topside-editor-outlined-disabled-backgournd-color: #F1F5F9;
320
+ --topside-editor-outlined-disabled-text-color: #B3BCCA;
321
+ --topside-editor-outlined-radius: 4px;
322
+ --topside-editor-outlined-active-border-color: #298DFF;
323
+ --topside-editor-filled-backgournd-color: #F8FAFC;
324
+ --topside-editor-action-icon-color: #ffffff;
325
+ --topside-editor-action-icon-hover-color: #374151;
326
+ --topside-editor-action-icon-background-color: #B3BCCA;
327
+ --topside-editor-indicator-color: #B3BCCA;
328
+ --topside-editor-inline-action-icon-color: #37415170;
329
+ --topside-editor-inline-action-icon-hover-color: #374151;
330
+ --topside-editor-inline-action-icon-hover-bg: #42A5F51A;
331
+ /* CheckBox Tokens */
332
+ --topside-checkbox-text-color: #374151;
333
+ --topside-checkbox-color-border: #BBC1E1;
334
+ --topside-checkbox-color-border-hover: #409EFF;
335
+ --topside-checkbox-color-disabled: #94A3B8;
336
+ /* 背景容器 */
337
+ --topside-checkbox-bg: #FFFFFF; /* 未选中时的纯白底 */
338
+ --topside-checkbox-bg-active: #409EFF; /* 选中时的品牌蓝 */
339
+ --topside-checkbox-bg-disabled: #F1F5F9; /* 禁用时的浅灰底 */
340
+ /* 内部对勾 / 标识 */
341
+ --topside-checkbox-checkmark-color: #FFFFFF; /* 选中时的对勾颜色 */
342
+ --topside-checkbox-checkmark-color-disabled: #94A3B8; /* 禁用时的对勾颜色 */
343
+ /* 半选状态 (Indeterminate) */
344
+ --topside-checkbox-bg-indeterminate: rgba(64, 158, 255, 0.2); /* 浅蓝半透 */
345
+ --topside-checkbox-color-indeterminate: #409EFF; /* 居中的横杠颜色 */
346
+ /* CheckBox size tokens */
347
+ --topside-checkbox-size: 21px;
348
+ --topside-checkbox-padding: 4px;
349
+ --topside-checkbox-label-padding-left: 2px;
350
+ --topside-checkbox-label-padding-right: 6px;
351
+ --topside-checkbox-check-width: 5px;
352
+ --topside-checkbox-check-height: 9px;
353
+ --topside-checkbox-check-left: 7px;
354
+ --topside-checkbox-check-top: 4px;
355
+ --topside-checkbox-check-rotation: 43deg;
356
+ /* Compact size tokens */
357
+ --topside-checkbox-compact-size: 17px;
358
+ --topside-checkbox-compact-check-left: 5px;
359
+ --topside-checkbox-compact-check-top: 2px;
360
+ --topside-form-field-required-indicator-color: #ff3e00;
361
+ --topside-form-field-label-color: var(--topside-primary-text-color, #374151);
362
+ --topside-form-field-invalid-message-color: #ff3e00;
363
+ --topside-form-field-label-width: 120px;
364
+ --topside-form-field-label-alignment: right;
365
+ --topside-form-field-padding: 6px 4px;
366
+ --topside-field-gap: 4px;
367
+ --topside-picker-action-icon-size: 22px;
368
+ --topside-editor-margin: 8px;
369
+ --topside-editor-spacing: 4px;
370
+ --topside-editor-color-surface: transparent;
371
+ --topside-editor-color: var(--topside-primary-color-font);
372
+ --topside-editor-color-disabled: #94A3B8;
373
+ --topside-editor-color-surface-disabled: #F3F4F6;
374
+ --topside-editor-color-filled-surface: #F1F5F9;
375
+ --topside-editor-color-filled-surface-active: #E2E8F0;
376
+ --topside-editor-color-border: var(--topside-color-border-secondary);
377
+ --topside-editor-color-active-border: #3b82f6;
378
+ --topside-editor-color-placeholder: #9CA3AF;
379
+ --topside-editor-color-border-error: #EF4444;
380
+ --topside-option-padding: var(--topside-margin-md) var(--topside-margin);
381
+ /* Split token */
382
+ --topside-dividing-line-color: #CBD5E1;
383
+ /* Switch Tokens */
384
+ --topside-switch-width: 100px;
385
+ --topside-switch-height: 30px;
386
+ --topside-switch-knob-size: 22px;
387
+ --topside-switch-knob-offset: 5px;
388
+ --topside-switch-radius: 30px;
389
+ --topside-switch-color-text-unchecked: #6B7280;
390
+ --topside-switch-color-text-checked: #FFFFFF;
391
+ --topside-switch-color-surface: #FFFFFF;
392
+ --topside-switch-color-border: #ADB5BD;
393
+ --topside-switch-color-knob: #ADB5BD;
394
+ --topside-switch-color-surface-checked: #42A5F5;
395
+ --topside-switch-color-border-checked: #42A5F5;
396
+ --topside-switch-color-knob-checked: #FFFFFF;
397
+ --topside-switch-color-focus-ring: #42A5F5;
398
+ --topside-switch-color-surface-disabled: #F1F5F9;
399
+ --topside-switch-color-border-disabled: #E2E8F0;
400
+ --topside-switch-color-text-disabled: #94A3B8;
401
+ --topside-switch-color-knob-disabled: #CBD5E1;
402
+ --topside-switch-color-surface-checked-disabled: #E2E8F0;
403
+ --topside-switch-color-border-checked-disabled: #E2E8F0;
404
+ /* Tag Tokens */
405
+ --topside-tag-height: 28px;
406
+ --topside-tag-height-sm: 20px;
407
+ --topside-tag-height-bg: 30px;
408
+ --topside-tag-font-size: 12px;
409
+ --topside-tag-margin: 12px;
410
+ --topside-tag-action-color: #374151;
411
+ --topside-tag-g0-color: #374151;
412
+ --topside-tag-g1-color: #0061FF;
413
+ --topside-tag-g2-color: #2DC071;
414
+ --topside-tag-g3-color: #FF4D4F;
415
+ --topside-tag-g4-color: #FFBF00;
416
+ --topside-tag-g5-color: #EB2F96;
417
+ --topside-tag-g6-color: #13C2C2;
418
+ --topside-tag-g7-color: #FA541C;
419
+ --topside-tag-g8-color: #FA8C16;
420
+ --topside-tag-g9-color: #2F54EB;
421
+ --topside-tag-g10-color: #722ED1;
422
+ --topside-tag-g11-color: #A0D911;
423
+ --topside-tag-g12-color: #374151;
424
+ --topside-tag-g12-bg: #F8FAFC;
425
+ --topside-tag-g12-border: #E2E8F0;
426
+ /* Breadcrumbs */
427
+ --topside-breadcrumbs-spacing: 8px;
428
+ --topside-breadcrumbs-padding: var(--topside-margin) 0;
429
+ --topside-breadcrumbs-color: #6B7280;
430
+ --topside-breadcrumbs-color-hover: #374151;
431
+ --topside-breadcrumbs-color-active: #111827;
432
+ /* progress-step-bar */
433
+ --topside-progress-step-bar-color-surface: var(--topside-color-surface-variant);
434
+ --topside-progress-step-processing-color: #0061FF;
435
+ --topside-progress-step-pending-color: #B3BCCA;
436
+ --topside-progress-step-completed-color: #374151;
437
+ --topside-progress-step-completed-icon-bg: #0061FF1A;
438
+ --topside-progress-step-completed-icon-color: #0061FF;
439
+ /* TreeView Tokens */
440
+ --topside-treeview-chevron-color: #6b7280;
441
+ --topside-treeview-chevron-hover-color: #111827;
442
+ --topside-treeview-item-bg: #EEF4FF;
443
+ --topside-treeview-item-selected-color: #0061FF;
444
+ /* The listbox body itself previously had no surface/text color of its own
445
+ — it just showed through the page background, which happened to look
446
+ fine only because most light-mode pages are white. */
447
+ --topside-list-box-color-surface: var(--topside-color-surface);
448
+ --topside-list-box-color: var(--topside-primary-color-font);
449
+ --topside-listbox-separator-color: #F0F0F0;
450
+ --topside-list-box-hover-surface: #FFFFE1;
451
+ --topside-list-box-selected-surface: #b1c8f6;
452
+ --topside-list-box-header-bottom-border: none;
453
+ --topside-list-box-fotter-top-border: 1px solid #f0f0f0;
454
+ --topside-list-box-border-color: #f0f0f0;
455
+ --topside-list-box-header-surface: #F8FAFC;
456
+ --topside-list-box-footer-surface: #F8FAFC;
457
+ --topside-list-box-header-height: 32px;
458
+ --topside-list-box-header-margin: 0 12px;
459
+ /* Pagination Tokens */
460
+ --topside-default-text-color: #374151;
461
+ --topside-primary-border-color: #E2E8F0;
462
+ --topside-default-text-hover-color: #298DFF80;
463
+ --topside-default-active-text-color: #0061FF;
464
+ --topside-default-active-border-color: #0061FF80;
465
+ --topside-pagination-selected-color: #ffffff;
466
+ --topside-pagination-selected-background-color: #333333;
467
+ /* Tabs Tokens */
468
+ --topside-tabs-header-background-color: #FFFFFF;
469
+ --topside-tab-active-text-color: #0061FF;
470
+ --topside-tab-active-background-color: #FFFFFF;
471
+ --topside-tab-inactive-text-color: #374151;
472
+ --topside-tab-inactive-background-color: #FFFFFF;
473
+ --topside-tab-border-color: #E2E8F0;
474
+ --topside-tab-bg: #F8FAFC;
475
+ --topside-tab-action-background: #FFFFFF;
476
+ --topside-tab-hover-text-color: #298DFF;
477
+ --topside-tab-header-radius: 4px;
478
+ /* Concise Data Table Tokens
479
+ Previously these tokens didn't exist anywhere in this file at all —
480
+ ConciseListTable.svelte referenced --topside-concise-table-row-alter-bg/
481
+ -color with light-only fallback values and otherwise used hardcoded
482
+ literals (#f5f5f5 header, #f9f9f9 hover) with no variable and no
483
+ dark-mode hook whatsoever. */
484
+ --topside-concise-table-color-surface: var(--topside-color-surface);
485
+ --topside-concise-table-color: var(--topside-primary-color-font);
486
+ --topside-concise-table-header-surface: #f5f5f5;
487
+ --topside-concise-table-row-alter-bg: #F8FAFC;
488
+ --topside-concise-table-row-alter-color: #374151;
489
+ --topside-concise-table-row-hover-bg: #f9f9f9;
490
+ /* Navigator Tokens
491
+ Previously the component declared its own local custom properties
492
+ (scoped to .topside-navigator-panel) instead of reading from this file,
493
+ and one of them pointed at --topside-application-bg, a token that was
494
+ never defined anywhere — so the panel background was always invalid/
495
+ unset (transparent) and had no light/dark distinction at all. */
496
+ --topside-navigator-background-color: var(--topside-color-surface);
497
+ --topside-navigator-completed-text-color: #374151;
498
+ --topside-navigator-not-start-text-color: #6B7280;
499
+ --topside-navigator-warning-dot-color: #C62828;
500
+ --topside-navigator-hover-text-color: #298DFF;
501
+ --topside-navigator-active-text-color: #0061FF;
502
+ --topside-navigator-highlight-text-color: #0061FF;
503
+ --topside-navigator-connector-color: #D1D5DB;
504
+ }
505
+
506
+ /* ============================================
507
+ DARK THEME
508
+ ============================================ */
509
+ [data-theme=dark] {
510
+ --color-neutral-50: #1a1a1a;
511
+ --color-neutral-100: #2a2a2a;
512
+ --color-neutral-200: #3a3a3a;
513
+ --color-neutral-300: #4a4a4a;
514
+ --color-neutral-400: #6a6a6a;
515
+ --color-neutral-500: #8a8a8a;
516
+ --color-neutral-600: #9a9a9a;
517
+ --color-neutral-700: #bababa;
518
+ --color-neutral-800: #dadada;
519
+ --color-neutral-900: #eaeaea;
520
+ --color-surface: #1a1a1a;
521
+ --color-surface-variant: #2a2a2a;
522
+ --color-surface-elevated: #2a2a2a;
523
+ --color-border: #3a3a3a;
524
+ --color-border-subtle: #2a2a2a;
525
+ --topside-color-primary: #f3f4f6; /* 对应 Tailwind gray-100:用于核心正文、标题,极为清晰 */
526
+ --topside-color-secondary: #9ca3af; /* 对应 Tailwind gray-400:用于次要描述文字、小字、未激活图标 */
527
+ --topside-primary-color-font: #ffffff;
528
+ --topside-second-color-font: #7f7f7f;
529
+ --topside-color-surface: #1a1a1a;
530
+ --topside-color-surface-variant: #262626; /* 或 #242424 / #2a2b2d */
531
+ --topside-color-border-primary: #404040; /* 或 #434343 */
532
+ --topside-color-border-secondary:#2d2d2d; /* 或 #303030 */
533
+ /* 接近透明的遮罩层颜色 */
534
+ --topside-color-overlay-mask-surface: rgba(255, 255, 255, 0.07);
535
+ --topside-popup-color-surface: var(--topside-color-surface);
536
+ --topside-popup-shadow: 0 4px 16px 0 rgba(0, 0, 0, 0.7), 0 0 0 1px rgba(255, 255, 255, 0.15);
537
+ /* Indicator Tokens */
538
+ --topside-indicator-color-surface: var(--topside-color-surface);
539
+ --topside-indicator-color-border: var(--topside-color-border-secondary);
540
+ --topside-indicator-color: var(--topside-color-secondary);
541
+ --topside-indicator-box-shadow: rgba(0, 0, 0, 0.45) 0px 8px 24px, rgba(0, 0, 0, 0.3) 0px 16px 56px, rgba(0, 0, 0, 0.2) 0px 24px 80px;
542
+ /* Toast tokens */
543
+ --topside-toast-color-surface-error: #E55347; /* 弱化后的错误底色:柔和的珊瑚红 */
544
+ --topside-toast-color-surface-info: #3B82F6; /* 弱化后的信息底色:清爽的亮蓝 */
545
+ --topside-toast-color-surface-success: #10B981; /* 弱化后的成功底色:温润的薄荷绿 */
546
+ --topside-toast-color: var(--topside-color-primary); /* 文字依然保持高清晰度的白 */
547
+ /* Dialog and message box*/
548
+ --topside-dialog-action-button-color-hover-surface: rgba(0, 0, 0, 0.07);
549
+ /* Options popover layer tokens*/
550
+ --topside-popover-layer-color-surface: #262626;
551
+ --topside-popover-layer-color: #e5e7eb;
552
+ --topside-popover-layer-color-border: rgba(255, 255, 255, 0.08);
553
+ --topside-popover-layer-shadow: 0 4px 12px rgba(0, 0, 0, 0.5), 0 16px 32px rgba(0, 0, 0, 0.4);
554
+ --topside-popover-item-color-surface-hover: rgba(255, 255, 255, 0.08);
555
+ --topside-popover-item-color-hover: #ffffff;
556
+ --topside-popover-item-color-surface-active: rgba(59, 130, 246, 0.16);
557
+ --topside-popover-item-color-active: #60a5fa;
558
+ /* Message Box*/
559
+ --topside-message-box-color-surface: #262626;
560
+ --topside-messagebox-shadow: 0 4px 12px rgba(0, 0, 0, 0.5), 0 16px 48px rgba(0, 0, 0, 0.4);
561
+ --topside-message-color-question: #38bdf8;
562
+ --topside-message-color-warning: #fbbf24;
563
+ --topside-message-color-info: #60a5fa;
564
+ --topside-message-color-title-bar: #ffffff;
565
+ --topside-message-color-title-bar-border: #404040;
566
+ /* Context menu*/
567
+ --topside-contextmenu-color-surface: #262626;
568
+ --topside-contextmenu-color: #e5e7eb;
569
+ --topside-contextmenu-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.5), 0 10px 20px rgba(0, 0, 0, 0.4);
570
+ --topside-menu-item-hover-background-color: rgba(255, 255, 255, 0.08);
571
+ --topside-menu-item-hover-text-color: #ffffff;
572
+ --topside-contextmenu-color-separator: rgba(255, 255, 255, 0.08);
573
+ /* */
574
+ --topside-calendar-color-surface: #262626;
575
+ --topside-calendar-color-title: #e5e7eb;
576
+ --topside-calendar-color-action: #9ca3af;
577
+ --topside-calendar-color-day-text: #e5e7eb;
578
+ --topside-calendar-color-weekend-text: #ff7849;
579
+ --topside-calendar-color-day-muted-text: #4b5563;
580
+ --topside-calendar-color-today-border: #60a5fa;
581
+ --topside-calendar-color-selected-surface: #2563eb;
582
+ --topside-calendar-color-selected: #ffffff;
583
+ --topside-calendar-color-day-surface-hover: rgba(255, 255, 255, 0.08);
584
+ /* TreeView Tokens */
585
+ --topside-treeview-chevron-color: #9ca3af;
586
+ --topside-treeview-chevron-hover-color: #e5e7eb;
587
+ --topside-treeview-item-bg: rgba(255, 255, 255, 0.08);
588
+ --topside-treeview-item-selected-color: #60a5fa;
589
+ /* ListBox Tokens - Dark Theme
590
+ Previously entirely missing: every ListBox token only had a light value
591
+ in :root, with no [data-theme="dark"] override, so the box stayed
592
+ light-themed (light header/footer surfaces, near-white hover/selected
593
+ highlight colors) regardless of dark mode. */
594
+ --topside-list-box-color-surface: var(--topside-color-surface);
595
+ --topside-list-box-color: #e5e7eb;
596
+ --topside-listbox-separator-color: rgba(255, 255, 255, 0.08);
597
+ --topside-list-box-hover-surface: rgba(255, 255, 255, 0.08);
598
+ --topside-list-box-selected-surface: rgba(59, 130, 246, 0.24);
599
+ --topside-list-box-fotter-top-border: 1px solid rgba(255, 255, 255, 0.08);
600
+ --topside-list-box-border-color: #3a3a3a;
601
+ --topside-list-box-header-surface: #262626;
602
+ --topside-list-box-footer-surface: #262626;
603
+ /* Menu Separator */
604
+ --topside-menu-separator-color: rgba(255, 255, 255, 0.08);
605
+ /* Drawer Tokens */
606
+ --topside-drawer-color-surface: var(--topside-color-surface);
607
+ --topside-drawer-left-shadow: rgba(0, 0, 0, 0.45) 8px 0px 24px, rgba(0, 0, 0, 0.3) 24px 0px 64px; /* Left Drawer(从左侧滑出,阴影向右投射:X轴为正) */
608
+ --topside-drawer-right-shadow: rgba(0, 0, 0, 0.45) -8px 0px 24px, rgba(0, 0, 0, 0.3) -24px 0px 64px; /* Right Drawer(从右侧滑出,阴影向左投射:X轴为负) */
609
+ --topside-box-color-border: var(--topside-color-border-secondary);
610
+ --topside-box-color-surface: var(--topside-color-surface);
611
+ --topside-box-color-header-surface: var(--topside-color-surface-variant);
612
+ --topside-box-color-header-title: var(--topside-primary-color-font);
613
+ --topside-box-color-footer-surface: var(--topside-color-surface-variant);
614
+ --topside-box-color-footer-title: var(--topside-second-color-font);
615
+ /* Card Tokens - Dark Theme
616
+ Previously entirely missing: Card only had light-mode values in :root,
617
+ with no [data-theme="dark"] override, so cards stayed white/light
618
+ regardless of dark mode. */
619
+ --topside-card-color-surface: #262626;
620
+ /* PageStack Tokens - Dark Theme */
621
+ --topside-page-stack-color-surface: var(--topside-color-surface);
622
+ --topside-card-color: #e5e7eb;
623
+ --topside-card-text-muted: #9ca3af;
624
+ --topside-card-color-inside-border: rgba(255, 255, 255, 0.08);
625
+ --topside-card-shadow: 0 4px 12px rgba(0, 0, 0, 0.5), 0 16px 32px rgba(0, 0, 0, 0.4);
626
+ --topside-card-color-action-bar: #9ca3af;
627
+ --topside-card-color-action-bar-hover: #ffffff;
628
+ --topside-card-color-action-bar-disabled: #52525b;
629
+ --topside-page-color-text: var(--topside-primary-color-font);
630
+ --topside-page-color-surface: var(--topside-color-surface);
631
+ --topside-page-border-color: rgba(255, 255, 255, 0.06);
632
+ --topside-page-color-margin-surface: #1a1a1a;
633
+ --topside-page-color-header-bottom: rgba(255, 255, 255, 0.08);
634
+ --topside-page-color-header-comment: #9ca3af;
635
+ --topside-page-box-shadow: 0 1px 0 0 rgba(255, 255, 255, 0.05) inset, 0 4px 12px 0 rgba(0, 0, 0, 0.4);
636
+ --shadow-token: 0 1px 3px rgba(0, 0, 0, 0.3);
637
+ --shadow-token-lg: 0 4px 6px rgba(0, 0, 0, 0.3);
638
+ /* Tooltip */
639
+ --topside-tooltip-color-surface: #2A2B2D; /* Tooltip 文字颜色:换用温润、清晰的亮灰白,对眼睛非常友好 */
640
+ --topside-tooltip-color: #E2E8F0; /* Tooltip 阴影与轮廓:大扩散的纯黑重阴影 + 1px 的极淡白边框(暗色 UI 的灵魂,勾勒气泡轮廓) */
641
+ --topside-tooltip-box-shadow: 0 4px 12px rgba(0, 0, 0, 0.6), 0 0 0 1px rgba(255, 255, 255, 0.12);
642
+ /* ==========================================
643
+ ===== Plain (次要/中性灰按钮) =====
644
+ ========================================== */
645
+ /* 正常底色比大背景 #1A1A1A 稍微亮一点,形成卡片悬浮感 */
646
+ --topside-button-plain-color-surface: #2E3033;
647
+ --topside-button-plain-border-color: #3F4246;
648
+ --topside-button-plain-color: #E2E8F0; /* 换成高清晰度的亮灰字 */
649
+ --topside-button-plain-color-surface-hover: #3D4045; /* Hover:提亮,模拟受光面 */
650
+ --topside-button-plain-color-surface-active: #242528; /* Active:点击时下沉变暗 */
651
+ /* */
652
+ --topside-button-color-gap: var(--topside-color-surface);
653
+ /* ==========================================
654
+ ===== Primary (主按钮:科技蓝) =====
655
+ ========================================== */
656
+ --topside-button-primary-color-surface: #3B82F6; /* 换成高明度的亮蓝 (Tailwind blue-500) */
657
+ --topside-button-primary-border-color: #60A5FA;
658
+ --topside-button-primary-color: #FFFFFF;
659
+ --topside-button-primary-color-surface-hover: #60A5FA; /* Hover:进一步提亮/泛光 (blue-400) */
660
+ --topside-button-primary-color-surface-active: #2563EB; /* Active:点击时收敛变深 */
661
+ /* ==========================================
662
+ ===== Secondary (二级按钮:珊瑚红/警示) =====
663
+ ========================================== */
664
+ --topside-button-secondary-color-surface: #EF4444; /* 高亮红 (Tailwind red-500) */
665
+ --topside-button-secondary-border-color: #F87171;
666
+ --topside-button-secondary-color: #FFFFFF;
667
+ --topside-button-secondary-color-surface-hover: #F87171; /* Hover:提亮 (red-400) */
668
+ --topside-button-secondary-color-surface-active: #DC2626; /* Active:点击时压深 */
669
+ /* ==========================================
670
+ ===== Third (三级按钮:成功绿) =====
671
+ ========================================== */
672
+ --topside-button-third-color-surface: #10B981; /* 高亮薄荷绿 (Tailwind emerald-500) */
673
+ --topside-button-third-border-color: #34D399;
674
+ --topside-button-third-color: #FFFFFF;
675
+ --topside-button-third-color-surface-hover: #34D399; /* Hover:提亮 (emerald-400) */
676
+ --topside-button-third-color-surface-active: #059669; /* Active:点击时压深 */
677
+ /* ==========================================
678
+ ===== Forth (四级按钮:警告黄/注意) =====
679
+ ========================================== */
680
+ --topside-button-forth-color-surface: #FBBF24; /* 换用明亮的琥珀黄 (Tailwind amber-400) */
681
+ --topside-button-forth-border-color: #FCD34D;
682
+ --topside-button-forth-color: #111827; /* 黄底上必须用高饱正文黑,对比度才完美 */
683
+ --topside-button-forth-color-surface-hover: #FCD34D; /* Hover:提亮发光 (amber-300) */
684
+ --topside-button-forth-color-surface-active: #D97706; /* Active:点击时向暗金回弹 */
685
+ --topside-button-disabled-color-surface: #202020; /* 禁用按钮的底色:仅比大背景 #1A1A1A 略微亮 2%~3%,呈现下沉后的静默感 */
686
+ --topside-button-disabled-border-color: #2A2A2A; /* 禁用按钮的边框:极微弱的灰色阻隔,或直接设为 transparent 隐去边框 */
687
+ --topside-button-disabled-color: #52525B; /* 禁用按钮的文字:大幅度压暗,失去高光,提示不可交互 */
688
+ --disabled-button-color: #1a1a1a;
689
+ --disabled-button-border-color: #2a2a2a;
690
+ --disabled-button-text-color: #666666;
691
+ --topside-text-button-plain-color: #D1D5DB;
692
+ --topside-text-button-plain-color-hover: #FFFFFF; /* Hover 状态:鼠标移入时文字彻底提亮至纯白,产生瞬间高光感 */
693
+ --topside-text-button-plain-color-active: #9CA3AF; /* Active 状态:点击时向暗处沉降,变回低调的深灰(Tailwind gray-400) */
694
+ --topside-accordion-header-bg: #2a2a2a;
695
+ --topside-accordion-header-hover-bg: #3a3a3a;
696
+ --topside-accordion-header-border: #3a3a3a;
697
+ --topside-top-bar-background-color: #0a0a0a;
698
+ --topside-top-bar-color: #e0e0e0;
699
+ /* Drawer Tokens */
700
+ --topside-drawer-color-surface: #1a1a1a;
701
+ --topside-drawer-shadow: rgba(0, 0, 0, 0.3) 0 4px 6px;
702
+ --topside-drawer-border-color: #3a3a3a;
703
+ /* NavigatorMenu Tokens */
704
+ --topside-nav-menu-bg: #1a1a1a;
705
+ --topside-nav-menu-color: #e0e0e0;
706
+ --topside-nav-menu-hover-bg: #3a3a3a;
707
+ --topside-nav-menu-hover-color: #e0e0e0;
708
+ /* Page Tokens - Dark Theme */
709
+ --topside-page-text-color: #e5e7eb;
710
+ --topside-page-content-bg: #1f2937;
711
+ --topside-page-margin-color: #0f172a;
712
+ --topside-page-border-radius: 12px;
713
+ --topside-page-header-comment-color: #9ca3af;
714
+ --topside-page-box-shadow: rgba(0, 0, 0, 0.5) 0px 4px 8px -2px;
715
+ --topside-page-margin-size: 12px;
716
+ --topside-page-divid-color: #374151;
717
+ /* FormPanel Tokens - Dark Theme */
718
+ --topside-form-row-gap: 12px;
719
+ --topside-form-container-padding: 8px 6px;
720
+ --topside-form-cell-padding: 0 6px;
721
+ --topside-form-row-padding: 6px 0;
722
+ --topside-grid-cell-padding: 6px;
723
+ /* Editor Tokens - Dark Theme */
724
+ --topside-editor-clean-icon-bg: #4a4a4a;
725
+ --topside-editor-clean-icon-color: #e0e0e0;
726
+ --topside-embed-icon-color: #9ca3af;
727
+ --topside-editor-line-height: 16px;
728
+ --topside-editor-padding: 0 8px;
729
+ --topside-editor-border-color: #3a3a3a;
730
+ --topside-editor-outlined-disabled-backgournd-color: #2a2a2a;
731
+ --topside-editor-outlined-disabled-text-color: #666666;
732
+ --topside-editor-outlined-radius: 4px;
733
+ --topside-editor-outlined-active-border-color: #42A5F5;
734
+ --topside-editor-action-icon-color: #e0e0e0;
735
+ --topside-editor-action-icon-hover-color: #ffffff;
736
+ --topside-editor-action-icon-background-color: #4a4a4a;
737
+ --topside-editor-indicator-color: #666666;
738
+ --topside-editor-inline-action-icon-color: #e0e0e0b0;
739
+ --topside-editor-inline-action-icon-hover-color: #ffffff;
740
+ --topside-editor-inline-action-icon-hover-bg: #42A5F540;
741
+ /* CheckBox Tokens - Dark Theme (完整的 dark 变量在文件末尾统一定义) */
742
+ --topside-form-field-required-indicator-color: #ffffff;
743
+ --topside-form-field-label-color: #e0e0e0;
744
+ --topside-editor-error-color: #ffffff;
745
+ --topside-editor-text-color: #f0f0f0;
746
+ --topside-option-text-color: #e5e7eb;
747
+ --topside-editor-filled-backgournd-color: #1a1a1a;
748
+ --topside-editor-color-surface: transparent;
749
+ --topside-editor-color: var(--topside-primary-color-font);
750
+ --topside-editor-color-disabled: #4B5563;
751
+ --topside-editor-color-surface-disabled: #1E1E1E;
752
+ --topside-editor-color-filled-surface: #242424;
753
+ --topside-editor-color-filled-surface-active: #2D2D2D;
754
+ --topside-editor-color-border: var(--topside-color-border-secondary);
755
+ --topside-editor-color-active-border: #60A5FA;
756
+ --topside-editor-color-placeholder: #6B7280;
757
+ --topside-editor-color-border-error: #F87171;
758
+ --topside-tag-action-color: #E2E8F0;
759
+ --topside-tag-g0-color: #E2E8F0;
760
+ --topside-tag-g1-color: #60A5FA; /* 蓝 (原 #0061FF -> 提亮,避开高纯深蓝) */
761
+ --topside-tag-g2-color: #4ADE80; /* 绿 (原 #2DC071 -> 亮绿) */
762
+ --topside-tag-g3-color: #F87171; /* 红 (原 #FF4D4F -> 柔和粉红) */
763
+ --topside-tag-g4-color: #FBBF24; /* 黄 (原 #FFBF00 -> 琥珀黄) */
764
+ --topside-tag-g5-color: #F472B6; /* 粉 (原 #EB2F96 -> 亮粉) */
765
+ --topside-tag-g6-color: #2DD4BF; /* 青 (原 #13C2C2 -> 亮青/明亮双色) */
766
+ --topside-tag-g7-color: #FB923C; /* 橘红 (原 #FA541C -> 亮橘红) */
767
+ --topside-tag-g8-color: #F59E0B; /* 橘黄 (原 #FA8C16 -> 亮金黄) */
768
+ --topside-tag-g9-color: #818CF8; /* 靛蓝 (原 #2F54EB -> 靛青/浅紫蓝) */
769
+ --topside-tag-g10-color: #C084FC; /* 紫 (原 #722ED1 -> 亮紫) */
770
+ --topside-tag-g11-color: #A3E635; /* 柠檬绿 (原 #A0D911 -> 亮酸橙) */
771
+ --topside-breadcrumbs-color: #6B7280;
772
+ --topside-breadcrumbs-color-hover: #9CA3AF;
773
+ --topside-breadcrumbs-color-active: #F3F4F6;
774
+ --topside-progress-step-bar-color-surface: #242424;
775
+ --topside-progress-step-processing-color: #60A5FA; /* (Tailwind blue-400) */
776
+ --topside-progress-step-pending-color: #4B5563; /* (Tailwind gray-600) */
777
+ --topside-progress-step-completed-color: #E2E8F0; /* (Tailwind slate-200) */
778
+ --topside-progress-step-completed-icon-bg: rgba(96, 165, 250, 0.15);
779
+ --topside-progress-step-completed-icon-color: #60A5FA;
780
+ /* Split token - Dark Theme */
781
+ --topside-dividing-line-color: #4a4a4a;
782
+ /* Switch token - Dark Theme */
783
+ --topside-switch-color-text-unchecked: #9CA3AF;
784
+ --topside-switch-color-text-checked: #FFFFFF;
785
+ --topside-switch-color-surface: #2E3033;
786
+ --topside-switch-color-border: #3F4246;
787
+ --topside-switch-color-knob: #6B7280;
788
+ --topside-switch-color-surface-checked: #3B82F6;
789
+ --topside-switch-color-border-checked: #60A5FA;
790
+ --topside-switch-color-knob-checked: #FFFFFF;
791
+ --topside-switch-color-focus-ring: #60A5FA;
792
+ --topside-switch-color-surface-disabled: #1A1A1A;
793
+ --topside-switch-color-border-disabled: #2A2A2A;
794
+ --topside-switch-color-text-disabled: #4B5563;
795
+ --topside-switch-color-knob-disabled: #374151;
796
+ --topside-switch-color-surface-checked-disabled: #2A2A2A;
797
+ --topside-switch-color-border-checked-disabled: #2A2A2A;
798
+ --topside-checkbox-text-color: #E2E8F0; /* 提亮至柔和白字 */
799
+ --topside-checkbox-color-border: #4B5563; /* 变深至 Tailwind gray-600 */
800
+ --topside-checkbox-color-border-hover: #60A5FA; /* 高亮蓝 (blue-400) */
801
+ --topside-checkbox-color-disabled: #4B5563; /* 禁用文字变灰暗 */
802
+ /* 背景容器 */
803
+ --topside-checkbox-bg: #242528; /* 未选中:微亮的碳灰底,拉开物理层级 */
804
+ --topside-checkbox-bg-active: #3B82F6; /* 选中:明度更高的科技蓝 (blue-500) */
805
+ --topside-checkbox-bg-disabled: #151515; /* 禁用:下沉得比大背景 #1A1A1A 还要黑 */
806
+ /* 内部对勾 / 标识 */
807
+ --topside-checkbox-checkmark-color: #FFFFFF; /* 保持纯白,在蓝底上极度清晰 */
808
+ --topside-checkbox-checkmark-color-disabled: #4B5563; /* 禁用时的暗灰色对勾 */
809
+ /* 半选状态 (Indeterminate) */
810
+ --topside-checkbox-bg-indeterminate: rgba(59, 130, 246, 0.15); /* 暗色霓虹蓝微光 */
811
+ --topside-checkbox-color-indeterminate: #60A5FA; /* 亮蓝横杠 */
812
+ /* Pagination Tokens - Dark Theme */
813
+ --topside-default-text-color: #E2E8F0;
814
+ --topside-primary-border-color: #3a3a3a;
815
+ --topside-default-text-hover-color: #60A5FA80; /* blue-400 50% */
816
+ --topside-default-active-text-color: #60A5FA; /* blue-400,暗底下提亮 */
817
+ --topside-default-active-border-color: #60A5FA80;
818
+ --topside-pagination-selected-color: #FFFFFF;
819
+ --topside-pagination-selected-background-color: #E2E8F0; /* plain 模式下选中文字色 */
820
+ /* Tabs Tokens - Dark Theme */
821
+ --topside-tabs-header-background-color: #1a1a1a;
822
+ --topside-tab-active-text-color: #60A5FA; /* blue-400 */
823
+ --topside-tab-active-background-color: #262626; /* 与内容区融合 */
824
+ --topside-tab-inactive-text-color: #E2E8F0;
825
+ --topside-tab-inactive-background-color: transparent;
826
+ --topside-tab-border-color: #3a3a3a;
827
+ --topside-tab-bg: #262626; /* 内容区背景,让激活 tab 底边融合 */
828
+ --topside-tab-action-background: #262626;
829
+ --topside-tab-hover-text-color: #60A5FA;
830
+ --topside-tab-header-radius: 4px;
831
+ /* Concise Data Table Tokens - Dark Theme */
832
+ --topside-concise-table-color-surface: var(--topside-color-surface);
833
+ --topside-concise-table-color: #e5e7eb;
834
+ --topside-concise-table-header-surface: #262626;
835
+ --topside-concise-table-row-alter-bg: #1f1f1f;
836
+ --topside-concise-table-row-alter-color: #e5e7eb;
837
+ --topside-concise-table-row-hover-bg: rgba(255, 255, 255, 0.08);
838
+ /* Navigator Tokens - Dark Theme */
839
+ --topside-navigator-background-color: var(--topside-color-surface);
840
+ --topside-navigator-completed-text-color: #e5e7eb;
841
+ --topside-navigator-not-start-text-color: #9ca3af;
842
+ --topside-navigator-warning-dot-color: #f87171;
843
+ --topside-navigator-hover-text-color: #60a5fa;
844
+ --topside-navigator-active-text-color: #60a5fa;
845
+ --topside-navigator-highlight-text-color: #60a5fa;
846
+ --topside-navigator-connector-color: #3a3a3a;
847
+ }
848
+
849
+ * {
850
+ box-sizing: border-box;
851
+ }
852
+
853
+ /* [修复] @use 必须严格放在文件的第一行,不能放在中途 */
854
+ /* ========== 3. 变体映射表(供循环生成) ========== */
855
+ /* ========== 4. 基础按钮样式 ========== */
856
+ .topside-button {
857
+ cursor: pointer;
858
+ text-align: center;
859
+ user-select: none;
860
+ font-size: 1em;
861
+ /* [优化] 从 none 改为 1px solid transparent,确保后期循环生成的 border-color 能正常显示 */
862
+ border: 1px solid transparent;
863
+ box-sizing: border-box; /* 确保边框不撑大按钮实体 */
864
+ transition: background-color 0.3s ease, border-color 0.3s ease, transform 0.3s ease, box-shadow 0.3s ease;
865
+ background-color: var(--topside-button-plain-color-surface);
866
+ border-color: var(--topside-button-plain-border-color);
867
+ color: var(--topside-button-plain-color);
868
+ }
869
+ .topside-button.common-button {
870
+ display: inline-flex;
871
+ flex-direction: row;
872
+ align-items: center;
873
+ min-width: var(--topside-button-minimal-size);
874
+ height: var(--topside-button-height);
875
+ gap: var(--topside-button-spacing);
876
+ letter-spacing: 1px;
877
+ padding: 0 var(--topside-button-margin);
878
+ border-radius: var(--radius-md, 4px);
879
+ }
880
+ .topside-button.common-button.large {
881
+ height: var(--topside-button-height-big);
882
+ font-size: 1.1rem;
883
+ }
884
+ .topside-button.common-button.small {
885
+ height: var(--topside-button-height-small);
886
+ font-size: 0.9rem;
887
+ }
888
+ .topside-button.common-button.plain {
889
+ border-radius: 0;
890
+ }
891
+ .topside-button.common-button.round {
892
+ border-radius: var(--topside-button-radius-round);
893
+ }
894
+ .topside-button.common-button.round.large {
895
+ border-radius: var(--topside-button-radius-round-big);
896
+ }
897
+ .topside-button.common-button.round.small {
898
+ border-radius: var(--topside-button-radius-round-small);
899
+ }
900
+ .topside-button.common-button i {
901
+ font-size: 1.5rem;
902
+ }
903
+ .topside-button.icon-button {
904
+ display: inline-flex; /* [修复] 图标按钮居中建议用 inline-flex,更稳妥 */
905
+ flex-direction: row;
906
+ align-items: center;
907
+ justify-content: center;
908
+ outline: none;
909
+ width: var(--topside-button-height);
910
+ height: var(--topside-button-height);
911
+ border-radius: 50%;
912
+ padding: 0;
913
+ }
914
+ .topside-button.icon-button i {
915
+ font-size: 18px;
916
+ }
917
+ .topside-button.icon-button.large {
918
+ width: var(--topside-button-height-big);
919
+ height: var(--topside-button-height-big);
920
+ }
921
+ .topside-button.icon-button.large i {
922
+ font-size: 22px;
923
+ }
924
+ .topside-button.icon-button.small {
925
+ width: var(--topside-button-height-small);
926
+ height: var(--topside-button-height-small);
927
+ }
928
+ .topside-button.icon-button.small i {
929
+ font-size: 16px;
930
+ }
931
+ .topside-button.icon-button.no-outer:focus, .topside-button.icon-button.no-outer:focus-visible, .topside-button.icon-button.no-outer:active {
932
+ outline: none !important;
933
+ box-shadow: none !important;
934
+ }
935
+ .topside-button:hover {
936
+ background-color: var(--topside-button-plain-color-surface-hover);
937
+ }
938
+ .topside-button:active {
939
+ background-color: var(--topside-button-plain-color-surface-active);
940
+ transform: translateY(1px); /* [优化] 相比 top:1px,使用 transform 的物理沉降更顺滑,不需要依赖 position */
941
+ }
942
+ .topside-button:focus-visible, .topside-button:focus {
943
+ outline: none;
944
+ box-shadow: 0 0 0 2px var(--topside-button-color-gap), 0 0 0 4px var(--topside-button-plain-color-surface);
945
+ }
946
+ .topside-button.primary {
947
+ /* [修复] 全局 map-get 升级为现代命名的 map.get */
948
+ background-color: var(--topside-button-primary-color-surface);
949
+ border-color: var(--topside-button-primary-border-color);
950
+ color: var(--topside-button-primary-color);
951
+ }
952
+ .topside-button.primary:hover {
953
+ background-color: var(--topside-button-primary-color-surface-hover);
954
+ }
955
+ .topside-button.primary:active {
956
+ background-color: var(--topside-button-primary-color-surface-active);
957
+ }
958
+ .topside-button.primary:focus-visible, .topside-button.primary:focus {
959
+ box-shadow: 0 0 0 3px var(--topside-button-color-gap), 0 0 0 4px var(--topside-button-primary-color-surface);
960
+ }
961
+ .topside-button.secondary {
962
+ /* [修复] 全局 map-get 升级为现代命名的 map.get */
963
+ background-color: var(--topside-button-secondary-color-surface);
964
+ border-color: var(--topside-button-secondary-border-color);
965
+ color: var(--topside-button-secondary-color);
966
+ }
967
+ .topside-button.secondary:hover {
968
+ background-color: var(--topside-button-secondary-color-surface-hover);
969
+ }
970
+ .topside-button.secondary:active {
971
+ background-color: var(--topside-button-secondary-color-surface-active);
972
+ }
973
+ .topside-button.secondary:focus-visible, .topside-button.secondary:focus {
974
+ box-shadow: 0 0 0 3px var(--topside-button-color-gap), 0 0 0 4px var(--topside-button-secondary-color-surface);
975
+ }
976
+ .topside-button.third {
977
+ /* [修复] 全局 map-get 升级为现代命名的 map.get */
978
+ background-color: var(--topside-button-third-color-surface);
979
+ border-color: var(--topside-button-third-border-color);
980
+ color: var(--topside-button-third-color);
981
+ }
982
+ .topside-button.third:hover {
983
+ background-color: var(--topside-button-third-color-surface-hover);
984
+ }
985
+ .topside-button.third:active {
986
+ background-color: var(--topside-button-third-color-surface-active);
987
+ }
988
+ .topside-button.third:focus-visible, .topside-button.third:focus {
989
+ box-shadow: 0 0 0 3px var(--topside-button-color-gap), 0 0 0 4px var(--topside-button-third-color-surface);
990
+ }
991
+ .topside-button.forth {
992
+ /* [修复] 全局 map-get 升级为现代命名的 map.get */
993
+ background-color: var(--topside-button-forth-color-surface);
994
+ border-color: var(--topside-button-forth-border-color);
995
+ color: var(--topside-button-forth-color);
996
+ }
997
+ .topside-button.forth:hover {
998
+ background-color: var(--topside-button-forth-color-surface-hover);
999
+ }
1000
+ .topside-button.forth:active {
1001
+ background-color: var(--topside-button-forth-color-surface-active);
1002
+ }
1003
+ .topside-button.forth:focus-visible, .topside-button.forth:focus {
1004
+ box-shadow: 0 0 0 3px var(--topside-button-color-gap), 0 0 0 4px var(--topside-button-forth-color-surface);
1005
+ }
1006
+ .topside-button.no-outer:focus, .topside-button.no-outer:focus-visible, .topside-button.no-outer:active {
1007
+ outline: none !important;
1008
+ box-shadow: none !important;
1009
+ }
1010
+ .topside-button.disabled {
1011
+ background-color: var(--topside-button-disabled-color-surface) !important;
1012
+ border-color: var(--topside-button-disabled-border-color) !important;
1013
+ color: var(--topside-button-disabled-color) !important;
1014
+ transform: none !important; /* 防止置灰状态下还能被按下去产生动画延迟 */
1015
+ cursor: not-allowed;
1016
+ }
1017
+ .topside-button.disabled:hover {
1018
+ background-color: var(--topside-button-disabled-color-surface) !important;
1019
+ color: var(--topside-button-disabled-color) !important;
1020
+ }
1021
+ .topside-button.disabled:focus-visible {
1022
+ background-color: var(--topside-button-disabled-color-surface) !important;
1023
+ }
1024
+ .topside-button.text-button {
1025
+ outline: none;
1026
+ border: none;
1027
+ background-color: transparent !important;
1028
+ color: var(--topside-text-button-plain-color);
1029
+ border-radius: var(--topside-button-radius-round);
1030
+ padding: 3px 6px;
1031
+ }
1032
+ .topside-button.text-button.large {
1033
+ font-size: 1.2em;
1034
+ padding: 4px 8px;
1035
+ border-radius: var(--topside-button-radius-round-big);
1036
+ }
1037
+ .topside-button.text-button.small {
1038
+ font-size: 0.9em;
1039
+ padding: 2px 4px;
1040
+ border-radius: var(--topside-button-radius-round-small);
1041
+ }
1042
+ .topside-button.text-button.plain {
1043
+ border-radius: 0;
1044
+ }
1045
+ .topside-button.text-button.round {
1046
+ border-radius: var(--topside-button-radius-round);
1047
+ }
1048
+ .topside-button.text-button.round.large {
1049
+ border-radius: var(--topside-button-radius-round-big);
1050
+ }
1051
+ .topside-button.text-button.round.small {
1052
+ border-radius: var(--topside-button-radius-round-small);
1053
+ }
1054
+ .topside-button.text-button:hover {
1055
+ color: var(--topside-text-button-plain-color-hover);
1056
+ }
1057
+ .topside-button.text-button:active {
1058
+ position: relative;
1059
+ color: var(--topside-text-button-plain-color-active);
1060
+ top: 1px;
1061
+ }
1062
+ .topside-button.text-button.primary {
1063
+ color: var(--topside-button-primary-color-surface);
1064
+ }
1065
+ .topside-button.text-button.primary:hover {
1066
+ color: var(--topside-button-primary-color-surface-hover);
1067
+ }
1068
+ .topside-button.text-button.primary:active {
1069
+ color: var(--topside-button-primary-color-surface-active);
1070
+ }
1071
+ .topside-button.text-button.secondary {
1072
+ color: var(--topside-button-secondary-color-surface);
1073
+ }
1074
+ .topside-button.text-button.secondary:hover {
1075
+ color: var(--topside-button-secondary-color-surface-hover);
1076
+ }
1077
+ .topside-button.text-button.secondary:active {
1078
+ color: var(--topside-button-secondary-color-surface-active);
1079
+ }
1080
+ .topside-button.text-button.third {
1081
+ color: var(--topside-button-third-color-surface);
1082
+ }
1083
+ .topside-button.text-button.third:hover {
1084
+ color: var(--topside-button-third-color-surface-hover);
1085
+ }
1086
+ .topside-button.text-button.third:active {
1087
+ color: var(--topside-button-third-color-surface-active);
1088
+ }
1089
+ .topside-button.text-button.forth {
1090
+ color: var(--topside-button-forth-color-surface);
1091
+ }
1092
+ .topside-button.text-button.forth:hover {
1093
+ color: var(--topside-button-forth-color-surface-hover);
1094
+ }
1095
+ .topside-button.text-button.forth:active {
1096
+ color: var(--topside-button-forth-color-surface-active);
1097
+ }
1098
+ .topside-button.text-button.no-outer:focus, .topside-button.text-button.no-outer:focus-visible, .topside-button.text-button.no-outer:active {
1099
+ outline: none !important;
1100
+ box-shadow: none !important;
1101
+ }
1102
+ .topside-button.text-button.disabled {
1103
+ background-color: transparent !important;
1104
+ cursor: not-allowed;
1105
+ }
1106
+ .topside-button.text-button.disabled:hover {
1107
+ background-color: transparent !important;
1108
+ }
1109
+
1110
+ /* ==========================================================================
1111
+ 1. 组合/容器层(表单编辑器外壳结构)
1112
+ ========================================================================== */
1113
+ .topside-form-editor {
1114
+ position: relative;
1115
+ width: 100%;
1116
+ background-color: var(--topside-editor-color-surface);
1117
+ color: var(--topside-editor-color);
1118
+ font-size: 1em;
1119
+ border-bottom: 1px solid var(--topside-editor-color-border);
1120
+ border-radius: var(--topside-radius) var(--topside-radius) 0 0;
1121
+ transition: border-color 0.2s ease, box-shadow 0.2s ease;
1122
+ /* 1.1 变体外观模式 (Variants) */
1123
+ }
1124
+ .topside-form-editor.outlined {
1125
+ border: 1px solid var(--topside-editor-color-border);
1126
+ border-radius: var(--topside-radius);
1127
+ }
1128
+ .topside-form-editor.filled {
1129
+ background-color: var(--topside-editor-color-filled-surface);
1130
+ transition: background-color 0.2s ease, border-color 0.2s ease;
1131
+ }
1132
+ .topside-form-editor {
1133
+ /* 1.2 状态感知拦截 (States) */
1134
+ }
1135
+ .topside-form-editor.error {
1136
+ border-color: var(--topside-editor-color-border-error);
1137
+ }
1138
+ .topside-form-editor:focus-within {
1139
+ border-color: var(--topside-editor-color-active-border);
1140
+ }
1141
+ .topside-form-editor {
1142
+ /* plain:无底线(聚焦时也没有——同优先级写在 :focus-within 之后)。原来的 `&.focus-within` 是笔误且多余,已删 */
1143
+ }
1144
+ .topside-form-editor.plain {
1145
+ background-color: transparent;
1146
+ border-bottom-color: transparent;
1147
+ border-radius: 0;
1148
+ /* 错误态要能看见:&.plain 在 &.error 之后会把底线盖成透明,这里提高优先级补回(聚焦时也保持红线) */
1149
+ }
1150
+ .topside-form-editor.plain.error {
1151
+ border-bottom-color: var(--topside-editor-color-border-error);
1152
+ }
1153
+ .topside-form-editor.disabled {
1154
+ color: var(--topside-editor-color-disabled);
1155
+ cursor: not-allowed;
1156
+ border-color: var(--topside-editor-color-border);
1157
+ box-shadow: none !important;
1158
+ outline: none !important;
1159
+ }
1160
+ .topside-form-editor.disabled.filled {
1161
+ background-color: var(--topside-editor-color-surface-disabled);
1162
+ }
1163
+ .topside-form-editor.disabled.plain {
1164
+ border-color: transparent;
1165
+ }
1166
+ .topside-form-editor.disabled * {
1167
+ outline: none !important;
1168
+ }
1169
+ .topside-form-editor input, .topside-form-editor textarea {
1170
+ width: 100%;
1171
+ padding: 0;
1172
+ border: 0 solid transparent;
1173
+ outline: none;
1174
+ background: transparent;
1175
+ color: inherit;
1176
+ }
1177
+ .topside-form-editor input::placeholder, .topside-form-editor textarea::placeholder {
1178
+ color: var(--topside-editor-color-placeholder);
1179
+ }
1180
+ .topside-form-editor input:focus, .topside-form-editor textarea:focus {
1181
+ outline: none;
1182
+ }
1183
+ .topside-form-editor input:disabled, .topside-form-editor textarea:disabled {
1184
+ color: var(--topside-editor-outlined-disabled-text-color);
1185
+ }
1186
+ .topside-form-editor input {
1187
+ height: 36px;
1188
+ }
1189
+ .topside-form-editor input.number-input {
1190
+ text-align: right;
1191
+ }
1192
+ .topside-form-editor input.number-input:focus {
1193
+ text-align: left;
1194
+ }
1195
+ .topside-form-editor input.number-input[readonly]:focus {
1196
+ text-align: right;
1197
+ }
1198
+ .topside-form-editor.compact input {
1199
+ height: 28px;
1200
+ }
1201
+ .topside-form-editor.compact .topside-common-picker {
1202
+ height: 28px;
1203
+ }
1204
+ .topside-form-editor input[type=number] {
1205
+ -moz-appearance: textfield;
1206
+ }
1207
+ .topside-form-editor input[type=number]::-webkit-outer-spin-button, .topside-form-editor input[type=number]::-webkit-inner-spin-button {
1208
+ -webkit-appearance: none;
1209
+ margin: 0;
1210
+ }
1211
+ .topside-form-editor .topside-common-editor, .topside-form-editor .topside-common-picker {
1212
+ display: flex;
1213
+ align-items: center;
1214
+ padding: 0 var(--topside-editor-margin);
1215
+ gap: var(--topside-editor-spacing);
1216
+ }
1217
+ .topside-form-editor .topside-common-editor .clean-icon, .topside-form-editor .topside-common-picker .clean-icon {
1218
+ position: absolute;
1219
+ right: 2px;
1220
+ top: 0;
1221
+ bottom: 0;
1222
+ display: flex;
1223
+ flex-direction: row;
1224
+ align-items: center;
1225
+ }
1226
+ .topside-form-editor .topside-common-editor .clean-icon i, .topside-form-editor .topside-common-picker .clean-icon i {
1227
+ display: none;
1228
+ font-size: 10px;
1229
+ }
1230
+ .topside-form-editor .topside-common-editor:focus-within.number-input {
1231
+ text-align: left;
1232
+ }
1233
+ .topside-form-editor .topside-common-editor:focus-within .clean-icon.has-value i {
1234
+ display: block;
1235
+ position: relative;
1236
+ }
1237
+ .topside-form-editor .topside-common-editor:focus-within .clean-icon.has-value i:active {
1238
+ top: 1px;
1239
+ }
1240
+ .topside-form-editor .topside-common-editor:has(.clean-icon) input {
1241
+ padding-right: 14px;
1242
+ }
1243
+ .topside-form-editor .topside-common-picker:hover .clean-icon.has-value i {
1244
+ display: block;
1245
+ position: relative;
1246
+ }
1247
+ .topside-form-editor .topside-common-picker:hover .clean-icon.has-value i:active {
1248
+ top: 1px;
1249
+ }
1250
+ .topside-form-editor .topside-common-picker:has(.clean-icon) input {
1251
+ padding-right: 14px;
1252
+ }
1253
+ .topside-form-editor {
1254
+ /* 2.3 宿主容器对内部核心结构的覆写约束 */
1255
+ }
1256
+ .topside-form-editor .topside-common-editor .editor-prefix,
1257
+ .topside-form-editor .topside-common-editor .editor-suffix {
1258
+ flex: 0 0 auto;
1259
+ color: var(--topside-secondary-color-font);
1260
+ }
1261
+ .topside-form-editor .topside-common-editor .number-input {
1262
+ text-align: right;
1263
+ }
1264
+ .topside-form-editor .topside-common-editor .editor-embed-icon {
1265
+ flex: 0 0 auto;
1266
+ font-size: 18px;
1267
+ line-height: 18px;
1268
+ color: var(--topside-secondary-color-font);
1269
+ }
1270
+ .topside-form-editor {
1271
+ /* 2.4 选择器组件容器 (Picker 联动) */
1272
+ }
1273
+ .topside-form-editor .topside-common-picker {
1274
+ height: 38px;
1275
+ }
1276
+ .topside-form-editor .topside-common-picker .action-icon {
1277
+ display: block;
1278
+ box-sizing: border-box;
1279
+ color: var(--topside-editor-text-color, #374151);
1280
+ align-self: center;
1281
+ cursor: pointer;
1282
+ font-size: 22px;
1283
+ line-height: 1;
1284
+ }
1285
+ .topside-form-editor .topside-common-picker .action-icon:active {
1286
+ color: var(--topside-active-dropdown-color, #9d9d9d);
1287
+ }
1288
+ .topside-form-editor .topside-common-picker .options-item-render {
1289
+ width: 100%;
1290
+ }
1291
+ .topside-form-editor .topside-common-picker .options-item-render:hover {
1292
+ background-color: var(--topside-plain-hover-border-color, #b3d8ff);
1293
+ }
1294
+
1295
+ /* ==========================================================================
1296
+ 3. 弹出层(下拉数据面板与数据流容器)
1297
+ ========================================================================== */
1298
+ .topside-options-popover {
1299
+ position: relative;
1300
+ width: 100%;
1301
+ max-height: 30vh;
1302
+ user-select: none;
1303
+ }
1304
+ .topside-options-popover .option-item {
1305
+ position: relative;
1306
+ width: 100%;
1307
+ padding: var(--topside-option-padding);
1308
+ line-height: 1.5em;
1309
+ cursor: pointer;
1310
+ color: var(--topside-option-text-color, #374151);
1311
+ }
1312
+ .topside-options-popover .option-item:hover {
1313
+ background-color: var(--topside-hover-item-background, #f7f7f7);
1314
+ color: var(--topside-hover-item-color, #42A5F5);
1315
+ }
1316
+ .topside-options-popover .option-item.disabled {
1317
+ color: var(--topside-disabled-color, #7f7f7f);
1318
+ cursor: default;
1319
+ }
1320
+ .topside-options-popover .option-item.disabled:hover {
1321
+ background-color: unset;
1322
+ color: var(--topside-disabled-color, #7f7f7f);
1323
+ }
1324
+ .topside-options-popover .popover-mask-overlay {
1325
+ position: absolute;
1326
+ top: 0;
1327
+ bottom: 0;
1328
+ left: 0;
1329
+ right: 0;
1330
+ color: rgba(255, 255, 255, 0.1254901961);
1331
+ }
1332
+ .topside-options-popover .more-indicator-footer {
1333
+ text-align: center;
1334
+ line-height: 24px;
1335
+ font-size: 1.1em;
1336
+ font-style: italic;
1337
+ color: #B3BCCA;
1338
+ cursor: pointer;
1339
+ }
1340
+
1341
+ .topside-popover-wrapper {
1342
+ /* Popover.svelte computes position.top/left from target.getBoundingClientRect(),
1343
+ which is viewport-relative. `position: absolute` places this element relative to
1344
+ the document instead, so it drifted away from its anchor by the page's (or any
1345
+ ancestor's) scroll offset. `fixed` keeps the same coordinate frame as the values
1346
+ driving top/left, and combined with the scroll listener in Popover.svelte the
1347
+ overlay stays pinned to its anchor while scrolling. See also ContextMenuPanel.svelte
1348
+ and FloatingPanel.svelte, which use the same fixed + viewport-relative-coords pattern. */
1349
+ position: fixed;
1350
+ display: block;
1351
+ z-index: var(--topside-z-popover, 100);
1352
+ opacity: 1;
1353
+ visibility: visible;
1354
+ transition: opacity 0.3s ease-in-out;
1355
+ }
1356
+ .topside-popover-wrapper.hidden {
1357
+ visibility: hidden;
1358
+ opacity: 0;
1359
+ }
1360
+
1361
+ .topside-popover {
1362
+ position: relative;
1363
+ width: 100%;
1364
+ box-sizing: border-box;
1365
+ }
1366
+ .topside-popover > div {
1367
+ position: absolute;
1368
+ display: block;
1369
+ }
1370
+ .topside-popover > div .contents {
1371
+ background: var(--topside-popover-layer-color-surface);
1372
+ box-shadow: var(--topside-popover-layer-shadow);
1373
+ padding-top: var(--topside-popover-layer-top-margin);
1374
+ border: 1px solid var(--topside-popover-layer-color-border);
1375
+ color: var(--topside-popover-layer-color);
1376
+ opacity: 1;
1377
+ transform: scale(1);
1378
+ display: block;
1379
+ }
1380
+ .topside-popover > div .contents .contents-inner {
1381
+ overflow: auto;
1382
+ }
1383
+ .topside-popover > div .contents .contents-inner .option-item {
1384
+ position: relative;
1385
+ width: 100%;
1386
+ padding: var(--topside-option-item-margin);
1387
+ line-height: 1.5em;
1388
+ cursor: pointer;
1389
+ display: flex;
1390
+ flex-direction: row;
1391
+ align-items: center;
1392
+ color: var(--topside-option-text-color, #374151);
1393
+ }
1394
+ .topside-popover > div .contents .contents-inner .option-item:hover {
1395
+ background: var(--topside-popover-item-color-surface-hover);
1396
+ color: var(--topside-popover-item-color-hover);
1397
+ }
1398
+ .topside-popover > div .contents .contents-inner .option-item:active {
1399
+ background: var(--topside-popover-item-color-surface-active);
1400
+ color: var(--topside-popover-item-color-active);
1401
+ }
1402
+ .topside-popover > div .contents .contents-inner .option-item.disabled {
1403
+ background: var(--topside-popover-layer-color-surface) !important;
1404
+ color: var(--topside-popover-layer-color) !important;
1405
+ }
1406
+
1407
+ :root {
1408
+ /* ========== DataTable - Light Theme Tokens ========== */
1409
+ --topside-data-table-header-hight: 48px;
1410
+ --topside-data-table-separator-shadow: rgba(60, 64, 67, 0.3) 0px 1px 2px 0px, rgba(60, 64, 67, 0.15) 0px 1px 3px 1px;
1411
+ --topside-data-table-spearator-color: #f0f0f0;
1412
+ --topside-data-table-header-separator-color: #CBD5E1;
1413
+ --topside-data-table-alter-row-bg: #f7f7f7;
1414
+ --topside-data-table-header-bg: #F8FAFC;
1415
+ --topside-data-table-shadow-gap: 2px;
1416
+ --topside-data-table-header-divid-color: #B3BCCA;
1417
+ --topside-data-table-cell-padding: 3px 6px;
1418
+ --topside-data-table-inline-row-panel-border: 1px solid #F8FAFC;
1419
+ --topside-data-table-inline-row-panel-bg: #F1F5F9;
1420
+ --topside-scroll-color: #e1e1e180;
1421
+ --topside-data-table-inline-border-color: #CBD5E1;
1422
+ --topside-data-table-bg: #ffffff;
1423
+ --topside-data-table-row-border-color: #f0f0f0;
1424
+ --topside-data-table-expand-row-bg: #f7f7f7;
1425
+ --topside-data-table-empty-text-color: #7f7f7f;
1426
+ --topside-data-table-col-divide-line-color: #e1e1e1;
1427
+ --topside-data-table-header-color: #374151;
1428
+ }
1429
+
1430
+ /* ========== DataTable - Dark Theme Tokens ========== */
1431
+ [data-theme=dark] {
1432
+ --topside-data-table-header-hight: 48px;
1433
+ --topside-data-table-separator-shadow: rgba(0, 0, 0, 0.5) 0px 1px 2px 0px, rgba(0, 0, 0, 0.35) 0px 1px 3px 1px;
1434
+ --topside-data-table-spearator-color: #3a3a3a;
1435
+ --topside-data-table-header-separator-color: #52525B;
1436
+ --topside-data-table-alter-row-bg: #222222;
1437
+ --topside-data-table-header-bg: #1a1a1a;
1438
+ --topside-data-table-shadow-gap: 2px;
1439
+ --topside-data-table-header-divid-color: #4a4a4a;
1440
+ --topside-data-table-cell-padding: 3px 6px;
1441
+ --topside-data-table-inline-row-panel-border: 1px solid #262626;
1442
+ --topside-data-table-inline-row-panel-bg: #262626;
1443
+ --topside-scroll-color: #4a4a4a80;
1444
+ --topside-data-table-inline-border-color: #404040;
1445
+ --topside-data-table-bg: #1a1a1a;
1446
+ --topside-data-table-row-border-color: #3a3a3a;
1447
+ --topside-data-table-expand-row-bg: #222222;
1448
+ --topside-data-table-empty-text-color: #8a8a8a;
1449
+ --topside-data-table-col-divide-line-color: #3a3a3a;
1450
+ --topside-data-table-header-color: #e5e7eb;
1451
+ }
1452
+
1453
+ .topside-data-table {
1454
+ position: relative;
1455
+ box-sizing: border-box;
1456
+ overflow: hidden;
1457
+ background-color: var(--topside-data-table-bg);
1458
+ color: var(--topside-data-table-header-color);
1459
+ display: flex;
1460
+ flex-direction: row;
1461
+ }
1462
+ .topside-data-table ::-webkit-scrollbar {
1463
+ -webkit-appearance: none;
1464
+ box-sizing: border-box;
1465
+ width: 8px;
1466
+ height: 8px;
1467
+ }
1468
+ .topside-data-table ::-webkit-scrollbar:vertical {
1469
+ border-left: 1px solid var(--topside-data-table-inline-border-color);
1470
+ }
1471
+ .topside-data-table ::-webkit-scrollbar:horizontal {
1472
+ border-top: 1px solid var(--topside-data-table-inline-border-color);
1473
+ }
1474
+ .topside-data-table ::-webkit-scrollbar-thumb {
1475
+ border-radius: 4px;
1476
+ background-color: var(--topside-scroll-color);
1477
+ -webkit-box-shadow: 0 0 1px rgba(255, 255, 255, 0.5);
1478
+ }
1479
+ .topside-data-table .vertical-center {
1480
+ position: relative;
1481
+ top: 50%;
1482
+ transform: translateY(-50%);
1483
+ }
1484
+ .topside-data-table .header-row {
1485
+ flex: 0 0 auto;
1486
+ width: 100%;
1487
+ position: relative;
1488
+ height: var(--topside-data-table-header-hight);
1489
+ font-weight: 600;
1490
+ user-select: none;
1491
+ background-color: var(--topside-data-table-header-bg);
1492
+ border-bottom: 1px solid transparent;
1493
+ color: var(--topside-data-table-header-color);
1494
+ display: flex;
1495
+ flex-direction: row;
1496
+ }
1497
+ .topside-data-table .header-row .header-cell-divider {
1498
+ position: absolute;
1499
+ top: 0;
1500
+ right: 0;
1501
+ bottom: 0;
1502
+ width: 3px;
1503
+ z-index: 2;
1504
+ }
1505
+ .topside-data-table .header-row .header-cell-divider::before {
1506
+ content: ""; /* 必须指定伪元素的内容 */
1507
+ position: absolute;
1508
+ left: 50%; /* 将伪元素水平居中 */
1509
+ top: 25%;
1510
+ bottom: 25%;
1511
+ width: 1px; /* 竖线宽度 */
1512
+ background-color: var(--topside-data-table-header-separator-color); /* 竖线颜色 */
1513
+ transform: translateX(-50%); /* 精确居中 */
1514
+ }
1515
+ .topside-data-table .header-row .header-cell-divider.resizer {
1516
+ cursor: col-resize;
1517
+ }
1518
+ .topside-data-table.cell-border .header-cell-divider:not(.resizer)::before {
1519
+ display: none;
1520
+ }
1521
+ .topside-data-table .data-cell {
1522
+ height: 100%;
1523
+ border-right: 1px solid transparent;
1524
+ padding: var(--topside-data-table-cell-padding);
1525
+ position: relative;
1526
+ overflow: hidden;
1527
+ }
1528
+ .topside-data-table .data-cell .sortable {
1529
+ cursor: pointer;
1530
+ }
1531
+ .topside-data-table .data-cell:last-child {
1532
+ border-right: none;
1533
+ }
1534
+ .topside-data-table .data-cell > div:first-child {
1535
+ overflow: hidden;
1536
+ }
1537
+ .topside-data-table .data-row {
1538
+ position: relative;
1539
+ display: flex;
1540
+ width: 100%;
1541
+ flex-wrap: nowrap;
1542
+ flex-direction: row;
1543
+ align-items: center;
1544
+ background-color: var(--topside-data-table-bg);
1545
+ }
1546
+ .topside-data-table .data-row.alternative {
1547
+ background-color: var(--topside-data-table-alter-row-bg);
1548
+ }
1549
+ .topside-data-table .data-row .data-cell > div {
1550
+ width: 100%;
1551
+ overflow: hidden;
1552
+ white-space: nowrap;
1553
+ text-overflow: ellipsis;
1554
+ }
1555
+ .topside-data-table.row-border .header-row, .topside-data-table.row-border .data-row {
1556
+ border-bottom: 1px solid var(--topside-data-table-inline-border-color);
1557
+ }
1558
+ .topside-data-table.cell-border .data-cell {
1559
+ border-right-color: var(--topside-data-table-inline-border-color);
1560
+ }
1561
+ .topside-data-table .rows-container {
1562
+ flex: 1 1 auto;
1563
+ height: 100%;
1564
+ width: 100%;
1565
+ box-sizing: border-box;
1566
+ overflow: hidden;
1567
+ }
1568
+ .topside-data-table .rows-container > div {
1569
+ width: 100%;
1570
+ position: relative;
1571
+ }
1572
+ .topside-data-table .left-fixed-panel, .topside-data-table .action-panel {
1573
+ flex: 0 0 auto;
1574
+ position: relative;
1575
+ box-sizing: border-box;
1576
+ overflow: hidden;
1577
+ display: flex;
1578
+ flex-direction: column;
1579
+ }
1580
+ .topside-data-table .left-fixed-panel .bottom-mask-overlay, .topside-data-table .action-panel .bottom-mask-overlay {
1581
+ flex: 0 0 auto;
1582
+ width: 100%;
1583
+ height: 8px;
1584
+ box-sizing: border-box;
1585
+ background-color: var(--topside-data-table-bg);
1586
+ border-top: 1px solid var(--topside-data-table-inline-border-color);
1587
+ }
1588
+ .topside-data-table .left-fixed-panel .data-cell {
1589
+ flex: 0 0 auto;
1590
+ }
1591
+ .topside-data-table .left-fixed-panel .data-cell:last-child {
1592
+ border-right: none;
1593
+ }
1594
+ .topside-data-table .left-fixed-panel {
1595
+ z-index: 1;
1596
+ border-right: 1px solid var(--topside-data-table-inline-border-color);
1597
+ box-shadow: var(--topside-data-table-separator-shadow);
1598
+ }
1599
+ .topside-data-table .left-fixed-panel .indicator-cell {
1600
+ display: flex;
1601
+ flex-direction: row;
1602
+ justify-content: center;
1603
+ align-items: center;
1604
+ }
1605
+ .topside-data-table .left-fixed-panel .indicator-cell .expand-icon {
1606
+ display: none;
1607
+ color: var(--topside-hover-item-color);
1608
+ font-size: 14px;
1609
+ width: 16px;
1610
+ right: 4px;
1611
+ cursor: pointer;
1612
+ }
1613
+ .topside-data-table .left-fixed-panel .indicator-cell:hover .expand-icon {
1614
+ display: block;
1615
+ }
1616
+ .topside-data-table .action-panel {
1617
+ z-index: 1;
1618
+ border-left: 1px solid var(--topside-data-table-inline-border-color);
1619
+ box-shadow: var(--topside-data-table-separator-shadow);
1620
+ }
1621
+ .topside-data-table .action-panel .header-row {
1622
+ display: block;
1623
+ text-align: center;
1624
+ }
1625
+ .topside-data-table .action-panel .data-row .action-cell {
1626
+ display: flex;
1627
+ flex-direction: row;
1628
+ gap: 4px;
1629
+ align-items: center;
1630
+ width: max-content;
1631
+ height: 100%;
1632
+ overflow-x: auto;
1633
+ white-space: nowrap;
1634
+ position: relative;
1635
+ }
1636
+ .topside-data-table.row-border .table-row {
1637
+ border-bottom: 1px solid var(--topside-data-table-row-border-color);
1638
+ }
1639
+ .topside-data-table .data-content-panel {
1640
+ position: relative;
1641
+ width: 100%;
1642
+ flex: 1 1 auto;
1643
+ overflow: hidden;
1644
+ display: flex;
1645
+ flex-direction: column;
1646
+ }
1647
+ .topside-data-table .data-content-panel .data-cell {
1648
+ flex: 0 0 auto;
1649
+ }
1650
+ .topside-data-table .data-content-panel .data-cell > div:first-child {
1651
+ position: relative;
1652
+ top: 50%;
1653
+ transform: translateY(-50%);
1654
+ }
1655
+ .topside-data-table .data-content-panel .header-row > div {
1656
+ position: relative;
1657
+ height: 100%;
1658
+ display: flex;
1659
+ flex-direction: row;
1660
+ align-items: center;
1661
+ }
1662
+ .topside-data-table .data-content-panel .header-row .data-cell {
1663
+ text-align: center !important;
1664
+ }
1665
+ .topside-data-table .data-content-panel .expand-data-row {
1666
+ background-color: var(--topside-data-table-expand-row-bg);
1667
+ min-height: 32px;
1668
+ box-sizing: border-box;
1669
+ }
1670
+ .topside-data-table .data-content-panel .data-view-panel {
1671
+ flex: 1 1 auto;
1672
+ overflow-y: hidden;
1673
+ overflow-x: scroll;
1674
+ position: relative;
1675
+ box-sizing: border-box;
1676
+ }
1677
+ .topside-data-table .data-content-panel .data-view-panel > div {
1678
+ position: relative;
1679
+ }
1680
+ .topside-data-table .summary-row {
1681
+ position: sticky;
1682
+ bottom: 0;
1683
+ z-index: 2;
1684
+ display: flex;
1685
+ flex-direction: row;
1686
+ flex-wrap: nowrap;
1687
+ align-items: center;
1688
+ width: 100%;
1689
+ box-sizing: border-box;
1690
+ font-weight: 600;
1691
+ background-color: var(--topside-data-table-summary-bg, var(--topside-data-table-header-bg));
1692
+ border-top: 1px solid var(--topside-data-table-inline-border-color);
1693
+ }
1694
+ .topside-data-table .summary-row .data-cell > div {
1695
+ width: 100%;
1696
+ overflow: hidden;
1697
+ white-space: nowrap;
1698
+ text-overflow: ellipsis;
1699
+ }
1700
+ .topside-data-table .inline-panel {
1701
+ position: relative;
1702
+ width: 100%;
1703
+ overflow: auto;
1704
+ box-sizing: border-box;
1705
+ border-top: var(--topside-data-table-inline-row-panel-border);
1706
+ border-bottom: var(--topside-data-table-inline-row-panel-border);
1707
+ background-color: var(--topside-data-table-inline-row-panel-bg);
1708
+ }
1709
+ .topside-data-table .empty-content-board {
1710
+ position: relative;
1711
+ width: 100%;
1712
+ height: 100%;
1713
+ }
1714
+ .topside-data-table .empty-content-board > div {
1715
+ text-align: center;
1716
+ font-size: 1.5em;
1717
+ position: relative;
1718
+ top: 50%;
1719
+ transform: translateY(-50%);
1720
+ color: var(--topside-data-table-empty-text-color);
1721
+ font-style: italic;
1722
+ }
1723
+ .topside-data-table.col-divide-line .table-data-cell {
1724
+ border-right: 1px solid var(--topside-data-table-col-divide-line-color);
1725
+ }
1726
+
1727
+ .topside- * {
1728
+ box-sizing: border-box;
1729
+ }
1730
+
1731
+ .topside-mask-overlay {
1732
+ position: fixed;
1733
+ top: 0;
1734
+ left: 0;
1735
+ width: 100vw;
1736
+ height: 100vh;
1737
+ background-color: rgba(0, 0, 0, 0.45);
1738
+ z-index: var(--topside-z-modal-overlay, 9998);
1739
+ opacity: 1;
1740
+ transition: opacity 0.15s ease;
1741
+ }
1742
+ .topside-mask-overlay .hidden {
1743
+ opacity: 0;
1744
+ }
1745
+ .topside-mask-overlay .topside-mask-center {
1746
+ position: relative;
1747
+ width: 100%;
1748
+ height: 100%;
1749
+ display: flex;
1750
+ flex-direction: column;
1751
+ align-items: center;
1752
+ justify-content: center;
1753
+ }