SaaS-FrameWork 0.1.1__tar.gz → 0.1.2__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 (91) hide show
  1. {saas_framework-0.1.1 → saas_framework-0.1.2}/MANIFEST.in +16 -16
  2. {saas_framework-0.1.1 → saas_framework-0.1.2}/PKG-INFO +4 -4
  3. {saas_framework-0.1.1 → saas_framework-0.1.2}/README.md +121 -121
  4. {saas_framework-0.1.1 → saas_framework-0.1.2}/SaaS_FrameWork.egg-info/SOURCES.txt +3 -0
  5. {saas_framework-0.1.1 → saas_framework-0.1.2}/components/__init__.py +125 -119
  6. {saas_framework-0.1.1 → saas_framework-0.1.2}/components/buttons/DEx_BtnFAB.py +37 -37
  7. {saas_framework-0.1.1 → saas_framework-0.1.2}/components/buttons/DEx_BtnFilled.py +20 -20
  8. {saas_framework-0.1.1 → saas_framework-0.1.2}/components/buttons/DEx_BtnGhost.py +23 -20
  9. {saas_framework-0.1.1 → saas_framework-0.1.2}/components/buttons/DEx_BtnIcon.py +18 -18
  10. {saas_framework-0.1.1 → saas_framework-0.1.2}/components/buttons/DEx_BtnPrimary.py +21 -21
  11. {saas_framework-0.1.1 → saas_framework-0.1.2}/components/buttons/DEx_BtnSegmented.py +45 -45
  12. {saas_framework-0.1.1 → saas_framework-0.1.2}/components/buttons/DEx_BtnText.py +22 -19
  13. {saas_framework-0.1.1 → saas_framework-0.1.2}/components/buttons/DEx_BtnTonal.py +20 -20
  14. {saas_framework-0.1.1 → saas_framework-0.1.2}/components/buttons/DEx_MenuBar.py +61 -61
  15. {saas_framework-0.1.1 → saas_framework-0.1.2}/components/buttons/DEx_PopupMenu.py +43 -43
  16. {saas_framework-0.1.1 → saas_framework-0.1.2}/components/cards/DEx_Card.py +23 -23
  17. {saas_framework-0.1.1 → saas_framework-0.1.2}/components/cards/DEx_ContactCard.py +52 -52
  18. {saas_framework-0.1.1 → saas_framework-0.1.2}/components/cards/DEx_MetricCard.py +36 -36
  19. {saas_framework-0.1.1 → saas_framework-0.1.2}/components/data/DEx_DataTable.py +82 -82
  20. {saas_framework-0.1.1 → saas_framework-0.1.2}/components/data/DEx_ExpansionPanel.py +39 -39
  21. {saas_framework-0.1.1 → saas_framework-0.1.2}/components/data/DEx_ExpansionTile.py +29 -29
  22. {saas_framework-0.1.1 → saas_framework-0.1.2}/components/data/DEx_GridView.py +65 -65
  23. {saas_framework-0.1.1 → saas_framework-0.1.2}/components/data/DEx_ListTile.py +27 -27
  24. {saas_framework-0.1.1 → saas_framework-0.1.2}/components/data/DEx_ListView.py +65 -65
  25. {saas_framework-0.1.1 → saas_framework-0.1.2}/components/data/DEx_PipelineColumn.py +74 -74
  26. {saas_framework-0.1.1 → saas_framework-0.1.2}/components/data/DEx_TreeView.py +769 -536
  27. {saas_framework-0.1.1 → saas_framework-0.1.2}/components/feedback/DEx_AlertDialog.py +26 -26
  28. {saas_framework-0.1.1 → saas_framework-0.1.2}/components/feedback/DEx_Banner.py +19 -19
  29. {saas_framework-0.1.1 → saas_framework-0.1.2}/components/feedback/DEx_BottomSheet.py +39 -37
  30. saas_framework-0.1.2/components/feedback/DEx_Notify.py +17 -0
  31. {saas_framework-0.1.1 → saas_framework-0.1.2}/components/feedback/DEx_ProgressBar.py +34 -34
  32. {saas_framework-0.1.1 → saas_framework-0.1.2}/components/feedback/DEx_ProgressRing.py +52 -52
  33. {saas_framework-0.1.1 → saas_framework-0.1.2}/components/feedback/DEx_Shimmer.py +84 -84
  34. {saas_framework-0.1.1 → saas_framework-0.1.2}/components/feedback/DEx_Tooltip.py +24 -24
  35. {saas_framework-0.1.1 → saas_framework-0.1.2}/components/inputs/DEx_AutoComplete.py +29 -29
  36. {saas_framework-0.1.1 → saas_framework-0.1.2}/components/inputs/DEx_Checkbox.py +27 -27
  37. {saas_framework-0.1.1 → saas_framework-0.1.2}/components/inputs/DEx_Chip.py +33 -33
  38. {saas_framework-0.1.1 → saas_framework-0.1.2}/components/inputs/DEx_DatePicker.py +74 -72
  39. {saas_framework-0.1.1 → saas_framework-0.1.2}/components/inputs/DEx_Dropdown.py +25 -25
  40. {saas_framework-0.1.1 → saas_framework-0.1.2}/components/inputs/DEx_FilePicker.py +70 -70
  41. {saas_framework-0.1.1 → saas_framework-0.1.2}/components/inputs/DEx_Radio.py +37 -37
  42. {saas_framework-0.1.1 → saas_framework-0.1.2}/components/inputs/DEx_SearchBar.py +37 -37
  43. {saas_framework-0.1.1 → saas_framework-0.1.2}/components/inputs/DEx_SearchField.py +9 -9
  44. {saas_framework-0.1.1 → saas_framework-0.1.2}/components/inputs/DEx_Slider.py +49 -49
  45. {saas_framework-0.1.1 → saas_framework-0.1.2}/components/inputs/DEx_Switch.py +22 -22
  46. saas_framework-0.1.2/components/inputs/DEx_TagInput.py +175 -0
  47. {saas_framework-0.1.1 → saas_framework-0.1.2}/components/inputs/DEx_TextField.py +29 -29
  48. {saas_framework-0.1.1 → saas_framework-0.1.2}/components/inputs/DEx_TimePicker.py +71 -71
  49. {saas_framework-0.1.1 → saas_framework-0.1.2}/components/layout/DEx_AnimatedSwitcher.py +43 -43
  50. {saas_framework-0.1.1 → saas_framework-0.1.2}/components/layout/DEx_AppBar.py +48 -48
  51. {saas_framework-0.1.1 → saas_framework-0.1.2}/components/layout/DEx_AppShell.py +80 -80
  52. {saas_framework-0.1.1 → saas_framework-0.1.2}/components/layout/DEx_Draggable.py +67 -67
  53. {saas_framework-0.1.1 → saas_framework-0.1.2}/components/layout/DEx_GestureDetector.py +52 -52
  54. {saas_framework-0.1.1 → saas_framework-0.1.2}/components/layout/DEx_Header.py +57 -57
  55. saas_framework-0.1.2/components/layout/DEx_Marquee.py +108 -0
  56. {saas_framework-0.1.1 → saas_framework-0.1.2}/components/layout/DEx_NavItem.py +80 -61
  57. {saas_framework-0.1.1 → saas_framework-0.1.2}/components/layout/DEx_NavigationBar.py +30 -30
  58. {saas_framework-0.1.1 → saas_framework-0.1.2}/components/layout/DEx_NavigationDrawer.py +60 -60
  59. {saas_framework-0.1.1 → saas_framework-0.1.2}/components/layout/DEx_NavigationRail.py +42 -42
  60. {saas_framework-0.1.1 → saas_framework-0.1.2}/components/layout/DEx_ResponsiveRow.py +42 -42
  61. {saas_framework-0.1.1 → saas_framework-0.1.2}/components/layout/DEx_Sidebar.py +131 -131
  62. saas_framework-0.1.2/components/layout/DEx_Splitter.py +127 -0
  63. {saas_framework-0.1.1 → saas_framework-0.1.2}/components/layout/DEx_Stack.py +73 -73
  64. {saas_framework-0.1.1 → saas_framework-0.1.2}/components/layout/DEx_Tabs.py +110 -110
  65. {saas_framework-0.1.1 → saas_framework-0.1.2}/components/metadata.py +104 -98
  66. {saas_framework-0.1.1 → saas_framework-0.1.2}/components/primitives/DEx_Avatar.py +87 -87
  67. {saas_framework-0.1.1 → saas_framework-0.1.2}/components/primitives/DEx_Badge.py +18 -18
  68. {saas_framework-0.1.1 → saas_framework-0.1.2}/components/primitives/DEx_Divider.py +13 -13
  69. {saas_framework-0.1.1 → saas_framework-0.1.2}/components/primitives/DEx_Icon.py +46 -46
  70. {saas_framework-0.1.1 → saas_framework-0.1.2}/components/primitives/DEx_Image.py +55 -55
  71. {saas_framework-0.1.1 → saas_framework-0.1.2}/components/primitives/DEx_Markdown.py +21 -21
  72. {saas_framework-0.1.1 → saas_framework-0.1.2}/components/primitives/DEx_SectionEyebrow.py +22 -22
  73. {saas_framework-0.1.1 → saas_framework-0.1.2}/components/primitives/DEx_StatusDot.py +8 -8
  74. saas_framework-0.1.2/components/project.py +54 -0
  75. {saas_framework-0.1.1 → saas_framework-0.1.2}/components/theme/DEx_ColorThemes.py +469 -375
  76. saas_framework-0.1.2/components/theme/DEx_Theme.py +196 -0
  77. saas_framework-0.1.2/components/theme/__init__.py +19 -0
  78. {saas_framework-0.1.1 → saas_framework-0.1.2}/components/versioning.py +103 -103
  79. {saas_framework-0.1.1 → saas_framework-0.1.2}/pyproject.toml +47 -47
  80. saas_framework-0.1.1/components/feedback/DEx_Notify.py +0 -15
  81. saas_framework-0.1.1/components/project.py +0 -23
  82. saas_framework-0.1.1/components/theme/DEx_Theme.py +0 -136
  83. saas_framework-0.1.1/components/theme/__init__.py +0 -4
  84. {saas_framework-0.1.1 → saas_framework-0.1.2}/components/buttons/__init__.py +0 -0
  85. {saas_framework-0.1.1 → saas_framework-0.1.2}/components/cards/__init__.py +0 -0
  86. {saas_framework-0.1.1 → saas_framework-0.1.2}/components/data/__init__.py +0 -0
  87. {saas_framework-0.1.1 → saas_framework-0.1.2}/components/feedback/__init__.py +0 -0
  88. {saas_framework-0.1.1 → saas_framework-0.1.2}/components/inputs/__init__.py +0 -0
  89. {saas_framework-0.1.1 → saas_framework-0.1.2}/components/layout/__init__.py +0 -0
  90. {saas_framework-0.1.1 → saas_framework-0.1.2}/components/primitives/__init__.py +0 -0
  91. {saas_framework-0.1.1 → saas_framework-0.1.2}/setup.cfg +0 -0
@@ -1,16 +1,16 @@
1
- include README.md
2
- include pyproject.toml
3
- recursive-include components *.py
4
- recursive-exclude * __pycache__ *.py[cod]
5
- prune .github
6
- prune .pytest_cache
7
- prune .pytest_tmp
8
- prune _base
9
- prune build
10
- prune catalog
11
- prune *.egg-info
12
- prune dist
13
- prune docs
14
- prune tests
15
- prune use_cases
16
- exclude files.zip
1
+ include README.md
2
+ include pyproject.toml
3
+ recursive-include components *.py
4
+ recursive-exclude * __pycache__ *.py[cod]
5
+ prune .github
6
+ prune .pytest_cache
7
+ prune .pytest_tmp
8
+ prune _base
9
+ prune build
10
+ prune catalog
11
+ prune *.egg-info
12
+ prune dist
13
+ prune docs
14
+ prune tests
15
+ prune use_cases
16
+ exclude files.zip
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: SaaS-FrameWork
3
- Version: 0.1.1
3
+ Version: 0.1.2
4
4
  Summary: SaaS-FrameWork - sistema de componentes reutilizaveis para apps SaaS construido com Python e Flet
5
5
  Author-email: Almir Duarte <almir.jg@gmail.com>
6
6
  License-Expression: MIT
@@ -106,7 +106,7 @@ The repository governance tests fail when this contract is broken.
106
106
  ## Folder Structure
107
107
 
108
108
  ```text
109
- DEx-FW_4/
109
+ SaaS-Framework/
110
110
  |-- _base/ preserved original reference
111
111
  |-- components/
112
112
  | |-- buttons/
@@ -149,14 +149,14 @@ Documented local virtual environment:
149
149
  C:\Python\venv\.venv_313_FW
150
150
  ```
151
151
 
152
- Run the catalog:
152
+ Run the catalog as desktop app:
153
153
 
154
154
  ```cmd
155
155
  call C:\Python\venv\.venv_313_FW\Scripts\activate.bat
156
156
  flet run catalog/main.py
157
157
  ```
158
158
 
159
- Run as web catalog:
159
+ Run as web catalog only when browser validation is required:
160
160
 
161
161
  ```cmd
162
162
  call C:\Python\venv\.venv_313_FW\Scripts\activate.bat
@@ -1,89 +1,89 @@
1
- # SaaS-FrameWork
1
+ # SaaS-FrameWork
2
2
 
3
3
  Python 3.13 + Flet design framework for reusable SaaS UI components.
4
4
 
5
5
  The project provides versioned UI components, isolated use cases, and a navigable component catalog.
6
6
 
7
- ## Versioning
8
-
9
- Library, component, and release branch versions follow the same `vv.rr.bb` rule.
10
-
11
- The library version is declared in `pyproject.toml`:
12
-
13
- ```toml
14
- [project]
15
- version = "0.1.1"
16
- ```
17
-
18
- Use cases and the catalog header read this version through `components/project.py`. Do not duplicate the project version manually in UI files.
19
-
20
- Each public component exposes its own version:
21
-
22
- ```python
23
- COMPONENT_VERSION = "0.0.1"
24
- ```
25
-
26
- Release branches must use the same format as the branch name:
27
-
28
- ```text
29
- 0.1.1
30
- ```
31
-
32
- Do not prefix release branch names with `v`, `release/`, or any other text.
33
-
34
- The accepted format is:
35
-
36
- ```text
37
- vv.rr.bb
38
- 0.0.0 through 99.99.99
7
+ ## Versioning
8
+
9
+ Library, component, and release branch versions follow the same `vv.rr.bb` rule.
10
+
11
+ The library version is declared in `pyproject.toml`:
12
+
13
+ ```toml
14
+ [project]
15
+ version = "0.1.1"
39
16
  ```
40
17
 
41
- Segment meaning:
42
-
43
- - `vv`: version. Increment for large changes that alter visual form, public API, or how the library/component is used.
44
- - `rr`: release. Increment for small scoped changes, such as a specific behavior or item adjustment.
45
- - `bb`: bug correction. Increment when a bug is fixed.
46
-
47
- Every library or component change must increment the relevant version. Each segment is incremented by one numeral. When `bb` reaches `99`, the next `bb` increment increments `rr` and resets `bb` to `0`. When `rr` reaches `99`, the next `rr` increment increments `vv` and resets `rr` to `0`.
48
-
49
- Version helpers live in `components/versioning.py`:
50
-
51
- - `validate_version(version)`
52
- - `validate_branch_version(branch_name)`
53
- - `bump_version(version, segment="bugfix")`
54
- - `ComponentMeta`
55
-
56
- Catalog metadata lives in `components/metadata.py` and is the source of truth for component name, group, version, and description.
57
-
58
- ## Package Boundary
59
-
60
- The distributable Python library is the `components` package.
61
-
62
- The following folders are repository assets and are intentionally excluded from the wheel:
63
-
64
- - `catalog/`: local visual catalog and inspection tool.
65
- - `use_cases/`: executable examples for development and documentation.
66
- - `docs/`: component documentation and generated structure images.
67
- - `_base/`: preserved reference material.
68
-
69
- This separation is enforced in `pyproject.toml` through `tool.setuptools.packages.find`.
70
-
71
- Adding a public component requires all of the following:
72
-
73
- - source file under `components/**/DEx_<Name>.py`
74
- - `COMPONENT_VERSION` in the source file
75
- - entry in `components/metadata.py`
76
- - public export in `components/__init__.py`
77
- - use case `use_cases/UC_<Name>_01.py`
78
- - documentation `docs/components/Documentação/DEx_<Name>.md`
79
- - four structure images in `docs/components/images/`
80
-
81
- The repository governance tests fail when this contract is broken.
18
+ Use cases and the catalog header read this version through `components/project.py`. Do not duplicate the project version manually in UI files.
19
+
20
+ Each public component exposes its own version:
21
+
22
+ ```python
23
+ COMPONENT_VERSION = "0.0.1"
24
+ ```
25
+
26
+ Release branches must use the same format as the branch name:
27
+
28
+ ```text
29
+ 0.1.1
30
+ ```
31
+
32
+ Do not prefix release branch names with `v`, `release/`, or any other text.
33
+
34
+ The accepted format is:
35
+
36
+ ```text
37
+ vv.rr.bb
38
+ 0.0.0 through 99.99.99
39
+ ```
40
+
41
+ Segment meaning:
42
+
43
+ - `vv`: version. Increment for large changes that alter visual form, public API, or how the library/component is used.
44
+ - `rr`: release. Increment for small scoped changes, such as a specific behavior or item adjustment.
45
+ - `bb`: bug correction. Increment when a bug is fixed.
46
+
47
+ Every library or component change must increment the relevant version. Each segment is incremented by one numeral. When `bb` reaches `99`, the next `bb` increment increments `rr` and resets `bb` to `0`. When `rr` reaches `99`, the next `rr` increment increments `vv` and resets `rr` to `0`.
48
+
49
+ Version helpers live in `components/versioning.py`:
50
+
51
+ - `validate_version(version)`
52
+ - `validate_branch_version(branch_name)`
53
+ - `bump_version(version, segment="bugfix")`
54
+ - `ComponentMeta`
55
+
56
+ Catalog metadata lives in `components/metadata.py` and is the source of truth for component name, group, version, and description.
57
+
58
+ ## Package Boundary
59
+
60
+ The distributable Python library is the `components` package.
61
+
62
+ The following folders are repository assets and are intentionally excluded from the wheel:
63
+
64
+ - `catalog/`: local visual catalog and inspection tool.
65
+ - `use_cases/`: executable examples for development and documentation.
66
+ - `docs/`: component documentation and generated structure images.
67
+ - `_base/`: preserved reference material.
68
+
69
+ This separation is enforced in `pyproject.toml` through `tool.setuptools.packages.find`.
70
+
71
+ Adding a public component requires all of the following:
72
+
73
+ - source file under `components/**/DEx_<Name>.py`
74
+ - `COMPONENT_VERSION` in the source file
75
+ - entry in `components/metadata.py`
76
+ - public export in `components/__init__.py`
77
+ - use case `use_cases/UC_<Name>_01.py`
78
+ - documentation `docs/components/Documentação/DEx_<Name>.md`
79
+ - four structure images in `docs/components/images/`
80
+
81
+ The repository governance tests fail when this contract is broken.
82
82
 
83
83
  ## Folder Structure
84
84
 
85
85
  ```text
86
- DEx-FW_4/
86
+ SaaS-Framework/
87
87
  |-- _base/ preserved original reference
88
88
  |-- components/
89
89
  | |-- buttons/
@@ -126,14 +126,14 @@ Documented local virtual environment:
126
126
  C:\Python\venv\.venv_313_FW
127
127
  ```
128
128
 
129
- Run the catalog:
129
+ Run the catalog as desktop app:
130
130
 
131
131
  ```cmd
132
132
  call C:\Python\venv\.venv_313_FW\Scripts\activate.bat
133
133
  flet run catalog/main.py
134
134
  ```
135
135
 
136
- Run as web catalog:
136
+ Run as web catalog only when browser validation is required:
137
137
 
138
138
  ```cmd
139
139
  call C:\Python\venv\.venv_313_FW\Scripts\activate.bat
@@ -147,51 +147,51 @@ call C:\Python\venv\.venv_313_FW\Scripts\activate.bat
147
147
  flet run use_cases/UC_MetricCard_01.py
148
148
  ```
149
149
 
150
- ## Validation
151
-
152
- Quick syntax validation:
150
+ ## Validation
151
+
152
+ Quick syntax validation:
153
+
154
+ ```cmd
155
+ python -m compileall components use_cases catalog
156
+ ```
157
+
158
+ Run the automated test suite:
159
+
160
+ ```cmd
161
+ C:\Python\venv\.venv_313_FW\Scripts\python.exe -m pytest -q
162
+ ```
163
+
164
+ Run optional visual screenshots:
165
+
166
+ ```powershell
167
+ C:\Python\venv\.venv_313_FW\Scripts\python.exe -m playwright install chromium
168
+ $env:DEX_RUN_VISUAL_TESTS="1"
169
+ C:\Python\venv\.venv_313_FW\Scripts\python.exe -m pytest tests/test_visual_screenshots.py -q
170
+ ```
171
+
172
+ Build and validate package metadata:
153
173
 
154
174
  ```cmd
155
- python -m compileall components use_cases catalog
156
- ```
157
-
158
- Run the automated test suite:
159
-
160
- ```cmd
161
- C:\Python\venv\.venv_313_FW\Scripts\python.exe -m pytest -q
162
- ```
163
-
164
- Run optional visual screenshots:
165
-
166
- ```powershell
167
- C:\Python\venv\.venv_313_FW\Scripts\python.exe -m playwright install chromium
168
- $env:DEX_RUN_VISUAL_TESTS="1"
169
- C:\Python\venv\.venv_313_FW\Scripts\python.exe -m pytest tests/test_visual_screenshots.py -q
170
- ```
171
-
172
- Build and validate package metadata:
173
-
174
- ```cmd
175
- C:\Python\venv\.venv_313_FW\Scripts\python.exe -m build
176
- C:\Python\venv\.venv_313_FW\Scripts\python.exe -m twine check dist/*
177
- ```
178
-
179
- Publish the package:
180
-
181
- ```powershell
182
- .\tools\publish_package.ps1 --test
183
- .\tools\publish_package.ps1 --prod
184
- .\tools\publish_package.ps1 --both
185
- .\tools\publish_package.ps1
186
- ```
187
-
188
- Without flags, the script asks:
189
-
190
- 1. teste
191
- 2. prod
192
- 3. ambos
193
-
194
- The script builds the package, checks the artifacts, and uploads to TestPyPI or PyPI based on the chosen destination.
175
+ C:\Python\venv\.venv_313_FW\Scripts\python.exe -m build
176
+ C:\Python\venv\.venv_313_FW\Scripts\python.exe -m twine check dist/*
177
+ ```
178
+
179
+ Publish the package:
180
+
181
+ ```powershell
182
+ .\tools\publish_package.ps1 --test
183
+ .\tools\publish_package.ps1 --prod
184
+ .\tools\publish_package.ps1 --both
185
+ .\tools\publish_package.ps1
186
+ ```
187
+
188
+ Without flags, the script asks:
189
+
190
+ 1. teste
191
+ 2. prod
192
+ 3. ambos
193
+
194
+ The script builds the package, checks the artifacts, and uploads to TestPyPI or PyPI based on the chosen destination.
195
195
 
196
196
  With the documented Flet environment:
197
197
 
@@ -418,7 +418,7 @@ Controles de feedback do usuário para estados transitórios.
418
418
  ## Adding a Component
419
419
 
420
420
  1. Create the component under the correct `components/<group>/` folder.
421
- 2. Add `COMPONENT_VERSION = "0.0.1"` for a new component.
421
+ 2. Add `COMPONENT_VERSION = "0.0.1"` for a new component.
422
422
  3. Add a docstring to the public component factory or class.
423
423
  4. Add metadata to `components/metadata.py`.
424
424
  5. Create an isolated use case in `use_cases/`.
@@ -49,6 +49,7 @@ components/inputs/DEx_SearchBar.py
49
49
  components/inputs/DEx_SearchField.py
50
50
  components/inputs/DEx_Slider.py
51
51
  components/inputs/DEx_Switch.py
52
+ components/inputs/DEx_TagInput.py
52
53
  components/inputs/DEx_TextField.py
53
54
  components/inputs/DEx_TimePicker.py
54
55
  components/inputs/__init__.py
@@ -58,12 +59,14 @@ components/layout/DEx_AppShell.py
58
59
  components/layout/DEx_Draggable.py
59
60
  components/layout/DEx_GestureDetector.py
60
61
  components/layout/DEx_Header.py
62
+ components/layout/DEx_Marquee.py
61
63
  components/layout/DEx_NavItem.py
62
64
  components/layout/DEx_NavigationBar.py
63
65
  components/layout/DEx_NavigationDrawer.py
64
66
  components/layout/DEx_NavigationRail.py
65
67
  components/layout/DEx_ResponsiveRow.py
66
68
  components/layout/DEx_Sidebar.py
69
+ components/layout/DEx_Splitter.py
67
70
  components/layout/DEx_Stack.py
68
71
  components/layout/DEx_Tabs.py
69
72
  components/layout/__init__.py
@@ -1,119 +1,125 @@
1
- """FrameWork — public API root."""
2
-
3
- from components.theme.DEx_Theme import Colors, Spacing, build_theme, build_theme_from_color_theme
4
- from components.theme.DEx_ColorThemes import COLOR_THEMES, DEx_ColorTheme
5
-
6
- from components.primitives.DEx_Badge import DEx_Badge
7
- from components.primitives.DEx_Divider import DEx_Divider
8
- from components.primitives.DEx_SectionEyebrow import DEx_SectionEyebrow
9
- from components.primitives.DEx_StatusDot import DEx_StatusDot
10
- from components.primitives.DEx_Avatar import DEx_Avatar, DEx_AvatarGroup
11
- from components.primitives.DEx_Image import DEx_Image, DEx_ImagePlaceholder
12
- from components.primitives.DEx_Icon import DEx_Icon, DEx_IconBadge
13
- from components.primitives.DEx_Markdown import DEx_Markdown
14
-
15
- from components.cards.DEx_Card import DEx_Card
16
- from components.cards.DEx_MetricCard import DEx_MetricCard
17
- from components.cards.DEx_ContactCard import DEx_ContactCard
18
-
19
- from components.buttons.DEx_BtnPrimary import DEx_BtnPrimary
20
- from components.buttons.DEx_BtnGhost import DEx_BtnGhost
21
- from components.buttons.DEx_BtnIcon import DEx_BtnIcon
22
- from components.buttons.DEx_BtnFilled import DEx_BtnFilled
23
- from components.buttons.DEx_BtnTonal import DEx_BtnTonal
24
- from components.buttons.DEx_BtnText import DEx_BtnText
25
- from components.buttons.DEx_BtnFAB import DEx_BtnFAB
26
- from components.buttons.DEx_BtnSegmented import DEx_BtnSegmented
27
- from components.buttons.DEx_MenuBar import DEx_MenuBar
28
- from components.buttons.DEx_PopupMenu import DEx_PopupMenu
29
-
30
- from components.inputs.DEx_TextField import DEx_TextField
31
- from components.inputs.DEx_SearchField import DEx_SearchField
32
- from components.inputs.DEx_Dropdown import DEx_Dropdown
33
- from components.inputs.DEx_Checkbox import DEx_Checkbox
34
- from components.inputs.DEx_Switch import DEx_Switch
35
- from components.inputs.DEx_Radio import DEx_Radio
36
- from components.inputs.DEx_Slider import DEx_Slider
37
- from components.inputs.DEx_Chip import DEx_Chip
38
- from components.inputs.DEx_AutoComplete import DEx_AutoComplete
39
- from components.inputs.DEx_SearchBar import DEx_SearchBar
40
- from components.inputs.DEx_DatePicker import DEx_DateField, DEx_DateRangeField
41
- from components.inputs.DEx_TimePicker import DEx_TimeField, DEx_TimeRangeField
42
- from components.inputs.DEx_FilePicker import DEx_FilePicker, DEx_FilePickerButton
43
-
44
- from components.data.DEx_DataTable import DEx_DataTable
45
- from components.data.DEx_PipelineColumn import DEx_PipelineColumn
46
- from components.data.DEx_TreeView import DEx_TreeView
47
- from components.data.DEx_ListTile import DEx_ListTile
48
- from components.data.DEx_ExpansionTile import DEx_ExpansionTile
49
- from components.data.DEx_ExpansionPanel import DEx_ExpansionPanel
50
- from components.data.DEx_ListView import DEx_ListView
51
- from components.data.DEx_GridView import DEx_GridView
52
-
53
- from components.layout.DEx_AppShell import DEx_AppShell
54
- from components.layout.DEx_Sidebar import DEx_Sidebar
55
- from components.layout.DEx_Header import DEx_Header
56
- from components.layout.DEx_NavItem import DEx_NavItem
57
- from components.layout.DEx_Tabs import DEx_Tabs, DEx_Tab
58
- from components.layout.DEx_NavigationBar import DEx_NavigationBar
59
- from components.layout.DEx_NavigationRail import DEx_NavigationRail
60
- from components.layout.DEx_NavigationDrawer import DEx_NavigationDrawer
61
- from components.layout.DEx_AppBar import DEx_AppBar, DEx_BottomAppBar
62
- from components.layout.DEx_Stack import DEx_Stack, DEx_StackOverlay, DEx_StackBadge
63
- from components.layout.DEx_ResponsiveRow import DEx_ResponsiveRow, DEx_Col
64
- from components.layout.DEx_GestureDetector import DEx_GestureDetector, DEx_Hoverable
65
- from components.layout.DEx_Draggable import DEx_Draggable, DEx_DragTarget
66
- from components.layout.DEx_AnimatedSwitcher import DEx_AnimatedSwitcher, DEx_AnimatedContainer
67
-
68
- from components.feedback.DEx_Notify import DEx_Notify
69
- from components.feedback.DEx_AlertDialog import DEx_AlertDialog
70
- from components.feedback.DEx_BottomSheet import DEx_BottomSheet
71
- from components.feedback.DEx_Banner import DEx_Banner
72
- from components.feedback.DEx_Tooltip import DEx_Tooltip
73
- from components.feedback.DEx_ProgressBar import DEx_ProgressBar
74
- from components.feedback.DEx_ProgressRing import DEx_ProgressRing
75
- from components.feedback.DEx_Shimmer import DEx_ShimmerCard, DEx_ShimmerListItem, DEx_ShimmerList
76
-
77
- __version__ = "0.1.1"
78
-
79
- __all__ = [
80
- # theme
81
- "Colors", "Spacing", "build_theme", "build_theme_from_color_theme", "COLOR_THEMES", "DEx_ColorTheme",
82
- # primitives
83
- "DEx_Badge", "DEx_Divider", "DEx_SectionEyebrow", "DEx_StatusDot",
84
- "DEx_Avatar", "DEx_AvatarGroup", "DEx_Image", "DEx_ImagePlaceholder",
85
- "DEx_Icon", "DEx_IconBadge", "DEx_Markdown",
86
- # cards
87
- "DEx_Card", "DEx_MetricCard", "DEx_ContactCard",
88
- # buttons
89
- "DEx_BtnPrimary", "DEx_BtnGhost", "DEx_BtnIcon", "DEx_BtnFilled",
90
- "DEx_BtnTonal", "DEx_BtnText", "DEx_BtnFAB", "DEx_BtnSegmented",
91
- "DEx_MenuBar", "DEx_PopupMenu",
92
- # inputs
93
- "DEx_TextField", "DEx_SearchField", "DEx_Dropdown", "DEx_Checkbox",
94
- "DEx_Switch", "DEx_Radio", "DEx_Slider", "DEx_Chip",
95
- "DEx_AutoComplete", "DEx_SearchBar",
96
- "DEx_DateField", "DEx_DateRangeField",
97
- "DEx_TimeField", "DEx_TimeRangeField",
98
- "DEx_FilePicker", "DEx_FilePickerButton",
99
- # data
100
- "DEx_DataTable", "DEx_PipelineColumn", "DEx_TreeView",
101
- "DEx_ListTile", "DEx_ExpansionTile", "DEx_ExpansionPanel",
102
- "DEx_ListView", "DEx_GridView",
103
- # layout
104
- "DEx_AppShell", "DEx_Sidebar", "DEx_Header", "DEx_NavItem",
105
- "DEx_Tabs", "DEx_Tab",
106
- "DEx_NavigationBar", "DEx_NavigationRail", "DEx_NavigationDrawer", "DEx_AppBar",
107
- "DEx_BottomAppBar",
108
- "DEx_Stack", "DEx_StackOverlay", "DEx_StackBadge",
109
- "DEx_ResponsiveRow", "DEx_Col",
110
- "DEx_GestureDetector", "DEx_Hoverable",
111
- "DEx_Draggable", "DEx_DragTarget",
112
- "DEx_AnimatedSwitcher", "DEx_AnimatedContainer",
113
- # feedback
114
- "DEx_Notify", "DEx_AlertDialog", "DEx_BottomSheet", "DEx_Banner",
115
- "DEx_Tooltip", "DEx_ProgressBar", "DEx_ProgressRing",
116
- "DEx_ShimmerCard", "DEx_ShimmerListItem", "DEx_ShimmerList",
117
- # meta
118
- "__version__",
119
- ]
1
+ """FrameWork — public API root."""
2
+
3
+ from components.theme.DEx_Theme import Colors, Spacing, build_theme, build_theme_from_color_theme
4
+ from components.theme.DEx_ColorThemes import COLOR_THEMES, DEx_ColorTheme
5
+
6
+ from components.primitives.DEx_Badge import DEx_Badge
7
+ from components.primitives.DEx_Divider import DEx_Divider
8
+ from components.primitives.DEx_SectionEyebrow import DEx_SectionEyebrow
9
+ from components.primitives.DEx_StatusDot import DEx_StatusDot
10
+ from components.primitives.DEx_Avatar import DEx_Avatar, DEx_AvatarGroup
11
+ from components.primitives.DEx_Image import DEx_Image, DEx_ImagePlaceholder
12
+ from components.primitives.DEx_Icon import DEx_Icon, DEx_IconBadge
13
+ from components.primitives.DEx_Markdown import DEx_Markdown
14
+
15
+ from components.cards.DEx_Card import DEx_Card
16
+ from components.cards.DEx_MetricCard import DEx_MetricCard
17
+ from components.cards.DEx_ContactCard import DEx_ContactCard
18
+
19
+ from components.buttons.DEx_BtnPrimary import DEx_BtnPrimary
20
+ from components.buttons.DEx_BtnGhost import DEx_BtnGhost
21
+ from components.buttons.DEx_BtnIcon import DEx_BtnIcon
22
+ from components.buttons.DEx_BtnFilled import DEx_BtnFilled
23
+ from components.buttons.DEx_BtnTonal import DEx_BtnTonal
24
+ from components.buttons.DEx_BtnText import DEx_BtnText
25
+ from components.buttons.DEx_BtnFAB import DEx_BtnFAB
26
+ from components.buttons.DEx_BtnSegmented import DEx_BtnSegmented
27
+ from components.buttons.DEx_MenuBar import DEx_MenuBar
28
+ from components.buttons.DEx_PopupMenu import DEx_PopupMenu
29
+
30
+ from components.inputs.DEx_TextField import DEx_TextField
31
+ from components.inputs.DEx_SearchField import DEx_SearchField
32
+ from components.inputs.DEx_Dropdown import DEx_Dropdown
33
+ from components.inputs.DEx_Checkbox import DEx_Checkbox
34
+ from components.inputs.DEx_Switch import DEx_Switch
35
+ from components.inputs.DEx_Radio import DEx_Radio
36
+ from components.inputs.DEx_Slider import DEx_Slider
37
+ from components.inputs.DEx_Chip import DEx_Chip
38
+ from components.inputs.DEx_AutoComplete import DEx_AutoComplete
39
+ from components.inputs.DEx_SearchBar import DEx_SearchBar
40
+ from components.inputs.DEx_DatePicker import DEx_DateField, DEx_DateRangeField
41
+ from components.inputs.DEx_TimePicker import DEx_TimeField, DEx_TimeRangeField
42
+ from components.inputs.DEx_FilePicker import DEx_FilePicker, DEx_FilePickerButton
43
+ from components.inputs.DEx_TagInput import DEx_TagInput, DEx_TagChips
44
+
45
+ from components.data.DEx_DataTable import DEx_DataTable
46
+ from components.data.DEx_PipelineColumn import DEx_PipelineColumn
47
+ from components.data.DEx_TreeView import DEx_TreeView
48
+ from components.data.DEx_ListTile import DEx_ListTile
49
+ from components.data.DEx_ExpansionTile import DEx_ExpansionTile
50
+ from components.data.DEx_ExpansionPanel import DEx_ExpansionPanel
51
+ from components.data.DEx_ListView import DEx_ListView
52
+ from components.data.DEx_GridView import DEx_GridView
53
+
54
+ from components.layout.DEx_AppShell import DEx_AppShell
55
+ from components.layout.DEx_Sidebar import DEx_Sidebar
56
+ from components.layout.DEx_Header import DEx_Header
57
+ from components.layout.DEx_NavItem import DEx_NavItem
58
+ from components.layout.DEx_Tabs import DEx_Tabs, DEx_Tab
59
+ from components.layout.DEx_NavigationBar import DEx_NavigationBar
60
+ from components.layout.DEx_NavigationRail import DEx_NavigationRail
61
+ from components.layout.DEx_NavigationDrawer import DEx_NavigationDrawer
62
+ from components.layout.DEx_AppBar import DEx_AppBar, DEx_BottomAppBar
63
+ from components.layout.DEx_Stack import DEx_Stack, DEx_StackOverlay, DEx_StackBadge
64
+ from components.layout.DEx_ResponsiveRow import DEx_ResponsiveRow, DEx_Col
65
+ from components.layout.DEx_GestureDetector import DEx_GestureDetector, DEx_Hoverable
66
+ from components.layout.DEx_Draggable import DEx_Draggable, DEx_DragTarget
67
+ from components.layout.DEx_AnimatedSwitcher import DEx_AnimatedSwitcher, DEx_AnimatedContainer
68
+ from components.layout.DEx_Splitter import DEx_Splitter
69
+ from components.layout.DEx_Marquee import DEx_Marquee
70
+
71
+ from components.feedback.DEx_Notify import DEx_Notify
72
+ from components.feedback.DEx_AlertDialog import DEx_AlertDialog
73
+ from components.feedback.DEx_BottomSheet import DEx_BottomSheet
74
+ from components.feedback.DEx_Banner import DEx_Banner
75
+ from components.feedback.DEx_Tooltip import DEx_Tooltip
76
+ from components.feedback.DEx_ProgressBar import DEx_ProgressBar
77
+ from components.feedback.DEx_ProgressRing import DEx_ProgressRing
78
+ from components.feedback.DEx_Shimmer import DEx_ShimmerCard, DEx_ShimmerListItem, DEx_ShimmerList
79
+
80
+ __version__ = "0.1.1"
81
+
82
+ __all__ = [
83
+ # theme
84
+ "Colors", "Spacing", "build_theme", "build_theme_from_color_theme", "COLOR_THEMES", "DEx_ColorTheme",
85
+ # primitives
86
+ "DEx_Badge", "DEx_Divider", "DEx_SectionEyebrow", "DEx_StatusDot",
87
+ "DEx_Avatar", "DEx_AvatarGroup", "DEx_Image", "DEx_ImagePlaceholder",
88
+ "DEx_Icon", "DEx_IconBadge", "DEx_Markdown",
89
+ # cards
90
+ "DEx_Card", "DEx_MetricCard", "DEx_ContactCard",
91
+ # buttons
92
+ "DEx_BtnPrimary", "DEx_BtnGhost", "DEx_BtnIcon", "DEx_BtnFilled",
93
+ "DEx_BtnTonal", "DEx_BtnText", "DEx_BtnFAB", "DEx_BtnSegmented",
94
+ "DEx_MenuBar", "DEx_PopupMenu",
95
+ # inputs
96
+ "DEx_TextField", "DEx_SearchField", "DEx_Dropdown", "DEx_Checkbox",
97
+ "DEx_Switch", "DEx_Radio", "DEx_Slider", "DEx_Chip",
98
+ "DEx_AutoComplete", "DEx_SearchBar",
99
+ "DEx_DateField", "DEx_DateRangeField",
100
+ "DEx_TimeField", "DEx_TimeRangeField",
101
+ "DEx_FilePicker", "DEx_FilePickerButton",
102
+ "DEx_TagInput", "DEx_TagChips",
103
+ # data
104
+ "DEx_DataTable", "DEx_PipelineColumn", "DEx_TreeView",
105
+ "DEx_ListTile", "DEx_ExpansionTile", "DEx_ExpansionPanel",
106
+ "DEx_ListView", "DEx_GridView",
107
+ # layout
108
+ "DEx_AppShell", "DEx_Sidebar", "DEx_Header", "DEx_NavItem",
109
+ "DEx_Tabs", "DEx_Tab",
110
+ "DEx_NavigationBar", "DEx_NavigationRail", "DEx_NavigationDrawer", "DEx_AppBar",
111
+ "DEx_BottomAppBar",
112
+ "DEx_Stack", "DEx_StackOverlay", "DEx_StackBadge",
113
+ "DEx_ResponsiveRow", "DEx_Col",
114
+ "DEx_GestureDetector", "DEx_Hoverable",
115
+ "DEx_Draggable", "DEx_DragTarget",
116
+ "DEx_AnimatedSwitcher", "DEx_AnimatedContainer",
117
+ "DEx_Splitter",
118
+ "DEx_Marquee",
119
+ # feedback
120
+ "DEx_Notify", "DEx_AlertDialog", "DEx_BottomSheet", "DEx_Banner",
121
+ "DEx_Tooltip", "DEx_ProgressBar", "DEx_ProgressRing",
122
+ "DEx_ShimmerCard", "DEx_ShimmerListItem", "DEx_ShimmerList",
123
+ # meta
124
+ "__version__",
125
+ ]