gitextract_b61i1n5c/ ├── .eslintignore ├── .eslintrc ├── .github/ │ ├── FUNDING.yml │ └── workflows/ │ └── test.yml ├── .gitignore ├── .npmignore ├── .prettierrc ├── .pylintrc ├── CONTRIBUTING.md ├── DESCRIPTION ├── LICENSE ├── MANIFEST.in ├── NAMESPACE ├── Project.toml ├── README-en_US.md ├── README.md ├── _validate_init.py ├── feffery_antd_components/ │ ├── AntdAccordion.py │ ├── AntdAffix.py │ ├── AntdAlert.py │ ├── AntdAnchor.py │ ├── AntdAvatar.py │ ├── AntdAvatarGroup.py │ ├── AntdBackTop.py │ ├── AntdBadge.py │ ├── AntdBreadcrumb.py │ ├── AntdButton.py │ ├── AntdCalendar.py │ ├── AntdCard.py │ ├── AntdCardGrid.py │ ├── AntdCardMeta.py │ ├── AntdCarousel.py │ ├── AntdCascader.py │ ├── AntdCenter.py │ ├── AntdCheckCard.py │ ├── AntdCheckCardGroup.py │ ├── AntdCheckableTag.py │ ├── AntdCheckbox.py │ ├── AntdCheckboxGroup.py │ ├── AntdCol.py │ ├── AntdCollapse.py │ ├── AntdColorPicker.py │ ├── AntdComment.py │ ├── AntdCompact.py │ ├── AntdConfigProvider.py │ ├── AntdContent.py │ ├── AntdCopyText.py │ ├── AntdCountdown.py │ ├── AntdCountup.py │ ├── AntdCustomSkeleton.py │ ├── AntdDatePicker.py │ ├── AntdDateRangePicker.py │ ├── AntdDescriptionItem.py │ ├── AntdDescriptions.py │ ├── AntdDivider.py │ ├── AntdDraggerUpload.py │ ├── AntdDrawer.py │ ├── AntdDropdown.py │ ├── AntdEmpty.py │ ├── AntdFlex.py │ ├── AntdFloatButton.py │ ├── AntdFloatButtonGroup.py │ ├── AntdFooter.py │ ├── AntdForm.py │ ├── AntdFormItem.py │ ├── AntdFormRender.py │ ├── AntdHappyProvider.py │ ├── AntdHeader.py │ ├── AntdIcon.py │ ├── AntdImage.py │ ├── AntdImageGroup.py │ ├── AntdInput.py │ ├── AntdInputNumber.py │ ├── AntdLayout.py │ ├── AntdMentions.py │ ├── AntdMenu.py │ ├── AntdMessage.py │ ├── AntdModal.py │ ├── AntdNotification.py │ ├── AntdOTP.py │ ├── AntdPageHeader.py │ ├── AntdPagination.py │ ├── AntdParagraph.py │ ├── AntdPictureUpload.py │ ├── AntdPopconfirm.py │ ├── AntdPopover.py │ ├── AntdPopupCard.py │ ├── AntdProgress.py │ ├── AntdQRCode.py │ ├── AntdRadioGroup.py │ ├── AntdRate.py │ ├── AntdResult.py │ ├── AntdRibbon.py │ ├── AntdRow.py │ ├── AntdSegmented.py │ ├── AntdSegmentedColoring.py │ ├── AntdSelect.py │ ├── AntdSider.py │ ├── AntdSkeleton.py │ ├── AntdSkeletonAvatar.py │ ├── AntdSkeletonButton.py │ ├── AntdSkeletonImage.py │ ├── AntdSkeletonInput.py │ ├── AntdSlider.py │ ├── AntdSpace.py │ ├── AntdSpin.py │ ├── AntdSplitter.py │ ├── AntdSpoiler.py │ ├── AntdStatistic.py │ ├── AntdSteps.py │ ├── AntdSwitch.py │ ├── AntdTable.py │ ├── AntdTabs.py │ ├── AntdTag.py │ ├── AntdText.py │ ├── AntdTimePicker.py │ ├── AntdTimeRangePicker.py │ ├── AntdTimeline.py │ ├── AntdTitle.py │ ├── AntdTooltip.py │ ├── AntdTour.py │ ├── AntdTransfer.py │ ├── AntdTree.py │ ├── AntdTreeSelect.py │ ├── AntdUpload.py │ ├── AntdWatermark.py │ ├── Fragment.py │ ├── __init__.py │ ├── _icons.py │ ├── _imports_.py │ └── alias.py ├── legacy_tests/ │ ├── dash3.0tests/ │ │ ├── AntdQRCode组件loading状态重构/ │ │ │ └── test.py │ │ ├── AntdTable函数式改造/ │ │ │ └── test.py │ │ ├── _dashprivate_layout改动测试/ │ │ │ └── test.py │ │ ├── loading_state改动测试/ │ │ │ └── test.py │ │ ├── 函数式组件默认值重构/ │ │ │ └── test.py │ │ ├── 加载动画类组件重构测试/ │ │ │ └── test.py │ │ └── 组件属性基础持久化重构测试/ │ │ └── test.py │ ├── dataDisplay/ │ │ ├── AntdAccordion/ │ │ │ ├── feat_size.py │ │ │ └── feat_styles.py │ │ ├── AntdCard/ │ │ │ └── refactor_delete_props.py │ │ ├── AntdCarousel/ │ │ │ └── feat_auto_play_dot_duration.py │ │ ├── AntdCollapse/ │ │ │ ├── feat_size.py │ │ │ └── feat_styles.py │ │ ├── AntdCountdown/ │ │ │ ├── feat_finish_event.py │ │ │ └── refactor_to_timer.py │ │ ├── AntdCountup/ │ │ │ └── refactor_to_timer.py │ │ ├── AntdDescriptions/ │ │ │ └── feat_span_filled.py │ │ ├── AntdImage/ │ │ │ └── debug_preview_toolbar.py │ │ ├── AntdSegmented/ │ │ │ ├── feat_shape.py │ │ │ ├── feat_simple_options.py │ │ │ └── feat_vertical.py │ │ ├── AntdTable/ │ │ │ ├── feat_button_mode_like_dcc_link.py │ │ │ ├── feat_button_mode_refactor.py │ │ │ ├── feat_button_mode_tooltip.py │ │ │ ├── feat_columns_fixed_bool.py │ │ │ ├── feat_columns_min_width.py │ │ │ ├── feat_columns_sort_order.py │ │ │ ├── feat_editable_disabled_keys.py │ │ │ ├── feat_header_align.py │ │ │ ├── feat_link_mode_like_dcc_link.py │ │ │ ├── feat_loading.py │ │ │ ├── feat_mini_chart_color.py │ │ │ ├── feat_row_class_name.py │ │ │ ├── feat_row_class_name_func.py │ │ │ ├── feat_select_mode_show_search.py │ │ │ ├── feat_sticky_header.py │ │ │ ├── feat_table_scroll.py │ │ │ ├── feat_tag_mode_tooltip.py │ │ │ ├── feat_title_popover_nodes.py │ │ │ ├── fix_context_locale.py │ │ │ ├── fix_field_bool.py │ │ │ ├── fix_max_width_height_ghost_row.py │ │ │ ├── fix_nested_editable.py │ │ │ ├── fix_select_with_editable.py │ │ │ ├── fix_server_side_mode_filter_search.py │ │ │ ├── fix_summary.py │ │ │ ├── fix_summary_multi_level_header.py │ │ │ ├── fix_zero_value_filter.py │ │ │ ├── perf_button_mode_auto_wrap.py │ │ │ ├── perf_editable_column_format_constrait_message.py │ │ │ ├── refactor_mini_progress_mode.py │ │ │ └── rollback_title_popover_info.py │ │ ├── AntdTabs/ │ │ │ ├── feat_item_icon.py │ │ │ ├── feat_placeholder.py │ │ │ └── feat_tab_bar_style.py │ │ ├── AntdTree/ │ │ │ └── feat_async_data_load.py │ │ └── descriptions/ │ │ └── AntdDescriptions/ │ │ └── feat_extra.py │ ├── dataEntry/ │ │ ├── AntdCalendar/ │ │ │ └── feat_custom_cells.py │ │ ├── AntdCascader/ │ │ │ ├── feat_prefix.py │ │ │ ├── feat_suffix_icon.py │ │ │ └── fix_read_only.py │ │ ├── AntdDatePicker/ │ │ │ ├── feat_custom_cells.py │ │ │ ├── feat_picker_value.py │ │ │ ├── feat_prefix.py │ │ │ └── feat_suffix_icon.py │ │ ├── AntdDateRangePicker/ │ │ │ ├── feat_custom_cells.py │ │ │ ├── feat_picker_value.py │ │ │ ├── feat_prefix.py │ │ │ └── feat_suffix_icon.py │ │ ├── AntdForm/ │ │ │ ├── feat_batch_control_tooltips.py │ │ │ ├── feat_optional_batch_control.py │ │ │ └── fix_checkbox.py │ │ ├── AntdRadioGroup/ │ │ │ └── feat_block.py │ │ ├── AntdSelect/ │ │ │ ├── feat_locale_ru.py │ │ │ ├── feat_max_count.py │ │ │ ├── feat_prefix.py │ │ │ ├── feat_show_search.py │ │ │ ├── feat_suffix_icon.py │ │ │ ├── fix_read_only.py │ │ │ └── fix_read_only_with_allow_clear.py │ │ ├── AntdSlider/ │ │ │ └── feat_range_editable.py │ │ ├── AntdTimePicker/ │ │ │ ├── feat_prefix.py │ │ │ └── feat_suffix_icon.py │ │ ├── AntdTimeRangePicker/ │ │ │ ├── feat_prefix.py │ │ │ └── feat_suffix_icon.py │ │ ├── AntdTreeSelect/ │ │ │ ├── feat_async_data_load.py │ │ │ ├── feat_max_count.py │ │ │ ├── feat_prefix.py │ │ │ └── fix_read_only.py │ │ └── AntdUpload/ │ │ ├── feat_pastable.py │ │ └── fix_follow_theme.py │ ├── feat_variant_underlined.py │ ├── feedback/ │ │ ├── AntdAlert/ │ │ │ └── feat_icon.py │ │ ├── AntdMessage/ │ │ │ └── fix_follow_config_provider.py │ │ ├── AntdModal/ │ │ │ ├── feat_force_render.py │ │ │ ├── feat_loading_title.py │ │ │ ├── feat_prevent_close.py │ │ │ └── feat_responsive_width.py │ │ ├── AntdNotification/ │ │ │ ├── feat_component_content.py │ │ │ ├── feat_number_of_stack.py │ │ │ ├── feat_show_progress.py │ │ │ └── fix_follow_config_provider.py │ │ ├── AntdPopupCard/ │ │ │ └── feat_force_render.py │ │ ├── AntdProgress/ │ │ │ ├── feat_percent_position.py │ │ │ ├── perf_size.py │ │ │ ├── perf_steps.py │ │ │ └── perf_stroke_color.py │ │ ├── AntdResult/ │ │ │ └── feat_extra.py │ │ └── AntdSkeleton/ │ │ └── fix_dash3.py │ ├── general/ │ │ ├── AntdButton/ │ │ │ ├── feat_color_and_variant.py │ │ │ └── feat_preset_color.py │ │ ├── AntdFloatButtonGroup/ │ │ │ ├── feat_placement.py │ │ │ └── feat_tooltip.py │ │ └── AntdIcon/ │ │ └── feat_iconfont.py │ ├── layout/ │ │ ├── AntdCenter/ │ │ │ └── feat_use_token.py │ │ ├── AntdDivider/ │ │ │ ├── feat_plain.py │ │ │ └── feat_size.py │ │ └── AntdSplitter/ │ │ ├── feat_AntdSplitter.py │ │ ├── feat_lazy.py │ │ └── refactor.py │ ├── navigation/ │ │ ├── AntdAnchor/ │ │ │ ├── feat_current_anchor.py │ │ │ ├── feat_direction.py │ │ │ └── feat_replace.py │ │ ├── AntdBreadcrumb/ │ │ │ ├── feat_menu_item_event.py │ │ │ └── refactor_items.py │ │ ├── AntdDropdown/ │ │ │ ├── feat_extra.py │ │ │ └── test_cascading_dropdown.py │ │ ├── AntdMenu/ │ │ │ ├── feat_currentItem.py │ │ │ ├── feat_currentItemPath.py │ │ │ ├── feat_currentKeyPath.py │ │ │ ├── feat_custom_icon.py │ │ │ ├── feat_expandIcon.py │ │ │ ├── feat_triggerSubMenuAction.py │ │ │ ├── fix_onlyExpandCurrentSubMenu.py │ │ │ └── fix_with_sider.py │ │ └── AntdPagination/ │ │ └── feat_align.py │ └── other/ │ ├── AntdAffix/ │ │ └── feat_listen_affixed.py │ ├── AntdBackTop/ │ │ └── refactor.py │ ├── AntdConfigProvider/ │ │ └── feat_use_css.py │ ├── AntdCopyText/ │ │ ├── feat_copy_table.py │ │ └── feat_tooltips.py │ ├── AntdHappyProvider/ │ │ └── feat_component.py │ └── Fragment/ │ └── feat_use_token.py ├── package.json ├── pytest.ini ├── requirements.txt ├── ruff.toml ├── setup.py ├── src/ │ └── lib/ │ ├── components/ │ │ ├── dataDisplay/ │ │ │ ├── AntdAccordion.react.js │ │ │ ├── AntdAvatar.react.js │ │ │ ├── AntdAvatarGroup.react.js │ │ │ ├── AntdBadge.react.js │ │ │ ├── AntdCarousel.react.js │ │ │ ├── AntdCheckableTag.react.js │ │ │ ├── AntdCollapse.react.js │ │ │ ├── AntdComment.react.js │ │ │ ├── AntdCountdown.react.js │ │ │ ├── AntdCountup.react.js │ │ │ ├── AntdEmpty.react.js │ │ │ ├── AntdImage.react.js │ │ │ ├── AntdImageGroup.react.js │ │ │ ├── AntdPopover.react.js │ │ │ ├── AntdQRCode.react.js │ │ │ ├── AntdRibbon.react.js │ │ │ ├── AntdSegmented.react.js │ │ │ ├── AntdSpoiler.react.js │ │ │ ├── AntdStatistic.react.js │ │ │ ├── AntdTable.react.js │ │ │ ├── AntdTabs.react.js │ │ │ ├── AntdTag.react.js │ │ │ ├── AntdTimeline.react.js │ │ │ ├── AntdTooltip.react.js │ │ │ ├── AntdTree.react.js │ │ │ ├── card/ │ │ │ │ ├── AntdCard.react.js │ │ │ │ ├── AntdCardGrid.react.js │ │ │ │ └── AntdCardMeta.react.js │ │ │ └── descriptions/ │ │ │ ├── AntdDescriptionItem.react.js │ │ │ └── AntdDescriptions.react.js │ │ ├── dataEntry/ │ │ │ ├── AntdCalendar.react.js │ │ │ ├── AntdCascader.react.js │ │ │ ├── AntdCheckbox.react.js │ │ │ ├── AntdCheckboxGroup.react.js │ │ │ ├── AntdColorPicker.react.js │ │ │ ├── AntdDatePicker.react.js │ │ │ ├── AntdDateRangePicker.react.js │ │ │ ├── AntdInput.react.js │ │ │ ├── AntdInputNumber.react.js │ │ │ ├── AntdMentions.react.js │ │ │ ├── AntdOTP.react.js │ │ │ ├── AntdRadioGroup.react.js │ │ │ ├── AntdRate.react.js │ │ │ ├── AntdSegmentedColoring.react.js │ │ │ ├── AntdSelect.react.js │ │ │ ├── AntdSlider.react.js │ │ │ ├── AntdSwitch.react.js │ │ │ ├── AntdTimePicker.react.js │ │ │ ├── AntdTimeRangePicker.react.js │ │ │ ├── AntdTransfer.react.js │ │ │ ├── AntdTreeSelect.react.js │ │ │ ├── check-card/ │ │ │ │ ├── AntdCheckCard.react.js │ │ │ │ └── AntdCheckCardGroup.react.js │ │ │ ├── form/ │ │ │ │ ├── AntdForm.react.js │ │ │ │ └── AntdFormItem.react.js │ │ │ └── upload/ │ │ │ ├── AntdDraggerUpload.react.js │ │ │ ├── AntdPictureUpload.react.js │ │ │ └── AntdUpload.react.js │ │ ├── feedback/ │ │ │ ├── AntdAlert.react.js │ │ │ ├── AntdDrawer.react.js │ │ │ ├── AntdMessage.react.js │ │ │ ├── AntdModal.react.js │ │ │ ├── AntdNotification.react.js │ │ │ ├── AntdPopconfirm.react.js │ │ │ ├── AntdPopupCard.react.js │ │ │ ├── AntdProgress.react.js │ │ │ ├── AntdResult.react.js │ │ │ ├── AntdSpin.react.js │ │ │ └── skeleton/ │ │ │ ├── AntdCustomSkeleton.react.js │ │ │ ├── AntdSkeleton.react.js │ │ │ ├── AntdSkeletonAvatar.react.js │ │ │ ├── AntdSkeletonButton.react.js │ │ │ ├── AntdSkeletonImage.react.js │ │ │ └── AntdSkeletonInput.react.js │ │ ├── formRender/ │ │ │ └── AntdFormRender.react.js │ │ ├── general/ │ │ │ ├── AntdButton.react.js │ │ │ ├── AntdFloatButton.react.js │ │ │ ├── AntdFloatButtonGroup.react.js │ │ │ ├── AntdIcon.react.js │ │ │ └── typography/ │ │ │ ├── AntdParagraph.react.js │ │ │ ├── AntdText.react.js │ │ │ └── AntdTitle.react.js │ │ ├── icons.react.js │ │ ├── layout/ │ │ │ ├── AntdCenter.react.js │ │ │ ├── AntdCompact.react.js │ │ │ ├── AntdContent.react.js │ │ │ ├── AntdDivider.react.js │ │ │ ├── AntdFlex.react.js │ │ │ ├── AntdFooter.react.js │ │ │ ├── AntdHeader.react.js │ │ │ ├── AntdLayout.react.js │ │ │ ├── AntdSider.react.js │ │ │ ├── AntdSpace.react.js │ │ │ ├── AntdSplitter.react.js │ │ │ └── grid/ │ │ │ ├── AntdCol.react.js │ │ │ └── AntdRow.react.js │ │ ├── locales.react.js │ │ ├── navigation/ │ │ │ ├── AntdAnchor.react.js │ │ │ ├── AntdBreadcrumb.react.js │ │ │ ├── AntdDropdown.react.js │ │ │ ├── AntdMenu.react.js │ │ │ ├── AntdPageHeader.react.js │ │ │ ├── AntdPagination.react.js │ │ │ └── AntdSteps.react.js │ │ ├── other/ │ │ │ ├── AntdAffix.react.js │ │ │ ├── AntdBackTop.react.js │ │ │ ├── AntdConfigProvider.react.js │ │ │ ├── AntdCopyText.react.js │ │ │ ├── AntdHappyProvider.react.js │ │ │ ├── AntdTour.react.js │ │ │ ├── AntdWatermark.react.js │ │ │ └── Fragment.react.js │ │ ├── styles.css │ │ └── utils.js │ ├── contexts/ │ │ ├── FormContext.js │ │ ├── FormItemContext.js │ │ └── PropsContext.js │ ├── fragments/ │ │ ├── AntdTable.react.js │ │ ├── dataDisplay/ │ │ │ ├── AntdAccordion.react.js │ │ │ ├── AntdAvatar.react.js │ │ │ ├── AntdAvatarGroup.react.js │ │ │ ├── AntdBadge.react.js │ │ │ ├── AntdCarousel.react.js │ │ │ ├── AntdCheckableTag.react.js │ │ │ ├── AntdComment.react.js │ │ │ ├── AntdCountdown.react.js │ │ │ ├── AntdCountup.react.js │ │ │ ├── AntdEmpty.react.js │ │ │ ├── AntdImage.react.js │ │ │ ├── AntdImageGroup.react.js │ │ │ ├── AntdPopover.react.js │ │ │ ├── AntdQRCode.react.js │ │ │ ├── AntdRibbon.react.js │ │ │ ├── AntdSegmented.react.js │ │ │ ├── AntdSpoiler.react.js │ │ │ ├── AntdTabs.react.js │ │ │ ├── AntdTag.react.js │ │ │ ├── AntdTimeline.react.js │ │ │ ├── AntdTooltip.react.js │ │ │ ├── AntdTree.react.js │ │ │ ├── card/ │ │ │ │ ├── AntdCard.react.js │ │ │ │ ├── AntdCardGrid.react.js │ │ │ │ └── AntdCardMeta.react.js │ │ │ └── descriptions/ │ │ │ ├── AntdDescriptionItem.react.js │ │ │ └── AntdDescriptions.react.js │ │ ├── dataEntry/ │ │ │ ├── AntdCalendar.react.js │ │ │ ├── AntdCascader.react.js │ │ │ ├── AntdCheckbox.react.js │ │ │ ├── AntdCheckboxGroup.react.js │ │ │ ├── AntdColorPicker.react.js │ │ │ ├── AntdDatePicker.react.js │ │ │ ├── AntdDateRangePicker.react.js │ │ │ ├── AntdInput.react.js │ │ │ ├── AntdInputNumber.react.js │ │ │ ├── AntdMentions.react.js │ │ │ ├── AntdOTP.react.js │ │ │ ├── AntdRadioGroup.react.js │ │ │ ├── AntdRate.react.js │ │ │ ├── AntdSegmentedColoring.react.js │ │ │ ├── AntdSelect.react.js │ │ │ ├── AntdSlider.react.js │ │ │ ├── AntdSwitch.react.js │ │ │ ├── AntdTimePicker.react.js │ │ │ ├── AntdTimeRangePicker.react.js │ │ │ ├── AntdTransfer.react.js │ │ │ ├── AntdTreeSelect.react.js │ │ │ ├── check-card/ │ │ │ │ ├── AntdCheckCard.react.js │ │ │ │ └── AntdCheckCardGroup.react.js │ │ │ └── form/ │ │ │ ├── AntdForm.react.js │ │ │ └── AntdFormItem.react.js │ │ ├── formRender/ │ │ │ └── AntdFormRender.react.js │ │ └── upload/ │ │ ├── AntdDraggerUpload.react.js │ │ ├── AntdPictureUpload.react.js │ │ └── AntdUpload.react.js │ ├── hooks/ │ │ ├── useCss.js │ │ └── useStickyOffset.js │ ├── index.js │ ├── internal_components/ │ │ └── UtilsLink.react.js │ └── store/ │ └── formStore.js ├── tests/ │ ├── __init__.py │ ├── requirements.txt │ ├── test_basic_usage.py │ └── test_locale_french.py ├── usage.py ├── webpack.config.js └── webpack.serve.config.js