@machinerd/js-module 0.5.3 → 0.6.0
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 +10 -101
- package/dist/common-CQWUs1nE.cjs +1 -0
- package/dist/common-DbEp6YNc.mjs +1 -0
- package/dist/file-5mweNdAM.cjs +1 -0
- package/dist/file-DShNxIW4.mjs +1 -0
- package/dist/hooks/index.cjs +1 -1
- package/dist/hooks/index.d.cts +1 -1
- package/dist/hooks/index.d.mts +1 -1
- package/dist/hooks/index.mjs +1 -1
- package/dist/hooks--O5RcEJq.cjs +1 -0
- package/dist/hooks-C9rXWkfW.mjs +1 -0
- package/dist/{index-ComhjQ-q.d.cts → index-BFHrNSKP.d.mts} +4 -4
- package/dist/{index-ByfkW7VU.d.mts → index-BQHtVz_S.d.cts} +4 -4
- package/dist/index.d.cts +1 -1
- package/dist/index.d.mts +1 -1
- package/dist/index.mjs +1 -1
- package/dist/providers/index.cjs +1 -1
- package/dist/providers/index.d.cts +3 -3
- package/dist/providers/index.d.mts +3 -3
- package/dist/providers/index.mjs +1 -1
- package/dist/{providers-5JCPezAS.mjs → providers-zftmvT1z.mjs} +1 -1
- package/dist/skeleton-6QtpIO7l.mjs +1 -0
- package/dist/skeleton-DBha34Cx.cjs +1 -0
- package/dist/styles/index.css +6 -25
- package/dist/ui/carousel/index.cjs +1 -0
- package/dist/ui/carousel/index.d.cts +95 -0
- package/dist/ui/carousel/index.d.mts +95 -0
- package/dist/ui/carousel/index.mjs +1 -0
- package/dist/ui/dialog/index.cjs +1 -0
- package/dist/ui/dialog/index.d.cts +30 -0
- package/dist/ui/dialog/index.d.mts +30 -0
- package/dist/ui/dialog/index.mjs +1 -0
- package/dist/ui/image/index.cjs +1 -0
- package/dist/ui/image/index.d.cts +45 -0
- package/dist/ui/image/index.d.mts +45 -0
- package/dist/ui/image/index.mjs +1 -0
- package/dist/ui/index.cjs +1 -1
- package/dist/ui/index.d.cts +9 -9
- package/dist/ui/index.d.mts +9 -9
- package/dist/ui/index.mjs +1 -1
- package/dist/ui/sheet/index.cjs +1 -0
- package/dist/ui/sheet/index.d.cts +28 -0
- package/dist/ui/sheet/index.d.mts +28 -0
- package/dist/ui/sheet/index.mjs +1 -0
- package/dist/ui/tooltip/index.cjs +1 -0
- package/dist/ui/tooltip/index.d.cts +16 -0
- package/dist/ui/tooltip/index.d.mts +16 -0
- package/dist/ui/tooltip/index.mjs +1 -0
- package/dist/use-subset-image-DhX5WmYG.cjs +1 -0
- package/dist/use-subset-image-DvV5Mlkc.mjs +1 -0
- package/dist/util/browser.cjs +1 -0
- package/dist/util/browser.d.cts +16 -0
- package/dist/util/browser.d.mts +16 -0
- package/dist/util/browser.mjs +1 -0
- package/dist/util/common.cjs +1 -0
- package/dist/util/common.d.cts +56 -0
- package/dist/util/common.d.mts +56 -0
- package/dist/util/common.mjs +1 -0
- package/dist/util/date.cjs +1 -0
- package/dist/util/date.d.cts +4 -0
- package/dist/util/date.d.mts +6 -0
- package/dist/util/date.mjs +1 -0
- package/dist/util/file.cjs +1 -0
- package/dist/util/file.d.cts +15 -0
- package/dist/util/file.d.mts +15 -0
- package/dist/util/file.mjs +1 -0
- package/dist/util/format.cjs +1 -0
- package/dist/util/format.d.cts +6 -0
- package/dist/util/format.d.mts +6 -0
- package/dist/util/format.mjs +1 -0
- package/dist/util/generator.cjs +1 -0
- package/dist/util/generator.d.cts +18 -0
- package/dist/util/generator.d.mts +18 -0
- package/dist/util/generator.mjs +1 -0
- package/dist/util/phone.cjs +1 -0
- package/dist/util/phone.d.cts +22 -0
- package/dist/util/phone.d.mts +22 -0
- package/dist/util/phone.mjs +1 -0
- package/package.json +48 -8
- package/dist/hooks-DBo6LQrH.mjs +0 -1
- package/dist/hooks-DqgWx1Fa.cjs +0 -1
- package/dist/skeleton-S6S1ZnCy.mjs +0 -1
- package/dist/skeleton-g6yXh6D9.cjs +0 -1
- package/dist/ui-client/index.cjs +0 -1
- package/dist/ui-client/index.d.cts +0 -192
- package/dist/ui-client/index.d.mts +0 -192
- package/dist/ui-client/index.mjs +0 -1
- package/dist/util/index.cjs +0 -1
- package/dist/util/index.d.cts +0 -129
- package/dist/util/index.d.mts +0 -130
- package/dist/util/index.mjs +0 -1
- package/dist/util-o7fjt7iK.cjs +0 -1
- package/dist/util-zXJA6Gnc.mjs +0 -1
- /package/dist/{index-CH1uVFqx.d.cts → index-B3fFA21M.d.mts} +0 -0
- /package/dist/{index-D6Jzsxc-.d.mts → index-CeiAF-WU.d.cts} +0 -0
- /package/dist/{providers-BNK8Fisc.cjs → providers-CkXkdYcB.cjs} +0 -0
- /package/dist/{src-C_FmOyer.mjs → src-CukOR3K2.mjs} +0 -0
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
React용 공용 UI·훅·유틸·API 클라이언트 패키지입니다.
|
|
4
4
|
|
|
5
|
-
**현재 버전:** `0.
|
|
5
|
+
**현재 버전:** `0.6` (`package.json`의 `version` 필드와 동일합니다. 배포 전에는 해당 값을 확인하세요.)
|
|
6
6
|
|
|
7
7
|
**Peer dependency:** `react`, `react-dom` — `^18.3.1` 또는 `^19.0.0`
|
|
8
8
|
|
|
@@ -12,12 +12,11 @@ React용 공용 UI·훅·유틸·API 클라이언트 패키지입니다.
|
|
|
12
12
|
|
|
13
13
|
```bash
|
|
14
14
|
pnpm add @machinerd/js-module
|
|
15
|
-
# 또는
|
|
16
15
|
npm install @machinerd/js-module
|
|
17
16
|
yarn add @machinerd/js-module
|
|
18
17
|
```
|
|
19
18
|
|
|
20
|
-
|
|
19
|
+
컴포넌트를 사용한다면 CSS도 함께 import 해야 합니다.
|
|
21
20
|
|
|
22
21
|
```js
|
|
23
22
|
import '@machinerd/js-module/styles/index.css';
|
|
@@ -27,8 +26,6 @@ import '@machinerd/js-module/styles/index.css';
|
|
|
27
26
|
|
|
28
27
|
## API 클라이언트 (`@machinerd/js-module`)
|
|
29
28
|
|
|
30
|
-
기본 export는 `ApiClient` 클래스입니다. 인스턴스를 만들어 props나 훅 인자로 넘깁니다.
|
|
31
|
-
|
|
32
29
|
```ts
|
|
33
30
|
import ApiClient, { type ApiConfig } from '@machinerd/js-module';
|
|
34
31
|
|
|
@@ -41,15 +38,11 @@ await client.login(/* ... */);
|
|
|
41
38
|
client.cdnMedia('path/to/key');
|
|
42
39
|
```
|
|
43
40
|
|
|
44
|
-
로그인·CDN URL 빌드 등에는 위처럼 직접 인스턴스를 만들어 쓸 수 있습니다.
|
|
45
|
-
|
|
46
41
|
---
|
|
47
42
|
|
|
48
43
|
## Providers
|
|
49
44
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
**`Image`·`useSubsetImage` 등 CDN 경로를 다루는 UI·훅**은 내부에서 `useApiClient()`로 **`ApiClient` 인스턴스**에 접근합니다. 사용하는 쪽에서 매번 `ApiClient`를 만들어 props로 넘기지 않도록, **앱(또는 라우트 트리) 최상단**을 `ApiClientProvider`로 감싸고 `config`만 넘기면 됩니다.
|
|
45
|
+
**`Image`·`useSubsetImage` 등 CDN 경로를 다루는 UI·훅**은 내부에서 `useApiClient()`로 **`ApiClient` 인스턴스**에 접근합니다.
|
|
53
46
|
|
|
54
47
|
```tsx
|
|
55
48
|
import { ApiClientProvider } from '@machinerd/js-module/providers';
|
|
@@ -68,70 +61,21 @@ export function App({ children }: { children: React.ReactNode }) {
|
|
|
68
61
|
}
|
|
69
62
|
```
|
|
70
63
|
|
|
71
|
-
- Next.js App Router라면 `app/layout.tsx` 등 **루트 레이아웃**에 두는 것을 권장합니다.
|
|
72
|
-
- Provider 밖에서 `Image` / `useSubsetImage`를 쓰면 런타임에 `ApiClient not found` 오류가 납니다.
|
|
73
|
-
|
|
74
|
-
`useApiClient`는 같은 패키지의 `./providers`에서 export 됩니다.
|
|
75
|
-
|
|
76
64
|
---
|
|
77
65
|
|
|
78
|
-
## UI 컴포넌트 (`@machinerd/js-module/ui`)
|
|
79
|
-
|
|
80
|
-
서버·클라이언트 구분 없이 쓸 수 있는 컴포넌트입니다.
|
|
66
|
+
## UI 컴포넌트 (`@machinerd/js-module/ui/common`)
|
|
81
67
|
|
|
82
68
|
```tsx
|
|
83
69
|
import {
|
|
84
|
-
BottomAppBar,
|
|
85
70
|
Button,
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
import '@machinerd/js-module/styles/index.css';
|
|
91
|
-
```
|
|
92
|
-
|
|
93
|
-
각 컴포넌트의 props·변형은 Storybook(`pnpm storybook`) 또는 소스의 타입 정의를 참고하면 됩니다.
|
|
94
|
-
|
|
95
|
-
---
|
|
96
|
-
|
|
97
|
-
## 클라이언트 전용 UI (`@machinerd/js-module/ui-client`)
|
|
98
|
-
|
|
99
|
-
브라우저 API·상태에 의존하는 컴포넌트입니다. **번들/페이지의 클라이언트 경계 안**에서만 사용하세요.
|
|
71
|
+
...Other
|
|
72
|
+
} from '@machinerd/js-module/ui/common';
|
|
73
|
+
import { Carousel } from '@machinerd/js-module/ui/carousel';
|
|
74
|
+
...Other
|
|
100
75
|
|
|
101
|
-
```tsx
|
|
102
|
-
import { Carousel, CarouselItem, Image, Tooltip /* … */ } from '@machinerd/js-module/ui-client';
|
|
103
76
|
import '@machinerd/js-module/styles/index.css';
|
|
104
77
|
```
|
|
105
78
|
|
|
106
|
-
**`Image`를 쓰려면** 위 [Providers](#providers)의 **`ApiClientProvider`를 최상위에 두는 것**이 필요합니다. CDN·API 엔드포인트는 `config`로 한 번만 넘기면 되며, `Image`에 `ApiClient`를 props로 넘길 필요는 없습니다. props·Storybook 문서는 타입 정의와 Storybook을 참고하세요.
|
|
107
|
-
|
|
108
|
-
> **참고:** export 경로는 `ui/client`가 아니라 **`ui-client`** 입니다 (`package.json`의 `exports`와 일치).
|
|
109
|
-
|
|
110
|
-
---
|
|
111
|
-
|
|
112
|
-
## 훅 (`@machinerd/js-module/hooks`)
|
|
113
|
-
|
|
114
|
-
```ts
|
|
115
|
-
import { useOutsideClick, useWindowSize } from '@machinerd/js-module/hooks';
|
|
116
|
-
```
|
|
117
|
-
|
|
118
|
-
`useOutsideClick`은 타입 `UseOutsideClickProps`도 함께 export 합니다.
|
|
119
|
-
|
|
120
|
-
`useSubsetImage`는 **`ApiClientProvider` 안**에서만 사용할 수 있습니다 ([Providers](#providers)).
|
|
121
|
-
|
|
122
|
-
---
|
|
123
|
-
|
|
124
|
-
## 유틸 (`@machinerd/js-module/util`)
|
|
125
|
-
|
|
126
|
-
`browser`, `common`, `date`, `file`, `format`, `generator` 등 모듈에서 필요한 심볼을 re-export 합니다.
|
|
127
|
-
|
|
128
|
-
```ts
|
|
129
|
-
import { formatI18nNumber } from '@machinerd/js-module/util';
|
|
130
|
-
import { isExternalSrc } from '@machinerd/js-module/util';
|
|
131
|
-
```
|
|
132
|
-
|
|
133
|
-
전체 목록은 `src/util/index.ts`를 보거나 IDE 자동완성으로 확인하는 것이 좋습니다.
|
|
134
|
-
|
|
135
79
|
---
|
|
136
80
|
|
|
137
81
|
## 로컬 개발·다른 프로젝트에서 검증
|
|
@@ -143,20 +87,16 @@ pnpm install
|
|
|
143
87
|
pnpm build
|
|
144
88
|
```
|
|
145
89
|
|
|
146
|
-
`prepublishOnly`에 `pnpm build`가 걸려 있어 `pnpm publish` 전에도 빌드가 돌지만, pack 테스트 전에 한 번 빌드하는 것을 권장합니다.
|
|
147
|
-
|
|
148
90
|
### 2. tarball로 다른 프로젝트에 넣기 (`pnpm pack`)
|
|
149
91
|
|
|
150
92
|
```bash
|
|
151
93
|
pnpm pack
|
|
152
94
|
```
|
|
153
95
|
|
|
154
|
-
현재 버전 기준으로 예: `machinerd-js-module-0.5.0.tgz` 형태의 파일이 상위 디렉터리(또는 현재 디렉터리)에 생성됩니다. 정확한 파일명은 명령 출력을 따르세요.
|
|
155
|
-
|
|
156
96
|
소비하는 프로젝트에서:
|
|
157
97
|
|
|
158
98
|
```bash
|
|
159
|
-
pnpm add /절대/또는/상대/경로/machinerd-js-module-
|
|
99
|
+
pnpm add /절대/또는/상대/경로/machinerd-js-module-[VERSION].tgz
|
|
160
100
|
```
|
|
161
101
|
|
|
162
102
|
또는 `package.json`에:
|
|
@@ -164,38 +104,7 @@ pnpm add /절대/또는/상대/경로/machinerd-js-module-0.4.0.tgz
|
|
|
164
104
|
```json
|
|
165
105
|
{
|
|
166
106
|
"dependencies": {
|
|
167
|
-
"@machinerd/js-module": "file:../js-module/machinerd-js-module-
|
|
107
|
+
"@machinerd/js-module": "file:../js-module/machinerd-js-module-[VERSION].tgz"
|
|
168
108
|
}
|
|
169
109
|
}
|
|
170
110
|
```
|
|
171
|
-
|
|
172
|
-
### 3. `pnpm link` (글로벌 링크)
|
|
173
|
-
|
|
174
|
-
```bash
|
|
175
|
-
# js-module 쪽
|
|
176
|
-
pnpm link --global
|
|
177
|
-
|
|
178
|
-
# 소비 프로젝트 쪽
|
|
179
|
-
pnpm link --global @machinerd/js-module
|
|
180
|
-
```
|
|
181
|
-
|
|
182
|
-
워크스페이스 모노레포라면 `pnpm-workspace.yaml`에 패키지 경로를 넣고 `workspace:*` 의존성으로 연결하는 방식이 더 안정적입니다.
|
|
183
|
-
|
|
184
|
-
### 4. Storybook으로 UI만 확인
|
|
185
|
-
|
|
186
|
-
```bash
|
|
187
|
-
pnpm storybook
|
|
188
|
-
```
|
|
189
|
-
|
|
190
|
-
---
|
|
191
|
-
|
|
192
|
-
## 스크립트 요약
|
|
193
|
-
|
|
194
|
-
| 명령 | 설명 |
|
|
195
|
-
|------|------|
|
|
196
|
-
| `pnpm build` | 라이브러리 + CSS 빌드 |
|
|
197
|
-
| `pnpm storybook` | 컴포넌트 문서·예제 (로컬) |
|
|
198
|
-
| `pnpm build-storybook` | 정적 Storybook 빌드 |
|
|
199
|
-
| `pnpm pack` | npm 패키지 tarball 생성 (로컬 설치 테스트용) |
|
|
200
|
-
|
|
201
|
-
---
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e=require(`./chunk-Bmb41Sf3.cjs`);let t=require(`query-string`);t=e.t(t);let n=require(`lodash-es`),r=require(`slug`);r=e.t(r),r.default.extend({'"':`-`,"”":`-`,"“":`-`,"•":`----`}),r.default.setLocale(`en`);const i=(e,n=[])=>{if(typeof window>`u`)return``;let{hash:r,search:i}=window.location,a=t.default.parse(i);Object.keys(e).forEach(t=>{e[t]?a[t]=e[t]:delete a[t]});let o={...a};return Object.keys(a).forEach(e=>{n.includes(e)&&delete o[e]}),`?${t.default.stringify(o,{encode:!0})}${r}`},a=(e,t)=>{let n=0;return e%t===0&&(n=e/t),n=Math.ceil(e/t),n<1&&(n=1),n},o=e=>{let t=[...e];for(let e=t.length-1;e>0;e--){let n=Math.floor(Math.random()*(e+1));[t[e],t[n]]=[t[n],t[e]]}return t},s=e=>{let t=document.getElementById(`naverMapLib`);if(!t){let t=document.createElement(`script`);t.src=`https://oapi.map.naver.com/openapi/v3/maps.js?ncpKeyId=ecs1pyoo9b`,t.id=`naverMapLib`,document.body.appendChild(t),t.onload=()=>{e&&e()}}t&&e&&e()},c=(e,...t)=>{let n=`${e}`;return t.forEach(e=>{e&&(n=`${n}-${(0,r.default)(e)}`)}),n},l=e=>{let t=[];e.i18n?.forEach(e=>{e.locale===`en`&&e.name&&t.push(e.name)});let n=e.series?.i18n.find(e=>e.locale===`en`);return n?.name&&t.push(n.name.toLowerCase()),e.stockNo&&t.push(e.stockNo[0]),c(e.id,...t)},u=e=>{let t=e;return t.length>0?t[0].trim():``},d=(e=`en`,t,n)=>{if(!t||!n||t.length<=0)return``;let r=[...t].sort(p);if(e){let t=r.findIndex(t=>t.locale===e);if(t){let e=r.splice(t,1);r.unshift(e[0])}}for(let e of r){let t=e[n];if(!(Array.isArray(t)&&t.length===0)&&t)return t}return``},f=(e,t,n)=>{if(!t||!n||t.length<=0)return``;let r=[...t].sort(p);if(e){let t=r.findIndex(t=>t.locale===e);if(t){let e=r.splice(t,1);r.unshift(e[0])}}let i=``;for(let e of r){let t=e[n];if(t){i=String(t);break}}return i},p=(e,t)=>e.priority<t.priority?-1:e.priority>t.priority?1:0,m=(e,t,n)=>{if(e){let r;r=Array.isArray(e)?e[0]:e;try{return t(r)}catch{return n}}return n},h=(e,t)=>{let{[t]:n,...r}=e;return r},g=(e,t)=>Object.fromEntries(Object.entries(e).filter(([e])=>!t.includes(e))),_=(e,t)=>(0,n.intersection)(e,t).length>0,v=e=>e.split(`:`).pop()?.split(`.`).pop(),y=(e,...t)=>[e,t].flat().join(`.`).replace(`:.`,`.`),b=(e=`en`,t)=>{if(t.length<=0)return`-`;let n=t[0];return n?x(e,n.i18n):`-`},x=(e=`en`,t)=>{if(t.length===0)return``;let n=d(e,t,`address1`)?.replace(`대한민국`,``)||``,r=t.find(t=>t.locale===e)?.address2,i=[n];return e===`ko`?i.push(r):i.unshift(r),i.filter(Boolean).join(`, `).trim()},S=e=>{let t=0;for(let n of e)t+=n.weight;let n=Math.random()*t,r=0;for(let t of e)if(r+=t.weight,n<r)return t;return e[e.length-1]},C=e=>new Promise(t=>setTimeout(t,e)),w=(...e)=>e.filter(Boolean).join(` `);Object.defineProperty(exports,`_`,{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,`b`,{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,`f`,{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,`g`,{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,`h`,{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,`m`,{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return w}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,`p`,{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,`v`,{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,`x`,{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,`y`,{enumerable:!0,get:function(){return c}});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import e from"query-string";import{intersection as t}from"lodash-es";import n from"slug";n.extend({'"':`-`,"”":`-`,"“":`-`,"•":`----`}),n.setLocale(`en`);const r=(t,n=[])=>{if(typeof window>`u`)return``;let{hash:r,search:i}=window.location,a=e.parse(i);Object.keys(t).forEach(e=>{t[e]?a[e]=t[e]:delete a[e]});let o={...a};return Object.keys(a).forEach(e=>{n.includes(e)&&delete o[e]}),`?${e.stringify(o,{encode:!0})}${r}`},i=(e,t)=>{let n=0;return e%t===0&&(n=e/t),n=Math.ceil(e/t),n<1&&(n=1),n},a=e=>{let t=[...e];for(let e=t.length-1;e>0;e--){let n=Math.floor(Math.random()*(e+1));[t[e],t[n]]=[t[n],t[e]]}return t},o=e=>{let t=document.getElementById(`naverMapLib`);if(!t){let t=document.createElement(`script`);t.src=`https://oapi.map.naver.com/openapi/v3/maps.js?ncpKeyId=ecs1pyoo9b`,t.id=`naverMapLib`,document.body.appendChild(t),t.onload=()=>{e&&e()}}t&&e&&e()},s=(e,...t)=>{let r=`${e}`;return t.forEach(e=>{e&&(r=`${r}-${n(e)}`)}),r},c=e=>{let t=[];e.i18n?.forEach(e=>{e.locale===`en`&&e.name&&t.push(e.name)});let n=e.series?.i18n.find(e=>e.locale===`en`);return n?.name&&t.push(n.name.toLowerCase()),e.stockNo&&t.push(e.stockNo[0]),s(e.id,...t)},l=e=>{let t=e;return t.length>0?t[0].trim():``},u=(e=`en`,t,n)=>{if(!t||!n||t.length<=0)return``;let r=[...t].sort(f);if(e){let t=r.findIndex(t=>t.locale===e);if(t){let e=r.splice(t,1);r.unshift(e[0])}}for(let e of r){let t=e[n];if(!(Array.isArray(t)&&t.length===0)&&t)return t}return``},d=(e,t,n)=>{if(!t||!n||t.length<=0)return``;let r=[...t].sort(f);if(e){let t=r.findIndex(t=>t.locale===e);if(t){let e=r.splice(t,1);r.unshift(e[0])}}let i=``;for(let e of r){let t=e[n];if(t){i=String(t);break}}return i},f=(e,t)=>e.priority<t.priority?-1:e.priority>t.priority?1:0,p=(e,t,n)=>{if(e){let r;r=Array.isArray(e)?e[0]:e;try{return t(r)}catch{return n}}return n},m=(e,t)=>{let{[t]:n,...r}=e;return r},h=(e,t)=>Object.fromEntries(Object.entries(e).filter(([e])=>!t.includes(e))),g=(e,n)=>t(e,n).length>0,_=e=>e.split(`:`).pop()?.split(`.`).pop(),v=(e,...t)=>[e,t].flat().join(`.`).replace(`:.`,`.`),y=(e=`en`,t)=>{if(t.length<=0)return`-`;let n=t[0];return n?b(e,n.i18n):`-`},b=(e=`en`,t)=>{if(t.length===0)return``;let n=u(e,t,`address1`)?.replace(`대한민국`,``)||``,r=t.find(t=>t.locale===e)?.address2,i=[n];return e===`ko`?i.push(r):i.unshift(r),i.filter(Boolean).join(`, `).trim()},x=e=>{let t=0;for(let n of e)t+=n.weight;let n=Math.random()*t,r=0;for(let t of e)if(r+=t.weight,n<r)return t;return e[e.length-1]},S=e=>new Promise(t=>setTimeout(t,e)),C=(...e)=>e.filter(Boolean).join(` `);export{a as _,g as a,h as b,_ as c,l as d,r as f,x as g,c as h,v as i,d as l,p as m,C as n,y as o,o as p,f as r,b as s,i as t,u,S as v,m as x,s as y};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function e(e,t=0){if(e==0)return`0 Bytes`;let n=1024,r=t,i=[`Bytes`,`KB`,`MB`,`GB`,`TB`,`PB`,`EB`,`ZB`,`YB`],a=Math.floor(Math.log(e)/Math.log(n));return parseFloat((e/n**+a).toFixed(r))+` `+i[a]}const t=e=>e.split(`.`).slice(0,-1).join(`.`),n=e=>e.split(`.`).pop(),r=(e,t)=>{let n={directory:``,filename:``,extension:``,filenameWithoutExtension:``},r=e.lastIndexOf(`/`),i=r>=0?e.substring(r+1):e,a=i.lastIndexOf(`.`),o=a>0?i.substring(a+1):``,s=a>0?i.substring(0,a):i;if(n.filename=i,n.extension=o,n.filenameWithoutExtension=s,e.startsWith(`http`)){let r=t?`/${t}/`:`/`,i=e.indexOf(r);if(i!==-1){let t=e.substring(i+r.length),a=t.lastIndexOf(`/`);return n.directory=a===-1?``:t.substring(0,a),n}}return n.directory=r===-1?``:e.substring(0,r),n},i=e=>e.startsWith(`http`)||e.startsWith(`blob:`)||e.startsWith(`data:`),a=[`svg`,`gif`],o=e=>{if(!e||e.startsWith(`blob:`)||e.startsWith(`data:`))return!1;let t=e.lastIndexOf(`/`),n=t>=0?e.substring(t+1):e,r=n.lastIndexOf(`.`),i=r>0?n.substring(r+1):``;return!a.includes(i?.toLowerCase()??``)};Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return n}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return r}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return t}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return e}});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function e(e,t=0){if(e==0)return`0 Bytes`;let n=1024,r=t,i=[`Bytes`,`KB`,`MB`,`GB`,`TB`,`PB`,`EB`,`ZB`,`YB`],a=Math.floor(Math.log(e)/Math.log(n));return parseFloat((e/n**+a).toFixed(r))+` `+i[a]}const t=e=>e.split(`.`).slice(0,-1).join(`.`),n=e=>e.split(`.`).pop(),r=(e,t)=>{let n={directory:``,filename:``,extension:``,filenameWithoutExtension:``},r=e.lastIndexOf(`/`),i=r>=0?e.substring(r+1):e,a=i.lastIndexOf(`.`),o=a>0?i.substring(a+1):``,s=a>0?i.substring(0,a):i;if(n.filename=i,n.extension=o,n.filenameWithoutExtension=s,e.startsWith(`http`)){let r=t?`/${t}/`:`/`,i=e.indexOf(r);if(i!==-1){let t=e.substring(i+r.length),a=t.lastIndexOf(`/`);return n.directory=a===-1?``:t.substring(0,a),n}}return n.directory=r===-1?``:e.substring(0,r),n},i=e=>e.startsWith(`http`)||e.startsWith(`blob:`)||e.startsWith(`data:`),a=[`svg`,`gif`],o=e=>{if(!e||e.startsWith(`blob:`)||e.startsWith(`data:`))return!1;let t=e.lastIndexOf(`/`),n=t>=0?e.substring(t+1):e,r=n.lastIndexOf(`.`),i=r>0?n.substring(r+1):``;return!a.includes(i?.toLowerCase()??``)};export{o as a,i,n,r as o,t as r,e as t};
|
package/dist/hooks/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
require(`../src-CjpmdVyv.cjs`),require(`../
|
|
1
|
+
require(`../src-CjpmdVyv.cjs`),require(`../file-5mweNdAM.cjs`);const e=require(`../hooks--O5RcEJq.cjs`);require(`../providers-CkXkdYcB.cjs`);const t=require(`../use-subset-image-DhX5WmYG.cjs`);exports.SUBSETS=t.t,exports.useDelayUnmount=e.o,exports.useDragScroll=e.a,exports.useOutsideClick=e.i,exports.useScrollLock=e.r,exports.useScrollTop=e.n,exports.useSubsetImage=t.n,exports.useWindowSize=e.t;
|
package/dist/hooks/index.d.cts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as UseSubsetImageProps, c as useScrollTop, d as UseOutsideClickProps, f as useOutsideClick, i as SUBSETS, l as UseScrollLockProps, m as useDelayUnmount, n as BaseProps, o as useSubsetImage, p as useDragScroll, r as Folder, s as UseScrollTopProps, t as useWindowSize, u as useScrollLock } from "../index-
|
|
1
|
+
import { a as UseSubsetImageProps, c as useScrollTop, d as UseOutsideClickProps, f as useOutsideClick, i as SUBSETS, l as UseScrollLockProps, m as useDelayUnmount, n as BaseProps, o as useSubsetImage, p as useDragScroll, r as Folder, s as UseScrollTopProps, t as useWindowSize, u as useScrollLock } from "../index-BQHtVz_S.cjs";
|
|
2
2
|
export { BaseProps, Folder, SUBSETS, UseOutsideClickProps, UseScrollLockProps, UseScrollTopProps, UseSubsetImageProps, useDelayUnmount, useDragScroll, useOutsideClick, useScrollLock, useScrollTop, useSubsetImage, useWindowSize };
|
package/dist/hooks/index.d.mts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as UseSubsetImageProps, c as useScrollTop, d as UseOutsideClickProps, f as useOutsideClick, i as SUBSETS, l as UseScrollLockProps, m as useDelayUnmount, n as BaseProps, o as useSubsetImage, p as useDragScroll, r as Folder, s as UseScrollTopProps, t as useWindowSize, u as useScrollLock } from "../index-
|
|
1
|
+
import { a as UseSubsetImageProps, c as useScrollTop, d as UseOutsideClickProps, f as useOutsideClick, i as SUBSETS, l as UseScrollLockProps, m as useDelayUnmount, n as BaseProps, o as useSubsetImage, p as useDragScroll, r as Folder, s as UseScrollTopProps, t as useWindowSize, u as useScrollLock } from "../index-BFHrNSKP.mjs";
|
|
2
2
|
export { BaseProps, Folder, SUBSETS, UseOutsideClickProps, UseScrollLockProps, UseScrollTopProps, UseSubsetImageProps, useDelayUnmount, useDragScroll, useOutsideClick, useScrollLock, useScrollTop, useSubsetImage, useWindowSize };
|
package/dist/hooks/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import"../src-
|
|
1
|
+
import"../src-CukOR3K2.mjs";import"../file-DShNxIW4.mjs";import{a as e,i as t,n,o as r,r as i,t as a}from"../hooks-C9rXWkfW.mjs";import"../providers-zftmvT1z.mjs";import{n as o,t as s}from"../use-subset-image-DvV5Mlkc.mjs";export{s as SUBSETS,r as useDelayUnmount,e as useDragScroll,t as useOutsideClick,i as useScrollLock,n as useScrollTop,o as useSubsetImage,a as useWindowSize};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e=require(`./chunk-Bmb41Sf3.cjs`);let t=require(`lodash-es`),n=require(`react`);function r(e,t){let[r,i]=(0,n.useState)(!1);return(0,n.useEffect)(()=>{let n;return e&&!r?i(!0):!e&&r&&(n=setTimeout(()=>i(!1),t)),()=>clearTimeout(n)},[e,t,r]),r}function i(e=1){let t=(0,n.useRef)(null),[r,i]=(0,n.useState)(!1),[a,o]=(0,n.useState)(0),[s,c]=(0,n.useState)(0),l=(0,n.useRef)(!1);return{ref:t,onMouseDown:e=>{t.current&&(i(!0),l.current=!1,o(e.pageX-t.current.offsetLeft),c(t.current.scrollLeft))},onMouseLeave:()=>i(!1),onMouseUp:()=>i(!1),onMouseMove:n=>{if(!r||!t.current)return;n.preventDefault();let i=(n.pageX-t.current.offsetLeft-a)*e;Math.abs(i)>10&&(l.current=!0),t.current.scrollLeft=s-i},onClickCapture:e=>{l.current&&(e.stopPropagation(),e.preventDefault())}}}function a({ref:e,setOpen:t}){let r=(0,n.useCallback)(n=>{e.current?.contains(n.target)||t(!1)},[e,t]);(0,n.useEffect)(()=>(document.addEventListener(`mousedown`,r),document.addEventListener(`touchstart`,r),()=>{document.removeEventListener(`mousedown`,r),document.removeEventListener(`touchstart`,r)}),[r])}const o=[`mouse`,`touch`];function s({open:e,type:t=o}){let r=(0,n.useCallback)(e=>{e.preventDefault()},[]),i=(0,n.useCallback)(e=>{e.preventDefault()},[]);(0,n.useEffect)(()=>{let n=e&&t.includes(`mouse`),a=e&&t.includes(`touch`);return n?(document.body.classList.add(`overflow-hidden`),document.addEventListener(`wheel`,i,{passive:!1})):(document.body.classList.remove(`overflow-hidden`),document.removeEventListener(`wheel`,i)),a?document.addEventListener(`touchmove`,r,{passive:!1}):document.removeEventListener(`touchmove`,r),()=>{document.body.classList.remove(`overflow-hidden`),document.removeEventListener(`touchmove`,r),document.removeEventListener(`wheel`,i)}},[e,t,r,i])}function c({enabled:e=!0,behavior:t=`smooth`}={}){let[r,i]=(0,n.useState)(!1),a=(0,n.useRef)(null),o=(0,n.useCallback)(()=>{window.scrollTo({top:0,behavior:t})},[t]);return(0,n.useEffect)(()=>{let t=a.current;if(!t||!e){i(!1);return}let n=new IntersectionObserver(e=>{let t=e[0];t&&i(!t.isIntersecting)},{root:null,rootMargin:`0px`,threshold:0});return n.observe(t),()=>n.disconnect()},[e]),{isVisible:r,handleScrolToTop:o,ref:a}}function l(e=1280){let[r,i]=(0,n.useState)(e);return(0,n.useEffect)(()=>{let e=(0,t.throttle)(()=>{let e=window.innerWidth;i(e)},200);return window.addEventListener(`resize`,e),e(),()=>window.removeEventListener(`resize`,e)},[]),{windowSize:r}}Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return r}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return l}});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{throttle as e}from"lodash-es";import{useCallback as t,useEffect as n,useRef as r,useState as i}from"react";function a(e,t){let[r,a]=i(!1);return n(()=>{let n;return e&&!r?a(!0):!e&&r&&(n=setTimeout(()=>a(!1),t)),()=>clearTimeout(n)},[e,t,r]),r}function o(e=1){let t=r(null),[n,a]=i(!1),[o,s]=i(0),[c,l]=i(0),u=r(!1);return{ref:t,onMouseDown:e=>{t.current&&(a(!0),u.current=!1,s(e.pageX-t.current.offsetLeft),l(t.current.scrollLeft))},onMouseLeave:()=>a(!1),onMouseUp:()=>a(!1),onMouseMove:r=>{if(!n||!t.current)return;r.preventDefault();let i=(r.pageX-t.current.offsetLeft-o)*e;Math.abs(i)>10&&(u.current=!0),t.current.scrollLeft=c-i},onClickCapture:e=>{u.current&&(e.stopPropagation(),e.preventDefault())}}}function s({ref:e,setOpen:r}){let i=t(t=>{e.current?.contains(t.target)||r(!1)},[e,r]);n(()=>(document.addEventListener(`mousedown`,i),document.addEventListener(`touchstart`,i),()=>{document.removeEventListener(`mousedown`,i),document.removeEventListener(`touchstart`,i)}),[i])}const c=[`mouse`,`touch`];function l({open:e,type:r=c}){let i=t(e=>{e.preventDefault()},[]),a=t(e=>{e.preventDefault()},[]);n(()=>{let t=e&&r.includes(`mouse`),n=e&&r.includes(`touch`);return t?(document.body.classList.add(`overflow-hidden`),document.addEventListener(`wheel`,a,{passive:!1})):(document.body.classList.remove(`overflow-hidden`),document.removeEventListener(`wheel`,a)),n?document.addEventListener(`touchmove`,i,{passive:!1}):document.removeEventListener(`touchmove`,i),()=>{document.body.classList.remove(`overflow-hidden`),document.removeEventListener(`touchmove`,i),document.removeEventListener(`wheel`,a)}},[e,r,i,a])}function u({enabled:e=!0,behavior:a=`smooth`}={}){let[o,s]=i(!1),c=r(null),l=t(()=>{window.scrollTo({top:0,behavior:a})},[a]);return n(()=>{let t=c.current;if(!t||!e){s(!1);return}let n=new IntersectionObserver(e=>{let t=e[0];t&&s(!t.isIntersecting)},{root:null,rootMargin:`0px`,threshold:0});return n.observe(t),()=>n.disconnect()},[e]),{isVisible:o,handleScrolToTop:l,ref:c}}function d(t=1280){let[r,a]=i(t);return n(()=>{let t=e(()=>{let e=window.innerWidth;a(e)},200);return window.addEventListener(`resize`,t),t(),()=>window.removeEventListener(`resize`,t)},[]),{windowSize:r}}export{o as a,s as i,u as n,a as o,l as r,d as t};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as react2 from "react";
|
|
2
2
|
import React$1, { Dispatch, RefObject, SetStateAction } from "react";
|
|
3
3
|
|
|
4
4
|
//#region src/hooks/use-delay-unmount.d.ts
|
|
@@ -6,7 +6,7 @@ declare function useDelayUnmount(isMounted: boolean, delayTime: number): boolean
|
|
|
6
6
|
//#endregion
|
|
7
7
|
//#region src/hooks/use-drag-scroll.d.ts
|
|
8
8
|
declare function useDragScroll(speed?: number): {
|
|
9
|
-
ref:
|
|
9
|
+
ref: react2.RefObject<HTMLDivElement>;
|
|
10
10
|
onMouseDown: (e: React.MouseEvent) => void;
|
|
11
11
|
onMouseLeave: () => void;
|
|
12
12
|
onMouseUp: () => void;
|
|
@@ -35,7 +35,7 @@ declare function useScrollLock({
|
|
|
35
35
|
type
|
|
36
36
|
}: UseScrollLockProps): void;
|
|
37
37
|
//#endregion
|
|
38
|
-
//#region src/hooks/use-
|
|
38
|
+
//#region src/hooks/use-scroll-top.d.ts
|
|
39
39
|
interface UseScrollTopProps {
|
|
40
40
|
enabled?: boolean;
|
|
41
41
|
behavior?: ScrollBehavior;
|
|
@@ -46,7 +46,7 @@ declare function useScrollTop({
|
|
|
46
46
|
}?: UseScrollTopProps): {
|
|
47
47
|
isVisible: boolean;
|
|
48
48
|
handleScrolToTop: () => void;
|
|
49
|
-
ref:
|
|
49
|
+
ref: react2.RefObject<HTMLDivElement>;
|
|
50
50
|
};
|
|
51
51
|
//#endregion
|
|
52
52
|
//#region src/hooks/use-subset-image.d.ts
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as react1 from "react";
|
|
2
2
|
import React$1, { Dispatch, RefObject, SetStateAction } from "react";
|
|
3
3
|
|
|
4
4
|
//#region src/hooks/use-delay-unmount.d.ts
|
|
@@ -6,7 +6,7 @@ declare function useDelayUnmount(isMounted: boolean, delayTime: number): boolean
|
|
|
6
6
|
//#endregion
|
|
7
7
|
//#region src/hooks/use-drag-scroll.d.ts
|
|
8
8
|
declare function useDragScroll(speed?: number): {
|
|
9
|
-
ref:
|
|
9
|
+
ref: react1.RefObject<HTMLDivElement>;
|
|
10
10
|
onMouseDown: (e: React.MouseEvent) => void;
|
|
11
11
|
onMouseLeave: () => void;
|
|
12
12
|
onMouseUp: () => void;
|
|
@@ -35,7 +35,7 @@ declare function useScrollLock({
|
|
|
35
35
|
type
|
|
36
36
|
}: UseScrollLockProps): void;
|
|
37
37
|
//#endregion
|
|
38
|
-
//#region src/hooks/use-
|
|
38
|
+
//#region src/hooks/use-scroll-top.d.ts
|
|
39
39
|
interface UseScrollTopProps {
|
|
40
40
|
enabled?: boolean;
|
|
41
41
|
behavior?: ScrollBehavior;
|
|
@@ -46,7 +46,7 @@ declare function useScrollTop({
|
|
|
46
46
|
}?: UseScrollTopProps): {
|
|
47
47
|
isVisible: boolean;
|
|
48
48
|
handleScrolToTop: () => void;
|
|
49
|
-
ref:
|
|
49
|
+
ref: react1.RefObject<HTMLDivElement>;
|
|
50
50
|
};
|
|
51
51
|
//#endregion
|
|
52
52
|
//#region src/hooks/use-subset-image.d.ts
|
package/dist/index.d.cts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as ApiConfig, r as UploadValues, t as ApiClient } from "./index-
|
|
1
|
+
import { n as ApiConfig, r as UploadValues, t as ApiClient } from "./index-CeiAF-WU.cjs";
|
|
2
2
|
export { ApiConfig, UploadValues, ApiClient as default };
|
package/dist/index.d.mts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as ApiConfig, r as UploadValues, t as ApiClient } from "./index-
|
|
1
|
+
import { n as ApiConfig, r as UploadValues, t as ApiClient } from "./index-B3fFA21M.mjs";
|
|
2
2
|
export { ApiConfig, UploadValues, ApiClient as default };
|
package/dist/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./src-
|
|
1
|
+
import{t as e}from"./src-CukOR3K2.mjs";export{e as default};
|
package/dist/providers/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
require(`../src-CjpmdVyv.cjs`);const e=require(`../providers-
|
|
1
|
+
require(`../src-CjpmdVyv.cjs`);const e=require(`../providers-CkXkdYcB.cjs`);exports.ApiClientProvider=e.t,exports.useApiClient=e.n;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { n as ApiConfig, t as ApiClient } from "../index-
|
|
2
|
-
import * as
|
|
1
|
+
import { n as ApiConfig, t as ApiClient } from "../index-CeiAF-WU.cjs";
|
|
2
|
+
import * as react_jsx_runtime12 from "react/jsx-runtime";
|
|
3
3
|
|
|
4
4
|
//#region src/providers/api-client/api-client.d.ts
|
|
5
5
|
declare function ApiClientProvider({
|
|
@@ -8,7 +8,7 @@ declare function ApiClientProvider({
|
|
|
8
8
|
}: {
|
|
9
9
|
children: React.ReactNode;
|
|
10
10
|
config: ApiConfig;
|
|
11
|
-
}):
|
|
11
|
+
}): react_jsx_runtime12.JSX.Element;
|
|
12
12
|
declare function useApiClient(): ApiClient;
|
|
13
13
|
//#endregion
|
|
14
14
|
export { ApiClientProvider, useApiClient };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { n as ApiConfig, t as ApiClient } from "../index-
|
|
2
|
-
import * as
|
|
1
|
+
import { n as ApiConfig, t as ApiClient } from "../index-B3fFA21M.mjs";
|
|
2
|
+
import * as react_jsx_runtime10 from "react/jsx-runtime";
|
|
3
3
|
|
|
4
4
|
//#region src/providers/api-client/api-client.d.ts
|
|
5
5
|
declare function ApiClientProvider({
|
|
@@ -8,7 +8,7 @@ declare function ApiClientProvider({
|
|
|
8
8
|
}: {
|
|
9
9
|
children: React.ReactNode;
|
|
10
10
|
config: ApiConfig;
|
|
11
|
-
}):
|
|
11
|
+
}): react_jsx_runtime10.JSX.Element;
|
|
12
12
|
declare function useApiClient(): ApiClient;
|
|
13
13
|
//#endregion
|
|
14
14
|
export { ApiClientProvider, useApiClient };
|
package/dist/providers/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import"../src-
|
|
1
|
+
import"../src-CukOR3K2.mjs";import{n as e,t}from"../providers-zftmvT1z.mjs";export{t as ApiClientProvider,e as useApiClient};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./src-
|
|
1
|
+
import{t as e}from"./src-CukOR3K2.mjs";import{createContext as t,useContext as n}from"react";import{jsx as r}from"react/jsx-runtime";const i=t(null);function a({children:t,config:n}){let a=new e(n);return r(i.Provider,{value:a,children:t})}function o(){let e=n(i);if(!e)throw Error(`ApiClient not found`);return e}export{o as n,a as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{n as e}from"./common-DbEp6YNc.mjs";import{jsx as t}from"react/jsx-runtime";import{cva as n}from"class-variance-authority";const r=n(e(`komc:w-full komc:animate-pulse komc:bg-gray-200`),{variants:{size:{xs:`komc:h-4`,sm:`komc:h-8`,md:`komc:h-12`,lg:`komc:h-16`,xl:`komc:h-20`,"2xl":`komc:h-24`,"3xl":`komc:h-28`,square:`komc:h-auto komc:aspect-square`,full:`komc:h-full`},rounded:{none:`komc:rounded-none`,sm:`komc:rounded-sm`,md:`komc:rounded-md`,lg:`komc:rounded-lg`,xl:`komc:rounded-xl`,"2xl":`komc:rounded-2xl`,"3xl":`komc:rounded-3xl`,full:`komc:rounded-full`}},defaultVariants:{size:`sm`,rounded:`sm`}});function i({size:e,rounded:n,width:i,height:a,className:o,...s}){let c=i?typeof i==`string`?i:`${i}px`:void 0,l=a?typeof a==`string`?a:`${a}px`:void 0;return t(`div`,{"data-komc":!0,"aria-hidden":`true`,className:r({size:e,rounded:n,className:o}),style:{width:c,height:l},...s})}export{i as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e=require(`./chunk-Bmb41Sf3.cjs`),t=require(`./common-CQWUs1nE.cjs`);let n=require(`react/jsx-runtime`),r=require(`class-variance-authority`);const i=(0,r.cva)(t.n(`komc:w-full komc:animate-pulse komc:bg-gray-200`),{variants:{size:{xs:`komc:h-4`,sm:`komc:h-8`,md:`komc:h-12`,lg:`komc:h-16`,xl:`komc:h-20`,"2xl":`komc:h-24`,"3xl":`komc:h-28`,square:`komc:h-auto komc:aspect-square`,full:`komc:h-full`},rounded:{none:`komc:rounded-none`,sm:`komc:rounded-sm`,md:`komc:rounded-md`,lg:`komc:rounded-lg`,xl:`komc:rounded-xl`,"2xl":`komc:rounded-2xl`,"3xl":`komc:rounded-3xl`,full:`komc:rounded-full`}},defaultVariants:{size:`sm`,rounded:`sm`}});function a({size:e,rounded:t,width:r,height:a,className:o,...s}){let c=r?typeof r==`string`?r:`${r}px`:void 0,l=a?typeof a==`string`?a:`${a}px`:void 0;return(0,n.jsx)(`div`,{"data-komc":!0,"aria-hidden":`true`,className:i({size:e,rounded:t,className:o}),style:{width:c,height:l},...s})}Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return a}});
|
package/dist/styles/index.css
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! tailwindcss v4.2.
|
|
1
|
+
/*! tailwindcss v4.2.4 | MIT License | https://tailwindcss.com */
|
|
2
2
|
@layer properties;
|
|
3
3
|
@layer theme, base, components, utilities;
|
|
4
4
|
@layer theme {
|
|
@@ -139,9 +139,6 @@
|
|
|
139
139
|
.komc\:-mt-4 {
|
|
140
140
|
margin-top: calc(var(--komc-spacing) * -4);
|
|
141
141
|
}
|
|
142
|
-
.komc\:mt-2 {
|
|
143
|
-
margin-top: calc(var(--komc-spacing) * 2);
|
|
144
|
-
}
|
|
145
142
|
.komc\:mt-3 {
|
|
146
143
|
margin-top: calc(var(--komc-spacing) * 3);
|
|
147
144
|
}
|
|
@@ -223,8 +220,8 @@
|
|
|
223
220
|
.komc\:h-40 {
|
|
224
221
|
height: calc(var(--komc-spacing) * 40);
|
|
225
222
|
}
|
|
226
|
-
.komc\:h-
|
|
227
|
-
height: calc(var(--komc-spacing) *
|
|
223
|
+
.komc\:h-72 {
|
|
224
|
+
height: calc(var(--komc-spacing) * 72);
|
|
228
225
|
}
|
|
229
226
|
.komc\:h-\[50dvh\] {
|
|
230
227
|
height: 50dvh;
|
|
@@ -274,9 +271,6 @@
|
|
|
274
271
|
.komc\:w-2 {
|
|
275
272
|
width: calc(var(--komc-spacing) * 2);
|
|
276
273
|
}
|
|
277
|
-
.komc\:w-4 {
|
|
278
|
-
width: calc(var(--komc-spacing) * 4);
|
|
279
|
-
}
|
|
280
274
|
.komc\:w-\[50dvw\] {
|
|
281
275
|
width: 50dvw;
|
|
282
276
|
}
|
|
@@ -389,6 +383,9 @@
|
|
|
389
383
|
.komc\:flex-col {
|
|
390
384
|
flex-direction: column;
|
|
391
385
|
}
|
|
386
|
+
.komc\:flex-row {
|
|
387
|
+
flex-direction: row;
|
|
388
|
+
}
|
|
392
389
|
.komc\:flex-wrap {
|
|
393
390
|
flex-wrap: wrap;
|
|
394
391
|
}
|
|
@@ -416,9 +413,6 @@
|
|
|
416
413
|
.komc\:gap-1 {
|
|
417
414
|
gap: calc(var(--komc-spacing) * 1);
|
|
418
415
|
}
|
|
419
|
-
.komc\:gap-1\.5 {
|
|
420
|
-
gap: calc(var(--komc-spacing) * 1.5);
|
|
421
|
-
}
|
|
422
416
|
.komc\:gap-2 {
|
|
423
417
|
gap: calc(var(--komc-spacing) * 2);
|
|
424
418
|
}
|
|
@@ -586,9 +580,6 @@
|
|
|
586
580
|
background-color: color-mix(in oklab, var(--komc-color-neutral-100) 95%, transparent);
|
|
587
581
|
}
|
|
588
582
|
}
|
|
589
|
-
.komc\:bg-neutral-300 {
|
|
590
|
-
background-color: var(--komc-color-neutral-300);
|
|
591
|
-
}
|
|
592
583
|
.komc\:bg-night-700 {
|
|
593
584
|
background-color: var(--komc-color-night-700);
|
|
594
585
|
}
|
|
@@ -1156,16 +1147,6 @@
|
|
|
1156
1147
|
color: var(--komc-color-gray-800);
|
|
1157
1148
|
}
|
|
1158
1149
|
}
|
|
1159
|
-
.komc\:data-\[selected\=true\]\:bg-blue-500 {
|
|
1160
|
-
&[data-selected="true"] {
|
|
1161
|
-
background-color: var(--komc-color-blue-500);
|
|
1162
|
-
}
|
|
1163
|
-
}
|
|
1164
|
-
.komc\:data-\[selected\=true\]\:text-white {
|
|
1165
|
-
&[data-selected="true"] {
|
|
1166
|
-
color: var(--komc-color-white);
|
|
1167
|
-
}
|
|
1168
|
-
}
|
|
1169
1150
|
.komc\:data-\[state\=closed\]\:scale-95 {
|
|
1170
1151
|
&[data-state="closed"] {
|
|
1171
1152
|
--tw-scale-x: 95%;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use client";const e=require(`../../chunk-Bmb41Sf3.cjs`),t=require(`../../common-CQWUs1nE.cjs`);let n=require(`clsx`);n=e.t(n);let r=require(`react`);r=e.t(r);let i=require(`react/jsx-runtime`),a=require(`embla-carousel-react`);a=e.t(a);const o=r.default.createContext(null);function s(){let e=r.default.useContext(o);if(!e)throw Error(`useCarousel must be used within a <Carousel />`);return e}function c({orientation:e=`horizontal`,options:n,setApi:s,plugins:c,className:l,children:u,...d}){let[f,p]=(0,a.default)({...n,axis:e===`horizontal`?`x`:`y`},c),[m,h]=(0,r.useState)(!1),[g,_]=(0,r.useState)(!1),[v,y]=(0,r.useState)(0),[b,x]=(0,r.useState)(0),S=(0,r.useCallback)(e=>{e&&(h(e.canScrollPrev()),_(e.canScrollNext()),x(e.selectedScrollSnap()))},[]),C=(0,r.useCallback)(()=>{p?.scrollPrev()},[p]),w=(0,r.useCallback)(()=>{p?.scrollNext()},[p]),T=(0,r.useCallback)(e=>{p?.scrollTo(e)},[p]),E=(0,r.useCallback)(()=>{y(p?.scrollSnapList().length||0)},[p]),D=(0,r.useCallback)(t=>{e===`horizontal`?t.key===`ArrowLeft`?(t.preventDefault(),C()):t.key===`ArrowRight`&&(t.preventDefault(),w()):t.key===`ArrowUp`?(t.preventDefault(),C()):t.key===`ArrowDown`&&(t.preventDefault(),w())},[C,w,e]);return(0,r.useEffect)(()=>{!p||!s||s(p)},[p,s]),(0,r.useEffect)(()=>{if(p)return S(p),E(),p.on(`reInit`,E),p.on(`reInit`,S),p.on(`select`,S),()=>{p?.off(`select`,S)}},[p,S]),(0,i.jsx)(o.Provider,{value:{carouselRef:f,api:p,options:n,orientation:e||(n?.axis===`y`?`vertical`:`horizontal`),scrollPrev:C,scrollNext:w,canScrollPrev:m,canScrollNext:g,scrollTo:T,dots:v,selectedScrollSnap:b},children:(0,i.jsx)(`div`,{"data-komc":!0,role:`region`,"aria-label":`carousel`,"aria-roledescription":`carousel`,tabIndex:0,onKeyDownCapture:D,className:t.n(`komc:relative`,l),...d,children:u})})}function l({children:e,className:n,...r}){let{carouselRef:a}=s();return(0,i.jsx)(`div`,{ref:a,"data-komc":!0,className:t.n(`komc:h-full komc:overflow-hidden`,n),...r,children:e})}function u({className:e,...n}){let{orientation:r}=s();return(0,i.jsx)(`div`,{className:t.n(`komc:flex komc:h-full`,r===`horizontal`?`komc:-ml-4`:`komc:-mt-4 komc:flex-col`,e),...n})}function d({className:e,...n}){let{orientation:r}=s();return(0,i.jsx)(`div`,{"data-komc":!0,className:t.n(`komc:min-w-0 komc:shrink-0 komc:grow-0 komc:basis-full`,r===`horizontal`?`komc:pl-4`:`komc:pt-4`,e),...n})}function f({children:e,className:t,...r}){let{scrollPrev:a,canScrollPrev:o}=s();return(0,i.jsx)(`button`,{type:`button`,"data-komc":!0,disabled:!o,"aria-label":`previous slide`,className:(0,n.default)(`komc:w-full`,t),onClick:a,...r,children:e})}function p({children:e,className:t,...r}){let{scrollNext:a,canScrollNext:o}=s();return(0,i.jsx)(`button`,{type:`button`,"data-komc":!0,disabled:!o,"aria-label":`next slide`,className:(0,n.default)(`komc:w-full`,t),onClick:a,...r,children:e})}function m({children:e,...t}){let{dots:n,selectedScrollSnap:r,scrollTo:a}=s();return(0,i.jsx)(i.Fragment,{children:Array.from({length:n}).map((n,o)=>(0,i.jsx)(`button`,{type:`button`,"data-komc":!0,"data-selected":r===o,"aria-label":`go to slide ${o+1}`,onClick:()=>a(o),...t,children:e?.(o)},o))})}function h({index:e,children:t,...n}){let{selectedScrollSnap:r,scrollTo:a}=s();return(0,i.jsx)(`button`,{type:`button`,"data-komc":!0,"data-selected":r===e,"aria-label":`go to slide ${e+1}`,onClick:()=>a(e),...n,children:t})}exports.Carousel=c,exports.CarouselDot=h,exports.CarouselDots=m,exports.CarouselItem=d,exports.CarouselNext=p,exports.CarouselPrevious=f,exports.CarouselViewport=l,exports.CarouselWrapper=u;
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import React, { ComponentProps } from "react";
|
|
2
|
+
import * as react_jsx_runtime5 from "react/jsx-runtime";
|
|
3
|
+
import useEmblaCarousel, { UseEmblaCarouselType } from "embla-carousel-react";
|
|
4
|
+
|
|
5
|
+
//#region src/ui/carousel/carousel-context.d.ts
|
|
6
|
+
type CarouselApi = UseEmblaCarouselType[1];
|
|
7
|
+
type UseCarouselParameters = Parameters<typeof useEmblaCarousel>;
|
|
8
|
+
type CarouselOptions = UseCarouselParameters[0];
|
|
9
|
+
type CarouselPlugin = UseCarouselParameters[1];
|
|
10
|
+
interface CarouselProps {
|
|
11
|
+
options?: CarouselOptions;
|
|
12
|
+
plugins?: CarouselPlugin;
|
|
13
|
+
orientation?: 'horizontal' | 'vertical';
|
|
14
|
+
setApi?: (api: CarouselApi) => void;
|
|
15
|
+
}
|
|
16
|
+
type CarouselContextProps = {
|
|
17
|
+
carouselRef: ReturnType<typeof useEmblaCarousel>[0];
|
|
18
|
+
api: ReturnType<typeof useEmblaCarousel>[1];
|
|
19
|
+
scrollPrev: () => void;
|
|
20
|
+
scrollNext: () => void;
|
|
21
|
+
canScrollPrev: boolean;
|
|
22
|
+
canScrollNext: boolean;
|
|
23
|
+
scrollTo: (index: number) => void;
|
|
24
|
+
dots: number;
|
|
25
|
+
selectedScrollSnap: number;
|
|
26
|
+
} & CarouselProps;
|
|
27
|
+
//#endregion
|
|
28
|
+
//#region src/ui/carousel/carousel.d.ts
|
|
29
|
+
interface CarouselProps$1 extends ComponentProps<'div'>, CarouselProps {
|
|
30
|
+
orientation?: 'horizontal' | 'vertical';
|
|
31
|
+
options?: CarouselProps['options'];
|
|
32
|
+
setApi?: CarouselProps['setApi'];
|
|
33
|
+
plugins?: CarouselProps['plugins'];
|
|
34
|
+
}
|
|
35
|
+
declare function Carousel({
|
|
36
|
+
orientation,
|
|
37
|
+
options,
|
|
38
|
+
setApi,
|
|
39
|
+
plugins,
|
|
40
|
+
className,
|
|
41
|
+
children,
|
|
42
|
+
...props
|
|
43
|
+
}: CarouselProps$1): react_jsx_runtime5.JSX.Element;
|
|
44
|
+
//#endregion
|
|
45
|
+
//#region src/ui/carousel/carousel-viewport.d.ts
|
|
46
|
+
declare function CarouselViewport({
|
|
47
|
+
children,
|
|
48
|
+
className,
|
|
49
|
+
...props
|
|
50
|
+
}: React.ComponentProps<'div'>): react_jsx_runtime5.JSX.Element;
|
|
51
|
+
//#endregion
|
|
52
|
+
//#region src/ui/carousel/carousel-wrapper.d.ts
|
|
53
|
+
declare function CarouselWrapper({
|
|
54
|
+
className,
|
|
55
|
+
...props
|
|
56
|
+
}: React.ComponentProps<'div'>): react_jsx_runtime5.JSX.Element;
|
|
57
|
+
//#endregion
|
|
58
|
+
//#region src/ui/carousel/carousel-item.d.ts
|
|
59
|
+
declare function CarouselItem({
|
|
60
|
+
className,
|
|
61
|
+
...props
|
|
62
|
+
}: React.ComponentProps<'div'>): react_jsx_runtime5.JSX.Element;
|
|
63
|
+
//#endregion
|
|
64
|
+
//#region src/ui/carousel/carousel-previous.d.ts
|
|
65
|
+
declare function CarouselPrevious({
|
|
66
|
+
children,
|
|
67
|
+
className,
|
|
68
|
+
...props
|
|
69
|
+
}: React.ComponentProps<'button'>): react_jsx_runtime5.JSX.Element;
|
|
70
|
+
//#endregion
|
|
71
|
+
//#region src/ui/carousel/carousel-next.d.ts
|
|
72
|
+
declare function CarouselNext({
|
|
73
|
+
children,
|
|
74
|
+
className,
|
|
75
|
+
...props
|
|
76
|
+
}: React.ComponentProps<'button'>): react_jsx_runtime5.JSX.Element;
|
|
77
|
+
//#endregion
|
|
78
|
+
//#region src/ui/carousel/carousel-dots.d.ts
|
|
79
|
+
declare function CarouselDots$1({
|
|
80
|
+
children,
|
|
81
|
+
...props
|
|
82
|
+
}: Omit<React.ComponentProps<'button'>, 'children'> & {
|
|
83
|
+
children?: (index: number) => React.ReactNode;
|
|
84
|
+
}): react_jsx_runtime5.JSX.Element;
|
|
85
|
+
//#endregion
|
|
86
|
+
//#region src/ui/carousel/carousel-dot.d.ts
|
|
87
|
+
declare function CarouselDots({
|
|
88
|
+
index,
|
|
89
|
+
children,
|
|
90
|
+
...props
|
|
91
|
+
}: React.ComponentProps<'button'> & {
|
|
92
|
+
index: number;
|
|
93
|
+
}): react_jsx_runtime5.JSX.Element;
|
|
94
|
+
//#endregion
|
|
95
|
+
export { Carousel, type CarouselApi, type CarouselContextProps, CarouselDots as CarouselDot, CarouselDots$1 as CarouselDots, CarouselItem, CarouselNext, type CarouselOptions, type CarouselPlugin, CarouselPrevious, type CarouselProps, CarouselViewport, CarouselWrapper };
|