Sure, I’ll post it after I’m done.
It’s based on the work of others in this thread: Basic UI - kepad. The primary difference is it does not transmit each keypress individually to the alarm system but collects them in a buffer to form the passcode. It processes the passcode only after the user presses the Submit key (a checkmark symbol) and then flushes the buffer (you could easily modify it so it automatically processes a 4 or 6 digit passcode). The Cancel key (an “X”) flushes the buffer immediately. If the user fails to enter and submit the passcode within a predefined time period, the buffer is automatically flushed.
You should know that the appearance and behavior of the keypad is not identical for iOS and Android clients. On Android, the last key you tap remains highlighted. Tapping it again retains the highlighting (but gives one the impression the key may not have been tapped). In a browser, there’s a slight flicker when you click the same key twice. In iOS, the last key also remains highlighted but if you tap it again the highlighting disappears. It’s a bit puzzling to the user but that’s the way it works.