@rchemist/listgrid 0.2.6 → 0.2.9

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.
@@ -24,8 +24,14 @@ export const PostCodeSelector = (props) => {
24
24
  const disabled = isBlank(postalCode);
25
25
  const required = props.required;
26
26
  useEffect(() => {
27
- initializeData();
28
- }, [props]);
27
+ // 모달이 열릴 때만 props.address 값으로 내부 상태를 초기화한다.
28
+ // 편집 중(open=true 유지)에는 부모 재렌더로 props 참조가 바뀌어도 재초기화하지 않아
29
+ // 사용자가 상세주소(address2) 등에 입력한 값이 유실되지 않도록 한다.
30
+ if (open) {
31
+ initializeData();
32
+ }
33
+ // eslint-disable-next-line react-hooks/exhaustive-deps
34
+ }, [open]);
29
35
  return (_jsxs(_Fragment, { children: [_jsxs(Flex, { gap: 10, children: [_jsx("button", { type: "button", className: "rcm-button", "data-variant": "primary", onClick: () => {
30
36
  setOpen(!open);
31
37
  }, children: "\uC8FC\uC18C \uCC3E\uAE30" }), !required && !isBlank(postalCode) && (_jsx("button", { type: "button", className: "rcm-button", "data-variant": "outline", onClick: () => {
@@ -511,7 +511,10 @@
511
511
  pointer-events: none;
512
512
  }
513
513
 
514
- .rcm-card-m2o-search-input {
514
+ /* 특이도를 (0,2,0)으로 맞춰 primitives.css 의 .rcm-input[data-size='sm'] 과 동률을 만든다.
515
+ 번들 순서(primitives → layouts)상 동률 시 layouts.css 규칙이 승리하여
516
+ 아이콘 공간 확보를 위한 left padding 이 유지된다. */
517
+ .rcm-card-m2o-search-input.rcm-input {
515
518
  width: 100%;
516
519
  padding: 0.625rem 1rem 0.625rem 2.5rem;
517
520
  font-size: var(--rcm-font-size-sm);
@@ -520,7 +523,7 @@
520
523
  border-radius: var(--rcm-radius-lg);
521
524
  }
522
525
 
523
- .rcm-card-m2o-search-input:focus {
526
+ .rcm-card-m2o-search-input.rcm-input:focus {
524
527
  outline: none;
525
528
  border-color: var(--rcm-color-primary);
526
529
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--rcm-color-primary) 20%, transparent);
package/dist/styles.css CHANGED
@@ -2271,7 +2271,10 @@
2271
2271
  pointer-events: none;
2272
2272
  }
2273
2273
 
2274
- .rcm-card-m2o-search-input {
2274
+ /* 특이도를 (0,2,0)으로 맞춰 primitives.css 의 .rcm-input[data-size='sm'] 과 동률을 만든다.
2275
+ 번들 순서(primitives → layouts)상 동률 시 layouts.css 규칙이 승리하여
2276
+ 아이콘 공간 확보를 위한 left padding 이 유지된다. */
2277
+ .rcm-card-m2o-search-input.rcm-input {
2275
2278
  width: 100%;
2276
2279
  padding: 0.625rem 1rem 0.625rem 2.5rem;
2277
2280
  font-size: var(--rcm-font-size-sm);
@@ -2280,7 +2283,7 @@
2280
2283
  border-radius: var(--rcm-radius-lg);
2281
2284
  }
2282
2285
 
2283
- .rcm-card-m2o-search-input:focus {
2286
+ .rcm-card-m2o-search-input.rcm-input:focus {
2284
2287
  outline: none;
2285
2288
  border-color: var(--rcm-color-primary);
2286
2289
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--rcm-color-primary) 20%, transparent);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rchemist/listgrid",
3
- "version": "0.2.6",
3
+ "version": "0.2.9",
4
4
  "private": false,
5
5
  "description": "Framework-free React CRUD UI engine — primitive-based design system, data-attr theming, and a full list/form renderer for RCM-framework-style entity backends.",
6
6
  "keywords": [
@@ -73,6 +73,7 @@
73
73
  "build": "tsc -p tsconfig.build.json && npm run build:styles",
74
74
  "build:styles": "mkdir -p dist/styles && cp src/listgrid/styles/tokens.css src/listgrid/styles/primitives.css src/listgrid/styles/layouts.css src/listgrid/styles/components.css src/listgrid/styles/base.css dist/styles/ && cat src/listgrid/styles/tokens.css src/listgrid/styles/primitives.css src/listgrid/styles/layouts.css src/listgrid/styles/components.css src/listgrid/styles/base.css > dist/styles.css",
75
75
  "clean": "rm -rf dist",
76
+ "prepublishOnly": "npm run clean && npm run type-check && npm test && npm run build",
76
77
  "lint": "eslint 'src/**/*.{ts,tsx}'",
77
78
  "lint:fix": "eslint 'src/**/*.{ts,tsx}' --fix",
78
79
  "format": "prettier --write 'src/**/*.{ts,tsx,css,json}'",