eidosui 0.2.0__py3-none-any.whl → 0.4.0__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.
eidos/tags.py CHANGED
@@ -1,99 +1,194 @@
1
- from typing import Optional, Literal
1
+ from typing import Optional, Literal, Any, Union
2
2
  import air
3
3
  from . import styles
4
4
  from .utils import stringify
5
5
 
6
- def Button(*content, cls = styles.buttons.primary, **kwargs):
7
- return air.Button(*content, cls=stringify(styles.buttons.base, cls), **kwargs)
6
+ # Define exports for this module
7
+ __all__ = [
8
+ # Custom EidosUI components
9
+ 'Button', 'H1', 'H2', 'H3', 'H4', 'H5', 'H6', 'Body',
10
+ # Semantic components with styling
11
+ 'Strong', 'I', 'Small', 'Del', 'Abbr', 'Var', 'Mark', 'Time',
12
+ 'Code', 'Pre', 'Kbd', 'Samp', 'Blockquote', 'Cite', 'Address',
13
+ 'Hr', 'Details', 'Summary', 'Dl', 'Dt', 'Dd', 'Figure', 'Figcaption',
14
+ # Pass-through HTML tags from air.tags
15
+ 'A', 'Area', 'Article', 'Aside', 'Audio', 'B', 'Base', 'Bdi', 'Bdo', 'Br',
16
+ 'Canvas', 'Caption', 'Col', 'Colgroup', 'Data', 'Datalist', 'Dfn', 'Dialog', 'Div',
17
+ 'Em', 'Embed', 'Fieldset', 'Footer', 'Form', 'Head', 'Header', 'Hgroup', 'Html',
18
+ 'Iframe', 'Img', 'Input', 'Ins', 'Label', 'Legend', 'Li', 'Link',
19
+ 'Main', 'Map', 'Menu', 'Meta', 'Meter', 'Nav', 'Noscript', 'Object', 'Ol', 'Optgroup', 'Option', 'Output',
20
+ 'P', 'Param', 'Picture', 'Progress', 'Q', 'Rp', 'Rt', 'Ruby',
21
+ 'S', 'Script', 'Search', 'Section', 'Select', 'Source', 'Span', 'Style', 'Sub', 'Sup',
22
+ 'Table', 'Tbody', 'Td', 'Template', 'Textarea', 'Tfoot', 'Th', 'Thead', 'Title', 'Tr', 'Track',
23
+ 'U', 'Ul', 'Video', 'Wbr'
24
+ ]
25
+
26
+ def Button(*content: Any, class_: Optional[Union[str, list[str]]] = styles.buttons.primary, **kwargs: Any) -> air.Tag:
27
+ """
28
+ Args:
29
+ content: The content of the button.
30
+ class_: The class of the button.
31
+ **kwargs: Additional keyword arguments passed to the button tag.
32
+
33
+ Returns:
34
+ air.Tag: The button tag.
35
+
36
+ Example:
37
+ Button("Click me", class_=styles.buttons.primary)
38
+ """
39
+ return air.Button(*content, class_=stringify(styles.buttons.base, class_), **kwargs)
40
+
41
+ def H1(*content: Any, class_: Optional[Union[str, list[str]]] = None, **kwargs: Any) -> air.Tag:
42
+ """
43
+ Args:
44
+ content: The content of the h1 tag.
45
+ class_: The class of the h1 tag.
46
+ **kwargs: Additional keyword arguments passed to the h1 tag.
47
+
48
+ Returns:
49
+ air.Tag: The h1 tag.
50
+
51
+ Example:
52
+ H1("Hello, world!")
53
+ """
54
+ return air.H1(*content, class_=stringify(styles.typography.h1, class_), **kwargs)
55
+
56
+ def H2(*content: Any, class_: Optional[Union[str, list[str]]] = None, **kwargs: Any) -> air.Tag:
57
+ """
58
+ Args:
59
+ content: The content of the h2 tag.
60
+ class_: The class of the h2 tag.
61
+ **kwargs: Additional keyword arguments passed to the h2 tag.
62
+
63
+ Returns:
64
+ air.Tag: The h2 tag.
65
+
66
+ Example:
67
+ H2("Hello, world!")
68
+ """
69
+ return air.H2(*content, class_=stringify(styles.typography.h2, class_), **kwargs)
70
+
71
+ def H3(*content: Any, class_: Optional[Union[str, list[str]]] = None, **kwargs: Any) -> air.Tag:
72
+ """
73
+ Args:
74
+ content: The content of the h3 tag.
75
+ class_: The class of the h3 tag.
76
+ **kwargs: Additional keyword arguments passed to the h3 tag.
77
+
78
+ Returns:
79
+ air.Tag: The h3 tag.
80
+
81
+ Example:
82
+ H3("Hello, world!")
83
+ """
84
+ return air.H3(*content, class_=stringify(styles.typography.h3, class_), **kwargs)
85
+
86
+ def H4(*content: Any, class_: Optional[Union[str, list[str]]] = None, **kwargs: Any) -> air.Tag:
87
+ return air.H4(*content, class_=stringify(styles.typography.h4, class_), **kwargs)
88
+
89
+ def H5(*content: Any, class_: Optional[Union[str, list[str]]] = None, **kwargs: Any) -> air.Tag:
90
+ return air.H5(*content, class_=stringify(styles.typography.h5, class_), **kwargs)
91
+
92
+ def H6(*content: Any, class_: Optional[Union[str, list[str]]] = None, **kwargs: Any) -> air.Tag:
93
+ return air.H6(*content, class_=stringify(styles.typography.h6, class_), **kwargs)
94
+
95
+ def Body(*content: Any, class_: Optional[Union[str, list[str]]] = None, **kwargs: Any) -> air.Tag:
96
+ return air.Body(*content, class_=stringify(styles.Theme.body, class_), **kwargs)
8
97
 
9
- def H1(*content, cls = None, **kwargs):
10
- return air.H1(*content, cls=stringify(styles.typography.h1, cls), **kwargs)
11
-
12
- def H2(*content, cls = None, **kwargs):
13
- return air.H2(*content, cls=stringify(styles.typography.h2, cls), **kwargs)
14
-
15
- def H3(*content, cls = None, **kwargs):
16
- return air.H3(*content, cls=stringify(styles.typography.h3, cls), **kwargs)
17
-
18
- def H4(*content, cls = None, **kwargs):
19
- return air.H4(*content, cls=stringify(styles.typography.h4, cls), **kwargs)
98
+ # Semantic HTML Elements
20
99
 
21
- def H5(*content, cls = None, **kwargs):
22
- return air.H5(*content, cls=stringify(styles.typography.h5, cls), **kwargs)
100
+ def Strong(*content: Any, class_: Optional[Union[str, list[str]]] = None, **kwargs: Any) -> air.Tag:
101
+ return air.Strong(*content, class_=stringify(styles.semantic.strong, class_), **kwargs)
23
102
 
24
- def H6(*content, cls = None, **kwargs):
25
- return air.H6(*content, cls=stringify(styles.typography.h6, cls), **kwargs)
103
+ def I(*content: Any, class_: Optional[Union[str, list[str]]] = None, **kwargs: Any) -> air.Tag:
104
+ return air.I(*content, class_=stringify(styles.semantic.i, class_), **kwargs)
26
105
 
27
- def Body(*content, cls = None, **kwargs):
28
- return air.Body(*content, cls=stringify(styles.Theme.body, cls), **kwargs)
106
+ def Small(*content: Any, class_: Optional[Union[str, list[str]]] = None, **kwargs: Any) -> air.Tag:
107
+ return air.Small(*content, class_=stringify(styles.semantic.small, class_), **kwargs)
29
108
 
30
- # Semantic HTML Elements
109
+ def Del(*content: Any, class_: Optional[Union[str, list[str]]] = None, **kwargs: Any) -> air.Tag:
110
+ return air.Del(*content, class_=stringify(styles.semantic.del_, class_), **kwargs)
31
111
 
32
- def Strong(*content, cls = None, **kwargs):
33
- return air.Strong(*content, cls=stringify(styles.semantic.strong, cls), **kwargs)
112
+ def Abbr(*content: Any, class_: Optional[Union[str, list[str]]] = None, **kwargs: Any) -> air.Tag:
113
+ """
114
+ Args:
115
+ content: The content of the abbr tag.
116
+ class_: The class of the abbr tag.
117
+ **kwargs: Additional keyword arguments passed to the abbr tag.
34
118
 
35
- def I(*content, cls = None, **kwargs):
36
- return air.I(*content, cls=stringify(styles.semantic.i, cls), **kwargs)
119
+ Returns:
120
+ air.Tag: The abbr tag.
37
121
 
38
- def Small(*content, cls = None, **kwargs):
39
- return air.Small(*content, cls=stringify(styles.semantic.small, cls), **kwargs)
122
+ Example:
123
+ Abbr("HTML", title="Hyper Text Markup Language")
124
+ """
125
+ return air.Abbr(*content, class_=stringify(styles.semantic.abbr, class_), **kwargs)
40
126
 
41
- def Del(*content, cls = None, **kwargs):
42
- return air.Del(*content, cls=stringify(styles.semantic.del_, cls), **kwargs)
127
+ def Var(*content: Any, class_: Optional[Union[str, list[str]]] = None, **kwargs: Any) -> air.Tag:
128
+ return air.Var(*content, class_=stringify(styles.semantic.var, class_), **kwargs)
43
129
 
44
- def Abbr(*content, cls = None, **kwargs):
45
- return air.Abbr(*content, cls=stringify(styles.semantic.abbr, cls), **kwargs)
130
+ def Mark(*content: Any, class_: Optional[Union[str, list[str]]] = None, **kwargs: Any) -> air.Tag:
131
+ return air.Mark(*content, class_=stringify(styles.semantic.mark, class_), **kwargs)
46
132
 
47
- def Var(*content, cls = None, **kwargs):
48
- return air.Var(*content, cls=stringify(styles.semantic.var, cls), **kwargs)
133
+ def Time(*content: Any, class_: Optional[Union[str, list[str]]] = None, **kwargs: Any) -> air.Tag:
134
+ return air.Time(*content, class_=stringify(styles.semantic.time, class_), **kwargs)
49
135
 
50
- def Mark(*content, cls = None, **kwargs):
51
- return air.Mark(*content, cls=stringify(styles.semantic.mark, cls), **kwargs)
136
+ def Code(*content: Any, class_: Optional[Union[str, list[str]]] = None, **kwargs: Any) -> air.Tag:
137
+ return air.Code(*content, class_=stringify(styles.semantic.code, class_), **kwargs)
52
138
 
53
- def Time(*content, cls = None, **kwargs):
54
- return air.Time(*content, cls=stringify(styles.semantic.time, cls), **kwargs)
139
+ def Pre(*content: Any, class_: Optional[Union[str, list[str]]] = None, **kwargs: Any) -> air.Tag:
140
+ return air.Pre(*content, class_=stringify(styles.semantic.pre, class_), **kwargs)
55
141
 
56
- def Code(*content, cls = None, **kwargs):
57
- return air.Code(*content, cls=stringify(styles.semantic.code, cls), **kwargs)
142
+ def Kbd(*content: Any, class_: Optional[Union[str, list[str]]] = None, **kwargs: Any) -> air.Tag:
143
+ return air.Kbd(*content, class_=stringify(styles.semantic.kbd, class_), **kwargs)
58
144
 
59
- def Pre(*content, cls = None, **kwargs):
60
- return air.Pre(*content, cls=stringify(styles.semantic.pre, cls), **kwargs)
145
+ def Samp(*content: Any, class_: Optional[Union[str, list[str]]] = None, **kwargs: Any) -> air.Tag:
146
+ return air.Samp(*content, class_=stringify(styles.semantic.samp, class_), **kwargs)
61
147
 
62
- def Kbd(*content, cls = None, **kwargs):
63
- return air.Kbd(*content, cls=stringify(styles.semantic.kbd, cls), **kwargs)
148
+ def Blockquote(*content: Any, class_: Optional[Union[str, list[str]]] = None, **kwargs: Any) -> air.Tag:
149
+ return air.Blockquote(*content, class_=stringify(styles.semantic.blockquote, class_), **kwargs)
64
150
 
65
- def Samp(*content, cls = None, **kwargs):
66
- return air.Samp(*content, cls=stringify(styles.semantic.samp, cls), **kwargs)
151
+ def Cite(*content: Any, class_: Optional[Union[str, list[str]]] = None, **kwargs: Any) -> air.Tag:
152
+ return air.Cite(*content, class_=stringify(styles.semantic.cite, class_), **kwargs)
67
153
 
68
- def Blockquote(*content, cls = None, **kwargs):
69
- return air.Blockquote(*content, cls=stringify(styles.semantic.blockquote, cls), **kwargs)
154
+ def Address(*content: Any, class_: Optional[Union[str, list[str]]] = None, **kwargs: Any) -> air.Tag:
155
+ return air.Address(*content, class_=stringify(styles.semantic.address, class_), **kwargs)
70
156
 
71
- def Cite(*content, cls = None, **kwargs):
72
- return air.Cite(*content, cls=stringify(styles.semantic.cite, cls), **kwargs)
157
+ def Hr(class_: Optional[Union[str, list[str]]] = None, **kwargs: Any) -> air.Tag:
158
+ return air.Hr(class_=stringify(styles.semantic.hr, class_), **kwargs)
73
159
 
74
- def Address(*content, cls = None, **kwargs):
75
- return air.Address(*content, cls=stringify(styles.semantic.address, cls), **kwargs)
160
+ def Details(*content: Any, class_: Optional[Union[str, list[str]]] = None, **kwargs: Any) -> air.Tag:
161
+ return air.Details(*content, class_=stringify(styles.semantic.details, class_), **kwargs)
76
162
 
77
- def Hr(cls = None, **kwargs):
78
- return air.Hr(cls=stringify(styles.semantic.hr, cls), **kwargs)
163
+ def Summary(*content: Any, class_: Optional[Union[str, list[str]]] = None, **kwargs: Any) -> air.Tag:
164
+ return air.Summary(*content, class_=stringify(styles.semantic.summary, class_), **kwargs)
79
165
 
80
- def Details(*content, cls = None, **kwargs):
81
- return air.Details(*content, cls=stringify(styles.semantic.details, cls), **kwargs)
166
+ def Dl(*content: Any, class_: Optional[Union[str, list[str]]] = None, **kwargs: Any) -> air.Tag:
167
+ return air.Dl(*content, class_=stringify(styles.semantic.dl, class_), **kwargs)
82
168
 
83
- def Summary(*content, cls = None, **kwargs):
84
- return air.Summary(*content, cls=stringify(styles.semantic.summary, cls), **kwargs)
169
+ def Dt(*content: Any, class_: Optional[Union[str, list[str]]] = None, **kwargs: Any) -> air.Tag:
170
+ return air.Dt(*content, class_=stringify(styles.semantic.dt, class_), **kwargs)
85
171
 
86
- def Dl(*content, cls = None, **kwargs):
87
- return air.Dl(*content, cls=stringify(styles.semantic.dl, cls), **kwargs)
172
+ def Dd(*content: Any, class_: Optional[Union[str, list[str]]] = None, **kwargs: Any) -> air.Tag:
173
+ return air.Dd(*content, class_=stringify(styles.semantic.dd, class_), **kwargs)
88
174
 
89
- def Dt(*content, cls = None, **kwargs):
90
- return air.Dt(*content, cls=cls, **kwargs)
175
+ def Figure(*content: Any, class_: Optional[Union[str, list[str]]] = None, **kwargs: Any) -> air.Tag:
176
+ return air.Figure(*content, class_=stringify(styles.semantic.figure, class_), **kwargs)
91
177
 
92
- def Dd(*content, cls = None, **kwargs):
93
- return air.Dd(*content, cls=stringify(styles.semantic.dd, cls), **kwargs)
178
+ def Figcaption(*content: Any, class_: Optional[Union[str, list[str]]] = None, **kwargs: Any) -> air.Tag:
179
+ return air.Figcaption(*content, class_=stringify(styles.semantic.figcaption, class_), **kwargs)
94
180
 
95
- def Figure(*content, cls = None, **kwargs):
96
- return air.Figure(*content, cls=stringify(styles.semantic.figure, cls), **kwargs)
97
181
 
98
- def Figcaption(*content, cls = None, **kwargs):
99
- return air.Figcaption(*content, cls=stringify(styles.semantic.figcaption, cls), **kwargs)
182
+ # Pass-through tags from air.tags
183
+ # Import all standard HTML tags that don't have custom styling
184
+ from air.tags import (
185
+ A, Area, Article, Aside, Audio, B, Base, Bdi, Bdo, Br,
186
+ Canvas, Caption, Col, Colgroup, Data, Datalist, Dfn, Dialog, Div,
187
+ Em, Embed, Fieldset, Footer, Form, Head, Header, Hgroup, Html,
188
+ Iframe, Img, Input, Ins, Label, Legend, Li, Link,
189
+ Main, Map, Menu, Meta, Meter, Nav, Noscript, Object, Ol, Optgroup, Option, Output,
190
+ P, Param, Picture, Progress, Q, Rp, Rt, Ruby,
191
+ S, Script, Search, Section, Select, Source, Span, Style, Sub, Sup,
192
+ Table, Tbody, Td, Template, Textarea, Tfoot, Th, Thead, Title, Tr, Track,
193
+ U, Ul, Video, Wbr
194
+ )
eidos/utils.py CHANGED
@@ -27,14 +27,14 @@ def stringify(*classes: Optional[Union[str, List[str]]]) -> str:
27
27
  """
28
28
  result = []
29
29
 
30
- for cls in classes:
31
- if cls is None:
30
+ for class_ in classes:
31
+ if class_ is None:
32
32
  continue
33
- elif isinstance(cls, list):
33
+ elif isinstance(class_, list):
34
34
  # Recursively handle lists
35
- result.extend(c for c in cls if c)
36
- elif isinstance(cls, str) and cls.strip():
37
- result.append(cls.strip())
35
+ result.extend(c for c in class_ if c)
36
+ elif isinstance(class_, str) and class_.strip():
37
+ result.append(class_.strip())
38
38
 
39
39
  return " ".join(result)
40
40
 
@@ -57,7 +57,16 @@ def get_eidos_static_directory() -> str:
57
57
  """
58
58
  try:
59
59
  from importlib.resources import files
60
- return str(files('eidos'))
60
+ import pathlib
61
+ # Convert MultiplexedPath to actual filesystem path
62
+ eidos_path = files('eidos')
63
+ if hasattr(eidos_path, '_paths'):
64
+ # MultiplexedPath - get the first valid path
65
+ for path in eidos_path._paths:
66
+ if isinstance(path, pathlib.Path) and path.exists():
67
+ return str(path)
68
+ # Try to get the path directly
69
+ return str(eidos_path)
61
70
  except (ImportError, AttributeError):
62
71
  # Fallback for development or if importlib.resources fails
63
72
  return os.path.dirname(os.path.abspath(__file__))
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: eidosui
3
- Version: 0.2.0
4
- Summary: A modern, Tailwind CSS-based UI library for Python web frameworks
3
+ Version: 0.4.0
4
+ Summary: A modern, Tailwind CSS-based UI library for air development
5
5
  Project-URL: Homepage, https://github.com/isaac-flath/EidosUI
6
6
  Project-URL: Repository, https://github.com/isaac-flath/EidosUI
7
7
  Project-URL: Issues, https://github.com/isaac-flath/EidosUI/issues
@@ -9,7 +9,7 @@ Project-URL: Documentation, https://github.com/isaac-flath/EidosUI#readme
9
9
  Author: Isaac Flath
10
10
  License-Expression: MIT
11
11
  License-File: LICENSE
12
- Keywords: components,css,fastapi,tailwind,ui,web
12
+ Keywords: air,components,css,fastapi,tailwind,ui,web
13
13
  Classifier: Development Status :: 3 - Alpha
14
14
  Classifier: Intended Audience :: Developers
15
15
  Classifier: License :: OSI Approved :: MIT License
@@ -17,11 +17,12 @@ Classifier: Programming Language :: Python :: 3
17
17
  Classifier: Programming Language :: Python :: 3.10
18
18
  Classifier: Programming Language :: Python :: 3.11
19
19
  Classifier: Programming Language :: Python :: 3.12
20
+ Classifier: Programming Language :: Python :: 3.13
20
21
  Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
21
22
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
22
23
  Requires-Python: >=3.10
23
- Requires-Dist: air
24
- Requires-Dist: fastapi
24
+ Requires-Dist: air>=0.12
25
+ Requires-Dist: fastapi[standard]
25
26
  Requires-Dist: uvicorn
26
27
  Provides-Extra: dev
27
28
  Requires-Dist: black; extra == 'dev'
@@ -29,6 +30,8 @@ Requires-Dist: isort; extra == 'dev'
29
30
  Requires-Dist: mypy; extra == 'dev'
30
31
  Requires-Dist: pytest; extra == 'dev'
31
32
  Requires-Dist: ruff; extra == 'dev'
33
+ Provides-Extra: markdown
34
+ Requires-Dist: markdown>=3.4; extra == 'markdown'
32
35
  Description-Content-Type: text/markdown
33
36
 
34
37
  # EidosUI 🎨
@@ -0,0 +1,22 @@
1
+ eidos/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
+ eidos/styles.py,sha256=QupOwC0VuSZ6zdNJiNFT_PqTnvbJvaNplKO5M5xzMVI,2380
3
+ eidos/tags.py,sha256=1IlB7x2AR3G5KI5yTQQ7ors5x5dMIYRvGKrlswNrYqs,9195
4
+ eidos/utils.py,sha256=DUw2a--J2rpZLY7YD3-xtHSmrK0YrnJuPi4rwV41zT8,2345
5
+ eidos/components/headers.py,sha256=M4SZ_w_ius9cj7uRALo2niAkBz-iLYMVYAX8p556vyo,2005
6
+ eidos/components/navigation.py,sha256=_8xQxVuZYmOIWk_85pa1L1ECYAXphIxV4iFmolNRwWQ,2515
7
+ eidos/css/styles.css,sha256=KvrqNpdi7y0felLNhXwgys7cD4mbWjd5EzSqQWxjRgg,9770
8
+ eidos/css/themes/dark.css,sha256=yUDNz7iLEJ_Q63MrKXlrhYcpojm1L2eNUOthzhYc3Vs,4170
9
+ eidos/css/themes/eidos-variables.css,sha256=s4_CUivnqvndE4c7T1stp59orEHL_0C9tmN0rxai7bU,5686
10
+ eidos/css/themes/light.css,sha256=kESbN5Z4ovCn-Q3fxilQcjafgMCIyyJiocU9kMC5sIM,2674
11
+ eidos/js/eidos.js,sha256=ag6aoyWIE234ZoMiXJV-KVgBTsPR-fZd5Qhuo4rEeh0,5048
12
+ eidos/plugins/__init__.py,sha256=Cv4nNAV74tOvyPyb2oEg7q2yhrHLC1lGwbWYjdT9Z4Y,25
13
+ eidos/plugins/markdown/__init__.py,sha256=FuifCP1MmO0ACy7mq_kTwKLMnw8K15td_6E3Ihlrir4,555
14
+ eidos/plugins/markdown/components.py,sha256=jz3yu4LIgBOTx0MS2o703al90jAquScmKehQQHV2dmY,1388
15
+ eidos/plugins/markdown/renderer.py,sha256=NJYTJWgDySTUkrihYudLvRSR4hr6QeAqTpzZGN4eyo8,1971
16
+ eidos/plugins/markdown/css/markdown.css,sha256=RxNx7aJDmJMx3zuydX10uAMaPFtl9r6zOFDni9Idsdk,6226
17
+ eidos/plugins/markdown/extensions/__init__.py,sha256=wOdOyCcb-4lxEm77GMnJLst8JepecDcrN4sp3HO_q9A,28
18
+ eidos/plugins/markdown/extensions/alerts.py,sha256=q1d49KyjPoTiK6OJ7gKvuwrFxM3BjPwssQnp6qhpFDs,4541
19
+ eidosui-0.4.0.dist-info/METADATA,sha256=PRrT8laWJlSp14pGvjHP6kOKkaS6n2SZze85MyAcprg,4749
20
+ eidosui-0.4.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
21
+ eidosui-0.4.0.dist-info/licenses/LICENSE,sha256=evjPJs6lg9eka9CYtC6ErQrZ71IovVbdvZqqz3ax8E8,1064
22
+ eidosui-0.4.0.dist-info/RECORD,,
@@ -1,13 +0,0 @@
1
- eidos/__init__.py,sha256=wPMqILVs6Iof510BteshYDZgsW-08w_RfenImYKlPlM,40
2
- eidos/styles.py,sha256=QupOwC0VuSZ6zdNJiNFT_PqTnvbJvaNplKO5M5xzMVI,2380
3
- eidos/tags.py,sha256=9jX9u8QLHjv48vRB7yorR3dV25UEt3AjgUlYPJDcxPM,3975
4
- eidos/utils.py,sha256=dncLrIjn78x6HW-lX1feG76jtAilfLaxsRmJ8ewCCCs,1922
5
- eidos/components/headers.py,sha256=qE5xa2Yt545FGlBAITPjPAU5CQkz0cnYq7biYcb6mB0,939
6
- eidos/css/styles.css,sha256=4VWOWe436DQRXBN4b6g6tsIRqXsYJrwuoKNnsrQQv_M,7643
7
- eidos/css/themes/dark.css,sha256=yUDNz7iLEJ_Q63MrKXlrhYcpojm1L2eNUOthzhYc3Vs,4170
8
- eidos/css/themes/eidos-variables.css,sha256=s4_CUivnqvndE4c7T1stp59orEHL_0C9tmN0rxai7bU,5686
9
- eidos/css/themes/light.css,sha256=kESbN5Z4ovCn-Q3fxilQcjafgMCIyyJiocU9kMC5sIM,2674
10
- eidosui-0.2.0.dist-info/METADATA,sha256=ME2HeKBZS9nenM2SpdQ5FBYbA51rlU0CnO3UvoDy44g,4609
11
- eidosui-0.2.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
12
- eidosui-0.2.0.dist-info/licenses/LICENSE,sha256=evjPJs6lg9eka9CYtC6ErQrZ71IovVbdvZqqz3ax8E8,1064
13
- eidosui-0.2.0.dist-info/RECORD,,