@proulr/sdui-components 0.1.65 → 0.1.67

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (172) hide show
  1. package/assets/icons/arrow-down-right.svg +8 -0
  2. package/assets/icons/arrow-right.svg +8 -0
  3. package/assets/icons/arrow-up-right.svg +8 -0
  4. package/assets/icons/attachment.svg +8 -0
  5. package/assets/icons/back.svg +8 -0
  6. package/assets/icons/bell.svg +10 -0
  7. package/assets/icons/bookmark.svg +8 -0
  8. package/assets/icons/boost.svg +11 -0
  9. package/assets/icons/camera.svg +10 -0
  10. package/assets/icons/chat.svg +11 -0
  11. package/assets/icons/check.svg +8 -0
  12. package/assets/icons/chevron-down.svg +8 -0
  13. package/assets/icons/chevron-right.svg +8 -0
  14. package/assets/icons/close.svg +8 -0
  15. package/assets/icons/communities.svg +10 -0
  16. package/assets/icons/copy.svg +11 -0
  17. package/assets/icons/crop.svg +10 -0
  18. package/assets/icons/download.svg +9 -0
  19. package/assets/icons/edit.svg +10 -0
  20. package/assets/icons/events.svg +15 -0
  21. package/assets/icons/fire.svg +8 -0
  22. package/assets/icons/flash.svg +8 -0
  23. package/assets/icons/flip-camera.svg +12 -0
  24. package/assets/icons/followers.svg +13 -0
  25. package/assets/icons/gallery.svg +12 -0
  26. package/assets/icons/gift.svg +11 -0
  27. package/assets/icons/globe.svg +10 -0
  28. package/assets/icons/heart-filled.svg +8 -0
  29. package/assets/icons/heart.svg +8 -0
  30. package/assets/icons/hourglass.svg +13 -0
  31. package/assets/icons/hunt.svg +12 -0
  32. package/assets/icons/incognito.svg +11 -0
  33. package/assets/icons/info.svg +10 -0
  34. package/assets/icons/list.svg +13 -0
  35. package/assets/icons/location.svg +8 -0
  36. package/assets/icons/lock.svg +11 -0
  37. package/assets/icons/mention.svg +9 -0
  38. package/assets/icons/mic.svg +10 -0
  39. package/assets/icons/overflow.svg +12 -0
  40. package/assets/icons/pause.svg +10 -0
  41. package/assets/icons/pending.svg +10 -0
  42. package/assets/icons/play.svg +8 -0
  43. package/assets/icons/plus.svg +8 -0
  44. package/assets/icons/poll.svg +9 -0
  45. package/assets/icons/profile.svg +10 -0
  46. package/assets/icons/publish.svg +9 -0
  47. package/assets/icons/radio-unchecked.svg +8 -0
  48. package/assets/icons/reply.svg +9 -0
  49. package/assets/icons/repost.svg +11 -0
  50. package/assets/icons/right-now.svg +14 -0
  51. package/assets/icons/search.svg +10 -0
  52. package/assets/icons/send.svg +9 -0
  53. package/assets/icons/settings.svg +8 -0
  54. package/assets/icons/share.svg +13 -0
  55. package/assets/icons/shield.svg +9 -0
  56. package/assets/icons/sign-out.svg +9 -0
  57. package/assets/icons/signal.svg +8 -0
  58. package/assets/icons/star.svg +8 -0
  59. package/assets/icons/story-effects.svg +12 -0
  60. package/assets/icons/story-mention.svg +10 -0
  61. package/assets/icons/story-music.svg +10 -0
  62. package/assets/icons/story-sticker.svg +11 -0
  63. package/assets/icons/story-text.svg +9 -0
  64. package/assets/icons/story.svg +10 -0
  65. package/assets/icons/tab-chat.svg +11 -0
  66. package/assets/icons/tab-discover.svg +11 -0
  67. package/assets/icons/tab-flash.svg +8 -0
  68. package/assets/icons/tab-random.svg +13 -0
  69. package/assets/icons/tab-vibes.svg +8 -0
  70. package/assets/icons/thumbs-up-filled.svg +8 -0
  71. package/assets/icons/thumbs-up.svg +9 -0
  72. package/assets/icons/trash.svg +10 -0
  73. package/assets/icons/travel.svg +11 -0
  74. package/assets/icons/video.svg +11 -0
  75. package/assets/icons/visibility-off.svg +10 -0
  76. package/assets/icons/visibility.svg +9 -0
  77. package/assets/icons/volume-off.svg +9 -0
  78. package/assets/icons/volume-on.svg +10 -0
  79. package/assets/icons/warning.svg +10 -0
  80. package/package.json +4 -2
  81. package/src/catalog/catalog.test.ts +3 -1
  82. package/src/renderer/theme/chrome-layout.ts +1 -1
  83. package/src/renderer/ui/app-icon-glyph-props.ts +5 -0
  84. package/src/renderer/ui/app-icon.test.ts +45 -0
  85. package/src/renderer/ui/app-icon.tsx +6 -166
  86. package/src/renderer/ui/compose-recent-media-grid.tsx +2 -2
  87. package/src/renderer/ui/compose-screen-header.tsx +2 -2
  88. package/src/renderer/ui/compose-visibility-row.tsx +2 -2
  89. package/src/renderer/ui/generated/arrow-down-right.tsx +16 -0
  90. package/src/renderer/ui/generated/arrow-right.tsx +16 -0
  91. package/src/renderer/ui/generated/arrow-up-right.tsx +16 -0
  92. package/src/renderer/ui/generated/attachment.tsx +16 -0
  93. package/src/renderer/ui/generated/back.tsx +16 -0
  94. package/src/renderer/ui/generated/bell.tsx +18 -0
  95. package/src/renderer/ui/generated/bookmark.tsx +16 -0
  96. package/src/renderer/ui/generated/boost.tsx +19 -0
  97. package/src/renderer/ui/generated/camera.tsx +18 -0
  98. package/src/renderer/ui/generated/chat.tsx +19 -0
  99. package/src/renderer/ui/generated/check.tsx +16 -0
  100. package/src/renderer/ui/generated/chevron-down.tsx +16 -0
  101. package/src/renderer/ui/generated/chevron-right.tsx +16 -0
  102. package/src/renderer/ui/generated/close.tsx +16 -0
  103. package/src/renderer/ui/generated/communities.tsx +18 -0
  104. package/src/renderer/ui/generated/copy.tsx +19 -0
  105. package/src/renderer/ui/generated/crop.tsx +18 -0
  106. package/src/renderer/ui/generated/download.tsx +17 -0
  107. package/src/renderer/ui/generated/edit.tsx +18 -0
  108. package/src/renderer/ui/generated/events.tsx +23 -0
  109. package/src/renderer/ui/generated/fire.tsx +16 -0
  110. package/src/renderer/ui/generated/flash.tsx +16 -0
  111. package/src/renderer/ui/generated/flip-camera.tsx +20 -0
  112. package/src/renderer/ui/generated/followers.tsx +21 -0
  113. package/src/renderer/ui/generated/gallery.tsx +20 -0
  114. package/src/renderer/ui/generated/gift.tsx +19 -0
  115. package/src/renderer/ui/generated/globe.tsx +18 -0
  116. package/src/renderer/ui/generated/heart-filled.tsx +16 -0
  117. package/src/renderer/ui/generated/heart.tsx +16 -0
  118. package/src/renderer/ui/generated/hourglass.tsx +21 -0
  119. package/src/renderer/ui/generated/hunt.tsx +20 -0
  120. package/src/renderer/ui/generated/incognito.tsx +19 -0
  121. package/src/renderer/ui/generated/index.ts +248 -0
  122. package/src/renderer/ui/generated/info.tsx +18 -0
  123. package/src/renderer/ui/generated/list.tsx +21 -0
  124. package/src/renderer/ui/generated/location.tsx +16 -0
  125. package/src/renderer/ui/generated/lock.tsx +19 -0
  126. package/src/renderer/ui/generated/mention.tsx +17 -0
  127. package/src/renderer/ui/generated/mic.tsx +18 -0
  128. package/src/renderer/ui/generated/overflow.tsx +20 -0
  129. package/src/renderer/ui/generated/pause.tsx +18 -0
  130. package/src/renderer/ui/generated/pending.tsx +18 -0
  131. package/src/renderer/ui/generated/play.tsx +16 -0
  132. package/src/renderer/ui/generated/plus.tsx +16 -0
  133. package/src/renderer/ui/generated/poll.tsx +17 -0
  134. package/src/renderer/ui/generated/profile.tsx +18 -0
  135. package/src/renderer/ui/generated/publish.tsx +17 -0
  136. package/src/renderer/ui/generated/radio-unchecked.tsx +16 -0
  137. package/src/renderer/ui/generated/reply.tsx +17 -0
  138. package/src/renderer/ui/generated/repost.tsx +19 -0
  139. package/src/renderer/ui/generated/right-now.tsx +22 -0
  140. package/src/renderer/ui/generated/search.tsx +18 -0
  141. package/src/renderer/ui/generated/send.tsx +17 -0
  142. package/src/renderer/ui/generated/settings.tsx +16 -0
  143. package/src/renderer/ui/generated/share.tsx +21 -0
  144. package/src/renderer/ui/generated/shield.tsx +17 -0
  145. package/src/renderer/ui/generated/sign-out.tsx +17 -0
  146. package/src/renderer/ui/generated/signal.tsx +16 -0
  147. package/src/renderer/ui/generated/star.tsx +16 -0
  148. package/src/renderer/ui/generated/story-effects.tsx +20 -0
  149. package/src/renderer/ui/generated/story-mention.tsx +18 -0
  150. package/src/renderer/ui/generated/story-music.tsx +18 -0
  151. package/src/renderer/ui/generated/story-sticker.tsx +19 -0
  152. package/src/renderer/ui/generated/story-text.tsx +17 -0
  153. package/src/renderer/ui/generated/story.tsx +18 -0
  154. package/src/renderer/ui/generated/tab-chat.tsx +19 -0
  155. package/src/renderer/ui/generated/tab-discover.tsx +19 -0
  156. package/src/renderer/ui/generated/tab-flash.tsx +16 -0
  157. package/src/renderer/ui/generated/tab-random.tsx +21 -0
  158. package/src/renderer/ui/generated/tab-vibes.tsx +16 -0
  159. package/src/renderer/ui/generated/thumbs-up-filled.tsx +16 -0
  160. package/src/renderer/ui/generated/thumbs-up.tsx +17 -0
  161. package/src/renderer/ui/generated/trash.tsx +18 -0
  162. package/src/renderer/ui/generated/travel.tsx +19 -0
  163. package/src/renderer/ui/generated/video.tsx +19 -0
  164. package/src/renderer/ui/generated/visibility-off.tsx +18 -0
  165. package/src/renderer/ui/generated/visibility.tsx +17 -0
  166. package/src/renderer/ui/generated/volume-off.tsx +17 -0
  167. package/src/renderer/ui/generated/volume-on.tsx +18 -0
  168. package/src/renderer/ui/generated/warning.tsx +18 -0
  169. package/src/renderer/ui/index.ts +2 -85
  170. package/src/renderer/ui/story-compose-header.tsx +2 -2
  171. package/src/renderer/ui/app-glyphs.tsx +0 -2082
  172. package/src/renderer/ui/compose-glyphs.tsx +0 -439
@@ -0,0 +1,19 @@
1
+ /* Generated by scripts/generate-app-icons.mjs — do not edit. */
2
+ import Svg, { Circle, Path, Rect } from 'react-native-svg';
3
+ import { m3Colors } from '../../theme/proulr-theme';
4
+ import type { AppIconGlyphProps } from '../app-icon-glyph-props';
5
+
6
+ export function VideoIcon({
7
+ color = m3Colors.primary,
8
+ size = 24,
9
+ }: AppIconGlyphProps) {
10
+ return (
11
+ <Svg width={size} height={size} viewBox="0 0 24 24" fill="none">
12
+ <Rect x={2.6} y={6.4} width={12.8} height={11.2} rx={2.3} fill={color} fillOpacity={0.32} />
13
+ <Rect x={2.6} y={6.4} width={12.8} height={11.2} rx={2.3} stroke={color} strokeLinecap="round" strokeLinejoin="round" fill="none" strokeWidth={1.8} />
14
+ <Circle cx={9} cy={12} r={2.3} fill={color} />
15
+ <Path fill={color} fillOpacity={0.35} d="M16.2 9.2 21.2 6.6v10.8l-5-2.6V9.2z" />
16
+ <Path fill={color} d="M16.6 10 20.4 8v8l-3.8-2V10z" />
17
+ </Svg>
18
+ );
19
+ }
@@ -0,0 +1,18 @@
1
+ /* Generated by scripts/generate-app-icons.mjs — do not edit. */
2
+ import Svg, { Circle, Path } from 'react-native-svg';
3
+ import { m3Colors } from '../../theme/proulr-theme';
4
+ import type { AppIconGlyphProps } from '../app-icon-glyph-props';
5
+
6
+ export function VisibilityOffIcon({
7
+ color = m3Colors.primary,
8
+ size = 24,
9
+ }: AppIconGlyphProps) {
10
+ return (
11
+ <Svg width={size} height={size} viewBox="0 0 24 24" fill="none">
12
+ <Path fill={color} fillOpacity={0.28} d="M12 4.8c5.8 0 10.4 4.6 11.2 7.2-.8 2.6-5.4 7.2-11.2 7.2S1.6 14.6.8 12C1.6 9.4 6.2 4.8 12 4.8z" />
13
+ <Path fill={color} fillRule="evenodd" d="M12 5.6c5.2 0 9.4 4.1 10.2 6.4-.8 2.3-5 6.4-10.2 6.4S2.6 14.3 1.8 12C2.6 9.7 6.8 5.6 12 5.6zm0 2.6a3.8 3.8 0 1 0 0 7.6 3.8 3.8 0 0 0 0-7.6z" />
14
+ <Circle cx={12} cy={12} r={1.55} fill={color} />
15
+ <Path stroke={color} strokeWidth={2.2} strokeLinecap="round" d="M4.2 5.2 19.8 18.8" />
16
+ </Svg>
17
+ );
18
+ }
@@ -0,0 +1,17 @@
1
+ /* Generated by scripts/generate-app-icons.mjs — do not edit. */
2
+ import Svg, { Circle, Path } from 'react-native-svg';
3
+ import { m3Colors } from '../../theme/proulr-theme';
4
+ import type { AppIconGlyphProps } from '../app-icon-glyph-props';
5
+
6
+ export function VisibilityIcon({
7
+ color = m3Colors.primary,
8
+ size = 24,
9
+ }: AppIconGlyphProps) {
10
+ return (
11
+ <Svg width={size} height={size} viewBox="0 0 24 24" fill="none">
12
+ <Path fill={color} fillOpacity={0.28} d="M12 4.8c5.8 0 10.4 4.6 11.2 7.2-.8 2.6-5.4 7.2-11.2 7.2S1.6 14.6.8 12C1.6 9.4 6.2 4.8 12 4.8z" />
13
+ <Path fill={color} fillRule="evenodd" d="M12 5.6c5.2 0 9.4 4.1 10.2 6.4-.8 2.3-5 6.4-10.2 6.4S2.6 14.3 1.8 12C2.6 9.7 6.8 5.6 12 5.6zm0 2.6a3.8 3.8 0 1 0 0 7.6 3.8 3.8 0 0 0 0-7.6z" />
14
+ <Circle cx={12} cy={12} r={1.55} fill={color} />
15
+ </Svg>
16
+ );
17
+ }
@@ -0,0 +1,17 @@
1
+ /* Generated by scripts/generate-app-icons.mjs — do not edit. */
2
+ import Svg, { Path } from 'react-native-svg';
3
+ import { m3Colors } from '../../theme/proulr-theme';
4
+ import type { AppIconGlyphProps } from '../app-icon-glyph-props';
5
+
6
+ export function VolumeOffIcon({
7
+ color = m3Colors.primary,
8
+ size = 24,
9
+ }: AppIconGlyphProps) {
10
+ return (
11
+ <Svg width={size} height={size} viewBox="0 0 24 24" fill="none">
12
+ <Path fill={color} fillOpacity={0.3} d="M4.2 8.8h3.8L12.6 4.4v15.2l-4.6-4.4H4.2V8.8z" />
13
+ <Path fill={color} d="M4.8 9.6h3L11.6 6v12l-3.8-3.6h-3V9.6z" />
14
+ <Path stroke={color} strokeLinecap="round" strokeLinejoin="round" fill="none" strokeWidth={2.1} d="M15.2 9.4l5 5M20.2 9.4l-5 5" />
15
+ </Svg>
16
+ );
17
+ }
@@ -0,0 +1,18 @@
1
+ /* Generated by scripts/generate-app-icons.mjs — do not edit. */
2
+ import Svg, { Path } from 'react-native-svg';
3
+ import { m3Colors } from '../../theme/proulr-theme';
4
+ import type { AppIconGlyphProps } from '../app-icon-glyph-props';
5
+
6
+ export function VolumeOnIcon({
7
+ color = m3Colors.primary,
8
+ size = 24,
9
+ }: AppIconGlyphProps) {
10
+ return (
11
+ <Svg width={size} height={size} viewBox="0 0 24 24" fill="none">
12
+ <Path fill={color} fillOpacity={0.3} d="M4.2 8.8h3.8L12.6 4.4v15.2l-4.6-4.4H4.2V8.8z" />
13
+ <Path fill={color} d="M4.8 9.6h3L11.6 6v12l-3.8-3.6h-3V9.6z" />
14
+ <Path stroke={color} strokeLinecap="round" strokeLinejoin="round" fill="none" strokeWidth={1.8} d="M15.2 9.2a3.4 3.4 0 0 1 0 5.6" />
15
+ <Path stroke={color} strokeLinecap="round" strokeLinejoin="round" fill="none" strokeWidth={1.8} d="M17.4 7a6 6 0 0 1 0 10" />
16
+ </Svg>
17
+ );
18
+ }
@@ -0,0 +1,18 @@
1
+ /* Generated by scripts/generate-app-icons.mjs — do not edit. */
2
+ import Svg, { Circle, Path } from 'react-native-svg';
3
+ import { m3Colors } from '../../theme/proulr-theme';
4
+ import type { AppIconGlyphProps } from '../app-icon-glyph-props';
5
+
6
+ export function WarningIcon({
7
+ color = m3Colors.primary,
8
+ size = 24,
9
+ }: AppIconGlyphProps) {
10
+ return (
11
+ <Svg width={size} height={size} viewBox="0 0 24 24" fill="none">
12
+ <Path fill={color} fillOpacity={0.3} d="M12 2.8 21.8 19.8H2.2L12 2.8z" />
13
+ <Path stroke={color} strokeLinecap="round" strokeLinejoin="round" fill="none" strokeWidth={1.9} d="M12 4.6 19.4 18.2H4.6L12 4.6z" />
14
+ <Path fill={color} d="M11.1 9.2h1.8v5h-1.8v-5z" />
15
+ <Circle cx={12} cy={16.4} r={1.15} fill={color} />
16
+ </Svg>
17
+ );
18
+ }
@@ -13,98 +13,15 @@ export { Chip } from './Chip';
13
13
  export { ChipRow } from './ChipRow';
14
14
  export { ChromeGlassLayer, ChromeGlassShell } from './ChromeGlass';
15
15
  export { ComposeAudiencePill } from './compose-audience-pill';
16
- export {
17
- ComposeCameraGlyph,
18
- ComposeCloseGlyph,
19
- ComposeFollowersGlyph,
20
- ComposeFollowingGlyph,
21
- ComposeGalleryGlyph,
22
- ComposeGlobeGlyph,
23
- ComposeLiveGlyph,
24
- ComposeMentionGlyph,
25
- ComposePostGlyph,
26
- ComposeStoryGlyph,
27
- ComposeTrashGlyph,
28
- ComposeVideoGlyph,
29
- } from './compose-glyphs';
30
- export {
31
- AppChromeArrowDownRightGlyph,
32
- AppChromeArrowRightGlyph,
33
- AppChromeArrowUpRightGlyph,
34
- AppChromeAttachmentGlyph,
35
- AppChromeBackGlyph,
36
- AppChromeBellGlyph,
37
- AppChromeBookmarkGlyph,
38
- AppChromeBoostGlyph,
39
- AppChromeChatGlyph,
40
- AppChromeCheckGlyph,
41
- AppChromeChevronDownGlyph,
42
- AppChromeChevronRightGlyph,
43
- AppChromeCloseGlyph,
44
- AppChromeCommunitiesGlyph,
45
- AppChromeCopyGlyph,
46
- AppChromeDownloadGlyph,
47
- AppChromeEditGlyph,
48
- AppChromeCropGlyph,
49
- AppChromeEventsGlyph,
50
- AppChromeFireGlyph,
51
- AppChromeRightNowGlyph,
52
- AppChromeFlashGlyph,
53
- AppChromeFlipCameraGlyph,
54
- AppChromeHeartFilledGlyph,
55
- AppChromeHeartGlyph,
56
- AppChromeHourglassGlyph,
57
- AppChromeHuntGlyph,
58
- AppChromeIncognitoGlyph,
59
- AppChromeInfoGlyph,
60
- AppChromeListGlyph,
61
- AppChromeLocationGlyph,
62
- AppChromeLockGlyph,
63
- AppChromeMicGlyph,
64
- AppChromeOverflowGlyph,
65
- AppChromePauseGlyph,
66
- AppChromePendingGlyph,
67
- AppChromePlayGlyph,
68
- AppChromePlusGlyph,
69
- AppChromePollGlyph,
70
- AppChromeProfileGlyph,
71
- AppChromePublishGlyph,
72
- AppChromeRadioUncheckedGlyph,
73
- AppChromeReplyGlyph,
74
- AppChromeRepostGlyph,
75
- AppChromeSearchGlyph,
76
- AppChromeSendGlyph,
77
- AppChromeSettingsGlyph,
78
- AppChromeShieldGlyph,
79
- AppChromeSignalGlyph,
80
- AppChromeSignOutGlyph,
81
- AppChromeStarGlyph,
82
- AppChromeStoryEffectsGlyph,
83
- AppChromeStoryGlyph,
84
- AppChromeStoryMentionGlyph,
85
- AppChromeStoryMusicGlyph,
86
- AppChromeStoryStickerGlyph,
87
- AppChromeStoryTextGlyph,
88
- AppChromeTabChatGlyph,
89
- AppChromeTabDiscoverGlyph,
90
- AppChromeTabFlashGlyph,
91
- AppChromeTabVibesGlyph,
92
- AppChromeThumbsUpFilledGlyph,
93
- AppChromeThumbsUpGlyph,
94
- AppChromeVisibilityGlyph,
95
- AppChromeVisibilityOffGlyph,
96
- AppChromeVolumeOffGlyph,
97
- AppChromeVolumeOnGlyph,
98
- AppChromeWarningGlyph,
99
- type AppChromeGlyphProps,
100
- } from './app-glyphs';
101
16
  export {
102
17
  AppIcon,
103
18
  APP_ICON_SIZE,
19
+ ICON_REGISTRY,
104
20
  isAppIconName,
105
21
  type AppIconName,
106
22
  type AppIconProps,
107
23
  } from './app-icon';
24
+ export type { AppIconGlyphProps } from './app-icon-glyph-props';
108
25
  export { ComposeMediaCarousel, type ComposeMediaCarouselItem } from './compose-media-carousel';
109
26
  export { ComposeMediaShortcut, COMPOSE_MEDIA_TILE_SIZE } from './compose-media-shortcut';
110
27
  export { ComposeRecentMediaGrid, type ComposeRecentMediaItem } from './compose-recent-media-grid';
@@ -1,7 +1,7 @@
1
1
  import { Pressable, StyleSheet, Text, View } from 'react-native';
2
2
  import { useSafeAreaInsets } from 'react-native-safe-area-context';
3
3
  import { fonts, m3Colors, m3Type, spacing } from '../theme/proulr-theme';
4
- import { ComposeCloseGlyph } from './compose-glyphs';
4
+ import { AppIcon } from './app-icon';
5
5
  import { StorySettingsGlyph } from './story-glyphs';
6
6
 
7
7
  export function StoryComposeHeader({
@@ -24,7 +24,7 @@ export function StoryComposeHeader({
24
24
  accessibilityLabel="Fechar"
25
25
  style={styles.sideBtn}
26
26
  >
27
- <ComposeCloseGlyph />
27
+ <AppIcon name="close" color={m3Colors.onSurface} size={18} />
28
28
  </Pressable>
29
29
 
30
30
  <Text style={styles.title} numberOfLines={1}>