Wait I might have figured it out?
So, its definitely a strange way to do it. But no timers or sliders or anything.
Definitely needs some variables that have to get reset after each social that you add.
So you take a Text Input control (using modern) and set the following properties:
MaxLength = If(gvarFormatted = "", 9, 11)
DelayOutput = true
Value = gvarFormatted
OnChange =
Set(
gvarFormat,
true
);
If(
Len(Self.Value) = 9,
Set(
gvarFormatted,
Concatenate(
Left(
Self.Value,
3
),
"-",
Mid(
Self.Value,
4,
2
),
"-",
Right(
Self.Value,
4
)
)
)
)
This way if you slowly input the social the field doesn't bug out cause it'll wait till it sees 9 numbers. Then it formats it and that changes the MaxLength to account for the dashes.
Couple digits

then the time it took me to screenshot and paste it over here and add the last 4

You just need to add a button or something that has this in it:
OnSelect = Set(gvarFormat, false);Set(gvarFormatted, ""); Reset(txtSocial_Input_1)
txtSocial_Input_1 is just the name of my Text Input.