snice 3.10.5 → 4.0.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 (151) hide show
  1. package/bin/templates/CLAUDE.md +7 -7
  2. package/dist/components/audio-recorder/snice-audio-recorder.js +6 -6
  3. package/dist/components/audio-recorder/snice-audio-recorder.js.map +1 -1
  4. package/dist/components/banner/snice-banner.js +3 -3
  5. package/dist/components/banner/snice-banner.js.map +1 -1
  6. package/dist/components/button/snice-button.js +1 -1
  7. package/dist/components/calendar/snice-calendar.js +2 -2
  8. package/dist/components/calendar/snice-calendar.js.map +1 -1
  9. package/dist/components/camera/snice-camera.d.ts +2 -0
  10. package/dist/components/camera/snice-camera.js +26 -7
  11. package/dist/components/camera/snice-camera.js.map +1 -1
  12. package/dist/components/carousel/snice-carousel.js +1 -1
  13. package/dist/components/carousel/snice-carousel.js.map +1 -1
  14. package/dist/components/checkbox/snice-checkbox.js +3 -3
  15. package/dist/components/checkbox/snice-checkbox.js.map +1 -1
  16. package/dist/components/color-picker/snice-color-picker.js +4 -4
  17. package/dist/components/color-picker/snice-color-picker.js.map +1 -1
  18. package/dist/components/command-palette/snice-command-palette.js +5 -5
  19. package/dist/components/command-palette/snice-command-palette.js.map +1 -1
  20. package/dist/components/date-picker/snice-date-picker.js +8 -8
  21. package/dist/components/date-picker/snice-date-picker.js.map +1 -1
  22. package/dist/components/draw/snice-draw.js +5 -5
  23. package/dist/components/draw/snice-draw.js.map +1 -1
  24. package/dist/components/drawer/snice-drawer.js +2 -2
  25. package/dist/components/drawer/snice-drawer.js.map +1 -1
  26. package/dist/components/empty-state/snice-empty-state.js +1 -1
  27. package/dist/components/empty-state/snice-empty-state.js.map +1 -1
  28. package/dist/components/file-gallery/snice-file-gallery.d.ts +1 -1
  29. package/dist/components/file-gallery/snice-file-gallery.js +20 -20
  30. package/dist/components/file-gallery/snice-file-gallery.js.map +1 -1
  31. package/dist/components/file-gallery/snice-file-gallery.types.d.ts +0 -1
  32. package/dist/components/file-upload/snice-file-upload.js +2 -2
  33. package/dist/components/file-upload/snice-file-upload.js.map +1 -1
  34. package/dist/components/input/snice-input.js +5 -5
  35. package/dist/components/input/snice-input.js.map +1 -1
  36. package/dist/components/kanban/snice-kanban.js +2 -2
  37. package/dist/components/kanban/snice-kanban.js.map +1 -1
  38. package/dist/components/location/snice-location.js +1 -1
  39. package/dist/components/location/snice-location.js.map +1 -1
  40. package/dist/components/login/snice-login.js +4 -4
  41. package/dist/components/login/snice-login.js.map +1 -1
  42. package/dist/components/menu/snice-menu-item.js +1 -1
  43. package/dist/components/menu/snice-menu-item.js.map +1 -1
  44. package/dist/components/menu/snice-menu.js +3 -3
  45. package/dist/components/menu/snice-menu.js.map +1 -1
  46. package/dist/components/modal/snice-modal.js +2 -2
  47. package/dist/components/modal/snice-modal.js.map +1 -1
  48. package/dist/components/music-player/snice-music-player.js +10 -10
  49. package/dist/components/music-player/snice-music-player.js.map +1 -1
  50. package/dist/components/pagination/snice-pagination.js +1 -1
  51. package/dist/components/pagination/snice-pagination.js.map +1 -1
  52. package/dist/components/qr-reader/snice-qr-reader.js +3 -3
  53. package/dist/components/qr-reader/snice-qr-reader.js.map +1 -1
  54. package/dist/components/radio/snice-radio.js +1 -1
  55. package/dist/components/radio/snice-radio.js.map +1 -1
  56. package/dist/components/select/snice-select.js +3 -3
  57. package/dist/components/select/snice-select.js.map +1 -1
  58. package/dist/components/slider/snice-slider.js +2 -2
  59. package/dist/components/slider/snice-slider.js.map +1 -1
  60. package/dist/components/split-pane/snice-split-pane.js +1 -1
  61. package/dist/components/split-pane/snice-split-pane.js.map +1 -1
  62. package/dist/components/switch/snice-switch.js +1 -1
  63. package/dist/components/switch/snice-switch.js.map +1 -1
  64. package/dist/components/table/snice-cell-actions.js +1 -1
  65. package/dist/components/table/snice-cell-actions.js.map +1 -1
  66. package/dist/components/table/snice-column.js +1 -1
  67. package/dist/components/table/snice-column.js.map +1 -1
  68. package/dist/components/table/snice-header.js +3 -3
  69. package/dist/components/table/snice-header.js.map +1 -1
  70. package/dist/components/table/snice-row.js +3 -3
  71. package/dist/components/table/snice-row.js.map +1 -1
  72. package/dist/components/table/snice-table.js +3 -3
  73. package/dist/components/table/snice-table.js.map +1 -1
  74. package/dist/components/tabs/snice-tab.js +2 -2
  75. package/dist/components/tabs/snice-tab.js.map +1 -1
  76. package/dist/components/tabs/snice-tabs.js +2 -2
  77. package/dist/components/tabs/snice-tabs.js.map +1 -1
  78. package/dist/components/terminal/snice-terminal.js +3 -3
  79. package/dist/components/terminal/snice-terminal.js.map +1 -1
  80. package/dist/components/textarea/snice-textarea.js +4 -4
  81. package/dist/components/textarea/snice-textarea.js.map +1 -1
  82. package/dist/components/theme/theme.css +3 -0
  83. package/dist/components/timer/snice-timer.js +4 -4
  84. package/dist/components/timer/snice-timer.js.map +1 -1
  85. package/dist/components/tree/snice-tree-item.js +1 -1
  86. package/dist/components/tree/snice-tree-item.js.map +1 -1
  87. package/dist/components/tree/snice-tree.js +5 -5
  88. package/dist/components/tree/snice-tree.js.map +1 -1
  89. package/dist/index.cjs +7 -3
  90. package/dist/index.cjs.map +1 -1
  91. package/dist/index.esm.js +7 -3
  92. package/dist/index.esm.js.map +1 -1
  93. package/dist/index.iife.js +7 -3
  94. package/dist/index.iife.js.map +1 -1
  95. package/dist/symbols.cjs +1 -1
  96. package/dist/symbols.esm.js +1 -1
  97. package/dist/transitions.cjs +1 -1
  98. package/dist/transitions.esm.js +1 -1
  99. package/docs/ai/components/audio-recorder.md +6 -6
  100. package/docs/ai/components/calendar.md +2 -2
  101. package/docs/ai/components/camera.md +13 -6
  102. package/docs/ai/components/carousel.md +1 -1
  103. package/docs/ai/components/color-picker.md +1 -1
  104. package/docs/ai/components/command-palette.md +6 -6
  105. package/docs/ai/components/draw.md +5 -5
  106. package/docs/ai/components/drawer.md +2 -2
  107. package/docs/ai/components/empty-state.md +1 -1
  108. package/docs/ai/components/file-gallery.md +7 -6
  109. package/docs/ai/components/file-upload.md +2 -2
  110. package/docs/ai/components/kanban.md +3 -3
  111. package/docs/ai/components/menu.md +3 -3
  112. package/docs/ai/components/modal.md +2 -2
  113. package/docs/ai/components/music-player.md +9 -9
  114. package/docs/ai/components/pagination.md +2 -2
  115. package/docs/ai/components/qr-reader.md +4 -4
  116. package/docs/ai/components/select.md +4 -4
  117. package/docs/ai/components/slider.md +1 -1
  118. package/docs/ai/components/split-pane.md +1 -1
  119. package/docs/ai/components/switch.md +2 -2
  120. package/docs/ai/components/tabs.md +4 -4
  121. package/docs/ai/components/terminal.md +1 -1
  122. package/docs/ai/components/timer.md +4 -4
  123. package/docs/ai/components/tree.md +7 -7
  124. package/docs/components/audio-recorder.md +7 -7
  125. package/docs/components/banner.md +4 -4
  126. package/docs/components/calendar.md +11 -11
  127. package/docs/components/camera.md +33 -10
  128. package/docs/components/carousel.md +1 -1
  129. package/docs/components/color-picker.md +1 -1
  130. package/docs/components/command-palette.md +6 -6
  131. package/docs/components/draw.md +6 -6
  132. package/docs/components/drawer.md +6 -6
  133. package/docs/components/empty-state.md +1 -1
  134. package/docs/components/file-gallery.md +24 -23
  135. package/docs/components/file-upload.md +7 -7
  136. package/docs/components/kanban.md +7 -7
  137. package/docs/components/menu.md +11 -11
  138. package/docs/components/modal.md +7 -7
  139. package/docs/components/music-player.md +16 -16
  140. package/docs/components/pagination.md +5 -5
  141. package/docs/components/qr-reader.md +12 -12
  142. package/docs/components/select.md +9 -9
  143. package/docs/components/slider.md +6 -6
  144. package/docs/components/split-pane.md +2 -2
  145. package/docs/components/switch.md +4 -4
  146. package/docs/components/tabs.md +10 -10
  147. package/docs/components/terminal.md +6 -6
  148. package/docs/components/textarea.md +7 -7
  149. package/docs/components/timer.md +8 -8
  150. package/docs/components/tree.md +9 -9
  151. package/package.json +1 -1
package/dist/symbols.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * snice v3.10.4
2
+ * snice v3.11.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.4
2
+ * snice v3.11.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.4
2
+ * snice v3.11.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.4
2
+ * snice v3.11.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
 
@@ -12,7 +12,8 @@ controlsPosition: ControlsPosition = 'auto';
12
12
  showControls: boolean = true;
13
13
  width: number = 1280;
14
14
  height: number = 720;
15
- aspectRatio: string = ''; // '16:9', '4:3', '1:1', '21:9'
15
+ aspectRatio: string = ''; // '16:9', '9:16', '4:3', '1:1', '21:9'
16
+ objectFit: 'contain'|'cover' = 'contain'; // contain: full video, cover: fills frame (may crop)
16
17
  ```
17
18
 
18
19
  ## ControlsPosition
@@ -53,10 +54,10 @@ interface CapturedImage {
53
54
 
54
55
  ## Events
55
56
 
56
- - `@snice/camera-start` - Camera started (detail: { stream })
57
- - `@snice/camera-stop` - Camera stopped
58
- - `@snice/camera-capture` - Photo captured (detail: { image })
59
- - `@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 })
60
61
 
61
62
  ## Slots
62
63
 
@@ -96,6 +97,12 @@ interface CapturedImage {
96
97
 
97
98
  <!-- Square -->
98
99
  <snice-camera aspect-ratio="1:1" width="1080" height="1080"></snice-camera>
100
+
101
+ <!-- Portrait mode with cover -->
102
+ <snice-camera aspect-ratio="9:16" object-fit="cover" width="720" height="1280"></snice-camera>
103
+
104
+ <!-- Cover mode (fills container, may crop) -->
105
+ <snice-camera object-fit="cover"></snice-camera>
99
106
  ```
100
107
 
101
108
  ```javascript
@@ -107,7 +114,7 @@ const image = await camera.capture();
107
114
  await camera.switchCamera();
108
115
 
109
116
  // Events
110
- camera.addEventListener('@snice/camera-capture', (e) => {
117
+ camera.addEventListener('camera-capture', (e) => {
111
118
  const img = e.detail.image;
112
119
  console.log(img.dataURL);
113
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>
@@ -15,8 +15,8 @@ showProgress: boolean = true;
15
15
  allowPause: boolean = true;
16
16
  allowDelete: boolean = true;
17
17
  autoUpload: boolean = true;
18
- showAddButton: boolean = false; // show add button tile instead of drop zone
19
- hideAddButton: boolean = false; // hide default add button (show only custom actions)
18
+ showDropzone: boolean = true; // show drop zone for drag & drop
19
+ showAddButton: boolean = false; // show add button tile in gallery
20
20
  files: GalleryFile[]; // read-only
21
21
  ```
22
22
 
@@ -155,8 +155,9 @@ controller.attach?.(document.body);
155
155
  allow-pause="false"
156
156
  ></snice-file-gallery>
157
157
 
158
- <!-- Add button mode -->
158
+ <!-- Add button mode (hide drop zone, show add tile) -->
159
159
  <snice-file-gallery
160
+ show-dropzone="false"
160
161
  show-add-button="true"
161
162
  max-files="6"
162
163
  ></snice-file-gallery>
@@ -171,7 +172,7 @@ const icon = '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor">...</sv
171
172
  const actionId = gallery.addCustomAction(icon, 'Camera');
172
173
 
173
174
  // Handle custom action
174
- gallery.addEventListener('@snice/custom-action-click', (e) => {
175
+ gallery.addEventListener('custom-action-click', (e) => {
175
176
  if (e.detail.actionId === actionId) {
176
177
  // Handle camera action
177
178
  const file = capturePhoto(); // your implementation
@@ -180,10 +181,10 @@ gallery.addEventListener('@snice/custom-action-click', (e) => {
180
181
  });
181
182
 
182
183
  // Other events
183
- gallery.addEventListener('@snice/files-change', (e) => {
184
+ gallery.addEventListener('files-change', (e) => {
184
185
  console.log('Files:', e.detail.files);
185
186
  });
186
- gallery.addEventListener('@snice/upload-complete', (e) => {
187
+ gallery.addEventListener('upload-complete', (e) => {
187
188
  console.log('Complete:', e.detail.url);
188
189
  });
189
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>