@pdfme/schemas 5.3.8-dev.4 → 5.3.8-dev.41

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 (221) hide show
  1. package/dist/cjs/__tests__/barcode.test.js +115 -113
  2. package/dist/cjs/__tests__/barcode.test.js.map +1 -1
  3. package/dist/cjs/__tests__/multiVariableText.test.js +15 -15
  4. package/dist/cjs/__tests__/multiVariableText.test.js.map +1 -1
  5. package/dist/cjs/__tests__/text.test.js +71 -71
  6. package/dist/cjs/__tests__/text.test.js.map +1 -1
  7. package/dist/cjs/__tests__/utils.test.js +76 -15
  8. package/dist/cjs/__tests__/utils.test.js.map +1 -1
  9. package/dist/cjs/src/checkbox/index.js +3 -3
  10. package/dist/cjs/src/checkbox/index.js.map +1 -1
  11. package/dist/cjs/src/date/date.js +2 -2
  12. package/dist/cjs/src/date/date.js.map +1 -1
  13. package/dist/cjs/src/date/dateTime.js +2 -2
  14. package/dist/cjs/src/date/dateTime.js.map +1 -1
  15. package/dist/cjs/src/date/helper.js +110 -78
  16. package/dist/cjs/src/date/helper.js.map +1 -1
  17. package/dist/cjs/src/date/time.js +2 -2
  18. package/dist/cjs/src/date/time.js.map +1 -1
  19. package/dist/cjs/src/graphics/svg.js +25 -2
  20. package/dist/cjs/src/graphics/svg.js.map +1 -1
  21. package/dist/cjs/src/index.js +30 -30
  22. package/dist/cjs/src/index.js.map +1 -1
  23. package/dist/cjs/src/multiVariableText/helper.js +2 -2
  24. package/dist/cjs/src/multiVariableText/helper.js.map +1 -1
  25. package/dist/cjs/src/multiVariableText/pdfRender.js +5 -5
  26. package/dist/cjs/src/multiVariableText/pdfRender.js.map +1 -1
  27. package/dist/cjs/src/multiVariableText/propPanel.js +5 -5
  28. package/dist/cjs/src/multiVariableText/propPanel.js.map +1 -1
  29. package/dist/cjs/src/multiVariableText/uiRender.js +10 -10
  30. package/dist/cjs/src/multiVariableText/uiRender.js.map +1 -1
  31. package/dist/cjs/src/radioGroup/index.js +3 -3
  32. package/dist/cjs/src/radioGroup/index.js.map +1 -1
  33. package/dist/cjs/src/select/index.js +9 -9
  34. package/dist/cjs/src/select/index.js.map +1 -1
  35. package/dist/cjs/src/tables/classes.js +4 -4
  36. package/dist/cjs/src/tables/classes.js.map +1 -1
  37. package/dist/cjs/src/tables/dynamicTemplate.js +2 -2
  38. package/dist/cjs/src/tables/dynamicTemplate.js.map +1 -1
  39. package/dist/cjs/src/tables/helper.js +21 -21
  40. package/dist/cjs/src/tables/helper.js.map +1 -1
  41. package/dist/cjs/src/tables/pdfRender.js +8 -8
  42. package/dist/cjs/src/tables/pdfRender.js.map +1 -1
  43. package/dist/cjs/src/tables/tableHelper.js +5 -5
  44. package/dist/cjs/src/tables/tableHelper.js.map +1 -1
  45. package/dist/cjs/src/text/extraFormatter.js +14 -14
  46. package/dist/cjs/src/text/extraFormatter.js.map +1 -1
  47. package/dist/cjs/src/text/propPanel.js +2 -2
  48. package/dist/cjs/src/text/propPanel.js.map +1 -1
  49. package/dist/cjs/src/utils.js +53 -9
  50. package/dist/cjs/src/utils.js.map +1 -1
  51. package/dist/esm/__tests__/barcode.test.js +8 -6
  52. package/dist/esm/__tests__/barcode.test.js.map +1 -1
  53. package/dist/esm/__tests__/multiVariableText.test.js +1 -1
  54. package/dist/esm/__tests__/multiVariableText.test.js.map +1 -1
  55. package/dist/esm/__tests__/text.test.js +2 -2
  56. package/dist/esm/__tests__/text.test.js.map +1 -1
  57. package/dist/esm/__tests__/utils.test.js +65 -4
  58. package/dist/esm/__tests__/utils.test.js.map +1 -1
  59. package/dist/esm/src/checkbox/index.js +1 -1
  60. package/dist/esm/src/checkbox/index.js.map +1 -1
  61. package/dist/esm/src/date/date.js +1 -1
  62. package/dist/esm/src/date/date.js.map +1 -1
  63. package/dist/esm/src/date/dateTime.js +1 -1
  64. package/dist/esm/src/date/dateTime.js.map +1 -1
  65. package/dist/esm/src/date/helper.js +70 -38
  66. package/dist/esm/src/date/helper.js.map +1 -1
  67. package/dist/esm/src/date/time.js +1 -1
  68. package/dist/esm/src/date/time.js.map +1 -1
  69. package/dist/esm/src/graphics/svg.js +25 -2
  70. package/dist/esm/src/graphics/svg.js.map +1 -1
  71. package/dist/esm/src/index.js +14 -14
  72. package/dist/esm/src/index.js.map +1 -1
  73. package/dist/esm/src/multiVariableText/helper.js +2 -2
  74. package/dist/esm/src/multiVariableText/helper.js.map +1 -1
  75. package/dist/esm/src/multiVariableText/pdfRender.js +2 -2
  76. package/dist/esm/src/multiVariableText/pdfRender.js.map +1 -1
  77. package/dist/esm/src/multiVariableText/propPanel.js +1 -1
  78. package/dist/esm/src/multiVariableText/propPanel.js.map +1 -1
  79. package/dist/esm/src/multiVariableText/uiRender.js +4 -4
  80. package/dist/esm/src/multiVariableText/uiRender.js.map +1 -1
  81. package/dist/esm/src/radioGroup/index.js +1 -1
  82. package/dist/esm/src/radioGroup/index.js.map +1 -1
  83. package/dist/esm/src/select/index.js +2 -2
  84. package/dist/esm/src/select/index.js.map +1 -1
  85. package/dist/esm/src/tables/classes.js +1 -1
  86. package/dist/esm/src/tables/classes.js.map +1 -1
  87. package/dist/esm/src/tables/dynamicTemplate.js +1 -1
  88. package/dist/esm/src/tables/dynamicTemplate.js.map +1 -1
  89. package/dist/esm/src/tables/helper.js +1 -1
  90. package/dist/esm/src/tables/helper.js.map +1 -1
  91. package/dist/esm/src/tables/pdfRender.js +4 -4
  92. package/dist/esm/src/tables/pdfRender.js.map +1 -1
  93. package/dist/esm/src/tables/tableHelper.js +1 -1
  94. package/dist/esm/src/tables/tableHelper.js.map +1 -1
  95. package/dist/esm/src/text/extraFormatter.js +2 -2
  96. package/dist/esm/src/text/extraFormatter.js.map +1 -1
  97. package/dist/esm/src/text/propPanel.js +1 -1
  98. package/dist/esm/src/text/propPanel.js.map +1 -1
  99. package/dist/esm/src/utils.js +53 -9
  100. package/dist/esm/src/utils.js.map +1 -1
  101. package/dist/node/__tests__/barcode.test.js +115 -113
  102. package/dist/node/__tests__/barcode.test.js.map +1 -1
  103. package/dist/node/__tests__/multiVariableText.test.js +15 -15
  104. package/dist/node/__tests__/multiVariableText.test.js.map +1 -1
  105. package/dist/node/__tests__/text.test.js +71 -71
  106. package/dist/node/__tests__/text.test.js.map +1 -1
  107. package/dist/node/__tests__/utils.test.js +76 -15
  108. package/dist/node/__tests__/utils.test.js.map +1 -1
  109. package/dist/node/src/checkbox/index.js +3 -3
  110. package/dist/node/src/checkbox/index.js.map +1 -1
  111. package/dist/node/src/date/date.js +2 -2
  112. package/dist/node/src/date/date.js.map +1 -1
  113. package/dist/node/src/date/dateTime.js +2 -2
  114. package/dist/node/src/date/dateTime.js.map +1 -1
  115. package/dist/node/src/date/helper.js +110 -78
  116. package/dist/node/src/date/helper.js.map +1 -1
  117. package/dist/node/src/date/time.js +2 -2
  118. package/dist/node/src/date/time.js.map +1 -1
  119. package/dist/node/src/graphics/svg.js +25 -2
  120. package/dist/node/src/graphics/svg.js.map +1 -1
  121. package/dist/node/src/index.js +30 -30
  122. package/dist/node/src/index.js.map +1 -1
  123. package/dist/node/src/multiVariableText/helper.js +2 -2
  124. package/dist/node/src/multiVariableText/helper.js.map +1 -1
  125. package/dist/node/src/multiVariableText/pdfRender.js +5 -5
  126. package/dist/node/src/multiVariableText/pdfRender.js.map +1 -1
  127. package/dist/node/src/multiVariableText/propPanel.js +5 -5
  128. package/dist/node/src/multiVariableText/propPanel.js.map +1 -1
  129. package/dist/node/src/multiVariableText/uiRender.js +10 -10
  130. package/dist/node/src/multiVariableText/uiRender.js.map +1 -1
  131. package/dist/node/src/radioGroup/index.js +3 -3
  132. package/dist/node/src/radioGroup/index.js.map +1 -1
  133. package/dist/node/src/select/index.js +9 -9
  134. package/dist/node/src/select/index.js.map +1 -1
  135. package/dist/node/src/tables/classes.js +4 -4
  136. package/dist/node/src/tables/classes.js.map +1 -1
  137. package/dist/node/src/tables/dynamicTemplate.js +2 -2
  138. package/dist/node/src/tables/dynamicTemplate.js.map +1 -1
  139. package/dist/node/src/tables/helper.js +21 -21
  140. package/dist/node/src/tables/helper.js.map +1 -1
  141. package/dist/node/src/tables/pdfRender.js +8 -8
  142. package/dist/node/src/tables/pdfRender.js.map +1 -1
  143. package/dist/node/src/tables/tableHelper.js +5 -5
  144. package/dist/node/src/tables/tableHelper.js.map +1 -1
  145. package/dist/node/src/text/extraFormatter.js +14 -14
  146. package/dist/node/src/text/extraFormatter.js.map +1 -1
  147. package/dist/node/src/text/propPanel.js +2 -2
  148. package/dist/node/src/text/propPanel.js.map +1 -1
  149. package/dist/node/src/utils.js +53 -9
  150. package/dist/node/src/utils.js.map +1 -1
  151. package/dist/types/src/barcodes/helper.d.ts +1 -1
  152. package/dist/types/src/barcodes/index.d.ts +1 -1
  153. package/dist/types/src/barcodes/pdfRender.d.ts +1 -1
  154. package/dist/types/src/barcodes/propPanel.d.ts +1 -1
  155. package/dist/types/src/barcodes/uiRender.d.ts +1 -1
  156. package/dist/types/src/date/date.d.ts +1 -1
  157. package/dist/types/src/date/dateTime.d.ts +1 -1
  158. package/dist/types/src/date/helper.d.ts +1 -1
  159. package/dist/types/src/date/time.d.ts +1 -1
  160. package/dist/types/src/date/types.d.ts +6 -1
  161. package/dist/types/src/index.d.ts +15 -15
  162. package/dist/types/src/multiVariableText/helper.d.ts +1 -1
  163. package/dist/types/src/multiVariableText/index.d.ts +1 -1
  164. package/dist/types/src/multiVariableText/pdfRender.d.ts +1 -1
  165. package/dist/types/src/multiVariableText/propPanel.d.ts +1 -1
  166. package/dist/types/src/multiVariableText/types.d.ts +1 -1
  167. package/dist/types/src/multiVariableText/uiRender.d.ts +1 -1
  168. package/dist/types/src/select/index.d.ts +1 -1
  169. package/dist/types/src/tables/cell.d.ts +1 -1
  170. package/dist/types/src/tables/classes.d.ts +1 -1
  171. package/dist/types/src/tables/helper.d.ts +4 -4
  172. package/dist/types/src/tables/pdfRender.d.ts +1 -1
  173. package/dist/types/src/tables/propPanel.d.ts +1 -1
  174. package/dist/types/src/tables/tableHelper.d.ts +1 -1
  175. package/dist/types/src/tables/types.d.ts +1 -1
  176. package/dist/types/src/text/constants.d.ts +1 -1
  177. package/dist/types/src/text/helper.d.ts +1 -1
  178. package/dist/types/src/text/index.d.ts +1 -1
  179. package/dist/types/src/text/pdfRender.d.ts +1 -1
  180. package/dist/types/src/text/propPanel.d.ts +1 -1
  181. package/dist/types/src/text/uiRender.d.ts +1 -1
  182. package/package.json +2 -3
  183. package/src/barcodes/helper.ts +1 -1
  184. package/src/barcodes/index.ts +1 -1
  185. package/src/barcodes/pdfRender.ts +1 -1
  186. package/src/barcodes/propPanel.ts +1 -1
  187. package/src/barcodes/uiRender.ts +1 -1
  188. package/src/checkbox/index.ts +1 -1
  189. package/src/date/date.ts +1 -1
  190. package/src/date/dateTime.ts +1 -1
  191. package/src/date/helper.ts +84 -43
  192. package/src/date/time.ts +1 -1
  193. package/src/date/types.ts +7 -1
  194. package/src/graphics/svg.ts +27 -2
  195. package/src/index.ts +14 -14
  196. package/src/multiVariableText/helper.ts +15 -7
  197. package/src/multiVariableText/index.ts +1 -1
  198. package/src/multiVariableText/pdfRender.ts +3 -3
  199. package/src/multiVariableText/propPanel.ts +2 -2
  200. package/src/multiVariableText/types.ts +1 -1
  201. package/src/multiVariableText/uiRender.ts +5 -5
  202. package/src/radioGroup/index.ts +1 -1
  203. package/src/select/index.ts +3 -3
  204. package/src/tables/cell.ts +1 -1
  205. package/src/tables/classes.ts +2 -2
  206. package/src/tables/dynamicTemplate.ts +2 -2
  207. package/src/tables/helper.ts +1 -1
  208. package/src/tables/pdfRender.ts +6 -6
  209. package/src/tables/propPanel.ts +1 -1
  210. package/src/tables/tableHelper.ts +2 -2
  211. package/src/tables/types.ts +1 -1
  212. package/src/tables/uiRender.ts +1 -1
  213. package/src/text/constants.ts +1 -1
  214. package/src/text/extraFormatter.ts +2 -2
  215. package/src/text/helper.ts +1 -1
  216. package/src/text/index.ts +1 -1
  217. package/src/text/pdfRender.ts +1 -1
  218. package/src/text/propPanel.ts +2 -2
  219. package/src/text/uiRender.ts +1 -1
  220. package/src/utils.ts +64 -15
  221. package/tsconfig.esm.json +2 -1
@@ -1,8 +1,8 @@
1
1
  import type * as CSS from 'csstype';
2
- import { propPanel as parentPropPanel } from '../text/propPanel';
2
+ import { propPanel as parentPropPanel } from '../text/propPanel.js';
3
3
  import { Plugin, PropPanelWidgetProps, SchemaForUI } from '@pdfme/common';
4
- import text from '../text';
5
- import { TextSchema } from '../text/types';
4
+ import text from '../text/index.js';
5
+ import { TextSchema } from '../text/types.js';
6
6
  import { ChevronDown } from 'lucide';
7
7
  import { createSvgStr } from '../utils.js';
8
8
 
@@ -9,7 +9,7 @@ import { uiRender as textUiRender } from '../text/uiRender.js';
9
9
  import { pdfRender as textPdfRender } from '../text/pdfRender.js';
10
10
  import line from '../shapes/line.js';
11
11
  import { rectangle } from '../shapes/rectAndEllipse.js';
12
- import type { CellSchema } from './types';
12
+ import type { CellSchema } from './types.js';
13
13
  import { getCellPropPanelSchema, getDefaultCellStyles } from './helper.js';
14
14
  const linePdfRender = line.pdf;
15
15
  const rectanglePdfRender = rectangle.pdf;
@@ -1,7 +1,7 @@
1
1
  import { Font, mm2pt, pt2mm } from '@pdfme/common';
2
2
  import type { Font as FontKitFont } from 'fontkit';
3
- import { splitTextToSize, getFontKitFont, widthOfTextAtSize } from '../text/helper';
4
- import type { Styles, TableInput, Settings, Section, StylesProps } from './types';
3
+ import { splitTextToSize, getFontKitFont, widthOfTextAtSize } from '../text/helper.js';
4
+ import type { Styles, TableInput, Settings, Section, StylesProps } from './types.js';
5
5
 
6
6
  type ContentSettings = { body: Row[]; head: Row[]; columns: Column[] };
7
7
 
@@ -1,7 +1,7 @@
1
1
  import { Schema, BasePdf, CommonOptions } from '@pdfme/common';
2
- import { createSingleTable } from './tableHelper';
2
+ import { createSingleTable } from './tableHelper.js';
3
3
  import { getBodyWithRange, getBody } from './helper.js';
4
- import { TableSchema } from './types';
4
+ import { TableSchema } from './types.js';
5
5
 
6
6
  export const getDynamicHeightsForTable = async (
7
7
  value: string,
@@ -10,7 +10,7 @@ import {
10
10
  VERTICAL_ALIGN_TOP,
11
11
  VERTICAL_ALIGN_MIDDLE,
12
12
  VERTICAL_ALIGN_BOTTOM,
13
- } from '../text/constants';
13
+ } from '../text/constants.js';
14
14
  import { HEX_COLOR_PATTERN } from '../constants.js';
15
15
 
16
16
  export const getDefaultCellStyles = () => ({
@@ -1,10 +1,10 @@
1
- import type { TableSchema } from './types';
1
+ import type { TableSchema } from './types.js';
2
2
  import type { PDFRenderProps } from '@pdfme/common';
3
- import { Cell, Table, Row, Column } from './classes';
4
- import { rectangle } from '../shapes/rectAndEllipse';
5
- import cell from './cell';
6
- import { getBodyWithRange } from './helper';
7
- import { createSingleTable } from './tableHelper';
3
+ import { Cell, Table, Row, Column } from './classes.js';
4
+ import { rectangle } from '../shapes/rectAndEllipse.js';
5
+ import cell from './cell.js';
6
+ import { getBodyWithRange } from './helper.js';
7
+ import { createSingleTable } from './tableHelper.js';
8
8
 
9
9
  type Pos = { x: number; y: number };
10
10
 
@@ -1,5 +1,5 @@
1
1
  import type { PropPanel } from '@pdfme/common';
2
- import type { TableSchema } from './types';
2
+ import type { TableSchema } from './types.js';
3
3
  import { getFallbackFontName, DEFAULT_FONT_NAME } from '@pdfme/common';
4
4
  import {
5
5
  getDefaultCellStyles,
@@ -15,8 +15,8 @@ import type {
15
15
  TableInput,
16
16
  StylesProps,
17
17
  Section,
18
- } from './types';
19
- import { Cell, Column, Row, Table } from './classes';
18
+ } from './types.js';
19
+ import { Cell, Column, Row, Table } from './classes.js';
20
20
 
21
21
  type StyleProp = 'styles' | 'headStyles' | 'bodyStyles' | 'alternateRowStyles' | 'columnStyles';
22
22
 
@@ -1,4 +1,4 @@
1
- import type { ALIGNMENT, VERTICAL_ALIGNMENT } from '../text/types';
1
+ import type { ALIGNMENT, VERTICAL_ALIGNMENT } from '../text/types.js';
2
2
  import type { Schema } from '@pdfme/common';
3
3
 
4
4
  export type Spacing = { top: number; right: number; bottom: number; left: number };
@@ -4,7 +4,7 @@ import { px2mm } from '@pdfme/common';
4
4
  import { createSingleTable } from './tableHelper.js';
5
5
  import { getBody, getBodyWithRange } from './helper.js';
6
6
  import cell from './cell.js';
7
- import { Row } from './classes';
7
+ import { Row } from './classes.js';
8
8
 
9
9
  const buttonSize = 30;
10
10
 
@@ -1,4 +1,4 @@
1
- import { ALIGNMENT, VERTICAL_ALIGNMENT, DYNAMIC_FONT_SIZE_FIT } from './types';
1
+ import { ALIGNMENT, VERTICAL_ALIGNMENT, DYNAMIC_FONT_SIZE_FIT } from './types.js';
2
2
 
3
3
  export const DEFAULT_FONT_SIZE = 13;
4
4
 
@@ -9,7 +9,7 @@ import {
9
9
  TextVerticalAlignBottomIcon,
10
10
  TextVerticalAlignMiddleIcon,
11
11
  TextVerticalAlignTopIcon,
12
- } from './icons';
12
+ } from './icons/index.js';
13
13
  import {
14
14
  ALIGN_CENTER,
15
15
  ALIGN_RIGHT,
@@ -18,7 +18,7 @@ import {
18
18
  VERTICAL_ALIGN_BOTTOM,
19
19
  VERTICAL_ALIGN_MIDDLE,
20
20
  ALIGN_JUSTIFY,
21
- } from './constants';
21
+ } from './constants.js';
22
22
 
23
23
  export enum Formatter {
24
24
  STRIKETHROUGH = 'strikethrough',
@@ -11,7 +11,7 @@ import {
11
11
  DEFAULT_FONT_NAME,
12
12
  } from '@pdfme/common';
13
13
  import { Buffer } from 'buffer';
14
- import type { TextSchema, FontWidthCalcValues } from './types';
14
+ import type { TextSchema, FontWidthCalcValues } from './types.js';
15
15
  import {
16
16
  DEFAULT_FONT_SIZE,
17
17
  DEFAULT_CHARACTER_SPACING,
package/src/text/index.ts CHANGED
@@ -2,7 +2,7 @@ import type { Plugin } from '@pdfme/common';
2
2
  import { pdfRender } from './pdfRender.js';
3
3
  import { propPanel } from './propPanel.js';
4
4
  import { uiRender } from './uiRender.js';
5
- import type { TextSchema } from './types';
5
+ import type { TextSchema } from './types.js';
6
6
  import { TextCursorInput } from 'lucide';
7
7
  import { createSvgStr } from '../utils.js';
8
8
 
@@ -1,6 +1,6 @@
1
1
  import { PDFFont, PDFDocument } from '@pdfme/pdf-lib';
2
2
  import type { Font as FontKitFont } from 'fontkit';
3
- import type { TextSchema } from './types';
3
+ import type { TextSchema } from './types.js';
4
4
  import {
5
5
  PDFRenderProps,
6
6
  ColorType,
@@ -5,7 +5,7 @@ import {
5
5
  PropPanelSchema,
6
6
  getFallbackFontName,
7
7
  } from '@pdfme/common';
8
- import type { TextSchema } from './types';
8
+ import type { TextSchema } from './types.js';
9
9
  import {
10
10
  DEFAULT_FONT_SIZE,
11
11
  DEFAULT_ALIGNMENT,
@@ -20,7 +20,7 @@ import {
20
20
  DEFAULT_DYNAMIC_MAX_FONT_SIZE,
21
21
  } from './constants.js';
22
22
  import { DEFAULT_OPACITY, HEX_COLOR_PATTERN } from '../constants.js';
23
- import { getExtraFormatterSchema } from './extraFormatter';
23
+ import { getExtraFormatterSchema } from './extraFormatter.js';
24
24
 
25
25
  const UseDynamicFontSize = (props: PropPanelWidgetProps) => {
26
26
  const { rootElement, changeSchemas, activeSchema, i18n } = props;
@@ -1,7 +1,7 @@
1
1
  import type * as CSS from 'csstype';
2
2
  import type { Font as FontKitFont } from 'fontkit';
3
3
  import { UIRenderProps, getDefaultFont } from '@pdfme/common';
4
- import type { TextSchema } from './types';
4
+ import type { TextSchema } from './types.js';
5
5
  import {
6
6
  DEFAULT_FONT_SIZE,
7
7
  DEFAULT_ALIGNMENT,
package/src/utils.ts CHANGED
@@ -212,21 +212,70 @@ export const createErrorElm = () => {
212
212
  };
213
213
 
214
214
  export const createSvgStr = (icon: IconNode, attrs?: Record<string, string>): string => {
215
- const createElementString = (node: IconNode): string => {
216
- const [tag, attributes, children = []] = node;
217
-
218
- const mergedAttributes = tag === 'svg' ? { ...attributes, ...attrs } : attributes;
219
-
220
- const attrString = Object.entries(mergedAttributes)
215
+ // In lucide 0.475.0, the icon is an array of elements, not a single SVG element
216
+ // We need to create an SVG wrapper and add the elements as children
217
+
218
+ // Handle non-array input
219
+ if (!Array.isArray(icon)) {
220
+ return String(icon);
221
+ }
222
+
223
+ // Create default SVG attributes
224
+ const svgAttrs = {
225
+ xmlns: "http://www.w3.org/2000/svg",
226
+ width: "24",
227
+ height: "24",
228
+ viewBox: "0 0 24 24",
229
+ fill: "none",
230
+ stroke: "currentColor",
231
+ "stroke-width": "2",
232
+ "stroke-linecap": "round",
233
+ "stroke-linejoin": "round",
234
+ ...(attrs || {})
235
+ };
236
+
237
+ // Format SVG attributes string
238
+ const svgAttrString = Object.entries(svgAttrs)
239
+ .map(([key, value]) => `${key}="${value}"`)
240
+ .join(' ');
241
+
242
+ // Helper function to process a single element
243
+ const processElement = (element: any): string => {
244
+ if (!Array.isArray(element)) {
245
+ return String(element);
246
+ }
247
+
248
+ const [tag, attributes = {}, children = []] = element;
249
+ const tagName = String(tag);
250
+
251
+ // Format attributes string
252
+ const attrString = Object.entries(attributes)
221
253
  .map(([key, value]) => `${key}="${value}"`)
222
254
  .join(' ');
223
-
224
- const childrenString = children
225
- .map((child) => createElementString(child))
226
- .join('');
227
-
228
- return `<${tag} ${attrString}>${childrenString}</${tag}>`;
255
+
256
+ // Process children recursively
257
+ let childrenString = '';
258
+
259
+ if (Array.isArray(children) && children.length > 0) {
260
+ childrenString = children
261
+ .map(child => processElement(child))
262
+ .join('');
263
+ }
264
+
265
+ // Return properly formatted element string
266
+ if (childrenString) {
267
+ return `<${tagName}${attrString ? ' ' + attrString : ''}>${childrenString}</${tagName}>`;
268
+ } else {
269
+ // Self-closing tag for empty children
270
+ return `<${tagName}${attrString ? ' ' + attrString : ''}/>`;
271
+ }
229
272
  };
230
-
231
- return createElementString(icon);
232
- };
273
+
274
+ // Process all elements and join them
275
+ const elementsString = Array.isArray(icon)
276
+ ? icon.map(element => processElement(element)).join('')
277
+ : processElement(icon);
278
+
279
+ // Return the complete SVG string
280
+ return `<svg ${svgAttrString}>${elementsString}</svg>`;
281
+ };
package/tsconfig.esm.json CHANGED
@@ -2,9 +2,10 @@
2
2
  "extends": "../../tsconfig.base",
3
3
  "compilerOptions": {
4
4
  "module": "ESNext",
5
+ "moduleResolution": "nodenext",
5
6
  "outDir": "./dist/esm",
6
7
  "declaration": true,
7
8
  "declarationDir": "dist/types",
8
9
  "skipLibCheck": true
9
10
  }
10
- }
11
+ }