vue2-excel-grid 2.11.0 → 2.11.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vue2-excel-grid",
3
- "version": "2.11.0",
3
+ "version": "2.11.1",
4
4
  "description": "Excel-style grid component for Vue 2.6.14 with virtual scrolling",
5
5
  "license": "MIT",
6
6
  "author": "Fozilbek Raimberdiyev",
@@ -8353,28 +8353,31 @@ export default ExcelGridComponent
8353
8353
  position: fixed;
8354
8354
  background: var(--eg-color-menu-bg, var(--eg-color-cell-bg, var(--eg-color-cell-bg-default)));
8355
8355
  border: 1px solid var(--eg-color-border, var(--eg-color-border-default));
8356
- border-top: 3px solid var(--eg-color-accent, var(--eg-color-accent-default));
8357
8356
  border-radius: var(--eg-radius, var(--eg-radius-default));
8358
8357
  box-shadow: var(--eg-shadow-dropdown, var(--eg-shadow-dropdown-default));
8359
8358
  z-index: 9999;
8360
- min-width: 160px;
8359
+ min-width: 170px;
8361
8360
  font-size: var(--eg-font-size, var(--eg-font-size-default));
8362
8361
  padding: 4px 0;
8363
8362
  color: var(--eg-color-text, var(--eg-color-text-default));
8363
+ user-select: none;
8364
+ box-sizing: border-box;
8364
8365
  }
8365
8366
 
8366
8367
  /* Only 3 short items ("A → Z" / "Z → A" / "Clear sort") — the generic
8367
- 160px context-menu min-width looks oversized next to it, especially
8368
+ context-menu min-width looks oversized next to it, especially
8368
8369
  at size="small" where rows/text are much smaller. */
8369
8370
  .eg-sort-menu {
8370
- min-width: 110px;
8371
+ min-width: 120px;
8371
8372
  }
8372
8373
 
8373
8374
  .eg-context-item {
8374
- padding: 6px 16px;
8375
+ padding: 6px 14px;
8375
8376
  cursor: pointer;
8376
8377
  position: relative;
8377
8378
  white-space: nowrap;
8379
+ box-sizing: border-box;
8380
+ transition: background-color 0.12s ease, color 0.12s ease;
8378
8381
  }
8379
8382
 
8380
8383
  .eg-context-item:hover {
@@ -8391,9 +8394,14 @@ export default ExcelGridComponent
8391
8394
  .eg-context-item-active::before {
8392
8395
  content: '✓';
8393
8396
  position: absolute;
8394
- left: 4px;
8397
+ left: 6px;
8395
8398
  top: 50%;
8396
8399
  transform: translateY(-50%);
8400
+ font-weight: bold;
8401
+ }
8402
+
8403
+ .eg-sort-menu .eg-context-item {
8404
+ padding-left: 22px;
8397
8405
  }
8398
8406
 
8399
8407
  .eg-context-separator {
@@ -8402,26 +8410,367 @@ export default ExcelGridComponent
8402
8410
  margin: 4px 0;
8403
8411
  }
8404
8412
 
8405
- .eg-context-submenu-parent::after { content: ' ▶'; float: right; }
8413
+ .eg-context-submenu-parent {
8414
+ display: flex;
8415
+ align-items: center;
8416
+ justify-content: space-between;
8417
+ }
8418
+ .eg-context-submenu-parent::after {
8419
+ content: '›';
8420
+ font-size: 15px;
8421
+ line-height: 1;
8422
+ font-weight: 600;
8423
+ margin-left: 12px;
8424
+ color: var(--eg-color-text-secondary, var(--eg-color-text-secondary-default));
8425
+ }
8406
8426
 
8407
8427
  .eg-context-submenu {
8408
8428
  display: none;
8409
8429
  position: absolute;
8410
- left: 100%;
8430
+ left: calc(100% + 2px);
8411
8431
  top: -4px;
8412
8432
  background: var(--eg-color-menu-bg, var(--eg-color-cell-bg, var(--eg-color-cell-bg-default)));
8413
8433
  border: 1px solid var(--eg-color-border, var(--eg-color-border-default));
8414
- border-top: 3px solid var(--eg-color-accent, var(--eg-color-accent-default));
8415
8434
  border-radius: var(--eg-radius, var(--eg-radius-default));
8416
8435
  box-shadow: var(--eg-shadow-dropdown, var(--eg-shadow-dropdown-default));
8417
8436
  min-width: 160px;
8418
8437
  padding: 4px 0;
8419
8438
  z-index: 10000;
8420
8439
  color: var(--eg-color-text, var(--eg-color-text-default));
8440
+ box-sizing: border-box;
8421
8441
  }
8422
8442
 
8423
8443
  .eg-context-submenu-parent:hover .eg-context-submenu { display: block; }
8424
8444
 
8445
+ /* ── Theme-specific context menu & actions dropdown styling ──────── */
8446
+
8447
+ /* Shopify Polaris (ActionList inside Popover) */
8448
+ .eg-theme-polaris .eg-context-menu,
8449
+ .eg-theme-polaris .eg-context-submenu {
8450
+ background: #FFFFFF;
8451
+ border: 1px solid #D2D5D8;
8452
+ border-radius: 8px;
8453
+ box-shadow: 0 4px 14px rgba(0, 0, 0, 0.09), 0 1px 3px rgba(0, 0, 0, 0.05);
8454
+ padding: 4px;
8455
+ font-family: -apple-system, BlinkMacSystemFont, 'San Francisco', 'Segoe UI', Roboto, 'Helvetica Neue', sans-serif;
8456
+ color: #202223;
8457
+ }
8458
+ .eg-theme-polaris .eg-context-item {
8459
+ margin: 1px 0;
8460
+ padding: 6px 10px;
8461
+ border-radius: 6px;
8462
+ font-size: 13px;
8463
+ font-weight: 450;
8464
+ color: #202223;
8465
+ }
8466
+ .eg-theme-polaris .eg-context-item:hover {
8467
+ background: #F1F2F4;
8468
+ color: #202223;
8469
+ }
8470
+ .eg-theme-polaris .eg-context-item-active {
8471
+ color: #008060;
8472
+ font-weight: 600;
8473
+ }
8474
+ .eg-theme-polaris .eg-context-separator {
8475
+ height: 1px;
8476
+ background: #E1E3E5;
8477
+ margin: 4px 2px;
8478
+ }
8479
+ .eg-theme-polaris .eg-context-submenu-parent::after {
8480
+ color: #6D7175;
8481
+ }
8482
+ .eg-theme-polaris .eg-sort-menu .eg-context-item {
8483
+ padding-left: 22px;
8484
+ }
8485
+
8486
+ /* Ant Design 5 (Clean 8px rounded popup with subtle hover) */
8487
+ .eg-theme-antd .eg-context-menu,
8488
+ .eg-theme-antd .eg-context-submenu {
8489
+ background: #FFFFFF;
8490
+ border: 1px solid rgba(5, 5, 5, 0.06);
8491
+ border-radius: 8px;
8492
+ box-shadow: 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 9px 28px 8px rgba(0, 0, 0, 0.05);
8493
+ padding: 4px;
8494
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
8495
+ color: rgba(0, 0, 0, 0.88);
8496
+ }
8497
+ .eg-theme-antd .eg-context-item {
8498
+ margin: 1px 0;
8499
+ padding: 5px 12px;
8500
+ border-radius: 4px;
8501
+ font-size: 13px;
8502
+ color: rgba(0, 0, 0, 0.88);
8503
+ }
8504
+ .eg-theme-antd .eg-context-item:hover {
8505
+ background: rgba(0, 0, 0, 0.04);
8506
+ color: rgba(0, 0, 0, 0.88);
8507
+ }
8508
+ .eg-theme-antd .eg-context-item-active {
8509
+ color: #1677FF;
8510
+ font-weight: 600;
8511
+ }
8512
+ .eg-theme-antd .eg-context-separator {
8513
+ height: 1px;
8514
+ background: rgba(5, 5, 5, 0.06);
8515
+ margin: 4px 0;
8516
+ }
8517
+ .eg-theme-antd .eg-context-submenu-parent::after {
8518
+ color: rgba(0, 0, 0, 0.45);
8519
+ }
8520
+ .eg-theme-antd .eg-sort-menu .eg-context-item {
8521
+ padding-left: 22px;
8522
+ }
8523
+
8524
+ /* Material Design 3 (Elevated surface with blue accents) */
8525
+ .eg-theme-material .eg-context-menu,
8526
+ .eg-theme-material .eg-context-submenu {
8527
+ background: #FFFFFF;
8528
+ border: 1px solid #BBDEFB;
8529
+ border-radius: 8px;
8530
+ box-shadow: 0 4px 16px rgba(21, 101, 192, 0.15), 0 1px 4px rgba(21, 101, 192, 0.10);
8531
+ padding: 6px 0;
8532
+ font-family: 'Roboto', 'Google Sans', Arial, sans-serif;
8533
+ color: #1E3A5F;
8534
+ }
8535
+ .eg-theme-material .eg-context-item {
8536
+ margin: 0;
8537
+ padding: 7px 16px;
8538
+ border-radius: 0;
8539
+ font-size: 13px;
8540
+ color: #1E3A5F;
8541
+ }
8542
+ .eg-theme-material .eg-context-item:hover {
8543
+ background: #DBEAFE;
8544
+ color: #1565C0;
8545
+ }
8546
+ .eg-theme-material .eg-context-item-active {
8547
+ color: #1565C0;
8548
+ font-weight: 600;
8549
+ }
8550
+ .eg-theme-material .eg-context-separator {
8551
+ height: 1px;
8552
+ background: #E2EDF8;
8553
+ margin: 4px 0;
8554
+ }
8555
+ .eg-theme-material .eg-context-submenu-parent::after {
8556
+ color: #4B7BA8;
8557
+ }
8558
+ .eg-theme-material .eg-sort-menu .eg-context-item {
8559
+ padding-left: 22px;
8560
+ }
8561
+
8562
+ /* Fluent UI / Office 365 (Warm gray, subtle hover) */
8563
+ .eg-theme-fluent .eg-context-menu,
8564
+ .eg-theme-fluent .eg-context-submenu {
8565
+ background: #FFFFFF;
8566
+ border: 1px solid #D2D0CE;
8567
+ border-radius: 4px;
8568
+ box-shadow: 0 6.4px 14.4px 0 rgba(0, 0, 0, 0.13), 0 1.2px 3.6px 0 rgba(0, 0, 0, 0.11);
8569
+ padding: 4px 0;
8570
+ font-family: 'Segoe UI', Calibri, Arial, sans-serif;
8571
+ color: #323130;
8572
+ }
8573
+ .eg-theme-fluent .eg-context-item {
8574
+ margin: 0;
8575
+ padding: 6px 14px;
8576
+ border-radius: 0;
8577
+ font-size: 13px;
8578
+ color: #323130;
8579
+ }
8580
+ .eg-theme-fluent .eg-context-item:hover {
8581
+ background: #F3F2F1;
8582
+ color: #201F1E;
8583
+ }
8584
+ .eg-theme-fluent .eg-context-item-active {
8585
+ color: #0078D4;
8586
+ font-weight: 600;
8587
+ }
8588
+ .eg-theme-fluent .eg-context-separator {
8589
+ height: 1px;
8590
+ background: #EDEBE9;
8591
+ margin: 4px 0;
8592
+ }
8593
+ .eg-theme-fluent .eg-context-submenu-parent::after {
8594
+ color: #605E5C;
8595
+ }
8596
+ .eg-theme-fluent .eg-sort-menu .eg-context-item {
8597
+ padding-left: 22px;
8598
+ }
8599
+
8600
+ /* IBM Carbon (Industrial 0px radius, left-border hover indicator) */
8601
+ .eg-theme-carbon .eg-context-menu,
8602
+ .eg-theme-carbon .eg-context-submenu {
8603
+ background: #FFFFFF;
8604
+ border: 1px solid #C6C6C6;
8605
+ border-radius: 0px;
8606
+ box-shadow: 0 2px 6px rgba(0, 0, 0, 0.30);
8607
+ padding: 0;
8608
+ font-family: 'IBM Plex Sans', 'Helvetica Neue', Arial, sans-serif;
8609
+ color: #161616;
8610
+ }
8611
+ .eg-theme-carbon .eg-context-item {
8612
+ margin: 0;
8613
+ padding: 8px 16px;
8614
+ border-radius: 0;
8615
+ font-size: 14px;
8616
+ color: #161616;
8617
+ border-left: 3px solid transparent;
8618
+ }
8619
+ .eg-theme-carbon .eg-context-item:hover {
8620
+ background: #E8E8E8;
8621
+ color: #161616;
8622
+ border-left-color: #0F62FE;
8623
+ }
8624
+ .eg-theme-carbon .eg-context-item-active {
8625
+ color: #0F62FE;
8626
+ font-weight: 600;
8627
+ }
8628
+ .eg-theme-carbon .eg-context-separator {
8629
+ height: 1px;
8630
+ background: #E0E0E0;
8631
+ margin: 0;
8632
+ }
8633
+ .eg-theme-carbon .eg-context-submenu-parent::after {
8634
+ color: #525252;
8635
+ }
8636
+ .eg-theme-carbon .eg-sort-menu .eg-context-item {
8637
+ padding-left: 22px;
8638
+ }
8639
+
8640
+ /* Excel 365 (Clean spreadsheet classic style) */
8641
+ .eg-theme-excel .eg-context-menu,
8642
+ .eg-theme-excel .eg-context-submenu {
8643
+ background: #FFFFFF;
8644
+ border: 1px solid #D9D9D9;
8645
+ border-radius: 4px;
8646
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
8647
+ padding: 4px 0;
8648
+ color: #000000;
8649
+ }
8650
+ .eg-theme-excel .eg-context-item {
8651
+ margin: 0;
8652
+ padding: 6px 16px;
8653
+ border-radius: 0;
8654
+ font-size: 13px;
8655
+ color: #000000;
8656
+ }
8657
+ .eg-theme-excel .eg-context-item:hover {
8658
+ background: #E2EFDA;
8659
+ color: #185A30;
8660
+ }
8661
+ .eg-theme-excel .eg-context-item-active {
8662
+ color: #217346;
8663
+ font-weight: 600;
8664
+ }
8665
+ .eg-theme-excel .eg-context-separator {
8666
+ height: 1px;
8667
+ background: #E0E0E0;
8668
+ margin: 4px 0;
8669
+ }
8670
+
8671
+ /* Dark Mode (unified dark container & theme dark accents) */
8672
+ .eg-shell.eg-dark .eg-context-menu,
8673
+ .eg-shell.eg-dark .eg-context-submenu {
8674
+ background: #202123;
8675
+ border-color: #383838;
8676
+ box-shadow: 0 8px 24px rgba(0, 0, 0, 0.65);
8677
+ color: #D4D4D4;
8678
+ }
8679
+ .eg-shell.eg-dark .eg-context-item {
8680
+ color: #D4D4D4;
8681
+ }
8682
+ .eg-shell.eg-dark .eg-context-item:hover {
8683
+ background: #2D2F31;
8684
+ color: #FFFFFF;
8685
+ }
8686
+ .eg-shell.eg-dark .eg-context-separator {
8687
+ background: #383838;
8688
+ }
8689
+ .eg-shell.eg-dark .eg-context-submenu-parent::after {
8690
+ color: #A0A0A0;
8691
+ }
8692
+
8693
+ .eg-shell.eg-theme-polaris.eg-dark .eg-context-menu,
8694
+ .eg-shell.eg-theme-polaris.eg-dark .eg-context-submenu {
8695
+ background: #202123;
8696
+ border-color: #383D40;
8697
+ }
8698
+ .eg-shell.eg-theme-polaris.eg-dark .eg-context-item:hover {
8699
+ background: #2A2D30;
8700
+ color: #FFFFFF;
8701
+ }
8702
+ .eg-shell.eg-theme-polaris.eg-dark .eg-context-item-active {
8703
+ color: #00A67E;
8704
+ }
8705
+ .eg-shell.eg-theme-polaris.eg-dark .eg-context-separator {
8706
+ background: #383D40;
8707
+ }
8708
+
8709
+ .eg-shell.eg-theme-antd.eg-dark .eg-context-menu,
8710
+ .eg-shell.eg-theme-antd.eg-dark .eg-context-submenu {
8711
+ background: #1F1F1F;
8712
+ border-color: #303030;
8713
+ }
8714
+ .eg-shell.eg-theme-antd.eg-dark .eg-context-item:hover {
8715
+ background: rgba(255, 255, 255, 0.08);
8716
+ color: #FFFFFF;
8717
+ }
8718
+ .eg-shell.eg-theme-antd.eg-dark .eg-context-item-active {
8719
+ color: #1668DC;
8720
+ }
8721
+ .eg-shell.eg-theme-antd.eg-dark .eg-context-separator {
8722
+ background: #303030;
8723
+ }
8724
+
8725
+ .eg-shell.eg-theme-material.eg-dark .eg-context-menu,
8726
+ .eg-shell.eg-theme-material.eg-dark .eg-context-submenu {
8727
+ background: #19222D;
8728
+ border-color: #2A3A4D;
8729
+ }
8730
+ .eg-shell.eg-theme-material.eg-dark .eg-context-item:hover {
8731
+ background: #243447;
8732
+ color: #90CAF9;
8733
+ }
8734
+ .eg-shell.eg-theme-material.eg-dark .eg-context-item-active {
8735
+ color: #90CAF9;
8736
+ }
8737
+ .eg-shell.eg-theme-material.eg-dark .eg-context-separator {
8738
+ background: #2A3A4D;
8739
+ }
8740
+
8741
+ .eg-shell.eg-theme-fluent.eg-dark .eg-context-menu,
8742
+ .eg-shell.eg-theme-fluent.eg-dark .eg-context-submenu {
8743
+ background: #252423;
8744
+ border-color: #3B3A39;
8745
+ }
8746
+ .eg-shell.eg-theme-fluent.eg-dark .eg-context-item:hover {
8747
+ background: #323130;
8748
+ color: #FFFFFF;
8749
+ }
8750
+ .eg-shell.eg-theme-fluent.eg-dark .eg-context-item-active {
8751
+ color: #2886DE;
8752
+ }
8753
+ .eg-shell.eg-theme-fluent.eg-dark .eg-context-separator {
8754
+ background: #3B3A39;
8755
+ }
8756
+
8757
+ .eg-shell.eg-theme-carbon.eg-dark .eg-context-menu,
8758
+ .eg-shell.eg-theme-carbon.eg-dark .eg-context-submenu {
8759
+ background: #262626;
8760
+ border-color: #393939;
8761
+ }
8762
+ .eg-shell.eg-theme-carbon.eg-dark .eg-context-item:hover {
8763
+ background: #353535;
8764
+ color: #FFFFFF;
8765
+ border-left-color: #4589FF;
8766
+ }
8767
+ .eg-shell.eg-theme-carbon.eg-dark .eg-context-item-active {
8768
+ color: #4589FF;
8769
+ }
8770
+ .eg-shell.eg-theme-carbon.eg-dark .eg-context-separator {
8771
+ background: #393939;
8772
+ }
8773
+
8425
8774
  /* devMode — column/row info modal */
8426
8775
  .eg-info-modal-backdrop {
8427
8776
  position: fixed;
@@ -9156,6 +9505,23 @@ export default ExcelGridComponent
9156
9505
  font-size: 14px;
9157
9506
  padding: 8px 14px;
9158
9507
  }
9508
+ /* Theme enhancements for EgSelect / EgTreeSelect dropdowns */
9509
+ .eg-theme-polaris .eg-select-dropdown {
9510
+ padding: 4px;
9511
+ }
9512
+ .eg-theme-polaris .eg-select-option {
9513
+ margin: 1px 0;
9514
+ border-radius: 6px;
9515
+ padding: 6px 10px;
9516
+ }
9517
+ .eg-theme-antd .eg-select-dropdown {
9518
+ padding: 4px;
9519
+ }
9520
+ .eg-theme-antd .eg-select-option {
9521
+ margin: 1px 0;
9522
+ border-radius: 4px;
9523
+ padding: 5px 12px;
9524
+ }
9159
9525
  .eg-select-dot {
9160
9526
  width: 9px;
9161
9527
  height: 9px;