@vielzeug/prism 2.1.0 → 2.1.2

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 (99) hide show
  1. package/dist/animation/easing.cjs.map +1 -1
  2. package/dist/animation/easing.js.map +1 -1
  3. package/dist/animation/index.d.ts +2 -2
  4. package/dist/animation/index.d.ts.map +1 -1
  5. package/dist/axes/axis.cjs.map +1 -1
  6. package/dist/axes/axis.d.ts.map +1 -1
  7. package/dist/axes/axis.js.map +1 -1
  8. package/dist/axes/grid.cjs.map +1 -1
  9. package/dist/axes/grid.d.ts.map +1 -1
  10. package/dist/axes/grid.js.map +1 -1
  11. package/dist/charts/area/area-chart.cjs.map +1 -1
  12. package/dist/charts/area/area-chart.d.ts.map +1 -1
  13. package/dist/charts/area/area-chart.js.map +1 -1
  14. package/dist/charts/area/area-renderer.cjs +1 -1
  15. package/dist/charts/area/area-renderer.cjs.map +1 -1
  16. package/dist/charts/area/area-renderer.d.ts.map +1 -1
  17. package/dist/charts/area/area-renderer.js +14 -14
  18. package/dist/charts/area/area-renderer.js.map +1 -1
  19. package/dist/charts/bar/bar-chart.cjs.map +1 -1
  20. package/dist/charts/bar/bar-chart.d.ts.map +1 -1
  21. package/dist/charts/bar/bar-chart.js.map +1 -1
  22. package/dist/charts/bar/bar-renderer.cjs +1 -1
  23. package/dist/charts/bar/bar-renderer.cjs.map +1 -1
  24. package/dist/charts/bar/bar-renderer.d.ts.map +1 -1
  25. package/dist/charts/bar/bar-renderer.js +24 -24
  26. package/dist/charts/bar/bar-renderer.js.map +1 -1
  27. package/dist/charts/line/line-chart.cjs.map +1 -1
  28. package/dist/charts/line/line-chart.d.ts.map +1 -1
  29. package/dist/charts/line/line-chart.js.map +1 -1
  30. package/dist/charts/line/line-renderer.cjs +1 -1
  31. package/dist/charts/line/line-renderer.cjs.map +1 -1
  32. package/dist/charts/line/line-renderer.d.ts.map +1 -1
  33. package/dist/charts/line/line-renderer.js +34 -34
  34. package/dist/charts/line/line-renderer.js.map +1 -1
  35. package/dist/charts/pie/pie-chart.cjs +1 -1
  36. package/dist/charts/pie/pie-chart.cjs.map +1 -1
  37. package/dist/charts/pie/pie-chart.d.ts.map +1 -1
  38. package/dist/charts/pie/pie-chart.js +34 -34
  39. package/dist/charts/pie/pie-chart.js.map +1 -1
  40. package/dist/charts/sparkline/sparkline.cjs +1 -1
  41. package/dist/charts/sparkline/sparkline.cjs.map +1 -1
  42. package/dist/charts/sparkline/sparkline.d.ts.map +1 -1
  43. package/dist/charts/sparkline/sparkline.js +64 -64
  44. package/dist/charts/sparkline/sparkline.js.map +1 -1
  45. package/dist/core/cartesian-model.cjs.map +1 -1
  46. package/dist/core/cartesian-model.d.ts.map +1 -1
  47. package/dist/core/cartesian-model.js.map +1 -1
  48. package/dist/core/cartesian-scales.cjs.map +1 -1
  49. package/dist/core/cartesian-scales.d.ts.map +1 -1
  50. package/dist/core/cartesian-scales.js.map +1 -1
  51. package/dist/core/chart-base.cjs +1 -1
  52. package/dist/core/chart-base.cjs.map +1 -1
  53. package/dist/core/chart-base.d.ts +1 -1
  54. package/dist/core/chart-base.d.ts.map +1 -1
  55. package/dist/core/chart-base.js +12 -12
  56. package/dist/core/chart-base.js.map +1 -1
  57. package/dist/core/chart-scaffold.cjs.map +1 -1
  58. package/dist/core/chart-scaffold.d.ts +2 -2
  59. package/dist/core/chart-scaffold.d.ts.map +1 -1
  60. package/dist/core/chart-scaffold.js.map +1 -1
  61. package/dist/core/index.d.ts +2 -2
  62. package/dist/core/index.d.ts.map +1 -1
  63. package/dist/index.cjs +1 -1
  64. package/dist/index.d.ts +7 -7
  65. package/dist/index.d.ts.map +1 -1
  66. package/dist/index.js +8 -8
  67. package/dist/interaction/crosshair.cjs.map +1 -1
  68. package/dist/interaction/crosshair.d.ts +2 -2
  69. package/dist/interaction/crosshair.d.ts.map +1 -1
  70. package/dist/interaction/crosshair.js.map +1 -1
  71. package/dist/interaction/index.d.ts +3 -3
  72. package/dist/interaction/index.d.ts.map +1 -1
  73. package/dist/interaction/legend.cjs.map +1 -1
  74. package/dist/interaction/legend.d.ts +1 -1
  75. package/dist/interaction/legend.d.ts.map +1 -1
  76. package/dist/interaction/legend.js.map +1 -1
  77. package/dist/interaction/series-interaction.cjs.map +1 -1
  78. package/dist/interaction/series-interaction.d.ts.map +1 -1
  79. package/dist/interaction/series-interaction.js.map +1 -1
  80. package/dist/interaction/tooltip.cjs.map +1 -1
  81. package/dist/interaction/tooltip.d.ts +1 -1
  82. package/dist/interaction/tooltip.d.ts.map +1 -1
  83. package/dist/interaction/tooltip.js.map +1 -1
  84. package/dist/prism.cjs +1 -1
  85. package/dist/prism.cjs.map +1 -1
  86. package/dist/prism.iife.js +1 -1
  87. package/dist/prism.iife.js.map +1 -1
  88. package/dist/prism.js +1 -1
  89. package/dist/prism.js.map +1 -1
  90. package/dist/scales/band.cjs.map +1 -1
  91. package/dist/scales/band.d.ts.map +1 -1
  92. package/dist/scales/band.js.map +1 -1
  93. package/dist/scales/linear.cjs.map +1 -1
  94. package/dist/scales/linear.js.map +1 -1
  95. package/dist/svg/index.d.ts +1 -1
  96. package/dist/svg/index.d.ts.map +1 -1
  97. package/dist/svg/text.cjs.map +1 -1
  98. package/dist/svg/text.js.map +1 -1
  99. package/package.json +32 -32
@@ -1 +1 @@
1
- {"version":3,"file":"band.cjs","names":[],"sources":["../../src/scales/band.ts"],"sourcesContent":["import type { BandScale, BandScaleConfig } from './types';\n\nimport { warn } from '../_dev';\n\nexport function bandScale(config: BandScaleConfig): BandScale {\n // Every method below closes over `config`/these helpers directly instead of reading\n // `this` — the returned object stays fully functional when destructured, e.g.\n // `const { map } = bandScale(cfg)`.\n const getDomain = (): string[] => config.domain;\n const getRange = (): [number, number] => config.range;\n\n const getBandwidth = (): number => {\n const n = getDomain().length;\n\n if (n === 0) return 0;\n\n const [r0, r1] = getRange();\n const padding = config.padding ?? 0.1;\n const totalWidth = r1 - r0;\n\n return totalWidth / (n + (n - 1) * padding + (config.paddingOuter ?? padding) * 2);\n };\n\n return {\n bandwidth: getBandwidth,\n\n get domain(): string[] {\n return getDomain();\n },\n\n gap(): number {\n const padding = config.padding ?? 0.1;\n\n return getBandwidth() * padding;\n },\n\n map(value: string): number {\n const domain = getDomain();\n const idx = domain.indexOf(value);\n\n if (idx === -1) {\n warn(`bandScale.map: unknown category \"${value}\"`);\n\n return 0;\n }\n\n const [r0] = getRange();\n const bw = getBandwidth();\n const padding = config.padding ?? 0.1;\n const outer = config.paddingOuter ?? padding;\n\n return r0 + outer * bw + idx * (bw + bw * padding);\n },\n\n get range(): [number, number] {\n return getRange();\n },\n\n ticks(count?: number): string[] {\n const domain = getDomain();\n\n if (count === undefined || count >= domain.length) return [...domain];\n\n if (count <= 0) return [];\n\n const step = Math.ceil(domain.length / count);\n\n return domain.filter((_, i) => i % step === 0);\n },\n };\n}\n"],"mappings":"uBAIA,SAAgB,EAAU,EAAoC,CAI5D,IAAM,MAA4B,EAAO,OACnC,MAAmC,EAAO,MAE1C,MAA6B,CACjC,IAAM,EAAI,EAAU,CAAC,CAAC,OAEtB,GAAI,IAAM,EAAG,MAAO,GAEpB,GAAM,CAAC,EAAI,GAAM,EAAS,EACpB,EAAU,EAAO,SAAW,GAGlC,OAFmB,EAAK,IAEH,GAAK,EAAI,GAAK,GAAW,EAAO,cAAgB,GAAW,EAClF,EAEA,MAAO,CACL,UAAW,EAEX,IAAI,QAAmB,CACrB,OAAO,EAAU,CACnB,EAEA,KAAc,CACZ,IAAM,EAAU,EAAO,SAAW,GAElC,OAAO,EAAa,EAAI,CAC1B,EAEA,IAAI,EAAuB,CAEzB,IAAM,EADS,EACH,CAAA,CAAO,QAAQ,CAAK,EAEhC,GAAI,IAAQ,GAGV,MAFK,GAAoC,EAApC,EAEE,EAGT,GAAM,CAAC,GAAM,EAAS,EAChB,EAAK,EAAa,EAClB,EAAU,EAAO,SAAW,GAGlC,OAAO,GAFO,EAAO,cAAgB,GAEjB,EAAK,GAAO,EAAK,EAAK,EAC5C,EAEA,IAAI,OAA0B,CAC5B,OAAO,EAAS,CAClB,EAEA,MAAM,EAA0B,CAC9B,IAAM,EAAS,EAAU,EAEzB,GAAI,IAAU,IAAA,IAAa,GAAS,EAAO,OAAQ,MAAO,CAAC,GAAG,CAAM,EAEpE,GAAI,GAAS,EAAG,MAAO,CAAC,EAExB,IAAM,EAAO,KAAK,KAAK,EAAO,OAAS,CAAK,EAE5C,OAAO,EAAO,QAAQ,EAAG,IAAM,EAAI,IAAS,CAAC,CAC/C,CACF,CACF"}
1
+ {"version":3,"file":"band.cjs","names":[],"sources":["../../src/scales/band.ts"],"sourcesContent":["import { warn } from '../_dev';\nimport type { BandScale, BandScaleConfig } from './types';\n\nexport function bandScale(config: BandScaleConfig): BandScale {\n // Every method below closes over `config`/these helpers directly instead of reading\n // `this` — the returned object stays fully functional when destructured, e.g.\n // `const { map } = bandScale(cfg)`.\n const getDomain = (): string[] => config.domain;\n const getRange = (): [number, number] => config.range;\n\n const getBandwidth = (): number => {\n const n = getDomain().length;\n\n if (n === 0) return 0;\n\n const [r0, r1] = getRange();\n const padding = config.padding ?? 0.1;\n const totalWidth = r1 - r0;\n\n return totalWidth / (n + (n - 1) * padding + (config.paddingOuter ?? padding) * 2);\n };\n\n return {\n bandwidth: getBandwidth,\n\n get domain(): string[] {\n return getDomain();\n },\n\n gap(): number {\n const padding = config.padding ?? 0.1;\n\n return getBandwidth() * padding;\n },\n\n map(value: string): number {\n const domain = getDomain();\n const idx = domain.indexOf(value);\n\n if (idx === -1) {\n warn(`bandScale.map: unknown category \"${value}\"`);\n\n return 0;\n }\n\n const [r0] = getRange();\n const bw = getBandwidth();\n const padding = config.padding ?? 0.1;\n const outer = config.paddingOuter ?? padding;\n\n return r0 + outer * bw + idx * (bw + bw * padding);\n },\n\n get range(): [number, number] {\n return getRange();\n },\n\n ticks(count?: number): string[] {\n const domain = getDomain();\n\n if (count === undefined || count >= domain.length) return [...domain];\n\n if (count <= 0) return [];\n\n const step = Math.ceil(domain.length / count);\n\n return domain.filter((_, i) => i % step === 0);\n },\n };\n}\n"],"mappings":"uBAGA,SAAgB,EAAU,EAAoC,CAI5D,IAAM,MAA4B,EAAO,OACnC,MAAmC,EAAO,MAE1C,MAA6B,CACjC,IAAM,EAAI,EAAU,CAAC,CAAC,OAEtB,GAAI,IAAM,EAAG,MAAO,GAEpB,GAAM,CAAC,EAAI,GAAM,EAAS,EACpB,EAAU,EAAO,SAAW,GAGlC,OAFmB,EAAK,IAEH,GAAK,EAAI,GAAK,GAAW,EAAO,cAAgB,GAAW,EAClF,EAEA,MAAO,CACL,UAAW,EAEX,IAAI,QAAmB,CACrB,OAAO,EAAU,CACnB,EAEA,KAAc,CACZ,IAAM,EAAU,EAAO,SAAW,GAElC,OAAO,EAAa,EAAI,CAC1B,EAEA,IAAI,EAAuB,CAEzB,IAAM,EADS,EACH,CAAA,CAAO,QAAQ,CAAK,EAEhC,GAAI,IAAQ,GAGV,MAFK,GAAoC,EAApC,EAEE,EAGT,GAAM,CAAC,GAAM,EAAS,EAChB,EAAK,EAAa,EAClB,EAAU,EAAO,SAAW,GAGlC,OAAO,GAFO,EAAO,cAAgB,GAEjB,EAAK,GAAO,EAAK,EAAK,EAC5C,EAEA,IAAI,OAA0B,CAC5B,OAAO,EAAS,CAClB,EAEA,MAAM,EAA0B,CAC9B,IAAM,EAAS,EAAU,EAEzB,GAAI,IAAU,IAAA,IAAa,GAAS,EAAO,OAAQ,MAAO,CAAC,GAAG,CAAM,EAEpE,GAAI,GAAS,EAAG,MAAO,CAAC,EAExB,IAAM,EAAO,KAAK,KAAK,EAAO,OAAS,CAAK,EAE5C,OAAO,EAAO,QAAQ,EAAG,IAAM,EAAI,IAAS,CAAC,CAC/C,CACF,CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"band.d.ts","sourceRoot":"","sources":["../../src/scales/band.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAI1D,wBAAgB,SAAS,CAAC,MAAM,EAAE,eAAe,GAAG,SAAS,CAkE5D"}
1
+ {"version":3,"file":"band.d.ts","sourceRoot":"","sources":["../../src/scales/band.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE1D,wBAAgB,SAAS,CAAC,MAAM,EAAE,eAAe,GAAG,SAAS,CAkE5D"}
@@ -1 +1 @@
1
- {"version":3,"file":"band.js","names":[],"sources":["../../src/scales/band.ts"],"sourcesContent":["import type { BandScale, BandScaleConfig } from './types';\n\nimport { warn } from '../_dev';\n\nexport function bandScale(config: BandScaleConfig): BandScale {\n // Every method below closes over `config`/these helpers directly instead of reading\n // `this` — the returned object stays fully functional when destructured, e.g.\n // `const { map } = bandScale(cfg)`.\n const getDomain = (): string[] => config.domain;\n const getRange = (): [number, number] => config.range;\n\n const getBandwidth = (): number => {\n const n = getDomain().length;\n\n if (n === 0) return 0;\n\n const [r0, r1] = getRange();\n const padding = config.padding ?? 0.1;\n const totalWidth = r1 - r0;\n\n return totalWidth / (n + (n - 1) * padding + (config.paddingOuter ?? padding) * 2);\n };\n\n return {\n bandwidth: getBandwidth,\n\n get domain(): string[] {\n return getDomain();\n },\n\n gap(): number {\n const padding = config.padding ?? 0.1;\n\n return getBandwidth() * padding;\n },\n\n map(value: string): number {\n const domain = getDomain();\n const idx = domain.indexOf(value);\n\n if (idx === -1) {\n warn(`bandScale.map: unknown category \"${value}\"`);\n\n return 0;\n }\n\n const [r0] = getRange();\n const bw = getBandwidth();\n const padding = config.padding ?? 0.1;\n const outer = config.paddingOuter ?? padding;\n\n return r0 + outer * bw + idx * (bw + bw * padding);\n },\n\n get range(): [number, number] {\n return getRange();\n },\n\n ticks(count?: number): string[] {\n const domain = getDomain();\n\n if (count === undefined || count >= domain.length) return [...domain];\n\n if (count <= 0) return [];\n\n const step = Math.ceil(domain.length / count);\n\n return domain.filter((_, i) => i % step === 0);\n },\n };\n}\n"],"mappings":";;AAIA,SAAgB,EAAU,GAAoC;CAI5D,IAAM,UAA4B,EAAO,QACnC,UAAmC,EAAO,OAE1C,UAA6B;EACjC,IAAM,IAAI,EAAU,CAAC,CAAC;EAEtB,IAAI,MAAM,GAAG,OAAO;EAEpB,IAAM,CAAC,GAAI,KAAM,EAAS,GACpB,IAAU,EAAO,WAAW;EAGlC,QAFmB,IAAK,MAEH,KAAK,IAAI,KAAK,KAAW,EAAO,gBAAgB,KAAW;CAClF;CAEA,OAAO;EACL,WAAW;EAEX,IAAI,SAAmB;GACrB,OAAO,EAAU;EACnB;EAEA,MAAc;GACZ,IAAM,IAAU,EAAO,WAAW;GAElC,OAAO,EAAa,IAAI;EAC1B;EAEA,IAAI,GAAuB;GAEzB,IAAM,IADS,EACH,CAAA,CAAO,QAAQ,CAAK;GAEhC,IAAI,MAAQ,IAGV,OAFK,GAAoC,EAApC,GAEE;GAGT,IAAM,CAAC,KAAM,EAAS,GAChB,IAAK,EAAa,GAClB,IAAU,EAAO,WAAW;GAGlC,OAAO,KAFO,EAAO,gBAAgB,KAEjB,IAAK,KAAO,IAAK,IAAK;EAC5C;EAEA,IAAI,QAA0B;GAC5B,OAAO,EAAS;EAClB;EAEA,MAAM,GAA0B;GAC9B,IAAM,IAAS,EAAU;GAEzB,IAAI,MAAU,KAAA,KAAa,KAAS,EAAO,QAAQ,OAAO,CAAC,GAAG,CAAM;GAEpE,IAAI,KAAS,GAAG,OAAO,CAAC;GAExB,IAAM,IAAO,KAAK,KAAK,EAAO,SAAS,CAAK;GAE5C,OAAO,EAAO,QAAQ,GAAG,MAAM,IAAI,MAAS,CAAC;EAC/C;CACF;AACF"}
1
+ {"version":3,"file":"band.js","names":[],"sources":["../../src/scales/band.ts"],"sourcesContent":["import { warn } from '../_dev';\nimport type { BandScale, BandScaleConfig } from './types';\n\nexport function bandScale(config: BandScaleConfig): BandScale {\n // Every method below closes over `config`/these helpers directly instead of reading\n // `this` — the returned object stays fully functional when destructured, e.g.\n // `const { map } = bandScale(cfg)`.\n const getDomain = (): string[] => config.domain;\n const getRange = (): [number, number] => config.range;\n\n const getBandwidth = (): number => {\n const n = getDomain().length;\n\n if (n === 0) return 0;\n\n const [r0, r1] = getRange();\n const padding = config.padding ?? 0.1;\n const totalWidth = r1 - r0;\n\n return totalWidth / (n + (n - 1) * padding + (config.paddingOuter ?? padding) * 2);\n };\n\n return {\n bandwidth: getBandwidth,\n\n get domain(): string[] {\n return getDomain();\n },\n\n gap(): number {\n const padding = config.padding ?? 0.1;\n\n return getBandwidth() * padding;\n },\n\n map(value: string): number {\n const domain = getDomain();\n const idx = domain.indexOf(value);\n\n if (idx === -1) {\n warn(`bandScale.map: unknown category \"${value}\"`);\n\n return 0;\n }\n\n const [r0] = getRange();\n const bw = getBandwidth();\n const padding = config.padding ?? 0.1;\n const outer = config.paddingOuter ?? padding;\n\n return r0 + outer * bw + idx * (bw + bw * padding);\n },\n\n get range(): [number, number] {\n return getRange();\n },\n\n ticks(count?: number): string[] {\n const domain = getDomain();\n\n if (count === undefined || count >= domain.length) return [...domain];\n\n if (count <= 0) return [];\n\n const step = Math.ceil(domain.length / count);\n\n return domain.filter((_, i) => i % step === 0);\n },\n };\n}\n"],"mappings":";;AAGA,SAAgB,EAAU,GAAoC;CAI5D,IAAM,UAA4B,EAAO,QACnC,UAAmC,EAAO,OAE1C,UAA6B;EACjC,IAAM,IAAI,EAAU,CAAC,CAAC;EAEtB,IAAI,MAAM,GAAG,OAAO;EAEpB,IAAM,CAAC,GAAI,KAAM,EAAS,GACpB,IAAU,EAAO,WAAW;EAGlC,QAFmB,IAAK,MAEH,KAAK,IAAI,KAAK,KAAW,EAAO,gBAAgB,KAAW;CAClF;CAEA,OAAO;EACL,WAAW;EAEX,IAAI,SAAmB;GACrB,OAAO,EAAU;EACnB;EAEA,MAAc;GACZ,IAAM,IAAU,EAAO,WAAW;GAElC,OAAO,EAAa,IAAI;EAC1B;EAEA,IAAI,GAAuB;GAEzB,IAAM,IADS,EACH,CAAA,CAAO,QAAQ,CAAK;GAEhC,IAAI,MAAQ,IAGV,OAFK,GAAoC,EAApC,GAEE;GAGT,IAAM,CAAC,KAAM,EAAS,GAChB,IAAK,EAAa,GAClB,IAAU,EAAO,WAAW;GAGlC,OAAO,KAFO,EAAO,gBAAgB,KAEjB,IAAK,KAAO,IAAK,IAAK;EAC5C;EAEA,IAAI,QAA0B;GAC5B,OAAO,EAAS;EAClB;EAEA,MAAM,GAA0B;GAC9B,IAAM,IAAS,EAAU;GAEzB,IAAI,MAAU,KAAA,KAAa,KAAS,EAAO,QAAQ,OAAO,CAAC,GAAG,CAAM;GAEpE,IAAI,KAAS,GAAG,OAAO,CAAC;GAExB,IAAM,IAAO,KAAK,KAAK,EAAO,SAAS,CAAK;GAE5C,OAAO,EAAO,QAAQ,GAAG,MAAM,IAAI,MAAS,CAAC;EAC/C;CACF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"linear.cjs","names":[],"sources":["../../src/scales/linear.ts"],"sourcesContent":["import type { Scale } from '../types';\nimport type { LinearScaleConfig } from './types';\n\nfunction niceNumber(value: number, round: boolean): number {\n const exp = Math.floor(Math.log10(value));\n const frac = value / Math.pow(10, exp);\n let nice: number;\n\n if (round) {\n if (frac < 1.5) nice = 1;\n else if (frac < 3) nice = 2;\n else if (frac < 7) nice = 5;\n else nice = 10;\n } else {\n if (frac <= 1) nice = 1;\n else if (frac <= 2) nice = 2;\n else if (frac <= 5) nice = 5;\n else nice = 10;\n }\n\n return nice * Math.pow(10, exp);\n}\n\nfunction niceRange(min: number, max: number, tickCount: number): [number, number] {\n if (!Number.isFinite(min) || !Number.isFinite(max)) return [0, 1];\n\n if (min > max) [min, max] = [max, min];\n\n if (min === max) return [min - 1, max + 1];\n\n const range = niceNumber(max - min, false);\n const step = niceNumber(range / Math.max(1, tickCount - 1), true);\n\n return [Math.floor(min / step) * step, Math.ceil(max / step) * step];\n}\n\nexport function linearScale(config: LinearScaleConfig): Scale<number> {\n // Every method below closes over `config`/these helpers directly instead of reading\n // `this` — the returned object stays fully functional when destructured, e.g.\n // `const { map } = linearScale(cfg)`.\n const getDomain = (): [number, number] =>\n config.nice === false ? config.domain : niceRange(config.domain[0], config.domain[1], 10);\n const getRange = (): [number, number] => config.range;\n\n return {\n get domain(): [number, number] {\n return getDomain();\n },\n\n invert(pixel: number): number {\n const [d0, d1] = getDomain();\n const [r0, r1] = getRange();\n\n if (r1 === r0) return d0;\n\n const t = (pixel - r0) / (r1 - r0);\n\n return d0 + t * (d1 - d0);\n },\n\n map(value: number): number {\n const [d0, d1] = getDomain();\n const [r0, r1] = getRange();\n\n if (d1 === d0) return r0;\n\n let t = (value - d0) / (d1 - d0);\n\n if (config.clamp) {\n t = Math.max(0, Math.min(1, t));\n }\n\n return r0 + t * (r1 - r0);\n },\n\n get range(): [number, number] {\n return getRange();\n },\n\n ticks(count = 10): number[] {\n if (count <= 0) return [];\n\n const [d0, d1] = getDomain();\n\n if (d0 === d1 || count === 1) return [d0];\n\n // Normalize ordering so a reversed domain (e.g. an explicitly inverted axis with\n // `nice: false`) doesn't feed a negative range into niceNumber()'s Math.log10.\n const lo = Math.min(d0, d1);\n const hi = Math.max(d0, d1);\n const range = niceNumber(hi - lo, false);\n const step = niceNumber(range / (count - 1), true);\n const start = Math.ceil(lo / step) * step;\n const end = Math.floor(hi / step) * step;\n const ticks: number[] = [];\n\n for (let v = start; v <= end + step * 0.5; v += step) {\n ticks.push(Math.round(v * 1e12) / 1e12);\n }\n\n return ticks;\n },\n };\n}\n"],"mappings":"AAGA,SAAS,EAAW,EAAe,EAAwB,CACzD,IAAM,EAAM,KAAK,MAAM,KAAK,MAAM,CAAK,CAAC,EAClC,EAAO,EAAiB,IAAI,EAC9B,EAcJ,MAZA,CASO,EATH,EACE,EAAO,IAAY,EACd,EAAO,EAAU,EACjB,EAAO,EAAU,EACd,GAER,GAAQ,EAAU,EACb,GAAQ,EAAU,EAClB,GAAQ,EAAU,EACf,GAGP,EAAgB,IAAI,CAC7B,CAEA,SAAS,EAAU,EAAa,EAAa,EAAqC,CAChF,GAAI,CAAC,OAAO,SAAS,CAAG,GAAK,CAAC,OAAO,SAAS,CAAG,EAAG,MAAO,CAAC,EAAG,CAAC,EAIhE,GAFI,EAAM,IAAK,CAAC,EAAK,GAAO,CAAC,EAAK,CAAG,GAEjC,IAAQ,EAAK,MAAO,CAAC,EAAM,EAAG,EAAM,CAAC,EAGzC,IAAM,EAAO,EADC,EAAW,EAAM,EAAK,EACZ,EAAQ,KAAK,IAAI,EAAG,EAAY,CAAC,EAAG,EAAI,EAEhE,MAAO,CAAC,KAAK,MAAM,EAAM,CAAI,EAAI,EAAM,KAAK,KAAK,EAAM,CAAI,EAAI,CAAI,CACrE,CAEA,SAAgB,EAAY,EAA0C,CAIpE,IAAM,MACJ,EAAO,OAAS,GAAQ,EAAO,OAAS,EAAU,EAAO,OAAO,GAAI,EAAO,OAAO,GAAI,EAAE,EACpF,MAAmC,EAAO,MAEhD,MAAO,CACL,IAAI,QAA2B,CAC7B,OAAO,EAAU,CACnB,EAEA,OAAO,EAAuB,CAC5B,GAAM,CAAC,EAAI,GAAM,EAAU,EACrB,CAAC,EAAI,GAAM,EAAS,EAM1B,OAJI,IAAO,EAAW,EAIf,GAFI,EAAQ,IAAO,EAAK,IAEd,EAAK,EACxB,EAEA,IAAI,EAAuB,CACzB,GAAM,CAAC,EAAI,GAAM,EAAU,EACrB,CAAC,EAAI,GAAM,EAAS,EAE1B,GAAI,IAAO,EAAI,OAAO,EAEtB,IAAI,GAAK,EAAQ,IAAO,EAAK,GAM7B,OAJI,EAAO,QACT,EAAI,KAAK,IAAI,EAAG,KAAK,IAAI,EAAG,CAAC,CAAC,GAGzB,EAAK,GAAK,EAAK,EACxB,EAEA,IAAI,OAA0B,CAC5B,OAAO,EAAS,CAClB,EAEA,MAAM,EAAQ,GAAc,CAC1B,GAAI,GAAS,EAAG,MAAO,CAAC,EAExB,GAAM,CAAC,EAAI,GAAM,EAAU,EAE3B,GAAI,IAAO,GAAM,IAAU,EAAG,MAAO,CAAC,CAAE,EAIxC,IAAM,EAAK,KAAK,IAAI,EAAI,CAAE,EACpB,EAAK,KAAK,IAAI,EAAI,CAAE,EAEpB,EAAO,EADC,EAAW,EAAK,EAAI,EACV,GAAS,EAAQ,GAAI,EAAI,EAC3C,EAAQ,KAAK,KAAK,EAAK,CAAI,EAAI,EAC/B,EAAM,KAAK,MAAM,EAAK,CAAI,EAAI,EAC9B,EAAkB,CAAC,EAEzB,IAAK,IAAI,EAAI,EAAO,GAAK,EAAM,EAAO,GAAK,GAAK,EAC9C,EAAM,KAAK,KAAK,MAAM,EAAI,YAAI,EAAI,YAAI,EAGxC,OAAO,CACT,CACF,CACF"}
1
+ {"version":3,"file":"linear.cjs","names":[],"sources":["../../src/scales/linear.ts"],"sourcesContent":["import type { Scale } from '../types';\nimport type { LinearScaleConfig } from './types';\n\nfunction niceNumber(value: number, round: boolean): number {\n const exp = Math.floor(Math.log10(value));\n const frac = value / 10 ** exp;\n let nice: number;\n\n if (round) {\n if (frac < 1.5) nice = 1;\n else if (frac < 3) nice = 2;\n else if (frac < 7) nice = 5;\n else nice = 10;\n } else {\n if (frac <= 1) nice = 1;\n else if (frac <= 2) nice = 2;\n else if (frac <= 5) nice = 5;\n else nice = 10;\n }\n\n return nice * 10 ** exp;\n}\n\nfunction niceRange(min: number, max: number, tickCount: number): [number, number] {\n if (!Number.isFinite(min) || !Number.isFinite(max)) return [0, 1];\n\n if (min > max) [min, max] = [max, min];\n\n if (min === max) return [min - 1, max + 1];\n\n const range = niceNumber(max - min, false);\n const step = niceNumber(range / Math.max(1, tickCount - 1), true);\n\n return [Math.floor(min / step) * step, Math.ceil(max / step) * step];\n}\n\nexport function linearScale(config: LinearScaleConfig): Scale<number> {\n // Every method below closes over `config`/these helpers directly instead of reading\n // `this` — the returned object stays fully functional when destructured, e.g.\n // `const { map } = linearScale(cfg)`.\n const getDomain = (): [number, number] =>\n config.nice === false ? config.domain : niceRange(config.domain[0], config.domain[1], 10);\n const getRange = (): [number, number] => config.range;\n\n return {\n get domain(): [number, number] {\n return getDomain();\n },\n\n invert(pixel: number): number {\n const [d0, d1] = getDomain();\n const [r0, r1] = getRange();\n\n if (r1 === r0) return d0;\n\n const t = (pixel - r0) / (r1 - r0);\n\n return d0 + t * (d1 - d0);\n },\n\n map(value: number): number {\n const [d0, d1] = getDomain();\n const [r0, r1] = getRange();\n\n if (d1 === d0) return r0;\n\n let t = (value - d0) / (d1 - d0);\n\n if (config.clamp) {\n t = Math.max(0, Math.min(1, t));\n }\n\n return r0 + t * (r1 - r0);\n },\n\n get range(): [number, number] {\n return getRange();\n },\n\n ticks(count = 10): number[] {\n if (count <= 0) return [];\n\n const [d0, d1] = getDomain();\n\n if (d0 === d1 || count === 1) return [d0];\n\n // Normalize ordering so a reversed domain (e.g. an explicitly inverted axis with\n // `nice: false`) doesn't feed a negative range into niceNumber()'s Math.log10.\n const lo = Math.min(d0, d1);\n const hi = Math.max(d0, d1);\n const range = niceNumber(hi - lo, false);\n const step = niceNumber(range / (count - 1), true);\n const start = Math.ceil(lo / step) * step;\n const end = Math.floor(hi / step) * step;\n const ticks: number[] = [];\n\n for (let v = start; v <= end + step * 0.5; v += step) {\n ticks.push(Math.round(v * 1e12) / 1e12);\n }\n\n return ticks;\n },\n };\n}\n"],"mappings":"AAGA,SAAS,EAAW,EAAe,EAAwB,CACzD,IAAM,EAAM,KAAK,MAAM,KAAK,MAAM,CAAK,CAAC,EAClC,EAAO,EAAQ,IAAM,EACvB,EAcJ,MAZA,CASO,EATH,EACE,EAAO,IAAY,EACd,EAAO,EAAU,EACjB,EAAO,EAAU,EACd,GAER,GAAQ,EAAU,EACb,GAAQ,EAAU,EAClB,GAAQ,EAAU,EACf,GAGP,EAAO,IAAM,CACtB,CAEA,SAAS,EAAU,EAAa,EAAa,EAAqC,CAChF,GAAI,CAAC,OAAO,SAAS,CAAG,GAAK,CAAC,OAAO,SAAS,CAAG,EAAG,MAAO,CAAC,EAAG,CAAC,EAIhE,GAFI,EAAM,IAAK,CAAC,EAAK,GAAO,CAAC,EAAK,CAAG,GAEjC,IAAQ,EAAK,MAAO,CAAC,EAAM,EAAG,EAAM,CAAC,EAGzC,IAAM,EAAO,EADC,EAAW,EAAM,EAAK,EACZ,EAAQ,KAAK,IAAI,EAAG,EAAY,CAAC,EAAG,EAAI,EAEhE,MAAO,CAAC,KAAK,MAAM,EAAM,CAAI,EAAI,EAAM,KAAK,KAAK,EAAM,CAAI,EAAI,CAAI,CACrE,CAEA,SAAgB,EAAY,EAA0C,CAIpE,IAAM,MACJ,EAAO,OAAS,GAAQ,EAAO,OAAS,EAAU,EAAO,OAAO,GAAI,EAAO,OAAO,GAAI,EAAE,EACpF,MAAmC,EAAO,MAEhD,MAAO,CACL,IAAI,QAA2B,CAC7B,OAAO,EAAU,CACnB,EAEA,OAAO,EAAuB,CAC5B,GAAM,CAAC,EAAI,GAAM,EAAU,EACrB,CAAC,EAAI,GAAM,EAAS,EAM1B,OAJI,IAAO,EAAW,EAIf,GAFI,EAAQ,IAAO,EAAK,IAEd,EAAK,EACxB,EAEA,IAAI,EAAuB,CACzB,GAAM,CAAC,EAAI,GAAM,EAAU,EACrB,CAAC,EAAI,GAAM,EAAS,EAE1B,GAAI,IAAO,EAAI,OAAO,EAEtB,IAAI,GAAK,EAAQ,IAAO,EAAK,GAM7B,OAJI,EAAO,QACT,EAAI,KAAK,IAAI,EAAG,KAAK,IAAI,EAAG,CAAC,CAAC,GAGzB,EAAK,GAAK,EAAK,EACxB,EAEA,IAAI,OAA0B,CAC5B,OAAO,EAAS,CAClB,EAEA,MAAM,EAAQ,GAAc,CAC1B,GAAI,GAAS,EAAG,MAAO,CAAC,EAExB,GAAM,CAAC,EAAI,GAAM,EAAU,EAE3B,GAAI,IAAO,GAAM,IAAU,EAAG,MAAO,CAAC,CAAE,EAIxC,IAAM,EAAK,KAAK,IAAI,EAAI,CAAE,EACpB,EAAK,KAAK,IAAI,EAAI,CAAE,EAEpB,EAAO,EADC,EAAW,EAAK,EAAI,EACV,GAAS,EAAQ,GAAI,EAAI,EAC3C,EAAQ,KAAK,KAAK,EAAK,CAAI,EAAI,EAC/B,EAAM,KAAK,MAAM,EAAK,CAAI,EAAI,EAC9B,EAAkB,CAAC,EAEzB,IAAK,IAAI,EAAI,EAAO,GAAK,EAAM,EAAO,GAAK,GAAK,EAC9C,EAAM,KAAK,KAAK,MAAM,EAAI,YAAI,EAAI,YAAI,EAGxC,OAAO,CACT,CACF,CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"linear.js","names":[],"sources":["../../src/scales/linear.ts"],"sourcesContent":["import type { Scale } from '../types';\nimport type { LinearScaleConfig } from './types';\n\nfunction niceNumber(value: number, round: boolean): number {\n const exp = Math.floor(Math.log10(value));\n const frac = value / Math.pow(10, exp);\n let nice: number;\n\n if (round) {\n if (frac < 1.5) nice = 1;\n else if (frac < 3) nice = 2;\n else if (frac < 7) nice = 5;\n else nice = 10;\n } else {\n if (frac <= 1) nice = 1;\n else if (frac <= 2) nice = 2;\n else if (frac <= 5) nice = 5;\n else nice = 10;\n }\n\n return nice * Math.pow(10, exp);\n}\n\nfunction niceRange(min: number, max: number, tickCount: number): [number, number] {\n if (!Number.isFinite(min) || !Number.isFinite(max)) return [0, 1];\n\n if (min > max) [min, max] = [max, min];\n\n if (min === max) return [min - 1, max + 1];\n\n const range = niceNumber(max - min, false);\n const step = niceNumber(range / Math.max(1, tickCount - 1), true);\n\n return [Math.floor(min / step) * step, Math.ceil(max / step) * step];\n}\n\nexport function linearScale(config: LinearScaleConfig): Scale<number> {\n // Every method below closes over `config`/these helpers directly instead of reading\n // `this` — the returned object stays fully functional when destructured, e.g.\n // `const { map } = linearScale(cfg)`.\n const getDomain = (): [number, number] =>\n config.nice === false ? config.domain : niceRange(config.domain[0], config.domain[1], 10);\n const getRange = (): [number, number] => config.range;\n\n return {\n get domain(): [number, number] {\n return getDomain();\n },\n\n invert(pixel: number): number {\n const [d0, d1] = getDomain();\n const [r0, r1] = getRange();\n\n if (r1 === r0) return d0;\n\n const t = (pixel - r0) / (r1 - r0);\n\n return d0 + t * (d1 - d0);\n },\n\n map(value: number): number {\n const [d0, d1] = getDomain();\n const [r0, r1] = getRange();\n\n if (d1 === d0) return r0;\n\n let t = (value - d0) / (d1 - d0);\n\n if (config.clamp) {\n t = Math.max(0, Math.min(1, t));\n }\n\n return r0 + t * (r1 - r0);\n },\n\n get range(): [number, number] {\n return getRange();\n },\n\n ticks(count = 10): number[] {\n if (count <= 0) return [];\n\n const [d0, d1] = getDomain();\n\n if (d0 === d1 || count === 1) return [d0];\n\n // Normalize ordering so a reversed domain (e.g. an explicitly inverted axis with\n // `nice: false`) doesn't feed a negative range into niceNumber()'s Math.log10.\n const lo = Math.min(d0, d1);\n const hi = Math.max(d0, d1);\n const range = niceNumber(hi - lo, false);\n const step = niceNumber(range / (count - 1), true);\n const start = Math.ceil(lo / step) * step;\n const end = Math.floor(hi / step) * step;\n const ticks: number[] = [];\n\n for (let v = start; v <= end + step * 0.5; v += step) {\n ticks.push(Math.round(v * 1e12) / 1e12);\n }\n\n return ticks;\n },\n };\n}\n"],"mappings":";AAGA,SAAS,EAAW,GAAe,GAAwB;CACzD,IAAM,IAAM,KAAK,MAAM,KAAK,MAAM,CAAK,CAAC,GAClC,IAAO,IAAiB,MAAI,GAC9B;CAcJ,OAZA,AASO,IATH,IACE,IAAO,MAAY,IACd,IAAO,IAAU,IACjB,IAAO,IAAU,IACd,KAER,KAAQ,IAAU,IACb,KAAQ,IAAU,IAClB,KAAQ,IAAU,IACf,IAGP,IAAgB,MAAI;AAC7B;AAEA,SAAS,EAAU,GAAa,GAAa,GAAqC;CAChF,IAAI,CAAC,OAAO,SAAS,CAAG,KAAK,CAAC,OAAO,SAAS,CAAG,GAAG,OAAO,CAAC,GAAG,CAAC;CAIhE,IAFI,IAAM,MAAK,CAAC,GAAK,KAAO,CAAC,GAAK,CAAG,IAEjC,MAAQ,GAAK,OAAO,CAAC,IAAM,GAAG,IAAM,CAAC;CAGzC,IAAM,IAAO,EADC,EAAW,IAAM,GAAK,EACZ,IAAQ,KAAK,IAAI,GAAG,IAAY,CAAC,GAAG,EAAI;CAEhE,OAAO,CAAC,KAAK,MAAM,IAAM,CAAI,IAAI,GAAM,KAAK,KAAK,IAAM,CAAI,IAAI,CAAI;AACrE;AAEA,SAAgB,EAAY,GAA0C;CAIpE,IAAM,UACJ,EAAO,SAAS,KAAQ,EAAO,SAAS,EAAU,EAAO,OAAO,IAAI,EAAO,OAAO,IAAI,EAAE,GACpF,UAAmC,EAAO;CAEhD,OAAO;EACL,IAAI,SAA2B;GAC7B,OAAO,EAAU;EACnB;EAEA,OAAO,GAAuB;GAC5B,IAAM,CAAC,GAAI,KAAM,EAAU,GACrB,CAAC,GAAI,KAAM,EAAS;GAM1B,OAJI,MAAO,IAAW,IAIf,KAFI,IAAQ,MAAO,IAAK,MAEd,IAAK;EACxB;EAEA,IAAI,GAAuB;GACzB,IAAM,CAAC,GAAI,KAAM,EAAU,GACrB,CAAC,GAAI,KAAM,EAAS;GAE1B,IAAI,MAAO,GAAI,OAAO;GAEtB,IAAI,KAAK,IAAQ,MAAO,IAAK;GAM7B,OAJI,EAAO,UACT,IAAI,KAAK,IAAI,GAAG,KAAK,IAAI,GAAG,CAAC,CAAC,IAGzB,IAAK,KAAK,IAAK;EACxB;EAEA,IAAI,QAA0B;GAC5B,OAAO,EAAS;EAClB;EAEA,MAAM,IAAQ,IAAc;GAC1B,IAAI,KAAS,GAAG,OAAO,CAAC;GAExB,IAAM,CAAC,GAAI,KAAM,EAAU;GAE3B,IAAI,MAAO,KAAM,MAAU,GAAG,OAAO,CAAC,CAAE;GAIxC,IAAM,IAAK,KAAK,IAAI,GAAI,CAAE,GACpB,IAAK,KAAK,IAAI,GAAI,CAAE,GAEpB,IAAO,EADC,EAAW,IAAK,GAAI,EACV,KAAS,IAAQ,IAAI,EAAI,GAC3C,IAAQ,KAAK,KAAK,IAAK,CAAI,IAAI,GAC/B,IAAM,KAAK,MAAM,IAAK,CAAI,IAAI,GAC9B,IAAkB,CAAC;GAEzB,KAAK,IAAI,IAAI,GAAO,KAAK,IAAM,IAAO,IAAK,KAAK,GAC9C,EAAM,KAAK,KAAK,MAAM,IAAI,YAAI,IAAI,YAAI;GAGxC,OAAO;EACT;CACF;AACF"}
1
+ {"version":3,"file":"linear.js","names":[],"sources":["../../src/scales/linear.ts"],"sourcesContent":["import type { Scale } from '../types';\nimport type { LinearScaleConfig } from './types';\n\nfunction niceNumber(value: number, round: boolean): number {\n const exp = Math.floor(Math.log10(value));\n const frac = value / 10 ** exp;\n let nice: number;\n\n if (round) {\n if (frac < 1.5) nice = 1;\n else if (frac < 3) nice = 2;\n else if (frac < 7) nice = 5;\n else nice = 10;\n } else {\n if (frac <= 1) nice = 1;\n else if (frac <= 2) nice = 2;\n else if (frac <= 5) nice = 5;\n else nice = 10;\n }\n\n return nice * 10 ** exp;\n}\n\nfunction niceRange(min: number, max: number, tickCount: number): [number, number] {\n if (!Number.isFinite(min) || !Number.isFinite(max)) return [0, 1];\n\n if (min > max) [min, max] = [max, min];\n\n if (min === max) return [min - 1, max + 1];\n\n const range = niceNumber(max - min, false);\n const step = niceNumber(range / Math.max(1, tickCount - 1), true);\n\n return [Math.floor(min / step) * step, Math.ceil(max / step) * step];\n}\n\nexport function linearScale(config: LinearScaleConfig): Scale<number> {\n // Every method below closes over `config`/these helpers directly instead of reading\n // `this` — the returned object stays fully functional when destructured, e.g.\n // `const { map } = linearScale(cfg)`.\n const getDomain = (): [number, number] =>\n config.nice === false ? config.domain : niceRange(config.domain[0], config.domain[1], 10);\n const getRange = (): [number, number] => config.range;\n\n return {\n get domain(): [number, number] {\n return getDomain();\n },\n\n invert(pixel: number): number {\n const [d0, d1] = getDomain();\n const [r0, r1] = getRange();\n\n if (r1 === r0) return d0;\n\n const t = (pixel - r0) / (r1 - r0);\n\n return d0 + t * (d1 - d0);\n },\n\n map(value: number): number {\n const [d0, d1] = getDomain();\n const [r0, r1] = getRange();\n\n if (d1 === d0) return r0;\n\n let t = (value - d0) / (d1 - d0);\n\n if (config.clamp) {\n t = Math.max(0, Math.min(1, t));\n }\n\n return r0 + t * (r1 - r0);\n },\n\n get range(): [number, number] {\n return getRange();\n },\n\n ticks(count = 10): number[] {\n if (count <= 0) return [];\n\n const [d0, d1] = getDomain();\n\n if (d0 === d1 || count === 1) return [d0];\n\n // Normalize ordering so a reversed domain (e.g. an explicitly inverted axis with\n // `nice: false`) doesn't feed a negative range into niceNumber()'s Math.log10.\n const lo = Math.min(d0, d1);\n const hi = Math.max(d0, d1);\n const range = niceNumber(hi - lo, false);\n const step = niceNumber(range / (count - 1), true);\n const start = Math.ceil(lo / step) * step;\n const end = Math.floor(hi / step) * step;\n const ticks: number[] = [];\n\n for (let v = start; v <= end + step * 0.5; v += step) {\n ticks.push(Math.round(v * 1e12) / 1e12);\n }\n\n return ticks;\n },\n };\n}\n"],"mappings":";AAGA,SAAS,EAAW,GAAe,GAAwB;CACzD,IAAM,IAAM,KAAK,MAAM,KAAK,MAAM,CAAK,CAAC,GAClC,IAAO,IAAQ,MAAM,GACvB;CAcJ,OAZA,AASO,IATH,IACE,IAAO,MAAY,IACd,IAAO,IAAU,IACjB,IAAO,IAAU,IACd,KAER,KAAQ,IAAU,IACb,KAAQ,IAAU,IAClB,KAAQ,IAAU,IACf,IAGP,IAAO,MAAM;AACtB;AAEA,SAAS,EAAU,GAAa,GAAa,GAAqC;CAChF,IAAI,CAAC,OAAO,SAAS,CAAG,KAAK,CAAC,OAAO,SAAS,CAAG,GAAG,OAAO,CAAC,GAAG,CAAC;CAIhE,IAFI,IAAM,MAAK,CAAC,GAAK,KAAO,CAAC,GAAK,CAAG,IAEjC,MAAQ,GAAK,OAAO,CAAC,IAAM,GAAG,IAAM,CAAC;CAGzC,IAAM,IAAO,EADC,EAAW,IAAM,GAAK,EACZ,IAAQ,KAAK,IAAI,GAAG,IAAY,CAAC,GAAG,EAAI;CAEhE,OAAO,CAAC,KAAK,MAAM,IAAM,CAAI,IAAI,GAAM,KAAK,KAAK,IAAM,CAAI,IAAI,CAAI;AACrE;AAEA,SAAgB,EAAY,GAA0C;CAIpE,IAAM,UACJ,EAAO,SAAS,KAAQ,EAAO,SAAS,EAAU,EAAO,OAAO,IAAI,EAAO,OAAO,IAAI,EAAE,GACpF,UAAmC,EAAO;CAEhD,OAAO;EACL,IAAI,SAA2B;GAC7B,OAAO,EAAU;EACnB;EAEA,OAAO,GAAuB;GAC5B,IAAM,CAAC,GAAI,KAAM,EAAU,GACrB,CAAC,GAAI,KAAM,EAAS;GAM1B,OAJI,MAAO,IAAW,IAIf,KAFI,IAAQ,MAAO,IAAK,MAEd,IAAK;EACxB;EAEA,IAAI,GAAuB;GACzB,IAAM,CAAC,GAAI,KAAM,EAAU,GACrB,CAAC,GAAI,KAAM,EAAS;GAE1B,IAAI,MAAO,GAAI,OAAO;GAEtB,IAAI,KAAK,IAAQ,MAAO,IAAK;GAM7B,OAJI,EAAO,UACT,IAAI,KAAK,IAAI,GAAG,KAAK,IAAI,GAAG,CAAC,CAAC,IAGzB,IAAK,KAAK,IAAK;EACxB;EAEA,IAAI,QAA0B;GAC5B,OAAO,EAAS;EAClB;EAEA,MAAM,IAAQ,IAAc;GAC1B,IAAI,KAAS,GAAG,OAAO,CAAC;GAExB,IAAM,CAAC,GAAI,KAAM,EAAU;GAE3B,IAAI,MAAO,KAAM,MAAU,GAAG,OAAO,CAAC,CAAE;GAIxC,IAAM,IAAK,KAAK,IAAI,GAAI,CAAE,GACpB,IAAK,KAAK,IAAI,GAAI,CAAE,GAEpB,IAAO,EADC,EAAW,IAAK,GAAI,EACV,KAAS,IAAQ,IAAI,EAAI,GAC3C,IAAQ,KAAK,KAAK,IAAK,CAAI,IAAI,GAC/B,IAAM,KAAK,MAAM,IAAK,CAAI,IAAI,GAC9B,IAAkB,CAAC;GAEzB,KAAK,IAAI,IAAI,GAAO,KAAK,IAAM,IAAO,IAAK,KAAK,GAC9C,EAAM,KAAK,KAAK,MAAM,IAAI,YAAI,IAAI,YAAI;GAGxC,OAAO;EACT;CACF;AACF"}
@@ -1,5 +1,5 @@
1
1
  export { createSvgElement, removeChildren, setAttributes } from './element';
2
- export { areaPath, linePath, monotonePath, stepPath } from './path';
3
2
  export type { Point } from './path';
3
+ export { areaPath, linePath, monotonePath, stepPath } from './path';
4
4
  export { createAxisLabel, createTextElement, measureTextWidth, truncateText } from './text';
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/svg/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC5E,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AACpE,YAAY,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/svg/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC5E,YAAY,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"text.cjs","names":[],"sources":["../../src/svg/text.ts"],"sourcesContent":["import { createSvgElement, setAttributes } from './element';\n\nexport function createTextElement(\n content: string,\n attrs?: Record<string, number | string | undefined>,\n): SVGTextElement {\n const text = createSvgElement('text', attrs);\n\n text.textContent = content;\n\n return text;\n}\n\nexport function truncateText(text: string, maxWidth: number, fontSize: number): string {\n const avgCharWidth = fontSize * 0.6;\n const maxChars = Math.floor(maxWidth / avgCharWidth);\n\n if (text.length <= maxChars) return text;\n\n return text.slice(0, Math.max(1, maxChars - 1)) + '…';\n}\n\nexport function measureTextWidth(text: string, fontSize: number): number {\n return text.length * fontSize * 0.6;\n}\n\nexport function createAxisLabel(\n content: string,\n x: number,\n y: number,\n anchor: 'end' | 'middle' | 'start' = 'middle',\n): SVGTextElement {\n return createTextElement(content, {\n 'dominant-baseline': 'middle',\n 'text-anchor': anchor,\n x,\n y,\n });\n}\n\nexport { setAttributes };\n"],"mappings":"iCAEA,SAAgB,EACd,EACA,EACgB,CAChB,IAAM,EAAO,EAAA,iBAAiB,OAAQ,CAAK,EAI3C,MAFA,GAAK,YAAc,EAEZ,CACT"}
1
+ {"version":3,"file":"text.cjs","names":[],"sources":["../../src/svg/text.ts"],"sourcesContent":["import { createSvgElement, setAttributes } from './element';\n\nexport function createTextElement(\n content: string,\n attrs?: Record<string, number | string | undefined>,\n): SVGTextElement {\n const text = createSvgElement('text', attrs);\n\n text.textContent = content;\n\n return text;\n}\n\nexport function truncateText(text: string, maxWidth: number, fontSize: number): string {\n const avgCharWidth = fontSize * 0.6;\n const maxChars = Math.floor(maxWidth / avgCharWidth);\n\n if (text.length <= maxChars) return text;\n\n return `${text.slice(0, Math.max(1, maxChars - 1))}…`;\n}\n\nexport function measureTextWidth(text: string, fontSize: number): number {\n return text.length * fontSize * 0.6;\n}\n\nexport function createAxisLabel(\n content: string,\n x: number,\n y: number,\n anchor: 'end' | 'middle' | 'start' = 'middle',\n): SVGTextElement {\n return createTextElement(content, {\n 'dominant-baseline': 'middle',\n 'text-anchor': anchor,\n x,\n y,\n });\n}\n\nexport { setAttributes };\n"],"mappings":"iCAEA,SAAgB,EACd,EACA,EACgB,CAChB,IAAM,EAAO,EAAA,iBAAiB,OAAQ,CAAK,EAI3C,MAFA,GAAK,YAAc,EAEZ,CACT"}
@@ -1 +1 @@
1
- {"version":3,"file":"text.js","names":[],"sources":["../../src/svg/text.ts"],"sourcesContent":["import { createSvgElement, setAttributes } from './element';\n\nexport function createTextElement(\n content: string,\n attrs?: Record<string, number | string | undefined>,\n): SVGTextElement {\n const text = createSvgElement('text', attrs);\n\n text.textContent = content;\n\n return text;\n}\n\nexport function truncateText(text: string, maxWidth: number, fontSize: number): string {\n const avgCharWidth = fontSize * 0.6;\n const maxChars = Math.floor(maxWidth / avgCharWidth);\n\n if (text.length <= maxChars) return text;\n\n return text.slice(0, Math.max(1, maxChars - 1)) + '…';\n}\n\nexport function measureTextWidth(text: string, fontSize: number): number {\n return text.length * fontSize * 0.6;\n}\n\nexport function createAxisLabel(\n content: string,\n x: number,\n y: number,\n anchor: 'end' | 'middle' | 'start' = 'middle',\n): SVGTextElement {\n return createTextElement(content, {\n 'dominant-baseline': 'middle',\n 'text-anchor': anchor,\n x,\n y,\n });\n}\n\nexport { setAttributes };\n"],"mappings":";;AAEA,SAAgB,EACd,GACA,GACgB;CAChB,IAAM,IAAO,EAAiB,QAAQ,CAAK;CAI3C,OAFA,EAAK,cAAc,GAEZ;AACT"}
1
+ {"version":3,"file":"text.js","names":[],"sources":["../../src/svg/text.ts"],"sourcesContent":["import { createSvgElement, setAttributes } from './element';\n\nexport function createTextElement(\n content: string,\n attrs?: Record<string, number | string | undefined>,\n): SVGTextElement {\n const text = createSvgElement('text', attrs);\n\n text.textContent = content;\n\n return text;\n}\n\nexport function truncateText(text: string, maxWidth: number, fontSize: number): string {\n const avgCharWidth = fontSize * 0.6;\n const maxChars = Math.floor(maxWidth / avgCharWidth);\n\n if (text.length <= maxChars) return text;\n\n return `${text.slice(0, Math.max(1, maxChars - 1))}…`;\n}\n\nexport function measureTextWidth(text: string, fontSize: number): number {\n return text.length * fontSize * 0.6;\n}\n\nexport function createAxisLabel(\n content: string,\n x: number,\n y: number,\n anchor: 'end' | 'middle' | 'start' = 'middle',\n): SVGTextElement {\n return createTextElement(content, {\n 'dominant-baseline': 'middle',\n 'text-anchor': anchor,\n x,\n y,\n });\n}\n\nexport { setAttributes };\n"],"mappings":";;AAEA,SAAgB,EACd,GACA,GACgB;CAChB,IAAM,IAAO,EAAiB,QAAQ,CAAK;CAI3C,OAFA,EAAK,cAAc,GAEZ;AACT"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vielzeug/prism",
3
- "version": "2.1.0",
3
+ "version": "2.1.2",
4
4
  "description": "Reactive SVG charts — line, bar, area, pie, and sparkline with signal-driven updates",
5
5
  "keywords": [
6
6
  "chart",
@@ -14,17 +14,17 @@
14
14
  ],
15
15
  "homepage": "https://vielzeug.dev/prism/",
16
16
  "repository": {
17
+ "directory": "packages/prism",
17
18
  "type": "git",
18
- "url": "https://github.com/helmuthdu/vielzeug",
19
- "directory": "packages/prism"
19
+ "url": "https://github.com/helmuthdu/vielzeug"
20
20
  },
21
21
  "bugs": {
22
22
  "url": "https://github.com/helmuthdu/vielzeug/issues"
23
23
  },
24
+ "type": "module",
24
25
  "engines": {
25
26
  "node": ">=22"
26
27
  },
27
- "type": "module",
28
28
  "files": [
29
29
  "dist"
30
30
  ],
@@ -33,51 +33,51 @@
33
33
  "types": "dist/index.d.ts",
34
34
  "exports": {
35
35
  ".": {
36
- "types": "./dist/index.d.ts",
37
36
  "import": "./dist/index.js",
38
- "require": "./dist/index.cjs"
39
- },
40
- "./theme": {
41
- "import": "./dist/theme/prism.css",
42
- "default": "./dist/theme/prism.css"
37
+ "require": "./dist/index.cjs",
38
+ "types": "./dist/index.d.ts"
43
39
  },
44
40
  "./devtools": {
45
- "types": "./dist/devtools/index.d.ts",
46
41
  "import": "./dist/devtools.js",
47
- "require": "./dist/devtools.cjs"
42
+ "require": "./dist/devtools.cjs",
43
+ "types": "./dist/devtools/index.d.ts"
44
+ },
45
+ "./theme": {
46
+ "default": "./dist/theme/prism.css",
47
+ "import": "./dist/theme/prism.css"
48
48
  }
49
49
  },
50
+ "typesVersions": {
51
+ "*": {
52
+ "devtools": [
53
+ "dist/devtools/index.d.ts"
54
+ ]
55
+ }
56
+ },
57
+ "sideEffects": [
58
+ "./dist/theme/**"
59
+ ],
60
+ "publishConfig": {
61
+ "access": "public",
62
+ "registry": "https://registry.npmjs.org/"
63
+ },
50
64
  "scripts": {
51
65
  "build": "vite build && pnpm run build:bundle && mkdir -p dist/theme && cp src/theme/prism.css dist/theme/prism.css && pnpm run build:types",
52
66
  "build:bundle": "vite build --config vite.bundle.config.ts",
53
67
  "build:types": "tsc -p tsconfig.declarations.json",
54
- "fix": "eslint --fix src",
55
- "lint": "eslint src",
68
+ "fix": "biome check --write src",
69
+ "lint": "biome ci src",
56
70
  "prepublishOnly": "pnpm run build",
57
71
  "test": "vitest"
58
72
  },
59
- "sideEffects": [
60
- "./dist/theme/**"
61
- ],
62
73
  "dependencies": {
63
- "@vielzeug/orbit": "2.0.0",
64
- "@vielzeug/ripple": "2.0.1"
74
+ "@vielzeug/orbit": "2.0.2",
75
+ "@vielzeug/ripple": "2.2.0"
65
76
  },
66
77
  "devDependencies": {
67
- "axe-core": "^4.12.1",
78
+ "axe-core": "^4.13.0",
68
79
  "typescript": "^6.0.3",
69
- "vite": "^8.2.0",
80
+ "vite": "^8.2.1",
70
81
  "vitest": "^4.1.10"
71
- },
72
- "publishConfig": {
73
- "access": "public",
74
- "registry": "https://registry.npmjs.org/"
75
- },
76
- "typesVersions": {
77
- "*": {
78
- "devtools": [
79
- "dist/devtools/index.d.ts"
80
- ]
81
- }
82
82
  }
83
83
  }