@privyid/persona 0.17.1 → 0.18.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 (117) hide show
  1. package/dist/components/avatar/utils/create-image.mjs +1 -1
  2. package/dist/components/banner/Banner.vue +3 -3
  3. package/dist/components/breadcrumbs/BreadcrumbItem.vue +1 -1
  4. package/dist/components/breadcrumbs/BreadcrumbItemDropdown.vue +1 -1
  5. package/dist/components/button/Button.vue +24 -11
  6. package/dist/components/button/Button.vue.d.ts +19 -9
  7. package/dist/components/button/index.d.ts +1 -0
  8. package/dist/components/calendar/Calendar.vue +8 -4
  9. package/dist/components/camera/Camera.vue +3 -3
  10. package/dist/components/card/Card.vue +9 -3
  11. package/dist/components/card/Card.vue.d.ts +1 -1
  12. package/dist/components/carousel/Carousel.vue.d.ts +6 -6
  13. package/dist/components/chart/ChartSet.vue.d.ts +2 -2
  14. package/dist/components/chart/ChartVal.vue.d.ts +4 -4
  15. package/dist/components/checkbox/Checkbox.vue.d.ts +6 -6
  16. package/dist/components/checkbox/index.mjs +1 -1
  17. package/dist/components/collapse/Collapse.vue +12 -1
  18. package/dist/components/contextual-bar/ContextualBar.vue +1 -1
  19. package/dist/components/contextual-bar/ContextualBar.vue.d.ts +2 -2
  20. package/dist/components/cropper/Cropper.vue +4 -4
  21. package/dist/components/cropper/Cropper.vue.d.ts +8 -8
  22. package/dist/components/datepicker/Datepicker.vue +19 -4
  23. package/dist/components/datepicker/Datepicker.vue.d.ts +10 -0
  24. package/dist/components/dropdown/Dropdown.vue +1 -1
  25. package/dist/components/dropdown/Dropdown.vue.d.ts +4 -4
  26. package/dist/components/dropdown/DropdownItem.vue +10 -0
  27. package/dist/components/dropdown/DropdownItem.vue.d.ts +9 -0
  28. package/dist/components/dropdown/utils/use-focus.d.ts +1 -1
  29. package/dist/components/dropdown/utils/use-focus.mjs +2 -2
  30. package/dist/components/dropdown-subitem/DropdownSubitem.vue +2 -2
  31. package/dist/components/dropzone/Dropzone.vue.d.ts +2 -2
  32. package/dist/components/filterbar/pinned/PinnedDate.vue +4 -7
  33. package/dist/components/filterbar/pinned/PinnedMultiselect.vue +4 -7
  34. package/dist/components/filterbar/pinned/PinnedSelect.vue +5 -7
  35. package/dist/components/filterbar/pinned/PinnedSelect.vue.d.ts +2 -2
  36. package/dist/components/filterbar/pinned/PinnedToggle.vue.d.ts +6 -6
  37. package/dist/components/form-group/FormGroup.vue +1 -1
  38. package/dist/components/global/router.d.ts +2 -1
  39. package/dist/components/input/Input.vue +22 -4
  40. package/dist/components/input/Input.vue.d.ts +22 -2
  41. package/dist/components/input/index.d.ts +1 -0
  42. package/dist/components/input/index.mjs +5 -0
  43. package/dist/components/input/utils/accept.d.ts +26 -0
  44. package/dist/components/input/utils/accept.mjs +81 -0
  45. package/dist/components/input-file/InputFile.vue.d.ts +3 -3
  46. package/dist/components/input-password/InputPassword.vue +4 -1
  47. package/dist/components/input-password/InputPassword.vue.d.ts +7 -3
  48. package/dist/components/input-pin/InputPin.vue +45 -30
  49. package/dist/components/input-pin/InputPin.vue.d.ts +26 -7
  50. package/dist/components/input-pin/index.d.ts +6 -0
  51. package/dist/components/input-pin/index.mjs +3 -0
  52. package/dist/components/input-range/InputRange.vue +5 -5
  53. package/dist/components/input-range/InputRange.vue.d.ts +6 -6
  54. package/dist/components/label/Label.vue +1 -1
  55. package/dist/components/label/Label.vue.d.ts +1 -1
  56. package/dist/components/list-group/ListGroup.vue +25 -0
  57. package/dist/components/list-group/ListGroup.vue.d.ts +18 -0
  58. package/dist/components/modal/Modal.vue +5 -2
  59. package/dist/components/modal/Modal.vue.d.ts +2 -2
  60. package/dist/components/nav/NavItem.vue +19 -6
  61. package/dist/components/nav/NavItem.vue.d.ts +6 -3
  62. package/dist/components/nav/NavItemDropdown.vue.d.ts +1 -1
  63. package/dist/components/navbar/Navbar.vue.d.ts +1 -1
  64. package/dist/components/navbar/NavbarToggle.vue +2 -2
  65. package/dist/components/pagination/Pagination.vue +2 -2
  66. package/dist/components/pagination/Pagination.vue.d.ts +1 -1
  67. package/dist/components/pdf-text/PdfText.vue.d.ts +1 -1
  68. package/dist/components/pdf-viewer/PdfNavigation.vue +4 -4
  69. package/dist/components/pdf-viewer/PdfViewer.vue +1 -2
  70. package/dist/components/pdf-viewer/PdfViewer.vue.d.ts +4 -4
  71. package/dist/components/progress-indicator/ProgressIndicator.vue.d.ts +2 -2
  72. package/dist/components/radio/Radio.vue +1 -1
  73. package/dist/components/radio/Radio.vue.d.ts +4 -4
  74. package/dist/components/select/Select.vue +54 -27
  75. package/dist/components/select/Select.vue.d.ts +23 -5
  76. package/dist/components/select/index.d.ts +2 -0
  77. package/dist/components/select/index.mjs +4 -0
  78. package/dist/components/sidebar/Sidebar.vue.d.ts +1 -1
  79. package/dist/components/sidebar/SidebarNav.vue +2 -0
  80. package/dist/components/sidebar-menu/SidebarMenu.vue +68 -48
  81. package/dist/components/sidebar-menu/SidebarMenu.vue.d.ts +3 -3
  82. package/dist/components/sidebar-menu/index.d.ts +95 -2
  83. package/dist/components/sidebar-menu/index.mjs +41 -0
  84. package/dist/components/signature-draw/SignatureDrawMobile.vue +3 -7
  85. package/dist/components/signature-text/SignatureText.vue.d.ts +5 -5
  86. package/dist/components/spinner/Spinner.vue +28 -12
  87. package/dist/components/spinner/SpinnerRing.vue +14 -7
  88. package/dist/components/spinner/SpinnerRinggo.vue +62 -0
  89. package/dist/components/spinner/SpinnerRinggo.vue.d.ts +6 -0
  90. package/dist/components/steps/Step.vue +3 -0
  91. package/dist/components/steps/Step.vue.d.ts +1 -0
  92. package/dist/components/steps/Steps.vue +1 -0
  93. package/dist/components/steps/index.d.ts +2 -0
  94. package/dist/components/steps/index.mjs +1 -0
  95. package/dist/components/strengthbar/Strengthbar.vue.d.ts +9 -9
  96. package/dist/components/table/Table.vue +2 -2
  97. package/dist/components/tabs/Tabs.vue +4 -2
  98. package/dist/components/textarea/Textarea.vue +10 -1
  99. package/dist/components/textarea/Textarea.vue.d.ts +16 -4
  100. package/dist/components/toast/Toast.vue +5 -5
  101. package/dist/components/toast/ToastContainer.vue +6 -6
  102. package/dist/components/toggle/Toggle.vue +1 -1
  103. package/dist/components/toggle/Toggle.vue.d.ts +6 -6
  104. package/dist/components/tooltip/Tooltip.vue.d.ts +1 -1
  105. package/dist/components/tooltip/TooltipContainer.vue +18 -3
  106. package/dist/components/tooltip/index.d.ts +3 -0
  107. package/dist/components/tooltip/index.mjs +29 -4
  108. package/dist/components/tooltip/utils/parse-bindings.d.ts +2 -1
  109. package/dist/components/tooltip/utils/parse-bindings.mjs +2 -0
  110. package/dist/components/tour/TourDialog.vue +1 -1
  111. package/dist/components/tour/TourDialog.vue.d.ts +1 -1
  112. package/dist/components/truncate/Truncate.vue +9 -1
  113. package/dist/components/truncate/Truncate.vue.d.ts +11 -2
  114. package/dist/core/index.d.ts +2 -1
  115. package/dist/core/index.mjs +7 -1
  116. package/dist/module.json +1 -1
  117. package/package.json +14 -14
@@ -1,9 +1,14 @@
1
1
  import { PropType } from 'vue-demi';
2
+ import { SizeVariant } from '../button';
2
3
  declare const _default: import("vue-demi").DefineComponent<{
3
4
  modelValue: {
4
5
  type: PropType<Date | [Date, Date]>;
5
6
  default: undefined;
6
7
  };
8
+ size: {
9
+ type: PropType<SizeVariant>;
10
+ default: string;
11
+ };
7
12
  start: {
8
13
  type: DateConstructor;
9
14
  default: undefined;
@@ -68,6 +73,10 @@ declare const _default: import("vue-demi").DefineComponent<{
68
73
  type: PropType<Date | [Date, Date]>;
69
74
  default: undefined;
70
75
  };
76
+ size: {
77
+ type: PropType<SizeVariant>;
78
+ default: string;
79
+ };
71
80
  start: {
72
81
  type: DateConstructor;
73
82
  default: undefined;
@@ -127,6 +136,7 @@ declare const _default: import("vue-demi").DefineComponent<{
127
136
  "onUpdate:end"?: ((...args: any[]) => any) | undefined;
128
137
  }, {
129
138
  error: boolean;
139
+ size: SizeVariant;
130
140
  start: Date;
131
141
  end: Date;
132
142
  min: Date;
@@ -75,7 +75,7 @@ import {
75
75
  hide
76
76
  } from "@floating-ui/dom";
77
77
  import { useVModel } from "../input";
78
- import IconArrow from "@carbon/icons-vue/lib/chevron--down/16";
78
+ import IconArrow from "@privyid/persona-icon/vue/chevron-down/16.vue";
79
79
  import { DROPDOWN_CONTEXT } from ".";
80
80
  export default defineComponent({
81
81
  components: {
@@ -67,7 +67,7 @@ declare const _default: import("vue-demi").DefineComponent<{
67
67
  toggle: () => void;
68
68
  open: () => void;
69
69
  close: () => void;
70
- }, unknown, {}, {}, import("vue-demi").ComponentOptionsMixin, import("vue-demi").ComponentOptionsMixin, ("update:modelValue" | "show" | "hide")[], "update:modelValue" | "show" | "hide", import("vue-demi").VNodeProps & import("vue-demi").AllowedComponentProps & import("vue-demi").ComponentCustomProps, Readonly<import("vue-demi").ExtractPropTypes<{
70
+ }, unknown, {}, {}, import("vue-demi").ComponentOptionsMixin, import("vue-demi").ComponentOptionsMixin, ("show" | "update:modelValue" | "hide")[], "show" | "update:modelValue" | "hide", import("vue-demi").VNodeProps & import("vue-demi").AllowedComponentProps & import("vue-demi").ComponentCustomProps, Readonly<import("vue-demi").ExtractPropTypes<{
71
71
  modelValue: {
72
72
  type: BooleanConstructor;
73
73
  default: boolean;
@@ -131,10 +131,10 @@ declare const _default: import("vue-demi").DefineComponent<{
131
131
  }, {
132
132
  variant: StyleVariant;
133
133
  size: SizeVariant;
134
- text: string;
135
- pill: boolean;
136
- color: ColorVariant;
137
134
  icon: boolean;
135
+ color: ColorVariant;
136
+ pill: boolean;
137
+ text: string;
138
138
  modelValue: boolean;
139
139
  disabled: boolean;
140
140
  placement: Placement;
@@ -5,6 +5,7 @@
5
5
  class="dropdown__item"
6
6
  :class="classNames"
7
7
  :href="href"
8
+ :disabled="disabled"
8
9
  @click="handleOnClick">
9
10
  <slot>
10
11
  {{ text }}
@@ -32,6 +33,10 @@ export default defineComponent({
32
33
  active: {
33
34
  type: Boolean,
34
35
  default: false
36
+ },
37
+ disabled: {
38
+ type: Boolean,
39
+ default: false
35
40
  }
36
41
  },
37
42
  emits: ["click"],
@@ -83,5 +88,10 @@ export default defineComponent({
83
88
  @apply bg-default-alpha;
84
89
  @apply dark:bg-dark-default-alpha cursor-default;
85
90
  }
91
+
92
+ &:disabled {
93
+ @apply bg-subtle border-subtle pointer-events-none text-muted;
94
+ @apply dark:bg-dark-subtle dark:border-dark-subtle dark:text-dark-muted;
95
+ }
86
96
  }
87
97
  </style>
@@ -12,6 +12,10 @@ declare const _default: import("vue-demi").DefineComponent<{
12
12
  type: BooleanConstructor;
13
13
  default: boolean;
14
14
  };
15
+ disabled: {
16
+ type: BooleanConstructor;
17
+ default: boolean;
18
+ };
15
19
  }, {
16
20
  handleOnClick: (event: Event) => void;
17
21
  classNames: import("vue-demi").ComputedRef<string[]>;
@@ -29,11 +33,16 @@ declare const _default: import("vue-demi").DefineComponent<{
29
33
  type: BooleanConstructor;
30
34
  default: boolean;
31
35
  };
36
+ disabled: {
37
+ type: BooleanConstructor;
38
+ default: boolean;
39
+ };
32
40
  }>> & {
33
41
  onClick?: ((...args: any[]) => any) | undefined;
34
42
  }, {
35
43
  href: string;
36
44
  active: boolean;
37
45
  text: string;
46
+ disabled: boolean;
38
47
  }, {}>;
39
48
  export default _default;
@@ -1,5 +1,5 @@
1
1
  import type { Ref } from 'vue-demi';
2
- export declare function useFocus(target: Ref<HTMLElement>, repeat?: boolean): {
2
+ export declare function useFocus(target: Ref<HTMLElement>, loop?: boolean): {
3
3
  next: () => void;
4
4
  prev: () => void;
5
5
  };
@@ -1,10 +1,10 @@
1
1
  import { clamp } from "lodash-es";
2
2
  import { focusable } from "tabbable";
3
- export function useFocus(target, repeat = true) {
3
+ export function useFocus(target, loop = true) {
4
4
  function travel(step) {
5
5
  const elements = focusable(target.value);
6
6
  const index = elements.indexOf(document.activeElement);
7
- const nextIndex = repeat ? (index + step) % elements.length : clamp(index + step, 0, elements.length - 1);
7
+ const nextIndex = loop ? (index + step) % elements.length : clamp(index + step, 0, elements.length - 1);
8
8
  const targetFocus = elements.at(nextIndex);
9
9
  if (targetFocus !== void 0)
10
10
  targetFocus.focus();
@@ -50,8 +50,8 @@
50
50
 
51
51
  <script>
52
52
  import DropdownItem from "../dropdown/DropdownItem.vue";
53
- import IconNext from "@carbon/icons-vue/lib/chevron--right/16";
54
- import IconBack from "@carbon/icons-vue/lib/arrow--left/16";
53
+ import IconNext from "@privyid/persona-icon/vue/chevron-right/16.vue";
54
+ import IconBack from "@privyid/persona-icon/vue/arrow-left/16.vue";
55
55
  import {
56
56
  defineComponent,
57
57
  inject,
@@ -14,7 +14,7 @@ declare const _default: import("vue-demi").DefineComponent<{
14
14
  default: boolean;
15
15
  };
16
16
  maxlength: {
17
- type: (StringConstructor | NumberConstructor)[];
17
+ type: (NumberConstructor | StringConstructor)[];
18
18
  default: undefined;
19
19
  };
20
20
  accept: {
@@ -57,7 +57,7 @@ declare const _default: import("vue-demi").DefineComponent<{
57
57
  default: boolean;
58
58
  };
59
59
  maxlength: {
60
- type: (StringConstructor | NumberConstructor)[];
60
+ type: (NumberConstructor | StringConstructor)[];
61
61
  default: undefined;
62
62
  };
63
63
  accept: {
@@ -9,12 +9,9 @@
9
9
  <template #button-content>
10
10
  {{ value ? value : schema.label }}
11
11
  </template>
12
- <Subheading
13
- class="px-4 pt-4 pb-1"
14
- weight="medium"
15
- overline>
12
+ <DropdownHeader>
16
13
  {{ schema.label }}
17
- </Subheading>
14
+ </DropdownHeader>
18
15
 
19
16
  <Calendar
20
17
  v-model="model"
@@ -31,15 +28,15 @@ import {
31
28
  defineComponent,
32
29
  ref
33
30
  } from "vue-demi";
34
- import Subheading from "../../subheading/Subheading.vue";
35
31
  import Calendar from "../../calendar/Calendar.vue";
36
32
  import Dropdown from "../../dropdown/Dropdown.vue";
33
+ import DropdownHeader from "../../dropdown/DropdownHeader.vue";
37
34
  import { useVModel } from "../../input";
38
35
  import { isDate, format as formatDate } from "date-fns";
39
36
  export default defineComponent({
40
37
  components: {
41
- Subheading,
42
38
  Dropdown,
39
+ DropdownHeader,
43
40
  Calendar
44
41
  },
45
42
  props: {
@@ -22,12 +22,9 @@
22
22
  </template>
23
23
  </template>
24
24
 
25
- <Subheading
26
- class="px-4 pt-4 pb-1"
27
- weight="medium"
28
- overline>
25
+ <DropdownHeader>
29
26
  {{ schema.label }}
30
- </Subheading>
27
+ </DropdownHeader>
31
28
  <template
32
29
  v-for="(item, i) in items"
33
30
  :key="i">
@@ -48,8 +45,8 @@ import {
48
45
  ref
49
46
  } from "vue-demi";
50
47
  import Badge from "../../badge/Badge.vue";
51
- import Subheading from "../../subheading/Subheading.vue";
52
48
  import Dropdown from "../../dropdown/Dropdown.vue";
49
+ import DropdownHeader from "../../dropdown/DropdownHeader.vue";
53
50
  import Checkbox from "../../checkbox/Checkbox.vue";
54
51
  import { useOptionsProp } from "../../select/adapter/adapter";
55
52
  import { useVModel } from "../../input";
@@ -57,8 +54,8 @@ import { isEqual } from "../../utils/value";
57
54
  export default defineComponent({
58
55
  components: {
59
56
  Badge,
60
- Subheading,
61
57
  Dropdown,
58
+ DropdownHeader,
62
59
  Checkbox
63
60
  },
64
61
  props: {
@@ -10,12 +10,10 @@
10
10
  <template #button-content>
11
11
  {{ selected ? selected.text : schema.label }}
12
12
  </template>
13
- <Subheading
14
- class="px-4 pt-4 pb-1"
15
- weight="medium"
16
- overline>
13
+ <DropdownHeader>
17
14
  {{ schema.label }}
18
- </Subheading>
15
+ </DropdownHeader>
16
+
19
17
  <template
20
18
  v-for="(item, i) in items"
21
19
  :key="i">
@@ -36,16 +34,16 @@ import {
36
34
  defineComponent,
37
35
  ref
38
36
  } from "vue-demi";
39
- import Subheading from "../../subheading/Subheading.vue";
40
37
  import Dropdown from "../../dropdown/Dropdown.vue";
38
+ import DropdownHeader from "../../dropdown/DropdownHeader.vue";
41
39
  import Radio from "../../radio/Radio.vue";
42
40
  import { useOptionsProp } from "../../select/adapter/adapter";
43
41
  import { useVModel } from "../../input";
44
42
  import { isEqual } from "../../utils/value";
45
43
  export default defineComponent({
46
44
  components: {
47
- Subheading,
48
45
  Dropdown,
46
+ DropdownHeader,
49
47
  Radio
50
48
  },
51
49
  props: {
@@ -11,7 +11,7 @@ declare const _default: import("vue-demi").DefineComponent<{
11
11
  default: () => never[];
12
12
  };
13
13
  modelValue: {
14
- type: (StringConstructor | ArrayConstructor | ObjectConstructor | BooleanConstructor | DateConstructor | NumberConstructor)[];
14
+ type: (NumberConstructor | StringConstructor | ArrayConstructor | ObjectConstructor | BooleanConstructor | DateConstructor)[];
15
15
  default: undefined;
16
16
  };
17
17
  }, {
@@ -30,7 +30,7 @@ declare const _default: import("vue-demi").DefineComponent<{
30
30
  default: () => never[];
31
31
  };
32
32
  modelValue: {
33
- type: (StringConstructor | ArrayConstructor | ObjectConstructor | BooleanConstructor | DateConstructor | NumberConstructor)[];
33
+ type: (NumberConstructor | StringConstructor | ArrayConstructor | ObjectConstructor | BooleanConstructor | DateConstructor)[];
34
34
  default: undefined;
35
35
  };
36
36
  }>> & {
@@ -6,15 +6,15 @@ declare const _default: import("vue-demi").DefineComponent<{
6
6
  required: true;
7
7
  };
8
8
  modelValue: {
9
- type: (StringConstructor | ArrayConstructor | ObjectConstructor | BooleanConstructor | DateConstructor | NumberConstructor)[];
9
+ type: (NumberConstructor | StringConstructor | ArrayConstructor | ObjectConstructor | BooleanConstructor | DateConstructor)[];
10
10
  default: boolean;
11
11
  };
12
12
  value: {
13
- type: (StringConstructor | ArrayConstructor | ObjectConstructor | BooleanConstructor | DateConstructor | NumberConstructor)[];
13
+ type: (NumberConstructor | StringConstructor | ArrayConstructor | ObjectConstructor | BooleanConstructor | DateConstructor)[];
14
14
  default: boolean;
15
15
  };
16
16
  uncheckedValue: {
17
- type: (StringConstructor | ArrayConstructor | ObjectConstructor | BooleanConstructor | DateConstructor | NumberConstructor)[];
17
+ type: (NumberConstructor | StringConstructor | ArrayConstructor | ObjectConstructor | BooleanConstructor | DateConstructor)[];
18
18
  default: boolean;
19
19
  };
20
20
  checked: {
@@ -30,15 +30,15 @@ declare const _default: import("vue-demi").DefineComponent<{
30
30
  required: true;
31
31
  };
32
32
  modelValue: {
33
- type: (StringConstructor | ArrayConstructor | ObjectConstructor | BooleanConstructor | DateConstructor | NumberConstructor)[];
33
+ type: (NumberConstructor | StringConstructor | ArrayConstructor | ObjectConstructor | BooleanConstructor | DateConstructor)[];
34
34
  default: boolean;
35
35
  };
36
36
  value: {
37
- type: (StringConstructor | ArrayConstructor | ObjectConstructor | BooleanConstructor | DateConstructor | NumberConstructor)[];
37
+ type: (NumberConstructor | StringConstructor | ArrayConstructor | ObjectConstructor | BooleanConstructor | DateConstructor)[];
38
38
  default: boolean;
39
39
  };
40
40
  uncheckedValue: {
41
- type: (StringConstructor | ArrayConstructor | ObjectConstructor | BooleanConstructor | DateConstructor | NumberConstructor)[];
41
+ type: (NumberConstructor | StringConstructor | ArrayConstructor | ObjectConstructor | BooleanConstructor | DateConstructor)[];
42
42
  default: boolean;
43
43
  };
44
44
  checked: {
@@ -42,7 +42,7 @@
42
42
  </template>
43
43
 
44
44
  <script>
45
- import IconInfo from "@carbon/icons-vue/lib/information--filled/16";
45
+ import IconInfo from "@privyid/persona-icon/vue/information-circle-solid/20.vue";
46
46
  import pCaption from "../caption/Caption.vue";
47
47
  import { pTooltip } from "../tooltip";
48
48
  import { computed, defineComponent } from "vue-demi";
@@ -1,3 +1,4 @@
1
+ import type { RouteLocationRaw } from 'vue-router';
1
2
  /**
2
3
  * Universal router which compatible in many enviroment
3
4
  */
@@ -5,7 +6,7 @@ interface RouterCompat {
5
6
  /**
6
7
  * redirect to URL
7
8
  */
8
- toURL: (url: string) => unknown | Promise<unknown>;
9
+ toURL: (url: RouteLocationRaw) => unknown | Promise<unknown>;
9
10
  /**
10
11
  * Get current URL
11
12
  */
@@ -1,6 +1,7 @@
1
1
  <template>
2
2
  <div
3
3
  class="input"
4
+ :class="containerClass"
4
5
  data-testid="input-container">
5
6
  <span
6
7
  v-if="$slots.prepend"
@@ -14,7 +15,8 @@
14
15
  :disabled="disabled"
15
16
  :readonly="readonly"
16
17
  :class="classNames"
17
- v-bind="$attrs">
18
+ v-bind="$attrs"
19
+ @beforeinput="checkOnInput(accept, $event)">
18
20
  <IconClear
19
21
  v-show="(clearable && model)"
20
22
  class="input__clear"
@@ -35,8 +37,11 @@ import {
35
37
  inject
36
38
  } from "vue-demi";
37
39
  import { useVModel } from ".";
38
- import IconClear from "@carbon/icons-vue/lib/close--filled/16";
40
+ import IconClear from "@privyid/persona-icon/vue/close-circle-solid/20.vue";
39
41
  import { INPUTGROUP_SETTING } from "../input-group";
42
+ import {
43
+ checkOnInput
44
+ } from "./utils/accept";
40
45
  export default defineComponent({
41
46
  components: { IconClear },
42
47
  inheritAttrs: false,
@@ -64,6 +69,18 @@ export default defineComponent({
64
69
  clearable: {
65
70
  type: Boolean,
66
71
  default: false
72
+ },
73
+ containerClass: {
74
+ type: [
75
+ String,
76
+ Array,
77
+ Object
78
+ ],
79
+ default: void 0
80
+ },
81
+ accept: {
82
+ type: String,
83
+ default: void 0
67
84
  }
68
85
  },
69
86
  models: {
@@ -102,7 +119,8 @@ export default defineComponent({
102
119
  return {
103
120
  classNames,
104
121
  model,
105
- clear
122
+ clear,
123
+ checkOnInput
106
124
  };
107
125
  }
108
126
  });
@@ -155,7 +173,7 @@ export default defineComponent({
155
173
  }
156
174
 
157
175
  .input__clear {
158
- @apply text-default/30 cursor-pointer hover:text-danger z-1;
176
+ @apply text-default/30 cursor-pointer hover:text-danger z-[2];
159
177
  @apply dark:text-dark-default/30 hover:dark:text-dark-danger;
160
178
  }
161
179
 
@@ -1,8 +1,9 @@
1
1
  import { PropType } from 'vue-demi';
2
2
  import { SizeVariant } from '../button';
3
+ import { AcceptVariant, checkOnInput } from './utils/accept';
3
4
  declare const _default: import("vue-demi").DefineComponent<{
4
5
  modelValue: {
5
- type: (StringConstructor | NumberConstructor)[];
6
+ type: (NumberConstructor | StringConstructor)[];
6
7
  default: undefined;
7
8
  };
8
9
  size: {
@@ -25,13 +26,22 @@ declare const _default: import("vue-demi").DefineComponent<{
25
26
  type: BooleanConstructor;
26
27
  default: boolean;
27
28
  };
29
+ containerClass: {
30
+ type: (StringConstructor | ArrayConstructor | ObjectConstructor)[];
31
+ default: undefined;
32
+ };
33
+ accept: {
34
+ type: PropType<AcceptVariant>;
35
+ default: undefined;
36
+ };
28
37
  }, {
29
38
  classNames: import("vue-demi").ComputedRef<string[]>;
30
39
  model: import("vue-demi").Ref<string | number | undefined>;
31
40
  clear: (event: MouseEvent) => void;
41
+ checkOnInput: typeof checkOnInput;
32
42
  }, unknown, {}, {}, import("vue-demi").ComponentOptionsMixin, import("vue-demi").ComponentOptionsMixin, ("update:modelValue" | "clear")[], "update:modelValue" | "clear", import("vue-demi").VNodeProps & import("vue-demi").AllowedComponentProps & import("vue-demi").ComponentCustomProps, Readonly<import("vue-demi").ExtractPropTypes<{
33
43
  modelValue: {
34
- type: (StringConstructor | NumberConstructor)[];
44
+ type: (NumberConstructor | StringConstructor)[];
35
45
  default: undefined;
36
46
  };
37
47
  size: {
@@ -54,6 +64,14 @@ declare const _default: import("vue-demi").DefineComponent<{
54
64
  type: BooleanConstructor;
55
65
  default: boolean;
56
66
  };
67
+ containerClass: {
68
+ type: (StringConstructor | ArrayConstructor | ObjectConstructor)[];
69
+ default: undefined;
70
+ };
71
+ accept: {
72
+ type: PropType<AcceptVariant>;
73
+ default: undefined;
74
+ };
57
75
  }>> & {
58
76
  "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
59
77
  onClear?: ((...args: any[]) => any) | undefined;
@@ -63,6 +81,8 @@ declare const _default: import("vue-demi").DefineComponent<{
63
81
  modelValue: string | number;
64
82
  disabled: boolean;
65
83
  readonly: boolean;
84
+ accept: AcceptVariant;
66
85
  clearable: boolean;
86
+ containerClass: string | Record<string, any> | unknown[];
67
87
  }, {}>;
68
88
  export default _default;
@@ -3,3 +3,4 @@ export interface InputProps<V = string> {
3
3
  modelValue: V;
4
4
  }
5
5
  export declare function useVModel<V>(props: InputProps<V>): Ref<V>;
6
+ export { type AcceptVariant, isAccepted, removeUnaccepted, checkOnInput, } from './utils/accept';
@@ -18,3 +18,8 @@ export function useVModel(props) {
18
18
  syncRef(localValue, model, { immediate: false });
19
19
  return localValue;
20
20
  }
21
+ export {
22
+ isAccepted,
23
+ removeUnaccepted,
24
+ checkOnInput
25
+ } from "./utils/accept.mjs";
@@ -0,0 +1,26 @@
1
+ import { LiteralUnion } from 'type-fest';
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;
22
+ };
23
+ export type AcceptVariant = LiteralUnion<keyof typeof AcceptPresets, string>;
24
+ export declare function isAccepted(accept: AcceptVariant | undefined, text: string): boolean;
25
+ export declare function removeUnaccepted(accept: AcceptVariant | undefined, text: string): string;
26
+ export declare function checkOnInput(accept: AcceptVariant | undefined, event: Event): void;
@@ -0,0 +1,81 @@
1
+ const ALPHA = "A-Za-z";
2
+ const NUMERIC = "\\d";
3
+ const SPACE = "\\s";
4
+ const SYMBOL = "!\"#$%&'()*+,./:;<=>?@[\\\\\\]^_`{|}~-";
5
+ const REGEX_ALPHA = `${ALPHA}`;
6
+ const REGEX_NUMERIC = `${NUMERIC}`;
7
+ const REGEX_ALPHA_NUMERIC = `${ALPHA}${NUMERIC}`;
8
+ const REGEX_ALPHA_NUMERIC_SPACE = `${ALPHA}${NUMERIC}${SPACE}`;
9
+ const REGEX_ALPHA_NUMERIC_SPACE_SYMBOL = `${ALPHA}${NUMERIC}${SPACE}${SYMBOL}`;
10
+ const REGEX_ALPHA_SPACE = `${ALPHA}${SPACE}`;
11
+ const REGEX_ALPHA_SPACE_SYMBOL = `${ALPHA}${SPACE}${SYMBOL}`;
12
+ const REGEX_NUMERIC_SPACE = `${NUMERIC}${SPACE}`;
13
+ const REGEX_NUMERIC_SPACE_SYMBOL = `${NUMERIC}${SPACE}${SYMBOL}`;
14
+ export const AcceptPresets = {
15
+ "num": REGEX_NUMERIC,
16
+ "numeric": REGEX_NUMERIC,
17
+ "digit": REGEX_NUMERIC,
18
+ "alpha": REGEX_ALPHA,
19
+ "alpha-num": REGEX_ALPHA_NUMERIC,
20
+ "alpha-num-space": REGEX_ALPHA_NUMERIC_SPACE,
21
+ "alpha-num-space-symbol": REGEX_ALPHA_NUMERIC_SPACE_SYMBOL,
22
+ "alpha-numeric": REGEX_ALPHA_NUMERIC,
23
+ "alpha-numeric-space": REGEX_ALPHA_NUMERIC_SPACE,
24
+ "alpha-numeric-space-symbol": REGEX_ALPHA_NUMERIC_SPACE_SYMBOL,
25
+ "alpha-space": REGEX_ALPHA_SPACE,
26
+ "alpha-space-symbol": REGEX_ALPHA_SPACE_SYMBOL,
27
+ "num-space": REGEX_NUMERIC_SPACE,
28
+ "num-space-symbol": REGEX_NUMERIC_SPACE_SYMBOL,
29
+ "numeric-space": REGEX_NUMERIC_SPACE,
30
+ "numeric-space-symbol": REGEX_NUMERIC_SPACE_SYMBOL,
31
+ "non-numeric": REGEX_ALPHA_SPACE_SYMBOL,
32
+ "non-alpha": REGEX_NUMERIC_SPACE_SYMBOL,
33
+ "text": REGEX_ALPHA_NUMERIC_SPACE_SYMBOL
34
+ };
35
+ export function isAccepted(accept, text) {
36
+ if (!accept)
37
+ return true;
38
+ try {
39
+ const regexStr = AcceptPresets[accept.toLowerCase()] ?? accept;
40
+ const regex = new RegExp(`^[${regexStr}]+$`);
41
+ return regex.test(text);
42
+ } catch (error) {
43
+ if (import.meta.env.DEV)
44
+ console.error(error);
45
+ return true;
46
+ }
47
+ }
48
+ export function removeUnaccepted(accept, text) {
49
+ if (!accept)
50
+ return text;
51
+ try {
52
+ const regexStr = AcceptPresets[accept.toLowerCase()] ?? accept;
53
+ const regex = new RegExp(`[^${regexStr}]+`, "g");
54
+ return text.replaceAll(regex, "");
55
+ } catch (error) {
56
+ if (import.meta.env.DEV)
57
+ console.error(error);
58
+ return text;
59
+ }
60
+ }
61
+ export function checkOnInput(accept, event) {
62
+ if (event.data && !isAccepted(accept, event.data)) {
63
+ event.preventDefault();
64
+ if (event.inputType === "insertFromPaste") {
65
+ const target = event.target;
66
+ const oldValue = target.value;
67
+ const value = removeUnaccepted(accept, event.data);
68
+ const ss = target.selectionStart;
69
+ const se = target.selectionEnd;
70
+ const nextValue = `${oldValue.slice(0, ss)}${value}${oldValue.slice(se)}`;
71
+ try {
72
+ target.value = nextValue;
73
+ target.dispatchEvent(new InputEvent("input"));
74
+ target.setSelectionRange(value.length + ss, value.length + ss);
75
+ } catch (error) {
76
+ if (import.meta.env.DEV)
77
+ console.error(error);
78
+ }
79
+ }
80
+ }
81
+ }
@@ -15,7 +15,7 @@ declare const _default: import("vue-demi").DefineComponent<{
15
15
  default: boolean;
16
16
  };
17
17
  maxlength: {
18
- type: (StringConstructor | NumberConstructor)[];
18
+ type: (NumberConstructor | StringConstructor)[];
19
19
  default: undefined;
20
20
  };
21
21
  accept: {
@@ -73,7 +73,7 @@ declare const _default: import("vue-demi").DefineComponent<{
73
73
  default: boolean;
74
74
  };
75
75
  maxlength: {
76
- type: (StringConstructor | NumberConstructor)[];
76
+ type: (NumberConstructor | StringConstructor)[];
77
77
  default: undefined;
78
78
  };
79
79
  accept: {
@@ -124,8 +124,8 @@ declare const _default: import("vue-demi").DefineComponent<{
124
124
  disabled: boolean;
125
125
  readonly: boolean;
126
126
  modelModifiers: ModelModifier;
127
- multiple: boolean | MultipleType;
128
127
  placeholder: string;
128
+ multiple: boolean | MultipleType;
129
129
  maxlength: string | number;
130
130
  accept: string;
131
131
  clearOnCancel: boolean;
@@ -19,7 +19,10 @@
19
19
  import pInput from "../input/Input.vue";
20
20
  import IconShow from "@privyid/persona-icon/vue/view/20.vue";
21
21
  import IconHide from "@privyid/persona-icon/vue/view-off/20.vue";
22
- import { defineComponent, ref } from "vue-demi";
22
+ import {
23
+ ref,
24
+ defineComponent
25
+ } from "vue-demi";
23
26
  export default defineComponent({
24
27
  components: {
25
28
  pInput,