cluaupp 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +20 -0
- package/LICENSE +21 -0
- package/README.md +119 -0
- package/bin/cluau.js +4 -0
- package/bin/cluaupp.js +4 -0
- package/docs/README.md +20 -0
- package/docs/architecture.md +110 -0
- package/docs/cli.md +69 -0
- package/docs/comparison.md +37 -0
- package/docs/config.md +31 -0
- package/docs/cpp-advanced.md +71 -0
- package/docs/cpp-const.md +52 -0
- package/docs/cpp-organization.md +61 -0
- package/docs/cpp-safety.md +58 -0
- package/docs/cpp-types.md +66 -0
- package/docs/getting-started.md +169 -0
- package/docs/intro.md +37 -0
- package/docs/libraries.md +77 -0
- package/docs/roblox-api.md +81 -0
- package/docs/syntax.md +131 -0
- package/include/cluaupp/datatypes.hpp +581 -0
- package/include/cluaupp/generated/enums.hpp +4920 -0
- package/include/cluaupp/generated/instances.hpp +12489 -0
- package/include/cluaupp/libs/chrono.hpp +26 -0
- package/include/cluaupp/libs/cmdr.hpp +16 -0
- package/include/cluaupp/libs/dataservice.hpp +141 -0
- package/include/cluaupp/libs/display.hpp +13 -0
- package/include/cluaupp/libs/ezvisual.hpp +18 -0
- package/include/cluaupp/libs/formatnumber.hpp +15 -0
- package/include/cluaupp/libs/fusion.hpp +41 -0
- package/include/cluaupp/libs/iris.hpp +40 -0
- package/include/cluaupp/libs/janitor.hpp +35 -0
- package/include/cluaupp/libs/math.hpp +14 -0
- package/include/cluaupp/libs/module3d.hpp +25 -0
- package/include/cluaupp/libs/net.hpp +42 -0
- package/include/cluaupp/libs/promise.hpp +30 -0
- package/include/cluaupp/libs/spring.hpp +18 -0
- package/include/cluaupp/libs/statemachine.hpp +19 -0
- package/include/cluaupp/libs/stickybillboard.hpp +14 -0
- package/include/cluaupp/libs/topbarplus.hpp +29 -0
- package/include/cluaupp/libs/twinkle.hpp +15 -0
- package/include/cluaupp/libs/vfx.hpp +13 -0
- package/include/cluaupp/libs.hpp +25 -0
- package/include/cluaupp/roblox.hpp +28 -0
- package/package.json +65 -0
- package/runtime/ArrayIndexer/init.luau +144 -0
- package/runtime/Chrono/Client/ClientClock.luau +202 -0
- package/runtime/Chrono/Client/InterpolationBuffer.luau +74 -0
- package/runtime/Chrono/Client/ModelResolver.luau +53 -0
- package/runtime/Chrono/Client/Player.luau +113 -0
- package/runtime/Chrono/Client/Receiver.luau +395 -0
- package/runtime/Chrono/Client/Replicate.luau +333 -0
- package/runtime/Chrono/Client/Sender.luau +205 -0
- package/runtime/Chrono/LICENSE +21 -0
- package/runtime/Chrono/Server/EntityGrid.luau +299 -0
- package/runtime/Chrono/Server/Player.luau +141 -0
- package/runtime/Chrono/Server/Receiver.luau +287 -0
- package/runtime/Chrono/Server/Replicate.luau +415 -0
- package/runtime/Chrono/Server/Sender.luau +306 -0
- package/runtime/Chrono/Server/ServerClock.luau +50 -0
- package/runtime/Chrono/Shared/ApplyMounts.luau +137 -0
- package/runtime/Chrono/Shared/Bin.luau +31 -0
- package/runtime/Chrono/Shared/ClockUnwrap.luau +70 -0
- package/runtime/Chrono/Shared/Config.luau +264 -0
- package/runtime/Chrono/Shared/Entity.luau +1016 -0
- package/runtime/Chrono/Shared/Events.luau +39 -0
- package/runtime/Chrono/Shared/Holder.luau +210 -0
- package/runtime/Chrono/Shared/InterpolationMath.luau +51 -0
- package/runtime/Chrono/Shared/ModelHelper.luau +122 -0
- package/runtime/Chrono/Shared/Remotes/ClientClockRelay.model.json +3 -0
- package/runtime/Chrono/Shared/Remotes/ClientHeartbeat.model.json +3 -0
- package/runtime/Chrono/Shared/Remotes/ClientLoaded.model.json +3 -0
- package/runtime/Chrono/Shared/Remotes/Death.model.json +3 -0
- package/runtime/Chrono/Shared/Remotes/Heartbeat.model.json +3 -0
- package/runtime/Chrono/Shared/Remotes/Replicate.model.json +3 -0
- package/runtime/Chrono/Shared/Remotes/ReplicateFull.model.json +3 -0
- package/runtime/Chrono/Shared/Remotes/SafeReplicate.model.json +3 -0
- package/runtime/Chrono/Shared/ReplicationRules.luau +122 -0
- package/runtime/Chrono/Shared/Signal.luau +219 -0
- package/runtime/Chrono/Shared/Snapshots.luau +218 -0
- package/runtime/Chrono/Shared/Stats.luau +204 -0
- package/runtime/Chrono/Shared/Ticker.luau +112 -0
- package/runtime/Chrono/Shared/Types.luau +247 -0
- package/runtime/Chrono/Shared/Warn.luau +33 -0
- package/runtime/Chrono/Shared/_CUSTOM_MODEL_REP/init.model.json +3 -0
- package/runtime/Chrono/_impl/Client/ClientClock.luau +202 -0
- package/runtime/Chrono/_impl/Client/InterpolationBuffer.luau +74 -0
- package/runtime/Chrono/_impl/Client/ModelResolver.luau +53 -0
- package/runtime/Chrono/_impl/Client/Player.luau +113 -0
- package/runtime/Chrono/_impl/Client/Receiver.luau +395 -0
- package/runtime/Chrono/_impl/Client/Replicate.luau +333 -0
- package/runtime/Chrono/_impl/Client/Sender.luau +205 -0
- package/runtime/Chrono/_impl/LICENSE +21 -0
- package/runtime/Chrono/_impl/Server/EntityGrid.luau +299 -0
- package/runtime/Chrono/_impl/Server/Player.luau +141 -0
- package/runtime/Chrono/_impl/Server/Receiver.luau +287 -0
- package/runtime/Chrono/_impl/Server/Replicate.luau +415 -0
- package/runtime/Chrono/_impl/Server/Sender.luau +306 -0
- package/runtime/Chrono/_impl/Server/ServerClock.luau +50 -0
- package/runtime/Chrono/_impl/Shared/ApplyMounts.luau +137 -0
- package/runtime/Chrono/_impl/Shared/Bin.luau +31 -0
- package/runtime/Chrono/_impl/Shared/ClockUnwrap.luau +70 -0
- package/runtime/Chrono/_impl/Shared/Config.luau +264 -0
- package/runtime/Chrono/_impl/Shared/Entity.luau +1016 -0
- package/runtime/Chrono/_impl/Shared/Events.luau +39 -0
- package/runtime/Chrono/_impl/Shared/Holder.luau +210 -0
- package/runtime/Chrono/_impl/Shared/InterpolationMath.luau +51 -0
- package/runtime/Chrono/_impl/Shared/ModelHelper.luau +122 -0
- package/runtime/Chrono/_impl/Shared/Remotes/ClientClockRelay.model.json +3 -0
- package/runtime/Chrono/_impl/Shared/Remotes/ClientHeartbeat.model.json +3 -0
- package/runtime/Chrono/_impl/Shared/Remotes/ClientLoaded.model.json +3 -0
- package/runtime/Chrono/_impl/Shared/Remotes/Death.model.json +3 -0
- package/runtime/Chrono/_impl/Shared/Remotes/Heartbeat.model.json +3 -0
- package/runtime/Chrono/_impl/Shared/Remotes/Replicate.model.json +3 -0
- package/runtime/Chrono/_impl/Shared/Remotes/ReplicateFull.model.json +3 -0
- package/runtime/Chrono/_impl/Shared/Remotes/SafeReplicate.model.json +3 -0
- package/runtime/Chrono/_impl/Shared/ReplicationRules.luau +122 -0
- package/runtime/Chrono/_impl/Shared/Signal.luau +219 -0
- package/runtime/Chrono/_impl/Shared/Snapshots.luau +218 -0
- package/runtime/Chrono/_impl/Shared/Stats.luau +204 -0
- package/runtime/Chrono/_impl/Shared/Ticker.luau +112 -0
- package/runtime/Chrono/_impl/Shared/Types.luau +247 -0
- package/runtime/Chrono/_impl/Shared/Warn.luau +33 -0
- package/runtime/Chrono/_impl/Shared/_CUSTOM_MODEL_REP/init.model.json +3 -0
- package/runtime/Chrono/_impl/init.luau +96 -0
- package/runtime/Chrono/init.luau +14 -0
- package/runtime/Cmdr/BuiltInCommands/Admin/announce.luau +21 -0
- package/runtime/Cmdr/BuiltInCommands/Admin/announceServer.luau +17 -0
- package/runtime/Cmdr/BuiltInCommands/Admin/ban.luau +59 -0
- package/runtime/Cmdr/BuiltInCommands/Admin/banServer.luau +30 -0
- package/runtime/Cmdr/BuiltInCommands/Admin/gotoPlace.luau +35 -0
- package/runtime/Cmdr/BuiltInCommands/Admin/gotoPlaceServer.luau +17 -0
- package/runtime/Cmdr/BuiltInCommands/Admin/kick.luau +19 -0
- package/runtime/Cmdr/BuiltInCommands/Admin/kickServer.luau +27 -0
- package/runtime/Cmdr/BuiltInCommands/Admin/kill.luau +13 -0
- package/runtime/Cmdr/BuiltInCommands/Admin/killServer.luau +13 -0
- package/runtime/Cmdr/BuiltInCommands/Admin/respawn.luau +15 -0
- package/runtime/Cmdr/BuiltInCommands/Admin/respawnServer.luau +7 -0
- package/runtime/Cmdr/BuiltInCommands/Admin/teleport.luau +30 -0
- package/runtime/Cmdr/BuiltInCommands/Admin/teleportServer.luau +26 -0
- package/runtime/Cmdr/BuiltInCommands/Admin/unban.luau +26 -0
- package/runtime/Cmdr/BuiltInCommands/Admin/unbanServer.luau +10 -0
- package/runtime/Cmdr/BuiltInCommands/Debug/blink.luau +35 -0
- package/runtime/Cmdr/BuiltInCommands/Debug/fetch.luau +12 -0
- package/runtime/Cmdr/BuiltInCommands/Debug/fetchServer.luau +7 -0
- package/runtime/Cmdr/BuiltInCommands/Debug/getPlayerPlaceInstance.luau +20 -0
- package/runtime/Cmdr/BuiltInCommands/Debug/getPlayerPlaceInstanceServer.luau +28 -0
- package/runtime/Cmdr/BuiltInCommands/Debug/position.luau +30 -0
- package/runtime/Cmdr/BuiltInCommands/Debug/thru.luau +50 -0
- package/runtime/Cmdr/BuiltInCommands/Debug/uptime.luau +6 -0
- package/runtime/Cmdr/BuiltInCommands/Debug/uptimeServer.luau +12 -0
- package/runtime/Cmdr/BuiltInCommands/Debug/version.luau +12 -0
- package/runtime/Cmdr/BuiltInCommands/Utility/alias.luau +22 -0
- package/runtime/Cmdr/BuiltInCommands/Utility/bind.luau +104 -0
- package/runtime/Cmdr/BuiltInCommands/Utility/clear.luau +20 -0
- package/runtime/Cmdr/BuiltInCommands/Utility/convertTimestamp.luau +18 -0
- package/runtime/Cmdr/BuiltInCommands/Utility/echo.luau +17 -0
- package/runtime/Cmdr/BuiltInCommands/Utility/edit.luau +75 -0
- package/runtime/Cmdr/BuiltInCommands/Utility/exit.luau +11 -0
- package/runtime/Cmdr/BuiltInCommands/Utility/history.luau +27 -0
- package/runtime/Cmdr/BuiltInCommands/Utility/hover.luau +21 -0
- package/runtime/Cmdr/BuiltInCommands/Utility/jsonArrayDecode.luau +25 -0
- package/runtime/Cmdr/BuiltInCommands/Utility/jsonArrayEncode.luau +18 -0
- package/runtime/Cmdr/BuiltInCommands/Utility/len.luau +16 -0
- package/runtime/Cmdr/BuiltInCommands/Utility/math.luau +36 -0
- package/runtime/Cmdr/BuiltInCommands/Utility/pick.luau +21 -0
- package/runtime/Cmdr/BuiltInCommands/Utility/rand.luau +27 -0
- package/runtime/Cmdr/BuiltInCommands/Utility/replace.luau +32 -0
- package/runtime/Cmdr/BuiltInCommands/Utility/resolve.luau +32 -0
- package/runtime/Cmdr/BuiltInCommands/Utility/run.luau +20 -0
- package/runtime/Cmdr/BuiltInCommands/Utility/runLines.luau +34 -0
- package/runtime/Cmdr/BuiltInCommands/Utility/runif.luau +95 -0
- package/runtime/Cmdr/BuiltInCommands/Utility/unbind.luau +27 -0
- package/runtime/Cmdr/BuiltInCommands/Utility/var.luau +29 -0
- package/runtime/Cmdr/BuiltInCommands/Utility/varServer.luau +37 -0
- package/runtime/Cmdr/BuiltInCommands/Utility/varSet.luau +30 -0
- package/runtime/Cmdr/BuiltInCommands/Utility/varSetServer.luau +29 -0
- package/runtime/Cmdr/BuiltInCommands/help.luau +96 -0
- package/runtime/Cmdr/BuiltInTypes/BrickColor.luau +258 -0
- package/runtime/Cmdr/BuiltInTypes/Color3.luau +59 -0
- package/runtime/Cmdr/BuiltInTypes/Command.luau +23 -0
- package/runtime/Cmdr/BuiltInTypes/Duration.luau +111 -0
- package/runtime/Cmdr/BuiltInTypes/JSON.luau +13 -0
- package/runtime/Cmdr/BuiltInTypes/MathOperator.luau +43 -0
- package/runtime/Cmdr/BuiltInTypes/Player.luau +36 -0
- package/runtime/Cmdr/BuiltInTypes/PlayerId.luau +66 -0
- package/runtime/Cmdr/BuiltInTypes/Primitives.luau +145 -0
- package/runtime/Cmdr/BuiltInTypes/StoredKey.luau +33 -0
- package/runtime/Cmdr/BuiltInTypes/Team.luau +49 -0
- package/runtime/Cmdr/BuiltInTypes/Type.luau +23 -0
- package/runtime/Cmdr/BuiltInTypes/URL.luau +18 -0
- package/runtime/Cmdr/BuiltInTypes/UserInput.luau +32 -0
- package/runtime/Cmdr/BuiltInTypes/Vector.luau +58 -0
- package/runtime/Cmdr/CmdrClient/CmdrInterface/AutoComplete.luau +240 -0
- package/runtime/Cmdr/CmdrClient/CmdrInterface/CreateGui.luau +227 -0
- package/runtime/Cmdr/CmdrClient/CmdrInterface/Window.luau +713 -0
- package/runtime/Cmdr/CmdrClient/CmdrInterface/init.luau +18 -0
- package/runtime/Cmdr/CmdrClient/DefaultEventHandlers.luau +18 -0
- package/runtime/Cmdr/CmdrClient/Shared/Argument.luau +395 -0
- package/runtime/Cmdr/CmdrClient/Shared/BuiltInGuards/HasCharacter.luau +39 -0
- package/runtime/Cmdr/CmdrClient/Shared/BuiltInGuards/IsDataStoreAvailable.luau +36 -0
- package/runtime/Cmdr/CmdrClient/Shared/BuiltInGuards/MaxArrayLength.luau +10 -0
- package/runtime/Cmdr/CmdrClient/Shared/BuiltInGuards/MaxStringLength.luau +10 -0
- package/runtime/Cmdr/CmdrClient/Shared/BuiltInGuards/NonEmptyString.luau +10 -0
- package/runtime/Cmdr/CmdrClient/Shared/BuiltInGuards/NotEquals.luau +8 -0
- package/runtime/Cmdr/CmdrClient/Shared/Command.luau +415 -0
- package/runtime/Cmdr/CmdrClient/Shared/Dispatcher.luau +407 -0
- package/runtime/Cmdr/CmdrClient/Shared/Registry.luau +717 -0
- package/runtime/Cmdr/CmdrClient/Shared/Util.luau +879 -0
- package/runtime/Cmdr/CmdrClient/init.luau +377 -0
- package/runtime/Cmdr/LICENSE +21 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Admin/announce.luau +21 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Admin/announceServer.luau +17 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Admin/ban.luau +59 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Admin/banServer.luau +30 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Admin/gotoPlace.luau +35 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Admin/gotoPlaceServer.luau +17 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Admin/kick.luau +19 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Admin/kickServer.luau +27 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Admin/kill.luau +13 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Admin/killServer.luau +13 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Admin/respawn.luau +15 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Admin/respawnServer.luau +7 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Admin/teleport.luau +30 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Admin/teleportServer.luau +26 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Admin/unban.luau +26 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Admin/unbanServer.luau +10 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Debug/blink.luau +35 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Debug/fetch.luau +12 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Debug/fetchServer.luau +7 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Debug/getPlayerPlaceInstance.luau +20 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Debug/getPlayerPlaceInstanceServer.luau +28 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Debug/position.luau +30 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Debug/thru.luau +50 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Debug/uptime.luau +6 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Debug/uptimeServer.luau +12 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Debug/version.luau +12 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Utility/alias.luau +22 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Utility/bind.luau +104 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Utility/clear.luau +20 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Utility/convertTimestamp.luau +18 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Utility/echo.luau +17 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Utility/edit.luau +75 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Utility/exit.luau +11 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Utility/history.luau +27 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Utility/hover.luau +21 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Utility/jsonArrayDecode.luau +25 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Utility/jsonArrayEncode.luau +18 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Utility/len.luau +16 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Utility/math.luau +36 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Utility/pick.luau +21 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Utility/rand.luau +27 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Utility/replace.luau +32 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Utility/resolve.luau +32 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Utility/run.luau +20 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Utility/runLines.luau +34 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Utility/runif.luau +95 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Utility/unbind.luau +27 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Utility/var.luau +29 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Utility/varServer.luau +37 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Utility/varSet.luau +30 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/Utility/varSetServer.luau +29 -0
- package/runtime/Cmdr/_impl/BuiltInCommands/help.luau +96 -0
- package/runtime/Cmdr/_impl/BuiltInTypes/BrickColor.luau +258 -0
- package/runtime/Cmdr/_impl/BuiltInTypes/Color3.luau +59 -0
- package/runtime/Cmdr/_impl/BuiltInTypes/Command.luau +23 -0
- package/runtime/Cmdr/_impl/BuiltInTypes/Duration.luau +111 -0
- package/runtime/Cmdr/_impl/BuiltInTypes/JSON.luau +13 -0
- package/runtime/Cmdr/_impl/BuiltInTypes/MathOperator.luau +43 -0
- package/runtime/Cmdr/_impl/BuiltInTypes/Player.luau +36 -0
- package/runtime/Cmdr/_impl/BuiltInTypes/PlayerId.luau +66 -0
- package/runtime/Cmdr/_impl/BuiltInTypes/Primitives.luau +145 -0
- package/runtime/Cmdr/_impl/BuiltInTypes/StoredKey.luau +33 -0
- package/runtime/Cmdr/_impl/BuiltInTypes/Team.luau +49 -0
- package/runtime/Cmdr/_impl/BuiltInTypes/Type.luau +23 -0
- package/runtime/Cmdr/_impl/BuiltInTypes/URL.luau +18 -0
- package/runtime/Cmdr/_impl/BuiltInTypes/UserInput.luau +32 -0
- package/runtime/Cmdr/_impl/BuiltInTypes/Vector.luau +58 -0
- package/runtime/Cmdr/_impl/CmdrClient/CmdrInterface/AutoComplete.luau +240 -0
- package/runtime/Cmdr/_impl/CmdrClient/CmdrInterface/CreateGui.luau +227 -0
- package/runtime/Cmdr/_impl/CmdrClient/CmdrInterface/Window.luau +713 -0
- package/runtime/Cmdr/_impl/CmdrClient/CmdrInterface/init.luau +18 -0
- package/runtime/Cmdr/_impl/CmdrClient/DefaultEventHandlers.luau +18 -0
- package/runtime/Cmdr/_impl/CmdrClient/Shared/Argument.luau +395 -0
- package/runtime/Cmdr/_impl/CmdrClient/Shared/BuiltInGuards/HasCharacter.luau +39 -0
- package/runtime/Cmdr/_impl/CmdrClient/Shared/BuiltInGuards/IsDataStoreAvailable.luau +36 -0
- package/runtime/Cmdr/_impl/CmdrClient/Shared/BuiltInGuards/MaxArrayLength.luau +10 -0
- package/runtime/Cmdr/_impl/CmdrClient/Shared/BuiltInGuards/MaxStringLength.luau +10 -0
- package/runtime/Cmdr/_impl/CmdrClient/Shared/BuiltInGuards/NonEmptyString.luau +10 -0
- package/runtime/Cmdr/_impl/CmdrClient/Shared/BuiltInGuards/NotEquals.luau +8 -0
- package/runtime/Cmdr/_impl/CmdrClient/Shared/Command.luau +415 -0
- package/runtime/Cmdr/_impl/CmdrClient/Shared/Dispatcher.luau +407 -0
- package/runtime/Cmdr/_impl/CmdrClient/Shared/Registry.luau +717 -0
- package/runtime/Cmdr/_impl/CmdrClient/Shared/Util.luau +879 -0
- package/runtime/Cmdr/_impl/CmdrClient/init.luau +377 -0
- package/runtime/Cmdr/_impl/LICENSE +21 -0
- package/runtime/Cmdr/_impl/init.luau +178 -0
- package/runtime/Cmdr/init.luau +8 -0
- package/runtime/DataService/Client.luau +209 -0
- package/runtime/DataService/Data.luau +886 -0
- package/runtime/DataService/Enum.luau +6 -0
- package/runtime/DataService/Enums.luau +10 -0
- package/runtime/DataService/Packages/quicknet/DataTypes.luau +70 -0
- package/runtime/DataService/Packages/quicknet/Enums.luau +85 -0
- package/runtime/DataService/Packages/quicknet/EnumsToNativeTypes.luau +57 -0
- package/runtime/DataService/Packages/quicknet/Parser.luau +355 -0
- package/runtime/DataService/Packages/quicknet/QuickNet.luau +953 -0
- package/runtime/DataService/Packages/quicknet/Serialize.luau +2020 -0
- package/runtime/DataService/Packages/quicknet/Types.luau +72 -0
- package/runtime/DataService/Packages/quicknet/init.luau +1 -0
- package/runtime/DataService/Packages/signal/init.luau +433 -0
- package/runtime/DataService/Path.luau +236 -0
- package/runtime/DataService/ProfileStore.luau +2243 -0
- package/runtime/DataService/Replicator.luau +172 -0
- package/runtime/DataService/Server.luau +412 -0
- package/runtime/DataService/init.luau +204 -0
- package/runtime/Display/LICENSE +201 -0
- package/runtime/Display/_impl/LICENSE +201 -0
- package/runtime/Display/_impl/init.luau +269 -0
- package/runtime/Display/_impl/option.luau +237 -0
- package/runtime/Display/init.luau +10 -0
- package/runtime/Display/option.luau +237 -0
- package/runtime/EzVisualz/Dropshadow.luau +148 -0
- package/runtime/EzVisualz/Gradient.luau +452 -0
- package/runtime/EzVisualz/GradientTemplates/Bubblegum.luau +16 -0
- package/runtime/EzVisualz/GradientTemplates/Chrome.luau +16 -0
- package/runtime/EzVisualz/GradientTemplates/Death.luau +15 -0
- package/runtime/EzVisualz/GradientTemplates/Electric.luau +14 -0
- package/runtime/EzVisualz/GradientTemplates/Fire.luau +13 -0
- package/runtime/EzVisualz/GradientTemplates/Galaxy.luau +11 -0
- package/runtime/EzVisualz/GradientTemplates/Ghost.luau +16 -0
- package/runtime/EzVisualz/GradientTemplates/Gold.luau +14 -0
- package/runtime/EzVisualz/GradientTemplates/Green.luau +14 -0
- package/runtime/EzVisualz/GradientTemplates/Ice.luau +14 -0
- package/runtime/EzVisualz/GradientTemplates/Lava.luau +15 -0
- package/runtime/EzVisualz/GradientTemplates/Matrix.luau +19 -0
- package/runtime/EzVisualz/GradientTemplates/Neon.luau +12 -0
- package/runtime/EzVisualz/GradientTemplates/Oceanic.luau +15 -0
- package/runtime/EzVisualz/GradientTemplates/Rainbow.luau +13 -0
- package/runtime/EzVisualz/GradientTemplates/Silver.luau +12 -0
- package/runtime/EzVisualz/GradientTemplates/Sunset.luau +11 -0
- package/runtime/EzVisualz/GradientTemplates/Zebra.luau +18 -0
- package/runtime/EzVisualz/GradientTemplates/init.luau +9 -0
- package/runtime/EzVisualz/LICENSE.md +21 -0
- package/runtime/EzVisualz/Presets/Bubblegum.luau +36 -0
- package/runtime/EzVisualz/Presets/ChromeStroke.luau +15 -0
- package/runtime/EzVisualz/Presets/DeathStroke.luau +15 -0
- package/runtime/EzVisualz/Presets/ElectricStroke.luau +54 -0
- package/runtime/EzVisualz/Presets/FireStroke.luau +29 -0
- package/runtime/EzVisualz/Presets/GalaxyStroke.luau +31 -0
- package/runtime/EzVisualz/Presets/Ghost.luau +10 -0
- package/runtime/EzVisualz/Presets/GhostStroke.luau +15 -0
- package/runtime/EzVisualz/Presets/Gold.luau +10 -0
- package/runtime/EzVisualz/Presets/GoldStroke.luau +15 -0
- package/runtime/EzVisualz/Presets/GreenOutline.luau +23 -0
- package/runtime/EzVisualz/Presets/IceStroke.luau +15 -0
- package/runtime/EzVisualz/Presets/Lava.luau +9 -0
- package/runtime/EzVisualz/Presets/LavaStroke.luau +13 -0
- package/runtime/EzVisualz/Presets/Matrix.luau +21 -0
- package/runtime/EzVisualz/Presets/NeonStroke.luau +30 -0
- package/runtime/EzVisualz/Presets/OceanicStroke.luau +15 -0
- package/runtime/EzVisualz/Presets/Rainbow.luau +9 -0
- package/runtime/EzVisualz/Presets/RainbowOutline.luau +23 -0
- package/runtime/EzVisualz/Presets/RainbowStroke.luau +13 -0
- package/runtime/EzVisualz/Presets/Shine.luau +48 -0
- package/runtime/EzVisualz/Presets/ShineOutline.luau +66 -0
- package/runtime/EzVisualz/Presets/Silver.luau +10 -0
- package/runtime/EzVisualz/Presets/SilverStroke.luau +15 -0
- package/runtime/EzVisualz/Presets/SunsetStroke.luau +31 -0
- package/runtime/EzVisualz/Presets/WaveStroke.luau +33 -0
- package/runtime/EzVisualz/Presets/Zebra.luau +21 -0
- package/runtime/EzVisualz/Presets/init.luau +9 -0
- package/runtime/EzVisualz/Stroke.luau +167 -0
- package/runtime/EzVisualz/Util.luau +7 -0
- package/runtime/EzVisualz/_impl/Dropshadow.luau +148 -0
- package/runtime/EzVisualz/_impl/Gradient.luau +452 -0
- package/runtime/EzVisualz/_impl/GradientTemplates/Bubblegum.luau +16 -0
- package/runtime/EzVisualz/_impl/GradientTemplates/Chrome.luau +16 -0
- package/runtime/EzVisualz/_impl/GradientTemplates/Death.luau +15 -0
- package/runtime/EzVisualz/_impl/GradientTemplates/Electric.luau +14 -0
- package/runtime/EzVisualz/_impl/GradientTemplates/Fire.luau +13 -0
- package/runtime/EzVisualz/_impl/GradientTemplates/Galaxy.luau +11 -0
- package/runtime/EzVisualz/_impl/GradientTemplates/Ghost.luau +16 -0
- package/runtime/EzVisualz/_impl/GradientTemplates/Gold.luau +14 -0
- package/runtime/EzVisualz/_impl/GradientTemplates/Green.luau +14 -0
- package/runtime/EzVisualz/_impl/GradientTemplates/Ice.luau +14 -0
- package/runtime/EzVisualz/_impl/GradientTemplates/Lava.luau +15 -0
- package/runtime/EzVisualz/_impl/GradientTemplates/Matrix.luau +19 -0
- package/runtime/EzVisualz/_impl/GradientTemplates/Neon.luau +12 -0
- package/runtime/EzVisualz/_impl/GradientTemplates/Oceanic.luau +15 -0
- package/runtime/EzVisualz/_impl/GradientTemplates/Rainbow.luau +13 -0
- package/runtime/EzVisualz/_impl/GradientTemplates/Silver.luau +12 -0
- package/runtime/EzVisualz/_impl/GradientTemplates/Sunset.luau +11 -0
- package/runtime/EzVisualz/_impl/GradientTemplates/Zebra.luau +18 -0
- package/runtime/EzVisualz/_impl/GradientTemplates/init.luau +9 -0
- package/runtime/EzVisualz/_impl/LICENSE.md +21 -0
- package/runtime/EzVisualz/_impl/Presets/Bubblegum.luau +36 -0
- package/runtime/EzVisualz/_impl/Presets/ChromeStroke.luau +15 -0
- package/runtime/EzVisualz/_impl/Presets/DeathStroke.luau +15 -0
- package/runtime/EzVisualz/_impl/Presets/ElectricStroke.luau +54 -0
- package/runtime/EzVisualz/_impl/Presets/FireStroke.luau +29 -0
- package/runtime/EzVisualz/_impl/Presets/GalaxyStroke.luau +31 -0
- package/runtime/EzVisualz/_impl/Presets/Ghost.luau +10 -0
- package/runtime/EzVisualz/_impl/Presets/GhostStroke.luau +15 -0
- package/runtime/EzVisualz/_impl/Presets/Gold.luau +10 -0
- package/runtime/EzVisualz/_impl/Presets/GoldStroke.luau +15 -0
- package/runtime/EzVisualz/_impl/Presets/GreenOutline.luau +23 -0
- package/runtime/EzVisualz/_impl/Presets/IceStroke.luau +15 -0
- package/runtime/EzVisualz/_impl/Presets/Lava.luau +9 -0
- package/runtime/EzVisualz/_impl/Presets/LavaStroke.luau +13 -0
- package/runtime/EzVisualz/_impl/Presets/Matrix.luau +21 -0
- package/runtime/EzVisualz/_impl/Presets/NeonStroke.luau +30 -0
- package/runtime/EzVisualz/_impl/Presets/OceanicStroke.luau +15 -0
- package/runtime/EzVisualz/_impl/Presets/Rainbow.luau +9 -0
- package/runtime/EzVisualz/_impl/Presets/RainbowOutline.luau +23 -0
- package/runtime/EzVisualz/_impl/Presets/RainbowStroke.luau +13 -0
- package/runtime/EzVisualz/_impl/Presets/Shine.luau +48 -0
- package/runtime/EzVisualz/_impl/Presets/ShineOutline.luau +66 -0
- package/runtime/EzVisualz/_impl/Presets/Silver.luau +10 -0
- package/runtime/EzVisualz/_impl/Presets/SilverStroke.luau +15 -0
- package/runtime/EzVisualz/_impl/Presets/SunsetStroke.luau +31 -0
- package/runtime/EzVisualz/_impl/Presets/WaveStroke.luau +33 -0
- package/runtime/EzVisualz/_impl/Presets/Zebra.luau +21 -0
- package/runtime/EzVisualz/_impl/Presets/init.luau +9 -0
- package/runtime/EzVisualz/_impl/Stroke.luau +167 -0
- package/runtime/EzVisualz/_impl/Util.luau +7 -0
- package/runtime/EzVisualz/_impl/init.luau +319 -0
- package/runtime/EzVisualz/_impl/wally.lock +8 -0
- package/runtime/EzVisualz/_impl/wally.toml +8 -0
- package/runtime/EzVisualz/init.luau +9 -0
- package/runtime/EzVisualz/wally.lock +8 -0
- package/runtime/EzVisualz/wally.toml +8 -0
- package/runtime/FormatNumber/LICENSE.md +25 -0
- package/runtime/FormatNumber/Main/DecimalFormatSymbols.lua +43 -0
- package/runtime/FormatNumber/Main/IntegerWidth.lua +41 -0
- package/runtime/FormatNumber/Main/Notation.lua +116 -0
- package/runtime/FormatNumber/Main/Precision.lua +179 -0
- package/runtime/FormatNumber/Main/init.lua +199 -0
- package/runtime/FormatNumber/Simple/init.lua +76 -0
- package/runtime/FormatNumber/Version.lua +82 -0
- package/runtime/FormatNumber/_impl/LICENSE.md +25 -0
- package/runtime/FormatNumber/_impl/Main/DecimalFormatSymbols.lua +43 -0
- package/runtime/FormatNumber/_impl/Main/IntegerWidth.lua +41 -0
- package/runtime/FormatNumber/_impl/Main/Notation.lua +116 -0
- package/runtime/FormatNumber/_impl/Main/Precision.lua +179 -0
- package/runtime/FormatNumber/_impl/Main/init.lua +199 -0
- package/runtime/FormatNumber/_impl/Simple/init.lua +76 -0
- package/runtime/FormatNumber/_impl/Version.lua +82 -0
- package/runtime/FormatNumber/_impl/_internal/class.lua +204 -0
- package/runtime/FormatNumber/_impl/_internal/decimal_conversion.lua +30 -0
- package/runtime/FormatNumber/_impl/_internal/enums.lua +55 -0
- package/runtime/FormatNumber/_impl/_internal/format.lua +342 -0
- package/runtime/FormatNumber/_impl/_internal/formatter_settings.lua +160 -0
- package/runtime/FormatNumber/_impl/_internal/init.lua +8 -0
- package/runtime/FormatNumber/_impl/_internal/skeleton.lua +541 -0
- package/runtime/FormatNumber/_impl/init.lua +20 -0
- package/runtime/FormatNumber/_internal/class.lua +204 -0
- package/runtime/FormatNumber/_internal/decimal_conversion.lua +30 -0
- package/runtime/FormatNumber/_internal/enums.lua +55 -0
- package/runtime/FormatNumber/_internal/format.lua +342 -0
- package/runtime/FormatNumber/_internal/formatter_settings.lua +160 -0
- package/runtime/FormatNumber/_internal/init.lua +8 -0
- package/runtime/FormatNumber/_internal/skeleton.lua +541 -0
- package/runtime/FormatNumber/init.lua +20 -0
- package/runtime/FormatNumber/init.luau +20 -0
- package/runtime/Fusion/Animation/ExternalTime.luau +84 -0
- package/runtime/Fusion/Animation/Spring.luau +313 -0
- package/runtime/Fusion/Animation/Stopwatch.luau +128 -0
- package/runtime/Fusion/Animation/Tween.luau +178 -0
- package/runtime/Fusion/Animation/getTweenDuration.luau +27 -0
- package/runtime/Fusion/Animation/getTweenRatio.luau +47 -0
- package/runtime/Fusion/Animation/lerpType.luau +164 -0
- package/runtime/Fusion/Animation/packType.luau +100 -0
- package/runtime/Fusion/Animation/springCoefficients.luau +80 -0
- package/runtime/Fusion/Animation/unpackType.luau +103 -0
- package/runtime/Fusion/Colour/Oklab.luau +70 -0
- package/runtime/Fusion/Colour/sRGB.luau +47 -0
- package/runtime/Fusion/External.luau +156 -0
- package/runtime/Fusion/ExternalDebug.luau +70 -0
- package/runtime/Fusion/Graph/Observer.luau +111 -0
- package/runtime/Fusion/Graph/castToGraph.luau +29 -0
- package/runtime/Fusion/Graph/change.luau +81 -0
- package/runtime/Fusion/Graph/depend.luau +33 -0
- package/runtime/Fusion/Graph/evaluate.luau +56 -0
- package/runtime/Fusion/Instances/Attribute.luau +58 -0
- package/runtime/Fusion/Instances/AttributeChange.luau +47 -0
- package/runtime/Fusion/Instances/AttributeOut.luau +63 -0
- package/runtime/Fusion/Instances/Child.luau +21 -0
- package/runtime/Fusion/Instances/Children.luau +148 -0
- package/runtime/Fusion/Instances/Hydrate.luau +29 -0
- package/runtime/Fusion/Instances/New.luau +48 -0
- package/runtime/Fusion/Instances/OnChange.luau +50 -0
- package/runtime/Fusion/Instances/OnEvent.luau +54 -0
- package/runtime/Fusion/Instances/Out.luau +69 -0
- package/runtime/Fusion/Instances/Tag.luau +61 -0
- package/runtime/Fusion/Instances/applyInstanceProps.luau +149 -0
- package/runtime/Fusion/Instances/defaultProps.luau +194 -0
- package/runtime/Fusion/LICENSE +21 -0
- package/runtime/Fusion/Logging/formatError.luau +49 -0
- package/runtime/Fusion/Logging/messages.luau +46 -0
- package/runtime/Fusion/Logging/parseError.luau +25 -0
- package/runtime/Fusion/Memory/checkLifetime.luau +134 -0
- package/runtime/Fusion/Memory/deriveScope.luau +24 -0
- package/runtime/Fusion/Memory/deriveScopeImpl.luau +40 -0
- package/runtime/Fusion/Memory/doCleanup.luau +91 -0
- package/runtime/Fusion/Memory/innerScope.luau +34 -0
- package/runtime/Fusion/Memory/insert.luau +22 -0
- package/runtime/Fusion/Memory/needsDestruction.luau +17 -0
- package/runtime/Fusion/Memory/scoped.luau +24 -0
- package/runtime/Fusion/RobloxExternal.luau +98 -0
- package/runtime/Fusion/State/Computed.luau +122 -0
- package/runtime/Fusion/State/For/Disassembly.luau +207 -0
- package/runtime/Fusion/State/For/ForTypes.luau +30 -0
- package/runtime/Fusion/State/For/init.luau +101 -0
- package/runtime/Fusion/State/ForKeys.luau +88 -0
- package/runtime/Fusion/State/ForPairs.luau +91 -0
- package/runtime/Fusion/State/ForValues.luau +88 -0
- package/runtime/Fusion/State/Value.luau +76 -0
- package/runtime/Fusion/State/castToState.luau +26 -0
- package/runtime/Fusion/State/peek.luau +31 -0
- package/runtime/Fusion/State/updateAll.luau +1 -0
- package/runtime/Fusion/Types.luau +318 -0
- package/runtime/Fusion/Utility/Contextual.luau +91 -0
- package/runtime/Fusion/Utility/Safe.luau +23 -0
- package/runtime/Fusion/Utility/isSimilar.luau +29 -0
- package/runtime/Fusion/Utility/merge.luau +35 -0
- package/runtime/Fusion/Utility/nameOf.luau +35 -0
- package/runtime/Fusion/Utility/never.luau +14 -0
- package/runtime/Fusion/Utility/nicknames.luau +11 -0
- package/runtime/Fusion/Utility/xtypeof.luau +27 -0
- package/runtime/Fusion/_impl/Animation/ExternalTime.luau +84 -0
- package/runtime/Fusion/_impl/Animation/Spring.luau +313 -0
- package/runtime/Fusion/_impl/Animation/Stopwatch.luau +128 -0
- package/runtime/Fusion/_impl/Animation/Tween.luau +178 -0
- package/runtime/Fusion/_impl/Animation/getTweenDuration.luau +27 -0
- package/runtime/Fusion/_impl/Animation/getTweenRatio.luau +47 -0
- package/runtime/Fusion/_impl/Animation/lerpType.luau +164 -0
- package/runtime/Fusion/_impl/Animation/packType.luau +100 -0
- package/runtime/Fusion/_impl/Animation/springCoefficients.luau +80 -0
- package/runtime/Fusion/_impl/Animation/unpackType.luau +103 -0
- package/runtime/Fusion/_impl/Colour/Oklab.luau +70 -0
- package/runtime/Fusion/_impl/Colour/sRGB.luau +47 -0
- package/runtime/Fusion/_impl/External.luau +156 -0
- package/runtime/Fusion/_impl/ExternalDebug.luau +70 -0
- package/runtime/Fusion/_impl/Graph/Observer.luau +111 -0
- package/runtime/Fusion/_impl/Graph/castToGraph.luau +29 -0
- package/runtime/Fusion/_impl/Graph/change.luau +81 -0
- package/runtime/Fusion/_impl/Graph/depend.luau +33 -0
- package/runtime/Fusion/_impl/Graph/evaluate.luau +56 -0
- package/runtime/Fusion/_impl/Instances/Attribute.luau +58 -0
- package/runtime/Fusion/_impl/Instances/AttributeChange.luau +47 -0
- package/runtime/Fusion/_impl/Instances/AttributeOut.luau +63 -0
- package/runtime/Fusion/_impl/Instances/Child.luau +21 -0
- package/runtime/Fusion/_impl/Instances/Children.luau +148 -0
- package/runtime/Fusion/_impl/Instances/Hydrate.luau +29 -0
- package/runtime/Fusion/_impl/Instances/New.luau +48 -0
- package/runtime/Fusion/_impl/Instances/OnChange.luau +50 -0
- package/runtime/Fusion/_impl/Instances/OnEvent.luau +54 -0
- package/runtime/Fusion/_impl/Instances/Out.luau +69 -0
- package/runtime/Fusion/_impl/Instances/Tag.luau +61 -0
- package/runtime/Fusion/_impl/Instances/applyInstanceProps.luau +149 -0
- package/runtime/Fusion/_impl/Instances/defaultProps.luau +194 -0
- package/runtime/Fusion/_impl/LICENSE +21 -0
- package/runtime/Fusion/_impl/Logging/formatError.luau +49 -0
- package/runtime/Fusion/_impl/Logging/messages.luau +46 -0
- package/runtime/Fusion/_impl/Logging/parseError.luau +25 -0
- package/runtime/Fusion/_impl/Memory/checkLifetime.luau +134 -0
- package/runtime/Fusion/_impl/Memory/deriveScope.luau +24 -0
- package/runtime/Fusion/_impl/Memory/deriveScopeImpl.luau +40 -0
- package/runtime/Fusion/_impl/Memory/doCleanup.luau +91 -0
- package/runtime/Fusion/_impl/Memory/innerScope.luau +34 -0
- package/runtime/Fusion/_impl/Memory/insert.luau +22 -0
- package/runtime/Fusion/_impl/Memory/needsDestruction.luau +17 -0
- package/runtime/Fusion/_impl/Memory/scoped.luau +24 -0
- package/runtime/Fusion/_impl/RobloxExternal.luau +98 -0
- package/runtime/Fusion/_impl/State/Computed.luau +122 -0
- package/runtime/Fusion/_impl/State/For/Disassembly.luau +207 -0
- package/runtime/Fusion/_impl/State/For/ForTypes.luau +30 -0
- package/runtime/Fusion/_impl/State/For/init.luau +101 -0
- package/runtime/Fusion/_impl/State/ForKeys.luau +88 -0
- package/runtime/Fusion/_impl/State/ForPairs.luau +91 -0
- package/runtime/Fusion/_impl/State/ForValues.luau +88 -0
- package/runtime/Fusion/_impl/State/Value.luau +76 -0
- package/runtime/Fusion/_impl/State/castToState.luau +26 -0
- package/runtime/Fusion/_impl/State/peek.luau +31 -0
- package/runtime/Fusion/_impl/State/updateAll.luau +1 -0
- package/runtime/Fusion/_impl/Types.luau +318 -0
- package/runtime/Fusion/_impl/Utility/Contextual.luau +91 -0
- package/runtime/Fusion/_impl/Utility/Safe.luau +23 -0
- package/runtime/Fusion/_impl/Utility/isSimilar.luau +29 -0
- package/runtime/Fusion/_impl/Utility/merge.luau +35 -0
- package/runtime/Fusion/_impl/Utility/nameOf.luau +35 -0
- package/runtime/Fusion/_impl/Utility/never.luau +14 -0
- package/runtime/Fusion/_impl/Utility/nicknames.luau +11 -0
- package/runtime/Fusion/_impl/Utility/xtypeof.luau +27 -0
- package/runtime/Fusion/_impl/init.luau +83 -0
- package/runtime/Fusion/init.luau +27 -0
- package/runtime/Iris/API.lua +2085 -0
- package/runtime/Iris/Internal.lua +895 -0
- package/runtime/Iris/LICENSE.txt +21 -0
- package/runtime/Iris/PubTypes.lua +43 -0
- package/runtime/Iris/Types.lua +660 -0
- package/runtime/Iris/WidgetTypes.lua +521 -0
- package/runtime/Iris/_impl/API.lua +2085 -0
- package/runtime/Iris/_impl/Internal.lua +895 -0
- package/runtime/Iris/_impl/LICENSE.txt +21 -0
- package/runtime/Iris/_impl/PubTypes.lua +43 -0
- package/runtime/Iris/_impl/Types.lua +660 -0
- package/runtime/Iris/_impl/WidgetTypes.lua +521 -0
- package/runtime/Iris/_impl/config.lua +305 -0
- package/runtime/Iris/_impl/init.lua +696 -0
- package/runtime/Iris/_impl/widgets/Button.lua +90 -0
- package/runtime/Iris/_impl/widgets/Checkbox.lua +115 -0
- package/runtime/Iris/_impl/widgets/Combo.lua +492 -0
- package/runtime/Iris/_impl/widgets/Format.lua +140 -0
- package/runtime/Iris/_impl/widgets/Image.lua +155 -0
- package/runtime/Iris/_impl/widgets/Input.lua +1232 -0
- package/runtime/Iris/_impl/widgets/Menu.lua +599 -0
- package/runtime/Iris/_impl/widgets/Plot.lua +639 -0
- package/runtime/Iris/_impl/widgets/RadioButton.lua +126 -0
- package/runtime/Iris/_impl/widgets/Root.lua +143 -0
- package/runtime/Iris/_impl/widgets/Tab.lua +333 -0
- package/runtime/Iris/_impl/widgets/Table.lua +635 -0
- package/runtime/Iris/_impl/widgets/Text.lua +132 -0
- package/runtime/Iris/_impl/widgets/Tree.lua +287 -0
- package/runtime/Iris/_impl/widgets/Window.lua +1075 -0
- package/runtime/Iris/_impl/widgets/init.lua +447 -0
- package/runtime/Iris/config.lua +305 -0
- package/runtime/Iris/init.lua +696 -0
- package/runtime/Iris/init.luau +12 -0
- package/runtime/Iris/widgets/Button.lua +90 -0
- package/runtime/Iris/widgets/Checkbox.lua +115 -0
- package/runtime/Iris/widgets/Combo.lua +492 -0
- package/runtime/Iris/widgets/Format.lua +140 -0
- package/runtime/Iris/widgets/Image.lua +155 -0
- package/runtime/Iris/widgets/Input.lua +1232 -0
- package/runtime/Iris/widgets/Menu.lua +599 -0
- package/runtime/Iris/widgets/Plot.lua +639 -0
- package/runtime/Iris/widgets/RadioButton.lua +126 -0
- package/runtime/Iris/widgets/Root.lua +143 -0
- package/runtime/Iris/widgets/Tab.lua +333 -0
- package/runtime/Iris/widgets/Table.lua +635 -0
- package/runtime/Iris/widgets/Text.lua +132 -0
- package/runtime/Iris/widgets/Tree.lua +287 -0
- package/runtime/Iris/widgets/Window.lua +1075 -0
- package/runtime/Iris/widgets/init.lua +447 -0
- package/runtime/Janitor/FastDefer.luau +33 -0
- package/runtime/Janitor/LICENSE +21 -0
- package/runtime/Janitor/_impl/FastDefer.luau +33 -0
- package/runtime/Janitor/_impl/LICENSE +21 -0
- package/runtime/Janitor/_impl/init.luau +999 -0
- package/runtime/Janitor/init.luau +45 -0
- package/runtime/MathUtils/init.luau +100 -0
- package/runtime/Module3D/LICENSE +21 -0
- package/runtime/Module3D/_impl/LICENSE +21 -0
- package/runtime/Module3D/_impl/init.luau +269 -0
- package/runtime/Module3D/init.luau +14 -0
- package/runtime/Net/init.luau +125 -0
- package/runtime/Net/src/codec.luau +153 -0
- package/runtime/Occlude/init.luau +54 -0
- package/runtime/Promise/LICENSE +21 -0
- package/runtime/Promise/_impl/LICENSE +21 -0
- package/runtime/Promise/_impl/init.lua +1991 -0
- package/runtime/Promise/init.lua +1990 -0
- package/runtime/Promise/init.luau +13 -0
- package/runtime/Promise/types.luau +46 -0
- package/runtime/SOURCES.md +22 -0
- package/runtime/Spring/LICENSE +201 -0
- package/runtime/Spring/_impl/LICENSE +201 -0
- package/runtime/Spring/_impl/init.luau +111 -0
- package/runtime/Spring/init.luau +24 -0
- package/runtime/StateMachine/Classes/State.lua +375 -0
- package/runtime/StateMachine/Classes/Transition.lua +336 -0
- package/runtime/StateMachine/Functions/deepCopy.lua +19 -0
- package/runtime/StateMachine/Functions/mergeTables.lua +22 -0
- package/runtime/StateMachine/LICENSE +19 -0
- package/runtime/StateMachine/Vendor/Signal.lua +386 -0
- package/runtime/StateMachine/Vendor/Trove.lua +188 -0
- package/runtime/StateMachine/_impl/Classes/State.lua +375 -0
- package/runtime/StateMachine/_impl/Classes/Transition.lua +336 -0
- package/runtime/StateMachine/_impl/Functions/deepCopy.lua +19 -0
- package/runtime/StateMachine/_impl/Functions/mergeTables.lua +22 -0
- package/runtime/StateMachine/_impl/LICENSE +19 -0
- package/runtime/StateMachine/_impl/Vendor/Signal.lua +386 -0
- package/runtime/StateMachine/_impl/Vendor/Trove.lua +188 -0
- package/runtime/StateMachine/_impl/init.lua +595 -0
- package/runtime/StateMachine/init.lua +595 -0
- package/runtime/StateMachine/init.luau +10 -0
- package/runtime/StickyBillboard/init.luau +167 -0
- package/runtime/TopbarPlus/Attribute.lua +35 -0
- package/runtime/TopbarPlus/Elements/Caption.lua +316 -0
- package/runtime/TopbarPlus/Elements/Container.lua +215 -0
- package/runtime/TopbarPlus/Elements/Dropdown.lua +315 -0
- package/runtime/TopbarPlus/Elements/Indicator.lua +91 -0
- package/runtime/TopbarPlus/Elements/Menu.lua +180 -0
- package/runtime/TopbarPlus/Elements/Notice.lua +113 -0
- package/runtime/TopbarPlus/Elements/Selection.lua +49 -0
- package/runtime/TopbarPlus/Elements/Widget.lua +437 -0
- package/runtime/TopbarPlus/Features/Gamepad.lua +201 -0
- package/runtime/TopbarPlus/Features/Overflow.lua +360 -0
- package/runtime/TopbarPlus/Features/Themes/Classic.lua +27 -0
- package/runtime/TopbarPlus/Features/Themes/Default.lua +75 -0
- package/runtime/TopbarPlus/Features/Themes/init.lua +353 -0
- package/runtime/TopbarPlus/LICENSE +381 -0
- package/runtime/TopbarPlus/Packages/GoodSignal.lua +182 -0
- package/runtime/TopbarPlus/Packages/Janitor.lua +322 -0
- package/runtime/TopbarPlus/Reference.lua +30 -0
- package/runtime/TopbarPlus/Types.lua +477 -0
- package/runtime/TopbarPlus/Utility.lua +462 -0
- package/runtime/TopbarPlus/VERSION.lua +51 -0
- package/runtime/TopbarPlus/_impl/Attribute.lua +35 -0
- package/runtime/TopbarPlus/_impl/Elements/Caption.lua +316 -0
- package/runtime/TopbarPlus/_impl/Elements/Container.lua +215 -0
- package/runtime/TopbarPlus/_impl/Elements/Dropdown.lua +315 -0
- package/runtime/TopbarPlus/_impl/Elements/Indicator.lua +91 -0
- package/runtime/TopbarPlus/_impl/Elements/Menu.lua +180 -0
- package/runtime/TopbarPlus/_impl/Elements/Notice.lua +113 -0
- package/runtime/TopbarPlus/_impl/Elements/Selection.lua +49 -0
- package/runtime/TopbarPlus/_impl/Elements/Widget.lua +437 -0
- package/runtime/TopbarPlus/_impl/Features/Gamepad.lua +201 -0
- package/runtime/TopbarPlus/_impl/Features/Overflow.lua +360 -0
- package/runtime/TopbarPlus/_impl/Features/Themes/Classic.lua +27 -0
- package/runtime/TopbarPlus/_impl/Features/Themes/Default.lua +75 -0
- package/runtime/TopbarPlus/_impl/Features/Themes/init.lua +353 -0
- package/runtime/TopbarPlus/_impl/LICENSE +381 -0
- package/runtime/TopbarPlus/_impl/Packages/GoodSignal.lua +182 -0
- package/runtime/TopbarPlus/_impl/Packages/Janitor.lua +322 -0
- package/runtime/TopbarPlus/_impl/Reference.lua +30 -0
- package/runtime/TopbarPlus/_impl/Types.lua +477 -0
- package/runtime/TopbarPlus/_impl/Utility.lua +462 -0
- package/runtime/TopbarPlus/_impl/VERSION.lua +51 -0
- package/runtime/TopbarPlus/_impl/init.lua +1249 -0
- package/runtime/TopbarPlus/init.lua +1249 -0
- package/runtime/TopbarPlus/init.luau +8 -0
- package/runtime/Twinkle/init.luau +157 -0
- package/runtime/VfxUtil/init.luau +164 -0
- package/src/api.generated.js +3675 -0
- package/src/api.js +57 -0
- package/src/architecture.js +393 -0
- package/src/cli.js +192 -0
- package/src/compile.js +40 -0
- package/src/emit.js +213 -0
- package/src/lex.js +149 -0
- package/src/libs.js +355 -0
- package/src/parse.js +421 -0
- package/src/preprocess.js +80 -0
- package/src/understand.js +453 -0
- package/templates/game/.clangd +5 -0
- package/templates/game/.vscode/c_cpp_properties.json +23 -0
- package/templates/game/.vscode/settings.json +12 -0
- package/templates/game/Packages/.gitkeep +0 -0
- package/templates/game/cluaupp.config.json +6 -0
- package/templates/game/compile_flags.txt +3 -0
- package/templates/game/default.project.json +39 -0
- package/templates/game/package.json +9 -0
- package/templates/game/src/client/init.client.cpp +5 -0
- package/templates/game/src/server/leaderstats.server.cpp +28 -0
- package/templates/game/src/shared/config.cpp +5 -0
- package/templates/game/src/shared/config.h +3 -0
- package/templates/game/wally.toml +11 -0
|
@@ -0,0 +1,696 @@
|
|
|
1
|
+
--!optimize 2
|
|
2
|
+
local Types = require(script.Types)
|
|
3
|
+
|
|
4
|
+
--[=[
|
|
5
|
+
@class Iris
|
|
6
|
+
|
|
7
|
+
Iris; contains the all user-facing functions and properties.
|
|
8
|
+
A set of internal functions can be found in `Iris.Internal` (only use if you understand).
|
|
9
|
+
|
|
10
|
+
In its simplest form, users may start Iris by using
|
|
11
|
+
```lua
|
|
12
|
+
Iris.Init()
|
|
13
|
+
|
|
14
|
+
Iris:Connect(function()
|
|
15
|
+
Iris.Window({"My First Window!"})
|
|
16
|
+
Iris.Text({"Hello, World"})
|
|
17
|
+
Iris.Button({"Save"})
|
|
18
|
+
Iris.InputNum({"Input"})
|
|
19
|
+
Iris.End()
|
|
20
|
+
end)
|
|
21
|
+
```
|
|
22
|
+
]=]
|
|
23
|
+
local Iris = {} :: Types.Iris
|
|
24
|
+
|
|
25
|
+
local Internal: Types.Internal = require(script.Internal)(Iris)
|
|
26
|
+
|
|
27
|
+
--[=[
|
|
28
|
+
@within Iris
|
|
29
|
+
@prop Disabled boolean
|
|
30
|
+
|
|
31
|
+
While Iris.Disabled is true, execution of Iris and connected functions will be paused.
|
|
32
|
+
The widgets are not destroyed, they are just frozen so no changes will happen to them.
|
|
33
|
+
]=]
|
|
34
|
+
Iris.Disabled = false
|
|
35
|
+
|
|
36
|
+
--[=[
|
|
37
|
+
@within Iris
|
|
38
|
+
@prop Args { [string]: { [string]: any } }
|
|
39
|
+
|
|
40
|
+
Provides a list of every possible Argument for each type of widget to it's index.
|
|
41
|
+
For instance, `Iris.Args.Window.NoResize`.
|
|
42
|
+
The Args table is useful for using widget Arguments without remembering their order.
|
|
43
|
+
```lua
|
|
44
|
+
Iris.Window({"My Window", [Iris.Args.Window.NoResize] = true})
|
|
45
|
+
```
|
|
46
|
+
]=]
|
|
47
|
+
Iris.Args = {}
|
|
48
|
+
|
|
49
|
+
--[=[
|
|
50
|
+
@ignore
|
|
51
|
+
@within Iris
|
|
52
|
+
@prop Events table
|
|
53
|
+
|
|
54
|
+
-todo: work out what this is used for.
|
|
55
|
+
]=]
|
|
56
|
+
Iris.Events = {}
|
|
57
|
+
|
|
58
|
+
--[=[
|
|
59
|
+
@within Iris
|
|
60
|
+
@function Init
|
|
61
|
+
@param parentInstance Instance? -- where Iris will place widgets UIs under, defaulting to [PlayerGui]
|
|
62
|
+
@param eventConnection (RBXScriptSignal | () -> () | false)? -- the event to determine an Iris cycle, defaulting to [Heartbeat]
|
|
63
|
+
@param allowMultipleInits boolean? -- allows subsequent calls 'Iris.Init()' to do nothing rather than error about initialising again, defaulting to false
|
|
64
|
+
@return Iris
|
|
65
|
+
|
|
66
|
+
Initializes Iris and begins rendering. Can only be called once.
|
|
67
|
+
See [Iris.Shutdown] to stop Iris, or [Iris.Disabled] to temporarily disable Iris.
|
|
68
|
+
|
|
69
|
+
Once initialized, [Iris:Connect] can be used to create a widget.
|
|
70
|
+
|
|
71
|
+
If the `eventConnection` is `false` then Iris will not create a cycle loop and the user will need to call [Internal._cycle] every frame.
|
|
72
|
+
]=]
|
|
73
|
+
function Iris.Init(parentInstance: BasePlayerGui | GuiBase2d?, eventConnection: (RBXScriptSignal | (() -> number) | false)?, allowMultipleInits: boolean?): Types.Iris
|
|
74
|
+
assert(Internal._shutdown == false, "Iris.Init() cannot be called once shutdown.")
|
|
75
|
+
assert(Internal._started == false or allowMultipleInits == true, "Iris.Init() can only be called once.")
|
|
76
|
+
|
|
77
|
+
if Internal._started then
|
|
78
|
+
return Iris
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
if parentInstance == nil then
|
|
82
|
+
-- coalesce to playerGui
|
|
83
|
+
parentInstance = game:GetService("Players").LocalPlayer:WaitForChild("PlayerGui")
|
|
84
|
+
end
|
|
85
|
+
if eventConnection == nil then
|
|
86
|
+
-- coalesce to Heartbeat
|
|
87
|
+
eventConnection = game:GetService("RunService").Heartbeat
|
|
88
|
+
end
|
|
89
|
+
Internal.parentInstance = parentInstance :: BasePlayerGui | GuiBase2d
|
|
90
|
+
Internal._started = true
|
|
91
|
+
|
|
92
|
+
Internal._generateRootInstance()
|
|
93
|
+
Internal._generateSelectionImageObject()
|
|
94
|
+
|
|
95
|
+
for _, callback in Internal._initFunctions do
|
|
96
|
+
callback()
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
-- spawns the connection to call `Internal._cycle()` within.
|
|
100
|
+
task.spawn(function()
|
|
101
|
+
if typeof(eventConnection) == "function" then
|
|
102
|
+
while Internal._started do
|
|
103
|
+
local deltaTime = eventConnection()
|
|
104
|
+
Internal._cycle(deltaTime)
|
|
105
|
+
end
|
|
106
|
+
elseif eventConnection ~= nil and eventConnection ~= false then
|
|
107
|
+
Internal._eventConnection = eventConnection:Connect(function(...)
|
|
108
|
+
Internal._cycle(...)
|
|
109
|
+
end)
|
|
110
|
+
end
|
|
111
|
+
end)
|
|
112
|
+
|
|
113
|
+
return Iris
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
--[=[
|
|
117
|
+
@within Iris
|
|
118
|
+
@function Shutdown
|
|
119
|
+
|
|
120
|
+
Shuts Iris down. This can only be called once, and Iris cannot be started once shut down.
|
|
121
|
+
]=]
|
|
122
|
+
function Iris.Shutdown()
|
|
123
|
+
Internal._started = false
|
|
124
|
+
Internal._shutdown = true
|
|
125
|
+
|
|
126
|
+
if Internal._eventConnection then
|
|
127
|
+
Internal._eventConnection:Disconnect()
|
|
128
|
+
end
|
|
129
|
+
Internal._eventConnection = nil
|
|
130
|
+
|
|
131
|
+
if Internal._rootWidget then
|
|
132
|
+
if Internal._rootWidget.Instance then
|
|
133
|
+
Internal._widgets["Root"].Discard(Internal._rootWidget)
|
|
134
|
+
end
|
|
135
|
+
Internal._rootInstance = nil
|
|
136
|
+
end
|
|
137
|
+
|
|
138
|
+
if Internal.SelectionImageObject then
|
|
139
|
+
Internal.SelectionImageObject:Destroy()
|
|
140
|
+
end
|
|
141
|
+
|
|
142
|
+
for _, connection in Internal._connections do
|
|
143
|
+
connection:Disconnect()
|
|
144
|
+
end
|
|
145
|
+
end
|
|
146
|
+
|
|
147
|
+
--[=[
|
|
148
|
+
@within Iris
|
|
149
|
+
@method Connect
|
|
150
|
+
@param callback () -> () -- the callback containg the Iris code
|
|
151
|
+
@return () -> () -- call to disconnect it
|
|
152
|
+
|
|
153
|
+
Connects a function which will execute every Iris cycle. [Iris.Init] must be called before connecting.
|
|
154
|
+
|
|
155
|
+
A cycle is determined by the `eventConnection` passed to [Iris.Init] (default to [RunService.Heartbeat]).
|
|
156
|
+
|
|
157
|
+
Multiple callbacks can be added to Iris from many different scripts or modules.
|
|
158
|
+
]=]
|
|
159
|
+
function Iris:Connect(callback: () -> ()): () -> () -- this uses method syntax for no reason.
|
|
160
|
+
if Internal._started == false then
|
|
161
|
+
warn("Iris:Connect() was called before calling Iris.Init(); always initialise Iris first.")
|
|
162
|
+
end
|
|
163
|
+
local connectionIndex = #Internal._connectedFunctions + 1
|
|
164
|
+
Internal._connectedFunctions[connectionIndex] = callback
|
|
165
|
+
return function()
|
|
166
|
+
Internal._connectedFunctions[connectionIndex] = nil
|
|
167
|
+
end
|
|
168
|
+
end
|
|
169
|
+
|
|
170
|
+
--[=[
|
|
171
|
+
@within Iris
|
|
172
|
+
@function Append
|
|
173
|
+
@param userInstance GuiObject -- the Roblox [Instance] to insert into Iris
|
|
174
|
+
|
|
175
|
+
Inserts any Roblox [Instance] into Iris.
|
|
176
|
+
|
|
177
|
+
The parent of the inserted instance can either be determined by the `_config.Parent`
|
|
178
|
+
property or by the current parent widget from the stack.
|
|
179
|
+
]=]
|
|
180
|
+
function Iris.Append(userInstance: GuiObject)
|
|
181
|
+
local parentWidget = Internal._GetParentWidget()
|
|
182
|
+
local widgetInstanceParent: GuiObject
|
|
183
|
+
if Internal._config.Parent then
|
|
184
|
+
widgetInstanceParent = Internal._config.Parent :: any
|
|
185
|
+
else
|
|
186
|
+
widgetInstanceParent = Internal._widgets[parentWidget.type].ChildAdded(parentWidget, { type = "userInstance" } :: Types.Widget)
|
|
187
|
+
end
|
|
188
|
+
userInstance.Parent = widgetInstanceParent
|
|
189
|
+
end
|
|
190
|
+
|
|
191
|
+
--[=[
|
|
192
|
+
@within Iris
|
|
193
|
+
@function End
|
|
194
|
+
|
|
195
|
+
Marks the end of any widgets which contain children. For example:
|
|
196
|
+
```lua
|
|
197
|
+
-- Widgets placed here **will not** be inside the tree
|
|
198
|
+
Iris.Text({"Above and outside the tree"})
|
|
199
|
+
|
|
200
|
+
-- A Tree widget can contain children.
|
|
201
|
+
-- We must therefore remember to call `Iris.End()`
|
|
202
|
+
Iris.Tree({"My First Tree"})
|
|
203
|
+
-- Widgets placed here **will** be inside the tree
|
|
204
|
+
Iris.Text({"Tree item 1"})
|
|
205
|
+
Iris.Text({"Tree item 2"})
|
|
206
|
+
Iris.End()
|
|
207
|
+
|
|
208
|
+
-- Widgets placed here **will not** be inside the tree
|
|
209
|
+
Iris.Text({"Below and outside the tree"})
|
|
210
|
+
```
|
|
211
|
+
:::caution Caution: Error
|
|
212
|
+
Seeing the error `Callback has too few calls to Iris.End()` or `Callback has too many calls to Iris.End()`?
|
|
213
|
+
Using the wrong amount of `Iris.End()` calls in your code will lead to an error.
|
|
214
|
+
|
|
215
|
+
Each widget called which might have children should be paired with a call to `Iris.End()`, **even if the Widget doesnt currently have any children**.
|
|
216
|
+
:::
|
|
217
|
+
]=]
|
|
218
|
+
function Iris.End()
|
|
219
|
+
if Internal._stackIndex == 1 then
|
|
220
|
+
error("Too many calls to Iris.End().", 2)
|
|
221
|
+
end
|
|
222
|
+
|
|
223
|
+
Internal._IDStack[Internal._stackIndex] = nil
|
|
224
|
+
Internal._stackIndex -= 1
|
|
225
|
+
end
|
|
226
|
+
|
|
227
|
+
--[[
|
|
228
|
+
------------------------
|
|
229
|
+
[SECTION] Config
|
|
230
|
+
------------------------
|
|
231
|
+
]]
|
|
232
|
+
|
|
233
|
+
--[=[
|
|
234
|
+
@within Iris
|
|
235
|
+
@function ForceRefresh
|
|
236
|
+
|
|
237
|
+
Destroys and regenerates all instances used by Iris. Useful if you want to propogate state changes.
|
|
238
|
+
:::caution Caution: Performance
|
|
239
|
+
Because this function Deletes and Initializes many instances, it may cause **performance issues** when used with many widgets.
|
|
240
|
+
In **no** case should it be called every frame.
|
|
241
|
+
:::
|
|
242
|
+
]=]
|
|
243
|
+
function Iris.ForceRefresh()
|
|
244
|
+
Internal._globalRefreshRequested = true
|
|
245
|
+
end
|
|
246
|
+
|
|
247
|
+
--[=[
|
|
248
|
+
@within Iris
|
|
249
|
+
@function UpdateGlobalConfig
|
|
250
|
+
@param deltaStyle { [string]: any } -- a table containing the changes in style ex: `{ItemWidth = UDim.new(0, 100)}`
|
|
251
|
+
|
|
252
|
+
Customizes the configuration which **every** widget will inherit from.
|
|
253
|
+
|
|
254
|
+
It can be used along with [Iris.TemplateConfig] to easily swap styles, for example:
|
|
255
|
+
```lua
|
|
256
|
+
Iris.UpdateGlobalConfig(Iris.TemplateConfig.colorLight) -- use light theme
|
|
257
|
+
```
|
|
258
|
+
:::caution Caution: Performance
|
|
259
|
+
This function internally calls [Iris.ForceRefresh] so that style changes are propogated.
|
|
260
|
+
|
|
261
|
+
As such, it may cause **performance issues** when used with many widgets.
|
|
262
|
+
In **no** case should it be called every frame.
|
|
263
|
+
:::
|
|
264
|
+
]=]
|
|
265
|
+
function Iris.UpdateGlobalConfig(deltaStyle: { [string]: any })
|
|
266
|
+
for index, style in deltaStyle do
|
|
267
|
+
Internal._rootConfig[index] = style
|
|
268
|
+
end
|
|
269
|
+
Iris.ForceRefresh()
|
|
270
|
+
end
|
|
271
|
+
|
|
272
|
+
--[=[
|
|
273
|
+
@within Iris
|
|
274
|
+
@function PushConfig
|
|
275
|
+
@param deltaStyle { [string]: any } -- a table containing the changes in style ex: `{ItemWidth = UDim.new(0, 100)}`
|
|
276
|
+
|
|
277
|
+
Allows cascading of a style by allowing styles to be locally and hierarchically applied.
|
|
278
|
+
|
|
279
|
+
Each call to Iris.PushConfig must be paired with a call to [Iris.PopConfig], for example:
|
|
280
|
+
```lua
|
|
281
|
+
Iris.Text({"boring text"})
|
|
282
|
+
|
|
283
|
+
Iris.PushConfig({TextColor = Color3.fromRGB(128, 0, 256)})
|
|
284
|
+
Iris.Text({"Colored Text!"})
|
|
285
|
+
Iris.PopConfig()
|
|
286
|
+
|
|
287
|
+
Iris.Text({"boring text"})
|
|
288
|
+
```
|
|
289
|
+
]=]
|
|
290
|
+
function Iris.PushConfig(deltaStyle: { [string]: any })
|
|
291
|
+
local ID = Iris.State(-1)
|
|
292
|
+
if ID.value == -1 then
|
|
293
|
+
ID:set(deltaStyle)
|
|
294
|
+
else
|
|
295
|
+
-- compare tables
|
|
296
|
+
if Internal._deepCompare(ID:get(), deltaStyle) == false then
|
|
297
|
+
-- refresh local
|
|
298
|
+
ID:set(deltaStyle)
|
|
299
|
+
Internal._refreshStack[Internal._refreshLevel] = true
|
|
300
|
+
Internal._refreshCounter += 1
|
|
301
|
+
end
|
|
302
|
+
end
|
|
303
|
+
Internal._refreshLevel += 1
|
|
304
|
+
|
|
305
|
+
Internal._config = setmetatable(deltaStyle, {
|
|
306
|
+
__index = Internal._config,
|
|
307
|
+
}) :: any
|
|
308
|
+
end
|
|
309
|
+
|
|
310
|
+
--[=[
|
|
311
|
+
@within Iris
|
|
312
|
+
@function PopConfig
|
|
313
|
+
|
|
314
|
+
Ends a [Iris.PushConfig] style.
|
|
315
|
+
|
|
316
|
+
Each call to [Iris.PopConfig] should match a call to [Iris.PushConfig].
|
|
317
|
+
]=]
|
|
318
|
+
function Iris.PopConfig()
|
|
319
|
+
Internal._refreshLevel -= 1
|
|
320
|
+
if Internal._refreshStack[Internal._refreshLevel] == true then
|
|
321
|
+
Internal._refreshCounter -= 1
|
|
322
|
+
Internal._refreshStack[Internal._refreshLevel] = nil
|
|
323
|
+
end
|
|
324
|
+
|
|
325
|
+
Internal._config = getmetatable(Internal._config :: any).__index
|
|
326
|
+
end
|
|
327
|
+
|
|
328
|
+
--[=[
|
|
329
|
+
|
|
330
|
+
@within Iris
|
|
331
|
+
@prop TemplateConfig { [string]: { [string]: any } }
|
|
332
|
+
|
|
333
|
+
TemplateConfig provides a table of default styles and configurations which you may apply to your UI.
|
|
334
|
+
]=]
|
|
335
|
+
Iris.TemplateConfig = require(script.config)
|
|
336
|
+
Iris.UpdateGlobalConfig(Iris.TemplateConfig.colorDark) -- use colorDark and sizeDefault themes by default
|
|
337
|
+
Iris.UpdateGlobalConfig(Iris.TemplateConfig.sizeDefault)
|
|
338
|
+
Iris.UpdateGlobalConfig(Iris.TemplateConfig.utilityDefault)
|
|
339
|
+
Internal._globalRefreshRequested = false -- UpdatingGlobalConfig changes this to true, leads to Root being generated twice.
|
|
340
|
+
|
|
341
|
+
--[[
|
|
342
|
+
--------------------
|
|
343
|
+
[SECTION] ID
|
|
344
|
+
--------------------
|
|
345
|
+
]]
|
|
346
|
+
|
|
347
|
+
--[=[
|
|
348
|
+
@within Iris
|
|
349
|
+
@function PushId
|
|
350
|
+
@param id ID -- custom id
|
|
351
|
+
|
|
352
|
+
Pushes an id onto the id stack for all future widgets. Use [Iris.PopId] to pop it off the stack.
|
|
353
|
+
]=]
|
|
354
|
+
function Iris.PushId(ID: Types.ID)
|
|
355
|
+
assert(typeof(ID) == "string", "The ID argument to Iris.PushId() to be a string.")
|
|
356
|
+
|
|
357
|
+
Internal._newID = true
|
|
358
|
+
table.insert(Internal._pushedIds, ID)
|
|
359
|
+
end
|
|
360
|
+
|
|
361
|
+
--[=[
|
|
362
|
+
@within Iris
|
|
363
|
+
@function PopID
|
|
364
|
+
|
|
365
|
+
Removes the most recent pushed id from the id stack.
|
|
366
|
+
]=]
|
|
367
|
+
function Iris.PopId()
|
|
368
|
+
if #Internal._pushedIds == 0 then
|
|
369
|
+
return
|
|
370
|
+
end
|
|
371
|
+
|
|
372
|
+
table.remove(Internal._pushedIds)
|
|
373
|
+
end
|
|
374
|
+
|
|
375
|
+
--[=[
|
|
376
|
+
@within Iris
|
|
377
|
+
@function SetNextWidgetID
|
|
378
|
+
@param id ID -- custom id.
|
|
379
|
+
|
|
380
|
+
Sets the id for the next widget. Useful for using [Iris.Append] on the same widget.
|
|
381
|
+
```lua
|
|
382
|
+
Iris.SetNextWidgetId("demo_window")
|
|
383
|
+
Iris.Window({ "Window" })
|
|
384
|
+
Iris.Text({ "Text one placed here." })
|
|
385
|
+
Iris.End()
|
|
386
|
+
|
|
387
|
+
-- later in the code
|
|
388
|
+
|
|
389
|
+
Iris.SetNextWidgetId("demo_window")
|
|
390
|
+
Iris.Window()
|
|
391
|
+
Iris.Text({ "Text two placed here." })
|
|
392
|
+
Iris.End()
|
|
393
|
+
|
|
394
|
+
-- both text widgets will be placed under the same window despite being called separately.
|
|
395
|
+
```
|
|
396
|
+
]=]
|
|
397
|
+
function Iris.SetNextWidgetID(ID: Types.ID)
|
|
398
|
+
Internal._nextWidgetId = ID
|
|
399
|
+
end
|
|
400
|
+
|
|
401
|
+
--[[
|
|
402
|
+
-----------------------
|
|
403
|
+
[SECTION] State
|
|
404
|
+
-----------------------
|
|
405
|
+
]]
|
|
406
|
+
|
|
407
|
+
--[=[
|
|
408
|
+
@within Iris
|
|
409
|
+
@function State<T>
|
|
410
|
+
@param initialValue T -- the initial value for the state
|
|
411
|
+
@return State<T>
|
|
412
|
+
@tag State
|
|
413
|
+
|
|
414
|
+
Constructs a new [State] object. Subsequent ID calls will return the same object.
|
|
415
|
+
:::info
|
|
416
|
+
Iris.State allows you to create "references" to the same value while inside your UI drawing loop.
|
|
417
|
+
For example:
|
|
418
|
+
```lua
|
|
419
|
+
Iris:Connect(function()
|
|
420
|
+
local myNumber = 5
|
|
421
|
+
myNumber = myNumber + 1
|
|
422
|
+
Iris.Text({"The number is: " .. myNumber})
|
|
423
|
+
end)
|
|
424
|
+
```
|
|
425
|
+
This is problematic. Each time the function is called, a new myNumber is initialized, instead of retrieving the old one.
|
|
426
|
+
The above code will always display 6.
|
|
427
|
+
***
|
|
428
|
+
Iris.State solves this problem:
|
|
429
|
+
```lua
|
|
430
|
+
Iris:Connect(function()
|
|
431
|
+
local myNumber = Iris.State(5)
|
|
432
|
+
myNumber:set(myNumber:get() + 1)
|
|
433
|
+
Iris.Text({"The number is: " .. myNumber})
|
|
434
|
+
end)
|
|
435
|
+
```
|
|
436
|
+
In this example, the code will work properly, and increment every frame.
|
|
437
|
+
:::
|
|
438
|
+
]=]
|
|
439
|
+
function Iris.State<T>(initialValue: T)
|
|
440
|
+
local ID = Internal._getID(2)
|
|
441
|
+
if Internal._states[ID] then
|
|
442
|
+
return Internal._states[ID]
|
|
443
|
+
end
|
|
444
|
+
local newState = {
|
|
445
|
+
ID = ID,
|
|
446
|
+
value = initialValue,
|
|
447
|
+
lastChangeTick = Iris.Internal._cycleTick,
|
|
448
|
+
ConnectedWidgets = {},
|
|
449
|
+
ConnectedFunctions = {},
|
|
450
|
+
} :: Types.State<T>
|
|
451
|
+
setmetatable(newState, Internal.StateClass)
|
|
452
|
+
Internal._states[ID] = newState
|
|
453
|
+
return newState
|
|
454
|
+
end
|
|
455
|
+
|
|
456
|
+
--[=[
|
|
457
|
+
@within Iris
|
|
458
|
+
@function WeakState<T>
|
|
459
|
+
@param initialValue T -- the initial value for the state
|
|
460
|
+
@return State<T>
|
|
461
|
+
@tag State
|
|
462
|
+
|
|
463
|
+
Constructs a new state object, subsequent ID calls will return the same object, except all widgets connected to the state are discarded, the state reverts to the passed initialValue
|
|
464
|
+
]=]
|
|
465
|
+
function Iris.WeakState<T>(initialValue: T)
|
|
466
|
+
local ID = Internal._getID(2)
|
|
467
|
+
if Internal._states[ID] then
|
|
468
|
+
if next(Internal._states[ID].ConnectedWidgets) == nil then
|
|
469
|
+
Internal._states[ID] = nil
|
|
470
|
+
else
|
|
471
|
+
return Internal._states[ID]
|
|
472
|
+
end
|
|
473
|
+
end
|
|
474
|
+
local newState = {
|
|
475
|
+
ID = ID,
|
|
476
|
+
value = initialValue,
|
|
477
|
+
lastChangeTick = Iris.Internal._cycleTick,
|
|
478
|
+
ConnectedWidgets = {},
|
|
479
|
+
ConnectedFunctions = {},
|
|
480
|
+
} :: Types.State<T>
|
|
481
|
+
setmetatable(newState, Internal.StateClass)
|
|
482
|
+
Internal._states[ID] = newState
|
|
483
|
+
return newState
|
|
484
|
+
end
|
|
485
|
+
|
|
486
|
+
--[=[
|
|
487
|
+
@within Iris
|
|
488
|
+
@function VariableState<T>
|
|
489
|
+
@param variable T -- the variable to track
|
|
490
|
+
@param callback (T) -> () -- a function which sets the new variable locally
|
|
491
|
+
@return State<T>
|
|
492
|
+
@tag State
|
|
493
|
+
|
|
494
|
+
Returns a state object linked to a local variable.
|
|
495
|
+
|
|
496
|
+
The passed variable is used to check whether the state object should update. The callback method is used to change the local variable when the state changes.
|
|
497
|
+
|
|
498
|
+
The existence of such a function is to make working with local variables easier.
|
|
499
|
+
Since Iris cannot directly manipulate the memory of the variable, like in C++, it must instead rely on the user updating it through the callback provided.
|
|
500
|
+
Additionally, because the state value is not updated when created or called we cannot return the new value back, instead we require a callback for the user to update.
|
|
501
|
+
|
|
502
|
+
```lua
|
|
503
|
+
local myNumber = 5
|
|
504
|
+
|
|
505
|
+
local state = Iris.VariableState(myNumber, function(value)
|
|
506
|
+
myNumber = value
|
|
507
|
+
end)
|
|
508
|
+
Iris.DragNum({ "My number" }, { number = state })
|
|
509
|
+
```
|
|
510
|
+
|
|
511
|
+
This is how Dear ImGui does the same in C++ where we can just provide the memory location to the variable which is then updated directly.
|
|
512
|
+
```cpp
|
|
513
|
+
static int myNumber = 5;
|
|
514
|
+
ImGui::DragInt("My number", &myNumber); // Here in C++, we can directly pass the variable.
|
|
515
|
+
```
|
|
516
|
+
|
|
517
|
+
:::caution Caution: Update Order
|
|
518
|
+
If the variable and state value are different when calling this, the variable value takes precedence.
|
|
519
|
+
|
|
520
|
+
Therefore, if you update the state using `state.value = ...` then it will be overwritten by the variable value.
|
|
521
|
+
You must use `state:set(...)` if you want the variable to update to the state's value.
|
|
522
|
+
:::
|
|
523
|
+
]=]
|
|
524
|
+
function Iris.VariableState<T>(variable: T, callback: (T) -> ())
|
|
525
|
+
local ID = Internal._getID(2)
|
|
526
|
+
local state = Internal._states[ID]
|
|
527
|
+
|
|
528
|
+
if state then
|
|
529
|
+
if variable ~= state.value then
|
|
530
|
+
state:set(variable)
|
|
531
|
+
end
|
|
532
|
+
return state
|
|
533
|
+
end
|
|
534
|
+
|
|
535
|
+
local newState = {
|
|
536
|
+
ID = ID,
|
|
537
|
+
value = variable,
|
|
538
|
+
lastChangeTick = Iris.Internal._cycleTick,
|
|
539
|
+
ConnectedWidgets = {},
|
|
540
|
+
ConnectedFunctions = {},
|
|
541
|
+
} :: Types.State<T>
|
|
542
|
+
setmetatable(newState, Internal.StateClass)
|
|
543
|
+
Internal._states[ID] = newState
|
|
544
|
+
|
|
545
|
+
newState:onChange(callback)
|
|
546
|
+
|
|
547
|
+
return newState
|
|
548
|
+
end
|
|
549
|
+
|
|
550
|
+
--[=[
|
|
551
|
+
@within Iris
|
|
552
|
+
@function TableState<K, V>
|
|
553
|
+
@param table { [K]: V } -- the table containing the value
|
|
554
|
+
@param key K -- the key to the value in table
|
|
555
|
+
@param callback ((newValue: V) -> false?)? -- a function called when the state is changed
|
|
556
|
+
@return State<V>
|
|
557
|
+
@tag State
|
|
558
|
+
|
|
559
|
+
Similar to Iris.VariableState but takes a table and key to modify a specific value and a callback to determine whether to update the value.
|
|
560
|
+
|
|
561
|
+
The passed table and key are used to check the value. The callback is called when the state changes value and determines whether we update the table.
|
|
562
|
+
This is useful if we want to monitor a table value which needs to call other functions when changed.
|
|
563
|
+
|
|
564
|
+
Since tables are pass-by-reference, we can modify the table anywhere and it will update all other instances. Therefore, we don't need a callback by default.
|
|
565
|
+
```lua
|
|
566
|
+
local data = {
|
|
567
|
+
myNumber = 5
|
|
568
|
+
}
|
|
569
|
+
|
|
570
|
+
local state = Iris.TableState(data, "myNumber")
|
|
571
|
+
Iris.DragNum({ "My number" }, { number = state })
|
|
572
|
+
```
|
|
573
|
+
|
|
574
|
+
Here the `data._started` should never be updated directly, only through the `toggle` function. However, we still want to monitor the value and be able to change it.
|
|
575
|
+
Therefore, we use the callback to toggle the function for us and prevent Iris from updating the table value by returning false.
|
|
576
|
+
```lua
|
|
577
|
+
local data = {
|
|
578
|
+
_started = false
|
|
579
|
+
}
|
|
580
|
+
|
|
581
|
+
local function toggle(enabled: boolean)
|
|
582
|
+
data._started = enabled
|
|
583
|
+
if data._started then
|
|
584
|
+
start(...)
|
|
585
|
+
else
|
|
586
|
+
stop(...)
|
|
587
|
+
end
|
|
588
|
+
end
|
|
589
|
+
|
|
590
|
+
local state = Iris.TableState(data, "_started", function(stateValue: boolean)
|
|
591
|
+
toggle(stateValue)
|
|
592
|
+
return false
|
|
593
|
+
end)
|
|
594
|
+
Iris.Checkbox({ "Started" }, { isChecked = state })
|
|
595
|
+
```
|
|
596
|
+
|
|
597
|
+
:::caution Caution: Update Order
|
|
598
|
+
If the table value and state value are different when calling this, the table value value takes precedence.
|
|
599
|
+
|
|
600
|
+
Therefore, if you update the state using `state.value = ...` then it will be overwritten by the table value.
|
|
601
|
+
You must use `state:set(...)` if you want the table value to update to the state's value.
|
|
602
|
+
:::
|
|
603
|
+
]=]
|
|
604
|
+
function Iris.TableState<K, V>(tab: { [K]: V }, key: K, callback: ((newValue: V) -> true?)?)
|
|
605
|
+
local value = tab[key]
|
|
606
|
+
local ID = Internal._getID(2)
|
|
607
|
+
local state = Internal._states[ID]
|
|
608
|
+
|
|
609
|
+
-- If the table values changes, then we update the state to match.
|
|
610
|
+
if state then
|
|
611
|
+
if value ~= state.value then
|
|
612
|
+
state:set(value)
|
|
613
|
+
end
|
|
614
|
+
return state
|
|
615
|
+
end
|
|
616
|
+
|
|
617
|
+
local newState = {
|
|
618
|
+
ID = ID,
|
|
619
|
+
value = value,
|
|
620
|
+
lastChangeTick = Iris.Internal._cycleTick,
|
|
621
|
+
ConnectedWidgets = {},
|
|
622
|
+
ConnectedFunctions = {},
|
|
623
|
+
} :: Types.State<V>
|
|
624
|
+
setmetatable(newState, Internal.StateClass)
|
|
625
|
+
Internal._states[ID] = newState
|
|
626
|
+
|
|
627
|
+
-- When a change happens to the state, we update the table value.
|
|
628
|
+
newState:onChange(function()
|
|
629
|
+
if callback ~= nil then
|
|
630
|
+
if callback(newState.value) then
|
|
631
|
+
tab[key] = newState.value
|
|
632
|
+
end
|
|
633
|
+
else
|
|
634
|
+
tab[key] = newState.value
|
|
635
|
+
end
|
|
636
|
+
end)
|
|
637
|
+
return newState
|
|
638
|
+
end
|
|
639
|
+
|
|
640
|
+
--[=[
|
|
641
|
+
@within Iris
|
|
642
|
+
@function ComputedState<T, U>
|
|
643
|
+
@param firstState State<T> -- State to bind to.
|
|
644
|
+
@param onChangeCallback (firstValue: T) -> U -- callback which should return a value transformed from the firstState value
|
|
645
|
+
@return State<U>
|
|
646
|
+
|
|
647
|
+
Constructs a new State object, but binds its value to the value of another State.
|
|
648
|
+
:::info
|
|
649
|
+
A common use case for this constructor is when a boolean State needs to be inverted:
|
|
650
|
+
```lua
|
|
651
|
+
Iris.ComputedState(otherState, function(newValue)
|
|
652
|
+
return not newValue
|
|
653
|
+
end)
|
|
654
|
+
```
|
|
655
|
+
:::
|
|
656
|
+
]=]
|
|
657
|
+
function Iris.ComputedState<T, U>(firstState: Types.State<T>, onChangeCallback: (firstValue: T) -> U)
|
|
658
|
+
local ID = Internal._getID(2)
|
|
659
|
+
|
|
660
|
+
if Internal._states[ID] then
|
|
661
|
+
return Internal._states[ID]
|
|
662
|
+
else
|
|
663
|
+
local newState = {
|
|
664
|
+
ID = ID,
|
|
665
|
+
value = onChangeCallback(firstState.value),
|
|
666
|
+
lastChangeTick = Iris.Internal._cycleTick,
|
|
667
|
+
ConnectedWidgets = {},
|
|
668
|
+
ConnectedFunctions = {},
|
|
669
|
+
} :: Types.State<T>
|
|
670
|
+
setmetatable(newState, Internal.StateClass)
|
|
671
|
+
Internal._states[ID] = newState
|
|
672
|
+
|
|
673
|
+
firstState:onChange(function(newValue: T)
|
|
674
|
+
newState:set(onChangeCallback(newValue))
|
|
675
|
+
end)
|
|
676
|
+
return newState
|
|
677
|
+
end
|
|
678
|
+
end
|
|
679
|
+
|
|
680
|
+
--[=[
|
|
681
|
+
@within Iris
|
|
682
|
+
@function ShowDemoWindow
|
|
683
|
+
|
|
684
|
+
ShowDemoWindow is a function which creates a Demonstration window. this window contains many useful utilities for coders,
|
|
685
|
+
and serves as a refrence for using each part of the library. Ideally, the DemoWindow should always be available in your UI.
|
|
686
|
+
It is the same as any other callback you would connect to Iris using [Iris.Connect]
|
|
687
|
+
```lua
|
|
688
|
+
Iris:Connect(Iris.ShowDemoWindow)
|
|
689
|
+
```
|
|
690
|
+
]=]
|
|
691
|
+
Iris.ShowDemoWindow = require(script.demoWindow)(Iris)
|
|
692
|
+
|
|
693
|
+
require(script.widgets)(Internal)
|
|
694
|
+
require(script.API)(Iris)
|
|
695
|
+
|
|
696
|
+
return Iris
|