@xy-planning-network/trees 0.2.62 → 0.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/src/index.css ADDED
@@ -0,0 +1,147 @@
1
+ @tailwind base;
2
+ @tailwind components;
3
+ @tailwind utilities;
4
+
5
+ @layer base {
6
+ html {
7
+ @apply antialiased;
8
+ }
9
+
10
+ /* general body copy */
11
+ body {
12
+ @apply text-base leading-normal text-gray-900;
13
+ }
14
+
15
+ /* Headers */
16
+ h1 {
17
+ @apply text-3xl leading-9 font-semibold;
18
+ }
19
+
20
+ h2 {
21
+ @apply text-2xl leading-7 font-semibold;
22
+ }
23
+
24
+ h3 {
25
+ @apply text-lg leading-6 font-semibold;
26
+ }
27
+
28
+ h4 {
29
+ @apply text-base leading-5 font-semibold;
30
+ }
31
+
32
+ h5 {
33
+ @apply text-sm leading-5 font-semibold;
34
+ }
35
+
36
+ h6 {
37
+ @apply text-xs leading-4 font-semibold;
38
+ }
39
+
40
+ /* Forms: here for backward compatibility. Use <BaseInput> instead. */
41
+ [type="text"],
42
+ [type="email"],
43
+ [type="password"],
44
+ [type="number"],
45
+ [type="search"],
46
+ [type="tel"],
47
+ textarea {
48
+ @apply mt-1 shadow-sm focus:ring-blue-500 focus:border-blue-500 block w-full sm:text-sm border-gray-600 rounded-md;
49
+ }
50
+ }
51
+
52
+ @layer components {
53
+ /* Badge classes - TODO: handle anchor tag class cases and generic wrapper cases */
54
+ .xy-badge {
55
+ @apply inline-flex justify-center items-center px-2 py-0.5 rounded text-xs font-semibold bg-gray-100 text-gray-800;
56
+ }
57
+
58
+ .xy-badge-blue {
59
+ @apply inline-flex justify-center items-center px-2 py-0.5 rounded text-xs font-semibold bg-blue-100 text-blue-800;
60
+ }
61
+
62
+ .xy-badge-yellow {
63
+ @apply inline-flex justify-center items-center px-2 py-0.5 rounded text-xs font-semibold bg-yellow-100 text-yellow-800;
64
+ }
65
+
66
+ /* Button classes */
67
+ .xy-btn {
68
+ @apply inline-flex justify-center items-center px-4 py-2 border border-transparent text-sm font-semibold rounded-md shadow-md text-white bg-blue-600 hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 disabled:opacity-50 disabled:cursor-not-allowed;
69
+ }
70
+
71
+ .xy-btn-secondary {
72
+ @apply inline-flex justify-center items-center px-4 py-2 border border-transparent text-sm font-semibold rounded-md shadow-md text-blue-700 bg-blue-100 hover:bg-blue-200 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 disabled:opacity-50 disabled:cursor-not-allowed;
73
+ }
74
+
75
+ .xy-btn-green {
76
+ @apply inline-flex justify-center items-center px-4 py-2 border border-transparent text-sm font-semibold rounded-md shadow-md text-white bg-xy-green hover:bg-green-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-green-500 disabled:opacity-50 disabled:cursor-not-allowed;
77
+ }
78
+
79
+ .xy-btn-red {
80
+ @apply inline-flex justify-center items-center px-4 py-2 border border-transparent text-xs md:text-sm font-semibold rounded-md shadow-md text-red-700 bg-red-100 hover:bg-red-50 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-red-300 disabled:opacity-50 disabled:cursor-not-allowed;
81
+ }
82
+
83
+ .xy-btn-white {
84
+ @apply inline-flex justify-center items-center px-4 py-2 border border-xy-blue shadow-md text-sm font-semibold rounded-md text-xy-blue bg-white hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 disabled:opacity-50 disabled:cursor-not-allowed;
85
+ }
86
+
87
+ /* Header classes */
88
+ .h1 {
89
+ @apply text-3xl leading-9 font-semibold;
90
+ }
91
+
92
+ .h2 {
93
+ @apply text-2xl leading-7 font-semibold;
94
+ }
95
+
96
+ .h3 {
97
+ @apply text-lg leading-6 font-semibold;
98
+ }
99
+
100
+ .h4 {
101
+ @apply text-base leading-5 font-semibold;
102
+ }
103
+
104
+ .h5 {
105
+ @apply text-sm leading-5 font-semibold;
106
+ }
107
+
108
+ .h6 {
109
+ @apply text-xs leading-4 font-semibold;
110
+ }
111
+
112
+ .xy-h1-extra-flair {
113
+ @apply text-3xl font-bold leading-9 tracking-tight sm:text-4xl sm:leading-10;
114
+ }
115
+
116
+ .xy-h1-responsive {
117
+ @apply text-2xl leading-7 font-semibold lg:text-3xl lg:leading-9;
118
+ }
119
+
120
+ .xy-h2-responsive {
121
+ @apply text-lg leading-6 font-semibold lg:text-2xl lg:leading-7;
122
+ }
123
+
124
+ .xy-h3-responsive {
125
+ @apply text-base leading-5 font-semibold lg:text-lg lg:leading-6;
126
+ }
127
+
128
+ /* Link classes */
129
+ .xy-link {
130
+ @apply font-semibold underline text-xy-blue hover:text-blue-700;
131
+ }
132
+ }
133
+
134
+ @layer utilities {
135
+ .max-h-screen-1\/4 {
136
+ max-height: 25vh;
137
+ }
138
+
139
+ .max-h-screen-1\/2 {
140
+ max-height: 50vh;
141
+ }
142
+
143
+ /* Forms */
144
+ .xy-input-error {
145
+ @apply focus:ring-red-700 focus:border-red-700 text-red-900 placeholder-red-700 placeholder-opacity-75 border-red-700;
146
+ }
147
+ }
@@ -16,7 +16,7 @@
16
16
  'shadow-sm',
17
17
  'focus:ring-blue-500',
18
18
  'focus:border-blue-500',
19
- 'border-gray-300',
19
+ 'border-gray-600',
20
20
  'rounded-md',
21
21
  'w-full',
22
22
  ]
@@ -4,7 +4,7 @@
4
4
  <input
5
5
  :aria-labelledby="label ? `${uuid}-label` : undefined"
6
6
  :checked="modelValue"
7
- class="focus:ring-blue-500 h-4 w-4 text-xy-blue border-gray-300 rounded disabled:opacity-50 disabled:cursor-not-allowed"
7
+ class="focus:ring-blue-500 h-4 w-4 text-blue-500 border-gray-600 rounded disabled:opacity-50 disabled:cursor-not-allowed"
8
8
  :id="uuid"
9
9
  type="checkbox"
10
10
  v-bind="{
@@ -15,13 +15,8 @@
15
15
  }"
16
16
  />
17
17
  </div>
18
- <div class="ml-3 text-sm leading-5">
19
- <label
20
- :id="`${uuid}-label`"
21
- :for="uuid"
22
- :class="{ 'font-semibold': emphasis }"
23
- v-text="label"
24
- ></label>
18
+ <div class="ml-3 text-sm font-semibold leading-snug text-gray-900">
19
+ <label :id="`${uuid}-label`" :for="uuid" v-text="label"></label>
25
20
  </div>
26
21
  </div>
27
22
  </template>
@@ -32,6 +27,7 @@ import { Options, Prop, Vue } from "vue-property-decorator";
32
27
 
33
28
  @Options({ name: "Checkbox" })
34
29
  export default class Checkbox extends Vue {
30
+ // TODO: checkbox should support the help text prop like base input, and label should use the label component or possible support a legend prop
35
31
  @Prop({ type: Boolean, required: false }) emphasis?: boolean;
36
32
  @Prop({ type: String, required: false }) label?: string;
37
33
  @Prop({ type: Boolean, required: true }) modelValue!: boolean;
@@ -4,7 +4,7 @@
4
4
  v-if="text"
5
5
  v-bind="{
6
6
  ...$attrs,
7
- class: 'my-2 text-sm leading-snug font-normal text-gray-500',
7
+ class: 'mt-2 text-sm leading-snug font-semibold text-gray-700',
8
8
  }"
9
9
  >
10
10
  {{ text }}
@@ -4,7 +4,7 @@
4
4
  v-if="label"
5
5
  v-bind="{
6
6
  ...$attrs,
7
- class: 'block my-2 text-sm font-semibold leading-snug text-gray-900',
7
+ class: 'block my-1 text-sm font-semibold leading-snug text-gray-900',
8
8
  }"
9
9
  >{{ label }}</component
10
10
  >
@@ -6,14 +6,14 @@
6
6
  <div class="flex items-center h-5">
7
7
  <input
8
8
  type="checkbox"
9
- class="focus:ring-blue-500 h-4 w-4 text-xy-blue border-gray-300 rounded disabled:opacity-50 disabled:cursor-not-allowed"
9
+ class="focus:ring-blue-500 h-4 w-4 text-xy-blue border-gray-600 rounded disabled:opacity-50 disabled:cursor-not-allowed"
10
10
  :id="`${uuid}-${index}`"
11
11
  :value="option.value"
12
12
  v-model="model"
13
13
  v-bind="$attrs"
14
14
  />
15
15
  </div>
16
- <div class="ml-3 text-sm leading-5">
16
+ <div class="ml-3 text-sm font-semibold leading-snug text-gray-900">
17
17
  <label :for="`${uuid}-${index}`" v-text="option.label"></label>
18
18
  </div>
19
19
  </div>
@@ -9,7 +9,7 @@
9
9
  >
10
10
  <input
11
11
  :checked="modelValue === option.value"
12
- class="w-4 h-4 border-gray-300 focus:ring-blue-500 text-xy-blue"
12
+ class="w-4 h-4 border-gray-600 focus:ring-blue-500 text-xy-blue"
13
13
  :id="`${uuid}-${index}`"
14
14
  :name="uuid"
15
15
  type="radio"
@@ -21,7 +21,7 @@
21
21
  },
22
22
  }"
23
23
  />
24
- <span class="block ml-2 text-sm font-medium leading-5">
24
+ <span class="block ml-2 text-sm font-semibold text-gray-900">
25
25
  {{ option.label }}
26
26
  </span>
27
27
  </label>
@@ -45,11 +45,14 @@ export default class Select extends Vue {
45
45
  @Prop({ type: String, required: false }) help?: string;
46
46
  @Prop({ type: Array, required: true }) options!: Array<{
47
47
  label: string;
48
- value: string;
48
+ value: string | number;
49
49
  }>;
50
50
  @Prop({ type: String, required: false, default: "Select an option" })
51
51
  placeholder?: string;
52
- @Prop({ type: String, required: true }) modelValue!: string | undefined;
52
+ @Prop({ type: [String, Number], required: true }) modelValue!:
53
+ | string
54
+ | number
55
+ | undefined;
53
56
 
54
57
  uuid = (this.$attrs.id as string) || Uniques.CreateIdAttribute();
55
58
 
@@ -57,11 +60,11 @@ export default class Select extends Vue {
57
60
  const design = this.design ? this.design : "undefined";
58
61
  return ({
59
62
  undefined:
60
- "mt-1 block w-full border border-gray-300 rounded-md shadow-sm py-2 px-3 focus:outline-none focus:ring-blue-500 focus:border-blue-500 sm:text-sm",
63
+ "mt-1 block w-full border border-gray-600 rounded-md shadow-sm py-2 px-3 focus:outline-none focus:ring-blue-500 focus:border-blue-500 sm:text-sm",
61
64
  standard:
62
- "mt-1 block w-full border border-gray-300 rounded-md shadow-sm py-2 px-3 focus:outline-none focus:ring-blue-500 focus:border-blue-500 sm:text-sm",
65
+ "mt-1 block w-full border border-gray-600 rounded-md shadow-sm py-2 px-3 focus:outline-none focus:ring-blue-500 focus:border-blue-500 sm:text-sm",
63
66
  compressed:
64
- "appearance-none rounded-none relative block w-full px-3 py-2 border border-gray-300 text-gray-900 focus:outline-none focus:ring-blue-500 focus:border-blue-500 focus:z-10 sm:text-sm",
67
+ "appearance-none rounded-none relative block w-full px-3 py-2 border border-gray-600 text-gray-900 focus:outline-none focus:ring-blue-500 focus:border-blue-500 focus:z-10 sm:text-sm",
65
68
  } as any)[design];
66
69
  }
67
70
  }
@@ -15,7 +15,7 @@
15
15
  'shadow-sm',
16
16
  'focus:ring-blue-500',
17
17
  'focus:border-blue-500',
18
- 'border-gray-300',
18
+ 'border-gray-600',
19
19
  'rounded-md',
20
20
  'w-full',
21
21
  ]"
@@ -8,7 +8,7 @@
8
8
  >
9
9
  <input
10
10
  type="radio"
11
- class="w-4 h-4 border-gray-300 focus:ring-blue-500 text-xy-blue"
11
+ class="w-4 h-4 border-gray-600 focus:ring-blue-500 text-xy-blue"
12
12
  :id="`${hasNameAttr ? name : uuid}-true`"
13
13
  :name="hasNameAttr ? name : uuid"
14
14
  :value="true"
@@ -20,9 +20,7 @@
20
20
  },
21
21
  }"
22
22
  />
23
- <span class="block ml-2 text-sm font-medium text-gray-900 leading-5"
24
- >Yes</span
25
- >
23
+ <span class="block ml-2 text-sm font-semibold text-gray-900">Yes</span>
26
24
  </label>
27
25
  <label
28
26
  class="inline-flex items-center ml-6"
@@ -31,7 +29,7 @@
31
29
  >
32
30
  <input
33
31
  type="radio"
34
- class="w-4 h-4 border-gray-300 focus:ring-blue-500 text-xy-blue"
32
+ class="w-4 h-4 border-gray-600 focus:ring-blue-500 text-xy-blue"
35
33
  :id="`${hasNameAttr ? name : uuid}-false`"
36
34
  :name="hasNameAttr ? name : uuid"
37
35
  :value="false"
@@ -43,7 +41,7 @@
43
41
  },
44
42
  }"
45
43
  />
46
- <span class="block ml-2 text-sm font-medium text-gray-900 leading-5">No</span>
44
+ <span class="block ml-2 text-sm font-semibold text-gray-900">No</span>
47
45
  </label>
48
46
  </fieldset>
49
47
  </template>
@@ -10,7 +10,7 @@
10
10
  <div class="mt-4 flex md:mt-0 md:ml-4">
11
11
  <select
12
12
  @change="sortDirChanged($event.target.value)"
13
- class="block w-full border border-gray-300 rounded-md shadow-sm py-2 px-3 focus:outline-none focus:ring-blue-500 focus:border-blue-500 sm:text-sm"
13
+ class="block w-full border border-gray-600 rounded-md shadow-sm py-2 px-3 focus:outline-none focus:ring-blue-500 focus:border-blue-500 sm:text-sm"
14
14
  >
15
15
  <option value="DESC">Newest-Oldest</option>
16
16
  <option value="ASC">Oldest-Newest</option>
@@ -31,6 +31,7 @@ import DateRangePicker from "../forms/DateRangePicker.vue";
31
31
 
32
32
  @Options({ components: { DateRangePicker }, name: "DateFilter" })
33
33
  export default class DateFilter extends Vue {
34
+ // TODO: sort select should use built in select component
34
35
  @Prop({ type: Object, required: true }) dateRange!: {
35
36
  minDate: number;
36
37
  maxDate: number;
@@ -62,7 +62,7 @@
62
62
  :class="[
63
63
  isActive(item.url)
64
64
  ? 'bg-gray-100 text-gray-900'
65
- : 'text-gray-600 hover:bg-gray-50 hover:text-gray-900',
65
+ : 'text-gray-700 hover:bg-gray-50 hover:text-gray-900',
66
66
  'group flex items-center px-2 py-2 text-base font-medium rounded-md',
67
67
  ]"
68
68
  :target="item.openInTab ? '_blank' : '_self'"
@@ -71,8 +71,8 @@
71
71
  :is="item.icon"
72
72
  :class="[
73
73
  isActive(item.url)
74
- ? 'text-gray-500'
75
- : 'text-gray-400 group-hover:text-gray-500',
74
+ ? 'text-gray-600'
75
+ : 'text-gray-500 group-hover:text-gray-600',
76
76
  'mr-4 h-6 w-6',
77
77
  ]"
78
78
  aria-hidden="true"
@@ -108,7 +108,7 @@
108
108
  :class="[
109
109
  isActive(item.url)
110
110
  ? 'bg-gray-100 text-gray-900'
111
- : 'text-gray-600 hover:bg-gray-50 hover:text-gray-900',
111
+ : 'text-gray-700 hover:bg-gray-100 hover:text-gray-900',
112
112
  'group flex items-center px-2 py-2 text-sm font-medium rounded-md',
113
113
  ]"
114
114
  :target="item.openInTab ? '_blank' : '_self'"
@@ -117,8 +117,8 @@
117
117
  :is="item.icon"
118
118
  :class="[
119
119
  isActive(item.url)
120
- ? 'text-gray-500'
121
- : 'text-gray-400 group-hover:text-gray-500',
120
+ ? 'text-gray-600'
121
+ : 'text-gray-500 group-hover:text-gray-600',
122
122
  'mr-3 h-6 w-6',
123
123
  ]"
124
124
  aria-hidden="true"
@@ -176,7 +176,7 @@
176
176
  :href="item.url"
177
177
  :class="[
178
178
  active ? 'bg-gray-100' : '',
179
- 'block px-4 py-2 text-sm text-gray-700',
179
+ 'block px-4 py-2 text-sm text-gray-700 font-semibold',
180
180
  ]"
181
181
  >{{ item.name }}</a
182
182
  >
@@ -15,8 +15,8 @@
15
15
  :class="[
16
16
  isActive(item.url)
17
17
  ? 'border-blue-500 text-gray-900'
18
- : 'border-transparent text-gray-500 hover:text-gray-700 hover:border-gray-300',
19
- 'inline-flex items-center px-1 pt-1 border-b-2 text-sm font-medium',
18
+ : 'border-transparent text-gray-700 hover:text-gray-900 hover:border-blue-500',
19
+ 'inline-flex items-center px-1 pt-1 border-b-2 text-sm font-semibold',
20
20
  ]"
21
21
  :aria-current="isActive(item.url) ? 'page' : undefined"
22
22
  >{{ item.name }}</a
@@ -54,7 +54,7 @@
54
54
  :href="item.url"
55
55
  :class="[
56
56
  active ? 'bg-gray-100' : '',
57
- 'block px-4 py-2 text-sm text-gray-700',
57
+ 'block px-4 py-2 text-sm text-gray-700 font-semibold',
58
58
  ]"
59
59
  >{{ item.name }}</a
60
60
  >
@@ -85,8 +85,8 @@
85
85
  :class="[
86
86
  isActive(item.url)
87
87
  ? 'bg-blue-50 border-blue-500 text-blue-700'
88
- : 'border-transparent text-gray-600 hover:bg-gray-50 hover:border-gray-300 hover:text-gray-800',
89
- 'block pl-3 pr-4 py-2 border-l-4 text-base font-medium',
88
+ : 'border-transparent text-gray-700 hover:bg-gray-50 hover:border-gray-300 hover:text-gray-900',
89
+ 'block pl-3 pr-4 py-2 border-l-4 text-base font-semibold',
90
90
  ]"
91
91
  :aria-current="isActive(item.url) ? 'page' : undefined"
92
92
  >{{ item.name }}</a
@@ -113,7 +113,7 @@
113
113
  v-for="item in userNavigation"
114
114
  :key="item.name"
115
115
  :href="item.url"
116
- class="block px-4 py-2 text-base font-medium text-gray-500 hover:text-gray-800 hover:bg-gray-100"
116
+ class="block px-4 py-2 text-base font-medium text-gray-700 hover:text-gray-900 hover:bg-gray-100"
117
117
  >{{ item.name }}</a
118
118
  >
119
119
  </div>
@@ -15,7 +15,7 @@
15
15
  v-text="card.primary"
16
16
  ></dd>
17
17
  <dt
18
- class="text-sm leading-5 font-medium text-gray-500 truncate"
18
+ class="text-sm leading-5 font-medium text-gray-700 truncate"
19
19
  v-text="card.secondary"
20
20
  ></dt>
21
21
  </dl>
@@ -9,7 +9,7 @@
9
9
  <thead>
10
10
  <tr>
11
11
  <th
12
- class="px-6 py-3 text-xs font-medium tracking-wider text-left text-gray-500 uppercase bg-gray-50 leading-4"
12
+ class="px-6 py-3 text-xs font-medium tracking-wider text-left text-gray-900 uppercase bg-gray-50 leading-4"
13
13
  v-for="(col, idx) in tableData.columns"
14
14
  :key="idx"
15
15
  v-text="col.display"
@@ -22,7 +22,7 @@
22
22
  :key="item.id ? item.id : rowIdx"
23
23
  >
24
24
  <td
25
- class="px-6 py-4 text-sm text-gray-500 whitespace-nowrap leading-5"
25
+ class="px-6 py-4 text-sm text-gray-700 whitespace-nowrap leading-5"
26
26
  v-for="(col, colIdx) in tableData.columns"
27
27
  :key="rowIdx + '-' + colIdx"
28
28
  >
@@ -40,7 +40,7 @@
40
40
  <tr v-if="tableData.items.length == 0">
41
41
  <td
42
42
  :colspan="tableData.columns.length"
43
- class="px-6 py-4 text-sm text-gray-500 whitespace-nowrap leading-5"
43
+ class="px-6 py-4 text-sm text-gray-700 whitespace-nowrap leading-5"
44
44
  >
45
45
  No items were found!
46
46
  </td>
@@ -45,7 +45,7 @@
45
45
  <thead>
46
46
  <tr>
47
47
  <th
48
- class="px-6 py-3 text-xs font-medium tracking-wider text-left text-gray-500 uppercase border-b border-gray-200 bg-gray-50 leading-4"
48
+ class="px-6 py-3 text-xs font-medium tracking-wider text-left text-gray-900 uppercase border-b border-gray-200 bg-gray-50 leading-4"
49
49
  v-for="(col, idx) in tableData.columns"
50
50
  :key="idx"
51
51
  >
@@ -109,7 +109,7 @@
109
109
  :class="{ 'cursor-pointer': clickable }"
110
110
  >
111
111
  <td
112
- class="px-6 py-4 text-sm text-gray-500 whitespace-nowrap border-b border-gray-200 leading-5"
112
+ class="px-6 py-4 text-sm text-gray-700 whitespace-nowrap border-b border-gray-200 leading-5"
113
113
  v-for="(col, colIdx) in tableData.columns"
114
114
  :key="rowIdx + '-' + colIdx"
115
115
  :class="col.class"
@@ -129,7 +129,7 @@
129
129
  <tr v-if="!hasContent">
130
130
  <td
131
131
  :colspan="tableData.columns.length"
132
- class="px-6 py-4 text-sm text-gray-500 whitespace-nowrap border-b border-gray-200 leading-5"
132
+ class="px-6 py-4 text-sm text-gray-700 whitespace-nowrap border-b border-gray-200 leading-5"
133
133
  >
134
134
  No items were found!
135
135
  </td>
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <Menu as="div" class="relative flex justify-end items-center">
3
3
  <MenuButton
4
- class="w-8 h-8 bg-white inline-flex items-center justify-center text-gray-400 rounded-full hover:text-gray-500 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 disabled:opacity-50 disabled:cursor-not-allowed"
4
+ class="w-8 h-8 bg-white inline-flex items-center justify-center text-gray-700 rounded-full hover:text-gray-900 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 disabled:opacity-50 disabled:cursor-not-allowed"
5
5
  :disabled="!hasActionItems"
6
6
  >
7
7
  <span class="sr-only">Open options</span>
@@ -25,7 +25,7 @@
25
25
  type="submit"
26
26
  :class="[
27
27
  active ? 'bg-gray-100 text-gray-900' : 'text-gray-700',
28
- 'block w-full text-left px-4 py-2 text-sm',
28
+ 'block w-full text-left px-4 py-2 text-sm font-semibold',
29
29
  ]"
30
30
  v-text="item.label"
31
31
  @click="emitEvent(item.event)"
@@ -7,8 +7,8 @@
7
7
  @click.prevent="changePage(modelValue.page - 1)"
8
8
  :class="
9
9
  modelValue.page == 1
10
- ? 'text-gray-300 cursor-not-allowed pointer-events-none'
11
- : 'text-gray-500 hover:text-gray-700 hover:border-gray-300'
10
+ ? 'text-gray-500 cursor-not-allowed pointer-events-none'
11
+ : 'text-gray-700 hover:text-gray-900 hover:border-gray-300'
12
12
  "
13
13
  >
14
14
  <svg class="mr-3 h-5 w-5" fill="currentColor" viewBox="0 0 20 20">
@@ -32,7 +32,7 @@
32
32
  :class="
33
33
  modelValue.page === i
34
34
  ? 'border-blue-500 text-blue-600 focus:outline-none focus:text-blue-800 focus:border-blue-700'
35
- : 'border-transparent text-gray-500 hover:text-gray-700 hover:border-gray-300 focus:outline-none focus:text-gray-700 focus:border-gray-400'
35
+ : 'border-transparent text-gray-700 hover:text-gray-900 hover:border-gray-300 focus:outline-none focus:text-gray-700 focus:border-gray-400'
36
36
  "
37
37
  @click.prevent="changePage(i)"
38
38
  ></a>
@@ -45,8 +45,8 @@
45
45
  @click.prevent="changePage(modelValue.page + 1)"
46
46
  :class="
47
47
  modelValue.page >= modelValue.totalPages
48
- ? 'text-gray-300 cursor-not-allowed pointer-events-none'
49
- : 'text-gray-500 hover:text-gray-700 hover:border-gray-300'
48
+ ? 'text-gray-500 cursor-not-allowed pointer-events-none'
49
+ : 'text-gray-700 hover:text-gray-900 hover:border-gray-300'
50
50
  "
51
51
  >
52
52
  Next
@@ -49,7 +49,7 @@ export default class Tabs extends Vue {
49
49
 
50
50
  if (this.pillDesign) {
51
51
  c =
52
- "px-12 py-2 font-medium text-md leading-5 rounded-t-md focus:outline-none ";
52
+ "px-12 py-2 font-semibold text-md leading-5 rounded-t-md focus:outline-none ";
53
53
 
54
54
  if (this.modelValue === currentTab) {
55
55
  c =
@@ -58,14 +58,14 @@ export default class Tabs extends Vue {
58
58
  } else {
59
59
  c =
60
60
  c +
61
- "text-gray-500 hover:text-gray-700 focus:text-gray-700 focus:bg-gray-100 border border-gray-200";
61
+ "text-gray-700 hover:text-gray-900 focus:text-gray-900 focus:bg-gray-100 border border-gray-200";
62
62
  }
63
63
 
64
64
  return c;
65
65
  }
66
66
 
67
67
  c =
68
- "px-1 py-4 text-sm font-medium border-b-2 whitespace-nowrap leading-5 focus:outline-none ";
68
+ "px-1 py-4 text-sm font-semibold border-b-2 whitespace-nowrap leading-5 focus:outline-none ";
69
69
  if (this.modelValue === currentTab) {
70
70
  c =
71
71
  c +
@@ -73,7 +73,7 @@ export default class Tabs extends Vue {
73
73
  } else {
74
74
  c =
75
75
  c +
76
- "border-transparent text-gray-500 hover:text-gray-700 hover:border-gray-300 focus:text-gray-700 focus:border-gray-300";
76
+ "border-transparent text-gray-700 hover:text-gray-900 hover:border-gray-300 focus:text-gray-900 focus:border-gray-300";
77
77
  }
78
78
 
79
79
  if (pastFirstTab) c = c + " ml-8";
@@ -83,9 +83,10 @@ export default class Slideover extends Vue {
83
83
  @Prop({ type: String, required: true }) description!: string;
84
84
  @Prop({ type: Boolean, required: true }) modelValue!: boolean;
85
85
 
86
- @Emit()
87
- close(): void {
88
- return;
86
+ @Emit("close")
87
+ @Emit("update:modelValue")
88
+ close(): boolean {
89
+ return false;
89
90
  }
90
91
  }
91
92
  </script>