@bagelink/vue 1.2.20 → 1.2.22

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.
package/dist/style.css CHANGED
@@ -1108,10 +1108,11 @@ fieldset[data-v-f7e758e5] {
1108
1108
  .fi[data-v-f99f1900]:before{ content:" "
1109
1109
  }
1110
1110
 
1111
- .bgl-multi-step-form[data-v-4ead8342] {
1111
+ .bgl-multi-step-form[data-v-06c34cf2] {
1112
1112
  display: flex;
1113
1113
  flex-direction: column;
1114
1114
  gap: 1rem;
1115
+ width: 100%;
1115
1116
  /* Default transition duration */
1116
1117
  --transition-duration: 200ms;
1117
1118
  --move-distance: 35%;
@@ -1120,19 +1121,19 @@ fieldset[data-v-f7e758e5] {
1120
1121
  /* --ease-in: cubic-bezier(0.42, 0, 0.58, 1); */
1121
1122
  /* --ease-out: cubic-bezier(0.5, 0, 0.75, 0); */
1122
1123
  }
1123
- .bgl-steps-indicator[data-v-4ead8342] {
1124
+ .bgl-steps-indicator[data-v-06c34cf2] {
1124
1125
  display: flex;
1125
1126
  justify-content: space-between;
1126
1127
  align-items: center;
1127
1128
  margin-bottom: 1rem;
1128
1129
  }
1129
- .bgl-step-indicator[data-v-4ead8342] {
1130
+ .bgl-step-indicator[data-v-06c34cf2] {
1130
1131
  display: flex;
1131
1132
  flex-direction: column;
1132
1133
  align-items: center;
1133
1134
  position: relative;
1134
1135
  }
1135
- .bgl-step-indicator[data-v-4ead8342]::before {
1136
+ .bgl-step-indicator[data-v-06c34cf2]::before {
1136
1137
  content: '';
1137
1138
  position: absolute;
1138
1139
  top: 50%;
@@ -1142,10 +1143,10 @@ fieldset[data-v-f7e758e5] {
1142
1143
  background: #e0e0e0;
1143
1144
  z-index: -1;
1144
1145
  }
1145
- .bgl-step-indicator[data-v-4ead8342]:first-child::before {
1146
+ .bgl-step-indicator[data-v-06c34cf2]:first-child::before {
1146
1147
  display: none;
1147
1148
  }
1148
- .bgl-step-indicator > span[data-v-4ead8342]:first-child {
1149
+ .bgl-step-indicator > span[data-v-06c34cf2]:first-child {
1149
1150
  width: 30px;
1150
1151
  height: 30px;
1151
1152
  border-radius: 50%;
@@ -1156,23 +1157,23 @@ fieldset[data-v-f7e758e5] {
1156
1157
  justify-content: center;
1157
1158
  margin-bottom: 0.5rem;
1158
1159
  }
1159
- .bgl-step-indicator.active > span[data-v-4ead8342]:first-child {
1160
+ .bgl-step-indicator.active > span[data-v-06c34cf2]:first-child {
1160
1161
  background: var(--primary-color, #4CAF50);
1161
1162
  color: white;
1162
1163
  }
1163
- .bgl-step-indicator.completed > span[data-v-4ead8342]:first-child {
1164
+ .bgl-step-indicator.completed > span[data-v-06c34cf2]:first-child {
1164
1165
  background: var(--success-color, #8BC34A);
1165
1166
  color: white;
1166
1167
  }
1167
- .bgl-step-indicator.clickable[data-v-4ead8342] {
1168
+ .bgl-step-indicator.clickable[data-v-06c34cf2] {
1168
1169
  cursor: pointer;
1169
1170
  }
1170
- .bgl-step-label[data-v-4ead8342] {
1171
+ .bgl-step-label[data-v-06c34cf2] {
1171
1172
  font-size: 0.8rem;
1172
1173
  max-width: 100px;
1173
1174
  text-align: center;
1174
1175
  }
1175
- .bgl-form-wrapper[data-v-4ead8342] {
1176
+ .bgl-form-wrapper[data-v-06c34cf2] {
1176
1177
  display: grid;
1177
1178
  overflow: clip;
1178
1179
  height: auto;
@@ -1180,15 +1181,15 @@ fieldset[data-v-f7e758e5] {
1180
1181
  transition: height var(--transition-duration) ease;
1181
1182
  interpolate-size: allow-keywords;
1182
1183
  }
1183
- .bgl-form-wrapper > div[data-v-4ead8342] {
1184
+ .bgl-form-wrapper > div[data-v-06c34cf2] {
1184
1185
  grid-area: 1 / 1;
1185
1186
  }
1186
- .bgl-form-container[data-v-4ead8342] {
1187
+ .bgl-form-container[data-v-06c34cf2] {
1187
1188
  width: 100%;
1188
1189
  display: flex;
1189
1190
  flex-direction: column;
1190
1191
  }
1191
- .bgl-step-controls[data-v-4ead8342] {
1192
+ .bgl-step-controls[data-v-06c34cf2] {
1192
1193
  display: flex;
1193
1194
  justify-content: center;
1194
1195
  gap: 1rem;
@@ -1196,34 +1197,34 @@ fieldset[data-v-f7e758e5] {
1196
1197
  }
1197
1198
 
1198
1199
  /* Slide Left Animation (going forward) */
1199
- .slide-left-enter-active[data-v-4ead8342] {
1200
+ .slide-left-enter-active[data-v-06c34cf2] {
1200
1201
  transition: opacity, transform calc(var(--transition-duration) * 1.2) var(--ease-in);
1201
1202
  }
1202
- .slide-left-leave-active[data-v-4ead8342] {
1203
+ .slide-left-leave-active[data-v-06c34cf2] {
1203
1204
  transition: opacity, transform var(--transition-duration) var(--ease-out);
1204
1205
  }
1205
- .slide-left-enter-from[data-v-4ead8342] {
1206
+ .slide-left-enter-from[data-v-06c34cf2] {
1206
1207
  opacity: 0;
1207
1208
  transform: translateX(var(--move-distance));
1208
1209
  }
1209
- .slide-left-leave-to[data-v-4ead8342] {
1210
+ .slide-left-leave-to[data-v-06c34cf2] {
1210
1211
  opacity: 0;
1211
1212
  transform: translateX(-30%);
1212
1213
  }
1213
1214
 
1214
1215
  /* Slide Right Animation (going back) */
1215
- .slide-right-enter-active[data-v-4ead8342] {
1216
+ .slide-right-enter-active[data-v-06c34cf2] {
1216
1217
  transition: all calc(var(--transition-duration) * 1.2) var(--ease-in);
1217
1218
  }
1218
- .slide-right-leave-active[data-v-4ead8342] {
1219
+ .slide-right-leave-active[data-v-06c34cf2] {
1219
1220
  transition: all var(--transition-duration) var(--ease-out);
1220
1221
  transition-property: opacity, transform;
1221
1222
  }
1222
- .slide-right-enter-from[data-v-4ead8342] {
1223
+ .slide-right-enter-from[data-v-06c34cf2] {
1223
1224
  opacity: 0;
1224
1225
  transform: translateX(-30%);
1225
1226
  }
1226
- .slide-right-leave-to[data-v-4ead8342] {
1227
+ .slide-right-leave-to[data-v-06c34cf2] {
1227
1228
  opacity: 0;
1228
1229
  transform: translateX(var(--move-distance));
1229
1230
  }
@@ -2280,58 +2281,58 @@ input[type="range"][data-v-46e22f3e]:active::-webkit-slider-thumb {
2280
2281
  font-size: var(--label-font-size);
2281
2282
  }
2282
2283
 
2283
- .bagel-input textarea[data-v-6dfc73c3] {
2284
+ .bagel-input textarea[data-v-da1189c6] {
2284
2285
  min-height: unset;
2285
2286
  font-size: var(--input-font-size);
2286
2287
  }
2287
- .bagel-input.text-input textarea[data-v-6dfc73c3] {
2288
+ .bagel-input.text-input textarea[data-v-da1189c6] {
2288
2289
  resize: none;
2289
2290
  }
2290
- .code textarea[data-v-6dfc73c3] {
2291
+ .code textarea[data-v-da1189c6] {
2291
2292
  font-family: 'Inconsolata', monospace;
2292
2293
  background: var(--bgl-code-bg) !important;
2293
2294
  color: var(--bgl-light-text) !important;
2294
2295
  }
2295
- .code textarea[data-v-6dfc73c3]::placeholder {
2296
+ .code textarea[data-v-da1189c6]::placeholder {
2296
2297
  color: var(--bgl-light-text) !important;
2297
2298
  opacity: 0.3;
2298
2299
  }
2299
- .bagel-input.small[data-v-6dfc73c3] {
2300
+ .bagel-input.small[data-v-da1189c6] {
2300
2301
  margin-bottom: 0;
2301
2302
  height: 30px;
2302
2303
  }
2303
- .bagel-input.dense label[data-v-6dfc73c3] {
2304
+ .bagel-input.dense label[data-v-da1189c6] {
2304
2305
  display: flex;
2305
2306
  align-items: center;
2306
2307
  gap: 0.5rem;
2307
2308
  }
2308
- .bagel-input input[data-v-6dfc73c3]:disabled {
2309
+ .bagel-input input[data-v-da1189c6]:disabled {
2309
2310
  background: #f5f5f5;
2310
2311
  }
2311
- .bagel-input label[data-v-6dfc73c3] {
2312
+ .bagel-input label[data-v-da1189c6] {
2312
2313
  font-size: var(--label-font-size);
2313
2314
  }
2314
- .textInputIconWrap .bgl_icon-font[data-v-6dfc73c3] {
2315
+ .textInputIconWrap .bgl_icon-font[data-v-da1189c6] {
2315
2316
  color: var(--input-color);
2316
2317
  position: absolute;
2317
2318
  inset-inline-end:calc(var(--input-height) / 3 - 0.25rem);
2318
2319
  margin-top: calc(var(--input-height) / 2 + 0.1rem);
2319
2320
  line-height: 0;
2320
2321
  }
2321
- .textInputIconWrap input[data-v-6dfc73c3]{
2322
+ .textInputIconWrap input[data-v-da1189c6]{
2322
2323
  padding-inline-end: calc(var(--input-height) / 3 + 1.5rem);
2323
2324
  }
2324
- .txtInputIconStart .iconStart[data-v-6dfc73c3] {
2325
+ .txtInputIconStart .iconStart[data-v-da1189c6] {
2325
2326
  color: var(--input-color);
2326
2327
  position: absolute;
2327
2328
  inset-inline-start:calc(var(--input-height) / 3 - 0.25rem);
2328
2329
  margin-top: calc(var(--input-height) / 2 );
2329
2330
  line-height: 0;
2330
2331
  }
2331
- .txtInputIconStart input[data-v-6dfc73c3], .txtInputIconStart textarea[data-v-6dfc73c3]{
2332
+ .txtInputIconStart input[data-v-da1189c6], .txtInputIconStart textarea[data-v-da1189c6]{
2332
2333
  padding-inline-start: calc(var(--input-height) / 3 + 1.5rem);
2333
2334
  }
2334
- .bagel-input.small textarea[data-v-6dfc73c3] {
2335
+ .bagel-input.small textarea[data-v-da1189c6] {
2335
2336
  height: 30px;
2336
2337
  }
2337
2338
 
@@ -4284,20 +4285,25 @@ body:has(.bg-dark.is-active) {
4284
4285
  background: transparent;
4285
4286
  }
4286
4287
 
4287
- .fixed-columns[data-v-ad70b6cd] {
4288
+ .stickyTop[data-v-857ccb8b]{
4289
+ position: sticky;
4290
+ top: -0.125rem;
4291
+ z-index: 1;
4292
+ }
4293
+ .fixed-columns[data-v-857ccb8b] {
4288
4294
  border-right: 2px solid var(--border-color);
4289
4295
  }
4290
- table[data-v-ad70b6cd] {
4296
+ table[data-v-857ccb8b] {
4291
4297
  border-collapse: collapse;
4292
4298
  }
4293
- th[data-v-ad70b6cd], td[data-v-ad70b6cd] {
4299
+ th[data-v-857ccb8b], td[data-v-857ccb8b] {
4294
4300
  border: 1px solid var(--border-color);
4295
4301
  padding: 0.1rem 0.5rem;
4296
4302
  min-width: 80px;
4297
4303
  background: var(--bgl-white);
4298
4304
  user-select: none;
4299
4305
  }
4300
- th[data-v-ad70b6cd] {
4306
+ th[data-v-857ccb8b] {
4301
4307
  background: var(--input-bg);
4302
4308
  white-space: nowrap;
4303
4309
  position: relative;
@@ -4305,27 +4311,27 @@ th[data-v-ad70b6cd] {
4305
4311
  font-weight: 500;
4306
4312
  text-align: start;
4307
4313
  }
4308
- th .bgl_icon-font[data-v-ad70b6cd]{
4314
+ th .bgl_icon-font[data-v-857ccb8b]{
4309
4315
  vertical-align: middle;
4310
4316
  }
4311
- td.selected[data-v-ad70b6cd] {
4317
+ td.selected[data-v-857ccb8b] {
4312
4318
  background: var(--bgl-primary-light);
4313
4319
  }
4314
- td.locked[data-v-ad70b6cd] {
4320
+ td.locked[data-v-857ccb8b] {
4315
4321
  background: var(--bgl-gray-light);
4316
4322
  cursor: default;
4317
4323
  }
4318
- td.locked.selected[data-v-ad70b6cd] {
4324
+ td.locked.selected[data-v-857ccb8b] {
4319
4325
  background: var(--bgl-primary-light);
4320
4326
  }
4321
- td[data-v-ad70b6cd] {
4327
+ td[data-v-857ccb8b] {
4322
4328
  height: 40px;
4323
4329
  vertical-align: middle;
4324
4330
  }
4325
- td[data-v-ad70b6cd]:has(img){
4331
+ td[data-v-857ccb8b]:has(img){
4326
4332
  padding: 0;
4327
4333
  }
4328
- td span[data-v-ad70b6cd]{
4334
+ td span[data-v-857ccb8b]{
4329
4335
  display: block;
4330
4336
  display: -webkit-box;
4331
4337
  max-width: 100%;
@@ -4335,7 +4341,16 @@ td span[data-v-ad70b6cd]{
4335
4341
  -webkit-line-clamp: 1;
4336
4342
  word-break: break-all;
4337
4343
  }
4338
- input[data-v-ad70b6cd] {
4344
+ td.wrap-text[data-v-857ccb8b] {
4345
+ height: auto;
4346
+ min-height: 40px;
4347
+ }
4348
+ td.wrap-text span[data-v-857ccb8b] {
4349
+ white-space: normal;
4350
+ -webkit-line-clamp: unset;
4351
+ word-break: break-word;
4352
+ }
4353
+ input[data-v-857ccb8b] {
4339
4354
  width: 100%;
4340
4355
  border: none;
4341
4356
  background: transparent;
@@ -4344,45 +4359,45 @@ input[data-v-ad70b6cd] {
4344
4359
  min-height: 0;
4345
4360
  min-width: 0;
4346
4361
  }
4347
- input[data-v-ad70b6cd]:focus {
4362
+ input[data-v-857ccb8b]:focus {
4348
4363
  outline: 2px solid var(--bgl-primary);
4349
4364
  outline-offset: 6px;
4350
4365
  }
4351
- th.sortable[data-v-ad70b6cd] {
4366
+ th.sortable[data-v-857ccb8b] {
4352
4367
  cursor: pointer;
4353
4368
  }
4354
- .row-number-header[data-v-ad70b6cd], .row-number[data-v-ad70b6cd] {
4369
+ .row-number-header[data-v-857ccb8b], .row-number[data-v-857ccb8b] {
4355
4370
  width: fit-content;
4356
4371
  min-width: fit-content !important;
4357
4372
  padding: 0.1rem 0.7rem !important;
4358
4373
  }
4359
- td .bgl-checkbox[data-v-ad70b6cd]{
4374
+ td .bgl-checkbox[data-v-857ccb8b]{
4360
4375
  margin: 0;
4361
4376
  text-align: center;
4362
4377
  justify-content: center;
4363
4378
  }
4364
- td[data-v-ad70b6cd]:has(.bgl-checkbox){
4379
+ td[data-v-857ccb8b]:has(.bgl-checkbox){
4365
4380
  text-align: center;
4366
4381
  background: var(--input-bg);
4367
4382
  }
4368
- td[data-v-ad70b6cd]:has(:checked){
4383
+ td[data-v-857ccb8b]:has(:checked){
4369
4384
  background: var(--bgl-primary-light);
4370
4385
  }
4371
- .spreadsheetCellPlaceHolder[data-v-ad70b6cd]{
4386
+ .spreadsheetCellPlaceHolder[data-v-857ccb8b]{
4372
4387
  height: 0px;
4373
4388
  overflow: hidden;
4374
4389
  opacity: 0;
4375
4390
  pointer-events: none;
4376
4391
  user-select: none;
4377
4392
  }
4378
- .th-content[data-v-ad70b6cd] {
4393
+ .th-content[data-v-857ccb8b] {
4379
4394
  position: relative;
4380
4395
  display: flex;
4381
4396
  align-items: center;
4382
4397
  width: 100%;
4383
4398
  height: 100%;
4384
4399
  }
4385
- .resize-handle[data-v-ad70b6cd] {
4400
+ .resize-handle[data-v-857ccb8b] {
4386
4401
  position: absolute;
4387
4402
  right: -8px;
4388
4403
  top: 0;
@@ -4393,12 +4408,12 @@ td[data-v-ad70b6cd]:has(:checked){
4393
4408
  background: transparent;
4394
4409
  transition: background 0.2s;
4395
4410
  }
4396
- .resize-handle[data-v-ad70b6cd]:hover {
4411
+ .resize-handle[data-v-857ccb8b]:hover {
4397
4412
  background: var(--bgl-primary);
4398
4413
  }
4399
4414
 
4400
4415
  /* Spreadsheet container styles */
4401
- .spreadsheet[data-v-1e744d43] {
4416
+ .spreadsheet[data-v-a7d01d6e] {
4402
4417
  user-select: none;
4403
4418
  }
4404
4419
 
@@ -4513,6 +4528,8 @@ to {
4513
4528
  border-radius: var(--btn-border-radius) !important;
4514
4529
  }.rounded-thin {
4515
4530
  border-radius: calc(var(--btn-border-radius) / 1.5) !important;
4531
+ }.radius-025 {
4532
+ border-radius: calc(var(--btn-border-radius) / 4) !important;
4516
4533
  }.radius-05 {
4517
4534
  border-radius: calc(var(--btn-border-radius) / 2) !important;
4518
4535
  }.radius-2 {
@@ -4571,6 +4588,10 @@ to {
4571
4588
  }.fit-content {
4572
4589
  width: fit-content;
4573
4590
  height: fit-content;
4591
+ }.w-fit-content,
4592
+ .w-fit,
4593
+ .wfit {
4594
+ width: fit-content;
4574
4595
  }.auto-flow-columns {
4575
4596
  grid-auto-flow: column;
4576
4597
  }.grid-2-col {
@@ -6921,7 +6942,8 @@ to {
6921
6942
  }.flex-grow,
6922
6943
  .flex-grow-1 {
6923
6944
  flex-grow: 1;
6924
- }.flex-shrink, .flex-shrink-1 {
6945
+ }.flex-shrink,
6946
+ .flex-shrink-1 {
6925
6947
  flex-shrink: 1;
6926
6948
  }.flex-no-grow,
6927
6949
  .flex-grow-0 {
@@ -8542,6 +8564,10 @@ to {
8542
8564
  border-radius: calc(var(--btn-border-radius) / 1.5) !important;
8543
8565
  }
8544
8566
 
8567
+ .m_radius-025 {
8568
+ border-radius: calc(var(--btn-border-radius) / 4) !important;
8569
+ }
8570
+
8545
8571
  .m_radius-05 {
8546
8572
  border-radius: calc(var(--btn-border-radius) / 2) !important;
8547
8573
  }
@@ -8649,6 +8675,13 @@ to {
8649
8675
  height: fit-content;
8650
8676
  }
8651
8677
 
8678
+ .m_w-fit-content,
8679
+ .m_w-fit,
8680
+ .m_wfit {
8681
+ width: fit-content;
8682
+ }
8683
+
8684
+
8652
8685
  .m_auto-flow-columns {
8653
8686
  grid-auto-flow: column;
8654
8687
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@bagelink/vue",
3
3
  "type": "module",
4
- "version": "1.2.20",
4
+ "version": "1.2.22",
5
5
  "description": "Bagel core sdk packages",
6
6
  "author": {
7
7
  "name": "Neveh Allon",
@@ -1,7 +1,6 @@
1
1
  <script lang="ts" setup>
2
- import { Btn, CheckInput, TextInput } from '@bagelink/vue'
2
+ import { Btn, CheckInput, TextInput, ToggleInput, localRef, ListItem, Dropdown } from '@bagelink/vue'
3
3
  import { computed, ref, watch, nextTick, onUnmounted } from 'vue'
4
- import Dropdown from '../Dropdown.vue'
5
4
  import SpreadsheetTable from './SpreadsheetTable.vue'
6
5
 
7
6
  // Define column configuration types
@@ -227,6 +226,7 @@ interface CellPosition {
227
226
  const isSelecting = ref(false)
228
227
  const selectionStart = ref<CellPosition | null>(null)
229
228
  const selectionEnd = ref<CellPosition | null>(null)
229
+ const wrapText = localRef('wrapText', false)
230
230
 
231
231
  // Reactive variable to track the currently editing cell
232
232
  const editingCell = ref<CellPosition | null>(null)
@@ -688,7 +688,7 @@ const columnOptions = computed(() => {
688
688
  </script>
689
689
 
690
690
  <template>
691
- <div class="w-100p overflow-hidden" tabindex="-1" @keydown="handleSpreadsheetKeyDown">
691
+ <div class="w-100p" tabindex="-1" @keydown="handleSpreadsheetKeyDown">
692
692
  <div class="flex gap-05 py-05 justify-content-end m_flex-wrap">
693
693
  <label v-if="label" class="label me-auto">{{ label }}</label>
694
694
  <div class="flex gap-075">
@@ -709,10 +709,13 @@ const columnOptions = computed(() => {
709
709
  </div>
710
710
  </Dropdown>
711
711
  <TextInput ref="searchInputRef" v-model="search" icon="search" placeholder="Search" class="m-0 max-w200px" />
712
- <Btn v-tooltip="'Paste'" flat thin round icon="paste" @click="pasteSelection" />
713
- <Btn v-tooltip="'copy'" flat thin round icon="copy" @click="copySelection" />
714
- <Btn v-tooltip="'Undo'" flat thin round icon="undo" :disabled="!canUndo" @click="undo" />
715
- <Btn v-tooltip="'Redo'" flat thin round icon="redo" :disabled="!canRedo" @click="redo" />
712
+ <Dropdown flat thin icon="more_vert">
713
+ <ListItem title="Paste" icon="paste" @click="pasteSelection" />
714
+ <ListItem title="copy" icon="copy" @click="copySelection" />
715
+ <ListItem title="Undo" icon="undo" :disabled="!canUndo" @click="undo" />
716
+ <ListItem title="Redo" icon="redo" :disabled="!canRedo" @click="redo" />
717
+ <ToggleInput v-model="wrapText" label="Wrap Text" />
718
+ </Dropdown>
716
719
  </div>
717
720
  </div>
718
721
  <div class="spreadsheet" @mouseup="handleMouseUp">
@@ -731,6 +734,7 @@ const columnOptions = computed(() => {
731
734
  :selection-end="selectionEnd"
732
735
  :editing-cell="editingCell"
733
736
  :base-column-index="0"
737
+ :wrap-text="wrapText"
734
738
  class="sticky z-2 start-0 bg-white"
735
739
  @sortColumn="sortByColumn"
736
740
  @resizeStart="handleResizeStart"
@@ -745,7 +749,7 @@ const columnOptions = computed(() => {
745
749
  />
746
750
 
747
751
  <!-- Scrollable Columns -->
748
- <div class="flex-shrink flex-grow overflow-x">
752
+ <div class="flex-shrink flex-grow">
749
753
  <SpreadsheetTable
750
754
  :columns="scrollableColumns"
751
755
  :rows="filteredRows"
@@ -758,6 +762,7 @@ const columnOptions = computed(() => {
758
762
  :selection-end="selectionEnd"
759
763
  :editing-cell="editingCell"
760
764
  :base-column-index="fixedColumns.length"
765
+ :wrap-text="wrapText"
761
766
  @sortColumn="sortByColumn"
762
767
  @resizeStart="handleResizeStart"
763
768
  @selectRow="selectEntireRow"
@@ -31,6 +31,7 @@ interface Props {
31
31
  selectionEnd: CellPosition | null
32
32
  editingCell: CellPosition | null
33
33
  baseColumnIndex: number
34
+ wrapText?: boolean
34
35
  }
35
36
 
36
37
  const props = defineProps<Props>()
@@ -108,7 +109,7 @@ function formatCellValue(value: any, format?: ColumnConfig['format']): string {
108
109
 
109
110
  <template>
110
111
  <table :class="{ 'fixed-columns': isFixed, 'w-100p': !isFixed }">
111
- <thead>
112
+ <thead class=" stickyTop">
112
113
  <tr>
113
114
  <th v-if="showRowNumbers" class="row-number-header bg-white" />
114
115
  <th
@@ -147,8 +148,9 @@ function formatCellValue(value: any, format?: ColumnConfig['format']): string {
147
148
  v-for="(col, colIndex) in columns"
148
149
  :key="col.key"
149
150
  :class="{
150
- selected: isCellSelected(rowIndex, colIndex),
151
- locked: !isCellEditable(col.key),
151
+ 'selected': isCellSelected(rowIndex, colIndex),
152
+ 'locked': !isCellEditable(col.key),
153
+ 'wrap-text': wrapText,
152
154
  }"
153
155
  :style="{ width: columnWidths.get(col.key) ? `${columnWidths.get(col.key)}px` : col.width }"
154
156
  :tabindex="col.hidden ? undefined : 0"
@@ -197,6 +199,11 @@ function formatCellValue(value: any, format?: ColumnConfig['format']): string {
197
199
  </template>
198
200
 
199
201
  <style scoped>
202
+ .stickyTop{
203
+ position: sticky;
204
+ top: -0.125rem;
205
+ z-index: 1;
206
+ }
200
207
  .fixed-columns {
201
208
  border-right: 2px solid var(--border-color);
202
209
  }
@@ -248,6 +255,15 @@ td span{
248
255
  -webkit-line-clamp: 1;
249
256
  word-break: break-all;
250
257
  }
258
+ td.wrap-text {
259
+ height: auto;
260
+ min-height: 40px;
261
+ }
262
+ td.wrap-text span {
263
+ white-space: normal;
264
+ -webkit-line-clamp: unset;
265
+ word-break: break-word;
266
+ }
251
267
  input {
252
268
  width: 100%;
253
269
  border: none;
@@ -303,6 +303,7 @@ defineExpose({
303
303
  display: flex;
304
304
  flex-direction: column;
305
305
  gap: 1rem;
306
+ width: 100%;
306
307
  /* Default transition duration */
307
308
  --transition-duration: 200ms;
308
309
  --move-distance: 35%;
@@ -102,7 +102,7 @@ onMounted(() => {
102
102
  {{ label }}
103
103
 
104
104
  <input
105
- v-if="!multiline && !autoheight && !code"
105
+ v-if="!multiline && !autoheight && !code && inputRows < 2"
106
106
  :id
107
107
  ref="input"
108
108
  v-model.trim="inputVal"
@@ -26,6 +26,10 @@
26
26
  border-radius: calc(var(--btn-border-radius) / 1.5) !important;
27
27
  }
28
28
 
29
+ .radius-025 {
30
+ border-radius: calc(var(--btn-border-radius) / 4) !important;
31
+ }
32
+
29
33
  .radius-05 {
30
34
  border-radius: calc(var(--btn-border-radius) / 2) !important;
31
35
  }
@@ -134,6 +138,13 @@
134
138
  height: fit-content;
135
139
  }
136
140
 
141
+ .w-fit-content,
142
+ .w-fit,
143
+ .wfit {
144
+ width: fit-content;
145
+ }
146
+
147
+
137
148
  .auto-flow-columns {
138
149
  grid-auto-flow: column;
139
150
  }
@@ -3657,7 +3668,8 @@
3657
3668
  flex-grow: 1;
3658
3669
  }
3659
3670
 
3660
- .flex-shrink, .flex-shrink-1 {
3671
+ .flex-shrink,
3672
+ .flex-shrink-1 {
3661
3673
  flex-shrink: 1;
3662
3674
  }
3663
3675
 
@@ -56,6 +56,10 @@
56
56
  border-radius: calc(var(--btn-border-radius) / 1.5) !important;
57
57
  }
58
58
 
59
+ .m_radius-025 {
60
+ border-radius: calc(var(--btn-border-radius) / 4) !important;
61
+ }
62
+
59
63
  .m_radius-05 {
60
64
  border-radius: calc(var(--btn-border-radius) / 2) !important;
61
65
  }
@@ -163,6 +167,13 @@
163
167
  height: fit-content;
164
168
  }
165
169
 
170
+ .m_w-fit-content,
171
+ .m_w-fit,
172
+ .m_wfit {
173
+ width: fit-content;
174
+ }
175
+
176
+
166
177
  .m_auto-flow-columns {
167
178
  grid-auto-flow: column;
168
179
  }