@tabelhadev/tabelhawebui 0.28.4
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/LICENSE +661 -0
- package/README.md +222 -0
- package/README.pt-BR.md +217 -0
- package/dist/actions/click-outside.d.ts +3 -0
- package/dist/actions/click-outside.js +12 -0
- package/dist/actions/combobox-keyboard-nav.d.ts +9 -0
- package/dist/actions/combobox-keyboard-nav.js +28 -0
- package/dist/actions/focus-trap.d.ts +1 -0
- package/dist/actions/focus-trap.js +34 -0
- package/dist/actions/scroll-lock.d.ts +1 -0
- package/dist/actions/scroll-lock.js +17 -0
- package/dist/components/actions/Button.svelte +169 -0
- package/dist/components/actions/Button.svelte.d.ts +19 -0
- package/dist/components/appshell/AppShell.svelte +50 -0
- package/dist/components/appshell/AppShell.svelte.d.ts +19 -0
- package/dist/components/appshell/AppShellBottomNav.svelte +67 -0
- package/dist/components/appshell/AppShellBottomNav.svelte.d.ts +9 -0
- package/dist/components/appshell/AppShellContent.svelte +38 -0
- package/dist/components/appshell/AppShellContent.svelte.d.ts +10 -0
- package/dist/components/appshell/AppShellSidebar.svelte +196 -0
- package/dist/components/appshell/AppShellSidebar.svelte.d.ts +15 -0
- package/dist/components/appshell/types.d.ts +6 -0
- package/dist/components/appshell/types.js +1 -0
- package/dist/components/appshell/utils.d.ts +1 -0
- package/dist/components/appshell/utils.js +3 -0
- package/dist/components/card/Card.svelte +31 -0
- package/dist/components/card/Card.svelte.d.ts +9 -0
- package/dist/components/card/CardAction.svelte +57 -0
- package/dist/components/card/CardAction.svelte.d.ts +10 -0
- package/dist/components/card/CardContent.svelte +25 -0
- package/dist/components/card/CardContent.svelte.d.ts +8 -0
- package/dist/components/card/CardDescription.svelte +24 -0
- package/dist/components/card/CardDescription.svelte.d.ts +8 -0
- package/dist/components/card/CardFooter.svelte +25 -0
- package/dist/components/card/CardFooter.svelte.d.ts +8 -0
- package/dist/components/card/CardHeader.svelte +54 -0
- package/dist/components/card/CardHeader.svelte.d.ts +10 -0
- package/dist/components/card/CardTitle.svelte +25 -0
- package/dist/components/card/CardTitle.svelte.d.ts +8 -0
- package/dist/components/chat/ChatMessage.svelte +104 -0
- package/dist/components/chat/ChatMessage.svelte.d.ts +10 -0
- package/dist/components/choice/Listbox.svelte +183 -0
- package/dist/components/choice/Listbox.svelte.d.ts +15 -0
- package/dist/components/choice/MultiSelect.svelte +278 -0
- package/dist/components/choice/MultiSelect.svelte.d.ts +18 -0
- package/dist/components/choice/Rating.svelte +91 -0
- package/dist/components/choice/Rating.svelte.d.ts +12 -0
- package/dist/components/choice/Toggle.svelte +112 -0
- package/dist/components/choice/Toggle.svelte.d.ts +12 -0
- package/dist/components/feedback/Badge.svelte +66 -0
- package/dist/components/feedback/Badge.svelte.d.ts +9 -0
- package/dist/components/feedback/ErrorPage.svelte +99 -0
- package/dist/components/feedback/ErrorPage.svelte.d.ts +13 -0
- package/dist/components/feedback/Message.svelte +130 -0
- package/dist/components/feedback/Message.svelte.d.ts +14 -0
- package/dist/components/feedback/ProgressBar.svelte +69 -0
- package/dist/components/feedback/ProgressBar.svelte.d.ts +8 -0
- package/dist/components/feedback/Skeleton.svelte +47 -0
- package/dist/components/feedback/Skeleton.svelte.d.ts +9 -0
- package/dist/components/feedback/Status.svelte +75 -0
- package/dist/components/feedback/Status.svelte.d.ts +10 -0
- package/dist/components/feedback/StatusPill.svelte +94 -0
- package/dist/components/feedback/StatusPill.svelte.d.ts +13 -0
- package/dist/components/feedback/Toaster.svelte +122 -0
- package/dist/components/feedback/Toaster.svelte.d.ts +7 -0
- package/dist/components/feedback/Tooltip.svelte +126 -0
- package/dist/components/feedback/Tooltip.svelte.d.ts +10 -0
- package/dist/components/feedback/toast.svelte.d.ts +27 -0
- package/dist/components/feedback/toast.svelte.js +23 -0
- package/dist/components/forms/Checkbox.svelte +96 -0
- package/dist/components/forms/Checkbox.svelte.d.ts +11 -0
- package/dist/components/forms/DatePicker.svelte +372 -0
- package/dist/components/forms/DatePicker.svelte.d.ts +21 -0
- package/dist/components/forms/Field.svelte +47 -0
- package/dist/components/forms/Field.svelte.d.ts +11 -0
- package/dist/components/forms/FileUpload.svelte +504 -0
- package/dist/components/forms/FileUpload.svelte.d.ts +43 -0
- package/dist/components/forms/Input.svelte +93 -0
- package/dist/components/forms/Input.svelte.d.ts +9 -0
- package/dist/components/forms/Label.svelte +30 -0
- package/dist/components/forms/Label.svelte.d.ts +10 -0
- package/dist/components/forms/Radio.svelte +80 -0
- package/dist/components/forms/Radio.svelte.d.ts +11 -0
- package/dist/components/forms/Select.svelte +322 -0
- package/dist/components/forms/Select.svelte.d.ts +22 -0
- package/dist/components/forms/TagInput.svelte +336 -0
- package/dist/components/forms/TagInput.svelte.d.ts +16 -0
- package/dist/components/forms/Textarea.svelte +64 -0
- package/dist/components/forms/Textarea.svelte.d.ts +9 -0
- package/dist/components/landing/Landing.svelte +47 -0
- package/dist/components/landing/Landing.svelte.d.ts +8 -0
- package/dist/components/landing/LandingFeatures.svelte +92 -0
- package/dist/components/landing/LandingFeatures.svelte.d.ts +15 -0
- package/dist/components/landing/LandingHero.svelte +92 -0
- package/dist/components/landing/LandingHero.svelte.d.ts +13 -0
- package/dist/components/landing/LandingRoadmap.svelte +42 -0
- package/dist/components/landing/LandingRoadmap.svelte.d.ts +11 -0
- package/dist/components/landing/LandingSection.svelte +25 -0
- package/dist/components/landing/LandingSection.svelte.d.ts +9 -0
- package/dist/components/landing/LandingSectionHeading.svelte +19 -0
- package/dist/components/landing/LandingSectionHeading.svelte.d.ts +10 -0
- package/dist/components/landing/LandingSteps.svelte +100 -0
- package/dist/components/landing/LandingSteps.svelte.d.ts +13 -0
- package/dist/components/layout/BracketLink.svelte +41 -0
- package/dist/components/layout/BracketLink.svelte.d.ts +9 -0
- package/dist/components/layout/Divider.svelte +70 -0
- package/dist/components/layout/Divider.svelte.d.ts +9 -0
- package/dist/components/layout/Eyebrow.svelte +24 -0
- package/dist/components/layout/Eyebrow.svelte.d.ts +8 -0
- package/dist/components/layout/PageHeader.svelte +106 -0
- package/dist/components/layout/PageHeader.svelte.d.ts +15 -0
- package/dist/components/layout/PageSeo.svelte +34 -0
- package/dist/components/layout/PageSeo.svelte.d.ts +10 -0
- package/dist/components/layout/PageShell.svelte +25 -0
- package/dist/components/layout/PageShell.svelte.d.ts +8 -0
- package/dist/components/layout/Panel.svelte +105 -0
- package/dist/components/layout/Panel.svelte.d.ts +12 -0
- package/dist/components/layout/Prose.svelte +101 -0
- package/dist/components/layout/Prose.svelte.d.ts +7 -0
- package/dist/components/layout/RuleCard.svelte +63 -0
- package/dist/components/layout/RuleCard.svelte.d.ts +13 -0
- package/dist/components/layout/SectionHeading.svelte +57 -0
- package/dist/components/layout/SectionHeading.svelte.d.ts +10 -0
- package/dist/components/layout/StatTile.svelte +76 -0
- package/dist/components/layout/StatTile.svelte.d.ts +12 -0
- package/dist/components/layout/TerminalWindow.svelte +81 -0
- package/dist/components/layout/TerminalWindow.svelte.d.ts +9 -0
- package/dist/components/layout/Wordmark.svelte +26 -0
- package/dist/components/layout/Wordmark.svelte.d.ts +8 -0
- package/dist/components/list/List.svelte +40 -0
- package/dist/components/list/List.svelte.d.ts +13 -0
- package/dist/components/list/ListItem.svelte +81 -0
- package/dist/components/list/ListItem.svelte.d.ts +13 -0
- package/dist/components/marketing/MarketingShell.svelte +170 -0
- package/dist/components/marketing/MarketingShell.svelte.d.ts +23 -0
- package/dist/components/marketing/MarketingShellFooter.svelte +92 -0
- package/dist/components/marketing/MarketingShellFooter.svelte.d.ts +14 -0
- package/dist/components/navigation/Accordion.svelte +110 -0
- package/dist/components/navigation/Accordion.svelte.d.ts +15 -0
- package/dist/components/navigation/Carousel.svelte +115 -0
- package/dist/components/navigation/Carousel.svelte.d.ts +12 -0
- package/dist/components/navigation/InstructionStep.svelte +115 -0
- package/dist/components/navigation/InstructionStep.svelte.d.ts +10 -0
- package/dist/components/navigation/InstructionSteps.svelte +39 -0
- package/dist/components/navigation/InstructionSteps.svelte.d.ts +8 -0
- package/dist/components/navigation/Nav.svelte +102 -0
- package/dist/components/navigation/Nav.svelte.d.ts +14 -0
- package/dist/components/navigation/Stepper.svelte +112 -0
- package/dist/components/navigation/Stepper.svelte.d.ts +12 -0
- package/dist/components/navigation/TabCard.svelte +62 -0
- package/dist/components/navigation/TabCard.svelte.d.ts +10 -0
- package/dist/components/navigation/Tabs.svelte +83 -0
- package/dist/components/navigation/Tabs.svelte.d.ts +12 -0
- package/dist/components/navigation/ThemeToggle.svelte +118 -0
- package/dist/components/navigation/ThemeToggle.svelte.d.ts +20 -0
- package/dist/components/overlay/Dialog.svelte +200 -0
- package/dist/components/overlay/Dialog.svelte.d.ts +19 -0
- package/dist/components/overlay/DialogActions.svelte +50 -0
- package/dist/components/overlay/DialogActions.svelte.d.ts +9 -0
- package/dist/components/overlay/Dropdown.svelte +110 -0
- package/dist/components/overlay/Dropdown.svelte.d.ts +10 -0
- package/dist/components/overlay/FloatingActionPill.svelte +96 -0
- package/dist/components/overlay/FloatingActionPill.svelte.d.ts +14 -0
- package/dist/components/overlay/Sidebar.svelte +258 -0
- package/dist/components/overlay/Sidebar.svelte.d.ts +18 -0
- package/dist/components/table/Table.svelte +550 -0
- package/dist/components/table/Table.svelte.d.ts +42 -0
- package/dist/components/timeline/Timeline.svelte +25 -0
- package/dist/components/timeline/Timeline.svelte.d.ts +8 -0
- package/dist/components/timeline/TimelineItem.svelte +220 -0
- package/dist/components/timeline/TimelineItem.svelte.d.ts +18 -0
- package/dist/index.d.ts +156 -0
- package/dist/index.js +149 -0
- package/dist/theme/theme.css +348 -0
- package/package.json +52 -0
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
<script module lang="ts">
|
|
2
|
+
export type TimelineItemProps = {
|
|
3
|
+
title: string;
|
|
4
|
+
/** Stable unique key for Svelte's keyed `{#each}`. Falls back to the item index when omitted. */
|
|
5
|
+
key?: string;
|
|
6
|
+
subtitle?: string;
|
|
7
|
+
date?: string;
|
|
8
|
+
start?: string;
|
|
9
|
+
end?: string;
|
|
10
|
+
location?: string;
|
|
11
|
+
link?: string;
|
|
12
|
+
details?: string[];
|
|
13
|
+
skills?: string[];
|
|
14
|
+
isLast?: boolean;
|
|
15
|
+
nowLabel?: string;
|
|
16
|
+
};
|
|
17
|
+
</script>
|
|
18
|
+
|
|
19
|
+
<script lang="ts">
|
|
20
|
+
let {
|
|
21
|
+
title,
|
|
22
|
+
subtitle,
|
|
23
|
+
date,
|
|
24
|
+
start,
|
|
25
|
+
end,
|
|
26
|
+
location,
|
|
27
|
+
link,
|
|
28
|
+
details = [],
|
|
29
|
+
skills = [],
|
|
30
|
+
isLast = false,
|
|
31
|
+
nowLabel = 'agora'
|
|
32
|
+
}: TimelineItemProps = $props();
|
|
33
|
+
|
|
34
|
+
const current = $derived(!date && !!start && !end);
|
|
35
|
+
const meta = $derived(date ?? (start ? `${start} — ${end || nowLabel}` : ''));
|
|
36
|
+
</script>
|
|
37
|
+
|
|
38
|
+
<li class="twui-timeline-item">
|
|
39
|
+
<div class="twui-timeline-col">
|
|
40
|
+
{#if !isLast}
|
|
41
|
+
<span class="twui-timeline-rail" aria-hidden="true"></span>
|
|
42
|
+
{/if}
|
|
43
|
+
<span
|
|
44
|
+
class="twui-timeline-dot {current ? 'twui-timeline-dot-current' : ''}"
|
|
45
|
+
aria-hidden="true"
|
|
46
|
+
></span>
|
|
47
|
+
</div>
|
|
48
|
+
<div class="twui-timeline-body">
|
|
49
|
+
{#if meta || location}
|
|
50
|
+
<div class="twui-timeline-meta">
|
|
51
|
+
{#if meta}
|
|
52
|
+
<span class="twui-timeline-date {current ? 'twui-timeline-date-current' : ''}"
|
|
53
|
+
>{meta}</span
|
|
54
|
+
>
|
|
55
|
+
{/if}
|
|
56
|
+
{#if location}
|
|
57
|
+
<span class="twui-timeline-location">· {location}</span>
|
|
58
|
+
{/if}
|
|
59
|
+
</div>
|
|
60
|
+
{/if}
|
|
61
|
+
<h3 class="twui-timeline-title">
|
|
62
|
+
{#if link}
|
|
63
|
+
<a href={link} target="_blank" rel="noreferrer">{title}</a>
|
|
64
|
+
{:else}
|
|
65
|
+
{title}
|
|
66
|
+
{/if}
|
|
67
|
+
</h3>
|
|
68
|
+
{#if subtitle}
|
|
69
|
+
<p class="twui-timeline-subtitle">{subtitle}</p>
|
|
70
|
+
{/if}
|
|
71
|
+
{#if details.length > 0}
|
|
72
|
+
<ul class="twui-timeline-details">
|
|
73
|
+
{#each details as detail (detail)}
|
|
74
|
+
<li>{detail}</li>
|
|
75
|
+
{/each}
|
|
76
|
+
</ul>
|
|
77
|
+
{/if}
|
|
78
|
+
{#if skills.length > 0}
|
|
79
|
+
<div class="twui-timeline-skills">
|
|
80
|
+
{#each skills as skill (skill)}
|
|
81
|
+
<span class="twui-timeline-skill"
|
|
82
|
+
><span class="twui-timeline-skill-bracket">[</span>{skill}<span
|
|
83
|
+
class="twui-timeline-skill-bracket"
|
|
84
|
+
>]</span
|
|
85
|
+
></span
|
|
86
|
+
>
|
|
87
|
+
{/each}
|
|
88
|
+
</div>
|
|
89
|
+
{/if}
|
|
90
|
+
</div>
|
|
91
|
+
</li>
|
|
92
|
+
|
|
93
|
+
<style>
|
|
94
|
+
.twui-timeline-item {
|
|
95
|
+
display: grid;
|
|
96
|
+
grid-template-columns: 1.5rem 1fr;
|
|
97
|
+
column-gap: 16px;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
.twui-timeline-col {
|
|
101
|
+
position: relative;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
.twui-timeline-rail {
|
|
105
|
+
position: absolute;
|
|
106
|
+
top: 0;
|
|
107
|
+
bottom: 0;
|
|
108
|
+
left: 50%;
|
|
109
|
+
width: 1px;
|
|
110
|
+
transform: translateX(-50%);
|
|
111
|
+
background: var(--twui-rule);
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
.twui-timeline-dot {
|
|
115
|
+
display: block;
|
|
116
|
+
position: relative;
|
|
117
|
+
z-index: 10;
|
|
118
|
+
margin-top: 6px;
|
|
119
|
+
margin-left: auto;
|
|
120
|
+
margin-right: auto;
|
|
121
|
+
width: 10px;
|
|
122
|
+
height: 10px;
|
|
123
|
+
border: 2px solid var(--twui-accent);
|
|
124
|
+
border-radius: 9999px;
|
|
125
|
+
background: var(--twui-paper);
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
.twui-timeline-dot-current {
|
|
129
|
+
border-color: var(--twui-signal);
|
|
130
|
+
background: var(--twui-signal-soft);
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
.twui-timeline-body {
|
|
134
|
+
min-width: 0;
|
|
135
|
+
padding-bottom: 40px;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
.twui-timeline-meta {
|
|
139
|
+
display: flex;
|
|
140
|
+
flex-wrap: wrap;
|
|
141
|
+
align-items: baseline;
|
|
142
|
+
gap: 0 12px;
|
|
143
|
+
font-family: var(--twui-font-mono);
|
|
144
|
+
font-size: 12px;
|
|
145
|
+
color: var(--twui-ink-faint);
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
.twui-timeline-date-current {
|
|
149
|
+
color: var(--twui-signal);
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
.twui-timeline-title {
|
|
153
|
+
margin: 6px 0 0;
|
|
154
|
+
font-family: var(--twui-font-serif, 'Newsreader', Georgia, serif);
|
|
155
|
+
font-size: 20px;
|
|
156
|
+
font-weight: 500;
|
|
157
|
+
color: var(--twui-ink);
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
.twui-timeline-title a {
|
|
161
|
+
color: inherit;
|
|
162
|
+
text-decoration: underline;
|
|
163
|
+
text-decoration-color: var(--twui-rule);
|
|
164
|
+
text-decoration-thickness: 1px;
|
|
165
|
+
text-underline-offset: 4px;
|
|
166
|
+
transition:
|
|
167
|
+
color 0.15s ease,
|
|
168
|
+
text-decoration-color 0.15s ease;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
.twui-timeline-title a:hover {
|
|
172
|
+
color: var(--twui-accent);
|
|
173
|
+
text-decoration-color: var(--twui-accent);
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
.twui-timeline-subtitle {
|
|
177
|
+
margin: 2px 0 0;
|
|
178
|
+
font-family: var(--twui-font-mono);
|
|
179
|
+
font-size: 12px;
|
|
180
|
+
color: var(--twui-ink-soft);
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
.twui-timeline-details {
|
|
184
|
+
margin: 12px 0 0;
|
|
185
|
+
display: flex;
|
|
186
|
+
flex-direction: column;
|
|
187
|
+
gap: 6px;
|
|
188
|
+
font-family: var(--twui-font-serif, 'Newsreader', Georgia, serif);
|
|
189
|
+
font-size: 16px;
|
|
190
|
+
color: var(--twui-ink-soft);
|
|
191
|
+
list-style: none;
|
|
192
|
+
padding: 0;
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
.twui-timeline-details li {
|
|
196
|
+
position: relative;
|
|
197
|
+
padding-left: 16px;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
.twui-timeline-details li::before {
|
|
201
|
+
content: '—';
|
|
202
|
+
position: absolute;
|
|
203
|
+
left: 0;
|
|
204
|
+
color: var(--twui-ink-faint);
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
.twui-timeline-skills {
|
|
208
|
+
margin-top: 16px;
|
|
209
|
+
display: flex;
|
|
210
|
+
flex-wrap: wrap;
|
|
211
|
+
gap: 4px 12px;
|
|
212
|
+
font-family: var(--twui-font-mono);
|
|
213
|
+
font-size: 12px;
|
|
214
|
+
color: var(--twui-ink-soft);
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
.twui-timeline-skill-bracket {
|
|
218
|
+
color: var(--twui-ink-faint);
|
|
219
|
+
}
|
|
220
|
+
</style>
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export type TimelineItemProps = {
|
|
2
|
+
title: string;
|
|
3
|
+
/** Stable unique key for Svelte's keyed `{#each}`. Falls back to the item index when omitted. */
|
|
4
|
+
key?: string;
|
|
5
|
+
subtitle?: string;
|
|
6
|
+
date?: string;
|
|
7
|
+
start?: string;
|
|
8
|
+
end?: string;
|
|
9
|
+
location?: string;
|
|
10
|
+
link?: string;
|
|
11
|
+
details?: string[];
|
|
12
|
+
skills?: string[];
|
|
13
|
+
isLast?: boolean;
|
|
14
|
+
nowLabel?: string;
|
|
15
|
+
};
|
|
16
|
+
declare const TimelineItem: import("svelte").Component<TimelineItemProps, {}, "">;
|
|
17
|
+
type TimelineItem = ReturnType<typeof TimelineItem>;
|
|
18
|
+
export default TimelineItem;
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
import CardRoot from "./components/card/Card.svelte";
|
|
2
|
+
import CardHeader from "./components/card/CardHeader.svelte";
|
|
3
|
+
import CardTitle from "./components/card/CardTitle.svelte";
|
|
4
|
+
import CardDescription from "./components/card/CardDescription.svelte";
|
|
5
|
+
import CardContent from "./components/card/CardContent.svelte";
|
|
6
|
+
import CardFooter from "./components/card/CardFooter.svelte";
|
|
7
|
+
import CardAction from "./components/card/CardAction.svelte";
|
|
8
|
+
import List from "./components/list/List.svelte";
|
|
9
|
+
import ListItem from "./components/list/ListItem.svelte";
|
|
10
|
+
import TimelineRoot from "./components/timeline/Timeline.svelte";
|
|
11
|
+
import TimelineItem from "./components/timeline/TimelineItem.svelte";
|
|
12
|
+
import type { TimelineItemProps } from "./components/timeline/TimelineItem.svelte";
|
|
13
|
+
import type { ButtonSize, ButtonVariant } from "./components/actions/Button.svelte";
|
|
14
|
+
import type { SelectOption } from "./components/forms/Select.svelte";
|
|
15
|
+
import type { FileUploadError, FileUploadHandler, FileUploadMode } from "./components/forms/FileUpload.svelte";
|
|
16
|
+
export declare const Card: typeof CardRoot & {
|
|
17
|
+
Header: typeof CardHeader;
|
|
18
|
+
Title: typeof CardTitle;
|
|
19
|
+
Description: typeof CardDescription;
|
|
20
|
+
Content: typeof CardContent;
|
|
21
|
+
Footer: typeof CardFooter;
|
|
22
|
+
Action: typeof CardAction;
|
|
23
|
+
};
|
|
24
|
+
export declare const Timeline: typeof TimelineRoot & {
|
|
25
|
+
Item: typeof TimelineItem;
|
|
26
|
+
};
|
|
27
|
+
export declare namespace Timeline {
|
|
28
|
+
type ItemProps = TimelineItemProps;
|
|
29
|
+
}
|
|
30
|
+
export { List, ListItem };
|
|
31
|
+
export { default as Table } from "./components/table/Table.svelte";
|
|
32
|
+
export { buttonVariants, default as Button, } from "./components/actions/Button.svelte";
|
|
33
|
+
export { clickOutside } from "./actions/click-outside";
|
|
34
|
+
export { lockScroll } from "./actions/scroll-lock";
|
|
35
|
+
export { trapFocus } from "./actions/focus-trap";
|
|
36
|
+
export { comboboxKeydown } from "./actions/combobox-keyboard-nav";
|
|
37
|
+
export declare namespace Button {
|
|
38
|
+
type Variant = ButtonVariant;
|
|
39
|
+
type Size = ButtonSize;
|
|
40
|
+
}
|
|
41
|
+
export { default as Input } from "./components/forms/Input.svelte";
|
|
42
|
+
export { default as Textarea } from "./components/forms/Textarea.svelte";
|
|
43
|
+
export { default as Label } from "./components/forms/Label.svelte";
|
|
44
|
+
export { default as Field } from "./components/forms/Field.svelte";
|
|
45
|
+
export { default as Radio } from "./components/forms/Radio.svelte";
|
|
46
|
+
export { default as Checkbox } from "./components/forms/Checkbox.svelte";
|
|
47
|
+
export { default as Select } from "./components/forms/Select.svelte";
|
|
48
|
+
export { default as DatePicker } from "./components/forms/DatePicker.svelte";
|
|
49
|
+
export { default as FileUpload } from "./components/forms/FileUpload.svelte";
|
|
50
|
+
export { default as TagInput } from "./components/forms/TagInput.svelte";
|
|
51
|
+
export declare namespace Select {
|
|
52
|
+
type Option = SelectOption;
|
|
53
|
+
}
|
|
54
|
+
export declare namespace FileUpload {
|
|
55
|
+
type Error = FileUploadError;
|
|
56
|
+
type Mode = FileUploadMode;
|
|
57
|
+
type Handler = FileUploadHandler;
|
|
58
|
+
}
|
|
59
|
+
export { default as Toggle } from "./components/choice/Toggle.svelte";
|
|
60
|
+
export { default as Rating } from "./components/choice/Rating.svelte";
|
|
61
|
+
export { default as MultiSelect } from "./components/choice/MultiSelect.svelte";
|
|
62
|
+
export { default as Listbox } from "./components/choice/Listbox.svelte";
|
|
63
|
+
export { default as Badge } from "./components/feedback/Badge.svelte";
|
|
64
|
+
export { default as Status } from "./components/feedback/Status.svelte";
|
|
65
|
+
export { default as StatusPill } from "./components/feedback/StatusPill.svelte";
|
|
66
|
+
export { default as Message } from "./components/feedback/Message.svelte";
|
|
67
|
+
export { default as ProgressBar } from "./components/feedback/ProgressBar.svelte";
|
|
68
|
+
export { default as ErrorPage } from "./components/feedback/ErrorPage.svelte";
|
|
69
|
+
export { default as Skeleton } from "./components/feedback/Skeleton.svelte";
|
|
70
|
+
export { default as Tooltip } from "./components/feedback/Tooltip.svelte";
|
|
71
|
+
export { default as Toaster } from "./components/feedback/Toaster.svelte";
|
|
72
|
+
export { toast } from "./components/feedback/toast.svelte.js";
|
|
73
|
+
import DialogRoot from "./components/overlay/Dialog.svelte";
|
|
74
|
+
import DialogActions from "./components/overlay/DialogActions.svelte";
|
|
75
|
+
export declare const Dialog: typeof DialogRoot & {
|
|
76
|
+
Actions: typeof DialogActions;
|
|
77
|
+
};
|
|
78
|
+
export { default as Sidebar } from "./components/overlay/Sidebar.svelte";
|
|
79
|
+
export { default as Dropdown } from "./components/overlay/Dropdown.svelte";
|
|
80
|
+
export { default as FloatingActionPill } from "./components/overlay/FloatingActionPill.svelte";
|
|
81
|
+
export { default as Tabs } from "./components/navigation/Tabs.svelte";
|
|
82
|
+
export { default as Accordion } from "./components/navigation/Accordion.svelte";
|
|
83
|
+
export { default as Stepper } from "./components/navigation/Stepper.svelte";
|
|
84
|
+
export { default as Carousel } from "./components/navigation/Carousel.svelte";
|
|
85
|
+
export { default as Nav } from "./components/navigation/Nav.svelte";
|
|
86
|
+
export { default as ThemeToggle } from "./components/navigation/ThemeToggle.svelte";
|
|
87
|
+
export { default as TabCard } from "./components/navigation/TabCard.svelte";
|
|
88
|
+
import InstructionSteps from "./components/navigation/InstructionSteps.svelte";
|
|
89
|
+
import InstructionStep from "./components/navigation/InstructionStep.svelte";
|
|
90
|
+
export declare const Instruction: {
|
|
91
|
+
Steps: import("svelte").Component<{
|
|
92
|
+
children: import("svelte").Snippet;
|
|
93
|
+
class?: string;
|
|
94
|
+
}, {}, "">;
|
|
95
|
+
Step: import("svelte").Component<{
|
|
96
|
+
title?: string;
|
|
97
|
+
action?: import("svelte").Snippet;
|
|
98
|
+
n?: number;
|
|
99
|
+
children: import("svelte").Snippet;
|
|
100
|
+
}, {}, "">;
|
|
101
|
+
};
|
|
102
|
+
export { InstructionSteps, InstructionStep };
|
|
103
|
+
export { default as Panel } from "./components/layout/Panel.svelte";
|
|
104
|
+
export { default as RuleCard } from "./components/layout/RuleCard.svelte";
|
|
105
|
+
export { default as Divider } from "./components/layout/Divider.svelte";
|
|
106
|
+
export { default as Eyebrow } from "./components/layout/Eyebrow.svelte";
|
|
107
|
+
export { default as BracketLink } from "./components/layout/BracketLink.svelte";
|
|
108
|
+
export { default as SectionHeading } from "./components/layout/SectionHeading.svelte";
|
|
109
|
+
export { default as TerminalWindow } from "./components/layout/TerminalWindow.svelte";
|
|
110
|
+
export { default as Wordmark } from "./components/layout/Wordmark.svelte";
|
|
111
|
+
export { default as PageHeader } from "./components/layout/PageHeader.svelte";
|
|
112
|
+
export { default as StatTile } from "./components/layout/StatTile.svelte";
|
|
113
|
+
export { default as Prose } from "./components/layout/Prose.svelte";
|
|
114
|
+
import PageShell from "./components/layout/PageShell.svelte";
|
|
115
|
+
import PageHeader from "./components/layout/PageHeader.svelte";
|
|
116
|
+
import PageSeo from "./components/layout/PageSeo.svelte";
|
|
117
|
+
export declare const Page: typeof PageShell & {
|
|
118
|
+
Header: typeof PageHeader;
|
|
119
|
+
Seo: typeof PageSeo;
|
|
120
|
+
Shell: typeof PageShell;
|
|
121
|
+
};
|
|
122
|
+
export { default as ChatMessage } from "./components/chat/ChatMessage.svelte";
|
|
123
|
+
import LandingRoot from "./components/landing/Landing.svelte";
|
|
124
|
+
import LandingHero from "./components/landing/LandingHero.svelte";
|
|
125
|
+
import LandingSteps from "./components/landing/LandingSteps.svelte";
|
|
126
|
+
import LandingFeatures from "./components/landing/LandingFeatures.svelte";
|
|
127
|
+
import LandingRoadmap from "./components/landing/LandingRoadmap.svelte";
|
|
128
|
+
import LandingSection from "./components/landing/LandingSection.svelte";
|
|
129
|
+
import LandingSectionHeading from "./components/landing/LandingSectionHeading.svelte";
|
|
130
|
+
import MarketingShellRoot from "./components/marketing/MarketingShell.svelte";
|
|
131
|
+
import MarketingShellFooter from "./components/marketing/MarketingShellFooter.svelte";
|
|
132
|
+
import AppShellRoot from "./components/appshell/AppShell.svelte";
|
|
133
|
+
import AppShellSidebar from "./components/appshell/AppShellSidebar.svelte";
|
|
134
|
+
import AppShellBottomNav from "./components/appshell/AppShellBottomNav.svelte";
|
|
135
|
+
import AppShellContent from "./components/appshell/AppShellContent.svelte";
|
|
136
|
+
import type { AppShellNavItem } from "./components/appshell/types";
|
|
137
|
+
export declare const Landing: typeof LandingRoot & {
|
|
138
|
+
Hero: typeof LandingHero;
|
|
139
|
+
Steps: typeof LandingSteps;
|
|
140
|
+
Features: typeof LandingFeatures;
|
|
141
|
+
Roadmap: typeof LandingRoadmap;
|
|
142
|
+
Section: typeof LandingSection & {
|
|
143
|
+
Heading: typeof LandingSectionHeading;
|
|
144
|
+
};
|
|
145
|
+
};
|
|
146
|
+
export declare const MarketingShell: typeof MarketingShellRoot & {
|
|
147
|
+
Footer: typeof MarketingShellFooter;
|
|
148
|
+
};
|
|
149
|
+
export declare const AppShell: typeof AppShellRoot & {
|
|
150
|
+
Sidebar: typeof AppShellSidebar;
|
|
151
|
+
BottomNav: typeof AppShellBottomNav;
|
|
152
|
+
Content: typeof AppShellContent;
|
|
153
|
+
};
|
|
154
|
+
export declare namespace AppShell {
|
|
155
|
+
type NavItem = AppShellNavItem;
|
|
156
|
+
}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
// tabelhawebui — shared theme + chrome for web apps.
|
|
2
|
+
//
|
|
3
|
+
// Usage:
|
|
4
|
+
// import '@tabelhadev/tabelhawebui/theme.css'; // once in the app (or in each app in the family)
|
|
5
|
+
// import { Card, Table, Badge, Button, Toaster } from '@tabelhadev/tabelhawebui';
|
|
6
|
+
import CardRoot from "./components/card/Card.svelte";
|
|
7
|
+
import CardHeader from "./components/card/CardHeader.svelte";
|
|
8
|
+
import CardTitle from "./components/card/CardTitle.svelte";
|
|
9
|
+
import CardDescription from "./components/card/CardDescription.svelte";
|
|
10
|
+
import CardContent from "./components/card/CardContent.svelte";
|
|
11
|
+
import CardFooter from "./components/card/CardFooter.svelte";
|
|
12
|
+
import CardAction from "./components/card/CardAction.svelte";
|
|
13
|
+
import List from "./components/list/List.svelte";
|
|
14
|
+
import ListItem from "./components/list/ListItem.svelte";
|
|
15
|
+
import TimelineRoot from "./components/timeline/Timeline.svelte";
|
|
16
|
+
import TimelineItem from "./components/timeline/TimelineItem.svelte";
|
|
17
|
+
// Compound components: `Card.Header`/`Card.Footer`, `Timeline.Item` — one
|
|
18
|
+
// single export per module, no loose exports of parts.
|
|
19
|
+
export const Card = Object.assign(CardRoot, {
|
|
20
|
+
Header: CardHeader,
|
|
21
|
+
Title: CardTitle,
|
|
22
|
+
Description: CardDescription,
|
|
23
|
+
Content: CardContent,
|
|
24
|
+
Footer: CardFooter,
|
|
25
|
+
Action: CardAction,
|
|
26
|
+
});
|
|
27
|
+
export const Timeline = Object.assign(TimelineRoot, { Item: TimelineItem });
|
|
28
|
+
// Lists
|
|
29
|
+
export { List, ListItem };
|
|
30
|
+
// Data
|
|
31
|
+
export { default as Table } from "./components/table/Table.svelte";
|
|
32
|
+
// Actions
|
|
33
|
+
export { buttonVariants, default as Button, } from "./components/actions/Button.svelte";
|
|
34
|
+
// Shared actions (Svelte actions + helpers)
|
|
35
|
+
export { clickOutside } from "./actions/click-outside";
|
|
36
|
+
export { lockScroll } from "./actions/scroll-lock";
|
|
37
|
+
export { trapFocus } from "./actions/focus-trap";
|
|
38
|
+
export { comboboxKeydown } from "./actions/combobox-keyboard-nav";
|
|
39
|
+
// Forms
|
|
40
|
+
export { default as Input } from "./components/forms/Input.svelte";
|
|
41
|
+
export { default as Textarea } from "./components/forms/Textarea.svelte";
|
|
42
|
+
export { default as Label } from "./components/forms/Label.svelte";
|
|
43
|
+
export { default as Field } from "./components/forms/Field.svelte";
|
|
44
|
+
export { default as Radio } from "./components/forms/Radio.svelte";
|
|
45
|
+
export { default as Checkbox } from "./components/forms/Checkbox.svelte";
|
|
46
|
+
export { default as Select } from "./components/forms/Select.svelte";
|
|
47
|
+
export { default as DatePicker } from "./components/forms/DatePicker.svelte";
|
|
48
|
+
export { default as FileUpload } from "./components/forms/FileUpload.svelte";
|
|
49
|
+
export { default as TagInput } from "./components/forms/TagInput.svelte";
|
|
50
|
+
// Choice
|
|
51
|
+
export { default as Toggle } from "./components/choice/Toggle.svelte";
|
|
52
|
+
export { default as Rating } from "./components/choice/Rating.svelte";
|
|
53
|
+
export { default as MultiSelect } from "./components/choice/MultiSelect.svelte";
|
|
54
|
+
export { default as Listbox } from "./components/choice/Listbox.svelte";
|
|
55
|
+
// Feedback
|
|
56
|
+
export { default as Badge } from "./components/feedback/Badge.svelte";
|
|
57
|
+
export { default as Status } from "./components/feedback/Status.svelte";
|
|
58
|
+
export { default as StatusPill } from "./components/feedback/StatusPill.svelte";
|
|
59
|
+
export { default as Message } from "./components/feedback/Message.svelte";
|
|
60
|
+
export { default as ProgressBar } from "./components/feedback/ProgressBar.svelte";
|
|
61
|
+
export { default as ErrorPage } from "./components/feedback/ErrorPage.svelte";
|
|
62
|
+
export { default as Skeleton } from "./components/feedback/Skeleton.svelte";
|
|
63
|
+
export { default as Tooltip } from "./components/feedback/Tooltip.svelte";
|
|
64
|
+
export { default as Toaster } from "./components/feedback/Toaster.svelte";
|
|
65
|
+
export { toast } from "./components/feedback/toast.svelte.js";
|
|
66
|
+
// Overlay
|
|
67
|
+
import DialogRoot from "./components/overlay/Dialog.svelte";
|
|
68
|
+
import DialogActions from "./components/overlay/DialogActions.svelte";
|
|
69
|
+
// Compound: `Dialog` with `Dialog.Actions` — one single export per module,
|
|
70
|
+
// no loose exports of parts (same convention as `Card` and `Timeline`).
|
|
71
|
+
// `Dialog.Actions` is for components that render INSIDE a dialog body and own
|
|
72
|
+
// their buttons; dialog owners use the docked `footerStart`/`footerEnd`.
|
|
73
|
+
export const Dialog = Object.assign(DialogRoot, { Actions: DialogActions });
|
|
74
|
+
export { default as Sidebar } from "./components/overlay/Sidebar.svelte";
|
|
75
|
+
export { default as Dropdown } from "./components/overlay/Dropdown.svelte";
|
|
76
|
+
export { default as FloatingActionPill } from "./components/overlay/FloatingActionPill.svelte";
|
|
77
|
+
// Navigation / structure
|
|
78
|
+
export { default as Tabs } from "./components/navigation/Tabs.svelte";
|
|
79
|
+
export { default as Accordion } from "./components/navigation/Accordion.svelte";
|
|
80
|
+
export { default as Stepper } from "./components/navigation/Stepper.svelte";
|
|
81
|
+
export { default as Carousel } from "./components/navigation/Carousel.svelte";
|
|
82
|
+
export { default as Nav } from "./components/navigation/Nav.svelte";
|
|
83
|
+
export { default as ThemeToggle } from "./components/navigation/ThemeToggle.svelte";
|
|
84
|
+
export { default as TabCard } from "./components/navigation/TabCard.svelte";
|
|
85
|
+
import InstructionSteps from "./components/navigation/InstructionSteps.svelte";
|
|
86
|
+
import InstructionStep from "./components/navigation/InstructionStep.svelte";
|
|
87
|
+
export const Instruction = { Steps: InstructionSteps, Step: InstructionStep };
|
|
88
|
+
export { InstructionSteps, InstructionStep };
|
|
89
|
+
// Layout
|
|
90
|
+
export { default as Panel } from "./components/layout/Panel.svelte";
|
|
91
|
+
export { default as RuleCard } from "./components/layout/RuleCard.svelte";
|
|
92
|
+
export { default as Divider } from "./components/layout/Divider.svelte";
|
|
93
|
+
export { default as Eyebrow } from "./components/layout/Eyebrow.svelte";
|
|
94
|
+
export { default as BracketLink } from "./components/layout/BracketLink.svelte";
|
|
95
|
+
export { default as SectionHeading } from "./components/layout/SectionHeading.svelte";
|
|
96
|
+
export { default as TerminalWindow } from "./components/layout/TerminalWindow.svelte";
|
|
97
|
+
export { default as Wordmark } from "./components/layout/Wordmark.svelte";
|
|
98
|
+
export { default as PageHeader } from "./components/layout/PageHeader.svelte";
|
|
99
|
+
export { default as StatTile } from "./components/layout/StatTile.svelte";
|
|
100
|
+
export { default as Prose } from "./components/layout/Prose.svelte";
|
|
101
|
+
// Page compound component
|
|
102
|
+
import PageShell from "./components/layout/PageShell.svelte";
|
|
103
|
+
import PageHeader from "./components/layout/PageHeader.svelte";
|
|
104
|
+
import PageSeo from "./components/layout/PageSeo.svelte";
|
|
105
|
+
export const Page = Object.assign(PageShell, {
|
|
106
|
+
Header: PageHeader,
|
|
107
|
+
Seo: PageSeo,
|
|
108
|
+
Shell: PageShell,
|
|
109
|
+
});
|
|
110
|
+
// Chat
|
|
111
|
+
export { default as ChatMessage } from "./components/chat/ChatMessage.svelte";
|
|
112
|
+
// Landing sections
|
|
113
|
+
import LandingRoot from "./components/landing/Landing.svelte";
|
|
114
|
+
import LandingHero from "./components/landing/LandingHero.svelte";
|
|
115
|
+
import LandingSteps from "./components/landing/LandingSteps.svelte";
|
|
116
|
+
import LandingFeatures from "./components/landing/LandingFeatures.svelte";
|
|
117
|
+
import LandingRoadmap from "./components/landing/LandingRoadmap.svelte";
|
|
118
|
+
import LandingSection from "./components/landing/LandingSection.svelte";
|
|
119
|
+
import LandingSectionHeading from "./components/landing/LandingSectionHeading.svelte";
|
|
120
|
+
// Marketing shell
|
|
121
|
+
import MarketingShellRoot from "./components/marketing/MarketingShell.svelte";
|
|
122
|
+
import MarketingShellFooter from "./components/marketing/MarketingShellFooter.svelte";
|
|
123
|
+
import AppShellRoot from "./components/appshell/AppShell.svelte";
|
|
124
|
+
import AppShellSidebar from "./components/appshell/AppShellSidebar.svelte";
|
|
125
|
+
import AppShellBottomNav from "./components/appshell/AppShellBottomNav.svelte";
|
|
126
|
+
import AppShellContent from "./components/appshell/AppShellContent.svelte";
|
|
127
|
+
// Compound component: `Landing` (root wrapper with gradient) with sub-components:
|
|
128
|
+
// `Landing.Hero`, `Landing.Steps`, `Landing.Features`, `Landing.Roadmap`,
|
|
129
|
+
// `Landing.Section`, `Landing.Section.Heading` — one single export per module,
|
|
130
|
+
// no loose exports of parts (same convention as `Card` and `Timeline`).
|
|
131
|
+
export const Landing = Object.assign(LandingRoot, {
|
|
132
|
+
Hero: LandingHero,
|
|
133
|
+
Steps: LandingSteps,
|
|
134
|
+
Features: LandingFeatures,
|
|
135
|
+
Roadmap: LandingRoadmap,
|
|
136
|
+
Section: Object.assign(LandingSection, {
|
|
137
|
+
Heading: LandingSectionHeading,
|
|
138
|
+
}),
|
|
139
|
+
});
|
|
140
|
+
// MarketingShell
|
|
141
|
+
export const MarketingShell = Object.assign(MarketingShellRoot, {
|
|
142
|
+
Footer: MarketingShellFooter,
|
|
143
|
+
});
|
|
144
|
+
// AppShell
|
|
145
|
+
export const AppShell = Object.assign(AppShellRoot, {
|
|
146
|
+
Sidebar: AppShellSidebar,
|
|
147
|
+
BottomNav: AppShellBottomNav,
|
|
148
|
+
Content: AppShellContent,
|
|
149
|
+
});
|