snice 3.1.0 → 3.2.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.
Files changed (217) hide show
  1. package/README.md +90 -41
  2. package/dist/components/accordion/snice-accordion-item.js +1 -1
  3. package/dist/components/accordion/snice-accordion-item.js.map +1 -1
  4. package/dist/components/accordion/snice-accordion.js +1 -1
  5. package/dist/components/accordion/snice-accordion.js.map +1 -1
  6. package/dist/components/alert/snice-alert.js +1 -1
  7. package/dist/components/alert/snice-alert.js.map +1 -1
  8. package/dist/components/avatar/snice-avatar.js +1 -1
  9. package/dist/components/avatar/snice-avatar.js.map +1 -1
  10. package/dist/components/badge/snice-badge.js +1 -1
  11. package/dist/components/badge/snice-badge.js.map +1 -1
  12. package/dist/components/banner/snice-banner.d.ts +22 -0
  13. package/dist/components/banner/snice-banner.js +180 -0
  14. package/dist/components/banner/snice-banner.js.map +1 -0
  15. package/dist/components/banner/snice-banner.types.d.ts +14 -0
  16. package/dist/components/breadcrumbs/snice-breadcrumbs.js +1 -1
  17. package/dist/components/breadcrumbs/snice-breadcrumbs.js.map +1 -1
  18. package/dist/components/button/snice-button.js +1 -1
  19. package/dist/components/button/snice-button.js.map +1 -1
  20. package/dist/components/card/snice-card.js +1 -1
  21. package/dist/components/card/snice-card.js.map +1 -1
  22. package/dist/components/checkbox/snice-checkbox.js +1 -1
  23. package/dist/components/checkbox/snice-checkbox.js.map +1 -1
  24. package/dist/components/chip/snice-chip.js +1 -1
  25. package/dist/components/chip/snice-chip.js.map +1 -1
  26. package/dist/components/color-display/snice-color-display.d.ts +14 -0
  27. package/dist/components/color-display/snice-color-display.js +151 -0
  28. package/dist/components/color-display/snice-color-display.js.map +1 -0
  29. package/dist/components/color-display/snice-color-display.types.d.ts +10 -0
  30. package/dist/components/color-picker/snice-color-picker.d.ts +50 -0
  31. package/dist/components/color-picker/snice-color-picker.js +489 -0
  32. package/dist/components/color-picker/snice-color-picker.js.map +1 -0
  33. package/dist/components/color-picker/snice-color-picker.types.d.ts +19 -0
  34. package/dist/components/date-picker/snice-date-picker.js +1 -1
  35. package/dist/components/date-picker/snice-date-picker.js.map +1 -1
  36. package/dist/components/divider/snice-divider.js +1 -1
  37. package/dist/components/divider/snice-divider.js.map +1 -1
  38. package/dist/components/drawer/snice-drawer.js +1 -1
  39. package/dist/components/drawer/snice-drawer.js.map +1 -1
  40. package/dist/components/empty-state/snice-empty-state.d.ts +13 -0
  41. package/dist/components/empty-state/snice-empty-state.js +121 -0
  42. package/dist/components/empty-state/snice-empty-state.js.map +1 -0
  43. package/dist/components/empty-state/snice-empty-state.types.d.ts +9 -0
  44. package/dist/components/file-upload/snice-file-upload.d.ts +45 -0
  45. package/dist/components/file-upload/snice-file-upload.js +394 -0
  46. package/dist/components/file-upload/snice-file-upload.js.map +1 -0
  47. package/dist/components/file-upload/snice-file-upload.types.d.ts +22 -0
  48. package/dist/components/image/snice-image.d.ts +22 -0
  49. package/dist/components/image/snice-image.js +201 -0
  50. package/dist/components/image/snice-image.js.map +1 -0
  51. package/dist/components/image/snice-image.types.d.ts +17 -0
  52. package/dist/components/input/snice-input.js +1 -1
  53. package/dist/components/input/snice-input.js.map +1 -1
  54. package/dist/components/kpi/snice-kpi.d.ts +16 -0
  55. package/dist/components/kpi/snice-kpi.js +162 -0
  56. package/dist/components/kpi/snice-kpi.js.map +1 -0
  57. package/dist/components/kpi/snice-kpi.types.d.ts +12 -0
  58. package/dist/components/layout/snice-layout-blog.js +1 -1
  59. package/dist/components/layout/snice-layout-blog.js.map +1 -1
  60. package/dist/components/layout/snice-layout-card.js +1 -1
  61. package/dist/components/layout/snice-layout-card.js.map +1 -1
  62. package/dist/components/layout/snice-layout-centered.js +1 -1
  63. package/dist/components/layout/snice-layout-centered.js.map +1 -1
  64. package/dist/components/layout/snice-layout-dashboard.js +1 -1
  65. package/dist/components/layout/snice-layout-dashboard.js.map +1 -1
  66. package/dist/components/layout/snice-layout-fullscreen.js +1 -1
  67. package/dist/components/layout/snice-layout-fullscreen.js.map +1 -1
  68. package/dist/components/layout/snice-layout-landing.js +1 -1
  69. package/dist/components/layout/snice-layout-landing.js.map +1 -1
  70. package/dist/components/layout/snice-layout-minimal.js +1 -1
  71. package/dist/components/layout/snice-layout-minimal.js.map +1 -1
  72. package/dist/components/layout/snice-layout-sidebar.js +1 -1
  73. package/dist/components/layout/snice-layout-sidebar.js.map +1 -1
  74. package/dist/components/layout/snice-layout-split.js +1 -1
  75. package/dist/components/layout/snice-layout-split.js.map +1 -1
  76. package/dist/components/layout/snice-layout.js +1 -1
  77. package/dist/components/layout/snice-layout.js.map +1 -1
  78. package/dist/components/link/snice-link.d.ts +13 -0
  79. package/dist/components/link/snice-link.js +137 -0
  80. package/dist/components/link/snice-link.js.map +1 -0
  81. package/dist/components/link/snice-link.types.d.ts +11 -0
  82. package/dist/components/login/snice-login.js +1 -1
  83. package/dist/components/login/snice-login.js.map +1 -1
  84. package/dist/components/modal/snice-modal.js +1 -1
  85. package/dist/components/modal/snice-modal.js.map +1 -1
  86. package/dist/components/nav/snice-nav.js +1 -1
  87. package/dist/components/nav/snice-nav.js.map +1 -1
  88. package/dist/components/progress/snice-progress.js +1 -1
  89. package/dist/components/progress/snice-progress.js.map +1 -1
  90. package/dist/components/radio/snice-radio.js +1 -1
  91. package/dist/components/radio/snice-radio.js.map +1 -1
  92. package/dist/components/select/snice-select.js +1 -1
  93. package/dist/components/select/snice-select.js.map +1 -1
  94. package/dist/components/skeleton/snice-skeleton.js +1 -1
  95. package/dist/components/skeleton/snice-skeleton.js.map +1 -1
  96. package/dist/components/slider/snice-slider.d.ts +53 -0
  97. package/dist/components/slider/snice-slider.js +479 -0
  98. package/dist/components/slider/snice-slider.js.map +1 -0
  99. package/dist/components/slider/snice-slider.types.d.ts +26 -0
  100. package/dist/components/snice-cell-C0slgOpe.js +4 -0
  101. package/dist/components/snice-cell-C0slgOpe.js.map +1 -0
  102. package/dist/components/sparkline/snice-sparkline.d.ts +21 -0
  103. package/dist/components/sparkline/snice-sparkline.js +228 -0
  104. package/dist/components/sparkline/snice-sparkline.js.map +1 -0
  105. package/dist/components/sparkline/snice-sparkline.types.d.ts +16 -0
  106. package/dist/components/spinner/snice-spinner.d.ts +10 -0
  107. package/dist/components/spinner/snice-spinner.js +109 -0
  108. package/dist/components/spinner/snice-spinner.js.map +1 -0
  109. package/dist/components/spinner/snice-spinner.types.d.ts +8 -0
  110. package/dist/components/stepper/snice-stepper-panel.d.ts +8 -0
  111. package/dist/components/stepper/snice-stepper-panel.js +70 -0
  112. package/dist/components/stepper/snice-stepper-panel.js.map +1 -0
  113. package/dist/components/stepper/snice-stepper-panel.types.d.ts +4 -0
  114. package/dist/components/stepper/snice-stepper.d.ts +15 -0
  115. package/dist/components/stepper/snice-stepper.js +163 -0
  116. package/dist/components/stepper/snice-stepper.js.map +1 -0
  117. package/dist/components/stepper/snice-stepper.types.d.ts +13 -0
  118. package/dist/components/switch/snice-switch.js +1 -1
  119. package/dist/components/switch/snice-switch.js.map +1 -1
  120. package/dist/components/table/snice-cell-actions.js +1 -1
  121. package/dist/components/table/snice-cell-actions.js.map +1 -1
  122. package/dist/components/table/snice-cell-boolean.js +1 -1
  123. package/dist/components/table/snice-cell-color.js +1 -1
  124. package/dist/components/table/snice-cell-color.js.map +1 -1
  125. package/dist/components/table/snice-cell-currency.js +1 -1
  126. package/dist/components/table/snice-cell-date.js +1 -1
  127. package/dist/components/table/snice-cell-duration.js +1 -1
  128. package/dist/components/table/snice-cell-email.js +1 -1
  129. package/dist/components/table/snice-cell-email.js.map +1 -1
  130. package/dist/components/table/snice-cell-filesize.js +1 -1
  131. package/dist/components/table/snice-cell-image.js +1 -1
  132. package/dist/components/table/snice-cell-image.js.map +1 -1
  133. package/dist/components/table/snice-cell-json.js +1 -1
  134. package/dist/components/table/snice-cell-json.js.map +1 -1
  135. package/dist/components/table/snice-cell-link.js +1 -1
  136. package/dist/components/table/snice-cell-link.js.map +1 -1
  137. package/dist/components/table/snice-cell-location.js +1 -1
  138. package/dist/components/table/snice-cell-location.js.map +1 -1
  139. package/dist/components/table/snice-cell-number.js +1 -1
  140. package/dist/components/table/snice-cell-percentage.js +1 -1
  141. package/dist/components/table/snice-cell-percentage.js.map +1 -1
  142. package/dist/components/table/snice-cell-phone.js +1 -1
  143. package/dist/components/table/snice-cell-phone.js.map +1 -1
  144. package/dist/components/table/snice-cell-progress.js +1 -1
  145. package/dist/components/table/snice-cell-rating.js +1 -1
  146. package/dist/components/table/snice-cell-sparkline.js +1 -1
  147. package/dist/components/table/snice-cell-status.js +1 -1
  148. package/dist/components/table/snice-cell-status.js.map +1 -1
  149. package/dist/components/table/snice-cell-tag.js +1 -1
  150. package/dist/components/table/snice-cell-tag.js.map +1 -1
  151. package/dist/components/table/snice-cell-text.js +1 -1
  152. package/dist/components/table/snice-cell.js +1 -1
  153. package/dist/components/table/snice-header.js +1 -1
  154. package/dist/components/table/snice-header.js.map +1 -1
  155. package/dist/components/table/snice-row.js +2 -2
  156. package/dist/components/table/snice-row.js.map +1 -1
  157. package/dist/components/table/snice-table.js +1 -1
  158. package/dist/components/tabs/snice-tab-panel.js +1 -1
  159. package/dist/components/tabs/snice-tab-panel.js.map +1 -1
  160. package/dist/components/tabs/snice-tab.js +1 -1
  161. package/dist/components/tabs/snice-tab.js.map +1 -1
  162. package/dist/components/tabs/snice-tabs.js +1 -1
  163. package/dist/components/tabs/snice-tabs.js.map +1 -1
  164. package/dist/components/textarea/snice-textarea.d.ts +52 -0
  165. package/dist/components/textarea/snice-textarea.js +407 -0
  166. package/dist/components/textarea/snice-textarea.js.map +1 -0
  167. package/dist/components/textarea/snice-textarea.types.d.ts +30 -0
  168. package/dist/components/timeline/snice-timeline.d.ts +11 -0
  169. package/dist/components/timeline/snice-timeline.js +112 -0
  170. package/dist/components/timeline/snice-timeline.js.map +1 -0
  171. package/dist/components/timeline/snice-timeline.types.d.ts +16 -0
  172. package/dist/components/tooltip/snice-tooltip.js +2 -2
  173. package/dist/components/tooltip/snice-tooltip.js.map +1 -1
  174. package/dist/index.cjs +125 -158
  175. package/dist/index.cjs.map +1 -1
  176. package/dist/index.esm.js +125 -158
  177. package/dist/index.esm.js.map +1 -1
  178. package/dist/index.iife.js +125 -158
  179. package/dist/index.iife.js.map +1 -1
  180. package/dist/parts.d.ts +13 -16
  181. package/dist/symbols.cjs +1 -1
  182. package/dist/symbols.esm.js +1 -1
  183. package/dist/template.d.ts +0 -1
  184. package/dist/transitions.cjs +1 -1
  185. package/dist/transitions.esm.js +1 -1
  186. package/docs/ai/README.md +10 -1
  187. package/docs/ai/components/banner.md +84 -0
  188. package/docs/ai/components/color-display.md +48 -0
  189. package/docs/ai/components/color-picker.md +75 -0
  190. package/docs/ai/components/empty-state.md +72 -0
  191. package/docs/ai/components/file-upload.md +93 -0
  192. package/docs/ai/components/image.md +60 -0
  193. package/docs/ai/components/kpi.md +158 -0
  194. package/docs/ai/components/link.md +77 -0
  195. package/docs/ai/components/slider.md +87 -0
  196. package/docs/ai/components/sparkline.md +168 -0
  197. package/docs/ai/components/spinner.md +47 -0
  198. package/docs/ai/components/stepper.md +216 -0
  199. package/docs/ai/components/textarea.md +87 -0
  200. package/docs/ai/components/timeline.md +77 -0
  201. package/docs/components/banner.md +106 -0
  202. package/docs/components/color-display.md +96 -0
  203. package/docs/components/color-picker.md +81 -0
  204. package/docs/components/empty-state.md +79 -0
  205. package/docs/components/file-upload.md +263 -0
  206. package/docs/components/image.md +110 -0
  207. package/docs/components/kpi.md +251 -0
  208. package/docs/components/link.md +229 -0
  209. package/docs/components/slider.md +297 -0
  210. package/docs/components/sparkline.md +293 -0
  211. package/docs/components/spinner.md +63 -0
  212. package/docs/components/stepper.md +410 -0
  213. package/docs/components/textarea.md +235 -0
  214. package/docs/components/timeline.md +192 -0
  215. package/package.json +2 -1
  216. package/dist/components/snice-cell-BLFVdxPp.js +0 -4
  217. package/dist/components/snice-cell-BLFVdxPp.js.map +0 -1
@@ -0,0 +1,293 @@
1
+ # Sparkline Component
2
+
3
+ A lightweight inline chart component for visualizing trends and patterns in compact spaces. Perfect for dashboards, tables, and data-dense interfaces.
4
+
5
+ ## Features
6
+
7
+ - **Multiple Chart Types**: line, bar, area
8
+ - **Semantic Colors**: primary, success, warning, danger, muted
9
+ - **Custom Colors**: Use any color with the `custom-color` attribute
10
+ - **Smooth Curves**: Optional smooth bezier curve interpolation
11
+ - **Customizable Size**: Configurable width and height
12
+ - **Optional Enhancements**: Dots, area fill, custom stroke width
13
+ - **Flexible Data Range**: Optional min/max values for scaling
14
+
15
+ ## Basic Usage
16
+
17
+ ```html
18
+ <snice-sparkline id="chart"></snice-sparkline>
19
+
20
+ <script>
21
+ document.getElementById('chart').data = [10, 20, 15, 25, 30];
22
+ </script>
23
+ ```
24
+
25
+ ## Properties
26
+
27
+ | Property | Type | Default | Description |
28
+ |----------|------|---------|-------------|
29
+ | `data` | `number[]` | `[]` | Array of numeric values to visualize |
30
+ | `type` | `SparklineType` | `'line'` | Chart type ('line', 'bar', 'area') |
31
+ | `color` | `SparklineColor` | `'primary'` | Color variant ('primary', 'success', 'warning', 'danger', 'muted') |
32
+ | `custom-color` | `string` | `undefined` | Custom color (overrides `color`) - any valid CSS color |
33
+ | `width` | `number` | `100` | Chart width in pixels |
34
+ | `height` | `number` | `30` | Chart height in pixels |
35
+ | `strokeWidth` | `number` | `2` | Line/dot stroke width |
36
+ | `showDots` | `boolean` | `false` | Show dots on data points (line charts) |
37
+ | `showArea` | `boolean` | `false` | Show area fill (line charts) |
38
+ | `smooth` | `boolean` | `false` | Use smooth bezier curves instead of sharp lines |
39
+ | `min` | `number` | `undefined` | Minimum value for scaling (auto if not set) |
40
+ | `max` | `number` | `undefined` | Maximum value for scaling (auto if not set) |
41
+
42
+ ## Chart Types
43
+
44
+ ### Line Chart
45
+ ```html
46
+ <snice-sparkline type="line"></snice-sparkline>
47
+ ```
48
+
49
+ ### Bar Chart
50
+ ```html
51
+ <snice-sparkline type="bar"></snice-sparkline>
52
+ ```
53
+
54
+ ### Area Chart
55
+ ```html
56
+ <snice-sparkline type="area"></snice-sparkline>
57
+ ```
58
+
59
+ ## Colors
60
+
61
+ ### Primary
62
+ ```html
63
+ <snice-sparkline color="primary"></snice-sparkline>
64
+ ```
65
+
66
+ ### Success
67
+ ```html
68
+ <snice-sparkline color="success"></snice-sparkline>
69
+ ```
70
+
71
+ ### Warning
72
+ ```html
73
+ <snice-sparkline color="warning"></snice-sparkline>
74
+ ```
75
+
76
+ ### Danger
77
+ ```html
78
+ <snice-sparkline color="danger"></snice-sparkline>
79
+ ```
80
+
81
+ ### Muted
82
+ ```html
83
+ <snice-sparkline color="muted"></snice-sparkline>
84
+ ```
85
+
86
+ ## Customization
87
+
88
+ ### With Dots
89
+ ```html
90
+ <snice-sparkline show-dots></snice-sparkline>
91
+ ```
92
+
93
+ ### With Area Fill
94
+ ```html
95
+ <snice-sparkline show-area></snice-sparkline>
96
+ ```
97
+
98
+ ### Custom Size
99
+ ```html
100
+ <snice-sparkline width="200" height="50"></snice-sparkline>
101
+ ```
102
+
103
+ ### Thick Stroke
104
+ ```html
105
+ <snice-sparkline stroke-width="3"></snice-sparkline>
106
+ ```
107
+
108
+ ### Custom Scale
109
+ ```html
110
+ <snice-sparkline min="0" max="100"></snice-sparkline>
111
+ ```
112
+
113
+ ### Smooth Curves
114
+ ```html
115
+ <snice-sparkline smooth></snice-sparkline>
116
+ ```
117
+
118
+ ### Custom Colors
119
+ ```html
120
+ <!-- Hex color -->
121
+ <snice-sparkline custom-color="#9333ea"></snice-sparkline>
122
+
123
+ <!-- RGB color -->
124
+ <snice-sparkline custom-color="rgb(147, 51, 234)"></snice-sparkline>
125
+
126
+ <!-- Any valid CSS color -->
127
+ <snice-sparkline custom-color="hsl(270, 80%, 60%)"></snice-sparkline>
128
+ ```
129
+
130
+ ## CSS Parts
131
+
132
+ Use `::part()` to style internal elements:
133
+
134
+ ```css
135
+ snice-sparkline::part(container) {
136
+ padding: 4px;
137
+ }
138
+
139
+ snice-sparkline::part(svg) {
140
+ filter: drop-shadow(0 2px 4px rgba(0,0,0,0.1));
141
+ }
142
+
143
+ snice-sparkline::part(line) {
144
+ stroke-dasharray: 4;
145
+ }
146
+
147
+ snice-sparkline::part(bar) {
148
+ rx: 2;
149
+ }
150
+
151
+ snice-sparkline::part(area) {
152
+ opacity: 0.3;
153
+ }
154
+
155
+ snice-sparkline::part(dot) {
156
+ fill: white;
157
+ }
158
+ ```
159
+
160
+ ## Theming
161
+
162
+ The component uses these CSS custom properties:
163
+
164
+ ```css
165
+ --snice-color-primary
166
+ --snice-color-success
167
+ --snice-color-warning
168
+ --snice-color-danger
169
+ --snice-color-text-secondary
170
+ ```
171
+
172
+ ## Examples
173
+
174
+ ### Website Traffic Trend
175
+ ```html
176
+ <div>
177
+ <label>Daily Visitors</label>
178
+ <snice-sparkline
179
+ id="traffic"
180
+ color="primary"
181
+ width="150"
182
+ height="40"
183
+ show-area>
184
+ </snice-sparkline>
185
+ </div>
186
+
187
+ <script>
188
+ document.getElementById('traffic').data = [
189
+ 1200, 1350, 1100, 1450, 1600, 1550, 1700,
190
+ 1800, 1650, 1900, 2100, 2000, 2200, 2400
191
+ ];
192
+ </script>
193
+ ```
194
+
195
+ ### Sales Performance
196
+ ```html
197
+ <div>
198
+ <label>Weekly Sales</label>
199
+ <snice-sparkline
200
+ id="sales"
201
+ type="bar"
202
+ color="success"
203
+ width="150"
204
+ height="40">
205
+ </snice-sparkline>
206
+ </div>
207
+
208
+ <script>
209
+ document.getElementById('sales').data = [45, 52, 48, 61, 55, 70, 68];
210
+ </script>
211
+ ```
212
+
213
+ ### Server Response Time
214
+ ```html
215
+ <div>
216
+ <label>Response Time (ms)</label>
217
+ <snice-sparkline
218
+ id="response"
219
+ color="warning"
220
+ width="150"
221
+ height="40"
222
+ show-dots>
223
+ </snice-sparkline>
224
+ </div>
225
+
226
+ <script>
227
+ document.getElementById('response').data = [
228
+ 120, 135, 115, 145, 160, 155, 140, 130, 125, 120
229
+ ];
230
+ </script>
231
+ ```
232
+
233
+ ### Error Rate
234
+ ```html
235
+ <div>
236
+ <label>Error Rate</label>
237
+ <snice-sparkline
238
+ id="errors"
239
+ type="area"
240
+ color="danger"
241
+ width="150"
242
+ height="40"
243
+ min="0">
244
+ </snice-sparkline>
245
+ </div>
246
+
247
+ <script>
248
+ document.getElementById('errors').data = [
249
+ 5, 3, 7, 12, 8, 15, 25, 20, 18, 22, 15, 10, 5, 3, 1, 0
250
+ ];
251
+ </script>
252
+ ```
253
+
254
+ ### In Table Cells
255
+ ```html
256
+ <table>
257
+ <tr>
258
+ <td>Product A</td>
259
+ <td><snice-sparkline id="product-a" width="80" height="25"></snice-sparkline></td>
260
+ </tr>
261
+ <tr>
262
+ <td>Product B</td>
263
+ <td><snice-sparkline id="product-b" width="80" height="25"></snice-sparkline></td>
264
+ </tr>
265
+ </table>
266
+
267
+ <script>
268
+ document.getElementById('product-a').data = [10, 12, 15, 14, 18, 22, 25];
269
+ document.getElementById('product-b').data = [30, 28, 25, 27, 24, 22, 20];
270
+ </script>
271
+ ```
272
+
273
+ ## Best Practices
274
+
275
+ 1. **Keep it Simple**: Sparklines are meant to show trends, not detailed analysis
276
+ 2. **Consistent Sizing**: Use the same dimensions for sparklines in a group
277
+ 3. **Appropriate Scale**: Set `min`/`max` when comparing multiple charts
278
+ 4. **Semantic Colors**: Use colors that match the data meaning (success=good, danger=bad)
279
+ 5. **Add Context**: Always label sparklines so users understand what they represent
280
+
281
+ ## Accessibility
282
+
283
+ - Sparklines are decorative visualizations
284
+ - Always provide text labels or tooltips for the data
285
+ - Consider adding `aria-label` to describe the trend
286
+ - Ensure sufficient color contrast for visibility
287
+
288
+ ## Performance
289
+
290
+ - Lightweight SVG rendering
291
+ - No external dependencies
292
+ - Efficiently handles data updates
293
+ - Suitable for rendering many sparklines simultaneously
@@ -0,0 +1,63 @@
1
+ # Spinner Component
2
+
3
+ The `<snice-spinner>` component provides an animated loading indicator.
4
+
5
+ ## Basic Usage
6
+
7
+ ```html
8
+ <snice-spinner></snice-spinner>
9
+ ```
10
+
11
+ ## Properties
12
+
13
+ | Property | Type | Default | Description |
14
+ |----------|------|---------|-------------|
15
+ | `size` | `'small' \| 'medium' \| 'large' \| 'xl'` | `'medium'` | Spinner size |
16
+ | `color` | `'primary' \| 'success' \| 'warning' \| 'error' \| 'info'` | `'primary'` | Color variant |
17
+ | `label` | `string` | `''` | Accessible label |
18
+ | `thickness` | `number` | `4` | Stroke thickness |
19
+
20
+ ## Examples
21
+
22
+ ### Sizes
23
+
24
+ ```html
25
+ <snice-spinner size="small"></snice-spinner>
26
+ <snice-spinner size="medium"></snice-spinner>
27
+ <snice-spinner size="large"></snice-spinner>
28
+ <snice-spinner size="xl"></snice-spinner>
29
+ ```
30
+
31
+ ### Colors
32
+
33
+ ```html
34
+ <snice-spinner color="primary"></snice-spinner>
35
+ <snice-spinner color="success"></snice-spinner>
36
+ <snice-spinner color="warning"></snice-spinner>
37
+ <snice-spinner color="error"></snice-spinner>
38
+ <snice-spinner color="info"></snice-spinner>
39
+ ```
40
+
41
+ ### With Label
42
+
43
+ ```html
44
+ <snice-spinner label="Loading data..."></snice-spinner>
45
+ ```
46
+
47
+ ### Loading State
48
+
49
+ ```html
50
+ <div style="text-align: center; padding: 2rem;">
51
+ <snice-spinner size="large" color="primary"></snice-spinner>
52
+ <p>Loading content...</p>
53
+ </div>
54
+ ```
55
+
56
+ ### Inline Spinner
57
+
58
+ ```html
59
+ <button disabled>
60
+ <snice-spinner size="small"></snice-spinner>
61
+ Processing...
62
+ </button>
63
+ ```