@basiln/utils 0.1.12 → 0.1.14
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/.babelrc +15 -0
- package/README.md +32 -0
- package/dist/Choose.js +1 -1
- package/dist/Choose.mjs +1 -1
- package/dist/DomainFormat.js +2 -2
- package/dist/DomainFormat.js.map +1 -1
- package/dist/DomainFormat.mjs +1 -1
- package/dist/Flex.js +1 -1
- package/dist/Flex.mjs +1 -1
- package/dist/Grid/Grid.js +212 -0
- package/dist/Grid/Grid.js.map +1 -0
- package/dist/Grid/Grid.mjs +14 -0
- package/dist/Grid/Grid.mjs.map +1 -0
- package/dist/Grid/constants.js +96 -0
- package/dist/Grid/constants.js.map +1 -0
- package/dist/Grid/constants.mjs +34 -0
- package/dist/Grid/constants.mjs.map +1 -0
- package/dist/Grid/context.js +56 -0
- package/dist/Grid/context.js.map +1 -0
- package/dist/Grid/context.mjs +10 -0
- package/dist/Grid/context.mjs.map +1 -0
- package/dist/Grid/index.js +214 -0
- package/dist/Grid/index.js.map +1 -0
- package/dist/Grid/index.mjs +16 -0
- package/dist/Grid/index.mjs.map +1 -0
- package/dist/Grid/styles.js +105 -0
- package/dist/Grid/styles.js.map +1 -0
- package/dist/Grid/styles.mjs +12 -0
- package/dist/Grid/styles.mjs.map +1 -0
- package/dist/Grid/types.js +19 -0
- package/dist/Grid/types.js.map +1 -0
- package/dist/Grid/types.mjs +2 -0
- package/dist/Grid/types.mjs.map +1 -0
- package/dist/Grid/utils.js +42 -0
- package/dist/Grid/utils.js.map +1 -0
- package/dist/Grid/utils.mjs +9 -0
- package/dist/Grid/utils.mjs.map +1 -0
- package/dist/If.js +1 -1
- package/dist/If.mjs +1 -1
- package/dist/SafeArea.js +2 -2
- package/dist/SafeArea.mjs +2 -2
- package/dist/Spacing.js +1 -1
- package/dist/Spacing.mjs +1 -1
- package/dist/chunk-2VPHYP7Y.mjs +1 -0
- package/dist/chunk-2VPHYP7Y.mjs.map +1 -0
- package/dist/{chunk-KFMJD3YK.mjs → chunk-5X4P77VE.mjs} +2 -2
- package/dist/chunk-63N6GZOJ.mjs +1 -0
- package/dist/chunk-63N6GZOJ.mjs.map +1 -0
- package/dist/{chunk-FEPXSL77.mjs → chunk-6S7STXJR.mjs} +2 -2
- package/dist/chunk-6ZISNSYZ.mjs +50 -0
- package/dist/chunk-6ZISNSYZ.mjs.map +1 -0
- package/dist/{chunk-75ILZSEA.mjs → chunk-A4GYF5EN.mjs} +3 -3
- package/dist/chunk-IA3Y652S.mjs +108 -0
- package/dist/chunk-IA3Y652S.mjs.map +1 -0
- package/dist/chunk-KIWMNTMS.mjs +54 -0
- package/dist/chunk-KIWMNTMS.mjs.map +1 -0
- package/dist/{chunk-QKAXJVK7.mjs → chunk-KQN75INR.mjs} +2 -2
- package/dist/chunk-ODQE5YIS.mjs +12 -0
- package/dist/chunk-ODQE5YIS.mjs.map +1 -0
- package/dist/{chunk-YQMA54XQ.mjs → chunk-OOKIDH3F.mjs} +2 -2
- package/dist/chunk-P3MUNLIM.mjs +17 -0
- package/dist/chunk-P3MUNLIM.mjs.map +1 -0
- package/dist/{chunk-WWR7M6ID.mjs → chunk-QBUE5UFO.mjs} +3 -3
- package/dist/{chunk-WWR7M6ID.mjs.map → chunk-QBUE5UFO.mjs.map} +1 -1
- package/dist/{chunk-UFRXNT2I.mjs → chunk-YGI66TDT.mjs} +2 -2
- package/dist/createContext.js +1 -1
- package/dist/createContext.mjs +1 -1
- package/dist/index.d.mts +59 -14
- package/dist/index.d.ts +59 -14
- package/dist/index.js +158 -8
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +17 -7
- package/package.json +4 -1
- /package/dist/{chunk-KFMJD3YK.mjs.map → chunk-5X4P77VE.mjs.map} +0 -0
- /package/dist/{chunk-FEPXSL77.mjs.map → chunk-6S7STXJR.mjs.map} +0 -0
- /package/dist/{chunk-75ILZSEA.mjs.map → chunk-A4GYF5EN.mjs.map} +0 -0
- /package/dist/{chunk-QKAXJVK7.mjs.map → chunk-KQN75INR.mjs.map} +0 -0
- /package/dist/{chunk-YQMA54XQ.mjs.map → chunk-OOKIDH3F.mjs.map} +0 -0
- /package/dist/{chunk-UFRXNT2I.mjs.map → chunk-YGI66TDT.mjs.map} +0 -0
package/.babelrc
ADDED
package/README.md
CHANGED
@@ -26,6 +26,7 @@ yarn add @basiln/utils
|
|
26
26
|
- [DomainFormat](#domainformat)
|
27
27
|
- [useCombinedRefs](#usecombinedrefs)
|
28
28
|
- [useControllableState](#usecontrollablestate)
|
29
|
+
- [Grid](#grid)
|
29
30
|
|
30
31
|
### `If`
|
31
32
|
|
@@ -386,3 +387,34 @@ const TextField = forwardRef((props, forwardedRef) => {
|
|
386
387
|
|
387
388
|
```
|
388
389
|
|
390
|
+
### `Grid`
|
391
|
+
|
392
|
+
선언적으로 `Grid` 스타일링을 할 수 있는 컴포넌트입니다.
|
393
|
+
|
394
|
+
```tsx
|
395
|
+
import { Grid } from '@basiln/utils';
|
396
|
+
|
397
|
+
<Grid columns={['1fr', '1fr', '1fr']} rows={['1fr']} gap={10}>
|
398
|
+
<Grid.Item gridColumn={['1', '3']}>
|
399
|
+
<Content1 />
|
400
|
+
</Grid.Item>
|
401
|
+
|
402
|
+
<Grid.Item>
|
403
|
+
<Content2 />
|
404
|
+
</Grid.Item>
|
405
|
+
</Grid>
|
406
|
+
|
407
|
+
<Grid areas={'"header header" "sidebar content"'}>
|
408
|
+
<Grid.Item gridArea="header">
|
409
|
+
<Header />
|
410
|
+
</Grid.Item>
|
411
|
+
|
412
|
+
<Grid.Item gridArea="content">
|
413
|
+
<Content1 />
|
414
|
+
</Grid.Item>
|
415
|
+
|
416
|
+
<Grid.Item gridArea="sidebar">
|
417
|
+
<Sidebar />
|
418
|
+
</Grid.Item>
|
419
|
+
</Grid>
|
420
|
+
```
|
package/dist/Choose.js
CHANGED
@@ -24,7 +24,7 @@ __export(Choose_exports, {
|
|
24
24
|
});
|
25
25
|
module.exports = __toCommonJS(Choose_exports);
|
26
26
|
var import_react = require("react");
|
27
|
-
var import_jsx_runtime = require("react/jsx-runtime");
|
27
|
+
var import_jsx_runtime = require("@emotion/react/jsx-runtime");
|
28
28
|
function Choose({ children }) {
|
29
29
|
const validChildren = import_react.Children.toArray(children);
|
30
30
|
const matchingChild = validChildren.find(
|
package/dist/Choose.mjs
CHANGED
package/dist/DomainFormat.js
CHANGED
@@ -49,8 +49,8 @@ function formatModeColor(mode, customMapping = {}) {
|
|
49
49
|
}
|
50
50
|
function formatWind(wind, customMapping = {}) {
|
51
51
|
const defaultWindMapping = {
|
52
|
-
1: "\
|
53
|
-
2: "\
|
52
|
+
1: "\uC57D\uD48D",
|
53
|
+
2: "\uC911\uD48D",
|
54
54
|
3: "\uAC15\uD48D"
|
55
55
|
};
|
56
56
|
const combinedMapping = { ...defaultWindMapping, ...customMapping };
|
package/dist/DomainFormat.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../src/DomainFormat.ts"],"sourcesContent":["export type Mode = 'H' | 'C' | 'W';\nexport type Wind = 1 | 2 | 3;\nexport type AirLevel = 1 | 2 | 3 | 4 | 5;\nexport type UserLevel = '1' | '2' | '3' | '4';\nexport type Language = 'en' | 'ko';\n\nfunction formatModeName(mode: Mode, customMapping: Record<string, string> = {}): string {\n const defaultModeMapping: Record<Mode, string> = {\n H: '난방',\n C: '냉방',\n W: '송풍',\n };\n\n const combinedMapping = { ...defaultModeMapping, ...customMapping };\n\n if (!(mode in combinedMapping)) {\n throw new Error(`지원하지 않는 모드입니다. mode: ${mode}`);\n }\n\n return combinedMapping[mode];\n}\n\nfunction formatModeColor(mode: Mode, customMapping: Record<string, string> = {}) {\n const defaultColorMapping: Record<Mode, string> = {\n H: '#e77676',\n C: '#9fc6ff',\n W: '#a8e379',\n };\n\n const combinedMapping = { ...defaultColorMapping, ...customMapping };\n\n if (!(mode in combinedMapping)) {\n throw new Error(`지원하지 않는 모드입니다. mode: ${mode}`);\n }\n\n return combinedMapping[mode];\n}\n\nfunction formatWind(wind: Wind, customMapping: Record<string, string> = {}) {\n const defaultWindMapping: Record<Wind, string> = {\n 1: '
|
1
|
+
{"version":3,"sources":["../src/DomainFormat.ts"],"sourcesContent":["export type Mode = 'H' | 'C' | 'W';\nexport type Wind = 1 | 2 | 3;\nexport type AirLevel = 1 | 2 | 3 | 4 | 5;\nexport type UserLevel = '1' | '2' | '3' | '4';\nexport type Language = 'en' | 'ko';\n\nfunction formatModeName(mode: Mode, customMapping: Record<string, string> = {}): string {\n const defaultModeMapping: Record<Mode, string> = {\n H: '난방',\n C: '냉방',\n W: '송풍',\n };\n\n const combinedMapping = { ...defaultModeMapping, ...customMapping };\n\n if (!(mode in combinedMapping)) {\n throw new Error(`지원하지 않는 모드입니다. mode: ${mode}`);\n }\n\n return combinedMapping[mode];\n}\n\nfunction formatModeColor(mode: Mode, customMapping: Record<string, string> = {}) {\n const defaultColorMapping: Record<Mode, string> = {\n H: '#e77676',\n C: '#9fc6ff',\n W: '#a8e379',\n };\n\n const combinedMapping = { ...defaultColorMapping, ...customMapping };\n\n if (!(mode in combinedMapping)) {\n throw new Error(`지원하지 않는 모드입니다. mode: ${mode}`);\n }\n\n return combinedMapping[mode];\n}\n\nfunction formatWind(wind: Wind, customMapping: Record<string, string> = {}) {\n const defaultWindMapping: Record<Wind, string> = {\n 1: '약풍',\n 2: '중풍',\n 3: '강풍',\n };\n\n const combinedMapping = { ...defaultWindMapping, ...customMapping };\n\n if (!(wind in combinedMapping)) {\n throw new Error(`지원하지 않는 풍량입니다. wind: ${wind}`);\n }\n\n return combinedMapping[wind];\n}\n\nfunction formatAirLevelName(level: AirLevel) {\n const airLevelMapping: Record<AirLevel, string> = {\n 1: '매우 나쁨',\n 2: '나쁨',\n 3: '보통',\n 4: '좋음',\n 5: '매우 좋음',\n };\n\n if (!(level in airLevelMapping)) {\n throw new Error(`지원하지 않는 레벨입니다. level: ${level}`);\n }\n\n return airLevelMapping[level];\n}\n\nfunction formatAirLevelColor(level: AirLevel) {\n const colorMapping: Record<AirLevel, string> = {\n 1: '#ff5d47',\n 2: '#ff961c',\n 3: '#ffca42',\n 4: '#63ff60',\n 5: '#49ffe9',\n };\n\n if (!(level in colorMapping)) {\n throw new Error(`지원하지 않는 레벨입니다. level: ${level}`);\n }\n\n return colorMapping[level];\n}\n\nconst formatUserLevel = ({ level, language = 'ko' }: { level: UserLevel; language?: Language }) => {\n const userLevelMapping: Record<Language, Record<UserLevel, string>> = {\n en: {\n '1': 'MASTER',\n '2': 'MASTER KID',\n '3': 'SENIOR',\n '4': 'JUNIOR',\n },\n ko: {\n '1': '마스터',\n '2': '마스터키즈',\n '3': '시니어',\n '4': '주니어',\n },\n };\n\n if (!(language in userLevelMapping)) {\n throw new Error(`지원하지 않는 언어입니다. language: ${language}`);\n }\n\n if (!(level in userLevelMapping[language])) {\n throw new Error(`지원하지 않는 레벨입니다. level: ${level}`);\n }\n\n return userLevelMapping[language][level];\n};\n\nexport const DomainFormat = {\n modeName: formatModeName,\n modeColor: formatModeColor,\n wind: formatWind,\n airLevelName: formatAirLevelName,\n airLevelColor: formatAirLevelColor,\n userLevel: formatUserLevel,\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,eAAe,MAAY,gBAAwC,CAAC,GAAW;AACtF,QAAM,qBAA2C;AAAA,IAC/C,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,EACL;AAEA,QAAM,kBAAkB,EAAE,GAAG,oBAAoB,GAAG,cAAc;AAElE,MAAI,EAAE,QAAQ,kBAAkB;AAC9B,UAAM,IAAI,MAAM,+EAAwB,IAAI,EAAE;AAAA,EAChD;AAEA,SAAO,gBAAgB,IAAI;AAC7B;AAEA,SAAS,gBAAgB,MAAY,gBAAwC,CAAC,GAAG;AAC/E,QAAM,sBAA4C;AAAA,IAChD,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,EACL;AAEA,QAAM,kBAAkB,EAAE,GAAG,qBAAqB,GAAG,cAAc;AAEnE,MAAI,EAAE,QAAQ,kBAAkB;AAC9B,UAAM,IAAI,MAAM,+EAAwB,IAAI,EAAE;AAAA,EAChD;AAEA,SAAO,gBAAgB,IAAI;AAC7B;AAEA,SAAS,WAAW,MAAY,gBAAwC,CAAC,GAAG;AAC1E,QAAM,qBAA2C;AAAA,IAC/C,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,EACL;AAEA,QAAM,kBAAkB,EAAE,GAAG,oBAAoB,GAAG,cAAc;AAElE,MAAI,EAAE,QAAQ,kBAAkB;AAC9B,UAAM,IAAI,MAAM,+EAAwB,IAAI,EAAE;AAAA,EAChD;AAEA,SAAO,gBAAgB,IAAI;AAC7B;AAEA,SAAS,mBAAmB,OAAiB;AAC3C,QAAM,kBAA4C;AAAA,IAChD,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,EACL;AAEA,MAAI,EAAE,SAAS,kBAAkB;AAC/B,UAAM,IAAI,MAAM,gFAAyB,KAAK,EAAE;AAAA,EAClD;AAEA,SAAO,gBAAgB,KAAK;AAC9B;AAEA,SAAS,oBAAoB,OAAiB;AAC5C,QAAM,eAAyC;AAAA,IAC7C,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,EACL;AAEA,MAAI,EAAE,SAAS,eAAe;AAC5B,UAAM,IAAI,MAAM,gFAAyB,KAAK,EAAE;AAAA,EAClD;AAEA,SAAO,aAAa,KAAK;AAC3B;AAEA,IAAM,kBAAkB,CAAC,EAAE,OAAO,WAAW,KAAK,MAAiD;AACjG,QAAM,mBAAgE;AAAA,IACpE,IAAI;AAAA,MACF,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,IACP;AAAA,IACA,IAAI;AAAA,MACF,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,IACP;AAAA,EACF;AAEA,MAAI,EAAE,YAAY,mBAAmB;AACnC,UAAM,IAAI,MAAM,mFAA4B,QAAQ,EAAE;AAAA,EACxD;AAEA,MAAI,EAAE,SAAS,iBAAiB,QAAQ,IAAI;AAC1C,UAAM,IAAI,MAAM,gFAAyB,KAAK,EAAE;AAAA,EAClD;AAEA,SAAO,iBAAiB,QAAQ,EAAE,KAAK;AACzC;AAEO,IAAM,eAAe;AAAA,EAC1B,UAAU;AAAA,EACV,WAAW;AAAA,EACX,MAAM;AAAA,EACN,cAAc;AAAA,EACd,eAAe;AAAA,EACf,WAAW;AACb;","names":[]}
|
package/dist/DomainFormat.mjs
CHANGED
package/dist/Flex.js
CHANGED
@@ -43,7 +43,7 @@ function coerceCssPixelValue(value) {
|
|
43
43
|
}
|
44
44
|
|
45
45
|
// src/Flex.tsx
|
46
|
-
var import_jsx_runtime = require("react/jsx-runtime");
|
46
|
+
var import_jsx_runtime = require("@emotion/react/jsx-runtime");
|
47
47
|
var Flex = (0, import_react.memo)(function Flex2(props) {
|
48
48
|
const {
|
49
49
|
gap = 0,
|
package/dist/Flex.mjs
CHANGED
@@ -0,0 +1,212 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __defProp = Object.defineProperty;
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
6
|
+
var __export = (target, all) => {
|
7
|
+
for (var name in all)
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
9
|
+
};
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
12
|
+
for (let key of __getOwnPropNames(from))
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
15
|
+
}
|
16
|
+
return to;
|
17
|
+
};
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
19
|
+
|
20
|
+
// src/Grid/Grid.tsx
|
21
|
+
var Grid_exports = {};
|
22
|
+
__export(Grid_exports, {
|
23
|
+
Grid: () => Grid
|
24
|
+
});
|
25
|
+
module.exports = __toCommonJS(Grid_exports);
|
26
|
+
var import_react3 = require("react");
|
27
|
+
|
28
|
+
// src/Grid/utils.ts
|
29
|
+
var packageName = "--utils";
|
30
|
+
var createCssVar = (key, value) => {
|
31
|
+
const suffix = value ? `-${value}` : "";
|
32
|
+
return `${packageName}-${key}${suffix}`;
|
33
|
+
};
|
34
|
+
var formatGridFlow = (flow) => {
|
35
|
+
if (!flow) return void 0;
|
36
|
+
const flowParts = flow.split("-");
|
37
|
+
return flowParts.length > 1 ? flowParts.join(" ") : flow;
|
38
|
+
};
|
39
|
+
|
40
|
+
// src/Grid/constants.ts
|
41
|
+
var GRID = "grid";
|
42
|
+
var GRID_ITEM = "grid-item";
|
43
|
+
var gridAlignVar = createCssVar(GRID, "align");
|
44
|
+
var gridGapVar = createCssVar(GRID, "gap");
|
45
|
+
var gridColumnsVar = createCssVar(GRID, "columns");
|
46
|
+
var gridRowsVar = createCssVar(GRID, "rows");
|
47
|
+
var gridAreasVar = createCssVar(GRID, "areas");
|
48
|
+
var gridFlowVar = createCssVar(GRID, "flow");
|
49
|
+
var gridJustifyVar = createCssVar(GRID, "justify");
|
50
|
+
var gridItemAreaVar = createCssVar(GRID_ITEM, "area");
|
51
|
+
var gridItemColumnStartVar = createCssVar(GRID_ITEM, "column-start");
|
52
|
+
var gridItemColumnEndVar = createCssVar(GRID_ITEM, "column-end");
|
53
|
+
var gridItemRowStartVar = createCssVar(GRID_ITEM, "row-start");
|
54
|
+
var gridItemRowEndVar = createCssVar(GRID_ITEM, "row-end");
|
55
|
+
var hasGridAreasAttributeKey = "data-grid-has-areas";
|
56
|
+
var gridAreasAttribute = {
|
57
|
+
key: hasGridAreasAttributeKey,
|
58
|
+
set: (areas) => ({
|
59
|
+
[hasGridAreasAttributeKey]: areas != null ? "true" : "false"
|
60
|
+
}),
|
61
|
+
hasAreasSelector: `[${hasGridAreasAttributeKey}="true"]`
|
62
|
+
};
|
63
|
+
var hasGridAreaAttributeKey = "data-grid-item-has-grid-area";
|
64
|
+
var gridAreaAttribute = {
|
65
|
+
key: hasGridAreaAttributeKey,
|
66
|
+
set: (area) => ({
|
67
|
+
[hasGridAreaAttributeKey]: area != null ? "true" : "false"
|
68
|
+
}),
|
69
|
+
hasAreaSelector: `[${hasGridAreaAttributeKey}="true"]`,
|
70
|
+
noAreaSelector: `[${hasGridAreaAttributeKey}="false"]`
|
71
|
+
};
|
72
|
+
|
73
|
+
// src/Grid/styles.ts
|
74
|
+
var import_react = require("@emotion/react");
|
75
|
+
|
76
|
+
// src/getVar.ts
|
77
|
+
function getVar(variable, defaultValue) {
|
78
|
+
if (defaultValue) {
|
79
|
+
return `var(${variable}, ${defaultValue})`;
|
80
|
+
}
|
81
|
+
return `var(${variable})`;
|
82
|
+
}
|
83
|
+
|
84
|
+
// src/Grid/styles.ts
|
85
|
+
var gridCss = (0, import_react.css)({
|
86
|
+
gap: getVar(gridGapVar),
|
87
|
+
gridTemplateColumns: getVar(gridColumnsVar),
|
88
|
+
gridTemplateRows: getVar(gridRowsVar),
|
89
|
+
gridTemplateAreas: getVar(gridAreasVar),
|
90
|
+
gridAutoFlow: getVar(gridFlowVar),
|
91
|
+
alignItems: getVar(gridAlignVar),
|
92
|
+
justifyContent: getVar(gridJustifyVar)
|
93
|
+
});
|
94
|
+
var gridItemCss = (0, import_react.css)({
|
95
|
+
[`&${gridAreasAttribute.hasAreasSelector}`]: {
|
96
|
+
[`&${gridAreaAttribute.hasAreaSelector}`]: {
|
97
|
+
gridArea: getVar(gridItemAreaVar)
|
98
|
+
}
|
99
|
+
},
|
100
|
+
[`&${gridAreaAttribute.noAreaSelector}`]: {
|
101
|
+
gridColumnStart: getVar(gridItemColumnStartVar),
|
102
|
+
gridColumnEnd: getVar(gridItemColumnEndVar),
|
103
|
+
gridRowStart: getVar(gridItemRowStartVar),
|
104
|
+
gridRowEnd: getVar(gridItemRowEndVar)
|
105
|
+
}
|
106
|
+
});
|
107
|
+
|
108
|
+
// src/coerceCssPixelValue.ts
|
109
|
+
function coerceCssPixelValue(value) {
|
110
|
+
return typeof value === "string" ? value : `${value}px`;
|
111
|
+
}
|
112
|
+
|
113
|
+
// src/createContext.tsx
|
114
|
+
var import_react2 = require("react");
|
115
|
+
var import_jsx_runtime = require("@emotion/react/jsx-runtime");
|
116
|
+
function createContext(rootComponentName, defaultContext) {
|
117
|
+
const Context = (0, import_react2.createContext)(defaultContext);
|
118
|
+
function Provider(props) {
|
119
|
+
const { children, ...contextValues } = props;
|
120
|
+
const value = (0, import_react2.useMemo)(() => contextValues, [contextValues]);
|
121
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Context.Provider, { value, children });
|
122
|
+
}
|
123
|
+
function useContext(consumerName) {
|
124
|
+
const context = (0, import_react2.useContext)(Context);
|
125
|
+
if (context == null) {
|
126
|
+
throw new Error(`${consumerName}\uC740 ${rootComponentName}\uD558\uC704\uC5D0\uC11C \uC0AC\uC6A9\uD574\uC57C \uD569\uB2C8\uB2E4.`);
|
127
|
+
}
|
128
|
+
return context;
|
129
|
+
}
|
130
|
+
Provider.displayName = `${rootComponentName}Provider`;
|
131
|
+
return [Provider, useContext];
|
132
|
+
}
|
133
|
+
|
134
|
+
// src/Grid/context.ts
|
135
|
+
var [GridProvider, useGridContext] = createContext("Grid");
|
136
|
+
|
137
|
+
// src/Grid/Grid.tsx
|
138
|
+
var import_jsx_runtime2 = require("@emotion/react/jsx-runtime");
|
139
|
+
var GridImpl = (0, import_react3.forwardRef)((props, ref) => {
|
140
|
+
const {
|
141
|
+
as: Component = "div",
|
142
|
+
inline = false,
|
143
|
+
gap = 0,
|
144
|
+
columns = "auto",
|
145
|
+
rows = "auto",
|
146
|
+
align = "stretch",
|
147
|
+
justify = "normal",
|
148
|
+
areas,
|
149
|
+
flow,
|
150
|
+
style: styleFromProps,
|
151
|
+
children,
|
152
|
+
...restProps
|
153
|
+
} = props;
|
154
|
+
const gridStyles = {
|
155
|
+
display: inline ? "inline-grid" : "grid",
|
156
|
+
[gridGapVar]: coerceCssPixelValue(gap),
|
157
|
+
[gridColumnsVar]: Array.isArray(columns) ? columns.join(" ") : columns,
|
158
|
+
[gridRowsVar]: Array.isArray(rows) ? rows.join(" ") : rows,
|
159
|
+
[gridAlignVar]: align,
|
160
|
+
[gridFlowVar]: formatGridFlow(flow),
|
161
|
+
[gridAreasVar]: areas,
|
162
|
+
[gridJustifyVar]: justify,
|
163
|
+
...styleFromProps
|
164
|
+
};
|
165
|
+
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(GridProvider, { areas, children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Component, { ref, style: gridStyles, css: gridCss, ...restProps, children }) });
|
166
|
+
});
|
167
|
+
var GridItem = (0, import_react3.forwardRef)((props, ref) => {
|
168
|
+
const {
|
169
|
+
as: Component = "div",
|
170
|
+
gridArea,
|
171
|
+
gridColumn,
|
172
|
+
gridColumnStart,
|
173
|
+
gridColumnEnd,
|
174
|
+
gridRow,
|
175
|
+
gridRowStart,
|
176
|
+
gridRowEnd,
|
177
|
+
style: styleFromProps,
|
178
|
+
children,
|
179
|
+
...restProps
|
180
|
+
} = props;
|
181
|
+
const { areas } = useGridContext("Grid.Item");
|
182
|
+
const [columnStart, columnEnd] = Array.isArray(gridColumn) ? gridColumn : gridColumn?.split("/")?.map((str) => str.trim()) ?? [];
|
183
|
+
const [rowStart, rowEnd] = Array.isArray(gridRow) ? gridRow : gridRow?.split("/")?.map((str) => str.trim()) ?? [];
|
184
|
+
const gridItemStyles = {
|
185
|
+
[gridItemAreaVar]: gridArea,
|
186
|
+
[gridItemColumnStartVar]: columnStart ?? gridColumnStart,
|
187
|
+
[gridItemColumnEndVar]: columnEnd ?? gridColumnEnd,
|
188
|
+
[gridItemRowStartVar]: rowStart ?? gridRowStart,
|
189
|
+
[gridItemRowEndVar]: rowEnd ?? gridRowEnd,
|
190
|
+
...styleFromProps
|
191
|
+
};
|
192
|
+
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
193
|
+
Component,
|
194
|
+
{
|
195
|
+
ref,
|
196
|
+
css: gridItemCss,
|
197
|
+
style: gridItemStyles,
|
198
|
+
...gridAreasAttribute.set(areas),
|
199
|
+
...gridAreaAttribute.set(gridArea),
|
200
|
+
...restProps,
|
201
|
+
children
|
202
|
+
}
|
203
|
+
);
|
204
|
+
});
|
205
|
+
var Grid = Object.assign(GridImpl, {
|
206
|
+
Item: GridItem
|
207
|
+
});
|
208
|
+
// Annotate the CommonJS export names for ESM import in node:
|
209
|
+
0 && (module.exports = {
|
210
|
+
Grid
|
211
|
+
});
|
212
|
+
//# sourceMappingURL=Grid.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["../../src/Grid/Grid.tsx","../../src/Grid/utils.ts","../../src/Grid/constants.ts","../../src/Grid/styles.ts","../../src/getVar.ts","../../src/coerceCssPixelValue.ts","../../src/createContext.tsx","../../src/Grid/context.ts"],"sourcesContent":["import { forwardRef } from 'react';\n\nimport {\n gridAlignVar,\n gridGapVar,\n gridColumnsVar,\n gridRowsVar,\n gridFlowVar,\n gridItemAreaVar,\n gridItemColumnEndVar,\n gridItemColumnStartVar,\n gridItemRowEndVar,\n gridItemRowStartVar,\n gridAreasVar,\n gridAreaAttribute,\n gridAreasAttribute,\n gridJustifyVar,\n} from './constants';\nimport { gridCss, gridItemCss } from './styles';\nimport type { GridItemProps, GridProps } from './types';\nimport { coerceCssPixelValue } from '../coerceCssPixelValue';\nimport { GridProvider, useGridContext } from './context';\nimport { formatGridFlow } from './utils';\n\nconst GridImpl = forwardRef<HTMLDivElement, GridProps>((props, ref) => {\n const {\n as: Component = 'div',\n inline = false,\n gap = 0,\n columns = 'auto',\n rows = 'auto',\n align = 'stretch',\n justify = 'normal',\n areas,\n flow,\n style: styleFromProps,\n children,\n ...restProps\n } = props;\n\n const gridStyles = {\n display: inline ? 'inline-grid' : 'grid',\n [gridGapVar]: coerceCssPixelValue(gap),\n [gridColumnsVar]: Array.isArray(columns) ? columns.join(' ') : columns,\n [gridRowsVar]: Array.isArray(rows) ? rows.join(' ') : rows,\n [gridAlignVar]: align,\n [gridFlowVar]: formatGridFlow(flow),\n [gridAreasVar]: areas,\n [gridJustifyVar]: justify,\n ...styleFromProps,\n };\n\n return (\n <GridProvider areas={areas}>\n <Component ref={ref} style={gridStyles} css={gridCss} {...restProps}>\n {children}\n </Component>\n </GridProvider>\n );\n});\n\nconst GridItem = forwardRef<HTMLDivElement, GridItemProps>((props, ref) => {\n const {\n as: Component = 'div',\n gridArea,\n gridColumn,\n gridColumnStart,\n gridColumnEnd,\n gridRow,\n gridRowStart,\n gridRowEnd,\n style: styleFromProps,\n children,\n ...restProps\n } = props;\n\n const { areas } = useGridContext('Grid.Item');\n\n const [columnStart, columnEnd] = Array.isArray(gridColumn)\n ? gridColumn\n : gridColumn?.split('/')?.map((str) => str.trim()) ?? [];\n\n const [rowStart, rowEnd] = Array.isArray(gridRow)\n ? gridRow\n : gridRow?.split('/')?.map((str) => str.trim()) ?? [];\n\n const gridItemStyles = {\n [gridItemAreaVar]: gridArea,\n [gridItemColumnStartVar]: columnStart ?? gridColumnStart,\n [gridItemColumnEndVar]: columnEnd ?? gridColumnEnd,\n [gridItemRowStartVar]: rowStart ?? gridRowStart,\n [gridItemRowEndVar]: rowEnd ?? gridRowEnd,\n ...styleFromProps,\n };\n\n return (\n <Component\n ref={ref}\n css={gridItemCss}\n style={gridItemStyles}\n {...gridAreasAttribute.set(areas)}\n {...gridAreaAttribute.set(gridArea)}\n {...restProps}\n >\n {children}\n </Component>\n );\n});\n\nexport const Grid = Object.assign(GridImpl, {\n Item: GridItem,\n});\n","const packageName = '--utils';\n\ntype CssVar<T extends string, U extends string | undefined = undefined> = U extends undefined\n ? `${typeof packageName}-${T}`\n : `${typeof packageName}-${T}-${U}`;\n\nexport const createCssVar = <T extends string, U extends string | undefined = undefined>(\n key: T,\n value?: U\n): CssVar<T, U> => {\n const suffix = value ? `-${value}` : '';\n return `${packageName}-${key}${suffix}` as CssVar<T, U>;\n};\nexport const formatGridFlow = (flow: string | undefined) => {\n if (!flow) return undefined;\n const flowParts = flow.split('-');\n\n return flowParts.length > 1 ? flowParts.join(' ') : flow;\n};\n","import { createCssVar } from './utils';\n\nconst GRID = 'grid';\nconst GRID_ITEM = 'grid-item';\n\nexport const gridAlignVar = createCssVar(GRID, 'align');\nexport const gridGapVar = createCssVar(GRID, 'gap');\nexport const gridColumnsVar = createCssVar(GRID, 'columns');\nexport const gridRowsVar = createCssVar(GRID, 'rows');\nexport const gridAreasVar = createCssVar(GRID, 'areas');\nexport const gridFlowVar = createCssVar(GRID, 'flow');\nexport const gridJustifyVar = createCssVar(GRID, 'justify');\n\nexport const gridItemAreaVar = createCssVar(GRID_ITEM, 'area');\nexport const gridItemColumnStartVar = createCssVar(GRID_ITEM, 'column-start');\nexport const gridItemColumnEndVar = createCssVar(GRID_ITEM, 'column-end');\nexport const gridItemRowStartVar = createCssVar(GRID_ITEM, 'row-start');\nexport const gridItemRowEndVar = createCssVar(GRID_ITEM, 'row-end');\n\nconst hasGridAreasAttributeKey = 'data-grid-has-areas';\nexport const gridAreasAttribute = {\n key: hasGridAreasAttributeKey,\n\n set: (areas?: string) => ({\n [hasGridAreasAttributeKey]: areas != null ? 'true' : 'false',\n }),\n\n hasAreasSelector: `[${hasGridAreasAttributeKey}=\"true\"]`,\n};\n\nconst hasGridAreaAttributeKey = 'data-grid-item-has-grid-area';\nexport const gridAreaAttribute = {\n key: hasGridAreaAttributeKey,\n\n set: (area?: string) => ({\n [hasGridAreaAttributeKey]: area != null ? 'true' : 'false',\n }),\n\n hasAreaSelector: `[${hasGridAreaAttributeKey}=\"true\"]`,\n noAreaSelector: `[${hasGridAreaAttributeKey}=\"false\"]`,\n};\n","import { css } from '@emotion/react';\n\nimport {\n gridAlignVar,\n gridGapVar,\n gridColumnsVar,\n gridRowsVar,\n gridAreasVar,\n gridFlowVar,\n gridItemAreaVar,\n gridItemColumnEndVar,\n gridItemColumnStartVar,\n gridItemRowEndVar,\n gridItemRowStartVar,\n gridAreaAttribute,\n gridAreasAttribute,\n gridJustifyVar,\n} from './constants';\nimport { getVar } from '../getVar';\n\nexport const gridCss = css({\n gap: getVar(gridGapVar),\n gridTemplateColumns: getVar(gridColumnsVar),\n gridTemplateRows: getVar(gridRowsVar),\n gridTemplateAreas: getVar(gridAreasVar),\n gridAutoFlow: getVar(gridFlowVar),\n alignItems: getVar(gridAlignVar),\n justifyContent: getVar(gridJustifyVar),\n});\n\nexport const gridItemCss = css({\n [`&${gridAreasAttribute.hasAreasSelector}`]: {\n [`&${gridAreaAttribute.hasAreaSelector}`]: {\n gridArea: getVar(gridItemAreaVar),\n },\n },\n\n [`&${gridAreaAttribute.noAreaSelector}`]: {\n gridColumnStart: getVar(gridItemColumnStartVar),\n gridColumnEnd: getVar(gridItemColumnEndVar),\n gridRowStart: getVar(gridItemRowStartVar),\n gridRowEnd: getVar(gridItemRowEndVar),\n },\n});\n","export type VariableType = `--${string}`;\n\nexport function getVar(variable: VariableType, defaultValue?: string) {\n if (defaultValue) {\n return `var(${variable}, ${defaultValue})`;\n }\n\n return `var(${variable})`;\n}\n","export type CSSPixelValue = string | number;\n\nexport function coerceCssPixelValue(value: CSSPixelValue): string {\n return typeof value === 'string' ? value : `${value}px`;\n}\n","import {\n useMemo,\n createContext as createContextRaw,\n useContext as useContextRaw,\n type PropsWithChildren,\n} from 'react';\n\nexport function createContext<ContextValueType extends object | null>(\n rootComponentName: string,\n defaultContext?: ContextValueType\n) {\n const Context = createContextRaw<ContextValueType | undefined>(defaultContext);\n\n function Provider(props: PropsWithChildren<ContextValueType>) {\n const { children, ...contextValues } = props;\n\n const value = useMemo(() => contextValues, [contextValues]) as ContextValueType;\n\n return <Context.Provider value={value}>{children}</Context.Provider>;\n }\n\n function useContext(consumerName: string) {\n const context = useContextRaw(Context);\n if (context == null) {\n throw new Error(`${consumerName}은 ${rootComponentName}하위에서 사용해야 합니다.`);\n }\n\n return context;\n }\n\n Provider.displayName = `${rootComponentName}Provider`;\n return [Provider, useContext] as const;\n}\n","import { createContext } from '../createContext';\n\nexport type GridContext = {\n areas?: string;\n};\n\nexport const [GridProvider, useGridContext] = createContext<GridContext>('Grid');\n"],"mappings":"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","names":["import_react","import_react","createContextRaw","useContextRaw","import_jsx_runtime"]}
|
@@ -0,0 +1,14 @@
|
|
1
|
+
import {
|
2
|
+
Grid
|
3
|
+
} from "../chunk-IA3Y652S.mjs";
|
4
|
+
import "../chunk-ODQE5YIS.mjs";
|
5
|
+
import "../chunk-6ZISNSYZ.mjs";
|
6
|
+
import "../chunk-KIWMNTMS.mjs";
|
7
|
+
import "../chunk-P3MUNLIM.mjs";
|
8
|
+
import "../chunk-6S7STXJR.mjs";
|
9
|
+
import "../chunk-Z4UXDD2C.mjs";
|
10
|
+
import "../chunk-OQ3L65JI.mjs";
|
11
|
+
export {
|
12
|
+
Grid
|
13
|
+
};
|
14
|
+
//# sourceMappingURL=Grid.mjs.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
@@ -0,0 +1,96 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __defProp = Object.defineProperty;
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
6
|
+
var __export = (target, all) => {
|
7
|
+
for (var name in all)
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
9
|
+
};
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
12
|
+
for (let key of __getOwnPropNames(from))
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
15
|
+
}
|
16
|
+
return to;
|
17
|
+
};
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
19
|
+
|
20
|
+
// src/Grid/constants.ts
|
21
|
+
var constants_exports = {};
|
22
|
+
__export(constants_exports, {
|
23
|
+
gridAlignVar: () => gridAlignVar,
|
24
|
+
gridAreaAttribute: () => gridAreaAttribute,
|
25
|
+
gridAreasAttribute: () => gridAreasAttribute,
|
26
|
+
gridAreasVar: () => gridAreasVar,
|
27
|
+
gridColumnsVar: () => gridColumnsVar,
|
28
|
+
gridFlowVar: () => gridFlowVar,
|
29
|
+
gridGapVar: () => gridGapVar,
|
30
|
+
gridItemAreaVar: () => gridItemAreaVar,
|
31
|
+
gridItemColumnEndVar: () => gridItemColumnEndVar,
|
32
|
+
gridItemColumnStartVar: () => gridItemColumnStartVar,
|
33
|
+
gridItemRowEndVar: () => gridItemRowEndVar,
|
34
|
+
gridItemRowStartVar: () => gridItemRowStartVar,
|
35
|
+
gridJustifyVar: () => gridJustifyVar,
|
36
|
+
gridRowsVar: () => gridRowsVar
|
37
|
+
});
|
38
|
+
module.exports = __toCommonJS(constants_exports);
|
39
|
+
|
40
|
+
// src/Grid/utils.ts
|
41
|
+
var packageName = "--utils";
|
42
|
+
var createCssVar = (key, value) => {
|
43
|
+
const suffix = value ? `-${value}` : "";
|
44
|
+
return `${packageName}-${key}${suffix}`;
|
45
|
+
};
|
46
|
+
|
47
|
+
// src/Grid/constants.ts
|
48
|
+
var GRID = "grid";
|
49
|
+
var GRID_ITEM = "grid-item";
|
50
|
+
var gridAlignVar = createCssVar(GRID, "align");
|
51
|
+
var gridGapVar = createCssVar(GRID, "gap");
|
52
|
+
var gridColumnsVar = createCssVar(GRID, "columns");
|
53
|
+
var gridRowsVar = createCssVar(GRID, "rows");
|
54
|
+
var gridAreasVar = createCssVar(GRID, "areas");
|
55
|
+
var gridFlowVar = createCssVar(GRID, "flow");
|
56
|
+
var gridJustifyVar = createCssVar(GRID, "justify");
|
57
|
+
var gridItemAreaVar = createCssVar(GRID_ITEM, "area");
|
58
|
+
var gridItemColumnStartVar = createCssVar(GRID_ITEM, "column-start");
|
59
|
+
var gridItemColumnEndVar = createCssVar(GRID_ITEM, "column-end");
|
60
|
+
var gridItemRowStartVar = createCssVar(GRID_ITEM, "row-start");
|
61
|
+
var gridItemRowEndVar = createCssVar(GRID_ITEM, "row-end");
|
62
|
+
var hasGridAreasAttributeKey = "data-grid-has-areas";
|
63
|
+
var gridAreasAttribute = {
|
64
|
+
key: hasGridAreasAttributeKey,
|
65
|
+
set: (areas) => ({
|
66
|
+
[hasGridAreasAttributeKey]: areas != null ? "true" : "false"
|
67
|
+
}),
|
68
|
+
hasAreasSelector: `[${hasGridAreasAttributeKey}="true"]`
|
69
|
+
};
|
70
|
+
var hasGridAreaAttributeKey = "data-grid-item-has-grid-area";
|
71
|
+
var gridAreaAttribute = {
|
72
|
+
key: hasGridAreaAttributeKey,
|
73
|
+
set: (area) => ({
|
74
|
+
[hasGridAreaAttributeKey]: area != null ? "true" : "false"
|
75
|
+
}),
|
76
|
+
hasAreaSelector: `[${hasGridAreaAttributeKey}="true"]`,
|
77
|
+
noAreaSelector: `[${hasGridAreaAttributeKey}="false"]`
|
78
|
+
};
|
79
|
+
// Annotate the CommonJS export names for ESM import in node:
|
80
|
+
0 && (module.exports = {
|
81
|
+
gridAlignVar,
|
82
|
+
gridAreaAttribute,
|
83
|
+
gridAreasAttribute,
|
84
|
+
gridAreasVar,
|
85
|
+
gridColumnsVar,
|
86
|
+
gridFlowVar,
|
87
|
+
gridGapVar,
|
88
|
+
gridItemAreaVar,
|
89
|
+
gridItemColumnEndVar,
|
90
|
+
gridItemColumnStartVar,
|
91
|
+
gridItemRowEndVar,
|
92
|
+
gridItemRowStartVar,
|
93
|
+
gridJustifyVar,
|
94
|
+
gridRowsVar
|
95
|
+
});
|
96
|
+
//# sourceMappingURL=constants.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["../../src/Grid/constants.ts","../../src/Grid/utils.ts"],"sourcesContent":["import { createCssVar } from './utils';\n\nconst GRID = 'grid';\nconst GRID_ITEM = 'grid-item';\n\nexport const gridAlignVar = createCssVar(GRID, 'align');\nexport const gridGapVar = createCssVar(GRID, 'gap');\nexport const gridColumnsVar = createCssVar(GRID, 'columns');\nexport const gridRowsVar = createCssVar(GRID, 'rows');\nexport const gridAreasVar = createCssVar(GRID, 'areas');\nexport const gridFlowVar = createCssVar(GRID, 'flow');\nexport const gridJustifyVar = createCssVar(GRID, 'justify');\n\nexport const gridItemAreaVar = createCssVar(GRID_ITEM, 'area');\nexport const gridItemColumnStartVar = createCssVar(GRID_ITEM, 'column-start');\nexport const gridItemColumnEndVar = createCssVar(GRID_ITEM, 'column-end');\nexport const gridItemRowStartVar = createCssVar(GRID_ITEM, 'row-start');\nexport const gridItemRowEndVar = createCssVar(GRID_ITEM, 'row-end');\n\nconst hasGridAreasAttributeKey = 'data-grid-has-areas';\nexport const gridAreasAttribute = {\n key: hasGridAreasAttributeKey,\n\n set: (areas?: string) => ({\n [hasGridAreasAttributeKey]: areas != null ? 'true' : 'false',\n }),\n\n hasAreasSelector: `[${hasGridAreasAttributeKey}=\"true\"]`,\n};\n\nconst hasGridAreaAttributeKey = 'data-grid-item-has-grid-area';\nexport const gridAreaAttribute = {\n key: hasGridAreaAttributeKey,\n\n set: (area?: string) => ({\n [hasGridAreaAttributeKey]: area != null ? 'true' : 'false',\n }),\n\n hasAreaSelector: `[${hasGridAreaAttributeKey}=\"true\"]`,\n noAreaSelector: `[${hasGridAreaAttributeKey}=\"false\"]`,\n};\n","const packageName = '--utils';\n\ntype CssVar<T extends string, U extends string | undefined = undefined> = U extends undefined\n ? `${typeof packageName}-${T}`\n : `${typeof packageName}-${T}-${U}`;\n\nexport const createCssVar = <T extends string, U extends string | undefined = undefined>(\n key: T,\n value?: U\n): CssVar<T, U> => {\n const suffix = value ? `-${value}` : '';\n return `${packageName}-${key}${suffix}` as CssVar<T, U>;\n};\nexport const formatGridFlow = (flow: string | undefined) => {\n if (!flow) return undefined;\n const flowParts = flow.split('-');\n\n return flowParts.length > 1 ? flowParts.join(' ') : flow;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,IAAM,cAAc;AAMb,IAAM,eAAe,CAC1B,KACA,UACiB;AACjB,QAAM,SAAS,QAAQ,IAAI,KAAK,KAAK;AACrC,SAAO,GAAG,WAAW,IAAI,GAAG,GAAG,MAAM;AACvC;;;ADVA,IAAM,OAAO;AACb,IAAM,YAAY;AAEX,IAAM,eAAe,aAAa,MAAM,OAAO;AAC/C,IAAM,aAAa,aAAa,MAAM,KAAK;AAC3C,IAAM,iBAAiB,aAAa,MAAM,SAAS;AACnD,IAAM,cAAc,aAAa,MAAM,MAAM;AAC7C,IAAM,eAAe,aAAa,MAAM,OAAO;AAC/C,IAAM,cAAc,aAAa,MAAM,MAAM;AAC7C,IAAM,iBAAiB,aAAa,MAAM,SAAS;AAEnD,IAAM,kBAAkB,aAAa,WAAW,MAAM;AACtD,IAAM,yBAAyB,aAAa,WAAW,cAAc;AACrE,IAAM,uBAAuB,aAAa,WAAW,YAAY;AACjE,IAAM,sBAAsB,aAAa,WAAW,WAAW;AAC/D,IAAM,oBAAoB,aAAa,WAAW,SAAS;AAElE,IAAM,2BAA2B;AAC1B,IAAM,qBAAqB;AAAA,EAChC,KAAK;AAAA,EAEL,KAAK,CAAC,WAAoB;AAAA,IACxB,CAAC,wBAAwB,GAAG,SAAS,OAAO,SAAS;AAAA,EACvD;AAAA,EAEA,kBAAkB,IAAI,wBAAwB;AAChD;AAEA,IAAM,0BAA0B;AACzB,IAAM,oBAAoB;AAAA,EAC/B,KAAK;AAAA,EAEL,KAAK,CAAC,UAAmB;AAAA,IACvB,CAAC,uBAAuB,GAAG,QAAQ,OAAO,SAAS;AAAA,EACrD;AAAA,EAEA,iBAAiB,IAAI,uBAAuB;AAAA,EAC5C,gBAAgB,IAAI,uBAAuB;AAC7C;","names":[]}
|
@@ -0,0 +1,34 @@
|
|
1
|
+
import {
|
2
|
+
gridAlignVar,
|
3
|
+
gridAreaAttribute,
|
4
|
+
gridAreasAttribute,
|
5
|
+
gridAreasVar,
|
6
|
+
gridColumnsVar,
|
7
|
+
gridFlowVar,
|
8
|
+
gridGapVar,
|
9
|
+
gridItemAreaVar,
|
10
|
+
gridItemColumnEndVar,
|
11
|
+
gridItemColumnStartVar,
|
12
|
+
gridItemRowEndVar,
|
13
|
+
gridItemRowStartVar,
|
14
|
+
gridJustifyVar,
|
15
|
+
gridRowsVar
|
16
|
+
} from "../chunk-KIWMNTMS.mjs";
|
17
|
+
import "../chunk-P3MUNLIM.mjs";
|
18
|
+
export {
|
19
|
+
gridAlignVar,
|
20
|
+
gridAreaAttribute,
|
21
|
+
gridAreasAttribute,
|
22
|
+
gridAreasVar,
|
23
|
+
gridColumnsVar,
|
24
|
+
gridFlowVar,
|
25
|
+
gridGapVar,
|
26
|
+
gridItemAreaVar,
|
27
|
+
gridItemColumnEndVar,
|
28
|
+
gridItemColumnStartVar,
|
29
|
+
gridItemRowEndVar,
|
30
|
+
gridItemRowStartVar,
|
31
|
+
gridJustifyVar,
|
32
|
+
gridRowsVar
|
33
|
+
};
|
34
|
+
//# sourceMappingURL=constants.mjs.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
@@ -0,0 +1,56 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __defProp = Object.defineProperty;
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
6
|
+
var __export = (target, all) => {
|
7
|
+
for (var name in all)
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
9
|
+
};
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
12
|
+
for (let key of __getOwnPropNames(from))
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
15
|
+
}
|
16
|
+
return to;
|
17
|
+
};
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
19
|
+
|
20
|
+
// src/Grid/context.ts
|
21
|
+
var context_exports = {};
|
22
|
+
__export(context_exports, {
|
23
|
+
GridProvider: () => GridProvider,
|
24
|
+
useGridContext: () => useGridContext
|
25
|
+
});
|
26
|
+
module.exports = __toCommonJS(context_exports);
|
27
|
+
|
28
|
+
// src/createContext.tsx
|
29
|
+
var import_react = require("react");
|
30
|
+
var import_jsx_runtime = require("@emotion/react/jsx-runtime");
|
31
|
+
function createContext(rootComponentName, defaultContext) {
|
32
|
+
const Context = (0, import_react.createContext)(defaultContext);
|
33
|
+
function Provider(props) {
|
34
|
+
const { children, ...contextValues } = props;
|
35
|
+
const value = (0, import_react.useMemo)(() => contextValues, [contextValues]);
|
36
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Context.Provider, { value, children });
|
37
|
+
}
|
38
|
+
function useContext(consumerName) {
|
39
|
+
const context = (0, import_react.useContext)(Context);
|
40
|
+
if (context == null) {
|
41
|
+
throw new Error(`${consumerName}\uC740 ${rootComponentName}\uD558\uC704\uC5D0\uC11C \uC0AC\uC6A9\uD574\uC57C \uD569\uB2C8\uB2E4.`);
|
42
|
+
}
|
43
|
+
return context;
|
44
|
+
}
|
45
|
+
Provider.displayName = `${rootComponentName}Provider`;
|
46
|
+
return [Provider, useContext];
|
47
|
+
}
|
48
|
+
|
49
|
+
// src/Grid/context.ts
|
50
|
+
var [GridProvider, useGridContext] = createContext("Grid");
|
51
|
+
// Annotate the CommonJS export names for ESM import in node:
|
52
|
+
0 && (module.exports = {
|
53
|
+
GridProvider,
|
54
|
+
useGridContext
|
55
|
+
});
|
56
|
+
//# sourceMappingURL=context.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["../../src/Grid/context.ts","../../src/createContext.tsx"],"sourcesContent":["import { createContext } from '../createContext';\n\nexport type GridContext = {\n areas?: string;\n};\n\nexport const [GridProvider, useGridContext] = createContext<GridContext>('Grid');\n","import {\n useMemo,\n createContext as createContextRaw,\n useContext as useContextRaw,\n type PropsWithChildren,\n} from 'react';\n\nexport function createContext<ContextValueType extends object | null>(\n rootComponentName: string,\n defaultContext?: ContextValueType\n) {\n const Context = createContextRaw<ContextValueType | undefined>(defaultContext);\n\n function Provider(props: PropsWithChildren<ContextValueType>) {\n const { children, ...contextValues } = props;\n\n const value = useMemo(() => contextValues, [contextValues]) as ContextValueType;\n\n return <Context.Provider value={value}>{children}</Context.Provider>;\n }\n\n function useContext(consumerName: string) {\n const context = useContextRaw(Context);\n if (context == null) {\n throw new Error(`${consumerName}은 ${rootComponentName}하위에서 사용해야 합니다.`);\n }\n\n return context;\n }\n\n Provider.displayName = `${rootComponentName}Provider`;\n return [Provider, useContext] as const;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,mBAKO;AAaI;AAXJ,SAAS,cACd,mBACA,gBACA;AACA,QAAM,cAAU,aAAAA,eAA+C,cAAc;AAE7E,WAAS,SAAS,OAA4C;AAC5D,UAAM,EAAE,UAAU,GAAG,cAAc,IAAI;AAEvC,UAAM,YAAQ,sBAAQ,MAAM,eAAe,CAAC,aAAa,CAAC;AAE1D,WAAO,4CAAC,QAAQ,UAAR,EAAiB,OAAe,UAAS;AAAA,EACnD;AAEA,WAAS,WAAW,cAAsB;AACxC,UAAM,cAAU,aAAAC,YAAc,OAAO;AACrC,QAAI,WAAW,MAAM;AACnB,YAAM,IAAI,MAAM,GAAG,YAAY,UAAK,iBAAiB,uEAAgB;AAAA,IACvE;AAEA,WAAO;AAAA,EACT;AAEA,WAAS,cAAc,GAAG,iBAAiB;AAC3C,SAAO,CAAC,UAAU,UAAU;AAC9B;;;AD1BO,IAAM,CAAC,cAAc,cAAc,IAAI,cAA2B,MAAM;","names":["createContextRaw","useContextRaw"]}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|