sp-component 0.0.1 → 0.0.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 (115) hide show
  1. package/README.md +209 -144
  2. package/dist/components/accordion/sp-accordion-item.css.js +1 -1
  3. package/dist/components/accordion/sp-accordion.css.js +1 -1
  4. package/dist/components/alert/sp-alert.css.js +1 -1
  5. package/dist/components/autocomplete/sp-autocomplete.css.js +1 -1
  6. package/dist/components/autocomplete/sp-autocomplete.template.d.ts.map +1 -1
  7. package/dist/components/autocomplete/sp-autocomplete.template.js +14 -13
  8. package/dist/components/avatar/sp-avatar.css.js +1 -1
  9. package/dist/components/badge/sp-badge.css.js +1 -1
  10. package/dist/components/badge/sp-badge.d.ts +2 -0
  11. package/dist/components/badge/sp-badge.d.ts.map +1 -1
  12. package/dist/components/badge/sp-badge.js +34 -31
  13. package/dist/components/breadcrumb/sp-breadcrumb-item.css.js +1 -1
  14. package/dist/components/breadcrumb/sp-breadcrumb.css.js +1 -1
  15. package/dist/components/button/sp-button.css.js +1 -1
  16. package/dist/components/calendar/sp-calendar-date-picker.css.js +1 -1
  17. package/dist/components/calendar/sp-calendar.css.js +1 -1
  18. package/dist/components/calendar/sp-calendar.d.ts +1 -0
  19. package/dist/components/calendar/sp-calendar.d.ts.map +1 -1
  20. package/dist/components/calendar/sp-calendar.js +29 -29
  21. package/dist/components/card/sp-card.css.js +1 -1
  22. package/dist/components/card/sp-card.template.d.ts.map +1 -1
  23. package/dist/components/card/sp-card.template.js +25 -16
  24. package/dist/components/carousel/sp-carousel-slide.css.js +2 -2
  25. package/dist/components/carousel/sp-carousel.css.js +1 -1
  26. package/dist/components/checkbox/sp-checkbox.css.js +1 -1
  27. package/dist/components/checkbox-group/sp-checkbox-group.css.js +1 -1
  28. package/dist/components/color-picker/sp-color-picker.css.js +1 -1
  29. package/dist/components/color-picker/sp-color-picker.template.d.ts.map +1 -1
  30. package/dist/components/color-picker/sp-color-picker.template.js +15 -14
  31. package/dist/components/combobox/sp-combobox.css.js +1 -1
  32. package/dist/components/combobox/sp-combobox.d.ts.map +1 -1
  33. package/dist/components/combobox/sp-combobox.js +26 -20
  34. package/dist/components/command-palette/sp-command-palette.css.js +1 -1
  35. package/dist/components/confirm-dialog/sp-confirm-dialog.css.js +1 -1
  36. package/dist/components/copy-button/sp-copy-button.css.js +1 -1
  37. package/dist/components/divider/sp-divider.css.js +1 -1
  38. package/dist/components/drawer/sp-drawer.css.js +1 -1
  39. package/dist/components/drawer/sp-drawer.d.ts +4 -0
  40. package/dist/components/drawer/sp-drawer.d.ts.map +1 -1
  41. package/dist/components/drawer/sp-drawer.js +78 -69
  42. package/dist/components/empty-state/sp-empty-state.css.js +1 -1
  43. package/dist/components/file-upload/sp-file-upload.css.js +1 -1
  44. package/dist/components/form-field/sp-form-field.css.js +1 -1
  45. package/dist/components/gallery/sp-gallery.css.js +1 -1
  46. package/dist/components/icon/sp-icon.css.js +2 -2
  47. package/dist/components/input/sp-input.css.js +1 -1
  48. package/dist/components/kbd/sp-kbd.css.js +1 -1
  49. package/dist/components/menu/sp-menu-item.css.js +1 -1
  50. package/dist/components/menu/sp-menu.css.js +1 -1
  51. package/dist/components/menu/sp-menu.d.ts +1 -0
  52. package/dist/components/menu/sp-menu.d.ts.map +1 -1
  53. package/dist/components/menu/sp-menu.js +33 -33
  54. package/dist/components/modal/sp-modal.css.js +1 -1
  55. package/dist/components/modal/sp-modal.d.ts +2 -0
  56. package/dist/components/modal/sp-modal.d.ts.map +1 -1
  57. package/dist/components/modal/sp-modal.js +60 -51
  58. package/dist/components/navbar/sp-navbar.css.js +2 -2
  59. package/dist/components/number-input/sp-number-input.css.js +1 -1
  60. package/dist/components/number-input/sp-number-input.d.ts.map +1 -1
  61. package/dist/components/number-input/sp-number-input.js +55 -52
  62. package/dist/components/otp-input/sp-otp-input.css.js +1 -1
  63. package/dist/components/pagination/sp-pagination.css.js +1 -1
  64. package/dist/components/popover/sp-popover.css.js +1 -1
  65. package/dist/components/progress-bar/sp-progress-bar.css.js +1 -1
  66. package/dist/components/radio/sp-radio-group.css.js +1 -1
  67. package/dist/components/radio/sp-radio.css.js +1 -1
  68. package/dist/components/radio/sp-radio.d.ts +1 -0
  69. package/dist/components/radio/sp-radio.d.ts.map +1 -1
  70. package/dist/components/radio/sp-radio.js +19 -16
  71. package/dist/components/rating/sp-rating.css.js +2 -2
  72. package/dist/components/scroll-area/sp-scroll-area.css.js +1 -1
  73. package/dist/components/scroll-area/sp-scroll-area.d.ts +1 -0
  74. package/dist/components/scroll-area/sp-scroll-area.d.ts.map +1 -1
  75. package/dist/components/scroll-area/sp-scroll-area.js +43 -44
  76. package/dist/components/select/sp-select.css.js +1 -1
  77. package/dist/components/sidebar/sp-sidebar.css.js +1 -1
  78. package/dist/components/skeleton/sp-skeleton.css.js +1 -1
  79. package/dist/components/slider/sp-slider.css.js +1 -1
  80. package/dist/components/spinner/sp-spinner.css.js +1 -1
  81. package/dist/components/split-panel/sp-split-panel.css.js +1 -1
  82. package/dist/components/stat/sp-stat.css.js +1 -1
  83. package/dist/components/stepper/sp-stepper.css.js +1 -1
  84. package/dist/components/switch/sp-switch.css.js +1 -1
  85. package/dist/components/table/sp-table.css.js +1 -1
  86. package/dist/components/table/sp-table.d.ts +80 -17
  87. package/dist/components/table/sp-table.d.ts.map +1 -1
  88. package/dist/components/table/sp-table.js +237 -82
  89. package/dist/components/table/sp-table.template.d.ts.map +1 -1
  90. package/dist/components/table/sp-table.template.js +337 -67
  91. package/dist/components/table/sp-table.types.d.ts +22 -0
  92. package/dist/components/table/sp-table.types.d.ts.map +1 -1
  93. package/dist/components/tabs/sp-tab.css.js +2 -2
  94. package/dist/components/tabs/sp-tabs.css.js +1 -1
  95. package/dist/components/tag/sp-tag.css.js +1 -1
  96. package/dist/components/tag-input/sp-tag-input.css.js +2 -2
  97. package/dist/components/textarea/sp-textarea.css.js +1 -1
  98. package/dist/components/time-picker/sp-time-picker.css.js +1 -1
  99. package/dist/components/timeline/sp-timeline.css.js +1 -1
  100. package/dist/components/toast/sp-toast.css.js +1 -1
  101. package/dist/components/toast/sp-toast.d.ts +1 -0
  102. package/dist/components/toast/sp-toast.d.ts.map +1 -1
  103. package/dist/components/toast/sp-toast.js +32 -33
  104. package/dist/components/toast-stack/sp-toast-stack.css.js +1 -1
  105. package/dist/components/tooltip/sp-tooltip.css.js +2 -2
  106. package/dist/components/tree/sp-tree-item.css.js +1 -1
  107. package/dist/components/tree/sp-tree.css.js +2 -2
  108. package/dist/components/visually-hidden/sp-visually-hidden.css.js +2 -2
  109. package/dist/config.d.ts +28 -0
  110. package/dist/config.d.ts.map +1 -0
  111. package/dist/config.js +44 -0
  112. package/dist/index.d.ts +2 -0
  113. package/dist/index.d.ts.map +1 -1
  114. package/dist/index.js +2 -0
  115. package/package.json +13 -9
@@ -1,4 +1,4 @@
1
- const e = ":host{display:block;--sp-gallery-bg: var(--sp-bg-subtle, #f8fafc);--sp-gallery-item-radius: 10px;--sp-gallery-caption-bg: rgba(0, 0, 0, .55);--sp-gallery-caption-color: #ffffff;--sp-gallery-selected-color: #6366f1;--sp-gallery-overlay-bg: rgba(0, 0, 0, .35);--sp-gallery-lightbox-bg: rgba(0, 0, 0, .92);--sp-gallery-lightbox-nav-bg: rgba(255, 255, 255, .12);--sp-gallery-lightbox-nav-hover: rgba(255, 255, 255, .22);--sp-gallery-skeleton-bg: var(--sp-border-subtle, #e2e8f0);--sp-gallery-skeleton-shine: var(--sp-bg-subtle, #f1f5f9)}.sp-gallery--grid{display:grid;grid-template-columns:repeat(var(--sp-gallery-cols, 3),1fr);gap:var(--sp-gallery-gap, 8px)}.sp-gallery--masonry{columns:var(--sp-gallery-cols, 3);column-gap:var(--sp-gallery-gap, 8px)}.sp-gallery--masonry .sp-gallery-item{break-inside:avoid;margin-bottom:var(--sp-gallery-gap, 8px)}.sp-gallery-item{position:relative;overflow:hidden;border-radius:var(--sp-gallery-item-radius);cursor:pointer;outline:none;background:var(--sp-gallery-skeleton-bg);transition:transform .18s ease,box-shadow .18s ease}.sp-gallery--grid .sp-gallery-item{aspect-ratio:var(--sp-gallery-ratio, 4/3)}.sp-gallery-item:focus-visible{outline:3px solid var(--sp-gallery-selected-color);outline-offset:2px;z-index:1}.sp-gallery-item--zoomable:hover,.sp-gallery-item--selectable:hover{transform:scale(1.02);box-shadow:0 8px 24px #00000026}.sp-gallery-img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.sp-gallery--masonry .sp-gallery-img{height:auto}.sp-gallery-item:hover .sp-gallery-img{transform:scale(1.04)}.sp-gallery-item-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:var(--sp-gallery-overlay-bg);color:#fff;opacity:0;transition:opacity .2s ease;border-radius:var(--sp-gallery-item-radius)}.sp-gallery-item:hover .sp-gallery-item-overlay{opacity:1}.sp-gallery-item-caption{position:absolute;bottom:0;left:0;right:0;padding:8px 10px;background:var(--sp-gallery-caption-bg);color:var(--sp-gallery-caption-color);font-size:.78rem;line-height:1.4;transform:translateY(100%);transition:transform .2s ease;border-radius:0 0 var(--sp-gallery-item-radius) var(--sp-gallery-item-radius)}.sp-gallery-item:hover .sp-gallery-item-caption{transform:translateY(0)}.sp-gallery-item-checkbox{position:absolute;top:8px;left:8px;width:22px;height:22px;border-radius:50%;background:#ffffffd9;border:2px solid rgba(0,0,0,.15);display:flex;align-items:center;justify-content:center;transition:background .15s,border-color .15s,transform .15s}.sp-gallery-item--selected .sp-gallery-item-checkbox{background:var(--sp-gallery-selected-color);border-color:var(--sp-gallery-selected-color);color:#fff;transform:scale(1.1)}.sp-gallery-item--selected{box-shadow:0 0 0 3px var(--sp-gallery-selected-color)}.sp-gallery-item--skeleton{aspect-ratio:var(--sp-gallery-ratio, 4/3);background:linear-gradient(90deg,var(--sp-gallery-skeleton-bg) 25%,var(--sp-gallery-skeleton-shine) 50%,var(--sp-gallery-skeleton-bg) 75%);background-size:200% 100%;animation:sp-gallery-shimmer 1.4s ease infinite;cursor:default}@keyframes sp-gallery-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.sp-gallery-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:48px 24px;color:var(--sp-text-placeholder, #94a3b8);font-size:.9rem}.sp-gallery-lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:var(--sp-gallery-lightbox-bg);display:flex;align-items:center;justify-content:center;animation:sp-gallery-lb-in .2s ease forwards}@keyframes sp-gallery-lb-in{0%{opacity:0}to{opacity:1}}.sp-gallery-lightbox-stage{position:relative;display:flex;flex-direction:column;align-items:center;max-width:min(92vw,1100px);max-height:90vh}.sp-gallery-lightbox-img{max-width:100%;max-height:80vh;object-fit:contain;border-radius:8px;opacity:0;transition:opacity .25s ease;display:block}.sp-gallery-lightbox-img--loaded{opacity:1}.sp-gallery-lightbox-caption{margin:10px 0 0;color:#ffffffbf;font-size:.85rem;text-align:center}.sp-gallery-lightbox-close{position:fixed;top:16px;right:16px;width:40px;height:40px;border-radius:50%;border:none;background:#ffffff1f;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s;z-index:10}.sp-gallery-lightbox-close:hover{background:#ffffff38}.sp-gallery-lightbox-close:focus-visible{outline:2px solid #fff;outline-offset:2px}.sp-gallery-lightbox-counter{position:fixed;top:20px;left:50%;transform:translate(-50%);color:#ffffffa6;font-size:.82rem;letter-spacing:.05em;-webkit-user-select:none;user-select:none}.sp-gallery-lightbox-nav{position:fixed;top:50%;transform:translateY(-50%);width:48px;height:48px;border-radius:50%;border:none;background:var(--sp-gallery-lightbox-nav-bg);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s;z-index:10}.sp-gallery-lightbox-nav:hover{background:var(--sp-gallery-lightbox-nav-hover)}.sp-gallery-lightbox-nav:focus-visible{outline:2px solid #fff;outline-offset:2px}.sp-gallery-lightbox-nav--prev{left:16px}.sp-gallery-lightbox-nav--next{right:16px}.sp-gallery-lightbox-dots{position:fixed;bottom:20px;left:50%;transform:translate(-50%);display:flex;gap:6px;align-items:center}.sp-gallery-lightbox-dot{width:7px;height:7px;border-radius:50%;border:none;background:#ffffff59;cursor:pointer;padding:0;transition:background .15s,transform .15s}.sp-gallery-lightbox-dot--active{background:#fff;transform:scale(1.4)}.sp-gallery-lightbox-dot:focus-visible{outline:2px solid #fff;outline-offset:2px}.sp-gallery-lightbox-spinner{width:36px;height:36px;border:3px solid rgba(255,255,255,.2);border-top-color:#fff;border-radius:50%;animation:sp-gallery-spin .7s linear infinite;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes sp-gallery-spin{to{transform:translate(-50%,-50%) rotate(360deg)}}@media(prefers-reduced-motion:reduce){.sp-gallery-item,.sp-gallery-img,.sp-gallery-item-caption,.sp-gallery-item-overlay,.sp-gallery-lightbox-img{transition:none}.sp-gallery-item--skeleton,.sp-gallery-lightbox,.sp-gallery-lightbox-spinner{animation:none}.sp-gallery-item:hover,.sp-gallery-item:hover .sp-gallery-img{transform:none}}";
1
+ const e = "*,*:before,*:after{box-sizing:border-box}:host{display:block;--sp-gallery-bg: var(--sp-bg-subtle, #f8fafc);--sp-gallery-item-radius: 10px;--sp-gallery-caption-bg: rgba(0, 0, 0, .55);--sp-gallery-caption-color: #ffffff;--sp-gallery-selected-color: #6366f1;--sp-gallery-overlay-bg: rgba(0, 0, 0, .35);--sp-gallery-lightbox-bg: rgba(0, 0, 0, .92);--sp-gallery-lightbox-nav-bg: rgba(255, 255, 255, .12);--sp-gallery-lightbox-nav-hover: rgba(255, 255, 255, .22);--sp-gallery-skeleton-bg: var(--sp-border-subtle, #e2e8f0);--sp-gallery-skeleton-shine: var(--sp-bg-subtle, #f1f5f9)}.sp-gallery--grid{display:grid;grid-template-columns:repeat(var(--sp-gallery-cols, 3),1fr);gap:var(--sp-gallery-gap, 8px)}.sp-gallery--masonry{columns:var(--sp-gallery-cols, 3);column-gap:var(--sp-gallery-gap, 8px)}.sp-gallery--masonry .sp-gallery-item{break-inside:avoid;margin-bottom:var(--sp-gallery-gap, 8px)}.sp-gallery-item{position:relative;overflow:hidden;border-radius:var(--sp-gallery-item-radius);cursor:pointer;outline:none;background:var(--sp-gallery-skeleton-bg);transition:transform .18s ease,box-shadow .18s ease}.sp-gallery--grid .sp-gallery-item{aspect-ratio:var(--sp-gallery-ratio, 4/3)}.sp-gallery-item:focus-visible{outline:3px solid var(--sp-gallery-selected-color);outline-offset:2px;z-index:1}.sp-gallery-item--zoomable:hover,.sp-gallery-item--selectable:hover{transform:scale(1.02);box-shadow:0 8px 24px #00000026}.sp-gallery-img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.sp-gallery--masonry .sp-gallery-img{height:auto}.sp-gallery-item:hover .sp-gallery-img{transform:scale(1.04)}.sp-gallery-item-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:var(--sp-gallery-overlay-bg);color:#fff;opacity:0;transition:opacity .2s ease;border-radius:var(--sp-gallery-item-radius)}.sp-gallery-item:hover .sp-gallery-item-overlay{opacity:1}.sp-gallery-item-caption{position:absolute;bottom:0;left:0;right:0;padding:8px 10px;background:var(--sp-gallery-caption-bg);color:var(--sp-gallery-caption-color);font-size:.78rem;line-height:1.4;transform:translateY(100%);transition:transform .2s ease;border-radius:0 0 var(--sp-gallery-item-radius) var(--sp-gallery-item-radius)}.sp-gallery-item:hover .sp-gallery-item-caption{transform:translateY(0)}.sp-gallery-item-checkbox{position:absolute;top:8px;left:8px;width:22px;height:22px;border-radius:50%;background:#ffffffd9;border:2px solid rgba(0,0,0,.15);display:flex;align-items:center;justify-content:center;transition:background .15s,border-color .15s,transform .15s}.sp-gallery-item--selected .sp-gallery-item-checkbox{background:var(--sp-gallery-selected-color);border-color:var(--sp-gallery-selected-color);color:#fff;transform:scale(1.1)}.sp-gallery-item--selected{box-shadow:0 0 0 3px var(--sp-gallery-selected-color)}.sp-gallery-item--skeleton{aspect-ratio:var(--sp-gallery-ratio, 4/3);background:linear-gradient(90deg,var(--sp-gallery-skeleton-bg) 25%,var(--sp-gallery-skeleton-shine) 50%,var(--sp-gallery-skeleton-bg) 75%);background-size:200% 100%;animation:sp-gallery-shimmer 1.4s ease infinite;cursor:default}@keyframes sp-gallery-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.sp-gallery-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:48px 24px;color:var(--sp-text-placeholder, #94a3b8);font-size:.9rem}.sp-gallery-lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:var(--sp-gallery-lightbox-bg);display:flex;align-items:center;justify-content:center;animation:sp-gallery-lb-in .2s ease forwards}@keyframes sp-gallery-lb-in{0%{opacity:0}to{opacity:1}}.sp-gallery-lightbox-stage{position:relative;display:flex;flex-direction:column;align-items:center;max-width:min(92vw,1100px);max-height:90vh}.sp-gallery-lightbox-img{max-width:100%;max-height:80vh;object-fit:contain;border-radius:8px;opacity:0;transition:opacity .25s ease;display:block}.sp-gallery-lightbox-img--loaded{opacity:1}.sp-gallery-lightbox-caption{margin:10px 0 0;color:#ffffffbf;font-size:.85rem;text-align:center}.sp-gallery-lightbox-close{position:fixed;top:16px;right:16px;width:40px;height:40px;border-radius:50%;border:none;background:#ffffff1f;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s;z-index:10}.sp-gallery-lightbox-close:hover{background:#ffffff38}.sp-gallery-lightbox-close:focus-visible{outline:2px solid #fff;outline-offset:2px}.sp-gallery-lightbox-counter{position:fixed;top:20px;left:50%;transform:translate(-50%);color:#ffffffa6;font-size:.82rem;letter-spacing:.05em;-webkit-user-select:none;user-select:none}.sp-gallery-lightbox-nav{position:fixed;top:50%;transform:translateY(-50%);width:48px;height:48px;border-radius:50%;border:none;background:var(--sp-gallery-lightbox-nav-bg);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s;z-index:10}.sp-gallery-lightbox-nav:hover{background:var(--sp-gallery-lightbox-nav-hover)}.sp-gallery-lightbox-nav:focus-visible{outline:2px solid #fff;outline-offset:2px}.sp-gallery-lightbox-nav--prev{left:16px}.sp-gallery-lightbox-nav--next{right:16px}.sp-gallery-lightbox-dots{position:fixed;bottom:20px;left:50%;transform:translate(-50%);display:flex;gap:6px;align-items:center}.sp-gallery-lightbox-dot{width:7px;height:7px;border-radius:50%;border:none;background:#ffffff59;cursor:pointer;padding:0;transition:background .15s,transform .15s}.sp-gallery-lightbox-dot--active{background:#fff;transform:scale(1.4)}.sp-gallery-lightbox-dot:focus-visible{outline:2px solid #fff;outline-offset:2px}.sp-gallery-lightbox-spinner{width:36px;height:36px;border:3px solid rgba(255,255,255,.2);border-top-color:#fff;border-radius:50%;animation:sp-gallery-spin .7s linear infinite;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes sp-gallery-spin{to{transform:translate(-50%,-50%) rotate(360deg)}}@media(prefers-reduced-motion:reduce){.sp-gallery-item,.sp-gallery-img,.sp-gallery-item-caption,.sp-gallery-item-overlay,.sp-gallery-lightbox-img{transition:none}.sp-gallery-item--skeleton,.sp-gallery-lightbox,.sp-gallery-lightbox-spinner{animation:none}.sp-gallery-item:hover,.sp-gallery-item:hover .sp-gallery-img{transform:none}}";
2
2
  export {
3
3
  e as default
4
4
  };
@@ -1,4 +1,4 @@
1
- const t = ':host{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px}:host([size="xs"]){width:12px;height:12px}:host([size="sm"]){width:16px;height:16px}:host([size="md"]){width:24px;height:24px}:host([size="lg"]){width:32px;height:32px}:host([size="xl"]){width:48px;height:48px}svg{width:100%;height:100%;display:block;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}@media(prefers-reduced-motion:reduce){:host{transition:none!important}}';
1
+ const e = '*,*:before,*:after{box-sizing:border-box}:host{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px}:host([size="xs"]){width:12px;height:12px}:host([size="sm"]){width:16px;height:16px}:host([size="md"]){width:24px;height:24px}:host([size="lg"]){width:32px;height:32px}:host([size="xl"]){width:48px;height:48px}svg{width:100%;height:100%;display:block;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}@media(prefers-reduced-motion:reduce){:host{transition:none!important}}';
2
2
  export {
3
- t as default
3
+ e as default
4
4
  };
@@ -1,4 +1,4 @@
1
- const r = ':host{display:block;font-family:inherit}.sp-input-label{display:block;font-size:14px;font-weight:500;color:var(--sp-text-secondary, #374151);margin-bottom:4px}.sp-required{color:var(--sp-error, #FF4D4F)}.sp-input-container{display:flex;align-items:center;gap:8px;border:1px solid var(--sp-border, #d1d5db);border-radius:4px;background:var(--sp-bg, white);padding:0 12px;transition:border-color .2s}.sp-input-container:focus-within{border-color:var(--sp-primary, #3b82f6);outline:2px solid var(--sp-primary-focus, rgba(59, 130, 246, .2));outline-offset:-1px}.sp-input-container--error{border-color:var(--sp-error, #FF4D4F)}.sp-input-container--error:focus-within{border-color:var(--sp-error, #FF4D4F);outline-color:var(--sp-error-focus, rgba(255, 77, 79, .2))}input{flex:1;border:none;outline:none;background:transparent;font-size:14px;font-family:inherit;color:var(--sp-text, #111827);padding:8px 0;min-width:0}input::placeholder{color:var(--sp-text-placeholder, #9ca3af)}:host([size="sm"]) .sp-input-container{padding:0 8px}:host([size="sm"]) input{padding:6px 0;font-size:12px}:host([size="lg"]) .sp-input-container{padding:0 16px}:host([size="lg"]) input{padding:12px 0;font-size:16px}:host([disabled]) .sp-input-container{opacity:.5;cursor:not-allowed;background:var(--sp-bg-subtle, #f9fafb)}:host([disabled]) input{cursor:not-allowed}:host([readonly]) .sp-input-container{background:var(--sp-bg-subtle, #f9fafb)}.sp-input-clear{border:none;background:none;cursor:pointer;color:var(--sp-text-placeholder, #9ca3af);padding:0;display:flex;align-items:center;line-height:1}.sp-input-clear:hover{color:var(--sp-text-secondary, #374151)}.sp-input-footer{display:flex;justify-content:space-between;align-items:center;margin-top:4px;min-height:16px}.sp-input-error{font-size:12px;color:var(--sp-error, #FF4D4F)}.sp-input-hint{font-size:12px;color:var(--sp-text-muted, #6b7280)}.sp-input-count{font-size:12px;color:var(--sp-text-placeholder, #9ca3af);margin-left:auto;white-space:nowrap}@media(max-width:479px){:host{width:100%}.sp-input-wrapper{width:100%}.sp-input-container{width:100%;box-sizing:border-box}}@media(prefers-reduced-motion:reduce){input{transition:none}}';
1
+ const r = '*,*:before,*:after{box-sizing:border-box}:host{display:block;font-family:inherit}.sp-input-label{display:block;font-size:14px;font-weight:500;color:var(--sp-text-secondary, #374151);margin-bottom:4px}.sp-required{color:var(--sp-error, #FF4D4F)}.sp-input-container{display:flex;align-items:center;gap:8px;border:1px solid var(--sp-border, #d1d5db);border-radius:4px;background:var(--sp-bg, white);padding:0 12px;transition:border-color .2s}.sp-input-container:focus-within{border-color:var(--sp-primary, #3b82f6);outline:2px solid var(--sp-primary-focus, rgba(59, 130, 246, .2));outline-offset:-1px}.sp-input-container--error{border-color:var(--sp-error, #FF4D4F)}.sp-input-container--error:focus-within{border-color:var(--sp-error, #FF4D4F);outline-color:var(--sp-error-focus, rgba(255, 77, 79, .2))}input{flex:1;border:none;outline:none;background:transparent;font-size:14px;font-family:inherit;color:var(--sp-text, #111827);padding:8px 0;min-width:0}input::placeholder{color:var(--sp-text-placeholder, #9ca3af)}:host([size="sm"]) .sp-input-container{padding:0 8px}:host([size="sm"]) input{padding:6px 0;font-size:12px}:host([size="lg"]) .sp-input-container{padding:0 16px}:host([size="lg"]) input{padding:12px 0;font-size:16px}:host([disabled]) .sp-input-container{opacity:.5;cursor:not-allowed;background:var(--sp-bg-subtle, #f9fafb)}:host([disabled]) input{cursor:not-allowed}:host([readonly]) .sp-input-container{background:var(--sp-bg-subtle, #f9fafb)}.sp-input-clear{border:none;background:none;cursor:pointer;color:var(--sp-text-placeholder, #9ca3af);padding:0;display:flex;align-items:center;line-height:1}.sp-input-clear:hover{color:var(--sp-text-secondary, #374151)}.sp-input-footer{display:flex;justify-content:space-between;align-items:center;margin-top:4px;min-height:16px}.sp-input-error{font-size:12px;color:var(--sp-error, #FF4D4F)}.sp-input-hint{font-size:12px;color:var(--sp-text-muted, #6b7280)}.sp-input-count{font-size:12px;color:var(--sp-text-placeholder, #9ca3af);margin-left:auto;white-space:nowrap}@media(max-width:479px){:host{width:100%}.sp-input-wrapper{width:100%}.sp-input-container{width:100%;box-sizing:border-box}}@media(prefers-reduced-motion:reduce){input{transition:none}}';
2
2
  export {
3
3
  r as default
4
4
  };
@@ -1,4 +1,4 @@
1
- const e = ':host{display:inline-block;vertical-align:middle;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace}kbd{display:inline-flex;align-items:center;justify-content:center;min-width:1.8em;padding:.2em .5em;background:linear-gradient(to bottom,var(--sp-bg-subtle, #f9fafb),var(--sp-bg-muted, #f3f4f6));border:1px solid var(--sp-border, #d1d5db);border-radius:4px;box-shadow:inset 0 -1px 0 var(--sp-border-strong, #9ca3af),0 1px 3px #0000001f;color:var(--sp-text, #1f2937);font-family:inherit;font-weight:600;line-height:1;white-space:nowrap;user-select:none;-webkit-user-select:none}:host([size="sm"]) kbd{font-size:10px;min-width:1.6em;padding:.15em .4em;border-radius:3px}:host([size="md"]) kbd{font-size:13px}:host([size="lg"]) kbd{font-size:16px;min-width:2em;padding:.25em .6em;border-radius:5px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}';
1
+ const e = '*,*:before,*:after{box-sizing:border-box}:host{display:inline-block;vertical-align:middle;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace}kbd{display:inline-flex;align-items:center;justify-content:center;min-width:1.8em;padding:.2em .5em;background:linear-gradient(to bottom,var(--sp-bg-subtle, #f9fafb),var(--sp-bg-muted, #f3f4f6));border:1px solid var(--sp-border, #d1d5db);border-radius:4px;box-shadow:inset 0 -1px 0 var(--sp-border-strong, #9ca3af),0 1px 3px #0000001f;color:var(--sp-text, #1f2937);font-family:inherit;font-weight:600;line-height:1;white-space:nowrap;user-select:none;-webkit-user-select:none}:host([size="sm"]) kbd{font-size:10px;min-width:1.6em;padding:.15em .4em;border-radius:3px}:host([size="md"]) kbd{font-size:13px}:host([size="lg"]) kbd{font-size:16px;min-width:2em;padding:.25em .6em;border-radius:5px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}';
2
2
  export {
3
3
  e as default
4
4
  };
@@ -1,4 +1,4 @@
1
- const e = ":host{display:block}.sp-menu-item{display:flex;align-items:center;gap:8px;padding:8px 16px;font-size:14px;color:var(--sp-text-secondary, #374151);cursor:pointer;transition:background .1s;-webkit-user-select:none;user-select:none}.sp-menu-item:hover:not(.sp-menu-item--disabled){background:var(--sp-bg-muted, #f3f4f6)}.sp-menu-item--danger{color:var(--sp-error, #FF4D4F)}.sp-menu-item--danger:hover:not(.sp-menu-item--disabled){background:var(--sp-error-bg, #FFF2F0)}.sp-menu-item--disabled{opacity:.4;cursor:not-allowed}.sp-menu-item-label{flex:1}:host(:focus-visible),:host(:focus){outline:2px solid var(--sp-primary, #3b82f6);outline-offset:-2px;border-radius:4px}.sp-menu-item-divider{border:none;border-top:1px solid var(--sp-border-subtle, #e5e7eb);margin:4px 0}.sp-menu-item-check{width:16px;flex-shrink:0;font-size:13px;color:var(--sp-primary, #3b82f6)}.sp-menu-item-arrow{margin-left:auto;font-size:12px;opacity:.6}.sp-menu-item-submenu{position:absolute;top:0;left:calc(100% + 2px);z-index:10000;background:var(--sp-bg, white);border:1px solid var(--sp-border-subtle, #e5e7eb);border-radius:8px;box-shadow:0 8px 24px #0000001f;min-width:160px;padding:4px 0}@media(max-width:480px){.sp-menu-item-submenu{position:static;box-shadow:none;border:none;border-top:1px solid var(--sp-border-subtle, #e5e7eb);border-radius:0;margin-top:2px;padding-left:16px}}@media(prefers-reduced-motion:reduce){.sp-menu-item{transition:none}}";
1
+ const e = "*,*:before,*:after{box-sizing:border-box}:host{display:block}.sp-menu-item{display:flex;align-items:center;gap:8px;padding:8px 16px;font-size:14px;color:var(--sp-text-secondary, #374151);cursor:pointer;transition:background .1s;-webkit-user-select:none;user-select:none}.sp-menu-item:hover:not(.sp-menu-item--disabled){background:var(--sp-bg-muted, #f3f4f6)}.sp-menu-item--danger{color:var(--sp-error, #FF4D4F)}.sp-menu-item--danger:hover:not(.sp-menu-item--disabled){background:var(--sp-error-bg, #FFF2F0)}.sp-menu-item--disabled{opacity:.4;cursor:not-allowed}.sp-menu-item-label{flex:1}:host(:focus-visible),:host(:focus){outline:2px solid var(--sp-primary, #3b82f6);outline-offset:-2px;border-radius:4px}.sp-menu-item-divider{border:none;border-top:1px solid var(--sp-border-subtle, #e5e7eb);margin:4px 0}.sp-menu-item-check{width:16px;flex-shrink:0;font-size:13px;color:var(--sp-primary, #3b82f6)}.sp-menu-item-arrow{margin-left:auto;font-size:12px;opacity:.6}.sp-menu-item-submenu{position:absolute;top:0;left:calc(100% + 2px);z-index:10000;background:var(--sp-bg, white);border:1px solid var(--sp-border-subtle, #e5e7eb);border-radius:8px;box-shadow:0 8px 24px #0000001f;min-width:160px;padding:4px 0}@media(max-width:480px){.sp-menu-item-submenu{position:static;box-shadow:none;border:none;border-top:1px solid var(--sp-border-subtle, #e5e7eb);border-radius:0;margin-top:2px;padding-left:16px}}@media(prefers-reduced-motion:reduce){.sp-menu-item{transition:none}}";
2
2
  export {
3
3
  e as default
4
4
  };
@@ -1,4 +1,4 @@
1
- const e = ':host{display:inline-block;position:relative}.sp-menu-wrapper{position:relative;display:inline-flex}.sp-menu-trigger{display:inline-flex;cursor:pointer}.sp-menu-panel{position:absolute;z-index:9999;background:var(--sp-bg, white);border:1px solid var(--sp-border-subtle, #e5e7eb);border-radius:8px;box-shadow:0 8px 24px #0000001f;min-width:160px;padding:4px 0}:host([placement="bottom-start"]) .sp-menu-panel{top:calc(100% + 4px);left:0}:host([placement="bottom-end"]) .sp-menu-panel{top:calc(100% + 4px);right:0}:host([placement="top-start"]) .sp-menu-panel{bottom:calc(100% + 4px);left:0}:host([placement="top-end"]) .sp-menu-panel{bottom:calc(100% + 4px);right:0}:host([placement="right"]) .sp-menu-panel{left:calc(100% + 4px);top:0}:host([placement="left"]) .sp-menu-panel{right:calc(100% + 4px);top:0}.sp-menu-trigger:focus-visible{outline:2px solid var(--sp-primary, #3b82f6);outline-offset:2px;border-radius:4px}@media(prefers-reduced-motion:reduce){.sp-menu-panel{transition:none}}';
1
+ const e = '*,*:before,*:after{box-sizing:border-box}:host{display:inline-block;position:relative}.sp-menu-wrapper{position:relative;display:inline-flex}.sp-menu-trigger{display:inline-flex;cursor:pointer}.sp-menu-panel{position:absolute;z-index:9999;background:var(--sp-bg, white);border:1px solid var(--sp-border-subtle, #e5e7eb);border-radius:8px;box-shadow:0 8px 24px #0000001f;min-width:160px;padding:4px 0}:host([placement="bottom-start"]) .sp-menu-panel{top:calc(100% + 4px);left:0}:host([placement="bottom-end"]) .sp-menu-panel{top:calc(100% + 4px);right:0}:host([placement="top-start"]) .sp-menu-panel{bottom:calc(100% + 4px);left:0}:host([placement="top-end"]) .sp-menu-panel{bottom:calc(100% + 4px);right:0}:host([placement="right"]) .sp-menu-panel{left:calc(100% + 4px);top:0}:host([placement="left"]) .sp-menu-panel{right:calc(100% + 4px);top:0}.sp-menu-trigger:focus-visible{outline:2px solid var(--sp-primary, #3b82f6);outline-offset:2px;border-radius:4px}@media(prefers-reduced-motion:reduce){.sp-menu-panel{transition:none}}';
2
2
  export {
3
3
  e as default
4
4
  };
@@ -19,6 +19,7 @@ export declare class SpMenuComponent extends LitElement {
19
19
  placement: SpMenuPlacement;
20
20
  open: boolean;
21
21
  private _prevOpen;
22
+ private _closeTimer;
22
23
  render(): import('lit-html').TemplateResult;
23
24
  updated(changedProperties: Map<string, unknown>): void;
24
25
  connectedCallback(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"sp-menu.d.ts","sourceRoot":"","sources":["../../../src/components/menu/sp-menu.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAI5C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE1D;;;;;;;;;;;;;GAaG;AACH,qBACa,eAAgB,SAAQ,UAAU;IAC7C,OAAgB,MAAM,0BAAqB;IAG3C,SAAS,EAAE,eAAe,CAAkB;IAG5C,IAAI,UAAS;IAEb,OAAO,CAAC,SAAS,CAAS;IAEjB,MAAM;IAIN,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAetD,iBAAiB,IAAI,IAAI;IAMzB,oBAAoB,IAAI,IAAI;IAMrC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAuC7B;IAEF,QAAQ,CAAC,mBAAmB,QAAO,IAAI,CAErC;IAEF,QAAQ,CAAC,gBAAgB,QAAO,IAAI,CAIlC;IAEF,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAMlC;CACH;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,SAAS,EAAE,eAAe,CAAC;KAC5B;CACF"}
1
+ {"version":3,"file":"sp-menu.d.ts","sourceRoot":"","sources":["../../../src/components/menu/sp-menu.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAI5C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE1D;;;;;;;;;;;;;GAaG;AACH,qBACa,eAAgB,SAAQ,UAAU;IAC7C,OAAgB,MAAM,0BAAqB;IAG3C,SAAS,EAAE,eAAe,CAAkB;IAG5C,IAAI,UAAS;IAEb,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,WAAW,CAA8C;IAExD,MAAM;IAIN,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAetD,iBAAiB,IAAI,IAAI;IAMzB,oBAAoB,IAAI,IAAI;IAUrC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAuC7B;IAEF,QAAQ,CAAC,mBAAmB,QAAO,IAAI,CAErC;IAEF,QAAQ,CAAC,gBAAgB,QAAO,IAAI,CAMlC;IAEF,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAMlC;CACH;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,SAAS,EAAE,eAAe,CAAC;KAC5B;CACF"}
@@ -1,54 +1,54 @@
1
- import { unsafeCSS as m, LitElement as f } from "lit";
2
- import { property as d, customElement as v } from "lit/decorators.js";
3
- import y from "./sp-menu.css.js";
4
- import { menuTemplate as b } from "./sp-menu.template.js";
5
- var w = Object.defineProperty, C = Object.getOwnPropertyDescriptor, u = (t, e, s, o) => {
6
- for (var n = o > 1 ? void 0 : o ? C(e, s) : e, r = t.length - 1, i; r >= 0; r--)
7
- (i = t[r]) && (n = (o ? i(e, s, n) : i(n)) || n);
8
- return o && n && w(e, s, n), n;
1
+ import { unsafeCSS as d, LitElement as f } from "lit";
2
+ import { property as m, customElement as v } from "lit/decorators.js";
3
+ import _ from "./sp-menu.css.js";
4
+ import { menuTemplate as y } from "./sp-menu.template.js";
5
+ var b = Object.defineProperty, w = Object.getOwnPropertyDescriptor, u = (t, e, n, o) => {
6
+ for (var s = o > 1 ? void 0 : o ? w(e, n) : e, i = t.length - 1, r; i >= 0; i--)
7
+ (r = t[i]) && (s = (o ? r(e, n, s) : r(s)) || s);
8
+ return o && s && b(e, n, s), s;
9
9
  };
10
- let p = class extends f {
10
+ let c = class extends f {
11
11
  constructor() {
12
- super(...arguments), this.placement = "bottom-start", this.open = !1, this._prevOpen = !1, this._handleKeydown = (t) => {
13
- var o, n, r, i, c, a;
12
+ super(...arguments), this.placement = "bottom-start", this.open = !1, this._prevOpen = !1, this._closeTimer = null, this._handleKeydown = (t) => {
13
+ var o, s, i, r, p, h;
14
14
  if (!this.open) return;
15
15
  if (t.key === "Escape") {
16
- t.preventDefault(), this.open = !1, this.dispatchEvent(new CustomEvent("sp-hide", { bubbles: !0, composed: !0 })), (n = (o = this.shadowRoot) == null ? void 0 : o.querySelector(".sp-menu-trigger")) == null || n.focus();
16
+ t.preventDefault(), this.open = !1, this.dispatchEvent(new CustomEvent("sp-hide", { bubbles: !0, composed: !0 })), (s = (o = this.shadowRoot) == null ? void 0 : o.querySelector(".sp-menu-trigger")) == null || s.focus();
17
17
  return;
18
18
  }
19
19
  const e = Array.from(
20
20
  this.querySelectorAll("sp-menu-item:not([disabled])")
21
21
  );
22
22
  if (e.length === 0) return;
23
- const s = e.findIndex((l) => {
24
- var h;
25
- return l === document.activeElement || ((h = l.shadowRoot) == null ? void 0 : h.activeElement) !== null;
23
+ const n = e.findIndex((l) => {
24
+ var a;
25
+ return l === document.activeElement || ((a = l.shadowRoot) == null ? void 0 : a.activeElement) !== null;
26
26
  });
27
27
  if (t.key === "ArrowDown") {
28
28
  t.preventDefault();
29
- const l = s < e.length - 1 ? s + 1 : 0;
30
- (r = e[l]) == null || r.focus();
29
+ const l = n < e.length - 1 ? n + 1 : 0;
30
+ (i = e[l]) == null || i.focus();
31
31
  return;
32
32
  }
33
33
  if (t.key === "ArrowUp") {
34
34
  t.preventDefault();
35
- const l = s > 0 ? s - 1 : e.length - 1;
36
- (i = e[l]) == null || i.focus();
35
+ const l = n > 0 ? n - 1 : e.length - 1;
36
+ (r = e[l]) == null || r.focus();
37
37
  return;
38
38
  }
39
39
  if (t.key === "Home") {
40
- t.preventDefault(), (c = e[0]) == null || c.focus();
40
+ t.preventDefault(), (p = e[0]) == null || p.focus();
41
41
  return;
42
42
  }
43
43
  if (t.key === "End") {
44
- t.preventDefault(), (a = e[e.length - 1]) == null || a.focus();
44
+ t.preventDefault(), (h = e[e.length - 1]) == null || h.focus();
45
45
  return;
46
46
  }
47
47
  }, this._handleTriggerClick = () => {
48
48
  this.open = !this.open;
49
49
  }, this._handleItemClick = () => {
50
- setTimeout(() => {
51
- this.open = !1;
50
+ this._closeTimer !== null && clearTimeout(this._closeTimer), this._closeTimer = setTimeout(() => {
51
+ this._closeTimer = null, this.open = !1;
52
52
  }, 0);
53
53
  }, this._handleOutsideClick = (t) => {
54
54
  var e;
@@ -56,7 +56,7 @@ let p = class extends f {
56
56
  };
57
57
  }
58
58
  render() {
59
- return b.call(this);
59
+ return y.call(this);
60
60
  }
61
61
  updated(t) {
62
62
  t.has("open") && (this.open ? (this.dispatchEvent(new CustomEvent("sp-show", { bubbles: !0, composed: !0 })), this.updateComplete.then(() => {
@@ -68,19 +68,19 @@ let p = class extends f {
68
68
  super.connectedCallback(), document.addEventListener("click", this._handleOutsideClick), this.addEventListener("keydown", this._handleKeydown);
69
69
  }
70
70
  disconnectedCallback() {
71
- super.disconnectedCallback(), document.removeEventListener("click", this._handleOutsideClick), this.removeEventListener("keydown", this._handleKeydown);
71
+ super.disconnectedCallback(), document.removeEventListener("click", this._handleOutsideClick), this.removeEventListener("keydown", this._handleKeydown), this._closeTimer !== null && (clearTimeout(this._closeTimer), this._closeTimer = null);
72
72
  }
73
73
  };
74
- p.styles = m(y);
74
+ c.styles = d(_);
75
75
  u([
76
- d({ type: String, reflect: !0 })
77
- ], p.prototype, "placement", 2);
76
+ m({ type: String, reflect: !0 })
77
+ ], c.prototype, "placement", 2);
78
78
  u([
79
- d({ type: Boolean, reflect: !0 })
80
- ], p.prototype, "open", 2);
81
- p = u([
79
+ m({ type: Boolean, reflect: !0 })
80
+ ], c.prototype, "open", 2);
81
+ c = u([
82
82
  v("sp-menu")
83
- ], p);
83
+ ], c);
84
84
  export {
85
- p as SpMenuComponent
85
+ c as SpMenuComponent
86
86
  };
@@ -1,4 +1,4 @@
1
- const o = ':host{display:contents}dialog{padding:0;border:none;border-radius:8px;box-shadow:0 20px 60px #0000004d;max-height:90vh;overflow:hidden;display:flex;flex-direction:column}dialog::backdrop{background:var(--sp-overlay, rgba(0, 0, 0, .5))}:host([open]) dialog{animation:sp-modal-in .2s ease}@keyframes sp-modal-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}:host([size="sm"]) dialog{width:min(90vw,360px)}:host([size="md"]) dialog{width:min(90vw,520px)}:host([size="lg"]) dialog{width:min(90vw,720px)}:host([size="xl"]) dialog{width:min(90vw,960px)}:host([size="full"]) dialog{width:100vw;height:100vh;max-height:100vh;border-radius:0;margin:0}.sp-modal-panel{position:relative;display:flex;flex-direction:column;max-height:90vh;overflow:hidden;background:var(--sp-bg, white)}:host([size="full"]) .sp-modal-panel{max-height:100vh}.sp-modal-close{position:absolute;top:12px;right:12px;background:none;border:none;cursor:pointer;font-size:18px;color:var(--sp-text-muted, #6b7280);padding:4px;line-height:1;border-radius:4px;z-index:1}.sp-modal-close:hover{color:var(--sp-text, #111827);background:var(--sp-bg-muted, #f3f4f6)}.sp-modal-close:focus-visible{outline:2px solid var(--sp-primary-hover, #2563eb);outline-offset:2px}@media(prefers-reduced-motion:reduce){:host([open]) dialog{animation:none}}@media(max-width:480px){dialog{width:calc(100vw - 24px)!important;max-width:calc(100vw - 24px)!important;margin:12px}}.sp-modal-body{overflow-y:auto;padding:20px 24px}::slotted([slot="header"]){padding:20px 24px 16px;font-size:18px;font-weight:600;color:var(--sp-text, #111827);border-bottom:1px solid var(--sp-border-subtle, #e5e7eb)}::slotted([slot="footer"]){padding:16px 24px 20px;border-top:1px solid var(--sp-border-subtle, #e5e7eb);display:flex;justify-content:flex-end;gap:8px}';
1
+ const o = '*,*:before,*:after{box-sizing:border-box}:host{display:contents}dialog:not([open]){display:none}dialog{padding:0;border:none;border-radius:8px;box-shadow:0 20px 60px #0000004d;max-height:90vh;overflow:hidden;display:flex;flex-direction:column}dialog::backdrop{background:var(--sp-overlay, rgba(0, 0, 0, .5))}:host([open]) dialog{animation:sp-modal-in .2s ease}@keyframes sp-modal-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}:host([size="sm"]) dialog{width:min(90vw,360px)}:host([size="md"]) dialog{width:min(90vw,520px)}:host([size="lg"]) dialog{width:min(90vw,720px)}:host([size="xl"]) dialog{width:min(90vw,960px)}:host([size="full"]) dialog{width:100vw;height:100vh;max-height:100vh;border-radius:0;margin:0}.sp-modal-panel{position:relative;display:flex;flex-direction:column;max-height:90vh;overflow:hidden;background:var(--sp-bg, white)}:host([size="full"]) .sp-modal-panel{max-height:100vh}.sp-modal-close{position:absolute;top:12px;right:12px;background:none;border:none;cursor:pointer;font-size:18px;color:var(--sp-text-muted, #6b7280);padding:4px;line-height:1;border-radius:4px;z-index:1}.sp-modal-close:hover{color:var(--sp-text, #111827);background:var(--sp-bg-muted, #f3f4f6)}.sp-modal-close:focus-visible{outline:2px solid var(--sp-primary-hover, #2563eb);outline-offset:2px}@media(prefers-reduced-motion:reduce){:host([open]) dialog{animation:none}}@media(max-width:480px){dialog{width:calc(100vw - 24px)!important;max-width:calc(100vw - 24px)!important;margin:12px}}.sp-modal-body{overflow-y:auto;padding:20px 24px}::slotted([slot="header"]){padding:20px 24px 16px;font-size:18px;font-weight:600;color:var(--sp-text, #111827);border-bottom:1px solid var(--sp-border-subtle, #e5e7eb)}::slotted([slot="footer"]){padding:16px 24px 20px;border-top:1px solid var(--sp-border-subtle, #e5e7eb);display:flex;justify-content:flex-end;gap:8px}';
2
2
  export {
3
3
  o as default
4
4
  };
@@ -27,10 +27,12 @@ export declare class SpModalComponent extends LitElement {
27
27
  closable: boolean;
28
28
  closeOnOverlay: boolean;
29
29
  private _previousFocus;
30
+ private _afterHideTimer;
30
31
  private _getFocusableElements;
31
32
  private _handleKeydown;
32
33
  connectedCallback(): void;
33
34
  disconnectedCallback(): void;
35
+ private readonly _handlePageHide;
34
36
  render(): import('lit-html').TemplateResult;
35
37
  updated(changed: Map<string, unknown>): void;
36
38
  readonly _handleClose: () => void;
@@ -1 +1 @@
1
- {"version":3,"file":"sp-modal.d.ts","sourceRoot":"","sources":["../../../src/components/modal/sp-modal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAI5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBACa,gBAAiB,SAAQ,UAAU;IAC9C,OAAgB,MAAM,0BAAqB;IAG3C,IAAI,UAAS;IAGb,KAAK,SAAM;IAGX,IAAI,EAAE,WAAW,CAAQ;IAGzB,QAAQ,UAAQ;IAGhB,cAAc,UAAQ;IAEtB,OAAO,CAAC,cAAc,CAAwB;IAE9C,OAAO,CAAC,qBAAqB;IAU7B,OAAO,CAAC,cAAc,CAwBpB;IAEO,iBAAiB;IAKjB,oBAAoB;IAOpB,MAAM;IAIN,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;IAkC9C,QAAQ,CAAC,YAAY,aAEnB;IAEF,QAAQ,CAAC,mBAAmB,GAAI,GAAG,UAAU,UAE3C;CACH;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,UAAU,EAAE,gBAAgB,CAAC;KAC9B;CACF"}
1
+ {"version":3,"file":"sp-modal.d.ts","sourceRoot":"","sources":["../../../src/components/modal/sp-modal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAI5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBACa,gBAAiB,SAAQ,UAAU;IAC9C,OAAgB,MAAM,0BAAqB;IAG3C,IAAI,UAAS;IAGb,KAAK,SAAM;IAGX,IAAI,EAAE,WAAW,CAAQ;IAGzB,QAAQ,UAAQ;IAGhB,cAAc,UAAQ;IAEtB,OAAO,CAAC,cAAc,CAAwB;IAC9C,OAAO,CAAC,eAAe,CAA8C;IAErE,OAAO,CAAC,qBAAqB;IA4B7B,OAAO,CAAC,cAAc,CA0BpB;IAEO,iBAAiB;IAMjB,oBAAoB;IAY7B,OAAO,CAAC,QAAQ,CAAC,eAAe,CAK9B;IAEO,MAAM;IAIN,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;IAyC9C,QAAQ,CAAC,YAAY,aAEnB;IAEF,QAAQ,CAAC,mBAAmB,GAAI,GAAG,UAAU,UAE3C;CACH;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,UAAU,EAAE,gBAAgB,CAAC;KAC9B;CACF"}
@@ -1,31 +1,33 @@
1
- import { unsafeCSS as u, LitElement as d } from "lit";
2
- import { property as c, customElement as p } from "lit/decorators.js";
3
- import h from "./sp-modal.css.js";
4
- import { modalTemplate as f } from "./sp-modal.template.js";
5
- var m = Object.defineProperty, v = Object.getOwnPropertyDescriptor, a = (e, o, s, l) => {
6
- for (var t = l > 1 ? void 0 : l ? v(o, s) : o, n = e.length - 1, i; n >= 0; n--)
7
- (i = e[n]) && (t = (l ? i(o, s, t) : i(t)) || t);
8
- return l && t && m(o, s, t), t;
1
+ import { unsafeCSS as h, LitElement as p } from "lit";
2
+ import { property as d, customElement as f } from "lit/decorators.js";
3
+ import m from "./sp-modal.css.js";
4
+ import { modalTemplate as v } from "./sp-modal.template.js";
5
+ var y = Object.defineProperty, b = Object.getOwnPropertyDescriptor, a = (e, s, o, l) => {
6
+ for (var t = l > 1 ? void 0 : l ? b(s, o) : s, i = e.length - 1, r; i >= 0; i--)
7
+ (r = e[i]) && (t = (l ? r(s, o, t) : r(t)) || t);
8
+ return l && t && y(s, o, t), t;
9
9
  };
10
- let r = class extends d {
10
+ let n = class extends p {
11
11
  constructor() {
12
- super(...arguments), this.open = !1, this.label = "", this.size = "md", this.closable = !0, this.closeOnOverlay = !0, this._previousFocus = null, this._handleKeydown = (e) => {
13
- var o, s;
12
+ super(...arguments), this.open = !1, this.label = "", this.size = "md", this.closable = !0, this.closeOnOverlay = !0, this._previousFocus = null, this._afterHideTimer = null, this._handleKeydown = (e) => {
13
+ var s;
14
14
  if (this.open) {
15
15
  if (e.key === "Escape") {
16
16
  e.preventDefault(), this.open = !1;
17
17
  return;
18
18
  }
19
19
  if (e.key === "Tab") {
20
- const l = this._getFocusableElements();
21
- if (l.length === 0) {
20
+ const o = this._getFocusableElements();
21
+ if (o.length === 0) {
22
22
  e.preventDefault();
23
23
  return;
24
24
  }
25
- const t = l[0], n = l[l.length - 1];
26
- e.shiftKey ? (document.activeElement === t || ((o = this.shadowRoot) == null ? void 0 : o.activeElement) === t) && (e.preventDefault(), n.focus()) : (document.activeElement === n || ((s = this.shadowRoot) == null ? void 0 : s.activeElement) === n) && (e.preventDefault(), t.focus());
25
+ const l = o[0], t = o[o.length - 1], i = ((s = this.shadowRoot) == null ? void 0 : s.activeElement) ?? document.activeElement;
26
+ e.shiftKey ? i === l && (e.preventDefault(), t.focus()) : i === t && (e.preventDefault(), l.focus());
27
27
  }
28
28
  }
29
+ }, this._handlePageHide = () => {
30
+ this.open && (this.open = !1, document.body.style.overflow = "");
29
31
  }, this._handleClose = () => {
30
32
  this.open = !1;
31
33
  }, this._handleOverlayClick = (e) => {
@@ -33,63 +35,70 @@ let r = class extends d {
33
35
  };
34
36
  }
35
37
  _getFocusableElements() {
36
- var o;
37
- const e = (o = this.shadowRoot) == null ? void 0 : o.querySelector("dialog");
38
- return e ? Array.from(
39
- e.querySelectorAll(
40
- 'a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])'
41
- )
42
- ).filter((s) => !s.closest("[hidden]")) : [];
38
+ var t;
39
+ const e = (t = this.shadowRoot) == null ? void 0 : t.querySelector("dialog");
40
+ if (!e) return [];
41
+ const s = 'a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])', o = Array.from(
42
+ e.querySelectorAll(s)
43
+ ).filter((i) => !i.closest("[hidden]")), l = [];
44
+ return e.querySelectorAll("slot").forEach((i) => {
45
+ i.assignedElements({ flatten: !0 }).forEach((r) => {
46
+ var u;
47
+ (u = r.matches) != null && u.call(r, s) && !r.closest("[hidden]") && l.push(r), r.querySelectorAll(s).forEach((c) => {
48
+ c.closest("[hidden]") || l.push(c);
49
+ });
50
+ });
51
+ }), [...o, ...l];
43
52
  }
44
53
  connectedCallback() {
45
- super.connectedCallback(), document.addEventListener("keydown", this._handleKeydown);
54
+ super.connectedCallback(), document.addEventListener("keydown", this._handleKeydown), window.addEventListener("pagehide", this._handlePageHide);
46
55
  }
47
56
  disconnectedCallback() {
48
- super.disconnectedCallback(), document.removeEventListener("keydown", this._handleKeydown), document.body.style.overflow = "";
57
+ super.disconnectedCallback(), document.removeEventListener("keydown", this._handleKeydown), window.removeEventListener("pagehide", this._handlePageHide), document.body.style.overflow = "", this._afterHideTimer !== null && (clearTimeout(this._afterHideTimer), this._afterHideTimer = null);
49
58
  }
50
59
  render() {
51
- return f.call(this);
60
+ return v.call(this);
52
61
  }
53
62
  updated(e) {
54
- var o, s, l;
63
+ var s, o, l;
55
64
  if (e.has("open")) {
56
- const t = (o = this.shadowRoot) == null ? void 0 : o.querySelector("dialog");
65
+ if (!this.open && e.get("open") === void 0) return;
66
+ const t = (s = this.shadowRoot) == null ? void 0 : s.querySelector("dialog");
57
67
  if (!t) return;
58
- this.open ? (document.body.style.overflow = "hidden", this._previousFocus = document.activeElement, t.showModal(), this.dispatchEvent(
68
+ this.open ? (this._afterHideTimer !== null && (clearTimeout(this._afterHideTimer), this._afterHideTimer = null), document.body.style.overflow = "hidden", this._previousFocus = document.activeElement, t.showModal(), this.dispatchEvent(
59
69
  new CustomEvent("sp-show", { bubbles: !0, composed: !0 })
60
70
  ), this.updateComplete.then(() => {
61
- var i;
62
- (i = this._getFocusableElements()[0]) == null || i.focus();
63
- })) : (document.body.style.overflow = "", t.close(), this.dispatchEvent(
71
+ var r;
72
+ (r = this._getFocusableElements()[0]) == null || r.focus();
73
+ })) : (document.body.style.overflow = "", t.open && t.close(), this.dispatchEvent(
64
74
  new CustomEvent("sp-hide", { bubbles: !0, composed: !0 })
65
- ), (l = (s = this._previousFocus) == null ? void 0 : s.focus) == null || l.call(s), this._previousFocus = null, setTimeout(
66
- () => this.dispatchEvent(
75
+ ), (l = (o = this._previousFocus) == null ? void 0 : o.focus) == null || l.call(o), this._previousFocus = null, this._afterHideTimer = setTimeout(() => {
76
+ this._afterHideTimer = null, this.dispatchEvent(
67
77
  new CustomEvent("sp-after-hide", { bubbles: !0, composed: !0 })
68
- ),
69
- 300
70
- ));
78
+ );
79
+ }, 300));
71
80
  }
72
81
  }
73
82
  };
74
- r.styles = u(h);
83
+ n.styles = h(m);
75
84
  a([
76
- c({ type: Boolean, reflect: !0 })
77
- ], r.prototype, "open", 2);
85
+ d({ type: Boolean, reflect: !0 })
86
+ ], n.prototype, "open", 2);
78
87
  a([
79
- c({ type: String })
80
- ], r.prototype, "label", 2);
88
+ d({ type: String })
89
+ ], n.prototype, "label", 2);
81
90
  a([
82
- c({ type: String, reflect: !0 })
83
- ], r.prototype, "size", 2);
91
+ d({ type: String, reflect: !0 })
92
+ ], n.prototype, "size", 2);
84
93
  a([
85
- c({ type: Boolean, reflect: !0 })
86
- ], r.prototype, "closable", 2);
94
+ d({ type: Boolean, reflect: !0 })
95
+ ], n.prototype, "closable", 2);
87
96
  a([
88
- c({ type: Boolean, attribute: "close-on-overlay" })
89
- ], r.prototype, "closeOnOverlay", 2);
90
- r = a([
91
- p("sp-modal")
92
- ], r);
97
+ d({ type: Boolean, attribute: "close-on-overlay" })
98
+ ], n.prototype, "closeOnOverlay", 2);
99
+ n = a([
100
+ f("sp-modal")
101
+ ], n);
93
102
  export {
94
- r as SpModalComponent
103
+ n as SpModalComponent
95
104
  };
@@ -1,4 +1,4 @@
1
- const a = ":host{display:block;width:100%}:host([fixed]){position:fixed;top:0;left:0;right:0;z-index:1000}:host([sticky]){position:sticky;top:0;z-index:1000}.sp-navbar{display:flex;align-items:center;justify-content:space-between;padding:0 24px;height:64px;background:var(--sp-bg, white);gap:16px}:host([bordered]) .sp-navbar{border-bottom:1px solid var(--sp-border-subtle, #e5e7eb)}:host([transparent]) .sp-navbar{background:transparent}.sp-navbar-start,.sp-navbar-center,.sp-navbar-end{display:flex;align-items:center;gap:8px}.sp-navbar-start{flex:1;justify-content:flex-start}.sp-navbar-center{flex-shrink:0}.sp-navbar-end{flex:1;justify-content:flex-end}.sp-navbar--elevation-sm{box-shadow:var(--sp-shadow-sm, 0 1px 2px rgba(0, 0, 0, .05))}.sp-navbar--elevation-md{box-shadow:var(--sp-shadow, 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -2px rgba(0, 0, 0, .1))}a:focus-visible,button:focus-visible{outline:2px solid var(--sp-primary, #3b82f6);outline-offset:2px}@media(max-width:639px){.sp-navbar-center{display:none}.sp-navbar{padding:0 16px}}@media(prefers-reduced-motion:reduce){:host{transition:none!important}button,a,[role=button]{transition:none!important}}";
1
+ const e = "*,*:before,*:after{box-sizing:border-box}:host{display:block;width:100%}:host([fixed]){position:fixed;top:0;left:0;right:0;z-index:1000}:host([sticky]){position:sticky;top:0;z-index:1000}.sp-navbar{display:flex;align-items:center;justify-content:space-between;padding:0 24px;height:64px;background:var(--sp-bg, white);gap:16px}:host([bordered]) .sp-navbar{border-bottom:1px solid var(--sp-border-subtle, #e5e7eb)}:host([transparent]) .sp-navbar{background:transparent}.sp-navbar-start,.sp-navbar-center,.sp-navbar-end{display:flex;align-items:center;gap:8px}.sp-navbar-start{flex:1;justify-content:flex-start}.sp-navbar-center{flex-shrink:0}.sp-navbar-end{flex:1;justify-content:flex-end}.sp-navbar--elevation-sm{box-shadow:var(--sp-shadow-sm, 0 1px 2px rgba(0, 0, 0, .05))}.sp-navbar--elevation-md{box-shadow:var(--sp-shadow, 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -2px rgba(0, 0, 0, .1))}a:focus-visible,button:focus-visible{outline:2px solid var(--sp-primary, #3b82f6);outline-offset:2px}@media(max-width:639px){.sp-navbar-center{display:none}.sp-navbar{padding:0 16px}}@media(prefers-reduced-motion:reduce){:host{transition:none!important}button,a,[role=button]{transition:none!important}}";
2
2
  export {
3
- a as default
3
+ e as default
4
4
  };
@@ -1,4 +1,4 @@
1
- const e = ':host{display:block;font-family:inherit;box-sizing:border-box}.sp-number-input{display:flex;flex-direction:column;gap:4px;width:100%;box-sizing:border-box}.sp-number-input-label{display:block;font-size:13px;font-weight:500;color:var(--sp-text-secondary, #374151);line-height:1.4}.sp-number-input-control{display:flex;align-items:stretch;border:1px solid var(--sp-border, #d1d5db);border-radius:6px;overflow:hidden;background:var(--sp-bg, #ffffff);transition:border-color .2s}.sp-number-input-control:focus-within{border-color:var(--sp-primary, #3b82f6);box-shadow:0 0 0 3px var(--sp-primary-focus, rgba(59, 130, 246, .12))}.sp-number-input-btn{display:inline-flex;align-items:center;justify-content:center;background:var(--sp-bg-subtle, #f9fafb);border:none;color:var(--sp-text-secondary, #374151);cursor:pointer;font-size:16px;font-family:inherit;line-height:1;padding:0;flex-shrink:0;transition:background .15s,color .15s;user-select:none;-webkit-user-select:none}.sp-number-input-btn:hover{background:var(--sp-border-subtle, #e5e7eb);color:var(--sp-text, #111827)}.sp-number-input-btn:active{background:var(--sp-border, #d1d5db)}.sp-number-input-btn:focus-visible{outline:2px solid var(--sp-primary, #3b82f6);outline-offset:-2px;z-index:1}.sp-number-input-btn--dec{border-right:1px solid var(--sp-border-subtle, #e5e7eb)}.sp-number-input-btn--inc{border-left:1px solid var(--sp-border-subtle, #e5e7eb)}.sp-number-input-field{flex:1;min-width:0;border:none;outline:none;text-align:center;background:transparent;font-family:inherit;color:var(--sp-text, #111827);box-sizing:border-box;-webkit-appearance:none;-moz-appearance:textfield;appearance:textfield}.sp-number-input-field::-webkit-outer-spin-button,.sp-number-input-field::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.sp-number-input-field::placeholder{color:var(--sp-text-placeholder, #9ca3af)}:host([size="sm"]) .sp-number-input-btn{width:28px;height:28px;font-size:14px}:host([size="sm"]) .sp-number-input-field{height:28px;font-size:12px;padding:0 6px}:host([size="sm"]) .sp-number-input-label{font-size:12px}:host([size="md"]) .sp-number-input-btn{width:36px;height:36px;font-size:16px}:host([size="md"]) .sp-number-input-field{height:36px;font-size:14px;padding:0 8px}:host([size="lg"]) .sp-number-input-btn{width:44px;height:44px;font-size:18px}:host([size="lg"]) .sp-number-input-field{height:44px;font-size:16px;padding:0 10px}.sp-number-input--error .sp-number-input-control{border-color:var(--sp-error, #FF4D4F)}.sp-number-input--error .sp-number-input-control:focus-within{border-color:var(--sp-error, #FF4D4F);box-shadow:0 0 0 3px var(--sp-error-focus, rgba(255, 77, 79, .12))}.sp-number-input--disabled .sp-number-input-control{background:var(--sp-bg-muted, #f3f4f6);border-color:var(--sp-border-subtle, #e5e7eb);cursor:not-allowed}.sp-number-input--disabled .sp-number-input-btn{opacity:.5;cursor:not-allowed;pointer-events:none}.sp-number-input--disabled .sp-number-input-field{color:var(--sp-text-placeholder, #9ca3af);cursor:not-allowed;pointer-events:none}.sp-number-input-hint{font-size:12px;color:var(--sp-text-muted, #6b7280);line-height:1.4}.sp-number-input-error{font-size:12px;color:var(--sp-error, #FF4D4F);line-height:1.4}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}';
1
+ const e = '*,*:before,*:after{box-sizing:border-box}:host{display:block;font-family:inherit;box-sizing:border-box}.sp-number-input{display:flex;flex-direction:column;gap:4px;width:100%;box-sizing:border-box}.sp-number-input-label{display:block;font-size:13px;font-weight:500;color:var(--sp-text-secondary, #374151);line-height:1.4}.sp-number-input-control{display:flex;align-items:stretch;border:1px solid var(--sp-border, #d1d5db);border-radius:6px;overflow:hidden;background:var(--sp-bg, #ffffff);transition:border-color .2s}.sp-number-input-control:focus-within{border-color:var(--sp-primary, #3b82f6);box-shadow:0 0 0 3px var(--sp-primary-focus, rgba(59, 130, 246, .12))}.sp-number-input-btn{display:inline-flex;align-items:center;justify-content:center;background:var(--sp-bg-subtle, #f9fafb);border:none;color:var(--sp-text-secondary, #374151);cursor:pointer;font-size:16px;font-family:inherit;line-height:1;padding:0;flex-shrink:0;transition:background .15s,color .15s;user-select:none;-webkit-user-select:none}.sp-number-input-btn:hover{background:var(--sp-border-subtle, #e5e7eb);color:var(--sp-text, #111827)}.sp-number-input-btn:active{background:var(--sp-border, #d1d5db)}.sp-number-input-btn:focus-visible{outline:2px solid var(--sp-primary, #3b82f6);outline-offset:-2px;z-index:1}.sp-number-input-btn--dec{border-right:1px solid var(--sp-border-subtle, #e5e7eb)}.sp-number-input-btn--inc{border-left:1px solid var(--sp-border-subtle, #e5e7eb)}.sp-number-input-field{flex:1;min-width:0;border:none;outline:none;text-align:center;background:transparent;font-family:inherit;color:var(--sp-text, #111827);box-sizing:border-box;-webkit-appearance:none;-moz-appearance:textfield;appearance:textfield}.sp-number-input-field::-webkit-outer-spin-button,.sp-number-input-field::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.sp-number-input-field::placeholder{color:var(--sp-text-placeholder, #9ca3af)}:host([size="sm"]) .sp-number-input-btn{width:28px;height:28px;font-size:14px}:host([size="sm"]) .sp-number-input-field{height:28px;font-size:12px;padding:0 6px}:host([size="sm"]) .sp-number-input-label{font-size:12px}:host([size="md"]) .sp-number-input-btn{width:36px;height:36px;font-size:16px}:host([size="md"]) .sp-number-input-field{height:36px;font-size:14px;padding:0 8px}:host([size="lg"]) .sp-number-input-btn{width:44px;height:44px;font-size:18px}:host([size="lg"]) .sp-number-input-field{height:44px;font-size:16px;padding:0 10px}.sp-number-input--error .sp-number-input-control{border-color:var(--sp-error, #FF4D4F)}.sp-number-input--error .sp-number-input-control:focus-within{border-color:var(--sp-error, #FF4D4F);box-shadow:0 0 0 3px var(--sp-error-focus, rgba(255, 77, 79, .12))}.sp-number-input--disabled .sp-number-input-control{background:var(--sp-bg-muted, #f3f4f6);border-color:var(--sp-border-subtle, #e5e7eb);cursor:not-allowed}.sp-number-input--disabled .sp-number-input-btn{opacity:.5;cursor:not-allowed;pointer-events:none}.sp-number-input--disabled .sp-number-input-field{color:var(--sp-text-placeholder, #9ca3af);cursor:not-allowed;pointer-events:none}.sp-number-input-hint{font-size:12px;color:var(--sp-text-muted, #6b7280);line-height:1.4}.sp-number-input-error{font-size:12px;color:var(--sp-error, #FF4D4F);line-height:1.4}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}';
2
2
  export {
3
3
  e as default
4
4
  };
@@ -1 +1 @@
1
- {"version":3,"file":"sp-number-input.d.ts","sourceRoot":"","sources":["../../../src/components/number-input/sp-number-input.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAI5C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAEpE;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qBACa,sBAAuB,SAAQ,UAAU;;IACpD,OAAgB,MAAM,0BAAqB;IAC3C,MAAM,CAAC,cAAc,UAAQ;;IAa7B,KAAK,SAAK;IAGV,GAAG,EAAE,MAAM,CAAa;IAGxB,GAAG,EAAE,MAAM,CAAY;IAGvB,IAAI,SAAK;IAGT,QAAQ,UAAS;IAGjB,QAAQ,UAAS;IAGjB,QAAQ,UAAS;IAGjB,IAAI,SAAM;IAGV,IAAI,EAAE,iBAAiB,CAAQ;IAG/B,KAAK,SAAM;IAGX,IAAI,SAAM;IAGV,KAAK,SAAM;IAGX,WAAW,SAAM;IAGjB,MAAM,SAAM;IAGZ,MAAM,SAAM;IAGZ,SAAS,UAAS;IAElB,0DAA0D;IAC1D,SAAS,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC,GAAG,IAAI,CAAQ;IAErD,mFAAmF;IACnF,gBAAgB,IAAI,MAAM;IAOjB,iBAAiB,IAAI,IAAI;IAKzB,oBAAoB,IAAI,IAAI;IAK5B,MAAM;IAIN,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAc/D,iBAAiB,IAAI,IAAI;IAKzB,UAAU,IAAI,IAAI;IAYlB,UAAU,IAAI,IAAI;IAYlB,YAAY,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI;IAe5B,aAAa,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI;IAe7B,yDAAyD;IACzD,mBAAmB,IAAI,IAAI;IAS3B,yDAAyD;IACzD,mBAAmB,IAAI,IAAI;IAS3B,8BAA8B;IAC9B,eAAe,IAAI,IAAI;CAUxB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,iBAAiB,EAAE,sBAAsB,CAAC;KAC3C;CACF"}
1
+ {"version":3,"file":"sp-number-input.d.ts","sourceRoot":"","sources":["../../../src/components/number-input/sp-number-input.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAI5C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAEpE;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qBACa,sBAAuB,SAAQ,UAAU;;IACpD,OAAgB,MAAM,0BAAqB;IAC3C,MAAM,CAAC,cAAc,UAAQ;;IAa7B,KAAK,SAAK;IAGV,GAAG,EAAE,MAAM,CAAa;IAGxB,GAAG,EAAE,MAAM,CAAY;IAGvB,IAAI,SAAK;IAGT,QAAQ,UAAS;IAGjB,QAAQ,UAAS;IAGjB,QAAQ,UAAS;IAGjB,IAAI,SAAM;IAGV,IAAI,EAAE,iBAAiB,CAAQ;IAG/B,KAAK,SAAM;IAGX,IAAI,SAAM;IAGV,KAAK,SAAM;IAGX,WAAW,SAAM;IAGjB,MAAM,SAAM;IAGZ,MAAM,SAAM;IAGZ,SAAS,UAAS;IAElB,0DAA0D;IAC1D,SAAS,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC,GAAG,IAAI,CAAQ;IAErD,mFAAmF;IACnF,gBAAgB,IAAI,MAAM;IAOjB,iBAAiB,IAAI,IAAI;IAKzB,oBAAoB,IAAI,IAAI;IAK5B,MAAM;IAIN,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAe/D,iBAAiB,IAAI,IAAI;IAKzB,UAAU,IAAI,IAAI;IAYlB,UAAU,IAAI,IAAI;IAYlB,YAAY,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI;IAa5B,aAAa,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI;IAa7B,yDAAyD;IACzD,mBAAmB,IAAI,IAAI;IAS3B,yDAAyD;IACzD,mBAAmB,IAAI,IAAI;IAS3B,8BAA8B;IAC9B,eAAe,IAAI,IAAI;CAUxB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,iBAAiB,EAAE,sBAAsB,CAAC;KAC3C;CACF"}