@harperfast/harper 5.2.1 → 5.2.2
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/bin/copyDb.ts +19 -7
- package/components/deploymentRecorder.ts +102 -11
- package/components/operations.js +4 -0
- package/config/configUtils.ts +66 -11
- package/config/harperConfigEnvVars.ts +114 -17
- package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializePaths.js +4 -4
- package/dist/bin/copyDb.js +20 -7
- package/dist/bin/copyDb.js.map +1 -1
- package/dist/components/deploymentRecorder.d.ts +6 -0
- package/dist/components/deploymentRecorder.js +94 -12
- package/dist/components/deploymentRecorder.js.map +1 -1
- package/dist/components/operations.js +4 -0
- package/dist/components/operations.js.map +1 -1
- package/dist/config/configUtils.d.ts +6 -0
- package/dist/config/configUtils.js +65 -9
- package/dist/config/configUtils.js.map +1 -1
- package/dist/config/harperConfigEnvVars.js +108 -16
- package/dist/config/harperConfigEnvVars.js.map +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializePaths.js +4 -4
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializePaths.js.map +1 -1
- package/dist/resources/DatabaseTransaction.d.ts +2 -0
- package/dist/resources/DatabaseTransaction.js +6 -5
- package/dist/resources/DatabaseTransaction.js.map +1 -1
- package/dist/resources/Table.d.ts +2 -1
- package/dist/resources/Table.js +66 -16
- package/dist/resources/Table.js.map +1 -1
- package/dist/resources/auditStore.js +27 -1
- package/dist/resources/auditStore.js.map +1 -1
- package/dist/resources/indexes/HierarchicalNavigableSmallWorld.d.ts +15 -2
- package/dist/resources/indexes/HierarchicalNavigableSmallWorld.js +128 -39
- package/dist/resources/indexes/HierarchicalNavigableSmallWorld.js.map +1 -1
- package/dist/resources/search.d.ts +1 -1
- package/dist/resources/search.js +7 -3
- package/dist/resources/search.js.map +1 -1
- package/dist/server/threads/manageThreads.js +8 -0
- package/dist/server/threads/manageThreads.js.map +1 -1
- package/dist/sqlEngine/parser/normalizer.js +37 -9
- package/dist/sqlEngine/parser/normalizer.js.map +1 -1
- package/dist/utility/environment/environmentManager.d.ts +11 -0
- package/dist/utility/environment/environmentManager.js +154 -0
- package/dist/utility/environment/environmentManager.js.map +1 -1
- package/dist/utility/lmdb/environmentUtility.js +2 -1
- package/dist/utility/lmdb/environmentUtility.js.map +1 -1
- package/npm-shrinkwrap.json +13 -7
- package/package.json +2 -2
- package/resources/DESIGN.md +1 -0
- package/resources/DatabaseTransaction.ts +7 -5
- package/resources/Table.ts +77 -16
- package/resources/auditStore.ts +32 -1
- package/resources/indexes/HierarchicalNavigableSmallWorld.ts +119 -45
- package/resources/search.ts +8 -3
- package/server/threads/manageThreads.js +8 -0
- package/studio/web/assets/{Chat-aApwhRmz.js → Chat-BMUjPklt.js} +5 -5
- package/studio/web/assets/{Chat-aApwhRmz.js.map → Chat-BMUjPklt.js.map} +1 -1
- package/studio/web/assets/{FloatingChat-sC0H91n9.js → FloatingChat-Cbghuxe5.js} +5 -5
- package/studio/web/assets/{FloatingChat-sC0H91n9.js.map → FloatingChat-Cbghuxe5.js.map} +1 -1
- package/studio/web/assets/{apiToken-DZ8JhHOI.js → apiToken-CkgTQAqc.js} +2 -2
- package/studio/web/assets/{apiToken-DZ8JhHOI.js.map → apiToken-CkgTQAqc.js.map} +1 -1
- package/studio/web/assets/{applications-9SEVLIO5.js → applications-WvF4NOTN.js} +13 -13
- package/studio/web/assets/applications-WvF4NOTN.js.map +1 -0
- package/studio/web/assets/chevron-right-anDJCGlp.js +2 -0
- package/studio/web/assets/chevron-right-anDJCGlp.js.map +1 -0
- package/studio/web/assets/index-CDeqVx71.css +1 -0
- package/studio/web/assets/index-Sevt3MVx.js +819 -0
- package/studio/web/assets/index-Sevt3MVx.js.map +1 -0
- package/studio/web/assets/index.lazy-Dg5YYPGg.js +14 -0
- package/studio/web/assets/{index.lazy-CN1zq4I4.js.map → index.lazy-Dg5YYPGg.js.map} +1 -1
- package/studio/web/assets/{jsonMode-Cjj7dtlr.js → jsonMode-CBSEleE7.js} +2 -2
- package/studio/web/assets/{jsonMode-Cjj7dtlr.js.map → jsonMode-CBSEleE7.js.map} +1 -1
- package/studio/web/assets/languageServices-gxedeeTo.js +2 -0
- package/studio/web/assets/languageServices-gxedeeTo.js.map +1 -0
- package/studio/web/assets/{notifications-BFAF07xr.js → notifications-Ap84YyQp.js} +2 -2
- package/studio/web/assets/{notifications-BFAF07xr.js.map → notifications-Ap84YyQp.js.map} +1 -1
- package/studio/web/assets/notifications-vehqyOLM.js +2 -0
- package/studio/web/assets/{notifications-CKlYVvVN.js.map → notifications-vehqyOLM.js.map} +1 -1
- package/studio/web/assets/{pollUnlessForbidden-HHdQZW1N.js → pollUnlessForbidden-BhzefVRn.js} +2 -2
- package/studio/web/assets/pollUnlessForbidden-BhzefVRn.js.map +1 -0
- package/studio/web/assets/{profile-A1zhEdFG.js → profile-DzDpRLHY.js} +2 -2
- package/studio/web/assets/{profile-A1zhEdFG.js.map → profile-DzDpRLHY.js.map} +1 -1
- package/studio/web/assets/queryClient-CgtkoiCY.js +2 -0
- package/studio/web/assets/queryClient-CgtkoiCY.js.map +1 -0
- package/studio/web/assets/regions-DpJ8s7iN.js +2 -0
- package/studio/web/assets/regions-DpJ8s7iN.js.map +1 -0
- package/studio/web/assets/register-BDy01-q3.js +3 -0
- package/studio/web/assets/register-BDy01-q3.js.map +1 -0
- package/studio/web/assets/register-CQHRwNP4.js +3 -0
- package/studio/web/assets/register-CQHRwNP4.js.map +1 -0
- package/studio/web/assets/{setComponentFile-SEtBt_GV.js → setComponentFile-D0aPcI3W.js} +2 -2
- package/studio/web/assets/{setComponentFile-SEtBt_GV.js.map → setComponentFile-D0aPcI3W.js.map} +1 -1
- package/studio/web/assets/setup-I15FAF9H.js +3 -0
- package/studio/web/assets/{setup-BisINqdH.js.map → setup-I15FAF9H.js.map} +1 -1
- package/studio/web/assets/status-BF1eJshJ.js +62 -0
- package/studio/web/assets/status-BF1eJshJ.js.map +1 -0
- package/studio/web/assets/{swagger-ui-react-CAi_s1PC.js → swagger-ui-react-DwSPXXhl.js} +2 -2
- package/studio/web/assets/{swagger-ui-react-CAi_s1PC.js.map → swagger-ui-react-DwSPXXhl.js.map} +1 -1
- package/studio/web/assets/{textarea-DhLMZ3PA.js → table-DpOjNQHt.js} +2 -10
- package/studio/web/assets/table-DpOjNQHt.js.map +1 -0
- package/studio/web/assets/{tsMode-DT74tlkM.js → tsMode-Bu51A-VG.js} +2 -2
- package/studio/web/assets/{tsMode-DT74tlkM.js.map → tsMode-Bu51A-VG.js.map} +1 -1
- package/studio/web/assets/{useEntityRestURL-CGRGc1n7.js → useEntityRestURL-DrV1zMrN.js} +2 -2
- package/studio/web/assets/{useEntityRestURL-CGRGc1n7.js.map → useEntityRestURL-DrV1zMrN.js.map} +1 -1
- package/studio/web/index.html +6 -7
- package/utility/environment/environmentManager.ts +152 -0
- package/utility/lmdb/environmentUtility.ts +2 -1
- package/studio/web/assets/applications-9SEVLIO5.js.map +0 -1
- package/studio/web/assets/index-C8Mv9kHV.css +0 -1
- package/studio/web/assets/index-Dy3uDGXb.js +0 -809
- package/studio/web/assets/index-Dy3uDGXb.js.map +0 -1
- package/studio/web/assets/index.lazy-CN1zq4I4.js +0 -14
- package/studio/web/assets/notifications-CKlYVvVN.js +0 -2
- package/studio/web/assets/pollUnlessForbidden-HHdQZW1N.js.map +0 -1
- package/studio/web/assets/queryClient-CbA8wM7J.js +0 -2
- package/studio/web/assets/queryClient-CbA8wM7J.js.map +0 -1
- package/studio/web/assets/setup-BisINqdH.js +0 -3
- package/studio/web/assets/status-BuQoCc7l.js +0 -62
- package/studio/web/assets/status-BuQoCc7l.js.map +0 -1
- package/studio/web/assets/textarea-DhLMZ3PA.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"textarea-DhLMZ3PA.js","names":["__iconNode","__iconNode"],"sources":["../../node_modules/.pnpm/lucide-react@1.26.0_react@19.2.8/node_modules/lucide-react/dist/esm/icons/arrow-up-down.mjs","../../node_modules/.pnpm/lucide-react@1.26.0_react@19.2.8/node_modules/lucide-react/dist/esm/icons/grip-vertical.mjs","../../node_modules/.pnpm/lucide-react@1.26.0_react@19.2.8/node_modules/lucide-react/dist/esm/icons/pencil.mjs","../../src/components/ui/table.tsx","../../src/components/ui/textarea.tsx"],"sourcesContent":["/**\n * @license lucide-react v1.26.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"path\", { d: \"m21 16-4 4-4-4\", key: \"f6ql7i\" }],\n [\"path\", { d: \"M17 20V4\", key: \"1ejh1v\" }],\n [\"path\", { d: \"m3 8 4-4 4 4\", key: \"11wl7u\" }],\n [\"path\", { d: \"M7 4v16\", key: \"1glfcx\" }]\n];\nconst ArrowUpDown = createLucideIcon(\"arrow-up-down\", __iconNode);\n\nexport { __iconNode, ArrowUpDown as default };\n//# sourceMappingURL=arrow-up-down.mjs.map\n","/**\n * @license lucide-react v1.26.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"circle\", { cx: \"9\", cy: \"12\", r: \"1\", key: \"1vctgf\" }],\n [\"circle\", { cx: \"9\", cy: \"5\", r: \"1\", key: \"hp0tcf\" }],\n [\"circle\", { cx: \"9\", cy: \"19\", r: \"1\", key: \"fkjjf6\" }],\n [\"circle\", { cx: \"15\", cy: \"12\", r: \"1\", key: \"1tmaij\" }],\n [\"circle\", { cx: \"15\", cy: \"5\", r: \"1\", key: \"19l28e\" }],\n [\"circle\", { cx: \"15\", cy: \"19\", r: \"1\", key: \"f4zoj3\" }]\n];\nconst GripVertical = createLucideIcon(\"grip-vertical\", __iconNode);\n\nexport { __iconNode, GripVertical as default };\n//# sourceMappingURL=grip-vertical.mjs.map\n","/**\n * @license lucide-react v1.26.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z\",\n key: \"1a8usu\"\n }\n ],\n [\"path\", { d: \"m15 5 4 4\", key: \"1mk7zo\" }]\n];\nconst Pencil = createLucideIcon(\"pencil\", __iconNode);\n\nexport { __iconNode, Pencil as default };\n//# sourceMappingURL=pencil.mjs.map\n","import { Button } from '@/components/ui/button';\nimport { cn } from '@/lib/cn';\nimport { flexRender, Header, RowData } from '@tanstack/react-table';\nimport { ArrowDown, ArrowUp, ArrowUpDown, GripVerticalIcon } from 'lucide-react';\nimport * as React from 'react';\nimport { useCallback } from 'react';\n\n// Upper bound for double-click auto-fit so a very long value (e.g. a stringified object) can't\n// stretch a column across the whole viewport.\nconst AUTO_FIT_MAX_SIZE = 500;\n// Horizontal cell padding (px-2 => 8px each side) added back after measuring bare content.\nconst CELL_HORIZONTAL_PADDING = 16;\n// Width of the right-edge resize handle strip; reserved when auto-fitting so it never overlaps the title.\nconst RESIZE_HANDLE_WIDTH = 16;\n\nexport interface TableProps extends React.ComponentProps<'table'> {\n\tcontainerClassName?: string;\n\tcontainerRef?: React.Ref<HTMLDivElement>;\n}\n\nexport function Table({ className, containerClassName, containerRef, ...props }: TableProps) {\n\treturn (\n\t\t<div\n\t\t\tref={containerRef}\n\t\t\tdata-slot=\"table-container\"\n\t\t\tclassName={cn('relative w-full overflow-x-auto', containerClassName)}\n\t\t>\n\t\t\t<table data-slot=\"table\" className={cn('w-full caption-bottom text-sm', className)} {...props} />\n\t\t</div>\n\t);\n}\n\nexport function TableHeader({ className, ...props }: React.ComponentProps<'thead'>) {\n\treturn <thead data-slot=\"table-header\" className={cn('[&_tr]:border-b', className)} {...props} />;\n}\n\nexport function TableBody({ className, ...props }: React.ComponentProps<'tbody'>) {\n\treturn <tbody data-slot=\"table-body\" className={cn('[&_tr:last-child]:border-0', className)} {...props} />;\n}\n\nexport function TableFooter({ className, ...props }: React.ComponentProps<'tfoot'>) {\n\treturn (\n\t\t<tfoot\n\t\t\tdata-slot=\"table-footer\"\n\t\t\tclassName={cn('bg-muted/50 border-t font-medium [&>tr]:last:border-b-0', className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport function TableRow({ className, ...props }: React.ComponentProps<'tr'>) {\n\treturn (\n\t\t<tr\n\t\t\tdata-slot=\"table-row\"\n\t\t\tclassName={cn('border-b border-grey-700 transition-colors', className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport function TableHead({ className, ...props }: React.ComponentProps<'th'>) {\n\treturn (\n\t\t<th\n\t\t\tdata-slot=\"table-head\"\n\t\t\tclassName={cn(\n\t\t\t\t'h-10 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport function TableHeadSortable<TData extends RowData>({\n\theader,\n\tonColumnClick,\n\tclassName,\n\t...props\n}: React.ComponentProps<'th'> & {\n\theader: Header<TData, unknown>;\n\tonColumnClick?: (accessorKey: string, willSortByAscending: boolean) => void;\n}) {\n\tconst onClickSort = useCallback(() => {\n\t\theader.column.toggleSorting(header.column.getIsSorted() === 'asc');\n\t\tconst willSortByAscending = header.column.getIsSorted() === false || header.column.getIsSorted() !== 'asc';\n\t\t// @ts-expect-error The accessorKey isn't accessible.\n\t\tonColumnClick?.(header.column.columnDef.accessorKey, willSortByAscending);\n\t}, [header, onColumnClick]);\n\tconst enableSorting = header.column.columnDef.enableSorting;\n\t// Only render resize handles for tables that explicitly opt in via `enableColumnResizing`.\n\t// TableHeadSortable is shared (e.g. SimpleBrowseDataTable), and TanStack's getCanResize()\n\t// defaults to enabled — so gating on getCanResize() alone would sprinkle handles onto every\n\t// table that uses this header, not just the browse table that wires up sizing + persistence.\n\tconst enableResizing = header.getContext().table.options.enableColumnResizing === true\n\t\t&& header.column.getCanResize();\n\tconst content = header.isPlaceholder ? null : flexRender(header.column.columnDef.header, header.getContext());\n\tconst table = header.getContext().table;\n\tconst size = header.getSize();\n\tconst minSize = header.column.columnDef.minSize ?? table.options.defaultColumn?.minSize ?? 20;\n\t// Double-click the handle to fit the column to its widest value rather than snapping back to the\n\t// default width. Content width is measured with a Range (the tight bounding box of the actual\n\t// text) so it works even when the cell is wider than its content; capped by AUTO_FIT_MAX_SIZE so\n\t// a huge value can't blow the column out.\n\tconst autoFitColumn = useCallback((e: React.MouseEvent<HTMLElement>) => {\n\t\tconst tableEl = e.currentTarget.closest('table');\n\t\tif (!tableEl) {\n\t\t\theader.column.resetSize();\n\t\t\treturn;\n\t\t}\n\t\tconst selector = `[data-col-id=\"${CSS.escape(header.column.id)}\"]`;\n\t\tconst range = document.createRange();\n\t\tconst measure = (el: Element) => {\n\t\t\trange.selectNodeContents(el);\n\t\t\treturn range.getBoundingClientRect().width;\n\t\t};\n\t\tlet widest = 0;\n\t\ttableEl.querySelectorAll(`tbody ${selector}`).forEach((cell) => {\n\t\t\twidest = Math.max(widest, measure(cell));\n\t\t});\n\t\t// The header's flex row fills the cell, so derive its intrinsic width from the title's own\n\t\t// text width plus the width of the sort/resize controls beside it. `controls` is measured as\n\t\t// (all children) - (current title box), which is invariant to the title being truncated.\n\t\tconst headerRow = tableEl.querySelector(`thead ${selector} > div`);\n\t\tconst titleEl = headerRow?.querySelector('.truncate');\n\t\tif (headerRow && titleEl) {\n\t\t\tconst childrenWidth = Array.from(headerRow.children).reduce(\n\t\t\t\t(sum, child) => sum + child.getBoundingClientRect().width,\n\t\t\t\t0,\n\t\t\t);\n\t\t\tconst controls = childrenWidth - titleEl.getBoundingClientRect().width;\n\t\t\twidest = Math.max(widest, measure(titleEl) + controls + RESIZE_HANDLE_WIDTH);\n\t\t}\n\t\tconst fitted = Math.min(Math.max(Math.ceil(widest) + CELL_HORIZONTAL_PADDING, minSize), AUTO_FIT_MAX_SIZE);\n\t\ttable.setColumnSizing((old) => ({ ...old, [header.column.id]: fitted }));\n\t}, [header, table, minSize]);\n\t// Clamp the resize preview so the handle stops at the column's min width instead of sliding left\n\t// across the title while dragging (the actual resize commits on release).\n\tconst previewOffset = header.column.getIsResizing()\n\t\t? Math.max(table.getState().columnSizingInfo.deltaOffset ?? 0, minSize - size)\n\t\t: 0;\n\treturn (\n\t\t<TableHead\n\t\t\t{...props}\n\t\t\tdata-col-id={header.column.id}\n\t\t\tstyle={{ width: `${size}px`, maxWidth: `${size}px` }}\n\t\t\t// relative (not overflow-hidden) so the absolute resize handle can render past the edge\n\t\t\t// while dragging; the inner content div does the truncation instead.\n\t\t\t// select-none on resizable headers so dragging the handle can't text-select the title.\n\t\t\tclassName={cn('relative', enableResizing && 'select-none', enableSorting ? 'px-0' : 'px-2', className)}\n\t\t>\n\t\t\t{/* pr leaves room for the right-edge resize handle so the title never sits under it. */}\n\t\t\t<div className={cn('flex items-center min-w-0 overflow-hidden', enableResizing && 'pr-4')}>\n\t\t\t\t{enableSorting\n\t\t\t\t\t? (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\tvariant=\"ghost\"\n\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t'rounded-none min-w-0',\n\t\t\t\t\t\t\t\t!header.column.getIsSorted() || header.column.getIsSorted() === 'asc'\n\t\t\t\t\t\t\t\t\t? 'cursor-n-resize'\n\t\t\t\t\t\t\t\t\t: 'cursor-s-resize',\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\tonClick={onClickSort}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<span className=\"truncate\">{content}</span>\n\t\t\t\t\t\t\t{header.column.getIsSorted() === 'asc'\n\t\t\t\t\t\t\t\t? <ArrowUp className=\"shrink-0\" />\n\t\t\t\t\t\t\t\t: header.column.getIsSorted() === 'desc'\n\t\t\t\t\t\t\t\t? <ArrowDown className=\"shrink-0\" />\n\t\t\t\t\t\t\t\t: <ArrowUpDown className=\"shrink-0 text-gray-600\" />}\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t)\n\t\t\t\t\t: <span className=\"truncate\">{content}</span>}\n\t\t\t</div>\n\t\t\t{enableResizing && (\n\t\t\t\t<div\n\t\t\t\t\taria-hidden\n\t\t\t\t\t// w-4 hit area (wider than the visible grip); text-muted-foreground so the grip is\n\t\t\t\t\t// visible at rest in both light and dark themes (was gray-600, near-invisible until hover).\n\t\t\t\t\tclassName=\"absolute top-0 right-0 z-10 flex h-full w-4 cursor-col-resize items-center justify-center text-muted-foreground hover:text-foreground\"\n\t\t\t\t\tonMouseDown={header.getResizeHandler()} // for desktop\n\t\t\t\t\tonTouchStart={header.getResizeHandler()} // for mobile\n\t\t\t\t\tonDoubleClick={autoFitColumn}\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\ttransform: header.column.getIsResizing() ? `translateX(${previewOffset}px)` : '',\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<GripVerticalIcon className=\"size-3.5\" />\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</TableHead>\n\t);\n}\n\nexport function TableCell({ className, ...props }: React.ComponentProps<'td'>) {\n\treturn (\n\t\t<td\n\t\t\tdata-slot=\"table-cell\"\n\t\t\tclassName={cn(\n\t\t\t\t'align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport function TableCaption({ className, ...props }: React.ComponentProps<'caption'>) {\n\treturn (\n\t\t<caption data-slot=\"table-caption\" className={cn('text-muted-foreground mt-4 text-sm', className)} {...props} />\n\t);\n}\n","import { cn } from '@/lib/cn';\nimport * as React from 'react';\n\nexport function Textarea({ className, ...props }: React.ComponentProps<'textarea'>) {\n\treturn (\n\t\t<textarea\n\t\t\tdata-slot=\"input\"\n\t\t\tclassName={cn(\n\t\t\t\t`border-input file:text-foreground placeholder:text-muted-foreground selection:bg-purple\n selection:text-primary-foreground\n dark:aria-invalid:outline-destructive dark:aria-invalid:ring-destructive/50 ring-ring/10\n dark:ring-ring/20 dark:outline-ring/40 outline-ring/50 aria-invalid:outline-destructive/60\n aria-invalid:ring-destructive/20 aria-invalid:border-destructive/60 dark:aria-invalid:border-destructive\n flex w-full min-w-0 rounded-md border bg-white text-foreground dark:bg-grey-700 dark:text-white px-3 py-2 text-base\n file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium\n focus-visible:ring-1 focus-visible:outline-none focus-visible:ring-purple disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50\n aria-invalid:focus-visible:ring-[1px] aria-invalid:focus-visible:outline-none md:text-sm dark:aria-invalid:focus-visible:ring-1`,\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n"],"x_google_ignoreList":[0,1,2],"mappings":"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"}
|