@onereach/ui-components 2.69.1-beta.2095.0 → 2.69.1-beta.2097.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 (142) hide show
  1. package/dist/bundled/v2/{OrButton-66d37aff.js → OrButton-0e91a808.js} +1 -14
  2. package/dist/bundled/v2/{OrCard-58a1ba3e.js → OrCard-29116e1f.js} +2 -2
  3. package/dist/bundled/v2/OrCardCollection-8606c407.js +336 -0
  4. package/dist/bundled/v2/{OrConfirm-e1ca1422.js → OrConfirm-18c534df.js} +1 -1
  5. package/dist/bundled/v2/{OrSearch-9d402f56.js → OrSearch-19f43fe5.js} +2 -2
  6. package/dist/bundled/v2/{OrSelect-1c9421ad.js → OrSelect-759b4410.js} +3 -3
  7. package/dist/bundled/v2/{OrSortHeader-396e6a7c.js → OrSortHeader-9932d28f.js} +2 -2
  8. package/dist/bundled/v2/components/index.d.ts +0 -1
  9. package/dist/bundled/v2/components/index.js +7 -8
  10. package/dist/bundled/v2/components/or-button-v3/OrButton.vue.d.ts +0 -11
  11. package/dist/bundled/v2/components/or-button-v3/index.js +1 -1
  12. package/dist/bundled/v2/components/or-card-collection-v3/OrCardCollection.stories3.d.ts +4 -0
  13. package/dist/bundled/v2/components/or-card-collection-v3/OrCardCollection.vue.d.ts +63 -37
  14. package/dist/bundled/v2/components/or-card-collection-v3/OrCardCollectionView.vue2.vue.d.ts +35 -0
  15. package/dist/bundled/v2/components/or-card-collection-v3/constatnts.d.ts +4 -0
  16. package/dist/bundled/v2/components/or-card-collection-v3/index.js +7 -4
  17. package/dist/bundled/v2/components/or-card-collection-v3/types.d.ts +8 -3
  18. package/dist/bundled/v2/components/or-card-v3/index.js +1 -1
  19. package/dist/bundled/v2/components/or-confirm-v3/index.js +2 -2
  20. package/dist/bundled/v2/components/or-search-v3/index.js +1 -1
  21. package/dist/bundled/v2/components/or-select-v3/OrSelect.vue.d.ts +14 -14
  22. package/dist/bundled/v2/components/or-select-v3/index.d.ts +0 -1
  23. package/dist/bundled/v2/components/or-select-v3/index.js +1 -1
  24. package/dist/bundled/v2/components/or-select-v3/types.d.ts +1 -1
  25. package/dist/bundled/v2/components/or-sort-header-v3/index.js +1 -1
  26. package/dist/bundled/v2/index.js +8 -9
  27. package/dist/bundled/v3/{OrButton-9640286b.js → OrButton-8ab33d9d.js} +2 -3
  28. package/dist/bundled/v3/{OrButton.vue_vue_type_script_lang-06d8ead1.js → OrButton.vue_vue_type_script_lang-3718b300.js} +1 -13
  29. package/dist/bundled/v3/OrCardCollection.vue_vue_type_script_lang-80c10c12.js +229 -0
  30. package/dist/bundled/v3/{OrConfirm.vue_vue_type_script_lang-f1b81f00.js → OrConfirm.vue_vue_type_script_lang-85472b12.js} +2 -2
  31. package/dist/bundled/v3/{OrSearch.vue_vue_type_script_lang-ed78b21f.js → OrSearch.vue_vue_type_script_lang-cb2d6612.js} +1 -1
  32. package/dist/bundled/v3/{OrSelect.vue_vue_type_script_lang-d0626539.js → OrSelect.vue_vue_type_script_lang-dfadd12f.js} +2 -2
  33. package/dist/bundled/v3/components/index.d.ts +0 -1
  34. package/dist/bundled/v3/components/index.js +10 -11
  35. package/dist/bundled/v3/components/or-button-v3/OrButton.vue.d.ts +0 -11
  36. package/dist/bundled/v3/components/or-button-v3/index.js +1 -1
  37. package/dist/bundled/v3/components/or-card-collection-v3/OrCardCollection.stories3.d.ts +4 -0
  38. package/dist/bundled/v3/components/or-card-collection-v3/OrCardCollection.vue.d.ts +63 -37
  39. package/dist/bundled/v3/components/or-card-collection-v3/OrCardCollectionView.vue3.vue.d.ts +35 -0
  40. package/dist/bundled/v3/components/or-card-collection-v3/constatnts.d.ts +4 -0
  41. package/dist/bundled/v3/components/or-card-collection-v3/index.js +11 -4
  42. package/dist/bundled/v3/components/or-card-collection-v3/types.d.ts +8 -3
  43. package/dist/bundled/v3/components/or-confirm-v3/index.js +3 -3
  44. package/dist/bundled/v3/components/or-search-v3/index.js +1 -1
  45. package/dist/bundled/v3/components/or-select-v3/OrSelect.vue.d.ts +14 -14
  46. package/dist/bundled/v3/components/or-select-v3/index.d.ts +0 -1
  47. package/dist/bundled/v3/components/or-select-v3/index.js +1 -1
  48. package/dist/bundled/v3/components/or-select-v3/types.d.ts +1 -1
  49. package/dist/bundled/v3/index.js +295 -354
  50. package/dist/esm/v2/{OrButton-3d4fc9da.js → OrButton-357a5756.js} +1 -14
  51. package/dist/esm/v2/OrCardCollection-e7a4ead6.js +336 -0
  52. package/dist/esm/v2/{OrConfirm-ba3f8c45.js → OrConfirm-b0b2e43c.js} +1 -1
  53. package/dist/esm/v2/{OrSelect-ca2510cd.js → OrSelect-ac382aa6.js} +3 -3
  54. package/dist/esm/v2/components/index.d.ts +0 -1
  55. package/dist/esm/v2/components/index.js +4 -5
  56. package/dist/esm/v2/components/or-button-v3/OrButton.vue.d.ts +0 -11
  57. package/dist/esm/v2/components/or-button-v3/index.js +1 -1
  58. package/dist/esm/v2/components/or-card-collection-v3/OrCardCollection.stories3.d.ts +4 -0
  59. package/dist/esm/v2/components/or-card-collection-v3/OrCardCollection.vue.d.ts +63 -37
  60. package/dist/esm/v2/components/or-card-collection-v3/OrCardCollectionView.vue2.vue.d.ts +35 -0
  61. package/dist/esm/v2/components/or-card-collection-v3/constatnts.d.ts +4 -0
  62. package/dist/esm/v2/components/or-card-collection-v3/index.js +7 -4
  63. package/dist/esm/v2/components/or-card-collection-v3/types.d.ts +8 -3
  64. package/dist/esm/v2/components/or-confirm-v3/index.js +2 -2
  65. package/dist/esm/v2/components/or-select-v3/OrSelect.vue.d.ts +14 -14
  66. package/dist/esm/v2/components/or-select-v3/index.d.ts +0 -1
  67. package/dist/esm/v2/components/or-select-v3/index.js +1 -1
  68. package/dist/esm/v2/components/or-select-v3/types.d.ts +1 -1
  69. package/dist/esm/v2/index.js +4 -5
  70. package/dist/esm/v3/{OrButton-970ae320.js → OrButton-f4b9ee51.js} +2 -15
  71. package/dist/esm/v3/OrCardCollection-3bd67c5c.js +282 -0
  72. package/dist/esm/v3/{OrConfirm-7cb2f36b.js → OrConfirm-906427ef.js} +1 -1
  73. package/dist/esm/v3/{OrSelect-bff22c7f.js → OrSelect-fee9c099.js} +3 -3
  74. package/dist/esm/v3/components/index.d.ts +0 -1
  75. package/dist/esm/v3/components/index.js +4 -5
  76. package/dist/esm/v3/components/or-button-v3/OrButton.vue.d.ts +0 -11
  77. package/dist/esm/v3/components/or-button-v3/index.js +1 -1
  78. package/dist/esm/v3/components/or-card-collection-v3/OrCardCollection.stories3.d.ts +4 -0
  79. package/dist/esm/v3/components/or-card-collection-v3/OrCardCollection.vue.d.ts +63 -37
  80. package/dist/esm/v3/components/or-card-collection-v3/OrCardCollectionView.vue3.vue.d.ts +35 -0
  81. package/dist/esm/v3/components/or-card-collection-v3/constatnts.d.ts +4 -0
  82. package/dist/esm/v3/components/or-card-collection-v3/index.js +7 -4
  83. package/dist/esm/v3/components/or-card-collection-v3/types.d.ts +8 -3
  84. package/dist/esm/v3/components/or-confirm-v3/index.js +2 -2
  85. package/dist/esm/v3/components/or-select-v3/OrSelect.vue.d.ts +14 -14
  86. package/dist/esm/v3/components/or-select-v3/index.d.ts +0 -1
  87. package/dist/esm/v3/components/or-select-v3/index.js +1 -1
  88. package/dist/esm/v3/components/or-select-v3/types.d.ts +1 -1
  89. package/dist/esm/v3/index.js +4 -5
  90. package/package.json +1 -1
  91. package/src/components/index.ts +0 -1
  92. package/src/components/or-button-v3/OrButton.stories3.ts +0 -4
  93. package/src/components/or-button-v3/OrButton.vue +0 -6
  94. package/src/components/or-button-v3/styles.ts +1 -15
  95. package/src/components/or-card-collection-v3/OrCardCollection.stories3.ts +193 -28
  96. package/src/components/or-card-collection-v3/OrCardCollection.vue +110 -76
  97. package/src/components/or-card-collection-v3/OrCardCollectionView.vue2.vue +41 -0
  98. package/src/components/or-card-collection-v3/OrCardCollectionView.vue3.vue +42 -0
  99. package/src/components/or-card-collection-v3/constatnts.ts +12 -0
  100. package/src/components/or-card-collection-v3/styles.ts +1 -1
  101. package/src/components/or-card-collection-v3/types.ts +9 -3
  102. package/src/components/or-select-v3/OrSelect.vue +3 -3
  103. package/src/components/or-select-v3/index.ts +0 -1
  104. package/src/components/or-select-v3/types.ts +1 -1
  105. package/dist/bundled/v2/OrCardCollection-a9a779ea.js +0 -228
  106. package/dist/bundled/v2/OrPagination-354e9abd.js +0 -296
  107. package/dist/bundled/v2/components/or-pagination-v3/OrPagination.stories3.d.ts +0 -12
  108. package/dist/bundled/v2/components/or-pagination-v3/OrPagination.vue.d.ts +0 -110
  109. package/dist/bundled/v2/components/or-pagination-v3/index.d.ts +0 -2
  110. package/dist/bundled/v2/components/or-pagination-v3/index.js +0 -20
  111. package/dist/bundled/v2/components/or-pagination-v3/styles.d.ts +0 -3
  112. package/dist/bundled/v2/components/or-pagination-v3/types.d.ts +0 -4
  113. package/dist/bundled/v3/OrCardCollection.vue_vue_type_script_lang-3993a015.js +0 -164
  114. package/dist/bundled/v3/OrPagination.vue_vue_type_script_lang-ff22b11c.js +0 -180
  115. package/dist/bundled/v3/components/or-pagination-v3/OrPagination.stories3.d.ts +0 -12
  116. package/dist/bundled/v3/components/or-pagination-v3/OrPagination.vue.d.ts +0 -110
  117. package/dist/bundled/v3/components/or-pagination-v3/index.d.ts +0 -2
  118. package/dist/bundled/v3/components/or-pagination-v3/index.js +0 -22
  119. package/dist/bundled/v3/components/or-pagination-v3/styles.d.ts +0 -3
  120. package/dist/bundled/v3/components/or-pagination-v3/types.d.ts +0 -4
  121. package/dist/esm/v2/OrCardCollection-4f001551.js +0 -227
  122. package/dist/esm/v2/OrPagination-a56eb93b.js +0 -296
  123. package/dist/esm/v2/components/or-pagination-v3/OrPagination.stories3.d.ts +0 -12
  124. package/dist/esm/v2/components/or-pagination-v3/OrPagination.vue.d.ts +0 -110
  125. package/dist/esm/v2/components/or-pagination-v3/index.d.ts +0 -2
  126. package/dist/esm/v2/components/or-pagination-v3/index.js +0 -18
  127. package/dist/esm/v2/components/or-pagination-v3/styles.d.ts +0 -3
  128. package/dist/esm/v2/components/or-pagination-v3/types.d.ts +0 -4
  129. package/dist/esm/v3/OrCardCollection-5a0febaf.js +0 -198
  130. package/dist/esm/v3/OrPagination-d351a13b.js +0 -257
  131. package/dist/esm/v3/components/or-pagination-v3/OrPagination.stories3.d.ts +0 -12
  132. package/dist/esm/v3/components/or-pagination-v3/OrPagination.vue.d.ts +0 -110
  133. package/dist/esm/v3/components/or-pagination-v3/index.d.ts +0 -2
  134. package/dist/esm/v3/components/or-pagination-v3/index.js +0 -17
  135. package/dist/esm/v3/components/or-pagination-v3/styles.d.ts +0 -3
  136. package/dist/esm/v3/components/or-pagination-v3/types.d.ts +0 -4
  137. package/src/components/or-pagination-v3/OrPagination.docs.mdx +0 -7
  138. package/src/components/or-pagination-v3/OrPagination.stories3.ts +0 -87
  139. package/src/components/or-pagination-v3/OrPagination.vue +0 -260
  140. package/src/components/or-pagination-v3/index.ts +0 -2
  141. package/src/components/or-pagination-v3/styles.ts +0 -30
  142. package/src/components/or-pagination-v3/types.ts +0 -4
@@ -6,87 +6,110 @@
6
6
  >
7
7
  <div :class="toolbarStyles">
8
8
  <div :class="toolbarPanelStyles">
9
- <template v-if="sortHeaders">
10
- <OrSortHeader
11
- v-for="header in sortHeaders"
12
- :key="header.value"
13
- v-model="proxySort"
14
- :input-value="header.value"
9
+ <template v-if="sortOptions.length">
10
+ <OrButton
11
+ ref="sortButton"
12
+ variant="link"
13
+ color="inherit"
14
+ @click="sortMenu.toggle()"
15
15
  >
16
- {{ header.label }}
17
- </OrSortHeader>
16
+ {{ sortLabel }}
17
+ <OrIcon
18
+ v-if="sortMenu"
19
+ :icon="sortMenu.isOpen ? 'arrow_drop_up' : 'arrow_drop_down'"
20
+ />
21
+ </OrButton>
22
+ <OrMenu
23
+ ref="sortMenu"
24
+ :trigger="sortButton && sortButton.root"
25
+ >
26
+ <OrMenuItem
27
+ v-for="sortItem in sortOptions"
28
+ :key="sortItem"
29
+ @click="handleSort(sortItem.value)"
30
+ >
31
+ {{ sortItem.label }}
32
+ </OrMenuItem>
33
+ </OrMenu>
18
34
  </template>
19
35
  </div>
20
-
21
- <div :class="toolbarPanelStyles">
22
- <OrInput
23
- v-model="proxySearch"
24
- :type="'search'"
25
- :placeholder="'Search'"
26
- :size="'s'"
36
+ <div
37
+ :class="toolbarPanelStyles"
38
+ >
39
+ <OrSearch
40
+ class="md:w-[350px]"
41
+ size="s"
42
+ @search="handleSearch"
27
43
  />
28
-
29
- <OrIconButton
30
- :icon="'grid_view'"
31
- @click="switchToGridView()"
32
- />
33
-
34
- <OrIconButton
35
- :icon="'view_list'"
36
- @click="switchToListView()"
37
- />
38
-
39
- <slot name="addon" />
44
+ <div class="layout-row gap-sm">
45
+ <template v-if="viewModes.length > 1">
46
+ <OrIconButton
47
+ v-for="viewOption in viewModes"
48
+ :key="viewOption.view"
49
+ :icon="{icon: viewOption.icon, variant: viewOption.view === proxyView ? 'filled' : 'outlined'}"
50
+ @click="switchView(viewOption.view)"
51
+ />
52
+ </template>
53
+ <slot name="addon" />
54
+ </div>
40
55
  </div>
41
56
  </div>
42
-
43
- <div :class="contentStyles">
44
- <template v-if="proxyView === 'grid'">
45
- <OrCard
46
- v-for="item in items"
47
- :key="item.id"
48
- >
49
- <slot
50
- name="gridItem"
51
- v-bind="item"
52
- />
53
- </OrCard>
54
- </template>
55
-
56
- <template v-if="proxyView === 'list'">
57
- <OrCard
58
- v-for="item in items"
59
- :key="item.id"
60
- >
57
+ <slot
58
+ name="header"
59
+ v-bind="{
60
+ items,
61
+ mode: proxyView,
62
+ }"
63
+ />
64
+ <slot
65
+ :name="proxyView"
66
+ v-bind="{items}"
67
+ >
68
+ <OrCardCollectionView
69
+ :items="items"
70
+ :mode="proxyView"
71
+ >
72
+ <template v-slot:item="props">
61
73
  <slot
62
- name="listItem"
63
- v-bind="item"
74
+ name="item"
75
+ v-bind="props"
64
76
  />
65
- </OrCard>
66
- </template>
67
- </div>
77
+ </template>
78
+ </OrCardCollectionView>
79
+ </slot>
68
80
  </div>
69
81
  </template>
70
82
 
71
83
  <script lang="ts">
72
84
  import { computed, defineComponent, PropType, ref, watch } from 'vue-demi';
73
85
  import { useClassAttribute } from '../../hooks';
74
- import { OrCardV3 as OrCard } from '../or-card-v3';
75
86
  import { OrIconButtonV3 as OrIconButton } from '../or-icon-button-v3';
76
- import { OrInputV3 as OrInput } from '../or-input-v3';
77
- import { OrSortHeaderV3 as OrSortHeader, SortHeaderModel } from '../or-sort-header-v3';
87
+ import { OrMenuV3 as OrMenu } from '../or-menu-v3';
88
+ import { OrMenuItemV3 as OrMenuItem } from '../or-menu-item-v3';
89
+ import { OrIconV3 as OrIcon } from '../or-icon-v3';
78
90
  import { CardCollectionView } from './props';
79
- import { CardCollectionContent, CardCollectionContentViews, CardCollectionRoot, CardCollectionToolbar, CardCollectionToolbarPanel } from './styles';
80
- import { CardCollectionItem, CardCollectionSortHeader } from './types';
91
+ import {
92
+ CardCollectionRoot,
93
+ CardCollectionToolbar,
94
+ CardCollectionToolbarPanel,
95
+ } from './styles';
96
+ import { CardCollectionItem, SortOption, ViewMode } from './types';
97
+ import OrCardCollectionView from './OrCardCollectionView.vue3.vue';
98
+ import { OrButtonV3 as OrButton } from '../or-button-v3';
99
+ import { OrSearchV3 as OrSearch } from '../or-search-v3';
100
+ import { defaultViewModes } from './constatnts';
81
101
 
82
102
  export default defineComponent({
83
103
  name: 'OrCardCollection',
84
104
 
85
105
  components: {
86
- OrCard,
106
+ OrCardCollectionView,
87
107
  OrIconButton,
88
- OrInput,
89
- OrSortHeader,
108
+ OrButton,
109
+ OrMenu,
110
+ OrMenuItem,
111
+ OrIcon,
112
+ OrSearch,
90
113
  },
91
114
 
92
115
  inheritAttrs: false,
@@ -98,18 +121,23 @@ export default defineComponent({
98
121
  },
99
122
 
100
123
  view: {
101
- type: String as PropType<CardCollectionView>,
124
+ type: String as PropType<string>,
102
125
  default: CardCollectionView.Grid,
103
126
  },
104
127
 
128
+ viewModes: {
129
+ type: Array as PropType<ViewMode[]>,
130
+ default: () => defaultViewModes,
131
+ },
132
+
105
133
  sort: {
106
- type: Object as PropType<SortHeaderModel>,
134
+ type: String,
107
135
  default: undefined,
108
136
  },
109
137
 
110
- sortHeaders: {
111
- type: Array as PropType<CardCollectionSortHeader[]>,
112
- default: undefined,
138
+ sortOptions: {
139
+ type: Array as PropType<SortOption[]>,
140
+ default: () => [],
113
141
  },
114
142
 
115
143
  search: {
@@ -131,6 +159,8 @@ export default defineComponent({
131
159
  setup(props, context) {
132
160
  // Refs
133
161
  const root = ref<HTMLElement>();
162
+ const sortMenu = ref<typeof OrMenu>();
163
+ const sortButton = ref<typeof OrButton>();
134
164
 
135
165
  // Styles
136
166
  const classAttribute = useClassAttribute();
@@ -149,23 +179,24 @@ export default defineComponent({
149
179
  ...CardCollectionToolbarPanel,
150
180
  ]);
151
181
 
152
- const contentStyles = computed(() => [
153
- ...CardCollectionContent,
154
- ...CardCollectionContentViews[proxyView.value],
155
- ]);
156
-
182
+ const sortLabel = computed(() => {
183
+ return props.sortOptions.find(item => item.value === props.sort)?.label;
184
+ });
157
185
  // State
158
186
  const proxyView = ref(props.view);
159
187
  const proxySort = ref(props.sort);
160
188
  const proxySearch = ref(props.search);
161
189
 
162
190
  // Methods
163
- function switchToGridView(): void {
164
- proxyView.value = CardCollectionView.Grid;
191
+ function switchView(view: string): void {
192
+ proxyView.value = view;
193
+ }
194
+ function handleSort(sort: string) {
195
+ proxySort.value = sort;
165
196
  }
166
197
 
167
- function switchToListView(): void {
168
- proxyView.value = CardCollectionView.List;
198
+ function handleSearch(search: string) {
199
+ proxySearch.value = search;
169
200
  }
170
201
 
171
202
  // Effects
@@ -195,15 +226,18 @@ export default defineComponent({
195
226
 
196
227
  return {
197
228
  root,
229
+ sortMenu,
230
+ sortButton,
198
231
  rootStyles,
199
232
  toolbarStyles,
200
233
  toolbarPanelStyles,
201
- contentStyles,
202
234
  proxyView,
203
235
  proxySort,
204
236
  proxySearch,
205
- switchToGridView,
206
- switchToListView,
237
+ sortLabel,
238
+ switchView,
239
+ handleSort,
240
+ handleSearch,
207
241
  };
208
242
  },
209
243
  });
@@ -0,0 +1,41 @@
1
+ <template>
2
+ <div :class="contentStyles">
3
+ <slot
4
+ v-for="(item) in items"
5
+ name="item"
6
+ v-bind="{
7
+ item,
8
+ mode,
9
+ }"
10
+ >
11
+ {{ item.key }}
12
+ </slot>
13
+ </div>
14
+ </template>
15
+ <script lang="ts">
16
+ import { defineComponent, computed, PropType } from 'vue-demi';
17
+ import { CardCollectionContent, CardCollectionContentViews } from './styles';
18
+ import { CardCollectionItem } from './types';
19
+ import { CardCollectionView } from './props';
20
+
21
+ export default defineComponent({
22
+ name: 'OrCardCollectionView',
23
+ props: {
24
+ items: {
25
+ type: Array as PropType<CardCollectionItem[]>,
26
+ default: [] as CardCollectionItem[],
27
+ },
28
+ mode: {
29
+ type: String as PropType<CardCollectionView>,
30
+ required: true,
31
+ },
32
+ },
33
+ setup(props) {
34
+ const contentStyles = computed(() => [
35
+ ...CardCollectionContent,
36
+ ...CardCollectionContentViews[props.mode],
37
+ ]);
38
+ return { contentStyles };
39
+ },
40
+ });
41
+ </script>
@@ -0,0 +1,42 @@
1
+ <template>
2
+ <div :class="contentStyles">
3
+ <slot
4
+ v-for="(item, index) in items"
5
+ :key="item.key || index"
6
+ name="item"
7
+ v-bind="{
8
+ item,
9
+ mode,
10
+ }"
11
+ >
12
+ {{ item.key }}
13
+ </slot>
14
+ </div>
15
+ </template>
16
+ <script lang="ts">
17
+ import { defineComponent, computed, PropType } from 'vue-demi';
18
+ import { CardCollectionContent, CardCollectionContentViews } from './styles';
19
+ import { CardCollectionItem } from './types';
20
+ import { CardCollectionView } from './props';
21
+
22
+ export default defineComponent({
23
+ name: 'OrCardCollectionView',
24
+ props: {
25
+ items: {
26
+ type: Array as PropType<CardCollectionItem[]>,
27
+ default: [] as CardCollectionItem[],
28
+ },
29
+ mode: {
30
+ type: String as PropType<CardCollectionView>,
31
+ required: true,
32
+ },
33
+ },
34
+ setup(props) {
35
+ const contentStyles = computed(() => [
36
+ ...CardCollectionContent,
37
+ ...CardCollectionContentViews[props.mode],
38
+ ]);
39
+ return { contentStyles };
40
+ },
41
+ });
42
+ </script>
@@ -0,0 +1,12 @@
1
+ import { ViewMode } from './types';
2
+
3
+ export const gridView: ViewMode = {
4
+ view: 'grid',
5
+ icon: 'grid_view',
6
+ };
7
+ export const listView: ViewMode = {
8
+ view: 'list',
9
+ icon: 'view_agenda',
10
+ };
11
+
12
+ export const defaultViewModes = [gridView, listView];
@@ -25,7 +25,7 @@ export const CardCollectionToolbarPanel: string[] = [
25
25
  'layout-row',
26
26
 
27
27
  // Spacing
28
- 'gap-sm+',
28
+ 'gap-lg+',
29
29
  ];
30
30
 
31
31
  export const CardCollectionContent: string[] = [
@@ -1,8 +1,14 @@
1
1
  export interface CardCollectionItem {
2
- id: string;
2
+ key?: string;
3
+ [key: string|number]: any;
3
4
  }
4
5
 
5
- export interface CardCollectionSortHeader {
6
- value: string;
6
+ export interface ViewMode {
7
+ view: string;
8
+ icon: string;
9
+ }
10
+
11
+ export interface SortOption {
7
12
  label: string;
13
+ value: string;
8
14
  }
@@ -38,7 +38,7 @@
38
38
  @focus="$emit('focus', $event)"
39
39
  @blur="$emit('blur', $event)"
40
40
  >
41
- <template v-if="proxyModelValue !== undefined">
41
+ <template v-if="proxyModelValue && proxyModelValue.length > 0">
42
42
  <template v-if="multiple">
43
43
  <slot
44
44
  name="valueTemplate"
@@ -265,12 +265,12 @@ export default defineComponent({
265
265
  },
266
266
 
267
267
  modelValue: {
268
- type: [String, Number, Array] as PropType<string | number | (string | number)[]>,
268
+ type: [String, Array] as PropType<string | string[]>,
269
269
  default: undefined,
270
270
  },
271
271
 
272
272
  value: { // TODO: Remove Vue 2 fallback
273
- type: [String, Number, Array] as PropType<string | number | (string | number)[]>,
273
+ type: [String, Array] as PropType<string | string[]>,
274
274
  default: undefined,
275
275
  },
276
276
 
@@ -1,3 +1,2 @@
1
1
  export { default as OrSelectV3 } from './OrSelect.vue';
2
2
  export * from './props';
3
- export * from './types';
@@ -1,5 +1,5 @@
1
1
  export interface SelectOption {
2
- value: string | number;
2
+ value: string;
3
3
  label: string;
4
4
  }
5
5
 
@@ -1,228 +0,0 @@
1
- import './index-fa6eb4ca.js';
2
- import { O as OrCard } from './OrCard-58a1ba3e.js';
3
- import { O as OrIconButton } from './OrIconButton-a215104c.js';
4
- import { O as OrInput } from './OrInput-8b90e08f.js';
5
- import { O as OrSortHeader } from './OrSortHeader-396e6a7c.js';
6
- import { u as useClassAttribute } from './useClassAttribute-9bf33346.js';
7
- import { defineComponent, ref, computed, watch } from '@vue/composition-api/dist/vue-composition-api.mjs';
8
- import { n as normalizeComponent } from './normalize-component-6e8e3d80.js';
9
-
10
- var CardCollectionView;
11
- (function (CardCollectionView) {
12
- CardCollectionView["Grid"] = "grid";
13
- CardCollectionView["List"] = "list";
14
- })(CardCollectionView || (CardCollectionView = {}));
15
-
16
- const CardCollectionRoot = [
17
- // Layout
18
- 'layout-column',
19
- // Spacing
20
- 'gap-md'];
21
- const CardCollectionToolbar = [
22
- // Layout
23
- 'layout-row justify-between',
24
- // Typography
25
- 'typography-body-2-regular',
26
- // Theme
27
- 'theme-foreground-default', 'dark:theme-foreground-default-dark'];
28
- const CardCollectionToolbarPanel = [
29
- // Layout
30
- 'layout-row',
31
- // Spacing
32
- 'gap-sm+'];
33
- const CardCollectionContent = [
34
- // Layout
35
- 'grid',
36
- // Spacing
37
- 'gap-sm md:gap-md'];
38
- const CardCollectionContentViews = {
39
- 'grid': [
40
- // Layout
41
- 'sm:grid-cols-1', 'md:grid-cols-2', 'lg:grid-cols-4', 'xl:grid-cols-6'],
42
- 'list': []
43
- };
44
-
45
- var script = defineComponent({
46
- name: 'OrCardCollection',
47
- components: {
48
- OrCard,
49
- OrIconButton,
50
- OrInput,
51
- OrSortHeader
52
- },
53
- inheritAttrs: false,
54
- props: {
55
- items: {
56
- type: Array,
57
- default: []
58
- },
59
- view: {
60
- type: String,
61
- default: CardCollectionView.Grid
62
- },
63
- sort: {
64
- type: Object,
65
- default: undefined
66
- },
67
- sortHeaders: {
68
- type: Array,
69
- default: undefined
70
- },
71
- search: {
72
- type: String,
73
- default: undefined
74
- }
75
- },
76
- emits: ['viewChange', 'sortChange', 'searchChange'],
77
- expose: ['root'],
78
- setup(props, context) {
79
- // Refs
80
- const root = ref();
81
- // Styles
82
- const classAttribute = useClassAttribute();
83
- const rootStyles = computed(() => ['or-card-collection', ...CardCollectionRoot, classAttribute.value]);
84
- const toolbarStyles = computed(() => [...CardCollectionToolbar]);
85
- const toolbarPanelStyles = computed(() => [...CardCollectionToolbarPanel]);
86
- const contentStyles = computed(() => [...CardCollectionContent, ...CardCollectionContentViews[proxyView.value]]);
87
- // State
88
- const proxyView = ref(props.view);
89
- const proxySort = ref(props.sort);
90
- const proxySearch = ref(props.search);
91
- // Methods
92
- function switchToGridView() {
93
- proxyView.value = CardCollectionView.Grid;
94
- }
95
- function switchToListView() {
96
- proxyView.value = CardCollectionView.List;
97
- }
98
- // Effects
99
- watch(() => props.view, value => {
100
- proxyView.value = value;
101
- });
102
- watch(proxyView, value => {
103
- context.emit('viewChange', value);
104
- });
105
- watch(() => props.sort, value => {
106
- proxySort.value = value;
107
- });
108
- watch(proxySort, value => {
109
- context.emit('sortChange', value);
110
- });
111
- watch(() => props.search, value => {
112
- proxySearch.value = value;
113
- });
114
- watch(proxySearch, value => {
115
- context.emit('searchChange', value);
116
- });
117
- return {
118
- root,
119
- rootStyles,
120
- toolbarStyles,
121
- toolbarPanelStyles,
122
- contentStyles,
123
- proxyView,
124
- proxySort,
125
- proxySearch,
126
- switchToGridView,
127
- switchToListView
128
- };
129
- }
130
- });
131
-
132
- /* script */
133
- const __vue_script__ = script;
134
-
135
- /* template */
136
- var __vue_render__ = function () {
137
- var _vm = this;
138
- var _h = _vm.$createElement;
139
- var _c = _vm._self._c || _h;
140
- return _c('div', _vm._b({
141
- ref: "root",
142
- class: _vm.rootStyles
143
- }, 'div', _vm.$attrs, false), [_c('div', {
144
- class: _vm.toolbarStyles
145
- }, [_c('div', {
146
- class: _vm.toolbarPanelStyles
147
- }, [_vm.sortHeaders ? _vm._l(_vm.sortHeaders, function (header) {
148
- return _c('OrSortHeader', {
149
- key: header.value,
150
- attrs: {
151
- "input-value": header.value
152
- },
153
- model: {
154
- value: _vm.proxySort,
155
- callback: function ($$v) {
156
- _vm.proxySort = $$v;
157
- },
158
- expression: "proxySort"
159
- }
160
- }, [_vm._v("\n " + _vm._s(header.label) + "\n ")]);
161
- }) : _vm._e()], 2), _vm._v(" "), _c('div', {
162
- class: _vm.toolbarPanelStyles
163
- }, [_c('OrInput', {
164
- attrs: {
165
- "type": 'search',
166
- "placeholder": 'Search',
167
- "size": 's'
168
- },
169
- model: {
170
- value: _vm.proxySearch,
171
- callback: function ($$v) {
172
- _vm.proxySearch = $$v;
173
- },
174
- expression: "proxySearch"
175
- }
176
- }), _vm._v(" "), _c('OrIconButton', {
177
- attrs: {
178
- "icon": 'grid_view'
179
- },
180
- on: {
181
- "click": function ($event) {
182
- return _vm.switchToGridView();
183
- }
184
- }
185
- }), _vm._v(" "), _c('OrIconButton', {
186
- attrs: {
187
- "icon": 'view_list'
188
- },
189
- on: {
190
- "click": function ($event) {
191
- return _vm.switchToListView();
192
- }
193
- }
194
- }), _vm._v(" "), _vm._t("addon")], 2)]), _vm._v(" "), _c('div', {
195
- class: _vm.contentStyles
196
- }, [_vm.proxyView === 'grid' ? _vm._l(_vm.items, function (item) {
197
- return _c('OrCard', {
198
- key: item.id
199
- }, [_vm._t("gridItem", null, null, item)], 2);
200
- }) : _vm._e(), _vm._v(" "), _vm.proxyView === 'list' ? _vm._l(_vm.items, function (item) {
201
- return _c('OrCard', {
202
- key: item.id
203
- }, [_vm._t("listItem", null, null, item)], 2);
204
- }) : _vm._e()], 2)]);
205
- };
206
- var __vue_staticRenderFns__ = [];
207
-
208
- /* style */
209
- const __vue_inject_styles__ = undefined;
210
- /* scoped */
211
- const __vue_scope_id__ = undefined;
212
- /* module identifier */
213
- const __vue_module_identifier__ = undefined;
214
- /* functional template */
215
- const __vue_is_functional_template__ = false;
216
- /* style inject */
217
-
218
- /* style inject SSR */
219
-
220
- /* style inject shadow dom */
221
-
222
- const __vue_component__ = /*#__PURE__*/normalizeComponent({
223
- render: __vue_render__,
224
- staticRenderFns: __vue_staticRenderFns__
225
- }, __vue_inject_styles__, __vue_script__, __vue_scope_id__, __vue_is_functional_template__, __vue_module_identifier__, false, undefined, undefined, undefined);
226
- var __vue_component__$1 = __vue_component__;
227
-
228
- export { CardCollectionView as C, __vue_component__$1 as _ };