@ncds/ui-admin 1.8.24 → 1.8.25-alpha.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.
- package/dist/cjs/src/components/feedback-and-status/badge/Badge.js +1 -1
- package/dist/cjs/src/components/forms-and-input/combo-box/ComboBox.js +109 -28
- package/dist/cjs/src/components/forms-and-input/combo-box/__tests__/ComboBox.portal.test.js +581 -0
- package/dist/cjs/src/components/navigation/bread-crumb/BreadCrumb.js +14 -6
- package/dist/cjs/src/components/navigation/bread-crumb/__tests__/BreadCrumb.test.js +207 -0
- package/dist/cjs/src/generated/scoped-css.js +1 -1
- package/dist/cjs/src/hooks/__tests__/useFloatingPosition.ssr.test.js +29 -0
- package/dist/cjs/src/hooks/__tests__/useFloatingPosition.test.js +322 -0
- package/dist/cjs/src/hooks/dropdown/useDropdown.js +2 -1
- package/dist/cjs/src/hooks/useFloatingPosition.js +14 -53
- package/dist/cjs/src/utils/dropdown/__tests__/dropdownUtils.test.js +316 -0
- package/dist/cjs/src/utils/dropdown/dropdownUtils.js +8 -12
- package/dist/cjs/src/utils/portal-position/__tests__/portalPosition.test.js +227 -0
- package/dist/cjs/src/utils/portal-position/__tests__/portalPosition.tracking.test.js +397 -0
- package/dist/cjs/src/utils/portal-position/index.js +16 -0
- package/dist/cjs/src/utils/portal-position/portalPosition.js +162 -0
- package/dist/esm/src/components/feedback-and-status/badge/Badge.js +1 -1
- package/dist/esm/src/components/forms-and-input/combo-box/ComboBox.js +109 -28
- package/dist/esm/src/components/forms-and-input/combo-box/__tests__/ComboBox.portal.test.js +578 -0
- package/dist/esm/src/components/navigation/bread-crumb/BreadCrumb.js +14 -6
- package/dist/esm/src/components/navigation/bread-crumb/__tests__/BreadCrumb.test.js +204 -0
- package/dist/esm/src/generated/scoped-css.js +1 -1
- package/dist/esm/src/hooks/__tests__/useFloatingPosition.ssr.test.js +26 -0
- package/dist/esm/src/hooks/__tests__/useFloatingPosition.test.js +319 -0
- package/dist/esm/src/hooks/dropdown/useDropdown.js +2 -1
- package/dist/esm/src/hooks/useFloatingPosition.js +15 -54
- package/dist/esm/src/utils/dropdown/__tests__/dropdownUtils.test.js +314 -0
- package/dist/esm/src/utils/dropdown/dropdownUtils.js +8 -12
- package/dist/esm/src/utils/portal-position/__tests__/portalPosition.test.js +225 -0
- package/dist/esm/src/utils/portal-position/__tests__/portalPosition.tracking.test.js +394 -0
- package/dist/esm/src/utils/portal-position/index.js +1 -0
- package/dist/esm/src/utils/portal-position/portalPosition.js +150 -0
- package/dist/temp/assets/scripts/notification/const/sizes.d.ts +1 -1
- package/dist/temp/src/components/action/button-group/ButtonGroup.d.ts +1 -1
- package/dist/temp/src/components/feedback-and-status/badge/Badge.d.ts +1 -1
- package/dist/temp/src/components/feedback-and-status/badge/Badge.js +1 -1
- package/dist/temp/src/components/forms-and-input/combo-box/ComboBox.d.ts +6 -0
- package/dist/temp/src/components/forms-and-input/combo-box/ComboBox.js +54 -4
- package/dist/temp/src/components/forms-and-input/combo-box/__tests__/ComboBox.portal.test.d.ts +1 -0
- package/dist/temp/src/components/forms-and-input/combo-box/__tests__/ComboBox.portal.test.js +418 -0
- package/dist/temp/src/components/navigation/bread-crumb/BreadCrumb.d.ts +3 -1
- package/dist/temp/src/components/navigation/bread-crumb/BreadCrumb.js +9 -5
- package/dist/temp/src/components/navigation/bread-crumb/__tests__/BreadCrumb.test.d.ts +1 -0
- package/dist/temp/src/components/navigation/bread-crumb/__tests__/BreadCrumb.test.js +161 -0
- package/dist/temp/src/generated/scoped-css.js +1 -1
- package/dist/temp/src/hooks/__tests__/useFloatingPosition.ssr.test.d.ts +1 -0
- package/dist/temp/src/hooks/__tests__/useFloatingPosition.ssr.test.js +26 -0
- package/dist/temp/src/hooks/__tests__/useFloatingPosition.test.d.ts +1 -0
- package/dist/temp/src/hooks/__tests__/useFloatingPosition.test.js +205 -0
- package/dist/temp/src/hooks/dropdown/useDropdown.d.ts +3 -1
- package/dist/temp/src/hooks/dropdown/useDropdown.js +2 -2
- package/dist/temp/src/hooks/dropdown/useDropdownPosition.d.ts +3 -3
- package/dist/temp/src/hooks/useFloatingPosition.d.ts +6 -4
- package/dist/temp/src/hooks/useFloatingPosition.js +14 -47
- package/dist/temp/src/types/dropdown/dropdown.d.ts +2 -1
- package/dist/temp/src/utils/dropdown/__tests__/dropdownUtils.test.d.ts +1 -0
- package/dist/temp/src/utils/dropdown/__tests__/dropdownUtils.test.js +174 -0
- package/dist/temp/src/utils/dropdown/dropdownUtils.js +8 -9
- package/dist/temp/src/utils/portal-position/__tests__/portalPosition.test.d.ts +1 -0
- package/dist/temp/src/utils/portal-position/__tests__/portalPosition.test.js +181 -0
- package/dist/temp/src/utils/portal-position/__tests__/portalPosition.tracking.test.d.ts +1 -0
- package/dist/temp/src/utils/portal-position/__tests__/portalPosition.tracking.test.js +301 -0
- package/dist/temp/src/utils/portal-position/index.d.ts +1 -0
- package/dist/temp/src/utils/portal-position/index.js +1 -0
- package/dist/temp/src/utils/portal-position/portalPosition.d.ts +67 -0
- package/dist/temp/src/utils/portal-position/portalPosition.js +88 -0
- package/dist/types/assets/scripts/notification/const/sizes.d.ts +1 -1
- package/dist/types/src/components/action/button-group/ButtonGroup.d.ts +1 -1
- package/dist/types/src/components/feedback-and-status/badge/Badge.d.ts +1 -1
- package/dist/types/src/components/forms-and-input/combo-box/ComboBox.d.ts +6 -0
- package/dist/types/src/components/forms-and-input/combo-box/__tests__/ComboBox.portal.test.d.ts +1 -0
- package/dist/types/src/components/navigation/bread-crumb/BreadCrumb.d.ts +3 -1
- package/dist/types/src/components/navigation/bread-crumb/__tests__/BreadCrumb.test.d.ts +1 -0
- package/dist/types/src/hooks/__tests__/useFloatingPosition.ssr.test.d.ts +1 -0
- package/dist/types/src/hooks/__tests__/useFloatingPosition.test.d.ts +1 -0
- package/dist/types/src/hooks/dropdown/useDropdown.d.ts +3 -1
- package/dist/types/src/hooks/dropdown/useDropdownPosition.d.ts +3 -3
- package/dist/types/src/hooks/useFloatingPosition.d.ts +6 -4
- package/dist/types/src/types/dropdown/dropdown.d.ts +2 -1
- package/dist/types/src/utils/dropdown/__tests__/dropdownUtils.test.d.ts +1 -0
- package/dist/types/src/utils/portal-position/__tests__/portalPosition.test.d.ts +1 -0
- package/dist/types/src/utils/portal-position/__tests__/portalPosition.tracking.test.d.ts +1 -0
- package/dist/types/src/utils/portal-position/index.d.ts +1 -0
- package/dist/types/src/utils/portal-position/portalPosition.d.ts +67 -0
- package/dist/ui-admin/assets/styles/style.css +26 -16
- package/package.json +2 -2
|
@@ -34,6 +34,12 @@ interface ComboBoxProps extends Omit<ComponentPropsWithRef<'div'>, 'size' | 'onC
|
|
|
34
34
|
* 완료 버튼 클릭 시 호출되는 콜백 — 현재 선택된 값을 인자로 받음 (multiple 모드에서만 트리거)
|
|
35
35
|
*/
|
|
36
36
|
onComplete?: OptionChangeHandler;
|
|
37
|
+
/**
|
|
38
|
+
* 옵션 패널을 React Portal로 body에 렌더한다. 기본값 false — 명시적으로 켠 경우에만 동작한다.
|
|
39
|
+
* SelectBox·Dropdown 과 달리 FloatingContext.preferPortal 을 따르지 않는다. 컨텍스트를 따르면
|
|
40
|
+
* Table horizontalScroll 안의 기존 ComboBox 가 옵션 지정 없이 Portal 로 전환되기 때문이다.
|
|
41
|
+
*/
|
|
42
|
+
usePortal?: boolean;
|
|
37
43
|
}
|
|
38
44
|
declare const ComboBox: import("react").ForwardRefExoticComponent<Omit<ComboBoxProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
39
45
|
export { defaultMaxHeight, ComboBox };
|
package/dist/types/src/components/forms-and-input/combo-box/__tests__/ComboBox.portal.test.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -4,8 +4,10 @@ interface BreadcrumbItemProps {
|
|
|
4
4
|
}
|
|
5
5
|
interface BreadcrumbProps {
|
|
6
6
|
items: BreadcrumbItemProps[];
|
|
7
|
+
/** 첫 항목을 홈 아이콘으로 렌더링할지 여부. false 이면 label 텍스트로 렌더링한다. */
|
|
8
|
+
showHomeIcon?: boolean;
|
|
7
9
|
className?: string;
|
|
8
10
|
}
|
|
9
|
-
declare const BreadCrumb: ({ items, className }: BreadcrumbProps) => import("react/jsx-runtime").JSX.Element | null;
|
|
11
|
+
declare const BreadCrumb: ({ items, showHomeIcon, className }: BreadcrumbProps) => import("react/jsx-runtime").JSX.Element | null;
|
|
10
12
|
export { BreadCrumb };
|
|
11
13
|
export type { BreadcrumbItemProps, BreadcrumbProps };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -2,6 +2,8 @@ import { type RefObject } from 'react';
|
|
|
2
2
|
interface UseDropdownConfig<T = any> {
|
|
3
3
|
triggerRef: RefObject<HTMLElement>;
|
|
4
4
|
dropdownRef?: RefObject<HTMLElement>;
|
|
5
|
+
/** direction 계산 전용 ref. 미지정 시 triggerRef 사용. Portal 모드에서 anchor box 가 다를 때 지정. */
|
|
6
|
+
positionRef?: RefObject<HTMLElement>;
|
|
5
7
|
maxHeight: number;
|
|
6
8
|
itemCount: number;
|
|
7
9
|
optionItems: T[];
|
|
@@ -15,7 +17,7 @@ interface UseDropdownConfig<T = any> {
|
|
|
15
17
|
*/
|
|
16
18
|
export declare const useDropdown: <T = any>(config: UseDropdownConfig<T>) => {
|
|
17
19
|
isOpen: boolean;
|
|
18
|
-
direction: import("../../
|
|
20
|
+
direction: import("../../utils/portal-position").PortalDirection;
|
|
19
21
|
focusedIndex: number;
|
|
20
22
|
toggleDropdown: () => void;
|
|
21
23
|
closeDropdown: () => void;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { DropdownPositionConfig } from '../../types/dropdown';
|
|
2
2
|
/**
|
|
3
3
|
* 드롭다운 위치 계산을 위한 커스텀 훅
|
|
4
4
|
*/
|
|
5
5
|
export declare const useDropdownPosition: (config: DropdownPositionConfig) => {
|
|
6
|
-
direction:
|
|
6
|
+
direction: import("../../utils/portal-position").PortalDirection;
|
|
7
7
|
updatePosition: () => import("../../types/dropdown").DropdownPositionResult;
|
|
8
|
-
setDirection: import("react").Dispatch<import("react").SetStateAction<
|
|
8
|
+
setDirection: import("react").Dispatch<import("react").SetStateAction<import("../../utils/portal-position").PortalDirection>>;
|
|
9
9
|
};
|
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
import { type CSSProperties, type RefObject } from 'react';
|
|
2
|
-
type
|
|
2
|
+
import { type PortalAlign, type PortalDirection } from '../utils/portal-position';
|
|
3
3
|
type UseFloatingPositionParams = {
|
|
4
4
|
enabled: boolean;
|
|
5
5
|
isOpen: boolean;
|
|
6
6
|
triggerRef: RefObject<HTMLElement | null>;
|
|
7
7
|
floatingRef: RefObject<HTMLElement | null>;
|
|
8
|
-
direction:
|
|
8
|
+
direction: PortalDirection;
|
|
9
|
+
/** trigger 와 floating 요소 사이 간격. 미지정 시 4px */
|
|
9
10
|
offset?: number;
|
|
10
|
-
|
|
11
|
+
/** 미지정 시 'left' */
|
|
12
|
+
align?: PortalAlign;
|
|
11
13
|
/**
|
|
12
|
-
* true면 floating 요소의 width를 trigger
|
|
14
|
+
* true면 floating 요소의 min-width를 trigger 너비로 보장한다 (width 고정이 아니다).
|
|
13
15
|
* Portal 모드에서 부모가 body로 바뀌면서 min-width: 100% 같은 CSS가 viewport 너비로
|
|
14
16
|
* 폭주하는 것을 막는다 (예: SelectBox 옵션 패널).
|
|
15
17
|
*/
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { RefObject } from 'react';
|
|
2
|
-
|
|
2
|
+
import type { PortalDirection } from '../../utils/portal-position';
|
|
3
|
+
export type DropdownDirection = PortalDirection;
|
|
3
4
|
export type DropdownPositionConfig = {
|
|
4
5
|
triggerRef: RefObject<HTMLElement>;
|
|
5
6
|
maxHeight: number;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './portalPosition';
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
export type PortalDirection = 'up' | 'down';
|
|
2
|
+
export type PortalAlign = 'left' | 'right';
|
|
3
|
+
export type AnchorRect = Readonly<Pick<DOMRectReadOnly, 'top' | 'bottom' | 'left' | 'right' | 'width'>>;
|
|
4
|
+
export declare const PORTAL_PANEL_Z_INDEX = 1500;
|
|
5
|
+
export type ComputePortalPositionInput = Readonly<{
|
|
6
|
+
anchorRect: AnchorRect;
|
|
7
|
+
panelHeight: number;
|
|
8
|
+
panelWidth: number;
|
|
9
|
+
direction: PortalDirection;
|
|
10
|
+
align?: PortalAlign;
|
|
11
|
+
offset?: number;
|
|
12
|
+
}>;
|
|
13
|
+
export type PortalPosition = Readonly<{
|
|
14
|
+
top: number;
|
|
15
|
+
left: number;
|
|
16
|
+
}>;
|
|
17
|
+
export declare const computePortalPosition: ({ anchorRect, panelHeight, panelWidth, direction, align, offset, }: ComputePortalPositionInput) => PortalPosition;
|
|
18
|
+
export type ResolveDropdownDirectionInput = Readonly<{
|
|
19
|
+
anchorRect: Pick<AnchorRect, 'bottom'>;
|
|
20
|
+
panelHeight: number;
|
|
21
|
+
viewportHeight: number;
|
|
22
|
+
gap?: number;
|
|
23
|
+
}>;
|
|
24
|
+
export declare const resolveDropdownDirection: ({ anchorRect, panelHeight, viewportHeight, gap, }: ResolveDropdownDirectionInput) => PortalDirection;
|
|
25
|
+
export type BuildPortalPanelStyleInput = Readonly<{
|
|
26
|
+
anchorRect: AnchorRect;
|
|
27
|
+
panelHeight: number;
|
|
28
|
+
panelWidth: number | null;
|
|
29
|
+
direction: PortalDirection;
|
|
30
|
+
align?: PortalAlign;
|
|
31
|
+
offset?: number;
|
|
32
|
+
/**
|
|
33
|
+
* true 이면 panelWidth 를 무시하고 anchorRect.width 로 minWidth 를 설정한다.
|
|
34
|
+
* align: 'right' 와 조합 시 콘텐츠가 앵커보다 넓으면 우측 정렬이 보장되지 않는다.
|
|
35
|
+
*/
|
|
36
|
+
matchAnchorWidth?: boolean;
|
|
37
|
+
}>;
|
|
38
|
+
export type PortalPanelStyle = Readonly<{
|
|
39
|
+
position: 'fixed';
|
|
40
|
+
top: number;
|
|
41
|
+
left: number;
|
|
42
|
+
zIndex: number;
|
|
43
|
+
minWidth?: number;
|
|
44
|
+
}>;
|
|
45
|
+
export declare const buildPortalPanelStyle: ({ anchorRect, panelHeight, panelWidth, direction, align, offset, matchAnchorWidth, }: BuildPortalPanelStyleInput) => PortalPanelStyle;
|
|
46
|
+
export type AnchorGeometryObserverOptions = Readonly<{
|
|
47
|
+
getAnchor: () => HTMLElement | null;
|
|
48
|
+
/**
|
|
49
|
+
* 구독 시점에 1회 호출되어 ResizeObserver 가 부착된다.
|
|
50
|
+
* 구독 후 패널이 교체·마운트되어도 옵저버는 갱신되지 않는다.
|
|
51
|
+
*/
|
|
52
|
+
getPanel: () => HTMLElement | null;
|
|
53
|
+
onChange: () => void;
|
|
54
|
+
}>;
|
|
55
|
+
export declare const observeAnchorGeometry: ({ getAnchor, getPanel, onChange, }: AnchorGeometryObserverOptions) => (() => void);
|
|
56
|
+
export type TrackPortalPositionOptions = Readonly<{
|
|
57
|
+
getAnchor: () => HTMLElement | null;
|
|
58
|
+
getPanel: () => HTMLElement | null;
|
|
59
|
+
/** 함수를 넘기면 갱신마다 다시 읽는다 — 열린 뒤 패널 높이가 변하는 소비자가 방향을 재판정할 수 있다 */
|
|
60
|
+
direction: PortalDirection | (() => PortalDirection);
|
|
61
|
+
align?: PortalAlign;
|
|
62
|
+
offset?: number;
|
|
63
|
+
matchAnchorWidth?: boolean;
|
|
64
|
+
onUpdate: (style: PortalPanelStyle) => void;
|
|
65
|
+
}>;
|
|
66
|
+
export declare const trackPortalPosition: ({ onUpdate, ...measureOptions }: TrackPortalPositionOptions) => (() => void);
|
|
67
|
+
export declare const applyPortalPanelStyle: (element: HTMLElement, style: PortalPanelStyle) => void;
|
|
@@ -67,9 +67,6 @@
|
|
|
67
67
|
--shadow-xs-focused-3px-primary-100: 0px 1px 2px 0px #1018280d, 0px 0px 0px 3px #ffeaee;
|
|
68
68
|
--shadow-xs-focused-3px-gray-100: 0px 1px 2px 0px #1018280d, 0px 0px 0px 3px #f2f4f7;
|
|
69
69
|
--shadow-xs-focused-3px-error-100: 0px 1px 2px 0px #1018280d, 0px 0px 0px 3px #fee4e2;
|
|
70
|
-
--shadow-xs-focused-4px-primary-100: 0px 1px 2px 0px #1018280d, 0px 0px 0px 4px #ffeaee;
|
|
71
|
-
--shadow-xs-focused-4px-gray-100: 0px 1px 2px 0px #1018280d, 0px 0px 0px 4px #f2f4f7;
|
|
72
|
-
--shadow-xs-focused-4px-error-100: 0px 1px 2px 0px #1018280d, 0px 0px 0px 4px #fee4e2;
|
|
73
70
|
--shadow-sm: 0px 1px 3px 0px #1018281a, 0px 1px 2px 0px #1018280f;
|
|
74
71
|
--shadow-sm-focused-4px-primary-100: 0px 1px 2px 0px #1018280d, 0px 0px 0px 4px #ffeaee;
|
|
75
72
|
--shadow-sm-focused-4px-gray-100: 0px 1px 3px 0px #1018281a, 0px 1px 2px 0px #1018280f, 0px 0px 0px 4px #f2f4f7;
|
|
@@ -327,7 +324,7 @@ button {
|
|
|
327
324
|
background-color: var(--primary-red-450);
|
|
328
325
|
border: 1px solid var(--primary-red-500);
|
|
329
326
|
color: var(--base-white);
|
|
330
|
-
box-shadow: var(--shadow-
|
|
327
|
+
box-shadow: var(--shadow-sm-focused-4px-primary-100);
|
|
331
328
|
}
|
|
332
329
|
.ncua-btn--primary:disabled, .ncua-btn--primary.is-disable {
|
|
333
330
|
background-color: var(--primary-red-100);
|
|
@@ -373,7 +370,7 @@ button {
|
|
|
373
370
|
background-color: var(--base-white);
|
|
374
371
|
border: 1px solid var(--gray-200);
|
|
375
372
|
color: var(--gray-700);
|
|
376
|
-
box-shadow: var(--shadow-
|
|
373
|
+
box-shadow: var(--shadow-sm-focused-4px-gray-100);
|
|
377
374
|
}
|
|
378
375
|
.ncua-btn--secondary-gray:disabled, .ncua-btn--secondary-gray.is-disable {
|
|
379
376
|
background-color: var(--base-white);
|
|
@@ -959,7 +956,7 @@ button {
|
|
|
959
956
|
}
|
|
960
957
|
.ncua-checkbox-input.destructive :where(input):focus {
|
|
961
958
|
border-color: var(--primary-red-600);
|
|
962
|
-
box-shadow: var(--shadow-
|
|
959
|
+
box-shadow: var(--shadow-sm-focused-4px-error-100);
|
|
963
960
|
}
|
|
964
961
|
.ncua-checkbox-input:hover {
|
|
965
962
|
border-color: var(--gray-600);
|
|
@@ -1241,10 +1238,12 @@ button {
|
|
|
1241
1238
|
}
|
|
1242
1239
|
|
|
1243
1240
|
.ncua-dropdown {
|
|
1244
|
-
--ncua-dropdown-item-height: 36px;
|
|
1245
1241
|
position: relative;
|
|
1246
1242
|
display: inline-block;
|
|
1247
1243
|
}
|
|
1244
|
+
.ncua-dropdown, .ncua-dropdown__menu--portal-root {
|
|
1245
|
+
--ncua-dropdown-item-height: 36px;
|
|
1246
|
+
}
|
|
1248
1247
|
.ncua-dropdown__trigger {
|
|
1249
1248
|
cursor: pointer;
|
|
1250
1249
|
padding: 0;
|
|
@@ -1740,7 +1739,7 @@ button {
|
|
|
1740
1739
|
border-color: var(--primary-red-600);
|
|
1741
1740
|
}
|
|
1742
1741
|
.ncua-input.destructive:where(:focus-within) .ncua-input__field {
|
|
1743
|
-
box-shadow: var(--shadow-
|
|
1742
|
+
box-shadow: var(--shadow-sm-focused-4px-error-100);
|
|
1744
1743
|
}
|
|
1745
1744
|
.ncua-input.is-disabled .ncua-input__content > :not(button) {
|
|
1746
1745
|
background-color: var(--gray-50);
|
|
@@ -1930,7 +1929,7 @@ button {
|
|
|
1930
1929
|
border-color: var(--primary-red-600);
|
|
1931
1930
|
}
|
|
1932
1931
|
.ncua-input--textarea.destructive textarea:focus {
|
|
1933
|
-
box-shadow: var(--shadow-
|
|
1932
|
+
box-shadow: var(--shadow-sm-focused-4px-error-100);
|
|
1934
1933
|
}
|
|
1935
1934
|
|
|
1936
1935
|
.ncua-input--textarea--xs textarea {
|
|
@@ -3192,7 +3191,7 @@ button {
|
|
|
3192
3191
|
}
|
|
3193
3192
|
.ncua-radio-input.destructive :where(input):focus {
|
|
3194
3193
|
border-color: var(--primary-red-600);
|
|
3195
|
-
box-shadow: var(--shadow-
|
|
3194
|
+
box-shadow: var(--shadow-sm-focused-4px-error-100);
|
|
3196
3195
|
}
|
|
3197
3196
|
|
|
3198
3197
|
.ncua-radio-field {
|
|
@@ -3694,7 +3693,7 @@ button {
|
|
|
3694
3693
|
border-color: var(--primary-red-600);
|
|
3695
3694
|
}
|
|
3696
3695
|
.ncua-select.destructive .ncua-select__content:focus-within {
|
|
3697
|
-
box-shadow: var(--shadow-
|
|
3696
|
+
box-shadow: var(--shadow-sm-focused-4px-error-100);
|
|
3698
3697
|
}
|
|
3699
3698
|
.ncua-select--xs .ncua-select__content {
|
|
3700
3699
|
height: var(--select-height-xs);
|
|
@@ -4035,7 +4034,7 @@ button {
|
|
|
4035
4034
|
border-color: var(--primary-red-600);
|
|
4036
4035
|
}
|
|
4037
4036
|
.ncua-selectbox.destructive .ncua-selectbox__content:focus {
|
|
4038
|
-
box-shadow: var(--shadow-
|
|
4037
|
+
box-shadow: var(--shadow-sm-focused-4px-error-100);
|
|
4039
4038
|
}
|
|
4040
4039
|
.ncua-selectbox--xs .ncua-selectbox__content {
|
|
4041
4040
|
height: var(--select-height-xs);
|
|
@@ -5104,6 +5103,16 @@ button {
|
|
|
5104
5103
|
margin-inline-start: -10px;
|
|
5105
5104
|
}
|
|
5106
5105
|
|
|
5106
|
+
.ncua-date-picker--portal-input.ncua-date-picker--xs {
|
|
5107
|
+
padding: 5px 10px;
|
|
5108
|
+
font-size: var(--font-size-xs);
|
|
5109
|
+
}
|
|
5110
|
+
|
|
5111
|
+
.ncua-date-picker--portal-input.ncua-date-picker--sm {
|
|
5112
|
+
padding: 7px 12px;
|
|
5113
|
+
font-size: var(--font-size-sm);
|
|
5114
|
+
}
|
|
5115
|
+
|
|
5107
5116
|
.ncua-range-date-picker {
|
|
5108
5117
|
display: inline-flex;
|
|
5109
5118
|
align-items: center;
|
|
@@ -5197,7 +5206,7 @@ button {
|
|
|
5197
5206
|
font-weight: var(--font-weights-commerce-sans-1);
|
|
5198
5207
|
cursor: pointer;
|
|
5199
5208
|
}
|
|
5200
|
-
.ncua-breadcrumb__list-item
|
|
5209
|
+
.ncua-breadcrumb__list-item--home {
|
|
5201
5210
|
height: 24px;
|
|
5202
5211
|
padding: 4px;
|
|
5203
5212
|
}
|
|
@@ -5328,15 +5337,16 @@ button {
|
|
|
5328
5337
|
justify-content: center;
|
|
5329
5338
|
color: var(--pink-600);
|
|
5330
5339
|
background-color: var(--pink-200);
|
|
5331
|
-
border-radius: 5px;
|
|
5332
5340
|
}
|
|
5333
5341
|
.ncua-badge--new-badge-sm {
|
|
5334
5342
|
width: 16px;
|
|
5335
5343
|
height: 16px;
|
|
5344
|
+
border-radius: 3px;
|
|
5336
5345
|
}
|
|
5337
5346
|
.ncua-badge--new-badge-md {
|
|
5338
5347
|
width: 20px;
|
|
5339
5348
|
height: 20px;
|
|
5349
|
+
border-radius: 4px;
|
|
5340
5350
|
}
|
|
5341
5351
|
|
|
5342
5352
|
.ncua-badge-group {
|
|
@@ -6598,7 +6608,7 @@ button {
|
|
|
6598
6608
|
bottom: 0;
|
|
6599
6609
|
width: 3px;
|
|
6600
6610
|
background: var(--base-black);
|
|
6601
|
-
z-index: 1;
|
|
6611
|
+
z-index: var(--z-index-1);
|
|
6602
6612
|
}
|
|
6603
6613
|
.ncua-table__row--warning.ncua-table__row--selected:nth-child(n) {
|
|
6604
6614
|
background: var(--orange-50);
|
|
@@ -6743,7 +6753,7 @@ button {
|
|
|
6743
6753
|
.ncua-table--fixed-header .ncua-table__header-cell {
|
|
6744
6754
|
position: sticky;
|
|
6745
6755
|
top: 0;
|
|
6746
|
-
z-index:
|
|
6756
|
+
z-index: var(--z-index-sticky);
|
|
6747
6757
|
padding: 0 var(--spacing-m);
|
|
6748
6758
|
height: var(--ncua-table-header-height);
|
|
6749
6759
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ncds/ui-admin",
|
|
3
|
-
"version": "1.8.
|
|
3
|
+
"version": "1.8.25-alpha.1",
|
|
4
4
|
"description": "nhn-commerce의 어드민 디자인 시스템입니다.",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"barrel": "node barrel.js",
|
|
@@ -78,7 +78,7 @@
|
|
|
78
78
|
"@atlaskit/pragmatic-drag-and-drop-auto-scroll": "2.1.0",
|
|
79
79
|
"@atlaskit/pragmatic-drag-and-drop-hitbox": "1.1.0",
|
|
80
80
|
"@atlaskit/pragmatic-drag-and-drop-react-accessibility": "1.1.4",
|
|
81
|
-
"@ncds/ui-admin-icon": "0.1.
|
|
81
|
+
"@ncds/ui-admin-icon": "0.1.12",
|
|
82
82
|
"classnames": "2.5.1",
|
|
83
83
|
"dompurify": "3.4.12",
|
|
84
84
|
"flatpickr": "4.6.13",
|