@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,304 @@
1
+ # Navigator Component
2
+
3
+ > **Renamed in 5.1.0**: this document uses the names from the [API Naming Guide](../../../docs/NAMING.md); the old names `itemClickHandler` were removed in 5.1.0 (no compatibility aliases are kept).
4
+
5
+ A vertical step / wizard navigator. Renders items as a clickable list with a connecting vertical line on the left, an active marker (filled circle), per-item status colors (completed / warning / not-start), and optional highlights. Designed for multi-step forms and guided workflows.
6
+
7
+ ## Features
8
+
9
+ - **Vertical wizard trail**: each item gets a left-aligned line segment via CSS gradient; first/last items render half-segments so the line starts at the top of the first item and ends at the bottom of the last
10
+ - **Three status states**: `Completed`, `Warning` (red dot), `NotStart` (italic, dimmed) — drive them via a `retrieveStatus` callback
11
+ - **Active marker**: the active item shows a 15px bordered circle on the left
12
+ - **Highlights array**: extra "look at me" color for arbitrary items (e.g. items with errors)
13
+ - **Two-way bindable `activeItem`**: `bind:activeItem` updates on click without needing `onItemClick`
14
+ - **Scrolls vertically** when items overflow
15
+
16
+ ## Installation
17
+
18
+ ```bash
19
+ npm install @ticatec/topside-elements
20
+ ```
21
+
22
+ ## Import
23
+
24
+ ```typescript
25
+ import Navigator, { NavItemStatus } from '@ticatec/topside-elements/Navigator';
26
+ ```
27
+
28
+ ## Basic Usage
29
+
30
+ ```svelte
31
+ <script lang="ts">
32
+ import Navigator, { NavItemStatus } from '@ticatec/topside-elements/Navigator';
33
+
34
+ const steps = [
35
+ { text: 'Step 1' },
36
+ { text: 'Step 2' },
37
+ { text: 'Step 3' },
38
+ { text: 'Step 4' }
39
+ ];
40
+
41
+ let activeItem = $state(steps[0]);
42
+
43
+ // Mark items before activeItem as Completed, after as NotStart
44
+ function getStepStatus(item: any): NavItemStatus {
45
+ return steps.indexOf(item) <= steps.indexOf(activeItem)
46
+ ? NavItemStatus.Completed
47
+ : NavItemStatus.NotStart;
48
+ }
49
+ </script>
50
+
51
+ <Navigator
52
+ items={steps}
53
+ bind:activeItem
54
+ retrieveStatus={getStepStatus}
55
+ />
56
+ ```
57
+
58
+ With `bind:activeItem`, clicking an item updates `activeItem` directly. No `onItemClick` needed unless you want to run side effects (analytics, validation, route change).
59
+
60
+ ## Props
61
+
62
+ | Prop | Type | Default | Description |
63
+ |------|------|---------|-------------|
64
+ | `items` | `Array<any>` | _(required)_ | Nav items. Each **must have a `text` property** for the label. Other fields are yours. |
65
+ | `activeItem` | `any` | `$bindable(undefined)` | Currently active item. **`bind:activeItem`** for two-way binding; on click, the component assigns the clicked item here before calling `onItemClick`. |
66
+ | `highlights` | `Array<any>` | `[]` | Items to highlight (e.g. items with errors). Matched by reference equality. |
67
+ | `onItemClick` | `((item: any) => void) \| undefined` | `undefined` | Called on every click, **after** `activeItem` is updated. Use for side effects; not needed for state updates if you `bind:activeItem`. |
68
+ | `retrieveStatus` | `((item: any) => NavItemStatus) \| undefined` | `undefined` | Returns the status for each item. **If omitted, all items default to `Completed`.** |
69
+ | `style` | `string` | `''` | Inline CSS on the outer wrapper |
70
+
71
+ > **Items matched by reference.** `activeItem === item` and `highlights.indexOf(item)` both use reference equality. Don't reconstruct arrays or clone items between renders — the active / highlight state will be lost.
72
+
73
+ ## NavItemStatus Enum
74
+
75
+ ```typescript
76
+ enum NavItemStatus {
77
+ Completed = 'nav-completed', // Default text color
78
+ Warning = 'nav-warning', // Same color + red dot on the right
79
+ NotStart = 'nav-not-start', // Dimmed + italic
80
+ }
81
+ ```
82
+
83
+ The CSS class is the enum value (`NavItemStatus.Completed === 'nav-completed'`), applied to each item's wrapper.
84
+
85
+ ## Layout
86
+
87
+ ```text
88
+ ┌─────────────────────────┐
89
+ │ .topside-navigator-panel │ (overflow:hidden, full height)
90
+ │ ┌─────────────────────┐ │
91
+ │ │ .navigator-content │ │ (overflow-y:auto)
92
+ │ │ │ │
93
+ │ │ ┃ ● Step 1 │ │ ← active (circle marker, bold)
94
+ │ │ ┃ Step 2 │ │ ← completed
95
+ │ │ ┃ Step 3 • │ │ ← warning (red dot right)
96
+ │ │ ┃ Step 4 │ │ ← not-start (italic, dimmed)
97
+ │ │ │ │
98
+ │ └─────────────────────┘ │
99
+ └─────────────────────────┘
100
+ ```
101
+
102
+ The vertical line is a CSS `linear-gradient` on each item's background. The first/last items get half-height gradients so the line doesn't extend past the visual start/end.
103
+
104
+ ## DOM Structure & CSS
105
+
106
+ Rendered output:
107
+
108
+ ```html
109
+ <div class="topside-navigator-panel" style="...">
110
+ <div class="navigator-content">
111
+ <!-- per item -->
112
+ <div
113
+ class="topside-navigator-item {retrieveStatus(item) ?? 'nav-completed'}"
114
+ class:active={activeItem === item}
115
+ class:highlight={highlights.indexOf(item) > -1}
116
+ aria-hidden="true"
117
+ onclick={() => handleClick(item)}
118
+ >
119
+ <span>{item.text}</span>
120
+ </div>
121
+ ...
122
+ </div>
123
+ </div>
124
+ ```
125
+
126
+ ### CSS Variables (all scoped to `.topside-navigator-panel`)
127
+
128
+ | Variable | Purpose |
129
+ |----------|---------|
130
+ | `--topside-navigator-background-color` | Panel background |
131
+ | `--topside-navigator-vertical-padding` | Panel top/bottom padding |
132
+ | `--topside-navigator-completed-text-color` | `Completed` item color |
133
+ | `--topside-navigator-not-start-text-color` | `NotStart` item color |
134
+ | `--topside-navigator-warning-dot-color` | `Warning` red dot color |
135
+ | `--topside-navigator-hover-text-color` | Hover color (non-active items) |
136
+ | `--topside-navigator-active-text-color` | Active item color + marker border |
137
+ | `--topside-navigator-active-text-weight` | Active item font weight (default `600`) |
138
+ | `--topside-navigator-highlight-text-color` | Highlight color |
139
+
140
+ Override per-instance:
141
+
142
+ ```svelte
143
+ <div style="--topside-navigator-active-text-color: #dc2626;">
144
+ <Navigator ... />
145
+ </div>
146
+ ```
147
+
148
+ Or globally:
149
+
150
+ ```css
151
+ :root {
152
+ --topside-navigator-active-text-color: #0061ff;
153
+ }
154
+ ```
155
+
156
+ ### Visual markers
157
+
158
+ - **Active item**: a 15px circle (`.active::before`) with a 4px border in `--topside-navigator-active-text-color`, white fill, positioned at `left: 5px; top: 50%`. Hover is suppressed on active items (`cursor: default`).
159
+ - **Warning item**: a 6px red dot (`.nav-warning::after`) at `right: 8px; top: 30%`.
160
+ - **Connecting line**: CSS `linear-gradient` on each item's background creates a 1px vertical line at `12-13px` from the left. First item: top half (so the line starts at the item's vertical center). Last item: bottom half. Middle items: full height.
161
+
162
+ ## Examples
163
+
164
+ ### Multi-Step Wizard with Navigation Controls
165
+
166
+ ```svelte
167
+ <script lang="ts">
168
+ import Navigator, { NavItemStatus } from '@ticatec/topside-elements/Navigator';
169
+
170
+ const steps = [
171
+ { text: 'Personal Info' },
172
+ { text: 'Contact Details' },
173
+ { text: 'Preferences' },
174
+ { text: 'Review' }
175
+ ];
176
+
177
+ let activeItem = $state(steps[0]);
178
+ let highlights = $state<any>([]);
179
+
180
+ function getStepStatus(item: any): NavItemStatus {
181
+ const idx = steps.indexOf(item);
182
+ const currentIdx = steps.indexOf(activeItem);
183
+ if (idx < currentIdx) return NavItemStatus.Completed;
184
+ if (idx === currentIdx) return NavItemStatus.Completed;
185
+ return NavItemStatus.NotStart;
186
+ }
187
+
188
+ function handleClick(item: any) {
189
+ // Only allow navigating back to completed steps
190
+ if (steps.indexOf(item) > steps.indexOf(activeItem)) {
191
+ // revert the activeItem change Navigator already applied
192
+ activeItem = steps.find(s => s === arguments[0]) ?? activeItem;
193
+ }
194
+ }
195
+
196
+ function next() {
197
+ const idx = steps.indexOf(activeItem);
198
+ if (idx < steps.length - 1) activeItem = steps[idx + 1];
199
+ }
200
+
201
+ function prev() {
202
+ const idx = steps.indexOf(activeItem);
203
+ if (idx > 0) activeItem = steps[idx - 1];
204
+ }
205
+ </script>
206
+
207
+ <Navigator
208
+ items={steps}
209
+ bind:activeItem
210
+ highlights={highlights}
211
+ retrieveStatus={getStepStatus}
212
+ onItemClick={handleClick}
213
+ />
214
+
215
+ <div style="margin-top: 32px; padding: 24px; border: 1px solid #ddd;">
216
+ <h2>{activeItem.text}</h2>
217
+ <p>Content for this step.</p>
218
+ <div style="display: flex; gap: 8px;">
219
+ <button onclick={prev}>Previous</button>
220
+ <button onclick={next}>Next</button>
221
+ </div>
222
+ </div>
223
+ ```
224
+
225
+ ### Items with Errors (highlights + warning)
226
+
227
+ ```svelte
228
+ <script lang="ts">
229
+ import Navigator, { NavItemStatus } from '@ticatec/topside-elements/Navigator';
230
+
231
+ const steps = [
232
+ { text: 'Account', hasError: false },
233
+ { text: 'Profile', hasError: true }, // this one has issues
234
+ { text: 'Confirm', hasError: false }
235
+ ];
236
+
237
+ let activeItem = $state(steps[0]);
238
+
239
+ // Highlight any step with errors
240
+ const highlights = steps.filter(s => s.hasError);
241
+
242
+ function getStatus(item: any): NavItemStatus {
243
+ if (item.hasError) return NavItemStatus.Warning;
244
+ return steps.indexOf(item) <= steps.indexOf(activeItem)
245
+ ? NavItemStatus.Completed
246
+ : NavItemStatus.NotStart;
247
+ }
248
+ </script>
249
+
250
+ <Navigator
251
+ items={steps}
252
+ bind:activeItem
253
+ {highlights}
254
+ retrieveStatus={getStatus}
255
+ />
256
+ ```
257
+
258
+ ### Status-Only (No Click Navigation)
259
+
260
+ If you want display-only (no click):
261
+
262
+ ```svelte
263
+ <Navigator
264
+ items={steps}
265
+ activeItem={steps[steps.length - 1]} {/* last item visually active */}
266
+ retrieveStatus={getStatus}
267
+ />
268
+ ```
269
+
270
+ Clicks will still update `activeItem` internally (if `bind:` or `onItemClick` is set), but you can omit both and let the component be effectively display-only. Without `bind:` or `onItemClick`, internal state still updates but no one hears about it.
271
+
272
+ ## Behavior Notes
273
+
274
+ - **Items matched by reference, not value.** Reconstructing the `items` array (e.g. via `.map`) on every render will lose `activeItem` / `highlights` matching. Keep `items` referentially stable.
275
+ - **`retrieveStatus` defaults to `Completed`** when omitted. If you forget to pass it, every item will look "done".
276
+ - **`activeItem` is updated internally on every click**, even if you don't `bind:` or pass `onItemClick`. The component is internally consistent — but the parent won't know.
277
+ - **`handleClick` runs `activeItem = item` first**, then `onItemClick?.(item)`. If you want to **prevent** the active change (e.g. user hasn't completed prerequisites), you need to undo it inside `onItemClick` by setting `activeItem` back. There's no `canActivate` predicate.
278
+ - **`aria-hidden="true"` on every item** — despite being clickable divs, they're hidden from screen readers. This is an a11y issue; see below.
279
+ - **Long labels clip horizontally**, not wrap. The wrapper is single-line.
280
+
281
+ ## Accessibility (Significant Limitations)
282
+
283
+ This component has **known a11y problems** you should be aware of:
284
+
285
+ 1. **Every item has `aria-hidden="true"`.** The entire navigation is invisible to screen readers — they won't announce items, the active state, or status colors.
286
+ 2. **Items are `<div onclick>`, not `<button>`.** No keyboard focus, no Enter/Space activation, no `role="link"` or `role="button"`.
287
+ 3. **Status is conveyed by color alone** (Completed vs NotStart) plus a small red dot for Warning. No text alternative.
288
+ 4. **No focus styles** for keyboard users.
289
+
290
+ If you need keyboard-accessible step navigation, wrap each item in your own `<button>` and pass labels via the snippet pattern, or fork the component. The visual design is good; the semantics are not.
291
+
292
+ ## Best Practices
293
+
294
+ 1. **Keep `items` referentially stable.** Define it once (module scope or `$state` that you don't reassign). Mapping on every render breaks active/highlight matching.
295
+ 2. **Use `bind:activeItem`** instead of `onItemClick` for plain state sync. Add `onItemClick` only for side effects.
296
+ 3. **Always provide `retrieveStatus`** unless you really want every item to look completed by default.
297
+ 4. **Use `Warning` + `highlights` together** for error states — the red dot catches the eye, the highlight color reinforces it.
298
+ 5. **For forward-only wizards**, undo the active change in `onItemClick` if the user clicks ahead. There's no built-in guard.
299
+ 6. **Don't rely on this for keyboard / screen-reader users.** See a11y note above.
300
+
301
+ ## Related Components
302
+
303
+ - [Breadcrumbs](../breadcrumbs/README.md) — horizontal path-style navigation (this is vertical step-style)
304
+ - [NavigatorMenu](../nav_menu/README.md) — full hierarchical menu
@@ -0,0 +1,304 @@
1
+ # Navigator 步骤导航组件
2
+
3
+ > **5.1.0 重命名**:本文使用 [API 命名规范](../../../docs/NAMING_CN.md) 中的名字;旧名 `itemClickHandler` 已在 5.1.0 移除(5.1.0 不保留兼容别名)。
4
+
5
+ 垂直的步骤 / 向导导航器。把项目渲染为可点击列表,左侧有连接的竖线,当前项有圆形标记,每项有状态颜色(完成 / 警告 / 未开始),还可以选择性高亮。专为多步表单和引导式流程设计。
6
+
7
+ ## 功能特性
8
+
9
+ - **垂直向导路径**:每项通过 CSS gradient 渲染一段左侧竖线;首项 / 末项渲染半段,让线从首项顶部开始、末项底部结束
10
+ - **三种状态**:`Completed`、`Warning`(红点)、`NotStart`(斜体、变淡) —— 通过 `retrieveStatus` 回调驱动
11
+ - **当前项标记**:active 项左侧显示 15px 圆形边框
12
+ - **高亮数组**:给任意项加"看我"颜色(比如有错误的项)
13
+ - **`activeItem` 双向绑定**:`bind:activeItem` 在点击时自动更新,不需要 `onItemClick`
14
+ - **纵向滚动**,内容溢出时
15
+
16
+ ## 安装
17
+
18
+ ```bash
19
+ npm install @ticatec/topside-elements
20
+ ```
21
+
22
+ ## 导入
23
+
24
+ ```typescript
25
+ import Navigator, { NavItemStatus } from '@ticatec/topside-elements/Navigator';
26
+ ```
27
+
28
+ ## 基本用法
29
+
30
+ ```svelte
31
+ <script lang="ts">
32
+ import Navigator, { NavItemStatus } from '@ticatec/topside-elements/Navigator';
33
+
34
+ const steps = [
35
+ { text: '第一步' },
36
+ { text: '第二步' },
37
+ { text: '第三步' },
38
+ { text: '第四步' }
39
+ ];
40
+
41
+ let activeItem = $state(steps[0]);
42
+
43
+ // activeItem 之前的标 Completed,之后的标 NotStart
44
+ function getStepStatus(item: any): NavItemStatus {
45
+ return steps.indexOf(item) <= steps.indexOf(activeItem)
46
+ ? NavItemStatus.Completed
47
+ : NavItemStatus.NotStart;
48
+ }
49
+ </script>
50
+
51
+ <Navigator
52
+ items={steps}
53
+ bind:activeItem
54
+ retrieveStatus={getStepStatus}
55
+ />
56
+ ```
57
+
58
+ 用 `bind:activeItem` 后,点击项直接更新 `activeItem`。不需要 `onItemClick` —— 除非要跑副作用(埋点、校验、路由切换)。
59
+
60
+ ## 属性
61
+
62
+ | 属性 | 类型 | 默认值 | 描述 |
63
+ |------|------|---------|-------------|
64
+ | `items` | `Array<any>` | _(必填)_ | 导航项。每项**必须有 `text` 属性**作为标签。其他字段随你 |
65
+ | `activeItem` | `any` | `$bindable(undefined)` | 当前 active 项。**`bind:activeItem`** 双向绑定;点击时组件先把点击项赋给它,再调 `onItemClick` |
66
+ | `highlights` | `Array<any>` | `[]` | 要高亮的项(如出错的项)。按引用相等匹配 |
67
+ | `onItemClick` | `((item: any) => void) \| undefined` | `undefined` | 每次点击调用,**在 `activeItem` 更新之后**。用于副作用;如果用了 `bind:activeItem` 就不需要它做状态更新 |
68
+ | `retrieveStatus` | `((item: any) => NavItemStatus) \| undefined` | `undefined` | 返回每项的状态。**不传时所有项默认 `Completed`** |
69
+ | `style` | `string` | `''` | 外层 wrapper 的内联 CSS |
70
+
71
+ > **项按引用匹配。** `activeItem === item` 和 `highlights.indexOf(item)` 都用引用相等。不要在渲染间重建数组或克隆项 —— active / 高亮状态会丢。
72
+
73
+ ## NavItemStatus 枚举
74
+
75
+ ```typescript
76
+ enum NavItemStatus {
77
+ Completed = 'nav-completed', // 默认文字色
78
+ Warning = 'nav-warning', // 同色 + 右侧红点
79
+ NotStart = 'nav-not-start', // 变淡 + 斜体
80
+ }
81
+ ```
82
+
83
+ CSS 类名就是枚举值(`NavItemStatus.Completed === 'nav-completed'`),加到每项的 wrapper 上。
84
+
85
+ ## 布局
86
+
87
+ ```text
88
+ ┌─────────────────────────┐
89
+ │ .topside-navigator-panel │ (overflow:hidden,整高)
90
+ │ ┌─────────────────────┐ │
91
+ │ │ .navigator-content │ │ (overflow-y:auto)
92
+ │ │ │ │
93
+ │ │ ┃ ● 第一步 │ │ ← active(圆形标记 + 加粗)
94
+ │ │ ┃ 第二步 │ │ ← completed
95
+ │ │ ┃ 第三步 • │ │ ← warning(右侧红点)
96
+ │ │ ┃ 第四步 │ │ ← not-start(斜体、变淡)
97
+ │ │ │ │
98
+ │ └─────────────────────┘ │
99
+ └─────────────────────────┘
100
+ ```
101
+
102
+ 竖线是每项背景上的 CSS `linear-gradient`。首项 / 末项用半高 gradient,让线不超出视觉起止点。
103
+
104
+ ## DOM 结构与 CSS
105
+
106
+ 实际渲染:
107
+
108
+ ```html
109
+ <div class="topside-navigator-panel" style="...">
110
+ <div class="navigator-content">
111
+ <!-- 每项 -->
112
+ <div
113
+ class="topside-navigator-item {retrieveStatus(item) ?? 'nav-completed'}"
114
+ class:active={activeItem === item}
115
+ class:highlight={highlights.indexOf(item) > -1}
116
+ aria-hidden="true"
117
+ onclick={() => handleClick(item)}
118
+ >
119
+ <span>{item.text}</span>
120
+ </div>
121
+ ...
122
+ </div>
123
+ </div>
124
+ ```
125
+
126
+ ### CSS 变量(都作用域在 `.topside-navigator-panel`)
127
+
128
+ | 变量 | 用途 |
129
+ |------|------|
130
+ | `--topside-navigator-background-color` | 面板背景 |
131
+ | `--topside-navigator-vertical-padding` | 面板上下 padding |
132
+ | `--topside-navigator-completed-text-color` | `Completed` 项颜色 |
133
+ | `--topside-navigator-not-start-text-color` | `NotStart` 项颜色 |
134
+ | `--topside-navigator-warning-dot-color` | `Warning` 红点颜色 |
135
+ | `--topside-navigator-hover-text-color` | hover 色(非 active 项) |
136
+ | `--topside-navigator-active-text-color` | active 项颜色 + 标记边框色 |
137
+ | `--topside-navigator-active-text-weight` | active 项字重(默认 `600`) |
138
+ | `--topside-navigator-highlight-text-color` | 高亮色 |
139
+
140
+ 单实例覆盖:
141
+
142
+ ```svelte
143
+ <div style="--topside-navigator-active-text-color: #dc2626;">
144
+ <Navigator ... />
145
+ </div>
146
+ ```
147
+
148
+ 或全局:
149
+
150
+ ```css
151
+ :root {
152
+ --topside-navigator-active-text-color: #0061ff;
153
+ }
154
+ ```
155
+
156
+ ### 视觉标记
157
+
158
+ - **active 项**:15px 圆(`.active::before`),4px 边框用 `--topside-navigator-active-text-color`,白底,位置 `left: 5px; top: 50%`。active 项禁用 hover(`cursor: default`)
159
+ - **warning 项**:6px 红点(`.nav-warning::after`),位置 `right: 8px; top: 30%`
160
+ - **连接线**:每项背景上的 CSS `linear-gradient` 创建 1px 竖线,距左 12-13px。首项:上半段(线从项的垂直中线开始)。末项:下半段。中间项:整高
161
+
162
+ ## 示例
163
+
164
+ ### 多步向导 + 导航控件
165
+
166
+ ```svelte
167
+ <script lang="ts">
168
+ import Navigator, { NavItemStatus } from '@ticatec/topside-elements/Navigator';
169
+
170
+ const steps = [
171
+ { text: '个人信息' },
172
+ { text: '联系方式' },
173
+ { text: '偏好设置' },
174
+ { text: '确认' }
175
+ ];
176
+
177
+ let activeItem = $state(steps[0]);
178
+ let highlights = $state<any>([]);
179
+
180
+ function getStepStatus(item: any): NavItemStatus {
181
+ const idx = steps.indexOf(item);
182
+ const currentIdx = steps.indexOf(activeItem);
183
+ if (idx < currentIdx) return NavItemStatus.Completed;
184
+ if (idx === currentIdx) return NavItemStatus.Completed;
185
+ return NavItemStatus.NotStart;
186
+ }
187
+
188
+ function handleClick(item: any) {
189
+ // 只允许回到已完成的步骤
190
+ if (steps.indexOf(item) > steps.indexOf(activeItem)) {
191
+ // 撤销 Navigator 已经做的 activeItem 改动
192
+ activeItem = steps.find(s => s === arguments[0]) ?? activeItem;
193
+ }
194
+ }
195
+
196
+ function next() {
197
+ const idx = steps.indexOf(activeItem);
198
+ if (idx < steps.length - 1) activeItem = steps[idx + 1];
199
+ }
200
+
201
+ function prev() {
202
+ const idx = steps.indexOf(activeItem);
203
+ if (idx > 0) activeItem = steps[idx - 1];
204
+ }
205
+ </script>
206
+
207
+ <Navigator
208
+ items={steps}
209
+ bind:activeItem
210
+ highlights={highlights}
211
+ retrieveStatus={getStepStatus}
212
+ onItemClick={handleClick}
213
+ />
214
+
215
+ <div style="margin-top: 32px; padding: 24px; border: 1px solid #ddd;">
216
+ <h2>{activeItem.text}</h2>
217
+ <p>该步骤的内容。</p>
218
+ <div style="display: flex; gap: 8px;">
219
+ <button onclick={prev}>上一步</button>
220
+ <button onclick={next}>下一步</button>
221
+ </div>
222
+ </div>
223
+ ```
224
+
225
+ ### 出错项(高亮 + 警告)
226
+
227
+ ```svelte
228
+ <script lang="ts">
229
+ import Navigator, { NavItemStatus } from '@ticatec/topside-elements/Navigator';
230
+
231
+ const steps = [
232
+ { text: '账户', hasError: false },
233
+ { text: '资料', hasError: true }, // 这一步有问题
234
+ { text: '确认', hasError: false }
235
+ ];
236
+
237
+ let activeItem = $state(steps[0]);
238
+
239
+ // 高亮任何出错的步骤
240
+ const highlights = steps.filter(s => s.hasError);
241
+
242
+ function getStatus(item: any): NavItemStatus {
243
+ if (item.hasError) return NavItemStatus.Warning;
244
+ return steps.indexOf(item) <= steps.indexOf(activeItem)
245
+ ? NavItemStatus.Completed
246
+ : NavItemStatus.NotStart;
247
+ }
248
+ </script>
249
+
250
+ <Navigator
251
+ items={steps}
252
+ bind:activeItem
253
+ {highlights}
254
+ retrieveStatus={getStatus}
255
+ />
256
+ ```
257
+
258
+ ### 仅展示(无点击导航)
259
+
260
+ 要纯展示(不可点):
261
+
262
+ ```svelte
263
+ <Navigator
264
+ items={steps}
265
+ activeItem={steps[steps.length - 1]} {/* 末项视觉上 active */}
266
+ retrieveStatus={getStatus}
267
+ />
268
+ ```
269
+
270
+ 点击仍然会内部更新 `activeItem`(如果用了 `bind:` 或 `onItemClick`),但你可以两个都不传,让组件事实上只展示。没有 `bind:` 或 `onItemClick` 时内部状态仍然更新,但没人能知道。
271
+
272
+ ## 行为说明
273
+
274
+ - **项按引用匹配,不是值。** 渲染间重建 `items` 数组(如 `.map`)会丢失 `activeItem` / `highlights` 匹配。保持 `items` 引用稳定
275
+ - **`retrieveStatus` 不传时默认 `Completed`**。忘了传的话每项看起来都是"已完成"
276
+ - **每次点击内部都更新 `activeItem`**,即使不用 `bind:` 或不传 `onItemClick`。组件内部自洽 —— 但父组件不会知道
277
+ - **`handleClick` 先执行 `activeItem = item`**,再执行 `onItemClick?.(item)`。如果想**阻止** active 变更(比如用户没完成前置步骤),需要在 `onItemClick` 内部把 `activeItem` 设回去。没有 `canActivate` 谓词
278
+ - **每项都有 `aria-hidden="true"`** —— 尽管是可点击 div,但屏幕阅读器看不到。这是 a11y 问题 —— 见下
279
+ - **长标签横向裁剪**,不换行。wrapper 是单行
280
+
281
+ ## 无障碍访问(重大限制)
282
+
283
+ 这个组件有**已知的 a11y 问题**,你需要知道:
284
+
285
+ 1. **每项都有 `aria-hidden="true"`。** 整个导航对屏幕阅读器不可见 —— 它们不会朗读项、active 状态或状态颜色
286
+ 2. **项是 `<div onclick>`,不是 `<button>`。** 没有键盘焦点、没有 Enter/Space 激活、没有 `role="link"` 或 `role="button"`
287
+ 3. **状态只靠颜色传达**(Completed vs NotStart)外加 Warning 的小红点。没有文字替代
288
+ 4. **没有键盘用户的焦点样式**
289
+
290
+ 需要键盘可访问的步骤导航,自己用 `<button>` 包每一项并通过 snippet 传标签,或 fork 这个组件。视觉设计不错;语义不行。
291
+
292
+ ## 最佳实践
293
+
294
+ 1. **保持 `items` 引用稳定。** 定义一次(模块作用域或不重新赋值的 `$state`)。每次渲染 map 会破坏 active / 高亮匹配
295
+ 2. **用 `bind:activeItem`** 而不是 `onItemClick` 做纯状态同步。`onItemClick` 只在需要副作用时加
296
+ 3. **永远传 `retrieveStatus`**,除非你真的想每项默认看起来都是已完成
297
+ 4. **`Warning` + `highlights` 一起用**做错误状态 —— 红点抓眼球,高亮色加强
298
+ 5. **只能向后的向导**,在 `onItemClick` 里撤销越界点击的 active 变更。没有内置守卫
299
+ 6. **不要给键盘 / 屏幕阅读器用户用这个。** 见上面 a11y 说明
300
+
301
+ ## 相关组件
302
+
303
+ - [Breadcrumbs](../breadcrumbs/README_CN.md) —— 水平路径式导航(这个是垂直步骤式)
304
+ - [NavigatorMenu](../nav_menu/README_CN.md) —— 完整层级菜单
@@ -0,0 +1,4 @@
1
+ import Navigator from "./Navigator.svelte";
2
+ import { NavItemStatus } from "./NavItemStatus";
3
+ export default Navigator;
4
+ export { NavItemStatus };
@@ -0,0 +1,4 @@
1
+ import Navigator from "./Navigator.svelte";
2
+ import { NavItemStatus } from "./NavItemStatus";
3
+ export default Navigator;
4
+ export { NavItemStatus };