@privyid/persona 0.15.0 → 0.17.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 (90) hide show
  1. package/dist/components/button/Button.vue.d.ts +2 -2
  2. package/dist/components/calendar/Calendar.vue +162 -38
  3. package/dist/components/calendar/Calendar.vue.d.ts +63 -10
  4. package/dist/components/calendar/adapter/adapter.d.ts +8 -2
  5. package/dist/components/calendar/adapter/adapter.mjs +38 -1
  6. package/dist/components/calendar/adapter/date.mjs +10 -8
  7. package/dist/components/calendar/adapter/month.mjs +11 -8
  8. package/dist/components/calendar/adapter/year.mjs +7 -7
  9. package/dist/components/card/Card.vue +8 -5
  10. package/dist/components/carousel/Carousel.vue +197 -0
  11. package/dist/components/carousel/Carousel.vue.d.ts +111 -0
  12. package/dist/components/carousel/CarouselBody.vue +25 -0
  13. package/dist/components/carousel/CarouselBody.vue.d.ts +2 -0
  14. package/dist/components/carousel/CarouselItem.vue +15 -0
  15. package/dist/components/carousel/CarouselItem.vue.d.ts +2 -0
  16. package/dist/components/carousel/index.d.ts +4 -0
  17. package/dist/components/carousel/index.mjs +1 -0
  18. package/dist/components/checkbox/Checkbox.vue +2 -2
  19. package/dist/components/cropper/utils/use-ratio.d.ts +1 -1
  20. package/dist/components/cropper/utils/use-ratio.mjs +2 -2
  21. package/dist/components/datepicker/Datepicker.vue +38 -3
  22. package/dist/components/datepicker/Datepicker.vue.d.ts +50 -3
  23. package/dist/components/dropdown/Dropdown.vue +11 -1
  24. package/dist/components/dropdown/Dropdown.vue.d.ts +11 -2
  25. package/dist/components/dropdown/DropdownHeader.vue +35 -0
  26. package/dist/components/dropdown/DropdownHeader.vue.d.ts +2 -0
  27. package/dist/components/form-group/FormGroup.vue +16 -5
  28. package/dist/components/input/Input.vue +4 -3
  29. package/dist/components/input/Input.vue.d.ts +3 -3
  30. package/dist/components/input/index.mjs +1 -1
  31. package/dist/components/input-password/InputPassword.vue +5 -5
  32. package/dist/components/input-pin/InputPin.vue +3 -3
  33. package/dist/components/input-pin/InputPin.vue.d.ts +2 -2
  34. package/dist/components/input-range/InputRange.vue +4 -4
  35. package/dist/components/input-range/InputRange.vue.d.ts +5 -5
  36. package/dist/components/label/Label.vue.d.ts +1 -1
  37. package/dist/components/list-group/ListGroup.vue +51 -0
  38. package/dist/components/list-group/ListGroup.vue.d.ts +25 -0
  39. package/dist/components/list-group/ListGroupItem.vue +94 -0
  40. package/dist/components/list-group/ListGroupItem.vue.d.ts +37 -0
  41. package/dist/components/list-group/index.d.ts +1 -0
  42. package/dist/components/list-group/index.mjs +0 -0
  43. package/dist/components/modal/Modal.vue.d.ts +1 -1
  44. package/dist/components/nav/Nav.vue +29 -7
  45. package/dist/components/nav/Nav.vue.d.ts +19 -1
  46. package/dist/components/nav/NavItem.vue +10 -2
  47. package/dist/components/nav/NavItem.vue.d.ts +9 -0
  48. package/dist/components/nav/NavItemDropdown.vue +6 -1
  49. package/dist/components/nav/NavItemDropdown.vue.d.ts +10 -1
  50. package/dist/components/nav/NavSubItem.vue +1 -1
  51. package/dist/components/navbar/Navbar.vue +8 -3
  52. package/dist/components/pdf-object/PdfObject.vue +18 -8
  53. package/dist/components/pdf-object/PdfObject.vue.d.ts +5 -5
  54. package/dist/components/pdf-object/utils/position.mjs +9 -3
  55. package/dist/components/pdf-text/PdfText.vue.d.ts +3 -3
  56. package/dist/components/pdf-viewer/PdfViewer.vue +1 -1
  57. package/dist/components/pdf-viewer/PdfViewer.vue.d.ts +3 -3
  58. package/dist/components/progress-indicator/ProgressIndicator.vue +125 -0
  59. package/dist/components/progress-indicator/ProgressIndicator.vue.d.ts +42 -0
  60. package/dist/components/radio/Radio.vue +2 -2
  61. package/dist/components/sidebar/Sidebar.vue +3 -1
  62. package/dist/components/sidebar/SidebarNav.vue +95 -4
  63. package/dist/components/sidebar/SidebarNav.vue.d.ts +29 -0
  64. package/dist/components/sidebar-menu/SidebarMenu.vue +143 -3
  65. package/dist/components/sidebar-menu/SidebarMenu.vue.d.ts +31 -1
  66. package/dist/components/sidebar-menu/index.d.ts +6 -0
  67. package/dist/components/signature-draw/SignatureDraw.vue +5 -6
  68. package/dist/components/signature-draw/SignatureDraw.vue.d.ts +0 -1
  69. package/dist/components/signature-text/SignatureText.vue.d.ts +2 -2
  70. package/dist/components/steps/StepSlider.vue +6 -8
  71. package/dist/components/steps/StepSlider.vue.d.ts +9 -0
  72. package/dist/components/steps/Steps.vue +28 -9
  73. package/dist/components/steps/Steps.vue.d.ts +30 -2
  74. package/dist/components/steps/index.d.ts +2 -0
  75. package/dist/components/tabs/Tabs.vue.d.ts +1 -1
  76. package/dist/components/text/Text.vue +6 -3
  77. package/dist/components/textarea/Textarea.vue +1 -1
  78. package/dist/components/textarea/Textarea.vue.d.ts +3 -3
  79. package/dist/components/toast/Toast.vue +18 -9
  80. package/dist/components/toast/ToastContainer.vue +118 -29
  81. package/dist/components/toast/ToastContainer.vue.d.ts +18 -3
  82. package/dist/components/toast/ToastRoot.vue +45 -0
  83. package/dist/components/toast/ToastRoot.vue.d.ts +13 -0
  84. package/dist/components/toast/index.d.ts +2 -0
  85. package/dist/components/toast/index.mjs +3 -3
  86. package/dist/components/tour/TourDialog.vue.d.ts +1 -1
  87. package/dist/components/truncate/Truncate.vue.d.ts +2 -2
  88. package/dist/module.json +1 -1
  89. package/dist/module.mjs +1 -0
  90. package/package.json +10 -7
@@ -51,6 +51,10 @@ declare const _default: import("vue-demi").DefineComponent<{
51
51
  type: (StringConstructor | ArrayConstructor | ObjectConstructor)[];
52
52
  default: undefined;
53
53
  };
54
+ buttonClass: {
55
+ type: (StringConstructor | ArrayConstructor | ObjectConstructor)[];
56
+ default: undefined;
57
+ };
54
58
  menuSize: {
55
59
  type: PropType<MenuSizeVariant>;
56
60
  default: string;
@@ -111,6 +115,10 @@ declare const _default: import("vue-demi").DefineComponent<{
111
115
  type: (StringConstructor | ArrayConstructor | ObjectConstructor)[];
112
116
  default: undefined;
113
117
  };
118
+ buttonClass: {
119
+ type: (StringConstructor | ArrayConstructor | ObjectConstructor)[];
120
+ default: undefined;
121
+ };
114
122
  menuSize: {
115
123
  type: PropType<MenuSizeVariant>;
116
124
  default: string;
@@ -122,16 +130,17 @@ declare const _default: import("vue-demi").DefineComponent<{
122
130
  }, {
123
131
  variant: StyleVariant;
124
132
  size: SizeVariant;
125
- text: string;
126
- color: ColorVariant;
127
133
  icon: boolean;
134
+ color: ColorVariant;
128
135
  pill: boolean;
136
+ text: string;
129
137
  modelValue: boolean;
130
138
  disabled: boolean;
131
139
  placement: Placement;
132
140
  noCaret: boolean;
133
141
  divider: boolean;
134
142
  menuClass: string | Record<string, any> | unknown[];
143
+ buttonClass: string | Record<string, any> | unknown[];
135
144
  menuSize: MenuSizeVariant;
136
145
  }, {}>;
137
146
  export default _default;
@@ -0,0 +1,35 @@
1
+ <template>
2
+ <Subheading
3
+ overline
4
+ data-testid="dropdown-header"
5
+ weight="medium"
6
+ class="dropdown__header">
7
+ <span>
8
+ <slot />
9
+ </span>
10
+ <span
11
+ v-if="$slots.action"
12
+ data-testid="dropdown-header-action"
13
+ class="dropdown__header__action">
14
+ <slot name="action" />
15
+ </span>
16
+ </Subheading>
17
+ </template>
18
+
19
+ <script>
20
+ import { defineComponent } from "vue-demi";
21
+ import Subheading from "../subheading/Subheading.vue";
22
+ export default defineComponent({ components: { Subheading } });
23
+ </script>
24
+
25
+ <style lang="postcss">
26
+ .dropdown {
27
+ &__header {
28
+ @apply px-4 pt-3 pb-1 flex items-center justify-between;
29
+
30
+ &__action {
31
+ @apply normal-case font-medium;
32
+ }
33
+ }
34
+ }
35
+ </style>
@@ -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;
@@ -1,14 +1,23 @@
1
1
  <template>
2
2
  <div
3
3
  class="form-group"
4
+ data-testid="form-group"
4
5
  :class="classNames">
5
- <label class="form-group__label">
6
+ <label
7
+ data-testid="form-group-label"
8
+ class="form-group__label">
6
9
  <IconInfo
7
10
  v-if="hint"
8
11
  v-p-tooltip="hint"
12
+ data-testid="form-group-hint"
9
13
  class="form-group__hint" />
10
- {{ label }}<sup v-if="required">*</sup>
11
- <p-caption v-if="caption">{{ caption }}</p-caption>
14
+ {{ label }}<sup
15
+ v-if="required"
16
+ data-testid="form-group-required">*</sup>
17
+ <p-caption
18
+ v-if="caption"
19
+ data-testid="form-group-caption">
20
+ {{ caption }}</p-caption>
12
21
  </label>
13
22
 
14
23
  <slot />
@@ -18,11 +27,13 @@
18
27
  mode="out-in">
19
28
  <p
20
29
  v-if="error"
30
+ data-testid="form-group-error"
21
31
  class="form-group__error">
22
32
  {{ error }}
23
33
  </p>
24
34
  <p
25
35
  v-else-if="description"
36
+ data-testid="form-group-description"
26
37
  class="form-group__description">
27
38
  {{ description }}
28
39
  </p>
@@ -81,8 +92,8 @@ export default defineComponent({
81
92
  @apply flex flex-col mb-4;
82
93
 
83
94
  &__label {
84
- @apply font-bold text-xs mb-2 relative text-default;
85
- @apply dark:text-dark-default;
95
+ @apply font-bold text-xs mb-2 relative text-subtle;
96
+ @apply dark:text-dark-subtle;
86
97
 
87
98
  > sup {
88
99
  @apply text-danger;
@@ -43,7 +43,7 @@ export default defineComponent({
43
43
  props: {
44
44
  modelValue: {
45
45
  type: [String, Number],
46
- default: ""
46
+ default: void 0
47
47
  },
48
48
  size: {
49
49
  type: String,
@@ -114,8 +114,8 @@ export default defineComponent({
114
114
  @apply dark:bg-dark-default;
115
115
 
116
116
  &__form {
117
- @apply py-[10px] px-3 text-base relative rounded border border-solid border-muted hover:border-subtle text-default placeholder:text-muted w-full outline-none;
118
- @apply dark:border-dark-muted hover:dark:border-dark-subtle dark:text-dark-default placeholder:dark:text-dark-muted;
117
+ @apply py-[10px] px-3 text-base relative rounded border border-solid border-muted hover:border-subtle text-default placeholder:text-muted w-full outline-none bg-transparent;
118
+ @apply dark:border-dark-muted hover:dark:border-dark-subtle dark:text-dark-default placeholder:dark:text-dark-muted dark:bg-transparent;
119
119
 
120
120
  &:disabled,
121
121
  &--disabled,
@@ -147,6 +147,7 @@ export default defineComponent({
147
147
  }
148
148
 
149
149
  .state--error,
150
+ .state--error & > &__form,
150
151
  &--error,
151
152
  &-group--error.input-group .input > .input__form {
152
153
  @apply border-danger-emphasis hover:border-danger-emphasis focus:ring-danger focus:border-danger-emphasis;
@@ -3,7 +3,7 @@ import { SizeVariant } from '../button';
3
3
  declare const _default: import("vue-demi").DefineComponent<{
4
4
  modelValue: {
5
5
  type: (NumberConstructor | StringConstructor)[];
6
- default: string;
6
+ default: undefined;
7
7
  };
8
8
  size: {
9
9
  type: PropType<SizeVariant>;
@@ -27,12 +27,12 @@ declare const _default: import("vue-demi").DefineComponent<{
27
27
  };
28
28
  }, {
29
29
  classNames: import("vue-demi").ComputedRef<string[]>;
30
- model: import("vue-demi").Ref<string | number>;
30
+ model: import("vue-demi").Ref<string | number | undefined>;
31
31
  clear: (event: MouseEvent) => void;
32
32
  }, 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
33
  modelValue: {
34
34
  type: (NumberConstructor | StringConstructor)[];
35
- default: string;
35
+ default: undefined;
36
36
  };
37
37
  size: {
38
38
  type: PropType<SizeVariant>;
@@ -15,6 +15,6 @@ export function useVModel(props) {
15
15
  emit("update:modelValue", value);
16
16
  }
17
17
  });
18
- syncRef(localValue, model);
18
+ syncRef(localValue, model, { immediate: false });
19
19
  return localValue;
20
20
  }
@@ -17,8 +17,8 @@
17
17
 
18
18
  <script>
19
19
  import pInput from "../input/Input.vue";
20
- import IconShow from "@carbon/icons-vue/lib/view/16";
21
- import IconHide from "@carbon/icons-vue/lib/view--off/16";
20
+ import IconShow from "@privyid/persona-icon/vue/view/20.vue";
21
+ import IconHide from "@privyid/persona-icon/vue/view-off/20.vue";
22
22
  import { defineComponent, ref } from "vue-demi";
23
23
  export default defineComponent({
24
24
  components: {
@@ -44,7 +44,7 @@ export default defineComponent({
44
44
  @apply pr-9;
45
45
 
46
46
  &__toggle {
47
- @apply absolute right-3 top-1/2 -translate-y-1/2 cursor-pointer z-1 text-default/30 hover:text-subtle;
47
+ @apply absolute right-[0.15rem] top-1/2 -translate-y-1/2 cursor-pointer z-1 text-default/30 hover:text-subtle;
48
48
  @apply dark:text-dark-default/30 hover:dark:text-dark-subtle;
49
49
 
50
50
  .input--disabled ~ & {
@@ -54,10 +54,10 @@ export default defineComponent({
54
54
  }
55
55
 
56
56
  &.input--clearable {
57
- @apply pr-14;
57
+ @apply pr-16;
58
58
 
59
59
  + .input__clear {
60
- @apply right-9;
60
+ @apply right-10;
61
61
  }
62
62
  }
63
63
  }
@@ -43,7 +43,7 @@ export default defineComponent({
43
43
  props: {
44
44
  modelValue: {
45
45
  type: String,
46
- default: ""
46
+ default: void 0
47
47
  },
48
48
  length: {
49
49
  type: [Number, String],
@@ -70,7 +70,7 @@ export default defineComponent({
70
70
  setup(props, { emit }) {
71
71
  const root = templateRef("root");
72
72
  const num = useToNumber(toRef(props, "length"));
73
- const localModel = ref([...props.modelValue.padEnd(num.value)].slice(0, num.value));
73
+ const localModel = ref([...props.modelValue?.padEnd(num.value) ?? ""].slice(0, num.value));
74
74
  const classNames = computed(() => {
75
75
  const result = [];
76
76
  if (props.disabled)
@@ -84,7 +84,7 @@ export default defineComponent({
84
84
  const { next: nextFocus, prev: prevFocus } = useFocus(root, false);
85
85
  const model = computed({
86
86
  get() {
87
- return [...props.modelValue.padEnd(num.value)].slice(0, num.value);
87
+ return [...props.modelValue?.padEnd(num.value) ?? ""].slice(0, num.value);
88
88
  },
89
89
  set(value) {
90
90
  const text = value.map((val) => val || " ").join("").trimEnd();
@@ -1,7 +1,7 @@
1
1
  declare const _default: import("vue-demi").DefineComponent<{
2
2
  modelValue: {
3
3
  type: StringConstructor;
4
- default: string;
4
+ default: undefined;
5
5
  };
6
6
  length: {
7
7
  type: (NumberConstructor | StringConstructor)[];
@@ -33,7 +33,7 @@ declare const _default: import("vue-demi").DefineComponent<{
33
33
  }, 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<{
34
34
  modelValue: {
35
35
  type: StringConstructor;
36
- default: string;
36
+ default: undefined;
37
37
  };
38
38
  length: {
39
39
  type: (NumberConstructor | StringConstructor)[];
@@ -122,7 +122,7 @@ export default defineComponent({
122
122
  const start = useClamp(localStart.value, min, maxDrag);
123
123
  const end = useClamp(localEnd.value, minDrag, max);
124
124
  const { width, left } = useElementBounding(track);
125
- const startValue = computed({
125
+ const vStart = computed({
126
126
  get() {
127
127
  if (Array.isArray(props.modelValue))
128
128
  return props.modelValue[0];
@@ -132,7 +132,7 @@ export default defineComponent({
132
132
  emit("update:start", value);
133
133
  }
134
134
  });
135
- const endValue = computed({
135
+ const vEnd = computed({
136
136
  get() {
137
137
  if (Array.isArray(props.modelValue))
138
138
  return props.modelValue[1];
@@ -203,8 +203,8 @@ export default defineComponent({
203
203
  if (!props.disabled && !props.readonly)
204
204
  end.value = getValue(event);
205
205
  });
206
- syncRef(start, startValue);
207
- syncRef(end, endValue);
206
+ syncRef(start, vStart);
207
+ syncRef(end, vEnd);
208
208
  watch([start, end], ([startVal, endVal]) => {
209
209
  localStart.value = startVal;
210
210
  localEnd.value = endVal;
@@ -47,7 +47,7 @@ declare const _default: import("vue-demi").DefineComponent<{
47
47
  onClickLowerTrack: (event: MouseEvent) => void;
48
48
  onClickActiveTrack: (event: MouseEvent) => void;
49
49
  onClickUpperTrack: (event: MouseEvent) => void;
50
- }, unknown, {}, {}, import("vue-demi").ComponentOptionsMixin, import("vue-demi").ComponentOptionsMixin, ("change" | "update:modelValue" | "update:end" | "update:start")[], "change" | "update:modelValue" | "update:end" | "update:start", import("vue-demi").VNodeProps & import("vue-demi").AllowedComponentProps & import("vue-demi").ComponentCustomProps, Readonly<import("vue-demi").ExtractPropTypes<{
50
+ }, unknown, {}, {}, import("vue-demi").ComponentOptionsMixin, import("vue-demi").ComponentOptionsMixin, ("change" | "update:modelValue" | "update:start" | "update:end")[], "change" | "update:modelValue" | "update:start" | "update:end", import("vue-demi").VNodeProps & import("vue-demi").AllowedComponentProps & import("vue-demi").ComponentCustomProps, Readonly<import("vue-demi").ExtractPropTypes<{
51
51
  modelValue: {
52
52
  type: PropType<number | [number, number]>;
53
53
  default: undefined;
@@ -91,18 +91,18 @@ declare const _default: import("vue-demi").DefineComponent<{
91
91
  }>> & {
92
92
  onChange?: ((...args: any[]) => any) | undefined;
93
93
  "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
94
- "onUpdate:end"?: ((...args: any[]) => any) | undefined;
95
94
  "onUpdate:start"?: ((...args: any[]) => any) | undefined;
95
+ "onUpdate:end"?: ((...args: any[]) => any) | undefined;
96
96
  }, {
97
97
  error: boolean;
98
- min: string | number;
99
- max: string | number;
100
98
  start: number;
101
99
  end: number;
100
+ min: string | number;
101
+ max: string | number;
102
102
  modelValue: number | [number, number];
103
103
  disabled: boolean;
104
104
  readonly: boolean;
105
- multiple: boolean;
106
105
  step: string | number;
106
+ multiple: boolean;
107
107
  }, {}>;
108
108
  export default _default;
@@ -44,7 +44,7 @@ declare const _default: import("vue-demi").DefineComponent<{
44
44
  }, {
45
45
  variant: StyleVariant;
46
46
  size: SizeVariant;
47
- color: ColorVariant;
48
47
  dismissable: boolean;
48
+ color: ColorVariant;
49
49
  }, {}>;
50
50
  export default _default;
@@ -0,0 +1,51 @@
1
+ <template>
2
+ <span
3
+ class="list-group"
4
+ data-testid="list-group"
5
+ :class="classNames">
6
+ <slot />
7
+ </span>
8
+ </template>
9
+ <script>
10
+ import { defineComponent, computed } from "vue-demi";
11
+ export default defineComponent({
12
+ props: {
13
+ flush: {
14
+ type: Boolean,
15
+ default: false
16
+ },
17
+ horizontal: {
18
+ type: Boolean,
19
+ default: false
20
+ }
21
+ },
22
+ setup(props) {
23
+ const classNames = computed(() => {
24
+ const result = [""];
25
+ if (props.flush)
26
+ result.push("list-group--flush");
27
+ if (props.horizontal)
28
+ result.push("list-group--horizontal");
29
+ return result;
30
+ });
31
+ return { classNames };
32
+ }
33
+ });
34
+ </script>
35
+ <style lang="postcss">
36
+ .list-group {
37
+ --p-list-group-bg: theme(backgroundColor.default.DEFAULT);
38
+ --p-list-group-bg-dark: theme(backgroundColor.dark.default.DEFAULT);
39
+
40
+ @apply flex flex-col max-w-full divide-y divide-default border border-default rounded-md bg-[color:var(--p-list-group-bg)];
41
+ @apply dark:border-dark-default dark:divide-dark-default dark:bg-[color:var(--p-list-group-bg-dark)];
42
+
43
+ &--flush {
44
+ @apply border-0 rounded-none;
45
+ }
46
+
47
+ &--horizontal {
48
+ @apply flex-row divide-x divide-y-0;
49
+ }
50
+ }
51
+ </style>
@@ -0,0 +1,25 @@
1
+ declare const _default: import("vue-demi").DefineComponent<{
2
+ flush: {
3
+ type: BooleanConstructor;
4
+ default: boolean;
5
+ };
6
+ horizontal: {
7
+ type: BooleanConstructor;
8
+ default: boolean;
9
+ };
10
+ }, {
11
+ classNames: import("vue-demi").ComputedRef<string[]>;
12
+ }, 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<{
13
+ flush: {
14
+ type: BooleanConstructor;
15
+ default: boolean;
16
+ };
17
+ horizontal: {
18
+ type: BooleanConstructor;
19
+ default: boolean;
20
+ };
21
+ }>>, {
22
+ horizontal: boolean;
23
+ flush: boolean;
24
+ }, {}>;
25
+ export default _default;
@@ -0,0 +1,94 @@
1
+ <template>
2
+ <component
3
+ :is="elementNames"
4
+ data-testid="list-group-item"
5
+ class="list-group__item"
6
+ :aria-current="active"
7
+ :aria-disabled="disabled"
8
+ :class="classNames">
9
+ <slot />
10
+ </component>
11
+ </template>
12
+ <script>
13
+ import {
14
+ defineComponent,
15
+ computed,
16
+ ref
17
+ } from "vue-demi";
18
+ import IconCheck from "@privyid/persona-icon/vue/checkmark-circle/20.vue";
19
+ import pCaption from "../caption/Caption.vue";
20
+ export default defineComponent({
21
+ components: { pCaption, IconCheck },
22
+ props: {
23
+ active: {
24
+ type: Boolean,
25
+ default: void 0
26
+ },
27
+ disabled: {
28
+ type: Boolean,
29
+ default: void 0
30
+ },
31
+ element: {
32
+ type: String,
33
+ default: "span"
34
+ }
35
+ },
36
+ setup(props) {
37
+ const classNames = computed(() => {
38
+ const result = [""];
39
+ if (props.active)
40
+ result.push("list-group__item--active");
41
+ if (props.disabled)
42
+ result.push("list-group__item--disabled");
43
+ return result;
44
+ });
45
+ const elementNames = computed(() => {
46
+ const el = ref("");
47
+ el.value = props.element === "link" ? "a" : props.element;
48
+ return el.value;
49
+ });
50
+ return {
51
+ classNames,
52
+ elementNames
53
+ };
54
+ }
55
+ });
56
+ </script>
57
+ <style lang="postcss">
58
+ .list-group {
59
+ &__item {
60
+ --p-list-item-bg: theme(backgroundColor.default.DEFAULT);
61
+ --p-list-item-bg-dark: theme(backgroundColor.dark.default.DEFAULT);
62
+ --p-list-item-bg-active: theme(backgroundColor.default.alpha);
63
+ --p-list-item-bg-active-dark: theme(backgroundColor.dark.default.alpha);
64
+ --p-list-item-padding-x: theme(spacing.4);
65
+ --p-list-item-padding-y: theme(spacing.2);
66
+
67
+ @apply relative block px-[var(--p-list-item-padding-x)] py-[--p-list-item-padding-y] bg-[color:var(--p-list-item-bg)] first:rounded-t-md last:rounded-b-md text-default;
68
+ @apply dark:bg-[color:var(--p-list-item-bg-dark)] dark:text-dark-default;
69
+
70
+ .list-group--flush & {
71
+ @apply first:rounded-none last:rounded-none;
72
+ }
73
+
74
+ .list-group--horizontal & {
75
+ @apply first:rounded-l-md last:rounded-r-md first:rounded-tr-none last:rounded-bl-none;
76
+ }
77
+
78
+ a& {
79
+ @apply cursor-pointer text-default hover:bg-default-alpha;
80
+ @apply dark:text-dark-default dark:hover:bg-dark-default-alpha;
81
+ }
82
+
83
+ &:is(&--active) {
84
+ @apply bg-[color:var(--p-list-item-bg-active)] cursor-default;
85
+ @apply dark:bg-[color:var(--p-list-item-bg-active-dark)];
86
+ }
87
+
88
+ &:is(&--disabled) {
89
+ @apply cursor-default bg-[color:var(--p-list-item-bg)/50] hover:bg-[color:var(--p-list-item-bg)/50] text-default/50 hover:text-default/50;
90
+ @apply dark:bg-[color:var(--p-list-item-bg-dark)/50] dark:hover:bg-[color:var(--p-list-item-bg-dark)/50] dark:text-dark-default/50 dark:hover:text-dark-default/50;
91
+ }
92
+ }
93
+ }
94
+ </style>
@@ -0,0 +1,37 @@
1
+ import { PropType } from 'vue-demi';
2
+ import { ElementVariant } from '.';
3
+ declare const _default: import("vue-demi").DefineComponent<{
4
+ active: {
5
+ type: BooleanConstructor;
6
+ default: undefined;
7
+ };
8
+ disabled: {
9
+ type: BooleanConstructor;
10
+ default: undefined;
11
+ };
12
+ element: {
13
+ type: PropType<ElementVariant>;
14
+ default: string;
15
+ };
16
+ }, {
17
+ classNames: import("vue-demi").ComputedRef<string[]>;
18
+ elementNames: import("vue-demi").ComputedRef<string>;
19
+ }, 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<{
20
+ active: {
21
+ type: BooleanConstructor;
22
+ default: undefined;
23
+ };
24
+ disabled: {
25
+ type: BooleanConstructor;
26
+ default: undefined;
27
+ };
28
+ element: {
29
+ type: PropType<ElementVariant>;
30
+ default: string;
31
+ };
32
+ }>>, {
33
+ active: boolean;
34
+ disabled: boolean;
35
+ element: ElementVariant;
36
+ }, {}>;
37
+ export default _default;
@@ -0,0 +1 @@
1
+ export type ElementVariant = 'div' | 'span' | 'link';
File without changes
@@ -92,9 +92,9 @@ declare const _default: import("vue-demi").DefineComponent<{
92
92
  onClose?: ((...args: any[]) => any) | undefined;
93
93
  }, {
94
94
  size: SizeVariant;
95
- text: string;
96
95
  dismissable: boolean;
97
96
  banner: boolean;
97
+ text: string;
98
98
  modelValue: boolean;
99
99
  title: string;
100
100
  centered: boolean;
@@ -5,11 +5,20 @@
5
5
  <li
6
6
  v-if="title"
7
7
  class="nav__title">
8
- <Caption
9
- weight="bold"
10
- transform="capitalize">
11
- {{ title }}
12
- </Caption>
8
+ <span class="nav__title__item">
9
+ <Caption
10
+ weight="bold"
11
+ transform="capitalize">
12
+ {{ title }}
13
+ </Caption>
14
+ <Text
15
+ v-if="titleActionLabel && titleActionUrl"
16
+ data-testid="nav-action"
17
+ variant="caption"
18
+ :href="titleActionUrl">
19
+ {{ titleActionLabel }}
20
+ </Text>
21
+ </span>
13
22
  </li>
14
23
  <slot />
15
24
  </ul>
@@ -21,8 +30,9 @@ import {
21
30
  defineComponent
22
31
  } from "vue-demi";
23
32
  import Caption from "../caption/Caption.vue";
33
+ import Text from "../text/Text.vue";
24
34
  export default defineComponent({
25
- components: { Caption },
35
+ components: { Caption, Text },
26
36
  props: {
27
37
  fill: {
28
38
  type: Boolean,
@@ -48,6 +58,14 @@ export default defineComponent({
48
58
  type: String,
49
59
  default: void 0
50
60
  },
61
+ titleActionLabel: {
62
+ type: String,
63
+ default: void 0
64
+ },
65
+ titleActionUrl: {
66
+ type: String,
67
+ default: void 0
68
+ },
51
69
  condensed: {
52
70
  type: Boolean,
53
71
  default: false
@@ -346,7 +364,11 @@ export default defineComponent({
346
364
  }
347
365
 
348
366
  &__title {
349
- @apply absolute left-5 top-0 text-base inline-block;
367
+ @apply absolute left-5 top-0 text-base w-[calc(100%-1.75rem)]; /* 1.25rem + 0.75rem (padding) */
368
+
369
+ &__item {
370
+ @apply flex items-center w-full justify-between space-x-2;
371
+ }
350
372
 
351
373
  .caption {
352
374
  @apply text-subtle;