@onereach/ui-components 7.1.1-beta.3553.0 → 8.0.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 (169) hide show
  1. package/dist/bundled/v2/{OrList-1bb8cbb1.js → OrList-e25dc45f.js} +129 -65
  2. package/dist/bundled/v2/components/OrDatePickerV3/OrDatePicker.js +1 -1
  3. package/dist/bundled/v2/components/OrDateRangePickerV3/OrDateRangePicker.js +1 -1
  4. package/dist/bundled/v2/components/OrDateTimePickerV3/OrDateTimePicker.js +1 -1
  5. package/dist/bundled/v2/components/OrDateTimePickerV3/index.js +1 -1
  6. package/dist/bundled/v2/components/OrList/OrList.js +3 -2581
  7. package/dist/bundled/v2/components/OrListV3/OrList.js +1 -1
  8. package/dist/bundled/v2/components/OrListV3/OrList.vue.d.ts +30 -26
  9. package/dist/bundled/v2/components/OrListV3/index.d.ts +1 -0
  10. package/dist/bundled/v2/components/OrListV3/index.js +1 -1
  11. package/dist/bundled/v2/components/OrListV3/styles.d.ts +1 -0
  12. package/dist/bundled/v2/components/OrListV3/styles.js +2 -1
  13. package/dist/bundled/v2/components/OrListV3/types.d.ts +4 -0
  14. package/dist/bundled/v2/components/OrListV3/types.js +1 -0
  15. package/dist/bundled/v2/components/index.js +2 -2
  16. package/dist/bundled/v2/hooks/useResponsive/useResponsive.js +2 -0
  17. package/dist/bundled/v2/index.js +3 -3
  18. package/dist/bundled/{v3/OrList.vue_vue_type_script_lang-bc49c1ff.js → v2/sortable.esm-11705107.js} +1 -1007
  19. package/dist/bundled/v3/{OrCardCollection.vue_vue_type_script_lang-79c15c42.js → OrCardCollection.vue_vue_type_script_lang-2ce06287.js} +3 -3
  20. package/dist/bundled/v3/{OrCode.vue_vue_type_script_lang-c1b79f15.js → OrCode.vue_vue_type_script_lang-ed0c782e.js} +2 -2
  21. package/dist/bundled/v3/{OrConfirm.vue_vue_type_script_lang-ac0e29e9.js → OrConfirm.vue_vue_type_script_lang-3717bdc9.js} +1 -1
  22. package/dist/bundled/v3/{OrContextMenu.vue_vue_type_script_lang-9965a7ee.js → OrContextMenu.vue_vue_type_script_lang-faabc0aa.js} +1 -1
  23. package/dist/bundled/v3/{OrDatePicker.vue_vue_type_script_lang-38ecba3a.js → OrDatePicker.vue_vue_type_script_lang-3cb0cf6b.js} +4 -4
  24. package/dist/bundled/v3/{OrDateRangePicker.vue_vue_type_script_lang-6c57d848.js → OrDateRangePicker.vue_vue_type_script_lang-8fc45f7e.js} +3 -3
  25. package/dist/bundled/v3/{OrDateTimePicker.vue_vue_type_script_lang-0b1559d3.js → OrDateTimePicker.vue_vue_type_script_lang-8e1cb539.js} +4 -4
  26. package/dist/bundled/v3/{OrDateTimePickerMonthSelect.vue_vue_type_script_lang-0c826945.js → OrDateTimePickerMonthSelect.vue_vue_type_script_lang-944f5be2.js} +2 -2
  27. package/dist/bundled/v3/{OrDateTimePickerPopoverHeader-f08110c4.js → OrDateTimePickerPopoverHeader-adf15a04.js} +1 -1
  28. package/dist/bundled/v3/{OrIconButton.vue_vue_type_script_lang-90648210.js → OrIconButton.vue_vue_type_script_lang-14f36240.js} +1 -1
  29. package/dist/bundled/v3/{OrInlineInput.vue_vue_type_script_lang-eafbf015.js → OrInlineInput.vue_vue_type_script_lang-a657b7b4.js} +1 -1
  30. package/dist/bundled/v3/{OrInlineTextarea.vue_vue_type_script_lang-6b88499a.js → OrInlineTextarea.vue_vue_type_script_lang-d0007d91.js} +1 -1
  31. package/dist/bundled/v3/{OrInput.vue_vue_type_script_lang-7e02f424.js → OrInput.vue_vue_type_script_lang-bbf2d591.js} +1 -1
  32. package/dist/bundled/v3/OrList.vue_vue_type_script_lang-6a8befb2.js +208 -0
  33. package/dist/bundled/v3/OrList.vue_vue_type_script_lang-8df85a8d.js +1008 -0
  34. package/dist/bundled/v3/{OrListOfInputs.vue_vue_type_script_lang-3d17e3d2.js → OrListOfInputs.vue_vue_type_script_lang-34a006d0.js} +1 -1
  35. package/dist/bundled/v3/{OrMenu.vue_vue_type_script_lang-af4f2a40.js → OrMenu.vue_vue_type_script_lang-bb8832d7.js} +1 -1
  36. package/dist/bundled/v3/{OrModal.vue_vue_type_script_lang-0d3b5147.js → OrModal.vue_vue_type_script_lang-051dddcb.js} +1 -1
  37. package/dist/bundled/v3/{OrNotification.vue_vue_type_script_lang-dddec4de.js → OrNotification.vue_vue_type_script_lang-d95be0bc.js} +1 -1
  38. package/dist/bundled/v3/{OrPagination.vue_vue_type_script_lang-8eb1510b.js → OrPagination.vue_vue_type_script_lang-9cbebadb.js} +1 -1
  39. package/dist/bundled/v3/{OrResizeablePanel.vue_vue_type_script_lang-f121c786.js → OrResizeablePanel.vue_vue_type_script_lang-15321cdb.js} +1 -1
  40. package/dist/bundled/v3/{OrRichTextEditor.vue_vue_type_script_lang-2d4d62a7.js → OrRichTextEditor.vue_vue_type_script_lang-d35ab507.js} +5 -5
  41. package/dist/bundled/v3/{OrSearch.vue_vue_type_script_lang-63479512.js → OrSearch.vue_vue_type_script_lang-d5d5ced4.js} +1 -1
  42. package/dist/bundled/v3/{OrSelect.vue_vue_type_script_lang-2848dfcb.js → OrSelect.vue_vue_type_script_lang-4ce1aad8.js} +4 -4
  43. package/dist/bundled/v3/{OrSidebar.vue_vue_type_script_lang-8b27f24b.js → OrSidebar.vue_vue_type_script_lang-a2b5ddd8.js} +1 -1
  44. package/dist/bundled/v3/{OrSorting.vue_vue_type_script_lang-9f514be8.js → OrSorting.vue_vue_type_script_lang-5f90a4ca.js} +1 -1
  45. package/dist/bundled/v3/{OrTabs.vue_vue_type_script_lang-4675145f.js → OrTabs.vue_vue_type_script_lang-27819312.js} +1 -1
  46. package/dist/bundled/v3/{OrTag.vue_vue_type_script_lang-0658354d.js → OrTag.vue_vue_type_script_lang-afc42fba.js} +1 -1
  47. package/dist/bundled/v3/{OrTagInput.vue_vue_type_script_lang-7d758cdd.js → OrTagInput.vue_vue_type_script_lang-79062a86.js} +2 -2
  48. package/dist/bundled/v3/{OrTags.vue_vue_type_script_lang-2804af4c.js → OrTags.vue_vue_type_script_lang-41446a34.js} +2 -2
  49. package/dist/bundled/v3/{OrTimePicker.vue_vue_type_script_lang-2031ee3a.js → OrTimePicker.vue_vue_type_script_lang-1f50fb53.js} +2 -2
  50. package/dist/bundled/v3/{OrTimeRangePicker.vue_vue_type_script_lang-4a548281.js → OrTimeRangePicker.vue_vue_type_script_lang-864b4f86.js} +2 -2
  51. package/dist/bundled/v3/{OrTooltip.vue_vue_type_script_lang-8af0ce75.js → OrTooltip.vue_vue_type_script_lang-46e8aa97.js} +1 -1
  52. package/dist/bundled/v3/components/OrCardCollectionV3/OrCardCollection.js +2 -2
  53. package/dist/bundled/v3/components/OrCardCollectionV3/index.js +1 -1
  54. package/dist/bundled/v3/components/OrCodeV3/OrCode.js +2 -2
  55. package/dist/bundled/v3/components/OrCodeV3/index.js +1 -1
  56. package/dist/bundled/v3/components/OrConfirmV3/OrConfirm.js +2 -2
  57. package/dist/bundled/v3/components/OrConfirmV3/index.js +1 -1
  58. package/dist/bundled/v3/components/OrContextMenuV3/OrContextMenu.js +2 -2
  59. package/dist/bundled/v3/components/OrContextMenuV3/index.js +1 -1
  60. package/dist/bundled/v3/components/OrDatePickerV3/OrDatePicker.js +2 -2
  61. package/dist/bundled/v3/components/OrDatePickerV3/index.js +1 -1
  62. package/dist/bundled/v3/components/OrDateRangePickerV3/OrDateRangePicker.js +2 -2
  63. package/dist/bundled/v3/components/OrDateRangePickerV3/index.js +1 -1
  64. package/dist/bundled/v3/components/OrDateTimePickerV3/OrDateTimePicker.js +2 -2
  65. package/dist/bundled/v3/components/OrDateTimePickerV3/index.js +2 -2
  66. package/dist/bundled/v3/components/OrIconButtonV3/OrIconButton.js +2 -2
  67. package/dist/bundled/v3/components/OrIconButtonV3/index.js +1 -1
  68. package/dist/bundled/v3/components/OrInlineInputV3/OrInlineInput.js +2 -2
  69. package/dist/bundled/v3/components/OrInlineInputV3/index.js +1 -1
  70. package/dist/bundled/v3/components/OrInlineTextareaV3/OrInlineTextarea.js +2 -2
  71. package/dist/bundled/v3/components/OrInlineTextareaV3/index.js +1 -1
  72. package/dist/bundled/v3/components/OrInputV3/OrInput.js +2 -2
  73. package/dist/bundled/v3/components/OrInputV3/index.js +1 -1
  74. package/dist/bundled/v3/components/OrList/OrList.js +2 -2
  75. package/dist/bundled/v3/components/OrList/index.js +1 -1
  76. package/dist/bundled/v3/components/OrListOfInputs/OrListOfInputs.js +2 -2
  77. package/dist/bundled/v3/components/OrListOfInputs/index.js +1 -1
  78. package/dist/bundled/v3/components/OrListV3/OrList.js +19 -22
  79. package/dist/bundled/v3/components/OrListV3/OrList.vue.d.ts +25 -16
  80. package/dist/bundled/v3/components/OrListV3/index.d.ts +1 -0
  81. package/dist/bundled/v3/components/OrListV3/index.js +1 -1
  82. package/dist/bundled/v3/components/OrListV3/styles.d.ts +1 -0
  83. package/dist/bundled/v3/components/OrListV3/styles.js +2 -1
  84. package/dist/bundled/v3/components/OrListV3/types.d.ts +4 -0
  85. package/dist/bundled/v3/components/OrListV3/types.js +1 -0
  86. package/dist/bundled/v3/components/OrMenuV3/OrMenu.js +2 -2
  87. package/dist/bundled/v3/components/OrMenuV3/index.js +1 -1
  88. package/dist/bundled/v3/components/OrModalV3/OrModal.js +2 -2
  89. package/dist/bundled/v3/components/OrModalV3/index.js +1 -1
  90. package/dist/bundled/v3/components/OrNotificationV3/OrNotification.js +2 -2
  91. package/dist/bundled/v3/components/OrNotificationV3/index.js +1 -1
  92. package/dist/bundled/v3/components/OrPaginationV3/OrPagination.js +2 -2
  93. package/dist/bundled/v3/components/OrPaginationV3/index.js +1 -1
  94. package/dist/bundled/v3/components/OrPopoverV3/OrPopover.js +2 -2
  95. package/dist/bundled/v3/components/OrPopoverV3/index.js +1 -1
  96. package/dist/bundled/v3/components/OrProgressV3/OrProgress.js +2 -2
  97. package/dist/bundled/v3/components/OrProgressV3/index.js +1 -1
  98. package/dist/bundled/v3/components/OrResizeablePanelV3/OrResizeablePanel.js +2 -2
  99. package/dist/bundled/v3/components/OrResizeablePanelV3/index.js +1 -1
  100. package/dist/bundled/v3/components/OrRichTextEditorV3/OrRichTextEditor.js +2 -2
  101. package/dist/bundled/v3/components/OrRichTextEditorV3/index.js +1 -1
  102. package/dist/bundled/v3/components/OrSearchV3/OrSearch.js +2 -2
  103. package/dist/bundled/v3/components/OrSearchV3/index.js +1 -1
  104. package/dist/bundled/v3/components/OrSelectV3/OrSelect.js +2 -2
  105. package/dist/bundled/v3/components/OrSelectV3/index.js +1 -1
  106. package/dist/bundled/v3/components/OrSidebarV3/OrSidebar.js +2 -2
  107. package/dist/bundled/v3/components/OrSidebarV3/index.js +1 -1
  108. package/dist/bundled/v3/components/OrSortingV3/OrSorting.js +2 -2
  109. package/dist/bundled/v3/components/OrSortingV3/index.js +1 -1
  110. package/dist/bundled/v3/components/OrTabsV3/OrTabs.js +2 -2
  111. package/dist/bundled/v3/components/OrTabsV3/index.js +1 -1
  112. package/dist/bundled/v3/components/OrTagInputV3/OrTagInput.js +2 -2
  113. package/dist/bundled/v3/components/OrTagInputV3/index.js +1 -1
  114. package/dist/bundled/v3/components/OrTagV3/OrTag.js +2 -2
  115. package/dist/bundled/v3/components/OrTagV3/index.js +1 -1
  116. package/dist/bundled/v3/components/OrTagsV3/OrTags.js +2 -2
  117. package/dist/bundled/v3/components/OrTagsV3/index.js +1 -1
  118. package/dist/bundled/v3/components/OrTimePickerV3/OrTimePicker.js +2 -2
  119. package/dist/bundled/v3/components/OrTimePickerV3/index.js +1 -1
  120. package/dist/bundled/v3/components/OrTimeRangePickerV3/OrTimeRangePicker.js +2 -2
  121. package/dist/bundled/v3/components/OrTimeRangePickerV3/index.js +1 -1
  122. package/dist/bundled/v3/components/OrToastContainerV3/OrToastContainer.js +2 -2
  123. package/dist/bundled/v3/components/OrToastContainerV3/index.js +1 -1
  124. package/dist/bundled/v3/components/OrToastV3/OrToast.js +1 -1
  125. package/dist/bundled/v3/components/OrToastV3/index.js +1 -1
  126. package/dist/bundled/v3/components/OrTooltipV3/OrTooltip.js +2 -2
  127. package/dist/bundled/v3/components/OrTooltipV3/index.js +1 -1
  128. package/dist/bundled/v3/components/index.js +35 -35
  129. package/dist/bundled/v3/hooks/useResponsive/useResponsive.js +2 -0
  130. package/dist/bundled/v3/index.js +36 -36
  131. package/dist/bundled/v3/sortable.esm-11705107.js +2580 -0
  132. package/dist/esm/v2/{OrList-5c383b3c.js → OrList-bf420a7c.js} +88 -62
  133. package/dist/esm/v2/{OrListItem-c6b0dd77.js → OrListItem-534e8e9d.js} +43 -4
  134. package/dist/esm/v2/components/index.js +2 -2
  135. package/dist/esm/v2/components/or-list-v3/OrList.vue.d.ts +30 -26
  136. package/dist/esm/v2/components/or-list-v3/index.d.ts +1 -0
  137. package/dist/esm/v2/components/or-list-v3/index.js +3 -2
  138. package/dist/esm/v2/components/or-list-v3/partials/index.js +1 -1
  139. package/dist/esm/v2/components/or-list-v3/partials/or-list-item/OrListItem.vue.d.ts +42 -2
  140. package/dist/esm/v2/components/or-list-v3/partials/or-list-item/styles.d.ts +1 -0
  141. package/dist/esm/v2/components/or-list-v3/styles.d.ts +1 -0
  142. package/dist/esm/v2/components/or-list-v3/types.d.ts +4 -0
  143. package/dist/esm/v2/index.js +2 -2
  144. package/dist/esm/v3/OrList-f846aad7.js +211 -0
  145. package/dist/esm/v3/OrListItem-2ed9a12f.js +70 -0
  146. package/dist/esm/v3/components/index.js +2 -2
  147. package/dist/esm/v3/components/or-list-v3/OrList.vue.d.ts +25 -16
  148. package/dist/esm/v3/components/or-list-v3/index.d.ts +1 -0
  149. package/dist/esm/v3/components/or-list-v3/index.js +3 -2
  150. package/dist/esm/v3/components/or-list-v3/partials/index.js +1 -1
  151. package/dist/esm/v3/components/or-list-v3/partials/or-list-item/OrListItem.vue.d.ts +33 -2
  152. package/dist/esm/v3/components/or-list-v3/partials/or-list-item/styles.d.ts +1 -0
  153. package/dist/esm/v3/components/or-list-v3/styles.d.ts +1 -0
  154. package/dist/esm/v3/components/or-list-v3/types.d.ts +4 -0
  155. package/dist/esm/v3/index.js +2 -2
  156. package/package.json +4 -3
  157. package/src/components/or-list-v3/OrList.vue +118 -78
  158. package/src/components/or-list-v3/index.ts +1 -0
  159. package/src/components/or-list-v3/partials/or-list-item/OrListItem.vue +32 -2
  160. package/src/components/or-list-v3/partials/or-list-item/styles.ts +27 -0
  161. package/src/components/or-list-v3/styles.ts +2 -0
  162. package/src/components/or-list-v3/types.ts +4 -0
  163. package/dist/bundled/v3/OrList.vue_vue_type_script_lang-8f6fa1e3.js +0 -141
  164. package/dist/esm/v3/OrList-f2ad37ed.js +0 -182
  165. package/dist/esm/v3/OrListItem-d89cd659.js +0 -33
  166. /package/dist/bundled/v2/{OrDateTimePickerMonthSelect-c7959782.js → OrDateTimePickerMonthSelect-9870c649.js} +0 -0
  167. /package/dist/bundled/v3/{OrPopover.vue_vue_type_script_lang-62552b5d.js → OrPopover.vue_vue_type_script_lang-f80a7a1b.js} +0 -0
  168. /package/dist/bundled/v3/{OrProgress.vue_vue_type_script_lang-9f7dcc82.js → OrProgress.vue_vue_type_script_lang-aa3d9804.js} +0 -0
  169. /package/dist/bundled/v3/{OrToastContainer.vue_vue_type_script_lang-a932333f.js → OrToastContainer.vue_vue_type_script_lang-1f10ba7f.js} +0 -0
@@ -21,44 +21,40 @@
21
21
  </OrLabel>
22
22
  </slot>
23
23
 
24
- <OrListItem
25
- v-for="(item, index) in proxyModelValue"
26
- :key="uuid()"
27
- :draggable="canReorder"
28
- @dragstart="onDragStart"
29
- @dragenter="onDragEnter"
30
- @dragover="onDragOver"
31
- @dragleave="onDragLeave"
32
- @dragend="onDragEnd"
33
- @drop="onDrop"
24
+ <div
25
+ ref="content"
26
+ :class="contentStyles"
34
27
  >
35
- <template v-if="canReorder">
36
- <OrIcon
37
- :icon="'drag_handle'"
38
- :size="'l'"
39
- />
40
- </template>
41
-
42
- <slot
43
- v-bind="{
44
- item,
45
- index,
46
- items: proxyModelValue,
47
- addItem,
48
- deleteItem
49
- }"
28
+ <OrListItem
29
+ v-for="(item, index) in proxyModelValue"
30
+ :key="item.key || uuid()"
31
+ :selected="selection.includes(item)"
32
+ :disabled="disabled"
33
+ :draggable="canReorder"
50
34
  >
51
- {{ item }}
52
- </slot>
53
-
54
- <template v-if="canDelete">
55
- <OrIconButton
56
- :icon="'delete'"
57
- :disabled="disabled"
58
- @click="deleteItem(index)"
59
- />
60
- </template>
61
- </OrListItem>
35
+ <div :class="['grow']">
36
+ <slot
37
+ v-bind="{
38
+ item,
39
+ index,
40
+ items: proxyModelValue,
41
+ addItem,
42
+ deleteItem
43
+ }"
44
+ >
45
+ {{ item }}
46
+ </slot>
47
+ </div>
48
+
49
+ <template v-if="canDelete">
50
+ <OrIconButton
51
+ :icon="'delete'"
52
+ :disabled="disabled"
53
+ @click="deleteItem(index)"
54
+ />
55
+ </template>
56
+ </OrListItem>
57
+ </div>
62
58
 
63
59
  <slot
64
60
  name="footer"
@@ -80,18 +76,18 @@
80
76
  </template>
81
77
 
82
78
  <script lang="ts">
79
+ import Sortable from 'sortablejs';
83
80
  import { v4 as uuid } from 'uuid';
84
- import { PropType, computed, defineComponent, ref, toRef } from 'vue-demi';
81
+ import { PropType, computed, defineComponent, ref, toRef, watch } from 'vue-demi';
85
82
  import { useProxyModelValue } from '../../hooks';
86
83
  import { OrIconButtonV3 as OrIconButton } from '../or-icon-button-v3';
87
- import { OrIconV3 as OrIcon } from '../or-icon-v3';
88
84
  import { OrLabelV3 as OrLabel } from '../or-label-v3';
89
85
  import { OrListItem } from './partials';
90
- import { List } from './styles';
86
+ import { List, ListContent } from './styles';
87
+ import { ListItem } from './types';
91
88
 
92
89
  export default defineComponent({
93
90
  components: {
94
- OrIcon,
95
91
  OrIconButton,
96
92
  OrLabel,
97
93
  OrListItem,
@@ -104,12 +100,17 @@ export default defineComponent({
104
100
 
105
101
  props: {
106
102
  modelValue: {
107
- type: Array as PropType<object[]>,
103
+ type: Array as PropType<ListItem[]>,
104
+ default: () => [],
105
+ },
106
+
107
+ selection: {
108
+ type: Array as PropType<ListItem[]>,
108
109
  default: () => [],
109
110
  },
110
111
 
111
- itemProps: {
112
- type: Object as PropType<object>,
112
+ itemFactory: {
113
+ type: Function as PropType<() => ListItem>,
113
114
  default: () => ({}),
114
115
  },
115
116
 
@@ -142,6 +143,10 @@ export default defineComponent({
142
143
  emits: [
143
144
  'update:modelValue',
144
145
 
146
+ 'before:add',
147
+ 'before:delete',
148
+ 'before:reorder',
149
+
145
150
  'add',
146
151
  'delete',
147
152
  'reorder',
@@ -154,6 +159,7 @@ export default defineComponent({
154
159
  setup(props, context) {
155
160
  // Refs
156
161
  const root = ref<HTMLElement>();
162
+ const content = ref<HTMLElement>();
157
163
 
158
164
  // Styles
159
165
  const rootStyles = computed(() => [
@@ -161,71 +167,105 @@ export default defineComponent({
161
167
  ...List,
162
168
  ]);
163
169
 
170
+ const contentStyles = computed(() => [
171
+ ...ListContent,
172
+ ]);
173
+
164
174
  // State
165
175
  const proxyModelValue = useProxyModelValue(toRef(props, 'modelValue'), context.emit);
166
176
 
177
+ // Effects
178
+ // #region Sortable
179
+ let sortable: Sortable | undefined;
180
+
181
+ watch([content, () => props.canReorder], ([content, canReorder]) => {
182
+ sortable?.destroy();
183
+ sortable = undefined;
184
+
185
+ if (content && canReorder) {
186
+ sortable = Sortable.create(content, {
187
+ disabled: props.disabled,
188
+
189
+ onUpdate: (event) => {
190
+ context.emit('before:reorder', proxyModelValue.value);
191
+
192
+ const nextModelValue = [...proxyModelValue.value];
193
+ const reorderedItem = nextModelValue.splice(event.oldIndex!, 1)[0];
194
+
195
+ nextModelValue.splice(event.newIndex!, 0, reorderedItem);
196
+
197
+ context.emit('reorder', reorderedItem, event.newIndex, event.oldIndex, proxyModelValue.value = nextModelValue);
198
+ },
199
+ });
200
+ }
201
+ });
202
+
203
+ watch(() => props.disabled, (value) => {
204
+ sortable?.option('disabled', value);
205
+ });
206
+ // #endregion
207
+
167
208
  // Methods
168
209
  function addItem(): void {
169
- const addedItem = props.itemProps;
210
+ context.emit('before:add', proxyModelValue.value);
170
211
 
171
- proxyModelValue.value = [
172
- ...proxyModelValue.value,
173
- addedItem,
174
- ];
212
+ const addedItem = props.itemFactory();
213
+ const nextModelValue = [...proxyModelValue.value, addedItem];
175
214
 
176
- context.emit('add', addedItem, proxyModelValue.value.indexOf(addedItem), proxyModelValue.value);
215
+ context.emit('add', addedItem, nextModelValue.indexOf(addedItem), proxyModelValue.value = nextModelValue);
177
216
  }
178
217
 
179
218
  function deleteItem(index: number): void {
180
- const deletedItem = proxyModelValue.value[index];
219
+ context.emit('before:delete', proxyModelValue.value);
181
220
 
182
- proxyModelValue.value = proxyModelValue.value.filter((item) => {
183
- return item !== deletedItem;
184
- });
221
+ const deletedItem = proxyModelValue.value[index];
222
+ const nextModelValue = proxyModelValue.value.filter((item) => item !== deletedItem);
185
223
 
186
- context.emit('delete', deletedItem, index, proxyModelValue.value);
224
+ context.emit('delete', deletedItem, index, proxyModelValue.value = nextModelValue);
187
225
  }
188
226
 
189
227
  // Handlers
190
- function onDragStart(event: DragEvent): void {
191
- console.log('dragstart', event);
192
- }
228
+ // function onDragStart(event: DragEvent): void {
229
+ // console.log('dragstart', event);
230
+ // }
193
231
 
194
- function onDragEnter(event: DragEvent): void {
195
- console.log('dragenter', event);
196
- }
232
+ // function onDragEnter(event: DragEvent): void {
233
+ // console.log('dragenter', event);
234
+ // }
197
235
 
198
- function onDragOver(event: DragEvent): void {
199
- console.log('dragover', event);
200
- }
236
+ // function onDragOver(event: DragEvent): void {
237
+ // console.log('dragover', event);
238
+ // }
201
239
 
202
- function onDragLeave(event: DragEvent): void {
203
- console.log('dragleave', event);
204
- }
240
+ // function onDragLeave(event: DragEvent): void {
241
+ // console.log('dragleave', event);
242
+ // }
205
243
 
206
- function onDragEnd(event: DragEvent): void {
207
- console.log('dragend', event);
208
- }
244
+ // function onDragEnd(event: DragEvent): void {
245
+ // console.log('dragend', event);
246
+ // }
209
247
 
210
- function onDrop(event: DragEvent): void {
211
- console.log('drop', event);
212
- }
248
+ // function onDrop(event: DragEvent): void {
249
+ // console.log('drop', event);
250
+ // }
213
251
 
214
252
  return {
215
253
  root,
254
+ content,
216
255
  rootStyles,
256
+ contentStyles,
217
257
 
218
258
  proxyModelValue,
219
259
 
220
260
  addItem,
221
261
  deleteItem,
222
262
 
223
- onDragStart,
224
- onDragEnter,
225
- onDragOver,
226
- onDragLeave,
227
- onDragEnd,
228
- onDrop,
263
+ // onDragStart,
264
+ // onDragEnter,
265
+ // onDragOver,
266
+ // onDragLeave,
267
+ // onDragEnd,
268
+ // onDrop,
229
269
 
230
270
  uuid,
231
271
  };
@@ -1,2 +1,3 @@
1
1
  export { default as OrListV3 } from './OrList.vue';
2
2
  export * from './partials';
3
+ export * from './types';
@@ -2,16 +2,41 @@
2
2
  <div
3
3
  ref="root"
4
4
  :class="rootStyles"
5
+ :selected="selected"
6
+ :disabled="disabled"
7
+ :draggable="draggable"
5
8
  >
6
- <slot />
9
+ <div
10
+ :class="contentStyles"
11
+ :disabled="disabled"
12
+ >
13
+ <slot />
14
+ </div>
7
15
  </div>
8
16
  </template>
9
17
 
10
18
  <script lang="ts">
11
19
  import { computed, defineComponent, ref } from 'vue-demi';
12
- import { ListItem } from './styles';
20
+ import { ListItem, ListItemContent } from './styles';
13
21
 
14
22
  export default defineComponent({
23
+ props: {
24
+ selected: {
25
+ type: Boolean,
26
+ default: false,
27
+ },
28
+
29
+ disabled: {
30
+ type: Boolean,
31
+ default: false,
32
+ },
33
+
34
+ draggable: {
35
+ type: Boolean,
36
+ default: false,
37
+ },
38
+ },
39
+
15
40
  setup() {
16
41
  // Refs
17
42
  const root = ref<HTMLElement>();
@@ -22,9 +47,14 @@ export default defineComponent({
22
47
  ...ListItem,
23
48
  ]);
24
49
 
50
+ const contentStyles = computed(() => [
51
+ ...ListItemContent,
52
+ ]);
53
+
25
54
  return {
26
55
  root,
27
56
  rootStyles,
57
+ contentStyles,
28
58
  };
29
59
  },
30
60
  });
@@ -1,7 +1,34 @@
1
1
  export const ListItem: string[] = [
2
+ // Interactivity (draggable)
3
+ 'draggable:interactivity-drag',
4
+
5
+ // Spacing
6
+ 'px-md md:px-sm',
7
+ 'py-md md:py-sm',
8
+
9
+ // Shape
10
+ 'rounded-md',
11
+
12
+ // Theme (hover)
13
+ 'hover:theme-background-primary-translucent-1',
14
+ 'dark:hover:theme-background-primary-translucent-1-dark',
15
+
16
+ // Theme (focus)
17
+ 'focus-within:theme-outline-2-primary',
18
+ 'dark:focus-within:theme-outline-2-primary-dark',
19
+
20
+ // Theme (selected)
21
+ 'selected:theme-background-primary-translucent-3',
22
+ 'dark:selected:theme-background-primary-translucent-3-dark',
23
+ ];
24
+
25
+ export const ListItemContent: string[] = [
2
26
  // Layout
3
27
  'layout-row',
4
28
 
5
29
  // Spacing
30
+ 'px-md md:px-sm',
31
+ 'py-md md:py-sm',
32
+
6
33
  'gap-sm',
7
34
  ];
@@ -5,3 +5,5 @@ export const List: string[] = [
5
5
  // Spacing
6
6
  'gap-md',
7
7
  ];
8
+
9
+ export const ListContent: string[] = [];
@@ -0,0 +1,4 @@
1
+ export type ListItem = {
2
+ key?: string;
3
+ [property: string]: unknown;
4
+ };
@@ -1,141 +0,0 @@
1
- import { v as v4 } from './v4-cf8987a3.js';
2
- import { defineComponent, ref, computed, toRef } from 'vue-demi';
3
- import { openBlock, createElementBlock, normalizeClass, renderSlot } from 'vue';
4
- import { List } from './components/OrListV3/styles.js';
5
- import './components/OrIconV3/OrIcon.js';
6
- import './components/OrIconButtonV3/OrIconButton.js';
7
- import './components/OrLabelV3/OrLabel.js';
8
- import { s as script$2 } from './OrIcon.vue_vue_type_script_lang-bc674d9e.js';
9
- import { s as script$3 } from './OrIconButton.vue_vue_type_script_lang-90648210.js';
10
- import { s as script$4 } from './OrLabel.vue_vue_type_script_lang-e2bcff17.js';
11
- import { useProxyModelValue } from './hooks/useProxyModelValue.js';
12
-
13
- const ListItem = [
14
- // Layout
15
- 'layout-row',
16
- // Spacing
17
- 'gap-sm'];
18
-
19
- var script$1 = defineComponent({
20
- setup() {
21
- // Refs
22
- const root = ref();
23
- // Styles
24
- const rootStyles = computed(() => ['or-list-item-v3', ...ListItem]);
25
- return {
26
- root,
27
- rootStyles
28
- };
29
- }
30
- });
31
-
32
- function render(_ctx, _cache, $props, $setup, $data, $options) {
33
- return openBlock(), createElementBlock("div", {
34
- ref: "root",
35
- class: normalizeClass(_ctx.rootStyles)
36
- }, [renderSlot(_ctx.$slots, "default")], 2 /* CLASS */);
37
- }
38
-
39
- script$1.render = render;
40
- script$1.__file = "src/components/or-list-v3/partials/or-list-item/OrListItem.vue";
41
-
42
- var script = defineComponent({
43
- components: {
44
- OrIcon: script$2,
45
- OrIconButton: script$3,
46
- OrLabel: script$4,
47
- OrListItem: script$1
48
- },
49
- model: {
50
- prop: 'modelValue',
51
- event: 'update:modelValue'
52
- },
53
- props: {
54
- modelValue: {
55
- type: Array,
56
- default: () => []
57
- },
58
- itemProps: {
59
- type: Object,
60
- default: () => ({})
61
- },
62
- label: {
63
- type: String,
64
- default: undefined
65
- },
66
- disabled: {
67
- type: Boolean,
68
- default: false
69
- },
70
- canAdd: {
71
- type: Boolean,
72
- default: true
73
- },
74
- canDelete: {
75
- type: Boolean,
76
- default: true
77
- },
78
- canReorder: {
79
- type: Boolean,
80
- default: true
81
- }
82
- },
83
- emits: ['update:modelValue', 'add', 'delete', 'reorder'],
84
- expose: ['root'],
85
- setup(props, context) {
86
- // Refs
87
- const root = ref();
88
- // Styles
89
- const rootStyles = computed(() => ['or-list-v3', ...List]);
90
- // State
91
- const proxyModelValue = useProxyModelValue(toRef(props, 'modelValue'), context.emit);
92
- // Methods
93
- function addItem() {
94
- const addedItem = props.itemProps;
95
- proxyModelValue.value = [...proxyModelValue.value, addedItem];
96
- context.emit('add', addedItem, proxyModelValue.value.indexOf(addedItem), proxyModelValue.value);
97
- }
98
- function deleteItem(index) {
99
- const deletedItem = proxyModelValue.value[index];
100
- proxyModelValue.value = proxyModelValue.value.filter(item => {
101
- return item !== deletedItem;
102
- });
103
- context.emit('delete', deletedItem, index, proxyModelValue.value);
104
- }
105
- // Handlers
106
- function onDragStart(event) {
107
- console.log('dragstart', event);
108
- }
109
- function onDragEnter(event) {
110
- console.log('dragenter', event);
111
- }
112
- function onDragOver(event) {
113
- console.log('dragover', event);
114
- }
115
- function onDragLeave(event) {
116
- console.log('dragleave', event);
117
- }
118
- function onDragEnd(event) {
119
- console.log('dragend', event);
120
- }
121
- function onDrop(event) {
122
- console.log('drop', event);
123
- }
124
- return {
125
- root,
126
- rootStyles,
127
- proxyModelValue,
128
- addItem,
129
- deleteItem,
130
- onDragStart,
131
- onDragEnter,
132
- onDragOver,
133
- onDragLeave,
134
- onDragEnd,
135
- onDrop,
136
- uuid: v4
137
- };
138
- }
139
- });
140
-
141
- export { script$1 as a, script as s };