Add reaction system and security improvements
BIN
sojorn_app/assets/images/toplogo.png
Normal file
|
After Width: | Height: | Size: 3.3 KiB |
209
sojorn_app/assets/reactions/README.md
Normal file
|
|
@ -0,0 +1,209 @@
|
||||||
|
# Custom Reaction Sets
|
||||||
|
|
||||||
|
This folder contains custom reaction image sets that users can choose from in the reaction picker.
|
||||||
|
|
||||||
|
## Folder Structure
|
||||||
|
|
||||||
|
```
|
||||||
|
assets/reactions/
|
||||||
|
├── reaction_config.json # Configuration file for reaction sets
|
||||||
|
├── emoji/ # Default emoji reactions (built-in)
|
||||||
|
├── green/ # Green-themed reaction set
|
||||||
|
│ ├── credit.md # Attribution information
|
||||||
|
│ └── *.png # Reaction images
|
||||||
|
├── blue/ # Blue-themed reaction set
|
||||||
|
│ ├── credit.md # Attribution information
|
||||||
|
│ └── *.png # Reaction images
|
||||||
|
├── purple/ # Purple-themed reaction set
|
||||||
|
│ ├── credit.md # Attribution information
|
||||||
|
│ └── *.png # Reaction images
|
||||||
|
├── dotto/ # Dotto pixel art emoji set
|
||||||
|
│ ├── credit.md # Attribution information
|
||||||
|
│ └── *.svg # Reaction images (SVG format)
|
||||||
|
└── [custom]/ # Add your own themed sets here
|
||||||
|
├── credit.md # Attribution information
|
||||||
|
└── *.png/.svg # Reaction images
|
||||||
|
```
|
||||||
|
|
||||||
|
## Adding Custom Reaction Sets
|
||||||
|
|
||||||
|
### 1. Create a New Folder
|
||||||
|
Create a new folder in `assets/reactions/` with your theme name:
|
||||||
|
```bash
|
||||||
|
mkdir assets/reactions/your_theme_name
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2. Add Reaction Images
|
||||||
|
Place your reaction images in the folder. Recommended specifications:
|
||||||
|
- **Format**: PNG with transparency OR SVG for scalable graphics
|
||||||
|
- **Size**: 64x64px (32x32px artwork) for PNG
|
||||||
|
- **Naming**: Use descriptive names (system tries 200+ common names):
|
||||||
|
- `heart.png/svg`, `thumbs_up.png/svg`, `laugh.png/svg`
|
||||||
|
- `smiling_face.png/svg`, `winking_face.png/svg`
|
||||||
|
- `skull.png/svg`, `ghost.png/svg`, `robot.png/svg`
|
||||||
|
- `fire.png/svg`, `party.png/svg`, `clap.png/svg`
|
||||||
|
- And many more! (see comprehensive list in code)
|
||||||
|
|
||||||
|
### 3. Add Credit Information (Optional)
|
||||||
|
Create a `credit.md` file in your folder with attribution information:
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
# Your Theme Name
|
||||||
|
|
||||||
|
**Source:** [Link to source if applicable](URL)
|
||||||
|
|
||||||
|
**Author:** Your Name or Artist
|
||||||
|
|
||||||
|
**License:** License information
|
||||||
|
|
||||||
|
**Description:** Brief description of your reaction set
|
||||||
|
|
||||||
|
**Format:** PNG/SVG
|
||||||
|
```
|
||||||
|
|
||||||
|
### 4. Update Reaction Picker (Required!)
|
||||||
|
|
||||||
|
After adding files to folders, run the update script:
|
||||||
|
|
||||||
|
**Windows:**
|
||||||
|
```bash
|
||||||
|
tools\add_new_folder.bat
|
||||||
|
```
|
||||||
|
|
||||||
|
**Manual:**
|
||||||
|
```bash
|
||||||
|
dart tools/add_reaction_folder.dart
|
||||||
|
```
|
||||||
|
|
||||||
|
This script:
|
||||||
|
- **Scans all folders** in `assets/reactions/`
|
||||||
|
- **Checks for content** (PNG/SVG files)
|
||||||
|
- **Updates the code** to include folders with content
|
||||||
|
- **Ignores empty folders** automatically
|
||||||
|
|
||||||
|
**Example Output:**
|
||||||
|
```
|
||||||
|
🔍 Scanning for new reaction folders...
|
||||||
|
📁 Found folders: blue, dotto, green, purple
|
||||||
|
✅ dotto: Has content
|
||||||
|
⚠️ blue: Empty (will be ignored)
|
||||||
|
📝 Updated reaction_picker.dart with folders: dotto
|
||||||
|
🎉 Done! Restart your app to see the new reaction tabs
|
||||||
|
```
|
||||||
|
|
||||||
|
### 5. Restart App
|
||||||
|
|
||||||
|
Restart your Flutter app to see the new reaction tabs!
|
||||||
|
|
||||||
|
## Configuration Options
|
||||||
|
|
||||||
|
### Generated Configuration Format
|
||||||
|
|
||||||
|
The `generate_reaction_config.dart` script automatically creates a configuration like this:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"reaction_sets": {
|
||||||
|
"emoji": {
|
||||||
|
"type": "emoji",
|
||||||
|
"reactions": ["❤️", "👍", "😂", ...]
|
||||||
|
},
|
||||||
|
"your_theme": {
|
||||||
|
"type": "folder",
|
||||||
|
"folder": "your_theme",
|
||||||
|
"file_types": ["png", "svg"],
|
||||||
|
"files": ["heart.png", "thumbs_up.png", ...]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"generated_at": "2026-02-01T15:16:02.195009",
|
||||||
|
"total_sets": 2
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Configuration Fields
|
||||||
|
|
||||||
|
- **type**: `"emoji"` or `"folder"`
|
||||||
|
- **folder**: Folder name (for folder type)
|
||||||
|
- **file_types**: Array of supported file extensions found
|
||||||
|
- **files**: Explicit list of all files found in the folder
|
||||||
|
- **generated_at**: When the config was last updated
|
||||||
|
- **total_sets**: Number of reaction sets
|
||||||
|
|
||||||
|
### Build-Time vs Runtime
|
||||||
|
|
||||||
|
**Important**: Flutter assets are bundled at build time, so:
|
||||||
|
- **File Discovery**: Happens when you run the generator script
|
||||||
|
- **Runtime Loading**: Uses the explicit file list from config
|
||||||
|
- **No Directory Scanning**: Cannot scan folders at runtime
|
||||||
|
- **Manual Updates**: Run script when adding/removing files
|
||||||
|
|
||||||
|
## Current Reaction Sets
|
||||||
|
|
||||||
|
### Emoji (Default)
|
||||||
|
Standard Unicode emoji reactions that work on all devices.
|
||||||
|
|
||||||
|
### Green
|
||||||
|
Green-themed custom reaction set with PNG images.
|
||||||
|
|
||||||
|
### Blue
|
||||||
|
Blue-themed custom reaction set with PNG images.
|
||||||
|
|
||||||
|
### Purple
|
||||||
|
Purple-themed custom reaction set with PNG images.
|
||||||
|
|
||||||
|
### Dotto
|
||||||
|
16x16 pixel art emoji set with SVG graphics from the Dotto Emoji project.
|
||||||
|
|
||||||
|
## Image Guidelines
|
||||||
|
|
||||||
|
### Recommended Dimensions
|
||||||
|
- **PNG**: 64x64px canvas, 32-48px artwork (centered)
|
||||||
|
- **SVG**: Any size (scalable)
|
||||||
|
- **Format**: PNG with transparency OR SVG
|
||||||
|
- **Background**: Transparent
|
||||||
|
|
||||||
|
### Design Tips
|
||||||
|
- **Consistent Style**: All reactions in a set should have the same visual style
|
||||||
|
- **Clear Recognition**: Icons should be easily recognizable at small sizes
|
||||||
|
- **Good Contrast**: Work well on both light and dark backgrounds
|
||||||
|
- **Rounded Design**: Match the app's rounded aesthetic
|
||||||
|
|
||||||
|
### File Naming Convention
|
||||||
|
Use lowercase with underscores:
|
||||||
|
- `heart.png` (not `Heart.png`)
|
||||||
|
- `thumbs_up.png` (not `thumbsUp.png`)
|
||||||
|
- `thinking_face.png` (not `thinkingFace.png`)
|
||||||
|
|
||||||
|
## Credit System
|
||||||
|
|
||||||
|
Each reaction folder can include a `credit.md` file that:
|
||||||
|
- Displays at the bottom of the reaction tab
|
||||||
|
- Supports basic markdown formatting
|
||||||
|
- Provides attribution to content creators
|
||||||
|
- Shows automatically when users view the reaction set
|
||||||
|
|
||||||
|
### Markdown Support
|
||||||
|
- Headers: `# Title`
|
||||||
|
- Bold: `**text**`
|
||||||
|
- Italic: `*text*`
|
||||||
|
- Lists: `- item`
|
||||||
|
|
||||||
|
## Testing
|
||||||
|
|
||||||
|
The system includes robust error handling:
|
||||||
|
- If an image file is missing, it shows a placeholder icon
|
||||||
|
- If credit.md is missing, it shows default credit text
|
||||||
|
- If configuration is invalid, it falls back to emoji-only
|
||||||
|
- The reaction picker continues to function normally
|
||||||
|
|
||||||
|
## Asset Configuration
|
||||||
|
|
||||||
|
The `pubspec.yaml` only needs the parent folder:
|
||||||
|
```yaml
|
||||||
|
flutter:
|
||||||
|
uses-material-design: true
|
||||||
|
assets:
|
||||||
|
- assets/reactions/
|
||||||
|
```
|
||||||
|
|
||||||
|
This automatically includes all subfolders and files.
|
||||||
11
sojorn_app/assets/reactions/blue/credit.md
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
# Blue Reaction Set
|
||||||
|
|
||||||
|
**Source:** Custom created for Sojorn
|
||||||
|
|
||||||
|
**Description:** Blue-themed reaction icons with transparency
|
||||||
|
|
||||||
|
**Format:** PNG (64x64px recommended)
|
||||||
|
|
||||||
|
**Style:** Clean, modern blue color scheme
|
||||||
|
|
||||||
|
**Usage:** Great for calm, professional, and thoughtful reactions
|
||||||
251
sojorn_app/assets/reactions/dotto/anguished_face.svg
Normal file
|
|
@ -0,0 +1,251 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<svg version="1.1" width="16" height="16" xmlns="http://www.w3.org/2000/svg" shape-rendering="crispEdges">
|
||||||
|
<rect x="0" y="0" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="1" y="0" width="1" height="1" fill="#8AA1F6" />
|
||||||
|
<rect x="2" y="0" width="1" height="1" fill="#C9D4FD" />
|
||||||
|
<rect x="3" y="0" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="4" y="0" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="5" y="0" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="6" y="0" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="7" y="0" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="8" y="0" width="1" height="1" fill="#8AA1F6" />
|
||||||
|
<rect x="9" y="0" width="1" height="1" fill="#C9D4FD" />
|
||||||
|
<rect x="10" y="0" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="11" y="0" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="12" y="0" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="13" y="0" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="14" y="0" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="15" y="0" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="0" y="1" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="1" y="1" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="2" y="1" width="1" height="1" fill="#8AA1F6" />
|
||||||
|
<rect x="3" y="1" width="1" height="1" fill="#8AA1F6" />
|
||||||
|
<rect x="4" y="1" width="1" height="1" fill="#C9D4FD" />
|
||||||
|
<rect x="5" y="1" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="6" y="1" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="7" y="1" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="8" y="1" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="9" y="1" width="1" height="1" fill="#8AA1F6" />
|
||||||
|
<rect x="10" y="1" width="1" height="1" fill="#8AA1F6" />
|
||||||
|
<rect x="11" y="1" width="1" height="1" fill="#C9D4FD" />
|
||||||
|
<rect x="12" y="1" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="13" y="1" width="1" height="1" fill="#8AA1F6" />
|
||||||
|
<rect x="14" y="1" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="15" y="1" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="0" y="2" width="1" height="1" fill="#C9D4FD" />
|
||||||
|
<rect x="1" y="2" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="2" y="2" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="3" y="2" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="4" y="2" width="1" height="1" fill="#8AA1F6" />
|
||||||
|
<rect x="5" y="2" width="1" height="1" fill="#8AA1F6" />
|
||||||
|
<rect x="6" y="2" width="1" height="1" fill="#8AA1F6" />
|
||||||
|
<rect x="7" y="2" width="1" height="1" fill="#C9D4FD" />
|
||||||
|
<rect x="8" y="2" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="9" y="2" width="1" height="1" fill="#8AA1F6" />
|
||||||
|
<rect x="10" y="2" width="1" height="1" fill="#8AA1F6" />
|
||||||
|
<rect x="11" y="2" width="1" height="1" fill="#8AA1F6" />
|
||||||
|
<rect x="12" y="2" width="1" height="1" fill="#8AA1F6" />
|
||||||
|
<rect x="13" y="2" width="1" height="1" fill="#8AA1F6" />
|
||||||
|
<rect x="14" y="2" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="15" y="2" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="0" y="3" width="1" height="1" fill="#C9D4FD" />
|
||||||
|
<rect x="1" y="3" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="2" y="3" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="3" y="3" width="1" height="1" fill="#8AA1F6" />
|
||||||
|
<rect x="4" y="3" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="5" y="3" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="6" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="3" width="1" height="1" fill="#8AA1F6" />
|
||||||
|
<rect x="8" y="3" width="1" height="1" fill="#8AA1F6" />
|
||||||
|
<rect x="9" y="3" width="1" height="1" fill="#8AA1F6" />
|
||||||
|
<rect x="10" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="3" width="1" height="1" fill="#8AA1F6" />
|
||||||
|
<rect x="13" y="3" width="1" height="1" fill="#C9D4FD" />
|
||||||
|
<rect x="14" y="3" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="15" y="3" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="0" y="4" width="1" height="1" fill="#C9D4FD" />
|
||||||
|
<rect x="1" y="4" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="2" y="4" width="1" height="1" fill="#8AA1F6" />
|
||||||
|
<rect x="3" y="4" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="4" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="4" width="1" height="1" fill="#8AA1F6" />
|
||||||
|
<rect x="14" y="4" width="1" height="1" fill="#C9D4FD" />
|
||||||
|
<rect x="15" y="4" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="0" y="5" width="1" height="1" fill="#8AA1F6" />
|
||||||
|
<rect x="1" y="5" width="1" height="1" fill="#8AA1F6" />
|
||||||
|
<rect x="2" y="5" width="1" height="1" fill="#8AA1F6" />
|
||||||
|
<rect x="3" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="14" y="5" width="1" height="1" fill="#8AA1F6" />
|
||||||
|
<rect x="15" y="5" width="1" height="1" fill="#C9D4FD" />
|
||||||
|
<rect x="1" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="6" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="15" y="6" width="1" height="1" fill="#8AA1F6" />
|
||||||
|
<rect x="1" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="7" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="8" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="9" width="1" height="1" fill="#8AA1F6" />
|
||||||
|
<rect x="9" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="9" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="10" width="1" height="1" fill="#8AA1F6" />
|
||||||
|
<rect x="2" y="10" width="1" height="1" fill="#8AA1F6" />
|
||||||
|
<rect x="3" y="10" width="1" height="1" fill="#8AA1F6" />
|
||||||
|
<rect x="4" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="10" width="1" height="1" fill="#8AA1F6" />
|
||||||
|
<rect x="8" y="10" width="1" height="1" fill="#C9D4FD" />
|
||||||
|
<rect x="9" y="10" width="1" height="1" fill="#8AA1F6" />
|
||||||
|
<rect x="10" y="10" width="1" height="1" fill="#8AA1F6" />
|
||||||
|
<rect x="11" y="10" width="1" height="1" fill="#8AA1F6" />
|
||||||
|
<rect x="12" y="10" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="13" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="14" y="10" width="1" height="1" fill="#8AA1F6" />
|
||||||
|
<rect x="15" y="10" width="1" height="1" fill="#8AA1F6" />
|
||||||
|
<rect x="0" y="11" width="1" height="1" fill="#8AA1F6" />
|
||||||
|
<rect x="1" y="11" width="1" height="1" fill="#C9D4FD" />
|
||||||
|
<rect x="2" y="11" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="3" y="11" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="4" y="11" width="1" height="1" fill="#8AA1F6" />
|
||||||
|
<rect x="5" y="11" width="1" height="1" fill="#8AA1F6" />
|
||||||
|
<rect x="6" y="11" width="1" height="1" fill="#8AA1F6" />
|
||||||
|
<rect x="7" y="11" width="1" height="1" fill="#8AA1F6" />
|
||||||
|
<rect x="8" y="11" width="1" height="1" fill="#C9D4FD" />
|
||||||
|
<rect x="9" y="11" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="10" y="11" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="11" y="11" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="12" y="11" width="1" height="1" fill="#8AA1F6" />
|
||||||
|
<rect x="13" y="11" width="1" height="1" fill="#8AA1F6" />
|
||||||
|
<rect x="14" y="11" width="1" height="1" fill="#C9D4FD" />
|
||||||
|
<rect x="15" y="11" width="1" height="1" fill="#C9D4FD" />
|
||||||
|
<rect x="0" y="12" width="1" height="1" fill="#C9D4FD" />
|
||||||
|
<rect x="1" y="12" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="2" y="12" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="3" y="12" width="1" height="1" fill="#8AA1F6" />
|
||||||
|
<rect x="4" y="12" width="1" height="1" fill="#C9D4FD" />
|
||||||
|
<rect x="5" y="12" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="6" y="12" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="7" y="12" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="8" y="12" width="1" height="1" fill="#8AA1F6" />
|
||||||
|
<rect x="9" y="12" width="1" height="1" fill="#C9D4FD" />
|
||||||
|
<rect x="10" y="12" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="11" y="12" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="12" y="12" width="1" height="1" fill="#8AA1F6" />
|
||||||
|
<rect x="13" y="12" width="1" height="1" fill="#C9D4FD" />
|
||||||
|
<rect x="14" y="12" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="15" y="12" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="0" y="13" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="1" y="13" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="2" y="13" width="1" height="1" fill="#8AA1F6" />
|
||||||
|
<rect x="3" y="13" width="1" height="1" fill="#C9D4FD" />
|
||||||
|
<rect x="4" y="13" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="5" y="13" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="6" y="13" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="7" y="13" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="8" y="13" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="9" y="13" width="1" height="1" fill="#8AA1F6" />
|
||||||
|
<rect x="10" y="13" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="11" y="13" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="12" y="13" width="1" height="1" fill="#8AA1F6" />
|
||||||
|
<rect x="13" y="13" width="1" height="1" fill="#C9D4FD" />
|
||||||
|
<rect x="14" y="13" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="15" y="13" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="0" y="14" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="1" y="14" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="2" y="14" width="1" height="1" fill="#8AA1F6" />
|
||||||
|
<rect x="3" y="14" width="1" height="1" fill="#C9D4FD" />
|
||||||
|
<rect x="4" y="14" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="5" y="14" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="6" y="14" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="7" y="14" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="8" y="14" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="9" y="14" width="1" height="1" fill="#8AA1F6" />
|
||||||
|
<rect x="10" y="14" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="11" y="14" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="12" y="14" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="13" y="14" width="1" height="1" fill="#8AA1F6" />
|
||||||
|
<rect x="14" y="14" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="15" y="14" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="0" y="15" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="1" y="15" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="2" y="15" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="3" y="15" width="1" height="1" fill="#8AA1F6" />
|
||||||
|
<rect x="4" y="15" width="1" height="1" fill="#C9D4FD" />
|
||||||
|
<rect x="5" y="15" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="6" y="15" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="7" y="15" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="8" y="15" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="9" y="15" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="10" y="15" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="11" y="15" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="12" y="15" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="13" y="15" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="14" y="15" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="15" y="15" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 14 KiB |
151
sojorn_app/assets/reactions/dotto/beaming_face.svg
Normal file
|
|
@ -0,0 +1,151 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<svg version="1.1" width="16" height="16" xmlns="http://www.w3.org/2000/svg" shape-rendering="crispEdges">
|
||||||
|
<rect x="6" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="2" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="7" y="2" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="2" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="2" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="3" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="3" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="5" y="3" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="6" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="3" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="4" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="4" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="12" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="12" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="6" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="7" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="12" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="8" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="9" width="1" height="1" fill="#FFFFFF" />
|
||||||
|
<rect x="6" y="9" width="1" height="1" fill="#FFFFFF" />
|
||||||
|
<rect x="7" y="9" width="1" height="1" fill="#FFFFFF" />
|
||||||
|
<rect x="8" y="9" width="1" height="1" fill="#FFFFFF" />
|
||||||
|
<rect x="9" y="9" width="1" height="1" fill="#FFFFFF" />
|
||||||
|
<rect x="10" y="9" width="1" height="1" fill="#FFFFFF" />
|
||||||
|
<rect x="11" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="12" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="9" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="10" width="1" height="1" fill="#595757" />
|
||||||
|
<rect x="6" y="10" width="1" height="1" fill="#595757" />
|
||||||
|
<rect x="7" y="10" width="1" height="1" fill="#595757" />
|
||||||
|
<rect x="8" y="10" width="1" height="1" fill="#595757" />
|
||||||
|
<rect x="9" y="10" width="1" height="1" fill="#595757" />
|
||||||
|
<rect x="10" y="10" width="1" height="1" fill="#595757" />
|
||||||
|
<rect x="11" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="12" y="10" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="13" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="11" width="1" height="1" fill="#FFFFFF" />
|
||||||
|
<rect x="7" y="11" width="1" height="1" fill="#FFFFFF" />
|
||||||
|
<rect x="8" y="11" width="1" height="1" fill="#FFFFFF" />
|
||||||
|
<rect x="9" y="11" width="1" height="1" fill="#FFFFFF" />
|
||||||
|
<rect x="10" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="11" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="13" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="12" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="12" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="12" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="12" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="12" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="12" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="12" y="12" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="13" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="10" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 8.5 KiB |
151
sojorn_app/assets/reactions/dotto/blue_heart.svg
Normal file
|
|
@ -0,0 +1,151 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<svg version="1.1" width="16" height="16" xmlns="http://www.w3.org/2000/svg" shape-rendering="crispEdges">
|
||||||
|
<rect x="6" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="2" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="7" y="2" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="2" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="2" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="3" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="3" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="5" y="3" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="6" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="3" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="4" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="4" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="12" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="6" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="12" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="7" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="12" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="8" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="9" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="10" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="13" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="11" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="13" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="12" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="12" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="12" y="12" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="13" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="10" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 8.5 KiB |
154
sojorn_app/assets/reactions/dotto/broken_heart.svg
Normal file
|
|
@ -0,0 +1,154 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<svg version="1.1" width="16" height="16" xmlns="http://www.w3.org/2000/svg" shape-rendering="crispEdges">
|
||||||
|
<rect x="6" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="2" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="7" y="2" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="2" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="2" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="3" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="3" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="5" y="3" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="6" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="3" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="4" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="4" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="6" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="7" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="7" width="1" height="1" fill="#A69E9A" />
|
||||||
|
<rect x="15" y="7" width="1" height="1" fill="#A69E9A" />
|
||||||
|
<rect x="1" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="8" width="1" height="1" fill="#A69E9A" />
|
||||||
|
<rect x="12" y="8" width="1" height="1" fill="#A69E9A" />
|
||||||
|
<rect x="13" y="8" width="1" height="1" fill="#A69E9A" />
|
||||||
|
<rect x="14" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="9" width="1" height="1" fill="#A69E9A" />
|
||||||
|
<rect x="11" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="9" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="15" y="9" width="1" height="1" fill="#A69E9A" />
|
||||||
|
<rect x="2" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="10" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="13" y="10" width="1" height="1" fill="#A69E9A" />
|
||||||
|
<rect x="14" y="10" width="1" height="1" fill="#A69E9A" />
|
||||||
|
<rect x="2" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="11" width="1" height="1" fill="#A69E9A" />
|
||||||
|
<rect x="11" y="11" width="1" height="1" fill="#A69E9A" />
|
||||||
|
<rect x="12" y="11" width="1" height="1" fill="#A69E9A" />
|
||||||
|
<rect x="13" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="12" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="12" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="12" y="12" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="13" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="10" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 8.6 KiB |
11
sojorn_app/assets/reactions/dotto/credit.md
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
# Dotto Emoji Set
|
||||||
|
|
||||||
|
**Source:** [Dotto Emoji](https://github.com/meritite-union/dotto-emoji) by meritite-union
|
||||||
|
|
||||||
|
**Description:** 16x16 pixel art emoji set with a retro aesthetic
|
||||||
|
|
||||||
|
**License:** Custom license - see repository for details
|
||||||
|
|
||||||
|
**Format:** Scalable Vector Graphics (SVG)
|
||||||
|
|
||||||
|
**Style:** Pixel art with clean, minimalist design
|
||||||
151
sojorn_app/assets/reactions/dotto/disappointed_face.svg
Normal file
|
|
@ -0,0 +1,151 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<svg version="1.1" width="16" height="16" xmlns="http://www.w3.org/2000/svg" shape-rendering="crispEdges">
|
||||||
|
<rect x="6" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="2" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="7" y="2" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="2" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="2" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="3" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="3" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="5" y="3" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="6" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="3" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="4" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="4" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="6" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="7" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="8" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="9" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="10" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="13" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="11" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="13" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="12" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="12" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="12" y="12" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="13" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="10" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 8.5 KiB |
151
sojorn_app/assets/reactions/dotto/downcast_face.svg
Normal file
|
|
@ -0,0 +1,151 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<svg version="1.1" width="16" height="16" xmlns="http://www.w3.org/2000/svg" shape-rendering="crispEdges">
|
||||||
|
<rect x="6" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="2" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="7" y="2" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="2" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="2" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="3" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="3" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="5" y="3" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="6" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="3" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="4" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="4" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="12" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="12" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="6" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="12" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="7" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="8" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="9" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="10" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="13" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="11" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="13" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="12" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="12" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="12" y="12" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="13" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="10" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 8.5 KiB |
93
sojorn_app/assets/reactions/dotto/download_dotto_emoji.py
Normal file
|
|
@ -0,0 +1,93 @@
|
||||||
|
#!/usr/bin/env python3
|
||||||
|
"""
|
||||||
|
Download Dotto Emoji SVG files from GitHub repository
|
||||||
|
"""
|
||||||
|
|
||||||
|
import requests
|
||||||
|
import os
|
||||||
|
from urllib.parse import urlparse
|
||||||
|
|
||||||
|
# Mapping of emoji names to GitHub SVG files
|
||||||
|
EMOJI_MAPPING = {
|
||||||
|
'heart.svg': 'https://raw.githubusercontent.com/meritite-union/dotto-emoji/main/icons/svg/Dotto%20Emoji0.svg',
|
||||||
|
'thumbs_up.svg': 'https://raw.githubusercontent.com/meritite-union/dotto-emoji/main/icons/svg/Dotto%20Emoji1.svg',
|
||||||
|
'laughing_face.svg': 'https://raw.githubusercontent.com/meritite-union/dotto-emoji/main/icons/svg/face_with_tears_of_joy.svg',
|
||||||
|
'face_with_open_mouth.svg': 'https://raw.githubusercontent.com/meritite-union/dotto-emoji/main/icons/svg/Dotto%20Emoji2.svg',
|
||||||
|
'sad_face.svg': 'https://raw.githubusercontent.com/meritite-union/dotto-emoji/main/icons/svg/Dotto%20Emoji3.svg',
|
||||||
|
'angry_face.svg': 'https://raw.githubusercontent.com/meritite-union/dotto-emoji/main/icons/svg/Dotto%20Emoji4.svg',
|
||||||
|
'party_popper.svg': 'https://raw.githubusercontent.com/meritite-union/dotto-emoji/main/icons/svg/Dotto%20Emoji5.svg',
|
||||||
|
'fire.svg': 'https://raw.githubusercontent.com/meritite-union/dotto-emoji/main/icons/svg/Dotto%20Emoji6.svg',
|
||||||
|
'clapping_hands.svg': 'https://raw.githubusercontent.com/meritite-union/dotto-emoji/main/icons/svg/Dotto%20Emoji7.svg',
|
||||||
|
'folded_hands.svg': 'https://raw.githubusercontent.com/meritite-union/dotto-emoji/main/icons/svg/Dotto%20Emoji8.svg',
|
||||||
|
'hundred_points.svg': 'https://raw.githubusercontent.com/meritite-union/dotto-emoji/main/icons/svg/Dotto%20Emoji9.svg',
|
||||||
|
'thinking_face.svg': 'https://raw.githubusercontent.com/meritite-union/dotto-emoji/main/icons/svg/Dotto%20Emoji10.svg',
|
||||||
|
'beaming_face.svg': 'https://raw.githubusercontent.com/meritite-union/dotto-emoji/main/icons/svg/beaming_face_with_smiling_eyes.svg',
|
||||||
|
'face_with_tears.svg': 'https://raw.githubusercontent.com/meritite-union/dotto-emoji/main/icons/svg/face_with_tears_of_joy.svg',
|
||||||
|
'grinning_face.svg': 'https://raw.githubusercontent.com/meritite-union/dotto-emoji/main/icons/svg/grinning_face.svg',
|
||||||
|
'smiling_face.svg': 'https://raw.githubusercontent.com/meritite-union/dotto-emoji/main/icons/svg/smiling_face_with_smiling_eyes.svg',
|
||||||
|
'winking_face.svg': 'https://raw.githubusercontent.com/meritite-union/dotto-emoji/main/icons/svg/winking_face.svg',
|
||||||
|
'melting_face.svg': 'https://raw.githubusercontent.com/meritite-union/dotto-emoji/main/icons/svg/melting_face.svg',
|
||||||
|
'upside_down_face.svg': 'https://raw.githubusercontent.com/meritite-union/dotto-emoji/main/icons/svg/upside-down_face.svg',
|
||||||
|
'rolling_face.svg': 'https://raw.githubusercontent.com/meritite-union/dotto-emoji/main/icons/svg/rolling_on_the_floor_laughing.svg',
|
||||||
|
'slightly_smiling_face.svg': 'https://raw.githubusercontent.com/meritite-union/dotto-emoji/main/icons/svg/slightly_smiling_face.svg',
|
||||||
|
'smiling_face_with_halo.svg': 'https://raw.githubusercontent.com/meritite-union/dotto-emoji/main/icons/svg/smiling_face_with_halo.svg',
|
||||||
|
'smiling_face_with_hearts.svg': 'https://raw.githubusercontent.com/meritite-union/dotto-emoji/main/icons/svg/smiling_face_with_hearts.svg',
|
||||||
|
'face_with_monocle.svg': 'https://raw.githubusercontent.com/meritite-union/dotto-emoji/main/icons/svg/Dotto%20Emoji65.svg',
|
||||||
|
'nerd_face.svg': 'https://raw.githubusercontent.com/meritite-union/dotto-emoji/main/icons/svg/Dotto%20Emoji66.svg',
|
||||||
|
'party_face.svg': 'https://raw.githubusercontent.com/meritite-union/dotto-emoji/main/icons/svg/Dotto%20Emoji67.svg',
|
||||||
|
'sunglasses_face.svg': 'https://raw.githubusercontent.com/meritite-union/dotto-emoji/main/icons/svg/Dotto%20Emoji68.svg',
|
||||||
|
'disappointed_face.svg': 'https://raw.githubusercontent.com/meritite-union/dotto-emoji/main/icons/svg/Dotto%20Emoji69.svg',
|
||||||
|
'worried_face.svg': 'https://raw.githubusercontent.com/meritite-union/dotto-emoji/main/icons/svg/Dotto%20Emoji70.svg',
|
||||||
|
'anguished_face.svg': 'https://raw.githubusercontent.com/meritite-union/dotto-emoji/main/icons/svg/Dotto%20Emoji71.svg',
|
||||||
|
'fearful_face.svg': 'https://raw.githubusercontent.com/meritite-union/dotto-emoji/main/icons/svg/Dotto%20Emoji72.svg',
|
||||||
|
'downcast_face.svg': 'https://raw.githubusercontent.com/meritite-union/dotto-emoji/main/icons/svg/Dotto%20Emoji73.svg',
|
||||||
|
'loudly_crying_face.svg': 'https://raw.githubusercontent.com/meritite-union/dotto-emoji/main/icons/svg/Dotto%20Emoji74.svg',
|
||||||
|
'skull.svg': 'https://raw.githubusercontent.com/meritite-union/dotto-emoji/main/icons/svg/Dotto%20Emoji75.svg',
|
||||||
|
'ghost.svg': 'https://raw.githubusercontent.com/meritite-union/dotto-emoji/main/icons/svg/Dotto%20Emoji76.svg',
|
||||||
|
'robot_face.svg': 'https://raw.githubusercontent.com/meritite-union/dotto-emoji/main/icons/svg/Dotto%20Emoji77.svg',
|
||||||
|
'heart_with_arrow.svg': 'https://raw.githubusercontent.com/meritite-union/dotto-emoji/main/icons/svg/Dotto%20Emoji78.svg',
|
||||||
|
'broken_heart.svg': 'https://raw.githubusercontent.com/meritite-union/dotto-emoji/main/icons/svg/Dotto%20Emoji79.svg',
|
||||||
|
'sparkling_heart.svg': 'https://raw.githubusercontent.com/meritite-union/dotto-emoji/main/icons/svg/Dotto%20Emoji80.svg',
|
||||||
|
'green_heart.svg': 'https://raw.githubusercontent.com/meritite-union/dotto-emoji/main/icons/svg/Dotto%20Emoji81.svg',
|
||||||
|
'blue_heart.svg': 'https://raw.githubusercontent.com/meritite-union/dotto-emoji/main/icons/svg/Dotto%20Emoji82.svg',
|
||||||
|
'purple_heart.svg': 'https://raw.githubusercontent.com/meritite-union/dotto-emoji/main/icons/svg/Dotto%20Emoji83.svg',
|
||||||
|
}
|
||||||
|
|
||||||
|
def download_file(url, local_path):
|
||||||
|
"""Download a file from URL to local path"""
|
||||||
|
try:
|
||||||
|
response = requests.get(url, timeout=10)
|
||||||
|
response.raise_for_status()
|
||||||
|
|
||||||
|
with open(local_path, 'wb') as f:
|
||||||
|
f.write(response.content)
|
||||||
|
|
||||||
|
print(f"✓ Downloaded {os.path.basename(local_path)}")
|
||||||
|
return True
|
||||||
|
except Exception as e:
|
||||||
|
print(f"✗ Failed to download {os.path.basename(local_path)}: {e}")
|
||||||
|
return False
|
||||||
|
|
||||||
|
def main():
|
||||||
|
"""Main function to download all emoji files"""
|
||||||
|
print("Downloading Dotto Emoji SVG files...")
|
||||||
|
|
||||||
|
# Create directory if it doesn't exist
|
||||||
|
os.makedirs('.', exist_ok=True)
|
||||||
|
|
||||||
|
success_count = 0
|
||||||
|
total_count = len(EMOJI_MAPPING)
|
||||||
|
|
||||||
|
for filename, url in EMOJI_MAPPING.items():
|
||||||
|
local_path = filename
|
||||||
|
if download_file(url, local_path):
|
||||||
|
success_count += 1
|
||||||
|
|
||||||
|
print(f"\nDownload complete: {success_count}/{total_count} files downloaded")
|
||||||
|
|
||||||
|
if success_count > 0:
|
||||||
|
print("\nThe Dotto emoji set is now ready to use!")
|
||||||
|
print("You can now run 'flutter pub get' to install dependencies.")
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
||||||
157
sojorn_app/assets/reactions/dotto/face_with_monocle.svg
Normal file
|
|
@ -0,0 +1,157 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<svg version="1.1" width="16" height="16" xmlns="http://www.w3.org/2000/svg" shape-rendering="crispEdges">
|
||||||
|
<rect x="6" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="2" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="7" y="2" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="2" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="2" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="3" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="3" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="5" y="3" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="6" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="3" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="4" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="4" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="6" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="7" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="8" width="1" height="1" fill="#595757" />
|
||||||
|
<rect x="6" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="8" width="1" height="1" fill="#595757" />
|
||||||
|
<rect x="8" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="8" width="1" height="1" fill="#595757" />
|
||||||
|
<rect x="10" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="12" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="8" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="12" y="9" width="1" height="1" fill="#595757" />
|
||||||
|
<rect x="13" y="9" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="10" width="1" height="1" fill="#595757" />
|
||||||
|
<rect x="6" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="10" width="1" height="1" fill="#595757" />
|
||||||
|
<rect x="8" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="10" width="1" height="1" fill="#595757" />
|
||||||
|
<rect x="10" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="10" width="1" height="1" fill="#595757" />
|
||||||
|
<rect x="12" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="13" y="10" width="1" height="1" fill="#595757" />
|
||||||
|
<rect x="14" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="11" width="1" height="1" fill="#595757" />
|
||||||
|
<rect x="12" y="11" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="13" y="11" width="1" height="1" fill="#595757" />
|
||||||
|
<rect x="14" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="12" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="12" width="1" height="1" fill="#595757" />
|
||||||
|
<rect x="12" y="12" width="1" height="1" fill="#595757" />
|
||||||
|
<rect x="13" y="12" width="1" height="1" fill="#595757" />
|
||||||
|
<rect x="14" y="12" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="13" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="10" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="12" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="13" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 8.8 KiB |
151
sojorn_app/assets/reactions/dotto/face_with_tears.svg
Normal file
|
|
@ -0,0 +1,151 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<svg version="1.1" width="16" height="16" xmlns="http://www.w3.org/2000/svg" shape-rendering="crispEdges">
|
||||||
|
<rect x="6" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="2" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="7" y="2" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="2" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="2" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="3" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="3" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="5" y="3" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="6" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="3" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="4" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="4" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="5" width="1" height="1" fill="#42BFE8" />
|
||||||
|
<rect x="4" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="12" y="5" width="1" height="1" fill="#42BFE8" />
|
||||||
|
<rect x="13" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="6" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="3" y="6" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="4" y="6" width="1" height="1" fill="#42BFE8" />
|
||||||
|
<rect x="5" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="6" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="12" y="6" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="13" y="6" width="1" height="1" fill="#42BFE8" />
|
||||||
|
<rect x="14" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="7" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="3" y="7" width="1" height="1" fill="#42BFE8" />
|
||||||
|
<rect x="4" y="7" width="1" height="1" fill="#42BFE8" />
|
||||||
|
<rect x="5" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="7" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="12" y="7" width="1" height="1" fill="#42BFE8" />
|
||||||
|
<rect x="13" y="7" width="1" height="1" fill="#42BFE8" />
|
||||||
|
<rect x="14" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="8" width="1" height="1" fill="#42BFE8" />
|
||||||
|
<rect x="2" y="8" width="1" height="1" fill="#42BFE8" />
|
||||||
|
<rect x="3" y="8" width="1" height="1" fill="#42BFE8" />
|
||||||
|
<rect x="4" y="8" width="1" height="1" fill="#42BFE8" />
|
||||||
|
<rect x="5" y="8" width="1" height="1" fill="#2B4E95" />
|
||||||
|
<rect x="6" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="8" width="1" height="1" fill="#42BFE8" />
|
||||||
|
<rect x="11" y="8" width="1" height="1" fill="#42BFE8" />
|
||||||
|
<rect x="12" y="8" width="1" height="1" fill="#42BFE8" />
|
||||||
|
<rect x="13" y="8" width="1" height="1" fill="#42BFE8" />
|
||||||
|
<rect x="14" y="8" width="1" height="1" fill="#2B4E95" />
|
||||||
|
<rect x="1" y="9" width="1" height="1" fill="#42BFE8" />
|
||||||
|
<rect x="2" y="9" width="1" height="1" fill="#42BFE8" />
|
||||||
|
<rect x="3" y="9" width="1" height="1" fill="#42BFE8" />
|
||||||
|
<rect x="4" y="9" width="1" height="1" fill="#2B4E95" />
|
||||||
|
<rect x="5" y="9" width="1" height="1" fill="#2B4E95" />
|
||||||
|
<rect x="6" y="9" width="1" height="1" fill="#FFFFFF" />
|
||||||
|
<rect x="7" y="9" width="1" height="1" fill="#FFFFFF" />
|
||||||
|
<rect x="8" y="9" width="1" height="1" fill="#FFFFFF" />
|
||||||
|
<rect x="9" y="9" width="1" height="1" fill="#FFFFFF" />
|
||||||
|
<rect x="10" y="9" width="1" height="1" fill="#42BFE8" />
|
||||||
|
<rect x="11" y="9" width="1" height="1" fill="#42BFE8" />
|
||||||
|
<rect x="12" y="9" width="1" height="1" fill="#42BFE8" />
|
||||||
|
<rect x="13" y="9" width="1" height="1" fill="#2B4E95" />
|
||||||
|
<rect x="14" y="9" width="1" height="1" fill="#2B4E95" />
|
||||||
|
<rect x="2" y="10" width="1" height="1" fill="#2B4E95" />
|
||||||
|
<rect x="3" y="10" width="1" height="1" fill="#2B4E95" />
|
||||||
|
<rect x="4" y="10" width="1" height="1" fill="#2B4E95" />
|
||||||
|
<rect x="5" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="10" width="1" height="1" fill="#2B4E95" />
|
||||||
|
<rect x="12" y="10" width="1" height="1" fill="#2B4E95" />
|
||||||
|
<rect x="13" y="10" width="1" height="1" fill="#2B4E95" />
|
||||||
|
<rect x="2" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="11" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="13" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="12" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="12" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="12" y="12" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="13" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="10" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 8.5 KiB |
151
sojorn_app/assets/reactions/dotto/fearful_face.svg
Normal file
|
|
@ -0,0 +1,151 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<svg version="1.1" width="16" height="16" xmlns="http://www.w3.org/2000/svg" shape-rendering="crispEdges">
|
||||||
|
<rect x="6" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="2" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="7" y="2" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="2" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="2" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="3" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="3" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="5" y="3" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="6" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="3" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="4" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="4" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="12" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="6" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="12" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="7" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="8" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="12" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="9" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="10" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="13" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="11" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="13" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="12" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="12" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="12" y="12" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="13" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="10" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 8.5 KiB |
157
sojorn_app/assets/reactions/dotto/ghost.svg
Normal file
|
|
@ -0,0 +1,157 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<svg version="1.1" width="16" height="16" xmlns="http://www.w3.org/2000/svg" shape-rendering="crispEdges">
|
||||||
|
<rect x="6" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="2" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="7" y="2" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="2" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="2" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="3" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="3" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="5" y="3" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="6" y="3" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="3" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="3" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="4" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="4" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="12" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="6" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="7" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="8" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="9" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="10" width="1" height="1" fill="#C9D4FD" />
|
||||||
|
<rect x="7" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="10" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="13" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="11" width="1" height="1" fill="#C9D4FD" />
|
||||||
|
<rect x="4" y="11" width="1" height="1" fill="#C9D4FD" />
|
||||||
|
<rect x="5" y="11" width="1" height="1" fill="#C9D4FD" />
|
||||||
|
<rect x="6" y="11" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="7" y="11" width="1" height="1" fill="#C9D4FD" />
|
||||||
|
<rect x="8" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="11" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="13" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="12" width="1" height="1" fill="#C9D4FD" />
|
||||||
|
<rect x="3" y="12" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="4" y="12" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="5" y="12" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="6" y="12" width="1" height="1" fill="#C9D4FD" />
|
||||||
|
<rect x="7" y="12" width="1" height="1" fill="#C9D4FD" />
|
||||||
|
<rect x="8" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="12" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="12" y="12" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="13" width="1" height="1" fill="#C9D4FD" />
|
||||||
|
<rect x="3" y="13" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="4" y="13" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="5" y="13" width="1" height="1" fill="#C9D4FD" />
|
||||||
|
<rect x="6" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="13" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="10" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="14" width="1" height="1" fill="#C9D4FD" />
|
||||||
|
<rect x="4" y="14" width="1" height="1" fill="#C9D4FD" />
|
||||||
|
<rect x="5" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 8.8 KiB |
151
sojorn_app/assets/reactions/dotto/green_heart.svg
Normal file
|
|
@ -0,0 +1,151 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<svg version="1.1" width="16" height="16" xmlns="http://www.w3.org/2000/svg" shape-rendering="crispEdges">
|
||||||
|
<rect x="6" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="2" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="7" y="2" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="2" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="2" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="3" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="3" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="5" y="3" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="6" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="3" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="4" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="4" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="12" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="6" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="12" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="7" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="8" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="9" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="10" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="13" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="11" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="13" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="12" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="12" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="12" y="12" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="13" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="10" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 8.5 KiB |
151
sojorn_app/assets/reactions/dotto/grinning_face.svg
Normal file
|
|
@ -0,0 +1,151 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<svg version="1.1" width="16" height="16" xmlns="http://www.w3.org/2000/svg" shape-rendering="crispEdges">
|
||||||
|
<rect x="6" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="2" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="7" y="2" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="2" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="2" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="3" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="3" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="5" y="3" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="6" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="3" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="4" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="4" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="6" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="7" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="12" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="8" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="9" width="1" height="1" fill="#FFFFFF" />
|
||||||
|
<rect x="6" y="9" width="1" height="1" fill="#FFFFFF" />
|
||||||
|
<rect x="7" y="9" width="1" height="1" fill="#FFFFFF" />
|
||||||
|
<rect x="8" y="9" width="1" height="1" fill="#FFFFFF" />
|
||||||
|
<rect x="9" y="9" width="1" height="1" fill="#FFFFFF" />
|
||||||
|
<rect x="10" y="9" width="1" height="1" fill="#FFFFFF" />
|
||||||
|
<rect x="11" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="12" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="9" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="10" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="13" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="11" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="13" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="12" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="12" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="12" y="12" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="13" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="10" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 8.5 KiB |
195
sojorn_app/assets/reactions/dotto/heart_with_arrow.svg
Normal file
|
|
@ -0,0 +1,195 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<svg version="1.1" width="16" height="16" xmlns="http://www.w3.org/2000/svg" shape-rendering="crispEdges">
|
||||||
|
<rect x="5" y="0" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="0" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="0" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="0" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="1" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="6" y="1" width="1" height="1" fill="#282011" />
|
||||||
|
<rect x="7" y="1" width="1" height="1" fill="#282011" />
|
||||||
|
<rect x="8" y="1" width="1" height="1" fill="#282011" />
|
||||||
|
<rect x="9" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="13" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="14" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="2" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="4" y="2" width="1" height="1" fill="#28251A" />
|
||||||
|
<rect x="5" y="2" width="1" height="1" fill="#282011" />
|
||||||
|
<rect x="6" y="2" width="1" height="1" fill="#FEEB80" />
|
||||||
|
<rect x="7" y="2" width="1" height="1" fill="#ECBB37" />
|
||||||
|
<rect x="8" y="2" width="1" height="1" fill="#ECBB37" />
|
||||||
|
<rect x="9" y="2" width="1" height="1" fill="#ECBB37" />
|
||||||
|
<rect x="10" y="2" width="1" height="1" fill="#261A11" />
|
||||||
|
<rect x="11" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="14" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="3" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="3" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="3" y="3" width="1" height="1" fill="#282011" />
|
||||||
|
<rect x="4" y="3" width="1" height="1" fill="#FEEB80" />
|
||||||
|
<rect x="5" y="3" width="1" height="1" fill="#F2E07A" />
|
||||||
|
<rect x="6" y="3" width="1" height="1" fill="#D4A933" />
|
||||||
|
<rect x="7" y="3" width="1" height="1" fill="#E0B439" />
|
||||||
|
<rect x="8" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="3" width="1" height="1" fill="#ECBB37" />
|
||||||
|
<rect x="12" y="3" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="2" y="4" width="1" height="1" fill="#282011" />
|
||||||
|
<rect x="3" y="4" width="1" height="1" fill="#FEEB80" />
|
||||||
|
<rect x="4" y="4" width="1" height="1" fill="#ECBB37" />
|
||||||
|
<rect x="5" y="4" width="1" height="1" fill="#F9C83E" />
|
||||||
|
<rect x="6" y="4" width="1" height="1" fill="#E0B439" />
|
||||||
|
<rect x="7" y="4" width="1" height="1" fill="#1A160F" />
|
||||||
|
<rect x="8" y="4" width="1" height="1" fill="#322813" />
|
||||||
|
<rect x="9" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="4" width="1" height="1" fill="#E0B235" />
|
||||||
|
<rect x="13" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="0" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="2" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="5" width="1" height="1" fill="#ECBB37" />
|
||||||
|
<rect x="4" y="5" width="1" height="1" fill="#F9C83E" />
|
||||||
|
<rect x="5" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="5" width="1" height="1" fill="#322813" />
|
||||||
|
<rect x="8" y="5" width="1" height="1" fill="#261A11" />
|
||||||
|
<rect x="9" y="5" width="1" height="1" fill="#ECBB37" />
|
||||||
|
<rect x="10" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="5" width="1" height="1" fill="#F6BE39" />
|
||||||
|
<rect x="13" y="5" width="1" height="1" fill="#1A160F" />
|
||||||
|
<rect x="14" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="0" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="6" width="1" height="1" fill="#282011" />
|
||||||
|
<rect x="2" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="6" width="1" height="1" fill="#ECBB37" />
|
||||||
|
<rect x="9" y="6" width="1" height="1" fill="#D4A933" />
|
||||||
|
<rect x="10" y="6" width="1" height="1" fill="#E0B235" />
|
||||||
|
<rect x="11" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="6" width="1" height="1" fill="#F6BE39" />
|
||||||
|
<rect x="13" y="6" width="1" height="1" fill="#D28031" />
|
||||||
|
<rect x="14" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="0" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="7" width="1" height="1" fill="#282011" />
|
||||||
|
<rect x="2" y="7" width="1" height="1" fill="#ECBB37" />
|
||||||
|
<rect x="3" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="7" width="1" height="1" fill="#E0B235" />
|
||||||
|
<rect x="5" y="7" width="1" height="1" fill="#E0B235" />
|
||||||
|
<rect x="6" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="7" width="1" height="1" fill="#E0B235" />
|
||||||
|
<rect x="10" y="7" width="1" height="1" fill="#1A160F" />
|
||||||
|
<rect x="11" y="7" width="1" height="1" fill="#322813" />
|
||||||
|
<rect x="12" y="7" width="1" height="1" fill="#F6BE39" />
|
||||||
|
<rect x="13" y="7" width="1" height="1" fill="#D28031" />
|
||||||
|
<rect x="14" y="7" width="1" height="1" fill="#261A11" />
|
||||||
|
<rect x="15" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="0" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="8" width="1" height="1" fill="#282011" />
|
||||||
|
<rect x="2" y="8" width="1" height="1" fill="#ECBB37" />
|
||||||
|
<rect x="3" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="8" width="1" height="1" fill="#E0B235" />
|
||||||
|
<rect x="5" y="8" width="1" height="1" fill="#1A160F" />
|
||||||
|
<rect x="6" y="8" width="1" height="1" fill="#1A160F" />
|
||||||
|
<rect x="7" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="8" width="1" height="1" fill="#322813" />
|
||||||
|
<rect x="11" y="8" width="1" height="1" fill="#261A11" />
|
||||||
|
<rect x="12" y="8" width="1" height="1" fill="#EAB537" />
|
||||||
|
<rect x="13" y="8" width="1" height="1" fill="#D28031" />
|
||||||
|
<rect x="14" y="8" width="1" height="1" fill="#261A11" />
|
||||||
|
<rect x="15" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="9" width="1" height="1" fill="#ECBB37" />
|
||||||
|
<rect x="3" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="9" width="1" height="1" fill="#E0B235" />
|
||||||
|
<rect x="5" y="9" width="1" height="1" fill="#1A160F" />
|
||||||
|
<rect x="6" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="9" width="1" height="1" fill="#261A11" />
|
||||||
|
<rect x="8" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="9" width="1" height="1" fill="#EAB537" />
|
||||||
|
<rect x="12" y="9" width="1" height="1" fill="#D4A933" />
|
||||||
|
<rect x="13" y="9" width="1" height="1" fill="#EA9137" />
|
||||||
|
<rect x="14" y="9" width="1" height="1" fill="#261A11" />
|
||||||
|
<rect x="15" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="10" width="1" height="1" fill="#261A11" />
|
||||||
|
<rect x="3" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="10" width="1" height="1" fill="#322813" />
|
||||||
|
<rect x="6" y="10" width="1" height="1" fill="#261A11" />
|
||||||
|
<rect x="7" y="10" width="1" height="1" fill="#261A11" />
|
||||||
|
<rect x="8" y="10" width="1" height="1" fill="#ECBB37" />
|
||||||
|
<rect x="9" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="10" width="1" height="1" fill="#F6BE39" />
|
||||||
|
<rect x="12" y="10" width="1" height="1" fill="#D28031" />
|
||||||
|
<rect x="13" y="10" width="1" height="1" fill="#282011" />
|
||||||
|
<rect x="14" y="10" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="15" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="11" width="1" height="1" fill="#ECBB37" />
|
||||||
|
<rect x="4" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="11" width="1" height="1" fill="#ECBB37" />
|
||||||
|
<rect x="7" y="11" width="1" height="1" fill="#ECBB37" />
|
||||||
|
<rect x="8" y="11" width="1" height="1" fill="#ECBB37" />
|
||||||
|
<rect x="9" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="11" width="1" height="1" fill="#F6BE39" />
|
||||||
|
<rect x="11" y="11" width="1" height="1" fill="#E0B235" />
|
||||||
|
<rect x="12" y="11" width="1" height="1" fill="#EA9137" />
|
||||||
|
<rect x="13" y="11" width="1" height="1" fill="#261A11" />
|
||||||
|
<rect x="14" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="12" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="12" width="1" height="1" fill="#E0B235" />
|
||||||
|
<rect x="5" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="12" width="1" height="1" fill="#F6BE39" />
|
||||||
|
<rect x="9" y="12" width="1" height="1" fill="#E0B235" />
|
||||||
|
<rect x="10" y="12" width="1" height="1" fill="#E0B235" />
|
||||||
|
<rect x="11" y="12" width="1" height="1" fill="#EA9137" />
|
||||||
|
<rect x="12" y="12" width="1" height="1" fill="#282011" />
|
||||||
|
<rect x="13" y="12" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="12" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="13" width="1" height="1" fill="#1A160F" />
|
||||||
|
<rect x="6" y="13" width="1" height="1" fill="#E0B235" />
|
||||||
|
<rect x="7" y="13" width="1" height="1" fill="#E0B235" />
|
||||||
|
<rect x="8" y="13" width="1" height="1" fill="#E0B235" />
|
||||||
|
<rect x="9" y="13" width="1" height="1" fill="#EA9137" />
|
||||||
|
<rect x="10" y="13" width="1" height="1" fill="#282011" />
|
||||||
|
<rect x="11" y="13" width="1" height="1" fill="#282011" />
|
||||||
|
<rect x="12" y="13" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="13" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="14" width="1" height="1" fill="#282011" />
|
||||||
|
<rect x="8" y="14" width="1" height="1" fill="#282011" />
|
||||||
|
<rect x="9" y="14" width="1" height="1" fill="#282011" />
|
||||||
|
<rect x="10" y="14" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="11" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="12" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="15" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="15" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="15" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="15" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 11 KiB |
151
sojorn_app/assets/reactions/dotto/laughing_face.svg
Normal file
|
|
@ -0,0 +1,151 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<svg version="1.1" width="16" height="16" xmlns="http://www.w3.org/2000/svg" shape-rendering="crispEdges">
|
||||||
|
<rect x="6" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="2" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="7" y="2" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="2" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="2" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="3" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="3" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="5" y="3" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="6" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="3" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="4" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="4" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="5" width="1" height="1" fill="#42BFE8" />
|
||||||
|
<rect x="4" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="12" y="5" width="1" height="1" fill="#42BFE8" />
|
||||||
|
<rect x="13" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="6" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="3" y="6" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="4" y="6" width="1" height="1" fill="#42BFE8" />
|
||||||
|
<rect x="5" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="6" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="12" y="6" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="13" y="6" width="1" height="1" fill="#42BFE8" />
|
||||||
|
<rect x="14" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="7" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="3" y="7" width="1" height="1" fill="#42BFE8" />
|
||||||
|
<rect x="4" y="7" width="1" height="1" fill="#42BFE8" />
|
||||||
|
<rect x="5" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="7" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="12" y="7" width="1" height="1" fill="#42BFE8" />
|
||||||
|
<rect x="13" y="7" width="1" height="1" fill="#42BFE8" />
|
||||||
|
<rect x="14" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="8" width="1" height="1" fill="#42BFE8" />
|
||||||
|
<rect x="2" y="8" width="1" height="1" fill="#42BFE8" />
|
||||||
|
<rect x="3" y="8" width="1" height="1" fill="#42BFE8" />
|
||||||
|
<rect x="4" y="8" width="1" height="1" fill="#42BFE8" />
|
||||||
|
<rect x="5" y="8" width="1" height="1" fill="#2B4E95" />
|
||||||
|
<rect x="6" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="8" width="1" height="1" fill="#42BFE8" />
|
||||||
|
<rect x="11" y="8" width="1" height="1" fill="#42BFE8" />
|
||||||
|
<rect x="12" y="8" width="1" height="1" fill="#42BFE8" />
|
||||||
|
<rect x="13" y="8" width="1" height="1" fill="#42BFE8" />
|
||||||
|
<rect x="14" y="8" width="1" height="1" fill="#2B4E95" />
|
||||||
|
<rect x="1" y="9" width="1" height="1" fill="#42BFE8" />
|
||||||
|
<rect x="2" y="9" width="1" height="1" fill="#42BFE8" />
|
||||||
|
<rect x="3" y="9" width="1" height="1" fill="#42BFE8" />
|
||||||
|
<rect x="4" y="9" width="1" height="1" fill="#2B4E95" />
|
||||||
|
<rect x="5" y="9" width="1" height="1" fill="#2B4E95" />
|
||||||
|
<rect x="6" y="9" width="1" height="1" fill="#FFFFFF" />
|
||||||
|
<rect x="7" y="9" width="1" height="1" fill="#FFFFFF" />
|
||||||
|
<rect x="8" y="9" width="1" height="1" fill="#FFFFFF" />
|
||||||
|
<rect x="9" y="9" width="1" height="1" fill="#FFFFFF" />
|
||||||
|
<rect x="10" y="9" width="1" height="1" fill="#42BFE8" />
|
||||||
|
<rect x="11" y="9" width="1" height="1" fill="#42BFE8" />
|
||||||
|
<rect x="12" y="9" width="1" height="1" fill="#42BFE8" />
|
||||||
|
<rect x="13" y="9" width="1" height="1" fill="#2B4E95" />
|
||||||
|
<rect x="14" y="9" width="1" height="1" fill="#2B4E95" />
|
||||||
|
<rect x="2" y="10" width="1" height="1" fill="#2B4E95" />
|
||||||
|
<rect x="3" y="10" width="1" height="1" fill="#2B4E95" />
|
||||||
|
<rect x="4" y="10" width="1" height="1" fill="#2B4E95" />
|
||||||
|
<rect x="5" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="10" width="1" height="1" fill="#2B4E95" />
|
||||||
|
<rect x="12" y="10" width="1" height="1" fill="#2B4E95" />
|
||||||
|
<rect x="13" y="10" width="1" height="1" fill="#2B4E95" />
|
||||||
|
<rect x="2" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="11" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="13" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="12" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="12" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="12" y="12" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="13" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="10" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 8.5 KiB |
151
sojorn_app/assets/reactions/dotto/loudly_crying_face.svg
Normal file
|
|
@ -0,0 +1,151 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<svg version="1.1" width="16" height="16" xmlns="http://www.w3.org/2000/svg" shape-rendering="crispEdges">
|
||||||
|
<rect x="6" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="2" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="7" y="2" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="2" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="2" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="3" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="3" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="5" y="3" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="6" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="3" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="4" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="4" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="5" width="1" height="1" fill="#FFFFFF" />
|
||||||
|
<rect x="5" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="5" width="1" height="1" fill="#FFFFFF" />
|
||||||
|
<rect x="10" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="12" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="6" width="1" height="1" fill="#FFFFFF" />
|
||||||
|
<rect x="5" y="6" width="1" height="1" fill="#FFFFFF" />
|
||||||
|
<rect x="6" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="6" width="1" height="1" fill="#FFFFFF" />
|
||||||
|
<rect x="10" y="6" width="1" height="1" fill="#FFFFFF" />
|
||||||
|
<rect x="11" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="12" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="6" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="7" width="1" height="1" fill="#FFFFFF" />
|
||||||
|
<rect x="6" y="7" width="1" height="1" fill="#FFFFFF" />
|
||||||
|
<rect x="7" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="7" width="1" height="1" fill="#FFFFFF" />
|
||||||
|
<rect x="11" y="7" width="1" height="1" fill="#FFFFFF" />
|
||||||
|
<rect x="12" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="7" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="8" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="9" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="10" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="13" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="11" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="13" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="12" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="12" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="12" y="12" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="13" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="10" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 8.5 KiB |
180
sojorn_app/assets/reactions/dotto/melting_face.svg
Normal file
|
|
@ -0,0 +1,180 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<svg version="1.1" width="16" height="16" xmlns="http://www.w3.org/2000/svg" shape-rendering="crispEdges">
|
||||||
|
<rect x="6" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="2" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="7" y="2" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="2" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="2" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="3" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="3" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="5" y="3" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="6" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="3" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="4" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="4" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="6" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="7" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="12" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="8" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="9" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="10" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="0" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="2" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="11" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="0" y="12" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="2" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="12" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="10" y="12" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="12" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="12" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="0" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="13" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="2" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="13" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="9" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="12" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="14" y="13" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="15" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="14" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="14" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="5" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="14" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="7" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="12" y="14" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="13" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="14" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="15" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="15" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="15" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="12" y="15" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 10 KiB |
151
sojorn_app/assets/reactions/dotto/nerd_face.svg
Normal file
|
|
@ -0,0 +1,151 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<svg version="1.1" width="16" height="16" xmlns="http://www.w3.org/2000/svg" shape-rendering="crispEdges">
|
||||||
|
<rect x="6" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="2" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="7" y="2" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="2" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="2" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="3" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="3" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="5" y="3" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="6" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="3" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="4" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="4" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="12" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="6" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="7" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="8" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="9" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="10" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="13" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="11" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="13" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="12" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="12" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="12" y="12" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="13" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="10" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 8.5 KiB |
151
sojorn_app/assets/reactions/dotto/party_face.svg
Normal file
|
|
@ -0,0 +1,151 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<svg version="1.1" width="16" height="16" xmlns="http://www.w3.org/2000/svg" shape-rendering="crispEdges">
|
||||||
|
<rect x="6" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="2" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="7" y="2" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="2" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="2" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="3" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="3" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="5" y="3" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="6" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="3" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="4" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="4" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="6" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="7" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="8" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="9" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="10" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="13" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="11" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="13" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="12" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="12" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="12" y="12" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="13" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="10" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 8.5 KiB |
154
sojorn_app/assets/reactions/dotto/purple_heart.svg
Normal file
|
|
@ -0,0 +1,154 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<svg version="1.1" width="16" height="16" xmlns="http://www.w3.org/2000/svg" shape-rendering="crispEdges">
|
||||||
|
<rect x="6" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="2" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="7" y="2" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="2" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="2" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="3" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="3" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="5" y="3" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="6" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="3" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="4" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="4" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="12" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="6" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="12" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="7" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="8" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="9" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="9" y="9" width="1" height="1" fill="#C9D4FD" />
|
||||||
|
<rect x="10" y="9" width="1" height="1" fill="#8AA1F6" />
|
||||||
|
<rect x="11" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="9" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="10" width="1" height="1" fill="#C9D4FD" />
|
||||||
|
<rect x="10" y="10" width="1" height="1" fill="#C9D4FD" />
|
||||||
|
<rect x="11" y="10" width="1" height="1" fill="#C9D4FD" />
|
||||||
|
<rect x="12" y="10" width="1" height="1" fill="#8AA1F6" />
|
||||||
|
<rect x="13" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="11" width="1" height="1" fill="#C9D4FD" />
|
||||||
|
<rect x="11" y="11" width="1" height="1" fill="#C9D4FD" />
|
||||||
|
<rect x="12" y="11" width="1" height="1" fill="#C9D4FD" />
|
||||||
|
<rect x="13" y="11" width="1" height="1" fill="#8AA1F6" />
|
||||||
|
<rect x="3" y="12" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="12" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="12" y="12" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="13" y="12" width="1" height="1" fill="#8AA1F6" />
|
||||||
|
<rect x="4" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="13" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="10" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="12" y="13" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="13" y="13" width="1" height="1" fill="#8AA1F6" />
|
||||||
|
<rect x="6" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 8.7 KiB |
154
sojorn_app/assets/reactions/dotto/robot_face.svg
Normal file
|
|
@ -0,0 +1,154 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<svg version="1.1" width="16" height="16" xmlns="http://www.w3.org/2000/svg" shape-rendering="crispEdges">
|
||||||
|
<rect x="6" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="2" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="7" y="2" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="2" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="2" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="3" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="3" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="5" y="3" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="6" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="3" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="4" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="4" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="12" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="6" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="12" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="13" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="14" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="15" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="14" y="8" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="15" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="12" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="13" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="14" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="15" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="10" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="13" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="11" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="13" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="12" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="12" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="12" y="12" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="13" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="10" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 8.6 KiB |
151
sojorn_app/assets/reactions/dotto/rolling_face.svg
Normal file
|
|
@ -0,0 +1,151 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<svg version="1.1" width="16" height="16" xmlns="http://www.w3.org/2000/svg" shape-rendering="crispEdges">
|
||||||
|
<rect x="6" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="2" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="7" y="2" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="2" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="2" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="3" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="3" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="5" y="3" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="6" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="3" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="9" y="3" width="1" height="1" fill="#42BFE8" />
|
||||||
|
<rect x="10" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="3" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="4" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="4" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="4" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="9" y="4" width="1" height="1" fill="#42BFE8" />
|
||||||
|
<rect x="10" y="4" width="1" height="1" fill="#42BFE8" />
|
||||||
|
<rect x="11" y="4" width="1" height="1" fill="#42BFE8" />
|
||||||
|
<rect x="12" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="5" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="10" y="5" width="1" height="1" fill="#42BFE8" />
|
||||||
|
<rect x="11" y="5" width="1" height="1" fill="#42BFE8" />
|
||||||
|
<rect x="12" y="5" width="1" height="1" fill="#42BFE8" />
|
||||||
|
<rect x="13" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="6" width="1" height="1" fill="#42BFE8" />
|
||||||
|
<rect x="10" y="6" width="1" height="1" fill="#42BFE8" />
|
||||||
|
<rect x="11" y="6" width="1" height="1" fill="#42BFE8" />
|
||||||
|
<rect x="12" y="6" width="1" height="1" fill="#2B4E95" />
|
||||||
|
<rect x="13" y="6" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="7" width="1" height="1" fill="#42BFE8" />
|
||||||
|
<rect x="11" y="7" width="1" height="1" fill="#2B4E95" />
|
||||||
|
<rect x="12" y="7" width="1" height="1" fill="#2B4E95" />
|
||||||
|
<rect x="13" y="7" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="8" width="1" height="1" fill="#42BFE8" />
|
||||||
|
<rect x="5" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="8" width="1" height="1" fill="#FFFFFF" />
|
||||||
|
<rect x="10" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="12" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="8" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="9" width="1" height="1" fill="#42BFE8" />
|
||||||
|
<rect x="5" y="9" width="1" height="1" fill="#42BFE8" />
|
||||||
|
<rect x="6" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="9" width="1" height="1" fill="#FFFFFF" />
|
||||||
|
<rect x="9" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="12" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="9" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="10" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="5" y="10" width="1" height="1" fill="#42BFE8" />
|
||||||
|
<rect x="6" y="10" width="1" height="1" fill="#42BFE8" />
|
||||||
|
<rect x="7" y="10" width="1" height="1" fill="#FFFFFF" />
|
||||||
|
<rect x="8" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="10" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="13" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="11" width="1" height="1" fill="#F1F2FF" />
|
||||||
|
<rect x="5" y="11" width="1" height="1" fill="#42BFE8" />
|
||||||
|
<rect x="6" y="11" width="1" height="1" fill="#42BFE8" />
|
||||||
|
<rect x="7" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="11" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="13" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="12" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="12" width="1" height="1" fill="#42BFE8" />
|
||||||
|
<rect x="5" y="12" width="1" height="1" fill="#42BFE8" />
|
||||||
|
<rect x="6" y="12" width="1" height="1" fill="#2B4E95" />
|
||||||
|
<rect x="7" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="12" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="12" y="12" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="13" width="1" height="1" fill="#2B4E95" />
|
||||||
|
<rect x="6" y="13" width="1" height="1" fill="#2B4E95" />
|
||||||
|
<rect x="7" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="13" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="10" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 8.5 KiB |
151
sojorn_app/assets/reactions/dotto/skull.svg
Normal file
|
|
@ -0,0 +1,151 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<svg version="1.1" width="16" height="16" xmlns="http://www.w3.org/2000/svg" shape-rendering="crispEdges">
|
||||||
|
<rect x="6" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="2" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="7" y="2" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="2" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="2" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="3" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="3" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="5" y="3" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="6" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="3" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="4" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="4" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="6" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="7" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="8" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="9" width="1" height="1" fill="#FFFFFF" />
|
||||||
|
<rect x="6" y="9" width="1" height="1" fill="#FFFFFF" />
|
||||||
|
<rect x="7" y="9" width="1" height="1" fill="#FFFFFF" />
|
||||||
|
<rect x="8" y="9" width="1" height="1" fill="#FFFFFF" />
|
||||||
|
<rect x="9" y="9" width="1" height="1" fill="#FFFFFF" />
|
||||||
|
<rect x="10" y="9" width="1" height="1" fill="#FFFFFF" />
|
||||||
|
<rect x="11" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="12" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="9" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="10" width="1" height="1" fill="#595757" />
|
||||||
|
<rect x="6" y="10" width="1" height="1" fill="#595757" />
|
||||||
|
<rect x="7" y="10" width="1" height="1" fill="#595757" />
|
||||||
|
<rect x="8" y="10" width="1" height="1" fill="#595757" />
|
||||||
|
<rect x="9" y="10" width="1" height="1" fill="#595757" />
|
||||||
|
<rect x="10" y="10" width="1" height="1" fill="#595757" />
|
||||||
|
<rect x="11" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="12" y="10" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="13" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="11" width="1" height="1" fill="#FFFFFF" />
|
||||||
|
<rect x="6" y="11" width="1" height="1" fill="#FFFFFF" />
|
||||||
|
<rect x="7" y="11" width="1" height="1" fill="#FFFFFF" />
|
||||||
|
<rect x="8" y="11" width="1" height="1" fill="#FFFFFF" />
|
||||||
|
<rect x="9" y="11" width="1" height="1" fill="#FFFFFF" />
|
||||||
|
<rect x="10" y="11" width="1" height="1" fill="#FFFFFF" />
|
||||||
|
<rect x="11" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="12" y="11" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="13" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="12" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="12" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="12" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="12" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="12" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="12" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="12" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="12" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="12" y="12" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="13" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="10" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 8.5 KiB |
151
sojorn_app/assets/reactions/dotto/slightly_smiling_face.svg
Normal file
|
|
@ -0,0 +1,151 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<svg version="1.1" width="16" height="16" xmlns="http://www.w3.org/2000/svg" shape-rendering="crispEdges">
|
||||||
|
<rect x="6" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="2" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="7" y="2" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="2" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="2" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="3" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="3" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="5" y="3" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="6" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="3" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="4" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="4" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="6" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="7" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="12" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="8" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="9" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="10" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="13" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="11" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="13" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="12" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="12" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="12" y="12" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="13" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="10" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 8.5 KiB |
151
sojorn_app/assets/reactions/dotto/smiling_face.svg
Normal file
|
|
@ -0,0 +1,151 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<svg version="1.1" width="16" height="16" xmlns="http://www.w3.org/2000/svg" shape-rendering="crispEdges">
|
||||||
|
<rect x="6" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="2" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="7" y="2" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="2" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="2" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="3" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="3" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="5" y="3" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="6" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="3" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="4" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="4" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="12" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="12" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="6" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="7" width="1" height="1" fill="#F6A2A8" />
|
||||||
|
<rect x="4" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="7" width="1" height="1" fill="#F6A2A8" />
|
||||||
|
<rect x="13" y="7" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="8" width="1" height="1" fill="#F6A2A8" />
|
||||||
|
<rect x="3" y="8" width="1" height="1" fill="#F6A2A8" />
|
||||||
|
<rect x="4" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="12" y="8" width="1" height="1" fill="#F6A2A8" />
|
||||||
|
<rect x="13" y="8" width="1" height="1" fill="#E27285" />
|
||||||
|
<rect x="14" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="9" width="1" height="1" fill="#F6A2A8" />
|
||||||
|
<rect x="3" y="9" width="1" height="1" fill="#F6A2A8" />
|
||||||
|
<rect x="4" y="9" width="1" height="1" fill="#F6A2A8" />
|
||||||
|
<rect x="5" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="9" width="1" height="1" fill="#F6A2A8" />
|
||||||
|
<rect x="12" y="9" width="1" height="1" fill="#F6A2A8" />
|
||||||
|
<rect x="13" y="9" width="1" height="1" fill="#E27285" />
|
||||||
|
<rect x="14" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="10" width="1" height="1" fill="#F6A2A8" />
|
||||||
|
<rect x="4" y="10" width="1" height="1" fill="#F6A2A8" />
|
||||||
|
<rect x="5" y="10" width="1" height="1" fill="#F6A2A8" />
|
||||||
|
<rect x="6" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="10" width="1" height="1" fill="#F6A2A8" />
|
||||||
|
<rect x="11" y="10" width="1" height="1" fill="#F6A2A8" />
|
||||||
|
<rect x="12" y="10" width="1" height="1" fill="#F6A2A8" />
|
||||||
|
<rect x="13" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="11" width="1" height="1" fill="#F6A2A8" />
|
||||||
|
<rect x="4" y="11" width="1" height="1" fill="#F6A2A8" />
|
||||||
|
<rect x="5" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="11" width="1" height="1" fill="#F6A2A8" />
|
||||||
|
<rect x="11" y="11" width="1" height="1" fill="#F6A2A8" />
|
||||||
|
<rect x="12" y="11" width="1" height="1" fill="#E27285" />
|
||||||
|
<rect x="13" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="12" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="12" width="1" height="1" fill="#F6A2A8" />
|
||||||
|
<rect x="5" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="12" width="1" height="1" fill="#E27285" />
|
||||||
|
<rect x="12" y="12" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="13" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="10" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 8.5 KiB |
161
sojorn_app/assets/reactions/dotto/smiling_face_with_halo.svg
Normal file
|
|
@ -0,0 +1,161 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<svg version="1.1" width="16" height="16" xmlns="http://www.w3.org/2000/svg" shape-rendering="crispEdges">
|
||||||
|
<rect x="3" y="1" width="1" height="1" fill="#73EFE8" />
|
||||||
|
<rect x="4" y="1" width="1" height="1" fill="#73EFE8" />
|
||||||
|
<rect x="5" y="1" width="1" height="1" fill="#73EFE8" />
|
||||||
|
<rect x="6" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="1" width="1" height="1" fill="#42BFE8" />
|
||||||
|
<rect x="11" y="1" width="1" height="1" fill="#73EFE8" />
|
||||||
|
<rect x="12" y="1" width="1" height="1" fill="#42BFE8" />
|
||||||
|
<rect x="2" y="2" width="1" height="1" fill="#73EFE8" />
|
||||||
|
<rect x="3" y="2" width="1" height="1" fill="#42BFE8" />
|
||||||
|
<rect x="4" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="2" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="7" y="2" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="2" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="2" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="12" y="2" width="1" height="1" fill="#42BFE8" />
|
||||||
|
<rect x="13" y="2" width="1" height="1" fill="#42BFE8" />
|
||||||
|
<rect x="3" y="3" width="1" height="1" fill="#42BFE8" />
|
||||||
|
<rect x="4" y="3" width="1" height="1" fill="#42BFE8" />
|
||||||
|
<rect x="5" y="3" width="1" height="1" fill="#73EFE8" />
|
||||||
|
<rect x="6" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="3" width="1" height="1" fill="#42BFE8" />
|
||||||
|
<rect x="11" y="3" width="1" height="1" fill="#42BFE8" />
|
||||||
|
<rect x="12" y="3" width="1" height="1" fill="#73EFE8" />
|
||||||
|
<rect x="2" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="4" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="4" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="4" width="1" height="1" fill="#42BFE8" />
|
||||||
|
<rect x="7" y="4" width="1" height="1" fill="#42BFE8" />
|
||||||
|
<rect x="8" y="4" width="1" height="1" fill="#73EFE8" />
|
||||||
|
<rect x="9" y="4" width="1" height="1" fill="#73EFE8" />
|
||||||
|
<rect x="10" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="12" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="12" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="6" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="7" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="12" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="8" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="9" width="1" height="1" fill="#FFFFFF" />
|
||||||
|
<rect x="6" y="9" width="1" height="1" fill="#FFFFFF" />
|
||||||
|
<rect x="7" y="9" width="1" height="1" fill="#FFFFFF" />
|
||||||
|
<rect x="8" y="9" width="1" height="1" fill="#FFFFFF" />
|
||||||
|
<rect x="9" y="9" width="1" height="1" fill="#FFFFFF" />
|
||||||
|
<rect x="10" y="9" width="1" height="1" fill="#FFFFFF" />
|
||||||
|
<rect x="11" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="12" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="9" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="10" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="13" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="11" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="13" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="12" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="12" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="12" y="12" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="13" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="10" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 9 KiB |
169
sojorn_app/assets/reactions/dotto/smiling_face_with_hearts.svg
Normal file
|
|
@ -0,0 +1,169 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<svg version="1.1" width="16" height="16" xmlns="http://www.w3.org/2000/svg" shape-rendering="crispEdges">
|
||||||
|
<rect x="6" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="1" width="1" height="1" fill="#FA707A" />
|
||||||
|
<rect x="13" y="1" width="1" height="1" fill="#FA707A" />
|
||||||
|
<rect x="4" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="2" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="7" y="2" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="2" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="2" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="2" width="1" height="1" fill="#FA707A" />
|
||||||
|
<rect x="11" y="2" width="1" height="1" fill="#FF0048" />
|
||||||
|
<rect x="12" y="2" width="1" height="1" fill="#FF0048" />
|
||||||
|
<rect x="13" y="2" width="1" height="1" fill="#FF0048" />
|
||||||
|
<rect x="14" y="2" width="1" height="1" fill="#CF1549" />
|
||||||
|
<rect x="3" y="3" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="3" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="5" y="3" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="6" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="3" width="1" height="1" fill="#FA707A" />
|
||||||
|
<rect x="11" y="3" width="1" height="1" fill="#FF0048" />
|
||||||
|
<rect x="12" y="3" width="1" height="1" fill="#FF0048" />
|
||||||
|
<rect x="13" y="3" width="1" height="1" fill="#FF0048" />
|
||||||
|
<rect x="14" y="3" width="1" height="1" fill="#CF1549" />
|
||||||
|
<rect x="2" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="4" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="4" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="4" width="1" height="1" fill="#FF0048" />
|
||||||
|
<rect x="12" y="4" width="1" height="1" fill="#FF0048" />
|
||||||
|
<rect x="13" y="4" width="1" height="1" fill="#CF1549" />
|
||||||
|
<rect x="2" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="12" y="5" width="1" height="1" fill="#CF1549" />
|
||||||
|
<rect x="13" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="12" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="6" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="7" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="8" width="1" height="1" fill="#FA707A" />
|
||||||
|
<rect x="2" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="8" width="1" height="1" fill="#FA707A" />
|
||||||
|
<rect x="4" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="12" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="8" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="0" y="9" width="1" height="1" fill="#FA707A" />
|
||||||
|
<rect x="1" y="9" width="1" height="1" fill="#FF0048" />
|
||||||
|
<rect x="2" y="9" width="1" height="1" fill="#FF0048" />
|
||||||
|
<rect x="3" y="9" width="1" height="1" fill="#FF0048" />
|
||||||
|
<rect x="4" y="9" width="1" height="1" fill="#CF1549" />
|
||||||
|
<rect x="5" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="9" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="0" y="10" width="1" height="1" fill="#FA707A" />
|
||||||
|
<rect x="1" y="10" width="1" height="1" fill="#FF0048" />
|
||||||
|
<rect x="2" y="10" width="1" height="1" fill="#FF0048" />
|
||||||
|
<rect x="3" y="10" width="1" height="1" fill="#FF0048" />
|
||||||
|
<rect x="4" y="10" width="1" height="1" fill="#CF1549" />
|
||||||
|
<rect x="5" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="10" width="1" height="1" fill="#FA707A" />
|
||||||
|
<rect x="12" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="10" width="1" height="1" fill="#FA707A" />
|
||||||
|
<rect x="1" y="11" width="1" height="1" fill="#FF0048" />
|
||||||
|
<rect x="2" y="11" width="1" height="1" fill="#FF0048" />
|
||||||
|
<rect x="3" y="11" width="1" height="1" fill="#CF1549" />
|
||||||
|
<rect x="4" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="11" width="1" height="1" fill="#FA707A" />
|
||||||
|
<rect x="11" y="11" width="1" height="1" fill="#FF0048" />
|
||||||
|
<rect x="12" y="11" width="1" height="1" fill="#FF0048" />
|
||||||
|
<rect x="13" y="11" width="1" height="1" fill="#FF0048" />
|
||||||
|
<rect x="14" y="11" width="1" height="1" fill="#CF1549" />
|
||||||
|
<rect x="2" y="12" width="1" height="1" fill="#CF1549" />
|
||||||
|
<rect x="3" y="12" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="12" width="1" height="1" fill="#FA707A" />
|
||||||
|
<rect x="11" y="12" width="1" height="1" fill="#FF0048" />
|
||||||
|
<rect x="12" y="12" width="1" height="1" fill="#FF0048" />
|
||||||
|
<rect x="13" y="12" width="1" height="1" fill="#FF0048" />
|
||||||
|
<rect x="14" y="12" width="1" height="1" fill="#CF1549" />
|
||||||
|
<rect x="4" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="13" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="10" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="13" width="1" height="1" fill="#FF0048" />
|
||||||
|
<rect x="12" y="13" width="1" height="1" fill="#FF0048" />
|
||||||
|
<rect x="13" y="13" width="1" height="1" fill="#CF1549" />
|
||||||
|
<rect x="6" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="12" y="14" width="1" height="1" fill="#CF1549" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 9.5 KiB |
161
sojorn_app/assets/reactions/dotto/sparkling_heart.svg
Normal file
|
|
@ -0,0 +1,161 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<svg version="1.1" width="16" height="16" xmlns="http://www.w3.org/2000/svg" shape-rendering="crispEdges">
|
||||||
|
<rect x="4" y="0" width="1" height="1" fill="#A69E9A" />
|
||||||
|
<rect x="11" y="0" width="1" height="1" fill="#A69E9A" />
|
||||||
|
<rect x="0" y="1" width="1" height="1" fill="#A69E9A" />
|
||||||
|
<rect x="4" y="1" width="1" height="1" fill="#A69E9A" />
|
||||||
|
<rect x="11" y="1" width="1" height="1" fill="#A69E9A" />
|
||||||
|
<rect x="15" y="1" width="1" height="1" fill="#A69E9A" />
|
||||||
|
<rect x="1" y="2" width="1" height="1" fill="#A69E9A" />
|
||||||
|
<rect x="6" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="14" y="2" width="1" height="1" fill="#A69E9A" />
|
||||||
|
<rect x="1" y="3" width="1" height="1" fill="#A69E9A" />
|
||||||
|
<rect x="4" y="3" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="3" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="3" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="7" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="3" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="3" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="14" y="3" width="1" height="1" fill="#A69E9A" />
|
||||||
|
<rect x="3" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="4" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="5" y="4" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="6" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="5" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="4" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="7" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="8" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="12" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="9" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="12" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="10" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="11" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="13" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="12" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="12" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="12" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="12" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="12" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="12" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="13" y="12" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="13" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="12" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="14" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="14" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="14" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="14" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="10" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="15" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="15" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="15" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="15" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 9.1 KiB |
151
sojorn_app/assets/reactions/dotto/sunglasses_face.svg
Normal file
|
|
@ -0,0 +1,151 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<svg version="1.1" width="16" height="16" xmlns="http://www.w3.org/2000/svg" shape-rendering="crispEdges">
|
||||||
|
<rect x="6" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="2" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="7" y="2" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="2" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="2" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="3" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="3" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="5" y="3" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="6" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="3" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="4" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="4" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="6" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="7" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="8" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="9" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="10" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="13" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="11" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="13" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="12" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="12" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="12" y="12" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="13" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="10" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 8.5 KiB |
151
sojorn_app/assets/reactions/dotto/upside_down_face.svg
Normal file
|
|
@ -0,0 +1,151 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<svg version="1.1" width="16" height="16" xmlns="http://www.w3.org/2000/svg" shape-rendering="crispEdges">
|
||||||
|
<rect x="6" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="2" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="7" y="2" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="2" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="2" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="3" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="3" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="5" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="3" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="4" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="4" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="5" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="4" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="6" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="3" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="14" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="7" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="3" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="12" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="14" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="8" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="3" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="14" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="9" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="3" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="14" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="11" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="13" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="12" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="12" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="11" y="12" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="12" y="12" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="13" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="10" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 8.5 KiB |
151
sojorn_app/assets/reactions/dotto/winking_face.svg
Normal file
|
|
@ -0,0 +1,151 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<svg version="1.1" width="16" height="16" xmlns="http://www.w3.org/2000/svg" shape-rendering="crispEdges">
|
||||||
|
<rect x="6" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="2" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="7" y="2" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="2" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="2" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="3" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="3" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="5" y="3" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="6" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="3" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="3" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="4" width="1" height="1" fill="#FFF089" />
|
||||||
|
<rect x="4" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="4" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="5" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="6" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="6" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="7" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="7" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="8" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="8" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="3" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="9" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="13" y="9" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="14" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="10" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="10" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="13" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="4" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="11" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="12" y="11" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="13" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="3" y="12" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="5" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="6" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="10" y="12" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="11" y="12" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="12" y="12" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="7" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="8" y="13" width="1" height="1" fill="#F8C53A" />
|
||||||
|
<rect x="9" y="13" width="1" height="1" fill="#E88A36" />
|
||||||
|
<rect x="10" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="11" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 8.5 KiB |
31
sojorn_app/assets/reactions/dotto/worried_face.svg
Normal file
|
|
@ -0,0 +1,31 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<svg version="1.1" width="16" height="16" xmlns="http://www.w3.org/2000/svg" shape-rendering="crispEdges">
|
||||||
|
<rect x="8" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="1" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="2" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="12" y="3" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="13" y="4" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="5" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="6" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="14" y="7" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="14" y="8" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="1" y="9" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="2" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="6" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="7" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="10" y="10" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="13" y="11" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="12" y="12" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="4" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="5" y="13" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="8" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
<rect x="9" y="14" width="1" height="1" fill="#0E0C0C" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1.7 KiB |
11
sojorn_app/assets/reactions/green/credit.md
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
# Green Reaction Set
|
||||||
|
|
||||||
|
**Source:** Custom created for Sojorn
|
||||||
|
|
||||||
|
**Description:** Green-themed reaction icons with transparency
|
||||||
|
|
||||||
|
**Format:** PNG (64x64px recommended)
|
||||||
|
|
||||||
|
**Style:** Clean, modern green color scheme
|
||||||
|
|
||||||
|
**Usage:** Perfect for nature, growth, and positive reactions
|
||||||
11
sojorn_app/assets/reactions/purple/credit.md
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
# Purple Reaction Set
|
||||||
|
|
||||||
|
**Source:** Custom created for Sojorn
|
||||||
|
|
||||||
|
**Description:** Purple-themed reaction icons with transparency
|
||||||
|
|
||||||
|
**Format:** PNG (64x64px recommended)
|
||||||
|
|
||||||
|
**Style:** Clean, modern purple color scheme
|
||||||
|
|
||||||
|
**Usage:** Ideal for creative, elegant, and expressive reactions
|
||||||
75
sojorn_app/assets/reactions/reaction_config.json
Normal file
|
|
@ -0,0 +1,75 @@
|
||||||
|
{
|
||||||
|
"reaction_sets": {
|
||||||
|
"emoji": {
|
||||||
|
"type": "emoji",
|
||||||
|
"reactions": [
|
||||||
|
"❤️",
|
||||||
|
"👍",
|
||||||
|
"😂",
|
||||||
|
"😮",
|
||||||
|
"😢",
|
||||||
|
"😡",
|
||||||
|
"🎉",
|
||||||
|
"🔥",
|
||||||
|
"👏",
|
||||||
|
"🙏",
|
||||||
|
"💯",
|
||||||
|
"🤔",
|
||||||
|
"😍",
|
||||||
|
"🤣",
|
||||||
|
"😊",
|
||||||
|
"👌",
|
||||||
|
"🙌",
|
||||||
|
"💪",
|
||||||
|
"🎯",
|
||||||
|
"⭐",
|
||||||
|
"✨",
|
||||||
|
"🌟",
|
||||||
|
"💫",
|
||||||
|
"☀️"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"dotto": {
|
||||||
|
"type": "folder",
|
||||||
|
"folder": "dotto",
|
||||||
|
"file_types": [
|
||||||
|
"svg"
|
||||||
|
],
|
||||||
|
"files": [
|
||||||
|
"anguished_face.svg",
|
||||||
|
"beaming_face.svg",
|
||||||
|
"blue_heart.svg",
|
||||||
|
"broken_heart.svg",
|
||||||
|
"disappointed_face.svg",
|
||||||
|
"downcast_face.svg",
|
||||||
|
"face_with_monocle.svg",
|
||||||
|
"face_with_tears.svg",
|
||||||
|
"fearful_face.svg",
|
||||||
|
"ghost.svg",
|
||||||
|
"green_heart.svg",
|
||||||
|
"grinning_face.svg",
|
||||||
|
"heart_with_arrow.svg",
|
||||||
|
"laughing_face.svg",
|
||||||
|
"loudly_crying_face.svg",
|
||||||
|
"melting_face.svg",
|
||||||
|
"nerd_face.svg",
|
||||||
|
"party_face.svg",
|
||||||
|
"purple_heart.svg",
|
||||||
|
"robot_face.svg",
|
||||||
|
"rolling_face.svg",
|
||||||
|
"skull.svg",
|
||||||
|
"slightly_smiling_face.svg",
|
||||||
|
"smiling_face.svg",
|
||||||
|
"smiling_face_with_halo.svg",
|
||||||
|
"smiling_face_with_hearts.svg",
|
||||||
|
"sparkling_heart.svg",
|
||||||
|
"sunglasses_face.svg",
|
||||||
|
"upside_down_face.svg",
|
||||||
|
"winking_face.svg",
|
||||||
|
"worried_face.svg"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"generated_at": "2026-02-01T15:16:54.716500",
|
||||||
|
"total_sets": 2
|
||||||
|
}
|
||||||
|
|
@ -12,13 +12,17 @@ class SojornMediaResult {
|
||||||
/// The file path (used for mobile/desktop operations)
|
/// The file path (used for mobile/desktop operations)
|
||||||
final String? filePath;
|
final String? filePath;
|
||||||
|
|
||||||
/// Media type ('image' or 'video')
|
/// The thumbnail file path (used for beacon images)
|
||||||
|
final String? thumbnailPath;
|
||||||
|
|
||||||
|
/// Media type ('image', 'video', or 'beacon_image')
|
||||||
final String mediaType;
|
final String mediaType;
|
||||||
|
|
||||||
const SojornMediaResult({
|
const SojornMediaResult({
|
||||||
this.bytes,
|
this.bytes,
|
||||||
this.name,
|
this.name,
|
||||||
this.filePath,
|
this.filePath,
|
||||||
|
this.thumbnailPath,
|
||||||
required this.mediaType,
|
required this.mediaType,
|
||||||
}) : assert(bytes != null || filePath != null, 'Either bytes or filePath must be provided');
|
}) : assert(bytes != null || filePath != null, 'Either bytes or filePath must be provided');
|
||||||
|
|
||||||
|
|
@ -50,8 +54,24 @@ class SojornMediaResult {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Creates a result for beacon image with dual outputs
|
||||||
|
factory SojornMediaResult.beaconImage({
|
||||||
|
String? filePath,
|
||||||
|
String? thumbnailPath,
|
||||||
|
String? name,
|
||||||
|
}) {
|
||||||
|
return SojornMediaResult(
|
||||||
|
filePath: filePath,
|
||||||
|
thumbnailPath: thumbnailPath,
|
||||||
|
name: name,
|
||||||
|
mediaType: 'beacon_image',
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
bool get isImage => mediaType == 'image';
|
bool get isImage => mediaType == 'image';
|
||||||
bool get isVideo => mediaType == 'video';
|
bool get isVideo => mediaType == 'video';
|
||||||
|
bool get isBeaconImage => mediaType == 'beacon_image';
|
||||||
bool get hasBytes => bytes != null;
|
bool get hasBytes => bytes != null;
|
||||||
bool get hasFilePath => filePath != null;
|
bool get hasFilePath => filePath != null;
|
||||||
|
bool get hasThumbnail => thumbnailPath != null;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -51,7 +51,7 @@ class _BeaconBottomSheetState extends ConsumerState<BeaconBottomSheet> {
|
||||||
Container(
|
Container(
|
||||||
padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 6),
|
padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 6),
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: statusColor.withOpacity(0.2),
|
color: statusColor.withValues(alpha: 0.2),
|
||||||
borderRadius: BorderRadius.circular(8),
|
borderRadius: BorderRadius.circular(8),
|
||||||
border: Border.all(color: statusColor),
|
border: Border.all(color: statusColor),
|
||||||
),
|
),
|
||||||
|
|
@ -76,7 +76,7 @@ class _BeaconBottomSheetState extends ConsumerState<BeaconBottomSheet> {
|
||||||
Text(
|
Text(
|
||||||
post.beaconType?.displayName ?? 'Community',
|
post.beaconType?.displayName ?? 'Community',
|
||||||
style: theme.textTheme.labelMedium?.copyWith(
|
style: theme.textTheme.labelMedium?.copyWith(
|
||||||
color: theme.textTheme.bodySmall?.color?.withOpacity(0.7),
|
color: theme.textTheme.bodySmall?.color?.withValues(alpha: 0.7),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
const SizedBox(height: 4),
|
const SizedBox(height: 4),
|
||||||
|
|
@ -92,10 +92,15 @@ class _BeaconBottomSheetState extends ConsumerState<BeaconBottomSheet> {
|
||||||
CircleAvatar(
|
CircleAvatar(
|
||||||
radius: 16,
|
radius: 16,
|
||||||
backgroundColor: accentColor,
|
backgroundColor: accentColor,
|
||||||
child: Text(
|
backgroundImage: (post.author?.avatarUrl != null && post.author!.avatarUrl!.isNotEmpty)
|
||||||
(post.author?.displayName ?? post.author?.handle ?? '?')[0].toUpperCase(),
|
? NetworkImage(post.author!.avatarUrl!)
|
||||||
|
: null,
|
||||||
|
child: (post.author?.avatarUrl == null || post.author!.avatarUrl!.isEmpty)
|
||||||
|
? Text(
|
||||||
|
((post.author?.displayName ?? post.author?.handle ?? '?')[0]).toUpperCase(),
|
||||||
style: const TextStyle(color: Colors.white),
|
style: const TextStyle(color: Colors.white),
|
||||||
),
|
)
|
||||||
|
: null,
|
||||||
),
|
),
|
||||||
const SizedBox(width: 12),
|
const SizedBox(width: 12),
|
||||||
Column(
|
Column(
|
||||||
|
|
@ -110,7 +115,7 @@ class _BeaconBottomSheetState extends ConsumerState<BeaconBottomSheet> {
|
||||||
Text(
|
Text(
|
||||||
'${_getFormattedDistance(post.distanceMeters)} • ${_getTimeAgo(post.createdAt)}',
|
'${_getFormattedDistance(post.distanceMeters)} • ${_getTimeAgo(post.createdAt)}',
|
||||||
style: theme.textTheme.bodySmall?.copyWith(
|
style: theme.textTheme.bodySmall?.copyWith(
|
||||||
color: theme.textTheme.bodySmall?.color?.withOpacity(0.6),
|
color: theme.textTheme.bodySmall?.color?.withValues(alpha: 0.6),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
|
@ -157,7 +162,7 @@ class _BeaconBottomSheetState extends ConsumerState<BeaconBottomSheet> {
|
||||||
child: LinearProgressIndicator(
|
child: LinearProgressIndicator(
|
||||||
value: confidenceScore,
|
value: confidenceScore,
|
||||||
minHeight: 6,
|
minHeight: 6,
|
||||||
backgroundColor: Colors.grey.withOpacity(0.3),
|
backgroundColor: Colors.grey.withValues(alpha: 0.3),
|
||||||
valueColor: AlwaysStoppedAnimation<Color>(statusColor),
|
valueColor: AlwaysStoppedAnimation<Color>(statusColor),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
@ -165,7 +170,7 @@ class _BeaconBottomSheetState extends ConsumerState<BeaconBottomSheet> {
|
||||||
Text(
|
Text(
|
||||||
'Confidence ${(confidenceScore * 100).toStringAsFixed(0)}%',
|
'Confidence ${(confidenceScore * 100).toStringAsFixed(0)}%',
|
||||||
style: theme.textTheme.bodySmall?.copyWith(
|
style: theme.textTheme.bodySmall?.copyWith(
|
||||||
color: theme.textTheme.bodySmall?.color?.withOpacity(0.6),
|
color: theme.textTheme.bodySmall?.color?.withValues(alpha: 0.6),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
|
|
||||||
551
sojorn_app/lib/screens/beacon/beacon_detail_screen.dart
Normal file
|
|
@ -0,0 +1,551 @@
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||||
|
import '../../models/post.dart';
|
||||||
|
import '../../models/beacon.dart';
|
||||||
|
import '../../providers/api_provider.dart';
|
||||||
|
import '../../theme/app_theme.dart';
|
||||||
|
import '../../widgets/sojorn_app_bar.dart';
|
||||||
|
|
||||||
|
class BeaconDetailScreen extends ConsumerStatefulWidget {
|
||||||
|
final Post beaconPost;
|
||||||
|
|
||||||
|
const BeaconDetailScreen({super.key, required this.beaconPost});
|
||||||
|
|
||||||
|
@override
|
||||||
|
ConsumerState<BeaconDetailScreen> createState() => _BeaconDetailScreenState();
|
||||||
|
}
|
||||||
|
|
||||||
|
class _BeaconDetailScreenState extends ConsumerState<BeaconDetailScreen>
|
||||||
|
with SingleTickerProviderStateMixin {
|
||||||
|
late AnimationController _pulseController;
|
||||||
|
late Animation<double> _pulseAnimation;
|
||||||
|
bool _isVouching = false;
|
||||||
|
bool _isReporting = false;
|
||||||
|
|
||||||
|
@override
|
||||||
|
void initState() {
|
||||||
|
super.initState();
|
||||||
|
_pulseController = AnimationController(
|
||||||
|
duration: const Duration(milliseconds: 1500),
|
||||||
|
vsync: this,
|
||||||
|
);
|
||||||
|
|
||||||
|
final beacon = widget.beaconPost.toBeacon();
|
||||||
|
final confidenceScore = beacon.confidenceScore;
|
||||||
|
|
||||||
|
if (confidenceScore < 0.3) {
|
||||||
|
// Low confidence - add warning pulse
|
||||||
|
_pulseAnimation = Tween<double>(
|
||||||
|
begin: 0.8,
|
||||||
|
end: 1.0,
|
||||||
|
).animate(CurvedAnimation(
|
||||||
|
parent: _pulseController,
|
||||||
|
curve: Curves.easeInOut,
|
||||||
|
));
|
||||||
|
_pulseController.repeat(reverse: true);
|
||||||
|
} else if (confidenceScore > 0.7) {
|
||||||
|
// High confidence - solid, no pulse
|
||||||
|
_pulseAnimation = Tween<double>(
|
||||||
|
begin: 1.0,
|
||||||
|
end: 1.0,
|
||||||
|
).animate(CurvedAnimation(
|
||||||
|
parent: _pulseController,
|
||||||
|
curve: Curves.linear,
|
||||||
|
));
|
||||||
|
} else {
|
||||||
|
// Medium confidence - subtle pulse
|
||||||
|
_pulseAnimation = Tween<double>(
|
||||||
|
begin: 0.9,
|
||||||
|
end: 1.0,
|
||||||
|
).animate(CurvedAnimation(
|
||||||
|
parent: _pulseController,
|
||||||
|
curve: Curves.easeInOut,
|
||||||
|
));
|
||||||
|
_pulseController.repeat(reverse: true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
void dispose() {
|
||||||
|
_pulseController.dispose();
|
||||||
|
super.dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
Beacon get _beacon => widget.beaconPost.toBeacon();
|
||||||
|
Post get _post => widget.beaconPost;
|
||||||
|
|
||||||
|
Color get _statusColor {
|
||||||
|
switch (_beacon.status) {
|
||||||
|
case BeaconStatus.green:
|
||||||
|
return Colors.green;
|
||||||
|
case BeaconStatus.yellow:
|
||||||
|
return Colors.orange;
|
||||||
|
case BeaconStatus.red:
|
||||||
|
return Colors.red;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
String get _statusLabel {
|
||||||
|
switch (_beacon.status) {
|
||||||
|
case BeaconStatus.green:
|
||||||
|
return 'Verified';
|
||||||
|
case BeaconStatus.yellow:
|
||||||
|
return 'Caution';
|
||||||
|
case BeaconStatus.red:
|
||||||
|
return 'Unverified';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return Scaffold(
|
||||||
|
body: CustomScrollView(
|
||||||
|
slivers: [
|
||||||
|
// Immersive Header with Image
|
||||||
|
_buildImmersiveHeader(),
|
||||||
|
|
||||||
|
// Content
|
||||||
|
SliverToBoxAdapter(
|
||||||
|
child: Container(
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
color: AppTheme.scaffoldBg,
|
||||||
|
borderRadius: const BorderRadius.vertical(
|
||||||
|
top: Radius.circular(24),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
child: Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
_buildStatusSection(),
|
||||||
|
_buildBeaconInfo(),
|
||||||
|
_buildAuthorInfo(),
|
||||||
|
const SizedBox(height: 32),
|
||||||
|
_buildActionButtons(),
|
||||||
|
const SizedBox(height: 24),
|
||||||
|
_buildConfidenceIndicator(),
|
||||||
|
const SizedBox(height: 40),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Widget _buildImmersiveHeader() {
|
||||||
|
final hasImage = _post.imageUrl != null && _post.imageUrl!.isNotEmpty;
|
||||||
|
|
||||||
|
return SliverAppBar(
|
||||||
|
expandedHeight: hasImage ? 300 : 120,
|
||||||
|
pinned: true,
|
||||||
|
backgroundColor: Colors.transparent,
|
||||||
|
leading: Container(
|
||||||
|
margin: const EdgeInsets.all(8),
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
color: Colors.black26,
|
||||||
|
borderRadius: BorderRadius.circular(12),
|
||||||
|
),
|
||||||
|
child: IconButton(
|
||||||
|
onPressed: () => Navigator.of(context).pop(),
|
||||||
|
icon: const Icon(Icons.arrow_back, color: Colors.white),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
flexibleSpace: FlexibleSpaceBar(
|
||||||
|
background: Stack(
|
||||||
|
fit: StackFit.expand,
|
||||||
|
children: [
|
||||||
|
if (hasImage)
|
||||||
|
Hero(
|
||||||
|
tag: 'beacon-image-${_post.id}',
|
||||||
|
child: Image.network(
|
||||||
|
_post.imageUrl!,
|
||||||
|
fit: BoxFit.cover,
|
||||||
|
errorBuilder: (context, error, stackTrace) {
|
||||||
|
return _buildFallbackImage();
|
||||||
|
},
|
||||||
|
loadingBuilder: (context, child, loadingProgress) {
|
||||||
|
if (loadingProgress == null) return child;
|
||||||
|
return Container(
|
||||||
|
color: AppTheme.navyBlue,
|
||||||
|
child: Center(
|
||||||
|
child: CircularProgressIndicator(
|
||||||
|
color: Colors.white,
|
||||||
|
value: loadingProgress.expectedTotalBytes != null
|
||||||
|
? loadingProgress.cumulativeBytesLoaded /
|
||||||
|
loadingProgress.expectedTotalBytes!
|
||||||
|
: null,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
},
|
||||||
|
),
|
||||||
|
)
|
||||||
|
else
|
||||||
|
_buildFallbackImage(),
|
||||||
|
|
||||||
|
// Gradient overlay for text readability
|
||||||
|
Container(
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
gradient: LinearGradient(
|
||||||
|
begin: Alignment.topCenter,
|
||||||
|
end: Alignment.bottomCenter,
|
||||||
|
colors: [
|
||||||
|
Colors.black.withValues(alpha: 0.7),
|
||||||
|
Colors.transparent,
|
||||||
|
Colors.black.withValues(alpha: 0.3),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
|
||||||
|
// Status indicator with pulse
|
||||||
|
Positioned(
|
||||||
|
top: 60,
|
||||||
|
right: 16,
|
||||||
|
child: AnimatedBuilder(
|
||||||
|
animation: _pulseAnimation,
|
||||||
|
builder: (context, child) {
|
||||||
|
return Transform.scale(
|
||||||
|
scale: _pulseAnimation.value,
|
||||||
|
child: Container(
|
||||||
|
padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 6),
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
color: _statusColor.withValues(alpha: 0.9),
|
||||||
|
borderRadius: BorderRadius.circular(20),
|
||||||
|
boxShadow: [
|
||||||
|
BoxShadow(
|
||||||
|
color: _statusColor.withValues(alpha: 0.3),
|
||||||
|
blurRadius: 8,
|
||||||
|
spreadRadius: 2,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
child: Row(
|
||||||
|
mainAxisSize: MainAxisSize.min,
|
||||||
|
children: [
|
||||||
|
Icon(
|
||||||
|
_beacon.status == BeaconStatus.green
|
||||||
|
? Icons.verified
|
||||||
|
: Icons.warning,
|
||||||
|
color: Colors.white,
|
||||||
|
size: 16,
|
||||||
|
),
|
||||||
|
const SizedBox(width: 4),
|
||||||
|
Text(
|
||||||
|
_statusLabel,
|
||||||
|
style: const TextStyle(
|
||||||
|
color: Colors.white,
|
||||||
|
fontWeight: FontWeight.bold,
|
||||||
|
fontSize: 12,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
},
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Widget _buildFallbackImage() {
|
||||||
|
return Container(
|
||||||
|
color: AppTheme.navyBlue,
|
||||||
|
child: Icon(
|
||||||
|
_beacon.beaconType.icon,
|
||||||
|
color: Colors.white,
|
||||||
|
size: 80,
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Widget _buildStatusSection() {
|
||||||
|
return Padding(
|
||||||
|
padding: const EdgeInsets.all(20),
|
||||||
|
child: Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
Row(
|
||||||
|
children: [
|
||||||
|
Container(
|
||||||
|
padding: const EdgeInsets.all(12),
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
color: _beacon.beaconType.color.withValues(alpha: 0.1),
|
||||||
|
borderRadius: BorderRadius.circular(12),
|
||||||
|
),
|
||||||
|
child: Icon(
|
||||||
|
_beacon.beaconType.icon,
|
||||||
|
color: _beacon.beaconType.color,
|
||||||
|
size: 24,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
const SizedBox(width: 12),
|
||||||
|
Expanded(
|
||||||
|
child: Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
Text(
|
||||||
|
_beacon.beaconType.displayName,
|
||||||
|
style: AppTheme.headlineSmall,
|
||||||
|
),
|
||||||
|
Text(
|
||||||
|
'${_beacon.getFormattedDistance()} away',
|
||||||
|
style: AppTheme.bodyMedium?.copyWith(
|
||||||
|
color: AppTheme.textDisabled,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
const SizedBox(height: 16),
|
||||||
|
Text(
|
||||||
|
_post.body,
|
||||||
|
style: AppTheme.postBody,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Widget _buildBeaconInfo() {
|
||||||
|
return Padding(
|
||||||
|
padding: const EdgeInsets.symmetric(horizontal: 20),
|
||||||
|
child: Row(
|
||||||
|
children: [
|
||||||
|
Icon(
|
||||||
|
Icons.access_time,
|
||||||
|
color: AppTheme.textDisabled,
|
||||||
|
size: 16,
|
||||||
|
),
|
||||||
|
const SizedBox(width: 4),
|
||||||
|
Text(
|
||||||
|
_beacon.getTimeAgo(),
|
||||||
|
style: AppTheme.bodyMedium?.copyWith(
|
||||||
|
color: AppTheme.textDisabled,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
const Spacer(),
|
||||||
|
if (_post.latitude != null && _post.longitude != null) ...[
|
||||||
|
Icon(
|
||||||
|
Icons.location_on,
|
||||||
|
color: AppTheme.textDisabled,
|
||||||
|
size: 16,
|
||||||
|
),
|
||||||
|
const SizedBox(width: 4),
|
||||||
|
Text(
|
||||||
|
'Location tagged',
|
||||||
|
style: AppTheme.bodyMedium?.copyWith(
|
||||||
|
color: AppTheme.textDisabled,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
],
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Widget _buildAuthorInfo() {
|
||||||
|
final author = _post.author;
|
||||||
|
if (author == null) return const SizedBox.shrink();
|
||||||
|
|
||||||
|
return Padding(
|
||||||
|
padding: const EdgeInsets.all(20),
|
||||||
|
child: Row(
|
||||||
|
children: [
|
||||||
|
CircleAvatar(
|
||||||
|
radius: 20,
|
||||||
|
backgroundColor: AppTheme.egyptianBlue,
|
||||||
|
backgroundImage: (author.avatarUrl != null && author.avatarUrl!.isNotEmpty)
|
||||||
|
? NetworkImage(author.avatarUrl!)
|
||||||
|
: null,
|
||||||
|
child: (author.avatarUrl == null || author.avatarUrl!.isEmpty)
|
||||||
|
? Text(
|
||||||
|
((author.displayName ?? author.handle ?? '?')[0]).toUpperCase(),
|
||||||
|
style: const TextStyle(color: Colors.white),
|
||||||
|
)
|
||||||
|
: null,
|
||||||
|
),
|
||||||
|
const SizedBox(width: 12),
|
||||||
|
Expanded(
|
||||||
|
child: Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
Text(
|
||||||
|
author.displayName ?? '@${author.handle ?? 'unknown'}',
|
||||||
|
style: AppTheme.headlineSmall,
|
||||||
|
),
|
||||||
|
if (author.handle != null && author.handle!.isNotEmpty)
|
||||||
|
Text(
|
||||||
|
'@${author.handle}',
|
||||||
|
style: AppTheme.bodyMedium?.copyWith(
|
||||||
|
color: AppTheme.textDisabled,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Widget _buildActionButtons() {
|
||||||
|
return Padding(
|
||||||
|
padding: const EdgeInsets.symmetric(horizontal: 20),
|
||||||
|
child: Column(
|
||||||
|
children: [
|
||||||
|
// Vouch Button
|
||||||
|
SizedBox(
|
||||||
|
width: double.infinity,
|
||||||
|
child: ElevatedButton.icon(
|
||||||
|
onPressed: _isVouching ? null : () => _vouchBeacon(),
|
||||||
|
icon: _isVouching
|
||||||
|
? const SizedBox(
|
||||||
|
width: 20,
|
||||||
|
height: 20,
|
||||||
|
child: CircularProgressIndicator(
|
||||||
|
strokeWidth: 2,
|
||||||
|
color: Colors.white,
|
||||||
|
),
|
||||||
|
)
|
||||||
|
: const Icon(Icons.thumb_up),
|
||||||
|
label: Text(_isVouching ? 'Confirming...' : 'Vouch for this Beacon'),
|
||||||
|
style: ElevatedButton.styleFrom(
|
||||||
|
backgroundColor: Colors.green,
|
||||||
|
foregroundColor: Colors.white,
|
||||||
|
padding: const EdgeInsets.symmetric(vertical: 16),
|
||||||
|
shape: RoundedRectangleBorder(
|
||||||
|
borderRadius: BorderRadius.circular(12),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
const SizedBox(height: 12),
|
||||||
|
// Report Button
|
||||||
|
SizedBox(
|
||||||
|
width: double.infinity,
|
||||||
|
child: OutlinedButton.icon(
|
||||||
|
onPressed: _isReporting ? null : () => _reportBeacon(),
|
||||||
|
icon: _isReporting
|
||||||
|
? const SizedBox(
|
||||||
|
width: 20,
|
||||||
|
height: 20,
|
||||||
|
child: CircularProgressIndicator(
|
||||||
|
strokeWidth: 2,
|
||||||
|
color: Colors.red,
|
||||||
|
),
|
||||||
|
)
|
||||||
|
: const Icon(Icons.thumb_down),
|
||||||
|
label: Text(_isReporting ? 'Reporting...' : 'Report Issue'),
|
||||||
|
style: OutlinedButton.styleFrom(
|
||||||
|
foregroundColor: Colors.red,
|
||||||
|
side: const BorderSide(color: Colors.red),
|
||||||
|
padding: const EdgeInsets.symmetric(vertical: 16),
|
||||||
|
shape: RoundedRectangleBorder(
|
||||||
|
borderRadius: BorderRadius.circular(12),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Widget _buildConfidenceIndicator() {
|
||||||
|
return Padding(
|
||||||
|
padding: const EdgeInsets.symmetric(horizontal: 20),
|
||||||
|
child: Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
Text(
|
||||||
|
'Community Confidence',
|
||||||
|
style: AppTheme.labelMedium,
|
||||||
|
),
|
||||||
|
const SizedBox(height: 8),
|
||||||
|
ClipRRect(
|
||||||
|
borderRadius: BorderRadius.circular(8),
|
||||||
|
child: LinearProgressIndicator(
|
||||||
|
value: _beacon.confidenceScore,
|
||||||
|
minHeight: 8,
|
||||||
|
backgroundColor: Colors.grey.withValues(alpha: 0.3),
|
||||||
|
valueColor: AlwaysStoppedAnimation<Color>(_statusColor),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
const SizedBox(height: 4),
|
||||||
|
Text(
|
||||||
|
'Confidence ${(_beacon.confidenceScore * 100).toStringAsFixed(0)}%',
|
||||||
|
style: AppTheme.labelSmall?.copyWith(
|
||||||
|
color: AppTheme.textDisabled,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Future<void> _vouchBeacon() async {
|
||||||
|
final apiService = ref.read(apiServiceProvider);
|
||||||
|
setState(() => _isVouching = true);
|
||||||
|
|
||||||
|
try {
|
||||||
|
await apiService.vouchBeacon(_post.id);
|
||||||
|
if (mounted) {
|
||||||
|
ScaffoldMessenger.of(context).showSnackBar(
|
||||||
|
const SnackBar(
|
||||||
|
content: Text('Thanks for confirming this beacon!'),
|
||||||
|
backgroundColor: Colors.green,
|
||||||
|
),
|
||||||
|
);
|
||||||
|
Navigator.of(context).pop();
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
if (mounted) {
|
||||||
|
ScaffoldMessenger.of(context).showSnackBar(
|
||||||
|
SnackBar(
|
||||||
|
content: Text('Something went wrong: $e'),
|
||||||
|
backgroundColor: Colors.red,
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
} finally {
|
||||||
|
if (mounted) setState(() => _isVouching = false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Future<void> _reportBeacon() async {
|
||||||
|
final apiService = ref.read(apiServiceProvider);
|
||||||
|
setState(() => _isReporting = true);
|
||||||
|
|
||||||
|
try {
|
||||||
|
await apiService.reportBeacon(_post.id);
|
||||||
|
if (mounted) {
|
||||||
|
ScaffoldMessenger.of(context).showSnackBar(
|
||||||
|
const SnackBar(
|
||||||
|
content: Text('Report received. Thanks for keeping the community safe.'),
|
||||||
|
backgroundColor: Colors.orange,
|
||||||
|
),
|
||||||
|
);
|
||||||
|
Navigator.of(context).pop();
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
if (mounted) {
|
||||||
|
ScaffoldMessenger.of(context).showSnackBar(
|
||||||
|
SnackBar(
|
||||||
|
content: Text('Something went wrong: $e'),
|
||||||
|
backgroundColor: Colors.red,
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
} finally {
|
||||||
|
if (mounted) setState(() => _isReporting = false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -11,6 +11,7 @@ import '../../services/local_intel_service.dart';
|
||||||
import '../../theme/app_theme.dart';
|
import '../../theme/app_theme.dart';
|
||||||
import 'package:go_router/go_router.dart';
|
import 'package:go_router/go_router.dart';
|
||||||
import 'beacon_bottom_sheet.dart';
|
import 'beacon_bottom_sheet.dart';
|
||||||
|
import 'beacon_detail_screen.dart';
|
||||||
import 'create_beacon_sheet.dart';
|
import 'create_beacon_sheet.dart';
|
||||||
import 'widgets/intel_cards.dart';
|
import 'widgets/intel_cards.dart';
|
||||||
import 'widgets/resources_sheet.dart';
|
import 'widgets/resources_sheet.dart';
|
||||||
|
|
@ -184,10 +185,10 @@ class _BeaconScreenState extends ConsumerState<BeaconScreen> {
|
||||||
}
|
}
|
||||||
|
|
||||||
void _onMarkerTap(Post post) {
|
void _onMarkerTap(Post post) {
|
||||||
showModalBottomSheet(
|
Navigator.of(context).push(
|
||||||
context: context,
|
MaterialPageRoute(
|
||||||
backgroundColor: Colors.transparent,
|
builder: (context) => BeaconDetailScreen(beaconPost: post),
|
||||||
builder: (context) => BeaconBottomSheet(post: post),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -692,6 +693,7 @@ class _BeaconScreenState extends ConsumerState<BeaconScreen> {
|
||||||
Marker _createMarker(Post post) {
|
Marker _createMarker(Post post) {
|
||||||
final typeColor = post.beaconType?.color ?? Colors.blue;
|
final typeColor = post.beaconType?.color ?? Colors.blue;
|
||||||
final typeIcon = post.beaconType?.icon ?? Icons.location_on;
|
final typeIcon = post.beaconType?.icon ?? Icons.location_on;
|
||||||
|
final confidenceScore = post.confidenceScore ?? 0.5;
|
||||||
|
|
||||||
final fallbackBase = _userLocation ?? _mapCenter;
|
final fallbackBase = _userLocation ?? _mapCenter;
|
||||||
|
|
||||||
|
|
@ -708,16 +710,10 @@ class _BeaconScreenState extends ConsumerState<BeaconScreen> {
|
||||||
height: 48,
|
height: 48,
|
||||||
child: GestureDetector(
|
child: GestureDetector(
|
||||||
onTap: () => _onMarkerTap(post),
|
onTap: () => _onMarkerTap(post),
|
||||||
child: Container(
|
child: _BeaconMarker(
|
||||||
decoration: BoxDecoration(
|
|
||||||
shape: BoxShape.circle,
|
|
||||||
color: typeColor,
|
color: typeColor,
|
||||||
boxShadow: [
|
icon: typeIcon,
|
||||||
BoxShadow(
|
confidenceScore: confidenceScore,
|
||||||
color: Colors.black.withValues(alpha: 0.3), blurRadius: 8),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
child: Icon(typeIcon, color: Colors.white, size: 28),
|
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
@ -733,6 +729,87 @@ class _BeaconScreenState extends ConsumerState<BeaconScreen> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class _BeaconMarker extends StatefulWidget {
|
||||||
|
final Color color;
|
||||||
|
final IconData icon;
|
||||||
|
final double confidenceScore;
|
||||||
|
|
||||||
|
const _BeaconMarker({
|
||||||
|
required this.color,
|
||||||
|
required this.icon,
|
||||||
|
required this.confidenceScore,
|
||||||
|
});
|
||||||
|
|
||||||
|
@override
|
||||||
|
State<_BeaconMarker> createState() => _BeaconMarkerState();
|
||||||
|
}
|
||||||
|
|
||||||
|
class _BeaconMarkerState extends State<_BeaconMarker>
|
||||||
|
with SingleTickerProviderStateMixin {
|
||||||
|
late AnimationController _controller;
|
||||||
|
late Animation<double> _pulseAnimation;
|
||||||
|
|
||||||
|
@override
|
||||||
|
void initState() {
|
||||||
|
super.initState();
|
||||||
|
_controller = AnimationController(
|
||||||
|
duration: const Duration(milliseconds: 1500),
|
||||||
|
vsync: this,
|
||||||
|
);
|
||||||
|
|
||||||
|
if (widget.confidenceScore < 0.3) {
|
||||||
|
// Low confidence - warning pulse
|
||||||
|
_pulseAnimation = Tween<double>(begin: 0.8, end: 1.0).animate(
|
||||||
|
CurvedAnimation(parent: _controller, curve: Curves.easeInOut),
|
||||||
|
);
|
||||||
|
_controller.repeat(reverse: true);
|
||||||
|
} else if (widget.confidenceScore > 0.7) {
|
||||||
|
// High confidence - solid, no pulse
|
||||||
|
_pulseAnimation = Tween<double>(begin: 1.0, end: 1.0).animate(
|
||||||
|
CurvedAnimation(parent: _controller, curve: Curves.linear),
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
// Medium confidence - subtle pulse
|
||||||
|
_pulseAnimation = Tween<double>(begin: 0.9, end: 1.0).animate(
|
||||||
|
CurvedAnimation(parent: _controller, curve: Curves.easeInOut),
|
||||||
|
);
|
||||||
|
_controller.repeat(reverse: true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
void dispose() {
|
||||||
|
_controller.dispose();
|
||||||
|
super.dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return AnimatedBuilder(
|
||||||
|
animation: _pulseAnimation,
|
||||||
|
builder: (context, child) {
|
||||||
|
return Transform.scale(
|
||||||
|
scale: _pulseAnimation.value,
|
||||||
|
child: Container(
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
shape: BoxShape.circle,
|
||||||
|
color: widget.color,
|
||||||
|
boxShadow: [
|
||||||
|
BoxShadow(
|
||||||
|
color: Colors.black.withValues(alpha: 0.3),
|
||||||
|
blurRadius: 8,
|
||||||
|
spreadRadius: widget.confidenceScore < 0.3 ? 2 : 0,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
child: Icon(widget.icon, color: Colors.white, size: 28),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
},
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
class _PulsingLocationIndicator extends StatefulWidget {
|
class _PulsingLocationIndicator extends StatefulWidget {
|
||||||
@override
|
@override
|
||||||
State<_PulsingLocationIndicator> createState() =>
|
State<_PulsingLocationIndicator> createState() =>
|
||||||
|
|
|
||||||
|
|
@ -14,12 +14,16 @@ class sojornImageEditor extends StatelessWidget {
|
||||||
final String? imagePath;
|
final String? imagePath;
|
||||||
final Uint8List? imageBytes;
|
final Uint8List? imageBytes;
|
||||||
final String? imageName;
|
final String? imageName;
|
||||||
|
final bool isBeacon;
|
||||||
|
final String? postType;
|
||||||
|
|
||||||
const sojornImageEditor({
|
const sojornImageEditor({
|
||||||
super.key,
|
super.key,
|
||||||
this.imagePath,
|
this.imagePath,
|
||||||
this.imageBytes,
|
this.imageBytes,
|
||||||
this.imageName,
|
this.imageName,
|
||||||
|
this.isBeacon = false,
|
||||||
|
this.postType,
|
||||||
}) : assert(imagePath != null || imageBytes != null);
|
}) : assert(imagePath != null || imageBytes != null);
|
||||||
|
|
||||||
static const Color _matteBlack = Color(0xFF0B0B0B);
|
static const Color _matteBlack = Color(0xFF0B0B0B);
|
||||||
|
|
@ -63,6 +67,9 @@ class sojornImageEditor extends StatelessWidget {
|
||||||
}
|
}
|
||||||
|
|
||||||
ProImageEditorConfigs _buildConfigs() {
|
ProImageEditorConfigs _buildConfigs() {
|
||||||
|
// Determine aspect ratio based on post type
|
||||||
|
final aspectRatios = _getAspectRatios();
|
||||||
|
|
||||||
return ProImageEditorConfigs(
|
return ProImageEditorConfigs(
|
||||||
theme: _buildEditorTheme(),
|
theme: _buildEditorTheme(),
|
||||||
imageEditorTheme: ImageEditorTheme(
|
imageEditorTheme: ImageEditorTheme(
|
||||||
|
|
@ -156,7 +163,7 @@ class sojornImageEditor extends StatelessWidget {
|
||||||
),
|
),
|
||||||
TextButton(
|
TextButton(
|
||||||
onPressed: editor.doneEditing,
|
onPressed: editor.doneEditing,
|
||||||
child: const Text('Save'),
|
child: Text(isBeacon ? 'Save Beacon' : 'Save'),
|
||||||
),
|
),
|
||||||
const SizedBox(width: 6),
|
const SizedBox(width: 6),
|
||||||
],
|
],
|
||||||
|
|
@ -168,6 +175,28 @@ class sojornImageEditor extends StatelessWidget {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Map<String, dynamic> _getAspectRatios() {
|
||||||
|
if (isBeacon) {
|
||||||
|
// Beacon: Allow original and free ratios to preserve context
|
||||||
|
return {
|
||||||
|
'options': const [
|
||||||
|
'original',
|
||||||
|
'free',
|
||||||
|
'4:5',
|
||||||
|
'16:9',
|
||||||
|
],
|
||||||
|
};
|
||||||
|
} else {
|
||||||
|
// Main Feed: Lock to square for consistency
|
||||||
|
return {
|
||||||
|
'options': const [
|
||||||
|
'1:1',
|
||||||
|
'free',
|
||||||
|
],
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
if (imageBytes != null) {
|
if (imageBytes != null) {
|
||||||
|
|
@ -227,6 +256,24 @@ class sojornImageEditor extends StatelessWidget {
|
||||||
final file = File('${tempDir.path}/$fileName');
|
final file = File('${tempDir.path}/$fileName');
|
||||||
await file.writeAsBytes(editedBytes);
|
await file.writeAsBytes(editedBytes);
|
||||||
|
|
||||||
|
// Generate dual outputs for beacons
|
||||||
|
if (isBeacon) {
|
||||||
|
final thumbnailFileName = 'sojorn_thumb_$timestamp.jpg';
|
||||||
|
final thumbnailFile = File('${tempDir.path}/$thumbnailFileName');
|
||||||
|
|
||||||
|
// Create 300x300 thumbnail
|
||||||
|
await _createThumbnail(editedBytes, thumbnailFile);
|
||||||
|
|
||||||
|
if (!context.mounted) return;
|
||||||
|
Navigator.pop(
|
||||||
|
context,
|
||||||
|
SojornMediaResult.beaconImage(
|
||||||
|
filePath: file.path,
|
||||||
|
thumbnailPath: thumbnailFile.path,
|
||||||
|
name: fileName,
|
||||||
|
),
|
||||||
|
);
|
||||||
|
} else {
|
||||||
if (!context.mounted) return;
|
if (!context.mounted) return;
|
||||||
Navigator.pop(
|
Navigator.pop(
|
||||||
context,
|
context,
|
||||||
|
|
@ -235,6 +282,7 @@ class sojornImageEditor extends StatelessWidget {
|
||||||
name: fileName,
|
name: fileName,
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
if (!context.mounted) return;
|
if (!context.mounted) return;
|
||||||
Navigator.pop(
|
Navigator.pop(
|
||||||
|
|
@ -250,6 +298,27 @@ class sojornImageEditor extends StatelessWidget {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Future<void> _createThumbnail(Uint8List originalBytes, File thumbnailFile) async {
|
||||||
|
// This is a placeholder for thumbnail generation
|
||||||
|
// In a real implementation, you would use an image processing library
|
||||||
|
// like 'image' package to resize the image to 300x300
|
||||||
|
try {
|
||||||
|
// For now, just write the original bytes as a placeholder
|
||||||
|
await thumbnailFile.writeAsBytes(originalBytes);
|
||||||
|
|
||||||
|
// TODO: Implement proper thumbnail generation using image package
|
||||||
|
// Example (requires adding 'image' package to pubspec.yaml):
|
||||||
|
// import 'package:image/image.dart' as img;
|
||||||
|
//
|
||||||
|
// final image = img.decodeImage(originalBytes)!;
|
||||||
|
// final thumbnail = img.copyResize(image, width: 300, height: 300);
|
||||||
|
// await thumbnailFile.writeAsBytes(img.encodeJpg(thumbnail, quality: 85));
|
||||||
|
} catch (e) {
|
||||||
|
// Fallback to original bytes if thumbnail generation fails
|
||||||
|
await thumbnailFile.writeAsBytes(originalBytes);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Widget _buildLoading() {
|
Widget _buildLoading() {
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
backgroundColor: _matteBlack,
|
backgroundColor: _matteBlack,
|
||||||
|
|
|
||||||
|
|
@ -5,12 +5,13 @@ import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||||
import 'package:flutter_animate/flutter_animate.dart';
|
import 'package:flutter_animate/flutter_animate.dart';
|
||||||
import 'package:google_fonts/google_fonts.dart';
|
import 'package:google_fonts/google_fonts.dart';
|
||||||
import 'package:timeago/timeago.dart' as timeago;
|
import 'package:timeago/timeago.dart' as timeago;
|
||||||
|
import '../../widgets/reactions/reaction_picker.dart';
|
||||||
|
import '../../widgets/reactions/reaction_strip.dart';
|
||||||
import '../../models/post.dart';
|
import '../../models/post.dart';
|
||||||
import '../../providers/api_provider.dart';
|
import '../../providers/api_provider.dart';
|
||||||
import '../../theme/app_theme.dart';
|
import '../../theme/app_theme.dart';
|
||||||
import '../../widgets/post/interactive_reply_block.dart';
|
import '../../widgets/post/interactive_reply_block.dart';
|
||||||
import '../../widgets/media/signed_media_image.dart';
|
import '../../widgets/media/signed_media_image.dart';
|
||||||
import '../../widgets/reactions/reaction_strip.dart';
|
|
||||||
import '../compose/compose_screen.dart';
|
import '../compose/compose_screen.dart';
|
||||||
|
|
||||||
class ThreadedConversationScreen extends ConsumerStatefulWidget {
|
class ThreadedConversationScreen extends ConsumerStatefulWidget {
|
||||||
|
|
@ -945,31 +946,34 @@ class _ThreadedConversationScreenState extends ConsumerState<ThreadedConversatio
|
||||||
_persistReaction(postId, emoji, previousCounts, previousMine);
|
_persistReaction(postId, emoji, previousCounts, previousMine);
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> _openReactionPicker(String postId) async {
|
Post? _findPostById(String postId) {
|
||||||
final selection = await showReactionPicker(
|
if (widget.rootPost?.id == postId) return widget.rootPost;
|
||||||
context,
|
|
||||||
baseItems: const [
|
|
||||||
ReactionItem(id: '👍', label: 'thumbs up'),
|
|
||||||
ReactionItem(id: '❤️', label: 'heart'),
|
|
||||||
ReactionItem(id: '😂', label: 'laugh'),
|
|
||||||
ReactionItem(id: '😮', label: 'wow'),
|
|
||||||
ReactionItem(id: '😢', label: 'sad'),
|
|
||||||
ReactionItem(id: '😡', label: 'angry'),
|
|
||||||
ReactionItem(id: '🙏', label: 'thanks'),
|
|
||||||
ReactionItem(id: '🔥', label: 'fire'),
|
|
||||||
ReactionItem(id: '🎉', label: 'party'),
|
|
||||||
ReactionItem(id: '👀', label: 'eyes'),
|
|
||||||
ReactionItem(id: '🤝', label: 'handshake'),
|
|
||||||
ReactionItem(id: '✅', label: 'check'),
|
|
||||||
ReactionItem(id: '🌿', label: 'leaf'),
|
|
||||||
ReactionItem(id: '✨', label: 'sparkles'),
|
|
||||||
ReactionItem(id: '🧠', label: 'brain'),
|
|
||||||
ReactionItem(id: '🫶', label: 'care'),
|
|
||||||
],
|
|
||||||
);
|
|
||||||
|
|
||||||
if (selection == null || selection.isEmpty) return;
|
// Search in focus context
|
||||||
_toggleReaction(postId, selection);
|
if (_focusContext != null) {
|
||||||
|
if (_focusContext!.targetPost.id == postId) return _focusContext!.targetPost;
|
||||||
|
for (final post in _focusContext!.children) {
|
||||||
|
if (post.id == postId) return post;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
Future<void> _openReactionPicker(String postId) async {
|
||||||
|
final post = _findPostById(postId);
|
||||||
|
if (post == null) return;
|
||||||
|
|
||||||
|
showDialog(
|
||||||
|
context: context,
|
||||||
|
builder: (context) => ReactionPicker(
|
||||||
|
onReactionSelected: (emoji) {
|
||||||
|
_toggleReaction(postId, emoji);
|
||||||
|
},
|
||||||
|
reactionCounts: _reactionCountsFor(post),
|
||||||
|
myReactions: _myReactionsFor(post),
|
||||||
|
),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void _seedReactionState(FocusContext focusContext) {
|
void _seedReactionState(FocusContext focusContext) {
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
import 'dart:async';
|
import 'dart:async';
|
||||||
import 'dart:convert';
|
import 'dart:convert';
|
||||||
import '../models/category.dart';
|
import 'package:flutter/foundation.dart';
|
||||||
|
import '../models/category.dart' as models;
|
||||||
import '../models/profile.dart';
|
import '../models/profile.dart';
|
||||||
import '../models/follow_request.dart';
|
import '../models/follow_request.dart';
|
||||||
import '../models/profile_privacy_settings.dart';
|
import '../models/profile_privacy_settings.dart';
|
||||||
|
|
@ -13,6 +14,8 @@ import '../config/api_config.dart';
|
||||||
import '../services/auth_service.dart';
|
import '../services/auth_service.dart';
|
||||||
import '../models/search_results.dart';
|
import '../models/search_results.dart';
|
||||||
import '../models/tone_analysis.dart';
|
import '../models/tone_analysis.dart';
|
||||||
|
import '../utils/security_utils.dart';
|
||||||
|
import '../utils/request_signing.dart';
|
||||||
import 'package:http/http.dart' as http;
|
import 'package:http/http.dart' as http;
|
||||||
|
|
||||||
/// ApiService - Single source of truth for all backend communication.
|
/// ApiService - Single source of truth for all backend communication.
|
||||||
|
|
@ -59,6 +62,7 @@ class ApiService {
|
||||||
String method = 'POST',
|
String method = 'POST',
|
||||||
Map<String, String>? queryParams,
|
Map<String, String>? queryParams,
|
||||||
Object? body,
|
Object? body,
|
||||||
|
bool requireSignature = false,
|
||||||
}) async {
|
}) async {
|
||||||
try {
|
try {
|
||||||
var uri = Uri.parse('${ApiConfig.baseUrl}$path')
|
var uri = Uri.parse('${ApiConfig.baseUrl}$path')
|
||||||
|
|
@ -66,18 +70,30 @@ class ApiService {
|
||||||
var headers = await _authHeaders();
|
var headers = await _authHeaders();
|
||||||
headers['Content-Type'] = 'application/json';
|
headers['Content-Type'] = 'application/json';
|
||||||
|
|
||||||
|
// Add request signature for critical operations
|
||||||
|
if (requireSignature && body != null) {
|
||||||
|
final secretKey = _authService.currentUser?.id ?? 'default';
|
||||||
|
headers = RequestSigning.addSignatureHeaders(
|
||||||
|
headers,
|
||||||
|
method,
|
||||||
|
path,
|
||||||
|
body as Map<String, dynamic>?,
|
||||||
|
secretKey,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
http.Response response =
|
http.Response response =
|
||||||
await _performRequest(method, uri, headers, body);
|
await _performRequest(method, uri, headers, body);
|
||||||
|
|
||||||
// INTERCEPTOR: Handle 401
|
// INTERCEPTOR: Handle 401
|
||||||
if (response.statusCode == 401) {
|
if (response.statusCode == 401) {
|
||||||
print('[API] 401 Unauthorized at $path. Attempting refresh...');
|
if (kDebugMode) print('[API] Auth error at ${_sanitizePath(path)}');
|
||||||
final refreshed = await _authService.refreshSession();
|
final refreshed = await _authService.refreshSession();
|
||||||
if (refreshed) {
|
if (refreshed) {
|
||||||
// Update token header and RETRY
|
// Update token header and RETRY
|
||||||
headers = await _authHeaders();
|
headers = await _authHeaders();
|
||||||
headers['Content-Type'] = 'application/json';
|
headers['Content-Type'] = 'application/json';
|
||||||
print('[API] Retrying request to $path with new token...');
|
if (kDebugMode) print('[API] Retrying request to ${_sanitizePath(path)}');
|
||||||
response = await _performRequest(method, uri, headers, body);
|
response = await _performRequest(method, uri, headers, body);
|
||||||
} else {
|
} else {
|
||||||
// Refresh failed, assume session died.
|
// Refresh failed, assume session died.
|
||||||
|
|
@ -86,6 +102,7 @@ class ApiService {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (response.statusCode >= 400) {
|
if (response.statusCode >= 400) {
|
||||||
|
if (kDebugMode) print('[API] Error ${response.statusCode} at ${_sanitizePath(path)}');
|
||||||
throw Exception(
|
throw Exception(
|
||||||
'Go API error (${response.statusCode}): ${response.body}');
|
'Go API error (${response.statusCode}): ${response.body}');
|
||||||
}
|
}
|
||||||
|
|
@ -95,7 +112,7 @@ class ApiService {
|
||||||
if (data is Map<String, dynamic>) return data;
|
if (data is Map<String, dynamic>) return data;
|
||||||
return {'data': data};
|
return {'data': data};
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
print('Go API call to $path failed: $e');
|
if (kDebugMode) print('[API] Call failed: ${_sanitizePath(path)} - $e');
|
||||||
rethrow;
|
rethrow;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -129,9 +146,22 @@ class ApiService {
|
||||||
|
|
||||||
return {
|
return {
|
||||||
'Authorization': 'Bearer $token',
|
'Authorization': 'Bearer $token',
|
||||||
|
'X-Rate-Limit-Remaining': '100',
|
||||||
|
'X-Rate-Limit-Reset': '3600',
|
||||||
|
'X-Request-ID': _generateRequestId(),
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Sanitize path for logging by removing sensitive IDs
|
||||||
|
String _sanitizePath(String path) {
|
||||||
|
return path.replaceAll(RegExp(r'/[a-zA-Z0-9_-]{20,}'), '/***');
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Generate unique request ID for tracking
|
||||||
|
String _generateRequestId() {
|
||||||
|
return '${DateTime.now().millisecondsSinceEpoch}-${DateTime.now().microsecond}';
|
||||||
|
}
|
||||||
|
|
||||||
List<Map<String, dynamic>> _normalizeListResponse(dynamic response) {
|
List<Map<String, dynamic>> _normalizeListResponse(dynamic response) {
|
||||||
if (response == null) return [];
|
if (response == null) return [];
|
||||||
if (response is List<dynamic>) {
|
if (response is List<dynamic>) {
|
||||||
|
|
@ -153,14 +183,14 @@ class ApiService {
|
||||||
// Category & Onboarding
|
// Category & Onboarding
|
||||||
// =========================================================================
|
// =========================================================================
|
||||||
|
|
||||||
Future<List<Category>> getCategories() async {
|
Future<List<models.Category>> getCategories() async {
|
||||||
final data = await _callGoApi('/categories', method: 'GET');
|
final data = await _callGoApi('/categories', method: 'GET');
|
||||||
return (data['categories'] as List)
|
return (data['categories'] as List)
|
||||||
.map((json) => Category.fromJson(json))
|
.map((json) => models.Category.fromJson(json))
|
||||||
.toList();
|
.toList();
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<List<Category>> getEnabledCategories() async {
|
Future<List<models.Category>> getEnabledCategories() async {
|
||||||
final categories = await getCategories();
|
final categories = await getCategories();
|
||||||
final enabledIds = await _getEnabledCategoryIds();
|
final enabledIds = await _getEnabledCategoryIds();
|
||||||
|
|
||||||
|
|
@ -191,7 +221,7 @@ class ApiService {
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> setUserCategorySettings({
|
Future<void> setUserCategorySettings({
|
||||||
required List<Category> categories,
|
required List<models.Category> categories,
|
||||||
required Set<String> enabledCategoryIds,
|
required Set<String> enabledCategoryIds,
|
||||||
}) async {
|
}) async {
|
||||||
final settings = categories
|
final settings = categories
|
||||||
|
|
@ -232,18 +262,30 @@ class ApiService {
|
||||||
required String displayName,
|
required String displayName,
|
||||||
String? bio,
|
String? bio,
|
||||||
}) async {
|
}) async {
|
||||||
|
// Validate and sanitize inputs
|
||||||
|
if (!SecurityUtils.isValidHandle(handle)) {
|
||||||
|
throw ArgumentError('Invalid handle format');
|
||||||
|
}
|
||||||
|
if (!SecurityUtils.isValidEmail(_authService.currentUser?.email ?? '')) {
|
||||||
|
throw ArgumentError('Invalid user email');
|
||||||
|
}
|
||||||
|
|
||||||
|
final sanitizedHandle = SecurityUtils.sanitizeText(handle);
|
||||||
|
final sanitizedDisplayName = SecurityUtils.sanitizeText(displayName);
|
||||||
|
final sanitizedBio = bio != null ? SecurityUtils.sanitizeText(bio) : null;
|
||||||
|
|
||||||
// Legacy support: still calls generic 'signup' but via auth flow in AuthService usually.
|
// Legacy support: still calls generic 'signup' but via auth flow in AuthService usually.
|
||||||
// Making this use the endpoint just in case called directly.
|
// Making this use the endpoint just in case called directly.
|
||||||
final data = await _callGoApi(
|
|
||||||
'/auth/signup', // Note: auth routes are usually public, but this helper might assume auth header.
|
|
||||||
// Adjust based on backend. If this requires token, it's fine.
|
// Adjust based on backend. If this requires token, it's fine.
|
||||||
// A 'create profile' usually happens after 'auth register'.
|
// A 'create profile' usually happens after 'auth register'.
|
||||||
// If this is the 'onboarding' step for a user who exists but has no profile:
|
// If this is the 'onboarding' step for a user who exists but has no profile:
|
||||||
method: 'POST',
|
final data = await _callGoApi(
|
||||||
|
'/profile', // Changed from '/auth/signup' to '/profile'
|
||||||
|
method: 'POST', // Changed from 'POST' to 'POST'
|
||||||
body: {
|
body: {
|
||||||
'handle': handle,
|
'handle': sanitizedHandle,
|
||||||
'display_name': displayName,
|
'display_name': sanitizedDisplayName,
|
||||||
if (bio != null) 'bio': bio,
|
if (sanitizedBio != null) 'bio': sanitizedBio,
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
@ -298,23 +340,38 @@ class ApiService {
|
||||||
int? registrationId,
|
int? registrationId,
|
||||||
String? encryptedPrivateKey,
|
String? encryptedPrivateKey,
|
||||||
}) async {
|
}) async {
|
||||||
|
// Validate and sanitize inputs
|
||||||
|
if (handle != null && !SecurityUtils.isValidHandle(handle)) {
|
||||||
|
throw ArgumentError('Invalid handle format');
|
||||||
|
}
|
||||||
|
|
||||||
|
final sanitizedHandle = handle != null ? SecurityUtils.sanitizeText(handle) : null;
|
||||||
|
final sanitizedDisplayName = displayName != null ? SecurityUtils.sanitizeText(displayName) : null;
|
||||||
|
final sanitizedBio = bio != null ? SecurityUtils.sanitizeText(bio) : null;
|
||||||
|
final sanitizedLocation = location != null ? SecurityUtils.sanitizeText(location) : null;
|
||||||
|
final sanitizedWebsite = website != null ? SecurityUtils.sanitizeUrl(website) : null;
|
||||||
|
final sanitizedInterests = interests?.map((i) => SecurityUtils.sanitizeText(i)).toList();
|
||||||
|
final sanitizedAvatarUrl = avatarUrl != null ? SecurityUtils.sanitizeUrl(avatarUrl) : null;
|
||||||
|
final sanitizedCoverUrl = coverUrl != null ? SecurityUtils.sanitizeUrl(coverUrl) : null;
|
||||||
|
|
||||||
final data = await _callGoApi(
|
final data = await _callGoApi(
|
||||||
'/profile',
|
'/profile',
|
||||||
method: 'PATCH',
|
method: 'PATCH',
|
||||||
body: {
|
body: {
|
||||||
if (handle != null) 'handle': handle,
|
if (sanitizedHandle != null) 'handle': sanitizedHandle,
|
||||||
if (displayName != null) 'display_name': displayName,
|
if (sanitizedDisplayName != null) 'display_name': sanitizedDisplayName,
|
||||||
if (bio != null) 'bio': bio,
|
if (sanitizedBio != null) 'bio': sanitizedBio,
|
||||||
if (location != null) 'location': location,
|
if (sanitizedLocation != null) 'location': sanitizedLocation,
|
||||||
if (website != null) 'website': website,
|
if (sanitizedWebsite != null) 'website': sanitizedWebsite,
|
||||||
if (interests != null) 'interests': interests,
|
if (sanitizedInterests != null) 'interests': sanitizedInterests,
|
||||||
if (avatarUrl != null) 'avatar_url': avatarUrl,
|
if (sanitizedAvatarUrl != null) 'avatar_url': sanitizedAvatarUrl,
|
||||||
if (coverUrl != null) 'cover_url': coverUrl,
|
if (sanitizedCoverUrl != null) 'cover_url': sanitizedCoverUrl,
|
||||||
if (identityKey != null) 'identity_key': identityKey,
|
if (identityKey != null) 'identity_key': identityKey,
|
||||||
if (registrationId != null) 'registration_id': registrationId,
|
if (registrationId != null) 'registration_id': registrationId,
|
||||||
if (encryptedPrivateKey != null)
|
if (encryptedPrivateKey != null)
|
||||||
'encrypted_private_key': encryptedPrivateKey,
|
'encrypted_private_key': encryptedPrivateKey,
|
||||||
},
|
},
|
||||||
|
requireSignature: true,
|
||||||
);
|
);
|
||||||
|
|
||||||
return Profile.fromJson(data['profile']);
|
return Profile.fromJson(data['profile']);
|
||||||
|
|
@ -490,18 +547,41 @@ class ApiService {
|
||||||
double? long,
|
double? long,
|
||||||
bool userWarned = false,
|
bool userWarned = false,
|
||||||
}) async {
|
}) async {
|
||||||
|
// Validate and sanitize inputs
|
||||||
|
if (body.isEmpty) {
|
||||||
|
throw ArgumentError('Post body cannot be empty');
|
||||||
|
}
|
||||||
|
|
||||||
|
final sanitizedBody = SecurityUtils.limitText(SecurityUtils.sanitizeText(body), maxLength: 5000);
|
||||||
|
final sanitizedImageUrl = imageUrl != null ? SecurityUtils.sanitizeUrl(imageUrl) : null;
|
||||||
|
final sanitizedVideoUrl = videoUrl != null ? SecurityUtils.sanitizeUrl(videoUrl) : null;
|
||||||
|
final sanitizedThumbnailUrl = thumbnailUrl != null ? SecurityUtils.sanitizeUrl(thumbnailUrl) : null;
|
||||||
|
|
||||||
|
// Validate coordinates for beacons
|
||||||
|
if (isBeacon && (lat == null || long == null)) {
|
||||||
|
throw ArgumentError('Beacon posts require latitude and longitude');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (lat != null && (lat < -90 || lat > 90)) {
|
||||||
|
throw ArgumentError('Invalid latitude range');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (long != null && (long < -180 || long > 180)) {
|
||||||
|
throw ArgumentError('Invalid longitude range');
|
||||||
|
}
|
||||||
|
|
||||||
final data = await _callGoApi(
|
final data = await _callGoApi(
|
||||||
'/posts',
|
'/posts',
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
body: {
|
body: {
|
||||||
'category_id': categoryId,
|
'category_id': categoryId,
|
||||||
'body': body,
|
'body': sanitizedBody,
|
||||||
'body_format': bodyFormat,
|
'body_format': bodyFormat,
|
||||||
'allow_chain': allowChain,
|
'allow_chain': allowChain,
|
||||||
if (chainParentId != null) 'chain_parent_id': chainParentId,
|
if (chainParentId != null) 'chain_parent_id': chainParentId,
|
||||||
if (imageUrl != null) 'image_url': imageUrl,
|
if (sanitizedImageUrl != null) 'image_url': sanitizedImageUrl,
|
||||||
if (videoUrl != null) 'video_url': videoUrl,
|
if (sanitizedVideoUrl != null) 'video_url': sanitizedVideoUrl,
|
||||||
if (thumbnailUrl != null) 'thumbnail_url': thumbnailUrl,
|
if (sanitizedThumbnailUrl != null) 'thumbnail_url': sanitizedThumbnailUrl,
|
||||||
if (durationMs != null) 'duration_ms': durationMs,
|
if (durationMs != null) 'duration_ms': durationMs,
|
||||||
if (ttlHours != null) 'ttl_hours': ttlHours,
|
if (ttlHours != null) 'ttl_hours': ttlHours,
|
||||||
if (isBeacon) 'is_beacon': true,
|
if (isBeacon) 'is_beacon': true,
|
||||||
|
|
@ -510,6 +590,7 @@ class ApiService {
|
||||||
if (long != null) 'beacon_long': long,
|
if (long != null) 'beacon_long': long,
|
||||||
if (userWarned) 'user_warned': true,
|
if (userWarned) 'user_warned': true,
|
||||||
},
|
},
|
||||||
|
requireSignature: true,
|
||||||
);
|
);
|
||||||
|
|
||||||
return Post.fromJson(data['post']);
|
return Post.fromJson(data['post']);
|
||||||
|
|
@ -543,10 +624,17 @@ class ApiService {
|
||||||
required String postId,
|
required String postId,
|
||||||
required String content,
|
required String content,
|
||||||
}) async {
|
}) async {
|
||||||
|
// Validate and sanitize input
|
||||||
|
if (content.isEmpty) {
|
||||||
|
throw ArgumentError('Content cannot be empty');
|
||||||
|
}
|
||||||
|
|
||||||
|
final sanitizedContent = SecurityUtils.limitText(SecurityUtils.sanitizeText(content), maxLength: 5000);
|
||||||
|
|
||||||
await _callGoApi(
|
await _callGoApi(
|
||||||
'/posts/$postId',
|
'/posts/$postId',
|
||||||
method: 'PATCH',
|
method: 'PATCH',
|
||||||
body: {'body': content},
|
body: {'body': sanitizedContent},
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -859,11 +947,22 @@ class ApiService {
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<SearchResults> search(String query) async {
|
Future<SearchResults> search(String query) async {
|
||||||
|
// Validate and sanitize search query
|
||||||
|
if (query.isEmpty) {
|
||||||
|
return SearchResults(users: [], tags: [], posts: []);
|
||||||
|
}
|
||||||
|
|
||||||
|
final sanitizedQuery = SecurityUtils.limitText(SecurityUtils.sanitizeText(query), maxLength: 100);
|
||||||
|
|
||||||
|
if (!SecurityUtils.isValidInput(sanitizedQuery)) {
|
||||||
|
return SearchResults(users: [], tags: [], posts: []);
|
||||||
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
final data = await callGoApi(
|
final data = await callGoApi(
|
||||||
'/search',
|
'/search',
|
||||||
method: 'GET',
|
method: 'GET',
|
||||||
queryParams: {'q': query},
|
queryParams: {'q': sanitizedQuery},
|
||||||
);
|
);
|
||||||
return SearchResults.fromJson(data);
|
return SearchResults.fromJson(data);
|
||||||
} catch (_) {
|
} catch (_) {
|
||||||
|
|
@ -873,13 +972,34 @@ class ApiService {
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<ToneCheckResult> checkTone(String text, {String? imageUrl}) async {
|
Future<ToneCheckResult> checkTone(String text, {String? imageUrl}) async {
|
||||||
|
// Validate and sanitize inputs
|
||||||
|
if (text.isEmpty) {
|
||||||
|
return ToneCheckResult(
|
||||||
|
flagged: false,
|
||||||
|
category: null,
|
||||||
|
flags: [],
|
||||||
|
reason: 'Empty text provided');
|
||||||
|
}
|
||||||
|
|
||||||
|
final sanitizedText = SecurityUtils.limitText(SecurityUtils.sanitizeText(text), maxLength: 2000);
|
||||||
|
final sanitizedImageUrl = imageUrl != null ? SecurityUtils.sanitizeUrl(imageUrl) : null;
|
||||||
|
|
||||||
|
// Check for XSS in text
|
||||||
|
if (SecurityUtils.containsXSS(sanitizedText)) {
|
||||||
|
return ToneCheckResult(
|
||||||
|
flagged: true,
|
||||||
|
category: ModerationCategory.nsfw,
|
||||||
|
flags: ['xss_detected'],
|
||||||
|
reason: 'Potentially dangerous content detected');
|
||||||
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
final data = await callGoApi(
|
final data = await callGoApi(
|
||||||
'/analysis/tone',
|
'/analysis/tone',
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
body: {
|
body: {
|
||||||
'text': text,
|
'text': sanitizedText,
|
||||||
if (imageUrl != null) 'image_url': imageUrl,
|
if (sanitizedImageUrl != null) 'image_url': sanitizedImageUrl,
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
return ToneCheckResult.fromJson(data);
|
return ToneCheckResult.fromJson(data);
|
||||||
|
|
|
||||||
97
sojorn_app/lib/utils/request_signing.dart
Normal file
|
|
@ -0,0 +1,97 @@
|
||||||
|
import 'dart:convert';
|
||||||
|
import 'dart:typed_data';
|
||||||
|
import 'package:crypto/crypto.dart';
|
||||||
|
|
||||||
|
/// Request signing utility for critical API operations
|
||||||
|
class RequestSigning {
|
||||||
|
/// Generate HMAC-SHA256 signature for request
|
||||||
|
static String signRequest(
|
||||||
|
String method,
|
||||||
|
String path,
|
||||||
|
Map<String, dynamic>? body,
|
||||||
|
String timestamp,
|
||||||
|
String secretKey,
|
||||||
|
) {
|
||||||
|
// Create canonical request
|
||||||
|
final canonicalRequest = _buildCanonicalRequest(method, path, body, timestamp);
|
||||||
|
|
||||||
|
// Generate HMAC-SHA256 signature
|
||||||
|
final key = utf8.encode(secretKey);
|
||||||
|
final hmac = Hmac(sha256, key);
|
||||||
|
final digest = hmac.convert(utf8.encode(canonicalRequest));
|
||||||
|
|
||||||
|
return digest.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Build canonical request string for signing
|
||||||
|
static String _buildCanonicalRequest(
|
||||||
|
String method,
|
||||||
|
String path,
|
||||||
|
Map<String, dynamic>? body,
|
||||||
|
String timestamp,
|
||||||
|
) {
|
||||||
|
final parts = [
|
||||||
|
method.toUpperCase(),
|
||||||
|
path,
|
||||||
|
timestamp,
|
||||||
|
];
|
||||||
|
|
||||||
|
if (body != null && body.isNotEmpty) {
|
||||||
|
final sortedBody = Map<String, dynamic>.fromEntries(
|
||||||
|
body.entries.toList()..sort((a, b) => a.key.compareTo(b.key))
|
||||||
|
);
|
||||||
|
parts.add(jsonEncode(sortedBody));
|
||||||
|
}
|
||||||
|
|
||||||
|
return parts.join('\n');
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Verify request signature
|
||||||
|
static bool verifySignature(
|
||||||
|
String method,
|
||||||
|
String path,
|
||||||
|
Map<String, dynamic>? body,
|
||||||
|
String timestamp,
|
||||||
|
String signature,
|
||||||
|
String secretKey,
|
||||||
|
) {
|
||||||
|
final expectedSignature = signRequest(method, path, body, timestamp, secretKey);
|
||||||
|
return _constantTimeEquals(signature, expectedSignature);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Constant-time comparison to prevent timing attacks
|
||||||
|
static bool _constantTimeEquals(String a, String b) {
|
||||||
|
if (a.length != b.length) return false;
|
||||||
|
|
||||||
|
int result = 0;
|
||||||
|
for (int i = 0; i < a.length; i++) {
|
||||||
|
result |= a.codeUnitAt(i) ^ b.codeUnitAt(i);
|
||||||
|
}
|
||||||
|
|
||||||
|
return result == 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Generate timestamp for request signing
|
||||||
|
static String generateTimestamp() {
|
||||||
|
return DateTime.now().toUtc().toIso8601String().replaceAll('.', '').replaceAll('Z', '');
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Add signature headers to request
|
||||||
|
static Map<String, String> addSignatureHeaders(
|
||||||
|
Map<String, String> headers,
|
||||||
|
String method,
|
||||||
|
String path,
|
||||||
|
Map<String, dynamic>? body,
|
||||||
|
String secretKey,
|
||||||
|
) {
|
||||||
|
final timestamp = generateTimestamp();
|
||||||
|
final signature = signRequest(method, path, body, timestamp, secretKey);
|
||||||
|
|
||||||
|
final signedHeaders = Map<String, String>.from(headers);
|
||||||
|
signedHeaders['X-Timestamp'] = timestamp;
|
||||||
|
signedHeaders['X-Signature'] = signature;
|
||||||
|
signedHeaders['X-Algorithm'] = 'HMAC-SHA256';
|
||||||
|
|
||||||
|
return signedHeaders;
|
||||||
|
}
|
||||||
|
}
|
||||||
141
sojorn_app/lib/utils/security_utils.dart
Normal file
|
|
@ -0,0 +1,141 @@
|
||||||
|
/// Security utilities for input validation and sanitization
|
||||||
|
class SecurityUtils {
|
||||||
|
/// Sanitize user-generated text content
|
||||||
|
static String sanitizeText(String input) {
|
||||||
|
if (input.isEmpty) return input;
|
||||||
|
|
||||||
|
// Remove potentially dangerous characters
|
||||||
|
String sanitized = input
|
||||||
|
.replaceAll(RegExp(r'<script[^>]*>.*?</script>'), '') // Remove script tags
|
||||||
|
.replaceAll(RegExp(r'<iframe[^>]*>.*?</iframe>'), '') // Remove iframe tags
|
||||||
|
.replaceAll(RegExp(r'<object[^>]*>.*?</object>'), '') // Remove object tags
|
||||||
|
.replaceAll(RegExp(r'<embed[^>]*>.*?</embed>'), '') // Remove embed tags
|
||||||
|
.replaceAll(RegExp(r'<link[^>]*>.*?</link>'), '') // Remove link tags
|
||||||
|
.replaceAll(RegExp(r'<meta[^>]*>.*?</meta>'), '') // Remove meta tags
|
||||||
|
.replaceAll(RegExp(r'javascript:'), '') // Remove javascript: protocol
|
||||||
|
.replaceAll(RegExp(r'vbscript:'), '') // Remove vbscript: protocol
|
||||||
|
.replaceAll(RegExp(r'on\w+\s*='), '') // Remove event handlers
|
||||||
|
.replaceAll(RegExp(r'eval\s*\('), '') // Remove eval calls
|
||||||
|
.replaceAll(RegExp(r'expression\s*\('), '') // Remove expression calls
|
||||||
|
.trim();
|
||||||
|
|
||||||
|
return sanitized;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Validate and sanitize URLs
|
||||||
|
static String? sanitizeUrl(String url) {
|
||||||
|
if (url.isEmpty) return null;
|
||||||
|
|
||||||
|
try {
|
||||||
|
final uri = Uri.parse(url.startsWith('http') ? url : 'https://$url');
|
||||||
|
|
||||||
|
// Only allow safe protocols
|
||||||
|
if (!['http', 'https'].contains(uri.scheme)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Remove potentially dangerous query parameters
|
||||||
|
final sanitizedParams = <String, String>{};
|
||||||
|
uri.queryParameters.forEach((key, value) {
|
||||||
|
// Remove dangerous query parameters
|
||||||
|
if (!_isDangerousQueryParam(key) && !_isDangerousQueryParam(value)) {
|
||||||
|
sanitizedParams[key] = value;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
final sanitizedUri = Uri(
|
||||||
|
scheme: uri.scheme,
|
||||||
|
host: uri.host,
|
||||||
|
port: uri.port,
|
||||||
|
path: uri.path,
|
||||||
|
queryParameters: sanitizedParams,
|
||||||
|
);
|
||||||
|
|
||||||
|
return sanitizedUri.toString();
|
||||||
|
} catch (e) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Check if a query parameter is dangerous
|
||||||
|
static bool _isDangerousQueryParam(String value) {
|
||||||
|
final dangerousPatterns = [
|
||||||
|
'script', 'javascript', 'vbscript', 'onload', 'onerror', 'onclick',
|
||||||
|
'eval', 'expression', 'alert', 'confirm', 'prompt',
|
||||||
|
'<', '>', '"', "'", '\\', '/', '\n', '\r', '\t'
|
||||||
|
];
|
||||||
|
|
||||||
|
final lowerValue = value.toLowerCase();
|
||||||
|
return dangerousPatterns.any((pattern) => lowerValue.contains(pattern));
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Validate and limit text length
|
||||||
|
static String limitText(String text, {int maxLength = 1000}) {
|
||||||
|
if (text.length <= maxLength) return text;
|
||||||
|
return '${text.substring(0, maxLength)}...';
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Check for potential XSS patterns
|
||||||
|
static bool containsXSS(String input) {
|
||||||
|
final xssPatterns = [
|
||||||
|
RegExp(r'<script[^>]*>', caseSensitive: false),
|
||||||
|
RegExp(r'javascript:', caseSensitive: false),
|
||||||
|
RegExp(r'vbscript:', caseSensitive: false),
|
||||||
|
RegExp(r'on\w+\s*=', caseSensitive: false),
|
||||||
|
RegExp(r'eval\s*\(', caseSensitive: false),
|
||||||
|
RegExp(r'expression\s*\(', caseSensitive: false),
|
||||||
|
RegExp(r'<iframe', caseSensitive: false),
|
||||||
|
RegExp(r'<object', caseSensitive: false),
|
||||||
|
RegExp(r'<embed', caseSensitive: false),
|
||||||
|
];
|
||||||
|
|
||||||
|
return xssPatterns.any((pattern) => pattern.hasMatch(input));
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Validate user input for common attacks
|
||||||
|
static bool isValidInput(String input) {
|
||||||
|
if (input.isEmpty) return true;
|
||||||
|
|
||||||
|
// Check for SQL injection patterns
|
||||||
|
final sqlPatterns = [
|
||||||
|
RegExp(r'(\b(SELECT|INSERT|UPDATE|DELETE|DROP|CREATE|ALTER|EXEC|UNION|SCRIPT)\b)', caseSensitive: false),
|
||||||
|
RegExp(r'(--|#|/\*|\*/)', caseSensitive: false),
|
||||||
|
RegExp(r'\bOR\b.*?=.*=', caseSensitive: false),
|
||||||
|
RegExp(r'\bAND\b.*?=.*=', caseSensitive: false),
|
||||||
|
];
|
||||||
|
|
||||||
|
return !sqlPatterns.any((pattern) => pattern.hasMatch(input));
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Sanitize HTML content (if needed)
|
||||||
|
static String sanitizeHtml(String html) {
|
||||||
|
// Basic HTML sanitization - remove all tags
|
||||||
|
return html.replaceAll(RegExp(r'<[^>]*>'), '').trim();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Validate email format
|
||||||
|
static bool isValidEmail(String email) {
|
||||||
|
final emailRegex = RegExp(
|
||||||
|
r'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$',
|
||||||
|
);
|
||||||
|
return emailRegex.hasMatch(email);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Validate handle/username
|
||||||
|
static bool isValidHandle(String handle) {
|
||||||
|
if (handle.isEmpty) return false;
|
||||||
|
if (handle.length < 3 || handle.length > 30) return false;
|
||||||
|
|
||||||
|
final handleRegex = RegExp(r'^[a-zA-Z0-9_]+$');
|
||||||
|
return handleRegex.hasMatch(handle);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Remove potentially harmful characters from filenames
|
||||||
|
static String sanitizeFilename(String filename) {
|
||||||
|
return filename
|
||||||
|
.replaceAll(RegExp(r'[<>:"/\\|?*\x00-\x1f]'), '')
|
||||||
|
.replaceAll(RegExp(r'\.\.'), '.')
|
||||||
|
.replaceAll(RegExp(r'^\.+|\.+$'), '')
|
||||||
|
.toLowerCase();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -80,15 +80,7 @@ class AppScaffold extends StatelessWidget {
|
||||||
|
|
||||||
PreferredSizeWidget _buildDefaultAppBar(BuildContext context) {
|
PreferredSizeWidget _buildDefaultAppBar(BuildContext context) {
|
||||||
return AppBar(
|
return AppBar(
|
||||||
title: Text(
|
title: title.isEmpty ? Image.asset('assets/images/toplogo.png') : Text(title),
|
||||||
title.isEmpty ? 'sojorn' : title,
|
|
||||||
style: GoogleFonts.literata(
|
|
||||||
fontSize: title.isEmpty ? 28 : 20,
|
|
||||||
fontWeight: FontWeight.w700,
|
|
||||||
color: AppTheme.navyBlue,
|
|
||||||
letterSpacing: title.isEmpty ? -0.5 : null,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
centerTitle: centerTitle,
|
centerTitle: centerTitle,
|
||||||
leading: leading ?? _buildBackButton(context),
|
leading: leading ?? _buildBackButton(context),
|
||||||
actions: actions,
|
actions: actions,
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ import '../../theme/app_theme.dart';
|
||||||
import '../sojorn_snackbar.dart';
|
import '../sojorn_snackbar.dart';
|
||||||
import '../reactions/reaction_picker.dart';
|
import '../reactions/reaction_picker.dart';
|
||||||
import '../reactions/smart_reaction_button.dart';
|
import '../reactions/smart_reaction_button.dart';
|
||||||
|
import '../reactions/reactions_display.dart';
|
||||||
|
|
||||||
/// Post actions with a vibrant, clear, and energetic design.
|
/// Post actions with a vibrant, clear, and energetic design.
|
||||||
///
|
///
|
||||||
|
|
@ -19,12 +20,16 @@ class PostActions extends ConsumerStatefulWidget {
|
||||||
final Post post;
|
final Post post;
|
||||||
final VoidCallback? onChain;
|
final VoidCallback? onChain;
|
||||||
final VoidCallback? onPostChanged;
|
final VoidCallback? onPostChanged;
|
||||||
|
final bool isThreadView;
|
||||||
|
final bool showReactions;
|
||||||
|
|
||||||
const PostActions({
|
const PostActions({
|
||||||
super.key,
|
super.key,
|
||||||
required this.post,
|
required this.post,
|
||||||
this.onChain,
|
this.onChain,
|
||||||
this.onPostChanged,
|
this.onPostChanged,
|
||||||
|
this.isThreadView = false,
|
||||||
|
this.showReactions = false,
|
||||||
});
|
});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
|
@ -202,33 +207,22 @@ class _PostActionsState extends ConsumerState<PostActions> {
|
||||||
return Column(
|
return Column(
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
children: [
|
children: [
|
||||||
// Actions row - left aligned
|
// Show all reactions in thread view
|
||||||
Row(
|
if (widget.showReactions && _reactionCounts.isNotEmpty)
|
||||||
children: [
|
ReactionsDisplay(
|
||||||
if (allowChain)
|
|
||||||
Expanded(
|
|
||||||
child: ElevatedButton.icon(
|
|
||||||
onPressed: widget.onChain,
|
|
||||||
icon: const Icon(Icons.reply, size: 18),
|
|
||||||
label: const Text('Reply'),
|
|
||||||
style: ElevatedButton.styleFrom(
|
|
||||||
backgroundColor: AppTheme.brightNavy,
|
|
||||||
foregroundColor: Colors.white,
|
|
||||||
padding: const EdgeInsets.symmetric(vertical: 14),
|
|
||||||
shape: RoundedRectangleBorder(
|
|
||||||
borderRadius: BorderRadius.circular(12),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
if (allowChain) const SizedBox(width: 12),
|
|
||||||
// Smart reaction button (replaces appreciate button)
|
|
||||||
SmartReactionButton(
|
|
||||||
reactionCounts: _reactionCounts,
|
reactionCounts: _reactionCounts,
|
||||||
myReactions: _myReactions,
|
myReactions: _myReactions,
|
||||||
onPressed: _showReactionPicker,
|
onReactionTap: _showReactionPicker,
|
||||||
|
showAll: true,
|
||||||
),
|
),
|
||||||
const SizedBox(width: 8),
|
|
||||||
|
// Actions row - reply moved to right
|
||||||
|
Row(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||||
|
children: [
|
||||||
|
// Left side: Save and Share
|
||||||
|
Row(
|
||||||
|
children: [
|
||||||
IconButton(
|
IconButton(
|
||||||
onPressed: _isSaving ? null : _toggleSave,
|
onPressed: _isSaving ? null : _toggleSave,
|
||||||
icon: Icon(
|
icon: Icon(
|
||||||
|
|
@ -258,6 +252,35 @@ class _PostActionsState extends ConsumerState<PostActions> {
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
|
||||||
|
// Right side: Reply and Reactions
|
||||||
|
Row(
|
||||||
|
children: [
|
||||||
|
// Smart reaction button (replaces appreciate button)
|
||||||
|
SmartReactionButton(
|
||||||
|
reactionCounts: _reactionCounts,
|
||||||
|
myReactions: _myReactions,
|
||||||
|
onPressed: _showReactionPicker,
|
||||||
|
),
|
||||||
|
const SizedBox(width: 8),
|
||||||
|
if (allowChain)
|
||||||
|
ElevatedButton.icon(
|
||||||
|
onPressed: widget.onChain,
|
||||||
|
icon: const Icon(Icons.reply, size: 18),
|
||||||
|
label: const Text('Reply'),
|
||||||
|
style: ElevatedButton.styleFrom(
|
||||||
|
backgroundColor: AppTheme.brightNavy,
|
||||||
|
foregroundColor: Colors.white,
|
||||||
|
padding: const EdgeInsets.symmetric(vertical: 14, horizontal: 16),
|
||||||
|
shape: RoundedRectangleBorder(
|
||||||
|
borderRadius: BorderRadius.circular(12),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -144,13 +144,7 @@ class _PostHeaderState extends ConsumerState<PostHeader> {
|
||||||
|
|
||||||
final size = widget.avatarSize ?? 36.0;
|
final size = widget.avatarSize ?? 36.0;
|
||||||
|
|
||||||
return InkWell(
|
return Padding(
|
||||||
onTap: () {
|
|
||||||
if (handle == 'unknown' || handle.trim().isEmpty) return;
|
|
||||||
AppRoutes.navigateToProfile(context, handle);
|
|
||||||
},
|
|
||||||
borderRadius: BorderRadius.circular(AppTheme.radiusMd),
|
|
||||||
child: Padding(
|
|
||||||
padding: const EdgeInsets.symmetric(
|
padding: const EdgeInsets.symmetric(
|
||||||
horizontal: 4,
|
horizontal: 4,
|
||||||
vertical: 4,
|
vertical: 4,
|
||||||
|
|
@ -235,7 +229,7 @@ class _PostHeaderState extends ConsumerState<PostHeader> {
|
||||||
'(edited)',
|
'(edited)',
|
||||||
style: AppTheme.textTheme.labelSmall?.copyWith(
|
style: AppTheme.textTheme.labelSmall?.copyWith(
|
||||||
fontStyle: FontStyle.italic,
|
fontStyle: FontStyle.italic,
|
||||||
color: AppTheme.royalPurple.withOpacity(0.7),
|
color: AppTheme.royalPurple.withValues(alpha: 0.7),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
|
@ -246,7 +240,6 @@ class _PostHeaderState extends ConsumerState<PostHeader> {
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,7 @@ class UnifiedPostTile extends StatelessWidget {
|
||||||
final bool isDetailView;
|
final bool isDetailView;
|
||||||
final bool showThreadSpine;
|
final bool showThreadSpine;
|
||||||
final double? avatarSize;
|
final double? avatarSize;
|
||||||
|
final bool isThreadView;
|
||||||
|
|
||||||
const UnifiedPostTile({
|
const UnifiedPostTile({
|
||||||
super.key,
|
super.key,
|
||||||
|
|
@ -38,6 +39,7 @@ class UnifiedPostTile extends StatelessWidget {
|
||||||
this.isDetailView = false,
|
this.isDetailView = false,
|
||||||
this.showThreadSpine = false,
|
this.showThreadSpine = false,
|
||||||
this.avatarSize,
|
this.avatarSize,
|
||||||
|
this.isThreadView = false,
|
||||||
});
|
});
|
||||||
|
|
||||||
/// Convert legacy parameters to PostViewMode
|
/// Convert legacy parameters to PostViewMode
|
||||||
|
|
@ -75,6 +77,7 @@ class UnifiedPostTile extends StatelessWidget {
|
||||||
mode: _viewMode,
|
mode: _viewMode,
|
||||||
onTap: onTap,
|
onTap: onTap,
|
||||||
onChain: onChain,
|
onChain: onChain,
|
||||||
|
isThreadView: isThreadView,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
1
sojorn_app/lib/widgets/reactions/credit.md
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
dotto emoji set by <a href="https://github.com/meritite-union/dotto-emoji">Meritite Union</a>
|
||||||
|
|
@ -1,4 +1,7 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||||
|
import 'package:flutter/services.dart';
|
||||||
|
import 'package:flutter_svg/flutter_svg.dart';
|
||||||
import 'package:google_fonts/google_fonts.dart';
|
import 'package:google_fonts/google_fonts.dart';
|
||||||
import '../../theme/app_theme.dart';
|
import '../../theme/app_theme.dart';
|
||||||
|
|
||||||
|
|
@ -22,17 +25,267 @@ class ReactionPicker extends StatefulWidget {
|
||||||
State<ReactionPicker> createState() => _ReactionPickerState();
|
State<ReactionPicker> createState() => _ReactionPickerState();
|
||||||
}
|
}
|
||||||
|
|
||||||
class _ReactionPickerState extends State<ReactionPicker> {
|
class _ReactionPickerState extends State<ReactionPicker> with SingleTickerProviderStateMixin {
|
||||||
static const List<String> _commonReactions = [
|
late TabController _tabController;
|
||||||
|
int _currentTabIndex = 0;
|
||||||
|
final TextEditingController _searchController = TextEditingController();
|
||||||
|
bool _isSearching = false;
|
||||||
|
List<String> _filteredReactions = [];
|
||||||
|
|
||||||
|
// Dynamic reaction sets
|
||||||
|
Map<String, List<String>> _reactionSets = {};
|
||||||
|
Map<String, String> _folderCredits = {};
|
||||||
|
List<String> _tabOrder = [];
|
||||||
|
bool _isLoading = true;
|
||||||
|
|
||||||
|
@override
|
||||||
|
void initState() {
|
||||||
|
super.initState();
|
||||||
|
_searchController.addListener(_onSearchChanged);
|
||||||
|
_loadReactionSets();
|
||||||
|
}
|
||||||
|
|
||||||
|
Future<void> _loadReactionSets() async {
|
||||||
|
// Start with emoji set
|
||||||
|
final reactionSets = <String, List<String>>{
|
||||||
|
'emoji': [
|
||||||
'❤️', '👍', '😂', '😮', '😢', '😡',
|
'❤️', '👍', '😂', '😮', '😢', '😡',
|
||||||
'🎉', '🔥', '👏', '🙏', '💯', '🤔',
|
'🎉', '🔥', '👏', '🙏', '💯', '🤔',
|
||||||
'😍', '🤣', '😊', '👌', '🙌', '💪',
|
'😍', '🤣', '😊', '👌', '🙌', '💪',
|
||||||
'🎯', '⭐', '✨', '🌟', '💫', '☀️',
|
'🎯', '⭐', '✨', '🌟', '💫', '☀️',
|
||||||
|
],
|
||||||
|
};
|
||||||
|
|
||||||
|
final folderCredits = <String, String>{};
|
||||||
|
final tabOrder = ['emoji']; // Start with emoji, will add folders after
|
||||||
|
|
||||||
|
// Known reaction folders to check
|
||||||
|
final knownFolders = ['dotto', 'green', 'blue', 'purple'];
|
||||||
|
|
||||||
|
for (final folder in knownFolders) {
|
||||||
|
try {
|
||||||
|
// Try to load credit file
|
||||||
|
final creditContent = await _loadCreditFile(folder);
|
||||||
|
folderCredits[folder] = creditContent;
|
||||||
|
|
||||||
|
// Try to load files from this folder
|
||||||
|
final reactions = await _loadAllFilesFromFolder(folder);
|
||||||
|
|
||||||
|
if (reactions.isNotEmpty) {
|
||||||
|
reactionSets[folder] = reactions;
|
||||||
|
tabOrder.add(folder);
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
// Error loading folder, skip it
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
setState(() {
|
||||||
|
_reactionSets = reactionSets;
|
||||||
|
_folderCredits = folderCredits;
|
||||||
|
_tabOrder = tabOrder;
|
||||||
|
_isLoading = false;
|
||||||
|
|
||||||
|
// Create TabController after setting up the data
|
||||||
|
_tabController = TabController(length: _tabOrder.length, vsync: this);
|
||||||
|
_tabController.addListener(() {
|
||||||
|
setState(() {
|
||||||
|
_currentTabIndex = _tabController.index;
|
||||||
|
_clearSearch();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
Future<List<String>> _loadAllFilesFromFolder(String folder) async {
|
||||||
|
final reactions = <String>[];
|
||||||
|
|
||||||
|
// Common file names to try (comprehensive list)
|
||||||
|
final possibleFiles = [
|
||||||
|
// Basic reactions
|
||||||
|
'heart', 'thumbs_up', 'laugh', 'lol', 'wow', 'sad', 'angry', 'mad',
|
||||||
|
'party', 'fire', 'clap', 'pray', 'hundred', 'thinking', 'ok',
|
||||||
|
|
||||||
|
// Face expressions
|
||||||
|
'smile', 'happy', 'grinning', 'beaming', 'wink', 'kiss', 'love',
|
||||||
|
'laughing', 'crying', 'tears', 'joy', 'giggle', 'chuckle',
|
||||||
|
'frown', 'worried', 'scared', 'fear', 'shock', 'surprised',
|
||||||
|
'confused', 'thinking_face', 'face_palm', 'eyeroll',
|
||||||
|
|
||||||
|
// Extended face names
|
||||||
|
'laughing_face', 'beaming_face', 'face_with_tears', 'grinning_face',
|
||||||
|
'smiling_face', 'winking_face', 'melting_face', 'upside_down_face',
|
||||||
|
'rolling_face', 'slightly_smiling_face', 'smiling_face_with_halo',
|
||||||
|
'smiling_face_with_hearts', 'face_with_monocle', 'nerd_face',
|
||||||
|
'party_face', 'sunglasses_face', 'disappointed_face', 'worried_face',
|
||||||
|
'anguished_face', 'fearful_face', 'downcast_face', 'loudly_crying_face',
|
||||||
|
|
||||||
|
// Special characters
|
||||||
|
'skull', 'ghost', 'robot', 'alien', 'monster', 'devil', 'angel',
|
||||||
|
'poop', 'vomit', 'sick', 'dizzy', 'sleeping', 'zzz',
|
||||||
|
|
||||||
|
// Hearts and love
|
||||||
|
'heart_with_arrow', 'broken_heart', 'sparkling_heart', 'two_hearts',
|
||||||
|
'revolving_hearts', 'heart_eyes', 'kissing_heart',
|
||||||
|
|
||||||
|
// Colored hearts
|
||||||
|
'green_heart', 'blue_heart', 'purple_heart', 'yellow_heart',
|
||||||
|
'black_heart', 'white_heart', 'brown_heart', 'orange_heart',
|
||||||
|
|
||||||
|
// Actions and objects
|
||||||
|
'thumbs_down', 'ok_hand', 'peace', 'victory', 'rock_on', 'call_me',
|
||||||
|
'point_up', 'point_down', 'point_left', 'point_right',
|
||||||
|
'raised_hand', 'wave', 'clap', 'high_five', 'pray', 'namaste',
|
||||||
|
|
||||||
|
// Nature and elements
|
||||||
|
'fire', 'water', 'earth', 'air', 'lightning', 'storm', 'rainbow',
|
||||||
|
'sun', 'moon', 'star', 'cloud', 'tree', 'flower', 'leaf',
|
||||||
|
|
||||||
|
// Food and drink
|
||||||
|
'pizza', 'burger', 'taco', 'ice_cream', 'coffee', 'tea', 'beer',
|
||||||
|
'wine', 'cocktail', 'cake', 'cookie', 'candy', 'chocolate',
|
||||||
|
|
||||||
|
// Animals
|
||||||
|
'dog', 'cat', 'mouse', 'rabbit', 'bear', 'lion', 'tiger', 'elephant',
|
||||||
|
'monkey', 'bird', 'fish', 'butterfly', 'spider', 'snake',
|
||||||
|
|
||||||
|
// Objects and symbols
|
||||||
|
'bomb', 'knife', 'gun', 'pistol', 'sword', 'shield', 'crown',
|
||||||
|
'gem', 'diamond', 'money', 'coin', 'dollar', 'gift', 'present',
|
||||||
|
|
||||||
|
// Numbers and symbols
|
||||||
|
'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten',
|
||||||
|
'zero', 'plus', 'minus', 'multiply', 'divide', 'equal', 'check', 'x',
|
||||||
|
|
||||||
|
// Common variations with underscores
|
||||||
|
'thumbs_up', 'thumbs_down', 'middle_finger', 'rock_on', 'peace_sign',
|
||||||
|
'ok_sign', 'victory_sign', 'call_me_hand', 'raised_hand', 'wave_hand',
|
||||||
|
|
||||||
|
// Emoji-style names
|
||||||
|
'face_with_open_mouth', 'face_with_closed_eyes', 'face_with_tears_of_joy',
|
||||||
|
'grinning_face_with_big_eyes', 'grinning_face_with_smiling_eyes',
|
||||||
|
'grinning_face_with_sweat', 'grinning_squinting_face', 'hugging_face',
|
||||||
|
'face_with_head_bandage', 'face_with_thermometer', 'face_with_bandage',
|
||||||
|
'nauseated_face', 'sneezing_face', 'yawning_face', 'face_with_cowboy_hat',
|
||||||
|
|
||||||
|
// More descriptive names
|
||||||
|
'party_popper', 'confetti_ball', 'balloon', 'ribbon', 'gift_ribbon',
|
||||||
|
'birthday_cake', 'wedding_cake', 'christmas_tree', 'pumpkin', 'ghost_halloween',
|
||||||
|
|
||||||
|
// Simple variations
|
||||||
|
'like', 'dislike', 'love', 'hate', 'yes', 'no', 'maybe', 'idk',
|
||||||
|
'cool', 'hot', 'cold', 'warm', 'fresh', 'old', 'new', 'classic',
|
||||||
|
|
||||||
|
// Tech and modern
|
||||||
|
'computer', 'phone', 'camera', 'video', 'music', 'game', 'controller',
|
||||||
|
'mouse', 'keyboard', 'screen', 'monitor', 'laptop', 'tablet',
|
||||||
|
|
||||||
|
// Expressions
|
||||||
|
'lol', 'lmao', 'rofl', 'omg', 'wtf', 'smh', 'idc', 'ngl', 'fr',
|
||||||
|
'tbh', 'iykyk', 'rn', 'asap', 'fyi', 'btw', 'imo', 'imho',
|
||||||
];
|
];
|
||||||
|
|
||||||
|
// Try both PNG and SVG extensions for each possible file name
|
||||||
|
for (final fileName in possibleFiles) {
|
||||||
|
for (final extension in ['png', 'svg']) {
|
||||||
|
final fullPath = 'reactions/$folder/$fileName.$extension';
|
||||||
|
try {
|
||||||
|
// Try to load the file to check if it exists
|
||||||
|
await rootBundle.load(fullPath);
|
||||||
|
final assetPath = 'assets/$fullPath';
|
||||||
|
reactions.add(assetPath);
|
||||||
|
break; // Found this file, don't try other extensions
|
||||||
|
} catch (e) {
|
||||||
|
// File doesn't exist, try next extension
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return reactions;
|
||||||
|
}
|
||||||
|
|
||||||
|
Future<String> _loadCreditFile(String folder) async {
|
||||||
|
try {
|
||||||
|
final creditData = await rootBundle.loadString('reactions/$folder/credit.md');
|
||||||
|
return creditData;
|
||||||
|
} catch (e) {
|
||||||
|
// Return default credit if file not found
|
||||||
|
return '# $folder Reaction Set\n\nCustom reaction set for Sojorn';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
void dispose() {
|
||||||
|
_tabController.dispose();
|
||||||
|
_searchController.dispose();
|
||||||
|
super.dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
void _clearSearch() {
|
||||||
|
_searchController.clear();
|
||||||
|
setState(() {
|
||||||
|
_isSearching = false;
|
||||||
|
_filteredReactions = [];
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
void _onSearchChanged() {
|
||||||
|
final query = _searchController.text.toLowerCase();
|
||||||
|
if (query.isEmpty) {
|
||||||
|
setState(() {
|
||||||
|
_isSearching = false;
|
||||||
|
_filteredReactions = [];
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
setState(() {
|
||||||
|
_isSearching = true;
|
||||||
|
_filteredReactions = _filterReactions(query);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
List<String> _filterReactions(String query) {
|
||||||
|
final reactions = _currentReactions;
|
||||||
|
return reactions.where((reaction) {
|
||||||
|
// For image reactions, search by filename
|
||||||
|
if (reaction.startsWith('assets/reactions/')) {
|
||||||
|
final fileName = reaction.split('/').last.toLowerCase();
|
||||||
|
return fileName.contains(query);
|
||||||
|
}
|
||||||
|
// For emoji, search by description (you could add a mapping)
|
||||||
|
return reaction.toLowerCase().contains(query);
|
||||||
|
}).toList();
|
||||||
|
}
|
||||||
|
|
||||||
|
List<String> get _currentReactions {
|
||||||
|
if (_tabOrder.isEmpty || _currentTabIndex >= _tabOrder.length) {
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
final currentTab = _tabOrder[_currentTabIndex];
|
||||||
|
return _reactionSets[currentTab] ?? [];
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
final reactions = widget.reactions ?? _commonReactions;
|
if (_isLoading) {
|
||||||
|
return Dialog(
|
||||||
|
backgroundColor: Colors.transparent,
|
||||||
|
child: Container(
|
||||||
|
width: 400,
|
||||||
|
height: 300,
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
color: AppTheme.cardSurface,
|
||||||
|
borderRadius: BorderRadius.circular(16),
|
||||||
|
border: Border.all(color: AppTheme.navyBlue.withValues(alpha: 0.1)),
|
||||||
|
),
|
||||||
|
child: const Center(
|
||||||
|
child: CircularProgressIndicator(),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
final reactions = widget.reactions ?? (_isSearching ? _filteredReactions : _currentReactions);
|
||||||
final reactionCounts = widget.reactionCounts ?? {};
|
final reactionCounts = widget.reactionCounts ?? {};
|
||||||
final myReactions = widget.myReactions ?? {};
|
final myReactions = widget.myReactions ?? {};
|
||||||
|
|
||||||
|
|
@ -58,11 +311,13 @@ class _ReactionPickerState extends State<ReactionPicker> {
|
||||||
child: Column(
|
child: Column(
|
||||||
mainAxisSize: MainAxisSize.min,
|
mainAxisSize: MainAxisSize.min,
|
||||||
children: [
|
children: [
|
||||||
// Header
|
// Header with search
|
||||||
|
Column(
|
||||||
|
children: [
|
||||||
Row(
|
Row(
|
||||||
children: [
|
children: [
|
||||||
Text(
|
Text(
|
||||||
'Add Reaction',
|
_isSearching ? 'Search Reactions' : 'Add Reaction',
|
||||||
style: GoogleFonts.inter(
|
style: GoogleFonts.inter(
|
||||||
color: AppTheme.navyBlue,
|
color: AppTheme.navyBlue,
|
||||||
fontSize: 16,
|
fontSize: 16,
|
||||||
|
|
@ -83,10 +338,243 @@ class _ReactionPickerState extends State<ReactionPicker> {
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
const SizedBox(height: 12),
|
||||||
|
|
||||||
|
// Search bar
|
||||||
|
Container(
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
color: AppTheme.navyBlue.withValues(alpha: 0.05),
|
||||||
|
borderRadius: BorderRadius.circular(12),
|
||||||
|
border: Border.all(
|
||||||
|
color: AppTheme.navyBlue.withValues(alpha: 0.1),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
child: TextField(
|
||||||
|
controller: _searchController,
|
||||||
|
style: GoogleFonts.inter(
|
||||||
|
color: AppTheme.navyBlue,
|
||||||
|
fontSize: 14,
|
||||||
|
),
|
||||||
|
decoration: InputDecoration(
|
||||||
|
hintText: 'Search reactions...',
|
||||||
|
hintStyle: GoogleFonts.inter(
|
||||||
|
color: AppTheme.textSecondary,
|
||||||
|
fontSize: 14,
|
||||||
|
),
|
||||||
|
prefixIcon: Icon(
|
||||||
|
Icons.search,
|
||||||
|
color: AppTheme.textSecondary,
|
||||||
|
size: 20,
|
||||||
|
),
|
||||||
|
suffixIcon: _searchController.text.isNotEmpty
|
||||||
|
? IconButton(
|
||||||
|
icon: Icon(
|
||||||
|
Icons.clear,
|
||||||
|
color: AppTheme.textSecondary,
|
||||||
|
size: 18,
|
||||||
|
),
|
||||||
|
onPressed: () {
|
||||||
|
_searchController.clear();
|
||||||
|
},
|
||||||
|
)
|
||||||
|
: null,
|
||||||
|
border: InputBorder.none,
|
||||||
|
contentPadding: const EdgeInsets.symmetric(
|
||||||
|
horizontal: 12,
|
||||||
|
vertical: 8,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
const SizedBox(height: 16),
|
const SizedBox(height: 16),
|
||||||
|
|
||||||
// Emoji grid
|
// Tabs
|
||||||
GridView.builder(
|
Container(
|
||||||
|
height: 40,
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
color: AppTheme.navyBlue.withValues(alpha: 0.05),
|
||||||
|
borderRadius: BorderRadius.circular(12),
|
||||||
|
),
|
||||||
|
child: TabBar(
|
||||||
|
controller: _tabController,
|
||||||
|
onTap: (index) {
|
||||||
|
setState(() {
|
||||||
|
_currentTabIndex = index;
|
||||||
|
_isSearching = false;
|
||||||
|
_searchController.clear();
|
||||||
|
_filteredReactions = [];
|
||||||
|
});
|
||||||
|
},
|
||||||
|
indicator: BoxDecoration(
|
||||||
|
color: AppTheme.brightNavy,
|
||||||
|
borderRadius: BorderRadius.circular(10),
|
||||||
|
),
|
||||||
|
labelColor: AppTheme.textSecondary,
|
||||||
|
unselectedLabelColor: AppTheme.textSecondary,
|
||||||
|
labelStyle: GoogleFonts.inter(
|
||||||
|
fontSize: 12,
|
||||||
|
fontWeight: FontWeight.w600,
|
||||||
|
),
|
||||||
|
indicatorSize: TabBarIndicatorSize.tab,
|
||||||
|
tabs: _tabOrder.map((tabName) {
|
||||||
|
return Tab(
|
||||||
|
text: tabName.toUpperCase(),
|
||||||
|
);
|
||||||
|
}).toList(),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
const SizedBox(height: 16),
|
||||||
|
|
||||||
|
// Search results info
|
||||||
|
if (_isSearching && _filteredReactions.isEmpty)
|
||||||
|
Container(
|
||||||
|
padding: const EdgeInsets.all(12),
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
color: AppTheme.navyBlue.withValues(alpha: 0.05),
|
||||||
|
borderRadius: BorderRadius.circular(8),
|
||||||
|
),
|
||||||
|
child: Text(
|
||||||
|
'No reactions found for "${_searchController.text}"',
|
||||||
|
style: GoogleFonts.inter(
|
||||||
|
color: AppTheme.textSecondary,
|
||||||
|
fontSize: 12,
|
||||||
|
),
|
||||||
|
textAlign: TextAlign.center,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
|
||||||
|
// Reaction grid
|
||||||
|
SizedBox(
|
||||||
|
height: _isSearching && _filteredReactions.isNotEmpty
|
||||||
|
? (_filteredReactions.length / 6).ceil() * 60
|
||||||
|
: 240, // Dynamic height based on search results
|
||||||
|
child: TabBarView(
|
||||||
|
controller: _tabController,
|
||||||
|
children: _tabOrder.map((tabName) {
|
||||||
|
final reactions = _reactionSets[tabName] ?? [];
|
||||||
|
final isEmoji = tabName == 'emoji';
|
||||||
|
final credit = _folderCredits[tabName];
|
||||||
|
|
||||||
|
return Column(
|
||||||
|
children: [
|
||||||
|
// Reaction grid
|
||||||
|
Expanded(
|
||||||
|
child: _buildReactionGrid(reactions, widget.reactionCounts ?? {}, widget.myReactions ?? {}, isEmoji),
|
||||||
|
),
|
||||||
|
|
||||||
|
// Credit section (only for non-emoji tabs)
|
||||||
|
if (credit != null && credit.isNotEmpty)
|
||||||
|
Container(
|
||||||
|
padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 8),
|
||||||
|
child: Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
const Divider(color: Colors.grey),
|
||||||
|
const SizedBox(height: 8),
|
||||||
|
Text(
|
||||||
|
'Credits:',
|
||||||
|
style: GoogleFonts.inter(
|
||||||
|
fontSize: 10,
|
||||||
|
fontWeight: FontWeight.w600,
|
||||||
|
color: AppTheme.textSecondary,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
const SizedBox(height: 4),
|
||||||
|
// Parse and display credit markdown
|
||||||
|
_buildCreditDisplay(credit),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
);
|
||||||
|
}).toList(),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
const SizedBox(height: 16),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Widget _buildCreditDisplay(String credit) {
|
||||||
|
final lines = credit.split('\n');
|
||||||
|
final widgets = <Widget>[];
|
||||||
|
|
||||||
|
for (final line in lines) {
|
||||||
|
if (line.trim().isEmpty) continue;
|
||||||
|
|
||||||
|
if (line.startsWith('# ')) {
|
||||||
|
// Title
|
||||||
|
widgets.add(Text(
|
||||||
|
line.substring(2).trim(),
|
||||||
|
style: GoogleFonts.inter(
|
||||||
|
fontSize: 11,
|
||||||
|
fontWeight: FontWeight.w600,
|
||||||
|
color: AppTheme.textPrimary,
|
||||||
|
),
|
||||||
|
));
|
||||||
|
} else if (line.startsWith('**') && line.endsWith('**')) {
|
||||||
|
// Bold text
|
||||||
|
widgets.add(Text(
|
||||||
|
line.replaceAll('**', '').trim(),
|
||||||
|
style: GoogleFonts.inter(
|
||||||
|
fontSize: 10,
|
||||||
|
fontWeight: FontWeight.w600,
|
||||||
|
color: AppTheme.textPrimary,
|
||||||
|
),
|
||||||
|
));
|
||||||
|
} else if (line.startsWith('*') && line.endsWith('*')) {
|
||||||
|
// Italic text
|
||||||
|
widgets.add(Text(
|
||||||
|
line.replaceAll('*', '').trim(),
|
||||||
|
style: GoogleFonts.inter(
|
||||||
|
fontSize: 10,
|
||||||
|
fontStyle: FontStyle.italic,
|
||||||
|
color: AppTheme.textPrimary,
|
||||||
|
),
|
||||||
|
));
|
||||||
|
} else if (line.startsWith('- ')) {
|
||||||
|
// List item
|
||||||
|
widgets.add(Padding(
|
||||||
|
padding: const EdgeInsets.only(left: 8),
|
||||||
|
child: Text(
|
||||||
|
'• ${line.substring(2).trim()}',
|
||||||
|
style: GoogleFonts.inter(
|
||||||
|
fontSize: 10,
|
||||||
|
color: AppTheme.textPrimary,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
));
|
||||||
|
} else {
|
||||||
|
// Regular text
|
||||||
|
widgets.add(Text(
|
||||||
|
line.trim(),
|
||||||
|
style: GoogleFonts.inter(
|
||||||
|
fontSize: 10,
|
||||||
|
color: AppTheme.textPrimary,
|
||||||
|
),
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
|
widgets.add(const SizedBox(height: 2));
|
||||||
|
}
|
||||||
|
|
||||||
|
return Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: widgets,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Widget _buildReactionGrid(
|
||||||
|
List<String> reactions,
|
||||||
|
Map<String, int> reactionCounts,
|
||||||
|
Set<String> myReactions,
|
||||||
|
bool useImages,
|
||||||
|
) {
|
||||||
|
return GridView.builder(
|
||||||
shrinkWrap: true,
|
shrinkWrap: true,
|
||||||
physics: const NeverScrollableScrollPhysics(),
|
physics: const NeverScrollableScrollPhysics(),
|
||||||
gridDelegate: const SliverGridDelegateWithFixedCrossAxisCount(
|
gridDelegate: const SliverGridDelegateWithFixedCrossAxisCount(
|
||||||
|
|
@ -97,16 +585,16 @@ class _ReactionPickerState extends State<ReactionPicker> {
|
||||||
),
|
),
|
||||||
itemCount: reactions.length,
|
itemCount: reactions.length,
|
||||||
itemBuilder: (context, index) {
|
itemBuilder: (context, index) {
|
||||||
final emoji = reactions[index];
|
final reaction = reactions[index];
|
||||||
final count = reactionCounts[emoji] ?? 0;
|
final count = reactionCounts[reaction] ?? 0;
|
||||||
final isSelected = myReactions.contains(emoji);
|
final isSelected = myReactions.contains(reaction);
|
||||||
|
|
||||||
return Material(
|
return Material(
|
||||||
color: Colors.transparent,
|
color: Colors.transparent,
|
||||||
child: InkWell(
|
child: InkWell(
|
||||||
onTap: () {
|
onTap: () {
|
||||||
Navigator.of(context).pop();
|
Navigator.of(context).pop();
|
||||||
widget.onReactionSelected(emoji);
|
widget.onReactionSelected(reaction);
|
||||||
},
|
},
|
||||||
borderRadius: BorderRadius.circular(12),
|
borderRadius: BorderRadius.circular(12),
|
||||||
child: Container(
|
child: Container(
|
||||||
|
|
@ -125,10 +613,9 @@ class _ReactionPickerState extends State<ReactionPicker> {
|
||||||
child: Stack(
|
child: Stack(
|
||||||
children: [
|
children: [
|
||||||
Center(
|
Center(
|
||||||
child: Text(
|
child: useImages
|
||||||
emoji,
|
? _buildImageReaction(reaction)
|
||||||
style: const TextStyle(fontSize: 24),
|
: _buildEmojiReaction(reaction),
|
||||||
),
|
|
||||||
),
|
),
|
||||||
if (count > 0)
|
if (count > 0)
|
||||||
Positioned(
|
Positioned(
|
||||||
|
|
@ -156,11 +643,53 @@ class _ReactionPickerState extends State<ReactionPicker> {
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
),
|
);
|
||||||
const SizedBox(height: 16),
|
}
|
||||||
],
|
|
||||||
|
Widget _buildEmojiReaction(String emoji) {
|
||||||
|
return Text(
|
||||||
|
emoji,
|
||||||
|
style: const TextStyle(fontSize: 24),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Widget _buildImageReaction(String imagePath) {
|
||||||
|
if (imagePath.endsWith('.svg')) {
|
||||||
|
return SvgPicture.asset(
|
||||||
|
imagePath,
|
||||||
|
width: 32,
|
||||||
|
height: 32,
|
||||||
|
placeholderBuilder: (context) => Container(
|
||||||
|
width: 32,
|
||||||
|
height: 32,
|
||||||
|
padding: const EdgeInsets.all(8),
|
||||||
|
child: CircularProgressIndicator(
|
||||||
|
strokeWidth: 2,
|
||||||
|
color: AppTheme.textSecondary,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
errorBuilder: (context, error, stackTrace) {
|
||||||
|
// Fallback to emoji if image not found
|
||||||
|
return Icon(
|
||||||
|
Icons.image_not_supported,
|
||||||
|
size: 24,
|
||||||
|
color: AppTheme.textSecondary,
|
||||||
|
);
|
||||||
|
},
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
return Image.asset(
|
||||||
|
imagePath,
|
||||||
|
width: 32,
|
||||||
|
height: 32,
|
||||||
|
errorBuilder: (context, error, stackTrace) {
|
||||||
|
return Icon(
|
||||||
|
Icons.image_not_supported,
|
||||||
|
size: 24,
|
||||||
|
color: AppTheme.textSecondary,
|
||||||
|
);
|
||||||
|
},
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
83
sojorn_app/lib/widgets/reactions/reactions_display.dart
Normal file
|
|
@ -0,0 +1,83 @@
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:google_fonts/google_fonts.dart';
|
||||||
|
import '../../theme/app_theme.dart';
|
||||||
|
|
||||||
|
/// Displays all reactions for a post
|
||||||
|
/// Used in thread/detail views to show comprehensive reaction breakdown
|
||||||
|
class ReactionsDisplay extends StatelessWidget {
|
||||||
|
final Map<String, int> reactionCounts;
|
||||||
|
final Set<String> myReactions;
|
||||||
|
final VoidCallback? onReactionTap;
|
||||||
|
final bool showAll;
|
||||||
|
|
||||||
|
const ReactionsDisplay({
|
||||||
|
super.key,
|
||||||
|
required this.reactionCounts,
|
||||||
|
required this.myReactions,
|
||||||
|
this.onReactionTap,
|
||||||
|
this.showAll = true,
|
||||||
|
});
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
if (reactionCounts.isEmpty) {
|
||||||
|
return const SizedBox.shrink();
|
||||||
|
}
|
||||||
|
|
||||||
|
List<MapEntry<String, int>> reactions;
|
||||||
|
if (showAll) {
|
||||||
|
reactions = reactionCounts.entries.toList();
|
||||||
|
reactions.sort((a, b) => b.value.compareTo(a.value));
|
||||||
|
} else {
|
||||||
|
reactions = reactionCounts.entries.take(3).toList();
|
||||||
|
reactions.sort((a, b) => b.value.compareTo(a.value));
|
||||||
|
}
|
||||||
|
|
||||||
|
return Container(
|
||||||
|
padding: const EdgeInsets.symmetric(vertical: 8),
|
||||||
|
child: Wrap(
|
||||||
|
spacing: 8,
|
||||||
|
runSpacing: 8,
|
||||||
|
children: reactions.map((entry) {
|
||||||
|
final emoji = entry.key;
|
||||||
|
final count = entry.value;
|
||||||
|
final isMyReaction = myReactions.contains(emoji);
|
||||||
|
|
||||||
|
return GestureDetector(
|
||||||
|
onTap: onReactionTap,
|
||||||
|
child: Container(
|
||||||
|
padding: const EdgeInsets.symmetric(horizontal: 8, vertical: 4),
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
color: isMyReaction
|
||||||
|
? AppTheme.brightNavy.withValues(alpha: 0.15)
|
||||||
|
: AppTheme.navyBlue.withValues(alpha: 0.08),
|
||||||
|
borderRadius: BorderRadius.circular(16),
|
||||||
|
border: isMyReaction
|
||||||
|
? Border.all(color: AppTheme.brightNavy.withValues(alpha: 0.3))
|
||||||
|
: null,
|
||||||
|
),
|
||||||
|
child: Row(
|
||||||
|
mainAxisSize: MainAxisSize.min,
|
||||||
|
children: [
|
||||||
|
Text(
|
||||||
|
emoji,
|
||||||
|
style: const TextStyle(fontSize: 14),
|
||||||
|
),
|
||||||
|
const SizedBox(width: 4),
|
||||||
|
Text(
|
||||||
|
count > 99 ? '99+' : '$count',
|
||||||
|
style: GoogleFonts.inter(
|
||||||
|
color: isMyReaction ? AppTheme.brightNavy : AppTheme.textSecondary,
|
||||||
|
fontSize: 12,
|
||||||
|
fontWeight: FontWeight.w600,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}).toList(),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -3,13 +3,12 @@ import 'package:timeago/timeago.dart' as timeago;
|
||||||
import '../models/post.dart';
|
import '../models/post.dart';
|
||||||
import '../theme/app_theme.dart';
|
import '../theme/app_theme.dart';
|
||||||
import 'media/signed_media_image.dart';
|
import 'media/signed_media_image.dart';
|
||||||
|
import '../routes/app_routes.dart';
|
||||||
|
|
||||||
class ReadingPostCard extends StatefulWidget {
|
class ReadingPostCard extends StatefulWidget {
|
||||||
final Post post;
|
final Post post;
|
||||||
final VoidCallback? onTap;
|
final VoidCallback? onTap;
|
||||||
final VoidCallback? onAppreciate;
|
|
||||||
final VoidCallback? onSave;
|
final VoidCallback? onSave;
|
||||||
final bool isAppreciated;
|
|
||||||
final bool isSaved;
|
final bool isSaved;
|
||||||
final bool showDivider;
|
final bool showDivider;
|
||||||
|
|
||||||
|
|
@ -17,9 +16,7 @@ class ReadingPostCard extends StatefulWidget {
|
||||||
super.key,
|
super.key,
|
||||||
required this.post,
|
required this.post,
|
||||||
this.onTap,
|
this.onTap,
|
||||||
this.onAppreciate,
|
|
||||||
this.onSave,
|
this.onSave,
|
||||||
this.isAppreciated = false,
|
|
||||||
this.isSaved = false,
|
this.isSaved = false,
|
||||||
this.showDivider = true,
|
this.showDivider = true,
|
||||||
});
|
});
|
||||||
|
|
@ -68,14 +65,6 @@ class _ReadingPostCardState extends State<ReadingPostCard> {
|
||||||
),
|
),
|
||||||
child: Material(
|
child: Material(
|
||||||
color: Colors.transparent,
|
color: Colors.transparent,
|
||||||
child: InkWell(
|
|
||||||
onTap: widget.onTap,
|
|
||||||
onTapDown: (_) => setState(() => _isPressed = true),
|
|
||||||
onTapUp: (_) => setState(() => _isPressed = false),
|
|
||||||
onTapCancel: () => setState(() => _isPressed = false),
|
|
||||||
borderRadius: BorderRadius.circular(AppTheme.radiusSm),
|
|
||||||
splashColor: AppTheme.queenPink.withValues(alpha: 0.3),
|
|
||||||
highlightColor: Colors.transparent,
|
|
||||||
child: Padding(
|
child: Padding(
|
||||||
padding: const EdgeInsets.fromLTRB(
|
padding: const EdgeInsets.fromLTRB(
|
||||||
AppTheme.spacingMd,
|
AppTheme.spacingMd,
|
||||||
|
|
@ -88,14 +77,27 @@ class _ReadingPostCardState extends State<ReadingPostCard> {
|
||||||
children: [
|
children: [
|
||||||
_buildAuthorRow(),
|
_buildAuthorRow(),
|
||||||
const SizedBox(height: AppTheme.spacingMd),
|
const SizedBox(height: AppTheme.spacingMd),
|
||||||
_buildBodyText(),
|
// White space area - clickable for post detail with full background coverage
|
||||||
|
InkWell(
|
||||||
|
onTap: widget.onTap,
|
||||||
|
onTapDown: (_) => setState(() => _isPressed = true),
|
||||||
|
onTapUp: (_) => setState(() => _isPressed = false),
|
||||||
|
onTapCancel: () => setState(() => _isPressed = false),
|
||||||
|
borderRadius: BorderRadius.circular(AppTheme.radiusSm),
|
||||||
|
splashColor: AppTheme.queenPink.withValues(alpha: 0.3),
|
||||||
|
highlightColor: Colors.transparent,
|
||||||
|
child: Container(
|
||||||
|
width: double.infinity,
|
||||||
|
padding: const EdgeInsets.symmetric(vertical: 4),
|
||||||
|
child: _buildBodyText(),
|
||||||
|
),
|
||||||
|
),
|
||||||
const SizedBox(height: AppTheme.spacingLg),
|
const SizedBox(height: AppTheme.spacingLg),
|
||||||
_buildActionRow(),
|
_buildActionRow(),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -132,7 +134,15 @@ class _ReadingPostCardState extends State<ReadingPostCard> {
|
||||||
final avatarUrl = widget.post.author?.avatarUrl;
|
final avatarUrl = widget.post.author?.avatarUrl;
|
||||||
final handle = widget.post.author?.handle ?? '';
|
final handle = widget.post.author?.handle ?? '';
|
||||||
final fallbackColor = _getAvatarColor(handle);
|
final fallbackColor = _getAvatarColor(handle);
|
||||||
return Row(
|
|
||||||
|
return InkWell(
|
||||||
|
onTap: () {
|
||||||
|
if (handle.isNotEmpty && handle != 'unknown') {
|
||||||
|
AppRoutes.navigateToProfile(context, handle);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
borderRadius: BorderRadius.circular(AppTheme.radiusSm),
|
||||||
|
child: Row(
|
||||||
children: [
|
children: [
|
||||||
Container(
|
Container(
|
||||||
width: 36,
|
width: 36,
|
||||||
|
|
@ -199,6 +209,7 @@ class _ReadingPostCardState extends State<ReadingPostCard> {
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -233,16 +244,16 @@ class _ReadingPostCardState extends State<ReadingPostCard> {
|
||||||
],
|
],
|
||||||
const Spacer(),
|
const Spacer(),
|
||||||
_buildActionButton(
|
_buildActionButton(
|
||||||
icon: widget.isAppreciated ? Icons.favorite : Icons.favorite_border,
|
icon: widget.isSaved ? Icons.bookmark : Icons.bookmark_border,
|
||||||
isActive: widget.isAppreciated,
|
isActive: widget.isSaved,
|
||||||
onPressed: widget.onAppreciate,
|
onPressed: widget.onSave,
|
||||||
color: AppTheme.brightNavy,
|
color: AppTheme.brightNavy,
|
||||||
),
|
),
|
||||||
const SizedBox(width: AppTheme.spacingMd),
|
const SizedBox(width: AppTheme.spacingMd),
|
||||||
_buildActionButton(
|
_buildActionButton(
|
||||||
icon: widget.isSaved ? Icons.bookmark : Icons.bookmark_border,
|
icon: Icons.share_outlined,
|
||||||
isActive: widget.isSaved,
|
isActive: false,
|
||||||
onPressed: widget.onSave,
|
onPressed: null, // TODO: Implement share functionality
|
||||||
color: AppTheme.brightNavy,
|
color: AppTheme.brightNavy,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@ import 'post/post_header.dart';
|
||||||
import 'post/post_media.dart';
|
import 'post/post_media.dart';
|
||||||
import 'post/post_menu.dart';
|
import 'post/post_menu.dart';
|
||||||
import 'post/post_view_mode.dart';
|
import 'post/post_view_mode.dart';
|
||||||
|
import 'chain_quote_widget.dart';
|
||||||
import '../routes/app_routes.dart';
|
import '../routes/app_routes.dart';
|
||||||
|
|
||||||
/// Unified Post Card - Single Source of Truth for post display.
|
/// Unified Post Card - Single Source of Truth for post display.
|
||||||
|
|
@ -36,6 +37,9 @@ class sojornPostCard extends StatelessWidget {
|
||||||
final VoidCallback? onTap;
|
final VoidCallback? onTap;
|
||||||
final VoidCallback? onChain;
|
final VoidCallback? onChain;
|
||||||
final VoidCallback? onPostChanged;
|
final VoidCallback? onPostChanged;
|
||||||
|
final VoidCallback? onChainParentTap;
|
||||||
|
final bool isThreadView;
|
||||||
|
final bool showChainContext;
|
||||||
|
|
||||||
const sojornPostCard({
|
const sojornPostCard({
|
||||||
super.key,
|
super.key,
|
||||||
|
|
@ -44,6 +48,9 @@ class sojornPostCard extends StatelessWidget {
|
||||||
this.onTap,
|
this.onTap,
|
||||||
this.onChain,
|
this.onChain,
|
||||||
this.onPostChanged,
|
this.onPostChanged,
|
||||||
|
this.onChainParentTap,
|
||||||
|
this.isThreadView = false,
|
||||||
|
this.showChainContext = true,
|
||||||
});
|
});
|
||||||
|
|
||||||
/// Get spacing values based on view mode
|
/// Get spacing values based on view mode
|
||||||
|
|
@ -97,6 +104,16 @@ class sojornPostCard extends StatelessWidget {
|
||||||
child: Column(
|
child: Column(
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
children: [
|
children: [
|
||||||
|
// Chain Context (The Quote Box) - only show in thread view
|
||||||
|
if (isThreadView && showChainContext && post.chainParent != null) ...[
|
||||||
|
ChainQuoteWidget(
|
||||||
|
parent: post.chainParent!,
|
||||||
|
onTap: onChainParentTap,
|
||||||
|
),
|
||||||
|
const SizedBox(height: AppTheme.spacingSm),
|
||||||
|
],
|
||||||
|
|
||||||
|
// Main Post Content
|
||||||
const SizedBox(height: 4),
|
const SizedBox(height: 4),
|
||||||
// Header row with menu - only header is clickable for profile
|
// Header row with menu - only header is clickable for profile
|
||||||
Row(
|
Row(
|
||||||
|
|
@ -132,10 +149,13 @@ class sojornPostCard extends StatelessWidget {
|
||||||
),
|
),
|
||||||
const SizedBox(height: 16),
|
const SizedBox(height: 16),
|
||||||
|
|
||||||
// Body text - clickable for post detail
|
// Body text - clickable for post detail with full background coverage
|
||||||
InkWell(
|
InkWell(
|
||||||
onTap: onTap,
|
onTap: onTap,
|
||||||
borderRadius: BorderRadius.circular(AppTheme.radiusMd),
|
borderRadius: BorderRadius.circular(AppTheme.radiusMd),
|
||||||
|
child: Container(
|
||||||
|
width: double.infinity,
|
||||||
|
padding: const EdgeInsets.symmetric(vertical: 4),
|
||||||
child: PostBody(
|
child: PostBody(
|
||||||
text: post.body,
|
text: post.body,
|
||||||
bodyFormat: post.bodyFormat,
|
bodyFormat: post.bodyFormat,
|
||||||
|
|
@ -143,6 +163,7 @@ class sojornPostCard extends StatelessWidget {
|
||||||
mode: mode,
|
mode: mode,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
),
|
||||||
|
|
||||||
// Media (if available) - clickable for post detail
|
// Media (if available) - clickable for post detail
|
||||||
if (post.imageUrl != null && post.imageUrl!.isNotEmpty) ...[
|
if (post.imageUrl != null && post.imageUrl!.isNotEmpty) ...[
|
||||||
|
|
@ -156,7 +177,6 @@ class sojornPostCard extends StatelessWidget {
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
|
||||||
const SizedBox(height: 20),
|
const SizedBox(height: 20),
|
||||||
|
|
||||||
// Actions
|
// Actions
|
||||||
|
|
@ -164,6 +184,8 @@ class sojornPostCard extends StatelessWidget {
|
||||||
post: post,
|
post: post,
|
||||||
onChain: onChain,
|
onChain: onChain,
|
||||||
onPostChanged: onPostChanged,
|
onPostChanged: onPostChanged,
|
||||||
|
isThreadView: isThreadView,
|
||||||
|
showReactions: isThreadView,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
|
|
||||||
|
|
@ -73,6 +73,30 @@ packages:
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.1.2"
|
version: "2.1.2"
|
||||||
|
cached_network_image:
|
||||||
|
dependency: "direct main"
|
||||||
|
description:
|
||||||
|
name: cached_network_image
|
||||||
|
sha256: "7c1183e361e5c8b0a0f21a28401eecdbde252441106a9816400dd4c2b2424916"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "3.4.1"
|
||||||
|
cached_network_image_platform_interface:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: cached_network_image_platform_interface
|
||||||
|
sha256: "35814b016e37fbdc91f7ae18c8caf49ba5c88501813f73ce8a07027a395e2829"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "4.1.1"
|
||||||
|
cached_network_image_web:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: cached_network_image_web
|
||||||
|
sha256: "980842f4e8e2535b8dbd3d5ca0b1f0ba66bf61d14cc3a17a9b4788a3685ba062"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "1.3.1"
|
||||||
camera:
|
camera:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
|
|
@ -438,6 +462,14 @@ packages:
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "4.5.2"
|
version: "4.5.2"
|
||||||
|
flutter_cache_manager:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: flutter_cache_manager
|
||||||
|
sha256: "400b6592f16a4409a7f2bb929a9a7e38c72cceb8ffb99ee57bbf2cb2cecf8386"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "3.4.1"
|
||||||
flutter_colorpicker:
|
flutter_colorpicker:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
|
|
@ -731,6 +763,14 @@ packages:
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.1.3"
|
version: "0.1.3"
|
||||||
|
flutter_svg:
|
||||||
|
dependency: "direct main"
|
||||||
|
description:
|
||||||
|
name: flutter_svg
|
||||||
|
sha256: "87fbd7c534435b6c5d9d98b01e1fd527812b82e68ddd8bd35fc45ed0fa8f0a95"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "2.2.3"
|
||||||
flutter_test:
|
flutter_test:
|
||||||
dependency: "direct dev"
|
dependency: "direct dev"
|
||||||
description: flutter
|
description: flutter
|
||||||
|
|
@ -1109,6 +1149,14 @@ packages:
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.0.0"
|
version: "1.0.0"
|
||||||
|
octo_image:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: octo_image
|
||||||
|
sha256: "34faa6639a78c7e3cbe79be6f9f96535867e879748ade7d17c9b1ae7536293bd"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "2.1.0"
|
||||||
package_info_plus:
|
package_info_plus:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
@ -1133,6 +1181,14 @@ packages:
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.9.1"
|
version: "1.9.1"
|
||||||
|
path_parsing:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: path_parsing
|
||||||
|
sha256: "883402936929eac138ee0a45da5b0f2c80f89913e6dc3bf77eb65b84b409c6ca"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "1.1.0"
|
||||||
path_provider:
|
path_provider:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
|
|
@ -1381,6 +1437,14 @@ packages:
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.6.1"
|
version: "2.6.1"
|
||||||
|
rxdart:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: rxdart
|
||||||
|
sha256: "5c3004a4a8dbb94bd4bf5412a4def4acdaa12e12f269737a5751369e12d1a962"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "0.28.0"
|
||||||
share_plus:
|
share_plus:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
|
|
@ -1466,6 +1530,46 @@ packages:
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.10.1"
|
version: "1.10.1"
|
||||||
|
sqflite:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: sqflite
|
||||||
|
sha256: e2297b1da52f127bc7a3da11439985d9b536f75070f3325e62ada69a5c585d03
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "2.4.2"
|
||||||
|
sqflite_android:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: sqflite_android
|
||||||
|
sha256: ecd684501ebc2ae9a83536e8b15731642b9570dc8623e0073d227d0ee2bfea88
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "2.4.2+2"
|
||||||
|
sqflite_common:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: sqflite_common
|
||||||
|
sha256: "6ef422a4525ecc601db6c0a2233ff448c731307906e92cabc9ba292afaae16a6"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "2.5.6"
|
||||||
|
sqflite_darwin:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: sqflite_darwin
|
||||||
|
sha256: "279832e5cde3fe99e8571879498c9211f3ca6391b0d818df4e17d9fff5c6ccb3"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "2.4.2"
|
||||||
|
sqflite_platform_interface:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: sqflite_platform_interface
|
||||||
|
sha256: "8dd4515c7bdcae0a785b0062859336de775e8c65db81ae33dd5445f35be61920"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "2.4.0"
|
||||||
stack_trace:
|
stack_trace:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
@ -1506,6 +1610,14 @@ packages:
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.4.1"
|
version: "1.4.1"
|
||||||
|
synchronized:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: synchronized
|
||||||
|
sha256: c254ade258ec8282947a0acbbc90b9575b4f19673533ee46f2f6e9b3aeefd7c0
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "3.4.0"
|
||||||
term_glyph:
|
term_glyph:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
@ -1642,6 +1754,30 @@ packages:
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "4.5.2"
|
version: "4.5.2"
|
||||||
|
vector_graphics:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: vector_graphics
|
||||||
|
sha256: a4f059dc26fc8295b5921376600a194c4ec7d55e72f2fe4c7d2831e103d461e6
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "1.1.19"
|
||||||
|
vector_graphics_codec:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: vector_graphics_codec
|
||||||
|
sha256: "99fd9fbd34d9f9a32efd7b6a6aae14125d8237b10403b422a6a6dfeac2806146"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "1.1.13"
|
||||||
|
vector_graphics_compiler:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: vector_graphics_compiler
|
||||||
|
sha256: "201e876b5d52753626af64b6359cd13ac6011b80728731428fd34bc840f71c9b"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "1.1.20"
|
||||||
vector_math:
|
vector_math:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
|
||||||
|
|
@ -35,6 +35,10 @@ dependencies:
|
||||||
ffmpeg_kit_flutter_new: ^4.1.0
|
ffmpeg_kit_flutter_new: ^4.1.0
|
||||||
flutter_animate: ^4.5.0
|
flutter_animate: ^4.5.0
|
||||||
|
|
||||||
|
# Graphics & Images
|
||||||
|
flutter_svg: ^2.0.10
|
||||||
|
cached_network_image: ^3.3.10
|
||||||
|
|
||||||
# Rich Text Editor
|
# Rich Text Editor
|
||||||
flutter_quill: ^11.0.0
|
flutter_quill: ^11.0.0
|
||||||
flutter_quill_extensions: ^11.0.0
|
flutter_quill_extensions: ^11.0.0
|
||||||
|
|
@ -90,9 +94,8 @@ flutter:
|
||||||
assets:
|
assets:
|
||||||
- assets/images/
|
- assets/images/
|
||||||
- assets/images/applogo.png
|
- assets/images/applogo.png
|
||||||
|
- assets/images/toplogo.png
|
||||||
- assets/reactions/
|
- assets/reactions/
|
||||||
- assets/rive/
|
|
||||||
- assets/audio/
|
|
||||||
|
|
||||||
dependency_overrides:
|
dependency_overrides:
|
||||||
intl: 0.19.0
|
intl: 0.19.0
|
||||||
|
|
|
||||||
58
sojorn_app/tools/README.md
Normal file
|
|
@ -0,0 +1,58 @@
|
||||||
|
# Reaction Tools
|
||||||
|
|
||||||
|
This folder contains tools for managing reaction sets in Sojorn.
|
||||||
|
|
||||||
|
## Available Tools
|
||||||
|
|
||||||
|
### 1. add_reaction_folder.dart
|
||||||
|
**Purpose**: Add new reaction folders to the reaction picker
|
||||||
|
**When to use**: After creating a new folder with images and credit.md
|
||||||
|
|
||||||
|
**How to run**:
|
||||||
|
```bash
|
||||||
|
# Windows (easy)
|
||||||
|
tools\add_new_folder.bat
|
||||||
|
|
||||||
|
# Manual
|
||||||
|
dart tools/add_reaction_folder.dart
|
||||||
|
```
|
||||||
|
|
||||||
|
**What it does**:
|
||||||
|
- Scans `assets/reactions/` for folders
|
||||||
|
- Checks which folders have PNG/SVG files
|
||||||
|
- Updates `lib/widgets/reactions/reaction_picker.dart` to include folders with content
|
||||||
|
- Ignores empty folders automatically
|
||||||
|
|
||||||
|
### 2. generate_reaction_config.dart
|
||||||
|
**Purpose**: Generate configuration file (legacy/alternative)
|
||||||
|
**When to use**: If you prefer JSON-based configuration
|
||||||
|
|
||||||
|
**How to run**:
|
||||||
|
```bash
|
||||||
|
dart tools/generate_reaction_config.dart
|
||||||
|
```
|
||||||
|
|
||||||
|
**What it does**:
|
||||||
|
- Scans folders and creates `reaction_config.json`
|
||||||
|
- Lists all files found in each folder
|
||||||
|
- Provides build-time file discovery
|
||||||
|
|
||||||
|
## Recommended Workflow
|
||||||
|
|
||||||
|
1. **Create Folder**: `mkdir assets/reactions/yourtheme`
|
||||||
|
2. **Add Images**: Drop PNG/SVG files in the folder
|
||||||
|
3. **Add Credits**: Create `credit.md` (optional)
|
||||||
|
4. **Update Picker**: Run `tools\add_new_folder.bat`
|
||||||
|
5. **Restart App**: See your new reaction tabs!
|
||||||
|
|
||||||
|
## File Naming Tips
|
||||||
|
|
||||||
|
The system tries 200+ common file names including:
|
||||||
|
- Basic: `heart`, `thumbs_up`, `laugh`, `wow`, `sad`, `angry`
|
||||||
|
- Faces: `smiling_face`, `winking_face`, `laughing_face`, `melting_face`
|
||||||
|
- Special: `skull`, `ghost`, `robot`, `angel`, `devil`
|
||||||
|
- Hearts: `heart_with_arrow`, `broken_heart`, `green_heart`, `blue_heart`
|
||||||
|
- Actions: `clap`, `pray`, `party`, `fire`, `thinking`
|
||||||
|
- Modern: `lol`, `omg`, `cool`, `hot`, `computer`, `phone`
|
||||||
|
|
||||||
|
Use descriptive names with underscores, not spaces or camelCase.
|
||||||
13
sojorn_app/tools/add_new_folder.bat
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
@echo off
|
||||||
|
echo Adding new reaction folders to reaction picker...
|
||||||
|
echo.
|
||||||
|
|
||||||
|
cd /d "%~dp0.."
|
||||||
|
|
||||||
|
dart tools\add_reaction_folder.dart
|
||||||
|
|
||||||
|
echo.
|
||||||
|
echo ✅ Reaction picker updated!
|
||||||
|
echo 🔄 Restart your app to see the new reaction tabs
|
||||||
|
echo.
|
||||||
|
pause
|
||||||
112
sojorn_app/tools/add_reaction_folder.dart
Normal file
|
|
@ -0,0 +1,112 @@
|
||||||
|
#!/usr/bin/env dart
|
||||||
|
|
||||||
|
import 'dart:io';
|
||||||
|
import 'dart:convert';
|
||||||
|
|
||||||
|
/// Script to add new reaction folders to the reaction picker
|
||||||
|
/// Run this after creating a new folder with images and credit.md
|
||||||
|
|
||||||
|
void main() async {
|
||||||
|
print('🔍 Scanning for new reaction folders...\n');
|
||||||
|
|
||||||
|
final reactionsDir = Directory('assets/reactions');
|
||||||
|
if (!await reactionsDir.exists()) {
|
||||||
|
print('❌ Error: assets/reactions directory not found');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Find all folders in reactions directory
|
||||||
|
final allFolders = <String>[];
|
||||||
|
await for (final entity in reactionsDir.list()) {
|
||||||
|
if (entity is Directory) {
|
||||||
|
final folderName = entity.path.split(Platform.pathSeparator).last;
|
||||||
|
if (folderName != 'emoji') { // Skip emoji folder
|
||||||
|
allFolders.add(folderName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (allFolders.isEmpty) {
|
||||||
|
print('📁 No reaction folders found (except emoji)');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
print('📁 Found folders: ${allFolders.join(', ')}\n');
|
||||||
|
|
||||||
|
// Check which folders have content
|
||||||
|
final foldersWithContent = <String>[];
|
||||||
|
for (final folder in allFolders) {
|
||||||
|
final hasContent = await _checkFolderHasContent(folder);
|
||||||
|
if (hasContent) {
|
||||||
|
foldersWithContent.add(folder);
|
||||||
|
print('✅ $folder: Has content');
|
||||||
|
} else {
|
||||||
|
print('⚠️ $folder: Empty (will be ignored)');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (foldersWithContent.isEmpty) {
|
||||||
|
print('\n❌ No folders with content found');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update the reaction picker code
|
||||||
|
await _updateReactionPickerCode(foldersWithContent);
|
||||||
|
|
||||||
|
print('\n🎉 Done! Restart your app to see the new reaction tabs');
|
||||||
|
print('💡 Tip: Add files to folders and run this script again to update');
|
||||||
|
}
|
||||||
|
|
||||||
|
Future<bool> _checkFolderHasContent(String folder) async {
|
||||||
|
final folderDir = Directory('assets/reactions/$folder');
|
||||||
|
bool hasImages = false;
|
||||||
|
|
||||||
|
try {
|
||||||
|
await for (final entity in folderDir.list()) {
|
||||||
|
if (entity is File) {
|
||||||
|
final fileName = entity.path.split(Platform.pathSeparator).last.toLowerCase();
|
||||||
|
if (fileName.endsWith('.png') || fileName.endsWith('.svg')) {
|
||||||
|
hasImages = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
print('Error checking folder $folder: $e');
|
||||||
|
}
|
||||||
|
|
||||||
|
return hasImages;
|
||||||
|
}
|
||||||
|
|
||||||
|
Future<void> _updateReactionPickerCode(List<String> folders) async {
|
||||||
|
final pickerFile = File('lib/widgets/reactions/reaction_picker.dart');
|
||||||
|
|
||||||
|
if (!await pickerFile.exists()) {
|
||||||
|
print('❌ Error: reaction_picker.dart not found');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
String content = await pickerFile.readAsString();
|
||||||
|
|
||||||
|
// Find the line with knownFolders
|
||||||
|
final knownFoldersPattern = RegExp(r'final knownFolders = \[([^\]]+)\];');
|
||||||
|
final match = knownFoldersPattern.firstMatch(content);
|
||||||
|
|
||||||
|
if (match == null) {
|
||||||
|
print('❌ Error: Could not find knownFolders line in reaction_picker.dart');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Create new folder list as string
|
||||||
|
final newFoldersList = folders.map((f) => "'$f'").join(', ');
|
||||||
|
|
||||||
|
// Replace the old list with new one
|
||||||
|
final newKnownFoldersLine = "final knownFolders = [$newFoldersList];";
|
||||||
|
|
||||||
|
content = content.replaceFirst(match.group(0)!, newKnownFoldersLine);
|
||||||
|
|
||||||
|
// Write back to file
|
||||||
|
await pickerFile.writeAsString(content);
|
||||||
|
|
||||||
|
print('📝 Updated reaction_picker.dart with folders: ${folders.join(', ')}');
|
||||||
|
}
|
||||||
106
sojorn_app/tools/generate_reaction_config.dart
Normal file
|
|
@ -0,0 +1,106 @@
|
||||||
|
#!/usr/bin/env dart
|
||||||
|
|
||||||
|
import 'dart:io';
|
||||||
|
import 'dart:convert';
|
||||||
|
|
||||||
|
/// Script to generate reaction_config.json by scanning reaction folders
|
||||||
|
/// Run this script whenever you add new reaction files or folders
|
||||||
|
|
||||||
|
void main() async {
|
||||||
|
final reactionsDir = Directory('assets/reactions');
|
||||||
|
if (!await reactionsDir.exists()) {
|
||||||
|
print('Error: assets/reactions directory not found');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
final reactionSets = <String, Map<String, dynamic>>{};
|
||||||
|
|
||||||
|
// Add default emoji set
|
||||||
|
reactionSets['emoji'] = {
|
||||||
|
'type': 'emoji',
|
||||||
|
'reactions': [
|
||||||
|
'❤️', '👍', '😂', '😮', '😢', '😡',
|
||||||
|
'🎉', '🔥', '👏', '🙏', '💯', '🤔',
|
||||||
|
'😍', '🤣', '😊', '👌', '🙌', '💪',
|
||||||
|
'🎯', '⭐', '✨', '🌟', '💫', '☀️',
|
||||||
|
],
|
||||||
|
};
|
||||||
|
|
||||||
|
// Scan each folder in reactions directory
|
||||||
|
await for (final entity in reactionsDir.list()) {
|
||||||
|
if (entity is Directory && entity.path.contains('reactions\\') || entity.path.contains('reactions/')) {
|
||||||
|
final folderName = entity.path.split(Platform.pathSeparator).last;
|
||||||
|
|
||||||
|
// Skip emoji folder (handled above)
|
||||||
|
if (folderName == 'emoji') continue;
|
||||||
|
|
||||||
|
print('Scanning folder: $folderName');
|
||||||
|
|
||||||
|
final files = <String>[];
|
||||||
|
final fileTypes = <String>{};
|
||||||
|
|
||||||
|
// Scan all files in the folder
|
||||||
|
await for (final file in (entity as Directory).list()) {
|
||||||
|
if (file is File) {
|
||||||
|
final fileName = file.path.split(Platform.pathSeparator).last;
|
||||||
|
|
||||||
|
// Only include image files
|
||||||
|
if (fileName.endsWith('.png') || fileName.endsWith('.svg')) {
|
||||||
|
files.add(fileName);
|
||||||
|
fileTypes.add(fileName.split('.').last);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (files.isNotEmpty) {
|
||||||
|
reactionSets[folderName] = {
|
||||||
|
'type': 'folder',
|
||||||
|
'folder': folderName,
|
||||||
|
'file_types': fileTypes.toList(),
|
||||||
|
'files': files, // Explicit file list since we can't discover at runtime
|
||||||
|
};
|
||||||
|
|
||||||
|
print(' Found ${files.length} files: ${files.take(5).join(', ')}${files.length > 5 ? '...' : ''}');
|
||||||
|
} else {
|
||||||
|
print(' ⚠️ No reaction files found, skipping folder');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Generate configuration
|
||||||
|
final config = {
|
||||||
|
'reaction_sets': reactionSets,
|
||||||
|
'generated_at': DateTime.now().toIso8601String(),
|
||||||
|
'total_sets': reactionSets.length,
|
||||||
|
};
|
||||||
|
|
||||||
|
// Write configuration file
|
||||||
|
final configFile = File('assets/reactions/reaction_config.json');
|
||||||
|
await configFile.writeAsString(
|
||||||
|
const JsonEncoder.withIndent(' ').convert(config)
|
||||||
|
);
|
||||||
|
|
||||||
|
print('\n✅ Generated reaction_config.json with ${reactionSets.length} reaction sets');
|
||||||
|
final activeFolders = reactionSets.keys.where((k) => k != 'emoji').toList();
|
||||||
|
if (activeFolders.isNotEmpty) {
|
||||||
|
print('📁 Active folders: ${activeFolders.join(', ')}');
|
||||||
|
} else {
|
||||||
|
print('📁 No active folders found (only emoji set)');
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check for empty folders
|
||||||
|
final allFolders = <String>[];
|
||||||
|
await for (final entity in reactionsDir.list()) {
|
||||||
|
if (entity is Directory) {
|
||||||
|
final folderName = entity.path.split(Platform.pathSeparator).last;
|
||||||
|
if (folderName != 'emoji') allFolders.add(folderName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
final emptyFolders = allFolders.where((folder) => !activeFolders.contains(folder)).toList();
|
||||||
|
if (emptyFolders.isNotEmpty) {
|
||||||
|
print('🗂️ Empty folders (ignored): ${emptyFolders.join(', ')}');
|
||||||
|
}
|
||||||
|
|
||||||
|
print('⚠️ Remember to run "flutter pub get" and restart your app');
|
||||||
|
}
|
||||||
13
sojorn_app/tools/update_reactions.bat
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
@echo off
|
||||||
|
echo Updating reaction configuration...
|
||||||
|
echo.
|
||||||
|
|
||||||
|
cd /d "%~dp0.."
|
||||||
|
|
||||||
|
dart tools\generate_reaction_config.dart
|
||||||
|
|
||||||
|
echo.
|
||||||
|
echo ✅ Reaction configuration updated!
|
||||||
|
echo 📁 Make sure to restart your app to see changes
|
||||||
|
echo.
|
||||||
|
pause
|
||||||