diff --git a/.github/workflows/argilla.yml b/.github/workflows/argilla.yml index 413a943982..dae16b7fe2 100644 --- a/.github/workflows/argilla.yml +++ b/.github/workflows/argilla.yml @@ -24,7 +24,7 @@ jobs: build: services: argilla-server: - image: argilladev/argilla-hf-spaces:pr-5572 + image: argilladev/argilla-hf-spaces:develop ports: - 6900:6900 env: @@ -40,7 +40,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"] + python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"] steps: - uses: actions/checkout@v4 - name: Setup PDM @@ -72,7 +72,7 @@ jobs: - name: Upload artifact uses: actions/upload-artifact@v4 # Upload the package to be used in the next jobs only once - if: ${{ matrix.python-version == '3.8' }} + if: ${{ matrix.python-version == '3.9' }} with: name: argilla path: argilla/dist diff --git a/README.md b/README.md index bb00705af2..f7ec598f98 100644 --- a/README.md +++ b/README.md @@ -77,14 +77,14 @@ We are an open-source community-driven project and we love to hear from you. Her The community uses Argilla to create amazing open-source [datasets](https://huggingface.co/datasets?library=library:argilla&sort=trending) and [models](https://huggingface.co/models?other=distilabel). - [Cleaned UltraFeedback dataset](https://huggingface.co/datasets/argilla/ultrafeedback-binarized-preferences-cleaned) used to fine-tune the [Notus](https://huggingface.co/argilla/notus-7b-v1) and [Notux](https://huggingface.co/argilla/notux-8x7b-v1) models. The original UltraFeedback dataset was curated using Argilla UI filters to find and report a bug in the original data generation code. Based on this data curation process, Argilla built this new version of the UltraFeedback dataset and fine-tuned Notus, outperforming Zephyr on several benchmarks. -- [distilabeled Intel Orca DPO dataset](https://huggingface.co/datasets/argilla/distilabel-intel-orca-dpo-pairs) used to fine-tune the [improved OpenHermes model](https://huggingface.co/argilla/distilabeled-OpenHermes-2.5-Mistral-7B). This dataset was built by combining human curation in Argilla with AI feedback from distilabel, leading to an improved version of the Intel Orca dataset and outperforming models fine-tuned on the original dataset. +- [distilabel Intel Orca DPO dataset](https://huggingface.co/datasets/argilla/distilabel-intel-orca-dpo-pairs) used to fine-tune the [improved OpenHermes model](https://huggingface.co/argilla/distilabeled-OpenHermes-2.5-Mistral-7B). This dataset was built by combining human curation in Argilla with AI feedback from distilabel, leading to an improved version of the Intel Orca dataset and outperforming models fine-tuned on the original dataset. ### Examples Use cases -AI teams from companies like [the Red Cross](https://510.global/), [Loris.ai](https://loris.ai/) and [Prolific](https://www.prolific.com/) use Argilla to improve the quality and efficiency of AI projects. They shared their experiences in our [AI community meetup](https://lu.ma/embed-checkout/evt-IQtRiSuXZCIW6FB). +AI teams from organizations such as the [Red Cross](https://510.global/), [Loris.ai](https://loris.ai/) and [Prolific](https://www.prolific.com/) use Argilla to improve the quality and efficiency of AI projects. They shared their experiences in our [AI community meetup](https://lu.ma/embed-checkout/evt-IQtRiSuXZCIW6FB). - AI for good: [the Red Cross presentation](https://youtu.be/ZsCqrAhzkFU?feature=shared) showcases how the Red Cross domain experts and AI team collaborated by classifying and redirecting requests from refugees of the Ukrainian crisis to streamline the support processes of the Red Cross. -- Customer support: during [the Loris meetup](https://youtu.be/jWrtgf2w4VU?feature=shared) they showed how their AI team uses unsupervised and few-shot contrastive learning to help them quickly validate and gain labelled samples for a huge amount of multi-label classifiers. +- Customer support: during [the Loris meetup](https://youtu.be/jWrtgf2w4VU?feature=shared) they showed how their AI team uses unsupervised and few-shot contrastive learning to help them quickly validate and gain labeled samples for a huge amount of multi-label classifiers. - Research studies: [the showcase from Prolific](https://youtu.be/ePDlhIxnuAs?feature=shared) announced their integration with our platform. They use it to actively distribute data collection projects among their annotating workforce. This allows Prolific to quickly and efficiently collect high-quality data for research studies. ## 👨‍💻 Getting started diff --git a/argilla-frontend/CHANGELOG.md b/argilla-frontend/CHANGELOG.md index d2b9c76283..391a4800d3 100644 --- a/argilla-frontend/CHANGELOG.md +++ b/argilla-frontend/CHANGELOG.md @@ -16,6 +16,20 @@ These are the section headers that we use: ## [Unreleased]() +## [2.5.0](https://github.com/argilla-io/argilla/compare/v2.4.1...v2.5.0) + +### Added + +- Add new dataset list page ([#5684](https://github.com/argilla-io/argilla/pull/5684)) +- Add a high-contrast theme & improvements for the forced-colors mode. ([#5661](https://github.com/argilla-io/argilla/pull/5661)) +- Add English as the default language and add language selector in the user settings page. ([#5690](https://github.com/argilla-io/argilla/pull/5690)) + +### Fixed + +- Assign field to span question on dataset creation. ([#5717](https://github.com/argilla-io/argilla/pull/5717)) +- Fixed visible_options when updating question setting. ([#5716](https://github.com/argilla-io/argilla/pull/5716)) +- Fixed highlighting on same record ([#5693](https://github.com/argilla-io/argilla/pull/5693)) + ## [2.4.1](https://github.com/argilla-io/argilla/compare/v2.4.0...v2.4.1) ### Added @@ -34,6 +48,7 @@ These are the section headers that we use: ### Added - Added new dataset configurator to import datasets from Hugging Face using Argilla UI. ([#5532](https://github.com/argilla-io/argilla/pull/5532)) +- Improve Accessibility for Screenreaders ([#5634](https://github.com/argilla-io/argilla/pull/5634)) ### Fixed diff --git a/argilla-frontend/assets/icons/high-contrast-theme.js b/argilla-frontend/assets/icons/high-contrast-theme.js new file mode 100644 index 0000000000..84e686ed63 --- /dev/null +++ b/argilla-frontend/assets/icons/high-contrast-theme.js @@ -0,0 +1,27 @@ +/* + * coding=utf-8 + * Copyright 2021-present, the Recognai S.L. team. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* eslint-disable */ +var icon = require('vue-svgicon') +icon.register({ + 'high-contrast-theme': { + width: 16, + height: 16, + viewBox: '0 0 16 16', + data: '' + } +}) \ No newline at end of file diff --git a/argilla-frontend/assets/icons/index.js b/argilla-frontend/assets/icons/index.js index d3cf81adb7..53de88bc02 100644 --- a/argilla-frontend/assets/icons/index.js +++ b/argilla-frontend/assets/icons/index.js @@ -24,6 +24,7 @@ require('./external') require('./filter') require('./focus-mode') require('./hand-labeling') +require('./high-contrast-theme') require('./import') require('./info') require('./kebab') @@ -39,6 +40,7 @@ require('./pen') require('./plus') require('./progress') require('./question-answering') +require('./records') require('./refresh') require('./reset') require('./row-last') @@ -58,5 +60,6 @@ require('./text-to-image') require('./time') require('./trash-empty') require('./unavailable') +require('./update') require('./validate') require('./weak-labeling') diff --git a/argilla-frontend/assets/icons/records.js b/argilla-frontend/assets/icons/records.js new file mode 100644 index 0000000000..5b2b6b8dee --- /dev/null +++ b/argilla-frontend/assets/icons/records.js @@ -0,0 +1,27 @@ +/* + * coding=utf-8 + * Copyright 2021-present, the Recognai S.L. team. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* eslint-disable */ +var icon = require('vue-svgicon') +icon.register({ + 'records': { + width: 10, + height: 9, + viewBox: '0 0 10 9', + data: '' + } +}) \ No newline at end of file diff --git a/argilla-frontend/assets/icons/update.js b/argilla-frontend/assets/icons/update.js new file mode 100644 index 0000000000..aefcfdd880 --- /dev/null +++ b/argilla-frontend/assets/icons/update.js @@ -0,0 +1,27 @@ +/* + * coding=utf-8 + * Copyright 2021-present, the Recognai S.L. team. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* eslint-disable */ +var icon = require('vue-svgicon') +icon.register({ + 'update': { + width: 12, + height: 13, + viewBox: '0 0 12 13', + data: '' + } +}) \ No newline at end of file diff --git a/argilla-frontend/assets/scss/abstract/variables/_themes.scss b/argilla-frontend/assets/scss/abstract/variables/_themes.scss index 13b7228008..2a932ca032 100644 --- a/argilla-frontend/assets/scss/abstract/variables/_themes.scss +++ b/argilla-frontend/assets/scss/abstract/variables/_themes.scss @@ -5,6 +5,8 @@ --color-brand: hsl(3, 100%, 69%); --color-brand-secondary: hsl(19, 85%, 81%); --color-danger: var(--color-brand); + --color-avatar-fg: var(--color-white); + --color-avatar-bg: var(--color-brand); --color-warning: hsl(18, 98%, 68%); --color-success: hsl(88, 74%, 36%); --color-info: hsl(0, 0%, 90%); @@ -14,6 +16,7 @@ --bg-solid-grey-1: hsl(0, 0%, 98%); --bg-solid-grey-2: hsl(0, 0%, 96%); --bg-solid-grey-3: hsl(0, 0%, 90%); + --bg-solid-grey-4: hsl(0, 0%, 90%); --bg-accent-grey-1: hsl(0, 0%, 100%); --bg-accent-grey-2: hsl(0, 0%, 100%); --bg-accent-grey-3: hsl(0, 0%, 98%); @@ -93,6 +96,7 @@ --bg-solid-grey-1: hsl(214, 12%, 10%); --bg-solid-grey-2: hsl(214, 12%, 14%); --bg-solid-grey-3: hsl(214, 12%, 16%); + --bg-solid-grey-4: hsl(214, 12%, 20%); --bg-accent-grey-1: hsl(214, 12%, 12%); --bg-accent-grey-2: hsl(214, 12%, 16%); --bg-accent-grey-3: hsl(214, 12%, 14%); @@ -166,3 +170,95 @@ [data-theme="dark"] { color-scheme: dark; } + +[data-theme="high-contrast"] { + --color-black: hsla(0, 0%, 0%, 100%); + --color-brand: hsl(3, 99%, 28%); + --color-brand-secondary: hsl(19, 85%, 81%); + --color-danger: var(--color-brand); + --color-avatar-fg: var(--color-black); + --color-avatar-bg: var(--color-white); + --color-warning: hsl(18, 100%, 50%); + --color-success: hsl(88, 100%, 31%); + --color-info: hsl(0, 0%, 90%); + --bg-action: hsl(227, 100%, 40%); + --bg-action-accent: hsl(227, 98%, 25%); + --bg-black: hsla(0, 0%, 0%, 0.87); + --bg-solid-grey-1: hsl(0, 0%, 98%); + --bg-solid-grey-2: hsl(0, 0%, 96%); + --bg-solid-grey-3: hsl(0, 0%, 90%); + --bg-solid-grey-4: hsl(0, 0%, 90%); + --bg-accent-grey-1: hsl(0, 0%, 100%); + --bg-accent-grey-2: hsl(0, 0%, 100%); + --bg-accent-grey-3: hsl(0, 0%, 98%); + --bg-accent-grey-4: hsl(0, 0%, 98%); + --bg-accent-grey-5: hsl(0, 0%, 100%); + --bg-opacity-1: hsla(0, 0%, 0%, 0.01); + --bg-opacity-2: hsla(0, 0%, 0%, 0.02); + --bg-opacity-3: hsla(0, 0%, 0%, 0.03); + --bg-opacity-4: hsla(0, 0%, 0%, 0.04); + --bg-opacity-6: hsla(0, 0%, 0%, 0.06); + --bg-opacity-10: hsla(0, 0%, 0%, 0.1); + --bg-opacity-20: hsla(0, 0%, 0%, 0.2); + --bg-opacity-37: hsla(0, 0%, 0%, 0.87); + --bg-opacity-54: hsla(0, 0%, 0%, 0.87); + --bg-opacity-87: hsla(0, 0%, 0%, 0.87); + --fg-lighter: hsl(0, 0%, 100%); + --fg-primary: hsla(0, 0%, 0%, 0.87); + --fg-secondary: hsla(0, 0%, 10%, 0.87); + --fg-tertiary: hsla(10, 10%, 10%, 0.87); + --fg-cuaternary: hsl(227, 96%, 39%); + --fg-status-pending: hsl(0, 100%, 30%); + --fg-status-draft: hsl(143, 100%, 20%); + --bg-status-draft: hsl(125, 63%, 82%); + --bg-status-draft-accent: hsl(128, 63%, 84%); + --fg-status-discarded: rgb(0, 0, 0); + --bg-status-discarded: hsla(0, 5%, 87%); + --bg-status-discarded-accent: hsla(0, 5%, 83%); + --fg-status-submitted: hsl(227, 100%, 39%); + --bg-status-submitted: hsl(227, 100%, 85%); + --bg-status-submitted-accent: hsl(227, 100%, 82%); + --fg-filter-badge: hsl(239, 36%, 47%); + --fg-filter-badge-accent: hsl(239, 100%, 39%); + --bg-filter-badge: hsl(240, 100%, 92%); + --bg-filter-badge-accent: hsl(240, 100%, 90%); + --fg-label: var(--color-black); + --fg-label-2: var(--color-black); + --bg-label: var(--color-black); + --bg-label-unselected: hsl(0, 0%, 96%); + --bg-label-unselected-hover: hsla(0, 0%, 0%, 0.06); + --bg-field: linear-gradient(45deg, var(--bg-opacity-2), var(--bg-opacity-1)); + --border-field: hsl(0, 0%, 94%); + --bg-bubble: linear-gradient(45deg, var(--bg-opacity-3), var(--bg-opacity-1)); + --bg-bubble-inverse: linear-gradient( + 45deg, + var(--bg-opacity-1), + var(--bg-opacity-3) + ); + --bg-form: hsl(0, 0%, 100%); + --bg-form-button-area: hsl(228, 50%, 96%); + --fg-shortcut-key: hsla(0, 0%, 0%, 0.2); + --bg-similarity: hsl(2, 100%, 94%); + --fg-similarity: hsl(3, 100%, 50%); + --fg-highlight: hsl(3, 100%, 49%); + --bg-auth: hsl(18, 57%, 91%); + --bg-auth-gradient: linear-gradient( + 178.31deg, + #ffe5d9 1.36%, + #ffd1bc 109.14% + ); + --bg-banner-info: hsl(0, 0%, 90%); + --bg-banner-warning: hsl(47, 83%, 91%); + --bg-banner-error: hsl(3, 100%, 92%); + --bg-tooltip: var(--color-dark-grey); + --bg-config-card: hsl(0, 0%, 100%); + --bg-config-alert: hsl(0, 0%, 100%); + --fg-chat-1: #198700; + --fg-chat-2: #933e00; + --fg-chat-3: #ae0000; + --fg-chat-4: #86008d; + --fg-chat-5: #002dd0; +} +[data-theme="high-contrast"] { + color-scheme: high-contrast; +} diff --git a/argilla-frontend/assets/scss/abstract/variables/_variables.scss b/argilla-frontend/assets/scss/abstract/variables/_variables.scss index 5ccdc8c432..ec78d294ca 100644 --- a/argilla-frontend/assets/scss/abstract/variables/_variables.scss +++ b/argilla-frontend/assets/scss/abstract/variables/_variables.scss @@ -39,7 +39,8 @@ $base-space-between-records: $base-space; $border-radius-s: 5px; $border-radius: 5px; $border-radius-m: 10px; -$border-radius-l: 25px; +$border-radius-l: 16px; +$border-radius-xl: 25px; $border-radius-rounded: 50em; // Shadows @@ -47,9 +48,6 @@ $border-radius-rounded: 50em; $shadow: 0 8px 20px 0 rgba(0, 0, 0, 0.2); $shadow-100: 1px 1px 3px 0px rgba(0, 0, 0, 0.15); $shadow-200: 1px 2px 5px 2px rgba(0, 0, 0, 0.15); -$shadow-300: 0 1px 3px 0 rgba(185, 185, 185, 0.4); -$shadow-400: 0px 4px 10px rgba(0, 0, 0, 0.1); -$shadow-500: 0 6px 10px 0 rgba(0, 0, 0, 0.1); // Input size //----------- diff --git a/argilla-frontend/components/base/base-action-tooltip/BaseActionTooltip.vue b/argilla-frontend/components/base/base-action-tooltip/BaseActionTooltip.vue index 57f3b53635..b19f56699b 100644 --- a/argilla-frontend/components/base/base-action-tooltip/BaseActionTooltip.vue +++ b/argilla-frontend/components/base/base-action-tooltip/BaseActionTooltip.vue @@ -65,6 +65,12 @@ export default { &.--right { left: 100%; } + &.--top { + bottom: 100%; + } + &.--bottom { + top: 100%; + } &__container { position: relative; } diff --git a/argilla-frontend/components/base/base-badge/BaseBadge.vue b/argilla-frontend/components/base/base-badge/BaseBadge.vue index 725609dc25..e76a8289de 100644 --- a/argilla-frontend/components/base/base-badge/BaseBadge.vue +++ b/argilla-frontend/components/base/base-badge/BaseBadge.vue @@ -1,8 +1,10 @@ diff --git a/argilla-frontend/components/base/base-search-bar/BaseSearchBar.vue b/argilla-frontend/components/base/base-search-bar/BaseSearchBar.vue index 7a05d3e42a..f379bd5f51 100644 --- a/argilla-frontend/components/base/base-search-bar/BaseSearchBar.vue +++ b/argilla-frontend/components/base/base-search-bar/BaseSearchBar.vue @@ -16,31 +16,42 @@ --> diff --git a/argilla-frontend/components/base/base-table/ResultsEmpty.vue b/argilla-frontend/components/base/base-table/ResultsEmpty.vue deleted file mode 100644 index b6b8b63f24..0000000000 --- a/argilla-frontend/components/base/base-table/ResultsEmpty.vue +++ /dev/null @@ -1,71 +0,0 @@ - - - - - - - diff --git a/argilla-frontend/components/base/base-table/TableFiltrableColumn.spec.js b/argilla-frontend/components/base/base-table/TableFiltrableColumn.spec.js deleted file mode 100644 index b8b0c23e51..0000000000 --- a/argilla-frontend/components/base/base-table/TableFiltrableColumn.spec.js +++ /dev/null @@ -1,36 +0,0 @@ -import { mount } from "@vue/test-utils"; -import TableFiltrableColumn from "@/components/base/base-table/TableFiltrableColumn"; - -function mountTableFiltrableColumn() { - return mount(TableFiltrableColumn, { - propsData: { - filters: { - workspace: ["recognai"], - }, - column: { - class: "text", - field: "workspace", - filtrable: "true", - name: "Workspace", - type: "text", - }, - data: [ - { - name: "dataset_1", - workspace: "recognai", - task: "TokenClassification", - }, - ], - }, - }); -} - -describe("TableFiltrableColumn", () => { - const spy = jest.spyOn(console, "error"); - afterEach(() => spy.mockReset()); - - test("renders properly", () => { - const wrapper = mountTableFiltrableColumn(); - expect(wrapper.html()).toMatchSnapshot(); - }); -}); diff --git a/argilla-frontend/components/base/base-table/TableFiltrableColumn.vue b/argilla-frontend/components/base/base-table/TableFiltrableColumn.vue deleted file mode 100644 index e0e832d0d7..0000000000 --- a/argilla-frontend/components/base/base-table/TableFiltrableColumn.vue +++ /dev/null @@ -1,224 +0,0 @@ - - - - diff --git a/argilla-frontend/components/base/base-table/__snapshots__/BaseTableInfo.spec.js.snap b/argilla-frontend/components/base/base-table/__snapshots__/BaseTableInfo.spec.js.snap deleted file mode 100644 index 4f97888edd..0000000000 --- a/argilla-frontend/components/base/base-table/__snapshots__/BaseTableInfo.spec.js.snap +++ /dev/null @@ -1,27 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`BaseTableInfo renders properly 1`] = ` - -
-
-
-
- -
-
-
-
-
    -
  • - recognai - -
  • -
  • - recognai - -
  • -
-
-
-
-`; diff --git a/argilla-frontend/components/base/base-table/__snapshots__/TableFiltrableColumn.spec.js.snap b/argilla-frontend/components/base/base-table/__snapshots__/TableFiltrableColumn.spec.js.snap deleted file mode 100644 index 5bb68a4766..0000000000 --- a/argilla-frontend/components/base/base-table/__snapshots__/TableFiltrableColumn.spec.js.snap +++ /dev/null @@ -1,11 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`TableFiltrableColumn renders properly 1`] = ` -
- -
-`; diff --git a/argilla-frontend/components/base/base-table/filters/SelectOptions.spec.js b/argilla-frontend/components/base/base-table/filters/SelectOptions.spec.js deleted file mode 100644 index d28a48bb82..0000000000 --- a/argilla-frontend/components/base/base-table/filters/SelectOptions.spec.js +++ /dev/null @@ -1,21 +0,0 @@ -import { mount } from "@vue/test-utils"; -import SelectOptions from "@/components/base/base-table/filters/SelectOptions.vue"; - -function mountSelectOptions() { - return mount(SelectOptions, { - stubs: ["base-checkbox"], - propsData: { - options: ["NEGATIVE", "POSITIVE", "OTHER"], - }, - }); -} - -describe("SelectOptions", () => { - const spy = jest.spyOn(console, "error"); - afterEach(() => spy.mockReset()); - - test("renders properly", () => { - const wrapper = mountSelectOptions(); - expect(wrapper.html()).toMatchSnapshot(); - }); -}); diff --git a/argilla-frontend/components/base/base-table/filters/SelectOptions.vue b/argilla-frontend/components/base/base-table/filters/SelectOptions.vue deleted file mode 100644 index 10b1c88314..0000000000 --- a/argilla-frontend/components/base/base-table/filters/SelectOptions.vue +++ /dev/null @@ -1,129 +0,0 @@ - - - - - - - diff --git a/argilla-frontend/components/base/base-table/filters/SelectOptionsSearch.spec.js b/argilla-frontend/components/base/base-table/filters/SelectOptionsSearch.spec.js deleted file mode 100644 index daa28769b6..0000000000 --- a/argilla-frontend/components/base/base-table/filters/SelectOptionsSearch.spec.js +++ /dev/null @@ -1,21 +0,0 @@ -import { mount } from "@vue/test-utils"; -import SelectOptionsSearch from "@/components/base/base-table/filters/SelectOptionsSearch.vue"; - -function mountSelectOptionsSearch() { - return mount(SelectOptionsSearch, { - propsData: { - value: "Search Input", - allowClear: true, - }, - }); -} - -describe("SelectOptionsSearch", () => { - const spy = jest.spyOn(console, "error"); - afterEach(() => spy.mockReset()); - - test("renders properly", () => { - const wrapper = mountSelectOptionsSearch(); - expect(wrapper.html()).toMatchSnapshot(); - }); -}); diff --git a/argilla-frontend/components/base/base-table/filters/SelectOptionsSearch.vue b/argilla-frontend/components/base/base-table/filters/SelectOptionsSearch.vue deleted file mode 100644 index b4a66b2dc3..0000000000 --- a/argilla-frontend/components/base/base-table/filters/SelectOptionsSearch.vue +++ /dev/null @@ -1,68 +0,0 @@ - - - - - diff --git a/argilla-frontend/components/base/base-table/filters/__snapshots__/SelectOptions.spec.js.snap b/argilla-frontend/components/base/base-table/filters/__snapshots__/SelectOptions.spec.js.snap deleted file mode 100644 index 0befa1f006..0000000000 --- a/argilla-frontend/components/base/base-table/filters/__snapshots__/SelectOptions.spec.js.snap +++ /dev/null @@ -1,25 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`SelectOptions renders properly 1`] = ` -
    -
  • - - NEGATIVE - - -
  • -
  • - - POSITIVE - - -
  • -
  • - - OTHER - - -
  • - -
-`; diff --git a/argilla-frontend/components/base/base-table/filters/__snapshots__/SelectOptionsSearch.spec.js.snap b/argilla-frontend/components/base/base-table/filters/__snapshots__/SelectOptionsSearch.spec.js.snap deleted file mode 100644 index 8224e5a811..0000000000 --- a/argilla-frontend/components/base/base-table/filters/__snapshots__/SelectOptionsSearch.spec.js.snap +++ /dev/null @@ -1,3 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`SelectOptionsSearch renders properly 1`] = ``; diff --git a/argilla-frontend/components/base/base-topbar-brand/BaseTopbarBrand.vue b/argilla-frontend/components/base/base-topbar-brand/BaseTopbarBrand.vue index 3f9be0ca3e..b905083582 100644 --- a/argilla-frontend/components/base/base-topbar-brand/BaseTopbarBrand.vue +++ b/argilla-frontend/components/base/base-topbar-brand/BaseTopbarBrand.vue @@ -41,6 +41,7 @@ export default { padding-bottom: 0; padding-right: 1.2em; padding-left: $base-space * 2; + border: 1px solid var(--bg-opacity-1); a { text-decoration: none; @include media("<=tablet") { diff --git a/argilla-frontend/components/features/annotation/container/fields/RecordFields.vue b/argilla-frontend/components/features/annotation/container/fields/RecordFields.vue index ed8f523649..d9cdc15aef 100644 --- a/argilla-frontend/components/features/annotation/container/fields/RecordFields.vue +++ b/argilla-frontend/components/features/annotation/container/fields/RecordFields.vue @@ -17,7 +17,7 @@ >
@@ -32,8 +32,8 @@ >
diff --git a/argilla-frontend/components/features/dataset-creation/configuration/DatasetConfigurationForm.vue b/argilla-frontend/components/features/dataset-creation/configuration/DatasetConfigurationForm.vue index 82d857a91b..cf2f2f16c3 100644 --- a/argilla-frontend/components/features/dataset-creation/configuration/DatasetConfigurationForm.vue +++ b/argilla-frontend/components/features/dataset-creation/configuration/DatasetConfigurationForm.vue @@ -90,11 +90,10 @@ diff --git a/argilla-frontend/components/features/dataset-creation/configuration/questions/DatasetConfigurationFieldSelector.vue b/argilla-frontend/components/features/dataset-creation/configuration/questions/DatasetConfigurationFieldSelector.vue new file mode 100644 index 0000000000..a3d85902af --- /dev/null +++ b/argilla-frontend/components/features/dataset-creation/configuration/questions/DatasetConfigurationFieldSelector.vue @@ -0,0 +1,144 @@ + + + + diff --git a/argilla-frontend/components/features/dataset-creation/configuration/questions/DatasetConfigurationLabels.vue b/argilla-frontend/components/features/dataset-creation/configuration/questions/DatasetConfigurationLabels.vue index 1ab24d2c12..b988d70ee8 100644 --- a/argilla-frontend/components/features/dataset-creation/configuration/questions/DatasetConfigurationLabels.vue +++ b/argilla-frontend/components/features/dataset-creation/configuration/questions/DatasetConfigurationLabels.vue @@ -1,7 +1,7 @@ @@ -27,7 +29,7 @@ export default { data() { return { - errors: [], + errors: {}, isDirty: false, }; }, @@ -45,11 +47,6 @@ export default { optionsJoinedByCommas() { return this.question.options.map((item) => item.text).join(","); }, - translatedValidations() { - return this.errors.map((validation) => { - return this.$t(validation); - }); - }, }, methods: { validateOptions() { diff --git a/argilla-frontend/components/features/dataset-creation/configuration/questions/DatasetConfigurationQuestion.vue b/argilla-frontend/components/features/dataset-creation/configuration/questions/DatasetConfigurationQuestion.vue index 6dcfd4dd20..f51f44b079 100644 --- a/argilla-frontend/components/features/dataset-creation/configuration/questions/DatasetConfigurationQuestion.vue +++ b/argilla-frontend/components/features/dataset-creation/configuration/questions/DatasetConfigurationQuestion.vue @@ -25,6 +25,7 @@
- +
@@ -29,7 +29,7 @@ export default { data() { return { - errors: [], + errors: {}, isDirty: false, }; }, @@ -43,13 +43,6 @@ export default { default: "", }, }, - computed: { - translatedValidations() { - return this.errors.map((validation) => { - return this.$t(validation); - }); - }, - }, methods: { validateOptions() { this.errors = this.question.validate(); diff --git a/argilla-frontend/components/features/dataset-creation/configuration/questions/DatasetConfigurationSpan.vue b/argilla-frontend/components/features/dataset-creation/configuration/questions/DatasetConfigurationSpan.vue index 2106fce530..262ffeb9c5 100644 --- a/argilla-frontend/components/features/dataset-creation/configuration/questions/DatasetConfigurationSpan.vue +++ b/argilla-frontend/components/features/dataset-creation/configuration/questions/DatasetConfigurationSpan.vue @@ -2,7 +2,7 @@
- +
@@ -27,7 +36,7 @@ export default { data() { return { - errors: [], + errors: {}, isDirty: false, }; }, @@ -36,20 +45,33 @@ export default { type: Object, required: true, }, + textFields: { + type: Array, + required: true, + }, placeholder: { type: String, default: "", }, }, + watch: { + "question.settings.field": { + handler() { + this.validateOptions(); + }, + immediate: true, + }, + textFields: { + handler() { + this.validateOptions(); + }, + immediate: true, + }, + }, computed: { optionsJoinedByCommas() { return this.question.options.map((item) => item.text).join(","); }, - translatedValidations() { - return this.errors.map((validation) => { - return this.$t(validation); - }); - }, }, methods: { validateOptions() { diff --git a/argilla-frontend/components/features/global/user/UserAvatarTooltip.vue b/argilla-frontend/components/features/global/user/UserAvatarTooltip.vue index e04925b77b..237e0f5568 100644 --- a/argilla-frontend/components/features/global/user/UserAvatarTooltip.vue +++ b/argilla-frontend/components/features/global/user/UserAvatarTooltip.vue @@ -1,6 +1,7 @@