svar-widgets/gantt/skill
Claude Code and agent skill by svar-widgets/gantt
- community
Checking that the SKILL.md file is still in the repository.
Install
npx vskill@latest install svar-widgets/gantt/skillSKILL.md
Use when building, configuring, styling, or modifying SVAR Svelte Gantt / @wx/svelte-gantt timelines, grids, task editors, toolbars, context menus, tooltips, scales, links, and Gantt data actions.
Package
Components
-
Gantt- main grid plus timeline chart;bind:thisexposes the Gantt API object from source. -
Toolbar- Gantt-aware wrapper around@wx/svelte-toolbar; acceptsapiand optionalitems. -
ContextMenu- Gantt-aware wrapper around@wx/svelte-menucontext menu; resolves tasks from Ganttdata-id. -
Editor- Gantt-aware wrapper around@wx/svelte-editor; opens foractiveTask/show-editor. -
Tooltip- wraps a Gantt and displays task text or a custom content component fromdata-tooltip-id. -
HeaderMenu- wraps@wx/svelte-gridheader menu and passesapi.getTable()to it. -
Willow,WillowDark- theme wrappers; each acceptsfonts?: booleanand optional children.
Supported functionality
Gantt Data
-
tasksis an array of task objects; common fields areid,text,start,end,duration,progress,parent,type,open,details,data,unscheduled,segments,base_start,base_end,base_duration,rollup. -
linksis an array of dependency links withid,source,target,type, optionallag. - link
typevalues ares2s,s2e,e2s,e2e. - task
typedefaults aretask,summary,milestone; custom types are supported throughtaskTypes. - milestone tasks are normalized with
duration = 0and noend. - summary task dates are calculated from children when
start/endare missing. -
parseTaskDates(tasks, { durationUnit, splitTasks, calendar })runs insideGanttand mutates task date fields unless_exportis set.
Common data objects:
Gantt Config
- default scales:
[{ unit: "month", step: 1, format: "%F %Y" }, { unit: "day", step: 1, format: "%j" }]. -
scalesrows acceptunit,step,format?: string | (date, next) => string,css?: (date) => string. -
start,end, andautoScalecontrol timeline bounds;autoScaleincludes tasks, markers, baselines,projectStart, andprojectEnd. -
zoomacceptstrueorIZoomConfig; chart zoom is handled by Ctrl/Command + wheel and emitszoom-scale. -
columnsdefaults todefaultColumns;columns={false}hides the grid and resizer. - the
textcolumn is rendered with the built-inTextCell;add-taskusesActionCell, is removed inreadonly, and moves to the first column in compact chart mode. -
cellWidth,cellHeight,scaleHeightcontrol timeline width, row height, and scale row height. -
lengthUnitcontrols chart math;durationUnitcontrols task duration calculation and is"day"or"hour". -
cellBordersis"column"or"full". -
readonlydisables task drag, progress editing, link editing, grid add column behavior, and editor opening from double click. -
selectedandactiveTaskare config inputs, not$bindable()props; read or change live selection throughapi.getReactiveState()andapi.exec("select-task", ...). -
highlightTime(date, unit)can return a CSS class for timescale cells and chart background cells when min unit isdayorhour. - compact mode is driven by a
ResizeObserverondocument.body; width<= 650switches the layout to grid/chart modes.
Common config objects:
Pro And Advanced Config
-
baselinesshowsbase_start/base_end/base_duration. -
rollupsacceptstrueor{ type: "all" | "closest" }; tasks withrollup: trueare drawn on summary rows. -
markersis an array of{ start: Date, text?: string, css?: string }. -
criticalPath={{ type: "strict" | "flexible" }}marks critical tasks and links. -
schedule={{ type?: "forward", auto?: boolean }}enables scheduling behavior;projectStartandprojectEndprovide bounds. -
calendaraccepts aCalendarfrom@wx/gantt-store; Gantt then creates default weekend highlighting whencalendaris set. -
undoenables history state plusundo/redoactions and toolbar buttons. -
splitTasksenables tasksegmentsediting, split toolbar/menu actions, and segment-aware editor/context-menu targets. -
summary={{ autoProgress?: boolean, autoConvert?: boolean }}controls summary progress and summary type conversion behavior. -
slackshows task slack visuals. -
unscheduledTasksenables taskunscheduledsupport and editor scheduling controls. -
api.exec("export-data", config)supportsformat: "pdf" | "png" | "xlsx" | "mspx"throughIExportConfig. -
api.exec("import-data", { data, format: "mspx" })imports MS Project XML.
API And Events
Gantt exposes this API from source through bind:this or init(api):
- state:
getState(),getReactiveState(),getStores() - events/actions:
exec(action, data),on(action, callback, config?),intercept(action, callback, config?),detach(tag),setNext(eventBusOrProvider) - task/table helpers:
getTask(id),getTable(waitRender?),serialize(),getHistory()
Component callback props are generated from action names by removing hyphens and prefixing on:
-
add-task->onaddtask -
update-task->onupdatetask -
select-task->onselecttask - custom
taskTemplateaction"custom-click"->oncustomclick
Source routes actions through DataStore first, then calls the matching component callback prop if present.
Common actions:
Use api.intercept(action, cb) to block or replace built-in behavior; returning false blocks the action. Use api.setNext(provider) to forward data changes to a provider such as RestDataProvider.
Saving
-
RestDataProviderfrom@wx/gantt-data-providerpersists data changes to a REST backend. - Wire it once with
api.setNext(provider)ininit; the provider then forwards every data action (add-task,update-task,delete-task,move-task,add-link,update-link,delete-link, etc.) emitted on the event bus as the matching REST call. No per-action save handlers needed. - Initial load uses
provider.getData(); lazy branches useprovider.getData(id)insiderequest-dataand dispatch back throughprovide-data. - Optional
{ batchURL }constructor option batches concurrent writes into a single endpoint.
Toolbar
-
Toolbarsource props areapi = nullanditems = []. - default items come from
getToolbarButtons({ undo: $undo, splitTasks: $splitTasks }). - default handled ids are wired through
handleAction(api, item.id, null, _). - custom item
handlerfunctions are preserved only when the id is not one of the handled default action ids. - if no task is selected, default toolbar keeps only targetless items such as
add-taskand history controls. -
undoaddsundoandredo;splitTasksaddssplit-task.
Default toolbar ids:
Context Menu
-
ContextMenusource props areoptions,api,resolver,filter,at = "point",children,onclick,css. - the wrapper passes
dataKey="id"to@wx/svelte-menu; Gantt grid rows and bars exposedata-id. - built-in menu options are from
getMenuOptions({ splitTasks, taskTypes, summary }). - right-clicking a task selects it when it is not already selected.
-
resolver(id, event)can returntrueto use the default task, return a replacement context object, or return a falsy value to prevent task resolution. -
filter(option, task)is applied across selected tasks; built-inisHiddenandisDisabledare also applied. - wrapper
onclickreceives the menu event used in demos as{ context, action }. - built-in handled
action.idvalues are executed throughhandleAction(api, action.id, activeId, _)before useronclick. - with
splitTasks, segment targets use{ id, segmentIndex }internally for edit/delete/split actions.
Default menu ids:
Editor
-
Editorsource props areapi,items = [],css = "",layout = "default",readonly = false,placement = "sidebar",bottomBar = true,topBar = true,autoSave = true,focus = false,hotkeys = {}. - editor renders only when
api.getReactiveState()._activeTaskexists. - default items come from
getEditorItems({ unscheduledTasks, rollups, summary, taskTypes }). - built-in editor comps registered by the wrapper:
select,date,twostate,slider,counter,links,checkbox. -
registerEditorItem(name, Component)registers custom comps foritems. - item
keyis the task field; editor values are task objects keyed by thosekeyvalues. -
autoSave={true}saves valid changes on field change;autoSave={false}stores local values and saves from asavetop/bottom bar action. - saved task payload removes
linksanddata;durationmay be removed when no duration editor is present. -
linkseditor changes are batched in the wrapper and saved through link actions. - default
topBar={true}in editable mode creates close/spacer/delete buttons, plus save whenautoSave={false}.
Default editor keys:
Tooltip
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 95 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingdocs/.skill/SKILL.md
Popularity
- Repository stars
- 242
- Repository forks
- 39
- 7-day trend score
- 27
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/svar-widgets/gantt/skill)