Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
76cf3ab
feat: init props playground
thejackshelton-kunaico Nov 11, 2025
88d9efe
feat: initial layout
thejackshelton-kunaico Nov 11, 2025
988ab13
feat: initial automatic playground
thejackshelton-kunaico Nov 11, 2025
269e9db
refactor: simplify findComponentDirs function to throw an error when …
thejackshelton-kunaico Nov 11, 2025
d3c974b
feat: add component metadata generation and debug logging to props pl…
thejackshelton-kunaico Nov 11, 2025
1b3d28a
refactor: improve component metadata generation and debugging
thejackshelton-kunaico Nov 11, 2025
32613c2
fix: improve debug logging for component props parsing
thejackshelton-kunaico Nov 11, 2025
8491255
feat: better modularity
thejackshelton-kunaico Nov 12, 2025
a6dfcae
feat: implement piece selector and prop controls carousels
thejackshelton-kunaico Nov 12, 2025
991ba79
feat: enhance props playground with unified carousel navigation
thejackshelton-kunaico Nov 12, 2025
2a4ef4b
refactor: enhance component styling and exports in props playground
thejackshelton-kunaico Nov 12, 2025
fcd5ac8
feat: enhance component props handling and metadata extraction
thejackshelton-kunaico Nov 12, 2025
f868b68
feat: enhance prop extraction and type resolution in component props …
thejackshelton-kunaico Nov 12, 2025
ad78d66
refactor: streamline debug logging and enhance prop extraction logic
thejackshelton-kunaico Nov 12, 2025
64c75fa
feat: enhance component metadata extraction and prop handling
thejackshelton-kunaico Nov 13, 2025
6fc0905
chore: update .gitignore and pnpm-lock.yaml for improved build process
thejackshelton-kunaico Nov 13, 2025
f8755c5
fix: format
thejackshelton-kunaico Nov 13, 2025
df73b41
biome: ignore generated json
thejackshelton-kunaico Nov 13, 2025
851d2cb
refactor: update props playground components and layout
thejackshelton-kunaico Nov 13, 2025
045fd88
refactor: improve layout and styling in PropsPlayground and layout co…
thejackshelton-kunaico Nov 13, 2025
6dd4ed1
feat: add sidebar panel toggle functionality
thejackshelton-kunaico Nov 13, 2025
1d7bb61
feat: update styling and content in checkbox component and global styles
thejackshelton-kunaico Nov 13, 2025
9d7e59a
feat: add shiki
thejackshelton-kunaico Nov 13, 2025
8ef8343
refactor: smaller code size
thejackshelton-kunaico Nov 13, 2025
faf1eb0
fix: deduplication
thejackshelton-kunaico Nov 13, 2025
8fde9b9
refactor: typescript extraction perf
thejackshelton-kunaico Nov 13, 2025
53fee3f
feat: shiki code
thejackshelton-kunaico Nov 13, 2025
e1511c1
update sidebar width
thejackshelton-kunaico Nov 13, 2025
3bedff3
feat: add twoslash
thejackshelton-kunaico Nov 14, 2025
07978bb
fix: build
thejackshelton-kunaico Nov 14, 2025
c1ed268
feat: add magic-regexp dependency and optimize playground component
thejackshelton-kunaico Nov 14, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -41,4 +41,9 @@ lerna-debug.log*
# Playwright
/test-results/
/playwright-report/
/playwright/.cache/
/playwright/.cache/

# Test temp directories
temp-test-components/
temp-test-output/
test-label-root/
224 changes: 224 additions & 0 deletions CHANGELOG.md

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions biome.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
"!**/node_modules",
"!**/server",
"!**/docs/public/pagefind",
"!**/docs/public/component-metadata",
"!**/lib-types",
"!**/libs/components/lib/**/*",
"!**/libs/components/node_modules",
Expand Down
8 changes: 5 additions & 3 deletions docs/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,9 @@
"@types/node": "24.9.0",
"ignore": "^7.0.5",
"pagefind": "1.2.0",
"shiki": "^3.15.0",
"tailwindcss": "^4.1.3",
"typescript": "5.4.5",
"typescript": "5.9.3",
"unified": "^11.0.4",
"vite": "^7",
"vite-plugin-image-optimizer": "^1.1.8",
Expand All @@ -50,7 +51,8 @@
"@stackblitz/sdk": "^1.11.0",
"class-variance-authority": "^0.7.0",
"clsx": "^2.1.1",
"rehype-pretty-code": "^0.13.2",
"tailwind-merge": "^2.5.0"
"magic-regexp": "^0.10.0",
"tailwind-merge": "^2.5.0",
"@shikijs/twoslash": "^3.15.0"
}
}
115 changes: 115 additions & 0 deletions docs/public/component-metadata/calendar.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
{
"componentName": "calendar",
"pieces": [
{
"name": "Root",
"props": [
{
"name": "locale",
"type": "unknown",
"isBindable": false,
"comment": "The locale used for formatting dates and text"
},
{
"name": "showWeekNumber",
"type": "boolean",
"isBindable": false,
"initialValue": false,
"comment": "The locale used for formatting dates and text"
},
{
"name": "fullWeeks",
"type": "boolean",
"isBindable": false,
"initialValue": false,
"comment": "The locale used for formatting dates and text"
},
{
"name": "showDaysOfWeek",
"type": "boolean",
"isBindable": false,
"initialValue": false,
"comment": "The locale used for formatting dates and text"
},
{
"name": "onChange$",
"type": "function",
"isBindable": false,
"isFunction": true,
"comment": "The locale used for formatting dates and text"
},
{
"name": "mode",
"type": "union",
"unionValues": [
"inline",
"popover"
],
"isBindable": false,
"comment": "The locale used for formatting dates and text"
},
{
"name": "date",
"type": "unknown",
"isBindable": true,
"comment": "The locale used for formatting dates and text"
},
{
"name": "disabled",
"type": "boolean",
"isBindable": true,
"initialValue": false,
"comment": "Whether to show the days of the week header"
},
{
"name": "open",
"type": "boolean",
"isBindable": true,
"initialValue": false,
"comment": "Event handler called when a date is selected"
}
]
},
{
"name": "Field",
"props": [
{
"name": "openCalendarOnClick",
"type": "boolean",
"isBindable": false,
"initialValue": false
}
]
},
{
"name": "Grid",
"props": [
{
"name": "onDateChange$",
"type": "function",
"isBindable": false,
"isFunction": true,
"comment": "Event handler called when a date is selected"
}
]
},
{
"name": "GridDay",
"props": [
{
"name": "showLeadingZeros",
"type": "boolean",
"isBindable": false,
"initialValue": false
},
{
"name": "onDateChange$",
"type": "function",
"isBindable": false,
"isFunction": true,
"comment": "Event handler called when a date is selected"
}
]
}
]
}
119 changes: 119 additions & 0 deletions docs/public/component-metadata/carousel.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,119 @@
{
"componentName": "carousel",
"pieces": [
{
"name": "Root",
"props": [
{
"name": "gap",
"type": "number",
"isBindable": false,
"initialValue": 0,
"comment": "The gap between items"
},
{
"name": "itemsPerView",
"type": "number",
"isBindable": false,
"initialValue": 0,
"comment": "The gap between items"
},
{
"name": "draggable",
"type": "boolean",
"isBindable": false,
"initialValue": false,
"comment": "The gap between items"
},
{
"name": "align",
"type": "union",
"unionValues": [
"start",
"center",
"end"
],
"isBindable": false,
"comment": "The gap between items"
},
{
"name": "rewind",
"type": "boolean",
"isBindable": false,
"initialValue": false,
"comment": "The gap between items"
},
{
"name": "autoplayInterval",
"type": "number",
"isBindable": false,
"initialValue": 0,
"comment": "The gap between items"
},
{
"name": "sensitivity",
"type": "unknown",
"isBindable": false,
"comment": "Number of items to show at once"
},
{
"name": "move",
"type": "number",
"isBindable": false,
"initialValue": 0,
"comment": "Alignment of items within the viewport"
},
{
"name": "orientation",
"type": "union",
"unionValues": [
"horizontal",
"vertical"
],
"isBindable": false,
"comment": "Whether the carousel should rewind"
},
{
"name": "mousewheel",
"type": "boolean",
"isBindable": false,
"initialValue": false,
"comment": "Time in milliseconds before the next item plays during autoplay. Defaults to 3000ms."
},
{
"name": "onChange",
"type": "function",
"isBindable": false,
"isFunction": true,
"comment": "The sensitivity of the carousel dragging"
},
{
"name": "value",
"type": "string",
"isBindable": true,
"initialValue": "",
"comment": "The sensitivity of the carousel dragging"
},
{
"name": "autoplay",
"type": "boolean",
"isBindable": true,
"initialValue": false,
"comment": "The amount of items to move when hitting the next or previous button"
}
]
},
{
"name": "Item",
"props": [
{
"name": "value",
"type": "string",
"isBindable": false,
"initialValue": "",
"comment": "The value for this carousel item. Defaults to string index if not provided."
}
]
}
]
}
56 changes: 56 additions & 0 deletions docs/public/component-metadata/checkbox.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
{
"componentName": "checkbox",
"pieces": [
{
"name": "Root",
"props": [
{
"name": "onChange$",
"type": "function",
"isBindable": false,
"isFunction": true,
"comment": "Event handler called when the checkbox state changes"
},
{
"name": "name",
"type": "string",
"isBindable": false,
"initialValue": "",
"comment": "Event handler called when the checkbox state changes"
},
{
"name": "required",
"type": "boolean",
"isBindable": false,
"initialValue": false,
"comment": "Event handler called when the checkbox state changes"
},
{
"name": "value",
"type": "string",
"isBindable": false,
"initialValue": "",
"comment": "Event handler called when the checkbox state changes"
},
{
"name": "checked",
"type": "union",
"unionValues": [
"false",
"true",
"mixed"
],
"isBindable": true,
"comment": "Event handler called when the checkbox state changes"
},
{
"name": "disabled",
"type": "boolean",
"isBindable": true,
"initialValue": false,
"comment": "Name attribute for the hidden input element"
}
]
}
]
}
28 changes: 28 additions & 0 deletions docs/public/component-metadata/checklist.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
{
"componentName": "checklist",
"pieces": [
{
"name": "HiddenInput",
"props": [
{
"name": "name",
"type": "string",
"isBindable": false,
"initialValue": ""
},
{
"name": "value",
"type": "string",
"isBindable": false,
"initialValue": ""
},
{
"name": "required",
"type": "boolean",
"isBindable": false,
"initialValue": false
}
]
}
]
}
Loading
Loading