Skip to content

Commit 00218b8

Browse files
RTL: fix directionality of direction sensitive icons
1 parent d9a3d24 commit 00218b8

File tree

2 files changed

+119
-59
lines changed

2 files changed

+119
-59
lines changed

lib/widgets/icons.dart

Lines changed: 116 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -25,178 +25,236 @@ abstract final class ZulipIcons {
2525
// BEGIN GENERATED ICON DATA
2626

2727
/// The Zulip custom icon "arrow_down".
28-
static const IconData arrow_down = IconData(0xf101, fontFamily: "Zulip Icons");
28+
static const IconData arrow_down = IconData(0xf101, fontFamily: "Zulip Icons",
29+
matchTextDirection: false);
2930

3031
/// The Zulip custom icon "arrow_left_right".
31-
static const IconData arrow_left_right = IconData(0xf102, fontFamily: "Zulip Icons");
32+
static const IconData arrow_left_right = IconData(0xf102, fontFamily: "Zulip Icons",
33+
matchTextDirection: true);
3234

3335
/// The Zulip custom icon "arrow_right".
34-
static const IconData arrow_right = IconData(0xf103, fontFamily: "Zulip Icons");
36+
static const IconData arrow_right = IconData(0xf103, fontFamily: "Zulip Icons",
37+
matchTextDirection: true);
3538

3639
/// The Zulip custom icon "at_sign".
37-
static const IconData at_sign = IconData(0xf104, fontFamily: "Zulip Icons");
40+
static const IconData at_sign = IconData(0xf104, fontFamily: "Zulip Icons",
41+
matchTextDirection: false);
3842

3943
/// The Zulip custom icon "attach_file".
40-
static const IconData attach_file = IconData(0xf105, fontFamily: "Zulip Icons");
44+
static const IconData attach_file = IconData(0xf105, fontFamily: "Zulip Icons",
45+
matchTextDirection: false);
4146

4247
/// The Zulip custom icon "bot".
43-
static const IconData bot = IconData(0xf106, fontFamily: "Zulip Icons");
48+
static const IconData bot = IconData(0xf106, fontFamily: "Zulip Icons",
49+
matchTextDirection: false);
4450

4551
/// The Zulip custom icon "camera".
46-
static const IconData camera = IconData(0xf107, fontFamily: "Zulip Icons");
52+
static const IconData camera = IconData(0xf107, fontFamily: "Zulip Icons",
53+
matchTextDirection: false);
4754

4855
/// The Zulip custom icon "check".
49-
static const IconData check = IconData(0xf108, fontFamily: "Zulip Icons");
56+
static const IconData check = IconData(0xf108, fontFamily: "Zulip Icons",
57+
matchTextDirection: false);
5058

5159
/// The Zulip custom icon "check_check".
52-
static const IconData check_check = IconData(0xf109, fontFamily: "Zulip Icons");
60+
static const IconData check_check = IconData(0xf109, fontFamily: "Zulip Icons",
61+
matchTextDirection: false);
5362

5463
/// The Zulip custom icon "check_circle_checked".
55-
static const IconData check_circle_checked = IconData(0xf10a, fontFamily: "Zulip Icons");
64+
static const IconData check_circle_checked = IconData(0xf10a, fontFamily: "Zulip Icons",
65+
matchTextDirection: false);
5666

5767
/// The Zulip custom icon "check_circle_unchecked".
58-
static const IconData check_circle_unchecked = IconData(0xf10b, fontFamily: "Zulip Icons");
68+
static const IconData check_circle_unchecked = IconData(0xf10b, fontFamily: "Zulip Icons",
69+
matchTextDirection: false);
5970

6071
/// The Zulip custom icon "check_remove".
61-
static const IconData check_remove = IconData(0xf10c, fontFamily: "Zulip Icons");
72+
static const IconData check_remove = IconData(0xf10c, fontFamily: "Zulip Icons",
73+
matchTextDirection: false);
6274

6375
/// The Zulip custom icon "chevron_down".
64-
static const IconData chevron_down = IconData(0xf10d, fontFamily: "Zulip Icons");
76+
static const IconData chevron_down = IconData(0xf10d, fontFamily: "Zulip Icons",
77+
matchTextDirection: false);
6578

6679
/// The Zulip custom icon "chevron_right".
67-
static const IconData chevron_right = IconData(0xf10e, fontFamily: "Zulip Icons");
80+
static const IconData chevron_right = IconData(0xf10e, fontFamily: "Zulip Icons",
81+
matchTextDirection: true);
6882

6983
/// The Zulip custom icon "circle_x".
70-
static const IconData circle_x = IconData(0xf10f, fontFamily: "Zulip Icons");
84+
static const IconData circle_x = IconData(0xf10f, fontFamily: "Zulip Icons",
85+
matchTextDirection: false);
7186

7287
/// The Zulip custom icon "clock".
73-
static const IconData clock = IconData(0xf110, fontFamily: "Zulip Icons");
88+
static const IconData clock = IconData(0xf110, fontFamily: "Zulip Icons",
89+
matchTextDirection: false);
7490

7591
/// The Zulip custom icon "contacts".
76-
static const IconData contacts = IconData(0xf111, fontFamily: "Zulip Icons");
92+
static const IconData contacts = IconData(0xf111, fontFamily: "Zulip Icons",
93+
matchTextDirection: false);
7794

7895
/// The Zulip custom icon "copy".
79-
static const IconData copy = IconData(0xf112, fontFamily: "Zulip Icons");
96+
static const IconData copy = IconData(0xf112, fontFamily: "Zulip Icons",
97+
matchTextDirection: false);
8098

8199
/// The Zulip custom icon "edit".
82-
static const IconData edit = IconData(0xf113, fontFamily: "Zulip Icons");
100+
static const IconData edit = IconData(0xf113, fontFamily: "Zulip Icons",
101+
matchTextDirection: false);
83102

84103
/// The Zulip custom icon "eye".
85-
static const IconData eye = IconData(0xf114, fontFamily: "Zulip Icons");
104+
static const IconData eye = IconData(0xf114, fontFamily: "Zulip Icons",
105+
matchTextDirection: false);
86106

87107
/// The Zulip custom icon "eye_off".
88-
static const IconData eye_off = IconData(0xf115, fontFamily: "Zulip Icons");
108+
static const IconData eye_off = IconData(0xf115, fontFamily: "Zulip Icons",
109+
matchTextDirection: false);
89110

90111
/// The Zulip custom icon "follow".
91-
static const IconData follow = IconData(0xf116, fontFamily: "Zulip Icons");
112+
static const IconData follow = IconData(0xf116, fontFamily: "Zulip Icons",
113+
matchTextDirection: false);
92114

93115
/// The Zulip custom icon "format_quote".
94-
static const IconData format_quote = IconData(0xf117, fontFamily: "Zulip Icons");
116+
static const IconData format_quote = IconData(0xf117, fontFamily: "Zulip Icons",
117+
matchTextDirection: false);
95118

96119
/// The Zulip custom icon "globe".
97-
static const IconData globe = IconData(0xf118, fontFamily: "Zulip Icons");
120+
static const IconData globe = IconData(0xf118, fontFamily: "Zulip Icons",
121+
matchTextDirection: false);
98122

99123
/// The Zulip custom icon "group_dm".
100-
static const IconData group_dm = IconData(0xf119, fontFamily: "Zulip Icons");
124+
static const IconData group_dm = IconData(0xf119, fontFamily: "Zulip Icons",
125+
matchTextDirection: false);
101126

102127
/// The Zulip custom icon "hash_italic".
103-
static const IconData hash_italic = IconData(0xf11a, fontFamily: "Zulip Icons");
128+
static const IconData hash_italic = IconData(0xf11a, fontFamily: "Zulip Icons",
129+
matchTextDirection: false);
104130

105131
/// The Zulip custom icon "hash_sign".
106-
static const IconData hash_sign = IconData(0xf11b, fontFamily: "Zulip Icons");
132+
static const IconData hash_sign = IconData(0xf11b, fontFamily: "Zulip Icons",
133+
matchTextDirection: false);
107134

108135
/// The Zulip custom icon "image".
109-
static const IconData image = IconData(0xf11c, fontFamily: "Zulip Icons");
136+
static const IconData image = IconData(0xf11c, fontFamily: "Zulip Icons",
137+
matchTextDirection: false);
110138

111139
/// The Zulip custom icon "inbox".
112-
static const IconData inbox = IconData(0xf11d, fontFamily: "Zulip Icons");
140+
static const IconData inbox = IconData(0xf11d, fontFamily: "Zulip Icons",
141+
matchTextDirection: false);
113142

114143
/// The Zulip custom icon "info".
115-
static const IconData info = IconData(0xf11e, fontFamily: "Zulip Icons");
144+
static const IconData info = IconData(0xf11e, fontFamily: "Zulip Icons",
145+
matchTextDirection: false);
116146

117147
/// The Zulip custom icon "inherit".
118-
static const IconData inherit = IconData(0xf11f, fontFamily: "Zulip Icons");
148+
static const IconData inherit = IconData(0xf11f, fontFamily: "Zulip Icons",
149+
matchTextDirection: false);
119150

120151
/// The Zulip custom icon "language".
121-
static const IconData language = IconData(0xf120, fontFamily: "Zulip Icons");
152+
static const IconData language = IconData(0xf120, fontFamily: "Zulip Icons",
153+
matchTextDirection: false);
122154

123155
/// The Zulip custom icon "link".
124-
static const IconData link = IconData(0xf121, fontFamily: "Zulip Icons");
156+
static const IconData link = IconData(0xf121, fontFamily: "Zulip Icons",
157+
matchTextDirection: false);
125158

126159
/// The Zulip custom icon "lock".
127-
static const IconData lock = IconData(0xf122, fontFamily: "Zulip Icons");
160+
static const IconData lock = IconData(0xf122, fontFamily: "Zulip Icons",
161+
matchTextDirection: false);
128162

129163
/// The Zulip custom icon "menu".
130-
static const IconData menu = IconData(0xf123, fontFamily: "Zulip Icons");
164+
static const IconData menu = IconData(0xf123, fontFamily: "Zulip Icons",
165+
matchTextDirection: false);
131166

132167
/// The Zulip custom icon "message_checked".
133-
static const IconData message_checked = IconData(0xf124, fontFamily: "Zulip Icons");
168+
static const IconData message_checked = IconData(0xf124, fontFamily: "Zulip Icons",
169+
matchTextDirection: false);
134170

135171
/// The Zulip custom icon "message_feed".
136-
static const IconData message_feed = IconData(0xf125, fontFamily: "Zulip Icons");
172+
static const IconData message_feed = IconData(0xf125, fontFamily: "Zulip Icons",
173+
matchTextDirection: false);
137174

138175
/// The Zulip custom icon "more_horizontal".
139-
static const IconData more_horizontal = IconData(0xf126, fontFamily: "Zulip Icons");
176+
static const IconData more_horizontal = IconData(0xf126, fontFamily: "Zulip Icons",
177+
matchTextDirection: false);
140178

141179
/// The Zulip custom icon "mute".
142-
static const IconData mute = IconData(0xf127, fontFamily: "Zulip Icons");
180+
static const IconData mute = IconData(0xf127, fontFamily: "Zulip Icons",
181+
matchTextDirection: false);
143182

144183
/// The Zulip custom icon "person".
145-
static const IconData person = IconData(0xf128, fontFamily: "Zulip Icons");
184+
static const IconData person = IconData(0xf128, fontFamily: "Zulip Icons",
185+
matchTextDirection: false);
146186

147187
/// The Zulip custom icon "plus".
148-
static const IconData plus = IconData(0xf129, fontFamily: "Zulip Icons");
188+
static const IconData plus = IconData(0xf129, fontFamily: "Zulip Icons",
189+
matchTextDirection: false);
149190

150191
/// The Zulip custom icon "read_receipts".
151-
static const IconData read_receipts = IconData(0xf12a, fontFamily: "Zulip Icons");
192+
static const IconData read_receipts = IconData(0xf12a, fontFamily: "Zulip Icons",
193+
matchTextDirection: false);
152194

153195
/// The Zulip custom icon "remove".
154-
static const IconData remove = IconData(0xf12b, fontFamily: "Zulip Icons");
196+
static const IconData remove = IconData(0xf12b, fontFamily: "Zulip Icons",
197+
matchTextDirection: false);
155198

156199
/// The Zulip custom icon "search".
157-
static const IconData search = IconData(0xf12c, fontFamily: "Zulip Icons");
200+
static const IconData search = IconData(0xf12c, fontFamily: "Zulip Icons",
201+
matchTextDirection: false);
158202

159203
/// The Zulip custom icon "see_who_reacted".
160-
static const IconData see_who_reacted = IconData(0xf12d, fontFamily: "Zulip Icons");
204+
static const IconData see_who_reacted = IconData(0xf12d, fontFamily: "Zulip Icons",
205+
matchTextDirection: false);
161206

162207
/// The Zulip custom icon "send".
163-
static const IconData send = IconData(0xf12e, fontFamily: "Zulip Icons");
208+
static const IconData send = IconData(0xf12e, fontFamily: "Zulip Icons",
209+
matchTextDirection: false);
164210

165211
/// The Zulip custom icon "settings".
166-
static const IconData settings = IconData(0xf12f, fontFamily: "Zulip Icons");
212+
static const IconData settings = IconData(0xf12f, fontFamily: "Zulip Icons",
213+
matchTextDirection: false);
167214

168215
/// The Zulip custom icon "share".
169-
static const IconData share = IconData(0xf130, fontFamily: "Zulip Icons");
216+
static const IconData share = IconData(0xf130, fontFamily: "Zulip Icons",
217+
matchTextDirection: false);
170218

171219
/// The Zulip custom icon "share_ios".
172-
static const IconData share_ios = IconData(0xf131, fontFamily: "Zulip Icons");
220+
static const IconData share_ios = IconData(0xf131, fontFamily: "Zulip Icons",
221+
matchTextDirection: false);
173222

174223
/// The Zulip custom icon "smile".
175-
static const IconData smile = IconData(0xf132, fontFamily: "Zulip Icons");
224+
static const IconData smile = IconData(0xf132, fontFamily: "Zulip Icons",
225+
matchTextDirection: false);
176226

177227
/// The Zulip custom icon "star".
178-
static const IconData star = IconData(0xf133, fontFamily: "Zulip Icons");
228+
static const IconData star = IconData(0xf133, fontFamily: "Zulip Icons",
229+
matchTextDirection: false);
179230

180231
/// The Zulip custom icon "star_filled".
181-
static const IconData star_filled = IconData(0xf134, fontFamily: "Zulip Icons");
232+
static const IconData star_filled = IconData(0xf134, fontFamily: "Zulip Icons",
233+
matchTextDirection: false);
182234

183235
/// The Zulip custom icon "three_person".
184-
static const IconData three_person = IconData(0xf135, fontFamily: "Zulip Icons");
236+
static const IconData three_person = IconData(0xf135, fontFamily: "Zulip Icons",
237+
matchTextDirection: false);
185238

186239
/// The Zulip custom icon "topic".
187-
static const IconData topic = IconData(0xf136, fontFamily: "Zulip Icons");
240+
static const IconData topic = IconData(0xf136, fontFamily: "Zulip Icons",
241+
matchTextDirection: false);
188242

189243
/// The Zulip custom icon "topics".
190-
static const IconData topics = IconData(0xf137, fontFamily: "Zulip Icons");
244+
static const IconData topics = IconData(0xf137, fontFamily: "Zulip Icons",
245+
matchTextDirection: false);
191246

192247
/// The Zulip custom icon "trash".
193-
static const IconData trash = IconData(0xf138, fontFamily: "Zulip Icons");
248+
static const IconData trash = IconData(0xf138, fontFamily: "Zulip Icons",
249+
matchTextDirection: false);
194250

195251
/// The Zulip custom icon "two_person".
196-
static const IconData two_person = IconData(0xf139, fontFamily: "Zulip Icons");
252+
static const IconData two_person = IconData(0xf139, fontFamily: "Zulip Icons",
253+
matchTextDirection: false);
197254

198255
/// The Zulip custom icon "unmute".
199-
static const IconData unmute = IconData(0xf13a, fontFamily: "Zulip Icons");
256+
static const IconData unmute = IconData(0xf13a, fontFamily: "Zulip Icons",
257+
matchTextDirection: false);
200258

201259
// END GENERATED ICON DATA
202260
}

tools/icons/build-icon-font.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,10 +64,12 @@ async function main() {
6464
const template = fs.readFileSync(dataTemplateFile, 'utf8');
6565
const generated = Object.entries(codepoints).map(([name, codepoint]) => {
6666
const codepointHex = "0x" + codepoint.toString(16);
67+
const isDirectonal = /left|right/.test(name) ? "true" : "false";
6768
return `\
6869
6970
/// The Zulip custom icon "${name}".
70-
static const IconData ${name} = IconData(${codepointHex}, fontFamily: "${fontName}");
71+
static const IconData ${name} = IconData(${codepointHex}, fontFamily: "${fontName}",
72+
matchTextDirection: ${isDirectonal});
7173
`;
7274
}).join("");
7375
const output = template.replace(

0 commit comments

Comments
 (0)