sh-ui-cli 0.42.0 → 0.42.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.
@@ -2,6 +2,18 @@
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$description": "sh-ui 릴리즈 노트 단일 소스. docs(React)와 showcase(Flutter)가 함께 읽는다. 새 릴리즈마다 맨 앞에 추가.",
4
4
  "versions": [
5
+ {
6
+ "version": "0.42.1",
7
+ "date": "2026-04-30",
8
+ "title": "Calendar range 셀 연결 + 검색 다이얼로그 픽스",
9
+ "type": "patch",
10
+ "highlights": [
11
+ "**Calendar range 시각 픽스** — `mode=\"range\"` 에서 시작/종료 사이 셀이 끊김 없는 한 줄의 띠로 이어지도록 수정. 이전엔 그리드 칼럼(1fr) 안에 가운데 정렬된 2.25rem 버튼에 배경을 직접 칠해 칼럼 사이마다 흰 틈이 보였던 이슈",
12
+ "각 날짜 셀을 wrapper `<div class=\"sh-ui-calendar__cell\">` 로 감싸고 in-range / range-start / range-end 배경을 cell 에 적용 — 칼럼을 100% 채우므로 인접 셀이 자연스럽게 맞닿고, 진한 pill (selected) 은 그대로 버튼에 올라감",
13
+ "docs 사이트: 헤더 검색 다이얼로그 버그 픽스 + 디자인 다듬기"
14
+ ],
15
+ "url": "https://github.com/sanghyeonKim0201/sh-ui/releases/tag/v0.42.1"
16
+ },
5
17
  {
6
18
  "version": "0.42.0",
7
19
  "date": "2026-04-30",
@@ -745,33 +745,39 @@ export const CalendarGrid = React.forwardRef<HTMLDivElement, CalendarGridProps>(
745
745
  const hidden = !current && !ctx.showOutsideDays;
746
746
 
747
747
  if (hidden) {
748
- return <span key={i} className="sh-ui-calendar__day sh-ui-calendar__day--hidden" aria-hidden />;
748
+ return <span key={i} className="sh-ui-calendar__cell sh-ui-calendar__cell--hidden" aria-hidden />;
749
749
  }
750
750
 
751
751
  return (
752
- <button
752
+ <div
753
753
  key={i}
754
- type="button"
755
754
  className={cx(
756
- "sh-ui-calendar__day",
757
- !current && "sh-ui-calendar__day--outside",
758
- selected && "sh-ui-calendar__day--selected",
759
- isToday && "sh-ui-calendar__day--today",
760
- inRange && "sh-ui-calendar__day--in-range",
761
- isStart && "sh-ui-calendar__day--range-start",
762
- isEnd && "sh-ui-calendar__day--range-end",
755
+ "sh-ui-calendar__cell",
756
+ inRange && "sh-ui-calendar__cell--in-range",
757
+ isStart && "sh-ui-calendar__cell--range-start",
758
+ isEnd && "sh-ui-calendar__cell--range-end",
763
759
  )}
764
- disabled={dDisabled}
765
- tabIndex={-1}
766
- onClick={() => { if (!dDisabled) ctx.handleSelect(date); }}
767
- onMouseEnter={() => ctx.setHoverDate(date)}
768
- onMouseLeave={() => ctx.setHoverDate(undefined)}
769
- aria-label={formatIsoDate(date)}
770
- aria-selected={selected || inRange || undefined}
771
- data-today={isToday || undefined}
772
760
  >
773
- {date.getDate()}
774
- </button>
761
+ <button
762
+ type="button"
763
+ className={cx(
764
+ "sh-ui-calendar__day",
765
+ !current && "sh-ui-calendar__day--outside",
766
+ selected && "sh-ui-calendar__day--selected",
767
+ isToday && "sh-ui-calendar__day--today",
768
+ )}
769
+ disabled={dDisabled}
770
+ tabIndex={-1}
771
+ onClick={() => { if (!dDisabled) ctx.handleSelect(date); }}
772
+ onMouseEnter={() => ctx.setHoverDate(date)}
773
+ onMouseLeave={() => ctx.setHoverDate(undefined)}
774
+ aria-label={formatIsoDate(date)}
775
+ aria-selected={selected || inRange || undefined}
776
+ data-today={isToday || undefined}
777
+ >
778
+ {date.getDate()}
779
+ </button>
780
+ </div>
775
781
  );
776
782
  })}
777
783
  </div>
@@ -128,7 +128,36 @@
128
128
  border-radius: calc(var(--radius) - 2px);
129
129
  }
130
130
 
131
- /* ── Day cell ── */
131
+ /* ── Cell (column slot, range strip carrier) ── */
132
+
133
+ .sh-ui-calendar__cell {
134
+ display: flex;
135
+ align-items: center;
136
+ justify-content: center;
137
+ width: 100%;
138
+ height: 2.375rem;
139
+ min-width: 0;
140
+ }
141
+
142
+ .sh-ui-calendar__cell--in-range,
143
+ .sh-ui-calendar__cell--range-start,
144
+ .sh-ui-calendar__cell--range-end {
145
+ background: color-mix(in srgb, var(--primary) 12%, transparent);
146
+ }
147
+
148
+ .sh-ui-calendar__cell--range-start:not(.sh-ui-calendar__cell--range-end) {
149
+ border-radius: calc(var(--radius) - 2px) 0 0 calc(var(--radius) - 2px);
150
+ }
151
+
152
+ .sh-ui-calendar__cell--range-end:not(.sh-ui-calendar__cell--range-start) {
153
+ border-radius: 0 calc(var(--radius) - 2px) calc(var(--radius) - 2px) 0;
154
+ }
155
+
156
+ .sh-ui-calendar__cell--range-start.sh-ui-calendar__cell--range-end {
157
+ border-radius: calc(var(--radius) - 2px);
158
+ }
159
+
160
+ /* ── Day button ── */
132
161
 
133
162
  .sh-ui-calendar__day {
134
163
  display: flex;
@@ -136,7 +165,6 @@
136
165
  justify-content: center;
137
166
  width: 2.25rem;
138
167
  height: 2.25rem;
139
- margin: 0.0625rem auto;
140
168
  padding: 0;
141
169
  border: none;
142
170
  border-radius: calc(var(--radius) - 2px);
@@ -162,13 +190,6 @@
162
190
  opacity: 0.4;
163
191
  }
164
192
 
165
- .sh-ui-calendar__day--hidden {
166
- visibility: hidden;
167
- pointer-events: none;
168
- cursor: default;
169
- background: transparent;
170
- }
171
-
172
193
  .sh-ui-calendar__day--today {
173
194
  font-weight: var(--weight-bold);
174
195
  text-decoration: underline;
@@ -190,38 +211,3 @@
190
211
  opacity: 0.3;
191
212
  cursor: not-allowed;
192
213
  }
193
-
194
- /* ── Range ── */
195
-
196
- .sh-ui-calendar__day--in-range {
197
- background: color-mix(in srgb, var(--primary) 12%, transparent);
198
- border-radius: 0;
199
- }
200
-
201
- .sh-ui-calendar__day--in-range:hover:not(:disabled) {
202
- background: color-mix(in srgb, var(--primary) 22%, transparent);
203
- }
204
-
205
- .sh-ui-calendar__day--range-start {
206
- background: var(--primary);
207
- color: var(--primary-foreground);
208
- font-weight: var(--weight-semibold);
209
- border-radius: calc(var(--radius) - 2px) 0 0 calc(var(--radius) - 2px);
210
- }
211
-
212
- .sh-ui-calendar__day--range-end {
213
- background: var(--primary);
214
- color: var(--primary-foreground);
215
- font-weight: var(--weight-semibold);
216
- border-radius: 0 calc(var(--radius) - 2px) calc(var(--radius) - 2px) 0;
217
- }
218
-
219
- .sh-ui-calendar__day--range-start.sh-ui-calendar__day--range-end {
220
- border-radius: calc(var(--radius) - 2px);
221
- }
222
-
223
- .sh-ui-calendar__day--range-start:hover:not(:disabled),
224
- .sh-ui-calendar__day--range-end:hover:not(:disabled) {
225
- background: var(--primary-hover);
226
- color: var(--primary-foreground);
227
- }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sh-ui-cli",
3
- "version": "0.42.0",
3
+ "version": "0.42.1",
4
4
  "description": "sh-ui CLI — 프로젝트 스캐폴드(create) + 컴포넌트 추가(add/list/remove) + IDE-내 AI용 MCP 서버",
5
5
  "license": "MIT",
6
6
  "repository": {