feat: export vide.create types and include more ui element types (#79)

* feat: add more ui instances to Create type

* fix: use string requires in init.luau

@self string requires are now supported by Roblox, so this should be fine. It works in my Pesde patches and fixes issues with missing types.

* feat: export vide.create types

Instances and Properties are both useful types that should be able to be used by consumers (e.g. wrapper components).

* fix: typo

* feat: include exports in repo init.luau

Fixes #84
This commit is contained in:
raine 2026-08-05 12:43:28 -04:00 committed by GitHub
parent 452060a533
commit f3bfc65607
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 21 additions and 3 deletions

View file

@ -4,5 +4,7 @@ export type source<T> = vide.source<T>
export type Source<T> = vide.Source<T> export type Source<T> = vide.Source<T>
export type context<T> = vide.context<T> export type context<T> = vide.context<T>
export type Context<T> = vide.Context<T> export type Context<T> = vide.Context<T>
export type Instances = vide.Instances
export type Properties<T> = vide.Properties<T>
return vide return vide

View file

@ -52,7 +52,7 @@ local function create(class_or_instance: string|Instance, properties: { [unknown
else constructor else constructor
end end
type Instances = { export type Instances = {
Folder: Folder, Folder: Folder,
BillboardGui: BillboardGui, BillboardGui: BillboardGui,
CanvasGroup: CanvasGroup, CanvasGroup: CanvasGroup,
@ -70,11 +70,23 @@ type Instances = {
UIGradient: UIGradient, UIGradient: UIGradient,
UIGridLayout: UIGridLayout, UIGridLayout: UIGridLayout,
UIListLayout: UIListLayout, UIListLayout: UIListLayout,
UISizeConstraint: UISizeConstraint,
UITextSizeConstraint: UITextSizeConstraint,
UIScale: UIScale,
UIPadding: UIPadding,
UIStroke: UIStroke,
UIFlexItem: UIFlexItem,
UIPageLayout: UIPageLayout,
UITableLayout: UITableLayout,
VideoFrame: VideoFrame,
ViewportFrame: ViewportFrame,
ProximityPrompt: ProximityPrompt,
UIDragDetector: UIDragDetector,
Camera: Camera, Camera: Camera,
WorldModel: WorldModel, WorldModel: WorldModel,
} }
type function Properties(instance: type?) export type function Properties(instance: type?)
local properties = types.newtable() local properties = types.newtable()
while instance do while instance do

View file

@ -1,10 +1,12 @@
assert(game, "when using vide outside of Roblox, require lib.luau instead") assert(game, "when using vide outside of Roblox, require lib.luau instead")
local vide = require(script.lib) local vide = require("@self/lib")
export type source<T> = vide.source<T> export type source<T> = vide.source<T>
export type Source<T> = vide.Source<T> export type Source<T> = vide.Source<T>
export type context<T> = vide.context<T> export type context<T> = vide.context<T>
export type Context<T> = vide.Context<T> export type Context<T> = vide.Context<T>
export type Instances = vide.Instances
export type Properties<T> = vide.Properties<T>
return vide return vide

View file

@ -27,6 +27,8 @@ export type Source<T> = source.Source<T>
export type source<T> = Source<T> export type source<T> = Source<T>
export type Context<T> = context.Context<T> export type Context<T> = context.Context<T>
export type context<T> = Context<T> export type context<T> = Context<T>
export type Instances = create.Instances
export type Properties<T> = create.Properties<T>
local function step(dt: number) local function step(dt: number)
if game then debug.profilebegin("VIDE STEP") end if game then debug.profilebegin("VIDE STEP") end