@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.
- package/CHANGELOG.md +39 -0
- package/LICENSE +21 -0
- package/README.md +308 -0
- package/README_CN.md +372 -0
- package/dist/app_layout/ClassicLayout.svelte +140 -0
- package/dist/app_layout/ClassicLayout.svelte.d.ts +21 -0
- package/dist/app_layout/ColumnsLayout.svelte +95 -0
- package/dist/app_layout/ColumnsLayout.svelte.d.ts +23 -0
- package/dist/app_layout/HeaderLayout.svelte +93 -0
- package/dist/app_layout/HeaderLayout.svelte.d.ts +14 -0
- package/dist/app_layout/README.md +316 -0
- package/dist/app_layout/README_CN.md +323 -0
- package/dist/app_layout/RowsLayout.svelte +95 -0
- package/dist/app_layout/RowsLayout.svelte.d.ts +23 -0
- package/dist/app_layout/SidebarLayout.svelte +93 -0
- package/dist/app_layout/SidebarLayout.svelte.d.ts +14 -0
- package/dist/app_layout/index.d.ts +6 -0
- package/dist/app_layout/index.js +6 -0
- package/dist/assets/loading.gif +0 -0
- package/dist/base-calendar/CalendarBase.svelte +188 -0
- package/dist/base-calendar/CalendarBase.svelte.d.ts +15 -0
- package/dist/base-calendar/CalendarDay.d.ts +7 -0
- package/dist/base-calendar/CalendarDay.js +1 -0
- package/dist/base-calendar/DateContext.d.ts +19 -0
- package/dist/base-calendar/DateContext.js +49 -0
- package/dist/base-calendar/MonthPickupPanel.svelte +101 -0
- package/dist/base-calendar/MonthPickupPanel.svelte.d.ts +8 -0
- package/dist/base-calendar/MonthlyCalendar.svelte +227 -0
- package/dist/base-calendar/MonthlyCalendar.svelte.d.ts +25 -0
- package/dist/base-calendar/YearPickupPanel.svelte +143 -0
- package/dist/base-calendar/YearPickupPanel.svelte.d.ts +9 -0
- package/dist/base-calendar/dateUtils.d.ts +9 -0
- package/dist/base-calendar/dateUtils.js +38 -0
- package/dist/base-calendar/index.d.ts +5 -0
- package/dist/base-calendar/index.js +5 -0
- package/dist/composite/pagination_panel/PaginationPanel.svelte +117 -0
- package/dist/composite/pagination_panel/PaginationPanel.svelte.d.ts +22 -0
- package/dist/composite/pagination_panel/README.md +130 -0
- package/dist/composite/pagination_panel/README_CN.md +130 -0
- package/dist/composite/pagination_panel/index.d.ts +4 -0
- package/dist/composite/pagination_panel/index.js +2 -0
- package/dist/composite/transfer/README.md +795 -0
- package/dist/composite/transfer/Transfer.svelte +136 -0
- package/dist/composite/transfer/Transfer.svelte.d.ts +25 -0
- package/dist/composite/transfer/index.d.ts +4 -0
- package/dist/composite/transfer/index.js +2 -0
- package/dist/data_display/accordion/Accordion.svelte +76 -0
- package/dist/data_display/accordion/Accordion.svelte.d.ts +12 -0
- package/dist/data_display/accordion/AccordionItem.d.ts +5 -0
- package/dist/data_display/accordion/AccordionItem.js +1 -0
- package/dist/data_display/accordion/AccordionItemView.svelte +128 -0
- package/dist/data_display/accordion/AccordionItemView.svelte.d.ts +13 -0
- package/dist/data_display/accordion/README.md +104 -0
- package/dist/data_display/accordion/README_CN.md +104 -0
- package/dist/data_display/accordion/index.d.ts +4 -0
- package/dist/data_display/accordion/index.js +2 -0
- package/dist/data_display/card/Card.svelte +107 -0
- package/dist/data_display/card/Card.svelte.d.ts +23 -0
- package/dist/data_display/card/CardAction.d.ts +36 -0
- package/dist/data_display/card/CardAction.js +1 -0
- package/dist/data_display/card/CardHeader.svelte +20 -0
- package/dist/data_display/card/CardHeader.svelte.d.ts +6 -0
- package/dist/data_display/card/CommonCardActionBar.svelte +156 -0
- package/dist/data_display/card/CommonCardActionBar.svelte.d.ts +15 -0
- package/dist/data_display/card/README.md +144 -0
- package/dist/data_display/card/README_CN.md +144 -0
- package/dist/data_display/card/index.d.ts +5 -0
- package/dist/data_display/card/index.js +2 -0
- package/dist/data_display/concise_data_table/Column.d.ts +9 -0
- package/dist/data_display/concise_data_table/Column.js +1 -0
- package/dist/data_display/concise_data_table/ConciseListTable.svelte +274 -0
- package/dist/data_display/concise_data_table/ConciseListTable.svelte.d.ts +20 -0
- package/dist/data_display/concise_data_table/DataCell.svelte +28 -0
- package/dist/data_display/concise_data_table/DataCell.svelte.d.ts +9 -0
- package/dist/data_display/concise_data_table/DataRow.svelte +44 -0
- package/dist/data_display/concise_data_table/DataRow.svelte.d.ts +11 -0
- package/dist/data_display/concise_data_table/README.md +177 -0
- package/dist/data_display/concise_data_table/README_CN.md +177 -0
- package/dist/data_display/concise_data_table/TableOptions.d.ts +11 -0
- package/dist/data_display/concise_data_table/TableOptions.js +1 -0
- package/dist/data_display/concise_data_table/index.d.ts +5 -0
- package/dist/data_display/concise_data_table/index.js +2 -0
- package/dist/data_display/concise_data_table/utils.d.ts +6 -0
- package/dist/data_display/concise_data_table/utils.js +38 -0
- package/dist/data_display/list_box/ListBox.svelte +424 -0
- package/dist/data_display/list_box/ListBox.svelte.d.ts +31 -0
- package/dist/data_display/list_box/README.md +158 -0
- package/dist/data_display/list_box/README_CN.md +158 -0
- package/dist/data_display/list_box/index.d.ts +4 -0
- package/dist/data_display/list_box/index.js +2 -0
- package/dist/data_display/tree_view/README.md +246 -0
- package/dist/data_display/tree_view/README_CN.md +240 -0
- package/dist/data_display/tree_view/TreeNodeView.svelte +227 -0
- package/dist/data_display/tree_view/TreeNodeView.svelte.d.ts +22 -0
- package/dist/data_display/tree_view/TreeView.svelte +225 -0
- package/dist/data_display/tree_view/TreeView.svelte.d.ts +45 -0
- package/dist/data_display/tree_view/index.d.ts +7 -0
- package/dist/data_display/tree_view/index.js +2 -0
- package/dist/data_table/DataTable.svelte +249 -0
- package/dist/data_table/DataTable.svelte.d.ts +57 -0
- package/dist/data_table/README.md +728 -0
- package/dist/data_table/README_CN.md +753 -0
- package/dist/data_table/UniDataTable.d.ts +30 -0
- package/dist/data_table/UniDataTable.js +89 -0
- package/dist/data_table/assets/loading.gif +0 -0
- package/dist/data_table/index.d.ts +15 -0
- package/dist/data_table/index.js +4 -0
- package/dist/data_table/lib/ActionsColumn.d.ts +15 -0
- package/dist/data_table/lib/ActionsColumn.js +1 -0
- package/dist/data_table/lib/CellAction.d.ts +9 -0
- package/dist/data_table/lib/CellAction.js +1 -0
- package/dist/data_table/lib/CommonHeaderCell.d.ts +37 -0
- package/dist/data_table/lib/CommonHeaderCell.js +1 -0
- package/dist/data_table/lib/CompareFn.d.ts +3 -0
- package/dist/data_table/lib/CompareFn.js +2 -0
- package/dist/data_table/lib/DataColumn.d.ts +83 -0
- package/dist/data_table/lib/DataColumn.js +1 -0
- package/dist/data_table/lib/FixedColumns.d.ts +15 -0
- package/dist/data_table/lib/FixedColumns.js +1 -0
- package/dist/data_table/lib/FormatCellFn.d.ts +2 -0
- package/dist/data_table/lib/FormatCellFn.js +1 -0
- package/dist/data_table/lib/HrefLink.d.ts +12 -0
- package/dist/data_table/lib/HrefLink.js +1 -0
- package/dist/data_table/lib/IndicatorColumn.d.ts +19 -0
- package/dist/data_table/lib/IndicatorColumn.js +1 -0
- package/dist/data_table/lib/OrderDirection.d.ts +4 -0
- package/dist/data_table/lib/OrderDirection.js +5 -0
- package/dist/data_table/lib/RowAction.d.ts +23 -0
- package/dist/data_table/lib/RowAction.js +1 -0
- package/dist/data_table/lib/TabContext.d.ts +4 -0
- package/dist/data_table/lib/TabContext.js +4 -0
- package/dist/data_table/lib/TableColumns.d.ts +9 -0
- package/dist/data_table/lib/TableColumns.js +12 -0
- package/dist/data_table/lib/TableUtils.d.ts +4 -0
- package/dist/data_table/lib/TableUtils.js +18 -0
- package/dist/data_table/lib/clickOutSide.d.ts +3 -0
- package/dist/data_table/lib/clickOutSide.js +17 -0
- package/dist/data_table/lib/summary.d.ts +40 -0
- package/dist/data_table/lib/summary.js +123 -0
- package/dist/data_table/lib/virtualWindow.d.ts +37 -0
- package/dist/data_table/lib/virtualWindow.js +41 -0
- package/dist/data_table/parts/ActionCell.svelte +23 -0
- package/dist/data_table/parts/ActionCell.svelte.d.ts +8 -0
- package/dist/data_table/parts/ActionsPanel.svelte +108 -0
- package/dist/data_table/parts/ActionsPanel.svelte.d.ts +19 -0
- package/dist/data_table/parts/ActionsRow.svelte +150 -0
- package/dist/data_table/parts/ActionsRow.svelte.d.ts +14 -0
- package/dist/data_table/parts/ContentPanel.svelte +210 -0
- package/dist/data_table/parts/ContentPanel.svelte.d.ts +36 -0
- package/dist/data_table/parts/DataCell.svelte +40 -0
- package/dist/data_table/parts/DataCell.svelte.d.ts +10 -0
- package/dist/data_table/parts/DataRow.svelte +43 -0
- package/dist/data_table/parts/DataRow.svelte.d.ts +13 -0
- package/dist/data_table/parts/FixedColumnsPanel.svelte +195 -0
- package/dist/data_table/parts/FixedColumnsPanel.svelte.d.ts +31 -0
- package/dist/data_table/parts/FixedHeaderPanel.svelte +151 -0
- package/dist/data_table/parts/FixedHeaderPanel.svelte.d.ts +19 -0
- package/dist/data_table/parts/FixedRow.svelte +88 -0
- package/dist/data_table/parts/FixedRow.svelte.d.ts +22 -0
- package/dist/data_table/parts/HrefCell.svelte +47 -0
- package/dist/data_table/parts/HrefCell.svelte.d.ts +8 -0
- package/dist/data_table/parts/PopupMenu.svelte +71 -0
- package/dist/data_table/parts/PopupMenu.svelte.d.ts +9 -0
- package/dist/data_table/parts/TableHeaderPanel.svelte +112 -0
- package/dist/data_table/parts/TableHeaderPanel.svelte.d.ts +17 -0
- package/dist/data_table/parts/TableRow.d.ts +4 -0
- package/dist/data_table/parts/TableRow.js +6 -0
- package/dist/data_table/parts/TableRows.d.ts +7 -0
- package/dist/data_table/parts/TableRows.js +13 -0
- package/dist/data_table/parts/TextCell.svelte +27 -0
- package/dist/data_table/parts/TextCell.svelte.d.ts +8 -0
- package/dist/data_table/parts/TreeRootCell.svelte +2 -0
- package/dist/data_table/parts/TreeRootCell.svelte.d.ts +18 -0
- package/dist/feedback/progress-bar/ProgressBar.svelte +150 -0
- package/dist/feedback/progress-bar/ProgressBar.svelte.d.ts +16 -0
- package/dist/feedback/progress-bar/ProgressStatus.d.ts +6 -0
- package/dist/feedback/progress-bar/ProgressStatus.js +8 -0
- package/dist/feedback/progress-bar/README.md +242 -0
- package/dist/feedback/progress-bar/README_CN.md +242 -0
- package/dist/feedback/progress-bar/index.d.ts +4 -0
- package/dist/feedback/progress-bar/index.js +4 -0
- package/dist/form/FormEditor.svelte +42 -0
- package/dist/form/FormEditor.svelte.d.ts +17 -0
- package/dist/form/attachment_files/AttachmentEditor.svelte +494 -0
- package/dist/form/attachment_files/AttachmentEditor.svelte.d.ts +75 -0
- package/dist/form/attachment_files/AttachmentFile.d.ts +53 -0
- package/dist/form/attachment_files/AttachmentFile.js +84 -0
- package/dist/form/attachment_files/AttachmentListItem.svelte +208 -0
- package/dist/form/attachment_files/AttachmentListItem.svelte.d.ts +25 -0
- package/dist/form/attachment_files/AttachmentTile.svelte +296 -0
- package/dist/form/attachment_files/AttachmentTile.svelte.d.ts +25 -0
- package/dist/form/attachment_files/FileUpload.d.ts +22 -0
- package/dist/form/attachment_files/FileUpload.js +1 -0
- package/dist/form/attachment_files/README.md +111 -0
- package/dist/form/attachment_files/README_CN.md +111 -0
- package/dist/form/attachment_files/UploadTask.d.ts +27 -0
- package/dist/form/attachment_files/UploadTask.js +1 -0
- package/dist/form/attachment_files/index.d.ts +11 -0
- package/dist/form/attachment_files/index.js +6 -0
- package/dist/form/cascade_options_select/CascadeOptionSelect.svelte +170 -0
- package/dist/form/cascade_options_select/CascadeOptionSelect.svelte.d.ts +23 -0
- package/dist/form/cascade_options_select/IsLeaf.d.ts +4 -0
- package/dist/form/cascade_options_select/IsLeaf.js +1 -0
- package/dist/form/cascade_options_select/OptionsBox.svelte +81 -0
- package/dist/form/cascade_options_select/OptionsBox.svelte.d.ts +12 -0
- package/dist/form/cascade_options_select/README.md +188 -0
- package/dist/form/cascade_options_select/README_CN.md +188 -0
- package/dist/form/cascade_options_select/index.d.ts +2 -0
- package/dist/form/cascade_options_select/index.js +2 -0
- package/dist/form/checkbox/CheckBox.svelte +222 -0
- package/dist/form/checkbox/CheckBox.svelte.d.ts +18 -0
- package/dist/form/checkbox/README.md +366 -0
- package/dist/form/checkbox/README_CN.md +366 -0
- package/dist/form/checkbox/index.d.ts +2 -0
- package/dist/form/checkbox/index.js +2 -0
- package/dist/form/color_picker/ColorPicker.svelte +173 -0
- package/dist/form/color_picker/ColorPicker.svelte.d.ts +9 -0
- package/dist/form/color_picker/ColorPickerPanel.svelte +178 -0
- package/dist/form/color_picker/ColorPickerPanel.svelte.d.ts +10 -0
- package/dist/form/color_picker/README.md +296 -0
- package/dist/form/color_picker/README_CN.md +296 -0
- package/dist/form/color_picker/index.d.ts +2 -0
- package/dist/form/color_picker/index.js +2 -0
- package/dist/form/common_editor/BasePicker.svelte +48 -0
- package/dist/form/common_editor/BasePicker.svelte.d.ts +11 -0
- package/dist/form/common_editor/CommonEditor.svelte +121 -0
- package/dist/form/common_editor/CommonEditor.svelte.d.ts +15 -0
- package/dist/form/common_editor/CommonEditorProps.d.ts +26 -0
- package/dist/form/common_editor/CommonEditorProps.js +1 -0
- package/dist/form/common_editor/CommonFieldProps.d.ts +56 -0
- package/dist/form/common_editor/CommonFieldProps.js +1 -0
- package/dist/form/common_editor/CommonPicker.svelte +201 -0
- package/dist/form/common_editor/CommonPicker.svelte.d.ts +29 -0
- package/dist/form/common_editor/CommonPickerProps.d.ts +12 -0
- package/dist/form/common_editor/CommonPickerProps.js +1 -0
- package/dist/form/common_editor/CommonPopupEditor.svelte +99 -0
- package/dist/form/common_editor/CommonPopupEditor.svelte.d.ts +18 -0
- package/dist/form/common_editor/NumberInput.svelte +255 -0
- package/dist/form/common_editor/NumberInput.svelte.d.ts +17 -0
- package/dist/form/common_editor/index.d.ts +8 -0
- package/dist/form/common_editor/index.js +6 -0
- package/dist/form/common_range_editor/CommonRangeEditor.svelte +141 -0
- package/dist/form/common_range_editor/CommonRangeEditor.svelte.d.ts +23 -0
- package/dist/form/common_range_editor/index.d.ts +2 -0
- package/dist/form/common_range_editor/index.js +2 -0
- package/dist/form/date_picker/DatePicker.svelte +71 -0
- package/dist/form/date_picker/DatePicker.svelte.d.ts +11 -0
- package/dist/form/date_picker/DateTimePicker.svelte +168 -0
- package/dist/form/date_picker/DateTimePicker.svelte.d.ts +14 -0
- package/dist/form/date_picker/README.md +341 -0
- package/dist/form/date_picker/README_CN.md +341 -0
- package/dist/form/date_picker/ScrollBar.svelte +129 -0
- package/dist/form/date_picker/ScrollBar.svelte.d.ts +10 -0
- package/dist/form/date_picker/TimePanel.svelte +95 -0
- package/dist/form/date_picker/TimePanel.svelte.d.ts +11 -0
- package/dist/form/date_picker/index.d.ts +4 -0
- package/dist/form/date_picker/index.js +4 -0
- package/dist/form/date_range/DateRangeEditor.svelte +123 -0
- package/dist/form/date_range/DateRangeEditor.svelte.d.ts +21 -0
- package/dist/form/date_range/README.md +250 -0
- package/dist/form/date_range/README_CN.md +250 -0
- package/dist/form/date_range/index.d.ts +2 -0
- package/dist/form/date_range/index.js +2 -0
- package/dist/form/events.d.ts +70 -0
- package/dist/form/events.js +6 -0
- package/dist/form/group_box/group-check-box/GroupCheckBox.svelte +211 -0
- package/dist/form/group_box/group-check-box/GroupCheckBox.svelte.d.ts +32 -0
- package/dist/form/group_box/group-check-box/README.md +336 -0
- package/dist/form/group_box/group-check-box/README_CN.md +336 -0
- package/dist/form/group_box/group-check-box/index.d.ts +2 -0
- package/dist/form/group_box/group-check-box/index.js +2 -0
- package/dist/form/group_box/group-radio-box/GroupRadioBox.svelte +159 -0
- package/dist/form/group_box/group-radio-box/GroupRadioBox.svelte.d.ts +29 -0
- package/dist/form/group_box/group-radio-box/README.md +910 -0
- package/dist/form/group_box/group-radio-box/README_CN.md +910 -0
- package/dist/form/group_box/group-radio-box/index.d.ts +2 -0
- package/dist/form/group_box/group-radio-box/index.js +2 -0
- package/dist/form/image_editor/ImageEditor.svelte +118 -0
- package/dist/form/image_editor/ImageEditor.svelte.d.ts +52 -0
- package/dist/form/image_editor/ImageFile.d.ts +11 -0
- package/dist/form/image_editor/ImageFile.js +1 -0
- package/dist/form/image_editor/ImagePreview.svelte +151 -0
- package/dist/form/image_editor/ImagePreview.svelte.d.ts +7 -0
- package/dist/form/image_editor/README.md +89 -0
- package/dist/form/image_editor/README_CN.md +89 -0
- package/dist/form/image_editor/index.d.ts +11 -0
- package/dist/form/image_editor/index.js +4 -0
- package/dist/form/input_options_select/InputOptionsSelect.svelte +257 -0
- package/dist/form/input_options_select/InputOptionsSelect.svelte.d.ts +18 -0
- package/dist/form/input_options_select/README.md +73 -0
- package/dist/form/input_options_select/README_CN.md +73 -0
- package/dist/form/input_options_select/index.d.ts +4 -0
- package/dist/form/input_options_select/index.js +2 -0
- package/dist/form/lookup_editor/LookupEditor.svelte +85 -0
- package/dist/form/lookup_editor/LookupEditor.svelte.d.ts +16 -0
- package/dist/form/lookup_editor/README.md +345 -0
- package/dist/form/lookup_editor/README_CN.md +345 -0
- package/dist/form/lookup_editor/index.d.ts +2 -0
- package/dist/form/lookup_editor/index.js +2 -0
- package/dist/form/memo_editor/MemoEditor.svelte +176 -0
- package/dist/form/memo_editor/MemoEditor.svelte.d.ts +18 -0
- package/dist/form/memo_editor/README.md +283 -0
- package/dist/form/memo_editor/README_CN.md +283 -0
- package/dist/form/memo_editor/index.d.ts +2 -0
- package/dist/form/memo_editor/index.js +2 -0
- package/dist/form/number_editor/NumberEditor.svelte +113 -0
- package/dist/form/number_editor/NumberEditor.svelte.d.ts +20 -0
- package/dist/form/number_editor/README.md +356 -0
- package/dist/form/number_editor/README_CN.md +356 -0
- package/dist/form/number_editor/index.d.ts +2 -0
- package/dist/form/number_editor/index.js +2 -0
- package/dist/form/number_range/NumberRange.svelte +69 -0
- package/dist/form/number_range/NumberRange.svelte.d.ts +20 -0
- package/dist/form/number_range/README.md +498 -0
- package/dist/form/number_range/README_CN.md +488 -0
- package/dist/form/number_range/index.d.ts +2 -0
- package/dist/form/number_range/index.js +2 -0
- package/dist/form/options_multi_select/OptionsMultiSelect.svelte +229 -0
- package/dist/form/options_multi_select/OptionsMultiSelect.svelte.d.ts +21 -0
- package/dist/form/options_multi_select/README.md +251 -0
- package/dist/form/options_multi_select/README_CN.md +242 -0
- package/dist/form/options_multi_select/index.d.ts +2 -0
- package/dist/form/options_multi_select/index.js +2 -0
- package/dist/form/options_select/OptionsSelect.svelte +208 -0
- package/dist/form/options_select/OptionsSelect.svelte.d.ts +43 -0
- package/dist/form/options_select/README.md +371 -0
- package/dist/form/options_select/README_CN.md +368 -0
- package/dist/form/options_select/index.d.ts +2 -0
- package/dist/form/options_select/index.js +2 -0
- package/dist/form/prompts_text_editor/PromptsTextEditor.svelte +96 -0
- package/dist/form/prompts_text_editor/PromptsTextEditor.svelte.d.ts +15 -0
- package/dist/form/prompts_text_editor/README.md +320 -0
- package/dist/form/prompts_text_editor/README_CN.md +320 -0
- package/dist/form/prompts_text_editor/index.d.ts +2 -0
- package/dist/form/prompts_text_editor/index.js +2 -0
- package/dist/form/radio_button/README.md +372 -0
- package/dist/form/radio_button/README_CN.md +363 -0
- package/dist/form/radio_button/RadioButton.svelte +177 -0
- package/dist/form/radio_button/RadioButton.svelte.d.ts +17 -0
- package/dist/form/radio_button/index.d.ts +2 -0
- package/dist/form/radio_button/index.js +2 -0
- package/dist/form/search_box/README.md +301 -0
- package/dist/form/search_box/README_CN.md +301 -0
- package/dist/form/search_box/SearchBox.svelte +91 -0
- package/dist/form/search_box/SearchBox.svelte.d.ts +11 -0
- package/dist/form/search_box/index.d.ts +2 -0
- package/dist/form/search_box/index.js +2 -0
- package/dist/form/switch/README.md +231 -0
- package/dist/form/switch/README_CN.md +255 -0
- package/dist/form/switch/Switch.svelte +138 -0
- package/dist/form/switch/Switch.svelte.d.ts +12 -0
- package/dist/form/switch/index.d.ts +2 -0
- package/dist/form/switch/index.js +2 -0
- package/dist/form/text_editor/PasswordEditor.svelte +70 -0
- package/dist/form/text_editor/PasswordEditor.svelte.d.ts +9 -0
- package/dist/form/text_editor/PasswordEditor_README.md +551 -0
- package/dist/form/text_editor/PasswordEditor_README_CN.md +551 -0
- package/dist/form/text_editor/README.md +356 -0
- package/dist/form/text_editor/README_CN.md +356 -0
- package/dist/form/text_editor/TextEditor.svelte +91 -0
- package/dist/form/text_editor/TextEditor.svelte.d.ts +16 -0
- package/dist/form/text_editor/index.d.ts +4 -0
- package/dist/form/text_editor/index.js +4 -0
- package/dist/form/time_editor/README.md +386 -0
- package/dist/form/time_editor/README_CN.md +386 -0
- package/dist/form/time_editor/TimeEditor.svelte +231 -0
- package/dist/form/time_editor/TimeEditor.svelte.d.ts +16 -0
- package/dist/form/time_editor/index.d.ts +2 -0
- package/dist/form/time_editor/index.js +2 -0
- package/dist/form/types.d.ts +8 -0
- package/dist/form/types.js +1 -0
- package/dist/form/unit-number-editor/README.md +352 -0
- package/dist/form/unit-number-editor/README_CN.md +352 -0
- package/dist/form/unit-number-editor/UnitNumberEditor.svelte +221 -0
- package/dist/form/unit-number-editor/UnitNumberEditor.svelte.d.ts +30 -0
- package/dist/form/unit-number-editor/UnitOption.d.ts +26 -0
- package/dist/form/unit-number-editor/UnitOption.js +1 -0
- package/dist/form/unit-number-editor/index.d.ts +4 -0
- package/dist/form/unit-number-editor/index.js +3 -0
- package/dist/general/button/Button.svelte +72 -0
- package/dist/general/button/Button.svelte.d.ts +23 -0
- package/dist/general/button/IconButton.svelte +60 -0
- package/dist/general/button/IconButton.svelte.d.ts +21 -0
- package/dist/general/button/IconButton_README.md +522 -0
- package/dist/general/button/IconButton_README_CN.md +522 -0
- package/dist/general/button/README.md +361 -0
- package/dist/general/button/README_CN.md +357 -0
- package/dist/general/button/TextButton.svelte +74 -0
- package/dist/general/button/TextButton.svelte.d.ts +22 -0
- package/dist/general/button/TextButton_README.md +569 -0
- package/dist/general/button/TextButton_README_CN.md +569 -0
- package/dist/general/button/index.d.ts +8 -0
- package/dist/general/button/index.js +6 -0
- package/dist/general/icon/Icon.svelte +90 -0
- package/dist/general/icon/Icon.svelte.d.ts +14 -0
- package/dist/general/icon/README.md +255 -0
- package/dist/general/icon/README_CN.md +255 -0
- package/dist/general/icon/index.d.ts +2 -0
- package/dist/general/icon/index.js +2 -0
- package/dist/general/separator/README.md +203 -0
- package/dist/general/separator/README_CN.md +203 -0
- package/dist/general/separator/Separator.svelte +24 -0
- package/dist/general/separator/Separator.svelte.d.ts +7 -0
- package/dist/general/separator/index.d.ts +2 -0
- package/dist/general/separator/index.js +2 -0
- package/dist/general/split/README.md +312 -0
- package/dist/general/split/README_CN.md +312 -0
- package/dist/general/split/Split.svelte +150 -0
- package/dist/general/split/Split.svelte.d.ts +10 -0
- package/dist/general/split/index.d.ts +2 -0
- package/dist/general/split/index.js +2 -0
- package/dist/general/tag/README.md +319 -0
- package/dist/general/tag/README_CN.md +319 -0
- package/dist/general/tag/Tag.svelte +193 -0
- package/dist/general/tag/Tag.svelte.d.ts +17 -0
- package/dist/general/tag/index.d.ts +2 -0
- package/dist/general/tag/index.js +2 -0
- package/dist/i18nRes/i18nRes.d.ts +47 -0
- package/dist/i18nRes/i18nRes.js +49 -0
- package/dist/i18nRes/index.d.ts +2 -0
- package/dist/i18nRes/index.js +2 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.js +4 -0
- package/dist/layouts/action_bar/ActionBar.svelte +60 -0
- package/dist/layouts/action_bar/ActionBar.svelte.d.ts +12 -0
- package/dist/layouts/action_bar/ButtonAction.d.ts +1 -0
- package/dist/layouts/action_bar/ButtonAction.js +1 -0
- package/dist/layouts/action_bar/README.md +304 -0
- package/dist/layouts/action_bar/README_CN.md +304 -0
- package/dist/layouts/action_bar/index.d.ts +5 -0
- package/dist/layouts/action_bar/index.js +2 -0
- package/dist/layouts/app_top_bar/AppTopBar.svelte +83 -0
- package/dist/layouts/app_top_bar/AppTopBar.svelte.d.ts +12 -0
- package/dist/layouts/app_top_bar/README.md +258 -0
- package/dist/layouts/app_top_bar/README_CN.md +258 -0
- package/dist/layouts/app_top_bar/index.d.ts +2 -0
- package/dist/layouts/app_top_bar/index.js +2 -0
- package/dist/layouts/box/Box.svelte +104 -0
- package/dist/layouts/box/Box.svelte.d.ts +15 -0
- package/dist/layouts/box/README.md +312 -0
- package/dist/layouts/box/README_CN.md +312 -0
- package/dist/layouts/box/index.d.ts +2 -0
- package/dist/layouts/box/index.js +2 -0
- package/dist/layouts/criteria_field/CriteriaField.svelte +97 -0
- package/dist/layouts/criteria_field/CriteriaField.svelte.d.ts +13 -0
- package/dist/layouts/criteria_field/README.md +277 -0
- package/dist/layouts/criteria_field/README_CN.md +277 -0
- package/dist/layouts/criteria_field/index.d.ts +2 -0
- package/dist/layouts/criteria_field/index.js +2 -0
- package/dist/layouts/form_field/FormField.svelte +139 -0
- package/dist/layouts/form_field/FormField.svelte.d.ts +19 -0
- package/dist/layouts/form_field/README.md +252 -0
- package/dist/layouts/form_field/README_CN.md +251 -0
- package/dist/layouts/form_field/index.d.ts +2 -0
- package/dist/layouts/form_field/index.js +2 -0
- package/dist/layouts/form_panel/flex_form/CellField.svelte +42 -0
- package/dist/layouts/form_panel/flex_form/CellField.svelte.d.ts +13 -0
- package/dist/layouts/form_panel/flex_form/EmptyCell.svelte +26 -0
- package/dist/layouts/form_panel/flex_form/EmptyCell.svelte.d.ts +6 -0
- package/dist/layouts/form_panel/flex_form/FlexForm.svelte +44 -0
- package/dist/layouts/form_panel/flex_form/FlexForm.svelte.d.ts +9 -0
- package/dist/layouts/form_panel/flex_form/README.md +202 -0
- package/dist/layouts/form_panel/flex_form/README_CN.md +202 -0
- package/dist/layouts/form_panel/flex_form/RowBreak.svelte +11 -0
- package/dist/layouts/form_panel/flex_form/RowBreak.svelte.d.ts +18 -0
- package/dist/layouts/form_panel/flex_form/index.d.ts +6 -0
- package/dist/layouts/form_panel/flex_form/index.js +6 -0
- package/dist/layouts/form_panel/flex_row_form/Cell.svelte +42 -0
- package/dist/layouts/form_panel/flex_row_form/Cell.svelte.d.ts +13 -0
- package/dist/layouts/form_panel/flex_row_form/FormContainer.svelte +45 -0
- package/dist/layouts/form_panel/flex_row_form/FormContainer.svelte.d.ts +10 -0
- package/dist/layouts/form_panel/flex_row_form/README.md +224 -0
- package/dist/layouts/form_panel/flex_row_form/README_CN.md +224 -0
- package/dist/layouts/form_panel/flex_row_form/Row.svelte +37 -0
- package/dist/layouts/form_panel/flex_row_form/Row.svelte.d.ts +12 -0
- package/dist/layouts/form_panel/flex_row_form/index.d.ts +7 -0
- package/dist/layouts/form_panel/flex_row_form/index.js +7 -0
- package/dist/layouts/form_panel/grid_form/EmptyCell.svelte +32 -0
- package/dist/layouts/form_panel/grid_form/EmptyCell.svelte.d.ts +9 -0
- package/dist/layouts/form_panel/grid_form/GridField.svelte +48 -0
- package/dist/layouts/form_panel/grid_form/GridField.svelte.d.ts +22 -0
- package/dist/layouts/form_panel/grid_form/GridForm.svelte +49 -0
- package/dist/layouts/form_panel/grid_form/GridForm.svelte.d.ts +13 -0
- package/dist/layouts/form_panel/grid_form/README.md +217 -0
- package/dist/layouts/form_panel/grid_form/README_CN.md +217 -0
- package/dist/layouts/form_panel/grid_form/index.d.ts +5 -0
- package/dist/layouts/form_panel/grid_form/index.js +5 -0
- package/dist/layouts/form_panel/index.d.ts +4 -0
- package/dist/layouts/form_panel/index.js +4 -0
- package/dist/layouts/page/Page.svelte +98 -0
- package/dist/layouts/page/Page.svelte.d.ts +19 -0
- package/dist/layouts/page/PageHeader.svelte +59 -0
- package/dist/layouts/page/PageHeader.svelte.d.ts +12 -0
- package/dist/layouts/page/README.md +286 -0
- package/dist/layouts/page/README_CN.md +286 -0
- package/dist/layouts/page/index.d.ts +6 -0
- package/dist/layouts/page/index.js +4 -0
- package/dist/lib/index.d.ts +7 -0
- package/dist/lib/index.js +3 -0
- package/dist/navigation/breadcrumbs/Breadcrumb.d.ts +4 -0
- package/dist/navigation/breadcrumbs/Breadcrumb.js +1 -0
- package/dist/navigation/breadcrumbs/Breadcrumbs.svelte +91 -0
- package/dist/navigation/breadcrumbs/Breadcrumbs.svelte.d.ts +12 -0
- package/dist/navigation/breadcrumbs/README.md +257 -0
- package/dist/navigation/breadcrumbs/README_CN.md +257 -0
- package/dist/navigation/breadcrumbs/index.d.ts +4 -0
- package/dist/navigation/breadcrumbs/index.js +2 -0
- package/dist/navigation/nav_menu/MenuItem.d.ts +9 -0
- package/dist/navigation/nav_menu/MenuItem.js +1 -0
- package/dist/navigation/nav_menu/Menus.d.ts +12 -0
- package/dist/navigation/nav_menu/Menus.js +15 -0
- package/dist/navigation/nav_menu/NavigatorMenu.svelte +318 -0
- package/dist/navigation/nav_menu/NavigatorMenu.svelte.d.ts +17 -0
- package/dist/navigation/nav_menu/NavigatorMenuItem.svelte +183 -0
- package/dist/navigation/nav_menu/NavigatorMenuItem.svelte.d.ts +18 -0
- package/dist/navigation/nav_menu/README.md +224 -0
- package/dist/navigation/nav_menu/README_CN.md +224 -0
- package/dist/navigation/nav_menu/index.d.ts +8 -0
- package/dist/navigation/nav_menu/index.js +4 -0
- package/dist/navigation/navigator/NavItemStatus.d.ts +5 -0
- package/dist/navigation/navigator/NavItemStatus.js +6 -0
- package/dist/navigation/navigator/Navigator.svelte +156 -0
- package/dist/navigation/navigator/Navigator.svelte.d.ts +15 -0
- package/dist/navigation/navigator/README.md +304 -0
- package/dist/navigation/navigator/README_CN.md +304 -0
- package/dist/navigation/navigator/index.d.ts +4 -0
- package/dist/navigation/navigator/index.js +4 -0
- package/dist/navigation/page-stack/PageStack.svelte +160 -0
- package/dist/navigation/page-stack/PageStack.svelte.d.ts +24 -0
- package/dist/navigation/page-stack/PageStackContext.d.ts +25 -0
- package/dist/navigation/page-stack/PageStackContext.js +12 -0
- package/dist/navigation/page-stack/PageStackFrame.svelte +24 -0
- package/dist/navigation/page-stack/PageStackFrame.svelte.d.ts +11 -0
- package/dist/navigation/page-stack/README.md +154 -0
- package/dist/navigation/page-stack/README_CN.md +154 -0
- package/dist/navigation/page-stack/index.d.ts +6 -0
- package/dist/navigation/page-stack/index.js +4 -0
- package/dist/navigation/pagination/Pagination.svelte +300 -0
- package/dist/navigation/pagination/Pagination.svelte.d.ts +15 -0
- package/dist/navigation/pagination/README.md +248 -0
- package/dist/navigation/pagination/README_CN.md +248 -0
- package/dist/navigation/pagination/index.d.ts +2 -0
- package/dist/navigation/pagination/index.js +2 -0
- package/dist/navigation/progress_step_bar/ProgressStep.d.ts +20 -0
- package/dist/navigation/progress_step_bar/ProgressStep.js +6 -0
- package/dist/navigation/progress_step_bar/ProgressStepBar.svelte +56 -0
- package/dist/navigation/progress_step_bar/ProgressStepBar.svelte.d.ts +11 -0
- package/dist/navigation/progress_step_bar/ProgressStepBlock.svelte +197 -0
- package/dist/navigation/progress_step_bar/ProgressStepBlock.svelte.d.ts +12 -0
- package/dist/navigation/progress_step_bar/README.md +247 -0
- package/dist/navigation/progress_step_bar/README_CN.md +247 -0
- package/dist/navigation/progress_step_bar/index.d.ts +6 -0
- package/dist/navigation/progress_step_bar/index.js +5 -0
- package/dist/navigation/tabs/README.md +353 -0
- package/dist/navigation/tabs/README_CN.md +353 -0
- package/dist/navigation/tabs/Tabs.svelte +400 -0
- package/dist/navigation/tabs/Tabs.svelte.d.ts +28 -0
- package/dist/navigation/tabs/index.d.ts +4 -0
- package/dist/navigation/tabs/index.js +2 -0
- package/dist/overlay/common/DateFormats.d.ts +5 -0
- package/dist/overlay/common/DateFormats.js +6 -0
- package/dist/overlay/common/FloatingPanel.svelte +69 -0
- package/dist/overlay/common/FloatingPanel.svelte.d.ts +15 -0
- package/dist/overlay/common/FullscreenOverlay.svelte +42 -0
- package/dist/overlay/common/FullscreenOverlay.svelte.d.ts +8 -0
- package/dist/overlay/common/ModalPopover.svelte +56 -0
- package/dist/overlay/common/ModalPopover.svelte.d.ts +11 -0
- package/dist/overlay/common/Popover.svelte +155 -0
- package/dist/overlay/common/Popover.svelte.d.ts +17 -0
- package/dist/overlay/common/escapeClose.d.ts +28 -0
- package/dist/overlay/common/escapeClose.js +47 -0
- package/dist/overlay/common/focusTrap.d.ts +8 -0
- package/dist/overlay/common/focusTrap.js +83 -0
- package/dist/overlay/common/mountSingleton.d.ts +28 -0
- package/dist/overlay/common/mountSingleton.js +48 -0
- package/dist/overlay/common/outsideClick.d.ts +28 -0
- package/dist/overlay/common/outsideClick.js +20 -0
- package/dist/overlay/common/scrollLock.d.ts +8 -0
- package/dist/overlay/common/scrollLock.js +49 -0
- package/dist/overlay/common/topside-utils.d.ts +3 -0
- package/dist/overlay/common/topside-utils.js +19 -0
- package/dist/overlay/common/utils.d.ts +13 -0
- package/dist/overlay/common/utils.js +136 -0
- package/dist/overlay/context-menu/ContextMenu.svelte.d.ts +22 -0
- package/dist/overlay/context-menu/ContextMenu.svelte.js +53 -0
- package/dist/overlay/context-menu/ContextMenuItem.d.ts +31 -0
- package/dist/overlay/context-menu/ContextMenuItem.js +1 -0
- package/dist/overlay/context-menu/ContextMenuPanel.svelte +211 -0
- package/dist/overlay/context-menu/ContextMenuPanel.svelte.d.ts +3 -0
- package/dist/overlay/context-menu/README.md +361 -0
- package/dist/overlay/context-menu/README_CN.md +361 -0
- package/dist/overlay/context-menu/index.d.ts +6 -0
- package/dist/overlay/context-menu/index.js +3 -0
- package/dist/overlay/dialog/BeforeClose.d.ts +4 -0
- package/dist/overlay/dialog/BeforeClose.js +1 -0
- package/dist/overlay/dialog/CommonDialog.svelte +58 -0
- package/dist/overlay/dialog/CommonDialog.svelte.d.ts +22 -0
- package/dist/overlay/dialog/Dialog.svelte +255 -0
- package/dist/overlay/dialog/Dialog.svelte.d.ts +29 -0
- package/dist/overlay/dialog/DialogBoard.svelte +15 -0
- package/dist/overlay/dialog/DialogBoard.svelte.d.ts +18 -0
- package/dist/overlay/dialog/DialogManager.svelte.d.ts +24 -0
- package/dist/overlay/dialog/DialogManager.svelte.js +58 -0
- package/dist/overlay/dialog/DialogWrapper.svelte +12 -0
- package/dist/overlay/dialog/DialogWrapper.svelte.d.ts +8 -0
- package/dist/overlay/dialog/IDialog.d.ts +14 -0
- package/dist/overlay/dialog/IDialog.js +2 -0
- package/dist/overlay/dialog/README.md +540 -0
- package/dist/overlay/dialog/README_CN.md +540 -0
- package/dist/overlay/dialog/index.d.ts +14 -0
- package/dist/overlay/dialog/index.js +7 -0
- package/dist/overlay/drawer/Drawer.svelte +116 -0
- package/dist/overlay/drawer/Drawer.svelte.d.ts +11 -0
- package/dist/overlay/drawer/README.md +249 -0
- package/dist/overlay/drawer/README_CN.md +249 -0
- package/dist/overlay/drawer/index.d.ts +2 -0
- package/dist/overlay/drawer/index.js +2 -0
- package/dist/overlay/indicator/Indicator.svelte.d.ts +14 -0
- package/dist/overlay/indicator/Indicator.svelte.js +27 -0
- package/dist/overlay/indicator/IndicatorPanel.svelte +43 -0
- package/dist/overlay/indicator/IndicatorPanel.svelte.d.ts +18 -0
- package/dist/overlay/indicator/README.md +142 -0
- package/dist/overlay/indicator/README_CN.md +142 -0
- package/dist/overlay/indicator/index.d.ts +2 -0
- package/dist/overlay/indicator/index.js +2 -0
- package/dist/overlay/message-box/IMessageBox.d.ts +17 -0
- package/dist/overlay/message-box/IMessageBox.js +6 -0
- package/dist/overlay/message-box/MessageBox.svelte.d.ts +36 -0
- package/dist/overlay/message-box/MessageBox.svelte.js +77 -0
- package/dist/overlay/message-box/MessageBoxPanel.svelte +247 -0
- package/dist/overlay/message-box/MessageBoxPanel.svelte.d.ts +3 -0
- package/dist/overlay/message-box/README.md +92 -0
- package/dist/overlay/message-box/README_CN.md +92 -0
- package/dist/overlay/message-box/index.d.ts +5 -0
- package/dist/overlay/message-box/index.js +4 -0
- package/dist/overlay/toast/README.md +59 -0
- package/dist/overlay/toast/README_CN.md +59 -0
- package/dist/overlay/toast/Toast.svelte.d.ts +18 -0
- package/dist/overlay/toast/Toast.svelte.js +49 -0
- package/dist/overlay/toast/ToastPanel.svelte +56 -0
- package/dist/overlay/toast/ToastPanel.svelte.d.ts +3 -0
- package/dist/overlay/toast/index.d.ts +2 -0
- package/dist/overlay/toast/index.js +2 -0
- package/dist/overlay/tooltip/README.md +334 -0
- package/dist/overlay/tooltip/README_CN.md +334 -0
- package/dist/overlay/tooltip/Tooltip.svelte +280 -0
- package/dist/overlay/tooltip/Tooltip.svelte.d.ts +7 -0
- package/dist/overlay/tooltip/index.d.ts +2 -0
- package/dist/overlay/tooltip/index.js +2 -0
- package/dist/topside-elements.css +1753 -0
- package/dist/topsideContext.d.ts +10 -0
- package/dist/topsideContext.js +59 -0
- package/dist/types.d.ts +184 -0
- package/dist/types.js +9 -0
- package/dist/utils/exclude.d.ts +1 -0
- package/dist/utils/exclude.js +3 -0
- package/dist/utils/prefixFilter.d.ts +5 -0
- package/dist/utils/prefixFilter.js +33 -0
- package/docs/NAMING.md +364 -0
- package/docs/NAMING_CN.md +364 -0
- package/docs/components/README.md +135 -0
- package/docs/components/accordion/README.md +71 -0
- package/docs/components/accordion/example.svelte +8 -0
- package/docs/components/action-bar/README.md +114 -0
- package/docs/components/action-bar/example.svelte +7 -0
- package/docs/components/app-top-bar/README.md +60 -0
- package/docs/components/app-top-bar/example.svelte +9 -0
- package/docs/components/attachment-editor/README.md +224 -0
- package/docs/components/attachment-editor/example.svelte +22 -0
- package/docs/components/box/README.md +63 -0
- package/docs/components/box/example.svelte +10 -0
- package/docs/components/breadcrumbs/README.md +86 -0
- package/docs/components/breadcrumbs/example.svelte +11 -0
- package/docs/components/button/README.md +110 -0
- package/docs/components/button/example.svelte +11 -0
- package/docs/components/card/README.md +127 -0
- package/docs/components/card/example.svelte +10 -0
- package/docs/components/cascade-options-select/README.md +168 -0
- package/docs/components/cascade-options-select/example.svelte +18 -0
- package/docs/components/checkbox/README.md +103 -0
- package/docs/components/checkbox/example.svelte +15 -0
- package/docs/components/classic-layout/README.md +76 -0
- package/docs/components/classic-layout/example.svelte +16 -0
- package/docs/components/color-picker/README.md +132 -0
- package/docs/components/color-picker/example.svelte +16 -0
- package/docs/components/columns-layout/README.md +74 -0
- package/docs/components/columns-layout/example.svelte +16 -0
- package/docs/components/common-dialog/README.md +118 -0
- package/docs/components/common-dialog/example.svelte +13 -0
- package/docs/components/concise-data-table/README.md +296 -0
- package/docs/components/concise-data-table/example.svelte +16 -0
- package/docs/components/context-menu/README.md +99 -0
- package/docs/components/context-menu/example.svelte +10 -0
- package/docs/components/criteria-field/README.md +70 -0
- package/docs/components/criteria-field/example.svelte +10 -0
- package/docs/components/data-table/README.md +388 -0
- package/docs/components/data-table/example.svelte +23 -0
- package/docs/components/date-picker/README.md +136 -0
- package/docs/components/date-picker/example.svelte +16 -0
- package/docs/components/date-range/README.md +122 -0
- package/docs/components/date-range/example.svelte +15 -0
- package/docs/components/date-time-picker/README.md +142 -0
- package/docs/components/date-time-picker/example.svelte +16 -0
- package/docs/components/dialog/README.md +181 -0
- package/docs/components/dialog/example.svelte +13 -0
- package/docs/components/dialog-board/README.md +41 -0
- package/docs/components/dialog-board/example.svelte +5 -0
- package/docs/components/drawer/README.md +70 -0
- package/docs/components/drawer/example.svelte +12 -0
- package/docs/components/flex-form/README.md +55 -0
- package/docs/components/flex-form/example.svelte +7 -0
- package/docs/components/flex-row-form/README.md +56 -0
- package/docs/components/flex-row-form/example.svelte +7 -0
- package/docs/components/form-field/README.md +84 -0
- package/docs/components/form-field/example.svelte +10 -0
- package/docs/components/full-screen-overlay/README.md +66 -0
- package/docs/components/full-screen-overlay/example.svelte +11 -0
- package/docs/components/grid-form/README.md +85 -0
- package/docs/components/grid-form/example.svelte +9 -0
- package/docs/components/group-check-box/README.md +147 -0
- package/docs/components/group-check-box/example.svelte +21 -0
- package/docs/components/group-radio-box/README.md +144 -0
- package/docs/components/group-radio-box/example.svelte +21 -0
- package/docs/components/header-layout/README.md +65 -0
- package/docs/components/header-layout/example.svelte +12 -0
- package/docs/components/icon/README.md +88 -0
- package/docs/components/icon/example.svelte +9 -0
- package/docs/components/icon-button/README.md +100 -0
- package/docs/components/icon-button/example.svelte +11 -0
- package/docs/components/image-editor/README.md +262 -0
- package/docs/components/image-editor/example.svelte +21 -0
- package/docs/components/indicator/README.md +53 -0
- package/docs/components/indicator/example.svelte +14 -0
- package/docs/components/input-options-select/README.md +163 -0
- package/docs/components/input-options-select/example.svelte +16 -0
- package/docs/components/list-box/ListItem.svelte +14 -0
- package/docs/components/list-box/README.md +220 -0
- package/docs/components/list-box/example.svelte +61 -0
- package/docs/components/lookup-editor/README.md +137 -0
- package/docs/components/lookup-editor/example.svelte +16 -0
- package/docs/components/memo-editor/README.md +143 -0
- package/docs/components/memo-editor/example.svelte +16 -0
- package/docs/components/message-box/README.md +68 -0
- package/docs/components/message-box/example.svelte +10 -0
- package/docs/components/navigator/README.md +76 -0
- package/docs/components/navigator/example.svelte +14 -0
- package/docs/components/navigator-menu/README.md +116 -0
- package/docs/components/navigator-menu/example.svelte +12 -0
- package/docs/components/number-editor/README.md +144 -0
- package/docs/components/number-editor/example.svelte +16 -0
- package/docs/components/number-range/README.md +116 -0
- package/docs/components/number-range/example.svelte +15 -0
- package/docs/components/options-multi-select/README.md +161 -0
- package/docs/components/options-multi-select/example.svelte +20 -0
- package/docs/components/options-select/README.md +160 -0
- package/docs/components/options-select/example.svelte +21 -0
- package/docs/components/page/README.md +77 -0
- package/docs/components/page/example.svelte +10 -0
- package/docs/components/page-stack/README.md +67 -0
- package/docs/components/page-stack/example.svelte +7 -0
- package/docs/components/pagination/README.md +105 -0
- package/docs/components/pagination/example.svelte +13 -0
- package/docs/components/pagination-panel/README.md +135 -0
- package/docs/components/pagination-panel/example.svelte +17 -0
- package/docs/components/password-editor/README.md +128 -0
- package/docs/components/password-editor/example.svelte +16 -0
- package/docs/components/popup-hint/README.md +44 -0
- package/docs/components/popup-hint/example.svelte +5 -0
- package/docs/components/progress-bar/README.md +74 -0
- package/docs/components/progress-bar/example.svelte +8 -0
- package/docs/components/progress-step-bar/README.md +102 -0
- package/docs/components/progress-step-bar/example.svelte +11 -0
- package/docs/components/prompts-text-editor/README.md +148 -0
- package/docs/components/prompts-text-editor/example.svelte +16 -0
- package/docs/components/radio-button/README.md +121 -0
- package/docs/components/radio-button/example.svelte +18 -0
- package/docs/components/rows-layout/README.md +74 -0
- package/docs/components/rows-layout/example.svelte +16 -0
- package/docs/components/search-box/README.md +136 -0
- package/docs/components/search-box/example.svelte +16 -0
- package/docs/components/separator/README.md +44 -0
- package/docs/components/separator/example.svelte +7 -0
- package/docs/components/sidebar-layout/README.md +65 -0
- package/docs/components/sidebar-layout/example.svelte +12 -0
- package/docs/components/split/README.md +48 -0
- package/docs/components/split/example.svelte +8 -0
- package/docs/components/switch/README.md +77 -0
- package/docs/components/switch/example.svelte +11 -0
- package/docs/components/tabs/README.md +142 -0
- package/docs/components/tabs/example.svelte +22 -0
- package/docs/components/tag/README.md +74 -0
- package/docs/components/tag/example.svelte +9 -0
- package/docs/components/text-button/README.md +109 -0
- package/docs/components/text-button/example.svelte +11 -0
- package/docs/components/text-editor/README.md +147 -0
- package/docs/components/text-editor/example.svelte +16 -0
- package/docs/components/time-editor/README.md +130 -0
- package/docs/components/time-editor/example.svelte +16 -0
- package/docs/components/toast/README.md +52 -0
- package/docs/components/toast/example.svelte +9 -0
- package/docs/components/tooltip/README.md +44 -0
- package/docs/components/tooltip/example.svelte +5 -0
- package/docs/components/transfer/README.md +116 -0
- package/docs/components/transfer/example.svelte +13 -0
- package/docs/components/tree-view/README.md +179 -0
- package/docs/components/tree-view/example.svelte +27 -0
- package/docs/components/unit-number-editor/README.md +195 -0
- package/docs/components/unit-number-editor/example.svelte +17 -0
- package/package.json +515 -0
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type Breadcrumb from "./Breadcrumb";
|
|
3
|
+
|
|
4
|
+
interface Props {
|
|
5
|
+
items?: Array<Breadcrumb>;
|
|
6
|
+
separator?: string;
|
|
7
|
+
theme?: string;
|
|
8
|
+
onclick?: (event: MouseEvent, item: any) => void;
|
|
9
|
+
style?: string;
|
|
10
|
+
leadingSeparator?: boolean;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
let {
|
|
14
|
+
items = [],
|
|
15
|
+
separator = "/",
|
|
16
|
+
theme,
|
|
17
|
+
onclick,
|
|
18
|
+
style = "",
|
|
19
|
+
leadingSeparator = false
|
|
20
|
+
}: Props = $props();
|
|
21
|
+
|
|
22
|
+
const handleClick = (item: Breadcrumb, isLast: boolean) => (event: MouseEvent) => {
|
|
23
|
+
if (!isLast && onclick) {
|
|
24
|
+
onclick(event, item.data);
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
</script>
|
|
29
|
+
|
|
30
|
+
<div class="topside-breadcrumbs" {style} data-theme={theme}>
|
|
31
|
+
{#each items as item, idx}
|
|
32
|
+
{@const isLast = idx === items.length - 1}
|
|
33
|
+
{@const showSeparator = idx > 0 || leadingSeparator}
|
|
34
|
+
<div class:last_child={isLast}>
|
|
35
|
+
{#if showSeparator}
|
|
36
|
+
<span>{separator}</span>
|
|
37
|
+
{/if}
|
|
38
|
+
<a class="breadcrumb"
|
|
39
|
+
class:interactive={!isLast}
|
|
40
|
+
onclick={handleClick(item, isLast)}
|
|
41
|
+
tabindex={isLast ? -1 : 0}
|
|
42
|
+
aria-current={isLast ? "page" : undefined}
|
|
43
|
+
href={isLast ? undefined : '#'}>
|
|
44
|
+
{item.label}
|
|
45
|
+
</a>
|
|
46
|
+
</div>
|
|
47
|
+
{/each}
|
|
48
|
+
</div>
|
|
49
|
+
|
|
50
|
+
<style>
|
|
51
|
+
.topside-breadcrumbs {
|
|
52
|
+
width: 100%;
|
|
53
|
+
display: flex;
|
|
54
|
+
flex-direction: row;
|
|
55
|
+
flex-wrap: nowrap;
|
|
56
|
+
overflow: hidden;
|
|
57
|
+
user-select: none;
|
|
58
|
+
color: var(--topside-breadcrumbs-color);
|
|
59
|
+
gap: var(--topside-breadcrumbs-spacing);
|
|
60
|
+
padding: var(--topside-breadcrumbs-padding);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
.breadcrumb {
|
|
64
|
+
margin: 0 6px;
|
|
65
|
+
color: inherit;
|
|
66
|
+
text-decoration: none;
|
|
67
|
+
outline: none;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
.breadcrumb.interactive {
|
|
71
|
+
cursor: pointer;
|
|
72
|
+
color: var(--topside-breadcrumbs-color);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
.breadcrumb.interactive:hover {
|
|
76
|
+
color: var(--topside-breadcrumbs-color-hover);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
.breadcrumb.interactive:focus-visible {
|
|
80
|
+
color: var(--topside-breadcrumbs-color-hover);
|
|
81
|
+
text-decoration: underline;
|
|
82
|
+
text-underline-offset: 4px;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
.breadcrumb.interactive:active {
|
|
86
|
+
color: var(--topside-breadcrumbs-color-active);
|
|
87
|
+
font-weight: 600;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
</style>
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type Breadcrumb from "./Breadcrumb";
|
|
2
|
+
interface Props {
|
|
3
|
+
items?: Array<Breadcrumb>;
|
|
4
|
+
separator?: string;
|
|
5
|
+
theme?: string;
|
|
6
|
+
onclick?: (event: MouseEvent, item: any) => void;
|
|
7
|
+
style?: string;
|
|
8
|
+
leadingSeparator?: boolean;
|
|
9
|
+
}
|
|
10
|
+
declare const Breadcrumbs: import("svelte").Component<Props, {}, "">;
|
|
11
|
+
type Breadcrumbs = ReturnType<typeof Breadcrumbs>;
|
|
12
|
+
export default Breadcrumbs;
|
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
# Breadcrumbs Component
|
|
2
|
+
|
|
3
|
+
A horizontal breadcrumb trail showing the user's location in a hierarchy. Items render as `<a>` tags; non-last items are clickable, the last item is marked as the current page (`aria-current="page"`).
|
|
4
|
+
|
|
5
|
+
## Features
|
|
6
|
+
|
|
7
|
+
- **Array-driven**: pass `Breadcrumb[]` (`{ label, data }`) — no nested tree required
|
|
8
|
+
- **Custom separator**: any string (`/` by default), shown between items
|
|
9
|
+
- **Optional leading separator**: for prefixing the trail (e.g. a home icon)
|
|
10
|
+
- **Last item is non-interactive**: gets `aria-current="page"`, `tabindex="-1"`, no `href`, no click handler
|
|
11
|
+
- **Full keyboard support**: Tab through items, Enter to activate, `:focus-visible` underline
|
|
12
|
+
- **Click handler receives `data`, not the breadcrumb object** — `onclick(event, data)` fires for every non-last item
|
|
13
|
+
- **Theme hook**: `data-theme="{theme}"` on the outer wrapper
|
|
14
|
+
|
|
15
|
+
## Installation
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
npm install @ticatec/topside-elements
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Import
|
|
22
|
+
|
|
23
|
+
```typescript
|
|
24
|
+
import Breadcrumbs, { type Breadcrumb } from '@ticatec/topside-elements/Breadcrumbs';
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Basic Usage
|
|
28
|
+
|
|
29
|
+
```svelte
|
|
30
|
+
<script lang="ts">
|
|
31
|
+
import Breadcrumbs, { type Breadcrumb } from '@ticatec/topside-elements/Breadcrumbs';
|
|
32
|
+
|
|
33
|
+
const items: Breadcrumb[] = [
|
|
34
|
+
{ label: 'Home', data: { path: '/' } },
|
|
35
|
+
{ label: 'Products', data: { path: '/products' } },
|
|
36
|
+
{ label: 'Electronics', data: { path: '/products/electronics' } },
|
|
37
|
+
{ label: 'Smartphones', data: { path: '/products/electronics/smartphones' } }
|
|
38
|
+
];
|
|
39
|
+
|
|
40
|
+
function handleClick(event: MouseEvent, data: any) {
|
|
41
|
+
event.preventDefault(); // the <a href="#"> would jump to top otherwise
|
|
42
|
+
console.log('Navigate to:', data.path);
|
|
43
|
+
}
|
|
44
|
+
</script>
|
|
45
|
+
|
|
46
|
+
<Breadcrumbs items={items} onclick={handleClick} />
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
> **Call `event.preventDefault()` in your handler.** Each non-last item is an `<a href="#">`, so without `preventDefault` the page jumps to the top on every click.
|
|
50
|
+
|
|
51
|
+
## Props
|
|
52
|
+
|
|
53
|
+
| Prop | Type | Default | Description |
|
|
54
|
+
|------|------|---------|-------------|
|
|
55
|
+
| `items` | `Breadcrumb[]` | `[]` | Breadcrumb trail. Each item has `label` (display text) and `data` (payload passed to the click handler). |
|
|
56
|
+
| `separator` | `string` | `'/'` | String rendered between items (and before the first item if `leadingSeparator` is on) |
|
|
57
|
+
| `onclick` | `((event: MouseEvent, data: any) => void) \| undefined` | `undefined` | Click handler. **Only fires for non-last items.** The last item (current page) is not clickable. |
|
|
58
|
+
| `leadingSeparator` | `boolean` | `false` | Show the separator before the first item too |
|
|
59
|
+
| `style` | `string` | `''` | Inline CSS on the outer wrapper |
|
|
60
|
+
| `theme` | `string \| undefined` | `undefined` | Set as `data-theme` on the outer wrapper |
|
|
61
|
+
|
|
62
|
+
## Breadcrumb Type
|
|
63
|
+
|
|
64
|
+
```typescript
|
|
65
|
+
interface Breadcrumb {
|
|
66
|
+
label: string; // Display text
|
|
67
|
+
data: any; // Payload passed to onclick as the 2nd argument
|
|
68
|
+
}
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
`data` is `any` — store whatever your router needs (route path, category id, etc.).
|
|
72
|
+
|
|
73
|
+
## Layout
|
|
74
|
+
|
|
75
|
+
```text
|
|
76
|
+
┌─────────────────────────────────────────────────────────┐
|
|
77
|
+
│ .topside-breadcrumbs (flex row, nowrap, overflow:hidden)│
|
|
78
|
+
│ [Home] / [Products] / [Electronics] / [Smartphones*] │
|
|
79
|
+
│ ↑ │
|
|
80
|
+
│ last_child (current) │
|
|
81
|
+
└─────────────────────────────────────────────────────────┘
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
The trail is `flex-wrap: nowrap; overflow: hidden` — long trails clip on the right, they don't wrap to a second line. If you expect long trails, consider truncating `items` yourself before passing them in.
|
|
85
|
+
|
|
86
|
+
Each item is wrapped in a `<div class:last_child={isLast}>` with the separator `<span>` (if shown) and the `<a class="breadcrumb">` inside.
|
|
87
|
+
|
|
88
|
+
## DOM Structure & CSS
|
|
89
|
+
|
|
90
|
+
Rendered output (4 items, last one is current):
|
|
91
|
+
|
|
92
|
+
```html
|
|
93
|
+
<div class="topside-breadcrumbs" data-theme="...">
|
|
94
|
+
<!-- item 0 (not last) -->
|
|
95
|
+
<div>
|
|
96
|
+
<span>/</span> <!-- only when idx > 0 OR leadingSeparator -->
|
|
97
|
+
<a class="breadcrumb interactive" tabindex="0" href="#">
|
|
98
|
+
Home
|
|
99
|
+
</a>
|
|
100
|
+
</div>
|
|
101
|
+
|
|
102
|
+
<!-- item 1, 2 (same pattern) -->
|
|
103
|
+
|
|
104
|
+
<!-- item 3 (LAST) -->
|
|
105
|
+
<div class="last_child">
|
|
106
|
+
<span>/</span>
|
|
107
|
+
<a class="breadcrumb" tabindex="-1" aria-current="page">
|
|
108
|
+
Smartphones
|
|
109
|
+
</a>
|
|
110
|
+
</div>
|
|
111
|
+
</div>
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
Key differences on the last item:
|
|
115
|
+
- No `interactive` class → no cursor, no hover/focus styles
|
|
116
|
+
- `tabindex="-1"` → skipped in tab order
|
|
117
|
+
- `aria-current="page"` → announced by screen readers as "current page"
|
|
118
|
+
- No `href` attribute → not a link
|
|
119
|
+
- The wrapper div gets `last_child` class (currently no CSS rule uses it — hook for your own styling)
|
|
120
|
+
|
|
121
|
+
### CSS Variables
|
|
122
|
+
|
|
123
|
+
| Variable | Purpose |
|
|
124
|
+
|----------|---------|
|
|
125
|
+
| `--topside-breadcrumbs-color` | Text color (default + interactive) |
|
|
126
|
+
| `--topside-breadcrumbs-color-hover` | Hover / focus-visible color |
|
|
127
|
+
| `--topside-breadcrumbs-color-active` | Active (press) color |
|
|
128
|
+
| `--topside-breadcrumbs-spacing` | Gap between items |
|
|
129
|
+
| `--topside-breadcrumbs-padding` | Outer wrapper padding |
|
|
130
|
+
|
|
131
|
+
### Built-in styles
|
|
132
|
+
|
|
133
|
+
```css
|
|
134
|
+
.topside-breadcrumbs {
|
|
135
|
+
display: flex;
|
|
136
|
+
flex-direction: row;
|
|
137
|
+
flex-wrap: nowrap;
|
|
138
|
+
overflow: hidden;
|
|
139
|
+
user-select: none;
|
|
140
|
+
gap: var(--topside-breadcrumbs-spacing);
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
.breadcrumb {
|
|
144
|
+
margin: 0 6px;
|
|
145
|
+
color: inherit;
|
|
146
|
+
text-decoration: none;
|
|
147
|
+
outline: none;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
.breadcrumb.interactive { cursor: pointer; }
|
|
151
|
+
.breadcrumb.interactive:hover { color: var(--topside-breadcrumbs-color-hover); }
|
|
152
|
+
.breadcrumb.interactive:focus-visible{
|
|
153
|
+
color: var(--topside-breadcrumbs-color-hover);
|
|
154
|
+
text-decoration: underline;
|
|
155
|
+
text-underline-offset: 4px;
|
|
156
|
+
}
|
|
157
|
+
.breadcrumb.interactive:active { color: var(--topside-breadcrumbs-color-active); font-weight: 600; }
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
## Examples
|
|
161
|
+
|
|
162
|
+
### E-commerce Category Trail
|
|
163
|
+
|
|
164
|
+
```svelte
|
|
165
|
+
<script lang="ts">
|
|
166
|
+
import Breadcrumbs, { type Breadcrumb } from '@ticatec/topside-elements/Breadcrumbs';
|
|
167
|
+
|
|
168
|
+
const items: Breadcrumb[] = [
|
|
169
|
+
{ label: 'All Categories', data: { categoryId: null } },
|
|
170
|
+
{ label: 'Electronics', data: { categoryId: 'electronics' } },
|
|
171
|
+
{ label: 'Computers', data: { categoryId: 'computers' } },
|
|
172
|
+
{ label: 'Laptops', data: { categoryId: 'laptops' } }
|
|
173
|
+
];
|
|
174
|
+
|
|
175
|
+
function goToCategory(event: MouseEvent, data: any) {
|
|
176
|
+
event.preventDefault();
|
|
177
|
+
if (data.categoryId) {
|
|
178
|
+
goto(`/categories/${data.categoryId}`);
|
|
179
|
+
} else {
|
|
180
|
+
goto('/categories');
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
</script>
|
|
184
|
+
|
|
185
|
+
<Breadcrumbs
|
|
186
|
+
items={items}
|
|
187
|
+
onclick={goToCategory}
|
|
188
|
+
separator=" › "
|
|
189
|
+
style="padding: 8px 16px;"
|
|
190
|
+
/>
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
### With Leading Separator
|
|
194
|
+
|
|
195
|
+
For visual prefix (e.g. when you want a home icon before the first item):
|
|
196
|
+
|
|
197
|
+
```svelte
|
|
198
|
+
<Breadcrumbs items={items} onclick={...} leadingSeparator />
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
Renders: `/ Home / Products / Current`. Useful when the breadcrumbs sit next to other UI and need a visual delimiter.
|
|
202
|
+
|
|
203
|
+
### Custom Separator (Icon Font)
|
|
204
|
+
|
|
205
|
+
```svelte
|
|
206
|
+
<Breadcrumbs items={items} onclick={...} separator="›" />
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
The separator is plain text rendered in a `<span>`. To use an icon, replace the component or render your own trail.
|
|
210
|
+
|
|
211
|
+
### Truncating Long Trails
|
|
212
|
+
|
|
213
|
+
For deep hierarchies, truncate before passing in:
|
|
214
|
+
|
|
215
|
+
```svelte
|
|
216
|
+
<script lang="ts">
|
|
217
|
+
import Breadcrumbs, { type Breadcrumb } from '@ticatec/topside-elements/Breadcrumbs';
|
|
218
|
+
|
|
219
|
+
const full: Breadcrumb[] = [...]; // 10 levels deep
|
|
220
|
+
|
|
221
|
+
// Show first 2, ellipsis, last 2
|
|
222
|
+
$: items = full.length > 5
|
|
223
|
+
? [...full.slice(0, 2), { label: '…', data: { skipped: true } }, ...full.slice(-2)]
|
|
224
|
+
: full;
|
|
225
|
+
</script>
|
|
226
|
+
|
|
227
|
+
<Breadcrumbs items={items} onclick={handleClick} />
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
## Behavior Notes
|
|
231
|
+
|
|
232
|
+
- **Last item is non-interactive.** No click handler fires for it, no `href`, no `tabindex`. It represents the current page.
|
|
233
|
+
- **Items render as `<a href="#">`.** Without `event.preventDefault()` in your handler, clicking jumps to the page top.
|
|
234
|
+
- **`onclick` is called for every non-last item** — you decide where to navigate based on `data`.
|
|
235
|
+
- **Long trails clip, not wrap.** Consider truncation for deep hierarchies.
|
|
236
|
+
- **`user-select: none`** on the wrapper — labels can't be selected.
|
|
237
|
+
- **No `last_child` CSS rule exists**, but the class is on the wrapper div — use it for your own styling (e.g. bold the current page).
|
|
238
|
+
|
|
239
|
+
## Accessibility
|
|
240
|
+
|
|
241
|
+
- Each non-last item is a real `<a>` with `tabindex="0"` and a `:focus-visible` underline.
|
|
242
|
+
- The last item has `aria-current="page"` — screen readers announce it as the current page.
|
|
243
|
+
- The separator `<span>` is plain text — screen readers will read it (e.g. "Home slash Products slash ..."). If this is noisy, hide it with `aria-hidden="true"` in your own fork.
|
|
244
|
+
- Color is the only differentiator between interactive and non-interactive items — ensure your theme keeps contrast sufficient for both states.
|
|
245
|
+
|
|
246
|
+
## Best Practices
|
|
247
|
+
|
|
248
|
+
1. **Always `event.preventDefault()` in `onclick`** — items are `<a href="#">` and will jump otherwise.
|
|
249
|
+
2. **Pass router-relevant data via the `data` field** — route paths, IDs, query params. The component doesn't care what's inside.
|
|
250
|
+
3. **Truncate long trails before rendering** — the component clips overflow rather than wrapping or scrolling.
|
|
251
|
+
4. **The last item should match the current URL** — that's what `aria-current="page"` implies. Don't pass a "future" or "next" item as the last entry.
|
|
252
|
+
5. **Use `leadingSeparator` only when there's a visual reason** (sits next to other nav). Otherwise the leading slash looks odd.
|
|
253
|
+
6. **Don't rely on color alone** — both interactive and non-interactive items use the same base color in some themes; the cursor and underline are the real signals.
|
|
254
|
+
|
|
255
|
+
## Related Components
|
|
256
|
+
|
|
257
|
+
- [NavigatorMenu](../nav_menu/README.md) — full hierarchical menu (Breadcrumbs shows the *path*, NavigatorMenu shows the *tree*)
|
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
# Breadcrumbs 面包屑组件
|
|
2
|
+
|
|
3
|
+
水平面包屑路径,显示用户在层级中的位置。每项渲染为 `<a>` 标签 —— 非末项可点击,末项被标记为当前页(`aria-current="page"`)。
|
|
4
|
+
|
|
5
|
+
## 功能特性
|
|
6
|
+
|
|
7
|
+
- **数组驱动**:传 `Breadcrumb[]`(`{ label, data }`) —— 不需要嵌套树
|
|
8
|
+
- **自定义分隔符**:任意字符串(默认 `/`),渲染在各项之间
|
|
9
|
+
- **可选前置分隔符**:用于路径开头(如 home 图标之后)
|
|
10
|
+
- **末项不可交互**:加 `aria-current="page"`、`tabindex="-1"`、无 `href`、无 click handler
|
|
11
|
+
- **完整键盘支持**:Tab 在各项间切换、Enter 激活、`:focus-visible` 下划线
|
|
12
|
+
- **点击 handler 收到的是 `data` 不是 breadcrumb 对象** —— `onclick(event, data)` 对每个非末项触发
|
|
13
|
+
- **主题钩子**:外层 wrapper 暴露 `data-theme="{theme}"`
|
|
14
|
+
|
|
15
|
+
## 安装
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
npm install @ticatec/topside-elements
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## 导入
|
|
22
|
+
|
|
23
|
+
```typescript
|
|
24
|
+
import Breadcrumbs, { type Breadcrumb } from '@ticatec/topside-elements/Breadcrumbs';
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## 基本用法
|
|
28
|
+
|
|
29
|
+
```svelte
|
|
30
|
+
<script lang="ts">
|
|
31
|
+
import Breadcrumbs, { type Breadcrumb } from '@ticatec/topside-elements/Breadcrumbs';
|
|
32
|
+
|
|
33
|
+
const items: Breadcrumb[] = [
|
|
34
|
+
{ label: '首页', data: { path: '/' } },
|
|
35
|
+
{ label: '产品', data: { path: '/products' } },
|
|
36
|
+
{ label: '电子产品', data: { path: '/products/electronics' } },
|
|
37
|
+
{ label: '智能手机', data: { path: '/products/electronics/smartphones' } }
|
|
38
|
+
];
|
|
39
|
+
|
|
40
|
+
function handleClick(event: MouseEvent, data: any) {
|
|
41
|
+
event.preventDefault(); // 否则 <a href="#"> 会跳到顶部
|
|
42
|
+
console.log('导航到:', data.path);
|
|
43
|
+
}
|
|
44
|
+
</script>
|
|
45
|
+
|
|
46
|
+
<Breadcrumbs items={items} onclick={handleClick} />
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
> **handler 里要调 `event.preventDefault()`。** 每个非末项是 `<a href="#">`,不阻止默认行为的话每次点击都会跳到页面顶部。
|
|
50
|
+
|
|
51
|
+
## 属性
|
|
52
|
+
|
|
53
|
+
| 属性 | 类型 | 默认值 | 描述 |
|
|
54
|
+
|------|------|---------|-------------|
|
|
55
|
+
| `items` | `Breadcrumb[]` | `[]` | 面包屑路径。每项有 `label`(显示文字)和 `data`(透传给 click handler 的负载) |
|
|
56
|
+
| `separator` | `string` | `'/'` | 渲染在各项之间的字符串(`leadingSeparator` 开时也在首项前渲染) |
|
|
57
|
+
| `onclick` | `((event: MouseEvent, data: any) => void) \| undefined` | `undefined` | 点击 handler。**仅对非末项触发**。末项(当前页)不可点 |
|
|
58
|
+
| `leadingSeparator` | `boolean` | `false` | 在首项之前也显示分隔符 |
|
|
59
|
+
| `style` | `string` | `''` | 外层 wrapper 的内联 CSS |
|
|
60
|
+
| `theme` | `string \| undefined` | `undefined` | 设为外层 wrapper 的 `data-theme` |
|
|
61
|
+
|
|
62
|
+
## Breadcrumb 类型
|
|
63
|
+
|
|
64
|
+
```typescript
|
|
65
|
+
interface Breadcrumb {
|
|
66
|
+
label: string; // 显示文字
|
|
67
|
+
data: any; // 作为第 2 个参数传给 onclick 的负载
|
|
68
|
+
}
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
`data` 是 `any` —— 装路由器需要的任何东西(路径、分类 ID 等)。
|
|
72
|
+
|
|
73
|
+
## 布局
|
|
74
|
+
|
|
75
|
+
```text
|
|
76
|
+
┌─────────────────────────────────────────────────────────┐
|
|
77
|
+
│ .topside-breadcrumbs (flex row, nowrap, overflow:hidden)│
|
|
78
|
+
│ [首页] / [产品] / [电子产品] / [智能手机*] │
|
|
79
|
+
│ ↑ │
|
|
80
|
+
│ last_child(当前页) │
|
|
81
|
+
└─────────────────────────────────────────────────────────┘
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
路径是 `flex-wrap: nowrap; overflow: hidden` —— 长路径在右侧裁掉,不换行到第二行。预期路径会很长的话,自己先截断 `items` 再传。
|
|
85
|
+
|
|
86
|
+
每项包在 `<div class:last_child={isLast}>` 里,里面有分隔符 `<span>`(如果显示)和 `<a class="breadcrumb">`。
|
|
87
|
+
|
|
88
|
+
## DOM 结构与 CSS
|
|
89
|
+
|
|
90
|
+
实际渲染(4 项,末项是当前页):
|
|
91
|
+
|
|
92
|
+
```html
|
|
93
|
+
<div class="topside-breadcrumbs" data-theme="...">
|
|
94
|
+
<!-- 第 0 项(非末) -->
|
|
95
|
+
<div>
|
|
96
|
+
<span>/</span> <!-- 仅 idx > 0 或 leadingSeparator 时 -->
|
|
97
|
+
<a class="breadcrumb interactive" tabindex="0" href="#">
|
|
98
|
+
首页
|
|
99
|
+
</a>
|
|
100
|
+
</div>
|
|
101
|
+
|
|
102
|
+
<!-- 第 1、2 项(同模式) -->
|
|
103
|
+
|
|
104
|
+
<!-- 第 3 项(末项) -->
|
|
105
|
+
<div class="last_child">
|
|
106
|
+
<span>/</span>
|
|
107
|
+
<a class="breadcrumb" tabindex="-1" aria-current="page">
|
|
108
|
+
智能手机
|
|
109
|
+
</a>
|
|
110
|
+
</div>
|
|
111
|
+
</div>
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
末项的关键差异:
|
|
115
|
+
- 没有 `interactive` 类 → 无 cursor,无 hover/focus 样式
|
|
116
|
+
- `tabindex="-1"` → 不在 Tab 序列
|
|
117
|
+
- `aria-current="page"` → 屏幕阅读器朗读为"当前页"
|
|
118
|
+
- 没有 `href` 属性 → 不是链接
|
|
119
|
+
- 外层 div 加 `last_child` 类(当前无 CSS 规则使用 —— 你自己写样式的钩子)
|
|
120
|
+
|
|
121
|
+
### CSS 变量
|
|
122
|
+
|
|
123
|
+
| 变量 | 用途 |
|
|
124
|
+
|------|------|
|
|
125
|
+
| `--topside-breadcrumbs-color` | 文字色(默认 + 可交互) |
|
|
126
|
+
| `--topside-breadcrumbs-color-hover` | hover / focus-visible 色 |
|
|
127
|
+
| `--topside-breadcrumbs-color-active` | active(按下)色 |
|
|
128
|
+
| `--topside-breadcrumbs-spacing` | 各项间距 |
|
|
129
|
+
| `--topside-breadcrumbs-padding` | 外层 wrapper 的 padding |
|
|
130
|
+
|
|
131
|
+
### 内置样式
|
|
132
|
+
|
|
133
|
+
```css
|
|
134
|
+
.topside-breadcrumbs {
|
|
135
|
+
display: flex;
|
|
136
|
+
flex-direction: row;
|
|
137
|
+
flex-wrap: nowrap;
|
|
138
|
+
overflow: hidden;
|
|
139
|
+
user-select: none;
|
|
140
|
+
gap: var(--topside-breadcrumbs-spacing);
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
.breadcrumb {
|
|
144
|
+
margin: 0 6px;
|
|
145
|
+
color: inherit;
|
|
146
|
+
text-decoration: none;
|
|
147
|
+
outline: none;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
.breadcrumb.interactive { cursor: pointer; }
|
|
151
|
+
.breadcrumb.interactive:hover { color: var(--topside-breadcrumbs-color-hover); }
|
|
152
|
+
.breadcrumb.interactive:focus-visible{
|
|
153
|
+
color: var(--topside-breadcrumbs-color-hover);
|
|
154
|
+
text-decoration: underline;
|
|
155
|
+
text-underline-offset: 4px;
|
|
156
|
+
}
|
|
157
|
+
.breadcrumb.interactive:active { color: var(--topside-breadcrumbs-color-active); font-weight: 600; }
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
## 示例
|
|
161
|
+
|
|
162
|
+
### 电商分类路径
|
|
163
|
+
|
|
164
|
+
```svelte
|
|
165
|
+
<script lang="ts">
|
|
166
|
+
import Breadcrumbs, { type Breadcrumb } from '@ticatec/topside-elements/Breadcrumbs';
|
|
167
|
+
|
|
168
|
+
const items: Breadcrumb[] = [
|
|
169
|
+
{ label: '全部分类', data: { categoryId: null } },
|
|
170
|
+
{ label: '电子产品', data: { categoryId: 'electronics' } },
|
|
171
|
+
{ label: '计算机', data: { categoryId: 'computers' } },
|
|
172
|
+
{ label: '笔记本', data: { categoryId: 'laptops' } }
|
|
173
|
+
];
|
|
174
|
+
|
|
175
|
+
function goToCategory(event: MouseEvent, data: any) {
|
|
176
|
+
event.preventDefault();
|
|
177
|
+
if (data.categoryId) {
|
|
178
|
+
goto(`/categories/${data.categoryId}`);
|
|
179
|
+
} else {
|
|
180
|
+
goto('/categories');
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
</script>
|
|
184
|
+
|
|
185
|
+
<Breadcrumbs
|
|
186
|
+
items={items}
|
|
187
|
+
onclick={goToCategory}
|
|
188
|
+
separator=" › "
|
|
189
|
+
style="padding: 8px 16px;"
|
|
190
|
+
/>
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
### 带前置分隔符
|
|
194
|
+
|
|
195
|
+
用于视觉前缀(如想在首项前放 home 图标):
|
|
196
|
+
|
|
197
|
+
```svelte
|
|
198
|
+
<Breadcrumbs items={items} onclick={...} leadingSeparator />
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
渲染:`/ 首页 / 产品 / 当前`。面包屑旁边贴其他 UI、需要视觉分隔时有用。
|
|
202
|
+
|
|
203
|
+
### 自定义分隔符
|
|
204
|
+
|
|
205
|
+
```svelte
|
|
206
|
+
<Breadcrumbs items={items} onclick={...} separator="›" />
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
分隔符是渲染在 `<span>` 里的纯文本。要用图标得自己换组件或自己渲染路径。
|
|
210
|
+
|
|
211
|
+
### 截断长路径
|
|
212
|
+
|
|
213
|
+
层级深时,先截断再传:
|
|
214
|
+
|
|
215
|
+
```svelte
|
|
216
|
+
<script lang="ts">
|
|
217
|
+
import Breadcrumbs, { type Breadcrumb } from '@ticatec/topside-elements/Breadcrumbs';
|
|
218
|
+
|
|
219
|
+
const full: Breadcrumb[] = [...]; // 10 层深
|
|
220
|
+
|
|
221
|
+
// 显示首 2 项、省略号、末 2 项
|
|
222
|
+
$: items = full.length > 5
|
|
223
|
+
? [...full.slice(0, 2), { label: '…', data: { skipped: true } }, ...full.slice(-2)]
|
|
224
|
+
: full;
|
|
225
|
+
</script>
|
|
226
|
+
|
|
227
|
+
<Breadcrumbs items={items} onclick={handleClick} />
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
## 行为说明
|
|
231
|
+
|
|
232
|
+
- **末项不可交互。** 不触发 click handler,无 `href`、无 `tabindex`。代表当前页
|
|
233
|
+
- **各项渲染为 `<a href="#">`。** handler 不调 `preventDefault()` 的话,点击会跳到页面顶部
|
|
234
|
+
- **`onclick` 对每个非末项触发** —— 根据 `data` 决定导航到哪
|
|
235
|
+
- **长路径裁剪不换行。** 深层级考虑自己截断
|
|
236
|
+
- **`user-select: none`** 在 wrapper 上 —— 标签不可选中
|
|
237
|
+
- **没有 `last_child` CSS 规则**,但 wrapper div 上有这个类 —— 自己写样式时用(如把当前页加粗)
|
|
238
|
+
|
|
239
|
+
## 无障碍访问
|
|
240
|
+
|
|
241
|
+
- 每个非末项是真正的 `<a>`,有 `tabindex="0"` 和 `:focus-visible` 下划线
|
|
242
|
+
- 末项有 `aria-current="page"` —— 屏幕阅读器朗读为"当前页"
|
|
243
|
+
- 分隔符 `<span>` 是纯文本 —— 屏幕阅读器会读出来(如"首页 斜杠 产品 斜杠 …")。觉得吵的话在自己的分支里加 `aria-hidden="true"`
|
|
244
|
+
- 颜色是可交互与不可交互项的唯一区分 —— 确保你的主题在两个状态下都保持足够对比度
|
|
245
|
+
|
|
246
|
+
## 最佳实践
|
|
247
|
+
|
|
248
|
+
1. **`onclick` 里永远 `event.preventDefault()`** —— 各项是 `<a href="#">`,否则会跳顶
|
|
249
|
+
2. **路由相关数据通过 `data` 字段传** —— 路径、ID、query 参数。组件不在乎里面是什么
|
|
250
|
+
3. **长路径渲染前自己截断** —— 组件是裁剪溢出,不是换行或滚动
|
|
251
|
+
4. **末项应该匹配当前 URL** —— 这是 `aria-current="page"` 暗示的语义。别把"未来"或"下一步"项作为末项
|
|
252
|
+
5. **`leadingSeparator` 只在有视觉理由时用**(旁边贴其他导航)。否则前置斜杠显得奇怪
|
|
253
|
+
6. **不要只靠颜色区分** —— 某些主题下可交互和不可交互项底色相同;光标和下划线才是真信号
|
|
254
|
+
|
|
255
|
+
## 相关组件
|
|
256
|
+
|
|
257
|
+
- [NavigatorMenu](../nav_menu/README_CN.md) —— 完整层级菜单(Breadcrumbs 显示*路径*,NavigatorMenu 显示*树*)
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { HierarchyTree } from "../../lib";
|
|
2
|
+
import type { IHierarchyData } from "../../lib";
|
|
3
|
+
import type MenuItem from "./MenuItem";
|
|
4
|
+
export default class Menus extends HierarchyTree<MenuItem> {
|
|
5
|
+
/**
|
|
6
|
+
* 删除所有"空目录"节点。
|
|
7
|
+
*
|
|
8
|
+
* @param predicate 判定一个节点是否是目录(目录类型 + 无子节点时删除)。
|
|
9
|
+
* 典型实现:`(node) => node.data.type === 'folder'`。
|
|
10
|
+
*/
|
|
11
|
+
removeEmptyDirectory(predicate: (node: IHierarchyData<MenuItem>) => boolean): void;
|
|
12
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { HierarchyTree } from "../../lib";
|
|
2
|
+
export default class Menus extends HierarchyTree {
|
|
3
|
+
/**
|
|
4
|
+
* 删除所有"空目录"节点。
|
|
5
|
+
*
|
|
6
|
+
* @param predicate 判定一个节点是否是目录(目录类型 + 无子节点时删除)。
|
|
7
|
+
* 典型实现:`(node) => node.data.type === 'folder'`。
|
|
8
|
+
*/
|
|
9
|
+
removeEmptyDirectory(predicate) {
|
|
10
|
+
const empties = this.filter((node) => predicate(node) && node.isLeaf);
|
|
11
|
+
for (const node of empties) {
|
|
12
|
+
this.remove(node.data);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
}
|