local s=game:GetService("\082\101\112\108\105\099\097\116\101\100\083\116\111\114\097\103\101")local D=s:WaitForChild("\108\105\098")local G=require(D:WaitForChild("\082\111\097\099\116"))local function w(s)local D=type(s)local G if D=="\116\097\098\108\101"then G={}for s,D in pairs(s)do G[s]=D end else G=s end return G end return function(s)local D=w(s)D.Position=UDim2.new(0,0,0,0)D.Size=UDim2.new(1,0,1,0)D.AnchorPoint=Vector2.new(0,0)D.TextColor3=D.TextColor3 or Color3.fromRGB(255,255,255)D.ZIndex=2 local Y=w(D)Y.TextColor3=Color3.fromRGB(0,0,0)Y.Position=UDim2.new(0,2,0,1)Y.ZIndex=1 Y.AnchorPoint=Vector2.new(0,0)local j=G.createElement("\084\101\120\116\076\097\098\101\108",D)local m=G.createElement("\084\101\120\116\076\097\098\101\108",Y)return G.createElement("\070\114\097\109\101",{Position=s.Position;AnchorPoint=s.AnchorPoint;Size=s.Size,BackgroundTransparency=1,LayoutOrder=s.LayoutOrder},{j;m})end
local ReplicatedStorage = game:GetService("ReplicatedStorage")

local lib = ReplicatedStorage:WaitForChild("lib")

local Roact = require(lib:WaitForChild("Roact"))

local function shallowcopy(orig)
    local orig_type = type(orig)
    local copy
    if orig_type == 'table' then
        copy = {}
        for orig_key, orig_value in pairs(orig) do
            copy[orig_key] = orig_value
        end
    else -- number, string, boolean, etc
        copy = orig
    end
    return copy
end

return function(props)

    local textProps = shallowcopy(props)

    textProps.Position = UDim2.new(0,0,0,0)
    textProps.Size = UDim2.new(1,0,1,0)
    textProps.AnchorPoint = Vector2.new(0,0)
    textProps.TextColor3 = textProps.TextColor3 or Color3.fromRGB(255,255,255)
    textProps.ZIndex = 2

    local shadowProps = shallowcopy(textProps) -- quick and dirty copy

    shadowProps.TextColor3 = Color3.fromRGB(0,0,0)
    shadowProps.Position = UDim2.new(0,2,0,1)
    shadowProps.ZIndex = 1
    shadowProps.AnchorPoint = Vector2.new(0,0)

    local textLabel = Roact.createElement("TextLabel", textProps)
    local shadowLabel = Roact.createElement("TextLabel", shadowProps)

    return Roact.createElement("Frame",{
        Position = props.Position,
        AnchorPoint = props.AnchorPoint,
        Size = props.Size,
        BackgroundTransparency = 1,
        LayoutOrder = props.LayoutOrder
    },{
        textLabel,
        shadowLabel,
    })
end