@designbasekorea/wordpress-ui 0.1.2 → 0.1.4
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/README.md +58 -2
- package/dist/browser.cjs +1 -1
- package/dist/browser.d.ts +13 -2
- package/dist/browser.esm.js +1 -1
- package/dist/browser.iife.js +1 -1
- package/dist/components.cjs +1 -0
- package/dist/components.d.ts +79 -0
- package/dist/components.esm.js +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +80 -2
- package/dist/index.esm.js +1 -1
- package/dist/react/index.cjs +1 -1
- package/dist/react/index.d.ts +36 -34
- package/dist/react/index.esm.js +1 -1
- package/dist/styles/controls.css +1 -1
- package/dist/styles/shell.css +1 -1
- package/dist/styles.css +1 -1
- package/docs/WORDPRESS-ADMIN-GUIDE.md +86 -39
- package/examples/vanilla.html +5 -10
- package/package.json +16 -1
package/README.md
CHANGED
|
@@ -6,6 +6,12 @@ WordPress 전체 관리자 프레임을 대체하지 않고, 플러그인 내부
|
|
|
6
6
|
|
|
7
7
|
## 사용
|
|
8
8
|
|
|
9
|
+
현재 배포 기준 버전은 `0.1.4`입니다. Node 프로젝트에 다음처럼 설치합니다.
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
npm install @designbasekorea/wordpress-ui@0.1.4
|
|
13
|
+
```
|
|
14
|
+
|
|
9
15
|
Vanilla/PHP 플러그인은 필요한 화면에서만 다음 자산을 enqueue합니다.
|
|
10
16
|
|
|
11
17
|
```ts
|
|
@@ -29,7 +35,10 @@ import {
|
|
|
29
35
|
} from '@designbasekorea/wordpress-ui/react';
|
|
30
36
|
```
|
|
31
37
|
|
|
32
|
-
`AdminShell`은 레이아웃(shell·사이드바 토글)만 담당합니다.
|
|
38
|
+
`AdminShell`은 레이아웃(shell·사이드바 토글)만 담당합니다. Vanilla/PHP 화면에서
|
|
39
|
+
`admin-shell.js` adapter를 사용하면 `config.title`이 사이드바 상단의 플러그인명으로
|
|
40
|
+
표시되고, `db-page-header`를 제외한 페이지 내용은 `db-container`로 자동 감쌉니다.
|
|
41
|
+
`AdminPageHeader`는 ui-wc
|
|
33
42
|
`PageHeader`를 감싸 shell 메뉴 버튼과 actions 슬롯을 연결합니다. 탭, 검색, 테이블,
|
|
34
43
|
empty state, 모달 등 나머지 UI는 primitives(`Section`, `SearchBar`, `Table`,
|
|
35
44
|
`EmptyState`, `Modal` 등)를 직접 조합합니다.
|
|
@@ -42,12 +51,17 @@ Vanilla/PHP 화면에서는 등록된 ui-wc element를 직접 사용할 수도
|
|
|
42
51
|
<db-page-header title="페이지 목록" description="페이지를 관리하세요." variant="minimal">
|
|
43
52
|
<a slot="actions" class="button button-primary" href="?page=my-pages">새 페이지</a>
|
|
44
53
|
</db-page-header>
|
|
54
|
+
<db-container size="full" padding="l" full-width>
|
|
55
|
+
<!-- 페이지 콘텐츠 -->
|
|
56
|
+
</db-container>
|
|
45
57
|
</div>
|
|
46
58
|
```
|
|
47
59
|
|
|
48
60
|
## 엔트리포인트
|
|
49
61
|
|
|
50
62
|
- `browser`: React 없이 필요한 ui-wc primitives만 등록하고 모바일 sidebar toggle을 보강합니다.
|
|
63
|
+
- `components`: `ui-wc` Web Component 클래스와 등록 allowlist를 `wordpress-ui`의 public API로 제공합니다.
|
|
64
|
+
- `primitives`: `components`와 같은 vanilla API의 별칭입니다.
|
|
51
65
|
- `react`: ui-wc primitives의 React façade와 native-first 관리자 패턴을 제공합니다.
|
|
52
66
|
- `styles.css`: `@designbasekorea/theme`의 전체 토큰/시맨틱 변수, ui-wc controls,
|
|
53
67
|
shell, overlays, `icons-webfont`를 scoped로 포함한 기본 스타일입니다. 소비자는 별도의
|
|
@@ -63,6 +77,48 @@ Vanilla/PHP 화면에서는 등록된 ui-wc element를 직접 사용할 수도
|
|
|
63
77
|
<i class="icon-settings" aria-hidden="true"></i>
|
|
64
78
|
```
|
|
65
79
|
|
|
80
|
+
### ui-wc primitives
|
|
81
|
+
|
|
82
|
+
PHP/vanilla 화면은 `browser` 자산을 enqueue한 뒤 `db-*` element를 사용합니다.
|
|
83
|
+
TypeScript로 Web Component 클래스를 직접 조합하는 경우에도 `ui-wc`를 직접 import하지
|
|
84
|
+
말고 `wordpress-ui`의 `components` entry를 사용합니다.
|
|
85
|
+
|
|
86
|
+
```ts
|
|
87
|
+
import '@designbasekorea/wordpress-ui/browser';
|
|
88
|
+
import '@designbasekorea/wordpress-ui/styles.css';
|
|
89
|
+
import {
|
|
90
|
+
DbButton,
|
|
91
|
+
DbInput,
|
|
92
|
+
DbSelect,
|
|
93
|
+
DbModal,
|
|
94
|
+
DbContainer,
|
|
95
|
+
} from '@designbasekorea/wordpress-ui/components';
|
|
96
|
+
|
|
97
|
+
// PHP/HTML에서는 <db-button>, <db-input>, <db-select>, <db-modal>로 사용합니다.
|
|
98
|
+
void DbButton;
|
|
99
|
+
void DbInput;
|
|
100
|
+
void DbSelect;
|
|
101
|
+
void DbModal;
|
|
102
|
+
void DbContainer;
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
동일한 named export는 패키지 루트에서도 사용할 수 있습니다. 기존 `figma-ui`처럼
|
|
106
|
+
짧은 import를 선호하는 TypeScript 소비자는 다음 형태를 사용해도 됩니다.
|
|
107
|
+
|
|
108
|
+
```ts
|
|
109
|
+
import { DbButton, DbInput, DbSelect, DbModal } from '@designbasekorea/wordpress-ui';
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
두 경로 모두 같은 `ui-wc` 클래스와 등록 계약을 가리킵니다. HTML/PHP 소비자는
|
|
113
|
+
`browser`를 enqueue한 뒤 `<db-button>`, `<db-input>`, `<db-select>`, `<db-modal>`처럼
|
|
114
|
+
태그를 사용합니다.
|
|
115
|
+
|
|
116
|
+
React 화면은 같은 ui-wc element를 React façade로 사용합니다.
|
|
117
|
+
|
|
118
|
+
```tsx
|
|
119
|
+
import { Button, Input, Select, Modal } from '@designbasekorea/wordpress-ui/react';
|
|
120
|
+
```
|
|
121
|
+
|
|
66
122
|
로컬 검증은 `npm run build`, `npm run verify`, `npm run audit:axe` 순서로 실행합니다.
|
|
67
123
|
`audit:axe`는 Chromium이 설치된 환경에서 vanilla 예제의 실제 DOM을 검사합니다.
|
|
68
124
|
|
|
@@ -76,7 +132,7 @@ npm run storybook
|
|
|
76
132
|
기본 포트는 `http://localhost:6008` 입니다. (`figma-ui` Storybook은 `:6007`)
|
|
77
133
|
|
|
78
134
|
모든 관리자 패턴과 runtime surface는 `.designbase-wp-admin` 아래에서 동작합니다. 신규
|
|
79
|
-
플러그인과 테마는
|
|
135
|
+
플러그인과 테마는 이 패키지의 public API만 사용하세요. 기존 UI
|
|
80
136
|
라이브러리의 전역 객체나 호환 계층은 제공하지 않습니다.
|
|
81
137
|
|
|
82
138
|
## WordPress 플러그인·테마 enqueue
|