File size: 3,378 Bytes
25eb2b4
3a2e61d
53dcb25
7b883db
 
 
3a2e61d
7b883db
 
 
 
3a2e61d
866bcb2
 
3a2e61d
7b883db
3a2e61d
 
 
 
 
7b883db
3a2e61d
 
f93ba69
 
3a2e61d
 
 
 
 
 
 
 
f93ba69
3a2e61d
 
 
 
 
 
 
 
 
 
 
 
 
1c7dd78
866bcb2
 
3a2e61d
122a897
7b883db
3a2e61d
7b883db
122a897
 
 
 
f93ba69
3a2e61d
7b883db
 
e97685c
122a897
f93ba69
7b883db
 
f4ae373
 
 
 
f93ba69
 
f4ae373
 
 
f93ba69
7b883db
3a2e61d
7b883db
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
import streamlit as st
# No need to import time if not simulating task here

# --- Page Configuration ---
# This sets the title and icon that appear in the default header
st.set_page_config(
    page_title="SBS V2.0 mapper", # This title will appear in the fixed header
    page_icon=":material/keyboard:", # This icon can also appear in the header
    layout="wide" # Optional: Use wide layout
)

# --- Custom CSS for Fixed Default Header ---
st.markdown("""
<style>
    /* Make the default Streamlit header fixed at the top */
    header {
        position: fixed; /* Use fixed positioning for viewport-relative stickiness */
        top: 0;         /* Position from the top edge */
        left: 0;        /* Position from the left edge */
        width: 100%;    /* Span the full width of the viewport */
        z-index: 100;   /* Ensure the header is above other content */
        background-color: rgb(240, 242, 246); /* Match Streamlit's default header background color */
        box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); /* Optional: Add a subtle shadow */
        /* You might need to adjust padding if the default header height changes */
    }

    /* Add padding to the main content area to prevent it from being hidden behind the fixed header */
    /* This targets the main container div below the header and sidebar */
    /* You might need to inspect the Streamlit app's HTML structure in your browser
       (using developer tools) to find the precise data-testid or class for this div
       if "stAppViewContainer" or "stVerticalBlock" doesn't work reliably,
       but stAppViewContainer is a common target. */
    [data-testid="stAppViewContainer"] {
        padding-top: 70px; /* Adjust this value to be slightly more than your header's height */
    }

    /* Also add padding to the sidebar content */
     [data-testid="stSidebar"] {
         padding-top: 70px; /* Use the same padding value as the main content */
     }

     /* If the layout is 'wide', adjust the padding on the main container */
     /* This helps keep content aligned if the header has internal padding/margins */
    .main .block-container {
        padding-top: 1rem; /* Or match default streamlit content padding */
    }


</style>
""", unsafe_allow_html=True)

# --- App Content (will scroll below the fixed header) ---

# The logo placed here will likely appear in the sidebar or main body,
# not in the fixed default header. Use st.set_page_config for the header icon.
st.logo(image="images/menu_book_60dp_75FBFD.png")

st.sidebar.header("SBS V2.0 mapper")
st.sidebar.write("(work in progress)")
st.sidebar.text("Demo by JA-RAD")

# Note: st.title and st.subheader here will appear *below* the fixed header,
# as they are part of the main app content flow.
st.title("Map descriptions to SBS codes with Sentence Transformer + Reasoning")
st.subheader("Select specific Chapter for quicker results")


# --- NAVIGATION SETUP ---
# Keep your existing navigation setup
type_text_page = st.Page(
    page="pages/type_text.py",
    title="DEMO (work in progress)",
    icon=":material/keyboard:",
    default=True,
)

pg = st.navigation(pages=[type_text_page]) # WITHOUT SECTIONS
pg.run()

# Add some extra content to make the page scrollable for testing
for i in range(100): # Increased lines to ensure sufficient scrolling
    st.write(f"This is scrollable content line {i}")