openadmin-dev 0.7.5__tar.gz → 0.7.8__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 (85) hide show
  1. {openadmin_dev-0.7.5 → openadmin_dev-0.7.8}/PKG-INFO +1 -1
  2. openadmin_dev-0.7.8/examples/admin/docs.py +39 -0
  3. {openadmin_dev-0.7.5 → openadmin_dev-0.7.8}/examples/main.py +9 -0
  4. {openadmin_dev-0.7.5 → openadmin_dev-0.7.8}/openadmin/fastapi/action.py +2 -0
  5. {openadmin_dev-0.7.5 → openadmin_dev-0.7.8}/openadmin/fastapi/admin_page.py +47 -1
  6. {openadmin_dev-0.7.5 → openadmin_dev-0.7.8}/openadmin/fastapi/form.py +2 -0
  7. {openadmin_dev-0.7.5 → openadmin_dev-0.7.8}/openadmin/fastapi/markdown.py +2 -0
  8. {openadmin_dev-0.7.5 → openadmin_dev-0.7.8}/openadmin/spec/__init__.py +4 -1
  9. {openadmin_dev-0.7.5 → openadmin_dev-0.7.8}/openadmin/spec/action.py +4 -0
  10. {openadmin_dev-0.7.5 → openadmin_dev-0.7.8}/openadmin/spec/component.py +2 -2
  11. {openadmin_dev-0.7.5 → openadmin_dev-0.7.8}/openadmin/spec/form.py +4 -0
  12. openadmin_dev-0.7.8/openadmin/spec/markdown.py +36 -0
  13. {openadmin_dev-0.7.5 → openadmin_dev-0.7.8}/pyproject.toml +1 -1
  14. {openadmin_dev-0.7.5 → openadmin_dev-0.7.8}/uv.lock +1 -1
  15. openadmin_dev-0.7.5/openadmin/spec/markdown.py +0 -20
  16. {openadmin_dev-0.7.5 → openadmin_dev-0.7.8}/.github/ISSUE_TEMPLATE/bug.md +0 -0
  17. {openadmin_dev-0.7.5 → openadmin_dev-0.7.8}/.github/ISSUE_TEMPLATE/chore.md +0 -0
  18. {openadmin_dev-0.7.5 → openadmin_dev-0.7.8}/.github/ISSUE_TEMPLATE/feature.md +0 -0
  19. {openadmin_dev-0.7.5 → openadmin_dev-0.7.8}/.github/actions/branch-name/action.yml +0 -0
  20. {openadmin_dev-0.7.5 → openadmin_dev-0.7.8}/.github/actions/dependency-cves/action.yml +0 -0
  21. {openadmin_dev-0.7.5 → openadmin_dev-0.7.8}/.github/actions/format/action.yml +0 -0
  22. {openadmin_dev-0.7.5 → openadmin_dev-0.7.8}/.github/actions/license/action.yml +0 -0
  23. {openadmin_dev-0.7.5 → openadmin_dev-0.7.8}/.github/actions/lint/action.yml +0 -0
  24. {openadmin_dev-0.7.5 → openadmin_dev-0.7.8}/.github/actions/security/action.yml +0 -0
  25. {openadmin_dev-0.7.5 → openadmin_dev-0.7.8}/.github/actions/spell-check/action.yml +0 -0
  26. {openadmin_dev-0.7.5 → openadmin_dev-0.7.8}/.github/actions/test/action.yml +0 -0
  27. {openadmin_dev-0.7.5 → openadmin_dev-0.7.8}/.github/actions/typecheck/action.yml +0 -0
  28. {openadmin_dev-0.7.5 → openadmin_dev-0.7.8}/.github/actions/unused-code/action.yml +0 -0
  29. {openadmin_dev-0.7.5 → openadmin_dev-0.7.8}/.github/workflows/ci.yml +0 -0
  30. {openadmin_dev-0.7.5 → openadmin_dev-0.7.8}/.github/workflows/publish.yml +0 -0
  31. {openadmin_dev-0.7.5 → openadmin_dev-0.7.8}/.gitignore +0 -0
  32. {openadmin_dev-0.7.5 → openadmin_dev-0.7.8}/.python-version +0 -0
  33. {openadmin_dev-0.7.5 → openadmin_dev-0.7.8}/LICENSE +0 -0
  34. {openadmin_dev-0.7.5 → openadmin_dev-0.7.8}/LICENSES/AGPL-3.0-or-later.txt +0 -0
  35. {openadmin_dev-0.7.5 → openadmin_dev-0.7.8}/Makefile +0 -0
  36. {openadmin_dev-0.7.5 → openadmin_dev-0.7.8}/README.md +0 -0
  37. {openadmin_dev-0.7.5 → openadmin_dev-0.7.8}/REUSE.toml +0 -0
  38. {openadmin_dev-0.7.5 → openadmin_dev-0.7.8}/docs/assets/logo.png +0 -0
  39. {openadmin_dev-0.7.5 → openadmin_dev-0.7.8}/examples/__init__.py +0 -0
  40. {openadmin_dev-0.7.5 → openadmin_dev-0.7.8}/examples/admin/__init__.py +0 -0
  41. {openadmin_dev-0.7.5 → openadmin_dev-0.7.8}/examples/admin/analytics.py +0 -0
  42. {openadmin_dev-0.7.5 → openadmin_dev-0.7.8}/examples/admin/authors.py +0 -0
  43. {openadmin_dev-0.7.5 → openadmin_dev-0.7.8}/examples/admin/books.py +0 -0
  44. {openadmin_dev-0.7.5 → openadmin_dev-0.7.8}/examples/admin/genres.py +0 -0
  45. {openadmin_dev-0.7.5 → openadmin_dev-0.7.8}/examples/admin/health.py +0 -0
  46. {openadmin_dev-0.7.5 → openadmin_dev-0.7.8}/examples/admin/overview.py +0 -0
  47. {openadmin_dev-0.7.5 → openadmin_dev-0.7.8}/examples/admin/publishers.py +0 -0
  48. {openadmin_dev-0.7.5 → openadmin_dev-0.7.8}/examples/admin/reports.py +0 -0
  49. {openadmin_dev-0.7.5 → openadmin_dev-0.7.8}/examples/admin/tags.py +0 -0
  50. {openadmin_dev-0.7.5 → openadmin_dev-0.7.8}/examples/admin/weekdays.py +0 -0
  51. {openadmin_dev-0.7.5 → openadmin_dev-0.7.8}/examples/lib/__init__.py +0 -0
  52. {openadmin_dev-0.7.5 → openadmin_dev-0.7.8}/examples/lib/database.py +0 -0
  53. {openadmin_dev-0.7.5 → openadmin_dev-0.7.8}/examples/lib/lifespan.py +0 -0
  54. {openadmin_dev-0.7.5 → openadmin_dev-0.7.8}/examples/lib/models.py +0 -0
  55. {openadmin_dev-0.7.5 → openadmin_dev-0.7.8}/examples/lib/seed.py +0 -0
  56. {openadmin_dev-0.7.5 → openadmin_dev-0.7.8}/openadmin/fastapi/__init__.py +0 -0
  57. {openadmin_dev-0.7.5 → openadmin_dev-0.7.8}/openadmin/fastapi/admin_panel.py +0 -0
  58. {openadmin_dev-0.7.5 → openadmin_dev-0.7.8}/openadmin/fastapi/area_chart.py +0 -0
  59. {openadmin_dev-0.7.5 → openadmin_dev-0.7.8}/openadmin/fastapi/bar_chart.py +0 -0
  60. {openadmin_dev-0.7.5 → openadmin_dev-0.7.8}/openadmin/fastapi/component.py +0 -0
  61. {openadmin_dev-0.7.5 → openadmin_dev-0.7.8}/openadmin/fastapi/counters.py +0 -0
  62. {openadmin_dev-0.7.5 → openadmin_dev-0.7.8}/openadmin/fastapi/deps.py +0 -0
  63. {openadmin_dev-0.7.5 → openadmin_dev-0.7.8}/openadmin/fastapi/line_chart.py +0 -0
  64. {openadmin_dev-0.7.5 → openadmin_dev-0.7.8}/openadmin/fastapi/page_protocol.py +0 -0
  65. {openadmin_dev-0.7.5 → openadmin_dev-0.7.8}/openadmin/fastapi/pagination_params.py +0 -0
  66. {openadmin_dev-0.7.5 → openadmin_dev-0.7.8}/openadmin/fastapi/pie_chart.py +0 -0
  67. {openadmin_dev-0.7.5 → openadmin_dev-0.7.8}/openadmin/fastapi/section.py +0 -0
  68. {openadmin_dev-0.7.5 → openadmin_dev-0.7.8}/openadmin/fastapi/stat.py +0 -0
  69. {openadmin_dev-0.7.5 → openadmin_dev-0.7.8}/openadmin/fastapi/table.py +0 -0
  70. {openadmin_dev-0.7.5 → openadmin_dev-0.7.8}/openadmin/fastapi/utils.py +0 -0
  71. {openadmin_dev-0.7.5 → openadmin_dev-0.7.8}/openadmin/spec/area_chart.py +0 -0
  72. {openadmin_dev-0.7.5 → openadmin_dev-0.7.8}/openadmin/spec/bar_chart.py +0 -0
  73. {openadmin_dev-0.7.5 → openadmin_dev-0.7.8}/openadmin/spec/colors.py +0 -0
  74. {openadmin_dev-0.7.5 → openadmin_dev-0.7.8}/openadmin/spec/http_methods.py +0 -0
  75. {openadmin_dev-0.7.5 → openadmin_dev-0.7.8}/openadmin/spec/icons.py +0 -0
  76. {openadmin_dev-0.7.5 → openadmin_dev-0.7.8}/openadmin/spec/line_chart.py +0 -0
  77. {openadmin_dev-0.7.5 → openadmin_dev-0.7.8}/openadmin/spec/page.py +0 -0
  78. {openadmin_dev-0.7.5 → openadmin_dev-0.7.8}/openadmin/spec/pie_chart.py +0 -0
  79. {openadmin_dev-0.7.5 → openadmin_dev-0.7.8}/openadmin/spec/property.py +0 -0
  80. {openadmin_dev-0.7.5 → openadmin_dev-0.7.8}/openadmin/spec/property_type.py +0 -0
  81. {openadmin_dev-0.7.5 → openadmin_dev-0.7.8}/openadmin/spec/section.py +0 -0
  82. {openadmin_dev-0.7.5 → openadmin_dev-0.7.8}/openadmin/spec/spec.py +0 -0
  83. {openadmin_dev-0.7.5 → openadmin_dev-0.7.8}/openadmin/spec/stat.py +0 -0
  84. {openadmin_dev-0.7.5 → openadmin_dev-0.7.8}/openadmin/spec/table.py +0 -0
  85. {openadmin_dev-0.7.5 → openadmin_dev-0.7.8}/tests/test_hello.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: openadmin-dev
3
- Version: 0.7.5
3
+ Version: 0.7.8
4
4
  Summary: Add your description here
5
5
  Project-URL: Homepage, https://github.com/openadmin-team/openadmin-py
6
6
  Project-URL: Issues, https://github.com/openadmin-team/openadmin-py/issues
@@ -0,0 +1,39 @@
1
+ # SPDX-FileCopyrightText: 2026 OpenAdmin
2
+ #
3
+ # SPDX-License-Identifier: AGPL-3.0-or-later
4
+
5
+ from openadmin import fastapi, spec
6
+
7
+ page = fastapi.AdminPage("Docs", icon="dock")
8
+
9
+
10
+ @page.markdown("Company policy 1", icon="podcast", color="blue")
11
+ def company_policy_1() -> spec.Markdown:
12
+ return """
13
+ # Hello World
14
+
15
+ This is new text
16
+
17
+ ---
18
+
19
+ - Cake
20
+ - Limonade
21
+ """
22
+
23
+
24
+ @page.markdown("Company policy 2")
25
+ def company_policy_2() -> spec.Markdown:
26
+ return {
27
+ "content": """
28
+ # Hello World
29
+
30
+ This is new text
31
+
32
+ ---
33
+
34
+ - Cake
35
+ - Limonade
36
+ """,
37
+ "color": "yellow",
38
+ "icon": "a-arrow-up",
39
+ }
@@ -11,6 +11,7 @@ from .admin import (
11
11
  analytics,
12
12
  authors,
13
13
  books,
14
+ docs,
14
15
  genres,
15
16
  health,
16
17
  overview,
@@ -35,6 +36,14 @@ admin_panel = AdminPanel(
35
36
  "Book Library Admin", description="Manage and explore the book catalog"
36
37
  )
37
38
 
39
+ admin_panel.section(
40
+ "Docs",
41
+ icon="download-cloud",
42
+ pages=[
43
+ docs.page,
44
+ ],
45
+ )
46
+
38
47
  admin_panel.section(
39
48
  "Library", icon="library", pages=[books.page, authors.page, publishers.page]
40
49
  )
@@ -16,4 +16,6 @@ class Action:
16
16
  description: str | None
17
17
  method: spec.HttpMethod
18
18
  is_hidden: bool
19
+ color: spec.Color | None
20
+ icon: spec.Icon | None
19
21
  func: Callable | None = field(default=None)
@@ -155,6 +155,8 @@ class AdminPage:
155
155
  method=item.method,
156
156
  url=url,
157
157
  is_hidden=item.is_hidden,
158
+ icon=item.icon,
159
+ color=item.color,
158
160
  query=query,
159
161
  body=body,
160
162
  form=form,
@@ -170,6 +172,8 @@ class AdminPage:
170
172
  method=item.method,
171
173
  url=url,
172
174
  is_hidden=item.is_hidden,
175
+ icon=item.icon,
176
+ color=item.color,
173
177
  query=query,
174
178
  body=body,
175
179
  form=form,
@@ -177,10 +181,12 @@ class AdminPage:
177
181
  )
178
182
  elif isinstance(item, Markdown):
179
183
  components.append(
180
- spec.Markdown(
184
+ spec.MarkdownComponent(
181
185
  type="markdown",
182
186
  id=item.id,
183
187
  name=item.name,
188
+ icon=item.icon,
189
+ color=item.color,
184
190
  description=item.description,
185
191
  method=item.method,
186
192
  url=url,
@@ -276,6 +282,8 @@ class AdminPage:
276
282
  name: str,
277
283
  *,
278
284
  description: str | None = None,
285
+ color: spec.Color | None = None,
286
+ icon: spec.Icon | None = None,
279
287
  ):
280
288
  kebab_name, unique_name = self.__get_kebab_and_unique_name(name)
281
289
 
@@ -285,6 +293,8 @@ class AdminPage:
285
293
  name=name,
286
294
  description=description,
287
295
  id=kebab_name,
296
+ icon=icon,
297
+ color=color,
288
298
  )
289
299
  self.state.append(item)
290
300
 
@@ -303,6 +313,8 @@ class AdminPage:
303
313
  *,
304
314
  description: str | None = None,
305
315
  is_hidden: bool = False,
316
+ icon: spec.Icon | None = None,
317
+ color: spec.Color | None = None,
306
318
  ):
307
319
  kebab_name, unique_name = self.__get_kebab_and_unique_name(name)
308
320
 
@@ -312,6 +324,8 @@ class AdminPage:
312
324
  name=name,
313
325
  description=description,
314
326
  is_hidden=is_hidden,
327
+ icon=icon,
328
+ color=color,
315
329
  id=kebab_name,
316
330
  )
317
331
  self.state.append(item)
@@ -328,6 +342,8 @@ class AdminPage:
328
342
  *,
329
343
  description: str | None = None,
330
344
  is_hidden: bool = False,
345
+ icon: spec.Icon | None = None,
346
+ color: spec.Color | None = None,
331
347
  ):
332
348
  kebab_name, unique_name = self.__get_kebab_and_unique_name(name)
333
349
 
@@ -337,6 +353,8 @@ class AdminPage:
337
353
  name=name,
338
354
  description=description,
339
355
  is_hidden=is_hidden,
356
+ icon=icon,
357
+ color=color,
340
358
  id=kebab_name,
341
359
  )
342
360
  self.state.append(item)
@@ -353,6 +371,8 @@ class AdminPage:
353
371
  *,
354
372
  description: str | None = None,
355
373
  is_hidden: bool = False,
374
+ icon: spec.Icon | None = None,
375
+ color: spec.Color | None = None,
356
376
  ):
357
377
  kebab_name, unique_name = self.__get_kebab_and_unique_name(name)
358
378
 
@@ -362,6 +382,8 @@ class AdminPage:
362
382
  name=name,
363
383
  description=description,
364
384
  is_hidden=is_hidden,
385
+ icon=icon,
386
+ color=color,
365
387
  id=kebab_name,
366
388
  )
367
389
  self.state.append(item)
@@ -378,6 +400,8 @@ class AdminPage:
378
400
  *,
379
401
  description: str | None = None,
380
402
  is_hidden: bool = False,
403
+ icon: spec.Icon | None = None,
404
+ color: spec.Color | None = None,
381
405
  ):
382
406
  kebab_name, unique_name = self.__get_kebab_and_unique_name(name)
383
407
 
@@ -387,6 +411,8 @@ class AdminPage:
387
411
  name=name,
388
412
  description=description,
389
413
  is_hidden=is_hidden,
414
+ icon=icon,
415
+ color=color,
390
416
  id=kebab_name,
391
417
  )
392
418
  self.state.append(item)
@@ -403,6 +429,8 @@ class AdminPage:
403
429
  *,
404
430
  description: str | None = None,
405
431
  is_hidden: bool = False,
432
+ icon: spec.Icon | None = None,
433
+ color: spec.Color | None = None,
406
434
  ):
407
435
  kebab_name, unique_name = self.__get_kebab_and_unique_name(name)
408
436
 
@@ -412,6 +440,8 @@ class AdminPage:
412
440
  name=name,
413
441
  description=description,
414
442
  is_hidden=is_hidden,
443
+ icon=icon,
444
+ color=color,
415
445
  id=kebab_name,
416
446
  )
417
447
  self.state.append(item)
@@ -428,6 +458,8 @@ class AdminPage:
428
458
  *,
429
459
  description: str | None = None,
430
460
  is_hidden: bool = False,
461
+ icon: spec.Icon | None = None,
462
+ color: spec.Color | None = None,
431
463
  ):
432
464
  kebab_name, unique_name = self.__get_kebab_and_unique_name(name)
433
465
 
@@ -437,6 +469,8 @@ class AdminPage:
437
469
  name=name,
438
470
  description=description,
439
471
  is_hidden=is_hidden,
472
+ icon=icon,
473
+ color=color,
440
474
  id=kebab_name,
441
475
  )
442
476
  self.state.append(item)
@@ -453,6 +487,8 @@ class AdminPage:
453
487
  *,
454
488
  description: str | None = None,
455
489
  is_hidden: bool = False,
490
+ icon: spec.Icon | None = None,
491
+ color: spec.Color | None = None,
456
492
  ):
457
493
  kebab_name, unique_name = self.__get_kebab_and_unique_name(name)
458
494
 
@@ -462,6 +498,8 @@ class AdminPage:
462
498
  name=name,
463
499
  description=description,
464
500
  is_hidden=is_hidden,
501
+ icon=icon,
502
+ color=color,
465
503
  id=kebab_name,
466
504
  )
467
505
  self.state.append(item)
@@ -478,6 +516,8 @@ class AdminPage:
478
516
  *,
479
517
  description: str | None = None,
480
518
  is_hidden: bool = False,
519
+ icon: spec.Icon | None = None,
520
+ color: spec.Color | None = None,
481
521
  ):
482
522
  kebab_name, unique_name = self.__get_kebab_and_unique_name(name)
483
523
 
@@ -487,6 +527,8 @@ class AdminPage:
487
527
  name=name,
488
528
  description=description,
489
529
  is_hidden=is_hidden,
530
+ icon=icon,
531
+ color=color,
490
532
  id=kebab_name,
491
533
  )
492
534
  self.state.append(item)
@@ -503,6 +545,8 @@ class AdminPage:
503
545
  *,
504
546
  description: str | None = None,
505
547
  is_hidden: bool = False,
548
+ icon: spec.Icon | None = None,
549
+ color: spec.Color | None = None,
506
550
  ):
507
551
  kebab_name, unique_name = self.__get_kebab_and_unique_name(name)
508
552
 
@@ -512,6 +556,8 @@ class AdminPage:
512
556
  name=name,
513
557
  description=description,
514
558
  is_hidden=is_hidden,
559
+ icon=icon,
560
+ color=color,
515
561
  id=kebab_name,
516
562
  )
517
563
  self.state.append(item)
@@ -16,4 +16,6 @@ class Form:
16
16
  description: str | None
17
17
  method: spec.HttpMethod
18
18
  is_hidden: bool
19
+ color: spec.Color | None
20
+ icon: spec.Icon | None
19
21
  func: Callable | None = field(default=None)
@@ -14,5 +14,7 @@ class Markdown:
14
14
  id: str
15
15
  name: str
16
16
  description: str | None
17
+ icon: spec.Icon | None
18
+ color: spec.Color | None
17
19
  method: spec.HttpMethod
18
20
  func: Callable | None = field(default=None)
@@ -17,7 +17,7 @@ from .form import Form
17
17
  from .http_methods import HttpMethod
18
18
  from .icons import Icon
19
19
  from .line_chart import LineChart
20
- from .markdown import Markdown
20
+ from .markdown import Markdown, MarkdownComponent, MarkdownContent, MarkdownResponse
21
21
  from .page import Page
22
22
  from .pie_chart import (
23
23
  PieChart,
@@ -49,6 +49,9 @@ __all__ = [
49
49
  "Icon",
50
50
  "LineChart",
51
51
  "Markdown",
52
+ "MarkdownComponent",
53
+ "MarkdownContent",
54
+ "MarkdownResponse",
52
55
  "Page",
53
56
  "PieChart",
54
57
  "PieChartComponent",
@@ -6,7 +6,9 @@ from typing import Literal
6
6
 
7
7
  from pydantic import BaseModel, Field
8
8
 
9
+ from .colors import Color
9
10
  from .http_methods import HttpMethod
11
+ from .icons import Icon
10
12
  from .property import Property
11
13
 
12
14
 
@@ -16,6 +18,8 @@ class Action(BaseModel):
16
18
  name: str
17
19
  description: str | None
18
20
  url: str
21
+ icon: Icon | None
22
+ color: Color | None
19
23
  method: HttpMethod
20
24
  is_hidden: bool
21
25
  form: list[Property] | None = Field(None)
@@ -8,7 +8,7 @@ from .area_chart import AreaChart
8
8
  from .bar_chart import BarChartComponent
9
9
  from .form import Form
10
10
  from .line_chart import LineChart
11
- from .markdown import Markdown
11
+ from .markdown import MarkdownComponent
12
12
  from .pie_chart import PieChartComponent
13
13
  from .stat import StatComponent
14
14
  from .table import TableComponent
@@ -22,5 +22,5 @@ type Component = (
22
22
  | PieChartComponent
23
23
  | Action
24
24
  | Form
25
- | Markdown
25
+ | MarkdownComponent
26
26
  )
@@ -6,7 +6,9 @@ from typing import Literal
6
6
 
7
7
  from pydantic import BaseModel, Field
8
8
 
9
+ from .colors import Color
9
10
  from .http_methods import HttpMethod
11
+ from .icons import Icon
10
12
  from .property import Property
11
13
 
12
14
 
@@ -16,6 +18,8 @@ class Form(BaseModel):
16
18
  name: str
17
19
  description: str | None
18
20
  url: str
21
+ icon: Icon | None
22
+ color: Color | None
19
23
  method: HttpMethod
20
24
  is_hidden: bool
21
25
  form: list[Property] | None = Field(None)
@@ -0,0 +1,36 @@
1
+ # SPDX-FileCopyrightText: 2026 OpenAdmin
2
+ #
3
+ # SPDX-License-Identifier: AGPL-3.0-or-later
4
+
5
+ from typing import Literal, NotRequired, TypedDict
6
+
7
+ from pydantic import BaseModel, Field
8
+
9
+ from .colors import Color
10
+ from .http_methods import HttpMethod
11
+ from .icons import Icon
12
+ from .property import Property
13
+
14
+
15
+ class MarkdownComponent(BaseModel):
16
+ type: Literal["markdown"]
17
+ id: str
18
+ name: str
19
+ description: str | None
20
+ color: Color | None
21
+ icon: Icon | None
22
+ url: str
23
+ method: HttpMethod
24
+ query: list[Property] | None = Field(None)
25
+
26
+
27
+ type MarkdownContent = str
28
+
29
+
30
+ class MarkdownResponse(TypedDict):
31
+ icon: NotRequired[Icon]
32
+ color: NotRequired[Color]
33
+ content: MarkdownContent
34
+
35
+
36
+ type Markdown = MarkdownContent | MarkdownResponse
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "openadmin-dev"
3
- version = "0.7.5"
3
+ version = "0.7.8"
4
4
  description = "Add your description here"
5
5
  authors = [
6
6
  { name="Mykyta Kasianenko", email="mykytakasianenko@gmail.com" },
@@ -510,7 +510,7 @@ wheels = [
510
510
 
511
511
  [[package]]
512
512
  name = "openadmin"
513
- version = "0.7.4"
513
+ version = "0.7.8"
514
514
  source = { editable = "." }
515
515
  dependencies = [
516
516
  { name = "fastapi", extra = ["standard"] },
@@ -1,20 +0,0 @@
1
- # SPDX-FileCopyrightText: 2026 OpenAdmin
2
- #
3
- # SPDX-License-Identifier: AGPL-3.0-or-later
4
-
5
- from typing import Literal
6
-
7
- from pydantic import BaseModel, Field
8
-
9
- from .http_methods import HttpMethod
10
- from .property import Property
11
-
12
-
13
- class Markdown(BaseModel):
14
- type: Literal["markdown"]
15
- id: str
16
- name: str
17
- description: str | None
18
- url: str
19
- method: HttpMethod
20
- query: list[Property] | None = Field(None)
File without changes
File without changes
File without changes
File without changes
File without changes