-- Compiled with roblox-ts v3.0.0 local TS = _G[script] local ArrayUtil = TS.import(script, TS.getModule(script, "@rbxts", "centurion").out.shared.util.data).ArrayUtil local _vide = TS.import(script, TS.getModule(script, "@rbxts", "vide").src) local Vide = _vide local derive = _vide.derive local For = _vide.For local read = _vide.read local SUGGESTION_TEXT_SIZE = TS.import(script, script.Parent.Parent.Parent, "constants", "text").SUGGESTION_TEXT_SIZE local px = TS.import(script, script.Parent.Parent.Parent, "hooks", "use-px").px local _store = TS.import(script, script.Parent.Parent.Parent, "store") local mouseOverInterface = _store.mouseOverInterface local options = _store.options local Frame = TS.import(script, script.Parent.Parent, "ui", "frame").Frame local Group = TS.import(script, script.Parent.Parent, "ui", "group").Group local Padding = TS.import(script, script.Parent.Parent, "ui", "padding").Padding local Text = TS.import(script, script.Parent.Parent, "ui", "text").Text local highlightMatching = TS.import(script, script.Parent, "util").highlightMatching local MAX_SUGGESTIONS = 3 local function SuggestionList(_param) local suggestion = _param.suggestion local currentText = _param.currentText local size = _param.size local suggestions = derive(function() local _result = read(suggestion) if _result ~= nil then _result = _result.others end local _condition = _result if _condition == nil then _condition = {} end return ArrayUtil.slice(_condition, 0, MAX_SUGGESTIONS) end) return Vide.jsx(Group, { size = size, native = { MouseEnter = function() return mouseOverInterface(true) end, MouseLeave = function() return mouseOverInterface(false) end, }, }, Vide.jsx("uilistlayout", { SortOrder = "LayoutOrder", Padding = function() return UDim.new(0, px(8)) end, }), Vide.jsx(For, { each = suggestions, }, function(name, i) return Vide.jsx(Frame, { size = function() return UDim2.new(1, 0, 0, px(SUGGESTION_TEXT_SIZE + 6)) end, backgroundColor = function() return options().palette.background end, backgroundTransparency = function() local _condition = options().backgroundTransparency if _condition == nil then _condition = 0 end return _condition end, cornerRadius = function() return UDim.new(0, px(8)) end, clipsDescendants = true, layoutOrder = i, }, Vide.jsx(Padding, { all = function() return UDim.new(0, px(4)) end, }), Vide.jsx(Text, { size = function() return UDim2.new(1, 0, 1, 0) end, text = function() return highlightMatching(options().palette.highlight, name, read(currentText)) end, textColor = function() return options().palette.text end, textSize = function() return px(SUGGESTION_TEXT_SIZE) end, textXAlignment = "Left", richText = true, })) end)) end return { SuggestionList = SuggestionList, }