instaui 0.1.7__py3-none-any.whl → 0.1.9__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.
Files changed (37) hide show
  1. instaui/arco/components/calendar.py +1 -1
  2. instaui/arco/components/cascader.py +1 -1
  3. instaui/arco/static/instaui-arco.css +1 -1
  4. instaui/arco/static/instaui-arco.js +55771 -55771
  5. instaui/components/html/heading.py +8 -8
  6. instaui/components/html/input.py +4 -4
  7. instaui/components/html/label.py +2 -2
  8. instaui/components/html/li.py +1 -1
  9. instaui/components/html/number.py +5 -5
  10. instaui/components/html/paragraph.py +2 -2
  11. instaui/components/html/select.py +0 -5
  12. instaui/components/html/span.py +2 -2
  13. instaui/components/html/table.py +6 -6
  14. instaui/components/html/textarea.py +4 -4
  15. instaui/components/row.py +0 -3
  16. instaui/components/shiki_code/static/shiki-style.css +179 -179
  17. instaui/experimental/__init__.py +1 -2
  18. instaui/shadcn_classless/static/shadcn-classless.css +403 -403
  19. instaui/spa_router/_file_base_utils.py +20 -16
  20. instaui/static/insta-ui.esm-browser.prod.js +3672 -3663
  21. instaui/static/insta-ui.js.map +1 -1
  22. instaui/template/webview_template.py +0 -2
  23. instaui/ui/__init__.py +1 -1
  24. instaui/ui/__init__.pyi +1 -1
  25. instaui/vars/web_computed.py +6 -0
  26. instaui/webview/__init__.py +1 -0
  27. instaui/webview/index.py +0 -1
  28. {instaui-0.1.7.dist-info → instaui-0.1.9.dist-info}/METADATA +19 -26
  29. {instaui-0.1.7.dist-info → instaui-0.1.9.dist-info}/RECORD +63 -69
  30. {instaui-0.1.7.dist-info → instaui-0.1.9.dist-info}/WHEEL +1 -1
  31. instaui/experimental/link_sql/__init__.py +0 -3
  32. instaui/experimental/link_sql/_base.py +0 -23
  33. instaui/experimental/link_sql/_duckdb.py +0 -221
  34. instaui/experimental/link_sql/_types.py +0 -15
  35. instaui/experimental/link_sql/data_source.js +0 -50
  36. instaui/vars/__init__.py +0 -13
  37. {instaui-0.1.7.dist-info → instaui-0.1.9.dist-info/licenses}/LICENSE +0 -0
@@ -3,13 +3,13 @@ from typing import TYPE_CHECKING, Any, Literal, Union
3
3
  from instaui.components.element import Element
4
4
 
5
5
  if TYPE_CHECKING:
6
- import instaui.vars as ui_vars
6
+ from instaui.vars.types import TMaybeRef
7
7
 
8
8
 
9
9
  class Heading(Element):
10
10
  def __init__(
11
11
  self,
12
- text: Union[str, ui_vars.TMaybeRef[Any]],
12
+ text: Union[str, TMaybeRef[Any]],
13
13
  *,
14
14
  level: Literal[1, 2, 3, 4, 5, 6] = 1,
15
15
  ):
@@ -22,30 +22,30 @@ class Heading(Element):
22
22
 
23
23
 
24
24
  class H1(Heading):
25
- def __init__(self, text: Union[str, ui_vars.TMaybeRef[Any]]):
25
+ def __init__(self, text: Union[str, TMaybeRef[Any]]):
26
26
  super().__init__(text, level=1)
27
27
 
28
28
 
29
29
  class H2(Heading):
30
- def __init__(self, text: Union[str, ui_vars.TMaybeRef[Any]]):
30
+ def __init__(self, text: Union[str, TMaybeRef[Any]]):
31
31
  super().__init__(text, level=2)
32
32
 
33
33
 
34
34
  class H3(Heading):
35
- def __init__(self, text: Union[str, ui_vars.TMaybeRef[Any]]):
35
+ def __init__(self, text: Union[str, TMaybeRef[Any]]):
36
36
  super().__init__(text, level=3)
37
37
 
38
38
 
39
39
  class H4(Heading):
40
- def __init__(self, text: Union[str, ui_vars.TMaybeRef[Any]]):
40
+ def __init__(self, text: Union[str, TMaybeRef[Any]]):
41
41
  super().__init__(text, level=4)
42
42
 
43
43
 
44
44
  class H5(Heading):
45
- def __init__(self, text: Union[str, ui_vars.TMaybeRef[Any]]):
45
+ def __init__(self, text: Union[str, TMaybeRef[Any]]):
46
46
  super().__init__(text, level=5)
47
47
 
48
48
 
49
49
  class H6(Heading):
50
- def __init__(self, text: Union[str, ui_vars.TMaybeRef[Any]]):
50
+ def __init__(self, text: Union[str, TMaybeRef[Any]]):
51
51
  super().__init__(text, level=6)
@@ -6,16 +6,16 @@ from instaui.components.value_element import ValueElement
6
6
  from ._mixins import InputEventMixin
7
7
 
8
8
  if TYPE_CHECKING:
9
- import instaui.vars as ui_vars
9
+ from instaui.vars.types import TMaybeRef
10
10
 
11
11
 
12
12
  class Input(InputEventMixin, ValueElement[str]):
13
13
  def __init__(
14
14
  self,
15
- value: Union[str, ui_vars.TMaybeRef[str], None] = None,
15
+ value: Union[str, TMaybeRef[str], None] = None,
16
16
  *,
17
- model_value: Union[str, ui_vars.TMaybeRef[str], None] = None,
18
- disabled: Optional[ui_vars.TMaybeRef[bool]] = None,
17
+ model_value: Union[str, TMaybeRef[str], None] = None,
18
+ disabled: Optional[TMaybeRef[bool]] = None,
19
19
  ):
20
20
  super().__init__("input", value, is_html_component=True)
21
21
 
@@ -3,13 +3,13 @@ from typing import TYPE_CHECKING, Any, Union
3
3
  from instaui.components.element import Element
4
4
 
5
5
  if TYPE_CHECKING:
6
- import instaui.vars as ui_vars
6
+ from instaui.vars.types import TMaybeRef
7
7
 
8
8
 
9
9
  class Label(Element):
10
10
  def __init__(
11
11
  self,
12
- text: Union[Any, ui_vars.TMaybeRef[Any], None] = None,
12
+ text: Union[Any, TMaybeRef[Any], None] = None,
13
13
  ):
14
14
  super().__init__("label")
15
15
 
@@ -3,7 +3,7 @@ from typing import TYPE_CHECKING, Any, Union
3
3
  from instaui.components.element import Element
4
4
 
5
5
  if TYPE_CHECKING:
6
- from instaui.vars import TMaybeRef
6
+ from instaui.vars.types import TMaybeRef
7
7
 
8
8
 
9
9
  class Li(Element):
@@ -5,7 +5,7 @@ from instaui.components.value_element import ValueElement
5
5
  from ._mixins import InputEventMixin
6
6
 
7
7
  if TYPE_CHECKING:
8
- import instaui.vars as ui_vars
8
+ from instaui.vars.types import TMaybeRef
9
9
 
10
10
 
11
11
  _T_value = Union[int, float]
@@ -14,11 +14,11 @@ _T_value = Union[int, float]
14
14
  class Number(InputEventMixin, ValueElement[_T_value]):
15
15
  def __init__(
16
16
  self,
17
- value: Optional[ui_vars.TMaybeRef[_T_value]] = None,
17
+ value: Optional[TMaybeRef[_T_value]] = None,
18
18
  *,
19
- model_value: Optional[ui_vars.TMaybeRef[_T_value]] = None,
20
- min: Optional[ui_vars.TMaybeRef[_T_value]] = None,
21
- max: Optional[ui_vars.TMaybeRef[_T_value]] = None,
19
+ model_value: Optional[TMaybeRef[_T_value]] = None,
20
+ min: Optional[TMaybeRef[_T_value]] = None,
21
+ max: Optional[TMaybeRef[_T_value]] = None,
22
22
  ):
23
23
  super().__init__("input", value, is_html_component=True)
24
24
  self.props({"type": "number"})
@@ -3,13 +3,13 @@ from typing import TYPE_CHECKING, Any, Union
3
3
  from instaui.components.element import Element
4
4
 
5
5
  if TYPE_CHECKING:
6
- import instaui.vars as ui_vars
6
+ from instaui.vars.types import TMaybeRef
7
7
 
8
8
 
9
9
  class Paragraph(Element):
10
10
  def __init__(
11
11
  self,
12
- text: Union[str, ui_vars.TMaybeRef[Any]],
12
+ text: Union[str, TMaybeRef[Any]],
13
13
  ):
14
14
  super().__init__("p")
15
15
  self.props(
@@ -1,14 +1,9 @@
1
1
  from __future__ import annotations
2
2
  from typing import (
3
- TYPE_CHECKING,
4
- Callable,
5
- Dict,
6
3
  List,
7
4
  Optional,
8
5
  Union,
9
- overload,
10
6
  )
11
- from typing_extensions import Self
12
7
  from instaui.components.value_element import ValueElement
13
8
  from instaui.components.element import Element
14
9
  from instaui.event.event_mixin import EventMixin
@@ -3,13 +3,13 @@ from typing import TYPE_CHECKING, Any, Union
3
3
  from instaui.components.element import Element
4
4
 
5
5
  if TYPE_CHECKING:
6
- import instaui.vars as ui_vars
6
+ from instaui.vars.types import TMaybeRef
7
7
 
8
8
 
9
9
  class Span(Element):
10
10
  def __init__(
11
11
  self,
12
- text: Union[str, ui_vars.TMaybeRef[Any]],
12
+ text: Union[str, TMaybeRef[Any]],
13
13
  ):
14
14
  super().__init__("span")
15
15
  self.props(
@@ -1,24 +1,24 @@
1
1
  from __future__ import annotations
2
- from typing import TYPE_CHECKING, Any, List, Optional, Union
2
+ from typing import TYPE_CHECKING, Any, List, Union
3
3
  from instaui.components.element import Element
4
4
  from instaui.components.content import Content
5
5
  from instaui.components.vfor import VFor
6
6
 
7
7
  if TYPE_CHECKING:
8
- import instaui.vars as ui_vars
8
+ from instaui.vars.types import TMaybeRef
9
9
 
10
10
 
11
11
  class Table(Element):
12
12
  def __init__(
13
13
  self,
14
- columns: Union[List[str], ui_vars.TMaybeRef[List[str]], None] = None,
15
- rows: Union[List[List[Any]], ui_vars.TMaybeRef[List[List[Any]]], None] = None,
14
+ columns: Union[List[str], TMaybeRef[List[str]], None] = None,
15
+ rows: Union[List[List[Any]], TMaybeRef[List[List[Any]]], None] = None,
16
16
  ):
17
17
  """Create a table element.
18
18
 
19
19
  Args:
20
- columns (Union[List[str], ui_vars.TMaybeRef[List[str]], None], optional): A list of column headers or a reactive reference to such a list. Defaults to None.
21
- rows (Union[List[List[Any]], ui_vars.TMaybeRef[List[List[Any]]], None], optional): A list of row data, where each row is a list of cell values, or a reactive reference to such a list. Defaults to None.
20
+ columns (Union[List[str], TMaybeRef[List[str]], None], optional): A list of column headers or a reactive reference to such a list. Defaults to None.
21
+ rows (Union[List[List[Any]], TMaybeRef[List[List[Any]]], None], optional): A list of row data, where each row is a list of cell values, or a reactive reference to such a list. Defaults to None.
22
22
  """
23
23
  super().__init__("table")
24
24
 
@@ -6,16 +6,16 @@ from instaui.components.value_element import ValueElement
6
6
  from ._mixins import InputEventMixin
7
7
 
8
8
  if TYPE_CHECKING:
9
- import instaui.vars as ui_vars
9
+ from instaui.vars.types import TMaybeRef
10
10
 
11
11
 
12
12
  class Textarea(InputEventMixin, ValueElement[str]):
13
13
  def __init__(
14
14
  self,
15
- value: Union[str, ui_vars.TMaybeRef[str], None] = None,
15
+ value: Union[str, TMaybeRef[str], None] = None,
16
16
  *,
17
- model_value: Union[str, ui_vars.TMaybeRef[str], None] = None,
18
- disabled: Optional[ui_vars.TMaybeRef[bool]] = None,
17
+ model_value: Union[str, TMaybeRef[str], None] = None,
18
+ disabled: Optional[TMaybeRef[bool]] = None,
19
19
  ):
20
20
  super().__init__("textarea", value, is_html_component=True)
21
21
 
instaui/components/row.py CHANGED
@@ -1,7 +1,4 @@
1
1
  from __future__ import annotations
2
- from typing import (
3
- TypeVar,
4
- )
5
2
  from instaui.components.element import Element
6
3
  from instaui.vars.types import TMaybeRef
7
4
  from instaui.vars.js_computed import JsComputed
@@ -1,179 +1,179 @@
1
- :root {
2
- --shiki-font-family-mono: ui-monospace, "Menlo", "Monaco", "Consolas", "Liberation Mono", "Courier New", monospace;
3
- --shiki-code-line-height: 1.5;
4
- --shiki-code-font-size: 0.875em;
5
- --shiki-code-block-color: #67676c;
6
- --shiki-icon-copy: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='rgba(128,128,128,1)' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Crect width='8' height='4' x='8' y='2' rx='1' ry='1'/%3E%3Cpath d='M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2'/%3E%3C/svg%3E");
7
- --shiki-icon-copied: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='rgba(128,128,128,1)' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Crect width='8' height='4' x='8' y='2' rx='1' ry='1'/%3E%3Cpath d='M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2'/%3E%3Cpath d='m9 14 2 2 4-4'/%3E%3C/svg%3E");
8
- --shiki-code-copy-code-border-color: #e2e2e3;
9
- --shiki-code-copy-code-bg: #f6f6f7;
10
- --shiki-code-copy-code-hover-border-color: #e2e2e3;
11
- --shiki-code-copy-code-hover-bg: #ffffff;
12
- --shiki-code-copy-code-active-text: #67676c;
13
- --shiki-code-copy-copied-text-content: "Copied";
14
- --shiki-code-lang-color: #929295;
15
- }
16
- @media (min-width: 640px) {
17
- .shiki-code[class*=language-] {
18
- border-radius: 8px;
19
- margin: 15px 0;
20
- }
21
- }
22
- .shiki-code[class*=language-] {
23
- position: relative;
24
- margin: 16px 0;
25
- background-color: #f9f9f9;
26
- overflow-x: auto;
27
- transition: background-color 0.5s;
28
- /* line numbers */
29
- }
30
- .shiki-code[class*=language-] pre,
31
- .shiki-code[class*=language-] code {
32
- font-family: var(--shiki-font-family-mono);
33
- }
34
- .shiki-code[class*=language-] pre {
35
- position: relative;
36
- z-index: 1;
37
- margin: 0;
38
- padding: 20px 0;
39
- background: transparent;
40
- overflow-x: auto;
41
- }
42
- .shiki-code[class*=language-] code {
43
- display: block;
44
- padding: 0 24px 0 0;
45
- width: fit-content;
46
- min-width: 100%;
47
- line-height: var(--shiki-code-line-height);
48
- font-size: var(--shiki-code-font-size);
49
- color: var(--shiki-code-block-color);
50
- transition: color 0.5s;
51
- }
52
- .shiki-code[class*=language-] code > .line:before {
53
- content: ' ';
54
- padding: 0 5px;
55
- }
56
- .shiki-code[class*=language-] > button.copy {
57
- direction: ltr;
58
- position: absolute;
59
- top: 12px;
60
- right: 12px;
61
- z-index: 3;
62
- border: 1px solid var(--shiki-code-copy-code-border-color);
63
- border-radius: 4px;
64
- width: 40px;
65
- height: 40px;
66
- background-color: var(--shiki-code-copy-code-bg);
67
- opacity: 0;
68
- cursor: pointer;
69
- background-image: var(--shiki-icon-copy);
70
- background-position: 50%;
71
- background-size: 20px;
72
- background-repeat: no-repeat;
73
- transition: border-color 0.25s, background-color 0.25s, opacity 0.25s;
74
- }
75
- .shiki-code[class*=language-]:hover > button.copy,
76
- .shiki-code[class*=language-] > button.copy:focus {
77
- opacity: 1;
78
- }
79
- .shiki-code[class*=language-] > button.copy:hover,
80
- .shiki-code[class*=language-] > button.copy.copied {
81
- border-color: var(--shiki-code-copy-code-hover-border-color);
82
- background-color: var(--shiki-code-copy-code-hover-bg);
83
- }
84
- .shiki-code[class*=language-] > button.copy.copied,
85
- .shiki-code[class*=language-] > button.copy:hover.copied {
86
- border-radius: 0 4px 4px 0;
87
- background-color: var(--shiki-code-copy-code-hover-bg);
88
- background-image: var(--shiki-icon-copied);
89
- }
90
- .shiki-code[class*=language-] > button.copy.copied:before,
91
- .shiki-code[class*=language-] > button.copy:hover.copied:before {
92
- position: relative;
93
- top: -1px;
94
- display: flex;
95
- justify-content: center;
96
- align-items: center;
97
- border: 1px solid var(--shiki-code-copy-code-hover-border-color);
98
- border-right: 0;
99
- border-radius: 4px 0 0 4px;
100
- padding: 0 10px;
101
- width: fit-content;
102
- height: 40px;
103
- text-align: center;
104
- font-size: 12px;
105
- font-weight: 500;
106
- color: var(--shiki-code-copy-code-active-text);
107
- background-color: var(--shiki-code-copy-code-hover-bg);
108
- white-space: nowrap;
109
- content: var(--shiki-code-copy-copied-text-content);
110
- transform: translate(calc(-100% - 1px));
111
- }
112
- .shiki-code[class*=language-] > span.lang {
113
- position: absolute;
114
- top: 2px;
115
- right: 8px;
116
- z-index: 2;
117
- font-size: 12px;
118
- font-weight: 500;
119
- -webkit-user-select: none;
120
- user-select: none;
121
- color: var(--shiki-code-lang-color);
122
- transition: color 0.4s, opacity 0.4s;
123
- }
124
- .shiki-code[class*=language-]:hover > button.copy + span.lang,
125
- .shiki-code[class*=language-] > button.copy:focus + span.lang {
126
- opacity: 0;
127
- }
128
- .shiki-code[class*=language-].theme-dark {
129
- --shiki-code-line-diff-add-color: #3dd68c;
130
- --shiki-code-line-diff-add-symbol-color: #3dd68c;
131
- --shiki-code-line-diff-remove-color: hsla(349.72, 89.16%, 60.2%, 0.16);
132
- --shiki-code-line-diff-remove-symbol-color: hsl(357.62, 39.92%, 50.39%);
133
- --shiki-code-line-line-number-color: hsla(198.18, 13.36%, 80%, 0.7);
134
- }
135
- .shiki-code[class*=language-] pre.shiki .diff {
136
- all: unset;
137
- }
138
- .shiki-code[class*=language-] pre.shiki code .diff.remove {
139
- background-color: var(--shiki-code-line-diff-remove-color, rgba(244, 63, 94, 0.14));
140
- opacity: 0.7;
141
- }
142
- .shiki-code[class*=language-] pre.shiki code .diff.add {
143
- background-color: rgba(16, 185, 129, 0.14);
144
- }
145
- .shiki-code[class*=language-] pre.shiki code .diff.add:before {
146
- content: "+";
147
- color: var(--shiki-code-line-diff-add-symbol-color, #18794e);
148
- }
149
- .shiki-code[class*=language-] pre.shiki code .diff.remove:before {
150
- content: "-";
151
- color: var(--shiki-code-line-diff-remove-symbol-color, hsl(357.62, 39.92%, 50.39%));
152
- }
153
- .shiki-code[class*=language-] pre.shiki code .diff:before {
154
- width: 2.5em;
155
- text-align: left;
156
- padding-left: 10px;
157
- }
158
- .shiki-code[class*=language-] pre.shiki code .diff {
159
- box-sizing: border-box;
160
- transition: background-color 0.5s;
161
- margin: 0 -24px;
162
- padding: 0 24px;
163
- width: calc(100% + 48px);
164
- display: inline-block;
165
- }
166
- .shiki-code[class*=language-].line-numbers code {
167
- counter-reset: step;
168
- counter-increment: step 0;
169
- }
170
- .shiki-code[class*=language-].line-numbers code .line::before {
171
- content: counter(step);
172
- counter-increment: step;
173
- display: inline-block;
174
- text-align: right;
175
- color: var(--shiki-code-line-line-number-color, hsla(198.18, 13.36%, 51.57%, 0.7));
176
- width: 2.5em;
177
- text-align: left;
178
- padding-left: 10px;
179
- }
1
+ :root {
2
+ --shiki-font-family-mono: ui-monospace, "Menlo", "Monaco", "Consolas", "Liberation Mono", "Courier New", monospace;
3
+ --shiki-code-line-height: 1.5;
4
+ --shiki-code-font-size: 0.875em;
5
+ --shiki-code-block-color: #67676c;
6
+ --shiki-icon-copy: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='rgba(128,128,128,1)' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Crect width='8' height='4' x='8' y='2' rx='1' ry='1'/%3E%3Cpath d='M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2'/%3E%3C/svg%3E");
7
+ --shiki-icon-copied: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='rgba(128,128,128,1)' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Crect width='8' height='4' x='8' y='2' rx='1' ry='1'/%3E%3Cpath d='M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2'/%3E%3Cpath d='m9 14 2 2 4-4'/%3E%3C/svg%3E");
8
+ --shiki-code-copy-code-border-color: #e2e2e3;
9
+ --shiki-code-copy-code-bg: #f6f6f7;
10
+ --shiki-code-copy-code-hover-border-color: #e2e2e3;
11
+ --shiki-code-copy-code-hover-bg: #ffffff;
12
+ --shiki-code-copy-code-active-text: #67676c;
13
+ --shiki-code-copy-copied-text-content: "Copied";
14
+ --shiki-code-lang-color: #929295;
15
+ }
16
+ @media (min-width: 640px) {
17
+ .shiki-code[class*=language-] {
18
+ border-radius: 8px;
19
+ margin: 15px 0;
20
+ }
21
+ }
22
+ .shiki-code[class*=language-] {
23
+ position: relative;
24
+ margin: 16px 0;
25
+ background-color: #f9f9f9;
26
+ overflow-x: auto;
27
+ transition: background-color 0.5s;
28
+ /* line numbers */
29
+ }
30
+ .shiki-code[class*=language-] pre,
31
+ .shiki-code[class*=language-] code {
32
+ font-family: var(--shiki-font-family-mono);
33
+ }
34
+ .shiki-code[class*=language-] pre {
35
+ position: relative;
36
+ z-index: 1;
37
+ margin: 0;
38
+ padding: 20px 0;
39
+ background: transparent;
40
+ overflow-x: auto;
41
+ }
42
+ .shiki-code[class*=language-] code {
43
+ display: block;
44
+ padding: 0 24px 0 0;
45
+ width: fit-content;
46
+ min-width: 100%;
47
+ line-height: var(--shiki-code-line-height);
48
+ font-size: var(--shiki-code-font-size);
49
+ color: var(--shiki-code-block-color);
50
+ transition: color 0.5s;
51
+ }
52
+ .shiki-code[class*=language-] code > .line:before {
53
+ content: ' ';
54
+ padding: 0 5px;
55
+ }
56
+ .shiki-code[class*=language-] > button.copy {
57
+ direction: ltr;
58
+ position: absolute;
59
+ top: 12px;
60
+ right: 12px;
61
+ z-index: 3;
62
+ border: 1px solid var(--shiki-code-copy-code-border-color);
63
+ border-radius: 4px;
64
+ width: 40px;
65
+ height: 40px;
66
+ background-color: var(--shiki-code-copy-code-bg);
67
+ opacity: 0;
68
+ cursor: pointer;
69
+ background-image: var(--shiki-icon-copy);
70
+ background-position: 50%;
71
+ background-size: 20px;
72
+ background-repeat: no-repeat;
73
+ transition: border-color 0.25s, background-color 0.25s, opacity 0.25s;
74
+ }
75
+ .shiki-code[class*=language-]:hover > button.copy,
76
+ .shiki-code[class*=language-] > button.copy:focus {
77
+ opacity: 1;
78
+ }
79
+ .shiki-code[class*=language-] > button.copy:hover,
80
+ .shiki-code[class*=language-] > button.copy.copied {
81
+ border-color: var(--shiki-code-copy-code-hover-border-color);
82
+ background-color: var(--shiki-code-copy-code-hover-bg);
83
+ }
84
+ .shiki-code[class*=language-] > button.copy.copied,
85
+ .shiki-code[class*=language-] > button.copy:hover.copied {
86
+ border-radius: 0 4px 4px 0;
87
+ background-color: var(--shiki-code-copy-code-hover-bg);
88
+ background-image: var(--shiki-icon-copied);
89
+ }
90
+ .shiki-code[class*=language-] > button.copy.copied:before,
91
+ .shiki-code[class*=language-] > button.copy:hover.copied:before {
92
+ position: relative;
93
+ top: -1px;
94
+ display: flex;
95
+ justify-content: center;
96
+ align-items: center;
97
+ border: 1px solid var(--shiki-code-copy-code-hover-border-color);
98
+ border-right: 0;
99
+ border-radius: 4px 0 0 4px;
100
+ padding: 0 10px;
101
+ width: fit-content;
102
+ height: 40px;
103
+ text-align: center;
104
+ font-size: 12px;
105
+ font-weight: 500;
106
+ color: var(--shiki-code-copy-code-active-text);
107
+ background-color: var(--shiki-code-copy-code-hover-bg);
108
+ white-space: nowrap;
109
+ content: var(--shiki-code-copy-copied-text-content);
110
+ transform: translate(calc(-100% - 1px));
111
+ }
112
+ .shiki-code[class*=language-] > span.lang {
113
+ position: absolute;
114
+ top: 2px;
115
+ right: 8px;
116
+ z-index: 2;
117
+ font-size: 12px;
118
+ font-weight: 500;
119
+ -webkit-user-select: none;
120
+ user-select: none;
121
+ color: var(--shiki-code-lang-color);
122
+ transition: color 0.4s, opacity 0.4s;
123
+ }
124
+ .shiki-code[class*=language-]:hover > button.copy + span.lang,
125
+ .shiki-code[class*=language-] > button.copy:focus + span.lang {
126
+ opacity: 0;
127
+ }
128
+ .shiki-code[class*=language-].theme-dark {
129
+ --shiki-code-line-diff-add-color: #3dd68c;
130
+ --shiki-code-line-diff-add-symbol-color: #3dd68c;
131
+ --shiki-code-line-diff-remove-color: hsla(349.72, 89.16%, 60.2%, 0.16);
132
+ --shiki-code-line-diff-remove-symbol-color: hsl(357.62, 39.92%, 50.39%);
133
+ --shiki-code-line-line-number-color: hsla(198.18, 13.36%, 80%, 0.7);
134
+ }
135
+ .shiki-code[class*=language-] pre.shiki .diff {
136
+ all: unset;
137
+ }
138
+ .shiki-code[class*=language-] pre.shiki code .diff.remove {
139
+ background-color: var(--shiki-code-line-diff-remove-color, rgba(244, 63, 94, 0.14));
140
+ opacity: 0.7;
141
+ }
142
+ .shiki-code[class*=language-] pre.shiki code .diff.add {
143
+ background-color: rgba(16, 185, 129, 0.14);
144
+ }
145
+ .shiki-code[class*=language-] pre.shiki code .diff.add:before {
146
+ content: "+";
147
+ color: var(--shiki-code-line-diff-add-symbol-color, #18794e);
148
+ }
149
+ .shiki-code[class*=language-] pre.shiki code .diff.remove:before {
150
+ content: "-";
151
+ color: var(--shiki-code-line-diff-remove-symbol-color, hsl(357.62, 39.92%, 50.39%));
152
+ }
153
+ .shiki-code[class*=language-] pre.shiki code .diff:before {
154
+ width: 2.5em;
155
+ text-align: left;
156
+ padding-left: 10px;
157
+ }
158
+ .shiki-code[class*=language-] pre.shiki code .diff {
159
+ box-sizing: border-box;
160
+ transition: background-color 0.5s;
161
+ margin: 0 -24px;
162
+ padding: 0 24px;
163
+ width: calc(100% + 48px);
164
+ display: inline-block;
165
+ }
166
+ .shiki-code[class*=language-].line-numbers code {
167
+ counter-reset: step;
168
+ counter-increment: step 0;
169
+ }
170
+ .shiki-code[class*=language-].line-numbers code .line::before {
171
+ content: counter(step);
172
+ counter-increment: step;
173
+ display: inline-block;
174
+ text-align: right;
175
+ color: var(--shiki-code-line-line-number-color, hsla(198.18, 13.36%, 51.57%, 0.7));
176
+ width: 2.5em;
177
+ text-align: left;
178
+ padding-left: 10px;
179
+ }
@@ -1,4 +1,3 @@
1
1
  from .debug import list_all_bindables
2
- from instaui.vars.state import state
3
2
 
4
- __all__ = ["list_all_bindables", "state"]
3
+ __all__ = ["list_all_bindables"]