@dataloop-ai/components 0.18.0 → 0.18.2

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 (277) hide show
  1. package/package.json +6 -3
  2. package/src/App.vue +5 -227
  3. package/src/assets/constants.scss +2 -1
  4. package/src/assets/globals.scss +21 -0
  5. package/src/components/basic/DlAccordion/DlAccordion.vue +26 -4
  6. package/src/components/basic/DlAccordion/components/AccordionHeader.vue +2 -1
  7. package/src/components/basic/DlAvatar/DlAvatar.vue +1 -1
  8. package/src/components/basic/DlButton/DlButton.vue +115 -25
  9. package/src/components/basic/DlButton/utils.ts +45 -2
  10. package/src/components/basic/DlChip/DlChip.vue +3 -7
  11. package/src/components/basic/DlChip/utils.ts +4 -4
  12. package/src/components/basic/DlContainer/DlContainer.vue +70 -0
  13. package/src/components/basic/DlContainer/index.ts +3 -0
  14. package/src/components/basic/DlEmptyState/DlEmptyState.vue +282 -0
  15. package/src/components/basic/DlEmptyState/index.ts +2 -0
  16. package/src/components/basic/DlEmptyState/types.ts +20 -0
  17. package/src/components/basic/DlGrid/DlGrid.vue +163 -0
  18. package/src/components/basic/DlGrid/index.ts +4 -0
  19. package/src/components/basic/DlGrid/types.ts +5 -0
  20. package/src/components/basic/DlKpi/components/KpiInfo.vue +2 -1
  21. package/src/components/basic/DlListItem/DlListItem.vue +96 -66
  22. package/src/components/basic/DlListItem/utils.ts +0 -3
  23. package/src/components/basic/DlPanelContainer/DlPanelContainer.vue +37 -13
  24. package/src/components/basic/DlPopup/DlPopup.vue +58 -11
  25. package/src/components/basic/DlPopup/components/PopupHeader.vue +11 -6
  26. package/src/components/basic/DlProgressChart/DlProgressChart.vue +2 -1
  27. package/src/components/basic/DlWidget/DlWidget.vue +273 -141
  28. package/src/components/basic/DlWidget/index.ts +1 -3
  29. package/src/components/basic/DlWidget/utils.ts +90 -8
  30. package/src/components/basic/index.ts +4 -2
  31. package/src/components/basic/types.ts +2 -0
  32. package/src/components/compound/DlCard/DlCard.vue +796 -0
  33. package/src/components/compound/DlCard/components/DescriptionModal.vue +137 -0
  34. package/src/components/compound/DlCard/types.ts +38 -0
  35. package/src/components/compound/DlCharts/charts/DlBarChart/DlBarChart.vue +39 -4
  36. package/src/components/compound/DlCharts/charts/DlColumnChart/DlColumnChart.vue +128 -36
  37. package/src/components/compound/DlCharts/charts/DlConfusionMatrix/DlConfusionMatrix.vue +167 -87
  38. package/src/components/compound/DlCharts/charts/DlConfusionMatrix/utils.ts +2 -1
  39. package/src/components/compound/DlCharts/charts/DlDoughnutChart/DlDoughnutChart.vue +44 -3
  40. package/src/components/compound/DlCharts/charts/DlDoughnutChart/DlDoughnutChartWidget.vue +1 -2
  41. package/src/components/compound/DlCharts/charts/DlDoughnutChart/components/DlDoughnutChartLegend.vue +9 -18
  42. package/src/components/compound/DlCharts/charts/DlLineChart/DlLineChart.vue +48 -9
  43. package/src/components/compound/DlCharts/charts/DlScatterChart/DlScatterChart.vue +667 -0
  44. package/src/components/compound/DlCharts/charts/DlScatterChart/index.ts +2 -0
  45. package/src/components/compound/DlCharts/charts/index.ts +1 -0
  46. package/src/components/compound/DlCharts/components/DlBrush.vue +3 -2
  47. package/src/components/compound/DlCharts/components/DlChartLabels.vue +2 -1
  48. package/src/components/compound/DlCharts/components/DlChartScrollBar.vue +1 -0
  49. package/src/components/compound/DlCharts/types/props.ts +5 -1
  50. package/src/components/compound/DlCharts/utils.ts +1 -1
  51. package/src/components/compound/DlCodeEditor/DlCodeEditor.vue +173 -0
  52. package/src/components/compound/DlCodeEditor/README.md +11 -0
  53. package/src/components/compound/DlCodeEditor/components/CodeEditor.vue +705 -0
  54. package/src/components/compound/DlCodeEditor/index.ts +3 -0
  55. package/src/components/compound/DlCodeEditor/styles/themes-base16.css +12809 -0
  56. package/src/components/compound/DlCodeEditor/styles/themes.css +3999 -0
  57. package/src/components/compound/DlCodeEditor/types.ts +21 -0
  58. package/src/components/compound/DlDateTime/DlDatePicker/DlDatePicker.vue +9 -1
  59. package/src/components/compound/DlDateTime/DlDatePicker/components/DlCalendar.vue +4 -2
  60. package/src/components/compound/DlDateTime/DlDatePicker/components/DlMonthCalendar.vue +2 -1
  61. package/src/components/compound/DlDateTime/DlDateTimeRange/{DlCardSidebar.vue → CardSidebar.vue} +10 -11
  62. package/src/components/compound/DlDateTime/DlDateTimeRange/DlDateTimeRange.vue +18 -9
  63. package/src/components/compound/DlDateTime/DlTimePicker/DlTimePicker.vue +2 -2
  64. package/src/components/compound/DlDialogBox/DlDialogBox.vue +74 -15
  65. package/src/components/compound/DlDialogBox/components/DlDialogBoxFooter.vue +1 -1
  66. package/src/components/compound/DlDialogBox/components/DlDialogBoxHeader.vue +9 -7
  67. package/src/components/compound/DlDropdownButton/DlDropdownButton.vue +13 -4
  68. package/src/components/compound/DlInput/DlInput.vue +80 -17
  69. package/src/components/compound/DlJsonEditor/DlJsonEditor.vue +42 -219
  70. package/src/components/compound/DlOptionGroup/DlOptionGroup.vue +16 -17
  71. package/src/components/compound/DlOptionGroup/components/MenuItemWrapper.vue +2 -2
  72. package/src/components/compound/DlPagination/DlPagination.vue +1 -1
  73. package/src/components/compound/DlPagination/components/PaginationLegend.vue +0 -2
  74. package/src/components/compound/DlPagination/components/RowsSelector.vue +0 -2
  75. package/src/components/compound/DlRange/DlRange.vue +3 -2
  76. package/src/components/compound/DlSearches/DlSearch/DlSearch.vue +12 -5
  77. package/src/components/compound/DlSearches/DlSmartSearch/DlSmartSearch.vue +413 -97
  78. package/src/components/compound/DlSearches/DlSmartSearch/components/DlSmartSearchFilters.vue +4 -1
  79. package/src/components/compound/DlSearches/DlSmartSearch/components/DlSmartSearchInput.vue +100 -39
  80. package/src/components/compound/DlSearches/DlSmartSearch/components/DlSuggestionsDropdown.vue +12 -7
  81. package/src/components/compound/DlSearches/DlSmartSearch/components/FiltersQuery.vue +5 -6
  82. package/src/components/compound/DlSearches/DlSmartSearch/types.ts +14 -0
  83. package/src/components/compound/DlSearches/DlSmartSearch/utils/highlightSyntax.ts +10 -6
  84. package/src/components/compound/DlSearches/DlSmartSearch/utils/index.ts +172 -48
  85. package/src/components/compound/DlSelect/DlSelect.vue +264 -130
  86. package/src/components/compound/DlSelect/utils.ts +4 -1
  87. package/src/components/compound/DlSlider/DlSlider.vue +10 -2
  88. package/src/components/compound/DlSlider/components/DlSliderBase.vue +3 -3
  89. package/src/components/compound/DlSlider/components/DlSliderInput.vue +17 -26
  90. package/src/components/compound/DlSlider/sliderStyles.scss +5 -1
  91. package/src/components/compound/DlSlider/useSlider.ts +2 -2
  92. package/src/components/compound/DlSlider/utils.ts +2 -2
  93. package/src/components/compound/DlStepper/DlStepper.vue +46 -4
  94. package/src/components/compound/DlStepper/components/DlStepperContent.vue +6 -2
  95. package/src/components/compound/DlStepper/components/DlStepperFooter.vue +12 -0
  96. package/src/components/compound/DlStepper/components/DlStepperSidebar.vue +24 -11
  97. package/src/components/compound/DlStepper/models/Step.ts +37 -8
  98. package/src/components/compound/DlStepper/models/Stepper.ts +108 -15
  99. package/src/components/compound/DlStepper/models/interfaces.ts +2 -1
  100. package/src/components/compound/DlTable/DlTable.vue +49 -14
  101. package/src/components/compound/DlTable/components/DlTd.vue +9 -9
  102. package/src/components/compound/DlTable/components/DlTh.vue +3 -2
  103. package/src/components/compound/DlTable/hooks/tableColumnSelection.ts +35 -40
  104. package/src/components/compound/DlTable/hooks/tableFilter.ts +33 -21
  105. package/src/components/compound/DlTable/hooks/tablePagination.ts +18 -18
  106. package/src/components/compound/DlTable/hooks/tableRowExpand.ts +2 -1
  107. package/src/components/compound/DlTable/hooks/tableRowSelection.ts +0 -1
  108. package/src/components/compound/DlTable/hooks/tableSort.ts +52 -47
  109. package/src/components/compound/DlTable/styles/dl-table-styles.scss +8 -0
  110. package/src/components/compound/DlTabs/DlTabs.vue +83 -31
  111. package/src/components/compound/DlTabs/components/DlTab.vue +14 -4
  112. package/src/components/compound/DlTabs/components/TabsWrapper.vue +32 -27
  113. package/src/components/compound/DlThumbnailGallery/DlThumbnailGallery.vue +268 -0
  114. package/src/components/compound/DlThumbnailGallery/index.ts +2 -0
  115. package/src/components/compound/DlThumbnailGallery/types.ts +11 -0
  116. package/src/components/compound/DlToast/api/useToast.ts +42 -1
  117. package/src/components/compound/DlToast/components/ToastComponent.vue +24 -32
  118. package/src/components/compound/DlToast/types.ts +52 -0
  119. package/src/components/compound/DlTreeTable/DlTreeTable.vue +1293 -0
  120. package/src/components/compound/DlTreeTable/components/DlTdTree.vue +119 -0
  121. package/src/components/compound/DlTreeTable/components/DlTrTree.vue +52 -0
  122. package/src/components/compound/DlTreeTable/index.ts +3 -0
  123. package/src/components/compound/DlTreeTable/types.ts +1 -0
  124. package/src/components/compound/DlTreeTable/utils/convertToNestedObject.ts +51 -0
  125. package/src/components/compound/DlTreeTable/utils/flatTreeData.ts +19 -0
  126. package/src/components/compound/DlTreeTable/utils/getFromChildren.ts +39 -0
  127. package/src/components/compound/DlTreeTable/utils/trSpacing.ts +13 -0
  128. package/src/components/compound/DlTreeTable/utils/treeTableRowSelection.ts +184 -0
  129. package/src/components/compound/index.ts +14 -1
  130. package/src/components/compound/types.ts +2 -0
  131. package/src/components/essential/DlBadge/DlBadge.vue +3 -3
  132. package/src/components/essential/DlCheckbox/DlCheckbox.vue +10 -7
  133. package/src/components/essential/DlEllipsis/DlEllipsis.vue +141 -0
  134. package/src/components/essential/DlIcon/DlIcon.vue +5 -5
  135. package/src/components/essential/DlLabel/DlLabel.vue +190 -0
  136. package/src/components/essential/DlLabel/index.ts +2 -0
  137. package/src/components/essential/DlList/DlList.vue +3 -3
  138. package/src/components/essential/DlMenu/DlMenu.vue +41 -22
  139. package/src/components/essential/DlMenu/utils.ts +8 -7
  140. package/src/components/essential/DlPageLayout/DlPageLayout.vue +90 -0
  141. package/src/components/essential/DlPageLayout/index.ts +2 -0
  142. package/src/components/essential/DlProgressBar/DlProgressBar.vue +1 -1
  143. package/src/components/essential/DlRadio/DlRadio.vue +10 -5
  144. package/src/components/essential/DlSeparator/DlSeparator.vue +2 -2
  145. package/src/components/essential/DlSpinner/index.ts +1 -13
  146. package/src/components/essential/DlSpinner/styles/spinnerStyles.scss +7 -0
  147. package/src/components/essential/DlSwitch/DlSwitch.vue +6 -3
  148. package/src/components/essential/DlTextArea/DlTextArea.vue +212 -7
  149. package/src/components/essential/DlThemeProvider/DlThemeProvider.vue +6 -0
  150. package/src/components/essential/DlTypography/DlTypography.vue +7 -1
  151. package/src/components/essential/index.ts +3 -2
  152. package/src/components/shared/DlInfoErrorMessage/DlInfoErrorMessage.vue +1 -1
  153. package/src/components/{essential → shared}/DlTooltip/DlTooltip.vue +26 -19
  154. package/src/components/shared/DlVirtualScroll/DlVirtualScroll.vue +106 -43
  155. package/src/components/shared/DlVirtualScroll/useVirtualScroll.ts +28 -4
  156. package/src/components/shared/index.ts +1 -0
  157. package/src/components/types.ts +2 -0
  158. package/src/demos/BarChartDemo.vue +59 -2
  159. package/src/demos/ColumnChartDemo.vue +67 -2
  160. package/src/demos/DlAccordionDemo.vue +92 -43
  161. package/src/demos/DlAlertDemo.vue +14 -0
  162. package/src/demos/DlButtonDemo.vue +41 -4
  163. package/src/demos/DlCardDemo.vue +156 -19
  164. package/src/demos/DlChartDoughnutDemo.vue +49 -2
  165. package/src/demos/DlCheckboxDemo.vue +28 -3
  166. package/src/demos/DlCodeEditor/DlCodeEditorDemo.vue +247 -0
  167. package/src/demos/DlCodeEditor/index.ts +2 -0
  168. package/src/demos/DlConfusionMatrixDemo.vue +93 -37
  169. package/src/demos/DlDemoPage.vue +235 -0
  170. package/src/demos/DlDialogBoxDemo.vue +56 -51
  171. package/src/demos/DlDropdownButtonDemo.vue +35 -27
  172. package/src/demos/DlEmptyStateDemo.vue +81 -0
  173. package/src/demos/DlGridDemo.vue +40 -0
  174. package/src/demos/DlInputDemo.vue +21 -1
  175. package/src/demos/DlJsonEditorDemo.vue +59 -0
  176. package/src/demos/DlLabelDemo.vue +208 -0
  177. package/src/demos/DlLineChartDemo.vue +50 -2
  178. package/src/demos/DlListDemo.vue +12 -9
  179. package/src/demos/DlMenuDemo.vue +147 -20
  180. package/src/demos/DlPageLayoutDemo.vue +146 -0
  181. package/src/demos/DlPanelContainerDemo.vue +113 -2
  182. package/src/demos/DlPopupDemo.vue +82 -1
  183. package/src/demos/DlRadioDemo.vue +16 -1
  184. package/src/demos/DlScatterChartDemo.vue +161 -0
  185. package/src/demos/DlSearchDemo.vue +9 -0
  186. package/src/demos/DlSelectDemo.vue +124 -27
  187. package/src/demos/DlSpinnerDemo.vue +0 -2
  188. package/src/demos/DlStepperDemo/DlStepperDemo.vue +5 -1
  189. package/src/demos/DlStepperDemo/EmptyStateStepper.vue +149 -0
  190. package/src/demos/DlStepperDemo/SimpleStepper.vue +4 -0
  191. package/src/demos/DlStepperDemo/steps/GeneralStep.vue +1 -0
  192. package/src/demos/DlSwitchDemo.vue +12 -0
  193. package/src/demos/DlTableDemo.vue +84 -5
  194. package/src/demos/DlTabsDemo.vue +92 -3
  195. package/src/demos/DlTextAreaDemo.vue +14 -17
  196. package/src/demos/DlThumbnailGalleryDemo.vue +99 -0
  197. package/src/demos/DlToastDemo.vue +3 -9
  198. package/src/demos/DlTooltipDemo.vue +66 -2
  199. package/src/demos/DlTreeTableDemo.vue +694 -0
  200. package/src/demos/DlVirtualScrollDemo.vue +3 -12
  201. package/src/demos/DlWidgetDemo.vue +252 -61
  202. package/src/demos/SmartSearchDemo/DlSmartSearchDemo.vue +151 -32
  203. package/src/demos/index.ts +23 -4
  204. package/src/hooks/use-anchor.ts +15 -17
  205. package/src/hooks/use-arrow-navigation.ts +64 -21
  206. package/src/hooks/use-model-toggle.ts +14 -16
  207. package/src/hooks/use-portal.ts +9 -3
  208. package/src/hooks/use-scroll-target.ts +2 -4
  209. package/src/hooks/use-size-observer.ts +3 -2
  210. package/src/hooks/use-suggestions.ts +239 -49
  211. package/src/hooks/use-transition.ts +10 -4
  212. package/src/index.ts +22 -1
  213. package/src/layouts/DlDatasetBrowser/DemoComponents/DatasetFooter.vue +78 -0
  214. package/src/layouts/DlDatasetBrowser/DemoComponents/DatasetHeader.vue +22 -0
  215. package/src/layouts/DlDatasetBrowser/DemoComponents/DatasetLeftDrawer.vue +96 -0
  216. package/src/layouts/DlDatasetBrowser/DemoComponents/DatasetMainContent.vue +51 -0
  217. package/src/layouts/DlDatasetBrowser/DemoComponents/DatasetRightDrawer.vue +88 -0
  218. package/src/layouts/DlDatasetBrowser/DemoComponents/MainContent/ActionsMenu.vue +70 -0
  219. package/src/layouts/DlDatasetBrowser/DemoComponents/MainContent/AutomationMenu.vue +106 -0
  220. package/src/layouts/DlDatasetBrowser/DemoComponents/MainContent/CardView.vue +101 -0
  221. package/src/layouts/DlDatasetBrowser/DemoComponents/MainContent/CardViewGallery.vue +141 -0
  222. package/src/layouts/DlDatasetBrowser/DemoComponents/MainContent/CardViewTable.vue +193 -0
  223. package/src/layouts/DlDatasetBrowser/DemoComponents/MainContent/EmptyState/LayoutEmptyState.vue +227 -0
  224. package/src/layouts/DlDatasetBrowser/DemoComponents/MainContent/EmptyState/UploadData.vue +106 -0
  225. package/src/layouts/DlDatasetBrowser/DemoComponents/MainContent/MainContentImages.vue +540 -0
  226. package/src/layouts/DlDatasetBrowser/DemoComponents/MainContent/MainContentNav.vue +329 -0
  227. package/src/layouts/DlDatasetBrowser/DemoComponents/NavbarKpi.vue +84 -0
  228. package/src/layouts/DlDatasetBrowser/DemoComponents/NavbarSearch.vue +132 -0
  229. package/src/layouts/DlDatasetBrowser/DemoComponents/SearchFilterMenu.vue +19 -0
  230. package/src/layouts/DlDatasetBrowser/DemoComponents/filters/AddFilter.vue +212 -0
  231. package/src/layouts/DlDatasetBrowser/DemoComponents/types/imageMetadata.ts +28 -0
  232. package/src/layouts/DlDatasetBrowser/DlDatasetBrowser.vue +42 -0
  233. package/src/layouts/DlStudioLayout/DlStudioLayout.vue +42 -0
  234. package/src/layouts/DlStudioLayout/components/Demo/LeftMenuContent.vue +23 -0
  235. package/src/layouts/DlStudioLayout/components/Demo/StudioFooter.vue +25 -0
  236. package/src/layouts/DlStudioLayout/components/Demo/StudioHeader.vue +121 -0
  237. package/src/layouts/DlStudioLayout/components/Demo/StudioLeftDrawer.vue +245 -0
  238. package/src/layouts/DlStudioLayout/components/Demo/StudioMainContent.vue +31 -0
  239. package/src/layouts/DlStudioLayout/components/Demo/StudioTabsMenu.vue +117 -0
  240. package/src/layouts/DlStudioLayout/components/Demo/TabMenu/FilterMenu.vue +62 -0
  241. package/src/layouts/DlStudioLayout/components/Demo/TabMenu/TabMenuAnnotations.vue +98 -0
  242. package/src/layouts/DlStudioLayout/components/Demo/TabMenu/TabMenuItem.vue +66 -0
  243. package/src/layouts/DlStudioLayout/components/LayoutNavbar.vue +24 -0
  244. package/src/layouts/DlStudioLayout/components/ListAutocomplete.vue +149 -0
  245. package/src/layouts/DlStudioLayout/components/NavigationDrawer.vue +147 -0
  246. package/src/layouts/DlStudioLayout/index.ts +2 -0
  247. package/src/layouts/DlStudioLayout/types/HorizontalItems.ts +9 -0
  248. package/src/layouts/DlStudioLayout/types/VerticalItems.ts +10 -0
  249. package/src/simple-code-editor.d.ts +1 -0
  250. package/src/utils/click-outside.ts +1 -1
  251. package/src/utils/dom.ts +5 -5
  252. package/src/utils/events.ts +3 -3
  253. package/src/utils/global-nodes.ts +2 -2
  254. package/src/utils/input-sizes.ts +5 -2
  255. package/src/utils/is-ellipsis-active.ts +4 -1
  256. package/src/utils/parse-smart-query.ts +209 -111
  257. package/src/utils/portal.ts +5 -5
  258. package/src/utils/position-engine.ts +7 -7
  259. package/src/utils/render.ts +1 -1
  260. package/src/utils/scroll.ts +2 -2
  261. package/src/utils/selection.ts +3 -3
  262. package/vite.config.ts +9 -1
  263. package/src/components/basic/DlCard/DlCard.vue +0 -241
  264. package/src/components/basic/DlCard/types.ts +0 -20
  265. package/src/components/basic/DlEllipsis/DlEllipsis.vue +0 -114
  266. package/src/components/basic/DlWidget/DlGrid.vue +0 -33
  267. package/src/components/basic/DlWidget/DlGridRow.vue +0 -32
  268. package/src/components/compound/DlSearches/DlSmartSearch/utils/utils.ts +0 -124
  269. package/src/components/compound/DlToast/utils/config.ts +0 -17
  270. package/src/components/essential/DlTextHolder/DlTextHolder.vue +0 -65
  271. package/src/components/essential/DlTextHolder/index.ts +0 -2
  272. package/src/demos/DlTextHolderDemo.vue +0 -42
  273. package/src/utils/swapNodes.ts +0 -30
  274. /package/src/components/{basic → compound}/DlCard/index.ts +0 -0
  275. /package/src/components/compound/DlDateTime/DlDateTimeRange/{DlDateInput.vue → DateInput.vue} +0 -0
  276. /package/src/components/{basic → essential}/DlEllipsis/index.ts +0 -0
  277. /package/src/components/{essential → shared}/DlTooltip/index.ts +0 -0
@@ -0,0 +1,245 @@
1
+ <template>
2
+ <div class="studio-layout-left-drawer-content">
3
+ <div
4
+ style="
5
+ display: flex;
6
+ align-items: center;
7
+ margin: 0px 5px 7px 0px;
8
+ padding: 5px 0px 0px;
9
+ width: 100%;
10
+ "
11
+ >
12
+ <dl-typography
13
+ color="dl-color-medium"
14
+ variant="h3"
15
+ size="10px"
16
+ style="text-transform: capitalize; margin-right: 5px"
17
+ >
18
+ LABEL PICKER
19
+ </dl-typography>
20
+ <dl-icon
21
+ size="12px"
22
+ icon="icon-dl-info"
23
+ color="dl-color-medium"
24
+ style="margin: 0px 0px 3px"
25
+ >
26
+ <dl-tooltip>
27
+ Use dot separation to create nested labels. For example:
28
+ "Vehicle" and "Vehicle.Car"
29
+ </dl-tooltip>
30
+ </dl-icon>
31
+ </div>
32
+ <div style="margin: 0px 0px 10px">
33
+ <dl-typography
34
+ color="dl-color-medium"
35
+ variant="h3"
36
+ size="12px"
37
+ style="text-align: center"
38
+ >
39
+ For more ontology settings <br>
40
+ <a href="https://google.com/">go to receipe</a>
41
+ </dl-typography>
42
+ </div>
43
+ <div
44
+ style="
45
+ height: 300px;
46
+ padding: 5px;
47
+ resize: vertical;
48
+ overflow: auto;
49
+ "
50
+ >
51
+ <ListAutocomplete
52
+ :items="listAutocomleteItems"
53
+ @selectedOption="handleOption"
54
+ />
55
+ </div>
56
+ <hr>
57
+ <div>
58
+ <div>
59
+ <dl-button
60
+ v-for="(iconMenu, iconMenuIndex) in iconsMenu"
61
+ :key="iconMenuIndex"
62
+ flat
63
+ :style="`background-color: ${
64
+ selectedIconMenu && iconMenu.id === selectedIconMenu.id
65
+ ? 'var(--dl-color-fill)'
66
+ : ''
67
+ }`"
68
+ :icon-color="
69
+ selectedIconMenu &&
70
+ selectedItem &&
71
+ iconMenu.id === selectedIconMenu.id
72
+ ? selectedItem.color
73
+ : 'dl-color-darker'
74
+ "
75
+ size="l"
76
+ :icon="iconMenu.icon"
77
+ @click="handleSelectedIconMenu(iconMenu)"
78
+ >
79
+ <dl-tooltip>
80
+ {{ iconMenu.tooltip }} ({{ iconMenuIndex }})
81
+ </dl-tooltip>
82
+ </dl-button>
83
+ </div>
84
+ </div>
85
+ <hr>
86
+ <div
87
+ style="
88
+ display: flex;
89
+ align-items: center;
90
+ margin: 0px 5px 7px 0px;
91
+ padding: 5px 0px 0px;
92
+ "
93
+ >
94
+ <dl-icon
95
+ size="16px"
96
+ icon="icon-dl-classification"
97
+ color="dl-color-medium"
98
+ style="margin: 0px 3px 0px"
99
+ />
100
+ <dl-typography
101
+ color="dl-color-lighter"
102
+ size="12px"
103
+ style="text-transform: capitalize; margin-right: 5px"
104
+ >
105
+ CLASSIFICATION
106
+ </dl-typography>
107
+ </div>
108
+ <dl-checkbox
109
+ v-model="autoNextItem"
110
+ color="dl-color-lighter"
111
+ label="Auto next item"
112
+ label-color="dl-color-lighter"
113
+ @update:model-value="logValue"
114
+ />
115
+ </div>
116
+ </template>
117
+
118
+ <script lang="ts">
119
+ import { defineComponent, ref } from 'vue-demi'
120
+ import ListAutocomplete from '../ListAutocomplete.vue'
121
+ import {
122
+ DlButton,
123
+ DlCheckbox,
124
+ DlTooltip,
125
+ DlIcon,
126
+ DlTypography
127
+ } from '../../../../components'
128
+
129
+ export default defineComponent({
130
+ name: 'StudioLeftDrawer',
131
+ components: {
132
+ DlTypography,
133
+ DlIcon,
134
+ DlTooltip,
135
+ ListAutocomplete,
136
+ DlButton,
137
+ DlCheckbox
138
+ },
139
+ setup() {
140
+ const listAutocomleteItems = [
141
+ {
142
+ name: 'Affff fffff ffffffff fffffffff fffffffff fffffffffff fffffff f f f f f f f f',
143
+ color: 'red'
144
+ },
145
+ { name: 'B', color: 'green' },
146
+ { name: 'C', color: 'purple' },
147
+ { name: 'D', color: 'yellow' }
148
+ ]
149
+ const selectedItem = ref<any>('')
150
+
151
+ const handleOption = (item: any) => {
152
+ console.log('handle option demo: ', item)
153
+ selectedItem.value = item
154
+ }
155
+ const iconsMenu = [
156
+ {
157
+ id: 1,
158
+ icon: 'icon-dl-selection',
159
+ tooltip: 'Selection',
160
+ link: ''
161
+ },
162
+ {
163
+ id: 2,
164
+ icon: 'icon-dl-classification',
165
+ tooltip: 'Classification',
166
+ link: ''
167
+ },
168
+ {
169
+ id: 3,
170
+ icon: 'icon-dl-point',
171
+ tooltip: 'Point',
172
+ link: ''
173
+ },
174
+ {
175
+ id: 4,
176
+ icon: 'icon-dl-box',
177
+ tooltip: 'Box',
178
+ link: ''
179
+ },
180
+ {
181
+ id: 5,
182
+ icon: 'icon-dl-cubiod',
183
+ tooltip: 'Cube',
184
+ link: ''
185
+ },
186
+ {
187
+ id: 6,
188
+ icon: 'icon-dl-brush',
189
+ tooltip: 'Semantic segmentation',
190
+ link: ''
191
+ },
192
+ {
193
+ id: 7,
194
+ icon: 'icon-dl-polygon',
195
+ tooltip: 'Polygon',
196
+ link: ''
197
+ },
198
+ {
199
+ id: 8,
200
+ icon: 'icon-dl-polyline',
201
+ tooltip: 'Polyline',
202
+ link: ''
203
+ },
204
+ {
205
+ id: 9,
206
+ icon: 'icon-dl-ellipse',
207
+ tooltip: 'Ellipse',
208
+ link: ''
209
+ },
210
+ {
211
+ id: 10,
212
+ icon: 'icon-dl-note-tool',
213
+ tooltip: 'Notes',
214
+ link: ''
215
+ },
216
+ {
217
+ id: 11,
218
+ icon: 'icon-dl-faas-outline',
219
+ tooltip: 'Applications',
220
+ link: ''
221
+ }
222
+ ]
223
+ const selectedIconMenu = ref(null)
224
+
225
+ const handleSelectedIconMenu = (iconMenu: any) => {
226
+ selectedIconMenu.value = iconMenu
227
+ }
228
+
229
+ return {
230
+ listAutocomleteItems,
231
+ handleOption,
232
+ selectedItem,
233
+ iconsMenu,
234
+ selectedIconMenu,
235
+ handleSelectedIconMenu
236
+ }
237
+ }
238
+ })
239
+ </script>
240
+
241
+ <style scoped lang="scss">
242
+ .studio-layout-left-drawer-content {
243
+ width: 250px;
244
+ }
245
+ </style>
@@ -0,0 +1,31 @@
1
+ <template>
2
+ <div
3
+ class="flex items-center"
4
+ style="height: 100%; background-color: var(--dl-color-body-background)"
5
+ >
6
+ <ul>
7
+ <li>
8
+ You need to develop the layouts as you can see here with option
9
+ to enter different kinds of component in the future
10
+ </li>
11
+ <li>this layout need to be responsive,</li>
12
+ <li>Our components should be able to be applied to this layout</li>
13
+ <li>its would be our design QA</li>
14
+ <li>We will explain where and how to apply the components</li>
15
+ <li>
16
+ After we apply the components, we could simulate the behavior
17
+ and see how it works
18
+ </li>
19
+ </ul>
20
+ </div>
21
+ </template>
22
+
23
+ <script lang="ts">
24
+ import { defineComponent } from 'vue-demi'
25
+
26
+ export default defineComponent({
27
+ name: 'StudioMainContent'
28
+ })
29
+ </script>
30
+
31
+ <style scoped></style>
@@ -0,0 +1,117 @@
1
+ <template>
2
+ <div
3
+ class="tabs-menu"
4
+ :style="cssVars"
5
+ >
6
+ <dl-tabs
7
+ v-model="selectedTab"
8
+ :items="tabItems"
9
+ @update:model-value="handleSelectedOption"
10
+ />
11
+ <div class="tabs-menu__border-icon">
12
+ <dl-button
13
+ flat
14
+ :icon="expandIcon"
15
+ @click="onToggle"
16
+ />
17
+ </div>
18
+ <component :is="tabs" />
19
+ </div>
20
+ </template>
21
+
22
+ <script lang="ts">
23
+ import { defineComponent, ref, computed } from 'vue-demi'
24
+ import TabMenuAnnotations from './TabMenu/TabMenuAnnotations.vue'
25
+ import TabMenuItem from './TabMenu/TabMenuItem.vue'
26
+ import {
27
+ DlTabs,
28
+ DlTabPanels,
29
+ DlTabPanel,
30
+ DlIcon,
31
+ DlButton
32
+ } from '../../../../components'
33
+ import { DlTabDetails } from '../../../../components/types'
34
+
35
+ export default defineComponent({
36
+ name: 'StudioTabsMenu',
37
+ components: {
38
+ DlTabs,
39
+ DlTabPanels,
40
+ DlTabPanel,
41
+ TabMenuAnnotations,
42
+ TabMenuItem,
43
+ DlButton,
44
+ DlIcon
45
+ },
46
+ props: {},
47
+ setup() {
48
+ const LARGE_WIDTH = '250px'
49
+ const SMALL_WIDTH = '0px'
50
+ const tabsMenuWidth = ref('')
51
+ const isExpanded = ref(true)
52
+ const selectedTab = ref('annotations')
53
+ const tabItems = [
54
+ {
55
+ label: 'Annotations',
56
+ name: 'annotations'
57
+ },
58
+ { label: 'Item', name: 'item' }
59
+ ] as DlTabDetails[]
60
+
61
+ const selectedOption = ref(null)
62
+
63
+ const handleSelectedOption = (option: any) => {
64
+ selectedOption.value = option
65
+ }
66
+ const tabs = computed(() => {
67
+ switch (selectedTab.value) {
68
+ case 'annotations':
69
+ return 'TabMenuAnnotations'
70
+ case 'item':
71
+ return 'TabMenuItem'
72
+ default:
73
+ return 'TabMenuAnnotations'
74
+ }
75
+ })
76
+
77
+ const onToggle = () => {
78
+ isExpanded.value = !isExpanded.value
79
+ tabsMenuWidth.value = isExpanded.value ? LARGE_WIDTH : SMALL_WIDTH
80
+ }
81
+ const expandIcon = computed(() =>
82
+ isExpanded.value ? 'icon-dl-right-chevron' : 'icon-dl-left-chevron'
83
+ )
84
+ const cssVars = computed(() => {
85
+ return {
86
+ '--tabs-menu-width': tabsMenuWidth.value
87
+ }
88
+ })
89
+
90
+ return {
91
+ selectedOption,
92
+ handleSelectedOption,
93
+ selectedTab,
94
+ tabItems,
95
+ tabs,
96
+ cssVars,
97
+ onToggle,
98
+ expandIcon
99
+ }
100
+ }
101
+ })
102
+ </script>
103
+
104
+ <style scoped lang="scss">
105
+ .tabs-menu {
106
+ width: var(--tabs-menu-width);
107
+ overflow: auto;
108
+ transition: all 300ms;
109
+
110
+ &__border-icon {
111
+ position: absolute;
112
+ margin-left: -21px;
113
+ background-color: var(--dl-color-bg);
114
+ border-radius: 50%;
115
+ }
116
+ }
117
+ </style>
@@ -0,0 +1,62 @@
1
+ <template>
2
+ <dl-button
3
+ flat
4
+ icon="icon-dl-filter"
5
+ >
6
+ <dl-menu>
7
+ <dl-list
8
+ style="display: flex"
9
+ bordered
10
+ separator
11
+ >
12
+ <dl-list-item
13
+ v-for="(listItem, listItemIndex) in listItems"
14
+ :key="listItemIndex"
15
+ clickable
16
+ :start-icon="listItem.icon"
17
+ :start-icon-color="listItem.color"
18
+ >
19
+ <dl-item-section no-wrap>
20
+ {{ listItem.label }}
21
+ </dl-item-section>
22
+ </dl-list-item>
23
+ </dl-list>
24
+ </dl-menu>
25
+ </dl-button>
26
+ </template>
27
+
28
+ <script lang="ts">
29
+ import { defineComponent } from 'vue-demi'
30
+ import {
31
+ DlButton,
32
+ DlMenu,
33
+ DlList,
34
+ DlListItem,
35
+ DlItemSection
36
+ } from '../../../../../components'
37
+
38
+ export default defineComponent({
39
+ name: 'FilterMenu',
40
+ components: {
41
+ DlButton,
42
+ DlMenu,
43
+ DlList,
44
+ DlListItem,
45
+ DlItemSection
46
+ },
47
+ setup() {
48
+ const listItems = [
49
+ {
50
+ icon: 'icon-dl-classification',
51
+ color: '',
52
+ label: 'Classification'
53
+ }
54
+ ]
55
+ return {
56
+ listItems
57
+ }
58
+ }
59
+ })
60
+ </script>
61
+
62
+ <style scoped></style>
@@ -0,0 +1,98 @@
1
+ <template>
2
+ <div>
3
+ <dl-separator />
4
+ <div
5
+ style="
6
+ display: flex;
7
+ height: 100%;
8
+ align-items: center;
9
+ justify-content: start;
10
+ padding-right: 10px;
11
+ gap: 5px;
12
+ "
13
+ >
14
+ <dl-button
15
+ v-for="(buttonItem, buttonIndex) in disabledButtons"
16
+ :key="buttonIndex"
17
+ flat
18
+ dense
19
+ disabled
20
+ >
21
+ <dl-icon
22
+ size="16px"
23
+ :icon="buttonItem.icon"
24
+ color="dl-color-disabled"
25
+ />
26
+ </dl-button>
27
+ </div>
28
+ <div class="tab-menu-annotations__autocomplete">
29
+ <div>
30
+ <dl-input
31
+ v-model="searchAnnotation"
32
+ placeholder="Search Annotations"
33
+ size="l"
34
+ has-prepend
35
+ padding-prop="0px 0px 0px 0px"
36
+ >
37
+ <template #prepend>
38
+ <dl-icon
39
+ style="margin-bottom: 5px"
40
+ icon="icon-dl-search"
41
+ size="12px"
42
+ />
43
+ </template>
44
+ </dl-input>
45
+ </div>
46
+ <div>
47
+ <filter-menu />
48
+ </div>
49
+ </div>
50
+ </div>
51
+ </template>
52
+
53
+ <script lang="ts">
54
+ import { defineComponent, ref } from 'vue-demi'
55
+ import FilterMenu from './FilterMenu.vue'
56
+ import {
57
+ DlSeparator,
58
+ DlButton,
59
+ DlIcon,
60
+ DlInput
61
+ } from '../../../../../components'
62
+
63
+ export default defineComponent({
64
+ name: 'TabMenuAnnotations',
65
+ components: {
66
+ DlSeparator,
67
+ DlButton,
68
+ DlIcon,
69
+ DlInput,
70
+ FilterMenu
71
+ },
72
+ setup() {
73
+ const name = ref('Annotations tab')
74
+ const searchAnnotation = ref('')
75
+
76
+ const disabledButtons = [
77
+ { icon: 'icon-dl-clone' },
78
+ { icon: 'icon-dl-label' },
79
+ { icon: 'icon-dl-hide' },
80
+ { icon: 'icon-dl-delete' }
81
+ ]
82
+
83
+ return {
84
+ name,
85
+ disabledButtons,
86
+ searchAnnotation
87
+ }
88
+ }
89
+ })
90
+ </script>
91
+
92
+ <style scoped lang="scss">
93
+ .tab-menu-annotations {
94
+ &__autocomplete {
95
+ display: flex;
96
+ }
97
+ }
98
+ </style>
@@ -0,0 +1,66 @@
1
+ <template>
2
+ <div>
3
+ <div
4
+ style="
5
+ display: flex;
6
+ height: 100%;
7
+ align-items: center;
8
+ justify-content: start;
9
+ padding-right: 10px;
10
+ gap: 5px;
11
+ "
12
+ >
13
+ <dl-button
14
+ v-for="(itemButton, buttonIndex) in itemsButton"
15
+ :key="buttonIndex"
16
+ flat
17
+ dense
18
+ >
19
+ <dl-icon
20
+ size="16px"
21
+ :icon="itemButton.icon"
22
+ color="dl-color-darker"
23
+ />
24
+ <dl-tooltip>
25
+ {{ itemButton.tooltip }}
26
+ </dl-tooltip>
27
+ </dl-button>
28
+ </div>
29
+ <dl-separator />
30
+ </div>
31
+ </template>
32
+
33
+ <script lang="ts">
34
+ import { defineComponent, ref } from 'vue-demi'
35
+ import {
36
+ DlSeparator,
37
+ DlButton,
38
+ DlIcon,
39
+ DlTooltip
40
+ } from '../../../../../components'
41
+
42
+ export default defineComponent({
43
+ name: 'TabMenuItem',
44
+ components: {
45
+ DlSeparator,
46
+ DlButton,
47
+ DlIcon,
48
+ DlTooltip
49
+ },
50
+ setup() {
51
+ const name = ref('Item tab')
52
+ const itemsButton = [
53
+ { icon: 'icon-dl-import', tooltip: 'Import Annotations' },
54
+ { icon: 'icon-dl-export', tooltip: 'Export' },
55
+ { icon: 'icon-dl-recipe', tooltip: 'Recipe' }
56
+ ]
57
+
58
+ return {
59
+ name,
60
+ itemsButton
61
+ }
62
+ }
63
+ })
64
+ </script>
65
+
66
+ <style scoped></style>
@@ -0,0 +1,24 @@
1
+ <template>
2
+ <div class="dl-layout-navbar">
3
+ <div style="width: 100%; height: 100%">
4
+ <slot />
5
+ </div>
6
+ </div>
7
+ </template>
8
+
9
+ <script lang="ts">
10
+ import { defineComponent } from 'vue-demi'
11
+
12
+ export default defineComponent({
13
+ name: 'DlLayoutNavbar'
14
+ })
15
+ </script>
16
+
17
+ <style scoped lang="scss">
18
+ .dl-layout-navbar {
19
+ display: flex;
20
+ width: 100%;
21
+ height: 50px;
22
+ align-items: center;
23
+ }
24
+ </style>