@wizeworks/silicaui-mcp 0.29.0 → 0.31.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/dist/data/behaviors.json +13 -1
- package/dist/data/classes.json +54 -7
- package/dist/data/components.json +1267 -475
- package/dist/data/packages.json +10 -20
- package/dist/data/tokens.json +93 -0
- package/dist/server.js +29 -2
- package/dist/server.js.map +1 -1
- package/package.json +1 -1
|
@@ -79,7 +79,7 @@
|
|
|
79
79
|
]
|
|
80
80
|
}
|
|
81
81
|
],
|
|
82
|
-
"usageExample":
|
|
82
|
+
"usageExample": "import { useState } from \"react\";\r\nimport { Button } from \"@wizeworks/silicaui-react\";\r\nimport { Section, Row, Stack } from \"../lib/Section\";\r\nimport { ColorVariantSizeGrid } from \"../lib/ColorGrid\";\r\nimport { PlusIcon } from \"../lib/icons\";\r\nimport { VARIANTS } from \"../lib/data\";\r\n\r\nexport function ButtonDemo() {\r\n const [loading, setLoading] = useState(false);\r\n\r\n function fakeSave() {\r\n setLoading(true);\r\n setTimeout(() => setLoading(false), 1800);\r\n }\r\n\r\n return (\r\n <>\r\n <ColorVariantSizeGrid\r\n Component={Button}\r\n variants={VARIANTS.filter((v) => v !== \"solid\")}\r\n />\r\n\r\n <Section title=\"Icon buttons (square / circle)\">\r\n <Row>\r\n <Button color=\"primary\" shape=\"square\" aria-label=\"Add\">\r\n <PlusIcon />\r\n </Button>\r\n <Button color=\"secondary\" shape=\"circle\" aria-label=\"Add\">\r\n <PlusIcon />\r\n </Button>\r\n <Button color=\"accent\" variant=\"outline\" shape=\"circle\" aria-label=\"Add\">\r\n <PlusIcon />\r\n </Button>\r\n <Button color=\"brand\" iconStart={<PlusIcon />}>\r\n with icon\r\n </Button>\r\n </Row>\r\n </Section>\r\n\r\n <Section title=\"States\">\r\n <Row>\r\n <Button color=\"primary\" loading={loading} onClick={fakeSave}>\r\n {loading ? \"Saving…\" : \"Click to load\"}\r\n </Button>\r\n <Button color=\"primary\" disabled>\r\n Disabled\r\n </Button>\r\n <Button color=\"primary\" variant=\"outline\" active>\r\n Active\r\n </Button>\r\n </Row>\r\n </Section>\r\n\r\n <Section title=\"Polymorphism · render → a real <a href>\">\r\n <Row>\r\n <Button\r\n color=\"brand\"\r\n variant=\"link\"\r\n render={<a href=\"https://example.com\" />}\r\n >\r\n Anchor · link style\r\n </Button>\r\n <Button color=\"brand\" render={<a href=\"https://example.com\" />}>\r\n Anchor · button style\r\n </Button>\r\n </Row>\r\n </Section>\r\n\r\n <Section title=\"Layout\">\r\n <Stack className=\"w-full\">\r\n <Button color=\"primary\" block>\r\n Block\r\n </Button>\r\n <Button color=\"neutral\" variant=\"outline\" wide>\r\n Wide\r\n </Button>\r\n </Stack>\r\n </Section>\r\n </>\r\n );\r\n}"
|
|
83
83
|
},
|
|
84
84
|
{
|
|
85
85
|
"name": "DropdownMenu",
|
|
@@ -181,7 +181,7 @@
|
|
|
181
181
|
]
|
|
182
182
|
}
|
|
183
183
|
],
|
|
184
|
-
"usageExample":
|
|
184
|
+
"usageExample": "import { useState } from \"react\";\r\nimport { Swap } from \"@wizeworks/silicaui-react\";\r\nimport { Section, Row } from \"../lib/Section\";\r\n\r\nfunction MenuIcon() {\r\n return (\r\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" width=\"28\" height=\"28\">\r\n <path d=\"M4 6h16M4 12h16M4 18h16\" strokeLinecap=\"round\" />\r\n </svg>\r\n );\r\n}\r\nfunction CloseIcon() {\r\n return (\r\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" width=\"28\" height=\"28\">\r\n <path d=\"M6 6l12 12M18 6 6 18\" strokeLinecap=\"round\" />\r\n </svg>\r\n );\r\n}\r\nfunction SunIcon() {\r\n return (\r\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" width=\"24\" height=\"24\">\r\n <circle cx=\"12\" cy=\"12\" r=\"4\" />\r\n <path d=\"M12 2v2M12 20v2M4.9 4.9l1.4 1.4M17.7 17.7l1.4 1.4M2 12h2M20 12h2M4.9 19.1l1.4-1.4M17.7 6.3l1.4-1.4\" strokeLinecap=\"round\" />\r\n </svg>\r\n );\r\n}\r\nfunction MoonIcon() {\r\n return (\r\n <svg viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"24\" height=\"24\">\r\n <path d=\"M21 12.8A9 9 0 1 1 11.2 3 7 7 0 0 0 21 12.8Z\" />\r\n </svg>\r\n );\r\n}\r\n\r\nexport function SwapDemo() {\r\n const [menuOpen, setMenuOpen] = useState(false);\r\n\r\n return (\r\n <>\r\n <Section title=\"Transition variants\">\r\n <Row>\r\n <Swap variant=\"fade\" on={<CloseIcon />} off={<MenuIcon />} label=\"Fade\" />\r\n <Swap variant=\"rotate\" on={<CloseIcon />} off={<MenuIcon />} label=\"Rotate\" />\r\n <Swap variant=\"flip\" on={<MoonIcon />} off={<SunIcon />} label=\"Flip\" />\r\n </Row>\r\n </Section>\r\n\r\n <Section title=\"Real use · controlled mobile menu toggle\">\r\n <div className=\"flex items-center gap-3\">\r\n <Swap\r\n variant=\"rotate\"\r\n active={menuOpen}\r\n onActiveChange={setMenuOpen}\r\n on={<CloseIcon />}\r\n off={<MenuIcon />}\r\n label=\"Toggle menu\"\r\n />\r\n <span className=\"text-sm opacity-70\">\r\n Menu is {menuOpen ? \"open\" : \"closed\"}\r\n </span>\r\n </div>\r\n </Section>\r\n </>\r\n );\r\n}"
|
|
185
185
|
},
|
|
186
186
|
{
|
|
187
187
|
"name": "Accordion",
|
|
@@ -203,7 +203,7 @@
|
|
|
203
203
|
]
|
|
204
204
|
}
|
|
205
205
|
],
|
|
206
|
-
"usageExample":
|
|
206
|
+
"usageExample": "import {\r\n Accordion,\r\n AccordionItem,\r\n AccordionTrigger,\r\n AccordionPanel,\r\n} from \"@wizeworks/silicaui-react\";\r\nimport { Section } from \"../lib/Section\";\r\n\r\nexport function AccordionDemo() {\r\n return (\r\n <>\r\n <Section title=\"Real use · FAQ (single-open)\">\r\n <Accordion defaultValue={[\"a\"]} className=\"max-w-md\">\r\n <AccordionItem value=\"a\">\r\n <AccordionTrigger>What is Silica?</AccordionTrigger>\r\n <AccordionPanel>\r\n A component library and design system built on one CSS-first\r\n token model.\r\n </AccordionPanel>\r\n </AccordionItem>\r\n <AccordionItem value=\"b\">\r\n <AccordionTrigger>Is it themeable?</AccordionTrigger>\r\n <AccordionPanel>\r\n Yes — every color, radius, and size is a CSS variable you can\r\n override per theme.\r\n </AccordionPanel>\r\n </AccordionItem>\r\n <AccordionItem value=\"c\">\r\n <AccordionTrigger>Does it work with any framework?</AccordionTrigger>\r\n <AccordionPanel>\r\n The core is a Tailwind plugin; React components are a thin\r\n typed layer on top.\r\n </AccordionPanel>\r\n </AccordionItem>\r\n </Accordion>\r\n </Section>\r\n\r\n <Section title=\"Multiple open at once\">\r\n <Accordion multiple defaultValue={[\"a\", \"b\"]} className=\"max-w-md\">\r\n <AccordionItem value=\"a\">\r\n <AccordionTrigger>Section one</AccordionTrigger>\r\n <AccordionPanel>Both of these can be open together.</AccordionPanel>\r\n </AccordionItem>\r\n <AccordionItem value=\"b\">\r\n <AccordionTrigger>Section two</AccordionTrigger>\r\n <AccordionPanel>Set the `multiple` prop to allow it.</AccordionPanel>\r\n </AccordionItem>\r\n </Accordion>\r\n </Section>\r\n </>\r\n );\r\n}"
|
|
207
207
|
},
|
|
208
208
|
{
|
|
209
209
|
"name": "Avatar",
|
|
@@ -261,7 +261,7 @@
|
|
|
261
261
|
]
|
|
262
262
|
}
|
|
263
263
|
],
|
|
264
|
-
"usageExample":
|
|
264
|
+
"usageExample": "import { Avatar, AvatarGroup } from \"@wizeworks/silicaui-react\";\r\nimport { Section, Row } from \"../lib/Section\";\r\nimport { COLORS, SIZES } from \"../lib/data\";\r\n\r\n// A stand-in \"photo\" (data URI, always loads offline): a head-and-shoulders\r\n// silhouette on a gradient, so the image path — object-fit cover + rounding —\r\n// is demonstrated without a network request.\r\nconst PHOTO = `data:image/svg+xml,${encodeURIComponent(\r\n `<svg xmlns='http://www.w3.org/2000/svg' width='100' height='100'>` +\r\n `<defs><linearGradient id='g' x1='0' y1='0' x2='1' y2='1'>` +\r\n `<stop offset='0' stop-color='#6366f1'/><stop offset='1' stop-color='#ec4899'/>` +\r\n `</linearGradient></defs>` +\r\n `<rect width='100' height='100' fill='url(#g)'/>` +\r\n `<circle cx='50' cy='40' r='18' fill='rgba(255,255,255,.92)'/>` +\r\n `<rect x='22' y='62' width='56' height='38' rx='19' fill='rgba(255,255,255,.92)'/>` +\r\n `</svg>`,\r\n)}`;\r\n\r\nexport function AvatarDemo() {\r\n return (\r\n <>\r\n <Section title=\"Colors (initials fallback)\">\r\n <Row>\r\n {COLORS.map((color) => (\r\n <Avatar key={color} color={color} alt={color}>\r\n {color.slice(0, 2).toUpperCase()}\r\n </Avatar>\r\n ))}\r\n </Row>\r\n </Section>\r\n\r\n <Section title=\"Sizes\">\r\n <Row>\r\n {SIZES.map((size) => (\r\n <Avatar key={size} color=\"primary\" size={size} alt={size}>\r\n {size.toUpperCase()}\r\n </Avatar>\r\n ))}\r\n </Row>\r\n </Section>\r\n\r\n <Section title=\"Real use · team roster with presence\">\r\n <Row>\r\n <Avatar src={PHOTO} alt=\"Ada Lovelace\" ring status=\"online\" />\r\n <Avatar color=\"secondary\" alt=\"Grace Hopper\" ring status=\"online\">\r\n GH\r\n </Avatar>\r\n <Avatar color=\"neutral\" alt=\"Alan Turing\" status=\"offline\">\r\n AT\r\n </Avatar>\r\n <Avatar shape=\"rounded\" color=\"brand\" alt=\"Katherine Johnson\">\r\n KJ\r\n </Avatar>\r\n </Row>\r\n <Row>\r\n <span className=\"text-xs opacity-60\">Overlapping group —</span>\r\n <AvatarGroup>\r\n <Avatar src={PHOTO} alt=\"Ada Lovelace\" />\r\n <Avatar color=\"secondary\" alt=\"Grace Hopper\">\r\n GH\r\n </Avatar>\r\n <Avatar color=\"accent\" alt=\"Alan Turing\">\r\n AT\r\n </Avatar>\r\n <Avatar color=\"neutral\" alt=\"+3 more\">\r\n +3\r\n </Avatar>\r\n </AvatarGroup>\r\n </Row>\r\n </Section>\r\n </>\r\n );\r\n}"
|
|
265
265
|
},
|
|
266
266
|
{
|
|
267
267
|
"name": "Badge",
|
|
@@ -301,7 +301,7 @@
|
|
|
301
301
|
]
|
|
302
302
|
}
|
|
303
303
|
],
|
|
304
|
-
"usageExample":
|
|
304
|
+
"usageExample": "import { Badge } from \"@wizeworks/silicaui-react\";\r\nimport { ColorVariantSizeGrid } from \"../lib/ColorGrid\";\r\n\r\nexport function BadgeDemo() {\r\n return (\r\n <ColorVariantSizeGrid\r\n Component={Badge}\r\n variants={[\"outline\", \"soft\", \"ghost\", \"dash\"]}\r\n />\r\n );\r\n}"
|
|
305
305
|
},
|
|
306
306
|
{
|
|
307
307
|
"name": "Card",
|
|
@@ -339,7 +339,7 @@
|
|
|
339
339
|
]
|
|
340
340
|
}
|
|
341
341
|
],
|
|
342
|
-
"usageExample":
|
|
342
|
+
"usageExample": "import {\r\n Card,\r\n CardBody,\r\n CardTitle,\r\n CardActions,\r\n ClickableCard,\r\n SelectableCard,\r\n Button,\r\n Badge,\r\n Input,\r\n} from \"@wizeworks/silicaui-react\";\r\nimport { Section } from \"../lib/Section\";\r\n\r\nexport function CardDemo() {\r\n return (\r\n <>\r\n <Section title=\"Surfaces\">\r\n <div className=\"grid gap-6 sm:grid-cols-2\">\r\n <Card>\r\n <CardBody>\r\n <div className=\"flex items-center justify-between\">\r\n <CardTitle>Project Silica</CardTitle>\r\n <Badge color=\"success\" variant=\"soft\">\r\n Active\r\n </Badge>\r\n </div>\r\n <p className=\"opacity-70\">\r\n A card sits on the <code>base-100</code> surface, rounds\r\n with <code>--radius-box</code>, and lifts with{\" \"}\r\n <code>--depth</code>.\r\n </p>\r\n <CardActions>\r\n <Button variant=\"ghost\" color=\"neutral\">\r\n Cancel\r\n </Button>\r\n <Button color=\"primary\">Deploy</Button>\r\n </CardActions>\r\n </CardBody>\r\n </Card>\r\n\r\n <Card>\r\n <CardBody>\r\n <CardTitle>Newsletter</CardTitle>\r\n <p className=\"opacity-70\">\r\n Inputs and buttons share the field tier, so they line up.\r\n </p>\r\n <div className=\"flex gap-2\">\r\n <Input placeholder=\"you@example.com\" />\r\n <Button color=\"primary\">Subscribe</Button>\r\n </div>\r\n </CardBody>\r\n </Card>\r\n </div>\r\n </Section>\r\n\r\n <Section title=\"ClickableCard · whole surface is a button (or render as a link)\">\r\n <div className=\"grid gap-4 sm:grid-cols-3\">\r\n <ClickableCard onClick={() => console.log(\"open repo\")}>\r\n <CardBody>\r\n <CardTitle>Repository</CardTitle>\r\n <p className=\"opacity-70\">Click anywhere on this card.</p>\r\n </CardBody>\r\n </ClickableCard>\r\n <ClickableCard render={<a href=\"#card\" />}>\r\n <CardBody>\r\n <CardTitle>As a link</CardTitle>\r\n <p className=\"opacity-70\">Renders an <a>, same styling.</p>\r\n </CardBody>\r\n </ClickableCard>\r\n <ClickableCard disabled>\r\n <CardBody>\r\n <CardTitle>Disabled</CardTitle>\r\n <p className=\"opacity-70\">Not interactive.</p>\r\n </CardBody>\r\n </ClickableCard>\r\n </div>\r\n </Section>\r\n\r\n <Section title=\"SelectableCard · radio group and independent checkboxes\">\r\n <div className=\"grid gap-4 sm:grid-cols-3\">\r\n {([\"Starter\", \"Pro\", \"Enterprise\"] as const).map((plan, i) => (\r\n <SelectableCard key={plan} name=\"selectable-plan\" defaultChecked={i === 1}>\r\n <CardBody>\r\n <CardTitle>{plan}</CardTitle>\r\n <p className=\"opacity-70\">\r\n {i === 0 ? \"For side projects.\" : i === 1 ? \"For growing teams.\" : \"For scale.\"}\r\n </p>\r\n </CardBody>\r\n </SelectableCard>\r\n ))}\r\n </div>\r\n <div className=\"mt-4 grid gap-4 sm:grid-cols-3\">\r\n {([\"Email alerts\", \"SMS alerts\", \"Push alerts\"] as const).map((opt) => (\r\n <SelectableCard key={opt} type=\"checkbox\" defaultChecked={opt === \"Email alerts\"}>\r\n <CardBody>\r\n <CardTitle>{opt}</CardTitle>\r\n </CardBody>\r\n </SelectableCard>\r\n ))}\r\n </div>\r\n </Section>\r\n\r\n <Section title=\"Glass · Tier-0 frosted treatment (backdrop-filter blur + saturate, no SVG refraction)\">\r\n <div\r\n className=\"rounded-box p-8\"\r\n style={{\r\n backgroundImage:\r\n \"linear-gradient(135deg, var(--color-primary), var(--color-accent), var(--color-secondary))\",\r\n }}\r\n >\r\n <div className=\"grid gap-6 sm:grid-cols-2\">\r\n <Card className=\"glass\">\r\n <CardBody>\r\n <CardTitle>Neutral frost</CardTitle>\r\n <p className=\"opacity-80\">\r\n Plain <code>glass</code> — no color declared, so it\r\n frosts the neutral <code>base-100</code> surface.\r\n </p>\r\n </CardBody>\r\n </Card>\r\n\r\n <Card className=\"bg-primary glass\">\r\n <CardBody>\r\n <CardTitle>Tinted frost</CardTitle>\r\n <p className=\"opacity-80\">\r\n <code>bg-primary glass</code> — same{\" \"}\r\n <code>--u-accent</code> hook <code>soft</code> uses,\r\n so the frost picks up primary for colored depth.\r\n </p>\r\n </CardBody>\r\n </Card>\r\n </div>\r\n\r\n <div className=\"mt-6 grid gap-4 sm:grid-cols-3\">\r\n <ClickableCard\r\n className=\"glass\"\r\n onClick={() => console.log(\"open repo\")}\r\n >\r\n <CardBody>\r\n <CardTitle>Clickable + glass</CardTitle>\r\n <p className=\"opacity-80\">\r\n Hover still lifts — the rim sheen lives on its own\r\n pseudo-element, not the hover shadow.\r\n </p>\r\n </CardBody>\r\n </ClickableCard>\r\n\r\n {([\"Starter\", \"Pro\"] as const).map((plan, i) => (\r\n <SelectableCard\r\n key={plan}\r\n name=\"selectable-plan-glass\"\r\n defaultChecked={i === 0}\r\n className=\"glass\"\r\n >\r\n <CardBody>\r\n <CardTitle>{plan}</CardTitle>\r\n <p className=\"opacity-80\">\r\n Checked ring still reads through the frost.\r\n </p>\r\n </CardBody>\r\n </SelectableCard>\r\n ))}\r\n </div>\r\n </div>\r\n </Section>\r\n </>\r\n );\r\n}"
|
|
343
343
|
},
|
|
344
344
|
{
|
|
345
345
|
"name": "Carousel",
|
|
@@ -389,11 +389,17 @@
|
|
|
389
389
|
"doc": "Auto-advance every N ms (pauses on hover/focus). Off by default."
|
|
390
390
|
},
|
|
391
391
|
{
|
|
392
|
-
"name": "
|
|
392
|
+
"name": "onValueChange",
|
|
393
393
|
"optional": true,
|
|
394
394
|
"type": "(index: number) => void",
|
|
395
395
|
"doc": "Called with the active slide index whenever it changes."
|
|
396
396
|
},
|
|
397
|
+
{
|
|
398
|
+
"name": "onChange",
|
|
399
|
+
"optional": true,
|
|
400
|
+
"type": "(index: number) => void",
|
|
401
|
+
"doc": "@deprecated Use `onValueChange`. `onChange` is reserved for the native DOM handler on components that wrap a real form element; still honored here so this isn't a breaking change."
|
|
402
|
+
},
|
|
397
403
|
{
|
|
398
404
|
"name": "className",
|
|
399
405
|
"optional": true,
|
|
@@ -407,14 +413,14 @@
|
|
|
407
413
|
"members": []
|
|
408
414
|
}
|
|
409
415
|
],
|
|
410
|
-
"usageExample":
|
|
416
|
+
"usageExample": "import type { CSSProperties } from \"react\";\r\nimport { Carousel, CarouselItem } from \"@wizeworks/silicaui-react\";\r\nimport { Section } from \"../lib/Section\";\r\n\r\nconst SLIDES = [\"primary\", \"secondary\", \"accent\", \"info\", \"success\"] as const;\r\n\r\nfunction slideStyle(color: string): CSSProperties {\r\n return {\r\n backgroundColor: `var(--color-${color})`,\r\n color: `var(--color-${color}-content, #fff)`,\r\n };\r\n}\r\n\r\nexport function CarouselDemo() {\r\n return (\r\n <>\r\n <Section title=\"Real use · loop + autoplay\">\r\n <Carousel loop autoplay={3000} className=\"max-w-lg gap-4 rounded-box\">\r\n {SLIDES.map((color) => (\r\n <CarouselItem\r\n key={color}\r\n className=\"flex h-40 w-full shrink-0 items-center justify-center rounded-box font-semibold\"\r\n style={slideStyle(color)}\r\n >\r\n {color}\r\n </CarouselItem>\r\n ))}\r\n </Carousel>\r\n </Section>\r\n\r\n <Section title=\"Numbered indicators, no loop\">\r\n <Carousel indicators=\"numbers\" className=\"max-w-lg gap-4 rounded-box\">\r\n {SLIDES.slice(0, 3).map((color) => (\r\n <CarouselItem\r\n key={color}\r\n className=\"flex h-32 w-full shrink-0 items-center justify-center rounded-box font-semibold\"\r\n style={slideStyle(color)}\r\n >\r\n {color}\r\n </CarouselItem>\r\n ))}\r\n </Carousel>\r\n </Section>\r\n </>\r\n );\r\n}"
|
|
411
417
|
},
|
|
412
418
|
{
|
|
413
419
|
"name": "Chat",
|
|
414
420
|
"package": "@wizeworks/silicaui-react",
|
|
415
421
|
"category": "Data display",
|
|
416
422
|
"sourceFile": "silicaui-react/src/chat.tsx",
|
|
417
|
-
"description": "Silica Chat — a message row: avatar, header, bubble, footer. <Chat side=\"start\"> <ChatImage><Avatar>OW</Avatar></ChatImage> <ChatHeader>Obi-Wan <time
|
|
423
|
+
"description": "Silica Chat — a message row: avatar, header, bubble, footer. <Chat side=\"start\"> <ChatImage><Avatar>OW</Avatar></ChatImage> <ChatHeader>Obi-Wan <time>12:45</time></ChatHeader> <ChatBubble>You were the chosen one!</ChatBubble> <ChatFooter>Seen</ChatFooter> </Chat> <Chat side=\"end\"> <ChatBubble color=\"primary\">I hate you!</ChatBubble> </Chat>",
|
|
418
424
|
"props": [
|
|
419
425
|
{
|
|
420
426
|
"name": "ChatProps",
|
|
@@ -453,7 +459,7 @@
|
|
|
453
459
|
]
|
|
454
460
|
}
|
|
455
461
|
],
|
|
456
|
-
"usageExample":
|
|
462
|
+
"usageExample": "import {\r\n Chat,\r\n ChatImage,\r\n ChatHeader,\r\n ChatBubble,\r\n ChatFooter,\r\n Avatar,\r\n} from \"@wizeworks/silicaui-react\";\r\nimport { Section } from \"../lib/Section\";\r\nimport { COLORS } from \"../lib/data\";\r\n\r\nexport function ChatDemo() {\r\n return (\r\n <>\r\n <Section title=\"Bubble colors\">\r\n <div className=\"flex flex-col gap-3\">\r\n {COLORS.slice(0, 6).map((color) => (\r\n <Chat key={color} side=\"end\">\r\n <ChatBubble color={color}>{color} bubble</ChatBubble>\r\n </Chat>\r\n ))}\r\n </div>\r\n </Section>\r\n\r\n <Section title=\"Real use · a short conversation\">\r\n <div className=\"flex max-w-md flex-col gap-1\">\r\n <Chat side=\"start\">\r\n <ChatImage>\r\n <Avatar color=\"neutral\" alt=\"Obi-Wan\">\r\n OW\r\n </Avatar>\r\n </ChatImage>\r\n <ChatHeader>\r\n Obi-Wan <time className=\"opacity-60\">12:45</time>\r\n </ChatHeader>\r\n <ChatBubble>You were the chosen one!</ChatBubble>\r\n </Chat>\r\n <Chat side=\"start\">\r\n <ChatImage>\r\n <Avatar color=\"neutral\" alt=\"Obi-Wan\">\r\n OW\r\n </Avatar>\r\n </ChatImage>\r\n <ChatBubble>\r\n It was said that you would destroy the Sith, not join them.\r\n </ChatBubble>\r\n </Chat>\r\n <Chat side=\"end\">\r\n <ChatBubble color=\"primary\">I hate you!</ChatBubble>\r\n <ChatFooter>Delivered</ChatFooter>\r\n </Chat>\r\n </div>\r\n </Section>\r\n </>\r\n );\r\n}"
|
|
457
463
|
},
|
|
458
464
|
{
|
|
459
465
|
"name": "ChatComposer",
|
|
@@ -1144,6 +1150,44 @@
|
|
|
1144
1150
|
],
|
|
1145
1151
|
"usageExample": null
|
|
1146
1152
|
},
|
|
1153
|
+
{
|
|
1154
|
+
"name": "ClickableCard",
|
|
1155
|
+
"package": "@wizeworks/silicaui-react",
|
|
1156
|
+
"category": "Data display",
|
|
1157
|
+
"sourceFile": "silicaui-react/src/card.tsx",
|
|
1158
|
+
"description": "A `Card` that's a whole clickable surface — a `<button>` by default, or any element via `render`.",
|
|
1159
|
+
"props": [
|
|
1160
|
+
{
|
|
1161
|
+
"name": "CardProps",
|
|
1162
|
+
"members": []
|
|
1163
|
+
},
|
|
1164
|
+
{
|
|
1165
|
+
"name": "ClickableCardProps",
|
|
1166
|
+
"extends": "extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, \"type\">",
|
|
1167
|
+
"members": [
|
|
1168
|
+
{
|
|
1169
|
+
"name": "render",
|
|
1170
|
+
"optional": true,
|
|
1171
|
+
"type": "React.ReactElement",
|
|
1172
|
+
"doc": "Render as a different element (e.g. an anchor) while keeping Card's classes and interaction styles. Mirrors Base UI's `render` composition. <ClickableCard render={<a href=\"/projects/silica\" />}>…</ClickableCard> CLIENT COMPONENTS ONLY — from a React Server Component the element loses its props crossing the `\"use client\"` boundary. Style the element directly instead: `clickableCardClasses()` from `@wizeworks/silicaui-react/server`."
|
|
1173
|
+
}
|
|
1174
|
+
]
|
|
1175
|
+
},
|
|
1176
|
+
{
|
|
1177
|
+
"name": "SelectableCardProps",
|
|
1178
|
+
"extends": "extends Omit<React.InputHTMLAttributes<HTMLInputElement>, \"type\" | \"size\">",
|
|
1179
|
+
"members": [
|
|
1180
|
+
{
|
|
1181
|
+
"name": "type",
|
|
1182
|
+
"optional": true,
|
|
1183
|
+
"type": "\"radio\" | \"checkbox\"",
|
|
1184
|
+
"doc": "`\"radio\"` for a single-select group (shared `name`), `\"checkbox\"` for multi-select. Default `\"radio\"`."
|
|
1185
|
+
}
|
|
1186
|
+
]
|
|
1187
|
+
}
|
|
1188
|
+
],
|
|
1189
|
+
"usageExample": null
|
|
1190
|
+
},
|
|
1147
1191
|
{
|
|
1148
1192
|
"name": "Collapse",
|
|
1149
1193
|
"package": "@wizeworks/silicaui-react",
|
|
@@ -1164,7 +1208,7 @@
|
|
|
1164
1208
|
]
|
|
1165
1209
|
}
|
|
1166
1210
|
],
|
|
1167
|
-
"usageExample":
|
|
1211
|
+
"usageExample": "import { Collapse, CollapseTitle, CollapseContent } from \"@wizeworks/silicaui-react\";\r\nimport { Section } from \"../lib/Section\";\r\n\r\nconst FAQS = [\r\n { q: \"Can I change plans later?\", a: \"Yes — upgrade or downgrade anytime from Settings.\" },\r\n { q: \"Do you offer refunds?\", a: \"Full refund within 14 days, no questions asked.\" },\r\n { q: \"Is there a free trial?\", a: \"14 days on every paid plan, no card required.\" },\r\n];\r\n\r\nexport function CollapseDemo() {\r\n return (\r\n <>\r\n <Section title=\"Real use · FAQ (exclusive — one open at a time)\">\r\n <div className=\"flex max-w-md flex-col gap-2\">\r\n {FAQS.map((f, i) => (\r\n <Collapse key={f.q} name=\"faq\" open={i === 0}>\r\n <CollapseTitle>{f.q}</CollapseTitle>\r\n <CollapseContent>{f.a}</CollapseContent>\r\n </Collapse>\r\n ))}\r\n </div>\r\n </Section>\r\n\r\n <Section title=\"Ghost (borderless)\">\r\n <Collapse ghost className=\"max-w-md\">\r\n <CollapseTitle>Shipping details</CollapseTitle>\r\n <CollapseContent>Ships in 2–3 business days.</CollapseContent>\r\n </Collapse>\r\n </Section>\r\n </>\r\n );\r\n}"
|
|
1168
1212
|
},
|
|
1169
1213
|
{
|
|
1170
1214
|
"name": "Countdown",
|
|
@@ -1204,7 +1248,7 @@
|
|
|
1204
1248
|
]
|
|
1205
1249
|
}
|
|
1206
1250
|
],
|
|
1207
|
-
"usageExample":
|
|
1251
|
+
"usageExample": "import { useState } from \"react\";\r\nimport { Countdown } from \"@wizeworks/silicaui-react\";\r\nimport { Section } from \"../lib/Section\";\r\n\r\nexport function CountdownDemo() {\r\n const [target] = useState(() => Date.now() + 90 * 1000);\r\n\r\n return (\r\n <>\r\n <Section title=\"Real use · launch countdown (90s demo)\">\r\n <Countdown to={target} />\r\n </Section>\r\n\r\n <Section title=\"Selected units, plain style\">\r\n <Countdown to={target} units={[\"minutes\", \"seconds\"]} plain />\r\n </Section>\r\n </>\r\n );\r\n}"
|
|
1208
1252
|
},
|
|
1209
1253
|
{
|
|
1210
1254
|
"name": "Diff",
|
|
@@ -1250,7 +1294,7 @@
|
|
|
1250
1294
|
]
|
|
1251
1295
|
}
|
|
1252
1296
|
],
|
|
1253
|
-
"usageExample":
|
|
1297
|
+
"usageExample": "import { useState } from \"react\";\r\nimport { Diff } from \"@wizeworks/silicaui-react\";\r\nimport { Section } from \"../lib/Section\";\r\n\r\nfunction Panel({ label, color }: { label: string; color: string }) {\r\n return (\r\n <div\r\n className=\"flex h-full w-full items-center justify-center text-lg font-semibold text-white\"\r\n style={{ backgroundColor: color }}\r\n >\r\n {label}\r\n </div>\r\n );\r\n}\r\n\r\nexport function DiffDemo() {\r\n const [pos, setPos] = useState(50);\r\n\r\n return (\r\n <Section title=\"Real use · draggable before/after comparison\">\r\n <Diff\r\n className=\"max-w-lg\"\r\n style={{ aspectRatio: \"16 / 9\" }}\r\n position={pos}\r\n onPositionChange={setPos}\r\n before={<Panel label=\"Before\" color=\"#64748b\" />}\r\n after={<Panel label=\"After\" color=\"#6366f1\" />}\r\n />\r\n <p className=\"pt-2 text-xs opacity-60\">\r\n Split at {Math.round(pos)}% — drag the handle or use ←/→.\r\n </p>\r\n </Section>\r\n );\r\n}"
|
|
1254
1298
|
},
|
|
1255
1299
|
{
|
|
1256
1300
|
"name": "Kbd",
|
|
@@ -1272,14 +1316,14 @@
|
|
|
1272
1316
|
]
|
|
1273
1317
|
}
|
|
1274
1318
|
],
|
|
1275
|
-
"usageExample":
|
|
1319
|
+
"usageExample": "import { Kbd } from \"@wizeworks/silicaui-react\";\r\nimport { Section, Row } from \"../lib/Section\";\r\nimport { SIZES } from \"../lib/data\";\r\n\r\nexport function KbdDemo() {\r\n return (\r\n <>\r\n <Section title=\"Sizes\">\r\n <Row>\r\n {SIZES.map((size) => (\r\n <Kbd key={size} size={size}>\r\n {size}\r\n </Kbd>\r\n ))}\r\n </Row>\r\n </Section>\r\n\r\n <Section title=\"Real use · shortcuts inline\">\r\n <div className=\"flex flex-col gap-2 text-sm\">\r\n <p>\r\n Press <Kbd>⌘</Kbd> <Kbd>K</Kbd> to open the command palette.\r\n </p>\r\n <p>\r\n <Kbd>Ctrl</Kbd> + <Kbd>Shift</Kbd> + <Kbd>P</Kbd> on Windows.\r\n </p>\r\n <p>\r\n <Kbd>Esc</Kbd> to close any dialog.\r\n </p>\r\n </div>\r\n </Section>\r\n </>\r\n );\r\n}"
|
|
1276
1320
|
},
|
|
1277
1321
|
{
|
|
1278
1322
|
"name": "List",
|
|
1279
1323
|
"package": "@wizeworks/silicaui-react",
|
|
1280
1324
|
"category": "Data display",
|
|
1281
1325
|
"sourceFile": "silicaui-react/src/list.tsx",
|
|
1282
|
-
"description": "Silica List — a vertical list of rows. <List hover> <ListTitle>Team</ListTitle> <ListRow> <Avatar size=\"sm\">AL</Avatar> <ListColGrow> <div className=\"font-medium\">Ada Lovelace</div> <div className=\"text-sm
|
|
1326
|
+
"description": "Silica List — a vertical list of rows. <List hover> <ListTitle>Team</ListTitle> <ListRow> <Avatar size=\"sm\">AL</Avatar> <ListColGrow> <div className=\"font-medium\">Ada Lovelace</div> <div className=\"text-sm\">Owner</div> </ListColGrow> <Button size=\"sm\" variant=\"ghost\">Manage</Button> </ListRow> </List>",
|
|
1283
1327
|
"props": [
|
|
1284
1328
|
{
|
|
1285
1329
|
"name": "ListProps",
|
|
@@ -1306,7 +1350,7 @@
|
|
|
1306
1350
|
"members": []
|
|
1307
1351
|
}
|
|
1308
1352
|
],
|
|
1309
|
-
"usageExample":
|
|
1353
|
+
"usageExample": "import { List, ListRow, ListColGrow, ListTitle, Avatar, Button } from \"@wizeworks/silicaui-react\";\r\nimport { Section } from \"../lib/Section\";\r\n\r\nconst MEMBERS = [\r\n { initials: \"AL\", name: \"Ada Lovelace\", role: \"Owner\" },\r\n { initials: \"GH\", name: \"Grace Hopper\", role: \"Admin\" },\r\n { initials: \"AT\", name: \"Alan Turing\", role: \"Member\" },\r\n];\r\n\r\nexport function ListDemo() {\r\n return (\r\n <Section title=\"Real use · team member list\">\r\n <List hover className=\"max-w-md\">\r\n <ListTitle>Team</ListTitle>\r\n {MEMBERS.map((m) => (\r\n <ListRow key={m.initials}>\r\n <Avatar color=\"primary\" size=\"sm\" alt={m.name}>\r\n {m.initials}\r\n </Avatar>\r\n <ListColGrow>\r\n <div className=\"font-medium\">{m.name}</div>\r\n <div className=\"text-sm opacity-60\">{m.role}</div>\r\n </ListColGrow>\r\n <Button size=\"sm\" variant=\"ghost\" color=\"neutral\">\r\n Manage\r\n </Button>\r\n </ListRow>\r\n ))}\r\n </List>\r\n </Section>\r\n );\r\n}"
|
|
1310
1354
|
},
|
|
1311
1355
|
{
|
|
1312
1356
|
"name": "MetadataList",
|
|
@@ -1357,7 +1401,7 @@
|
|
|
1357
1401
|
]
|
|
1358
1402
|
}
|
|
1359
1403
|
],
|
|
1360
|
-
"usageExample":
|
|
1404
|
+
"usageExample": "import { MetadataList, MetadataItem, Badge, Avatar } from \"@wizeworks/silicaui-react\";\r\nimport { Section, Row } from \"../lib/Section\";\r\n\r\nexport function MetadataListDemo() {\r\n return (\r\n <>\r\n <Section title=\"Real use · project detail panel\">\r\n <div className=\"max-w-sm rounded-box border border-base-300 p-4\">\r\n <MetadataList>\r\n <MetadataItem label=\"Status\">\r\n <Badge color=\"success\" variant=\"soft\">\r\n Active\r\n </Badge>\r\n </MetadataItem>\r\n <MetadataItem label=\"Owner\">\r\n <div className=\"flex items-center justify-end gap-2\">\r\n <Avatar size=\"xs\" alt=\"Ada Lovelace\" color=\"primary\">\r\n AL\r\n </Avatar>\r\n Ada Lovelace\r\n </div>\r\n </MetadataItem>\r\n <MetadataItem label=\"Created\">Jan 1, 2026</MetadataItem>\r\n <MetadataItem label=\"Last updated\">2 hours ago</MetadataItem>\r\n <MetadataItem label=\"Repository\">wizeworks/silicaui</MetadataItem>\r\n </MetadataList>\r\n </div>\r\n </Section>\r\n\r\n <Section title=\"layout="stack" · label above value, for narrow cards\">\r\n <Row>\r\n <div className=\"w-56 rounded-box border border-base-300 p-4\">\r\n <MetadataList layout=\"stack\">\r\n <MetadataItem label=\"Plan\">Pro</MetadataItem>\r\n <MetadataItem label=\"Seats\">12 / 20</MetadataItem>\r\n <MetadataItem label=\"Renews\">Aug 1, 2026</MetadataItem>\r\n </MetadataList>\r\n </div>\r\n </Row>\r\n </Section>\r\n </>\r\n );\r\n}"
|
|
1361
1405
|
},
|
|
1362
1406
|
{
|
|
1363
1407
|
"name": "Meter",
|
|
@@ -1421,7 +1465,7 @@
|
|
|
1421
1465
|
]
|
|
1422
1466
|
}
|
|
1423
1467
|
],
|
|
1424
|
-
"usageExample":
|
|
1468
|
+
"usageExample": "import { Meter } from \"@wizeworks/silicaui-react\";\r\nimport { Section } from \"../lib/Section\";\r\nimport { COLORS, SIZES } from \"../lib/data\";\r\n\r\nexport function MeterDemo() {\r\n return (\r\n <>\r\n <Section title=\"Colors\">\r\n <div className=\"grid max-w-md gap-4\">\r\n {COLORS.slice(0, 6).map((color) => (\r\n <Meter key={color} color={color} value={65} label={color} showValue />\r\n ))}\r\n </div>\r\n </Section>\r\n\r\n <Section title=\"Sizes\">\r\n <div className=\"flex max-w-md flex-col gap-3\">\r\n {SIZES.map((size) => (\r\n <Meter key={size} color=\"primary\" size={size} value={60} />\r\n ))}\r\n </div>\r\n </Section>\r\n\r\n <Section title=\"Real use · gauges\">\r\n <div className=\"grid max-w-md gap-4\">\r\n <Meter color=\"warning\" value={92} label=\"Storage used\" showValue />\r\n <Meter color=\"success\" value={78} label=\"Battery\" showValue />\r\n <Meter color=\"error\" value={12} min={0} max={100} label=\"Credit score risk\" showValue />\r\n </div>\r\n </Section>\r\n </>\r\n );\r\n}"
|
|
1425
1469
|
},
|
|
1426
1470
|
{
|
|
1427
1471
|
"name": "MockupBrowser",
|
|
@@ -1768,6 +1812,44 @@
|
|
|
1768
1812
|
]
|
|
1769
1813
|
}
|
|
1770
1814
|
],
|
|
1815
|
+
"usageExample": "import { PreviewCard, Link, Avatar } from \"@wizeworks/silicaui-react\";\r\nimport { Section } from \"../lib/Section\";\r\n\r\nexport function PreviewCardDemo() {\r\n return (\r\n <Section title=\"Real use · hover a link to preview the profile\">\r\n <p className=\"max-w-md text-sm\">\r\n Reviewed by{\" \"}\r\n <PreviewCard\r\n content={\r\n <div className=\"flex items-center gap-3\">\r\n <Avatar color=\"primary\" alt=\"Ada Lovelace\">\r\n AL\r\n </Avatar>\r\n <div>\r\n <div className=\"font-medium\">Ada Lovelace</div>\r\n <div className=\"text-xs opacity-60\">\r\n Founding engineer · @ada\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n arrow\r\n >\r\n <Link href=\"#\" color=\"primary\">\r\n @ada\r\n </Link>\r\n </PreviewCard>{\" \"}\r\n on the pull request.\r\n </p>\r\n </Section>\r\n );\r\n}"
|
|
1816
|
+
},
|
|
1817
|
+
{
|
|
1818
|
+
"name": "SelectableCard",
|
|
1819
|
+
"package": "@wizeworks/silicaui-react",
|
|
1820
|
+
"category": "Data display",
|
|
1821
|
+
"sourceFile": "silicaui-react/src/card.tsx",
|
|
1822
|
+
"description": "A `Card` that's a selectable option tile — a real `<input type=\"radio\">` / `<input type=\"checkbox\">`, visually hidden, wrapped in a `<label>` so the whole card is the click target. Selection reads as a border + ring in the theme's primary color — no checkbox/radio glyph. Group several with the same `name` for single-select; use `type=\"checkbox\"` for multi-select. <SelectableCard name=\"plan\" value=\"pro\" defaultChecked> <CardTitle>Pro</CardTitle> <p>For growing teams.</p> </SelectableCard>",
|
|
1823
|
+
"props": [
|
|
1824
|
+
{
|
|
1825
|
+
"name": "CardProps",
|
|
1826
|
+
"members": []
|
|
1827
|
+
},
|
|
1828
|
+
{
|
|
1829
|
+
"name": "ClickableCardProps",
|
|
1830
|
+
"extends": "extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, \"type\">",
|
|
1831
|
+
"members": [
|
|
1832
|
+
{
|
|
1833
|
+
"name": "render",
|
|
1834
|
+
"optional": true,
|
|
1835
|
+
"type": "React.ReactElement",
|
|
1836
|
+
"doc": "Render as a different element (e.g. an anchor) while keeping Card's classes and interaction styles. Mirrors Base UI's `render` composition. <ClickableCard render={<a href=\"/projects/silica\" />}>…</ClickableCard> CLIENT COMPONENTS ONLY — from a React Server Component the element loses its props crossing the `\"use client\"` boundary. Style the element directly instead: `clickableCardClasses()` from `@wizeworks/silicaui-react/server`."
|
|
1837
|
+
}
|
|
1838
|
+
]
|
|
1839
|
+
},
|
|
1840
|
+
{
|
|
1841
|
+
"name": "SelectableCardProps",
|
|
1842
|
+
"extends": "extends Omit<React.InputHTMLAttributes<HTMLInputElement>, \"type\" | \"size\">",
|
|
1843
|
+
"members": [
|
|
1844
|
+
{
|
|
1845
|
+
"name": "type",
|
|
1846
|
+
"optional": true,
|
|
1847
|
+
"type": "\"radio\" | \"checkbox\"",
|
|
1848
|
+
"doc": "`\"radio\"` for a single-select group (shared `name`), `\"checkbox\"` for multi-select. Default `\"radio\"`."
|
|
1849
|
+
}
|
|
1850
|
+
]
|
|
1851
|
+
}
|
|
1852
|
+
],
|
|
1771
1853
|
"usageExample": null
|
|
1772
1854
|
},
|
|
1773
1855
|
{
|
|
@@ -1795,7 +1877,7 @@
|
|
|
1795
1877
|
"members": []
|
|
1796
1878
|
}
|
|
1797
1879
|
],
|
|
1798
|
-
"usageExample":
|
|
1880
|
+
"usageExample": "import {\r\n Stats,\r\n Stat,\r\n StatTitle,\r\n StatValue,\r\n StatDesc,\r\n StatFigure,\r\n} from \"@wizeworks/silicaui-react\";\r\nimport { Section } from \"../lib/Section\";\r\nimport { UserIcon } from \"../lib/icons\";\r\n\r\nexport function StatDemo() {\r\n return (\r\n <>\r\n <Section title=\"Real use · dashboard KPIs\">\r\n <Stats>\r\n <Stat>\r\n <StatFigure>\r\n <UserIcon />\r\n </StatFigure>\r\n <StatTitle>New users</StatTitle>\r\n <StatValue>1,204</StatValue>\r\n <StatDesc>↗︎ 3.2% this month</StatDesc>\r\n </Stat>\r\n <Stat>\r\n <StatTitle>Revenue</StatTitle>\r\n <StatValue>$14,300</StatValue>\r\n <StatDesc>↗︎ 12.4% this month</StatDesc>\r\n </Stat>\r\n <Stat>\r\n <StatTitle>Churn</StatTitle>\r\n <StatValue>1.8%</StatValue>\r\n <StatDesc>↘︎ 0.6% this month</StatDesc>\r\n </Stat>\r\n </Stats>\r\n </Section>\r\n\r\n <Section title=\"Vertical layout\">\r\n <Stats vertical className=\"max-w-xs\">\r\n <Stat>\r\n <StatTitle>Storage used</StatTitle>\r\n <StatValue>72 GB</StatValue>\r\n <StatDesc>of 100 GB</StatDesc>\r\n </Stat>\r\n <Stat>\r\n <StatTitle>Bandwidth</StatTitle>\r\n <StatValue>1.2 TB</StatValue>\r\n <StatDesc>this billing cycle</StatDesc>\r\n </Stat>\r\n </Stats>\r\n </Section>\r\n\r\n <Section title=\"Glass · KPI band over a colored hero\">\r\n <div\r\n className=\"rounded-box p-8\"\r\n style={{\r\n backgroundImage:\r\n \"linear-gradient(135deg, var(--color-primary), var(--color-accent), var(--color-secondary))\",\r\n }}\r\n >\r\n <Stats className=\"glass\">\r\n <Stat>\r\n <StatFigure>\r\n <UserIcon />\r\n </StatFigure>\r\n <StatTitle>New users</StatTitle>\r\n <StatValue>1,204</StatValue>\r\n <StatDesc>↗︎ 3.2% this month</StatDesc>\r\n </Stat>\r\n <Stat>\r\n <StatTitle>Revenue</StatTitle>\r\n <StatValue>$14,300</StatValue>\r\n <StatDesc>↗︎ 12.4% this month</StatDesc>\r\n </Stat>\r\n <Stat>\r\n <StatTitle>Churn</StatTitle>\r\n <StatValue>1.8%</StatValue>\r\n <StatDesc>↘︎ 0.6% this month</StatDesc>\r\n </Stat>\r\n </Stats>\r\n </div>\r\n </Section>\r\n </>\r\n );\r\n}"
|
|
1799
1881
|
},
|
|
1800
1882
|
{
|
|
1801
1883
|
"name": "Table",
|
|
@@ -1835,7 +1917,7 @@
|
|
|
1835
1917
|
]
|
|
1836
1918
|
}
|
|
1837
1919
|
],
|
|
1838
|
-
"usageExample":
|
|
1920
|
+
"usageExample": "import { Table, Badge } from \"@wizeworks/silicaui-react\";\r\nimport { Section } from \"../lib/Section\";\r\n\r\nconst ROWS = [\r\n { name: \"Ada Lovelace\", role: \"Engineer\", status: \"Active\" as const },\r\n { name: \"Grace Hopper\", role: \"Admin\", status: \"Active\" as const },\r\n { name: \"Alan Turing\", role: \"Engineer\", status: \"Away\" as const },\r\n];\r\n\r\nexport function TableDemo() {\r\n return (\r\n <>\r\n <Section title=\"Real use · team table\">\r\n <Table zebra hover className=\"max-w-xl\">\r\n <thead>\r\n <tr>\r\n <th>Name</th>\r\n <th>Role</th>\r\n <th>Status</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {ROWS.map((r) => (\r\n <tr key={r.name}>\r\n <td>{r.name}</td>\r\n <td>{r.role}</td>\r\n <td>\r\n <Badge\r\n color={r.status === \"Active\" ? \"success\" : \"warning\"}\r\n variant=\"soft\"\r\n >\r\n {r.status}\r\n </Badge>\r\n </td>\r\n </tr>\r\n ))}\r\n </tbody>\r\n </Table>\r\n </Section>\r\n\r\n <Section title=\"Sizes\">\r\n <div className=\"flex max-w-xl flex-col gap-4\">\r\n {([\"xs\", \"sm\", \"md\", \"lg\"] as const).map((size) => (\r\n <Table key={size} size={size} zebra>\r\n <thead>\r\n <tr>\r\n <th>Size</th>\r\n <th>Value</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr>\r\n <td>{size}</td>\r\n <td>Row height scales with density</td>\r\n </tr>\r\n </tbody>\r\n </Table>\r\n ))}\r\n </div>\r\n </Section>\r\n </>\r\n );\r\n}"
|
|
1839
1921
|
},
|
|
1840
1922
|
{
|
|
1841
1923
|
"name": "Timeline",
|
|
@@ -1881,7 +1963,7 @@
|
|
|
1881
1963
|
]
|
|
1882
1964
|
}
|
|
1883
1965
|
],
|
|
1884
|
-
"usageExample":
|
|
1966
|
+
"usageExample": "import {\r\n Timeline,\r\n TimelineItem,\r\n TimelineStart,\r\n TimelineMiddle,\r\n TimelineEnd,\r\n} from \"@wizeworks/silicaui-react\";\r\nimport { Section } from \"../lib/Section\";\r\n\r\nexport function TimelineDemo() {\r\n return (\r\n <>\r\n <Section title=\"Real use · company milestones\">\r\n <Timeline className=\"max-w-md\">\r\n <TimelineItem>\r\n <TimelineStart>2021</TimelineStart>\r\n <TimelineMiddle />\r\n <TimelineEnd box>Founded</TimelineEnd>\r\n </TimelineItem>\r\n <TimelineItem>\r\n <TimelineStart>2023</TimelineStart>\r\n <TimelineMiddle />\r\n <TimelineEnd box>Seed round closed</TimelineEnd>\r\n </TimelineItem>\r\n <TimelineItem>\r\n <TimelineStart>2026</TimelineStart>\r\n <TimelineMiddle />\r\n <TimelineEnd box>Shipped 1.0</TimelineEnd>\r\n </TimelineItem>\r\n </Timeline>\r\n </Section>\r\n\r\n <Section title=\"Horizontal\">\r\n <Timeline orientation=\"horizontal\" className=\"max-w-lg\">\r\n <TimelineItem>\r\n <TimelineStart>Cart</TimelineStart>\r\n <TimelineMiddle />\r\n </TimelineItem>\r\n <TimelineItem>\r\n <TimelineStart>Shipping</TimelineStart>\r\n <TimelineMiddle />\r\n </TimelineItem>\r\n <TimelineItem>\r\n <TimelineStart>Payment</TimelineStart>\r\n <TimelineMiddle />\r\n </TimelineItem>\r\n </Timeline>\r\n </Section>\r\n </>\r\n );\r\n}"
|
|
1885
1967
|
},
|
|
1886
1968
|
{
|
|
1887
1969
|
"name": "Timestamp",
|
|
@@ -1921,7 +2003,7 @@
|
|
|
1921
2003
|
]
|
|
1922
2004
|
}
|
|
1923
2005
|
],
|
|
1924
|
-
"usageExample":
|
|
2006
|
+
"usageExample": "import { Timestamp } from \"@wizeworks/silicaui-react\";\r\nimport { Section, Stack } from \"../lib/Section\";\r\n\r\nconst now = Date.now();\r\nconst MIN = 60_000;\r\nconst HOUR = 60 * MIN;\r\nconst DAY = 24 * HOUR;\r\n\r\nexport function TimestampDemo() {\r\n return (\r\n <>\r\n <Section title=\"Auto (relative within 24h, absolute beyond)\">\r\n <Stack>\r\n <p>\r\n Just now — <Timestamp value={now - 30_000} />\r\n </p>\r\n <p>\r\n 5 minutes ago — <Timestamp value={now - 5 * MIN} />\r\n </p>\r\n <p>\r\n 3 hours ago — <Timestamp value={now - 3 * HOUR} />\r\n </p>\r\n <p>\r\n 2 days ago — <Timestamp value={now - 2 * DAY} />\r\n </p>\r\n <p>\r\n 2 months ago — <Timestamp value={now - 60 * DAY} />\r\n </p>\r\n </Stack>\r\n </Section>\r\n\r\n <Section title=\"Forced format\">\r\n <Stack>\r\n <p>\r\n Relative — <Timestamp value={now - 3 * DAY} format=\"relative\" />\r\n </p>\r\n <p>\r\n Absolute — <Timestamp value={now - 3 * DAY} format=\"absolute\" />\r\n </p>\r\n </Stack>\r\n </Section>\r\n </>\r\n );\r\n}"
|
|
1925
2007
|
},
|
|
1926
2008
|
{
|
|
1927
2009
|
"name": "Autocomplete",
|
|
@@ -2197,18 +2279,18 @@
|
|
|
2197
2279
|
]
|
|
2198
2280
|
}
|
|
2199
2281
|
],
|
|
2200
|
-
"usageExample": null
|
|
2282
|
+
"usageExample": "import { useState } from \"react\";\r\nimport {\r\n Calendar,\r\n DatePicker,\r\n DateRangePicker,\r\n} from \"@wizeworks/silicaui-react\";\r\nimport type { DateRange } from \"@wizeworks/silicaui-react\";\r\nimport { Section, Row } from \"../lib/Section\";\r\nimport { COLORS } from \"../lib/data\";\r\n\r\nexport function CalendarDemo() {\r\n const [date, setDate] = useState<Date | null>(new Date(2026, 6, 14));\r\n const [pickedDate, setPickedDate] = useState<Date | null>(null);\r\n const [range, setRange] = useState<DateRange>({ start: null, end: null });\r\n\r\n return (\r\n <>\r\n <Section title=\"Colors (inline)\">\r\n <Row>\r\n {COLORS.slice(0, 3).map((color) => (\r\n <Calendar\r\n key={color}\r\n color={color}\r\n value={date}\r\n onValueChange={(v) => setDate(v as Date)}\r\n />\r\n ))}\r\n </Row>\r\n </Section>\r\n\r\n <Section title=\"Real use · date + range pickers\">\r\n <Row>\r\n <DatePicker\r\n color=\"primary\"\r\n value={pickedDate}\r\n onValueChange={setPickedDate}\r\n placeholder=\"Pick a date\"\r\n />\r\n <DateRangePicker\r\n color=\"primary\"\r\n value={range}\r\n onValueChange={setRange}\r\n placeholder=\"Pick a range\"\r\n />\r\n </Row>\r\n </Section>\r\n </>\r\n );\r\n}"
|
|
2201
2283
|
},
|
|
2202
2284
|
{
|
|
2203
2285
|
"name": "Checkbox",
|
|
2204
2286
|
"package": "@wizeworks/silicaui-react",
|
|
2205
2287
|
"category": "Data input",
|
|
2206
2288
|
"sourceFile": "silicaui-react/src/checkbox.tsx",
|
|
2207
|
-
"description": "Silica Checkbox — a restyled native `<input type=\"checkbox\">`. All native attributes (`checked`, `defaultChecked`, `onChange`, `disabled`, …) pass through.
|
|
2289
|
+
"description": "Silica Checkbox — a restyled native `<input type=\"checkbox\">`. All native attributes (`checked`, `defaultChecked`, `onChange`, `disabled`, …) pass through. <Checkbox /> // bare; pair with your own <label htmlFor> <Checkbox>Run tests</Checkbox> // captioned; the whole row is clickable",
|
|
2208
2290
|
"props": [
|
|
2209
2291
|
{
|
|
2210
2292
|
"name": "CheckboxProps",
|
|
2211
|
-
"extends": "extends Omit<\n React.InputHTMLAttributes<HTMLInputElement>,\n \"size\" | \"color\" | \"type\"\n >",
|
|
2293
|
+
"extends": "extends Omit<\r\n React.InputHTMLAttributes<HTMLInputElement>,\r\n \"size\" | \"color\" | \"type\"\r\n >",
|
|
2212
2294
|
"members": [
|
|
2213
2295
|
{
|
|
2214
2296
|
"name": "color",
|
|
@@ -2221,11 +2303,17 @@
|
|
|
2221
2303
|
"optional": true,
|
|
2222
2304
|
"type": "SilicaSize",
|
|
2223
2305
|
"doc": "Default `md`."
|
|
2306
|
+
},
|
|
2307
|
+
{
|
|
2308
|
+
"name": "children",
|
|
2309
|
+
"optional": true,
|
|
2310
|
+
"type": "React.ReactNode",
|
|
2311
|
+
"doc": "Caption. Wraps the control in a `<label>` so the text is a click target."
|
|
2224
2312
|
}
|
|
2225
2313
|
]
|
|
2226
2314
|
}
|
|
2227
2315
|
],
|
|
2228
|
-
"usageExample":
|
|
2316
|
+
"usageExample": "import { useState } from \"react\";\r\nimport { Checkbox } from \"@wizeworks/silicaui-react\";\r\nimport { Section } from \"../lib/Section\";\r\nimport { ColorVariantSizeGrid } from \"../lib/ColorGrid\";\r\n\r\nconst TASKS = [\"Write the announcement\", \"Add screenshots\", \"Ping the design team\"];\r\n\r\nexport function CheckboxDemo() {\r\n const [done, setDone] = useState<Record<string, boolean>>({\r\n \"Write the announcement\": true,\r\n });\r\n\r\n return (\r\n <>\r\n <ColorVariantSizeGrid\r\n Component={Checkbox}\r\n render={({ color, size }) => (\r\n <label className=\"flex items-center gap-2 text-sm\">\r\n <Checkbox color={color} size={size} defaultChecked />\r\n {color ?? size}\r\n </label>\r\n )}\r\n />\r\n\r\n <Section title=\"Real use · launch checklist\">\r\n <div className=\"flex flex-col gap-2\">\r\n {TASKS.map((task) => (\r\n <label key={task} className=\"flex items-center gap-2 text-sm\">\r\n <Checkbox\r\n color=\"primary\"\r\n checked={!!done[task]}\r\n onChange={(e) =>\r\n setDone((p) => ({ ...p, [task]: e.target.checked }))\r\n }\r\n />\r\n <span className={done[task] ? \"line-through opacity-50\" : \"\"}>\r\n {task}\r\n </span>\r\n </label>\r\n ))}\r\n </div>\r\n </Section>\r\n </>\r\n );\r\n}"
|
|
2229
2317
|
},
|
|
2230
2318
|
{
|
|
2231
2319
|
"name": "CheckboxGroup",
|
|
@@ -2313,6 +2401,94 @@
|
|
|
2313
2401
|
]
|
|
2314
2402
|
}
|
|
2315
2403
|
],
|
|
2404
|
+
"usageExample": "import { useState } from \"react\";\r\nimport { CheckboxGroup, CheckboxOption } from \"@wizeworks/silicaui-react\";\r\nimport { Section } from \"../lib/Section\";\r\n\r\nexport function CheckboxGroupDemo() {\r\n const [channels, setChannels] = useState<string[]>([\"email\", \"push\"]);\r\n\r\n return (\r\n <>\r\n <Section title=\"Real use · notification channels\">\r\n <CheckboxGroup value={channels} onValueChange={setChannels} color=\"primary\">\r\n <CheckboxOption value=\"email\">Email</CheckboxOption>\r\n <CheckboxOption value=\"push\">Push</CheckboxOption>\r\n <CheckboxOption value=\"sms\">SMS</CheckboxOption>\r\n </CheckboxGroup>\r\n <p className=\"pt-2 text-xs opacity-60\">\r\n Selected: {channels.join(\", \") || \"none\"}\r\n </p>\r\n </Section>\r\n\r\n <Section title=\"Horizontal\">\r\n <CheckboxGroup defaultValue={[\"mon\", \"wed\", \"fri\"]} orientation=\"horizontal\" color=\"primary\">\r\n <CheckboxOption value=\"mon\">Mon</CheckboxOption>\r\n <CheckboxOption value=\"wed\">Wed</CheckboxOption>\r\n <CheckboxOption value=\"fri\">Fri</CheckboxOption>\r\n </CheckboxGroup>\r\n </Section>\r\n </>\r\n );\r\n}"
|
|
2405
|
+
},
|
|
2406
|
+
{
|
|
2407
|
+
"name": "CheckboxOption",
|
|
2408
|
+
"package": "@wizeworks/silicaui-react",
|
|
2409
|
+
"category": "Data input",
|
|
2410
|
+
"sourceFile": "silicaui-react/src/checkbox-group.tsx",
|
|
2411
|
+
"description": "One labeled checkbox within a CheckboxGroup.",
|
|
2412
|
+
"props": [
|
|
2413
|
+
{
|
|
2414
|
+
"name": "CheckboxGroupProps",
|
|
2415
|
+
"extends": "extends Omit<React.HTMLAttributes<HTMLDivElement>, \"onChange\" | \"defaultValue\">",
|
|
2416
|
+
"members": [
|
|
2417
|
+
{
|
|
2418
|
+
"name": "value",
|
|
2419
|
+
"optional": true,
|
|
2420
|
+
"type": "string[]",
|
|
2421
|
+
"doc": "Controlled array of checked values."
|
|
2422
|
+
},
|
|
2423
|
+
{
|
|
2424
|
+
"name": "defaultValue",
|
|
2425
|
+
"optional": true,
|
|
2426
|
+
"type": "string[]",
|
|
2427
|
+
"doc": "Uncontrolled initial checked values."
|
|
2428
|
+
},
|
|
2429
|
+
{
|
|
2430
|
+
"name": "onValueChange",
|
|
2431
|
+
"optional": true,
|
|
2432
|
+
"type": "(value: string[]) => void",
|
|
2433
|
+
"doc": "Fires with the new array of checked values."
|
|
2434
|
+
},
|
|
2435
|
+
{
|
|
2436
|
+
"name": "orientation",
|
|
2437
|
+
"optional": true,
|
|
2438
|
+
"type": "CheckboxGroupOrientation",
|
|
2439
|
+
"doc": "Stack (`vertical`, default) or row (`horizontal`)."
|
|
2440
|
+
},
|
|
2441
|
+
{
|
|
2442
|
+
"name": "disabled",
|
|
2443
|
+
"optional": true,
|
|
2444
|
+
"type": "boolean",
|
|
2445
|
+
"doc": "Disable every option."
|
|
2446
|
+
},
|
|
2447
|
+
{
|
|
2448
|
+
"name": "color",
|
|
2449
|
+
"optional": true,
|
|
2450
|
+
"type": "SilicaColor",
|
|
2451
|
+
"doc": "Default accent color for the options."
|
|
2452
|
+
},
|
|
2453
|
+
{
|
|
2454
|
+
"name": "size",
|
|
2455
|
+
"optional": true,
|
|
2456
|
+
"type": "SilicaSize",
|
|
2457
|
+
"doc": "Default size for the options."
|
|
2458
|
+
}
|
|
2459
|
+
]
|
|
2460
|
+
},
|
|
2461
|
+
{
|
|
2462
|
+
"name": "CheckboxOptionProps",
|
|
2463
|
+
"extends": "extends Omit<React.LabelHTMLAttributes<HTMLLabelElement>, \"onChange\">",
|
|
2464
|
+
"members": [
|
|
2465
|
+
{
|
|
2466
|
+
"name": "value",
|
|
2467
|
+
"optional": false,
|
|
2468
|
+
"type": "string",
|
|
2469
|
+
"doc": "This option's value."
|
|
2470
|
+
},
|
|
2471
|
+
{
|
|
2472
|
+
"name": "disabled",
|
|
2473
|
+
"optional": true,
|
|
2474
|
+
"type": "boolean",
|
|
2475
|
+
"doc": ""
|
|
2476
|
+
},
|
|
2477
|
+
{
|
|
2478
|
+
"name": "color",
|
|
2479
|
+
"optional": true,
|
|
2480
|
+
"type": "SilicaColor",
|
|
2481
|
+
"doc": ""
|
|
2482
|
+
},
|
|
2483
|
+
{
|
|
2484
|
+
"name": "size",
|
|
2485
|
+
"optional": true,
|
|
2486
|
+
"type": "SilicaSize",
|
|
2487
|
+
"doc": ""
|
|
2488
|
+
}
|
|
2489
|
+
]
|
|
2490
|
+
}
|
|
2491
|
+
],
|
|
2316
2492
|
"usageExample": null
|
|
2317
2493
|
},
|
|
2318
2494
|
{
|
|
@@ -2371,7 +2547,7 @@
|
|
|
2371
2547
|
]
|
|
2372
2548
|
}
|
|
2373
2549
|
],
|
|
2374
|
-
"usageExample":
|
|
2550
|
+
"usageExample": "import { useState } from \"react\";\r\nimport { ColorPicker, Button } from \"@wizeworks/silicaui-react\";\r\nimport { Section, Row } from \"../lib/Section\";\r\n\r\nexport function ColorPickerDemo() {\r\n const [brand, setBrand] = useState(\"oklch(0.62 0.19 29)\");\r\n const [accent, setAccent] = useState(\"#22c55e\");\r\n\r\n return (\r\n <>\r\n <Section title=\"Real use · brand color picker\">\r\n <div className=\"flex flex-col items-start gap-3\">\r\n <ColorPicker value={brand} onValueChange={(v) => setBrand(v)} />\r\n <Button style={{ backgroundColor: brand, borderColor: brand, color: \"#fff\" }}>\r\n Preview button\r\n </Button>\r\n </div>\r\n </Section>\r\n\r\n <Section title=\"variant="swatch" · compact chip, opens the same panel in a popover\">\r\n <Row>\r\n <ColorPicker\r\n variant=\"swatch\"\r\n value={accent}\r\n format=\"hex\"\r\n onValueChange={(v) => setAccent(v)}\r\n />\r\n <span\r\n className=\"text-sm\"\r\n style={{ color: \"var(--color-base-content)\" }}\r\n >\r\n {accent}\r\n </span>\r\n <ColorPicker variant=\"swatch\" disabled defaultValue=\"oklch(0.55 0.2 280)\" />\r\n </Row>\r\n </Section>\r\n </>\r\n );\r\n}"
|
|
2375
2551
|
},
|
|
2376
2552
|
{
|
|
2377
2553
|
"name": "Combobox",
|
|
@@ -2548,7 +2724,7 @@
|
|
|
2548
2724
|
]
|
|
2549
2725
|
}
|
|
2550
2726
|
],
|
|
2551
|
-
"usageExample": null
|
|
2727
|
+
"usageExample": "import { useState } from \"react\";\r\nimport { Combobox } from \"@wizeworks/silicaui-react\";\r\nimport { Section, Row } from \"../lib/Section\";\r\n\r\nconst US_STATES = [\r\n \"Alabama\", \"Alaska\", \"Arizona\", \"Arkansas\", \"California\", \"Colorado\",\r\n \"Connecticut\", \"Delaware\", \"Florida\", \"Georgia\", \"Hawaii\", \"Idaho\",\r\n \"Illinois\", \"Indiana\", \"Iowa\", \"Kansas\", \"Kentucky\", \"Louisiana\",\r\n];\r\n\r\nconst DOC_SUGGESTIONS = [\r\n \"Getting started\", \"Installation\", \"Theming\", \"Color tokens\",\r\n \"Dark mode\", \"Components\", \"Button\", \"Select\", \"Combobox\",\r\n \"Form validation\", \"Accessibility\", \"Migration guide\",\r\n];\r\n\r\nexport function ComboboxDemo() {\r\n const [usState, setUsState] = useState<string | null>(null);\r\n const [docQuery, setDocQuery] = useState(\"\");\r\n\r\n return (\r\n <>\r\n <Section title=\"Real use · searchable state picker\">\r\n <Combobox\r\n items={US_STATES}\r\n value={usState}\r\n onValueChange={(v) => setUsState(v as string | null)}\r\n placeholder=\"Search states…\"\r\n color=\"primary\"\r\n />\r\n </Section>\r\n\r\n <Section title=\"Docs search (no clear button)\">\r\n <Combobox\r\n items={DOC_SUGGESTIONS}\r\n value={docQuery || null}\r\n onValueChange={(v) => setDocQuery((v as string) ?? \"\")}\r\n placeholder=\"Search docs…\"\r\n clearable={false}\r\n />\r\n </Section>\r\n\r\n <Section title=\"Sizes\">\r\n <Row>\r\n {([\"sm\", \"md\", \"lg\"] as const).map((size) => (\r\n <Combobox key={size} items={[\"A\", \"B\", \"C\"]} size={size} placeholder={size} />\r\n ))}\r\n </Row>\r\n </Section>\r\n </>\r\n );\r\n}"
|
|
2552
2728
|
},
|
|
2553
2729
|
{
|
|
2554
2730
|
"name": "DateInput",
|
|
@@ -2706,7 +2882,7 @@
|
|
|
2706
2882
|
]
|
|
2707
2883
|
}
|
|
2708
2884
|
],
|
|
2709
|
-
"usageExample": null
|
|
2885
|
+
"usageExample": "import { useState } from \"react\";\r\nimport { DateInput, DateRangeInput } from \"@wizeworks/silicaui-react\";\r\nimport { Section, Row } from \"../lib/Section\";\r\n\r\nexport function DateInputDemo() {\r\n const [date, setDate] = useState<Date | null>(new Date(2026, 6, 8));\r\n const [range, setRange] = useState<{ start: Date | null; end: Date | null }>({\r\n start: null,\r\n end: null,\r\n });\r\n\r\n return (\r\n <>\r\n <Section title=\"Real use · typeable date field (type digits or paste)\">\r\n <DateInput value={date} onValueChange={setDate} color=\"primary\" />\r\n <p className=\"mt-2 text-sm opacity-70\">\r\n {date ? date.toDateString() : \"No date\"}\r\n </p>\r\n </Section>\r\n\r\n <Section title=\"Locale-driven segment order (en-US vs en-GB vs de-DE)\">\r\n <Row>\r\n <DateInput locale=\"en-US\" defaultValue={new Date(2026, 6, 8)} />\r\n <DateInput locale=\"en-GB\" defaultValue={new Date(2026, 6, 8)} />\r\n <DateInput locale=\"de-DE\" defaultValue={new Date(2026, 6, 8)} />\r\n </Row>\r\n </Section>\r\n\r\n <Section title=\"DateRangeInput\">\r\n <DateRangeInput value={range} onValueChange={setRange} />\r\n <p className=\"mt-2 text-sm opacity-70\">\r\n {range.start ? range.start.toDateString() : \"…\"} —{\" \"}\r\n {range.end ? range.end.toDateString() : \"…\"}\r\n </p>\r\n </Section>\r\n\r\n <Section title=\"Sizes / disabled\">\r\n <Row>\r\n <DateInput size=\"sm\" defaultValue={new Date(2026, 6, 8)} />\r\n <DateInput size=\"md\" defaultValue={new Date(2026, 6, 8)} />\r\n <DateInput size=\"lg\" defaultValue={new Date(2026, 6, 8)} />\r\n <DateInput disabled defaultValue={new Date(2026, 6, 8)} />\r\n </Row>\r\n </Section>\r\n </>\r\n );\r\n}"
|
|
2710
2886
|
},
|
|
2711
2887
|
{
|
|
2712
2888
|
"name": "DatePicker",
|
|
@@ -3133,20 +3309,20 @@
|
|
|
3133
3309
|
"usageExample": null
|
|
3134
3310
|
},
|
|
3135
3311
|
{
|
|
3136
|
-
"name": "
|
|
3312
|
+
"name": "DateRangePicker",
|
|
3137
3313
|
"package": "@wizeworks/silicaui-react",
|
|
3138
3314
|
"category": "Data input",
|
|
3139
|
-
"sourceFile": "silicaui-react/src/date-
|
|
3140
|
-
"description": "Silica
|
|
3315
|
+
"sourceFile": "silicaui-react/src/date-picker.tsx",
|
|
3316
|
+
"description": "Silica DateRangePicker — an input that opens a two-month `Calendar` to pick a start/end range. Closes once both ends are chosen. <DateRangePicker value={range} onValueChange={setRange} />",
|
|
3141
3317
|
"props": [
|
|
3142
3318
|
{
|
|
3143
|
-
"name": "
|
|
3319
|
+
"name": "DatePickerProps",
|
|
3144
3320
|
"members": [
|
|
3145
3321
|
{
|
|
3146
3322
|
"name": "value",
|
|
3147
3323
|
"optional": true,
|
|
3148
3324
|
"type": "Date | null",
|
|
3149
|
-
"doc": "
|
|
3325
|
+
"doc": ""
|
|
3150
3326
|
},
|
|
3151
3327
|
{
|
|
3152
3328
|
"name": "defaultValue",
|
|
@@ -3158,30 +3334,42 @@
|
|
|
3158
3334
|
"name": "onValueChange",
|
|
3159
3335
|
"optional": true,
|
|
3160
3336
|
"type": "(value: Date | null) => void",
|
|
3161
|
-
"doc": "
|
|
3337
|
+
"doc": ""
|
|
3162
3338
|
},
|
|
3163
3339
|
{
|
|
3164
|
-
"name": "
|
|
3340
|
+
"name": "placeholder",
|
|
3165
3341
|
"optional": true,
|
|
3166
|
-
"type": "
|
|
3342
|
+
"type": "React.ReactNode",
|
|
3167
3343
|
"doc": ""
|
|
3168
3344
|
},
|
|
3169
3345
|
{
|
|
3170
|
-
"name": "
|
|
3346
|
+
"name": "disabled",
|
|
3347
|
+
"optional": true,
|
|
3348
|
+
"type": "boolean",
|
|
3349
|
+
"doc": ""
|
|
3350
|
+
},
|
|
3351
|
+
{
|
|
3352
|
+
"name": "weekStartsOn",
|
|
3353
|
+
"optional": true,
|
|
3354
|
+
"type": "Weekday",
|
|
3355
|
+
"doc": ""
|
|
3356
|
+
},
|
|
3357
|
+
{
|
|
3358
|
+
"name": "min",
|
|
3171
3359
|
"optional": true,
|
|
3172
3360
|
"type": "Date",
|
|
3173
3361
|
"doc": ""
|
|
3174
3362
|
},
|
|
3175
3363
|
{
|
|
3176
|
-
"name": "
|
|
3364
|
+
"name": "max",
|
|
3177
3365
|
"optional": true,
|
|
3178
|
-
"type": "
|
|
3179
|
-
"doc": "
|
|
3366
|
+
"type": "Date",
|
|
3367
|
+
"doc": ""
|
|
3180
3368
|
},
|
|
3181
3369
|
{
|
|
3182
|
-
"name": "
|
|
3370
|
+
"name": "isDateDisabled",
|
|
3183
3371
|
"optional": true,
|
|
3184
|
-
"type": "boolean",
|
|
3372
|
+
"type": "(date: Date) => boolean",
|
|
3185
3373
|
"doc": ""
|
|
3186
3374
|
},
|
|
3187
3375
|
{
|
|
@@ -3191,46 +3379,300 @@
|
|
|
3191
3379
|
"doc": ""
|
|
3192
3380
|
},
|
|
3193
3381
|
{
|
|
3194
|
-
"name": "
|
|
3382
|
+
"name": "formatOptions",
|
|
3195
3383
|
"optional": true,
|
|
3196
|
-
"type": "
|
|
3197
|
-
"doc": ""
|
|
3384
|
+
"type": "Intl.DateTimeFormatOptions",
|
|
3385
|
+
"doc": "Intl options for the trigger label (default `{ dateStyle: \"medium\" }`)."
|
|
3198
3386
|
},
|
|
3199
3387
|
{
|
|
3200
3388
|
"name": "color",
|
|
3201
3389
|
"optional": true,
|
|
3202
|
-
"type": "
|
|
3390
|
+
"type": "DatePickerColor",
|
|
3203
3391
|
"doc": ""
|
|
3204
3392
|
},
|
|
3205
3393
|
{
|
|
3206
3394
|
"name": "size",
|
|
3207
3395
|
"optional": true,
|
|
3208
|
-
"type": "
|
|
3396
|
+
"type": "DatePickerSize",
|
|
3209
3397
|
"doc": ""
|
|
3210
3398
|
},
|
|
3211
3399
|
{
|
|
3212
|
-
"name": "
|
|
3400
|
+
"name": "side",
|
|
3213
3401
|
"optional": true,
|
|
3214
|
-
"type": "
|
|
3402
|
+
"type": "DatePickerSide",
|
|
3215
3403
|
"doc": ""
|
|
3216
3404
|
},
|
|
3217
3405
|
{
|
|
3218
|
-
"name": "
|
|
3406
|
+
"name": "align",
|
|
3219
3407
|
"optional": true,
|
|
3220
|
-
"type": "
|
|
3408
|
+
"type": "DatePickerAlign",
|
|
3221
3409
|
"doc": ""
|
|
3222
3410
|
},
|
|
3223
3411
|
{
|
|
3224
|
-
"name": "
|
|
3412
|
+
"name": "sideOffset",
|
|
3225
3413
|
"optional": true,
|
|
3226
|
-
"type": "
|
|
3414
|
+
"type": "number",
|
|
3227
3415
|
"doc": ""
|
|
3228
|
-
}
|
|
3416
|
+
},
|
|
3417
|
+
{
|
|
3418
|
+
"name": "className",
|
|
3419
|
+
"optional": true,
|
|
3420
|
+
"type": "string",
|
|
3421
|
+
"doc": ""
|
|
3422
|
+
},
|
|
3423
|
+
{
|
|
3424
|
+
"name": "popupClassName",
|
|
3425
|
+
"optional": true,
|
|
3426
|
+
"type": "string",
|
|
3427
|
+
"doc": ""
|
|
3428
|
+
},
|
|
3429
|
+
{
|
|
3430
|
+
"name": "id",
|
|
3431
|
+
"optional": true,
|
|
3432
|
+
"type": "string",
|
|
3433
|
+
"doc": ""
|
|
3434
|
+
},
|
|
3435
|
+
{
|
|
3436
|
+
"name": "\"aria-label\"",
|
|
3437
|
+
"optional": true,
|
|
3438
|
+
"type": "string",
|
|
3439
|
+
"doc": ""
|
|
3440
|
+
}
|
|
3441
|
+
]
|
|
3442
|
+
},
|
|
3443
|
+
{
|
|
3444
|
+
"name": "DateRangePickerProps",
|
|
3445
|
+
"members": [
|
|
3446
|
+
{
|
|
3447
|
+
"name": "value",
|
|
3448
|
+
"optional": true,
|
|
3449
|
+
"type": "DateRange",
|
|
3450
|
+
"doc": ""
|
|
3451
|
+
},
|
|
3452
|
+
{
|
|
3453
|
+
"name": "defaultValue",
|
|
3454
|
+
"optional": true,
|
|
3455
|
+
"type": "DateRange",
|
|
3456
|
+
"doc": ""
|
|
3457
|
+
},
|
|
3458
|
+
{
|
|
3459
|
+
"name": "onValueChange",
|
|
3460
|
+
"optional": true,
|
|
3461
|
+
"type": "(value: DateRange) => void",
|
|
3462
|
+
"doc": ""
|
|
3463
|
+
},
|
|
3464
|
+
{
|
|
3465
|
+
"name": "placeholder",
|
|
3466
|
+
"optional": true,
|
|
3467
|
+
"type": "React.ReactNode",
|
|
3468
|
+
"doc": ""
|
|
3469
|
+
},
|
|
3470
|
+
{
|
|
3471
|
+
"name": "disabled",
|
|
3472
|
+
"optional": true,
|
|
3473
|
+
"type": "boolean",
|
|
3474
|
+
"doc": ""
|
|
3475
|
+
},
|
|
3476
|
+
{
|
|
3477
|
+
"name": "numberOfMonths",
|
|
3478
|
+
"optional": true,
|
|
3479
|
+
"type": "number",
|
|
3480
|
+
"doc": ""
|
|
3481
|
+
},
|
|
3482
|
+
{
|
|
3483
|
+
"name": "weekStartsOn",
|
|
3484
|
+
"optional": true,
|
|
3485
|
+
"type": "Weekday",
|
|
3486
|
+
"doc": ""
|
|
3487
|
+
},
|
|
3488
|
+
{
|
|
3489
|
+
"name": "min",
|
|
3490
|
+
"optional": true,
|
|
3491
|
+
"type": "Date",
|
|
3492
|
+
"doc": ""
|
|
3493
|
+
},
|
|
3494
|
+
{
|
|
3495
|
+
"name": "max",
|
|
3496
|
+
"optional": true,
|
|
3497
|
+
"type": "Date",
|
|
3498
|
+
"doc": ""
|
|
3499
|
+
},
|
|
3500
|
+
{
|
|
3501
|
+
"name": "isDateDisabled",
|
|
3502
|
+
"optional": true,
|
|
3503
|
+
"type": "(date: Date) => boolean",
|
|
3504
|
+
"doc": ""
|
|
3505
|
+
},
|
|
3506
|
+
{
|
|
3507
|
+
"name": "locale",
|
|
3508
|
+
"optional": true,
|
|
3509
|
+
"type": "string",
|
|
3510
|
+
"doc": ""
|
|
3511
|
+
},
|
|
3512
|
+
{
|
|
3513
|
+
"name": "formatOptions",
|
|
3514
|
+
"optional": true,
|
|
3515
|
+
"type": "Intl.DateTimeFormatOptions",
|
|
3516
|
+
"doc": ""
|
|
3517
|
+
},
|
|
3518
|
+
{
|
|
3519
|
+
"name": "color",
|
|
3520
|
+
"optional": true,
|
|
3521
|
+
"type": "DatePickerColor",
|
|
3522
|
+
"doc": ""
|
|
3523
|
+
},
|
|
3524
|
+
{
|
|
3525
|
+
"name": "size",
|
|
3526
|
+
"optional": true,
|
|
3527
|
+
"type": "DatePickerSize",
|
|
3528
|
+
"doc": ""
|
|
3529
|
+
},
|
|
3530
|
+
{
|
|
3531
|
+
"name": "side",
|
|
3532
|
+
"optional": true,
|
|
3533
|
+
"type": "DatePickerSide",
|
|
3534
|
+
"doc": ""
|
|
3535
|
+
},
|
|
3536
|
+
{
|
|
3537
|
+
"name": "align",
|
|
3538
|
+
"optional": true,
|
|
3539
|
+
"type": "DatePickerAlign",
|
|
3540
|
+
"doc": ""
|
|
3541
|
+
},
|
|
3542
|
+
{
|
|
3543
|
+
"name": "sideOffset",
|
|
3544
|
+
"optional": true,
|
|
3545
|
+
"type": "number",
|
|
3546
|
+
"doc": ""
|
|
3547
|
+
},
|
|
3548
|
+
{
|
|
3549
|
+
"name": "className",
|
|
3550
|
+
"optional": true,
|
|
3551
|
+
"type": "string",
|
|
3552
|
+
"doc": ""
|
|
3553
|
+
},
|
|
3554
|
+
{
|
|
3555
|
+
"name": "popupClassName",
|
|
3556
|
+
"optional": true,
|
|
3557
|
+
"type": "string",
|
|
3558
|
+
"doc": ""
|
|
3559
|
+
},
|
|
3560
|
+
{
|
|
3561
|
+
"name": "id",
|
|
3562
|
+
"optional": true,
|
|
3563
|
+
"type": "string",
|
|
3564
|
+
"doc": ""
|
|
3565
|
+
},
|
|
3566
|
+
{
|
|
3567
|
+
"name": "\"aria-label\"",
|
|
3568
|
+
"optional": true,
|
|
3569
|
+
"type": "string",
|
|
3570
|
+
"doc": ""
|
|
3571
|
+
}
|
|
3229
3572
|
]
|
|
3230
3573
|
}
|
|
3231
3574
|
],
|
|
3232
3575
|
"usageExample": null
|
|
3233
3576
|
},
|
|
3577
|
+
{
|
|
3578
|
+
"name": "DateTimeInput",
|
|
3579
|
+
"package": "@wizeworks/silicaui-react",
|
|
3580
|
+
"category": "Data input",
|
|
3581
|
+
"sourceFile": "silicaui-react/src/date-time-input.tsx",
|
|
3582
|
+
"description": "Silica DateTimeInput — `DateInput` + `TimeInput` fused into one segmented field sharing a single `Date` value, for the common \"when exactly\" case (appointments, deadlines, scheduled posts) without stitching two widgets together yourself. <DateTimeInput value={when} onValueChange={setWhen} /> <DateTimeInput hourCycle={24} showSeconds min={new Date()} />",
|
|
3583
|
+
"props": [
|
|
3584
|
+
{
|
|
3585
|
+
"name": "DateTimeInputProps",
|
|
3586
|
+
"members": [
|
|
3587
|
+
{
|
|
3588
|
+
"name": "value",
|
|
3589
|
+
"optional": true,
|
|
3590
|
+
"type": "Date | null",
|
|
3591
|
+
"doc": "Controlled value — a full `Date` (date + time together). `null` clears the field."
|
|
3592
|
+
},
|
|
3593
|
+
{
|
|
3594
|
+
"name": "defaultValue",
|
|
3595
|
+
"optional": true,
|
|
3596
|
+
"type": "Date | null",
|
|
3597
|
+
"doc": ""
|
|
3598
|
+
},
|
|
3599
|
+
{
|
|
3600
|
+
"name": "onValueChange",
|
|
3601
|
+
"optional": true,
|
|
3602
|
+
"type": "(value: Date | null) => void",
|
|
3603
|
+
"doc": "Fires once every segment (date + time, + AM/PM in 12h mode) is filled; `null` while incomplete/cleared."
|
|
3604
|
+
},
|
|
3605
|
+
{
|
|
3606
|
+
"name": "min",
|
|
3607
|
+
"optional": true,
|
|
3608
|
+
"type": "Date",
|
|
3609
|
+
"doc": ""
|
|
3610
|
+
},
|
|
3611
|
+
{
|
|
3612
|
+
"name": "max",
|
|
3613
|
+
"optional": true,
|
|
3614
|
+
"type": "Date",
|
|
3615
|
+
"doc": ""
|
|
3616
|
+
},
|
|
3617
|
+
{
|
|
3618
|
+
"name": "hourCycle",
|
|
3619
|
+
"optional": true,
|
|
3620
|
+
"type": "12 | 24",
|
|
3621
|
+
"doc": "`12` or `24`. Default: derived from `locale`."
|
|
3622
|
+
},
|
|
3623
|
+
{
|
|
3624
|
+
"name": "showSeconds",
|
|
3625
|
+
"optional": true,
|
|
3626
|
+
"type": "boolean",
|
|
3627
|
+
"doc": ""
|
|
3628
|
+
},
|
|
3629
|
+
{
|
|
3630
|
+
"name": "locale",
|
|
3631
|
+
"optional": true,
|
|
3632
|
+
"type": "string",
|
|
3633
|
+
"doc": ""
|
|
3634
|
+
},
|
|
3635
|
+
{
|
|
3636
|
+
"name": "disabled",
|
|
3637
|
+
"optional": true,
|
|
3638
|
+
"type": "boolean",
|
|
3639
|
+
"doc": ""
|
|
3640
|
+
},
|
|
3641
|
+
{
|
|
3642
|
+
"name": "color",
|
|
3643
|
+
"optional": true,
|
|
3644
|
+
"type": "DateTimeInputColor",
|
|
3645
|
+
"doc": ""
|
|
3646
|
+
},
|
|
3647
|
+
{
|
|
3648
|
+
"name": "size",
|
|
3649
|
+
"optional": true,
|
|
3650
|
+
"type": "DateTimeInputSize",
|
|
3651
|
+
"doc": ""
|
|
3652
|
+
},
|
|
3653
|
+
{
|
|
3654
|
+
"name": "className",
|
|
3655
|
+
"optional": true,
|
|
3656
|
+
"type": "string",
|
|
3657
|
+
"doc": ""
|
|
3658
|
+
},
|
|
3659
|
+
{
|
|
3660
|
+
"name": "id",
|
|
3661
|
+
"optional": true,
|
|
3662
|
+
"type": "string",
|
|
3663
|
+
"doc": ""
|
|
3664
|
+
},
|
|
3665
|
+
{
|
|
3666
|
+
"name": "\"aria-label\"",
|
|
3667
|
+
"optional": true,
|
|
3668
|
+
"type": "string",
|
|
3669
|
+
"doc": ""
|
|
3670
|
+
}
|
|
3671
|
+
]
|
|
3672
|
+
}
|
|
3673
|
+
],
|
|
3674
|
+
"usageExample": "import { useState } from \"react\";\r\nimport { DateTimeInput } from \"@wizeworks/silicaui-react\";\r\nimport { Section, Row } from \"../lib/Section\";\r\n\r\nexport function DateTimeInputDemo() {\r\n const [when, setWhen] = useState<Date | null>(new Date(2026, 6, 8, 14, 30));\r\n\r\n return (\r\n <>\r\n <Section title=\"Real use · schedule a post (type or paste 'e.g. 7/8/2026 2:30 PM')\">\r\n <DateTimeInput value={when} onValueChange={setWhen} color=\"primary\" />\r\n <p className=\"mt-2 text-sm opacity-70\">\r\n {when ? when.toString() : \"No date/time\"}\r\n </p>\r\n </Section>\r\n\r\n <Section title=\"24h + seconds, min bound to now\">\r\n <DateTimeInput hourCycle={24} showSeconds min={new Date()} />\r\n </Section>\r\n\r\n <Section title=\"Sizes / disabled\">\r\n <Row>\r\n <DateTimeInput size=\"sm\" defaultValue={new Date(2026, 6, 8, 9, 0)} />\r\n <DateTimeInput size=\"lg\" defaultValue={new Date(2026, 6, 8, 9, 0)} />\r\n <DateTimeInput disabled defaultValue={new Date(2026, 6, 8, 9, 0)} />\r\n </Row>\r\n </Section>\r\n </>\r\n );\r\n}"
|
|
3675
|
+
},
|
|
3234
3676
|
{
|
|
3235
3677
|
"name": "Field",
|
|
3236
3678
|
"package": "@wizeworks/silicaui-react",
|
|
@@ -3323,7 +3765,7 @@
|
|
|
3323
3765
|
]
|
|
3324
3766
|
}
|
|
3325
3767
|
],
|
|
3326
|
-
"usageExample":
|
|
3768
|
+
"usageExample": "import { useState } from \"react\";\r\nimport {\r\n Button,\r\n Field,\r\n FieldLabel,\r\n FieldControl,\r\n FieldDescription,\r\n FieldError,\r\n FieldStatus,\r\n Textarea,\r\n} from \"@wizeworks/silicaui-react\";\r\nimport { Section, Stack } from \"../lib/Section\";\r\n\r\nexport function FieldDemo() {\r\n const [floatingError, setFloatingError] = useState(false);\r\n return (\r\n <>\r\n <Section title=\"Real use · required field with description\">\r\n <Field className=\"max-w-sm\">\r\n <FieldLabel required>Full name</FieldLabel>\r\n <FieldControl required placeholder=\"Ada Lovelace\" />\r\n <FieldDescription>As it appears on your ID.</FieldDescription>\r\n <FieldError />\r\n </Field>\r\n </Section>\r\n\r\n <Section title=\"Non-input control via render (Textarea)\">\r\n <Field className=\"max-w-sm\">\r\n <FieldLabel>Bio</FieldLabel>\r\n <FieldControl render={<Textarea rows={3} />} />\r\n <FieldDescription>Shown on your public profile.</FieldDescription>\r\n </Field>\r\n </Section>\r\n\r\n <Section title=\"Disabled\">\r\n <Stack className=\"max-w-sm\">\r\n <Field disabled>\r\n <FieldLabel>Organization</FieldLabel>\r\n <FieldControl defaultValue=\"Silica UI\" />\r\n </Field>\r\n <Field disabled disabledMessage=\"Contact your admin to change this.\">\r\n <FieldLabel>Billing plan</FieldLabel>\r\n <FieldControl defaultValue=\"Enterprise\" />\r\n </Field>\r\n </Stack>\r\n </Section>\r\n\r\n <Section title=\"FieldStatus · attached (border+icon+message panel)\">\r\n <Stack className=\"max-w-sm\">\r\n <Field status=\"error\" statusMessage=\"Please enter a valid email address.\">\r\n <FieldLabel>Email</FieldLabel>\r\n <FieldControl defaultValue=\"sarah@\" />\r\n </Field>\r\n <Field status=\"warning\" statusMessage=\"This username is already taken — try adding a number.\">\r\n <FieldLabel>Username</FieldLabel>\r\n <FieldControl defaultValue=\"sarah_chen\" />\r\n </Field>\r\n <Field status=\"success\" statusMessage=\"URL is valid and reachable.\">\r\n <FieldLabel>Website</FieldLabel>\r\n <FieldControl defaultValue=\"https://sarahchen.dev\" />\r\n </Field>\r\n <Field status=\"error\">\r\n <FieldLabel>Status without message</FieldLabel>\r\n <FieldControl defaultValue=\"test\" />\r\n </Field>\r\n <Field status=\"error\" statusMessage=\"Key is required.\">\r\n <FieldLabel required>Key</FieldLabel>\r\n <FieldControl placeholder=\"case_study\" />\r\n <FieldDescription>\r\n Immutable URL-safe identifier (lowercase, underscores).\r\n </FieldDescription>\r\n </Field>\r\n <Field loading>\r\n <FieldLabel>Loading field</FieldLabel>\r\n <FieldControl defaultValue=\"sarahc\" />\r\n </Field>\r\n </Stack>\r\n </Section>\r\n\r\n <Section title=\"FieldStatus · floating (overlays instead of pushing sibling fields)\">\r\n <Stack className=\"max-w-sm\">\r\n <Button size=\"sm\" onClick={() => setFloatingError((v) => !v)}>\r\n Toggle error\r\n </Button>\r\n <Field\r\n floating\r\n status={floatingError ? \"error\" : undefined}\r\n statusMessage={\r\n floatingError ? \"Please enter a valid email address.\" : undefined\r\n }\r\n >\r\n <FieldLabel>Email</FieldLabel>\r\n <FieldControl defaultValue=\"sarah@\" />\r\n </Field>\r\n <Field>\r\n <FieldLabel>Next field (stays put either way)</FieldLabel>\r\n <FieldControl defaultValue=\"unaffected\" />\r\n </Field>\r\n </Stack>\r\n </Section>\r\n\r\n <Section title=\"FieldStatus · detached (for checkboxes/switches/custom controls)\">\r\n <Stack className=\"max-w-sm\">\r\n <FieldStatus status=\"error\" attached={false}>\r\n This field is required\r\n </FieldStatus>\r\n <FieldStatus status=\"success\" attached={false}>\r\n Your changes have been saved\r\n </FieldStatus>\r\n </Stack>\r\n </Section>\r\n </>\r\n );\r\n}"
|
|
3327
3769
|
},
|
|
3328
3770
|
{
|
|
3329
3771
|
"name": "Fieldset",
|
|
@@ -3348,7 +3790,7 @@
|
|
|
3348
3790
|
"members": []
|
|
3349
3791
|
}
|
|
3350
3792
|
],
|
|
3351
|
-
"usageExample":
|
|
3793
|
+
"usageExample": "import { Fieldset, FieldsetLegend, FieldsetLabel, Input } from \"@wizeworks/silicaui-react\";\r\nimport { Section } from \"../lib/Section\";\r\n\r\nexport function FieldsetDemo() {\r\n return (\r\n <>\r\n <Section title=\"Real use · profile group\">\r\n <Fieldset className=\"max-w-sm\">\r\n <FieldsetLegend>Profile</FieldsetLegend>\r\n <Input placeholder=\"Full name\" />\r\n <FieldsetLabel>Your full legal name.</FieldsetLabel>\r\n </Fieldset>\r\n </Section>\r\n\r\n <Section title=\"Disabled cascades to every control\">\r\n <Fieldset disabled className=\"max-w-sm\">\r\n <FieldsetLegend>Billing (locked)</FieldsetLegend>\r\n <Input placeholder=\"Card number\" />\r\n <FieldsetLabel>Contact support to change billing.</FieldsetLabel>\r\n </Fieldset>\r\n </Section>\r\n </>\r\n );\r\n}"
|
|
3352
3794
|
},
|
|
3353
3795
|
{
|
|
3354
3796
|
"name": "FileInput",
|
|
@@ -3359,7 +3801,7 @@
|
|
|
3359
3801
|
"props": [
|
|
3360
3802
|
{
|
|
3361
3803
|
"name": "FileInputProps",
|
|
3362
|
-
"extends": "extends Omit<React.InputHTMLAttributes<HTMLInputElement>, \"type\" | \"size\">",
|
|
3804
|
+
"extends": "extends VoidElementProps<\r\n Omit<React.InputHTMLAttributes<HTMLInputElement>, \"type\" | \"size\">\r\n >",
|
|
3363
3805
|
"members": [
|
|
3364
3806
|
{
|
|
3365
3807
|
"name": "size",
|
|
@@ -3370,7 +3812,7 @@
|
|
|
3370
3812
|
]
|
|
3371
3813
|
}
|
|
3372
3814
|
],
|
|
3373
|
-
"usageExample": null
|
|
3815
|
+
"usageExample": "import { useState } from \"react\";\r\nimport { FileInput } from \"@wizeworks/silicaui-react\";\r\nimport { Section, Row } from \"../lib/Section\";\r\n\r\nexport function FileInputDemo() {\r\n const [name, setName] = useState<string | null>(null);\r\n\r\n return (\r\n <>\r\n <Section title=\"Sizes\">\r\n <Row>\r\n <FileInput size=\"sm\" />\r\n <FileInput />\r\n <FileInput size=\"lg\" />\r\n </Row>\r\n </Section>\r\n\r\n <Section title=\"Real use · avatar upload\">\r\n <div className=\"flex flex-col gap-2\">\r\n <FileInput\r\n accept=\"image/*\"\r\n onChange={(e) => setName(e.target.files?.[0]?.name ?? null)}\r\n />\r\n <p className=\"text-xs opacity-60\">\r\n {name ? `Selected: ${name}` : \"PNG or JPG, up to 5MB.\"}\r\n </p>\r\n </div>\r\n </Section>\r\n </>\r\n );\r\n}"
|
|
3374
3816
|
},
|
|
3375
3817
|
{
|
|
3376
3818
|
"name": "FileUpload",
|
|
@@ -3422,7 +3864,7 @@
|
|
|
3422
3864
|
]
|
|
3423
3865
|
}
|
|
3424
3866
|
],
|
|
3425
|
-
"usageExample":
|
|
3867
|
+
"usageExample": "import { FileUpload } from \"@wizeworks/silicaui-react\";\r\nimport { Section } from \"../lib/Section\";\r\n\r\nexport function FileUploadDemo() {\r\n return (\r\n <Section title=\"Real use · attachments with previews, accept/maxSize filtering\">\r\n <div className=\"max-w-md\">\r\n <FileUpload\r\n accept=\"image/*,.pdf\"\r\n maxSize={2 * 1024 * 1024}\r\n hint=\"Images or PDF, up to 2MB each\"\r\n />\r\n </div>\r\n </Section>\r\n );\r\n}"
|
|
3426
3868
|
},
|
|
3427
3869
|
{
|
|
3428
3870
|
"name": "Filter",
|
|
@@ -3492,6 +3934,46 @@
|
|
|
3492
3934
|
]
|
|
3493
3935
|
}
|
|
3494
3936
|
],
|
|
3937
|
+
"usageExample": "import { useState } from \"react\";\r\nimport { Filter, FilterItem } from \"@wizeworks/silicaui-react\";\r\nimport { Section } from \"../lib/Section\";\r\nimport { COLORS } from \"../lib/data\";\r\n\r\nconst CATEGORIES = [\"All\", \"Apparel\", \"Footwear\", \"Accessories\", \"Sale\"];\r\n\r\nexport function FilterDemo() {\r\n const [category, setCategory] = useState<string | undefined>(\"All\");\r\n\r\n return (\r\n <>\r\n <Section title=\"Colors\">\r\n <div className=\"flex flex-col gap-3\">\r\n {COLORS.slice(0, 6).map((color) => (\r\n <Filter key={color} color={color} defaultValue=\"all\">\r\n <FilterItem value=\"all\">All</FilterItem>\r\n <FilterItem value=\"new\">New</FilterItem>\r\n <FilterItem value=\"sale\">Sale</FilterItem>\r\n </Filter>\r\n ))}\r\n </div>\r\n </Section>\r\n\r\n <Section title=\"Real use · category filter\">\r\n <div className=\"flex flex-col gap-2\">\r\n <Filter color=\"primary\" value={category} onValueChange={setCategory}>\r\n {CATEGORIES.map((c) => (\r\n <FilterItem key={c} value={c}>\r\n {c}\r\n </FilterItem>\r\n ))}\r\n </Filter>\r\n <p className=\"text-sm opacity-60\">\r\n Showing: {category ?? \"nothing selected\"}\r\n </p>\r\n </div>\r\n </Section>\r\n </>\r\n );\r\n}"
|
|
3938
|
+
},
|
|
3939
|
+
{
|
|
3940
|
+
"name": "FloatingLabel",
|
|
3941
|
+
"package": "@wizeworks/silicaui-react",
|
|
3942
|
+
"category": "Data input",
|
|
3943
|
+
"sourceFile": "silicaui-react/src/label.tsx",
|
|
3944
|
+
"description": "Silica FloatingLabel — a caption that rests inside the field and floats up on focus or when the field has a value. <FloatingLabel label=\"Email\"> <Input type=\"email\" /> </FloatingLabel> The \"filled\" state relies on `:placeholder-shown`, so the control needs a placeholder — one (a single space) is injected automatically if you don't set your own.",
|
|
3945
|
+
"props": [
|
|
3946
|
+
{
|
|
3947
|
+
"name": "LabelProps",
|
|
3948
|
+
"extends": "extends React.LabelHTMLAttributes<HTMLLabelElement>",
|
|
3949
|
+
"members": [
|
|
3950
|
+
{
|
|
3951
|
+
"name": "required",
|
|
3952
|
+
"optional": true,
|
|
3953
|
+
"type": "boolean",
|
|
3954
|
+
"doc": "Appends a required-field asterisk after the label text."
|
|
3955
|
+
}
|
|
3956
|
+
]
|
|
3957
|
+
},
|
|
3958
|
+
{
|
|
3959
|
+
"name": "FloatingLabelProps",
|
|
3960
|
+
"extends": "extends Omit<React.LabelHTMLAttributes<HTMLLabelElement>, \"children\">",
|
|
3961
|
+
"members": [
|
|
3962
|
+
{
|
|
3963
|
+
"name": "label",
|
|
3964
|
+
"optional": false,
|
|
3965
|
+
"type": "React.ReactNode",
|
|
3966
|
+
"doc": "Caption text that floats onto the border when the field is focused/filled."
|
|
3967
|
+
},
|
|
3968
|
+
{
|
|
3969
|
+
"name": "children",
|
|
3970
|
+
"optional": false,
|
|
3971
|
+
"type": "React.ReactElement<{ placeholder?: string }>",
|
|
3972
|
+
"doc": "The control (an `<Input>`, `<Textarea>`, `<select>`, …)."
|
|
3973
|
+
}
|
|
3974
|
+
]
|
|
3975
|
+
}
|
|
3976
|
+
],
|
|
3495
3977
|
"usageExample": null
|
|
3496
3978
|
},
|
|
3497
3979
|
{
|
|
@@ -3517,7 +3999,7 @@
|
|
|
3517
3999
|
"props": [
|
|
3518
4000
|
{
|
|
3519
4001
|
"name": "InputProps",
|
|
3520
|
-
"extends": "extends Omit<React.InputHTMLAttributes<HTMLInputElement>, \"size\" | \"color\">",
|
|
4002
|
+
"extends": "extends VoidElementProps<\r\n Omit<React.InputHTMLAttributes<HTMLInputElement>, \"size\" | \"color\">\r\n >",
|
|
3521
4003
|
"members": [
|
|
3522
4004
|
{
|
|
3523
4005
|
"name": "color",
|
|
@@ -3534,7 +4016,7 @@
|
|
|
3534
4016
|
]
|
|
3535
4017
|
}
|
|
3536
4018
|
],
|
|
3537
|
-
"usageExample": null
|
|
4019
|
+
"usageExample": "import { useState } from \"react\";\r\nimport {\r\n Input,\r\n Field,\r\n FieldLabel,\r\n FieldControl,\r\n FieldDescription,\r\n FieldError,\r\n FloatingLabel,\r\n Button,\r\n} from \"@wizeworks/silicaui-react\";\r\nimport { Section, Row, Stack } from \"../lib/Section\";\r\nimport { SIZES } from \"../lib/data\";\r\n\r\nexport function InputDemo() {\r\n const [email, setEmail] = useState(\"not-an-email\");\r\n const invalid = email.length > 0 && !email.includes(\"@\");\r\n\r\n return (\r\n <>\r\n <Section title=\"Colors\">\r\n <Stack className=\"max-w-md\">\r\n <Input placeholder=\"Default (focus for primary ring)\" />\r\n <Input color=\"primary\" placeholder=\"Primary\" />\r\n <Input color=\"success\" placeholder=\"Success\" />\r\n <Input color=\"error\" placeholder=\"Error\" defaultValue=\"not-an-email\" />\r\n <Input color=\"brand\" placeholder=\"SilicaUI\" />\r\n <Input disabled placeholder=\"Disabled\" />\r\n </Stack>\r\n </Section>\r\n\r\n <Section title=\"Sizes\">\r\n <Stack className=\"max-w-md\">\r\n {SIZES.map((size) => (\r\n <Input key={size} size={size} placeholder={size} />\r\n ))}\r\n </Stack>\r\n </Section>\r\n\r\n <Section title=\"Real form · Field + validation\">\r\n <div className=\"max-w-sm rounded-box border border-base-300 bg-base-100 p-5 shadow-sm\">\r\n <div className=\"flex flex-col gap-4\">\r\n <Field\r\n validationMode=\"onChange\"\r\n validate={() => (invalid ? \"Enter a valid email address\" : null)}\r\n >\r\n <FieldLabel>Work email</FieldLabel>\r\n <FieldControl\r\n type=\"email\"\r\n value={email}\r\n onChange={(e) => setEmail(e.target.value)}\r\n placeholder=\"you@company.com\"\r\n />\r\n <FieldDescription>\r\n We'll send a magic link to sign in.\r\n </FieldDescription>\r\n <FieldError />\r\n </Field>\r\n <FloatingLabel label=\"Company name\">\r\n <Input />\r\n </FloatingLabel>\r\n <Row>\r\n <Button color=\"primary\" block>\r\n Continue\r\n </Button>\r\n </Row>\r\n </div>\r\n </div>\r\n </Section>\r\n </>\r\n );\r\n}"
|
|
3538
4020
|
},
|
|
3539
4021
|
{
|
|
3540
4022
|
"name": "InputGroup",
|
|
@@ -3566,7 +4048,7 @@
|
|
|
3566
4048
|
"members": []
|
|
3567
4049
|
}
|
|
3568
4050
|
],
|
|
3569
|
-
"usageExample":
|
|
4051
|
+
"usageExample": "import { Input, InputGroup, InputGroupAddon } from \"@wizeworks/silicaui-react\";\r\nimport { Section, Stack } from \"../lib/Section\";\r\n\r\nconst AtIcon = () => (\r\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" aria-hidden=\"true\">\r\n <circle cx=\"12\" cy=\"12\" r=\"4\" />\r\n <path d=\"M16 12v1.5a2.5 2.5 0 0 0 5 0V12a9 9 0 1 0-5.5 8.28\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\r\n </svg>\r\n);\r\n\r\nexport function InputGroupDemo() {\r\n return (\r\n <Section title=\"Custom affix composition\">\r\n <p className=\"max-w-sm text-xs opacity-60\">\r\n The primitive behind PasswordInput/SearchInput/PhoneInput — compose your\r\n own leading/trailing icon or text around any Input.\r\n </p>\r\n <Stack className=\"max-w-sm\">\r\n <InputGroup>\r\n <InputGroupAddon placement=\"start\">\r\n <AtIcon />\r\n </InputGroupAddon>\r\n <Input className=\"input-affix-start\" placeholder=\"username\" />\r\n </InputGroup>\r\n </Stack>\r\n </Section>\r\n );\r\n}"
|
|
3570
4052
|
},
|
|
3571
4053
|
{
|
|
3572
4054
|
"name": "Join",
|
|
@@ -3588,7 +4070,7 @@
|
|
|
3588
4070
|
]
|
|
3589
4071
|
}
|
|
3590
4072
|
],
|
|
3591
|
-
"usageExample":
|
|
4073
|
+
"usageExample": "import { useState } from \"react\";\r\nimport { Join, Button, Input } from \"@wizeworks/silicaui-react\";\r\nimport { Section, Row } from \"../lib/Section\";\r\n\r\nconst RANGES = [\"Day\", \"Week\", \"Month\"];\r\n\r\nexport function JoinDemo() {\r\n const [range, setRange] = useState(\"Week\");\r\n\r\n return (\r\n <>\r\n <Section title=\"Real use · segmented range picker\">\r\n <Join>\r\n {RANGES.map((r) => (\r\n <Button\r\n key={r}\r\n variant={r === range ? \"solid\" : \"outline\"}\r\n color={r === range ? \"primary\" : \"neutral\"}\r\n onClick={() => setRange(r)}\r\n >\r\n {r}\r\n </Button>\r\n ))}\r\n </Join>\r\n </Section>\r\n\r\n <Section title=\"Input + button\">\r\n <Row>\r\n <Join>\r\n <Input placeholder=\"Search…\" />\r\n <Button color=\"primary\">Go</Button>\r\n </Join>\r\n </Row>\r\n </Section>\r\n\r\n <Section title=\"Vertical\">\r\n <Join orientation=\"vertical\" className=\"w-32\">\r\n <Button variant=\"outline\" color=\"neutral\">\r\n Top\r\n </Button>\r\n <Button variant=\"outline\" color=\"neutral\">\r\n Middle\r\n </Button>\r\n <Button variant=\"outline\" color=\"neutral\">\r\n Bottom\r\n </Button>\r\n </Join>\r\n </Section>\r\n </>\r\n );\r\n}"
|
|
3592
4074
|
},
|
|
3593
4075
|
{
|
|
3594
4076
|
"name": "Label",
|
|
@@ -3628,7 +4110,7 @@
|
|
|
3628
4110
|
]
|
|
3629
4111
|
}
|
|
3630
4112
|
],
|
|
3631
|
-
"usageExample":
|
|
4113
|
+
"usageExample": "import { Label, FloatingLabel, Input } from \"@wizeworks/silicaui-react\";\r\nimport { Section, Stack } from \"../lib/Section\";\r\n\r\nexport function LabelDemo() {\r\n return (\r\n <>\r\n <Section title=\"Plain label\">\r\n <div className=\"flex max-w-sm flex-col gap-1.5\">\r\n <Label htmlFor=\"email-plain\">Email</Label>\r\n <Input id=\"email-plain\" placeholder=\"you@example.com\" />\r\n </div>\r\n </Section>\r\n\r\n <Section title=\"Real use · floating label form\">\r\n <Stack className=\"max-w-sm\">\r\n <FloatingLabel label=\"Email\">\r\n <Input type=\"email\" />\r\n </FloatingLabel>\r\n <FloatingLabel label=\"Password\">\r\n <Input type=\"password\" />\r\n </FloatingLabel>\r\n </Stack>\r\n </Section>\r\n\r\n <Section title=\"Required\">\r\n <div className=\"flex max-w-sm flex-col gap-1.5\">\r\n <Label htmlFor=\"email-required\" required>\r\n Email\r\n </Label>\r\n <Input id=\"email-required\" placeholder=\"you@example.com\" />\r\n </div>\r\n </Section>\r\n </>\r\n );\r\n}"
|
|
3632
4114
|
},
|
|
3633
4115
|
{
|
|
3634
4116
|
"name": "MultiSelect",
|
|
@@ -3799,7 +4281,7 @@
|
|
|
3799
4281
|
]
|
|
3800
4282
|
}
|
|
3801
4283
|
],
|
|
3802
|
-
"usageExample":
|
|
4284
|
+
"usageExample": "import { useState } from \"react\";\r\nimport { MultiSelect } from \"@wizeworks/silicaui-react\";\r\nimport { Section, Row } from \"../lib/Section\";\r\n\r\nconst FRAMEWORKS = [\"React\", \"Vue\", \"Svelte\", \"Solid\", \"Angular\", \"Qwik\", \"Preact\"];\r\n\r\nconst COUNTRIES = [\r\n { value: \"us\", label: \"United States\" },\r\n { value: \"ca\", label: \"Canada\" },\r\n { value: \"mx\", label: \"Mexico\" },\r\n { value: \"gb\", label: \"United Kingdom\" },\r\n { value: \"fr\", label: \"France\" },\r\n { value: \"de\", label: \"Germany\" },\r\n];\r\n\r\nexport function MultiSelectDemo() {\r\n const [frameworks, setFrameworks] = useState<string[]>([\"React\", \"Svelte\"]);\r\n const [countries, setCountries] = useState<{ value: string; label: string }[]>([]);\r\n\r\n return (\r\n <>\r\n <Section title=\"Real use · pick several frameworks (string items)\">\r\n <MultiSelect\r\n items={FRAMEWORKS}\r\n value={frameworks}\r\n onValueChange={(v) => setFrameworks(v as string[])}\r\n placeholder=\"Add a framework…\"\r\n color=\"primary\"\r\n />\r\n </Section>\r\n\r\n <Section title=\"Object items · label ≠ value\">\r\n <MultiSelect\r\n items={COUNTRIES}\r\n value={countries}\r\n onValueChange={(v) => setCountries(v as { value: string; label: string }[])}\r\n placeholder=\"Add countries…\"\r\n />\r\n </Section>\r\n\r\n <Section title=\"Sizes\">\r\n <Row>\r\n {([\"sm\", \"md\", \"lg\"] as const).map((size) => (\r\n <MultiSelect\r\n key={size}\r\n items={[\"A\", \"B\", \"C\"]}\r\n defaultValue={[\"A\"]}\r\n size={size}\r\n placeholder={size}\r\n />\r\n ))}\r\n </Row>\r\n </Section>\r\n\r\n <Section title=\"Disabled\">\r\n <MultiSelect items={FRAMEWORKS} defaultValue={[\"Vue\"]} disabled />\r\n </Section>\r\n </>\r\n );\r\n}"
|
|
3803
4285
|
},
|
|
3804
4286
|
{
|
|
3805
4287
|
"name": "NativeSelect",
|
|
@@ -3849,7 +4331,7 @@
|
|
|
3849
4331
|
]
|
|
3850
4332
|
}
|
|
3851
4333
|
],
|
|
3852
|
-
"usageExample": null
|
|
4334
|
+
"usageExample": "import { useState } from \"react\";\r\nimport { NumberField } from \"@wizeworks/silicaui-react\";\r\nimport { Section, Row } from \"../lib/Section\";\r\n\r\nexport function NumberFieldDemo() {\r\n const [qty, setQty] = useState<number | null>(2);\r\n\r\n return (\r\n <>\r\n <Section title=\"Real use · cart quantity\">\r\n <Row>\r\n <NumberField\r\n label=\"Quantity\"\r\n value={qty}\r\n onValueChange={setQty}\r\n min={1}\r\n max={10}\r\n />\r\n <span className=\"text-sm opacity-60\">{qty ?? 0} in cart</span>\r\n </Row>\r\n </Section>\r\n\r\n <Section title=\"Step + bounds\">\r\n <Row>\r\n <NumberField label=\"Percent\" defaultValue={50} min={0} max={100} step={5} />\r\n </Row>\r\n </Section>\r\n </>\r\n );\r\n}"
|
|
3853
4335
|
},
|
|
3854
4336
|
{
|
|
3855
4337
|
"name": "PasswordInput",
|
|
@@ -3860,7 +4342,7 @@
|
|
|
3860
4342
|
"props": [
|
|
3861
4343
|
{
|
|
3862
4344
|
"name": "PasswordInputProps",
|
|
3863
|
-
"extends": "extends Omit<\n
|
|
4345
|
+
"extends": "extends VoidElementProps<\r\n Omit<\r\n React.InputHTMLAttributes<HTMLInputElement>,\r\n \"size\" | \"color\" | \"type\"\r\n >\r\n >",
|
|
3864
4346
|
"members": [
|
|
3865
4347
|
{
|
|
3866
4348
|
"name": "color",
|
|
@@ -3889,7 +4371,7 @@
|
|
|
3889
4371
|
]
|
|
3890
4372
|
}
|
|
3891
4373
|
],
|
|
3892
|
-
"usageExample":
|
|
4374
|
+
"usageExample": "import { useState } from \"react\";\r\nimport { PasswordInput } from \"@wizeworks/silicaui-react\";\r\nimport { Section, Stack } from \"../lib/Section\";\r\nimport { SIZES } from \"../lib/data\";\r\n\r\nexport function PasswordInputDemo() {\r\n const [value, setValue] = useState(\"hunter2\");\r\n\r\n return (\r\n <>\r\n <Section title=\"Colors\">\r\n <Stack className=\"max-w-sm\">\r\n <PasswordInput placeholder=\"Default\" />\r\n <PasswordInput color=\"primary\" placeholder=\"Primary\" />\r\n <PasswordInput color=\"error\" placeholder=\"Error\" defaultValue=\"tooshort\" />\r\n <PasswordInput disabled placeholder=\"Disabled\" defaultValue=\"secret123\" />\r\n </Stack>\r\n </Section>\r\n\r\n <Section title=\"Sizes\">\r\n <Stack className=\"max-w-sm\">\r\n {SIZES.map((size) => (\r\n <PasswordInput key={size} size={size} placeholder={size} />\r\n ))}\r\n </Stack>\r\n </Section>\r\n\r\n <Section title=\"Controlled\">\r\n <Stack className=\"max-w-sm\">\r\n <PasswordInput\r\n value={value}\r\n onChange={(e) => setValue(e.target.value)}\r\n placeholder=\"Password\"\r\n />\r\n <p className=\"text-xs opacity-60\">{value.length} characters</p>\r\n </Stack>\r\n </Section>\r\n </>\r\n );\r\n}"
|
|
3893
4375
|
},
|
|
3894
4376
|
{
|
|
3895
4377
|
"name": "PhoneInput",
|
|
@@ -3994,7 +4476,7 @@
|
|
|
3994
4476
|
]
|
|
3995
4477
|
}
|
|
3996
4478
|
],
|
|
3997
|
-
"usageExample":
|
|
4479
|
+
"usageExample": "import { useState } from \"react\";\r\nimport { PhoneInput } from \"@wizeworks/silicaui-react\";\r\nimport { Section, Stack } from \"../lib/Section\";\r\nimport { SIZES } from \"../lib/data\";\r\n\r\nexport function PhoneInputDemo() {\r\n const [national, setNational] = useState(\"\");\r\n const [e164, setE164] = useState(\"\");\r\n\r\n return (\r\n <>\r\n <Section title=\"Colors\">\r\n <Stack className=\"max-w-sm\">\r\n <PhoneInput />\r\n <PhoneInput color=\"primary\" defaultCountry=\"GB\" defaultValue=\"7911123456\" />\r\n <PhoneInput disabled defaultCountry=\"DE\" defaultValue=\"15123456789\" />\r\n </Stack>\r\n </Section>\r\n\r\n <Section title=\"Sizes\">\r\n <Stack className=\"max-w-sm\">\r\n {SIZES.map((size) => (\r\n <PhoneInput key={size} size={size} />\r\n ))}\r\n </Stack>\r\n </Section>\r\n\r\n <Section title=\"Controlled\">\r\n <Stack className=\"max-w-sm\">\r\n <PhoneInput\r\n value={national}\r\n onValueChange={(nat, e164) => {\r\n setNational(nat);\r\n setE164(e164);\r\n }}\r\n />\r\n <p className=\"text-xs opacity-60\">E.164: {e164 || \"(empty)\"}</p>\r\n </Stack>\r\n </Section>\r\n </>\r\n );\r\n}"
|
|
3998
4480
|
},
|
|
3999
4481
|
{
|
|
4000
4482
|
"name": "PinInput",
|
|
@@ -4029,37 +4511,171 @@
|
|
|
4029
4511
|
"name": "onValueChange",
|
|
4030
4512
|
"optional": true,
|
|
4031
4513
|
"type": "(value: string) => void",
|
|
4032
|
-
"doc": "Fires with the next value on every keystroke, paste, or deletion."
|
|
4514
|
+
"doc": "Fires with the next value on every keystroke, paste, or deletion."
|
|
4515
|
+
},
|
|
4516
|
+
{
|
|
4517
|
+
"name": "onComplete",
|
|
4518
|
+
"optional": true,
|
|
4519
|
+
"type": "(value: string) => void",
|
|
4520
|
+
"doc": "Fires once the value reaches `length` characters."
|
|
4521
|
+
},
|
|
4522
|
+
{
|
|
4523
|
+
"name": "mode",
|
|
4524
|
+
"optional": true,
|
|
4525
|
+
"type": "\"numeric\" | \"text\"",
|
|
4526
|
+
"doc": "Restrict input to digits (`\"numeric\"`, default) or any single character (`\"text\"`)."
|
|
4527
|
+
},
|
|
4528
|
+
{
|
|
4529
|
+
"name": "mask",
|
|
4530
|
+
"optional": true,
|
|
4531
|
+
"type": "boolean",
|
|
4532
|
+
"doc": "Render each cell's character as a dot, like a password field. Default `false`."
|
|
4533
|
+
},
|
|
4534
|
+
{
|
|
4535
|
+
"name": "color",
|
|
4536
|
+
"optional": true,
|
|
4537
|
+
"type": "PinInputColor",
|
|
4538
|
+
"doc": "Accent color; maps to `pin-input-cell-<color>` (border + focus ring)."
|
|
4539
|
+
},
|
|
4540
|
+
{
|
|
4541
|
+
"name": "size",
|
|
4542
|
+
"optional": true,
|
|
4543
|
+
"type": "PinInputSize",
|
|
4544
|
+
"doc": "Default `md`. Matches same-size Input heights."
|
|
4545
|
+
},
|
|
4546
|
+
{
|
|
4547
|
+
"name": "disabled",
|
|
4548
|
+
"optional": true,
|
|
4549
|
+
"type": "boolean",
|
|
4550
|
+
"doc": ""
|
|
4551
|
+
},
|
|
4552
|
+
{
|
|
4553
|
+
"name": "autoFocus",
|
|
4554
|
+
"optional": true,
|
|
4555
|
+
"type": "boolean",
|
|
4556
|
+
"doc": "Focus the first cell on mount."
|
|
4557
|
+
},
|
|
4558
|
+
{
|
|
4559
|
+
"name": "name",
|
|
4560
|
+
"optional": true,
|
|
4561
|
+
"type": "string",
|
|
4562
|
+
"doc": "Field name for form submission (submits the joined value as one field)."
|
|
4563
|
+
},
|
|
4564
|
+
{
|
|
4565
|
+
"name": "\"aria-label\"",
|
|
4566
|
+
"optional": true,
|
|
4567
|
+
"type": "string",
|
|
4568
|
+
"doc": ""
|
|
4569
|
+
}
|
|
4570
|
+
]
|
|
4571
|
+
}
|
|
4572
|
+
],
|
|
4573
|
+
"usageExample": "import { useState } from \"react\";\r\nimport { PinInput } from \"@wizeworks/silicaui-react\";\r\nimport { Section, Stack, Row } from \"../lib/Section\";\r\nimport { SIZES } from \"../lib/data\";\r\n\r\nexport function PinInputDemo() {\r\n const [code, setCode] = useState(\"\");\r\n const [completed, setCompleted] = useState(\"\");\r\n\r\n return (\r\n <>\r\n <Section title=\"Colors\">\r\n <Stack>\r\n <PinInput length={4} />\r\n <PinInput length={4} color=\"primary\" />\r\n <PinInput length={4} color=\"error\" defaultValue=\"12\" />\r\n <PinInput length={4} disabled defaultValue=\"1234\" />\r\n </Stack>\r\n </Section>\r\n\r\n <Section title=\"Sizes\">\r\n <Stack>\r\n {SIZES.map((size) => (\r\n <PinInput key={size} length={4} size={size} />\r\n ))}\r\n </Stack>\r\n </Section>\r\n\r\n <Section title=\"Masked (text mode)\">\r\n <Row>\r\n <PinInput length={4} mode=\"text\" mask />\r\n </Row>\r\n </Section>\r\n\r\n <Section title=\"Controlled + onComplete\">\r\n <Stack>\r\n <PinInput\r\n length={6}\r\n value={code}\r\n onValueChange={setCode}\r\n onComplete={setCompleted}\r\n />\r\n <p className=\"text-xs opacity-60\">\r\n Value: {code || \"(empty)\"}\r\n {completed && ` — completed: ${completed}`}\r\n </p>\r\n </Stack>\r\n </Section>\r\n </>\r\n );\r\n}"
|
|
4574
|
+
},
|
|
4575
|
+
{
|
|
4576
|
+
"name": "Radio",
|
|
4577
|
+
"package": "@wizeworks/silicaui-react",
|
|
4578
|
+
"category": "Data input",
|
|
4579
|
+
"sourceFile": "silicaui-react/src/radio.tsx",
|
|
4580
|
+
"description": "Silica Radio — a restyled native `<input type=\"radio\">`. Group them by giving several the same `name`. All native attributes pass through. <Radio name=\"plan\" value=\"pro\">Pro</Radio>",
|
|
4581
|
+
"props": [
|
|
4582
|
+
{
|
|
4583
|
+
"name": "RadioProps",
|
|
4584
|
+
"extends": "extends Omit<\r\n React.InputHTMLAttributes<HTMLInputElement>,\r\n \"size\" | \"color\" | \"type\"\r\n >",
|
|
4585
|
+
"members": [
|
|
4586
|
+
{
|
|
4587
|
+
"name": "color",
|
|
4588
|
+
"optional": true,
|
|
4589
|
+
"type": "SilicaColor",
|
|
4590
|
+
"doc": "Accent color; maps to `radio-<color>` (checked dot + focus ring)."
|
|
4591
|
+
},
|
|
4592
|
+
{
|
|
4593
|
+
"name": "size",
|
|
4594
|
+
"optional": true,
|
|
4595
|
+
"type": "SilicaSize",
|
|
4596
|
+
"doc": "Default `md`."
|
|
4597
|
+
},
|
|
4598
|
+
{
|
|
4599
|
+
"name": "children",
|
|
4600
|
+
"optional": true,
|
|
4601
|
+
"type": "React.ReactNode",
|
|
4602
|
+
"doc": "Caption. Wraps the control in a `<label>` so the text is a click target."
|
|
4603
|
+
}
|
|
4604
|
+
]
|
|
4605
|
+
}
|
|
4606
|
+
],
|
|
4607
|
+
"usageExample": "import { useState } from \"react\";\r\nimport { Radio } from \"@wizeworks/silicaui-react\";\r\nimport { Section } from \"../lib/Section\";\r\nimport { ColorVariantSizeGrid } from \"../lib/ColorGrid\";\r\n\r\nconst PLANS = [\r\n { id: \"starter\", label: \"Starter — $9/mo\" },\r\n { id: \"pro\", label: \"Pro — $29/mo\" },\r\n { id: \"enterprise\", label: \"Enterprise — custom\" },\r\n];\r\n\r\nexport function RadioDemo() {\r\n const [plan, setPlan] = useState(\"pro\");\r\n\r\n return (\r\n <>\r\n <ColorVariantSizeGrid\r\n Component={Radio}\r\n render={({ color, size }) => (\r\n <label className=\"flex items-center gap-2 text-sm\">\r\n <Radio name={`radio-${color ?? size}`} color={color} size={size} defaultChecked />\r\n {color ?? size}\r\n </label>\r\n )}\r\n />\r\n\r\n <Section title=\"Real use · pick a plan\">\r\n <div className=\"flex flex-col gap-2\">\r\n {PLANS.map((p) => (\r\n <label key={p.id} className=\"flex items-center gap-2 text-sm\">\r\n <Radio\r\n name=\"plan\"\r\n color=\"primary\"\r\n checked={plan === p.id}\r\n onChange={() => setPlan(p.id)}\r\n />\r\n {p.label}\r\n </label>\r\n ))}\r\n </div>\r\n </Section>\r\n </>\r\n );\r\n}"
|
|
4608
|
+
},
|
|
4609
|
+
{
|
|
4610
|
+
"name": "RadioGroup",
|
|
4611
|
+
"package": "@wizeworks/silicaui-react",
|
|
4612
|
+
"category": "Data input",
|
|
4613
|
+
"sourceFile": "silicaui-react/src/radio-group.tsx",
|
|
4614
|
+
"description": "Silica RadioGroup — a managed set of radios (native inputs, so arrow-key navigation comes free). Pair with `RadioOption`s. <RadioGroup defaultValue=\"card\" name=\"pay\"> <RadioOption value=\"card\">Card</RadioOption> <RadioOption value=\"ach\">Bank transfer</RadioOption> </RadioGroup>",
|
|
4615
|
+
"props": [
|
|
4616
|
+
{
|
|
4617
|
+
"name": "RadioGroupProps",
|
|
4618
|
+
"extends": "extends Omit<React.HTMLAttributes<HTMLDivElement>, \"onChange\" | \"defaultValue\">",
|
|
4619
|
+
"members": [
|
|
4620
|
+
{
|
|
4621
|
+
"name": "value",
|
|
4622
|
+
"optional": true,
|
|
4623
|
+
"type": "string",
|
|
4624
|
+
"doc": "Controlled selected value."
|
|
4625
|
+
},
|
|
4626
|
+
{
|
|
4627
|
+
"name": "defaultValue",
|
|
4628
|
+
"optional": true,
|
|
4629
|
+
"type": "string",
|
|
4630
|
+
"doc": "Uncontrolled initial value."
|
|
4631
|
+
},
|
|
4632
|
+
{
|
|
4633
|
+
"name": "onValueChange",
|
|
4634
|
+
"optional": true,
|
|
4635
|
+
"type": "(value: string) => void",
|
|
4636
|
+
"doc": "Fires with the newly-selected value."
|
|
4033
4637
|
},
|
|
4034
4638
|
{
|
|
4035
|
-
"name": "
|
|
4639
|
+
"name": "name",
|
|
4036
4640
|
"optional": true,
|
|
4037
|
-
"type": "
|
|
4038
|
-
"doc": "
|
|
4641
|
+
"type": "string",
|
|
4642
|
+
"doc": "Shared radio `name` (auto-generated if omitted)."
|
|
4039
4643
|
},
|
|
4040
4644
|
{
|
|
4041
|
-
"name": "
|
|
4645
|
+
"name": "orientation",
|
|
4042
4646
|
"optional": true,
|
|
4043
|
-
"type": "
|
|
4044
|
-
"doc": "
|
|
4647
|
+
"type": "RadioGroupOrientation",
|
|
4648
|
+
"doc": "Stack (`vertical`, default) or row (`horizontal`)."
|
|
4045
4649
|
},
|
|
4046
4650
|
{
|
|
4047
|
-
"name": "
|
|
4651
|
+
"name": "disabled",
|
|
4048
4652
|
"optional": true,
|
|
4049
4653
|
"type": "boolean",
|
|
4050
|
-
"doc": "
|
|
4654
|
+
"doc": "Disable every option."
|
|
4051
4655
|
},
|
|
4052
4656
|
{
|
|
4053
4657
|
"name": "color",
|
|
4054
4658
|
"optional": true,
|
|
4055
|
-
"type": "
|
|
4056
|
-
"doc": "
|
|
4659
|
+
"type": "SilicaColor",
|
|
4660
|
+
"doc": "Default accent color for the options."
|
|
4057
4661
|
},
|
|
4058
4662
|
{
|
|
4059
4663
|
"name": "size",
|
|
4060
4664
|
"optional": true,
|
|
4061
|
-
"type": "
|
|
4062
|
-
"doc": "Default
|
|
4665
|
+
"type": "SilicaSize",
|
|
4666
|
+
"doc": "Default size for the options."
|
|
4667
|
+
}
|
|
4668
|
+
]
|
|
4669
|
+
},
|
|
4670
|
+
{
|
|
4671
|
+
"name": "RadioOptionProps",
|
|
4672
|
+
"extends": "extends Omit<React.LabelHTMLAttributes<HTMLLabelElement>, \"onChange\">",
|
|
4673
|
+
"members": [
|
|
4674
|
+
{
|
|
4675
|
+
"name": "value",
|
|
4676
|
+
"optional": false,
|
|
4677
|
+
"type": "string",
|
|
4678
|
+
"doc": "This option's value."
|
|
4063
4679
|
},
|
|
4064
4680
|
{
|
|
4065
4681
|
"name": "disabled",
|
|
@@ -4067,63 +4683,29 @@
|
|
|
4067
4683
|
"type": "boolean",
|
|
4068
4684
|
"doc": ""
|
|
4069
4685
|
},
|
|
4070
|
-
{
|
|
4071
|
-
"name": "autoFocus",
|
|
4072
|
-
"optional": true,
|
|
4073
|
-
"type": "boolean",
|
|
4074
|
-
"doc": "Focus the first cell on mount."
|
|
4075
|
-
},
|
|
4076
|
-
{
|
|
4077
|
-
"name": "name",
|
|
4078
|
-
"optional": true,
|
|
4079
|
-
"type": "string",
|
|
4080
|
-
"doc": "Field name for form submission (submits the joined value as one field)."
|
|
4081
|
-
},
|
|
4082
|
-
{
|
|
4083
|
-
"name": "\"aria-label\"",
|
|
4084
|
-
"optional": true,
|
|
4085
|
-
"type": "string",
|
|
4086
|
-
"doc": ""
|
|
4087
|
-
}
|
|
4088
|
-
]
|
|
4089
|
-
}
|
|
4090
|
-
],
|
|
4091
|
-
"usageExample": null
|
|
4092
|
-
},
|
|
4093
|
-
{
|
|
4094
|
-
"name": "Radio",
|
|
4095
|
-
"package": "@wizeworks/silicaui-react",
|
|
4096
|
-
"category": "Data input",
|
|
4097
|
-
"sourceFile": "silicaui-react/src/radio.tsx",
|
|
4098
|
-
"description": "Silica Radio — a restyled native `<input type=\"radio\">`. Group them by giving several the same `name`. All native attributes pass through.",
|
|
4099
|
-
"props": [
|
|
4100
|
-
{
|
|
4101
|
-
"name": "RadioProps",
|
|
4102
|
-
"extends": "extends Omit<\n React.InputHTMLAttributes<HTMLInputElement>,\n \"size\" | \"color\" | \"type\"\n >",
|
|
4103
|
-
"members": [
|
|
4104
4686
|
{
|
|
4105
4687
|
"name": "color",
|
|
4106
4688
|
"optional": true,
|
|
4107
4689
|
"type": "SilicaColor",
|
|
4108
|
-
"doc": "
|
|
4690
|
+
"doc": ""
|
|
4109
4691
|
},
|
|
4110
4692
|
{
|
|
4111
4693
|
"name": "size",
|
|
4112
4694
|
"optional": true,
|
|
4113
4695
|
"type": "SilicaSize",
|
|
4114
|
-
"doc": "
|
|
4696
|
+
"doc": ""
|
|
4115
4697
|
}
|
|
4116
4698
|
]
|
|
4117
4699
|
}
|
|
4118
4700
|
],
|
|
4119
|
-
"usageExample":
|
|
4701
|
+
"usageExample": "import { useState } from \"react\";\r\nimport { RadioGroup, RadioOption } from \"@wizeworks/silicaui-react\";\r\nimport { Section } from \"../lib/Section\";\r\n\r\nexport function RadioGroupDemo() {\r\n const [plan, setPlan] = useState(\"pro\");\r\n\r\n return (\r\n <>\r\n <Section title=\"Real use · billing plan\">\r\n <RadioGroup value={plan} onValueChange={setPlan} color=\"primary\">\r\n <RadioOption value=\"starter\">Starter — $9/mo</RadioOption>\r\n <RadioOption value=\"pro\">Pro — $29/mo</RadioOption>\r\n <RadioOption value=\"enterprise\">Enterprise — custom</RadioOption>\r\n </RadioGroup>\r\n </Section>\r\n\r\n <Section title=\"Horizontal\">\r\n <RadioGroup defaultValue=\"md\" orientation=\"horizontal\" color=\"primary\">\r\n <RadioOption value=\"sm\">Small</RadioOption>\r\n <RadioOption value=\"md\">Medium</RadioOption>\r\n <RadioOption value=\"lg\">Large</RadioOption>\r\n </RadioGroup>\r\n </Section>\r\n </>\r\n );\r\n}"
|
|
4120
4702
|
},
|
|
4121
4703
|
{
|
|
4122
|
-
"name": "
|
|
4704
|
+
"name": "RadioOption",
|
|
4123
4705
|
"package": "@wizeworks/silicaui-react",
|
|
4124
4706
|
"category": "Data input",
|
|
4125
4707
|
"sourceFile": "silicaui-react/src/radio-group.tsx",
|
|
4126
|
-
"description": "
|
|
4708
|
+
"description": "One labeled radio within a RadioGroup.",
|
|
4127
4709
|
"props": [
|
|
4128
4710
|
{
|
|
4129
4711
|
"name": "RadioGroupProps",
|
|
@@ -4232,14 +4814,14 @@
|
|
|
4232
4814
|
]
|
|
4233
4815
|
}
|
|
4234
4816
|
],
|
|
4235
|
-
"usageExample":
|
|
4817
|
+
"usageExample": "import { useState } from \"react\";\r\nimport { Range } from \"@wizeworks/silicaui-react\";\r\nimport { Section, LabeledRow } from \"../lib/Section\";\r\nimport { COLORS } from \"../lib/data\";\r\n\r\nexport function RangeDemo() {\r\n const [volume, setVolume] = useState(40);\r\n const [priceRange, setPriceRange] = useState<number[]>([20, 70]);\r\n\r\n return (\r\n <>\r\n <Section title=\"Colors\">\r\n <div className=\"flex max-w-md flex-col gap-4\">\r\n {COLORS.slice(0, 6).map((color) => (\r\n <Range key={color} color={color} defaultValue={55} />\r\n ))}\r\n </div>\r\n </Section>\r\n\r\n <Section title=\"Real use · volume + price range\">\r\n <div className=\"flex max-w-md flex-col gap-5\">\r\n <LabeledRow label={`Volume · ${volume}%`}>\r\n <Range\r\n color=\"brand\"\r\n value={volume}\r\n onValueChange={(v) => setVolume(v as number)}\r\n />\r\n </LabeledRow>\r\n <LabeledRow label={`Price range · $${priceRange[0]} – $${priceRange[1]}`}>\r\n <Range\r\n color=\"success\"\r\n value={priceRange}\r\n onValueChange={(v) => setPriceRange(v as number[])}\r\n />\r\n </LabeledRow>\r\n </div>\r\n </Section>\r\n </>\r\n );\r\n}"
|
|
4236
4818
|
},
|
|
4237
4819
|
{
|
|
4238
4820
|
"name": "Rating",
|
|
4239
4821
|
"package": "@wizeworks/silicaui-react",
|
|
4240
4822
|
"category": "Data input",
|
|
4241
4823
|
"sourceFile": "silicaui-react/src/rating.tsx",
|
|
4242
|
-
"description": "Silica Rating — a row of star buttons. <Rating defaultValue={3}
|
|
4824
|
+
"description": "Silica Rating — a row of star buttons. <Rating defaultValue={3} onValueChange={setStars} /> <Rating value={4.5 | 4} color=\"warning\" readOnly /> Keyboard: arrow keys change the value; Home/End jump to 1/max.",
|
|
4243
4825
|
"props": [
|
|
4244
4826
|
{
|
|
4245
4827
|
"name": "RatingProps",
|
|
@@ -4257,11 +4839,17 @@
|
|
|
4257
4839
|
"type": "number",
|
|
4258
4840
|
"doc": "Initial value when uncontrolled."
|
|
4259
4841
|
},
|
|
4842
|
+
{
|
|
4843
|
+
"name": "onValueChange",
|
|
4844
|
+
"optional": true,
|
|
4845
|
+
"type": "(value: number) => void",
|
|
4846
|
+
"doc": "Called with the new rating whenever it changes."
|
|
4847
|
+
},
|
|
4260
4848
|
{
|
|
4261
4849
|
"name": "onChange",
|
|
4262
4850
|
"optional": true,
|
|
4263
4851
|
"type": "(value: number) => void",
|
|
4264
|
-
"doc": "
|
|
4852
|
+
"doc": "@deprecated Use `onValueChange`. `onChange` is reserved for the native DOM handler on components that wrap a real form element; still honored here so this isn't a breaking change."
|
|
4265
4853
|
},
|
|
4266
4854
|
{
|
|
4267
4855
|
"name": "max",
|
|
@@ -4302,7 +4890,7 @@
|
|
|
4302
4890
|
]
|
|
4303
4891
|
}
|
|
4304
4892
|
],
|
|
4305
|
-
"usageExample":
|
|
4893
|
+
"usageExample": "import { useState } from \"react\";\r\nimport { Rating } from \"@wizeworks/silicaui-react\";\r\nimport { Section, Row, LabeledRow } from \"../lib/Section\";\r\nimport { COLORS, SIZES } from \"../lib/data\";\r\n\r\nexport function RatingDemo() {\r\n const [stars, setStars] = useState(3);\r\n\r\n return (\r\n <>\r\n <Section title=\"Colors (read-only)\">\r\n <Row>\r\n {COLORS.slice(0, 6).map((color) => (\r\n <Rating key={color} color={color} defaultValue={4} readOnly />\r\n ))}\r\n </Row>\r\n </Section>\r\n\r\n <Section title=\"Sizes\">\r\n <div className=\"flex flex-col gap-2\">\r\n {SIZES.map((size) => (\r\n <Rating key={size} color=\"warning\" size={size} defaultValue={3} readOnly />\r\n ))}\r\n </div>\r\n </Section>\r\n\r\n <Section title=\"Real use · rate this product\">\r\n <LabeledRow label={`You rated this ${stars} of 5 stars`}>\r\n <Rating color=\"warning\" value={stars} onValueChange={setStars} />\r\n </LabeledRow>\r\n </Section>\r\n </>\r\n );\r\n}"
|
|
4306
4894
|
},
|
|
4307
4895
|
{
|
|
4308
4896
|
"name": "SearchInput",
|
|
@@ -4313,7 +4901,7 @@
|
|
|
4313
4901
|
"props": [
|
|
4314
4902
|
{
|
|
4315
4903
|
"name": "SearchInputProps",
|
|
4316
|
-
"extends": "extends Omit<\n
|
|
4904
|
+
"extends": "extends VoidElementProps<\r\n Omit<\r\n React.InputHTMLAttributes<HTMLInputElement>,\r\n \"size\" | \"color\" | \"type\"\r\n >\r\n >",
|
|
4317
4905
|
"members": [
|
|
4318
4906
|
{
|
|
4319
4907
|
"name": "color",
|
|
@@ -4348,7 +4936,7 @@
|
|
|
4348
4936
|
]
|
|
4349
4937
|
}
|
|
4350
4938
|
],
|
|
4351
|
-
"usageExample":
|
|
4939
|
+
"usageExample": "import { useState } from \"react\";\r\nimport { SearchInput } from \"@wizeworks/silicaui-react\";\r\nimport { Section, Stack } from \"../lib/Section\";\r\nimport { SIZES } from \"../lib/data\";\r\n\r\nexport function SearchInputDemo() {\r\n const [query, setQuery] = useState(\"\");\r\n\r\n return (\r\n <>\r\n <Section title=\"Colors\">\r\n <Stack className=\"max-w-sm\">\r\n <SearchInput placeholder=\"Search…\" />\r\n <SearchInput color=\"primary\" placeholder=\"Search…\" defaultValue=\"silica\" />\r\n <SearchInput disabled placeholder=\"Search…\" defaultValue=\"disabled\" />\r\n </Stack>\r\n </Section>\r\n\r\n <Section title=\"Sizes\">\r\n <Stack className=\"max-w-sm\">\r\n {SIZES.map((size) => (\r\n <SearchInput key={size} size={size} placeholder={size} defaultValue={size} />\r\n ))}\r\n </Stack>\r\n </Section>\r\n\r\n <Section title=\"Controlled\">\r\n <Stack className=\"max-w-sm\">\r\n <SearchInput\r\n value={query}\r\n onValueChange={setQuery}\r\n placeholder=\"Search components…\"\r\n />\r\n <p className=\"text-xs opacity-60\">\r\n {query ? `Searching for \"${query}\"` : \"Type to search, × to clear\"}\r\n </p>\r\n </Stack>\r\n </Section>\r\n </>\r\n );\r\n}"
|
|
4352
4940
|
},
|
|
4353
4941
|
{
|
|
4354
4942
|
"name": "Select",
|
|
@@ -4489,7 +5077,7 @@
|
|
|
4489
5077
|
{
|
|
4490
5078
|
"name": "popupProps",
|
|
4491
5079
|
"optional": true,
|
|
4492
|
-
"type": "React.ComponentProps<typeof BaseSelect.Popup> & {\n [key: `data-${string}`]: string;\n }",
|
|
5080
|
+
"type": "React.ComponentProps<typeof BaseSelect.Popup> & {\r\n [key: `data-${string}`]: string;\r\n }",
|
|
4493
5081
|
"doc": "Extra props spread onto the popup surface. The popup renders in a PORTAL at document.body, so when the Select lives inside a scoped `[data-theme]` island pass `popupProps={{ \"data-theme\": \"…\" }}` to re-establish the theme tokens (custom props inherit through the DOM, not the portal boundary)."
|
|
4494
5082
|
},
|
|
4495
5083
|
{
|
|
@@ -4519,7 +5107,7 @@
|
|
|
4519
5107
|
]
|
|
4520
5108
|
}
|
|
4521
5109
|
],
|
|
4522
|
-
"usageExample":
|
|
5110
|
+
"usageExample": "import { NativeSelect } from \"@wizeworks/silicaui-react\";\r\nimport { Section, Row, Stack } from \"../lib/Section\";\r\nimport { SIZES } from \"../lib/data\";\r\n\r\nexport function SelectDemo() {\r\n return (\r\n <>\r\n <Section title=\"Colors\">\r\n <Stack className=\"max-w-md\">\r\n <NativeSelect defaultValue=\"\">\r\n <option value=\"\" disabled>\r\n Pick a framework…\r\n </option>\r\n <option>React</option>\r\n <option>Svelte</option>\r\n <option>Vue</option>\r\n <option>Solid</option>\r\n </NativeSelect>\r\n <NativeSelect color=\"primary\" defaultValue=\"React\">\r\n <option>React</option>\r\n <option>Svelte</option>\r\n <option>Vue</option>\r\n </NativeSelect>\r\n <NativeSelect color=\"success\" defaultValue=\"React\">\r\n <option>React</option>\r\n <option>Svelte</option>\r\n </NativeSelect>\r\n <NativeSelect color=\"error\" defaultValue=\"React\">\r\n <option>React</option>\r\n <option>Svelte</option>\r\n </NativeSelect>\r\n <NativeSelect disabled defaultValue=\"React\">\r\n <option>React</option>\r\n </NativeSelect>\r\n </Stack>\r\n </Section>\r\n\r\n <Section title=\"Sizes\">\r\n <Row>\r\n {SIZES.map((size) => (\r\n <NativeSelect key={size} size={size} defaultValue={size}>\r\n <option>{size}</option>\r\n </NativeSelect>\r\n ))}\r\n </Row>\r\n </Section>\r\n\r\n <Section title=\"Real use · shipping region\">\r\n <div className=\"grid max-w-sm gap-3 rounded-box border border-base-300 bg-base-100 p-5 shadow-sm\">\r\n <label className=\"flex flex-col gap-1.5 text-sm\">\r\n Country\r\n <NativeSelect color=\"primary\" defaultValue=\"US\">\r\n <option value=\"US\">United States</option>\r\n <option value=\"CA\">Canada</option>\r\n <option value=\"MX\">Mexico</option>\r\n <option value=\"UK\">United Kingdom</option>\r\n </NativeSelect>\r\n </label>\r\n <label className=\"flex flex-col gap-1.5 text-sm\">\r\n Shipping speed\r\n <NativeSelect defaultValue=\"standard\">\r\n <option value=\"standard\">Standard (5–7 days)</option>\r\n <option value=\"express\">Express (2–3 days)</option>\r\n <option value=\"overnight\">Overnight</option>\r\n </NativeSelect>\r\n </label>\r\n </div>\r\n </Section>\r\n </>\r\n );\r\n}"
|
|
4523
5111
|
},
|
|
4524
5112
|
{
|
|
4525
5113
|
"name": "SelectionList",
|
|
@@ -4565,7 +5153,7 @@
|
|
|
4565
5153
|
]
|
|
4566
5154
|
}
|
|
4567
5155
|
],
|
|
4568
|
-
"usageExample":
|
|
5156
|
+
"usageExample": "import { useState } from \"react\";\r\nimport { SelectionList } from \"@wizeworks/silicaui-react\";\r\nimport type { SelectionListItem } from \"@wizeworks/silicaui-react\";\r\nimport { Section, Row } from \"../lib/Section\";\r\n\r\nconst PlanIcon = (\r\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.75\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\r\n <rect width=\"18\" height=\"18\" x=\"3\" y=\"3\" rx=\"2\" />\r\n <path d=\"M3 9h18\" />\r\n </svg>\r\n);\r\n\r\nconst PLANS: SelectionListItem[] = [\r\n { id: \"free\", label: \"Free\", description: \"For trying things out\", icon: PlanIcon },\r\n { id: \"pro\", label: \"Pro\", description: \"For growing teams\", icon: PlanIcon },\r\n { id: \"enterprise\", label: \"Enterprise\", description: \"Custom limits & support\", icon: PlanIcon },\r\n];\r\n\r\nconst NOTIFICATIONS: SelectionListItem[] = [\r\n { id: \"email\", label: \"Email\", description: \"Order + shipping updates\" },\r\n { id: \"sms\", label: \"SMS\", description: \"Delivery alerts only\" },\r\n { id: \"push\", label: \"Push\", description: \"Real-time on this device\" },\r\n { id: \"digest\", label: \"Weekly digest\", description: \"Coming soon\", disabled: true },\r\n];\r\n\r\nexport function SelectionListDemo() {\r\n const [plan, setPlan] = useState<string[]>([\"pro\"]);\r\n const [channels, setChannels] = useState<string[]>([\"email\", \"push\"]);\r\n\r\n return (\r\n <>\r\n <Section title=\"Real use · single-select plan picker\">\r\n <Row>\r\n <SelectionList\r\n items={PLANS}\r\n value={plan}\r\n onValueChange={setPlan}\r\n className=\"w-72\"\r\n />\r\n </Row>\r\n </Section>\r\n\r\n <Section title=\"Multi-select · notification channels\">\r\n <Row>\r\n <SelectionList\r\n items={NOTIFICATIONS}\r\n multiple\r\n value={channels}\r\n onValueChange={setChannels}\r\n className=\"w-72\"\r\n />\r\n </Row>\r\n </Section>\r\n </>\r\n );\r\n}"
|
|
4569
5157
|
},
|
|
4570
5158
|
{
|
|
4571
5159
|
"name": "Slider",
|
|
@@ -4599,7 +5187,7 @@
|
|
|
4599
5187
|
]
|
|
4600
5188
|
}
|
|
4601
5189
|
],
|
|
4602
|
-
"usageExample":
|
|
5190
|
+
"usageExample": "import { useState } from \"react\";\r\nimport { Slider } from \"@wizeworks/silicaui-react\";\r\nimport { Section, LabeledRow } from \"../lib/Section\";\r\nimport { COLORS } from \"../lib/data\";\r\n\r\nexport function SliderDemo() {\r\n const [brightness, setBrightness] = useState(65);\r\n const [range, setRange] = useState<number[]>([25, 75]);\r\n\r\n return (\r\n <>\r\n <Section title=\"Colors\">\r\n <div className=\"flex max-w-md flex-col gap-5\">\r\n {COLORS.slice(0, 6).map((color) => (\r\n <Slider key={color} color={color} defaultValue={55} />\r\n ))}\r\n </div>\r\n </Section>\r\n\r\n <Section title=\"Sizes\">\r\n <div className=\"flex max-w-md flex-col gap-5\">\r\n {([\"sm\", \"md\", \"lg\"] as const).map((size) => (\r\n <Slider key={size} color=\"primary\" size={size} defaultValue={55} />\r\n ))}\r\n </div>\r\n </Section>\r\n\r\n <Section title=\"Real use · brightness + a two-thumb range\">\r\n <div className=\"flex max-w-md flex-col gap-6\">\r\n <LabeledRow label={`Brightness · ${brightness}%`}>\r\n <Slider\r\n color=\"brand\"\r\n value={brightness}\r\n onValueChange={(v) => setBrightness(v as number)}\r\n showValue={false}\r\n />\r\n </LabeledRow>\r\n <LabeledRow label={`Budget · $${range[0]} – $${range[1]}`}>\r\n <Slider\r\n color=\"success\"\r\n value={range}\r\n onValueChange={(v) => setRange(v as number[])}\r\n />\r\n </LabeledRow>\r\n </div>\r\n </Section>\r\n </>\r\n );\r\n}"
|
|
4603
5191
|
},
|
|
4604
5192
|
{
|
|
4605
5193
|
"name": "Switch",
|
|
@@ -4627,7 +5215,7 @@
|
|
|
4627
5215
|
]
|
|
4628
5216
|
}
|
|
4629
5217
|
],
|
|
4630
|
-
"usageExample":
|
|
5218
|
+
"usageExample": "import { useState } from \"react\";\r\nimport { Switch } from \"@wizeworks/silicaui-react\";\r\nimport { Section, Row } from \"../lib/Section\";\r\nimport { SIZES } from \"../lib/data\";\r\n\r\nconst SETTINGS = [\r\n { key: \"push\", label: \"Push notifications\", defaultOn: true },\r\n { key: \"email\", label: \"Email digest\", defaultOn: true },\r\n { key: \"sms\", label: \"SMS alerts\", defaultOn: false },\r\n];\r\n\r\nexport function SwitchDemo() {\r\n const [on, setOn] = useState<Record<string, boolean>>({\r\n push: true,\r\n email: true,\r\n sms: false,\r\n });\r\n\r\n return (\r\n <>\r\n <Section title=\"Colors\">\r\n <Row>\r\n <Switch defaultChecked />\r\n <Switch color=\"primary\" defaultChecked />\r\n <Switch color=\"success\" defaultChecked />\r\n <Switch color=\"warning\" defaultChecked />\r\n <Switch color=\"error\" defaultChecked />\r\n <Switch color=\"brand\" defaultChecked />\r\n <Switch disabled />\r\n </Row>\r\n </Section>\r\n\r\n <Section title=\"Sizes\">\r\n <Row>\r\n {SIZES.filter((s) => s !== \"xl\").map((size) => (\r\n <Switch key={size} color=\"primary\" size={size} defaultChecked />\r\n ))}\r\n </Row>\r\n </Section>\r\n\r\n <Section title=\"Real use · notification settings\">\r\n <div className=\"flex max-w-sm flex-col gap-3 rounded-box border border-base-300 bg-base-100 p-4\">\r\n {SETTINGS.map((s) => (\r\n <label key={s.key} className=\"flex items-center justify-between gap-4 text-sm\">\r\n {s.label}\r\n <Switch\r\n color=\"primary\"\r\n checked={on[s.key]}\r\n onCheckedChange={(v) => setOn((p) => ({ ...p, [s.key]: v }))}\r\n />\r\n </label>\r\n ))}\r\n </div>\r\n </Section>\r\n </>\r\n );\r\n}"
|
|
4631
5219
|
},
|
|
4632
5220
|
{
|
|
4633
5221
|
"name": "TagInput",
|
|
@@ -4715,7 +5303,7 @@
|
|
|
4715
5303
|
]
|
|
4716
5304
|
}
|
|
4717
5305
|
],
|
|
4718
|
-
"usageExample":
|
|
5306
|
+
"usageExample": "import { useState } from \"react\";\r\nimport { TagInput } from \"@wizeworks/silicaui-react\";\r\nimport { Section, Stack } from \"../lib/Section\";\r\nimport { COLORS } from \"../lib/data\";\r\n\r\nexport function TagInputDemo() {\r\n const [tags, setTags] = useState<string[]>([\"design\", \"ui\", \"tokens\"]);\r\n\r\n return (\r\n <>\r\n <Section title=\"Colors\">\r\n <Stack className=\"max-w-md\">\r\n {COLORS.slice(0, 6).map((color) => (\r\n <TagInput\r\n key={color}\r\n color={color}\r\n defaultValue={[color]}\r\n placeholder=\"Add a tag…\"\r\n />\r\n ))}\r\n </Stack>\r\n </Section>\r\n\r\n <Section title=\"Real use · post tags (max 6, dedupe on)\">\r\n <div className=\"flex max-w-md flex-col gap-2\">\r\n <TagInput\r\n color=\"primary\"\r\n value={tags}\r\n onValueChange={setTags}\r\n placeholder=\"Press Enter or , to add\"\r\n max={6}\r\n />\r\n <p className=\"text-xs opacity-60\">\r\n {tags.length} / 6 tags — {tags.join(\", \") || \"none yet\"}\r\n </p>\r\n </div>\r\n </Section>\r\n </>\r\n );\r\n}"
|
|
4719
5307
|
},
|
|
4720
5308
|
{
|
|
4721
5309
|
"name": "Textarea",
|
|
@@ -4743,7 +5331,7 @@
|
|
|
4743
5331
|
]
|
|
4744
5332
|
}
|
|
4745
5333
|
],
|
|
4746
|
-
"usageExample":
|
|
5334
|
+
"usageExample": "import { useState } from \"react\";\r\nimport { Textarea } from \"@wizeworks/silicaui-react\";\r\nimport { Section, Row, Stack } from \"../lib/Section\";\r\nimport { SIZES } from \"../lib/data\";\r\n\r\nexport function TextareaDemo() {\r\n const [note, setNote] = useState(\r\n \"Shipping was fast and the packaging held up well.\",\r\n );\r\n const max = 200;\r\n\r\n return (\r\n <>\r\n <Section title=\"Colors\">\r\n <Stack className=\"max-w-md\">\r\n <Textarea placeholder=\"Default textarea — drag the corner to resize\" />\r\n <Textarea\r\n color=\"primary\"\r\n defaultValue=\"Primary accent — border and focus ring.\"\r\n />\r\n <Textarea color=\"success\" placeholder=\"Success\" />\r\n <Textarea color=\"error\" placeholder=\"Error\" />\r\n <Textarea color=\"brand\" placeholder=\"Brand accent\" rows={2} />\r\n <Textarea disabled defaultValue=\"Disabled\" />\r\n </Stack>\r\n </Section>\r\n\r\n <Section title=\"Sizes\">\r\n <Row>\r\n {SIZES.map((size) => (\r\n <Textarea key={size} size={size} placeholder={size} rows={2} />\r\n ))}\r\n </Row>\r\n </Section>\r\n\r\n <Section title=\"Real use · review with a live character count\">\r\n <div className=\"max-w-sm rounded-box border border-base-300 bg-base-100 p-5 shadow-sm\">\r\n <div className=\"flex flex-col gap-1.5\">\r\n <label className=\"text-sm font-medium\">Your review</label>\r\n <Textarea\r\n color={note.length > max ? \"error\" : \"primary\"}\r\n value={note}\r\n onChange={(e) => setNote(e.target.value)}\r\n rows={3}\r\n />\r\n <span\r\n className={`self-end text-xs ${\r\n note.length > max ? \"text-error\" : \"opacity-60\"\r\n }`}\r\n >\r\n {note.length} / {max}\r\n </span>\r\n </div>\r\n </div>\r\n </Section>\r\n </>\r\n );\r\n}"
|
|
4747
5335
|
},
|
|
4748
5336
|
{
|
|
4749
5337
|
"name": "TimeInput",
|
|
@@ -4830,18 +5418,18 @@
|
|
|
4830
5418
|
]
|
|
4831
5419
|
}
|
|
4832
5420
|
],
|
|
4833
|
-
"usageExample": null
|
|
5421
|
+
"usageExample": "import { useState } from \"react\";\r\nimport { TimeInput, type TimeValue } from \"@wizeworks/silicaui-react\";\r\nimport { Section, Row } from \"../lib/Section\";\r\n\r\nexport function TimeInputDemo() {\r\n const [time, setTime] = useState<TimeValue | null>({ hour: 14, minute: 30 });\r\n\r\n return (\r\n <>\r\n <Section title=\"Real use · 12h field (type digits, arrows, or paste 'e.g. 2:30 PM')\">\r\n <TimeInput value={time} onValueChange={setTime} color=\"primary\" />\r\n <p className=\"mt-2 text-sm opacity-70\">\r\n {time ? `${String(time.hour).padStart(2, \"0\")}:${String(time.minute).padStart(2, \"0\")} (24h)` : \"No time\"}\r\n </p>\r\n </Section>\r\n\r\n <Section title=\"24h + seconds\">\r\n <TimeInput hourCycle={24} showSeconds defaultValue={{ hour: 14, minute: 30, second: 45 }} />\r\n </Section>\r\n\r\n <Section title=\"Sizes / disabled\">\r\n <Row>\r\n <TimeInput size=\"sm\" defaultValue={{ hour: 9, minute: 0 }} />\r\n <TimeInput size=\"md\" defaultValue={{ hour: 9, minute: 0 }} />\r\n <TimeInput size=\"lg\" defaultValue={{ hour: 9, minute: 0 }} />\r\n <TimeInput disabled defaultValue={{ hour: 9, minute: 0 }} />\r\n </Row>\r\n </Section>\r\n </>\r\n );\r\n}"
|
|
4834
5422
|
},
|
|
4835
5423
|
{
|
|
4836
5424
|
"name": "Toggle",
|
|
4837
5425
|
"package": "@wizeworks/silicaui-react",
|
|
4838
5426
|
"category": "Data input",
|
|
4839
5427
|
"sourceFile": "silicaui-react/src/toggle.tsx",
|
|
4840
|
-
"description": "Silica Toggle — a restyled native `<input type=\"checkbox\">` presented as a switch. Adds `role=\"switch\"` for assistive tech; all native attributes (`checked`, `onChange`, `disabled`, …) pass through.",
|
|
5428
|
+
"description": "Silica Toggle — a restyled native `<input type=\"checkbox\">` presented as a switch. Adds `role=\"switch\"` for assistive tech; all native attributes (`checked`, `onChange`, `disabled`, …) pass through. <Toggle defaultChecked>Email notifications</Toggle>",
|
|
4841
5429
|
"props": [
|
|
4842
5430
|
{
|
|
4843
5431
|
"name": "ToggleProps",
|
|
4844
|
-
"extends": "extends Omit<\n React.InputHTMLAttributes<HTMLInputElement>,\n \"size\" | \"color\" | \"type\"\n >",
|
|
5432
|
+
"extends": "extends Omit<\r\n React.InputHTMLAttributes<HTMLInputElement>,\r\n \"size\" | \"color\" | \"type\"\r\n >",
|
|
4845
5433
|
"members": [
|
|
4846
5434
|
{
|
|
4847
5435
|
"name": "color",
|
|
@@ -4854,11 +5442,17 @@
|
|
|
4854
5442
|
"optional": true,
|
|
4855
5443
|
"type": "SilicaSize",
|
|
4856
5444
|
"doc": "Default `md`."
|
|
5445
|
+
},
|
|
5446
|
+
{
|
|
5447
|
+
"name": "children",
|
|
5448
|
+
"optional": true,
|
|
5449
|
+
"type": "React.ReactNode",
|
|
5450
|
+
"doc": "Caption. Wraps the control in a `<label>` so the text is a click target."
|
|
4857
5451
|
}
|
|
4858
5452
|
]
|
|
4859
5453
|
}
|
|
4860
5454
|
],
|
|
4861
|
-
"usageExample":
|
|
5455
|
+
"usageExample": "import { useState } from \"react\";\r\nimport { Toggle } from \"@wizeworks/silicaui-react\";\r\nimport { Section } from \"../lib/Section\";\r\nimport { ColorVariantSizeGrid } from \"../lib/ColorGrid\";\r\n\r\nexport function ToggleDemo() {\r\n const [wifi, setWifi] = useState(true);\r\n\r\n return (\r\n <>\r\n <ColorVariantSizeGrid\r\n Component={Toggle}\r\n render={({ color, size }) => (\r\n <label className=\"flex items-center gap-2 text-sm\">\r\n <Toggle color={color} size={size} defaultChecked />\r\n {color ?? size}\r\n </label>\r\n )}\r\n />\r\n\r\n <Section title=\"Real use · Wi-Fi setting\">\r\n <label className=\"flex items-center gap-2 text-sm\">\r\n <Toggle\r\n color=\"primary\"\r\n checked={wifi}\r\n onChange={(e) => setWifi(e.target.checked)}\r\n />\r\n Wi-Fi is {wifi ? \"on\" : \"off\"}\r\n </label>\r\n </Section>\r\n </>\r\n );\r\n}"
|
|
4862
5456
|
},
|
|
4863
5457
|
{
|
|
4864
5458
|
"name": "ToggleGroup",
|
|
@@ -4876,7 +5470,7 @@
|
|
|
4876
5470
|
"members": []
|
|
4877
5471
|
}
|
|
4878
5472
|
],
|
|
4879
|
-
"usageExample":
|
|
5473
|
+
"usageExample": "import { useState } from \"react\";\r\nimport { ToggleGroup, ToggleGroupItem } from \"@wizeworks/silicaui-react\";\r\nimport { Section } from \"../lib/Section\";\r\n\r\nexport function ToggleGroupDemo() {\r\n const [view, setView] = useState<string[]>([\"grid\"]);\r\n const [format, setFormat] = useState<string[]>([\"bold\"]);\r\n\r\n return (\r\n <>\r\n <Section title=\"Real use · single-select view switcher\">\r\n <ToggleGroup value={view} onValueChange={setView}>\r\n <ToggleGroupItem value=\"list\">List</ToggleGroupItem>\r\n <ToggleGroupItem value=\"grid\">Grid</ToggleGroupItem>\r\n <ToggleGroupItem value=\"board\">Board</ToggleGroupItem>\r\n </ToggleGroup>\r\n </Section>\r\n\r\n <Section title=\"Multi-select text formatting\">\r\n <ToggleGroup multiple value={format} onValueChange={setFormat}>\r\n <ToggleGroupItem value=\"bold\">B</ToggleGroupItem>\r\n <ToggleGroupItem value=\"italic\">I</ToggleGroupItem>\r\n <ToggleGroupItem value=\"underline\">U</ToggleGroupItem>\r\n </ToggleGroup>\r\n </Section>\r\n\r\n <Section title=\"Sizes\">\r\n <div className=\"flex flex-wrap items-center gap-4\">\r\n {([\"xs\", \"sm\", \"md\", \"lg\"] as const).map((size) => (\r\n <ToggleGroup key={size} size={size} defaultValue={[\"grid\"]}>\r\n <ToggleGroupItem value=\"list\">List</ToggleGroupItem>\r\n <ToggleGroupItem value=\"grid\">Grid</ToggleGroupItem>\r\n </ToggleGroup>\r\n ))}\r\n </div>\r\n </Section>\r\n\r\n <Section title=\"Colored active pill\">\r\n <div className=\"flex flex-wrap items-center gap-4\">\r\n {([\"primary\", \"secondary\", \"accent\", \"success\"] as const).map((color) => (\r\n <ToggleGroup key={color} color={color} defaultValue={[\"grid\"]}>\r\n <ToggleGroupItem value=\"list\">List</ToggleGroupItem>\r\n <ToggleGroupItem value=\"grid\">Grid</ToggleGroupItem>\r\n </ToggleGroup>\r\n ))}\r\n </div>\r\n </Section>\r\n </>\r\n );\r\n}"
|
|
4880
5474
|
},
|
|
4881
5475
|
{
|
|
4882
5476
|
"name": "Validator",
|
|
@@ -4902,7 +5496,7 @@
|
|
|
4902
5496
|
"members": []
|
|
4903
5497
|
}
|
|
4904
5498
|
],
|
|
4905
|
-
"usageExample":
|
|
5499
|
+
"usageExample": "import { Validator, ValidatorHint, Input } from \"@wizeworks/silicaui-react\";\r\nimport { Section, Stack } from \"../lib/Section\";\r\n\r\nexport function ValidatorDemo() {\r\n return (\r\n <Section title=\"Real use · native validity styling (type to see it flip)\">\r\n <Stack className=\"max-w-sm\">\r\n <Validator>\r\n <Input required type=\"email\" placeholder=\"you@example.com\" />\r\n </Validator>\r\n <ValidatorHint>Enter a valid email address.</ValidatorHint>\r\n\r\n <Validator>\r\n <Input required minLength={8} type=\"password\" placeholder=\"Password (min 8 chars)\" />\r\n </Validator>\r\n <ValidatorHint>Must be at least 8 characters.</ValidatorHint>\r\n </Stack>\r\n </Section>\r\n );\r\n}"
|
|
4906
5500
|
},
|
|
4907
5501
|
{
|
|
4908
5502
|
"name": "Breadcrumb",
|
|
@@ -4917,7 +5511,7 @@
|
|
|
4917
5511
|
"members": []
|
|
4918
5512
|
}
|
|
4919
5513
|
],
|
|
4920
|
-
"usageExample":
|
|
5514
|
+
"usageExample": "import { Breadcrumb } from \"@wizeworks/silicaui-react\";\r\nimport { Section } from \"../lib/Section\";\r\n\r\nexport function BreadcrumbDemo() {\r\n return (\r\n <Section title=\"Real use · navigation trail\">\r\n <Breadcrumb>\r\n <li>\r\n <a href=\"#\">Home</a>\r\n </li>\r\n <li>\r\n <a href=\"#\">Projects</a>\r\n </li>\r\n <li>\r\n <a href=\"#\">Silica UI</a>\r\n </li>\r\n <li>\r\n <span aria-current=\"page\">Breadcrumb</span>\r\n </li>\r\n </Breadcrumb>\r\n </Section>\r\n );\r\n}"
|
|
4921
5515
|
},
|
|
4922
5516
|
{
|
|
4923
5517
|
"name": "Dock",
|
|
@@ -4955,7 +5549,7 @@
|
|
|
4955
5549
|
"members": []
|
|
4956
5550
|
}
|
|
4957
5551
|
],
|
|
4958
|
-
"usageExample":
|
|
5552
|
+
"usageExample": "import { useState } from \"react\";\r\nimport { Dock, DockItem, DockLabel } from \"@wizeworks/silicaui-react\";\r\nimport { Section } from \"../lib/Section\";\r\nimport { COLORS } from \"../lib/data\";\r\n\r\nfunction HomeIcon() {\r\n return (\r\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\r\n <path d=\"m3 11 9-8 9 8M5 10v10h5v-6h4v6h5V10\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\r\n </svg>\r\n );\r\n}\r\nfunction SearchIcon() {\r\n return (\r\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\r\n <circle cx=\"11\" cy=\"11\" r=\"7\" />\r\n <path d=\"m21 21-4.3-4.3\" strokeLinecap=\"round\" />\r\n </svg>\r\n );\r\n}\r\nfunction UserIcon() {\r\n return (\r\n <svg viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <circle cx=\"12\" cy=\"8\" r=\"4\" />\r\n <path d=\"M4 20c0-4.4 3.6-7 8-7s8 2.6 8 7Z\" />\r\n </svg>\r\n );\r\n}\r\n\r\nexport function DockDemo() {\r\n const [tab, setTab] = useState(\"home\");\r\n\r\n return (\r\n <>\r\n <Section title=\"Colors (active item accent)\">\r\n <div className=\"flex flex-col gap-4\">\r\n {COLORS.slice(0, 6).map((color) => (\r\n <Dock key={color} color={color} className=\"max-w-xs rounded-box\">\r\n <DockItem active>\r\n <HomeIcon />\r\n <DockLabel>Home</DockLabel>\r\n </DockItem>\r\n <DockItem>\r\n <SearchIcon />\r\n <DockLabel>Search</DockLabel>\r\n </DockItem>\r\n <DockItem>\r\n <UserIcon />\r\n <DockLabel>Profile</DockLabel>\r\n </DockItem>\r\n </Dock>\r\n ))}\r\n </div>\r\n </Section>\r\n\r\n <Section title=\"Real use · interactive bottom nav\">\r\n <Dock color=\"primary\" className=\"max-w-xs rounded-box\">\r\n <DockItem active={tab === \"home\"} onClick={() => setTab(\"home\")}>\r\n <HomeIcon />\r\n <DockLabel>Home</DockLabel>\r\n </DockItem>\r\n <DockItem active={tab === \"search\"} onClick={() => setTab(\"search\")}>\r\n <SearchIcon />\r\n <DockLabel>Search</DockLabel>\r\n </DockItem>\r\n <DockItem active={tab === \"profile\"} onClick={() => setTab(\"profile\")}>\r\n <UserIcon />\r\n <DockLabel>Profile</DockLabel>\r\n </DockItem>\r\n </Dock>\r\n </Section>\r\n </>\r\n );\r\n}"
|
|
4959
5553
|
},
|
|
4960
5554
|
{
|
|
4961
5555
|
"name": "Link",
|
|
@@ -4983,7 +5577,7 @@
|
|
|
4983
5577
|
]
|
|
4984
5578
|
}
|
|
4985
5579
|
],
|
|
4986
|
-
"usageExample":
|
|
5580
|
+
"usageExample": "import { Link } from \"@wizeworks/silicaui-react\";\r\nimport { Section, Row } from \"../lib/Section\";\r\nimport { COLORS } from \"../lib/data\";\r\n\r\nexport function LinkDemo() {\r\n return (\r\n <>\r\n <Section title=\"Colors\">\r\n <Row>\r\n {COLORS.map((color) => (\r\n <Link key={color} href=\"#\" color={color}>\r\n {color}\r\n </Link>\r\n ))}\r\n </Row>\r\n </Section>\r\n\r\n <Section title=\"Hover-only underline\">\r\n <Row>\r\n <Link href=\"#\" color=\"primary\" hover>\r\n Underlines on hover\r\n </Link>\r\n <Link href=\"#\" color=\"brand\" hover>\r\n Also brand\r\n </Link>\r\n </Row>\r\n </Section>\r\n\r\n <Section title=\"Real use · inline in a sentence\">\r\n <p className=\"max-w-md opacity-80\">\r\n By continuing you agree to our{\" \"}\r\n <Link href=\"#\" color=\"primary\">\r\n Terms of Service\r\n </Link>{\" \"}\r\n and{\" \"}\r\n <Link href=\"#\" color=\"primary\" hover>\r\n Privacy Policy\r\n </Link>\r\n .\r\n </p>\r\n </Section>\r\n </>\r\n );\r\n}"
|
|
4987
5581
|
},
|
|
4988
5582
|
{
|
|
4989
5583
|
"name": "Menu",
|
|
@@ -4998,7 +5592,7 @@
|
|
|
4998
5592
|
"members": []
|
|
4999
5593
|
}
|
|
5000
5594
|
],
|
|
5001
|
-
"usageExample":
|
|
5595
|
+
"usageExample": "import { Menu, MenuItem, MenuTitle } from \"@wizeworks/silicaui-react\";\r\nimport { Section } from \"../lib/Section\";\r\n\r\nexport function MenuDemo() {\r\n return (\r\n <Section title=\"Real use · sidebar navigation\">\r\n <Menu className=\"max-w-xs\">\r\n <MenuTitle>Workspace</MenuTitle>\r\n <MenuItem>\r\n <a href=\"#\" aria-current=\"page\">\r\n Overview\r\n </a>\r\n </MenuItem>\r\n <MenuItem>\r\n <a href=\"#\">Projects</a>\r\n </MenuItem>\r\n <MenuItem>\r\n <a href=\"#\">Team</a>\r\n </MenuItem>\r\n <MenuTitle>Account</MenuTitle>\r\n <MenuItem>\r\n <a href=\"#\">Settings</a>\r\n </MenuItem>\r\n <MenuItem>\r\n <button type=\"button\">Sign out</button>\r\n </MenuItem>\r\n </Menu>\r\n </Section>\r\n );\r\n}"
|
|
5002
5596
|
},
|
|
5003
5597
|
{
|
|
5004
5598
|
"name": "Menubar",
|
|
@@ -5046,7 +5640,7 @@
|
|
|
5046
5640
|
]
|
|
5047
5641
|
}
|
|
5048
5642
|
],
|
|
5049
|
-
"usageExample":
|
|
5643
|
+
"usageExample": "import {\r\n Menubar,\r\n MenubarMenu,\r\n MenubarTrigger,\r\n MenubarContent,\r\n MenubarItem,\r\n MenubarSeparator,\r\n} from \"@wizeworks/silicaui-react\";\r\nimport { Section } from \"../lib/Section\";\r\n\r\nexport function MenubarDemo() {\r\n return (\r\n <Section title=\"Real use · desktop-app style menu bar\">\r\n <Menubar>\r\n <MenubarMenu>\r\n <MenubarTrigger>File</MenubarTrigger>\r\n <MenubarContent>\r\n <MenubarItem>New</MenubarItem>\r\n <MenubarItem>Open…</MenubarItem>\r\n <MenubarSeparator />\r\n <MenubarItem>Exit</MenubarItem>\r\n </MenubarContent>\r\n </MenubarMenu>\r\n <MenubarMenu>\r\n <MenubarTrigger>Edit</MenubarTrigger>\r\n <MenubarContent>\r\n <MenubarItem>Undo</MenubarItem>\r\n <MenubarItem>Redo</MenubarItem>\r\n <MenubarSeparator />\r\n <MenubarItem>Cut</MenubarItem>\r\n <MenubarItem>Copy</MenubarItem>\r\n <MenubarItem>Paste</MenubarItem>\r\n </MenubarContent>\r\n </MenubarMenu>\r\n <MenubarMenu>\r\n <MenubarTrigger>View</MenubarTrigger>\r\n <MenubarContent>\r\n <MenubarItem>Zoom in</MenubarItem>\r\n <MenubarItem>Zoom out</MenubarItem>\r\n </MenubarContent>\r\n </MenubarMenu>\r\n </Menubar>\r\n </Section>\r\n );\r\n}"
|
|
5050
5644
|
},
|
|
5051
5645
|
{
|
|
5052
5646
|
"name": "Navbar",
|
|
@@ -5060,7 +5654,7 @@
|
|
|
5060
5654
|
"members": []
|
|
5061
5655
|
}
|
|
5062
5656
|
],
|
|
5063
|
-
"usageExample":
|
|
5657
|
+
"usageExample": "import { Navbar, NavbarStart, NavbarCenter, NavbarEnd, Button } from \"@wizeworks/silicaui-react\";\r\nimport { Section } from \"../lib/Section\";\r\n\r\nexport function NavbarDemo() {\r\n return (\r\n <>\r\n <Section title=\"Real use · site header\">\r\n <Navbar className=\"rounded-box border border-base-300\">\r\n <NavbarStart>\r\n <span className=\"text-lg font-bold\">◆ Silica</span>\r\n </NavbarStart>\r\n <NavbarCenter className=\"hidden gap-4 text-sm sm:flex\">\r\n <a href=\"#\">Docs</a>\r\n <a href=\"#\">Components</a>\r\n <a href=\"#\">Pricing</a>\r\n </NavbarCenter>\r\n <NavbarEnd>\r\n <Button variant=\"ghost\" color=\"neutral\">\r\n Sign in\r\n </Button>\r\n <Button color=\"primary\">Get started</Button>\r\n </NavbarEnd>\r\n </Navbar>\r\n </Section>\r\n\r\n <Section title=\"Glass · floating over a hero\">\r\n <div\r\n className=\"flex flex-col gap-24 rounded-box p-4\"\r\n style={{\r\n backgroundImage:\r\n \"linear-gradient(135deg, var(--color-primary), var(--color-accent), var(--color-secondary))\",\r\n }}\r\n >\r\n <Navbar className=\"glass\">\r\n <NavbarStart>\r\n <span className=\"text-lg font-bold\">◆ Silica</span>\r\n </NavbarStart>\r\n <NavbarCenter className=\"hidden gap-4 text-sm sm:flex\">\r\n <a href=\"#\">Docs</a>\r\n <a href=\"#\">Components</a>\r\n <a href=\"#\">Pricing</a>\r\n </NavbarCenter>\r\n <NavbarEnd>\r\n <Button variant=\"ghost\" color=\"neutral\">\r\n Sign in\r\n </Button>\r\n <Button color=\"primary\">Get started</Button>\r\n </NavbarEnd>\r\n </Navbar>\r\n </div>\r\n </Section>\r\n </>\r\n );\r\n}"
|
|
5064
5658
|
},
|
|
5065
5659
|
{
|
|
5066
5660
|
"name": "NavigationMenu",
|
|
@@ -5116,7 +5710,7 @@
|
|
|
5116
5710
|
"members": []
|
|
5117
5711
|
}
|
|
5118
5712
|
],
|
|
5119
|
-
"usageExample":
|
|
5713
|
+
"usageExample": "import {\r\n NavigationMenu,\r\n NavigationMenuItem,\r\n NavigationMenuTrigger,\r\n NavigationMenuContent,\r\n NavigationMenuLink,\r\n} from \"@wizeworks/silicaui-react\";\r\nimport { Section } from \"../lib/Section\";\r\n\r\nexport function NavigationMenuDemo() {\r\n return (\r\n <Section title=\"Real use · site nav with a mega-menu panel\">\r\n <NavigationMenu>\r\n <NavigationMenuItem>\r\n <NavigationMenuTrigger>Products</NavigationMenuTrigger>\r\n <NavigationMenuContent>\r\n <ul className=\"grid w-80 gap-1 p-2\">\r\n <li>\r\n <a href=\"#\" className=\"block rounded-field p-2 hover:bg-base-200\">\r\n <div className=\"font-medium\">Components</div>\r\n <div className=\"text-xs opacity-60\">\r\n 95+ primitives on one token system.\r\n </div>\r\n </a>\r\n </li>\r\n <li>\r\n <a href=\"#\" className=\"block rounded-field p-2 hover:bg-base-200\">\r\n <div className=\"font-medium\">Builder</div>\r\n <div className=\"text-xs opacity-60\">\r\n Drag-and-drop pages, no code.\r\n </div>\r\n </a>\r\n </li>\r\n </ul>\r\n </NavigationMenuContent>\r\n </NavigationMenuItem>\r\n <NavigationMenuItem>\r\n <NavigationMenuLink href=\"#\">Pricing</NavigationMenuLink>\r\n </NavigationMenuItem>\r\n <NavigationMenuItem>\r\n <NavigationMenuLink href=\"#\">Docs</NavigationMenuLink>\r\n </NavigationMenuItem>\r\n </NavigationMenu>\r\n </Section>\r\n );\r\n}"
|
|
5120
5714
|
},
|
|
5121
5715
|
{
|
|
5122
5716
|
"name": "Outline",
|
|
@@ -5156,7 +5750,7 @@
|
|
|
5156
5750
|
]
|
|
5157
5751
|
}
|
|
5158
5752
|
],
|
|
5159
|
-
"usageExample": null
|
|
5753
|
+
"usageExample": "import { useRef } from \"react\";\r\nimport { Outline } from \"@wizeworks/silicaui-react\";\r\nimport { Section } from \"../lib/Section\";\r\n\r\nconst SECTIONS = [\r\n { id: \"outline-install\", label: \"Installation\", depth: 0 },\r\n { id: \"outline-npm\", label: \"Via npm\", depth: 1 },\r\n { id: \"outline-cdn\", label: \"Via CDN\", depth: 1 },\r\n { id: \"outline-usage\", label: \"Usage\", depth: 0 },\r\n { id: \"outline-theming\", label: \"Theming\", depth: 0 },\r\n { id: \"outline-tokens\", label: \"Color tokens\", depth: 1 },\r\n { id: \"outline-dark\", label: \"Dark mode\", depth: 1 },\r\n { id: \"outline-faq\", label: \"FAQ\", depth: 0 },\r\n];\r\n\r\nexport function OutlineDemo() {\r\n const containerRef = useRef<HTMLDivElement>(null);\r\n\r\n return (\r\n <Section title=\"Real use · scroll-spy docs page (scroll the panel below)\">\r\n <div className=\"grid grid-cols-[1fr_12rem] gap-6\">\r\n <div\r\n ref={containerRef}\r\n className=\"h-80 overflow-y-auto rounded-box border border-base-300 p-6\"\r\n >\r\n {SECTIONS.map((s) => (\r\n <section key={s.id} id={s.id} className=\"mb-10 scroll-mt-4\">\r\n <h3 className=\"mb-2 text-base font-semibold\">{s.label}</h3>\r\n <p className=\"text-sm opacity-70\">\r\n Placeholder copy for the “{s.label}” section — long enough to\r\n make the panel actually scroll so the active link updates as\r\n you go.\r\n </p>\r\n </section>\r\n ))}\r\n </div>\r\n\r\n <Outline items={SECTIONS} container={containerRef} offset={24} />\r\n </div>\r\n </Section>\r\n );\r\n}"
|
|
5160
5754
|
},
|
|
5161
5755
|
{
|
|
5162
5756
|
"name": "OverflowList",
|
|
@@ -5207,14 +5801,14 @@
|
|
|
5207
5801
|
]
|
|
5208
5802
|
}
|
|
5209
5803
|
],
|
|
5210
|
-
"usageExample":
|
|
5804
|
+
"usageExample": "import { useState } from \"react\";\r\nimport { OverflowList, Avatar, Badge } from \"@wizeworks/silicaui-react\";\r\nimport { Section } from \"../lib/Section\";\r\n\r\nconst PEOPLE = [\r\n \"Ada Lovelace\",\r\n \"Grace Hopper\",\r\n \"Alan Turing\",\r\n \"Katherine Johnson\",\r\n \"Margaret Hamilton\",\r\n \"Radia Perlman\",\r\n \"Barbara Liskov\",\r\n \"Tim Berners-Lee\",\r\n];\r\n\r\nconst TAGS = [\"design-system\", \"accessibility\", \"performance\", \"dark-mode\", \"tokens\", \"typography\", \"motion\"];\r\n\r\nexport function OverflowListDemo() {\r\n const [width, setWidth] = useState(420);\r\n\r\n return (\r\n <>\r\n <Section title=\"Real use · assignee avatars, resizable to see the fold point\">\r\n <div className=\"flex flex-col gap-3\">\r\n <input\r\n type=\"range\"\r\n min={120}\r\n max={640}\r\n value={width}\r\n onChange={(e) => setWidth(Number(e.target.value))}\r\n className=\"max-w-md\"\r\n />\r\n <div style={{ width }} className=\"rounded-box border border-base-300 p-3\">\r\n <OverflowList\r\n items={PEOPLE}\r\n renderItem={(name) => (\r\n <Avatar key={name} alt={name} color=\"primary\" size=\"sm\">\r\n {name\r\n .split(\" \")\r\n .map((w) => w[0])\r\n .join(\"\")}\r\n </Avatar>\r\n )}\r\n />\r\n </div>\r\n </div>\r\n </Section>\r\n\r\n <Section title=\"Tags with custom overflow renderer\">\r\n <div className=\"w-80 rounded-box border border-base-300 p-3\">\r\n <OverflowList\r\n items={TAGS}\r\n gap={6}\r\n renderItem={(tag) => (\r\n <Badge key={tag} color=\"neutral\" variant=\"soft\">\r\n {tag}\r\n </Badge>\r\n )}\r\n renderOverflow={(hidden) => (\r\n <Badge color=\"primary\" variant=\"soft\" title={hidden.join(\", \")}>\r\n +{hidden.length} more\r\n </Badge>\r\n )}\r\n />\r\n </div>\r\n </Section>\r\n </>\r\n );\r\n}"
|
|
5211
5805
|
},
|
|
5212
5806
|
{
|
|
5213
5807
|
"name": "Pagination",
|
|
5214
5808
|
"package": "@wizeworks/silicaui-react",
|
|
5215
5809
|
"category": "Navigation",
|
|
5216
5810
|
"sourceFile": "silicaui-react/src/pagination.tsx",
|
|
5217
|
-
"description": "Silica Pagination — page controls with prev/next and ellipsis. <Pagination page={page} count={12}
|
|
5811
|
+
"description": "Silica Pagination — page controls with prev/next and ellipsis. <Pagination page={page} count={12} onValueChange={setPage} color=\"primary\" />",
|
|
5218
5812
|
"props": [
|
|
5219
5813
|
{
|
|
5220
5814
|
"name": "PaginationProps",
|
|
@@ -5233,11 +5827,17 @@
|
|
|
5233
5827
|
"doc": "Total number of pages."
|
|
5234
5828
|
},
|
|
5235
5829
|
{
|
|
5236
|
-
"name": "
|
|
5830
|
+
"name": "onValueChange",
|
|
5237
5831
|
"optional": true,
|
|
5238
5832
|
"type": "(page: number) => void",
|
|
5239
5833
|
"doc": "Called with the new page."
|
|
5240
5834
|
},
|
|
5835
|
+
{
|
|
5836
|
+
"name": "onChange",
|
|
5837
|
+
"optional": true,
|
|
5838
|
+
"type": "(page: number) => void",
|
|
5839
|
+
"doc": "@deprecated Use `onValueChange`. `onChange` is reserved for the native DOM handler on components that wrap a real form element; still honored here so this isn't a breaking change."
|
|
5840
|
+
},
|
|
5241
5841
|
{
|
|
5242
5842
|
"name": "siblingCount",
|
|
5243
5843
|
"optional": true,
|
|
@@ -5271,7 +5871,7 @@
|
|
|
5271
5871
|
]
|
|
5272
5872
|
}
|
|
5273
5873
|
],
|
|
5274
|
-
"usageExample":
|
|
5874
|
+
"usageExample": "import { useState } from \"react\";\r\nimport { Pagination } from \"@wizeworks/silicaui-react\";\r\nimport { Section } from \"../lib/Section\";\r\nimport { COLORS } from \"../lib/data\";\r\n\r\nexport function PaginationDemo() {\r\n const [page, setPage] = useState(4);\r\n\r\n return (\r\n <>\r\n <Section title=\"Colors\">\r\n <div className=\"flex flex-col gap-3\">\r\n {COLORS.slice(0, 6).map((color) => (\r\n <Pagination\r\n key={color}\r\n color={color}\r\n page={3}\r\n count={10}\r\n onValueChange={() => {}}\r\n />\r\n ))}\r\n </div>\r\n </Section>\r\n\r\n <Section title=\"Sizes\">\r\n <div className=\"flex flex-col gap-3\">\r\n {([\"xs\", \"sm\", \"md\", \"lg\"] as const).map((size) => (\r\n <Pagination\r\n key={size}\r\n size={size}\r\n color=\"primary\"\r\n page={3}\r\n count={10}\r\n onValueChange={() => {}}\r\n />\r\n ))}\r\n </div>\r\n </Section>\r\n\r\n <Section title=\"Real use · interactive search results\">\r\n <div className=\"flex max-w-lg flex-col gap-3\">\r\n <p className=\"text-sm opacity-70\">\r\n Showing page {page} of 12 — 118 results\r\n </p>\r\n <Pagination\r\n color=\"primary\"\r\n page={page}\r\n count={12}\r\n onValueChange={setPage}\r\n />\r\n </div>\r\n </Section>\r\n </>\r\n );\r\n}"
|
|
5275
5875
|
},
|
|
5276
5876
|
{
|
|
5277
5877
|
"name": "Sidebar",
|
|
@@ -5399,7 +5999,7 @@
|
|
|
5399
5999
|
"members": []
|
|
5400
6000
|
}
|
|
5401
6001
|
],
|
|
5402
|
-
"usageExample":
|
|
6002
|
+
"usageExample": "import { useState } from \"react\";\r\nimport {\r\n SidebarProvider,\r\n Sidebar,\r\n SidebarHeader,\r\n SidebarHeaderBrand,\r\n SidebarContent,\r\n SidebarFooter,\r\n SidebarGroup,\r\n SidebarGroupLabel,\r\n SidebarItem,\r\n SidebarTrigger,\r\n Wordmark,\r\n Avatar,\r\n} from \"@wizeworks/silicaui-react\";\r\nimport { Section } from \"../lib/Section\";\r\n\r\nconst HomeIcon = (\r\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.75\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\r\n <path d=\"M3 12 12 3l9 9\" /> <path d=\"M5 10v10h14V10\" />\r\n </svg>\r\n);\r\nconst SearchIcon = (\r\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.75\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\r\n <circle cx=\"11\" cy=\"11\" r=\"8\" /> <path d=\"m21 21-4.3-4.3\" />\r\n </svg>\r\n);\r\nconst UsersIcon = (\r\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.75\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\r\n <path d=\"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2\" /> <circle cx=\"9\" cy=\"7\" r=\"4\" />\r\n <path d=\"M22 21v-2a4 4 0 0 0-3-3.87\" /> <path d=\"M16 3.13a4 4 0 0 1 0 7.75\" />\r\n </svg>\r\n);\r\nconst SettingsIcon = (\r\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.75\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\r\n <path d=\"M14 17H5\" /> <path d=\"M19 7h-9\" /> <circle cx=\"17\" cy=\"17\" r=\"3\" /> <circle cx=\"7\" cy=\"7\" r=\"3\" />\r\n </svg>\r\n);\r\n\r\nfunction AppShell() {\r\n const [active, setActive] = useState(\"dashboard\");\r\n\r\n return (\r\n <div className=\"flex h-[26rem] w-full max-w-2xl overflow-hidden rounded-box border border-base-200\">\r\n <Sidebar>\r\n <SidebarHeader>\r\n <SidebarHeaderBrand>\r\n <Wordmark size=\"sm\" color=\"primary\">Acme</Wordmark>\r\n </SidebarHeaderBrand>\r\n <SidebarTrigger />\r\n </SidebarHeader>\r\n <SidebarContent>\r\n <SidebarGroup>\r\n <SidebarGroupLabel>Workspace</SidebarGroupLabel>\r\n <SidebarItem\r\n icon={HomeIcon}\r\n active={active === \"dashboard\"}\r\n onClick={() => setActive(\"dashboard\")}\r\n >\r\n Dashboard\r\n </SidebarItem>\r\n <SidebarItem\r\n icon={SearchIcon}\r\n active={active === \"search\"}\r\n onClick={() => setActive(\"search\")}\r\n >\r\n Search\r\n </SidebarItem>\r\n <SidebarItem\r\n icon={UsersIcon}\r\n active={active === \"team\"}\r\n onClick={() => setActive(\"team\")}\r\n trailing={<span className=\"badge badge-primary badge-xs\">4</span>}\r\n >\r\n Team\r\n </SidebarItem>\r\n </SidebarGroup>\r\n <SidebarGroup>\r\n <SidebarGroupLabel>Account</SidebarGroupLabel>\r\n <SidebarItem\r\n icon={SettingsIcon}\r\n active={active === \"settings\"}\r\n onClick={() => setActive(\"settings\")}\r\n >\r\n Settings\r\n </SidebarItem>\r\n </SidebarGroup>\r\n </SidebarContent>\r\n <SidebarFooter>\r\n <SidebarItem icon={<Avatar size=\"xs\">AL</Avatar>}>Ada Lovelace</SidebarItem>\r\n </SidebarFooter>\r\n </Sidebar>\r\n\r\n <div className=\"flex flex-1 flex-col gap-3 overflow-y-auto p-6\">\r\n <div className=\"flex items-center gap-2\">\r\n <SidebarTrigger />\r\n <h4 className=\"text-sm font-semibold capitalize\">{active}</h4>\r\n </div>\r\n <p className=\"text-sm opacity-70\">\r\n The trigger above lives OUTSIDE the sidebar (in this main content\r\n area) yet still toggles it — both triggers share one\r\n SidebarProvider.\r\n </p>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nexport function SidebarDemo() {\r\n return (\r\n <Section title=\"Real use · app shell (collapsible, cross-tree trigger)\">\r\n <SidebarProvider>\r\n <AppShell />\r\n </SidebarProvider>\r\n </Section>\r\n );\r\n}"
|
|
5403
6003
|
},
|
|
5404
6004
|
{
|
|
5405
6005
|
"name": "Steps",
|
|
@@ -5432,7 +6032,7 @@
|
|
|
5432
6032
|
]
|
|
5433
6033
|
}
|
|
5434
6034
|
],
|
|
5435
|
-
"usageExample":
|
|
6035
|
+
"usageExample": "import { useState } from \"react\";\r\nimport { Steps, Step, Button } from \"@wizeworks/silicaui-react\";\r\nimport { Section, Row } from \"../lib/Section\";\r\nimport { COLORS } from \"../lib/data\";\r\n\r\nconst CHECKOUT = [\"Cart\", \"Shipping\", \"Payment\", \"Done\"];\r\n\r\nexport function StepsDemo() {\r\n const [current, setCurrent] = useState(1);\r\n\r\n return (\r\n <>\r\n <Section title=\"Colors (completed steps)\">\r\n <div className=\"flex flex-col gap-6\">\r\n {COLORS.slice(0, 6).map((color) => (\r\n <Steps key={color}>\r\n <Step color={color} data-content=\"✓\">\r\n Cart\r\n </Step>\r\n <Step color={color} data-content=\"✓\">\r\n Shipping\r\n </Step>\r\n <Step color={color}>Payment</Step>\r\n <Step>Done</Step>\r\n </Steps>\r\n ))}\r\n </div>\r\n </Section>\r\n\r\n <Section title=\"Real use · interactive checkout\">\r\n <div className=\"flex max-w-lg flex-col gap-4\">\r\n <Steps>\r\n {CHECKOUT.map((label, i) => (\r\n <Step\r\n key={label}\r\n color={i <= current ? \"primary\" : undefined}\r\n data-content={i < current ? \"✓\" : undefined}\r\n >\r\n {label}\r\n </Step>\r\n ))}\r\n </Steps>\r\n <Row>\r\n <Button\r\n variant=\"outline\"\r\n color=\"neutral\"\r\n disabled={current === 0}\r\n onClick={() => setCurrent((c) => Math.max(0, c - 1))}\r\n >\r\n Back\r\n </Button>\r\n <Button\r\n color=\"primary\"\r\n disabled={current === CHECKOUT.length - 1}\r\n onClick={() =>\r\n setCurrent((c) => Math.min(CHECKOUT.length - 1, c + 1))\r\n }\r\n >\r\n {current === CHECKOUT.length - 2 ? \"Place order\" : \"Next\"}\r\n </Button>\r\n </Row>\r\n </div>\r\n </Section>\r\n </>\r\n );\r\n}"
|
|
5436
6036
|
},
|
|
5437
6037
|
{
|
|
5438
6038
|
"name": "Tabs",
|
|
@@ -5478,7 +6078,7 @@
|
|
|
5478
6078
|
]
|
|
5479
6079
|
}
|
|
5480
6080
|
],
|
|
5481
|
-
"usageExample":
|
|
6081
|
+
"usageExample": "import {\r\n Tabs,\r\n TabsList,\r\n TabsTab,\r\n TabsPanel,\r\n Input,\r\n Button,\r\n} from \"@wizeworks/silicaui-react\";\r\nimport { Section, Row } from \"../lib/Section\";\r\nimport { COLORS } from \"../lib/data\";\r\n\r\nexport function TabsDemo() {\r\n return (\r\n <>\r\n <Section title=\"Colors\">\r\n <Row>\r\n {COLORS.slice(0, 6).map((color) => (\r\n <Tabs key={color} color={color} defaultValue=\"a\" className=\"w-40\">\r\n <TabsList>\r\n <TabsTab value=\"a\">One</TabsTab>\r\n <TabsTab value=\"b\">Two</TabsTab>\r\n </TabsList>\r\n </Tabs>\r\n ))}\r\n </Row>\r\n </Section>\r\n\r\n <Section title=\"Variants\">\r\n {([\"underline\", \"boxed\", \"pills\"] as const).map((variant) => (\r\n <Tabs key={variant} variant={variant} color=\"primary\" defaultValue=\"a\">\r\n <TabsList>\r\n <TabsTab value=\"a\">Account</TabsTab>\r\n <TabsTab value=\"b\">Password</TabsTab>\r\n <TabsTab value=\"c\">Team</TabsTab>\r\n </TabsList>\r\n </Tabs>\r\n ))}\r\n </Section>\r\n\r\n <Section title=\"Real use · settings panels\">\r\n <Tabs variant=\"boxed\" color=\"primary\" defaultValue=\"account\" className=\"max-w-md\">\r\n <TabsList>\r\n <TabsTab value=\"account\">Account</TabsTab>\r\n <TabsTab value=\"password\">Password</TabsTab>\r\n <TabsTab value=\"team\">Team</TabsTab>\r\n </TabsList>\r\n <TabsPanel value=\"account\">\r\n <div className=\"flex flex-col gap-3 pt-4\">\r\n <Input placeholder=\"Full name\" defaultValue=\"Ada Lovelace\" />\r\n <Input placeholder=\"Email\" defaultValue=\"ada@silica.dev\" />\r\n <Button color=\"primary\" className=\"w-fit\">\r\n Save\r\n </Button>\r\n </div>\r\n </TabsPanel>\r\n <TabsPanel value=\"password\">\r\n <div className=\"flex flex-col gap-3 pt-4\">\r\n <Input placeholder=\"Current password\" type=\"password\" />\r\n <Input placeholder=\"New password\" type=\"password\" />\r\n <Button color=\"primary\" className=\"w-fit\">\r\n Update password\r\n </Button>\r\n </div>\r\n </TabsPanel>\r\n <TabsPanel value=\"team\">\r\n <p className=\"pt-4 opacity-70\">4 members — 1 seat available.</p>\r\n </TabsPanel>\r\n </Tabs>\r\n </Section>\r\n </>\r\n );\r\n}"
|
|
5482
6082
|
},
|
|
5483
6083
|
{
|
|
5484
6084
|
"name": "Alert",
|
|
@@ -5548,7 +6148,7 @@
|
|
|
5548
6148
|
]
|
|
5549
6149
|
}
|
|
5550
6150
|
],
|
|
5551
|
-
"usageExample":
|
|
6151
|
+
"usageExample": "import { useState } from \"react\";\r\nimport {\r\n Alert,\r\n AlertContent,\r\n AlertTitle,\r\n AlertDescription,\r\n AlertActions,\r\n Collapsible,\r\n CollapsibleTrigger,\r\n CollapsiblePanel,\r\n Button,\r\n} from \"@wizeworks/silicaui-react\";\r\nimport { Section, Stack } from \"../lib/Section\";\r\nimport { InfoIcon, CheckIcon, WarnIcon, XIcon } from \"../lib/icons\";\r\nimport { SIZES } from \"../lib/data\";\r\n\r\nexport function AlertDemo() {\r\n const [dismissed, setDismissed] = useState(false);\r\n\r\n return (\r\n <>\r\n <Section title=\"dismissible · animates away, then unmounts\">\r\n <Stack>\r\n {!dismissed && (\r\n <Alert color=\"info\" dismissible onDismiss={() => setDismissed(true)}>\r\n <InfoIcon />A new software update is available.\r\n </Alert>\r\n )}\r\n {dismissed && (\r\n <Button size=\"sm\" variant=\"outline\" onClick={() => setDismissed(false)}>\r\n Reset\r\n </Button>\r\n )}\r\n </Stack>\r\n </Section>\r\n\r\n <Section title=\"banner · full-bleed, edge to edge (no rounding)\">\r\n <Alert color=\"warning\" banner dismissible variant=\"soft\">\r\n <WarnIcon />\r\n Scheduled maintenance tonight at 10pm PT — expect brief downtime.\r\n </Alert>\r\n </Section>\r\n\r\n <Section title=\"collapsible detail · nests the existing Collapsible, not a bespoke prop\">\r\n <Alert color=\"error\" variant=\"soft\">\r\n <XIcon />\r\n {/* `className=\"contents\"` (a utility, so it wins over the component's\r\n own flex-column) keeps AlertContent + AlertActions as direct row\r\n children of Alert — the Collapsible only supplies shared open-state\r\n context here, not a layout box. That's what lets the icon trigger\r\n sit top-right while the label trigger stays under the title, both\r\n toggling the one panel. */}\r\n <Collapsible className=\"contents\">\r\n <AlertContent>\r\n <AlertTitle>3 files failed to upload</AlertTitle>\r\n <CollapsibleTrigger chevron={false}>Show details</CollapsibleTrigger>\r\n <CollapsiblePanel>\r\n <ul className=\"list-disc pl-4 text-xs\">\r\n <li>report-q3.pdf — exceeds 5 MB limit</li>\r\n <li>archive.zip — unsupported type</li>\r\n <li>notes.docx — network error</li>\r\n </ul>\r\n </CollapsiblePanel>\r\n </AlertContent>\r\n <AlertActions>\r\n <CollapsibleTrigger variant=\"icon\" aria-label=\"Toggle details\" />\r\n </AlertActions>\r\n </Collapsible>\r\n </Alert>\r\n </Section>\r\n\r\n <Section title=\"Colors & structure\">\r\n <Stack>\r\n {/* One-liner: leading icon + message */}\r\n <Alert color=\"info\">\r\n <InfoIcon />A new software update is available.\r\n </Alert>\r\n <Alert color=\"success\" variant=\"soft\">\r\n <CheckIcon />\r\n Your changes have been saved.\r\n </Alert>\r\n {/* Structured: title + description */}\r\n <Alert color=\"warning\" variant=\"soft\">\r\n <WarnIcon />\r\n <AlertContent>\r\n <AlertTitle>Storage almost full</AlertTitle>\r\n <AlertDescription>\r\n You've used 92% of your quota. Consider upgrading.\r\n </AlertDescription>\r\n </AlertContent>\r\n </Alert>\r\n {/* Structured + trailing actions (far right, centered) */}\r\n <Alert color=\"error\">\r\n <XIcon />\r\n <AlertContent>\r\n <AlertTitle>Upload failed</AlertTitle>\r\n <AlertDescription>\r\n The file exceeds the 5 MB limit.\r\n </AlertDescription>\r\n </AlertContent>\r\n <AlertActions>\r\n <Button size=\"sm\" color=\"error\" variant=\"soft\">\r\n Retry\r\n </Button>\r\n </AlertActions>\r\n </Alert>\r\n <Alert color=\"brand\" variant=\"outline\">\r\n <InfoIcon />\r\n The <code>brand</code> color flows through Alerts too.\r\n </Alert>\r\n <Alert>\r\n <InfoIcon />\r\n Neutral alert — no color prop, just the base surface.\r\n </Alert>\r\n </Stack>\r\n </Section>\r\n\r\n <Section title=\"Sizes\">\r\n <Stack className=\"gap-2\">\r\n {SIZES.slice(0, 4).map((size) => (\r\n <Alert key={size} color=\"info\" size={size}>\r\n <InfoIcon />\r\n {size}\r\n </Alert>\r\n ))}\r\n </Stack>\r\n </Section>\r\n\r\n <Section title=\"Glass · notice floating over a colored background\">\r\n <div\r\n className=\"rounded-box p-8\"\r\n style={{\r\n backgroundImage:\r\n \"linear-gradient(135deg, var(--color-primary), var(--color-accent), var(--color-secondary))\",\r\n }}\r\n >\r\n <Stack className=\"gap-3\">\r\n <Alert className=\"glass\">\r\n <InfoIcon />A new software update is available.\r\n </Alert>\r\n <Alert color=\"success\" className=\"glass\">\r\n <CheckIcon />\r\n Your changes have been saved.\r\n </Alert>\r\n <Alert color=\"error\" className=\"glass\">\r\n <XIcon />\r\n <AlertContent>\r\n <AlertTitle>Upload failed</AlertTitle>\r\n <AlertDescription>\r\n The file exceeds the 5 MB limit — glass still reads clearly\r\n at error severity.\r\n </AlertDescription>\r\n </AlertContent>\r\n <AlertActions>\r\n <Button size=\"sm\" color=\"error\" variant=\"soft\">\r\n Retry\r\n </Button>\r\n </AlertActions>\r\n </Alert>\r\n </Stack>\r\n </div>\r\n </Section>\r\n </>\r\n );\r\n}"
|
|
5552
6152
|
},
|
|
5553
6153
|
{
|
|
5554
6154
|
"name": "AlertDialog",
|
|
@@ -5585,7 +6185,7 @@
|
|
|
5585
6185
|
]
|
|
5586
6186
|
}
|
|
5587
6187
|
],
|
|
5588
|
-
"usageExample":
|
|
6188
|
+
"usageExample": "import {\r\n AlertDialog,\r\n AlertDialogTrigger,\r\n AlertDialogContent,\r\n AlertDialogTitle,\r\n AlertDialogDescription,\r\n AlertDialogHeader,\r\n AlertDialogFooter,\r\n AlertDialogCancel,\r\n AlertDialogAction,\r\n Button,\r\n} from \"@wizeworks/silicaui-react\";\r\nimport { Section, Row } from \"../lib/Section\";\r\n\r\nexport function AlertDialogDemo() {\r\n return (\r\n <Section title=\"Real use · Cancel/Action, header + footer\">\r\n <Row>\r\n <AlertDialog>\r\n <AlertDialogTrigger>\r\n <Button color=\"error\" variant=\"outline\">\r\n Delete account…\r\n </Button>\r\n </AlertDialogTrigger>\r\n <AlertDialogContent>\r\n <AlertDialogTitle>Delete account?</AlertDialogTitle>\r\n <AlertDialogDescription>\r\n This permanently removes your data. This can't be undone.\r\n </AlertDialogDescription>\r\n <div className=\"mt-4 flex justify-end gap-2\">\r\n <AlertDialogCancel>\r\n <Button variant=\"ghost\" color=\"neutral\">\r\n Cancel\r\n </Button>\r\n </AlertDialogCancel>\r\n <AlertDialogAction\r\n color=\"error\"\r\n onClick={() => console.log(\"account deleted\")}\r\n >\r\n Delete\r\n </AlertDialogAction>\r\n </div>\r\n </AlertDialogContent>\r\n </AlertDialog>\r\n\r\n <AlertDialog>\r\n <AlertDialogTrigger>\r\n <Button variant=\"outline\">Header/Footer variant</Button>\r\n </AlertDialogTrigger>\r\n <AlertDialogContent>\r\n <AlertDialogHeader>\r\n <AlertDialogTitle>Discard changes?</AlertDialogTitle>\r\n </AlertDialogHeader>\r\n <AlertDialogDescription>\r\n You have unsaved changes that will be lost.\r\n </AlertDialogDescription>\r\n <AlertDialogFooter>\r\n <AlertDialogCancel>\r\n <Button variant=\"ghost\" color=\"neutral\">\r\n Keep editing\r\n </Button>\r\n </AlertDialogCancel>\r\n <AlertDialogAction color=\"error\">Discard</AlertDialogAction>\r\n </AlertDialogFooter>\r\n </AlertDialogContent>\r\n </AlertDialog>\r\n </Row>\r\n </Section>\r\n );\r\n}"
|
|
5589
6189
|
},
|
|
5590
6190
|
{
|
|
5591
6191
|
"name": "ContextMenu",
|
|
@@ -5671,7 +6271,7 @@
|
|
|
5671
6271
|
]
|
|
5672
6272
|
}
|
|
5673
6273
|
],
|
|
5674
|
-
"usageExample":
|
|
6274
|
+
"usageExample": "import {\r\n Dialog,\r\n DialogTrigger,\r\n DialogClose,\r\n DialogContent,\r\n DialogTitle,\r\n DialogDescription,\r\n DialogHeader,\r\n DialogFooter,\r\n Button,\r\n} from \"@wizeworks/silicaui-react\";\r\nimport { Section, Row } from \"../lib/Section\";\r\n\r\nexport function DialogDemo() {\r\n return (\r\n <>\r\n <Section title=\"Real use · destructive-action confirmation\">\r\n <Dialog>\r\n <DialogTrigger>\r\n <Button color=\"error\" variant=\"outline\">\r\n Delete project…\r\n </Button>\r\n </DialogTrigger>\r\n <DialogContent>\r\n <DialogTitle>Delete project?</DialogTitle>\r\n <DialogDescription>\r\n This will permanently delete the project and all its data. This\r\n can't be undone.\r\n </DialogDescription>\r\n <div className=\"mt-4 flex justify-end gap-2\">\r\n <DialogClose>\r\n <Button variant=\"ghost\" color=\"neutral\">\r\n Cancel\r\n </Button>\r\n </DialogClose>\r\n <DialogClose>\r\n <Button color=\"error\">Delete</Button>\r\n </DialogClose>\r\n </div>\r\n </DialogContent>\r\n </Dialog>\r\n </Section>\r\n\r\n <Section title=\"Header + Footer · placeable docking bars, sticky footer\">\r\n <Row>\r\n <Dialog>\r\n <DialogTrigger>\r\n <Button variant=\"outline\">Header/Footer</Button>\r\n </DialogTrigger>\r\n <DialogContent>\r\n <DialogHeader>\r\n <DialogTitle>Invite teammates</DialogTitle>\r\n <DialogClose>\r\n <Button variant=\"ghost\" shape=\"circle\" size=\"sm\">\r\n ✕\r\n </Button>\r\n </DialogClose>\r\n </DialogHeader>\r\n <DialogDescription>\r\n Send an invite by email — they'll get access once they accept.\r\n </DialogDescription>\r\n <DialogFooter>\r\n <DialogClose>\r\n <Button variant=\"ghost\" color=\"neutral\">\r\n Cancel\r\n </Button>\r\n </DialogClose>\r\n <DialogClose>\r\n <Button>Send invite</Button>\r\n </DialogClose>\r\n </DialogFooter>\r\n </DialogContent>\r\n </Dialog>\r\n\r\n <Dialog>\r\n <DialogTrigger>\r\n <Button variant=\"outline\">Sticky footer (scrolling content)</Button>\r\n </DialogTrigger>\r\n <DialogContent className=\"max-h-[70dvh]\">\r\n <DialogHeader sticky>\r\n <DialogTitle>Terms of service</DialogTitle>\r\n </DialogHeader>\r\n <div>\r\n {Array.from({ length: 12 }, (_, i) => (\r\n <p key={i} className=\"mb-3\">\r\n Section {i + 1} — placeholder legal text to force this\r\n dialog to scroll so the sticky footer below stays pinned.\r\n </p>\r\n ))}\r\n </div>\r\n <DialogFooter sticky>\r\n <DialogClose>\r\n <Button variant=\"ghost\" color=\"neutral\">\r\n Decline\r\n </Button>\r\n </DialogClose>\r\n <DialogClose>\r\n <Button>Accept</Button>\r\n </DialogClose>\r\n </DialogFooter>\r\n </DialogContent>\r\n </Dialog>\r\n </Row>\r\n </Section>\r\n\r\n <Section title=\"Glass · frosted popup over the dimmed backdrop\">\r\n <Dialog>\r\n <DialogTrigger>\r\n <Button variant=\"outline\">Glass dialog</Button>\r\n </DialogTrigger>\r\n <DialogContent className=\"glass\">\r\n <DialogTitle>Restart required</DialogTitle>\r\n <DialogDescription>\r\n <code>DialogContent className="glass"</code> frosts the\r\n popup over the existing dimmed backdrop — same class, no new prop.\r\n </DialogDescription>\r\n <div className=\"mt-4 flex justify-end gap-2\">\r\n <DialogClose>\r\n <Button variant=\"ghost\" color=\"neutral\">\r\n Later\r\n </Button>\r\n </DialogClose>\r\n <DialogClose>\r\n <Button>Restart now</Button>\r\n </DialogClose>\r\n </div>\r\n </DialogContent>\r\n </Dialog>\r\n </Section>\r\n </>\r\n );\r\n}"
|
|
5675
6275
|
},
|
|
5676
6276
|
{
|
|
5677
6277
|
"name": "Drawer",
|
|
@@ -5733,7 +6333,7 @@
|
|
|
5733
6333
|
]
|
|
5734
6334
|
}
|
|
5735
6335
|
],
|
|
5736
|
-
"usageExample":
|
|
6336
|
+
"usageExample": "import {\r\n Drawer,\r\n DrawerTrigger,\r\n DrawerClose,\r\n DrawerContent,\r\n DrawerTitle,\r\n DrawerDescription,\r\n DrawerHeader,\r\n DrawerFooter,\r\n Button,\r\n} from \"@wizeworks/silicaui-react\";\r\nimport { Section, Row } from \"../lib/Section\";\r\n\r\nexport function DrawerDemo() {\r\n return (\r\n <>\r\n <Section title=\"Real use · navigation drawer\">\r\n <Row>\r\n {([\"left\", \"right\", \"top\", \"bottom\"] as const).map((side) => (\r\n <Drawer key={side}>\r\n <DrawerTrigger>\r\n <Button variant=\"outline\" color=\"neutral\">\r\n {side}\r\n </Button>\r\n </DrawerTrigger>\r\n <DrawerContent side={side}>\r\n <DrawerTitle>Navigation</DrawerTitle>\r\n <DrawerDescription>\r\n Slides in from the {side} edge.\r\n </DrawerDescription>\r\n <nav className=\"flex flex-col gap-2 py-4 text-sm\">\r\n <a href=\"#\">Dashboard</a>\r\n <a href=\"#\">Projects</a>\r\n <a href=\"#\">Settings</a>\r\n </nav>\r\n <DrawerClose>\r\n <Button variant=\"ghost\" color=\"neutral\">\r\n Close\r\n </Button>\r\n </DrawerClose>\r\n </DrawerContent>\r\n </Drawer>\r\n ))}\r\n </Row>\r\n </Section>\r\n\r\n <Section title=\"Header + Footer · sticky, scrolling content\">\r\n <Drawer>\r\n <DrawerTrigger>\r\n <Button variant=\"outline\">Filters (sticky header/footer)</Button>\r\n </DrawerTrigger>\r\n <DrawerContent side=\"right\">\r\n <DrawerHeader sticky>\r\n <DrawerTitle>Filters</DrawerTitle>\r\n <DrawerClose>\r\n <Button variant=\"ghost\" shape=\"circle\" size=\"sm\">\r\n ✕\r\n </Button>\r\n </DrawerClose>\r\n </DrawerHeader>\r\n <div className=\"flex flex-col gap-3 text-sm\">\r\n {Array.from({ length: 14 }, (_, i) => (\r\n <label key={i} className=\"flex items-center gap-2\">\r\n <input type=\"checkbox\" /> Filter option {i + 1}\r\n </label>\r\n ))}\r\n </div>\r\n <DrawerFooter sticky>\r\n <DrawerClose>\r\n <Button variant=\"ghost\" color=\"neutral\">\r\n Reset\r\n </Button>\r\n </DrawerClose>\r\n <DrawerClose>\r\n <Button>Apply</Button>\r\n </DrawerClose>\r\n </DrawerFooter>\r\n </DrawerContent>\r\n </Drawer>\r\n </Section>\r\n </>\r\n );\r\n}"
|
|
5737
6337
|
},
|
|
5738
6338
|
{
|
|
5739
6339
|
"name": "ImperativeAlertDialogProvider",
|
|
@@ -5781,7 +6381,7 @@
|
|
|
5781
6381
|
]
|
|
5782
6382
|
}
|
|
5783
6383
|
],
|
|
5784
|
-
"usageExample":
|
|
6384
|
+
"usageExample": "import { Indicator, IndicatorItem, Badge, Button, Status } from \"@wizeworks/silicaui-react\";\r\nimport { Section, Row } from \"../lib/Section\";\r\n\r\nexport function IndicatorDemo() {\r\n return (\r\n <>\r\n <Section title=\"Placements\">\r\n <Row>\r\n {([\"top-end\", \"top-start\", \"bottom-end\", \"bottom-start\"] as const).map(\r\n (placement) => (\r\n <Indicator key={placement}>\r\n <IndicatorItem placement={placement}>\r\n <Badge color=\"error\" size=\"xs\">\r\n 3\r\n </Badge>\r\n </IndicatorItem>\r\n <Button variant=\"outline\" color=\"neutral\">\r\n {placement}\r\n </Button>\r\n </Indicator>\r\n ),\r\n )}\r\n </Row>\r\n </Section>\r\n\r\n <Section title=\"Real use · notification badge + presence dot\">\r\n <Row>\r\n <Indicator>\r\n <IndicatorItem>\r\n <Badge color=\"error\" size=\"xs\">\r\n 5\r\n </Badge>\r\n </IndicatorItem>\r\n <Button variant=\"outline\" color=\"neutral\">\r\n Inbox\r\n </Button>\r\n </Indicator>\r\n <Indicator>\r\n <IndicatorItem>\r\n <Status color=\"success\" ping />\r\n </IndicatorItem>\r\n <Button variant=\"outline\" color=\"neutral\">\r\n Ada Lovelace\r\n </Button>\r\n </Indicator>\r\n </Row>\r\n </Section>\r\n </>\r\n );\r\n}"
|
|
5785
6385
|
},
|
|
5786
6386
|
{
|
|
5787
6387
|
"name": "Lightbox",
|
|
@@ -5832,7 +6432,7 @@
|
|
|
5832
6432
|
]
|
|
5833
6433
|
}
|
|
5834
6434
|
],
|
|
5835
|
-
"usageExample": null
|
|
6435
|
+
"usageExample": "import { useState } from \"react\";\r\nimport { Lightbox, type LightboxItem } from \"@wizeworks/silicaui-react\";\r\nimport { Section } from \"../lib/Section\";\r\n\r\n// Stand-in \"photos\" (data URIs, always load offline): a gradient tile with a\r\n// number, so the viewer/nav path is demonstrated without a network request.\r\nfunction placeholder(n: number, from: string, to: string): string {\r\n return `data:image/svg+xml,${encodeURIComponent(\r\n `<svg xmlns='http://www.w3.org/2000/svg' width='800' height='600'>` +\r\n `<defs><linearGradient id='g' x1='0' y1='0' x2='1' y2='1'>` +\r\n `<stop offset='0' stop-color='${from}'/><stop offset='1' stop-color='${to}'/>` +\r\n `</linearGradient></defs>` +\r\n `<rect width='800' height='600' fill='url(#g)'/>` +\r\n `<text x='400' y='330' font-size='180' font-family='sans-serif' font-weight='700' fill='rgba(255,255,255,.85)' text-anchor='middle'>${n}</text>` +\r\n `</svg>`,\r\n )}`;\r\n}\r\n\r\nconst PHOTOS: LightboxItem[] = [\r\n { src: placeholder(1, \"#6366f1\", \"#ec4899\"), caption: \"Photo 1\" },\r\n { src: placeholder(2, \"#f97316\", \"#eab308\"), caption: \"Photo 2\" },\r\n { src: placeholder(3, \"#10b981\", \"#06b6d4\"), caption: \"Photo 3\" },\r\n { src: placeholder(4, \"#8b5cf6\", \"#ec4899\"), caption: \"Photo 4\" },\r\n];\r\n\r\nexport function LightboxDemo() {\r\n const [index, setIndex] = useState<number | null>(null);\r\n\r\n return (\r\n <Section title=\"Real use · thumbnail grid opens a full-viewport viewer\">\r\n <div className=\"grid grid-cols-4 gap-2\">\r\n {PHOTOS.map((p, i) => (\r\n <button\r\n key={p.src}\r\n type=\"button\"\r\n className=\"overflow-hidden rounded-field\"\r\n onClick={() => setIndex(i)}\r\n >\r\n <img src={p.src} alt=\"\" className=\"block h-24 w-full object-cover\" />\r\n </button>\r\n ))}\r\n </div>\r\n <Lightbox items={PHOTOS} index={index} onIndexChange={setIndex} />\r\n </Section>\r\n );\r\n}"
|
|
5836
6436
|
},
|
|
5837
6437
|
{
|
|
5838
6438
|
"name": "Loading",
|
|
@@ -5860,7 +6460,7 @@
|
|
|
5860
6460
|
]
|
|
5861
6461
|
}
|
|
5862
6462
|
],
|
|
5863
|
-
"usageExample":
|
|
6463
|
+
"usageExample": "import { Loading, Button } from \"@wizeworks/silicaui-react\";\r\nimport { Section, Row } from \"../lib/Section\";\r\nimport { SIZES } from \"../lib/data\";\r\n\r\nexport function LoadingDemo() {\r\n return (\r\n <>\r\n <Section title=\"Sizes\">\r\n <Row>\r\n {SIZES.map((size) => (\r\n <Loading key={size} size={size} />\r\n ))}\r\n </Row>\r\n </Section>\r\n\r\n <Section title=\"Real use · inline with text, and colored\">\r\n <div className=\"flex flex-col gap-2 text-sm\">\r\n <span className=\"flex items-center gap-2\">\r\n <Loading size=\"sm\" />\r\n Loading your dashboard…\r\n </span>\r\n <span className=\"flex items-center gap-2 text-primary\">\r\n <Loading size=\"sm\" />\r\n Syncing changes…\r\n </span>\r\n </div>\r\n </Section>\r\n\r\n <Section title=\"Button's built-in spinner (for comparison)\">\r\n <Row>\r\n <Button color=\"primary\" loading>\r\n Saving…\r\n </Button>\r\n </Row>\r\n </Section>\r\n </>\r\n );\r\n}"
|
|
5864
6464
|
},
|
|
5865
6465
|
{
|
|
5866
6466
|
"name": "Overlay",
|
|
@@ -5900,7 +6500,7 @@
|
|
|
5900
6500
|
]
|
|
5901
6501
|
}
|
|
5902
6502
|
],
|
|
5903
|
-
"usageExample":
|
|
6503
|
+
"usageExample": "import { Overlay, Badge, Button } from \"@wizeworks/silicaui-react\";\r\nimport { Section, Row } from \"../lib/Section\";\r\n\r\nfunction placeholder(label: string, from: string, to: string): string {\r\n return `data:image/svg+xml,${encodeURIComponent(\r\n `<svg xmlns='http://www.w3.org/2000/svg' width='400' height='260'>` +\r\n `<defs><linearGradient id='g' x1='0' y1='0' x2='1' y2='1'>` +\r\n `<stop offset='0' stop-color='${from}'/><stop offset='1' stop-color='${to}'/>` +\r\n `</linearGradient></defs>` +\r\n `<rect width='400' height='260' fill='url(#g)'/>` +\r\n `</svg>`,\r\n )}`;\r\n}\r\n\r\nexport function OverlayDemo() {\r\n return (\r\n <>\r\n <Section title=\"Real use · caption scrim, always visible\">\r\n <div className=\"max-w-sm\">\r\n <Overlay\r\n className=\"rounded-box\"\r\n overlay={\r\n <div>\r\n <h3 className=\"text-base font-semibold\">Mountain sunrise</h3>\r\n <p className=\"text-sm opacity-80\">Banff National Park</p>\r\n </div>\r\n }\r\n >\r\n <img src={placeholder(\"1\", \"#0ea5e9\", \"#1e3a8a\")} alt=\"\" />\r\n </Overlay>\r\n </div>\r\n </Section>\r\n\r\n <Section title=\"Placement · top / bottom / full\">\r\n <Row>\r\n {([\"top\", \"bottom\", \"full\"] as const).map((placement) => (\r\n <div key={placement} className=\"w-48\">\r\n <Overlay\r\n className=\"rounded-box\"\r\n placement={placement}\r\n overlay={<Badge color=\"primary\">{placement}</Badge>}\r\n >\r\n <img src={placeholder(placement, \"#f97316\", \"#7c2d12\")} alt=\"\" />\r\n </Overlay>\r\n </div>\r\n ))}\r\n </Row>\r\n </Section>\r\n\r\n <Section title=\"reveal="hover" · gallery grid, scrim fades in on hover/focus\">\r\n <div className=\"grid max-w-md grid-cols-3 gap-2\">\r\n {[\"10b981-06b6d4\", \"8b5cf6-ec4899\", \"f59e0b-ef4444\"].map((pair, i) => {\r\n const [from, to] = pair.split(\"-\").map((c) => `#${c}`);\r\n return (\r\n <Overlay\r\n key={pair}\r\n className=\"rounded-field\"\r\n reveal=\"hover\"\r\n placement=\"full\"\r\n overlay={\r\n <Button size=\"sm\" color=\"primary\">\r\n View\r\n </Button>\r\n }\r\n >\r\n <img src={placeholder(`g${i}`, from!, to!)} alt=\"\" />\r\n </Overlay>\r\n );\r\n })}\r\n </div>\r\n </Section>\r\n </>\r\n );\r\n}"
|
|
5904
6504
|
},
|
|
5905
6505
|
{
|
|
5906
6506
|
"name": "Popover",
|
|
@@ -5950,7 +6550,7 @@
|
|
|
5950
6550
|
]
|
|
5951
6551
|
}
|
|
5952
6552
|
],
|
|
5953
|
-
"usageExample":
|
|
6553
|
+
"usageExample": "import {\r\n Popover,\r\n PopoverTrigger,\r\n PopoverContent,\r\n PopoverTitle,\r\n PopoverDescription,\r\n Button,\r\n} from \"@wizeworks/silicaui-react\";\r\nimport { Section } from \"../lib/Section\";\r\n\r\nexport function PopoverDemo() {\r\n return (\r\n <>\r\n <Section title=\"Real use · click-triggered info panel\">\r\n <Popover>\r\n <PopoverTrigger>\r\n <Button variant=\"outline\" color=\"neutral\">\r\n Storage details\r\n </Button>\r\n </PopoverTrigger>\r\n <PopoverContent arrow>\r\n <PopoverTitle>Storage</PopoverTitle>\r\n <PopoverDescription>\r\n 92% of your 100 GB quota is used. Upgrade your plan for more\r\n space.\r\n </PopoverDescription>\r\n </PopoverContent>\r\n </Popover>\r\n </Section>\r\n\r\n <Section title=\"Glass · frosted panel\">\r\n <div\r\n className=\"flex justify-center rounded-box p-16\"\r\n style={{\r\n backgroundImage:\r\n \"linear-gradient(135deg, var(--color-primary), var(--color-accent), var(--color-secondary))\",\r\n }}\r\n >\r\n <Popover>\r\n <PopoverTrigger>\r\n <Button variant=\"outline\" color=\"neutral\">\r\n Storage details\r\n </Button>\r\n </PopoverTrigger>\r\n <PopoverContent className=\"glass\" arrow>\r\n <PopoverTitle>Storage</PopoverTitle>\r\n <PopoverDescription>\r\n <code>PopoverContent className="glass"</code> — the\r\n gradient behind it shows through the blur.\r\n </PopoverDescription>\r\n </PopoverContent>\r\n </Popover>\r\n </div>\r\n </Section>\r\n </>\r\n );\r\n}"
|
|
5954
6554
|
},
|
|
5955
6555
|
{
|
|
5956
6556
|
"name": "Progress",
|
|
@@ -6008,14 +6608,14 @@
|
|
|
6008
6608
|
]
|
|
6009
6609
|
}
|
|
6010
6610
|
],
|
|
6011
|
-
"usageExample":
|
|
6611
|
+
"usageExample": "import { useState, useEffect } from \"react\";\r\nimport { Progress, Button } from \"@wizeworks/silicaui-react\";\r\nimport { Section, Row, LabeledRow } from \"../lib/Section\";\r\nimport { COLORS, SIZES } from \"../lib/data\";\r\n\r\nexport function ProgressDemo() {\r\n const [pct, setPct] = useState(40);\r\n const [upload, setUpload] = useState(0);\r\n\r\n useEffect(() => {\r\n const id = setInterval(\r\n () => setUpload((p) => (p >= 100 ? 0 : p + 4)),\r\n 180,\r\n );\r\n return () => clearInterval(id);\r\n }, []);\r\n\r\n return (\r\n <>\r\n <Section title=\"Colors\">\r\n <div className=\"grid max-w-md gap-4\">\r\n {COLORS.map((color) => (\r\n <LabeledRow key={color} label={color}>\r\n <Progress color={color} value={65} />\r\n </LabeledRow>\r\n ))}\r\n </div>\r\n </Section>\r\n\r\n <Section title=\"Sizes\">\r\n <div className=\"flex max-w-md flex-col gap-2\">\r\n {SIZES.map((size) => (\r\n <Progress key={size} color=\"primary\" size={size} value={60} />\r\n ))}\r\n </div>\r\n </Section>\r\n\r\n <Section title=\"showValue · built-in label row (replaces hand-rolled LabeledRow)\">\r\n <div className=\"grid max-w-md gap-4\">\r\n <Progress color=\"brand\" value={upload} showValue label=\"Uploading photo.png\" />\r\n <Progress color=\"success\" value={3} max={4} showValue formatValue={(v, max) => `${v} of ${max} steps`} label=\"Onboarding\" />\r\n <Progress color=\"warning\" value={pct} showValue />\r\n </div>\r\n </Section>\r\n\r\n <Section title=\"Real use · task + upload progress\">\r\n <div className=\"grid max-w-md gap-4\">\r\n <LabeledRow label=\"Onboarding · 3 of 4 steps\">\r\n <Progress color=\"success\" value={3} max={4} />\r\n </LabeledRow>\r\n <LabeledRow label={`Uploading photo.png · ${upload}%`}>\r\n <Progress color=\"brand\" value={upload} />\r\n </LabeledRow>\r\n <LabeledRow label=\"Indeterminate (duration unknown)\">\r\n <Progress color=\"primary\" />\r\n </LabeledRow>\r\n <LabeledRow label={`Interactive · ${pct}%`}>\r\n <Progress color=\"warning\" value={pct} />\r\n </LabeledRow>\r\n <Row>\r\n <Button\r\n size=\"sm\"\r\n variant=\"outline\"\r\n color=\"neutral\"\r\n onClick={() => setPct((p) => Math.max(0, p - 10))}\r\n >\r\n −10\r\n </Button>\r\n <Button\r\n size=\"sm\"\r\n variant=\"outline\"\r\n color=\"neutral\"\r\n onClick={() => setPct((p) => Math.min(100, p + 10))}\r\n >\r\n +10\r\n </Button>\r\n </Row>\r\n </div>\r\n </Section>\r\n </>\r\n );\r\n}"
|
|
6012
6612
|
},
|
|
6013
6613
|
{
|
|
6014
6614
|
"name": "RadialProgress",
|
|
6015
6615
|
"package": "@wizeworks/silicaui-react",
|
|
6016
6616
|
"category": "Feedback & overlay",
|
|
6017
6617
|
"sourceFile": "silicaui-react/src/radial-progress.tsx",
|
|
6018
|
-
"description": "Silica RadialProgress — a circular progress ring with a centered label. <RadialProgress value={70} color=\"success\" /> <RadialProgress value={40}
|
|
6618
|
+
"description": "Silica RadialProgress — a circular progress ring with a centered label. <RadialProgress value={70} color=\"success\" /> <RadialProgress value={40} diameter=\"7rem\" thickness=\"0.75rem\">40%</RadialProgress> Defaults the label to `{value}%`; pass children to override.",
|
|
6019
6619
|
"props": [
|
|
6020
6620
|
{
|
|
6021
6621
|
"name": "RadialProgressProps",
|
|
@@ -6028,10 +6628,10 @@
|
|
|
6028
6628
|
"doc": "Progress percentage, 0–100."
|
|
6029
6629
|
},
|
|
6030
6630
|
{
|
|
6031
|
-
"name": "
|
|
6631
|
+
"name": "diameter",
|
|
6032
6632
|
"optional": true,
|
|
6033
6633
|
"type": "string",
|
|
6034
|
-
"doc": "Overall diameter (any CSS length). Default `5rem`."
|
|
6634
|
+
"doc": "Overall diameter (any CSS length). Default `5rem`. Named `diameter`, not `size`, on purpose: everywhere else in Silica `size` is the `xs`–`xl` scale, so `size=\"lg\"` used to type-check here and emit `--size: lg` — an invalid length that silently collapsed the ring. Pairs with `thickness`, which is also a CSS length."
|
|
6035
6635
|
},
|
|
6036
6636
|
{
|
|
6037
6637
|
"name": "thickness",
|
|
@@ -6048,7 +6648,7 @@
|
|
|
6048
6648
|
]
|
|
6049
6649
|
}
|
|
6050
6650
|
],
|
|
6051
|
-
"usageExample":
|
|
6651
|
+
"usageExample": "import { useState, useEffect } from \"react\";\r\nimport { RadialProgress } from \"@wizeworks/silicaui-react\";\r\nimport { Section, Row } from \"../lib/Section\";\r\nimport { COLORS } from \"../lib/data\";\r\n\r\nexport function RadialProgressDemo() {\r\n const [pct, setPct] = useState(0);\r\n\r\n useEffect(() => {\r\n const id = setInterval(() => setPct((p) => (p >= 100 ? 0 : p + 5)), 200);\r\n return () => clearInterval(id);\r\n }, []);\r\n\r\n return (\r\n <>\r\n <Section title=\"Colors\">\r\n <Row>\r\n {COLORS.slice(0, 6).map((color) => (\r\n <RadialProgress key={color} value={70} color={color} />\r\n ))}\r\n </Row>\r\n </Section>\r\n\r\n <Section title=\"Sizes\">\r\n <Row>\r\n <RadialProgress value={60} color=\"primary\" diameter=\"3rem\" thickness=\"0.35rem\" />\r\n <RadialProgress value={60} color=\"primary\" diameter=\"5rem\" thickness=\"0.5rem\" />\r\n <RadialProgress value={60} color=\"primary\" diameter=\"8rem\" thickness=\"0.75rem\" />\r\n </Row>\r\n </Section>\r\n\r\n <Section title=\"Real use · animated upload progress\">\r\n <RadialProgress value={pct} color=\"brand\" diameter=\"6rem\" />\r\n </Section>\r\n </>\r\n );\r\n}"
|
|
6052
6652
|
},
|
|
6053
6653
|
{
|
|
6054
6654
|
"name": "Skeleton",
|
|
@@ -6070,7 +6670,7 @@
|
|
|
6070
6670
|
]
|
|
6071
6671
|
}
|
|
6072
6672
|
],
|
|
6073
|
-
"usageExample":
|
|
6673
|
+
"usageExample": "import { Skeleton } from \"@wizeworks/silicaui-react\";\r\nimport { Section, Row } from \"../lib/Section\";\r\n\r\nexport function SkeletonDemo() {\r\n return (\r\n <>\r\n <Section title=\"Shapes\">\r\n <Row>\r\n <Skeleton className=\"h-6 w-32\" />\r\n <Skeleton shape=\"circle\" className=\"h-12 w-12\" />\r\n <Skeleton shape=\"text\" className=\"w-40\" />\r\n </Row>\r\n </Section>\r\n\r\n <Section title=\"Real use · loading card\">\r\n <div className=\"flex max-w-sm flex-col gap-3 rounded-box border border-base-300 p-4\">\r\n <div className=\"flex items-center gap-3\">\r\n <Skeleton shape=\"circle\" className=\"h-10 w-10\" />\r\n <div className=\"flex flex-1 flex-col gap-2\">\r\n <Skeleton shape=\"text\" className=\"w-32\" />\r\n <Skeleton shape=\"text\" className=\"w-20\" />\r\n </div>\r\n </div>\r\n <Skeleton className=\"h-32 w-full\" />\r\n <Skeleton shape=\"text\" className=\"w-full\" />\r\n <Skeleton shape=\"text\" className=\"w-2/3\" />\r\n </div>\r\n </Section>\r\n </>\r\n );\r\n}"
|
|
6074
6674
|
},
|
|
6075
6675
|
{
|
|
6076
6676
|
"name": "Status",
|
|
@@ -6110,7 +6710,7 @@
|
|
|
6110
6710
|
]
|
|
6111
6711
|
}
|
|
6112
6712
|
],
|
|
6113
|
-
"usageExample":
|
|
6713
|
+
"usageExample": "import { Status } from \"@wizeworks/silicaui-react\";\r\nimport { Section, Row } from \"../lib/Section\";\r\nimport { COLORS, SIZES } from \"../lib/data\";\r\n\r\nexport function StatusDemo() {\r\n return (\r\n <>\r\n <Section title=\"Colors\">\r\n <Row>\r\n {COLORS.map((color) => (\r\n <span key={color} className=\"flex items-center gap-1.5 text-sm\">\r\n <Status color={color} label={color} />\r\n {color}\r\n </span>\r\n ))}\r\n </Row>\r\n </Section>\r\n\r\n <Section title=\"Sizes\">\r\n <Row>\r\n {SIZES.map((size) => (\r\n <span key={size} className=\"flex items-center gap-1.5 text-sm\">\r\n <Status color=\"primary\" size={size} />\r\n {size}\r\n </span>\r\n ))}\r\n </Row>\r\n </Section>\r\n\r\n <Section title=\"Real use · team presence\">\r\n <div className=\"flex flex-col gap-2 text-sm\">\r\n <span className=\"flex items-center gap-1.5\">\r\n <Status color=\"success\" ping label=\"Online\" />\r\n Ada Lovelace — active now\r\n </span>\r\n <span className=\"flex items-center gap-1.5\">\r\n <Status color=\"warning\" label=\"Away\" />\r\n Grace Hopper — away\r\n </span>\r\n <span className=\"flex items-center gap-1.5\">\r\n <Status color=\"neutral\" label=\"Offline\" />\r\n Alan Turing — offline\r\n </span>\r\n </div>\r\n </Section>\r\n </>\r\n );\r\n}"
|
|
6114
6714
|
},
|
|
6115
6715
|
{
|
|
6116
6716
|
"name": "ToastProvider",
|
|
@@ -6221,7 +6821,7 @@
|
|
|
6221
6821
|
"members": []
|
|
6222
6822
|
}
|
|
6223
6823
|
],
|
|
6224
|
-
"usageExample":
|
|
6824
|
+
"usageExample": "import { Tooltip, TooltipProvider, Button } from \"@wizeworks/silicaui-react\";\r\nimport { Section, Row } from \"../lib/Section\";\r\n\r\nexport function TooltipDemo() {\r\n return (\r\n <TooltipProvider>\r\n <Section title=\"Real use · sides (hover or focus a trigger)\">\r\n <Row>\r\n {([\"top\", \"right\", \"bottom\", \"left\"] as const).map((side) => (\r\n <Tooltip key={side} content={`On the ${side}`} side={side}>\r\n <Button variant=\"outline\" color=\"neutral\">\r\n {side}\r\n </Button>\r\n </Tooltip>\r\n ))}\r\n </Row>\r\n </Section>\r\n\r\n <Section title=\"Grouped delay (adjacent tooltips open instantly)\">\r\n <Row>\r\n <Tooltip content=\"Copy link\">\r\n <Button variant=\"ghost\" color=\"neutral\">\r\n Copy\r\n </Button>\r\n </Tooltip>\r\n <Tooltip content=\"Share\">\r\n <Button variant=\"ghost\" color=\"neutral\">\r\n Share\r\n </Button>\r\n </Tooltip>\r\n <Tooltip content=\"Delete\">\r\n <Button variant=\"ghost\" color=\"error\">\r\n Delete\r\n </Button>\r\n </Tooltip>\r\n </Row>\r\n </Section>\r\n </TooltipProvider>\r\n );\r\n}"
|
|
6225
6825
|
},
|
|
6226
6826
|
{
|
|
6227
6827
|
"name": "AppShell",
|
|
@@ -6251,7 +6851,7 @@
|
|
|
6251
6851
|
"members": []
|
|
6252
6852
|
}
|
|
6253
6853
|
],
|
|
6254
|
-
"usageExample":
|
|
6854
|
+
"usageExample": "import { useState } from \"react\";\r\nimport {\r\n AppShell,\r\n AppShellSidebar,\r\n AppShellHeader,\r\n AppShellMain,\r\n AppShellFooter,\r\n SidebarProvider,\r\n Sidebar,\r\n SidebarHeader,\r\n SidebarHeaderBrand,\r\n SidebarContent,\r\n SidebarGroup,\r\n SidebarGroupLabel,\r\n SidebarItem,\r\n SidebarTrigger,\r\n Navbar,\r\n NavbarStart,\r\n NavbarEnd,\r\n Footer,\r\n Wordmark,\r\n Button,\r\n} from \"@wizeworks/silicaui-react\";\r\nimport { Section } from \"../lib/Section\";\r\n\r\nconst HomeIcon = (\r\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.75\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\r\n <path d=\"M3 12 12 3l9 9\" /> <path d=\"M5 10v10h14V10\" />\r\n </svg>\r\n);\r\nconst SettingsIcon = (\r\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.75\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\r\n <path d=\"M14 17H5\" /> <path d=\"M19 7h-9\" /> <circle cx=\"17\" cy=\"17\" r=\"3\" /> <circle cx=\"7\" cy=\"7\" r=\"3\" />\r\n </svg>\r\n);\r\n\r\nexport function AppShellDemo() {\r\n const [active, setActive] = useState(\"dashboard\");\r\n\r\n return (\r\n <>\r\n <Section title=\"Real use · sidebar + header + footer (same AppShell as below, different slots)\">\r\n <div className=\"h-[26rem] w-full max-w-2xl overflow-hidden rounded-box border border-base-300\">\r\n <SidebarProvider>\r\n <AppShell>\r\n <AppShellSidebar>\r\n <Sidebar>\r\n <SidebarHeader>\r\n <SidebarHeaderBrand>\r\n <Wordmark size=\"sm\" color=\"primary\">Acme</Wordmark>\r\n </SidebarHeaderBrand>\r\n <SidebarTrigger />\r\n </SidebarHeader>\r\n <SidebarContent>\r\n <SidebarGroup>\r\n <SidebarGroupLabel>Workspace</SidebarGroupLabel>\r\n <SidebarItem\r\n icon={HomeIcon}\r\n active={active === \"dashboard\"}\r\n onClick={() => setActive(\"dashboard\")}\r\n >\r\n Dashboard\r\n </SidebarItem>\r\n <SidebarItem\r\n icon={SettingsIcon}\r\n active={active === \"settings\"}\r\n onClick={() => setActive(\"settings\")}\r\n >\r\n Settings\r\n </SidebarItem>\r\n </SidebarGroup>\r\n </SidebarContent>\r\n </Sidebar>\r\n </AppShellSidebar>\r\n\r\n <AppShellHeader>\r\n <Navbar className=\"border-b border-base-300\">\r\n <NavbarStart>\r\n <span className=\"text-sm font-semibold capitalize\">{active}</span>\r\n </NavbarStart>\r\n <NavbarEnd>\r\n <Button size=\"sm\" color=\"primary\">\r\n New\r\n </Button>\r\n </NavbarEnd>\r\n </Navbar>\r\n </AppShellHeader>\r\n\r\n <AppShellMain className=\"p-6\">\r\n <p className=\"text-sm opacity-70\">\r\n Content for “{active}” — this pane scrolls independently; try\r\n collapsing the sidebar.\r\n </p>\r\n {Array.from({ length: 12 }, (_, i) => (\r\n <p key={i} className=\"mt-3 text-sm opacity-60\">\r\n Filler paragraph {i + 1} to make the main area scroll.\r\n </p>\r\n ))}\r\n </AppShellMain>\r\n\r\n <AppShellFooter>\r\n <Footer center className=\"border-t border-base-300 py-3 text-xs\">\r\n © 2026 Acme, Inc.\r\n </Footer>\r\n </AppShellFooter>\r\n </AppShell>\r\n </SidebarProvider>\r\n </div>\r\n </Section>\r\n\r\n <Section title=\"Same AppShell, no sidebar · header + footer only\">\r\n <div className=\"h-64 w-full max-w-2xl overflow-hidden rounded-box border border-base-300\">\r\n <AppShell>\r\n <AppShellHeader>\r\n <Navbar className=\"border-b border-base-300\">\r\n <NavbarStart>\r\n <span className=\"text-sm font-semibold\">Acme</span>\r\n </NavbarStart>\r\n </Navbar>\r\n </AppShellHeader>\r\n <AppShellMain className=\"p-6\">\r\n <p className=\"text-sm opacity-70\">\r\n No sidebar slot rendered — its grid column collapses to zero\r\n automatically.\r\n </p>\r\n </AppShellMain>\r\n <AppShellFooter>\r\n <Footer center className=\"border-t border-base-300 py-3 text-xs\">\r\n © 2026 Acme, Inc.\r\n </Footer>\r\n </AppShellFooter>\r\n </AppShell>\r\n </div>\r\n </Section>\r\n </>\r\n );\r\n}"
|
|
6255
6855
|
},
|
|
6256
6856
|
{
|
|
6257
6857
|
"name": "Divider",
|
|
@@ -6273,7 +6873,7 @@
|
|
|
6273
6873
|
]
|
|
6274
6874
|
}
|
|
6275
6875
|
],
|
|
6276
|
-
"usageExample":
|
|
6876
|
+
"usageExample": "import { Divider, Button } from \"@wizeworks/silicaui-react\";\r\nimport { Section } from \"../lib/Section\";\r\n\r\nexport function DividerDemo() {\r\n return (\r\n <>\r\n <Section title=\"Plain & labeled\">\r\n <div className=\"flex max-w-sm flex-col\">\r\n <p className=\"text-sm opacity-70\">Continue with your account</p>\r\n <Divider />\r\n <p className=\"text-sm opacity-70\">Or use a different method</p>\r\n </div>\r\n </Section>\r\n\r\n <Section title=\"Real use · sign-in split\">\r\n <div className=\"flex max-w-sm flex-col gap-3\">\r\n <Button color=\"neutral\" variant=\"outline\">\r\n Continue with email\r\n </Button>\r\n <Divider>OR</Divider>\r\n <Button color=\"primary\">Continue with Google</Button>\r\n </div>\r\n </Section>\r\n\r\n <Section title=\"Vertical (in a row)\">\r\n <div className=\"flex h-8 items-center text-sm\">\r\n <span>Docs</span>\r\n <Divider orientation=\"vertical\" />\r\n <span>Pricing</span>\r\n <Divider orientation=\"vertical\" />\r\n <span>Blog</span>\r\n </div>\r\n </Section>\r\n </>\r\n );\r\n}"
|
|
6277
6877
|
},
|
|
6278
6878
|
{
|
|
6279
6879
|
"name": "Footer",
|
|
@@ -6299,7 +6899,7 @@
|
|
|
6299
6899
|
"members": []
|
|
6300
6900
|
}
|
|
6301
6901
|
],
|
|
6302
|
-
"usageExample":
|
|
6902
|
+
"usageExample": "import { Footer, FooterTitle, Link } from \"@wizeworks/silicaui-react\";\r\nimport { Section } from \"../lib/Section\";\r\n\r\nexport function FooterDemo() {\r\n return (\r\n <>\r\n <Section title=\"Real use · multi-column site footer\">\r\n <Footer className=\"rounded-box border border-base-300 p-6\">\r\n <nav>\r\n <FooterTitle>Product</FooterTitle>\r\n <Link href=\"#\">Features</Link>\r\n <Link href=\"#\">Pricing</Link>\r\n <Link href=\"#\">Changelog</Link>\r\n </nav>\r\n <nav>\r\n <FooterTitle>Company</FooterTitle>\r\n <Link href=\"#\">About</Link>\r\n <Link href=\"#\">Careers</Link>\r\n <Link href=\"#\">Contact</Link>\r\n </nav>\r\n <nav>\r\n <FooterTitle>Legal</FooterTitle>\r\n <Link href=\"#\">Terms</Link>\r\n <Link href=\"#\">Privacy</Link>\r\n </nav>\r\n </Footer>\r\n </Section>\r\n\r\n <Section title=\"Centered\">\r\n <Footer center className=\"rounded-box border border-base-300 p-6\">\r\n <div>\r\n <p>© 2026 Silica UI — all rights reserved.</p>\r\n </div>\r\n </Footer>\r\n </Section>\r\n\r\n <Section title=\"Glass · footer over a colored page background\">\r\n <div\r\n className=\"flex flex-col justify-end gap-24 rounded-box p-4\"\r\n style={{\r\n backgroundImage:\r\n \"linear-gradient(135deg, var(--color-primary), var(--color-accent), var(--color-secondary))\",\r\n }}\r\n >\r\n <Footer className=\"glass p-6\">\r\n <nav>\r\n <FooterTitle>Product</FooterTitle>\r\n <Link href=\"#\">Features</Link>\r\n <Link href=\"#\">Pricing</Link>\r\n <Link href=\"#\">Changelog</Link>\r\n </nav>\r\n <nav>\r\n <FooterTitle>Company</FooterTitle>\r\n <Link href=\"#\">About</Link>\r\n <Link href=\"#\">Careers</Link>\r\n <Link href=\"#\">Contact</Link>\r\n </nav>\r\n <nav>\r\n <FooterTitle>Legal</FooterTitle>\r\n <Link href=\"#\">Terms</Link>\r\n <Link href=\"#\">Privacy</Link>\r\n </nav>\r\n </Footer>\r\n </div>\r\n </Section>\r\n </>\r\n );\r\n}"
|
|
6303
6903
|
},
|
|
6304
6904
|
{
|
|
6305
6905
|
"name": "Hero",
|
|
@@ -6313,7 +6913,7 @@
|
|
|
6313
6913
|
"members": []
|
|
6314
6914
|
}
|
|
6315
6915
|
],
|
|
6316
|
-
"usageExample":
|
|
6916
|
+
"usageExample": "import { Hero, HeroContent, HeroOverlay, Button } from \"@wizeworks/silicaui-react\";\r\nimport { Section } from \"../lib/Section\";\r\n\r\nexport function HeroDemo() {\r\n return (\r\n <Section title=\"Real use · landing banner\">\r\n <Hero\r\n className=\"rounded-box\"\r\n style={{\r\n backgroundImage:\r\n \"linear-gradient(135deg, #6366f1, #ec4899)\",\r\n }}\r\n >\r\n <HeroOverlay />\r\n <HeroContent className=\"text-center text-white\">\r\n <div className=\"max-w-md\">\r\n <h1 className=\"text-4xl font-bold\">Ship faster with Silica</h1>\r\n <p className=\"py-4 opacity-90\">\r\n One token system, every component, zero lock-in.\r\n </p>\r\n <Button color=\"primary\">Get started</Button>\r\n </div>\r\n </HeroContent>\r\n </Hero>\r\n </Section>\r\n );\r\n}"
|
|
6317
6917
|
},
|
|
6318
6918
|
{
|
|
6319
6919
|
"name": "Mask",
|
|
@@ -6335,7 +6935,7 @@
|
|
|
6335
6935
|
]
|
|
6336
6936
|
}
|
|
6337
6937
|
],
|
|
6338
|
-
"usageExample":
|
|
6938
|
+
"usageExample": "import { Mask } from \"@wizeworks/silicaui-react\";\r\nimport { Section, Row } from \"../lib/Section\";\r\n\r\nconst PHOTO = `data:image/svg+xml,${encodeURIComponent(\r\n `<svg xmlns='http://www.w3.org/2000/svg' width='100' height='100'>` +\r\n `<defs><linearGradient id='g' x1='0' y1='0' x2='1' y2='1'>` +\r\n `<stop offset='0' stop-color='#6366f1'/><stop offset='1' stop-color='#ec4899'/>` +\r\n `</linearGradient></defs>` +\r\n `<rect width='100' height='100' fill='url(#g)'/>` +\r\n `<circle cx='50' cy='40' r='18' fill='rgba(255,255,255,.92)'/>` +\r\n `<rect x='22' y='62' width='56' height='38' rx='19' fill='rgba(255,255,255,.92)'/>` +\r\n `</svg>`,\r\n)}`;\r\n\r\nconst SHAPES = [\r\n \"squircle\",\r\n \"circle\",\r\n \"heart\",\r\n \"hexagon\",\r\n \"hexagon-2\",\r\n \"pentagon\",\r\n \"diamond\",\r\n \"triangle\",\r\n \"star\",\r\n \"star-2\",\r\n \"decagon\",\r\n \"parallelogram\",\r\n] as const;\r\n\r\nexport function MaskDemo() {\r\n return (\r\n <Section title=\"Real use · avatar photo clipped to every shape\">\r\n <Row>\r\n {SHAPES.map((shape) => (\r\n <Mask key={shape} variant={shape} className=\"h-16 w-16\">\r\n <img src={PHOTO} alt=\"\" className=\"h-full w-full object-cover\" />\r\n </Mask>\r\n ))}\r\n </Row>\r\n </Section>\r\n );\r\n}"
|
|
6339
6939
|
},
|
|
6340
6940
|
{
|
|
6341
6941
|
"name": "ScrollArea",
|
|
@@ -6357,7 +6957,7 @@
|
|
|
6357
6957
|
]
|
|
6358
6958
|
}
|
|
6359
6959
|
],
|
|
6360
|
-
"usageExample":
|
|
6960
|
+
"usageExample": "import { ScrollArea } from \"@wizeworks/silicaui-react\";\r\nimport { Section, Row } from \"../lib/Section\";\r\n\r\nconst ITEMS = Array.from({ length: 30 }, (_, i) => `Item ${i + 1}`);\r\n\r\nexport function ScrollAreaDemo() {\r\n return (\r\n <>\r\n <Section title=\"Real use · scrollable list panel\">\r\n <ScrollArea className=\"h-64 w-72 rounded-box border border-base-300\">\r\n <div className=\"flex flex-col gap-1 p-4\">\r\n {ITEMS.map((item) => (\r\n <div key={item} className=\"rounded-field px-2 py-1 text-sm\">\r\n {item}\r\n </div>\r\n ))}\r\n </div>\r\n </ScrollArea>\r\n </Section>\r\n\r\n <Section title=\"Both axes\">\r\n <Row>\r\n <ScrollArea\r\n orientation=\"both\"\r\n className=\"h-48 w-64 rounded-box border border-base-300\"\r\n >\r\n <div style={{ width: \"40rem\", height: \"24rem\" }} className=\"p-4\">\r\n Wide + tall content — scroll both directions.\r\n </div>\r\n </ScrollArea>\r\n </Row>\r\n </Section>\r\n </>\r\n );\r\n}"
|
|
6361
6961
|
},
|
|
6362
6962
|
{
|
|
6363
6963
|
"name": "Stack",
|
|
@@ -6385,7 +6985,7 @@
|
|
|
6385
6985
|
]
|
|
6386
6986
|
}
|
|
6387
6987
|
],
|
|
6388
|
-
"usageExample":
|
|
6988
|
+
"usageExample": "import { Stack, Card, CardBody } from \"@wizeworks/silicaui-react\";\r\nimport { Section } from \"../lib/Section\";\r\n\r\nconst CARDS = [\r\n { label: \"1\", color: \"primary\" },\r\n { label: \"2\", color: \"secondary\" },\r\n { label: \"3\", color: \"accent\" },\r\n];\r\n\r\nexport function StackDemo() {\r\n return (\r\n <>\r\n <Section title=\"Real use · interactive peeking deck (click to cycle)\">\r\n <Stack interactive className=\"h-32 w-48\">\r\n {CARDS.map((c) => (\r\n <Card\r\n key={c.label}\r\n style={{\r\n backgroundColor: `var(--color-${c.color})`,\r\n color: `var(--color-${c.color}-content, #fff)`,\r\n }}\r\n >\r\n <CardBody className=\"items-center justify-center text-2xl font-bold\">\r\n {c.label}\r\n </CardBody>\r\n </Card>\r\n ))}\r\n </Stack>\r\n </Section>\r\n\r\n <Section title=\"Peek direction\">\r\n <div className=\"flex gap-8\">\r\n {([\"top\", \"bottom\", \"start\", \"end\"] as const).map((peek) => (\r\n <Stack key={peek} peek={peek} className=\"h-20 w-28\">\r\n {CARDS.map((c) => (\r\n <Card\r\n key={c.label}\r\n style={{\r\n backgroundColor: `var(--color-${c.color})`,\r\n color: `var(--color-${c.color}-content, #fff)`,\r\n }}\r\n >\r\n <CardBody className=\"items-center justify-center text-sm\">\r\n {peek}\r\n </CardBody>\r\n </Card>\r\n ))}\r\n </Stack>\r\n ))}\r\n </div>\r\n </Section>\r\n </>\r\n );\r\n}"
|
|
6389
6989
|
},
|
|
6390
6990
|
{
|
|
6391
6991
|
"name": "Collapsible",
|
|
@@ -6429,7 +7029,7 @@
|
|
|
6429
7029
|
]
|
|
6430
7030
|
}
|
|
6431
7031
|
],
|
|
6432
|
-
"usageExample":
|
|
7032
|
+
"usageExample": "import { Collapsible, CollapsibleTrigger, CollapsiblePanel } from \"@wizeworks/silicaui-react\";\r\nimport { Section } from \"../lib/Section\";\r\n\r\nexport function CollapsibleDemo() {\r\n return (\r\n <Section title=\"Real use · single show/hide region\">\r\n <Collapsible defaultOpen className=\"max-w-md\">\r\n <CollapsibleTrigger>Shipping details</CollapsibleTrigger>\r\n <CollapsiblePanel>\r\n Ships in 2–3 business days via standard shipping. Express options\r\n are available at checkout.\r\n </CollapsiblePanel>\r\n </Collapsible>\r\n </Section>\r\n );\r\n}"
|
|
6433
7033
|
},
|
|
6434
7034
|
{
|
|
6435
7035
|
"name": "CommandPalette",
|
|
@@ -6492,7 +7092,7 @@
|
|
|
6492
7092
|
]
|
|
6493
7093
|
}
|
|
6494
7094
|
],
|
|
6495
|
-
"usageExample": null
|
|
7095
|
+
"usageExample": "import { useState } from \"react\";\r\nimport { CommandPalette, Button } from \"@wizeworks/silicaui-react\";\r\nimport type { CommandItem } from \"@wizeworks/silicaui-react\";\r\nimport { Section, Row } from \"../lib/Section\";\r\n\r\nexport function CommandPaletteDemo() {\r\n const [open, setOpen] = useState(false);\r\n const [lastCommand, setLastCommand] = useState<string | null>(null);\r\n\r\n const items: CommandItem[] = [\r\n {\r\n id: \"new-page\",\r\n label: \"Create new page\",\r\n description: \"Add a blank page to this site\",\r\n group: \"Actions\",\r\n shortcut: \"⌘N\",\r\n onSelect: () => setLastCommand(\"Create new page\"),\r\n },\r\n {\r\n id: \"invite\",\r\n label: \"Invite teammate\",\r\n group: \"Actions\",\r\n keywords: [\"member\", \"user\", \"collaborator\"],\r\n onSelect: () => setLastCommand(\"Invite teammate\"),\r\n },\r\n {\r\n id: \"theme-light\",\r\n label: \"Switch to light theme\",\r\n group: \"Preferences\",\r\n onSelect: () => setLastCommand(\"Switch to light theme\"),\r\n },\r\n {\r\n id: \"theme-dark\",\r\n label: \"Switch to dark theme\",\r\n group: \"Preferences\",\r\n onSelect: () => setLastCommand(\"Switch to dark theme\"),\r\n },\r\n {\r\n id: \"billing\",\r\n label: \"Open billing settings\",\r\n group: \"Preferences\",\r\n disabled: true,\r\n onSelect: () => setLastCommand(\"Open billing settings\"),\r\n },\r\n ];\r\n\r\n return (\r\n <Section title=\"Real use · ⌘K launcher (try the hotkey too)\">\r\n <Row>\r\n <Button color=\"primary\" onClick={() => setOpen(true)}>\r\n Open command palette\r\n </Button>\r\n {lastCommand && (\r\n <span className=\"text-sm opacity-70\">Ran: {lastCommand}</span>\r\n )}\r\n </Row>\r\n <CommandPalette items={items} open={open} onOpenChange={setOpen} />\r\n </Section>\r\n );\r\n}"
|
|
6496
7096
|
},
|
|
6497
7097
|
{
|
|
6498
7098
|
"name": "Dropzone",
|
|
@@ -6568,7 +7168,7 @@
|
|
|
6568
7168
|
]
|
|
6569
7169
|
}
|
|
6570
7170
|
],
|
|
6571
|
-
"usageExample":
|
|
7171
|
+
"usageExample": "import { useState } from \"react\";\r\nimport { Dropzone } from \"@wizeworks/silicaui-react\";\r\nimport { Section } from \"../lib/Section\";\r\n\r\nexport function DropzoneDemo() {\r\n const [files, setFiles] = useState<string[]>([]);\r\n const [rejected, setRejected] = useState<string[]>([]);\r\n\r\n return (\r\n <Section title=\"Real use · image upload with rejection reasons\">\r\n <div className=\"flex max-w-md flex-col gap-3\">\r\n <Dropzone\r\n accept=\"image/*\"\r\n maxSize={2 * 1024 * 1024}\r\n hint=\"PNG or JPG, up to 2MB\"\r\n onFiles={(fs) => setFiles(fs.map((f) => f.name))}\r\n onReject={(rs) =>\r\n setRejected(rs.map((r) => `${r.file.name} (${r.reason})`))\r\n }\r\n />\r\n {files.length > 0 && (\r\n <p className=\"text-xs text-success\">Accepted: {files.join(\", \")}</p>\r\n )}\r\n {rejected.length > 0 && (\r\n <p className=\"text-xs text-error\">Rejected: {rejected.join(\", \")}</p>\r\n )}\r\n </div>\r\n </Section>\r\n );\r\n}"
|
|
6572
7172
|
},
|
|
6573
7173
|
{
|
|
6574
7174
|
"name": "EmptyState",
|
|
@@ -6614,7 +7214,7 @@
|
|
|
6614
7214
|
]
|
|
6615
7215
|
}
|
|
6616
7216
|
],
|
|
6617
|
-
"usageExample":
|
|
7217
|
+
"usageExample": "import { EmptyState, Button } from \"@wizeworks/silicaui-react\";\r\nimport { Section } from \"../lib/Section\";\r\n\r\nfunction InboxIcon() {\r\n return (\r\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.5\" width=\"32\" height=\"32\">\r\n <path d=\"M4 12h4l2 3h4l2-3h4\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\r\n <path d=\"M5 6h14l1.5 6.5v6a1 1 0 0 1-1 1h-15a1 1 0 0 1-1-1v-6z\" strokeLinejoin=\"round\" />\r\n </svg>\r\n );\r\n}\r\n\r\nexport function EmptyStateDemo() {\r\n return (\r\n <>\r\n <Section title=\"Real use · empty inbox\">\r\n <EmptyState\r\n icon={<InboxIcon />}\r\n title=\"No messages yet\"\r\n description=\"When someone sends you a message, it'll show up here.\"\r\n actions={<Button color=\"primary\">Invite teammates</Button>}\r\n className=\"max-w-sm rounded-box border border-base-300\"\r\n />\r\n </Section>\r\n\r\n <Section title=\"Compact (sm)\">\r\n <EmptyState\r\n size=\"sm\"\r\n title=\"No results\"\r\n description=\"Try a different search term.\"\r\n className=\"max-w-sm rounded-box border border-base-300\"\r\n />\r\n </Section>\r\n </>\r\n );\r\n}"
|
|
6618
7218
|
},
|
|
6619
7219
|
{
|
|
6620
7220
|
"name": "PowerSearch",
|
|
@@ -6712,7 +7312,7 @@
|
|
|
6712
7312
|
]
|
|
6713
7313
|
}
|
|
6714
7314
|
],
|
|
6715
|
-
"usageExample": null
|
|
7315
|
+
"usageExample": "import { PowerSearch, usePowerSearchConfig, Button, type PowerSearchFieldDef } from \"@wizeworks/silicaui-react\";\r\nimport { Section } from \"../lib/Section\";\r\n\r\nconst FIELDS: PowerSearchFieldDef[] = [\r\n {\r\n key: \"status\",\r\n label: \"Status\",\r\n type: \"select\",\r\n options: [\r\n { value: \"open\", label: \"Open\" },\r\n { value: \"in-progress\", label: \"In progress\" },\r\n { value: \"done\", label: \"Done\" },\r\n ],\r\n },\r\n { key: \"assignee\", label: \"Assignee\", type: \"text\", placeholder: \"e.g. ada\" },\r\n { key: \"due\", label: \"Due date\", type: \"date\" },\r\n { key: \"starred\", label: \"Starred\", type: \"boolean\" },\r\n {\r\n key: \"priority\",\r\n label: \"Priority\",\r\n type: \"custom\",\r\n formatValue: (v) => \"⭐\".repeat(Number(v) || 1),\r\n render: ({ onCommit }) => (\r\n <div className=\"flex gap-1\">\r\n {[1, 2, 3].map((n) => (\r\n <Button key={n} size=\"sm\" variant=\"outline\" onClick={() => onCommit(String(n))}>\r\n {\"⭐\".repeat(n)}\r\n </Button>\r\n ))}\r\n </div>\r\n ),\r\n },\r\n];\r\n\r\nexport function PowerSearchDemo() {\r\n const search = usePowerSearchConfig({\r\n fields: FIELDS,\r\n defaultValue: {\r\n query: \"\",\r\n terms: [{ id: \"seed-1\", field: \"status\", value: \"in-progress\" }],\r\n },\r\n });\r\n\r\n return (\r\n <Section title=\"Real use · issue search (select/text/date/boolean/custom fields)\">\r\n <div className=\"max-w-xl\">\r\n <PowerSearch {...search} placeholder=\"Search issues…\" />\r\n <pre className=\"mt-3 rounded-field bg-base-200 p-3 text-xs\">\r\n {JSON.stringify(search.value, null, 2)}\r\n </pre>\r\n </div>\r\n </Section>\r\n );\r\n}"
|
|
6716
7316
|
},
|
|
6717
7317
|
{
|
|
6718
7318
|
"name": "ThemeController",
|
|
@@ -6743,11 +7343,17 @@
|
|
|
6743
7343
|
"doc": "Uncontrolled initial theme (falls back to stored value, then the target's current `data-theme`, then the first theme)."
|
|
6744
7344
|
},
|
|
6745
7345
|
{
|
|
6746
|
-
"name": "
|
|
7346
|
+
"name": "onValueChange",
|
|
6747
7347
|
"optional": true,
|
|
6748
7348
|
"type": "(theme: string) => void",
|
|
6749
7349
|
"doc": "Called with the new theme when it changes."
|
|
6750
7350
|
},
|
|
7351
|
+
{
|
|
7352
|
+
"name": "onChange",
|
|
7353
|
+
"optional": true,
|
|
7354
|
+
"type": "(theme: string) => void",
|
|
7355
|
+
"doc": "@deprecated Use `onValueChange`. `onChange` is reserved for the native DOM handler on components that wrap a real form element; still honored here so this isn't a breaking change."
|
|
7356
|
+
},
|
|
6751
7357
|
{
|
|
6752
7358
|
"name": "target",
|
|
6753
7359
|
"optional": true,
|
|
@@ -6827,7 +7433,7 @@
|
|
|
6827
7433
|
"members": []
|
|
6828
7434
|
}
|
|
6829
7435
|
],
|
|
6830
|
-
"usageExample":
|
|
7436
|
+
"usageExample": "import { useState } from \"react\";\r\nimport {\r\n Toolbar,\r\n ToolbarButton,\r\n ToolbarCenter,\r\n ToolbarGroup,\r\n ToolbarLink,\r\n ToolbarSeparator,\r\n} from \"@wizeworks/silicaui-react\";\r\nimport { Section, Stack } from \"../lib/Section\";\r\n\r\nfunction BoldIcon() {\r\n return (\r\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\r\n <path d=\"M7 5h6a3.5 3.5 0 0 1 0 7H7zM7 12h7a3.5 3.5 0 0 1 0 7H7z\" strokeLinejoin=\"round\" />\r\n </svg>\r\n );\r\n}\r\nfunction ItalicIcon() {\r\n return (\r\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\r\n <path d=\"M15 4h-5M14 20H9M14 4l-4 16\" strokeLinecap=\"round\" />\r\n </svg>\r\n );\r\n}\r\nfunction UnderlineIcon() {\r\n return (\r\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\r\n <path d=\"M7 4v6a5 5 0 0 0 10 0V4M6 21h12\" strokeLinecap=\"round\" />\r\n </svg>\r\n );\r\n}\r\nfunction PlusIcon() {\r\n return (\r\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\r\n <path d=\"M12 5v14M5 12h14\" strokeLinecap=\"round\" />\r\n </svg>\r\n );\r\n}\r\nfunction TrashIcon() {\r\n return (\r\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\r\n <path d=\"M4 7h16M9 7V4h6v3M6 7l1 13h10l1-13\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\r\n </svg>\r\n );\r\n}\r\n\r\nexport function ToolbarDemo() {\r\n const [format, setFormat] = useState<string[]>([\"bold\"]);\r\n\r\n const toggle = (key: string) =>\r\n setFormat((f) => (f.includes(key) ? f.filter((k) => k !== key) : [...f, key]));\r\n\r\n return (\r\n <>\r\n <Section title=\"Real use · text formatting toolbar\">\r\n <Toolbar aria-label=\"Formatting\">\r\n <ToolbarGroup>\r\n <ToolbarButton\r\n aria-pressed={format.includes(\"bold\")}\r\n onClick={() => toggle(\"bold\")}\r\n >\r\n <BoldIcon />\r\n </ToolbarButton>\r\n <ToolbarButton\r\n aria-pressed={format.includes(\"italic\")}\r\n onClick={() => toggle(\"italic\")}\r\n >\r\n <ItalicIcon />\r\n </ToolbarButton>\r\n <ToolbarButton\r\n aria-pressed={format.includes(\"underline\")}\r\n onClick={() => toggle(\"underline\")}\r\n >\r\n <UnderlineIcon />\r\n </ToolbarButton>\r\n </ToolbarGroup>\r\n <ToolbarSeparator />\r\n <ToolbarLink href=\"#\">Help</ToolbarLink>\r\n </Toolbar>\r\n </Section>\r\n\r\n <Section title=\"Sizes\">\r\n <Stack className=\"items-start\">\r\n {([\"sm\", \"md\", \"lg\"] as const).map((size) => (\r\n <Toolbar key={size} aria-label={`${size} toolbar`} size={size}>\r\n <ToolbarButton>\r\n <PlusIcon />\r\n Add\r\n </ToolbarButton>\r\n <ToolbarSeparator />\r\n <ToolbarLink href=\"#\">{size}</ToolbarLink>\r\n </Toolbar>\r\n ))}\r\n </Stack>\r\n </Section>\r\n\r\n <Section title=\"Variant + dividers · bulk-selection bar\">\r\n <div className=\"w-full max-w-md rounded-box border border-base-300\">\r\n <Toolbar aria-label=\"Bulk actions\" size=\"sm\" variant=\"muted\" dividers=\"bottom\" className=\"w-full\">\r\n <ToolbarGroup>\r\n <span className=\"px-1 text-xs font-medium opacity-70\">3 selected</span>\r\n </ToolbarGroup>\r\n <ToolbarSeparator />\r\n <ToolbarGroup>\r\n <ToolbarButton>\r\n <TrashIcon />\r\n </ToolbarButton>\r\n </ToolbarGroup>\r\n <ToolbarLink href=\"#\" className=\"ml-auto\">\r\n Deselect all\r\n </ToolbarLink>\r\n </Toolbar>\r\n <div className=\"p-4 text-sm opacity-60\">…table content…</div>\r\n </div>\r\n </Section>\r\n\r\n <Section title=\"Dividers · card header\">\r\n <div className=\"w-full max-w-md rounded-box border border-base-300\">\r\n <Toolbar aria-label=\"Card actions\" dividers=\"bottom\" className=\"w-full\">\r\n <span className=\"px-1 text-sm font-semibold\">Card title</span>\r\n <ToolbarButton className=\"ml-auto\">\r\n <PlusIcon />\r\n </ToolbarButton>\r\n </Toolbar>\r\n <div className=\"p-4 text-sm opacity-60\">…card content…</div>\r\n </div>\r\n </Section>\r\n\r\n <Section title=\"Glass · floating action bar\">\r\n <div\r\n className=\"flex justify-center rounded-box p-16\"\r\n style={{\r\n backgroundImage:\r\n \"linear-gradient(135deg, var(--color-primary), var(--color-accent), var(--color-secondary))\",\r\n }}\r\n >\r\n <Toolbar aria-label=\"Floating actions\" className=\"glass\">\r\n <ToolbarGroup>\r\n <ToolbarButton>\r\n <PlusIcon />\r\n Add\r\n </ToolbarButton>\r\n <ToolbarButton>\r\n <TrashIcon />\r\n </ToolbarButton>\r\n </ToolbarGroup>\r\n <ToolbarSeparator />\r\n <ToolbarLink href=\"#\">Help</ToolbarLink>\r\n </Toolbar>\r\n </div>\r\n </Section>\r\n\r\n <Section title=\"Center region · start / center / end\">\r\n <div className=\"w-full max-w-md rounded-box border border-base-300\">\r\n <Toolbar aria-label=\"Section navigation\" dividers=\"bottom\" className=\"w-full\">\r\n <ToolbarGroup />\r\n <ToolbarCenter>\r\n <ToolbarGroup>\r\n <ToolbarButton aria-pressed={true}>Overview</ToolbarButton>\r\n <ToolbarButton aria-pressed={false}>Analytics</ToolbarButton>\r\n <ToolbarButton aria-pressed={false}>Settings</ToolbarButton>\r\n </ToolbarGroup>\r\n </ToolbarCenter>\r\n <ToolbarGroup>\r\n <ToolbarButton>\r\n <PlusIcon />\r\n </ToolbarButton>\r\n </ToolbarGroup>\r\n </Toolbar>\r\n </div>\r\n </Section>\r\n </>\r\n );\r\n}"
|
|
6831
7437
|
},
|
|
6832
7438
|
{
|
|
6833
7439
|
"name": "TreeView",
|
|
@@ -6897,7 +7503,7 @@
|
|
|
6897
7503
|
]
|
|
6898
7504
|
}
|
|
6899
7505
|
],
|
|
6900
|
-
"usageExample":
|
|
7506
|
+
"usageExample": "import { useState } from \"react\";\r\nimport { TreeView } from \"@wizeworks/silicaui-react\";\r\nimport type { TreeDropEdge, TreeNode } from \"@wizeworks/silicaui-react\";\r\nimport { Section } from \"../lib/Section\";\r\n\r\nconst FolderIcon = (\r\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.75\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\r\n <path d=\"M3 7a2 2 0 0 1 2-2h4l2 2h8a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z\" />\r\n </svg>\r\n);\r\nconst FileIcon = (\r\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.75\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\r\n <path d=\"M14 3v4a1 1 0 0 0 1 1h4\" />\r\n <path d=\"M5 3h9l5 5v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z\" />\r\n </svg>\r\n);\r\n\r\nconst TREE_ITEMS: TreeNode[] = [\r\n {\r\n id: \"pages\",\r\n label: \"Pages\",\r\n icon: FolderIcon,\r\n children: [\r\n { id: \"home\", label: \"Home\", icon: FileIcon },\r\n { id: \"about\", label: \"About\", icon: FileIcon },\r\n { id: \"pricing\", label: \"Pricing\", icon: FileIcon },\r\n ],\r\n },\r\n {\r\n id: \"shop\",\r\n label: \"Shop\",\r\n icon: FolderIcon,\r\n children: [\r\n {\r\n id: \"products\",\r\n label: \"Products\",\r\n icon: FolderIcon,\r\n children: [\r\n { id: \"product-list\", label: \"All products\", icon: FileIcon },\r\n { id: \"product-new\", label: \"New product\", icon: FileIcon },\r\n ],\r\n },\r\n { id: \"collections\", label: \"Collections\", icon: FileIcon },\r\n { id: \"checkout\", label: \"Checkout (locked)\", icon: FileIcon, disabled: true },\r\n ],\r\n },\r\n { id: \"blog\", label: \"Blog\", icon: FileIcon },\r\n { id: \"settings\", label: \"Settings\", icon: FileIcon },\r\n];\r\n\r\n/** Remove `id` from the forest, returning the pruned tree + the removed node. */\r\nfunction removeById(nodes: TreeNode[], id: string): [TreeNode[], TreeNode | undefined] {\r\n let removed: TreeNode | undefined;\r\n const next = nodes.flatMap((n) => {\r\n if (n.id === id) {\r\n removed = n;\r\n return [];\r\n }\r\n if (!n.children) return [n];\r\n const [children, found] = removeById(n.children, id);\r\n if (found) removed = found;\r\n return [{ ...n, children }];\r\n });\r\n return [next, removed];\r\n}\r\n\r\n/** Insert `node` before/after/inside `targetId`, wherever it lives in the forest. */\r\nfunction insertRelative(nodes: TreeNode[], targetId: string, edge: TreeDropEdge, node: TreeNode): TreeNode[] {\r\n const idx = nodes.findIndex((n) => n.id === targetId);\r\n if (idx === -1) {\r\n return nodes.map((n) => (n.children ? { ...n, children: insertRelative(n.children, targetId, edge, node) } : n));\r\n }\r\n if (edge === \"inside\") {\r\n const target = nodes[idx]!;\r\n const updated = { ...target, children: [...(target.children ?? []), node] };\r\n return [...nodes.slice(0, idx), updated, ...nodes.slice(idx + 1)];\r\n }\r\n const at = edge === \"before\" ? idx : idx + 1;\r\n return [...nodes.slice(0, at), node, ...nodes.slice(at)];\r\n}\r\n\r\nfunction moveNode(nodes: TreeNode[], id: string, targetId: string, edge: TreeDropEdge): TreeNode[] {\r\n const [without, removed] = removeById(nodes, id);\r\n return removed ? insertRelative(without, targetId, edge, removed) : nodes;\r\n}\r\n\r\nexport function TreeViewDemo() {\r\n const [selected, setSelected] = useState(\"about\");\r\n const [expanded, setExpanded] = useState<string[]>([\"pages\", \"shop\"]);\r\n const [items, setItems] = useState(TREE_ITEMS);\r\n\r\n return (\r\n <Section title=\"Real use · site page tree — drag a row to reorder or reparent it\">\r\n <TreeView\r\n items={items}\r\n selected={selected}\r\n onSelectedChange={setSelected}\r\n expanded={expanded}\r\n onExpandedChange={setExpanded}\r\n onMove={(id, targetId, edge) => setItems((prev) => moveNode(prev, id, targetId, edge))}\r\n className=\"max-w-xs\"\r\n />\r\n </Section>\r\n );\r\n}"
|
|
6901
7507
|
},
|
|
6902
7508
|
{
|
|
6903
7509
|
"name": "Wizard",
|
|
@@ -6991,7 +7597,7 @@
|
|
|
6991
7597
|
]
|
|
6992
7598
|
}
|
|
6993
7599
|
],
|
|
6994
|
-
"usageExample":
|
|
7600
|
+
"usageExample": "import { useState } from \"react\";\r\nimport { Wizard, Input } from \"@wizeworks/silicaui-react\";\r\nimport type { WizardStep } from \"@wizeworks/silicaui-react\";\r\nimport { Section } from \"../lib/Section\";\r\nimport { COLORS } from \"../lib/data\";\r\n\r\nconst MINI_STEPS: WizardStep[] = [\r\n { id: \"a\", title: \"Cart\" },\r\n { id: \"b\", title: \"Shipping\" },\r\n { id: \"c\", title: \"Payment\" },\r\n];\r\n\r\nconst STEPS: WizardStep[] = [\r\n {\r\n id: \"account\",\r\n title: \"Account\",\r\n content: (\r\n <div className=\"flex max-w-sm flex-col gap-3\">\r\n <Input placeholder=\"Work email\" type=\"email\" />\r\n <Input placeholder=\"Choose a password\" type=\"password\" />\r\n </div>\r\n ),\r\n },\r\n {\r\n id: \"profile\",\r\n title: \"Profile\",\r\n content: (\r\n <div className=\"flex max-w-sm flex-col gap-3\">\r\n <Input placeholder=\"Full name\" />\r\n <Input placeholder=\"Company\" />\r\n </div>\r\n ),\r\n },\r\n {\r\n id: \"billing\",\r\n title: \"Billing\",\r\n optional: true,\r\n content: (\r\n <div className=\"flex max-w-sm flex-col gap-3\">\r\n <Input placeholder=\"Card number\" />\r\n <span className=\"text-xs opacity-60\">\r\n Optional — you can add this later from Settings.\r\n </span>\r\n </div>\r\n ),\r\n },\r\n {\r\n id: \"review\",\r\n title: \"Review\",\r\n content: (\r\n <p className=\"max-w-sm text-sm opacity-80\">\r\n You're all set. Review your details and press Finish to create the\r\n workspace.\r\n </p>\r\n ),\r\n },\r\n];\r\n\r\nexport function WizardDemo() {\r\n const [step, setStep] = useState(0);\r\n const [done, setDone] = useState(false);\r\n\r\n return (\r\n <>\r\n <Section title=\"Colors (step markers)\">\r\n <div className=\"flex flex-col gap-6\">\r\n {COLORS.slice(0, 3).map((color) => (\r\n <Wizard\r\n key={color}\r\n color={color}\r\n steps={MINI_STEPS}\r\n defaultStep={1}\r\n hideFooter\r\n />\r\n ))}\r\n </div>\r\n </Section>\r\n\r\n <Section title=\"Real use · workspace onboarding\">\r\n <Wizard\r\n color=\"primary\"\r\n steps={STEPS}\r\n activeStep={step}\r\n onStepChange={setStep}\r\n onFinish={() => setDone(true)}\r\n />\r\n {done && (\r\n <p className=\"text-sm text-success\">\r\n 🎉 Workspace created — you can close this wizard.\r\n </p>\r\n )}\r\n </Section>\r\n </>\r\n );\r\n}"
|
|
6995
7601
|
},
|
|
6996
7602
|
{
|
|
6997
7603
|
"name": "Blockquote",
|
|
@@ -7011,10 +7617,10 @@
|
|
|
7011
7617
|
"doc": "Semantic level → renders `<h1>`…`<h6>`. Default 2."
|
|
7012
7618
|
},
|
|
7013
7619
|
{
|
|
7014
|
-
"name": "
|
|
7620
|
+
"name": "visualLevel",
|
|
7015
7621
|
"optional": true,
|
|
7016
|
-
"type": "HeadingLevel | \"display\"",
|
|
7017
|
-
"doc": "Visual
|
|
7622
|
+
"type": "HeadingLevel | \"display\" | `display-${DisplayStep}`",
|
|
7623
|
+
"doc": "Visual heading scale (`1`–`6`, `\"display\"`, or `\"display-1\"`–`\"display-3\"`), independent of the semantic `level`; omit to use the tag default. Named `visualLevel`, not `size`, on purpose: everywhere else in Silica `size` is the `xs`–`xl` token scale, and a prop that takes `3` in one component and `\"lg\"` in the next is a prop in name only."
|
|
7018
7624
|
}
|
|
7019
7625
|
]
|
|
7020
7626
|
},
|
|
@@ -7026,7 +7632,13 @@
|
|
|
7026
7632
|
"name": "level",
|
|
7027
7633
|
"optional": true,
|
|
7028
7634
|
"type": "HeadingLevel",
|
|
7029
|
-
"doc": "Semantic level for the outline (
|
|
7635
|
+
"doc": "Semantic level for the outline (default 1) — independent of the visual size."
|
|
7636
|
+
},
|
|
7637
|
+
{
|
|
7638
|
+
"name": "visualLevel",
|
|
7639
|
+
"optional": true,
|
|
7640
|
+
"type": "DisplayStep",
|
|
7641
|
+
"doc": "Which step of the display ramp (`1`–`3`, largest → smallest). Omit for the base `.display` (equal to `.display-3`). Named `visualLevel` to parallel `Heading`, never `size` (which is the `xs`–`xl` token scale everywhere else)."
|
|
7030
7642
|
}
|
|
7031
7643
|
]
|
|
7032
7644
|
},
|
|
@@ -7072,7 +7684,7 @@
|
|
|
7072
7684
|
"package": "@wizeworks/silicaui-react",
|
|
7073
7685
|
"category": "Typography",
|
|
7074
7686
|
"sourceFile": "silicaui-react/src/typography.tsx",
|
|
7075
|
-
"description": "Oversized hero/display heading
|
|
7687
|
+
"description": "Oversized hero/display heading on a semantic heading element.",
|
|
7076
7688
|
"props": [
|
|
7077
7689
|
{
|
|
7078
7690
|
"name": "HeadingProps",
|
|
@@ -7085,10 +7697,10 @@
|
|
|
7085
7697
|
"doc": "Semantic level → renders `<h1>`…`<h6>`. Default 2."
|
|
7086
7698
|
},
|
|
7087
7699
|
{
|
|
7088
|
-
"name": "
|
|
7700
|
+
"name": "visualLevel",
|
|
7089
7701
|
"optional": true,
|
|
7090
|
-
"type": "HeadingLevel | \"display\"",
|
|
7091
|
-
"doc": "Visual
|
|
7702
|
+
"type": "HeadingLevel | \"display\" | `display-${DisplayStep}`",
|
|
7703
|
+
"doc": "Visual heading scale (`1`–`6`, `\"display\"`, or `\"display-1\"`–`\"display-3\"`), independent of the semantic `level`; omit to use the tag default. Named `visualLevel`, not `size`, on purpose: everywhere else in Silica `size` is the `xs`–`xl` token scale, and a prop that takes `3` in one component and `\"lg\"` in the next is a prop in name only."
|
|
7092
7704
|
}
|
|
7093
7705
|
]
|
|
7094
7706
|
},
|
|
@@ -7100,7 +7712,13 @@
|
|
|
7100
7712
|
"name": "level",
|
|
7101
7713
|
"optional": true,
|
|
7102
7714
|
"type": "HeadingLevel",
|
|
7103
|
-
"doc": "Semantic level for the outline (
|
|
7715
|
+
"doc": "Semantic level for the outline (default 1) — independent of the visual size."
|
|
7716
|
+
},
|
|
7717
|
+
{
|
|
7718
|
+
"name": "visualLevel",
|
|
7719
|
+
"optional": true,
|
|
7720
|
+
"type": "DisplayStep",
|
|
7721
|
+
"doc": "Which step of the display ramp (`1`–`3`, largest → smallest). Omit for the base `.display` (equal to `.display-3`). Named `visualLevel` to parallel `Heading`, never `size` (which is the `xs`–`xl` token scale everywhere else)."
|
|
7104
7722
|
}
|
|
7105
7723
|
]
|
|
7106
7724
|
},
|
|
@@ -7159,10 +7777,10 @@
|
|
|
7159
7777
|
"doc": "Semantic level → renders `<h1>`…`<h6>`. Default 2."
|
|
7160
7778
|
},
|
|
7161
7779
|
{
|
|
7162
|
-
"name": "
|
|
7780
|
+
"name": "visualLevel",
|
|
7163
7781
|
"optional": true,
|
|
7164
|
-
"type": "HeadingLevel | \"display\"",
|
|
7165
|
-
"doc": "Visual
|
|
7782
|
+
"type": "HeadingLevel | \"display\" | `display-${DisplayStep}`",
|
|
7783
|
+
"doc": "Visual heading scale (`1`–`6`, `\"display\"`, or `\"display-1\"`–`\"display-3\"`), independent of the semantic `level`; omit to use the tag default. Named `visualLevel`, not `size`, on purpose: everywhere else in Silica `size` is the `xs`–`xl` token scale, and a prop that takes `3` in one component and `\"lg\"` in the next is a prop in name only."
|
|
7166
7784
|
}
|
|
7167
7785
|
]
|
|
7168
7786
|
},
|
|
@@ -7174,103 +7792,13 @@
|
|
|
7174
7792
|
"name": "level",
|
|
7175
7793
|
"optional": true,
|
|
7176
7794
|
"type": "HeadingLevel",
|
|
7177
|
-
"doc": "Semantic level for the outline (
|
|
7178
|
-
}
|
|
7179
|
-
]
|
|
7180
|
-
},
|
|
7181
|
-
{
|
|
7182
|
-
"name": "TextProps",
|
|
7183
|
-
"extends": "extends React.HTMLAttributes<HTMLElement>",
|
|
7184
|
-
"members": [
|
|
7185
|
-
{
|
|
7186
|
-
"name": "variant",
|
|
7187
|
-
"optional": true,
|
|
7188
|
-
"type": "TextVariant",
|
|
7189
|
-
"doc": "`body` (default), `lead` (larger intro), or `caption` (small, muted)."
|
|
7190
|
-
},
|
|
7191
|
-
{
|
|
7192
|
-
"name": "as",
|
|
7193
|
-
"optional": true,
|
|
7194
|
-
"type": "React.ElementType",
|
|
7195
|
-
"doc": "Element to render. Default `p`."
|
|
7196
|
-
}
|
|
7197
|
-
]
|
|
7198
|
-
},
|
|
7199
|
-
{
|
|
7200
|
-
"name": "BlockquoteProps",
|
|
7201
|
-
"members": []
|
|
7202
|
-
},
|
|
7203
|
-
{
|
|
7204
|
-
"name": "BlockquoteCiteProps",
|
|
7205
|
-
"extends": "extends React.HTMLAttributes<HTMLElement>",
|
|
7206
|
-
"members": [
|
|
7207
|
-
{
|
|
7208
|
-
"name": "as",
|
|
7209
|
-
"optional": true,
|
|
7210
|
-
"type": "React.ElementType",
|
|
7211
|
-
"doc": "Element to render. Default `footer`."
|
|
7212
|
-
}
|
|
7213
|
-
]
|
|
7214
|
-
}
|
|
7215
|
-
],
|
|
7216
|
-
"usageExample": null
|
|
7217
|
-
},
|
|
7218
|
-
{
|
|
7219
|
-
"name": "Prose",
|
|
7220
|
-
"package": "@wizeworks/silicaui-react",
|
|
7221
|
-
"category": "Typography",
|
|
7222
|
-
"sourceFile": "silicaui-react/src/prose.tsx",
|
|
7223
|
-
"description": "Silica Prose — typographic defaults for a block of rich/markdown content. Wrap raw HTML (or a Markdown renderer's output) and it gets themed headings, lists, quotes, code, tables, and rhythm — scoped to this block only. <Prose> <h1>Title</h1> <p>Body copy with a <a href=\"#\">link</a> and <code>inline code</code>.</p> </Prose> <Prose dangerouslySetInnerHTML={{ __html: renderedMarkdown }} /> Caps width at 65ch for readability — add `max-w-none` to remove.",
|
|
7224
|
-
"props": [
|
|
7225
|
-
{
|
|
7226
|
-
"name": "ProseProps",
|
|
7227
|
-
"extends": "extends React.HTMLAttributes<HTMLDivElement>",
|
|
7228
|
-
"members": [
|
|
7229
|
-
{
|
|
7230
|
-
"name": "size",
|
|
7231
|
-
"optional": true,
|
|
7232
|
-
"type": "ProseSize",
|
|
7233
|
-
"doc": "Default `md`. Rescales the whole block by one root font-size."
|
|
7234
|
-
}
|
|
7235
|
-
]
|
|
7236
|
-
}
|
|
7237
|
-
],
|
|
7238
|
-
"usageExample": null
|
|
7239
|
-
},
|
|
7240
|
-
{
|
|
7241
|
-
"name": "Text",
|
|
7242
|
-
"package": "@wizeworks/silicaui-react",
|
|
7243
|
-
"category": "Typography",
|
|
7244
|
-
"sourceFile": "silicaui-react/src/typography.tsx",
|
|
7245
|
-
"description": "Body-copy text with a semantic variant. `body` carries no class (bare `<p>`).",
|
|
7246
|
-
"props": [
|
|
7247
|
-
{
|
|
7248
|
-
"name": "HeadingProps",
|
|
7249
|
-
"extends": "extends React.HTMLAttributes<HTMLHeadingElement>",
|
|
7250
|
-
"members": [
|
|
7251
|
-
{
|
|
7252
|
-
"name": "level",
|
|
7253
|
-
"optional": true,
|
|
7254
|
-
"type": "HeadingLevel",
|
|
7255
|
-
"doc": "Semantic level → renders `<h1>`…`<h6>`. Default 2."
|
|
7795
|
+
"doc": "Semantic level for the outline (default 1) — independent of the visual size."
|
|
7256
7796
|
},
|
|
7257
7797
|
{
|
|
7258
|
-
"name": "
|
|
7259
|
-
"optional": true,
|
|
7260
|
-
"type": "HeadingLevel | \"display\"",
|
|
7261
|
-
"doc": "Visual size override (`1`–`6` or `\"display\"`); omit to use the tag default."
|
|
7262
|
-
}
|
|
7263
|
-
]
|
|
7264
|
-
},
|
|
7265
|
-
{
|
|
7266
|
-
"name": "DisplayProps",
|
|
7267
|
-
"extends": "extends React.HTMLAttributes<HTMLHeadingElement>",
|
|
7268
|
-
"members": [
|
|
7269
|
-
{
|
|
7270
|
-
"name": "level",
|
|
7798
|
+
"name": "visualLevel",
|
|
7271
7799
|
"optional": true,
|
|
7272
|
-
"type": "
|
|
7273
|
-
"doc": "
|
|
7800
|
+
"type": "DisplayStep",
|
|
7801
|
+
"doc": "Which step of the display ramp (`1`–`3`, largest → smallest). Omit for the base `.display` (equal to `.display-3`). Named `visualLevel` to parallel `Heading`, never `size` (which is the `xs`–`xl` token scale everywhere else)."
|
|
7274
7802
|
}
|
|
7275
7803
|
]
|
|
7276
7804
|
},
|
|
@@ -7312,11 +7840,33 @@
|
|
|
7312
7840
|
"usageExample": null
|
|
7313
7841
|
},
|
|
7314
7842
|
{
|
|
7315
|
-
"name": "
|
|
7843
|
+
"name": "Prose",
|
|
7844
|
+
"package": "@wizeworks/silicaui-react",
|
|
7845
|
+
"category": "Typography",
|
|
7846
|
+
"sourceFile": "silicaui-react/src/prose.tsx",
|
|
7847
|
+
"description": "Silica Prose — typographic defaults for a block of rich/markdown content. Wrap raw HTML (or a Markdown renderer's output) and it gets themed headings, lists, quotes, code, tables, and rhythm — scoped to this block only. <Prose> <h1>Title</h1> <p>Body copy with a <a href=\"#\">link</a> and <code>inline code</code>.</p> </Prose> <Prose dangerouslySetInnerHTML={{ __html: renderedMarkdown }} /> Caps width at 65ch for readability — add `max-w-none` to remove.",
|
|
7848
|
+
"props": [
|
|
7849
|
+
{
|
|
7850
|
+
"name": "ProseProps",
|
|
7851
|
+
"extends": "extends React.HTMLAttributes<HTMLDivElement>",
|
|
7852
|
+
"members": [
|
|
7853
|
+
{
|
|
7854
|
+
"name": "size",
|
|
7855
|
+
"optional": true,
|
|
7856
|
+
"type": "ProseSize",
|
|
7857
|
+
"doc": "Default `md`. Rescales the whole block by one root font-size."
|
|
7858
|
+
}
|
|
7859
|
+
]
|
|
7860
|
+
}
|
|
7861
|
+
],
|
|
7862
|
+
"usageExample": "import { Prose } from \"@wizeworks/silicaui-react\";\r\nimport { Section } from \"../lib/Section\";\r\n\r\nexport function ProseDemo() {\r\n return (\r\n <>\r\n <Section title=\"Real use · rendered article body\">\r\n <Prose>\r\n <h2>Launch checklist</h2>\r\n <p>\r\n Draft the announcement in <strong>rich text</strong> — headings,\r\n lists, and links all export as clean HTML.\r\n </p>\r\n <ul>\r\n <li>Write the copy</li>\r\n <li>Add screenshots</li>\r\n <li>\r\n Link the <a href=\"#\">changelog</a>\r\n </li>\r\n </ul>\r\n <blockquote>Ship small, ship often.</blockquote>\r\n <p>\r\n Inline <code>code</code> and block code both pick up themed\r\n styling automatically.\r\n </p>\r\n </Prose>\r\n </Section>\r\n\r\n <Section title=\"Sizes\">\r\n <div className=\"flex flex-col gap-6\">\r\n {([\"sm\", \"lg\"] as const).map((size) => (\r\n <Prose key={size} size={size}>\r\n <p>\r\n <code>size="{size}"</code> rescales the whole block\r\n by one root font-size.\r\n </p>\r\n </Prose>\r\n ))}\r\n </div>\r\n </Section>\r\n </>\r\n );\r\n}"
|
|
7863
|
+
},
|
|
7864
|
+
{
|
|
7865
|
+
"name": "Text",
|
|
7316
7866
|
"package": "@wizeworks/silicaui-react",
|
|
7317
7867
|
"category": "Typography",
|
|
7318
7868
|
"sourceFile": "silicaui-react/src/typography.tsx",
|
|
7319
|
-
"description": "",
|
|
7869
|
+
"description": "Body-copy text with a semantic variant. `body` carries no class (bare `<p>`).",
|
|
7320
7870
|
"props": [
|
|
7321
7871
|
{
|
|
7322
7872
|
"name": "HeadingProps",
|
|
@@ -7329,10 +7879,10 @@
|
|
|
7329
7879
|
"doc": "Semantic level → renders `<h1>`…`<h6>`. Default 2."
|
|
7330
7880
|
},
|
|
7331
7881
|
{
|
|
7332
|
-
"name": "
|
|
7882
|
+
"name": "visualLevel",
|
|
7333
7883
|
"optional": true,
|
|
7334
|
-
"type": "HeadingLevel | \"display\"",
|
|
7335
|
-
"doc": "Visual
|
|
7884
|
+
"type": "HeadingLevel | \"display\" | `display-${DisplayStep}`",
|
|
7885
|
+
"doc": "Visual heading scale (`1`–`6`, `\"display\"`, or `\"display-1\"`–`\"display-3\"`), independent of the semantic `level`; omit to use the tag default. Named `visualLevel`, not `size`, on purpose: everywhere else in Silica `size` is the `xs`–`xl` token scale, and a prop that takes `3` in one component and `\"lg\"` in the next is a prop in name only."
|
|
7336
7886
|
}
|
|
7337
7887
|
]
|
|
7338
7888
|
},
|
|
@@ -7344,7 +7894,13 @@
|
|
|
7344
7894
|
"name": "level",
|
|
7345
7895
|
"optional": true,
|
|
7346
7896
|
"type": "HeadingLevel",
|
|
7347
|
-
"doc": "Semantic level for the outline (
|
|
7897
|
+
"doc": "Semantic level for the outline (default 1) — independent of the visual size."
|
|
7898
|
+
},
|
|
7899
|
+
{
|
|
7900
|
+
"name": "visualLevel",
|
|
7901
|
+
"optional": true,
|
|
7902
|
+
"type": "DisplayStep",
|
|
7903
|
+
"doc": "Which step of the display ramp (`1`–`3`, largest → smallest). Omit for the base `.display` (equal to `.display-3`). Named `visualLevel` to parallel `Heading`, never `size` (which is the `xs`–`xl` token scale everywhere else)."
|
|
7348
7904
|
}
|
|
7349
7905
|
]
|
|
7350
7906
|
},
|
|
@@ -7394,7 +7950,7 @@
|
|
|
7394
7950
|
"props": [
|
|
7395
7951
|
{
|
|
7396
7952
|
"name": "WordmarkProps",
|
|
7397
|
-
"extends": "extends React.
|
|
7953
|
+
"extends": "extends Omit<React.AllHTMLAttributes<HTMLElement>, \"color\" | \"size\" | \"src\" | \"alt\" | \"as\">",
|
|
7398
7954
|
"members": [
|
|
7399
7955
|
{
|
|
7400
7956
|
"name": "color",
|
|
@@ -7414,12 +7970,6 @@
|
|
|
7414
7970
|
"type": "React.ElementType",
|
|
7415
7971
|
"doc": "Render as a different element — typically `\"a\"` when the mark links home."
|
|
7416
7972
|
},
|
|
7417
|
-
{
|
|
7418
|
-
"name": "href",
|
|
7419
|
-
"optional": true,
|
|
7420
|
-
"type": "string",
|
|
7421
|
-
"doc": "Link target, when `as=\"a\"`."
|
|
7422
|
-
},
|
|
7423
7973
|
{
|
|
7424
7974
|
"name": "src",
|
|
7425
7975
|
"optional": true,
|
|
@@ -7439,7 +7989,7 @@
|
|
|
7439
7989
|
"members": []
|
|
7440
7990
|
}
|
|
7441
7991
|
],
|
|
7442
|
-
"usageExample":
|
|
7992
|
+
"usageExample": "import { Wordmark, WordmarkAccent } from \"@wizeworks/silicaui-react\";\r\nimport { Section, Row } from \"../lib/Section\";\r\n\r\nconst Mark = (\r\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\r\n <path d=\"M12 2 2 7l10 5 10-5-10-5Z\" />\r\n <path d=\"m2 17 10 5 10-5\" />\r\n <path d=\"m2 12 10 5 10-5\" />\r\n </svg>\r\n);\r\n\r\nexport function WordmarkDemo() {\r\n return (\r\n <>\r\n <Section title=\"Real use · brand logotype\">\r\n <Row>\r\n <Wordmark>\r\n Silica<WordmarkAccent>UI</WordmarkAccent>\r\n </Wordmark>\r\n <Wordmark as=\"a\" href=\"#\" color=\"primary\">\r\n {Mark}\r\n Acme\r\n </Wordmark>\r\n </Row>\r\n </Section>\r\n\r\n <Section title=\"Sizes\">\r\n <Row>\r\n <Wordmark size=\"xs\">Silica</Wordmark>\r\n <Wordmark size=\"sm\">Silica</Wordmark>\r\n <Wordmark size=\"md\">Silica</Wordmark>\r\n <Wordmark size=\"lg\">Silica</Wordmark>\r\n <Wordmark size=\"xl\">Silica</Wordmark>\r\n </Row>\r\n </Section>\r\n\r\n <Section title=\"Colors\">\r\n <Row>\r\n <Wordmark>Base</Wordmark>\r\n <Wordmark color=\"primary\">Primary</Wordmark>\r\n <Wordmark color=\"secondary\">Secondary</Wordmark>\r\n <Wordmark color=\"accent\">Accent</Wordmark>\r\n </Row>\r\n </Section>\r\n </>\r\n );\r\n}"
|
|
7443
7993
|
},
|
|
7444
7994
|
{
|
|
7445
7995
|
"name": "Chart",
|
|
@@ -7485,7 +8035,7 @@
|
|
|
7485
8035
|
]
|
|
7486
8036
|
}
|
|
7487
8037
|
],
|
|
7488
|
-
"usageExample":
|
|
8038
|
+
"usageExample": "import { Chart, Sparkline } from \"@wizeworks/silicaui-charts\";\r\nimport type { EChartsOption } from \"@wizeworks/silicaui-charts\";\r\nimport { Section, Row } from \"../lib/Section\";\r\n\r\nconst REVENUE_OPTION: EChartsOption = {\r\n tooltip: { trigger: \"axis\" },\r\n legend: { data: [\"Revenue\", \"Orders\"], top: 0 },\r\n grid: { left: 4, right: 8, top: 34, bottom: 4, containLabel: true },\r\n xAxis: {\r\n type: \"category\",\r\n data: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\"],\r\n },\r\n yAxis: [{ type: \"value\" }, { type: \"value\", splitLine: { show: false } }],\r\n series: [\r\n {\r\n name: \"Revenue\",\r\n type: \"line\",\r\n yAxisIndex: 0,\r\n smooth: true,\r\n areaStyle: { opacity: 0.12 },\r\n data: [8200, 9310, 9020, 11200, 12800, 12010, 14300],\r\n },\r\n {\r\n name: \"Orders\",\r\n type: \"bar\",\r\n yAxisIndex: 1,\r\n data: [120, 132, 128, 151, 168, 160, 184],\r\n },\r\n ],\r\n};\r\n\r\nconst CHANNEL_OPTION: EChartsOption = {\r\n tooltip: { trigger: \"item\" },\r\n legend: { bottom: 0 },\r\n series: [\r\n {\r\n name: \"Channel\",\r\n type: \"pie\",\r\n radius: [\"45%\", \"72%\"],\r\n itemStyle: { borderRadius: 6 },\r\n label: { show: false },\r\n data: [\r\n { value: 4200, name: \"Direct\" },\r\n { value: 3100, name: \"Organic\" },\r\n { value: 2400, name: \"Referral\" },\r\n { value: 1600, name: \"Social\" },\r\n ],\r\n },\r\n ],\r\n};\r\n\r\nexport function ChartDemo() {\r\n return (\r\n <>\r\n <Section title=\"Real use · revenue trend (auto-themed ECharts)\">\r\n <Chart option={REVENUE_OPTION} style={{ maxWidth: 640 }} />\r\n </Section>\r\n\r\n <Section title=\"Channel split\">\r\n <Chart option={CHANNEL_OPTION} style={{ maxWidth: 420, height: \"18rem\" }} />\r\n </Section>\r\n\r\n <Section title=\"Sparklines · inline trend indicators\">\r\n <Row>\r\n <Sparkline\r\n data={[8, 9, 9, 11, 12, 12, 14]}\r\n area\r\n style={{ width: \"8rem\", height: \"2.5rem\" }}\r\n />\r\n <Sparkline\r\n data={[14, 12, 12, 11, 9, 9, 8]}\r\n style={{ width: \"8rem\", height: \"2.5rem\" }}\r\n />\r\n </Row>\r\n </Section>\r\n </>\r\n );\r\n}"
|
|
7489
8039
|
},
|
|
7490
8040
|
{
|
|
7491
8041
|
"name": "Sparkline",
|
|
@@ -7648,7 +8198,7 @@
|
|
|
7648
8198
|
]
|
|
7649
8199
|
}
|
|
7650
8200
|
],
|
|
7651
|
-
"usageExample":
|
|
8201
|
+
"usageExample": "import { useState } from \"react\";\r\nimport { Badge } from \"@wizeworks/silicaui-react\";\r\nimport type { SilicaColor } from \"@wizeworks/silicaui-react\";\r\nimport { DataTable } from \"@wizeworks/silicaui-table\";\r\nimport type { DataTableColumn } from \"@wizeworks/silicaui-table\";\r\nimport { Sparkline } from \"@wizeworks/silicaui-charts\";\r\nimport { Section } from \"../lib/Section\";\r\n\r\ninterface TeamRow {\r\n name: string;\r\n email: string;\r\n role: string;\r\n plan: string;\r\n mrr: number;\r\n trend: number[];\r\n status: { label: string; color: SilicaColor };\r\n}\r\n\r\nconst TEAM: TeamRow[] = [\r\n { name: \"Ada Lovelace\", email: \"ada@silica.dev\", role: \"Owner\", plan: \"Enterprise\", mrr: 2400, trend: [12, 18, 15, 22, 28, 26, 31], status: { label: \"Active\", color: \"success\" } },\r\n { name: \"Grace Hopper\", email: \"grace@silica.dev\", role: \"Admin\", plan: \"Pro\", mrr: 990, trend: [8, 9, 11, 10, 13, 15, 14], status: { label: \"Active\", color: \"success\" } },\r\n { name: \"Alan Turing\", email: \"alan@silica.dev\", role: \"Member\", plan: \"Pro\", mrr: 720, trend: [5, 6, 6, 8, 7, 9, 12], status: { label: \"Away\", color: \"warning\" } },\r\n { name: \"Katherine Johnson\", email: \"kate@silica.dev\", role: \"Member\", plan: \"Starter\", mrr: 190, trend: [2, 3, 3, 4, 5, 5, 6], status: { label: \"Invited\", color: \"neutral\" } },\r\n { name: \"Edsger Dijkstra\", email: \"edsger@silica.dev\", role: \"Admin\", plan: \"Enterprise\", mrr: 3100, trend: [20, 22, 25, 24, 29, 33, 38], status: { label: \"Active\", color: \"success\" } },\r\n { name: \"Barbara Liskov\", email: \"barbara@silica.dev\", role: \"Member\", plan: \"Pro\", mrr: 880, trend: [9, 10, 12, 11, 14, 13, 16], status: { label: \"Active\", color: \"success\" } },\r\n { name: \"Donald Knuth\", email: \"don@silica.dev\", role: \"Member\", plan: \"Starter\", mrr: 140, trend: [1, 2, 2, 3, 3, 4, 4], status: { label: \"Suspended\", color: \"error\" } },\r\n { name: \"Margaret Hamilton\", email: \"maggie@silica.dev\", role: \"Admin\", plan: \"Enterprise\", mrr: 2750, trend: [18, 19, 21, 26, 30, 29, 34], status: { label: \"Active\", color: \"success\" } },\r\n];\r\n\r\nconst COLUMNS: DataTableColumn<TeamRow>[] = [\r\n {\r\n accessorKey: \"name\",\r\n header: \"Member\",\r\n cell: ({ row }) => (\r\n <div className=\"flex flex-col\">\r\n <span className=\"font-medium\">{row.original.name}</span>\r\n <span className=\"text-xs opacity-60\">{row.original.email}</span>\r\n </div>\r\n ),\r\n },\r\n { accessorKey: \"role\", header: \"Role\" },\r\n {\r\n accessorKey: \"plan\",\r\n header: \"Plan\",\r\n cell: ({ row }) => <Badge>{row.original.plan}</Badge>,\r\n },\r\n {\r\n accessorKey: \"mrr\",\r\n header: \"MRR\",\r\n cell: ({ row }) => (\r\n <span className=\"tabular-nums\">${row.original.mrr.toLocaleString()}</span>\r\n ),\r\n },\r\n {\r\n id: \"trend\",\r\n header: \"Trend\",\r\n enableSorting: false,\r\n cell: ({ row }) => (\r\n <Sparkline\r\n data={row.original.trend}\r\n area\r\n style={{ width: \"5rem\", height: \"1.75rem\" }}\r\n />\r\n ),\r\n },\r\n {\r\n accessorKey: \"status\",\r\n header: \"Status\",\r\n enableSorting: false,\r\n cell: ({ row }) => (\r\n <Badge color={row.original.status.color}>{row.original.status.label}</Badge>\r\n ),\r\n },\r\n];\r\n\r\nexport function DataTableDemo() {\r\n const [selected, setSelected] = useState<TeamRow[]>([]);\r\n const [loading, setLoading] = useState(false);\r\n\r\n return (\r\n <>\r\n <Section title=\"Real use · sortable, selectable, paginated team table\">\r\n <div className=\"flex flex-col gap-2\">\r\n <DataTable\r\n data={TEAM}\r\n columns={COLUMNS}\r\n sortable\r\n selectable\r\n pagination={5}\r\n zebra\r\n color=\"primary\"\r\n onSelectionChange={setSelected}\r\n />\r\n <p className=\"text-xs opacity-60\">\r\n {selected.length} row{selected.length === 1 ? \"\" : \"s\"} selected\r\n </p>\r\n </div>\r\n </Section>\r\n\r\n <Section title=\"Loading & empty states\">\r\n <div className=\"flex flex-col gap-3\">\r\n <button\r\n className=\"w-fit text-xs underline opacity-70\"\r\n onClick={() => {\r\n setLoading(true);\r\n setTimeout(() => setLoading(false), 1500);\r\n }}\r\n >\r\n Simulate loading\r\n </button>\r\n <DataTable\r\n data={loading ? [] : TEAM.slice(0, 3)}\r\n columns={COLUMNS}\r\n loading={loading}\r\n loadingRows={3}\r\n emptyState={<span className=\"opacity-60\">No members found.</span>}\r\n />\r\n </div>\r\n </Section>\r\n </>\r\n );\r\n}"
|
|
7652
8202
|
},
|
|
7653
8203
|
{
|
|
7654
8204
|
"name": "RichTextEditor",
|
|
@@ -7711,7 +8261,7 @@
|
|
|
7711
8261
|
]
|
|
7712
8262
|
}
|
|
7713
8263
|
],
|
|
7714
|
-
"usageExample":
|
|
8264
|
+
"usageExample": "import { useState } from \"react\";\r\nimport { RichTextEditor } from \"@wizeworks/silicaui-editor\";\r\nimport { Section } from \"../lib/Section\";\r\n\r\nexport function RichTextEditorDemo() {\r\n const [doc, setDoc] = useState(\r\n \"<h2>Launch checklist</h2><p>Draft the announcement in <strong>rich text</strong> — headings, lists, and links all export as clean HTML.</p><ul><li>Write the copy</li><li>Add screenshots</li></ul>\",\r\n );\r\n\r\n return (\r\n <Section title=\"Real use · a full formatting toolbar over TipTap\">\r\n <RichTextEditor\r\n value={doc}\r\n onValueChange={setDoc}\r\n className=\"max-w-xl\"\r\n />\r\n </Section>\r\n );\r\n}"
|
|
7715
8265
|
},
|
|
7716
8266
|
{
|
|
7717
8267
|
"name": "SortableList",
|
|
@@ -7766,7 +8316,7 @@
|
|
|
7766
8316
|
]
|
|
7767
8317
|
}
|
|
7768
8318
|
],
|
|
7769
|
-
"usageExample":
|
|
8319
|
+
"usageExample": "import { useState } from \"react\";\r\nimport { SortableList } from \"@wizeworks/silicaui-dnd\";\r\nimport { useSilicaClass } from \"@wizeworks/silicaui-react\";\r\nimport { Section } from \"../lib/Section\";\r\n\r\ninterface SectionBlock {\r\n id: string;\r\n label: string;\r\n}\r\n\r\nconst INITIAL: SectionBlock[] = [\r\n { id: \"hero\", label: \"Hero banner\" },\r\n { id: \"features\", label: \"Feature grid\" },\r\n { id: \"pricing\", label: \"Pricing table\" },\r\n { id: \"testimonials\", label: \"Testimonials\" },\r\n { id: \"faq\", label: \"FAQ\" },\r\n];\r\n\r\nconst GripIcon = (\r\n <svg viewBox=\"0 0 24 24\" fill=\"currentColor\" stroke=\"none\">\r\n <circle cx=\"9\" cy=\"6\" r=\"1.6\" />\r\n <circle cx=\"15\" cy=\"6\" r=\"1.6\" />\r\n <circle cx=\"9\" cy=\"12\" r=\"1.6\" />\r\n <circle cx=\"15\" cy=\"12\" r=\"1.6\" />\r\n <circle cx=\"9\" cy=\"18\" r=\"1.6\" />\r\n <circle cx=\"15\" cy=\"18\" r=\"1.6\" />\r\n </svg>\r\n);\r\n\r\nexport function SortableListDemo() {\r\n const [blocks, setBlocks] = useState<SectionBlock[]>(INITIAL);\r\n const sc = useSilicaClass();\r\n\r\n return (\r\n <Section title=\"Real use · reorder a page's sections (drag the handle)\">\r\n <div className=\"max-w-sm\">\r\n <SortableList\r\n items={blocks}\r\n getItemId={(b) => b.id}\r\n onReorder={setBlocks}\r\n handle\r\n renderItem={(block, ctx) => (\r\n <>\r\n <span\r\n {...ctx.handleProps}\r\n className={sc(\"sortable-handle\") as string}\r\n aria-label={`Drag ${block.label}`}\r\n >\r\n {GripIcon}\r\n </span>\r\n {block.label}\r\n </>\r\n )}\r\n />\r\n </div>\r\n </Section>\r\n );\r\n}"
|
|
7770
8320
|
},
|
|
7771
8321
|
{
|
|
7772
8322
|
"name": "ResizablePanels",
|
|
@@ -7781,7 +8331,7 @@
|
|
|
7781
8331
|
"members": []
|
|
7782
8332
|
}
|
|
7783
8333
|
],
|
|
7784
|
-
"usageExample":
|
|
8334
|
+
"usageExample": "import {\r\n ResizablePanelGroup,\r\n ResizablePanel,\r\n ResizeHandle,\r\n} from \"@wizeworks/silicaui-panels\";\r\nimport { Section } from \"../lib/Section\";\r\n\r\nexport function ResizablePanelsDemo() {\r\n return (\r\n <>\r\n <Section title=\"Real use · sidebar + editor + preview\">\r\n <ResizablePanelGroup\r\n direction=\"horizontal\"\r\n className=\"h-64 max-w-2xl rounded-box border border-base-300\"\r\n >\r\n <ResizablePanel defaultSize={20} minSize={15}>\r\n <div className=\"flex h-full items-center justify-center bg-base-200 text-sm\">\r\n Sidebar\r\n </div>\r\n </ResizablePanel>\r\n <ResizeHandle />\r\n <ResizablePanel defaultSize={50} minSize={30}>\r\n <div className=\"flex h-full items-center justify-center text-sm\">\r\n Editor\r\n </div>\r\n </ResizablePanel>\r\n <ResizeHandle />\r\n <ResizablePanel defaultSize={30} minSize={15}>\r\n <div className=\"flex h-full items-center justify-center bg-base-200 text-sm\">\r\n Preview\r\n </div>\r\n </ResizablePanel>\r\n </ResizablePanelGroup>\r\n </Section>\r\n\r\n <Section title=\"Vertical stack\">\r\n <ResizablePanelGroup\r\n direction=\"vertical\"\r\n className=\"h-64 max-w-md rounded-box border border-base-300\"\r\n >\r\n <ResizablePanel defaultSize={50}>\r\n <div className=\"flex h-full items-center justify-center bg-base-200 text-sm\">\r\n Top\r\n </div>\r\n </ResizablePanel>\r\n <ResizeHandle />\r\n <ResizablePanel defaultSize={50}>\r\n <div className=\"flex h-full items-center justify-center text-sm\">\r\n Bottom\r\n </div>\r\n </ResizablePanel>\r\n </ResizablePanelGroup>\r\n </Section>\r\n </>\r\n );\r\n}"
|
|
7785
8335
|
},
|
|
7786
8336
|
{
|
|
7787
8337
|
"name": "Button",
|
|
@@ -7791,7 +8341,7 @@
|
|
|
7791
8341
|
"icon": "button",
|
|
7792
8342
|
"container": false,
|
|
7793
8343
|
"behaviors": [],
|
|
7794
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
8344
|
+
"sourceFile": "silicaui-html/src/component.ts:627"
|
|
7795
8345
|
},
|
|
7796
8346
|
{
|
|
7797
8347
|
"name": "Image",
|
|
@@ -7801,7 +8351,7 @@
|
|
|
7801
8351
|
"icon": "image",
|
|
7802
8352
|
"container": false,
|
|
7803
8353
|
"behaviors": [],
|
|
7804
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
8354
|
+
"sourceFile": "silicaui-html/src/component.ts:647"
|
|
7805
8355
|
},
|
|
7806
8356
|
{
|
|
7807
8357
|
"name": "Video",
|
|
@@ -7811,7 +8361,7 @@
|
|
|
7811
8361
|
"icon": "video",
|
|
7812
8362
|
"container": false,
|
|
7813
8363
|
"behaviors": [],
|
|
7814
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
8364
|
+
"sourceFile": "silicaui-html/src/component.ts:670"
|
|
7815
8365
|
},
|
|
7816
8366
|
{
|
|
7817
8367
|
"name": "Embed",
|
|
@@ -7821,7 +8371,7 @@
|
|
|
7821
8371
|
"icon": "video",
|
|
7822
8372
|
"container": false,
|
|
7823
8373
|
"behaviors": [],
|
|
7824
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
8374
|
+
"sourceFile": "silicaui-html/src/component.ts:712"
|
|
7825
8375
|
},
|
|
7826
8376
|
{
|
|
7827
8377
|
"name": "Heading",
|
|
@@ -7831,7 +8381,7 @@
|
|
|
7831
8381
|
"icon": "heading",
|
|
7832
8382
|
"container": false,
|
|
7833
8383
|
"behaviors": [],
|
|
7834
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
8384
|
+
"sourceFile": "silicaui-html/src/component.ts:747"
|
|
7835
8385
|
},
|
|
7836
8386
|
{
|
|
7837
8387
|
"name": "Icon",
|
|
@@ -7841,7 +8391,7 @@
|
|
|
7841
8391
|
"icon": "box",
|
|
7842
8392
|
"container": false,
|
|
7843
8393
|
"behaviors": [],
|
|
7844
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
8394
|
+
"sourceFile": "silicaui-html/src/component.ts:759"
|
|
7845
8395
|
},
|
|
7846
8396
|
{
|
|
7847
8397
|
"name": "Divider",
|
|
@@ -7851,7 +8401,17 @@
|
|
|
7851
8401
|
"icon": "box",
|
|
7852
8402
|
"container": false,
|
|
7853
8403
|
"behaviors": [],
|
|
7854
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
8404
|
+
"sourceFile": "silicaui-html/src/component.ts:770"
|
|
8405
|
+
},
|
|
8406
|
+
{
|
|
8407
|
+
"name": "Link",
|
|
8408
|
+
"package": "@wizeworks/silicaui-html",
|
|
8409
|
+
"category": "nav",
|
|
8410
|
+
"label": "Link",
|
|
8411
|
+
"icon": "link",
|
|
8412
|
+
"container": true,
|
|
8413
|
+
"behaviors": [],
|
|
8414
|
+
"sourceFile": "silicaui-html/src/component.ts:774"
|
|
7855
8415
|
},
|
|
7856
8416
|
{
|
|
7857
8417
|
"name": "Input",
|
|
@@ -7861,7 +8421,27 @@
|
|
|
7861
8421
|
"icon": "input",
|
|
7862
8422
|
"container": false,
|
|
7863
8423
|
"behaviors": [],
|
|
7864
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
8424
|
+
"sourceFile": "silicaui-html/src/component.ts:793"
|
|
8425
|
+
},
|
|
8426
|
+
{
|
|
8427
|
+
"name": "FileInput",
|
|
8428
|
+
"package": "@wizeworks/silicaui-html",
|
|
8429
|
+
"category": "form",
|
|
8430
|
+
"label": "File input",
|
|
8431
|
+
"icon": "input",
|
|
8432
|
+
"container": false,
|
|
8433
|
+
"behaviors": [],
|
|
8434
|
+
"sourceFile": "silicaui-html/src/component.ts:805"
|
|
8435
|
+
},
|
|
8436
|
+
{
|
|
8437
|
+
"name": "FloatingLabel",
|
|
8438
|
+
"package": "@wizeworks/silicaui-html",
|
|
8439
|
+
"category": "form",
|
|
8440
|
+
"label": "Floating label",
|
|
8441
|
+
"icon": "label",
|
|
8442
|
+
"container": true,
|
|
8443
|
+
"behaviors": [],
|
|
8444
|
+
"sourceFile": "silicaui-html/src/component.ts:818"
|
|
7865
8445
|
},
|
|
7866
8446
|
{
|
|
7867
8447
|
"name": "Textarea",
|
|
@@ -7871,7 +8451,7 @@
|
|
|
7871
8451
|
"icon": "textarea",
|
|
7872
8452
|
"container": false,
|
|
7873
8453
|
"behaviors": [],
|
|
7874
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
8454
|
+
"sourceFile": "silicaui-html/src/component.ts:832"
|
|
7875
8455
|
},
|
|
7876
8456
|
{
|
|
7877
8457
|
"name": "Select",
|
|
@@ -7881,7 +8461,7 @@
|
|
|
7881
8461
|
"icon": "select",
|
|
7882
8462
|
"container": false,
|
|
7883
8463
|
"behaviors": [],
|
|
7884
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
8464
|
+
"sourceFile": "silicaui-html/src/component.ts:844"
|
|
7885
8465
|
},
|
|
7886
8466
|
{
|
|
7887
8467
|
"name": "Checkbox",
|
|
@@ -7889,9 +8469,9 @@
|
|
|
7889
8469
|
"category": "form",
|
|
7890
8470
|
"label": "Checkbox",
|
|
7891
8471
|
"icon": "checkbox",
|
|
7892
|
-
"container":
|
|
8472
|
+
"container": true,
|
|
7893
8473
|
"behaviors": [],
|
|
7894
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
8474
|
+
"sourceFile": "silicaui-html/src/component.ts:861"
|
|
7895
8475
|
},
|
|
7896
8476
|
{
|
|
7897
8477
|
"name": "Radio",
|
|
@@ -7899,9 +8479,9 @@
|
|
|
7899
8479
|
"category": "form",
|
|
7900
8480
|
"label": "Radio",
|
|
7901
8481
|
"icon": "radio",
|
|
7902
|
-
"container":
|
|
8482
|
+
"container": true,
|
|
7903
8483
|
"behaviors": [],
|
|
7904
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
8484
|
+
"sourceFile": "silicaui-html/src/component.ts:869"
|
|
7905
8485
|
},
|
|
7906
8486
|
{
|
|
7907
8487
|
"name": "Toggle",
|
|
@@ -7909,9 +8489,9 @@
|
|
|
7909
8489
|
"category": "form",
|
|
7910
8490
|
"label": "Toggle",
|
|
7911
8491
|
"icon": "toggle",
|
|
7912
|
-
"container":
|
|
8492
|
+
"container": true,
|
|
7913
8493
|
"behaviors": [],
|
|
7914
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
8494
|
+
"sourceFile": "silicaui-html/src/component.ts:877"
|
|
7915
8495
|
},
|
|
7916
8496
|
{
|
|
7917
8497
|
"name": "Text",
|
|
@@ -7941,7 +8521,7 @@
|
|
|
7941
8521
|
"icon": "wordmark",
|
|
7942
8522
|
"container": true,
|
|
7943
8523
|
"behaviors": [],
|
|
7944
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
8524
|
+
"sourceFile": "silicaui-html/src/component.ts:898"
|
|
7945
8525
|
},
|
|
7946
8526
|
{
|
|
7947
8527
|
"name": "Card",
|
|
@@ -7953,6 +8533,16 @@
|
|
|
7953
8533
|
"behaviors": [],
|
|
7954
8534
|
"sourceFile": "silicaui-html/src/component.ts"
|
|
7955
8535
|
},
|
|
8536
|
+
{
|
|
8537
|
+
"name": "SelectableCard",
|
|
8538
|
+
"package": "@wizeworks/silicaui-html",
|
|
8539
|
+
"category": "form",
|
|
8540
|
+
"label": "Selectable card",
|
|
8541
|
+
"icon": "box",
|
|
8542
|
+
"container": true,
|
|
8543
|
+
"behaviors": [],
|
|
8544
|
+
"sourceFile": "silicaui-html/src/component.ts:933"
|
|
8545
|
+
},
|
|
7956
8546
|
{
|
|
7957
8547
|
"name": "Section",
|
|
7958
8548
|
"package": "@wizeworks/silicaui-html",
|
|
@@ -8073,7 +8663,7 @@
|
|
|
8073
8663
|
"behaviors": [
|
|
8074
8664
|
"form"
|
|
8075
8665
|
],
|
|
8076
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
8666
|
+
"sourceFile": "silicaui-html/src/component.ts:971"
|
|
8077
8667
|
},
|
|
8078
8668
|
{
|
|
8079
8669
|
"name": "Sidebar",
|
|
@@ -8085,7 +8675,7 @@
|
|
|
8085
8675
|
"behaviors": [
|
|
8086
8676
|
"sidebar"
|
|
8087
8677
|
],
|
|
8088
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
8678
|
+
"sourceFile": "silicaui-html/src/component.ts:990"
|
|
8089
8679
|
},
|
|
8090
8680
|
{
|
|
8091
8681
|
"name": "SidebarTrigger",
|
|
@@ -8095,7 +8685,7 @@
|
|
|
8095
8685
|
"icon": "sidebarTrigger",
|
|
8096
8686
|
"container": false,
|
|
8097
8687
|
"behaviors": [],
|
|
8098
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
8688
|
+
"sourceFile": "silicaui-html/src/component.ts:1011"
|
|
8099
8689
|
},
|
|
8100
8690
|
{
|
|
8101
8691
|
"name": "SelectionList",
|
|
@@ -8107,7 +8697,7 @@
|
|
|
8107
8697
|
"behaviors": [
|
|
8108
8698
|
"selection-list"
|
|
8109
8699
|
],
|
|
8110
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
8700
|
+
"sourceFile": "silicaui-html/src/component.ts:1028"
|
|
8111
8701
|
},
|
|
8112
8702
|
{
|
|
8113
8703
|
"name": "Breadcrumb",
|
|
@@ -8117,7 +8707,7 @@
|
|
|
8117
8707
|
"icon": "breadcrumb",
|
|
8118
8708
|
"container": false,
|
|
8119
8709
|
"behaviors": [],
|
|
8120
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
8710
|
+
"sourceFile": "silicaui-html/src/component.ts:1087"
|
|
8121
8711
|
},
|
|
8122
8712
|
{
|
|
8123
8713
|
"name": "Menu",
|
|
@@ -8127,7 +8717,7 @@
|
|
|
8127
8717
|
"icon": "nav",
|
|
8128
8718
|
"container": false,
|
|
8129
8719
|
"behaviors": [],
|
|
8130
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
8720
|
+
"sourceFile": "silicaui-html/src/component.ts:1104"
|
|
8131
8721
|
},
|
|
8132
8722
|
{
|
|
8133
8723
|
"name": "Steps",
|
|
@@ -8137,7 +8727,7 @@
|
|
|
8137
8727
|
"icon": "steps",
|
|
8138
8728
|
"container": false,
|
|
8139
8729
|
"behaviors": [],
|
|
8140
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
8730
|
+
"sourceFile": "silicaui-html/src/component.ts:1118"
|
|
8141
8731
|
},
|
|
8142
8732
|
{
|
|
8143
8733
|
"name": "Pagination",
|
|
@@ -8147,7 +8737,7 @@
|
|
|
8147
8737
|
"icon": "pagination",
|
|
8148
8738
|
"container": false,
|
|
8149
8739
|
"behaviors": [],
|
|
8150
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
8740
|
+
"sourceFile": "silicaui-html/src/component.ts:1133"
|
|
8151
8741
|
},
|
|
8152
8742
|
{
|
|
8153
8743
|
"name": "Alert",
|
|
@@ -8157,7 +8747,7 @@
|
|
|
8157
8747
|
"icon": "warning",
|
|
8158
8748
|
"container": false,
|
|
8159
8749
|
"behaviors": [],
|
|
8160
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
8750
|
+
"sourceFile": "silicaui-html/src/component.ts:1154"
|
|
8161
8751
|
},
|
|
8162
8752
|
{
|
|
8163
8753
|
"name": "Progress",
|
|
@@ -8167,7 +8757,7 @@
|
|
|
8167
8757
|
"icon": "progress",
|
|
8168
8758
|
"container": false,
|
|
8169
8759
|
"behaviors": [],
|
|
8170
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
8760
|
+
"sourceFile": "silicaui-html/src/component.ts:1185"
|
|
8171
8761
|
},
|
|
8172
8762
|
{
|
|
8173
8763
|
"name": "Stat",
|
|
@@ -8177,7 +8767,7 @@
|
|
|
8177
8767
|
"icon": "stat",
|
|
8178
8768
|
"container": false,
|
|
8179
8769
|
"behaviors": [],
|
|
8180
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
8770
|
+
"sourceFile": "silicaui-html/src/component.ts:1198"
|
|
8181
8771
|
},
|
|
8182
8772
|
{
|
|
8183
8773
|
"name": "Avatar",
|
|
@@ -8187,7 +8777,7 @@
|
|
|
8187
8777
|
"icon": "avatar",
|
|
8188
8778
|
"container": false,
|
|
8189
8779
|
"behaviors": [],
|
|
8190
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
8780
|
+
"sourceFile": "silicaui-html/src/component.ts:1213"
|
|
8191
8781
|
},
|
|
8192
8782
|
{
|
|
8193
8783
|
"name": "Collapse",
|
|
@@ -8197,7 +8787,7 @@
|
|
|
8197
8787
|
"icon": "collapse",
|
|
8198
8788
|
"container": false,
|
|
8199
8789
|
"behaviors": [],
|
|
8200
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
8790
|
+
"sourceFile": "silicaui-html/src/component.ts:1235"
|
|
8201
8791
|
},
|
|
8202
8792
|
{
|
|
8203
8793
|
"name": "Timeline",
|
|
@@ -8207,7 +8797,7 @@
|
|
|
8207
8797
|
"icon": "timeline",
|
|
8208
8798
|
"container": false,
|
|
8209
8799
|
"behaviors": [],
|
|
8210
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
8800
|
+
"sourceFile": "silicaui-html/src/component.ts:1251"
|
|
8211
8801
|
},
|
|
8212
8802
|
{
|
|
8213
8803
|
"name": "Label",
|
|
@@ -8247,7 +8837,7 @@
|
|
|
8247
8837
|
"icon": "text",
|
|
8248
8838
|
"container": true,
|
|
8249
8839
|
"behaviors": [],
|
|
8250
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
8840
|
+
"sourceFile": "silicaui-html/src/component.ts:1281"
|
|
8251
8841
|
},
|
|
8252
8842
|
{
|
|
8253
8843
|
"name": "Hero",
|
|
@@ -8309,6 +8899,16 @@
|
|
|
8309
8899
|
"behaviors": [],
|
|
8310
8900
|
"sourceFile": "silicaui-html/src/component.ts"
|
|
8311
8901
|
},
|
|
8902
|
+
{
|
|
8903
|
+
"name": "MockupCodeLine",
|
|
8904
|
+
"package": "@wizeworks/silicaui-html",
|
|
8905
|
+
"category": "media",
|
|
8906
|
+
"label": "Code line",
|
|
8907
|
+
"icon": "box",
|
|
8908
|
+
"container": true,
|
|
8909
|
+
"behaviors": [],
|
|
8910
|
+
"sourceFile": "silicaui-html/src/component.ts:1297"
|
|
8911
|
+
},
|
|
8312
8912
|
{
|
|
8313
8913
|
"name": "MockupPhone",
|
|
8314
8914
|
"package": "@wizeworks/silicaui-html",
|
|
@@ -8497,7 +9097,7 @@
|
|
|
8497
9097
|
"icon": "box",
|
|
8498
9098
|
"container": true,
|
|
8499
9099
|
"behaviors": [],
|
|
8500
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9100
|
+
"sourceFile": "silicaui-html/src/component.ts:1329"
|
|
8501
9101
|
},
|
|
8502
9102
|
{
|
|
8503
9103
|
"name": "ToolbarCenter",
|
|
@@ -8517,7 +9117,7 @@
|
|
|
8517
9117
|
"icon": "sidebarTrigger",
|
|
8518
9118
|
"container": true,
|
|
8519
9119
|
"behaviors": [],
|
|
8520
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9120
|
+
"sourceFile": "silicaui-html/src/component.ts:1350"
|
|
8521
9121
|
},
|
|
8522
9122
|
{
|
|
8523
9123
|
"name": "InputGroupButton",
|
|
@@ -8527,7 +9127,7 @@
|
|
|
8527
9127
|
"icon": "button",
|
|
8528
9128
|
"container": true,
|
|
8529
9129
|
"behaviors": [],
|
|
8530
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9130
|
+
"sourceFile": "silicaui-html/src/component.ts:1358"
|
|
8531
9131
|
},
|
|
8532
9132
|
{
|
|
8533
9133
|
"name": "ToolbarButton",
|
|
@@ -8537,7 +9137,7 @@
|
|
|
8537
9137
|
"icon": "button",
|
|
8538
9138
|
"container": true,
|
|
8539
9139
|
"behaviors": [],
|
|
8540
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9140
|
+
"sourceFile": "silicaui-html/src/component.ts:1366"
|
|
8541
9141
|
},
|
|
8542
9142
|
{
|
|
8543
9143
|
"name": "ToolbarLink",
|
|
@@ -8547,7 +9147,7 @@
|
|
|
8547
9147
|
"icon": "nav",
|
|
8548
9148
|
"container": true,
|
|
8549
9149
|
"behaviors": [],
|
|
8550
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9150
|
+
"sourceFile": "silicaui-html/src/component.ts:1374"
|
|
8551
9151
|
},
|
|
8552
9152
|
{
|
|
8553
9153
|
"name": "ToolbarSeparator",
|
|
@@ -8557,7 +9157,7 @@
|
|
|
8557
9157
|
"icon": "box",
|
|
8558
9158
|
"container": false,
|
|
8559
9159
|
"behaviors": [],
|
|
8560
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9160
|
+
"sourceFile": "silicaui-html/src/component.ts:1382"
|
|
8561
9161
|
},
|
|
8562
9162
|
{
|
|
8563
9163
|
"name": "ClickableCard",
|
|
@@ -8567,7 +9167,7 @@
|
|
|
8567
9167
|
"icon": "box",
|
|
8568
9168
|
"container": true,
|
|
8569
9169
|
"behaviors": [],
|
|
8570
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9170
|
+
"sourceFile": "silicaui-html/src/component.ts:1391"
|
|
8571
9171
|
},
|
|
8572
9172
|
{
|
|
8573
9173
|
"name": "SearchInput",
|
|
@@ -8577,7 +9177,7 @@
|
|
|
8577
9177
|
"icon": "input",
|
|
8578
9178
|
"container": false,
|
|
8579
9179
|
"behaviors": [],
|
|
8580
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9180
|
+
"sourceFile": "silicaui-html/src/component.ts:1407"
|
|
8581
9181
|
},
|
|
8582
9182
|
{
|
|
8583
9183
|
"name": "PasswordInput",
|
|
@@ -8587,7 +9187,7 @@
|
|
|
8587
9187
|
"icon": "input",
|
|
8588
9188
|
"container": false,
|
|
8589
9189
|
"behaviors": [],
|
|
8590
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9190
|
+
"sourceFile": "silicaui-html/src/component.ts:1414"
|
|
8591
9191
|
},
|
|
8592
9192
|
{
|
|
8593
9193
|
"name": "CheckboxGroup",
|
|
@@ -8597,7 +9197,7 @@
|
|
|
8597
9197
|
"icon": "checkbox",
|
|
8598
9198
|
"container": true,
|
|
8599
9199
|
"behaviors": [],
|
|
8600
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9200
|
+
"sourceFile": "silicaui-html/src/component.ts:1424"
|
|
8601
9201
|
},
|
|
8602
9202
|
{
|
|
8603
9203
|
"name": "CheckboxOption",
|
|
@@ -8607,7 +9207,7 @@
|
|
|
8607
9207
|
"icon": "checkbox",
|
|
8608
9208
|
"container": true,
|
|
8609
9209
|
"behaviors": [],
|
|
8610
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9210
|
+
"sourceFile": "silicaui-html/src/component.ts:1432"
|
|
8611
9211
|
},
|
|
8612
9212
|
{
|
|
8613
9213
|
"name": "Swap",
|
|
@@ -8617,7 +9217,7 @@
|
|
|
8617
9217
|
"icon": "box",
|
|
8618
9218
|
"container": true,
|
|
8619
9219
|
"behaviors": [],
|
|
8620
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9220
|
+
"sourceFile": "silicaui-html/src/component.ts:1444"
|
|
8621
9221
|
},
|
|
8622
9222
|
{
|
|
8623
9223
|
"name": "Display",
|
|
@@ -8627,7 +9227,7 @@
|
|
|
8627
9227
|
"icon": "heading",
|
|
8628
9228
|
"container": false,
|
|
8629
9229
|
"behaviors": [],
|
|
8630
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9230
|
+
"sourceFile": "silicaui-html/src/component.ts:1458"
|
|
8631
9231
|
},
|
|
8632
9232
|
{
|
|
8633
9233
|
"name": "Timestamp",
|
|
@@ -8637,7 +9237,7 @@
|
|
|
8637
9237
|
"icon": "box",
|
|
8638
9238
|
"container": false,
|
|
8639
9239
|
"behaviors": [],
|
|
8640
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9240
|
+
"sourceFile": "silicaui-html/src/component.ts:1473"
|
|
8641
9241
|
},
|
|
8642
9242
|
{
|
|
8643
9243
|
"name": "EmptyState",
|
|
@@ -8647,7 +9247,7 @@
|
|
|
8647
9247
|
"icon": "box",
|
|
8648
9248
|
"container": false,
|
|
8649
9249
|
"behaviors": [],
|
|
8650
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9250
|
+
"sourceFile": "silicaui-html/src/component.ts:1507"
|
|
8651
9251
|
},
|
|
8652
9252
|
{
|
|
8653
9253
|
"name": "RadioGroup",
|
|
@@ -8657,7 +9257,7 @@
|
|
|
8657
9257
|
"icon": "radio",
|
|
8658
9258
|
"container": true,
|
|
8659
9259
|
"behaviors": [],
|
|
8660
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9260
|
+
"sourceFile": "silicaui-html/src/component.ts:1526"
|
|
8661
9261
|
},
|
|
8662
9262
|
{
|
|
8663
9263
|
"name": "RadioOption",
|
|
@@ -8667,7 +9267,7 @@
|
|
|
8667
9267
|
"icon": "radio",
|
|
8668
9268
|
"container": true,
|
|
8669
9269
|
"behaviors": [],
|
|
8670
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9270
|
+
"sourceFile": "silicaui-html/src/component.ts:1534"
|
|
8671
9271
|
},
|
|
8672
9272
|
{
|
|
8673
9273
|
"name": "Stats",
|
|
@@ -8687,7 +9287,7 @@
|
|
|
8687
9287
|
"icon": "progress",
|
|
8688
9288
|
"container": false,
|
|
8689
9289
|
"behaviors": [],
|
|
8690
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9290
|
+
"sourceFile": "silicaui-html/src/component.ts:1547"
|
|
8691
9291
|
},
|
|
8692
9292
|
{
|
|
8693
9293
|
"name": "RadialProgress",
|
|
@@ -8697,7 +9297,7 @@
|
|
|
8697
9297
|
"icon": "progress",
|
|
8698
9298
|
"container": false,
|
|
8699
9299
|
"behaviors": [],
|
|
8700
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9300
|
+
"sourceFile": "silicaui-html/src/component.ts:1561"
|
|
8701
9301
|
},
|
|
8702
9302
|
{
|
|
8703
9303
|
"name": "Accordion",
|
|
@@ -8709,7 +9309,7 @@
|
|
|
8709
9309
|
"behaviors": [
|
|
8710
9310
|
"disclosure"
|
|
8711
9311
|
],
|
|
8712
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9312
|
+
"sourceFile": "silicaui-html/src/component.ts:1594"
|
|
8713
9313
|
},
|
|
8714
9314
|
{
|
|
8715
9315
|
"name": "AccordionItem",
|
|
@@ -8729,7 +9329,7 @@
|
|
|
8729
9329
|
"icon": "collapse",
|
|
8730
9330
|
"container": true,
|
|
8731
9331
|
"behaviors": [],
|
|
8732
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9332
|
+
"sourceFile": "silicaui-html/src/component.ts:1610"
|
|
8733
9333
|
},
|
|
8734
9334
|
{
|
|
8735
9335
|
"name": "AccordionPanel",
|
|
@@ -8739,7 +9339,7 @@
|
|
|
8739
9339
|
"icon": "collapse",
|
|
8740
9340
|
"container": true,
|
|
8741
9341
|
"behaviors": [],
|
|
8742
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9342
|
+
"sourceFile": "silicaui-html/src/component.ts:1622"
|
|
8743
9343
|
},
|
|
8744
9344
|
{
|
|
8745
9345
|
"name": "Collapsible",
|
|
@@ -8751,7 +9351,7 @@
|
|
|
8751
9351
|
"behaviors": [
|
|
8752
9352
|
"disclosure"
|
|
8753
9353
|
],
|
|
8754
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9354
|
+
"sourceFile": "silicaui-html/src/component.ts:1638"
|
|
8755
9355
|
},
|
|
8756
9356
|
{
|
|
8757
9357
|
"name": "CollapsibleTrigger",
|
|
@@ -8761,7 +9361,7 @@
|
|
|
8761
9361
|
"icon": "collapse",
|
|
8762
9362
|
"container": true,
|
|
8763
9363
|
"behaviors": [],
|
|
8764
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9364
|
+
"sourceFile": "silicaui-html/src/component.ts:1650"
|
|
8765
9365
|
},
|
|
8766
9366
|
{
|
|
8767
9367
|
"name": "CollapsiblePanel",
|
|
@@ -8771,7 +9371,199 @@
|
|
|
8771
9371
|
"icon": "collapse",
|
|
8772
9372
|
"container": true,
|
|
8773
9373
|
"behaviors": [],
|
|
8774
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9374
|
+
"sourceFile": "silicaui-html/src/component.ts:1662"
|
|
9375
|
+
},
|
|
9376
|
+
{
|
|
9377
|
+
"name": "ColorPicker",
|
|
9378
|
+
"package": "@wizeworks/silicaui-html",
|
|
9379
|
+
"category": "form",
|
|
9380
|
+
"label": "Color picker",
|
|
9381
|
+
"icon": "box",
|
|
9382
|
+
"container": false,
|
|
9383
|
+
"behaviors": [
|
|
9384
|
+
"color-picker"
|
|
9385
|
+
],
|
|
9386
|
+
"sourceFile": "silicaui-html/src/component.ts:1681"
|
|
9387
|
+
},
|
|
9388
|
+
{
|
|
9389
|
+
"name": "TagInput",
|
|
9390
|
+
"package": "@wizeworks/silicaui-html",
|
|
9391
|
+
"category": "form",
|
|
9392
|
+
"label": "Tag input",
|
|
9393
|
+
"icon": "input",
|
|
9394
|
+
"container": false,
|
|
9395
|
+
"behaviors": [
|
|
9396
|
+
"tag-input"
|
|
9397
|
+
],
|
|
9398
|
+
"sourceFile": "silicaui-html/src/component.ts:1767"
|
|
9399
|
+
},
|
|
9400
|
+
{
|
|
9401
|
+
"name": "Countdown",
|
|
9402
|
+
"package": "@wizeworks/silicaui-html",
|
|
9403
|
+
"category": "data",
|
|
9404
|
+
"label": "Countdown",
|
|
9405
|
+
"icon": "box",
|
|
9406
|
+
"container": false,
|
|
9407
|
+
"behaviors": [
|
|
9408
|
+
"countdown"
|
|
9409
|
+
],
|
|
9410
|
+
"sourceFile": "silicaui-html/src/component.ts:1840"
|
|
9411
|
+
},
|
|
9412
|
+
{
|
|
9413
|
+
"name": "Filter",
|
|
9414
|
+
"package": "@wizeworks/silicaui-html",
|
|
9415
|
+
"category": "form",
|
|
9416
|
+
"label": "Filter chips",
|
|
9417
|
+
"icon": "box",
|
|
9418
|
+
"container": true,
|
|
9419
|
+
"behaviors": [
|
|
9420
|
+
"toggle-group"
|
|
9421
|
+
],
|
|
9422
|
+
"sourceFile": "silicaui-html/src/component.ts:1893"
|
|
9423
|
+
},
|
|
9424
|
+
{
|
|
9425
|
+
"name": "FilterItem",
|
|
9426
|
+
"package": "@wizeworks/silicaui-html",
|
|
9427
|
+
"category": "form",
|
|
9428
|
+
"label": "Filter chip",
|
|
9429
|
+
"icon": "box",
|
|
9430
|
+
"container": true,
|
|
9431
|
+
"behaviors": [],
|
|
9432
|
+
"sourceFile": "silicaui-html/src/component.ts:1915"
|
|
9433
|
+
},
|
|
9434
|
+
{
|
|
9435
|
+
"name": "ChatImage",
|
|
9436
|
+
"package": "@wizeworks/silicaui-html",
|
|
9437
|
+
"category": "data",
|
|
9438
|
+
"label": "ChatImage",
|
|
9439
|
+
"icon": "box",
|
|
9440
|
+
"container": true,
|
|
9441
|
+
"behaviors": [],
|
|
9442
|
+
"sourceFile": "silicaui-html/src/component.ts"
|
|
9443
|
+
},
|
|
9444
|
+
{
|
|
9445
|
+
"name": "ChatHeader",
|
|
9446
|
+
"package": "@wizeworks/silicaui-html",
|
|
9447
|
+
"category": "data",
|
|
9448
|
+
"label": "ChatHeader",
|
|
9449
|
+
"icon": "box",
|
|
9450
|
+
"container": true,
|
|
9451
|
+
"behaviors": [],
|
|
9452
|
+
"sourceFile": "silicaui-html/src/component.ts"
|
|
9453
|
+
},
|
|
9454
|
+
{
|
|
9455
|
+
"name": "ChatFooter",
|
|
9456
|
+
"package": "@wizeworks/silicaui-html",
|
|
9457
|
+
"category": "data",
|
|
9458
|
+
"label": "ChatFooter",
|
|
9459
|
+
"icon": "box",
|
|
9460
|
+
"container": true,
|
|
9461
|
+
"behaviors": [],
|
|
9462
|
+
"sourceFile": "silicaui-html/src/component.ts"
|
|
9463
|
+
},
|
|
9464
|
+
{
|
|
9465
|
+
"name": "ChatBubble",
|
|
9466
|
+
"package": "@wizeworks/silicaui-html",
|
|
9467
|
+
"category": "data",
|
|
9468
|
+
"label": "ChatBubble",
|
|
9469
|
+
"icon": "box",
|
|
9470
|
+
"container": true,
|
|
9471
|
+
"behaviors": [],
|
|
9472
|
+
"sourceFile": "silicaui-html/src/component.ts"
|
|
9473
|
+
},
|
|
9474
|
+
{
|
|
9475
|
+
"name": "ChatLayout",
|
|
9476
|
+
"package": "@wizeworks/silicaui-html",
|
|
9477
|
+
"category": "data",
|
|
9478
|
+
"label": "ChatLayout",
|
|
9479
|
+
"icon": "box",
|
|
9480
|
+
"container": true,
|
|
9481
|
+
"behaviors": [],
|
|
9482
|
+
"sourceFile": "silicaui-html/src/component.ts"
|
|
9483
|
+
},
|
|
9484
|
+
{
|
|
9485
|
+
"name": "ChatLayoutMessages",
|
|
9486
|
+
"package": "@wizeworks/silicaui-html",
|
|
9487
|
+
"category": "data",
|
|
9488
|
+
"label": "ChatLayoutMessages",
|
|
9489
|
+
"icon": "box",
|
|
9490
|
+
"container": true,
|
|
9491
|
+
"behaviors": [],
|
|
9492
|
+
"sourceFile": "silicaui-html/src/component.ts"
|
|
9493
|
+
},
|
|
9494
|
+
{
|
|
9495
|
+
"name": "ChatMessageMetadata",
|
|
9496
|
+
"package": "@wizeworks/silicaui-html",
|
|
9497
|
+
"category": "data",
|
|
9498
|
+
"label": "ChatMessageMetadata",
|
|
9499
|
+
"icon": "box",
|
|
9500
|
+
"container": true,
|
|
9501
|
+
"behaviors": [],
|
|
9502
|
+
"sourceFile": "silicaui-html/src/component.ts"
|
|
9503
|
+
},
|
|
9504
|
+
{
|
|
9505
|
+
"name": "Chat",
|
|
9506
|
+
"package": "@wizeworks/silicaui-html",
|
|
9507
|
+
"category": "data",
|
|
9508
|
+
"label": "Chat row",
|
|
9509
|
+
"icon": "box",
|
|
9510
|
+
"container": true,
|
|
9511
|
+
"behaviors": [],
|
|
9512
|
+
"sourceFile": "silicaui-html/src/component.ts:1956"
|
|
9513
|
+
},
|
|
9514
|
+
{
|
|
9515
|
+
"name": "ChatSystemMessage",
|
|
9516
|
+
"package": "@wizeworks/silicaui-html",
|
|
9517
|
+
"category": "data",
|
|
9518
|
+
"label": "Chat system message",
|
|
9519
|
+
"icon": "box",
|
|
9520
|
+
"container": true,
|
|
9521
|
+
"behaviors": [],
|
|
9522
|
+
"sourceFile": "silicaui-html/src/component.ts:1971"
|
|
9523
|
+
},
|
|
9524
|
+
{
|
|
9525
|
+
"name": "ChatMessage",
|
|
9526
|
+
"package": "@wizeworks/silicaui-html",
|
|
9527
|
+
"category": "data",
|
|
9528
|
+
"label": "Chat message",
|
|
9529
|
+
"icon": "box",
|
|
9530
|
+
"container": true,
|
|
9531
|
+
"behaviors": [],
|
|
9532
|
+
"sourceFile": "silicaui-html/src/component.ts:1988"
|
|
9533
|
+
},
|
|
9534
|
+
{
|
|
9535
|
+
"name": "ChatTypingIndicator",
|
|
9536
|
+
"package": "@wizeworks/silicaui-html",
|
|
9537
|
+
"category": "data",
|
|
9538
|
+
"label": "Chat typing indicator",
|
|
9539
|
+
"icon": "box",
|
|
9540
|
+
"container": true,
|
|
9541
|
+
"behaviors": [],
|
|
9542
|
+
"sourceFile": "silicaui-html/src/component.ts:2021"
|
|
9543
|
+
},
|
|
9544
|
+
{
|
|
9545
|
+
"name": "ChatToolCalls",
|
|
9546
|
+
"package": "@wizeworks/silicaui-html",
|
|
9547
|
+
"category": "data",
|
|
9548
|
+
"label": "Chat tool calls",
|
|
9549
|
+
"icon": "collapse",
|
|
9550
|
+
"container": true,
|
|
9551
|
+
"behaviors": [
|
|
9552
|
+
"disclosure"
|
|
9553
|
+
],
|
|
9554
|
+
"sourceFile": "silicaui-html/src/component.ts:2047"
|
|
9555
|
+
},
|
|
9556
|
+
{
|
|
9557
|
+
"name": "ChatComposer",
|
|
9558
|
+
"package": "@wizeworks/silicaui-html",
|
|
9559
|
+
"category": "form",
|
|
9560
|
+
"label": "Chat composer",
|
|
9561
|
+
"icon": "textarea",
|
|
9562
|
+
"container": true,
|
|
9563
|
+
"behaviors": [
|
|
9564
|
+
"form"
|
|
9565
|
+
],
|
|
9566
|
+
"sourceFile": "silicaui-html/src/component.ts:2074"
|
|
8775
9567
|
},
|
|
8776
9568
|
{
|
|
8777
9569
|
"name": "Carousel",
|
|
@@ -8783,7 +9575,7 @@
|
|
|
8783
9575
|
"behaviors": [
|
|
8784
9576
|
"carousel"
|
|
8785
9577
|
],
|
|
8786
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9578
|
+
"sourceFile": "silicaui-html/src/component.ts:2109"
|
|
8787
9579
|
},
|
|
8788
9580
|
{
|
|
8789
9581
|
"name": "CarouselItem",
|
|
@@ -8793,7 +9585,7 @@
|
|
|
8793
9585
|
"icon": "box",
|
|
8794
9586
|
"container": true,
|
|
8795
9587
|
"behaviors": [],
|
|
8796
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9588
|
+
"sourceFile": "silicaui-html/src/component.ts:2143"
|
|
8797
9589
|
},
|
|
8798
9590
|
{
|
|
8799
9591
|
"name": "DropdownMenu",
|
|
@@ -8805,7 +9597,7 @@
|
|
|
8805
9597
|
"behaviors": [
|
|
8806
9598
|
"menu"
|
|
8807
9599
|
],
|
|
8808
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9600
|
+
"sourceFile": "silicaui-html/src/component.ts:2160"
|
|
8809
9601
|
},
|
|
8810
9602
|
{
|
|
8811
9603
|
"name": "DropdownMenuTrigger",
|
|
@@ -8815,7 +9607,7 @@
|
|
|
8815
9607
|
"icon": "nav",
|
|
8816
9608
|
"container": true,
|
|
8817
9609
|
"behaviors": [],
|
|
8818
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9610
|
+
"sourceFile": "silicaui-html/src/component.ts:2172"
|
|
8819
9611
|
},
|
|
8820
9612
|
{
|
|
8821
9613
|
"name": "DropdownMenuContent",
|
|
@@ -8825,7 +9617,7 @@
|
|
|
8825
9617
|
"icon": "nav",
|
|
8826
9618
|
"container": true,
|
|
8827
9619
|
"behaviors": [],
|
|
8828
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9620
|
+
"sourceFile": "silicaui-html/src/component.ts:2184"
|
|
8829
9621
|
},
|
|
8830
9622
|
{
|
|
8831
9623
|
"name": "DropdownMenuItem",
|
|
@@ -8835,7 +9627,7 @@
|
|
|
8835
9627
|
"icon": "nav",
|
|
8836
9628
|
"container": true,
|
|
8837
9629
|
"behaviors": [],
|
|
8838
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9630
|
+
"sourceFile": "silicaui-html/src/component.ts:2198"
|
|
8839
9631
|
},
|
|
8840
9632
|
{
|
|
8841
9633
|
"name": "Tabs",
|
|
@@ -8847,7 +9639,7 @@
|
|
|
8847
9639
|
"behaviors": [
|
|
8848
9640
|
"tabs"
|
|
8849
9641
|
],
|
|
8850
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9642
|
+
"sourceFile": "silicaui-html/src/component.ts:2213"
|
|
8851
9643
|
},
|
|
8852
9644
|
{
|
|
8853
9645
|
"name": "TabsList",
|
|
@@ -8857,7 +9649,7 @@
|
|
|
8857
9649
|
"icon": "box",
|
|
8858
9650
|
"container": true,
|
|
8859
9651
|
"behaviors": [],
|
|
8860
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9652
|
+
"sourceFile": "silicaui-html/src/component.ts:2229"
|
|
8861
9653
|
},
|
|
8862
9654
|
{
|
|
8863
9655
|
"name": "TabsTab",
|
|
@@ -8867,7 +9659,7 @@
|
|
|
8867
9659
|
"icon": "box",
|
|
8868
9660
|
"container": true,
|
|
8869
9661
|
"behaviors": [],
|
|
8870
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9662
|
+
"sourceFile": "silicaui-html/src/component.ts:2237"
|
|
8871
9663
|
},
|
|
8872
9664
|
{
|
|
8873
9665
|
"name": "TabsPanel",
|
|
@@ -8877,7 +9669,7 @@
|
|
|
8877
9669
|
"icon": "box",
|
|
8878
9670
|
"container": true,
|
|
8879
9671
|
"behaviors": [],
|
|
8880
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9672
|
+
"sourceFile": "silicaui-html/src/component.ts:2249"
|
|
8881
9673
|
},
|
|
8882
9674
|
{
|
|
8883
9675
|
"name": "Outline",
|
|
@@ -8889,7 +9681,7 @@
|
|
|
8889
9681
|
"behaviors": [
|
|
8890
9682
|
"toc"
|
|
8891
9683
|
],
|
|
8892
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9684
|
+
"sourceFile": "silicaui-html/src/component.ts:2266"
|
|
8893
9685
|
},
|
|
8894
9686
|
{
|
|
8895
9687
|
"name": "Dialog",
|
|
@@ -8901,7 +9693,7 @@
|
|
|
8901
9693
|
"behaviors": [
|
|
8902
9694
|
"modal"
|
|
8903
9695
|
],
|
|
8904
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9696
|
+
"sourceFile": "silicaui-html/src/component.ts:2299"
|
|
8905
9697
|
},
|
|
8906
9698
|
{
|
|
8907
9699
|
"name": "DialogTrigger",
|
|
@@ -8911,7 +9703,7 @@
|
|
|
8911
9703
|
"icon": "button",
|
|
8912
9704
|
"container": true,
|
|
8913
9705
|
"behaviors": [],
|
|
8914
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9706
|
+
"sourceFile": "silicaui-html/src/component.ts:2311"
|
|
8915
9707
|
},
|
|
8916
9708
|
{
|
|
8917
9709
|
"name": "DialogBackdrop",
|
|
@@ -8921,7 +9713,7 @@
|
|
|
8921
9713
|
"icon": "box",
|
|
8922
9714
|
"container": false,
|
|
8923
9715
|
"behaviors": [],
|
|
8924
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9716
|
+
"sourceFile": "silicaui-html/src/component.ts:2323"
|
|
8925
9717
|
},
|
|
8926
9718
|
{
|
|
8927
9719
|
"name": "DialogContent",
|
|
@@ -8931,7 +9723,7 @@
|
|
|
8931
9723
|
"icon": "box",
|
|
8932
9724
|
"container": true,
|
|
8933
9725
|
"behaviors": [],
|
|
8934
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9726
|
+
"sourceFile": "silicaui-html/src/component.ts:2334"
|
|
8935
9727
|
},
|
|
8936
9728
|
{
|
|
8937
9729
|
"name": "DialogClose",
|
|
@@ -8941,7 +9733,7 @@
|
|
|
8941
9733
|
"icon": "button",
|
|
8942
9734
|
"container": true,
|
|
8943
9735
|
"behaviors": [],
|
|
8944
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9736
|
+
"sourceFile": "silicaui-html/src/component.ts:2349"
|
|
8945
9737
|
},
|
|
8946
9738
|
{
|
|
8947
9739
|
"name": "DialogTitle",
|
|
@@ -8973,7 +9765,7 @@
|
|
|
8973
9765
|
"behaviors": [
|
|
8974
9766
|
"modal"
|
|
8975
9767
|
],
|
|
8976
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9768
|
+
"sourceFile": "silicaui-html/src/component.ts:2367"
|
|
8977
9769
|
},
|
|
8978
9770
|
{
|
|
8979
9771
|
"name": "DrawerTrigger",
|
|
@@ -8983,7 +9775,7 @@
|
|
|
8983
9775
|
"icon": "button",
|
|
8984
9776
|
"container": true,
|
|
8985
9777
|
"behaviors": [],
|
|
8986
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9778
|
+
"sourceFile": "silicaui-html/src/component.ts:2379"
|
|
8987
9779
|
},
|
|
8988
9780
|
{
|
|
8989
9781
|
"name": "DrawerBackdrop",
|
|
@@ -8993,7 +9785,7 @@
|
|
|
8993
9785
|
"icon": "box",
|
|
8994
9786
|
"container": false,
|
|
8995
9787
|
"behaviors": [],
|
|
8996
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9788
|
+
"sourceFile": "silicaui-html/src/component.ts:2391"
|
|
8997
9789
|
},
|
|
8998
9790
|
{
|
|
8999
9791
|
"name": "DrawerContent",
|
|
@@ -9003,7 +9795,7 @@
|
|
|
9003
9795
|
"icon": "sidebar",
|
|
9004
9796
|
"container": true,
|
|
9005
9797
|
"behaviors": [],
|
|
9006
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9798
|
+
"sourceFile": "silicaui-html/src/component.ts:2402"
|
|
9007
9799
|
},
|
|
9008
9800
|
{
|
|
9009
9801
|
"name": "DrawerClose",
|
|
@@ -9013,7 +9805,7 @@
|
|
|
9013
9805
|
"icon": "button",
|
|
9014
9806
|
"container": true,
|
|
9015
9807
|
"behaviors": [],
|
|
9016
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9808
|
+
"sourceFile": "silicaui-html/src/component.ts:2418"
|
|
9017
9809
|
},
|
|
9018
9810
|
{
|
|
9019
9811
|
"name": "DrawerTitle",
|
|
@@ -9045,7 +9837,7 @@
|
|
|
9045
9837
|
"behaviors": [
|
|
9046
9838
|
"modal"
|
|
9047
9839
|
],
|
|
9048
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9840
|
+
"sourceFile": "silicaui-html/src/component.ts:2437"
|
|
9049
9841
|
},
|
|
9050
9842
|
{
|
|
9051
9843
|
"name": "AlertDialogTrigger",
|
|
@@ -9055,7 +9847,7 @@
|
|
|
9055
9847
|
"icon": "button",
|
|
9056
9848
|
"container": true,
|
|
9057
9849
|
"behaviors": [],
|
|
9058
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9850
|
+
"sourceFile": "silicaui-html/src/component.ts:2449"
|
|
9059
9851
|
},
|
|
9060
9852
|
{
|
|
9061
9853
|
"name": "AlertDialogBackdrop",
|
|
@@ -9065,7 +9857,7 @@
|
|
|
9065
9857
|
"icon": "box",
|
|
9066
9858
|
"container": false,
|
|
9067
9859
|
"behaviors": [],
|
|
9068
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9860
|
+
"sourceFile": "silicaui-html/src/component.ts:2461"
|
|
9069
9861
|
},
|
|
9070
9862
|
{
|
|
9071
9863
|
"name": "AlertDialogContent",
|
|
@@ -9075,7 +9867,7 @@
|
|
|
9075
9867
|
"icon": "warning",
|
|
9076
9868
|
"container": true,
|
|
9077
9869
|
"behaviors": [],
|
|
9078
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9870
|
+
"sourceFile": "silicaui-html/src/component.ts:2472"
|
|
9079
9871
|
},
|
|
9080
9872
|
{
|
|
9081
9873
|
"name": "AlertDialogClose",
|
|
@@ -9085,7 +9877,7 @@
|
|
|
9085
9877
|
"icon": "button",
|
|
9086
9878
|
"container": true,
|
|
9087
9879
|
"behaviors": [],
|
|
9088
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9880
|
+
"sourceFile": "silicaui-html/src/component.ts:2487"
|
|
9089
9881
|
},
|
|
9090
9882
|
{
|
|
9091
9883
|
"name": "AlertDialogCancel",
|
|
@@ -9095,7 +9887,7 @@
|
|
|
9095
9887
|
"icon": "button",
|
|
9096
9888
|
"container": true,
|
|
9097
9889
|
"behaviors": [],
|
|
9098
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9890
|
+
"sourceFile": "silicaui-html/src/component.ts:2499"
|
|
9099
9891
|
},
|
|
9100
9892
|
{
|
|
9101
9893
|
"name": "AlertDialogAction",
|
|
@@ -9105,7 +9897,7 @@
|
|
|
9105
9897
|
"icon": "button",
|
|
9106
9898
|
"container": true,
|
|
9107
9899
|
"behaviors": [],
|
|
9108
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9900
|
+
"sourceFile": "silicaui-html/src/component.ts:2511"
|
|
9109
9901
|
},
|
|
9110
9902
|
{
|
|
9111
9903
|
"name": "AlertDialogTitle",
|
|
@@ -9137,7 +9929,7 @@
|
|
|
9137
9929
|
"behaviors": [
|
|
9138
9930
|
"modal"
|
|
9139
9931
|
],
|
|
9140
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9932
|
+
"sourceFile": "silicaui-html/src/component.ts:2529"
|
|
9141
9933
|
},
|
|
9142
9934
|
{
|
|
9143
9935
|
"name": "LightboxTrigger",
|
|
@@ -9147,7 +9939,7 @@
|
|
|
9147
9939
|
"icon": "button",
|
|
9148
9940
|
"container": true,
|
|
9149
9941
|
"behaviors": [],
|
|
9150
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9942
|
+
"sourceFile": "silicaui-html/src/component.ts:2541"
|
|
9151
9943
|
},
|
|
9152
9944
|
{
|
|
9153
9945
|
"name": "LightboxBackdrop",
|
|
@@ -9157,7 +9949,7 @@
|
|
|
9157
9949
|
"icon": "box",
|
|
9158
9950
|
"container": false,
|
|
9159
9951
|
"behaviors": [],
|
|
9160
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9952
|
+
"sourceFile": "silicaui-html/src/component.ts:2553"
|
|
9161
9953
|
},
|
|
9162
9954
|
{
|
|
9163
9955
|
"name": "LightboxContent",
|
|
@@ -9167,7 +9959,7 @@
|
|
|
9167
9959
|
"icon": "image",
|
|
9168
9960
|
"container": true,
|
|
9169
9961
|
"behaviors": [],
|
|
9170
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9962
|
+
"sourceFile": "silicaui-html/src/component.ts:2564"
|
|
9171
9963
|
},
|
|
9172
9964
|
{
|
|
9173
9965
|
"name": "LightboxSlide",
|
|
@@ -9177,7 +9969,7 @@
|
|
|
9177
9969
|
"icon": "image",
|
|
9178
9970
|
"container": true,
|
|
9179
9971
|
"behaviors": [],
|
|
9180
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9972
|
+
"sourceFile": "silicaui-html/src/component.ts:2579"
|
|
9181
9973
|
},
|
|
9182
9974
|
{
|
|
9183
9975
|
"name": "LightboxPrev",
|
|
@@ -9187,7 +9979,7 @@
|
|
|
9187
9979
|
"icon": "button",
|
|
9188
9980
|
"container": false,
|
|
9189
9981
|
"behaviors": [],
|
|
9190
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9982
|
+
"sourceFile": "silicaui-html/src/component.ts:2591"
|
|
9191
9983
|
},
|
|
9192
9984
|
{
|
|
9193
9985
|
"name": "LightboxNext",
|
|
@@ -9197,7 +9989,7 @@
|
|
|
9197
9989
|
"icon": "button",
|
|
9198
9990
|
"container": false,
|
|
9199
9991
|
"behaviors": [],
|
|
9200
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9992
|
+
"sourceFile": "silicaui-html/src/component.ts:2605"
|
|
9201
9993
|
},
|
|
9202
9994
|
{
|
|
9203
9995
|
"name": "LightboxClose",
|
|
@@ -9207,7 +9999,7 @@
|
|
|
9207
9999
|
"icon": "button",
|
|
9208
10000
|
"container": true,
|
|
9209
10001
|
"behaviors": [],
|
|
9210
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10002
|
+
"sourceFile": "silicaui-html/src/component.ts:2619"
|
|
9211
10003
|
},
|
|
9212
10004
|
{
|
|
9213
10005
|
"name": "LightboxCounter",
|
|
@@ -9217,7 +10009,7 @@
|
|
|
9217
10009
|
"icon": "box",
|
|
9218
10010
|
"container": false,
|
|
9219
10011
|
"behaviors": [],
|
|
9220
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10012
|
+
"sourceFile": "silicaui-html/src/component.ts:2634"
|
|
9221
10013
|
},
|
|
9222
10014
|
{
|
|
9223
10015
|
"name": "CommandPalette",
|
|
@@ -9229,7 +10021,7 @@
|
|
|
9229
10021
|
"behaviors": [
|
|
9230
10022
|
"modal"
|
|
9231
10023
|
],
|
|
9232
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10024
|
+
"sourceFile": "silicaui-html/src/component.ts:2649"
|
|
9233
10025
|
},
|
|
9234
10026
|
{
|
|
9235
10027
|
"name": "CommandPaletteBackdrop",
|
|
@@ -9239,7 +10031,7 @@
|
|
|
9239
10031
|
"icon": "box",
|
|
9240
10032
|
"container": false,
|
|
9241
10033
|
"behaviors": [],
|
|
9242
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10034
|
+
"sourceFile": "silicaui-html/src/component.ts:2664"
|
|
9243
10035
|
},
|
|
9244
10036
|
{
|
|
9245
10037
|
"name": "CommandPaletteContent",
|
|
@@ -9249,7 +10041,7 @@
|
|
|
9249
10041
|
"icon": "search",
|
|
9250
10042
|
"container": true,
|
|
9251
10043
|
"behaviors": [],
|
|
9252
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10044
|
+
"sourceFile": "silicaui-html/src/component.ts:2675"
|
|
9253
10045
|
},
|
|
9254
10046
|
{
|
|
9255
10047
|
"name": "CommandPaletteInput",
|
|
@@ -9259,7 +10051,7 @@
|
|
|
9259
10051
|
"icon": "input",
|
|
9260
10052
|
"container": false,
|
|
9261
10053
|
"behaviors": [],
|
|
9262
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10054
|
+
"sourceFile": "silicaui-html/src/component.ts:2690"
|
|
9263
10055
|
},
|
|
9264
10056
|
{
|
|
9265
10057
|
"name": "CommandPaletteItem",
|
|
@@ -9269,7 +10061,7 @@
|
|
|
9269
10061
|
"icon": "box",
|
|
9270
10062
|
"container": true,
|
|
9271
10063
|
"behaviors": [],
|
|
9272
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10064
|
+
"sourceFile": "silicaui-html/src/component.ts:2703"
|
|
9273
10065
|
},
|
|
9274
10066
|
{
|
|
9275
10067
|
"name": "Popover",
|
|
@@ -9281,7 +10073,7 @@
|
|
|
9281
10073
|
"behaviors": [
|
|
9282
10074
|
"popover"
|
|
9283
10075
|
],
|
|
9284
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10076
|
+
"sourceFile": "silicaui-html/src/component.ts:2720"
|
|
9285
10077
|
},
|
|
9286
10078
|
{
|
|
9287
10079
|
"name": "PopoverTrigger",
|
|
@@ -9291,7 +10083,7 @@
|
|
|
9291
10083
|
"icon": "button",
|
|
9292
10084
|
"container": true,
|
|
9293
10085
|
"behaviors": [],
|
|
9294
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10086
|
+
"sourceFile": "silicaui-html/src/component.ts:2732"
|
|
9295
10087
|
},
|
|
9296
10088
|
{
|
|
9297
10089
|
"name": "PopoverContent",
|
|
@@ -9301,7 +10093,7 @@
|
|
|
9301
10093
|
"icon": "box",
|
|
9302
10094
|
"container": true,
|
|
9303
10095
|
"behaviors": [],
|
|
9304
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10096
|
+
"sourceFile": "silicaui-html/src/component.ts:2744"
|
|
9305
10097
|
},
|
|
9306
10098
|
{
|
|
9307
10099
|
"name": "PopoverClose",
|
|
@@ -9311,7 +10103,7 @@
|
|
|
9311
10103
|
"icon": "button",
|
|
9312
10104
|
"container": true,
|
|
9313
10105
|
"behaviors": [],
|
|
9314
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10106
|
+
"sourceFile": "silicaui-html/src/component.ts:2756"
|
|
9315
10107
|
},
|
|
9316
10108
|
{
|
|
9317
10109
|
"name": "PopoverTitle",
|
|
@@ -9343,7 +10135,7 @@
|
|
|
9343
10135
|
"behaviors": [
|
|
9344
10136
|
"popover"
|
|
9345
10137
|
],
|
|
9346
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10138
|
+
"sourceFile": "silicaui-html/src/component.ts:2774"
|
|
9347
10139
|
},
|
|
9348
10140
|
{
|
|
9349
10141
|
"name": "TooltipTrigger",
|
|
@@ -9353,7 +10145,7 @@
|
|
|
9353
10145
|
"icon": "box",
|
|
9354
10146
|
"container": true,
|
|
9355
10147
|
"behaviors": [],
|
|
9356
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10148
|
+
"sourceFile": "silicaui-html/src/component.ts:2786"
|
|
9357
10149
|
},
|
|
9358
10150
|
{
|
|
9359
10151
|
"name": "TooltipContent",
|
|
@@ -9363,7 +10155,7 @@
|
|
|
9363
10155
|
"icon": "box",
|
|
9364
10156
|
"container": true,
|
|
9365
10157
|
"behaviors": [],
|
|
9366
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10158
|
+
"sourceFile": "silicaui-html/src/component.ts:2798"
|
|
9367
10159
|
},
|
|
9368
10160
|
{
|
|
9369
10161
|
"name": "PreviewCard",
|
|
@@ -9375,7 +10167,7 @@
|
|
|
9375
10167
|
"behaviors": [
|
|
9376
10168
|
"popover"
|
|
9377
10169
|
],
|
|
9378
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10170
|
+
"sourceFile": "silicaui-html/src/component.ts:2813"
|
|
9379
10171
|
},
|
|
9380
10172
|
{
|
|
9381
10173
|
"name": "PreviewCardTrigger",
|
|
@@ -9385,7 +10177,7 @@
|
|
|
9385
10177
|
"icon": "box",
|
|
9386
10178
|
"container": true,
|
|
9387
10179
|
"behaviors": [],
|
|
9388
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10180
|
+
"sourceFile": "silicaui-html/src/component.ts:2825"
|
|
9389
10181
|
},
|
|
9390
10182
|
{
|
|
9391
10183
|
"name": "PreviewCardContent",
|
|
@@ -9395,7 +10187,7 @@
|
|
|
9395
10187
|
"icon": "box",
|
|
9396
10188
|
"container": true,
|
|
9397
10189
|
"behaviors": [],
|
|
9398
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10190
|
+
"sourceFile": "silicaui-html/src/component.ts:2837"
|
|
9399
10191
|
},
|
|
9400
10192
|
{
|
|
9401
10193
|
"name": "ContextMenu",
|
|
@@ -9407,7 +10199,7 @@
|
|
|
9407
10199
|
"behaviors": [
|
|
9408
10200
|
"menu"
|
|
9409
10201
|
],
|
|
9410
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10202
|
+
"sourceFile": "silicaui-html/src/component.ts:2855"
|
|
9411
10203
|
},
|
|
9412
10204
|
{
|
|
9413
10205
|
"name": "ContextMenuTrigger",
|
|
@@ -9417,7 +10209,7 @@
|
|
|
9417
10209
|
"icon": "box",
|
|
9418
10210
|
"container": true,
|
|
9419
10211
|
"behaviors": [],
|
|
9420
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10212
|
+
"sourceFile": "silicaui-html/src/component.ts:2867"
|
|
9421
10213
|
},
|
|
9422
10214
|
{
|
|
9423
10215
|
"name": "ContextMenuContent",
|
|
@@ -9427,7 +10219,7 @@
|
|
|
9427
10219
|
"icon": "nav",
|
|
9428
10220
|
"container": true,
|
|
9429
10221
|
"behaviors": [],
|
|
9430
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10222
|
+
"sourceFile": "silicaui-html/src/component.ts:2879"
|
|
9431
10223
|
},
|
|
9432
10224
|
{
|
|
9433
10225
|
"name": "ContextMenuItem",
|
|
@@ -9437,7 +10229,7 @@
|
|
|
9437
10229
|
"icon": "nav",
|
|
9438
10230
|
"container": true,
|
|
9439
10231
|
"behaviors": [],
|
|
9440
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10232
|
+
"sourceFile": "silicaui-html/src/component.ts:2891"
|
|
9441
10233
|
},
|
|
9442
10234
|
{
|
|
9443
10235
|
"name": "Menubar",
|
|
@@ -9459,7 +10251,7 @@
|
|
|
9459
10251
|
"behaviors": [
|
|
9460
10252
|
"menu"
|
|
9461
10253
|
],
|
|
9462
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10254
|
+
"sourceFile": "silicaui-html/src/component.ts:2909"
|
|
9463
10255
|
},
|
|
9464
10256
|
{
|
|
9465
10257
|
"name": "MenubarTrigger",
|
|
@@ -9469,7 +10261,7 @@
|
|
|
9469
10261
|
"icon": "button",
|
|
9470
10262
|
"container": true,
|
|
9471
10263
|
"behaviors": [],
|
|
9472
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10264
|
+
"sourceFile": "silicaui-html/src/component.ts:2921"
|
|
9473
10265
|
},
|
|
9474
10266
|
{
|
|
9475
10267
|
"name": "MenubarContent",
|
|
@@ -9479,7 +10271,7 @@
|
|
|
9479
10271
|
"icon": "nav",
|
|
9480
10272
|
"container": true,
|
|
9481
10273
|
"behaviors": [],
|
|
9482
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10274
|
+
"sourceFile": "silicaui-html/src/component.ts:2933"
|
|
9483
10275
|
},
|
|
9484
10276
|
{
|
|
9485
10277
|
"name": "MenubarItem",
|
|
@@ -9489,7 +10281,7 @@
|
|
|
9489
10281
|
"icon": "nav",
|
|
9490
10282
|
"container": true,
|
|
9491
10283
|
"behaviors": [],
|
|
9492
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10284
|
+
"sourceFile": "silicaui-html/src/component.ts:2945"
|
|
9493
10285
|
},
|
|
9494
10286
|
{
|
|
9495
10287
|
"name": "NavigationMenu",
|
|
@@ -9511,7 +10303,7 @@
|
|
|
9511
10303
|
"behaviors": [
|
|
9512
10304
|
"popover"
|
|
9513
10305
|
],
|
|
9514
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10306
|
+
"sourceFile": "silicaui-html/src/component.ts:2963"
|
|
9515
10307
|
},
|
|
9516
10308
|
{
|
|
9517
10309
|
"name": "NavigationMenuTrigger",
|
|
@@ -9521,7 +10313,7 @@
|
|
|
9521
10313
|
"icon": "button",
|
|
9522
10314
|
"container": true,
|
|
9523
10315
|
"behaviors": [],
|
|
9524
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10316
|
+
"sourceFile": "silicaui-html/src/component.ts:2975"
|
|
9525
10317
|
},
|
|
9526
10318
|
{
|
|
9527
10319
|
"name": "NavigationMenuContent",
|
|
@@ -9531,7 +10323,7 @@
|
|
|
9531
10323
|
"icon": "nav",
|
|
9532
10324
|
"container": true,
|
|
9533
10325
|
"behaviors": [],
|
|
9534
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10326
|
+
"sourceFile": "silicaui-html/src/component.ts:2987"
|
|
9535
10327
|
},
|
|
9536
10328
|
{
|
|
9537
10329
|
"name": "NavigationMenuLink",
|
|
@@ -9541,7 +10333,7 @@
|
|
|
9541
10333
|
"icon": "nav",
|
|
9542
10334
|
"container": true,
|
|
9543
10335
|
"behaviors": [],
|
|
9544
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10336
|
+
"sourceFile": "silicaui-html/src/component.ts:2999"
|
|
9545
10337
|
},
|
|
9546
10338
|
{
|
|
9547
10339
|
"name": "Combobox",
|
|
@@ -9553,7 +10345,7 @@
|
|
|
9553
10345
|
"behaviors": [
|
|
9554
10346
|
"combobox"
|
|
9555
10347
|
],
|
|
9556
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10348
|
+
"sourceFile": "silicaui-html/src/component.ts:3014"
|
|
9557
10349
|
},
|
|
9558
10350
|
{
|
|
9559
10351
|
"name": "Autocomplete",
|
|
@@ -9565,7 +10357,7 @@
|
|
|
9565
10357
|
"behaviors": [
|
|
9566
10358
|
"combobox"
|
|
9567
10359
|
],
|
|
9568
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10360
|
+
"sourceFile": "silicaui-html/src/component.ts:3021"
|
|
9569
10361
|
},
|
|
9570
10362
|
{
|
|
9571
10363
|
"name": "MultiSelect",
|
|
@@ -9577,7 +10369,7 @@
|
|
|
9577
10369
|
"behaviors": [
|
|
9578
10370
|
"combobox"
|
|
9579
10371
|
],
|
|
9580
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10372
|
+
"sourceFile": "silicaui-html/src/component.ts:3028"
|
|
9581
10373
|
},
|
|
9582
10374
|
{
|
|
9583
10375
|
"name": "DateInput",
|
|
@@ -9589,7 +10381,7 @@
|
|
|
9589
10381
|
"behaviors": [
|
|
9590
10382
|
"date-segment"
|
|
9591
10383
|
],
|
|
9592
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10384
|
+
"sourceFile": "silicaui-html/src/component.ts:3040"
|
|
9593
10385
|
},
|
|
9594
10386
|
{
|
|
9595
10387
|
"name": "DateRangeInput",
|
|
@@ -9601,7 +10393,7 @@
|
|
|
9601
10393
|
"behaviors": [
|
|
9602
10394
|
"date-segment"
|
|
9603
10395
|
],
|
|
9604
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10396
|
+
"sourceFile": "silicaui-html/src/component.ts:3058"
|
|
9605
10397
|
},
|
|
9606
10398
|
{
|
|
9607
10399
|
"name": "DateTimeInput",
|
|
@@ -9613,7 +10405,7 @@
|
|
|
9613
10405
|
"behaviors": [
|
|
9614
10406
|
"date-segment"
|
|
9615
10407
|
],
|
|
9616
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10408
|
+
"sourceFile": "silicaui-html/src/component.ts:3074"
|
|
9617
10409
|
},
|
|
9618
10410
|
{
|
|
9619
10411
|
"name": "TimeInput",
|
|
@@ -9625,7 +10417,7 @@
|
|
|
9625
10417
|
"behaviors": [
|
|
9626
10418
|
"date-segment"
|
|
9627
10419
|
],
|
|
9628
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10420
|
+
"sourceFile": "silicaui-html/src/component.ts:3100"
|
|
9629
10421
|
},
|
|
9630
10422
|
{
|
|
9631
10423
|
"name": "PinInput",
|
|
@@ -9637,7 +10429,7 @@
|
|
|
9637
10429
|
"behaviors": [
|
|
9638
10430
|
"pin-input"
|
|
9639
10431
|
],
|
|
9640
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10432
|
+
"sourceFile": "silicaui-html/src/component.ts:3126"
|
|
9641
10433
|
},
|
|
9642
10434
|
{
|
|
9643
10435
|
"name": "Calendar",
|
|
@@ -9649,7 +10441,7 @@
|
|
|
9649
10441
|
"behaviors": [
|
|
9650
10442
|
"calendar"
|
|
9651
10443
|
],
|
|
9652
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10444
|
+
"sourceFile": "silicaui-html/src/component.ts:3171"
|
|
9653
10445
|
},
|
|
9654
10446
|
{
|
|
9655
10447
|
"name": "DatePicker",
|
|
@@ -9661,7 +10453,7 @@
|
|
|
9661
10453
|
"behaviors": [
|
|
9662
10454
|
"popover"
|
|
9663
10455
|
],
|
|
9664
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10456
|
+
"sourceFile": "silicaui-html/src/component.ts:3183"
|
|
9665
10457
|
},
|
|
9666
10458
|
{
|
|
9667
10459
|
"name": "DatePickerTrigger",
|
|
@@ -9671,7 +10463,7 @@
|
|
|
9671
10463
|
"icon": "calendar",
|
|
9672
10464
|
"container": true,
|
|
9673
10465
|
"behaviors": [],
|
|
9674
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10466
|
+
"sourceFile": "silicaui-html/src/component.ts:3195"
|
|
9675
10467
|
},
|
|
9676
10468
|
{
|
|
9677
10469
|
"name": "DatePickerContent",
|
|
@@ -9683,7 +10475,7 @@
|
|
|
9683
10475
|
"behaviors": [
|
|
9684
10476
|
"calendar"
|
|
9685
10477
|
],
|
|
9686
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10478
|
+
"sourceFile": "silicaui-html/src/component.ts:3207"
|
|
9687
10479
|
},
|
|
9688
10480
|
{
|
|
9689
10481
|
"name": "DateRangePicker",
|
|
@@ -9695,7 +10487,7 @@
|
|
|
9695
10487
|
"behaviors": [
|
|
9696
10488
|
"popover"
|
|
9697
10489
|
],
|
|
9698
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10490
|
+
"sourceFile": "silicaui-html/src/component.ts:3221"
|
|
9699
10491
|
},
|
|
9700
10492
|
{
|
|
9701
10493
|
"name": "DateRangePickerTrigger",
|
|
@@ -9705,7 +10497,7 @@
|
|
|
9705
10497
|
"icon": "calendar",
|
|
9706
10498
|
"container": true,
|
|
9707
10499
|
"behaviors": [],
|
|
9708
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10500
|
+
"sourceFile": "silicaui-html/src/component.ts:3233"
|
|
9709
10501
|
},
|
|
9710
10502
|
{
|
|
9711
10503
|
"name": "DateRangePickerContent",
|
|
@@ -9717,7 +10509,7 @@
|
|
|
9717
10509
|
"behaviors": [
|
|
9718
10510
|
"calendar"
|
|
9719
10511
|
],
|
|
9720
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10512
|
+
"sourceFile": "silicaui-html/src/component.ts:3245"
|
|
9721
10513
|
},
|
|
9722
10514
|
{
|
|
9723
10515
|
"name": "TreeView",
|
|
@@ -9729,7 +10521,7 @@
|
|
|
9729
10521
|
"behaviors": [
|
|
9730
10522
|
"tree"
|
|
9731
10523
|
],
|
|
9732
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10524
|
+
"sourceFile": "silicaui-html/src/component.ts:3265"
|
|
9733
10525
|
},
|
|
9734
10526
|
{
|
|
9735
10527
|
"name": "TreeNode",
|
|
@@ -9739,7 +10531,7 @@
|
|
|
9739
10531
|
"icon": "box",
|
|
9740
10532
|
"container": true,
|
|
9741
10533
|
"behaviors": [],
|
|
9742
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10534
|
+
"sourceFile": "silicaui-html/src/component.ts:3277"
|
|
9743
10535
|
},
|
|
9744
10536
|
{
|
|
9745
10537
|
"name": "TreeToggle",
|
|
@@ -9749,7 +10541,7 @@
|
|
|
9749
10541
|
"icon": "button",
|
|
9750
10542
|
"container": false,
|
|
9751
10543
|
"behaviors": [],
|
|
9752
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10544
|
+
"sourceFile": "silicaui-html/src/component.ts:3289"
|
|
9753
10545
|
},
|
|
9754
10546
|
{
|
|
9755
10547
|
"name": "TreeGroup",
|
|
@@ -9759,7 +10551,7 @@
|
|
|
9759
10551
|
"icon": "box",
|
|
9760
10552
|
"container": true,
|
|
9761
10553
|
"behaviors": [],
|
|
9762
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10554
|
+
"sourceFile": "silicaui-html/src/component.ts:3303"
|
|
9763
10555
|
},
|
|
9764
10556
|
{
|
|
9765
10557
|
"name": "Wizard",
|
|
@@ -9771,7 +10563,7 @@
|
|
|
9771
10563
|
"behaviors": [
|
|
9772
10564
|
"wizard"
|
|
9773
10565
|
],
|
|
9774
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10566
|
+
"sourceFile": "silicaui-html/src/component.ts:3317"
|
|
9775
10567
|
},
|
|
9776
10568
|
{
|
|
9777
10569
|
"name": "WizardStep",
|
|
@@ -9781,7 +10573,7 @@
|
|
|
9781
10573
|
"icon": "box",
|
|
9782
10574
|
"container": true,
|
|
9783
10575
|
"behaviors": [],
|
|
9784
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10576
|
+
"sourceFile": "silicaui-html/src/component.ts:3329"
|
|
9785
10577
|
},
|
|
9786
10578
|
{
|
|
9787
10579
|
"name": "WizardPanel",
|
|
@@ -9791,7 +10583,7 @@
|
|
|
9791
10583
|
"icon": "box",
|
|
9792
10584
|
"container": true,
|
|
9793
10585
|
"behaviors": [],
|
|
9794
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10586
|
+
"sourceFile": "silicaui-html/src/component.ts:3343"
|
|
9795
10587
|
},
|
|
9796
10588
|
{
|
|
9797
10589
|
"name": "WizardBack",
|
|
@@ -9801,7 +10593,7 @@
|
|
|
9801
10593
|
"icon": "button",
|
|
9802
10594
|
"container": true,
|
|
9803
10595
|
"behaviors": [],
|
|
9804
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10596
|
+
"sourceFile": "silicaui-html/src/component.ts:3355"
|
|
9805
10597
|
},
|
|
9806
10598
|
{
|
|
9807
10599
|
"name": "WizardNext",
|
|
@@ -9811,7 +10603,7 @@
|
|
|
9811
10603
|
"icon": "button",
|
|
9812
10604
|
"container": true,
|
|
9813
10605
|
"behaviors": [],
|
|
9814
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10606
|
+
"sourceFile": "silicaui-html/src/component.ts:3367"
|
|
9815
10607
|
},
|
|
9816
10608
|
{
|
|
9817
10609
|
"name": "NumberField",
|
|
@@ -9823,7 +10615,7 @@
|
|
|
9823
10615
|
"behaviors": [
|
|
9824
10616
|
"number-field"
|
|
9825
10617
|
],
|
|
9826
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10618
|
+
"sourceFile": "silicaui-html/src/component.ts:3385"
|
|
9827
10619
|
},
|
|
9828
10620
|
{
|
|
9829
10621
|
"name": "ToggleGroup",
|
|
@@ -9835,7 +10627,7 @@
|
|
|
9835
10627
|
"behaviors": [
|
|
9836
10628
|
"toggle-group"
|
|
9837
10629
|
],
|
|
9838
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10630
|
+
"sourceFile": "silicaui-html/src/component.ts:3415"
|
|
9839
10631
|
},
|
|
9840
10632
|
{
|
|
9841
10633
|
"name": "ToggleGroupItem",
|
|
@@ -9845,7 +10637,7 @@
|
|
|
9845
10637
|
"icon": "toggle",
|
|
9846
10638
|
"container": true,
|
|
9847
10639
|
"behaviors": [],
|
|
9848
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10640
|
+
"sourceFile": "silicaui-html/src/component.ts:3433"
|
|
9849
10641
|
},
|
|
9850
10642
|
{
|
|
9851
10643
|
"name": "Range",
|
|
@@ -9857,7 +10649,7 @@
|
|
|
9857
10649
|
"behaviors": [
|
|
9858
10650
|
"slider"
|
|
9859
10651
|
],
|
|
9860
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10652
|
+
"sourceFile": "silicaui-html/src/component.ts:3453"
|
|
9861
10653
|
},
|
|
9862
10654
|
{
|
|
9863
10655
|
"name": "Slider",
|
|
@@ -9869,7 +10661,7 @@
|
|
|
9869
10661
|
"behaviors": [
|
|
9870
10662
|
"slider"
|
|
9871
10663
|
],
|
|
9872
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10664
|
+
"sourceFile": "silicaui-html/src/component.ts:3454"
|
|
9873
10665
|
},
|
|
9874
10666
|
{
|
|
9875
10667
|
"name": "Switch",
|
|
@@ -9881,7 +10673,7 @@
|
|
|
9881
10673
|
"behaviors": [
|
|
9882
10674
|
"switch"
|
|
9883
10675
|
],
|
|
9884
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10676
|
+
"sourceFile": "silicaui-html/src/component.ts:3460"
|
|
9885
10677
|
},
|
|
9886
10678
|
{
|
|
9887
10679
|
"name": "Rating",
|
|
@@ -9893,7 +10685,7 @@
|
|
|
9893
10685
|
"behaviors": [
|
|
9894
10686
|
"rating"
|
|
9895
10687
|
],
|
|
9896
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10688
|
+
"sourceFile": "silicaui-html/src/component.ts:3484"
|
|
9897
10689
|
},
|
|
9898
10690
|
{
|
|
9899
10691
|
"name": "ScrollArea",
|
|
@@ -9905,7 +10697,7 @@
|
|
|
9905
10697
|
"behaviors": [
|
|
9906
10698
|
"scroll-area"
|
|
9907
10699
|
],
|
|
9908
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10700
|
+
"sourceFile": "silicaui-html/src/component.ts:3520"
|
|
9909
10701
|
},
|
|
9910
10702
|
{
|
|
9911
10703
|
"name": "OverflowList",
|
|
@@ -9917,7 +10709,7 @@
|
|
|
9917
10709
|
"behaviors": [
|
|
9918
10710
|
"overflow-list"
|
|
9919
10711
|
],
|
|
9920
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10712
|
+
"sourceFile": "silicaui-html/src/component.ts:3540"
|
|
9921
10713
|
},
|
|
9922
10714
|
{
|
|
9923
10715
|
"name": "OverflowListItem",
|
|
@@ -9927,7 +10719,7 @@
|
|
|
9927
10719
|
"icon": "box",
|
|
9928
10720
|
"container": true,
|
|
9929
10721
|
"behaviors": [],
|
|
9930
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10722
|
+
"sourceFile": "silicaui-html/src/component.ts:3568"
|
|
9931
10723
|
},
|
|
9932
10724
|
{
|
|
9933
10725
|
"name": "Dropzone",
|
|
@@ -9939,7 +10731,7 @@
|
|
|
9939
10731
|
"behaviors": [
|
|
9940
10732
|
"dropzone"
|
|
9941
10733
|
],
|
|
9942
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10734
|
+
"sourceFile": "silicaui-html/src/component.ts:3585"
|
|
9943
10735
|
},
|
|
9944
10736
|
{
|
|
9945
10737
|
"name": "FileUpload",
|
|
@@ -9951,7 +10743,7 @@
|
|
|
9951
10743
|
"behaviors": [
|
|
9952
10744
|
"dropzone"
|
|
9953
10745
|
],
|
|
9954
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10746
|
+
"sourceFile": "silicaui-html/src/component.ts:3586"
|
|
9955
10747
|
},
|
|
9956
10748
|
{
|
|
9957
10749
|
"name": "PhoneInput",
|
|
@@ -9963,7 +10755,7 @@
|
|
|
9963
10755
|
"behaviors": [
|
|
9964
10756
|
"phone-input"
|
|
9965
10757
|
],
|
|
9966
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10758
|
+
"sourceFile": "silicaui-html/src/component.ts:3592"
|
|
9967
10759
|
},
|
|
9968
10760
|
{
|
|
9969
10761
|
"name": "ThemeController",
|
|
@@ -9975,7 +10767,7 @@
|
|
|
9975
10767
|
"behaviors": [
|
|
9976
10768
|
"theme-toggle"
|
|
9977
10769
|
],
|
|
9978
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10770
|
+
"sourceFile": "silicaui-html/src/component.ts:3631"
|
|
9979
10771
|
},
|
|
9980
10772
|
{
|
|
9981
10773
|
"name": "Overlay",
|
|
@@ -9985,7 +10777,7 @@
|
|
|
9985
10777
|
"icon": "image",
|
|
9986
10778
|
"container": true,
|
|
9987
10779
|
"behaviors": [],
|
|
9988
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10780
|
+
"sourceFile": "silicaui-html/src/component.ts:3653"
|
|
9989
10781
|
},
|
|
9990
10782
|
{
|
|
9991
10783
|
"name": "OverlayScrim",
|
|
@@ -9995,6 +10787,6 @@
|
|
|
9995
10787
|
"icon": "image",
|
|
9996
10788
|
"container": true,
|
|
9997
10789
|
"behaviors": [],
|
|
9998
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10790
|
+
"sourceFile": "silicaui-html/src/component.ts:3661"
|
|
9999
10791
|
}
|
|
10000
10792
|
]
|