tera-system-ui 0.1.64 → 0.1.66
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/COMPONENT_API.md +2 -539
- package/dist/components/accordion/Accordion.d.ts +24 -0
- package/dist/components/accordion/Accordion.js +4 -0
- package/dist/components/accordion/components/Accordion.svelte +2 -8
- package/dist/components/accordion/components/AccordionContent.svelte +5 -12
- package/dist/components/accordion/components/AccordionItem.svelte +3 -9
- package/dist/components/accordion/components/AccordionTrigger.svelte +5 -15
- package/dist/components/ai/ChatBubble.svelte +35 -0
- package/dist/components/ai/ChatBubble.svelte.d.ts +12 -0
- package/dist/components/ai/PromptInput.svelte +58 -0
- package/dist/components/ai/PromptInput.svelte.d.ts +13 -0
- package/dist/components/ai/StreamText.svelte +41 -0
- package/dist/components/ai/StreamText.svelte.d.ts +11 -0
- package/dist/components/ai/SuggestionChips.svelte +34 -0
- package/dist/components/ai/SuggestionChips.svelte.d.ts +10 -0
- package/dist/components/ai/ThinkingLoader.svelte +34 -0
- package/dist/components/ai/ThinkingLoader.svelte.d.ts +11 -0
- package/dist/components/ai/index.d.ts +5 -0
- package/dist/components/ai/index.js +5 -0
- package/dist/components/alert/Alert.svelte +47 -0
- package/dist/components/alert/Alert.svelte.d.ts +15 -0
- package/dist/components/alert/index.d.ts +1 -0
- package/dist/components/alert/index.js +1 -0
- package/dist/components/avatar/Avatar.svelte +9 -25
- package/dist/components/badge/Badge.d.ts +52 -0
- package/dist/components/badge/Badge.js +22 -0
- package/dist/components/badge/Badge.svelte +22 -0
- package/dist/components/badge/Badge.svelte.d.ts +4 -0
- package/dist/components/badge/index.d.ts +2 -0
- package/dist/components/badge/index.js +1 -0
- package/dist/components/brand-logo/BrandLogo.svelte +12 -10
- package/dist/components/button/Button.d.ts +2 -2
- package/dist/components/button/Button.js +12 -12
- package/dist/components/button/Button.svelte +7 -34
- package/dist/components/card/Card.d.ts +68 -0
- package/dist/components/card/Card.js +28 -0
- package/dist/components/card/Card.svelte +33 -0
- package/dist/components/card/Card.svelte.d.ts +4 -0
- package/dist/components/card/index.d.ts +2 -0
- package/dist/components/card/index.js +1 -0
- package/dist/components/checkbox/Checkbox.d.ts +25 -4
- package/dist/components/checkbox/Checkbox.js +4 -0
- package/dist/components/checkbox/Checkbox.svelte +13 -16
- package/dist/components/checkbox/Checkbox.svelte.d.ts +2 -2
- package/dist/components/combobox/Combobox.d.ts +45 -9
- package/dist/components/combobox/Combobox.js +5 -7
- package/dist/components/combobox/Combobox.svelte +226 -8
- package/dist/components/combobox/Combobox.svelte.d.ts +2 -2
- package/dist/components/combobox/index.d.ts +1 -1
- package/dist/components/command/components/command-empty.svelte +3 -8
- package/dist/components/command/components/command-group.svelte +3 -13
- package/dist/components/command/components/command-input.svelte +5 -13
- package/dist/components/command/components/command-item.svelte +3 -9
- package/dist/components/command/components/command-link-item.svelte +3 -8
- package/dist/components/command/components/command-list.svelte +3 -8
- package/dist/components/command/components/command-separator.svelte +3 -8
- package/dist/components/command/components/command-shortcut.svelte +2 -10
- package/dist/components/command/components/command.svelte +29 -42
- package/dist/components/date-range-picker/DateRangePicker.svelte +490 -0
- package/dist/components/date-range-picker/DateRangePicker.svelte.d.ts +4 -0
- package/dist/components/date-range-picker/DateRangePicker.types.d.ts +38 -0
- package/dist/components/date-range-picker/DateRangePicker.types.js +1 -0
- package/dist/components/date-range-picker/index.d.ts +2 -0
- package/dist/components/date-range-picker/index.js +1 -0
- package/dist/components/dialog/Dialog.d.ts +43 -121
- package/dist/components/dialog/Dialog.js +1 -39
- package/dist/components/dialog/Dialog.svelte +103 -113
- package/dist/components/dialog/Dialog.svelte.d.ts +1 -2
- package/dist/components/dialog/dialog.scss +21 -24
- package/dist/components/drawer/Drawer.svelte +63 -0
- package/dist/components/drawer/Drawer.svelte.d.ts +16 -0
- package/dist/components/drawer/index.d.ts +1 -0
- package/dist/components/drawer/index.js +1 -0
- package/dist/components/dropdown-menu/DropdownMenu.d.ts +51 -24
- package/dist/components/dropdown-menu/DropdownMenu.js +1 -15
- package/dist/components/dropdown-menu/components/DropdownMenu.svelte +36 -34
- package/dist/components/dropdown-menu/components/DropdownMenu.svelte.d.ts +1 -1
- package/dist/components/dropdown-menu/components/DropdownMenuGroup.svelte +8 -12
- package/dist/components/dropdown-menu/components/DropdownMenuGroup.svelte.d.ts +2 -4
- package/dist/components/dropdown-menu/components/DropdownMenuHeader.svelte +11 -12
- package/dist/components/dropdown-menu/components/DropdownMenuHeader.svelte.d.ts +2 -4
- package/dist/components/dropdown-menu/components/DropdownMenuItem.svelte +27 -30
- package/dist/components/dropdown-menu/components/DropdownMenuItem.svelte.d.ts +1 -1
- package/dist/components/dropdown-menu/components/DropdownMenuSeparator.svelte +9 -11
- package/dist/components/dropdown-menu/components/DropdownMenuSeparator.svelte.d.ts +2 -4
- package/dist/components/fonts/TeraFontMono.svelte +4 -4
- package/dist/components/fonts/TeraFontMono.svelte.d.ts +1 -0
- package/dist/components/fonts/TeraFontSansSerif.svelte +4 -4
- package/dist/components/fonts/TeraFontSansSerif.svelte.d.ts +1 -1
- package/dist/components/header/Header.svelte +6 -9
- package/dist/components/header/header.scss +1 -1
- package/dist/components/icons/IconArrowBigRightFilled.svelte +3 -7
- package/dist/components/icons/IconBook.svelte +3 -6
- package/dist/components/icons/IconBookmarkPlus.svelte +3 -6
- package/dist/components/icons/IconCalculator.svelte +3 -6
- package/dist/components/icons/IconCheck.svelte +3 -6
- package/dist/components/icons/IconChevronDown.svelte +3 -6
- package/dist/components/icons/IconCoin.svelte +3 -6
- package/dist/components/icons/IconCoinConvert.svelte +2 -5
- package/dist/components/icons/IconCopy.svelte +3 -6
- package/dist/components/icons/IconCopyCheckFilled.svelte +3 -6
- package/dist/components/icons/IconHamburger.svelte +3 -6
- package/dist/components/icons/IconLanguage.svelte +3 -6
- package/dist/components/icons/IconLoader2.svelte +3 -6
- package/dist/components/icons/IconLogout.svelte +3 -6
- package/dist/components/icons/IconMoon.svelte +3 -6
- package/dist/components/icons/IconPointFilled.svelte +3 -6
- package/dist/components/icons/IconSearch.svelte +3 -6
- package/dist/components/icons/IconSettings.svelte +3 -6
- package/dist/components/icons/IconSun.svelte +3 -6
- package/dist/components/icons/IconSwitchHorizontal.svelte +3 -6
- package/dist/components/icons/IconSwitchVertical.svelte +3 -6
- package/dist/components/icons/IconTransform.svelte +3 -6
- package/dist/components/icons/IconX.svelte +3 -6
- package/dist/components/input/Input.d.ts +2 -2
- package/dist/components/input/Input.js +10 -10
- package/dist/components/input/Input.svelte +10 -26
- package/dist/components/label/Label.d.ts +2 -2
- package/dist/components/label/Label.js +2 -2
- package/dist/components/label/Label.svelte +4 -12
- package/dist/components/language-picker-button/LanguagePickerButton.svelte +23 -42
- package/dist/components/light-dark-toggle/LightDarkToggle.svelte +21 -26
- package/dist/components/marketing/FeatureCard.svelte +37 -0
- package/dist/components/marketing/FeatureCard.svelte.d.ts +13 -0
- package/dist/components/marketing/PricingCard.svelte +48 -0
- package/dist/components/marketing/PricingCard.svelte.d.ts +15 -0
- package/dist/components/marketing/StatBlock.svelte +14 -0
- package/dist/components/marketing/StatBlock.svelte.d.ts +10 -0
- package/dist/components/marketing/TestimonialCard.svelte +24 -0
- package/dist/components/marketing/TestimonialCard.svelte.d.ts +12 -0
- package/dist/components/marketing/index.d.ts +4 -0
- package/dist/components/marketing/index.js +4 -0
- package/dist/components/popover/Popover.d.ts +32 -13
- package/dist/components/popover/Popover.js +1 -7
- package/dist/components/popover/Popover.svelte +40 -158
- package/dist/components/popover/Popover.svelte.d.ts +2 -2
- package/dist/components/popover-responsive/PopoverResponsive.d.ts +18 -7
- package/dist/components/popover-responsive/PopoverResponsive.js +1 -7
- package/dist/components/popover-responsive/PopoverResponsive.svelte +25 -87
- package/dist/components/popover-responsive/PopoverResponsive.svelte.d.ts +2 -11
- package/dist/components/select/Select.d.ts +60 -23
- package/dist/components/select/Select.js +14 -35
- package/dist/components/select/Select.svelte +157 -28
- package/dist/components/select/Select.svelte.d.ts +2 -3
- package/dist/components/select/index.d.ts +1 -1
- package/dist/components/side-navigation/SideNavigation.svelte +73 -96
- package/dist/components/side-navigation/SideNavigationItem.svelte +2 -2
- package/dist/components/side-navigation/SideNavigationLayout.svelte +3 -5
- package/dist/components/side-navigation/sidenav.scss +17 -13
- package/dist/components/skeleton/Skeleton.svelte +48 -0
- package/dist/components/skeleton/Skeleton.svelte.d.ts +12 -0
- package/dist/components/skeleton/index.d.ts +1 -0
- package/dist/components/skeleton/index.js +1 -0
- package/dist/components/slider/Slider.d.ts +25 -15
- package/dist/components/slider/Slider.js +1 -7
- package/dist/components/slider/Slider.svelte +38 -164
- package/dist/components/slider/Slider.svelte.d.ts +1 -1
- package/dist/components/spinner/Spinner.svelte +39 -0
- package/dist/components/spinner/Spinner.svelte.d.ts +10 -0
- package/dist/components/spinner/index.d.ts +1 -0
- package/dist/components/spinner/index.js +1 -0
- package/dist/components/star-rating/StarRating.svelte +33 -49
- package/dist/components/switch/Switch.d.ts +19 -4
- package/dist/components/switch/Switch.js +4 -0
- package/dist/components/switch/Switch.svelte +13 -17
- package/dist/components/switch/Switch.svelte.d.ts +2 -2
- package/dist/components/table/Table.svelte +68 -0
- package/dist/components/table/Table.svelte.d.ts +40 -0
- package/dist/components/table/index.d.ts +1 -0
- package/dist/components/table/index.js +1 -0
- package/dist/components/tabs/Tabs.svelte.d.ts +45 -16
- package/dist/components/tabs/Tabs.svelte.js +8 -18
- package/dist/components/tabs/components/Tabs.svelte +27 -33
- package/dist/components/tabs/components/Tabs.svelte.d.ts +1 -1
- package/dist/components/tabs/components/TabsContent.svelte +13 -36
- package/dist/components/tabs/components/TabsContent.svelte.d.ts +2 -5
- package/dist/components/tabs/components/TabsItem.svelte +43 -32
- package/dist/components/tabs/components/TabsItem.svelte.d.ts +2 -5
- package/dist/components/tabs/components/TabsList.svelte +90 -58
- package/dist/components/tabs/components/TabsList.svelte.d.ts +2 -4
- package/dist/components/tera-ui-context/TeraUiContext.svelte +13 -26
- package/dist/components/text-area/TextArea.d.ts +2 -2
- package/dist/components/text-area/TextArea.js +9 -9
- package/dist/components/text-area/TextArea.svelte +41 -65
- package/dist/components/toast/ToastContainer.svelte +50 -0
- package/dist/components/toast/ToastContainer.svelte.d.ts +18 -0
- package/dist/components/toast/index.d.ts +3 -0
- package/dist/components/toast/index.js +2 -0
- package/dist/components/toast/toast.svelte.d.ts +22 -0
- package/dist/components/toast/toast.svelte.js +18 -0
- package/dist/components/tooltip/Tooltip.d.ts +23 -0
- package/dist/components/tooltip/Tooltip.js +1 -0
- package/dist/components/tooltip/Tooltip.svelte +30 -0
- package/dist/components/tooltip/Tooltip.svelte.d.ts +4 -0
- package/dist/components/tooltip/index.d.ts +2 -0
- package/dist/components/tooltip/index.js +1 -0
- package/dist/components/user-avatar-with-menu/UserAvatarWithMenu.svelte +48 -69
- package/dist/index.d.ts +19 -2
- package/dist/index.js +12 -0
- package/dist/llms/accordion.md +90 -0
- package/dist/llms/ai.md +110 -0
- package/dist/llms/alert.md +29 -0
- package/dist/llms/avatar.md +34 -0
- package/dist/llms/badge.md +31 -0
- package/dist/llms/brand-logo.md +30 -0
- package/dist/llms/button.md +37 -0
- package/dist/llms/card.md +32 -0
- package/dist/llms/checkbox.md +35 -0
- package/dist/llms/colors.md +161 -0
- package/dist/llms/combobox.md +40 -0
- package/dist/llms/command.md +7 -0
- package/dist/llms/date-range-picker.md +36 -0
- package/dist/llms/dialog.md +45 -0
- package/dist/llms/drawer.md +30 -0
- package/dist/llms/dropdown-menu.md +112 -0
- package/dist/llms/fonts.md +7 -0
- package/dist/llms/header.md +26 -0
- package/dist/llms/icons.md +43 -0
- package/dist/llms/index.md +65 -0
- package/dist/llms/input.md +37 -0
- package/dist/llms/label.md +30 -0
- package/dist/llms/language-picker-button.md +30 -0
- package/dist/llms/light-dark-toggle.md +26 -0
- package/dist/llms/marketing.md +95 -0
- package/dist/llms/popover-responsive.md +32 -0
- package/dist/llms/popover.md +40 -0
- package/dist/llms/select.md +44 -0
- package/dist/llms/side-navigation.md +30 -0
- package/dist/llms/skeleton.md +28 -0
- package/dist/llms/slider.md +36 -0
- package/dist/llms/spinner.md +25 -0
- package/dist/llms/star-rating.md +31 -0
- package/dist/llms/switch.md +33 -0
- package/dist/llms/table.md +30 -0
- package/dist/llms/tabs.md +92 -0
- package/dist/llms/tera-ui-context.md +30 -0
- package/dist/llms/text-area.md +39 -0
- package/dist/llms/toast.md +7 -0
- package/dist/llms/tooltip.md +32 -0
- package/dist/llms/user-avatar-with-menu.md +28 -0
- package/dist/paraglide/README.md +72 -3
- package/dist/paraglide/messages/text_account_settings.d.ts +14 -2
- package/dist/paraglide/messages/text_account_settings.js +53 -58
- package/dist/paraglide/messages/text_calces_documentation.d.ts +14 -2
- package/dist/paraglide/messages/text_calces_documentation.js +53 -58
- package/dist/paraglide/messages/text_calces_scientific_calculator.d.ts +14 -2
- package/dist/paraglide/messages/text_calces_scientific_calculator.js +53 -58
- package/dist/paraglide/messages/text_currency_converter.d.ts +14 -2
- package/dist/paraglide/messages/text_currency_converter.js +53 -58
- package/dist/paraglide/messages/text_logout.d.ts +14 -2
- package/dist/paraglide/messages/text_logout.js +53 -58
- package/dist/paraglide/messages/text_select_language.d.ts +14 -2
- package/dist/paraglide/messages/text_select_language.js +53 -58
- package/dist/paraglide/messages/text_unit_converter.d.ts +14 -2
- package/dist/paraglide/messages/text_unit_converter.js +53 -58
- package/dist/paraglide/registry.d.ts +13 -0
- package/dist/paraglide/registry.js +15 -0
- package/dist/paraglide/runtime.d.ts +243 -126
- package/dist/paraglide/runtime.js +473 -148
- package/dist/paraglide/server.d.ts +13 -20
- package/dist/paraglide/server.js +92 -40
- package/dist/stories/ComponentOverview.stories.svelte +533 -0
- package/dist/stories/ComponentOverview.stories.svelte.d.ts +6 -0
- package/dist/themes/tera-ui-base.css +242 -77
- package/dist/themes/theme-ai.css +100 -0
- package/dist/themes/theme-marketing.css +91 -0
- package/dist/themes/theme-professional.css +41 -0
- package/package.json +35 -29
- package/dist/tera-i18n/projects/tera-system-ui/project.inlang/.meta.json +0 -3
- package/dist/tera-i18n/projects/tera-system-ui/project.inlang/README.md +0 -103
- package/dist/tera-i18n/projects/tera-system-ui/project.inlang/project_id +0 -1
- package/dist/themes/tw-preset.cjs +0 -160
- package/dist/themes/tw-preset.d.cts +0 -157
|
@@ -0,0 +1,533 @@
|
|
|
1
|
+
<script module>
|
|
2
|
+
import { defineMeta } from '@storybook/addon-svelte-csf';
|
|
3
|
+
const { Story } = defineMeta({
|
|
4
|
+
title: 'TeraUI / Overview',
|
|
5
|
+
tags: ['!autodocs'],
|
|
6
|
+
});
|
|
7
|
+
</script>
|
|
8
|
+
|
|
9
|
+
<script>
|
|
10
|
+
// Core components
|
|
11
|
+
import { Button } from '../components/button/index.js';
|
|
12
|
+
import { Input } from '../components/input/index.js';
|
|
13
|
+
import { Select } from '../components/select/index.js';
|
|
14
|
+
import { TextArea } from '../components/text-area/index.js';
|
|
15
|
+
import { Checkbox } from '../components/checkbox/index.js';
|
|
16
|
+
import { Switch } from '../components/switch/index.js';
|
|
17
|
+
import { Slider } from '../components/slider/index.js';
|
|
18
|
+
import { Label } from '../components/label/index.js';
|
|
19
|
+
import { Combobox } from '../components/combobox/index.js';
|
|
20
|
+
|
|
21
|
+
// Navigation
|
|
22
|
+
import { Tabs, TabsList, TabsItem, TabsContent } from '../components/tabs/index.js';
|
|
23
|
+
import { Accordion, AccordionItem, AccordionTrigger, AccordionContent } from '../components/accordion/index.js';
|
|
24
|
+
|
|
25
|
+
// Overlay
|
|
26
|
+
import { Dialog } from '../components/dialog/index.js';
|
|
27
|
+
import { Drawer } from '../components/drawer/index.js';
|
|
28
|
+
import { Popover } from '../components/popover/index.js';
|
|
29
|
+
import { DropdownMenu, DropdownMenuItem, DropdownMenuSeparator } from '../components/dropdown-menu/index.js';
|
|
30
|
+
import { ToastContainer, toast } from '../components/toast/index.js';
|
|
31
|
+
import { Tooltip } from '../components/tooltip/index.js';
|
|
32
|
+
|
|
33
|
+
// Feedback & display
|
|
34
|
+
import { Card } from '../components/card/index.js';
|
|
35
|
+
import { Badge } from '../components/badge/index.js';
|
|
36
|
+
import { Alert } from '../components/alert/index.js';
|
|
37
|
+
import { Spinner } from '../components/spinner/index.js';
|
|
38
|
+
import { Skeleton } from '../components/skeleton/index.js';
|
|
39
|
+
import { Table } from '../components/table/index.js';
|
|
40
|
+
|
|
41
|
+
// Identity
|
|
42
|
+
import { Avatar } from '../components/avatar/index.js';
|
|
43
|
+
import { BrandLogo } from '../components/brand-logo/index.js';
|
|
44
|
+
import { StarRating} from '../components/star-rating/index.js';
|
|
45
|
+
import { LightDarkToggle } from '../components/light-dark-toggle/index.js';
|
|
46
|
+
|
|
47
|
+
// AI components
|
|
48
|
+
import { ChatBubble, ThinkingLoader, SuggestionChips, StreamText, PromptInput } from '../components/ai/index.js';
|
|
49
|
+
|
|
50
|
+
// Marketing components
|
|
51
|
+
import { FeatureCard, StatBlock, PricingCard, TestimonialCard } from '../components/marketing/index.js';
|
|
52
|
+
|
|
53
|
+
// State
|
|
54
|
+
let tabValue = $state('t1');
|
|
55
|
+
let dialogOpen = $state(false);
|
|
56
|
+
let drawerOpen = $state(false);
|
|
57
|
+
let promptValue = $state('');
|
|
58
|
+
let streamKey = $state(0);
|
|
59
|
+
</script>
|
|
60
|
+
|
|
61
|
+
<Story name="All Components">
|
|
62
|
+
<ToastContainer/>
|
|
63
|
+
<div class="overview-wrap">
|
|
64
|
+
|
|
65
|
+
<!-- ── BUTTONS ── -->
|
|
66
|
+
<section>
|
|
67
|
+
<h2 class="section-label">Buttons</h2>
|
|
68
|
+
<div class="row">
|
|
69
|
+
<Button variant="primary">Primary</Button>
|
|
70
|
+
<Button variant="default">Default</Button>
|
|
71
|
+
<Button variant="dashed">Dashed</Button>
|
|
72
|
+
<Button variant="text">Text</Button>
|
|
73
|
+
<Button variant="link">Link</Button>
|
|
74
|
+
<Button variant="primary" loading>Loading</Button>
|
|
75
|
+
<Button variant="primary" disabled>Disabled</Button>
|
|
76
|
+
<Button variant="primary" danger>Danger</Button>
|
|
77
|
+
<Button variant="primary" size="sm">Small</Button>
|
|
78
|
+
<Button variant="primary" size="lg">Large</Button>
|
|
79
|
+
</div>
|
|
80
|
+
</section>
|
|
81
|
+
|
|
82
|
+
<!-- ── FORM INPUTS ── -->
|
|
83
|
+
<section>
|
|
84
|
+
<h2 class="section-label">Form — Input & Select</h2>
|
|
85
|
+
<div class="row">
|
|
86
|
+
<Input placeholder="Default input" style="width:180px"/>
|
|
87
|
+
<Input placeholder="Filled variant" variant="filled" style="width:180px"/>
|
|
88
|
+
<Input placeholder="Error state" status="error" style="width:180px"/>
|
|
89
|
+
<Input placeholder="Disabled" disabled style="width:180px"/>
|
|
90
|
+
<Select
|
|
91
|
+
options={[{value:'a',label:'Option A'},{value:'b',label:'Option B'},{value:'c',label:'Option C'}]}
|
|
92
|
+
placeholder="Flat select"
|
|
93
|
+
style="width:180px"
|
|
94
|
+
/>
|
|
95
|
+
<Select
|
|
96
|
+
groups={[
|
|
97
|
+
{label:'Frontend', options:[{value:'ts',label:'TypeScript'},{value:'svelte',label:'Svelte'}]},
|
|
98
|
+
{label:'Backend', options:[{value:'go',label:'Go'},{value:'py',label:'Python'}]},
|
|
99
|
+
]}
|
|
100
|
+
placeholder="Grouped select"
|
|
101
|
+
style="width:180px"
|
|
102
|
+
/>
|
|
103
|
+
</div>
|
|
104
|
+
</section>
|
|
105
|
+
|
|
106
|
+
<!-- ── COMBOBOX ── -->
|
|
107
|
+
<section>
|
|
108
|
+
<h2 class="section-label">Form — Combobox</h2>
|
|
109
|
+
<div class="row">
|
|
110
|
+
<Combobox
|
|
111
|
+
type="single"
|
|
112
|
+
items={[
|
|
113
|
+
{value:'ts',label:'TypeScript'},{value:'js',label:'JavaScript'},
|
|
114
|
+
{value:'py',label:'Python'},{value:'go',label:'Go'},
|
|
115
|
+
{value:'rust',label:'Rust'},{value:'java',label:'Java'},
|
|
116
|
+
]}
|
|
117
|
+
placeholder="Search language…"
|
|
118
|
+
style="width:220px"
|
|
119
|
+
/>
|
|
120
|
+
<Combobox
|
|
121
|
+
type="multiple"
|
|
122
|
+
items={[
|
|
123
|
+
{value:'react',label:'React'},{value:'svelte',label:'Svelte'},
|
|
124
|
+
{value:'vue',label:'Vue'},{value:'angular',label:'Angular'},
|
|
125
|
+
]}
|
|
126
|
+
placeholder="Pick frameworks…"
|
|
127
|
+
style="width:240px"
|
|
128
|
+
/>
|
|
129
|
+
</div>
|
|
130
|
+
</section>
|
|
131
|
+
|
|
132
|
+
<section>
|
|
133
|
+
<h2 class="section-label">Form — TextArea</h2>
|
|
134
|
+
<div class="row">
|
|
135
|
+
<TextArea placeholder="Default textarea" style="width:220px"/>
|
|
136
|
+
<TextArea placeholder="Filled variant" variant="filled" style="width:220px"/>
|
|
137
|
+
<TextArea placeholder="Error state" status="error" style="width:220px"/>
|
|
138
|
+
</div>
|
|
139
|
+
</section>
|
|
140
|
+
|
|
141
|
+
<section>
|
|
142
|
+
<h2 class="section-label">Form — Controls</h2>
|
|
143
|
+
<div class="row" style="align-items:center">
|
|
144
|
+
<Label>Label component</Label>
|
|
145
|
+
<Checkbox>Accept terms</Checkbox>
|
|
146
|
+
<Checkbox checked>Pre-checked</Checkbox>
|
|
147
|
+
<Switch/>
|
|
148
|
+
<Switch checked/>
|
|
149
|
+
<div style="width:200px"><Slider min={0} max={100} step={1} value={40}/></div>
|
|
150
|
+
<div style="height:80px; display:flex; align-items:center;">
|
|
151
|
+
<Slider min={0} max={100} step={1} value={60} orientation="vertical" class="h-full" />
|
|
152
|
+
</div>
|
|
153
|
+
</div>
|
|
154
|
+
</section>
|
|
155
|
+
|
|
156
|
+
<!-- ── CARDS ── -->
|
|
157
|
+
<section>
|
|
158
|
+
<h2 class="section-label">Cards</h2>
|
|
159
|
+
<div class="row" style="align-items:stretch">
|
|
160
|
+
<Card style="width:160px"><p class="text-sm font-semibold">Default</p><p class="text-xs text-text-tertiary mt-1">shadow-sm</p></Card>
|
|
161
|
+
<Card variant="elevated" style="width:160px"><p class="text-sm font-semibold">Elevated</p><p class="text-xs text-text-tertiary mt-1">shadow-md</p></Card>
|
|
162
|
+
<Card variant="bordered" style="width:160px"><p class="text-sm font-semibold">Bordered</p><p class="text-xs text-text-tertiary mt-1">border only</p></Card>
|
|
163
|
+
<Card variant="ghost" style="width:160px"><p class="text-sm font-semibold">Ghost</p><p class="text-xs text-text-tertiary mt-1">no bg</p></Card>
|
|
164
|
+
<Card clickable style="width:160px"><p class="text-sm font-semibold">Clickable ↑</p><p class="text-xs text-text-tertiary mt-1">hover to lift</p></Card>
|
|
165
|
+
<Card loading style="width:160px"><p class="text-sm">Loading state</p></Card>
|
|
166
|
+
</div>
|
|
167
|
+
</section>
|
|
168
|
+
|
|
169
|
+
<!-- ── BADGES ── -->
|
|
170
|
+
<section>
|
|
171
|
+
<h2 class="section-label">Badges</h2>
|
|
172
|
+
<div class="row">
|
|
173
|
+
<Badge>Default</Badge>
|
|
174
|
+
<Badge variant="primary">Primary</Badge>
|
|
175
|
+
<Badge variant="success">Success</Badge>
|
|
176
|
+
<Badge variant="error">Error</Badge>
|
|
177
|
+
<Badge variant="warning">Warning</Badge>
|
|
178
|
+
<Badge variant="info">Info</Badge>
|
|
179
|
+
<Badge variant="primary" dot>With dot</Badge>
|
|
180
|
+
<Badge variant="success" closable>Closable</Badge>
|
|
181
|
+
<Badge variant="primary" size="sm">Small</Badge>
|
|
182
|
+
</div>
|
|
183
|
+
</section>
|
|
184
|
+
|
|
185
|
+
<!-- ── ALERTS ── -->
|
|
186
|
+
<section>
|
|
187
|
+
<h2 class="section-label">Alerts</h2>
|
|
188
|
+
<div class="col" style="max-width:520px">
|
|
189
|
+
<Alert variant="info" title="Info">Informational message.</Alert>
|
|
190
|
+
<Alert variant="success" title="Done">Operation completed successfully.</Alert>
|
|
191
|
+
<Alert variant="warning" title="Warning" closable>Check this carefully before proceeding.</Alert>
|
|
192
|
+
<Alert variant="error" title="Error">Something went wrong. Please try again.</Alert>
|
|
193
|
+
</div>
|
|
194
|
+
</section>
|
|
195
|
+
|
|
196
|
+
<!-- ── LOADING STATES ── -->
|
|
197
|
+
<section>
|
|
198
|
+
<h2 class="section-label">Loading States — Spinner</h2>
|
|
199
|
+
<div class="row">
|
|
200
|
+
<Spinner size="xs"/>
|
|
201
|
+
<Spinner size="sm"/>
|
|
202
|
+
<Spinner size="md"/>
|
|
203
|
+
<Spinner size="lg"/>
|
|
204
|
+
<div class="bg-primary-600 p-2 rounded"><Spinner color="white" size="md"/></div>
|
|
205
|
+
</div>
|
|
206
|
+
</section>
|
|
207
|
+
|
|
208
|
+
<section>
|
|
209
|
+
<h2 class="section-label">Loading States — Skeleton</h2>
|
|
210
|
+
<div class="row" style="align-items:start">
|
|
211
|
+
<div style="width:200px"><Skeleton variant="line" lines={3}/></div>
|
|
212
|
+
<div class="flex gap-2">
|
|
213
|
+
<Skeleton variant="circle" width="40px" height="40px"/>
|
|
214
|
+
<Skeleton variant="circle" width="56px" height="56px"/>
|
|
215
|
+
</div>
|
|
216
|
+
<Skeleton variant="rect" width="160px" height="80px"/>
|
|
217
|
+
</div>
|
|
218
|
+
</section>
|
|
219
|
+
|
|
220
|
+
<!-- ── TOOLTIP ── -->
|
|
221
|
+
<section>
|
|
222
|
+
<h2 class="section-label">Tooltip</h2>
|
|
223
|
+
<div class="row">
|
|
224
|
+
<Tooltip content="Appears on top" side="top"><Button variant="default">Top</Button></Tooltip>
|
|
225
|
+
<Tooltip content="Appears on bottom" side="bottom"><Button variant="default">Bottom</Button></Tooltip>
|
|
226
|
+
<Tooltip content="Appears on the right" side="right"><Button variant="default">Right</Button></Tooltip>
|
|
227
|
+
<Tooltip content="No delay" delay={0}><Button variant="default">Instant</Button></Tooltip>
|
|
228
|
+
<Tooltip content="Aligned start" side="bottom" align="start" sideOffset={4}><Button variant="default">align=start</Button></Tooltip>
|
|
229
|
+
<Tooltip content="16px offset" side="top" sideOffset={16}><Button variant="default">far offset</Button></Tooltip>
|
|
230
|
+
</div>
|
|
231
|
+
</section>
|
|
232
|
+
|
|
233
|
+
<!-- ── TOAST ── -->
|
|
234
|
+
<section>
|
|
235
|
+
<h2 class="section-label">Toast / Notifications</h2>
|
|
236
|
+
<div class="row">
|
|
237
|
+
<Button variant="primary" onclick={() => toast.success('Saved!', { description: 'Changes applied.' })}>Success</Button>
|
|
238
|
+
<Button variant="default" onclick={() => toast.error('Failed', { description: 'Please try again.' })}>Error</Button>
|
|
239
|
+
<Button variant="default" onclick={() => toast.info('New update available')}>Info</Button>
|
|
240
|
+
<Button variant="default" onclick={() => toast.warning('Storage almost full')}>Warning</Button>
|
|
241
|
+
<Button variant="default" onclick={() => toast.success('File ready', { action: { label: 'View', onclick: () => {} } })}>With action</Button>
|
|
242
|
+
</div>
|
|
243
|
+
</section>
|
|
244
|
+
|
|
245
|
+
<!-- ── OVERLAY — DIALOG ── -->
|
|
246
|
+
<section>
|
|
247
|
+
<h2 class="section-label">Dialog</h2>
|
|
248
|
+
<div class="row">
|
|
249
|
+
<Button variant="default" onclick={() => dialogOpen = true}>Open Dialog</Button>
|
|
250
|
+
</div>
|
|
251
|
+
<Dialog bind:open={dialogOpen} size="sm">
|
|
252
|
+
{#snippet header()}Dialog Title{/snippet}
|
|
253
|
+
<p class="text-sm text-text-secondary">This is the dialog body. Confirm or cancel the action.</p>
|
|
254
|
+
{#snippet footer()}
|
|
255
|
+
<Button variant="default" onclick={() => dialogOpen = false}>Cancel</Button>
|
|
256
|
+
<Button variant="primary" onclick={() => dialogOpen = false}>Confirm</Button>
|
|
257
|
+
{/snippet}
|
|
258
|
+
</Dialog>
|
|
259
|
+
</section>
|
|
260
|
+
|
|
261
|
+
<!-- ── OVERLAY — DRAWER ── -->
|
|
262
|
+
<section>
|
|
263
|
+
<h2 class="section-label">Drawer</h2>
|
|
264
|
+
<div class="row">
|
|
265
|
+
<Button variant="default" onclick={() => drawerOpen = true}>Open Drawer</Button>
|
|
266
|
+
</div>
|
|
267
|
+
<Drawer bind:open={drawerOpen} side="right" size="md">
|
|
268
|
+
{#snippet header()}<span class="font-semibold">Right Drawer</span>{/snippet}
|
|
269
|
+
<p class="text-sm text-text-secondary">Drawer body content. Slides in from the edge.</p>
|
|
270
|
+
{#snippet footer()}
|
|
271
|
+
<div class="flex gap-2 justify-end">
|
|
272
|
+
<Button variant="default" onclick={() => drawerOpen = false}>Cancel</Button>
|
|
273
|
+
<Button variant="primary" onclick={() => drawerOpen = false}>Save</Button>
|
|
274
|
+
</div>
|
|
275
|
+
{/snippet}
|
|
276
|
+
</Drawer>
|
|
277
|
+
</section>
|
|
278
|
+
|
|
279
|
+
<!-- ── OVERLAY — DROPDOWN & POPOVER ── -->
|
|
280
|
+
<section>
|
|
281
|
+
<h2 class="section-label">DropdownMenu & Popover</h2>
|
|
282
|
+
<div class="row">
|
|
283
|
+
<DropdownMenu>
|
|
284
|
+
{#snippet trigger()}
|
|
285
|
+
<Button variant="default">Dropdown ▾</Button>
|
|
286
|
+
{/snippet}
|
|
287
|
+
<DropdownMenuItem>Edit</DropdownMenuItem>
|
|
288
|
+
<DropdownMenuItem>Duplicate</DropdownMenuItem>
|
|
289
|
+
<DropdownMenuSeparator/>
|
|
290
|
+
<DropdownMenuItem danger>Delete</DropdownMenuItem>
|
|
291
|
+
</DropdownMenu>
|
|
292
|
+
|
|
293
|
+
<Popover>
|
|
294
|
+
{#snippet trigger()}
|
|
295
|
+
<Button variant="default">Popover ▾</Button>
|
|
296
|
+
{/snippet}
|
|
297
|
+
<div class="p-3 text-sm max-w-[200px]">
|
|
298
|
+
<p class="font-medium mb-1">Quick info</p>
|
|
299
|
+
<p class="text-text-secondary text-xs">Floating panel powered by bits-ui Popover.</p>
|
|
300
|
+
</div>
|
|
301
|
+
</Popover>
|
|
302
|
+
</div>
|
|
303
|
+
</section>
|
|
304
|
+
|
|
305
|
+
<!-- ── NAVIGATION — TABS ── -->
|
|
306
|
+
<section>
|
|
307
|
+
<h2 class="section-label">Navigation — Tabs</h2>
|
|
308
|
+
<Tabs bind:value={tabValue} style="max-width:480px">
|
|
309
|
+
<TabsList>
|
|
310
|
+
<TabsItem value="t1">Overview</TabsItem>
|
|
311
|
+
<TabsItem value="t2">Details</TabsItem>
|
|
312
|
+
<TabsItem value="t3">Settings</TabsItem>
|
|
313
|
+
</TabsList>
|
|
314
|
+
<TabsContent value="t1"><p class="p-3 text-sm text-text-secondary">Overview content goes here.</p></TabsContent>
|
|
315
|
+
<TabsContent value="t2"><p class="p-3 text-sm text-text-secondary">Details panel content.</p></TabsContent>
|
|
316
|
+
<TabsContent value="t3"><p class="p-3 text-sm text-text-secondary">Settings form content.</p></TabsContent>
|
|
317
|
+
</Tabs>
|
|
318
|
+
|
|
319
|
+
<Tabs bind:value={tabValue} variant="ios" style="max-width:480px">
|
|
320
|
+
<TabsList>
|
|
321
|
+
<TabsItem value="t1">Overview</TabsItem>
|
|
322
|
+
<TabsItem value="t2">Details</TabsItem>
|
|
323
|
+
<TabsItem value="t3">Settings</TabsItem>
|
|
324
|
+
</TabsList>
|
|
325
|
+
<TabsContent value="t1"><p class="p-3 text-sm text-text-secondary">Overview content goes here.</p></TabsContent>
|
|
326
|
+
<TabsContent value="t2"><p class="p-3 text-sm text-text-secondary">Details panel content.</p></TabsContent>
|
|
327
|
+
<TabsContent value="t3"><p class="p-3 text-sm text-text-secondary">Settings form content.</p></TabsContent>
|
|
328
|
+
</Tabs>
|
|
329
|
+
|
|
330
|
+
<!-- Vertical tabs (line variant + orientation) -->
|
|
331
|
+
<div style="height:180px; max-width:480px; margin-top:1rem">
|
|
332
|
+
<Tabs variant="line" orientation="vertical" class="h-full">
|
|
333
|
+
<TabsList class="w-28">
|
|
334
|
+
<TabsItem value="s1">Profile</TabsItem>
|
|
335
|
+
<TabsItem value="s2">Account</TabsItem>
|
|
336
|
+
<TabsItem value="s3">Security</TabsItem>
|
|
337
|
+
</TabsList>
|
|
338
|
+
<TabsContent value="s1"><p class="p-3 text-sm text-text-secondary">Profile settings content.</p></TabsContent>
|
|
339
|
+
<TabsContent value="s2"><p class="p-3 text-sm text-text-secondary">Account settings content.</p></TabsContent>
|
|
340
|
+
<TabsContent value="s3"><p class="p-3 text-sm text-text-secondary">Security settings content.</p></TabsContent>
|
|
341
|
+
</Tabs>
|
|
342
|
+
</div>
|
|
343
|
+
</section>
|
|
344
|
+
|
|
345
|
+
<!-- ── NAVIGATION — ACCORDION ── -->
|
|
346
|
+
<section>
|
|
347
|
+
<h2 class="section-label">Navigation — Accordion</h2>
|
|
348
|
+
<Accordion type="single" value="a1" style="max-width:480px">
|
|
349
|
+
<AccordionItem value="a1">
|
|
350
|
+
<AccordionTrigger>What is TeraUI?</AccordionTrigger>
|
|
351
|
+
<AccordionContent>A Svelte 5 component library with multi-theme support and Tailwind CSS v4.</AccordionContent>
|
|
352
|
+
</AccordionItem>
|
|
353
|
+
<AccordionItem value="a2">
|
|
354
|
+
<AccordionTrigger>How do themes work?</AccordionTrigger>
|
|
355
|
+
<AccordionContent>Themes are applied via <code>data-theme</code> on the root element. All tokens update automatically.</AccordionContent>
|
|
356
|
+
</AccordionItem>
|
|
357
|
+
<AccordionItem value="a3">
|
|
358
|
+
<AccordionTrigger>Is dark mode supported?</AccordionTrigger>
|
|
359
|
+
<AccordionContent>Yes — add the <code>.dark</code> class to enable dark mode for any theme.</AccordionContent>
|
|
360
|
+
</AccordionItem>
|
|
361
|
+
</Accordion>
|
|
362
|
+
</section>
|
|
363
|
+
|
|
364
|
+
<!-- ── DATA — TABLE ── -->
|
|
365
|
+
<section>
|
|
366
|
+
<h2 class="section-label">Data — Table</h2>
|
|
367
|
+
<Table
|
|
368
|
+
columns={[
|
|
369
|
+
{ key: 'name', label: 'Name' },
|
|
370
|
+
{ key: 'role', label: 'Role' },
|
|
371
|
+
{ key: 'status', label: 'Status' },
|
|
372
|
+
]}
|
|
373
|
+
data={[
|
|
374
|
+
{ name: 'Alice Martin', role: 'Designer', status: 'Active' },
|
|
375
|
+
{ name: 'Bob Johnson', role: 'Developer', status: 'Inactive' },
|
|
376
|
+
{ name: 'Carol Lee', role: 'PM', status: 'Active' },
|
|
377
|
+
]}
|
|
378
|
+
striped
|
|
379
|
+
style="max-width:480px"
|
|
380
|
+
/>
|
|
381
|
+
</section>
|
|
382
|
+
|
|
383
|
+
<!-- ── IDENTITY ── -->
|
|
384
|
+
<section>
|
|
385
|
+
<h2 class="section-label">Identity — Avatar, StarRating, BrandLogo</h2>
|
|
386
|
+
<div class="row">
|
|
387
|
+
<Avatar size="xs" fallback="AB"/>
|
|
388
|
+
<Avatar size="sm" fallback="CD"/>
|
|
389
|
+
<Avatar size="md" fallback="EF"/>
|
|
390
|
+
<Avatar size="lg" fallback="GH"/>
|
|
391
|
+
<Avatar size="xl" fallback="IJ"/>
|
|
392
|
+
<StarRating value={3} readonly/>
|
|
393
|
+
<StarRating value={4.5} readonly/>
|
|
394
|
+
<LightDarkToggle/>
|
|
395
|
+
<BrandLogo/>
|
|
396
|
+
</div>
|
|
397
|
+
</section>
|
|
398
|
+
|
|
399
|
+
<!-- ── AI COMPONENTS ── -->
|
|
400
|
+
<section>
|
|
401
|
+
<h2 class="section-label">AI — Chat</h2>
|
|
402
|
+
<div class="col" style="max-width:420px">
|
|
403
|
+
<ChatBubble role="user" content="How do I install TeraUI?"/>
|
|
404
|
+
<ChatBubble role="assistant" content="Run npm install tera-system-ui and import what you need."/>
|
|
405
|
+
<ThinkingLoader variant="wave" label="Thinking..."/>
|
|
406
|
+
</div>
|
|
407
|
+
</section>
|
|
408
|
+
|
|
409
|
+
<section>
|
|
410
|
+
<h2 class="section-label">AI — StreamText</h2>
|
|
411
|
+
<div class="flex flex-col gap-3 max-w-md">
|
|
412
|
+
<button class="text-xs text-interactive underline text-left w-fit" onclick={() => streamKey++}>↻ Replay</button>
|
|
413
|
+
{#key streamKey}
|
|
414
|
+
<StreamText text="TeraUI is a modern Svelte 5 component library with Professional, AI, and Marketing themes." speed="normal"/>
|
|
415
|
+
{/key}
|
|
416
|
+
</div>
|
|
417
|
+
</section>
|
|
418
|
+
|
|
419
|
+
<section>
|
|
420
|
+
<h2 class="section-label">AI — PromptInput & SuggestionChips</h2>
|
|
421
|
+
<div class="max-w-md flex flex-col gap-4">
|
|
422
|
+
<SuggestionChips suggestions={['Explain themes', 'Show Button variants', 'Dark mode setup', 'API docs']}/>
|
|
423
|
+
<PromptInput
|
|
424
|
+
bind:value={promptValue}
|
|
425
|
+
placeholder="Ask me anything…"
|
|
426
|
+
onsubmit={(v) => { toast.success(`Sent: ${v}`); promptValue = ''; }}
|
|
427
|
+
/>
|
|
428
|
+
</div>
|
|
429
|
+
</section>
|
|
430
|
+
|
|
431
|
+
<!-- ── MARKETING COMPONENTS ── -->
|
|
432
|
+
<section>
|
|
433
|
+
<h2 class="section-label">Marketing — Stats</h2>
|
|
434
|
+
<div class="row" style="align-items:start">
|
|
435
|
+
<StatBlock value="2.4M" label="Monthly active users" trend="+18%" trendDirection="up"/>
|
|
436
|
+
<StatBlock value="99.9%" label="Uptime SLA" trend="-0.01%" trendDirection="down"/>
|
|
437
|
+
<StatBlock value="$2.1M" label="ARR" trend="+34%" trendDirection="up"/>
|
|
438
|
+
<StatBlock value="4.8★" label="Avg rating"/>
|
|
439
|
+
</div>
|
|
440
|
+
</section>
|
|
441
|
+
|
|
442
|
+
<section>
|
|
443
|
+
<h2 class="section-label">Marketing — Feature Cards</h2>
|
|
444
|
+
<div class="row" style="align-items:stretch">
|
|
445
|
+
<FeatureCard title="Lightning fast" description="Svelte 5 with zero overhead." variant="default" style="width:190px"/>
|
|
446
|
+
<FeatureCard title="Multi-theme" description="Three themes, one API." variant="bordered" style="width:190px"/>
|
|
447
|
+
<FeatureCard title="Accessible" description="WCAG 2.1 AA compliant." variant="elevated" style="width:190px"/>
|
|
448
|
+
<FeatureCard title="Gradient border" description="Premium section treatment." variant="gradient-border" style="width:190px"/>
|
|
449
|
+
</div>
|
|
450
|
+
</section>
|
|
451
|
+
|
|
452
|
+
<section>
|
|
453
|
+
<h2 class="section-label">Marketing — Pricing</h2>
|
|
454
|
+
<div class="row" style="align-items:end">
|
|
455
|
+
<PricingCard
|
|
456
|
+
plan="Starter" price="Free" period="forever"
|
|
457
|
+
description="Great for side projects."
|
|
458
|
+
features={['5 projects', 'Community support']}
|
|
459
|
+
cta="Get started"
|
|
460
|
+
style="width:210px"
|
|
461
|
+
/>
|
|
462
|
+
<PricingCard
|
|
463
|
+
plan="Pro" price="$29" period="month"
|
|
464
|
+
description="For growing teams."
|
|
465
|
+
features={['Unlimited projects', 'Priority support', 'Custom themes']}
|
|
466
|
+
cta="Start trial"
|
|
467
|
+
popular variant="featured"
|
|
468
|
+
style="width:210px"
|
|
469
|
+
/>
|
|
470
|
+
<PricingCard
|
|
471
|
+
plan="Enterprise" price="$99" period="month"
|
|
472
|
+
description="Advanced needs."
|
|
473
|
+
features={['Everything', 'SSO', 'SLA']}
|
|
474
|
+
cta="Contact sales"
|
|
475
|
+
style="width:210px"
|
|
476
|
+
/>
|
|
477
|
+
</div>
|
|
478
|
+
</section>
|
|
479
|
+
|
|
480
|
+
<section>
|
|
481
|
+
<h2 class="section-label">Marketing — Testimonials</h2>
|
|
482
|
+
<div class="row" style="align-items:stretch">
|
|
483
|
+
<TestimonialCard
|
|
484
|
+
quote="TeraUI cut our design-to-code time in half. The multi-theme system is brilliant."
|
|
485
|
+
name="Sarah Chen" role="Lead Designer" company="Acme Corp"
|
|
486
|
+
rating={5} style="width:280px"
|
|
487
|
+
/>
|
|
488
|
+
<TestimonialCard
|
|
489
|
+
quote="Finally a Svelte library that doesn't look like a generic admin dashboard."
|
|
490
|
+
name="Marcus Lee" role="Frontend Engineer" company="StartupXYZ"
|
|
491
|
+
rating={5} style="width:280px"
|
|
492
|
+
/>
|
|
493
|
+
</div>
|
|
494
|
+
</section>
|
|
495
|
+
|
|
496
|
+
</div>
|
|
497
|
+
</Story>
|
|
498
|
+
|
|
499
|
+
<style>
|
|
500
|
+
.overview-wrap {
|
|
501
|
+
display: flex;
|
|
502
|
+
flex-direction: column;
|
|
503
|
+
gap: 2.5rem;
|
|
504
|
+
padding: 2rem;
|
|
505
|
+
max-width: 960px;
|
|
506
|
+
}
|
|
507
|
+
|
|
508
|
+
.section-label {
|
|
509
|
+
font-size: 11px;
|
|
510
|
+
font-weight: 600;
|
|
511
|
+
text-transform: uppercase;
|
|
512
|
+
letter-spacing: .08em;
|
|
513
|
+
color: var(--color-text-tertiary);
|
|
514
|
+
margin: 0 0 12px;
|
|
515
|
+
padding-bottom: 8px;
|
|
516
|
+
border-bottom: 1px solid var(--color-border-default);
|
|
517
|
+
}
|
|
518
|
+
|
|
519
|
+
.row {
|
|
520
|
+
display: flex;
|
|
521
|
+
flex-wrap: wrap;
|
|
522
|
+
align-items: center;
|
|
523
|
+
gap: 12px;
|
|
524
|
+
}
|
|
525
|
+
|
|
526
|
+
.col {
|
|
527
|
+
display: flex;
|
|
528
|
+
flex-direction: column;
|
|
529
|
+
gap: 10px;
|
|
530
|
+
}
|
|
531
|
+
|
|
532
|
+
section { display: flex; flex-direction: column; }
|
|
533
|
+
</style>
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export default ComponentOverview;
|
|
2
|
+
type ComponentOverview = {
|
|
3
|
+
$on?(type: string, callback: (e: any) => void): () => void;
|
|
4
|
+
$set?(props: Partial<Record<string, never>>): void;
|
|
5
|
+
};
|
|
6
|
+
declare const ComponentOverview: import("svelte").Component<Record<string, never>, {}, "">;
|