@privyid/persona 0.3.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.
Files changed (298) hide show
  1. package/README.md +12 -0
  2. package/dist/components/app/App.vue +29 -0
  3. package/dist/components/avatar/Avatar.vue +144 -0
  4. package/dist/components/avatar/Avatar.vue.d.ts +69 -0
  5. package/dist/components/avatar/assets/avatar.png +0 -0
  6. package/dist/components/avatar/utils/color-hash.d.ts +2 -0
  7. package/dist/components/avatar/utils/color-hash.mjs +22 -0
  8. package/dist/components/avatar/utils/create-image.d.ts +5 -0
  9. package/dist/components/avatar/utils/create-image.mjs +19 -0
  10. package/dist/components/avatar/utils/load-image.d.ts +1 -0
  11. package/dist/components/avatar/utils/load-image.mjs +22 -0
  12. package/dist/components/badge/Badge.vue +185 -0
  13. package/dist/components/badge/Badge.vue.d.ts +28 -0
  14. package/dist/components/badge/assets/images/img-guide-badge.svg +1 -0
  15. package/dist/components/banner/Banner.vue +112 -0
  16. package/dist/components/banner/Banner.vue.d.ts +32 -0
  17. package/dist/components/button/Button.vue +247 -0
  18. package/dist/components/button/Button.vue.d.ts +56 -0
  19. package/dist/components/button-group/ButtonGroup.vue +161 -0
  20. package/dist/components/button-group/ButtonGroup.vue.d.ts +26 -0
  21. package/dist/components/calendar/Calendar.vue +279 -0
  22. package/dist/components/calendar/Calendar.vue.d.ts +141 -0
  23. package/dist/components/calendar/adapter/adapter.d.ts +25 -0
  24. package/dist/components/calendar/adapter/adapter.mjs +8 -0
  25. package/dist/components/calendar/adapter/date.d.ts +2 -0
  26. package/dist/components/calendar/adapter/date.mjs +75 -0
  27. package/dist/components/calendar/adapter/month.d.ts +2 -0
  28. package/dist/components/calendar/adapter/month.mjs +58 -0
  29. package/dist/components/calendar/adapter/year.d.ts +2 -0
  30. package/dist/components/calendar/adapter/year.mjs +58 -0
  31. package/dist/components/caption/Caption.vue +38 -0
  32. package/dist/components/caption/Caption.vue.d.ts +16 -0
  33. package/dist/components/card/Card.vue +247 -0
  34. package/dist/components/card/Card.vue.d.ts +68 -0
  35. package/dist/components/card/CardSection.vue +66 -0
  36. package/dist/components/card/CardSection.vue.d.ts +25 -0
  37. package/dist/components/card/assets/images/img-card-callout-01.svg +1 -0
  38. package/dist/components/chart/Chart.vue +109 -0
  39. package/dist/components/chart/Chart.vue.d.ts +30 -0
  40. package/dist/components/chart/ChartSet.vue +16 -0
  41. package/dist/components/chart/ChartSet.vue.d.ts +12 -0
  42. package/dist/components/chart/ChartVal.vue +24 -0
  43. package/dist/components/chart/ChartVal.vue.d.ts +30 -0
  44. package/dist/components/chart/adapter/adapter.d.ts +7 -0
  45. package/dist/components/chart/adapter/adapter.mjs +3 -0
  46. package/dist/components/chart/adapter/index.d.ts +3 -0
  47. package/dist/components/chart/adapter/index.mjs +10 -0
  48. package/dist/components/chart/adapter/line.d.ts +2 -0
  49. package/dist/components/chart/adapter/line.mjs +63 -0
  50. package/dist/components/chart/adapter/pie.d.ts +2 -0
  51. package/dist/components/chart/adapter/pie.mjs +33 -0
  52. package/dist/components/chart/use-chart.d.ts +2 -0
  53. package/dist/components/chart/use-chart.mjs +9 -0
  54. package/dist/components/checkbox/Checkbox.vue +176 -0
  55. package/dist/components/checkbox/Checkbox.vue.d.ts +88 -0
  56. package/dist/components/checkbox/use-checkbox.d.ts +7 -0
  57. package/dist/components/checkbox/use-checkbox.mjs +37 -0
  58. package/dist/components/datepicker/Datepicker.vue +143 -0
  59. package/dist/components/datepicker/Datepicker.vue.d.ts +88 -0
  60. package/dist/components/dialog/Dialog.vue +75 -0
  61. package/dist/components/dialog/Dialog.vue.d.ts +11 -0
  62. package/dist/components/dialog/DialogFooter.vue +126 -0
  63. package/dist/components/dialog/DialogFooter.vue.d.ts +114 -0
  64. package/dist/components/dialog/index.d.ts +6 -0
  65. package/dist/components/dialog/index.mjs +5 -0
  66. package/dist/components/dialog/use-dialog.d.ts +28 -0
  67. package/dist/components/dialog/use-dialog.mjs +31 -0
  68. package/dist/components/divider/Divider.vue +9 -0
  69. package/dist/components/dot/Dot.vue +83 -0
  70. package/dist/components/dot/Dot.vue.d.ts +18 -0
  71. package/dist/components/dropdown/Dropdown.vue +231 -0
  72. package/dist/components/dropdown/Dropdown.vue.d.ts +113 -0
  73. package/dist/components/dropdown/DropdownItem.vue +44 -0
  74. package/dist/components/dropdown/DropdownItem.vue.d.ts +18 -0
  75. package/dist/components/dropdown/utils/use-focus.d.ts +5 -0
  76. package/dist/components/dropdown/utils/use-focus.mjs +20 -0
  77. package/dist/components/dropdown/utils/use-popper.d.ts +6 -0
  78. package/dist/components/dropdown/utils/use-popper.mjs +32 -0
  79. package/dist/components/dropdown-subitem/DropdownSubitem.vue +168 -0
  80. package/dist/components/dropdown-subitem/DropdownSubitem.vue.d.ts +35 -0
  81. package/dist/components/dropdown-subitem/use-dropdown-subitem.d.ts +12 -0
  82. package/dist/components/dropdown-subitem/use-dropdown-subitem.mjs +1 -0
  83. package/dist/components/filterbar/Filterbar.vue +100 -0
  84. package/dist/components/filterbar/Filterbar.vue.d.ts +33 -0
  85. package/dist/components/filterbar/pinned/Date.vue +99 -0
  86. package/dist/components/filterbar/pinned/Date.vue.d.ts +67 -0
  87. package/dist/components/filterbar/pinned/Multiselect.vue +109 -0
  88. package/dist/components/filterbar/pinned/Multiselect.vue.d.ts +42 -0
  89. package/dist/components/filterbar/pinned/Select.vue +95 -0
  90. package/dist/components/filterbar/pinned/Select.vue.d.ts +42 -0
  91. package/dist/components/filterbar/pinned/Toggle.vue +76 -0
  92. package/dist/components/filterbar/pinned/Toggle.vue.d.ts +57 -0
  93. package/dist/components/filterbar/use-filterbar.d.ts +45 -0
  94. package/dist/components/filterbar/use-filterbar.mjs +7 -0
  95. package/dist/components/global/use-singleton.d.ts +6 -0
  96. package/dist/components/global/use-singleton.mjs +52 -0
  97. package/dist/components/heading/Heading.vue +59 -0
  98. package/dist/components/heading/Heading.vue.d.ts +19 -0
  99. package/dist/components/input/Input.vue +54 -0
  100. package/dist/components/input/Input.vue.d.ts +32 -0
  101. package/dist/components/input/InputGroup.vue +25 -0
  102. package/dist/components/input/use-input.d.ts +5 -0
  103. package/dist/components/input/use-input.mjs +20 -0
  104. package/dist/components/label/Label.vue +221 -0
  105. package/dist/components/label/Label.vue.d.ts +51 -0
  106. package/dist/components/modal/Modal.vue +217 -0
  107. package/dist/components/modal/Modal.vue.d.ts +75 -0
  108. package/dist/components/modal/assets/images/img-modal-banner-sheet.jpg +0 -0
  109. package/dist/components/nav/Nav.vue +324 -0
  110. package/dist/components/nav/Nav.vue.d.ts +73 -0
  111. package/dist/components/nav/NavItem.vue +149 -0
  112. package/dist/components/nav/NavItem.vue.d.ts +47 -0
  113. package/dist/components/nav/NavItemDropdown.vue +56 -0
  114. package/dist/components/nav/NavItemDropdown.vue.d.ts +23 -0
  115. package/dist/components/nav/NavSubItem.vue +137 -0
  116. package/dist/components/nav/NavSubItem.vue.d.ts +26 -0
  117. package/dist/components/overlay/Overlay.vue +61 -0
  118. package/dist/components/overlay/Overlay.vue.d.ts +7 -0
  119. package/dist/components/overlay/assets/icon-white.svg +1 -0
  120. package/dist/components/overlay/use-overlay.d.ts +2 -0
  121. package/dist/components/overlay/use-overlay.mjs +8 -0
  122. package/dist/components/overlay/utils/use-loading.d.ts +4 -0
  123. package/dist/components/overlay/utils/use-loading.mjs +27 -0
  124. package/dist/components/radio/Radio.vue +194 -0
  125. package/dist/components/radio/Radio.vue.d.ts +81 -0
  126. package/dist/components/radio/use-radio.d.ts +3 -0
  127. package/dist/components/radio/use-radio.mjs +17 -0
  128. package/dist/components/select/Select.vue +282 -0
  129. package/dist/components/select/Select.vue.d.ts +110 -0
  130. package/dist/components/select/adapter/adapter.d.ts +16 -0
  131. package/dist/components/select/adapter/adapter.mjs +20 -0
  132. package/dist/components/select/adapter/async-adapter.d.ts +5 -0
  133. package/dist/components/select/adapter/async-adapter.mjs +67 -0
  134. package/dist/components/select/adapter/basic-adapter.d.ts +5 -0
  135. package/dist/components/select/adapter/basic-adapter.mjs +13 -0
  136. package/dist/components/select/adapter/fuzzy-adapter.d.ts +2 -0
  137. package/dist/components/select/adapter/fuzzy-adapter.mjs +24 -0
  138. package/dist/components/select/demo/api/province.d.ts +5 -0
  139. package/dist/components/select/demo/api/province.mjs +138 -0
  140. package/dist/components/select/demo/api/regencies/11.d.ts +6 -0
  141. package/dist/components/select/demo/api/regencies/11.mjs +117 -0
  142. package/dist/components/select/demo/api/regencies/12.d.ts +6 -0
  143. package/dist/components/select/demo/api/regencies/12.mjs +167 -0
  144. package/dist/components/select/demo/api/regencies/13.d.ts +6 -0
  145. package/dist/components/select/demo/api/regencies/13.mjs +97 -0
  146. package/dist/components/select/demo/api/regencies/14.d.ts +6 -0
  147. package/dist/components/select/demo/api/regencies/14.mjs +62 -0
  148. package/dist/components/select/demo/api/regencies/15.d.ts +6 -0
  149. package/dist/components/select/demo/api/regencies/15.mjs +57 -0
  150. package/dist/components/select/demo/api/regencies/16.d.ts +6 -0
  151. package/dist/components/select/demo/api/regencies/16.mjs +87 -0
  152. package/dist/components/select/demo/api/regencies/17.d.ts +6 -0
  153. package/dist/components/select/demo/api/regencies/17.mjs +52 -0
  154. package/dist/components/select/demo/api/regencies/18.d.ts +6 -0
  155. package/dist/components/select/demo/api/regencies/18.mjs +77 -0
  156. package/dist/components/select/demo/api/regencies/19.d.ts +6 -0
  157. package/dist/components/select/demo/api/regencies/19.mjs +37 -0
  158. package/dist/components/select/demo/api/regencies/21.d.ts +6 -0
  159. package/dist/components/select/demo/api/regencies/21.mjs +37 -0
  160. package/dist/components/select/demo/api/regencies/31.d.ts +6 -0
  161. package/dist/components/select/demo/api/regencies/31.mjs +32 -0
  162. package/dist/components/select/demo/api/regencies/32.d.ts +6 -0
  163. package/dist/components/select/demo/api/regencies/32.mjs +137 -0
  164. package/dist/components/select/demo/api/regencies/33.d.ts +6 -0
  165. package/dist/components/select/demo/api/regencies/33.mjs +177 -0
  166. package/dist/components/select/demo/api/regencies/34.d.ts +6 -0
  167. package/dist/components/select/demo/api/regencies/34.mjs +27 -0
  168. package/dist/components/select/demo/api/regencies/35.d.ts +6 -0
  169. package/dist/components/select/demo/api/regencies/35.mjs +192 -0
  170. package/dist/components/select/demo/api/regencies/36.d.ts +6 -0
  171. package/dist/components/select/demo/api/regencies/36.mjs +42 -0
  172. package/dist/components/select/demo/api/regencies/51.d.ts +6 -0
  173. package/dist/components/select/demo/api/regencies/51.mjs +47 -0
  174. package/dist/components/select/demo/api/regencies/52.d.ts +6 -0
  175. package/dist/components/select/demo/api/regencies/52.mjs +52 -0
  176. package/dist/components/select/demo/api/regencies/53.d.ts +6 -0
  177. package/dist/components/select/demo/api/regencies/53.mjs +112 -0
  178. package/dist/components/select/demo/api/regencies/61.d.ts +6 -0
  179. package/dist/components/select/demo/api/regencies/61.mjs +72 -0
  180. package/dist/components/select/demo/api/regencies/62.d.ts +6 -0
  181. package/dist/components/select/demo/api/regencies/62.mjs +72 -0
  182. package/dist/components/select/demo/api/regencies/63.d.ts +6 -0
  183. package/dist/components/select/demo/api/regencies/63.mjs +67 -0
  184. package/dist/components/select/demo/api/regencies/64.d.ts +6 -0
  185. package/dist/components/select/demo/api/regencies/64.mjs +52 -0
  186. package/dist/components/select/demo/api/regencies/65.d.ts +6 -0
  187. package/dist/components/select/demo/api/regencies/65.mjs +27 -0
  188. package/dist/components/select/demo/api/regencies/71.d.ts +6 -0
  189. package/dist/components/select/demo/api/regencies/71.mjs +77 -0
  190. package/dist/components/select/demo/api/regencies/72.d.ts +6 -0
  191. package/dist/components/select/demo/api/regencies/72.mjs +67 -0
  192. package/dist/components/select/demo/api/regencies/73.d.ts +6 -0
  193. package/dist/components/select/demo/api/regencies/73.mjs +122 -0
  194. package/dist/components/select/demo/api/regencies/74.d.ts +6 -0
  195. package/dist/components/select/demo/api/regencies/74.mjs +87 -0
  196. package/dist/components/select/demo/api/regencies/75.d.ts +6 -0
  197. package/dist/components/select/demo/api/regencies/75.mjs +32 -0
  198. package/dist/components/select/demo/api/regencies/76.d.ts +6 -0
  199. package/dist/components/select/demo/api/regencies/76.mjs +32 -0
  200. package/dist/components/select/demo/api/regencies/81.d.ts +6 -0
  201. package/dist/components/select/demo/api/regencies/81.mjs +57 -0
  202. package/dist/components/select/demo/api/regencies/82.d.ts +6 -0
  203. package/dist/components/select/demo/api/regencies/82.mjs +52 -0
  204. package/dist/components/select/demo/api/regencies/91.d.ts +6 -0
  205. package/dist/components/select/demo/api/regencies/91.mjs +67 -0
  206. package/dist/components/select/demo/api/regencies/94.d.ts +6 -0
  207. package/dist/components/select/demo/api/regencies/94.mjs +147 -0
  208. package/dist/components/select/demo/get-region.d.ts +11 -0
  209. package/dist/components/select/demo/get-region.mjs +19 -0
  210. package/dist/components/select/use-select.d.ts +10 -0
  211. package/dist/components/select/use-select.mjs +3 -0
  212. package/dist/components/select/utils/use-on-scroll.d.ts +2 -0
  213. package/dist/components/select/utils/use-on-scroll.mjs +9 -0
  214. package/dist/components/select/utils/use-on-typing.d.ts +3 -0
  215. package/dist/components/select/utils/use-on-typing.mjs +8 -0
  216. package/dist/components/sidebar/Sidebar.vue +92 -0
  217. package/dist/components/sidebar/Sidebar.vue.d.ts +51 -0
  218. package/dist/components/sidebar/SidebarBrand.vue +53 -0
  219. package/dist/components/sidebar/SidebarBrand.vue.d.ts +14 -0
  220. package/dist/components/sidebar/SidebarNav.vue +151 -0
  221. package/dist/components/sidebar/SidebarNav.vue.d.ts +36 -0
  222. package/dist/components/sidebar/assets/images/icon-flag.svg +1 -0
  223. package/dist/components/sidebar/assets/images/logo-privy-icon.svg +1 -0
  224. package/dist/components/sidebar/assets/images/logo-privy.svg +1 -0
  225. package/dist/components/sidebar-menu/SidebarMenu.vue +94 -0
  226. package/dist/components/sidebar-menu/SidebarMenu.vue.d.ts +43 -0
  227. package/dist/components/sidebar-menu/assets/images/img-flag.svg +1 -0
  228. package/dist/components/sidebar-menu/use-sidebar-menu.d.ts +21 -0
  229. package/dist/components/sidebar-menu/use-sidebar-menu.mjs +3 -0
  230. package/dist/components/signature-draw/SignatureDraw.vue +69 -0
  231. package/dist/components/signature-draw/SignatureDraw.vue.d.ts +82 -0
  232. package/dist/components/signature-draw/SignatureDrawDesktop.vue +152 -0
  233. package/dist/components/signature-draw/SignatureDrawDesktop.vue.d.ts +66 -0
  234. package/dist/components/signature-draw/SignatureDrawMobile.vue +203 -0
  235. package/dist/components/signature-draw/SignatureDrawMobile.vue.d.ts +89 -0
  236. package/dist/components/signature-draw/assets/empty-img.png +0 -0
  237. package/dist/components/signature-draw/utils/canvas.d.ts +35 -0
  238. package/dist/components/signature-draw/utils/canvas.mjs +47 -0
  239. package/dist/components/signature-draw/utils/rotate-image.d.ts +6 -0
  240. package/dist/components/signature-draw/utils/rotate-image.mjs +12 -0
  241. package/dist/components/signature-draw/utils/smooth-line.d.ts +36 -0
  242. package/dist/components/signature-draw/utils/smooth-line.mjs +36 -0
  243. package/dist/components/signature-draw/utils/straight-line.d.ts +8 -0
  244. package/dist/components/signature-draw/utils/straight-line.mjs +22 -0
  245. package/dist/components/signature-draw/utils/use-draw.d.ts +7 -0
  246. package/dist/components/signature-draw/utils/use-draw.mjs +24 -0
  247. package/dist/components/signature-text/SignatureText.vue +104 -0
  248. package/dist/components/signature-text/SignatureText.vue.d.ts +70 -0
  249. package/dist/components/signature-text/sample/sample-signature.png +0 -0
  250. package/dist/components/signature-text/utils/formatter.d.ts +2 -0
  251. package/dist/components/signature-text/utils/formatter.mjs +8 -0
  252. package/dist/components/signature-text/utils/generate-text.d.ts +8 -0
  253. package/dist/components/signature-text/utils/generate-text.mjs +33 -0
  254. package/dist/components/signature-text/utils/load-font.d.ts +1 -0
  255. package/dist/components/signature-text/utils/load-font.mjs +14 -0
  256. package/dist/components/spinner/Spinner.vue +141 -0
  257. package/dist/components/spinner/Spinner.vue.d.ts +2 -0
  258. package/dist/components/spinner/SpinnerRing.vue +28 -0
  259. package/dist/components/spinner/SpinnerRing.vue.d.ts +2 -0
  260. package/dist/components/subheading/Subheading.vue +66 -0
  261. package/dist/components/subheading/Subheading.vue.d.ts +28 -0
  262. package/dist/components/table/Table.vue +257 -0
  263. package/dist/components/table/Table.vue.d.ts +71 -0
  264. package/dist/components/table/use-table.d.ts +23 -0
  265. package/dist/components/table/use-table.mjs +16 -0
  266. package/dist/components/tabs/Tab.vue +28 -0
  267. package/dist/components/tabs/Tab.vue.d.ts +23 -0
  268. package/dist/components/tabs/TabContent.vue +27 -0
  269. package/dist/components/tabs/TabContent.vue.d.ts +14 -0
  270. package/dist/components/tabs/Tabs.vue +194 -0
  271. package/dist/components/tabs/Tabs.vue.d.ts +79 -0
  272. package/dist/components/textarea/Textarea.vue +158 -0
  273. package/dist/components/textarea/Textarea.vue.d.ts +95 -0
  274. package/dist/components/toast/Toast.vue +228 -0
  275. package/dist/components/toast/Toast.vue.d.ts +56 -0
  276. package/dist/components/toast/ToastContainer.vue +63 -0
  277. package/dist/components/toast/ToastContainer.vue.d.ts +15 -0
  278. package/dist/components/toast/use-toast.d.ts +11 -0
  279. package/dist/components/toast/use-toast.mjs +5 -0
  280. package/dist/components/toggle/Toggle.vue +220 -0
  281. package/dist/components/toggle/Toggle.vue.d.ts +104 -0
  282. package/dist/components/truncate/Truncate.vue +75 -0
  283. package/dist/components/truncate/Truncate.vue.d.ts +64 -0
  284. package/dist/components/utils/color.d.ts +12 -0
  285. package/dist/components/utils/color.mjs +10 -0
  286. package/dist/components/utils/value.d.ts +8 -0
  287. package/dist/components/utils/value.mjs +6 -0
  288. package/dist/components/utils/vnode.d.ts +2 -0
  289. package/dist/components/utils/vnode.mjs +15 -0
  290. package/dist/core/index.cjs +75 -0
  291. package/dist/core/index.d.ts +8 -0
  292. package/dist/core/index.mjs +25 -0
  293. package/dist/module.cjs +5 -0
  294. package/dist/module.d.ts +5 -0
  295. package/dist/module.json +5 -0
  296. package/dist/module.mjs +25 -0
  297. package/dist/types.d.ts +6 -0
  298. package/package.json +40 -0
@@ -0,0 +1,22 @@
1
+ export class StraightLine {
2
+ constructor() {
3
+ this.lastX = 0;
4
+ this.lastY = 0;
5
+ }
6
+ start(x, y) {
7
+ this.lastX = x;
8
+ this.lastY = y;
9
+ }
10
+ move(x, y) {
11
+ const x0 = this.lastX;
12
+ const y0 = this.lastY;
13
+ this.lastX = x;
14
+ this.lastY = y;
15
+ return [
16
+ x0,
17
+ y0,
18
+ x,
19
+ y
20
+ ];
21
+ }
22
+ }
@@ -0,0 +1,7 @@
1
+ import type { InteractEvent } from '@interactjs/types';
2
+ import { Ref } from 'vue-demi';
3
+ export interface DrawHooks {
4
+ onstart?: (event: InteractEvent) => void;
5
+ onmove?: (event: InteractEvent) => void;
6
+ }
7
+ export default function useDraw(target: Ref<HTMLCanvasElement>, hooks?: DrawHooks): void;
@@ -0,0 +1,24 @@
1
+ import { throttle } from "lodash-es";
2
+ import {
3
+ onBeforeUnmount,
4
+ onMounted
5
+ } from "vue-demi";
6
+ export default function useDraw(target, hooks) {
7
+ onMounted(async () => {
8
+ if (target.value) {
9
+ const { default: Interact } = await import("interactjs");
10
+ const onmove = throttle(hooks.onmove, 1e3 / 120);
11
+ Interact(target.value).styleCursor(false).draggable({
12
+ origin: "self",
13
+ inertia: { enabled: true, resistance: 10 },
14
+ onstart: hooks.onstart,
15
+ onmove,
16
+ onend: onmove
17
+ });
18
+ }
19
+ });
20
+ onBeforeUnmount(async () => {
21
+ const { default: Interact } = await import("interactjs");
22
+ Interact(target.value).unset();
23
+ });
24
+ }
@@ -0,0 +1,104 @@
1
+ <template>
2
+ <img
3
+ data-testid="signature-text"
4
+ class="signature--text"
5
+ :width="width"
6
+ :height="height"
7
+ :src="src">
8
+ </template>
9
+
10
+ <script>
11
+ import {
12
+ ref,
13
+ computed,
14
+ defineComponent,
15
+ onMounted,
16
+ watch
17
+ } from "vue-demi";
18
+ import { useVModel } from "../input/use-input";
19
+ import { createSpinner } from "../avatar/utils/create-image";
20
+ import { formatName } from "./utils/formatter";
21
+ import generate from "./utils/generate-text";
22
+ export default defineComponent({
23
+ props: {
24
+ modelValue: {
25
+ type: String,
26
+ default: void 0
27
+ },
28
+ width: {
29
+ type: Number,
30
+ default: 430
31
+ },
32
+ height: {
33
+ type: Number,
34
+ default: 230
35
+ },
36
+ text: {
37
+ type: String,
38
+ default: ""
39
+ },
40
+ limit: {
41
+ type: Number,
42
+ default: 2
43
+ },
44
+ font: {
45
+ type: String,
46
+ default: "Herr Von Muellerhoff"
47
+ },
48
+ color: {
49
+ type: String,
50
+ default: "#000000"
51
+ }
52
+ },
53
+ setup(props) {
54
+ const ready = ref(false);
55
+ const model = useVModel(props);
56
+ const src = computed(() => {
57
+ if (!ready.value)
58
+ return createSpinner(props.width, props.height);
59
+ return model.value;
60
+ });
61
+ const name = computed(() => {
62
+ if (!props.text)
63
+ return "- No Image -";
64
+ return formatName(
65
+ String(props.text).split(" ").filter(Boolean).slice(0, props.limit).join(" ")
66
+ );
67
+ });
68
+ watch(() => [
69
+ props.text,
70
+ props.font,
71
+ props.color,
72
+ props.width,
73
+ props.height,
74
+ props.limit
75
+ ], () => {
76
+ load();
77
+ });
78
+ onMounted(() => {
79
+ load();
80
+ });
81
+ function load() {
82
+ ready.value = false;
83
+ const options = {
84
+ text: name.value,
85
+ font: props.font,
86
+ width: props.width,
87
+ height: props.height,
88
+ color: props.color
89
+ };
90
+ generate(options).then((base64Encoded) => {
91
+ model.value = base64Encoded;
92
+ ready.value = true;
93
+ }).catch(console.error);
94
+ }
95
+ return { src };
96
+ }
97
+ });
98
+ </script>
99
+
100
+ <style lang="postcss">
101
+ .signature--text {
102
+ @apply max-w-full h-auto;
103
+ }
104
+ </style>
@@ -0,0 +1,70 @@
1
+ declare const _default: import("vue-demi").DefineComponent<{
2
+ modelValue: {
3
+ type: StringConstructor;
4
+ default: any;
5
+ };
6
+ width: {
7
+ type: NumberConstructor;
8
+ default: number;
9
+ };
10
+ height: {
11
+ type: NumberConstructor;
12
+ default: number;
13
+ };
14
+ text: {
15
+ type: StringConstructor;
16
+ default: string;
17
+ };
18
+ limit: {
19
+ type: NumberConstructor;
20
+ default: number;
21
+ };
22
+ font: {
23
+ type: StringConstructor;
24
+ default: string;
25
+ };
26
+ color: {
27
+ type: StringConstructor;
28
+ default: string;
29
+ };
30
+ }, {
31
+ src: import("vue-demi").ComputedRef<string>;
32
+ }, unknown, {}, {}, import("vue-demi").ComponentOptionsMixin, import("vue-demi").ComponentOptionsMixin, {}, string, import("vue-demi").VNodeProps & import("vue-demi").AllowedComponentProps & import("vue-demi").ComponentCustomProps, Readonly<import("vue-demi").ExtractPropTypes<{
33
+ modelValue: {
34
+ type: StringConstructor;
35
+ default: any;
36
+ };
37
+ width: {
38
+ type: NumberConstructor;
39
+ default: number;
40
+ };
41
+ height: {
42
+ type: NumberConstructor;
43
+ default: number;
44
+ };
45
+ text: {
46
+ type: StringConstructor;
47
+ default: string;
48
+ };
49
+ limit: {
50
+ type: NumberConstructor;
51
+ default: number;
52
+ };
53
+ font: {
54
+ type: StringConstructor;
55
+ default: string;
56
+ };
57
+ color: {
58
+ type: StringConstructor;
59
+ default: string;
60
+ };
61
+ }>>, {
62
+ color: string;
63
+ modelValue: string;
64
+ font: string;
65
+ width: number;
66
+ height: number;
67
+ text: string;
68
+ limit: number;
69
+ }>;
70
+ export default _default;
@@ -0,0 +1,2 @@
1
+ export declare function capitalize(text: string): string;
2
+ export declare function formatName(text: string): string;
@@ -0,0 +1,8 @@
1
+ export function capitalize(text) {
2
+ return String(text).toLowerCase().replace(/^\w|([\s,.])(\w)/gm, (i) => i.toUpperCase());
3
+ }
4
+ export function formatName(text) {
5
+ if (!text)
6
+ return "";
7
+ return capitalize(String(text).trim().replace(/[^\s,.A-z]+/g, ""));
8
+ }
@@ -0,0 +1,8 @@
1
+ export interface GenerateOptions {
2
+ text: string;
3
+ font: string;
4
+ width: number;
5
+ height: number;
6
+ color: string;
7
+ }
8
+ export default function generate(options: GenerateOptions): Promise<string>;
@@ -0,0 +1,33 @@
1
+ import loadFont from "./load-font.mjs";
2
+ function createCanvas(width, height) {
3
+ const canvas = document.createElement("canvas");
4
+ canvas.width = width;
5
+ canvas.height = height;
6
+ return canvas;
7
+ }
8
+ export default async function generate(options) {
9
+ await loadFont(options.font);
10
+ const text = options.text;
11
+ const width = options.width;
12
+ const height = options.height;
13
+ const color = options.color;
14
+ const font = options.font;
15
+ const canvas = createCanvas(width, height);
16
+ const context = canvas.getContext("2d");
17
+ context.fillStyle = color;
18
+ context.font = `100px ${font}`;
19
+ context.textBaseline = "middle";
20
+ let size = 100;
21
+ let measure = context.measureText(text);
22
+ if (measure.width > width) {
23
+ size = Math.floor(size / measure.width * (width - 16));
24
+ context.font = `${size}px ${font}`;
25
+ measure = context.measureText(text);
26
+ } else if (size >= height) {
27
+ size = height - 16;
28
+ context.font = `${size}px ${font}`;
29
+ measure = context.measureText(text);
30
+ }
31
+ context.fillText(text, (width - measure.width) / 2, height / 2 + 16);
32
+ return canvas.toDataURL();
33
+ }
@@ -0,0 +1 @@
1
+ export default function loadFont(font: string): Promise<void>;
@@ -0,0 +1,14 @@
1
+ export default async function loadFont(font) {
2
+ const WebFont = await import("webfontloader");
3
+ return await new Promise((resolve, reject) => {
4
+ WebFont.load({
5
+ google: { families: [font] },
6
+ fontactive() {
7
+ resolve();
8
+ },
9
+ fontinactive() {
10
+ reject(new Error("FONTLOADER_TIMEOUT"));
11
+ }
12
+ });
13
+ });
14
+ }
@@ -0,0 +1,141 @@
1
+ <template>
2
+ <svg
3
+ data-testid="spinner"
4
+ class="spinner"
5
+ width="19"
6
+ height="19"
7
+ viewBox="0 0 19 19"
8
+ fill="none"
9
+ xmlns="http://www.w3.org/2000/svg">
10
+ <rect
11
+ x="8.125"
12
+ width="2.5"
13
+ height="6.25"
14
+ rx="1.25"
15
+ fill="#80858E">
16
+ <animate
17
+ attributeName="opacity"
18
+ values="1;0"
19
+ keyTimes="0;1"
20
+ dur="1s"
21
+ begin="0"
22
+ repeatCount="indefinite" />
23
+ </rect>
24
+ <rect
25
+ x="15.1202"
26
+ y="1.86199"
27
+ width="2.5"
28
+ height="6.25"
29
+ rx="1.25"
30
+ transform="rotate(45 15.1202 1.86199)"
31
+ fill="#80858E">
32
+ <animate
33
+ attributeName="opacity"
34
+ values="1;0"
35
+ keyTimes="0;1"
36
+ dur="1s"
37
+ begin="0.125s"
38
+ repeatCount="indefinite" />
39
+ </rect>
40
+ <rect
41
+ x="18.75"
42
+ y="8.125"
43
+ width="2.5"
44
+ height="6.25"
45
+ rx="1.25"
46
+ transform="rotate(90 18.75 8.125)"
47
+ fill="#80858E">
48
+ <animate
49
+ attributeName="opacity"
50
+ values="1;0"
51
+ keyTimes="0;1"
52
+ dur="1s"
53
+ begin="0.250s"
54
+ repeatCount="indefinite" />
55
+ </rect>
56
+ <rect
57
+ x="16.888"
58
+ y="15.1202"
59
+ width="2.5"
60
+ height="6.25"
61
+ rx="1.25"
62
+ transform="rotate(135 16.888 15.1202)"
63
+ fill="#80858E">
64
+ <animate
65
+ attributeName="opacity"
66
+ values="1;0"
67
+ keyTimes="0;1"
68
+ dur="1s"
69
+ begin="0.375s"
70
+ repeatCount="indefinite" />
71
+ </rect>
72
+ <rect
73
+ x="8.125"
74
+ y="12.5"
75
+ width="2.5"
76
+ height="6.25"
77
+ rx="1.25"
78
+ fill="#80858E">
79
+ <animate
80
+ attributeName="opacity"
81
+ values="1;0"
82
+ keyTimes="0;1"
83
+ dur="1s"
84
+ begin="0.500s"
85
+ repeatCount="indefinite" />
86
+ </rect>
87
+ <rect
88
+ x="6.2814"
89
+ y="10.7008"
90
+ width="2.5"
91
+ height="6.25"
92
+ rx="1.25"
93
+ transform="rotate(45 6.2814 10.7008)"
94
+ fill="#80858E">
95
+ <animate
96
+ attributeName="opacity"
97
+ values="1;0"
98
+ keyTimes="0;1"
99
+ dur="1s"
100
+ begin="0.625s"
101
+ repeatCount="indefinite" />
102
+ </rect>
103
+ <rect
104
+ x="6.25"
105
+ y="8.125"
106
+ width="2.5"
107
+ height="6.25"
108
+ rx="1.25"
109
+ transform="rotate(90 6.25 8.125)"
110
+ fill="#80858E">
111
+ <animate
112
+ attributeName="opacity"
113
+ values="1;0"
114
+ keyTimes="0;1"
115
+ dur="1s"
116
+ begin="0.750s"
117
+ repeatCount="indefinite" />
118
+ </rect>
119
+ <rect
120
+ x="8.04917"
121
+ y="6.2814"
122
+ width="2.5"
123
+ height="6.25"
124
+ rx="1.25"
125
+ transform="rotate(135 8.04917 6.2814)"
126
+ fill="#80858E">
127
+ <animate
128
+ attributeName="opacity"
129
+ values="1;0"
130
+ keyTimes="0;1"
131
+ dur="1s"
132
+ begin="0.875s"
133
+ repeatCount="indefinite" />
134
+ </rect>
135
+ </svg>
136
+ </template>
137
+
138
+ <script>
139
+ import { defineComponent } from "vue-demi";
140
+ export default defineComponent({});
141
+ </script>
@@ -0,0 +1,2 @@
1
+ declare const _default: import("vue-demi").DefineComponent<{}, {}, {}, {}, {}, import("vue-demi").ComponentOptionsMixin, import("vue-demi").ComponentOptionsMixin, {}, string, import("vue-demi").VNodeProps & import("vue-demi").AllowedComponentProps & import("vue-demi").ComponentCustomProps, Readonly<import("vue-demi").ExtractPropTypes<{}>>, {}>;
2
+ export default _default;
@@ -0,0 +1,28 @@
1
+ <template>
2
+ <svg
3
+ data-testid="spinner"
4
+ class="spinner spinner-ring"
5
+ width="18"
6
+ height="18"
7
+ viewBox="0 0 18 18"
8
+ fill="none"
9
+ xmlns="http://www.w3.org/2000/svg">
10
+ <path
11
+ d="M9 0.899999C9 0.402944 9.40397 -0.00466579 9.89855 0.044952C11.6574 0.221416 13.3328 0.913059 14.7095 2.04291C16.3191 3.36384 17.4209 5.202 17.8271 7.24419C18.2333 9.28637 17.9188 11.4062 16.9373 13.2426C15.9558 15.0789 14.3679 16.5181 12.4442 17.3149C10.5205 18.1117 8.37998 18.2169 6.38744 17.6125C4.3949 17.008 2.67358 15.7314 1.51677 14.0001C0.359967 12.2688 -0.160754 10.19 0.0433369 8.11785C0.217904 6.34544 0.913508 4.6717 2.03245 3.3032C2.34708 2.91839 2.92096 2.92096 3.27243 3.27244C3.62391 3.62391 3.61869 4.19076 3.31378 4.58331C2.4843 5.6512 1.96839 6.93655 1.83467 8.29428C1.6714 9.95201 2.08797 11.6151 3.01342 13.0001C3.93886 14.3851 5.31592 15.4064 6.90995 15.89C8.50398 16.3735 10.2164 16.2894 11.7553 15.6519C13.2943 15.0145 14.5646 13.8631 15.3498 12.3941C16.1351 10.925 16.3866 9.2291 16.0617 7.59535C15.7367 5.9616 14.8553 4.49107 13.5676 3.43432C12.513 2.56882 11.2393 2.02475 9.89769 1.85617C9.40451 1.7942 9 1.39706 9 0.899999Z"
12
+ fill="black">
13
+ <animateTransform
14
+ attributeType="xml"
15
+ attributeName="transform"
16
+ type="rotate"
17
+ from="0 9 9"
18
+ to="360 9 9"
19
+ dur="1s"
20
+ repeatCount="indefinite" />
21
+ </path>
22
+ </svg>
23
+ </template>
24
+
25
+ <script>
26
+ import { defineComponent } from "vue-demi";
27
+ export default defineComponent({});
28
+ </script>
@@ -0,0 +1,2 @@
1
+ declare const _default: import("vue-demi").DefineComponent<{}, {}, {}, {}, {}, import("vue-demi").ComponentOptionsMixin, import("vue-demi").ComponentOptionsMixin, {}, string, import("vue-demi").VNodeProps & import("vue-demi").AllowedComponentProps & import("vue-demi").ComponentCustomProps, Readonly<import("vue-demi").ExtractPropTypes<{}>>, {}>;
2
+ export default _default;
@@ -0,0 +1,66 @@
1
+ <template>
2
+ <p
3
+ data-testid="subheading"
4
+ :class="classNames">
5
+ <slot />
6
+ </p>
7
+ </template>
8
+
9
+ <script>
10
+ import {
11
+ defineComponent,
12
+ computed
13
+ } from "vue-demi";
14
+ export default defineComponent({
15
+ props: {
16
+ size: {
17
+ type: String,
18
+ default: "md"
19
+ },
20
+ overline: {
21
+ type: String,
22
+ default: void 0
23
+ }
24
+ },
25
+ setup(props) {
26
+ const classNames = computed(() => {
27
+ const result = ["subheading"];
28
+ if (props.overline)
29
+ result.push(`subheading--overline-${props.overline}`);
30
+ else if (props.size)
31
+ result.push(`subheading--${props.size}`);
32
+ return result;
33
+ });
34
+ return { classNames };
35
+ }
36
+ });
37
+ </script>
38
+
39
+ <style lang="postcss">
40
+ .subheading {
41
+ @apply m-0 uppercase tracking-[.009375rem];
42
+
43
+ &.subheading--md {
44
+ @apply text-base font-medium leading-tight;
45
+ }
46
+
47
+ &.subheading--sm {
48
+ @apply text-sm font-medium leading-[1.28];
49
+ }
50
+
51
+ &.subheading--overline {
52
+ &-normal,
53
+ &-medium {
54
+ @apply text-[0.6875rem] leading-[1.4] tracking-[0.09375rem];
55
+ }
56
+
57
+ &-normal {
58
+ @apply font-normal;
59
+ }
60
+
61
+ &-medium {
62
+ @apply font-medium;
63
+ }
64
+ }
65
+ }
66
+ </style>
@@ -0,0 +1,28 @@
1
+ import { PropType } from 'vue-demi';
2
+ declare type SizeVariant = 'sm' | 'md';
3
+ declare type OverlineVariant = 'normal' | 'medium';
4
+ declare const _default: import("vue-demi").DefineComponent<{
5
+ size: {
6
+ type: PropType<SizeVariant>;
7
+ default: string;
8
+ };
9
+ overline: {
10
+ type: PropType<OverlineVariant>;
11
+ default: any;
12
+ };
13
+ }, {
14
+ classNames: import("vue-demi").ComputedRef<String[]>;
15
+ }, unknown, {}, {}, import("vue-demi").ComponentOptionsMixin, import("vue-demi").ComponentOptionsMixin, {}, string, import("vue-demi").VNodeProps & import("vue-demi").AllowedComponentProps & import("vue-demi").ComponentCustomProps, Readonly<import("vue-demi").ExtractPropTypes<{
16
+ size: {
17
+ type: PropType<SizeVariant>;
18
+ default: string;
19
+ };
20
+ overline: {
21
+ type: PropType<OverlineVariant>;
22
+ default: any;
23
+ };
24
+ }>>, {
25
+ size: SizeVariant;
26
+ overline: OverlineVariant;
27
+ }>;
28
+ export default _default;