- Fixes Preview Tag

- Fixes Email Pattern
This commit is contained in:
Vitor Pamplona
2025-12-29 18:57:56 -05:00
parent e9d07b3939
commit c5133e98f8
47 changed files with 98 additions and 6 deletions
+1
View File
@@ -64,6 +64,7 @@ kotlin {
implementation(compose.runtime)
implementation(compose.material3)
implementation(compose.materialIconsExtended)
implementation(compose.components.uiToolingPreview)
// LruCache (KMP-ready)
implementation(libs.androidx.collection)
@@ -50,7 +50,7 @@ class BlurhashTest {
val bmp1 = BlurHashDecoderOld.decode(warmHex, 100, (100 * (1 / aspectRatio)).roundToInt())
val bmp2 = BlurHashDecoder.decodeKeepAspectRatio(warmHex, 100)
assertTrue(bmp1!!.sameAs(bmp2!!))
assertTrue(bmp1!!.sameAs(bmp2!!.bitmap))
}
@Test
@@ -60,7 +60,7 @@ class BlurhashTest {
val bmp1 = BlurHashDecoderOld.decode(warmHex, 25, (25 * (1 / aspectRatio)).roundToInt())
val bmp2 = BlurHashDecoder.decodeKeepAspectRatio(warmHex, 25)
assertTrue(bmp1!!.sameAs(bmp2!!))
assertTrue(bmp1!!.sameAs(bmp2!!.bitmap))
}
@Test
@@ -75,7 +75,7 @@ class BlurhashTest {
val bmp1 = BlurHashDecoderOld.decode(testHex, 100, (100 * (1 / aspectRatio)).roundToInt())
val bmp2 = BlurHashDecoder.decodeKeepAspectRatio(testHex, 100)
assertTrue(bmp1!!.sameAs(bmp2!!))
assertTrue(bmp1!!.sameAs(bmp2!!.bitmap))
}
@Test
@@ -23,6 +23,7 @@ package com.vitorpamplona.amethyst.commons.richtext
import androidx.test.ext.junit.runners.AndroidJUnit4
import com.vitorpamplona.quartz.nip01Core.core.EmptyTagList
import com.vitorpamplona.quartz.nip01Core.core.ImmutableListOfLists
import junit.framework.TestCase.assertEquals
import org.junit.Test
import org.junit.runner.RunWith
@@ -688,7 +689,7 @@ class RichTextParserTest {
val state =
RichTextParser()
.parseText(textToParse, EmptyTagList, null)
org.junit.Assert.assertEquals(
assertEquals(
"relay.shitforce.one, relayable.org, universe.nostrich.land, nos.lol, universe.nostrich.land?lang=zh, universe.nostrich.land?lang=en, relay.damus.io, relay.nostr.wirednet.jp, offchain.pub, nostr.rocks, relay.wellorder.net, nostr.oxtr.dev, universe.nostrich.land?lang=ja, relay.mostr.pub, nostr.bitcoiner.social, Nostr-Check.com, MR.Rabbit, Ancap.su, ⚡\uFE0Fsatscoinsv@getalby.com, miceliomad@miceliomad.github.io/nostr/, zapper.lol, smies.me, baller.hodl",
state.urlSet.joinToString(", "),
)
@@ -33,7 +33,9 @@ import androidx.compose.ui.graphics.vector.ImageVector.Builder
import androidx.compose.ui.graphics.vector.path
import androidx.compose.ui.graphics.vector.rememberVectorPainter
import androidx.compose.ui.unit.dp
import org.jetbrains.compose.ui.tooling.preview.Preview
@Preview
@Composable
fun CustomHashTagIconsAmethystPreview() {
Image(
@@ -34,7 +34,9 @@ import androidx.compose.ui.graphics.vector.ImageVector.Builder
import androidx.compose.ui.graphics.vector.path
import androidx.compose.ui.graphics.vector.rememberVectorPainter
import androidx.compose.ui.unit.dp
import org.jetbrains.compose.ui.tooling.preview.Preview
@Preview
@Composable
fun CustomHashTagIconsBtcPreview() {
Image(
@@ -32,7 +32,9 @@ import androidx.compose.ui.graphics.vector.ImageVector.Builder
import androidx.compose.ui.graphics.vector.path
import androidx.compose.ui.graphics.vector.rememberVectorPainter
import androidx.compose.ui.unit.dp
import org.jetbrains.compose.ui.tooling.preview.Preview
@Preview
@Composable
fun CustomHashTagIconsCashuPreview() {
Image(
@@ -32,7 +32,9 @@ import androidx.compose.ui.graphics.vector.ImageVector.Builder
import androidx.compose.ui.graphics.vector.path
import androidx.compose.ui.graphics.vector.rememberVectorPainter
import androidx.compose.ui.unit.dp
import org.jetbrains.compose.ui.tooling.preview.Preview
@Preview
@Composable
fun CustomHashTagIconsCoffeePreview() {
Image(
@@ -32,7 +32,9 @@ import androidx.compose.ui.graphics.vector.ImageVector.Builder
import androidx.compose.ui.graphics.vector.path
import androidx.compose.ui.graphics.vector.rememberVectorPainter
import androidx.compose.ui.unit.dp
import org.jetbrains.compose.ui.tooling.preview.Preview
@Preview
@Composable
fun CustomHashTagIconsFlowerstrPreview() {
Image(
@@ -32,7 +32,9 @@ import androidx.compose.ui.graphics.vector.ImageVector.Builder
import androidx.compose.ui.graphics.vector.path
import androidx.compose.ui.graphics.vector.rememberVectorPainter
import androidx.compose.ui.unit.dp
import org.jetbrains.compose.ui.tooling.preview.Preview
@Preview
@Composable
fun CustomHashTagIconsFootstrPreview() {
Image(
@@ -29,7 +29,9 @@ import androidx.compose.ui.graphics.vector.ImageVector.Builder
import androidx.compose.ui.graphics.vector.path
import androidx.compose.ui.graphics.vector.rememberVectorPainter
import androidx.compose.ui.unit.dp
import org.jetbrains.compose.ui.tooling.preview.Preview
@Preview
@Composable
fun CustomHashTagIconsGamestrPreview() {
Image(
@@ -32,7 +32,9 @@ import androidx.compose.ui.graphics.vector.ImageVector.Builder
import androidx.compose.ui.graphics.vector.path
import androidx.compose.ui.graphics.vector.rememberVectorPainter
import androidx.compose.ui.unit.dp
import org.jetbrains.compose.ui.tooling.preview.Preview
@Preview
@Composable
fun CustomHashTagIconsGrownostrPreview() {
Image(
@@ -32,7 +32,9 @@ import androidx.compose.ui.graphics.vector.ImageVector.Builder
import androidx.compose.ui.graphics.vector.path
import androidx.compose.ui.graphics.vector.rememberVectorPainter
import androidx.compose.ui.unit.dp
import org.jetbrains.compose.ui.tooling.preview.Preview
@Preview
@Composable
fun CustomHashTagIconsLightningPreview() {
Image(
@@ -32,7 +32,9 @@ import androidx.compose.ui.graphics.vector.ImageVector.Builder
import androidx.compose.ui.graphics.vector.path
import androidx.compose.ui.graphics.vector.rememberVectorPainter
import androidx.compose.ui.unit.dp
import org.jetbrains.compose.ui.tooling.preview.Preview
@Preview
@Composable
fun CustomHashTagIconsMatePreview() {
Image(
@@ -32,7 +32,9 @@ import androidx.compose.ui.graphics.vector.ImageVector.Builder
import androidx.compose.ui.graphics.vector.path
import androidx.compose.ui.graphics.vector.rememberVectorPainter
import androidx.compose.ui.unit.dp
import org.jetbrains.compose.ui.tooling.preview.Preview
@Preview
@Composable
fun CustomHashTagIconsNostrPreview() {
Image(
@@ -32,7 +32,9 @@ import androidx.compose.ui.graphics.vector.ImageVector.Builder
import androidx.compose.ui.graphics.vector.path
import androidx.compose.ui.graphics.vector.rememberVectorPainter
import androidx.compose.ui.unit.dp
import org.jetbrains.compose.ui.tooling.preview.Preview
@Preview
@Composable
fun CustomHashTagIconsPlebsPreview() {
Image(
@@ -32,7 +32,9 @@ import androidx.compose.ui.graphics.vector.ImageVector.Builder
import androidx.compose.ui.graphics.vector.path
import androidx.compose.ui.graphics.vector.rememberVectorPainter
import androidx.compose.ui.unit.dp
import org.jetbrains.compose.ui.tooling.preview.Preview
@Preview
@Composable
fun CustomHashTagIconsSkullPreview() {
Image(
@@ -32,7 +32,9 @@ import androidx.compose.ui.graphics.vector.ImageVector.Builder
import androidx.compose.ui.graphics.vector.path
import androidx.compose.ui.graphics.vector.rememberVectorPainter
import androidx.compose.ui.unit.dp
import org.jetbrains.compose.ui.tooling.preview.Preview
@Preview
@Composable
fun CustomHashTagIconsTunestrPreview() {
Image(
@@ -32,7 +32,9 @@ import androidx.compose.ui.graphics.vector.ImageVector.Builder
import androidx.compose.ui.graphics.vector.path
import androidx.compose.ui.graphics.vector.rememberVectorPainter
import androidx.compose.ui.unit.dp
import org.jetbrains.compose.ui.tooling.preview.Preview
@Preview
@Composable
fun CustomHashTagIconsWeedPreview() {
Image(
@@ -32,7 +32,9 @@ import androidx.compose.ui.graphics.vector.ImageVector.Builder
import androidx.compose.ui.graphics.vector.path
import androidx.compose.ui.graphics.vector.rememberVectorPainter
import androidx.compose.ui.unit.dp
import org.jetbrains.compose.ui.tooling.preview.Preview
@Preview
@Composable
fun CustomHashTagIconsZapPreview() {
Image(
@@ -30,7 +30,9 @@ import androidx.compose.ui.graphics.StrokeJoin
import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.graphics.vector.path
import androidx.compose.ui.unit.dp
import org.jetbrains.compose.ui.tooling.preview.Preview
@Preview
@Composable
private fun VectorPreview() {
Image(Following, null)
@@ -31,7 +31,9 @@ import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.graphics.vector.ImageVector.Builder
import androidx.compose.ui.graphics.vector.path
import androidx.compose.ui.unit.dp
import org.jetbrains.compose.ui.tooling.preview.Preview
@Preview
@Composable
private fun VectorPreview() {
Image(Like, null)
@@ -31,7 +31,9 @@ import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.graphics.vector.ImageVector.Builder
import androidx.compose.ui.graphics.vector.path
import androidx.compose.ui.unit.dp
import org.jetbrains.compose.ui.tooling.preview.Preview
@Preview
@Composable
private fun VectorPreview() {
Image(Liked, null)
@@ -31,7 +31,9 @@ import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.graphics.vector.ImageVector.Builder
import androidx.compose.ui.graphics.vector.path
import androidx.compose.ui.unit.dp
import org.jetbrains.compose.ui.tooling.preview.Preview
@Preview
@Composable
private fun VectorPreview() {
Image(Reply, null)
@@ -31,7 +31,9 @@ import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.graphics.vector.ImageVector.Builder
import androidx.compose.ui.graphics.vector.path
import androidx.compose.ui.unit.dp
import org.jetbrains.compose.ui.tooling.preview.Preview
@Preview
@Composable
private fun VectorPreview() {
Image(Repost, null)
@@ -31,7 +31,9 @@ import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.graphics.vector.ImageVector.Builder
import androidx.compose.ui.graphics.vector.path
import androidx.compose.ui.unit.dp
import org.jetbrains.compose.ui.tooling.preview.Preview
@Preview
@Composable
private fun VectorPreview() {
Image(Reposted, null)
@@ -31,7 +31,9 @@ import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.graphics.vector.ImageVector.Builder
import androidx.compose.ui.graphics.vector.path
import androidx.compose.ui.unit.dp
import org.jetbrains.compose.ui.tooling.preview.Preview
@Preview
@Composable
private fun VectorPreview() {
Image(Search, null)
@@ -31,7 +31,9 @@ import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.graphics.vector.ImageVector.Builder
import androidx.compose.ui.graphics.vector.path
import androidx.compose.ui.unit.dp
import org.jetbrains.compose.ui.tooling.preview.Preview
@Preview
@Composable
private fun VectorPreview() {
Image(Share, null)
@@ -31,7 +31,9 @@ import androidx.compose.ui.graphics.vector.DefaultFillType
import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.graphics.vector.PathBuilder
import androidx.compose.ui.graphics.vector.path
import org.jetbrains.compose.ui.tooling.preview.Preview
@Preview
@Composable
private fun VectorPreview() {
Image(Zap, null)
@@ -32,7 +32,9 @@ import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.graphics.vector.PathBuilder
import androidx.compose.ui.graphics.vector.path
import androidx.compose.ui.unit.dp
import org.jetbrains.compose.ui.tooling.preview.Preview
@Preview
@Composable
private fun VectorPreview() {
Image(ZapSplit, null)
@@ -86,6 +86,7 @@ import com.vitorpamplona.amethyst.commons.robohash.parts.mouth9Closed
import com.vitorpamplona.quartz.utils.Hex
import com.vitorpamplona.quartz.utils.Log
import com.vitorpamplona.quartz.utils.sha256.sha256
import org.jetbrains.compose.ui.tooling.preview.Preview
val Black = SolidColor(Color.Black)
val Gray = SolidColor(Color(0xFF6d6e70))
@@ -106,6 +107,7 @@ val MediumGray = SolidColor(Color(0xFFd0d2d3))
val DefaultSize = 55.dp
const val VIEWPORT_SIZE = 300f
@Preview
@Composable
fun RobohashPreview() {
val assembler = RobohashAssembler()
@@ -21,18 +21,24 @@
package com.vitorpamplona.amethyst.commons.robohash.parts
import androidx.compose.foundation.Image
import androidx.compose.foundation.layout.size
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.SolidColor
import androidx.compose.ui.graphics.vector.ImageVector.Builder
import androidx.compose.ui.graphics.vector.PathData
import androidx.compose.ui.graphics.vector.rememberVectorPainter
import androidx.compose.ui.unit.dp
import com.vitorpamplona.amethyst.commons.robohash.Black
import com.vitorpamplona.amethyst.commons.robohash.roboBuilder
import org.jetbrains.compose.ui.tooling.preview.Preview
@Preview
@Composable
fun Accessory0SevenPreview() {
Image(
modifier = Modifier.size(10000.dp),
painter =
rememberVectorPainter(
roboBuilder {
@@ -29,7 +29,9 @@ import androidx.compose.ui.graphics.vector.PathData
import androidx.compose.ui.graphics.vector.rememberVectorPainter
import com.vitorpamplona.amethyst.commons.robohash.Black
import com.vitorpamplona.amethyst.commons.robohash.roboBuilder
import org.jetbrains.compose.ui.tooling.preview.Preview
@Preview
@Composable
fun Accessory1NosePreview() {
Image(
@@ -34,7 +34,9 @@ import com.vitorpamplona.amethyst.commons.robohash.LightGray
import com.vitorpamplona.amethyst.commons.robohash.LightRed
import com.vitorpamplona.amethyst.commons.robohash.MediumGray
import com.vitorpamplona.amethyst.commons.robohash.roboBuilder
import org.jetbrains.compose.ui.tooling.preview.Preview
@Preview
@Composable
fun Accessory2HornRedPreview() {
Image(
@@ -30,7 +30,9 @@ import androidx.compose.ui.graphics.vector.rememberVectorPainter
import com.vitorpamplona.amethyst.commons.robohash.Black
import com.vitorpamplona.amethyst.commons.robohash.LightRed
import com.vitorpamplona.amethyst.commons.robohash.roboBuilder
import org.jetbrains.compose.ui.tooling.preview.Preview
@Preview
@Composable
fun Accessory3ButtonPreview() {
Image(
@@ -30,7 +30,9 @@ import androidx.compose.ui.graphics.vector.rememberVectorPainter
import com.vitorpamplona.amethyst.commons.robohash.Black
import com.vitorpamplona.amethyst.commons.robohash.LightRed
import com.vitorpamplona.amethyst.commons.robohash.roboBuilder
import org.jetbrains.compose.ui.tooling.preview.Preview
@Preview
@Composable
fun Accessory4SatellitePreview() {
Image(
@@ -29,7 +29,9 @@ import androidx.compose.ui.graphics.vector.PathData
import androidx.compose.ui.graphics.vector.rememberVectorPainter
import com.vitorpamplona.amethyst.commons.robohash.Black
import com.vitorpamplona.amethyst.commons.robohash.roboBuilder
import org.jetbrains.compose.ui.tooling.preview.Preview
@Preview
@Composable
fun Accessory5MustachePreview() {
Image(
@@ -30,7 +30,9 @@ import androidx.compose.ui.graphics.vector.rememberVectorPainter
import com.vitorpamplona.amethyst.commons.robohash.Black
import com.vitorpamplona.amethyst.commons.robohash.Gray
import com.vitorpamplona.amethyst.commons.robohash.roboBuilder
import org.jetbrains.compose.ui.tooling.preview.Preview
@Preview
@Composable
fun Body0TropperPreview() {
Image(
@@ -30,7 +30,9 @@ import androidx.compose.ui.graphics.vector.rememberVectorPainter
import com.vitorpamplona.amethyst.commons.robohash.Black
import com.vitorpamplona.amethyst.commons.robohash.Gray
import com.vitorpamplona.amethyst.commons.robohash.roboBuilder
import org.jetbrains.compose.ui.tooling.preview.Preview
@Preview
@Composable
fun Body1ThinPreview() {
Image(
@@ -30,7 +30,9 @@ import androidx.compose.ui.graphics.vector.rememberVectorPainter
import com.vitorpamplona.amethyst.commons.robohash.Black
import com.vitorpamplona.amethyst.commons.robohash.Gray
import com.vitorpamplona.amethyst.commons.robohash.roboBuilder
import org.jetbrains.compose.ui.tooling.preview.Preview
@Preview
@Composable
fun Body2ThinnestPreview() {
Image(
@@ -30,7 +30,9 @@ import androidx.compose.ui.graphics.vector.rememberVectorPainter
import com.vitorpamplona.amethyst.commons.robohash.Black
import com.vitorpamplona.amethyst.commons.robohash.Gray
import com.vitorpamplona.amethyst.commons.robohash.roboBuilder
import org.jetbrains.compose.ui.tooling.preview.Preview
@Preview
@Composable
fun Body3FrontPreview() {
Image(
@@ -30,7 +30,9 @@ import androidx.compose.ui.graphics.vector.rememberVectorPainter
import com.vitorpamplona.amethyst.commons.robohash.Black
import com.vitorpamplona.amethyst.commons.robohash.Gray
import com.vitorpamplona.amethyst.commons.robohash.roboBuilder
import org.jetbrains.compose.ui.tooling.preview.Preview
@Preview
@Composable
fun Body4RoundPreview() {
Image(
@@ -30,7 +30,9 @@ import androidx.compose.ui.graphics.vector.rememberVectorPainter
import com.vitorpamplona.amethyst.commons.robohash.Black
import com.vitorpamplona.amethyst.commons.robohash.Gray
import com.vitorpamplona.amethyst.commons.robohash.roboBuilder
import org.jetbrains.compose.ui.tooling.preview.Preview
@Preview
@Composable
fun Body5NeckPreview() {
Image(
@@ -31,7 +31,9 @@ import com.vitorpamplona.amethyst.commons.robohash.Black
import com.vitorpamplona.amethyst.commons.robohash.Gray
import com.vitorpamplona.amethyst.commons.robohash.Yellow
import com.vitorpamplona.amethyst.commons.robohash.roboBuilder
import org.jetbrains.compose.ui.tooling.preview.Preview
@Preview
@Composable
fun Body6IronManPreview() {
Image(
@@ -30,7 +30,9 @@ import androidx.compose.ui.graphics.vector.rememberVectorPainter
import com.vitorpamplona.amethyst.commons.robohash.Black
import com.vitorpamplona.amethyst.commons.robohash.Gray
import com.vitorpamplona.amethyst.commons.robohash.roboBuilder
import org.jetbrains.compose.ui.tooling.preview.Preview
@Preview
@Composable
fun Body7NeckThinnerPreview() {
Image(
@@ -30,7 +30,9 @@ import androidx.compose.ui.graphics.vector.rememberVectorPainter
import com.vitorpamplona.amethyst.commons.robohash.Black
import com.vitorpamplona.amethyst.commons.robohash.Gray
import com.vitorpamplona.amethyst.commons.robohash.roboBuilder
import org.jetbrains.compose.ui.tooling.preview.Preview
@Preview
@Composable
fun Body8BigPreview() {
Image(
@@ -30,7 +30,9 @@ import androidx.compose.ui.graphics.vector.rememberVectorPainter
import com.vitorpamplona.amethyst.commons.robohash.Black
import com.vitorpamplona.amethyst.commons.robohash.Gray
import com.vitorpamplona.amethyst.commons.robohash.roboBuilder
import org.jetbrains.compose.ui.tooling.preview.Preview
@Preview
@Composable
fun Body9HugePreview() {
Image(
@@ -28,11 +28,11 @@ import java.util.regex.Pattern
*/
object Patterns {
/**
* Email address pattern from RFC 5322.
* Email address pattern from RFC 5322... From android.util.Patterns.
*/
val EMAIL_ADDRESS: Pattern =
Pattern.compile(
"[a-zA-Z0-9+._%-]+@[a-zA-Z0-9][a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}",
"[a-zA-Z0-9+._%-]{1,256}@[a-zA-Z0-9][a-zA-Z0-9\\-]{0,64}(\\.[a-zA-Z0-9][a-zA-Z0-9\\-]{0,25})+",
)
/**