@developer_tribe/react-builder 1.2.34 → 1.2.36

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 (96) hide show
  1. package/dist/RenderPage.d.ts +0 -12
  2. package/dist/attributes-editor/Field.d.ts +2 -1
  3. package/dist/attributes-editor/SizeField.d.ts +2 -1
  4. package/dist/attributes-editor/attributesEditorUtils.d.ts +2 -1
  5. package/dist/build-components/BIcon/BIcon.d.ts +0 -3
  6. package/dist/build-components/BIcon/BIconProps.generated.d.ts +1 -0
  7. package/dist/build-components/Button/Button.d.ts +0 -3
  8. package/dist/build-components/CarouselItem/CarouselItem.d.ts +0 -3
  9. package/dist/build-components/CountDown/CountDownProps.generated.d.ts +1 -1
  10. package/dist/build-components/OnboardButton/OnboardButton.d.ts +0 -3
  11. package/dist/build-components/OnboardDot/OnboardDot.d.ts +0 -3
  12. package/dist/build-components/OnboardFooter/OnboardFooterProps.generated.d.ts +1 -0
  13. package/dist/build-components/OnboardItem/OnboardItemProps.generated.d.ts +0 -3
  14. package/dist/build-components/OnboardSubtitle/OnboardSubtitleProps.generated.d.ts +1 -0
  15. package/dist/build-components/OnboardTitle/OnboardTitleProps.generated.d.ts +1 -0
  16. package/dist/build-components/PaywallCloseButton/PaywallCloseButton.d.ts +0 -3
  17. package/dist/build-components/PaywallCloseButton/PaywallCloseButtonProps.generated.d.ts +1 -0
  18. package/dist/build-components/PriceTag/PriceTagProps.generated.d.ts +1 -0
  19. package/dist/build-components/Pricing/PricingProps.generated.d.ts +1 -0
  20. package/dist/build-components/Promo/PromoProps.generated.d.ts +1 -0
  21. package/dist/build-components/Text/TextProps.generated.d.ts +1 -0
  22. package/dist/build-components/patterns.generated.d.ts +9798 -10468
  23. package/dist/components/Breadcrumb.d.ts +1 -1
  24. package/dist/index.cjs.js +1 -1
  25. package/dist/index.cjs.js.map +1 -1
  26. package/dist/index.esm.js +1 -1
  27. package/dist/index.esm.js.map +1 -1
  28. package/dist/index.web.cjs.js +3 -3
  29. package/dist/index.web.cjs.js.map +1 -1
  30. package/dist/index.web.esm.js +3 -3
  31. package/dist/index.web.esm.js.map +1 -1
  32. package/dist/migrations/migratePipe.d.ts +2 -1
  33. package/dist/migrations/semver.d.ts +0 -7
  34. package/dist/pages/DebugJsonPage.d.ts +2 -1
  35. package/dist/pages/ProjectDebug.d.ts +2 -1
  36. package/dist/pages/ProjectMigrationPage.d.ts +2 -1
  37. package/dist/pages/ProjectPage.d.ts +2 -1
  38. package/dist/pages/ProjectValidationPage.d.ts +2 -1
  39. package/dist/pages/tabs/SideTool.d.ts +0 -7
  40. package/dist/utils/parseColor.d.ts +1 -1
  41. package/package.json +1 -1
  42. package/scripts/prebuild/assets/prompt_scheme.md +5 -11
  43. package/scripts/prebuild/generate-prompt-schemes.js +11 -8
  44. package/scripts/prebuild/utils/validateAllComponentsOrThrow.js +50 -0
  45. package/scripts/prebuild/utils/validatePatternJson.js +73 -0
  46. package/src/RenderPage.tsx +1 -7
  47. package/src/assets/meta.json +1 -1
  48. package/src/assets/prompt-scheme-onboard.generated.ts +1 -1
  49. package/src/assets/prompt-scheme-paywall.generated.ts +1 -1
  50. package/src/attributes-editor/Field.tsx +1 -1
  51. package/src/attributes-editor/SizeField.tsx +1 -1
  52. package/src/attributes-editor/attributesEditorUtils.ts +1 -1
  53. package/src/attributes-editor/useAttributesEditorModel.ts +16 -15
  54. package/src/build-components/BIcon/BIcon.tsx +0 -2
  55. package/src/build-components/BIcon/BIconProps.generated.ts +1 -0
  56. package/src/build-components/BackgroundImage/pattern.json +8 -9
  57. package/src/build-components/Button/Button.tsx +0 -2
  58. package/src/build-components/CarouselDots/CarouselDots.tsx +1 -1
  59. package/src/build-components/CarouselDots/pattern.json +1 -1
  60. package/src/build-components/CarouselItem/CarouselItem.tsx +0 -2
  61. package/src/build-components/CountDown/CountDownProps.generated.ts +1 -1
  62. package/src/build-components/OnboardButton/OnboardButton.tsx +1 -4
  63. package/src/build-components/OnboardButtons/pattern.json +2 -4
  64. package/src/build-components/OnboardDot/OnboardDot.tsx +10 -10
  65. package/src/build-components/OnboardDot/pattern.json +2 -3
  66. package/src/build-components/OnboardFooter/OnboardFooter.tsx +8 -13
  67. package/src/build-components/OnboardFooter/OnboardFooterProps.generated.ts +1 -0
  68. package/src/build-components/OnboardItem/OnboardItemProps.generated.ts +0 -3
  69. package/src/build-components/OnboardItem/pattern.json +27 -23
  70. package/src/build-components/OnboardProvider/pattern.json +29 -27
  71. package/src/build-components/OnboardSubtitle/OnboardSubtitleProps.generated.ts +1 -0
  72. package/src/build-components/OnboardTitle/OnboardTitleProps.generated.ts +1 -0
  73. package/src/build-components/PaywallCloseButton/PaywallCloseButton.tsx +0 -2
  74. package/src/build-components/PaywallCloseButton/PaywallCloseButtonProps.generated.ts +1 -0
  75. package/src/build-components/PriceTag/PriceTagProps.generated.ts +1 -0
  76. package/src/build-components/Pricing/PricingProps.generated.ts +1 -0
  77. package/src/build-components/Promo/PromoProps.generated.ts +1 -0
  78. package/src/build-components/RadioButton/pattern.json +2 -4
  79. package/src/build-components/Separator/pattern.json +24 -24
  80. package/src/build-components/Text/TextProps.generated.ts +1 -0
  81. package/src/build-components/Text/pattern.json +2 -1
  82. package/src/build-components/View/pattern.json +265 -265
  83. package/src/build-components/patterns.generated.ts +10019 -10689
  84. package/src/components/Breadcrumb.tsx +1 -1
  85. package/src/migrations/migratePipe.ts +1 -1
  86. package/src/migrations/semver.ts +3 -3
  87. package/src/modals/MockableFeatureModal.tsx +3 -1
  88. package/src/modals/PromptManagerModal.tsx +1 -7
  89. package/src/pages/DebugJsonPage.tsx +1 -1
  90. package/src/pages/ProjectDebug.tsx +1 -1
  91. package/src/pages/ProjectMigrationPage.tsx +1 -1
  92. package/src/pages/ProjectPage.tsx +1 -1
  93. package/src/pages/ProjectValidationPage.tsx +1 -1
  94. package/src/pages/tabs/SideTool.tsx +1 -1
  95. package/src/utils/nodeXml.ts +2 -4
  96. package/src/utils/parseColor.ts +5 -6
@@ -1,6 +1,6 @@
1
1
  import { ReactNode } from 'react';
2
2
  import { useLogRender } from '../utils/useLogRender';
3
- export type BreadcrumbItem = {
3
+ type BreadcrumbItem = {
4
4
  label: string;
5
5
  to?: string;
6
6
  onClick?: () => void;
@@ -11,7 +11,7 @@ const MIGRATIONS: Migration[] = [
11
11
  migration_1_1_2_extract_component_attributes_from_style,
12
12
  ];
13
13
 
14
- export type MigrationPipe = {
14
+ type MigrationPipe = {
15
15
  projectVersion: string;
16
16
  requiredVersion: string;
17
17
  required: boolean;
@@ -1,6 +1,6 @@
1
- export type Semver = { major: number; minor: number; patch: number };
1
+ type Semver = { major: number; minor: number; patch: number };
2
2
 
3
- export function parseSemver(input?: string | null): Semver {
3
+ function parseSemver(input?: string | null): Semver {
4
4
  const raw = typeof input === 'string' ? input.trim() : '';
5
5
  const [maj, min, pat] = raw.split('.').slice(0, 3);
6
6
  const toNum = (v?: string) => {
@@ -10,7 +10,7 @@ export function parseSemver(input?: string | null): Semver {
10
10
  return { major: toNum(maj), minor: toNum(min), patch: toNum(pat) };
11
11
  }
12
12
 
13
- export function compareSemver(a: string, b: string): number {
13
+ function compareSemver(a: string, b: string): number {
14
14
  const A = parseSemver(a);
15
15
  const B = parseSemver(b);
16
16
  if (A.major !== B.major) return A.major < B.major ? -1 : 1;
@@ -371,7 +371,9 @@ export function MockableFeatureModal({
371
371
  />
372
372
  </div>
373
373
  <p style={{ margin: '8px 0 0', opacity: 0.7, fontSize: 12 }}>
374
- No mock UI yet for "{featureKey}" — import via JSON.
374
+ No mock UI yet for {'"'}
375
+ {featureKey}
376
+ {'"'} — import via JSON.
375
377
  </p>
376
378
  </>
377
379
  )}
@@ -1,4 +1,4 @@
1
- import React, { useCallback, useEffect, useMemo, useState } from 'react';
1
+ import React, { useEffect, useMemo, useState } from 'react';
2
2
  import Modal from './Modal';
3
3
  import { useRenderStore } from '../store';
4
4
  import type { Node } from '../types/Node';
@@ -102,12 +102,6 @@ function XmlEditorTab({
102
102
  setApplySuccess(false);
103
103
  }, [initialXml]);
104
104
 
105
- const handleChange = useCallback((value: string) => {
106
- setText(value);
107
- setApplyError(null);
108
- setApplySuccess(false);
109
- }, []);
110
-
111
105
  const handleApply = () => {
112
106
  try {
113
107
  const parsed = xmlToNode(text);
@@ -12,7 +12,7 @@ import {
12
12
  isNodeString,
13
13
  } from '../utils/nodeGuards';
14
14
 
15
- export type DebugJsonPageProps = {
15
+ type DebugJsonPageProps = {
16
16
  data: Node | null | undefined;
17
17
  setData: React.Dispatch<React.SetStateAction<Node>>;
18
18
  project?: unknown;
@@ -123,7 +123,7 @@ function resolveNodeTypeAtPath(
123
123
  : {};
124
124
  }
125
125
 
126
- export type ProjectDebugProps = {
126
+ type ProjectDebugProps = {
127
127
  name: string;
128
128
  rawData: unknown;
129
129
  validationError: string;
@@ -3,7 +3,7 @@ import type { Product } from '../paywall/types/paywall-types';
3
3
  import type { PaywallBenefits } from '../paywall/types/benefits';
4
4
  import { ProjectDebug } from './ProjectDebug';
5
5
 
6
- export type ProjectMigrationPageProps = {
6
+ type ProjectMigrationPageProps = {
7
7
  name: string;
8
8
  rawData: unknown;
9
9
 
@@ -36,7 +36,7 @@ import { useProjectFonts } from '../hooks/useProjectFonts';
36
36
  import { resolveProjectForSave, toProjectMeta } from './projectPageUtils';
37
37
  import { getDefaultProject } from '../utils/getDefaultProject';
38
38
  import { CURRENT_PROJECT_VERSION } from '../migrations/migratePipe';
39
- export type ProjectPageProps = {
39
+ type ProjectPageProps = {
40
40
  project: Project;
41
41
  // TODO: Tüm onSaveProject call-site'ları toProjectMeta kullanacak şekilde migrate et
42
42
  onSaveProject: (project: ProjectMeta) => void;
@@ -6,7 +6,7 @@ import { safeJsonStringify } from '../utils/safeJsonStringify';
6
6
  import type { Node } from '../types/Node';
7
7
  import { wrapNodeInMain } from '../utils/wrapNodeInMain';
8
8
 
9
- export type ProjectValidationPageProps = {
9
+ type ProjectValidationPageProps = {
10
10
  name: string;
11
11
  rawData: unknown;
12
12
  validationError: string;
@@ -13,7 +13,7 @@ type SideToolProps = {
13
13
  setData: React.Dispatch<React.SetStateAction<Node>>;
14
14
  };
15
15
 
16
- export function SideTool({ data, setData }: SideToolProps) {
16
+ function SideTool({ data, setData }: SideToolProps) {
17
17
  useLogRender('SideTool');
18
18
  const [isDebugModalOpen, setIsDebugModalOpen] = useState(false);
19
19
  const [isLocalicationModalOpen, setIsLocalicationModalOpen] = useState(false);
@@ -135,8 +135,7 @@ function domElementToNode(el: Element): NodeData {
135
135
  const reserved = new Set(['key', 'sourceType', 'isMain']);
136
136
  const attributes: Record<string, unknown> = {};
137
137
 
138
- for (let i = 0; i < el.attributes.length; i++) {
139
- const attr = el.attributes[i];
138
+ for (const attr of Array.from(el.attributes)) {
140
139
  if (reserved.has(attr.name)) {
141
140
  if (attr.name === 'key') nodeData.key = attr.value;
142
141
  else if (attr.name === 'sourceType') nodeData.sourceType = attr.value;
@@ -152,8 +151,7 @@ function domElementToNode(el: Element): NodeData {
152
151
 
153
152
  // Children
154
153
  const childNodes: Node[] = [];
155
- for (let i = 0; i < el.childNodes.length; i++) {
156
- const child = el.childNodes[i];
154
+ for (const child of Array.from(el.childNodes)) {
157
155
  if (child.nodeType === 1) {
158
156
  // Element
159
157
  childNodes.push(domElementToNode(child as Element));
@@ -14,28 +14,27 @@ export function parseColor(value?: string, options: ParseColorOptions = {}) {
14
14
  if (!trimmed) return undefined;
15
15
 
16
16
  const { projectColors, theme } = options;
17
- if (!projectColors) return trimmed;
18
17
 
19
18
  if (trimmed.startsWith(STATIC_PREFIX)) {
20
19
  const token = trimmed.slice(STATIC_PREFIX.length);
21
- const resolved = projectColors.STATIC_COLORS?.[token];
20
+ const resolved = projectColors?.STATIC_COLORS?.[token];
22
21
  return typeof resolved === 'string' && resolved.trim()
23
22
  ? resolved.trim()
24
- : trimmed;
23
+ : null;
25
24
  }
26
25
 
27
26
  if (trimmed.startsWith(THEME_PREFIX)) {
28
27
  const token = trimmed.slice(THEME_PREFIX.length);
29
- if (!token) return trimmed;
28
+ if (!token) return null;
30
29
 
31
30
  const resolvedTheme = theme ?? 'light';
32
- const themeTokens = projectColors.THEME_COLORS?.[resolvedTheme];
31
+ const themeTokens = projectColors?.THEME_COLORS?.[resolvedTheme];
33
32
  const resolved = themeTokens?.[token];
34
33
  if (typeof resolved === 'string' && resolved.trim()) {
35
34
  return resolved.trim();
36
35
  }
37
36
 
38
- return trimmed;
37
+ return null;
39
38
  }
40
39
 
41
40
  return trimmed;