tutuca 0.9.39 → 0.9.41

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.
Files changed (88) hide show
  1. package/dist/tutuca-cli.js +92 -39
  2. package/dist/tutuca-dev.js +18 -0
  3. package/dist/tutuca-dev.min.js +1 -1
  4. package/package.json +6 -7
  5. package/skill/immutable-js/SKILL.md +79 -0
  6. package/skill/immutable-js/references/collection.md +346 -0
  7. package/skill/immutable-js/references/conversions.md +99 -0
  8. package/skill/immutable-js/references/deep-updates.md +172 -0
  9. package/skill/immutable-js/references/equality.md +95 -0
  10. package/skill/immutable-js/references/list.md +266 -0
  11. package/skill/immutable-js/references/map.md +300 -0
  12. package/skill/immutable-js/references/predicates.md +93 -0
  13. package/skill/immutable-js/references/range-repeat.md +55 -0
  14. package/skill/immutable-js/references/record.md +196 -0
  15. package/skill/immutable-js/references/seq.md +248 -0
  16. package/skill/immutable-js/references/set.md +270 -0
  17. package/skill/immutable-js/references/shallow-functional.md +99 -0
  18. package/skill/immutable-js/references/stack.md +210 -0
  19. package/skill/margaui/SKILL.md +101 -0
  20. package/skill/margaui/components/accordion.md +127 -0
  21. package/skill/margaui/components/alert.md +174 -0
  22. package/skill/margaui/components/avatar.md +220 -0
  23. package/skill/margaui/components/badge.md +193 -0
  24. package/skill/margaui/components/breadcrumbs.md +103 -0
  25. package/skill/margaui/components/button.md +322 -0
  26. package/skill/margaui/components/calendar.md +67 -0
  27. package/skill/margaui/components/card.md +373 -0
  28. package/skill/margaui/components/carousel.md +387 -0
  29. package/skill/margaui/components/chat.md +171 -0
  30. package/skill/margaui/components/checkbox.md +101 -0
  31. package/skill/margaui/components/collapse.md +172 -0
  32. package/skill/margaui/components/countdown.md +165 -0
  33. package/skill/margaui/components/diff.md +53 -0
  34. package/skill/margaui/components/divider.md +107 -0
  35. package/skill/margaui/components/dock.md +173 -0
  36. package/skill/margaui/components/drawer.md +184 -0
  37. package/skill/margaui/components/dropdown.md +388 -0
  38. package/skill/margaui/components/fab.md +346 -0
  39. package/skill/margaui/components/fieldset.md +88 -0
  40. package/skill/margaui/components/file-input.md +84 -0
  41. package/skill/margaui/components/filter.md +52 -0
  42. package/skill/margaui/components/footer.md +583 -0
  43. package/skill/margaui/components/hero.md +135 -0
  44. package/skill/margaui/components/hover-3d.md +129 -0
  45. package/skill/margaui/components/hover-gallery.md +49 -0
  46. package/skill/margaui/components/indicator.md +265 -0
  47. package/skill/margaui/components/input.md +389 -0
  48. package/skill/margaui/components/join.md +100 -0
  49. package/skill/margaui/components/kbd.md +127 -0
  50. package/skill/margaui/components/label.md +102 -0
  51. package/skill/margaui/components/link.md +96 -0
  52. package/skill/margaui/components/list.md +182 -0
  53. package/skill/margaui/components/loading.md +105 -0
  54. package/skill/margaui/components/mask.md +168 -0
  55. package/skill/margaui/components/menu.md +856 -0
  56. package/skill/margaui/components/mockup-browser.md +39 -0
  57. package/skill/margaui/components/mockup-code.md +81 -0
  58. package/skill/margaui/components/mockup-phone.md +39 -0
  59. package/skill/margaui/components/mockup-window.md +33 -0
  60. package/skill/margaui/components/modal.md +178 -0
  61. package/skill/margaui/components/navbar.md +282 -0
  62. package/skill/margaui/components/pagination.md +122 -0
  63. package/skill/margaui/components/progress.md +135 -0
  64. package/skill/margaui/components/radial-progress.md +67 -0
  65. package/skill/margaui/components/radio.md +133 -0
  66. package/skill/margaui/components/range.md +134 -0
  67. package/skill/margaui/components/rating.md +170 -0
  68. package/skill/margaui/components/select.md +225 -0
  69. package/skill/margaui/components/skeleton.md +64 -0
  70. package/skill/margaui/components/stack.md +142 -0
  71. package/skill/margaui/components/stat.md +254 -0
  72. package/skill/margaui/components/status.md +73 -0
  73. package/skill/margaui/components/steps.md +138 -0
  74. package/skill/margaui/components/swap.md +152 -0
  75. package/skill/margaui/components/tab.md +248 -0
  76. package/skill/margaui/components/table.md +1018 -0
  77. package/skill/margaui/components/text-rotate.md +91 -0
  78. package/skill/margaui/components/textarea.md +85 -0
  79. package/skill/margaui/components/theme-controller.md +266 -0
  80. package/skill/margaui/components/timeline.md +1356 -0
  81. package/skill/margaui/components/toast.md +165 -0
  82. package/skill/margaui/components/toggle.md +135 -0
  83. package/skill/margaui/components/tooltip.md +181 -0
  84. package/skill/margaui/components/validator.md +163 -0
  85. package/skill/{advanced.md → tutuca/advanced.md} +5 -0
  86. package/skill/{cli.md → tutuca/cli.md} +17 -0
  87. package/skill/{core.md → tutuca/core.md} +5 -0
  88. /package/skill/{SKILL.md → tutuca/SKILL.md} +0 -0
@@ -0,0 +1,254 @@
1
+ # stat
2
+
3
+ _KPI / metric tile (title + value + desc)_
4
+
5
+ ## What it does
6
+
7
+ Metric/KPI tile with title, value, description, and optional icon/figure/actions.
8
+
9
+ ## When to use
10
+
11
+ - Dashboards, summary headers.
12
+
13
+ ## Core classes
14
+
15
+ `stats` wrapper; child `stat`; inner `stat-title`, `stat-value`, `stat-desc`, `stat-figure`, `stat-actions`.
16
+
17
+ ## Examples
18
+
19
+ ### Stat
20
+
21
+ Source: `playground/components/stat/stat.html`
22
+
23
+ ```html
24
+ <div class="stats shadow">
25
+ <div class="stat">
26
+ <div class="stat-figure text-secondary">
27
+ <svg
28
+ xmlns="http://www.w3.org/2000/svg"
29
+ fill="none"
30
+ viewBox="0 0 24 24"
31
+ class="inline-block h-8 w-8 stroke-current"
32
+ >
33
+ <path
34
+ stroke-linecap="round"
35
+ stroke-linejoin="round"
36
+ stroke-width="2"
37
+ d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"
38
+ ></path>
39
+ </svg>
40
+ </div>
41
+ <div class="stat-title">Downloads</div>
42
+ <div class="stat-value">31K</div>
43
+ <div class="stat-desc">Jan 1st - Feb 1st</div>
44
+ </div>
45
+
46
+ <div class="stat">
47
+ <div class="stat-figure text-secondary">
48
+ <svg
49
+ xmlns="http://www.w3.org/2000/svg"
50
+ fill="none"
51
+ viewBox="0 0 24 24"
52
+ class="inline-block h-8 w-8 stroke-current"
53
+ >
54
+ <path
55
+ stroke-linecap="round"
56
+ stroke-linejoin="round"
57
+ stroke-width="2"
58
+ d="M12 6V4m0 2a2 2 0 100 4m0-4a2 2 0 110 4m-6 8a2 2 0 100-4m0 4a2 2 0 110-4m0 4v2m0-6V4m6 6v10m6-2a2 2 0 100-4m0 4a2 2 0 110-4m0 4v2m0-6V4"
59
+ ></path>
60
+ </svg>
61
+ </div>
62
+ <div class="stat-title">New Users</div>
63
+ <div class="stat-value">4,200</div>
64
+ <div class="stat-desc">↗︎ 400 (22%)</div>
65
+ </div>
66
+
67
+ <div class="stat">
68
+ <div class="stat-figure text-secondary">
69
+ <svg
70
+ xmlns="http://www.w3.org/2000/svg"
71
+ fill="none"
72
+ viewBox="0 0 24 24"
73
+ class="inline-block h-8 w-8 stroke-current"
74
+ >
75
+ <path
76
+ stroke-linecap="round"
77
+ stroke-linejoin="round"
78
+ stroke-width="2"
79
+ d="M5 8h14M5 8a2 2 0 110-4h14a2 2 0 110 4M5 8v10a2 2 0 002 2h10a2 2 0 002-2V8m-9 4h4"
80
+ ></path>
81
+ </svg>
82
+ </div>
83
+ <div class="stat-title">New Registers</div>
84
+ <div class="stat-value">1,200</div>
85
+ <div class="stat-desc">↘︎ 90 (14%)</div>
86
+ </div>
87
+ </div>
88
+ ```
89
+
90
+ ### Centered items
91
+
92
+ Source: `playground/components/stat/centered-items.html`
93
+
94
+ ```html
95
+ <div class="stats shadow">
96
+ <div class="stat place-items-center">
97
+ <div class="stat-title">Downloads</div>
98
+ <div class="stat-value">31K</div>
99
+ <div class="stat-desc">From January 1st to February 1st</div>
100
+ </div>
101
+
102
+ <div class="stat place-items-center">
103
+ <div class="stat-title">Users</div>
104
+ <div class="stat-value text-secondary">4,200</div>
105
+ <div class="stat-desc text-secondary">↗︎ 40 (2%)</div>
106
+ </div>
107
+
108
+ <div class="stat place-items-center">
109
+ <div class="stat-title">New Registers</div>
110
+ <div class="stat-value">1,200</div>
111
+ <div class="stat-desc">↘︎ 90 (14%)</div>
112
+ </div>
113
+ </div>
114
+ ```
115
+
116
+ ### Responsive vertical on small screen horizontal on large screen
117
+
118
+ Source: `playground/components/stat/responsive-vertical-on-small-screen-horizontal-on-large-screen.html`
119
+
120
+ ```html
121
+ <div class="stats stats-vertical lg:stats-horizontal shadow">
122
+ <div class="stat">
123
+ <div class="stat-title">Downloads</div>
124
+ <div class="stat-value">31K</div>
125
+ <div class="stat-desc">Jan 1st - Feb 1st</div>
126
+ </div>
127
+
128
+ <div class="stat">
129
+ <div class="stat-title">New Users</div>
130
+ <div class="stat-value">4,200</div>
131
+ <div class="stat-desc">↗︎ 400 (22%)</div>
132
+ </div>
133
+
134
+ <div class="stat">
135
+ <div class="stat-title">New Registers</div>
136
+ <div class="stat-value">1,200</div>
137
+ <div class="stat-desc">↘︎ 90 (14%)</div>
138
+ </div>
139
+ </div>
140
+ ```
141
+
142
+ ### Stat with icons or image
143
+
144
+ Source: `playground/components/stat/stat-with-icons-or-image.html`
145
+
146
+ ```html
147
+ <div class="stats shadow">
148
+ <div class="stat">
149
+ <div class="stat-figure text-primary">
150
+ <svg
151
+ xmlns="http://www.w3.org/2000/svg"
152
+ fill="none"
153
+ viewBox="0 0 24 24"
154
+ class="inline-block h-8 w-8 stroke-current"
155
+ >
156
+ <path
157
+ stroke-linecap="round"
158
+ stroke-linejoin="round"
159
+ stroke-width="2"
160
+ d="M4.318 6.318a4.5 4.5 0 000 6.364L12 20.364l7.682-7.682a4.5 4.5 0 00-6.364-6.364L12 7.636l-1.318-1.318a4.5 4.5 0 00-6.364 0z"
161
+ ></path>
162
+ </svg>
163
+ </div>
164
+ <div class="stat-title">Total Likes</div>
165
+ <div class="stat-value text-primary">25.6K</div>
166
+ <div class="stat-desc">21% more than last month</div>
167
+ </div>
168
+
169
+ <div class="stat">
170
+ <div class="stat-figure text-secondary">
171
+ <svg
172
+ xmlns="http://www.w3.org/2000/svg"
173
+ fill="none"
174
+ viewBox="0 0 24 24"
175
+ class="inline-block h-8 w-8 stroke-current"
176
+ >
177
+ <path
178
+ stroke-linecap="round"
179
+ stroke-linejoin="round"
180
+ stroke-width="2"
181
+ d="M13 10V3L4 14h7v7l9-11h-7z"
182
+ ></path>
183
+ </svg>
184
+ </div>
185
+ <div class="stat-title">Page Views</div>
186
+ <div class="stat-value text-secondary">2.6M</div>
187
+ <div class="stat-desc">21% more than last month</div>
188
+ </div>
189
+
190
+ <div class="stat">
191
+ <div class="stat-figure text-secondary">
192
+ <div class="avatar avatar-online">
193
+ <div class="w-16 rounded-full">
194
+ <img src="https://img.daisyui.com/images/profile/demo/anakeen@192.webp" />
195
+ </div>
196
+ </div>
197
+ </div>
198
+ <div class="stat-value">86%</div>
199
+ <div class="stat-title">Tasks done</div>
200
+ <div class="stat-desc text-secondary">31 tasks remaining</div>
201
+ </div>
202
+ </div>
203
+ ```
204
+
205
+ ### Vertical
206
+
207
+ Source: `playground/components/stat/vertical.html`
208
+
209
+ ```html
210
+ <div class="stats stats-vertical shadow">
211
+ <div class="stat">
212
+ <div class="stat-title">Downloads</div>
213
+ <div class="stat-value">31K</div>
214
+ <div class="stat-desc">Jan 1st - Feb 1st</div>
215
+ </div>
216
+
217
+ <div class="stat">
218
+ <div class="stat-title">New Users</div>
219
+ <div class="stat-value">4,200</div>
220
+ <div class="stat-desc">↗︎ 400 (22%)</div>
221
+ </div>
222
+
223
+ <div class="stat">
224
+ <div class="stat-title">New Registers</div>
225
+ <div class="stat-value">1,200</div>
226
+ <div class="stat-desc">↘︎ 90 (14%)</div>
227
+ </div>
228
+ </div>
229
+ ```
230
+
231
+ ### With custom colors and button
232
+
233
+ Source: `playground/components/stat/with-custom-colors-and-button.html`
234
+
235
+ ```html
236
+ <div class="stats bg-base-100 border-base-300 border">
237
+ <div class="stat">
238
+ <div class="stat-title">Account balance</div>
239
+ <div class="stat-value">$89,400</div>
240
+ <div class="stat-actions">
241
+ <button class="btn btn-xs btn-success">Add funds</button>
242
+ </div>
243
+ </div>
244
+
245
+ <div class="stat">
246
+ <div class="stat-title">Current balance</div>
247
+ <div class="stat-value">$89,400</div>
248
+ <div class="stat-actions">
249
+ <button class="btn btn-xs">Withdrawal</button>
250
+ <button class="btn btn-xs">Deposit</button>
251
+ </div>
252
+ </div>
253
+ </div>
254
+ ```
@@ -0,0 +1,73 @@
1
+ # status
2
+
3
+ _small colored status dot_
4
+
5
+ ## What it does
6
+
7
+ Small colored dot for status indication (online, busy, etc.), with optional bounce/ping animation.
8
+
9
+ ## When to use
10
+
11
+ - Presence dots, system-health indicators.
12
+ - For text + dot, combine with **badge** or **indicator**.
13
+
14
+ ## Core classes
15
+
16
+ `status`; color `status-primary|secondary|accent|info|success|warning|error|neutral`; size `status-xs|sm|md|lg|xl`.
17
+
18
+ ## Examples
19
+
20
+ ### Status
21
+
22
+ Source: `playground/components/status/status.html`
23
+
24
+ ```html
25
+ <span class="status"></span>
26
+ ```
27
+
28
+ ### Status sizes
29
+
30
+ Source: `playground/components/status/status-sizes.html`
31
+
32
+ ```html
33
+ <div aria-label="status" class="status status-xs"></div>
34
+ <div aria-label="status" class="status status-sm"></div>
35
+ <div aria-label="status" class="status status-md"></div>
36
+ <div aria-label="status" class="status status-lg"></div>
37
+ <div aria-label="status" class="status status-xl"></div>
38
+ ```
39
+
40
+ ### Status with bounce animation
41
+
42
+ Source: `playground/components/status/status-with-bounce-animation.html`
43
+
44
+ ```html
45
+ <div class="status status-info animate-bounce"></div> Unread messages
46
+ ```
47
+
48
+ ### Status with colors
49
+
50
+ Source: `playground/components/status/status-with-colors.html`
51
+
52
+ ```html
53
+ <div aria-label="status" class="status status-primary"></div>
54
+ <div aria-label="status" class="status status-secondary"></div>
55
+ <div aria-label="status" class="status status-accent"></div>
56
+ <div aria-label="status" class="status status-neutral"></div>
57
+
58
+ <div aria-label="info" class="status status-info"></div>
59
+ <div aria-label="success" class="status status-success"></div>
60
+ <div aria-label="warning" class="status status-warning"></div>
61
+ <div aria-label="error" class="status status-error"></div>
62
+ ```
63
+
64
+ ### Status with ping animation
65
+
66
+ Source: `playground/components/status/status-with-ping-animation.html`
67
+
68
+ ```html
69
+ <div class="inline-grid *:[grid-area:1/1]">
70
+ <div class="status status-error animate-ping"></div>
71
+ <div class="status status-error"></div>
72
+ </div> Server is down
73
+ ```
@@ -0,0 +1,138 @@
1
+ # steps
2
+
3
+ _multi-step progress indicator_
4
+
5
+ ## What it does
6
+
7
+ Multi-step progress indicator (horizontal or vertical).
8
+
9
+ ## When to use
10
+
11
+ - Wizards, checkout flows, onboarding.
12
+
13
+ ## Core classes
14
+
15
+ `steps`; orientation `steps-horizontal|vertical`; child `step`; state `step-primary|secondary|accent|info|success|warning|error|neutral`.
16
+
17
+ ## Examples
18
+
19
+ ### Custom colors
20
+
21
+ Source: `playground/components/steps/custom-colors.html`
22
+
23
+ ```html
24
+ <ul class="steps">
25
+ <li class="step step-info">Fly to moon</li>
26
+ <li class="step step-info">Shrink the moon</li>
27
+ <li class="step step-info">Grab the moon</li>
28
+ <li class="step step-error" data-content="?">Sit on toilet</li>
29
+ </ul>
30
+ ```
31
+
32
+ ### Horizontal
33
+
34
+ Source: `playground/components/steps/horizontal.html`
35
+
36
+ ```html
37
+ <ul class="steps">
38
+ <li class="step step-primary">Register</li>
39
+ <li class="step step-primary">Choose plan</li>
40
+ <li class="step">Purchase</li>
41
+ <li class="step">Receive Product</li>
42
+ </ul>
43
+ ```
44
+
45
+ ### Responsive vertical on small screen horizontal on large screen
46
+
47
+ Source: `playground/components/steps/responsive-vertical-on-small-screen-horizontal-on-large-screen.html`
48
+
49
+ ```html
50
+ <ul class="steps steps-vertical lg:steps-horizontal">
51
+ <li class="step step-primary">Register</li>
52
+ <li class="step step-primary">Choose plan</li>
53
+ <li class="step">Purchase</li>
54
+ <li class="step">Receive Product</li>
55
+ </ul>
56
+ ```
57
+
58
+ ### Vertical
59
+
60
+ Source: `playground/components/steps/vertical.html`
61
+
62
+ ```html
63
+ <ul class="steps steps-vertical">
64
+ <li class="step step-primary">Register</li>
65
+ <li class="step step-primary">Choose plan</li>
66
+ <li class="step">Purchase</li>
67
+ <li class="step">Receive Product</li>
68
+ </ul>
69
+ ```
70
+
71
+ ### With custom content in step icon
72
+
73
+ Source: `playground/components/steps/with-custom-content-in-step-icon.html`
74
+
75
+ ```html
76
+ <ul class="steps">
77
+ <li class="step step-neutral">
78
+ <span class="step-icon">😕</span>Step 1
79
+ </li>
80
+ <li class="step step-neutral">
81
+ <span class="step-icon">😃</span>Step 2
82
+ </li>
83
+ <li class="step">
84
+ <span class="step-icon">😍</span>Step 3
85
+ </li>
86
+ </ul>
87
+ ```
88
+
89
+ ### With data content
90
+
91
+ Source: `playground/components/steps/with-data-content.html`
92
+
93
+ ```html
94
+ <ul class="steps">
95
+ <li data-content="?" class="step step-neutral">Step 1</li>
96
+ <li data-content="!" class="step step-neutral">Step 2</li>
97
+ <li data-content="✓" class="step step-neutral">Step 3</li>
98
+ <li data-content="✕" class="step step-neutral">Step 4</li>
99
+ <li data-content="★" class="step step-neutral">Step 5</li>
100
+ <li data-content="" class="step step-neutral">Step 6</li>
101
+ <li data-content="●" class="step step-neutral">Step 7</li>
102
+ </ul>
103
+ ```
104
+
105
+ ### With scrollable wrapper
106
+
107
+ Source: `playground/components/steps/with-scrollable-wrapper.html`
108
+
109
+ ```html
110
+ <div class="overflow-x-auto">
111
+ <ul class="steps">
112
+ <li class="step">start</li>
113
+ <li class="step step-secondary">2</li>
114
+ <li class="step step-secondary">3</li>
115
+ <li class="step step-secondary">4</li>
116
+ <li class="step">5</li>
117
+ <li class="step step-accent">6</li>
118
+ <li class="step step-accent">7</li>
119
+ <li class="step">8</li>
120
+ <li class="step step-error">9</li>
121
+ <li class="step step-error">10</li>
122
+ <li class="step">11</li>
123
+ <li class="step">12</li>
124
+ <li class="step step-warning">13</li>
125
+ <li class="step step-warning">14</li>
126
+ <li class="step">15</li>
127
+ <li class="step step-neutral">16</li>
128
+ <li class="step step-neutral">17</li>
129
+ <li class="step step-neutral">18</li>
130
+ <li class="step step-neutral">19</li>
131
+ <li class="step step-neutral">20</li>
132
+ <li class="step step-neutral">21</li>
133
+ <li class="step step-neutral">22</li>
134
+ <li class="step step-neutral">23</li>
135
+ <li class="step step-neutral">end</li>
136
+ </ul>
137
+ </div>
138
+ ```
@@ -0,0 +1,152 @@
1
+ # swap
2
+
3
+ _toggle between two children (icon swap, hamburger)_
4
+
5
+ ## What it does
6
+
7
+ Toggle between two child elements driven by a checkbox or class.
8
+
9
+ ## When to use
10
+
11
+ - Theme toggles, hamburger ↔ close icons, play ↔ pause.
12
+
13
+ ## Core classes
14
+
15
+ `swap`; effect `swap-rotate|flip|active`; inner `swap-on`, `swap-off`.
16
+
17
+ ## Examples
18
+
19
+ ### Activate using class name instead of checkbox
20
+
21
+ Source: `playground/components/swap/activate-using-class-name-instead-of-checkbox.html`
22
+
23
+ ```html
24
+ <label class="swap text-6xl">
25
+ <div class="swap-on">🥵</div>
26
+ <div class="swap-off">🥶</div>
27
+ </label>
28
+ <label class="swap swap-active text-6xl">
29
+ <div class="swap-on">🥳</div>
30
+ <div class="swap-off">😭</div>
31
+ </label>
32
+ ```
33
+
34
+ ### Hamburger button
35
+
36
+ Source: `playground/components/swap/hamburger-button.html`
37
+
38
+ ```html
39
+ <label class="btn btn-circle swap swap-rotate">
40
+ <!-- this hidden checkbox controls the state -->
41
+ <input type="checkbox" />
42
+
43
+ <!-- hamburger icon -->
44
+ <svg
45
+ class="swap-off fill-current"
46
+ xmlns="http://www.w3.org/2000/svg"
47
+ width="32"
48
+ height="32"
49
+ viewBox="0 0 512 512">
50
+ <path d="M64,384H448V341.33H64Zm0-106.67H448V234.67H64ZM64,128v42.67H448V128Z" />
51
+ </svg>
52
+
53
+ <!-- close icon -->
54
+ <svg
55
+ class="swap-on fill-current"
56
+ xmlns="http://www.w3.org/2000/svg"
57
+ width="32"
58
+ height="32"
59
+ viewBox="0 0 512 512">
60
+ <polygon
61
+ points="400 145.49 366.51 112 256 222.51 145.49 112 112 145.49 222.51 256 112 366.51 145.49 400 256 289.49 366.51 400 400 366.51 289.49 256 400 145.49" />
62
+ </svg>
63
+ </label>
64
+ ```
65
+
66
+ ### Swap icons with flip effect
67
+
68
+ Source: `playground/components/swap/swap-icons-with-flip-effect.html`
69
+
70
+ ```html
71
+ <label class="swap swap-flip text-9xl">
72
+ <!-- this hidden checkbox controls the state -->
73
+ <input type="checkbox" />
74
+
75
+ <div class="swap-on">😈</div>
76
+ <div class="swap-off">😇</div>
77
+ </label>
78
+ ```
79
+
80
+ ### Swap icons with rotate effect
81
+
82
+ Source: `playground/components/swap/swap-icons-with-rotate-effect.html`
83
+
84
+ ```html
85
+ <label class="swap swap-rotate">
86
+ <!-- this hidden checkbox controls the state -->
87
+ <input type="checkbox" />
88
+
89
+ <!-- sun icon -->
90
+ <svg
91
+ class="swap-on h-10 w-10 fill-current"
92
+ xmlns="http://www.w3.org/2000/svg"
93
+ viewBox="0 0 24 24">
94
+ <path
95
+ d="M5.64,17l-.71.71a1,1,0,0,0,0,1.41,1,1,0,0,0,1.41,0l.71-.71A1,1,0,0,0,5.64,17ZM5,12a1,1,0,0,0-1-1H3a1,1,0,0,0,0,2H4A1,1,0,0,0,5,12Zm7-7a1,1,0,0,0,1-1V3a1,1,0,0,0-2,0V4A1,1,0,0,0,12,5ZM5.64,7.05a1,1,0,0,0,.7.29,1,1,0,0,0,.71-.29,1,1,0,0,0,0-1.41l-.71-.71A1,1,0,0,0,4.93,6.34Zm12,.29a1,1,0,0,0,.7-.29l.71-.71a1,1,0,1,0-1.41-1.41L17,5.64a1,1,0,0,0,0,1.41A1,1,0,0,0,17.66,7.34ZM21,11H20a1,1,0,0,0,0,2h1a1,1,0,0,0,0-2Zm-9,8a1,1,0,0,0-1,1v1a1,1,0,0,0,2,0V20A1,1,0,0,0,12,19ZM18.36,17A1,1,0,0,0,17,18.36l.71.71a1,1,0,0,0,1.41,0,1,1,0,0,0,0-1.41ZM12,6.5A5.5,5.5,0,1,0,17.5,12,5.51,5.51,0,0,0,12,6.5Zm0,9A3.5,3.5,0,1,1,15.5,12,3.5,3.5,0,0,1,12,15.5Z" />
96
+ </svg>
97
+
98
+ <!-- moon icon -->
99
+ <svg
100
+ class="swap-off h-10 w-10 fill-current"
101
+ xmlns="http://www.w3.org/2000/svg"
102
+ viewBox="0 0 24 24">
103
+ <path
104
+ d="M21.64,13a1,1,0,0,0-1.05-.14,8.05,8.05,0,0,1-3.37.73A8.15,8.15,0,0,1,9.08,5.49a8.59,8.59,0,0,1,.25-2A1,1,0,0,0,8,2.36,10.14,10.14,0,1,0,22,14.05,1,1,0,0,0,21.64,13Zm-9.5,6.69A8.14,8.14,0,0,1,7.08,5.22v.27A10.15,10.15,0,0,0,17.22,15.63a9.79,9.79,0,0,0,2.1-.22A8.11,8.11,0,0,1,12.14,19.73Z" />
105
+ </svg>
106
+ </label>
107
+ ```
108
+
109
+ ### Swap text
110
+
111
+ Source: `playground/components/swap/swap-text.html`
112
+
113
+ ```html
114
+ <label class="swap">
115
+ <input type="checkbox" />
116
+ <div class="swap-on">ON</div>
117
+ <div class="swap-off">OFF</div>
118
+ </label>
119
+ ```
120
+
121
+ ### Swap volume icons
122
+
123
+ Source: `playground/components/swap/swap-volume-icons.html`
124
+
125
+ ```html
126
+ <label class="swap">
127
+ <!-- this hidden checkbox controls the state -->
128
+ <input type="checkbox" />
129
+
130
+ <!-- volume on icon -->
131
+ <svg
132
+ class="swap-on fill-current"
133
+ xmlns="http://www.w3.org/2000/svg"
134
+ width="48"
135
+ height="48"
136
+ viewBox="0 0 24 24">
137
+ <path
138
+ d="M14,3.23V5.29C16.89,6.15 19,8.83 19,12C19,15.17 16.89,17.84 14,18.7V20.77C18,19.86 21,16.28 21,12C21,7.72 18,4.14 14,3.23M16.5,12C16.5,10.23 15.5,8.71 14,7.97V16C15.5,15.29 16.5,13.76 16.5,12M3,9V15H7L12,20V4L7,9H3Z" />
139
+ </svg>
140
+
141
+ <!-- volume off icon -->
142
+ <svg
143
+ class="swap-off fill-current"
144
+ xmlns="http://www.w3.org/2000/svg"
145
+ width="48"
146
+ height="48"
147
+ viewBox="0 0 24 24">
148
+ <path
149
+ d="M3,9H7L12,4V20L7,15H3V9M16.59,12L14,9.41L15.41,8L18,10.59L20.59,8L22,9.41L19.41,12L22,14.59L20.59,16L18,13.41L15.41,16L14,14.59L16.59,12Z" />
150
+ </svg>
151
+ </label>
152
+ ```