@intlayer/design-system 6.1.2 → 6.1.4

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 (100) hide show
  1. package/dist/.vite/manifest.json +62 -7
  2. package/dist/better-auth.CiuwFiHM-7umXOENE.js.map +1 -1
  3. package/dist/better-auth.CiuwFiHM-C2nBKRMa.cjs.map +1 -1
  4. package/dist/components/DictionaryFieldEditor/ContentEditorView/TextEditor.cjs +2 -2
  5. package/dist/components/DictionaryFieldEditor/ContentEditorView/TextEditor.cjs.map +1 -1
  6. package/dist/components/DictionaryFieldEditor/ContentEditorView/TextEditor.mjs +1 -1
  7. package/dist/components/DictionaryFieldEditor/VersionSwitcherDropDown/versionSwitcherDropDown.content.cjs +2 -1
  8. package/dist/components/DictionaryFieldEditor/VersionSwitcherDropDown/versionSwitcherDropDown.content.cjs.map +1 -1
  9. package/dist/components/ExpandCollapse/expandCollapse.content.cjs +2 -1
  10. package/dist/components/ExpandCollapse/expandCollapse.content.cjs.map +1 -1
  11. package/dist/components/Headers/index.cjs +12 -0
  12. package/dist/components/Headers/index.cjs.map +1 -1
  13. package/dist/components/Headers/index.d.ts +1 -0
  14. package/dist/components/Headers/index.d.ts.map +1 -1
  15. package/dist/components/Headers/index.mjs +13 -1
  16. package/dist/components/Headers/index.mjs.map +1 -1
  17. package/dist/components/IDE/Code.cjs +1 -1
  18. package/dist/components/IDE/Code.cjs.map +1 -1
  19. package/dist/components/IDE/Code.mjs +1 -1
  20. package/dist/components/IDE/Code.mjs.map +1 -1
  21. package/dist/components/IDE/code.content.cjs +2 -1
  22. package/dist/components/IDE/code.content.cjs.map +1 -1
  23. package/dist/components/IDE/copyCode.content.cjs +2 -1
  24. package/dist/components/IDE/copyCode.content.cjs.map +1 -1
  25. package/dist/components/LocaleSwitcherContentDropDown/localeSwitcher.content.cjs +2 -1
  26. package/dist/components/LocaleSwitcherContentDropDown/localeSwitcher.content.cjs.map +1 -1
  27. package/dist/components/LocaleSwitcherDropDown/localeSwitcher.content.cjs +2 -1
  28. package/dist/components/LocaleSwitcherDropDown/localeSwitcher.content.cjs.map +1 -1
  29. package/dist/components/MarkDownRender/MarkDownRender.cjs +188 -0
  30. package/dist/components/MarkDownRender/MarkDownRender.cjs.map +1 -0
  31. package/dist/components/MarkDownRender/MarkDownRender.d.ts +12 -0
  32. package/dist/components/MarkDownRender/MarkDownRender.d.ts.map +1 -0
  33. package/dist/components/MarkDownRender/MarkDownRender.mjs +188 -0
  34. package/dist/components/MarkDownRender/MarkDownRender.mjs.map +1 -0
  35. package/dist/components/MarkDownRender/index.cjs +2 -150
  36. package/dist/components/MarkDownRender/index.cjs.map +1 -1
  37. package/dist/components/MarkDownRender/index.d.ts +1 -11
  38. package/dist/components/MarkDownRender/index.d.ts.map +1 -1
  39. package/dist/components/MarkDownRender/index.mjs +1 -149
  40. package/dist/components/MarkDownRender/index.mjs.map +1 -1
  41. package/dist/components/MarkDownRender/processer.cjs +1619 -0
  42. package/dist/components/MarkDownRender/processer.cjs.map +1 -0
  43. package/dist/components/MarkDownRender/processer.d.ts +368 -0
  44. package/dist/components/MarkDownRender/processer.d.ts.map +1 -0
  45. package/dist/components/MarkDownRender/processer.mjs +1619 -0
  46. package/dist/components/MarkDownRender/processer.mjs.map +1 -0
  47. package/dist/components/Tab/Tab.cjs +171 -0
  48. package/dist/components/Tab/Tab.cjs.map +1 -0
  49. package/dist/components/Tab/Tab.d.ts +24 -0
  50. package/dist/components/Tab/Tab.d.ts.map +1 -0
  51. package/dist/components/Tab/Tab.mjs +171 -0
  52. package/dist/components/Tab/Tab.mjs.map +1 -0
  53. package/dist/components/Tab/TabContext.cjs +28 -0
  54. package/dist/components/Tab/TabContext.cjs.map +1 -0
  55. package/dist/components/Tab/TabContext.d.ts +19 -0
  56. package/dist/components/Tab/TabContext.d.ts.map +1 -0
  57. package/dist/components/Tab/TabContext.mjs +28 -0
  58. package/dist/components/Tab/TabContext.mjs.map +1 -0
  59. package/dist/components/Tab/index.cjs +5 -0
  60. package/dist/components/Tab/index.cjs.map +1 -0
  61. package/dist/components/Tab/index.d.ts +2 -0
  62. package/dist/components/Tab/index.d.ts.map +1 -0
  63. package/dist/components/Tab/index.mjs +5 -0
  64. package/dist/components/Tab/index.mjs.map +1 -0
  65. package/dist/components/TabSelector/TabSelector.cjs +6 -1
  66. package/dist/components/TabSelector/TabSelector.cjs.map +1 -1
  67. package/dist/components/TabSelector/TabSelector.d.ts +1 -1
  68. package/dist/components/TabSelector/TabSelector.d.ts.map +1 -1
  69. package/dist/components/TabSelector/TabSelector.mjs +6 -1
  70. package/dist/components/TabSelector/TabSelector.mjs.map +1 -1
  71. package/dist/components/Table/Table.cjs +15 -8
  72. package/dist/components/Table/Table.cjs.map +1 -1
  73. package/dist/components/Table/Table.d.ts.map +1 -1
  74. package/dist/components/Table/Table.mjs +15 -8
  75. package/dist/components/Table/Table.mjs.map +1 -1
  76. package/dist/components/Table/table.content.cjs +2 -1
  77. package/dist/components/Table/table.content.cjs.map +1 -1
  78. package/dist/components/index.cjs +5 -2
  79. package/dist/components/index.cjs.map +1 -1
  80. package/dist/components/index.d.ts +1 -0
  81. package/dist/components/index.d.ts.map +1 -1
  82. package/dist/components/index.mjs +5 -2
  83. package/dist/components/index.mjs.map +1 -1
  84. package/dist/hooks/auth.cjs +7 -5
  85. package/dist/hooks/auth.cjs.map +1 -1
  86. package/dist/hooks/auth.mjs +7 -5
  87. package/dist/hooks/auth.mjs.map +1 -1
  88. package/dist/hooks/index.cjs +2 -0
  89. package/dist/hooks/index.cjs.map +1 -1
  90. package/dist/hooks/index.d.ts +1 -0
  91. package/dist/hooks/index.d.ts.map +1 -1
  92. package/dist/hooks/index.mjs +2 -0
  93. package/dist/hooks/index.mjs.map +1 -1
  94. package/dist/hooks/useHorizontalSwipe.cjs +144 -0
  95. package/dist/hooks/useHorizontalSwipe.cjs.map +1 -0
  96. package/dist/hooks/useHorizontalSwipe.d.ts +26 -0
  97. package/dist/hooks/useHorizontalSwipe.d.ts.map +1 -0
  98. package/dist/hooks/useHorizontalSwipe.mjs +144 -0
  99. package/dist/hooks/useHorizontalSwipe.mjs.map +1 -0
  100. package/package.json +43 -18
@@ -452,7 +452,7 @@
452
452
  "src/components/DropDown/index.tsx",
453
453
  "src/components/SwitchSelector/index.tsx",
454
454
  "src/components/LocaleSwitcherContentDropDown/LocaleSwitcherContentContext.tsx",
455
- "src/components/MarkDownRender/index.tsx",
455
+ "src/components/MarkDownRender/MarkDownRender.tsx",
456
456
  "src/components/DictionaryFieldEditor/EnumKeyInput.tsx"
457
457
  ]
458
458
  },
@@ -1518,10 +1518,10 @@
1518
1518
  "src/components/Logo/LogoWithTextBelow.tsx"
1519
1519
  ]
1520
1520
  },
1521
- "src/components/MarkDownRender/index.tsx": {
1522
- "file": "components/MarkDownRender/index.cjs",
1523
- "name": "components/MarkDownRender/index",
1524
- "src": "src/components/MarkDownRender/index.tsx",
1521
+ "src/components/MarkDownRender/MarkDownRender.tsx": {
1522
+ "file": "components/MarkDownRender/MarkDownRender.cjs",
1523
+ "name": "components/MarkDownRender/MarkDownRender",
1524
+ "src": "src/components/MarkDownRender/MarkDownRender.tsx",
1525
1525
  "isEntry": true,
1526
1526
  "imports": [
1527
1527
  "src/utils/cn.ts",
@@ -1529,9 +1529,27 @@
1529
1529
  "src/components/IDE/Code.tsx",
1530
1530
  "src/components/IDE/CodeContext.tsx",
1531
1531
  "src/components/Link/Link.tsx",
1532
- "src/components/Table/Table.tsx"
1532
+ "src/components/Tab/Tab.tsx",
1533
+ "src/components/Tab/TabContext.tsx",
1534
+ "src/components/Table/Table.tsx",
1535
+ "src/components/MarkDownRender/processer.tsx"
1536
+ ]
1537
+ },
1538
+ "src/components/MarkDownRender/index.ts": {
1539
+ "file": "components/MarkDownRender/index.cjs",
1540
+ "name": "components/MarkDownRender/index",
1541
+ "src": "src/components/MarkDownRender/index.ts",
1542
+ "isEntry": true,
1543
+ "imports": [
1544
+ "src/components/MarkDownRender/MarkDownRender.tsx"
1533
1545
  ]
1534
1546
  },
1547
+ "src/components/MarkDownRender/processer.tsx": {
1548
+ "file": "components/MarkDownRender/processer.cjs",
1549
+ "name": "components/MarkDownRender/processer",
1550
+ "src": "src/components/MarkDownRender/processer.tsx",
1551
+ "isEntry": true
1552
+ },
1535
1553
  "src/components/MaxHeightSmoother/index.tsx": {
1536
1554
  "file": "components/MaxHeightSmoother/index.cjs",
1537
1555
  "name": "components/MaxHeightSmoother/index",
@@ -1835,6 +1853,35 @@
1835
1853
  "src/utils/cn.ts"
1836
1854
  ]
1837
1855
  },
1856
+ "src/components/Tab/Tab.tsx": {
1857
+ "file": "components/Tab/Tab.cjs",
1858
+ "name": "components/Tab/Tab",
1859
+ "src": "src/components/Tab/Tab.tsx",
1860
+ "isEntry": true,
1861
+ "imports": [
1862
+ "_better-auth.CiuwFiHM-C2nBKRMa.cjs",
1863
+ "src/hooks/useHorizontalSwipe.ts",
1864
+ "src/hooks/useScrollBlockage/useScrollBlockageStore.ts",
1865
+ "src/utils/cn.ts",
1866
+ "src/components/TabSelector/TabSelector.tsx",
1867
+ "src/components/Tab/TabContext.tsx"
1868
+ ]
1869
+ },
1870
+ "src/components/Tab/TabContext.tsx": {
1871
+ "file": "components/Tab/TabContext.cjs",
1872
+ "name": "components/Tab/TabContext",
1873
+ "src": "src/components/Tab/TabContext.tsx",
1874
+ "isEntry": true
1875
+ },
1876
+ "src/components/Tab/index.tsx": {
1877
+ "file": "components/Tab/index.cjs",
1878
+ "name": "components/Tab/index",
1879
+ "src": "src/components/Tab/index.tsx",
1880
+ "isEntry": true,
1881
+ "imports": [
1882
+ "src/components/Tab/Tab.tsx"
1883
+ ]
1884
+ },
1838
1885
  "src/components/TabSelector/TabSelector.tsx": {
1839
1886
  "file": "components/TabSelector/TabSelector.cjs",
1840
1887
  "name": "components/TabSelector/TabSelector",
@@ -2066,7 +2113,7 @@
2066
2113
  "src/components/Logo/LogoTextOnly.tsx",
2067
2114
  "src/components/Logo/LogoWithText.tsx",
2068
2115
  "src/components/Logo/LogoWithTextBelow.tsx",
2069
- "src/components/MarkDownRender/index.tsx",
2116
+ "src/components/MarkDownRender/MarkDownRender.tsx",
2070
2117
  "src/components/MaxHeightSmoother/index.tsx",
2071
2118
  "src/components/MaxWidthSmoother/index.tsx",
2072
2119
  "src/components/Modal/Modal.tsx",
@@ -2082,6 +2129,7 @@
2082
2129
  "src/components/Select/Select.tsx",
2083
2130
  "src/components/SocialNetworks/index.tsx",
2084
2131
  "src/components/SwitchSelector/index.tsx",
2132
+ "src/components/Tab/Tab.tsx",
2085
2133
  "src/components/TabSelector/TabSelector.tsx",
2086
2134
  "src/components/Tag/index.tsx",
2087
2135
  "src/components/TextArea/AutoSizeTextArea.tsx",
@@ -2126,6 +2174,7 @@
2126
2174
  "src/hooks/useAuth/useSession.ts",
2127
2175
  "src/hooks/useDevice.ts",
2128
2176
  "src/hooks/useGetElementOrWindow.ts",
2177
+ "src/hooks/useHorizontalSwipe.ts",
2129
2178
  "src/hooks/useIsDarkMode.ts",
2130
2179
  "src/hooks/useIsMounted.ts",
2131
2180
  "src/hooks/useItemSelector.ts",
@@ -2196,6 +2245,12 @@
2196
2245
  "src": "src/hooks/useGetElementOrWindow.ts",
2197
2246
  "isEntry": true
2198
2247
  },
2248
+ "src/hooks/useHorizontalSwipe.ts": {
2249
+ "file": "hooks/useHorizontalSwipe.cjs",
2250
+ "name": "hooks/useHorizontalSwipe",
2251
+ "src": "src/hooks/useHorizontalSwipe.ts",
2252
+ "isEntry": true
2253
+ },
2199
2254
  "src/hooks/useIntlayerAPI.ts": {
2200
2255
  "file": "hooks/useIntlayerAPI.cjs",
2201
2256
  "name": "hooks/useIntlayerAPI",
@@ -1 +1 @@
1
- {"version":3,"file":"better-auth.CiuwFiHM-7umXOENE.js","sources":["../../../../node_modules/.pnpm/better-auth@1.3.16_next@15.5.4_@babel+core@7.28.4_@opentelemetry+api@1.9.0_react-dom@19_5e39a19fab8829b2d7dbe3167dd9fec3/node_modules/better-auth/dist/shared/better-auth.CiuwFiHM.mjs"],"sourcesContent":["const _envShim = /* @__PURE__ */ Object.create(null);\nconst _getEnv = (useShim) => globalThis.process?.env || //@ts-expect-error\nglobalThis.Deno?.env.toObject() || //@ts-expect-error\nglobalThis.__env__ || (useShim ? _envShim : globalThis);\nconst env = new Proxy(_envShim, {\n get(_, prop) {\n const env2 = _getEnv();\n return env2[prop] ?? _envShim[prop];\n },\n has(_, prop) {\n const env2 = _getEnv();\n return prop in env2 || prop in _envShim;\n },\n set(_, prop, value) {\n const env2 = _getEnv(true);\n env2[prop] = value;\n return true;\n },\n deleteProperty(_, prop) {\n if (!prop) {\n return false;\n }\n const env2 = _getEnv(true);\n delete env2[prop];\n return true;\n },\n ownKeys() {\n const env2 = _getEnv(true);\n return Object.keys(env2);\n }\n});\nfunction toBoolean(val) {\n return val ? val !== \"false\" : false;\n}\nconst nodeENV = typeof process !== \"undefined\" && process.env && process.env.NODE_ENV || \"\";\nconst isProduction = nodeENV === \"production\";\nconst isDevelopment = nodeENV === \"dev\" || nodeENV === \"development\";\nconst isTest = () => nodeENV === \"test\" || toBoolean(env.TEST);\nfunction getEnvVar(key, fallback) {\n if (typeof process !== \"undefined\" && process.env) {\n return process.env[key] ?? fallback;\n }\n if (typeof Deno !== \"undefined\") {\n return Deno.env.get(key) ?? fallback;\n }\n if (typeof Bun !== \"undefined\") {\n return Bun.env[key] ?? fallback;\n }\n return fallback;\n}\nfunction getBooleanEnvVar(key, fallback = true) {\n const value = getEnvVar(key);\n if (!value) return fallback;\n return value !== \"0\" && value.toLowerCase() !== \"false\" && value !== \"\";\n}\nconst ENV = {\n get BETTER_AUTH_TELEMETRY_ENDPOINT() {\n return getEnvVar(\n \"BETTER_AUTH_TELEMETRY_ENDPOINT\",\n \"https://telemetry.better-auth.com/v1/track\"\n );\n }\n};\n\nexport { ENV as E, isDevelopment as a, isProduction as b, getBooleanEnvVar as c, env as e, getEnvVar as g, isTest as i };\n"],"names":[],"mappings":"AAAA,MAAM,WAA2B,uBAAO,OAAO,IAAI;AACnD,MAAM,UAAU,CAAC,YAAY,WAAW,SAAS;AACjD,WAAW,MAAM,IAAI,SAAA;AACrB,WAAW,YAAY,UAAU,WAAW;AAC5C,MAAM,MAAM,IAAI,MAAM,UAAU;AAAA,EAC9B,IAAI,GAAG,MAAM;AACX,UAAM,OAAO,QAAA;AACb,WAAO,KAAK,IAAI,KAAK,SAAS,IAAI;AAAA,EACpC;AAAA,EACA,IAAI,GAAG,MAAM;AACX,UAAM,OAAO,QAAA;AACb,WAAO,QAAQ,QAAQ,QAAQ;AAAA,EACjC;AAAA,EACA,IAAI,GAAG,MAAM,OAAO;AAClB,UAAM,OAAO,QAAQ,IAAI;AACzB,SAAK,IAAI,IAAI;AACb,WAAO;AAAA,EACT;AAAA,EACA,eAAe,GAAG,MAAM;AACtB,QAAI,CAAC,MAAM;AACT,aAAO;AAAA,IACT;AACA,UAAM,OAAO,QAAQ,IAAI;AACzB,WAAO,KAAK,IAAI;AAChB,WAAO;AAAA,EACT;AAAA,EACA,UAAU;AACR,UAAM,OAAO,QAAQ,IAAI;AACzB,WAAO,OAAO,KAAK,IAAI;AAAA,EACzB;AACF,CAAC;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"better-auth.CiuwFiHM-7umXOENE.js","sources":["../../../../node_modules/.pnpm/better-auth@1.3.18_next@15.5.4_@babel+core@7.28.4_@opentelemetry+api@1.9.0_react-dom@19_4e132cbdcd0eb2f748c3ec449cb5df89/node_modules/better-auth/dist/shared/better-auth.CiuwFiHM.mjs"],"sourcesContent":["const _envShim = /* @__PURE__ */ Object.create(null);\nconst _getEnv = (useShim) => globalThis.process?.env || //@ts-expect-error\nglobalThis.Deno?.env.toObject() || //@ts-expect-error\nglobalThis.__env__ || (useShim ? _envShim : globalThis);\nconst env = new Proxy(_envShim, {\n get(_, prop) {\n const env2 = _getEnv();\n return env2[prop] ?? _envShim[prop];\n },\n has(_, prop) {\n const env2 = _getEnv();\n return prop in env2 || prop in _envShim;\n },\n set(_, prop, value) {\n const env2 = _getEnv(true);\n env2[prop] = value;\n return true;\n },\n deleteProperty(_, prop) {\n if (!prop) {\n return false;\n }\n const env2 = _getEnv(true);\n delete env2[prop];\n return true;\n },\n ownKeys() {\n const env2 = _getEnv(true);\n return Object.keys(env2);\n }\n});\nfunction toBoolean(val) {\n return val ? val !== \"false\" : false;\n}\nconst nodeENV = typeof process !== \"undefined\" && process.env && process.env.NODE_ENV || \"\";\nconst isProduction = nodeENV === \"production\";\nconst isDevelopment = nodeENV === \"dev\" || nodeENV === \"development\";\nconst isTest = () => nodeENV === \"test\" || toBoolean(env.TEST);\nfunction getEnvVar(key, fallback) {\n if (typeof process !== \"undefined\" && process.env) {\n return process.env[key] ?? fallback;\n }\n if (typeof Deno !== \"undefined\") {\n return Deno.env.get(key) ?? fallback;\n }\n if (typeof Bun !== \"undefined\") {\n return Bun.env[key] ?? fallback;\n }\n return fallback;\n}\nfunction getBooleanEnvVar(key, fallback = true) {\n const value = getEnvVar(key);\n if (!value) return fallback;\n return value !== \"0\" && value.toLowerCase() !== \"false\" && value !== \"\";\n}\nconst ENV = {\n get BETTER_AUTH_TELEMETRY_ENDPOINT() {\n return getEnvVar(\n \"BETTER_AUTH_TELEMETRY_ENDPOINT\",\n \"https://telemetry.better-auth.com/v1/track\"\n );\n }\n};\n\nexport { ENV as E, isDevelopment as a, isProduction as b, getBooleanEnvVar as c, env as e, getEnvVar as g, isTest as i };\n"],"names":[],"mappings":"AAAA,MAAM,WAA2B,uBAAO,OAAO,IAAI;AACnD,MAAM,UAAU,CAAC,YAAY,WAAW,SAAS;AACjD,WAAW,MAAM,IAAI,SAAA;AACrB,WAAW,YAAY,UAAU,WAAW;AAC5C,MAAM,MAAM,IAAI,MAAM,UAAU;AAAA,EAC9B,IAAI,GAAG,MAAM;AACX,UAAM,OAAO,QAAA;AACb,WAAO,KAAK,IAAI,KAAK,SAAS,IAAI;AAAA,EACpC;AAAA,EACA,IAAI,GAAG,MAAM;AACX,UAAM,OAAO,QAAA;AACb,WAAO,QAAQ,QAAQ,QAAQ;AAAA,EACjC;AAAA,EACA,IAAI,GAAG,MAAM,OAAO;AAClB,UAAM,OAAO,QAAQ,IAAI;AACzB,SAAK,IAAI,IAAI;AACb,WAAO;AAAA,EACT;AAAA,EACA,eAAe,GAAG,MAAM;AACtB,QAAI,CAAC,MAAM;AACT,aAAO;AAAA,IACT;AACA,UAAM,OAAO,QAAQ,IAAI;AACzB,WAAO,KAAK,IAAI;AAChB,WAAO;AAAA,EACT;AAAA,EACA,UAAU;AACR,UAAM,OAAO,QAAQ,IAAI;AACzB,WAAO,OAAO,KAAK,IAAI;AAAA,EACzB;AACF,CAAC;","x_google_ignoreList":[0]}
@@ -1 +1 @@
1
- {"version":3,"file":"better-auth.CiuwFiHM-C2nBKRMa.cjs","sources":["../../../../node_modules/.pnpm/better-auth@1.3.16_next@15.5.4_@babel+core@7.28.4_@opentelemetry+api@1.9.0_react-dom@19_5e39a19fab8829b2d7dbe3167dd9fec3/node_modules/better-auth/dist/shared/better-auth.CiuwFiHM.mjs"],"sourcesContent":["const _envShim = /* @__PURE__ */ Object.create(null);\nconst _getEnv = (useShim) => globalThis.process?.env || //@ts-expect-error\nglobalThis.Deno?.env.toObject() || //@ts-expect-error\nglobalThis.__env__ || (useShim ? _envShim : globalThis);\nconst env = new Proxy(_envShim, {\n get(_, prop) {\n const env2 = _getEnv();\n return env2[prop] ?? _envShim[prop];\n },\n has(_, prop) {\n const env2 = _getEnv();\n return prop in env2 || prop in _envShim;\n },\n set(_, prop, value) {\n const env2 = _getEnv(true);\n env2[prop] = value;\n return true;\n },\n deleteProperty(_, prop) {\n if (!prop) {\n return false;\n }\n const env2 = _getEnv(true);\n delete env2[prop];\n return true;\n },\n ownKeys() {\n const env2 = _getEnv(true);\n return Object.keys(env2);\n }\n});\nfunction toBoolean(val) {\n return val ? val !== \"false\" : false;\n}\nconst nodeENV = typeof process !== \"undefined\" && process.env && process.env.NODE_ENV || \"\";\nconst isProduction = nodeENV === \"production\";\nconst isDevelopment = nodeENV === \"dev\" || nodeENV === \"development\";\nconst isTest = () => nodeENV === \"test\" || toBoolean(env.TEST);\nfunction getEnvVar(key, fallback) {\n if (typeof process !== \"undefined\" && process.env) {\n return process.env[key] ?? fallback;\n }\n if (typeof Deno !== \"undefined\") {\n return Deno.env.get(key) ?? fallback;\n }\n if (typeof Bun !== \"undefined\") {\n return Bun.env[key] ?? fallback;\n }\n return fallback;\n}\nfunction getBooleanEnvVar(key, fallback = true) {\n const value = getEnvVar(key);\n if (!value) return fallback;\n return value !== \"0\" && value.toLowerCase() !== \"false\" && value !== \"\";\n}\nconst ENV = {\n get BETTER_AUTH_TELEMETRY_ENDPOINT() {\n return getEnvVar(\n \"BETTER_AUTH_TELEMETRY_ENDPOINT\",\n \"https://telemetry.better-auth.com/v1/track\"\n );\n }\n};\n\nexport { ENV as E, isDevelopment as a, isProduction as b, getBooleanEnvVar as c, env as e, getEnvVar as g, isTest as i };\n"],"names":[],"mappings":";AAAA,MAAM,WAA2B,uBAAO,OAAO,IAAI;AACnD,MAAM,UAAU,CAAC,YAAY,WAAW,SAAS;AACjD,WAAW,MAAM,IAAI,SAAA;AACrB,WAAW,YAAY,UAAU,WAAW;AAC5C,MAAM,MAAM,IAAI,MAAM,UAAU;AAAA,EAC9B,IAAI,GAAG,MAAM;AACX,UAAM,OAAO,QAAA;AACb,WAAO,KAAK,IAAI,KAAK,SAAS,IAAI;AAAA,EACpC;AAAA,EACA,IAAI,GAAG,MAAM;AACX,UAAM,OAAO,QAAA;AACb,WAAO,QAAQ,QAAQ,QAAQ;AAAA,EACjC;AAAA,EACA,IAAI,GAAG,MAAM,OAAO;AAClB,UAAM,OAAO,QAAQ,IAAI;AACzB,SAAK,IAAI,IAAI;AACb,WAAO;AAAA,EACT;AAAA,EACA,eAAe,GAAG,MAAM;AACtB,QAAI,CAAC,MAAM;AACT,aAAO;AAAA,IACT;AACA,UAAM,OAAO,QAAQ,IAAI;AACzB,WAAO,KAAK,IAAI;AAChB,WAAO;AAAA,EACT;AAAA,EACA,UAAU;AACR,UAAM,OAAO,QAAQ,IAAI;AACzB,WAAO,OAAO,KAAK,IAAI;AAAA,EACzB;AACF,CAAC;;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"better-auth.CiuwFiHM-C2nBKRMa.cjs","sources":["../../../../node_modules/.pnpm/better-auth@1.3.18_next@15.5.4_@babel+core@7.28.4_@opentelemetry+api@1.9.0_react-dom@19_4e132cbdcd0eb2f748c3ec449cb5df89/node_modules/better-auth/dist/shared/better-auth.CiuwFiHM.mjs"],"sourcesContent":["const _envShim = /* @__PURE__ */ Object.create(null);\nconst _getEnv = (useShim) => globalThis.process?.env || //@ts-expect-error\nglobalThis.Deno?.env.toObject() || //@ts-expect-error\nglobalThis.__env__ || (useShim ? _envShim : globalThis);\nconst env = new Proxy(_envShim, {\n get(_, prop) {\n const env2 = _getEnv();\n return env2[prop] ?? _envShim[prop];\n },\n has(_, prop) {\n const env2 = _getEnv();\n return prop in env2 || prop in _envShim;\n },\n set(_, prop, value) {\n const env2 = _getEnv(true);\n env2[prop] = value;\n return true;\n },\n deleteProperty(_, prop) {\n if (!prop) {\n return false;\n }\n const env2 = _getEnv(true);\n delete env2[prop];\n return true;\n },\n ownKeys() {\n const env2 = _getEnv(true);\n return Object.keys(env2);\n }\n});\nfunction toBoolean(val) {\n return val ? val !== \"false\" : false;\n}\nconst nodeENV = typeof process !== \"undefined\" && process.env && process.env.NODE_ENV || \"\";\nconst isProduction = nodeENV === \"production\";\nconst isDevelopment = nodeENV === \"dev\" || nodeENV === \"development\";\nconst isTest = () => nodeENV === \"test\" || toBoolean(env.TEST);\nfunction getEnvVar(key, fallback) {\n if (typeof process !== \"undefined\" && process.env) {\n return process.env[key] ?? fallback;\n }\n if (typeof Deno !== \"undefined\") {\n return Deno.env.get(key) ?? fallback;\n }\n if (typeof Bun !== \"undefined\") {\n return Bun.env[key] ?? fallback;\n }\n return fallback;\n}\nfunction getBooleanEnvVar(key, fallback = true) {\n const value = getEnvVar(key);\n if (!value) return fallback;\n return value !== \"0\" && value.toLowerCase() !== \"false\" && value !== \"\";\n}\nconst ENV = {\n get BETTER_AUTH_TELEMETRY_ENDPOINT() {\n return getEnvVar(\n \"BETTER_AUTH_TELEMETRY_ENDPOINT\",\n \"https://telemetry.better-auth.com/v1/track\"\n );\n }\n};\n\nexport { ENV as E, isDevelopment as a, isProduction as b, getBooleanEnvVar as c, env as e, getEnvVar as g, isTest as i };\n"],"names":[],"mappings":";AAAA,MAAM,WAA2B,uBAAO,OAAO,IAAI;AACnD,MAAM,UAAU,CAAC,YAAY,WAAW,SAAS;AACjD,WAAW,MAAM,IAAI,SAAA;AACrB,WAAW,YAAY,UAAU,WAAW;AAC5C,MAAM,MAAM,IAAI,MAAM,UAAU;AAAA,EAC9B,IAAI,GAAG,MAAM;AACX,UAAM,OAAO,QAAA;AACb,WAAO,KAAK,IAAI,KAAK,SAAS,IAAI;AAAA,EACpC;AAAA,EACA,IAAI,GAAG,MAAM;AACX,UAAM,OAAO,QAAA;AACb,WAAO,QAAQ,QAAQ,QAAQ;AAAA,EACjC;AAAA,EACA,IAAI,GAAG,MAAM,OAAO;AAClB,UAAM,OAAO,QAAQ,IAAI;AACzB,SAAK,IAAI,IAAI;AACb,WAAO;AAAA,EACT;AAAA,EACA,eAAe,GAAG,MAAM;AACtB,QAAI,CAAC,MAAM;AACT,aAAO;AAAA,IACT;AACA,UAAM,OAAO,QAAQ,IAAI;AACzB,WAAO,KAAK,IAAI;AAChB,WAAO;AAAA,EACT;AAAA,EACA,UAAU;AACR,UAAM,OAAO,QAAQ,IAAI;AACzB,WAAO,OAAO,KAAK,IAAI;AAAA,EACzB;AACF,CAAC;;","x_google_ignoreList":[0]}
@@ -26,7 +26,7 @@ require("fuse.js");
26
26
  require("../../DropDown/index.cjs");
27
27
  const components_SwitchSelector_index = require("../../SwitchSelector/index.cjs");
28
28
  const components_LocaleSwitcherContentDropDown_LocaleSwitcherContentContext = require("../../LocaleSwitcherContentDropDown/LocaleSwitcherContentContext.cjs");
29
- const components_MarkDownRender_index = require("../../MarkDownRender/index.cjs");
29
+ const components_MarkDownRender_MarkDownRender = require("../../MarkDownRender/MarkDownRender.cjs");
30
30
  const components_DictionaryFieldEditor_EnumKeyInput = require("../EnumKeyInput.cjs");
31
31
  const traceKeys = ["filePath", "id", "nodeType"];
32
32
  const ContentEditorTextArea = ({
@@ -466,7 +466,7 @@ const MarkdownTextEditor = ({
466
466
  section: content,
467
467
  keyPath: childKeyPath,
468
468
  dictionary,
469
- renderSection: mode === 1 ? (content2) => /* @__PURE__ */ jsxRuntime.jsx(components_MarkDownRender_index.MarkdownRenderer, { isDarkMode, children: content2 }) : void 0,
469
+ renderSection: mode === 1 ? (content2) => /* @__PURE__ */ jsxRuntime.jsx(components_MarkDownRender_MarkDownRender.MarkdownRenderer, { isDarkMode, children: content2 }) : void 0,
470
470
  onContentChange
471
471
  }
472
472
  )
@@ -1 +1 @@
1
- {"version":3,"file":"TextEditor.cjs","sources":["../../../../src/components/DictionaryFieldEditor/ContentEditorView/TextEditor.tsx"],"sourcesContent":["'use client';\n\nimport type { Locales, LocalesValues } from '@intlayer/config/client';\nimport {\n type ConditionContent,\n type ContentNode,\n type Dictionary,\n type EnumerationContent,\n type KeyPath,\n type MarkdownContent,\n type TranslationContent,\n FileContent,\n GenderContent,\n getEmptyNode,\n getLocaleName,\n getNodeType,\n InsertionContent,\n NodeType,\n} from '@intlayer/core';\nimport { useConfiguration, useEditedContent } from '@intlayer/editor-react';\nimport { Plus, Trash, WandSparkles } from 'lucide-react';\nimport { type FC, Fragment, ReactNode, useState } from 'react';\nimport { useIntlayer, useLocale } from 'react-intlayer';\nimport { useAuditContentDeclarationField } from '../../../hooks';\nimport { renameKey } from '../../../utils/object';\nimport {\n Button,\n ButtonColor,\n ButtonSize,\n ButtonTextAlign,\n ButtonVariant,\n} from '../../Button';\nimport { Container } from '../../Container';\nimport {\n type ContentEditorInputProps as ContentEditorInputPropsBase,\n ContentEditorInput as ContentEditorInputBase,\n} from '../../ContentEditor/ContentEditorInput';\nimport {\n type ContentEditorTextAreaProps as ContentEditorTextAreaPropsBase,\n ContentEditorTextArea as ContentEditorTextAreaBase,\n} from '../../ContentEditor/ContentEditorTextArea';\nimport { InputVariant } from '../../Input';\nimport { Label } from '../../Label';\nimport { useLocaleSwitcherContent } from '../../LocaleSwitcherContentDropDown';\nimport { MarkdownRenderer } from '../../MarkDownRender';\nimport {\n type SwitchSelectorChoices,\n type SwitchSelectorProps,\n SwitchSelector,\n SwitchSelectorColor,\n SwitchSelectorSize,\n} from '../../SwitchSelector';\nimport { EnumKeyInput } from '../EnumKeyInput';\n\nexport const traceKeys: string[] = ['filePath', 'id', 'nodeType'];\n\ntype ContentEditorTextAreaProps = Omit<\n ContentEditorTextAreaPropsBase,\n 'onContentChange'\n> & {\n keyPath: KeyPath[];\n dictionary: Dictionary;\n};\n\nconst ContentEditorTextArea: FC<ContentEditorTextAreaProps> = ({\n keyPath,\n dictionary,\n ...props\n}) => {\n const { editedContent, addEditedContent } = useEditedContent();\n const configuration = useConfiguration();\n const { mutate: auditContentDeclarationField, isPending: isAuditing } =\n useAuditContentDeclarationField();\n\n return (\n <ContentEditorTextAreaBase\n variant={InputVariant.DEFAULT}\n onContentChange={(newValue) =>\n addEditedContent(dictionary.localId!, newValue, keyPath)\n }\n additionalButtons={\n <Button\n Icon={WandSparkles}\n label=\"Audit\"\n variant={ButtonVariant.HOVERABLE}\n size={ButtonSize.ICON_SM}\n color={ButtonColor.TEXT}\n className=\"cursor-pointer hover:scale-110\"\n isLoading={isAuditing}\n onClick={() => {\n auditContentDeclarationField(\n {\n fileContent: JSON.stringify({\n ...dictionary,\n ...(editedContent?.[dictionary.localId!] ?? {}),\n }),\n keyPath,\n locales: configuration.internationalization.locales ?? [],\n aiOptions: {\n apiKey: configuration.ai?.apiKey,\n model: configuration.ai?.model,\n temperature: configuration.ai?.temperature,\n },\n },\n {\n onSuccess: (response) => {\n if (!response?.data) return;\n\n try {\n const editedContent = response.data.fileContent as string;\n\n addEditedContent(\n dictionary.localId!,\n editedContent,\n keyPath\n );\n } catch (error) {\n console.error(error);\n }\n },\n }\n );\n }}\n />\n }\n {...props}\n />\n );\n};\n\ntype ContentEditorInputProps = Omit<\n ContentEditorInputPropsBase,\n 'onContentChange'\n> & {\n keyPath: KeyPath[];\n dictionary: Dictionary;\n};\n\nconst ContentEditorInput: FC<ContentEditorInputProps> = ({\n keyPath,\n dictionary,\n ...props\n}) => {\n const { addEditedContent } = useEditedContent();\n\n return (\n <ContentEditorInputBase\n variant={InputVariant.DEFAULT}\n onContentChange={(newValue) =>\n addEditedContent(dictionary.localId!, newValue, keyPath)\n }\n {...props}\n />\n );\n};\n\nconst toggleContent = [\n {\n content: 'False',\n value: false,\n },\n {\n content: 'True',\n value: true,\n },\n] as SwitchSelectorChoices<boolean>;\n\ntype ContentEditorToggleProps = SwitchSelectorProps & {\n dictionary: Dictionary;\n keyPath: KeyPath[];\n};\n\nconst ContentEditorToggle: FC<ContentEditorToggleProps> = ({\n dictionary,\n keyPath,\n ...props\n}) => {\n const { addEditedContent } = useEditedContent();\n\n return (\n <SwitchSelector\n choices={toggleContent}\n value={true}\n onChange={(value) =>\n addEditedContent(dictionary.localId!, value, keyPath)\n }\n color={SwitchSelectorColor.TEXT}\n size={SwitchSelectorSize.SM}\n {...props}\n />\n );\n};\n\nexport type TextEditorProps = {\n dictionary: Dictionary;\n keyPath: KeyPath[];\n section: ContentNode;\n isDarkMode?: boolean;\n renderSection?: (content: string) => ReactNode;\n onContentChange?: (newValue: string) => void;\n};\n\nconst TranslationTextEditor: FC<TextEditorProps> = ({\n section,\n keyPath,\n dictionary,\n renderSection,\n}: TextEditorProps) => {\n const { locale, defaultLocale } = useLocale();\n const { selectedLocales, availableLocales } = useLocaleSwitcherContent();\n\n const sectionContent = (section as TranslationContent<string>)[\n NodeType.Translation\n ] as Record<Locales, string>;\n\n const sectionContentKeys = Object.keys(sectionContent) as LocalesValues[];\n\n const isFiltered = availableLocales.length > selectedLocales.length;\n\n const localesList = isFiltered\n ? selectedLocales\n : // If the translation include content in other locales, we display all of them\n [...new Set([...availableLocales, ...sectionContentKeys])];\n\n const content: any = (section as TranslationContent<string>)[\n NodeType.Translation\n ];\n\n return (\n <table className=\"w-full\">\n <tbody className=\"flex w-full flex-col gap-2\">\n {localesList.map((translationKey) => (\n <Fragment key={translationKey}>\n <tr className=\"mt-2 w-full p-2 text-xs\">\n {getLocaleName(translationKey, locale)}\n </tr>\n <tr>\n <TextEditorContainer\n section={\n content[translationKey] ??\n getEmptyNode(content[defaultLocale])\n }\n keyPath={[\n ...keyPath,\n { type: NodeType.Translation, key: translationKey },\n ]}\n dictionary={dictionary}\n renderSection={renderSection}\n />\n </tr>\n </Fragment>\n ))}\n </tbody>\n </table>\n );\n};\n\nconst EnumerationTextEditor: FC<TextEditorProps> = ({\n section,\n keyPath,\n dictionary,\n renderSection,\n}) => {\n const { addEditedContent } = useEditedContent();\n const { addNewEnumeration, removeEnumeration } =\n useIntlayer('navigation-view');\n\n const content = (section as EnumerationContent<string>)[NodeType.Enumeration];\n const firstKey = Object.keys(content)[0] as keyof typeof content;\n\n return (\n <div className=\"flex flex-col gap-2\">\n <table className=\"w-full\">\n <tbody className=\"flex w-full flex-col gap-2\">\n {Object.keys(\n (section as EnumerationContent<ContentNode>)[NodeType.Enumeration]\n ).map((enumKey) => {\n const childrenKeyPath = [\n ...keyPath,\n { type: NodeType.Enumeration },\n ] as KeyPath[];\n return (\n <Fragment key={enumKey}>\n <tr className=\"mt-2 w-full\">\n <div className=\"flex flex-1\">\n <Button\n label={removeEnumeration.label.value}\n variant={ButtonVariant.HOVERABLE}\n color={ButtonColor.TEXT}\n Icon={Trash}\n className=\"ml-auto\"\n onClick={() =>\n addEditedContent(\n dictionary.localId!,\n undefined,\n childrenKeyPath\n )\n }\n >\n {removeEnumeration.text}\n </Button>\n </div>\n </tr>\n <tr className=\"w-full p-2\">\n <EnumKeyInput\n value={enumKey}\n onChange={(value) => {\n const preValueContent = (\n section as EnumerationContent<string>\n )[NodeType.Enumeration];\n const newValueContent = renameKey(\n preValueContent,\n enumKey as keyof typeof preValueContent,\n value\n );\n const newValue = {\n ...(section as EnumerationContent<string>),\n [NodeType.Enumeration]: newValueContent,\n };\n\n addEditedContent(dictionary.localId!, newValue, keyPath);\n }}\n />\n </tr>\n <tr className=\"block w-full\">\n <TextEditor\n section={\n content[enumKey as keyof typeof content] ??\n getEmptyNode(content[firstKey])\n }\n keyPath={childrenKeyPath}\n dictionary={dictionary}\n renderSection={renderSection}\n />\n </tr>\n </Fragment>\n );\n })}\n </tbody>\n </table>\n\n <Button\n label={addNewEnumeration.label.value}\n variant={ButtonVariant.HOVERABLE}\n color={ButtonColor.NEUTRAL}\n textAlign={ButtonTextAlign.LEFT}\n isFullWidth\n onClick={() =>\n addEditedContent(\n dictionary.localId!,\n getEmptyNode(content[firstKey]) ?? '',\n [...keyPath, { type: NodeType.Enumeration, key: 'unknown' }]\n )\n }\n Icon={Plus}\n className=\"m-2\"\n >\n {addNewEnumeration.text}\n </Button>\n </div>\n );\n};\n\nconst ConditionTextEditor: FC<TextEditorProps> = ({\n section,\n keyPath,\n dictionary,\n renderSection,\n}) => {\n const content = (section as ConditionContent<string>)[NodeType.Condition];\n\n return (\n <table className=\"w-full\">\n <tbody className=\"flex w-full flex-col gap-2\">\n {['true', 'false', 'fallback'].map((condKey) => (\n <Fragment key={condKey}>\n <tr key={condKey} className=\"mt-2 block w-full p-2 text-xs\">\n {String(condKey)}\n </tr>\n <tr key={condKey} className=\"block w-full\">\n <TextEditorContainer\n section={\n content[condKey as keyof typeof content] ??\n getEmptyNode(content['true'])\n }\n keyPath={[\n ...keyPath,\n {\n type: NodeType.Condition,\n key: condKey,\n } as KeyPath,\n ]}\n dictionary={dictionary}\n renderSection={renderSection}\n />\n </tr>\n </Fragment>\n ))}\n </tbody>\n </table>\n );\n};\n\nconst GenderTextEditor: FC<TextEditorProps> = ({\n section,\n keyPath,\n dictionary,\n renderSection,\n}) => {\n const content = (section as GenderContent<string>)[NodeType.Gender];\n\n return (\n <table className=\"w-full\">\n <tbody className=\"flex w-full flex-col gap-2\">\n {['male', 'female', 'fallback'].map((condKey) => (\n <Fragment key={condKey}>\n <tr key={condKey} className=\"mt-2 block w-full p-2 text-xs\">\n {String(condKey)}\n </tr>\n <tr key={condKey} className=\"block w-full\">\n <TextEditorContainer\n section={\n content[condKey as keyof typeof content] ??\n getEmptyNode(content['male'])\n }\n keyPath={[\n ...keyPath,\n {\n type: NodeType.Gender,\n key: condKey,\n } as KeyPath,\n ]}\n dictionary={dictionary}\n renderSection={renderSection}\n />\n </tr>\n </Fragment>\n ))}\n </tbody>\n </table>\n );\n};\n\nconst ArrayTextEditor: FC<TextEditorProps> = ({\n section,\n keyPath,\n dictionary,\n renderSection,\n}) => {\n const { addEditedContent } = useEditedContent();\n const { addNewElement, removeElement } = useIntlayer('navigation-view');\n\n return (\n <div className=\"flex flex-col gap-2\">\n <table className=\"w-full\">\n <tbody className=\"flex w-full flex-col gap-2\">\n {(section as unknown as ContentNode[]).map((subSection, index) => (\n <Fragment key={JSON.stringify(subSection)}>\n <tr className=\"mt-2 flex w-full justify-between gap-2 p-2\">\n <span className=\"text-xs\">{String(index)}</span>\n <Button\n label={removeElement.label.value}\n variant={ButtonVariant.HOVERABLE}\n color={ButtonColor.NEUTRAL}\n className=\"ml-auto\"\n textAlign={ButtonTextAlign.LEFT}\n onClick={() => {\n const newKeyPath: KeyPath[] = [\n ...keyPath,\n {\n type: NodeType.Array,\n key: (section as unknown as ContentNode[]).length,\n },\n ];\n addEditedContent(\n dictionary.localId!,\n undefined,\n newKeyPath\n );\n }}\n Icon={Trash}\n >\n {removeElement.text}\n </Button>\n </tr>\n\n <tr className=\"block w-full\">\n <TextEditorContainer\n section={\n subSection ??\n getEmptyNode((section as unknown as ContentNode[])[0])\n }\n keyPath={[\n ...keyPath,\n {\n type: NodeType.Array,\n key: index,\n },\n ]}\n dictionary={dictionary}\n renderSection={renderSection}\n />\n </tr>\n </Fragment>\n ))}\n </tbody>\n </table>\n <Button\n label={addNewElement.label.value}\n variant={ButtonVariant.HOVERABLE}\n color={ButtonColor.NEUTRAL}\n textAlign={ButtonTextAlign.LEFT}\n isFullWidth\n onClick={() => {\n const newKeyPath: KeyPath[] = [\n ...keyPath,\n {\n type: NodeType.Array,\n key: (section as unknown as ContentNode[]).length,\n },\n ];\n addEditedContent(\n dictionary.localId!,\n getEmptyNode((section as unknown as ContentNode[])[0]) ?? '',\n newKeyPath,\n false\n );\n }}\n Icon={Plus}\n >\n {addNewElement.text}\n </Button>\n </div>\n );\n};\n\nconst ObjectTextEditor: FC<TextEditorProps> = ({\n section,\n keyPath,\n dictionary,\n renderSection,\n}) => (\n <>\n <table className=\"w-full\">\n <tbody className=\"flex flex-col gap-2\">\n {Object.keys(section as unknown as Record<string, ContentNode>).map(\n (key) => {\n const childKeyPath: KeyPath[] = [\n ...keyPath,\n { type: NodeType.Object, key },\n ];\n const typedSection = section as unknown as Record<\n string,\n ContentNode\n >;\n const firstKey = Object.keys(\n typedSection\n )[0] as keyof typeof section;\n const subSection =\n typedSection[key as keyof typeof section] ??\n getEmptyNode(typedSection[firstKey]);\n\n return (\n <Fragment key={key}>\n <tr\n key={JSON.stringify(subSection)}\n className=\"mt-2 p-2 text-xs\"\n >\n {String(key)}\n </tr>\n <tr key={JSON.stringify(subSection)} className=\"block w-full\">\n <TextEditor\n section={subSection}\n keyPath={childKeyPath}\n dictionary={dictionary}\n renderSection={renderSection}\n />\n </tr>\n </Fragment>\n );\n }\n )}\n </tbody>\n </table>\n </>\n);\n\nenum MarkdownViewMode {\n Edit,\n Preview,\n}\n\nconst MarkdownTextEditor: FC<TextEditorProps> = ({\n section,\n keyPath,\n dictionary,\n isDarkMode,\n onContentChange,\n}) => {\n const [mode, setMode] = useState(MarkdownViewMode.Edit);\n const toggleContent = [\n {\n content: 'Edit',\n value: MarkdownViewMode.Edit,\n },\n {\n content: 'Preview',\n value: MarkdownViewMode.Preview,\n },\n ] as SwitchSelectorChoices<MarkdownViewMode>;\n const childKeyPath: KeyPath[] = [...keyPath, { type: NodeType.Markdown }];\n\n const content = (section as MarkdownContent<ContentNode>)[\n NodeType.Markdown\n ] as ContentNode;\n\n return (\n <div className=\"flex w-full flex-col justify-center gap-6 p-2\">\n <SwitchSelector\n choices={toggleContent}\n value={mode}\n onChange={setMode}\n color={SwitchSelectorColor.TEXT}\n size={SwitchSelectorSize.SM}\n className=\"ml-auto\"\n />\n\n <TextEditorContainer\n section={content}\n keyPath={childKeyPath}\n dictionary={dictionary}\n renderSection={\n mode === MarkdownViewMode.Preview\n ? (content) => (\n <MarkdownRenderer isDarkMode={isDarkMode}>\n {content}\n </MarkdownRenderer>\n )\n : undefined\n }\n onContentChange={onContentChange}\n />\n </div>\n );\n};\n\nconst InsertionTextEditor: FC<TextEditorProps> = ({\n section,\n keyPath,\n ...props\n}) => {\n const childKeyPath: KeyPath[] = [...keyPath, { type: NodeType.Insertion }];\n\n const content = (section as InsertionContent<ContentNode>)[\n NodeType.Insertion\n ];\n\n return (\n <div className=\"flex w-full flex-col justify-center gap-6 p-2\">\n <TextEditorContainer\n section={content}\n keyPath={childKeyPath}\n {...props}\n />\n </div>\n );\n};\n\nconst FileTextEditor: FC<TextEditorProps> = ({\n section,\n keyPath,\n ...props\n}) => {\n const childKeyPath: KeyPath[] = [...keyPath, { type: NodeType.File }];\n\n const fileUrl = (section as FileContent)[NodeType.File];\n const { content } = section as FileContent;\n\n return (\n <div className=\"flex w-full flex-col justify-center gap-6 p-2\">\n <span className=\"text-neutral text-sm\">{fileUrl} </span>\n <TextEditorContainer\n section={content}\n keyPath={childKeyPath}\n {...props}\n />\n </div>\n );\n};\n\nconst NestedTextEditor: FC<TextEditorProps> = ({\n keyPath,\n dictionary,\n renderSection,\n section,\n ...props\n}) => {\n const { addEditedContent } = useEditedContent();\n\n const content = (section as any)[NodeType.Nested];\n const childrenKeyPath = [...keyPath, { type: NodeType.Nested }] as KeyPath[];\n\n return (\n <div className=\"w-full p-2\">\n <Label>Dictionary key</Label>\n <ContentEditorInputBase\n aria-label=\"Edit field\"\n type=\"text\"\n variant={InputVariant.DEFAULT}\n {...props}\n onContentChange={(newValue) => {\n addEditedContent(\n dictionary.localId!,\n {\n ...content,\n dictionaryKey: String(newValue),\n },\n childrenKeyPath\n );\n }}\n >\n {content.dictionaryKey ?? ''}\n </ContentEditorInputBase>\n\n <Label>Path (optional)</Label>\n <ContentEditorInputBase\n aria-label=\"Edit field\"\n type=\"text\"\n variant={InputVariant.DEFAULT}\n {...props}\n onContentChange={(newValue) => {\n addEditedContent(\n dictionary.localId!,\n {\n ...content,\n path: newValue !== '' ? newValue : undefined,\n },\n childrenKeyPath\n );\n }}\n >\n {content.path ?? ''}\n </ContentEditorInputBase>\n </div>\n );\n};\n\nexport const TextEditor: FC<TextEditorProps> = ({\n section,\n keyPath,\n dictionary,\n renderSection,\n isDarkMode,\n}) => {\n const { tsxNotEditable } = useIntlayer('navigation-view');\n const nodeType = getNodeType(section);\n\n if (nodeType === NodeType.ReactNode) {\n return (\n <>\n <span>[React Node]</span>\n <span className=\"text-neutral text-xs\">{tsxNotEditable}</span>\n </>\n );\n }\n\n if (nodeType === NodeType.Nested) {\n return (\n <NestedTextEditor\n dictionary={dictionary}\n renderSection={renderSection}\n keyPath={keyPath}\n section={section}\n />\n );\n }\n\n if (nodeType === NodeType.Translation) {\n return (\n <TranslationTextEditor\n dictionary={dictionary}\n renderSection={renderSection}\n keyPath={keyPath}\n section={section}\n />\n );\n }\n\n if (nodeType === NodeType.Enumeration) {\n return (\n <EnumerationTextEditor\n dictionary={dictionary}\n renderSection={renderSection}\n keyPath={keyPath}\n section={section}\n />\n );\n }\n\n if (nodeType === NodeType.Condition) {\n return (\n <ConditionTextEditor\n dictionary={dictionary}\n renderSection={renderSection}\n keyPath={keyPath}\n section={section}\n />\n );\n }\n\n if (nodeType === NodeType.Gender) {\n return (\n <GenderTextEditor\n dictionary={dictionary}\n renderSection={renderSection}\n keyPath={keyPath}\n section={section}\n />\n );\n }\n\n if (nodeType === NodeType.Insertion) {\n return (\n <InsertionTextEditor\n dictionary={dictionary}\n renderSection={renderSection}\n keyPath={keyPath}\n section={section}\n />\n );\n }\n\n if (nodeType === NodeType.Markdown) {\n return (\n <MarkdownTextEditor\n dictionary={dictionary}\n keyPath={keyPath}\n section={section}\n isDarkMode={isDarkMode}\n />\n );\n }\n\n if (nodeType === NodeType.File) {\n return (\n <FileTextEditor\n dictionary={dictionary}\n renderSection={renderSection}\n keyPath={keyPath}\n section={section}\n />\n );\n }\n\n if (nodeType === NodeType.Array) {\n return (\n <ArrayTextEditor\n dictionary={dictionary}\n renderSection={renderSection}\n keyPath={keyPath}\n section={section}\n />\n );\n }\n\n if (nodeType === NodeType.Object) {\n return (\n <ObjectTextEditor\n dictionary={dictionary}\n renderSection={renderSection}\n keyPath={keyPath}\n section={section}\n />\n );\n }\n\n if (nodeType === NodeType.Number) {\n return (\n <div className=\"w-full p-2\">\n <ContentEditorInput\n dictionary={dictionary}\n keyPath={keyPath}\n type=\"number\"\n aria-label=\"Edit field\"\n >\n {section as number}\n </ContentEditorInput>\n </div>\n );\n }\n\n if (nodeType === NodeType.Text) {\n return (\n <div className=\"w-full p-2\">\n {typeof renderSection === 'function' ? (\n renderSection(section as string)\n ) : (\n <ContentEditorTextArea\n variant={InputVariant.DEFAULT}\n aria-label=\"Edit field\"\n keyPath={keyPath}\n dictionary={dictionary}\n >\n {section as string}\n </ContentEditorTextArea>\n )}\n </div>\n );\n }\n\n if (nodeType === NodeType.Boolean) {\n return (\n <div className=\"w-full p-2\">\n <ContentEditorToggle\n dictionary={dictionary}\n keyPath={keyPath}\n value={section as boolean}\n />\n </div>\n );\n }\n\n return (\n <div className=\"w-full p-2\">\n Error. Format not supported.\n {JSON.stringify(section, null, 2)}\n {JSON.stringify(keyPath, null, 2)}\n NodeType : {nodeType}\n </div>\n );\n};\n\nexport const TextEditorContainer: FC<TextEditorProps> = (props) => (\n <Container\n border\n background=\"none\"\n className=\"top-6 flex h-full flex-1 flex-col gap-6 overflow-hidden p-2 md:sticky\"\n roundedSize=\"xl\"\n >\n <TextEditor {...props} />\n </Container>\n);\n"],"names":["useEditedContent","useConfiguration","useAuditContentDeclarationField","jsx","ContentEditorTextAreaBase","InputVariant","Button","WandSparkles","ButtonVariant","ButtonSize","ButtonColor","editedContent","ContentEditorInputBase","SwitchSelector","SwitchSelectorColor","SwitchSelectorSize","useLocale","useLocaleSwitcherContent","NodeType","jsxs","Fragment","getLocaleName","getEmptyNode","useIntlayer","Trash","EnumKeyInput","renameKey","ButtonTextAlign","Plus","useState","toggleContent","content","MarkdownRenderer","Label","getNodeType","Container"],"mappings":"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"}
1
+ {"version":3,"file":"TextEditor.cjs","sources":["../../../../src/components/DictionaryFieldEditor/ContentEditorView/TextEditor.tsx"],"sourcesContent":["'use client';\n\nimport type { Locales, LocalesValues } from '@intlayer/config/client';\nimport {\n type ConditionContent,\n type ContentNode,\n type Dictionary,\n type EnumerationContent,\n type KeyPath,\n type MarkdownContent,\n type TranslationContent,\n FileContent,\n GenderContent,\n getEmptyNode,\n getLocaleName,\n getNodeType,\n InsertionContent,\n NodeType,\n} from '@intlayer/core';\nimport { useConfiguration, useEditedContent } from '@intlayer/editor-react';\nimport { Plus, Trash, WandSparkles } from 'lucide-react';\nimport { type FC, Fragment, ReactNode, useState } from 'react';\nimport { useIntlayer, useLocale } from 'react-intlayer';\nimport { useAuditContentDeclarationField } from '../../../hooks';\nimport { renameKey } from '../../../utils/object';\nimport {\n Button,\n ButtonColor,\n ButtonSize,\n ButtonTextAlign,\n ButtonVariant,\n} from '../../Button';\nimport { Container } from '../../Container';\nimport {\n type ContentEditorInputProps as ContentEditorInputPropsBase,\n ContentEditorInput as ContentEditorInputBase,\n} from '../../ContentEditor/ContentEditorInput';\nimport {\n type ContentEditorTextAreaProps as ContentEditorTextAreaPropsBase,\n ContentEditorTextArea as ContentEditorTextAreaBase,\n} from '../../ContentEditor/ContentEditorTextArea';\nimport { InputVariant } from '../../Input';\nimport { Label } from '../../Label';\nimport { useLocaleSwitcherContent } from '../../LocaleSwitcherContentDropDown';\nimport { MarkdownRenderer } from '../../MarkDownRender';\nimport {\n type SwitchSelectorChoices,\n type SwitchSelectorProps,\n SwitchSelector,\n SwitchSelectorColor,\n SwitchSelectorSize,\n} from '../../SwitchSelector';\nimport { EnumKeyInput } from '../EnumKeyInput';\n\nexport const traceKeys: string[] = ['filePath', 'id', 'nodeType'];\n\ntype ContentEditorTextAreaProps = Omit<\n ContentEditorTextAreaPropsBase,\n 'onContentChange'\n> & {\n keyPath: KeyPath[];\n dictionary: Dictionary;\n};\n\nconst ContentEditorTextArea: FC<ContentEditorTextAreaProps> = ({\n keyPath,\n dictionary,\n ...props\n}) => {\n const { editedContent, addEditedContent } = useEditedContent();\n const configuration = useConfiguration();\n const { mutate: auditContentDeclarationField, isPending: isAuditing } =\n useAuditContentDeclarationField();\n\n return (\n <ContentEditorTextAreaBase\n variant={InputVariant.DEFAULT}\n onContentChange={(newValue) =>\n addEditedContent(dictionary.localId!, newValue, keyPath)\n }\n additionalButtons={\n <Button\n Icon={WandSparkles}\n label=\"Audit\"\n variant={ButtonVariant.HOVERABLE}\n size={ButtonSize.ICON_SM}\n color={ButtonColor.TEXT}\n className=\"cursor-pointer hover:scale-110\"\n isLoading={isAuditing}\n onClick={() => {\n auditContentDeclarationField(\n {\n fileContent: JSON.stringify({\n ...dictionary,\n ...(editedContent?.[dictionary.localId!] ?? {}),\n }),\n keyPath,\n locales: configuration.internationalization.locales ?? [],\n aiOptions: {\n apiKey: configuration.ai?.apiKey,\n model: configuration.ai?.model,\n temperature: configuration.ai?.temperature,\n },\n },\n {\n onSuccess: (response) => {\n if (!response?.data) return;\n\n try {\n const editedContent = response.data.fileContent as string;\n\n addEditedContent(\n dictionary.localId!,\n editedContent,\n keyPath\n );\n } catch (error) {\n console.error(error);\n }\n },\n }\n );\n }}\n />\n }\n {...props}\n />\n );\n};\n\ntype ContentEditorInputProps = Omit<\n ContentEditorInputPropsBase,\n 'onContentChange'\n> & {\n keyPath: KeyPath[];\n dictionary: Dictionary;\n};\n\nconst ContentEditorInput: FC<ContentEditorInputProps> = ({\n keyPath,\n dictionary,\n ...props\n}) => {\n const { addEditedContent } = useEditedContent();\n\n return (\n <ContentEditorInputBase\n variant={InputVariant.DEFAULT}\n onContentChange={(newValue) =>\n addEditedContent(dictionary.localId!, newValue, keyPath)\n }\n {...props}\n />\n );\n};\n\nconst toggleContent = [\n {\n content: 'False',\n value: false,\n },\n {\n content: 'True',\n value: true,\n },\n] as SwitchSelectorChoices<boolean>;\n\ntype ContentEditorToggleProps = SwitchSelectorProps & {\n dictionary: Dictionary;\n keyPath: KeyPath[];\n};\n\nconst ContentEditorToggle: FC<ContentEditorToggleProps> = ({\n dictionary,\n keyPath,\n ...props\n}) => {\n const { addEditedContent } = useEditedContent();\n\n return (\n <SwitchSelector\n choices={toggleContent}\n value={true}\n onChange={(value) =>\n addEditedContent(dictionary.localId!, value, keyPath)\n }\n color={SwitchSelectorColor.TEXT}\n size={SwitchSelectorSize.SM}\n {...props}\n />\n );\n};\n\nexport type TextEditorProps = {\n dictionary: Dictionary;\n keyPath: KeyPath[];\n section: ContentNode;\n isDarkMode?: boolean;\n renderSection?: (content: string) => ReactNode;\n onContentChange?: (newValue: string) => void;\n};\n\nconst TranslationTextEditor: FC<TextEditorProps> = ({\n section,\n keyPath,\n dictionary,\n renderSection,\n}: TextEditorProps) => {\n const { locale, defaultLocale } = useLocale();\n const { selectedLocales, availableLocales } = useLocaleSwitcherContent();\n\n const sectionContent = (section as TranslationContent<string>)[\n NodeType.Translation\n ] as Record<Locales, string>;\n\n const sectionContentKeys = Object.keys(sectionContent) as LocalesValues[];\n\n const isFiltered = availableLocales.length > selectedLocales.length;\n\n const localesList = isFiltered\n ? selectedLocales\n : // If the translation include content in other locales, we display all of them\n [...new Set([...availableLocales, ...sectionContentKeys])];\n\n const content: any = (section as TranslationContent<string>)[\n NodeType.Translation\n ];\n\n return (\n <table className=\"w-full\">\n <tbody className=\"flex w-full flex-col gap-2\">\n {localesList.map((translationKey) => (\n <Fragment key={translationKey}>\n <tr className=\"mt-2 w-full p-2 text-xs\">\n {getLocaleName(translationKey, locale)}\n </tr>\n <tr>\n <TextEditorContainer\n section={\n content[translationKey] ??\n getEmptyNode(content[defaultLocale])\n }\n keyPath={[\n ...keyPath,\n { type: NodeType.Translation, key: translationKey },\n ]}\n dictionary={dictionary}\n renderSection={renderSection}\n />\n </tr>\n </Fragment>\n ))}\n </tbody>\n </table>\n );\n};\n\nconst EnumerationTextEditor: FC<TextEditorProps> = ({\n section,\n keyPath,\n dictionary,\n renderSection,\n}) => {\n const { addEditedContent } = useEditedContent();\n const { addNewEnumeration, removeEnumeration } =\n useIntlayer('navigation-view');\n\n const content = (section as EnumerationContent<string>)[NodeType.Enumeration];\n const firstKey = Object.keys(content)[0] as keyof typeof content;\n\n return (\n <div className=\"flex flex-col gap-2\">\n <table className=\"w-full\">\n <tbody className=\"flex w-full flex-col gap-2\">\n {Object.keys(\n (section as EnumerationContent<ContentNode>)[NodeType.Enumeration]\n ).map((enumKey) => {\n const childrenKeyPath = [\n ...keyPath,\n { type: NodeType.Enumeration },\n ] as KeyPath[];\n return (\n <Fragment key={enumKey}>\n <tr className=\"mt-2 w-full\">\n <div className=\"flex flex-1\">\n <Button\n label={removeEnumeration.label.value}\n variant={ButtonVariant.HOVERABLE}\n color={ButtonColor.TEXT}\n Icon={Trash}\n className=\"ml-auto\"\n onClick={() =>\n addEditedContent(\n dictionary.localId!,\n undefined,\n childrenKeyPath\n )\n }\n >\n {removeEnumeration.text}\n </Button>\n </div>\n </tr>\n <tr className=\"w-full p-2\">\n <EnumKeyInput\n value={enumKey}\n onChange={(value) => {\n const preValueContent = (\n section as EnumerationContent<string>\n )[NodeType.Enumeration];\n const newValueContent = renameKey(\n preValueContent,\n enumKey as keyof typeof preValueContent,\n value\n );\n const newValue = {\n ...(section as EnumerationContent<string>),\n [NodeType.Enumeration]: newValueContent,\n };\n\n addEditedContent(dictionary.localId!, newValue, keyPath);\n }}\n />\n </tr>\n <tr className=\"block w-full\">\n <TextEditor\n section={\n content[enumKey as keyof typeof content] ??\n getEmptyNode(content[firstKey])\n }\n keyPath={childrenKeyPath}\n dictionary={dictionary}\n renderSection={renderSection}\n />\n </tr>\n </Fragment>\n );\n })}\n </tbody>\n </table>\n\n <Button\n label={addNewEnumeration.label.value}\n variant={ButtonVariant.HOVERABLE}\n color={ButtonColor.NEUTRAL}\n textAlign={ButtonTextAlign.LEFT}\n isFullWidth\n onClick={() =>\n addEditedContent(\n dictionary.localId!,\n getEmptyNode(content[firstKey]) ?? '',\n [...keyPath, { type: NodeType.Enumeration, key: 'unknown' }]\n )\n }\n Icon={Plus}\n className=\"m-2\"\n >\n {addNewEnumeration.text}\n </Button>\n </div>\n );\n};\n\nconst ConditionTextEditor: FC<TextEditorProps> = ({\n section,\n keyPath,\n dictionary,\n renderSection,\n}) => {\n const content = (section as ConditionContent<string>)[NodeType.Condition];\n\n return (\n <table className=\"w-full\">\n <tbody className=\"flex w-full flex-col gap-2\">\n {['true', 'false', 'fallback'].map((condKey) => (\n <Fragment key={condKey}>\n <tr key={condKey} className=\"mt-2 block w-full p-2 text-xs\">\n {String(condKey)}\n </tr>\n <tr key={condKey} className=\"block w-full\">\n <TextEditorContainer\n section={\n content[condKey as keyof typeof content] ??\n getEmptyNode(content['true'])\n }\n keyPath={[\n ...keyPath,\n {\n type: NodeType.Condition,\n key: condKey,\n } as KeyPath,\n ]}\n dictionary={dictionary}\n renderSection={renderSection}\n />\n </tr>\n </Fragment>\n ))}\n </tbody>\n </table>\n );\n};\n\nconst GenderTextEditor: FC<TextEditorProps> = ({\n section,\n keyPath,\n dictionary,\n renderSection,\n}) => {\n const content = (section as GenderContent<string>)[NodeType.Gender];\n\n return (\n <table className=\"w-full\">\n <tbody className=\"flex w-full flex-col gap-2\">\n {['male', 'female', 'fallback'].map((condKey) => (\n <Fragment key={condKey}>\n <tr key={condKey} className=\"mt-2 block w-full p-2 text-xs\">\n {String(condKey)}\n </tr>\n <tr key={condKey} className=\"block w-full\">\n <TextEditorContainer\n section={\n content[condKey as keyof typeof content] ??\n getEmptyNode(content['male'])\n }\n keyPath={[\n ...keyPath,\n {\n type: NodeType.Gender,\n key: condKey,\n } as KeyPath,\n ]}\n dictionary={dictionary}\n renderSection={renderSection}\n />\n </tr>\n </Fragment>\n ))}\n </tbody>\n </table>\n );\n};\n\nconst ArrayTextEditor: FC<TextEditorProps> = ({\n section,\n keyPath,\n dictionary,\n renderSection,\n}) => {\n const { addEditedContent } = useEditedContent();\n const { addNewElement, removeElement } = useIntlayer('navigation-view');\n\n return (\n <div className=\"flex flex-col gap-2\">\n <table className=\"w-full\">\n <tbody className=\"flex w-full flex-col gap-2\">\n {(section as unknown as ContentNode[]).map((subSection, index) => (\n <Fragment key={JSON.stringify(subSection)}>\n <tr className=\"mt-2 flex w-full justify-between gap-2 p-2\">\n <span className=\"text-xs\">{String(index)}</span>\n <Button\n label={removeElement.label.value}\n variant={ButtonVariant.HOVERABLE}\n color={ButtonColor.NEUTRAL}\n className=\"ml-auto\"\n textAlign={ButtonTextAlign.LEFT}\n onClick={() => {\n const newKeyPath: KeyPath[] = [\n ...keyPath,\n {\n type: NodeType.Array,\n key: (section as unknown as ContentNode[]).length,\n },\n ];\n addEditedContent(\n dictionary.localId!,\n undefined,\n newKeyPath\n );\n }}\n Icon={Trash}\n >\n {removeElement.text}\n </Button>\n </tr>\n\n <tr className=\"block w-full\">\n <TextEditorContainer\n section={\n subSection ??\n getEmptyNode((section as unknown as ContentNode[])[0])\n }\n keyPath={[\n ...keyPath,\n {\n type: NodeType.Array,\n key: index,\n },\n ]}\n dictionary={dictionary}\n renderSection={renderSection}\n />\n </tr>\n </Fragment>\n ))}\n </tbody>\n </table>\n <Button\n label={addNewElement.label.value}\n variant={ButtonVariant.HOVERABLE}\n color={ButtonColor.NEUTRAL}\n textAlign={ButtonTextAlign.LEFT}\n isFullWidth\n onClick={() => {\n const newKeyPath: KeyPath[] = [\n ...keyPath,\n {\n type: NodeType.Array,\n key: (section as unknown as ContentNode[]).length,\n },\n ];\n addEditedContent(\n dictionary.localId!,\n getEmptyNode((section as unknown as ContentNode[])[0]) ?? '',\n newKeyPath,\n false\n );\n }}\n Icon={Plus}\n >\n {addNewElement.text}\n </Button>\n </div>\n );\n};\n\nconst ObjectTextEditor: FC<TextEditorProps> = ({\n section,\n keyPath,\n dictionary,\n renderSection,\n}) => (\n <>\n <table className=\"w-full\">\n <tbody className=\"flex flex-col gap-2\">\n {Object.keys(section as unknown as Record<string, ContentNode>).map(\n (key) => {\n const childKeyPath: KeyPath[] = [\n ...keyPath,\n { type: NodeType.Object, key },\n ];\n const typedSection = section as unknown as Record<\n string,\n ContentNode\n >;\n const firstKey = Object.keys(\n typedSection\n )[0] as keyof typeof section;\n const subSection =\n typedSection[key as keyof typeof section] ??\n getEmptyNode(typedSection[firstKey]);\n\n return (\n <Fragment key={key}>\n <tr\n key={JSON.stringify(subSection)}\n className=\"mt-2 p-2 text-xs\"\n >\n {String(key)}\n </tr>\n <tr key={JSON.stringify(subSection)} className=\"block w-full\">\n <TextEditor\n section={subSection}\n keyPath={childKeyPath}\n dictionary={dictionary}\n renderSection={renderSection}\n />\n </tr>\n </Fragment>\n );\n }\n )}\n </tbody>\n </table>\n </>\n);\n\nenum MarkdownViewMode {\n Edit,\n Preview,\n}\n\nconst MarkdownTextEditor: FC<TextEditorProps> = ({\n section,\n keyPath,\n dictionary,\n isDarkMode,\n onContentChange,\n}) => {\n const [mode, setMode] = useState(MarkdownViewMode.Edit);\n const toggleContent = [\n {\n content: 'Edit',\n value: MarkdownViewMode.Edit,\n },\n {\n content: 'Preview',\n value: MarkdownViewMode.Preview,\n },\n ] as SwitchSelectorChoices<MarkdownViewMode>;\n const childKeyPath: KeyPath[] = [...keyPath, { type: NodeType.Markdown }];\n\n const content = (section as MarkdownContent<ContentNode>)[\n NodeType.Markdown\n ] as ContentNode;\n\n return (\n <div className=\"flex w-full flex-col justify-center gap-6 p-2\">\n <SwitchSelector\n choices={toggleContent}\n value={mode}\n onChange={setMode}\n color={SwitchSelectorColor.TEXT}\n size={SwitchSelectorSize.SM}\n className=\"ml-auto\"\n />\n\n <TextEditorContainer\n section={content}\n keyPath={childKeyPath}\n dictionary={dictionary}\n renderSection={\n mode === MarkdownViewMode.Preview\n ? (content) => (\n <MarkdownRenderer isDarkMode={isDarkMode}>\n {content}\n </MarkdownRenderer>\n )\n : undefined\n }\n onContentChange={onContentChange}\n />\n </div>\n );\n};\n\nconst InsertionTextEditor: FC<TextEditorProps> = ({\n section,\n keyPath,\n ...props\n}) => {\n const childKeyPath: KeyPath[] = [...keyPath, { type: NodeType.Insertion }];\n\n const content = (section as InsertionContent<ContentNode>)[\n NodeType.Insertion\n ];\n\n return (\n <div className=\"flex w-full flex-col justify-center gap-6 p-2\">\n <TextEditorContainer\n section={content}\n keyPath={childKeyPath}\n {...props}\n />\n </div>\n );\n};\n\nconst FileTextEditor: FC<TextEditorProps> = ({\n section,\n keyPath,\n ...props\n}) => {\n const childKeyPath: KeyPath[] = [...keyPath, { type: NodeType.File }];\n\n const fileUrl = (section as FileContent)[NodeType.File];\n const { content } = section as FileContent;\n\n return (\n <div className=\"flex w-full flex-col justify-center gap-6 p-2\">\n <span className=\"text-neutral text-sm\">{fileUrl} </span>\n <TextEditorContainer\n section={content}\n keyPath={childKeyPath}\n {...props}\n />\n </div>\n );\n};\n\nconst NestedTextEditor: FC<TextEditorProps> = ({\n keyPath,\n dictionary,\n renderSection,\n section,\n ...props\n}) => {\n const { addEditedContent } = useEditedContent();\n\n const content = (section as any)[NodeType.Nested];\n const childrenKeyPath = [...keyPath, { type: NodeType.Nested }] as KeyPath[];\n\n return (\n <div className=\"w-full p-2\">\n <Label>Dictionary key</Label>\n <ContentEditorInputBase\n aria-label=\"Edit field\"\n type=\"text\"\n variant={InputVariant.DEFAULT}\n {...props}\n onContentChange={(newValue) => {\n addEditedContent(\n dictionary.localId!,\n {\n ...content,\n dictionaryKey: String(newValue),\n },\n childrenKeyPath\n );\n }}\n >\n {content.dictionaryKey ?? ''}\n </ContentEditorInputBase>\n\n <Label>Path (optional)</Label>\n <ContentEditorInputBase\n aria-label=\"Edit field\"\n type=\"text\"\n variant={InputVariant.DEFAULT}\n {...props}\n onContentChange={(newValue) => {\n addEditedContent(\n dictionary.localId!,\n {\n ...content,\n path: newValue !== '' ? newValue : undefined,\n },\n childrenKeyPath\n );\n }}\n >\n {content.path ?? ''}\n </ContentEditorInputBase>\n </div>\n );\n};\n\nexport const TextEditor: FC<TextEditorProps> = ({\n section,\n keyPath,\n dictionary,\n renderSection,\n isDarkMode,\n}) => {\n const { tsxNotEditable } = useIntlayer('navigation-view');\n const nodeType = getNodeType(section);\n\n if (nodeType === NodeType.ReactNode) {\n return (\n <>\n <span>[React Node]</span>\n <span className=\"text-neutral text-xs\">{tsxNotEditable}</span>\n </>\n );\n }\n\n if (nodeType === NodeType.Nested) {\n return (\n <NestedTextEditor\n dictionary={dictionary}\n renderSection={renderSection}\n keyPath={keyPath}\n section={section}\n />\n );\n }\n\n if (nodeType === NodeType.Translation) {\n return (\n <TranslationTextEditor\n dictionary={dictionary}\n renderSection={renderSection}\n keyPath={keyPath}\n section={section}\n />\n );\n }\n\n if (nodeType === NodeType.Enumeration) {\n return (\n <EnumerationTextEditor\n dictionary={dictionary}\n renderSection={renderSection}\n keyPath={keyPath}\n section={section}\n />\n );\n }\n\n if (nodeType === NodeType.Condition) {\n return (\n <ConditionTextEditor\n dictionary={dictionary}\n renderSection={renderSection}\n keyPath={keyPath}\n section={section}\n />\n );\n }\n\n if (nodeType === NodeType.Gender) {\n return (\n <GenderTextEditor\n dictionary={dictionary}\n renderSection={renderSection}\n keyPath={keyPath}\n section={section}\n />\n );\n }\n\n if (nodeType === NodeType.Insertion) {\n return (\n <InsertionTextEditor\n dictionary={dictionary}\n renderSection={renderSection}\n keyPath={keyPath}\n section={section}\n />\n );\n }\n\n if (nodeType === NodeType.Markdown) {\n return (\n <MarkdownTextEditor\n dictionary={dictionary}\n keyPath={keyPath}\n section={section}\n isDarkMode={isDarkMode}\n />\n );\n }\n\n if (nodeType === NodeType.File) {\n return (\n <FileTextEditor\n dictionary={dictionary}\n renderSection={renderSection}\n keyPath={keyPath}\n section={section}\n />\n );\n }\n\n if (nodeType === NodeType.Array) {\n return (\n <ArrayTextEditor\n dictionary={dictionary}\n renderSection={renderSection}\n keyPath={keyPath}\n section={section}\n />\n );\n }\n\n if (nodeType === NodeType.Object) {\n return (\n <ObjectTextEditor\n dictionary={dictionary}\n renderSection={renderSection}\n keyPath={keyPath}\n section={section}\n />\n );\n }\n\n if (nodeType === NodeType.Number) {\n return (\n <div className=\"w-full p-2\">\n <ContentEditorInput\n dictionary={dictionary}\n keyPath={keyPath}\n type=\"number\"\n aria-label=\"Edit field\"\n >\n {section as number}\n </ContentEditorInput>\n </div>\n );\n }\n\n if (nodeType === NodeType.Text) {\n return (\n <div className=\"w-full p-2\">\n {typeof renderSection === 'function' ? (\n renderSection(section as string)\n ) : (\n <ContentEditorTextArea\n variant={InputVariant.DEFAULT}\n aria-label=\"Edit field\"\n keyPath={keyPath}\n dictionary={dictionary}\n >\n {section as string}\n </ContentEditorTextArea>\n )}\n </div>\n );\n }\n\n if (nodeType === NodeType.Boolean) {\n return (\n <div className=\"w-full p-2\">\n <ContentEditorToggle\n dictionary={dictionary}\n keyPath={keyPath}\n value={section as boolean}\n />\n </div>\n );\n }\n\n return (\n <div className=\"w-full p-2\">\n Error. Format not supported.\n {JSON.stringify(section, null, 2)}\n {JSON.stringify(keyPath, null, 2)}\n NodeType : {nodeType}\n </div>\n );\n};\n\nexport const TextEditorContainer: FC<TextEditorProps> = (props) => (\n <Container\n border\n background=\"none\"\n className=\"top-6 flex h-full flex-1 flex-col gap-6 overflow-hidden p-2 md:sticky\"\n roundedSize=\"xl\"\n >\n <TextEditor {...props} />\n </Container>\n);\n"],"names":["useEditedContent","useConfiguration","useAuditContentDeclarationField","jsx","ContentEditorTextAreaBase","InputVariant","Button","WandSparkles","ButtonVariant","ButtonSize","ButtonColor","editedContent","ContentEditorInputBase","SwitchSelector","SwitchSelectorColor","SwitchSelectorSize","useLocale","useLocaleSwitcherContent","NodeType","jsxs","Fragment","getLocaleName","getEmptyNode","useIntlayer","Trash","EnumKeyInput","renameKey","ButtonTextAlign","Plus","useState","toggleContent","content","MarkdownRenderer","Label","getNodeType","Container"],"mappings":"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"}
@@ -24,7 +24,7 @@ import "fuse.js";
24
24
  import "../../DropDown/index.mjs";
25
25
  import { SwitchSelector, SwitchSelectorSize, SwitchSelectorColor } from "../../SwitchSelector/index.mjs";
26
26
  import { useLocaleSwitcherContent } from "../../LocaleSwitcherContentDropDown/LocaleSwitcherContentContext.mjs";
27
- import { MarkdownRenderer } from "../../MarkDownRender/index.mjs";
27
+ import { MarkdownRenderer } from "../../MarkDownRender/MarkDownRender.mjs";
28
28
  import { EnumKeyInput } from "../EnumKeyInput.mjs";
29
29
  const traceKeys = ["filePath", "id", "nodeType"];
30
30
  const ContentEditorTextArea = ({
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
2
3
  const intlayer = require("intlayer");
3
4
  const versionSwitcherContent = {
4
5
  key: "version-switcher",
@@ -54,5 +55,5 @@ const versionSwitcherContent = {
54
55
  })
55
56
  }
56
57
  };
57
- module.exports = versionSwitcherContent;
58
+ exports.default = versionSwitcherContent;
58
59
  //# sourceMappingURL=versionSwitcherDropDown.content.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"versionSwitcherDropDown.content.cjs","sources":["../../../../src/components/DictionaryFieldEditor/VersionSwitcherDropDown/versionSwitcherDropDown.content.ts"],"sourcesContent":["import { t, type Dictionary } from 'intlayer';\n\nconst versionSwitcherContent = {\n key: 'version-switcher',\n autoFill: './{{key}}.content.json',\n content: {\n versionSwitcherLabel: t({\n en: 'Version selector',\n 'en-GB': 'Version selector',\n fr: 'Sélecteur de version',\n es: 'Selector de versión',\n de: 'Version wähler',\n ja: 'バージョンセレクター',\n ko: '버전 선택기',\n zh: '版本选择器',\n it: 'Selettore di versione',\n pt: 'Seletor de versão',\n hi: 'संस्करण चयनकर्ता',\n ar: 'منتقي الإصدار',\n ru: 'Выбор версии',\n tr: 'Sürüm seçici',\n }),\n versionListLabel: t({\n en: 'Version list',\n 'en-GB': 'Version list',\n fr: 'Liste des versions',\n es: 'Lista de versiones',\n de: 'Versionsliste',\n ja: 'バージョンリスト',\n ko: '버전 목록',\n zh: '版本列表',\n it: 'Elenco delle versioni',\n pt: 'Lista de versões',\n hi: 'संस्करण सूची',\n ar: 'قائمة الإصدارات',\n ru: 'Список версий',\n tr: 'Sürüm listesi',\n }),\n switchTo: t({\n en: 'Switch to',\n fr: 'Passer à',\n es: 'Cambiar a',\n 'en-GB': 'Switch to',\n de: 'Wechseln Sie zu',\n ja: 'に切り替える',\n ko: '전환',\n zh: '切换到',\n it: 'Passa a',\n pt: 'Mudar para',\n hi: 'स्विच करें',\n ar: 'التبديل إلى',\n ru: 'Переключиться на',\n tr: 'Geçiş yap',\n }),\n },\n} satisfies Dictionary;\n\nexport default versionSwitcherContent;\n"],"names":["t"],"mappings":";;AAEA,MAAM,yBAAyB;AAAA,EAC7B,KAAK;AAAA,EACL,UAAU;AAAA,EACV,SAAS;AAAA,IACP,sBAAsBA,SAAAA,EAAE;AAAA,MACtB,IAAI;AAAA,MACJ,SAAS;AAAA,MACT,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,IAAA,CACL;AAAA,IACD,kBAAkBA,SAAAA,EAAE;AAAA,MAClB,IAAI;AAAA,MACJ,SAAS;AAAA,MACT,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,IAAA,CACL;AAAA,IACD,UAAUA,SAAAA,EAAE;AAAA,MACV,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,SAAS;AAAA,MACT,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,IAAA,CACL;AAAA,EAAA;AAEL;;"}
1
+ {"version":3,"file":"versionSwitcherDropDown.content.cjs","sources":["../../../../src/components/DictionaryFieldEditor/VersionSwitcherDropDown/versionSwitcherDropDown.content.ts"],"sourcesContent":["import { t, type Dictionary } from 'intlayer';\n\nconst versionSwitcherContent = {\n key: 'version-switcher',\n autoFill: './{{key}}.content.json',\n content: {\n versionSwitcherLabel: t({\n en: 'Version selector',\n 'en-GB': 'Version selector',\n fr: 'Sélecteur de version',\n es: 'Selector de versión',\n de: 'Version wähler',\n ja: 'バージョンセレクター',\n ko: '버전 선택기',\n zh: '版本选择器',\n it: 'Selettore di versione',\n pt: 'Seletor de versão',\n hi: 'संस्करण चयनकर्ता',\n ar: 'منتقي الإصدار',\n ru: 'Выбор версии',\n tr: 'Sürüm seçici',\n }),\n versionListLabel: t({\n en: 'Version list',\n 'en-GB': 'Version list',\n fr: 'Liste des versions',\n es: 'Lista de versiones',\n de: 'Versionsliste',\n ja: 'バージョンリスト',\n ko: '버전 목록',\n zh: '版本列表',\n it: 'Elenco delle versioni',\n pt: 'Lista de versões',\n hi: 'संस्करण सूची',\n ar: 'قائمة الإصدارات',\n ru: 'Список версий',\n tr: 'Sürüm listesi',\n }),\n switchTo: t({\n en: 'Switch to',\n fr: 'Passer à',\n es: 'Cambiar a',\n 'en-GB': 'Switch to',\n de: 'Wechseln Sie zu',\n ja: 'に切り替える',\n ko: '전환',\n zh: '切换到',\n it: 'Passa a',\n pt: 'Mudar para',\n hi: 'स्विच करें',\n ar: 'التبديل إلى',\n ru: 'Переключиться на',\n tr: 'Geçiş yap',\n }),\n },\n} satisfies Dictionary;\n\nexport default versionSwitcherContent;\n"],"names":["t"],"mappings":";;;AAEA,MAAM,yBAAyB;AAAA,EAC7B,KAAK;AAAA,EACL,UAAU;AAAA,EACV,SAAS;AAAA,IACP,sBAAsBA,SAAAA,EAAE;AAAA,MACtB,IAAI;AAAA,MACJ,SAAS;AAAA,MACT,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,IAAA,CACL;AAAA,IACD,kBAAkBA,SAAAA,EAAE;AAAA,MAClB,IAAI;AAAA,MACJ,SAAS;AAAA,MACT,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,IAAA,CACL;AAAA,IACD,UAAUA,SAAAA,EAAE;AAAA,MACV,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,SAAS;AAAA,MACT,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,IAAA,CACL;AAAA,EAAA;AAEL;;"}
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
2
3
  const intlayer = require("intlayer");
3
4
  const expandCollapseContent = {
4
5
  key: "expand-collapse",
@@ -40,5 +41,5 @@ const expandCollapseContent = {
40
41
  })
41
42
  }
42
43
  };
43
- module.exports = expandCollapseContent;
44
+ exports.default = expandCollapseContent;
44
45
  //# sourceMappingURL=expandCollapse.content.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"expandCollapse.content.cjs","sources":["../../../src/components/ExpandCollapse/expandCollapse.content.ts"],"sourcesContent":["import { cond, t, type Dictionary } from 'intlayer';\n\nconst expandCollapseContent = {\n key: 'expand-collapse',\n autoFill: './{{key}}.content.json',\n content: {\n expandCollapseContent: cond({\n true: t({\n en: 'Show all',\n fr: 'Afficher tout',\n es: 'Mostrar todo',\n 'en-GB': 'Show all',\n de: 'Mehr anzeigen',\n ja: 'すべて表示',\n ko: '모두 보기',\n zh: '显示全部',\n it: 'Mostra tutto',\n pt: 'Mostrar tudo',\n hi: 'सभी दिखाएँ',\n ar: 'عرض الكل',\n ru: 'Показать все',\n tr: 'Hepsini göster',\n }),\n false: t({\n en: 'Show less',\n fr: 'Afficher moins',\n es: 'Mostrar menos',\n 'en-GB': 'Show less',\n de: 'Weniger anzeigen',\n ja: '表示を減らす',\n ko: '간략히 보기',\n zh: '显示较少',\n it: 'Mostra meno',\n pt: 'Mostrar menos',\n hi: 'कम दिखाएँ',\n ar: 'عرض أقل',\n ru: 'Показать меньше',\n tr: 'Daha az göster',\n }),\n }),\n },\n} satisfies Dictionary;\n\nexport default expandCollapseContent;\n"],"names":["cond","t"],"mappings":";;AAEA,MAAM,wBAAwB;AAAA,EAC5B,KAAK;AAAA,EACL,UAAU;AAAA,EACV,SAAS;AAAA,IACP,uBAAuBA,SAAAA,KAAK;AAAA,MAC1B,MAAMC,SAAAA,EAAE;AAAA,QACN,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,SAAS;AAAA,QACT,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,MAAA,CACL;AAAA,MACD,OAAOA,SAAAA,EAAE;AAAA,QACP,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,SAAS;AAAA,QACT,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,MAAA,CACL;AAAA,IAAA,CACF;AAAA,EAAA;AAEL;;"}
1
+ {"version":3,"file":"expandCollapse.content.cjs","sources":["../../../src/components/ExpandCollapse/expandCollapse.content.ts"],"sourcesContent":["import { cond, t, type Dictionary } from 'intlayer';\n\nconst expandCollapseContent = {\n key: 'expand-collapse',\n autoFill: './{{key}}.content.json',\n content: {\n expandCollapseContent: cond({\n true: t({\n en: 'Show all',\n fr: 'Afficher tout',\n es: 'Mostrar todo',\n 'en-GB': 'Show all',\n de: 'Mehr anzeigen',\n ja: 'すべて表示',\n ko: '모두 보기',\n zh: '显示全部',\n it: 'Mostra tutto',\n pt: 'Mostrar tudo',\n hi: 'सभी दिखाएँ',\n ar: 'عرض الكل',\n ru: 'Показать все',\n tr: 'Hepsini göster',\n }),\n false: t({\n en: 'Show less',\n fr: 'Afficher moins',\n es: 'Mostrar menos',\n 'en-GB': 'Show less',\n de: 'Weniger anzeigen',\n ja: '表示を減らす',\n ko: '간략히 보기',\n zh: '显示较少',\n it: 'Mostra meno',\n pt: 'Mostrar menos',\n hi: 'कम दिखाएँ',\n ar: 'عرض أقل',\n ru: 'Показать меньше',\n tr: 'Daha az göster',\n }),\n }),\n },\n} satisfies Dictionary;\n\nexport default expandCollapseContent;\n"],"names":["cond","t"],"mappings":";;;AAEA,MAAM,wBAAwB;AAAA,EAC5B,KAAK;AAAA,EACL,UAAU;AAAA,EACV,SAAS;AAAA,IACP,uBAAuBA,SAAAA,KAAK;AAAA,MAC1B,MAAMC,SAAAA,EAAE;AAAA,QACN,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,SAAS;AAAA,QACT,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,MAAA,CACL;AAAA,MACD,OAAOA,SAAAA,EAAE;AAAA,QACP,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,SAAS;AAAA,QACT,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,MAAA,CACL;AAAA,IAAA,CACF;AAAA,EAAA;AAEL;;"}
@@ -48,6 +48,16 @@ const StyledH5 = ({
48
48
  ...props
49
49
  }
50
50
  );
51
+ const StyledH6 = ({
52
+ className,
53
+ ...props
54
+ }) => /* @__PURE__ */ jsxRuntime.jsx(
55
+ "h6",
56
+ {
57
+ className: utils_cn.cn("mt-3 ml-3 text-base font-bold", styledHeading, className),
58
+ ...props
59
+ }
60
+ );
51
61
  const getId = (children) => String(children).normalize("NFD").replace(/[\u0300-\u036f]/g, "").replace(/\s+/g, "-").toLowerCase();
52
62
  const scrollToHash = (id) => {
53
63
  const element = document.getElementById(id);
@@ -99,9 +109,11 @@ const H2 = ({ isClickable = false, ...props }) => /* @__PURE__ */ jsxRuntime.jsx
99
109
  const H3 = ({ isClickable = false, ...props }) => /* @__PURE__ */ jsxRuntime.jsx(HeadingWrapper, { H: StyledH3, isClickable, ...props });
100
110
  const H4 = ({ isClickable = false, ...props }) => /* @__PURE__ */ jsxRuntime.jsx(HeadingWrapper, { H: StyledH4, isClickable, ...props });
101
111
  const H5 = ({ isClickable = false, ...props }) => /* @__PURE__ */ jsxRuntime.jsx(HeadingWrapper, { H: StyledH5, isClickable, ...props });
112
+ const H6 = ({ isClickable = false, ...props }) => /* @__PURE__ */ jsxRuntime.jsx(HeadingWrapper, { H: StyledH6, isClickable, ...props });
102
113
  exports.H1 = H1;
103
114
  exports.H2 = H2;
104
115
  exports.H3 = H3;
105
116
  exports.H4 = H4;
106
117
  exports.H5 = H5;
118
+ exports.H6 = H6;
107
119
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../../src/components/Headers/index.tsx"],"sourcesContent":["import type { FC, HTMLAttributes, JSX, MouseEvent } from 'react';\nimport { cn } from '../../utils/cn';\n\nconst styledHeading = `relative scroll-mb-8 scroll-mt-[30vh] scroll-p-8`;\nconst styledAfter = `after:content-['#'] after:scale-75 after:px-6 after:text-neutral after:absolute after:top-0 after:h-full after:-left-12 after:hover:cursor-pointer after:absolute after:to-neutral after:md:opacity-0 after:transition-opacity hover:after:opacity-80 after:duration-200 after:delay-100`;\n\nconst StyledH1: FC<HTMLAttributes<HTMLHeadingElement>> = ({\n className,\n ...props\n}) => <h1 className={cn('mt-5 text-2xl font-bold', className)} {...props} />;\n\nconst StyledH2: FC<HTMLAttributes<HTMLHeadingElement>> = ({\n className,\n ...props\n}) => (\n <h2\n className={cn('mt-16 mb-2 text-2xl font-bold', styledHeading, className)}\n {...props}\n />\n);\n\nconst StyledH3: FC<HTMLAttributes<HTMLHeadingElement>> = ({\n className,\n ...props\n}) => (\n <h3\n className={cn('mt-5 mb-2 text-xl font-bold', styledHeading, className)}\n {...props}\n />\n);\n\nconst StyledH4: FC<HTMLAttributes<HTMLHeadingElement>> = ({\n className,\n ...props\n}) => (\n <h4\n className={cn('mt-3 text-lg font-bold', styledHeading, className)}\n {...props}\n />\n);\n\nconst StyledH5: FC<HTMLAttributes<HTMLHeadingElement>> = ({\n className,\n ...props\n}) => (\n <h5\n className={cn('mt-3 text-base font-bold', styledHeading, className)}\n {...props}\n />\n);\n\ntype HeadingProps = HTMLAttributes<HTMLHeadingElement> & {\n isClickable?: boolean;\n};\ntype HeadingGlobalProps = HeadingProps & {\n H: FC<HTMLAttributes<HTMLHeadingElement>>;\n};\ntype HeadingType = (props: HeadingGlobalProps) => JSX.Element;\n\nconst getId = (children: string) =>\n String(children)\n // replace accents\n .normalize('NFD')\n .replace(/[\\u0300-\\u036f]/g, '')\n // replace spaces\n .replace(/\\s+/g, '-')\n .toLowerCase();\n\nconst scrollToHash = (id: string) => {\n const element = document.getElementById(id);\n const offset = 150;\n const y =\n (element?.getBoundingClientRect()?.top ?? 0) + window.scrollY - offset;\n\n window.scrollTo({ top: y, behavior: 'smooth' });\n};\n\nconst afterClick = (parentElem: Element, e: MouseEvent<HTMLHeadingElement>) => {\n const parentLeft = parentElem.getBoundingClientRect().left,\n parentTop = parentElem.getBoundingClientRect().top;\n\n const after = window.getComputedStyle(parentElem, ':after');\n\n const afterStart = parentLeft + parseInt(after.getPropertyValue('left'), 10),\n afterEnd = afterStart + parseInt(after.width, 10);\n\n const afterYStart = parentTop + parseInt(after.getPropertyValue('top'), 10),\n afterYEnd = afterYStart + parseInt(after.height, 10);\n\n const mouseX = e.clientX,\n mouseY = e.clientY;\n\n const isAfterClicked: boolean =\n mouseX >= afterStart &&\n mouseX <= afterEnd &&\n mouseY >= afterYStart &&\n mouseY <= afterYEnd;\n\n return isAfterClicked;\n};\n\nconst HeadingWrapper: HeadingType = ({\n H,\n children,\n className,\n isClickable,\n ...props\n}) => {\n const id = typeof children === 'string' ? getId(children) : undefined;\n\n const onClick = (e: MouseEvent<HTMLHeadingElement>) => {\n const { id } = e.currentTarget;\n\n const isAfterClicker = afterClick(e.currentTarget, e);\n\n if (isAfterClicker && typeof id === 'string') {\n const urlWithoutHash = window.location.href.split('#')[0];\n const url = `${urlWithoutHash}#${id}`;\n\n // copy the url to the clipboard\n navigator.clipboard.writeText(url);\n\n scrollToHash(id);\n }\n };\n\n return (\n <H\n id={id}\n onClick={isClickable ? onClick : undefined}\n aria-label={\n isClickable\n ? `Click to scroll to section ${id} and copy the link to the clipboard`\n : undefined\n }\n className={cn(isClickable && styledAfter, className)}\n {...props}\n >\n {children}\n </H>\n );\n};\n\nexport const H1: FC<HeadingProps> = ({ isClickable: _, ...props }) => (\n <StyledH1 {...props} />\n);\n\nexport const H2: FC<HeadingProps> = ({ isClickable = false, ...props }) => (\n <HeadingWrapper H={StyledH2} isClickable={isClickable} {...props} />\n);\nexport const H3: FC<HeadingProps> = ({ isClickable = false, ...props }) => (\n <HeadingWrapper H={StyledH3} isClickable={isClickable} {...props} />\n);\nexport const H4: FC<HeadingProps> = ({ isClickable = false, ...props }) => (\n <HeadingWrapper H={StyledH4} isClickable={isClickable} {...props} />\n);\nexport const H5: FC<HeadingProps> = ({ isClickable = false, ...props }) => (\n <HeadingWrapper H={StyledH5} isClickable={isClickable} {...props} />\n);\n"],"names":["jsx","cn","id"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","sources":["../../../src/components/Headers/index.tsx"],"sourcesContent":["import type { FC, HTMLAttributes, JSX, MouseEvent } from 'react';\nimport { cn } from '../../utils/cn';\n\nconst styledHeading = `relative scroll-mb-8 scroll-mt-[30vh] scroll-p-8`;\nconst styledAfter = `after:content-['#'] after:scale-75 after:px-6 after:text-neutral after:absolute after:top-0 after:h-full after:-left-12 after:hover:cursor-pointer after:absolute after:to-neutral after:md:opacity-0 after:transition-opacity hover:after:opacity-80 after:duration-200 after:delay-100`;\n\nconst StyledH1: FC<HTMLAttributes<HTMLHeadingElement>> = ({\n className,\n ...props\n}) => <h1 className={cn('mt-5 text-2xl font-bold', className)} {...props} />;\n\nconst StyledH2: FC<HTMLAttributes<HTMLHeadingElement>> = ({\n className,\n ...props\n}) => (\n <h2\n className={cn('mt-16 mb-2 text-2xl font-bold', styledHeading, className)}\n {...props}\n />\n);\n\nconst StyledH3: FC<HTMLAttributes<HTMLHeadingElement>> = ({\n className,\n ...props\n}) => (\n <h3\n className={cn('mt-5 mb-2 text-xl font-bold', styledHeading, className)}\n {...props}\n />\n);\n\nconst StyledH4: FC<HTMLAttributes<HTMLHeadingElement>> = ({\n className,\n ...props\n}) => (\n <h4\n className={cn('mt-3 text-lg font-bold', styledHeading, className)}\n {...props}\n />\n);\n\nconst StyledH5: FC<HTMLAttributes<HTMLHeadingElement>> = ({\n className,\n ...props\n}) => (\n <h5\n className={cn('mt-3 text-base font-bold', styledHeading, className)}\n {...props}\n />\n);\n\nconst StyledH6: FC<HTMLAttributes<HTMLHeadingElement>> = ({\n className,\n ...props\n}) => (\n <h6\n className={cn('mt-3 ml-3 text-base font-bold', styledHeading, className)}\n {...props}\n />\n);\n\ntype HeadingProps = HTMLAttributes<HTMLHeadingElement> & {\n isClickable?: boolean;\n};\ntype HeadingGlobalProps = HeadingProps & {\n H: FC<HTMLAttributes<HTMLHeadingElement>>;\n};\ntype HeadingType = (props: HeadingGlobalProps) => JSX.Element;\n\nconst getId = (children: string) =>\n String(children)\n // replace accents\n .normalize('NFD')\n .replace(/[\\u0300-\\u036f]/g, '')\n // replace spaces\n .replace(/\\s+/g, '-')\n .toLowerCase();\n\nconst scrollToHash = (id: string) => {\n const element = document.getElementById(id);\n const offset = 150;\n const y =\n (element?.getBoundingClientRect()?.top ?? 0) + window.scrollY - offset;\n\n window.scrollTo({ top: y, behavior: 'smooth' });\n};\n\nconst afterClick = (parentElem: Element, e: MouseEvent<HTMLHeadingElement>) => {\n const parentLeft = parentElem.getBoundingClientRect().left,\n parentTop = parentElem.getBoundingClientRect().top;\n\n const after = window.getComputedStyle(parentElem, ':after');\n\n const afterStart = parentLeft + parseInt(after.getPropertyValue('left'), 10),\n afterEnd = afterStart + parseInt(after.width, 10);\n\n const afterYStart = parentTop + parseInt(after.getPropertyValue('top'), 10),\n afterYEnd = afterYStart + parseInt(after.height, 10);\n\n const mouseX = e.clientX,\n mouseY = e.clientY;\n\n const isAfterClicked: boolean =\n mouseX >= afterStart &&\n mouseX <= afterEnd &&\n mouseY >= afterYStart &&\n mouseY <= afterYEnd;\n\n return isAfterClicked;\n};\n\nconst HeadingWrapper: HeadingType = ({\n H,\n children,\n className,\n isClickable,\n ...props\n}) => {\n const id = typeof children === 'string' ? getId(children) : undefined;\n\n const onClick = (e: MouseEvent<HTMLHeadingElement>) => {\n const { id } = e.currentTarget;\n\n const isAfterClicker = afterClick(e.currentTarget, e);\n\n if (isAfterClicker && typeof id === 'string') {\n const urlWithoutHash = window.location.href.split('#')[0];\n const url = `${urlWithoutHash}#${id}`;\n\n // copy the url to the clipboard\n navigator.clipboard.writeText(url);\n\n scrollToHash(id);\n }\n };\n\n return (\n <H\n id={id}\n onClick={isClickable ? onClick : undefined}\n aria-label={\n isClickable\n ? `Click to scroll to section ${id} and copy the link to the clipboard`\n : undefined\n }\n className={cn(isClickable && styledAfter, className)}\n {...props}\n >\n {children}\n </H>\n );\n};\n\nexport const H1: FC<HeadingProps> = ({ isClickable: _, ...props }) => (\n <StyledH1 {...props} />\n);\n\nexport const H2: FC<HeadingProps> = ({ isClickable = false, ...props }) => (\n <HeadingWrapper H={StyledH2} isClickable={isClickable} {...props} />\n);\nexport const H3: FC<HeadingProps> = ({ isClickable = false, ...props }) => (\n <HeadingWrapper H={StyledH3} isClickable={isClickable} {...props} />\n);\nexport const H4: FC<HeadingProps> = ({ isClickable = false, ...props }) => (\n <HeadingWrapper H={StyledH4} isClickable={isClickable} {...props} />\n);\nexport const H5: FC<HeadingProps> = ({ isClickable = false, ...props }) => (\n <HeadingWrapper H={StyledH5} isClickable={isClickable} {...props} />\n);\n\nexport const H6: FC<HeadingProps> = ({ isClickable = false, ...props }) => (\n <HeadingWrapper H={StyledH6} isClickable={isClickable} {...props} />\n);\n"],"names":["jsx","cn","id"],"mappings":"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"}
@@ -7,5 +7,6 @@ export declare const H2: FC<HeadingProps>;
7
7
  export declare const H3: FC<HeadingProps>;
8
8
  export declare const H4: FC<HeadingProps>;
9
9
  export declare const H5: FC<HeadingProps>;
10
+ export declare const H6: FC<HeadingProps>;
10
11
  export {};
11
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Headers/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,cAAc,EAAmB,MAAM,OAAO,CAAC;AAmDjE,KAAK,YAAY,GAAG,cAAc,CAAC,kBAAkB,CAAC,GAAG;IACvD,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AA0FF,eAAO,MAAM,EAAE,EAAE,EAAE,CAAC,YAAY,CAE/B,CAAC;AAEF,eAAO,MAAM,EAAE,EAAE,EAAE,CAAC,YAAY,CAE/B,CAAC;AACF,eAAO,MAAM,EAAE,EAAE,EAAE,CAAC,YAAY,CAE/B,CAAC;AACF,eAAO,MAAM,EAAE,EAAE,EAAE,CAAC,YAAY,CAE/B,CAAC;AACF,eAAO,MAAM,EAAE,EAAE,EAAE,CAAC,YAAY,CAE/B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Headers/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,cAAc,EAAmB,MAAM,OAAO,CAAC;AA6DjE,KAAK,YAAY,GAAG,cAAc,CAAC,kBAAkB,CAAC,GAAG;IACvD,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AA0FF,eAAO,MAAM,EAAE,EAAE,EAAE,CAAC,YAAY,CAE/B,CAAC;AAEF,eAAO,MAAM,EAAE,EAAE,EAAE,CAAC,YAAY,CAE/B,CAAC;AACF,eAAO,MAAM,EAAE,EAAE,EAAE,CAAC,YAAY,CAE/B,CAAC;AACF,eAAO,MAAM,EAAE,EAAE,EAAE,CAAC,YAAY,CAE/B,CAAC;AACF,eAAO,MAAM,EAAE,EAAE,EAAE,CAAC,YAAY,CAE/B,CAAC;AAEF,eAAO,MAAM,EAAE,EAAE,EAAE,CAAC,YAAY,CAE/B,CAAC"}
@@ -46,6 +46,16 @@ const StyledH5 = ({
46
46
  ...props
47
47
  }
48
48
  );
49
+ const StyledH6 = ({
50
+ className,
51
+ ...props
52
+ }) => /* @__PURE__ */ jsx(
53
+ "h6",
54
+ {
55
+ className: cn("mt-3 ml-3 text-base font-bold", styledHeading, className),
56
+ ...props
57
+ }
58
+ );
49
59
  const getId = (children) => String(children).normalize("NFD").replace(/[\u0300-\u036f]/g, "").replace(/\s+/g, "-").toLowerCase();
50
60
  const scrollToHash = (id) => {
51
61
  const element = document.getElementById(id);
@@ -97,11 +107,13 @@ const H2 = ({ isClickable = false, ...props }) => /* @__PURE__ */ jsx(HeadingWra
97
107
  const H3 = ({ isClickable = false, ...props }) => /* @__PURE__ */ jsx(HeadingWrapper, { H: StyledH3, isClickable, ...props });
98
108
  const H4 = ({ isClickable = false, ...props }) => /* @__PURE__ */ jsx(HeadingWrapper, { H: StyledH4, isClickable, ...props });
99
109
  const H5 = ({ isClickable = false, ...props }) => /* @__PURE__ */ jsx(HeadingWrapper, { H: StyledH5, isClickable, ...props });
110
+ const H6 = ({ isClickable = false, ...props }) => /* @__PURE__ */ jsx(HeadingWrapper, { H: StyledH6, isClickable, ...props });
100
111
  export {
101
112
  H1,
102
113
  H2,
103
114
  H3,
104
115
  H4,
105
- H5
116
+ H5,
117
+ H6
106
118
  };
107
119
  //# sourceMappingURL=index.mjs.map