@developer_tribe/react-builder 1.2.46 → 1.2.47

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 (79) hide show
  1. package/dist/attributes-editor/Field.d.ts +3 -1
  2. package/dist/attributes-editor/attributesEditorModelTypes.d.ts +3 -0
  3. package/dist/attributes-editor/useAttributesEditorModel.d.ts +1 -1
  4. package/dist/build-components/FormSubmitButton/FormSubmitButtonProps.generated.d.ts +8 -3
  5. package/dist/build-components/GlobalProvider/GlobalContext.d.ts +28 -0
  6. package/dist/build-components/GlobalProvider/GlobalProvider.d.ts +5 -0
  7. package/dist/build-components/GlobalProvider/GlobalProviderProps.generated.d.ts +60 -0
  8. package/dist/build-components/GlobalProvider/globalProviderUtils.d.ts +28 -0
  9. package/dist/build-components/GlobalProvider/useGlobalNavigation.d.ts +19 -0
  10. package/dist/build-components/GlobalProvider/useGlobalProviderLogic.d.ts +15 -0
  11. package/dist/build-components/OnboardButton/OnboardButtonProps.generated.d.ts +8 -3
  12. package/dist/build-components/OnboardProvider/OnboardProviderProps.generated.d.ts +2 -0
  13. package/dist/build-components/PaywallProvider/PaywallProviderProps.generated.d.ts +2 -0
  14. package/dist/build-components/SystemButton/SystemButtonProps.generated.d.ts +8 -3
  15. package/dist/build-components/SystemButton/usePlacementButtonEvents.d.ts +15 -2
  16. package/dist/build-components/TermsProvider/TermsProvider.d.ts +5 -0
  17. package/dist/build-components/TermsProvider/TermsProviderProps.generated.d.ts +55 -0
  18. package/dist/build-components/index.d.ts +3 -1
  19. package/dist/build-components/patterns.generated.d.ts +2128 -1333
  20. package/dist/index.cjs.js +3 -3
  21. package/dist/index.cjs.js.map +1 -1
  22. package/dist/index.esm.js +3 -3
  23. package/dist/index.esm.js.map +1 -1
  24. package/dist/index.web.cjs.js +3 -3
  25. package/dist/index.web.cjs.js.map +1 -1
  26. package/dist/index.web.esm.js +3 -3
  27. package/dist/index.web.esm.js.map +1 -1
  28. package/dist/styles.css +1 -1
  29. package/dist/utils/nodeTree.d.ts +18 -0
  30. package/package.json +1 -1
  31. package/scripts/prebuild/utils/validateAllComponentsOrThrow.js +68 -4
  32. package/src/assets/meta.json +1 -1
  33. package/src/assets/prompt-scheme-onboard.generated.ts +1 -1
  34. package/src/assets/prompt-scheme-paywall.generated.ts +1 -1
  35. package/src/assets/samples/getSamples.ts +2 -0
  36. package/src/assets/samples/global-onboard-flow.json +735 -0
  37. package/src/assets/samples/terms-and-privacy-no-form.json +1 -1
  38. package/src/assets/samples/terms-and-privacy.json +1 -1
  39. package/src/attributes-editor/AttributesEditorView.tsx +3 -0
  40. package/src/attributes-editor/Field.tsx +91 -2
  41. package/src/attributes-editor/attributesEditorModelTypes.ts +3 -0
  42. package/src/attributes-editor/useAttributesEditorModel.ts +8 -0
  43. package/src/build-components/FormCheckbox/FormCheckbox.tsx +3 -3
  44. package/src/build-components/FormSubmitButton/FormSubmitButton.tsx +6 -0
  45. package/src/build-components/FormSubmitButton/FormSubmitButtonProps.generated.ts +26 -3
  46. package/src/build-components/GlobalProvider/GlobalContext.ts +48 -0
  47. package/src/build-components/GlobalProvider/GlobalProvider.tsx +51 -0
  48. package/src/build-components/GlobalProvider/GlobalProviderProps.generated.ts +78 -0
  49. package/src/build-components/GlobalProvider/globalProviderUtils.ts +204 -0
  50. package/src/build-components/GlobalProvider/pattern.json +55 -0
  51. package/src/build-components/GlobalProvider/useGlobalNavigation.ts +65 -0
  52. package/src/build-components/GlobalProvider/useGlobalProviderLogic.ts +172 -0
  53. package/src/build-components/OnboardButton/OnboardButton.tsx +8 -1
  54. package/src/build-components/OnboardButton/OnboardButtonProps.generated.ts +26 -3
  55. package/src/build-components/OnboardButton/pattern.json +5 -3
  56. package/src/build-components/OnboardProvider/OnboardProviderProps.generated.ts +12 -0
  57. package/src/build-components/OnboardProvider/pattern.json +9 -1
  58. package/src/build-components/PaywallProvider/PaywallProviderProps.generated.ts +12 -0
  59. package/src/build-components/PaywallProvider/pattern.json +9 -1
  60. package/src/build-components/RenderNode.generated.tsx +10 -0
  61. package/src/build-components/SystemButton/SystemButton.tsx +6 -0
  62. package/src/build-components/SystemButton/SystemButtonProps.generated.ts +26 -3
  63. package/src/build-components/SystemButton/pattern.json +5 -3
  64. package/src/build-components/SystemButton/usePlacementButtonEvents.ts +51 -27
  65. package/src/build-components/TermsProvider/TermsProvider.tsx +45 -0
  66. package/src/build-components/TermsProvider/TermsProviderProps.generated.ts +82 -0
  67. package/src/build-components/TermsProvider/pattern.json +35 -0
  68. package/src/build-components/index.ts +10 -0
  69. package/src/build-components/patterns.generated.ts +2290 -1399
  70. package/src/components/AttributesEditorPanel.tsx +1 -0
  71. package/src/modals/CreateDeviceModal.tsx +12 -2
  72. package/src/modals/DeviceSelectorModal.tsx +1 -1
  73. package/src/patterns/event-constants.json +19 -0
  74. package/src/styles/components/_global-provider.scss +131 -0
  75. package/src/styles/index.scss +1 -0
  76. package/src/utils/analyseNodeByPatterns.ts +5 -2
  77. package/src/utils/nodeTree.ts +115 -0
  78. package/src/.DS_Store +0 -0
  79. package/src/assets/.DS_Store +0 -0
@@ -5621,11 +5621,23 @@ export const patterns = [
5621
5621
  },
5622
5622
  types: {
5623
5623
  EventObject: {
5624
- type: ['Permission', 'Navigate', 'Placement'],
5625
- permission: 'string',
5624
+ type: ['Permission', 'Navigate', 'Placement', 'SetCondition'],
5625
+ permission: [
5626
+ 'notification',
5627
+ 'camera',
5628
+ 'microphone',
5629
+ 'location',
5630
+ 'photos',
5631
+ 'contacts',
5632
+ 'att',
5633
+ 'rating',
5634
+ 'GDPR',
5635
+ ],
5626
5636
  navigate_to: 'string',
5627
5637
  targetIndex: 'number',
5628
- placementKey: 'string',
5638
+ placementKey: ['terms', 'onboard', 'paywall', 'subscription', 'home'],
5639
+ conditionKey: ['termsAccepted'],
5640
+ value: 'boolean',
5629
5641
  },
5630
5642
  },
5631
5643
  meta: {
@@ -6019,10 +6031,10 @@ export const patterns = [
6019
6031
  {
6020
6032
  schemaVersion: 2,
6021
6033
  pattern: {
6022
- type: 'Image',
6034
+ type: 'GlobalProvider',
6023
6035
  title: 'title',
6024
6036
  description: 'description',
6025
- children: 'never',
6037
+ children: 'node',
6026
6038
  attributes: {
6027
6039
  scrollable: 'boolean',
6028
6040
  styles: {
@@ -6073,17 +6085,18 @@ export const patterns = [
6073
6085
  left: 'size',
6074
6086
  right: 'size',
6075
6087
  zIndex: 'number',
6076
- resizeMode: ['cover', 'contain', 'stretch', 'center'],
6077
6088
  },
6078
6089
  testID: 'string',
6079
- src: 'string',
6080
- fetchStrategy: ['highIfItsAppLaunch', 'normal', 'lazy', 'none'],
6090
+ initialPage: 'string',
6091
+ persistProgress: 'boolean',
6092
+ skipConditions: 'SkipConditionEntry[]',
6081
6093
  },
6082
6094
  },
6083
6095
  meta: {
6084
- desiredParent: ['all'],
6085
- label: 'Image',
6086
- description: 'Shows an image or graphic.',
6096
+ desiredParent: ['root'],
6097
+ label: 'Global Provider',
6098
+ description:
6099
+ 'Top-level provider that manages multi-page flow (Terms → Onboard → Paywall). Each direct child is treated as a page.',
6087
6100
  specialCategories: {
6088
6101
  padding: {
6089
6102
  label: 'Padding',
@@ -6384,31 +6397,32 @@ export const patterns = [
6384
6397
  sort: 26,
6385
6398
  },
6386
6399
  },
6387
- src: {
6388
- label: 'Src',
6389
- description: 'Image source URL.',
6400
+ initialPage: {
6401
+ label: 'Initial Page Key',
6402
+ description:
6403
+ 'The page key to show first. Defaults to the first child.',
6390
6404
  category: 'other',
6391
6405
  specialCategory: null,
6392
6406
  sort: 1,
6393
6407
  },
6394
- fetchStrategy: {
6395
- label: 'Fetch Strategy',
6408
+ persistProgress: {
6409
+ label: 'Persist Progress',
6396
6410
  description:
6397
- "highIfItsAppLaunch ilk başta yükleniyor eğer app_launch placeholder'i ile gelirse\nnormal sonra bütün hepsi toplanıp prefetch ediniyor\nlazy builder açılır açılmaz\nnone ise os'a bırakıldı",
6411
+ 'Save current page and conditions to localStorage so the user continues from where they left off.',
6398
6412
  category: 'other',
6399
6413
  specialCategory: null,
6400
6414
  sort: 2,
6401
6415
  },
6402
- },
6403
- styles: {
6404
- resizeMode: {
6405
- label: 'Resize Mode',
6406
- description: 'How the image fits the frame.',
6407
- category: 'style',
6416
+ skipConditions: {
6417
+ label: 'Skip Conditions',
6418
+ description:
6419
+ 'List of page skip rules. Each entry maps a pageKey to a conditionKey: when conditions[conditionKey] is true, that page is skipped on navigate.',
6420
+ category: 'other',
6408
6421
  specialCategory: null,
6409
- sort: 4,
6422
+ sort: 3,
6410
6423
  },
6411
6424
  },
6425
+ styles: {},
6412
6426
  },
6413
6427
  defaults: {
6414
6428
  styles: {
@@ -6418,19 +6432,20 @@ export const patterns = [
6418
6432
  alignSelf: 'flex-start',
6419
6433
  flexGrow: 0,
6420
6434
  flexShrink: 0,
6421
- resizeMode: 'contain',
6435
+ flex: 1,
6422
6436
  },
6423
- fetchStrategy: 'normal',
6424
6437
  },
6425
- types: {},
6438
+ types: {
6439
+ SkipConditionEntry: { pageKey: 'string', conditionKey: 'string' },
6440
+ },
6426
6441
  },
6427
6442
  {
6428
6443
  schemaVersion: 2,
6429
6444
  pattern: {
6430
- type: 'Main',
6445
+ type: 'Image',
6431
6446
  title: 'title',
6432
6447
  description: 'description',
6433
- children: 'node',
6448
+ children: 'never',
6434
6449
  attributes: {
6435
6450
  scrollable: 'boolean',
6436
6451
  styles: {
@@ -6481,15 +6496,17 @@ export const patterns = [
6481
6496
  left: 'size',
6482
6497
  right: 'size',
6483
6498
  zIndex: 'number',
6499
+ resizeMode: ['cover', 'contain', 'stretch', 'center'],
6484
6500
  },
6485
6501
  testID: 'string',
6486
- useSafeAreaView: 'boolean',
6502
+ src: 'string',
6503
+ fetchStrategy: ['highIfItsAppLaunch', 'normal', 'lazy', 'none'],
6487
6504
  },
6488
6505
  },
6489
6506
  meta: {
6490
- desiredParent: ['root'],
6491
- label: 'Main',
6492
- description: 'Top-level screen wrapper (safe area, base layout).',
6507
+ desiredParent: ['all'],
6508
+ label: 'Image',
6509
+ description: 'Shows an image or graphic.',
6493
6510
  specialCategories: {
6494
6511
  padding: {
6495
6512
  label: 'Padding',
@@ -6790,18 +6807,31 @@ export const patterns = [
6790
6807
  sort: 26,
6791
6808
  },
6792
6809
  },
6793
- useSafeAreaView: {
6794
- label: 'Use Safe Area View',
6795
- description:
6796
- 'Wraps content with a safe-area-aware container (when supported by the target).',
6797
- category: 'container',
6810
+ src: {
6811
+ label: 'Src',
6812
+ description: 'Image source URL.',
6813
+ category: 'other',
6798
6814
  specialCategory: null,
6799
6815
  sort: 1,
6800
- forceVisible: true,
6816
+ },
6817
+ fetchStrategy: {
6818
+ label: 'Fetch Strategy',
6819
+ description:
6820
+ "highIfItsAppLaunch ilk başta yükleniyor eğer app_launch placeholder'i ile gelirse\nnormal sonra bütün hepsi toplanıp prefetch ediniyor\nlazy builder açılır açılmaz\nnone ise os'a bırakıldı",
6821
+ category: 'other',
6822
+ specialCategory: null,
6823
+ sort: 2,
6824
+ },
6825
+ },
6826
+ styles: {
6827
+ resizeMode: {
6828
+ label: 'Resize Mode',
6829
+ description: 'How the image fits the frame.',
6830
+ category: 'style',
6831
+ specialCategory: null,
6832
+ sort: 4,
6801
6833
  },
6802
6834
  },
6803
- hideAllAttributes: true,
6804
- styles: {},
6805
6835
  },
6806
6836
  defaults: {
6807
6837
  styles: {
@@ -6811,55 +6841,16 @@ export const patterns = [
6811
6841
  alignSelf: 'flex-start',
6812
6842
  flexGrow: 0,
6813
6843
  flexShrink: 0,
6814
- width: '100%',
6815
- height: '100%',
6816
- flex: 1,
6844
+ resizeMode: 'contain',
6817
6845
  },
6818
- useSafeAreaView: true,
6846
+ fetchStrategy: 'normal',
6819
6847
  },
6820
6848
  types: {},
6821
6849
  },
6822
6850
  {
6823
6851
  schemaVersion: 2,
6824
6852
  pattern: {
6825
- type: 'NavigationBarColor',
6826
- title: 'title',
6827
- description: 'description',
6828
- children: 'never',
6829
- attributes: {
6830
- styles: { backgroundColor: 'color' },
6831
- translucent: 'boolean',
6832
- },
6833
- },
6834
- meta: {
6835
- desiredParent: ['all'],
6836
- label: 'Navigation Bar Color',
6837
- description: 'Sets the OS navigation bar background color.',
6838
- styles: {
6839
- backgroundColor: {
6840
- label: 'Background Color',
6841
- description: 'Navigation bar background color.',
6842
- category: 'style',
6843
- specialCategory: null,
6844
- sort: 1,
6845
- },
6846
- },
6847
- attributes: {
6848
- translucent: {
6849
- label: 'Translucent',
6850
- description: 'Sets the navigation bar to translucent.',
6851
- category: 'style',
6852
- specialCategory: null,
6853
- sort: 2,
6854
- },
6855
- },
6856
- },
6857
- defaults: { styles: { backgroundColor: 'THEME_COLORS.BACKGROUND' } },
6858
- },
6859
- {
6860
- schemaVersion: 2,
6861
- pattern: {
6862
- type: 'Onboard',
6853
+ type: 'Main',
6863
6854
  title: 'title',
6864
6855
  description: 'description',
6865
6856
  children: 'node',
@@ -6915,12 +6906,13 @@ export const patterns = [
6915
6906
  zIndex: 'number',
6916
6907
  },
6917
6908
  testID: 'string',
6909
+ useSafeAreaView: 'boolean',
6918
6910
  },
6919
6911
  },
6920
6912
  meta: {
6921
- desiredParent: ['=OnboardProvider'],
6922
- label: 'Onboard',
6923
- description: 'Wraps the onboarding flow.',
6913
+ desiredParent: ['root'],
6914
+ label: 'Main',
6915
+ description: 'Top-level screen wrapper (safe area, base layout).',
6924
6916
  specialCategories: {
6925
6917
  padding: {
6926
6918
  label: 'Padding',
@@ -7221,42 +7213,82 @@ export const patterns = [
7221
7213
  sort: 26,
7222
7214
  },
7223
7215
  },
7216
+ useSafeAreaView: {
7217
+ label: 'Use Safe Area View',
7218
+ description:
7219
+ 'Wraps content with a safe-area-aware container (when supported by the target).',
7220
+ category: 'container',
7221
+ specialCategory: null,
7222
+ sort: 1,
7223
+ forceVisible: true,
7224
+ },
7224
7225
  },
7225
- desiredChildren: ['=OnboardItem'],
7226
+ hideAllAttributes: true,
7226
7227
  styles: {},
7227
7228
  },
7228
7229
  defaults: {
7229
7230
  styles: {
7230
- flexDirection: 'row',
7231
+ flexDirection: 'column',
7231
7232
  position: 'relative',
7232
7233
  zIndex: 1,
7233
7234
  alignSelf: 'flex-start',
7234
7235
  flexGrow: 0,
7235
7236
  flexShrink: 0,
7237
+ width: '100%',
7238
+ height: '100%',
7239
+ flex: 1,
7236
7240
  },
7241
+ useSafeAreaView: true,
7237
7242
  },
7238
7243
  types: {},
7239
7244
  },
7240
7245
  {
7241
7246
  schemaVersion: 2,
7242
7247
  pattern: {
7243
- type: 'OnboardButton',
7248
+ type: 'NavigationBarColor',
7244
7249
  title: 'title',
7245
7250
  description: 'description',
7246
7251
  children: 'never',
7247
7252
  attributes: {
7248
- labelKey: 'string',
7249
- events: 'EventObject[]',
7250
- testID: ['onboardSkip', 'onboardNext'],
7253
+ styles: { backgroundColor: 'color' },
7254
+ translucent: 'boolean',
7255
+ },
7256
+ },
7257
+ meta: {
7258
+ desiredParent: ['all'],
7259
+ label: 'Navigation Bar Color',
7260
+ description: 'Sets the OS navigation bar background color.',
7261
+ styles: {
7262
+ backgroundColor: {
7263
+ label: 'Background Color',
7264
+ description: 'Navigation bar background color.',
7265
+ category: 'style',
7266
+ specialCategory: null,
7267
+ sort: 1,
7268
+ },
7269
+ },
7270
+ attributes: {
7271
+ translucent: {
7272
+ label: 'Translucent',
7273
+ description: 'Sets the navigation bar to translucent.',
7274
+ category: 'style',
7275
+ specialCategory: null,
7276
+ sort: 2,
7277
+ },
7278
+ },
7279
+ },
7280
+ defaults: { styles: { backgroundColor: 'THEME_COLORS.BACKGROUND' } },
7281
+ },
7282
+ {
7283
+ schemaVersion: 2,
7284
+ pattern: {
7285
+ type: 'Onboard',
7286
+ title: 'title',
7287
+ description: 'description',
7288
+ children: 'node',
7289
+ attributes: {
7290
+ scrollable: 'boolean',
7251
7291
  styles: {
7252
- color: 'color',
7253
- backgroundColor: 'color',
7254
- height: 'size',
7255
- borderRadius: 'size',
7256
- fontSize: 'size',
7257
- fontWeight: 'fontWeight',
7258
- fontFamily: 'fontFamily',
7259
- textAlign: 'string',
7260
7292
  flexDirection: ['row', 'column'],
7261
7293
  flexWrap: ['nowrap', 'wrap', 'wrap-reverse'],
7262
7294
  alignItems: [
@@ -7289,9 +7321,12 @@ export const patterns = [
7289
7321
  marginBottom: 'size',
7290
7322
  marginLeft: 'size',
7291
7323
  marginRight: 'size',
7324
+ backgroundColor: 'color',
7325
+ borderRadius: 'size',
7292
7326
  width: 'size',
7293
7327
  minWidth: 'size',
7294
7328
  maxWidth: 'size',
7329
+ height: 'size',
7295
7330
  minHeight: 'size',
7296
7331
  maxHeight: 'size',
7297
7332
  flex: 'number',
@@ -7302,82 +7337,40 @@ export const patterns = [
7302
7337
  right: 'size',
7303
7338
  zIndex: 'number',
7304
7339
  },
7305
- adjustsFontSizeToFit: 'boolean',
7306
- numberOfLines: 'number',
7307
- translateCounter: 'number',
7308
- scrollable: 'boolean',
7309
- animation: [
7310
- 'simple-animation',
7311
- 'line-animation',
7312
- 'blur',
7313
- 'blur-animation',
7314
- 'blur-line-animation',
7315
- ],
7316
- animation_color: 'color',
7317
- },
7318
- },
7319
- defaults: {
7320
- attributes: { labelKey: 'Button' },
7321
- styles: {
7322
- height: '40@vs',
7323
- borderRadius: '12@s',
7324
- backgroundColor: 'THEME_COLORS.SYSTEM_BUTTON_BACKGROUND',
7325
- color: 'THEME_COLORS.ONBOARD_BUTTON_PRIMARY_TEXT',
7326
- fontSize: '16@fs',
7327
- fontWeight: '400',
7328
- flexDirection: 'column',
7329
- position: 'relative',
7330
- zIndex: 1,
7331
- alignSelf: 'flex-start',
7332
- flexGrow: 0,
7333
- flexShrink: 0,
7334
- },
7335
- translateCounter: 1,
7336
- numberOfLines: 1,
7337
- },
7338
- types: {
7339
- EventObject: {
7340
- type: ['Permission', 'Navigate', 'Placement'],
7341
- permission: 'string',
7342
- navigate_to: 'string',
7343
- targetIndex: 'number',
7344
- placementKey: 'string',
7340
+ testID: 'string',
7345
7341
  },
7346
7342
  },
7347
7343
  meta: {
7348
- label: 'Onboard Button',
7349
- description: 'Single action button for onboard.',
7350
- attributes: {
7351
- labelKey: {
7352
- label: 'Label Key',
7353
- description: 'Localization key for the button text.',
7354
- category: 'other',
7355
- specialCategory: null,
7344
+ desiredParent: ['=OnboardProvider'],
7345
+ label: 'Onboard',
7346
+ description: 'Wraps the onboarding flow.',
7347
+ specialCategories: {
7348
+ padding: {
7349
+ label: 'Padding',
7350
+ description: 'Uniform padding on all sides.',
7351
+ category: 'container',
7356
7352
  sort: 1,
7357
7353
  },
7358
- events: {
7359
- label: 'Events',
7360
- description: 'List of events fired by the button.',
7361
- category: 'other',
7362
- specialCategory: null,
7363
- sort: 7,
7354
+ margin: {
7355
+ label: 'Margin',
7356
+ description: 'Uniform margin on all sides.',
7357
+ category: 'container',
7358
+ sort: 2,
7364
7359
  },
7365
- adjustsFontSizeToFit: {
7366
- label: 'Adjust Font Size To Fit',
7367
- description:
7368
- 'Automatically reduces font size to fit the available space.',
7369
- category: 'other',
7370
- specialCategory: null,
7371
- sort: 1,
7360
+ size: {
7361
+ label: 'Size',
7362
+ description: 'Fixed dimensions.',
7363
+ category: 'container',
7364
+ sort: 3,
7372
7365
  },
7373
- showEllipsis: {
7374
- label: 'Show Ellipsis',
7375
- description:
7376
- 'If text overflows, show ellipsis (…); applied as single-line truncation.',
7377
- category: 'other',
7378
- specialCategory: null,
7379
- sort: 2,
7366
+ offset: {
7367
+ label: 'Offset',
7368
+ description: 'Absolute positioning offsets.',
7369
+ category: 'container',
7370
+ sort: 4,
7380
7371
  },
7372
+ },
7373
+ attributes: {
7381
7374
  scrollable: {
7382
7375
  label: 'Scrollable',
7383
7376
  description: 'Turns scroll interaction on.',
@@ -7650,106 +7643,43 @@ export const patterns = [
7650
7643
  specialCategory: null,
7651
7644
  sort: 26,
7652
7645
  },
7653
- color: {
7654
- label: 'Color',
7655
- description: 'Text color.',
7656
- category: 'style',
7657
- specialCategory: null,
7658
- sort: 1,
7659
- },
7660
- },
7661
- animation: {
7662
- label: 'Animation',
7663
- description: 'Animation style for the button.',
7664
- category: 'style',
7665
- specialCategory: null,
7666
- sort: 3,
7667
- },
7668
- animation_color: {
7669
- label: 'Animation Color',
7670
- description: 'Color used by the animation.',
7671
- category: 'style',
7672
- specialCategory: null,
7673
- sort: 4,
7674
7646
  },
7675
7647
  },
7676
- desiredParent: ['=OnboardButtons'],
7648
+ desiredChildren: ['=OnboardItem'],
7649
+ styles: {},
7650
+ },
7651
+ defaults: {
7677
7652
  styles: {
7678
- color: {
7679
- label: 'Color',
7680
- description: 'Text color.',
7681
- category: 'style',
7682
- specialCategory: null,
7683
- sort: 1,
7684
- },
7685
- fontSize: {
7686
- label: 'Font Size',
7687
- description: 'Text size.',
7688
- category: 'style',
7689
- specialCategory: null,
7690
- sort: 2,
7691
- preferredScale: 'f',
7692
- },
7693
- fontFamily: {
7694
- label: 'Font Family',
7695
- description: 'Font family used for the text.',
7696
- category: 'style',
7697
- specialCategory: null,
7698
- sort: 3,
7699
- },
7700
- fontWeight: {
7701
- label: 'Font Weight',
7702
- description: 'Text weight.',
7703
- category: 'style',
7704
- specialCategory: null,
7705
- sort: 4,
7706
- },
7707
- textAlign: {
7708
- label: 'Text Align',
7709
- description: 'Text alignment.',
7710
- category: 'style',
7711
- specialCategory: null,
7712
- sort: 5,
7713
- },
7714
- },
7715
- specialCategories: {
7716
- padding: {
7717
- label: 'Padding',
7718
- description: 'Uniform padding on all sides.',
7719
- category: 'container',
7720
- sort: 1,
7721
- },
7722
- margin: {
7723
- label: 'Margin',
7724
- description: 'Uniform margin on all sides.',
7725
- category: 'container',
7726
- sort: 2,
7727
- },
7728
- size: {
7729
- label: 'Size',
7730
- description: 'Fixed dimensions.',
7731
- category: 'container',
7732
- sort: 3,
7733
- },
7734
- offset: {
7735
- label: 'Offset',
7736
- description: 'Absolute positioning offsets.',
7737
- category: 'container',
7738
- sort: 4,
7739
- },
7653
+ flexDirection: 'row',
7654
+ position: 'relative',
7655
+ zIndex: 1,
7656
+ alignSelf: 'flex-start',
7657
+ flexGrow: 0,
7658
+ flexShrink: 0,
7740
7659
  },
7741
7660
  },
7661
+ types: {},
7742
7662
  },
7743
7663
  {
7744
7664
  schemaVersion: 2,
7745
7665
  pattern: {
7746
- type: 'OnboardButtons',
7666
+ type: 'OnboardButton',
7747
7667
  title: 'title',
7748
7668
  description: 'description',
7749
- children: 'node',
7669
+ children: 'never',
7750
7670
  attributes: {
7751
- scrollable: 'boolean',
7671
+ labelKey: 'string',
7672
+ events: 'EventObject[]',
7673
+ testID: ['onboardSkip', 'onboardNext'],
7752
7674
  styles: {
7675
+ color: 'color',
7676
+ backgroundColor: 'color',
7677
+ height: 'size',
7678
+ borderRadius: 'size',
7679
+ fontSize: 'size',
7680
+ fontWeight: 'fontWeight',
7681
+ fontFamily: 'fontFamily',
7682
+ textAlign: 'string',
7753
7683
  flexDirection: ['row', 'column'],
7754
7684
  flexWrap: ['nowrap', 'wrap', 'wrap-reverse'],
7755
7685
  alignItems: [
@@ -7782,12 +7712,9 @@ export const patterns = [
7782
7712
  marginBottom: 'size',
7783
7713
  marginLeft: 'size',
7784
7714
  marginRight: 'size',
7785
- backgroundColor: 'color',
7786
- borderRadius: 'size',
7787
7715
  width: 'size',
7788
7716
  minWidth: 'size',
7789
7717
  maxWidth: 'size',
7790
- height: 'size',
7791
7718
  minHeight: 'size',
7792
7719
  maxHeight: 'size',
7793
7720
  flex: 'number',
@@ -7798,47 +7725,94 @@ export const patterns = [
7798
7725
  right: 'size',
7799
7726
  zIndex: 'number',
7800
7727
  },
7801
- testID: 'string',
7802
- buttonType: ['previous_button', 'next_button', 'skip_button'],
7803
- skipNumber: 'number',
7804
- buttons_direction: ['row', 'column'],
7805
- forIndex: 'number',
7806
- seperatorColor: 'color',
7807
- condition: ['carousel-index'],
7808
- conditionVariable: 'number',
7728
+ adjustsFontSizeToFit: 'boolean',
7729
+ numberOfLines: 'number',
7730
+ translateCounter: 'number',
7731
+ scrollable: 'boolean',
7732
+ animation: [
7733
+ 'simple-animation',
7734
+ 'line-animation',
7735
+ 'blur',
7736
+ 'blur-animation',
7737
+ 'blur-line-animation',
7738
+ ],
7739
+ animation_color: 'color',
7740
+ },
7741
+ },
7742
+ defaults: {
7743
+ attributes: { labelKey: 'Button' },
7744
+ styles: {
7745
+ height: '40@vs',
7746
+ borderRadius: '12@s',
7747
+ backgroundColor: 'THEME_COLORS.SYSTEM_BUTTON_BACKGROUND',
7748
+ color: 'THEME_COLORS.ONBOARD_BUTTON_PRIMARY_TEXT',
7749
+ fontSize: '16@fs',
7750
+ fontWeight: '400',
7751
+ flexDirection: 'column',
7752
+ position: 'relative',
7753
+ zIndex: 1,
7754
+ alignSelf: 'flex-start',
7755
+ flexGrow: 0,
7756
+ flexShrink: 0,
7757
+ },
7758
+ translateCounter: 1,
7759
+ numberOfLines: 1,
7760
+ },
7761
+ types: {
7762
+ EventObject: {
7763
+ type: ['Permission', 'Navigate', 'Placement', 'SetCondition'],
7764
+ permission: [
7765
+ 'notification',
7766
+ 'camera',
7767
+ 'microphone',
7768
+ 'location',
7769
+ 'photos',
7770
+ 'contacts',
7771
+ 'att',
7772
+ 'rating',
7773
+ 'GDPR',
7774
+ ],
7775
+ navigate_to: 'string',
7776
+ targetIndex: 'number',
7777
+ placementKey: ['terms', 'onboard', 'paywall', 'subscription', 'home'],
7778
+ conditionKey: ['termsAccepted'],
7779
+ value: 'boolean',
7809
7780
  },
7810
7781
  },
7811
7782
  meta: {
7812
- desiredParent: ['=OnboardItem'],
7813
- label: 'Onboard Buttons',
7814
- description: 'Wrapper for onboarding button set.',
7815
- specialCategories: {
7816
- padding: {
7817
- label: 'Padding',
7818
- description: 'Uniform padding on all sides.',
7819
- category: 'container',
7783
+ label: 'Onboard Button',
7784
+ description: 'Single action button for onboard.',
7785
+ attributes: {
7786
+ labelKey: {
7787
+ label: 'Label Key',
7788
+ description: 'Localization key for the button text.',
7789
+ category: 'other',
7790
+ specialCategory: null,
7820
7791
  sort: 1,
7821
7792
  },
7822
- margin: {
7823
- label: 'Margin',
7824
- description: 'Uniform margin on all sides.',
7825
- category: 'container',
7826
- sort: 2,
7793
+ events: {
7794
+ label: 'Events',
7795
+ description: 'List of events fired by the button.',
7796
+ category: 'other',
7797
+ specialCategory: null,
7798
+ sort: 7,
7827
7799
  },
7828
- size: {
7829
- label: 'Size',
7830
- description: 'Fixed dimensions.',
7831
- category: 'container',
7832
- sort: 3,
7800
+ adjustsFontSizeToFit: {
7801
+ label: 'Adjust Font Size To Fit',
7802
+ description:
7803
+ 'Automatically reduces font size to fit the available space.',
7804
+ category: 'other',
7805
+ specialCategory: null,
7806
+ sort: 1,
7833
7807
  },
7834
- offset: {
7835
- label: 'Offset',
7836
- description: 'Absolute positioning offsets.',
7837
- category: 'container',
7838
- sort: 4,
7808
+ showEllipsis: {
7809
+ label: 'Show Ellipsis',
7810
+ description:
7811
+ 'If text overflows, show ellipsis (…); applied as single-line truncation.',
7812
+ category: 'other',
7813
+ specialCategory: null,
7814
+ sort: 2,
7839
7815
  },
7840
- },
7841
- attributes: {
7842
7816
  scrollable: {
7843
7817
  label: 'Scrollable',
7844
7818
  description: 'Turns scroll interaction on.',
@@ -8111,84 +8085,103 @@ export const patterns = [
8111
8085
  specialCategory: null,
8112
8086
  sort: 26,
8113
8087
  },
8088
+ color: {
8089
+ label: 'Color',
8090
+ description: 'Text color.',
8091
+ category: 'style',
8092
+ specialCategory: null,
8093
+ sort: 1,
8094
+ },
8114
8095
  },
8115
- seperatorColor: {
8116
- label: 'Seperator Color',
8117
- description: 'Color of the divider line.',
8118
- category: 'style',
8119
- specialCategory: null,
8120
- sort: 5,
8121
- },
8122
- buttonType: {
8123
- label: 'Button Type',
8124
- description: 'Which onboard button to show.',
8125
- category: 'other',
8096
+ animation: {
8097
+ label: 'Animation',
8098
+ description: 'Animation style for the button.',
8099
+ category: 'style',
8100
+ specialCategory: null,
8101
+ sort: 3,
8102
+ },
8103
+ animation_color: {
8104
+ label: 'Animation Color',
8105
+ description: 'Color used by the animation.',
8106
+ category: 'style',
8107
+ specialCategory: null,
8108
+ sort: 4,
8109
+ },
8110
+ },
8111
+ desiredParent: ['=OnboardButtons'],
8112
+ styles: {
8113
+ color: {
8114
+ label: 'Color',
8115
+ description: 'Text color.',
8116
+ category: 'style',
8126
8117
  specialCategory: null,
8127
8118
  sort: 1,
8128
8119
  },
8129
- skipNumber: {
8130
- label: 'Skip Number',
8131
- description: 'Slide index to skip to.',
8132
- category: 'other',
8120
+ fontSize: {
8121
+ label: 'Font Size',
8122
+ description: 'Text size.',
8123
+ category: 'style',
8133
8124
  specialCategory: null,
8134
8125
  sort: 2,
8126
+ preferredScale: 'f',
8135
8127
  },
8136
- buttons_direction: {
8137
- label: 'Buttons Direction',
8138
- description: 'Direction to lay out buttons.',
8139
- category: 'container',
8128
+ fontFamily: {
8129
+ label: 'Font Family',
8130
+ description: 'Font family used for the text.',
8131
+ category: 'style',
8140
8132
  specialCategory: null,
8141
8133
  sort: 3,
8142
8134
  },
8143
- forIndex: {
8144
- label: 'For Index',
8145
- description: 'Show only for this slide index.',
8146
- category: 'other',
8135
+ fontWeight: {
8136
+ label: 'Font Weight',
8137
+ description: 'Text weight.',
8138
+ category: 'style',
8147
8139
  specialCategory: null,
8148
8140
  sort: 4,
8149
8141
  },
8150
- condition: {
8151
- label: 'Condition',
8152
- description: 'Built-in condition to check.',
8153
- category: 'other',
8154
- specialCategory: null,
8155
- sort: 6,
8156
- },
8157
- conditionVariable: {
8158
- label: 'Condition Variable',
8159
- description: 'Value used when checking the condition.',
8160
- category: 'other',
8142
+ textAlign: {
8143
+ label: 'Text Align',
8144
+ description: 'Text alignment.',
8145
+ category: 'style',
8161
8146
  specialCategory: null,
8162
- sort: 7,
8147
+ sort: 5,
8163
8148
  },
8164
8149
  },
8165
- styles: {},
8166
- },
8167
- defaults: {
8168
- styles: {
8169
- flexDirection: 'row',
8170
- position: 'relative',
8171
- zIndex: 1,
8172
- alignSelf: 'flex-start',
8173
- flexGrow: 0,
8174
- flexShrink: 0,
8175
- display: 'flex',
8176
- gap: 12,
8177
- alignItems: 'center',
8178
- justifyContent: 'center',
8179
- marginVertical: '12@vs',
8180
- marginHorizontal: '24@s',
8150
+ specialCategories: {
8151
+ padding: {
8152
+ label: 'Padding',
8153
+ description: 'Uniform padding on all sides.',
8154
+ category: 'container',
8155
+ sort: 1,
8156
+ },
8157
+ margin: {
8158
+ label: 'Margin',
8159
+ description: 'Uniform margin on all sides.',
8160
+ category: 'container',
8161
+ sort: 2,
8162
+ },
8163
+ size: {
8164
+ label: 'Size',
8165
+ description: 'Fixed dimensions.',
8166
+ category: 'container',
8167
+ sort: 3,
8168
+ },
8169
+ offset: {
8170
+ label: 'Offset',
8171
+ description: 'Absolute positioning offsets.',
8172
+ category: 'container',
8173
+ sort: 4,
8174
+ },
8181
8175
  },
8182
8176
  },
8183
- types: {},
8184
8177
  },
8185
8178
  {
8186
8179
  schemaVersion: 2,
8187
8180
  pattern: {
8188
- type: 'OnboardDot',
8181
+ type: 'OnboardButtons',
8189
8182
  title: 'title',
8190
8183
  description: 'description',
8191
- children: 'never',
8184
+ children: 'node',
8192
8185
  attributes: {
8193
8186
  scrollable: 'boolean',
8194
8187
  styles: {
@@ -8241,27 +8234,19 @@ export const patterns = [
8241
8234
  zIndex: 'number',
8242
8235
  },
8243
8236
  testID: 'string',
8244
- dotType: [
8245
- 'expanding_dot',
8246
- 'normal_dot',
8247
- 'scaling_dot',
8248
- 'sliding_border',
8249
- 'sliding_dot',
8250
- 'liquid_like',
8251
- ],
8252
- flexDirection: 'never',
8253
- alignItems: 'never',
8254
- justifyContent: 'never',
8255
- dot_thickness: 'size',
8256
- inactive_dot_opacity: 'number',
8257
- inactive_dot_color: 'color',
8258
- active_dot_color: 'color',
8237
+ buttonType: ['previous_button', 'next_button', 'skip_button'],
8238
+ skipNumber: 'number',
8239
+ buttons_direction: ['row', 'column'],
8240
+ forIndex: 'number',
8241
+ seperatorColor: 'color',
8242
+ condition: ['carousel-index'],
8243
+ conditionVariable: 'number',
8259
8244
  },
8260
8245
  },
8261
8246
  meta: {
8262
- desiredParent: ['>OnboardProvider'],
8263
- label: 'Onboard Dot',
8264
- description: 'Renders onboarding progress dots.',
8247
+ desiredParent: ['=OnboardItem'],
8248
+ label: 'Onboard Buttons',
8249
+ description: 'Wrapper for onboarding button set.',
8265
8250
  specialCategories: {
8266
8251
  padding: {
8267
8252
  label: 'Padding',
@@ -8562,40 +8547,54 @@ export const patterns = [
8562
8547
  sort: 26,
8563
8548
  },
8564
8549
  },
8565
- dotType: {
8566
- label: 'Dot Type',
8567
- description: 'Dot animation style.',
8550
+ seperatorColor: {
8551
+ label: 'Seperator Color',
8552
+ description: 'Color of the divider line.',
8568
8553
  category: 'style',
8569
8554
  specialCategory: null,
8555
+ sort: 5,
8556
+ },
8557
+ buttonType: {
8558
+ label: 'Button Type',
8559
+ description: 'Which onboard button to show.',
8560
+ category: 'other',
8561
+ specialCategory: null,
8570
8562
  sort: 1,
8571
8563
  },
8572
- dot_thickness: {
8573
- label: 'Dot Thickness',
8574
- description: 'Dot size/diameter.',
8575
- category: 'style',
8564
+ skipNumber: {
8565
+ label: 'Skip Number',
8566
+ description: 'Slide index to skip to.',
8567
+ category: 'other',
8576
8568
  specialCategory: null,
8577
8569
  sort: 2,
8578
8570
  },
8579
- inactive_dot_opacity: {
8580
- label: 'Inactive Dot Opacity',
8581
- description: 'Opacity for inactive dots.',
8582
- category: 'style',
8571
+ buttons_direction: {
8572
+ label: 'Buttons Direction',
8573
+ description: 'Direction to lay out buttons.',
8574
+ category: 'container',
8583
8575
  specialCategory: null,
8584
8576
  sort: 3,
8585
8577
  },
8586
- inactive_dot_color: {
8587
- label: 'Inactive Dot Color',
8588
- description: 'Color of inactive dots.',
8589
- category: 'style',
8578
+ forIndex: {
8579
+ label: 'For Index',
8580
+ description: 'Show only for this slide index.',
8581
+ category: 'other',
8590
8582
  specialCategory: null,
8591
8583
  sort: 4,
8592
8584
  },
8593
- active_dot_color: {
8594
- label: 'Active Dot Color',
8595
- description: 'Color of the active dot.',
8596
- category: 'style',
8585
+ condition: {
8586
+ label: 'Condition',
8587
+ description: 'Built-in condition to check.',
8588
+ category: 'other',
8597
8589
  specialCategory: null,
8598
- sort: 5,
8590
+ sort: 6,
8591
+ },
8592
+ conditionVariable: {
8593
+ label: 'Condition Variable',
8594
+ description: 'Value used when checking the condition.',
8595
+ category: 'other',
8596
+ specialCategory: null,
8597
+ sort: 7,
8599
8598
  },
8600
8599
  },
8601
8600
  styles: {},
@@ -8608,35 +8607,26 @@ export const patterns = [
8608
8607
  alignSelf: 'flex-start',
8609
8608
  flexGrow: 0,
8610
8609
  flexShrink: 0,
8610
+ display: 'flex',
8611
+ gap: 12,
8611
8612
  alignItems: 'center',
8612
8613
  justifyContent: 'center',
8613
- gap: '12@s',
8614
+ marginVertical: '12@vs',
8615
+ marginHorizontal: '24@s',
8614
8616
  },
8615
- dotType: 'expanding_dot',
8616
- dot_thickness: 10,
8617
- inactive_dot_opacity: 0.3,
8618
- active_dot_color: 'STATIC_COLORS.ONBOARD_DOT_ACTIVE',
8619
- inactive_dot_color: 'THEME_COLORS.BACKGROUND',
8620
8617
  },
8621
8618
  types: {},
8622
8619
  },
8623
8620
  {
8624
8621
  schemaVersion: 2,
8625
8622
  pattern: {
8626
- type: 'OnboardFooter',
8623
+ type: 'OnboardDot',
8627
8624
  title: 'title',
8628
8625
  description: 'description',
8629
8626
  children: 'never',
8630
8627
  attributes: {
8631
- adjustsFontSizeToFit: 'boolean',
8632
- numberOfLines: 'number',
8633
- translateCounter: 'number',
8628
+ scrollable: 'boolean',
8634
8629
  styles: {
8635
- color: 'color',
8636
- fontSize: 'size',
8637
- fontFamily: 'fontFamily',
8638
- fontWeight: 'fontWeight',
8639
- textAlign: 'string',
8640
8630
  flexDirection: ['row', 'column'],
8641
8631
  flexWrap: ['nowrap', 'wrap', 'wrap-reverse'],
8642
8632
  alignItems: [
@@ -8685,76 +8675,55 @@ export const patterns = [
8685
8675
  right: 'size',
8686
8676
  zIndex: 'number',
8687
8677
  },
8688
- scrollable: 'boolean',
8689
8678
  testID: 'string',
8690
- textLocalizationKey: 'string',
8691
- linkedWordFirstLocalizationKey: 'string',
8692
- linkedWordFirstColor: 'color',
8693
- linkedWordFirstPage: 'string',
8694
- linkedWordSecondLocalizationKey: 'string',
8695
- linkedWordSecondColor: 'color',
8696
- linkedWordSecondPage: 'string',
8679
+ dotType: [
8680
+ 'expanding_dot',
8681
+ 'normal_dot',
8682
+ 'scaling_dot',
8683
+ 'sliding_border',
8684
+ 'sliding_dot',
8685
+ 'liquid_like',
8686
+ ],
8687
+ flexDirection: 'never',
8688
+ alignItems: 'never',
8689
+ justifyContent: 'never',
8690
+ dot_thickness: 'size',
8691
+ inactive_dot_opacity: 'number',
8692
+ inactive_dot_color: 'color',
8693
+ active_dot_color: 'color',
8697
8694
  },
8698
8695
  },
8699
8696
  meta: {
8700
- desiredParent: ['>OnboardItem'],
8701
- label: 'Onboard Footer',
8702
- description: 'Footer text with optional links.',
8703
- styles: {
8704
- color: {
8705
- label: 'Color',
8706
- description: 'Text color.',
8707
- category: 'style',
8708
- specialCategory: null,
8697
+ desiredParent: ['>OnboardProvider'],
8698
+ label: 'Onboard Dot',
8699
+ description: 'Renders onboarding progress dots.',
8700
+ specialCategories: {
8701
+ padding: {
8702
+ label: 'Padding',
8703
+ description: 'Uniform padding on all sides.',
8704
+ category: 'container',
8709
8705
  sort: 1,
8710
8706
  },
8711
- fontSize: {
8712
- label: 'Font Size',
8713
- description: 'Text size.',
8714
- category: 'style',
8715
- specialCategory: null,
8707
+ margin: {
8708
+ label: 'Margin',
8709
+ description: 'Uniform margin on all sides.',
8710
+ category: 'container',
8716
8711
  sort: 2,
8717
- preferredScale: 'f',
8718
8712
  },
8719
- fontFamily: {
8720
- label: 'Font Family',
8721
- description: 'Font family used for the text.',
8722
- category: 'style',
8723
- specialCategory: null,
8713
+ size: {
8714
+ label: 'Size',
8715
+ description: 'Fixed dimensions.',
8716
+ category: 'container',
8724
8717
  sort: 3,
8725
8718
  },
8726
- fontWeight: {
8727
- label: 'Font Weight',
8728
- description: 'Text weight.',
8729
- category: 'style',
8730
- specialCategory: null,
8719
+ offset: {
8720
+ label: 'Offset',
8721
+ description: 'Absolute positioning offsets.',
8722
+ category: 'container',
8731
8723
  sort: 4,
8732
8724
  },
8733
- textAlign: {
8734
- label: 'Text Align',
8735
- description: 'Text alignment.',
8736
- category: 'style',
8737
- specialCategory: null,
8738
- sort: 5,
8739
- },
8740
8725
  },
8741
8726
  attributes: {
8742
- adjustsFontSizeToFit: {
8743
- label: 'Adjust Font Size To Fit',
8744
- description:
8745
- 'Automatically reduces font size to fit the available space.',
8746
- category: 'other',
8747
- specialCategory: null,
8748
- sort: 1,
8749
- },
8750
- showEllipsis: {
8751
- label: 'Show Ellipsis',
8752
- description:
8753
- 'If text overflows, show ellipsis (…); applied as single-line truncation.',
8754
- category: 'other',
8755
- specialCategory: null,
8756
- sort: 2,
8757
- },
8758
8727
  scrollable: {
8759
8728
  label: 'Scrollable',
8760
8729
  description: 'Turns scroll interaction on.',
@@ -9028,118 +8997,81 @@ export const patterns = [
9028
8997
  sort: 26,
9029
8998
  },
9030
8999
  },
9031
- textLocalizationKey: {
9032
- label: 'Text Localization Key',
9033
- description: 'Localization key for the footer text.',
9034
- category: 'other',
9000
+ dotType: {
9001
+ label: 'Dot Type',
9002
+ description: 'Dot animation style.',
9003
+ category: 'style',
9035
9004
  specialCategory: null,
9036
9005
  sort: 1,
9037
9006
  },
9038
- linkedWordFirstLocalizationKey: {
9039
- label: 'Linked Word First Localization Key',
9040
- description: 'Key for the first linked word.',
9041
- category: 'other',
9007
+ dot_thickness: {
9008
+ label: 'Dot Thickness',
9009
+ description: 'Dot size/diameter.',
9010
+ category: 'style',
9042
9011
  specialCategory: null,
9043
9012
  sort: 2,
9044
9013
  },
9045
- linkedWordFirstColor: {
9046
- label: 'Linked Word First Color',
9047
- description: 'Color of the first linked word.',
9048
- category: 'other',
9014
+ inactive_dot_opacity: {
9015
+ label: 'Inactive Dot Opacity',
9016
+ description: 'Opacity for inactive dots.',
9017
+ category: 'style',
9049
9018
  specialCategory: null,
9050
9019
  sort: 3,
9051
9020
  },
9052
- linkedWordFirstPage: {
9053
- label: 'Linked Word First Page',
9054
- description: 'Page opened by the first link.',
9055
- category: 'other',
9021
+ inactive_dot_color: {
9022
+ label: 'Inactive Dot Color',
9023
+ description: 'Color of inactive dots.',
9024
+ category: 'style',
9056
9025
  specialCategory: null,
9057
9026
  sort: 4,
9058
9027
  },
9059
- linkedWordSecondLocalizationKey: {
9060
- label: 'Linked Word Second Localization Key',
9061
- description: 'Key for the second linked word.',
9062
- category: 'other',
9028
+ active_dot_color: {
9029
+ label: 'Active Dot Color',
9030
+ description: 'Color of the active dot.',
9031
+ category: 'style',
9063
9032
  specialCategory: null,
9064
9033
  sort: 5,
9065
9034
  },
9066
- linkedWordSecondColor: {
9067
- label: 'Linked Word Second Color',
9068
- description: 'Color of the second linked word.',
9069
- category: 'other',
9070
- specialCategory: null,
9071
- sort: 6,
9072
- },
9073
- linkedWordSecondPage: {
9074
- label: 'Linked Word Second Page',
9075
- description: 'Page opened by the second link.',
9076
- category: 'other',
9077
- specialCategory: null,
9078
- sort: 7,
9079
- },
9080
- },
9081
- specialCategories: {
9082
- padding: {
9083
- label: 'Padding',
9084
- description: 'Uniform padding on all sides.',
9085
- category: 'container',
9086
- sort: 1,
9087
- },
9088
- margin: {
9089
- label: 'Margin',
9090
- description: 'Uniform margin on all sides.',
9091
- category: 'container',
9092
- sort: 2,
9093
- },
9094
- size: {
9095
- label: 'Size',
9096
- description: 'Fixed dimensions.',
9097
- category: 'container',
9098
- sort: 3,
9099
- },
9100
- offset: {
9101
- label: 'Offset',
9102
- description: 'Absolute positioning offsets.',
9103
- category: 'container',
9104
- sort: 4,
9105
- },
9106
9035
  },
9036
+ styles: {},
9107
9037
  },
9108
9038
  defaults: {
9109
- translateCounter: 1,
9110
- numberOfLines: 1,
9111
9039
  styles: {
9112
- color: 'THEME_COLORS.TEXT',
9113
- fontSize: '16@fs',
9114
- fontWeight: '400',
9115
9040
  flexDirection: 'row',
9116
9041
  position: 'relative',
9117
9042
  zIndex: 1,
9118
9043
  alignSelf: 'flex-start',
9119
9044
  flexGrow: 0,
9120
9045
  flexShrink: 0,
9121
- minHeight: '50@vs',
9122
- flexWrap: 'wrap',
9123
9046
  alignItems: 'center',
9124
9047
  justifyContent: 'center',
9125
- textAlign: 'center',
9126
- paddingHorizontal: '16@s',
9048
+ gap: '12@s',
9127
9049
  },
9050
+ dotType: 'expanding_dot',
9051
+ dot_thickness: 10,
9052
+ inactive_dot_opacity: 0.3,
9053
+ active_dot_color: 'STATIC_COLORS.ONBOARD_DOT_ACTIVE',
9054
+ inactive_dot_color: 'THEME_COLORS.BACKGROUND',
9128
9055
  },
9129
9056
  types: {},
9130
9057
  },
9131
9058
  {
9132
9059
  schemaVersion: 2,
9133
9060
  pattern: {
9134
- type: 'OnboardImage',
9061
+ type: 'OnboardFooter',
9135
9062
  title: 'title',
9136
9063
  description: 'description',
9137
- children: 'node',
9064
+ children: 'never',
9138
9065
  attributes: {
9139
- src: 'string',
9140
- fetchStrategy: ['highIfItsAppLaunch', 'normal', 'lazy', 'none'],
9066
+ adjustsFontSizeToFit: 'boolean',
9067
+ numberOfLines: 'number',
9068
+ translateCounter: 'number',
9141
9069
  styles: {
9142
- resizeMode: ['cover', 'contain', 'stretch', 'center'],
9070
+ color: 'color',
9071
+ fontSize: 'size',
9072
+ fontFamily: 'fontFamily',
9073
+ fontWeight: 'fontWeight',
9074
+ textAlign: 'string',
9143
9075
  flexDirection: ['row', 'column'],
9144
9076
  flexWrap: ['nowrap', 'wrap', 'wrap-reverse'],
9145
9077
  alignItems: [
@@ -9190,35 +9122,70 @@ export const patterns = [
9190
9122
  },
9191
9123
  scrollable: 'boolean',
9192
9124
  testID: 'string',
9193
- video_url: 'string',
9194
- lottie: 'string',
9125
+ textLocalizationKey: 'string',
9126
+ linkedWordFirstLocalizationKey: 'string',
9127
+ linkedWordFirstColor: 'color',
9128
+ linkedWordFirstPage: 'string',
9129
+ linkedWordSecondLocalizationKey: 'string',
9130
+ linkedWordSecondColor: 'color',
9131
+ linkedWordSecondPage: 'string',
9195
9132
  },
9196
9133
  },
9197
9134
  meta: {
9198
- desiredParent: ['>OnboardProvider', '>OnboardItem', '!=Onboard'],
9199
- label: 'Onboard Image',
9200
- description: 'Onboarding hero image with media.',
9135
+ desiredParent: ['>OnboardItem'],
9136
+ label: 'Onboard Footer',
9137
+ description: 'Footer text with optional links.',
9201
9138
  styles: {
9202
- resizeMode: {
9203
- label: 'Resize Mode',
9204
- description: 'How the image fits the frame.',
9139
+ color: {
9140
+ label: 'Color',
9141
+ description: 'Text color.',
9142
+ category: 'style',
9143
+ specialCategory: null,
9144
+ sort: 1,
9145
+ },
9146
+ fontSize: {
9147
+ label: 'Font Size',
9148
+ description: 'Text size.',
9149
+ category: 'style',
9150
+ specialCategory: null,
9151
+ sort: 2,
9152
+ preferredScale: 'f',
9153
+ },
9154
+ fontFamily: {
9155
+ label: 'Font Family',
9156
+ description: 'Font family used for the text.',
9157
+ category: 'style',
9158
+ specialCategory: null,
9159
+ sort: 3,
9160
+ },
9161
+ fontWeight: {
9162
+ label: 'Font Weight',
9163
+ description: 'Text weight.',
9205
9164
  category: 'style',
9206
9165
  specialCategory: null,
9207
9166
  sort: 4,
9208
9167
  },
9168
+ textAlign: {
9169
+ label: 'Text Align',
9170
+ description: 'Text alignment.',
9171
+ category: 'style',
9172
+ specialCategory: null,
9173
+ sort: 5,
9174
+ },
9209
9175
  },
9210
9176
  attributes: {
9211
- src: {
9212
- label: 'Src',
9213
- description: 'Image source URL.',
9177
+ adjustsFontSizeToFit: {
9178
+ label: 'Adjust Font Size To Fit',
9179
+ description:
9180
+ 'Automatically reduces font size to fit the available space.',
9214
9181
  category: 'other',
9215
9182
  specialCategory: null,
9216
9183
  sort: 1,
9217
9184
  },
9218
- fetchStrategy: {
9219
- label: 'Fetch Strategy',
9185
+ showEllipsis: {
9186
+ label: 'Show Ellipsis',
9220
9187
  description:
9221
- "highIfItsAppLaunch ilk başta yükleniyor eğer app_launch placeholder'i ile gelirse\nnormal sonra bütün hepsi toplanıp prefetch ediniyor\nlazy builder açılır açılmaz\nnone ise os'a bırakıldı",
9188
+ 'If text overflows, show ellipsis (…); applied as single-line truncation.',
9222
9189
  category: 'other',
9223
9190
  specialCategory: null,
9224
9191
  sort: 2,
@@ -9496,31 +9463,66 @@ export const patterns = [
9496
9463
  sort: 26,
9497
9464
  },
9498
9465
  },
9499
- video_url: {
9500
- label: 'Video Url',
9501
- description: 'URL for the onboarding video.',
9466
+ textLocalizationKey: {
9467
+ label: 'Text Localization Key',
9468
+ description: 'Localization key for the footer text.',
9502
9469
  category: 'other',
9503
9470
  specialCategory: null,
9504
9471
  sort: 1,
9505
9472
  },
9506
- lottie: {
9507
- label: 'Lottie',
9508
- description: 'Path to the lottie animation.',
9473
+ linkedWordFirstLocalizationKey: {
9474
+ label: 'Linked Word First Localization Key',
9475
+ description: 'Key for the first linked word.',
9509
9476
  category: 'other',
9510
9477
  specialCategory: null,
9511
9478
  sort: 2,
9512
9479
  },
9513
- },
9514
- specialCategories: {
9515
- padding: {
9516
- label: 'Padding',
9517
- description: 'Uniform padding on all sides.',
9518
- category: 'container',
9519
- sort: 1,
9520
- },
9521
- margin: {
9522
- label: 'Margin',
9523
- description: 'Uniform margin on all sides.',
9480
+ linkedWordFirstColor: {
9481
+ label: 'Linked Word First Color',
9482
+ description: 'Color of the first linked word.',
9483
+ category: 'other',
9484
+ specialCategory: null,
9485
+ sort: 3,
9486
+ },
9487
+ linkedWordFirstPage: {
9488
+ label: 'Linked Word First Page',
9489
+ description: 'Page opened by the first link.',
9490
+ category: 'other',
9491
+ specialCategory: null,
9492
+ sort: 4,
9493
+ },
9494
+ linkedWordSecondLocalizationKey: {
9495
+ label: 'Linked Word Second Localization Key',
9496
+ description: 'Key for the second linked word.',
9497
+ category: 'other',
9498
+ specialCategory: null,
9499
+ sort: 5,
9500
+ },
9501
+ linkedWordSecondColor: {
9502
+ label: 'Linked Word Second Color',
9503
+ description: 'Color of the second linked word.',
9504
+ category: 'other',
9505
+ specialCategory: null,
9506
+ sort: 6,
9507
+ },
9508
+ linkedWordSecondPage: {
9509
+ label: 'Linked Word Second Page',
9510
+ description: 'Page opened by the second link.',
9511
+ category: 'other',
9512
+ specialCategory: null,
9513
+ sort: 7,
9514
+ },
9515
+ },
9516
+ specialCategories: {
9517
+ padding: {
9518
+ label: 'Padding',
9519
+ description: 'Uniform padding on all sides.',
9520
+ category: 'container',
9521
+ sort: 1,
9522
+ },
9523
+ margin: {
9524
+ label: 'Margin',
9525
+ description: 'Uniform margin on all sides.',
9524
9526
  category: 'container',
9525
9527
  sort: 2,
9526
9528
  },
@@ -9539,15 +9541,24 @@ export const patterns = [
9539
9541
  },
9540
9542
  },
9541
9543
  defaults: {
9542
- fetchStrategy: 'normal',
9544
+ translateCounter: 1,
9545
+ numberOfLines: 1,
9543
9546
  styles: {
9544
- resizeMode: 'contain',
9545
- flexDirection: 'column',
9547
+ color: 'THEME_COLORS.TEXT',
9548
+ fontSize: '16@fs',
9549
+ fontWeight: '400',
9550
+ flexDirection: 'row',
9546
9551
  position: 'relative',
9547
9552
  zIndex: 1,
9548
9553
  alignSelf: 'flex-start',
9549
9554
  flexGrow: 0,
9550
9555
  flexShrink: 0,
9556
+ minHeight: '50@vs',
9557
+ flexWrap: 'wrap',
9558
+ alignItems: 'center',
9559
+ justifyContent: 'center',
9560
+ textAlign: 'center',
9561
+ paddingHorizontal: '16@s',
9551
9562
  },
9552
9563
  },
9553
9564
  types: {},
@@ -9555,13 +9566,15 @@ export const patterns = [
9555
9566
  {
9556
9567
  schemaVersion: 2,
9557
9568
  pattern: {
9558
- type: 'OnboardItem',
9569
+ type: 'OnboardImage',
9559
9570
  title: 'title',
9560
9571
  description: 'description',
9561
9572
  children: 'node',
9562
9573
  attributes: {
9563
- scrollable: 'boolean',
9574
+ src: 'string',
9575
+ fetchStrategy: ['highIfItsAppLaunch', 'normal', 'lazy', 'none'],
9564
9576
  styles: {
9577
+ resizeMode: ['cover', 'contain', 'stretch', 'center'],
9565
9578
  flexDirection: ['row', 'column'],
9566
9579
  flexWrap: ['nowrap', 'wrap', 'wrap-reverse'],
9567
9580
  alignItems: [
@@ -9610,41 +9623,41 @@ export const patterns = [
9610
9623
  right: 'size',
9611
9624
  zIndex: 'number',
9612
9625
  },
9626
+ scrollable: 'boolean',
9613
9627
  testID: 'string',
9614
- display: ['flex', 'block'],
9628
+ video_url: 'string',
9629
+ lottie: 'string',
9615
9630
  },
9616
9631
  },
9617
9632
  meta: {
9618
- desiredParent: ['=Onboard'],
9619
- label: 'Onboard Item',
9620
- description: 'Single onboarding screen section.',
9621
- specialCategories: {
9622
- padding: {
9623
- label: 'Padding',
9624
- description: 'Uniform padding on all sides.',
9625
- category: 'container',
9626
- sort: 1,
9627
- },
9628
- margin: {
9629
- label: 'Margin',
9630
- description: 'Uniform margin on all sides.',
9631
- category: 'container',
9632
- sort: 2,
9633
- },
9634
- size: {
9635
- label: 'Size',
9636
- description: 'Fixed dimensions.',
9637
- category: 'container',
9638
- sort: 3,
9639
- },
9640
- offset: {
9641
- label: 'Offset',
9642
- description: 'Absolute positioning offsets.',
9643
- category: 'container',
9633
+ desiredParent: ['>OnboardProvider', '>OnboardItem', '!=Onboard'],
9634
+ label: 'Onboard Image',
9635
+ description: 'Onboarding hero image with media.',
9636
+ styles: {
9637
+ resizeMode: {
9638
+ label: 'Resize Mode',
9639
+ description: 'How the image fits the frame.',
9640
+ category: 'style',
9641
+ specialCategory: null,
9644
9642
  sort: 4,
9645
9643
  },
9646
9644
  },
9647
9645
  attributes: {
9646
+ src: {
9647
+ label: 'Src',
9648
+ description: 'Image source URL.',
9649
+ category: 'other',
9650
+ specialCategory: null,
9651
+ sort: 1,
9652
+ },
9653
+ fetchStrategy: {
9654
+ label: 'Fetch Strategy',
9655
+ description:
9656
+ "highIfItsAppLaunch ilk başta yükleniyor eğer app_launch placeholder'i ile gelirse\nnormal sonra bütün hepsi toplanıp prefetch ediniyor\nlazy builder açılır açılmaz\nnone ise os'a bırakıldı",
9657
+ category: 'other',
9658
+ specialCategory: null,
9659
+ sort: 2,
9660
+ },
9648
9661
  scrollable: {
9649
9662
  label: 'Scrollable',
9650
9663
  description: 'Turns scroll interaction on.',
@@ -9670,10 +9683,10 @@ export const patterns = [
9670
9683
  },
9671
9684
  flexDirection: {
9672
9685
  label: 'Flex Direction',
9673
- description: 'Order of child stacking.',
9686
+ description: 'Sets row or column layout.',
9674
9687
  category: 'container',
9675
9688
  specialCategory: null,
9676
- sort: 3,
9689
+ sort: 4,
9677
9690
  },
9678
9691
  flexWrap: {
9679
9692
  label: 'Flex Wrap',
@@ -9698,10 +9711,11 @@ export const patterns = [
9698
9711
  },
9699
9712
  gap: {
9700
9713
  label: 'Gap',
9701
- description: 'Space between child blocks.',
9714
+ description: 'Space between children.',
9702
9715
  category: 'container',
9703
9716
  specialCategory: null,
9704
- sort: 2,
9717
+ sort: 10,
9718
+ preferredScale: 's',
9705
9719
  },
9706
9720
  padding: {
9707
9721
  label: 'Padding',
@@ -9716,7 +9730,8 @@ export const patterns = [
9716
9730
  description: 'Left and right padding.',
9717
9731
  category: 'container',
9718
9732
  specialCategory: 'padding',
9719
- sort: 4,
9733
+ sort: 7,
9734
+ preferredScale: 's',
9720
9735
  },
9721
9736
  paddingVertical: {
9722
9737
  label: 'Padding Vertical',
@@ -9916,35 +9931,66 @@ export const patterns = [
9916
9931
  sort: 26,
9917
9932
  },
9918
9933
  },
9919
- display: {
9920
- label: 'Display',
9921
- description: 'Controls layout display mode.',
9922
- category: 'container',
9934
+ video_url: {
9935
+ label: 'Video Url',
9936
+ description: 'URL for the onboarding video.',
9937
+ category: 'other',
9923
9938
  specialCategory: null,
9924
9939
  sort: 1,
9925
9940
  },
9941
+ lottie: {
9942
+ label: 'Lottie',
9943
+ description: 'Path to the lottie animation.',
9944
+ category: 'other',
9945
+ specialCategory: null,
9946
+ sort: 2,
9947
+ },
9948
+ },
9949
+ specialCategories: {
9950
+ padding: {
9951
+ label: 'Padding',
9952
+ description: 'Uniform padding on all sides.',
9953
+ category: 'container',
9954
+ sort: 1,
9955
+ },
9956
+ margin: {
9957
+ label: 'Margin',
9958
+ description: 'Uniform margin on all sides.',
9959
+ category: 'container',
9960
+ sort: 2,
9961
+ },
9962
+ size: {
9963
+ label: 'Size',
9964
+ description: 'Fixed dimensions.',
9965
+ category: 'container',
9966
+ sort: 3,
9967
+ },
9968
+ offset: {
9969
+ label: 'Offset',
9970
+ description: 'Absolute positioning offsets.',
9971
+ category: 'container',
9972
+ sort: 4,
9973
+ },
9926
9974
  },
9927
- styles: {},
9928
9975
  },
9929
9976
  defaults: {
9977
+ fetchStrategy: 'normal',
9930
9978
  styles: {
9979
+ resizeMode: 'contain',
9931
9980
  flexDirection: 'column',
9932
9981
  position: 'relative',
9933
9982
  zIndex: 1,
9934
9983
  alignSelf: 'flex-start',
9935
9984
  flexGrow: 0,
9936
9985
  flexShrink: 0,
9937
- gap: '16@vs',
9938
- paddingHorizontal: '24@s',
9939
9986
  },
9940
- display: 'flex',
9941
9987
  },
9942
9988
  types: {},
9943
9989
  },
9944
9990
  {
9945
9991
  schemaVersion: 2,
9946
9992
  pattern: {
9947
- type: 'OnboardProvider',
9993
+ type: 'OnboardItem',
9948
9994
  title: 'title',
9949
9995
  description: 'description',
9950
9996
  children: 'node',
@@ -10000,14 +10046,13 @@ export const patterns = [
10000
10046
  zIndex: 'number',
10001
10047
  },
10002
10048
  testID: 'string',
10003
- theme: ['light', 'dark', 'all'],
10004
- borderRadius: 'never',
10049
+ display: ['flex', 'block'],
10005
10050
  },
10006
10051
  },
10007
10052
  meta: {
10008
- desiredParent: ['root'],
10009
- label: 'Onboard Provider',
10010
- description: 'Provides shared settings for onboard.',
10053
+ desiredParent: ['=Onboard'],
10054
+ label: 'Onboard Item',
10055
+ description: 'Single onboarding screen section.',
10011
10056
  specialCategories: {
10012
10057
  padding: {
10013
10058
  label: 'Padding',
@@ -10060,10 +10105,10 @@ export const patterns = [
10060
10105
  },
10061
10106
  flexDirection: {
10062
10107
  label: 'Flex Direction',
10063
- description: 'Sets row or column layout.',
10108
+ description: 'Order of child stacking.',
10064
10109
  category: 'container',
10065
10110
  specialCategory: null,
10066
- sort: 4,
10111
+ sort: 3,
10067
10112
  },
10068
10113
  flexWrap: {
10069
10114
  label: 'Flex Wrap',
@@ -10088,11 +10133,10 @@ export const patterns = [
10088
10133
  },
10089
10134
  gap: {
10090
10135
  label: 'Gap',
10091
- description: 'Space between children.',
10136
+ description: 'Space between child blocks.',
10092
10137
  category: 'container',
10093
10138
  specialCategory: null,
10094
- sort: 10,
10095
- preferredScale: 's',
10139
+ sort: 2,
10096
10140
  },
10097
10141
  padding: {
10098
10142
  label: 'Padding',
@@ -10107,8 +10151,7 @@ export const patterns = [
10107
10151
  description: 'Left and right padding.',
10108
10152
  category: 'container',
10109
10153
  specialCategory: 'padding',
10110
- sort: 7,
10111
- preferredScale: 's',
10154
+ sort: 4,
10112
10155
  },
10113
10156
  paddingVertical: {
10114
10157
  label: 'Padding Vertical',
@@ -10120,31 +10163,35 @@ export const patterns = [
10120
10163
  },
10121
10164
  paddingTop: {
10122
10165
  label: 'Padding Top',
10123
- description: 'Top padding for the provider.',
10166
+ description: 'Top padding only.',
10124
10167
  category: 'container',
10125
10168
  specialCategory: 'padding',
10126
- sort: 1,
10169
+ sort: 9,
10170
+ preferredScale: 'vs',
10127
10171
  },
10128
10172
  paddingBottom: {
10129
10173
  label: 'Padding Bottom',
10130
- description: 'Bottom padding for the provider.',
10174
+ description: 'Bottom padding only.',
10131
10175
  category: 'container',
10132
10176
  specialCategory: 'padding',
10133
- sort: 3,
10177
+ sort: 10,
10178
+ preferredScale: 'vs',
10134
10179
  },
10135
10180
  paddingLeft: {
10136
10181
  label: 'Padding Left',
10137
- description: 'Left padding for the provider.',
10182
+ description: 'Left padding only.',
10138
10183
  category: 'container',
10139
10184
  specialCategory: 'padding',
10140
- sort: 4,
10185
+ sort: 11,
10186
+ preferredScale: 's',
10141
10187
  },
10142
10188
  paddingRight: {
10143
10189
  label: 'Padding Right',
10144
- description: 'Right padding for the provider.',
10190
+ description: 'Right padding only.',
10145
10191
  category: 'container',
10146
10192
  specialCategory: 'padding',
10147
- sort: 2,
10193
+ sort: 12,
10194
+ preferredScale: 's',
10148
10195
  },
10149
10196
  margin: {
10150
10197
  label: 'Margin',
@@ -10304,13 +10351,12 @@ export const patterns = [
10304
10351
  sort: 26,
10305
10352
  },
10306
10353
  },
10307
- theme: {
10308
- label: 'Theme',
10309
- description:
10310
- 'Controls which app theme(s) this onboarding is intended for.',
10311
- category: 'other',
10354
+ display: {
10355
+ label: 'Display',
10356
+ description: 'Controls layout display mode.',
10357
+ category: 'container',
10312
10358
  specialCategory: null,
10313
- sort: -10,
10359
+ sort: 1,
10314
10360
  },
10315
10361
  },
10316
10362
  styles: {},
@@ -10323,29 +10369,23 @@ export const patterns = [
10323
10369
  alignSelf: 'flex-start',
10324
10370
  flexGrow: 0,
10325
10371
  flexShrink: 0,
10326
- width: '100%',
10327
- height: '100%',
10372
+ gap: '16@vs',
10373
+ paddingHorizontal: '24@s',
10328
10374
  },
10375
+ display: 'flex',
10329
10376
  },
10330
10377
  types: {},
10331
10378
  },
10332
10379
  {
10333
10380
  schemaVersion: 2,
10334
10381
  pattern: {
10335
- type: 'OnboardSubtitle',
10382
+ type: 'OnboardProvider',
10336
10383
  title: 'title',
10337
10384
  description: 'description',
10338
- children: 'string',
10385
+ children: 'node',
10339
10386
  attributes: {
10340
- adjustsFontSizeToFit: 'boolean',
10341
- numberOfLines: 'number',
10342
- translateCounter: 'number',
10387
+ scrollable: 'boolean',
10343
10388
  styles: {
10344
- color: 'color',
10345
- fontSize: 'size',
10346
- fontFamily: 'fontFamily',
10347
- fontWeight: 'fontWeight',
10348
- textAlign: 'string',
10349
10389
  flexDirection: ['row', 'column'],
10350
10390
  flexWrap: ['nowrap', 'wrap', 'wrap-reverse'],
10351
10391
  alignItems: [
@@ -10394,69 +10434,54 @@ export const patterns = [
10394
10434
  right: 'size',
10395
10435
  zIndex: 'number',
10396
10436
  },
10397
- scrollable: 'boolean',
10398
10437
  testID: 'string',
10399
- },
10400
- },
10401
- meta: {
10402
- desiredParent: ['>OnboardProvider', '>OnboardItem'],
10403
- label: 'Onboard Subtitle',
10404
- description: 'Subtitle text for an onboarding step.',
10405
- styles: {
10406
- color: {
10407
- label: 'Color',
10408
- description: 'Text color.',
10409
- category: 'style',
10410
- specialCategory: null,
10438
+ theme: ['light', 'dark', 'all'],
10439
+ borderRadius: 'never',
10440
+ animation: [
10441
+ 'default',
10442
+ 'fade',
10443
+ 'fade_from_bottom',
10444
+ 'fade_from_right',
10445
+ 'reveal_from_bottom',
10446
+ 'scale_from_center',
10447
+ 'slide_from_right',
10448
+ 'slide_from_left',
10449
+ 'slide_from_bottom',
10450
+ 'none',
10451
+ ],
10452
+ },
10453
+ },
10454
+ meta: {
10455
+ desiredParent: ['root'],
10456
+ label: 'Onboard Provider',
10457
+ description: 'Provides shared settings for onboard.',
10458
+ specialCategories: {
10459
+ padding: {
10460
+ label: 'Padding',
10461
+ description: 'Uniform padding on all sides.',
10462
+ category: 'container',
10411
10463
  sort: 1,
10412
10464
  },
10413
- fontSize: {
10414
- label: 'Font Size',
10415
- description: 'Text size.',
10416
- category: 'style',
10417
- specialCategory: null,
10465
+ margin: {
10466
+ label: 'Margin',
10467
+ description: 'Uniform margin on all sides.',
10468
+ category: 'container',
10418
10469
  sort: 2,
10419
- preferredScale: 'f',
10420
10470
  },
10421
- fontFamily: {
10422
- label: 'Font Family',
10423
- description: 'Font family used for the text.',
10424
- category: 'style',
10425
- specialCategory: null,
10471
+ size: {
10472
+ label: 'Size',
10473
+ description: 'Fixed dimensions.',
10474
+ category: 'container',
10426
10475
  sort: 3,
10427
10476
  },
10428
- fontWeight: {
10429
- label: 'Font Weight',
10430
- description: 'Text weight.',
10431
- category: 'style',
10432
- specialCategory: null,
10477
+ offset: {
10478
+ label: 'Offset',
10479
+ description: 'Absolute positioning offsets.',
10480
+ category: 'container',
10433
10481
  sort: 4,
10434
10482
  },
10435
- textAlign: {
10436
- label: 'Text Align',
10437
- description: 'Text alignment.',
10438
- category: 'style',
10439
- specialCategory: null,
10440
- sort: 5,
10441
- },
10442
10483
  },
10443
10484
  attributes: {
10444
- adjustsFontSizeToFit: {
10445
- label: 'Adjust Font Size To Fit',
10446
- description:
10447
- 'Automatically reduces font size to fit the available space.',
10448
- category: 'other',
10449
- specialCategory: null,
10450
- sort: 1,
10451
- },
10452
- showEllipsis: {
10453
- label: 'Show Ellipsis',
10454
- description:
10455
- 'If text overflows, show ellipsis (…); applied as single-line truncation.',
10456
- category: 'other',
10457
- specialCategory: null,
10458
- sort: 2,
10459
- },
10460
10485
  scrollable: {
10461
10486
  label: 'Scrollable',
10462
10487
  description: 'Turns scroll interaction on.',
@@ -10542,35 +10567,31 @@ export const patterns = [
10542
10567
  },
10543
10568
  paddingTop: {
10544
10569
  label: 'Padding Top',
10545
- description: 'Top padding only.',
10570
+ description: 'Top padding for the provider.',
10546
10571
  category: 'container',
10547
10572
  specialCategory: 'padding',
10548
- sort: 9,
10549
- preferredScale: 'vs',
10573
+ sort: 1,
10550
10574
  },
10551
10575
  paddingBottom: {
10552
10576
  label: 'Padding Bottom',
10553
- description: 'Bottom padding only.',
10577
+ description: 'Bottom padding for the provider.',
10554
10578
  category: 'container',
10555
10579
  specialCategory: 'padding',
10556
- sort: 10,
10557
- preferredScale: 'vs',
10580
+ sort: 3,
10558
10581
  },
10559
10582
  paddingLeft: {
10560
10583
  label: 'Padding Left',
10561
- description: 'Left padding only.',
10584
+ description: 'Left padding for the provider.',
10562
10585
  category: 'container',
10563
10586
  specialCategory: 'padding',
10564
- sort: 11,
10565
- preferredScale: 's',
10587
+ sort: 4,
10566
10588
  },
10567
10589
  paddingRight: {
10568
10590
  label: 'Padding Right',
10569
- description: 'Right padding only.',
10591
+ description: 'Right padding for the provider.',
10570
10592
  category: 'container',
10571
10593
  specialCategory: 'padding',
10572
- sort: 12,
10573
- preferredScale: 's',
10594
+ sort: 2,
10574
10595
  },
10575
10596
  margin: {
10576
10597
  label: 'Margin',
@@ -10730,47 +10751,35 @@ export const patterns = [
10730
10751
  sort: 26,
10731
10752
  },
10732
10753
  },
10733
- },
10734
- specialCategories: {
10735
- padding: {
10736
- label: 'Padding',
10737
- description: 'Uniform padding on all sides.',
10738
- category: 'container',
10739
- sort: 1,
10754
+ theme: {
10755
+ label: 'Theme',
10756
+ description:
10757
+ 'Controls which app theme(s) this onboarding is intended for.',
10758
+ category: 'other',
10759
+ specialCategory: null,
10760
+ sort: -10,
10740
10761
  },
10741
- margin: {
10742
- label: 'Margin',
10743
- description: 'Uniform margin on all sides.',
10744
- category: 'container',
10762
+ animation: {
10763
+ label: 'Page transition animation',
10764
+ description:
10765
+ 'When this component is a GlobalProvider page: animation used when navigating to this screen.',
10766
+ category: 'other',
10767
+ specialCategory: null,
10745
10768
  sort: 2,
10746
10769
  },
10747
- size: {
10748
- label: 'Size',
10749
- description: 'Fixed dimensions.',
10750
- category: 'container',
10751
- sort: 3,
10752
- },
10753
- offset: {
10754
- label: 'Offset',
10755
- description: 'Absolute positioning offsets.',
10756
- category: 'container',
10757
- sort: 4,
10758
- },
10759
10770
  },
10771
+ styles: {},
10760
10772
  },
10761
10773
  defaults: {
10762
- translateCounter: 1,
10763
- numberOfLines: 1,
10764
10774
  styles: {
10765
- color: 'THEME_COLORS.TEXT',
10766
- fontSize: '14@fs',
10767
- fontWeight: '600',
10768
10775
  flexDirection: 'column',
10769
10776
  position: 'relative',
10770
10777
  zIndex: 1,
10771
10778
  alignSelf: 'flex-start',
10772
10779
  flexGrow: 0,
10773
10780
  flexShrink: 0,
10781
+ width: '100%',
10782
+ height: '100%',
10774
10783
  },
10775
10784
  },
10776
10785
  types: {},
@@ -10778,7 +10787,7 @@ export const patterns = [
10778
10787
  {
10779
10788
  schemaVersion: 2,
10780
10789
  pattern: {
10781
- type: 'OnboardTitle',
10790
+ type: 'OnboardSubtitle',
10782
10791
  title: 'title',
10783
10792
  description: 'description',
10784
10793
  children: 'string',
@@ -10845,9 +10854,9 @@ export const patterns = [
10845
10854
  },
10846
10855
  },
10847
10856
  meta: {
10848
- desiredParent: ['>OnboardItem', '>OnboardProvider'],
10849
- label: 'Onboard Title',
10850
- description: 'Title text for an onboarding step.',
10857
+ desiredParent: ['>OnboardProvider', '>OnboardItem'],
10858
+ label: 'Onboard Subtitle',
10859
+ description: 'Subtitle text for an onboarding step.',
10851
10860
  styles: {
10852
10861
  color: {
10853
10862
  label: 'Color',
@@ -11209,15 +11218,14 @@ export const patterns = [
11209
11218
  numberOfLines: 1,
11210
11219
  styles: {
11211
11220
  color: 'THEME_COLORS.TEXT',
11212
- fontSize: '24@fs',
11213
- fontWeight: '700',
11221
+ fontSize: '14@fs',
11222
+ fontWeight: '600',
11214
11223
  flexDirection: 'column',
11215
11224
  position: 'relative',
11216
11225
  zIndex: 1,
11217
11226
  alignSelf: 'flex-start',
11218
11227
  flexGrow: 0,
11219
11228
  flexShrink: 0,
11220
- textAlign: 'center',
11221
11229
  },
11222
11230
  },
11223
11231
  types: {},
@@ -11225,15 +11233,20 @@ export const patterns = [
11225
11233
  {
11226
11234
  schemaVersion: 2,
11227
11235
  pattern: {
11228
- type: 'PaywallBackground',
11236
+ type: 'OnboardTitle',
11229
11237
  title: 'title',
11230
11238
  description: 'description',
11231
- children: 'never',
11239
+ children: 'string',
11232
11240
  attributes: {
11233
- src: 'string',
11234
- resizeMode: ['cover', 'contain', 'stretch', 'center'],
11235
- scrollable: 'boolean',
11241
+ adjustsFontSizeToFit: 'boolean',
11242
+ numberOfLines: 'number',
11243
+ translateCounter: 'number',
11236
11244
  styles: {
11245
+ color: 'color',
11246
+ fontSize: 'size',
11247
+ fontFamily: 'fontFamily',
11248
+ fontWeight: 'fontWeight',
11249
+ textAlign: 'string',
11237
11250
  flexDirection: ['row', 'column'],
11238
11251
  flexWrap: ['nowrap', 'wrap', 'wrap-reverse'],
11239
11252
  alignItems: [
@@ -11282,28 +11295,68 @@ export const patterns = [
11282
11295
  right: 'size',
11283
11296
  zIndex: 'number',
11284
11297
  },
11298
+ scrollable: 'boolean',
11285
11299
  testID: 'string',
11286
11300
  },
11287
11301
  },
11288
11302
  meta: {
11289
- desiredParent: ['>PaywallProvider'],
11290
- label: 'Paywall Background',
11291
- description: 'Paywall Background component.',
11292
- styles: {},
11303
+ desiredParent: ['>OnboardItem', '>OnboardProvider'],
11304
+ label: 'Onboard Title',
11305
+ description: 'Title text for an onboarding step.',
11306
+ styles: {
11307
+ color: {
11308
+ label: 'Color',
11309
+ description: 'Text color.',
11310
+ category: 'style',
11311
+ specialCategory: null,
11312
+ sort: 1,
11313
+ },
11314
+ fontSize: {
11315
+ label: 'Font Size',
11316
+ description: 'Text size.',
11317
+ category: 'style',
11318
+ specialCategory: null,
11319
+ sort: 2,
11320
+ preferredScale: 'f',
11321
+ },
11322
+ fontFamily: {
11323
+ label: 'Font Family',
11324
+ description: 'Font family used for the text.',
11325
+ category: 'style',
11326
+ specialCategory: null,
11327
+ sort: 3,
11328
+ },
11329
+ fontWeight: {
11330
+ label: 'Font Weight',
11331
+ description: 'Text weight.',
11332
+ category: 'style',
11333
+ specialCategory: null,
11334
+ sort: 4,
11335
+ },
11336
+ textAlign: {
11337
+ label: 'Text Align',
11338
+ description: 'Text alignment.',
11339
+ category: 'style',
11340
+ specialCategory: null,
11341
+ sort: 5,
11342
+ },
11343
+ },
11293
11344
  attributes: {
11294
- src: {
11295
- label: 'Src',
11296
- description: 'Image source URL.',
11345
+ adjustsFontSizeToFit: {
11346
+ label: 'Adjust Font Size To Fit',
11347
+ description:
11348
+ 'Automatically reduces font size to fit the available space.',
11297
11349
  category: 'other',
11298
11350
  specialCategory: null,
11299
11351
  sort: 1,
11300
11352
  },
11301
- resizeMode: {
11302
- label: 'Resize Mode',
11303
- description: 'How the image fits its container.',
11353
+ showEllipsis: {
11354
+ label: 'Show Ellipsis',
11355
+ description:
11356
+ 'If text overflows, show ellipsis (…); applied as single-line truncation.',
11304
11357
  category: 'other',
11305
11358
  specialCategory: null,
11306
- sort: 4,
11359
+ sort: 2,
11307
11360
  },
11308
11361
  scrollable: {
11309
11362
  label: 'Scrollable',
@@ -11607,20 +11660,19 @@ export const patterns = [
11607
11660
  },
11608
11661
  },
11609
11662
  defaults: {
11610
- resizeMode: 'cover',
11663
+ translateCounter: 1,
11664
+ numberOfLines: 1,
11611
11665
  styles: {
11612
- width: '100%',
11613
- height: '100%',
11614
- position: 'absolute',
11615
- top: 0,
11616
- left: 0,
11617
- right: 0,
11618
- bottom: 0,
11619
- zIndex: 1,
11666
+ color: 'THEME_COLORS.TEXT',
11667
+ fontSize: '24@fs',
11668
+ fontWeight: '700',
11620
11669
  flexDirection: 'column',
11670
+ position: 'relative',
11671
+ zIndex: 1,
11621
11672
  alignSelf: 'flex-start',
11622
11673
  flexGrow: 0,
11623
11674
  flexShrink: 0,
11675
+ textAlign: 'center',
11624
11676
  },
11625
11677
  },
11626
11678
  types: {},
@@ -11628,23 +11680,15 @@ export const patterns = [
11628
11680
  {
11629
11681
  schemaVersion: 2,
11630
11682
  pattern: {
11631
- type: 'PaywallCloseButton',
11683
+ type: 'PaywallBackground',
11632
11684
  title: 'title',
11633
11685
  description: 'description',
11634
11686
  children: 'never',
11635
11687
  attributes: {
11636
- iconType: 'iconType',
11637
- size: 'number',
11638
- strokeWidth: 'number',
11639
- adjustsFontSizeToFit: 'boolean',
11640
- numberOfLines: 'number',
11641
- translateCounter: 'number',
11688
+ src: 'string',
11689
+ resizeMode: ['cover', 'contain', 'stretch', 'center'],
11690
+ scrollable: 'boolean',
11642
11691
  styles: {
11643
- color: 'color',
11644
- fontSize: 'size',
11645
- fontFamily: 'fontFamily',
11646
- fontWeight: 'fontWeight',
11647
- textAlign: 'string',
11648
11692
  flexDirection: ['row', 'column'],
11649
11693
  flexWrap: ['nowrap', 'wrap', 'wrap-reverse'],
11650
11694
  alignItems: [
@@ -11693,89 +11737,28 @@ export const patterns = [
11693
11737
  right: 'size',
11694
11738
  zIndex: 'number',
11695
11739
  },
11696
- scrollable: 'boolean',
11697
11740
  testID: 'string',
11698
11741
  },
11699
11742
  },
11700
11743
  meta: {
11701
11744
  desiredParent: ['>PaywallProvider'],
11702
- label: 'Paywall Close Button',
11703
- description: 'Paywall Close Button component.',
11704
- styles: {
11705
- color: {
11706
- label: 'Color',
11707
- description: 'Text color.',
11708
- category: 'style',
11709
- specialCategory: null,
11710
- sort: 1,
11711
- },
11712
- fontSize: {
11713
- label: 'Font Size',
11714
- description: 'Text size.',
11715
- category: 'style',
11716
- specialCategory: null,
11717
- sort: 2,
11718
- preferredScale: 'f',
11719
- },
11720
- fontFamily: {
11721
- label: 'Font Family',
11722
- description: 'Font family used for the text.',
11723
- category: 'style',
11724
- specialCategory: null,
11725
- sort: 3,
11726
- },
11727
- fontWeight: {
11728
- label: 'Font Weight',
11729
- description: 'Text weight.',
11730
- category: 'style',
11731
- specialCategory: null,
11732
- sort: 4,
11733
- },
11734
- textAlign: {
11735
- label: 'Text Align',
11736
- description: 'Text alignment.',
11737
- category: 'style',
11738
- specialCategory: null,
11739
- sort: 5,
11740
- },
11741
- },
11745
+ label: 'Paywall Background',
11746
+ description: 'Paywall Background component.',
11747
+ styles: {},
11742
11748
  attributes: {
11743
- iconType: {
11744
- label: 'Icon',
11745
- description: 'Which icon to render.',
11746
- category: 'other',
11747
- specialCategory: null,
11748
- sort: 1,
11749
- },
11750
- size: {
11751
- label: 'Size',
11752
- description: 'Icon size (px).',
11753
- category: 'other',
11754
- specialCategory: null,
11755
- sort: 2,
11756
- },
11757
- strokeWidth: {
11758
- label: 'Stroke Width',
11759
- description: 'SVG stroke width override (applied to the icon paths).',
11760
- category: 'other',
11761
- specialCategory: null,
11762
- sort: 3,
11763
- },
11764
- adjustsFontSizeToFit: {
11765
- label: 'Adjust Font Size To Fit',
11766
- description:
11767
- 'Automatically reduces font size to fit the available space.',
11749
+ src: {
11750
+ label: 'Src',
11751
+ description: 'Image source URL.',
11768
11752
  category: 'other',
11769
11753
  specialCategory: null,
11770
11754
  sort: 1,
11771
11755
  },
11772
- showEllipsis: {
11773
- label: 'Show Ellipsis',
11774
- description:
11775
- 'If text overflows, show ellipsis (…); applied as single-line truncation.',
11756
+ resizeMode: {
11757
+ label: 'Resize Mode',
11758
+ description: 'How the image fits its container.',
11776
11759
  category: 'other',
11777
11760
  specialCategory: null,
11778
- sort: 2,
11761
+ sort: 4,
11779
11762
  },
11780
11763
  scrollable: {
11781
11764
  label: 'Scrollable',
@@ -12079,38 +12062,35 @@ export const patterns = [
12079
12062
  },
12080
12063
  },
12081
12064
  defaults: {
12082
- iconType: 'close',
12083
- strokeWidth: 1.5,
12065
+ resizeMode: 'cover',
12084
12066
  styles: {
12085
- fontSize: '16@fs',
12086
- color: 'THEME_COLORS.TEXT',
12087
- fontWeight: '400',
12088
- flexDirection: 'row',
12067
+ width: '100%',
12068
+ height: '100%',
12089
12069
  position: 'absolute',
12070
+ top: 0,
12071
+ left: 0,
12072
+ right: 0,
12073
+ bottom: 0,
12090
12074
  zIndex: 1,
12075
+ flexDirection: 'column',
12091
12076
  alignSelf: 'flex-start',
12092
12077
  flexGrow: 0,
12093
12078
  flexShrink: 0,
12094
- top: '35@vs',
12095
- left: '24@s',
12096
- justifyContent: 'center',
12097
- alignItems: 'center',
12098
12079
  },
12099
- translateCounter: 1,
12100
- numberOfLines: 1,
12101
- testID: 'paywall-close-button',
12102
- size: 24,
12103
12080
  },
12104
12081
  types: {},
12105
12082
  },
12106
12083
  {
12107
12084
  schemaVersion: 2,
12108
12085
  pattern: {
12109
- type: 'PaywallFooter',
12086
+ type: 'PaywallCloseButton',
12110
12087
  title: 'title',
12111
12088
  description: 'description',
12112
12089
  children: 'never',
12113
12090
  attributes: {
12091
+ iconType: 'iconType',
12092
+ size: 'number',
12093
+ strokeWidth: 'number',
12114
12094
  adjustsFontSizeToFit: 'boolean',
12115
12095
  numberOfLines: 'number',
12116
12096
  translateCounter: 'number',
@@ -12170,19 +12150,12 @@ export const patterns = [
12170
12150
  },
12171
12151
  scrollable: 'boolean',
12172
12152
  testID: 'string',
12173
- textLocalizationKey: 'string',
12174
- linkedWordFirstLocalizationKey: 'string',
12175
- linkedWordFirstColor: 'color',
12176
- linkedWordFirstPage: 'string',
12177
- linkedWordSecondLocalizationKey: 'string',
12178
- linkedWordSecondColor: 'color',
12179
- linkedWordSecondPage: 'string',
12180
12153
  },
12181
12154
  },
12182
12155
  meta: {
12183
12156
  desiredParent: ['>PaywallProvider'],
12184
- label: 'Paywall Footer',
12185
- description: 'Footer text with optional links for paywall screens.',
12157
+ label: 'Paywall Close Button',
12158
+ description: 'Paywall Close Button component.',
12186
12159
  styles: {
12187
12160
  color: {
12188
12161
  label: 'Color',
@@ -12222,6 +12195,27 @@ export const patterns = [
12222
12195
  },
12223
12196
  },
12224
12197
  attributes: {
12198
+ iconType: {
12199
+ label: 'Icon',
12200
+ description: 'Which icon to render.',
12201
+ category: 'other',
12202
+ specialCategory: null,
12203
+ sort: 1,
12204
+ },
12205
+ size: {
12206
+ label: 'Size',
12207
+ description: 'Icon size (px).',
12208
+ category: 'other',
12209
+ specialCategory: null,
12210
+ sort: 2,
12211
+ },
12212
+ strokeWidth: {
12213
+ label: 'Stroke Width',
12214
+ description: 'SVG stroke width override (applied to the icon paths).',
12215
+ category: 'other',
12216
+ specialCategory: null,
12217
+ sort: 3,
12218
+ },
12225
12219
  adjustsFontSizeToFit: {
12226
12220
  label: 'Adjust Font Size To Fit',
12227
12221
  description:
@@ -12511,55 +12505,6 @@ export const patterns = [
12511
12505
  sort: 26,
12512
12506
  },
12513
12507
  },
12514
- textLocalizationKey: {
12515
- label: 'Text Localization Key',
12516
- description: 'Localization key for the footer text.',
12517
- category: 'other',
12518
- specialCategory: null,
12519
- sort: 1,
12520
- },
12521
- linkedWordFirstLocalizationKey: {
12522
- label: 'Linked Word First Localization Key',
12523
- description: 'Key for the first linked word.',
12524
- category: 'other',
12525
- specialCategory: null,
12526
- sort: 2,
12527
- },
12528
- linkedWordFirstColor: {
12529
- label: 'Linked Word First Color',
12530
- description: 'Color of the first linked word.',
12531
- category: 'other',
12532
- specialCategory: null,
12533
- sort: 3,
12534
- },
12535
- linkedWordFirstPage: {
12536
- label: 'Linked Word First Page',
12537
- description: 'Page opened by the first link.',
12538
- category: 'other',
12539
- specialCategory: null,
12540
- sort: 4,
12541
- },
12542
- linkedWordSecondLocalizationKey: {
12543
- label: 'Linked Word Second Localization Key',
12544
- description: 'Key for the second linked word.',
12545
- category: 'other',
12546
- specialCategory: null,
12547
- sort: 5,
12548
- },
12549
- linkedWordSecondColor: {
12550
- label: 'Linked Word Second Color',
12551
- description: 'Color of the second linked word.',
12552
- category: 'other',
12553
- specialCategory: null,
12554
- sort: 6,
12555
- },
12556
- linkedWordSecondPage: {
12557
- label: 'Linked Word Second Page',
12558
- description: 'Page opened by the second link.',
12559
- category: 'other',
12560
- specialCategory: null,
12561
- sort: 7,
12562
- },
12563
12508
  },
12564
12509
  specialCategories: {
12565
12510
  padding: {
@@ -12589,38 +12534,47 @@ export const patterns = [
12589
12534
  },
12590
12535
  },
12591
12536
  defaults: {
12592
- translateCounter: 1,
12593
- numberOfLines: 1,
12537
+ iconType: 'close',
12538
+ strokeWidth: 1.5,
12594
12539
  styles: {
12595
- color: 'THEME_COLORS.TEXT',
12596
12540
  fontSize: '16@fs',
12541
+ color: 'THEME_COLORS.TEXT',
12597
12542
  fontWeight: '400',
12598
12543
  flexDirection: 'row',
12599
- position: 'relative',
12544
+ position: 'absolute',
12600
12545
  zIndex: 1,
12601
12546
  alignSelf: 'flex-start',
12602
12547
  flexGrow: 0,
12603
12548
  flexShrink: 0,
12604
- minHeight: '50@vs',
12605
- flexWrap: 'wrap',
12606
- alignItems: 'center',
12549
+ top: '35@vs',
12550
+ left: '24@s',
12607
12551
  justifyContent: 'center',
12608
- textAlign: 'center',
12609
- paddingHorizontal: '16@s',
12552
+ alignItems: 'center',
12610
12553
  },
12554
+ translateCounter: 1,
12555
+ numberOfLines: 1,
12556
+ testID: 'paywall-close-button',
12557
+ size: 24,
12611
12558
  },
12612
12559
  types: {},
12613
12560
  },
12614
12561
  {
12615
12562
  schemaVersion: 2,
12616
12563
  pattern: {
12617
- type: 'PaywallOptions',
12564
+ type: 'PaywallFooter',
12618
12565
  title: 'title',
12619
12566
  description: 'description',
12620
- children: 'node',
12567
+ children: 'never',
12621
12568
  attributes: {
12622
- scrollable: 'boolean',
12569
+ adjustsFontSizeToFit: 'boolean',
12570
+ numberOfLines: 'number',
12571
+ translateCounter: 'number',
12623
12572
  styles: {
12573
+ color: 'color',
12574
+ fontSize: 'size',
12575
+ fontFamily: 'fontFamily',
12576
+ fontWeight: 'fontWeight',
12577
+ textAlign: 'string',
12624
12578
  flexDirection: ['row', 'column'],
12625
12579
  flexWrap: ['nowrap', 'wrap', 'wrap-reverse'],
12626
12580
  alignItems: [
@@ -12669,40 +12623,76 @@ export const patterns = [
12669
12623
  right: 'size',
12670
12624
  zIndex: 'number',
12671
12625
  },
12626
+ scrollable: 'boolean',
12672
12627
  testID: 'string',
12628
+ textLocalizationKey: 'string',
12629
+ linkedWordFirstLocalizationKey: 'string',
12630
+ linkedWordFirstColor: 'color',
12631
+ linkedWordFirstPage: 'string',
12632
+ linkedWordSecondLocalizationKey: 'string',
12633
+ linkedWordSecondColor: 'color',
12634
+ linkedWordSecondPage: 'string',
12673
12635
  },
12674
12636
  },
12675
12637
  meta: {
12676
12638
  desiredParent: ['>PaywallProvider'],
12677
- label: 'Paywall Options',
12678
- description: 'Paywall options selector component.',
12679
- specialCategories: {
12680
- padding: {
12681
- label: 'Padding',
12682
- description: 'Uniform padding on all sides.',
12683
- category: 'container',
12639
+ label: 'Paywall Footer',
12640
+ description: 'Footer text with optional links for paywall screens.',
12641
+ styles: {
12642
+ color: {
12643
+ label: 'Color',
12644
+ description: 'Text color.',
12645
+ category: 'style',
12646
+ specialCategory: null,
12684
12647
  sort: 1,
12685
12648
  },
12686
- margin: {
12687
- label: 'Margin',
12688
- description: 'Uniform margin on all sides.',
12689
- category: 'container',
12690
- sort: 2,
12691
- },
12692
- size: {
12693
- label: 'Size',
12694
- description: 'Fixed dimensions.',
12695
- category: 'container',
12649
+ fontSize: {
12650
+ label: 'Font Size',
12651
+ description: 'Text size.',
12652
+ category: 'style',
12653
+ specialCategory: null,
12654
+ sort: 2,
12655
+ preferredScale: 'f',
12656
+ },
12657
+ fontFamily: {
12658
+ label: 'Font Family',
12659
+ description: 'Font family used for the text.',
12660
+ category: 'style',
12661
+ specialCategory: null,
12696
12662
  sort: 3,
12697
12663
  },
12698
- offset: {
12699
- label: 'Offset',
12700
- description: 'Absolute positioning offsets.',
12701
- category: 'container',
12664
+ fontWeight: {
12665
+ label: 'Font Weight',
12666
+ description: 'Text weight.',
12667
+ category: 'style',
12668
+ specialCategory: null,
12702
12669
  sort: 4,
12703
12670
  },
12671
+ textAlign: {
12672
+ label: 'Text Align',
12673
+ description: 'Text alignment.',
12674
+ category: 'style',
12675
+ specialCategory: null,
12676
+ sort: 5,
12677
+ },
12704
12678
  },
12705
12679
  attributes: {
12680
+ adjustsFontSizeToFit: {
12681
+ label: 'Adjust Font Size To Fit',
12682
+ description:
12683
+ 'Automatically reduces font size to fit the available space.',
12684
+ category: 'other',
12685
+ specialCategory: null,
12686
+ sort: 1,
12687
+ },
12688
+ showEllipsis: {
12689
+ label: 'Show Ellipsis',
12690
+ description:
12691
+ 'If text overflows, show ellipsis (…); applied as single-line truncation.',
12692
+ category: 'other',
12693
+ specialCategory: null,
12694
+ sort: 2,
12695
+ },
12706
12696
  scrollable: {
12707
12697
  label: 'Scrollable',
12708
12698
  description: 'Turns scroll interaction on.',
@@ -12976,20 +12966,102 @@ export const patterns = [
12976
12966
  sort: 26,
12977
12967
  },
12978
12968
  },
12969
+ textLocalizationKey: {
12970
+ label: 'Text Localization Key',
12971
+ description: 'Localization key for the footer text.',
12972
+ category: 'other',
12973
+ specialCategory: null,
12974
+ sort: 1,
12975
+ },
12976
+ linkedWordFirstLocalizationKey: {
12977
+ label: 'Linked Word First Localization Key',
12978
+ description: 'Key for the first linked word.',
12979
+ category: 'other',
12980
+ specialCategory: null,
12981
+ sort: 2,
12982
+ },
12983
+ linkedWordFirstColor: {
12984
+ label: 'Linked Word First Color',
12985
+ description: 'Color of the first linked word.',
12986
+ category: 'other',
12987
+ specialCategory: null,
12988
+ sort: 3,
12989
+ },
12990
+ linkedWordFirstPage: {
12991
+ label: 'Linked Word First Page',
12992
+ description: 'Page opened by the first link.',
12993
+ category: 'other',
12994
+ specialCategory: null,
12995
+ sort: 4,
12996
+ },
12997
+ linkedWordSecondLocalizationKey: {
12998
+ label: 'Linked Word Second Localization Key',
12999
+ description: 'Key for the second linked word.',
13000
+ category: 'other',
13001
+ specialCategory: null,
13002
+ sort: 5,
13003
+ },
13004
+ linkedWordSecondColor: {
13005
+ label: 'Linked Word Second Color',
13006
+ description: 'Color of the second linked word.',
13007
+ category: 'other',
13008
+ specialCategory: null,
13009
+ sort: 6,
13010
+ },
13011
+ linkedWordSecondPage: {
13012
+ label: 'Linked Word Second Page',
13013
+ description: 'Page opened by the second link.',
13014
+ category: 'other',
13015
+ specialCategory: null,
13016
+ sort: 7,
13017
+ },
13018
+ },
13019
+ specialCategories: {
13020
+ padding: {
13021
+ label: 'Padding',
13022
+ description: 'Uniform padding on all sides.',
13023
+ category: 'container',
13024
+ sort: 1,
13025
+ },
13026
+ margin: {
13027
+ label: 'Margin',
13028
+ description: 'Uniform margin on all sides.',
13029
+ category: 'container',
13030
+ sort: 2,
13031
+ },
13032
+ size: {
13033
+ label: 'Size',
13034
+ description: 'Fixed dimensions.',
13035
+ category: 'container',
13036
+ sort: 3,
13037
+ },
13038
+ offset: {
13039
+ label: 'Offset',
13040
+ description: 'Absolute positioning offsets.',
13041
+ category: 'container',
13042
+ sort: 4,
13043
+ },
12979
13044
  },
12980
- styles: {},
12981
13045
  },
12982
13046
  defaults: {
13047
+ translateCounter: 1,
13048
+ numberOfLines: 1,
12983
13049
  styles: {
13050
+ color: 'THEME_COLORS.TEXT',
13051
+ fontSize: '16@fs',
13052
+ fontWeight: '400',
12984
13053
  flexDirection: 'row',
12985
13054
  position: 'relative',
12986
13055
  zIndex: 1,
12987
13056
  alignSelf: 'flex-start',
12988
13057
  flexGrow: 0,
12989
13058
  flexShrink: 0,
12990
- justifyContent: 'space-between',
13059
+ minHeight: '50@vs',
13060
+ flexWrap: 'wrap',
12991
13061
  alignItems: 'center',
12992
- minHeight: '60px',
13062
+ justifyContent: 'center',
13063
+ textAlign: 'center',
13064
+ paddingHorizontal: '16@s',
12993
13065
  },
12994
13066
  },
12995
13067
  types: {},
@@ -12997,7 +13069,7 @@ export const patterns = [
12997
13069
  {
12998
13070
  schemaVersion: 2,
12999
13071
  pattern: {
13000
- type: 'PaywallProvider',
13072
+ type: 'PaywallOptions',
13001
13073
  title: 'title',
13002
13074
  description: 'description',
13003
13075
  children: 'node',
@@ -13053,13 +13125,12 @@ export const patterns = [
13053
13125
  zIndex: 'number',
13054
13126
  },
13055
13127
  testID: 'string',
13056
- delay: 'number',
13057
13128
  },
13058
13129
  },
13059
13130
  meta: {
13060
- desiredParent: ['all'],
13061
- label: 'Paywall Provider',
13062
- description: 'Provider/wrapper for paywall screen components.',
13131
+ desiredParent: ['>PaywallProvider'],
13132
+ label: 'Paywall Options',
13133
+ description: 'Paywall options selector component.',
13063
13134
  specialCategories: {
13064
13135
  padding: {
13065
13136
  label: 'Padding',
@@ -13360,28 +13431,20 @@ export const patterns = [
13360
13431
  sort: 26,
13361
13432
  },
13362
13433
  },
13363
- delay: {
13364
- label: 'Back Delay (ms)',
13365
- description:
13366
- 'Milliseconds before the paywall can be dismissed via back/close.',
13367
- category: 'other',
13368
- specialCategory: null,
13369
- sort: 1,
13370
- },
13371
13434
  },
13372
- mockableFeatures: { products: true, benefits: true },
13373
13435
  styles: {},
13374
13436
  },
13375
13437
  defaults: {
13376
13438
  styles: {
13377
- flexDirection: 'column',
13439
+ flexDirection: 'row',
13378
13440
  position: 'relative',
13379
13441
  zIndex: 1,
13380
13442
  alignSelf: 'flex-start',
13381
13443
  flexGrow: 0,
13382
13444
  flexShrink: 0,
13383
- width: '100%',
13384
- height: '100%',
13445
+ justifyContent: 'space-between',
13446
+ alignItems: 'center',
13447
+ minHeight: '60px',
13385
13448
  },
13386
13449
  },
13387
13450
  types: {},
@@ -13389,27 +13452,13 @@ export const patterns = [
13389
13452
  {
13390
13453
  schemaVersion: 2,
13391
13454
  pattern: {
13392
- type: 'PaywallSubscribeButton',
13455
+ type: 'PaywallProvider',
13393
13456
  title: 'title',
13394
13457
  description: 'description',
13395
- children: 'string',
13458
+ children: 'node',
13396
13459
  attributes: {
13460
+ scrollable: 'boolean',
13397
13461
  styles: {
13398
- color: 'color',
13399
- fontSize: 'size',
13400
- fontWeight: [
13401
- 'normal',
13402
- 'bold',
13403
- '100',
13404
- '200',
13405
- '300',
13406
- '400',
13407
- '500',
13408
- '600',
13409
- '700',
13410
- '800',
13411
- '900',
13412
- ],
13413
13462
  flexDirection: ['row', 'column'],
13414
13463
  flexWrap: ['nowrap', 'wrap', 'wrap-reverse'],
13415
13464
  alignItems: [
@@ -13458,37 +13507,26 @@ export const patterns = [
13458
13507
  right: 'size',
13459
13508
  zIndex: 'number',
13460
13509
  },
13461
- scrollable: 'boolean',
13462
13510
  testID: 'string',
13511
+ delay: 'number',
13512
+ animation: [
13513
+ 'default',
13514
+ 'fade',
13515
+ 'fade_from_bottom',
13516
+ 'fade_from_right',
13517
+ 'reveal_from_bottom',
13518
+ 'scale_from_center',
13519
+ 'slide_from_right',
13520
+ 'slide_from_left',
13521
+ 'slide_from_bottom',
13522
+ 'none',
13523
+ ],
13463
13524
  },
13464
13525
  },
13465
13526
  meta: {
13466
- desiredParent: ['>PaywallProvider'],
13467
- label: 'Paywall Subscribe Button',
13468
- description: 'Paywall subscribe call-to-action button. Extends Button.',
13469
- styles: {
13470
- color: {
13471
- label: 'Color',
13472
- description: 'Text color of the button.',
13473
- category: 'style',
13474
- specialCategory: null,
13475
- sort: 1,
13476
- },
13477
- fontSize: {
13478
- label: 'Font Size',
13479
- description: 'Text size of the button.',
13480
- category: 'style',
13481
- specialCategory: null,
13482
- sort: 2,
13483
- },
13484
- fontWeight: {
13485
- label: 'Font Weight',
13486
- description: 'Text weight of the button.',
13487
- category: 'style',
13488
- specialCategory: null,
13489
- sort: 3,
13490
- },
13491
- },
13527
+ desiredParent: ['all'],
13528
+ label: 'Paywall Provider',
13529
+ description: 'Provider/wrapper for paywall screen components.',
13492
13530
  specialCategories: {
13493
13531
  padding: {
13494
13532
  label: 'Padding',
@@ -13789,26 +13827,36 @@ export const patterns = [
13789
13827
  sort: 26,
13790
13828
  },
13791
13829
  },
13830
+ delay: {
13831
+ label: 'Back Delay (ms)',
13832
+ description:
13833
+ 'Milliseconds before the paywall can be dismissed via back/close.',
13834
+ category: 'other',
13835
+ specialCategory: null,
13836
+ sort: 1,
13837
+ },
13838
+ animation: {
13839
+ label: 'Page transition animation',
13840
+ description:
13841
+ 'When this component is a GlobalProvider page: animation used when navigating to this screen.',
13842
+ category: 'other',
13843
+ specialCategory: null,
13844
+ sort: 2,
13845
+ },
13792
13846
  },
13847
+ mockableFeatures: { products: true, benefits: true },
13848
+ styles: {},
13793
13849
  },
13794
13850
  defaults: {
13795
13851
  styles: {
13796
- display: 'flex',
13797
- alignItems: 'center',
13798
- justifyContent: 'center',
13799
- backgroundColor: '#6495ED',
13800
13852
  flexDirection: 'column',
13801
13853
  position: 'relative',
13802
13854
  zIndex: 1,
13803
13855
  alignSelf: 'flex-start',
13804
13856
  flexGrow: 0,
13805
13857
  flexShrink: 0,
13806
- paddingHorizontal: '20@s',
13807
- paddingVertical: '12@vs',
13808
- borderRadius: '12@s',
13809
- color: '#FFFFFF',
13810
- fontSize: '16@fs',
13811
- fontWeight: '700',
13858
+ width: '100%',
13859
+ height: '100%',
13812
13860
  },
13813
13861
  },
13814
13862
  types: {},
@@ -13816,26 +13864,33 @@ export const patterns = [
13816
13864
  {
13817
13865
  schemaVersion: 2,
13818
13866
  pattern: {
13819
- type: 'PriceTag',
13867
+ type: 'PaywallSubscribeButton',
13820
13868
  title: 'title',
13821
13869
  description: 'description',
13822
13870
  children: 'string',
13823
13871
  attributes: {
13824
- adjustsFontSizeToFit: 'boolean',
13825
- numberOfLines: 'number',
13826
- translateCounter: 'number',
13827
13872
  styles: {
13828
13873
  color: 'color',
13829
13874
  fontSize: 'size',
13830
- fontFamily: 'fontFamily',
13831
- fontWeight: 'fontWeight',
13832
- textAlign: 'string',
13833
- flexDirection: ['row', 'column'],
13834
- flexWrap: ['nowrap', 'wrap', 'wrap-reverse'],
13835
- alignItems: [
13836
- 'flex-start',
13837
- 'center',
13838
- 'flex-end',
13875
+ fontWeight: [
13876
+ 'normal',
13877
+ 'bold',
13878
+ '100',
13879
+ '200',
13880
+ '300',
13881
+ '400',
13882
+ '500',
13883
+ '600',
13884
+ '700',
13885
+ '800',
13886
+ '900',
13887
+ ],
13888
+ flexDirection: ['row', 'column'],
13889
+ flexWrap: ['nowrap', 'wrap', 'wrap-reverse'],
13890
+ alignItems: [
13891
+ 'flex-start',
13892
+ 'center',
13893
+ 'flex-end',
13839
13894
  'stretch',
13840
13895
  'baseline',
13841
13896
  ],
@@ -13877,81 +13932,65 @@ export const patterns = [
13877
13932
  left: 'size',
13878
13933
  right: 'size',
13879
13934
  zIndex: 'number',
13880
- textDecorationLine: ['none', 'underline', 'line-through'],
13881
13935
  },
13882
13936
  scrollable: 'boolean',
13883
13937
  testID: 'string',
13884
- showOriginalPricePossible: 'boolean',
13885
- hideIfItsNotDiscount: 'boolean',
13886
13938
  },
13887
13939
  },
13888
13940
  meta: {
13889
13941
  desiredParent: ['>PaywallProvider'],
13890
- label: 'Price Tag',
13891
- description: 'Displays a price tag text. Extends Text.',
13942
+ label: 'Paywall Subscribe Button',
13943
+ description: 'Paywall subscribe call-to-action button. Extends Button.',
13892
13944
  styles: {
13893
13945
  color: {
13894
13946
  label: 'Color',
13895
- description: 'Text color.',
13947
+ description: 'Text color of the button.',
13896
13948
  category: 'style',
13897
13949
  specialCategory: null,
13898
13950
  sort: 1,
13899
13951
  },
13900
13952
  fontSize: {
13901
13953
  label: 'Font Size',
13902
- description: 'Text size.',
13954
+ description: 'Text size of the button.',
13903
13955
  category: 'style',
13904
13956
  specialCategory: null,
13905
13957
  sort: 2,
13906
- preferredScale: 'f',
13907
- },
13908
- fontFamily: {
13909
- label: 'Font Family',
13910
- description: 'Font family used for the text.',
13911
- category: 'style',
13912
- specialCategory: null,
13913
- sort: 3,
13914
13958
  },
13915
13959
  fontWeight: {
13916
13960
  label: 'Font Weight',
13917
- description: 'Text weight.',
13918
- category: 'style',
13919
- specialCategory: null,
13920
- sort: 4,
13921
- },
13922
- textAlign: {
13923
- label: 'Text Align',
13924
- description: 'Text alignment.',
13925
- category: 'style',
13926
- specialCategory: null,
13927
- sort: 5,
13928
- },
13929
- textDecorationLine: {
13930
- label: 'Text Decoration',
13931
- description:
13932
- 'Text decoration line style (e.g. line-through for strikethrough).',
13961
+ description: 'Text weight of the button.',
13933
13962
  category: 'style',
13934
13963
  specialCategory: null,
13935
- sort: 6,
13964
+ sort: 3,
13936
13965
  },
13937
13966
  },
13938
- attributes: {
13939
- adjustsFontSizeToFit: {
13940
- label: 'Adjust Font Size To Fit',
13941
- description:
13942
- 'Automatically reduces font size to fit the available space.',
13943
- category: 'other',
13944
- specialCategory: null,
13967
+ specialCategories: {
13968
+ padding: {
13969
+ label: 'Padding',
13970
+ description: 'Uniform padding on all sides.',
13971
+ category: 'container',
13945
13972
  sort: 1,
13946
13973
  },
13947
- showEllipsis: {
13948
- label: 'Show Ellipsis',
13949
- description:
13950
- 'If text overflows, show ellipsis (…); applied as single-line truncation.',
13951
- category: 'other',
13952
- specialCategory: null,
13974
+ margin: {
13975
+ label: 'Margin',
13976
+ description: 'Uniform margin on all sides.',
13977
+ category: 'container',
13953
13978
  sort: 2,
13954
13979
  },
13980
+ size: {
13981
+ label: 'Size',
13982
+ description: 'Fixed dimensions.',
13983
+ category: 'container',
13984
+ sort: 3,
13985
+ },
13986
+ offset: {
13987
+ label: 'Offset',
13988
+ description: 'Absolute positioning offsets.',
13989
+ category: 'container',
13990
+ sort: 4,
13991
+ },
13992
+ },
13993
+ attributes: {
13955
13994
  scrollable: {
13956
13995
  label: 'Scrollable',
13957
13996
  description: 'Turns scroll interaction on.',
@@ -14225,62 +14264,26 @@ export const patterns = [
14225
14264
  sort: 26,
14226
14265
  },
14227
14266
  },
14228
- showOriginalPricePossible: {
14229
- label: 'Show Original Price Possible',
14230
- description: 'When enabled, shows the original price if available.',
14231
- category: 'other',
14232
- specialCategory: null,
14233
- sort: 1,
14234
- },
14235
- hideIfItsNotDiscount: {
14236
- label: 'Hide If No Discount',
14237
- description:
14238
- 'Hides this element when there is no active discount/promo.',
14239
- category: 'other',
14240
- specialCategory: null,
14241
- sort: 2,
14242
- },
14243
- },
14244
- specialCategories: {
14245
- padding: {
14246
- label: 'Padding',
14247
- description: 'Uniform padding on all sides.',
14248
- category: 'container',
14249
- sort: 1,
14250
- },
14251
- margin: {
14252
- label: 'Margin',
14253
- description: 'Uniform margin on all sides.',
14254
- category: 'container',
14255
- sort: 2,
14256
- },
14257
- size: {
14258
- label: 'Size',
14259
- description: 'Fixed dimensions.',
14260
- category: 'container',
14261
- sort: 3,
14262
- },
14263
- offset: {
14264
- label: 'Offset',
14265
- description: 'Absolute positioning offsets.',
14266
- category: 'container',
14267
- sort: 4,
14268
- },
14269
14267
  },
14270
14268
  },
14271
14269
  defaults: {
14272
- translateCounter: 1,
14273
- numberOfLines: 1,
14274
14270
  styles: {
14275
- color: 'THEME_COLORS.TEXT',
14276
- fontSize: '16@fs',
14277
- fontWeight: '700',
14271
+ display: 'flex',
14272
+ alignItems: 'center',
14273
+ justifyContent: 'center',
14274
+ backgroundColor: '#6495ED',
14278
14275
  flexDirection: 'column',
14279
14276
  position: 'relative',
14280
14277
  zIndex: 1,
14281
14278
  alignSelf: 'flex-start',
14282
14279
  flexGrow: 0,
14283
14280
  flexShrink: 0,
14281
+ paddingHorizontal: '20@s',
14282
+ paddingVertical: '12@vs',
14283
+ borderRadius: '12@s',
14284
+ color: '#FFFFFF',
14285
+ fontSize: '16@fs',
14286
+ fontWeight: '700',
14284
14287
  },
14285
14288
  },
14286
14289
  types: {},
@@ -14288,9 +14291,9 @@ export const patterns = [
14288
14291
  {
14289
14292
  schemaVersion: 2,
14290
14293
  pattern: {
14291
- type: 'Pricing',
14294
+ type: 'PriceTag',
14292
14295
  title: 'title',
14293
- description: 'base.builder.paywall.pricing.default.text',
14296
+ description: 'description',
14294
14297
  children: 'string',
14295
14298
  attributes: {
14296
14299
  adjustsFontSizeToFit: 'boolean',
@@ -14349,16 +14352,18 @@ export const patterns = [
14349
14352
  left: 'size',
14350
14353
  right: 'size',
14351
14354
  zIndex: 'number',
14355
+ textDecorationLine: ['none', 'underline', 'line-through'],
14352
14356
  },
14353
14357
  scrollable: 'boolean',
14354
14358
  testID: 'string',
14359
+ showOriginalPricePossible: 'boolean',
14360
+ hideIfItsNotDiscount: 'boolean',
14355
14361
  },
14356
14362
  },
14357
14363
  meta: {
14358
14364
  desiredParent: ['>PaywallProvider'],
14359
- label: 'Pricing',
14360
- description:
14361
- 'Displays pricing details (e.g. promo/trial breakdown). Extends Text.',
14365
+ label: 'Price Tag',
14366
+ description: 'Displays a price tag text. Extends Text.',
14362
14367
  styles: {
14363
14368
  color: {
14364
14369
  label: 'Color',
@@ -14396,6 +14401,14 @@ export const patterns = [
14396
14401
  specialCategory: null,
14397
14402
  sort: 5,
14398
14403
  },
14404
+ textDecorationLine: {
14405
+ label: 'Text Decoration',
14406
+ description:
14407
+ 'Text decoration line style (e.g. line-through for strikethrough).',
14408
+ category: 'style',
14409
+ specialCategory: null,
14410
+ sort: 6,
14411
+ },
14399
14412
  },
14400
14413
  attributes: {
14401
14414
  adjustsFontSizeToFit: {
@@ -14687,6 +14700,21 @@ export const patterns = [
14687
14700
  sort: 26,
14688
14701
  },
14689
14702
  },
14703
+ showOriginalPricePossible: {
14704
+ label: 'Show Original Price Possible',
14705
+ description: 'When enabled, shows the original price if available.',
14706
+ category: 'other',
14707
+ specialCategory: null,
14708
+ sort: 1,
14709
+ },
14710
+ hideIfItsNotDiscount: {
14711
+ label: 'Hide If No Discount',
14712
+ description:
14713
+ 'Hides this element when there is no active discount/promo.',
14714
+ category: 'other',
14715
+ specialCategory: null,
14716
+ sort: 2,
14717
+ },
14690
14718
  },
14691
14719
  specialCategories: {
14692
14720
  padding: {
@@ -14716,19 +14744,18 @@ export const patterns = [
14716
14744
  },
14717
14745
  },
14718
14746
  defaults: {
14719
- translateCounter: 2,
14747
+ translateCounter: 1,
14720
14748
  numberOfLines: 1,
14721
14749
  styles: {
14722
- color: 'rgba(255,255,255,0.6)',
14723
- fontSize: '12@fs',
14724
- fontWeight: '400',
14750
+ color: 'THEME_COLORS.TEXT',
14751
+ fontSize: '16@fs',
14752
+ fontWeight: '700',
14725
14753
  flexDirection: 'column',
14726
14754
  position: 'relative',
14727
14755
  zIndex: 1,
14728
14756
  alignSelf: 'flex-start',
14729
14757
  flexGrow: 0,
14730
14758
  flexShrink: 0,
14731
- textAlign: 'center',
14732
14759
  },
14733
14760
  },
14734
14761
  types: {},
@@ -14736,9 +14763,9 @@ export const patterns = [
14736
14763
  {
14737
14764
  schemaVersion: 2,
14738
14765
  pattern: {
14739
- type: 'Promo',
14766
+ type: 'Pricing',
14740
14767
  title: 'title',
14741
- description: 'base.builder.paywall.promo.default.text',
14768
+ description: 'base.builder.paywall.pricing.default.text',
14742
14769
  children: 'string',
14743
14770
  attributes: {
14744
14771
  adjustsFontSizeToFit: 'boolean',
@@ -14804,9 +14831,9 @@ export const patterns = [
14804
14831
  },
14805
14832
  meta: {
14806
14833
  desiredParent: ['>PaywallProvider'],
14807
- label: 'Promo',
14834
+ label: 'Pricing',
14808
14835
  description:
14809
- 'Displays promotional badge/text (e.g. discount percentage). Extends Text.',
14836
+ 'Displays pricing details (e.g. promo/trial breakdown). Extends Text.',
14810
14837
  styles: {
14811
14838
  color: {
14812
14839
  label: 'Color',
@@ -15167,9 +15194,9 @@ export const patterns = [
15167
15194
  translateCounter: 2,
15168
15195
  numberOfLines: 1,
15169
15196
  styles: {
15170
- color: '#34D399',
15197
+ color: 'rgba(255,255,255,0.6)',
15171
15198
  fontSize: '12@fs',
15172
- fontWeight: '600',
15199
+ fontWeight: '400',
15173
15200
  flexDirection: 'column',
15174
15201
  position: 'relative',
15175
15202
  zIndex: 1,
@@ -15184,13 +15211,20 @@ export const patterns = [
15184
15211
  {
15185
15212
  schemaVersion: 2,
15186
15213
  pattern: {
15187
- type: 'RadioButton',
15214
+ type: 'Promo',
15188
15215
  title: 'title',
15189
- description: 'description',
15190
- children: 'never',
15216
+ description: 'base.builder.paywall.promo.default.text',
15217
+ children: 'string',
15191
15218
  attributes: {
15192
- scrollable: 'boolean',
15219
+ adjustsFontSizeToFit: 'boolean',
15220
+ numberOfLines: 'number',
15221
+ translateCounter: 'number',
15193
15222
  styles: {
15223
+ color: 'color',
15224
+ fontSize: 'size',
15225
+ fontFamily: 'fontFamily',
15226
+ fontWeight: 'fontWeight',
15227
+ textAlign: 'string',
15194
15228
  flexDirection: ['row', 'column'],
15195
15229
  flexWrap: ['nowrap', 'wrap', 'wrap-reverse'],
15196
15230
  alignItems: [
@@ -15239,43 +15273,70 @@ export const patterns = [
15239
15273
  right: 'size',
15240
15274
  zIndex: 'number',
15241
15275
  },
15276
+ scrollable: 'boolean',
15242
15277
  testID: 'string',
15243
- selected: 'boolean',
15244
- color: 'color',
15245
- size: 'number',
15246
15278
  },
15247
15279
  },
15248
15280
  meta: {
15249
- desiredParent: ['all'],
15250
- label: 'Radio Button',
15251
- description: 'Generic radio button icon.',
15252
- specialCategories: {
15253
- padding: {
15254
- label: 'Padding',
15255
- description: 'Uniform padding on all sides.',
15256
- category: 'container',
15281
+ desiredParent: ['>PaywallProvider'],
15282
+ label: 'Promo',
15283
+ description:
15284
+ 'Displays promotional badge/text (e.g. discount percentage). Extends Text.',
15285
+ styles: {
15286
+ color: {
15287
+ label: 'Color',
15288
+ description: 'Text color.',
15289
+ category: 'style',
15290
+ specialCategory: null,
15257
15291
  sort: 1,
15258
15292
  },
15259
- margin: {
15260
- label: 'Margin',
15261
- description: 'Uniform margin on all sides.',
15262
- category: 'container',
15293
+ fontSize: {
15294
+ label: 'Font Size',
15295
+ description: 'Text size.',
15296
+ category: 'style',
15297
+ specialCategory: null,
15263
15298
  sort: 2,
15299
+ preferredScale: 'f',
15264
15300
  },
15265
- size: {
15266
- label: 'Size',
15267
- description: 'Fixed dimensions.',
15268
- category: 'container',
15301
+ fontFamily: {
15302
+ label: 'Font Family',
15303
+ description: 'Font family used for the text.',
15304
+ category: 'style',
15305
+ specialCategory: null,
15269
15306
  sort: 3,
15270
15307
  },
15271
- offset: {
15272
- label: 'Offset',
15273
- description: 'Absolute positioning offsets.',
15274
- category: 'container',
15308
+ fontWeight: {
15309
+ label: 'Font Weight',
15310
+ description: 'Text weight.',
15311
+ category: 'style',
15312
+ specialCategory: null,
15275
15313
  sort: 4,
15276
15314
  },
15315
+ textAlign: {
15316
+ label: 'Text Align',
15317
+ description: 'Text alignment.',
15318
+ category: 'style',
15319
+ specialCategory: null,
15320
+ sort: 5,
15321
+ },
15277
15322
  },
15278
15323
  attributes: {
15324
+ adjustsFontSizeToFit: {
15325
+ label: 'Adjust Font Size To Fit',
15326
+ description:
15327
+ 'Automatically reduces font size to fit the available space.',
15328
+ category: 'other',
15329
+ specialCategory: null,
15330
+ sort: 1,
15331
+ },
15332
+ showEllipsis: {
15333
+ label: 'Show Ellipsis',
15334
+ description:
15335
+ 'If text overflows, show ellipsis (…); applied as single-line truncation.',
15336
+ category: 'other',
15337
+ specialCategory: null,
15338
+ sort: 2,
15339
+ },
15279
15340
  scrollable: {
15280
15341
  label: 'Scrollable',
15281
15342
  description: 'Turns scroll interaction on.',
@@ -15549,152 +15610,1043 @@ export const patterns = [
15549
15610
  sort: 26,
15550
15611
  },
15551
15612
  },
15552
- color: {
15553
- label: 'Color',
15554
- description: 'Radio color.',
15555
- category: 'style',
15556
- specialCategory: null,
15613
+ },
15614
+ specialCategories: {
15615
+ padding: {
15616
+ label: 'Padding',
15617
+ description: 'Uniform padding on all sides.',
15618
+ category: 'container',
15557
15619
  sort: 1,
15558
15620
  },
15621
+ margin: {
15622
+ label: 'Margin',
15623
+ description: 'Uniform margin on all sides.',
15624
+ category: 'container',
15625
+ sort: 2,
15626
+ },
15559
15627
  size: {
15560
15628
  label: 'Size',
15561
- description: 'Radio size in px.',
15562
- category: 'style',
15563
- specialCategory: null,
15629
+ description: 'Fixed dimensions.',
15630
+ category: 'container',
15631
+ sort: 3,
15632
+ },
15633
+ offset: {
15634
+ label: 'Offset',
15635
+ description: 'Absolute positioning offsets.',
15636
+ category: 'container',
15637
+ sort: 4,
15638
+ },
15639
+ },
15640
+ },
15641
+ defaults: {
15642
+ translateCounter: 2,
15643
+ numberOfLines: 1,
15644
+ styles: {
15645
+ color: '#34D399',
15646
+ fontSize: '12@fs',
15647
+ fontWeight: '600',
15648
+ flexDirection: 'column',
15649
+ position: 'relative',
15650
+ zIndex: 1,
15651
+ alignSelf: 'flex-start',
15652
+ flexGrow: 0,
15653
+ flexShrink: 0,
15654
+ textAlign: 'center',
15655
+ },
15656
+ },
15657
+ types: {},
15658
+ },
15659
+ {
15660
+ schemaVersion: 2,
15661
+ pattern: {
15662
+ type: 'RadioButton',
15663
+ title: 'title',
15664
+ description: 'description',
15665
+ children: 'never',
15666
+ attributes: {
15667
+ scrollable: 'boolean',
15668
+ styles: {
15669
+ flexDirection: ['row', 'column'],
15670
+ flexWrap: ['nowrap', 'wrap', 'wrap-reverse'],
15671
+ alignItems: [
15672
+ 'flex-start',
15673
+ 'center',
15674
+ 'flex-end',
15675
+ 'stretch',
15676
+ 'baseline',
15677
+ ],
15678
+ justifyContent: [
15679
+ 'flex-start',
15680
+ 'center',
15681
+ 'flex-end',
15682
+ 'space-between',
15683
+ 'space-around',
15684
+ 'space-evenly',
15685
+ ],
15686
+ gap: 'size',
15687
+ padding: 'size',
15688
+ paddingHorizontal: 'size',
15689
+ paddingVertical: 'size',
15690
+ paddingTop: 'size',
15691
+ paddingBottom: 'size',
15692
+ paddingLeft: 'size',
15693
+ paddingRight: 'size',
15694
+ margin: 'size',
15695
+ marginHorizontal: 'size',
15696
+ marginVertical: 'size',
15697
+ marginTop: 'size',
15698
+ marginBottom: 'size',
15699
+ marginLeft: 'size',
15700
+ marginRight: 'size',
15701
+ backgroundColor: 'color',
15702
+ borderRadius: 'size',
15703
+ width: 'size',
15704
+ minWidth: 'size',
15705
+ maxWidth: 'size',
15706
+ height: 'size',
15707
+ minHeight: 'size',
15708
+ maxHeight: 'size',
15709
+ flex: 'number',
15710
+ position: ['relative', 'absolute'],
15711
+ top: 'size',
15712
+ bottom: 'size',
15713
+ left: 'size',
15714
+ right: 'size',
15715
+ zIndex: 'number',
15716
+ },
15717
+ testID: 'string',
15718
+ selected: 'boolean',
15719
+ color: 'color',
15720
+ size: 'number',
15721
+ },
15722
+ },
15723
+ meta: {
15724
+ desiredParent: ['all'],
15725
+ label: 'Radio Button',
15726
+ description: 'Generic radio button icon.',
15727
+ specialCategories: {
15728
+ padding: {
15729
+ label: 'Padding',
15730
+ description: 'Uniform padding on all sides.',
15731
+ category: 'container',
15732
+ sort: 1,
15733
+ },
15734
+ margin: {
15735
+ label: 'Margin',
15736
+ description: 'Uniform margin on all sides.',
15737
+ category: 'container',
15564
15738
  sort: 2,
15565
15739
  },
15566
- selected: {
15567
- label: 'Selected',
15568
- description: 'Whether the radio is selected.',
15569
- category: 'other',
15740
+ size: {
15741
+ label: 'Size',
15742
+ description: 'Fixed dimensions.',
15743
+ category: 'container',
15744
+ sort: 3,
15745
+ },
15746
+ offset: {
15747
+ label: 'Offset',
15748
+ description: 'Absolute positioning offsets.',
15749
+ category: 'container',
15750
+ sort: 4,
15751
+ },
15752
+ },
15753
+ attributes: {
15754
+ scrollable: {
15755
+ label: 'Scrollable',
15756
+ description: 'Turns scroll interaction on.',
15757
+ category: 'container',
15570
15758
  specialCategory: null,
15571
- sort: 0,
15759
+ sort: -1,
15760
+ },
15761
+ styles: {
15762
+ backgroundColor: {
15763
+ label: 'Background Color',
15764
+ description: 'Background fill color.',
15765
+ category: 'style',
15766
+ specialCategory: null,
15767
+ sort: 20,
15768
+ },
15769
+ borderRadius: {
15770
+ label: 'Border Radius',
15771
+ description: 'Corner rounding amount.',
15772
+ category: 'style',
15773
+ specialCategory: null,
15774
+ sort: 21,
15775
+ preferredScale: 's',
15776
+ },
15777
+ flexDirection: {
15778
+ label: 'Flex Direction',
15779
+ description: 'Sets row or column layout.',
15780
+ category: 'container',
15781
+ specialCategory: null,
15782
+ sort: 4,
15783
+ },
15784
+ flexWrap: {
15785
+ label: 'Flex Wrap',
15786
+ description: 'Controls whether flex items wrap to multiple lines.',
15787
+ category: 'container',
15788
+ specialCategory: null,
15789
+ sort: 4.5,
15790
+ },
15791
+ alignItems: {
15792
+ label: 'Align Items',
15793
+ description: 'Controls cross-axis alignment.',
15794
+ category: 'container',
15795
+ specialCategory: null,
15796
+ sort: 3,
15797
+ },
15798
+ justifyContent: {
15799
+ label: 'Justify Content',
15800
+ description: 'Controls main-axis alignment.',
15801
+ category: 'container',
15802
+ specialCategory: null,
15803
+ sort: 5,
15804
+ },
15805
+ gap: {
15806
+ label: 'Gap',
15807
+ description: 'Space between children.',
15808
+ category: 'container',
15809
+ specialCategory: null,
15810
+ sort: 10,
15811
+ preferredScale: 's',
15812
+ },
15813
+ padding: {
15814
+ label: 'Padding',
15815
+ description: 'Uniform padding on all sides.',
15816
+ category: 'container',
15817
+ specialCategory: 'padding',
15818
+ sort: 6,
15819
+ preferredScale: 's',
15820
+ },
15821
+ paddingHorizontal: {
15822
+ label: 'Padding Horizontal',
15823
+ description: 'Left and right padding.',
15824
+ category: 'container',
15825
+ specialCategory: 'padding',
15826
+ sort: 7,
15827
+ preferredScale: 's',
15828
+ },
15829
+ paddingVertical: {
15830
+ label: 'Padding Vertical',
15831
+ description: 'Top and bottom padding.',
15832
+ category: 'container',
15833
+ specialCategory: 'padding',
15834
+ sort: 8,
15835
+ preferredScale: 'vs',
15836
+ },
15837
+ paddingTop: {
15838
+ label: 'Padding Top',
15839
+ description: 'Top padding only.',
15840
+ category: 'container',
15841
+ specialCategory: 'padding',
15842
+ sort: 9,
15843
+ preferredScale: 'vs',
15844
+ },
15845
+ paddingBottom: {
15846
+ label: 'Padding Bottom',
15847
+ description: 'Bottom padding only.',
15848
+ category: 'container',
15849
+ specialCategory: 'padding',
15850
+ sort: 10,
15851
+ preferredScale: 'vs',
15852
+ },
15853
+ paddingLeft: {
15854
+ label: 'Padding Left',
15855
+ description: 'Left padding only.',
15856
+ category: 'container',
15857
+ specialCategory: 'padding',
15858
+ sort: 11,
15859
+ preferredScale: 's',
15860
+ },
15861
+ paddingRight: {
15862
+ label: 'Padding Right',
15863
+ description: 'Right padding only.',
15864
+ category: 'container',
15865
+ specialCategory: 'padding',
15866
+ sort: 12,
15867
+ preferredScale: 's',
15868
+ },
15869
+ margin: {
15870
+ label: 'Margin',
15871
+ description: 'Uniform margin on all sides.',
15872
+ category: 'container',
15873
+ specialCategory: 'margin',
15874
+ sort: 13,
15875
+ preferredScale: 's',
15876
+ },
15877
+ marginHorizontal: {
15878
+ label: 'Margin Horizontal',
15879
+ description: 'Left and right margin.',
15880
+ category: 'container',
15881
+ specialCategory: 'margin',
15882
+ sort: 14,
15883
+ preferredScale: 's',
15884
+ },
15885
+ marginVertical: {
15886
+ label: 'Margin Vertical',
15887
+ description: 'Top and bottom margin.',
15888
+ category: 'container',
15889
+ specialCategory: 'margin',
15890
+ sort: 15,
15891
+ preferredScale: 'vs',
15892
+ },
15893
+ marginTop: {
15894
+ label: 'Margin Top',
15895
+ description: 'Top margin only.',
15896
+ category: 'container',
15897
+ specialCategory: 'margin',
15898
+ sort: 16,
15899
+ preferredScale: 'vs',
15900
+ },
15901
+ marginBottom: {
15902
+ label: 'Margin Bottom',
15903
+ description: 'Bottom margin only.',
15904
+ category: 'container',
15905
+ specialCategory: 'margin',
15906
+ sort: 17,
15907
+ preferredScale: 'vs',
15908
+ },
15909
+ marginLeft: {
15910
+ label: 'Margin Left',
15911
+ description: 'Left margin only.',
15912
+ category: 'container',
15913
+ specialCategory: 'margin',
15914
+ sort: 18,
15915
+ preferredScale: 's',
15916
+ },
15917
+ marginRight: {
15918
+ label: 'Margin Right',
15919
+ description: 'Right margin only.',
15920
+ category: 'container',
15921
+ specialCategory: 'margin',
15922
+ sort: 19,
15923
+ preferredScale: 's',
15924
+ },
15925
+ width: {
15926
+ label: 'Width',
15927
+ description: 'Fixed width value.',
15928
+ category: 'container',
15929
+ specialCategory: 'size',
15930
+ sort: 0,
15931
+ preferredScale: 's',
15932
+ },
15933
+ minWidth: {
15934
+ label: 'Min Width',
15935
+ description: 'Minimum width constraint.',
15936
+ category: 'container',
15937
+ specialCategory: 'size',
15938
+ sort: 1,
15939
+ preferredScale: 's',
15940
+ },
15941
+ maxWidth: {
15942
+ label: 'Max Width',
15943
+ description: 'Maximum width constraint.',
15944
+ category: 'container',
15945
+ specialCategory: 'size',
15946
+ sort: 2,
15947
+ preferredScale: 's',
15948
+ },
15949
+ height: {
15950
+ label: 'Height',
15951
+ description: 'Fixed height value.',
15952
+ category: 'container',
15953
+ specialCategory: 'size',
15954
+ sort: 3,
15955
+ preferredScale: 'vs',
15956
+ },
15957
+ minHeight: {
15958
+ label: 'Min Height',
15959
+ description: 'Minimum height constraint.',
15960
+ category: 'container',
15961
+ specialCategory: 'size',
15962
+ sort: 4,
15963
+ preferredScale: 'vs',
15964
+ },
15965
+ maxHeight: {
15966
+ label: 'Max Height',
15967
+ description: 'Maximum height constraint.',
15968
+ category: 'container',
15969
+ specialCategory: 'size',
15970
+ sort: 5,
15971
+ preferredScale: 'vs',
15972
+ },
15973
+ flex: {
15974
+ label: 'Flex',
15975
+ description: 'Flex grow factor (e.g. 1 fills available space).',
15976
+ category: 'container',
15977
+ specialCategory: 'size',
15978
+ sort: 6,
15979
+ },
15980
+ position: {
15981
+ label: 'Position',
15982
+ description: 'Sets layout positioning mode.',
15983
+ category: 'container',
15984
+ specialCategory: null,
15985
+ sort: 3,
15986
+ },
15987
+ top: {
15988
+ label: 'Top',
15989
+ description: 'Offset from the top edge.',
15990
+ category: 'container',
15991
+ specialCategory: 'offset',
15992
+ sort: 22,
15993
+ preferredScale: 'vs',
15994
+ },
15995
+ bottom: {
15996
+ label: 'Bottom',
15997
+ description: 'Offset from the bottom edge.',
15998
+ category: 'container',
15999
+ specialCategory: 'offset',
16000
+ sort: 23,
16001
+ preferredScale: 'vs',
16002
+ },
16003
+ left: {
16004
+ label: 'Left',
16005
+ description: 'Offset from the left edge.',
16006
+ category: 'container',
16007
+ specialCategory: 'offset',
16008
+ sort: 24,
16009
+ preferredScale: 's',
16010
+ },
16011
+ right: {
16012
+ label: 'Right',
16013
+ description: 'Offset from the right edge.',
16014
+ category: 'container',
16015
+ specialCategory: 'offset',
16016
+ sort: 25,
16017
+ preferredScale: 's',
16018
+ },
16019
+ zIndex: {
16020
+ label: 'Z-Index',
16021
+ description: 'Controls stacking order.',
16022
+ category: 'container',
16023
+ specialCategory: null,
16024
+ sort: 26,
16025
+ },
16026
+ },
16027
+ color: {
16028
+ label: 'Color',
16029
+ description: 'Radio color.',
16030
+ category: 'style',
16031
+ specialCategory: null,
16032
+ sort: 1,
16033
+ },
16034
+ size: {
16035
+ label: 'Size',
16036
+ description: 'Radio size in px.',
16037
+ category: 'style',
16038
+ specialCategory: null,
16039
+ sort: 2,
16040
+ },
16041
+ selected: {
16042
+ label: 'Selected',
16043
+ description: 'Whether the radio is selected.',
16044
+ category: 'other',
16045
+ specialCategory: null,
16046
+ sort: 0,
16047
+ },
16048
+ },
16049
+ styles: {},
16050
+ },
16051
+ defaults: {
16052
+ styles: {
16053
+ flexDirection: 'column',
16054
+ position: 'relative',
16055
+ zIndex: 1,
16056
+ alignSelf: 'flex-start',
16057
+ flexGrow: 0,
16058
+ flexShrink: 0,
16059
+ },
16060
+ },
16061
+ types: {},
16062
+ },
16063
+ {
16064
+ schemaVersion: 2,
16065
+ pattern: {
16066
+ type: 'Separator',
16067
+ title: 'title',
16068
+ description: 'description',
16069
+ children: 'never',
16070
+ attributes: {
16071
+ styles: {
16072
+ backgroundColor: 'color',
16073
+ width: 'size',
16074
+ height: 'size',
16075
+ marginHorizontal: 'size',
16076
+ marginVertical: 'size',
16077
+ marginTop: 'size',
16078
+ marginBottom: 'size',
16079
+ },
16080
+ testID: 'string',
16081
+ },
16082
+ },
16083
+ meta: {
16084
+ desiredParent: ['all'],
16085
+ label: 'Separator',
16086
+ description: 'Horizontal line separator.',
16087
+ attributes: {
16088
+ styles: {
16089
+ backgroundColor: {
16090
+ label: 'Color',
16091
+ description: 'Separator line color.',
16092
+ category: 'style',
16093
+ specialCategory: null,
16094
+ sort: 1,
16095
+ },
16096
+ width: {
16097
+ label: 'Width',
16098
+ description: 'Separator width.',
16099
+ category: 'container',
16100
+ specialCategory: null,
16101
+ sort: 1,
16102
+ preferredScale: 's',
16103
+ },
16104
+ height: {
16105
+ label: 'Height',
16106
+ description: 'Separator thickness.',
16107
+ category: 'container',
16108
+ specialCategory: null,
16109
+ sort: 2,
16110
+ preferredScale: 'vs',
16111
+ },
16112
+ },
16113
+ },
16114
+ },
16115
+ defaults: {
16116
+ styles: { width: '100%', height: 2, backgroundColor: '#000000' },
16117
+ },
16118
+ },
16119
+ {
16120
+ schemaVersion: 2,
16121
+ pattern: {
16122
+ type: 'StatusBarColor',
16123
+ title: 'title',
16124
+ description: 'description',
16125
+ children: 'never',
16126
+ attributes: {
16127
+ styles: { backgroundColor: 'color' },
16128
+ translucent: 'boolean',
16129
+ },
16130
+ },
16131
+ meta: {
16132
+ desiredParent: ['all'],
16133
+ label: 'Status Bar Color',
16134
+ description: 'Sets the OS status bar background color.',
16135
+ styles: {
16136
+ backgroundColor: {
16137
+ label: 'Background Color',
16138
+ description: 'Status bar background color.',
16139
+ category: 'style',
16140
+ specialCategory: null,
16141
+ sort: 1,
16142
+ },
16143
+ },
16144
+ attributes: {
16145
+ translucent: {
16146
+ label: 'Translucent',
16147
+ description: 'Sets the status bar to translucent.',
16148
+ category: 'style',
16149
+ specialCategory: null,
16150
+ sort: 2,
16151
+ },
16152
+ },
16153
+ },
16154
+ defaults: { styles: { backgroundColor: 'THEME_COLORS.BACKGROUND' } },
16155
+ },
16156
+ {
16157
+ schemaVersion: 2,
16158
+ pattern: {
16159
+ type: 'SystemButton',
16160
+ title: 'SystemButton',
16161
+ description: 'A reusable button component for system actions.',
16162
+ children: 'never',
16163
+ attributes: {
16164
+ adjustsFontSizeToFit: 'boolean',
16165
+ numberOfLines: 'number',
16166
+ translateCounter: 'number',
16167
+ styles: {
16168
+ color: 'color',
16169
+ fontSize: 'number',
16170
+ fontFamily: 'fontFamily',
16171
+ fontWeight: 'string',
16172
+ textAlign: 'string',
16173
+ flexDirection: ['row', 'column'],
16174
+ flexWrap: ['nowrap', 'wrap', 'wrap-reverse'],
16175
+ alignItems: [
16176
+ 'flex-start',
16177
+ 'center',
16178
+ 'flex-end',
16179
+ 'stretch',
16180
+ 'baseline',
16181
+ ],
16182
+ justifyContent: [
16183
+ 'flex-start',
16184
+ 'center',
16185
+ 'flex-end',
16186
+ 'space-between',
16187
+ 'space-around',
16188
+ 'space-evenly',
16189
+ ],
16190
+ gap: 'size',
16191
+ padding: 'size',
16192
+ paddingHorizontal: 'size',
16193
+ paddingVertical: 'size',
16194
+ paddingTop: 'size',
16195
+ paddingBottom: 'size',
16196
+ paddingLeft: 'size',
16197
+ paddingRight: 'size',
16198
+ margin: 'size',
16199
+ marginHorizontal: 'size',
16200
+ marginVertical: 'size',
16201
+ marginTop: 'size',
16202
+ marginBottom: 'size',
16203
+ marginLeft: 'size',
16204
+ marginRight: 'size',
16205
+ backgroundColor: 'color',
16206
+ borderRadius: 'number',
16207
+ width: 'size',
16208
+ minWidth: 'size',
16209
+ maxWidth: 'size',
16210
+ height: 'number',
16211
+ minHeight: 'size',
16212
+ maxHeight: 'size',
16213
+ flex: 'number',
16214
+ position: ['relative', 'absolute'],
16215
+ top: 'size',
16216
+ bottom: 'size',
16217
+ left: 'size',
16218
+ right: 'size',
16219
+ zIndex: 'number',
16220
+ },
16221
+ scrollable: 'boolean',
16222
+ testID: 'string',
16223
+ labelKey: 'string',
16224
+ events: 'EventObject[]',
16225
+ },
16226
+ },
16227
+ meta: {
16228
+ desiredParent: ['all'],
16229
+ label: 'System Button',
16230
+ description: 'Versatile button for navigation, permissions, and more.',
16231
+ styles: {
16232
+ color: {
16233
+ label: 'Color',
16234
+ description: 'Text color.',
16235
+ category: 'style',
16236
+ specialCategory: null,
16237
+ sort: 1,
16238
+ },
16239
+ fontSize: {
16240
+ label: 'Font Size',
16241
+ description: 'Text size.',
16242
+ category: 'style',
16243
+ specialCategory: null,
16244
+ sort: 2,
16245
+ preferredScale: 'f',
16246
+ },
16247
+ fontFamily: {
16248
+ label: 'Font Family',
16249
+ description: 'Font family used for the text.',
16250
+ category: 'style',
16251
+ specialCategory: null,
16252
+ sort: 3,
16253
+ },
16254
+ fontWeight: {
16255
+ label: 'Font Weight',
16256
+ description: 'Text weight.',
16257
+ category: 'style',
16258
+ specialCategory: null,
16259
+ sort: 4,
16260
+ },
16261
+ textAlign: {
16262
+ label: 'Text Align',
16263
+ description: 'Text alignment.',
16264
+ category: 'style',
16265
+ specialCategory: null,
16266
+ sort: 5,
16267
+ },
16268
+ },
16269
+ attributes: {
16270
+ adjustsFontSizeToFit: {
16271
+ label: 'Adjust Font Size To Fit',
16272
+ description:
16273
+ 'Automatically reduces font size to fit the available space.',
16274
+ category: 'other',
16275
+ specialCategory: null,
16276
+ sort: 1,
16277
+ },
16278
+ showEllipsis: {
16279
+ label: 'Show Ellipsis',
16280
+ description:
16281
+ 'If text overflows, show ellipsis (…); applied as single-line truncation.',
16282
+ category: 'other',
16283
+ specialCategory: null,
16284
+ sort: 2,
16285
+ },
16286
+ scrollable: {
16287
+ label: 'Scrollable',
16288
+ description: 'Turns scroll interaction on.',
16289
+ category: 'container',
16290
+ specialCategory: null,
16291
+ sort: -1,
16292
+ },
16293
+ styles: {
16294
+ backgroundColor: {
16295
+ label: 'Background Color',
16296
+ description: 'Background fill color.',
16297
+ category: 'style',
16298
+ specialCategory: null,
16299
+ sort: 20,
16300
+ },
16301
+ borderRadius: {
16302
+ label: 'Border Radius',
16303
+ description: 'Corner rounding amount.',
16304
+ category: 'style',
16305
+ specialCategory: null,
16306
+ sort: 21,
16307
+ preferredScale: 's',
16308
+ },
16309
+ flexDirection: {
16310
+ label: 'Flex Direction',
16311
+ description: 'Sets row or column layout.',
16312
+ category: 'container',
16313
+ specialCategory: null,
16314
+ sort: 4,
16315
+ },
16316
+ flexWrap: {
16317
+ label: 'Flex Wrap',
16318
+ description: 'Controls whether flex items wrap to multiple lines.',
16319
+ category: 'container',
16320
+ specialCategory: null,
16321
+ sort: 4.5,
16322
+ },
16323
+ alignItems: {
16324
+ label: 'Align Items',
16325
+ description: 'Controls cross-axis alignment.',
16326
+ category: 'container',
16327
+ specialCategory: null,
16328
+ sort: 3,
16329
+ },
16330
+ justifyContent: {
16331
+ label: 'Justify Content',
16332
+ description: 'Controls main-axis alignment.',
16333
+ category: 'container',
16334
+ specialCategory: null,
16335
+ sort: 5,
16336
+ },
16337
+ gap: {
16338
+ label: 'Gap',
16339
+ description: 'Space between children.',
16340
+ category: 'container',
16341
+ specialCategory: null,
16342
+ sort: 10,
16343
+ preferredScale: 's',
16344
+ },
16345
+ padding: {
16346
+ label: 'Padding',
16347
+ description: 'Uniform padding on all sides.',
16348
+ category: 'container',
16349
+ specialCategory: 'padding',
16350
+ sort: 6,
16351
+ preferredScale: 's',
16352
+ },
16353
+ paddingHorizontal: {
16354
+ label: 'Padding Horizontal',
16355
+ description: 'Left and right padding.',
16356
+ category: 'container',
16357
+ specialCategory: 'padding',
16358
+ sort: 7,
16359
+ preferredScale: 's',
16360
+ },
16361
+ paddingVertical: {
16362
+ label: 'Padding Vertical',
16363
+ description: 'Top and bottom padding.',
16364
+ category: 'container',
16365
+ specialCategory: 'padding',
16366
+ sort: 8,
16367
+ preferredScale: 'vs',
16368
+ },
16369
+ paddingTop: {
16370
+ label: 'Padding Top',
16371
+ description: 'Top padding only.',
16372
+ category: 'container',
16373
+ specialCategory: 'padding',
16374
+ sort: 9,
16375
+ preferredScale: 'vs',
16376
+ },
16377
+ paddingBottom: {
16378
+ label: 'Padding Bottom',
16379
+ description: 'Bottom padding only.',
16380
+ category: 'container',
16381
+ specialCategory: 'padding',
16382
+ sort: 10,
16383
+ preferredScale: 'vs',
16384
+ },
16385
+ paddingLeft: {
16386
+ label: 'Padding Left',
16387
+ description: 'Left padding only.',
16388
+ category: 'container',
16389
+ specialCategory: 'padding',
16390
+ sort: 11,
16391
+ preferredScale: 's',
16392
+ },
16393
+ paddingRight: {
16394
+ label: 'Padding Right',
16395
+ description: 'Right padding only.',
16396
+ category: 'container',
16397
+ specialCategory: 'padding',
16398
+ sort: 12,
16399
+ preferredScale: 's',
16400
+ },
16401
+ margin: {
16402
+ label: 'Margin',
16403
+ description: 'Uniform margin on all sides.',
16404
+ category: 'container',
16405
+ specialCategory: 'margin',
16406
+ sort: 13,
16407
+ preferredScale: 's',
16408
+ },
16409
+ marginHorizontal: {
16410
+ label: 'Margin Horizontal',
16411
+ description: 'Left and right margin.',
16412
+ category: 'container',
16413
+ specialCategory: 'margin',
16414
+ sort: 14,
16415
+ preferredScale: 's',
16416
+ },
16417
+ marginVertical: {
16418
+ label: 'Margin Vertical',
16419
+ description: 'Top and bottom margin.',
16420
+ category: 'container',
16421
+ specialCategory: 'margin',
16422
+ sort: 15,
16423
+ preferredScale: 'vs',
16424
+ },
16425
+ marginTop: {
16426
+ label: 'Margin Top',
16427
+ description: 'Top margin only.',
16428
+ category: 'container',
16429
+ specialCategory: 'margin',
16430
+ sort: 16,
16431
+ preferredScale: 'vs',
16432
+ },
16433
+ marginBottom: {
16434
+ label: 'Margin Bottom',
16435
+ description: 'Bottom margin only.',
16436
+ category: 'container',
16437
+ specialCategory: 'margin',
16438
+ sort: 17,
16439
+ preferredScale: 'vs',
16440
+ },
16441
+ marginLeft: {
16442
+ label: 'Margin Left',
16443
+ description: 'Left margin only.',
16444
+ category: 'container',
16445
+ specialCategory: 'margin',
16446
+ sort: 18,
16447
+ preferredScale: 's',
16448
+ },
16449
+ marginRight: {
16450
+ label: 'Margin Right',
16451
+ description: 'Right margin only.',
16452
+ category: 'container',
16453
+ specialCategory: 'margin',
16454
+ sort: 19,
16455
+ preferredScale: 's',
16456
+ },
16457
+ width: {
16458
+ label: 'Width',
16459
+ description: 'Fixed width value.',
16460
+ category: 'container',
16461
+ specialCategory: 'size',
16462
+ sort: 0,
16463
+ preferredScale: 's',
16464
+ },
16465
+ minWidth: {
16466
+ label: 'Min Width',
16467
+ description: 'Minimum width constraint.',
16468
+ category: 'container',
16469
+ specialCategory: 'size',
16470
+ sort: 1,
16471
+ preferredScale: 's',
16472
+ },
16473
+ maxWidth: {
16474
+ label: 'Max Width',
16475
+ description: 'Maximum width constraint.',
16476
+ category: 'container',
16477
+ specialCategory: 'size',
16478
+ sort: 2,
16479
+ preferredScale: 's',
16480
+ },
16481
+ height: {
16482
+ label: 'Height',
16483
+ description: 'Fixed height value.',
16484
+ category: 'container',
16485
+ specialCategory: 'size',
16486
+ sort: 3,
16487
+ preferredScale: 'vs',
16488
+ },
16489
+ minHeight: {
16490
+ label: 'Min Height',
16491
+ description: 'Minimum height constraint.',
16492
+ category: 'container',
16493
+ specialCategory: 'size',
16494
+ sort: 4,
16495
+ preferredScale: 'vs',
16496
+ },
16497
+ maxHeight: {
16498
+ label: 'Max Height',
16499
+ description: 'Maximum height constraint.',
16500
+ category: 'container',
16501
+ specialCategory: 'size',
16502
+ sort: 5,
16503
+ preferredScale: 'vs',
16504
+ },
16505
+ flex: {
16506
+ label: 'Flex',
16507
+ description: 'Flex grow factor (e.g. 1 fills available space).',
16508
+ category: 'container',
16509
+ specialCategory: 'size',
16510
+ sort: 6,
16511
+ },
16512
+ position: {
16513
+ label: 'Position',
16514
+ description: 'Sets layout positioning mode.',
16515
+ category: 'container',
16516
+ specialCategory: null,
16517
+ sort: 3,
16518
+ },
16519
+ top: {
16520
+ label: 'Top',
16521
+ description: 'Offset from the top edge.',
16522
+ category: 'container',
16523
+ specialCategory: 'offset',
16524
+ sort: 22,
16525
+ preferredScale: 'vs',
16526
+ },
16527
+ bottom: {
16528
+ label: 'Bottom',
16529
+ description: 'Offset from the bottom edge.',
16530
+ category: 'container',
16531
+ specialCategory: 'offset',
16532
+ sort: 23,
16533
+ preferredScale: 'vs',
16534
+ },
16535
+ left: {
16536
+ label: 'Left',
16537
+ description: 'Offset from the left edge.',
16538
+ category: 'container',
16539
+ specialCategory: 'offset',
16540
+ sort: 24,
16541
+ preferredScale: 's',
16542
+ },
16543
+ right: {
16544
+ label: 'Right',
16545
+ description: 'Offset from the right edge.',
16546
+ category: 'container',
16547
+ specialCategory: 'offset',
16548
+ sort: 25,
16549
+ preferredScale: 's',
16550
+ },
16551
+ zIndex: {
16552
+ label: 'Z-Index',
16553
+ description: 'Controls stacking order.',
16554
+ category: 'container',
16555
+ specialCategory: null,
16556
+ sort: 26,
16557
+ },
16558
+ },
16559
+ labelKey: {
16560
+ label: 'Label Key',
16561
+ description: 'Localization key for button text.',
16562
+ category: 'other',
16563
+ sort: 1,
16564
+ },
16565
+ events: {
16566
+ label: 'Events',
16567
+ description: 'Actions to perform on click.',
16568
+ category: 'other',
16569
+ sort: 2,
16570
+ },
16571
+ },
16572
+ specialCategories: {
16573
+ padding: {
16574
+ label: 'Padding',
16575
+ description: 'Uniform padding on all sides.',
16576
+ category: 'container',
16577
+ sort: 1,
16578
+ },
16579
+ margin: {
16580
+ label: 'Margin',
16581
+ description: 'Uniform margin on all sides.',
16582
+ category: 'container',
16583
+ sort: 2,
16584
+ },
16585
+ size: {
16586
+ label: 'Size',
16587
+ description: 'Fixed dimensions.',
16588
+ category: 'container',
16589
+ sort: 3,
16590
+ },
16591
+ offset: {
16592
+ label: 'Offset',
16593
+ description: 'Absolute positioning offsets.',
16594
+ category: 'container',
16595
+ sort: 4,
15572
16596
  },
15573
16597
  },
15574
- styles: {},
15575
16598
  },
15576
16599
  defaults: {
16600
+ translateCounter: 1,
16601
+ numberOfLines: 1,
15577
16602
  styles: {
16603
+ color: 'THEME_COLORS.SYSTEM_BUTTON_TEXT',
16604
+ fontSize: '16@fs',
16605
+ fontWeight: '400',
15578
16606
  flexDirection: 'column',
15579
16607
  position: 'relative',
15580
16608
  zIndex: 1,
15581
16609
  alignSelf: 'flex-start',
15582
16610
  flexGrow: 0,
15583
16611
  flexShrink: 0,
16612
+ height: 48,
16613
+ borderRadius: 8,
16614
+ backgroundColor: 'THEME_COLORS.SYSTEM_BUTTON_BACKGROUND',
15584
16615
  },
16616
+ attributes: { labelKey: 'Button' },
15585
16617
  },
15586
- types: {},
15587
- },
15588
- {
15589
- schemaVersion: 2,
15590
- pattern: {
15591
- type: 'Separator',
15592
- title: 'title',
15593
- description: 'description',
15594
- children: 'never',
15595
- attributes: {
15596
- styles: {
15597
- backgroundColor: 'color',
15598
- width: 'size',
15599
- height: 'size',
15600
- marginHorizontal: 'size',
15601
- marginVertical: 'size',
15602
- marginTop: 'size',
15603
- marginBottom: 'size',
15604
- },
15605
- testID: 'string',
15606
- },
15607
- },
15608
- meta: {
15609
- desiredParent: ['all'],
15610
- label: 'Separator',
15611
- description: 'Horizontal line separator.',
15612
- attributes: {
15613
- styles: {
15614
- backgroundColor: {
15615
- label: 'Color',
15616
- description: 'Separator line color.',
15617
- category: 'style',
15618
- specialCategory: null,
15619
- sort: 1,
15620
- },
15621
- width: {
15622
- label: 'Width',
15623
- description: 'Separator width.',
15624
- category: 'container',
15625
- specialCategory: null,
15626
- sort: 1,
15627
- preferredScale: 's',
15628
- },
15629
- height: {
15630
- label: 'Height',
15631
- description: 'Separator thickness.',
15632
- category: 'container',
15633
- specialCategory: null,
15634
- sort: 2,
15635
- preferredScale: 'vs',
15636
- },
15637
- },
16618
+ types: {
16619
+ EventObject: {
16620
+ type: ['Permission', 'Navigate', 'Placement', 'SetCondition'],
16621
+ permission: [
16622
+ 'notification',
16623
+ 'camera',
16624
+ 'microphone',
16625
+ 'location',
16626
+ 'photos',
16627
+ 'contacts',
16628
+ 'att',
16629
+ 'rating',
16630
+ 'GDPR',
16631
+ ],
16632
+ navigate_to: 'string',
16633
+ targetIndex: 'number',
16634
+ placementKey: ['terms', 'onboard', 'paywall', 'subscription', 'home'],
16635
+ conditionKey: ['termsAccepted'],
16636
+ value: 'boolean',
15638
16637
  },
15639
16638
  },
15640
- defaults: {
15641
- styles: { width: '100%', height: 2, backgroundColor: '#000000' },
15642
- },
15643
16639
  },
15644
16640
  {
15645
16641
  schemaVersion: 2,
15646
16642
  pattern: {
15647
- type: 'StatusBarColor',
16643
+ type: 'TermsProvider',
15648
16644
  title: 'title',
15649
16645
  description: 'description',
15650
- children: 'never',
15651
- attributes: {
15652
- styles: { backgroundColor: 'color' },
15653
- translucent: 'boolean',
15654
- },
15655
- },
15656
- meta: {
15657
- desiredParent: ['all'],
15658
- label: 'Status Bar Color',
15659
- description: 'Sets the OS status bar background color.',
15660
- styles: {
15661
- backgroundColor: {
15662
- label: 'Background Color',
15663
- description: 'Status bar background color.',
15664
- category: 'style',
15665
- specialCategory: null,
15666
- sort: 1,
15667
- },
15668
- },
15669
- attributes: {
15670
- translucent: {
15671
- label: 'Translucent',
15672
- description: 'Sets the status bar to translucent.',
15673
- category: 'style',
15674
- specialCategory: null,
15675
- sort: 2,
15676
- },
15677
- },
15678
- },
15679
- defaults: { styles: { backgroundColor: 'THEME_COLORS.BACKGROUND' } },
15680
- },
15681
- {
15682
- schemaVersion: 2,
15683
- pattern: {
15684
- type: 'SystemButton',
15685
- title: 'SystemButton',
15686
- description: 'A reusable button component for system actions.',
15687
- children: 'never',
16646
+ children: 'node',
15688
16647
  attributes: {
15689
- adjustsFontSizeToFit: 'boolean',
15690
- numberOfLines: 'number',
15691
- translateCounter: 'number',
16648
+ scrollable: 'boolean',
15692
16649
  styles: {
15693
- color: 'color',
15694
- fontSize: 'number',
15695
- fontFamily: 'fontFamily',
15696
- fontWeight: 'string',
15697
- textAlign: 'string',
15698
16650
  flexDirection: ['row', 'column'],
15699
16651
  flexWrap: ['nowrap', 'wrap', 'wrap-reverse'],
15700
16652
  alignItems: [
@@ -15728,11 +16680,11 @@ export const patterns = [
15728
16680
  marginLeft: 'size',
15729
16681
  marginRight: 'size',
15730
16682
  backgroundColor: 'color',
15731
- borderRadius: 'number',
16683
+ borderRadius: 'size',
15732
16684
  width: 'size',
15733
16685
  minWidth: 'size',
15734
16686
  maxWidth: 'size',
15735
- height: 'number',
16687
+ height: 'size',
15736
16688
  minHeight: 'size',
15737
16689
  maxHeight: 'size',
15738
16690
  flex: 'number',
@@ -15743,71 +16695,53 @@ export const patterns = [
15743
16695
  right: 'size',
15744
16696
  zIndex: 'number',
15745
16697
  },
15746
- scrollable: 'boolean',
15747
16698
  testID: 'string',
15748
- labelKey: 'string',
15749
- events: 'EventObject[]',
16699
+ animation: [
16700
+ 'default',
16701
+ 'fade',
16702
+ 'fade_from_bottom',
16703
+ 'fade_from_right',
16704
+ 'reveal_from_bottom',
16705
+ 'scale_from_center',
16706
+ 'slide_from_right',
16707
+ 'slide_from_left',
16708
+ 'slide_from_bottom',
16709
+ 'none',
16710
+ ],
15750
16711
  },
15751
16712
  },
15752
16713
  meta: {
15753
- desiredParent: ['all'],
15754
- label: 'System Button',
15755
- description: 'Versatile button for navigation, permissions, and more.',
15756
- styles: {
15757
- color: {
15758
- label: 'Color',
15759
- description: 'Text color.',
15760
- category: 'style',
15761
- specialCategory: null,
16714
+ desiredParent: ['root', 'GlobalProvider'],
16715
+ label: 'Terms Provider',
16716
+ description:
16717
+ 'Provider for terms & privacy page (e.g. WebView + form). Use as a GlobalProvider page.',
16718
+ specialCategories: {
16719
+ padding: {
16720
+ label: 'Padding',
16721
+ description: 'Uniform padding on all sides.',
16722
+ category: 'container',
15762
16723
  sort: 1,
15763
16724
  },
15764
- fontSize: {
15765
- label: 'Font Size',
15766
- description: 'Text size.',
15767
- category: 'style',
15768
- specialCategory: null,
16725
+ margin: {
16726
+ label: 'Margin',
16727
+ description: 'Uniform margin on all sides.',
16728
+ category: 'container',
15769
16729
  sort: 2,
15770
- preferredScale: 'f',
15771
16730
  },
15772
- fontFamily: {
15773
- label: 'Font Family',
15774
- description: 'Font family used for the text.',
15775
- category: 'style',
15776
- specialCategory: null,
16731
+ size: {
16732
+ label: 'Size',
16733
+ description: 'Fixed dimensions.',
16734
+ category: 'container',
15777
16735
  sort: 3,
15778
16736
  },
15779
- fontWeight: {
15780
- label: 'Font Weight',
15781
- description: 'Text weight.',
15782
- category: 'style',
15783
- specialCategory: null,
16737
+ offset: {
16738
+ label: 'Offset',
16739
+ description: 'Absolute positioning offsets.',
16740
+ category: 'container',
15784
16741
  sort: 4,
15785
16742
  },
15786
- textAlign: {
15787
- label: 'Text Align',
15788
- description: 'Text alignment.',
15789
- category: 'style',
15790
- specialCategory: null,
15791
- sort: 5,
15792
- },
15793
16743
  },
15794
16744
  attributes: {
15795
- adjustsFontSizeToFit: {
15796
- label: 'Adjust Font Size To Fit',
15797
- description:
15798
- 'Automatically reduces font size to fit the available space.',
15799
- category: 'other',
15800
- specialCategory: null,
15801
- sort: 1,
15802
- },
15803
- showEllipsis: {
15804
- label: 'Show Ellipsis',
15805
- description:
15806
- 'If text overflows, show ellipsis (…); applied as single-line truncation.',
15807
- category: 'other',
15808
- specialCategory: null,
15809
- sort: 2,
15810
- },
15811
16745
  scrollable: {
15812
16746
  label: 'Scrollable',
15813
16747
  description: 'Turns scroll interaction on.',
@@ -16081,74 +17015,31 @@ export const patterns = [
16081
17015
  sort: 26,
16082
17016
  },
16083
17017
  },
16084
- labelKey: {
16085
- label: 'Label Key',
16086
- description: 'Localization key for button text.',
16087
- category: 'other',
16088
- sort: 1,
16089
- },
16090
- events: {
16091
- label: 'Events',
16092
- description: 'Actions to perform on click.',
17018
+ animation: {
17019
+ label: 'Page transition animation',
17020
+ description:
17021
+ 'When this component is a GlobalProvider page: animation used when navigating to this screen.',
16093
17022
  category: 'other',
16094
- sort: 2,
16095
- },
16096
- },
16097
- specialCategories: {
16098
- padding: {
16099
- label: 'Padding',
16100
- description: 'Uniform padding on all sides.',
16101
- category: 'container',
17023
+ specialCategory: null,
16102
17024
  sort: 1,
16103
17025
  },
16104
- margin: {
16105
- label: 'Margin',
16106
- description: 'Uniform margin on all sides.',
16107
- category: 'container',
16108
- sort: 2,
16109
- },
16110
- size: {
16111
- label: 'Size',
16112
- description: 'Fixed dimensions.',
16113
- category: 'container',
16114
- sort: 3,
16115
- },
16116
- offset: {
16117
- label: 'Offset',
16118
- description: 'Absolute positioning offsets.',
16119
- category: 'container',
16120
- sort: 4,
16121
- },
16122
17026
  },
17027
+ styles: {},
16123
17028
  },
16124
17029
  defaults: {
16125
- translateCounter: 1,
16126
- numberOfLines: 1,
16127
17030
  styles: {
16128
- color: 'THEME_COLORS.SYSTEM_BUTTON_TEXT',
16129
- fontSize: '16@fs',
16130
- fontWeight: '400',
16131
17031
  flexDirection: 'column',
16132
17032
  position: 'relative',
16133
17033
  zIndex: 1,
16134
17034
  alignSelf: 'flex-start',
16135
17035
  flexGrow: 0,
16136
17036
  flexShrink: 0,
16137
- height: 48,
16138
- borderRadius: 8,
16139
- backgroundColor: 'THEME_COLORS.SYSTEM_BUTTON_BACKGROUND',
16140
- },
16141
- attributes: { labelKey: 'Button' },
16142
- },
16143
- types: {
16144
- EventObject: {
16145
- type: ['Permission', 'Navigate', 'Placement'],
16146
- permission: 'string',
16147
- navigate_to: 'string',
16148
- targetIndex: 'number',
16149
- placementKey: 'string',
17037
+ width: '100%',
17038
+ height: '100%',
17039
+ flex: 1,
16150
17040
  },
16151
17041
  },
17042
+ types: {},
16152
17043
  },
16153
17044
  {
16154
17045
  schemaVersion: 2,