react-id-card-generator 1.0.0
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.
- package/README.md +214 -0
- package/dist/cjs/_virtual/_commonjsHelpers.js +11 -0
- package/dist/cjs/_virtual/_commonjsHelpers.js.map +1 -0
- package/dist/cjs/_virtual/index.js +6 -0
- package/dist/cjs/_virtual/index.js.map +1 -0
- package/dist/cjs/_virtual/make-built-in.js +6 -0
- package/dist/cjs/_virtual/make-built-in.js.map +1 -0
- package/dist/cjs/_virtual/new-promise-capability.js +6 -0
- package/dist/cjs/_virtual/new-promise-capability.js.map +1 -0
- package/dist/cjs/_virtual/object-define-properties.js +6 -0
- package/dist/cjs/_virtual/object-define-properties.js.map +1 -0
- package/dist/cjs/_virtual/object-define-property.js +6 -0
- package/dist/cjs/_virtual/object-define-property.js.map +1 -0
- package/dist/cjs/_virtual/object-get-own-property-descriptor.js +6 -0
- package/dist/cjs/_virtual/object-get-own-property-descriptor.js.map +1 -0
- package/dist/cjs/_virtual/object-get-own-property-names.js +6 -0
- package/dist/cjs/_virtual/object-get-own-property-names.js.map +1 -0
- package/dist/cjs/_virtual/object-get-own-property-symbols.js +6 -0
- package/dist/cjs/_virtual/object-get-own-property-symbols.js.map +1 -0
- package/dist/cjs/_virtual/object-property-is-enumerable.js +6 -0
- package/dist/cjs/_virtual/object-property-is-enumerable.js.map +1 -0
- package/dist/cjs/_virtual/performance-now.js +6 -0
- package/dist/cjs/_virtual/performance-now.js.map +1 -0
- package/dist/cjs/_virtual/qrious.js +6 -0
- package/dist/cjs/_virtual/qrious.js.map +1 -0
- package/dist/cjs/_virtual/shared-store.js +6 -0
- package/dist/cjs/_virtual/shared-store.js.map +1 -0
- package/dist/cjs/components/IDCardDesigner.js +283 -0
- package/dist/cjs/components/IDCardDesigner.js.map +1 -0
- package/dist/cjs/components/IDCardGenerator.js +139 -0
- package/dist/cjs/components/IDCardGenerator.js.map +1 -0
- package/dist/cjs/components/IDCardPreview.js +168 -0
- package/dist/cjs/components/IDCardPreview.js.map +1 -0
- package/dist/cjs/core/exportUtils.js +155 -0
- package/dist/cjs/core/exportUtils.js.map +1 -0
- package/dist/cjs/core/qrUtils.js +64 -0
- package/dist/cjs/core/qrUtils.js.map +1 -0
- package/dist/cjs/hooks/useFieldMapping.js +148 -0
- package/dist/cjs/hooks/useFieldMapping.js.map +1 -0
- package/dist/cjs/hooks/useIDCardExport.js +81 -0
- package/dist/cjs/hooks/useIDCardExport.js.map +1 -0
- package/dist/cjs/hooks/useIDCardTemplate.js +155 -0
- package/dist/cjs/hooks/useIDCardTemplate.js.map +1 -0
- package/dist/cjs/index.js +48 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js +30 -0
- package/dist/cjs/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js.map +1 -0
- package/dist/cjs/node_modules/@babel/runtime/helpers/esm/defineProperty.js +15 -0
- package/dist/cjs/node_modules/@babel/runtime/helpers/esm/defineProperty.js.map +1 -0
- package/dist/cjs/node_modules/@babel/runtime/helpers/esm/toPrimitive.js +17 -0
- package/dist/cjs/node_modules/@babel/runtime/helpers/esm/toPrimitive.js.map +1 -0
- package/dist/cjs/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js +12 -0
- package/dist/cjs/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js.map +1 -0
- package/dist/cjs/node_modules/@babel/runtime/helpers/esm/typeof.js +14 -0
- package/dist/cjs/node_modules/@babel/runtime/helpers/esm/typeof.js.map +1 -0
- package/dist/cjs/node_modules/canvg/lib/index.es.js +6645 -0
- package/dist/cjs/node_modules/canvg/lib/index.es.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/a-callable.js +18 -0
- package/dist/cjs/node_modules/core-js/internals/a-callable.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/a-constructor.js +18 -0
- package/dist/cjs/node_modules/core-js/internals/a-constructor.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/a-possible-prototype.js +16 -0
- package/dist/cjs/node_modules/core-js/internals/a-possible-prototype.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/add-to-unscopables.js +30 -0
- package/dist/cjs/node_modules/core-js/internals/add-to-unscopables.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/advance-string-index.js +14 -0
- package/dist/cjs/node_modules/core-js/internals/advance-string-index.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/an-instance.js +15 -0
- package/dist/cjs/node_modules/core-js/internals/an-instance.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/an-object.js +17 -0
- package/dist/cjs/node_modules/core-js/internals/an-object.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/array-includes.js +39 -0
- package/dist/cjs/node_modules/core-js/internals/array-includes.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/array-method-is-strict.js +16 -0
- package/dist/cjs/node_modules/core-js/internals/array-method-is-strict.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/array-reduce.js +51 -0
- package/dist/cjs/node_modules/core-js/internals/array-reduce.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/array-slice.js +10 -0
- package/dist/cjs/node_modules/core-js/internals/array-slice.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/check-correctness-of-iteration.js +49 -0
- package/dist/cjs/node_modules/core-js/internals/check-correctness-of-iteration.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/classof-raw.js +15 -0
- package/dist/cjs/node_modules/core-js/internals/classof-raw.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/classof.js +39 -0
- package/dist/cjs/node_modules/core-js/internals/classof.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/copy-constructor-properties.js +28 -0
- package/dist/cjs/node_modules/core-js/internals/copy-constructor-properties.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/correct-is-regexp-logic.js +22 -0
- package/dist/cjs/node_modules/core-js/internals/correct-is-regexp-logic.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/correct-prototype-getter.js +15 -0
- package/dist/cjs/node_modules/core-js/internals/correct-prototype-getter.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/create-iter-result-object.js +10 -0
- package/dist/cjs/node_modules/core-js/internals/create-iter-result-object.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/create-non-enumerable-property.js +20 -0
- package/dist/cjs/node_modules/core-js/internals/create-non-enumerable-property.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/create-property-descriptor.js +13 -0
- package/dist/cjs/node_modules/core-js/internals/create-property-descriptor.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/define-built-in-accessor.js +17 -0
- package/dist/cjs/node_modules/core-js/internals/define-built-in-accessor.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/define-built-in.js +38 -0
- package/dist/cjs/node_modules/core-js/internals/define-built-in.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/define-global-property.js +19 -0
- package/dist/cjs/node_modules/core-js/internals/define-global-property.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/descriptors.js +14 -0
- package/dist/cjs/node_modules/core-js/internals/descriptors.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/document-create-element.js +18 -0
- package/dist/cjs/node_modules/core-js/internals/document-create-element.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/dom-iterables.js +40 -0
- package/dist/cjs/node_modules/core-js/internals/dom-iterables.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/dom-token-list-prototype.js +14 -0
- package/dist/cjs/node_modules/core-js/internals/dom-token-list-prototype.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/enum-bug-keys.js +15 -0
- package/dist/cjs/node_modules/core-js/internals/enum-bug-keys.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/environment-is-ios-pebble.js +10 -0
- package/dist/cjs/node_modules/core-js/internals/environment-is-ios-pebble.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/environment-is-ios.js +11 -0
- package/dist/cjs/node_modules/core-js/internals/environment-is-ios.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/environment-is-node.js +10 -0
- package/dist/cjs/node_modules/core-js/internals/environment-is-node.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/environment-is-webos-webkit.js +10 -0
- package/dist/cjs/node_modules/core-js/internals/environment-is-webos-webkit.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/environment-user-agent.js +13 -0
- package/dist/cjs/node_modules/core-js/internals/environment-user-agent.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/environment-v8-version.js +35 -0
- package/dist/cjs/node_modules/core-js/internals/environment-v8-version.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/environment.js +29 -0
- package/dist/cjs/node_modules/core-js/internals/environment.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/export.js +68 -0
- package/dist/cjs/node_modules/core-js/internals/export.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/fails.js +12 -0
- package/dist/cjs/node_modules/core-js/internals/fails.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js +90 -0
- package/dist/cjs/node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/function-apply.js +17 -0
- package/dist/cjs/node_modules/core-js/internals/function-apply.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/function-bind-context.js +22 -0
- package/dist/cjs/node_modules/core-js/internals/function-bind-context.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/function-bind-native.js +15 -0
- package/dist/cjs/node_modules/core-js/internals/function-bind-native.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/function-call.js +14 -0
- package/dist/cjs/node_modules/core-js/internals/function-call.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/function-name.js +24 -0
- package/dist/cjs/node_modules/core-js/internals/function-name.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/function-uncurry-this-accessor.js +17 -0
- package/dist/cjs/node_modules/core-js/internals/function-uncurry-this-accessor.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/function-uncurry-this-clause.js +17 -0
- package/dist/cjs/node_modules/core-js/internals/function-uncurry-this-clause.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/function-uncurry-this.js +19 -0
- package/dist/cjs/node_modules/core-js/internals/function-uncurry-this.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/get-built-in.js +18 -0
- package/dist/cjs/node_modules/core-js/internals/get-built-in.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/get-iterator-method.js +24 -0
- package/dist/cjs/node_modules/core-js/internals/get-iterator-method.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/get-iterator.js +24 -0
- package/dist/cjs/node_modules/core-js/internals/get-iterator.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/get-method.js +17 -0
- package/dist/cjs/node_modules/core-js/internals/get-method.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/get-substitution.js +53 -0
- package/dist/cjs/node_modules/core-js/internals/get-substitution.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/global-this.js +22 -0
- package/dist/cjs/node_modules/core-js/internals/global-this.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/has-own-property.js +19 -0
- package/dist/cjs/node_modules/core-js/internals/has-own-property.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/hidden-keys.js +6 -0
- package/dist/cjs/node_modules/core-js/internals/hidden-keys.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/host-report-errors.js +11 -0
- package/dist/cjs/node_modules/core-js/internals/host-report-errors.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/html.js +10 -0
- package/dist/cjs/node_modules/core-js/internals/html.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/ie8-dom-define.js +20 -0
- package/dist/cjs/node_modules/core-js/internals/ie8-dom-define.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/indexed-object.js +24 -0
- package/dist/cjs/node_modules/core-js/internals/indexed-object.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/inspect-source.js +23 -0
- package/dist/cjs/node_modules/core-js/internals/inspect-source.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/internal-state.js +84 -0
- package/dist/cjs/node_modules/core-js/internals/internal-state.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/is-array-iterator-method.js +18 -0
- package/dist/cjs/node_modules/core-js/internals/is-array-iterator-method.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/is-array.js +15 -0
- package/dist/cjs/node_modules/core-js/internals/is-array.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/is-callable.js +16 -0
- package/dist/cjs/node_modules/core-js/internals/is-callable.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/is-constructor.js +63 -0
- package/dist/cjs/node_modules/core-js/internals/is-constructor.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/is-forced.js +30 -0
- package/dist/cjs/node_modules/core-js/internals/is-forced.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/is-null-or-undefined.js +10 -0
- package/dist/cjs/node_modules/core-js/internals/is-null-or-undefined.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/is-object.js +12 -0
- package/dist/cjs/node_modules/core-js/internals/is-object.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/is-possible-prototype.js +12 -0
- package/dist/cjs/node_modules/core-js/internals/is-possible-prototype.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/is-regexp.js +21 -0
- package/dist/cjs/node_modules/core-js/internals/is-regexp.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/is-symbol.js +23 -0
- package/dist/cjs/node_modules/core-js/internals/is-symbol.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/iterate.js +84 -0
- package/dist/cjs/node_modules/core-js/internals/iterate.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/iterator-close.js +32 -0
- package/dist/cjs/node_modules/core-js/internals/iterator-close.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/iterator-create-constructor.js +26 -0
- package/dist/cjs/node_modules/core-js/internals/iterator-create-constructor.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/iterator-define.js +118 -0
- package/dist/cjs/node_modules/core-js/internals/iterator-define.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/iterators-core.js +58 -0
- package/dist/cjs/node_modules/core-js/internals/iterators-core.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/iterators.js +6 -0
- package/dist/cjs/node_modules/core-js/internals/iterators.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/length-of-array-like.js +14 -0
- package/dist/cjs/node_modules/core-js/internals/length-of-array-like.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/make-built-in.js +71 -0
- package/dist/cjs/node_modules/core-js/internals/make-built-in.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/math-trunc.js +15 -0
- package/dist/cjs/node_modules/core-js/internals/math-trunc.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/microtask.js +93 -0
- package/dist/cjs/node_modules/core-js/internals/microtask.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/new-promise-capability.js +28 -0
- package/dist/cjs/node_modules/core-js/internals/new-promise-capability.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/not-a-regexp.js +16 -0
- package/dist/cjs/node_modules/core-js/internals/not-a-regexp.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/object-create.js +98 -0
- package/dist/cjs/node_modules/core-js/internals/object-create.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/object-define-properties.js +34 -0
- package/dist/cjs/node_modules/core-js/internals/object-define-properties.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/object-define-property.js +55 -0
- package/dist/cjs/node_modules/core-js/internals/object-define-property.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/object-get-own-property-descriptor.js +38 -0
- package/dist/cjs/node_modules/core-js/internals/object-get-own-property-descriptor.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/object-get-own-property-names.js +20 -0
- package/dist/cjs/node_modules/core-js/internals/object-get-own-property-names.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/object-get-own-property-symbols.js +9 -0
- package/dist/cjs/node_modules/core-js/internals/object-get-own-property-symbols.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/object-get-prototype-of.js +32 -0
- package/dist/cjs/node_modules/core-js/internals/object-get-prototype-of.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/object-is-prototype-of.js +10 -0
- package/dist/cjs/node_modules/core-js/internals/object-is-prototype-of.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/object-keys-internal.js +31 -0
- package/dist/cjs/node_modules/core-js/internals/object-keys-internal.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/object-keys.js +17 -0
- package/dist/cjs/node_modules/core-js/internals/object-keys.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/object-property-is-enumerable.js +20 -0
- package/dist/cjs/node_modules/core-js/internals/object-property-is-enumerable.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/object-set-prototype-of.js +38 -0
- package/dist/cjs/node_modules/core-js/internals/object-set-prototype-of.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/ordinary-to-primitive.js +24 -0
- package/dist/cjs/node_modules/core-js/internals/ordinary-to-primitive.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/own-keys.js +27 -0
- package/dist/cjs/node_modules/core-js/internals/own-keys.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/path.js +10 -0
- package/dist/cjs/node_modules/core-js/internals/path.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/perform.js +12 -0
- package/dist/cjs/node_modules/core-js/internals/perform.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/promise-constructor-detection.js +57 -0
- package/dist/cjs/node_modules/core-js/internals/promise-constructor-detection.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/promise-native-constructor.js +10 -0
- package/dist/cjs/node_modules/core-js/internals/promise-native-constructor.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/promise-resolve.js +22 -0
- package/dist/cjs/node_modules/core-js/internals/promise-resolve.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/promise-statics-incorrect-iteration.js +16 -0
- package/dist/cjs/node_modules/core-js/internals/promise-statics-incorrect-iteration.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/queue.js +29 -0
- package/dist/cjs/node_modules/core-js/internals/queue.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/regexp-exec-abstract.js +31 -0
- package/dist/cjs/node_modules/core-js/internals/regexp-exec-abstract.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/regexp-exec.js +132 -0
- package/dist/cjs/node_modules/core-js/internals/regexp-exec.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/regexp-flags-detection.js +54 -0
- package/dist/cjs/node_modules/core-js/internals/regexp-flags-detection.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/regexp-flags.js +24 -0
- package/dist/cjs/node_modules/core-js/internals/regexp-flags.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/regexp-get-flags.js +26 -0
- package/dist/cjs/node_modules/core-js/internals/regexp-get-flags.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/regexp-sticky-helpers.js +37 -0
- package/dist/cjs/node_modules/core-js/internals/regexp-sticky-helpers.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/regexp-unsupported-dot-all.js +18 -0
- package/dist/cjs/node_modules/core-js/internals/regexp-unsupported-dot-all.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/regexp-unsupported-ncg.js +19 -0
- package/dist/cjs/node_modules/core-js/internals/regexp-unsupported-ncg.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/require-object-coercible.js +17 -0
- package/dist/cjs/node_modules/core-js/internals/require-object-coercible.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/safe-get-built-in.js +20 -0
- package/dist/cjs/node_modules/core-js/internals/safe-get-built-in.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/set-species.js +27 -0
- package/dist/cjs/node_modules/core-js/internals/set-species.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/set-to-string-tag.js +22 -0
- package/dist/cjs/node_modules/core-js/internals/set-to-string-tag.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/shared-key.js +16 -0
- package/dist/cjs/node_modules/core-js/internals/shared-key.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/shared-store.js +24 -0
- package/dist/cjs/node_modules/core-js/internals/shared-store.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/shared.js +12 -0
- package/dist/cjs/node_modules/core-js/internals/shared.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/species-constructor.js +24 -0
- package/dist/cjs/node_modules/core-js/internals/species-constructor.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/string-multibyte.js +43 -0
- package/dist/cjs/node_modules/core-js/internals/string-multibyte.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/string-trim-forced.js +24 -0
- package/dist/cjs/node_modules/core-js/internals/string-trim-forced.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/string-trim.js +34 -0
- package/dist/cjs/node_modules/core-js/internals/string-trim.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/symbol-constructor-detection.js +27 -0
- package/dist/cjs/node_modules/core-js/internals/symbol-constructor-detection.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/task.js +132 -0
- package/dist/cjs/node_modules/core-js/internals/task.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/to-absolute-index.js +19 -0
- package/dist/cjs/node_modules/core-js/internals/to-absolute-index.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/to-indexed-object.js +15 -0
- package/dist/cjs/node_modules/core-js/internals/to-indexed-object.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/to-integer-or-infinity.js +16 -0
- package/dist/cjs/node_modules/core-js/internals/to-integer-or-infinity.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/to-length.js +17 -0
- package/dist/cjs/node_modules/core-js/internals/to-length.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/to-object.js +16 -0
- package/dist/cjs/node_modules/core-js/internals/to-object.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/to-primitive.js +37 -0
- package/dist/cjs/node_modules/core-js/internals/to-primitive.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/to-property-key.js +17 -0
- package/dist/cjs/node_modules/core-js/internals/to-property-key.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/to-string-tag-support.js +15 -0
- package/dist/cjs/node_modules/core-js/internals/to-string-tag-support.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/to-string.js +15 -0
- package/dist/cjs/node_modules/core-js/internals/to-string.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/try-to-string.js +14 -0
- package/dist/cjs/node_modules/core-js/internals/try-to-string.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/uid.js +16 -0
- package/dist/cjs/node_modules/core-js/internals/uid.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/use-symbol-as-uid.js +13 -0
- package/dist/cjs/node_modules/core-js/internals/use-symbol-as-uid.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/v8-prototype-define-bug.js +20 -0
- package/dist/cjs/node_modules/core-js/internals/v8-prototype-define-bug.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/validate-arguments-length.js +11 -0
- package/dist/cjs/node_modules/core-js/internals/validate-arguments-length.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/weak-map-basic-detection.js +14 -0
- package/dist/cjs/node_modules/core-js/internals/weak-map-basic-detection.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/well-known-symbol.js +30 -0
- package/dist/cjs/node_modules/core-js/internals/well-known-symbol.js.map +1 -0
- package/dist/cjs/node_modules/core-js/internals/whitespaces.js +8 -0
- package/dist/cjs/node_modules/core-js/internals/whitespaces.js.map +1 -0
- package/dist/cjs/node_modules/core-js/modules/es.array.index-of.js +30 -0
- package/dist/cjs/node_modules/core-js/modules/es.array.index-of.js.map +1 -0
- package/dist/cjs/node_modules/core-js/modules/es.array.iterator.js +75 -0
- package/dist/cjs/node_modules/core-js/modules/es.array.iterator.js.map +1 -0
- package/dist/cjs/node_modules/core-js/modules/es.array.reduce.js +28 -0
- package/dist/cjs/node_modules/core-js/modules/es.array.reduce.js.map +1 -0
- package/dist/cjs/node_modules/core-js/modules/es.array.reverse.js +25 -0
- package/dist/cjs/node_modules/core-js/modules/es.array.reverse.js.map +1 -0
- package/dist/cjs/node_modules/core-js/modules/es.promise.all.js +50 -0
- package/dist/cjs/node_modules/core-js/modules/es.promise.all.js.map +1 -0
- package/dist/cjs/node_modules/core-js/modules/es.promise.catch.js +34 -0
- package/dist/cjs/node_modules/core-js/modules/es.promise.catch.js.map +1 -0
- package/dist/cjs/node_modules/core-js/modules/es.promise.constructor.js +319 -0
- package/dist/cjs/node_modules/core-js/modules/es.promise.constructor.js.map +1 -0
- package/dist/cjs/node_modules/core-js/modules/es.promise.race.js +37 -0
- package/dist/cjs/node_modules/core-js/modules/es.promise.race.js.map +1 -0
- package/dist/cjs/node_modules/core-js/modules/es.promise.reject.js +22 -0
- package/dist/cjs/node_modules/core-js/modules/es.promise.reject.js.map +1 -0
- package/dist/cjs/node_modules/core-js/modules/es.promise.resolve.js +23 -0
- package/dist/cjs/node_modules/core-js/modules/es.promise.resolve.js.map +1 -0
- package/dist/cjs/node_modules/core-js/modules/es.regexp.exec.js +14 -0
- package/dist/cjs/node_modules/core-js/modules/es.regexp.exec.js.map +1 -0
- package/dist/cjs/node_modules/core-js/modules/es.regexp.to-string.js +35 -0
- package/dist/cjs/node_modules/core-js/modules/es.regexp.to-string.js.map +1 -0
- package/dist/cjs/node_modules/core-js/modules/es.string.ends-with.js +45 -0
- package/dist/cjs/node_modules/core-js/modules/es.string.ends-with.js.map +1 -0
- package/dist/cjs/node_modules/core-js/modules/es.string.includes.js +30 -0
- package/dist/cjs/node_modules/core-js/modules/es.string.includes.js.map +1 -0
- package/dist/cjs/node_modules/core-js/modules/es.string.match.js +69 -0
- package/dist/cjs/node_modules/core-js/modules/es.string.match.js.map +1 -0
- package/dist/cjs/node_modules/core-js/modules/es.string.replace.js +165 -0
- package/dist/cjs/node_modules/core-js/modules/es.string.replace.js.map +1 -0
- package/dist/cjs/node_modules/core-js/modules/es.string.split.js +128 -0
- package/dist/cjs/node_modules/core-js/modules/es.string.split.js.map +1 -0
- package/dist/cjs/node_modules/core-js/modules/es.string.starts-with.js +43 -0
- package/dist/cjs/node_modules/core-js/modules/es.string.starts-with.js.map +1 -0
- package/dist/cjs/node_modules/core-js/modules/es.string.trim.js +18 -0
- package/dist/cjs/node_modules/core-js/modules/es.string.trim.js.map +1 -0
- package/dist/cjs/node_modules/core-js/modules/web.dom-collections.iterator.js +47 -0
- package/dist/cjs/node_modules/core-js/modules/web.dom-collections.iterator.js.map +1 -0
- package/dist/cjs/node_modules/dompurify/dist/purify.es.js +1533 -0
- package/dist/cjs/node_modules/dompurify/dist/purify.es.js.map +1 -0
- package/dist/cjs/node_modules/fflate/esm/browser.js +807 -0
- package/dist/cjs/node_modules/fflate/esm/browser.js.map +1 -0
- package/dist/cjs/node_modules/html2canvas/dist/html2canvas.esm.js +7824 -0
- package/dist/cjs/node_modules/html2canvas/dist/html2canvas.esm.js.map +1 -0
- package/dist/cjs/node_modules/jspdf/dist/jspdf.es.min.js +358 -0
- package/dist/cjs/node_modules/jspdf/dist/jspdf.es.min.js.map +1 -0
- package/dist/cjs/node_modules/performance-now/lib/performance-now.js +46 -0
- package/dist/cjs/node_modules/performance-now/lib/performance-now.js.map +1 -0
- package/dist/cjs/node_modules/qrious/dist/qrious.js +2374 -0
- package/dist/cjs/node_modules/qrious/dist/qrious.js.map +1 -0
- package/dist/cjs/node_modules/raf/index.js +87 -0
- package/dist/cjs/node_modules/raf/index.js.map +1 -0
- package/dist/cjs/node_modules/rgbcolor/index.js +311 -0
- package/dist/cjs/node_modules/rgbcolor/index.js.map +1 -0
- package/dist/cjs/node_modules/stackblur-canvas/dist/stackblur-es.js +384 -0
- package/dist/cjs/node_modules/stackblur-canvas/dist/stackblur-es.js.map +1 -0
- package/dist/cjs/node_modules/svg-pathdata/lib/SVGPathData.module.js +23 -0
- package/dist/cjs/node_modules/svg-pathdata/lib/SVGPathData.module.js.map +1 -0
- package/dist/cjs/storage/templateStorage.js +154 -0
- package/dist/cjs/storage/templateStorage.js.map +1 -0
- package/dist/cjs/styles.css +1 -0
- package/dist/cjs/utils/styleUtils.js +98 -0
- package/dist/cjs/utils/styleUtils.js.map +1 -0
- package/dist/cjs/utils/validators.js +144 -0
- package/dist/cjs/utils/validators.js.map +1 -0
- package/dist/esm/_virtual/_commonjsHelpers.js +8 -0
- package/dist/esm/_virtual/_commonjsHelpers.js.map +1 -0
- package/dist/esm/_virtual/index.js +4 -0
- package/dist/esm/_virtual/index.js.map +1 -0
- package/dist/esm/_virtual/make-built-in.js +4 -0
- package/dist/esm/_virtual/make-built-in.js.map +1 -0
- package/dist/esm/_virtual/new-promise-capability.js +4 -0
- package/dist/esm/_virtual/new-promise-capability.js.map +1 -0
- package/dist/esm/_virtual/object-define-properties.js +4 -0
- package/dist/esm/_virtual/object-define-properties.js.map +1 -0
- package/dist/esm/_virtual/object-define-property.js +4 -0
- package/dist/esm/_virtual/object-define-property.js.map +1 -0
- package/dist/esm/_virtual/object-get-own-property-descriptor.js +4 -0
- package/dist/esm/_virtual/object-get-own-property-descriptor.js.map +1 -0
- package/dist/esm/_virtual/object-get-own-property-names.js +4 -0
- package/dist/esm/_virtual/object-get-own-property-names.js.map +1 -0
- package/dist/esm/_virtual/object-get-own-property-symbols.js +4 -0
- package/dist/esm/_virtual/object-get-own-property-symbols.js.map +1 -0
- package/dist/esm/_virtual/object-property-is-enumerable.js +4 -0
- package/dist/esm/_virtual/object-property-is-enumerable.js.map +1 -0
- package/dist/esm/_virtual/performance-now.js +4 -0
- package/dist/esm/_virtual/performance-now.js.map +1 -0
- package/dist/esm/_virtual/qrious.js +4 -0
- package/dist/esm/_virtual/qrious.js.map +1 -0
- package/dist/esm/_virtual/shared-store.js +4 -0
- package/dist/esm/_virtual/shared-store.js.map +1 -0
- package/dist/esm/components/IDCardDesigner.js +278 -0
- package/dist/esm/components/IDCardDesigner.js.map +1 -0
- package/dist/esm/components/IDCardGenerator.js +134 -0
- package/dist/esm/components/IDCardGenerator.js.map +1 -0
- package/dist/esm/components/IDCardPreview.js +163 -0
- package/dist/esm/components/IDCardPreview.js.map +1 -0
- package/dist/esm/core/exportUtils.js +151 -0
- package/dist/esm/core/exportUtils.js.map +1 -0
- package/dist/esm/core/qrUtils.js +60 -0
- package/dist/esm/core/qrUtils.js.map +1 -0
- package/dist/esm/hooks/useFieldMapping.js +146 -0
- package/dist/esm/hooks/useFieldMapping.js.map +1 -0
- package/dist/esm/hooks/useIDCardExport.js +79 -0
- package/dist/esm/hooks/useIDCardExport.js.map +1 -0
- package/dist/esm/hooks/useIDCardTemplate.js +153 -0
- package/dist/esm/hooks/useIDCardTemplate.js.map +1 -0
- package/dist/esm/index.js +12 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js +28 -0
- package/dist/esm/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js.map +1 -0
- package/dist/esm/node_modules/@babel/runtime/helpers/esm/defineProperty.js +13 -0
- package/dist/esm/node_modules/@babel/runtime/helpers/esm/defineProperty.js.map +1 -0
- package/dist/esm/node_modules/@babel/runtime/helpers/esm/toPrimitive.js +15 -0
- package/dist/esm/node_modules/@babel/runtime/helpers/esm/toPrimitive.js.map +1 -0
- package/dist/esm/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js +10 -0
- package/dist/esm/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js.map +1 -0
- package/dist/esm/node_modules/@babel/runtime/helpers/esm/typeof.js +12 -0
- package/dist/esm/node_modules/@babel/runtime/helpers/esm/typeof.js.map +1 -0
- package/dist/esm/node_modules/canvg/lib/index.es.js +6556 -0
- package/dist/esm/node_modules/canvg/lib/index.es.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/a-callable.js +16 -0
- package/dist/esm/node_modules/core-js/internals/a-callable.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/a-constructor.js +16 -0
- package/dist/esm/node_modules/core-js/internals/a-constructor.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/a-possible-prototype.js +14 -0
- package/dist/esm/node_modules/core-js/internals/a-possible-prototype.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/add-to-unscopables.js +28 -0
- package/dist/esm/node_modules/core-js/internals/add-to-unscopables.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/advance-string-index.js +12 -0
- package/dist/esm/node_modules/core-js/internals/advance-string-index.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/an-instance.js +13 -0
- package/dist/esm/node_modules/core-js/internals/an-instance.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/an-object.js +15 -0
- package/dist/esm/node_modules/core-js/internals/an-object.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/array-includes.js +37 -0
- package/dist/esm/node_modules/core-js/internals/array-includes.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/array-method-is-strict.js +14 -0
- package/dist/esm/node_modules/core-js/internals/array-method-is-strict.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/array-reduce.js +49 -0
- package/dist/esm/node_modules/core-js/internals/array-reduce.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/array-slice.js +8 -0
- package/dist/esm/node_modules/core-js/internals/array-slice.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/check-correctness-of-iteration.js +47 -0
- package/dist/esm/node_modules/core-js/internals/check-correctness-of-iteration.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/classof-raw.js +13 -0
- package/dist/esm/node_modules/core-js/internals/classof-raw.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/classof.js +37 -0
- package/dist/esm/node_modules/core-js/internals/classof.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/copy-constructor-properties.js +26 -0
- package/dist/esm/node_modules/core-js/internals/copy-constructor-properties.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/correct-is-regexp-logic.js +20 -0
- package/dist/esm/node_modules/core-js/internals/correct-is-regexp-logic.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/correct-prototype-getter.js +13 -0
- package/dist/esm/node_modules/core-js/internals/correct-prototype-getter.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/create-iter-result-object.js +8 -0
- package/dist/esm/node_modules/core-js/internals/create-iter-result-object.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/create-non-enumerable-property.js +18 -0
- package/dist/esm/node_modules/core-js/internals/create-non-enumerable-property.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/create-property-descriptor.js +11 -0
- package/dist/esm/node_modules/core-js/internals/create-property-descriptor.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/define-built-in-accessor.js +15 -0
- package/dist/esm/node_modules/core-js/internals/define-built-in-accessor.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/define-built-in.js +36 -0
- package/dist/esm/node_modules/core-js/internals/define-built-in.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/define-global-property.js +17 -0
- package/dist/esm/node_modules/core-js/internals/define-global-property.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/descriptors.js +12 -0
- package/dist/esm/node_modules/core-js/internals/descriptors.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/document-create-element.js +16 -0
- package/dist/esm/node_modules/core-js/internals/document-create-element.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/dom-iterables.js +38 -0
- package/dist/esm/node_modules/core-js/internals/dom-iterables.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/dom-token-list-prototype.js +12 -0
- package/dist/esm/node_modules/core-js/internals/dom-token-list-prototype.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/enum-bug-keys.js +13 -0
- package/dist/esm/node_modules/core-js/internals/enum-bug-keys.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/environment-is-ios-pebble.js +8 -0
- package/dist/esm/node_modules/core-js/internals/environment-is-ios-pebble.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/environment-is-ios.js +9 -0
- package/dist/esm/node_modules/core-js/internals/environment-is-ios.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/environment-is-node.js +8 -0
- package/dist/esm/node_modules/core-js/internals/environment-is-node.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/environment-is-webos-webkit.js +8 -0
- package/dist/esm/node_modules/core-js/internals/environment-is-webos-webkit.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/environment-user-agent.js +11 -0
- package/dist/esm/node_modules/core-js/internals/environment-user-agent.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/environment-v8-version.js +33 -0
- package/dist/esm/node_modules/core-js/internals/environment-v8-version.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/environment.js +27 -0
- package/dist/esm/node_modules/core-js/internals/environment.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/export.js +66 -0
- package/dist/esm/node_modules/core-js/internals/export.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/fails.js +10 -0
- package/dist/esm/node_modules/core-js/internals/fails.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js +88 -0
- package/dist/esm/node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/function-apply.js +15 -0
- package/dist/esm/node_modules/core-js/internals/function-apply.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/function-bind-context.js +20 -0
- package/dist/esm/node_modules/core-js/internals/function-bind-context.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/function-bind-native.js +13 -0
- package/dist/esm/node_modules/core-js/internals/function-bind-native.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/function-call.js +12 -0
- package/dist/esm/node_modules/core-js/internals/function-call.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/function-name.js +22 -0
- package/dist/esm/node_modules/core-js/internals/function-name.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/function-uncurry-this-accessor.js +15 -0
- package/dist/esm/node_modules/core-js/internals/function-uncurry-this-accessor.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/function-uncurry-this-clause.js +15 -0
- package/dist/esm/node_modules/core-js/internals/function-uncurry-this-clause.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/function-uncurry-this.js +17 -0
- package/dist/esm/node_modules/core-js/internals/function-uncurry-this.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/get-built-in.js +16 -0
- package/dist/esm/node_modules/core-js/internals/get-built-in.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/get-iterator-method.js +22 -0
- package/dist/esm/node_modules/core-js/internals/get-iterator-method.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/get-iterator.js +22 -0
- package/dist/esm/node_modules/core-js/internals/get-iterator.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/get-method.js +15 -0
- package/dist/esm/node_modules/core-js/internals/get-method.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/get-substitution.js +51 -0
- package/dist/esm/node_modules/core-js/internals/get-substitution.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/global-this.js +20 -0
- package/dist/esm/node_modules/core-js/internals/global-this.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/has-own-property.js +17 -0
- package/dist/esm/node_modules/core-js/internals/has-own-property.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/hidden-keys.js +4 -0
- package/dist/esm/node_modules/core-js/internals/hidden-keys.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/host-report-errors.js +9 -0
- package/dist/esm/node_modules/core-js/internals/host-report-errors.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/html.js +8 -0
- package/dist/esm/node_modules/core-js/internals/html.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/ie8-dom-define.js +18 -0
- package/dist/esm/node_modules/core-js/internals/ie8-dom-define.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/indexed-object.js +22 -0
- package/dist/esm/node_modules/core-js/internals/indexed-object.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/inspect-source.js +21 -0
- package/dist/esm/node_modules/core-js/internals/inspect-source.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/internal-state.js +82 -0
- package/dist/esm/node_modules/core-js/internals/internal-state.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/is-array-iterator-method.js +16 -0
- package/dist/esm/node_modules/core-js/internals/is-array-iterator-method.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/is-array.js +13 -0
- package/dist/esm/node_modules/core-js/internals/is-array.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/is-callable.js +14 -0
- package/dist/esm/node_modules/core-js/internals/is-callable.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/is-constructor.js +61 -0
- package/dist/esm/node_modules/core-js/internals/is-constructor.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/is-forced.js +28 -0
- package/dist/esm/node_modules/core-js/internals/is-forced.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/is-null-or-undefined.js +8 -0
- package/dist/esm/node_modules/core-js/internals/is-null-or-undefined.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/is-object.js +10 -0
- package/dist/esm/node_modules/core-js/internals/is-object.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/is-possible-prototype.js +10 -0
- package/dist/esm/node_modules/core-js/internals/is-possible-prototype.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/is-regexp.js +19 -0
- package/dist/esm/node_modules/core-js/internals/is-regexp.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/is-symbol.js +21 -0
- package/dist/esm/node_modules/core-js/internals/is-symbol.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/iterate.js +82 -0
- package/dist/esm/node_modules/core-js/internals/iterate.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/iterator-close.js +30 -0
- package/dist/esm/node_modules/core-js/internals/iterator-close.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/iterator-create-constructor.js +24 -0
- package/dist/esm/node_modules/core-js/internals/iterator-create-constructor.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/iterator-define.js +116 -0
- package/dist/esm/node_modules/core-js/internals/iterator-define.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/iterators-core.js +56 -0
- package/dist/esm/node_modules/core-js/internals/iterators-core.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/iterators.js +4 -0
- package/dist/esm/node_modules/core-js/internals/iterators.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/length-of-array-like.js +12 -0
- package/dist/esm/node_modules/core-js/internals/length-of-array-like.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/make-built-in.js +69 -0
- package/dist/esm/node_modules/core-js/internals/make-built-in.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/math-trunc.js +13 -0
- package/dist/esm/node_modules/core-js/internals/math-trunc.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/microtask.js +91 -0
- package/dist/esm/node_modules/core-js/internals/microtask.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/new-promise-capability.js +26 -0
- package/dist/esm/node_modules/core-js/internals/new-promise-capability.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/not-a-regexp.js +14 -0
- package/dist/esm/node_modules/core-js/internals/not-a-regexp.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/object-create.js +96 -0
- package/dist/esm/node_modules/core-js/internals/object-create.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/object-define-properties.js +32 -0
- package/dist/esm/node_modules/core-js/internals/object-define-properties.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/object-define-property.js +53 -0
- package/dist/esm/node_modules/core-js/internals/object-define-property.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/object-get-own-property-descriptor.js +36 -0
- package/dist/esm/node_modules/core-js/internals/object-get-own-property-descriptor.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/object-get-own-property-names.js +18 -0
- package/dist/esm/node_modules/core-js/internals/object-get-own-property-names.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/object-get-own-property-symbols.js +7 -0
- package/dist/esm/node_modules/core-js/internals/object-get-own-property-symbols.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/object-get-prototype-of.js +30 -0
- package/dist/esm/node_modules/core-js/internals/object-get-prototype-of.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/object-is-prototype-of.js +8 -0
- package/dist/esm/node_modules/core-js/internals/object-is-prototype-of.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/object-keys-internal.js +29 -0
- package/dist/esm/node_modules/core-js/internals/object-keys-internal.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/object-keys.js +15 -0
- package/dist/esm/node_modules/core-js/internals/object-keys.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/object-property-is-enumerable.js +18 -0
- package/dist/esm/node_modules/core-js/internals/object-property-is-enumerable.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/object-set-prototype-of.js +36 -0
- package/dist/esm/node_modules/core-js/internals/object-set-prototype-of.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/ordinary-to-primitive.js +22 -0
- package/dist/esm/node_modules/core-js/internals/ordinary-to-primitive.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/own-keys.js +25 -0
- package/dist/esm/node_modules/core-js/internals/own-keys.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/path.js +8 -0
- package/dist/esm/node_modules/core-js/internals/path.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/perform.js +10 -0
- package/dist/esm/node_modules/core-js/internals/perform.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/promise-constructor-detection.js +55 -0
- package/dist/esm/node_modules/core-js/internals/promise-constructor-detection.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/promise-native-constructor.js +8 -0
- package/dist/esm/node_modules/core-js/internals/promise-native-constructor.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/promise-resolve.js +20 -0
- package/dist/esm/node_modules/core-js/internals/promise-resolve.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/promise-statics-incorrect-iteration.js +14 -0
- package/dist/esm/node_modules/core-js/internals/promise-statics-incorrect-iteration.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/queue.js +27 -0
- package/dist/esm/node_modules/core-js/internals/queue.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/regexp-exec-abstract.js +29 -0
- package/dist/esm/node_modules/core-js/internals/regexp-exec-abstract.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/regexp-exec.js +130 -0
- package/dist/esm/node_modules/core-js/internals/regexp-exec.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/regexp-flags-detection.js +52 -0
- package/dist/esm/node_modules/core-js/internals/regexp-flags-detection.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/regexp-flags.js +22 -0
- package/dist/esm/node_modules/core-js/internals/regexp-flags.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/regexp-get-flags.js +24 -0
- package/dist/esm/node_modules/core-js/internals/regexp-get-flags.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/regexp-sticky-helpers.js +35 -0
- package/dist/esm/node_modules/core-js/internals/regexp-sticky-helpers.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/regexp-unsupported-dot-all.js +16 -0
- package/dist/esm/node_modules/core-js/internals/regexp-unsupported-dot-all.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/regexp-unsupported-ncg.js +17 -0
- package/dist/esm/node_modules/core-js/internals/regexp-unsupported-ncg.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/require-object-coercible.js +15 -0
- package/dist/esm/node_modules/core-js/internals/require-object-coercible.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/safe-get-built-in.js +18 -0
- package/dist/esm/node_modules/core-js/internals/safe-get-built-in.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/set-species.js +25 -0
- package/dist/esm/node_modules/core-js/internals/set-species.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/set-to-string-tag.js +20 -0
- package/dist/esm/node_modules/core-js/internals/set-to-string-tag.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/shared-key.js +14 -0
- package/dist/esm/node_modules/core-js/internals/shared-key.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/shared-store.js +22 -0
- package/dist/esm/node_modules/core-js/internals/shared-store.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/shared.js +10 -0
- package/dist/esm/node_modules/core-js/internals/shared.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/species-constructor.js +22 -0
- package/dist/esm/node_modules/core-js/internals/species-constructor.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/string-multibyte.js +41 -0
- package/dist/esm/node_modules/core-js/internals/string-multibyte.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/string-trim-forced.js +22 -0
- package/dist/esm/node_modules/core-js/internals/string-trim-forced.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/string-trim.js +32 -0
- package/dist/esm/node_modules/core-js/internals/string-trim.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/symbol-constructor-detection.js +25 -0
- package/dist/esm/node_modules/core-js/internals/symbol-constructor-detection.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/task.js +130 -0
- package/dist/esm/node_modules/core-js/internals/task.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/to-absolute-index.js +17 -0
- package/dist/esm/node_modules/core-js/internals/to-absolute-index.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/to-indexed-object.js +13 -0
- package/dist/esm/node_modules/core-js/internals/to-indexed-object.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/to-integer-or-infinity.js +14 -0
- package/dist/esm/node_modules/core-js/internals/to-integer-or-infinity.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/to-length.js +15 -0
- package/dist/esm/node_modules/core-js/internals/to-length.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/to-object.js +14 -0
- package/dist/esm/node_modules/core-js/internals/to-object.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/to-primitive.js +35 -0
- package/dist/esm/node_modules/core-js/internals/to-primitive.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/to-property-key.js +15 -0
- package/dist/esm/node_modules/core-js/internals/to-property-key.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/to-string-tag-support.js +13 -0
- package/dist/esm/node_modules/core-js/internals/to-string-tag-support.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/to-string.js +13 -0
- package/dist/esm/node_modules/core-js/internals/to-string.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/try-to-string.js +12 -0
- package/dist/esm/node_modules/core-js/internals/try-to-string.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/uid.js +14 -0
- package/dist/esm/node_modules/core-js/internals/uid.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/use-symbol-as-uid.js +11 -0
- package/dist/esm/node_modules/core-js/internals/use-symbol-as-uid.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/v8-prototype-define-bug.js +18 -0
- package/dist/esm/node_modules/core-js/internals/v8-prototype-define-bug.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/validate-arguments-length.js +9 -0
- package/dist/esm/node_modules/core-js/internals/validate-arguments-length.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/weak-map-basic-detection.js +12 -0
- package/dist/esm/node_modules/core-js/internals/weak-map-basic-detection.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/well-known-symbol.js +28 -0
- package/dist/esm/node_modules/core-js/internals/well-known-symbol.js.map +1 -0
- package/dist/esm/node_modules/core-js/internals/whitespaces.js +6 -0
- package/dist/esm/node_modules/core-js/internals/whitespaces.js.map +1 -0
- package/dist/esm/node_modules/core-js/modules/es.array.index-of.js +28 -0
- package/dist/esm/node_modules/core-js/modules/es.array.index-of.js.map +1 -0
- package/dist/esm/node_modules/core-js/modules/es.array.iterator.js +73 -0
- package/dist/esm/node_modules/core-js/modules/es.array.iterator.js.map +1 -0
- package/dist/esm/node_modules/core-js/modules/es.array.reduce.js +26 -0
- package/dist/esm/node_modules/core-js/modules/es.array.reduce.js.map +1 -0
- package/dist/esm/node_modules/core-js/modules/es.array.reverse.js +23 -0
- package/dist/esm/node_modules/core-js/modules/es.array.reverse.js.map +1 -0
- package/dist/esm/node_modules/core-js/modules/es.promise.all.js +48 -0
- package/dist/esm/node_modules/core-js/modules/es.promise.all.js.map +1 -0
- package/dist/esm/node_modules/core-js/modules/es.promise.catch.js +32 -0
- package/dist/esm/node_modules/core-js/modules/es.promise.catch.js.map +1 -0
- package/dist/esm/node_modules/core-js/modules/es.promise.constructor.js +317 -0
- package/dist/esm/node_modules/core-js/modules/es.promise.constructor.js.map +1 -0
- package/dist/esm/node_modules/core-js/modules/es.promise.race.js +35 -0
- package/dist/esm/node_modules/core-js/modules/es.promise.race.js.map +1 -0
- package/dist/esm/node_modules/core-js/modules/es.promise.reject.js +20 -0
- package/dist/esm/node_modules/core-js/modules/es.promise.reject.js.map +1 -0
- package/dist/esm/node_modules/core-js/modules/es.promise.resolve.js +21 -0
- package/dist/esm/node_modules/core-js/modules/es.promise.resolve.js.map +1 -0
- package/dist/esm/node_modules/core-js/modules/es.regexp.exec.js +12 -0
- package/dist/esm/node_modules/core-js/modules/es.regexp.exec.js.map +1 -0
- package/dist/esm/node_modules/core-js/modules/es.regexp.to-string.js +33 -0
- package/dist/esm/node_modules/core-js/modules/es.regexp.to-string.js.map +1 -0
- package/dist/esm/node_modules/core-js/modules/es.string.ends-with.js +43 -0
- package/dist/esm/node_modules/core-js/modules/es.string.ends-with.js.map +1 -0
- package/dist/esm/node_modules/core-js/modules/es.string.includes.js +28 -0
- package/dist/esm/node_modules/core-js/modules/es.string.includes.js.map +1 -0
- package/dist/esm/node_modules/core-js/modules/es.string.match.js +67 -0
- package/dist/esm/node_modules/core-js/modules/es.string.match.js.map +1 -0
- package/dist/esm/node_modules/core-js/modules/es.string.replace.js +163 -0
- package/dist/esm/node_modules/core-js/modules/es.string.replace.js.map +1 -0
- package/dist/esm/node_modules/core-js/modules/es.string.split.js +126 -0
- package/dist/esm/node_modules/core-js/modules/es.string.split.js.map +1 -0
- package/dist/esm/node_modules/core-js/modules/es.string.starts-with.js +41 -0
- package/dist/esm/node_modules/core-js/modules/es.string.starts-with.js.map +1 -0
- package/dist/esm/node_modules/core-js/modules/es.string.trim.js +16 -0
- package/dist/esm/node_modules/core-js/modules/es.string.trim.js.map +1 -0
- package/dist/esm/node_modules/core-js/modules/web.dom-collections.iterator.js +45 -0
- package/dist/esm/node_modules/core-js/modules/web.dom-collections.iterator.js.map +1 -0
- package/dist/esm/node_modules/dompurify/dist/purify.es.js +1531 -0
- package/dist/esm/node_modules/dompurify/dist/purify.es.js.map +1 -0
- package/dist/esm/node_modules/fflate/esm/browser.js +804 -0
- package/dist/esm/node_modules/fflate/esm/browser.js.map +1 -0
- package/dist/esm/node_modules/html2canvas/dist/html2canvas.esm.js +7822 -0
- package/dist/esm/node_modules/html2canvas/dist/html2canvas.esm.js.map +1 -0
- package/dist/esm/node_modules/jspdf/dist/jspdf.es.min.js +337 -0
- package/dist/esm/node_modules/jspdf/dist/jspdf.es.min.js.map +1 -0
- package/dist/esm/node_modules/performance-now/lib/performance-now.js +44 -0
- package/dist/esm/node_modules/performance-now/lib/performance-now.js.map +1 -0
- package/dist/esm/node_modules/qrious/dist/qrious.js +2372 -0
- package/dist/esm/node_modules/qrious/dist/qrious.js.map +1 -0
- package/dist/esm/node_modules/raf/index.js +85 -0
- package/dist/esm/node_modules/raf/index.js.map +1 -0
- package/dist/esm/node_modules/rgbcolor/index.js +309 -0
- package/dist/esm/node_modules/rgbcolor/index.js.map +1 -0
- package/dist/esm/node_modules/stackblur-canvas/dist/stackblur-es.js +380 -0
- package/dist/esm/node_modules/stackblur-canvas/dist/stackblur-es.js.map +1 -0
- package/dist/esm/node_modules/svg-pathdata/lib/SVGPathData.module.js +18 -0
- package/dist/esm/node_modules/svg-pathdata/lib/SVGPathData.module.js.map +1 -0
- package/dist/esm/storage/templateStorage.js +144 -0
- package/dist/esm/storage/templateStorage.js.map +1 -0
- package/dist/esm/styles.css +1 -0
- package/dist/esm/utils/styleUtils.js +91 -0
- package/dist/esm/utils/styleUtils.js.map +1 -0
- package/dist/esm/utils/validators.js +139 -0
- package/dist/esm/utils/validators.js.map +1 -0
- package/dist/types/components/IDCardDesigner.d.ts +18 -0
- package/dist/types/components/IDCardGenerator.d.ts +19 -0
- package/dist/types/components/IDCardPreview.d.ts +15 -0
- package/dist/types/core/exportUtils.d.ts +34 -0
- package/dist/types/core/qrUtils.d.ts +27 -0
- package/dist/types/hooks/useFieldMapping.d.ts +10 -0
- package/dist/types/hooks/useIDCardExport.d.ts +10 -0
- package/dist/types/hooks/useIDCardTemplate.d.ts +10 -0
- package/dist/types/index.d.ts +33 -0
- package/dist/types/storage/templateStorage.d.ts +53 -0
- package/dist/types/types/index.d.ts +235 -0
- package/dist/types/utils/styleUtils.d.ts +34 -0
- package/dist/types/utils/validators.d.ts +27 -0
- package/package.json +65 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"make-built-in.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"new-promise-capability.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"object-define-properties.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"object-define-property.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"object-get-own-property-descriptor.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"object-get-own-property-names.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"object-get-own-property-symbols.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"object-property-is-enumerable.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"performance-now.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"qrious.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared-store.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -0,0 +1,278 @@
|
|
|
1
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { useState, useRef, useCallback, useEffect } from 'react';
|
|
3
|
+
import { useIDCardTemplate } from '../hooks/useIDCardTemplate.js';
|
|
4
|
+
import { IDCardPreview } from './IDCardPreview.js';
|
|
5
|
+
import { generateId, imageFileToBase64 } from '../storage/templateStorage.js';
|
|
6
|
+
|
|
7
|
+
// Available field types in the designer
|
|
8
|
+
const defaultFieldTypes = [
|
|
9
|
+
{ type: 'text', label: 'Text Field', icon: '📝' },
|
|
10
|
+
{ type: 'label', label: 'Static Label', icon: '🏷️' },
|
|
11
|
+
{ type: 'image', label: 'Image/Photo', icon: '🖼️' },
|
|
12
|
+
{ type: 'qrcode', label: 'QR Code', icon: '📱' },
|
|
13
|
+
];
|
|
14
|
+
/**
|
|
15
|
+
* IDCardDesigner - Visual drag-and-drop template builder
|
|
16
|
+
*
|
|
17
|
+
* Allows users to:
|
|
18
|
+
* - Add and position fields on the card
|
|
19
|
+
* - Upload background images
|
|
20
|
+
* - Configure field styles (fonts, colors, etc.)
|
|
21
|
+
* - Choose card orientation and sides
|
|
22
|
+
* - Preview the card with sample data
|
|
23
|
+
*/
|
|
24
|
+
/**
|
|
25
|
+
* IDCardDesigner - Visual drag-and-drop ID card template builder
|
|
26
|
+
*/
|
|
27
|
+
const IDCardDesigner = ({ initialTemplate, onSave, onCancel, className = '', style = {}, }) => {
|
|
28
|
+
const { template, updateField, addField, removeField, setBackground, setCardSize, setOrientation, setSides, isValid, validationErrors, } = useIDCardTemplate(initialTemplate);
|
|
29
|
+
const [activeSide, setActiveSide] = useState('front');
|
|
30
|
+
const [selectedFieldId, setSelectedFieldId] = useState(null);
|
|
31
|
+
const [showGrid, setShowGrid] = useState(true);
|
|
32
|
+
const [isDragging, setIsDragging] = useState(false);
|
|
33
|
+
const [isResizing, setIsResizing] = useState(false);
|
|
34
|
+
const [templateName, setTemplateName] = useState(template.name);
|
|
35
|
+
const previewContainerRef = useRef(null);
|
|
36
|
+
const dragStartRef = useRef({ x: 0, y: 0, fieldX: 0, fieldY: 0 });
|
|
37
|
+
const resizeStartRef = useRef({
|
|
38
|
+
x: 0,
|
|
39
|
+
y: 0,
|
|
40
|
+
width: 0,
|
|
41
|
+
height: 0,
|
|
42
|
+
fieldX: 0,
|
|
43
|
+
fieldY: 0,
|
|
44
|
+
handle: '',
|
|
45
|
+
});
|
|
46
|
+
// Sample data for preview
|
|
47
|
+
const [sampleData, setSampleData] = useState({
|
|
48
|
+
name: 'John Doe',
|
|
49
|
+
idno: 'ID12345',
|
|
50
|
+
department: 'Computer Science',
|
|
51
|
+
designation: 'Student',
|
|
52
|
+
dob: '01-01-2000',
|
|
53
|
+
bloodgroup: 'O+',
|
|
54
|
+
phoneno: '9876543210',
|
|
55
|
+
address: 'Sample Address',
|
|
56
|
+
});
|
|
57
|
+
// Get selected field
|
|
58
|
+
const selectedField = template.fields.find((f) => f.id === selectedFieldId);
|
|
59
|
+
// Handle field selection
|
|
60
|
+
const handleFieldSelect = useCallback((field) => {
|
|
61
|
+
setSelectedFieldId(field?.id || null);
|
|
62
|
+
}, []);
|
|
63
|
+
// Handle adding new field
|
|
64
|
+
const handleAddField = useCallback((type) => {
|
|
65
|
+
const newField = {
|
|
66
|
+
id: generateId('field'),
|
|
67
|
+
fieldKey: `field_${Date.now()}`,
|
|
68
|
+
label: type === 'label' ? 'Label' : '',
|
|
69
|
+
type,
|
|
70
|
+
side: activeSide,
|
|
71
|
+
position: { x: 50, y: 50, width: 100, height: 30 },
|
|
72
|
+
style: {
|
|
73
|
+
fontSize: type === 'label' ? '10px' : '12px',
|
|
74
|
+
fontWeight: type === 'label' ? 'bold' : 'normal',
|
|
75
|
+
color: '#000000',
|
|
76
|
+
textAlign: 'left',
|
|
77
|
+
},
|
|
78
|
+
zIndex: template.fields.length + 1,
|
|
79
|
+
staticText: type === 'label' ? 'Static Label' : undefined,
|
|
80
|
+
qrFields: type === 'qrcode' ? [] : undefined,
|
|
81
|
+
};
|
|
82
|
+
// Adjust default sizes based on type
|
|
83
|
+
if (type === 'image') {
|
|
84
|
+
newField.position = { x: 50, y: 50, width: 80, height: 100 };
|
|
85
|
+
}
|
|
86
|
+
else if (type === 'qrcode') {
|
|
87
|
+
newField.position = { x: 50, y: 50, width: 80, height: 80 };
|
|
88
|
+
}
|
|
89
|
+
addField(newField);
|
|
90
|
+
setSelectedFieldId(newField.id);
|
|
91
|
+
}, [activeSide, addField, template.fields.length]);
|
|
92
|
+
// Handle background upload
|
|
93
|
+
const handleBackgroundUpload = useCallback(async (e) => {
|
|
94
|
+
const file = e.target.files?.[0];
|
|
95
|
+
if (!file)
|
|
96
|
+
return;
|
|
97
|
+
try {
|
|
98
|
+
const base64 = await imageFileToBase64(file);
|
|
99
|
+
setBackground(activeSide, base64);
|
|
100
|
+
}
|
|
101
|
+
catch (error) {
|
|
102
|
+
console.error('Failed to load background:', error);
|
|
103
|
+
}
|
|
104
|
+
}, [activeSide, setBackground]);
|
|
105
|
+
// Handle orientation change
|
|
106
|
+
const handleOrientationChange = useCallback((orientation) => {
|
|
107
|
+
setOrientation(orientation);
|
|
108
|
+
// Update card size based on orientation
|
|
109
|
+
const baseWidth = 340;
|
|
110
|
+
const baseHeight = 215;
|
|
111
|
+
if (orientation === 'portrait') {
|
|
112
|
+
setCardSize({ width: baseHeight, height: baseWidth, unit: 'px' });
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
setCardSize({ width: baseWidth, height: baseHeight, unit: 'px' });
|
|
116
|
+
}
|
|
117
|
+
}, [setOrientation, setCardSize]);
|
|
118
|
+
// Handle sides change
|
|
119
|
+
const handleSidesChange = useCallback((sides) => {
|
|
120
|
+
setSides(sides);
|
|
121
|
+
if (sides === 'single' && activeSide === 'back') {
|
|
122
|
+
setActiveSide('front');
|
|
123
|
+
}
|
|
124
|
+
}, [setSides, activeSide]);
|
|
125
|
+
// Drag and drop handling
|
|
126
|
+
const handleMouseDown = useCallback((e) => {
|
|
127
|
+
if (!selectedField || !previewContainerRef.current)
|
|
128
|
+
return;
|
|
129
|
+
const target = e.target;
|
|
130
|
+
// Check if clicking on resize handle
|
|
131
|
+
if (target.classList.contains('resize-handle')) {
|
|
132
|
+
const handle = target.dataset.handle || '';
|
|
133
|
+
setIsResizing(true);
|
|
134
|
+
resizeStartRef.current = {
|
|
135
|
+
x: e.clientX,
|
|
136
|
+
y: e.clientY,
|
|
137
|
+
width: selectedField.position.width,
|
|
138
|
+
height: selectedField.position.height,
|
|
139
|
+
fieldX: selectedField.position.x,
|
|
140
|
+
fieldY: selectedField.position.y,
|
|
141
|
+
handle,
|
|
142
|
+
};
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
// Check if clicking on field (for dragging)
|
|
146
|
+
if (target.closest('.preview-field')) {
|
|
147
|
+
setIsDragging(true);
|
|
148
|
+
dragStartRef.current = {
|
|
149
|
+
x: e.clientX,
|
|
150
|
+
y: e.clientY,
|
|
151
|
+
fieldX: selectedField.position.x,
|
|
152
|
+
fieldY: selectedField.position.y,
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
}, [selectedField]);
|
|
156
|
+
// Handle mouse move for dragging/resizing
|
|
157
|
+
useEffect(() => {
|
|
158
|
+
const handleMouseMove = (e) => {
|
|
159
|
+
if (!selectedField)
|
|
160
|
+
return;
|
|
161
|
+
if (isDragging) {
|
|
162
|
+
const deltaX = e.clientX - dragStartRef.current.x;
|
|
163
|
+
const deltaY = e.clientY - dragStartRef.current.y;
|
|
164
|
+
const newX = Math.max(0, Math.min(template.cardSize.width - selectedField.position.width, dragStartRef.current.fieldX + deltaX));
|
|
165
|
+
const newY = Math.max(0, Math.min(template.cardSize.height - selectedField.position.height, dragStartRef.current.fieldY + deltaY));
|
|
166
|
+
updateField(selectedField.id, {
|
|
167
|
+
position: { ...selectedField.position, x: newX, y: newY },
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
if (isResizing) {
|
|
171
|
+
const { handle, x, y, width, height, fieldX, fieldY } = resizeStartRef.current;
|
|
172
|
+
const deltaX = e.clientX - x;
|
|
173
|
+
const deltaY = e.clientY - y;
|
|
174
|
+
let newWidth = width;
|
|
175
|
+
let newHeight = height;
|
|
176
|
+
let newX = fieldX;
|
|
177
|
+
let newY = fieldY;
|
|
178
|
+
if (handle.includes('e')) {
|
|
179
|
+
newWidth = Math.max(20, width + deltaX);
|
|
180
|
+
}
|
|
181
|
+
if (handle.includes('w')) {
|
|
182
|
+
newWidth = Math.max(20, width - deltaX);
|
|
183
|
+
newX = Math.max(0, fieldX + deltaX);
|
|
184
|
+
}
|
|
185
|
+
if (handle.includes('s')) {
|
|
186
|
+
newHeight = Math.max(20, height + deltaY);
|
|
187
|
+
}
|
|
188
|
+
if (handle.includes('n')) {
|
|
189
|
+
newHeight = Math.max(20, height - deltaY);
|
|
190
|
+
newY = Math.max(0, fieldY + deltaY);
|
|
191
|
+
}
|
|
192
|
+
updateField(selectedField.id, {
|
|
193
|
+
position: { x: newX, y: newY, width: newWidth, height: newHeight },
|
|
194
|
+
});
|
|
195
|
+
}
|
|
196
|
+
};
|
|
197
|
+
const handleMouseUp = () => {
|
|
198
|
+
setIsDragging(false);
|
|
199
|
+
setIsResizing(false);
|
|
200
|
+
};
|
|
201
|
+
if (isDragging || isResizing) {
|
|
202
|
+
document.addEventListener('mousemove', handleMouseMove);
|
|
203
|
+
document.addEventListener('mouseup', handleMouseUp);
|
|
204
|
+
}
|
|
205
|
+
return () => {
|
|
206
|
+
document.removeEventListener('mousemove', handleMouseMove);
|
|
207
|
+
document.removeEventListener('mouseup', handleMouseUp);
|
|
208
|
+
};
|
|
209
|
+
}, [isDragging, isResizing, selectedField, updateField, template.cardSize]);
|
|
210
|
+
// Handle field property update
|
|
211
|
+
const handleFieldPropertyUpdate = useCallback((property, value) => {
|
|
212
|
+
if (!selectedField)
|
|
213
|
+
return;
|
|
214
|
+
if (property.startsWith('style.')) {
|
|
215
|
+
const styleKey = property.replace('style.', '');
|
|
216
|
+
updateField(selectedField.id, {
|
|
217
|
+
style: { ...selectedField.style, [styleKey]: value },
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
else if (property.startsWith('position.')) {
|
|
221
|
+
const posKey = property.replace('position.', '');
|
|
222
|
+
updateField(selectedField.id, {
|
|
223
|
+
position: { ...selectedField.position, [posKey]: Number(value) },
|
|
224
|
+
});
|
|
225
|
+
}
|
|
226
|
+
else {
|
|
227
|
+
updateField(selectedField.id, { [property]: value });
|
|
228
|
+
}
|
|
229
|
+
}, [selectedField, updateField]);
|
|
230
|
+
// Handle save
|
|
231
|
+
const handleSave = useCallback(() => {
|
|
232
|
+
const updatedTemplate = {
|
|
233
|
+
...template,
|
|
234
|
+
name: templateName,
|
|
235
|
+
updatedAt: new Date().toISOString(),
|
|
236
|
+
};
|
|
237
|
+
onSave(updatedTemplate);
|
|
238
|
+
}, [template, templateName, onSave]);
|
|
239
|
+
// Handle delete field
|
|
240
|
+
const handleDeleteField = useCallback(() => {
|
|
241
|
+
if (selectedFieldId) {
|
|
242
|
+
removeField(selectedFieldId);
|
|
243
|
+
setSelectedFieldId(null);
|
|
244
|
+
}
|
|
245
|
+
}, [selectedFieldId, removeField]);
|
|
246
|
+
// Keyboard shortcuts
|
|
247
|
+
useEffect(() => {
|
|
248
|
+
const handleKeyDown = (e) => {
|
|
249
|
+
if (e.key === 'Delete' && selectedFieldId) {
|
|
250
|
+
handleDeleteField();
|
|
251
|
+
}
|
|
252
|
+
if (e.key === 'Escape') {
|
|
253
|
+
setSelectedFieldId(null);
|
|
254
|
+
}
|
|
255
|
+
};
|
|
256
|
+
document.addEventListener('keydown', handleKeyDown);
|
|
257
|
+
return () => document.removeEventListener('keydown', handleKeyDown);
|
|
258
|
+
}, [selectedFieldId, handleDeleteField]);
|
|
259
|
+
return (jsxs("div", { className: `idcard-designer ${className}`, style: style, children: [jsxs("div", { className: "designer-header", children: [jsx("input", { type: "text", value: templateName, onChange: (e) => setTemplateName(e.target.value), className: "template-name-input", placeholder: "Template Name" }), jsxs("div", { className: "header-actions", children: [onCancel && (jsx("button", { onClick: onCancel, className: "btn btn-secondary", children: "Cancel" })), jsx("button", { onClick: handleSave, className: "btn btn-primary", disabled: !isValid, children: "Save Template" })] })] }), jsxs("div", { className: "designer-body", children: [jsxs("div", { className: "designer-sidebar left-sidebar", children: [jsx("h3", { children: "Add Fields" }), jsx("div", { className: "field-types", children: defaultFieldTypes.map((fieldType) => (jsxs("button", { onClick: () => handleAddField(fieldType.type), className: "field-type-btn", children: [jsx("span", { className: "field-icon", children: fieldType.icon }), jsx("span", { className: "field-label", children: fieldType.label })] }, fieldType.type))) }), jsx("h3", { children: "Card Settings" }), jsxs("div", { className: "card-settings", children: [jsxs("div", { className: "setting-group", children: [jsx("label", { children: "Orientation" }), jsxs("div", { className: "btn-group", children: [jsx("button", { className: `btn ${template.orientation === 'landscape' ? 'active' : ''}`, onClick: () => handleOrientationChange('landscape'), children: "Landscape" }), jsx("button", { className: `btn ${template.orientation === 'portrait' ? 'active' : ''}`, onClick: () => handleOrientationChange('portrait'), children: "Portrait" })] })] }), jsxs("div", { className: "setting-group", children: [jsx("label", { children: "Card Sides" }), jsxs("div", { className: "btn-group", children: [jsx("button", { className: `btn ${template.sides === 'single' ? 'active' : ''}`, onClick: () => handleSidesChange('single'), children: "Single" }), jsx("button", { className: `btn ${template.sides === 'double' ? 'active' : ''}`, onClick: () => handleSidesChange('double'), children: "Double" })] })] }), jsxs("div", { className: "setting-group", children: [jsx("label", { children: "Card Size (px)" }), jsxs("div", { className: "size-inputs", children: [jsx("input", { type: "number", value: template.cardSize.width, onChange: (e) => setCardSize({ ...template.cardSize, width: Number(e.target.value) }), placeholder: "Width" }), jsx("span", { children: "\u00D7" }), jsx("input", { type: "number", value: template.cardSize.height, onChange: (e) => setCardSize({ ...template.cardSize, height: Number(e.target.value) }), placeholder: "Height" })] })] })] }), jsx("h3", { children: "Background" }), jsxs("div", { className: "background-upload", children: [jsx("input", { type: "file", accept: "image/*", onChange: handleBackgroundUpload, id: "bg-upload", className: "file-input" }), jsxs("label", { htmlFor: "bg-upload", className: "btn btn-outline", children: ["Upload ", activeSide, " Background"] }), template.backgrounds[activeSide] && (jsx("button", { className: "btn btn-danger btn-sm", onClick: () => setBackground(activeSide, ''), children: "Remove" }))] })] }), jsxs("div", { className: "designer-preview", children: [jsxs("div", { className: "side-tabs", children: [jsx("button", { className: `tab ${activeSide === 'front' ? 'active' : ''}`, onClick: () => setActiveSide('front'), children: "Front" }), template.sides === 'double' && (jsx("button", { className: `tab ${activeSide === 'back' ? 'active' : ''}`, onClick: () => setActiveSide('back'), children: "Back" })), jsxs("label", { className: "grid-toggle", children: [jsx("input", { type: "checkbox", checked: showGrid, onChange: (e) => setShowGrid(e.target.checked) }), "Show Grid"] })] }), jsx("div", { ref: previewContainerRef, className: "preview-wrapper", onMouseDown: handleMouseDown, children: jsx(IDCardPreview, { template: template, data: sampleData, side: activeSide, showGrid: showGrid, onFieldSelect: handleFieldSelect, selectedFieldId: selectedFieldId, editable: true }) }), jsxs("div", { className: "fields-list", children: [jsxs("h4", { children: ["Fields on ", activeSide, " side:"] }), template.fields
|
|
260
|
+
.filter((f) => f.side === activeSide)
|
|
261
|
+
.map((field) => (jsxs("div", { className: `field-item ${field.id === selectedFieldId ? 'selected' : ''}`, onClick: () => setSelectedFieldId(field.id), children: [jsx("span", { className: "field-type-icon", children: defaultFieldTypes.find((t) => t.type === field.type)?.icon }), jsx("span", { className: "field-key", children: field.fieldKey }), jsx("button", { className: "delete-btn", onClick: (e) => {
|
|
262
|
+
e.stopPropagation();
|
|
263
|
+
removeField(field.id);
|
|
264
|
+
if (field.id === selectedFieldId)
|
|
265
|
+
setSelectedFieldId(null);
|
|
266
|
+
}, children: "\u00D7" })] }, field.id)))] })] }), jsxs("div", { className: "designer-sidebar right-sidebar", children: [jsx("h3", { children: "Field Properties" }), selectedField ? (jsxs("div", { className: "field-properties", children: [jsxs("div", { className: "property-group", children: [jsx("label", { children: "Field Key" }), jsx("input", { type: "text", value: selectedField.fieldKey, onChange: (e) => handleFieldPropertyUpdate('fieldKey', e.target.value) })] }), selectedField.type !== 'label' && (jsxs("div", { className: "property-group", children: [jsx("label", { children: "Label" }), jsx("input", { type: "text", value: selectedField.label || '', onChange: (e) => handleFieldPropertyUpdate('label', e.target.value) })] })), selectedField.type === 'label' && (jsxs("div", { className: "property-group", children: [jsx("label", { children: "Static Text" }), jsx("input", { type: "text", value: selectedField.staticText || '', onChange: (e) => handleFieldPropertyUpdate('staticText', e.target.value) })] })), selectedField.type === 'qrcode' && (jsxs("div", { className: "property-group", children: [jsx("label", { children: "QR Code Data Fields" }), jsx("small", { className: "hint", children: "Select which fields to encode in the QR code:" }), jsx("div", { style: { marginTop: '8px', maxHeight: '150px', overflowY: 'auto', border: '1px solid #ddd', borderRadius: '4px', padding: '8px' }, children: template.fields
|
|
267
|
+
.filter(f => f.type !== 'qrcode' && f.type !== 'label')
|
|
268
|
+
.map((field) => (jsxs("label", { style: { display: 'block', marginBottom: '6px', cursor: 'pointer' }, children: [jsx("input", { type: "checkbox", checked: selectedField.qrFields?.includes(field.fieldKey) || false, onChange: (e) => {
|
|
269
|
+
const currentFields = selectedField.qrFields || [];
|
|
270
|
+
const newFields = e.target.checked
|
|
271
|
+
? [...currentFields, field.fieldKey]
|
|
272
|
+
: currentFields.filter(f => f !== field.fieldKey);
|
|
273
|
+
handleFieldPropertyUpdate('qrFields', newFields);
|
|
274
|
+
}, style: { marginRight: '6px' } }), field.label || field.fieldKey] }, field.fieldKey))) })] })), jsx("h4", { children: "Style" }), jsxs("div", { className: "property-group", children: [jsx("label", { children: "Font Size" }), jsx("input", { type: "text", value: selectedField.style?.fontSize || '12px', onChange: (e) => handleFieldPropertyUpdate('style.fontSize', e.target.value) })] }), jsxs("div", { className: "property-group", children: [jsx("label", { children: "Font Weight" }), jsxs("select", { value: selectedField.style?.fontWeight || 'normal', onChange: (e) => handleFieldPropertyUpdate('style.fontWeight', e.target.value), children: [jsx("option", { value: "normal", children: "Normal" }), jsx("option", { value: "bold", children: "Bold" }), jsx("option", { value: "100", children: "100" }), jsx("option", { value: "200", children: "200" }), jsx("option", { value: "300", children: "300" }), jsx("option", { value: "400", children: "400" }), jsx("option", { value: "500", children: "500" }), jsx("option", { value: "600", children: "600" }), jsx("option", { value: "700", children: "700" }), jsx("option", { value: "800", children: "800" }), jsx("option", { value: "900", children: "900" })] })] }), selectedField.type === 'image' && (jsxs("div", { className: "property-group", children: [jsx("label", { children: "Border Radius" }), jsx("input", { type: "text", placeholder: "e.g. 50% or 8px", value: selectedField.style?.borderRadius || '', onChange: (e) => handleFieldPropertyUpdate('style.borderRadius', e.target.value) }), jsxs("small", { className: "hint", children: ["Use ", jsx("b", { children: "50%" }), " for a circle, ", jsx("b", { children: "8px" }), " for rounded corners, etc."] })] })), jsxs("div", { className: "property-group", children: [jsx("label", { children: "Text Color" }), jsx("input", { type: "color", value: selectedField.style?.color || '#000000', onChange: (e) => handleFieldPropertyUpdate('style.color', e.target.value) })] }), jsxs("div", { className: "property-group", children: [jsx("label", { children: "Text Align" }), jsxs("select", { value: selectedField.style?.textAlign || 'left', onChange: (e) => handleFieldPropertyUpdate('style.textAlign', e.target.value), children: [jsx("option", { value: "left", children: "Left" }), jsx("option", { value: "center", children: "Center" }), jsx("option", { value: "right", children: "Right" })] })] }), jsxs("div", { className: "property-group", children: [jsx("label", { children: "Text Transform" }), jsxs("select", { value: selectedField.style?.textTransform || 'none', onChange: (e) => handleFieldPropertyUpdate('style.textTransform', e.target.value), children: [jsx("option", { value: "none", children: "None" }), jsx("option", { value: "uppercase", children: "UPPERCASE" }), jsx("option", { value: "lowercase", children: "lowercase" }), jsx("option", { value: "capitalize", children: "Capitalize" })] })] }), jsxs("div", { className: "property-group", children: [jsx("label", { children: "Background Color" }), jsx("input", { type: "color", value: selectedField.style?.backgroundColor || '#ffffff', onChange: (e) => handleFieldPropertyUpdate('style.backgroundColor', e.target.value) })] }), jsxs("div", { className: "property-group", children: [jsx("label", { children: "Side" }), jsxs("select", { value: selectedField.side, onChange: (e) => handleFieldPropertyUpdate('side', e.target.value), children: [jsx("option", { value: "front", children: "Front" }), template.sides === 'double' && jsx("option", { value: "back", children: "Back" })] })] }), jsx("button", { className: "btn btn-danger", onClick: handleDeleteField, children: "Delete Field" })] })) : (jsx("p", { className: "no-selection", children: "Select a field to edit its properties" })), jsx("h3", { children: "Sample Data" }), jsxs("div", { className: "sample-data", children: [jsx("p", { className: "hint", children: "Edit sample data to preview:" }), Object.entries(sampleData).map(([key, value]) => (jsxs("div", { className: "property-group", children: [jsx("label", { children: key }), jsx("input", { type: "text", value: String(value), onChange: (e) => setSampleData((prev) => ({ ...prev, [key]: e.target.value })) })] }, key))), jsx("button", { className: "btn btn-outline btn-sm", onClick: () => setSampleData((prev) => ({ ...prev, [`custom_${Date.now()}`]: '' })), children: "+ Add Field" })] }), validationErrors.length > 0 && (jsxs("div", { className: "validation-errors", children: [jsx("h4", { children: "\u26A0\uFE0F Validation Issues" }), jsx("ul", { children: validationErrors.map((error, index) => (jsx("li", { children: error }, index))) })] }))] })] })] }));
|
|
275
|
+
};
|
|
276
|
+
|
|
277
|
+
export { IDCardDesigner, IDCardDesigner as default };
|
|
278
|
+
//# sourceMappingURL=IDCardDesigner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IDCardDesigner.js","sources":["../../../src/components/IDCardDesigner.tsx"],"sourcesContent":["import React, { useState, useCallback, useRef, useEffect } from 'react';\r\nimport type {\r\n IDCardDesignerProps,\r\n FieldMapping,\r\n FieldType,\r\n CardOrientation,\r\n CardSides,\r\n IDCardData,\r\n} from '../types';\r\nimport { useIDCardTemplate } from '../hooks/useIDCardTemplate';\r\nimport { IDCardPreview } from './IDCardPreview';\r\nimport { generateId, imageFileToBase64 } from '../storage/templateStorage';\r\nimport './IDCardDesigner.css';\r\n\r\n// Available field types in the designer\r\nconst defaultFieldTypes: { type: FieldType; label: string; icon: string }[] = [\r\n { type: 'text', label: 'Text Field', icon: '📝' },\r\n { type: 'label', label: 'Static Label', icon: '🏷️' },\r\n { type: 'image', label: 'Image/Photo', icon: '🖼️' },\r\n { type: 'qrcode', label: 'QR Code', icon: '📱' },\r\n];\r\n\r\n/**\r\n * IDCardDesigner - Visual drag-and-drop template builder\r\n * \r\n * Allows users to:\r\n * - Add and position fields on the card\r\n * - Upload background images\r\n * - Configure field styles (fonts, colors, etc.)\r\n * - Choose card orientation and sides\r\n * - Preview the card with sample data\r\n */\r\n\r\n/**\r\n * IDCardDesigner - Visual drag-and-drop ID card template builder\r\n */\r\nexport const IDCardDesigner: React.FC<IDCardDesignerProps> = ({\r\n initialTemplate,\r\n onSave,\r\n onCancel,\r\n className = '',\r\n style = {},\r\n}) => {\r\n const {\r\n template,\r\n updateField,\r\n addField,\r\n removeField,\r\n setBackground,\r\n setCardSize,\r\n setOrientation,\r\n setSides,\r\n isValid,\r\n validationErrors,\r\n } = useIDCardTemplate(initialTemplate);\r\n\r\n const [activeSide, setActiveSide] = useState<'front' | 'back'>('front');\r\n const [selectedFieldId, setSelectedFieldId] = useState<string | null>(null);\r\n const [showGrid, setShowGrid] = useState(true);\r\n const [isDragging, setIsDragging] = useState(false);\r\n const [isResizing, setIsResizing] = useState(false);\r\n const [templateName, setTemplateName] = useState(template.name);\r\n\r\n const previewContainerRef = useRef<HTMLDivElement>(null);\r\n const dragStartRef = useRef({ x: 0, y: 0, fieldX: 0, fieldY: 0 });\r\n const resizeStartRef = useRef({\r\n x: 0,\r\n y: 0,\r\n width: 0,\r\n height: 0,\r\n fieldX: 0,\r\n fieldY: 0,\r\n handle: '',\r\n });\r\n\r\n // Sample data for preview\r\n const [sampleData, setSampleData] = useState<IDCardData>({\r\n name: 'John Doe',\r\n idno: 'ID12345',\r\n department: 'Computer Science',\r\n designation: 'Student',\r\n dob: '01-01-2000',\r\n bloodgroup: 'O+',\r\n phoneno: '9876543210',\r\n address: 'Sample Address',\r\n });\r\n\r\n // Get selected field\r\n const selectedField = template.fields.find((f) => f.id === selectedFieldId);\r\n\r\n // Handle field selection\r\n const handleFieldSelect = useCallback((field: FieldMapping | null) => {\r\n setSelectedFieldId(field?.id || null);\r\n }, []);\r\n\r\n // Handle adding new field\r\n const handleAddField = useCallback(\r\n (type: FieldType) => {\r\n const newField: FieldMapping = {\r\n id: generateId('field'),\r\n fieldKey: `field_${Date.now()}`,\r\n label: type === 'label' ? 'Label' : '',\r\n type,\r\n side: activeSide,\r\n position: { x: 50, y: 50, width: 100, height: 30 },\r\n style: {\r\n fontSize: type === 'label' ? '10px' : '12px',\r\n fontWeight: type === 'label' ? 'bold' : 'normal',\r\n color: '#000000',\r\n textAlign: 'left',\r\n },\r\n zIndex: template.fields.length + 1,\r\n staticText: type === 'label' ? 'Static Label' : undefined,\r\n qrFields: type === 'qrcode' ? [] : undefined,\r\n };\r\n\r\n // Adjust default sizes based on type\r\n if (type === 'image') {\r\n newField.position = { x: 50, y: 50, width: 80, height: 100 };\r\n } else if (type === 'qrcode') {\r\n newField.position = { x: 50, y: 50, width: 80, height: 80 };\r\n }\r\n\r\n addField(newField);\r\n setSelectedFieldId(newField.id);\r\n },\r\n [activeSide, addField, template.fields.length]\r\n );\r\n\r\n // Handle background upload\r\n const handleBackgroundUpload = useCallback(\r\n async (e: React.ChangeEvent<HTMLInputElement>) => {\r\n const file = e.target.files?.[0];\r\n if (!file) return;\r\n\r\n try {\r\n const base64 = await imageFileToBase64(file);\r\n setBackground(activeSide, base64);\r\n } catch (error) {\r\n console.error('Failed to load background:', error);\r\n }\r\n },\r\n [activeSide, setBackground]\r\n );\r\n\r\n // Handle orientation change\r\n const handleOrientationChange = useCallback(\r\n (orientation: CardOrientation) => {\r\n setOrientation(orientation);\r\n // Update card size based on orientation\r\n const baseWidth = 340;\r\n const baseHeight = 215;\r\n if (orientation === 'portrait') {\r\n setCardSize({ width: baseHeight, height: baseWidth, unit: 'px' });\r\n } else {\r\n setCardSize({ width: baseWidth, height: baseHeight, unit: 'px' });\r\n }\r\n },\r\n [setOrientation, setCardSize]\r\n );\r\n\r\n // Handle sides change\r\n const handleSidesChange = useCallback(\r\n (sides: CardSides) => {\r\n setSides(sides);\r\n if (sides === 'single' && activeSide === 'back') {\r\n setActiveSide('front');\r\n }\r\n },\r\n [setSides, activeSide]\r\n );\r\n\r\n // Drag and drop handling\r\n const handleMouseDown = useCallback(\r\n (e: React.MouseEvent) => {\r\n if (!selectedField || !previewContainerRef.current) return;\r\n\r\n const target = e.target as HTMLElement;\r\n\r\n // Check if clicking on resize handle\r\n if (target.classList.contains('resize-handle')) {\r\n const handle = target.dataset.handle || '';\r\n setIsResizing(true);\r\n resizeStartRef.current = {\r\n x: e.clientX,\r\n y: e.clientY,\r\n width: selectedField.position.width,\r\n height: selectedField.position.height,\r\n fieldX: selectedField.position.x,\r\n fieldY: selectedField.position.y,\r\n handle,\r\n };\r\n return;\r\n }\r\n\r\n // Check if clicking on field (for dragging)\r\n if (target.closest('.preview-field')) {\r\n setIsDragging(true);\r\n dragStartRef.current = {\r\n x: e.clientX,\r\n y: e.clientY,\r\n fieldX: selectedField.position.x,\r\n fieldY: selectedField.position.y,\r\n };\r\n }\r\n },\r\n [selectedField]\r\n );\r\n\r\n // Handle mouse move for dragging/resizing\r\n useEffect(() => {\r\n const handleMouseMove = (e: MouseEvent) => {\r\n if (!selectedField) return;\r\n\r\n if (isDragging) {\r\n const deltaX = e.clientX - dragStartRef.current.x;\r\n const deltaY = e.clientY - dragStartRef.current.y;\r\n\r\n const newX = Math.max(0, Math.min(\r\n template.cardSize.width - selectedField.position.width,\r\n dragStartRef.current.fieldX + deltaX\r\n ));\r\n const newY = Math.max(0, Math.min(\r\n template.cardSize.height - selectedField.position.height,\r\n dragStartRef.current.fieldY + deltaY\r\n ));\r\n\r\n updateField(selectedField.id, {\r\n position: { ...selectedField.position, x: newX, y: newY },\r\n });\r\n }\r\n\r\n if (isResizing) {\r\n const { handle, x, y, width, height, fieldX, fieldY } = resizeStartRef.current;\r\n const deltaX = e.clientX - x;\r\n const deltaY = e.clientY - y;\r\n\r\n let newWidth = width;\r\n let newHeight = height;\r\n let newX = fieldX;\r\n let newY = fieldY;\r\n\r\n if (handle.includes('e')) {\r\n newWidth = Math.max(20, width + deltaX);\r\n }\r\n if (handle.includes('w')) {\r\n newWidth = Math.max(20, width - deltaX);\r\n newX = Math.max(0, fieldX + deltaX);\r\n }\r\n if (handle.includes('s')) {\r\n newHeight = Math.max(20, height + deltaY);\r\n }\r\n if (handle.includes('n')) {\r\n newHeight = Math.max(20, height - deltaY);\r\n newY = Math.max(0, fieldY + deltaY);\r\n }\r\n\r\n updateField(selectedField.id, {\r\n position: { x: newX, y: newY, width: newWidth, height: newHeight },\r\n });\r\n }\r\n };\r\n\r\n const handleMouseUp = () => {\r\n setIsDragging(false);\r\n setIsResizing(false);\r\n };\r\n\r\n if (isDragging || isResizing) {\r\n document.addEventListener('mousemove', handleMouseMove);\r\n document.addEventListener('mouseup', handleMouseUp);\r\n }\r\n\r\n return () => {\r\n document.removeEventListener('mousemove', handleMouseMove);\r\n document.removeEventListener('mouseup', handleMouseUp);\r\n };\r\n }, [isDragging, isResizing, selectedField, updateField, template.cardSize]);\r\n\r\n // Handle field property update\r\n const handleFieldPropertyUpdate = useCallback(\r\n (property: string, value: unknown) => {\r\n if (!selectedField) return;\r\n\r\n if (property.startsWith('style.')) {\r\n const styleKey = property.replace('style.', '');\r\n updateField(selectedField.id, {\r\n style: { ...selectedField.style, [styleKey]: value },\r\n });\r\n } else if (property.startsWith('position.')) {\r\n const posKey = property.replace('position.', '') as keyof typeof selectedField.position;\r\n updateField(selectedField.id, {\r\n position: { ...selectedField.position, [posKey]: Number(value) },\r\n });\r\n } else {\r\n updateField(selectedField.id, { [property]: value });\r\n }\r\n },\r\n [selectedField, updateField]\r\n );\r\n\r\n // Handle save\r\n const handleSave = useCallback(() => {\r\n const updatedTemplate = {\r\n ...template,\r\n name: templateName,\r\n updatedAt: new Date().toISOString(),\r\n };\r\n onSave(updatedTemplate);\r\n }, [template, templateName, onSave]);\r\n\r\n // Handle delete field\r\n const handleDeleteField = useCallback(() => {\r\n if (selectedFieldId) {\r\n removeField(selectedFieldId);\r\n setSelectedFieldId(null);\r\n }\r\n }, [selectedFieldId, removeField]);\r\n\r\n // Keyboard shortcuts\r\n useEffect(() => {\r\n const handleKeyDown = (e: KeyboardEvent) => {\r\n if (e.key === 'Delete' && selectedFieldId) {\r\n handleDeleteField();\r\n }\r\n if (e.key === 'Escape') {\r\n setSelectedFieldId(null);\r\n }\r\n };\r\n\r\n document.addEventListener('keydown', handleKeyDown);\r\n return () => document.removeEventListener('keydown', handleKeyDown);\r\n }, [selectedFieldId, handleDeleteField]);\r\n\r\n return (\r\n <div className={`idcard-designer ${className}`} style={style}>\r\n {/* Header */}\r\n <div className=\"designer-header\">\r\n <input\r\n type=\"text\"\r\n value={templateName}\r\n onChange={(e) => setTemplateName(e.target.value)}\r\n className=\"template-name-input\"\r\n placeholder=\"Template Name\"\r\n />\r\n <div className=\"header-actions\">\r\n {onCancel && (\r\n <button onClick={onCancel} className=\"btn btn-secondary\">\r\n Cancel\r\n </button>\r\n )}\r\n <button onClick={handleSave} className=\"btn btn-primary\" disabled={!isValid}>\r\n Save Template\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <div className=\"designer-body\">\r\n {/* Left Sidebar - Field Types */}\r\n <div className=\"designer-sidebar left-sidebar\">\r\n <h3>Add Fields</h3>\r\n <div className=\"field-types\">\r\n {defaultFieldTypes.map((fieldType) => (\r\n <button\r\n key={fieldType.type}\r\n onClick={() => handleAddField(fieldType.type)}\r\n className=\"field-type-btn\"\r\n >\r\n <span className=\"field-icon\">{fieldType.icon}</span>\r\n <span className=\"field-label\">{fieldType.label}</span>\r\n </button>\r\n ))}\r\n </div>\r\n\r\n <h3>Card Settings</h3>\r\n <div className=\"card-settings\">\r\n <div className=\"setting-group\">\r\n <label>Orientation</label>\r\n <div className=\"btn-group\">\r\n <button\r\n className={`btn ${template.orientation === 'landscape' ? 'active' : ''}`}\r\n onClick={() => handleOrientationChange('landscape')}\r\n >\r\n Landscape\r\n </button>\r\n <button\r\n className={`btn ${template.orientation === 'portrait' ? 'active' : ''}`}\r\n onClick={() => handleOrientationChange('portrait')}\r\n >\r\n Portrait\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <div className=\"setting-group\">\r\n <label>Card Sides</label>\r\n <div className=\"btn-group\">\r\n <button\r\n className={`btn ${template.sides === 'single' ? 'active' : ''}`}\r\n onClick={() => handleSidesChange('single')}\r\n >\r\n Single\r\n </button>\r\n <button\r\n className={`btn ${template.sides === 'double' ? 'active' : ''}`}\r\n onClick={() => handleSidesChange('double')}\r\n >\r\n Double\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <div className=\"setting-group\">\r\n <label>Card Size (px)</label>\r\n <div className=\"size-inputs\">\r\n <input\r\n type=\"number\"\r\n value={template.cardSize.width}\r\n onChange={(e) =>\r\n setCardSize({ ...template.cardSize, width: Number(e.target.value) })\r\n }\r\n placeholder=\"Width\"\r\n />\r\n <span>×</span>\r\n <input\r\n type=\"number\"\r\n value={template.cardSize.height}\r\n onChange={(e) =>\r\n setCardSize({ ...template.cardSize, height: Number(e.target.value) })\r\n }\r\n placeholder=\"Height\"\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <h3>Background</h3>\r\n <div className=\"background-upload\">\r\n <input\r\n type=\"file\"\r\n accept=\"image/*\"\r\n onChange={handleBackgroundUpload}\r\n id=\"bg-upload\"\r\n className=\"file-input\"\r\n />\r\n <label htmlFor=\"bg-upload\" className=\"btn btn-outline\">\r\n Upload {activeSide} Background\r\n </label>\r\n {template.backgrounds[activeSide] && (\r\n <button\r\n className=\"btn btn-danger btn-sm\"\r\n onClick={() => setBackground(activeSide, '')}\r\n >\r\n Remove\r\n </button>\r\n )}\r\n </div>\r\n </div>\r\n\r\n {/* Center - Preview */}\r\n <div className=\"designer-preview\">\r\n {/* Side tabs */}\r\n <div className=\"side-tabs\">\r\n <button\r\n className={`tab ${activeSide === 'front' ? 'active' : ''}`}\r\n onClick={() => setActiveSide('front')}\r\n >\r\n Front\r\n </button>\r\n {template.sides === 'double' && (\r\n <button\r\n className={`tab ${activeSide === 'back' ? 'active' : ''}`}\r\n onClick={() => setActiveSide('back')}\r\n >\r\n Back\r\n </button>\r\n )}\r\n <label className=\"grid-toggle\">\r\n <input\r\n type=\"checkbox\"\r\n checked={showGrid}\r\n onChange={(e) => setShowGrid(e.target.checked)}\r\n />\r\n Show Grid\r\n </label>\r\n </div>\r\n\r\n {/* Preview container */}\r\n <div\r\n ref={previewContainerRef}\r\n className=\"preview-wrapper\"\r\n onMouseDown={handleMouseDown}\r\n >\r\n <IDCardPreview\r\n template={template}\r\n data={sampleData}\r\n side={activeSide}\r\n showGrid={showGrid}\r\n onFieldSelect={handleFieldSelect}\r\n selectedFieldId={selectedFieldId}\r\n editable={true}\r\n />\r\n </div>\r\n\r\n {/* Field list */}\r\n <div className=\"fields-list\">\r\n <h4>Fields on {activeSide} side:</h4>\r\n {template.fields\r\n .filter((f) => f.side === activeSide)\r\n .map((field) => (\r\n <div\r\n key={field.id}\r\n className={`field-item ${field.id === selectedFieldId ? 'selected' : ''}`}\r\n onClick={() => setSelectedFieldId(field.id)}\r\n >\r\n <span className=\"field-type-icon\">\r\n {defaultFieldTypes.find((t) => t.type === field.type)?.icon}\r\n </span>\r\n <span className=\"field-key\">{field.fieldKey}</span>\r\n <button\r\n className=\"delete-btn\"\r\n onClick={(e) => {\r\n e.stopPropagation();\r\n removeField(field.id);\r\n if (field.id === selectedFieldId) setSelectedFieldId(null);\r\n }}\r\n >\r\n ×\r\n </button>\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n\r\n {/* Right Sidebar - Field Properties */}\r\n <div className=\"designer-sidebar right-sidebar\">\r\n <h3>Field Properties</h3>\r\n {selectedField ? (\r\n <div className=\"field-properties\">\r\n <div className=\"property-group\">\r\n <label>Field Key</label>\r\n <input\r\n type=\"text\"\r\n value={selectedField.fieldKey}\r\n onChange={(e) => handleFieldPropertyUpdate('fieldKey', e.target.value)}\r\n />\r\n </div>\r\n\r\n {selectedField.type !== 'label' && (\r\n <div className=\"property-group\">\r\n <label>Label</label>\r\n <input\r\n type=\"text\"\r\n value={selectedField.label || ''}\r\n onChange={(e) => handleFieldPropertyUpdate('label', e.target.value)}\r\n />\r\n </div>\r\n )}\r\n\r\n {selectedField.type === 'label' && (\r\n <div className=\"property-group\">\r\n <label>Static Text</label>\r\n <input\r\n type=\"text\"\r\n value={selectedField.staticText || ''}\r\n onChange={(e) => handleFieldPropertyUpdate('staticText', e.target.value)}\r\n />\r\n </div>\r\n )}\r\n\r\n {selectedField.type === 'qrcode' && (\r\n <div className=\"property-group\">\r\n <label>QR Code Data Fields</label>\r\n <small className=\"hint\">Select which fields to encode in the QR code:</small>\r\n <div style={{ marginTop: '8px', maxHeight: '150px', overflowY: 'auto', border: '1px solid #ddd', borderRadius: '4px', padding: '8px' }}>\r\n {template.fields\r\n .filter(f => f.type !== 'qrcode' && f.type !== 'label')\r\n .map((field) => (\r\n <label key={field.fieldKey} style={{ display: 'block', marginBottom: '6px', cursor: 'pointer' }}>\r\n <input\r\n type=\"checkbox\"\r\n checked={selectedField.qrFields?.includes(field.fieldKey) || false}\r\n onChange={(e) => {\r\n const currentFields = selectedField.qrFields || [];\r\n const newFields = e.target.checked\r\n ? [...currentFields, field.fieldKey]\r\n : currentFields.filter(f => f !== field.fieldKey);\r\n handleFieldPropertyUpdate('qrFields', newFields);\r\n }}\r\n style={{ marginRight: '6px' }}\r\n />\r\n {field.label || field.fieldKey}\r\n </label>\r\n ))}\r\n </div>\r\n </div>\r\n )}\r\n <h4>Style</h4>\r\n <div className=\"property-group\">\r\n <label>Font Size</label>\r\n <input\r\n type=\"text\"\r\n value={selectedField.style?.fontSize || '12px'}\r\n onChange={(e) => handleFieldPropertyUpdate('style.fontSize', e.target.value)}\r\n />\r\n </div>\r\n\r\n <div className=\"property-group\">\r\n <label>Font Weight</label>\r\n <select\r\n value={selectedField.style?.fontWeight || 'normal'}\r\n onChange={(e) => handleFieldPropertyUpdate('style.fontWeight', e.target.value)}\r\n >\r\n <option value=\"normal\">Normal</option>\r\n <option value=\"bold\">Bold</option>\r\n <option value=\"100\">100</option>\r\n <option value=\"200\">200</option>\r\n <option value=\"300\">300</option>\r\n <option value=\"400\">400</option>\r\n <option value=\"500\">500</option>\r\n <option value=\"600\">600</option>\r\n <option value=\"700\">700</option>\r\n <option value=\"800\">800</option>\r\n <option value=\"900\">900</option>\r\n </select>\r\n </div>\r\n\r\n {/* Border Radius for image fields */}\r\n {selectedField.type === 'image' && (\r\n <div className=\"property-group\">\r\n <label>Border Radius</label>\r\n <input\r\n type=\"text\"\r\n placeholder=\"e.g. 50% or 8px\"\r\n value={selectedField.style?.borderRadius || ''}\r\n onChange={(e) => handleFieldPropertyUpdate('style.borderRadius', e.target.value)}\r\n />\r\n <small className=\"hint\">Use <b>50%</b> for a circle, <b>8px</b> for rounded corners, etc.</small>\r\n </div>\r\n )}\r\n\r\n <div className=\"property-group\">\r\n <label>Text Color</label>\r\n <input\r\n type=\"color\"\r\n value={selectedField.style?.color || '#000000'}\r\n onChange={(e) => handleFieldPropertyUpdate('style.color', e.target.value)}\r\n />\r\n </div>\r\n\r\n <div className=\"property-group\">\r\n <label>Text Align</label>\r\n <select\r\n value={selectedField.style?.textAlign || 'left'}\r\n onChange={(e) => handleFieldPropertyUpdate('style.textAlign', e.target.value)}\r\n >\r\n <option value=\"left\">Left</option>\r\n <option value=\"center\">Center</option>\r\n <option value=\"right\">Right</option>\r\n </select>\r\n </div>\r\n\r\n <div className=\"property-group\">\r\n <label>Text Transform</label>\r\n <select\r\n value={selectedField.style?.textTransform || 'none'}\r\n onChange={(e) => handleFieldPropertyUpdate('style.textTransform', e.target.value)}\r\n >\r\n <option value=\"none\">None</option>\r\n <option value=\"uppercase\">UPPERCASE</option>\r\n <option value=\"lowercase\">lowercase</option>\r\n <option value=\"capitalize\">Capitalize</option>\r\n </select>\r\n </div>\r\n\r\n <div className=\"property-group\">\r\n <label>Background Color</label>\r\n <input\r\n type=\"color\"\r\n value={selectedField.style?.backgroundColor || '#ffffff'}\r\n onChange={(e) =>\r\n handleFieldPropertyUpdate('style.backgroundColor', e.target.value)\r\n }\r\n />\r\n </div>\r\n\r\n <div className=\"property-group\">\r\n <label>Side</label>\r\n <select\r\n value={selectedField.side}\r\n onChange={(e) =>\r\n handleFieldPropertyUpdate('side', e.target.value as 'front' | 'back')\r\n }\r\n >\r\n <option value=\"front\">Front</option>\r\n {template.sides === 'double' && <option value=\"back\">Back</option>}\r\n </select>\r\n </div>\r\n\r\n <button className=\"btn btn-danger\" onClick={handleDeleteField}>\r\n Delete Field\r\n </button>\r\n </div>\r\n ) : (\r\n <p className=\"no-selection\">Select a field to edit its properties</p>\r\n )}\r\n\r\n <h3>Sample Data</h3>\r\n <div className=\"sample-data\">\r\n <p className=\"hint\">Edit sample data to preview:</p>\r\n {Object.entries(sampleData).map(([key, value]) => (\r\n <div key={key} className=\"property-group\">\r\n <label>{key}</label>\r\n <input\r\n type=\"text\"\r\n value={String(value)}\r\n onChange={(e) =>\r\n setSampleData((prev) => ({ ...prev, [key]: e.target.value }))\r\n }\r\n />\r\n </div>\r\n ))}\r\n <button\r\n className=\"btn btn-outline btn-sm\"\r\n onClick={() =>\r\n setSampleData((prev) => ({ ...prev, [`custom_${Date.now()}`]: '' }))\r\n }\r\n >\r\n + Add Field\r\n </button>\r\n </div>\r\n\r\n {/* Validation errors */}\r\n {validationErrors.length > 0 && (\r\n <div className=\"validation-errors\">\r\n <h4>⚠️ Validation Issues</h4>\r\n <ul>\r\n {validationErrors.map((error, index) => (\r\n <li key={index}>{error}</li>\r\n ))}\r\n </ul>\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default IDCardDesigner;\r\n"],"names":["_jsxs","_jsx"],"mappings":"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"}
|