@nurihaus/web-design-system 3.8.0 → 3.9.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.
Files changed (36) hide show
  1. package/README.md +1 -1
  2. package/dist/ai/components.md +44 -4
  3. package/dist/ai/motion.md +2 -0
  4. package/dist/ai/tokens.md +3 -0
  5. package/dist/chunk-1176.js +24 -0
  6. package/dist/chunk-910.js +15 -13
  7. package/dist/components/bottom-bar/bottom-bar.stories.d.ts +9 -9
  8. package/dist/components/empty-state/empty-state.stories.d.ts +10 -10
  9. package/dist/components/icon/icon.stories.d.ts +1 -1
  10. package/dist/components/icon-button/base-icon-button.d.ts +3 -0
  11. package/dist/components/icon-button/icon-button-props.d.ts +12 -0
  12. package/dist/components/icon-button/icon-button-type.d.ts +16 -0
  13. package/dist/components/icon-button/icon-button.d.ts +5 -0
  14. package/dist/components/icon-button/icon-button.stories.d.ts +31 -0
  15. package/dist/components/list/list-row.stories.d.ts +13 -13
  16. package/dist/components/message/message.stories.d.ts +11 -11
  17. package/dist/components/message-composer/message-composer-type.d.ts +4 -0
  18. package/dist/components/message-composer/message-composer.stories.d.ts +2 -0
  19. package/dist/components/notice/notice-type.d.ts +2 -0
  20. package/dist/components/notice/notice.stories.d.ts +11 -11
  21. package/dist/components/skeleton/skeleton.stories.d.ts +11 -11
  22. package/dist/components/toast/toast.stories.d.ts +15 -15
  23. package/dist/components.css +103 -0
  24. package/dist/cta-button.js +20 -16
  25. package/dist/helpers/utils/fillLinkChild.d.ts +6 -0
  26. package/dist/icon-button.js +338 -0
  27. package/dist/index.d.ts +2 -0
  28. package/dist/index.js +216 -26
  29. package/dist/list-row.js +19 -13
  30. package/dist/message-composer.js +5 -1
  31. package/dist/modal-with-double-button.js +8 -6
  32. package/dist/notice.js +9 -5
  33. package/dist/styles.css +88 -0
  34. package/dist/toast.js +8 -6
  35. package/dist/tokens.css +5 -0
  36. package/package.json +5 -1
package/dist/styles.css CHANGED
@@ -302,6 +302,11 @@
302
302
  --composer-send-size: 36px;
303
303
  --composer-max-height: 132px;
304
304
 
305
+ /* 아이콘 버튼: icon-button. 보이는 원의 지름. 누르는 자리는 --touch-target 이상 */
306
+ --icon-button-size-s: 36px;
307
+ --icon-button-size-m: 44px;
308
+ --icon-button-size-l: 56px;
309
+
305
310
  /* 빈 화면: empty-state 아이콘 원 */
306
311
  --empty-state-icon-box: 64px;
307
312
 
@@ -1954,6 +1959,11 @@ p {
1954
1959
  justify-content: space-between;
1955
1960
  gap: var(--spacing-10);
1956
1961
  }
1962
+ /* popper 는 높이를 정하지 않아 긴 목록(나라 221개)이 화면 밖으로 넘치고 스크롤도 안 된다.
1963
+ 화면에 남은 높이까지만 쓰고 Viewport 가 스크롤한다 */
1964
+ .base-drop-down.content {
1965
+ max-height: var(--radix-select-content-available-height);
1966
+ }
1957
1967
  /***************************************************************************************************
1958
1968
  * *
1959
1969
  * drop-down-single *
@@ -2554,6 +2564,84 @@ p {
2554
2564
  width: var(--icon-size-xl);
2555
2565
  height: var(--icon-size-xl);
2556
2566
  }
2567
+ .base-icon-button {
2568
+ position: relative;
2569
+ flex: none;
2570
+ display: inline-flex;
2571
+ align-items: center;
2572
+ justify-content: center;
2573
+ padding: 0;
2574
+ border: none;
2575
+ cursor: var(--cursor-button);
2576
+
2577
+ /* 보이는 크기가 작아도(s 36) 누르는 자리는 터치 44 */
2578
+ }
2579
+ .base-icon-button::after {
2580
+ content: '';
2581
+ position: absolute;
2582
+ top: 50%;
2583
+ left: 50%;
2584
+ width: var(--touch-target);
2585
+ height: var(--touch-target);
2586
+ transform: translate(-50%, -50%);
2587
+ }
2588
+ .base-icon-button[data-disabled] {
2589
+ cursor: var(--cursor-disabled);
2590
+ }
2591
+ /***************************************************************************************************
2592
+ * *
2593
+ * icon-button *
2594
+ * *
2595
+ ***************************************************************************************************/
2596
+ .icon-button {
2597
+ border-radius: var(--radius-full);
2598
+ transition:
2599
+ transform var(--motion-press-duration) var(--motion-press-ease),
2600
+ background-color var(--motion-press-duration) var(--motion-press-ease);
2601
+ }
2602
+ .icon-button:active:not([data-disabled]) {
2603
+ transform: scale(var(--motion-press-scale));
2604
+ }
2605
+ .icon-button:focus-visible {
2606
+ outline: var(--hairline) solid var(--color-purple-600);
2607
+ outline-offset: var(--spacing-2);
2608
+ }
2609
+ .icon-button.size-s {
2610
+ width: var(--icon-button-size-s);
2611
+ height: var(--icon-button-size-s);
2612
+ }
2613
+ .icon-button.size-m {
2614
+ width: var(--icon-button-size-m);
2615
+ height: var(--icon-button-size-m);
2616
+ }
2617
+ .icon-button.size-l {
2618
+ width: var(--icon-button-size-l);
2619
+ height: var(--icon-button-size-l);
2620
+ }
2621
+ /* 바탕 없이 아이콘만. 누르는 동안 회색 원이 보인다 */
2622
+ .icon-button.variant-ghost {
2623
+ background-color: transparent;
2624
+ color: var(--color-grey-scale-700);
2625
+ }
2626
+ .icon-button.variant-ghost:active:not([data-disabled]) {
2627
+ background-color: var(--color-grey-scale-100);
2628
+ }
2629
+ /* CTAButton secondary 와 같은 연보라 */
2630
+ .icon-button.variant-secondary {
2631
+ background-color: var(--color-purple-50);
2632
+ color: var(--color-purple-900);
2633
+ }
2634
+ .icon-button.variant-primary {
2635
+ background-color: var(--color-purple-900);
2636
+ color: var(--color-white);
2637
+ }
2638
+ .icon-button[data-disabled] {
2639
+ color: var(--color-grey-scale-300);
2640
+ }
2641
+ .icon-button[data-disabled]:is(.variant-secondary,.variant-primary) {
2642
+ background-color: var(--color-grey-scale-200);
2643
+ color: var(--color-white);
2644
+ }
2557
2645
  .base-list:where(.group) {
2558
2646
  display: flex;
2559
2647
  flex-direction: column;
package/dist/toast.js CHANGED
@@ -496,21 +496,23 @@ module.exports = x({ ["Fragment"]: () => (__WEBPACK_EXTERNAL_MODULE_react_jsx_ru
496
496
  /******/ __nuri_require__.C(__webpack_chunk_6__);
497
497
  /******/ import * as __webpack_chunk_7__ from "./chunk-8933.js";
498
498
  /******/ __nuri_require__.C(__webpack_chunk_7__);
499
- /******/ import * as __webpack_chunk_8__ from "./chunk-2496.js";
499
+ /******/ import * as __webpack_chunk_8__ from "./chunk-1176.js";
500
500
  /******/ __nuri_require__.C(__webpack_chunk_8__);
501
- /******/ import * as __webpack_chunk_9__ from "./chunk-5226.js";
501
+ /******/ import * as __webpack_chunk_9__ from "./chunk-2496.js";
502
502
  /******/ __nuri_require__.C(__webpack_chunk_9__);
503
- /******/ import * as __webpack_chunk_10__ from "./chunk-6713.js";
503
+ /******/ import * as __webpack_chunk_10__ from "./chunk-5226.js";
504
504
  /******/ __nuri_require__.C(__webpack_chunk_10__);
505
- /******/ import * as __webpack_chunk_11__ from "./chunk-910.js";
505
+ /******/ import * as __webpack_chunk_11__ from "./chunk-6713.js";
506
506
  /******/ __nuri_require__.C(__webpack_chunk_11__);
507
- /******/ import * as __webpack_chunk_12__ from "./chunk-5077.js";
507
+ /******/ import * as __webpack_chunk_12__ from "./chunk-910.js";
508
508
  /******/ __nuri_require__.C(__webpack_chunk_12__);
509
+ /******/ import * as __webpack_chunk_13__ from "./chunk-5077.js";
510
+ /******/ __nuri_require__.C(__webpack_chunk_13__);
509
511
  /******/
510
512
  /******/ // startup
511
513
  /******/ // Load entry module and return exports
512
514
  /******/ // This entry module depends on other loaded chunks and execution need to be delayed
513
- /******/ var __webpack_exports__ = __nuri_require__.O(undefined, [3274,7335,4560,7298,2777,6302,8933,2496,5226,6713,910,5077], () => (__nuri_require__(4012)))
515
+ /******/ var __webpack_exports__ = __nuri_require__.O(undefined, [3274,7335,4560,7298,2777,6302,8933,1176,2496,5226,6713,910,5077], () => (__nuri_require__(4012)))
514
516
  /******/ __webpack_exports__ = __nuri_require__.O(__webpack_exports__);
515
517
  /******/ const __webpack_exports__ToastProvider = __webpack_exports__.t;
516
518
  /******/ const __webpack_exports__default = __webpack_exports__.A;
package/dist/tokens.css CHANGED
@@ -300,6 +300,11 @@
300
300
  --composer-send-size: 36px;
301
301
  --composer-max-height: 132px;
302
302
 
303
+ /* 아이콘 버튼: icon-button. 보이는 원의 지름. 누르는 자리는 --touch-target 이상 */
304
+ --icon-button-size-s: 36px;
305
+ --icon-button-size-m: 44px;
306
+ --icon-button-size-l: 56px;
307
+
303
308
  /* 빈 화면: empty-state 아이콘 원 */
304
309
  --empty-state-icon-box: 64px;
305
310
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nurihaus/web-design-system",
3
- "version": "3.8.0",
3
+ "version": "3.9.1",
4
4
  "description": "Nurihaus 디자인 시스템 — 컴포넌트와 디자인 토큰",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -120,6 +120,10 @@
120
120
  "types": "./dist/components/button/cta-button.d.ts",
121
121
  "default": "./dist/cta-button.js"
122
122
  },
123
+ "./icon-button": {
124
+ "types": "./dist/components/icon-button/icon-button.d.ts",
125
+ "default": "./dist/icon-button.js"
126
+ },
123
127
  "./callout": {
124
128
  "types": "./dist/components/callout/callout.d.ts",
125
129
  "default": "./dist/callout.js"