@tipp/ui 1.4.22 → 1.4.24

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.
Files changed (46) hide show
  1. package/dist/atoms/button.d.cts +1 -1
  2. package/dist/atoms/button.d.ts +1 -1
  3. package/dist/atoms/drawer.js +2 -2
  4. package/dist/atoms/index.cjs +26 -10
  5. package/dist/atoms/index.cjs.map +1 -1
  6. package/dist/atoms/index.js +25 -25
  7. package/dist/atoms/pagination.js +2 -2
  8. package/dist/atoms/text-area.cjs +14 -6
  9. package/dist/atoms/text-area.cjs.map +1 -1
  10. package/dist/atoms/text-area.js +1 -1
  11. package/dist/atoms/text-field.cjs +12 -4
  12. package/dist/atoms/text-field.cjs.map +1 -1
  13. package/dist/atoms/text-field.js +1 -1
  14. package/dist/chunk-4XU5PPNT.js +164 -0
  15. package/dist/chunk-4XU5PPNT.js.map +1 -0
  16. package/dist/chunk-7SOSBA77.js +40 -0
  17. package/dist/chunk-7SOSBA77.js.map +1 -0
  18. package/dist/chunk-AY53GMSH.js +350 -0
  19. package/dist/chunk-AY53GMSH.js.map +1 -0
  20. package/dist/chunk-C6EUIIKO.js +192 -0
  21. package/dist/chunk-C6EUIIKO.js.map +1 -0
  22. package/dist/chunk-EW6OPYEW.js +40 -0
  23. package/dist/chunk-EW6OPYEW.js.map +1 -0
  24. package/dist/chunk-SNHHJCBS.js +36 -0
  25. package/dist/chunk-SNHHJCBS.js.map +1 -0
  26. package/dist/chunk-UEELYPYP.js +40 -0
  27. package/dist/chunk-UEELYPYP.js.map +1 -0
  28. package/dist/chunk-VOQU7ZOV.js +36 -0
  29. package/dist/chunk-VOQU7ZOV.js.map +1 -0
  30. package/dist/chunk-XBI2YSRP.js +350 -0
  31. package/dist/chunk-XBI2YSRP.js.map +1 -0
  32. package/dist/chunk-YKVMEKVZ.js +36 -0
  33. package/dist/chunk-YKVMEKVZ.js.map +1 -0
  34. package/dist/index.cjs +26 -10
  35. package/dist/index.cjs.map +1 -1
  36. package/dist/index.js +37 -37
  37. package/dist/molecules/date-picker/index.js +2 -2
  38. package/dist/molecules/expand-table/index.js +14 -14
  39. package/dist/molecules/expand-table/row.js +13 -13
  40. package/dist/molecules/index.js +22 -22
  41. package/dist/molecules/learning-post.js +4 -4
  42. package/dist/molecules/navigation.js +13 -13
  43. package/dist/molecules/tag-selector.js +14 -14
  44. package/package.json +1 -1
  45. package/src/atoms/text-area.tsx +15 -9
  46. package/src/atoms/text-field.tsx +13 -3
@@ -0,0 +1,192 @@
1
+ import {
2
+ Row
3
+ } from "./chunk-PCWEW2UL.js";
4
+ import {
5
+ Spinner
6
+ } from "./chunk-FR2GDOU2.js";
7
+ import {
8
+ Pagination
9
+ } from "./chunk-3GR5ZATM.js";
10
+ import {
11
+ Flex
12
+ } from "./chunk-25HMMI7R.js";
13
+ import {
14
+ Typo
15
+ } from "./chunk-52MVZ6AN.js";
16
+ import {
17
+ TriangleArrowDownIcon
18
+ } from "./chunk-BSTJBBEX.js";
19
+ import {
20
+ TriangleArrowUpIcon
21
+ } from "./chunk-NDUKDKGB.js";
22
+
23
+ // src/molecules/expand-table/index.tsx
24
+ import {
25
+ flexRender,
26
+ getCoreRowModel,
27
+ useReactTable,
28
+ getSortedRowModel,
29
+ createColumnHelper,
30
+ getPaginationRowModel
31
+ } from "@tanstack/react-table";
32
+ import { useCallback, useMemo, useState } from "react";
33
+ import { jsx, jsxs } from "react/jsx-runtime";
34
+ function ExpandTable(props) {
35
+ const {
36
+ data,
37
+ columns,
38
+ ExpandComp,
39
+ placeholder,
40
+ onRowClick,
41
+ tableStyle,
42
+ showPagination,
43
+ isLoading,
44
+ pageIndex = 0,
45
+ pageSize = 10,
46
+ siblingCount = 2,
47
+ getRowStyle,
48
+ getCellStyle
49
+ } = props;
50
+ const defaultAlign = "left";
51
+ const [pagination, setPagination] = useState({
52
+ pageIndex: pageIndex || 0,
53
+ pageSize: pageSize || 9999
54
+ });
55
+ const [sorting, setSorting] = useState([]);
56
+ const { getRowModel, getHeaderGroups, setPageIndex } = useReactTable({
57
+ data: data || [],
58
+ columns,
59
+ getCoreRowModel: getCoreRowModel(),
60
+ getSortedRowModel: getSortedRowModel(),
61
+ state: {
62
+ sorting,
63
+ pagination
64
+ },
65
+ onSortingChange: setSorting,
66
+ getPaginationRowModel: getPaginationRowModel(),
67
+ onPaginationChange: setPagination
68
+ });
69
+ const gridTemplateColumns = useMemo(() => {
70
+ return columns.map((col) => {
71
+ var _a;
72
+ if ((_a = col.meta) == null ? void 0 : _a.autoSize)
73
+ return "1fr";
74
+ return `${col.size || 150}px`;
75
+ }).join(" ");
76
+ }, [columns]);
77
+ const rowModels = getRowModel();
78
+ const onChangePagination = useCallback(
79
+ (page) => {
80
+ setPageIndex(page - 1);
81
+ },
82
+ [setPageIndex]
83
+ );
84
+ const helpCompRender = useCallback(
85
+ (rowLength) => {
86
+ if (isLoading) {
87
+ return /* @__PURE__ */ jsx(
88
+ Flex,
89
+ {
90
+ align: "center",
91
+ height: "100%",
92
+ justify: "center",
93
+ p: "5",
94
+ width: "100%",
95
+ children: /* @__PURE__ */ jsx(Spinner, {})
96
+ }
97
+ );
98
+ }
99
+ if (rowLength === 0) {
100
+ return /* @__PURE__ */ jsx("div", { className: "tr", children: /* @__PURE__ */ jsx(Flex, { align: "center", justify: "center", children: placeholder || /* @__PURE__ */ jsx(Typo, { color: "gray", mb: "6", mt: "6", variant: "body", children: "\uB370\uC774\uD130\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4" }) }) }, "expand_placeholder");
101
+ }
102
+ return null;
103
+ },
104
+ [isLoading, placeholder]
105
+ );
106
+ const pageCount = useMemo(() => {
107
+ if (!data)
108
+ return 0;
109
+ return Math.ceil(data.length / pageSize);
110
+ }, [data, pageSize]);
111
+ return /* @__PURE__ */ jsxs("div", { className: "expand-table", style: tableStyle, children: [
112
+ /* @__PURE__ */ jsx("div", { className: "thead", children: getHeaderGroups().map((headerGroup) => /* @__PURE__ */ jsx(
113
+ "div",
114
+ {
115
+ className: "tr",
116
+ style: { gridTemplateColumns },
117
+ children: headerGroup.headers.map((header) => {
118
+ var _a;
119
+ const sortable = header.column.getCanSort();
120
+ const sortedState = header.column.getIsSorted();
121
+ const justifyContent = ((_a = header.column.columnDef.meta) == null ? void 0 : _a.align) || defaultAlign;
122
+ return /* @__PURE__ */ jsx("div", { className: `${justifyContent} th`, children: /* @__PURE__ */ jsxs(
123
+ "button",
124
+ {
125
+ onClick: header.column.getToggleSortingHandler(),
126
+ style: sortable ? { cursor: "pointer" } : { cursor: "default" },
127
+ type: "button",
128
+ children: [
129
+ /* @__PURE__ */ jsx(Typo, { as: "div", variant: "body", children: flexRender(
130
+ header.column.columnDef.header,
131
+ header.getContext()
132
+ ) }),
133
+ sortable ? /* @__PURE__ */ jsxs(
134
+ Flex,
135
+ {
136
+ direction: "column",
137
+ style: { marginLeft: "var(--space-2)" },
138
+ children: [
139
+ /* @__PURE__ */ jsx(
140
+ TriangleArrowUpIcon,
141
+ {
142
+ color: sortedState === "asc" ? "var(--iris-10)" : "var(--iris-6)"
143
+ }
144
+ ),
145
+ /* @__PURE__ */ jsx(
146
+ TriangleArrowDownIcon,
147
+ {
148
+ color: sortedState === "desc" ? "var(--iris-10)" : "var(--iris-6)"
149
+ }
150
+ )
151
+ ]
152
+ }
153
+ ) : null
154
+ ]
155
+ }
156
+ ) }, header.id);
157
+ })
158
+ },
159
+ headerGroup.id
160
+ )) }),
161
+ /* @__PURE__ */ jsx("div", { className: "tbody", children: helpCompRender(rowModels.rows.length) || rowModels.rows.map((row) => {
162
+ return /* @__PURE__ */ jsx(
163
+ Row,
164
+ {
165
+ ExpandComp,
166
+ defaultAlign,
167
+ getCellStyle,
168
+ getRowStyle,
169
+ gridTemplateColumns,
170
+ onRowClick,
171
+ row
172
+ },
173
+ `row_${row.id}`
174
+ );
175
+ }) }),
176
+ showPagination ? /* @__PURE__ */ jsx(Flex, { justify: "end", pt: "3", width: "100%", children: /* @__PURE__ */ jsx(
177
+ Pagination,
178
+ {
179
+ count: pageCount,
180
+ onChange: onChangePagination,
181
+ page: pagination.pageIndex + 1,
182
+ siblingCount
183
+ }
184
+ ) }) : null
185
+ ] });
186
+ }
187
+
188
+ export {
189
+ createColumnHelper,
190
+ ExpandTable
191
+ };
192
+ //# sourceMappingURL=chunk-C6EUIIKO.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/molecules/expand-table/index.tsx"],"sourcesContent":["import type {\n ColumnDef,\n SortingState,\n RowData,\n Row as RowType,\n PaginationState,\n} from '@tanstack/react-table';\nimport type { CSSProperties } from 'react';\nimport {\n flexRender,\n getCoreRowModel,\n useReactTable,\n getSortedRowModel,\n createColumnHelper,\n getPaginationRowModel,\n} from '@tanstack/react-table';\nimport React, { useCallback, useMemo, useState } from 'react';\nimport { Flex, Pagination, Spinner, Typo } from '../../atoms';\nimport { TriangleArrowDownIcon } from '../../icons/down';\nimport { TriangleArrowUpIcon } from '../../icons/up';\nimport { Row, type ExpandComp, type OnRowClick } from './row';\n\nexport type { ExpandComp, OnRowClick, ColumnDef, RowType as Row };\nexport { createColumnHelper };\n\nexport interface ExpandTableProps<Datum extends RowData> {\n /** 렌더할 데이터 배열 */\n data?: Datum[];\n /** 테이블 컬럼의 메타 데이터 */\n columns: ColumnDef<Datum>[];\n /** Row의 open이 true인 경우 하단의 collapse에 렌더할 컴포넌트 */\n ExpandComp?: ExpandComp<Datum>;\n /** 데이테가 없을 시 화면에 표시할 컴포넌트 */\n placeholder?: React.ReactNode;\n /** 행 클릭 시 실행할 콜백 */\n onRowClick?: OnRowClick<Datum>;\n getRowStyle?: (data: Datum) => CSSProperties;\n getCellStyle?: (data: Datum) => CSSProperties;\n tableStyle?: CSSProperties;\n isLoading?: boolean;\n\n /** pagination - 표시 유무 */\n showPagination?: boolean;\n /** pagination - 현재 선택된 페이지, 0부터 시작 */\n pageIndex?: number;\n /** pagination - 한 페이지에 표시될 컬럼 개수 */\n pageSize?: number;\n /** pagination - */\n siblingCount?: number;\n}\n\nexport function ExpandTable<Datum extends RowData>(\n props: ExpandTableProps<Datum>\n): React.ReactNode {\n const {\n data,\n columns,\n ExpandComp,\n placeholder,\n onRowClick,\n tableStyle,\n showPagination,\n isLoading,\n pageIndex = 0,\n pageSize = 10,\n siblingCount = 2,\n getRowStyle,\n getCellStyle,\n } = props;\n const defaultAlign = 'left';\n const [pagination, setPagination] = useState<PaginationState>({\n pageIndex: pageIndex || 0,\n pageSize: pageSize || 9999,\n });\n\n const [sorting, setSorting] = useState<SortingState>([]);\n const { getRowModel, getHeaderGroups, setPageIndex } = useReactTable({\n data: data || [],\n columns,\n getCoreRowModel: getCoreRowModel(),\n getSortedRowModel: getSortedRowModel(),\n state: {\n sorting,\n pagination,\n },\n onSortingChange: setSorting,\n getPaginationRowModel: getPaginationRowModel(),\n onPaginationChange: setPagination,\n });\n\n const gridTemplateColumns = useMemo<string>(() => {\n return columns\n .map((col) => {\n if (col.meta?.autoSize) return '1fr';\n return `${col.size || 150}px`;\n })\n .join(' ');\n }, [columns]);\n\n const rowModels = getRowModel();\n\n const onChangePagination = useCallback(\n (page: number) => {\n setPageIndex(page - 1);\n },\n [setPageIndex]\n );\n\n const helpCompRender = useCallback(\n (rowLength: number) => {\n if (isLoading) {\n return (\n <Flex\n align=\"center\"\n height=\"100%\"\n justify=\"center\"\n p=\"5\"\n width=\"100%\"\n >\n <Spinner />\n </Flex>\n );\n }\n if (rowLength === 0) {\n return (\n <div className=\"tr\" key=\"expand_placeholder\">\n <Flex align=\"center\" justify=\"center\">\n {placeholder || (\n <Typo color=\"gray\" mb=\"6\" mt=\"6\" variant=\"body\">\n 데이터가 없습니다\n </Typo>\n )}\n </Flex>\n </div>\n );\n }\n return null;\n },\n [isLoading, placeholder]\n );\n\n const pageCount = useMemo(() => {\n if (!data) return 0;\n return Math.ceil(data.length / pageSize);\n }, [data, pageSize]);\n\n return (\n <div className=\"expand-table\" style={tableStyle}>\n <div className=\"thead\">\n {getHeaderGroups().map((headerGroup) => (\n <div\n className=\"tr\"\n key={headerGroup.id}\n style={{ gridTemplateColumns }}\n >\n {headerGroup.headers.map((header) => {\n const sortable = header.column.getCanSort();\n const sortedState = header.column.getIsSorted();\n const justifyContent =\n header.column.columnDef.meta?.align || defaultAlign;\n\n return (\n <div className={`${justifyContent} th`} key={header.id}>\n <button\n onClick={header.column.getToggleSortingHandler()}\n style={\n sortable ? { cursor: 'pointer' } : { cursor: 'default' }\n }\n type=\"button\"\n >\n <Typo as=\"div\" variant=\"body\">\n {flexRender(\n header.column.columnDef.header,\n header.getContext()\n )}\n </Typo>\n {sortable ? (\n <Flex\n direction=\"column\"\n style={{ marginLeft: 'var(--space-2)' }}\n >\n <TriangleArrowUpIcon\n color={\n sortedState === 'asc'\n ? 'var(--iris-10)'\n : 'var(--iris-6)'\n }\n />\n <TriangleArrowDownIcon\n color={\n sortedState === 'desc'\n ? 'var(--iris-10)'\n : 'var(--iris-6)'\n }\n />\n </Flex>\n ) : null}\n </button>\n </div>\n );\n })}\n </div>\n ))}\n </div>\n <div className=\"tbody\">\n {/* 조건에 따라 placeholder 또는 loading 렌더*/}\n {helpCompRender(rowModels.rows.length) ||\n rowModels.rows.map((row) => {\n return (\n <Row\n ExpandComp={ExpandComp}\n defaultAlign={defaultAlign}\n getCellStyle={getCellStyle}\n getRowStyle={getRowStyle}\n gridTemplateColumns={gridTemplateColumns}\n key={`row_${row.id}`}\n onRowClick={onRowClick}\n row={row}\n />\n );\n })}\n </div>\n\n {showPagination ? (\n <Flex justify=\"end\" pt=\"3\" width=\"100%\">\n <Pagination\n count={pageCount}\n onChange={onChangePagination}\n page={pagination.pageIndex + 1}\n siblingCount={siblingCount}\n />\n </Flex>\n ) : null}\n </div>\n );\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,40 @@
1
+ import {
2
+ __objRest,
3
+ __spreadProps,
4
+ __spreadValues
5
+ } from "./chunk-N552FDTV.js";
6
+
7
+ // src/atoms/text-area.tsx
8
+ import {
9
+ TextArea as RTextArea
10
+ } from "@radix-ui/themes";
11
+ import { forwardRef, useMemo } from "react";
12
+ import { jsx } from "react/jsx-runtime";
13
+ var TextArea = forwardRef(
14
+ (props, ref) => {
15
+ const _a = props, { error, style, className } = _a, rest = __objRest(_a, ["error", "style", "className"]);
16
+ const fieldStyle = useMemo(() => {
17
+ if (!error)
18
+ return style;
19
+ const errorStyle = {
20
+ boxShadow: "inset 0 0 0 var(--text-area-border-width) var(--error-11)"
21
+ };
22
+ return __spreadValues(__spreadValues({}, style || {}), errorStyle);
23
+ }, [error, style]);
24
+ const classNameStr = error ? `error ${className}` : className;
25
+ return /* @__PURE__ */ jsx(
26
+ RTextArea,
27
+ __spreadProps(__spreadValues({}, rest), {
28
+ className: classNameStr,
29
+ ref,
30
+ style: fieldStyle
31
+ })
32
+ );
33
+ }
34
+ );
35
+ TextArea.displayName = "TextArea";
36
+
37
+ export {
38
+ TextArea
39
+ };
40
+ //# sourceMappingURL=chunk-EW6OPYEW.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/atoms/text-area.tsx"],"sourcesContent":["import {\n TextArea as RTextArea,\n type TextAreaProps as RTextAreaProps,\n} from '@radix-ui/themes';\nimport { forwardRef, useMemo } from 'react';\n\ntype TextAreaProps = RTextAreaProps & {\n error?: boolean;\n};\n\nconst TextArea = forwardRef<HTMLTextAreaElement, TextAreaProps>(\n (props, ref) => {\n const { error, style, className, ...rest } = props;\n const fieldStyle = useMemo(() => {\n if (!error) return style;\n const errorStyle = {\n boxShadow: 'inset 0 0 0 var(--text-area-border-width) var(--error-11)',\n };\n\n return { ...(style || {}), ...errorStyle };\n }, [error, style]);\n\n const classNameStr = error ? `error ${className}` : className;\n\n return (\n <RTextArea\n {...rest}\n className={classNameStr}\n ref={ref}\n style={fieldStyle}\n />\n );\n }\n);\n\nTextArea.displayName = 'TextArea';\n\nexport { TextArea, type TextAreaProps };\n"],"mappings":";;;;;;;AAAA;AAAA,EACE,YAAY;AAAA,OAEP;AACP,SAAS,YAAY,eAAe;AAqB9B;AAfN,IAAM,WAAW;AAAA,EACf,CAAC,OAAO,QAAQ;AACd,UAA6C,YAArC,SAAO,OAAO,UAZ1B,IAYiD,IAAT,iBAAS,IAAT,CAA5B,SAAO,SAAO;AACtB,UAAM,aAAa,QAAQ,MAAM;AAC/B,UAAI,CAAC;AAAO,eAAO;AACnB,YAAM,aAAa;AAAA,QACjB,WAAW;AAAA,MACb;AAEA,aAAO,kCAAM,SAAS,CAAC,IAAO;AAAA,IAChC,GAAG,CAAC,OAAO,KAAK,CAAC;AAEjB,UAAM,eAAe,QAAQ,SAAS,SAAS,KAAK;AAEpD,WACE;AAAA,MAAC;AAAA,uCACK,OADL;AAAA,QAEC,WAAW;AAAA,QACX;AAAA,QACA,OAAO;AAAA;AAAA,IACT;AAAA,EAEJ;AACF;AAEA,SAAS,cAAc;","names":[]}
@@ -0,0 +1,36 @@
1
+ import {
2
+ __objRest,
3
+ __spreadValues
4
+ } from "./chunk-N552FDTV.js";
5
+
6
+ // src/atoms/text-field.tsx
7
+ import { TextField as RTextField } from "@radix-ui/themes";
8
+ import { forwardRef, useMemo } from "react";
9
+ import { jsx } from "react/jsx-runtime";
10
+ var Root = forwardRef((props, ref) => {
11
+ const _a = props, { error, style, className } = _a, rest = __objRest(_a, ["error", "style", "className"]);
12
+ const fieldStyle = useMemo(() => {
13
+ if (!style && !error)
14
+ return void 0;
15
+ const errorStyle = {
16
+ boxShadow: "inset 0 0 0 var(--text-field-border-width) var(--error-11)"
17
+ };
18
+ return __spreadValues(__spreadValues({}, style || {}), errorStyle);
19
+ }, [error, style]);
20
+ const classNameStr = error ? `error ${className}` : className;
21
+ return /* @__PURE__ */ jsx(
22
+ RTextField.Root,
23
+ __spreadValues({
24
+ className: classNameStr,
25
+ ref,
26
+ style: fieldStyle
27
+ }, rest)
28
+ );
29
+ });
30
+ Root.displayName = "TextField.Root";
31
+ var TextField = { Root, Slot: RTextField.Slot };
32
+
33
+ export {
34
+ TextField
35
+ };
36
+ //# sourceMappingURL=chunk-SNHHJCBS.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/atoms/text-field.tsx"],"sourcesContent":["import { TextField as RTextField } from '@radix-ui/themes';\nimport { forwardRef, useMemo } from 'react';\n\ntype RSlotProps = RTextField.SlotProps;\n\ntype RootProps = RTextField.RootProps & { error?: boolean };\n\nconst Root = forwardRef<\n HTMLInputElement,\n RTextField.RootProps & { error?: boolean }\n>((props, ref) => {\n const { error, style, className, ...rest } = props;\n\n const fieldStyle = useMemo(() => {\n if (!style && !error) return undefined;\n const errorStyle = {\n boxShadow: 'inset 0 0 0 var(--text-field-border-width) var(--error-11)',\n };\n\n return { ...(style || {}), ...errorStyle };\n }, [error, style]);\n\n const classNameStr = error ? `error ${className}` : className;\n return (\n <RTextField.Root\n className={classNameStr}\n ref={ref}\n style={fieldStyle}\n {...rest}\n />\n );\n});\n\nRoot.displayName = 'TextField.Root';\n\nconst TextField = { Root, Slot: RTextField.Slot };\n\nexport { TextField };\nexport type { RootProps, RSlotProps as SlotProps };\n"],"mappings":";;;;;;AAAA,SAAS,aAAa,kBAAkB;AACxC,SAAS,YAAY,eAAe;AAuBhC;AAjBJ,IAAM,OAAO,WAGX,CAAC,OAAO,QAAQ;AAChB,QAA6C,YAArC,SAAO,OAAO,UAXxB,IAW+C,IAAT,iBAAS,IAAT,CAA5B,SAAO,SAAO;AAEtB,QAAM,aAAa,QAAQ,MAAM;AAC/B,QAAI,CAAC,SAAS,CAAC;AAAO,aAAO;AAC7B,UAAM,aAAa;AAAA,MACjB,WAAW;AAAA,IACb;AAEA,WAAO,kCAAM,SAAS,CAAC,IAAO;AAAA,EAChC,GAAG,CAAC,OAAO,KAAK,CAAC;AAEjB,QAAM,eAAe,QAAQ,SAAS,SAAS,KAAK;AACpD,SACE;AAAA,IAAC,WAAW;AAAA,IAAX;AAAA,MACC,WAAW;AAAA,MACX;AAAA,MACA,OAAO;AAAA,OACH;AAAA,EACN;AAEJ,CAAC;AAED,KAAK,cAAc;AAEnB,IAAM,YAAY,EAAE,MAAM,MAAM,WAAW,KAAK;","names":[]}
@@ -0,0 +1,40 @@
1
+ import {
2
+ __objRest,
3
+ __spreadProps,
4
+ __spreadValues
5
+ } from "./chunk-N552FDTV.js";
6
+
7
+ // src/atoms/text-area.tsx
8
+ import {
9
+ TextArea as RTextArea
10
+ } from "@radix-ui/themes";
11
+ import { forwardRef, useMemo } from "react";
12
+ import { jsx } from "react/jsx-runtime";
13
+ var TextArea = forwardRef(
14
+ (props, ref) => {
15
+ const _a = props, { error, style, className } = _a, rest = __objRest(_a, ["error", "style", "className"]);
16
+ const fieldStyle = useMemo(() => {
17
+ if (!style && !error)
18
+ return void 0;
19
+ const errorStyle = error ? {
20
+ boxShadow: "inset 0 0 0 var(--text-area-border-width) var(--error-11)"
21
+ } : {};
22
+ return __spreadValues(__spreadValues({}, style || {}), errorStyle);
23
+ }, [error, style]);
24
+ const classNameStr = error ? `error ${className}` : className;
25
+ return /* @__PURE__ */ jsx(
26
+ RTextArea,
27
+ __spreadProps(__spreadValues({}, rest), {
28
+ className: classNameStr,
29
+ ref,
30
+ style: fieldStyle
31
+ })
32
+ );
33
+ }
34
+ );
35
+ TextArea.displayName = "TextArea";
36
+
37
+ export {
38
+ TextArea
39
+ };
40
+ //# sourceMappingURL=chunk-UEELYPYP.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/atoms/text-area.tsx"],"sourcesContent":["import {\n TextArea as RTextArea,\n type TextAreaProps as RTextAreaProps,\n} from '@radix-ui/themes';\nimport { forwardRef, useMemo } from 'react';\n\ntype TextAreaProps = RTextAreaProps & {\n error?: boolean;\n};\n\nconst TextArea = forwardRef<HTMLTextAreaElement, TextAreaProps>(\n (props, ref) => {\n const { error, style, className, ...rest } = props;\n const fieldStyle = useMemo(() => {\n if (!style && !error) return undefined;\n const errorStyle = error\n ? {\n boxShadow:\n 'inset 0 0 0 var(--text-area-border-width) var(--error-11)',\n }\n : {};\n\n return { ...(style || {}), ...errorStyle };\n }, [error, style]);\n\n const classNameStr = error ? `error ${className}` : className;\n\n return (\n <RTextArea\n {...rest}\n className={classNameStr}\n ref={ref}\n style={fieldStyle}\n />\n );\n }\n);\n\nTextArea.displayName = 'TextArea';\n\nexport { TextArea, type TextAreaProps };\n"],"mappings":";;;;;;;AAAA;AAAA,EACE,YAAY;AAAA,OAEP;AACP,SAAS,YAAY,eAAe;AAwB9B;AAlBN,IAAM,WAAW;AAAA,EACf,CAAC,OAAO,QAAQ;AACd,UAA6C,YAArC,SAAO,OAAO,UAZ1B,IAYiD,IAAT,iBAAS,IAAT,CAA5B,SAAO,SAAO;AACtB,UAAM,aAAa,QAAQ,MAAM;AAC/B,UAAI,CAAC,SAAS,CAAC;AAAO,eAAO;AAC7B,YAAM,aAAa,QACf;AAAA,QACE,WACE;AAAA,MACJ,IACA,CAAC;AAEL,aAAO,kCAAM,SAAS,CAAC,IAAO;AAAA,IAChC,GAAG,CAAC,OAAO,KAAK,CAAC;AAEjB,UAAM,eAAe,QAAQ,SAAS,SAAS,KAAK;AAEpD,WACE;AAAA,MAAC;AAAA,uCACK,OADL;AAAA,QAEC,WAAW;AAAA,QACX;AAAA,QACA,OAAO;AAAA;AAAA,IACT;AAAA,EAEJ;AACF;AAEA,SAAS,cAAc;","names":[]}
@@ -0,0 +1,36 @@
1
+ import {
2
+ __objRest,
3
+ __spreadValues
4
+ } from "./chunk-N552FDTV.js";
5
+
6
+ // src/atoms/text-field.tsx
7
+ import { TextField as RTextField } from "@radix-ui/themes";
8
+ import { forwardRef, useMemo } from "react";
9
+ import { jsx } from "react/jsx-runtime";
10
+ var Root = forwardRef((props, ref) => {
11
+ const _a = props, { error, style, className } = _a, rest = __objRest(_a, ["error", "style", "className"]);
12
+ const fieldStyle = useMemo(() => {
13
+ if (!error)
14
+ return style;
15
+ const errorStyle = {
16
+ boxShadow: "inset 0 0 0 var(--text-field-border-width) var(--error-11)"
17
+ };
18
+ return __spreadValues(__spreadValues({}, style || {}), errorStyle);
19
+ }, [error, style]);
20
+ const classNameStr = error ? `error ${className}` : className;
21
+ return /* @__PURE__ */ jsx(
22
+ RTextField.Root,
23
+ __spreadValues({
24
+ className: classNameStr,
25
+ ref,
26
+ style: fieldStyle
27
+ }, rest)
28
+ );
29
+ });
30
+ Root.displayName = "TextField.Root";
31
+ var TextField = { Root, Slot: RTextField.Slot };
32
+
33
+ export {
34
+ TextField
35
+ };
36
+ //# sourceMappingURL=chunk-VOQU7ZOV.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/atoms/text-field.tsx"],"sourcesContent":["import { TextField as RTextField } from '@radix-ui/themes';\nimport { forwardRef, useMemo } from 'react';\n\ntype RSlotProps = RTextField.SlotProps;\n\ntype RootProps = RTextField.RootProps & { error?: boolean };\n\nconst Root = forwardRef<\n HTMLInputElement,\n RTextField.RootProps & { error?: boolean }\n>((props, ref) => {\n const { error, style, className, ...rest } = props;\n\n const fieldStyle = useMemo(() => {\n if (!error) return style;\n const errorStyle = {\n boxShadow: 'inset 0 0 0 var(--text-field-border-width) var(--error-11)',\n };\n\n return { ...(style || {}), ...errorStyle };\n }, [error, style]);\n\n const classNameStr = error ? `error ${className}` : className;\n return (\n <RTextField.Root\n className={classNameStr}\n ref={ref}\n style={fieldStyle}\n {...rest}\n />\n );\n});\n\nRoot.displayName = 'TextField.Root';\n\nconst TextField = { Root, Slot: RTextField.Slot };\n\nexport { TextField };\nexport type { RootProps, RSlotProps as SlotProps };\n"],"mappings":";;;;;;AAAA,SAAS,aAAa,kBAAkB;AACxC,SAAS,YAAY,eAAe;AAuBhC;AAjBJ,IAAM,OAAO,WAGX,CAAC,OAAO,QAAQ;AAChB,QAA6C,YAArC,SAAO,OAAO,UAXxB,IAW+C,IAAT,iBAAS,IAAT,CAA5B,SAAO,SAAO;AAEtB,QAAM,aAAa,QAAQ,MAAM;AAC/B,QAAI,CAAC;AAAO,aAAO;AACnB,UAAM,aAAa;AAAA,MACjB,WAAW;AAAA,IACb;AAEA,WAAO,kCAAM,SAAS,CAAC,IAAO;AAAA,EAChC,GAAG,CAAC,OAAO,KAAK,CAAC;AAEjB,QAAM,eAAe,QAAQ,SAAS,SAAS,KAAK;AACpD,SACE;AAAA,IAAC,WAAW;AAAA,IAAX;AAAA,MACC,WAAW;AAAA,MACX;AAAA,MACA,OAAO;AAAA,OACH;AAAA,EACN;AAEJ,CAAC;AAED,KAAK,cAAc;AAEnB,IAAM,YAAY,EAAE,MAAM,MAAM,WAAW,KAAK;","names":[]}