@wizeworks/silicaui-mcp 0.28.0 → 0.30.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 +34 -7
- package/dist/data/components.json +1239 -471
- package/dist/data/packages.json +10 -20
- 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<\n Omit<React.InputHTMLAttributes<HTMLInputElement>, \"type\" | \"size\">\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 <DialogDescription>\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 </DialogDescription>\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\";\nimport { RadialProgress } from \"@wizeworks/silicaui-react\";\nimport { Section, Row } from \"../lib/Section\";\nimport { COLORS } from \"../lib/data\";\n\nexport function RadialProgressDemo() {\n const [pct, setPct] = useState(0);\n\n useEffect(() => {\n const id = setInterval(() => setPct((p) => (p >= 100 ? 0 : p + 5)), 200);\n return () => clearInterval(id);\n }, []);\n\n return (\n <>\n <Section title=\"Colors\">\n <Row>\n {COLORS.slice(0, 6).map((color) => (\n <RadialProgress key={color} value={70} color={color} />\n ))}\n </Row>\n </Section>\n\n <Section title=\"Sizes\">\n <Row>\n <RadialProgress value={60} color=\"primary\" diameter=\"3rem\" thickness=\"0.35rem\" />\n <RadialProgress value={60} color=\"primary\" diameter=\"5rem\" thickness=\"0.5rem\" />\n <RadialProgress value={60} color=\"primary\" diameter=\"8rem\" thickness=\"0.75rem\" />\n </Row>\n </Section>\n\n <Section title=\"Real use · animated upload progress\">\n <RadialProgress value={pct} color=\"brand\" diameter=\"6rem\" />\n </Section>\n </>\n );\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
7622
|
"type": "HeadingLevel | \"display\"",
|
|
7017
|
-
"doc": "Visual
|
|
7623
|
+
"doc": "Visual heading scale (`1`–`6` or `\"display\"`), 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
|
},
|
|
@@ -7085,84 +7691,10 @@
|
|
|
7085
7691
|
"doc": "Semantic level → renders `<h1>`…`<h6>`. Default 2."
|
|
7086
7692
|
},
|
|
7087
7693
|
{
|
|
7088
|
-
"name": "
|
|
7089
|
-
"optional": true,
|
|
7090
|
-
"type": "HeadingLevel | \"display\"",
|
|
7091
|
-
"doc": "Visual size override (`1`–`6` or `\"display\"`); omit to use the tag default."
|
|
7092
|
-
}
|
|
7093
|
-
]
|
|
7094
|
-
},
|
|
7095
|
-
{
|
|
7096
|
-
"name": "DisplayProps",
|
|
7097
|
-
"extends": "extends React.HTMLAttributes<HTMLHeadingElement>",
|
|
7098
|
-
"members": [
|
|
7099
|
-
{
|
|
7100
|
-
"name": "level",
|
|
7101
|
-
"optional": true,
|
|
7102
|
-
"type": "HeadingLevel",
|
|
7103
|
-
"doc": "Semantic level for the outline (the look is always `.display`). Default 1."
|
|
7104
|
-
}
|
|
7105
|
-
]
|
|
7106
|
-
},
|
|
7107
|
-
{
|
|
7108
|
-
"name": "TextProps",
|
|
7109
|
-
"extends": "extends React.HTMLAttributes<HTMLElement>",
|
|
7110
|
-
"members": [
|
|
7111
|
-
{
|
|
7112
|
-
"name": "variant",
|
|
7113
|
-
"optional": true,
|
|
7114
|
-
"type": "TextVariant",
|
|
7115
|
-
"doc": "`body` (default), `lead` (larger intro), or `caption` (small, muted)."
|
|
7116
|
-
},
|
|
7117
|
-
{
|
|
7118
|
-
"name": "as",
|
|
7119
|
-
"optional": true,
|
|
7120
|
-
"type": "React.ElementType",
|
|
7121
|
-
"doc": "Element to render. Default `p`."
|
|
7122
|
-
}
|
|
7123
|
-
]
|
|
7124
|
-
},
|
|
7125
|
-
{
|
|
7126
|
-
"name": "BlockquoteProps",
|
|
7127
|
-
"members": []
|
|
7128
|
-
},
|
|
7129
|
-
{
|
|
7130
|
-
"name": "BlockquoteCiteProps",
|
|
7131
|
-
"extends": "extends React.HTMLAttributes<HTMLElement>",
|
|
7132
|
-
"members": [
|
|
7133
|
-
{
|
|
7134
|
-
"name": "as",
|
|
7135
|
-
"optional": true,
|
|
7136
|
-
"type": "React.ElementType",
|
|
7137
|
-
"doc": "Element to render. Default `footer`."
|
|
7138
|
-
}
|
|
7139
|
-
]
|
|
7140
|
-
}
|
|
7141
|
-
],
|
|
7142
|
-
"usageExample": null
|
|
7143
|
-
},
|
|
7144
|
-
{
|
|
7145
|
-
"name": "Heading",
|
|
7146
|
-
"package": "@wizeworks/silicaui-react",
|
|
7147
|
-
"category": "Typography",
|
|
7148
|
-
"sourceFile": "silicaui-react/src/typography.tsx",
|
|
7149
|
-
"description": "A heading whose semantic level and visual size are set independently.",
|
|
7150
|
-
"props": [
|
|
7151
|
-
{
|
|
7152
|
-
"name": "HeadingProps",
|
|
7153
|
-
"extends": "extends React.HTMLAttributes<HTMLHeadingElement>",
|
|
7154
|
-
"members": [
|
|
7155
|
-
{
|
|
7156
|
-
"name": "level",
|
|
7157
|
-
"optional": true,
|
|
7158
|
-
"type": "HeadingLevel",
|
|
7159
|
-
"doc": "Semantic level → renders `<h1>`…`<h6>`. Default 2."
|
|
7160
|
-
},
|
|
7161
|
-
{
|
|
7162
|
-
"name": "size",
|
|
7694
|
+
"name": "visualLevel",
|
|
7163
7695
|
"optional": true,
|
|
7164
7696
|
"type": "HeadingLevel | \"display\"",
|
|
7165
|
-
"doc": "Visual
|
|
7697
|
+
"doc": "Visual heading scale (`1`–`6` or `\"display\"`), 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
7698
|
}
|
|
7167
7699
|
]
|
|
7168
7700
|
},
|
|
@@ -7216,33 +7748,11 @@
|
|
|
7216
7748
|
"usageExample": null
|
|
7217
7749
|
},
|
|
7218
7750
|
{
|
|
7219
|
-
"name": "
|
|
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",
|
|
7751
|
+
"name": "Heading",
|
|
7242
7752
|
"package": "@wizeworks/silicaui-react",
|
|
7243
7753
|
"category": "Typography",
|
|
7244
7754
|
"sourceFile": "silicaui-react/src/typography.tsx",
|
|
7245
|
-
"description": "
|
|
7755
|
+
"description": "A heading whose semantic level and visual size are set independently.",
|
|
7246
7756
|
"props": [
|
|
7247
7757
|
{
|
|
7248
7758
|
"name": "HeadingProps",
|
|
@@ -7255,10 +7765,10 @@
|
|
|
7255
7765
|
"doc": "Semantic level → renders `<h1>`…`<h6>`. Default 2."
|
|
7256
7766
|
},
|
|
7257
7767
|
{
|
|
7258
|
-
"name": "
|
|
7768
|
+
"name": "visualLevel",
|
|
7259
7769
|
"optional": true,
|
|
7260
7770
|
"type": "HeadingLevel | \"display\"",
|
|
7261
|
-
"doc": "Visual
|
|
7771
|
+
"doc": "Visual heading scale (`1`–`6` or `\"display\"`), 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."
|
|
7262
7772
|
}
|
|
7263
7773
|
]
|
|
7264
7774
|
},
|
|
@@ -7312,11 +7822,33 @@
|
|
|
7312
7822
|
"usageExample": null
|
|
7313
7823
|
},
|
|
7314
7824
|
{
|
|
7315
|
-
"name": "
|
|
7825
|
+
"name": "Prose",
|
|
7826
|
+
"package": "@wizeworks/silicaui-react",
|
|
7827
|
+
"category": "Typography",
|
|
7828
|
+
"sourceFile": "silicaui-react/src/prose.tsx",
|
|
7829
|
+
"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.",
|
|
7830
|
+
"props": [
|
|
7831
|
+
{
|
|
7832
|
+
"name": "ProseProps",
|
|
7833
|
+
"extends": "extends React.HTMLAttributes<HTMLDivElement>",
|
|
7834
|
+
"members": [
|
|
7835
|
+
{
|
|
7836
|
+
"name": "size",
|
|
7837
|
+
"optional": true,
|
|
7838
|
+
"type": "ProseSize",
|
|
7839
|
+
"doc": "Default `md`. Rescales the whole block by one root font-size."
|
|
7840
|
+
}
|
|
7841
|
+
]
|
|
7842
|
+
}
|
|
7843
|
+
],
|
|
7844
|
+
"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}"
|
|
7845
|
+
},
|
|
7846
|
+
{
|
|
7847
|
+
"name": "Text",
|
|
7316
7848
|
"package": "@wizeworks/silicaui-react",
|
|
7317
7849
|
"category": "Typography",
|
|
7318
7850
|
"sourceFile": "silicaui-react/src/typography.tsx",
|
|
7319
|
-
"description": "",
|
|
7851
|
+
"description": "Body-copy text with a semantic variant. `body` carries no class (bare `<p>`).",
|
|
7320
7852
|
"props": [
|
|
7321
7853
|
{
|
|
7322
7854
|
"name": "HeadingProps",
|
|
@@ -7329,10 +7861,10 @@
|
|
|
7329
7861
|
"doc": "Semantic level → renders `<h1>`…`<h6>`. Default 2."
|
|
7330
7862
|
},
|
|
7331
7863
|
{
|
|
7332
|
-
"name": "
|
|
7864
|
+
"name": "visualLevel",
|
|
7333
7865
|
"optional": true,
|
|
7334
7866
|
"type": "HeadingLevel | \"display\"",
|
|
7335
|
-
"doc": "Visual
|
|
7867
|
+
"doc": "Visual heading scale (`1`–`6` or `\"display\"`), 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
7868
|
}
|
|
7337
7869
|
]
|
|
7338
7870
|
},
|
|
@@ -7394,7 +7926,7 @@
|
|
|
7394
7926
|
"props": [
|
|
7395
7927
|
{
|
|
7396
7928
|
"name": "WordmarkProps",
|
|
7397
|
-
"extends": "extends React.
|
|
7929
|
+
"extends": "extends Omit<React.AllHTMLAttributes<HTMLElement>, \"color\" | \"size\" | \"src\" | \"alt\" | \"as\">",
|
|
7398
7930
|
"members": [
|
|
7399
7931
|
{
|
|
7400
7932
|
"name": "color",
|
|
@@ -7414,12 +7946,6 @@
|
|
|
7414
7946
|
"type": "React.ElementType",
|
|
7415
7947
|
"doc": "Render as a different element — typically `\"a\"` when the mark links home."
|
|
7416
7948
|
},
|
|
7417
|
-
{
|
|
7418
|
-
"name": "href",
|
|
7419
|
-
"optional": true,
|
|
7420
|
-
"type": "string",
|
|
7421
|
-
"doc": "Link target, when `as=\"a\"`."
|
|
7422
|
-
},
|
|
7423
7949
|
{
|
|
7424
7950
|
"name": "src",
|
|
7425
7951
|
"optional": true,
|
|
@@ -7439,7 +7965,7 @@
|
|
|
7439
7965
|
"members": []
|
|
7440
7966
|
}
|
|
7441
7967
|
],
|
|
7442
|
-
"usageExample":
|
|
7968
|
+
"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
7969
|
},
|
|
7444
7970
|
{
|
|
7445
7971
|
"name": "Chart",
|
|
@@ -7485,7 +8011,7 @@
|
|
|
7485
8011
|
]
|
|
7486
8012
|
}
|
|
7487
8013
|
],
|
|
7488
|
-
"usageExample":
|
|
8014
|
+
"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
8015
|
},
|
|
7490
8016
|
{
|
|
7491
8017
|
"name": "Sparkline",
|
|
@@ -7648,7 +8174,7 @@
|
|
|
7648
8174
|
]
|
|
7649
8175
|
}
|
|
7650
8176
|
],
|
|
7651
|
-
"usageExample":
|
|
8177
|
+
"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
8178
|
},
|
|
7653
8179
|
{
|
|
7654
8180
|
"name": "RichTextEditor",
|
|
@@ -7711,7 +8237,7 @@
|
|
|
7711
8237
|
]
|
|
7712
8238
|
}
|
|
7713
8239
|
],
|
|
7714
|
-
"usageExample":
|
|
8240
|
+
"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
8241
|
},
|
|
7716
8242
|
{
|
|
7717
8243
|
"name": "SortableList",
|
|
@@ -7766,7 +8292,7 @@
|
|
|
7766
8292
|
]
|
|
7767
8293
|
}
|
|
7768
8294
|
],
|
|
7769
|
-
"usageExample":
|
|
8295
|
+
"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
8296
|
},
|
|
7771
8297
|
{
|
|
7772
8298
|
"name": "ResizablePanels",
|
|
@@ -7781,7 +8307,7 @@
|
|
|
7781
8307
|
"members": []
|
|
7782
8308
|
}
|
|
7783
8309
|
],
|
|
7784
|
-
"usageExample":
|
|
8310
|
+
"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
8311
|
},
|
|
7786
8312
|
{
|
|
7787
8313
|
"name": "Button",
|
|
@@ -7791,7 +8317,7 @@
|
|
|
7791
8317
|
"icon": "button",
|
|
7792
8318
|
"container": false,
|
|
7793
8319
|
"behaviors": [],
|
|
7794
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
8320
|
+
"sourceFile": "silicaui-html/src/component.ts:627"
|
|
7795
8321
|
},
|
|
7796
8322
|
{
|
|
7797
8323
|
"name": "Image",
|
|
@@ -7801,7 +8327,7 @@
|
|
|
7801
8327
|
"icon": "image",
|
|
7802
8328
|
"container": false,
|
|
7803
8329
|
"behaviors": [],
|
|
7804
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
8330
|
+
"sourceFile": "silicaui-html/src/component.ts:647"
|
|
7805
8331
|
},
|
|
7806
8332
|
{
|
|
7807
8333
|
"name": "Video",
|
|
@@ -7811,7 +8337,7 @@
|
|
|
7811
8337
|
"icon": "video",
|
|
7812
8338
|
"container": false,
|
|
7813
8339
|
"behaviors": [],
|
|
7814
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
8340
|
+
"sourceFile": "silicaui-html/src/component.ts:670"
|
|
7815
8341
|
},
|
|
7816
8342
|
{
|
|
7817
8343
|
"name": "Embed",
|
|
@@ -7821,7 +8347,7 @@
|
|
|
7821
8347
|
"icon": "video",
|
|
7822
8348
|
"container": false,
|
|
7823
8349
|
"behaviors": [],
|
|
7824
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
8350
|
+
"sourceFile": "silicaui-html/src/component.ts:712"
|
|
7825
8351
|
},
|
|
7826
8352
|
{
|
|
7827
8353
|
"name": "Heading",
|
|
@@ -7831,7 +8357,7 @@
|
|
|
7831
8357
|
"icon": "heading",
|
|
7832
8358
|
"container": false,
|
|
7833
8359
|
"behaviors": [],
|
|
7834
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
8360
|
+
"sourceFile": "silicaui-html/src/component.ts:747"
|
|
7835
8361
|
},
|
|
7836
8362
|
{
|
|
7837
8363
|
"name": "Icon",
|
|
@@ -7841,7 +8367,7 @@
|
|
|
7841
8367
|
"icon": "box",
|
|
7842
8368
|
"container": false,
|
|
7843
8369
|
"behaviors": [],
|
|
7844
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
8370
|
+
"sourceFile": "silicaui-html/src/component.ts:759"
|
|
7845
8371
|
},
|
|
7846
8372
|
{
|
|
7847
8373
|
"name": "Divider",
|
|
@@ -7851,7 +8377,17 @@
|
|
|
7851
8377
|
"icon": "box",
|
|
7852
8378
|
"container": false,
|
|
7853
8379
|
"behaviors": [],
|
|
7854
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
8380
|
+
"sourceFile": "silicaui-html/src/component.ts:770"
|
|
8381
|
+
},
|
|
8382
|
+
{
|
|
8383
|
+
"name": "Link",
|
|
8384
|
+
"package": "@wizeworks/silicaui-html",
|
|
8385
|
+
"category": "nav",
|
|
8386
|
+
"label": "Link",
|
|
8387
|
+
"icon": "link",
|
|
8388
|
+
"container": true,
|
|
8389
|
+
"behaviors": [],
|
|
8390
|
+
"sourceFile": "silicaui-html/src/component.ts:774"
|
|
7855
8391
|
},
|
|
7856
8392
|
{
|
|
7857
8393
|
"name": "Input",
|
|
@@ -7861,7 +8397,27 @@
|
|
|
7861
8397
|
"icon": "input",
|
|
7862
8398
|
"container": false,
|
|
7863
8399
|
"behaviors": [],
|
|
7864
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
8400
|
+
"sourceFile": "silicaui-html/src/component.ts:793"
|
|
8401
|
+
},
|
|
8402
|
+
{
|
|
8403
|
+
"name": "FileInput",
|
|
8404
|
+
"package": "@wizeworks/silicaui-html",
|
|
8405
|
+
"category": "form",
|
|
8406
|
+
"label": "File input",
|
|
8407
|
+
"icon": "input",
|
|
8408
|
+
"container": false,
|
|
8409
|
+
"behaviors": [],
|
|
8410
|
+
"sourceFile": "silicaui-html/src/component.ts:805"
|
|
8411
|
+
},
|
|
8412
|
+
{
|
|
8413
|
+
"name": "FloatingLabel",
|
|
8414
|
+
"package": "@wizeworks/silicaui-html",
|
|
8415
|
+
"category": "form",
|
|
8416
|
+
"label": "Floating label",
|
|
8417
|
+
"icon": "label",
|
|
8418
|
+
"container": true,
|
|
8419
|
+
"behaviors": [],
|
|
8420
|
+
"sourceFile": "silicaui-html/src/component.ts:818"
|
|
7865
8421
|
},
|
|
7866
8422
|
{
|
|
7867
8423
|
"name": "Textarea",
|
|
@@ -7871,7 +8427,7 @@
|
|
|
7871
8427
|
"icon": "textarea",
|
|
7872
8428
|
"container": false,
|
|
7873
8429
|
"behaviors": [],
|
|
7874
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
8430
|
+
"sourceFile": "silicaui-html/src/component.ts:832"
|
|
7875
8431
|
},
|
|
7876
8432
|
{
|
|
7877
8433
|
"name": "Select",
|
|
@@ -7881,7 +8437,7 @@
|
|
|
7881
8437
|
"icon": "select",
|
|
7882
8438
|
"container": false,
|
|
7883
8439
|
"behaviors": [],
|
|
7884
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
8440
|
+
"sourceFile": "silicaui-html/src/component.ts:844"
|
|
7885
8441
|
},
|
|
7886
8442
|
{
|
|
7887
8443
|
"name": "Checkbox",
|
|
@@ -7889,9 +8445,9 @@
|
|
|
7889
8445
|
"category": "form",
|
|
7890
8446
|
"label": "Checkbox",
|
|
7891
8447
|
"icon": "checkbox",
|
|
7892
|
-
"container":
|
|
8448
|
+
"container": true,
|
|
7893
8449
|
"behaviors": [],
|
|
7894
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
8450
|
+
"sourceFile": "silicaui-html/src/component.ts:861"
|
|
7895
8451
|
},
|
|
7896
8452
|
{
|
|
7897
8453
|
"name": "Radio",
|
|
@@ -7899,9 +8455,9 @@
|
|
|
7899
8455
|
"category": "form",
|
|
7900
8456
|
"label": "Radio",
|
|
7901
8457
|
"icon": "radio",
|
|
7902
|
-
"container":
|
|
8458
|
+
"container": true,
|
|
7903
8459
|
"behaviors": [],
|
|
7904
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
8460
|
+
"sourceFile": "silicaui-html/src/component.ts:869"
|
|
7905
8461
|
},
|
|
7906
8462
|
{
|
|
7907
8463
|
"name": "Toggle",
|
|
@@ -7909,9 +8465,9 @@
|
|
|
7909
8465
|
"category": "form",
|
|
7910
8466
|
"label": "Toggle",
|
|
7911
8467
|
"icon": "toggle",
|
|
7912
|
-
"container":
|
|
8468
|
+
"container": true,
|
|
7913
8469
|
"behaviors": [],
|
|
7914
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
8470
|
+
"sourceFile": "silicaui-html/src/component.ts:877"
|
|
7915
8471
|
},
|
|
7916
8472
|
{
|
|
7917
8473
|
"name": "Text",
|
|
@@ -7941,7 +8497,7 @@
|
|
|
7941
8497
|
"icon": "wordmark",
|
|
7942
8498
|
"container": true,
|
|
7943
8499
|
"behaviors": [],
|
|
7944
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
8500
|
+
"sourceFile": "silicaui-html/src/component.ts:898"
|
|
7945
8501
|
},
|
|
7946
8502
|
{
|
|
7947
8503
|
"name": "Card",
|
|
@@ -7953,6 +8509,16 @@
|
|
|
7953
8509
|
"behaviors": [],
|
|
7954
8510
|
"sourceFile": "silicaui-html/src/component.ts"
|
|
7955
8511
|
},
|
|
8512
|
+
{
|
|
8513
|
+
"name": "SelectableCard",
|
|
8514
|
+
"package": "@wizeworks/silicaui-html",
|
|
8515
|
+
"category": "form",
|
|
8516
|
+
"label": "Selectable card",
|
|
8517
|
+
"icon": "box",
|
|
8518
|
+
"container": true,
|
|
8519
|
+
"behaviors": [],
|
|
8520
|
+
"sourceFile": "silicaui-html/src/component.ts:933"
|
|
8521
|
+
},
|
|
7956
8522
|
{
|
|
7957
8523
|
"name": "Section",
|
|
7958
8524
|
"package": "@wizeworks/silicaui-html",
|
|
@@ -8073,7 +8639,7 @@
|
|
|
8073
8639
|
"behaviors": [
|
|
8074
8640
|
"form"
|
|
8075
8641
|
],
|
|
8076
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
8642
|
+
"sourceFile": "silicaui-html/src/component.ts:971"
|
|
8077
8643
|
},
|
|
8078
8644
|
{
|
|
8079
8645
|
"name": "Sidebar",
|
|
@@ -8085,7 +8651,7 @@
|
|
|
8085
8651
|
"behaviors": [
|
|
8086
8652
|
"sidebar"
|
|
8087
8653
|
],
|
|
8088
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
8654
|
+
"sourceFile": "silicaui-html/src/component.ts:990"
|
|
8089
8655
|
},
|
|
8090
8656
|
{
|
|
8091
8657
|
"name": "SidebarTrigger",
|
|
@@ -8095,7 +8661,7 @@
|
|
|
8095
8661
|
"icon": "sidebarTrigger",
|
|
8096
8662
|
"container": false,
|
|
8097
8663
|
"behaviors": [],
|
|
8098
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
8664
|
+
"sourceFile": "silicaui-html/src/component.ts:1011"
|
|
8099
8665
|
},
|
|
8100
8666
|
{
|
|
8101
8667
|
"name": "SelectionList",
|
|
@@ -8107,7 +8673,7 @@
|
|
|
8107
8673
|
"behaviors": [
|
|
8108
8674
|
"selection-list"
|
|
8109
8675
|
],
|
|
8110
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
8676
|
+
"sourceFile": "silicaui-html/src/component.ts:1028"
|
|
8111
8677
|
},
|
|
8112
8678
|
{
|
|
8113
8679
|
"name": "Breadcrumb",
|
|
@@ -8117,7 +8683,7 @@
|
|
|
8117
8683
|
"icon": "breadcrumb",
|
|
8118
8684
|
"container": false,
|
|
8119
8685
|
"behaviors": [],
|
|
8120
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
8686
|
+
"sourceFile": "silicaui-html/src/component.ts:1087"
|
|
8121
8687
|
},
|
|
8122
8688
|
{
|
|
8123
8689
|
"name": "Menu",
|
|
@@ -8127,7 +8693,7 @@
|
|
|
8127
8693
|
"icon": "nav",
|
|
8128
8694
|
"container": false,
|
|
8129
8695
|
"behaviors": [],
|
|
8130
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
8696
|
+
"sourceFile": "silicaui-html/src/component.ts:1104"
|
|
8131
8697
|
},
|
|
8132
8698
|
{
|
|
8133
8699
|
"name": "Steps",
|
|
@@ -8137,7 +8703,7 @@
|
|
|
8137
8703
|
"icon": "steps",
|
|
8138
8704
|
"container": false,
|
|
8139
8705
|
"behaviors": [],
|
|
8140
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
8706
|
+
"sourceFile": "silicaui-html/src/component.ts:1118"
|
|
8141
8707
|
},
|
|
8142
8708
|
{
|
|
8143
8709
|
"name": "Pagination",
|
|
@@ -8147,7 +8713,7 @@
|
|
|
8147
8713
|
"icon": "pagination",
|
|
8148
8714
|
"container": false,
|
|
8149
8715
|
"behaviors": [],
|
|
8150
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
8716
|
+
"sourceFile": "silicaui-html/src/component.ts:1133"
|
|
8151
8717
|
},
|
|
8152
8718
|
{
|
|
8153
8719
|
"name": "Alert",
|
|
@@ -8157,7 +8723,7 @@
|
|
|
8157
8723
|
"icon": "warning",
|
|
8158
8724
|
"container": false,
|
|
8159
8725
|
"behaviors": [],
|
|
8160
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
8726
|
+
"sourceFile": "silicaui-html/src/component.ts:1154"
|
|
8161
8727
|
},
|
|
8162
8728
|
{
|
|
8163
8729
|
"name": "Progress",
|
|
@@ -8167,7 +8733,7 @@
|
|
|
8167
8733
|
"icon": "progress",
|
|
8168
8734
|
"container": false,
|
|
8169
8735
|
"behaviors": [],
|
|
8170
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
8736
|
+
"sourceFile": "silicaui-html/src/component.ts:1185"
|
|
8171
8737
|
},
|
|
8172
8738
|
{
|
|
8173
8739
|
"name": "Stat",
|
|
@@ -8177,7 +8743,7 @@
|
|
|
8177
8743
|
"icon": "stat",
|
|
8178
8744
|
"container": false,
|
|
8179
8745
|
"behaviors": [],
|
|
8180
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
8746
|
+
"sourceFile": "silicaui-html/src/component.ts:1198"
|
|
8181
8747
|
},
|
|
8182
8748
|
{
|
|
8183
8749
|
"name": "Avatar",
|
|
@@ -8187,7 +8753,7 @@
|
|
|
8187
8753
|
"icon": "avatar",
|
|
8188
8754
|
"container": false,
|
|
8189
8755
|
"behaviors": [],
|
|
8190
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
8756
|
+
"sourceFile": "silicaui-html/src/component.ts:1213"
|
|
8191
8757
|
},
|
|
8192
8758
|
{
|
|
8193
8759
|
"name": "Collapse",
|
|
@@ -8197,7 +8763,7 @@
|
|
|
8197
8763
|
"icon": "collapse",
|
|
8198
8764
|
"container": false,
|
|
8199
8765
|
"behaviors": [],
|
|
8200
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
8766
|
+
"sourceFile": "silicaui-html/src/component.ts:1235"
|
|
8201
8767
|
},
|
|
8202
8768
|
{
|
|
8203
8769
|
"name": "Timeline",
|
|
@@ -8207,7 +8773,7 @@
|
|
|
8207
8773
|
"icon": "timeline",
|
|
8208
8774
|
"container": false,
|
|
8209
8775
|
"behaviors": [],
|
|
8210
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
8776
|
+
"sourceFile": "silicaui-html/src/component.ts:1251"
|
|
8211
8777
|
},
|
|
8212
8778
|
{
|
|
8213
8779
|
"name": "Label",
|
|
@@ -8247,7 +8813,7 @@
|
|
|
8247
8813
|
"icon": "text",
|
|
8248
8814
|
"container": true,
|
|
8249
8815
|
"behaviors": [],
|
|
8250
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
8816
|
+
"sourceFile": "silicaui-html/src/component.ts:1281"
|
|
8251
8817
|
},
|
|
8252
8818
|
{
|
|
8253
8819
|
"name": "Hero",
|
|
@@ -8309,6 +8875,16 @@
|
|
|
8309
8875
|
"behaviors": [],
|
|
8310
8876
|
"sourceFile": "silicaui-html/src/component.ts"
|
|
8311
8877
|
},
|
|
8878
|
+
{
|
|
8879
|
+
"name": "MockupCodeLine",
|
|
8880
|
+
"package": "@wizeworks/silicaui-html",
|
|
8881
|
+
"category": "media",
|
|
8882
|
+
"label": "Code line",
|
|
8883
|
+
"icon": "box",
|
|
8884
|
+
"container": true,
|
|
8885
|
+
"behaviors": [],
|
|
8886
|
+
"sourceFile": "silicaui-html/src/component.ts:1297"
|
|
8887
|
+
},
|
|
8312
8888
|
{
|
|
8313
8889
|
"name": "MockupPhone",
|
|
8314
8890
|
"package": "@wizeworks/silicaui-html",
|
|
@@ -8497,7 +9073,7 @@
|
|
|
8497
9073
|
"icon": "box",
|
|
8498
9074
|
"container": true,
|
|
8499
9075
|
"behaviors": [],
|
|
8500
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9076
|
+
"sourceFile": "silicaui-html/src/component.ts:1329"
|
|
8501
9077
|
},
|
|
8502
9078
|
{
|
|
8503
9079
|
"name": "ToolbarCenter",
|
|
@@ -8517,7 +9093,7 @@
|
|
|
8517
9093
|
"icon": "sidebarTrigger",
|
|
8518
9094
|
"container": true,
|
|
8519
9095
|
"behaviors": [],
|
|
8520
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9096
|
+
"sourceFile": "silicaui-html/src/component.ts:1350"
|
|
8521
9097
|
},
|
|
8522
9098
|
{
|
|
8523
9099
|
"name": "InputGroupButton",
|
|
@@ -8527,7 +9103,7 @@
|
|
|
8527
9103
|
"icon": "button",
|
|
8528
9104
|
"container": true,
|
|
8529
9105
|
"behaviors": [],
|
|
8530
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9106
|
+
"sourceFile": "silicaui-html/src/component.ts:1358"
|
|
8531
9107
|
},
|
|
8532
9108
|
{
|
|
8533
9109
|
"name": "ToolbarButton",
|
|
@@ -8537,7 +9113,7 @@
|
|
|
8537
9113
|
"icon": "button",
|
|
8538
9114
|
"container": true,
|
|
8539
9115
|
"behaviors": [],
|
|
8540
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9116
|
+
"sourceFile": "silicaui-html/src/component.ts:1366"
|
|
8541
9117
|
},
|
|
8542
9118
|
{
|
|
8543
9119
|
"name": "ToolbarLink",
|
|
@@ -8547,7 +9123,7 @@
|
|
|
8547
9123
|
"icon": "nav",
|
|
8548
9124
|
"container": true,
|
|
8549
9125
|
"behaviors": [],
|
|
8550
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9126
|
+
"sourceFile": "silicaui-html/src/component.ts:1374"
|
|
8551
9127
|
},
|
|
8552
9128
|
{
|
|
8553
9129
|
"name": "ToolbarSeparator",
|
|
@@ -8557,7 +9133,7 @@
|
|
|
8557
9133
|
"icon": "box",
|
|
8558
9134
|
"container": false,
|
|
8559
9135
|
"behaviors": [],
|
|
8560
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9136
|
+
"sourceFile": "silicaui-html/src/component.ts:1382"
|
|
8561
9137
|
},
|
|
8562
9138
|
{
|
|
8563
9139
|
"name": "ClickableCard",
|
|
@@ -8567,7 +9143,7 @@
|
|
|
8567
9143
|
"icon": "box",
|
|
8568
9144
|
"container": true,
|
|
8569
9145
|
"behaviors": [],
|
|
8570
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9146
|
+
"sourceFile": "silicaui-html/src/component.ts:1391"
|
|
8571
9147
|
},
|
|
8572
9148
|
{
|
|
8573
9149
|
"name": "SearchInput",
|
|
@@ -8577,7 +9153,7 @@
|
|
|
8577
9153
|
"icon": "input",
|
|
8578
9154
|
"container": false,
|
|
8579
9155
|
"behaviors": [],
|
|
8580
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9156
|
+
"sourceFile": "silicaui-html/src/component.ts:1407"
|
|
8581
9157
|
},
|
|
8582
9158
|
{
|
|
8583
9159
|
"name": "PasswordInput",
|
|
@@ -8587,7 +9163,7 @@
|
|
|
8587
9163
|
"icon": "input",
|
|
8588
9164
|
"container": false,
|
|
8589
9165
|
"behaviors": [],
|
|
8590
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9166
|
+
"sourceFile": "silicaui-html/src/component.ts:1414"
|
|
8591
9167
|
},
|
|
8592
9168
|
{
|
|
8593
9169
|
"name": "CheckboxGroup",
|
|
@@ -8597,7 +9173,7 @@
|
|
|
8597
9173
|
"icon": "checkbox",
|
|
8598
9174
|
"container": true,
|
|
8599
9175
|
"behaviors": [],
|
|
8600
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9176
|
+
"sourceFile": "silicaui-html/src/component.ts:1424"
|
|
8601
9177
|
},
|
|
8602
9178
|
{
|
|
8603
9179
|
"name": "CheckboxOption",
|
|
@@ -8607,7 +9183,7 @@
|
|
|
8607
9183
|
"icon": "checkbox",
|
|
8608
9184
|
"container": true,
|
|
8609
9185
|
"behaviors": [],
|
|
8610
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9186
|
+
"sourceFile": "silicaui-html/src/component.ts:1432"
|
|
8611
9187
|
},
|
|
8612
9188
|
{
|
|
8613
9189
|
"name": "Swap",
|
|
@@ -8617,7 +9193,7 @@
|
|
|
8617
9193
|
"icon": "box",
|
|
8618
9194
|
"container": true,
|
|
8619
9195
|
"behaviors": [],
|
|
8620
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9196
|
+
"sourceFile": "silicaui-html/src/component.ts:1444"
|
|
8621
9197
|
},
|
|
8622
9198
|
{
|
|
8623
9199
|
"name": "Display",
|
|
@@ -8627,7 +9203,7 @@
|
|
|
8627
9203
|
"icon": "heading",
|
|
8628
9204
|
"container": false,
|
|
8629
9205
|
"behaviors": [],
|
|
8630
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9206
|
+
"sourceFile": "silicaui-html/src/component.ts:1458"
|
|
8631
9207
|
},
|
|
8632
9208
|
{
|
|
8633
9209
|
"name": "Timestamp",
|
|
@@ -8637,7 +9213,7 @@
|
|
|
8637
9213
|
"icon": "box",
|
|
8638
9214
|
"container": false,
|
|
8639
9215
|
"behaviors": [],
|
|
8640
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9216
|
+
"sourceFile": "silicaui-html/src/component.ts:1473"
|
|
8641
9217
|
},
|
|
8642
9218
|
{
|
|
8643
9219
|
"name": "EmptyState",
|
|
@@ -8647,7 +9223,7 @@
|
|
|
8647
9223
|
"icon": "box",
|
|
8648
9224
|
"container": false,
|
|
8649
9225
|
"behaviors": [],
|
|
8650
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9226
|
+
"sourceFile": "silicaui-html/src/component.ts:1507"
|
|
8651
9227
|
},
|
|
8652
9228
|
{
|
|
8653
9229
|
"name": "RadioGroup",
|
|
@@ -8657,7 +9233,7 @@
|
|
|
8657
9233
|
"icon": "radio",
|
|
8658
9234
|
"container": true,
|
|
8659
9235
|
"behaviors": [],
|
|
8660
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9236
|
+
"sourceFile": "silicaui-html/src/component.ts:1526"
|
|
8661
9237
|
},
|
|
8662
9238
|
{
|
|
8663
9239
|
"name": "RadioOption",
|
|
@@ -8667,7 +9243,7 @@
|
|
|
8667
9243
|
"icon": "radio",
|
|
8668
9244
|
"container": true,
|
|
8669
9245
|
"behaviors": [],
|
|
8670
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9246
|
+
"sourceFile": "silicaui-html/src/component.ts:1534"
|
|
8671
9247
|
},
|
|
8672
9248
|
{
|
|
8673
9249
|
"name": "Stats",
|
|
@@ -8687,7 +9263,7 @@
|
|
|
8687
9263
|
"icon": "progress",
|
|
8688
9264
|
"container": false,
|
|
8689
9265
|
"behaviors": [],
|
|
8690
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9266
|
+
"sourceFile": "silicaui-html/src/component.ts:1547"
|
|
8691
9267
|
},
|
|
8692
9268
|
{
|
|
8693
9269
|
"name": "RadialProgress",
|
|
@@ -8697,7 +9273,7 @@
|
|
|
8697
9273
|
"icon": "progress",
|
|
8698
9274
|
"container": false,
|
|
8699
9275
|
"behaviors": [],
|
|
8700
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9276
|
+
"sourceFile": "silicaui-html/src/component.ts:1561"
|
|
8701
9277
|
},
|
|
8702
9278
|
{
|
|
8703
9279
|
"name": "Accordion",
|
|
@@ -8709,7 +9285,7 @@
|
|
|
8709
9285
|
"behaviors": [
|
|
8710
9286
|
"disclosure"
|
|
8711
9287
|
],
|
|
8712
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9288
|
+
"sourceFile": "silicaui-html/src/component.ts:1594"
|
|
8713
9289
|
},
|
|
8714
9290
|
{
|
|
8715
9291
|
"name": "AccordionItem",
|
|
@@ -8729,7 +9305,7 @@
|
|
|
8729
9305
|
"icon": "collapse",
|
|
8730
9306
|
"container": true,
|
|
8731
9307
|
"behaviors": [],
|
|
8732
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9308
|
+
"sourceFile": "silicaui-html/src/component.ts:1610"
|
|
8733
9309
|
},
|
|
8734
9310
|
{
|
|
8735
9311
|
"name": "AccordionPanel",
|
|
@@ -8739,7 +9315,7 @@
|
|
|
8739
9315
|
"icon": "collapse",
|
|
8740
9316
|
"container": true,
|
|
8741
9317
|
"behaviors": [],
|
|
8742
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9318
|
+
"sourceFile": "silicaui-html/src/component.ts:1622"
|
|
8743
9319
|
},
|
|
8744
9320
|
{
|
|
8745
9321
|
"name": "Collapsible",
|
|
@@ -8751,7 +9327,7 @@
|
|
|
8751
9327
|
"behaviors": [
|
|
8752
9328
|
"disclosure"
|
|
8753
9329
|
],
|
|
8754
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9330
|
+
"sourceFile": "silicaui-html/src/component.ts:1638"
|
|
8755
9331
|
},
|
|
8756
9332
|
{
|
|
8757
9333
|
"name": "CollapsibleTrigger",
|
|
@@ -8761,7 +9337,7 @@
|
|
|
8761
9337
|
"icon": "collapse",
|
|
8762
9338
|
"container": true,
|
|
8763
9339
|
"behaviors": [],
|
|
8764
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9340
|
+
"sourceFile": "silicaui-html/src/component.ts:1650"
|
|
8765
9341
|
},
|
|
8766
9342
|
{
|
|
8767
9343
|
"name": "CollapsiblePanel",
|
|
@@ -8771,7 +9347,199 @@
|
|
|
8771
9347
|
"icon": "collapse",
|
|
8772
9348
|
"container": true,
|
|
8773
9349
|
"behaviors": [],
|
|
8774
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9350
|
+
"sourceFile": "silicaui-html/src/component.ts:1662"
|
|
9351
|
+
},
|
|
9352
|
+
{
|
|
9353
|
+
"name": "ColorPicker",
|
|
9354
|
+
"package": "@wizeworks/silicaui-html",
|
|
9355
|
+
"category": "form",
|
|
9356
|
+
"label": "Color picker",
|
|
9357
|
+
"icon": "box",
|
|
9358
|
+
"container": false,
|
|
9359
|
+
"behaviors": [
|
|
9360
|
+
"color-picker"
|
|
9361
|
+
],
|
|
9362
|
+
"sourceFile": "silicaui-html/src/component.ts:1681"
|
|
9363
|
+
},
|
|
9364
|
+
{
|
|
9365
|
+
"name": "TagInput",
|
|
9366
|
+
"package": "@wizeworks/silicaui-html",
|
|
9367
|
+
"category": "form",
|
|
9368
|
+
"label": "Tag input",
|
|
9369
|
+
"icon": "input",
|
|
9370
|
+
"container": false,
|
|
9371
|
+
"behaviors": [
|
|
9372
|
+
"tag-input"
|
|
9373
|
+
],
|
|
9374
|
+
"sourceFile": "silicaui-html/src/component.ts:1767"
|
|
9375
|
+
},
|
|
9376
|
+
{
|
|
9377
|
+
"name": "Countdown",
|
|
9378
|
+
"package": "@wizeworks/silicaui-html",
|
|
9379
|
+
"category": "data",
|
|
9380
|
+
"label": "Countdown",
|
|
9381
|
+
"icon": "box",
|
|
9382
|
+
"container": false,
|
|
9383
|
+
"behaviors": [
|
|
9384
|
+
"countdown"
|
|
9385
|
+
],
|
|
9386
|
+
"sourceFile": "silicaui-html/src/component.ts:1840"
|
|
9387
|
+
},
|
|
9388
|
+
{
|
|
9389
|
+
"name": "Filter",
|
|
9390
|
+
"package": "@wizeworks/silicaui-html",
|
|
9391
|
+
"category": "form",
|
|
9392
|
+
"label": "Filter chips",
|
|
9393
|
+
"icon": "box",
|
|
9394
|
+
"container": true,
|
|
9395
|
+
"behaviors": [
|
|
9396
|
+
"toggle-group"
|
|
9397
|
+
],
|
|
9398
|
+
"sourceFile": "silicaui-html/src/component.ts:1893"
|
|
9399
|
+
},
|
|
9400
|
+
{
|
|
9401
|
+
"name": "FilterItem",
|
|
9402
|
+
"package": "@wizeworks/silicaui-html",
|
|
9403
|
+
"category": "form",
|
|
9404
|
+
"label": "Filter chip",
|
|
9405
|
+
"icon": "box",
|
|
9406
|
+
"container": true,
|
|
9407
|
+
"behaviors": [],
|
|
9408
|
+
"sourceFile": "silicaui-html/src/component.ts:1915"
|
|
9409
|
+
},
|
|
9410
|
+
{
|
|
9411
|
+
"name": "ChatImage",
|
|
9412
|
+
"package": "@wizeworks/silicaui-html",
|
|
9413
|
+
"category": "data",
|
|
9414
|
+
"label": "ChatImage",
|
|
9415
|
+
"icon": "box",
|
|
9416
|
+
"container": true,
|
|
9417
|
+
"behaviors": [],
|
|
9418
|
+
"sourceFile": "silicaui-html/src/component.ts"
|
|
9419
|
+
},
|
|
9420
|
+
{
|
|
9421
|
+
"name": "ChatHeader",
|
|
9422
|
+
"package": "@wizeworks/silicaui-html",
|
|
9423
|
+
"category": "data",
|
|
9424
|
+
"label": "ChatHeader",
|
|
9425
|
+
"icon": "box",
|
|
9426
|
+
"container": true,
|
|
9427
|
+
"behaviors": [],
|
|
9428
|
+
"sourceFile": "silicaui-html/src/component.ts"
|
|
9429
|
+
},
|
|
9430
|
+
{
|
|
9431
|
+
"name": "ChatFooter",
|
|
9432
|
+
"package": "@wizeworks/silicaui-html",
|
|
9433
|
+
"category": "data",
|
|
9434
|
+
"label": "ChatFooter",
|
|
9435
|
+
"icon": "box",
|
|
9436
|
+
"container": true,
|
|
9437
|
+
"behaviors": [],
|
|
9438
|
+
"sourceFile": "silicaui-html/src/component.ts"
|
|
9439
|
+
},
|
|
9440
|
+
{
|
|
9441
|
+
"name": "ChatBubble",
|
|
9442
|
+
"package": "@wizeworks/silicaui-html",
|
|
9443
|
+
"category": "data",
|
|
9444
|
+
"label": "ChatBubble",
|
|
9445
|
+
"icon": "box",
|
|
9446
|
+
"container": true,
|
|
9447
|
+
"behaviors": [],
|
|
9448
|
+
"sourceFile": "silicaui-html/src/component.ts"
|
|
9449
|
+
},
|
|
9450
|
+
{
|
|
9451
|
+
"name": "ChatLayout",
|
|
9452
|
+
"package": "@wizeworks/silicaui-html",
|
|
9453
|
+
"category": "data",
|
|
9454
|
+
"label": "ChatLayout",
|
|
9455
|
+
"icon": "box",
|
|
9456
|
+
"container": true,
|
|
9457
|
+
"behaviors": [],
|
|
9458
|
+
"sourceFile": "silicaui-html/src/component.ts"
|
|
9459
|
+
},
|
|
9460
|
+
{
|
|
9461
|
+
"name": "ChatLayoutMessages",
|
|
9462
|
+
"package": "@wizeworks/silicaui-html",
|
|
9463
|
+
"category": "data",
|
|
9464
|
+
"label": "ChatLayoutMessages",
|
|
9465
|
+
"icon": "box",
|
|
9466
|
+
"container": true,
|
|
9467
|
+
"behaviors": [],
|
|
9468
|
+
"sourceFile": "silicaui-html/src/component.ts"
|
|
9469
|
+
},
|
|
9470
|
+
{
|
|
9471
|
+
"name": "ChatMessageMetadata",
|
|
9472
|
+
"package": "@wizeworks/silicaui-html",
|
|
9473
|
+
"category": "data",
|
|
9474
|
+
"label": "ChatMessageMetadata",
|
|
9475
|
+
"icon": "box",
|
|
9476
|
+
"container": true,
|
|
9477
|
+
"behaviors": [],
|
|
9478
|
+
"sourceFile": "silicaui-html/src/component.ts"
|
|
9479
|
+
},
|
|
9480
|
+
{
|
|
9481
|
+
"name": "Chat",
|
|
9482
|
+
"package": "@wizeworks/silicaui-html",
|
|
9483
|
+
"category": "data",
|
|
9484
|
+
"label": "Chat row",
|
|
9485
|
+
"icon": "box",
|
|
9486
|
+
"container": true,
|
|
9487
|
+
"behaviors": [],
|
|
9488
|
+
"sourceFile": "silicaui-html/src/component.ts:1956"
|
|
9489
|
+
},
|
|
9490
|
+
{
|
|
9491
|
+
"name": "ChatSystemMessage",
|
|
9492
|
+
"package": "@wizeworks/silicaui-html",
|
|
9493
|
+
"category": "data",
|
|
9494
|
+
"label": "Chat system message",
|
|
9495
|
+
"icon": "box",
|
|
9496
|
+
"container": true,
|
|
9497
|
+
"behaviors": [],
|
|
9498
|
+
"sourceFile": "silicaui-html/src/component.ts:1971"
|
|
9499
|
+
},
|
|
9500
|
+
{
|
|
9501
|
+
"name": "ChatMessage",
|
|
9502
|
+
"package": "@wizeworks/silicaui-html",
|
|
9503
|
+
"category": "data",
|
|
9504
|
+
"label": "Chat message",
|
|
9505
|
+
"icon": "box",
|
|
9506
|
+
"container": true,
|
|
9507
|
+
"behaviors": [],
|
|
9508
|
+
"sourceFile": "silicaui-html/src/component.ts:1988"
|
|
9509
|
+
},
|
|
9510
|
+
{
|
|
9511
|
+
"name": "ChatTypingIndicator",
|
|
9512
|
+
"package": "@wizeworks/silicaui-html",
|
|
9513
|
+
"category": "data",
|
|
9514
|
+
"label": "Chat typing indicator",
|
|
9515
|
+
"icon": "box",
|
|
9516
|
+
"container": true,
|
|
9517
|
+
"behaviors": [],
|
|
9518
|
+
"sourceFile": "silicaui-html/src/component.ts:2021"
|
|
9519
|
+
},
|
|
9520
|
+
{
|
|
9521
|
+
"name": "ChatToolCalls",
|
|
9522
|
+
"package": "@wizeworks/silicaui-html",
|
|
9523
|
+
"category": "data",
|
|
9524
|
+
"label": "Chat tool calls",
|
|
9525
|
+
"icon": "collapse",
|
|
9526
|
+
"container": true,
|
|
9527
|
+
"behaviors": [
|
|
9528
|
+
"disclosure"
|
|
9529
|
+
],
|
|
9530
|
+
"sourceFile": "silicaui-html/src/component.ts:2047"
|
|
9531
|
+
},
|
|
9532
|
+
{
|
|
9533
|
+
"name": "ChatComposer",
|
|
9534
|
+
"package": "@wizeworks/silicaui-html",
|
|
9535
|
+
"category": "form",
|
|
9536
|
+
"label": "Chat composer",
|
|
9537
|
+
"icon": "textarea",
|
|
9538
|
+
"container": true,
|
|
9539
|
+
"behaviors": [
|
|
9540
|
+
"form"
|
|
9541
|
+
],
|
|
9542
|
+
"sourceFile": "silicaui-html/src/component.ts:2074"
|
|
8775
9543
|
},
|
|
8776
9544
|
{
|
|
8777
9545
|
"name": "Carousel",
|
|
@@ -8783,7 +9551,7 @@
|
|
|
8783
9551
|
"behaviors": [
|
|
8784
9552
|
"carousel"
|
|
8785
9553
|
],
|
|
8786
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9554
|
+
"sourceFile": "silicaui-html/src/component.ts:2109"
|
|
8787
9555
|
},
|
|
8788
9556
|
{
|
|
8789
9557
|
"name": "CarouselItem",
|
|
@@ -8793,7 +9561,7 @@
|
|
|
8793
9561
|
"icon": "box",
|
|
8794
9562
|
"container": true,
|
|
8795
9563
|
"behaviors": [],
|
|
8796
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9564
|
+
"sourceFile": "silicaui-html/src/component.ts:2143"
|
|
8797
9565
|
},
|
|
8798
9566
|
{
|
|
8799
9567
|
"name": "DropdownMenu",
|
|
@@ -8805,7 +9573,7 @@
|
|
|
8805
9573
|
"behaviors": [
|
|
8806
9574
|
"menu"
|
|
8807
9575
|
],
|
|
8808
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9576
|
+
"sourceFile": "silicaui-html/src/component.ts:2160"
|
|
8809
9577
|
},
|
|
8810
9578
|
{
|
|
8811
9579
|
"name": "DropdownMenuTrigger",
|
|
@@ -8815,7 +9583,7 @@
|
|
|
8815
9583
|
"icon": "nav",
|
|
8816
9584
|
"container": true,
|
|
8817
9585
|
"behaviors": [],
|
|
8818
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9586
|
+
"sourceFile": "silicaui-html/src/component.ts:2172"
|
|
8819
9587
|
},
|
|
8820
9588
|
{
|
|
8821
9589
|
"name": "DropdownMenuContent",
|
|
@@ -8825,7 +9593,7 @@
|
|
|
8825
9593
|
"icon": "nav",
|
|
8826
9594
|
"container": true,
|
|
8827
9595
|
"behaviors": [],
|
|
8828
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9596
|
+
"sourceFile": "silicaui-html/src/component.ts:2184"
|
|
8829
9597
|
},
|
|
8830
9598
|
{
|
|
8831
9599
|
"name": "DropdownMenuItem",
|
|
@@ -8835,7 +9603,7 @@
|
|
|
8835
9603
|
"icon": "nav",
|
|
8836
9604
|
"container": true,
|
|
8837
9605
|
"behaviors": [],
|
|
8838
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9606
|
+
"sourceFile": "silicaui-html/src/component.ts:2198"
|
|
8839
9607
|
},
|
|
8840
9608
|
{
|
|
8841
9609
|
"name": "Tabs",
|
|
@@ -8847,7 +9615,7 @@
|
|
|
8847
9615
|
"behaviors": [
|
|
8848
9616
|
"tabs"
|
|
8849
9617
|
],
|
|
8850
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9618
|
+
"sourceFile": "silicaui-html/src/component.ts:2213"
|
|
8851
9619
|
},
|
|
8852
9620
|
{
|
|
8853
9621
|
"name": "TabsList",
|
|
@@ -8857,7 +9625,7 @@
|
|
|
8857
9625
|
"icon": "box",
|
|
8858
9626
|
"container": true,
|
|
8859
9627
|
"behaviors": [],
|
|
8860
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9628
|
+
"sourceFile": "silicaui-html/src/component.ts:2229"
|
|
8861
9629
|
},
|
|
8862
9630
|
{
|
|
8863
9631
|
"name": "TabsTab",
|
|
@@ -8867,7 +9635,7 @@
|
|
|
8867
9635
|
"icon": "box",
|
|
8868
9636
|
"container": true,
|
|
8869
9637
|
"behaviors": [],
|
|
8870
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9638
|
+
"sourceFile": "silicaui-html/src/component.ts:2237"
|
|
8871
9639
|
},
|
|
8872
9640
|
{
|
|
8873
9641
|
"name": "TabsPanel",
|
|
@@ -8877,7 +9645,7 @@
|
|
|
8877
9645
|
"icon": "box",
|
|
8878
9646
|
"container": true,
|
|
8879
9647
|
"behaviors": [],
|
|
8880
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9648
|
+
"sourceFile": "silicaui-html/src/component.ts:2249"
|
|
8881
9649
|
},
|
|
8882
9650
|
{
|
|
8883
9651
|
"name": "Outline",
|
|
@@ -8889,7 +9657,7 @@
|
|
|
8889
9657
|
"behaviors": [
|
|
8890
9658
|
"toc"
|
|
8891
9659
|
],
|
|
8892
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9660
|
+
"sourceFile": "silicaui-html/src/component.ts:2266"
|
|
8893
9661
|
},
|
|
8894
9662
|
{
|
|
8895
9663
|
"name": "Dialog",
|
|
@@ -8901,7 +9669,7 @@
|
|
|
8901
9669
|
"behaviors": [
|
|
8902
9670
|
"modal"
|
|
8903
9671
|
],
|
|
8904
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9672
|
+
"sourceFile": "silicaui-html/src/component.ts:2299"
|
|
8905
9673
|
},
|
|
8906
9674
|
{
|
|
8907
9675
|
"name": "DialogTrigger",
|
|
@@ -8911,7 +9679,7 @@
|
|
|
8911
9679
|
"icon": "button",
|
|
8912
9680
|
"container": true,
|
|
8913
9681
|
"behaviors": [],
|
|
8914
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9682
|
+
"sourceFile": "silicaui-html/src/component.ts:2311"
|
|
8915
9683
|
},
|
|
8916
9684
|
{
|
|
8917
9685
|
"name": "DialogBackdrop",
|
|
@@ -8921,7 +9689,7 @@
|
|
|
8921
9689
|
"icon": "box",
|
|
8922
9690
|
"container": false,
|
|
8923
9691
|
"behaviors": [],
|
|
8924
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9692
|
+
"sourceFile": "silicaui-html/src/component.ts:2323"
|
|
8925
9693
|
},
|
|
8926
9694
|
{
|
|
8927
9695
|
"name": "DialogContent",
|
|
@@ -8931,7 +9699,7 @@
|
|
|
8931
9699
|
"icon": "box",
|
|
8932
9700
|
"container": true,
|
|
8933
9701
|
"behaviors": [],
|
|
8934
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9702
|
+
"sourceFile": "silicaui-html/src/component.ts:2334"
|
|
8935
9703
|
},
|
|
8936
9704
|
{
|
|
8937
9705
|
"name": "DialogClose",
|
|
@@ -8941,7 +9709,7 @@
|
|
|
8941
9709
|
"icon": "button",
|
|
8942
9710
|
"container": true,
|
|
8943
9711
|
"behaviors": [],
|
|
8944
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9712
|
+
"sourceFile": "silicaui-html/src/component.ts:2349"
|
|
8945
9713
|
},
|
|
8946
9714
|
{
|
|
8947
9715
|
"name": "DialogTitle",
|
|
@@ -8973,7 +9741,7 @@
|
|
|
8973
9741
|
"behaviors": [
|
|
8974
9742
|
"modal"
|
|
8975
9743
|
],
|
|
8976
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9744
|
+
"sourceFile": "silicaui-html/src/component.ts:2367"
|
|
8977
9745
|
},
|
|
8978
9746
|
{
|
|
8979
9747
|
"name": "DrawerTrigger",
|
|
@@ -8983,7 +9751,7 @@
|
|
|
8983
9751
|
"icon": "button",
|
|
8984
9752
|
"container": true,
|
|
8985
9753
|
"behaviors": [],
|
|
8986
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9754
|
+
"sourceFile": "silicaui-html/src/component.ts:2379"
|
|
8987
9755
|
},
|
|
8988
9756
|
{
|
|
8989
9757
|
"name": "DrawerBackdrop",
|
|
@@ -8993,7 +9761,7 @@
|
|
|
8993
9761
|
"icon": "box",
|
|
8994
9762
|
"container": false,
|
|
8995
9763
|
"behaviors": [],
|
|
8996
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9764
|
+
"sourceFile": "silicaui-html/src/component.ts:2391"
|
|
8997
9765
|
},
|
|
8998
9766
|
{
|
|
8999
9767
|
"name": "DrawerContent",
|
|
@@ -9003,7 +9771,7 @@
|
|
|
9003
9771
|
"icon": "sidebar",
|
|
9004
9772
|
"container": true,
|
|
9005
9773
|
"behaviors": [],
|
|
9006
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9774
|
+
"sourceFile": "silicaui-html/src/component.ts:2402"
|
|
9007
9775
|
},
|
|
9008
9776
|
{
|
|
9009
9777
|
"name": "DrawerClose",
|
|
@@ -9013,7 +9781,7 @@
|
|
|
9013
9781
|
"icon": "button",
|
|
9014
9782
|
"container": true,
|
|
9015
9783
|
"behaviors": [],
|
|
9016
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9784
|
+
"sourceFile": "silicaui-html/src/component.ts:2418"
|
|
9017
9785
|
},
|
|
9018
9786
|
{
|
|
9019
9787
|
"name": "DrawerTitle",
|
|
@@ -9045,7 +9813,7 @@
|
|
|
9045
9813
|
"behaviors": [
|
|
9046
9814
|
"modal"
|
|
9047
9815
|
],
|
|
9048
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9816
|
+
"sourceFile": "silicaui-html/src/component.ts:2437"
|
|
9049
9817
|
},
|
|
9050
9818
|
{
|
|
9051
9819
|
"name": "AlertDialogTrigger",
|
|
@@ -9055,7 +9823,7 @@
|
|
|
9055
9823
|
"icon": "button",
|
|
9056
9824
|
"container": true,
|
|
9057
9825
|
"behaviors": [],
|
|
9058
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9826
|
+
"sourceFile": "silicaui-html/src/component.ts:2449"
|
|
9059
9827
|
},
|
|
9060
9828
|
{
|
|
9061
9829
|
"name": "AlertDialogBackdrop",
|
|
@@ -9065,7 +9833,7 @@
|
|
|
9065
9833
|
"icon": "box",
|
|
9066
9834
|
"container": false,
|
|
9067
9835
|
"behaviors": [],
|
|
9068
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9836
|
+
"sourceFile": "silicaui-html/src/component.ts:2461"
|
|
9069
9837
|
},
|
|
9070
9838
|
{
|
|
9071
9839
|
"name": "AlertDialogContent",
|
|
@@ -9075,7 +9843,7 @@
|
|
|
9075
9843
|
"icon": "warning",
|
|
9076
9844
|
"container": true,
|
|
9077
9845
|
"behaviors": [],
|
|
9078
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9846
|
+
"sourceFile": "silicaui-html/src/component.ts:2472"
|
|
9079
9847
|
},
|
|
9080
9848
|
{
|
|
9081
9849
|
"name": "AlertDialogClose",
|
|
@@ -9085,7 +9853,7 @@
|
|
|
9085
9853
|
"icon": "button",
|
|
9086
9854
|
"container": true,
|
|
9087
9855
|
"behaviors": [],
|
|
9088
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9856
|
+
"sourceFile": "silicaui-html/src/component.ts:2487"
|
|
9089
9857
|
},
|
|
9090
9858
|
{
|
|
9091
9859
|
"name": "AlertDialogCancel",
|
|
@@ -9095,7 +9863,7 @@
|
|
|
9095
9863
|
"icon": "button",
|
|
9096
9864
|
"container": true,
|
|
9097
9865
|
"behaviors": [],
|
|
9098
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9866
|
+
"sourceFile": "silicaui-html/src/component.ts:2499"
|
|
9099
9867
|
},
|
|
9100
9868
|
{
|
|
9101
9869
|
"name": "AlertDialogAction",
|
|
@@ -9105,7 +9873,7 @@
|
|
|
9105
9873
|
"icon": "button",
|
|
9106
9874
|
"container": true,
|
|
9107
9875
|
"behaviors": [],
|
|
9108
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9876
|
+
"sourceFile": "silicaui-html/src/component.ts:2511"
|
|
9109
9877
|
},
|
|
9110
9878
|
{
|
|
9111
9879
|
"name": "AlertDialogTitle",
|
|
@@ -9137,7 +9905,7 @@
|
|
|
9137
9905
|
"behaviors": [
|
|
9138
9906
|
"modal"
|
|
9139
9907
|
],
|
|
9140
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9908
|
+
"sourceFile": "silicaui-html/src/component.ts:2529"
|
|
9141
9909
|
},
|
|
9142
9910
|
{
|
|
9143
9911
|
"name": "LightboxTrigger",
|
|
@@ -9147,7 +9915,7 @@
|
|
|
9147
9915
|
"icon": "button",
|
|
9148
9916
|
"container": true,
|
|
9149
9917
|
"behaviors": [],
|
|
9150
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9918
|
+
"sourceFile": "silicaui-html/src/component.ts:2541"
|
|
9151
9919
|
},
|
|
9152
9920
|
{
|
|
9153
9921
|
"name": "LightboxBackdrop",
|
|
@@ -9157,7 +9925,7 @@
|
|
|
9157
9925
|
"icon": "box",
|
|
9158
9926
|
"container": false,
|
|
9159
9927
|
"behaviors": [],
|
|
9160
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9928
|
+
"sourceFile": "silicaui-html/src/component.ts:2553"
|
|
9161
9929
|
},
|
|
9162
9930
|
{
|
|
9163
9931
|
"name": "LightboxContent",
|
|
@@ -9167,7 +9935,7 @@
|
|
|
9167
9935
|
"icon": "image",
|
|
9168
9936
|
"container": true,
|
|
9169
9937
|
"behaviors": [],
|
|
9170
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9938
|
+
"sourceFile": "silicaui-html/src/component.ts:2564"
|
|
9171
9939
|
},
|
|
9172
9940
|
{
|
|
9173
9941
|
"name": "LightboxSlide",
|
|
@@ -9177,7 +9945,7 @@
|
|
|
9177
9945
|
"icon": "image",
|
|
9178
9946
|
"container": true,
|
|
9179
9947
|
"behaviors": [],
|
|
9180
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9948
|
+
"sourceFile": "silicaui-html/src/component.ts:2579"
|
|
9181
9949
|
},
|
|
9182
9950
|
{
|
|
9183
9951
|
"name": "LightboxPrev",
|
|
@@ -9187,7 +9955,7 @@
|
|
|
9187
9955
|
"icon": "button",
|
|
9188
9956
|
"container": false,
|
|
9189
9957
|
"behaviors": [],
|
|
9190
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9958
|
+
"sourceFile": "silicaui-html/src/component.ts:2591"
|
|
9191
9959
|
},
|
|
9192
9960
|
{
|
|
9193
9961
|
"name": "LightboxNext",
|
|
@@ -9197,7 +9965,7 @@
|
|
|
9197
9965
|
"icon": "button",
|
|
9198
9966
|
"container": false,
|
|
9199
9967
|
"behaviors": [],
|
|
9200
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9968
|
+
"sourceFile": "silicaui-html/src/component.ts:2605"
|
|
9201
9969
|
},
|
|
9202
9970
|
{
|
|
9203
9971
|
"name": "LightboxClose",
|
|
@@ -9207,7 +9975,7 @@
|
|
|
9207
9975
|
"icon": "button",
|
|
9208
9976
|
"container": true,
|
|
9209
9977
|
"behaviors": [],
|
|
9210
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9978
|
+
"sourceFile": "silicaui-html/src/component.ts:2619"
|
|
9211
9979
|
},
|
|
9212
9980
|
{
|
|
9213
9981
|
"name": "LightboxCounter",
|
|
@@ -9217,7 +9985,7 @@
|
|
|
9217
9985
|
"icon": "box",
|
|
9218
9986
|
"container": false,
|
|
9219
9987
|
"behaviors": [],
|
|
9220
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
9988
|
+
"sourceFile": "silicaui-html/src/component.ts:2634"
|
|
9221
9989
|
},
|
|
9222
9990
|
{
|
|
9223
9991
|
"name": "CommandPalette",
|
|
@@ -9229,7 +9997,7 @@
|
|
|
9229
9997
|
"behaviors": [
|
|
9230
9998
|
"modal"
|
|
9231
9999
|
],
|
|
9232
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10000
|
+
"sourceFile": "silicaui-html/src/component.ts:2649"
|
|
9233
10001
|
},
|
|
9234
10002
|
{
|
|
9235
10003
|
"name": "CommandPaletteBackdrop",
|
|
@@ -9239,7 +10007,7 @@
|
|
|
9239
10007
|
"icon": "box",
|
|
9240
10008
|
"container": false,
|
|
9241
10009
|
"behaviors": [],
|
|
9242
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10010
|
+
"sourceFile": "silicaui-html/src/component.ts:2664"
|
|
9243
10011
|
},
|
|
9244
10012
|
{
|
|
9245
10013
|
"name": "CommandPaletteContent",
|
|
@@ -9249,7 +10017,7 @@
|
|
|
9249
10017
|
"icon": "search",
|
|
9250
10018
|
"container": true,
|
|
9251
10019
|
"behaviors": [],
|
|
9252
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10020
|
+
"sourceFile": "silicaui-html/src/component.ts:2675"
|
|
9253
10021
|
},
|
|
9254
10022
|
{
|
|
9255
10023
|
"name": "CommandPaletteInput",
|
|
@@ -9259,7 +10027,7 @@
|
|
|
9259
10027
|
"icon": "input",
|
|
9260
10028
|
"container": false,
|
|
9261
10029
|
"behaviors": [],
|
|
9262
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10030
|
+
"sourceFile": "silicaui-html/src/component.ts:2690"
|
|
9263
10031
|
},
|
|
9264
10032
|
{
|
|
9265
10033
|
"name": "CommandPaletteItem",
|
|
@@ -9269,7 +10037,7 @@
|
|
|
9269
10037
|
"icon": "box",
|
|
9270
10038
|
"container": true,
|
|
9271
10039
|
"behaviors": [],
|
|
9272
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10040
|
+
"sourceFile": "silicaui-html/src/component.ts:2703"
|
|
9273
10041
|
},
|
|
9274
10042
|
{
|
|
9275
10043
|
"name": "Popover",
|
|
@@ -9281,7 +10049,7 @@
|
|
|
9281
10049
|
"behaviors": [
|
|
9282
10050
|
"popover"
|
|
9283
10051
|
],
|
|
9284
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10052
|
+
"sourceFile": "silicaui-html/src/component.ts:2720"
|
|
9285
10053
|
},
|
|
9286
10054
|
{
|
|
9287
10055
|
"name": "PopoverTrigger",
|
|
@@ -9291,7 +10059,7 @@
|
|
|
9291
10059
|
"icon": "button",
|
|
9292
10060
|
"container": true,
|
|
9293
10061
|
"behaviors": [],
|
|
9294
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10062
|
+
"sourceFile": "silicaui-html/src/component.ts:2732"
|
|
9295
10063
|
},
|
|
9296
10064
|
{
|
|
9297
10065
|
"name": "PopoverContent",
|
|
@@ -9301,7 +10069,7 @@
|
|
|
9301
10069
|
"icon": "box",
|
|
9302
10070
|
"container": true,
|
|
9303
10071
|
"behaviors": [],
|
|
9304
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10072
|
+
"sourceFile": "silicaui-html/src/component.ts:2744"
|
|
9305
10073
|
},
|
|
9306
10074
|
{
|
|
9307
10075
|
"name": "PopoverClose",
|
|
@@ -9311,7 +10079,7 @@
|
|
|
9311
10079
|
"icon": "button",
|
|
9312
10080
|
"container": true,
|
|
9313
10081
|
"behaviors": [],
|
|
9314
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10082
|
+
"sourceFile": "silicaui-html/src/component.ts:2756"
|
|
9315
10083
|
},
|
|
9316
10084
|
{
|
|
9317
10085
|
"name": "PopoverTitle",
|
|
@@ -9343,7 +10111,7 @@
|
|
|
9343
10111
|
"behaviors": [
|
|
9344
10112
|
"popover"
|
|
9345
10113
|
],
|
|
9346
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10114
|
+
"sourceFile": "silicaui-html/src/component.ts:2774"
|
|
9347
10115
|
},
|
|
9348
10116
|
{
|
|
9349
10117
|
"name": "TooltipTrigger",
|
|
@@ -9353,7 +10121,7 @@
|
|
|
9353
10121
|
"icon": "box",
|
|
9354
10122
|
"container": true,
|
|
9355
10123
|
"behaviors": [],
|
|
9356
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10124
|
+
"sourceFile": "silicaui-html/src/component.ts:2786"
|
|
9357
10125
|
},
|
|
9358
10126
|
{
|
|
9359
10127
|
"name": "TooltipContent",
|
|
@@ -9363,7 +10131,7 @@
|
|
|
9363
10131
|
"icon": "box",
|
|
9364
10132
|
"container": true,
|
|
9365
10133
|
"behaviors": [],
|
|
9366
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10134
|
+
"sourceFile": "silicaui-html/src/component.ts:2798"
|
|
9367
10135
|
},
|
|
9368
10136
|
{
|
|
9369
10137
|
"name": "PreviewCard",
|
|
@@ -9375,7 +10143,7 @@
|
|
|
9375
10143
|
"behaviors": [
|
|
9376
10144
|
"popover"
|
|
9377
10145
|
],
|
|
9378
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10146
|
+
"sourceFile": "silicaui-html/src/component.ts:2813"
|
|
9379
10147
|
},
|
|
9380
10148
|
{
|
|
9381
10149
|
"name": "PreviewCardTrigger",
|
|
@@ -9385,7 +10153,7 @@
|
|
|
9385
10153
|
"icon": "box",
|
|
9386
10154
|
"container": true,
|
|
9387
10155
|
"behaviors": [],
|
|
9388
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10156
|
+
"sourceFile": "silicaui-html/src/component.ts:2825"
|
|
9389
10157
|
},
|
|
9390
10158
|
{
|
|
9391
10159
|
"name": "PreviewCardContent",
|
|
@@ -9395,7 +10163,7 @@
|
|
|
9395
10163
|
"icon": "box",
|
|
9396
10164
|
"container": true,
|
|
9397
10165
|
"behaviors": [],
|
|
9398
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10166
|
+
"sourceFile": "silicaui-html/src/component.ts:2837"
|
|
9399
10167
|
},
|
|
9400
10168
|
{
|
|
9401
10169
|
"name": "ContextMenu",
|
|
@@ -9407,7 +10175,7 @@
|
|
|
9407
10175
|
"behaviors": [
|
|
9408
10176
|
"menu"
|
|
9409
10177
|
],
|
|
9410
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10178
|
+
"sourceFile": "silicaui-html/src/component.ts:2855"
|
|
9411
10179
|
},
|
|
9412
10180
|
{
|
|
9413
10181
|
"name": "ContextMenuTrigger",
|
|
@@ -9417,7 +10185,7 @@
|
|
|
9417
10185
|
"icon": "box",
|
|
9418
10186
|
"container": true,
|
|
9419
10187
|
"behaviors": [],
|
|
9420
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10188
|
+
"sourceFile": "silicaui-html/src/component.ts:2867"
|
|
9421
10189
|
},
|
|
9422
10190
|
{
|
|
9423
10191
|
"name": "ContextMenuContent",
|
|
@@ -9427,7 +10195,7 @@
|
|
|
9427
10195
|
"icon": "nav",
|
|
9428
10196
|
"container": true,
|
|
9429
10197
|
"behaviors": [],
|
|
9430
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10198
|
+
"sourceFile": "silicaui-html/src/component.ts:2879"
|
|
9431
10199
|
},
|
|
9432
10200
|
{
|
|
9433
10201
|
"name": "ContextMenuItem",
|
|
@@ -9437,7 +10205,7 @@
|
|
|
9437
10205
|
"icon": "nav",
|
|
9438
10206
|
"container": true,
|
|
9439
10207
|
"behaviors": [],
|
|
9440
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10208
|
+
"sourceFile": "silicaui-html/src/component.ts:2891"
|
|
9441
10209
|
},
|
|
9442
10210
|
{
|
|
9443
10211
|
"name": "Menubar",
|
|
@@ -9459,7 +10227,7 @@
|
|
|
9459
10227
|
"behaviors": [
|
|
9460
10228
|
"menu"
|
|
9461
10229
|
],
|
|
9462
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10230
|
+
"sourceFile": "silicaui-html/src/component.ts:2909"
|
|
9463
10231
|
},
|
|
9464
10232
|
{
|
|
9465
10233
|
"name": "MenubarTrigger",
|
|
@@ -9469,7 +10237,7 @@
|
|
|
9469
10237
|
"icon": "button",
|
|
9470
10238
|
"container": true,
|
|
9471
10239
|
"behaviors": [],
|
|
9472
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10240
|
+
"sourceFile": "silicaui-html/src/component.ts:2921"
|
|
9473
10241
|
},
|
|
9474
10242
|
{
|
|
9475
10243
|
"name": "MenubarContent",
|
|
@@ -9479,7 +10247,7 @@
|
|
|
9479
10247
|
"icon": "nav",
|
|
9480
10248
|
"container": true,
|
|
9481
10249
|
"behaviors": [],
|
|
9482
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10250
|
+
"sourceFile": "silicaui-html/src/component.ts:2933"
|
|
9483
10251
|
},
|
|
9484
10252
|
{
|
|
9485
10253
|
"name": "MenubarItem",
|
|
@@ -9489,7 +10257,7 @@
|
|
|
9489
10257
|
"icon": "nav",
|
|
9490
10258
|
"container": true,
|
|
9491
10259
|
"behaviors": [],
|
|
9492
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10260
|
+
"sourceFile": "silicaui-html/src/component.ts:2945"
|
|
9493
10261
|
},
|
|
9494
10262
|
{
|
|
9495
10263
|
"name": "NavigationMenu",
|
|
@@ -9511,7 +10279,7 @@
|
|
|
9511
10279
|
"behaviors": [
|
|
9512
10280
|
"popover"
|
|
9513
10281
|
],
|
|
9514
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10282
|
+
"sourceFile": "silicaui-html/src/component.ts:2963"
|
|
9515
10283
|
},
|
|
9516
10284
|
{
|
|
9517
10285
|
"name": "NavigationMenuTrigger",
|
|
@@ -9521,7 +10289,7 @@
|
|
|
9521
10289
|
"icon": "button",
|
|
9522
10290
|
"container": true,
|
|
9523
10291
|
"behaviors": [],
|
|
9524
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10292
|
+
"sourceFile": "silicaui-html/src/component.ts:2975"
|
|
9525
10293
|
},
|
|
9526
10294
|
{
|
|
9527
10295
|
"name": "NavigationMenuContent",
|
|
@@ -9531,7 +10299,7 @@
|
|
|
9531
10299
|
"icon": "nav",
|
|
9532
10300
|
"container": true,
|
|
9533
10301
|
"behaviors": [],
|
|
9534
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10302
|
+
"sourceFile": "silicaui-html/src/component.ts:2987"
|
|
9535
10303
|
},
|
|
9536
10304
|
{
|
|
9537
10305
|
"name": "NavigationMenuLink",
|
|
@@ -9541,7 +10309,7 @@
|
|
|
9541
10309
|
"icon": "nav",
|
|
9542
10310
|
"container": true,
|
|
9543
10311
|
"behaviors": [],
|
|
9544
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10312
|
+
"sourceFile": "silicaui-html/src/component.ts:2999"
|
|
9545
10313
|
},
|
|
9546
10314
|
{
|
|
9547
10315
|
"name": "Combobox",
|
|
@@ -9553,7 +10321,7 @@
|
|
|
9553
10321
|
"behaviors": [
|
|
9554
10322
|
"combobox"
|
|
9555
10323
|
],
|
|
9556
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10324
|
+
"sourceFile": "silicaui-html/src/component.ts:3014"
|
|
9557
10325
|
},
|
|
9558
10326
|
{
|
|
9559
10327
|
"name": "Autocomplete",
|
|
@@ -9565,7 +10333,7 @@
|
|
|
9565
10333
|
"behaviors": [
|
|
9566
10334
|
"combobox"
|
|
9567
10335
|
],
|
|
9568
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10336
|
+
"sourceFile": "silicaui-html/src/component.ts:3021"
|
|
9569
10337
|
},
|
|
9570
10338
|
{
|
|
9571
10339
|
"name": "MultiSelect",
|
|
@@ -9577,7 +10345,7 @@
|
|
|
9577
10345
|
"behaviors": [
|
|
9578
10346
|
"combobox"
|
|
9579
10347
|
],
|
|
9580
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10348
|
+
"sourceFile": "silicaui-html/src/component.ts:3028"
|
|
9581
10349
|
},
|
|
9582
10350
|
{
|
|
9583
10351
|
"name": "DateInput",
|
|
@@ -9589,7 +10357,7 @@
|
|
|
9589
10357
|
"behaviors": [
|
|
9590
10358
|
"date-segment"
|
|
9591
10359
|
],
|
|
9592
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10360
|
+
"sourceFile": "silicaui-html/src/component.ts:3040"
|
|
9593
10361
|
},
|
|
9594
10362
|
{
|
|
9595
10363
|
"name": "DateRangeInput",
|
|
@@ -9601,7 +10369,7 @@
|
|
|
9601
10369
|
"behaviors": [
|
|
9602
10370
|
"date-segment"
|
|
9603
10371
|
],
|
|
9604
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10372
|
+
"sourceFile": "silicaui-html/src/component.ts:3058"
|
|
9605
10373
|
},
|
|
9606
10374
|
{
|
|
9607
10375
|
"name": "DateTimeInput",
|
|
@@ -9613,7 +10381,7 @@
|
|
|
9613
10381
|
"behaviors": [
|
|
9614
10382
|
"date-segment"
|
|
9615
10383
|
],
|
|
9616
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10384
|
+
"sourceFile": "silicaui-html/src/component.ts:3074"
|
|
9617
10385
|
},
|
|
9618
10386
|
{
|
|
9619
10387
|
"name": "TimeInput",
|
|
@@ -9625,7 +10393,7 @@
|
|
|
9625
10393
|
"behaviors": [
|
|
9626
10394
|
"date-segment"
|
|
9627
10395
|
],
|
|
9628
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10396
|
+
"sourceFile": "silicaui-html/src/component.ts:3100"
|
|
9629
10397
|
},
|
|
9630
10398
|
{
|
|
9631
10399
|
"name": "PinInput",
|
|
@@ -9637,7 +10405,7 @@
|
|
|
9637
10405
|
"behaviors": [
|
|
9638
10406
|
"pin-input"
|
|
9639
10407
|
],
|
|
9640
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10408
|
+
"sourceFile": "silicaui-html/src/component.ts:3126"
|
|
9641
10409
|
},
|
|
9642
10410
|
{
|
|
9643
10411
|
"name": "Calendar",
|
|
@@ -9649,7 +10417,7 @@
|
|
|
9649
10417
|
"behaviors": [
|
|
9650
10418
|
"calendar"
|
|
9651
10419
|
],
|
|
9652
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10420
|
+
"sourceFile": "silicaui-html/src/component.ts:3171"
|
|
9653
10421
|
},
|
|
9654
10422
|
{
|
|
9655
10423
|
"name": "DatePicker",
|
|
@@ -9661,7 +10429,7 @@
|
|
|
9661
10429
|
"behaviors": [
|
|
9662
10430
|
"popover"
|
|
9663
10431
|
],
|
|
9664
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10432
|
+
"sourceFile": "silicaui-html/src/component.ts:3183"
|
|
9665
10433
|
},
|
|
9666
10434
|
{
|
|
9667
10435
|
"name": "DatePickerTrigger",
|
|
@@ -9671,7 +10439,7 @@
|
|
|
9671
10439
|
"icon": "calendar",
|
|
9672
10440
|
"container": true,
|
|
9673
10441
|
"behaviors": [],
|
|
9674
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10442
|
+
"sourceFile": "silicaui-html/src/component.ts:3195"
|
|
9675
10443
|
},
|
|
9676
10444
|
{
|
|
9677
10445
|
"name": "DatePickerContent",
|
|
@@ -9683,7 +10451,7 @@
|
|
|
9683
10451
|
"behaviors": [
|
|
9684
10452
|
"calendar"
|
|
9685
10453
|
],
|
|
9686
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10454
|
+
"sourceFile": "silicaui-html/src/component.ts:3207"
|
|
9687
10455
|
},
|
|
9688
10456
|
{
|
|
9689
10457
|
"name": "DateRangePicker",
|
|
@@ -9695,7 +10463,7 @@
|
|
|
9695
10463
|
"behaviors": [
|
|
9696
10464
|
"popover"
|
|
9697
10465
|
],
|
|
9698
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10466
|
+
"sourceFile": "silicaui-html/src/component.ts:3221"
|
|
9699
10467
|
},
|
|
9700
10468
|
{
|
|
9701
10469
|
"name": "DateRangePickerTrigger",
|
|
@@ -9705,7 +10473,7 @@
|
|
|
9705
10473
|
"icon": "calendar",
|
|
9706
10474
|
"container": true,
|
|
9707
10475
|
"behaviors": [],
|
|
9708
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10476
|
+
"sourceFile": "silicaui-html/src/component.ts:3233"
|
|
9709
10477
|
},
|
|
9710
10478
|
{
|
|
9711
10479
|
"name": "DateRangePickerContent",
|
|
@@ -9717,7 +10485,7 @@
|
|
|
9717
10485
|
"behaviors": [
|
|
9718
10486
|
"calendar"
|
|
9719
10487
|
],
|
|
9720
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10488
|
+
"sourceFile": "silicaui-html/src/component.ts:3245"
|
|
9721
10489
|
},
|
|
9722
10490
|
{
|
|
9723
10491
|
"name": "TreeView",
|
|
@@ -9729,7 +10497,7 @@
|
|
|
9729
10497
|
"behaviors": [
|
|
9730
10498
|
"tree"
|
|
9731
10499
|
],
|
|
9732
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10500
|
+
"sourceFile": "silicaui-html/src/component.ts:3265"
|
|
9733
10501
|
},
|
|
9734
10502
|
{
|
|
9735
10503
|
"name": "TreeNode",
|
|
@@ -9739,7 +10507,7 @@
|
|
|
9739
10507
|
"icon": "box",
|
|
9740
10508
|
"container": true,
|
|
9741
10509
|
"behaviors": [],
|
|
9742
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10510
|
+
"sourceFile": "silicaui-html/src/component.ts:3277"
|
|
9743
10511
|
},
|
|
9744
10512
|
{
|
|
9745
10513
|
"name": "TreeToggle",
|
|
@@ -9749,7 +10517,7 @@
|
|
|
9749
10517
|
"icon": "button",
|
|
9750
10518
|
"container": false,
|
|
9751
10519
|
"behaviors": [],
|
|
9752
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10520
|
+
"sourceFile": "silicaui-html/src/component.ts:3289"
|
|
9753
10521
|
},
|
|
9754
10522
|
{
|
|
9755
10523
|
"name": "TreeGroup",
|
|
@@ -9759,7 +10527,7 @@
|
|
|
9759
10527
|
"icon": "box",
|
|
9760
10528
|
"container": true,
|
|
9761
10529
|
"behaviors": [],
|
|
9762
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10530
|
+
"sourceFile": "silicaui-html/src/component.ts:3303"
|
|
9763
10531
|
},
|
|
9764
10532
|
{
|
|
9765
10533
|
"name": "Wizard",
|
|
@@ -9771,7 +10539,7 @@
|
|
|
9771
10539
|
"behaviors": [
|
|
9772
10540
|
"wizard"
|
|
9773
10541
|
],
|
|
9774
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10542
|
+
"sourceFile": "silicaui-html/src/component.ts:3317"
|
|
9775
10543
|
},
|
|
9776
10544
|
{
|
|
9777
10545
|
"name": "WizardStep",
|
|
@@ -9781,7 +10549,7 @@
|
|
|
9781
10549
|
"icon": "box",
|
|
9782
10550
|
"container": true,
|
|
9783
10551
|
"behaviors": [],
|
|
9784
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10552
|
+
"sourceFile": "silicaui-html/src/component.ts:3329"
|
|
9785
10553
|
},
|
|
9786
10554
|
{
|
|
9787
10555
|
"name": "WizardPanel",
|
|
@@ -9791,7 +10559,7 @@
|
|
|
9791
10559
|
"icon": "box",
|
|
9792
10560
|
"container": true,
|
|
9793
10561
|
"behaviors": [],
|
|
9794
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10562
|
+
"sourceFile": "silicaui-html/src/component.ts:3343"
|
|
9795
10563
|
},
|
|
9796
10564
|
{
|
|
9797
10565
|
"name": "WizardBack",
|
|
@@ -9801,7 +10569,7 @@
|
|
|
9801
10569
|
"icon": "button",
|
|
9802
10570
|
"container": true,
|
|
9803
10571
|
"behaviors": [],
|
|
9804
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10572
|
+
"sourceFile": "silicaui-html/src/component.ts:3355"
|
|
9805
10573
|
},
|
|
9806
10574
|
{
|
|
9807
10575
|
"name": "WizardNext",
|
|
@@ -9811,7 +10579,7 @@
|
|
|
9811
10579
|
"icon": "button",
|
|
9812
10580
|
"container": true,
|
|
9813
10581
|
"behaviors": [],
|
|
9814
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10582
|
+
"sourceFile": "silicaui-html/src/component.ts:3367"
|
|
9815
10583
|
},
|
|
9816
10584
|
{
|
|
9817
10585
|
"name": "NumberField",
|
|
@@ -9823,7 +10591,7 @@
|
|
|
9823
10591
|
"behaviors": [
|
|
9824
10592
|
"number-field"
|
|
9825
10593
|
],
|
|
9826
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10594
|
+
"sourceFile": "silicaui-html/src/component.ts:3385"
|
|
9827
10595
|
},
|
|
9828
10596
|
{
|
|
9829
10597
|
"name": "ToggleGroup",
|
|
@@ -9835,7 +10603,7 @@
|
|
|
9835
10603
|
"behaviors": [
|
|
9836
10604
|
"toggle-group"
|
|
9837
10605
|
],
|
|
9838
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10606
|
+
"sourceFile": "silicaui-html/src/component.ts:3415"
|
|
9839
10607
|
},
|
|
9840
10608
|
{
|
|
9841
10609
|
"name": "ToggleGroupItem",
|
|
@@ -9845,7 +10613,7 @@
|
|
|
9845
10613
|
"icon": "toggle",
|
|
9846
10614
|
"container": true,
|
|
9847
10615
|
"behaviors": [],
|
|
9848
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10616
|
+
"sourceFile": "silicaui-html/src/component.ts:3433"
|
|
9849
10617
|
},
|
|
9850
10618
|
{
|
|
9851
10619
|
"name": "Range",
|
|
@@ -9857,7 +10625,7 @@
|
|
|
9857
10625
|
"behaviors": [
|
|
9858
10626
|
"slider"
|
|
9859
10627
|
],
|
|
9860
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10628
|
+
"sourceFile": "silicaui-html/src/component.ts:3453"
|
|
9861
10629
|
},
|
|
9862
10630
|
{
|
|
9863
10631
|
"name": "Slider",
|
|
@@ -9869,7 +10637,7 @@
|
|
|
9869
10637
|
"behaviors": [
|
|
9870
10638
|
"slider"
|
|
9871
10639
|
],
|
|
9872
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10640
|
+
"sourceFile": "silicaui-html/src/component.ts:3454"
|
|
9873
10641
|
},
|
|
9874
10642
|
{
|
|
9875
10643
|
"name": "Switch",
|
|
@@ -9881,7 +10649,7 @@
|
|
|
9881
10649
|
"behaviors": [
|
|
9882
10650
|
"switch"
|
|
9883
10651
|
],
|
|
9884
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10652
|
+
"sourceFile": "silicaui-html/src/component.ts:3460"
|
|
9885
10653
|
},
|
|
9886
10654
|
{
|
|
9887
10655
|
"name": "Rating",
|
|
@@ -9893,7 +10661,7 @@
|
|
|
9893
10661
|
"behaviors": [
|
|
9894
10662
|
"rating"
|
|
9895
10663
|
],
|
|
9896
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10664
|
+
"sourceFile": "silicaui-html/src/component.ts:3484"
|
|
9897
10665
|
},
|
|
9898
10666
|
{
|
|
9899
10667
|
"name": "ScrollArea",
|
|
@@ -9905,7 +10673,7 @@
|
|
|
9905
10673
|
"behaviors": [
|
|
9906
10674
|
"scroll-area"
|
|
9907
10675
|
],
|
|
9908
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10676
|
+
"sourceFile": "silicaui-html/src/component.ts:3520"
|
|
9909
10677
|
},
|
|
9910
10678
|
{
|
|
9911
10679
|
"name": "OverflowList",
|
|
@@ -9917,7 +10685,7 @@
|
|
|
9917
10685
|
"behaviors": [
|
|
9918
10686
|
"overflow-list"
|
|
9919
10687
|
],
|
|
9920
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10688
|
+
"sourceFile": "silicaui-html/src/component.ts:3540"
|
|
9921
10689
|
},
|
|
9922
10690
|
{
|
|
9923
10691
|
"name": "OverflowListItem",
|
|
@@ -9927,7 +10695,7 @@
|
|
|
9927
10695
|
"icon": "box",
|
|
9928
10696
|
"container": true,
|
|
9929
10697
|
"behaviors": [],
|
|
9930
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10698
|
+
"sourceFile": "silicaui-html/src/component.ts:3568"
|
|
9931
10699
|
},
|
|
9932
10700
|
{
|
|
9933
10701
|
"name": "Dropzone",
|
|
@@ -9939,7 +10707,7 @@
|
|
|
9939
10707
|
"behaviors": [
|
|
9940
10708
|
"dropzone"
|
|
9941
10709
|
],
|
|
9942
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10710
|
+
"sourceFile": "silicaui-html/src/component.ts:3585"
|
|
9943
10711
|
},
|
|
9944
10712
|
{
|
|
9945
10713
|
"name": "FileUpload",
|
|
@@ -9951,7 +10719,7 @@
|
|
|
9951
10719
|
"behaviors": [
|
|
9952
10720
|
"dropzone"
|
|
9953
10721
|
],
|
|
9954
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10722
|
+
"sourceFile": "silicaui-html/src/component.ts:3586"
|
|
9955
10723
|
},
|
|
9956
10724
|
{
|
|
9957
10725
|
"name": "PhoneInput",
|
|
@@ -9963,7 +10731,7 @@
|
|
|
9963
10731
|
"behaviors": [
|
|
9964
10732
|
"phone-input"
|
|
9965
10733
|
],
|
|
9966
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10734
|
+
"sourceFile": "silicaui-html/src/component.ts:3592"
|
|
9967
10735
|
},
|
|
9968
10736
|
{
|
|
9969
10737
|
"name": "ThemeController",
|
|
@@ -9975,7 +10743,7 @@
|
|
|
9975
10743
|
"behaviors": [
|
|
9976
10744
|
"theme-toggle"
|
|
9977
10745
|
],
|
|
9978
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10746
|
+
"sourceFile": "silicaui-html/src/component.ts:3631"
|
|
9979
10747
|
},
|
|
9980
10748
|
{
|
|
9981
10749
|
"name": "Overlay",
|
|
@@ -9985,7 +10753,7 @@
|
|
|
9985
10753
|
"icon": "image",
|
|
9986
10754
|
"container": true,
|
|
9987
10755
|
"behaviors": [],
|
|
9988
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10756
|
+
"sourceFile": "silicaui-html/src/component.ts:3653"
|
|
9989
10757
|
},
|
|
9990
10758
|
{
|
|
9991
10759
|
"name": "OverlayScrim",
|
|
@@ -9995,6 +10763,6 @@
|
|
|
9995
10763
|
"icon": "image",
|
|
9996
10764
|
"container": true,
|
|
9997
10765
|
"behaviors": [],
|
|
9998
|
-
"sourceFile": "silicaui-html/src/component.ts:
|
|
10766
|
+
"sourceFile": "silicaui-html/src/component.ts:3661"
|
|
9999
10767
|
}
|
|
10000
10768
|
]
|