twintrinsic 0.0.1
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 +674 -0
- package/README.md +150 -0
- package/dist/App/App.svelte +54 -0
- package/dist/App/App.svelte.d.ts +65 -0
- package/dist/Section.svelte +25 -0
- package/dist/Section.svelte.d.ts +34 -0
- package/dist/actions/clickOutside.d.ts +9 -0
- package/dist/actions/clickOutside.js +19 -0
- package/dist/actions/index.d.ts +1 -0
- package/dist/actions/index.js +1 -0
- package/dist/components/Accordion/Accordion.svelte +75 -0
- package/dist/components/Accordion/Accordion.svelte.d.ts +39 -0
- package/dist/components/Accordion/AccordionItem.svelte +150 -0
- package/dist/components/Accordion/AccordionItem.svelte.d.ts +30 -0
- package/dist/components/App/App.story.md +8 -0
- package/dist/components/App/App.story.svelte +170 -0
- package/dist/components/App/App.story.svelte.d.ts +22 -0
- package/dist/components/App/App.svelte +77 -0
- package/dist/components/App/App.svelte.d.ts +66 -0
- package/dist/components/App/Split.svelte +346 -0
- package/dist/components/App/Split.svelte.d.ts +54 -0
- package/dist/components/App/index.d.ts +2 -0
- package/dist/components/App/index.js +3 -0
- package/dist/components/AppHeader/AppHeader.svelte +439 -0
- package/dist/components/AppHeader/AppHeader.svelte.d.ts +24 -0
- package/dist/components/Avatar/Avatar.svelte +300 -0
- package/dist/components/Avatar/Avatar.svelte.d.ts +48 -0
- package/dist/components/Avatar/AvatarGroup.svelte +185 -0
- package/dist/components/Avatar/AvatarGroup.svelte.d.ts +46 -0
- package/dist/components/Badge/Badge.svelte +186 -0
- package/dist/components/Badge/Badge.svelte.d.ts +51 -0
- package/dist/components/BottomBar/BottomBar.svelte +146 -0
- package/dist/components/BottomBar/BottomBar.svelte.d.ts +38 -0
- package/dist/components/Breadcrumb/Breadcrumb.svelte +77 -0
- package/dist/components/Breadcrumb/Breadcrumb.svelte.d.ts +42 -0
- package/dist/components/Breadcrumb/BreadcrumbItem.svelte +171 -0
- package/dist/components/Breadcrumb/BreadcrumbItem.svelte.d.ts +38 -0
- package/dist/components/Button/Button.svelte +252 -0
- package/dist/components/Button/Button.svelte.d.ts +80 -0
- package/dist/components/Button/ButtonGroup.svelte +127 -0
- package/dist/components/Button/ButtonGroup.svelte.d.ts +44 -0
- package/dist/components/Card/Card.svelte +152 -0
- package/dist/components/Card/Card.svelte.d.ts +55 -0
- package/dist/components/Carousel/Carousel.svelte +461 -0
- package/dist/components/Carousel/Carousel.svelte.d.ts +79 -0
- package/dist/components/Carousel/CarouselItem.svelte +149 -0
- package/dist/components/Carousel/CarouselItem.svelte.d.ts +35 -0
- package/dist/components/Chip/Chip.svelte +288 -0
- package/dist/components/Chip/Chip.svelte.d.ts +71 -0
- package/dist/components/Chip/ChipGroup.svelte +190 -0
- package/dist/components/Chip/ChipGroup.svelte.d.ts +71 -0
- package/dist/components/CodeBlock/CodeBlock.svelte +356 -0
- package/dist/components/CodeBlock/CodeBlock.svelte.d.ts +44 -0
- package/dist/components/CodeBlock/index.d.ts +1 -0
- package/dist/components/CodeBlock/index.js +1 -0
- package/dist/components/CodeBlockSpeed/CodeBlockSpeed.svelte +145 -0
- package/dist/components/CodeBlockSpeed/CodeBlockSpeed.svelte.d.ts +44 -0
- package/dist/components/CodeEditor/CodeEditor.svelte +229 -0
- package/dist/components/CodeEditor/CodeEditor.svelte.d.ts +23 -0
- package/dist/components/Combobox/Combobox.svelte +279 -0
- package/dist/components/Combobox/Combobox.svelte.d.ts +34 -0
- package/dist/components/Container/Container.svelte +45 -0
- package/dist/components/Container/Container.svelte.d.ts +36 -0
- package/dist/components/DataTable/DataTable.svelte +879 -0
- package/dist/components/DataTable/DataTable.svelte.d.ts +102 -0
- package/dist/components/Form/AutoComplete.svelte +357 -0
- package/dist/components/Form/AutoComplete.svelte.d.ts +73 -0
- package/dist/components/Form/Calendar.svelte +429 -0
- package/dist/components/Form/Calendar.svelte.d.ts +53 -0
- package/dist/components/Form/Checkbox.svelte +196 -0
- package/dist/components/Form/Checkbox.svelte.d.ts +50 -0
- package/dist/components/Form/ColorPicker.svelte +396 -0
- package/dist/components/Form/ColorPicker.svelte.d.ts +43 -0
- package/dist/components/Form/Combobox.svelte +645 -0
- package/dist/components/Form/Combobox.svelte.d.ts +93 -0
- package/dist/components/Form/Dropdown.svelte +773 -0
- package/dist/components/Form/Dropdown.svelte.d.ts +81 -0
- package/dist/components/Form/FileUpload.svelte +796 -0
- package/dist/components/Form/FileUpload.svelte.d.ts +78 -0
- package/dist/components/Form/FloatLabel.svelte +245 -0
- package/dist/components/Form/FloatLabel.svelte.d.ts +44 -0
- package/dist/components/Form/Form.svelte +281 -0
- package/dist/components/Form/Form.svelte.d.ts +54 -0
- package/dist/components/Form/FormField.svelte +218 -0
- package/dist/components/Form/FormField.svelte.d.ts +47 -0
- package/dist/components/Form/Input.svelte +340 -0
- package/dist/components/Form/Input.svelte.d.ts +79 -0
- package/dist/components/Form/InputSwitch.svelte +189 -0
- package/dist/components/Form/InputSwitch.svelte.d.ts +46 -0
- package/dist/components/Form/InvalidState.svelte +97 -0
- package/dist/components/Form/InvalidState.svelte.d.ts +37 -0
- package/dist/components/Form/Knob.svelte +537 -0
- package/dist/components/Form/Knob.svelte.d.ts +78 -0
- package/dist/components/Form/ListInput.svelte +469 -0
- package/dist/components/Form/ListInput.svelte.d.ts +70 -0
- package/dist/components/Form/Listbox.svelte +513 -0
- package/dist/components/Form/Listbox.svelte.d.ts +74 -0
- package/dist/components/Form/NumberInput.svelte +452 -0
- package/dist/components/Form/NumberInput.svelte.d.ts +82 -0
- package/dist/components/Form/Radio.svelte +192 -0
- package/dist/components/Form/Radio.svelte.d.ts +53 -0
- package/dist/components/Form/RadioGroup.svelte +155 -0
- package/dist/components/Form/RadioGroup.svelte.d.ts +48 -0
- package/dist/components/Form/Rating.svelte +380 -0
- package/dist/components/Form/Rating.svelte.d.ts +64 -0
- package/dist/components/Form/Select.svelte +436 -0
- package/dist/components/Form/Select.svelte.d.ts +49 -0
- package/dist/components/Form/SelectGroup.svelte +34 -0
- package/dist/components/Form/SelectGroup.svelte.d.ts +33 -0
- package/dist/components/Form/Slider.svelte +622 -0
- package/dist/components/Form/Slider.svelte.d.ts +73 -0
- package/dist/components/Form/Switch.svelte +192 -0
- package/dist/components/Form/Switch.svelte.d.ts +46 -0
- package/dist/components/Form/TextInput.svelte +274 -0
- package/dist/components/Form/TextInput.svelte.d.ts +74 -0
- package/dist/components/Form/Textarea.svelte +207 -0
- package/dist/components/Form/Textarea.svelte.d.ts +62 -0
- package/dist/components/Icon/Icon.svelte +140 -0
- package/dist/components/Icon/Icon.svelte.d.ts +25 -0
- package/dist/components/Icon/index.d.ts +1 -0
- package/dist/components/Icon/index.js +1 -0
- package/dist/components/Lazy/Lazy.svelte +158 -0
- package/dist/components/Lazy/Lazy.svelte.d.ts +42 -0
- package/dist/components/Masonry/Masonry.svelte +299 -0
- package/dist/components/Masonry/Masonry.svelte.d.ts +55 -0
- package/dist/components/Menu/Menu/Menu.svelte +65 -0
- package/dist/components/Menu/Menu/Menu.svelte.d.ts +17 -0
- package/dist/components/Menu/Menu/MenuItem.svelte +90 -0
- package/dist/components/Menu/Menu/MenuItem.svelte.d.ts +27 -0
- package/dist/components/Modal/Modal.svelte +334 -0
- package/dist/components/Modal/Modal.svelte.d.ts +55 -0
- package/dist/components/Panel/Card.svelte +141 -0
- package/dist/components/Panel/Card.svelte.d.ts +52 -0
- package/dist/components/Panel/Hero/Hero.story.md +9 -0
- package/dist/components/Panel/Hero/Hero.story.svelte +49 -0
- package/dist/components/Panel/Hero/Hero.story.svelte.d.ts +21 -0
- package/dist/components/Panel/Hero/Hero.svelte +24 -0
- package/dist/components/Panel/Hero/Hero.svelte.d.ts +32 -0
- package/dist/components/Panel/LazyPanel.svelte +110 -0
- package/dist/components/Panel/LazyPanel.svelte.d.ts +46 -0
- package/dist/components/Panel/Panel.svelte +205 -0
- package/dist/components/Panel/Panel.svelte.d.ts +23 -0
- package/dist/components/Progress/Progress.svelte +220 -0
- package/dist/components/Progress/Progress.svelte.d.ts +61 -0
- package/dist/components/Separator/Separator.svelte +109 -0
- package/dist/components/Separator/Separator.svelte.d.ts +35 -0
- package/dist/components/Sidebar/Sidebar.svelte +213 -0
- package/dist/components/Sidebar/Sidebar.svelte.d.ts +60 -0
- package/dist/components/Skeleton/Skeleton.svelte +170 -0
- package/dist/components/Skeleton/Skeleton.svelte.d.ts +48 -0
- package/dist/components/Stepper/Stepper.svelte +111 -0
- package/dist/components/Stepper/Stepper.svelte.d.ts +54 -0
- package/dist/components/Stepper/StepperStep.svelte +369 -0
- package/dist/components/Stepper/StepperStep.svelte.d.ts +63 -0
- package/dist/components/Table/Table.svelte +167 -0
- package/dist/components/Table/Table.svelte.d.ts +56 -0
- package/dist/components/Table/TableBody.svelte +41 -0
- package/dist/components/Table/TableBody.svelte.d.ts +33 -0
- package/dist/components/Table/TableCell.svelte +76 -0
- package/dist/components/Table/TableCell.svelte.d.ts +36 -0
- package/dist/components/Table/TableHead.svelte +41 -0
- package/dist/components/Table/TableHead.svelte.d.ts +32 -0
- package/dist/components/Table/TableHeader.svelte +148 -0
- package/dist/components/Table/TableHeader.svelte.d.ts +42 -0
- package/dist/components/Table/TableRow.svelte +99 -0
- package/dist/components/Table/TableRow.svelte.d.ts +40 -0
- package/dist/components/Tabs/Tab.svelte +145 -0
- package/dist/components/Tabs/Tab.svelte.d.ts +36 -0
- package/dist/components/Tabs/TabList.svelte +60 -0
- package/dist/components/Tabs/TabList.svelte.d.ts +32 -0
- package/dist/components/Tabs/TabPanel.svelte +118 -0
- package/dist/components/Tabs/TabPanel.svelte.d.ts +38 -0
- package/dist/components/Tabs/Tabs.svelte +287 -0
- package/dist/components/Tabs/Tabs.svelte.d.ts +50 -0
- package/dist/components/Tag/Tag.svelte +260 -0
- package/dist/components/Tag/Tag.svelte.d.ts +54 -0
- package/dist/components/Tag/TagGroup.svelte +147 -0
- package/dist/components/Tag/TagGroup.svelte.d.ts +62 -0
- package/dist/components/ThemeToggle/ThemeToggle.svelte +93 -0
- package/dist/components/ThemeToggle/ThemeToggle.svelte.d.ts +12 -0
- package/dist/components/Timeline/Timeline.svelte +144 -0
- package/dist/components/Timeline/Timeline.svelte.d.ts +48 -0
- package/dist/components/Timeline/TimelineItem.svelte +391 -0
- package/dist/components/Timeline/TimelineItem.svelte.d.ts +63 -0
- package/dist/components/Toast/Toast.svelte +313 -0
- package/dist/components/Toast/Toast.svelte.d.ts +44 -0
- package/dist/components/Toast/toastStore.d.ts +40 -0
- package/dist/components/Toast/toastStore.js +293 -0
- package/dist/components/Tooltip/Tooltip.svelte +282 -0
- package/dist/components/Tooltip/Tooltip.svelte.d.ts +55 -0
- package/dist/components/Tree/Tree.svelte +129 -0
- package/dist/components/Tree/Tree.svelte.d.ts +61 -0
- package/dist/components/Tree/TreeNode.svelte +332 -0
- package/dist/components/Tree/TreeNode.svelte.d.ts +55 -0
- package/dist/components/icons/TwintrinsicLogo.svelte +73 -0
- package/dist/components/icons/TwintrinsicLogo.svelte.d.ts +17 -0
- package/dist/components/icons/twintrinsic-source.svg +73 -0
- package/dist/components/icons/twintrinsic.svg +38 -0
- package/dist/docs/EventsTable.svelte +86 -0
- package/dist/docs/EventsTable.svelte.d.ts +27 -0
- package/dist/docs/PropsTable.svelte +103 -0
- package/dist/docs/PropsTable.svelte.d.ts +28 -0
- package/dist/docs/index.d.ts +2 -0
- package/dist/docs/index.js +2 -0
- package/dist/helpers/detectLanguage.d.ts +6 -0
- package/dist/helpers/detectLanguage.js +60 -0
- package/dist/helpers/index.d.ts +1 -0
- package/dist/helpers/index.js +1 -0
- package/dist/index.d.ts +86 -0
- package/dist/index.js +94 -0
- package/dist/twintrinsic.css +347 -0
- package/package.json +98 -0
|
@@ -0,0 +1,332 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
@component
|
|
3
|
+
TreeNode - An individual node within a Tree component.
|
|
4
|
+
Provides consistent styling, accessibility features, and keyboard navigation.
|
|
5
|
+
|
|
6
|
+
Usage:
|
|
7
|
+
```svelte
|
|
8
|
+
<TreeNode label="Documents">
|
|
9
|
+
<TreeNode label="Work" />
|
|
10
|
+
<TreeNode label="Personal" />
|
|
11
|
+
</TreeNode>
|
|
12
|
+
|
|
13
|
+
<TreeNode
|
|
14
|
+
label="Images"
|
|
15
|
+
icon="<svg>...</svg>"
|
|
16
|
+
expanded
|
|
17
|
+
selected
|
|
18
|
+
disabled
|
|
19
|
+
>
|
|
20
|
+
<TreeNode label="Vacation" />
|
|
21
|
+
</TreeNode>
|
|
22
|
+
```
|
|
23
|
+
-->
|
|
24
|
+
<script>
|
|
25
|
+
import { getContext, onMount } from "svelte"
|
|
26
|
+
|
|
27
|
+
const {
|
|
28
|
+
/** @type {string} - Additional CSS classes */
|
|
29
|
+
class: className = "",
|
|
30
|
+
|
|
31
|
+
/** @type {string} - HTML id for accessibility */
|
|
32
|
+
id = crypto.randomUUID(),
|
|
33
|
+
|
|
34
|
+
/** @type {string} - Node key for selection (defaults to id) */
|
|
35
|
+
key = id,
|
|
36
|
+
|
|
37
|
+
/** @type {string} - Node label */
|
|
38
|
+
label,
|
|
39
|
+
|
|
40
|
+
/** @type {string} - Custom icon (HTML or SVG string) */
|
|
41
|
+
icon,
|
|
42
|
+
|
|
43
|
+
/** @type {boolean} - Whether the node is expanded */
|
|
44
|
+
expanded = false,
|
|
45
|
+
|
|
46
|
+
/** @type {boolean} - Whether the node is selected */
|
|
47
|
+
selected = false,
|
|
48
|
+
|
|
49
|
+
/** @type {boolean} - Whether the node is disabled */
|
|
50
|
+
disabled = false,
|
|
51
|
+
|
|
52
|
+
/** @type {boolean} - Whether the node is a leaf (no children) */
|
|
53
|
+
leaf = false,
|
|
54
|
+
|
|
55
|
+
/** @type {number} - Indentation level (managed internally) */
|
|
56
|
+
level = 0,
|
|
57
|
+
|
|
58
|
+
/** @type {Function} - Custom render function for the label */
|
|
59
|
+
labelRender,
|
|
60
|
+
|
|
61
|
+
children,
|
|
62
|
+
|
|
63
|
+
...restProps
|
|
64
|
+
} = $props()
|
|
65
|
+
|
|
66
|
+
// Get tree context
|
|
67
|
+
const treeContext = getContext("tree")
|
|
68
|
+
|
|
69
|
+
// Component state
|
|
70
|
+
let isExpanded = $state(expanded)
|
|
71
|
+
let isSelected = $state(selected)
|
|
72
|
+
let hasChildren = $state(false)
|
|
73
|
+
let nodeElement
|
|
74
|
+
|
|
75
|
+
// Update expanded state when prop changes
|
|
76
|
+
$effect(() => {
|
|
77
|
+
isExpanded = expanded
|
|
78
|
+
})
|
|
79
|
+
|
|
80
|
+
// Update selected state from context or prop
|
|
81
|
+
$effect(() => {
|
|
82
|
+
if (treeContext?.selectable) {
|
|
83
|
+
isSelected = treeContext.isSelected(key)
|
|
84
|
+
} else {
|
|
85
|
+
isSelected = selected
|
|
86
|
+
}
|
|
87
|
+
})
|
|
88
|
+
|
|
89
|
+
// Check if node has children
|
|
90
|
+
onMount(() => {
|
|
91
|
+
hasChildren = !!children && children().length > 0
|
|
92
|
+
|
|
93
|
+
return () => {
|
|
94
|
+
// Cleanup if needed
|
|
95
|
+
}
|
|
96
|
+
})
|
|
97
|
+
|
|
98
|
+
// Determine if node is selectable
|
|
99
|
+
const isSelectable = $derived(treeContext?.selectable && !disabled)
|
|
100
|
+
|
|
101
|
+
// Determine if node should show icons
|
|
102
|
+
const showIcons = $derived(treeContext?.showIcons !== false)
|
|
103
|
+
|
|
104
|
+
// Determine if tree should show lines
|
|
105
|
+
const showLines = $derived(treeContext?.showLines !== false)
|
|
106
|
+
|
|
107
|
+
/**
|
|
108
|
+
* Toggles the expanded state
|
|
109
|
+
* @param {Event} event - Click event
|
|
110
|
+
*/
|
|
111
|
+
function toggleExpanded(event) {
|
|
112
|
+
if (disabled || !hasChildren) return
|
|
113
|
+
|
|
114
|
+
isExpanded = !isExpanded
|
|
115
|
+
dispatch("toggle", { expanded: isExpanded, key })
|
|
116
|
+
|
|
117
|
+
// Prevent event from triggering selection
|
|
118
|
+
event.stopPropagation()
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
* Handles click on the node
|
|
123
|
+
*/
|
|
124
|
+
function handleClick() {
|
|
125
|
+
if (disabled) return
|
|
126
|
+
|
|
127
|
+
if (isSelectable) {
|
|
128
|
+
treeContext.toggleSelection(key)
|
|
129
|
+
dispatch("select", { selected: isSelected, key })
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* Handles keydown events for accessibility
|
|
135
|
+
* @param {KeyboardEvent} event - Keydown event
|
|
136
|
+
*/
|
|
137
|
+
function handleKeyDown(event) {
|
|
138
|
+
if (disabled) return
|
|
139
|
+
|
|
140
|
+
switch (event.key) {
|
|
141
|
+
case "Enter":
|
|
142
|
+
case " ":
|
|
143
|
+
// Select node
|
|
144
|
+
if (isSelectable) {
|
|
145
|
+
treeContext.toggleSelection(key)
|
|
146
|
+
dispatch("select", { selected: isSelected, key })
|
|
147
|
+
event.preventDefault()
|
|
148
|
+
}
|
|
149
|
+
break
|
|
150
|
+
|
|
151
|
+
case "ArrowRight":
|
|
152
|
+
// Expand node if collapsed
|
|
153
|
+
if (hasChildren && !isExpanded) {
|
|
154
|
+
isExpanded = true
|
|
155
|
+
dispatch("toggle", { expanded: true, key })
|
|
156
|
+
event.preventDefault()
|
|
157
|
+
}
|
|
158
|
+
break
|
|
159
|
+
|
|
160
|
+
case "ArrowLeft":
|
|
161
|
+
// Collapse node if expanded
|
|
162
|
+
if (hasChildren && isExpanded) {
|
|
163
|
+
isExpanded = false
|
|
164
|
+
dispatch("toggle", { expanded: false, key })
|
|
165
|
+
event.preventDefault()
|
|
166
|
+
}
|
|
167
|
+
break
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
</script>
|
|
171
|
+
|
|
172
|
+
<div
|
|
173
|
+
{id}
|
|
174
|
+
class="
|
|
175
|
+
tree-node
|
|
176
|
+
{isSelected ? 'tree-node-selected' : ''}
|
|
177
|
+
{disabled ? 'tree-node-disabled' : ''}
|
|
178
|
+
{hasChildren ? 'tree-node-parent' : 'tree-node-leaf'}
|
|
179
|
+
{className}
|
|
180
|
+
"
|
|
181
|
+
style="--tree-node-level: {level};"
|
|
182
|
+
bind:this={nodeElement}
|
|
183
|
+
>
|
|
184
|
+
<div
|
|
185
|
+
class="
|
|
186
|
+
tree-node-content
|
|
187
|
+
{isSelectable ? 'tree-node-selectable' : ''}
|
|
188
|
+
"
|
|
189
|
+
role="treeitem"
|
|
190
|
+
aria-expanded={hasChildren ? isExpanded : undefined}
|
|
191
|
+
aria-selected={isSelectable ? isSelected : undefined}
|
|
192
|
+
aria-disabled={disabled ? true : undefined}
|
|
193
|
+
tabindex={disabled ? undefined : 0}
|
|
194
|
+
onclick={handleClick}
|
|
195
|
+
onkeydown={handleKeyDown}
|
|
196
|
+
>
|
|
197
|
+
{#if showLines}
|
|
198
|
+
<div class="tree-node-lines"></div>
|
|
199
|
+
{/if}
|
|
200
|
+
|
|
201
|
+
<div class="tree-node-inner">
|
|
202
|
+
{#if hasChildren}
|
|
203
|
+
<button
|
|
204
|
+
type="button"
|
|
205
|
+
class="tree-node-toggle"
|
|
206
|
+
aria-label={isExpanded ? 'Collapse' : 'Expand'}
|
|
207
|
+
onclick={toggleExpanded}
|
|
208
|
+
tabindex="-1"
|
|
209
|
+
disabled={disabled}
|
|
210
|
+
>
|
|
211
|
+
<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
|
212
|
+
<path
|
|
213
|
+
stroke-linecap="round"
|
|
214
|
+
stroke-linejoin="round"
|
|
215
|
+
stroke-width="2"
|
|
216
|
+
d={isExpanded ? "M19 9l-7 7-7-7" : "M9 5l7 7-7 7"}
|
|
217
|
+
></path>
|
|
218
|
+
</svg>
|
|
219
|
+
</button>
|
|
220
|
+
{:else}
|
|
221
|
+
<div class="tree-node-spacer"></div>
|
|
222
|
+
{/if}
|
|
223
|
+
|
|
224
|
+
{#if showIcons}
|
|
225
|
+
<div class="tree-node-icon">
|
|
226
|
+
{#if icon}
|
|
227
|
+
{@html icon}
|
|
228
|
+
{:else if hasChildren}
|
|
229
|
+
<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
|
230
|
+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 7v10a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-6l-2-2H5a2 2 0 00-2 2z"></path>
|
|
231
|
+
</svg>
|
|
232
|
+
{:else}
|
|
233
|
+
<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
|
234
|
+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M7 21h10a2 2 0 002-2V9.414a1 1 0 00-.293-.707l-5.414-5.414A1 1 0 0012.586 3H7a2 2 0 00-2 2v14a2 2 0 002 2z"></path>
|
|
235
|
+
</svg>
|
|
236
|
+
{/if}
|
|
237
|
+
</div>
|
|
238
|
+
{/if}
|
|
239
|
+
|
|
240
|
+
<div class="tree-node-label">
|
|
241
|
+
{#if labelRender}
|
|
242
|
+
{@render labelRender()}
|
|
243
|
+
{:else}
|
|
244
|
+
{label}
|
|
245
|
+
{/if}
|
|
246
|
+
</div>
|
|
247
|
+
</div>
|
|
248
|
+
</div>
|
|
249
|
+
|
|
250
|
+
{#if hasChildren && isExpanded}
|
|
251
|
+
<div class="tree-node-children" role="group">
|
|
252
|
+
<svelte:self {...restProps} level={level + 1}>
|
|
253
|
+
{@render children?.()}
|
|
254
|
+
</svelte:self>
|
|
255
|
+
</div>
|
|
256
|
+
{/if}
|
|
257
|
+
</div>
|
|
258
|
+
|
|
259
|
+
<style>
|
|
260
|
+
@reference "../../twintrinsic.css";
|
|
261
|
+
|
|
262
|
+
.tree-node {
|
|
263
|
+
@apply w-full;
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
.tree-node-content {
|
|
267
|
+
@apply flex items-center;
|
|
268
|
+
@apply py-1 px-2 rounded-md;
|
|
269
|
+
@apply text-text dark:text-text;
|
|
270
|
+
@apply transition-colors duration-150;
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
.tree-node-selectable {
|
|
274
|
+
@apply cursor-pointer;
|
|
275
|
+
@apply hover:bg-hover dark:hover:bg-hover;
|
|
276
|
+
@apply focus:outline-none focus:ring-2 focus:ring-primary-500 dark:focus:ring-primary-400;
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
.tree-node-selected > .tree-node-content {
|
|
280
|
+
@apply bg-primary-50 dark:bg-primary-900/20;
|
|
281
|
+
@apply text-primary-700 dark:text-primary-300;
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
.tree-node-disabled {
|
|
285
|
+
@apply opacity-50 cursor-not-allowed;
|
|
286
|
+
@apply pointer-events-none;
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
.tree-node-inner {
|
|
290
|
+
@apply flex items-center;
|
|
291
|
+
@apply min-w-0;
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
.tree-node-toggle {
|
|
295
|
+
@apply flex items-center justify-center;
|
|
296
|
+
@apply w-5 h-5 mr-1;
|
|
297
|
+
@apply text-muted dark:text-muted;
|
|
298
|
+
@apply hover:text-text dark:hover:text-text;
|
|
299
|
+
@apply rounded-sm;
|
|
300
|
+
@apply focus:outline-none focus:ring-2 focus:ring-primary-500 dark:focus:ring-primary-400;
|
|
301
|
+
@apply transition-colors duration-150;
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
.tree-node-spacer {
|
|
305
|
+
@apply w-5 h-5 mr-1;
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
.tree-node-icon {
|
|
309
|
+
@apply flex-shrink-0 mr-2;
|
|
310
|
+
@apply text-muted dark:text-muted;
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
.tree-node-label {
|
|
314
|
+
@apply flex-grow truncate;
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
.tree-node-children {
|
|
318
|
+
@apply pl-5;
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
/* Lines for tree visualization */
|
|
322
|
+
.tree-node-lines {
|
|
323
|
+
@apply absolute left-0;
|
|
324
|
+
@apply border-l border-dashed border-border dark:border-border;
|
|
325
|
+
@apply h-full;
|
|
326
|
+
@apply -ml-4;
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
.tree-with-lines .tree-node-children {
|
|
330
|
+
@apply relative;
|
|
331
|
+
}
|
|
332
|
+
</style>
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
export default TreeNode;
|
|
2
|
+
type TreeNode = {
|
|
3
|
+
$on?(type: string, callback: (e: any) => void): () => void;
|
|
4
|
+
$set?(props: Partial<$$ComponentProps>): void;
|
|
5
|
+
};
|
|
6
|
+
/**
|
|
7
|
+
* TreeNode - An individual node within a Tree component.
|
|
8
|
+
* Provides consistent styling, accessibility features, and keyboard navigation.
|
|
9
|
+
*
|
|
10
|
+
* Usage:
|
|
11
|
+
* ```svelte
|
|
12
|
+
* <TreeNode label="Documents">
|
|
13
|
+
* <TreeNode label="Work" />
|
|
14
|
+
* <TreeNode label="Personal" />
|
|
15
|
+
* </TreeNode>
|
|
16
|
+
*
|
|
17
|
+
* <TreeNode
|
|
18
|
+
* label="Images"
|
|
19
|
+
* icon="<svg>...</svg>"
|
|
20
|
+
* expanded
|
|
21
|
+
* selected
|
|
22
|
+
* disabled
|
|
23
|
+
* >
|
|
24
|
+
* <TreeNode label="Vacation" />
|
|
25
|
+
* </TreeNode>
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
declare const TreeNode: import("svelte").Component<{
|
|
29
|
+
class?: string;
|
|
30
|
+
id?: any;
|
|
31
|
+
key?: any;
|
|
32
|
+
label: any;
|
|
33
|
+
icon: any;
|
|
34
|
+
expanded?: boolean;
|
|
35
|
+
selected?: boolean;
|
|
36
|
+
disabled?: boolean;
|
|
37
|
+
leaf?: boolean;
|
|
38
|
+
level?: number;
|
|
39
|
+
labelRender: any;
|
|
40
|
+
children: any;
|
|
41
|
+
} & Record<string, any>, {}, "">;
|
|
42
|
+
type $$ComponentProps = {
|
|
43
|
+
class?: string;
|
|
44
|
+
id?: any;
|
|
45
|
+
key?: any;
|
|
46
|
+
label: any;
|
|
47
|
+
icon: any;
|
|
48
|
+
expanded?: boolean;
|
|
49
|
+
selected?: boolean;
|
|
50
|
+
disabled?: boolean;
|
|
51
|
+
leaf?: boolean;
|
|
52
|
+
level?: number;
|
|
53
|
+
labelRender: any;
|
|
54
|
+
children: any;
|
|
55
|
+
} & Record<string, any>;
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
@component
|
|
3
|
+
A modern, dynamic logo for Twintrinsic that represents Tailwind's utility-first approach
|
|
4
|
+
and the intrinsic nature of web design.
|
|
5
|
+
-->
|
|
6
|
+
<script>
|
|
7
|
+
const { class: className = "", size = "3rem" } = $props()
|
|
8
|
+
</script>
|
|
9
|
+
|
|
10
|
+
<svg
|
|
11
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
12
|
+
viewBox="0 0 180 180"
|
|
13
|
+
class={className}
|
|
14
|
+
width={size}
|
|
15
|
+
height={size}
|
|
16
|
+
fill="none"
|
|
17
|
+
stroke="currentColor"
|
|
18
|
+
aria-label="Twintrinsic Logo"
|
|
19
|
+
>
|
|
20
|
+
<rect
|
|
21
|
+
style="opacity:0.995712;fill:none;stroke:#5b21b6;stroke-width:8;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
|
|
22
|
+
class="tw-logo-window"
|
|
23
|
+
width="172"
|
|
24
|
+
height="172"
|
|
25
|
+
x="4"
|
|
26
|
+
y="4" />
|
|
27
|
+
<path
|
|
28
|
+
style="fill:none;stroke:#5b21b6;stroke-width:6.15013;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
|
29
|
+
d="M 0,45 H 180"
|
|
30
|
+
class="tw-logo-separator" />
|
|
31
|
+
<text
|
|
32
|
+
xml:space="preserve"
|
|
33
|
+
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:105.833px;line-height:1.25;font-family:'OpenDyslexicMono Nerd Font';-inkscape-font-specification:'OpenDyslexicMono Nerd Font, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#5b21b6;fill-opacity:1;stroke:none;stroke-width:0.265;stroke-dasharray:none;stroke-opacity:1"
|
|
34
|
+
x="9.6828251"
|
|
35
|
+
y="145.79205"
|
|
36
|
+
class="tw-logo-letters"><tspan
|
|
37
|
+
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:105.833px;font-family:'OpenDyslexicMono Nerd Font';-inkscape-font-specification:'OpenDyslexicMono Nerd Font, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#5b21b6;fill-opacity:1;stroke:none;stroke-width:0.265;stroke-dasharray:none;stroke-opacity:1"
|
|
38
|
+
x="9.6828251"
|
|
39
|
+
y="145.79205">Tw</tspan></text>
|
|
40
|
+
</svg>
|
|
41
|
+
|
|
42
|
+
<style>
|
|
43
|
+
@reference '../../twintrinsic.css';
|
|
44
|
+
svg {
|
|
45
|
+
@apply transition-colors duration-300;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.tw-logo-window, .tw-logo-separator {
|
|
49
|
+
@apply transition-all duration-500;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
.tw-logo-letters {
|
|
53
|
+
@apply transition-transform duration-300 ;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/* Optional: Add hover effects */
|
|
57
|
+
svg:hover .tw-logo-window {
|
|
58
|
+
@apply stroke-primary-500;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
svg:hover .tw-logo-letters {
|
|
62
|
+
@apply stroke-primary-600;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/* Dark mode support */
|
|
66
|
+
:global(.dark) svg:hover .tw-logo-window {
|
|
67
|
+
@apply stroke-primary-400;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
:global(.dark) svg:hover .tw-logo-letters {
|
|
71
|
+
@apply stroke-primary-300;
|
|
72
|
+
}
|
|
73
|
+
</style>
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export default TwintrinsicLogo;
|
|
2
|
+
type TwintrinsicLogo = {
|
|
3
|
+
$on?(type: string, callback: (e: any) => void): () => void;
|
|
4
|
+
$set?(props: Partial<$$ComponentProps>): void;
|
|
5
|
+
};
|
|
6
|
+
/**
|
|
7
|
+
* A modern, dynamic logo for Twintrinsic that represents Tailwind's utility-first approach
|
|
8
|
+
* and the intrinsic nature of web design.
|
|
9
|
+
*/
|
|
10
|
+
declare const TwintrinsicLogo: import("svelte").Component<{
|
|
11
|
+
class?: string;
|
|
12
|
+
size?: string;
|
|
13
|
+
}, {}, "">;
|
|
14
|
+
type $$ComponentProps = {
|
|
15
|
+
class?: string;
|
|
16
|
+
size?: string;
|
|
17
|
+
};
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
2
|
+
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
|
3
|
+
|
|
4
|
+
<svg
|
|
5
|
+
width="180mm"
|
|
6
|
+
height="180mm"
|
|
7
|
+
viewBox="0 0 180 180"
|
|
8
|
+
version="1.1"
|
|
9
|
+
id="svg1"
|
|
10
|
+
inkscape:version="1.4 (e7c3feb100, 2024-10-09)"
|
|
11
|
+
sodipodi:docname="twintrinsic.svg"
|
|
12
|
+
inkscape:export-filename="twintrinsic-source.svg"
|
|
13
|
+
inkscape:export-xdpi="49.24"
|
|
14
|
+
inkscape:export-ydpi="49.24"
|
|
15
|
+
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
|
16
|
+
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
|
17
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
18
|
+
xmlns:svg="http://www.w3.org/2000/svg">
|
|
19
|
+
<sodipodi:namedview
|
|
20
|
+
id="namedview1"
|
|
21
|
+
pagecolor="#505050"
|
|
22
|
+
bordercolor="#eeeeee"
|
|
23
|
+
borderopacity="1"
|
|
24
|
+
inkscape:showpageshadow="0"
|
|
25
|
+
inkscape:pageopacity="0"
|
|
26
|
+
inkscape:pagecheckerboard="0"
|
|
27
|
+
inkscape:deskcolor="#505050"
|
|
28
|
+
inkscape:document-units="mm"
|
|
29
|
+
inkscape:zoom="0.72248176"
|
|
30
|
+
inkscape:cx="337.72479"
|
|
31
|
+
inkscape:cy="356.41038"
|
|
32
|
+
inkscape:window-width="1920"
|
|
33
|
+
inkscape:window-height="1014"
|
|
34
|
+
inkscape:window-x="0"
|
|
35
|
+
inkscape:window-y="0"
|
|
36
|
+
inkscape:window-maximized="1"
|
|
37
|
+
inkscape:current-layer="layer1" />
|
|
38
|
+
<defs
|
|
39
|
+
id="defs1">
|
|
40
|
+
<inkscape:path-effect
|
|
41
|
+
effect="spiro"
|
|
42
|
+
id="path-effect2"
|
|
43
|
+
is_visible="true"
|
|
44
|
+
lpeversion="1" />
|
|
45
|
+
</defs>
|
|
46
|
+
<g
|
|
47
|
+
inkscape:label="Layer 1"
|
|
48
|
+
inkscape:groupmode="layer"
|
|
49
|
+
id="layer1">
|
|
50
|
+
<rect
|
|
51
|
+
style="opacity:0.995712;fill:none;stroke:#5b21b6;stroke-width:8;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
|
|
52
|
+
id="rect1"
|
|
53
|
+
width="172"
|
|
54
|
+
height="172"
|
|
55
|
+
x="4"
|
|
56
|
+
y="4" />
|
|
57
|
+
<path
|
|
58
|
+
style="fill:none;stroke:#5b21b6;stroke-width:6.15013;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
|
59
|
+
d="M 0,45 180,45"
|
|
60
|
+
id="path2" />
|
|
61
|
+
<text
|
|
62
|
+
xml:space="preserve"
|
|
63
|
+
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:105.833px;line-height:1.25;font-family:'OpenDyslexicMono Nerd Font';-inkscape-font-specification:'OpenDyslexicMono Nerd Font, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#5b21b6;fill-opacity:1;stroke:none;stroke-width:0.265;stroke-dasharray:none;stroke-opacity:1"
|
|
64
|
+
x="9.6828251"
|
|
65
|
+
y="145.79205"
|
|
66
|
+
id="text5"><tspan
|
|
67
|
+
sodipodi:role="line"
|
|
68
|
+
id="tspan5"
|
|
69
|
+
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:105.833px;font-family:'OpenDyslexicMono Nerd Font';-inkscape-font-specification:'OpenDyslexicMono Nerd Font, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#5b21b6;fill-opacity:1;stroke:none;stroke-width:0.265;stroke-dasharray:none;stroke-opacity:1"
|
|
70
|
+
x="9.6828251"
|
|
71
|
+
y="145.79205">Tw</tspan></text>
|
|
72
|
+
</g>
|
|
73
|
+
</svg>
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
2
|
+
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
|
3
|
+
|
|
4
|
+
<svg
|
|
5
|
+
width="180mm"
|
|
6
|
+
height="180mm"
|
|
7
|
+
viewBox="0 0 180 180"
|
|
8
|
+
version="1.1"
|
|
9
|
+
id="svg1"
|
|
10
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
11
|
+
xmlns:svg="http://www.w3.org/2000/svg">
|
|
12
|
+
<defs
|
|
13
|
+
id="defs1" />
|
|
14
|
+
<g
|
|
15
|
+
id="layer1">
|
|
16
|
+
<rect
|
|
17
|
+
style="opacity:0.995712;fill:none;stroke:#5b21b6;stroke-width:8;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
|
|
18
|
+
id="rect1"
|
|
19
|
+
width="172"
|
|
20
|
+
height="172"
|
|
21
|
+
x="4"
|
|
22
|
+
y="4" />
|
|
23
|
+
<path
|
|
24
|
+
style="fill:none;stroke:#5b21b6;stroke-width:6.15013;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
|
25
|
+
d="M 0,45 H 180"
|
|
26
|
+
id="path2" />
|
|
27
|
+
<text
|
|
28
|
+
xml:space="preserve"
|
|
29
|
+
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:105.833px;line-height:1.25;font-family:'OpenDyslexicMono Nerd Font';-inkscape-font-specification:'OpenDyslexicMono Nerd Font, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#5b21b6;fill-opacity:1;stroke:none;stroke-width:0.265;stroke-dasharray:none;stroke-opacity:1"
|
|
30
|
+
x="9.6828251"
|
|
31
|
+
y="145.79205"
|
|
32
|
+
id="text5"><tspan
|
|
33
|
+
id="tspan5"
|
|
34
|
+
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:105.833px;font-family:'OpenDyslexicMono Nerd Font';-inkscape-font-specification:'OpenDyslexicMono Nerd Font, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#5b21b6;fill-opacity:1;stroke:none;stroke-width:0.265;stroke-dasharray:none;stroke-opacity:1"
|
|
35
|
+
x="9.6828251"
|
|
36
|
+
y="145.79205">Tw</tspan></text>
|
|
37
|
+
</g>
|
|
38
|
+
</svg>
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
@component
|
|
3
|
+
EventsTable - A component for displaying component events documentation.
|
|
4
|
+
|
|
5
|
+
Usage:
|
|
6
|
+
```svelte
|
|
7
|
+
<EventsTable
|
|
8
|
+
events={[
|
|
9
|
+
{
|
|
10
|
+
name: 'change',
|
|
11
|
+
type: '{ value: string }',
|
|
12
|
+
description: 'Fired when value changes'
|
|
13
|
+
}
|
|
14
|
+
]}
|
|
15
|
+
/>
|
|
16
|
+
```
|
|
17
|
+
-->
|
|
18
|
+
<script>
|
|
19
|
+
const {
|
|
20
|
+
/** @type {Array<{ name: string, type: string, description: string }>} */
|
|
21
|
+
events = [],
|
|
22
|
+
} = $props()
|
|
23
|
+
</script>
|
|
24
|
+
|
|
25
|
+
<div class="events-table">
|
|
26
|
+
<table>
|
|
27
|
+
<thead>
|
|
28
|
+
<tr>
|
|
29
|
+
<th>Event</th>
|
|
30
|
+
<th>Detail Type</th>
|
|
31
|
+
<th>Description</th>
|
|
32
|
+
</tr>
|
|
33
|
+
</thead>
|
|
34
|
+
<tbody>
|
|
35
|
+
{#each events as event}
|
|
36
|
+
<tr>
|
|
37
|
+
<td class="event-name">
|
|
38
|
+
<code>on{event.name}</code>
|
|
39
|
+
</td>
|
|
40
|
+
<td class="event-type">
|
|
41
|
+
<code>{event.type}</code>
|
|
42
|
+
</td>
|
|
43
|
+
<td class="event-description">
|
|
44
|
+
{event.description}
|
|
45
|
+
</td>
|
|
46
|
+
</tr>
|
|
47
|
+
{/each}
|
|
48
|
+
</tbody>
|
|
49
|
+
</table>
|
|
50
|
+
</div>
|
|
51
|
+
|
|
52
|
+
<style>
|
|
53
|
+
@reference '../twintrinsic.css';
|
|
54
|
+
|
|
55
|
+
.events-table {
|
|
56
|
+
@apply my-4 overflow-x-auto;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
table {
|
|
60
|
+
@apply w-full border-collapse;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
th {
|
|
64
|
+
@apply px-4 py-2 text-left font-medium bg-surface border-b border-border;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
td {
|
|
68
|
+
@apply px-4 py-2 border-b border-border;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
.event-name {
|
|
72
|
+
@apply whitespace-nowrap font-medium;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
.event-type {
|
|
76
|
+
@apply whitespace-nowrap text-muted;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
.event-description {
|
|
80
|
+
@apply text-sm;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
code {
|
|
84
|
+
@apply px-1.5 py-0.5 text-xs font-mono rounded bg-surface;
|
|
85
|
+
}
|
|
86
|
+
</style>
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export default EventsTable;
|
|
2
|
+
type EventsTable = {
|
|
3
|
+
$on?(type: string, callback: (e: any) => void): () => void;
|
|
4
|
+
$set?(props: Partial<$$ComponentProps>): void;
|
|
5
|
+
};
|
|
6
|
+
/**
|
|
7
|
+
* EventsTable - A component for displaying component events documentation.
|
|
8
|
+
*
|
|
9
|
+
* Usage:
|
|
10
|
+
* ```svelte
|
|
11
|
+
* <EventsTable
|
|
12
|
+
* events={[
|
|
13
|
+
* {
|
|
14
|
+
* name: 'change',
|
|
15
|
+
* type: '{ value: string }',
|
|
16
|
+
* description: 'Fired when value changes'
|
|
17
|
+
* }
|
|
18
|
+
* ]}
|
|
19
|
+
* />
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
declare const EventsTable: import("svelte").Component<{
|
|
23
|
+
events?: any[];
|
|
24
|
+
}, {}, "">;
|
|
25
|
+
type $$ComponentProps = {
|
|
26
|
+
events?: any[];
|
|
27
|
+
};
|