It’s a bit confusing because your docs are only talking about user input. How is this related to user interface? You even label this resource as an input library on the readme.
Just letting you know “the latter” refers to the second option in the question. I looked through the resource and it looks definitely like a user input library.
I suggest changing the abbreviation UI to the actual words, because when I read this I first think of user interface as that is what I see it used for the most.
To load it, when you initialize the module, set the first argument to a plugin or nil then add the path to the UI plugin. (auto installation will be implemented later)
Also added a test plugin that integrates it with UI (User Interface)
UI Plugin functions include:
GetPosition/GetSize
Lock/Unlock Axis (X/Y)
SetDrag
Snap
None of these features are documented yet but here is a quick overview
SetDrag - Makes a UI object draggable at a point
Snap - Snaps a UI object to a UDim2 point with a radius
LockAxis - Locks the axis of the UI object to the given UDim
It is recommended to read the UI plugin and analyze the code so its easier to use