@kupola/kupola 1.4.2 → 1.4.3

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 (63) hide show
  1. package/README.md +3 -3
  2. package/css/kupola.css +3 -2
  3. package/css/table.css +74 -0
  4. package/dist/css/kupola.css +12 -1
  5. package/dist/css/kupola.min.css +1 -1
  6. package/dist/kupola.cjs.js +1800 -3609
  7. package/dist/kupola.cjs.js.map +1 -1
  8. package/dist/kupola.css +100 -3
  9. package/dist/kupola.esm.js +1791 -3610
  10. package/dist/kupola.esm.js.map +1 -1
  11. package/dist/kupola.min.css +1 -1
  12. package/dist/kupola.min.js +1 -1
  13. package/dist/kupola.min.js.map +1 -1
  14. package/dist/kupola.umd.js +1800 -3609
  15. package/dist/kupola.umd.js.map +1 -1
  16. package/dist/types/kupola.d.ts +41 -25
  17. package/js/calendar.js +3 -10
  18. package/js/carousel.js +3 -10
  19. package/js/collapse.js +3 -10
  20. package/js/color-picker.js +5 -16
  21. package/js/component.js +4 -18
  22. package/js/countdown.js +3 -10
  23. package/js/data-bind.js +56 -36
  24. package/js/datepicker.js +16 -24
  25. package/js/depends.js +27 -16
  26. package/js/dialog.js +1 -5
  27. package/js/drawer.js +3 -11
  28. package/js/dropdown.js +11 -18
  29. package/js/dynamic-tags.js +3 -10
  30. package/js/fileupload.js +10 -12
  31. package/js/form.js +26 -20
  32. package/js/global-events.js +1 -14
  33. package/js/heatmap.js +3 -12
  34. package/js/i18n.js +1 -14
  35. package/js/icons.js +2 -2
  36. package/js/image-preview.js +1 -7
  37. package/js/initializer.js +0 -43
  38. package/js/kupola-core.js +1 -13
  39. package/js/kupola-lifecycle.js +1 -9
  40. package/js/message.js +1 -6
  41. package/js/modal.js +22 -20
  42. package/js/notification.js +1 -6
  43. package/js/numberinput.js +3 -10
  44. package/js/pagination.js +0 -5
  45. package/js/registry.js +0 -4
  46. package/js/select.js +5 -16
  47. package/js/slide-captcha.js +8 -21
  48. package/js/slider.js +3 -10
  49. package/js/statcard.js +3 -11
  50. package/js/table.js +240 -262
  51. package/js/tag.js +3 -10
  52. package/js/theme.js +1 -12
  53. package/js/timepicker.js +6 -19
  54. package/js/tooltip.js +3 -10
  55. package/js/utils.js +281 -1439
  56. package/js/validation.js +2 -7
  57. package/js/virtual-list.js +13 -38
  58. package/js/web-components.js +0 -9
  59. package/package.json +10 -5
  60. package/scripts/build-css.cjs +3 -2
  61. package/types/kupola.d.ts +41 -25
  62. package/version.json +10 -0
  63. /package/css/{colors_and_type.css → colors-and-type.css} +0 -0
package/dist/kupola.css CHANGED
@@ -2023,7 +2023,7 @@ code, kbd, samp, pre {
2023
2023
  /* BUG-003 fix: ensure <select class="ds-input"> matches <input> height/padding */
2024
2024
  select.ds-input,
2025
2025
  .ds-input select {
2026
- height: 28px;
2026
+ height: 36px;
2027
2027
  padding: 0 var(--spacer-24) 0 var(--spacer-12);
2028
2028
  appearance: none;
2029
2029
  -webkit-appearance: none;
@@ -2035,8 +2035,29 @@ code, kbd, samp, pre {
2035
2035
  cursor: pointer;
2036
2036
  font: inherit;
2037
2037
  color: var(--text-default);
2038
+ background-color: var(--bg-overlay-l1);
2039
+ line-height: 36px;
2040
+ font-size: 14px;
2038
2041
  }
2039
2042
  select.ds-input::-ms-expand { display: none; }
2043
+
2044
+ /* Fix dropdown options background color - Note: limited browser support */
2045
+ select.ds-input option,
2046
+ .ds-input select option {
2047
+ background-color: var(--bg-base-secondary);
2048
+ color: var(--text-default);
2049
+ padding: 10px 12px;
2050
+ line-height: 1.8;
2051
+ min-height: 36px;
2052
+ }
2053
+
2054
+ select.ds-input optgroup,
2055
+ .ds-input select optgroup {
2056
+ background-color: var(--bg-base-secondary);
2057
+ color: var(--text-default);
2058
+ padding: 8px 12px;
2059
+ line-height: 1.6;
2060
+ }
2040
2061
 
2041
2062
  .ds-input__status-icon {
2042
2063
  position: absolute;
@@ -2940,12 +2961,14 @@ code, kbd, samp, pre {
2940
2961
  display: flex;
2941
2962
  align-items: center;
2942
2963
  width: 100%;
2943
- padding: var(--spacer-8) var(--spacer-12);
2964
+ padding: 12px var(--spacer-12);
2965
+ min-height: 40px;
2944
2966
  background: none;
2945
2967
  border: none;
2946
2968
  border-radius: var(--radius-2);
2947
2969
  color: var(--text-default);
2948
2970
  font-size: var(--body-sm-font-size);
2971
+ line-height: 1.6;
2949
2972
  cursor: pointer;
2950
2973
  text-align: left;
2951
2974
  }
@@ -9037,4 +9060,78 @@ code, kbd, samp, pre {
9037
9060
  .focus-ring:focus-visible {
9038
9061
  outline: 2px solid var(--bg-brand);
9039
9062
  outline-offset: 2px;
9040
- }
9063
+ }
9064
+ /* ================================================================
9065
+ KupolaTable Styles
9066
+ ================================================================ */
9067
+
9068
+ .kupola-table-wrapper { width: 100%; }
9069
+ .kupola-table-container { overflow-x: auto; }
9070
+ .kupola-table { width: 100%; border-collapse: collapse; font-size: 14px; }
9071
+ .kupola-table th, .kupola-table td { padding: 12px 16px; text-align: left; border-bottom: 1px solid #e8e8e8; }
9072
+ .kupola-table th { background: #fafafa; font-weight: 600; color: #333; white-space: nowrap; }
9073
+ .kupola-table-striped tbody tr:nth-child(even) { background: #fafafa; }
9074
+ .kupola-table-hover tbody tr:hover { background: #f0f7ff; }
9075
+ .kupola-table-bordered { border: 1px solid #e8e8e8; }
9076
+ .kupola-table-bordered th, .kupola-table-bordered td { border: 1px solid #e8e8e8; }
9077
+ .kupola-table-compact th, .kupola-table-compact td { padding: 8px 12px; }
9078
+ .kupola-table-sortable { cursor: pointer; user-select: none; position: relative; }
9079
+ .kupola-table-sortable:hover { background: #f0f0f0; }
9080
+ .kupola-table-sort-icon { font-size: 12px; opacity: 0.5; margin-left: 4px; }
9081
+ .kupola-table-sort-asc .kupola-table-sort-icon,
9082
+ .kupola-table-sort-desc .kupola-table-sort-icon { opacity: 1; color: #1890ff; }
9083
+ .kupola-table-empty, .kupola-table-loading { text-align: center; padding: 40px 16px !important; color: #999; }
9084
+ .kupola-table-toolbar { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; flex-wrap: wrap; gap: 8px; }
9085
+ .kupola-table-toolbar-right { display: flex; align-items: center; gap: 8px; }
9086
+ .kupola-table-filter-input { padding: 6px 12px; border: 1px solid #d9d9d9; border-radius: 4px; font-size: 14px; width: 240px; }
9087
+ .kupola-table-filter-input:focus { outline: none; border-color: #1890ff; box-shadow: 0 0 0 2px rgba(24,144,255,0.1); }
9088
+ .kupola-table-info { color: #999; font-size: 13px; }
9089
+ .kupola-table-selection-info { color: #1890ff; font-size: 13px; font-weight: 500; }
9090
+ .kupola-table-col-selection { width: 40px; text-align: center; }
9091
+ .kupola-table-col-expand { width: 40px; text-align: center; }
9092
+ .kupola-table-expand-btn { background: none; border: none; cursor: pointer; font-size: 12px; padding: 2px 6px; color: #666; }
9093
+ .kupola-table-expand-btn:hover { color: #1890ff; }
9094
+ .kupola-table-expand-row td { background: #fafafa; padding: 16px; }
9095
+ .kupola-table-row-selected { background: #e6f7ff !important; }
9096
+ .kupola-table-row-selected:hover { background: #bae7ff !important; }
9097
+
9098
+ /* Resize */
9099
+ .kupola-table-resize-handle { position: absolute; right: 0; top: 0; bottom: 0; width: 6px; cursor: col-resize; background: transparent; }
9100
+ .kupola-table-resize-handle:hover { background: #1890ff; opacity: 0.3; }
9101
+
9102
+ /* Drag */
9103
+ .kupola-table-draggable { transition: opacity 0.2s; }
9104
+ .kupola-table-dragging { opacity: 0.4; }
9105
+ .kupola-table-drag-over { border-top: 2px solid #1890ff !important; }
9106
+
9107
+ /* Edit */
9108
+ .kupola-table-editable-cell { cursor: text; }
9109
+ .kupola-table-editable-cell:hover { background: #e6f7ff; }
9110
+ .kupola-table-edit-cell { display: flex; gap: 4px; align-items: center; }
9111
+ .kupola-table-edit-input { flex: 1; padding: 2px 6px; font-size: 13px; }
9112
+ .kupola-table-edit-actions { display: flex; gap: 2px; }
9113
+ .kupola-table-edit-save, .kupola-table-edit-cancel { background: none; border: 1px solid #d9d9d9; border-radius: 3px; cursor: pointer; padding: 2px 6px; font-size: 12px; }
9114
+ .kupola-table-edit-save { color: #52c41a; border-color: #52c41a; }
9115
+ .kupola-table-edit-cancel { color: #ff4d4f; border-color: #ff4d4f; }
9116
+ .kupola-table-edit-save:hover { background: #f6ffed; }
9117
+ .kupola-table-edit-cancel:hover { background: #fff2f0; }
9118
+
9119
+ /* Tree */
9120
+ .kupola-table-tree-indent { display: inline-block; }
9121
+ .kupola-table-tree-toggle { background: none; border: none; cursor: pointer; font-size: 10px; padding: 0 4px; color: #666; }
9122
+ .kupola-table-tree-toggle:hover { color: #1890ff; }
9123
+ .kupola-table-tree-toggle-placeholder { display: inline-block; width: 18px; }
9124
+
9125
+ /* Virtual */
9126
+ .kupola-table-virtual-wrapper .kupola-table-container { overflow-y: auto; }
9127
+
9128
+ /* Pagination */
9129
+ .kupola-table-pagination { display: flex; justify-content: flex-end; align-items: center; gap: 12px; margin-top: 16px; padding: 8px 0; }
9130
+ .kupola-table-pages { display: flex; gap: 4px; align-items: center; }
9131
+ .kupola-table-page-btn { min-width: 32px; height: 32px; border: 1px solid #d9d9d9; border-radius: 4px; background: #fff; cursor: pointer; font-size: 14px; display: flex; align-items: center; justify-content: center; }
9132
+ .kupola-table-page-btn:hover:not(:disabled):not(.active) { border-color: #1890ff; color: #1890ff; }
9133
+ .kupola-table-page-btn.active { background: #1890ff; color: #fff; border-color: #1890ff; }
9134
+ .kupola-table-page-btn:disabled { opacity: 0.4; cursor: not-allowed; }
9135
+ .kupola-table-page-ellipsis { padding: 0 4px; color: #999; }
9136
+ .kupola-table-page-size { padding: 4px 8px; border: 1px solid #d9d9d9; border-radius: 4px; font-size: 13px; }
9137
+ .kupola-table-page-info { color: #999; font-size: 13px; }