snice 3.11.0 → 4.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (149) hide show
  1. package/bin/templates/CLAUDE.md +7 -7
  2. package/bin/templates/base/package.json +1 -1
  3. package/bin/templates/pwa/package.json +1 -1
  4. package/dist/components/audio-recorder/snice-audio-recorder.js +6 -6
  5. package/dist/components/audio-recorder/snice-audio-recorder.js.map +1 -1
  6. package/dist/components/banner/snice-banner.js +3 -3
  7. package/dist/components/banner/snice-banner.js.map +1 -1
  8. package/dist/components/button/snice-button.js +1 -1
  9. package/dist/components/calendar/snice-calendar.js +2 -2
  10. package/dist/components/calendar/snice-calendar.js.map +1 -1
  11. package/dist/components/camera/snice-camera.js +4 -4
  12. package/dist/components/camera/snice-camera.js.map +1 -1
  13. package/dist/components/carousel/snice-carousel.js +1 -1
  14. package/dist/components/carousel/snice-carousel.js.map +1 -1
  15. package/dist/components/checkbox/snice-checkbox.js +3 -3
  16. package/dist/components/checkbox/snice-checkbox.js.map +1 -1
  17. package/dist/components/color-picker/snice-color-picker.js +4 -4
  18. package/dist/components/color-picker/snice-color-picker.js.map +1 -1
  19. package/dist/components/command-palette/snice-command-palette.js +5 -5
  20. package/dist/components/command-palette/snice-command-palette.js.map +1 -1
  21. package/dist/components/date-picker/snice-date-picker.js +8 -8
  22. package/dist/components/date-picker/snice-date-picker.js.map +1 -1
  23. package/dist/components/draw/snice-draw.js +5 -5
  24. package/dist/components/draw/snice-draw.js.map +1 -1
  25. package/dist/components/drawer/snice-drawer.js +2 -2
  26. package/dist/components/drawer/snice-drawer.js.map +1 -1
  27. package/dist/components/empty-state/snice-empty-state.js +1 -1
  28. package/dist/components/empty-state/snice-empty-state.js.map +1 -1
  29. package/dist/components/file-gallery/snice-file-gallery.js +8 -8
  30. package/dist/components/file-gallery/snice-file-gallery.js.map +1 -1
  31. package/dist/components/file-upload/snice-file-upload.js +2 -2
  32. package/dist/components/file-upload/snice-file-upload.js.map +1 -1
  33. package/dist/components/input/snice-input.js +5 -5
  34. package/dist/components/input/snice-input.js.map +1 -1
  35. package/dist/components/kanban/snice-kanban.js +2 -2
  36. package/dist/components/kanban/snice-kanban.js.map +1 -1
  37. package/dist/components/location/snice-location.js +1 -1
  38. package/dist/components/location/snice-location.js.map +1 -1
  39. package/dist/components/login/snice-login.js +4 -4
  40. package/dist/components/login/snice-login.js.map +1 -1
  41. package/dist/components/menu/snice-menu-item.js +1 -1
  42. package/dist/components/menu/snice-menu-item.js.map +1 -1
  43. package/dist/components/menu/snice-menu.js +3 -3
  44. package/dist/components/menu/snice-menu.js.map +1 -1
  45. package/dist/components/modal/snice-modal.js +2 -2
  46. package/dist/components/modal/snice-modal.js.map +1 -1
  47. package/dist/components/music-player/snice-music-player.js +10 -10
  48. package/dist/components/music-player/snice-music-player.js.map +1 -1
  49. package/dist/components/pagination/snice-pagination.js +1 -1
  50. package/dist/components/pagination/snice-pagination.js.map +1 -1
  51. package/dist/components/qr-reader/snice-qr-reader.js +3 -3
  52. package/dist/components/qr-reader/snice-qr-reader.js.map +1 -1
  53. package/dist/components/radio/snice-radio.js +1 -1
  54. package/dist/components/radio/snice-radio.js.map +1 -1
  55. package/dist/components/select/snice-select.js +3 -3
  56. package/dist/components/select/snice-select.js.map +1 -1
  57. package/dist/components/slider/snice-slider.js +2 -2
  58. package/dist/components/slider/snice-slider.js.map +1 -1
  59. package/dist/components/split-pane/snice-split-pane.js +1 -1
  60. package/dist/components/split-pane/snice-split-pane.js.map +1 -1
  61. package/dist/components/switch/snice-switch.js +1 -1
  62. package/dist/components/switch/snice-switch.js.map +1 -1
  63. package/dist/components/table/snice-cell-actions.js +1 -1
  64. package/dist/components/table/snice-cell-actions.js.map +1 -1
  65. package/dist/components/table/snice-column.js +1 -1
  66. package/dist/components/table/snice-column.js.map +1 -1
  67. package/dist/components/table/snice-header.js +3 -3
  68. package/dist/components/table/snice-header.js.map +1 -1
  69. package/dist/components/table/snice-row.js +3 -3
  70. package/dist/components/table/snice-row.js.map +1 -1
  71. package/dist/components/table/snice-table.js +3 -3
  72. package/dist/components/table/snice-table.js.map +1 -1
  73. package/dist/components/tabs/snice-tab.js +2 -2
  74. package/dist/components/tabs/snice-tab.js.map +1 -1
  75. package/dist/components/tabs/snice-tabs.js +2 -2
  76. package/dist/components/tabs/snice-tabs.js.map +1 -1
  77. package/dist/components/terminal/snice-terminal.js +3 -3
  78. package/dist/components/terminal/snice-terminal.js.map +1 -1
  79. package/dist/components/textarea/snice-textarea.js +4 -4
  80. package/dist/components/textarea/snice-textarea.js.map +1 -1
  81. package/dist/components/timer/snice-timer.js +4 -4
  82. package/dist/components/timer/snice-timer.js.map +1 -1
  83. package/dist/components/tree/snice-tree-item.js +1 -1
  84. package/dist/components/tree/snice-tree-item.js.map +1 -1
  85. package/dist/components/tree/snice-tree.js +5 -5
  86. package/dist/components/tree/snice-tree.js.map +1 -1
  87. package/dist/index.cjs +7 -3
  88. package/dist/index.cjs.map +1 -1
  89. package/dist/index.esm.js +7 -3
  90. package/dist/index.esm.js.map +1 -1
  91. package/dist/index.iife.js +7 -3
  92. package/dist/index.iife.js.map +1 -1
  93. package/dist/symbols.cjs +1 -1
  94. package/dist/symbols.esm.js +1 -1
  95. package/dist/transitions.cjs +1 -1
  96. package/dist/transitions.esm.js +1 -1
  97. package/docs/ai/components/audio-recorder.md +6 -6
  98. package/docs/ai/components/calendar.md +2 -2
  99. package/docs/ai/components/camera.md +5 -5
  100. package/docs/ai/components/carousel.md +1 -1
  101. package/docs/ai/components/color-picker.md +1 -1
  102. package/docs/ai/components/command-palette.md +6 -6
  103. package/docs/ai/components/draw.md +5 -5
  104. package/docs/ai/components/drawer.md +2 -2
  105. package/docs/ai/components/empty-state.md +1 -1
  106. package/docs/ai/components/file-gallery.md +3 -3
  107. package/docs/ai/components/file-upload.md +2 -2
  108. package/docs/ai/components/kanban.md +3 -3
  109. package/docs/ai/components/menu.md +3 -3
  110. package/docs/ai/components/modal.md +2 -2
  111. package/docs/ai/components/music-player.md +9 -9
  112. package/docs/ai/components/pagination.md +2 -2
  113. package/docs/ai/components/qr-reader.md +4 -4
  114. package/docs/ai/components/select.md +4 -4
  115. package/docs/ai/components/slider.md +1 -1
  116. package/docs/ai/components/split-pane.md +1 -1
  117. package/docs/ai/components/switch.md +2 -2
  118. package/docs/ai/components/tabs.md +4 -4
  119. package/docs/ai/components/terminal.md +1 -1
  120. package/docs/ai/components/timer.md +4 -4
  121. package/docs/ai/components/tree.md +7 -7
  122. package/docs/components/audio-recorder.md +7 -7
  123. package/docs/components/banner.md +4 -4
  124. package/docs/components/calendar.md +11 -11
  125. package/docs/components/camera.md +9 -9
  126. package/docs/components/carousel.md +1 -1
  127. package/docs/components/color-picker.md +1 -1
  128. package/docs/components/command-palette.md +6 -6
  129. package/docs/components/draw.md +6 -6
  130. package/docs/components/drawer.md +6 -6
  131. package/docs/components/empty-state.md +1 -1
  132. package/docs/components/file-gallery.md +18 -18
  133. package/docs/components/file-upload.md +7 -7
  134. package/docs/components/kanban.md +7 -7
  135. package/docs/components/menu.md +11 -11
  136. package/docs/components/modal.md +7 -7
  137. package/docs/components/music-player.md +16 -16
  138. package/docs/components/pagination.md +5 -5
  139. package/docs/components/qr-reader.md +12 -12
  140. package/docs/components/select.md +9 -9
  141. package/docs/components/slider.md +6 -6
  142. package/docs/components/split-pane.md +2 -2
  143. package/docs/components/switch.md +4 -4
  144. package/docs/components/tabs.md +10 -10
  145. package/docs/components/terminal.md +6 -6
  146. package/docs/components/textarea.md +7 -7
  147. package/docs/components/timer.md +8 -8
  148. package/docs/components/tree.md +9 -9
  149. package/package.json +1 -1
package/dist/symbols.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * snice v3.10.5
2
+ * snice v4.0.0
3
3
  * Imperative TypeScript framework for building vanilla web components with decorators, differential rendering, routing, and controllers. No virtual DOM, no build complexity.
4
4
  * (c) 2024
5
5
  * Released under the MIT License.
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * snice v3.10.5
2
+ * snice v4.0.0
3
3
  * Imperative TypeScript framework for building vanilla web components with decorators, differential rendering, routing, and controllers. No virtual DOM, no build complexity.
4
4
  * (c) 2024
5
5
  * Released under the MIT License.
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * snice v3.10.5
2
+ * snice v4.0.0
3
3
  * Imperative TypeScript framework for building vanilla web components with decorators, differential rendering, routing, and controllers. No virtual DOM, no build complexity.
4
4
  * (c) 2024
5
5
  * Released under the MIT License.
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * snice v3.10.5
2
+ * snice v4.0.0
3
3
  * Imperative TypeScript framework for building vanilla web components with decorators, differential rendering, routing, and controllers. No virtual DOM, no build complexity.
4
4
  * (c) 2024
5
5
  * Released under the MIT License.
@@ -43,12 +43,12 @@ interface AudioRecording {
43
43
 
44
44
  ## Events
45
45
 
46
- - `@snice/recorder-start` - Recording started
47
- - `@snice/recorder-stop` - Recording stopped
48
- - `@snice/recorder-pause` - Paused
49
- - `@snice/recorder-resume` - Resumed
50
- - `@snice/recorder-cancel` - Cancelled
51
- - `@snice/recorder-error` - Error
46
+ - `recorder-start` - Recording started
47
+ - `recorder-stop` - Recording stopped
48
+ - `recorder-pause` - Paused
49
+ - `recorder-resume` - Resumed
50
+ - `recorder-cancel` - Cancelled
51
+ - `recorder-error` - Error
52
52
 
53
53
  ## Usage
54
54
 
@@ -47,8 +47,8 @@ getEventsForDate(date: Date | string): CalendarEvent[]
47
47
 
48
48
  ## Events
49
49
 
50
- - `@snice/calendar-change` - Date selected (detail: { value, calendar })
51
- - `@snice/calendar-event-click` - Event clicked (detail: { event, calendar })
50
+ - `calendar-change` - Date selected (detail: { value, calendar })
51
+ - `calendar-event-click` - Event clicked (detail: { event, calendar })
52
52
 
53
53
  ## Usage
54
54
 
@@ -54,10 +54,10 @@ interface CapturedImage {
54
54
 
55
55
  ## Events
56
56
 
57
- - `@snice/camera-start` - Camera started (detail: { stream })
58
- - `@snice/camera-stop` - Camera stopped
59
- - `@snice/camera-capture` - Photo captured (detail: { image })
60
- - `@snice/camera-error` - Error occurred (detail: { error })
57
+ - `camera-start` - Camera started (detail: { stream })
58
+ - `camera-stop` - Camera stopped
59
+ - `camera-capture` - Photo captured (detail: { image })
60
+ - `camera-error` - Error occurred (detail: { error })
61
61
 
62
62
  ## Slots
63
63
 
@@ -114,7 +114,7 @@ const image = await camera.capture();
114
114
  await camera.switchCamera();
115
115
 
116
116
  // Events
117
- camera.addEventListener('@snice/camera-capture', (e) => {
117
+ camera.addEventListener('camera-capture', (e) => {
118
118
  const img = e.detail.image;
119
119
  console.log(img.dataURL);
120
120
  });
@@ -23,7 +23,7 @@ spaceBetween: number = 0;
23
23
 
24
24
  ## Events
25
25
 
26
- - `@snice/carousel-slide-change` (detail: { activeIndex, previousIndex, carousel })
26
+ - `carousel-slide-change` (detail: { activeIndex, previousIndex, carousel })
27
27
 
28
28
  ## Usage
29
29
 
@@ -58,7 +58,7 @@ presets: string[] = [...];
58
58
  <snice-color-picker id="picker"></snice-color-picker>
59
59
  <script>
60
60
  const picker = document.querySelector('#picker');
61
- picker.addEventListener('@snice/color-picker-change', (e) => {
61
+ picker.addEventListener('color-picker-change', (e) => {
62
62
  console.log('Color:', e.detail.value);
63
63
  });
64
64
  </script>
@@ -45,11 +45,11 @@ interface CommandItem {
45
45
 
46
46
  ## Events
47
47
 
48
- - `@snice/command-palette-open` - Opened (detail: { palette })
49
- - `@snice/command-palette-close` - Closed (detail: { palette })
50
- - `@snice/command-select` - Command selected (detail: { command, palette })
51
- - `@snice/command-execute` - Command executed (detail: { command, palette })
52
- - `@snice/command-search` - Search changed (detail: { query, results, palette })
48
+ - `command-palette-open` - Opened (detail: { palette })
49
+ - `command-palette-close` - Closed (detail: { palette })
50
+ - `command-select` - Command selected (detail: { command, palette })
51
+ - `command-execute` - Command executed (detail: { command, palette })
52
+ - `command-search` - Search changed (detail: { query, results, palette })
53
53
 
54
54
  ## Usage
55
55
 
@@ -97,7 +97,7 @@ interface CommandItem {
97
97
 
98
98
  <!-- Events -->
99
99
  <script>
100
- palette.addEventListener('@snice/command-execute', (e) => {
100
+ palette.addEventListener('command-execute', (e) => {
101
101
  console.log('Executed:', e.detail.command.label);
102
102
  });
103
103
  </script>
@@ -49,11 +49,11 @@ interface DrawStroke {
49
49
 
50
50
  ## Events
51
51
 
52
- - `@snice/draw-start` - Drawing started
53
- - `@snice/draw-end` - Stroke completed (detail: { stroke })
54
- - `@snice/draw-clear` - Canvas cleared
55
- - `@snice/draw-undo` - Undo performed
56
- - `@snice/draw-redo` - Redo performed
52
+ - `draw-start` - Drawing started
53
+ - `draw-end` - Stroke completed (detail: { stroke })
54
+ - `draw-clear` - Canvas cleared
55
+ - `draw-undo` - Undo performed
56
+ - `draw-redo` - Redo performed
57
57
 
58
58
  ## Usage
59
59
 
@@ -28,8 +28,8 @@ toggle() // Toggle drawer
28
28
  ## Events
29
29
 
30
30
  ```typescript
31
- '@snice/drawer-open' // { drawer }
32
- '@snice/drawer-close' // { drawer }
31
+ 'drawer-open' // { drawer }
32
+ 'drawer-close' // { drawer }
33
33
  ```
34
34
 
35
35
  ## Slots
@@ -52,7 +52,7 @@ actionHref: string = '';
52
52
  <!-- Events -->
53
53
  <snice-empty-state id="empty" action-text="Click"></snice-empty-state>
54
54
  <script>
55
- document.querySelector('#empty').addEventListener('@snice/empty-state-action', () => {
55
+ document.querySelector('#empty').addEventListener('empty-state-action', () => {
56
56
  console.log('Action clicked');
57
57
  });
58
58
  </script>
@@ -172,7 +172,7 @@ const icon = '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor">...</sv
172
172
  const actionId = gallery.addCustomAction(icon, 'Camera');
173
173
 
174
174
  // Handle custom action
175
- gallery.addEventListener('@snice/custom-action-click', (e) => {
175
+ gallery.addEventListener('custom-action-click', (e) => {
176
176
  if (e.detail.actionId === actionId) {
177
177
  // Handle camera action
178
178
  const file = capturePhoto(); // your implementation
@@ -181,10 +181,10 @@ gallery.addEventListener('@snice/custom-action-click', (e) => {
181
181
  });
182
182
 
183
183
  // Other events
184
- gallery.addEventListener('@snice/files-change', (e) => {
184
+ gallery.addEventListener('files-change', (e) => {
185
185
  console.log('Files:', e.detail.files);
186
186
  });
187
- gallery.addEventListener('@snice/upload-complete', (e) => {
187
+ gallery.addEventListener('upload-complete', (e) => {
188
188
  console.log('Complete:', e.detail.url);
189
189
  });
190
190
 
@@ -71,10 +71,10 @@ files: FileList | null;
71
71
  <snice-file-upload id="upload"></snice-file-upload>
72
72
  <script>
73
73
  const upload = document.querySelector('#upload');
74
- upload.addEventListener('@snice/file-upload-change', (e) => {
74
+ upload.addEventListener('file-upload-change', (e) => {
75
75
  console.log('Files:', e.detail.files);
76
76
  });
77
- upload.addEventListener('@snice/file-upload-error', (e) => {
77
+ upload.addEventListener('file-upload-error', (e) => {
78
78
  console.error('Error:', e.detail.message);
79
79
  });
80
80
  </script>
@@ -58,8 +58,8 @@ clearFilters(): void
58
58
 
59
59
  ## Events
60
60
 
61
- - `@snice/kanban-card-move` - Card moved (detail: { card, fromColumn, toColumn, kanban })
62
- - `@snice/kanban-card-click` - Card clicked (detail: { card, kanban })
61
+ - `kanban-card-move` - Card moved (detail: { card, fromColumn, toColumn, kanban })
62
+ - `kanban-card-click` - Card clicked (detail: { card, kanban })
63
63
 
64
64
  ## Usage
65
65
 
@@ -97,7 +97,7 @@ kanban.search('landing page');
97
97
  kanban.clearFilters();
98
98
 
99
99
  // Events
100
- kanban.addEventListener('@snice/kanban-card-move', (e) => {
100
+ kanban.addEventListener('kanban-card-move', (e) => {
101
101
  console.log(`Moved ${e.detail.card.title}`);
102
102
  });
103
103
  ```
@@ -25,8 +25,8 @@ distance: number = 4;
25
25
 
26
26
  ## Events
27
27
 
28
- - `@snice/menu-open` - Fired when menu opens (detail: { menu: SniceMenuElement })
29
- - `@snice/menu-close` - Fired when menu closes (detail: { menu: SniceMenuElement })
28
+ - `menu-open` - Fired when menu opens (detail: { menu: SniceMenuElement })
29
+ - `menu-close` - Fired when menu closes (detail: { menu: SniceMenuElement })
30
30
 
31
31
  ## Usage
32
32
 
@@ -95,7 +95,7 @@ selected: boolean = false;
95
95
 
96
96
  ### Events
97
97
 
98
- - `@snice/menu-item-select` - Fired when item is clicked (detail: { item: SniceMenuItemElement, value: string })
98
+ - `menu-item-select` - Fired when item is clicked (detail: { item: SniceMenuItemElement, value: string })
99
99
 
100
100
  ## snice-menu-divider
101
101
 
@@ -24,8 +24,8 @@ close() // Close modal
24
24
  ## Events
25
25
 
26
26
  ```typescript
27
- '@snice/modal-open' // { modal }
28
- '@snice/modal-close' // { modal }
27
+ 'modal-open' // { modal }
28
+ 'modal-close' // { modal }
29
29
  ```
30
30
 
31
31
  ## Slots
@@ -56,16 +56,16 @@ interface Track {
56
56
 
57
57
  ## Events
58
58
 
59
- - `@snice/player-play` - Playback started
60
- - `@snice/player-pause` - Playback paused
61
- - `@snice/player-stop` - Playback stopped
62
- - `@snice/player-track-change` - Track changed
63
- - `@snice/player-track-ended` - Track ended
64
- - `@snice/player-shuffle-change` - Shuffle changed
65
- - `@snice/player-repeat-change` - Repeat mode changed
66
- - `@snice/player-volume-change` - Volume changed
59
+ - `player-play` - Playback started
60
+ - `player-pause` - Playback paused
61
+ - `player-stop` - Playback stopped
62
+ - `player-track-change` - Track changed
63
+ - `player-track-ended` - Track ended
64
+ - `player-shuffle-change` - Shuffle changed
65
+ - `player-repeat-change` - Repeat mode changed
66
+ - `player-volume-change` - Volume changed
67
67
  - `@snice/player-time-update` - Time updated
68
- - `@snice/player-error` - Error occurred
68
+ - `player-error` - Error occurred
69
69
 
70
70
  ## Usage
71
71
 
@@ -29,7 +29,7 @@ lastPage() // Last page
29
29
  ## Events
30
30
 
31
31
  ```typescript
32
- '@snice/pagination-change' // { page, previousPage }
32
+ 'pagination-change' // { page, previousPage }
33
33
  ```
34
34
 
35
35
  ## Usage
@@ -39,7 +39,7 @@ lastPage() // Last page
39
39
  ```
40
40
 
41
41
  ```typescript
42
- pagination.addEventListener('@snice/pagination-change', (e) => {
42
+ pagination.addEventListener('pagination-change', (e) => {
43
43
  console.log(e.detail.page);
44
44
  });
45
45
  ```
@@ -18,17 +18,17 @@ QR code scanner using device camera and ZXing WASM decoder.
18
18
  - `snap()` - Take snapshot (manual-snap mode)
19
19
 
20
20
  ### Events
21
- - `@snice/qr-scan` - detail: `{data: string, timestamp: number, reader: SniceQRReader}`
22
- - `@snice/qr-error` - detail: `{error: any, reader: SniceQRReader}`
21
+ - `qr-scan` - detail: `{data: string, timestamp: number, reader: SniceQRReader}`
22
+ - `qr-error` - detail: `{error: any, reader: SniceQRReader}`
23
23
  - `@snice/camera-ready` - detail: `{reader: SniceQRReader}`
24
- - `@snice/camera-error` - detail: `{error: any, reader: SniceQRReader}`
24
+ - `camera-error` - detail: `{error: any, reader: SniceQRReader}`
25
25
 
26
26
  ## Usage
27
27
 
28
28
  ```html
29
29
  <snice-qr-reader auto-start></snice-qr-reader>
30
30
  <script>
31
- reader.addEventListener('@snice/qr-scan', e => console.log(e.detail.data));
31
+ reader.addEventListener('qr-scan', e => console.log(e.detail.data));
32
32
  </script>
33
33
  ```
34
34
 
@@ -36,9 +36,9 @@ blur() // Blur and close
36
36
 
37
37
  **Events:**
38
38
  ```typescript
39
- '@snice/select-change' // { value, option, select }
40
- '@snice/select-open' // { select }
41
- '@snice/select-close' // { select }
39
+ 'select-change' // { value, option, select }
40
+ 'select-open' // { select }
41
+ 'select-close' // { select }
42
42
  ```
43
43
 
44
44
  ### snice-option (Option Item)
@@ -66,7 +66,7 @@ optionData // { value, label, disabled, selected, icon }
66
66
  ```
67
67
 
68
68
  ```typescript
69
- select.addEventListener('@snice/select-change', (e) => {
69
+ select.addEventListener('select-change', (e) => {
70
70
  console.log(e.detail.value);
71
71
  });
72
72
 
@@ -67,7 +67,7 @@ vertical: boolean = false;
67
67
  <snice-slider id="slider"></snice-slider>
68
68
  <script>
69
69
  const slider = document.querySelector('#slider');
70
- slider.addEventListener('@snice/slider-change', (e) => {
70
+ slider.addEventListener('slider-change', (e) => {
71
71
  console.log('Value:', e.detail.value);
72
72
  });
73
73
  </script>
@@ -24,7 +24,7 @@ reset(): void
24
24
 
25
25
  ## Events
26
26
 
27
- - `@snice/resize` - Dispatched on resize (detail: { primarySize, secondarySize, splitPane })
27
+ - `pane-resize` - Dispatched on resize (detail: { primarySize, secondarySize, splitPane })
28
28
 
29
29
  ## Usage
30
30
 
@@ -29,7 +29,7 @@ click() // Programmatic click
29
29
  ## Events
30
30
 
31
31
  ```typescript
32
- '@snice/switch-change' // { checked, switch }
32
+ 'switch-change' // { checked, switch }
33
33
  ```
34
34
 
35
35
  ## Usage
@@ -39,7 +39,7 @@ click() // Programmatic click
39
39
  ```
40
40
 
41
41
  ```typescript
42
- switchEl.addEventListener('@snice/switch-change', (e) => {
42
+ switchEl.addEventListener('switch-change', (e) => {
43
43
  console.log(e.detail.checked);
44
44
  });
45
45
  ```
@@ -23,7 +23,7 @@ getPanel(index: number) // Get panel element
23
23
 
24
24
  **Events:**
25
25
  ```typescript
26
- '@snice/tab-change' // { index, oldIndex, tab, panel }
26
+ 'tab-change' // { index, oldIndex, tab, panel }
27
27
  ```
28
28
 
29
29
  ### snice-tab (Tab Button)
@@ -41,8 +41,8 @@ blur() // Remove focus
41
41
 
42
42
  **Events:**
43
43
  ```typescript
44
- '@snice/tab-select' // { tab }
45
- '@snice/close' // { tab }
44
+ 'tab-select' // { tab }
45
+ 'tab-close' // { tab }
46
46
  ```
47
47
 
48
48
  ### snice-tab-panel (Content Panel)
@@ -68,7 +68,7 @@ transitionDuration: number = 300; // Transition duration (ms)
68
68
  ```
69
69
 
70
70
  ```typescript
71
- tabs.addEventListener('@snice/tab-change', (e) => {
71
+ tabs.addEventListener('tab-change', (e) => {
72
72
  console.log(e.detail.index);
73
73
  });
74
74
 
@@ -122,7 +122,7 @@ interface TerminalCommandResponse {
122
122
  const terminal = document.querySelector('snice-terminal');
123
123
 
124
124
  // Listen for commands (event pattern)
125
- terminal.addEventListener('@snice/terminal-command', (e) => {
125
+ terminal.addEventListener('terminal-command', (e) => {
126
126
  console.log('Command:', e.detail.command, e.detail.args);
127
127
  });
128
128
 
@@ -17,10 +17,10 @@
17
17
  - `getTime()`: Get current time in seconds
18
18
 
19
19
  ## Events
20
- - `@snice/timer-start`: { timer, time }
21
- - `@snice/timer-stop`: { timer, time }
22
- - `@snice/timer-reset`: { timer, time }
23
- - `@snice/timer-complete`: { timer } - Countdown reached 0
20
+ - `timer-start`: { timer, time }
21
+ - `timer-stop`: { timer, time }
22
+ - `timer-reset`: { timer, time }
23
+ - `timer-complete`: { timer } - Countdown reached 0
24
24
 
25
25
  ## Implementation
26
26
  - Uses requestAnimationFrame for smooth updates
@@ -58,11 +58,11 @@ interface TreeNode {
58
58
 
59
59
  ## Events
60
60
 
61
- - `@snice/tree-node-expand` - Node expanded (detail: { nodeId, node, tree })
62
- - `@snice/tree-node-collapse` - Node collapsed (detail: { nodeId, node, tree })
63
- - `@snice/tree-node-select` - Node selected (detail: { nodeId, node, selectedNodes, tree })
64
- - `@snice/tree-node-check` - Node checked/unchecked (detail: { nodeId, node, checked, checkedNodes, tree })
65
- - `@snice/tree-node-lazy-load` - Lazy node expanded (detail: { nodeId, node, tree })
61
+ - `tree-node-expand` - Node expanded (detail: { nodeId, node, tree })
62
+ - `tree-node-collapse` - Node collapsed (detail: { nodeId, node, tree })
63
+ - `tree-node-select` - Node selected (detail: { nodeId, node, selectedNodes, tree })
64
+ - `tree-node-check` - Node checked/unchecked (detail: { nodeId, node, checked, checkedNodes, tree })
65
+ - `tree-node-lazy-load` - Lazy node expanded (detail: { nodeId, node, tree })
66
66
 
67
67
  ## Usage
68
68
 
@@ -114,7 +114,7 @@ interface TreeNode {
114
114
  <snice-tree id="tree"></snice-tree>
115
115
  <script>
116
116
  const tree = document.getElementById('tree');
117
- tree.addEventListener('@snice/tree-node-select', (e) => {
117
+ tree.addEventListener('tree-node-select', (e) => {
118
118
  console.log('Selected:', e.detail.node.label);
119
119
  console.log('All selected:', e.detail.selectedNodes.map(n => n.label));
120
120
  });
@@ -134,7 +134,7 @@ interface TreeNode {
134
134
  }
135
135
  ];
136
136
 
137
- lazyTree.addEventListener('@snice/tree-node-lazy-load', async (e) => {
137
+ lazyTree.addEventListener('tree-node-lazy-load', async (e) => {
138
138
  const node = e.detail.node;
139
139
  const data = await fetch(`/api/nodes/${node.id}`).then(r => r.json());
140
140
 
@@ -11,7 +11,7 @@ Record audio with visualization, pause/resume, and playback.
11
11
  const recorder = document.getElementById('recorder');
12
12
 
13
13
  // Listen for stop event
14
- recorder.addEventListener('@snice/recorder-stop', async () => {
14
+ recorder.addEventListener('recorder-stop', async () => {
15
15
  // Recording complete
16
16
  });
17
17
  </script>
@@ -67,12 +67,12 @@ Download recorded audio.
67
67
 
68
68
  ## Events
69
69
 
70
- - `@snice/recorder-start` - Recording started
71
- - `@snice/recorder-stop` - Recording stopped
72
- - `@snice/recorder-pause` - Recording paused
73
- - `@snice/recorder-resume` - Recording resumed
74
- - `@snice/recorder-cancel` - Recording cancelled
75
- - `@snice/recorder-error` - Error occurred
70
+ - `recorder-start` - Recording started
71
+ - `recorder-stop` - Recording stopped
72
+ - `recorder-pause` - Recording paused
73
+ - `recorder-resume` - Recording resumed
74
+ - `recorder-cancel` - Recording cancelled
75
+ - `recorder-error` - Error occurred
76
76
 
77
77
  ## Examples
78
78
 
@@ -37,13 +37,13 @@ Toggle banner visibility.
37
37
 
38
38
  ## Events
39
39
 
40
- ### `@snice/banner-open`
40
+ ### `banner-open`
41
41
  Fired when banner opens.
42
42
 
43
- ### `@snice/banner-close`
43
+ ### `banner-close`
44
44
  Fired when banner closes.
45
45
 
46
- ### `@snice/banner-action`
46
+ ### `banner-action`
47
47
  Fired when action button is clicked.
48
48
 
49
49
  ## Examples
@@ -67,7 +67,7 @@ Fired when action button is clicked.
67
67
  ></snice-banner>
68
68
 
69
69
  <script>
70
- document.querySelector('snice-banner').addEventListener('@snice/banner-action', () => {
70
+ document.querySelector('snice-banner').addEventListener('banner-action', () => {
71
71
  console.log('Update clicked');
72
72
  });
73
73
  </script>
@@ -11,7 +11,7 @@ Display and select dates with event support.
11
11
  ```javascript
12
12
  const calendar = document.querySelector('snice-calendar');
13
13
 
14
- calendar.addEventListener('@snice/calendar-change', (e) => {
14
+ calendar.addEventListener('calendar-change', (e) => {
15
15
  console.log('Selected date:', e.detail.value);
16
16
  });
17
17
  ```
@@ -120,22 +120,22 @@ console.log(`Today has ${events.length} events`);
120
120
 
121
121
  ## Events
122
122
 
123
- ### `@snice/calendar-change`
123
+ ### `calendar-change`
124
124
  Dispatched when selected date changes.
125
125
 
126
126
  ```javascript
127
- calendar.addEventListener('@snice/calendar-change', (e) => {
127
+ calendar.addEventListener('calendar-change', (e) => {
128
128
  console.log('Selected:', e.detail.value);
129
129
  });
130
130
  ```
131
131
 
132
132
  **Detail:** `{ value: Date, calendar: SniceCalendarElement }`
133
133
 
134
- ### `@snice/calendar-event-click`
134
+ ### `calendar-event-click`
135
135
  Dispatched when event is clicked.
136
136
 
137
137
  ```javascript
138
- calendar.addEventListener('@snice/calendar-event-click', (e) => {
138
+ calendar.addEventListener('calendar-event-click', (e) => {
139
139
  console.log('Event clicked:', e.detail.event);
140
140
  });
141
141
  ```
@@ -226,13 +226,13 @@ calendar.nextMonth();
226
226
 
227
227
  ```javascript
228
228
  // Date selection
229
- calendar.addEventListener('@snice/calendar-change', (e) => {
229
+ calendar.addEventListener('calendar-change', (e) => {
230
230
  console.log('Date selected:', e.detail.value);
231
231
  updateBookingForm(e.detail.value);
232
232
  });
233
233
 
234
234
  // Event clicks
235
- calendar.addEventListener('@snice/calendar-event-click', (e) => {
235
+ calendar.addEventListener('calendar-event-click', (e) => {
236
236
  showEventDetails(e.detail.event);
237
237
  });
238
238
  ```
@@ -256,7 +256,7 @@ const fullyBooked = await getFullyBookedDates();
256
256
  calendar.disabledDates = fullyBooked;
257
257
 
258
258
  // Handle new booking
259
- calendar.addEventListener('@snice/calendar-change', (e) => {
259
+ calendar.addEventListener('calendar-change', (e) => {
260
260
  if (hasAvailability(e.detail.value)) {
261
261
  showBookingForm(e.detail.value);
262
262
  }
@@ -290,7 +290,7 @@ calendar.events = teamMeetings.map(m => ({
290
290
  }));
291
291
 
292
292
  // Click to see meeting details
293
- calendar.addEventListener('@snice/calendar-event-click', (e) => {
293
+ calendar.addEventListener('calendar-event-click', (e) => {
294
294
  const meeting = e.detail.event;
295
295
  showModal({
296
296
  title: meeting.title,
@@ -312,7 +312,7 @@ calendar.minDate = today;
312
312
  calendar.maxDate = new Date(today.getFullYear(), today.getMonth() + 3, 0);
313
313
 
314
314
  // Handle selection
315
- calendar.addEventListener('@snice/calendar-change', (e) => {
315
+ calendar.addEventListener('calendar-change', (e) => {
316
316
  checkAvailability(e.detail.value).then(slots => {
317
317
  if (slots.length > 0) {
318
318
  showTimeSlots(slots);
@@ -355,7 +355,7 @@ calendar.events = vacations.map(v => ({
355
355
  calendar.disabledDates = companyHolidays;
356
356
 
357
357
  // Request new vacation
358
- calendar.addEventListener('@snice/calendar-change', (e) => {
358
+ calendar.addEventListener('calendar-change', (e) => {
359
359
  if (canRequestVacation(e.detail.value)) {
360
360
  showVacationRequestForm(e.detail.value);
361
361
  }