@demos-europe/demosplan-ui 0.3.20 → 0.3.21

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 (37) hide show
  1. package/.idea/workspace.xml +61 -41
  2. package/CHANGELOG.md +13 -1
  3. package/dist/demosplan-ui.umd.js +1 -1
  4. package/package.json +2 -2
  5. package/src/components/DpButtonRow/DpButtonRow.vue +8 -2
  6. package/src/components/DpEditor/DpEditor.vue +46 -33
  7. package/src/components/DpEditor/DpResizableImage.vue +10 -4
  8. package/src/components/DpEditor/DpUploadModal.vue +29 -15
  9. package/src/components/DpUploadFiles/DpUpload.vue +9 -1
  10. package/src/components/DpUploadFiles/DpUploadFiles.vue +7 -0
  11. package/tokens/dist/js/boxShadow.js +1 -1
  12. package/tokens/dist/js/breakpoints.js +1 -1
  13. package/tokens/dist/js/color.brand.js +1 -1
  14. package/tokens/dist/js/color.data.js +1 -1
  15. package/tokens/dist/js/color.palette.js +1 -1
  16. package/tokens/dist/js/color.ui-tailwind.js +145 -5
  17. package/tokens/dist/js/color.ui.js +145 -5
  18. package/tokens/dist/js/fontSize.js +1 -1
  19. package/tokens/dist/js/rounded.js +1 -1
  20. package/tokens/dist/js/space.js +1 -1
  21. package/tokens/dist/js/zIndex.js +1 -1
  22. package/tokens/dist/scss/_boxShadow.scss +1 -1
  23. package/tokens/dist/scss/_breakpoints.scss +1 -1
  24. package/tokens/dist/scss/_color.brand.scss +1 -1
  25. package/tokens/dist/scss/_color.data.scss +1 -1
  26. package/tokens/dist/scss/_color.palette.scss +1 -1
  27. package/tokens/dist/scss/_color.ui.scss +1 -1
  28. package/tokens/dist/scss/_fontSize.scss +1 -1
  29. package/tokens/dist/scss/_rounded.scss +1 -1
  30. package/tokens/dist/scss/_space.scss +1 -1
  31. package/tokens/dist/scss/_zIndex.scss +1 -1
  32. package/tokens/dist/tailwind/textColor.js +5 -0
  33. package/tokens/src/color/color.ui-tailwind.json +27 -2
  34. package/.idea/shelf/Uncommitted_changes_before_Checkout_at_12_07_2024_08_46_[Changes]/shelved.patch +0 -30538
  35. package/.idea/shelf/Uncommitted_changes_before_Checkout_at_12_07_2024_08_46__Changes_.xml +0 -4
  36. package/.idea/shelf/Uncommitted_changes_before_Update_at_12_07_2024_14_02_[Changes]/shelved.patch +0 -19
  37. package/.idea/shelf/Uncommitted_changes_before_Update_at_12_07_2024_14_02__Changes_.xml +0 -4
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@demos-europe/demosplan-ui",
3
- "version": "0.3.20",
3
+ "version": "0.3.21",
4
4
  "license": "MIT",
5
5
  "private": false,
6
6
  "description": "Vue components, Vue directives, Design Token and Scss files to build interfaces for demosPlan.",
@@ -98,7 +98,7 @@
98
98
  "react-dom": "^18.2.0",
99
99
  "storybook": "7.6.17",
100
100
  "storybook-addon-vue-slots": "^0.9.21",
101
- "string-width": "7.1.0",
101
+ "string-width": "7.2.0",
102
102
  "style-dictionary": "^3.9.2",
103
103
  "style-loader": "^4.0.0",
104
104
  "tailwindcss": "^3.2.1",
@@ -1,6 +1,6 @@
1
1
  <template>
2
2
  <div
3
- :class="[`text--${align}`, $attrs.class]"
3
+ :class="[align, $attrs.class]"
4
4
  class="space-inline-s">
5
5
  <dp-button
6
6
  v-if="primary"
@@ -37,7 +37,7 @@ export default {
37
37
  /**
38
38
  * Specifies if the buttons should align left or right inside their container.
39
39
  */
40
- align: {
40
+ alignment: {
41
41
  type: String,
42
42
  required: false,
43
43
  default: 'right'
@@ -123,6 +123,12 @@ export default {
123
123
  default: 'solid',
124
124
  validator: (prop) => ['solid', 'outline', 'subtle'].includes(prop)
125
125
  }
126
+ },
127
+
128
+ computed: {
129
+ align () {
130
+ return this.alignment === 'left' ? 'text-left' : 'text-right'
131
+ }
126
132
  }
127
133
  }
128
134
  </script>
@@ -29,12 +29,13 @@
29
29
  <div :class="[readonly ? prefixClass('readonly'): '', prefixClass('menubar')]">
30
30
  <!-- Cut -->
31
31
  <button
32
- @click="cut"
32
+ :aria-label="translations.cut"
33
33
  :class="prefixClass('menubar__button')"
34
+ data-cy="editor:cut"
35
+ :disabled="readonly"
34
36
  type="button"
35
- :aria-label="translations.cut"
36
- v-tooltip="translations.cut"
37
- :disabled="readonly">
37
+ @click="cut"
38
+ v-tooltip="translations.cut">
38
39
  <i
39
40
  :class="prefixClass('fa fa-scissors')"
40
41
  aria-hidden="true" />
@@ -42,24 +43,26 @@
42
43
  &#10072;
43
44
  <!-- Undo -->
44
45
  <button
45
- @click="editor.chain().focus().undo().run()"
46
+ :aria-label="translations.undo"
46
47
  :class="prefixClass('menubar__button')"
48
+ data-cy="editor:undo"
49
+ :disabled="readonly"
47
50
  type="button"
48
- :aria-label="translations.undo"
49
- v-tooltip="translations.undo"
50
- :disabled="readonly">
51
+ @click="editor.chain().focus().undo().run()"
52
+ v-tooltip="translations.undo">
51
53
  <i
52
54
  :class="prefixClass('fa fa-reply')"
53
55
  aria-hidden="true" />
54
56
  </button>
55
57
  <!-- Redo -->
56
58
  <button
57
- @click="editor.chain().focus().redo().run()"
59
+ :aria-label="translations.redo"
58
60
  :class="prefixClass('menubar__button')"
61
+ data-cy="editor:redo"
62
+ :disabled="readonly"
59
63
  type="button"
60
- :aria-label="translations.redo"
61
- v-tooltip="translations.redo"
62
- :disabled="readonly">
64
+ @click="editor.chain().focus().redo().run()"
65
+ v-tooltip="translations.redo">
63
66
  <i
64
67
  :class="prefixClass('fa fa-share')"
65
68
  aria-hidden="true" />
@@ -69,12 +72,13 @@
69
72
  <!-- Bold -->
70
73
 
71
74
  <button
72
- @click="editor.chain().focus().toggleBold().run()"
75
+ :aria-label="translations.bold"
73
76
  :class="[editor.isActive('bold') ? prefixClass('is-active'): '', prefixClass('menubar__button')]"
77
+ data-cy="editor:bold"
78
+ :disabled="readonly"
74
79
  type="button"
75
- :aria-label="translations.bold"
76
- v-tooltip="translations.bold"
77
- :disabled="readonly">
80
+ @click="editor.chain().focus().toggleBold().run()"
81
+ v-tooltip="translations.bold">
78
82
  <i
79
83
  :class="prefixClass('fa fa-bold')"
80
84
  aria-hidden="true" />
@@ -82,24 +86,26 @@
82
86
 
83
87
  <!-- Italic -->
84
88
  <button
85
- @click="editor.chain().focus().toggleItalic().run()"
89
+ :aria-label="translations.italic"
86
90
  :class="[editor.isActive('italic') ? prefixClass('is-active') : '', prefixClass('menubar__button') ]"
91
+ data-cy="editor:italic"
92
+ :disabled="readonly"
87
93
  type="button"
88
- :aria-label="translations.italic"
89
- v-tooltip="translations.italic"
90
- :disabled="readonly">
94
+ @click="editor.chain().focus().toggleItalic().run()"
95
+ v-tooltip="translations.italic">
91
96
  <i
92
97
  :class="prefixClass('fa fa-italic')"
93
98
  aria-hidden="true" />
94
99
  </button>
95
100
  <!-- Underline -->
96
101
  <button
97
- @click="editor.chain().focus().toggleUnderline().run()"
102
+ :aria-label="translations.underline"
98
103
  :class="[editor.isActive('underline') ? prefixClass('is-active') : '', prefixClass('menubar__button')]"
104
+ data-cy="editor:underline"
105
+ :disabled="readonly"
99
106
  type="button"
100
- :aria-label="translations.underline"
101
- v-tooltip="translations.underline"
102
- :disabled="readonly">
107
+ @click="editor.chain().focus().toggleUnderline().run()"
108
+ v-tooltip="translations.underline">
103
109
  <i
104
110
  :class="prefixClass('fa fa-underline')"
105
111
  aria-hidden="true" />
@@ -108,12 +114,13 @@
108
114
  <!-- Strike through -->
109
115
  <button
110
116
  v-if="toolbar.strikethrough"
111
- @click="editor.chain().focus().toggleStrike().run()"
117
+ :aria-label="translations.strikethrough"
112
118
  :class="[editor.isActive('strike') ? prefixClass('is-active') : '', prefixClass('menubar__button')]"
119
+ data-cy="editor:strikethrough"
120
+ :disabled="readonly"
113
121
  type="button"
114
- :aria-label="translations.strikethrough"
115
- v-tooltip="translations.strikethrough"
116
- :disabled="readonly">
122
+ @click="editor.chain().focus().toggleStrike().run()"
123
+ v-tooltip="translations.strikethrough">
117
124
  <i
118
125
  :class="prefixClass('fa fa-strikethrough')"
119
126
  aria-hidden="true" />
@@ -123,10 +130,10 @@
123
130
  :class="prefixClass('inline-block relative')">
124
131
  <button
125
132
  :class="[editor.isActive('insert') || editor.isActive('delete') ? prefixClass('is-active') : '', prefixClass('menubar__button')]"
133
+ :disabled="readonly"
126
134
  type="button"
127
135
  @click.stop="toggleSubMenu('diffMenu', !diffMenu.isOpen)"
128
- @keydown.tab.shift.exact="toggleSubMenu('diffMenu', false)"
129
- :disabled="readonly">
136
+ @keydown.tab.shift.exact="toggleSubMenu('diffMenu', false)">
130
137
  <dp-icon
131
138
  class="align-text-top inline-block"
132
139
  icon="highlighter" />
@@ -355,6 +362,7 @@ import DpResizableImage from './DpResizableImage'
355
362
  import { handleWordPaste } from './libs/handleWordPaste'
356
363
  import { maxlengthHint } from '~/utils/'
357
364
  import { prefixClassMixin } from '~/mixins'
365
+ import { v4 as uuid } from 'uuid'
358
366
 
359
367
  export default {
360
368
  name: 'DpEditor',
@@ -1041,6 +1049,7 @@ export default {
1041
1049
 
1042
1050
  mounted () {
1043
1051
  this.editor = new Editor({
1052
+ id: uuid(),
1044
1053
  editable: !this.readonly,
1045
1054
  extensions: this.collectExtensions(),
1046
1055
  content: this.currentValue,
@@ -1089,9 +1098,13 @@ export default {
1089
1098
  }
1090
1099
  })
1091
1100
 
1092
- this.$root.$on('open-image-alt-modal', (e, id) => {
1093
- this.editingImage = id
1094
- this.openUploadModal({ editAltOnly: true, currentAlt: e.target.getAttribute('alt') })
1101
+ this.$root.$on('open-image-alt-modal', ({ event, imgId, editorId }) => {
1102
+ if (this.editor.options.id !== editorId) {
1103
+ return
1104
+ }
1105
+
1106
+ this.editingImage = imgId
1107
+ this.openUploadModal({ editAltOnly: true, currentAlt: event.target.getAttribute('alt'), imgSrc: event.target.getAttribute('src') })
1095
1108
  })
1096
1109
  /*
1097
1110
  * On form-reset the editor has to be cleared manually.
@@ -7,9 +7,10 @@
7
7
  <img
8
8
  :alt="node.attrs.alt"
9
9
  ref="image"
10
+ data-cy="editor:resizableImage"
10
11
  :src="node.attrs.src"
11
12
  :title="imageTitle"
12
- @click.ctrl="$root.$emit('open-image-alt-modal', $event, id)">
13
+ @click.ctrl="$root.$emit('open-image-alt-modal', { event: $event, imgId: id, editorId: editor.options.id })">
13
14
  </node-view-wrapper>
14
15
  </template>
15
16
 
@@ -59,7 +60,7 @@ export default {
59
60
  img.onload = () => {
60
61
  this.ratioFactor = img.width / img.height
61
62
 
62
- // If the width is not set jet, set it to the image original dimensions
63
+ // If the width is not set yet, set it to the image original dimensions
63
64
  if (updateSize) {
64
65
  this.updateImageDimensions()
65
66
  }
@@ -89,11 +90,16 @@ export default {
89
90
 
90
91
  this.initResizeObserver()
91
92
 
92
- // May or not may be necessary
93
- // this.$refs.imagewrapper.$el.style.width = this.node.attrs.width + 'px'
93
+ this.$refs.imagewrapper.$el.style.width = this.node.attrs.width + 'px'
94
94
 
95
95
  const updateSize = (this.node.attrs.height > 0) === false || this.node.attrs.height === Infinity
96
96
  this.setRatio(updateSize)
97
+ },
98
+
99
+ beforeDestroy () {
100
+ if (this.observer) {
101
+ this.observer.disconnect()
102
+ }
97
103
  }
98
104
  }
99
105
  </script>
@@ -1,7 +1,9 @@
1
1
  <template>
2
2
  <dp-modal
3
3
  ref="uploadModal"
4
- content-classes="u-2-of-3-lap-up u-1-of-2-desk-up">
4
+ content-classes="w-fit"
5
+ data-cy="editor:uploadModal"
6
+ @modal:toggled="(isOpen) => { if (!isOpen) reset() }">
5
7
  <template>
6
8
  <h3
7
9
  v-if="editAltTextOnly"
@@ -13,7 +15,7 @@
13
15
  class="u-mb">
14
16
  {{ translations.insertImage }}
15
17
  </h3>
16
- <div v-show="editAltTextOnly === false">
18
+ <div v-if="!editAltTextOnly">
17
19
  <dp-upload-files
18
20
  allowed-file-types="img"
19
21
  :basic-auth="basicAuth"
@@ -26,25 +28,34 @@
26
28
  :tus-endpoint="tusEndpoint"
27
29
  @upload-success="setFile" />
28
30
  </div>
31
+ <div v-else>
32
+ <img
33
+ :alt="altText"
34
+ class="mb-4"
35
+ :src="this.imgSrc">
36
+ </div>
29
37
  <dp-input
30
38
  id="altText"
31
39
  v-model="altText"
32
40
  class="u-mb"
41
+ data-cy="uploadModal:altText"
33
42
  :label="{
34
43
  hint: translations.altTextHint,
35
44
  text: translations.altText,
36
45
  }" />
37
- <div class="u-mt text--right w-full space-inline-s">
46
+ <div class="u-mt text-right w-full space-inline-s">
38
47
  <button
39
48
  class="btn btn--primary"
49
+ data-cy="uploadModal:save"
40
50
  type="button"
41
- @click="emitAndClose()">
42
- {{ Translator.trans('insert') }}
51
+ @click="emitAndClose()"
52
+ v-text="editAltTextOnly ? Translator.trans('save') : Translator.trans('insert')">
43
53
  </button>
44
54
  <button
45
55
  class="btn btn--secondary"
56
+ data-cy="uploadModal:abort"
46
57
  type="button"
47
- @click="resetAndClose()">
58
+ @click="closeAndReset()">
48
59
  {{ Translator.trans('abort') }}
49
60
  </button>
50
61
  </div>
@@ -96,6 +107,7 @@ export default {
96
107
  fileUrl: '',
97
108
  altText: '',
98
109
  editAltTextOnly: false,
110
+ imgSrc: '',
99
111
  translations: {
100
112
  altText: de.altText.default,
101
113
  altTextHint: de.image.alt.explanation,
@@ -107,21 +119,26 @@ export default {
107
119
  },
108
120
 
109
121
  methods: {
122
+ closeAndReset () {
123
+ this.reset()
124
+ this.$emit('close')
125
+ this.toggleModal()
126
+ },
127
+
110
128
  emitAndClose () {
111
129
  if (this.editAltTextOnly) {
112
130
  this.$emit('add-alt', this.altText)
113
131
  } else if (this.fileUrl) {
114
132
  this.$emit('insert-image', this.fileUrl, this.altText)
115
133
  }
116
- this.resetAndClose()
134
+
135
+ this.closeAndReset()
117
136
  },
118
137
 
119
- resetAndClose () {
138
+ reset () {
120
139
  this.altText = ''
121
140
  this.fileUrl = ''
122
141
  this.editAltTextOnly = false
123
- this.$emit('close')
124
- this.toggleModal()
125
142
  },
126
143
 
127
144
  setFile ({ hash }) {
@@ -131,13 +148,10 @@ export default {
131
148
  },
132
149
 
133
150
  toggleModal (data) {
134
- const willCloseModal = this.$refs.uploadModal.isOpenModal === true
135
-
136
- if (willCloseModal) {
137
- this.$refs.uploader.clearFilesList()
138
- } else if (data) {
151
+ if (data) {
139
152
  this.editAltTextOnly = data.editAltOnly
140
153
  this.altText = data.currentAlt
154
+ this.imgSrc = data.imgSrc
141
155
  }
142
156
 
143
157
  this.$refs.uploadModal.toggle()
@@ -1,5 +1,7 @@
1
1
  <template>
2
- <div ref="fileInput" />
2
+ <div
3
+ :data-cy="dataCy"
4
+ ref="fileInput" />
3
5
  </template>
4
6
 
5
7
  <script>
@@ -56,6 +58,12 @@ export default {
56
58
  required: false
57
59
  },
58
60
 
61
+ dataCy: {
62
+ type: String,
63
+ required: false,
64
+ default: 'upload'
65
+ },
66
+
59
67
  /**
60
68
  * Maximum file size in bytes for each individual file
61
69
  */
@@ -16,6 +16,7 @@
16
16
  :basic-auth="basicAuth"
17
17
  :chunk-size="chunkSize"
18
18
  :class="[prefixClass('layout__item u-1-of-1-palm'), prefixClass(sideBySide ? 'u-1-of-2' : 'u-1-of-1')]"
19
+ :data-cy="dataCy"
19
20
  :max-number-of-files="maxNumberOfFiles"
20
21
  :max-file-size="maxFileSize"
21
22
  :translations="translations"
@@ -92,6 +93,12 @@ export default {
92
93
  required: false
93
94
  },
94
95
 
96
+ dataCy: {
97
+ type: String,
98
+ required: false,
99
+ default: 'uploadFile'
100
+ },
101
+
95
102
  /**
96
103
  * Use to conditionally validate a required upload field
97
104
  * "required" and "needsHiddenInput" need to be set to true in that case
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Do not edit directly
3
- * Generated on Wed, 17 Jul 2024 14:34:55 GMT
3
+ * Generated on Mon, 22 Jul 2024 09:37:27 GMT
4
4
  */
5
5
 
6
6
  module.exports = {
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Do not edit directly
3
- * Generated on Wed, 17 Jul 2024 14:34:55 GMT
3
+ * Generated on Mon, 22 Jul 2024 09:37:27 GMT
4
4
  */
5
5
 
6
6
  module.exports = {
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Do not edit directly
3
- * Generated on Wed, 17 Jul 2024 14:34:55 GMT
3
+ * Generated on Mon, 22 Jul 2024 09:37:27 GMT
4
4
  */
5
5
 
6
6
  module.exports = {
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Do not edit directly
3
- * Generated on Wed, 17 Jul 2024 14:34:55 GMT
3
+ * Generated on Mon, 22 Jul 2024 09:37:27 GMT
4
4
  */
5
5
 
6
6
  module.exports = {
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Do not edit directly
3
- * Generated on Wed, 17 Jul 2024 14:34:55 GMT
3
+ * Generated on Mon, 22 Jul 2024 09:37:27 GMT
4
4
  */
5
5
 
6
6
  module.exports = {
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Do not edit directly
3
- * Generated on Wed, 17 Jul 2024 14:34:55 GMT
3
+ * Generated on Mon, 22 Jul 2024 09:37:27 GMT
4
4
  */
5
5
 
6
6
  module.exports = {
@@ -658,13 +658,13 @@ module.exports = {
658
658
  "status": {
659
659
  "progress": {
660
660
  "DEFAULT": {
661
- "$description": "Text color to communicate that something is in progress (ex: status-progress-text).",
661
+ "$description": "Text color to communicate that something is in progress.",
662
662
  "value": "#005eb1",
663
663
  "$type": "color",
664
664
  "filePath": "tokens/src/color/color.ui-tailwind.json",
665
665
  "isSource": true,
666
666
  "original": {
667
- "$description": "Text color to communicate that something is in progress (ex: status-progress-text).",
667
+ "$description": "Text color to communicate that something is in progress.",
668
668
  "value": "{color.palette.blue.dark-1}",
669
669
  "$type": "color"
670
670
  },
@@ -685,14 +685,42 @@ module.exports = {
685
685
  "DEFAULT"
686
686
  ]
687
687
  },
688
+ "fill": {
689
+ "$description": "Fill color to communicate that something is in progress. Use for charts.",
690
+ "value": "#006fd0",
691
+ "$type": "color",
692
+ "filePath": "tokens/src/color/color.ui-tailwind.json",
693
+ "isSource": true,
694
+ "original": {
695
+ "$description": "Fill color to communicate that something is in progress. Use for charts.",
696
+ "value": "{color.palette.blue.base}",
697
+ "$type": "color"
698
+ },
699
+ "name": "ColorUiTailwindTextColorStatusProgressFill",
700
+ "attributes": {
701
+ "category": "color",
702
+ "type": "ui-tailwind",
703
+ "item": "textColor",
704
+ "subitem": "status",
705
+ "state": "progress"
706
+ },
707
+ "path": [
708
+ "color",
709
+ "ui-tailwind",
710
+ "textColor",
711
+ "status",
712
+ "progress",
713
+ "fill"
714
+ ]
715
+ },
688
716
  "icon": {
689
- "$description": "Icon color to communicate that something is in progress (ex: status-progress-fill).",
717
+ "$description": "Icon color to communicate that something is in progress.",
690
718
  "value": "#006fd0",
691
719
  "$type": "color",
692
720
  "filePath": "tokens/src/color/color.ui-tailwind.json",
693
721
  "isSource": true,
694
722
  "original": {
695
- "$description": "Icon color to communicate that something is in progress (ex: status-progress-fill).",
723
+ "$description": "Icon color to communicate that something is in progress.",
696
724
  "value": "{color.palette.blue.base}",
697
725
  "$type": "color"
698
726
  },
@@ -743,6 +771,34 @@ module.exports = {
743
771
  "DEFAULT"
744
772
  ]
745
773
  },
774
+ "fill": {
775
+ "$description": "Fill color to communicate something has moved or changed. Use for charts.",
776
+ "value": "#ffbe24",
777
+ "$type": "color",
778
+ "filePath": "tokens/src/color/color.ui-tailwind.json",
779
+ "isSource": true,
780
+ "original": {
781
+ "$description": "Fill color to communicate something has moved or changed. Use for charts.",
782
+ "value": "{color.palette.yellow.base}",
783
+ "$type": "color"
784
+ },
785
+ "name": "ColorUiTailwindTextColorStatusChangedFill",
786
+ "attributes": {
787
+ "category": "color",
788
+ "type": "ui-tailwind",
789
+ "item": "textColor",
790
+ "subitem": "status",
791
+ "state": "changed"
792
+ },
793
+ "path": [
794
+ "color",
795
+ "ui-tailwind",
796
+ "textColor",
797
+ "status",
798
+ "changed",
799
+ "fill"
800
+ ]
801
+ },
746
802
  "icon": {
747
803
  "$description": "Icon color to communicate something has moved or changed.",
748
804
  "value": "#d09200",
@@ -801,6 +857,34 @@ module.exports = {
801
857
  "DEFAULT"
802
858
  ]
803
859
  },
860
+ "fill": {
861
+ "$description": "Fill color to communicate that an action or validation has failed on an item. Use for charts.",
862
+ "value": "#e52222",
863
+ "$type": "color",
864
+ "filePath": "tokens/src/color/color.ui-tailwind.json",
865
+ "isSource": true,
866
+ "original": {
867
+ "$description": "Fill color to communicate that an action or validation has failed on an item. Use for charts.",
868
+ "value": "{color.palette.red.base}",
869
+ "$type": "color"
870
+ },
871
+ "name": "ColorUiTailwindTextColorStatusFailedFill",
872
+ "attributes": {
873
+ "category": "color",
874
+ "type": "ui-tailwind",
875
+ "item": "textColor",
876
+ "subitem": "status",
877
+ "state": "failed"
878
+ },
879
+ "path": [
880
+ "color",
881
+ "ui-tailwind",
882
+ "textColor",
883
+ "status",
884
+ "failed",
885
+ "fill"
886
+ ]
887
+ },
804
888
  "icon": {
805
889
  "$description": "Icon color to communicate that an action or validation has failed on an item.",
806
890
  "value": "#e52222",
@@ -859,6 +943,34 @@ module.exports = {
859
943
  "DEFAULT"
860
944
  ]
861
945
  },
946
+ "fill": {
947
+ "$description": "Fill color to communicate that an action has completed, or something has been added. Use for charts.",
948
+ "value": "#228b22",
949
+ "$type": "color",
950
+ "filePath": "tokens/src/color/color.ui-tailwind.json",
951
+ "isSource": true,
952
+ "original": {
953
+ "$description": "Fill color to communicate that an action has completed, or something has been added. Use for charts.",
954
+ "value": "{color.palette.green.base}",
955
+ "$type": "color"
956
+ },
957
+ "name": "ColorUiTailwindTextColorStatusCompleteFill",
958
+ "attributes": {
959
+ "category": "color",
960
+ "type": "ui-tailwind",
961
+ "item": "textColor",
962
+ "subitem": "status",
963
+ "state": "complete"
964
+ },
965
+ "path": [
966
+ "color",
967
+ "ui-tailwind",
968
+ "textColor",
969
+ "status",
970
+ "complete",
971
+ "fill"
972
+ ]
973
+ },
862
974
  "icon": {
863
975
  "$description": "Icon color to communicate that an action has completed, or something has been added.",
864
976
  "value": "#228b22",
@@ -917,6 +1029,34 @@ module.exports = {
917
1029
  "DEFAULT"
918
1030
  ]
919
1031
  },
1032
+ "fill": {
1033
+ "$description": "Fill color to communicate neutral or unknown status. Use for charts.",
1034
+ "value": "#757575",
1035
+ "$type": "color",
1036
+ "filePath": "tokens/src/color/color.ui-tailwind.json",
1037
+ "isSource": true,
1038
+ "original": {
1039
+ "$description": "Fill color to communicate neutral or unknown status. Use for charts.",
1040
+ "value": "{color.palette.neutral.base}",
1041
+ "$type": "color"
1042
+ },
1043
+ "name": "ColorUiTailwindTextColorStatusNeutralFill",
1044
+ "attributes": {
1045
+ "category": "color",
1046
+ "type": "ui-tailwind",
1047
+ "item": "textColor",
1048
+ "subitem": "status",
1049
+ "state": "neutral"
1050
+ },
1051
+ "path": [
1052
+ "color",
1053
+ "ui-tailwind",
1054
+ "textColor",
1055
+ "status",
1056
+ "neutral",
1057
+ "fill"
1058
+ ]
1059
+ },
920
1060
  "icon": {
921
1061
  "$description": "Icon color to communicate neutral or unknown status.",
922
1062
  "value": "#757575",