bootstack 0.4.2__tar.gz → 0.4.3__tar.gz
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.
- {bootstack-0.4.2/src/bootstack.egg-info → bootstack-0.4.3}/PKG-INFO +1 -1
- {bootstack-0.4.2 → bootstack-0.4.3}/pyproject.toml +2 -2
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/pathentry.py +1 -13
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/slider/rangeslider.py +18 -16
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/slider/slider.py +3 -2
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/textarea/textarea.py +19 -3
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/primitives/optionmenu.py +10 -5
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/codeeditor.py +17 -4
- {bootstack-0.4.2 → bootstack-0.4.3/src/bootstack.egg-info}/PKG-INFO +1 -1
- {bootstack-0.4.2 → bootstack-0.4.3}/LICENSE +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/MANIFEST.in +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/NOTICE +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/README.md +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/setup.cfg +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/__init__.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/__main__.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/_core/__init__.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/_core/capture.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/_core/exceptions.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/_core/images.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/_core/localization.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/_core/mixins/__init__.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/_core/mixins/ttk_state.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/_core/mixins/widget.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/_core/paths.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/_core/signal_binding.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/_core/variables.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/_runtime/__init__.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/_runtime/app.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/_runtime/base_window.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/_runtime/events.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/_runtime/grab.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/_runtime/shortcuts.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/_runtime/tk_patch.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/_runtime/toplevel.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/_runtime/utility.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/_runtime/visual_focus.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/_runtime/wheel.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/_runtime/window_utilities.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/__init__.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/bootstack.ico +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/bootstack.png +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/elements/__init__.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/elements/badge-pill.png +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/elements/badge-square.png +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/elements/button-compact.png +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/elements/button-default.png +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/elements/buttongroup-after-h-compact.png +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/elements/buttongroup-after-h-default.png +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/elements/buttongroup-after-v-compact.png +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/elements/buttongroup-after-v-default.png +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/elements/buttongroup-before-h-compact.png +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/elements/buttongroup-before-h-default.png +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/elements/buttongroup-before-v-compact.png +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/elements/buttongroup-before-v-default.png +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/elements/buttongroup-center-h-compact.png +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/elements/buttongroup-center-h-default.png +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/elements/buttongroup-center-v-compact.png +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/elements/buttongroup-center-v-default.png +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/elements/card.png +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/elements/checkbox-checked.png +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/elements/checkbox-indeterminate.png +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/elements/checkbox-unchecked.png +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/elements/field.png +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/elements/input-addon-compact.png +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/elements/input-addon-default.png +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/elements/input-compact.png +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/elements/input-default.png +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/elements/list-item-separated.png +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/elements/list-item.png +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/elements/listrow-compact.png +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/elements/listrow-default.png +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/elements/manifest.toml +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/elements/menu-item.png +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/elements/navitem-compact.png +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/elements/navitem-default.png +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/elements/progressbar-h-compact.png +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/elements/progressbar-h-default.png +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/elements/progressbar-v-compact.png +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/elements/progressbar-v-default.png +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/elements/radiobutton.png +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/elements/scrollbar-horizontal.png +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/elements/scrollbar-vertical.png +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/elements/slider-handle.png +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/elements/slider-track-h.png +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/elements/slider-track-v.png +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/elements/switch-off.png +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/elements/switch-on.png +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/elements/tab-h.png +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/elements/tab-v.png +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/icons/bootstrap.ttf +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/icons/glyphmap.json +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/icons/icon_metrics.json +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/ar/LC_MESSAGES/bootstack.mo +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/ar/LC_MESSAGES/bootstack.po +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/bg/LC_MESSAGES/bootstack.mo +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/bg/LC_MESSAGES/bootstack.po +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/cs/LC_MESSAGES/bootstack.mo +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/cs/LC_MESSAGES/bootstack.po +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/da/LC_MESSAGES/bootstack.mo +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/da/LC_MESSAGES/bootstack.po +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/de/LC_MESSAGES/bootstack.mo +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/de/LC_MESSAGES/bootstack.po +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/en/LC_MESSAGES/bootstack.mo +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/en/LC_MESSAGES/bootstack.po +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/es/LC_MESSAGES/bootstack.mo +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/es/LC_MESSAGES/bootstack.po +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/fr/LC_MESSAGES/bootstack.mo +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/fr/LC_MESSAGES/bootstack.po +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/he/LC_MESSAGES/bootstack.mo +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/he/LC_MESSAGES/bootstack.po +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/hi/LC_MESSAGES/bootstack.mo +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/hi/LC_MESSAGES/bootstack.po +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/it/LC_MESSAGES/bootstack.mo +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/it/LC_MESSAGES/bootstack.po +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/ja/LC_MESSAGES/bootstack.mo +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/ja/LC_MESSAGES/bootstack.po +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/ko/LC_MESSAGES/bootstack.mo +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/ko/LC_MESSAGES/bootstack.po +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/nb/LC_MESSAGES/bootstack.mo +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/nb/LC_MESSAGES/bootstack.po +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/nl/LC_MESSAGES/bootstack.mo +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/nl/LC_MESSAGES/bootstack.po +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/pl/LC_MESSAGES/bootstack.mo +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/pl/LC_MESSAGES/bootstack.po +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/pt/LC_MESSAGES/bootstack.mo +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/pt/LC_MESSAGES/bootstack.po +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/pt_BR/LC_MESSAGES/bootstack.mo +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/pt_BR/LC_MESSAGES/bootstack.po +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/sl/LC_MESSAGES/bootstack.mo +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/sl/LC_MESSAGES/bootstack.po +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/sv/LC_MESSAGES/bootstack.mo +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/sv/LC_MESSAGES/bootstack.po +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/tr/LC_MESSAGES/bootstack.mo +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/tr/LC_MESSAGES/bootstack.po +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/zh_CN/LC_MESSAGES/bootstack.mo +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/zh_CN/LC_MESSAGES/bootstack.po +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/zh_TW/LC_MESSAGES/bootstack.mo +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/zh_TW/LC_MESSAGES/bootstack.po +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/cli/__init__.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/cli/__main__.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/cli/add.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/cli/appicon.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/cli/build.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/cli/config.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/cli/demo.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/cli/dev.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/cli/doctor.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/cli/icons.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/cli/promote.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/cli/pyinstaller.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/cli/run.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/cli/start.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/cli/templates/__init__.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/clipboard.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/constants.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/data/README.md +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/data/__init__.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/data/_observable.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/data/base.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/data/file_source.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/data/memory_source.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/data/query.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/data/readers.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/data/sqlite_source.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/data/types.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/data/writers.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/dev/__init__.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/dev/_capture.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/dev/_env.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/dev/_registry.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/dev/_reloader.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/dev/_reset.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/dev/_watcher.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/dialogs/__init__.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/dialogs/_impl/__init__.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/dialogs/_impl/colorchooser.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/dialogs/_impl/datedialog.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/dialogs/_impl/dialog.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/dialogs/_impl/filterdialog.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/dialogs/_impl/fontdialog.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/dialogs/_impl/formdialog.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/dialogs/_impl/message.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/dialogs/_impl/query.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/errors.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/events/__init__.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/events/_event.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/events/_payloads.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/events/_subscription.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/i18n/README.md +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/i18n/__init__.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/i18n/catalog.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/i18n/intl_format.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/i18n/msgcat.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/i18n/specs.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/images.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/py.typed +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/scheduling/__init__.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/scheduling/_schedule.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/shortcuts.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/signals/README.md +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/signals/__init__.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/signals/integration.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/signals/signal.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/signals/types.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/store.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/streams/__init__.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/streams/_stream.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/style/__init__.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/style/builders/__init__.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/style/builders/badge.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/style/builders/button.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/style/builders/buttongroup.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/style/builders/calendar.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/style/builders/checkbutton.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/style/builders/combobox.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/style/builders/contextmenu.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/style/builders/entry.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/style/builders/expander.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/style/builders/field.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/style/builders/frame.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/style/builders/label.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/style/builders/labelframe.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/style/builders/listview.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/style/builders/menubar.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/style/builders/menubutton.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/style/builders/panedwindow.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/style/builders/progressbar.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/style/builders/radiobutton.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/style/builders/scale.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/style/builders/scrollbar.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/style/builders/separator.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/style/builders/sidenav.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/style/builders/sizegrip.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/style/builders/spinbox.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/style/builders/switch.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/style/builders/tabitem.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/style/builders/togglegroup.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/style/builders/toolbutton.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/style/builders/tooltip.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/style/builders/treeview.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/style/builders/utils.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/style/builders_tk/__init__.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/style/builders_tk/defaults.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/style/element.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/style/fonts.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/style/style.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/style/style_builder_base.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/style/style_builder_mixed.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/style/style_builder_tk.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/style/style_builder_ttk.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/style/style_resolver.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/style/theme.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/style/theme_provider.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/style/themes/__init__.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/style/tk_patch.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/style/token_maps.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/style/types.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/style/typography.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/style/utility.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/types.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/validation/__init__.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/validation/types.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/validation/validation_result.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/validation/validation_rules.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/__init__.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_core/__init__.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_core/app_config.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_core/base.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_core/choices.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_core/container.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_core/context.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_core/events.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_core/field_mixin.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_core/icon_image_props.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_core/image_binding.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_core/kwargs.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_core/navmodel.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_core/options.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_core/selection_group.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_core/window_controls.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_core/window_menu.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/__init__.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/_internal/__init__.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/_internal/wrapper_base.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/_parts/__init__.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/_parts/numberentry_part.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/_parts/spinnerentry_part.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/_parts/textentry_part.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/__init__.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/_dateutils.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/_image_fit.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/accordion.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/avatar.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/buttongroup.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/calendar.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/carousel.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/chart.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/compositeframe.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/contextmenu.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/dateentry.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/dropdownbutton.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/expander.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/field.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/form.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/gallery.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/list/__init__.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/list/listitem.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/list/listview.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/menu/__init__.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/menu/model.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/menu/render_native.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/menu/render_themed.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/meter.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/numericentry.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/pagestack.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/passwordentry.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/picture.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/radiogroup.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/scrolledtext.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/scrolledtext.pyi +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/scrollview.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/selectbox.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/shell/__init__.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/shell/content_host.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/shell/layout.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/shell/nav_panel.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/shell/providers.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/shell/rail.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/shell/shell.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/shell/workspace.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/sidenav/__init__.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/sidenav/header.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/sidenav/separator.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/slider/__init__.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/slider/_shared.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/spinnerentry.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/tableview/__init__.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/tableview/tableview.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/tableview/types.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/tabs/__init__.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/tabs/tabitem.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/tabs/tabs.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/tabs/tabview.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/textarea/__init__.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/textarea/change.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/textarea/codeeditor.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/textarea/core.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/textarea/decoration.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/textarea/diff.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/textarea/extensions/__init__.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/textarea/extensions/bracket_matcher.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/textarea/extensions/indent_guides.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/textarea/extensions/line_numbers.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/textarea/extensions/pygments_highlighter.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/textarea/extensions/smart_indent.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/textarea/filter.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/textarea/redirector.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/textarea/search_overlay.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/textarea/sidebar.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/textarea/style_registry.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/textarea/undo.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/textentry.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/timeentry.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/toast.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/toast_stack.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/togglegroup.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/toolbar.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/tooltip.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/tree/__init__.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/tree/source_binding.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/tree/treeitem.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/tree/treenode.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/tree/treeview.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/mixins/__init__.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/mixins/configure_mixin.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/mixins/entry_mixin.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/mixins/font_mixin.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/mixins/icon_mixin.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/mixins/localization_mixin.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/mixins/signal_mixin.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/mixins/validation_mixin.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/primitives/__init__.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/primitives/_menubutton.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/primitives/badge.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/primitives/button.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/primitives/card.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/primitives/checkbutton.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/primitives/checktoggle.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/primitives/combobox.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/primitives/entry.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/primitives/flexframe.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/primitives/frame.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/primitives/gridframe.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/primitives/label.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/primitives/labelframe.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/primitives/packframe.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/primitives/panedwindow.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/primitives/progressbar.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/primitives/radiobutton.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/primitives/radiotoggle.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/primitives/scrollbar.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/primitives/separator.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/primitives/sizegrip.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/primitives/spinbox.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/primitives/switch.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/primitives/treeview.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/app.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/appshell.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/avatar.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/boolean_controls.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/button.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/buttongroup.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/calendar.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/card.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/carousel.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/chart.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/contextmenu.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/datatable.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/datefield.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/divider.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/expander.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/form.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/gallery.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/gauge.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/grid.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/groupbox.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/label.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/listview.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/menubutton.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/numberfield.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/pagestack.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/passwordfield.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/pathfield.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/picture.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/progressbar.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/radio_variants.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/radiogroup.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/scrollbar.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/scrollview.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/select.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/selectbutton.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/sidebar_toggle.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/sizegrip.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/slider.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/spinbox.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/spinnerfield.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/splash.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/splitview.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/stacks.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/statusbar.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/tabs.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/textarea.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/textfield.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/theme_toggle.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/timefield.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/toast.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/togglegroup.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/toolbar.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/tooltip.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/tree.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/types.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/window.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack.egg-info/SOURCES.txt +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack.egg-info/dependency_links.txt +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack.egg-info/entry_points.txt +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack.egg-info/requires.txt +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack.egg-info/top_level.txt +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/tests/test_dialog_anchor.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/tests/test_events_doc_coverage.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/tests/test_hot_reload.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/tests/test_images.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/tests/test_images_gui.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/tests/test_intl_format.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/tests/test_navmodel.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/tests/test_on_color_contrast.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/tests/test_public_surface.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/tests/test_store.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/tests/test_theme_from_existing.py +0 -0
- {bootstack-0.4.2 → bootstack-0.4.3}/tests/test_validation_rules.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: bootstack
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.3
|
|
4
4
|
Summary: Build desktop GUI apps in pure Python and ship them as a standalone executable — built on Tk, no Tkinter boilerplate.
|
|
5
5
|
Author-email: Israel Dryer <israel.dryer@gmail.com>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "bootstack"
|
|
7
|
-
version = "0.4.
|
|
7
|
+
version = "0.4.3"
|
|
8
8
|
description = "Build desktop GUI apps in pure Python and ship them as a standalone executable — built on Tk, no Tkinter boilerplate."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.12"
|
|
@@ -114,7 +114,7 @@ where = ["src"]
|
|
|
114
114
|
]
|
|
115
115
|
|
|
116
116
|
[tool.bumpversion]
|
|
117
|
-
current_version = "0.4.
|
|
117
|
+
current_version = "0.4.3"
|
|
118
118
|
parse = "(?P<major>\\d+)\\.(?P<minor>\\d+)\\.(?P<patch>\\d+)((?P<pre>a|b|rc)(?P<pre_n>\\d+))?"
|
|
119
119
|
serialize = [
|
|
120
120
|
"{major}.{minor}.{patch}{pre}{pre_n}",
|
|
@@ -5,7 +5,6 @@ from typing import Any, Literal
|
|
|
5
5
|
|
|
6
6
|
from typing_extensions import Unpack
|
|
7
7
|
|
|
8
|
-
from bootstack.events import ChangeEvent
|
|
9
8
|
from bootstack.widgets._impl.primitives.button import Button
|
|
10
9
|
from bootstack.widgets._impl.composites.field import Field, FieldOptions
|
|
11
10
|
from bootstack.widgets._impl.mixins import configure_delegate
|
|
@@ -62,7 +61,6 @@ class PathEntry(Field):
|
|
|
62
61
|
self._default_extension = default_extension
|
|
63
62
|
self._default_filename = default_filename
|
|
64
63
|
self._dialog_result = None
|
|
65
|
-
self._prev_value: str | None = value
|
|
66
64
|
|
|
67
65
|
super().__init__(master=master, label=label, message=message, value=value, **kwargs)
|
|
68
66
|
|
|
@@ -154,15 +152,5 @@ class PathEntry(Field):
|
|
|
154
152
|
display_text = result
|
|
155
153
|
|
|
156
154
|
if result:
|
|
157
|
-
prev_value = self._prev_value
|
|
158
|
-
self._prev_value = display_text
|
|
159
155
|
self.value = display_text
|
|
160
|
-
self.
|
|
161
|
-
'<<Change>>',
|
|
162
|
-
data=ChangeEvent(
|
|
163
|
-
value=display_text,
|
|
164
|
-
prev_value=prev_value,
|
|
165
|
-
text=display_text,
|
|
166
|
-
),
|
|
167
|
-
when="tail"
|
|
168
|
-
)
|
|
156
|
+
self._entry._check_if_changed()
|
{bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/slider/rangeslider.py
RENAMED
|
@@ -716,27 +716,29 @@ class RangeSlider(ConfigureDelegationMixin, tk.Frame):
|
|
|
716
716
|
self._sync()
|
|
717
717
|
lo = self._lo_var.get()
|
|
718
718
|
hi = self._hi_var.get()
|
|
719
|
-
self.
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
719
|
+
if hi != self._prev_hivalue or lo != self._prev_lovalue:
|
|
720
|
+
self.event_generate("<<Change>>", data=RangeSliderEvent(
|
|
721
|
+
low_value=lo,
|
|
722
|
+
high_value=hi,
|
|
723
|
+
prev_low_value=self._prev_lovalue,
|
|
724
|
+
prev_high_value=self._prev_hivalue,
|
|
725
|
+
))
|
|
726
|
+
self._prev_lovalue = lo
|
|
727
|
+
self._prev_hivalue = hi
|
|
727
728
|
|
|
728
729
|
def _on_hi_write(self, *_: Any) -> None:
|
|
729
730
|
self._sync()
|
|
730
731
|
lo = self._lo_var.get()
|
|
731
732
|
hi = self._hi_var.get()
|
|
732
|
-
self.
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
733
|
+
if lo != self._prev_lovalue or hi != self._prev_hivalue:
|
|
734
|
+
self.event_generate("<<Change>>", data=RangeSliderEvent(
|
|
735
|
+
low_value=lo,
|
|
736
|
+
high_value=hi,
|
|
737
|
+
prev_low_value=self._prev_lovalue,
|
|
738
|
+
prev_high_value=self._prev_hivalue,
|
|
739
|
+
))
|
|
740
|
+
self._prev_lovalue = lo
|
|
741
|
+
self._prev_hivalue = hi
|
|
740
742
|
|
|
741
743
|
def _on_map(self) -> None:
|
|
742
744
|
if getattr(self, '_theme_update_pending', False):
|
|
@@ -579,8 +579,9 @@ class Slider(ConfigureDelegationMixin, tk.Frame):
|
|
|
579
579
|
def _on_var_write(self, *_: Any) -> None:
|
|
580
580
|
self._sync()
|
|
581
581
|
val = self._var.get()
|
|
582
|
-
|
|
583
|
-
|
|
582
|
+
if val != self._prev_value:
|
|
583
|
+
self.event_generate("<<Change>>", data=SliderEvent(value=val, prev_value=self._prev_value))
|
|
584
|
+
self._prev_value = val
|
|
584
585
|
|
|
585
586
|
def _mouse_focus_set(self, _event: tk.Event) -> None:
|
|
586
587
|
self._mouse_pressed = True
|
{bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/widgets/_impl/composites/textarea/textarea.py
RENAMED
|
@@ -114,6 +114,9 @@ class TextArea(GridFrame):
|
|
|
114
114
|
self._valid_signal: Signal = Signal(True)
|
|
115
115
|
self._error_signal: Signal = Signal("")
|
|
116
116
|
|
|
117
|
+
self._prev_changed_value = value
|
|
118
|
+
self._prev_input_text = value
|
|
119
|
+
|
|
117
120
|
# ── label (row 0) ─────────────────────────────────────────────────
|
|
118
121
|
if label:
|
|
119
122
|
_lbl_text = f"{label} *" if required else label
|
|
@@ -192,6 +195,7 @@ class TextArea(GridFrame):
|
|
|
192
195
|
self._core._signal_text_sink = lambda text: setattr(self, "value", text)
|
|
193
196
|
if textsignal is not None:
|
|
194
197
|
self._core.bind_signal(textsignal)
|
|
198
|
+
self._prev_input_text = self.value
|
|
195
199
|
|
|
196
200
|
# ── placeholder ───────────────────────────────────────────────────
|
|
197
201
|
self._default_fg = self._core.text.cget("foreground")
|
|
@@ -223,6 +227,7 @@ class TextArea(GridFrame):
|
|
|
223
227
|
# Fire <<Input>> on every edit, <<Changed>> + validation on blur.
|
|
224
228
|
self._core.text.bind("<<Change>>", self._on_core_change, add="+")
|
|
225
229
|
self._core.text.bind("<FocusOut>", self._on_focus_out, add="+")
|
|
230
|
+
self._core.text.bind("<FocusIn>", self._on_focus_in, add="+")
|
|
226
231
|
|
|
227
232
|
# ── constructor callbacks ─────────────────────────────────────────
|
|
228
233
|
if on_input is not None:
|
|
@@ -348,24 +353,35 @@ class TextArea(GridFrame):
|
|
|
348
353
|
|
|
349
354
|
def _on_core_change(self, _event: tk.Event) -> None:
|
|
350
355
|
if not self._showing_placeholder:
|
|
356
|
+
text = self.value
|
|
357
|
+
if text == self._prev_input_text:
|
|
358
|
+
return
|
|
359
|
+
self._prev_input_text = text
|
|
351
360
|
self.event_generate(
|
|
352
361
|
"<<Input>>",
|
|
353
|
-
data=InputEvent(text=
|
|
362
|
+
data=InputEvent(text=text),
|
|
354
363
|
when="tail",
|
|
355
364
|
)
|
|
356
365
|
|
|
357
366
|
def _on_focus_out(self, _event: tk.Event) -> None:
|
|
358
367
|
if self._placeholder_text and not self._core.value:
|
|
359
368
|
self._show_placeholder()
|
|
360
|
-
if not self._showing_placeholder:
|
|
369
|
+
if not self._showing_placeholder and self.value != self._prev_changed_value:
|
|
361
370
|
self.event_generate(
|
|
362
371
|
"<<Changed>>",
|
|
363
|
-
data=ChangeEvent(
|
|
372
|
+
data=ChangeEvent(
|
|
373
|
+
value=self.value,
|
|
374
|
+
text=self.value,
|
|
375
|
+
prev_value=self._prev_changed_value),
|
|
364
376
|
when="tail",
|
|
365
377
|
)
|
|
378
|
+
self._prev_changed_value = self.value
|
|
366
379
|
if self._rules:
|
|
367
380
|
self._run_validation(trigger="blur")
|
|
368
381
|
|
|
382
|
+
def _on_focus_in(self, _event: tk.Event) -> None:
|
|
383
|
+
self._prev_changed_value = self.value
|
|
384
|
+
|
|
369
385
|
# ── public value API ──────────────────────────────────────────────────
|
|
370
386
|
|
|
371
387
|
@property
|
|
@@ -102,9 +102,11 @@ class OptionMenu(MenuButton):
|
|
|
102
102
|
# Store the textvariable if provided, or create a new one. This variable
|
|
103
103
|
# holds the raw VALUE-KEY text (untranslated): it drives the radio
|
|
104
104
|
# highlight, the public value/selection, and <<Change>> in value-space.
|
|
105
|
+
_initial_text = self._resolve_initial_text(value)
|
|
106
|
+
self._prev_value = self._value_by_text.get(_initial_text, _initial_text) if _initial_text else None
|
|
105
107
|
self._textvariable = kwargs.pop('textvariable', None)
|
|
106
108
|
if self._textvariable is None:
|
|
107
|
-
self._textvariable = StringVar(value=
|
|
109
|
+
self._textvariable = StringVar(value=_initial_text)
|
|
108
110
|
|
|
109
111
|
# A separate variable backs the visible button face, holding the
|
|
110
112
|
# (optionally translated) DISPLAY text — decoupled from the value key so
|
|
@@ -208,14 +210,17 @@ class OptionMenu(MenuButton):
|
|
|
208
210
|
|
|
209
211
|
def _on_change(text: str) -> None:
|
|
210
212
|
self._sync_display()
|
|
213
|
+
value = self._value_by_text.get(text, text) if text else None
|
|
211
214
|
self.event_generate(
|
|
212
215
|
'<<Change>>',
|
|
213
|
-
data=ChangeEvent(
|
|
216
|
+
data=ChangeEvent(
|
|
217
|
+
value=value,
|
|
218
|
+
prev_value=self._prev_value,
|
|
219
|
+
text=self._display_text(text)
|
|
220
|
+
)
|
|
214
221
|
)
|
|
222
|
+
self._prev_value = value
|
|
215
223
|
|
|
216
|
-
# Store it here, not at the call site (#476). A caller that discards the
|
|
217
|
-
# return leaves an untracked subscription the guard above can never
|
|
218
|
-
# cancel, and every one of them emits its own <<Change>>.
|
|
219
224
|
self._bind_id = self.textsignal.subscribe(_on_change)
|
|
220
225
|
return self._bind_id
|
|
221
226
|
|
|
@@ -140,21 +140,34 @@ class CodeEditor(PublicWidgetBase):
|
|
|
140
140
|
internal_kwargs["extensions"] = extensions
|
|
141
141
|
|
|
142
142
|
self._internal = _InternalCodeEditor(tk_master, **internal_kwargs)
|
|
143
|
+
self._prev_value = self._internal.value
|
|
144
|
+
self._prev_input_text = self._internal.value
|
|
143
145
|
|
|
144
146
|
# Generate <<CursorMove>> so on_cursor_move() subscribers always work.
|
|
145
147
|
t = self._internal.core.text
|
|
146
148
|
t.bind("<KeyRelease>", lambda e: t.event_generate("<<CursorMove>>"), add="+")
|
|
147
149
|
t.bind("<ButtonRelease-1>", lambda e: t.event_generate("<<CursorMove>>"), add="+")
|
|
148
150
|
|
|
149
|
-
# Re-emit the core's raw <<Change>> (which carries a low-level
|
|
150
|
-
# {"op", "index"} dict) as typed payloads on the public widget, so
|
|
151
|
-
# on_change()/on_input() deliver the editor text — like TextArea.
|
|
152
151
|
def _emit_typed_change(_e: Any = None) -> None:
|
|
153
152
|
text = self._internal.value
|
|
154
|
-
|
|
153
|
+
if text == self._prev_input_text:
|
|
154
|
+
return
|
|
155
|
+
self._prev_input_text = text
|
|
155
156
|
self._internal.event_generate("<<BsInput>>", data=InputEvent(text=text))
|
|
156
157
|
t.bind("<<Change>>", _emit_typed_change, add="+")
|
|
157
158
|
|
|
159
|
+
def _emit_typed_blur(_e: Any = None) -> None:
|
|
160
|
+
text = self._internal.value
|
|
161
|
+
if text != self._prev_value:
|
|
162
|
+
self._internal.event_generate("<<BsChange>>",
|
|
163
|
+
data=ChangeEvent(value=text, text=text, prev_value=self._prev_value))
|
|
164
|
+
self._prev_value = text
|
|
165
|
+
t.bind("<FocusOut>", _emit_typed_blur, add="+")
|
|
166
|
+
|
|
167
|
+
def _on_focus_in(_e: Any = None) -> None:
|
|
168
|
+
self._prev_value = self._internal.value
|
|
169
|
+
t.bind("<FocusIn>", _on_focus_in, add="+")
|
|
170
|
+
|
|
158
171
|
self._attach_to_parent(layout_kw)
|
|
159
172
|
|
|
160
173
|
# ----- Event routing -----
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: bootstack
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.3
|
|
4
4
|
Summary: Build desktop GUI apps in pure Python and ship them as a standalone executable — built on Tk, no Tkinter boilerplate.
|
|
5
5
|
Author-email: Israel Dryer <israel.dryer@gmail.com>
|
|
6
6
|
License-Expression: MIT
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/elements/buttongroup-after-h-compact.png
RENAMED
|
File without changes
|
{bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/elements/buttongroup-after-h-default.png
RENAMED
|
File without changes
|
{bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/elements/buttongroup-after-v-compact.png
RENAMED
|
File without changes
|
{bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/elements/buttongroup-after-v-default.png
RENAMED
|
File without changes
|
{bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/elements/buttongroup-before-h-compact.png
RENAMED
|
File without changes
|
{bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/elements/buttongroup-before-h-default.png
RENAMED
|
File without changes
|
{bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/elements/buttongroup-before-v-compact.png
RENAMED
|
File without changes
|
{bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/elements/buttongroup-before-v-default.png
RENAMED
|
File without changes
|
{bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/elements/buttongroup-center-h-compact.png
RENAMED
|
File without changes
|
{bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/elements/buttongroup-center-h-default.png
RENAMED
|
File without changes
|
{bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/elements/buttongroup-center-v-compact.png
RENAMED
|
File without changes
|
{bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/elements/buttongroup-center-v-default.png
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/elements/checkbox-indeterminate.png
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/ar/LC_MESSAGES/bootstack.mo
RENAMED
|
File without changes
|
{bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/ar/LC_MESSAGES/bootstack.po
RENAMED
|
File without changes
|
{bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/bg/LC_MESSAGES/bootstack.mo
RENAMED
|
File without changes
|
{bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/bg/LC_MESSAGES/bootstack.po
RENAMED
|
File without changes
|
{bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/cs/LC_MESSAGES/bootstack.mo
RENAMED
|
File without changes
|
{bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/cs/LC_MESSAGES/bootstack.po
RENAMED
|
File without changes
|
{bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/da/LC_MESSAGES/bootstack.mo
RENAMED
|
File without changes
|
{bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/da/LC_MESSAGES/bootstack.po
RENAMED
|
File without changes
|
{bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/de/LC_MESSAGES/bootstack.mo
RENAMED
|
File without changes
|
{bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/de/LC_MESSAGES/bootstack.po
RENAMED
|
File without changes
|
{bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/en/LC_MESSAGES/bootstack.mo
RENAMED
|
File without changes
|
{bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/en/LC_MESSAGES/bootstack.po
RENAMED
|
File without changes
|
{bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/es/LC_MESSAGES/bootstack.mo
RENAMED
|
File without changes
|
{bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/es/LC_MESSAGES/bootstack.po
RENAMED
|
File without changes
|
{bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/fr/LC_MESSAGES/bootstack.mo
RENAMED
|
File without changes
|
{bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/fr/LC_MESSAGES/bootstack.po
RENAMED
|
File without changes
|
{bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/he/LC_MESSAGES/bootstack.mo
RENAMED
|
File without changes
|
{bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/he/LC_MESSAGES/bootstack.po
RENAMED
|
File without changes
|
{bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/hi/LC_MESSAGES/bootstack.mo
RENAMED
|
File without changes
|
{bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/hi/LC_MESSAGES/bootstack.po
RENAMED
|
File without changes
|
{bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/it/LC_MESSAGES/bootstack.mo
RENAMED
|
File without changes
|
{bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/it/LC_MESSAGES/bootstack.po
RENAMED
|
File without changes
|
{bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/ja/LC_MESSAGES/bootstack.mo
RENAMED
|
File without changes
|
{bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/ja/LC_MESSAGES/bootstack.po
RENAMED
|
File without changes
|
{bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/ko/LC_MESSAGES/bootstack.mo
RENAMED
|
File without changes
|
{bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/ko/LC_MESSAGES/bootstack.po
RENAMED
|
File without changes
|
{bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/nb/LC_MESSAGES/bootstack.mo
RENAMED
|
File without changes
|
{bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/nb/LC_MESSAGES/bootstack.po
RENAMED
|
File without changes
|
{bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/nl/LC_MESSAGES/bootstack.mo
RENAMED
|
File without changes
|
{bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/nl/LC_MESSAGES/bootstack.po
RENAMED
|
File without changes
|
{bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/pl/LC_MESSAGES/bootstack.mo
RENAMED
|
File without changes
|
{bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/pl/LC_MESSAGES/bootstack.po
RENAMED
|
File without changes
|
{bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/pt/LC_MESSAGES/bootstack.mo
RENAMED
|
File without changes
|
{bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/pt/LC_MESSAGES/bootstack.po
RENAMED
|
File without changes
|
{bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/pt_BR/LC_MESSAGES/bootstack.mo
RENAMED
|
File without changes
|
{bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/pt_BR/LC_MESSAGES/bootstack.po
RENAMED
|
File without changes
|
{bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/sl/LC_MESSAGES/bootstack.mo
RENAMED
|
File without changes
|
{bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/sl/LC_MESSAGES/bootstack.po
RENAMED
|
File without changes
|
{bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/sv/LC_MESSAGES/bootstack.mo
RENAMED
|
File without changes
|
{bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/sv/LC_MESSAGES/bootstack.po
RENAMED
|
File without changes
|
{bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/tr/LC_MESSAGES/bootstack.mo
RENAMED
|
File without changes
|
{bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/tr/LC_MESSAGES/bootstack.po
RENAMED
|
File without changes
|
{bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/zh_CN/LC_MESSAGES/bootstack.mo
RENAMED
|
File without changes
|
{bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/zh_CN/LC_MESSAGES/bootstack.po
RENAMED
|
File without changes
|
{bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/zh_TW/LC_MESSAGES/bootstack.mo
RENAMED
|
File without changes
|
{bootstack-0.4.2 → bootstack-0.4.3}/src/bootstack/assets/locales/zh_TW/LC_MESSAGES/bootstack.po
RENAMED
|
File without changes
|