@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,160 @@
1
+ <script lang="ts">
2
+ import {untrack} from 'svelte';
3
+ import type {Snippet} from 'svelte';
4
+ import type {TransitionConfig} from 'svelte/transition';
5
+ import {fly} from 'svelte/transition';
6
+ import {cubicOut} from 'svelte/easing';
7
+ import PageStackFrame from './PageStackFrame.svelte';
8
+ import {providePageStackContext} from './PageStackContext';
9
+
10
+ interface StackEntry {
11
+ id: string;
12
+ component: any;
13
+ props: Record<string, any>;
14
+ resolve: (value: any) => void;
15
+ }
16
+
17
+ type TransitionFn = (node: Element, params?: any) => TransitionConfig;
18
+
19
+ interface Props {
20
+ style?: string;
21
+ /** 每一帧 push/pop 的滑入滑出时长(ms)。仅在没有传 transitionParams 时生效;设为 0 关闭动画。 */
22
+ transitionDuration?: number;
23
+ /**
24
+ * 换成任意 svelte/transition 函数(fly/fade/scale/slide...)或自定义的过渡函数。
25
+ * 默认是从右侧滑入的 fly,效果同 transitionParams 未设置时的 {x:'100%', duration:transitionDuration, easing:cubicOut}。
26
+ */
27
+ transition?: TransitionFn;
28
+ /** 传给 transition 函数的参数;一旦提供,会完全替代基于 transitionDuration 生成的默认参数。 */
29
+ transitionParams?: Record<string, any>;
30
+ /** 根页面(初始内容,depth = 0) */
31
+ children?: Snippet;
32
+ }
33
+
34
+ let {
35
+ style = '',
36
+ transitionDuration = 260,
37
+ transition = fly,
38
+ transitionParams,
39
+ children
40
+ }: Props = $props();
41
+
42
+ let resolvedTransitionParams = $derived(
43
+ transitionParams ?? {x: '100%', duration: transitionDuration, easing: cubicOut}
44
+ );
45
+
46
+ let stack = $state<StackEntry[]>([]);
47
+
48
+ const generateId = (): string => `page_${Date.now()}_${Math.random().toString(36).slice(2, 9)}`;
49
+
50
+ function closeEntry(id: string, result?: any): void {
51
+ // untrack: push()/close()/reset() are meant to be callable from anywhere,
52
+ // including from inside a caller's own $effect (e.g. a page that
53
+ // auto-navigates further based on its props). Reading `stack` (to find/
54
+ // filter it) *and* writing it back in the same synchronous call would
55
+ // otherwise get attributed to whatever effect happens to be running at
56
+ // call time, and the write would then re-trigger that same effect —
57
+ // Svelte reports this as "effect reads and writes the same state" /
58
+ // effect_update_depth_exceeded. untrack() keeps this internal
59
+ // read+write from being picked up as a dependency of an unrelated,
60
+ // currently-running effect; existing subscribers of `stack` (the
61
+ // {#each} below) are unaffected — untrack only suppresses *new*
62
+ // spurious subscriptions created during this call.
63
+ let entry: StackEntry | undefined;
64
+ untrack(() => {
65
+ entry = stack.find(e => e.id === id);
66
+ if (!entry) return;
67
+ // 先移除再 resolve:resolve 可能同步触发调用方的后续逻辑(比如再次 push),
68
+ // 那时候这一帧必须已经不在栈里了。
69
+ stack = stack.filter(e => e.id !== id);
70
+ });
71
+ entry?.resolve(result);
72
+ }
73
+
74
+ /**
75
+ * push 一个组件进栈,覆盖显示在当前内容之上。返回的 Promise 在该页面调用
76
+ * getPageStack().close(result) 时以 result resolve;也可以用 PageStack 实例的
77
+ * pop(result) 从外部(比如 bottombar 的返回按钮)关闭当前栈顶。
78
+ */
79
+ export function push<R = any>(component: any, props: Record<string, any> = {}): Promise<R> {
80
+ return new Promise<R>(resolve => {
81
+ const id = generateId();
82
+ // see closeEntry() above for why this is wrapped in untrack()
83
+ untrack(() => {
84
+ stack = [...stack, {id, component, props, resolve: resolve as (v: any) => void}];
85
+ });
86
+ });
87
+ }
88
+
89
+ /** 关闭当前栈顶的一帧。栈为空时是 no-op。 */
90
+ export function pop(result?: any): void {
91
+ const top = stack[stack.length - 1];
92
+ if (top) closeEntry(top.id, result);
93
+ }
94
+
95
+ /** 清空整个栈,直接回到根页面。不逐帧过渡,适合"注销/切换上下文"这类场景。 */
96
+ export function reset(): void {
97
+ // see closeEntry() above for why this is wrapped in untrack()
98
+ let entries: StackEntry[] = [];
99
+ untrack(() => {
100
+ entries = stack;
101
+ stack = [];
102
+ });
103
+ entries.forEach(entry => entry.resolve(undefined));
104
+ }
105
+
106
+ // 根页面(children)本身也活在这个 context 里,depth = 0,close() 是 no-op——
107
+ // 根页面不是被 push 进来的,没有"关闭返回上一层"的语义,但它应该能拿到 push()
108
+ // 来发起第一层导航,不需要额外用 bind:this 去引用 PageStack 实例。
109
+ providePageStackContext({
110
+ close: () => {
111
+ if (typeof console !== 'undefined') {
112
+ console.warn('[PageStack] root page has no close() semantics — it was not pushed onto the stack');
113
+ }
114
+ },
115
+ push,
116
+ depth: 0
117
+ });
118
+ </script>
119
+
120
+ <div class="topside-page-stack" {style}>
121
+ <div class="page-stack-root" inert={stack.length > 0}>
122
+ {@render children?.()}
123
+ </div>
124
+ {#each stack as entry, i (entry.id)}
125
+ <div class="page-stack-frame" style="z-index: {i + 1}" inert={i < stack.length - 1}
126
+ transition:transition={resolvedTransitionParams}>
127
+ <PageStackFrame
128
+ id={entry.id}
129
+ component={entry.component}
130
+ props={entry.props}
131
+ depth={i + 1}
132
+ close={(result) => closeEntry(entry.id, result)}
133
+ {push}
134
+ />
135
+ </div>
136
+ {/each}
137
+ </div>
138
+
139
+ <style>
140
+ .topside-page-stack {
141
+ width: 100%;
142
+ height: 100%;
143
+ position: relative;
144
+ overflow: hidden;
145
+ box-sizing: border-box;
146
+ }
147
+
148
+ .page-stack-root {
149
+ width: 100%;
150
+ height: 100%;
151
+ position: relative;
152
+ }
153
+
154
+ .page-stack-frame {
155
+ position: absolute;
156
+ inset: 0;
157
+ overflow: auto;
158
+ background-color: var(--topside-page-stack-color-surface, var(--topside-color-surface));
159
+ }
160
+ </style>
@@ -0,0 +1,24 @@
1
+ import type { Snippet } from 'svelte';
2
+ import type { TransitionConfig } from 'svelte/transition';
3
+ type TransitionFn = (node: Element, params?: any) => TransitionConfig;
4
+ interface Props {
5
+ style?: string;
6
+ /** 每一帧 push/pop 的滑入滑出时长(ms)。仅在没有传 transitionParams 时生效;设为 0 关闭动画。 */
7
+ transitionDuration?: number;
8
+ /**
9
+ * 换成任意 svelte/transition 函数(fly/fade/scale/slide...)或自定义的过渡函数。
10
+ * 默认是从右侧滑入的 fly,效果同 transitionParams 未设置时的 {x:'100%', duration:transitionDuration, easing:cubicOut}。
11
+ */
12
+ transition?: TransitionFn;
13
+ /** 传给 transition 函数的参数;一旦提供,会完全替代基于 transitionDuration 生成的默认参数。 */
14
+ transitionParams?: Record<string, any>;
15
+ /** 根页面(初始内容,depth = 0) */
16
+ children?: Snippet;
17
+ }
18
+ declare const PageStack: import("svelte").Component<Props, {
19
+ push: <R = any>(component: any, props?: Record<string, any>) => Promise<R>;
20
+ pop: (result?: any) => void;
21
+ reset: () => void;
22
+ }, "">;
23
+ type PageStack = ReturnType<typeof PageStack>;
24
+ export default PageStack;
@@ -0,0 +1,25 @@
1
+ /**
2
+ * 每一层被 push 进 PageStack 的页面组件,都可以通过 getPageStack() 拿到这个 API。
3
+ * 根页面(PageStack 的 children)同样能拿到(depth = 0),但它的 close() 是 no-op——
4
+ * 根页面不是被 push 进来的,没有"关闭并返回上一层"这个语义。
5
+ */
6
+ export interface PageStackApi<T = any> {
7
+ /**
8
+ * 关闭当前页面。对应这一页 push() 时返回的 Promise 会以 result resolve。
9
+ * 根页面调用无效果(会在开发模式下打一条 warning)。
10
+ */
11
+ close: (result?: T) => void;
12
+ /**
13
+ * 在当前页面之上继续 push 一个新页面,和 PageStack 实例上的 push() 是同一个函数——
14
+ * 多级 drill-down 时不需要一路把最外层的 PageStack 引用传下去。
15
+ */
16
+ push: <R = any>(component: any, props?: Record<string, any>) => Promise<R>;
17
+ /** 当前页面在栈中的深度,根页面为 0,第一层 push 进来的页面为 1,以此类推。 */
18
+ depth: number;
19
+ }
20
+ export declare function providePageStackContext(api: PageStackApi): void;
21
+ /**
22
+ * 在被 PageStack push 进来的页面组件(或它的任意后代)里调用,拿到 {close, push, depth}。
23
+ * 在 PageStack 之外调用返回 undefined。
24
+ */
25
+ export declare function getPageStack<T = any>(): PageStackApi<T> | undefined;
@@ -0,0 +1,12 @@
1
+ import { getContext, setContext, hasContext } from 'svelte';
2
+ const CONTEXT_KEY = 'topside-page-stack';
3
+ export function providePageStackContext(api) {
4
+ setContext(CONTEXT_KEY, api);
5
+ }
6
+ /**
7
+ * 在被 PageStack push 进来的页面组件(或它的任意后代)里调用,拿到 {close, push, depth}。
8
+ * 在 PageStack 之外调用返回 undefined。
9
+ */
10
+ export function getPageStack() {
11
+ return hasContext(CONTEXT_KEY) ? getContext(CONTEXT_KEY) : undefined;
12
+ }
@@ -0,0 +1,24 @@
1
+ <script lang="ts">
2
+ import {providePageStackContext} from './PageStackContext';
3
+
4
+ interface Props {
5
+ id: string;
6
+ component: any;
7
+ props: Record<string, any>;
8
+ depth: number;
9
+ close: (result?: any) => void;
10
+ push: <R = any>(component: any, props?: Record<string, any>) => Promise<R>;
11
+ }
12
+
13
+ let {id, component: Comp, props, depth, close, push}: Props = $props();
14
+
15
+ // Context identity is fixed for the lifetime of this frame — mirrors
16
+ // DialogWrapper's getInitialDialogId pattern (overlay/dialog/DialogWrapper.svelte):
17
+ // later prop changes (e.g. depth staying the same but close/push identity
18
+ // churning on parent re-render) must not replace what this frame's
19
+ // descendants already captured via getPageStack().
20
+ const getInitialContext = () => ({close, push, depth});
21
+ providePageStackContext(getInitialContext());
22
+ </script>
23
+
24
+ <Comp {...props}/>
@@ -0,0 +1,11 @@
1
+ interface Props {
2
+ id: string;
3
+ component: any;
4
+ props: Record<string, any>;
5
+ depth: number;
6
+ close: (result?: any) => void;
7
+ push: <R = any>(component: any, props?: Record<string, any>) => Promise<R>;
8
+ }
9
+ declare const PageStackFrame: import("svelte").Component<Props, {}, "">;
10
+ type PageStackFrame = ReturnType<typeof PageStackFrame>;
11
+ export default PageStackFrame;
@@ -0,0 +1,154 @@
1
+ # PageStack
2
+
3
+ A local (non-modal) navigation stack: push a component to cover the current content with a new "page", and let it close itself to return to what was underneath. Built for the common app-shell shape — a persistent top bar / bottom bar with a content area that drills down into sub-pages — without pulling in routing.
4
+
5
+ Targets **Svelte 5** and the snippet API. Unlike `Dialog` (`overlay/dialog`), `PageStack` is **not** a global singleton and does **not** portal to `<body>`: each instance owns its own stack, is scoped to whatever container it's rendered in, and multiple independent instances can coexist on the same screen.
6
+
7
+ [中文文档](./README_CN.md)
8
+
9
+ ## Import
10
+
11
+ ```svelte
12
+ <script lang="ts">
13
+ import PageStack, {getPageStack} from '@ticatec/topside-elements/PageStack';
14
+ import type {PageStackApi} from '@ticatec/topside-elements/PageStack';
15
+ </script>
16
+ ```
17
+
18
+ ## Basic usage
19
+
20
+ ```svelte
21
+ <script lang="ts">
22
+ import PageStack from '@ticatec/topside-elements/PageStack';
23
+ import DetailPage from './DetailPage.svelte';
24
+
25
+ let stack: PageStack;
26
+
27
+ async function openDetail(id: string) {
28
+ const result = await stack.push(DetailPage, {id});
29
+ console.log('detail closed with', result);
30
+ }
31
+ </script>
32
+
33
+ <PageStack bind:this={stack}>
34
+ <HomePage onSelect={openDetail}/>
35
+ </PageStack>
36
+ ```
37
+
38
+ Inside `DetailPage.svelte`, close itself (optionally returning a value) via context — no need to thread a reference to the `PageStack` instance down through props:
39
+
40
+ ```svelte
41
+ <script lang="ts">
42
+ import {getPageStack} from '@ticatec/topside-elements/PageStack';
43
+
44
+ interface Props { id: string }
45
+ let {id}: Props = $props();
46
+
47
+ const stackApi = getPageStack();
48
+ </script>
49
+
50
+ <button onclick={() => stackApi?.close({saved: true})}>Save & back</button>
51
+ <button onclick={() => stackApi?.close()}>Cancel</button>
52
+ ```
53
+
54
+ ## Composing with the app-shell layouts
55
+
56
+ `PageStack` only owns the "content area drills down into pages" behavior. Combine it with `app-layout`'s `RowsLayout` (or `HeaderLayout`) for the persistent top bar / bottom bar chrome:
57
+
58
+ ```svelte
59
+ <script lang="ts">
60
+ import {RowsLayout} from '@ticatec/topside-elements/app-layout';
61
+ import PageStack from '@ticatec/topside-elements/PageStack';
62
+
63
+ let stack: PageStack;
64
+ </script>
65
+
66
+ <RowsLayout topHeight="48px" bottomHeight="56px">
67
+ {#snippet top()}<TopBar/>{/snippet}
68
+ {#snippet bottom()}<BottomBar onBack={() => stack.pop()}/>{/snippet}
69
+
70
+ <PageStack bind:this={stack}>
71
+ <HomePage/>
72
+ </PageStack>
73
+ </RowsLayout>
74
+ ```
75
+
76
+ ## Props
77
+
78
+ | Prop | Type | Default | Description |
79
+ |------|------|---------|-------------|
80
+ | `style` | `string` | `''` | Inline style applied to the root element |
81
+ | `transitionDuration` | `number` | `260` | Used to build the default transition params (`{x: '100%', duration, easing: cubicOut}`) when `transitionParams` isn't set. `0` disables the animation. Ignored once `transitionParams` is provided. |
82
+ | `transition` | `(node, params?) => TransitionConfig` | `fly` (slide in from the right) | Swap in any `svelte/transition` function (`fade`, `scale`, `slide`, `fly`, ...) or a custom one — see below. |
83
+ | `transitionParams` | `Record<string, any>` | — | Params passed to `transition`. Once set, it fully replaces the `transitionDuration`-derived default — include `duration`/`easing` yourself if you need them. |
84
+ | `children` | `Snippet` | — | Root page content (depth `0`) |
85
+
86
+ ### Changing the push/pop animation
87
+
88
+ By default each pushed frame slides in from the right (`fly`, matching the common mobile drill-down feel). Swap it for any other `svelte/transition` — or turn it off — via `transition`/`transitionParams`:
89
+
90
+ ```svelte
91
+ <script lang="ts">
92
+ import PageStack from '@ticatec/topside-elements/PageStack';
93
+ import {fade} from 'svelte/transition';
94
+ </script>
95
+
96
+ <!-- cross-fade instead of sliding -->
97
+ <PageStack transition={fade} transitionParams={{duration: 200}}>
98
+ ...
99
+ </PageStack>
100
+
101
+ <!-- slide in from the left instead of the right -->
102
+ <PageStack transitionParams={{x: '-100%', duration: 200}}>
103
+ ...
104
+ </PageStack>
105
+
106
+ <!-- no animation at all -->
107
+ <PageStack transitionDuration={0}>
108
+ ...
109
+ </PageStack>
110
+ ```
111
+
112
+ A custom function works too, as long as it matches Svelte's transition signature `(node, params) => {duration?, easing?, css?, tick?}`:
113
+
114
+ ```svelte
115
+ <script lang="ts">
116
+ function popIn(node: Element, {duration = 200} = {}) {
117
+ return {
118
+ duration,
119
+ css: (t: number) => `transform: scale(${0.9 + t * 0.1}); opacity: ${t}`
120
+ };
121
+ }
122
+ </script>
123
+
124
+ <PageStack transition={popIn} transitionParams={{duration: 150}}>
125
+ ...
126
+ </PageStack>
127
+ ```
128
+
129
+ ## Instance methods (`bind:this`)
130
+
131
+ | Method | Description |
132
+ |--------|-------------|
133
+ | `push<R>(component, props?): Promise<R>` | Pushes a component on top of the stack, covering the current content. Resolves with whatever value the pushed page passes to `close()` (or `pop()`'s argument, or `undefined` if the stack is `reset()`). |
134
+ | `pop(result?): void` | Closes the current top frame from outside (e.g. a bottom bar back button). No-op if the stack is empty. |
135
+ | `reset(): void` | Clears the whole stack immediately (no transition) and resolves every pending `push()` promise with `undefined`. Useful for "sign out / switch context" flows. |
136
+
137
+ ## Context API (for a pushed page itself)
138
+
139
+ `getPageStack()` returns `undefined` outside a `PageStack`, and a `PageStackApi` for anything rendered inside one — both the root (`children`, depth `0`) and any pushed frame (depth `1`, `2`, ...):
140
+
141
+ | Field | Type | Description |
142
+ |-------|------|-------------|
143
+ | `close` | `(result?) => void` | Closes *this* page. On the root page this is a no-op (logs a dev warning) — the root wasn't pushed, so it has nothing to "return" to. |
144
+ | `push` | `<R>(component, props?) => Promise<R>` | Same function as the `PageStack` instance's `push` — lets a pushed page drill down further without a reference to the outer component. |
145
+ | `depth` | `number` | This page's depth in the stack. `0` for the root. |
146
+
147
+ ## Popups inside a pushed page
148
+
149
+ No special handling needed. `Dialog` / `Popover` / `FloatingPanel` mount to `document.body` (see `overlay/common/mountSingleton.ts`), so they are never DOM descendants of a `PageStack` frame — a `transform`-based push/pop animation on the frame wrapper can't clip or reposition them. The one thing to avoid: a page hand-rolling its own `position: fixed` element instead of using the library's overlay components — that *would* get trapped by the frame's `transform` during the transition.
150
+
151
+ ## Notes
152
+
153
+ - Only the top frame is interactive; earlier frames stay mounted underneath (not `display: none`) purely so the slide transition has something to reveal. They're marked `inert` (removed from tab order and hit-testing) while covered, so this is a visual keep-behind, not a "keep-alive/preserve scroll position" mechanism today.
154
+ - Every pushed frame is a fresh mount. If you need to preserve a page's state across a push/pop round trip, keep that state in the caller (the component that called `push`) and pass it back in via `props`, or lift it into a store.
@@ -0,0 +1,154 @@
1
+ # PageStack
2
+
3
+ 一个局部(非模态)的导航栈:push 一个组件覆盖当前内容区,呈现为一个新"页面";这个页面可以自己关闭,回到下面被覆盖的内容。适用于最常见的 App 外壳形态——固定的 topbar/bottombar + 一个可以不断"钻进"子页面的内容区,且不依赖任何路由方案。
4
+
5
+ 面向 **Svelte 5**,使用 snippet API。和 `Dialog`(`overlay/dialog`)不同,`PageStack` **不是全局单例**,也**不会**挂载到 `<body>` 上——每个实例拥有自己独立的栈,作用域仅限于它被渲染的那个容器,一个页面里可以同时存在多个互不干扰的 `PageStack` 实例。
6
+
7
+ [English](./README.md)
8
+
9
+ ## 引入
10
+
11
+ ```svelte
12
+ <script lang="ts">
13
+ import PageStack, {getPageStack} from '@ticatec/topside-elements/PageStack';
14
+ import type {PageStackApi} from '@ticatec/topside-elements/PageStack';
15
+ </script>
16
+ ```
17
+
18
+ ## 基本用法
19
+
20
+ ```svelte
21
+ <script lang="ts">
22
+ import PageStack from '@ticatec/topside-elements/PageStack';
23
+ import DetailPage from './DetailPage.svelte';
24
+
25
+ let stack: PageStack;
26
+
27
+ async function openDetail(id: string) {
28
+ const result = await stack.push(DetailPage, {id});
29
+ console.log('详情页关闭,结果:', result);
30
+ }
31
+ </script>
32
+
33
+ <PageStack bind:this={stack}>
34
+ <HomePage onSelect={openDetail}/>
35
+ </PageStack>
36
+ ```
37
+
38
+ 在 `DetailPage.svelte` 内部,通过 context 拿到 `close`,自己关闭自己(可选带一个返回值)——不需要把 `PageStack` 实例一路通过 props 传下去:
39
+
40
+ ```svelte
41
+ <script lang="ts">
42
+ import {getPageStack} from '@ticatec/topside-elements/PageStack';
43
+
44
+ interface Props { id: string }
45
+ let {id}: Props = $props();
46
+
47
+ const stackApi = getPageStack();
48
+ </script>
49
+
50
+ <button onclick={() => stackApi?.close({saved: true})}>保存并返回</button>
51
+ <button onclick={() => stackApi?.close()}>取消</button>
52
+ ```
53
+
54
+ ## 和外壳布局组合使用
55
+
56
+ `PageStack` 只负责"内容区可以 push/pop 子页面"这一件事。持久的 topbar/bottombar 外壳交给 `app-layout` 里的 `RowsLayout`(或 `HeaderLayout`)来组合:
57
+
58
+ ```svelte
59
+ <script lang="ts">
60
+ import {RowsLayout} from '@ticatec/topside-elements/app-layout';
61
+ import PageStack from '@ticatec/topside-elements/PageStack';
62
+
63
+ let stack: PageStack;
64
+ </script>
65
+
66
+ <RowsLayout topHeight="48px" bottomHeight="56px">
67
+ {#snippet top()}<TopBar/>{/snippet}
68
+ {#snippet bottom()}<BottomBar onBack={() => stack.pop()}/>{/snippet}
69
+
70
+ <PageStack bind:this={stack}>
71
+ <HomePage/>
72
+ </PageStack>
73
+ </RowsLayout>
74
+ ```
75
+
76
+ ## Props
77
+
78
+ | Prop | 类型 | 默认值 | 说明 |
79
+ |------|------|--------|------|
80
+ | `style` | `string` | `''` | 根元素的行内样式 |
81
+ | `transitionDuration` | `number` | `260` | 用来拼出默认的过渡参数(`{x: '100%', duration, easing: cubicOut}`),仅在没有传 `transitionParams` 时生效;设为 `0` 关闭动画。一旦传了 `transitionParams`,这个值会被忽略。 |
82
+ | `transition` | `(node, params?) => TransitionConfig` | `fly`(从右侧滑入) | 换成任意 `svelte/transition` 函数(`fade`、`scale`、`slide`、`fly`……)或者自定义函数,见下面。 |
83
+ | `transitionParams` | `Record<string, any>` | — | 传给 `transition` 的参数。一旦设置,会完全替代基于 `transitionDuration` 生成的默认参数——需要 `duration`/`easing` 的话要自己带上。 |
84
+ | `children` | `Snippet` | — | 根页面内容(深度为 `0`) |
85
+
86
+ ### 更换 push/pop 的动画效果
87
+
88
+ 默认每一帧从右侧滑入(`fly`,贴近常见的移动端"钻入下一层"观感)。通过 `transition`/`transitionParams` 换成任意 `svelte/transition`,或者干脆关掉:
89
+
90
+ ```svelte
91
+ <script lang="ts">
92
+ import PageStack from '@ticatec/topside-elements/PageStack';
93
+ import {fade} from 'svelte/transition';
94
+ </script>
95
+
96
+ <!-- 换成淡入淡出,而不是滑动 -->
97
+ <PageStack transition={fade} transitionParams={{duration: 200}}>
98
+ ...
99
+ </PageStack>
100
+
101
+ <!-- 从左侧滑入,而不是右侧 -->
102
+ <PageStack transitionParams={{x: '-100%', duration: 200}}>
103
+ ...
104
+ </PageStack>
105
+
106
+ <!-- 完全关闭动画 -->
107
+ <PageStack transitionDuration={0}>
108
+ ...
109
+ </PageStack>
110
+ ```
111
+
112
+ 自定义函数也可以,只要符合 Svelte 过渡函数的签名 `(node, params) => {duration?, easing?, css?, tick?}`:
113
+
114
+ ```svelte
115
+ <script lang="ts">
116
+ function popIn(node: Element, {duration = 200} = {}) {
117
+ return {
118
+ duration,
119
+ css: (t: number) => `transform: scale(${0.9 + t * 0.1}); opacity: ${t}`
120
+ };
121
+ }
122
+ </script>
123
+
124
+ <PageStack transition={popIn} transitionParams={{duration: 150}}>
125
+ ...
126
+ </PageStack>
127
+ ```
128
+
129
+ ## 实例方法(通过 `bind:this` 调用)
130
+
131
+ | 方法 | 说明 |
132
+ |------|------|
133
+ | `push<R>(component, props?): Promise<R>` | 把一个组件 push 到栈顶,覆盖当前内容。返回的 Promise 会在该页面调用 `close()` 时以其传入值 resolve(或被外部 `pop()` 的参数 resolve,或在 `reset()` 时以 `undefined` resolve)。 |
134
+ | `pop(result?): void` | 从外部关闭当前栈顶的一帧(例如 bottombar 上的返回按钮)。栈为空时是 no-op。 |
135
+ | `reset(): void` | 立即清空整个栈(不做过渡动画),并把所有还没 resolve 的 `push()` Promise 以 `undefined` resolve。适合"注销登录、切换上下文"这类场景。 |
136
+
137
+ ## Context API(供被 push 进来的页面使用)
138
+
139
+ `getPageStack()` 在 `PageStack` 之外调用返回 `undefined`;在 `PageStack` 内部(无论是根页面 `children`,还是任意一层被 push 进来的页面)调用都能拿到一个 `PageStackApi`:
140
+
141
+ | 字段 | 类型 | 说明 |
142
+ |------|------|------|
143
+ | `close` | `(result?) => void` | 关闭*当前*这一页。在根页面上调用是 no-op(会打一条开发环境的 warning)——根页面不是被 push 进来的,没有"返回上一层"这个语义。 |
144
+ | `push` | `<R>(component, props?) => Promise<R>` | 和 `PageStack` 实例上的 `push` 是同一个函数,让被 push 进来的页面可以继续往下钻,不需要拿到外层组件的引用。 |
145
+ | `depth` | `number` | 当前页面在栈中的深度,根页面为 `0`。 |
146
+
147
+ ## 被 push 的页面内部弹出 Dialog/Popover 等浮层
148
+
149
+ 不需要任何特殊处理。`Dialog` / `Popover` / `FloatingPanel` 都是挂载到 `document.body` 上的(见 `overlay/common/mountSingleton.ts`),并不是 `PageStack` 某一帧的 DOM 后代,所以帧上基于 `transform` 的滑入滑出动画不会影响、裁剪或错位它们的定位。唯一要避免的是:页面自己手写一个 `position: fixed` 的元素而不是用库里现成的浮层组件——那样的元素才会在过渡动画期间被帧的 `transform` "困住"。
150
+
151
+ ## 说明
152
+
153
+ - 只有栈顶的一帧可交互;更早的帧仍然挂载在下面(不是 `display: none`),纯粹是为了让滑动过渡有内容可以"揭示"出来。被覆盖时它们会被标记为 `inert`(移出 Tab 顺序和点击命中),所以这只是"视觉上留在后面",目前还不是"保活/保留滚动位置"机制。
154
+ - 每次 push 都是全新挂载。如果需要在 push/pop 一个来回之后保留某个页面的状态,把状态放在调用方(发起 `push` 的那个组件)里,再通过 `props` 传回去,或者提到某个 store 里。
@@ -0,0 +1,6 @@
1
+ import PageStack from './PageStack.svelte';
2
+ import { getPageStack } from './PageStackContext';
3
+ import type { PageStackApi } from './PageStackContext';
4
+ export default PageStack;
5
+ export { getPageStack };
6
+ export type { PageStackApi };
@@ -0,0 +1,4 @@
1
+ import PageStack from './PageStack.svelte';
2
+ import { getPageStack } from './PageStackContext';
3
+ export default PageStack;
4
+ export { getPageStack };