@muten/shadcn 0.0.5 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +61 -6
- package/README.md +57 -4
- package/globals.css +30 -2
- package/kit.css +2763 -0
- package/motion.css +79 -0
- package/nova.css +1387 -0
- package/package.json +10 -2
- package/registry/accordion.muten +11 -10
- package/registry/agenda.js +35 -0
- package/registry/agenda.muten +10 -0
- package/registry/alert-dialog.muten +9 -12
- package/registry/alert.muten +8 -8
- package/registry/app-shell.js +9 -0
- package/registry/app-shell.muten +12 -0
- package/registry/attachment.muten +13 -9
- package/registry/avatar.muten +24 -5
- package/registry/badge.muten +23 -8
- package/registry/band.muten +16 -0
- package/registry/bar-chart.muten +7 -0
- package/registry/bell.muten +3 -0
- package/registry/bento.muten +6 -9
- package/registry/booking.js +21 -0
- package/registry/booking.muten +13 -0
- package/registry/breadcrumb.muten +9 -7
- package/registry/button-group.muten +13 -4
- package/registry/button.muten +21 -8
- package/registry/calendar.js +28 -93
- package/registry/calendar.muten +9 -8
- package/registry/canvas-viewport.js +12 -5
- package/registry/canvas-viewport.muten +9 -9
- package/registry/card-field.muten +4 -0
- package/registry/card.muten +12 -8
- package/registry/carousel.js +5 -36
- package/registry/carousel.muten +12 -5
- package/registry/chatbot.muten +9 -0
- package/registry/checklist.muten +6 -0
- package/registry/choice-list.muten +16 -0
- package/registry/code.js +14 -12
- package/registry/code.muten +6 -7
- package/registry/collapsible.muten +14 -10
- package/registry/color-picker.js +460 -41
- package/registry/color-picker.muten +7 -6
- package/registry/combobox.js +5 -0
- package/registry/combobox.muten +6 -23
- package/registry/command-palette.muten +8 -12
- package/registry/command.js +32 -0
- package/registry/command.muten +32 -11
- package/registry/context-menu.muten +9 -8
- package/registry/count-up.muten +5 -10
- package/registry/date-field.js +5 -0
- package/registry/date-field.muten +7 -0
- package/registry/device-frame.muten +8 -0
- package/registry/dialog.muten +6 -12
- package/registry/dirty-bar.js +19 -0
- package/registry/dirty-bar.muten +13 -0
- package/registry/drawer.muten +6 -11
- package/registry/dropdown-menu.muten +37 -13
- package/registry/empty.muten +11 -7
- package/registry/feature-grid.muten +10 -12
- package/registry/feature-rows.muten +12 -8
- package/registry/field-behavior.js +33 -0
- package/registry/field-behavior.muten +9 -0
- package/registry/field.muten +26 -7
- package/registry/file-input.js +36 -21
- package/registry/file-input.muten +8 -7
- package/registry/fixed-card.muten +25 -0
- package/registry/folder-picker.js +13 -15
- package/registry/folder-picker.muten +5 -8
- package/registry/gradient-blinds.muten +6 -13
- package/registry/hover-card.muten +7 -9
- package/registry/image-upload.js +5 -0
- package/registry/image-upload.muten +8 -0
- package/registry/indicator.muten +5 -0
- package/registry/input-group.muten +27 -4
- package/registry/input-otp.js +8 -35
- package/registry/input-otp.muten +6 -6
- package/registry/input.muten +8 -7
- package/registry/inspector.muten +13 -15
- package/registry/island.js +7 -0
- package/registry/island.muten +5 -0
- package/registry/item.muten +20 -7
- package/registry/kbd.muten +3 -3
- package/registry/kit/board.js +300 -0
- package/registry/kit/collections.js +148 -0
- package/registry/kit/core.js +989 -0
- package/registry/kit/dates.js +106 -0
- package/registry/kit/menus.js +90 -0
- package/registry/kit/overlays.js +114 -0
- package/registry/kit/paint.js +211 -0
- package/registry/kit/qrcode.js +2291 -0
- package/registry/kit/structure.js +393 -0
- package/registry/kit/table.js +198 -0
- package/registry/kit/values.js +179 -0
- package/registry/kit-layer.js +2 -0
- package/registry/kit-layer.muten +5 -0
- package/registry/kit-skeleton.js +24 -0
- package/registry/kit-skeleton.muten +16 -0
- package/registry/kit-widget.js +79 -0
- package/registry/kit-widget.muten +4 -0
- package/registry/link-btn.muten +9 -7
- package/registry/live-stack.js +29 -0
- package/registry/live-stack.muten +7 -0
- package/registry/logo-cloud.muten +6 -11
- package/registry/member-list.muten +6 -0
- package/registry/menubar.muten +10 -14
- package/registry/message-scroller.js +12 -0
- package/registry/message-scroller.muten +8 -4
- package/registry/message.muten +27 -10
- package/registry/messaging.muten +11 -0
- package/registry/modal-behavior.js +56 -0
- package/registry/modal-behavior.muten +4 -0
- package/registry/modal.muten +29 -0
- package/registry/money-field.js +5 -0
- package/registry/money-field.muten +7 -0
- package/registry/nav-button.muten +14 -0
- package/registry/navigation-menu.muten +16 -14
- package/registry/navpill.muten +15 -9
- package/registry/new-appointment.js +8 -0
- package/registry/new-appointment.muten +10 -0
- package/registry/number-field.js +34 -24
- package/registry/number-field.muten +8 -6
- package/registry/order-board.js +6 -0
- package/registry/order-board.muten +21 -0
- package/registry/overlay-behavior.js +13 -0
- package/registry/overlay-behavior.muten +4 -0
- package/registry/pagination-nav.js +6 -0
- package/registry/pagination-nav.muten +8 -0
- package/registry/pagination.muten +12 -9
- package/registry/password-field.muten +3 -0
- package/registry/permission-matrix.muten +6 -0
- package/registry/phone-field.js +5 -0
- package/registry/phone-field.muten +7 -0
- package/registry/phone-shell.js +7 -0
- package/registry/phone-shell.muten +9 -0
- package/registry/pill.muten +6 -5
- package/registry/plans.muten +4 -0
- package/registry/popover.muten +16 -9
- package/registry/pricing.muten +21 -21
- package/registry/progress.muten +5 -5
- package/registry/queue.muten +3 -0
- package/registry/radio-group.muten +16 -8
- package/registry/range-slider.js +9 -24
- package/registry/range-slider.muten +4 -5
- package/registry/resizable.js +34 -27
- package/registry/resizable.muten +16 -5
- package/registry/roving-behavior.js +16 -0
- package/registry/roving-behavior.muten +3 -0
- package/registry/row-menu.js +5 -0
- package/registry/row-menu.muten +5 -0
- package/registry/save-button.muten +11 -0
- package/registry/scale-slider.js +7 -0
- package/registry/scale-slider.muten +9 -0
- package/registry/scroll-area.muten +8 -4
- package/registry/segmented-control.muten +8 -8
- package/registry/separator.muten +3 -3
- package/registry/share-button.js +7 -0
- package/registry/share-button.muten +10 -0
- package/registry/sheet.muten +6 -10
- package/registry/sidebar.muten +23 -15
- package/registry/skeleton.muten +6 -4
- package/registry/slider.js +73 -27
- package/registry/slider.muten +6 -6
- package/registry/sortable-behavior.js +43 -0
- package/registry/sortable-behavior.muten +2 -0
- package/registry/sortable-list.js +10 -26
- package/registry/sortable-list.muten +6 -7
- package/registry/sortable.muten +15 -0
- package/registry/spark.js +14 -0
- package/registry/spark.muten +3 -0
- package/registry/spinner.muten +4 -3
- package/registry/split-button.muten +12 -10
- package/registry/stamp-card.muten +7 -0
- package/registry/stat-band.muten +6 -9
- package/registry/stat.muten +23 -0
- package/registry/status-bar.muten +7 -6
- package/registry/stepper.muten +17 -14
- package/registry/store-qr.js +5 -0
- package/registry/store-qr.muten +5 -0
- package/registry/swatch.muten +8 -8
- package/registry/switch.muten +14 -6
- package/registry/table-view.muten +10 -0
- package/registry/tabs-behavior.js +27 -0
- package/registry/tabs-behavior.muten +3 -0
- package/registry/tabs.muten +19 -10
- package/registry/tag-input.js +4 -27
- package/registry/tag-input.muten +6 -6
- package/registry/text.muten +7 -0
- package/registry/time-field.js +5 -0
- package/registry/time-field.muten +6 -0
- package/registry/timeline.muten +14 -14
- package/registry/toaster.js +34 -22
- package/registry/toaster.muten +10 -8
- package/registry/toggle-group.muten +11 -6
- package/registry/toggle.muten +8 -5
- package/registry/toolbar.muten +11 -6
- package/registry/tooltip.muten +6 -9
- package/registry/tree-view.js +27 -7
- package/registry/tree-view.muten +8 -13
- package/registry/vector-field.muten +9 -8
- package/registry/virtual-list.js +5 -0
- package/registry/virtual-list.muten +6 -0
- package/registry/weekly-hours.muten +4 -0
- package/registry/wordline.muten +6 -0
- package/registry/zoom-control.muten +9 -9
- package/registry.json +868 -424
- package/themes/bloom.css +53 -0
- package/themes/editorial.css +65 -0
- package/themes/noir.css +54 -0
- package/registry/chart.js +0 -34
- package/registry/chart.muten +0 -7
- package/registry/checkbox.muten +0 -8
- package/registry/context-menu.js +0 -34
- package/registry/select.muten +0 -21
package/registry.json
CHANGED
|
@@ -4,624 +4,1068 @@
|
|
|
4
4
|
"style": "shadcn zinc dark (tokens shipped by globals.css: bg-card / bg-primary / text-muted-foreground / border-border / …)",
|
|
5
5
|
"components": [
|
|
6
6
|
{
|
|
7
|
-
"name": "
|
|
8
|
-
"
|
|
9
|
-
"
|
|
10
|
-
"
|
|
11
|
-
"
|
|
7
|
+
"name": "accordion",
|
|
8
|
+
"deps": [],
|
|
9
|
+
"part": "Accordion",
|
|
10
|
+
"file": "registry/accordion.muten",
|
|
11
|
+
"description": "Stacked expandable sections with AccordionItem; page owns a bool per item."
|
|
12
12
|
},
|
|
13
13
|
{
|
|
14
|
-
"name": "
|
|
15
|
-
"
|
|
16
|
-
"
|
|
17
|
-
"
|
|
18
|
-
"
|
|
14
|
+
"name": "agenda",
|
|
15
|
+
"deps": [],
|
|
16
|
+
"part": "Agenda",
|
|
17
|
+
"file": "registry/agenda.muten",
|
|
18
|
+
"component": "Agenda",
|
|
19
|
+
"description": "Agenda(resources, hours, events, blocks, from, to, slot, onCreate, onChange): day/week/list, drag, resize, appointment sheet (Custom, kit core)."
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"name": "alert-dialog",
|
|
23
|
+
"deps": [],
|
|
24
|
+
"part": "AlertDialog",
|
|
25
|
+
"file": "registry/alert-dialog.muten",
|
|
26
|
+
"description": "A modal requiring an explicit choice (no backdrop dismiss); page owns the open bool."
|
|
19
27
|
},
|
|
20
28
|
{
|
|
21
29
|
"name": "alert",
|
|
30
|
+
"deps": [],
|
|
22
31
|
"part": "Alert",
|
|
23
32
|
"file": "registry/alert.muten",
|
|
24
|
-
"description": "
|
|
25
|
-
|
|
33
|
+
"description": "Alert(variant, tone) callout: an Icon, AlertTitle, AlertDescription, AlertAction at the corner. tone: info | ok | wait."
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"name": "app-shell",
|
|
37
|
+
"deps": [],
|
|
38
|
+
"part": "AppShell",
|
|
39
|
+
"file": "registry/app-shell.muten",
|
|
40
|
+
"component": "AppShell",
|
|
41
|
+
"description": "AppShell(brand, user, nav, pages, rows, commands, narrow, onNavigate, onOpen, onAction): Sidebar, page header, detail Sheet, ⌘K Command."
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"name": "attachment",
|
|
45
|
+
"deps": [],
|
|
46
|
+
"part": "Attachment",
|
|
47
|
+
"file": "registry/attachment.muten",
|
|
48
|
+
"description": "A file attachment chip (icon + name + size)."
|
|
26
49
|
},
|
|
27
50
|
{
|
|
28
51
|
"name": "avatar",
|
|
52
|
+
"deps": [],
|
|
29
53
|
"part": "Avatar",
|
|
30
54
|
"file": "registry/avatar.muten",
|
|
31
|
-
"description": "
|
|
32
|
-
"deps": []
|
|
55
|
+
"description": "Avatar(name, size, shape, status): initials with a stable tone from the name, name on hover, online dot · AvatarImage · AvatarGroup + AvatarMore · Who."
|
|
33
56
|
},
|
|
34
57
|
{
|
|
35
|
-
"name": "
|
|
36
|
-
"
|
|
37
|
-
"
|
|
38
|
-
"
|
|
39
|
-
"
|
|
58
|
+
"name": "badge",
|
|
59
|
+
"deps": [],
|
|
60
|
+
"part": "Badge",
|
|
61
|
+
"file": "registry/badge.muten",
|
|
62
|
+
"description": "Badge(label, variant) · StatusBadge(label, tone) dot+word · ToneBadge(label, tone, dot) tinted · Chip(label, onRemove) removable."
|
|
40
63
|
},
|
|
41
64
|
{
|
|
42
|
-
"name": "
|
|
43
|
-
"
|
|
44
|
-
"
|
|
45
|
-
"
|
|
46
|
-
"
|
|
65
|
+
"name": "band",
|
|
66
|
+
"deps": [],
|
|
67
|
+
"part": "Band",
|
|
68
|
+
"file": "registry/band.muten",
|
|
69
|
+
"description": "Band(open, tone, text, action, onAction) { Icon }: the top strip for a lasting state; folds, never clips."
|
|
47
70
|
},
|
|
48
71
|
{
|
|
49
|
-
"name": "
|
|
50
|
-
"
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
"
|
|
72
|
+
"name": "bar-chart",
|
|
73
|
+
"deps": [
|
|
74
|
+
"kit-widget"
|
|
75
|
+
],
|
|
76
|
+
"part": "BarChart",
|
|
77
|
+
"file": "registry/bar-chart.muten",
|
|
78
|
+
"description": "BarChart - bars that always fill their height, a period switch (14 días / 30 días). periods: {label, values} - the"
|
|
54
79
|
},
|
|
55
80
|
{
|
|
56
|
-
"name": "
|
|
57
|
-
"
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
"
|
|
81
|
+
"name": "bell",
|
|
82
|
+
"deps": [
|
|
83
|
+
"kit-widget"
|
|
84
|
+
],
|
|
85
|
+
"part": "Bell",
|
|
86
|
+
"file": "registry/bell.muten",
|
|
87
|
+
"description": "Bell - the system's notifications: tap to see them, mark all read. Bell(items: @notices) items: {icon, tone, title, desc, time, unread}"
|
|
61
88
|
},
|
|
62
89
|
{
|
|
63
|
-
"name": "
|
|
64
|
-
"
|
|
65
|
-
"
|
|
66
|
-
"
|
|
67
|
-
"
|
|
90
|
+
"name": "bento",
|
|
91
|
+
"deps": [],
|
|
92
|
+
"part": "BentoGallery",
|
|
93
|
+
"file": "registry/bento.muten",
|
|
94
|
+
"description": "BLOCK: fixed-row-height tiling gallery; cells pick their col-span. Parts: BentoGallery, BentoCell."
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
"name": "booking",
|
|
98
|
+
"deps": [],
|
|
99
|
+
"part": "Booking",
|
|
100
|
+
"file": "registry/booking.muten",
|
|
101
|
+
"component": "Booking",
|
|
102
|
+
"description": "Booking(week, taken, wait, onSelect): week strip and hours, closed and full days, skeleton while loading."
|
|
68
103
|
},
|
|
69
104
|
{
|
|
70
105
|
"name": "breadcrumb",
|
|
106
|
+
"deps": [],
|
|
71
107
|
"part": "Breadcrumb",
|
|
72
108
|
"file": "registry/breadcrumb.muten",
|
|
73
|
-
"description": "A breadcrumb trail with BreadcrumbLink / BreadcrumbSeparator / BreadcrumbPage."
|
|
74
|
-
"deps": []
|
|
75
|
-
},
|
|
76
|
-
{
|
|
77
|
-
"name": "pagination",
|
|
78
|
-
"part": "Pagination",
|
|
79
|
-
"file": "registry/pagination.muten",
|
|
80
|
-
"description": "Page navigation with PaginationLink / Previous / Next / Ellipsis.",
|
|
81
|
-
"deps": []
|
|
109
|
+
"description": "A breadcrumb trail with BreadcrumbLink / BreadcrumbSeparator / BreadcrumbPage."
|
|
82
110
|
},
|
|
83
111
|
{
|
|
84
|
-
"name": "
|
|
85
|
-
"
|
|
86
|
-
"
|
|
87
|
-
"
|
|
88
|
-
"
|
|
112
|
+
"name": "button-group",
|
|
113
|
+
"deps": [],
|
|
114
|
+
"part": "ButtonGroup",
|
|
115
|
+
"file": "registry/button-group.muten",
|
|
116
|
+
"description": "A segmented row of buttons that share borders. Put btn-outline buttons inside."
|
|
89
117
|
},
|
|
90
118
|
{
|
|
91
|
-
"name": "
|
|
92
|
-
"
|
|
93
|
-
"
|
|
94
|
-
"
|
|
95
|
-
"
|
|
119
|
+
"name": "button",
|
|
120
|
+
"deps": [],
|
|
121
|
+
"part": "Btn",
|
|
122
|
+
"file": "registry/button.muten",
|
|
123
|
+
"description": "Btn(variant, size, onClick) { slot }: Nova button with fixed heights; icons move on hover. variant: default | outline | secondary | ghost | destructive | link. size: xs | sm | default | lg | icon | icon-xs | icon-sm | icon-lg."
|
|
96
124
|
},
|
|
97
125
|
{
|
|
98
|
-
"name": "
|
|
99
|
-
"
|
|
100
|
-
"
|
|
101
|
-
"
|
|
102
|
-
"
|
|
126
|
+
"name": "calendar",
|
|
127
|
+
"deps": [],
|
|
128
|
+
"part": "Calendar",
|
|
129
|
+
"file": "registry/calendar.muten",
|
|
130
|
+
"component": "Calendar",
|
|
131
|
+
"description": "Calendar(selected, mode, months, min, onSelect): the kit month grid, single day or range, 1 or 2 months (Custom, kit core)."
|
|
103
132
|
},
|
|
104
133
|
{
|
|
105
|
-
"name": "
|
|
106
|
-
"
|
|
107
|
-
"
|
|
108
|
-
"
|
|
109
|
-
"
|
|
134
|
+
"name": "canvas-viewport",
|
|
135
|
+
"deps": [],
|
|
136
|
+
"part": "CanvasViewport",
|
|
137
|
+
"file": "registry/canvas-viewport.muten",
|
|
138
|
+
"component": "CanvasHost",
|
|
139
|
+
"description": "A <canvas> with pan/zoom (Custom) + a muten toolbar slot floating on top."
|
|
110
140
|
},
|
|
111
141
|
{
|
|
112
|
-
"name": "
|
|
113
|
-
"
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
"
|
|
142
|
+
"name": "card-field",
|
|
143
|
+
"deps": [
|
|
144
|
+
"kit-widget"
|
|
145
|
+
],
|
|
146
|
+
"part": "CardField",
|
|
147
|
+
"file": "registry/card-field.muten",
|
|
148
|
+
"description": "CardField - card number with its brand, expiry, code; validates (Luhn) and says what was saved."
|
|
117
149
|
},
|
|
118
150
|
{
|
|
119
|
-
"name": "
|
|
120
|
-
"
|
|
121
|
-
"
|
|
122
|
-
"
|
|
123
|
-
"
|
|
151
|
+
"name": "card",
|
|
152
|
+
"deps": [],
|
|
153
|
+
"part": "Card",
|
|
154
|
+
"file": "registry/card.muten",
|
|
155
|
+
"description": "Card(size) surface that only conveys: CardHeader (CardTitle, CardDescription, CardAction) / CardContent / CardFooter. size: default | sm."
|
|
124
156
|
},
|
|
125
157
|
{
|
|
126
|
-
"name": "
|
|
127
|
-
"
|
|
128
|
-
"
|
|
129
|
-
"
|
|
130
|
-
"
|
|
158
|
+
"name": "carousel",
|
|
159
|
+
"deps": [],
|
|
160
|
+
"part": "Carousel",
|
|
161
|
+
"file": "registry/carousel.muten",
|
|
162
|
+
"component": "Carousel",
|
|
163
|
+
"description": "Carousel(label, perView, center, loop, autoplay, indicator, arrows) { CarouselSlide }: one component, options instead of copies."
|
|
131
164
|
},
|
|
132
165
|
{
|
|
133
|
-
"name": "
|
|
134
|
-
"
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
"
|
|
166
|
+
"name": "chatbot",
|
|
167
|
+
"deps": [
|
|
168
|
+
"kit-widget"
|
|
169
|
+
],
|
|
170
|
+
"part": "Chatbot",
|
|
171
|
+
"file": "registry/chatbot.muten",
|
|
172
|
+
"description": "Chatbot - the assistant: greets, offers suggestions, «thinks», writes the answer live (with Stop), can carry an"
|
|
138
173
|
},
|
|
139
174
|
{
|
|
140
|
-
"name": "
|
|
141
|
-
"
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
"
|
|
175
|
+
"name": "checklist",
|
|
176
|
+
"deps": [
|
|
177
|
+
"kit-widget"
|
|
178
|
+
],
|
|
179
|
+
"part": "Checklist",
|
|
180
|
+
"file": "registry/checklist.muten",
|
|
181
|
+
"description": "Checklist - first steps with progress: done steps checked, the next ones with their action (onAction gets its label)."
|
|
145
182
|
},
|
|
146
183
|
{
|
|
147
|
-
"name": "
|
|
148
|
-
"
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
"
|
|
184
|
+
"name": "choice-list",
|
|
185
|
+
"deps": [
|
|
186
|
+
"roving-behavior"
|
|
187
|
+
],
|
|
188
|
+
"part": "ChoiceList",
|
|
189
|
+
"file": "registry/choice-list.muten",
|
|
190
|
+
"description": "ChoiceList(label) + ChoiceItem(value, current, onPick, title, description, price): Items as a radio group (arrows pick)."
|
|
152
191
|
},
|
|
153
192
|
{
|
|
154
|
-
"name": "
|
|
155
|
-
"
|
|
156
|
-
"
|
|
157
|
-
"
|
|
158
|
-
"
|
|
193
|
+
"name": "code",
|
|
194
|
+
"deps": [],
|
|
195
|
+
"part": "Code",
|
|
196
|
+
"file": "registry/code.muten",
|
|
197
|
+
"component": "Code",
|
|
198
|
+
"description": "Syntax-highlighted code block that understands muten (shared highlight.js, same grammar as the VS Code extension)."
|
|
159
199
|
},
|
|
160
200
|
{
|
|
161
|
-
"name": "
|
|
162
|
-
"
|
|
163
|
-
"
|
|
164
|
-
"
|
|
165
|
-
"
|
|
201
|
+
"name": "collapsible",
|
|
202
|
+
"deps": [],
|
|
203
|
+
"part": "Collapsible",
|
|
204
|
+
"file": "registry/collapsible.muten",
|
|
205
|
+
"description": "A trigger + content shown when open; page owns the bool."
|
|
166
206
|
},
|
|
167
207
|
{
|
|
168
|
-
"name": "
|
|
169
|
-
"
|
|
170
|
-
"
|
|
171
|
-
"
|
|
172
|
-
"
|
|
208
|
+
"name": "color-picker",
|
|
209
|
+
"deps": [],
|
|
210
|
+
"part": "ColorPicker",
|
|
211
|
+
"file": "registry/color-picker.muten",
|
|
212
|
+
"component": "ColorPicker",
|
|
213
|
+
"description": "ColorPicker(value, modes, anims, label, onInput): Storio's colour picker (solid, gradient, animations)."
|
|
173
214
|
},
|
|
174
215
|
{
|
|
175
|
-
"name": "
|
|
176
|
-
"
|
|
177
|
-
"
|
|
178
|
-
"
|
|
179
|
-
"
|
|
216
|
+
"name": "combobox",
|
|
217
|
+
"deps": [],
|
|
218
|
+
"part": "Combobox",
|
|
219
|
+
"file": "registry/combobox.muten",
|
|
220
|
+
"component": "Combobox",
|
|
221
|
+
"description": "Combobox(label, options, value, placeholder, allowNew, onChange): filters and marks the match, «Usar …» for a new value."
|
|
180
222
|
},
|
|
181
223
|
{
|
|
182
|
-
"name": "
|
|
183
|
-
"
|
|
184
|
-
"
|
|
185
|
-
"
|
|
186
|
-
"
|
|
224
|
+
"name": "command-palette",
|
|
225
|
+
"deps": [],
|
|
226
|
+
"part": "CommandPalette",
|
|
227
|
+
"file": "registry/command-palette.muten",
|
|
228
|
+
"description": "A top-anchored modal holding a Command; page owns the open bool."
|
|
187
229
|
},
|
|
188
230
|
{
|
|
189
|
-
"name": "
|
|
190
|
-
"
|
|
191
|
-
"
|
|
192
|
-
"
|
|
193
|
-
"
|
|
231
|
+
"name": "command",
|
|
232
|
+
"deps": [],
|
|
233
|
+
"part": "Command",
|
|
234
|
+
"file": "registry/command.muten",
|
|
235
|
+
"component": "CommandBehavior",
|
|
236
|
+
"description": "A command palette (search + grouped CommandItem list)."
|
|
194
237
|
},
|
|
195
238
|
{
|
|
196
|
-
"name": "
|
|
197
|
-
"
|
|
198
|
-
"
|
|
199
|
-
"
|
|
200
|
-
"
|
|
239
|
+
"name": "context-menu",
|
|
240
|
+
"deps": [],
|
|
241
|
+
"part": "ContextMenu",
|
|
242
|
+
"file": "registry/context-menu.muten",
|
|
243
|
+
"description": "Right-click an area to open a menu of items (Custom)."
|
|
201
244
|
},
|
|
202
245
|
{
|
|
203
|
-
"name": "
|
|
204
|
-
"
|
|
205
|
-
"
|
|
206
|
-
"
|
|
207
|
-
"
|
|
246
|
+
"name": "count-up",
|
|
247
|
+
"deps": [],
|
|
248
|
+
"part": "CountUp",
|
|
249
|
+
"file": "registry/count-up.muten",
|
|
250
|
+
"component": "CountUp",
|
|
251
|
+
"description": "Animate a formatted number (2.4M / 94% / 40ms / 99.99%) from 0 when it scrolls into view; lands on the exact target. Custom. Styled form (takes the class): `Custom CountUp inputs(to: \"2.4M\") class(\"text-4xl font-bold\")`. For stat bands + hero metrics."
|
|
208
252
|
},
|
|
209
253
|
{
|
|
210
|
-
"name": "
|
|
211
|
-
"
|
|
212
|
-
"
|
|
213
|
-
"
|
|
214
|
-
"
|
|
254
|
+
"name": "date-field",
|
|
255
|
+
"deps": [],
|
|
256
|
+
"part": "DateField",
|
|
257
|
+
"file": "registry/date-field.muten",
|
|
258
|
+
"component": "DateField",
|
|
259
|
+
"description": "DateField(label, value, min, years, onChange): the long date; opens the date wheels."
|
|
215
260
|
},
|
|
216
261
|
{
|
|
217
|
-
"name": "
|
|
218
|
-
"
|
|
219
|
-
"
|
|
220
|
-
"
|
|
221
|
-
"
|
|
262
|
+
"name": "device-frame",
|
|
263
|
+
"deps": [],
|
|
264
|
+
"part": "DeviceFrame",
|
|
265
|
+
"file": "registry/device-frame.muten",
|
|
266
|
+
"description": "DeviceFrame - a device around a picture of a product: a phone (rounded bezel) or a browser window (a bar with"
|
|
222
267
|
},
|
|
223
268
|
{
|
|
224
|
-
"name": "
|
|
225
|
-
"
|
|
226
|
-
"
|
|
227
|
-
"
|
|
228
|
-
"
|
|
269
|
+
"name": "dialog",
|
|
270
|
+
"deps": [],
|
|
271
|
+
"part": "Dialog",
|
|
272
|
+
"file": "registry/dialog.muten",
|
|
273
|
+
"description": "A modal with DialogTitle/Description/Footer; page owns the open bool. Backdrop click closes."
|
|
229
274
|
},
|
|
230
275
|
{
|
|
231
|
-
"name": "
|
|
232
|
-
"
|
|
233
|
-
"
|
|
234
|
-
"
|
|
235
|
-
"
|
|
276
|
+
"name": "dirty-bar",
|
|
277
|
+
"deps": [],
|
|
278
|
+
"part": "SettingsForm",
|
|
279
|
+
"file": "registry/dirty-bar.muten",
|
|
280
|
+
"component": "DirtyBar",
|
|
281
|
+
"description": "DirtyBar - «Tienes cambios sin guardar»: a floating footer of the form it sits in. It appears when any field,"
|
|
236
282
|
},
|
|
237
283
|
{
|
|
238
|
-
"name": "
|
|
239
|
-
"
|
|
240
|
-
"
|
|
241
|
-
"
|
|
242
|
-
"
|
|
284
|
+
"name": "drawer",
|
|
285
|
+
"deps": [],
|
|
286
|
+
"part": "Drawer",
|
|
287
|
+
"file": "registry/drawer.muten",
|
|
288
|
+
"description": "A panel that slides up from the bottom; page owns the open bool."
|
|
243
289
|
},
|
|
244
290
|
{
|
|
245
|
-
"name": "
|
|
246
|
-
"
|
|
247
|
-
"
|
|
248
|
-
"
|
|
249
|
-
"
|
|
291
|
+
"name": "dropdown-menu",
|
|
292
|
+
"deps": [],
|
|
293
|
+
"part": "DropdownMenu",
|
|
294
|
+
"file": "registry/dropdown-menu.muten",
|
|
295
|
+
"description": "A menu below a trigger with DropdownItem/Label/Separator; page owns the open bool."
|
|
250
296
|
},
|
|
251
297
|
{
|
|
252
|
-
"name": "
|
|
253
|
-
"
|
|
254
|
-
"
|
|
255
|
-
"
|
|
256
|
-
"
|
|
298
|
+
"name": "empty",
|
|
299
|
+
"deps": [],
|
|
300
|
+
"part": "Empty",
|
|
301
|
+
"file": "registry/empty.muten",
|
|
302
|
+
"description": "Empty(title, description) { Icon } — what a list says when it has nothing yet."
|
|
257
303
|
},
|
|
258
304
|
{
|
|
259
|
-
"name": "
|
|
260
|
-
"
|
|
261
|
-
"
|
|
262
|
-
"
|
|
263
|
-
"
|
|
305
|
+
"name": "feature-grid",
|
|
306
|
+
"deps": [],
|
|
307
|
+
"part": "FeatureGrid",
|
|
308
|
+
"file": "registry/feature-grid.muten",
|
|
309
|
+
"description": "BLOCK: responsive grid of feature cards (icon + title + copy). Parts: FeatureGrid, FeatureCard."
|
|
264
310
|
},
|
|
265
311
|
{
|
|
266
|
-
"name": "
|
|
267
|
-
"
|
|
268
|
-
"
|
|
269
|
-
"
|
|
270
|
-
"description": "
|
|
271
|
-
"deps": []
|
|
312
|
+
"name": "feature-rows",
|
|
313
|
+
"deps": [],
|
|
314
|
+
"part": "FeatureRows",
|
|
315
|
+
"file": "registry/feature-rows.muten",
|
|
316
|
+
"description": "BLOCK: numbered feature/schedule rows with side gutters (12-col grid inside). Parts: FeatureRows, FeatureRow."
|
|
272
317
|
},
|
|
273
318
|
{
|
|
274
|
-
"name": "
|
|
275
|
-
"
|
|
276
|
-
"
|
|
277
|
-
"
|
|
278
|
-
"
|
|
279
|
-
"
|
|
319
|
+
"name": "field-behavior",
|
|
320
|
+
"deps": [],
|
|
321
|
+
"part": "FieldBehavior",
|
|
322
|
+
"file": "registry/field-behavior.muten",
|
|
323
|
+
"component": "FieldBehavior",
|
|
324
|
+
"description": "FieldBehavior(kind, message, max): money thousands on blur · email checked on blur · Esc clears search · character count."
|
|
280
325
|
},
|
|
281
326
|
{
|
|
282
|
-
"name": "
|
|
283
|
-
"
|
|
284
|
-
"
|
|
285
|
-
"
|
|
286
|
-
"description": "
|
|
287
|
-
"deps": []
|
|
327
|
+
"name": "field",
|
|
328
|
+
"deps": [],
|
|
329
|
+
"part": "Field",
|
|
330
|
+
"file": "registry/field.muten",
|
|
331
|
+
"description": "Field(label, description, orientation) { control } + FieldRow (two columns) + FieldLabel / FieldDescription / FieldError."
|
|
288
332
|
},
|
|
289
333
|
{
|
|
290
|
-
"name": "
|
|
291
|
-
"
|
|
292
|
-
"
|
|
293
|
-
"
|
|
294
|
-
"
|
|
295
|
-
"
|
|
334
|
+
"name": "file-input",
|
|
335
|
+
"deps": [],
|
|
336
|
+
"part": "FileInput",
|
|
337
|
+
"file": "registry/file-input.muten",
|
|
338
|
+
"component": "FileInput",
|
|
339
|
+
"description": "A click/drag-drop file dropzone (Custom); emits file names."
|
|
296
340
|
},
|
|
297
341
|
{
|
|
298
|
-
"name": "
|
|
299
|
-
"
|
|
300
|
-
"
|
|
301
|
-
"
|
|
302
|
-
"description": "
|
|
303
|
-
"deps": []
|
|
342
|
+
"name": "fixed-card",
|
|
343
|
+
"deps": [],
|
|
344
|
+
"part": "FixedCard",
|
|
345
|
+
"file": "registry/fixed-card.muten",
|
|
346
|
+
"description": "FixedCard(title, description) + Row3(time, title, subtitle) + EmptyMini(text): a card that never grows (3 rows + «Ver todas»)."
|
|
304
347
|
},
|
|
305
348
|
{
|
|
306
|
-
"name": "
|
|
307
|
-
"
|
|
308
|
-
"
|
|
309
|
-
"
|
|
310
|
-
"
|
|
311
|
-
"
|
|
349
|
+
"name": "folder-picker",
|
|
350
|
+
"deps": [],
|
|
351
|
+
"part": "FolderPicker",
|
|
352
|
+
"file": "registry/folder-picker.muten",
|
|
353
|
+
"component": "FolderPicker",
|
|
354
|
+
"description": "Connect a local folder via showDirectoryPicker (Custom); emits the name."
|
|
312
355
|
},
|
|
313
356
|
{
|
|
314
357
|
"name": "gradient-blinds",
|
|
358
|
+
"deps": [
|
|
359
|
+
"ogl"
|
|
360
|
+
],
|
|
315
361
|
"part": "GradientBlinds",
|
|
316
362
|
"file": "registry/gradient-blinds.muten",
|
|
317
363
|
"component": "GradientBlinds",
|
|
318
|
-
"description": "Animated WebGL gradient + diagonal-blinds hero background that follows the cursor and fades into the page (needs ogl)."
|
|
319
|
-
"deps": [
|
|
320
|
-
"ogl"
|
|
321
|
-
]
|
|
364
|
+
"description": "Animated WebGL gradient + diagonal-blinds hero background that follows the cursor and fades into the page (needs ogl)."
|
|
322
365
|
},
|
|
323
366
|
{
|
|
324
|
-
"name": "
|
|
325
|
-
"
|
|
326
|
-
"
|
|
327
|
-
"
|
|
328
|
-
"
|
|
329
|
-
"
|
|
367
|
+
"name": "hotkey",
|
|
368
|
+
"deps": [],
|
|
369
|
+
"part": "Hotkey",
|
|
370
|
+
"file": "registry/hotkey.muten",
|
|
371
|
+
"component": "Hotkey",
|
|
372
|
+
"description": "A global keyboard shortcut (Cmd/Ctrl+key), invisible (Custom)."
|
|
330
373
|
},
|
|
331
374
|
{
|
|
332
|
-
"name": "
|
|
333
|
-
"
|
|
334
|
-
"
|
|
335
|
-
"
|
|
336
|
-
"description": "
|
|
337
|
-
"deps": []
|
|
375
|
+
"name": "hover-card",
|
|
376
|
+
"deps": [],
|
|
377
|
+
"part": "HoverCard",
|
|
378
|
+
"file": "registry/hover-card.muten",
|
|
379
|
+
"description": "Richer content shown on hover (pure CSS, no state)."
|
|
338
380
|
},
|
|
339
381
|
{
|
|
340
|
-
"name": "
|
|
341
|
-
"
|
|
342
|
-
"
|
|
343
|
-
"
|
|
344
|
-
"
|
|
345
|
-
"
|
|
382
|
+
"name": "image-upload",
|
|
383
|
+
"deps": [],
|
|
384
|
+
"part": "ImageUpload",
|
|
385
|
+
"file": "registry/image-upload.muten",
|
|
386
|
+
"component": "ImageUpload",
|
|
387
|
+
"description": "ImageUpload(title, hint, maxMb, size, uploadUrl, sample, onReady): validate, decode, crop, shrink, upload with progress."
|
|
346
388
|
},
|
|
347
389
|
{
|
|
348
|
-
"name": "
|
|
349
|
-
"
|
|
350
|
-
"
|
|
351
|
-
"
|
|
352
|
-
"
|
|
390
|
+
"name": "indicator",
|
|
391
|
+
"deps": [],
|
|
392
|
+
"part": "Indicator",
|
|
393
|
+
"file": "registry/indicator.muten",
|
|
394
|
+
"description": "Indicator(tone): the corner dot that says something needs you."
|
|
353
395
|
},
|
|
354
396
|
{
|
|
355
|
-
"name": "
|
|
356
|
-
"
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
"
|
|
360
|
-
"
|
|
397
|
+
"name": "input-group",
|
|
398
|
+
"deps": [
|
|
399
|
+
"field-behavior"
|
|
400
|
+
],
|
|
401
|
+
"part": "InputGroup",
|
|
402
|
+
"file": "registry/input-group.muten",
|
|
403
|
+
"description": "InputGroup + InputAddon(align) + GroupInput(value) · SearchInput(value, placeholder, onClear) with × only when there is text."
|
|
361
404
|
},
|
|
362
405
|
{
|
|
363
|
-
"name": "
|
|
364
|
-
"
|
|
365
|
-
"
|
|
366
|
-
"
|
|
367
|
-
"
|
|
368
|
-
"
|
|
406
|
+
"name": "input-otp",
|
|
407
|
+
"deps": [],
|
|
408
|
+
"part": "InputOtp",
|
|
409
|
+
"file": "registry/input-otp.muten",
|
|
410
|
+
"component": "InputOtp",
|
|
411
|
+
"description": "InputOtp(value, length, hint, state, message, resendIn, onInput): slots, caret, ok/bad, resend countdown."
|
|
369
412
|
},
|
|
370
413
|
{
|
|
371
|
-
"name": "
|
|
372
|
-
"
|
|
373
|
-
"
|
|
374
|
-
"
|
|
414
|
+
"name": "input",
|
|
415
|
+
"deps": [],
|
|
416
|
+
"part": "Input",
|
|
417
|
+
"file": "registry/input.muten",
|
|
418
|
+
"description": "Input(value, placeholder) and TextArea(value, placeholder): Nova fields bound to a page text state."
|
|
419
|
+
},
|
|
420
|
+
{
|
|
421
|
+
"name": "inspector",
|
|
422
|
+
"deps": [],
|
|
423
|
+
"part": "Inspector",
|
|
424
|
+
"file": "registry/inspector.muten",
|
|
425
|
+
"description": "Property grid: InspectorSection (collapsible) / InspectorRow (label : value slot)."
|
|
426
|
+
},
|
|
427
|
+
{
|
|
428
|
+
"name": "island",
|
|
429
|
+
"deps": [],
|
|
430
|
+
"part": "Island",
|
|
431
|
+
"file": "registry/island.muten",
|
|
432
|
+
"component": "Island",
|
|
433
|
+
"description": "Island(tone, text, ms): the one floating notice that morphs (kit core)."
|
|
434
|
+
},
|
|
435
|
+
{
|
|
436
|
+
"name": "item",
|
|
437
|
+
"deps": [],
|
|
438
|
+
"part": "Item",
|
|
439
|
+
"file": "registry/item.muten",
|
|
440
|
+
"description": "Item(variant, size) row with ItemMedia / ItemContent / ItemTitle / ItemDescription / ItemActions / ItemFooter; lists = ItemGroup + ItemSeparator."
|
|
441
|
+
},
|
|
442
|
+
{
|
|
443
|
+
"name": "kbd",
|
|
444
|
+
"deps": [],
|
|
445
|
+
"part": "Kbd",
|
|
446
|
+
"file": "registry/kbd.muten",
|
|
447
|
+
"description": "A keyboard key hint. Kbd { Span \"Ctrl\" }."
|
|
448
|
+
},
|
|
449
|
+
{
|
|
450
|
+
"name": "kit-layer",
|
|
451
|
+
"deps": [],
|
|
452
|
+
"part": "KitLayer",
|
|
453
|
+
"file": "registry/kit-layer.muten",
|
|
454
|
+
"component": "KitLayer",
|
|
455
|
+
"description": "KitLayer(): once in the shell; loads the kit core (tooltip, island, sprite)."
|
|
456
|
+
},
|
|
457
|
+
{
|
|
458
|
+
"name": "kit-skeleton",
|
|
459
|
+
"deps": [],
|
|
460
|
+
"part": "Skeletons",
|
|
461
|
+
"file": "registry/kit-skeleton.muten",
|
|
462
|
+
"component": "KitSkeleton",
|
|
463
|
+
"description": "Skeletons(kind, count) / Loading(busy, kind) { … }: content-shaped skeletons, fade on arrival."
|
|
464
|
+
},
|
|
465
|
+
{
|
|
466
|
+
"name": "kit-widget",
|
|
467
|
+
"deps": [],
|
|
468
|
+
"part": "KitWidget",
|
|
469
|
+
"file": "registry/kit-widget.muten",
|
|
470
|
+
"component": "KitWidget",
|
|
471
|
+
"description": "Host of the system kit widgets (Custom, kit core). Use the named parts."
|
|
472
|
+
},
|
|
473
|
+
{
|
|
474
|
+
"name": "link-btn",
|
|
475
|
+
"deps": [],
|
|
476
|
+
"part": "LinkBtn",
|
|
477
|
+
"file": "registry/link-btn.muten",
|
|
478
|
+
"description": "A navigation link styled as a button. `LinkBtn(to: \"/signup\", variant: \"default\") { Span \"Get started\" }`."
|
|
479
|
+
},
|
|
480
|
+
{
|
|
481
|
+
"name": "live-stack",
|
|
482
|
+
"deps": [],
|
|
483
|
+
"part": "LiveStack",
|
|
484
|
+
"file": "registry/live-stack.muten",
|
|
485
|
+
"component": "LiveStack",
|
|
486
|
+
"description": "LiveStack - news that keeps arriving, for a landing page: what the product does while nobody watches («Carla agendó"
|
|
487
|
+
},
|
|
488
|
+
{
|
|
489
|
+
"name": "logo-cloud",
|
|
490
|
+
"deps": [],
|
|
491
|
+
"part": "LogoCloud",
|
|
492
|
+
"file": "registry/logo-cloud.muten",
|
|
493
|
+
"description": "BLOCK: a 'trusted by' strip of logos, muted + grayscale until hover. Parts: LogoCloud, LogoCloudItem."
|
|
494
|
+
},
|
|
495
|
+
{
|
|
496
|
+
"name": "member-list",
|
|
375
497
|
"deps": [
|
|
376
|
-
"
|
|
377
|
-
]
|
|
498
|
+
"kit-widget"
|
|
499
|
+
],
|
|
500
|
+
"part": "MemberList",
|
|
501
|
+
"file": "registry/member-list.muten",
|
|
502
|
+
"description": "MemberList - any group (team, workspace, family plan): who is in, their role in the library's menu, invite."
|
|
378
503
|
},
|
|
379
504
|
{
|
|
380
|
-
"name": "
|
|
381
|
-
"
|
|
382
|
-
"
|
|
383
|
-
"
|
|
384
|
-
"description": "A
|
|
385
|
-
"deps": []
|
|
505
|
+
"name": "menubar",
|
|
506
|
+
"deps": [],
|
|
507
|
+
"part": "Menubar",
|
|
508
|
+
"file": "registry/menubar.muten",
|
|
509
|
+
"description": "A bar of menus (File/Edit/View); page owns which is open via a text state."
|
|
386
510
|
},
|
|
387
511
|
{
|
|
388
|
-
"name": "
|
|
389
|
-
"
|
|
390
|
-
"
|
|
391
|
-
"
|
|
392
|
-
"
|
|
512
|
+
"name": "message-scroller",
|
|
513
|
+
"deps": [],
|
|
514
|
+
"part": "MessageScroller",
|
|
515
|
+
"file": "registry/message-scroller.muten",
|
|
516
|
+
"component": "MessageScrollerBehavior",
|
|
517
|
+
"description": "A scrollable column of chat messages."
|
|
393
518
|
},
|
|
394
519
|
{
|
|
395
|
-
"name": "
|
|
396
|
-
"
|
|
397
|
-
"
|
|
398
|
-
"
|
|
399
|
-
"description": "
|
|
400
|
-
"deps": []
|
|
520
|
+
"name": "message",
|
|
521
|
+
"deps": [],
|
|
522
|
+
"part": "Message",
|
|
523
|
+
"file": "registry/message.muten",
|
|
524
|
+
"description": "Chat Message + Bubble + Marker (variant: sent | received)."
|
|
401
525
|
},
|
|
402
526
|
{
|
|
403
|
-
"name": "
|
|
404
|
-
"
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
"
|
|
527
|
+
"name": "messaging",
|
|
528
|
+
"deps": [
|
|
529
|
+
"kit-widget"
|
|
530
|
+
],
|
|
531
|
+
"part": "Messaging",
|
|
532
|
+
"file": "registry/messaging.muten",
|
|
533
|
+
"description": "Messaging - one inbox for every channel: list (search, filters with counts, channel, state, unread), the chat (the"
|
|
408
534
|
},
|
|
409
535
|
{
|
|
410
|
-
"name": "
|
|
411
|
-
"
|
|
412
|
-
"
|
|
413
|
-
"
|
|
414
|
-
"
|
|
536
|
+
"name": "modal-behavior",
|
|
537
|
+
"deps": [],
|
|
538
|
+
"part": "ModalBehavior",
|
|
539
|
+
"file": "registry/modal-behavior.muten",
|
|
540
|
+
"component": "ModalBehavior",
|
|
541
|
+
"description": "The adaptive modal's behaviour (history, Esc, focus trap, drawer drag). Used by Modal."
|
|
415
542
|
},
|
|
416
543
|
{
|
|
417
|
-
"name": "
|
|
418
|
-
"
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
"
|
|
544
|
+
"name": "modal",
|
|
545
|
+
"deps": [
|
|
546
|
+
"modal-behavior"
|
|
547
|
+
],
|
|
548
|
+
"part": "Modal",
|
|
549
|
+
"file": "registry/modal.muten",
|
|
550
|
+
"description": "Modal(open, onClose, title, description, mode, size) + ModalFooter: THE adaptive modal (Dialog on desktop, Drawer on phone). Back/Esc/overlay/✕/drag close it."
|
|
422
551
|
},
|
|
423
552
|
{
|
|
424
|
-
"name": "
|
|
425
|
-
"
|
|
426
|
-
"
|
|
427
|
-
"
|
|
428
|
-
"
|
|
429
|
-
"
|
|
553
|
+
"name": "money-field",
|
|
554
|
+
"deps": [],
|
|
555
|
+
"part": "MoneyField",
|
|
556
|
+
"file": "registry/money-field.muten",
|
|
557
|
+
"component": "MoneyField",
|
|
558
|
+
"description": "MoneyField(label, value, currency, onChange): Intl currency, searchable currency list, minor units."
|
|
430
559
|
},
|
|
431
560
|
{
|
|
432
|
-
"name": "
|
|
433
|
-
"
|
|
434
|
-
"
|
|
435
|
-
"
|
|
436
|
-
"
|
|
561
|
+
"name": "nav-button",
|
|
562
|
+
"deps": [],
|
|
563
|
+
"part": "NavButton",
|
|
564
|
+
"file": "registry/nav-button.muten",
|
|
565
|
+
"description": "NavButton(label, current, onClick) + NavBar: chosen is a state (--selected + dot), not a variant."
|
|
566
|
+
},
|
|
567
|
+
{
|
|
568
|
+
"name": "navigation-menu",
|
|
569
|
+
"deps": [],
|
|
570
|
+
"part": "NavigationMenu",
|
|
571
|
+
"file": "registry/navigation-menu.muten",
|
|
572
|
+
"description": "A nav bar with hover-revealed panels (pure CSS, no state)."
|
|
573
|
+
},
|
|
574
|
+
{
|
|
575
|
+
"name": "navpill",
|
|
576
|
+
"deps": [],
|
|
577
|
+
"part": "NavPill",
|
|
578
|
+
"file": "registry/navpill.muten",
|
|
579
|
+
"description": "BLOCK: the floating glass navbar (sticky wrapper + glass pill + scroll animation baked in). Drop logo/links/CTA inside."
|
|
580
|
+
},
|
|
581
|
+
{
|
|
582
|
+
"name": "new-appointment",
|
|
583
|
+
"deps": [],
|
|
584
|
+
"part": "NewAppointment",
|
|
585
|
+
"file": "registry/new-appointment.muten",
|
|
586
|
+
"component": "NewAppointment",
|
|
587
|
+
"description": "NewAppointment(open, clients, services, hours, closed, onCreate, onClose): «Nueva cita» in 4 steps."
|
|
588
|
+
},
|
|
589
|
+
{
|
|
590
|
+
"name": "number-field",
|
|
591
|
+
"deps": [],
|
|
592
|
+
"part": "NumberField",
|
|
593
|
+
"file": "registry/number-field.muten",
|
|
594
|
+
"component": "NumberField",
|
|
595
|
+
"description": "A numeric input with -/+ steppers, min/max/step (Custom)."
|
|
596
|
+
},
|
|
597
|
+
{
|
|
598
|
+
"name": "order-board",
|
|
599
|
+
"deps": [],
|
|
600
|
+
"part": "OrderBoard",
|
|
601
|
+
"file": "registry/order-board.muten",
|
|
602
|
+
"component": "OrderBoard",
|
|
603
|
+
"description": "OrderBoard(lanes, cards, onChange, onAction) / OrderCards(cards, sizes): order board and card with its modals."
|
|
604
|
+
},
|
|
605
|
+
{
|
|
606
|
+
"name": "overlay-behavior",
|
|
607
|
+
"deps": [],
|
|
608
|
+
"part": "OverlayBehavior",
|
|
609
|
+
"file": "registry/overlay-behavior.muten",
|
|
610
|
+
"component": "OverlayBehavior",
|
|
611
|
+
"description": "OverlayBehavior - the opening, placing and closing of a floating panel; the floating parts (Popover, HoverCard,"
|
|
612
|
+
},
|
|
613
|
+
{
|
|
614
|
+
"name": "pagination-nav",
|
|
615
|
+
"deps": [],
|
|
616
|
+
"part": "PaginationNav",
|
|
617
|
+
"file": "registry/pagination-nav.muten",
|
|
618
|
+
"component": "PaginationNav",
|
|
619
|
+
"description": "PaginationNav(total, per, page, noun, onPage): server pages, 7 fixed slots, range line."
|
|
620
|
+
},
|
|
621
|
+
{
|
|
622
|
+
"name": "pagination",
|
|
623
|
+
"deps": [],
|
|
624
|
+
"part": "Pagination",
|
|
625
|
+
"file": "registry/pagination.muten",
|
|
626
|
+
"description": "Page navigation with PaginationLink / Previous / Next / Ellipsis."
|
|
627
|
+
},
|
|
628
|
+
{
|
|
629
|
+
"name": "password-field",
|
|
630
|
+
"deps": [
|
|
631
|
+
"kit-widget"
|
|
632
|
+
],
|
|
633
|
+
"part": "PasswordField",
|
|
634
|
+
"file": "registry/password-field.muten",
|
|
635
|
+
"description": "PasswordField - a password with show/hide and its strength. PasswordField(label: \"Contraseña nueva\")"
|
|
636
|
+
},
|
|
637
|
+
{
|
|
638
|
+
"name": "permission-matrix",
|
|
639
|
+
"deps": [
|
|
640
|
+
"kit-widget"
|
|
641
|
+
],
|
|
642
|
+
"part": "PermissionMatrix",
|
|
643
|
+
"file": "registry/permission-matrix.muten",
|
|
644
|
+
"description": "PermissionMatrix - any rows × any roles; one role can be locked (always allowed)."
|
|
645
|
+
},
|
|
646
|
+
{
|
|
647
|
+
"name": "phone-field",
|
|
648
|
+
"deps": [],
|
|
649
|
+
"part": "PhoneField",
|
|
650
|
+
"file": "registry/phone-field.muten",
|
|
651
|
+
"component": "PhoneField",
|
|
652
|
+
"description": "PhoneField(label, value, country, onChange): dial code list, mask, E.164."
|
|
653
|
+
},
|
|
654
|
+
{
|
|
655
|
+
"name": "phone-shell",
|
|
656
|
+
"deps": [],
|
|
657
|
+
"part": "PhoneShell",
|
|
658
|
+
"file": "registry/phone-shell.muten",
|
|
659
|
+
"component": "PhoneShell",
|
|
660
|
+
"description": "PhoneShell(tabs, rows, onSelect): phone frame, big title that shrinks on scroll, three fixed bottom tabs."
|
|
661
|
+
},
|
|
662
|
+
{
|
|
663
|
+
"name": "pill",
|
|
664
|
+
"deps": [],
|
|
665
|
+
"part": "Pill",
|
|
666
|
+
"file": "registry/pill.muten",
|
|
667
|
+
"description": "A hero eyebrow chip (rounded-full, bigger than Badge); slot-based for an icon + text."
|
|
668
|
+
},
|
|
669
|
+
{
|
|
670
|
+
"name": "plans",
|
|
671
|
+
"deps": [
|
|
672
|
+
"kit-widget"
|
|
673
|
+
],
|
|
674
|
+
"part": "Plans",
|
|
675
|
+
"file": "registry/plans.muten",
|
|
676
|
+
"description": "Plans - plan cards with a monthly/yearly switch; the current plan is marked; going up is one tap, going down asks."
|
|
677
|
+
},
|
|
678
|
+
{
|
|
679
|
+
"name": "popover",
|
|
680
|
+
"deps": [],
|
|
681
|
+
"part": "Popover",
|
|
682
|
+
"file": "registry/popover.muten",
|
|
683
|
+
"description": "A floating panel below a trigger; page owns the open bool."
|
|
684
|
+
},
|
|
685
|
+
{
|
|
686
|
+
"name": "pricing",
|
|
687
|
+
"deps": [],
|
|
688
|
+
"part": "Pricing",
|
|
689
|
+
"file": "registry/pricing.muten",
|
|
690
|
+
"description": "BLOCK: a row of pricing tiers (name/price/features/CTA), featured highlight. Parts: Pricing, PricingTier, PricingFeature."
|
|
691
|
+
},
|
|
692
|
+
{
|
|
693
|
+
"name": "progress",
|
|
694
|
+
"deps": [],
|
|
695
|
+
"part": "Progress",
|
|
696
|
+
"file": "registry/progress.muten",
|
|
697
|
+
"description": "Progress(value, label): determinate bar 0-100 that eases between values."
|
|
698
|
+
},
|
|
699
|
+
{
|
|
700
|
+
"name": "queue",
|
|
701
|
+
"deps": [
|
|
702
|
+
"kit-widget"
|
|
703
|
+
],
|
|
704
|
+
"part": "Queue",
|
|
705
|
+
"file": "registry/queue.muten",
|
|
706
|
+
"description": "Queue - a waitlist: offer a freed slot to the first in line, with a countdown. Queue(title: \"Lista de espera · sábado\", people: @waiting)"
|
|
707
|
+
},
|
|
708
|
+
{
|
|
709
|
+
"name": "radio-group",
|
|
710
|
+
"deps": [],
|
|
711
|
+
"part": "RadioGroup",
|
|
712
|
+
"file": "registry/radio-group.muten",
|
|
713
|
+
"description": "Single choice with RadioGroupItem; page owns a text state."
|
|
437
714
|
},
|
|
438
715
|
{
|
|
439
716
|
"name": "range-slider",
|
|
717
|
+
"deps": [],
|
|
440
718
|
"part": "RangeSlider",
|
|
441
719
|
"file": "registry/range-slider.muten",
|
|
442
720
|
"component": "RangeSlider",
|
|
443
|
-
"description": "
|
|
444
|
-
|
|
721
|
+
"description": "RangeSlider(lo, hi, min, max, step, onLo, onHi): two thumbs on the kit ScaleSlider."
|
|
722
|
+
},
|
|
723
|
+
{
|
|
724
|
+
"name": "resizable",
|
|
725
|
+
"deps": [],
|
|
726
|
+
"part": "ResizablePanelGroup",
|
|
727
|
+
"file": "registry/resizable.muten",
|
|
728
|
+
"component": "ResizableBehavior",
|
|
729
|
+
"description": "Resizable - panels you size by dragging the line between them (shadcn Nova). Each panel starts at its size (a"
|
|
730
|
+
},
|
|
731
|
+
{
|
|
732
|
+
"name": "roving-behavior",
|
|
733
|
+
"deps": [],
|
|
734
|
+
"part": "RovingBehavior",
|
|
735
|
+
"file": "registry/roving-behavior.muten",
|
|
736
|
+
"component": "RovingBehavior",
|
|
737
|
+
"description": "Arrow keys for a radio group (Custom)."
|
|
738
|
+
},
|
|
739
|
+
{
|
|
740
|
+
"name": "row-menu",
|
|
741
|
+
"deps": [],
|
|
742
|
+
"part": "RowMenu",
|
|
743
|
+
"file": "registry/row-menu.muten",
|
|
744
|
+
"component": "RowMenu",
|
|
745
|
+
"description": "RowMenu(label, items, onPick): the ⋯ menu of a row (arrows, type-ahead, Esc)."
|
|
746
|
+
},
|
|
747
|
+
{
|
|
748
|
+
"name": "save-button",
|
|
749
|
+
"deps": [],
|
|
750
|
+
"part": "SaveButton",
|
|
751
|
+
"file": "registry/save-button.muten",
|
|
752
|
+
"description": "SaveButton(status, onClick, label): idle → saving → saved, fixed width."
|
|
753
|
+
},
|
|
754
|
+
{
|
|
755
|
+
"name": "scale-slider",
|
|
756
|
+
"deps": [],
|
|
757
|
+
"part": "ScaleSlider",
|
|
758
|
+
"file": "registry/scale-slider.muten",
|
|
759
|
+
"component": "ScaleSlider",
|
|
760
|
+
"description": "ScaleSlider(label, min, max, step, values, gap, format, onChange): value rides on the thumb; two bubbles merge."
|
|
761
|
+
},
|
|
762
|
+
{
|
|
763
|
+
"name": "scroll-area",
|
|
764
|
+
"deps": [],
|
|
765
|
+
"part": "ScrollArea",
|
|
766
|
+
"file": "registry/scroll-area.muten",
|
|
767
|
+
"description": "A scrollable region with styled scrollbars."
|
|
768
|
+
},
|
|
769
|
+
{
|
|
770
|
+
"name": "segmented-control",
|
|
771
|
+
"deps": [
|
|
772
|
+
"tabs-behavior"
|
|
773
|
+
],
|
|
774
|
+
"part": "SegmentedControl",
|
|
775
|
+
"file": "registry/segmented-control.muten",
|
|
776
|
+
"description": "A single-select toolbar (SegmentedItem); page owns a text state."
|
|
777
|
+
},
|
|
778
|
+
{
|
|
779
|
+
"name": "separator",
|
|
780
|
+
"deps": [],
|
|
781
|
+
"part": "Separator",
|
|
782
|
+
"file": "registry/separator.muten",
|
|
783
|
+
"description": "Separator(orientation): a hairline. horizontal | vertical."
|
|
784
|
+
},
|
|
785
|
+
{
|
|
786
|
+
"name": "share-button",
|
|
787
|
+
"deps": [],
|
|
788
|
+
"part": "ShareButton",
|
|
789
|
+
"file": "registry/share-button.muten",
|
|
790
|
+
"component": "ShareButton",
|
|
791
|
+
"description": "ShareButton(label, kind, name, initials, url, product…): share sheet in the adaptive modal, brand targets, QR."
|
|
792
|
+
},
|
|
793
|
+
{
|
|
794
|
+
"name": "sheet",
|
|
795
|
+
"deps": [],
|
|
796
|
+
"part": "Sheet",
|
|
797
|
+
"file": "registry/sheet.muten",
|
|
798
|
+
"description": "A panel that slides in from the right; page owns the open bool."
|
|
445
799
|
},
|
|
446
800
|
{
|
|
447
801
|
"name": "sidebar",
|
|
802
|
+
"deps": [],
|
|
448
803
|
"part": "AppSidebar",
|
|
449
804
|
"file": "registry/sidebar.muten",
|
|
450
|
-
"description": "AppSidebar - a collapsible nav panel (SidebarHeader / SidebarGroup / SidebarItem). Named AppSidebar so it never shadows muten's core Sidebar <aside> primitive."
|
|
451
|
-
|
|
805
|
+
"description": "AppSidebar - a collapsible nav panel (SidebarHeader / SidebarGroup / SidebarItem). Named AppSidebar so it never shadows muten's core Sidebar <aside> primitive."
|
|
806
|
+
},
|
|
807
|
+
{
|
|
808
|
+
"name": "skeleton",
|
|
809
|
+
"deps": [],
|
|
810
|
+
"part": "Skeleton",
|
|
811
|
+
"file": "registry/skeleton.muten",
|
|
812
|
+
"description": "Skeleton(shape) sized with class(): the shape of content not yet loaded, with a shimmer. shape: \"\" | circle | pill."
|
|
813
|
+
},
|
|
814
|
+
{
|
|
815
|
+
"name": "slider",
|
|
816
|
+
"deps": [],
|
|
817
|
+
"part": "Slider",
|
|
818
|
+
"file": "registry/slider.muten",
|
|
819
|
+
"component": "Slider",
|
|
820
|
+
"description": "Slider(value, min, max, step, suffix, onInput): Storio's slider with the value bubble."
|
|
821
|
+
},
|
|
822
|
+
{
|
|
823
|
+
"name": "sortable-behavior",
|
|
824
|
+
"deps": [],
|
|
825
|
+
"part": "SortableBehavior",
|
|
826
|
+
"file": "registry/sortable-behavior.muten",
|
|
827
|
+
"component": "SortableBehavior",
|
|
828
|
+
"description": "The drag of a Sortable (Custom)."
|
|
452
829
|
},
|
|
453
830
|
{
|
|
454
831
|
"name": "sortable-list",
|
|
832
|
+
"deps": [],
|
|
455
833
|
"part": "SortableList",
|
|
456
834
|
"file": "registry/sortable-list.muten",
|
|
457
835
|
"component": "SortableList",
|
|
458
|
-
"description": "Drag rows to reorder (Custom); page owns a comma-joined order."
|
|
459
|
-
"deps": []
|
|
836
|
+
"description": "Drag rows to reorder (Custom); page owns a comma-joined order."
|
|
460
837
|
},
|
|
461
838
|
{
|
|
462
|
-
"name": "
|
|
463
|
-
"
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
"
|
|
839
|
+
"name": "sortable",
|
|
840
|
+
"deps": [
|
|
841
|
+
"sortable-behavior"
|
|
842
|
+
],
|
|
843
|
+
"part": "Sortable",
|
|
844
|
+
"file": "registry/sortable.muten",
|
|
845
|
+
"description": "Sortable(label, onReorder) + SortItem(key, title, price): drag the grip (pointer or arrows); emits the new key order."
|
|
467
846
|
},
|
|
468
847
|
{
|
|
469
|
-
"name": "
|
|
470
|
-
"
|
|
471
|
-
"
|
|
472
|
-
"
|
|
473
|
-
"
|
|
474
|
-
"
|
|
848
|
+
"name": "spark",
|
|
849
|
+
"deps": [],
|
|
850
|
+
"part": "Spark",
|
|
851
|
+
"file": "registry/spark.muten",
|
|
852
|
+
"component": "Spark",
|
|
853
|
+
"description": "Spark(series, tone): a tiny line for a series (Custom)."
|
|
475
854
|
},
|
|
476
855
|
{
|
|
477
|
-
"name": "
|
|
478
|
-
"
|
|
479
|
-
"
|
|
480
|
-
"
|
|
481
|
-
"
|
|
856
|
+
"name": "spinner",
|
|
857
|
+
"deps": [],
|
|
858
|
+
"part": "Spinner",
|
|
859
|
+
"file": "registry/spinner.muten",
|
|
860
|
+
"description": "A loading indicator (animate-spin loader)."
|
|
482
861
|
},
|
|
483
862
|
{
|
|
484
|
-
"name": "
|
|
485
|
-
"
|
|
486
|
-
"
|
|
487
|
-
"
|
|
488
|
-
"description": "A
|
|
489
|
-
"deps": []
|
|
863
|
+
"name": "split-button",
|
|
864
|
+
"deps": [],
|
|
865
|
+
"part": "SplitButton",
|
|
866
|
+
"file": "registry/split-button.muten",
|
|
867
|
+
"description": "A main action + a caret dropdown; page owns the open bool."
|
|
490
868
|
},
|
|
491
869
|
{
|
|
492
|
-
"name": "
|
|
493
|
-
"
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
"
|
|
497
|
-
"
|
|
870
|
+
"name": "stamp-card",
|
|
871
|
+
"deps": [
|
|
872
|
+
"kit-widget"
|
|
873
|
+
],
|
|
874
|
+
"part": "StampCard",
|
|
875
|
+
"file": "registry/stamp-card.muten",
|
|
876
|
+
"description": "StampCard - a loyalty card: stamps toward a reward (good for any shop)."
|
|
877
|
+
},
|
|
878
|
+
{
|
|
879
|
+
"name": "stat-band",
|
|
880
|
+
"deps": [],
|
|
881
|
+
"part": "StatBand",
|
|
882
|
+
"file": "registry/stat-band.muten",
|
|
883
|
+
"description": "BLOCK: a divided row of KPI stats. Parts: StatBand, Stat(label) - value goes in the slot (Span or Custom CountUp)."
|
|
884
|
+
},
|
|
885
|
+
{
|
|
886
|
+
"name": "stat",
|
|
887
|
+
"deps": [
|
|
888
|
+
"spark"
|
|
889
|
+
],
|
|
890
|
+
"part": "StatCard",
|
|
891
|
+
"file": "registry/stat.muten",
|
|
892
|
+
"description": "StatCard(label, value, delta, tone, compare, series) { Icon } + StatGrid + Spark: a number for any use."
|
|
893
|
+
},
|
|
894
|
+
{
|
|
895
|
+
"name": "status-bar",
|
|
896
|
+
"deps": [],
|
|
897
|
+
"part": "StatusBar",
|
|
898
|
+
"file": "registry/status-bar.muten",
|
|
899
|
+
"description": "A thin bottom bar with StatusItem / StatusSpacer."
|
|
498
900
|
},
|
|
499
901
|
{
|
|
500
902
|
"name": "stepper",
|
|
903
|
+
"deps": [],
|
|
501
904
|
"part": "Stepper",
|
|
502
905
|
"file": "registry/stepper.muten",
|
|
503
|
-
"description": "Horizontal or vertical step progress indicator; done steps show a check, the current step is ringed (parts: Stepper, StepperVertical, Step)."
|
|
504
|
-
"deps": []
|
|
906
|
+
"description": "Horizontal or vertical step progress indicator; done steps show a check, the current step is ringed (parts: Stepper, StepperVertical, Step)."
|
|
505
907
|
},
|
|
506
908
|
{
|
|
507
|
-
"name": "
|
|
508
|
-
"
|
|
509
|
-
"
|
|
510
|
-
"
|
|
511
|
-
"
|
|
909
|
+
"name": "store-qr",
|
|
910
|
+
"deps": [],
|
|
911
|
+
"part": "StoreQr",
|
|
912
|
+
"file": "registry/store-qr.muten",
|
|
913
|
+
"component": "StoreQr",
|
|
914
|
+
"description": "StoreQr(url, name, mark): the shop QR with its mark and «Copiar enlace»."
|
|
512
915
|
},
|
|
513
916
|
{
|
|
514
|
-
"name": "
|
|
515
|
-
"
|
|
516
|
-
"
|
|
517
|
-
"
|
|
518
|
-
"
|
|
917
|
+
"name": "swatch",
|
|
918
|
+
"deps": [],
|
|
919
|
+
"part": "SwatchPalette",
|
|
920
|
+
"file": "registry/swatch.muten",
|
|
921
|
+
"description": "A grid of selectable color swatches (Swatch); page owns the selected hex + colors."
|
|
519
922
|
},
|
|
520
923
|
{
|
|
521
|
-
"name": "
|
|
522
|
-
"
|
|
523
|
-
"
|
|
524
|
-
"
|
|
525
|
-
"
|
|
924
|
+
"name": "switch",
|
|
925
|
+
"deps": [],
|
|
926
|
+
"part": "Switch",
|
|
927
|
+
"file": "registry/switch.muten",
|
|
928
|
+
"description": "Switch(on, onToggle, label, size) + SwitchRow(on, onToggle, label, description): Nova switch, the page owns the bool."
|
|
526
929
|
},
|
|
527
930
|
{
|
|
528
|
-
"name": "
|
|
529
|
-
"
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
"
|
|
931
|
+
"name": "table-view",
|
|
932
|
+
"deps": [
|
|
933
|
+
"kit-widget"
|
|
934
|
+
],
|
|
935
|
+
"part": "TableView",
|
|
936
|
+
"file": "registry/table-view.muten",
|
|
937
|
+
"description": "TableView(columns, rows, filters, statuses, bulk, one, many, onAction): the DataTable with filters as data, animated rows, selection, phone sheet, narrow → Items (kit core)."
|
|
533
938
|
},
|
|
534
939
|
{
|
|
535
|
-
"name": "
|
|
536
|
-
"
|
|
537
|
-
"
|
|
538
|
-
"
|
|
539
|
-
"
|
|
940
|
+
"name": "tabs-behavior",
|
|
941
|
+
"deps": [],
|
|
942
|
+
"part": "TabsBehavior",
|
|
943
|
+
"file": "registry/tabs-behavior.muten",
|
|
944
|
+
"component": "TabsBehavior",
|
|
945
|
+
"description": "The sliding indicator + keys of Tabs/SegmentedControl (Custom)."
|
|
540
946
|
},
|
|
541
947
|
{
|
|
542
|
-
"name": "
|
|
543
|
-
"
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
"
|
|
547
|
-
"
|
|
948
|
+
"name": "tabs",
|
|
949
|
+
"deps": [
|
|
950
|
+
"tabs-behavior"
|
|
951
|
+
],
|
|
952
|
+
"part": "Tabs",
|
|
953
|
+
"file": "registry/tabs.muten",
|
|
954
|
+
"description": "Tabs(label, variant) + TabsTrigger(value, current, label, onSelect, count) + TabsContent: sliding indicator, arrow keys; variant \"\" (segmented) | line."
|
|
548
955
|
},
|
|
549
956
|
{
|
|
550
|
-
"name": "
|
|
551
|
-
"
|
|
552
|
-
"
|
|
553
|
-
"
|
|
554
|
-
"
|
|
957
|
+
"name": "tag-input",
|
|
958
|
+
"deps": [],
|
|
959
|
+
"part": "TagInput",
|
|
960
|
+
"file": "registry/tag-input.muten",
|
|
961
|
+
"component": "TagInput",
|
|
962
|
+
"description": "TagInput(value, label, suggestions, max, hint, onChange): chips in/out, height eases, cap with count."
|
|
555
963
|
},
|
|
556
964
|
{
|
|
557
|
-
"name": "
|
|
558
|
-
"
|
|
559
|
-
"
|
|
560
|
-
"
|
|
561
|
-
"
|
|
965
|
+
"name": "text",
|
|
966
|
+
"deps": [],
|
|
967
|
+
"part": "Txt",
|
|
968
|
+
"file": "registry/text.muten",
|
|
969
|
+
"description": "Txt(value, variant): the one text atom. variant: body | title | heading | strong | label | muted | caption."
|
|
562
970
|
},
|
|
563
971
|
{
|
|
564
|
-
"name": "
|
|
565
|
-
"
|
|
566
|
-
"
|
|
567
|
-
"
|
|
568
|
-
"
|
|
972
|
+
"name": "time-field",
|
|
973
|
+
"deps": [],
|
|
974
|
+
"part": "TimeField",
|
|
975
|
+
"file": "registry/time-field.muten",
|
|
976
|
+
"component": "TimeField",
|
|
977
|
+
"description": "TimeField(label, value, from, to, step, onChange): opens the time wheels."
|
|
569
978
|
},
|
|
570
979
|
{
|
|
571
|
-
"name": "
|
|
572
|
-
"
|
|
573
|
-
"
|
|
574
|
-
"
|
|
575
|
-
"
|
|
980
|
+
"name": "timeline",
|
|
981
|
+
"deps": [],
|
|
982
|
+
"part": "Timeline",
|
|
983
|
+
"file": "registry/timeline.muten",
|
|
984
|
+
"description": "Vertical event timeline: a dot on a connector line + title/time/description per item (parts: Timeline, TimelineItem)."
|
|
576
985
|
},
|
|
577
986
|
{
|
|
578
|
-
"name": "
|
|
579
|
-
"
|
|
580
|
-
"
|
|
581
|
-
"
|
|
582
|
-
"
|
|
987
|
+
"name": "toaster",
|
|
988
|
+
"deps": [],
|
|
989
|
+
"part": "Toaster",
|
|
990
|
+
"file": "registry/toaster.muten",
|
|
991
|
+
"component": "Toaster",
|
|
992
|
+
"description": "Fixed toast notifications (Custom). Page bumps a trigger counter to fire one."
|
|
583
993
|
},
|
|
584
994
|
{
|
|
585
|
-
"name": "
|
|
586
|
-
"
|
|
587
|
-
"
|
|
588
|
-
"
|
|
589
|
-
"
|
|
995
|
+
"name": "toggle-group",
|
|
996
|
+
"deps": [],
|
|
997
|
+
"part": "ToggleGroup",
|
|
998
|
+
"file": "registry/toggle-group.muten",
|
|
999
|
+
"description": "Single-select toolbar with ToggleGroupItem; page owns a text state."
|
|
590
1000
|
},
|
|
591
1001
|
{
|
|
592
|
-
"name": "
|
|
593
|
-
"
|
|
594
|
-
"
|
|
595
|
-
"
|
|
596
|
-
"
|
|
1002
|
+
"name": "toggle",
|
|
1003
|
+
"deps": [],
|
|
1004
|
+
"part": "Toggle",
|
|
1005
|
+
"file": "registry/toggle.muten",
|
|
1006
|
+
"description": "A two-state button; the page owns the bool + the toggle action."
|
|
597
1007
|
},
|
|
598
1008
|
{
|
|
599
|
-
"name": "
|
|
600
|
-
"
|
|
601
|
-
"
|
|
602
|
-
"
|
|
603
|
-
"
|
|
1009
|
+
"name": "toolbar",
|
|
1010
|
+
"deps": [],
|
|
1011
|
+
"part": "Toolbar",
|
|
1012
|
+
"file": "registry/toolbar.muten",
|
|
1013
|
+
"description": "A grouped button bar with ToolbarGroup / ToolbarSeparator."
|
|
604
1014
|
},
|
|
605
1015
|
{
|
|
606
|
-
"name": "
|
|
607
|
-
"
|
|
608
|
-
"
|
|
609
|
-
"
|
|
610
|
-
"
|
|
1016
|
+
"name": "tooltip",
|
|
1017
|
+
"deps": [],
|
|
1018
|
+
"part": "Tooltip",
|
|
1019
|
+
"file": "registry/tooltip.muten",
|
|
1020
|
+
"description": "A hover tooltip (pure CSS, no state). The slot is the trigger."
|
|
611
1021
|
},
|
|
612
1022
|
{
|
|
613
|
-
"name": "
|
|
614
|
-
"
|
|
615
|
-
"
|
|
616
|
-
"
|
|
617
|
-
"
|
|
1023
|
+
"name": "tree-view",
|
|
1024
|
+
"deps": [],
|
|
1025
|
+
"part": "TreeView",
|
|
1026
|
+
"file": "registry/tree-view.muten",
|
|
1027
|
+
"component": "TreeView",
|
|
1028
|
+
"description": "A nested folder/file tree (Custom): expandable, selectable, icons + indent."
|
|
618
1029
|
},
|
|
619
1030
|
{
|
|
620
|
-
"name": "
|
|
621
|
-
"
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
"
|
|
1031
|
+
"name": "vector-field",
|
|
1032
|
+
"deps": [
|
|
1033
|
+
"number-field"
|
|
1034
|
+
],
|
|
1035
|
+
"part": "VectorField",
|
|
1036
|
+
"file": "registry/vector-field.muten",
|
|
1037
|
+
"description": "Paired NumberFields (X/Y) for position or size."
|
|
1038
|
+
},
|
|
1039
|
+
{
|
|
1040
|
+
"name": "virtual-list",
|
|
1041
|
+
"deps": [],
|
|
1042
|
+
"part": "VirtualList",
|
|
1043
|
+
"file": "registry/virtual-list.muten",
|
|
1044
|
+
"component": "VirtualList",
|
|
1045
|
+
"description": "VirtualList(rows, total, rowHeight, label, jump): only visible rows in the DOM."
|
|
1046
|
+
},
|
|
1047
|
+
{
|
|
1048
|
+
"name": "weekly-hours",
|
|
1049
|
+
"deps": [
|
|
1050
|
+
"kit-widget"
|
|
1051
|
+
],
|
|
1052
|
+
"part": "WeeklyHours",
|
|
1053
|
+
"file": "registry/weekly-hours.muten",
|
|
1054
|
+
"description": "WeeklyHours(days, onChange): a switch per day, ranges with the wheel time picker (kit core)."
|
|
1055
|
+
},
|
|
1056
|
+
{
|
|
1057
|
+
"name": "wordline",
|
|
1058
|
+
"deps": [],
|
|
1059
|
+
"part": "WordLine",
|
|
1060
|
+
"file": "registry/wordline.muten",
|
|
1061
|
+
"description": "WordLine - a line of words set as big type: who a product is for, what a shop does. The words sit in a soft grey,"
|
|
1062
|
+
},
|
|
1063
|
+
{
|
|
1064
|
+
"name": "zoom-control",
|
|
1065
|
+
"deps": [],
|
|
1066
|
+
"part": "ZoomControl",
|
|
1067
|
+
"file": "registry/zoom-control.muten",
|
|
1068
|
+
"description": "A - 100% + zoom widget; page owns the zoom number."
|
|
625
1069
|
}
|
|
626
1070
|
],
|
|
627
1071
|
"classComponents": {
|