@hero-design/rn-work-uikit 1.8.1 → 1.9.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.cursor/rules/performance-optimization.mdc +64 -0
- package/.cursor/rules/rn-work-uikit-rules.mdc +202 -0
- package/.cursor/rules/testing-rules.mdc +114 -0
- package/CHANGELOG.md +23 -0
- package/assets/fonts/BeVietnamPro-BoldItalic.ttf +0 -0
- package/assets/fonts/BeVietnamPro-LightItalic.ttf +0 -0
- package/assets/fonts/BeVietnamPro-RegularItalic.ttf +0 -0
- package/assets/fonts/BeVietnamPro-SemiBoldItalic.ttf +0 -0
- package/assets/fonts/Saiga-LightItalic.otf +0 -0
- package/assets/fonts/Saiga-MediumItalic.otf +0 -0
- package/assets/fonts/Saiga-RegularItalic.otf +0 -0
- package/assets/fonts/hero-icons-mobile.ttf +0 -0
- package/lib/index.js +460 -389
- package/package.json +6 -7
- package/src/components/DatePicker/__tests__/__snapshots__/index.spec.tsx.snap +15 -5
- package/src/components/FormGroup/__tests__/__snapshots__/index.spec.tsx.snap +5 -0
- package/src/components/Select/__tests__/__snapshots__/index.spec.tsx.snap +11 -4
- package/src/components/TextInput/__tests__/__snapshots__/StyledTextInput.spec.tsx.snap +12 -0
- package/src/components/TextInput/__tests__/__snapshots__/index.spec.tsx.snap +56 -20
- package/src/theme/__tests__/__snapshots__/index.spec.ts.snap +24 -10
- package/.cursorrules +0 -57
- package/src/utils/hooks.ts +0 -10
- package/stats/1.8.1/rn-work-uikit-stats.html +0 -4844
|
@@ -142,6 +142,7 @@ exports[`TextInput when user applies custom styling should respect user-provided
|
|
|
142
142
|
testID="input-label-text"
|
|
143
143
|
themeFontWeight="regular"
|
|
144
144
|
themeIntent="body"
|
|
145
|
+
themeIsItalic={false}
|
|
145
146
|
themeState="filled"
|
|
146
147
|
>
|
|
147
148
|
Amount (AUD)
|
|
@@ -211,7 +212,7 @@ exports[`TextInput when user applies custom styling should respect user-provided
|
|
|
211
212
|
themeIntent="text"
|
|
212
213
|
themeSize="xsmall"
|
|
213
214
|
>
|
|
214
|
-
|
|
215
|
+
|
|
215
216
|
</Text>
|
|
216
217
|
</View>
|
|
217
218
|
</View>
|
|
@@ -300,6 +301,7 @@ exports[`TextInput when user applies custom styling should respect user-provided
|
|
|
300
301
|
}
|
|
301
302
|
themeFontWeight="regular"
|
|
302
303
|
themeIntent="body"
|
|
304
|
+
themeIsItalic={false}
|
|
303
305
|
>
|
|
304
306
|
This is helper text
|
|
305
307
|
</Text>
|
|
@@ -331,6 +333,7 @@ exports[`TextInput when user applies custom styling should respect user-provided
|
|
|
331
333
|
}
|
|
332
334
|
themeFontWeight="regular"
|
|
333
335
|
themeIntent="body"
|
|
336
|
+
themeIsItalic={false}
|
|
334
337
|
themeState="filled"
|
|
335
338
|
>
|
|
336
339
|
4
|
|
@@ -498,6 +501,7 @@ exports[`TextInput when user chooses textarea variant should provide multiline t
|
|
|
498
501
|
testID="input-label-text"
|
|
499
502
|
themeFontWeight="regular"
|
|
500
503
|
themeIntent="body"
|
|
504
|
+
themeIsItalic={false}
|
|
501
505
|
themeState="filled"
|
|
502
506
|
>
|
|
503
507
|
Amount (AUD)
|
|
@@ -527,6 +531,7 @@ exports[`TextInput when user chooses textarea variant should provide multiline t
|
|
|
527
531
|
}
|
|
528
532
|
themeFontWeight="regular"
|
|
529
533
|
themeIntent="body"
|
|
534
|
+
themeIsItalic={false}
|
|
530
535
|
themeState="filled"
|
|
531
536
|
>
|
|
532
537
|
(Optional)
|
|
@@ -777,6 +782,7 @@ exports[`TextInput when user encounters a disabled field should display content
|
|
|
777
782
|
testID="input-label-text"
|
|
778
783
|
themeFontWeight="regular"
|
|
779
784
|
themeIntent="body"
|
|
785
|
+
themeIsItalic={false}
|
|
780
786
|
themeState="disabled"
|
|
781
787
|
>
|
|
782
788
|
Amount (AUD)
|
|
@@ -806,6 +812,7 @@ exports[`TextInput when user encounters a disabled field should display content
|
|
|
806
812
|
}
|
|
807
813
|
themeFontWeight="regular"
|
|
808
814
|
themeIntent="body"
|
|
815
|
+
themeIsItalic={false}
|
|
809
816
|
themeState="disabled"
|
|
810
817
|
>
|
|
811
818
|
(Optional)
|
|
@@ -1055,6 +1062,7 @@ exports[`TextInput when user encounters a read-only field should display content
|
|
|
1055
1062
|
testID="input-label-text"
|
|
1056
1063
|
themeFontWeight="regular"
|
|
1057
1064
|
themeIntent="body"
|
|
1065
|
+
themeIsItalic={false}
|
|
1058
1066
|
themeState="readonly"
|
|
1059
1067
|
>
|
|
1060
1068
|
Amount (AUD)
|
|
@@ -1084,6 +1092,7 @@ exports[`TextInput when user encounters a read-only field should display content
|
|
|
1084
1092
|
}
|
|
1085
1093
|
themeFontWeight="regular"
|
|
1086
1094
|
themeIntent="body"
|
|
1095
|
+
themeIsItalic={false}
|
|
1087
1096
|
themeState="readonly"
|
|
1088
1097
|
>
|
|
1089
1098
|
(Optional)
|
|
@@ -1153,7 +1162,7 @@ exports[`TextInput when user encounters a read-only field should display content
|
|
|
1153
1162
|
themeIntent="text"
|
|
1154
1163
|
themeSize="xsmall"
|
|
1155
1164
|
>
|
|
1156
|
-
|
|
1165
|
+
|
|
1157
1166
|
</Text>
|
|
1158
1167
|
</View>
|
|
1159
1168
|
</View>
|
|
@@ -1269,7 +1278,7 @@ exports[`TextInput when user encounters a read-only field should display content
|
|
|
1269
1278
|
themeIntent="text"
|
|
1270
1279
|
themeSize="medium"
|
|
1271
1280
|
>
|
|
1272
|
-
|
|
1281
|
+
|
|
1273
1282
|
</Text>
|
|
1274
1283
|
</View>
|
|
1275
1284
|
</Pressable>
|
|
@@ -1417,6 +1426,7 @@ exports[`TextInput when user has entered text should show the input content and
|
|
|
1417
1426
|
testID="input-label-text"
|
|
1418
1427
|
themeFontWeight="regular"
|
|
1419
1428
|
themeIntent="body"
|
|
1429
|
+
themeIsItalic={false}
|
|
1420
1430
|
themeState="filled"
|
|
1421
1431
|
>
|
|
1422
1432
|
Amount (AUD)
|
|
@@ -1446,6 +1456,7 @@ exports[`TextInput when user has entered text should show the input content and
|
|
|
1446
1456
|
}
|
|
1447
1457
|
themeFontWeight="regular"
|
|
1448
1458
|
themeIntent="body"
|
|
1459
|
+
themeIsItalic={false}
|
|
1449
1460
|
themeState="filled"
|
|
1450
1461
|
>
|
|
1451
1462
|
(Optional)
|
|
@@ -1515,7 +1526,7 @@ exports[`TextInput when user has entered text should show the input content and
|
|
|
1515
1526
|
themeIntent="text"
|
|
1516
1527
|
themeSize="xsmall"
|
|
1517
1528
|
>
|
|
1518
|
-
|
|
1529
|
+
|
|
1519
1530
|
</Text>
|
|
1520
1531
|
</View>
|
|
1521
1532
|
</View>
|
|
@@ -1631,7 +1642,7 @@ exports[`TextInput when user has entered text should show the input content and
|
|
|
1631
1642
|
themeIntent="text"
|
|
1632
1643
|
themeSize="medium"
|
|
1633
1644
|
>
|
|
1634
|
-
|
|
1645
|
+
|
|
1635
1646
|
</Text>
|
|
1636
1647
|
</View>
|
|
1637
1648
|
</Pressable>
|
|
@@ -1779,6 +1790,7 @@ exports[`TextInput when user interacts with placeholder text starting from empty
|
|
|
1779
1790
|
testID="input-label-text"
|
|
1780
1791
|
themeFontWeight="regular"
|
|
1781
1792
|
themeIntent="body"
|
|
1793
|
+
themeIsItalic={false}
|
|
1782
1794
|
themeState="default"
|
|
1783
1795
|
>
|
|
1784
1796
|
Amount (AUD)
|
|
@@ -1848,7 +1860,7 @@ exports[`TextInput when user interacts with placeholder text starting from empty
|
|
|
1848
1860
|
themeIntent="text"
|
|
1849
1861
|
themeSize="xsmall"
|
|
1850
1862
|
>
|
|
1851
|
-
|
|
1863
|
+
|
|
1852
1864
|
</Text>
|
|
1853
1865
|
</View>
|
|
1854
1866
|
</View>
|
|
@@ -1934,6 +1946,7 @@ exports[`TextInput when user interacts with placeholder text starting from empty
|
|
|
1934
1946
|
}
|
|
1935
1947
|
themeFontWeight="regular"
|
|
1936
1948
|
themeIntent="body"
|
|
1949
|
+
themeIsItalic={false}
|
|
1937
1950
|
>
|
|
1938
1951
|
This is helper text
|
|
1939
1952
|
</Text>
|
|
@@ -2098,6 +2111,7 @@ exports[`TextInput when user needs programmatic control should provide ref metho
|
|
|
2098
2111
|
testID="input-label-text"
|
|
2099
2112
|
themeFontWeight="regular"
|
|
2100
2113
|
themeIntent="body"
|
|
2114
|
+
themeIsItalic={false}
|
|
2101
2115
|
themeState="filled"
|
|
2102
2116
|
>
|
|
2103
2117
|
Amount (AUD)
|
|
@@ -2127,6 +2141,7 @@ exports[`TextInput when user needs programmatic control should provide ref metho
|
|
|
2127
2141
|
}
|
|
2128
2142
|
themeFontWeight="regular"
|
|
2129
2143
|
themeIntent="body"
|
|
2144
|
+
themeIsItalic={false}
|
|
2130
2145
|
themeState="filled"
|
|
2131
2146
|
>
|
|
2132
2147
|
(Optional)
|
|
@@ -2376,6 +2391,7 @@ exports[`TextInput when user provides default values starting with pre-filled co
|
|
|
2376
2391
|
testID="input-label-text"
|
|
2377
2392
|
themeFontWeight="regular"
|
|
2378
2393
|
themeIntent="body"
|
|
2394
|
+
themeIsItalic={false}
|
|
2379
2395
|
themeState="filled"
|
|
2380
2396
|
>
|
|
2381
2397
|
Amount (AUD)
|
|
@@ -2445,7 +2461,7 @@ exports[`TextInput when user provides default values starting with pre-filled co
|
|
|
2445
2461
|
themeIntent="text"
|
|
2446
2462
|
themeSize="xsmall"
|
|
2447
2463
|
>
|
|
2448
|
-
|
|
2464
|
+
|
|
2449
2465
|
</Text>
|
|
2450
2466
|
</View>
|
|
2451
2467
|
</View>
|
|
@@ -2533,6 +2549,7 @@ exports[`TextInput when user provides default values starting with pre-filled co
|
|
|
2533
2549
|
}
|
|
2534
2550
|
themeFontWeight="regular"
|
|
2535
2551
|
themeIntent="body"
|
|
2552
|
+
themeIsItalic={false}
|
|
2536
2553
|
>
|
|
2537
2554
|
This is helper text
|
|
2538
2555
|
</Text>
|
|
@@ -2564,6 +2581,7 @@ exports[`TextInput when user provides default values starting with pre-filled co
|
|
|
2564
2581
|
}
|
|
2565
2582
|
themeFontWeight="regular"
|
|
2566
2583
|
themeIntent="body"
|
|
2584
|
+
themeIsItalic={false}
|
|
2567
2585
|
themeState="filled"
|
|
2568
2586
|
>
|
|
2569
2587
|
4
|
|
@@ -2731,6 +2749,7 @@ exports[`TextInput when user provides default values when both default and contr
|
|
|
2731
2749
|
testID="input-label-text"
|
|
2732
2750
|
themeFontWeight="regular"
|
|
2733
2751
|
themeIntent="body"
|
|
2752
|
+
themeIsItalic={false}
|
|
2734
2753
|
themeState="filled"
|
|
2735
2754
|
>
|
|
2736
2755
|
Amount (AUD)
|
|
@@ -2800,7 +2819,7 @@ exports[`TextInput when user provides default values when both default and contr
|
|
|
2800
2819
|
themeIntent="text"
|
|
2801
2820
|
themeSize="xsmall"
|
|
2802
2821
|
>
|
|
2803
|
-
|
|
2822
|
+
|
|
2804
2823
|
</Text>
|
|
2805
2824
|
</View>
|
|
2806
2825
|
</View>
|
|
@@ -2889,6 +2908,7 @@ exports[`TextInput when user provides default values when both default and contr
|
|
|
2889
2908
|
}
|
|
2890
2909
|
themeFontWeight="regular"
|
|
2891
2910
|
themeIntent="body"
|
|
2911
|
+
themeIsItalic={false}
|
|
2892
2912
|
>
|
|
2893
2913
|
This is helper text
|
|
2894
2914
|
</Text>
|
|
@@ -2920,6 +2940,7 @@ exports[`TextInput when user provides default values when both default and contr
|
|
|
2920
2940
|
}
|
|
2921
2941
|
themeFontWeight="regular"
|
|
2922
2942
|
themeIntent="body"
|
|
2943
|
+
themeIsItalic={false}
|
|
2923
2944
|
themeState="filled"
|
|
2924
2945
|
>
|
|
2925
2946
|
4
|
|
@@ -3087,6 +3108,7 @@ exports[`TextInput when user sees a loading state should show loading indicator
|
|
|
3087
3108
|
testID="input-label-text"
|
|
3088
3109
|
themeFontWeight="regular"
|
|
3089
3110
|
themeIntent="body"
|
|
3111
|
+
themeIsItalic={false}
|
|
3090
3112
|
themeState="readonly"
|
|
3091
3113
|
>
|
|
3092
3114
|
Amount (AUD)
|
|
@@ -3116,6 +3138,7 @@ exports[`TextInput when user sees a loading state should show loading indicator
|
|
|
3116
3138
|
}
|
|
3117
3139
|
themeFontWeight="regular"
|
|
3118
3140
|
themeIntent="body"
|
|
3141
|
+
themeIsItalic={false}
|
|
3119
3142
|
themeState="readonly"
|
|
3120
3143
|
>
|
|
3121
3144
|
(Optional)
|
|
@@ -3185,7 +3208,7 @@ exports[`TextInput when user sees a loading state should show loading indicator
|
|
|
3185
3208
|
themeIntent="text"
|
|
3186
3209
|
themeSize="xsmall"
|
|
3187
3210
|
>
|
|
3188
|
-
|
|
3211
|
+
|
|
3189
3212
|
</Text>
|
|
3190
3213
|
</View>
|
|
3191
3214
|
</View>
|
|
@@ -3319,7 +3342,7 @@ exports[`TextInput when user sees a loading state should show loading indicator
|
|
|
3319
3342
|
themeIntent="text"
|
|
3320
3343
|
themeSize="medium"
|
|
3321
3344
|
>
|
|
3322
|
-
|
|
3345
|
+
|
|
3323
3346
|
</Text>
|
|
3324
3347
|
</AnimatedView>
|
|
3325
3348
|
</View>
|
|
@@ -3468,6 +3491,7 @@ exports[`TextInput when user sees a required field should indicate the field is
|
|
|
3468
3491
|
testID="input-label-text"
|
|
3469
3492
|
themeFontWeight="regular"
|
|
3470
3493
|
themeIntent="body"
|
|
3494
|
+
themeIsItalic={false}
|
|
3471
3495
|
themeState="default"
|
|
3472
3496
|
>
|
|
3473
3497
|
Amount (AUD)
|
|
@@ -3537,7 +3561,7 @@ exports[`TextInput when user sees a required field should indicate the field is
|
|
|
3537
3561
|
themeIntent="text"
|
|
3538
3562
|
themeSize="xsmall"
|
|
3539
3563
|
>
|
|
3540
|
-
|
|
3564
|
+
|
|
3541
3565
|
</Text>
|
|
3542
3566
|
</View>
|
|
3543
3567
|
</View>
|
|
@@ -3652,7 +3676,7 @@ exports[`TextInput when user sees a required field should indicate the field is
|
|
|
3652
3676
|
themeIntent="text"
|
|
3653
3677
|
themeSize="medium"
|
|
3654
3678
|
>
|
|
3655
|
-
|
|
3679
|
+
|
|
3656
3680
|
</Text>
|
|
3657
3681
|
</View>
|
|
3658
3682
|
</Pressable>
|
|
@@ -3800,6 +3824,7 @@ exports[`TextInput when user sees a textarea with character count should display
|
|
|
3800
3824
|
testID="input-label-text"
|
|
3801
3825
|
themeFontWeight="regular"
|
|
3802
3826
|
themeIntent="body"
|
|
3827
|
+
themeIsItalic={false}
|
|
3803
3828
|
themeState="filled"
|
|
3804
3829
|
>
|
|
3805
3830
|
Amount (AUD)
|
|
@@ -3829,6 +3854,7 @@ exports[`TextInput when user sees a textarea with character count should display
|
|
|
3829
3854
|
}
|
|
3830
3855
|
themeFontWeight="regular"
|
|
3831
3856
|
themeIntent="body"
|
|
3857
|
+
themeIsItalic={false}
|
|
3832
3858
|
themeState="filled"
|
|
3833
3859
|
>
|
|
3834
3860
|
(Optional)
|
|
@@ -3898,7 +3924,7 @@ exports[`TextInput when user sees a textarea with character count should display
|
|
|
3898
3924
|
themeIntent="text"
|
|
3899
3925
|
themeSize="xsmall"
|
|
3900
3926
|
>
|
|
3901
|
-
|
|
3927
|
+
|
|
3902
3928
|
</Text>
|
|
3903
3929
|
</View>
|
|
3904
3930
|
</View>
|
|
@@ -3997,6 +4023,7 @@ exports[`TextInput when user sees a textarea with character count should display
|
|
|
3997
4023
|
}
|
|
3998
4024
|
themeFontWeight="regular"
|
|
3999
4025
|
themeIntent="body"
|
|
4026
|
+
themeIsItalic={false}
|
|
4000
4027
|
themeState="filled"
|
|
4001
4028
|
>
|
|
4002
4029
|
3
|
|
@@ -4051,7 +4078,7 @@ exports[`TextInput when user sees a textarea with character count should display
|
|
|
4051
4078
|
themeIntent="text"
|
|
4052
4079
|
themeSize="medium"
|
|
4053
4080
|
>
|
|
4054
|
-
|
|
4081
|
+
|
|
4055
4082
|
</Text>
|
|
4056
4083
|
</View>
|
|
4057
4084
|
</Pressable>
|
|
@@ -4199,6 +4226,7 @@ exports[`TextInput when user sees a textarea with character count should hide ch
|
|
|
4199
4226
|
testID="input-label-text"
|
|
4200
4227
|
themeFontWeight="regular"
|
|
4201
4228
|
themeIntent="body"
|
|
4229
|
+
themeIsItalic={false}
|
|
4202
4230
|
themeState="filled"
|
|
4203
4231
|
>
|
|
4204
4232
|
Amount (AUD)
|
|
@@ -4228,6 +4256,7 @@ exports[`TextInput when user sees a textarea with character count should hide ch
|
|
|
4228
4256
|
}
|
|
4229
4257
|
themeFontWeight="regular"
|
|
4230
4258
|
themeIntent="body"
|
|
4259
|
+
themeIsItalic={false}
|
|
4231
4260
|
themeState="filled"
|
|
4232
4261
|
>
|
|
4233
4262
|
(Optional)
|
|
@@ -4297,7 +4326,7 @@ exports[`TextInput when user sees a textarea with character count should hide ch
|
|
|
4297
4326
|
themeIntent="text"
|
|
4298
4327
|
themeSize="xsmall"
|
|
4299
4328
|
>
|
|
4300
|
-
|
|
4329
|
+
|
|
4301
4330
|
</Text>
|
|
4302
4331
|
</View>
|
|
4303
4332
|
</View>
|
|
@@ -4415,7 +4444,7 @@ exports[`TextInput when user sees a textarea with character count should hide ch
|
|
|
4415
4444
|
themeIntent="text"
|
|
4416
4445
|
themeSize="medium"
|
|
4417
4446
|
>
|
|
4418
|
-
|
|
4447
|
+
|
|
4419
4448
|
</Text>
|
|
4420
4449
|
</View>
|
|
4421
4450
|
</Pressable>
|
|
@@ -4565,6 +4594,7 @@ exports[`TextInput when user sees an empty input field should display label and
|
|
|
4565
4594
|
testID="input-label-text"
|
|
4566
4595
|
themeFontWeight="regular"
|
|
4567
4596
|
themeIntent="body"
|
|
4597
|
+
themeIsItalic={false}
|
|
4568
4598
|
themeState="default"
|
|
4569
4599
|
>
|
|
4570
4600
|
Amount (AUD)
|
|
@@ -4594,6 +4624,7 @@ exports[`TextInput when user sees an empty input field should display label and
|
|
|
4594
4624
|
}
|
|
4595
4625
|
themeFontWeight="regular"
|
|
4596
4626
|
themeIntent="body"
|
|
4627
|
+
themeIsItalic={false}
|
|
4597
4628
|
themeState="default"
|
|
4598
4629
|
>
|
|
4599
4630
|
(Optional)
|
|
@@ -4663,7 +4694,7 @@ exports[`TextInput when user sees an empty input field should display label and
|
|
|
4663
4694
|
themeIntent="text"
|
|
4664
4695
|
themeSize="xsmall"
|
|
4665
4696
|
>
|
|
4666
|
-
|
|
4697
|
+
|
|
4667
4698
|
</Text>
|
|
4668
4699
|
</View>
|
|
4669
4700
|
</View>
|
|
@@ -4778,7 +4809,7 @@ exports[`TextInput when user sees an empty input field should display label and
|
|
|
4778
4809
|
themeIntent="text"
|
|
4779
4810
|
themeSize="medium"
|
|
4780
4811
|
>
|
|
4781
|
-
|
|
4812
|
+
|
|
4782
4813
|
</Text>
|
|
4783
4814
|
</View>
|
|
4784
4815
|
</Pressable>
|
|
@@ -4926,6 +4957,7 @@ exports[`TextInput when user sees an error state should display error message to
|
|
|
4926
4957
|
testID="input-label-text"
|
|
4927
4958
|
themeFontWeight="regular"
|
|
4928
4959
|
themeIntent="body"
|
|
4960
|
+
themeIsItalic={false}
|
|
4929
4961
|
themeState="error"
|
|
4930
4962
|
>
|
|
4931
4963
|
Amount (AUD)
|
|
@@ -4995,7 +5027,7 @@ exports[`TextInput when user sees an error state should display error message to
|
|
|
4995
5027
|
themeIntent="text"
|
|
4996
5028
|
themeSize="xsmall"
|
|
4997
5029
|
>
|
|
4998
|
-
|
|
5030
|
+
|
|
4999
5031
|
</Text>
|
|
5000
5032
|
</View>
|
|
5001
5033
|
</View>
|
|
@@ -5138,6 +5170,7 @@ exports[`TextInput when user sees an error state should display error message to
|
|
|
5138
5170
|
testID="input-error-message"
|
|
5139
5171
|
themeFontWeight="regular"
|
|
5140
5172
|
themeIntent="body"
|
|
5173
|
+
themeIsItalic={false}
|
|
5141
5174
|
>
|
|
5142
5175
|
This field is required
|
|
5143
5176
|
</Text>
|
|
@@ -5303,6 +5336,7 @@ exports[`TextInput when user sees helper text should display guidance text to as
|
|
|
5303
5336
|
testID="input-label-text"
|
|
5304
5337
|
themeFontWeight="regular"
|
|
5305
5338
|
themeIntent="body"
|
|
5339
|
+
themeIsItalic={false}
|
|
5306
5340
|
themeState="default"
|
|
5307
5341
|
>
|
|
5308
5342
|
Amount (AUD)
|
|
@@ -5372,7 +5406,7 @@ exports[`TextInput when user sees helper text should display guidance text to as
|
|
|
5372
5406
|
themeIntent="text"
|
|
5373
5407
|
themeSize="xsmall"
|
|
5374
5408
|
>
|
|
5375
|
-
|
|
5409
|
+
|
|
5376
5410
|
</Text>
|
|
5377
5411
|
</View>
|
|
5378
5412
|
</View>
|
|
@@ -5458,6 +5492,7 @@ exports[`TextInput when user sees helper text should display guidance text to as
|
|
|
5458
5492
|
}
|
|
5459
5493
|
themeFontWeight="regular"
|
|
5460
5494
|
themeIntent="body"
|
|
5495
|
+
themeIsItalic={false}
|
|
5461
5496
|
>
|
|
5462
5497
|
This is helper text
|
|
5463
5498
|
</Text>
|
|
@@ -5622,6 +5657,7 @@ exports[`TextInput when user sees input with custom prefix and suffix elements s
|
|
|
5622
5657
|
testID="input-label-text"
|
|
5623
5658
|
themeFontWeight="regular"
|
|
5624
5659
|
themeIntent="body"
|
|
5660
|
+
themeIsItalic={false}
|
|
5625
5661
|
themeState="default"
|
|
5626
5662
|
>
|
|
5627
5663
|
Amount (AUD)
|
|
@@ -1742,45 +1742,53 @@ exports[`theme returns correct theme object 1`] = `
|
|
|
1742
1742
|
"xxxxxlarge": 31.384615384615387,
|
|
1743
1743
|
},
|
|
1744
1744
|
"fontWeights": {
|
|
1745
|
-
"body": {
|
|
1746
|
-
"neutral": {
|
|
1747
|
-
"regular": "BeVietnamPro-Regular",
|
|
1748
|
-
"semiBold": "BeVietnamPro-SemiBold",
|
|
1749
|
-
},
|
|
1750
|
-
"playful": {
|
|
1751
|
-
"regular": "Saiga-Regular",
|
|
1752
|
-
"semiBold": "Saiga-Medium",
|
|
1753
|
-
},
|
|
1754
|
-
},
|
|
1755
1745
|
"titles": {
|
|
1756
1746
|
"neutral": {
|
|
1757
1747
|
"h1": "BeVietnamPro-Regular",
|
|
1748
|
+
"h1Italic": "BeVietnamPro-RegularItalic",
|
|
1758
1749
|
"h2": "BeVietnamPro-SemiBold",
|
|
1750
|
+
"h2Italic": "BeVietnamPro-SemiBoldItalic",
|
|
1759
1751
|
"h3": "BeVietnamPro-SemiBold",
|
|
1752
|
+
"h3Italic": "BeVietnamPro-SemiBoldItalic",
|
|
1760
1753
|
"h4": "BeVietnamPro-SemiBold",
|
|
1754
|
+
"h4Italic": "BeVietnamPro-SemiBoldItalic",
|
|
1761
1755
|
"h5": "BeVietnamPro-SemiBold",
|
|
1756
|
+
"h5Italic": "BeVietnamPro-SemiBoldItalic",
|
|
1762
1757
|
"h6": "BeVietnamPro-Regular",
|
|
1758
|
+
"h6Italic": "BeVietnamPro-RegularItalic",
|
|
1763
1759
|
},
|
|
1764
1760
|
"playful": {
|
|
1765
1761
|
"h1": "Saiga-Medium",
|
|
1762
|
+
"h1Italic": "Saiga-MediumItalic",
|
|
1766
1763
|
"h2": "Saiga-Medium",
|
|
1764
|
+
"h2Italic": "Saiga-MediumItalic",
|
|
1767
1765
|
"h3": "Saiga-Medium",
|
|
1766
|
+
"h3Italic": "Saiga-MediumItalic",
|
|
1768
1767
|
"h4": "Saiga-Medium",
|
|
1768
|
+
"h4Italic": "Saiga-MediumItalic",
|
|
1769
1769
|
"h5": "Saiga-Medium",
|
|
1770
|
+
"h5Italic": "Saiga-MediumItalic",
|
|
1770
1771
|
"h6": "Saiga-Regular",
|
|
1772
|
+
"h6Italic": "Saiga-RegularItalic",
|
|
1771
1773
|
},
|
|
1772
1774
|
},
|
|
1773
1775
|
},
|
|
1774
1776
|
"fonts": {
|
|
1775
1777
|
"neutral": {
|
|
1776
1778
|
"light": "BeVietnamPro-Light",
|
|
1779
|
+
"lightItalic": "BeVietnamPro-LightItalic",
|
|
1777
1780
|
"regular": "BeVietnamPro-Regular",
|
|
1781
|
+
"regularItalic": "BeVietnamPro-RegularItalic",
|
|
1778
1782
|
"semiBold": "BeVietnamPro-SemiBold",
|
|
1783
|
+
"semiBoldItalic": "BeVietnamPro-SemiBoldItalic",
|
|
1779
1784
|
},
|
|
1780
1785
|
"playful": {
|
|
1781
1786
|
"light": "Saiga-Light",
|
|
1787
|
+
"lightItalic": "Saiga-LightItalic",
|
|
1782
1788
|
"regular": "Saiga-Regular",
|
|
1789
|
+
"regularItalic": "Saiga-RegularItalic",
|
|
1783
1790
|
"semiBold": "Saiga-Medium",
|
|
1791
|
+
"semiBoldItalic": "Saiga-MediumItalic",
|
|
1784
1792
|
},
|
|
1785
1793
|
},
|
|
1786
1794
|
"letterSpacings": {
|
|
@@ -1925,13 +1933,19 @@ exports[`theme returns correct theme object 1`] = `
|
|
|
1925
1933
|
"fonts": {
|
|
1926
1934
|
"neutral": {
|
|
1927
1935
|
"light": "BeVietnamPro-Light",
|
|
1936
|
+
"lightItalic": "BeVietnamPro-LightItalic",
|
|
1928
1937
|
"regular": "BeVietnamPro-Regular",
|
|
1938
|
+
"regularItalic": "BeVietnamPro-RegularItalic",
|
|
1929
1939
|
"semiBold": "BeVietnamPro-SemiBold",
|
|
1940
|
+
"semiBoldItalic": "BeVietnamPro-SemiBoldItalic",
|
|
1930
1941
|
},
|
|
1931
1942
|
"playful": {
|
|
1932
1943
|
"light": "Saiga-Light",
|
|
1944
|
+
"lightItalic": "Saiga-LightItalic",
|
|
1933
1945
|
"regular": "Saiga-Regular",
|
|
1946
|
+
"regularItalic": "Saiga-RegularItalic",
|
|
1934
1947
|
"semiBold": "Saiga-Medium",
|
|
1948
|
+
"semiBoldItalic": "Saiga-MediumItalic",
|
|
1935
1949
|
},
|
|
1936
1950
|
},
|
|
1937
1951
|
"lineHeights": {
|
package/.cursorrules
DELETED
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
# RN Work UIKit Specific Rules
|
|
2
|
-
|
|
3
|
-
## Package Context
|
|
4
|
-
This is the work-specific React Native component library that extends @hero-design/rn with work-focused components like TextInput, specialized themes, and work-specific patterns.
|
|
5
|
-
|
|
6
|
-
## Testing Rules for RN Work UIKit
|
|
7
|
-
- Write user-behavior focused tests that describe what users see and experience
|
|
8
|
-
- Use descriptive test names like "when user sees an empty input field" instead of "idle state"
|
|
9
|
-
- Group related assertions with explanatory comments about user expectations
|
|
10
|
-
- Focus on user interactions and outcomes rather than implementation details
|
|
11
|
-
- Use `@testing-library/react-native` for all component testing
|
|
12
|
-
- Use `renderWithTheme()` from `../../../../testUtils/renderWithTheme` for components that need theme context
|
|
13
|
-
- Use semantic matchers like `toBeDisabled()`, `toHaveProp()` when available
|
|
14
|
-
- For complex React Native styles, use manual checking when `toHaveStyle()` doesn't work
|
|
15
|
-
- Handle React Native's nested style arrays with `StyleSheet.flatten()` or custom helpers
|
|
16
|
-
- Aim for 100% line coverage on main component files
|
|
17
|
-
- Create dedicated test files for each component (not just integration tests)
|
|
18
|
-
- Test edge cases: undefined props, complex styles, error states
|
|
19
|
-
- Test imperative APIs: ref methods, focus/blur behavior
|
|
20
|
-
- Test accessibility: screen reader support, keyboard navigation
|
|
21
|
-
|
|
22
|
-
## Component Development Rules
|
|
23
|
-
- Import `styled` from `@hero-design/rn` for consistency with base theme
|
|
24
|
-
- Use `useTheme()` hook instead of prop drilling theme
|
|
25
|
-
- Extend base components from `@hero-design/rn` when possible
|
|
26
|
-
- Follow work-specific design patterns and accessibility requirements
|
|
27
|
-
- Use TypeScript strictly - no `any` types without good reason
|
|
28
|
-
- Fix linting errors immediately
|
|
29
|
-
- Use proper React Native components (`Text`, `View`) instead of HTML elements
|
|
30
|
-
|
|
31
|
-
## Documentation Rules
|
|
32
|
-
- Document Props interfaces with JSDoc comments directly on each property: `/** Description */`
|
|
33
|
-
- Use simplified @param comments: `@param props - The component props (see [ComponentName]Props interface for details)`
|
|
34
|
-
- Avoid mentioning implementation details like "memoized component" in JSDoc comments
|
|
35
|
-
- Focus JSDoc comments on what the component does, not how it's implemented
|
|
36
|
-
- Keep type information in the Props interface, not duplicated in @param comments
|
|
37
|
-
|
|
38
|
-
## File Organization
|
|
39
|
-
- Separate large test files by component responsibility
|
|
40
|
-
- Use consistent naming: `ComponentName.spec.tsx`
|
|
41
|
-
- Keep test utilities in `testUtils/` directory at package root
|
|
42
|
-
- Use snapshot testing for visual regression prevention
|
|
43
|
-
- Create README.md files in test directories explaining testing approach
|
|
44
|
-
|
|
45
|
-
## Work-Specific Patterns
|
|
46
|
-
- Components should work with work theme overrides
|
|
47
|
-
- Test with work-specific color palettes and spacing
|
|
48
|
-
- Ensure compatibility with work app requirements
|
|
49
|
-
- Follow work accessibility guidelines
|
|
50
|
-
- Test performance with work-typical data sizes
|
|
51
|
-
|
|
52
|
-
## Quality Gates
|
|
53
|
-
- All tests must pass with 100% coverage on main components
|
|
54
|
-
- No linting errors
|
|
55
|
-
- No TypeScript errors
|
|
56
|
-
- Components must work with both base and work themes
|
|
57
|
-
- Accessibility compliance for work environment
|
package/src/utils/hooks.ts
DELETED