elismasilva commited on
Commit
7ce353c
·
verified ·
1 Parent(s): f7370ab

Upload folder using huggingface_hub

Browse files
Files changed (4) hide show
  1. app.py +10 -9
  2. custom.html +22 -0
  3. src/demo/app.py +10 -9
  4. src/demo/custom.html +22 -0
app.py CHANGED
@@ -5,6 +5,7 @@ from dataclasses import dataclass, field, asdict
5
  from typing import Literal
6
  from gradio_propertysheet import PropertySheet
7
 
 
8
  # --- 1. Dataclass Definitions ---
9
 
10
  # Dataclasses for the Original Sidebar Demo
@@ -65,13 +66,13 @@ model_settings_map_py = {"SDXL 1.0": DPM_Settings(), "Stable Diffusion 1.5": Eul
65
  # --- 3. CSS and JavaScript Loading ---
66
 
67
  # Load external CSS file if it exists
68
- script_path = Path(__file__).resolve()
69
- script_dir = script_path.parent
70
- css_path = script_dir / "custom.css"
71
- flyout_css = ""
72
- if css_path.exists():
73
- with open(css_path, "r", encoding="utf8") as file:
74
- flyout_css = file.read()
75
 
76
  # JavaScript for positioning the flyout panel
77
  head_script = f"""
@@ -97,10 +98,10 @@ head_script = f"""
97
  }}, 50);
98
  }}
99
  </script>
100
- """
101
 
102
  # --- 4. Gradio App Build ---
103
- with gr.Blocks(css=flyout_css, head=head_script, title="PropertySheet Demos") as demo:
104
  gr.Markdown("# PropertySheet Component Demos")
105
 
106
  with gr.Tabs():
 
5
  from typing import Literal
6
  from gradio_propertysheet import PropertySheet
7
 
8
+
9
  # --- 1. Dataclass Definitions ---
10
 
11
  # Dataclasses for the Original Sidebar Demo
 
66
  # --- 3. CSS and JavaScript Loading ---
67
 
68
  # Load external CSS file if it exists
69
+ # script_path = Path(__file__).resolve()
70
+ # script_dir = script_path.parent
71
+ # css_path = script_dir / "custom.css"
72
+ # flyout_css = ""
73
+ # if css_path.exists():
74
+ # with open(css_path, "r", encoding="utf8") as file:
75
+ # flyout_css = file.read()
76
 
77
  # JavaScript for positioning the flyout panel
78
  head_script = f"""
 
98
  }}, 50);
99
  }}
100
  </script>
101
+ # """
102
 
103
  # --- 4. Gradio App Build ---
104
+ with gr.Blocks(css_paths=["demo/custom.css"], head=head_script, head_paths=["demo/custom.html"], title="PropertySheet Demos") as demo:
105
  gr.Markdown("# PropertySheet Component Demos")
106
 
107
  with gr.Tabs():
custom.html ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <script>
2
+ function position_flyout(anchorId) {{
3
+ setTimeout(() => {{
4
+ const anchorRow = document.getElementById(anchorId).closest('.fake-input-container');
5
+ const flyoutElem = document.getElementById('flyout_panel');
6
+
7
+ if (anchorRow && flyoutElem && flyoutElem.style.display !== 'none') {{
8
+ const anchorRect = anchorRow.getBoundingClientRect();
9
+ const containerRect = anchorRow.closest('.flyout-context-area').getBoundingClientRect();
10
+
11
+ const flyoutWidth = flyoutElem.offsetWidth;
12
+ const flyoutHeight = flyoutElem.offsetHeight;
13
+
14
+ const topPosition = (anchorRect.top - containerRect.top) + (anchorRect.height / 2) - (flyoutHeight / 2);
15
+ const leftPosition = (anchorRect.left - containerRect.left) + (anchorRect.width / 2) - (flyoutWidth / 2);
16
+
17
+ flyoutElem.style.top = `${{topPosition}}px`;
18
+ flyoutElem.style.left = `${{leftPosition}}px`;
19
+ }}
20
+ }}, 50);
21
+ }};
22
+ </script>
src/demo/app.py CHANGED
@@ -5,6 +5,7 @@ from dataclasses import dataclass, field, asdict
5
  from typing import Literal
6
  from gradio_propertysheet import PropertySheet
7
 
 
8
  # --- 1. Dataclass Definitions ---
9
 
10
  # Dataclasses for the Original Sidebar Demo
@@ -65,13 +66,13 @@ model_settings_map_py = {"SDXL 1.0": DPM_Settings(), "Stable Diffusion 1.5": Eul
65
  # --- 3. CSS and JavaScript Loading ---
66
 
67
  # Load external CSS file if it exists
68
- script_path = Path(__file__).resolve()
69
- script_dir = script_path.parent
70
- css_path = script_dir / "custom.css"
71
- flyout_css = ""
72
- if css_path.exists():
73
- with open(css_path, "r", encoding="utf8") as file:
74
- flyout_css = file.read()
75
 
76
  # JavaScript for positioning the flyout panel
77
  head_script = f"""
@@ -97,10 +98,10 @@ head_script = f"""
97
  }}, 50);
98
  }}
99
  </script>
100
- """
101
 
102
  # --- 4. Gradio App Build ---
103
- with gr.Blocks(css=flyout_css, head=head_script, title="PropertySheet Demos") as demo:
104
  gr.Markdown("# PropertySheet Component Demos")
105
 
106
  with gr.Tabs():
 
5
  from typing import Literal
6
  from gradio_propertysheet import PropertySheet
7
 
8
+
9
  # --- 1. Dataclass Definitions ---
10
 
11
  # Dataclasses for the Original Sidebar Demo
 
66
  # --- 3. CSS and JavaScript Loading ---
67
 
68
  # Load external CSS file if it exists
69
+ # script_path = Path(__file__).resolve()
70
+ # script_dir = script_path.parent
71
+ # css_path = script_dir / "custom.css"
72
+ # flyout_css = ""
73
+ # if css_path.exists():
74
+ # with open(css_path, "r", encoding="utf8") as file:
75
+ # flyout_css = file.read()
76
 
77
  # JavaScript for positioning the flyout panel
78
  head_script = f"""
 
98
  }}, 50);
99
  }}
100
  </script>
101
+ # """
102
 
103
  # --- 4. Gradio App Build ---
104
+ with gr.Blocks(css_paths=["demo/custom.css"], head=head_script, head_paths=["demo/custom.html"], title="PropertySheet Demos") as demo:
105
  gr.Markdown("# PropertySheet Component Demos")
106
 
107
  with gr.Tabs():
src/demo/custom.html ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <script>
2
+ function position_flyout(anchorId) {{
3
+ setTimeout(() => {{
4
+ const anchorRow = document.getElementById(anchorId).closest('.fake-input-container');
5
+ const flyoutElem = document.getElementById('flyout_panel');
6
+
7
+ if (anchorRow && flyoutElem && flyoutElem.style.display !== 'none') {{
8
+ const anchorRect = anchorRow.getBoundingClientRect();
9
+ const containerRect = anchorRow.closest('.flyout-context-area').getBoundingClientRect();
10
+
11
+ const flyoutWidth = flyoutElem.offsetWidth;
12
+ const flyoutHeight = flyoutElem.offsetHeight;
13
+
14
+ const topPosition = (anchorRect.top - containerRect.top) + (anchorRect.height / 2) - (flyoutHeight / 2);
15
+ const leftPosition = (anchorRect.left - containerRect.left) + (anchorRect.width / 2) - (flyoutWidth / 2);
16
+
17
+ flyoutElem.style.top = `${{topPosition}}px`;
18
+ flyoutElem.style.left = `${{leftPosition}}px`;
19
+ }}
20
+ }}, 50);
21
+ }};
22
+ </script>