podo-ui 1.0.21 → 1.0.23
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/cdn/podo-datepicker.css +1 -1
- package/cdn/podo-datepicker.js +4 -1
- package/cdn/podo-datepicker.min.css +1 -1
- package/cdn/podo-datepicker.min.js +2 -2
- package/cdn/podo-ui.css +329 -276
- package/cdn/podo-ui.min.css +2 -2
- package/dist/react/atom/tooltip.d.ts +3 -1
- package/dist/react/atom/tooltip.d.ts.map +1 -1
- package/dist/react/atom/tooltip.js +6 -3
- package/dist/react/molecule/datepicker.d.ts +2 -0
- package/dist/react/molecule/datepicker.d.ts.map +1 -1
- package/dist/react/molecule/datepicker.js +2 -1
- package/dist/react/molecule/pagination.d.ts +5 -1
- package/dist/react/molecule/pagination.d.ts.map +1 -1
- package/dist/react/molecule/pagination.js +2 -2
- package/dist/svelte/atom/Tooltip.svelte +4 -1
- package/dist/svelte/atom/Tooltip.svelte.d.ts +2 -0
- package/dist/svelte/molecule/DatePicker.svelte +4 -0
- package/dist/svelte/molecule/DatePicker.svelte.d.ts +2 -0
- package/dist/svelte/molecule/Pagination.svelte +8 -2
- package/dist/svelte/molecule/Pagination.svelte.d.ts +4 -0
- package/package.json +1 -1
- package/scss/form/input.scss +3 -0
- package/scss/form/textarea.scss +3 -0
- package/scss/icon/icon.scss +7 -15
- package/scss/typo/mixin.scss +18 -54
- package/vanilla/datepicker.js +3 -0
|
@@ -22,6 +22,8 @@ export interface TooltipProps {
|
|
|
22
22
|
* 기본값: false
|
|
23
23
|
*/
|
|
24
24
|
portal?: boolean;
|
|
25
|
+
/** 툴팁 최대 너비 (설정 시 자동 줄바꿈 활성화) */
|
|
26
|
+
maxWidth?: number | string;
|
|
25
27
|
}
|
|
26
|
-
export default function Tooltip({ children, content, variant, position, offset, isVisible: controlledIsVisible, className, portal, }: TooltipProps): import("react/jsx-runtime").JSX.Element;
|
|
28
|
+
export default function Tooltip({ children, content, variant, position, offset, isVisible: controlledIsVisible, className, portal, maxWidth, }: TooltipProps): import("react/jsx-runtime").JSX.Element;
|
|
27
29
|
//# sourceMappingURL=tooltip.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tooltip.d.ts","sourceRoot":"","sources":["../../../react/atom/tooltip.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAIxE,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,MAAM,CAAC;AAEhD,MAAM,MAAM,eAAe,GACvB,KAAK,GACL,SAAS,GACT,UAAU,GACV,QAAQ,GACR,YAAY,GACZ,aAAa,GACb,MAAM,GACN,SAAS,GACT,YAAY,GACZ,OAAO,GACP,UAAU,GACV,aAAa,CAAC;AAElB,MAAM,WAAW,YAAY;IAC3B,2CAA2C;IAC3C,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,4CAA4C;IAC5C,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,6BAA6B;IAC7B,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,qBAAqB;IACrB,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,8CAA8C;IAC9C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4DAA4D;IAC5D,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,2BAA2B;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"tooltip.d.ts","sourceRoot":"","sources":["../../../react/atom/tooltip.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAIxE,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,MAAM,CAAC;AAEhD,MAAM,MAAM,eAAe,GACvB,KAAK,GACL,SAAS,GACT,UAAU,GACV,QAAQ,GACR,YAAY,GACZ,aAAa,GACb,MAAM,GACN,SAAS,GACT,YAAY,GACZ,OAAO,GACP,UAAU,GACV,aAAa,CAAC;AAElB,MAAM,WAAW,YAAY;IAC3B,2CAA2C;IAC3C,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,4CAA4C;IAC5C,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,6BAA6B;IAC7B,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,qBAAqB;IACrB,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,8CAA8C;IAC9C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4DAA4D;IAC5D,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,2BAA2B;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,iCAAiC;IACjC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC5B;AAUD,MAAM,CAAC,OAAO,UAAU,OAAO,CAAC,EAC9B,QAAQ,EACR,OAAO,EACP,OAAmB,EACnB,QAAgB,EAChB,MAAU,EACV,SAAS,EAAE,mBAAmB,EAC9B,SAAc,EACd,MAAc,EACd,QAAQ,GACT,EAAE,YAAY,2CA2Ld"}
|
|
@@ -2,7 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import { useState, useRef, useEffect, useCallback } from 'react';
|
|
3
3
|
import { createPortal } from 'react-dom';
|
|
4
4
|
import styles from './tooltip.module.scss';
|
|
5
|
-
export default function Tooltip({ children, content, variant = 'default', position = 'top', offset = 8, isVisible: controlledIsVisible, className = '', portal = false, }) {
|
|
5
|
+
export default function Tooltip({ children, content, variant = 'default', position = 'top', offset = 8, isVisible: controlledIsVisible, className = '', portal = false, maxWidth, }) {
|
|
6
6
|
const [hoverIsVisible, setHoverIsVisible] = useState(false);
|
|
7
7
|
const triggerRef = useRef(null);
|
|
8
8
|
const [portalPosition, setPortalPosition] = useState(null);
|
|
@@ -132,16 +132,19 @@ export default function Tooltip({ children, content, variant = 'default', positi
|
|
|
132
132
|
]
|
|
133
133
|
.filter(Boolean)
|
|
134
134
|
.join(' ');
|
|
135
|
+
const maxWidthStyle = maxWidth
|
|
136
|
+
? { maxWidth: typeof maxWidth === 'number' ? `${maxWidth}px` : maxWidth, whiteSpace: 'normal', wordBreak: 'break-word' }
|
|
137
|
+
: {};
|
|
135
138
|
// 툴팁 콘텐츠 렌더링
|
|
136
139
|
const renderTooltipContent = () => {
|
|
137
140
|
if (!shouldShowTooltip)
|
|
138
141
|
return null;
|
|
139
142
|
// Portal 모드
|
|
140
143
|
if (portal && typeof document !== 'undefined' && portalPosition) {
|
|
141
|
-
return createPortal(_jsx("div", { className: portalTooltipClassNames, style: getPortalStyle(), children: content }), document.body);
|
|
144
|
+
return createPortal(_jsx("div", { className: portalTooltipClassNames, style: { ...getPortalStyle(), ...maxWidthStyle }, children: content }), document.body);
|
|
142
145
|
}
|
|
143
146
|
// 일반 모드
|
|
144
|
-
return (_jsx("div", { className: tooltipClassNames, style: { '--tooltip-offset': `${offset}px
|
|
147
|
+
return (_jsx("div", { className: tooltipClassNames, style: { '--tooltip-offset': `${offset}px`, ...maxWidthStyle }, children: content }));
|
|
145
148
|
};
|
|
146
149
|
return (_jsxs("div", { ref: triggerRef, className: styles.tooltipWrapper, onMouseEnter: () => setHoverIsVisible(true), onMouseLeave: () => setHoverIsVisible(false), children: [children, renderTooltipContent()] }));
|
|
147
150
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datepicker.d.ts","sourceRoot":"","sources":["../../../react/molecule/datepicker.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"datepicker.d.ts","sourceRoot":"","sources":["../../../react/molecule/datepicker.tsx"],"names":[],"mappings":"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"}
|
|
@@ -475,7 +475,7 @@ const PeriodCalendar = ({ value, endValue, onSelect, viewDate, endViewDate, onVi
|
|
|
475
475
|
return (_jsxs("div", { className: styles.periodCalendars, children: [_jsx("div", { className: styles.periodCalendarLeft, children: _jsx(Calendar, { value: value, endValue: endValue, mode: "period", onSelect: onSelect, viewDate: viewDate, onViewDateChange: onViewDateChange, showPrevNav: true, showNextNav: true, maxViewDate: isMobile ? undefined : endViewDate, disable: disable, enable: enable, minDate: minDate, maxDate: maxDate, yearRange: yearRange }) }), _jsx("div", { className: styles.periodCalendarRight, children: _jsx(Calendar, { value: value, endValue: endValue, mode: "period", onSelect: onSelect, viewDate: endViewDate, onViewDateChange: onEndViewDateChange, showPrevNav: true, showNextNav: true, minViewDate: viewDate, disable: disable, enable: enable, minDate: minDate, maxDate: maxDate, yearRange: yearRange }) })] }));
|
|
476
476
|
};
|
|
477
477
|
// Main DatePicker Component
|
|
478
|
-
const DatePicker = ({ mode = 'instant', type = 'date', value, onChange, placeholder, disabled = false, showActions, align = 'left', className, disable, enable, minDate, maxDate, minuteStep = 1, format, initialCalendar, yearRange, portal = false, quickSelect = false, }) => {
|
|
478
|
+
const DatePicker = ({ mode = 'instant', type = 'date', value, onChange, placeholder, disabled = false, showActions, align = 'left', className, disable, enable, minDate, maxDate, minuteStep = 1, format, initialCalendar, yearRange, portal = false, quickSelect = false, onReset, }) => {
|
|
479
479
|
const [selectingPart, setSelectingPart] = useState(null);
|
|
480
480
|
const [tempValue, setTempValue] = useState(value || {});
|
|
481
481
|
const [navigationStep, setNavigationStep] = useState(() => {
|
|
@@ -757,6 +757,7 @@ const DatePicker = ({ mode = 'instant', type = 'date', value, onChange, placehol
|
|
|
757
757
|
const handleReset = () => {
|
|
758
758
|
setTempValue({});
|
|
759
759
|
setSelectingPart(null);
|
|
760
|
+
onReset?.();
|
|
760
761
|
};
|
|
761
762
|
const handleApply = () => {
|
|
762
763
|
onChange?.(tempValue);
|
|
@@ -3,7 +3,11 @@ interface PaginationProps {
|
|
|
3
3
|
totalPages: number;
|
|
4
4
|
onPageChange: (page: number) => void;
|
|
5
5
|
maxVisiblePages?: number;
|
|
6
|
+
/** Previous button icon class name */
|
|
7
|
+
prevIcon?: string;
|
|
8
|
+
/** Next button icon class name */
|
|
9
|
+
nextIcon?: string;
|
|
6
10
|
}
|
|
7
|
-
export default function Pagination({ currentPage, totalPages, onPageChange, maxVisiblePages, }: PaginationProps): import("react/jsx-runtime").JSX.Element | null;
|
|
11
|
+
export default function Pagination({ currentPage, totalPages, onPageChange, maxVisiblePages, prevIcon, nextIcon, }: PaginationProps): import("react/jsx-runtime").JSX.Element | null;
|
|
8
12
|
export {};
|
|
9
13
|
//# sourceMappingURL=pagination.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pagination.d.ts","sourceRoot":"","sources":["../../../react/molecule/pagination.tsx"],"names":[],"mappings":"AAEA,UAAU,eAAe;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,eAAe,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"pagination.d.ts","sourceRoot":"","sources":["../../../react/molecule/pagination.tsx"],"names":[],"mappings":"AAEA,UAAU,eAAe;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,sCAAsC;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kCAAkC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EACjC,WAAW,EACX,UAAU,EACV,YAAY,EACZ,eAAmB,EACnB,QAA4B,EAC5B,QAA6B,GAC9B,EAAE,eAAe,kDAwEjB"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import styles from './pagination.module.scss';
|
|
3
|
-
export default function Pagination({ currentPage, totalPages, onPageChange, maxVisiblePages = 5, }) {
|
|
3
|
+
export default function Pagination({ currentPage, totalPages, onPageChange, maxVisiblePages = 5, prevIcon = 'icon-arrow-left', nextIcon = 'icon-arrow-right', }) {
|
|
4
4
|
const getPageNumbers = () => {
|
|
5
5
|
const pages = [];
|
|
6
6
|
const startPage = Math.floor((currentPage - 1) / maxVisiblePages) * maxVisiblePages + 1;
|
|
@@ -24,5 +24,5 @@ export default function Pagination({ currentPage, totalPages, onPageChange, maxV
|
|
|
24
24
|
if (totalPages === 0) {
|
|
25
25
|
return null;
|
|
26
26
|
}
|
|
27
|
-
return (_jsxs("div", { className: styles.pagination, children: [currentPage > 1 ? (_jsx("button", { onClick: handlePrevious, className: styles.pageButton, "aria-label": "\uC774\uC804 \uD398\uC774\uC9C0", children: _jsx("i", { className:
|
|
27
|
+
return (_jsxs("div", { className: styles.pagination, children: [currentPage > 1 ? (_jsx("button", { onClick: handlePrevious, className: styles.pageButton, "aria-label": "\uC774\uC804 \uD398\uC774\uC9C0", children: _jsx("i", { className: prevIcon }) })) : (_jsx("div", { className: styles.pageButtonPlaceholder })), pageNumbers.map((pageNum) => (_jsx("button", { onClick: () => onPageChange(pageNum), className: `${styles.pageButton} ${currentPage === pageNum ? styles.active : ''}`, "aria-label": `${pageNum}페이지`, "aria-current": currentPage === pageNum ? 'page' : undefined, children: pageNum }, pageNum))), currentPage < totalPages ? (_jsx("button", { onClick: handleNext, className: styles.pageButton, "aria-label": "\uB2E4\uC74C \uD398\uC774\uC9C0", children: _jsx("i", { className: nextIcon }) })) : (_jsx("div", { className: styles.pageButtonPlaceholder }))] }));
|
|
28
28
|
}
|
|
@@ -33,6 +33,8 @@
|
|
|
33
33
|
isVisible?: boolean;
|
|
34
34
|
/** Additional CSS class */
|
|
35
35
|
class?: string;
|
|
36
|
+
/** Tooltip max width (enables word wrap when set) */
|
|
37
|
+
maxWidth?: number | string;
|
|
36
38
|
}
|
|
37
39
|
|
|
38
40
|
let {
|
|
@@ -43,6 +45,7 @@
|
|
|
43
45
|
offset = 8,
|
|
44
46
|
isVisible: controlledIsVisible,
|
|
45
47
|
class: className = '',
|
|
48
|
+
maxWidth,
|
|
46
49
|
...rest
|
|
47
50
|
}: Props & Record<string, unknown> = $props();
|
|
48
51
|
|
|
@@ -71,7 +74,7 @@
|
|
|
71
74
|
>
|
|
72
75
|
{@render children()}
|
|
73
76
|
{#if shouldShowTooltip}
|
|
74
|
-
<div class={tooltipClassNames} style="--tooltip-offset: {offset}px;">
|
|
77
|
+
<div class={tooltipClassNames} style="--tooltip-offset: {offset}px;{maxWidth ? ` max-width: ${typeof maxWidth === 'number' ? `${maxWidth}px` : maxWidth}; white-space: normal; word-break: break-word;` : ''}">
|
|
75
78
|
{@render content()}
|
|
76
79
|
</div>
|
|
77
80
|
{/if}
|
|
@@ -16,6 +16,8 @@ interface Props {
|
|
|
16
16
|
isVisible?: boolean;
|
|
17
17
|
/** Additional CSS class */
|
|
18
18
|
class?: string;
|
|
19
|
+
/** Tooltip max width (enables word wrap when set) */
|
|
20
|
+
maxWidth?: number | string;
|
|
19
21
|
}
|
|
20
22
|
type $$ComponentProps = Props & Record<string, unknown>;
|
|
21
23
|
declare const Tooltip: import("svelte").Component<$$ComponentProps, {}, "">;
|
|
@@ -204,6 +204,8 @@
|
|
|
204
204
|
yearRange?: YearRange;
|
|
205
205
|
/** Show quick select presets (period mode only) */
|
|
206
206
|
quickSelect?: boolean;
|
|
207
|
+
/** Reset button click callback */
|
|
208
|
+
onreset?: () => void;
|
|
207
209
|
}
|
|
208
210
|
|
|
209
211
|
let {
|
|
@@ -225,6 +227,7 @@
|
|
|
225
227
|
initialCalendar,
|
|
226
228
|
yearRange,
|
|
227
229
|
quickSelect = false,
|
|
230
|
+
onreset,
|
|
228
231
|
...rest
|
|
229
232
|
}: Props & Record<string, unknown> = $props();
|
|
230
233
|
|
|
@@ -763,6 +766,7 @@
|
|
|
763
766
|
const handleReset = () => {
|
|
764
767
|
tempValue = {};
|
|
765
768
|
selectingPart = null;
|
|
769
|
+
onreset?.();
|
|
766
770
|
};
|
|
767
771
|
|
|
768
772
|
const handleApply = () => {
|
|
@@ -68,6 +68,8 @@ interface Props {
|
|
|
68
68
|
yearRange?: YearRange;
|
|
69
69
|
/** Show quick select presets (period mode only) */
|
|
70
70
|
quickSelect?: boolean;
|
|
71
|
+
/** Reset button click callback */
|
|
72
|
+
onreset?: () => void;
|
|
71
73
|
}
|
|
72
74
|
type $$ComponentProps = Props & Record<string, unknown>;
|
|
73
75
|
declare const DatePicker: import("svelte").Component<$$ComponentProps, {}, "value">;
|
|
@@ -10,6 +10,10 @@
|
|
|
10
10
|
onpagechange: (page: number) => void;
|
|
11
11
|
/** Maximum visible page numbers */
|
|
12
12
|
maxVisiblePages?: number;
|
|
13
|
+
/** Previous button icon class name */
|
|
14
|
+
prevIcon?: string;
|
|
15
|
+
/** Next button icon class name */
|
|
16
|
+
nextIcon?: string;
|
|
13
17
|
}
|
|
14
18
|
|
|
15
19
|
let {
|
|
@@ -17,6 +21,8 @@
|
|
|
17
21
|
totalPages,
|
|
18
22
|
onpagechange,
|
|
19
23
|
maxVisiblePages = 5,
|
|
24
|
+
prevIcon = 'icon-arrow-left',
|
|
25
|
+
nextIcon = 'icon-arrow-right',
|
|
20
26
|
...rest
|
|
21
27
|
}: Props & Record<string, unknown> = $props();
|
|
22
28
|
|
|
@@ -63,7 +69,7 @@
|
|
|
63
69
|
class={styles.pageButton}
|
|
64
70
|
aria-label="이전 페이지"
|
|
65
71
|
>
|
|
66
|
-
<i class=
|
|
72
|
+
<i class={prevIcon}></i>
|
|
67
73
|
</button>
|
|
68
74
|
{:else}
|
|
69
75
|
<div class={styles.pageButtonPlaceholder}></div>
|
|
@@ -86,7 +92,7 @@
|
|
|
86
92
|
class={styles.pageButton}
|
|
87
93
|
aria-label="다음 페이지"
|
|
88
94
|
>
|
|
89
|
-
<i class=
|
|
95
|
+
<i class={nextIcon}></i>
|
|
90
96
|
</button>
|
|
91
97
|
{:else}
|
|
92
98
|
<div class={styles.pageButtonPlaceholder}></div>
|
|
@@ -7,6 +7,10 @@ interface Props {
|
|
|
7
7
|
onpagechange: (page: number) => void;
|
|
8
8
|
/** Maximum visible page numbers */
|
|
9
9
|
maxVisiblePages?: number;
|
|
10
|
+
/** Previous button icon class name */
|
|
11
|
+
prevIcon?: string;
|
|
12
|
+
/** Next button icon class name */
|
|
13
|
+
nextIcon?: string;
|
|
10
14
|
}
|
|
11
15
|
type $$ComponentProps = Props & Record<string, unknown>;
|
|
12
16
|
declare const Pagination: import("svelte").Component<$$ComponentProps, {}, "currentPage">;
|
package/package.json
CHANGED
package/scss/form/input.scss
CHANGED
package/scss/form/textarea.scss
CHANGED
package/scss/icon/icon.scss
CHANGED
|
@@ -6,17 +6,10 @@
|
|
|
6
6
|
src: url('./font/icon.woff') format('woff');
|
|
7
7
|
font-display: swap;
|
|
8
8
|
}
|
|
9
|
-
:root {
|
|
10
|
-
[class^='icon-'],
|
|
11
|
-
[class*=' icon-'] {
|
|
12
|
-
&:only-child,
|
|
13
|
-
&:not(:last-child) {
|
|
14
|
-
margin-right: s(2);
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
9
|
|
|
18
|
-
|
|
19
|
-
|
|
10
|
+
[class^='icon-'],
|
|
11
|
+
[class*=' icon-'] {
|
|
12
|
+
&::before {
|
|
20
13
|
font-family: 'podo-ui-icon' !important;
|
|
21
14
|
font-style: normal;
|
|
22
15
|
font-weight: normal;
|
|
@@ -27,12 +20,11 @@
|
|
|
27
20
|
vertical-align: inherit;
|
|
28
21
|
-webkit-font-smoothing: antialiased;
|
|
29
22
|
-moz-osx-font-smoothing: grayscale;
|
|
30
|
-
// margin-top: -0.1rem;
|
|
31
23
|
}
|
|
24
|
+
}
|
|
32
25
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
}
|
|
26
|
+
@each $key, $value in $icon-name {
|
|
27
|
+
.icon-#{$key}::before {
|
|
28
|
+
content: '#{$value}';
|
|
37
29
|
}
|
|
38
30
|
}
|
package/scss/typo/mixin.scss
CHANGED
|
@@ -9,9 +9,7 @@
|
|
|
9
9
|
font-size: $font-size-54;
|
|
10
10
|
line-height: 1.2;
|
|
11
11
|
font-weight: $font-weight-semibold;
|
|
12
|
-
|
|
13
|
-
color: var(--color-text-header);
|
|
14
|
-
}
|
|
12
|
+
color: var(--color-text-header);
|
|
15
13
|
@include mo {
|
|
16
14
|
font-size: $font-size-24;
|
|
17
15
|
}
|
|
@@ -21,9 +19,7 @@
|
|
|
21
19
|
font-size: $font-size-42;
|
|
22
20
|
line-height: 1.2;
|
|
23
21
|
font-weight: $font-weight-semibold;
|
|
24
|
-
|
|
25
|
-
color: var(--color-text-header);
|
|
26
|
-
}
|
|
22
|
+
color: var(--color-text-header);
|
|
27
23
|
@include mo {
|
|
28
24
|
font-size: $font-size-18;
|
|
29
25
|
}
|
|
@@ -33,9 +29,7 @@
|
|
|
33
29
|
font-size: $font-size-36;
|
|
34
30
|
line-height: 1.2;
|
|
35
31
|
font-weight: $font-weight-semibold;
|
|
36
|
-
|
|
37
|
-
color: var(--color-text-header);
|
|
38
|
-
}
|
|
32
|
+
color: var(--color-text-header);
|
|
39
33
|
@include mo {
|
|
40
34
|
font-size: $font-size-16;
|
|
41
35
|
}
|
|
@@ -48,9 +42,7 @@
|
|
|
48
42
|
font-size: $font-size-60;
|
|
49
43
|
line-height: 1.2;
|
|
50
44
|
font-weight: $font-weight-semibold;
|
|
51
|
-
|
|
52
|
-
color: var(--color-text-header);
|
|
53
|
-
}
|
|
45
|
+
color: var(--color-text-header);
|
|
54
46
|
@include mo {
|
|
55
47
|
font-size: $font-size-36;
|
|
56
48
|
}
|
|
@@ -59,9 +51,7 @@
|
|
|
59
51
|
font-size: $font-size-54;
|
|
60
52
|
line-height: 1.2;
|
|
61
53
|
font-weight: $font-weight-semibold;
|
|
62
|
-
|
|
63
|
-
color: var(--color-text-header);
|
|
64
|
-
}
|
|
54
|
+
color: var(--color-text-header);
|
|
65
55
|
@include mo {
|
|
66
56
|
font-size: $font-size-32;
|
|
67
57
|
}
|
|
@@ -70,9 +60,7 @@
|
|
|
70
60
|
font-size: $font-size-48;
|
|
71
61
|
line-height: 1.2;
|
|
72
62
|
font-weight: $font-weight-semibold;
|
|
73
|
-
|
|
74
|
-
color: var(--color-text-header);
|
|
75
|
-
}
|
|
63
|
+
color: var(--color-text-header);
|
|
76
64
|
@include mo {
|
|
77
65
|
font-size: $font-size-28;
|
|
78
66
|
}
|
|
@@ -81,9 +69,7 @@
|
|
|
81
69
|
font-size: $font-size-42;
|
|
82
70
|
line-height: 1.2;
|
|
83
71
|
font-weight: $font-weight-semibold;
|
|
84
|
-
|
|
85
|
-
color: var(--color-text-header);
|
|
86
|
-
}
|
|
72
|
+
color: var(--color-text-header);
|
|
87
73
|
@include mo {
|
|
88
74
|
font-size: $font-size-24;
|
|
89
75
|
}
|
|
@@ -93,9 +79,7 @@
|
|
|
93
79
|
font-size: $font-size-36;
|
|
94
80
|
line-height: 1.2;
|
|
95
81
|
font-weight: $font-weight-semibold;
|
|
96
|
-
|
|
97
|
-
color: var(--color-text-header);
|
|
98
|
-
}
|
|
82
|
+
color: var(--color-text-header);
|
|
99
83
|
@include mo {
|
|
100
84
|
font-size: $font-size-20;
|
|
101
85
|
}
|
|
@@ -105,9 +89,7 @@
|
|
|
105
89
|
font-size: $font-size-24;
|
|
106
90
|
line-height: 1.4;
|
|
107
91
|
font-weight: $font-weight-semibold;
|
|
108
|
-
|
|
109
|
-
color: var(--color-text-header);
|
|
110
|
-
}
|
|
92
|
+
color: var(--color-text-header);
|
|
111
93
|
@include mo {
|
|
112
94
|
font-size: $font-size-18;
|
|
113
95
|
}
|
|
@@ -117,9 +99,7 @@
|
|
|
117
99
|
font-size: $font-size-20;
|
|
118
100
|
line-height: 1.6;
|
|
119
101
|
font-weight: $font-weight-semibold;
|
|
120
|
-
|
|
121
|
-
color: var(--color-text-header);
|
|
122
|
-
}
|
|
102
|
+
color: var(--color-text-header);
|
|
123
103
|
@include mo {
|
|
124
104
|
font-size: $font-size-16;
|
|
125
105
|
}
|
|
@@ -131,9 +111,7 @@
|
|
|
131
111
|
font-size: $font-size-24;
|
|
132
112
|
line-height: 1.4;
|
|
133
113
|
font-weight: $font-weight-regular;
|
|
134
|
-
|
|
135
|
-
color: var(--color-text-body);
|
|
136
|
-
}
|
|
114
|
+
color: var(--color-text-body);
|
|
137
115
|
@include mo {
|
|
138
116
|
font-size: $font-size-20;
|
|
139
117
|
}
|
|
@@ -142,9 +120,7 @@
|
|
|
142
120
|
font-size: $font-size-20;
|
|
143
121
|
line-height: 1.6;
|
|
144
122
|
font-weight: $font-weight-regular;
|
|
145
|
-
|
|
146
|
-
color: var(--color-text-body);
|
|
147
|
-
}
|
|
123
|
+
color: var(--color-text-body);
|
|
148
124
|
@include mo {
|
|
149
125
|
font-size: $font-size-16;
|
|
150
126
|
}
|
|
@@ -153,9 +129,7 @@
|
|
|
153
129
|
font-size: $font-size-16;
|
|
154
130
|
line-height: 1.6;
|
|
155
131
|
font-weight: $font-weight-regular;
|
|
156
|
-
|
|
157
|
-
color: var(--color-text-body);
|
|
158
|
-
}
|
|
132
|
+
color: var(--color-text-body);
|
|
159
133
|
@include mo {
|
|
160
134
|
font-size: $font-size-14;
|
|
161
135
|
}
|
|
@@ -165,9 +139,7 @@
|
|
|
165
139
|
font-size: $font-size-16;
|
|
166
140
|
line-height: 1.6;
|
|
167
141
|
font-weight: $font-weight-semibold;
|
|
168
|
-
|
|
169
|
-
color: var(--color-text-body);
|
|
170
|
-
}
|
|
142
|
+
color: var(--color-text-body);
|
|
171
143
|
@include mo {
|
|
172
144
|
font-size: $font-size-14;
|
|
173
145
|
}
|
|
@@ -176,9 +148,7 @@
|
|
|
176
148
|
font-size: $font-size-14;
|
|
177
149
|
line-height: 1.6;
|
|
178
150
|
font-weight: $font-weight-regular;
|
|
179
|
-
|
|
180
|
-
color: var(--color-text-body);
|
|
181
|
-
}
|
|
151
|
+
color: var(--color-text-body);
|
|
182
152
|
@include mo {
|
|
183
153
|
font-size: $font-size-12;
|
|
184
154
|
}
|
|
@@ -187,9 +157,7 @@
|
|
|
187
157
|
font-size: $font-size-14;
|
|
188
158
|
line-height: 1.6;
|
|
189
159
|
font-weight: $font-weight-semibold;
|
|
190
|
-
|
|
191
|
-
color: var(--color-text-body);
|
|
192
|
-
}
|
|
160
|
+
color: var(--color-text-body);
|
|
193
161
|
@include mo {
|
|
194
162
|
font-size: $font-size-12;
|
|
195
163
|
}
|
|
@@ -198,15 +166,11 @@
|
|
|
198
166
|
font-size: $font-size-12;
|
|
199
167
|
line-height: 1.6;
|
|
200
168
|
font-weight: $font-weight-regular;
|
|
201
|
-
|
|
202
|
-
color: var(--color-text-body);
|
|
203
|
-
}
|
|
169
|
+
color: var(--color-text-body);
|
|
204
170
|
}
|
|
205
171
|
@mixin p5-semibold {
|
|
206
172
|
font-size: $font-size-12;
|
|
207
173
|
line-height: 1.6;
|
|
208
174
|
font-weight: 600;
|
|
209
|
-
|
|
210
|
-
color: var(--color-text-body);
|
|
211
|
-
}
|
|
175
|
+
color: var(--color-text-body);
|
|
212
176
|
}
|