@joewinke/jatui 0.1.33 → 0.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.
- package/CLAUDE.md +22 -0
- package/dist/actions/attention.d.ts +24 -0
- package/dist/actions/attention.js +94 -0
- package/dist/actions/floating.d.ts +53 -0
- package/dist/actions/floating.js +158 -0
- package/dist/actions/staggerEntrance.d.ts +28 -0
- package/dist/actions/staggerEntrance.js +71 -0
- package/dist/actions/tooltip.d.ts +28 -0
- package/dist/actions/tooltip.js +186 -0
- package/dist/assets/sounds/README.md +47 -0
- package/dist/assets/sounds/error.d.ts +1 -0
- package/dist/assets/sounds/error.js +4 -0
- package/dist/assets/sounds/notify.d.ts +1 -0
- package/dist/assets/sounds/notify.js +4 -0
- package/dist/assets/sounds/pop.d.ts +1 -0
- package/dist/assets/sounds/pop.js +4 -0
- package/dist/assets/sounds/send.d.ts +1 -0
- package/dist/assets/sounds/send.js +4 -0
- package/dist/assets/sounds/success.d.ts +1 -0
- package/dist/assets/sounds/success.js +4 -0
- package/dist/assets/sounds/toggle.d.ts +1 -0
- package/dist/assets/sounds/toggle.js +4 -0
- package/dist/components/AnimatedNumber.svelte +112 -0
- package/dist/components/AnimatedNumber.svelte.d.ts +8 -0
- package/dist/components/Badge.svelte +75 -4
- package/dist/components/Badge.svelte.d.ts +6 -1
- package/dist/components/Button.svelte +196 -21
- package/dist/components/Button.svelte.d.ts +10 -1
- package/dist/components/Carousel.svelte +265 -0
- package/dist/components/Carousel.svelte.d.ts +21 -0
- package/dist/components/ChipInput.svelte +63 -3
- package/dist/components/Collapse.svelte +70 -14
- package/dist/components/Collapse.svelte.d.ts +11 -0
- package/dist/components/ColorSelector.svelte +21 -24
- package/dist/components/CommandPalette.svelte +475 -0
- package/dist/components/CommandPalette.svelte.d.ts +3 -0
- package/dist/components/ContextMenu.svelte +9 -73
- package/dist/components/CopyButton.svelte +156 -0
- package/dist/components/CopyButton.svelte.d.ts +12 -0
- package/dist/components/HoldToConfirm.svelte +183 -0
- package/dist/components/HoldToConfirm.svelte.d.ts +11 -0
- package/dist/components/KeyboardShortcutsOverlay.svelte +54 -8
- package/dist/components/KeyboardShortcutsOverlay.svelte.d.ts +3 -0
- package/dist/components/PasswordMeter.svelte +87 -0
- package/dist/components/PasswordMeter.svelte.d.ts +8 -0
- package/dist/components/PinInput.svelte +186 -0
- package/dist/components/PinInput.svelte.d.ts +13 -0
- package/dist/components/QuantityStepper.svelte +185 -0
- package/dist/components/QuantityStepper.svelte.d.ts +12 -0
- package/dist/components/Skeleton.svelte +123 -0
- package/dist/components/Skeleton.svelte.d.ts +12 -0
- package/dist/components/SpeechForm.svelte +37 -0
- package/dist/components/StatusBadge.svelte +31 -3
- package/dist/components/StatusBadge.svelte.d.ts +0 -5
- package/dist/components/Tabs.svelte +270 -0
- package/dist/components/Tabs.svelte.d.ts +15 -0
- package/dist/components/TextInput.svelte +138 -38
- package/dist/components/TextInput.svelte.d.ts +9 -1
- package/dist/components/VoicePlayer.svelte +51 -0
- package/dist/components/basic/Alert.svelte +36 -0
- package/dist/components/basic/Alert.svelte.d.ts +9 -0
- package/dist/components/basic/Breadcrumb.svelte +27 -0
- package/dist/components/basic/Breadcrumb.svelte.d.ts +11 -0
- package/dist/components/basic/ButtonGroup.svelte +15 -0
- package/dist/components/basic/ButtonGroup.svelte.d.ts +8 -0
- package/dist/components/basic/Checkbox.svelte +85 -0
- package/dist/components/basic/Checkbox.svelte.d.ts +15 -0
- package/dist/components/basic/Empty.svelte +17 -0
- package/dist/components/basic/Empty.svelte.d.ts +8 -0
- package/dist/components/basic/Kbd.svelte +16 -0
- package/dist/components/basic/Kbd.svelte.d.ts +8 -0
- package/dist/components/basic/Pagination.svelte +104 -0
- package/dist/components/basic/Pagination.svelte.d.ts +12 -0
- package/dist/components/basic/RadioGroup.svelte +71 -0
- package/dist/components/basic/RadioGroup.svelte.d.ts +18 -0
- package/dist/components/basic/Separator.svelte +19 -0
- package/dist/components/basic/Separator.svelte.d.ts +8 -0
- package/dist/components/basic/Slider.svelte +72 -0
- package/dist/components/basic/Slider.svelte.d.ts +17 -0
- package/dist/components/basic/Switch.svelte +88 -0
- package/dist/components/basic/Switch.svelte.d.ts +14 -0
- package/dist/components/basic/Toggle.svelte +43 -0
- package/dist/components/basic/Toggle.svelte.d.ts +14 -0
- package/dist/components/graph/GraphCanvas.svelte +103 -0
- package/dist/components/graph/GraphCanvas.svelte.d.ts +22 -0
- package/dist/components/graph/JatuiNode.svelte +128 -0
- package/dist/components/graph/JatuiNode.svelte.d.ts +14 -0
- package/dist/components/graph/theme.d.ts +27 -0
- package/dist/components/graph/theme.js +136 -0
- package/dist/components/messaging/MessageItem.svelte +92 -0
- package/dist/components/messaging/MessageItem.svelte.d.ts +5 -0
- package/dist/components/messaging/TypingIndicator.svelte +63 -0
- package/dist/components/messaging/TypingIndicator.svelte.d.ts +7 -0
- package/dist/components/pipeline/PipelineColumn.svelte +44 -3
- package/dist/components/progress/ProgressBar.svelte +189 -0
- package/dist/components/progress/ProgressBar.svelte.d.ts +17 -0
- package/dist/components/progress/ProgressRing.svelte +138 -0
- package/dist/components/progress/ProgressRing.svelte.d.ts +12 -0
- package/dist/components/progress/Steps.svelte +195 -0
- package/dist/components/progress/Steps.svelte.d.ts +14 -0
- package/dist/components/shell/NavigationMenu.svelte +422 -0
- package/dist/components/shell/NavigationMenu.svelte.d.ts +43 -0
- package/dist/components/shell/Sidebar.svelte +276 -0
- package/dist/components/shell/Sidebar.svelte.d.ts +32 -0
- package/dist/components/shell/SidebarGroup.svelte +180 -0
- package/dist/components/shell/SidebarGroup.svelte.d.ts +19 -0
- package/dist/components/shell/SidebarItem.svelte +170 -0
- package/dist/components/shell/SidebarItem.svelte.d.ts +24 -0
- package/dist/components/shell/shell.d.ts +30 -0
- package/dist/components/shell/shell.js +65 -0
- package/dist/components/table/DataTable.svelte +364 -0
- package/dist/components/table/DataTable.svelte.d.ts +4 -0
- package/dist/components/table/flexRender.d.ts +31 -0
- package/dist/components/table/flexRender.js +32 -0
- package/dist/components/table/types.d.ts +28 -0
- package/dist/components/table/types.js +1 -0
- package/dist/components/toast/ToastHost.svelte +21 -0
- package/dist/components/toast/ToastHost.svelte.d.ts +3 -0
- package/dist/components/toast/ToastItem.svelte +287 -0
- package/dist/components/toast/ToastItem.svelte.d.ts +9 -0
- package/dist/index.d.ts +59 -0
- package/dist/index.js +67 -0
- package/dist/showcase/AnimatedBeam.svelte +183 -0
- package/dist/showcase/AnimatedBeam.svelte.d.ts +26 -0
- package/dist/showcase/AuroraDrift.svelte +74 -0
- package/dist/showcase/AuroraDrift.svelte.d.ts +9 -0
- package/dist/showcase/BentoCard.svelte +50 -0
- package/dist/showcase/BentoCard.svelte.d.ts +14 -0
- package/dist/showcase/BentoGrid.svelte +43 -0
- package/dist/showcase/BentoGrid.svelte.d.ts +12 -0
- package/dist/showcase/BorderBeam.svelte +79 -0
- package/dist/showcase/BorderBeam.svelte.d.ts +12 -0
- package/dist/showcase/ClipWipe.svelte +82 -0
- package/dist/showcase/ClipWipe.svelte.d.ts +12 -0
- package/dist/showcase/Confetti.svelte +71 -0
- package/dist/showcase/Confetti.svelte.d.ts +10 -0
- package/dist/showcase/CursorSpotlight.svelte +85 -0
- package/dist/showcase/CursorSpotlight.svelte.d.ts +9 -0
- package/dist/showcase/DeviceMock.svelte +186 -0
- package/dist/showcase/DeviceMock.svelte.d.ts +11 -0
- package/dist/showcase/Dock.svelte +123 -0
- package/dist/showcase/Dock.svelte.d.ts +17 -0
- package/dist/showcase/FlipCard.svelte +103 -0
- package/dist/showcase/FlipCard.svelte.d.ts +10 -0
- package/dist/showcase/FocusReveal.svelte +83 -0
- package/dist/showcase/FocusReveal.svelte.d.ts +11 -0
- package/dist/showcase/Globe.svelte +202 -0
- package/dist/showcase/Globe.svelte.d.ts +16 -0
- package/dist/showcase/KenBurns.svelte +105 -0
- package/dist/showcase/KenBurns.svelte.d.ts +13 -0
- package/dist/showcase/Marquee.svelte +89 -0
- package/dist/showcase/Marquee.svelte.d.ts +9 -0
- package/dist/showcase/ParallaxTilt.svelte +98 -0
- package/dist/showcase/ParallaxTilt.svelte.d.ts +10 -0
- package/dist/showcase/ScrambleText.svelte +98 -0
- package/dist/showcase/ScrambleText.svelte.d.ts +11 -0
- package/dist/showcase/ShineSweep.svelte +81 -0
- package/dist/showcase/ShineSweep.svelte.d.ts +9 -0
- package/dist/showcase/Terminal.svelte +230 -0
- package/dist/showcase/Terminal.svelte.d.ts +18 -0
- package/dist/showcase/TextSplitReveal.svelte +146 -0
- package/dist/showcase/TextSplitReveal.svelte.d.ts +13 -0
- package/dist/showcase/TextWave.svelte +55 -0
- package/dist/showcase/TextWave.svelte.d.ts +8 -0
- package/dist/showcase/TypewriterText.svelte +130 -0
- package/dist/showcase/TypewriterText.svelte.d.ts +9 -0
- package/dist/showcase/backdrop/GrainGradient.svelte +126 -0
- package/dist/showcase/backdrop/GrainGradient.svelte.d.ts +23 -0
- package/dist/showcase/backdrop/MeshGradient.svelte +104 -0
- package/dist/showcase/backdrop/MeshGradient.svelte.d.ts +20 -0
- package/dist/showcase/backdrop/Metaballs.svelte +116 -0
- package/dist/showcase/backdrop/Metaballs.svelte.d.ts +18 -0
- package/dist/showcase/backdrop/NeuroNoise.svelte +115 -0
- package/dist/showcase/backdrop/NeuroNoise.svelte.d.ts +20 -0
- package/dist/showcase/backdrop/ShowcaseBackdrop.svelte +48 -0
- package/dist/showcase/backdrop/ShowcaseBackdrop.svelte.d.ts +12 -0
- package/dist/showcase/generative/GenerativeBackdrop.svelte +234 -0
- package/dist/showcase/generative/GenerativeBackdrop.svelte.d.ts +9 -0
- package/dist/showcase/generative/intent.d.ts +7 -0
- package/dist/showcase/generative/intent.js +67 -0
- package/dist/showcase/generative/manifest.d.ts +9 -0
- package/dist/showcase/generative/manifest.js +97 -0
- package/dist/showcase/generative/types.d.ts +48 -0
- package/dist/showcase/generative/types.js +8 -0
- package/dist/showcase/index.d.ts +36 -0
- package/dist/showcase/index.js +46 -0
- package/dist/showcase/scroll/SmoothScroll.svelte +49 -0
- package/dist/showcase/scroll/SmoothScroll.svelte.d.ts +12 -0
- package/dist/showcase/scroll/scrollProgress.d.ts +24 -0
- package/dist/showcase/scroll/scrollProgress.js +65 -0
- package/dist/showcase/scroll/scrollReveal.d.ts +30 -0
- package/dist/showcase/scroll/scrollReveal.js +70 -0
- package/dist/stores/commandPalette.svelte.d.ts +24 -0
- package/dist/stores/commandPalette.svelte.js +82 -0
- package/dist/stores/toast.svelte.d.ts +28 -0
- package/dist/stores/toast.svelte.js +33 -0
- package/dist/styles/motion.css +46 -0
- package/dist/styles/tokens.css +31 -0
- package/dist/transitions/glide.d.ts +31 -0
- package/dist/transitions/glide.js +58 -0
- package/dist/utils/sound.d.ts +6 -0
- package/dist/utils/sound.js +113 -0
- package/dist/utils/splitText.d.ts +25 -0
- package/dist/utils/splitText.js +94 -0
- package/dist/utils/themeWipe.d.ts +21 -0
- package/dist/utils/themeWipe.js +94 -0
- package/dist/utils/viewTransition.d.ts +23 -0
- package/dist/utils/viewTransition.js +75 -0
- package/package.json +50 -3
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# UI Sound Clips
|
|
2
|
+
|
|
3
|
+
CC0-licensed UI sound clips sourced from Kenney's Interface Sounds pack, pre-encoded as MP3 base64 data URIs via the [soundcn](https://github.com/kapishdima/soundcn) pipeline (OGG/WAV → MP3 @ 64kbps mono 44.1kHz → base64).
|
|
4
|
+
|
|
5
|
+
## Clips
|
|
6
|
+
|
|
7
|
+
| File | Sound Name | Duration | Description |
|
|
8
|
+
|------|-----------|----------|-------------|
|
|
9
|
+
| `success.ts` | success-chime | ~0.49s | Task completed or action succeeded |
|
|
10
|
+
| `error.ts` | error-buzz | ~0.10s | Error or destructive action |
|
|
11
|
+
| `notify.ts` | notification-pop | ~0.54s | New message or notification |
|
|
12
|
+
| `toggle.ts` | toggle-001 | ~0.14s | Toggle switch or checkbox state change |
|
|
13
|
+
| `send.ts` | switch-on | ~0.36s | Message sent or form submitted |
|
|
14
|
+
| `pop.ts` | click-soft | ~0.007s | Subtle click or button tap |
|
|
15
|
+
|
|
16
|
+
## Provenance
|
|
17
|
+
|
|
18
|
+
| Clip | Source URL | License |
|
|
19
|
+
|------|-----------|---------|
|
|
20
|
+
| success-chime | https://github.com/kapishdima/soundcn/blob/main/registry/soundcn/sounds/success-chime/success-chime.ts | CC0 |
|
|
21
|
+
| error-buzz | https://github.com/kapishdima/soundcn/blob/main/registry/soundcn/sounds/error-buzz/error-buzz.ts | CC0 |
|
|
22
|
+
| notification-pop | https://github.com/kapishdima/soundcn/blob/main/registry/soundcn/sounds/notification-pop/notification-pop.ts | CC0 |
|
|
23
|
+
| toggle-001 | https://github.com/kapishdima/soundcn/blob/main/registry/soundcn/sounds/toggle-001/toggle-001.ts | CC0 |
|
|
24
|
+
| switch-on | https://github.com/kapishdima/soundcn/blob/main/registry/soundcn/sounds/switch-on/switch-on.ts | CC0 |
|
|
25
|
+
| click-soft | https://github.com/kapishdima/soundcn/blob/main/registry/soundcn/sounds/click-soft/click-soft.ts | CC0 |
|
|
26
|
+
|
|
27
|
+
Original pack: **Kenney Interface Sounds** — https://kenney.nl/assets/interface-sounds (CC0 / Public Domain)
|
|
28
|
+
|
|
29
|
+
## Usage
|
|
30
|
+
|
|
31
|
+
```typescript
|
|
32
|
+
import { registerSound, play, setSoundEnabled, isSoundEnabled } from '$lib/utils/sound';
|
|
33
|
+
import { successSound } from '$lib/assets/sounds/success';
|
|
34
|
+
import { errorSound } from '$lib/assets/sounds/error';
|
|
35
|
+
|
|
36
|
+
// Register on app init (after first user gesture)
|
|
37
|
+
await registerSound('success', successSound);
|
|
38
|
+
await registerSound('error', errorSound);
|
|
39
|
+
|
|
40
|
+
// Play
|
|
41
|
+
play('success'); // default volume 0.15
|
|
42
|
+
play('error', { volume: 0.2 });
|
|
43
|
+
|
|
44
|
+
// Toggle
|
|
45
|
+
setSoundEnabled(true);
|
|
46
|
+
isSoundEnabled(); // → true
|
|
47
|
+
```
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const errorSound = "data:audio/mpeg;base64,SUQzBAAAAAAAIlRTU0UAAAAOAAADTGF2ZjYyLjMuMTAwAAAAAAAAAAAAAAD/+1DAAAAAAAAAAAAAAAAAAAAAAABJbmZvAAAADwAAAAUAAATkAFVVVVVVVVVVVVVVVVVVVVVVVVV/f39/f39/f39/f39/f39/f39/f6qqqqqqqqqqqqqqqqqqqqqqqqqq1dXV1dXV1dXV1dXV1dXV1dXV1dX//////////////////////////wAAAABMYXZjNjIuMTEAAAAAAAAAAAAAAAAkAkAAAAAAAAAE5Ct0VKUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//tQxAAABrBja7SRAAHpFK03MPAAAAADpAAQG24rFaPVBQCAYJG5znPz/b6NqcOBgZzv/QIBgYs7/6lBj4Ph///3cuH+c5c//+GAAQHa6AAAAASCUWIBQCyQJZStElAWcc9uAG+mh4XttXtzdiUNiuVScgn20gM5uFsLE6Fxhn+ooJIxfQBCzFUpjz1wPUomKsWXV38+X77GWGKcTC8hH7Co3sLLRijb/OSZ8+EokIpc0wKgoFjAlEQPHQa/EoSES2//LFVoN1sAAAFygDXWUv/7UsQFgArspWW9hAARbhFq6rKwAqVF/AdqejzEmlOy1F5XbkjDHJAIyEgPA+AKAqSGQaGguBULhCkD3qDWeB8DzUNJbb7lrlVWa/rjaIbq/7ygo9INWMicMl4dEirDxb3I3gAAAnMANIK2GREbZA8FCWtPoXkVeZzwrfKGDLmaM47+A5HoEIbi4gyFJy6Lmkkmkkdp1KkjzrddOq2w5zrn//3Nb8JPBk7SoFXc7lVA0eBoqdd2w6VOjw0oNAAAAAUKKBQgQAQAi/uhmyAnxM15//tSxAoADGU5Z5j2gAGGky63mPAAjm0TcAIi5zgBMLwtS483d1dBIkP8lB5jsGA/8YMkx5gGgOZ/+aKWbkcKh//iUBzyXNzyaf//5o0uMgOcvp///+hpqQJc3Bx3//EBlEuHxpKKAdn8DBSAiMlz2HZmqAgCAHn1q11bWu4/1m+IicMtXoeozcJYmSXkwOp65uK0nVEe7qD41qvYsXN5ILFBbn7x2zNszFuDq0bFoVg6sFiOvelwLQEx5WIgKdJSURXEINB2aJcjaCAKTlorySL/+1LEBYAL0Etrp72BUXuPKaqwkAD4DYLuOE5S4k4J4hxEGgahzphEVjuagsILJWXG/d9eq7/vOigiDq0gqDbknASNA0YvDQbJESwUU8kImtSMLJLDGicxMKiQe4VORi841zX1q6GfTvAYEAgAgvgaCLXAQXsZE6LXsnhdaMzDtOVL3drZqkuERpYLEy3TQoclLx9xjGMaRISEysTNRQilEiRbFCAg4DRXKuWCuInh0RA0DR46CoalUc7EUsGv9ySwNBxUis9ztQVJJbJBdbhcBv/7UsQEgAuknU+5iIARao9j256QAAGAgAAIlpEiPnR6OUh6uOfPDAyW+TEqJml80EGSJscj0FieQbVBbINzdM3A8AKYG0QGf80QNEIWLhZwPzBsSFx//wbOBc0IIixkmLI/hcOAmz/SlQBAADMWYATAD4rgqQAkAxJKukNQ0tpcVC9ep1DQ0/+SyJEijkVUKHEQqZWIhUKiaZCKWlUKFnyWayUrVQsuEoaiUNo8qGiwcEQdWCvWdWdg1PXeV///f2f7OJVMQU1FMy4xMDBVVVVV";
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
// Source: https://github.com/kapishdima/soundcn/blob/main/registry/soundcn/sounds/error-buzz/error-buzz.ts
|
|
2
|
+
// License: CC0 — Kenney (kenney.nl/assets/interface-sounds)
|
|
3
|
+
// Error or destructive action
|
|
4
|
+
export var errorSound = "data:audio/mpeg;base64,SUQzBAAAAAAAIlRTU0UAAAAOAAADTGF2ZjYyLjMuMTAwAAAAAAAAAAAAAAD/+1DAAAAAAAAAAAAAAAAAAAAAAABJbmZvAAAADwAAAAUAAATkAFVVVVVVVVVVVVVVVVVVVVVVVVV/f39/f39/f39/f39/f39/f39/f6qqqqqqqqqqqqqqqqqqqqqqqqqq1dXV1dXV1dXV1dXV1dXV1dXV1dX//////////////////////////wAAAABMYXZjNjIuMTEAAAAAAAAAAAAAAAAkAkAAAAAAAAAE5Ct0VKUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//tQxAAABrBja7SRAAHpFK03MPAAAAADpAAQG24rFaPVBQCAYJG5znPz/b6NqcOBgZzv/QIBgYs7/6lBj4Ph///3cuH+c5c//+GAAQHa6AAAAASCUWIBQCyQJZStElAWcc9uAG+mh4XttXtzdiUNiuVScgn20gM5uFsLE6Fxhn+ooJIxfQBCzFUpjz1wPUomKsWXV38+X77GWGKcTC8hH7Co3sLLRijb/OSZ8+EokIpc0wKgoFjAlEQPHQa/EoSES2//LFVoN1sAAAFygDXWUv/7UsQFgArspWW9hAARbhFq6rKwAqVF/AdqejzEmlOy1F5XbkjDHJAIyEgPA+AKAqSGQaGguBULhCkD3qDWeB8DzUNJbb7lrlVWa/rjaIbq/7ygo9INWMicMl4dEirDxb3I3gAAAnMANIK2GREbZA8FCWtPoXkVeZzwrfKGDLmaM47+A5HoEIbi4gyFJy6Lmkkmkkdp1KkjzrddOq2w5zrn//3Nb8JPBk7SoFXc7lVA0eBoqdd2w6VOjw0oNAAAAAUKKBQgQAQAi/uhmyAnxM15//tSxAoADGU5Z5j2gAGGky63mPAAjm0TcAIi5zgBMLwtS483d1dBIkP8lB5jsGA/8YMkx5gGgOZ/+aKWbkcKh//iUBzyXNzyaf//5o0uMgOcvp///+hpqQJc3Bx3//EBlEuHxpKKAdn8DBSAiMlz2HZmqAgCAHn1q11bWu4/1m+IicMtXoeozcJYmSXkwOp65uK0nVEe7qD41qvYsXN5ILFBbn7x2zNszFuDq0bFoVg6sFiOvelwLQEx5WIgKdJSURXEINB2aJcjaCAKTlorySL/+1LEBYAL0Etrp72BUXuPKaqwkAD4DYLuOE5S4k4J4hxEGgahzphEVjuagsILJWXG/d9eq7/vOigiDq0gqDbknASNA0YvDQbJESwUU8kImtSMLJLDGicxMKiQe4VORi841zX1q6GfTvAYEAgAgvgaCLXAQXsZE6LXsnhdaMzDtOVL3drZqkuERpYLEy3TQoclLx9xjGMaRISEysTNRQilEiRbFCAg4DRXKuWCuInh0RA0DR46CoalUc7EUsGv9ySwNBxUis9ztQVJJbJBdbhcBv/7UsQEgAuknU+5iIARao9j256QAAGAgAAIlpEiPnR6OUh6uOfPDAyW+TEqJml80EGSJscj0FieQbVBbINzdM3A8AKYG0QGf80QNEIWLhZwPzBsSFx//wbOBc0IIixkmLI/hcOAmz/SlQBAADMWYATAD4rgqQAkAxJKukNQ0tpcVC9ep1DQ0/+SyJEijkVUKHEQqZWIhUKiaZCKWlUKFnyWayUrVQsuEoaiUNo8qGiwcEQdWCvWdWdg1PXeV///f2f7OJVMQU1FMy4xMDBVVVVV";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const notifySound = "data:audio/mpeg;base64,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AMldGRsI+FZBESMjYR6KyFfsYw0FQuLPC/bV23T09PL4xGIw/j+NYaY3Ng8sjFjBBRdjEHcllPbDgIAgCYPgcLh91xP/////f93bR/RVA/4/+xAF+wQZ1zW9NNcyGMUpehjFrWurQh9ANxeFP4FAlBlBl3LuZ0zpyXJcl2XdcFkh6gSgTuv7Xsu67sZjMZpqamBoGg6Vc3bs+z9H89///0kuqrICAAy3dnptattrWnXtvQd2V3dev37k1Sxp2WFCgFMBog/HSTC4AYCY//tSxIcAB5RvJ6bPicFKEqg0VeIarBA8BoSBhV2///7/K5v6W09fr/9f+3//+v//Ufb/5pURkUbAAAGVVr2Stsh7O6k72q2WlZnWhV7fTmq9I3MUARgU2mabsYFBaG4kYU8IbEu3////W/t0XX/7f+yf8///b/unt4N/QihOArP+r2ofXvo+zJXqXRqsvSWkga16KVtoj+YcAh/KamMAECAMED9pcYDDHY////+jsvV66bJb//PSRetXVG//t1221aX4MR/9a8TKAE4ACAAEb///+1LEnQAKVJc3or9WASquY6UOF0D/z/3rcYz/JEieede1BI6QHLjDYrb0QNOSiMQw/j+OW5bluW77/w/T5SuG3LZ2zth673nxUPMDBU81hGuP5LLHiAEEf//6P//ySglAFA2YNgoDq9bf9Nf/wl2Mz2MUG//qq3+woKAsbMzMzf7MzMkKiqoKxGWx5hyQwFDGGJjXA8JRX0rhl/Ydpcg6VBV12c//pq6emappBaBUDKAmVZW1XY5LxIV4mcoocKKJhWEJiEYfEi7rwo//+9yZMP/7UsSsAEkVcx0ocFoBKy6jBS4LQC+IRAbwZUTqZFvw1rZEv+o8rgqHRLUeTq+DR6v/eCQKjQSyYbhlwzxqJxpRZZTs5RZRZZTtZZQYqI4qLNf6hbWKigtFhYVFYqKC3FfxUVFqhYXFaxUWb//7KxUUFosLCrMUbUxBTUUzLjEwMFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//tSxMAACizHJOaHa8EwmSh0ceqiVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/+1LEzwNIdL8WRIYtwRQJVsDDDLhVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVQ==";
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
// Source: https://github.com/kapishdima/soundcn/blob/main/registry/soundcn/sounds/notification-pop/notification-pop.ts
|
|
2
|
+
// License: CC0 — Kenney (kenney.nl/assets/interface-sounds)
|
|
3
|
+
// New message or notification
|
|
4
|
+
export var notifySound = "data:audio/mpeg;base64,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AMldGRsI+FZBESMjYR6KyFfsYw0FQuLPC/bV23T09PL4xGIw/j+NYaY3Ng8sjFjBBRdjEHcllPbDgIAgCYPgcLh91xP/////f93bR/RVA/4/+xAF+wQZ1zW9NNcyGMUpehjFrWurQh9ANxeFP4FAlBlBl3LuZ0zpyXJcl2XdcFkh6gSgTuv7Xsu67sZjMZpqamBoGg6Vc3bs+z9H89///0kuqrICAAy3dnptattrWnXtvQd2V3dev37k1Sxp2WFCgFMBog/HSTC4AYCY//tSxIcAB5RvJ6bPicFKEqg0VeIarBA8BoSBhV2///7/K5v6W09fr/9f+3//+v//Ufb/5pURkUbAAAGVVr2Stsh7O6k72q2WlZnWhV7fTmq9I3MUARgU2mabsYFBaG4kYU8IbEu3////W/t0XX/7f+yf8///b/unt4N/QihOArP+r2ofXvo+zJXqXRqsvSWkga16KVtoj+YcAh/KamMAECAMED9pcYDDHY////+jsvV66bJb//PSRetXVG//t1221aX4MR/9a8TKAE4ACAAEb///+1LEnQAKVJc3or9WASquY6UOF0D/z/3rcYz/JEieede1BI6QHLjDYrb0QNOSiMQw/j+OW5bluW77/w/T5SuG3LZ2zth673nxUPMDBU81hGuP5LLHiAEEf//6P//ySglAFA2YNgoDq9bf9Nf/wl2Mz2MUG//qq3+woKAsbMzMzf7MzMkKiqoKxGWx5hyQwFDGGJjXA8JRX0rhl/Ydpcg6VBV12c//pq6emappBaBUDKAmVZW1XY5LxIV4mcoocKKJhWEJiEYfEi7rwo//+9yZMP/7UsSsAEkVcx0ocFoBKy6jBS4LQC+IRAbwZUTqZFvw1rZEv+o8rgqHRLUeTq+DR6v/eCQKjQSyYbhlwzxqJxpRZZTs5RZRZZTtZZQYqI4qLNf6hbWKigtFhYVFYqKC3FfxUVFqhYXFaxUWb//7KxUUFosLCrMUbUxBTUUzLjEwMFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//tSxMAACizHJOaHa8EwmSh0ceqiVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/+1LEzwNIdL8WRIYtwRQJVsDDDLhVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVQ==";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const popSound = "data:audio/mpeg;base64,SUQzBAAAAAAAIlRTU0UAAAAOAAADTGF2ZjYyLjMuMTAwAAAAAAAAAAAAAAD/+1DAAAAAAAAAAAAAAAAAAAAAAABJbmZvAAAADwAAAAIAAAJxAKqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqr//////////////////////////////////////////////////////////////////wAAAABMYXZjNjIuMTEAAAAAAAAAAAAAAAAkBYYAAAAAAAACcU7MYgYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//tQxAAACghZUlTHgAGDlWufHzAAAVWgJg3EszX3mlF95pSk7enve+GBDEMNMg4R8BLACwAsA7BVjjOhDEMQxWKx5EcJwfB/KBiU8/wI7QH+BHaA/ynv6PB8/LgQEMgD78CHO/oGiAIBAQBAYFAA1hDi4z22DmJ7Et+PSEd1f8Y4PmLI5uDYKAWyCmBlSZJ3gAmD0RBEUDS/HKFzC5iZIr/5FTIvE0Yl3/8ipkXi8Yl0u/xEFQVER7/WCoiCoKiL/4VBURPOqgAQuacbblgZh//7UsQEg8aUBv9cMIAgAAA0gAAABIKqErhFDZUNQ7PRK4S8s8r1HiuGlHuSnenrcW9yvO/PcFflep5XqPKfrO9NTEFNRTMuMTAwVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV";
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
// Source: https://github.com/kapishdima/soundcn/blob/main/registry/soundcn/sounds/click-soft/click-soft.ts
|
|
2
|
+
// License: CC0 — Kenney (kenney.nl/assets/interface-sounds)
|
|
3
|
+
// Subtle click or button tap
|
|
4
|
+
export var popSound = "data:audio/mpeg;base64,SUQzBAAAAAAAIlRTU0UAAAAOAAADTGF2ZjYyLjMuMTAwAAAAAAAAAAAAAAD/+1DAAAAAAAAAAAAAAAAAAAAAAABJbmZvAAAADwAAAAIAAAJxAKqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqr//////////////////////////////////////////////////////////////////wAAAABMYXZjNjIuMTEAAAAAAAAAAAAAAAAkBYYAAAAAAAACcU7MYgYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//tQxAAACghZUlTHgAGDlWufHzAAAVWgJg3EszX3mlF95pSk7enve+GBDEMNMg4R8BLACwAsA7BVjjOhDEMQxWKx5EcJwfB/KBiU8/wI7QH+BHaA/ynv6PB8/LgQEMgD78CHO/oGiAIBAQBAYFAA1hDi4z22DmJ7Et+PSEd1f8Y4PmLI5uDYKAWyCmBlSZJ3gAmD0RBEUDS/HKFzC5iZIr/5FTIvE0Yl3/8ipkXi8Yl0u/xEFQVER7/WCoiCoKiL/4VBURPOqgAQuacbblgZh//7UsQEg8aUBv9cMIAgAAA0gAAABIKqErhFDZUNQ7PRK4S8s8r1HiuGlHuSnenrcW9yvO/PcFflep5XqPKfrO9NTEFNRTMuMTAwVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const sendSound = "data:audio/mpeg;base64,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";
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
// Source: https://github.com/kapishdima/soundcn/blob/main/registry/soundcn/sounds/switch-on/switch-on.ts
|
|
2
|
+
// License: CC0 — Kenney (kenney.nl/assets/interface-sounds)
|
|
3
|
+
// Message sent or form submitted
|
|
4
|
+
export var sendSound = "data:audio/mpeg;base64,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";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const successSound = "data:audio/mpeg;base64,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";
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
// Source: https://github.com/kapishdima/soundcn/blob/main/registry/soundcn/sounds/success-chime/success-chime.ts
|
|
2
|
+
// License: CC0 — Kenney (kenney.nl/assets/interface-sounds)
|
|
3
|
+
// Task completed or action succeeded
|
|
4
|
+
export var successSound = "data:audio/mpeg;base64,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";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const toggleSound = "data:audio/mpeg;base64,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";
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
// Source: https://github.com/kapishdima/soundcn/blob/main/registry/soundcn/sounds/toggle-001/toggle-001.ts
|
|
2
|
+
// License: CC0 — Kenney (kenney.nl/assets/interface-sounds)
|
|
3
|
+
// Toggle switch or checkbox state change
|
|
4
|
+
export var toggleSound = "data:audio/mpeg;base64,SUQzBAAAAAAAIlRTU0UAAAAOAAADTGF2ZjYyLjMuMTAwAAAAAAAAAAAAAAD/+1DAAAAAAAAAAAAAAAAAAAAAAABJbmZvAAAADwAAAAcAAAaGAD8/Pz8/Pz8/Pz8/Pz8/X19fX19fX19fX19fX19/f39/f39/f39/f39/f5+fn5+fn5+fn5+fn5+fn7+/v7+/v7+/v7+/v7+/39/f39/f39/f39/f39///////////////////wAAAABMYXZjNjIuMTEAAAAAAAAAAAAAAAAkBcAAAAAAAAAGhtSg8H0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//tQxAAACDBHXnTHgAG6MC0jMTAAAAABcnb3bXr168wMDAkCQJB4hgDgZAbg4FBq+/73vd+/fvwcGg+D+XB8+IwfB8/8EwfD/4Jg+/8uf/l3/y///8EKFQAJgAFQKtL+/+giP5fpyRxuI7muQVAH6O0SmVge8rIGJO3LiM6OQCyGikw6XDXgiObNkYJ8ugRcc3WPkPG/LA4H5fLPl0cXnCKfL5A/sRnqJj1aZf9PQIp8w+c83+/mr+df1fU3qa/1N6s70ZCKmYdQBDFb57Mhb//7UsQFgAvllXPc9oARdimtPBZAKAWByochosaoRi+T5mdkprVcA6iWNpWUJy1B9aKQVAL8Zf/ss4IUTp//9i6DkWy/r1UlJpAl1mtvV3U6jISYWtk//2SIav//Of//Rf//usoL//1JGd9/XsACIEFIwDEZCevHEoGZwX2gRafHigQIBtPPN3dFNJakepML/DQWig1L/RNReijUnQ/WyjQnjYfgxe6LPSrd1Pl2kI4IWktNf90qzg3q1f/5l//863//z/+V/1IIh4ZgAyBESYBs//tSxAUACzUDa+AxoVF8Mut4BkQoUwKhQOZbH+z6dBEUdcrCXNuZHXWk638yCjGSkylf/YfQbgwJkxqSpsUDEuy+p1s6QJ90UbegtHUFch9qlUFtaRBPUtJJkFf8x/1/9n+z/IhvbFQAGQBci2JJqdByMHhLHoDzawfqYpABGLqS2y6gcPJPqMzwN1RJ2o62pt1TUWkOANfroLbpImIaKVd+ozdFt8SIiL1PUipn9pkLK/9L9i3//6z3//zrf/+pP//5lQq5mHMVUfpX/bG9QGX/+1LEBoAL2XV3x+FQcX6lLXj1q1aYZtlCeR5r7c4JO7Bg5cUynWjoZjF6IpOUWs/jIUmV7nlyAWCRTzjDwCpAyuZPW0+xrnlRPM+v+oyLtop7f+Krf2b+hN//6W//81vU9/+g+/5IHlmdlIiq/pv86PA+oqGqp2536mVWmVXwoNH0riJylbatv51usKSeuN11vO60UxTW+v3TTp3e1jrbFovDEfmx+1z69vaLa+2weB4a/Q43+i1Y5SEGltv/qbryJ//0//LKF/clYDcTsIH8tv/7UsQFAAts+T+njVRBNpMjSDeh0DBGK2Oa5OZHYl0cpw7zrMJVaVSEHWyQIbL7KApG1Vr05SAFsIRAlKMupvU1upKTEQYhSj06jvUeksx0JqznqYAcOG5z9Wfpf6D5//qPf/I//WwgAiGNVgY6ykaxmAoSeURfjjBug+hVD0qpWwL1bXzRQsdfbcCwOh4C4aOlmnb25pvi+w6PNgFSp3YV4lALsFYaX5VeMDrfpb//g1U/6yABAAABgo0tTjx7dDua56zYkoioJmhqTTVJf8q0//tSxA6ACpSa/SgsRcDyhp5I9JgAMVjFqjnM7G+2atDMokSFiJxYq6g8wiiFRYnAzN61PQHFnSMKCyDJ1TUSwtQdbI69wqskiKSNTUAIzYC6TgNiQONJGnFFxaqmndrhLAZIOFg8jmp7eBUUIFJJDKnz1pqrPPUSAq8k9X6n6Msp/9WpWhSuMVqqAEAXBSiEDrCAyEpMhtyJWrSBwEgkLCwfAQsLCwZGKFmmYsLJdFmmahZOLN1C3Fm8W6m8W6m8W6m8W6hdNQsx0WF04szUL9v/+1LEI4PI3CC2J60iAAAANIAAAARMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVQ==";
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
interface Props {
|
|
3
|
+
value: number;
|
|
4
|
+
format?: Intl.NumberFormatOptions;
|
|
5
|
+
class?: string;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
let { value, format = {}, class: className = '' }: Props = $props();
|
|
9
|
+
|
|
10
|
+
type Digit = { prev: string; next: string; animating: boolean; id: number };
|
|
11
|
+
|
|
12
|
+
let idCounter = 0;
|
|
13
|
+
|
|
14
|
+
function formatNumber(n: number, opts: Intl.NumberFormatOptions): string {
|
|
15
|
+
return new Intl.NumberFormat(undefined, opts).format(n);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
function toChars(n: number, opts: Intl.NumberFormatOptions): string[] {
|
|
19
|
+
return formatNumber(n, opts).split('');
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
let prevValue = $state(value);
|
|
23
|
+
let chars = $state<Digit[]>(
|
|
24
|
+
toChars(value, format).map((ch) => ({ prev: ch, next: ch, animating: false, id: idCounter++ }))
|
|
25
|
+
);
|
|
26
|
+
|
|
27
|
+
$effect(() => {
|
|
28
|
+
const prev = prevValue;
|
|
29
|
+
const next = value;
|
|
30
|
+
if (prev === next) return;
|
|
31
|
+
|
|
32
|
+
const prevChars = toChars(prev, format);
|
|
33
|
+
const nextChars = toChars(next, format);
|
|
34
|
+
|
|
35
|
+
// Align from the right (least significant digit)
|
|
36
|
+
const maxLen = Math.max(prevChars.length, nextChars.length);
|
|
37
|
+
const prevPadded = prevChars.join('').padStart(maxLen, ' ').split('');
|
|
38
|
+
const nextPadded = nextChars.join('').padStart(maxLen, ' ').split('');
|
|
39
|
+
|
|
40
|
+
chars = nextPadded.map((ch, i) => {
|
|
41
|
+
const p = prevPadded[i] ?? ' ';
|
|
42
|
+
const changed = ch !== p;
|
|
43
|
+
return { prev: p, next: ch, animating: changed, id: idCounter++ };
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
prevValue = next;
|
|
47
|
+
|
|
48
|
+
// Reset animating flag after animation completes
|
|
49
|
+
const timeout = setTimeout(() => {
|
|
50
|
+
chars = chars.map((d) => ({ ...d, animating: false }));
|
|
51
|
+
}, 400);
|
|
52
|
+
|
|
53
|
+
return () => clearTimeout(timeout);
|
|
54
|
+
});
|
|
55
|
+
</script>
|
|
56
|
+
|
|
57
|
+
<span
|
|
58
|
+
class="animated-number inline-flex tabular-nums {className}"
|
|
59
|
+
aria-live="polite"
|
|
60
|
+
aria-atomic="true"
|
|
61
|
+
aria-label={formatNumber(value, format)}
|
|
62
|
+
>
|
|
63
|
+
{#each chars as digit (digit.id)}
|
|
64
|
+
{#if digit.next === ' '}
|
|
65
|
+
<span class="digit-col invisible" aria-hidden="true">{digit.next}</span>
|
|
66
|
+
{:else if /\d/.test(digit.next)}
|
|
67
|
+
<span
|
|
68
|
+
class="digit-col overflow-hidden inline-block"
|
|
69
|
+
aria-hidden="true"
|
|
70
|
+
style="height: 1.2em; vertical-align: bottom;"
|
|
71
|
+
>
|
|
72
|
+
<span
|
|
73
|
+
class="digit-inner inline-block leading-[1.2]"
|
|
74
|
+
class:animating={digit.animating}
|
|
75
|
+
data-prev={digit.prev}
|
|
76
|
+
>{digit.next}</span>
|
|
77
|
+
</span>
|
|
78
|
+
{:else}
|
|
79
|
+
<span class="digit-sep" aria-hidden="true">{digit.next}</span>
|
|
80
|
+
{/if}
|
|
81
|
+
{/each}
|
|
82
|
+
</span>
|
|
83
|
+
|
|
84
|
+
<style>
|
|
85
|
+
.digit-inner {
|
|
86
|
+
transition: transform var(--motion-fast, 150ms) var(--motion-spring, cubic-bezier(0.34, 1.56, 0.64, 1));
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
.digit-inner.animating {
|
|
90
|
+
animation: digit-roll var(--motion-fast, 150ms) var(--motion-spring, cubic-bezier(0.34, 1.56, 0.64, 1)) forwards;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
@keyframes digit-roll {
|
|
94
|
+
0% {
|
|
95
|
+
transform: translateY(40%);
|
|
96
|
+
opacity: 0.4;
|
|
97
|
+
}
|
|
98
|
+
100% {
|
|
99
|
+
transform: translateY(0);
|
|
100
|
+
opacity: 1;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
@media (prefers-reduced-motion: reduce) {
|
|
105
|
+
.digit-inner {
|
|
106
|
+
transition: none;
|
|
107
|
+
}
|
|
108
|
+
.digit-inner.animating {
|
|
109
|
+
animation: none;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
</style>
|
|
@@ -2,17 +2,22 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Badge Component
|
|
4
4
|
*
|
|
5
|
-
*
|
|
5
|
+
* DaisyUI badge with variant, size, optional numeric count with digit-tick animation,
|
|
6
|
+
* and opt-in pulse prop for live/unread states.
|
|
6
7
|
*/
|
|
7
8
|
|
|
8
9
|
interface Props {
|
|
9
10
|
variant?: 'default' | 'primary' | 'secondary' | 'success' | 'warning' | 'error' | 'info' | 'neutral';
|
|
10
11
|
size?: 'sm' | 'md' | 'lg';
|
|
12
|
+
/** Numeric count displayed in the badge. Animates on change. */
|
|
13
|
+
count?: number | null;
|
|
14
|
+
/** When true, emits a slow expanding-ring pulse. Use for live/unread states. */
|
|
15
|
+
pulse?: boolean;
|
|
11
16
|
class?: string;
|
|
12
17
|
children?: import('svelte').Snippet;
|
|
13
18
|
}
|
|
14
19
|
|
|
15
|
-
let { variant = 'default', size = 'md', class: className = '', children }: Props = $props();
|
|
20
|
+
let { variant = 'default', size = 'md', count = null, pulse = false, class: className = '', children }: Props = $props();
|
|
16
21
|
|
|
17
22
|
const variantClass = $derived(
|
|
18
23
|
{
|
|
@@ -29,10 +34,76 @@
|
|
|
29
34
|
|
|
30
35
|
const sizeClass = $derived({ sm: 'badge-sm', md: '', lg: 'badge-lg' }[size]);
|
|
31
36
|
const badgeClass = $derived(`badge ${variantClass} ${sizeClass} ${className}`.trim());
|
|
37
|
+
|
|
38
|
+
// Track previous count to trigger animation only on changes
|
|
39
|
+
let prevCount = $state(count);
|
|
40
|
+
let ticking = $state(false);
|
|
41
|
+
|
|
42
|
+
$effect(() => {
|
|
43
|
+
if (count !== prevCount && count !== null && prevCount !== null) {
|
|
44
|
+
ticking = false;
|
|
45
|
+
// Force a reflow to restart the animation
|
|
46
|
+
requestAnimationFrame(() => {
|
|
47
|
+
ticking = true;
|
|
48
|
+
setTimeout(() => { ticking = false; }, 300);
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
prevCount = count;
|
|
52
|
+
});
|
|
32
53
|
</script>
|
|
33
54
|
|
|
34
|
-
<span class={badgeClass}>
|
|
35
|
-
{#if
|
|
55
|
+
<span class={badgeClass} class:badge-pulse={pulse}>
|
|
56
|
+
{#if count !== null}
|
|
57
|
+
<span class="badge-count" class:badge-count-tick={ticking}>{count}</span>
|
|
58
|
+
{:else if children}
|
|
36
59
|
{@render children()}
|
|
37
60
|
{/if}
|
|
38
61
|
</span>
|
|
62
|
+
|
|
63
|
+
<style>
|
|
64
|
+
/* Digit tick — small upward roll on count change */
|
|
65
|
+
.badge-count {
|
|
66
|
+
display: inline-block;
|
|
67
|
+
font-variant-numeric: tabular-nums;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
.badge-count-tick {
|
|
71
|
+
animation: badge-tick var(--motion-fast) var(--motion-spring);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
@keyframes badge-tick {
|
|
75
|
+
from { transform: translateY(40%) scale(0.8); opacity: 0.4; }
|
|
76
|
+
to { transform: translateY(0) scale(1); opacity: 1; }
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
/* Pulse — slow expanding rings, pure CSS, opt-in via prop */
|
|
80
|
+
.badge-pulse {
|
|
81
|
+
position: relative;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
.badge-pulse::before,
|
|
85
|
+
.badge-pulse::after {
|
|
86
|
+
content: "";
|
|
87
|
+
position: absolute;
|
|
88
|
+
inset: 0;
|
|
89
|
+
border-radius: inherit;
|
|
90
|
+
border: 2px solid currentColor;
|
|
91
|
+
opacity: 0;
|
|
92
|
+
animation: badge-ring 2s ease-out infinite;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
.badge-pulse::after {
|
|
96
|
+
animation-delay: 1s;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
@keyframes badge-ring {
|
|
100
|
+
0% { transform: scale(1); opacity: 0.6; }
|
|
101
|
+
100% { transform: scale(2.2); opacity: 0; }
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
@media (prefers-reduced-motion: reduce) {
|
|
105
|
+
.badge-count-tick { animation: none; }
|
|
106
|
+
.badge-pulse::before,
|
|
107
|
+
.badge-pulse::after { animation: none; opacity: 0; }
|
|
108
|
+
}
|
|
109
|
+
</style>
|
|
@@ -1,11 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Badge Component
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* DaisyUI badge with variant, size, optional numeric count with digit-tick animation,
|
|
5
|
+
* and opt-in pulse prop for live/unread states.
|
|
5
6
|
*/
|
|
6
7
|
interface Props {
|
|
7
8
|
variant?: 'default' | 'primary' | 'secondary' | 'success' | 'warning' | 'error' | 'info' | 'neutral';
|
|
8
9
|
size?: 'sm' | 'md' | 'lg';
|
|
10
|
+
/** Numeric count displayed in the badge. Animates on change. */
|
|
11
|
+
count?: number | null;
|
|
12
|
+
/** When true, emits a slow expanding-ring pulse. Use for live/unread states. */
|
|
13
|
+
pulse?: boolean;
|
|
9
14
|
class?: string;
|
|
10
15
|
children?: import('svelte').Snippet;
|
|
11
16
|
}
|