@qr-platform/qr-code.js 0.8.17

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 (208) hide show
  1. package/.github/workflows/publish.yml +18 -0
  2. package/CHANGELOG.md +233 -0
  3. package/LICENSE.md +77 -0
  4. package/README.md +188 -0
  5. package/docs/advanced-examples.md +523 -0
  6. package/docs/api-reference-guide.md +254 -0
  7. package/docs/documentation.md +1592 -0
  8. package/docs/examples.md +322 -0
  9. package/docs/license-management.md +501 -0
  10. package/docs/typescript-types-definitions.md +372 -0
  11. package/docs/usage-guide.md +622 -0
  12. package/lib/core/qr-code-js.d.ts +48 -0
  13. package/lib/core/qr-constant.d.ts +9 -0
  14. package/lib/core/qr-options-validation.d.ts +13 -0
  15. package/lib/core/qr-svg.d.ts +76 -0
  16. package/lib/core/qr-templates.d.ts +6 -0
  17. package/lib/figures/corner-dot.d.ts +24 -0
  18. package/lib/figures/corner-square.d.ts +24 -0
  19. package/lib/figures/dot.d.ts +31 -0
  20. package/lib/index.d.ts +52 -0
  21. package/lib/lib/image/GIFImage.d.ts +19 -0
  22. package/lib/lib/io/Base64.d.ts +10 -0
  23. package/lib/lib/io/Base64DecodeInputStream.d.ts +15 -0
  24. package/lib/lib/io/Base64EncodeOutputStream.d.ts +17 -0
  25. package/lib/lib/io/ByteArrayInputStream.d.ts +12 -0
  26. package/lib/lib/io/ByteArrayOutputStream.d.ts +12 -0
  27. package/lib/lib/io/InputStream.d.ts +10 -0
  28. package/lib/lib/io/OutputStream.d.ts +12 -0
  29. package/lib/lib/qr-code.d.ts +5 -0
  30. package/lib/lib/qrcode/BitBuffer.d.ts +11 -0
  31. package/lib/lib/qrcode/ErrorCorrectLevel.d.ts +23 -0
  32. package/lib/lib/qrcode/MaskPattern.d.ts +39 -0
  33. package/lib/lib/qrcode/Mode.d.ts +23 -0
  34. package/lib/lib/qrcode/Polynomial.d.ts +15 -0
  35. package/lib/lib/qrcode/QR8BitByte.d.ts +13 -0
  36. package/lib/lib/qrcode/QRAlphaNum.d.ts +13 -0
  37. package/lib/lib/qrcode/QRCode.d.ts +22 -0
  38. package/lib/lib/qrcode/QRCodeMinimal.d.ts +58 -0
  39. package/lib/lib/qrcode/QRData.d.ts +17 -0
  40. package/lib/lib/qrcode/QRKanji.d.ts +13 -0
  41. package/lib/lib/qrcode/QRMath.d.ts +13 -0
  42. package/lib/lib/qrcode/QRNumber.d.ts +14 -0
  43. package/lib/lib/qrcode/QRUtil.d.ts +25 -0
  44. package/lib/lib/qrcode/RSBlock.d.ts +16 -0
  45. package/lib/lib/text/createStringToBytes.d.ts +9 -0
  46. package/lib/lib/text/stringToBytes_SJIS.d.ts +8 -0
  47. package/lib/lib/text/stringToBytes_UTF8.d.ts +7 -0
  48. package/lib/lib/zbar-wasm/index.d.ts +1 -0
  49. package/lib/lib/zxing-js/src/browser/BrowserCodeReader.d.ts +410 -0
  50. package/lib/lib/zxing-js/src/browser/BrowserQRCodeReader.d.ts +29 -0
  51. package/lib/lib/zxing-js/src/browser/BrowserQRCodeSvgWriter.d.ts +46 -0
  52. package/lib/lib/zxing-js/src/browser/BrowserSvgCodeWriter.d.ts +49 -0
  53. package/lib/lib/zxing-js/src/browser/DecodeContinuouslyCallback.d.ts +6 -0
  54. package/lib/lib/zxing-js/src/browser/HTMLCanvasElementLuminanceSource.d.ts +27 -0
  55. package/lib/lib/zxing-js/src/browser/HTMLVisualMediaElement.d.ts +4 -0
  56. package/lib/lib/zxing-js/src/browser/VideoInputDevice.d.ts +22 -0
  57. package/lib/lib/zxing-js/src/browser.d.ts +3 -0
  58. package/lib/lib/zxing-js/src/core/ArgumentException.d.ts +7 -0
  59. package/lib/lib/zxing-js/src/core/ArithmeticException.d.ts +7 -0
  60. package/lib/lib/zxing-js/src/core/ArrayIndexOutOfBoundsException.d.ts +10 -0
  61. package/lib/lib/zxing-js/src/core/BarcodeFormat.d.ts +42 -0
  62. package/lib/lib/zxing-js/src/core/Binarizer.d.ts +53 -0
  63. package/lib/lib/zxing-js/src/core/BinaryBitmap.d.ts +78 -0
  64. package/lib/lib/zxing-js/src/core/ChecksumException.d.ts +8 -0
  65. package/lib/lib/zxing-js/src/core/DecodeHintType.d.ts +91 -0
  66. package/lib/lib/zxing-js/src/core/Dimension.d.ts +13 -0
  67. package/lib/lib/zxing-js/src/core/EncodeHintType.d.ts +99 -0
  68. package/lib/lib/zxing-js/src/core/Exception.d.ts +17 -0
  69. package/lib/lib/zxing-js/src/core/FormatException.d.ts +8 -0
  70. package/lib/lib/zxing-js/src/core/HighContrastLuminanceSource.d.ts +27 -0
  71. package/lib/lib/zxing-js/src/core/IllegalArgumentException.d.ts +7 -0
  72. package/lib/lib/zxing-js/src/core/IllegalStateException.d.ts +7 -0
  73. package/lib/lib/zxing-js/src/core/IndexOutOfBoundsException.d.ts +7 -0
  74. package/lib/lib/zxing-js/src/core/InvertedLuminanceSource.d.ts +22 -0
  75. package/lib/lib/zxing-js/src/core/LuminanceSource.d.ts +84 -0
  76. package/lib/lib/zxing-js/src/core/NodeLuminanceSource.d.ts +36 -0
  77. package/lib/lib/zxing-js/src/core/NotFoundException.d.ts +8 -0
  78. package/lib/lib/zxing-js/src/core/NullPointerException.d.ts +7 -0
  79. package/lib/lib/zxing-js/src/core/OutOfMemoryError.d.ts +6 -0
  80. package/lib/lib/zxing-js/src/core/PlanarYUVLuminanceSource.d.ts +35 -0
  81. package/lib/lib/zxing-js/src/core/RGBLuminanceSource.d.ts +21 -0
  82. package/lib/lib/zxing-js/src/core/Reader.d.ts +49 -0
  83. package/lib/lib/zxing-js/src/core/ReaderException.d.ts +7 -0
  84. package/lib/lib/zxing-js/src/core/ReedSolomonException.d.ts +7 -0
  85. package/lib/lib/zxing-js/src/core/Result.d.ts +52 -0
  86. package/lib/lib/zxing-js/src/core/ResultMetadataType.d.ts +68 -0
  87. package/lib/lib/zxing-js/src/core/ResultPoint.d.ts +34 -0
  88. package/lib/lib/zxing-js/src/core/ResultPointCallback.d.ts +11 -0
  89. package/lib/lib/zxing-js/src/core/UniversalLuminanceSource.d.ts +46 -0
  90. package/lib/lib/zxing-js/src/core/UnsupportedOperationException.d.ts +7 -0
  91. package/lib/lib/zxing-js/src/core/Writer.d.ts +30 -0
  92. package/lib/lib/zxing-js/src/core/WriterException.d.ts +7 -0
  93. package/lib/lib/zxing-js/src/core/common/BitArray.d.ts +111 -0
  94. package/lib/lib/zxing-js/src/core/common/BitMatrix.d.ts +98 -0
  95. package/lib/lib/zxing-js/src/core/common/BitSource.d.ts +38 -0
  96. package/lib/lib/zxing-js/src/core/common/CharacterSetECI.d.ts +89 -0
  97. package/lib/lib/zxing-js/src/core/common/DecoderResult.d.ts +64 -0
  98. package/lib/lib/zxing-js/src/core/common/DefaultGridSampler.d.ts +10 -0
  99. package/lib/lib/zxing-js/src/core/common/DetectorResult.d.ts +16 -0
  100. package/lib/lib/zxing-js/src/core/common/ECIEncoderSet.d.ts +37 -0
  101. package/lib/lib/zxing-js/src/core/common/ECIInput.d.ts +79 -0
  102. package/lib/lib/zxing-js/src/core/common/GlobalHistogramBinarizer.d.ts +29 -0
  103. package/lib/lib/zxing-js/src/core/common/GridSampler.d.ts +36 -0
  104. package/lib/lib/zxing-js/src/core/common/GridSamplerInstance.d.ts +18 -0
  105. package/lib/lib/zxing-js/src/core/common/HybridBinarizer.d.ts +54 -0
  106. package/lib/lib/zxing-js/src/core/common/MinimalECIInput.d.ts +123 -0
  107. package/lib/lib/zxing-js/src/core/common/PerspectiveTransform.d.ts +26 -0
  108. package/lib/lib/zxing-js/src/core/common/StringUtils.d.ts +48 -0
  109. package/lib/lib/zxing-js/src/core/common/detector/CornerDetector.d.ts +35 -0
  110. package/lib/lib/zxing-js/src/core/common/detector/MathUtils.d.ts +36 -0
  111. package/lib/lib/zxing-js/src/core/common/detector/WhiteRectangleDetector.d.ts +71 -0
  112. package/lib/lib/zxing-js/src/core/common/reedsolomon/AbstractGenericGF.d.ts +34 -0
  113. package/lib/lib/zxing-js/src/core/common/reedsolomon/AbstractGenericGFPoly.d.ts +36 -0
  114. package/lib/lib/zxing-js/src/core/common/reedsolomon/GenericGF.d.ts +58 -0
  115. package/lib/lib/zxing-js/src/core/common/reedsolomon/GenericGFPoly.d.ts +47 -0
  116. package/lib/lib/zxing-js/src/core/common/reedsolomon/ReedSolomonDecoder.d.ts +40 -0
  117. package/lib/lib/zxing-js/src/core/common/reedsolomon/ReedSolomonEncoder.d.ts +41 -0
  118. package/lib/lib/zxing-js/src/core/qrcode/QRCodeReader.d.ts +35 -0
  119. package/lib/lib/zxing-js/src/core/qrcode/QRCodeWriter.d.ts +13 -0
  120. package/lib/lib/zxing-js/src/core/qrcode/decoder/BitMatrixParser.d.ts +58 -0
  121. package/lib/lib/zxing-js/src/core/qrcode/decoder/DataBlock.d.ts +28 -0
  122. package/lib/lib/zxing-js/src/core/qrcode/decoder/DataMask.d.ts +36 -0
  123. package/lib/lib/zxing-js/src/core/qrcode/decoder/DecodedBitStreamParser.d.ts +30 -0
  124. package/lib/lib/zxing-js/src/core/qrcode/decoder/Decoder.d.ts +44 -0
  125. package/lib/lib/zxing-js/src/core/qrcode/decoder/ECB.d.ts +12 -0
  126. package/lib/lib/zxing-js/src/core/qrcode/decoder/ECBlocks.d.ts +16 -0
  127. package/lib/lib/zxing-js/src/core/qrcode/decoder/ErrorCorrectionLevel.d.ts +38 -0
  128. package/lib/lib/zxing-js/src/core/qrcode/decoder/FormatInformation.d.ts +33 -0
  129. package/lib/lib/zxing-js/src/core/qrcode/decoder/Mode.d.ts +56 -0
  130. package/lib/lib/zxing-js/src/core/qrcode/decoder/QRCodeDecoderMetaData.d.ts +21 -0
  131. package/lib/lib/zxing-js/src/core/qrcode/decoder/Version.d.ts +44 -0
  132. package/lib/lib/zxing-js/src/core/qrcode/detector/AlignmentPattern.d.ts +21 -0
  133. package/lib/lib/zxing-js/src/core/qrcode/detector/AlignmentPatternFinder.d.ts +82 -0
  134. package/lib/lib/zxing-js/src/core/qrcode/detector/Detector.d.ts +87 -0
  135. package/lib/lib/zxing-js/src/core/qrcode/detector/FinderPattern.d.ts +26 -0
  136. package/lib/lib/zxing-js/src/core/qrcode/detector/FinderPatternFinder.d.ts +114 -0
  137. package/lib/lib/zxing-js/src/core/qrcode/detector/FinderPatternInfo.d.ts +16 -0
  138. package/lib/lib/zxing-js/src/core/qrcode/encoder/BlockPair.d.ts +7 -0
  139. package/lib/lib/zxing-js/src/core/qrcode/encoder/ByteMatrix.d.ts +24 -0
  140. package/lib/lib/zxing-js/src/core/qrcode/encoder/Encoder.d.ts +85 -0
  141. package/lib/lib/zxing-js/src/core/qrcode/encoder/MaskUtil.d.ts +47 -0
  142. package/lib/lib/zxing-js/src/core/qrcode/encoder/MatrixUtil.d.ts +37 -0
  143. package/lib/lib/zxing-js/src/core/qrcode/encoder/QRCode.d.ts +29 -0
  144. package/lib/lib/zxing-js/src/core/util/Arrays.d.ts +45 -0
  145. package/lib/lib/zxing-js/src/core/util/ByteArrayOutputStream.d.ts +174 -0
  146. package/lib/lib/zxing-js/src/core/util/Charset.d.ts +7 -0
  147. package/lib/lib/zxing-js/src/core/util/Collections.d.ts +11 -0
  148. package/lib/lib/zxing-js/src/core/util/Float.d.ts +14 -0
  149. package/lib/lib/zxing-js/src/core/util/Formatter.d.ts +28 -0
  150. package/lib/lib/zxing-js/src/core/util/Integer.d.ts +19 -0
  151. package/lib/lib/zxing-js/src/core/util/Long.d.ts +12 -0
  152. package/lib/lib/zxing-js/src/core/util/OutputStream.d.ts +106 -0
  153. package/lib/lib/zxing-js/src/core/util/StandardCharsets.d.ts +7 -0
  154. package/lib/lib/zxing-js/src/core/util/StringBuilder.d.ts +21 -0
  155. package/lib/lib/zxing-js/src/core/util/StringEncoding.d.ts +51 -0
  156. package/lib/lib/zxing-js/src/core/util/System.d.ts +10 -0
  157. package/lib/lib/zxing-js/src/customTypings.d.ts +16 -0
  158. package/lib/lib/zxing-js/src/index.d.ts +5 -0
  159. package/lib/lib/zxing-js/src/node.d.ts +1 -0
  160. package/lib/license/LicenseManager.d.ts +69 -0
  161. package/lib/license/LicenseManagerNode.d.ts +64 -0
  162. package/lib/node.d.ts +37 -0
  163. package/lib/options-demo.d.ts +239 -0
  164. package/lib/plugins/QRBorderHelpers.d.ts +32 -0
  165. package/lib/plugins/QRBorderPlugin.d.ts +35 -0
  166. package/lib/plugins/QRValidatorZbar.d.ts +38 -0
  167. package/lib/plugins/QRValidatorZbarNode.d.ts +60 -0
  168. package/lib/plugins/QRValidatorZbarNodeSharp.d.ts +83 -0
  169. package/lib/qr-code-js-node.js +1 -0
  170. package/lib/qr-code-js.js +1 -0
  171. package/lib/templates/borders-inner-outter.d.ts +129 -0
  172. package/lib/templates/borders-inner-scale-offset.d.ts +497 -0
  173. package/lib/templates/borders-inner.d.ts +129 -0
  174. package/lib/templates/borders-no-license.d.ts +129 -0
  175. package/lib/templates/borders-outter.d.ts +129 -0
  176. package/lib/templates/borders-text-auto-curved.d.ts +129 -0
  177. package/lib/templates/borders-text-full-curved.d.ts +133 -0
  178. package/lib/templates/borders.d.ts +129 -0
  179. package/lib/templates/scales.d.ts +130 -0
  180. package/lib/templates/scan-validators/index.d.ts +1 -0
  181. package/lib/templates/scan-validators/tests/cases/basic-inverted.d.ts +9 -0
  182. package/lib/templates/scan-validators/tests/cases/basic-no-license.d.ts +3 -0
  183. package/lib/templates/scan-validators/tests/cases/basic.d.ts +3 -0
  184. package/lib/templates/scan-validators/tests/cases/colors-inverted.d.ts +2 -0
  185. package/lib/templates/scan-validators/tests/cases/colors.d.ts +58 -0
  186. package/lib/templates/scan-validators/tests/cases/out-of-borders-inverted.d.ts +9 -0
  187. package/lib/templates/scan-validators/tests/cases/out-of-borders.d.ts +9 -0
  188. package/lib/templates/scan-validators/tests/cases/position-inverted.d.ts +9 -0
  189. package/lib/templates/scan-validators/tests/cases/position.d.ts +3 -0
  190. package/lib/templates/scan-validators/tests/index.d.ts +27 -0
  191. package/lib/tools/browser-image-tools.d.ts +7 -0
  192. package/lib/tools/browser-utils.d.ts +18 -0
  193. package/lib/types/helper.d.ts +23 -0
  194. package/lib/utils/canvas-options.d.ts +7 -0
  195. package/lib/utils/color.d.ts +4 -0
  196. package/lib/utils/gradient.d.ts +26 -0
  197. package/lib/utils/image.d.ts +16 -0
  198. package/lib/utils/merge.d.ts +5 -0
  199. package/lib/utils/options.d.ts +220 -0
  200. package/lib/utils/qrcode.d.ts +8 -0
  201. package/lib/utils/scan-validator-node.d.ts +15 -0
  202. package/lib/utils/scan-validators/abstract-scan-validator.d.ts +43 -0
  203. package/lib/utils/scan-validators/zbar-scan-validator.d.ts +8 -0
  204. package/lib/utils/scan-validators/zxing-canvas-scan-validator.d.ts +10 -0
  205. package/lib/utils/scan-validators/zxing-scan-validator.d.ts +8 -0
  206. package/lib/utils/svg.d.ts +2 -0
  207. package/lib/utils/token-validator.d.ts +19 -0
  208. package/package.json +80 -0
@@ -0,0 +1,322 @@
1
+ # QRCode.js Examples
2
+ <a id="start"></a>
3
+
4
+ This document provides basic examples to help you get started with QRCode.js and understand its core features. For more complex scenarios, refer to the [Advanced Examples](./advanced-examples.md#start).
5
+
6
+ ---
7
+
8
+ ## Basic Usage
9
+
10
+ Here's a minimal example to generate a QR code and append it to the document:
11
+
12
+ ```javascript
13
+ // Import the library
14
+ import { QRCodeJs, Options } from '@qr-platform/qr-code.js';
15
+ // In Node.js: import { QRCodeJs } from '@qr-platform/qr-code.js/node';
16
+
17
+ // Basic options - 'data' is required
18
+ const options: Options = {
19
+ data: 'https://example.com'
20
+ };
21
+
22
+ // Create the QR code instance
23
+ const qrCode = new QRCodeJs(options);
24
+
25
+ // Append the generated SVG to your document (in browser)
26
+ const container = document.getElementById('qr-container');
27
+ if (container && qrCode.svgElement) {
28
+ container.appendChild(qrCode.svgElement);
29
+ } else if (!container) {
30
+ console.error("Container element not found.");
31
+ } else {
32
+ console.error("SVG element not generated.");
33
+ // Handle SVG generation for Node.js if needed (e.g., serialize to string)
34
+ // qrCode.serialize().then(svgString => { /* save string */ });
35
+ }
36
+ ```
37
+
38
+ ---
39
+
40
+ ## Examples by Option Group
41
+
42
+ ### Core Options
43
+
44
+ Demonstrating fundamental settings like data, shape, and error correction.
45
+
46
+ **Example 1: Minimal QR Code**
47
+
48
+ ```javascript
49
+ // filepath: /Users/kurdin/projects/qr-platform/qr-code-js/docs/examples.md
50
+ const qrMinimal = new QRCodeJs({
51
+ data: 'Just the data!'
52
+ });
53
+ qrMinimal.append(document.getElementById('minimal-qr-container'));
54
+ ```
55
+
56
+ **Example 2: Circle Shape**
57
+
58
+ ```javascript
59
+ // filepath: /Users/kurdin/projects/qr-platform/qr-code-js/docs/examples.md
60
+ const qrCircle = new QRCodeJs({
61
+ data: 'https://example.com/circle',
62
+ shape: 'circle' // Make the QR code boundary circular
63
+ });
64
+ qrCircle.append(document.getElementById('circle-qr-container'));
65
+ ```
66
+
67
+ **Example 3: High Error Correction**
68
+
69
+ ```javascript
70
+ // filepath: /Users/kurdin/projects/qr-platform/qr-code-js/docs/examples.md
71
+ const qrHighEC = new QRCodeJs({
72
+ data: 'Important Data',
73
+ qrOptions: {
74
+ errorCorrectionLevel: 'H' // Use 'H' for highest redundancy
75
+ }
76
+ });
77
+ qrHighEC.append(document.getElementById('high-ec-qr-container'));
78
+ ```
79
+
80
+ ---
81
+
82
+ ### Layout Options
83
+
84
+ Controlling margin, scale, and offsets.
85
+
86
+ **Example 1: Adding Margin**
87
+
88
+ ```javascript
89
+ // filepath: /Users/kurdin/projects/qr-platform/qr-code-js/docs/examples.md
90
+ const qrMargin = new QRCodeJs({
91
+ data: 'With Margin',
92
+ margin: 20 // Add a 20px quiet zone around the QR code
93
+ });
94
+ qrMargin.append(document.getElementById('margin-qr-container'));
95
+ ```
96
+
97
+ **Example 2: Scaling Down**
98
+
99
+ ```javascript
100
+ // filepath: /Users/kurdin/projects/qr-platform/qr-code-js/docs/examples.md
101
+ const qrScaled = new QRCodeJs({
102
+ data: 'Scaled Down',
103
+ scale: 0.8 // Make the QR code 80% of its container/border size
104
+ });
105
+ qrScaled.append(document.getElementById('scaled-qr-container'));
106
+ ```
107
+
108
+ ---
109
+
110
+ ### Styling Options - Dots
111
+
112
+ Changing the appearance of the data dots.
113
+
114
+ **Example 1: Rounded Dots**
115
+
116
+ ```javascript
117
+ // filepath: /Users/kurdin/projects/qr-platform/qr-code-js/docs/examples.md
118
+ const qrRoundedDots = new QRCodeJs({
119
+ data: 'Rounded Dots',
120
+ dotsOptions: {
121
+ type: 'rounded',
122
+ color: '#007BFF' // Blue rounded dots
123
+ }
124
+ });
125
+ qrRoundedDots.append(document.getElementById('rounded-dots-container'));
126
+ ```
127
+
128
+ **Example 2: Dot Style Dots**
129
+
130
+ ```javascript
131
+ // filepath: /Users/kurdin/projects/qr-platform/qr-code-js/docs/examples.md
132
+ const qrDotDots = new QRCodeJs({
133
+ data: 'Dot Style Dots',
134
+ dotsOptions: {
135
+ type: 'dot',
136
+ color: '#DC3545' // Red circular dots
137
+ }
138
+ });
139
+ qrDotDots.append(document.getElementById('dot-dots-container'));
140
+ ```
141
+
142
+ ---
143
+
144
+ ### Styling Options - Corner Squares
145
+
146
+ Customizing the large corner squares.
147
+
148
+ ```javascript
149
+ // filepath: /Users/kurdin/projects/qr-platform/qr-code-js/docs/examples.md
150
+ const qrStyledCorners = new QRCodeJs({
151
+ data: 'Styled Corners',
152
+ dotsOptions: { color: '#333' }, // Standard dots
153
+ cornersSquareOptions: {
154
+ type: 'dot', // Use 'dot' shape for the large squares
155
+ color: '#FFC107' // Amber color for corners
156
+ }
157
+ });
158
+ qrStyledCorners.append(document.getElementById('styled-corners-container'));
159
+ ```
160
+
161
+ ---
162
+
163
+ ### Styling Options - Corner Dots
164
+
165
+ Customizing the small dots inside the corner squares.
166
+
167
+ ```javascript
168
+ // filepath: /Users/kurdin/projects/qr-platform/qr-code-js/docs/examples.md
169
+ const qrStyledCornerDots = new QRCodeJs({
170
+ data: 'Styled Corner Dots',
171
+ dotsOptions: { color: '#4CAF50' }, // Green dots
172
+ cornersSquareOptions: { type: 'square', color: '#4CAF50' }, // Green squares
173
+ cornersDotOptions: {
174
+ type: 'dot', // Use 'dot' shape for the inner dots
175
+ color: '#FFFFFF' // White inner dots
176
+ }
177
+ });
178
+ qrStyledCornerDots.append(document.getElementById('styled-corner-dots-container'));
179
+ ```
180
+
181
+ ---
182
+
183
+ ### Background Options
184
+
185
+ Modifying the background color and shape.
186
+
187
+ **Example 1: Colored Background**
188
+
189
+ ```javascript
190
+ // filepath: /Users/kurdin/projects/qr-platform/qr-code-js/docs/examples.md
191
+ const qrColoredBg = new QRCodeJs({
192
+ data: 'Colored Background',
193
+ dotsOptions: { color: '#FFFFFF' }, // White dots for contrast
194
+ backgroundOptions: {
195
+ color: '#673AB7' // Deep Purple background
196
+ }
197
+ });
198
+ qrColoredBg.append(document.getElementById('colored-bg-container'));
199
+ ```
200
+
201
+ **Example 2: Rounded Background**
202
+
203
+ ```javascript
204
+ // filepath: /Users/kurdin/projects/qr-platform/qr-code-js/docs/examples.md
205
+ const qrRoundedBg = new QRCodeJs({
206
+ data: 'Rounded Background',
207
+ backgroundOptions: {
208
+ color: '#E0E0E0', // Light grey background
209
+ round: 0.5 // 50% corner rounding
210
+ }
211
+ });
212
+ qrRoundedBg.append(document.getElementById('rounded-bg-container'));
213
+ ```
214
+
215
+ **Example 3: Transparent Background**
216
+
217
+ ```javascript
218
+ // filepath: /Users/kurdin/projects/qr-platform/qr-code-js/docs/examples.md
219
+ const qrTransparentBg = new QRCodeJs({
220
+ data: 'Transparent Background',
221
+ backgroundOptions: false // Disable the background element
222
+ });
223
+ qrTransparentBg.append(document.getElementById('transparent-bg-container'));
224
+ ```
225
+
226
+ ---
227
+
228
+ ### Gradient Usage
229
+
230
+ Applying simple gradients.
231
+
232
+ **Example 1: Linear Gradient on Dots**
233
+
234
+ ```javascript
235
+ // filepath: /Users/kurdin/projects/qr-platform/qr-code-js/docs/examples.md
236
+ const qrGradientDots = new QRCodeJs({
237
+ data: 'Gradient Dots',
238
+ dotsOptions: {
239
+ type: 'rounded',
240
+ gradient: {
241
+ type: 'linear',
242
+ rotation: Math.PI / 4, // 45 degrees
243
+ colorStops: [
244
+ { offset: 0, color: '#28A745' }, // Green start
245
+ { offset: 1, color: '#20C997' } // Teal end
246
+ ]
247
+ }
248
+ }
249
+ });
250
+ qrGradientDots.append(document.getElementById('gradient-dots-container'));
251
+ ```
252
+
253
+ **Example 2: Radial Gradient on Background**
254
+
255
+ ```javascript
256
+ // filepath: /Users/kurdin/projects/qr-platform/qr-code-js/docs/examples.md
257
+ const qrGradientBg = new QRCodeJs({
258
+ data: 'Gradient Background',
259
+ backgroundOptions: {
260
+ gradient: {
261
+ type: 'radial',
262
+ colorStops: [
263
+ { offset: 0, color: '#FFFFFF' }, // White center
264
+ { offset: 1, color: '#F8F9FA' } // Light grey edge
265
+ ]
266
+ }
267
+ }
268
+ });
269
+ qrGradientBg.append(document.getElementById('gradient-bg-container'));
270
+ ```
271
+
272
+ ---
273
+
274
+ ### Image Embedding
275
+
276
+ Adding a simple logo.
277
+
278
+ ```javascript
279
+ // filepath: /Users/kurdin/projects/qr-platform/qr-code-js/docs/examples.md
280
+ const qrWithLogo = new QRCodeJs({
281
+ data: 'QR with Logo',
282
+ qrOptions: { errorCorrectionLevel: 'Q' }, // Use Q or H with images
283
+ image: 'https://via.placeholder.com/50', // Placeholder image URL
284
+ imageOptions: {
285
+ imageSize: 0.3, // 30% size relative to QR code
286
+ margin: 1 // 1 dot margin around logo
287
+ }
288
+ });
289
+ qrWithLogo.append(document.getElementById('logo-qr-container'));
290
+ ```
291
+
292
+ ---
293
+
294
+ ### Border Options (Free Version)
295
+
296
+ Adding a basic border (includes "QR-Platform" branding).
297
+
298
+ ```javascript
299
+ // filepath: /Users/kurdin/projects/qr-platform/qr-code-js/docs/examples.md
300
+ const qrFreeBorder = new QRCodeJs({
301
+ data: 'Free Border Example',
302
+ borderOptions: {
303
+ hasBorder: true,
304
+ thickness: 30, // Border thickness in pixels
305
+ color: '#6C757D', // Grey border color
306
+ radius: '10%' // Slightly rounded corners
307
+ // Note: Bottom border will show "QR-Platform" branding automatically
308
+ }
309
+ });
310
+ qrFreeBorder.append(document.getElementById('free-border-container'));
311
+ ```
312
+ *For custom border text and advanced features like inner/outer borders, a [Premium License](./license-management.md#start) is required.*
313
+
314
+ ---
315
+
316
+ ### See Also
317
+ - [QRCode.js Documentation](./documentation.md#start)
318
+ - [Usage Guide](./usage-guide.md#start)
319
+ - [API Reference Guide](./api-reference-guide.md#start)
320
+ - [TypeScript Types and Definitions](./typescript-types-definitions.md#start)
321
+ - [License Management](./license-management.md#start)
322
+ - [Advanced Examples](./advanced-examples.md#start)