@privyid/persona 0.19.0 → 0.21.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 (130) hide show
  1. package/dist/components/accordion/Accordion.vue +118 -0
  2. package/dist/components/accordion/AccordionItem.vue +184 -0
  3. package/dist/components/accordion/index.d.ts +14 -0
  4. package/dist/components/accordion/index.mjs +10 -0
  5. package/dist/components/avatar/Avatar.vue.d.ts +2 -2
  6. package/dist/components/badge/Badge.vue.d.ts +1 -1
  7. package/dist/components/breadcrumbs/BreadcrumbItem.vue +3 -2
  8. package/dist/components/button/Button.vue +102 -65
  9. package/dist/components/calendar/Calendar.vue.d.ts +2 -2
  10. package/dist/components/calendar/adapter/adapter.mjs +1 -1
  11. package/dist/components/camera/Camera.vue.d.ts +4 -4
  12. package/dist/components/caption/Caption.vue +30 -2
  13. package/dist/components/card/Card.vue +9 -1
  14. package/dist/components/card/Card.vue.d.ts +1 -1
  15. package/dist/components/card/CardSection.vue.d.ts +1 -1
  16. package/dist/components/checkbox/Checkbox.vue.d.ts +6 -6
  17. package/dist/components/contextual-bar/ContextualBar.vue.d.ts +1 -1
  18. package/dist/components/cropper/Cropper.vue.d.ts +2 -2
  19. package/dist/components/datepicker/Datepicker.vue.d.ts +2 -2
  20. package/dist/components/dialog/index.d.ts +1 -1
  21. package/dist/components/dot/Dot.vue.d.ts +1 -1
  22. package/dist/components/dropdown/Dropdown.vue +5 -0
  23. package/dist/components/dropdown/Dropdown.vue.d.ts +6 -6
  24. package/dist/components/dropdown/DropdownItem.vue +1 -1
  25. package/dist/components/dropdown/index.d.ts +1 -1
  26. package/dist/components/dropdown-subitem/DropdownSubitem.vue.d.ts +1 -1
  27. package/dist/components/dropzone/Dropzone.vue.d.ts +2 -2
  28. package/dist/components/filterbar/pinned/PinnedDate.vue.d.ts +2 -2
  29. package/dist/components/filterbar/pinned/PinnedSelect.vue.d.ts +2 -2
  30. package/dist/components/filterbar/pinned/PinnedToggle.vue.d.ts +6 -6
  31. package/dist/components/form-group/FormGroup.vue +92 -65
  32. package/dist/components/global/store.d.ts +27 -0
  33. package/dist/components/global/store.mjs +31 -0
  34. package/dist/components/global/utils/queue.mjs +2 -0
  35. package/dist/components/heading/Heading.vue +26 -2
  36. package/dist/components/heading/index.d.ts +1 -1
  37. package/dist/components/input/Input.vue.d.ts +2 -2
  38. package/dist/components/input/utils/accept.d.ts +19 -19
  39. package/dist/components/input-file/InputFile.vue.d.ts +2 -2
  40. package/dist/components/input-password/InputPassword.vue.d.ts +1 -3
  41. package/dist/components/input-pin/InputPin.vue.d.ts +1 -1
  42. package/dist/components/input-range/InputRange.vue.d.ts +1 -1
  43. package/dist/components/label/Label.vue.d.ts +1 -1
  44. package/dist/components/list-group/ListGroupItem.vue +1 -1
  45. package/dist/components/main/Main.vue +47 -44
  46. package/dist/components/modal/Modal.vue +1 -1
  47. package/dist/components/modal/Modal.vue.d.ts +2 -2
  48. package/dist/components/modal/index.d.ts +1 -0
  49. package/dist/components/modal/index.mjs +0 -0
  50. package/dist/components/nav/Nav.vue +6 -4
  51. package/dist/components/nav/NavItem.vue +1 -1
  52. package/dist/components/nav/NavItem.vue.d.ts +2 -2
  53. package/dist/components/nav/NavItemDropdown.vue.d.ts +2 -2
  54. package/dist/components/navbar/NavbarBrand.vue +1 -1
  55. package/dist/components/navbar-menu/NavbarNavMenu.vue +1 -1
  56. package/dist/components/navbar-menu/NavbarNavMenu.vue.d.ts +3 -3
  57. package/dist/components/pagination/index.mjs +3 -1
  58. package/dist/components/pdf-object/PdfObject.vue +1 -1
  59. package/dist/components/pdf-text/PdfText.vue +6 -2
  60. package/dist/components/pdf-text/PdfText.vue.d.ts +3 -2
  61. package/dist/components/pdf-text/utils/text-to-image.d.ts +1 -1
  62. package/dist/components/pdf-text/utils/text-to-image.mjs +19 -17
  63. package/dist/components/pdf-viewer/PdfError.vue +12 -7
  64. package/dist/components/pdf-viewer/PdfError.vue.d.ts +3 -11
  65. package/dist/components/pdf-viewer/PdfNavigation.vue +5 -13
  66. package/dist/components/pdf-viewer/PdfNavigation.vue.d.ts +4 -4
  67. package/dist/components/pdf-viewer/PdfViewer.vue +42 -5
  68. package/dist/components/pdf-viewer/PdfViewer.vue.d.ts +4 -1
  69. package/dist/components/pdf-viewer/index.d.ts +8 -0
  70. package/dist/components/pdf-viewer/index.mjs +6 -1
  71. package/dist/components/pdf-viewer/utils/pdfjs.d.ts +8 -0
  72. package/dist/components/pdf-viewer/utils/pdfjs.mjs +40 -0
  73. package/dist/components/pdf-viewer/utils/use-sticky.mjs +7 -3
  74. package/dist/components/pdf-viewer/utils/use-viewer.d.ts +0 -2
  75. package/dist/components/pdf-viewer/utils/use-viewer.mjs +12 -18
  76. package/dist/components/progressbar/Progressbar.vue +110 -0
  77. package/dist/components/progressbar/Progressbar.vue.d.ts +63 -0
  78. package/dist/components/progressbar/index.d.ts +7 -0
  79. package/dist/components/progressbar/index.mjs +11 -0
  80. package/dist/components/radio/Radio.vue.d.ts +4 -4
  81. package/dist/components/ringbar/Ringbar.vue +148 -0
  82. package/dist/components/ringbar/Ringbar.vue.d.ts +66 -0
  83. package/dist/components/select/Select.vue.d.ts +3 -3
  84. package/dist/components/sheet/Sheet.vue +231 -0
  85. package/dist/components/sidebar/SidebarBrand.vue +1 -1
  86. package/dist/components/sidebar/SidebarNav.vue +6 -4
  87. package/dist/components/signature-draw/SignatureDrawMobile.vue +6 -1
  88. package/dist/components/signature-draw/utils/canvas.d.ts +1 -1
  89. package/dist/components/signature-draw/utils/canvas.mjs +5 -3
  90. package/dist/components/signature-draw/utils/smooth-line.d.ts +1 -1
  91. package/dist/components/signature-draw/utils/smooth-line.mjs +6 -1
  92. package/dist/components/signature-draw/utils/straight-line.mjs +2 -0
  93. package/dist/components/signature-text/SignatureText.vue +10 -7
  94. package/dist/components/signature-text/SignatureText.vue.d.ts +1 -0
  95. package/dist/components/signature-text/utils/generate-text.d.ts +1 -1
  96. package/dist/components/signature-text/utils/generate-text.mjs +3 -8
  97. package/dist/components/spread/Spread.vue +1 -1
  98. package/dist/components/spread/Spread.vue.d.ts +2 -2
  99. package/dist/components/steps/utils/hook.mjs +1 -0
  100. package/dist/components/subheading/Subheading.vue +36 -2
  101. package/dist/components/table/Table.vue +53 -9
  102. package/dist/components/table/Table.vue.d.ts +21 -3
  103. package/dist/components/table/index.d.ts +23 -6
  104. package/dist/components/table/index.mjs +18 -1
  105. package/dist/components/table-flex/TableFlex.vue +334 -0
  106. package/dist/components/table-static/TableStatic.vue +333 -0
  107. package/dist/components/tabs/Tab.vue.d.ts +1 -1
  108. package/dist/components/text/Text.vue +46 -13
  109. package/dist/components/text/Text.vue.d.ts +2 -2
  110. package/dist/components/toggle/Toggle.vue.d.ts +7 -7
  111. package/dist/components/tour/Tour.vue.d.ts +2 -4
  112. package/dist/components/tour/core/base.mjs +11 -0
  113. package/dist/components/tour/core/step/conditional.mjs +1 -0
  114. package/dist/components/tour/core/step/visit.mjs +1 -4
  115. package/dist/components/tour/core/step.mjs +1 -4
  116. package/dist/components/tour/core/tour.mjs +4 -0
  117. package/dist/components/utils/base64.mjs +3 -3
  118. package/dist/core/index.d.ts +5 -1
  119. package/dist/core/index.mjs +20 -3
  120. package/dist/module.d.mts +17 -0
  121. package/dist/module.d.ts +1 -1
  122. package/dist/module.json +1 -1
  123. package/dist/module.mjs +0 -1
  124. package/dist/runtime/plugin.mjs +10 -3
  125. package/dist/types.d.mts +15 -0
  126. package/package.json +21 -21
  127. package/dist/components/button/Button.vue.d.ts +0 -74
  128. package/dist/components/form-group/FormGroup.vue.d.ts +0 -61
  129. package/dist/components/global/context.d.ts +0 -24
  130. package/dist/components/global/context.mjs +0 -18
@@ -1,24 +1,24 @@
1
1
  import { LiteralUnion } from 'type-fest';
2
2
  export declare const AcceptPresets: {
3
- readonly num: string;
4
- readonly numeric: string;
5
- readonly digit: string;
6
- readonly alpha: string;
7
- readonly 'alpha-num': string;
8
- readonly 'alpha-num-space': string;
9
- readonly 'alpha-num-space-symbol': string;
10
- readonly 'alpha-numeric': string;
11
- readonly 'alpha-numeric-space': string;
12
- readonly 'alpha-numeric-space-symbol': string;
13
- readonly 'alpha-space': string;
14
- readonly 'alpha-space-symbol': string;
15
- readonly 'num-space': string;
16
- readonly 'num-space-symbol': string;
17
- readonly 'numeric-space': string;
18
- readonly 'numeric-space-symbol': string;
19
- readonly 'non-numeric': string;
20
- readonly 'non-alpha': string;
21
- readonly text: string;
3
+ readonly num: "\\d";
4
+ readonly numeric: "\\d";
5
+ readonly digit: "\\d";
6
+ readonly alpha: "A-Za-z";
7
+ readonly 'alpha-num': "A-Za-z\\d";
8
+ readonly 'alpha-num-space': "A-Za-z\\d\\s";
9
+ readonly 'alpha-num-space-symbol': "A-Za-z\\d\\s!\"#$%&'()*+,./:;<=>?@[\\\\\\]^_`{|}~-";
10
+ readonly 'alpha-numeric': "A-Za-z\\d";
11
+ readonly 'alpha-numeric-space': "A-Za-z\\d\\s";
12
+ readonly 'alpha-numeric-space-symbol': "A-Za-z\\d\\s!\"#$%&'()*+,./:;<=>?@[\\\\\\]^_`{|}~-";
13
+ readonly 'alpha-space': "A-Za-z\\s";
14
+ readonly 'alpha-space-symbol': "A-Za-z\\s!\"#$%&'()*+,./:;<=>?@[\\\\\\]^_`{|}~-";
15
+ readonly 'num-space': "\\d\\s";
16
+ readonly 'num-space-symbol': "\\d\\s!\"#$%&'()*+,./:;<=>?@[\\\\\\]^_`{|}~-";
17
+ readonly 'numeric-space': "\\d\\s";
18
+ readonly 'numeric-space-symbol': "\\d\\s!\"#$%&'()*+,./:;<=>?@[\\\\\\]^_`{|}~-";
19
+ readonly 'non-numeric': "A-Za-z\\s!\"#$%&'()*+,./:;<=>?@[\\\\\\]^_`{|}~-";
20
+ readonly 'non-alpha': "\\d\\s!\"#$%&'()*+,./:;<=>?@[\\\\\\]^_`{|}~-";
21
+ readonly text: "A-Za-z\\d\\s!\"#$%&'()*+,./:;<=>?@[\\\\\\]^_`{|}~-";
22
22
  };
23
23
  export type AcceptVariant = LiteralUnion<keyof typeof AcceptPresets, string>;
24
24
  export declare function isAccepted(accept: AcceptVariant | undefined, text: string): boolean;
@@ -113,17 +113,17 @@ declare const _default: import("vue-demi").DefineComponent<{
113
113
  default: string;
114
114
  };
115
115
  }>> & {
116
+ onCancel?: ((...args: any[]) => any) | undefined;
116
117
  onChange?: ((...args: any[]) => any) | undefined;
117
118
  "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
118
- onCancel?: ((...args: any[]) => any) | undefined;
119
119
  onClear?: ((...args: any[]) => any) | undefined;
120
120
  }, {
121
121
  error: boolean;
122
122
  size: SizeVariant;
123
123
  modelValue: string | string[] | File | File[];
124
+ modelModifiers: ModelModifier;
124
125
  disabled: boolean;
125
126
  readonly: boolean;
126
- modelModifiers: ModelModifier;
127
127
  multiple: boolean | MultipleType;
128
128
  placeholder: string;
129
129
  maxlength: string | number;
@@ -3,7 +3,5 @@ type Bindings = {
3
3
  isShow: Ref<boolean>;
4
4
  toggle: () => void;
5
5
  };
6
- declare const _default: import("vue-demi").DefineComponent<any, Bindings, {}, {}, {}, import("vue-demi").ComponentOptionsMixin, import("vue-demi").ComponentOptionsMixin, {}, string, import("vue-demi").VNodeProps & import("vue-demi").AllowedComponentProps & import("vue-demi").ComponentCustomProps, Readonly<any>, {} | {
7
- [x: string]: any;
8
- }, {}>;
6
+ declare const _default: import("vue-demi").DefineComponent<any, Bindings, {}, {}, {}, import("vue-demi").ComponentOptionsMixin, import("vue-demi").ComponentOptionsMixin, {}, string, import("vue-demi").VNodeProps & import("vue-demi").AllowedComponentProps & import("vue-demi").ComponentCustomProps, any, any, {}>;
9
7
  export default _default;
@@ -72,8 +72,8 @@ declare const _default: import("vue-demi").DefineComponent<{
72
72
  onChange?: ((...args: any[]) => any) | undefined;
73
73
  "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
74
74
  }, {
75
- error: boolean;
76
75
  length: string | number;
76
+ error: boolean;
77
77
  size: SizeVariant;
78
78
  modelValue: string;
79
79
  disabled: boolean;
@@ -95,11 +95,11 @@ declare const _default: import("vue-demi").DefineComponent<{
95
95
  "onUpdate:end"?: ((...args: any[]) => any) | undefined;
96
96
  }, {
97
97
  error: boolean;
98
+ modelValue: number | [number, number];
98
99
  start: number;
99
100
  end: number;
100
101
  min: string | number;
101
102
  max: string | number;
102
- modelValue: number | [number, number];
103
103
  disabled: boolean;
104
104
  readonly: boolean;
105
105
  step: string | number;
@@ -42,9 +42,9 @@ declare const _default: import("vue-demi").DefineComponent<{
42
42
  }>> & {
43
43
  onDismissed?: ((...args: any[]) => any) | undefined;
44
44
  }, {
45
+ color: ColorVariant;
45
46
  variant: StyleVariant;
46
47
  size: SizeVariant;
47
- color: ColorVariant;
48
48
  dismissable: boolean;
49
49
  }, {}>;
50
50
  export default _default;
@@ -76,7 +76,7 @@ export default defineComponent({
76
76
  }
77
77
 
78
78
  a& {
79
- @apply cursor-pointer text-default hover:bg-default-alpha;
79
+ @apply no-underline hover:no-underline cursor-pointer text-default hover:bg-default-alpha;
80
80
  @apply dark:text-dark-default dark:hover:bg-dark-default-alpha;
81
81
  }
82
82
 
@@ -5,56 +5,59 @@
5
5
  </template>
6
6
 
7
7
  <style lang="postcss">
8
- :root {
8
+ .main {
9
9
  --p-spacer: 1rem;
10
- }
11
10
 
12
- /**
13
- * Heading
14
- */
15
- h1, h2, h3, h4, h5, h6 {
16
- --p-heading-margin-bottom: calc(var(--p-spacer) * .5);
17
- @apply mb-[var(--p-heading-margin-bottom)];
18
- }
11
+ /**
12
+ * Heading
13
+ */
14
+ h1, h2, h3, h4, h5, h6 {
15
+ --p-heading-margin-bottom: calc(var(--p-spacer) * .5);
16
+ @apply mb-[var(--p-heading-margin-bottom)];
17
+ }
19
18
 
20
- /**
21
- * Permalink
22
- */
23
- a {
24
- --p-color-link-hover: darken(theme(textColor.link), 5%);
25
- --p-color-dark-link-hover: darken(theme(textColor.link), 5%);
26
- @apply underline text-link hover:text-[color:var(--p-color-link-hover)];
27
- @apply dark:text-dark-link hover:dark:text-[color:var(--p-color-dark-link-hover)];
28
- }
19
+ /**
20
+ * Permalink
21
+ */
22
+ a {
23
+ &:not(.navbar__brand, .sidebar__brand, .dropdown__item, .list-group__item, .btn, .nav__link, .breadcrumbs__item__link) {
24
+ --p-color-link-hover: darken(theme(textColor.link), 5%);
25
+ --p-color-dark-link-hover: darken(theme(textColor.link), 5%);
26
+ @apply underline text-link hover:text-[color:var(--p-color-link-hover)];
27
+ @apply dark:text-dark-link hover:dark:text-[color:var(--p-color-dark-link-hover)];
28
+ }
29
+ }
29
30
 
30
- /**
31
- * Paragraph
32
- */
33
- p {
34
- --p-paragraph-margin-bottom: var(--p-spacer);
35
- @apply mt-0 mb-[var(--p-paragraph-margin-bottom)] text-base text-default;
36
- @apply dark:text-dark-default;
37
- }
31
+ /**
32
+ * Paragraph
33
+ */
34
+ p {
35
+ --p-paragraph-margin-bottom: var(--p-spacer);
36
+ @apply mt-0 mb-[var(--p-paragraph-margin-bottom)] text-base text-default;
37
+ @apply dark:text-dark-default;
38
+ }
38
39
 
39
- /**
40
- * Small
41
- */
42
- small {
43
- @apply text-tn;
44
- }
40
+ /**
41
+ * Small
42
+ */
43
+ small {
44
+ @apply text-tn;
45
+ }
45
46
 
46
- /**
47
- * Strong
48
- */
49
- strong {
50
- @apply font-bold;
51
- }
47
+ /**
48
+ * Strong
49
+ */
50
+ strong {
51
+ @apply font-bold;
52
+ }
52
53
 
53
- /**
54
- * Caption
55
- */
56
- caption {
57
- @apply text-xs text-muted;
58
- @apply dark:text-dark-muted;
54
+ /**
55
+ * Caption
56
+ */
57
+ caption {
58
+ @apply text-xs text-muted;
59
+ @apply dark:text-dark-muted;
60
+ }
59
61
  }
62
+
60
63
  </style>
@@ -147,7 +147,7 @@ export default defineComponent({
147
147
  watch(model, (value) => {
148
148
  if (value === false) {
149
149
  nextTick(() => {
150
- emit("close");
150
+ emit("close", new CustomEvent("close"));
151
151
  });
152
152
  }
153
153
  });
@@ -1,5 +1,5 @@
1
1
  import { PropType } from 'vue-demi';
2
- export type SizeVariant = 'sm' | 'md' | 'lg' | 'xl';
2
+ import { SizeVariant } from '.';
3
3
  declare const _default: import("vue-demi").DefineComponent<{
4
4
  title: {
5
5
  type: StringConstructor;
@@ -95,9 +95,9 @@ declare const _default: import("vue-demi").DefineComponent<{
95
95
  dismissable: boolean;
96
96
  banner: boolean;
97
97
  text: string;
98
- modelValue: boolean;
99
98
  title: string;
100
99
  centered: boolean;
100
+ modelValue: boolean;
101
101
  noCloseOnEsc: boolean;
102
102
  noCloseOnBackdrop: boolean;
103
103
  modalBodyScrollable: boolean;
@@ -0,0 +1 @@
1
+ export type SizeVariant = 'sm' | 'md' | 'lg' | 'xl';
File without changes
@@ -3,10 +3,12 @@
3
3
  data-testid="nav"
4
4
  :class="classNames">
5
5
  <li
6
- v-if="title"
7
6
  class="nav__title">
8
- <span class="nav__title__item">
7
+ <span
8
+ class="nav__title__item"
9
+ :class="[ (!title && titleActionLabel) ? 'justify-end' : 'justify-between' ]">
9
10
  <Caption
11
+ v-if="title"
10
12
  weight="bold"
11
13
  transform="capitalize">
12
14
  {{ title }}
@@ -84,7 +86,7 @@ export default defineComponent({
84
86
  result.push(`nav--align-${props.align}`);
85
87
  if (props.vertical)
86
88
  result.push("nav--vertical");
87
- if (props.title)
89
+ if (props.title || props.titleActionLabel)
88
90
  result.push("nav--has-title");
89
91
  if (props.condensed)
90
92
  result.push("nav--condensed");
@@ -385,7 +387,7 @@ export default defineComponent({
385
387
  @apply absolute left-5 top-0 text-base w-[calc(100%-1.75rem)]; /* 1.25rem + 0.75rem (padding) */
386
388
 
387
389
  &__item {
388
- @apply flex items-center w-full justify-between space-x-2;
390
+ @apply flex items-center w-full space-x-2;
389
391
  }
390
392
 
391
393
  .caption {
@@ -118,7 +118,7 @@ export default defineComponent({
118
118
  }
119
119
 
120
120
  &__link {
121
- @apply block relative py-[10px] px-3 -mb-[1px] border border-transparent rounded-t text-base font-normal cursor-pointer hover:no-underline text-subtle hover:text-default;
121
+ @apply block relative py-[10px] px-3 -mb-[1px] border border-transparent rounded-t text-base font-normal cursor-pointer no-underline hover:no-underline text-subtle hover:text-default;
122
122
  @apply dark:text-dark-subtle hover:dark:text-dark-default;
123
123
 
124
124
  &&--active {
@@ -18,7 +18,7 @@ declare const _default: import("vue-demi").DefineComponent<{
18
18
  default: string;
19
19
  };
20
20
  linkClass: {
21
- type: (StringConstructor | ArrayConstructor | ObjectConstructor)[];
21
+ type: (StringConstructor | ObjectConstructor | ArrayConstructor)[];
22
22
  default: undefined;
23
23
  };
24
24
  exact: {
@@ -47,7 +47,7 @@ declare const _default: import("vue-demi").DefineComponent<{
47
47
  default: string;
48
48
  };
49
49
  linkClass: {
50
- type: (StringConstructor | ArrayConstructor | ObjectConstructor)[];
50
+ type: (StringConstructor | ObjectConstructor | ArrayConstructor)[];
51
51
  default: undefined;
52
52
  };
53
53
  exact: {
@@ -32,7 +32,7 @@ declare const _default: import("vue-demi").DefineComponent<{
32
32
  default: string;
33
33
  };
34
34
  menuClass: {
35
- type: (StringConstructor | ArrayConstructor | ObjectConstructor)[];
35
+ type: (StringConstructor | ObjectConstructor | ArrayConstructor)[];
36
36
  default: undefined;
37
37
  };
38
38
  menuSize: {
@@ -75,7 +75,7 @@ declare const _default: import("vue-demi").DefineComponent<{
75
75
  default: string;
76
76
  };
77
77
  menuClass: {
78
- type: (StringConstructor | ArrayConstructor | ObjectConstructor)[];
78
+ type: (StringConstructor | ObjectConstructor | ArrayConstructor)[];
79
79
  default: undefined;
80
80
  };
81
81
  menuSize: {
@@ -22,7 +22,7 @@ export default defineComponent({
22
22
  <style lang="postcss">
23
23
  .navbar {
24
24
  &__brand {
25
- @apply inline-block mr-4 text-xl py-1 font-medium text-default;
25
+ @apply inline-block mr-4 text-xl py-1 font-medium text-default no-underline cursor-pointer hover:no-underline;
26
26
  @apply dark:text-dark-default;
27
27
 
28
28
  img {
@@ -46,7 +46,7 @@
46
46
  </template>
47
47
 
48
48
  <script>
49
- import { defineComponent } from "vue";
49
+ import { defineComponent } from "vue-demi";
50
50
  import NavbarNav from "../navbar/NavbarNav.vue";
51
51
  export default defineComponent({
52
52
  components: { NavbarNav },
@@ -1,11 +1,11 @@
1
- import { PropType } from 'vue';
1
+ import { PropType } from 'vue-demi';
2
2
  import { Menu } from '../sidebar-menu';
3
- declare const _default: import("vue").DefineComponent<{
3
+ declare const _default: import("vue-demi").DefineComponent<{
4
4
  menus: {
5
5
  type: PropType<Menu[]>;
6
6
  default: () => Menu[];
7
7
  };
8
- }, void, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
8
+ }, void, 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<{
9
9
  menus: {
10
10
  type: PropType<Menu[]>;
11
11
  default: () => Menu[];
@@ -13,7 +13,9 @@ export function usePagination(props) {
13
13
  return total.value <= 0 ? 0 : Math.ceil(total.value / perPage.value);
14
14
  });
15
15
  const rowRange = computed(() => {
16
- return [total.value === 0 ? 0 : (page.value - 1) * perPage.value + 1, page.value * perPage.value > total.value ? total.value : page.value * perPage.value];
16
+ const start = Math.max((page.value - 1) * perPage.value + 1, 0);
17
+ const end = Math.min(page.value * perPage.value, total.value);
18
+ return [start, end];
17
19
  });
18
20
  const pageItems = computed(() => {
19
21
  if (totalPageCount.value === 0 || displayLimit.value < PAGE_PADDING)
@@ -216,7 +216,7 @@ export default defineComponent({
216
216
  object.value.style.position = "absolute";
217
217
  object.value.style.transform = `translate(${left}px, ${top}px) scale(${scale.value})`;
218
218
  object.value.style.zIndex = "10";
219
- }, { ancestorScroll: false });
219
+ }, { ancestorScroll: false, animationFrame: true });
220
220
  onCleanup(cleanup);
221
221
  }
222
222
  } else
@@ -4,13 +4,15 @@
4
4
  :width="width"
5
5
  :height="height"
6
6
  :src="preview"
7
+ :srcset="srcset"
7
8
  :alt="text">
8
9
  </template>
9
10
 
10
11
  <script>
11
12
  import {
12
13
  defineComponent,
13
- onMounted
14
+ onMounted,
15
+ ref
14
16
  } from "vue-demi";
15
17
  import { createSpinner } from "../avatar/utils/create-image";
16
18
  import { usePreview } from "../cropper";
@@ -92,6 +94,7 @@ export default defineComponent({
92
94
  setup(props) {
93
95
  const model = useVModel(props);
94
96
  const preview = usePreview(model, createSpinner(props.width, props.height));
97
+ const srcset = ref("");
95
98
  watchDebounced(() => [
96
99
  props.text,
97
100
  props.width,
@@ -116,8 +119,9 @@ export default defineComponent({
116
119
  const result = await generate(props);
117
120
  const value = props.modelModifiers.base64 ? result : fromBase64(result);
118
121
  model.value = value;
122
+ srcset.value = `${await generate(props, 2)} 2x`;
119
123
  }
120
- return { preview };
124
+ return { preview, srcset };
121
125
  }
122
126
  });
123
127
  </script>
@@ -74,6 +74,7 @@ declare const _default: import("vue-demi").DefineComponent<{
74
74
  };
75
75
  }, {
76
76
  preview: import("vue-demi").Ref<string>;
77
+ srcset: import("vue-demi").Ref<string>;
77
78
  }, 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<{
78
79
  modelValue: {
79
80
  type: (StringConstructor | {
@@ -147,11 +148,11 @@ declare const _default: import("vue-demi").DefineComponent<{
147
148
  default: number;
148
149
  };
149
150
  }>>, {
150
- size: number;
151
151
  color: string;
152
+ size: number;
152
153
  text: string;
153
- modelValue: string | File;
154
154
  label: string;
155
+ modelValue: string | File;
155
156
  modelModifiers: ModelModifier;
156
157
  width: number;
157
158
  height: number;
@@ -64,5 +64,5 @@ interface GenerateOptions {
64
64
  */
65
65
  labelSize?: number;
66
66
  }
67
- export default function generate(options: GenerateOptions): Promise<string>;
67
+ export default function generate(options: GenerateOptions, dpi?: number): Promise<string>;
68
68
  export {};
@@ -1,7 +1,7 @@
1
1
  import { createCanvas } from "../../signature-draw/utils/canvas.mjs";
2
2
  import loadFont from "../../signature-text/utils/load-font.mjs";
3
3
  import { clamp } from "lodash-es";
4
- function wrapText(context, text, fontSize, lineHeight, fontFamily, maxWidth) {
4
+ function wrapText(context, text, fontSize, fontFamily, maxWidth) {
5
5
  const lines = [];
6
6
  context.font = `${fontSize}px ${JSON.stringify(fontFamily)}`;
7
7
  context.textBaseline = "top";
@@ -35,7 +35,7 @@ function wrapText(context, text, fontSize, lineHeight, fontFamily, maxWidth) {
35
35
  }
36
36
  return lines;
37
37
  }
38
- export default async function generate(options) {
38
+ export default async function generate(options, dpi = 1) {
39
39
  const {
40
40
  text,
41
41
  color,
@@ -47,33 +47,41 @@ export default async function generate(options) {
47
47
  minSize,
48
48
  maxSize,
49
49
  fixedSize,
50
- label
50
+ label,
51
+ lineHeight
51
52
  } = options;
52
53
  await loadFont(font);
53
- const canvas = options.canvas ?? createCanvas(width, height);
54
+ const canvas = options.canvas ?? createCanvas(width, height, dpi);
54
55
  const context = canvas.getContext("2d");
56
+ const maxWidth = width - padding * 2;
55
57
  let y = padding;
56
58
  if (label) {
57
59
  const labelSize = options.labelSize ?? size;
58
60
  const labelFont = options.labelFont ?? font;
59
61
  const labelColor = options.labelColor ?? color;
62
+ const labelLines = wrapText(
63
+ context,
64
+ label,
65
+ labelSize,
66
+ labelFont,
67
+ maxWidth
68
+ );
60
69
  context.font = `${labelSize}px ${JSON.stringify(labelFont)}`;
61
70
  context.textBaseline = "top";
62
71
  context.textAlign = "start";
63
72
  context.fillStyle = labelColor;
64
- context.fillText(label, padding, y);
65
- y += labelSize * options.lineHeight;
73
+ for (const line of labelLines) {
74
+ context.fillText(line, padding, y);
75
+ y += labelSize * lineHeight;
76
+ }
66
77
  }
67
78
  if (text) {
68
- const maxWidth = width - padding * 2;
69
79
  const maxHeight = height - (y + padding);
70
80
  let fontSize = size;
71
- let lineHeight = fontSize * options.lineHeight;
72
81
  let lines = wrapText(
73
82
  context,
74
83
  text,
75
84
  fontSize,
76
- lineHeight,
77
85
  font,
78
86
  maxWidth
79
87
  );
@@ -89,29 +97,23 @@ export default async function generate(options) {
89
97
  if (newFontSize === fontSize)
90
98
  break;
91
99
  fontSize = newFontSize;
92
- lineHeight = fontSize * options.lineHeight;
93
100
  lines = wrapText(
94
101
  context,
95
102
  text,
96
103
  fontSize,
97
- lineHeight,
98
104
  font,
99
105
  maxWidth
100
106
  );
101
- textHeight = lines.length * lineHeight;
107
+ textHeight = lines.length * lineHeight * fontSize;
102
108
  } while (textHeight > maxHeight && ++count < 5);
103
109
  }
104
110
  context.font = `${fontSize}px ${JSON.stringify(font)}`;
105
111
  context.textBaseline = "top";
106
112
  context.textAlign = "start";
107
113
  context.fillStyle = color;
108
- context.font = `${fontSize}px ${JSON.stringify(font)}`;
109
- context.textBaseline = "top";
110
- context.textAlign = "start";
111
- context.fillStyle = color;
112
114
  for (const line of lines) {
113
115
  context.fillText(line, padding, y);
114
- y += lineHeight;
116
+ y += fontSize * lineHeight;
115
117
  }
116
118
  }
117
119
  return canvas.toDataURL("image/png");
@@ -22,15 +22,20 @@
22
22
  <dt>
23
23
  PDFJS Version:
24
24
  </dt>
25
- <dd><code>{{ pdfJs.version }}</code></dd>
25
+ <dd><code>{{ version }}</code></dd>
26
26
  </dl>
27
27
  </div>
28
28
  </template>
29
29
 
30
30
  <script>
31
31
  import { pAspectRatio } from "../aspect-ratio";
32
- import { defineComponent } from "vue-demi";
32
+ import {
33
+ defineComponent,
34
+ onMounted,
35
+ ref
36
+ } from "vue-demi";
33
37
  import Heading from "../heading/Heading.vue";
38
+ import { getVersion } from "./utils/pdfjs";
34
39
  export default defineComponent({
35
40
  directives: { pAspectRatio },
36
41
  components: { Heading },
@@ -39,17 +44,17 @@ export default defineComponent({
39
44
  type: String,
40
45
  default: ""
41
46
  },
42
- pdfJs: {
43
- type: Object,
44
- default: () => ({})
45
- },
46
47
  error: {
47
48
  type: Object,
48
49
  default: () => ({})
49
50
  }
50
51
  },
51
52
  setup() {
52
- return {};
53
+ const version = ref("");
54
+ onMounted(async () => {
55
+ version.value = await getVersion();
56
+ });
57
+ return { version };
53
58
  }
54
59
  });
55
60
  </script>
@@ -1,27 +1,20 @@
1
- import type * as PDFJS from 'pdfjs-dist';
2
1
  import { PropType } from 'vue-demi';
3
2
  declare const _default: import("vue-demi").DefineComponent<{
4
3
  url: {
5
4
  type: StringConstructor;
6
5
  default: string;
7
6
  };
8
- pdfJs: {
9
- type: PropType<typeof PDFJS>;
10
- default: () => {};
11
- };
12
7
  error: {
13
8
  type: PropType<Error>;
14
9
  default: () => Error;
15
10
  };
16
- }, {}, 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<{
11
+ }, {
12
+ version: import("vue-demi").Ref<string>;
13
+ }, 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<{
17
14
  url: {
18
15
  type: StringConstructor;
19
16
  default: string;
20
17
  };
21
- pdfJs: {
22
- type: PropType<typeof PDFJS>;
23
- default: () => {};
24
- };
25
18
  error: {
26
19
  type: PropType<Error>;
27
20
  default: () => Error;
@@ -29,6 +22,5 @@ declare const _default: import("vue-demi").DefineComponent<{
29
22
  }>>, {
30
23
  error: Error;
31
24
  url: string;
32
- pdfJs: typeof PDFJS;
33
25
  }, {}>;
34
26
  export default _default;