ttkbootstrap 2.0.1__tar.gz → 2.1.0__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.
Files changed (156) hide show
  1. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/LICENSE +21 -21
  2. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/MANIFEST.in +7 -7
  3. {ttkbootstrap-2.0.1/src/ttkbootstrap.egg-info → ttkbootstrap-2.1.0}/PKG-INFO +159 -158
  4. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/README.md +132 -131
  5. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/pyproject.toml +74 -67
  6. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/setup.cfg +4 -4
  7. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/__init__.py +410 -410
  8. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/__main__.py +161 -148
  9. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/assets/__init__.py +1 -1
  10. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/assets/elements/README.md +14 -14
  11. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/assets/elements/__init__.py +1 -1
  12. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/assets/elements/manifest.json +16 -16
  13. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/assets/icons/LICENSE +22 -22
  14. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/assets/icons/README.md +40 -40
  15. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/colorutils.py +31 -31
  16. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/constants.py +614 -527
  17. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/dialogs/__init__.py +29 -29
  18. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/dialogs/base.py +230 -192
  19. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/dialogs/colorchooser.py +629 -629
  20. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/dialogs/colordropper.py +188 -188
  21. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/dialogs/datepicker.py +579 -579
  22. ttkbootstrap-2.1.0/src/ttkbootstrap/dialogs/filedialog.py +691 -0
  23. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/dialogs/fontdialog.py +316 -316
  24. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/dialogs/message.py +506 -506
  25. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/dialogs/query.py +512 -438
  26. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/internal/__init__.py +6 -6
  27. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/internal/busy.py +126 -126
  28. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/internal/configure_delegation.py +205 -205
  29. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/internal/positioning.py +312 -186
  30. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/internal/publisher.py +133 -133
  31. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/internal/utility.py +52 -45
  32. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/internal/wheel.py +153 -153
  33. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/localization/README.md +111 -111
  34. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/localization/__init__.py +12 -12
  35. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/localization/api.py +126 -126
  36. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/localization/msgcat.py +215 -215
  37. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/localization/msgs.py +1507 -1507
  38. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/menu.py +86 -86
  39. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/publisher.py +15 -15
  40. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/py.typed +1 -1
  41. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/style/__init__.py +72 -72
  42. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/style/_compat.py +279 -279
  43. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/style/assets.py +160 -160
  44. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/style/bootstyle.py +1347 -1310
  45. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/style/builders/__init__.py +45 -45
  46. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/style/builders/button.py +359 -359
  47. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/style/builders/calendar.py +83 -83
  48. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/style/builders/checkbutton.py +77 -77
  49. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/style/builders/combobox.py +140 -140
  50. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/style/builders/entry.py +66 -66
  51. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/style/builders/floodgauge.py +93 -93
  52. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/style/builders/frame.py +117 -117
  53. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/style/builders/label.py +151 -151
  54. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/style/builders/labelframe.py +52 -52
  55. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/style/builders/menubutton.py +318 -318
  56. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/style/builders/notebook.py +77 -77
  57. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/style/builders/panedwindow.py +41 -41
  58. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/style/builders/progressbar.py +225 -225
  59. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/style/builders/radiobutton.py +75 -75
  60. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/style/builders/registry.py +116 -116
  61. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/style/builders/scale.py +108 -108
  62. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/style/builders/scrollbar.py +234 -234
  63. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/style/builders/separator.py +57 -57
  64. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/style/builders/sizegrip.py +45 -45
  65. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/style/builders/spinbox.py +102 -102
  66. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/style/builders/toggle.py +200 -200
  67. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/style/builders/toolbutton.py +307 -307
  68. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/style/builders/treeview.py +228 -183
  69. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/style/builders/utils.py +73 -73
  70. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/style/builders_tk.py +418 -341
  71. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/style/builders_ttk.py +378 -356
  72. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/style/elements.py +189 -189
  73. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/style/engine.py +966 -783
  74. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/style/icons.py +606 -594
  75. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/style/layout.py +237 -237
  76. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/style/scaling.py +120 -120
  77. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/style/theme.py +940 -921
  78. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/themes/__init__.py +11 -11
  79. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/themes/builtin.py +147 -147
  80. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/themes/legacy.py +108 -108
  81. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/themes/standard.py +396 -396
  82. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/utility.py +34 -34
  83. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/utils/__init__.py +92 -92
  84. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/utils/color.py +224 -218
  85. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/utils/config.py +128 -128
  86. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/utils/fonts.py +185 -185
  87. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/utils/platform.py +21 -21
  88. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/utils/scaling.py +92 -92
  89. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/validation.py +306 -306
  90. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/widgets/__init__.py +82 -82
  91. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/widgets/dateentry.py +579 -518
  92. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/widgets/floodgauge.py +769 -769
  93. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/widgets/labeledscale.py +226 -226
  94. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/widgets/meter.py +870 -870
  95. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/widgets/scrolled.py +669 -669
  96. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/widgets/tableview.py +2917 -2917
  97. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/widgets/toast.py +415 -415
  98. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/widgets/tooltip.py +372 -372
  99. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/window.py +936 -836
  100. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0/src/ttkbootstrap.egg-info}/PKG-INFO +159 -158
  101. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap.egg-info/SOURCES.txt +6 -0
  102. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkcreator/__main__.py +567 -567
  103. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/tests/test_bootstyle_grammar.py +374 -374
  104. ttkbootstrap-2.1.0/tests/test_bootstyle_value_tokens.py +302 -0
  105. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/tests/test_busy_api.py +143 -143
  106. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/tests/test_config_api.py +93 -93
  107. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/tests/test_configure_delegation.py +143 -143
  108. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/tests/test_dateentry_api.py +412 -264
  109. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/tests/test_dialogs_api.py +443 -304
  110. ttkbootstrap-2.1.0/tests/test_durable_style_options.py +464 -0
  111. ttkbootstrap-2.1.0/tests/test_filedialog_api.py +534 -0
  112. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/tests/test_floodgauge_api.py +195 -195
  113. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/tests/test_fonts_api.py +235 -185
  114. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/tests/test_icon_drop.py +91 -91
  115. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/tests/test_icon_theme.py +227 -219
  116. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/tests/test_labeledscale_tooltip_api.py +263 -250
  117. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/tests/test_menu_api.py +112 -112
  118. ttkbootstrap-2.1.0/tests/test_menu_border.py +139 -0
  119. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/tests/test_meter_api.py +171 -171
  120. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/tests/test_mixin_api.py +238 -238
  121. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/tests/test_scaling.py +564 -564
  122. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/tests/test_scroll_events.py +157 -157
  123. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/tests/test_scrolled_api.py +291 -291
  124. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/tests/test_style_package.py +103 -103
  125. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/tests/test_style_reference.py +114 -114
  126. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/tests/test_surface_color.py +105 -101
  127. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/tests/test_surface_families.py +187 -187
  128. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/tests/test_surface_grammar.py +233 -233
  129. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/tests/test_tableview_api.py +284 -284
  130. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/tests/test_toast_api.py +226 -226
  131. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/tests/test_toolkit.py +205 -205
  132. ttkbootstrap-2.1.0/tests/test_treeview_rowheight.py +120 -0
  133. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/tests/test_utility_api.py +120 -103
  134. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/tests/test_widget_catalog_coverage.py +81 -81
  135. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/tests/test_widget_reexports.py +36 -36
  136. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/tests/test_window_api.py +781 -459
  137. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/assets/app_icons/ttkbootstrap.ico +0 -0
  138. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/assets/app_icons/ttkbootstrap.png +0 -0
  139. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/assets/elements/checkbox-checked.png +0 -0
  140. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/assets/elements/checkbox-indeterminate.png +0 -0
  141. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/assets/elements/checkbox-unchecked.png +0 -0
  142. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/assets/elements/progressbar-default.png +0 -0
  143. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/assets/elements/progressbar-thin.png +0 -0
  144. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/assets/elements/radio.png +0 -0
  145. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/assets/elements/sizegrip.png +0 -0
  146. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/assets/elements/slider-handle.png +0 -0
  147. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/assets/elements/slider-track.png +0 -0
  148. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/assets/elements/switch-round.png +0 -0
  149. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/assets/elements/switch-square.png +0 -0
  150. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/assets/icons/bootstrap.ttf +0 -0
  151. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/assets/icons/glyphmap.json +0 -0
  152. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap/assets/icons/icon_metrics.json +0 -0
  153. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap.egg-info/dependency_links.txt +0 -0
  154. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap.egg-info/requires.txt +0 -0
  155. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkbootstrap.egg-info/top_level.txt +0 -0
  156. {ttkbootstrap-2.0.1 → ttkbootstrap-2.1.0}/src/ttkcreator/__init__.py +0 -0
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c) 2021 - 2026 Israel Dryer
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
1
+ MIT License
2
+
3
+ Copyright (c) 2021 - 2026 Israel Dryer
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -1,7 +1,7 @@
1
- include LICENSE
2
- include README.md
3
-
4
- graft src/ttkbootstrap
5
- graft src/ttkcreator
6
-
7
- global-exclude *.py[cod] __pycache__/* .DS_Store
1
+ include LICENSE
2
+ include README.md
3
+
4
+ graft src/ttkbootstrap
5
+ graft src/ttkcreator
6
+
7
+ global-exclude *.py[cod] __pycache__/* .DS_Store
@@ -1,158 +1,159 @@
1
- Metadata-Version: 2.4
2
- Name: ttkbootstrap
3
- Version: 2.0.1
4
- Summary: A supercharged theme extension for tkinter that enables on-demand modern flat style themes inspired by Bootstrap.
5
- Author-email: Israel Dryer <israel.dryer@gmail.com>
6
- License-Expression: MIT AND (Apache-2.0 OR BSD-2-Clause)
7
- Project-URL: Homepage, https://github.com/israel-dryer/ttkbootstrap
8
- Project-URL: Documentation, https://ttkbootstrap.readthedocs.io/en/latest/
9
- Keywords: tkinter,theme,ttk,bootstrap,gui,desktop,python3,ui,widgets,theming,cross-platform,modern,responsive,python-gui
10
- Classifier: Development Status :: 5 - Production/Stable
11
- Classifier: Environment :: Win32 (MS Windows)
12
- Classifier: Environment :: X11 Applications :: GTK
13
- Classifier: Intended Audience :: Developers
14
- Classifier: Programming Language :: Python :: 3
15
- Classifier: Programming Language :: Python :: 3.10
16
- Classifier: Programming Language :: Python :: 3.11
17
- Classifier: Programming Language :: Python :: 3.12
18
- Classifier: Programming Language :: Python :: 3.13
19
- Classifier: Programming Language :: Python :: 3.14
20
- Classifier: Topic :: Software Development :: User Interfaces
21
- Classifier: Operating System :: OS Independent
22
- Requires-Python: >=3.10
23
- Description-Content-Type: text/markdown
24
- License-File: LICENSE
25
- Requires-Dist: pillow<13,>=10
26
- Dynamic: license-file
27
-
28
- ![](https://img.shields.io/github/release/israel-dryer/ttkbootstrap.svg)
29
- [![Downloads](https://pepy.tech/badge/ttkbootstrap)](https://pepy.tech/project/ttkbootstrap)
30
- [![Downloads](https://pepy.tech/badge/ttkbootstrap/month)](https://pepy.tech/project/ttkbootstrap)
31
- ![](https://img.shields.io/github/issues/israel-dryer/ttkbootstrap.svg)
32
- ![](https://img.shields.io/github/license/israel-dryer/ttkbootstrap.svg)
33
- ![](https://img.shields.io/github/stars/israel-dryer/ttkbootstrap.svg)
34
- ![](https://img.shields.io/pypi/pyversions/ttkbootstrap.svg)
35
-
36
- # ttkbootstrap
37
-
38
- **Modern, themed tkinter — style any ttk widget with one keyword.**
39
-
40
- ttkbootstrap is a theming extension for tkinter. It generates flat,
41
- Bootstrap-inspired light and dark themes on demand and adds a single ``bootstyle``
42
- keyword to every ttk widget, so you describe *intent* — ``"primary"``,
43
- ``"success"``, ``"outline"`` — instead of hand-tuning colors or long ttk style
44
- names.
45
-
46
- <picture>
47
- <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/israel-dryer/ttkbootstrap/master/docs/_static/examples/home-hero-dark.png">
48
- <img alt="A ttkbootstrap window: color swatches above themed buttons, inputs, a meter, a table, and a notebook" src="https://raw.githubusercontent.com/israel-dryer/ttkbootstrap/master/docs/_static/examples/home-hero-light.png">
49
- </picture>
50
-
51
- ## Why ttkbootstrap
52
-
53
- - 🎨 **30 curated themes** — fifteen families, each in a coordinated light and dark variant, that switch at runtime.
54
- - ⌨️ **One-keyword styling** — `bootstyle="success"`, `bootstyle="info outline"`, `bootstyle="round toggle"`. The same keyword means the same thing on every widget.
55
- - 🧩 **Batteries-included** — styled ttk widgets plus a few extras (`Meter`, `DateEntry`, `Floodgauge`, `Tableview`) and fully themed dialogs.
56
- - 🛠️ **Your own themes & styles** — a declarative `Theme(...)` API and a public toolkit for building custom widget styles.
57
- - 🪶 **Pure Python** — one dependency (Pillow), Python 3.10+, no native extensions.
58
-
59
- It's a **styling layer for vanilla tkinter**, not a new framework: the widgets stay
60
- tkinter's, and everything you already know about tkinter still applies.
61
-
62
- ## Install
63
-
64
- ```bash
65
- python -m pip install ttkbootstrap
66
- ```
67
-
68
- ## Quickstart
69
-
70
- ```python
71
- import ttkbootstrap as ttk
72
-
73
- app = ttk.App(title="Hello")
74
-
75
- ttk.Label(app, text="Hello from ttkbootstrap!").pack(padx=16, pady=(16, 8))
76
- ttk.Button(app, text="Primary", bootstyle="primary").pack(padx=16, pady=4)
77
- ttk.Button(app, text="Success", bootstyle="success").pack(padx=16, pady=4)
78
- ttk.Button(app, text="Danger Outline", bootstyle="danger outline").pack(padx=16, pady=(4, 16))
79
-
80
- app.mainloop()
81
- ```
82
-
83
- <picture>
84
- <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/israel-dryer/ttkbootstrap/master/docs/_static/examples/quickstart-hello-dark.png">
85
- <img alt="The Hello window: a greeting label above primary, success, and danger-outline buttons" src="https://raw.githubusercontent.com/israel-dryer/ttkbootstrap/master/docs/_static/examples/quickstart-hello-light.png">
86
- </picture>
87
-
88
- ## The bootstyle keyword
89
-
90
- A `bootstyle` value is a small grammar — a **color**, plus an optional **modifier**
91
- and **widget type** — and the same keyword carries the same meaning across widgets:
92
-
93
- ```python
94
- ttk.Button(app, bootstyle="success")
95
- ttk.Progressbar(app, bootstyle="success")
96
- ttk.Entry(app, bootstyle="success")
97
- ```
98
-
99
- Add a modifier or a type for variants: `"info outline"`, `"success round toggle"`,
100
- `"warning striped"`. The vocabulary is closed, so a typo fails loudly instead of
101
- silently doing nothing. See the
102
- [bootstyle grammar](https://ttkbootstrap.readthedocs.io/en/latest/user-guide/foundations/bootstyle-grammar.html)
103
- for the full reference.
104
-
105
- ## Themes
106
-
107
- Thirty curated light and dark themes, switchable at runtime:
108
-
109
- ```python
110
- app.theme_use("bootstrap-dark") # any theme by name
111
- app.toggle_theme() # flip light <-> dark
112
- ```
113
-
114
- Browse them in the
115
- [themes gallery](https://ttkbootstrap.readthedocs.io/en/latest/themes.html).
116
-
117
- ## Documentation
118
-
119
- - **[Documentation](https://ttkbootstrap.readthedocs.io/en/latest/)** — guides, the widget catalog, and the API reference.
120
- - **[Build your first app](https://ttkbootstrap.readthedocs.io/en/latest/user-guide/getting-started/build-your-first-app.html)** — a step-by-step walkthrough.
121
- - **[Migrating to 2.0](https://ttkbootstrap.readthedocs.io/en/latest/user-guide/getting-started/migrating.html)** — upgrading from 1.x.
122
- - **[Release notes](https://github.com/israel-dryer/ttkbootstrap/releases)** — what changed in each version.
123
-
124
- ## Upgrading from 1.x
125
-
126
- 2.0 is a cleanup-and-consolidation release with some breaking changes — a canonical
127
- `bootstyle` grammar, a new theme catalog, and `App` alongside `Window`. Most code
128
- keeps working: legacy theme names and older spellings are accepted with a
129
- deprecation warning. The
130
- [Migrating to 2.0](https://ttkbootstrap.readthedocs.io/en/latest/user-guide/getting-started/migrating.html)
131
- guide sorts every change into breaking / deprecated / notable / new.
132
-
133
- ## Icons
134
-
135
- ttkbootstrap ships with the full [Bootstrap Icons](https://icons.getbootstrap.com/)
136
- set (2,000+ glyphs), rendered from a bundled font — theme-following, crisp at any
137
- size, and no extra dependency. Add one with the `icon=` keyword:
138
-
139
- ```python
140
- ttk.Button(app, text="Settings", icon="gear-fill", bootstyle="primary")
141
- ```
142
-
143
- Need other icon families — Font Awesome, Material, Lucide, and more? The
144
- [ttkbootstrap-icons](https://github.com/israel-dryer/ttkbootstrap-icons) extension
145
- is still available and adds installable icon providers alongside the built-in set.
146
-
147
- ## Contributing
148
-
149
- Contributions are welcome — please check out our contributing guidelines.
150
-
151
- ## Support
152
-
153
- This project is proudly developed with the support of the
154
- <a href="https://www.jetbrains.com/pycharm/" target="_blank" rel="noopener">PyCharm IDE</a>, generously provided by JetBrains.
155
-
156
- <a href="https://www.jetbrains.com/" target="_blank" rel="noopener"> <picture> <source media="(prefers-color-scheme: light)" srcset="https://github.com/user-attachments/assets/f6d4e79d-97f4-4368-a944-affd423aa922"> <img width="250" alt="JetBrains logo" src="https://github.com/user-attachments/assets/1e42e5db-ffb5-4c8d-b238-3f5633fb7e6d"> </picture> </a>
157
-
158
- <sub> © 2025 JetBrains s.r.o. JetBrains and the JetBrains logo are registered trademarks of JetBrains s.r.o. </sub>
1
+ Metadata-Version: 2.4
2
+ Name: ttkbootstrap
3
+ Version: 2.1.0
4
+ Summary: A supercharged theme extension for tkinter that enables on-demand modern flat style themes inspired by Bootstrap.
5
+ Author-email: Israel Dryer <israel.dryer@gmail.com>
6
+ License-Expression: MIT AND (Apache-2.0 OR BSD-2-Clause)
7
+ Project-URL: Homepage, https://github.com/israel-dryer/ttkbootstrap
8
+ Project-URL: Documentation, https://ttkbootstrap.readthedocs.io/en/latest/
9
+ Keywords: tkinter,theme,ttk,bootstrap,gui,desktop,python3,ui,widgets,theming,cross-platform,modern,responsive,python-gui
10
+ Classifier: Development Status :: 5 - Production/Stable
11
+ Classifier: Environment :: Win32 (MS Windows)
12
+ Classifier: Environment :: X11 Applications :: GTK
13
+ Classifier: Intended Audience :: Developers
14
+ Classifier: Programming Language :: Python :: 3
15
+ Classifier: Programming Language :: Python :: 3.10
16
+ Classifier: Programming Language :: Python :: 3.11
17
+ Classifier: Programming Language :: Python :: 3.12
18
+ Classifier: Programming Language :: Python :: 3.13
19
+ Classifier: Programming Language :: Python :: 3.14
20
+ Classifier: Topic :: Software Development :: User Interfaces
21
+ Classifier: Operating System :: OS Independent
22
+ Requires-Python: >=3.10
23
+ Description-Content-Type: text/markdown
24
+ License-File: LICENSE
25
+ Requires-Dist: pillow<13,>=10
26
+ Dynamic: license-file
27
+
28
+ [![CI](https://github.com/israel-dryer/ttkbootstrap/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/israel-dryer/ttkbootstrap/actions/workflows/ci.yml)
29
+ ![](https://img.shields.io/github/release/israel-dryer/ttkbootstrap.svg)
30
+ [![Downloads](https://pepy.tech/badge/ttkbootstrap)](https://pepy.tech/project/ttkbootstrap)
31
+ [![Downloads](https://pepy.tech/badge/ttkbootstrap/month)](https://pepy.tech/project/ttkbootstrap)
32
+ ![](https://img.shields.io/github/issues/israel-dryer/ttkbootstrap.svg)
33
+ ![](https://img.shields.io/github/license/israel-dryer/ttkbootstrap.svg)
34
+ ![](https://img.shields.io/github/stars/israel-dryer/ttkbootstrap.svg)
35
+ ![](https://img.shields.io/pypi/pyversions/ttkbootstrap.svg)
36
+
37
+ # ttkbootstrap
38
+
39
+ **Modern, themed tkinter — style any ttk widget with one keyword.**
40
+
41
+ ttkbootstrap is a theming extension for tkinter. It generates flat,
42
+ Bootstrap-inspired light and dark themes on demand and adds a single ``bootstyle``
43
+ keyword to every ttk widget, so you describe *intent* — ``"primary"``,
44
+ ``"success"``, ``"outline"`` — instead of hand-tuning colors or long ttk style
45
+ names.
46
+
47
+ <picture>
48
+ <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/israel-dryer/ttkbootstrap/master/docs/_static/examples/home-hero-dark.png">
49
+ <img alt="A ttkbootstrap window: color swatches above themed buttons, inputs, a meter, a table, and a notebook" src="https://raw.githubusercontent.com/israel-dryer/ttkbootstrap/master/docs/_static/examples/home-hero-light.png">
50
+ </picture>
51
+
52
+ ## Why ttkbootstrap
53
+
54
+ - 🎨 **30 curated themes** — fifteen families, each in a coordinated light and dark variant, that switch at runtime.
55
+ - ⌨️ **One-keyword styling** — `bootstyle="success"`, `bootstyle="info outline"`, `bootstyle="round toggle"`. The same keyword means the same thing on every widget.
56
+ - 🧩 **Batteries-included** — styled ttk widgets plus a few extras (`Meter`, `DateEntry`, `Floodgauge`, `Tableview`) and fully themed dialogs.
57
+ - 🛠️ **Your own themes & styles** — a declarative `Theme(...)` API and a public toolkit for building custom widget styles.
58
+ - 🪶 **Pure Python** — one dependency (Pillow), Python 3.10+, no native extensions.
59
+
60
+ It's a **styling layer for vanilla tkinter**, not a new framework: the widgets stay
61
+ tkinter's, and everything you already know about tkinter still applies.
62
+
63
+ ## Install
64
+
65
+ ```bash
66
+ python -m pip install ttkbootstrap
67
+ ```
68
+
69
+ ## Quickstart
70
+
71
+ ```python
72
+ import ttkbootstrap as ttk
73
+
74
+ app = ttk.App(title="Hello")
75
+
76
+ ttk.Label(app, text="Hello from ttkbootstrap!").pack(padx=16, pady=(16, 8))
77
+ ttk.Button(app, text="Primary", bootstyle="primary").pack(padx=16, pady=4)
78
+ ttk.Button(app, text="Success", bootstyle="success").pack(padx=16, pady=4)
79
+ ttk.Button(app, text="Danger Outline", bootstyle="danger outline").pack(padx=16, pady=(4, 16))
80
+
81
+ app.mainloop()
82
+ ```
83
+
84
+ <picture>
85
+ <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/israel-dryer/ttkbootstrap/master/docs/_static/examples/quickstart-hello-dark.png">
86
+ <img alt="The Hello window: a greeting label above primary, success, and danger-outline buttons" src="https://raw.githubusercontent.com/israel-dryer/ttkbootstrap/master/docs/_static/examples/quickstart-hello-light.png">
87
+ </picture>
88
+
89
+ ## The bootstyle keyword
90
+
91
+ A `bootstyle` value is a small grammar — a **color**, plus an optional **modifier**
92
+ and **widget type** — and the same keyword carries the same meaning across widgets:
93
+
94
+ ```python
95
+ ttk.Button(app, bootstyle="success")
96
+ ttk.Progressbar(app, bootstyle="success")
97
+ ttk.Entry(app, bootstyle="success")
98
+ ```
99
+
100
+ Add a modifier or a type for variants: `"info outline"`, `"success round toggle"`,
101
+ `"warning striped"`. The vocabulary is closed, so a typo fails loudly instead of
102
+ silently doing nothing. See the
103
+ [bootstyle grammar](https://ttkbootstrap.readthedocs.io/en/latest/user-guide/foundations/bootstyle-grammar.html)
104
+ for the full reference.
105
+
106
+ ## Themes
107
+
108
+ Thirty curated light and dark themes, switchable at runtime:
109
+
110
+ ```python
111
+ app.theme_use("bootstrap-dark") # any theme by name
112
+ app.toggle_theme() # flip light <-> dark
113
+ ```
114
+
115
+ Browse them in the
116
+ [themes gallery](https://ttkbootstrap.readthedocs.io/en/latest/themes.html).
117
+
118
+ ## Documentation
119
+
120
+ - **[Documentation](https://ttkbootstrap.readthedocs.io/en/latest/)** — guides, the widget catalog, and the API reference.
121
+ - **[Build your first app](https://ttkbootstrap.readthedocs.io/en/latest/user-guide/getting-started/build-your-first-app.html)** — a step-by-step walkthrough.
122
+ - **[Migrating to 2.0](https://ttkbootstrap.readthedocs.io/en/latest/user-guide/getting-started/migrating.html)** — upgrading from 1.x.
123
+ - **[Release notes](https://github.com/israel-dryer/ttkbootstrap/releases)** — what changed in each version.
124
+
125
+ ## Upgrading from 1.x
126
+
127
+ 2.0 is a cleanup-and-consolidation release with some breaking changes — a canonical
128
+ `bootstyle` grammar, a new theme catalog, and `App` alongside `Window`. Most code
129
+ keeps working: legacy theme names and older spellings are accepted with a
130
+ deprecation warning. The
131
+ [Migrating to 2.0](https://ttkbootstrap.readthedocs.io/en/latest/user-guide/getting-started/migrating.html)
132
+ guide sorts every change into breaking / deprecated / notable / new.
133
+
134
+ ## Icons
135
+
136
+ ttkbootstrap ships with the full [Bootstrap Icons](https://icons.getbootstrap.com/)
137
+ set (2,000+ glyphs), rendered from a bundled font — theme-following, crisp at any
138
+ size, and no extra dependency. Add one with the `icon=` keyword:
139
+
140
+ ```python
141
+ ttk.Button(app, text="Settings", icon="gear-fill", bootstyle="primary")
142
+ ```
143
+
144
+ Need other icon families — Font Awesome, Material, Lucide, and more? The
145
+ [ttkbootstrap-icons](https://github.com/israel-dryer/ttkbootstrap-icons) extension
146
+ is still available and adds installable icon providers alongside the built-in set.
147
+
148
+ ## Contributing
149
+
150
+ Contributions are welcome — please check out our contributing guidelines.
151
+
152
+ ## Support
153
+
154
+ This project is proudly developed with the support of the
155
+ <a href="https://www.jetbrains.com/pycharm/" target="_blank" rel="noopener">PyCharm IDE</a>, generously provided by JetBrains.
156
+
157
+ <a href="https://www.jetbrains.com/" target="_blank" rel="noopener"> <picture> <source media="(prefers-color-scheme: light)" srcset="https://github.com/user-attachments/assets/f6d4e79d-97f4-4368-a944-affd423aa922"> <img width="250" alt="JetBrains logo" src="https://github.com/user-attachments/assets/1e42e5db-ffb5-4c8d-b238-3f5633fb7e6d"> </picture> </a>
158
+
159
+ <sub> © 2025 JetBrains s.r.o. JetBrains and the JetBrains logo are registered trademarks of JetBrains s.r.o. </sub>