bootstack 0.1.0a1__py3-none-any.whl
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/__init__.py +249 -0
- bootstack/__main__.py +5 -0
- bootstack/api/__init__.py +127 -0
- bootstack/api/app.py +30 -0
- bootstack/api/constants.py +3 -0
- bootstack/api/data.py +23 -0
- bootstack/api/dialogs.py +44 -0
- bootstack/api/i18n.py +17 -0
- bootstack/api/localization.py +16 -0
- bootstack/api/menu.py +7 -0
- bootstack/api/style.py +23 -0
- bootstack/api/utils.py +24 -0
- bootstack/api/widgets.py +137 -0
- bootstack/assets/__init__.py +24 -0
- bootstack/assets/bootstack-transparent.png +0 -0
- bootstack/assets/bootstack.ico +0 -0
- bootstack/assets/bootstack.png +0 -0
- bootstack/assets/elements/__init__.py +0 -0
- bootstack/assets/elements/badge-pill.png +0 -0
- bootstack/assets/elements/badge-square.png +0 -0
- bootstack/assets/elements/border.png +0 -0
- bootstack/assets/elements/button-compact.png +0 -0
- bootstack/assets/elements/button-default.png +0 -0
- bootstack/assets/elements/button-group-horizontal-after-compact.png +0 -0
- bootstack/assets/elements/button-group-horizontal-after-default.png +0 -0
- bootstack/assets/elements/button-group-horizontal-before-compact.png +0 -0
- bootstack/assets/elements/button-group-horizontal-before-default.png +0 -0
- bootstack/assets/elements/button-group-horizontal-center-compact.png +0 -0
- bootstack/assets/elements/button-group-horizontal-center-default.png +0 -0
- bootstack/assets/elements/button-group-vertical-after-compact.png +0 -0
- bootstack/assets/elements/button-group-vertical-after-default.png +0 -0
- bootstack/assets/elements/button-group-vertical-before-compact.png +0 -0
- bootstack/assets/elements/button-group-vertical-before-default.png +0 -0
- bootstack/assets/elements/button-group-vertical-center-compact.png +0 -0
- bootstack/assets/elements/button-group-vertical-center-default.png +0 -0
- bootstack/assets/elements/checkbox-checked.png +0 -0
- bootstack/assets/elements/checkbox-indeterminate.png +0 -0
- bootstack/assets/elements/checkbox-unchecked.png +0 -0
- bootstack/assets/elements/field.png +0 -0
- bootstack/assets/elements/input-after-compact.png +0 -0
- bootstack/assets/elements/input-after-default.png +0 -0
- bootstack/assets/elements/input-before-compact.png +0 -0
- bootstack/assets/elements/input-before-default.png +0 -0
- bootstack/assets/elements/input-compact.png +0 -0
- bootstack/assets/elements/input-default.png +0 -0
- bootstack/assets/elements/list-item-separated.png +0 -0
- bootstack/assets/elements/list-item.png +0 -0
- bootstack/assets/elements/manifest.toml +480 -0
- bootstack/assets/elements/menu-item.png +0 -0
- bootstack/assets/elements/nav-button-compact.png +0 -0
- bootstack/assets/elements/nav-button-default.png +0 -0
- bootstack/assets/elements/nav-icon-button-compact.png +0 -0
- bootstack/assets/elements/nav-icon-button-default.png +0 -0
- bootstack/assets/elements/notebook-client-border.png +0 -0
- bootstack/assets/elements/notebook-tab-active.png +0 -0
- bootstack/assets/elements/notebook-tab-bar.png +0 -0
- bootstack/assets/elements/notebook-tab-normal.png +0 -0
- bootstack/assets/elements/notebook-tab-pill.png +0 -0
- bootstack/assets/elements/progress-bar-horizontal-striped.png +0 -0
- bootstack/assets/elements/progress-bar-solid.png +0 -0
- bootstack/assets/elements/progress-bar-thin.png +0 -0
- bootstack/assets/elements/progress-bar-vertical-striped.png +0 -0
- bootstack/assets/elements/radio-selected.png +0 -0
- bootstack/assets/elements/radio-unselected.png +0 -0
- bootstack/assets/elements/scrollbar-horizontal.png +0 -0
- bootstack/assets/elements/scrollbar-vertical.png +0 -0
- bootstack/assets/elements/slider-handle-focus.png +0 -0
- bootstack/assets/elements/slider-handle.png +0 -0
- bootstack/assets/elements/slider-track-horizontal.png +0 -0
- bootstack/assets/elements/slider-track-vertical.png +0 -0
- bootstack/assets/elements/switch-off.png +0 -0
- bootstack/assets/elements/switch-on.png +0 -0
- bootstack/assets/elements/tabs-bar-horizontal.png +0 -0
- bootstack/assets/elements/tabs-bar-vertical.png +0 -0
- bootstack/assets/elements/tabs-pill.png +0 -0
- bootstack/assets/locales/ar/LC_MESSAGES/bootstack.mo +0 -0
- bootstack/assets/locales/ar/LC_MESSAGES/bootstack.po +853 -0
- bootstack/assets/locales/bg/LC_MESSAGES/bootstack.po +875 -0
- bootstack/assets/locales/cs/LC_MESSAGES/bootstack.mo +0 -0
- bootstack/assets/locales/cs/LC_MESSAGES/bootstack.po +853 -0
- bootstack/assets/locales/da/LC_MESSAGES/bootstack.mo +0 -0
- bootstack/assets/locales/da/LC_MESSAGES/bootstack.po +853 -0
- bootstack/assets/locales/de/LC_MESSAGES/bootstack.mo +0 -0
- bootstack/assets/locales/de/LC_MESSAGES/bootstack.po +853 -0
- bootstack/assets/locales/en/LC_MESSAGES/bootstack.mo +0 -0
- bootstack/assets/locales/en/LC_MESSAGES/bootstack.po +875 -0
- bootstack/assets/locales/es/LC_MESSAGES/bootstack.mo +0 -0
- bootstack/assets/locales/es/LC_MESSAGES/bootstack.po +853 -0
- bootstack/assets/locales/fr/LC_MESSAGES/bootstack.mo +0 -0
- bootstack/assets/locales/fr/LC_MESSAGES/bootstack.po +853 -0
- bootstack/assets/locales/he/LC_MESSAGES/bootstack.mo +0 -0
- bootstack/assets/locales/he/LC_MESSAGES/bootstack.po +851 -0
- bootstack/assets/locales/hi/LC_MESSAGES/bootstack.mo +0 -0
- bootstack/assets/locales/hi/LC_MESSAGES/bootstack.po +842 -0
- bootstack/assets/locales/it/LC_MESSAGES/bootstack.mo +0 -0
- bootstack/assets/locales/it/LC_MESSAGES/bootstack.po +841 -0
- bootstack/assets/locales/ja/LC_MESSAGES/bootstack.mo +0 -0
- bootstack/assets/locales/ja/LC_MESSAGES/bootstack.po +914 -0
- bootstack/assets/locales/ko/LC_MESSAGES/bootstack.mo +0 -0
- bootstack/assets/locales/ko/LC_MESSAGES/bootstack.po +842 -0
- bootstack/assets/locales/nb/LC_MESSAGES/bootstack.mo +0 -0
- bootstack/assets/locales/nb/LC_MESSAGES/bootstack.po +841 -0
- bootstack/assets/locales/nl/LC_MESSAGES/bootstack.mo +0 -0
- bootstack/assets/locales/nl/LC_MESSAGES/bootstack.po +841 -0
- bootstack/assets/locales/pl/LC_MESSAGES/bootstack.mo +0 -0
- bootstack/assets/locales/pl/LC_MESSAGES/bootstack.po +842 -0
- bootstack/assets/locales/pt/LC_MESSAGES/bootstack.mo +0 -0
- bootstack/assets/locales/pt/LC_MESSAGES/bootstack.po +842 -0
- bootstack/assets/locales/pt_BR/LC_MESSAGES/bootstack.mo +0 -0
- bootstack/assets/locales/pt_BR/LC_MESSAGES/bootstack.po +842 -0
- bootstack/assets/locales/sl/LC_MESSAGES/bootstack.mo +0 -0
- bootstack/assets/locales/sl/LC_MESSAGES/bootstack.po +842 -0
- bootstack/assets/locales/sv/LC_MESSAGES/bootstack.mo +0 -0
- bootstack/assets/locales/sv/LC_MESSAGES/bootstack.po +842 -0
- bootstack/assets/locales/tr/LC_MESSAGES/bootstack.mo +0 -0
- bootstack/assets/locales/tr/LC_MESSAGES/bootstack.po +842 -0
- bootstack/assets/locales/zh_CN/LC_MESSAGES/bootstack.mo +0 -0
- bootstack/assets/locales/zh_CN/LC_MESSAGES/bootstack.po +842 -0
- bootstack/assets/locales/zh_TW/LC_MESSAGES/bootstack.mo +0 -0
- bootstack/assets/locales/zh_TW/LC_MESSAGES/bootstack.po +842 -0
- bootstack/assets/themes/__init__.py +0 -0
- bootstack/assets/themes/amber-dark.json +32 -0
- bootstack/assets/themes/amber-light.json +32 -0
- bootstack/assets/themes/aurora-dark.json +32 -0
- bootstack/assets/themes/aurora-light.json +32 -0
- bootstack/assets/themes/bootstrap-dark.json +32 -0
- bootstack/assets/themes/bootstrap-light.json +32 -0
- bootstack/assets/themes/classic-dark.json +32 -0
- bootstack/assets/themes/classic-light.json +32 -0
- bootstack/assets/themes/docs-dark.json +32 -0
- bootstack/assets/themes/docs-light.json +32 -0
- bootstack/assets/themes/forest-dark.json +32 -0
- bootstack/assets/themes/forest-light.json +32 -0
- bootstack/assets/themes/ocean-dark.json +32 -0
- bootstack/assets/themes/ocean-light.json +32 -0
- bootstack/assets/themes/rose-dark.json +32 -0
- bootstack/assets/themes/rose-light.json +32 -0
- bootstack/assets/widgets/__init__.py +0 -0
- bootstack/assets/widgets/badge-default.png +0 -0
- bootstack/assets/widgets/badge-pill.png +0 -0
- bootstack/assets/widgets/border.png +0 -0
- bootstack/assets/widgets/button-group-horizontal-after.png +0 -0
- bootstack/assets/widgets/button-group-horizontal-before.png +0 -0
- bootstack/assets/widgets/button-group-horizontal-center.png +0 -0
- bootstack/assets/widgets/button-group-vertical-after.png +0 -0
- bootstack/assets/widgets/button-group-vertical-before.png +0 -0
- bootstack/assets/widgets/button-group-vertical-center.png +0 -0
- bootstack/assets/widgets/button.png +0 -0
- bootstack/assets/widgets/checkbox-checked.png +0 -0
- bootstack/assets/widgets/checkbox-indeterminate.png +0 -0
- bootstack/assets/widgets/checkbox-unchecked.png +0 -0
- bootstack/assets/widgets/field.png +0 -0
- bootstack/assets/widgets/icon-button.png +0 -0
- bootstack/assets/widgets/input-inner.png +0 -0
- bootstack/assets/widgets/input-prefix.png +0 -0
- bootstack/assets/widgets/input-suffix.png +0 -0
- bootstack/assets/widgets/input.png +0 -0
- bootstack/assets/widgets/list-item-focus.png +0 -0
- bootstack/assets/widgets/list-item-separated.png +0 -0
- bootstack/assets/widgets/menu-item-separated.png +0 -0
- bootstack/assets/widgets/notebook-client-border.png +0 -0
- bootstack/assets/widgets/notebook-pill-active.png +0 -0
- bootstack/assets/widgets/notebook-pill-inactive.png +0 -0
- bootstack/assets/widgets/notebook-tab-active.png +0 -0
- bootstack/assets/widgets/notebook-tab-border.png +0 -0
- bootstack/assets/widgets/notebook-tab-normal.png +0 -0
- bootstack/assets/widgets/notebook-underline.png +0 -0
- bootstack/assets/widgets/progress-bar-horizontal-default.png +0 -0
- bootstack/assets/widgets/progress-bar-horizontal-striped.png +0 -0
- bootstack/assets/widgets/progress-bar-vertical-default.png +0 -0
- bootstack/assets/widgets/progress-bar-vertical-striped.png +0 -0
- bootstack/assets/widgets/progress-trough-horizontal.png +0 -0
- bootstack/assets/widgets/progress-trough-vertical.png +0 -0
- bootstack/assets/widgets/radio-selected.png +0 -0
- bootstack/assets/widgets/radio-unselected.png +0 -0
- bootstack/assets/widgets/scrollbar-horizontal-rounded.png +0 -0
- bootstack/assets/widgets/scrollbar-vertical-rounded.png +0 -0
- bootstack/assets/widgets/separator-horizontal.png +0 -0
- bootstack/assets/widgets/separator-vertical.png +0 -0
- bootstack/assets/widgets/slider-handle-focus.png +0 -0
- bootstack/assets/widgets/slider-handle.png +0 -0
- bootstack/assets/widgets/slider-track-horizontal.png +0 -0
- bootstack/assets/widgets/slider-track-vertical.png +0 -0
- bootstack/assets/widgets/switch-off.png +0 -0
- bootstack/assets/widgets/switch-on.png +0 -0
- bootstack/assets/widgets/tabs-bar-horizontal.png +0 -0
- bootstack/assets/widgets/tabs-bar-vertical.png +0 -0
- bootstack/assets/widgets/tabs-pill.png +0 -0
- bootstack/cli/__init__.py +124 -0
- bootstack/cli/__main__.py +6 -0
- bootstack/cli/add.py +439 -0
- bootstack/cli/build.py +115 -0
- bootstack/cli/config.py +287 -0
- bootstack/cli/demo.py +1267 -0
- bootstack/cli/doctor.py +195 -0
- bootstack/cli/list_cmd.py +71 -0
- bootstack/cli/promote.py +120 -0
- bootstack/cli/pyinstaller.py +246 -0
- bootstack/cli/run.py +99 -0
- bootstack/cli/start.py +105 -0
- bootstack/cli/templates/__init__.py +861 -0
- bootstack/constants.py +325 -0
- bootstack/core/__init__.py +34 -0
- bootstack/core/capabilities/__init__.py +45 -0
- bootstack/core/capabilities/after.py +103 -0
- bootstack/core/capabilities/bind.py +154 -0
- bootstack/core/capabilities/bindtags.py +112 -0
- bootstack/core/capabilities/busy.py +61 -0
- bootstack/core/capabilities/clipboard.py +88 -0
- bootstack/core/capabilities/focus.py +118 -0
- bootstack/core/capabilities/grab.py +65 -0
- bootstack/core/capabilities/grid.py +188 -0
- bootstack/core/capabilities/localization.py +231 -0
- bootstack/core/capabilities/pack.py +119 -0
- bootstack/core/capabilities/place.py +92 -0
- bootstack/core/capabilities/selection.py +136 -0
- bootstack/core/capabilities/signals.py +242 -0
- bootstack/core/capabilities/winfo.py +315 -0
- bootstack/core/colorutils.py +234 -0
- bootstack/core/exceptions.py +95 -0
- bootstack/core/images.py +283 -0
- bootstack/core/localization/README.md +90 -0
- bootstack/core/localization/__init__.py +13 -0
- bootstack/core/localization/intl_format.py +580 -0
- bootstack/core/localization/msgcat.py +425 -0
- bootstack/core/localization/specs.py +143 -0
- bootstack/core/mixins/__init__.py +1 -0
- bootstack/core/mixins/ttk_state.py +35 -0
- bootstack/core/mixins/widget.py +132 -0
- bootstack/core/publisher.py +147 -0
- bootstack/core/signals/README.md +112 -0
- bootstack/core/signals/__init__.py +8 -0
- bootstack/core/signals/integration.py +100 -0
- bootstack/core/signals/signal.py +317 -0
- bootstack/core/signals/types.py +4 -0
- bootstack/core/validation/__init__.py +5 -0
- bootstack/core/validation/types.py +13 -0
- bootstack/core/validation/validation_result.py +17 -0
- bootstack/core/validation/validation_rules.py +112 -0
- bootstack/core/variables.py +62 -0
- bootstack/datasource/README.md +607 -0
- bootstack/datasource/__init__.py +51 -0
- bootstack/datasource/base.py +474 -0
- bootstack/datasource/file_source.py +541 -0
- bootstack/datasource/memory_source.py +482 -0
- bootstack/datasource/sqlite_source.py +453 -0
- bootstack/datasource/types.py +259 -0
- bootstack/dialogs/__init__.py +56 -0
- bootstack/dialogs/colorchooser.py +674 -0
- bootstack/dialogs/colordropper.py +257 -0
- bootstack/dialogs/datedialog.py +404 -0
- bootstack/dialogs/dialog.py +514 -0
- bootstack/dialogs/filterdialog.py +358 -0
- bootstack/dialogs/fontdialog.py +339 -0
- bootstack/dialogs/formdialog.py +541 -0
- bootstack/dialogs/message.py +489 -0
- bootstack/dialogs/query.py +561 -0
- bootstack/py.typed +1 -0
- bootstack/runtime/__init__.py +3 -0
- bootstack/runtime/app.py +879 -0
- bootstack/runtime/base_window.py +786 -0
- bootstack/runtime/events.py +399 -0
- bootstack/runtime/menu.py +510 -0
- bootstack/runtime/shortcuts.py +423 -0
- bootstack/runtime/tk_patch.py +31 -0
- bootstack/runtime/toplevel.py +131 -0
- bootstack/runtime/utility.py +371 -0
- bootstack/runtime/visual_focus.py +228 -0
- bootstack/runtime/window_utilities.py +1043 -0
- bootstack/style/__init__.py +5498 -0
- bootstack/style/bootstyle.py +507 -0
- bootstack/style/bootstyle_builder_base.py +752 -0
- bootstack/style/bootstyle_builder_mixed.py +93 -0
- bootstack/style/bootstyle_builder_tk.py +109 -0
- bootstack/style/bootstyle_builder_ttk.py +354 -0
- bootstack/style/builders/__init__.py +51 -0
- bootstack/style/builders/badge.py +44 -0
- bootstack/style/builders/button.py +453 -0
- bootstack/style/builders/buttongroup.py +344 -0
- bootstack/style/builders/calendar.py +271 -0
- bootstack/style/builders/checkbutton.py +95 -0
- bootstack/style/builders/combobox.py +112 -0
- bootstack/style/builders/contextmenu.py +268 -0
- bootstack/style/builders/entry.py +83 -0
- bootstack/style/builders/expander.py +171 -0
- bootstack/style/builders/field.py +312 -0
- bootstack/style/builders/frame.py +27 -0
- bootstack/style/builders/label.py +28 -0
- bootstack/style/builders/labelframe.py +41 -0
- bootstack/style/builders/listview.py +267 -0
- bootstack/style/builders/menubar.py +74 -0
- bootstack/style/builders/menubutton.py +408 -0
- bootstack/style/builders/notebook.py +316 -0
- bootstack/style/builders/panedwindow.py +25 -0
- bootstack/style/builders/progressbar.py +71 -0
- bootstack/style/builders/radiobutton.py +68 -0
- bootstack/style/builders/scale.py +66 -0
- bootstack/style/builders/scrollbar.py +360 -0
- bootstack/style/builders/separator.py +45 -0
- bootstack/style/builders/sidenav.py +313 -0
- bootstack/style/builders/sizegrip.py +15 -0
- bootstack/style/builders/spinbox.py +119 -0
- bootstack/style/builders/switch.py +67 -0
- bootstack/style/builders/tabitem.py +205 -0
- bootstack/style/builders/toolbutton.py +260 -0
- bootstack/style/builders/tooltip.py +26 -0
- bootstack/style/builders/treeview.py +269 -0
- bootstack/style/builders/utils.py +404 -0
- bootstack/style/builders_tk/__init__.py +16 -0
- bootstack/style/builders_tk/defaults.py +229 -0
- bootstack/style/element.py +173 -0
- bootstack/style/style.py +499 -0
- bootstack/style/theme_provider.py +449 -0
- bootstack/style/tk_patch.py +5 -0
- bootstack/style/token_maps.py +42 -0
- bootstack/style/types.py +32 -0
- bootstack/style/typography.py +527 -0
- bootstack/style/utility.py +696 -0
- bootstack/themes/__init__.py +12 -0
- bootstack/themes/standard.py +415 -0
- bootstack/themes/user.py +45 -0
- bootstack/widgets/__init__.py +53 -0
- bootstack/widgets/composites/__init__.py +38 -0
- bootstack/widgets/composites/accordion.py +385 -0
- bootstack/widgets/composites/appshell.py +445 -0
- bootstack/widgets/composites/buttongroup.py +391 -0
- bootstack/widgets/composites/calendar.py +914 -0
- bootstack/widgets/composites/compositeframe.py +282 -0
- bootstack/widgets/composites/contextmenu.py +1754 -0
- bootstack/widgets/composites/dateentry.py +261 -0
- bootstack/widgets/composites/dropdownbutton.py +190 -0
- bootstack/widgets/composites/expander.py +508 -0
- bootstack/widgets/composites/field.py +448 -0
- bootstack/widgets/composites/floodgauge.py +434 -0
- bootstack/widgets/composites/form.py +983 -0
- bootstack/widgets/composites/labeledscale.py +209 -0
- bootstack/widgets/composites/list/__init__.py +15 -0
- bootstack/widgets/composites/list/listitem.py +733 -0
- bootstack/widgets/composites/list/listview.py +1507 -0
- bootstack/widgets/composites/menubar.py +303 -0
- bootstack/widgets/composites/meter.py +882 -0
- bootstack/widgets/composites/numericentry.py +183 -0
- bootstack/widgets/composites/pagestack.py +330 -0
- bootstack/widgets/composites/passwordentry.py +149 -0
- bootstack/widgets/composites/pathentry.py +223 -0
- bootstack/widgets/composites/radiogroup.py +466 -0
- bootstack/widgets/composites/scrolledtext.py +388 -0
- bootstack/widgets/composites/scrolledtext.pyi +186 -0
- bootstack/widgets/composites/scrollview.py +675 -0
- bootstack/widgets/composites/selectbox.py +544 -0
- bootstack/widgets/composites/sidenav/__init__.py +24 -0
- bootstack/widgets/composites/sidenav/group.py +485 -0
- bootstack/widgets/composites/sidenav/header.py +83 -0
- bootstack/widgets/composites/sidenav/item.py +413 -0
- bootstack/widgets/composites/sidenav/separator.py +51 -0
- bootstack/widgets/composites/sidenav/view.py +919 -0
- bootstack/widgets/composites/spinnerentry.py +232 -0
- bootstack/widgets/composites/tableview/__init__.py +5 -0
- bootstack/widgets/composites/tableview/tableview.py +2254 -0
- bootstack/widgets/composites/tableview/types.py +169 -0
- bootstack/widgets/composites/tabs/__init__.py +6 -0
- bootstack/widgets/composites/tabs/tabitem.py +372 -0
- bootstack/widgets/composites/tabs/tabs.py +478 -0
- bootstack/widgets/composites/tabs/tabview.py +352 -0
- bootstack/widgets/composites/textentry.py +90 -0
- bootstack/widgets/composites/timeentry.py +189 -0
- bootstack/widgets/composites/toast.py +364 -0
- bootstack/widgets/composites/togglegroup.py +382 -0
- bootstack/widgets/composites/toolbar.py +393 -0
- bootstack/widgets/composites/tooltip.py +404 -0
- bootstack/widgets/internal/__init__.py +0 -0
- bootstack/widgets/internal/wrapper_base.py +304 -0
- bootstack/widgets/mixins/__init__.py +25 -0
- bootstack/widgets/mixins/configure_mixin.py +186 -0
- bootstack/widgets/mixins/entry_mixin.py +70 -0
- bootstack/widgets/mixins/font_mixin.py +346 -0
- bootstack/widgets/mixins/icon_mixin.py +38 -0
- bootstack/widgets/mixins/localization_mixin.py +255 -0
- bootstack/widgets/mixins/signal_mixin.py +272 -0
- bootstack/widgets/mixins/validation_mixin.py +204 -0
- bootstack/widgets/parts/__init__.py +11 -0
- bootstack/widgets/parts/numberentry_part.py +345 -0
- bootstack/widgets/parts/spinnerentry_part.py +394 -0
- bootstack/widgets/parts/textentry_part.py +344 -0
- bootstack/widgets/primitives/__init__.py +55 -0
- bootstack/widgets/primitives/badge.py +44 -0
- bootstack/widgets/primitives/button.py +89 -0
- bootstack/widgets/primitives/card.py +66 -0
- bootstack/widgets/primitives/checkbutton.py +124 -0
- bootstack/widgets/primitives/checktoggle.py +53 -0
- bootstack/widgets/primitives/combobox.py +165 -0
- bootstack/widgets/primitives/entry.py +98 -0
- bootstack/widgets/primitives/frame.py +206 -0
- bootstack/widgets/primitives/gridframe.py +479 -0
- bootstack/widgets/primitives/label.py +95 -0
- bootstack/widgets/primitives/labelframe.py +63 -0
- bootstack/widgets/primitives/menubutton.py +118 -0
- bootstack/widgets/primitives/notebook.py +551 -0
- bootstack/widgets/primitives/optionmenu.py +248 -0
- bootstack/widgets/primitives/packframe.py +228 -0
- bootstack/widgets/primitives/panedwindow.py +58 -0
- bootstack/widgets/primitives/progressbar.py +95 -0
- bootstack/widgets/primitives/radiobutton.py +115 -0
- bootstack/widgets/primitives/radiotoggle.py +50 -0
- bootstack/widgets/primitives/scale.py +85 -0
- bootstack/widgets/primitives/scrollbar.py +56 -0
- bootstack/widgets/primitives/separator.py +56 -0
- bootstack/widgets/primitives/sizegrip.py +47 -0
- bootstack/widgets/primitives/spinbox.py +91 -0
- bootstack/widgets/primitives/switch.py +41 -0
- bootstack/widgets/primitives/treeview.py +77 -0
- bootstack/widgets/types.py +20 -0
- bootstack-0.1.0a1.dist-info/METADATA +196 -0
- bootstack-0.1.0a1.dist-info/RECORD +419 -0
- bootstack-0.1.0a1.dist-info/WHEEL +5 -0
- bootstack-0.1.0a1.dist-info/entry_points.txt +2 -0
- bootstack-0.1.0a1.dist-info/licenses/LICENSE +22 -0
- bootstack-0.1.0a1.dist-info/licenses/NOTICE +10 -0
- bootstack-0.1.0a1.dist-info/top_level.txt +1 -0
bootstack/__init__.py
ADDED
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
"""bootstack — a full UI framework for Python desktop apps built on Tkinter.
|
|
2
|
+
|
|
3
|
+
All widgets, dialogs, style utilities, and application primitives are
|
|
4
|
+
accessible directly from this namespace via lazy imports.
|
|
5
|
+
|
|
6
|
+
Examples:
|
|
7
|
+
```python
|
|
8
|
+
import bootstack as bs
|
|
9
|
+
|
|
10
|
+
app = bs.App(title="My App", themename="bootstrap-light")
|
|
11
|
+
bs.Label(app, text="Hello, world!").pack(padx=20, pady=20)
|
|
12
|
+
app.mainloop()
|
|
13
|
+
```
|
|
14
|
+
"""
|
|
15
|
+
import importlib as _importlib
|
|
16
|
+
from importlib.metadata import version as _pkg_version
|
|
17
|
+
from typing import TYPE_CHECKING
|
|
18
|
+
|
|
19
|
+
__version__ = _pkg_version("bootstack")
|
|
20
|
+
|
|
21
|
+
from tkinter import (
|
|
22
|
+
BooleanVar,
|
|
23
|
+
Canvas as _tkCanvas,
|
|
24
|
+
DoubleVar,
|
|
25
|
+
Frame as _tkFrame,
|
|
26
|
+
IntVar,
|
|
27
|
+
Menu as _tkMenu,
|
|
28
|
+
PhotoImage,
|
|
29
|
+
StringVar,
|
|
30
|
+
Text as _tkText,
|
|
31
|
+
Tk as _tkTk,
|
|
32
|
+
Variable,
|
|
33
|
+
)
|
|
34
|
+
|
|
35
|
+
# Re-export tk widgets with original names before importing submodules
|
|
36
|
+
Tk = _tkTk
|
|
37
|
+
Menu = _tkMenu
|
|
38
|
+
Text = _tkText
|
|
39
|
+
Canvas = _tkCanvas
|
|
40
|
+
TkFrame = _tkFrame # Exported as TkFrame to avoid conflict with bs.Frame
|
|
41
|
+
# Eagerly import BootstrapIcon to prevent circular import during style bootstrapping
|
|
42
|
+
from ttkbootstrap_icons_bs import BootstrapIcon # noqa: E402
|
|
43
|
+
|
|
44
|
+
# Constants are available via bootstack.constants module
|
|
45
|
+
# (see constants.py which re-exports from core.constants)
|
|
46
|
+
|
|
47
|
+
if TYPE_CHECKING:
|
|
48
|
+
from bootstack.api.menu import MenuManager, create_menu
|
|
49
|
+
from bootstack.api.app import App, AppShell, App as Window, Toplevel, AppSettings, get_app_settings, get_current_app, Shortcuts, Shortcut, get_shortcuts
|
|
50
|
+
from bootstack.api.style import (
|
|
51
|
+
Font,
|
|
52
|
+
Style,
|
|
53
|
+
get_style,
|
|
54
|
+
get_style_builder,
|
|
55
|
+
get_theme,
|
|
56
|
+
get_theme_provider,
|
|
57
|
+
set_theme,
|
|
58
|
+
toggle_theme,
|
|
59
|
+
get_theme_color,
|
|
60
|
+
get_themes,
|
|
61
|
+
)
|
|
62
|
+
from bootstack.api.widgets import (
|
|
63
|
+
Button,
|
|
64
|
+
ButtonGroup,
|
|
65
|
+
Card,
|
|
66
|
+
CheckButton,
|
|
67
|
+
Combobox,
|
|
68
|
+
ContextMenu,
|
|
69
|
+
ContextMenuItem,
|
|
70
|
+
DateEntry,
|
|
71
|
+
Calendar,
|
|
72
|
+
DropdownButton,
|
|
73
|
+
Entry,
|
|
74
|
+
Field,
|
|
75
|
+
FieldOptions,
|
|
76
|
+
FloodGauge,
|
|
77
|
+
Form,
|
|
78
|
+
Frame,
|
|
79
|
+
GridFrame,
|
|
80
|
+
Label,
|
|
81
|
+
LabelFrame,
|
|
82
|
+
LabeledScale,
|
|
83
|
+
MenuBar,
|
|
84
|
+
MenuButton,
|
|
85
|
+
Meter,
|
|
86
|
+
SideNav,
|
|
87
|
+
SideNavItem,
|
|
88
|
+
SideNavGroup,
|
|
89
|
+
SideNavHeader,
|
|
90
|
+
SideNavSeparator,
|
|
91
|
+
Notebook,
|
|
92
|
+
NumericEntry,
|
|
93
|
+
OptionMenu,
|
|
94
|
+
PackFrame,
|
|
95
|
+
PageStack,
|
|
96
|
+
PanedWindow,
|
|
97
|
+
PasswordEntry,
|
|
98
|
+
PathEntry,
|
|
99
|
+
Progressbar,
|
|
100
|
+
RadioButton,
|
|
101
|
+
RadioGroup,
|
|
102
|
+
Scale,
|
|
103
|
+
Scrollbar,
|
|
104
|
+
ScrolledText,
|
|
105
|
+
ScrollView,
|
|
106
|
+
SelectBox,
|
|
107
|
+
Separator,
|
|
108
|
+
SideNav,
|
|
109
|
+
SpinnerEntry,
|
|
110
|
+
SizeGrip,
|
|
111
|
+
Spinbox,
|
|
112
|
+
Switch,
|
|
113
|
+
TableView,
|
|
114
|
+
TextEntry,
|
|
115
|
+
TimeEntry,
|
|
116
|
+
Toast,
|
|
117
|
+
Toolbar,
|
|
118
|
+
ToggleGroup,
|
|
119
|
+
ToolTip,
|
|
120
|
+
TreeView,
|
|
121
|
+
TK_WIDGETS,
|
|
122
|
+
TTK_WIDGETS,
|
|
123
|
+
)
|
|
124
|
+
from bootstack.api.localization import MessageCatalog, L, LV, IntlFormatter
|
|
125
|
+
from bootstack.api.utils import Image
|
|
126
|
+
from ttkbootstrap_icons_bs import BootstrapIcon
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
_TK_EXPORTS = [
|
|
130
|
+
"Tk",
|
|
131
|
+
"Menu",
|
|
132
|
+
"Text",
|
|
133
|
+
"Canvas",
|
|
134
|
+
"TkFrame",
|
|
135
|
+
"Variable",
|
|
136
|
+
"StringVar",
|
|
137
|
+
"IntVar",
|
|
138
|
+
"BooleanVar",
|
|
139
|
+
"DoubleVar",
|
|
140
|
+
"PhotoImage",
|
|
141
|
+
]
|
|
142
|
+
|
|
143
|
+
# Single source of truth: module-to-exports mapping
|
|
144
|
+
# Organized by category for clarity
|
|
145
|
+
_TTK_PRIMITIVES = [
|
|
146
|
+
"Button", "CheckButton", "Combobox", "Entry", "Frame", "Label",
|
|
147
|
+
"LabelFrame", "MenuButton", "Notebook", "OptionMenu", "PanedWindow",
|
|
148
|
+
"Progressbar", "RadioButton", "Scale", "Scrollbar", "Separator",
|
|
149
|
+
"SizeGrip", "Spinbox", "TreeView",
|
|
150
|
+
]
|
|
151
|
+
|
|
152
|
+
_MODULE_EXPORTS = {
|
|
153
|
+
# Application & Windows (includes menu and shortcuts)
|
|
154
|
+
"bootstack.api.app": [
|
|
155
|
+
"App", "AppShell", "Toplevel", "Window", "AppSettings", "get_app_settings", "get_current_app",
|
|
156
|
+
"MenuManager", "create_menu",
|
|
157
|
+
"Shortcuts", "Shortcut", "get_shortcuts",
|
|
158
|
+
],
|
|
159
|
+
# Style & Theming
|
|
160
|
+
"bootstack.api.style": [
|
|
161
|
+
"BootstrapIcon", "Font", "Style",
|
|
162
|
+
"get_style", "get_style_builder", "get_theme",
|
|
163
|
+
"get_theme_provider", "set_theme", "get_theme_color",
|
|
164
|
+
"toggle_theme", "get_themes",
|
|
165
|
+
],
|
|
166
|
+
# Widgets
|
|
167
|
+
"bootstack.api.widgets": [
|
|
168
|
+
*_TTK_PRIMITIVES,
|
|
169
|
+
"Badge",
|
|
170
|
+
"ButtonGroup",
|
|
171
|
+
"Card",
|
|
172
|
+
"CheckToggle",
|
|
173
|
+
"RadioToggle",
|
|
174
|
+
"Calendar", "ContextMenu", "ContextMenuItem", "DateEntry",
|
|
175
|
+
"Accordion", "DropdownButton", "Expander", "Field", "FieldOptions", "FloodGauge", "Form",
|
|
176
|
+
"GridFrame", "LabeledScale", "MenuBar", "Meter",
|
|
177
|
+
"SideNav", "SideNavItem", "SideNavGroup",
|
|
178
|
+
"SideNavHeader", "SideNavSeparator",
|
|
179
|
+
"NumericEntry", "PackFrame", "PageStack",
|
|
180
|
+
"PasswordEntry", "PathEntry", "RadioGroup", "ScrolledText", "ScrollView", "SpinnerEntry",
|
|
181
|
+
"SelectBox", "TableView", "TextEntry", "TimeEntry", "Toast", "Toolbar", "ToggleGroup", "Switch",
|
|
182
|
+
"ToolTip", "TK_WIDGETS", "TTK_WIDGETS",
|
|
183
|
+
],
|
|
184
|
+
# Dialogs
|
|
185
|
+
"bootstack.api.dialogs": [
|
|
186
|
+
"Dialog", "DialogButton", "FilterDialog", "FormDialog",
|
|
187
|
+
"MessageDialog", "MessageBox", "QueryDialog", "QueryBox",
|
|
188
|
+
"DateDialog", "FontDialog",
|
|
189
|
+
"ColorChooser", "ColorChooserDialog", "ColorDropperDialog",
|
|
190
|
+
],
|
|
191
|
+
# Data Sources
|
|
192
|
+
"bootstack.api.data": [
|
|
193
|
+
"BaseDataSource", "MemoryDataSource", "SqliteDataSource",
|
|
194
|
+
"FileDataSource", "FileSourceConfig",
|
|
195
|
+
"DataSourceProtocol", "Record", "Primitive",
|
|
196
|
+
],
|
|
197
|
+
# Internationalization
|
|
198
|
+
"bootstack.api.i18n": [
|
|
199
|
+
"MessageCatalog", "L", "LV", "IntlFormatter"
|
|
200
|
+
],
|
|
201
|
+
# Utilities
|
|
202
|
+
"bootstack.api.utils": [
|
|
203
|
+
"Image",
|
|
204
|
+
"Signal", "TraceOperation",
|
|
205
|
+
"ValidationRule", "ValidationResult",
|
|
206
|
+
"SetVar",
|
|
207
|
+
],
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
# Auto-generate lazy exports and categorized export lists
|
|
211
|
+
_LAZY_EXPORTS = {}
|
|
212
|
+
_TTK_EXPORTS = _TTK_PRIMITIVES.copy()
|
|
213
|
+
_BOOTSTACK_EXPORTS = []
|
|
214
|
+
|
|
215
|
+
for module, exports in _MODULE_EXPORTS.items():
|
|
216
|
+
for name in exports:
|
|
217
|
+
_LAZY_EXPORTS[name] = module
|
|
218
|
+
if name not in _TTK_EXPORTS:
|
|
219
|
+
_BOOTSTACK_EXPORTS.append(name)
|
|
220
|
+
|
|
221
|
+
__all__ = [*_TK_EXPORTS, *_TTK_EXPORTS, *_BOOTSTACK_EXPORTS]
|
|
222
|
+
|
|
223
|
+
def __getattr__(name):
|
|
224
|
+
"""Lazily import top-level attributes to avoid circular imports and speed import."""
|
|
225
|
+
if name in _LAZY_EXPORTS:
|
|
226
|
+
module = _importlib.import_module(_LAZY_EXPORTS[name])
|
|
227
|
+
value = getattr(module, name)
|
|
228
|
+
globals()[name] = value
|
|
229
|
+
return value
|
|
230
|
+
|
|
231
|
+
raise AttributeError(f"module 'bootstack' has no attribute '{name}'")
|
|
232
|
+
|
|
233
|
+
|
|
234
|
+
def __dir__():
|
|
235
|
+
return sorted(set(__all__ + list(globals().keys())))
|
|
236
|
+
|
|
237
|
+
|
|
238
|
+
# Patch Tk widgets for autostyle
|
|
239
|
+
from bootstack.runtime.tk_patch import install_tk_autostyle
|
|
240
|
+
|
|
241
|
+
# Install enhanced events on import
|
|
242
|
+
from bootstack.runtime.events import install_enhanced_events
|
|
243
|
+
|
|
244
|
+
# Install visual focus
|
|
245
|
+
from bootstack.runtime.visual_focus import install_visual_focus
|
|
246
|
+
|
|
247
|
+
install_tk_autostyle()
|
|
248
|
+
install_enhanced_events()
|
|
249
|
+
install_visual_focus()
|
bootstack/__main__.py
ADDED
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
"""Public API surface for bootstack v2.
|
|
2
|
+
|
|
3
|
+
This module centralizes re-exports so top-level imports can stay slim and
|
|
4
|
+
import direction stays clear. Implementation lives in lower-layer packages.
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
from __future__ import annotations
|
|
8
|
+
|
|
9
|
+
from bootstack.api.style import (
|
|
10
|
+
BootstrapIcon,
|
|
11
|
+
Style,
|
|
12
|
+
get_style,
|
|
13
|
+
get_style_builder,
|
|
14
|
+
get_theme_provider,
|
|
15
|
+
get_theme,
|
|
16
|
+
get_theme_color,
|
|
17
|
+
set_theme,
|
|
18
|
+
toggle_theme,
|
|
19
|
+
)
|
|
20
|
+
from bootstack.api.widgets import (
|
|
21
|
+
Button,
|
|
22
|
+
CheckButton,
|
|
23
|
+
Combobox,
|
|
24
|
+
ContextMenu,
|
|
25
|
+
ContextMenuItem,
|
|
26
|
+
DateEntry,
|
|
27
|
+
Calendar,
|
|
28
|
+
DropdownButton,
|
|
29
|
+
Entry,
|
|
30
|
+
Field,
|
|
31
|
+
FieldOptions,
|
|
32
|
+
FloodGauge,
|
|
33
|
+
Form,
|
|
34
|
+
Frame,
|
|
35
|
+
Label,
|
|
36
|
+
LabelFrame,
|
|
37
|
+
LabeledScale,
|
|
38
|
+
MenuButton,
|
|
39
|
+
Meter,
|
|
40
|
+
Notebook,
|
|
41
|
+
NumericEntry,
|
|
42
|
+
OptionMenu,
|
|
43
|
+
PanedWindow,
|
|
44
|
+
PasswordEntry,
|
|
45
|
+
PathEntry,
|
|
46
|
+
Progressbar,
|
|
47
|
+
RadioButton,
|
|
48
|
+
Scale,
|
|
49
|
+
Scrollbar,
|
|
50
|
+
ScrollView,
|
|
51
|
+
ScrolledText,
|
|
52
|
+
SelectBox,
|
|
53
|
+
Separator,
|
|
54
|
+
SizeGrip,
|
|
55
|
+
Spinbox,
|
|
56
|
+
TableView,
|
|
57
|
+
TextEntry,
|
|
58
|
+
TimeEntry,
|
|
59
|
+
Toast,
|
|
60
|
+
ToolTip,
|
|
61
|
+
TreeView,
|
|
62
|
+
TK_WIDGETS,
|
|
63
|
+
TTK_WIDGETS,
|
|
64
|
+
)
|
|
65
|
+
from bootstack.runtime.app import App, App as Window
|
|
66
|
+
from bootstack.runtime.toplevel import Toplevel
|
|
67
|
+
from bootstack.runtime.menu import MenuManager, create_menu
|
|
68
|
+
|
|
69
|
+
__all__ = [
|
|
70
|
+
"BootstrapIcon",
|
|
71
|
+
"Style",
|
|
72
|
+
"Button",
|
|
73
|
+
"CheckButton",
|
|
74
|
+
"Combobox",
|
|
75
|
+
"ContextMenu",
|
|
76
|
+
"ContextMenuItem",
|
|
77
|
+
"DateEntry",
|
|
78
|
+
"Calendar",
|
|
79
|
+
"DropdownButton",
|
|
80
|
+
"Entry",
|
|
81
|
+
"Field",
|
|
82
|
+
"FieldOptions",
|
|
83
|
+
"FloodGauge",
|
|
84
|
+
"Form",
|
|
85
|
+
"Frame",
|
|
86
|
+
"Label",
|
|
87
|
+
"LabelFrame",
|
|
88
|
+
"LabeledScale",
|
|
89
|
+
"MenuButton",
|
|
90
|
+
"Meter",
|
|
91
|
+
"Notebook",
|
|
92
|
+
"NumericEntry",
|
|
93
|
+
"OptionMenu",
|
|
94
|
+
"PanedWindow",
|
|
95
|
+
"PasswordEntry",
|
|
96
|
+
"PathEntry",
|
|
97
|
+
"Progressbar",
|
|
98
|
+
"RadioButton",
|
|
99
|
+
"Scale",
|
|
100
|
+
"Scrollbar",
|
|
101
|
+
"ScrollView",
|
|
102
|
+
"ScrolledText",
|
|
103
|
+
"SelectBox",
|
|
104
|
+
"Separator",
|
|
105
|
+
"SizeGrip",
|
|
106
|
+
"Spinbox",
|
|
107
|
+
"TableView",
|
|
108
|
+
"TextEntry",
|
|
109
|
+
"TimeEntry",
|
|
110
|
+
"Toast",
|
|
111
|
+
"ToolTip",
|
|
112
|
+
"TreeView",
|
|
113
|
+
"Toplevel",
|
|
114
|
+
"App",
|
|
115
|
+
"Window",
|
|
116
|
+
"MenuManager",
|
|
117
|
+
"get_style",
|
|
118
|
+
"get_style_builder",
|
|
119
|
+
"get_theme",
|
|
120
|
+
"set_theme",
|
|
121
|
+
"toggle_theme",
|
|
122
|
+
"get_theme_provider",
|
|
123
|
+
"get_theme_color",
|
|
124
|
+
"create_menu",
|
|
125
|
+
"TK_WIDGETS",
|
|
126
|
+
"TTK_WIDGETS",
|
|
127
|
+
]
|
bootstack/api/app.py
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"""Public application and window API surface.
|
|
2
|
+
|
|
3
|
+
Application, window management, menu, and shortcuts functionality.
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
from __future__ import annotations
|
|
7
|
+
|
|
8
|
+
from bootstack.runtime.app import App, AppSettings, Window, get_app_settings, get_current_app
|
|
9
|
+
from bootstack.runtime.toplevel import Toplevel
|
|
10
|
+
from bootstack.runtime.menu import MenuManager, create_menu
|
|
11
|
+
from bootstack.runtime.shortcuts import Shortcuts, Shortcut, get_shortcuts
|
|
12
|
+
from bootstack.widgets.composites.appshell import AppShell
|
|
13
|
+
|
|
14
|
+
__all__ = [
|
|
15
|
+
# Application
|
|
16
|
+
"App",
|
|
17
|
+
"AppShell",
|
|
18
|
+
"Window",
|
|
19
|
+
"Toplevel",
|
|
20
|
+
"AppSettings",
|
|
21
|
+
"get_current_app",
|
|
22
|
+
"get_app_settings",
|
|
23
|
+
# Menu
|
|
24
|
+
"MenuManager",
|
|
25
|
+
"create_menu",
|
|
26
|
+
# Shortcuts
|
|
27
|
+
"Shortcuts",
|
|
28
|
+
"Shortcut",
|
|
29
|
+
"get_shortcuts",
|
|
30
|
+
]
|
bootstack/api/data.py
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"""Public data source API surface.
|
|
2
|
+
|
|
3
|
+
Provides unified interface for data management with multiple backend implementations.
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
from __future__ import annotations
|
|
7
|
+
|
|
8
|
+
from bootstack.datasource.base import BaseDataSource
|
|
9
|
+
from bootstack.datasource.memory_source import MemoryDataSource
|
|
10
|
+
from bootstack.datasource.sqlite_source import SqliteDataSource
|
|
11
|
+
from bootstack.datasource.file_source import FileDataSource, FileSourceConfig
|
|
12
|
+
from bootstack.datasource.types import DataSourceProtocol, Primitive, Record
|
|
13
|
+
|
|
14
|
+
__all__ = [
|
|
15
|
+
"BaseDataSource",
|
|
16
|
+
"MemoryDataSource",
|
|
17
|
+
"SqliteDataSource",
|
|
18
|
+
"FileDataSource",
|
|
19
|
+
"FileSourceConfig",
|
|
20
|
+
"DataSourceProtocol",
|
|
21
|
+
"Primitive",
|
|
22
|
+
"Record",
|
|
23
|
+
]
|
bootstack/api/dialogs.py
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"""Public dialogs API surface.
|
|
2
|
+
|
|
3
|
+
Bootstrap-styled dialogs for common interactions.
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
from __future__ import annotations
|
|
7
|
+
|
|
8
|
+
from bootstack.dialogs import (
|
|
9
|
+
# Base / core dialogs
|
|
10
|
+
Dialog,
|
|
11
|
+
DialogButton,
|
|
12
|
+
FilterDialog,
|
|
13
|
+
FormDialog,
|
|
14
|
+
MessageDialog,
|
|
15
|
+
QueryDialog,
|
|
16
|
+
DateDialog,
|
|
17
|
+
FontDialog,
|
|
18
|
+
# Facades
|
|
19
|
+
MessageBox,
|
|
20
|
+
QueryBox,
|
|
21
|
+
# Color tools
|
|
22
|
+
ColorChooser,
|
|
23
|
+
ColorChooserDialog,
|
|
24
|
+
ColorDropperDialog,
|
|
25
|
+
)
|
|
26
|
+
|
|
27
|
+
__all__ = [
|
|
28
|
+
# Base / core dialogs
|
|
29
|
+
"Dialog",
|
|
30
|
+
"DialogButton",
|
|
31
|
+
"FilterDialog",
|
|
32
|
+
"FormDialog",
|
|
33
|
+
"MessageDialog",
|
|
34
|
+
"QueryDialog",
|
|
35
|
+
"DateDialog",
|
|
36
|
+
"FontDialog",
|
|
37
|
+
# Facades
|
|
38
|
+
"MessageBox",
|
|
39
|
+
"QueryBox",
|
|
40
|
+
# Color tools
|
|
41
|
+
"ColorChooser",
|
|
42
|
+
"ColorChooserDialog",
|
|
43
|
+
"ColorDropperDialog",
|
|
44
|
+
]
|
bootstack/api/i18n.py
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"""Public internationalization API surface.
|
|
2
|
+
|
|
3
|
+
Message translation and locale-aware value formatting.
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
from __future__ import annotations
|
|
7
|
+
|
|
8
|
+
from bootstack.core.localization.msgcat import MessageCatalog
|
|
9
|
+
from bootstack.core.localization.specs import L, LV
|
|
10
|
+
from bootstack.core.localization.intl_format import IntlFormatter
|
|
11
|
+
|
|
12
|
+
__all__ = [
|
|
13
|
+
"MessageCatalog",
|
|
14
|
+
"L",
|
|
15
|
+
"LV",
|
|
16
|
+
"IntlFormatter",
|
|
17
|
+
]
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"""Localization API for bootstack.
|
|
2
|
+
|
|
3
|
+
This module provides the public API for internationalization and localization,
|
|
4
|
+
including message translation and locale-aware value formatting.
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
from bootstack.core.localization.msgcat import MessageCatalog
|
|
8
|
+
from bootstack.core.localization.specs import L, LV
|
|
9
|
+
from bootstack.core.localization.intl_format import IntlFormatter
|
|
10
|
+
|
|
11
|
+
__all__ = [
|
|
12
|
+
"MessageCatalog",
|
|
13
|
+
"L",
|
|
14
|
+
"LV",
|
|
15
|
+
"IntlFormatter"
|
|
16
|
+
]
|
bootstack/api/menu.py
ADDED
bootstack/api/style.py
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"""Public style-related API surface."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from ttkbootstrap_icons_bs import BootstrapIcon
|
|
6
|
+
|
|
7
|
+
from bootstack.style.style import (Style, get_style, get_style_builder, get_theme, get_theme_color,
|
|
8
|
+
get_theme_provider, set_theme, toggle_theme, get_themes)
|
|
9
|
+
from bootstack.style.typography import Font
|
|
10
|
+
|
|
11
|
+
__all__ = [
|
|
12
|
+
"BootstrapIcon",
|
|
13
|
+
"Font",
|
|
14
|
+
"Style",
|
|
15
|
+
"get_style",
|
|
16
|
+
"get_style_builder",
|
|
17
|
+
"get_theme",
|
|
18
|
+
"set_theme",
|
|
19
|
+
"toggle_theme",
|
|
20
|
+
"get_theme_provider",
|
|
21
|
+
"get_theme_color",
|
|
22
|
+
"get_themes",
|
|
23
|
+
]
|
bootstack/api/utils.py
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"""Public utilities API surface.
|
|
2
|
+
|
|
3
|
+
Core utilities for reactive programming, validation, and extended variables.
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
from __future__ import annotations
|
|
7
|
+
|
|
8
|
+
from bootstack.core.images import Image
|
|
9
|
+
from bootstack.core.signals import Signal, TraceOperation
|
|
10
|
+
from bootstack.core.validation import ValidationRule, ValidationResult
|
|
11
|
+
from bootstack.core.variables import SetVar
|
|
12
|
+
|
|
13
|
+
__all__ = [
|
|
14
|
+
# Images
|
|
15
|
+
"Image",
|
|
16
|
+
# Signals (reactive state)
|
|
17
|
+
"Signal",
|
|
18
|
+
"TraceOperation",
|
|
19
|
+
# Validation
|
|
20
|
+
"ValidationRule",
|
|
21
|
+
"ValidationResult",
|
|
22
|
+
# Extended variables
|
|
23
|
+
"SetVar",
|
|
24
|
+
]
|