@poirazis/supercomponents-shared 1.1.8 → 1.2.1

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 (51) hide show
  1. package/dist/index.js +21180 -40125
  2. package/dist/index.umd.cjs +19 -26
  3. package/dist/style.css +1 -1
  4. package/package.json +5 -5
  5. package/src/index.js +4 -0
  6. package/src/index.ts +3 -0
  7. package/src/lib/Actions/index.js +3 -3
  8. package/src/lib/Actions/position_dropdown.js +14 -7
  9. package/src/lib/SuperButton/SuperButton.svelte +34 -3
  10. package/src/lib/SuperField/SuperField.svelte +0 -11
  11. package/src/lib/SuperForm/InnerForm.svelte +1 -1
  12. package/src/lib/SuperList/SuperList.svelte +2 -2
  13. package/src/lib/SuperList/drag-handle.svelte +8 -8
  14. package/src/lib/SuperPopover/SuperPopover.svelte +2 -2
  15. package/src/lib/SuperTable/SuperTable.css +8 -3
  16. package/src/lib/SuperTable/SuperTable.svelte +3 -3
  17. package/src/lib/SuperTable/controls/PaginationLimitOffset.svelte +2 -0
  18. package/src/lib/SuperTable/controls/SelectionColumn.svelte +18 -49
  19. package/src/lib/SuperTable/controls/SuperTableWelcome.svelte +1 -1
  20. package/src/lib/SuperTable/overlays/AddNewRowOverlay.svelte +3 -3
  21. package/src/lib/SuperTable/overlays/EmptyResultSetOverlay.svelte +1 -1
  22. package/src/lib/SuperTable/overlays/ScrollbarsOverlay.svelte +43 -43
  23. package/src/lib/SuperTableCells/CellAttachmentExpanded.svelte +1 -1
  24. package/src/lib/SuperTableCells/CellAttachmentSlider.svelte +2 -3
  25. package/src/lib/SuperTableCells/CellBoolean.svelte +1 -1
  26. package/src/lib/SuperTableCells/CellColor.svelte +7 -7
  27. package/src/lib/SuperTableCells/CellCommon.css +1 -1
  28. package/src/lib/SuperTableCells/CellIcon.svelte +7 -7
  29. package/src/lib/SuperTableCells/CellJSON.svelte +2 -2
  30. package/src/lib/SuperTableCells/CellLink.svelte +50 -43
  31. package/src/lib/SuperTableCells/CellLinkAdvanced.svelte +2 -16
  32. package/src/lib/SuperTableCells/CellLinkPickerSelect.svelte +10 -11
  33. package/src/lib/SuperTableCells/CellLinkPickerTree.svelte +4 -2
  34. package/src/lib/SuperTableCells/CellNumber.svelte +24 -5
  35. package/src/lib/SuperTableCells/CellOptions.svelte +20 -34
  36. package/src/lib/SuperTableCells/CellOptionsAdvanced.svelte +5 -5
  37. package/src/lib/SuperTableCells/CellSQLLink.svelte +24 -36
  38. package/src/lib/SuperTableCells/CellSQLLinkPicker.svelte +9 -9
  39. package/src/lib/SuperTableCells/CellString.svelte +3 -3
  40. package/src/lib/SuperTableCells/CellStringMask.svelte +1 -1
  41. package/src/lib/SuperTableCells/CellTags.svelte +151 -108
  42. package/src/lib/SuperTableCells/JSDOC_GUIDE.md +163 -3
  43. package/src/lib/SuperTableCells/types.js +141 -192
  44. package/src/lib/SuperTableColumn/SuperTableColumn.svelte +1 -1
  45. package/src/lib/SuperTableColumn/parts/SuperColumnHeader.svelte +2 -2
  46. package/src/lib/SuperTableColumn/parts/SuperColumnRow.svelte +5 -3
  47. package/src/lib/SuperTabs/SuperTabs.svelte +2 -2
  48. package/src/lib/SuperTree/SuperTree.svelte +84 -38
  49. package/src/lib/UI/elements/Checkbox.svelte +36 -6
  50. package/src/lib/UI/elements/IconButton.svelte +115 -0
  51. package/src/lib/UI/elements/Tooltip.svelte +65 -0
@@ -69,9 +69,6 @@
69
69
 
70
70
  &.multirow {
71
71
  max-height: var(--height);
72
- & > .inline-cells.inline-buttons {
73
- flex-direction: column;
74
- }
75
72
  }
76
73
 
77
74
  &.left-label {
@@ -82,9 +79,6 @@
82
79
  &.tall {
83
80
  height: 100%;
84
81
  justify-content: stretch;
85
- & > .inline-cells > .inline-buttons {
86
- flex-direction: column;
87
- }
88
82
  }
89
83
 
90
84
  &.tall.left-label {
@@ -111,11 +105,6 @@
111
105
  align-items: stretch;
112
106
  justify-content: flex;
113
107
  }
114
-
115
- & > .inline-buttons {
116
- display: flex;
117
- padding-left: 0.5rem;
118
- }
119
108
  }
120
109
 
121
110
  .superlabel {
@@ -41,7 +41,7 @@
41
41
  export let disabled: boolean = false;
42
42
  export let readonly: boolean = false;
43
43
  export let initialValues: Record<string, any> | undefined = undefined;
44
- export let size: "Medium" | "Large" | undefined = undefined;
44
+ export const size: "Medium" | "Large" | undefined = undefined;
45
45
  export let schema: TableSchema | undefined = undefined;
46
46
  export let definition: Table | undefined = undefined;
47
47
  export let disableSchemaValidation: boolean = false;
@@ -150,14 +150,14 @@
150
150
  class:showColors
151
151
  style:--option-color={itemsColors[draggableItem.item]}
152
152
  >
153
- <i class="ri-checkbox-blank-fill" />
153
+ <i class="ri-checkbox-blank-fill"></i>
154
154
  <span>{itemsLabels[draggableItem.item] || draggableItem.item}</span>
155
155
  </div>
156
156
  {#if !reorderOnly && inEdit}
157
157
  <i
158
158
  class="ph ph-trash-simple"
159
159
  on:mousedown|preventDefault={() => removeItem(draggableItem.id)}
160
- />
160
+ ></i>
161
161
  {/if}
162
162
  </li>
163
163
  {/each}
@@ -6,26 +6,26 @@
6
6
  >
7
7
  <path
8
8
  d="m1,11c0.55228,0 1,-0.4477 1,-1c0,-0.5523 -0.44772,-1 -1,-1c-0.55228,0 -1,0.4477 -1,1c0,0.5523 0.44772,1 1,1z"
9
- />
9
+ ></p>
10
10
  <path
11
11
  d="m1,8c0.55228,0 1,-0.4477 1,-1c0,-0.55228 -0.44772,-1 -1,-1c-0.55228,0 -1,0.44772 -1,1c0,0.5523 0.44772,1 1,1z"
12
- />
12
+ ></p>
13
13
  <path
14
14
  d="m1,5c0.55228,0 1,-0.44772 1,-1c0,-0.55228 -0.44772,-1 -1,-1c-0.55228,0 -1,0.44772 -1,1c0,0.55228 0.44772,1 1,1z"
15
- />
15
+ ></p>
16
16
  <path
17
17
  d="m1,2c0.55228,0 1,-0.44772 1,-1c0,-0.55228 -0.44772,-1 -1,-1c-0.55228,0 -1,0.44772 -1,1c0,0.55228 0.44772,1 1,1z"
18
- />
18
+ ></p>
19
19
  <path
20
20
  d="m4,11c0.5523,0 1,-0.4477 1,-1c0,-0.5523 -0.4477,-1 -1,-1c-0.55228,0 -1,0.4477 -1,1c0,0.5523 0.44772,1 1,1z"
21
- />
21
+ ></p>
22
22
  <path
23
23
  d="m4,8c0.5523,0 1,-0.4477 1,-1c0,-0.55228 -0.4477,-1 -1,-1c-0.55228,0 -1,0.44772 -1,1c0,0.5523 0.44772,1 1,1z"
24
- />
24
+ ></p>
25
25
  <path
26
26
  d="m4,5c0.5523,0 1,-0.44772 1,-1c0,-0.55228 -0.4477,-1 -1,-1c-0.55228,0 -1,0.44772 -1,1c0,0.55228 0.44772,1 1,1z"
27
- />
27
+ ></p>
28
28
  <path
29
29
  d="m4,2c0.5523,0 1,-0.44772 1,-1c0,-0.55228 -0.4477,-1 -1,-1c-0.55228,0 -1,0.44772 -1,1c0,0.55228 0.44772,1 1,1z"
30
- />
30
+ ></p>
31
31
  </svg>
@@ -1,5 +1,5 @@
1
1
  <script>
2
- import Portal from "svelte-portal";
2
+ import { Portal } from "@jsrob/svelte-portal";
3
3
  import { createEventDispatcher } from "svelte";
4
4
  import positionDropdown from "../Actions/position_dropdown";
5
5
  import clickOutside from "../Actions/click_outside";
@@ -53,7 +53,7 @@
53
53
  };
54
54
 
55
55
  export const hasFocus = () => {
56
- return viewport.matches(":focus-within");
56
+ return viewport?.matches(":focus-within");
57
57
  };
58
58
 
59
59
  const handleOutsideClick = (e) => {
@@ -135,10 +135,10 @@
135
135
  }
136
136
  }
137
137
 
138
- .super-column-header,
139
- .control-column-header {
138
+ .super-column-header {
140
139
  display: flex;
141
140
  align-items: center;
141
+ justify-content: flex-start;
142
142
  background: var(--spectrum-global-color-gray-100);
143
143
  border-bottom: 1px solid var(--spectrum-global-color-gray-200);
144
144
  height: var(--super-table-header-height);
@@ -170,7 +170,12 @@
170
170
  }
171
171
 
172
172
  .control-column-header {
173
- justify-content: flex-end;
173
+ display: flex;
174
+ align-items: center;
175
+ justify-content: flex-start;
176
+ background: var(--spectrum-global-color-gray-100);
177
+ border-bottom: 1px solid var(--spectrum-global-color-gray-200);
178
+ min-height: var(--super-table-header-height);
174
179
  padding: 0 0.75rem;
175
180
  gap: 1rem;
176
181
 
@@ -15,6 +15,7 @@
15
15
  supportSortingMap,
16
16
  supportEditingMap,
17
17
  } from "./constants.js";
18
+ import "./SuperTable.css";
18
19
 
19
20
  // Overlays
20
21
  import ScrollbarsOverlay from "./overlays/ScrollbarsOverlay.svelte";
@@ -724,8 +725,6 @@
724
725
  confirmText:
725
726
  "Are you sure you want to delete this " +
726
727
  (entitySingular || "Row") +
727
- "ID" +
728
- id +
729
728
  " ?",
730
729
  tableId: tableId,
731
730
  rowId: id,
@@ -898,8 +897,9 @@
898
897
  if (fetchState?.definition?.primary?.length === 1)
899
898
  return fetchState.definition.primary[0];
900
899
  const schema = fetchState?.definition?.schema || fetchState?.schema || {};
900
+
901
901
  if ("id" in schema) return "id";
902
- if ("_id" in schema) return "_id";
902
+ if ("_id" in schema || $dataSourceStore.type == "viewV2") return "_id";
903
903
  return null;
904
904
  },
905
905
  loadPreSelections: (ids) => {
@@ -9,6 +9,7 @@
9
9
  export let fetch = null;
10
10
 
11
11
  $: valid = hasParams($dataSource) && pagination === "limitOffset";
12
+ $: currentOffset = $dataSource?.queryParams?.offset || 0;
12
13
 
13
14
  $: currentPage = Math.floor(currentOffset / limit) + 1;
14
15
  $: hasMorePages = $fetch?.rows?.length >= limit;
@@ -56,6 +57,7 @@
56
57
  <div class="pagination-controls">
57
58
  <button
58
59
  class="pagination-btn"
60
+ style:margin-right="-0.25rem"
59
61
  on:click={goToFirst}
60
62
  disabled={currentPage <= 1}
61
63
  title="First Page"
@@ -2,6 +2,7 @@
2
2
  import { getContext } from "svelte";
3
3
 
4
4
  import Checkbox from "../../UI/elements/Checkbox.svelte";
5
+ import IconButton from "../..//UI/elements/IconButton.svelte";
5
6
 
6
7
  const stbState = getContext("stbState");
7
8
  const stbSettings = getContext("stbSettings");
@@ -54,15 +55,15 @@
54
55
  />
55
56
  {/if}
56
57
 
57
- {#if canDelete}
58
- {#if $stbSelected.length}
59
- <i
60
- class="ri-delete-bin-line delete"
61
- on:click={stbAPI.deleteSelectedRows}
62
- />
63
- {:else}
64
- <i class="ri-delete-bin-line disabled" />
65
- {/if}
58
+ {#if canDelete && $stbSelected.length > 1}
59
+ <IconButton
60
+ icon="trash"
61
+ size="small"
62
+ variant="warning"
63
+ disabled={$stbSelected.length == 0}
64
+ tooltip="Delete Selected Rows"
65
+ on:click={stbAPI.deleteSelectedRows}
66
+ />
66
67
  {/if}
67
68
  </div>
68
69
  {/if}
@@ -96,15 +97,19 @@
96
97
  <Checkbox
97
98
  checked={selected}
98
99
  disabled={$stbRowMetadata[visibleRow]?.disabled}
100
+ hovered={$stbHovered == visibleRow}
99
101
  on:change={() => stbAPI.selectRow(visibleRow)}
100
102
  />
101
103
  {/if}
102
104
 
103
105
  {#if canDelete}
104
- <i
105
- class="ri-delete-bin-line delete"
106
- class:selected
107
- on:click={(e) => stbAPI.deleteRow(visibleRow)}
106
+ <IconButton
107
+ icon="trash"
108
+ size="small"
109
+ variant="warning"
110
+ disabled={$stbRowMetadata[visibleRow]?.disabled}
111
+ tooltip="Delete Row"
112
+ on:click={() => stbAPI.deleteRow(visibleRow)}
108
113
  />
109
114
  {/if}
110
115
  </div>
@@ -130,41 +135,5 @@
130
135
  font-size: 13px;
131
136
  font-weight: 500;
132
137
  align-items: center;
133
- &.is-hovered > .delete {
134
- color: var(--spectrum-global-color-red-700) !important;
135
- }
136
- &.is-selected > .delete {
137
- color: var(--spectrum-global-color-red-400);
138
- }
139
- &.is-hovered > i:not(.delete) {
140
- color: var(--spectrum-global-color-gray-700);
141
- }
142
- }
143
-
144
- i {
145
- font-size: 14px;
146
- color: var(--spectrum-global-color-gray-500);
147
-
148
- &.disabled {
149
- color: var(--spectrum-global-color-gray-100);
150
- }
151
-
152
- &.delete {
153
- &.selected {
154
- color: var(--spectrum-global-color-red-400);
155
- }
156
-
157
- &:hover {
158
- color: var(--spectrum-global-color-red-700);
159
- }
160
- }
161
-
162
- &.full {
163
- color: var(--spectrum-global-color-gray-900);
164
- }
165
-
166
- &:hover:not(.disabled) {
167
- cursor: pointer;
168
- }
169
138
  }
170
139
  </style>
@@ -27,7 +27,7 @@
27
27
  /><path
28
28
  class="fill"
29
29
  d="M16.5,1H1.5a.5.5,0,0,0-.5.5v15a.5.5,0,0,0,.5.5h15a.5.5,0,0,0,.5-.5V1.5A.5.5,0,0,0,16.5,1ZM6,16H2V14H6Zm0-3H2V11H6Zm0-3H2V8H6Zm10,6H7V14h9Zm0-3H7V11h9Zm0-3H7V8h9Zm0-3H2V2H16Z"
30
- />
30
+ ></p>
31
31
  </svg>
32
32
  </div>
33
33
 
@@ -31,9 +31,9 @@
31
31
  on:click={tableAPI.insertRow}
32
32
  >
33
33
  {#if $stbState == "Saving"}
34
- <i class="ri-loader-2-line" />
34
+ <i class="ri-loader-2-line"></i>
35
35
  {:else}
36
- <i class="ri-save-fill"> </i>
36
+ <i class="ri-save-fill"></i>
37
37
  {/if}
38
38
  </div>
39
39
  {/if}
@@ -47,6 +47,6 @@
47
47
  class:footer
48
48
  on:click={stbState.clear()}
49
49
  >
50
- <i class="ri-filter-off-line" />
50
+ <i class="ri-filter-off-line"></i>
51
51
  </div>
52
52
  {/if}
@@ -7,7 +7,7 @@
7
7
 
8
8
  {#if isEmpty}
9
9
  <div class="emptyTable" style:top style:bottom>
10
- <i class="ri-search-line" />
10
+ <i class="ri-search-line"></i>
11
11
  {message}
12
12
  </div>
13
13
  {/if}
@@ -28,7 +28,6 @@
28
28
  let mouseoffset = 0;
29
29
  let width;
30
30
  let left;
31
- let localWidth;
32
31
 
33
32
  // Positioning Offsets
34
33
  $: verticalTopOffset = $stbSettings.appearance.headerHeight + 8 + "px";
@@ -91,50 +90,47 @@
91
90
  : () => {}}
92
91
  />
93
92
 
94
- {#if verticalRange}
95
- <div
96
- class="stb-scrollbar"
97
- class:highlighted
98
- style:--offset={verticalTopOffset}
99
- style:--bottomOffset={verticalBottomOffset}
100
- >
101
- <!-- svelte-ignore a11y-no-static-element-interactions -->
102
- <div
103
- class="stb-scrollbar-indicator"
104
- class:dragging
105
- style:top
106
- style:height
107
- on:mousedown|self={(e) => {
108
- dragging = true;
109
- startPos = e.clientY;
110
- startScrollPos = $stbScrollPos;
111
- }}
112
- />
113
- </div>
114
- {/if}
115
-
116
- {#if horizontalRange}
93
+ <div
94
+ class="stb-scrollbar"
95
+ class:hidden={!verticalRange}
96
+ class:highlighted={highlighted || dragging}
97
+ style:--offset={verticalTopOffset}
98
+ style:--bottomOffset={verticalBottomOffset}
99
+ >
117
100
  <!-- svelte-ignore a11y-no-static-element-interactions -->
118
101
  <div
119
- bind:clientWidth={localWidth}
120
- class="stb-scrollbar horizontal"
121
- class:highlighted
122
- style:--horizontalOffset={horizontalOffset}
123
- style:--horizontalBottomOffset={horizontalBotttomOffset}
124
- >
125
- <div
126
- class="stb-scrollbar-indicator horizontal"
127
- style:left
128
- style:width
129
- class:dragging={horizontalDragging}
130
- on:mousedown|self={(e) => {
131
- horizontalDragging = true;
132
- horizontalStartPos = e.clientX;
133
- startScrollPos = $stbHorizontalScrollPos;
134
- }}
135
- />
136
- </div>
137
- {/if}
102
+ class="stb-scrollbar-indicator"
103
+ class:dragging
104
+ style:top
105
+ style:height
106
+ on:mousedown|stopPropagation|preventDefault={(e) => {
107
+ dragging = true;
108
+ startPos = e.clientY;
109
+ startScrollPos = $stbScrollPos;
110
+ }}
111
+ ></div>
112
+ </div>
113
+
114
+ <!-- svelte-ignore a11y-no-static-element-interactions -->
115
+ <div
116
+ class="stb-scrollbar horizontal"
117
+ class:hidden={!horizontalRange}
118
+ class:highlighted={highlighted || horizontalDragging}
119
+ style:--horizontalOffset={horizontalOffset}
120
+ style:--horizontalBottomOffset={horizontalBotttomOffset}
121
+ >
122
+ <div
123
+ class="stb-scrollbar-indicator horizontal"
124
+ style:left
125
+ style:width
126
+ class:dragging={horizontalDragging}
127
+ on:mousedown|stopPropagation|preventDefault={(e) => {
128
+ horizontalDragging = true;
129
+ horizontalStartPos = e.clientX;
130
+ startScrollPos = $stbHorizontalScrollPos;
131
+ }}
132
+ ></div>
133
+ </div>
138
134
 
139
135
  <style>
140
136
  .stb-scrollbar {
@@ -150,6 +146,10 @@
150
146
  overflow: hidden;
151
147
  }
152
148
 
149
+ .stb-scrollbar.hidden {
150
+ display: none;
151
+ }
152
+
153
153
  .stb-scrollbar.horizontal {
154
154
  top: unset;
155
155
  bottom: var(--horizontalBottomOffset);
@@ -9,7 +9,7 @@
9
9
  export let fieldSchema: any;
10
10
  export let tableid: string;
11
11
  export let API;
12
- export let height = "auto";
12
+ export const height = "auto";
13
13
  export let inBuilder;
14
14
 
15
15
  const dispatch = createEventDispatcher();
@@ -12,7 +12,6 @@
12
12
  export let tableid: string;
13
13
  export let API;
14
14
  export let inBuilder;
15
- export let height;
16
15
 
17
16
  const dispatch = createEventDispatcher();
18
17
 
@@ -244,7 +243,7 @@
244
243
  on:click={showPrevPage}
245
244
  class="slider-navbutton"
246
245
  >
247
- <i class="ph ph-caret-left" />
246
+ <i class="ph ph-caret-left"></i>
248
247
  </div>
249
248
  {#each localvalue as attachment, idx (idx)}
250
249
  <div
@@ -284,7 +283,7 @@
284
283
  on:click={showNextPage}
285
284
  class="slider-navbutton"
286
285
  >
287
- <i class="ph ph-caret-right" />
286
+ <i class="ph ph-caret-right"></i>
288
287
  </div>
289
288
  </Carousel>
290
289
  {/key}
@@ -108,7 +108,7 @@
108
108
  on:change={cellState.change}
109
109
  use:focus
110
110
  />
111
- <span class="spectrum-Switch-switch" />
111
+ <span class="spectrum-Switch-switch"></span>
112
112
  {#if inlineLabel}
113
113
  <span class="spectrum-Switch-label">{inlineLabel}</span>
114
114
  {/if}
@@ -6,8 +6,7 @@
6
6
  export let size = "M";
7
7
  export let spectrumTheme;
8
8
  export let offset;
9
- export let align;
10
- export let cellState;
9
+
11
10
  export let cellOptions = {};
12
11
 
13
12
  let open = false;
@@ -213,7 +212,7 @@
213
212
  class:circle
214
213
  style={value ? `background: ${value};` : ""}
215
214
  class:placeholder={!value}
216
- />
215
+ ></div>
217
216
  </div>
218
217
 
219
218
  {#if inEdit}
@@ -238,7 +237,7 @@
238
237
  style="background: var(--spectrum-global-color-{color});"
239
238
  >
240
239
  {#if value === `var(--spectrum-global-color-${color})`}
241
- <i class="ri-check-line" style="color: {checkColor};" />
240
+ <i class="ri-check-line" style="color: {checkColor};"></i>
242
241
  {/if}
243
242
  </div>
244
243
  </div>
@@ -249,7 +248,7 @@
249
248
  {#if customCategory.colors.length > 0}
250
249
  <div class="category">
251
250
  <div class="heading">
252
- <i class="ri-palette-line heading-icon" />
251
+ <i class="ri-palette-line heading-icon"></i>
253
252
  {customCategory.label}
254
253
  </div>
255
254
  <div class="colors">
@@ -267,7 +266,7 @@
267
266
  style="background: {color};"
268
267
  >
269
268
  {#if value === color}
270
- <i class="ri-check-line" style="color: {checkColor};" />
269
+ <i class="ri-check-line" style="color: {checkColor};"></i>
271
270
  {/if}
272
271
  </div>
273
272
  </div>
@@ -288,8 +287,9 @@
288
287
  }}
289
288
  placeholder="Enter custom color"
290
289
  />
290
+ <!-- svelte-ignore a11y_consider_explicit_label -->
291
291
  <button class="clear-value" on:click={() => onChange(null)}>
292
- <i class="ri-close-line" />
292
+ <i class="ri-close-line"></i>
293
293
  </button>
294
294
  </div>
295
295
  </div>
@@ -412,7 +412,7 @@
412
412
  transition: all 130ms;
413
413
  }
414
414
 
415
- .superCell.inline:hover:not(.disabled):not(.readonly) {
415
+ .superCell.inline:hover:not(.disabled):not(.readonly):not(.inEdit) {
416
416
  background-color: var(--spectrum-global-color-gray-50);
417
417
  border: 1px solid var(--spectrum-global-color-gray-300);
418
418
  cursor: pointer;
@@ -153,10 +153,10 @@
153
153
  aria-label="Select icon"
154
154
  >
155
155
  {#if value}
156
- <i class="ph ph-{iconName}" />
156
+ <i class="ph ph-{iconName}"></i>
157
157
  {:else}
158
158
  <div class="empty-state">
159
- <i class="ph ph-image" />
159
+ <i class="ph ph-image"></i>
160
160
  </div>
161
161
  {/if}
162
162
  </div>
@@ -188,7 +188,7 @@
188
188
  </div>
189
189
  {/if}
190
190
  <div class="search-container">
191
- <i class="ph ph-magnifying-glass search-icon" />
191
+ <i class="ph ph-magnifying-glass search-icon"></i>
192
192
  <input
193
193
  type="text"
194
194
  bind:value={searchQuery}
@@ -202,7 +202,7 @@
202
202
  on:click={() => (searchQuery = "")}
203
203
  aria-label="Clear search"
204
204
  >
205
- <i class="ph ph-x" />
205
+ <i class="ph ph-x"></i>
206
206
  </button>
207
207
  {/if}
208
208
  </div>
@@ -231,14 +231,14 @@
231
231
  aria-label={`Select ${icon} icon`}
232
232
  tabindex="0"
233
233
  >
234
- <i class="ph ph-{icon}" />
234
+ <i class="ph ph-{icon}"></i>
235
235
  </button>
236
236
  {/each}
237
237
  </div>
238
238
  </VirtualList>
239
239
  {:else}
240
240
  <div class="no-results">
241
- <i class="ph ph-magnifying-glass" />
241
+ <i class="ph ph-magnifying-glass"></i>
242
242
  <p>No icons found</p>
243
243
  </div>
244
244
  {/if}
@@ -247,7 +247,7 @@
247
247
  <div class="footer">
248
248
  {#if value}
249
249
  <button class="clear-button" on:click={clearSelection}>
250
- <i class="ph ph-x" /> Clear
250
+ <i class="ph ph-x"></i> Clear
251
251
  </button>
252
252
  {/if}
253
253
  </div>
@@ -202,7 +202,7 @@
202
202
  on:focusout={cellState.focusout}
203
203
  on:keydown={cellState.handleKeyboard}
204
204
  use:focus
205
- />
205
+ ></textarea>
206
206
  {:else}
207
207
  <input
208
208
  bind:this={editor}
@@ -230,7 +230,7 @@
230
230
  <i
231
231
  class="ri-close-line clearIcon"
232
232
  on:mousedown|self|preventDefault={cellState.clear}
233
- />
233
+ ></i>
234
234
  {/if}
235
235
  {:else}
236
236
  <div