@carbon/vue 3.0.14 → 3.0.16

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 (36) hide show
  1. package/dist/carbon-vue-3.common.js +789 -278
  2. package/dist/carbon-vue-3.common.js.map +1 -1
  3. package/dist/carbon-vue-3.umd.js +789 -278
  4. package/dist/carbon-vue-3.umd.js.map +1 -1
  5. package/dist/carbon-vue-3.umd.min.js +4 -4
  6. package/dist/carbon-vue-3.umd.min.js.map +1 -1
  7. package/dist/web-types.json +21 -3
  8. package/package.json +12 -9
  9. package/src/components/CvBreadcrumb/CvBreadcrumb.vue +1 -0
  10. package/src/components/CvBreadcrumb/CvBreadcrumbItem.vue +1 -0
  11. package/src/components/CvButton/CvButton.vue +1 -0
  12. package/src/components/CvButton/CvButtonSet.vue +1 -0
  13. package/src/components/CvButton/CvIconButton.vue +1 -0
  14. package/src/components/CvCheckbox/CvCheckbox.vue +2 -2
  15. package/src/components/CvCodeSnippet/CvCodeSnippet.vue +8 -3
  16. package/src/components/CvCodeSnippet/_CviCodeSnippetInline.vue +1 -0
  17. package/src/components/CvCodeSnippet/_CviCodeSnippetMultiline.vue +1 -0
  18. package/src/components/CvCodeSnippet/_CviCodeSnippetOneline.vue +1 -0
  19. package/src/components/CvComboBox/CvComboBox.vue +1 -0
  20. package/src/components/CvDataTable/CvDataTable.stories.mdx +26 -49
  21. package/src/components/CvDataTable/CvDataTable.vue +45 -45
  22. package/src/components/CvDataTable/_CvDataTableRowInner.vue +6 -5
  23. package/src/components/CvDataTable/cvDataTableStore.js +0 -27
  24. package/src/components/CvDatePicker/CvDatePicker.stories.js +30 -6
  25. package/src/components/CvDatePicker/CvDatePicker.vue +15 -8
  26. package/src/components/CvDropdown/CvDropdown.stories.mdx +6 -0
  27. package/src/components/CvDropdown/CvDropdown.vue +1 -0
  28. package/src/components/CvList/CvList.vue +1 -0
  29. package/src/components/CvList/CvListItem.vue +1 -1
  30. package/src/components/CvNotification/CvInlineNotification.vue +1 -0
  31. package/src/components/CvNotification/CvToastNotification.vue +1 -0
  32. package/src/components/CvPagination/CvPagination.stories.mdx +22 -15
  33. package/src/components/CvPagination/CvPagination.vue +16 -1
  34. package/src/components/CvTag/CvTag.stories.js +0 -2
  35. package/src/components/CvTag/CvTag.vue +5 -3
  36. package/src/index.js +112 -0
@@ -83,7 +83,6 @@ const logger = loggerEnabled ? console.debug : () => {};
83
83
  * @typedef {Object} CvTableData
84
84
  * @property {Array<CvRowData>} rows - table row data
85
85
  * @property {Array<CvHeadingData>} headings - table heading data
86
- * @property {boolean} hasBatchActions - Batch actions are available
87
86
  * @property {boolean} hasExpandable - At least some rows are expandable
88
87
  */
89
88
 
@@ -98,7 +97,6 @@ export default reactive({
98
97
  this.state[table] = {
99
98
  rows: [],
100
99
  headings: [],
101
- hasBatchActions: false,
102
100
  hasExpandable: false,
103
101
  };
104
102
  logger(`added table:${table}`);
@@ -122,31 +120,6 @@ export default reactive({
122
120
  if (!this.state[table]) this.addTable(table);
123
121
  return this.state[table];
124
122
  },
125
- /**
126
- * Does the table have batch actions
127
- * @param {CvTableDataString} tableId
128
- * @returns {boolean|undefined}
129
- */
130
- hasBatchActions(tableId) {
131
- const table = unref(tableId);
132
- if (!this.state[table]) return;
133
- const hasBatchActions = this.state[table]?.hasBatchActions;
134
- logger(`get hasBatchActions:${table} result:${hasBatchActions}`);
135
- return hasBatchActions;
136
- },
137
- /**
138
- * Set if the table has batch actions or not
139
- * @param {CvTableDataString} tableId
140
- * @param {boolean} val
141
- */
142
- setBatchActions(tableId, val) {
143
- const table = unref(tableId);
144
- if (!this.state[table]) return;
145
- if (this.state[table].hasBatchActions !== val) {
146
- this.state[table].hasBatchActions = val;
147
- logger(`setBatchActions:${table} payload:${val}`);
148
- }
149
- },
150
123
  /**
151
124
  * Find a heading by table + heading id
152
125
  * @param {CvTableDataString} tableId
@@ -237,11 +237,36 @@ SingleUsingDate.parameters = storyParametersObject(
237
237
  );
238
238
 
239
239
  /* SINGLE USING MIN MAX PARAMS STORY */
240
-
240
+ const DATE_SHORT = 'm/d/Y';
241
+ const DATE_MED = 'M j, Y';
242
+ const calOptions = ref({
243
+ minDate: now,
244
+ maxDate: nextWeek,
245
+ dateFormat: DATE_SHORT,
246
+ });
247
+ function toggleDateFormat() {
248
+ calOptions.value.dateFormat =
249
+ calOptions.value.dateFormat === DATE_SHORT ? DATE_MED : DATE_SHORT;
250
+ }
251
+ function buttonLabel() {
252
+ return calOptions.value.dateFormat === DATE_SHORT ? DATE_MED : DATE_SHORT;
253
+ }
254
+ function changeMaxDate(inc) {
255
+ calOptions.value.maxDate = new Date(
256
+ nextWeek.setDate(nextWeek.getDate() + inc)
257
+ );
258
+ }
241
259
  const templateSingleUsingMinMax = `
242
260
  <div>
243
261
  <cv-date-picker v-bind='args' @change="onChange" kind="single" :value="now" :cal-options="calOptions">
244
262
  </cv-date-picker>
263
+ <div style="margin-top:2rem; background-color: #888888; padding:1rem; width:fit-content">
264
+ <div>Reactive updates</div>
265
+ <button @click='toggleDateFormat'>change date format &quot;{{buttonLabel()}}&quot;</button><br/>
266
+ <button @click='changeMaxDate(1)'>+1 day to max date</button>
267
+ <button @click='changeMaxDate(-1)'>-1 day from max date</button>
268
+ <div>Max date: {{calOptions.maxDate}}</div>
269
+ </div>
245
270
  </div>
246
271
  `;
247
272
 
@@ -251,11 +276,10 @@ const TemplateSingleUsingMinMax = args => {
251
276
  setup: () => ({
252
277
  args,
253
278
  now,
254
- calOptions: {
255
- minDate: now,
256
- maxDate: nextWeek,
257
- dateFormat: 'm/d/Y',
258
- },
279
+ calOptions,
280
+ toggleDateFormat,
281
+ buttonLabel,
282
+ changeMaxDate,
259
283
  onChange: action('change'),
260
284
  }),
261
285
  template: templateSingleUsingMinMax,
@@ -135,7 +135,7 @@ const dateWrapper = ref(null);
135
135
  const date = ref(null);
136
136
  const todate = ref(null);
137
137
 
138
- let calendar;
138
+ const calendar = ref(null);
139
139
 
140
140
  const props = defineProps({
141
141
  modelValue: { type: [String, Object, Array, Date], default: undefined },
@@ -307,10 +307,19 @@ const onCalReady = (selectedDates, dateStr, instance) => {
307
307
  const initFlatpickr = () => {
308
308
  return flatpickr(date.value, getFlatpickrOptions());
309
309
  };
310
+ watch(
311
+ () => props.calOptions,
312
+ () => {
313
+ for (const [key, value] of Object.entries(props.calOptions)) {
314
+ calendar.value.set(key, value);
315
+ }
316
+ },
317
+ { deep: true }
318
+ );
310
319
 
311
320
  let dateToString = val => {
312
321
  if (!val) return '';
313
- return calendar.formatDate(val, props.calOptions.dateFormat);
322
+ return calendar.value?.formatDate(val, props.calOptions.dateFormat);
314
323
  };
315
324
 
316
325
  // eslint-disable-next-line no-unused-vars
@@ -349,9 +358,9 @@ const setDate = value => {
349
358
  try {
350
359
  if (value === undefined) return;
351
360
  if (isSingle.value) {
352
- calendar.setDate(value, true);
361
+ calendar.value?.setDate(value, true);
353
362
  } else if (isRange.value) {
354
- calendar.setDate([value.startDate, value.endDate], true);
363
+ calendar.value?.setDate([value.startDate, value.endDate], true);
355
364
  } else {
356
365
  date.value.value = value;
357
366
  }
@@ -393,16 +402,14 @@ onBeforeMount(() => {
393
402
 
394
403
  onMounted(() => {
395
404
  if (['range', 'single'].includes(props.kind)) {
396
- calendar = initFlatpickr();
405
+ calendar.value = initFlatpickr();
397
406
  }
398
407
 
399
408
  setDate(props.modelValue || props.value);
400
409
  });
401
410
 
402
411
  onUnmounted(() => {
403
- if (calendar) {
404
- calendar.destroy();
405
- }
412
+ calendar.value?.destroy();
406
413
  });
407
414
  </script>
408
415
 
@@ -129,6 +129,7 @@ const vmodelTemplate = `
129
129
  <cv-dropdown-item value="mysterious">The Armorer</cv-dropdown-item>
130
130
  <cv-dropdown-item value="bounty-hunter">Greef Karga</cv-dropdown-item>
131
131
  </cv-dropdown>
132
+ <div style="margin-top:2rem; background-color: #888888; padding:1rem">
132
133
  <div>V-Model value: {{ myValue }}</div>
133
134
  <select v-model="myValue">
134
135
  <option value="mando">Mandalorian</option>
@@ -136,7 +137,12 @@ const vmodelTemplate = `
136
137
  <option value="baby-yoda">Grogu</option>
137
138
  <option value="mysterious">Armorer</option>
138
139
  <option value="bounty-hunter">Karga</option>
140
+ <option value="none">None</option>
139
141
  </select>
142
+ <div>
143
+ <button @click="myValue = undefined">Clear value</button>
144
+ </div>
145
+ </div>
140
146
  </div>
141
147
  `;
142
148
  const skeletonTemplate = `
@@ -282,6 +282,7 @@ watch(
282
282
  () => props.modelValue,
283
283
  () => {
284
284
  dataValue.value = props.modelValue;
285
+ dataCaption.value = undefined;
285
286
  }
286
287
  );
287
288
  watch(dataValue, () => {
@@ -1,6 +1,7 @@
1
1
  <template>
2
2
  <component
3
3
  :is="listType"
4
+ class="cv-list"
4
5
  :class="{
5
6
  [`${carbonPrefix}--list--nested`]: nested,
6
7
  [`${carbonPrefix}--list--ordered`]: isActuallyOrdered,
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <li :class="`${carbonPrefix}--list__item`"><slot /></li>
2
+ <li class="cv-list-item" :class="`${carbonPrefix}--list__item`"><slot /></li>
3
3
  </template>
4
4
 
5
5
  <script>
@@ -2,6 +2,7 @@
2
2
  <div
3
3
  role="alert"
4
4
  :kind="kind"
5
+ class="cv-inline-notification"
5
6
  :class="[
6
7
  `${carbonPrefix}--inline-notification`,
7
8
  `${carbonPrefix}--inline-notification--${kind}`,
@@ -2,6 +2,7 @@
2
2
  <div
3
3
  role="alert"
4
4
  :kind="kind"
5
+ class="cv-notification"
5
6
  :class="[
6
7
  `${carbonPrefix}--toast-notification`,
7
8
  `${carbonPrefix}--toast-notification--${kind}`,
@@ -2,6 +2,10 @@ import { Canvas, Meta, Story } from '@storybook/addon-docs';
2
2
  import { CvPagination } from '.';
3
3
  import { sbCompPrefix } from '../../global/storybook-utils';
4
4
  import { action } from '@storybook/addon-actions';
5
+ import { ref } from 'vue';
6
+ const myPage=ref(1);
7
+ const myPageSizes=ref([5,7,10,11,13])
8
+ const myNumItems=ref(13)
5
9
 
6
10
  <Meta title={`${sbCompPrefix}/CvPagination`} component={CvPagination} />
7
11
 
@@ -14,6 +18,9 @@ export const Template = args => ({
14
18
  setup() {
15
19
  return {
16
20
  ...args,
21
+ myPage,
22
+ myPageSizes,
23
+ myNumItems,
17
24
  onChange: action('change'),
18
25
  };
19
26
  },
@@ -27,13 +34,22 @@ const defaultTemplate = `
27
34
  :forward-text="forwardText"
28
35
  :page-number-label="pageNumberLabel"
29
36
  :page-sizes-label="pageSizesLabel"
30
- :number-of-items="numberOfItems"
37
+ :number-of-items="myNumItems"
31
38
  :actual-items-on-page="actualItemsOnPage"
32
- :page="page"
33
- :page-sizes="pageSizes"
39
+ :page="myPage"
40
+ :page-sizes="myPageSizes"
34
41
  :backwards-button-disabled="backwardsButtonDisabled"
35
42
  :forwards-button-disabled="forwardsButtonDisabled">
36
43
  </cv-pagination>
44
+ <div style="margin-top:2rem; background-color: #888888; padding:1rem">
45
+ <h3>Reactive properties</h3>
46
+ page: <button @click="myPage--">← prev page</button>
47
+ <button @click="myPage++">next page →</button><br/>
48
+ page-sizes: <button @click="myPageSizes=[5,10]">change page sizes to [5,10]</button>
49
+ <button @click="myPageSizes=[10,20,30,40,50]">change page sizes to [10,20,30,40,50]</button><br/>
50
+ number-of-items: <button @click="myNumItems=4">Set total items = 4</button>
51
+ <button @click="myNumItems=103">Set total items = 103</button>
52
+ </div>
37
53
  `;
38
54
  const slotsTemplate = `
39
55
  <cv-pagination
@@ -87,23 +103,14 @@ Migration notes:
87
103
  forwardText: undefined,
88
104
  pageNumberLabel: undefined,
89
105
  pageSizesLabel: undefined,
90
- numberOfItems: 103,
91
- page: 2,
92
- pageSizes: [
93
- 10,
94
- {
95
- value: 20,
96
- selected: true,
97
- },
98
- 30,
99
- 40,
100
- 50,
101
- ],
102
106
  backwardsButtonDisabled: false,
103
107
  forwardsButtonDisabled: false,
104
108
  actualItemsOnPage: Infinity,
105
109
  }}
106
110
  argTypes={{
111
+ page: { control: false },
112
+ pageSizes: { control: false },
113
+ numberOfItems: { control: false }
107
114
  }}
108
115
  >
109
116
  {Template.bind({})}
@@ -156,15 +156,30 @@ const internalValue = computed(() => {
156
156
  };
157
157
  });
158
158
 
159
- onMounted(() => {
159
+ function adjustValues() {
160
160
  pageSizeValue.value = newPageSizeValue(props.pageSizes);
161
161
  pageCount.value = newPageCount(props.numberOfItems, pageSizeValue.value);
162
162
  pageValue.value = newPageValue(props.page, pageCount.value);
163
163
  pages.value = newPagesArray(pageCount.value);
164
164
  firstItem.value = newFirstItem(pageValue.value, pageSizeValue.value);
165
+ }
166
+ onMounted(() => {
167
+ adjustValues();
165
168
  // always emit on mount
166
169
  emit('change', internalValue.value);
167
170
  });
171
+ watch(
172
+ () => props.pageSizes,
173
+ () => adjustValues()
174
+ );
175
+ watch(
176
+ () => props.page,
177
+ () => adjustValues()
178
+ );
179
+ watch(
180
+ () => props.numberOfItems,
181
+ () => adjustValues()
182
+ );
168
183
 
169
184
  function onPageChange(newVal) {
170
185
  pageValue.value = parseInt(newVal, 10);
@@ -31,7 +31,6 @@ const Template = (args, { argTypes }) => {
31
31
 
32
32
  export const Default = Template.bind({});
33
33
  Default.args = {
34
- kind: 'red',
35
34
  label: 'This is a tag',
36
35
  filter: false,
37
36
  };
@@ -43,7 +42,6 @@ Default.parameters = storyParametersObject(
43
42
 
44
43
  export const Filter = Template.bind({});
45
44
  Filter.args = {
46
- kind: 'teal',
47
45
  label: 'This is a tag',
48
46
  filter: true,
49
47
  };
@@ -40,7 +40,7 @@ export default {
40
40
  */
41
41
  kind: {
42
42
  type: String,
43
- default: 'red',
43
+ default: undefined,
44
44
  validator(val) {
45
45
  return tagKinds.includes(val);
46
46
  },
@@ -73,14 +73,16 @@ export default {
73
73
  });
74
74
 
75
75
  const tagClasses = computed(() => {
76
- const classes = [`${carbonPrefix}--tag`];
76
+ const classes = [`cv-tag ${carbonPrefix}--tag`];
77
77
 
78
78
  if (props.small) classes.push(`${carbonPrefix}--tag--sm`);
79
79
 
80
80
  if (props.skeleton) {
81
81
  classes.push(`${carbonPrefix}--skeleton`);
82
82
  } else {
83
- classes.push(`${carbonPrefix}--tag--${props.kind}`);
83
+ if (props.kind) {
84
+ classes.push(`${carbonPrefix}--tag--${props.kind}`);
85
+ }
84
86
 
85
87
  if (props.filter) {
86
88
  classes.push(`${carbonPrefix}--tag--filter`);
package/src/index.js CHANGED
@@ -43,3 +43,115 @@ export default {
43
43
  }
44
44
  },
45
45
  };
46
+ export { default as CvAccordion } from './components/CvAccordion/CvAccordion.vue';
47
+ export { default as CvAccordionItem } from './components/CvAccordion/CvAccordionItem.vue';
48
+ export { default as CvAccordionSkeleton } from './components/CvAccordion/CvAccordionSkeleton.vue';
49
+ export { default as CvAspectRatio } from './components/CvAspectRatio/CvAspectRatio.vue';
50
+ export { default as CvBreadcrumb } from './components/CvBreadcrumb/CvBreadcrumb.vue';
51
+ export { default as CvBreadcrumbItem } from './components/CvBreadcrumb/CvBreadcrumbItem.vue';
52
+ export { default as CvBreadcrumbSkeleton } from './components/CvBreadcrumb/CvBreadcrumbSkeleton.vue';
53
+ export { default as CvBreadcrumbSkeletonItem } from './components/CvBreadcrumb/CvBreadcrumbSkeletonItem.vue';
54
+ export { default as CvButton } from './components/CvButton/CvButton.vue';
55
+ export { default as CvButtonSet } from './components/CvButton/CvButtonSet.vue';
56
+ export { default as CvButtonSkeleton } from './components/CvButton/CvButtonSkeleton.vue';
57
+ export { default as CvIconButton } from './components/CvButton/CvIconButton.vue';
58
+ export { default as CvCheckbox } from './components/CvCheckbox/CvCheckbox.vue';
59
+ export { default as CvCheckboxSkeleton } from './components/CvCheckbox/CvCheckboxSkeleton.vue';
60
+ export { default as CvCodeSnippet } from './components/CvCodeSnippet/CvCodeSnippet.vue';
61
+ export { default as CvCodeSnippetSkeleton } from './components/CvCodeSnippet/CvCodeSnippetSkeleton.vue';
62
+ export { default as CvComboBox } from './components/CvComboBox/CvComboBox.vue';
63
+ export { default as CvContentSwitcher } from './components/CvContentSwitcher/CvContentSwitcher.vue';
64
+ export { default as CvContentSwitcherButton } from './components/CvContentSwitcher/CvContentSwitcherButton.vue';
65
+ export { default as CvContentSwitcherContent } from './components/CvContentSwitcher/CvContentSwitcherContent.vue';
66
+ export { default as CvCopyButton } from './components/CvCopyButton/CvCopyButton.vue';
67
+ export { default as CvDataTable } from './components/CvDataTable/CvDataTable.vue';
68
+ export { default as CvDataTableAction } from './components/CvDataTable/CvDataTableAction.vue';
69
+ export { default as CvDataTableCell } from './components/CvDataTable/CvDataTableCell.vue';
70
+ export { default as CvDataTableHeading } from './components/CvDataTable/CvDataTableHeading.vue';
71
+ export { default as CvDataTableRow } from './components/CvDataTable/CvDataTableRow.vue';
72
+ export { default as CvDataTableSkeleton } from './components/CvDataTable/CvDataTableSkeleton.vue';
73
+ export { default as CvDatePicker } from './components/CvDatePicker/CvDatePicker.vue';
74
+ export { default as CvDatePickerSkeleton } from './components/CvDatePicker/CvDatePickerSkeleton.vue';
75
+ export { default as CvDropdown } from './components/CvDropdown/CvDropdown.vue';
76
+ export { default as CvDropdownItem } from './components/CvDropdown/CvDropdownItem.vue';
77
+ export { default as CvDropdownSkeleton } from './components/CvDropdown/CvDropdownSkeleton.vue';
78
+ export { default as CvFileUploader } from './components/CvFileUploader/CvFileUploader.vue';
79
+ export { default as CvFileUploaderItem } from './components/CvFileUploader/CvFileUploaderItem.vue';
80
+ export { default as CvFileUploaderSkeleton } from './components/CvFileUploader/CvFileUploaderSkeleton.vue';
81
+ export { default as CvForm } from './components/CvForm/CvForm.vue';
82
+ export { default as CvFormGroup } from './components/CvForm/CvFormGroup.vue';
83
+ export { default as CvFormItem } from './components/CvForm/CvFormItem.vue';
84
+ export { default as CvColumn } from './components/CvGrid/CvColumn.vue';
85
+ export { default as CvGrid } from './components/CvGrid/CvGrid.vue';
86
+ export { default as CvRow } from './components/CvGrid/CvRow.vue';
87
+ export { default as CvInlineLoading } from './components/CvInlineLoading/CvInlineLoading.vue';
88
+ export { default as CvLink } from './components/CvLink/CvLink.vue';
89
+ export { default as CvList } from './components/CvList/CvList.vue';
90
+ export { default as CvListItem } from './components/CvList/CvListItem.vue';
91
+ export { default as CvLoading } from './components/CvLoading/CvLoading.vue';
92
+ export { default as CvModal } from './components/CvModal/CvModal.vue';
93
+ export { default as CvMultiSelect } from './components/CvMultiSelect/CvMultiSelect.vue';
94
+ export { default as CvInlineNotification } from './components/CvNotification/CvInlineNotification.vue';
95
+ export { default as CvToastNotification } from './components/CvNotification/CvToastNotification.vue';
96
+ export { default as CvNumberInput } from './components/CvNumberInput/CvNumberInput.vue';
97
+ export { default as CvNumberInputSkeleton } from './components/CvNumberInput/CvNumberInputSkeleton.vue';
98
+ export { default as CvOverflowMenu } from './components/CvOverflowMenu/CvOverflowMenu.vue';
99
+ export { default as CvOverflowMenuItem } from './components/CvOverflowMenu/CvOverflowMenuItem.vue';
100
+ export { default as CvPagination } from './components/CvPagination/CvPagination.vue';
101
+ export { default as CvProgress } from './components/CvProgress/CvProgress.vue';
102
+ export { default as CvProgressSkeleton } from './components/CvProgress/CvProgressSkeleton.vue';
103
+ export { default as CvProgressStep } from './components/CvProgress/CvProgressStep.vue';
104
+ export { default as CvRadioButton } from './components/CvRadioButton/CvRadioButton.vue';
105
+ export { default as CvRadioGroup } from './components/CvRadioButton/CvRadioGroup.vue';
106
+ export { default as CvSearch } from './components/CvSearch/CvSearch.vue';
107
+ export { default as CvSelect } from './components/CvSelect/CvSelect.vue';
108
+ export { default as CvSelectOptgroup } from './components/CvSelect/CvSelectOptgroup.vue';
109
+ export { default as CvSelectOption } from './components/CvSelect/CvSelectOption.vue';
110
+ export { default as CvSkeletonText } from './components/CvSkeletonText/CvSkeletonText.vue';
111
+ export { default as CvSlider } from './components/CvSlider/CvSlider.vue';
112
+ export { default as CvSliderSkeleton } from './components/CvSlider/CvSliderSkeleton.vue';
113
+ export { default as CvStructuredList } from './components/CvStructuredList/CvStructuredList.vue';
114
+ export { default as CvStructuredListData } from './components/CvStructuredList/CvStructuredListData.vue';
115
+ export { default as CvStructuredListHeading } from './components/CvStructuredList/CvStructuredListHeading.vue';
116
+ export { default as CvStructuredListItem } from './components/CvStructuredList/CvStructuredListItem.vue';
117
+ export { default as CvStructuredListItemSelectable } from './components/CvStructuredList/CvStructuredListItemSelectable.vue';
118
+ export { default as CvStructuredListItemStandard } from './components/CvStructuredList/CvStructuredListItemStandard.vue';
119
+ export { default as CvTab } from './components/CvTabs/CvTab.vue';
120
+ export { default as CvTabs } from './components/CvTabs/CvTabs.vue';
121
+ export { default as CvTabsSkeleton } from './components/CvTabs/CvTabsSkeleton.vue';
122
+ export { default as CvTag } from './components/CvTag/CvTag.vue';
123
+ export { default as CvTagSkeleton } from './components/CvTag/CvTagSkeleton.vue';
124
+ export { default as CvTextArea } from './components/CvTextArea/CvTextArea.vue';
125
+ export { default as CvTextAreaSkeleton } from './components/CvTextArea/CvTextAreaSkeleton.vue';
126
+ export { default as CvTextInput } from './components/CvTextInput/CvTextInput.vue';
127
+ export { default as CvTextInputSkeleton } from './components/CvTextInput/CvTextInputSkeleton.vue';
128
+ export { default as CvTile } from './components/CvTile/CvTile.vue';
129
+ export { default as CvTileClickable } from './components/CvTile/CvTileClickable.vue';
130
+ export { default as CvTileExpandable } from './components/CvTile/CvTileExpandable.vue';
131
+ export { default as CvTileSelectable } from './components/CvTile/CvTileSelectable.vue';
132
+ export { default as CvTileStandard } from './components/CvTile/CvTileStandard.vue';
133
+ export { default as CvTimePicker } from './components/CvTimePicker/CvTimePicker.vue';
134
+ export { default as CvToggleSkeleton } from './components/CvToggle/CvToggle-Skeleton.vue';
135
+ export { default as CvToggle } from './components/CvToggle/CvToggle.vue';
136
+ export { default as CvDefinitionTooltip } from './components/CvTooltip/CvDefinitionTooltip.vue';
137
+ export { default as CvInteractiveTooltip } from './components/CvTooltip/CvInteractiveTooltip.vue';
138
+ export { default as CvTooltip } from './components/CvTooltip/CvTooltip.vue';
139
+ export { default as CvHeader } from './components/CvUIShell/CvHeader.vue';
140
+ export { default as CvHeaderGlobalAction } from './components/CvUIShell/CvHeaderGlobalAction.vue';
141
+ export { default as CvHeaderMenu } from './components/CvUIShell/CvHeaderMenu.vue';
142
+ export { default as CvHeaderMenuButton } from './components/CvUIShell/CvHeaderMenuButton.vue';
143
+ export { default as CvHeaderMenuItem } from './components/CvUIShell/CvHeaderMenuItem.vue';
144
+ export { default as CvHeaderName } from './components/CvUIShell/CvHeaderName.vue';
145
+ export { default as CvHeaderNav } from './components/CvUIShell/CvHeaderNav.vue';
146
+ export { default as CvHeaderPanel } from './components/CvUIShell/CvHeaderPanel.vue';
147
+ export { default as CvSideNav } from './components/CvUIShell/CvSideNav.vue';
148
+ export { default as CvSideNavIcon } from './components/CvUIShell/CvSideNavIcon.vue';
149
+ export { default as CvSideNavItems } from './components/CvUIShell/CvSideNavItems.vue';
150
+ export { default as CvSideNavLink } from './components/CvUIShell/CvSideNavLink.vue';
151
+ export { default as CvSideNavMenu } from './components/CvUIShell/CvSideNavMenu.vue';
152
+ export { default as CvSideNavMenuDivider } from './components/CvUIShell/CvSideNavMenuDivider.vue';
153
+ export { default as CvSideNavMenuItem } from './components/CvUIShell/CvSideNavMenuItem.vue';
154
+ export { default as CvSkipToContent } from './components/CvUIShell/CvSkipToContent.vue';
155
+ export { default as CvSwitcher } from './components/CvUIShell/CvSwitcher.vue';
156
+ export { default as CvSwitcherItem } from './components/CvUIShell/CvSwitcherItem.vue';
157
+ export { default as CvSwitcherItemLink } from './components/CvUIShell/CvSwitcherItemLink.vue';