Preheat oven to 350 degrees F. Line a 9 inch square metal pan with parchment paper or non-stick foil.
Cream butter and sugar. Beat in vanilla and salt, then add flour and stir just until mixed. Press into bottom of pan and bake for 20 minutes or until pale and gold.
In a large saucepan, melt butter over medium heat. When butter is partially melted, stir in salt, condensed milk, brown sugar and corn syrup. Bring to a boil and cook for 5 minutes, stirring constantly, until mixture reaches 237 degrees on candy thermometer. Remove from heat and whisk for 30 seconds. Pour caramel mixture over cooled crust.
Sprinkle hazelnuts over caramel layer, pressing nuts lightly.
For topping, melt chocolate in microwave or top of double boiler and pour over nuts. Let it cool completely. Melt white chips in a heavy duty freezer bag in microwave or melt in a bowl and transfer to a freezer bag. Snip a tiny piece of bottom and drizzle over top. Let cool.
Cut bars after they have cooled and set. I found them easier to cut after they'd chilled.
Cut into 16 or 24 bars.