@mastra/playground-ui 52.0.0 → 53.0.0-alpha.1

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 (131) hide show
  1. package/dist/{command-C2XK36se.cjs → command-CUev1UxH.cjs} +2 -2
  2. package/dist/{command-C2XK36se.cjs.map → command-CUev1UxH.cjs.map} +1 -1
  3. package/dist/{command-ehL7-lrV.js → command-DWFd0d4c.js} +2 -2
  4. package/dist/{command-ehL7-lrV.js.map → command-DWFd0d4c.js.map} +1 -1
  5. package/dist/components/Breadcrumb.cjs.js +1 -1
  6. package/dist/components/Breadcrumb.cjs.js.map +1 -1
  7. package/dist/components/Breadcrumb.es.js +1 -1
  8. package/dist/components/Breadcrumb.es.js.map +1 -1
  9. package/dist/components/Command.cjs.js +1 -1
  10. package/dist/components/Command.es.js +1 -1
  11. package/dist/components/CommandPalette.cjs.js +2 -2
  12. package/dist/components/CommandPalette.es.js +2 -2
  13. package/dist/components/Composer.cjs.js +1 -1
  14. package/dist/components/Composer.es.js +1 -1
  15. package/dist/components/DataList.cjs.js +4 -4
  16. package/dist/components/DataList.es.js +4 -4
  17. package/dist/components/EnvironmentVariablesEditor.cjs.js +12 -23
  18. package/dist/components/EnvironmentVariablesEditor.cjs.js.map +1 -1
  19. package/dist/components/EnvironmentVariablesEditor.es.js +12 -23
  20. package/dist/components/EnvironmentVariablesEditor.es.js.map +1 -1
  21. package/dist/components/HorizontalBars.cjs.js +1 -1
  22. package/dist/components/HorizontalBars.es.js +1 -1
  23. package/dist/components/LogsDataList.cjs.js +2 -2
  24. package/dist/components/LogsDataList.es.js +2 -2
  25. package/dist/components/MainSidebar.cjs.js +1 -1
  26. package/dist/components/MainSidebar.es.js +1 -1
  27. package/dist/components/PageLayout.cjs.js +1 -1
  28. package/dist/components/PageLayout.es.js +1 -1
  29. package/dist/components/ScrollArea.cjs.js +1 -1
  30. package/dist/components/ScrollArea.es.js +1 -1
  31. package/dist/components/ThemeToggle.cjs.js +36 -10
  32. package/dist/components/ThemeToggle.cjs.js.map +1 -1
  33. package/dist/components/ThemeToggle.es.js +36 -10
  34. package/dist/components/ThemeToggle.es.js.map +1 -1
  35. package/dist/components/ThreadRail.cjs.js +1 -1
  36. package/dist/components/ThreadRail.es.js +1 -1
  37. package/dist/components/ai/task-list.cjs.js +1 -1
  38. package/dist/components/ai/task-list.es.js +1 -1
  39. package/dist/{data-list-CB-W-syo.cjs → data-list-B5Wicaoc.cjs} +7 -9
  40. package/dist/data-list-B5Wicaoc.cjs.map +1 -0
  41. package/dist/{data-list-DX6y3EFQ.js → data-list-BUK_v9ax.js} +7 -9
  42. package/dist/data-list-BUK_v9ax.js.map +1 -0
  43. package/dist/data-list-skeleton-BZR_Hkvj.cjs +38 -0
  44. package/dist/data-list-skeleton-BZR_Hkvj.cjs.map +1 -0
  45. package/dist/data-list-skeleton-BoaQlbOY.js +36 -0
  46. package/dist/data-list-skeleton-BoaQlbOY.js.map +1 -0
  47. package/dist/{data-list-top-cell-B4H5BBGd.cjs → data-list-top-cell-CIs1L8gy.cjs} +81 -99
  48. package/dist/data-list-top-cell-CIs1L8gy.cjs.map +1 -0
  49. package/dist/{data-list-top-cell-CDYczhpP.js → data-list-top-cell-D4-Hbz2H.js} +82 -99
  50. package/dist/data-list-top-cell-D4-Hbz2H.js.map +1 -0
  51. package/dist/domains/logs/components/logs-list-view.cjs.js +3 -3
  52. package/dist/domains/logs/components/logs-list-view.cjs.js.map +1 -1
  53. package/dist/domains/logs/components/logs-list-view.es.js +3 -3
  54. package/dist/domains/logs/components/logs-list-view.es.js.map +1 -1
  55. package/dist/domains/metrics/components/memory-card-view.cjs.js +1 -1
  56. package/dist/domains/metrics/components/memory-card-view.es.js +1 -1
  57. package/dist/domains/metrics/components/metrics-utils.cjs.js +1 -2
  58. package/dist/domains/metrics/components/metrics-utils.cjs.js.map +1 -1
  59. package/dist/domains/metrics/components/metrics-utils.es.js +1 -2
  60. package/dist/domains/metrics/components/metrics-utils.es.js.map +1 -1
  61. package/dist/domains/metrics/components/model-usage-cost-card-view.cjs.js +1 -1
  62. package/dist/domains/metrics/components/model-usage-cost-card-view.es.js +1 -1
  63. package/dist/domains/metrics/components/scores-card-view.cjs.js +1 -1
  64. package/dist/domains/metrics/components/scores-card-view.es.js +1 -1
  65. package/dist/domains/metrics/components/token-usage-by-agent-card-view.cjs.js +1 -1
  66. package/dist/domains/metrics/components/token-usage-by-agent-card-view.es.js +1 -1
  67. package/dist/domains/metrics/components/traces-volume-card-view.cjs.js +1 -1
  68. package/dist/domains/metrics/components/traces-volume-card-view.es.js +1 -1
  69. package/dist/domains/traces/components/traces-list-view.cjs.js +4 -4
  70. package/dist/domains/traces/components/traces-list-view.cjs.js.map +1 -1
  71. package/dist/domains/traces/components/traces-list-view.es.js +4 -4
  72. package/dist/domains/traces/components/traces-list-view.es.js.map +1 -1
  73. package/dist/ee/signals/components/entity-index-compact-grid.cjs.js +1 -1
  74. package/dist/ee/signals/components/entity-index-compact-grid.es.js +1 -1
  75. package/dist/ee/signals/components/entity-index-list.cjs.js +1 -1
  76. package/dist/ee/signals/components/entity-index-list.es.js +1 -1
  77. package/dist/ee/signals/components/trace-intelligence-entity-detail.cjs.js +1 -1
  78. package/dist/ee/signals/components/trace-intelligence-entity-detail.es.js +1 -1
  79. package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js +2 -2
  80. package/dist/ee/signals/components/trace-intelligence-entity-index.es.js +2 -2
  81. package/dist/ee/topics/components/topic-trace-summary-list.cjs.js +1 -1
  82. package/dist/ee/topics/components/topic-trace-summary-list.es.js +1 -1
  83. package/dist/hooks/use-debounced-value.cjs.js +17 -0
  84. package/dist/hooks/use-debounced-value.cjs.js.map +1 -0
  85. package/dist/hooks/use-debounced-value.d.ts +2 -0
  86. package/dist/hooks/use-debounced-value.es.js +13 -0
  87. package/dist/hooks/use-debounced-value.es.js.map +1 -0
  88. package/dist/{horizontal-bars-CV2XRu4w.cjs → horizontal-bars-CE1O-Y6G.cjs} +2 -2
  89. package/dist/{horizontal-bars-CV2XRu4w.cjs.map → horizontal-bars-CE1O-Y6G.cjs.map} +1 -1
  90. package/dist/{horizontal-bars-3vH3FLj3.js → horizontal-bars-DZ5J4TKv.js} +2 -2
  91. package/dist/{horizontal-bars-3vH3FLj3.js.map → horizontal-bars-DZ5J4TKv.js.map} +1 -1
  92. package/dist/{logs-data-list-CTnwPG40.cjs → logs-data-list-PExVAYf3.cjs} +2 -2
  93. package/dist/{logs-data-list-CTnwPG40.cjs.map → logs-data-list-PExVAYf3.cjs.map} +1 -1
  94. package/dist/{logs-data-list-btJapa0s.js → logs-data-list-VCTqogr3.js} +2 -2
  95. package/dist/{logs-data-list-btJapa0s.js.map → logs-data-list-VCTqogr3.js.map} +1 -1
  96. package/dist/{no-data-page-layout-CkhD1Xwb.js → no-data-page-layout-BB6l1JBu.js} +2 -2
  97. package/dist/no-data-page-layout-BB6l1JBu.js.map +1 -0
  98. package/dist/{no-data-page-layout-CBJ50ULk.cjs → no-data-page-layout-DxgToazD.cjs} +2 -2
  99. package/dist/no-data-page-layout-DxgToazD.cjs.map +1 -0
  100. package/dist/{scroll-area-D_-TyC0c.cjs → scroll-area-B1vdOFuC.cjs} +5 -5
  101. package/dist/{scroll-area-D_-TyC0c.cjs.map → scroll-area-B1vdOFuC.cjs.map} +1 -1
  102. package/dist/{scroll-area-DVSQTnjk.js → scroll-area-BiHnOfzg.js} +5 -5
  103. package/dist/{scroll-area-DVSQTnjk.js.map → scroll-area-BiHnOfzg.js.map} +1 -1
  104. package/dist/src/domains/metrics/components/metrics-utils.d.ts +0 -1
  105. package/dist/src/ds/components/Card/Card.d.ts +2 -2
  106. package/dist/src/ds/components/DataList/data-list-root.d.ts +10 -17
  107. package/dist/src/ds/components/DataList/data-list-skeleton.d.ts +7 -2
  108. package/dist/src/ds/components/DataList/data-list.d.ts +1 -1
  109. package/dist/src/ds/components/DataList/data-list.stories.d.ts +15 -41
  110. package/dist/src/ds/components/DataList/shared.d.ts +19 -24
  111. package/dist/src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-read-only-list.d.ts +1 -1
  112. package/dist/src/ds/components/LogsDataList/logs-data-list.stories.d.ts +0 -1
  113. package/dist/src/ds/components/ThemeToggle/theme-toggle.d.ts +25 -1
  114. package/dist/src/ds/components/ThemeToggle/theme-toggle.stories.d.ts +3 -0
  115. package/dist/src/hooks/use-debounced-value.d.ts +1 -0
  116. package/dist/style.css +113 -130
  117. package/dist/{traces-data-list-BeSOHzvZ.js → traces-data-list-BnK1mfZp.js} +3 -3
  118. package/dist/{traces-data-list-BeSOHzvZ.js.map → traces-data-list-BnK1mfZp.js.map} +1 -1
  119. package/dist/{traces-data-list-DwwFFIeq.cjs → traces-data-list-MX4shJfG.cjs} +3 -3
  120. package/dist/{traces-data-list-DwwFFIeq.cjs.map → traces-data-list-MX4shJfG.cjs.map} +1 -1
  121. package/package.json +7 -7
  122. package/dist/data-list-CB-W-syo.cjs.map +0 -1
  123. package/dist/data-list-DX6y3EFQ.js.map +0 -1
  124. package/dist/data-list-skeleton-C2R2CO9G.js +0 -34
  125. package/dist/data-list-skeleton-C2R2CO9G.js.map +0 -1
  126. package/dist/data-list-skeleton-hTX1b2Au.cjs +0 -36
  127. package/dist/data-list-skeleton-hTX1b2Au.cjs.map +0 -1
  128. package/dist/data-list-top-cell-B4H5BBGd.cjs.map +0 -1
  129. package/dist/data-list-top-cell-CDYczhpP.js.map +0 -1
  130. package/dist/no-data-page-layout-CBJ50ULk.cjs.map +0 -1
  131. package/dist/no-data-page-layout-CkhD1Xwb.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"EnvironmentVariablesEditor.cjs.js","sources":["../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-actions.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-context.ts","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-add-button.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-messages.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-duplicate-keys-error.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-paste-hint.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-read-only-empty.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-read-only-header.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-read-only-item.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-read-only-list.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-root.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-row.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-rows.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-upload-button.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-upload.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-upload-error.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor.tsx"],"sourcesContent":["import type { EnvironmentVariablesEditorActionsProps } from './environment-variables-editor.types';\nimport { cn } from '@/lib/utils';\n\nexport function EnvironmentVariablesEditorActions({ className, ...props }: EnvironmentVariablesEditorActionsProps) {\n return <div className={cn('flex flex-wrap items-center gap-2', className)} {...props} />;\n}\n","import { createContext, use } from 'react';\n\nimport type { EnvironmentVariablesEditorRowErrors } from './environment-variables-editor.types';\nimport type { EnvironmentVariablesEditorController } from '@/hooks/use-environment-variables-editor';\nimport type { EnvironmentVariableEntry } from '@/lib/env-file';\n\ntype EnvironmentVariablesEditorRenderController = Pick<\n EnvironmentVariablesEditorController<EnvironmentVariableEntry>,\n | 'rows'\n | 'uploadError'\n | 'fileInputRef'\n | 'hasDuplicateKeys'\n | 'updateRow'\n | 'removeRow'\n | 'handleFileUpload'\n | 'handlePaste'\n | 'getRowId'\n | 'isValueRevealed'\n | 'toggleValueVisibility'\n | 'rowHasDuplicateKey'\n> & {\n appendRow: () => void;\n};\n\nexport interface EnvironmentVariablesEditorContextValue {\n editor: EnvironmentVariablesEditorRenderController;\n disabled: boolean;\n readOnly: boolean;\n rowErrors?: EnvironmentVariablesEditorRowErrors;\n}\n\nexport const EnvironmentVariablesEditorContext = createContext<EnvironmentVariablesEditorContextValue | null>(null);\n\nexport const EnvironmentVariablesEditorReadOnlyListContext = createContext({\n showIcon: false,\n});\n\nexport function useEnvironmentVariablesEditorContext(componentName: string) {\n const context = use(EnvironmentVariablesEditorContext);\n\n if (!context) {\n throw new Error(`${componentName} must be used within EnvironmentVariablesEditor.Root`);\n }\n\n return context;\n}\n","import { PlusIcon } from 'lucide-react';\n\nimport { useEnvironmentVariablesEditorContext } from './environment-variables-editor-context';\nimport type { EnvironmentVariablesEditorAddButtonProps } from './environment-variables-editor.types';\nimport { Button } from '@/ds/components/Button';\nimport { cn } from '@/lib/utils';\n\nexport function EnvironmentVariablesEditorAddButton({\n className,\n children,\n ...props\n}: EnvironmentVariablesEditorAddButtonProps) {\n const { editor, disabled, readOnly } = useEnvironmentVariablesEditorContext('EnvironmentVariablesEditor.AddButton');\n\n if (readOnly) return null;\n\n return (\n <div className={cn('flex items-center gap-2', className)} {...props}>\n <span aria-hidden=\"true\" className=\"bg-border1 h-px flex-1\" />\n <Button type=\"button\" variant=\"ghost\" size=\"sm\" disabled={disabled} onClick={() => editor.appendRow()}>\n <PlusIcon />\n {children ?? 'Add Variable'}\n </Button>\n <span aria-hidden=\"true\" className=\"bg-border1 h-px flex-1\" />\n </div>\n );\n}\n","import type { EnvironmentVariablesEditorMessagesProps } from './environment-variables-editor.types';\nimport { Notice } from '@/ds/components/Notice';\n\nexport function EnvironmentVariablesEditorMessages({\n error,\n children,\n variant = 'destructive',\n ...props\n}: EnvironmentVariablesEditorMessagesProps) {\n const message = children ?? error;\n\n if (!message) return null;\n\n return (\n <Notice variant={variant} {...props}>\n <Notice.Message>{message}</Notice.Message>\n </Notice>\n );\n}\n","import { useEnvironmentVariablesEditorContext } from './environment-variables-editor-context';\nimport { EnvironmentVariablesEditorMessages } from './environment-variables-editor-messages';\nimport type { EnvironmentVariablesEditorDuplicateKeysErrorProps } from './environment-variables-editor.types';\nimport { DUPLICATE_ENVIRONMENT_VARIABLE_MESSAGE } from '@/lib/env-file';\n\nexport function EnvironmentVariablesEditorDuplicateKeysError({\n message = DUPLICATE_ENVIRONMENT_VARIABLE_MESSAGE,\n ...props\n}: EnvironmentVariablesEditorDuplicateKeysErrorProps) {\n const { editor } = useEnvironmentVariablesEditorContext('EnvironmentVariablesEditor.DuplicateKeysError');\n\n if (!editor.hasDuplicateKeys) return null;\n\n return <EnvironmentVariablesEditorMessages error={message} {...props} />;\n}\n","import { useEnvironmentVariablesEditorContext } from './environment-variables-editor-context';\nimport type { EnvironmentVariablesEditorPasteHintProps } from './environment-variables-editor.types';\nimport { Txt } from '@/ds/components/Txt';\nimport { cn } from '@/lib/utils';\n\nexport const DEFAULT_ENVIRONMENT_VARIABLE_PASTE_HINT = 'Tip: paste a .env file into any field to import it';\n\nexport function EnvironmentVariablesEditorPasteHint({\n className,\n children,\n ...props\n}: EnvironmentVariablesEditorPasteHintProps) {\n const { readOnly } = useEnvironmentVariablesEditorContext('EnvironmentVariablesEditor.PasteHint');\n\n if (readOnly) return null;\n\n return (\n <Txt as=\"p\" variant=\"ui-xs\" className={cn('text-right text-neutral4', className)} {...props}>\n {children ?? DEFAULT_ENVIRONMENT_VARIABLE_PASTE_HINT}\n </Txt>\n );\n}\n","import type { EnvironmentVariablesEditorReadOnlyEmptyProps } from './environment-variables-editor.types';\nimport { DataList } from '@/ds/components/DataList/data-list';\n\nexport function EnvironmentVariablesEditorReadOnlyEmpty({\n message = 'No environment variables found',\n ...props\n}: EnvironmentVariablesEditorReadOnlyEmptyProps) {\n return <DataList.NoMatch message={message} {...props} />;\n}\n","import { use } from 'react';\n\nimport { EnvironmentVariablesEditorReadOnlyListContext } from './environment-variables-editor-context';\nimport type { EnvironmentVariablesEditorReadOnlyHeaderProps } from './environment-variables-editor.types';\nimport { DataList } from '@/ds/components/DataList/data-list';\n\nexport function EnvironmentVariablesEditorReadOnlyHeader({\n className,\n nameLabel = 'Key',\n valueLabel = 'Value',\n updatedAtLabel = 'Last Updated',\n ...props\n}: EnvironmentVariablesEditorReadOnlyHeaderProps) {\n const { showIcon } = use(EnvironmentVariablesEditorReadOnlyListContext);\n\n return (\n <DataList.Top className={className} {...props}>\n {showIcon && (\n <DataList.TopCell aria-hidden=\"true\" className=\"justify-center\">\n <span />\n </DataList.TopCell>\n )}\n <DataList.TopCell>{nameLabel}</DataList.TopCell>\n <DataList.TopCell>{valueLabel}</DataList.TopCell>\n <DataList.TopCell className=\"justify-end\">{updatedAtLabel}</DataList.TopCell>\n </DataList.Top>\n );\n}\n","import { CheckIcon, Code2Icon, CopyIcon, EyeIcon, EyeOffIcon } from 'lucide-react';\nimport { use, useState } from 'react';\nimport type { ReactNode } from 'react';\n\nimport { EnvironmentVariablesEditorReadOnlyListContext } from './environment-variables-editor-context';\nimport type { EnvironmentVariablesEditorReadOnlyItemProps } from './environment-variables-editor.types';\nimport { Button } from '@/ds/components/Button';\nimport { DataList } from '@/ds/components/DataList/data-list';\nimport { useCopyToClipboard } from '@/hooks/use-copy-to-clipboard';\nimport { cn } from '@/lib/utils';\n\nexport function EnvironmentVariablesEditorReadOnlyItem({\n className,\n name,\n value,\n copyValue,\n copyLabel = 'Copy value',\n updatedAt,\n revealed,\n defaultRevealed,\n onRevealedChange,\n actor,\n icon,\n ...props\n}: EnvironmentVariablesEditorReadOnlyItemProps) {\n const { showIcon } = use(EnvironmentVariablesEditorReadOnlyListContext);\n const [uncontrolledRevealed, setUncontrolledRevealed] = useState(defaultRevealed ?? false);\n const { isCopied, copyToClipboard } = useCopyToClipboard({ copiedDuration: 1500, showToast: false });\n const isRevealed = revealed ?? uncontrolledRevealed;\n const displayedValue = isRevealed ? value : '************';\n const leadingIcon = icon ?? <Code2Icon />;\n const resolvedCopyValue = copyValue ?? getCopyableReadOnlyValue(value);\n const canCopyValue = isRevealed && Boolean(resolvedCopyValue);\n\n function toggleRevealed() {\n const nextRevealed = !isRevealed;\n\n if (revealed === undefined) {\n setUncontrolledRevealed(nextRevealed);\n }\n\n onRevealedChange?.(nextRevealed);\n }\n\n function handleCopyValue() {\n if (!resolvedCopyValue) return;\n\n copyToClipboard(resolvedCopyValue);\n }\n\n return (\n <DataList.RowStatic className={cn('min-h-14', className)} {...props}>\n {showIcon && (\n <DataList.Cell className=\"justify-items-center overflow-visible\">\n <span className=\"border-border1 text-neutral3 flex size-7 items-center justify-center rounded-full border [&>svg]:size-3.5\">\n {leadingIcon}\n </span>\n </DataList.Cell>\n )}\n\n <DataList.TextCell font=\"mono\" className=\"text-ui-sm text-neutral6\">\n {name}\n </DataList.TextCell>\n\n <DataList.Cell className=\"min-w-0\">\n {value !== undefined && (\n <span className=\"flex min-w-0 items-center gap-2\">\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon-xs\"\n aria-label={isRevealed ? 'Hide value' : 'Show value'}\n onClick={toggleRevealed}\n >\n {isRevealed ? <EyeOffIcon aria-hidden /> : <EyeIcon aria-hidden />}\n </Button>\n <span className=\"group relative flex min-w-0 flex-1 items-center\">\n <span\n className={cn(\n 'block min-w-0 flex-1 truncate font-mono text-ui-xs text-neutral4',\n canCopyValue && 'pr-7',\n )}\n >\n {displayedValue}\n </span>\n {canCopyValue && (\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon-xs\"\n aria-label={isCopied ? 'Copied value' : copyLabel}\n tooltip={isCopied ? 'Copied' : copyLabel}\n className=\"absolute right-0 opacity-0 transition-opacity group-hover:opacity-100 focus:opacity-100 focus-visible:opacity-100\"\n onClick={handleCopyValue}\n >\n {isCopied ? <CheckIcon aria-hidden /> : <CopyIcon aria-hidden />}\n </Button>\n )}\n </span>\n </span>\n )}\n </DataList.Cell>\n\n <DataList.Cell className=\"text-ui-xs text-neutral3 min-w-0 justify-items-end\">\n {(updatedAt || actor) && (\n <span className=\"flex min-w-0 items-center gap-2\">\n <span className=\"truncate\">{updatedAt}</span>\n {actor}\n </span>\n )}\n </DataList.Cell>\n </DataList.RowStatic>\n );\n}\n\nfunction getCopyableReadOnlyValue(value: ReactNode) {\n if (typeof value === 'string' || typeof value === 'number') {\n return String(value);\n }\n\n return undefined;\n}\n","import { useMemo } from 'react';\n\nimport { EnvironmentVariablesEditorReadOnlyListContext } from './environment-variables-editor-context';\nimport { EnvironmentVariablesEditorReadOnlyHeader } from './environment-variables-editor-read-only-header';\nimport type { EnvironmentVariablesEditorReadOnlyListProps } from './environment-variables-editor.types';\nimport { DataList } from '@/ds/components/DataList/data-list';\nimport { cn } from '@/lib/utils';\n\nconst READ_ONLY_COLUMNS = 'minmax(12rem,1.4fr) minmax(8rem,0.9fr) minmax(8rem,auto)';\nconst READ_ONLY_COLUMNS_WITH_ICON = `auto ${READ_ONLY_COLUMNS}`;\n\nexport function EnvironmentVariablesEditorReadOnlyList({\n className,\n children,\n columns,\n header,\n showHeader = true,\n showIcon = false,\n nameLabel,\n valueLabel,\n updatedAtLabel,\n variant = 'plain',\n scrollRef,\n ...props\n}: EnvironmentVariablesEditorReadOnlyListProps) {\n const resolvedColumns = columns ?? (showIcon ? READ_ONLY_COLUMNS_WITH_ICON : READ_ONLY_COLUMNS);\n const contextValue = useMemo(() => ({ showIcon }), [showIcon]);\n\n return (\n <EnvironmentVariablesEditorReadOnlyListContext.Provider value={contextValue}>\n <DataList\n columns={resolvedColumns}\n variant={variant}\n scrollRef={scrollRef}\n className={cn('min-h-0', className)}\n {...props}\n >\n {showHeader &&\n (header ?? (\n <EnvironmentVariablesEditorReadOnlyHeader\n nameLabel={nameLabel}\n valueLabel={valueLabel}\n updatedAtLabel={updatedAtLabel}\n />\n ))}\n {children}\n </DataList>\n </EnvironmentVariablesEditorReadOnlyListContext.Provider>\n );\n}\n","import { useMemo } from 'react';\n\nimport { EnvironmentVariablesEditorContext } from './environment-variables-editor-context';\nimport type { EnvironmentVariablesEditorContextValue } from './environment-variables-editor-context';\nimport { EnvironmentVariablesEditorPasteHint } from './environment-variables-editor-paste-hint';\nimport type { EnvironmentVariablesEditorRootProps } from './environment-variables-editor.types';\nimport type { EnvironmentVariableEntry } from '@/lib/env-file';\n\nexport function EnvironmentVariablesEditorRoot<TRow extends EnvironmentVariableEntry = EnvironmentVariableEntry>({\n editor,\n className,\n children,\n disabled,\n readOnly,\n rowErrors,\n hidePasteHint,\n ...props\n}: EnvironmentVariablesEditorRootProps<TRow>) {\n const contextValue = useMemo<EnvironmentVariablesEditorContextValue>(\n () => ({\n editor: {\n rows: editor.rows,\n uploadError: editor.uploadError,\n fileInputRef: editor.fileInputRef,\n hasDuplicateKeys: editor.hasDuplicateKeys,\n updateRow: editor.updateRow,\n removeRow: editor.removeRow,\n handleFileUpload: editor.handleFileUpload,\n handlePaste: editor.handlePaste,\n getRowId: editor.getRowId,\n isValueRevealed: editor.isValueRevealed,\n toggleValueVisibility: editor.toggleValueVisibility,\n rowHasDuplicateKey: editor.rowHasDuplicateKey,\n appendRow: () => editor.appendRow(),\n },\n disabled: Boolean(disabled),\n readOnly: Boolean(readOnly),\n rowErrors,\n }),\n [editor, disabled, readOnly, rowErrors],\n );\n\n return (\n <EnvironmentVariablesEditorContext.Provider value={contextValue}>\n <div className={className} {...props}>\n {children}\n {!readOnly && !hidePasteHint && <EnvironmentVariablesEditorPasteHint />}\n </div>\n </EnvironmentVariablesEditorContext.Provider>\n );\n}\n","import { EyeIcon, EyeOffIcon, TrashIcon } from 'lucide-react';\n\nimport { useEnvironmentVariablesEditorContext } from './environment-variables-editor-context';\nimport type { EnvironmentVariablesEditorRowProps } from './environment-variables-editor.types';\nimport { Button } from '@/ds/components/Button';\nimport { FieldBlock } from '@/ds/components/FormFieldBlocks';\nimport { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput } from '@/ds/components/InputGroup';\nimport { DUPLICATE_ENVIRONMENT_VARIABLE_MESSAGE } from '@/lib/env-file';\nimport { cn } from '@/lib/utils';\n\nexport function EnvironmentVariablesEditorRow({\n row,\n index,\n rowErrors,\n keyLabel = 'Key',\n valueLabel = 'Value',\n keyPlaceholder = 'e.g: OPEN_AI_KEY',\n valuePlaceholder = 'e.g: sk-xxxxxxxx',\n duplicateKeyMessage = DUPLICATE_ENVIRONMENT_VARIABLE_MESSAGE,\n className,\n ...props\n}: EnvironmentVariablesEditorRowProps) {\n const {\n editor,\n disabled,\n readOnly,\n rowErrors: contextRowErrors,\n } = useEnvironmentVariablesEditorContext('EnvironmentVariablesEditor.Row');\n const isDisabled = disabled || readOnly;\n const resolvedRowErrors = rowErrors ?? contextRowErrors;\n const keyError = resolvedRowErrors?.[index]?.key ?? (editor.rowHasDuplicateKey(index) ? duplicateKeyMessage : null);\n const valueError = resolvedRowErrors?.[index]?.value;\n const keyFieldName = `env-key-${index}`;\n const valueFieldName = `env-value-${index}`;\n const keyInputId = `input-${keyFieldName}`;\n const valueInputId = `input-${valueFieldName}`;\n const revealValueLabel = editor.isValueRevealed(index) ? 'Hide value' : 'Show value';\n const removeRowLabel = `Remove environment variable ${row.key.trim() || index + 1}`;\n\n function handlePaste(text: string) {\n return editor.handlePaste(index, text);\n }\n\n return (\n <div className={cn('flex flex-col items-stretch gap-2 sm:flex-row sm:items-start', className)} {...props}>\n <div className=\"flex-1\">\n <FieldBlock.Layout>\n <FieldBlock.Column>\n <FieldBlock.Label name={keyFieldName}>{keyLabel}</FieldBlock.Label>\n <InputGroup className=\"w-full\">\n <InputGroupInput\n id={keyInputId}\n placeholder={keyPlaceholder}\n className=\"font-mono\"\n value={row.key}\n disabled={isDisabled}\n error={Boolean(keyError)}\n onChange={event => editor.updateRow(index, { key: event.target.value })}\n onPaste={event => {\n if (handlePaste(event.clipboardData.getData('text'))) {\n event.preventDefault();\n }\n }}\n />\n </InputGroup>\n {keyError && <FieldBlock.ErrorMsg>{keyError}</FieldBlock.ErrorMsg>}\n </FieldBlock.Column>\n </FieldBlock.Layout>\n </div>\n\n <div className=\"flex-1\">\n <FieldBlock.Layout>\n <FieldBlock.Column>\n <FieldBlock.Label name={valueFieldName}>{valueLabel}</FieldBlock.Label>\n <InputGroup className=\"w-full\">\n <InputGroupInput\n id={valueInputId}\n placeholder={valuePlaceholder}\n className=\"font-mono\"\n type={editor.isValueRevealed(index) ? 'text' : 'password'}\n value={row.value}\n disabled={isDisabled}\n error={Boolean(valueError)}\n onChange={event => editor.updateRow(index, { value: event.target.value })}\n onPaste={event => {\n if (handlePaste(event.clipboardData.getData('text'))) {\n event.preventDefault();\n }\n }}\n />\n <InputGroupAddon align=\"inline-end\">\n <InputGroupButton\n type=\"button\"\n variant=\"ghost\"\n size=\"icon-sm\"\n disabled={isDisabled}\n aria-label={revealValueLabel}\n tooltip={revealValueLabel}\n onClick={() => editor.toggleValueVisibility(index)}\n >\n {editor.isValueRevealed(index) ? <EyeOffIcon aria-hidden /> : <EyeIcon aria-hidden />}\n </InputGroupButton>\n </InputGroupAddon>\n </InputGroup>\n {valueError && <FieldBlock.ErrorMsg>{valueError}</FieldBlock.ErrorMsg>}\n </FieldBlock.Column>\n </FieldBlock.Layout>\n </div>\n\n {!readOnly && (\n <div className=\"flex items-center gap-2 self-end sm:self-auto sm:pt-7\">\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon-md\"\n disabled={disabled}\n aria-label={removeRowLabel}\n tooltip=\"Remove variable\"\n onClick={() => editor.removeRow(index)}\n >\n <TrashIcon />\n </Button>\n </div>\n )}\n </div>\n );\n}\n","import { useEnvironmentVariablesEditorContext } from './environment-variables-editor-context';\nimport { EnvironmentVariablesEditorRow } from './environment-variables-editor-row';\nimport type { EnvironmentVariablesEditorRowsProps } from './environment-variables-editor.types';\nimport { cn } from '@/lib/utils';\n\nexport function EnvironmentVariablesEditorRows({\n className,\n rowErrors,\n keyLabel,\n valueLabel,\n keyPlaceholder,\n valuePlaceholder,\n duplicateKeyMessage,\n ...props\n}: EnvironmentVariablesEditorRowsProps) {\n const { editor, rowErrors: contextRowErrors } = useEnvironmentVariablesEditorContext(\n 'EnvironmentVariablesEditor.Rows',\n );\n const resolvedRowErrors = rowErrors ?? contextRowErrors;\n\n return (\n <div className={cn('space-y-2', className)} {...props}>\n {editor.rows.map((row, index) => (\n <EnvironmentVariablesEditorRow\n key={editor.getRowId(index)}\n row={row}\n index={index}\n rowErrors={resolvedRowErrors}\n keyLabel={keyLabel}\n valueLabel={valueLabel}\n keyPlaceholder={keyPlaceholder}\n valuePlaceholder={valuePlaceholder}\n duplicateKeyMessage={duplicateKeyMessage}\n />\n ))}\n </div>\n );\n}\n","import { UploadIcon } from 'lucide-react';\n\nimport { useEnvironmentVariablesEditorContext } from './environment-variables-editor-context';\nimport type { EnvironmentVariablesEditorUploadButtonProps } from './environment-variables-editor.types';\nimport { Button } from '@/ds/components/Button';\n\nexport function EnvironmentVariablesEditorUploadButton({\n children = 'Import .env',\n inputLabel = 'Import .env file',\n disabled,\n onClick,\n type = 'button',\n variant = 'ghost',\n size = 'sm',\n ...props\n}: EnvironmentVariablesEditorUploadButtonProps) {\n const {\n editor,\n disabled: contextDisabled,\n readOnly,\n } = useEnvironmentVariablesEditorContext('EnvironmentVariablesEditor.UploadButton');\n const isDisabled = contextDisabled || disabled;\n\n if (readOnly) return null;\n\n return (\n <>\n <input\n ref={editor.fileInputRef}\n type=\"file\"\n accept=\".env,text/plain\"\n aria-label={inputLabel}\n className=\"hidden\"\n disabled={isDisabled}\n onChange={editor.handleFileUpload}\n />\n <Button\n type={type}\n variant={variant}\n size={size}\n disabled={isDisabled}\n onClick={event => {\n onClick?.(event);\n if (!event.defaultPrevented) {\n editor.fileInputRef.current?.click();\n }\n }}\n {...props}\n >\n <UploadIcon />\n {children}\n </Button>\n </>\n );\n}\n","import { useEnvironmentVariablesEditorContext } from './environment-variables-editor-context';\nimport { EnvironmentVariablesEditorUploadButton } from './environment-variables-editor-upload-button';\nimport type { EnvironmentVariablesEditorUploadProps } from './environment-variables-editor.types';\nimport { cn } from '@/lib/utils';\n\nexport function EnvironmentVariablesEditorUpload({\n className,\n children,\n ...props\n}: EnvironmentVariablesEditorUploadProps) {\n const { readOnly } = useEnvironmentVariablesEditorContext('EnvironmentVariablesEditor.Upload');\n\n if (readOnly) return null;\n\n return (\n <div className={cn('flex flex-wrap items-center justify-end gap-2', className)} {...props}>\n {children ?? <EnvironmentVariablesEditorUploadButton />}\n </div>\n );\n}\n","import { useEnvironmentVariablesEditorContext } from './environment-variables-editor-context';\nimport { EnvironmentVariablesEditorMessages } from './environment-variables-editor-messages';\nimport type { EnvironmentVariablesEditorUploadErrorProps } from './environment-variables-editor.types';\n\nexport function EnvironmentVariablesEditorUploadError(props: EnvironmentVariablesEditorUploadErrorProps) {\n const { editor } = useEnvironmentVariablesEditorContext('EnvironmentVariablesEditor.UploadError');\n\n if (!editor.uploadError) return null;\n\n return <EnvironmentVariablesEditorMessages error={editor.uploadError} {...props} />;\n}\n","import { EnvironmentVariablesEditorActions } from './environment-variables-editor-actions';\nimport { EnvironmentVariablesEditorAddButton } from './environment-variables-editor-add-button';\nimport { EnvironmentVariablesEditorDuplicateKeysError } from './environment-variables-editor-duplicate-keys-error';\nimport { EnvironmentVariablesEditorMessages } from './environment-variables-editor-messages';\nimport { EnvironmentVariablesEditorPasteHint } from './environment-variables-editor-paste-hint';\nimport { EnvironmentVariablesEditorReadOnlyEmpty } from './environment-variables-editor-read-only-empty';\nimport { EnvironmentVariablesEditorReadOnlyHeader } from './environment-variables-editor-read-only-header';\nimport { EnvironmentVariablesEditorReadOnlyItem } from './environment-variables-editor-read-only-item';\nimport { EnvironmentVariablesEditorReadOnlyList } from './environment-variables-editor-read-only-list';\nimport { EnvironmentVariablesEditorRoot } from './environment-variables-editor-root';\nimport { EnvironmentVariablesEditorRow } from './environment-variables-editor-row';\nimport { EnvironmentVariablesEditorRows } from './environment-variables-editor-rows';\nimport { EnvironmentVariablesEditorUpload } from './environment-variables-editor-upload';\nimport { EnvironmentVariablesEditorUploadButton } from './environment-variables-editor-upload-button';\nimport { EnvironmentVariablesEditorUploadError } from './environment-variables-editor-upload-error';\nimport type { EnvironmentVariablesEditorProps } from './environment-variables-editor.types';\nimport type { EnvironmentVariableEntry } from '@/lib/env-file';\nimport { DUPLICATE_ENVIRONMENT_VARIABLE_MESSAGE } from '@/lib/env-file';\nimport { cn } from '@/lib/utils';\n\nconst renderEnvironmentVariablesEditor = <TRow extends EnvironmentVariableEntry = EnvironmentVariableEntry>({\n className,\n children,\n addLabel = 'Add Variable',\n keyLabel = 'Key',\n valueLabel = 'Value',\n keyPlaceholder = 'e.g: OPEN_AI_KEY',\n valuePlaceholder = 'e.g: sk-xxxxxxxx',\n duplicateKeyMessage = DUPLICATE_ENVIRONMENT_VARIABLE_MESSAGE,\n rowErrors,\n error,\n actions,\n ...props\n}: EnvironmentVariablesEditorProps<TRow>) => {\n return (\n <EnvironmentVariablesEditorRoot\n className={cn(!children && 'space-y-3', className)}\n rowErrors={rowErrors}\n {...props}\n >\n {children ?? (\n <>\n <EnvironmentVariablesEditorUpload>\n <EnvironmentVariablesEditorUploadButton />\n </EnvironmentVariablesEditorUpload>\n <EnvironmentVariablesEditorUploadError />\n <EnvironmentVariablesEditorRows\n rowErrors={rowErrors}\n keyLabel={keyLabel}\n valueLabel={valueLabel}\n keyPlaceholder={keyPlaceholder}\n valuePlaceholder={valuePlaceholder}\n duplicateKeyMessage={duplicateKeyMessage}\n />\n <EnvironmentVariablesEditorAddButton>{addLabel}</EnvironmentVariablesEditorAddButton>\n <EnvironmentVariablesEditorDuplicateKeysError message={duplicateKeyMessage} />\n <EnvironmentVariablesEditorMessages error={error} />\n {actions && <EnvironmentVariablesEditorActions>{actions}</EnvironmentVariablesEditorActions>}\n </>\n )}\n </EnvironmentVariablesEditorRoot>\n );\n};\n\nexport const EnvironmentVariablesEditor = Object.assign(renderEnvironmentVariablesEditor, {\n Root: EnvironmentVariablesEditorRoot,\n Upload: EnvironmentVariablesEditorUpload,\n UploadButton: EnvironmentVariablesEditorUploadButton,\n UploadError: EnvironmentVariablesEditorUploadError,\n Rows: EnvironmentVariablesEditorRows,\n Row: EnvironmentVariablesEditorRow,\n AddButton: EnvironmentVariablesEditorAddButton,\n PasteHint: EnvironmentVariablesEditorPasteHint,\n Messages: EnvironmentVariablesEditorMessages,\n DuplicateKeysError: EnvironmentVariablesEditorDuplicateKeysError,\n Actions: EnvironmentVariablesEditorActions,\n ReadOnlyList: EnvironmentVariablesEditorReadOnlyList,\n ReadOnlyHeader: EnvironmentVariablesEditorReadOnlyHeader,\n ReadOnlyEmpty: EnvironmentVariablesEditorReadOnlyEmpty,\n ReadOnlyItem: EnvironmentVariablesEditorReadOnlyItem,\n});\n\nexport type {\n EnvironmentVariablesEditorActionsProps,\n EnvironmentVariablesEditorAddButtonProps,\n EnvironmentVariablesEditorDuplicateKeysErrorProps,\n EnvironmentVariablesEditorMessagesProps,\n EnvironmentVariablesEditorPasteHintProps,\n EnvironmentVariablesEditorProps,\n EnvironmentVariablesEditorReadOnlyEmptyProps,\n EnvironmentVariablesEditorReadOnlyHeaderProps,\n EnvironmentVariablesEditorReadOnlyItemProps,\n EnvironmentVariablesEditorReadOnlyListProps,\n EnvironmentVariablesEditorRootProps,\n EnvironmentVariablesEditorRowErrors,\n EnvironmentVariablesEditorRowProps,\n EnvironmentVariablesEditorRowsProps,\n EnvironmentVariablesEditorUploadButtonProps,\n EnvironmentVariablesEditorUploadErrorProps,\n EnvironmentVariablesEditorUploadProps,\n} from './environment-variables-editor.types';\n"],"names":["jsx","cn","createContext","use","jsxs","Button","PlusIcon","Notice","DUPLICATE_ENVIRONMENT_VARIABLE_MESSAGE","Txt","DataList","useState","useCopyToClipboard","Code2Icon","EyeOffIcon","EyeIcon","CheckIcon","CopyIcon","useMemo","FieldBlock","InputGroup","InputGroupInput","InputGroupAddon","InputGroupButton","TrashIcon","Fragment","UploadIcon"],"mappings":"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"}
1
+ {"version":3,"file":"EnvironmentVariablesEditor.cjs.js","sources":["../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-actions.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-context.ts","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-add-button.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-messages.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-duplicate-keys-error.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-paste-hint.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-read-only-empty.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-read-only-header.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-read-only-item.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-read-only-list.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-root.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-row.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-rows.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-upload-button.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-upload.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-upload-error.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor.tsx"],"sourcesContent":["import type { EnvironmentVariablesEditorActionsProps } from './environment-variables-editor.types';\nimport { cn } from '@/lib/utils';\n\nexport function EnvironmentVariablesEditorActions({ className, ...props }: EnvironmentVariablesEditorActionsProps) {\n return <div className={cn('flex flex-wrap items-center gap-2', className)} {...props} />;\n}\n","import { createContext, use } from 'react';\n\nimport type { EnvironmentVariablesEditorRowErrors } from './environment-variables-editor.types';\nimport type { EnvironmentVariablesEditorController } from '@/hooks/use-environment-variables-editor';\nimport type { EnvironmentVariableEntry } from '@/lib/env-file';\n\ntype EnvironmentVariablesEditorRenderController = Pick<\n EnvironmentVariablesEditorController<EnvironmentVariableEntry>,\n | 'rows'\n | 'uploadError'\n | 'fileInputRef'\n | 'hasDuplicateKeys'\n | 'updateRow'\n | 'removeRow'\n | 'handleFileUpload'\n | 'handlePaste'\n | 'getRowId'\n | 'isValueRevealed'\n | 'toggleValueVisibility'\n | 'rowHasDuplicateKey'\n> & {\n appendRow: () => void;\n};\n\nexport interface EnvironmentVariablesEditorContextValue {\n editor: EnvironmentVariablesEditorRenderController;\n disabled: boolean;\n readOnly: boolean;\n rowErrors?: EnvironmentVariablesEditorRowErrors;\n}\n\nexport const EnvironmentVariablesEditorContext = createContext<EnvironmentVariablesEditorContextValue | null>(null);\n\nexport const EnvironmentVariablesEditorReadOnlyListContext = createContext({\n showIcon: false,\n});\n\nexport function useEnvironmentVariablesEditorContext(componentName: string) {\n const context = use(EnvironmentVariablesEditorContext);\n\n if (!context) {\n throw new Error(`${componentName} must be used within EnvironmentVariablesEditor.Root`);\n }\n\n return context;\n}\n","import { PlusIcon } from 'lucide-react';\n\nimport { useEnvironmentVariablesEditorContext } from './environment-variables-editor-context';\nimport type { EnvironmentVariablesEditorAddButtonProps } from './environment-variables-editor.types';\nimport { Button } from '@/ds/components/Button';\nimport { cn } from '@/lib/utils';\n\nexport function EnvironmentVariablesEditorAddButton({\n className,\n children,\n ...props\n}: EnvironmentVariablesEditorAddButtonProps) {\n const { editor, disabled, readOnly } = useEnvironmentVariablesEditorContext('EnvironmentVariablesEditor.AddButton');\n\n if (readOnly) return null;\n\n return (\n <div className={cn('flex items-center gap-2', className)} {...props}>\n <span aria-hidden=\"true\" className=\"bg-border1 h-px flex-1\" />\n <Button type=\"button\" variant=\"ghost\" size=\"sm\" disabled={disabled} onClick={() => editor.appendRow()}>\n <PlusIcon />\n {children ?? 'Add Variable'}\n </Button>\n <span aria-hidden=\"true\" className=\"bg-border1 h-px flex-1\" />\n </div>\n );\n}\n","import type { EnvironmentVariablesEditorMessagesProps } from './environment-variables-editor.types';\nimport { Notice } from '@/ds/components/Notice';\n\nexport function EnvironmentVariablesEditorMessages({\n error,\n children,\n variant = 'destructive',\n ...props\n}: EnvironmentVariablesEditorMessagesProps) {\n const message = children ?? error;\n\n if (!message) return null;\n\n return (\n <Notice variant={variant} {...props}>\n <Notice.Message>{message}</Notice.Message>\n </Notice>\n );\n}\n","import { useEnvironmentVariablesEditorContext } from './environment-variables-editor-context';\nimport { EnvironmentVariablesEditorMessages } from './environment-variables-editor-messages';\nimport type { EnvironmentVariablesEditorDuplicateKeysErrorProps } from './environment-variables-editor.types';\nimport { DUPLICATE_ENVIRONMENT_VARIABLE_MESSAGE } from '@/lib/env-file';\n\nexport function EnvironmentVariablesEditorDuplicateKeysError({\n message = DUPLICATE_ENVIRONMENT_VARIABLE_MESSAGE,\n ...props\n}: EnvironmentVariablesEditorDuplicateKeysErrorProps) {\n const { editor } = useEnvironmentVariablesEditorContext('EnvironmentVariablesEditor.DuplicateKeysError');\n\n if (!editor.hasDuplicateKeys) return null;\n\n return <EnvironmentVariablesEditorMessages error={message} {...props} />;\n}\n","import { useEnvironmentVariablesEditorContext } from './environment-variables-editor-context';\nimport type { EnvironmentVariablesEditorPasteHintProps } from './environment-variables-editor.types';\nimport { Txt } from '@/ds/components/Txt';\nimport { cn } from '@/lib/utils';\n\nexport const DEFAULT_ENVIRONMENT_VARIABLE_PASTE_HINT = 'Tip: paste a .env file into any field to import it';\n\nexport function EnvironmentVariablesEditorPasteHint({\n className,\n children,\n ...props\n}: EnvironmentVariablesEditorPasteHintProps) {\n const { readOnly } = useEnvironmentVariablesEditorContext('EnvironmentVariablesEditor.PasteHint');\n\n if (readOnly) return null;\n\n return (\n <Txt as=\"p\" variant=\"ui-xs\" className={cn('text-right text-neutral4', className)} {...props}>\n {children ?? DEFAULT_ENVIRONMENT_VARIABLE_PASTE_HINT}\n </Txt>\n );\n}\n","import type { EnvironmentVariablesEditorReadOnlyEmptyProps } from './environment-variables-editor.types';\nimport { DataList } from '@/ds/components/DataList/data-list';\n\nexport function EnvironmentVariablesEditorReadOnlyEmpty({\n message = 'No environment variables found',\n ...props\n}: EnvironmentVariablesEditorReadOnlyEmptyProps) {\n return <DataList.NoMatch message={message} {...props} />;\n}\n","import { use } from 'react';\n\nimport { EnvironmentVariablesEditorReadOnlyListContext } from './environment-variables-editor-context';\nimport type { EnvironmentVariablesEditorReadOnlyHeaderProps } from './environment-variables-editor.types';\nimport { DataList } from '@/ds/components/DataList/data-list';\n\nexport function EnvironmentVariablesEditorReadOnlyHeader({\n className,\n nameLabel = 'Key',\n valueLabel = 'Value',\n updatedAtLabel = 'Last Updated',\n ...props\n}: EnvironmentVariablesEditorReadOnlyHeaderProps) {\n const { showIcon } = use(EnvironmentVariablesEditorReadOnlyListContext);\n\n return (\n <DataList.Top className={className} {...props}>\n {showIcon && (\n <DataList.TopCell aria-hidden=\"true\" className=\"justify-center\">\n <span />\n </DataList.TopCell>\n )}\n <DataList.TopCell>{nameLabel}</DataList.TopCell>\n <DataList.TopCell>{valueLabel}</DataList.TopCell>\n <DataList.TopCell className=\"justify-end\">{updatedAtLabel}</DataList.TopCell>\n </DataList.Top>\n );\n}\n","import { CheckIcon, Code2Icon, CopyIcon, EyeIcon, EyeOffIcon } from 'lucide-react';\nimport { use, useState } from 'react';\nimport type { ReactNode } from 'react';\n\nimport { EnvironmentVariablesEditorReadOnlyListContext } from './environment-variables-editor-context';\nimport type { EnvironmentVariablesEditorReadOnlyItemProps } from './environment-variables-editor.types';\nimport { Button } from '@/ds/components/Button';\nimport { DataList } from '@/ds/components/DataList/data-list';\nimport { useCopyToClipboard } from '@/hooks/use-copy-to-clipboard';\nimport { cn } from '@/lib/utils';\n\nexport function EnvironmentVariablesEditorReadOnlyItem({\n className,\n name,\n value,\n copyValue,\n copyLabel = 'Copy value',\n updatedAt,\n revealed,\n defaultRevealed,\n onRevealedChange,\n actor,\n icon,\n ...props\n}: EnvironmentVariablesEditorReadOnlyItemProps) {\n const { showIcon } = use(EnvironmentVariablesEditorReadOnlyListContext);\n const [uncontrolledRevealed, setUncontrolledRevealed] = useState(defaultRevealed ?? false);\n const { isCopied, copyToClipboard } = useCopyToClipboard({ copiedDuration: 1500, showToast: false });\n const isRevealed = revealed ?? uncontrolledRevealed;\n const displayedValue = isRevealed ? value : '************';\n const leadingIcon = icon ?? <Code2Icon />;\n const resolvedCopyValue = copyValue ?? getCopyableReadOnlyValue(value);\n const canCopyValue = isRevealed && Boolean(resolvedCopyValue);\n\n function toggleRevealed() {\n const nextRevealed = !isRevealed;\n\n if (revealed === undefined) {\n setUncontrolledRevealed(nextRevealed);\n }\n\n onRevealedChange?.(nextRevealed);\n }\n\n function handleCopyValue() {\n if (!resolvedCopyValue) return;\n\n copyToClipboard(resolvedCopyValue);\n }\n\n return (\n <DataList.RowStatic className={cn('min-h-14', className)} {...props}>\n {showIcon && (\n <DataList.Cell className=\"justify-items-center overflow-visible\">\n <span className=\"border-border1 text-neutral3 flex size-7 items-center justify-center rounded-full border [&>svg]:size-3.5\">\n {leadingIcon}\n </span>\n </DataList.Cell>\n )}\n\n <DataList.TextCell font=\"mono\" className=\"text-ui-sm text-neutral6\">\n {name}\n </DataList.TextCell>\n\n <DataList.Cell className=\"min-w-0\">\n {value !== undefined && (\n <span className=\"flex min-w-0 items-center gap-2\">\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon-xs\"\n aria-label={isRevealed ? 'Hide value' : 'Show value'}\n onClick={toggleRevealed}\n >\n {isRevealed ? <EyeOffIcon aria-hidden /> : <EyeIcon aria-hidden />}\n </Button>\n <span className=\"group relative flex min-w-0 flex-1 items-center\">\n <span\n className={cn(\n 'block min-w-0 flex-1 truncate font-mono text-ui-xs text-neutral4',\n canCopyValue && 'pr-7',\n )}\n >\n {displayedValue}\n </span>\n {canCopyValue && (\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon-xs\"\n aria-label={isCopied ? 'Copied value' : copyLabel}\n tooltip={isCopied ? 'Copied' : copyLabel}\n className=\"absolute right-0 opacity-0 transition-opacity group-hover:opacity-100 focus:opacity-100 focus-visible:opacity-100\"\n onClick={handleCopyValue}\n >\n {isCopied ? <CheckIcon aria-hidden /> : <CopyIcon aria-hidden />}\n </Button>\n )}\n </span>\n </span>\n )}\n </DataList.Cell>\n\n <DataList.Cell className=\"text-ui-xs text-neutral3 min-w-0 justify-items-end\">\n {(updatedAt || actor) && (\n <span className=\"flex min-w-0 items-center gap-2\">\n <span className=\"truncate\">{updatedAt}</span>\n {actor}\n </span>\n )}\n </DataList.Cell>\n </DataList.RowStatic>\n );\n}\n\nfunction getCopyableReadOnlyValue(value: ReactNode) {\n if (typeof value === 'string' || typeof value === 'number') {\n return String(value);\n }\n\n return undefined;\n}\n","import { useMemo } from 'react';\n\nimport { EnvironmentVariablesEditorReadOnlyListContext } from './environment-variables-editor-context';\nimport { EnvironmentVariablesEditorReadOnlyHeader } from './environment-variables-editor-read-only-header';\nimport type { EnvironmentVariablesEditorReadOnlyListProps } from './environment-variables-editor.types';\nimport { DataList } from '@/ds/components/DataList/data-list';\nimport { cn } from '@/lib/utils';\n\nconst READ_ONLY_COLUMNS = 'minmax(12rem,1.4fr) minmax(8rem,0.9fr) minmax(8rem,auto)';\nconst READ_ONLY_COLUMNS_WITH_ICON = `auto ${READ_ONLY_COLUMNS}`;\n\nexport function EnvironmentVariablesEditorReadOnlyList({\n className,\n children,\n columns,\n header,\n showHeader = true,\n showIcon = false,\n nameLabel,\n valueLabel,\n updatedAtLabel,\n scrollRef,\n ...props\n}: EnvironmentVariablesEditorReadOnlyListProps) {\n const resolvedColumns = columns ?? (showIcon ? READ_ONLY_COLUMNS_WITH_ICON : READ_ONLY_COLUMNS);\n const contextValue = useMemo(() => ({ showIcon }), [showIcon]);\n\n return (\n <EnvironmentVariablesEditorReadOnlyListContext.Provider value={contextValue}>\n <DataList columns={resolvedColumns} scrollRef={scrollRef} className={cn('min-h-0', className)} {...props}>\n {showHeader &&\n (header ?? (\n <EnvironmentVariablesEditorReadOnlyHeader\n nameLabel={nameLabel}\n valueLabel={valueLabel}\n updatedAtLabel={updatedAtLabel}\n />\n ))}\n {children}\n </DataList>\n </EnvironmentVariablesEditorReadOnlyListContext.Provider>\n );\n}\n","import { useMemo } from 'react';\n\nimport { EnvironmentVariablesEditorContext } from './environment-variables-editor-context';\nimport type { EnvironmentVariablesEditorContextValue } from './environment-variables-editor-context';\nimport { EnvironmentVariablesEditorPasteHint } from './environment-variables-editor-paste-hint';\nimport type { EnvironmentVariablesEditorRootProps } from './environment-variables-editor.types';\nimport type { EnvironmentVariableEntry } from '@/lib/env-file';\n\nexport function EnvironmentVariablesEditorRoot<TRow extends EnvironmentVariableEntry = EnvironmentVariableEntry>({\n editor,\n className,\n children,\n disabled,\n readOnly,\n rowErrors,\n hidePasteHint,\n ...props\n}: EnvironmentVariablesEditorRootProps<TRow>) {\n const contextValue = useMemo<EnvironmentVariablesEditorContextValue>(\n () => ({\n editor: {\n rows: editor.rows,\n uploadError: editor.uploadError,\n fileInputRef: editor.fileInputRef,\n hasDuplicateKeys: editor.hasDuplicateKeys,\n updateRow: editor.updateRow,\n removeRow: editor.removeRow,\n handleFileUpload: editor.handleFileUpload,\n handlePaste: editor.handlePaste,\n getRowId: editor.getRowId,\n isValueRevealed: editor.isValueRevealed,\n toggleValueVisibility: editor.toggleValueVisibility,\n rowHasDuplicateKey: editor.rowHasDuplicateKey,\n appendRow: () => editor.appendRow(),\n },\n disabled: Boolean(disabled),\n readOnly: Boolean(readOnly),\n rowErrors,\n }),\n [editor, disabled, readOnly, rowErrors],\n );\n\n return (\n <EnvironmentVariablesEditorContext.Provider value={contextValue}>\n <div className={className} {...props}>\n {children}\n {!readOnly && !hidePasteHint && <EnvironmentVariablesEditorPasteHint />}\n </div>\n </EnvironmentVariablesEditorContext.Provider>\n );\n}\n","import { EyeIcon, EyeOffIcon, TrashIcon } from 'lucide-react';\n\nimport { useEnvironmentVariablesEditorContext } from './environment-variables-editor-context';\nimport type { EnvironmentVariablesEditorRowProps } from './environment-variables-editor.types';\nimport { Button } from '@/ds/components/Button';\nimport { FieldBlock } from '@/ds/components/FormFieldBlocks';\nimport { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput } from '@/ds/components/InputGroup';\nimport { DUPLICATE_ENVIRONMENT_VARIABLE_MESSAGE } from '@/lib/env-file';\nimport { cn } from '@/lib/utils';\n\nexport function EnvironmentVariablesEditorRow({\n row,\n index,\n rowErrors,\n keyLabel = 'Key',\n valueLabel = 'Value',\n keyPlaceholder = 'e.g: OPEN_AI_KEY',\n valuePlaceholder = 'e.g: sk-xxxxxxxx',\n duplicateKeyMessage = DUPLICATE_ENVIRONMENT_VARIABLE_MESSAGE,\n className,\n ...props\n}: EnvironmentVariablesEditorRowProps) {\n const {\n editor,\n disabled,\n readOnly,\n rowErrors: contextRowErrors,\n } = useEnvironmentVariablesEditorContext('EnvironmentVariablesEditor.Row');\n const isDisabled = disabled || readOnly;\n const resolvedRowErrors = rowErrors ?? contextRowErrors;\n const keyError = resolvedRowErrors?.[index]?.key ?? (editor.rowHasDuplicateKey(index) ? duplicateKeyMessage : null);\n const valueError = resolvedRowErrors?.[index]?.value;\n const keyFieldName = `env-key-${index}`;\n const valueFieldName = `env-value-${index}`;\n const keyInputId = `input-${keyFieldName}`;\n const valueInputId = `input-${valueFieldName}`;\n const revealValueLabel = editor.isValueRevealed(index) ? 'Hide value' : 'Show value';\n const removeRowLabel = `Remove environment variable ${row.key.trim() || index + 1}`;\n\n function handlePaste(text: string) {\n return editor.handlePaste(index, text);\n }\n\n return (\n <div className={cn('flex flex-col items-stretch gap-2 sm:flex-row sm:items-start', className)} {...props}>\n <div className=\"flex-1\">\n <FieldBlock.Layout>\n <FieldBlock.Column>\n <FieldBlock.Label name={keyFieldName}>{keyLabel}</FieldBlock.Label>\n <InputGroup className=\"w-full\">\n <InputGroupInput\n id={keyInputId}\n placeholder={keyPlaceholder}\n className=\"font-mono\"\n value={row.key}\n disabled={isDisabled}\n error={Boolean(keyError)}\n onChange={event => editor.updateRow(index, { key: event.target.value })}\n onPaste={event => {\n if (handlePaste(event.clipboardData.getData('text'))) {\n event.preventDefault();\n }\n }}\n />\n </InputGroup>\n {keyError && <FieldBlock.ErrorMsg>{keyError}</FieldBlock.ErrorMsg>}\n </FieldBlock.Column>\n </FieldBlock.Layout>\n </div>\n\n <div className=\"flex-1\">\n <FieldBlock.Layout>\n <FieldBlock.Column>\n <FieldBlock.Label name={valueFieldName}>{valueLabel}</FieldBlock.Label>\n <InputGroup className=\"w-full\">\n <InputGroupInput\n id={valueInputId}\n placeholder={valuePlaceholder}\n className=\"font-mono\"\n type={editor.isValueRevealed(index) ? 'text' : 'password'}\n value={row.value}\n disabled={isDisabled}\n error={Boolean(valueError)}\n onChange={event => editor.updateRow(index, { value: event.target.value })}\n onPaste={event => {\n if (handlePaste(event.clipboardData.getData('text'))) {\n event.preventDefault();\n }\n }}\n />\n <InputGroupAddon align=\"inline-end\">\n <InputGroupButton\n type=\"button\"\n variant=\"ghost\"\n size=\"icon-sm\"\n disabled={isDisabled}\n aria-label={revealValueLabel}\n tooltip={revealValueLabel}\n onClick={() => editor.toggleValueVisibility(index)}\n >\n {editor.isValueRevealed(index) ? <EyeOffIcon aria-hidden /> : <EyeIcon aria-hidden />}\n </InputGroupButton>\n </InputGroupAddon>\n </InputGroup>\n {valueError && <FieldBlock.ErrorMsg>{valueError}</FieldBlock.ErrorMsg>}\n </FieldBlock.Column>\n </FieldBlock.Layout>\n </div>\n\n {!readOnly && (\n <div className=\"flex items-center gap-2 self-end sm:self-auto sm:pt-7\">\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon-md\"\n disabled={disabled}\n aria-label={removeRowLabel}\n tooltip=\"Remove variable\"\n onClick={() => editor.removeRow(index)}\n >\n <TrashIcon />\n </Button>\n </div>\n )}\n </div>\n );\n}\n","import { useEnvironmentVariablesEditorContext } from './environment-variables-editor-context';\nimport { EnvironmentVariablesEditorRow } from './environment-variables-editor-row';\nimport type { EnvironmentVariablesEditorRowsProps } from './environment-variables-editor.types';\nimport { cn } from '@/lib/utils';\n\nexport function EnvironmentVariablesEditorRows({\n className,\n rowErrors,\n keyLabel,\n valueLabel,\n keyPlaceholder,\n valuePlaceholder,\n duplicateKeyMessage,\n ...props\n}: EnvironmentVariablesEditorRowsProps) {\n const { editor, rowErrors: contextRowErrors } = useEnvironmentVariablesEditorContext(\n 'EnvironmentVariablesEditor.Rows',\n );\n const resolvedRowErrors = rowErrors ?? contextRowErrors;\n\n return (\n <div className={cn('space-y-2', className)} {...props}>\n {editor.rows.map((row, index) => (\n <EnvironmentVariablesEditorRow\n key={editor.getRowId(index)}\n row={row}\n index={index}\n rowErrors={resolvedRowErrors}\n keyLabel={keyLabel}\n valueLabel={valueLabel}\n keyPlaceholder={keyPlaceholder}\n valuePlaceholder={valuePlaceholder}\n duplicateKeyMessage={duplicateKeyMessage}\n />\n ))}\n </div>\n );\n}\n","import { UploadIcon } from 'lucide-react';\n\nimport { useEnvironmentVariablesEditorContext } from './environment-variables-editor-context';\nimport type { EnvironmentVariablesEditorUploadButtonProps } from './environment-variables-editor.types';\nimport { Button } from '@/ds/components/Button';\n\nexport function EnvironmentVariablesEditorUploadButton({\n children = 'Import .env',\n inputLabel = 'Import .env file',\n disabled,\n onClick,\n type = 'button',\n variant = 'ghost',\n size = 'sm',\n ...props\n}: EnvironmentVariablesEditorUploadButtonProps) {\n const {\n editor,\n disabled: contextDisabled,\n readOnly,\n } = useEnvironmentVariablesEditorContext('EnvironmentVariablesEditor.UploadButton');\n const isDisabled = contextDisabled || disabled;\n\n if (readOnly) return null;\n\n return (\n <>\n <input\n ref={editor.fileInputRef}\n type=\"file\"\n accept=\".env,text/plain\"\n aria-label={inputLabel}\n className=\"hidden\"\n disabled={isDisabled}\n onChange={editor.handleFileUpload}\n />\n <Button\n type={type}\n variant={variant}\n size={size}\n disabled={isDisabled}\n onClick={event => {\n onClick?.(event);\n if (!event.defaultPrevented) {\n editor.fileInputRef.current?.click();\n }\n }}\n {...props}\n >\n <UploadIcon />\n {children}\n </Button>\n </>\n );\n}\n","import { useEnvironmentVariablesEditorContext } from './environment-variables-editor-context';\nimport { EnvironmentVariablesEditorUploadButton } from './environment-variables-editor-upload-button';\nimport type { EnvironmentVariablesEditorUploadProps } from './environment-variables-editor.types';\nimport { cn } from '@/lib/utils';\n\nexport function EnvironmentVariablesEditorUpload({\n className,\n children,\n ...props\n}: EnvironmentVariablesEditorUploadProps) {\n const { readOnly } = useEnvironmentVariablesEditorContext('EnvironmentVariablesEditor.Upload');\n\n if (readOnly) return null;\n\n return (\n <div className={cn('flex flex-wrap items-center justify-end gap-2', className)} {...props}>\n {children ?? <EnvironmentVariablesEditorUploadButton />}\n </div>\n );\n}\n","import { useEnvironmentVariablesEditorContext } from './environment-variables-editor-context';\nimport { EnvironmentVariablesEditorMessages } from './environment-variables-editor-messages';\nimport type { EnvironmentVariablesEditorUploadErrorProps } from './environment-variables-editor.types';\n\nexport function EnvironmentVariablesEditorUploadError(props: EnvironmentVariablesEditorUploadErrorProps) {\n const { editor } = useEnvironmentVariablesEditorContext('EnvironmentVariablesEditor.UploadError');\n\n if (!editor.uploadError) return null;\n\n return <EnvironmentVariablesEditorMessages error={editor.uploadError} {...props} />;\n}\n","import { EnvironmentVariablesEditorActions } from './environment-variables-editor-actions';\nimport { EnvironmentVariablesEditorAddButton } from './environment-variables-editor-add-button';\nimport { EnvironmentVariablesEditorDuplicateKeysError } from './environment-variables-editor-duplicate-keys-error';\nimport { EnvironmentVariablesEditorMessages } from './environment-variables-editor-messages';\nimport { EnvironmentVariablesEditorPasteHint } from './environment-variables-editor-paste-hint';\nimport { EnvironmentVariablesEditorReadOnlyEmpty } from './environment-variables-editor-read-only-empty';\nimport { EnvironmentVariablesEditorReadOnlyHeader } from './environment-variables-editor-read-only-header';\nimport { EnvironmentVariablesEditorReadOnlyItem } from './environment-variables-editor-read-only-item';\nimport { EnvironmentVariablesEditorReadOnlyList } from './environment-variables-editor-read-only-list';\nimport { EnvironmentVariablesEditorRoot } from './environment-variables-editor-root';\nimport { EnvironmentVariablesEditorRow } from './environment-variables-editor-row';\nimport { EnvironmentVariablesEditorRows } from './environment-variables-editor-rows';\nimport { EnvironmentVariablesEditorUpload } from './environment-variables-editor-upload';\nimport { EnvironmentVariablesEditorUploadButton } from './environment-variables-editor-upload-button';\nimport { EnvironmentVariablesEditorUploadError } from './environment-variables-editor-upload-error';\nimport type { EnvironmentVariablesEditorProps } from './environment-variables-editor.types';\nimport type { EnvironmentVariableEntry } from '@/lib/env-file';\nimport { DUPLICATE_ENVIRONMENT_VARIABLE_MESSAGE } from '@/lib/env-file';\nimport { cn } from '@/lib/utils';\n\nconst renderEnvironmentVariablesEditor = <TRow extends EnvironmentVariableEntry = EnvironmentVariableEntry>({\n className,\n children,\n addLabel = 'Add Variable',\n keyLabel = 'Key',\n valueLabel = 'Value',\n keyPlaceholder = 'e.g: OPEN_AI_KEY',\n valuePlaceholder = 'e.g: sk-xxxxxxxx',\n duplicateKeyMessage = DUPLICATE_ENVIRONMENT_VARIABLE_MESSAGE,\n rowErrors,\n error,\n actions,\n ...props\n}: EnvironmentVariablesEditorProps<TRow>) => {\n return (\n <EnvironmentVariablesEditorRoot\n className={cn(!children && 'space-y-3', className)}\n rowErrors={rowErrors}\n {...props}\n >\n {children ?? (\n <>\n <EnvironmentVariablesEditorUpload>\n <EnvironmentVariablesEditorUploadButton />\n </EnvironmentVariablesEditorUpload>\n <EnvironmentVariablesEditorUploadError />\n <EnvironmentVariablesEditorRows\n rowErrors={rowErrors}\n keyLabel={keyLabel}\n valueLabel={valueLabel}\n keyPlaceholder={keyPlaceholder}\n valuePlaceholder={valuePlaceholder}\n duplicateKeyMessage={duplicateKeyMessage}\n />\n <EnvironmentVariablesEditorAddButton>{addLabel}</EnvironmentVariablesEditorAddButton>\n <EnvironmentVariablesEditorDuplicateKeysError message={duplicateKeyMessage} />\n <EnvironmentVariablesEditorMessages error={error} />\n {actions && <EnvironmentVariablesEditorActions>{actions}</EnvironmentVariablesEditorActions>}\n </>\n )}\n </EnvironmentVariablesEditorRoot>\n );\n};\n\nexport const EnvironmentVariablesEditor = Object.assign(renderEnvironmentVariablesEditor, {\n Root: EnvironmentVariablesEditorRoot,\n Upload: EnvironmentVariablesEditorUpload,\n UploadButton: EnvironmentVariablesEditorUploadButton,\n UploadError: EnvironmentVariablesEditorUploadError,\n Rows: EnvironmentVariablesEditorRows,\n Row: EnvironmentVariablesEditorRow,\n AddButton: EnvironmentVariablesEditorAddButton,\n PasteHint: EnvironmentVariablesEditorPasteHint,\n Messages: EnvironmentVariablesEditorMessages,\n DuplicateKeysError: EnvironmentVariablesEditorDuplicateKeysError,\n Actions: EnvironmentVariablesEditorActions,\n ReadOnlyList: EnvironmentVariablesEditorReadOnlyList,\n ReadOnlyHeader: EnvironmentVariablesEditorReadOnlyHeader,\n ReadOnlyEmpty: EnvironmentVariablesEditorReadOnlyEmpty,\n ReadOnlyItem: EnvironmentVariablesEditorReadOnlyItem,\n});\n\nexport type {\n EnvironmentVariablesEditorActionsProps,\n EnvironmentVariablesEditorAddButtonProps,\n EnvironmentVariablesEditorDuplicateKeysErrorProps,\n EnvironmentVariablesEditorMessagesProps,\n EnvironmentVariablesEditorPasteHintProps,\n EnvironmentVariablesEditorProps,\n EnvironmentVariablesEditorReadOnlyEmptyProps,\n EnvironmentVariablesEditorReadOnlyHeaderProps,\n EnvironmentVariablesEditorReadOnlyItemProps,\n EnvironmentVariablesEditorReadOnlyListProps,\n EnvironmentVariablesEditorRootProps,\n EnvironmentVariablesEditorRowErrors,\n EnvironmentVariablesEditorRowProps,\n EnvironmentVariablesEditorRowsProps,\n EnvironmentVariablesEditorUploadButtonProps,\n EnvironmentVariablesEditorUploadErrorProps,\n EnvironmentVariablesEditorUploadProps,\n} from './environment-variables-editor.types';\n"],"names":["jsx","cn","createContext","use","jsxs","Button","PlusIcon","Notice","DUPLICATE_ENVIRONMENT_VARIABLE_MESSAGE","Txt","DataList","useState","useCopyToClipboard","Code2Icon","EyeOffIcon","EyeIcon","CheckIcon","CopyIcon","useMemo","FieldBlock","InputGroup","InputGroupInput","InputGroupAddon","InputGroupButton","TrashIcon","Fragment","UploadIcon"],"mappings":"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"}
@@ -6,7 +6,7 @@ import { B as Button } from '../Button-BsfLQEC6.js';
6
6
  import { N as Notice } from '../Notice-DSUAUUYU.js';
7
7
  import { D as DUPLICATE_ENVIRONMENT_VARIABLE_MESSAGE } from '../env-file-BITYowCx.js';
8
8
  import { T as Txt } from '../Txt-ByUf-9Ic.js';
9
- import { D as DataList } from '../data-list-DX6y3EFQ.js';
9
+ import { D as DataList } from '../data-list-BUK_v9ax.js';
10
10
  import { useCopyToClipboard } from '../hooks/use-copy-to-clipboard.es.js';
11
11
  import { F as FieldBlock } from '../field-block-DcGeY-_x.js';
12
12
  import { I as InputGroup, c as InputGroupInput, a as InputGroupAddon, b as InputGroupButton } from '../input-group-Dma0MbUM.js';
@@ -197,33 +197,22 @@ function EnvironmentVariablesEditorReadOnlyList({
197
197
  nameLabel,
198
198
  valueLabel,
199
199
  updatedAtLabel,
200
- variant = "plain",
201
200
  scrollRef,
202
201
  ...props
203
202
  }) {
204
203
  const resolvedColumns = columns ?? (showIcon ? READ_ONLY_COLUMNS_WITH_ICON : READ_ONLY_COLUMNS);
205
204
  const contextValue = useMemo(() => ({ showIcon }), [showIcon]);
206
- return /* @__PURE__ */ jsx(EnvironmentVariablesEditorReadOnlyListContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsxs(
207
- DataList,
208
- {
209
- columns: resolvedColumns,
210
- variant,
211
- scrollRef,
212
- className: cn("min-h-0", className),
213
- ...props,
214
- children: [
215
- showHeader && (header ?? /* @__PURE__ */ jsx(
216
- EnvironmentVariablesEditorReadOnlyHeader,
217
- {
218
- nameLabel,
219
- valueLabel,
220
- updatedAtLabel
221
- }
222
- )),
223
- children
224
- ]
225
- }
226
- ) });
205
+ return /* @__PURE__ */ jsx(EnvironmentVariablesEditorReadOnlyListContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsxs(DataList, { columns: resolvedColumns, scrollRef, className: cn("min-h-0", className), ...props, children: [
206
+ showHeader && (header ?? /* @__PURE__ */ jsx(
207
+ EnvironmentVariablesEditorReadOnlyHeader,
208
+ {
209
+ nameLabel,
210
+ valueLabel,
211
+ updatedAtLabel
212
+ }
213
+ )),
214
+ children
215
+ ] }) });
227
216
  }
228
217
 
229
218
  function EnvironmentVariablesEditorRoot({
@@ -1 +1 @@
1
- {"version":3,"file":"EnvironmentVariablesEditor.es.js","sources":["../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-actions.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-context.ts","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-add-button.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-messages.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-duplicate-keys-error.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-paste-hint.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-read-only-empty.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-read-only-header.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-read-only-item.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-read-only-list.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-root.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-row.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-rows.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-upload-button.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-upload.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-upload-error.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor.tsx"],"sourcesContent":["import type { EnvironmentVariablesEditorActionsProps } from './environment-variables-editor.types';\nimport { cn } from '@/lib/utils';\n\nexport function EnvironmentVariablesEditorActions({ className, ...props }: EnvironmentVariablesEditorActionsProps) {\n return <div className={cn('flex flex-wrap items-center gap-2', className)} {...props} />;\n}\n","import { createContext, use } from 'react';\n\nimport type { EnvironmentVariablesEditorRowErrors } from './environment-variables-editor.types';\nimport type { EnvironmentVariablesEditorController } from '@/hooks/use-environment-variables-editor';\nimport type { EnvironmentVariableEntry } from '@/lib/env-file';\n\ntype EnvironmentVariablesEditorRenderController = Pick<\n EnvironmentVariablesEditorController<EnvironmentVariableEntry>,\n | 'rows'\n | 'uploadError'\n | 'fileInputRef'\n | 'hasDuplicateKeys'\n | 'updateRow'\n | 'removeRow'\n | 'handleFileUpload'\n | 'handlePaste'\n | 'getRowId'\n | 'isValueRevealed'\n | 'toggleValueVisibility'\n | 'rowHasDuplicateKey'\n> & {\n appendRow: () => void;\n};\n\nexport interface EnvironmentVariablesEditorContextValue {\n editor: EnvironmentVariablesEditorRenderController;\n disabled: boolean;\n readOnly: boolean;\n rowErrors?: EnvironmentVariablesEditorRowErrors;\n}\n\nexport const EnvironmentVariablesEditorContext = createContext<EnvironmentVariablesEditorContextValue | null>(null);\n\nexport const EnvironmentVariablesEditorReadOnlyListContext = createContext({\n showIcon: false,\n});\n\nexport function useEnvironmentVariablesEditorContext(componentName: string) {\n const context = use(EnvironmentVariablesEditorContext);\n\n if (!context) {\n throw new Error(`${componentName} must be used within EnvironmentVariablesEditor.Root`);\n }\n\n return context;\n}\n","import { PlusIcon } from 'lucide-react';\n\nimport { useEnvironmentVariablesEditorContext } from './environment-variables-editor-context';\nimport type { EnvironmentVariablesEditorAddButtonProps } from './environment-variables-editor.types';\nimport { Button } from '@/ds/components/Button';\nimport { cn } from '@/lib/utils';\n\nexport function EnvironmentVariablesEditorAddButton({\n className,\n children,\n ...props\n}: EnvironmentVariablesEditorAddButtonProps) {\n const { editor, disabled, readOnly } = useEnvironmentVariablesEditorContext('EnvironmentVariablesEditor.AddButton');\n\n if (readOnly) return null;\n\n return (\n <div className={cn('flex items-center gap-2', className)} {...props}>\n <span aria-hidden=\"true\" className=\"bg-border1 h-px flex-1\" />\n <Button type=\"button\" variant=\"ghost\" size=\"sm\" disabled={disabled} onClick={() => editor.appendRow()}>\n <PlusIcon />\n {children ?? 'Add Variable'}\n </Button>\n <span aria-hidden=\"true\" className=\"bg-border1 h-px flex-1\" />\n </div>\n );\n}\n","import type { EnvironmentVariablesEditorMessagesProps } from './environment-variables-editor.types';\nimport { Notice } from '@/ds/components/Notice';\n\nexport function EnvironmentVariablesEditorMessages({\n error,\n children,\n variant = 'destructive',\n ...props\n}: EnvironmentVariablesEditorMessagesProps) {\n const message = children ?? error;\n\n if (!message) return null;\n\n return (\n <Notice variant={variant} {...props}>\n <Notice.Message>{message}</Notice.Message>\n </Notice>\n );\n}\n","import { useEnvironmentVariablesEditorContext } from './environment-variables-editor-context';\nimport { EnvironmentVariablesEditorMessages } from './environment-variables-editor-messages';\nimport type { EnvironmentVariablesEditorDuplicateKeysErrorProps } from './environment-variables-editor.types';\nimport { DUPLICATE_ENVIRONMENT_VARIABLE_MESSAGE } from '@/lib/env-file';\n\nexport function EnvironmentVariablesEditorDuplicateKeysError({\n message = DUPLICATE_ENVIRONMENT_VARIABLE_MESSAGE,\n ...props\n}: EnvironmentVariablesEditorDuplicateKeysErrorProps) {\n const { editor } = useEnvironmentVariablesEditorContext('EnvironmentVariablesEditor.DuplicateKeysError');\n\n if (!editor.hasDuplicateKeys) return null;\n\n return <EnvironmentVariablesEditorMessages error={message} {...props} />;\n}\n","import { useEnvironmentVariablesEditorContext } from './environment-variables-editor-context';\nimport type { EnvironmentVariablesEditorPasteHintProps } from './environment-variables-editor.types';\nimport { Txt } from '@/ds/components/Txt';\nimport { cn } from '@/lib/utils';\n\nexport const DEFAULT_ENVIRONMENT_VARIABLE_PASTE_HINT = 'Tip: paste a .env file into any field to import it';\n\nexport function EnvironmentVariablesEditorPasteHint({\n className,\n children,\n ...props\n}: EnvironmentVariablesEditorPasteHintProps) {\n const { readOnly } = useEnvironmentVariablesEditorContext('EnvironmentVariablesEditor.PasteHint');\n\n if (readOnly) return null;\n\n return (\n <Txt as=\"p\" variant=\"ui-xs\" className={cn('text-right text-neutral4', className)} {...props}>\n {children ?? DEFAULT_ENVIRONMENT_VARIABLE_PASTE_HINT}\n </Txt>\n );\n}\n","import type { EnvironmentVariablesEditorReadOnlyEmptyProps } from './environment-variables-editor.types';\nimport { DataList } from '@/ds/components/DataList/data-list';\n\nexport function EnvironmentVariablesEditorReadOnlyEmpty({\n message = 'No environment variables found',\n ...props\n}: EnvironmentVariablesEditorReadOnlyEmptyProps) {\n return <DataList.NoMatch message={message} {...props} />;\n}\n","import { use } from 'react';\n\nimport { EnvironmentVariablesEditorReadOnlyListContext } from './environment-variables-editor-context';\nimport type { EnvironmentVariablesEditorReadOnlyHeaderProps } from './environment-variables-editor.types';\nimport { DataList } from '@/ds/components/DataList/data-list';\n\nexport function EnvironmentVariablesEditorReadOnlyHeader({\n className,\n nameLabel = 'Key',\n valueLabel = 'Value',\n updatedAtLabel = 'Last Updated',\n ...props\n}: EnvironmentVariablesEditorReadOnlyHeaderProps) {\n const { showIcon } = use(EnvironmentVariablesEditorReadOnlyListContext);\n\n return (\n <DataList.Top className={className} {...props}>\n {showIcon && (\n <DataList.TopCell aria-hidden=\"true\" className=\"justify-center\">\n <span />\n </DataList.TopCell>\n )}\n <DataList.TopCell>{nameLabel}</DataList.TopCell>\n <DataList.TopCell>{valueLabel}</DataList.TopCell>\n <DataList.TopCell className=\"justify-end\">{updatedAtLabel}</DataList.TopCell>\n </DataList.Top>\n );\n}\n","import { CheckIcon, Code2Icon, CopyIcon, EyeIcon, EyeOffIcon } from 'lucide-react';\nimport { use, useState } from 'react';\nimport type { ReactNode } from 'react';\n\nimport { EnvironmentVariablesEditorReadOnlyListContext } from './environment-variables-editor-context';\nimport type { EnvironmentVariablesEditorReadOnlyItemProps } from './environment-variables-editor.types';\nimport { Button } from '@/ds/components/Button';\nimport { DataList } from '@/ds/components/DataList/data-list';\nimport { useCopyToClipboard } from '@/hooks/use-copy-to-clipboard';\nimport { cn } from '@/lib/utils';\n\nexport function EnvironmentVariablesEditorReadOnlyItem({\n className,\n name,\n value,\n copyValue,\n copyLabel = 'Copy value',\n updatedAt,\n revealed,\n defaultRevealed,\n onRevealedChange,\n actor,\n icon,\n ...props\n}: EnvironmentVariablesEditorReadOnlyItemProps) {\n const { showIcon } = use(EnvironmentVariablesEditorReadOnlyListContext);\n const [uncontrolledRevealed, setUncontrolledRevealed] = useState(defaultRevealed ?? false);\n const { isCopied, copyToClipboard } = useCopyToClipboard({ copiedDuration: 1500, showToast: false });\n const isRevealed = revealed ?? uncontrolledRevealed;\n const displayedValue = isRevealed ? value : '************';\n const leadingIcon = icon ?? <Code2Icon />;\n const resolvedCopyValue = copyValue ?? getCopyableReadOnlyValue(value);\n const canCopyValue = isRevealed && Boolean(resolvedCopyValue);\n\n function toggleRevealed() {\n const nextRevealed = !isRevealed;\n\n if (revealed === undefined) {\n setUncontrolledRevealed(nextRevealed);\n }\n\n onRevealedChange?.(nextRevealed);\n }\n\n function handleCopyValue() {\n if (!resolvedCopyValue) return;\n\n copyToClipboard(resolvedCopyValue);\n }\n\n return (\n <DataList.RowStatic className={cn('min-h-14', className)} {...props}>\n {showIcon && (\n <DataList.Cell className=\"justify-items-center overflow-visible\">\n <span className=\"border-border1 text-neutral3 flex size-7 items-center justify-center rounded-full border [&>svg]:size-3.5\">\n {leadingIcon}\n </span>\n </DataList.Cell>\n )}\n\n <DataList.TextCell font=\"mono\" className=\"text-ui-sm text-neutral6\">\n {name}\n </DataList.TextCell>\n\n <DataList.Cell className=\"min-w-0\">\n {value !== undefined && (\n <span className=\"flex min-w-0 items-center gap-2\">\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon-xs\"\n aria-label={isRevealed ? 'Hide value' : 'Show value'}\n onClick={toggleRevealed}\n >\n {isRevealed ? <EyeOffIcon aria-hidden /> : <EyeIcon aria-hidden />}\n </Button>\n <span className=\"group relative flex min-w-0 flex-1 items-center\">\n <span\n className={cn(\n 'block min-w-0 flex-1 truncate font-mono text-ui-xs text-neutral4',\n canCopyValue && 'pr-7',\n )}\n >\n {displayedValue}\n </span>\n {canCopyValue && (\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon-xs\"\n aria-label={isCopied ? 'Copied value' : copyLabel}\n tooltip={isCopied ? 'Copied' : copyLabel}\n className=\"absolute right-0 opacity-0 transition-opacity group-hover:opacity-100 focus:opacity-100 focus-visible:opacity-100\"\n onClick={handleCopyValue}\n >\n {isCopied ? <CheckIcon aria-hidden /> : <CopyIcon aria-hidden />}\n </Button>\n )}\n </span>\n </span>\n )}\n </DataList.Cell>\n\n <DataList.Cell className=\"text-ui-xs text-neutral3 min-w-0 justify-items-end\">\n {(updatedAt || actor) && (\n <span className=\"flex min-w-0 items-center gap-2\">\n <span className=\"truncate\">{updatedAt}</span>\n {actor}\n </span>\n )}\n </DataList.Cell>\n </DataList.RowStatic>\n );\n}\n\nfunction getCopyableReadOnlyValue(value: ReactNode) {\n if (typeof value === 'string' || typeof value === 'number') {\n return String(value);\n }\n\n return undefined;\n}\n","import { useMemo } from 'react';\n\nimport { EnvironmentVariablesEditorReadOnlyListContext } from './environment-variables-editor-context';\nimport { EnvironmentVariablesEditorReadOnlyHeader } from './environment-variables-editor-read-only-header';\nimport type { EnvironmentVariablesEditorReadOnlyListProps } from './environment-variables-editor.types';\nimport { DataList } from '@/ds/components/DataList/data-list';\nimport { cn } from '@/lib/utils';\n\nconst READ_ONLY_COLUMNS = 'minmax(12rem,1.4fr) minmax(8rem,0.9fr) minmax(8rem,auto)';\nconst READ_ONLY_COLUMNS_WITH_ICON = `auto ${READ_ONLY_COLUMNS}`;\n\nexport function EnvironmentVariablesEditorReadOnlyList({\n className,\n children,\n columns,\n header,\n showHeader = true,\n showIcon = false,\n nameLabel,\n valueLabel,\n updatedAtLabel,\n variant = 'plain',\n scrollRef,\n ...props\n}: EnvironmentVariablesEditorReadOnlyListProps) {\n const resolvedColumns = columns ?? (showIcon ? READ_ONLY_COLUMNS_WITH_ICON : READ_ONLY_COLUMNS);\n const contextValue = useMemo(() => ({ showIcon }), [showIcon]);\n\n return (\n <EnvironmentVariablesEditorReadOnlyListContext.Provider value={contextValue}>\n <DataList\n columns={resolvedColumns}\n variant={variant}\n scrollRef={scrollRef}\n className={cn('min-h-0', className)}\n {...props}\n >\n {showHeader &&\n (header ?? (\n <EnvironmentVariablesEditorReadOnlyHeader\n nameLabel={nameLabel}\n valueLabel={valueLabel}\n updatedAtLabel={updatedAtLabel}\n />\n ))}\n {children}\n </DataList>\n </EnvironmentVariablesEditorReadOnlyListContext.Provider>\n );\n}\n","import { useMemo } from 'react';\n\nimport { EnvironmentVariablesEditorContext } from './environment-variables-editor-context';\nimport type { EnvironmentVariablesEditorContextValue } from './environment-variables-editor-context';\nimport { EnvironmentVariablesEditorPasteHint } from './environment-variables-editor-paste-hint';\nimport type { EnvironmentVariablesEditorRootProps } from './environment-variables-editor.types';\nimport type { EnvironmentVariableEntry } from '@/lib/env-file';\n\nexport function EnvironmentVariablesEditorRoot<TRow extends EnvironmentVariableEntry = EnvironmentVariableEntry>({\n editor,\n className,\n children,\n disabled,\n readOnly,\n rowErrors,\n hidePasteHint,\n ...props\n}: EnvironmentVariablesEditorRootProps<TRow>) {\n const contextValue = useMemo<EnvironmentVariablesEditorContextValue>(\n () => ({\n editor: {\n rows: editor.rows,\n uploadError: editor.uploadError,\n fileInputRef: editor.fileInputRef,\n hasDuplicateKeys: editor.hasDuplicateKeys,\n updateRow: editor.updateRow,\n removeRow: editor.removeRow,\n handleFileUpload: editor.handleFileUpload,\n handlePaste: editor.handlePaste,\n getRowId: editor.getRowId,\n isValueRevealed: editor.isValueRevealed,\n toggleValueVisibility: editor.toggleValueVisibility,\n rowHasDuplicateKey: editor.rowHasDuplicateKey,\n appendRow: () => editor.appendRow(),\n },\n disabled: Boolean(disabled),\n readOnly: Boolean(readOnly),\n rowErrors,\n }),\n [editor, disabled, readOnly, rowErrors],\n );\n\n return (\n <EnvironmentVariablesEditorContext.Provider value={contextValue}>\n <div className={className} {...props}>\n {children}\n {!readOnly && !hidePasteHint && <EnvironmentVariablesEditorPasteHint />}\n </div>\n </EnvironmentVariablesEditorContext.Provider>\n );\n}\n","import { EyeIcon, EyeOffIcon, TrashIcon } from 'lucide-react';\n\nimport { useEnvironmentVariablesEditorContext } from './environment-variables-editor-context';\nimport type { EnvironmentVariablesEditorRowProps } from './environment-variables-editor.types';\nimport { Button } from '@/ds/components/Button';\nimport { FieldBlock } from '@/ds/components/FormFieldBlocks';\nimport { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput } from '@/ds/components/InputGroup';\nimport { DUPLICATE_ENVIRONMENT_VARIABLE_MESSAGE } from '@/lib/env-file';\nimport { cn } from '@/lib/utils';\n\nexport function EnvironmentVariablesEditorRow({\n row,\n index,\n rowErrors,\n keyLabel = 'Key',\n valueLabel = 'Value',\n keyPlaceholder = 'e.g: OPEN_AI_KEY',\n valuePlaceholder = 'e.g: sk-xxxxxxxx',\n duplicateKeyMessage = DUPLICATE_ENVIRONMENT_VARIABLE_MESSAGE,\n className,\n ...props\n}: EnvironmentVariablesEditorRowProps) {\n const {\n editor,\n disabled,\n readOnly,\n rowErrors: contextRowErrors,\n } = useEnvironmentVariablesEditorContext('EnvironmentVariablesEditor.Row');\n const isDisabled = disabled || readOnly;\n const resolvedRowErrors = rowErrors ?? contextRowErrors;\n const keyError = resolvedRowErrors?.[index]?.key ?? (editor.rowHasDuplicateKey(index) ? duplicateKeyMessage : null);\n const valueError = resolvedRowErrors?.[index]?.value;\n const keyFieldName = `env-key-${index}`;\n const valueFieldName = `env-value-${index}`;\n const keyInputId = `input-${keyFieldName}`;\n const valueInputId = `input-${valueFieldName}`;\n const revealValueLabel = editor.isValueRevealed(index) ? 'Hide value' : 'Show value';\n const removeRowLabel = `Remove environment variable ${row.key.trim() || index + 1}`;\n\n function handlePaste(text: string) {\n return editor.handlePaste(index, text);\n }\n\n return (\n <div className={cn('flex flex-col items-stretch gap-2 sm:flex-row sm:items-start', className)} {...props}>\n <div className=\"flex-1\">\n <FieldBlock.Layout>\n <FieldBlock.Column>\n <FieldBlock.Label name={keyFieldName}>{keyLabel}</FieldBlock.Label>\n <InputGroup className=\"w-full\">\n <InputGroupInput\n id={keyInputId}\n placeholder={keyPlaceholder}\n className=\"font-mono\"\n value={row.key}\n disabled={isDisabled}\n error={Boolean(keyError)}\n onChange={event => editor.updateRow(index, { key: event.target.value })}\n onPaste={event => {\n if (handlePaste(event.clipboardData.getData('text'))) {\n event.preventDefault();\n }\n }}\n />\n </InputGroup>\n {keyError && <FieldBlock.ErrorMsg>{keyError}</FieldBlock.ErrorMsg>}\n </FieldBlock.Column>\n </FieldBlock.Layout>\n </div>\n\n <div className=\"flex-1\">\n <FieldBlock.Layout>\n <FieldBlock.Column>\n <FieldBlock.Label name={valueFieldName}>{valueLabel}</FieldBlock.Label>\n <InputGroup className=\"w-full\">\n <InputGroupInput\n id={valueInputId}\n placeholder={valuePlaceholder}\n className=\"font-mono\"\n type={editor.isValueRevealed(index) ? 'text' : 'password'}\n value={row.value}\n disabled={isDisabled}\n error={Boolean(valueError)}\n onChange={event => editor.updateRow(index, { value: event.target.value })}\n onPaste={event => {\n if (handlePaste(event.clipboardData.getData('text'))) {\n event.preventDefault();\n }\n }}\n />\n <InputGroupAddon align=\"inline-end\">\n <InputGroupButton\n type=\"button\"\n variant=\"ghost\"\n size=\"icon-sm\"\n disabled={isDisabled}\n aria-label={revealValueLabel}\n tooltip={revealValueLabel}\n onClick={() => editor.toggleValueVisibility(index)}\n >\n {editor.isValueRevealed(index) ? <EyeOffIcon aria-hidden /> : <EyeIcon aria-hidden />}\n </InputGroupButton>\n </InputGroupAddon>\n </InputGroup>\n {valueError && <FieldBlock.ErrorMsg>{valueError}</FieldBlock.ErrorMsg>}\n </FieldBlock.Column>\n </FieldBlock.Layout>\n </div>\n\n {!readOnly && (\n <div className=\"flex items-center gap-2 self-end sm:self-auto sm:pt-7\">\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon-md\"\n disabled={disabled}\n aria-label={removeRowLabel}\n tooltip=\"Remove variable\"\n onClick={() => editor.removeRow(index)}\n >\n <TrashIcon />\n </Button>\n </div>\n )}\n </div>\n );\n}\n","import { useEnvironmentVariablesEditorContext } from './environment-variables-editor-context';\nimport { EnvironmentVariablesEditorRow } from './environment-variables-editor-row';\nimport type { EnvironmentVariablesEditorRowsProps } from './environment-variables-editor.types';\nimport { cn } from '@/lib/utils';\n\nexport function EnvironmentVariablesEditorRows({\n className,\n rowErrors,\n keyLabel,\n valueLabel,\n keyPlaceholder,\n valuePlaceholder,\n duplicateKeyMessage,\n ...props\n}: EnvironmentVariablesEditorRowsProps) {\n const { editor, rowErrors: contextRowErrors } = useEnvironmentVariablesEditorContext(\n 'EnvironmentVariablesEditor.Rows',\n );\n const resolvedRowErrors = rowErrors ?? contextRowErrors;\n\n return (\n <div className={cn('space-y-2', className)} {...props}>\n {editor.rows.map((row, index) => (\n <EnvironmentVariablesEditorRow\n key={editor.getRowId(index)}\n row={row}\n index={index}\n rowErrors={resolvedRowErrors}\n keyLabel={keyLabel}\n valueLabel={valueLabel}\n keyPlaceholder={keyPlaceholder}\n valuePlaceholder={valuePlaceholder}\n duplicateKeyMessage={duplicateKeyMessage}\n />\n ))}\n </div>\n );\n}\n","import { UploadIcon } from 'lucide-react';\n\nimport { useEnvironmentVariablesEditorContext } from './environment-variables-editor-context';\nimport type { EnvironmentVariablesEditorUploadButtonProps } from './environment-variables-editor.types';\nimport { Button } from '@/ds/components/Button';\n\nexport function EnvironmentVariablesEditorUploadButton({\n children = 'Import .env',\n inputLabel = 'Import .env file',\n disabled,\n onClick,\n type = 'button',\n variant = 'ghost',\n size = 'sm',\n ...props\n}: EnvironmentVariablesEditorUploadButtonProps) {\n const {\n editor,\n disabled: contextDisabled,\n readOnly,\n } = useEnvironmentVariablesEditorContext('EnvironmentVariablesEditor.UploadButton');\n const isDisabled = contextDisabled || disabled;\n\n if (readOnly) return null;\n\n return (\n <>\n <input\n ref={editor.fileInputRef}\n type=\"file\"\n accept=\".env,text/plain\"\n aria-label={inputLabel}\n className=\"hidden\"\n disabled={isDisabled}\n onChange={editor.handleFileUpload}\n />\n <Button\n type={type}\n variant={variant}\n size={size}\n disabled={isDisabled}\n onClick={event => {\n onClick?.(event);\n if (!event.defaultPrevented) {\n editor.fileInputRef.current?.click();\n }\n }}\n {...props}\n >\n <UploadIcon />\n {children}\n </Button>\n </>\n );\n}\n","import { useEnvironmentVariablesEditorContext } from './environment-variables-editor-context';\nimport { EnvironmentVariablesEditorUploadButton } from './environment-variables-editor-upload-button';\nimport type { EnvironmentVariablesEditorUploadProps } from './environment-variables-editor.types';\nimport { cn } from '@/lib/utils';\n\nexport function EnvironmentVariablesEditorUpload({\n className,\n children,\n ...props\n}: EnvironmentVariablesEditorUploadProps) {\n const { readOnly } = useEnvironmentVariablesEditorContext('EnvironmentVariablesEditor.Upload');\n\n if (readOnly) return null;\n\n return (\n <div className={cn('flex flex-wrap items-center justify-end gap-2', className)} {...props}>\n {children ?? <EnvironmentVariablesEditorUploadButton />}\n </div>\n );\n}\n","import { useEnvironmentVariablesEditorContext } from './environment-variables-editor-context';\nimport { EnvironmentVariablesEditorMessages } from './environment-variables-editor-messages';\nimport type { EnvironmentVariablesEditorUploadErrorProps } from './environment-variables-editor.types';\n\nexport function EnvironmentVariablesEditorUploadError(props: EnvironmentVariablesEditorUploadErrorProps) {\n const { editor } = useEnvironmentVariablesEditorContext('EnvironmentVariablesEditor.UploadError');\n\n if (!editor.uploadError) return null;\n\n return <EnvironmentVariablesEditorMessages error={editor.uploadError} {...props} />;\n}\n","import { EnvironmentVariablesEditorActions } from './environment-variables-editor-actions';\nimport { EnvironmentVariablesEditorAddButton } from './environment-variables-editor-add-button';\nimport { EnvironmentVariablesEditorDuplicateKeysError } from './environment-variables-editor-duplicate-keys-error';\nimport { EnvironmentVariablesEditorMessages } from './environment-variables-editor-messages';\nimport { EnvironmentVariablesEditorPasteHint } from './environment-variables-editor-paste-hint';\nimport { EnvironmentVariablesEditorReadOnlyEmpty } from './environment-variables-editor-read-only-empty';\nimport { EnvironmentVariablesEditorReadOnlyHeader } from './environment-variables-editor-read-only-header';\nimport { EnvironmentVariablesEditorReadOnlyItem } from './environment-variables-editor-read-only-item';\nimport { EnvironmentVariablesEditorReadOnlyList } from './environment-variables-editor-read-only-list';\nimport { EnvironmentVariablesEditorRoot } from './environment-variables-editor-root';\nimport { EnvironmentVariablesEditorRow } from './environment-variables-editor-row';\nimport { EnvironmentVariablesEditorRows } from './environment-variables-editor-rows';\nimport { EnvironmentVariablesEditorUpload } from './environment-variables-editor-upload';\nimport { EnvironmentVariablesEditorUploadButton } from './environment-variables-editor-upload-button';\nimport { EnvironmentVariablesEditorUploadError } from './environment-variables-editor-upload-error';\nimport type { EnvironmentVariablesEditorProps } from './environment-variables-editor.types';\nimport type { EnvironmentVariableEntry } from '@/lib/env-file';\nimport { DUPLICATE_ENVIRONMENT_VARIABLE_MESSAGE } from '@/lib/env-file';\nimport { cn } from '@/lib/utils';\n\nconst renderEnvironmentVariablesEditor = <TRow extends EnvironmentVariableEntry = EnvironmentVariableEntry>({\n className,\n children,\n addLabel = 'Add Variable',\n keyLabel = 'Key',\n valueLabel = 'Value',\n keyPlaceholder = 'e.g: OPEN_AI_KEY',\n valuePlaceholder = 'e.g: sk-xxxxxxxx',\n duplicateKeyMessage = DUPLICATE_ENVIRONMENT_VARIABLE_MESSAGE,\n rowErrors,\n error,\n actions,\n ...props\n}: EnvironmentVariablesEditorProps<TRow>) => {\n return (\n <EnvironmentVariablesEditorRoot\n className={cn(!children && 'space-y-3', className)}\n rowErrors={rowErrors}\n {...props}\n >\n {children ?? (\n <>\n <EnvironmentVariablesEditorUpload>\n <EnvironmentVariablesEditorUploadButton />\n </EnvironmentVariablesEditorUpload>\n <EnvironmentVariablesEditorUploadError />\n <EnvironmentVariablesEditorRows\n rowErrors={rowErrors}\n keyLabel={keyLabel}\n valueLabel={valueLabel}\n keyPlaceholder={keyPlaceholder}\n valuePlaceholder={valuePlaceholder}\n duplicateKeyMessage={duplicateKeyMessage}\n />\n <EnvironmentVariablesEditorAddButton>{addLabel}</EnvironmentVariablesEditorAddButton>\n <EnvironmentVariablesEditorDuplicateKeysError message={duplicateKeyMessage} />\n <EnvironmentVariablesEditorMessages error={error} />\n {actions && <EnvironmentVariablesEditorActions>{actions}</EnvironmentVariablesEditorActions>}\n </>\n )}\n </EnvironmentVariablesEditorRoot>\n );\n};\n\nexport const EnvironmentVariablesEditor = Object.assign(renderEnvironmentVariablesEditor, {\n Root: EnvironmentVariablesEditorRoot,\n Upload: EnvironmentVariablesEditorUpload,\n UploadButton: EnvironmentVariablesEditorUploadButton,\n UploadError: EnvironmentVariablesEditorUploadError,\n Rows: EnvironmentVariablesEditorRows,\n Row: EnvironmentVariablesEditorRow,\n AddButton: EnvironmentVariablesEditorAddButton,\n PasteHint: EnvironmentVariablesEditorPasteHint,\n Messages: EnvironmentVariablesEditorMessages,\n DuplicateKeysError: EnvironmentVariablesEditorDuplicateKeysError,\n Actions: EnvironmentVariablesEditorActions,\n ReadOnlyList: EnvironmentVariablesEditorReadOnlyList,\n ReadOnlyHeader: EnvironmentVariablesEditorReadOnlyHeader,\n ReadOnlyEmpty: EnvironmentVariablesEditorReadOnlyEmpty,\n ReadOnlyItem: EnvironmentVariablesEditorReadOnlyItem,\n});\n\nexport type {\n EnvironmentVariablesEditorActionsProps,\n EnvironmentVariablesEditorAddButtonProps,\n EnvironmentVariablesEditorDuplicateKeysErrorProps,\n EnvironmentVariablesEditorMessagesProps,\n EnvironmentVariablesEditorPasteHintProps,\n EnvironmentVariablesEditorProps,\n EnvironmentVariablesEditorReadOnlyEmptyProps,\n EnvironmentVariablesEditorReadOnlyHeaderProps,\n EnvironmentVariablesEditorReadOnlyItemProps,\n EnvironmentVariablesEditorReadOnlyListProps,\n EnvironmentVariablesEditorRootProps,\n EnvironmentVariablesEditorRowErrors,\n EnvironmentVariablesEditorRowProps,\n EnvironmentVariablesEditorRowsProps,\n EnvironmentVariablesEditorUploadButtonProps,\n EnvironmentVariablesEditorUploadErrorProps,\n EnvironmentVariablesEditorUploadProps,\n} from './environment-variables-editor.types';\n"],"names":[],"mappings":";;;;;;;;;;;;;AAGO,SAAS,iCAAA,CAAkC,EAAE,SAAA,EAAW,GAAG,OAAM,EAA2C;AACjH,EAAA,uBAAO,GAAA,CAAC,SAAI,SAAA,EAAW,EAAA,CAAG,qCAAqC,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO,CAAA;AACxF;;AC0BO,MAAM,iCAAA,GAAoC,cAA6D,IAAI,CAAA;AAE3G,MAAM,gDAAgD,aAAA,CAAc;AAAA,EACzE,QAAA,EAAU;AACZ,CAAC,CAAA;AAEM,SAAS,qCAAqC,aAAA,EAAuB;AAC1E,EAAA,MAAM,OAAA,GAAU,IAAI,iCAAiC,CAAA;AAErD,EAAA,IAAI,CAAC,OAAA,EAAS;AACZ,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA,EAAG,aAAa,CAAA,oDAAA,CAAsD,CAAA;AAAA,EACxF;AAEA,EAAA,OAAO,OAAA;AACT;;ACtCO,SAAS,mCAAA,CAAoC;AAAA,EAClD,SAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAA6C;AAC3C,EAAA,MAAM,EAAE,MAAA,EAAQ,QAAA,EAAU,QAAA,EAAS,GAAI,qCAAqC,sCAAsC,CAAA;AAElH,EAAA,IAAI,UAAU,OAAO,IAAA;AAErB,EAAA,uBACE,IAAA,CAAC,SAAI,SAAA,EAAW,EAAA,CAAG,2BAA2B,SAAS,CAAA,EAAI,GAAG,KAAA,EAC5D,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,MAAA,EAAA,EAAK,aAAA,EAAY,MAAA,EAAO,SAAA,EAAU,wBAAA,EAAyB,CAAA;AAAA,oBAC5D,IAAA,CAAC,MAAA,EAAA,EAAO,IAAA,EAAK,QAAA,EAAS,OAAA,EAAQ,OAAA,EAAQ,IAAA,EAAK,IAAA,EAAK,QAAA,EAAoB,OAAA,EAAS,MAAM,MAAA,CAAO,WAAU,EAClG,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,QAAA,EAAA,EAAS,CAAA;AAAA,MACT,QAAA,IAAY;AAAA,KAAA,EACf,CAAA;AAAA,oBACA,GAAA,CAAC,MAAA,EAAA,EAAK,aAAA,EAAY,MAAA,EAAO,WAAU,wBAAA,EAAyB;AAAA,GAAA,EAC9D,CAAA;AAEJ;;ACvBO,SAAS,kCAAA,CAAmC;AAAA,EACjD,KAAA;AAAA,EACA,QAAA;AAAA,EACA,OAAA,GAAU,aAAA;AAAA,EACV,GAAG;AACL,CAAA,EAA4C;AAC1C,EAAA,MAAM,UAAU,QAAA,IAAY,KAAA;AAE5B,EAAA,IAAI,CAAC,SAAS,OAAO,IAAA;AAErB,EAAA,uBACE,GAAA,CAAC,MAAA,EAAA,EAAO,OAAA,EAAmB,GAAG,KAAA,EAC5B,8BAAC,MAAA,CAAO,OAAA,EAAP,EAAgB,QAAA,EAAA,OAAA,EAAQ,CAAA,EAC3B,CAAA;AAEJ;;ACbO,SAAS,4CAAA,CAA6C;AAAA,EAC3D,OAAA,GAAU,sCAAA;AAAA,EACV,GAAG;AACL,CAAA,EAAsD;AACpD,EAAA,MAAM,EAAE,MAAA,EAAO,GAAI,oCAAA,CAAqC,+CAA+C,CAAA;AAEvG,EAAA,IAAI,CAAC,MAAA,CAAO,gBAAA,EAAkB,OAAO,IAAA;AAErC,EAAA,uBAAO,GAAA,CAAC,kCAAA,EAAA,EAAmC,KAAA,EAAO,OAAA,EAAU,GAAG,KAAA,EAAO,CAAA;AACxE;;ACTO,MAAM,uCAAA,GAA0C,oDAAA;AAEhD,SAAS,mCAAA,CAAoC;AAAA,EAClD,SAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAA6C;AAC3C,EAAA,MAAM,EAAE,QAAA,EAAS,GAAI,oCAAA,CAAqC,sCAAsC,CAAA;AAEhG,EAAA,IAAI,UAAU,OAAO,IAAA;AAErB,EAAA,uBACE,GAAA,CAAC,GAAA,EAAA,EAAI,EAAA,EAAG,GAAA,EAAI,SAAQ,OAAA,EAAQ,SAAA,EAAW,EAAA,CAAG,0BAAA,EAA4B,SAAS,CAAA,EAAI,GAAG,KAAA,EACnF,sBAAY,uCAAA,EACf,CAAA;AAEJ;;AClBO,SAAS,uCAAA,CAAwC;AAAA,EACtD,OAAA,GAAU,gCAAA;AAAA,EACV,GAAG;AACL,CAAA,EAAiD;AAC/C,EAAA,2BAAQ,QAAA,CAAS,OAAA,EAAT,EAAiB,OAAA,EAAmB,GAAG,KAAA,EAAO,CAAA;AACxD;;ACFO,SAAS,wCAAA,CAAyC;AAAA,EACvD,SAAA;AAAA,EACA,SAAA,GAAY,KAAA;AAAA,EACZ,UAAA,GAAa,OAAA;AAAA,EACb,cAAA,GAAiB,cAAA;AAAA,EACjB,GAAG;AACL,CAAA,EAAkD;AAChD,EAAA,MAAM,EAAE,QAAA,EAAS,GAAI,GAAA,CAAI,6CAA6C,CAAA;AAEtE,EAAA,4BACG,QAAA,CAAS,GAAA,EAAT,EAAa,SAAA,EAAuB,GAAG,KAAA,EACrC,QAAA,EAAA;AAAA,IAAA,QAAA,oBACC,GAAA,CAAC,QAAA,CAAS,OAAA,EAAT,EAAiB,aAAA,EAAY,QAAO,SAAA,EAAU,gBAAA,EAC7C,QAAA,kBAAA,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EACR,CAAA;AAAA,oBAEF,GAAA,CAAC,QAAA,CAAS,OAAA,EAAT,EAAkB,QAAA,EAAA,SAAA,EAAU,CAAA;AAAA,oBAC7B,GAAA,CAAC,QAAA,CAAS,OAAA,EAAT,EAAkB,QAAA,EAAA,UAAA,EAAW,CAAA;AAAA,wBAC7B,QAAA,CAAS,OAAA,EAAT,EAAiB,SAAA,EAAU,eAAe,QAAA,EAAA,cAAA,EAAe;AAAA,GAAA,EAC5D,CAAA;AAEJ;;AChBO,SAAS,sCAAA,CAAuC;AAAA,EACrD,SAAA;AAAA,EACA,IAAA;AAAA,EACA,KAAA;AAAA,EACA,SAAA;AAAA,EACA,SAAA,GAAY,YAAA;AAAA,EACZ,SAAA;AAAA,EACA,QAAA;AAAA,EACA,eAAA;AAAA,EACA,gBAAA;AAAA,EACA,KAAA;AAAA,EACA,IAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAgD;AAC9C,EAAA,MAAM,EAAE,QAAA,EAAS,GAAI,GAAA,CAAI,6CAA6C,CAAA;AACtE,EAAA,MAAM,CAAC,oBAAA,EAAsB,uBAAuB,CAAA,GAAI,QAAA,CAAS,mBAAmB,KAAK,CAAA;AACzF,EAAA,MAAM,EAAE,QAAA,EAAU,eAAA,EAAgB,GAAI,kBAAA,CAAmB,EAAE,cAAA,EAAgB,IAAA,EAAM,SAAA,EAAW,KAAA,EAAO,CAAA;AACnG,EAAA,MAAM,aAAa,QAAA,IAAY,oBAAA;AAC/B,EAAA,MAAM,cAAA,GAAiB,aAAa,KAAA,GAAQ,cAAA;AAC5C,EAAA,MAAM,WAAA,GAAc,IAAA,oBAAQ,GAAA,CAAC,SAAA,EAAA,EAAU,CAAA;AACvC,EAAA,MAAM,iBAAA,GAAoB,SAAA,IAAa,wBAAA,CAAyB,KAAK,CAAA;AACrE,EAAA,MAAM,YAAA,GAAe,UAAA,IAAc,OAAA,CAAQ,iBAAiB,CAAA;AAE5D,EAAA,SAAS,cAAA,GAAiB;AACxB,IAAA,MAAM,eAAe,CAAC,UAAA;AAEtB,IAAA,IAAI,aAAa,MAAA,EAAW;AAC1B,MAAA,uBAAA,CAAwB,YAAY,CAAA;AAAA,IACtC;AAEA,IAAA,gBAAA,GAAmB,YAAY,CAAA;AAAA,EACjC;AAEA,EAAA,SAAS,eAAA,GAAkB;AACzB,IAAA,IAAI,CAAC,iBAAA,EAAmB;AAExB,IAAA,eAAA,CAAgB,iBAAiB,CAAA;AAAA,EACnC;AAEA,EAAA,uBACE,IAAA,CAAC,QAAA,CAAS,SAAA,EAAT,EAAmB,SAAA,EAAW,GAAG,UAAA,EAAY,SAAS,CAAA,EAAI,GAAG,KAAA,EAC3D,QAAA,EAAA;AAAA,IAAA,QAAA,oBACC,GAAA,CAAC,QAAA,CAAS,IAAA,EAAT,EAAc,SAAA,EAAU,uCAAA,EACvB,QAAA,kBAAA,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,2GAAA,EACb,QAAA,EAAA,WAAA,EACH,CAAA,EACF,CAAA;AAAA,oBAGF,GAAA,CAAC,SAAS,QAAA,EAAT,EAAkB,MAAK,MAAA,EAAO,SAAA,EAAU,4BACtC,QAAA,EAAA,IAAA,EACH,CAAA;AAAA,oBAEA,GAAA,CAAC,QAAA,CAAS,IAAA,EAAT,EAAc,SAAA,EAAU,SAAA,EACtB,QAAA,EAAA,KAAA,KAAU,MAAA,oBACT,IAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,iCAAA,EACd,QAAA,EAAA;AAAA,sBAAA,GAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,IAAA,EAAK,QAAA;AAAA,UACL,OAAA,EAAQ,OAAA;AAAA,UACR,IAAA,EAAK,SAAA;AAAA,UACL,YAAA,EAAY,aAAa,YAAA,GAAe,YAAA;AAAA,UACxC,OAAA,EAAS,cAAA;AAAA,UAER,QAAA,EAAA,UAAA,uBAAc,UAAA,EAAA,EAAW,aAAA,EAAW,MAAC,CAAA,mBAAK,GAAA,CAAC,OAAA,EAAA,EAAQ,aAAA,EAAW,IAAA,EAAC;AAAA;AAAA,OAClE;AAAA,sBACA,IAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,iDAAA,EACd,QAAA,EAAA;AAAA,wBAAA,GAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAW,EAAA;AAAA,cACT,kEAAA;AAAA,cACA,YAAA,IAAgB;AAAA,aAClB;AAAA,YAEC,QAAA,EAAA;AAAA;AAAA,SACH;AAAA,QACC,YAAA,oBACC,GAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAK,QAAA;AAAA,YACL,OAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAK,SAAA;AAAA,YACL,YAAA,EAAY,WAAW,cAAA,GAAiB,SAAA;AAAA,YACxC,OAAA,EAAS,WAAW,QAAA,GAAW,SAAA;AAAA,YAC/B,SAAA,EAAU,mHAAA;AAAA,YACV,OAAA,EAAS,eAAA;AAAA,YAER,QAAA,EAAA,QAAA,uBAAY,SAAA,EAAA,EAAU,aAAA,EAAW,MAAC,CAAA,mBAAK,GAAA,CAAC,QAAA,EAAA,EAAS,aAAA,EAAW,IAAA,EAAC;AAAA;AAAA;AAChE,OAAA,EAEJ;AAAA,KAAA,EACF,CAAA,EAEJ,CAAA;AAAA,oBAEA,GAAA,CAAC,QAAA,CAAS,IAAA,EAAT,EAAc,SAAA,EAAU,oDAAA,EACrB,QAAA,EAAA,CAAA,SAAA,IAAa,KAAA,qBACb,IAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,iCAAA,EACd,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,UAAA,EAAY,QAAA,EAAA,SAAA,EAAU,CAAA;AAAA,MACrC;AAAA,KAAA,EACH,CAAA,EAEJ;AAAA,GAAA,EACF,CAAA;AAEJ;AAEA,SAAS,yBAAyB,KAAA,EAAkB;AAClD,EAAA,IAAI,OAAO,KAAA,KAAU,QAAA,IAAY,OAAO,UAAU,QAAA,EAAU;AAC1D,IAAA,OAAO,OAAO,KAAK,CAAA;AAAA,EACrB;AAEA,EAAA,OAAO,MAAA;AACT;;ACjHA,MAAM,iBAAA,GAAoB,0DAAA;AAC1B,MAAM,2BAAA,GAA8B,QAAQ,iBAAiB,CAAA,CAAA;AAEtD,SAAS,sCAAA,CAAuC;AAAA,EACrD,SAAA;AAAA,EACA,QAAA;AAAA,EACA,OAAA;AAAA,EACA,MAAA;AAAA,EACA,UAAA,GAAa,IAAA;AAAA,EACb,QAAA,GAAW,KAAA;AAAA,EACX,SAAA;AAAA,EACA,UAAA;AAAA,EACA,cAAA;AAAA,EACA,OAAA,GAAU,OAAA;AAAA,EACV,SAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAgD;AAC9C,EAAA,MAAM,eAAA,GAAkB,OAAA,KAAY,QAAA,GAAW,2BAAA,GAA8B,iBAAA,CAAA;AAC7E,EAAA,MAAM,YAAA,GAAe,QAAQ,OAAO,EAAE,UAAS,CAAA,EAAI,CAAC,QAAQ,CAAC,CAAA;AAE7D,EAAA,uBACE,GAAA,CAAC,6CAAA,CAA8C,QAAA,EAA9C,EAAuD,OAAO,YAAA,EAC7D,QAAA,kBAAA,IAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,OAAA,EAAS,eAAA;AAAA,MACT,OAAA;AAAA,MACA,SAAA;AAAA,MACA,SAAA,EAAW,EAAA,CAAG,SAAA,EAAW,SAAS,CAAA;AAAA,MACjC,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,UAAA,KACE,MAAA,oBACC,GAAA;AAAA,UAAC,wCAAA;AAAA,UAAA;AAAA,YACC,SAAA;AAAA,YACA,UAAA;AAAA,YACA;AAAA;AAAA,SACF,CAAA;AAAA,QAEH;AAAA;AAAA;AAAA,GACH,EACF,CAAA;AAEJ;;ACzCO,SAAS,8BAAA,CAAiG;AAAA,EAC/G,MAAA;AAAA,EACA,SAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA,SAAA;AAAA,EACA,aAAA;AAAA,EACA,GAAG;AACL,CAAA,EAA8C;AAC5C,EAAA,MAAM,YAAA,GAAe,OAAA;AAAA,IACnB,OAAO;AAAA,MACL,MAAA,EAAQ;AAAA,QACN,MAAM,MAAA,CAAO,IAAA;AAAA,QACb,aAAa,MAAA,CAAO,WAAA;AAAA,QACpB,cAAc,MAAA,CAAO,YAAA;AAAA,QACrB,kBAAkB,MAAA,CAAO,gBAAA;AAAA,QACzB,WAAW,MAAA,CAAO,SAAA;AAAA,QAClB,WAAW,MAAA,CAAO,SAAA;AAAA,QAClB,kBAAkB,MAAA,CAAO,gBAAA;AAAA,QACzB,aAAa,MAAA,CAAO,WAAA;AAAA,QACpB,UAAU,MAAA,CAAO,QAAA;AAAA,QACjB,iBAAiB,MAAA,CAAO,eAAA;AAAA,QACxB,uBAAuB,MAAA,CAAO,qBAAA;AAAA,QAC9B,oBAAoB,MAAA,CAAO,kBAAA;AAAA,QAC3B,SAAA,EAAW,MAAM,MAAA,CAAO,SAAA;AAAU,OACpC;AAAA,MACA,QAAA,EAAU,QAAQ,QAAQ,CAAA;AAAA,MAC1B,QAAA,EAAU,QAAQ,QAAQ,CAAA;AAAA,MAC1B;AAAA,KACF,CAAA;AAAA,IACA,CAAC,MAAA,EAAQ,QAAA,EAAU,QAAA,EAAU,SAAS;AAAA,GACxC;AAEA,EAAA,uBACE,GAAA,CAAC,iCAAA,CAAkC,QAAA,EAAlC,EAA2C,KAAA,EAAO,cACjD,QAAA,kBAAA,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAuB,GAAG,KAAA,EAC5B,QAAA,EAAA;AAAA,IAAA,QAAA;AAAA,IACA,CAAC,QAAA,IAAY,CAAC,aAAA,wBAAkB,mCAAA,EAAA,EAAoC;AAAA,GAAA,EACvE,CAAA,EACF,CAAA;AAEJ;;ACxCO,SAAS,6BAAA,CAA8B;AAAA,EAC5C,GAAA;AAAA,EACA,KAAA;AAAA,EACA,SAAA;AAAA,EACA,QAAA,GAAW,KAAA;AAAA,EACX,UAAA,GAAa,OAAA;AAAA,EACb,cAAA,GAAiB,kBAAA;AAAA,EACjB,gBAAA,GAAmB,kBAAA;AAAA,EACnB,mBAAA,GAAsB,sCAAA;AAAA,EACtB,SAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAuC;AACrC,EAAA,MAAM;AAAA,IACJ,MAAA;AAAA,IACA,QAAA;AAAA,IACA,QAAA;AAAA,IACA,SAAA,EAAW;AAAA,GACb,GAAI,qCAAqC,gCAAgC,CAAA;AACzE,EAAA,MAAM,aAAa,QAAA,IAAY,QAAA;AAC/B,EAAA,MAAM,oBAAoB,SAAA,IAAa,gBAAA;AACvC,EAAA,MAAM,QAAA,GAAW,oBAAoB,KAAK,CAAA,EAAG,QAAQ,MAAA,CAAO,kBAAA,CAAmB,KAAK,CAAA,GAAI,mBAAA,GAAsB,IAAA,CAAA;AAC9G,EAAA,MAAM,UAAA,GAAa,iBAAA,GAAoB,KAAK,CAAA,EAAG,KAAA;AAC/C,EAAA,MAAM,YAAA,GAAe,WAAW,KAAK,CAAA,CAAA;AACrC,EAAA,MAAM,cAAA,GAAiB,aAAa,KAAK,CAAA,CAAA;AACzC,EAAA,MAAM,UAAA,GAAa,SAAS,YAAY,CAAA,CAAA;AACxC,EAAA,MAAM,YAAA,GAAe,SAAS,cAAc,CAAA,CAAA;AAC5C,EAAA,MAAM,gBAAA,GAAmB,MAAA,CAAO,eAAA,CAAgB,KAAK,IAAI,YAAA,GAAe,YAAA;AACxE,EAAA,MAAM,iBAAiB,CAAA,4BAAA,EAA+B,GAAA,CAAI,IAAI,IAAA,EAAK,IAAK,QAAQ,CAAC,CAAA,CAAA;AAEjF,EAAA,SAAS,YAAY,IAAA,EAAc;AACjC,IAAA,OAAO,MAAA,CAAO,WAAA,CAAY,KAAA,EAAO,IAAI,CAAA;AAAA,EACvC;AAEA,EAAA,uBACE,IAAA,CAAC,SAAI,SAAA,EAAW,EAAA,CAAG,gEAAgE,SAAS,CAAA,EAAI,GAAG,KAAA,EACjG,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,QAAA,EACb,QAAA,kBAAA,GAAA,CAAC,UAAA,CAAW,QAAX,EACC,QAAA,kBAAA,IAAA,CAAC,UAAA,CAAW,MAAA,EAAX,EACC,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,UAAA,CAAW,KAAA,EAAX,EAAiB,IAAA,EAAM,cAAe,QAAA,EAAA,QAAA,EAAS,CAAA;AAAA,sBAChD,GAAA,CAAC,UAAA,EAAA,EAAW,SAAA,EAAU,QAAA,EACpB,QAAA,kBAAA,GAAA;AAAA,QAAC,eAAA;AAAA,QAAA;AAAA,UACC,EAAA,EAAI,UAAA;AAAA,UACJ,WAAA,EAAa,cAAA;AAAA,UACb,SAAA,EAAU,WAAA;AAAA,UACV,OAAO,GAAA,CAAI,GAAA;AAAA,UACX,QAAA,EAAU,UAAA;AAAA,UACV,KAAA,EAAO,QAAQ,QAAQ,CAAA;AAAA,UACvB,QAAA,EAAU,CAAA,KAAA,KAAS,MAAA,CAAO,SAAA,CAAU,KAAA,EAAO,EAAE,GAAA,EAAK,KAAA,CAAM,MAAA,CAAO,KAAA,EAAO,CAAA;AAAA,UACtE,SAAS,CAAA,KAAA,KAAS;AAChB,YAAA,IAAI,YAAY,KAAA,CAAM,aAAA,CAAc,OAAA,CAAQ,MAAM,CAAC,CAAA,EAAG;AACpD,cAAA,KAAA,CAAM,cAAA,EAAe;AAAA,YACvB;AAAA,UACF;AAAA;AAAA,OACF,EACF,CAAA;AAAA,MACC,QAAA,oBAAY,GAAA,CAAC,UAAA,CAAW,QAAA,EAAX,EAAqB,QAAA,EAAA,QAAA,EAAS;AAAA,KAAA,EAC9C,GACF,CAAA,EACF,CAAA;AAAA,oBAEA,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,QAAA,EACb,QAAA,kBAAA,GAAA,CAAC,UAAA,CAAW,MAAA,EAAX,EACC,QAAA,kBAAA,IAAA,CAAC,UAAA,CAAW,MAAA,EAAX,EACC,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,UAAA,CAAW,KAAA,EAAX,EAAiB,IAAA,EAAM,gBAAiB,QAAA,EAAA,UAAA,EAAW,CAAA;AAAA,sBACpD,IAAA,CAAC,UAAA,EAAA,EAAW,SAAA,EAAU,QAAA,EACpB,QAAA,EAAA;AAAA,wBAAA,GAAA;AAAA,UAAC,eAAA;AAAA,UAAA;AAAA,YACC,EAAA,EAAI,YAAA;AAAA,YACJ,WAAA,EAAa,gBAAA;AAAA,YACb,SAAA,EAAU,WAAA;AAAA,YACV,IAAA,EAAM,MAAA,CAAO,eAAA,CAAgB,KAAK,IAAI,MAAA,GAAS,UAAA;AAAA,YAC/C,OAAO,GAAA,CAAI,KAAA;AAAA,YACX,QAAA,EAAU,UAAA;AAAA,YACV,KAAA,EAAO,QAAQ,UAAU,CAAA;AAAA,YACzB,QAAA,EAAU,CAAA,KAAA,KAAS,MAAA,CAAO,SAAA,CAAU,KAAA,EAAO,EAAE,KAAA,EAAO,KAAA,CAAM,MAAA,CAAO,KAAA,EAAO,CAAA;AAAA,YACxE,SAAS,CAAA,KAAA,KAAS;AAChB,cAAA,IAAI,YAAY,KAAA,CAAM,aAAA,CAAc,OAAA,CAAQ,MAAM,CAAC,CAAA,EAAG;AACpD,gBAAA,KAAA,CAAM,cAAA,EAAe;AAAA,cACvB;AAAA,YACF;AAAA;AAAA,SACF;AAAA,wBACA,GAAA,CAAC,eAAA,EAAA,EAAgB,KAAA,EAAM,YAAA,EACrB,QAAA,kBAAA,GAAA;AAAA,UAAC,gBAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAK,QAAA;AAAA,YACL,OAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAK,SAAA;AAAA,YACL,QAAA,EAAU,UAAA;AAAA,YACV,YAAA,EAAY,gBAAA;AAAA,YACZ,OAAA,EAAS,gBAAA;AAAA,YACT,OAAA,EAAS,MAAM,MAAA,CAAO,qBAAA,CAAsB,KAAK,CAAA;AAAA,YAEhD,QAAA,EAAA,MAAA,CAAO,eAAA,CAAgB,KAAK,CAAA,mBAAI,GAAA,CAAC,UAAA,EAAA,EAAW,aAAA,EAAW,IAAA,EAAC,CAAA,mBAAK,GAAA,CAAC,OAAA,EAAA,EAAQ,aAAA,EAAW,IAAA,EAAC;AAAA;AAAA,SACrF,EACF;AAAA,OAAA,EACF,CAAA;AAAA,MACC,UAAA,oBAAc,GAAA,CAAC,UAAA,CAAW,QAAA,EAAX,EAAqB,QAAA,EAAA,UAAA,EAAW;AAAA,KAAA,EAClD,GACF,CAAA,EACF,CAAA;AAAA,IAEC,CAAC,QAAA,oBACA,GAAA,CAAC,KAAA,EAAA,EAAI,WAAU,uDAAA,EACb,QAAA,kBAAA,GAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAK,QAAA;AAAA,QACL,OAAA,EAAQ,OAAA;AAAA,QACR,IAAA,EAAK,SAAA;AAAA,QACL,QAAA;AAAA,QACA,YAAA,EAAY,cAAA;AAAA,QACZ,OAAA,EAAQ,iBAAA;AAAA,QACR,OAAA,EAAS,MAAM,MAAA,CAAO,SAAA,CAAU,KAAK,CAAA;AAAA,QAErC,8BAAC,SAAA,EAAA,EAAU;AAAA;AAAA,KACb,EACF;AAAA,GAAA,EAEJ,CAAA;AAEJ;;ACzHO,SAAS,8BAAA,CAA+B;AAAA,EAC7C,SAAA;AAAA,EACA,SAAA;AAAA,EACA,QAAA;AAAA,EACA,UAAA;AAAA,EACA,cAAA;AAAA,EACA,gBAAA;AAAA,EACA,mBAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAwC;AACtC,EAAA,MAAM,EAAE,MAAA,EAAQ,SAAA,EAAW,gBAAA,EAAiB,GAAI,oCAAA;AAAA,IAC9C;AAAA,GACF;AACA,EAAA,MAAM,oBAAoB,SAAA,IAAa,gBAAA;AAEvC,EAAA,uBACE,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,aAAa,SAAS,CAAA,EAAI,GAAG,KAAA,EAC7C,QAAA,EAAA,MAAA,CAAO,IAAA,CAAK,GAAA,CAAI,CAAC,KAAK,KAAA,qBACrB,GAAA;AAAA,IAAC,6BAAA;AAAA,IAAA;AAAA,MAEC,GAAA;AAAA,MACA,KAAA;AAAA,MACA,SAAA,EAAW,iBAAA;AAAA,MACX,QAAA;AAAA,MACA,UAAA;AAAA,MACA,cAAA;AAAA,MACA,gBAAA;AAAA,MACA;AAAA,KAAA;AAAA,IARK,MAAA,CAAO,SAAS,KAAK;AAAA,GAU7B,CAAA,EACH,CAAA;AAEJ;;AC/BO,SAAS,sCAAA,CAAuC;AAAA,EACrD,QAAA,GAAW,aAAA;AAAA,EACX,UAAA,GAAa,kBAAA;AAAA,EACb,QAAA;AAAA,EACA,OAAA;AAAA,EACA,IAAA,GAAO,QAAA;AAAA,EACP,OAAA,GAAU,OAAA;AAAA,EACV,IAAA,GAAO,IAAA;AAAA,EACP,GAAG;AACL,CAAA,EAAgD;AAC9C,EAAA,MAAM;AAAA,IACJ,MAAA;AAAA,IACA,QAAA,EAAU,eAAA;AAAA,IACV;AAAA,GACF,GAAI,qCAAqC,yCAAyC,CAAA;AAClF,EAAA,MAAM,aAAa,eAAA,IAAmB,QAAA;AAEtC,EAAA,IAAI,UAAU,OAAO,IAAA;AAErB,EAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAA,GAAA;AAAA,MAAC,OAAA;AAAA,MAAA;AAAA,QACC,KAAK,MAAA,CAAO,YAAA;AAAA,QACZ,IAAA,EAAK,MAAA;AAAA,QACL,MAAA,EAAO,iBAAA;AAAA,QACP,YAAA,EAAY,UAAA;AAAA,QACZ,SAAA,EAAU,QAAA;AAAA,QACV,QAAA,EAAU,UAAA;AAAA,QACV,UAAU,MAAA,CAAO;AAAA;AAAA,KACnB;AAAA,oBACA,IAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,IAAA;AAAA,QACA,OAAA;AAAA,QACA,IAAA;AAAA,QACA,QAAA,EAAU,UAAA;AAAA,QACV,SAAS,CAAA,KAAA,KAAS;AAChB,UAAA,OAAA,GAAU,KAAK,CAAA;AACf,UAAA,IAAI,CAAC,MAAM,gBAAA,EAAkB;AAC3B,YAAA,MAAA,CAAO,YAAA,CAAa,SAAS,KAAA,EAAM;AAAA,UACrC;AAAA,QACF,CAAA;AAAA,QACC,GAAG,KAAA;AAAA,QAEJ,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,UAAA,EAAA,EAAW,CAAA;AAAA,UACX;AAAA;AAAA;AAAA;AACH,GAAA,EACF,CAAA;AAEJ;;ACjDO,SAAS,gCAAA,CAAiC;AAAA,EAC/C,SAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAA0C;AACxC,EAAA,MAAM,EAAE,QAAA,EAAS,GAAI,oCAAA,CAAqC,mCAAmC,CAAA;AAE7F,EAAA,IAAI,UAAU,OAAO,IAAA;AAErB,EAAA,uBACE,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,+CAAA,EAAiD,SAAS,CAAA,EAAI,GAAG,KAAA,EACjF,QAAA,EAAA,QAAA,oBAAY,GAAA,CAAC,sCAAA,EAAA,EAAuC,CAAA,EACvD,CAAA;AAEJ;;ACfO,SAAS,sCAAsC,KAAA,EAAmD;AACvG,EAAA,MAAM,EAAE,MAAA,EAAO,GAAI,oCAAA,CAAqC,wCAAwC,CAAA;AAEhG,EAAA,IAAI,CAAC,MAAA,CAAO,WAAA,EAAa,OAAO,IAAA;AAEhC,EAAA,2BAAQ,kCAAA,EAAA,EAAmC,KAAA,EAAO,MAAA,CAAO,WAAA,EAAc,GAAG,KAAA,EAAO,CAAA;AACnF;;ACUA,MAAM,mCAAmC,CAAmE;AAAA,EAC1G,SAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA,GAAW,cAAA;AAAA,EACX,QAAA,GAAW,KAAA;AAAA,EACX,UAAA,GAAa,OAAA;AAAA,EACb,cAAA,GAAiB,kBAAA;AAAA,EACjB,gBAAA,GAAmB,kBAAA;AAAA,EACnB,mBAAA,GAAsB,sCAAA;AAAA,EACtB,SAAA;AAAA,EACA,KAAA;AAAA,EACA,OAAA;AAAA,EACA,GAAG;AACL,CAAA,KAA6C;AAC3C,EAAA,uBACE,GAAA;AAAA,IAAC,8BAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA,CAAG,CAAC,QAAA,IAAY,aAAa,SAAS,CAAA;AAAA,MACjD,SAAA;AAAA,MACC,GAAG,KAAA;AAAA,MAEH,sCACC,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,gCAAA,EAAA,EACC,QAAA,kBAAA,GAAA,CAAC,sCAAA,EAAA,EAAuC,CAAA,EAC1C,CAAA;AAAA,4BACC,qCAAA,EAAA,EAAsC,CAAA;AAAA,wBACvC,GAAA;AAAA,UAAC,8BAAA;AAAA,UAAA;AAAA,YACC,SAAA;AAAA,YACA,QAAA;AAAA,YACA,UAAA;AAAA,YACA,cAAA;AAAA,YACA,gBAAA;AAAA,YACA;AAAA;AAAA,SACF;AAAA,wBACA,GAAA,CAAC,uCAAqC,QAAA,EAAA,QAAA,EAAS,CAAA;AAAA,wBAC/C,GAAA,CAAC,4CAAA,EAAA,EAA6C,OAAA,EAAS,mBAAA,EAAqB,CAAA;AAAA,wBAC5E,GAAA,CAAC,sCAAmC,KAAA,EAAc,CAAA;AAAA,QACjD,OAAA,oBAAW,GAAA,CAAC,iCAAA,EAAA,EAAmC,QAAA,EAAA,OAAA,EAAQ;AAAA,OAAA,EAC1D;AAAA;AAAA,GAEJ;AAEJ,CAAA;AAEO,MAAM,0BAAA,GAA6B,MAAA,CAAO,MAAA,CAAO,gCAAA,EAAkC;AAAA,EACxF,IAAA,EAAM,8BAAA;AAAA,EACN,MAAA,EAAQ,gCAAA;AAAA,EACR,YAAA,EAAc,sCAAA;AAAA,EACd,WAAA,EAAa,qCAAA;AAAA,EACb,IAAA,EAAM,8BAAA;AAAA,EACN,GAAA,EAAK,6BAAA;AAAA,EACL,SAAA,EAAW,mCAAA;AAAA,EACX,SAAA,EAAW,mCAAA;AAAA,EACX,QAAA,EAAU,kCAAA;AAAA,EACV,kBAAA,EAAoB,4CAAA;AAAA,EACpB,OAAA,EAAS,iCAAA;AAAA,EACT,YAAA,EAAc,sCAAA;AAAA,EACd,cAAA,EAAgB,wCAAA;AAAA,EAChB,aAAA,EAAe,uCAAA;AAAA,EACf,YAAA,EAAc;AAChB,CAAC;;;;"}
1
+ {"version":3,"file":"EnvironmentVariablesEditor.es.js","sources":["../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-actions.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-context.ts","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-add-button.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-messages.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-duplicate-keys-error.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-paste-hint.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-read-only-empty.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-read-only-header.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-read-only-item.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-read-only-list.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-root.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-row.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-rows.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-upload-button.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-upload.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-upload-error.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor.tsx"],"sourcesContent":["import type { EnvironmentVariablesEditorActionsProps } from './environment-variables-editor.types';\nimport { cn } from '@/lib/utils';\n\nexport function EnvironmentVariablesEditorActions({ className, ...props }: EnvironmentVariablesEditorActionsProps) {\n return <div className={cn('flex flex-wrap items-center gap-2', className)} {...props} />;\n}\n","import { createContext, use } from 'react';\n\nimport type { EnvironmentVariablesEditorRowErrors } from './environment-variables-editor.types';\nimport type { EnvironmentVariablesEditorController } from '@/hooks/use-environment-variables-editor';\nimport type { EnvironmentVariableEntry } from '@/lib/env-file';\n\ntype EnvironmentVariablesEditorRenderController = Pick<\n EnvironmentVariablesEditorController<EnvironmentVariableEntry>,\n | 'rows'\n | 'uploadError'\n | 'fileInputRef'\n | 'hasDuplicateKeys'\n | 'updateRow'\n | 'removeRow'\n | 'handleFileUpload'\n | 'handlePaste'\n | 'getRowId'\n | 'isValueRevealed'\n | 'toggleValueVisibility'\n | 'rowHasDuplicateKey'\n> & {\n appendRow: () => void;\n};\n\nexport interface EnvironmentVariablesEditorContextValue {\n editor: EnvironmentVariablesEditorRenderController;\n disabled: boolean;\n readOnly: boolean;\n rowErrors?: EnvironmentVariablesEditorRowErrors;\n}\n\nexport const EnvironmentVariablesEditorContext = createContext<EnvironmentVariablesEditorContextValue | null>(null);\n\nexport const EnvironmentVariablesEditorReadOnlyListContext = createContext({\n showIcon: false,\n});\n\nexport function useEnvironmentVariablesEditorContext(componentName: string) {\n const context = use(EnvironmentVariablesEditorContext);\n\n if (!context) {\n throw new Error(`${componentName} must be used within EnvironmentVariablesEditor.Root`);\n }\n\n return context;\n}\n","import { PlusIcon } from 'lucide-react';\n\nimport { useEnvironmentVariablesEditorContext } from './environment-variables-editor-context';\nimport type { EnvironmentVariablesEditorAddButtonProps } from './environment-variables-editor.types';\nimport { Button } from '@/ds/components/Button';\nimport { cn } from '@/lib/utils';\n\nexport function EnvironmentVariablesEditorAddButton({\n className,\n children,\n ...props\n}: EnvironmentVariablesEditorAddButtonProps) {\n const { editor, disabled, readOnly } = useEnvironmentVariablesEditorContext('EnvironmentVariablesEditor.AddButton');\n\n if (readOnly) return null;\n\n return (\n <div className={cn('flex items-center gap-2', className)} {...props}>\n <span aria-hidden=\"true\" className=\"bg-border1 h-px flex-1\" />\n <Button type=\"button\" variant=\"ghost\" size=\"sm\" disabled={disabled} onClick={() => editor.appendRow()}>\n <PlusIcon />\n {children ?? 'Add Variable'}\n </Button>\n <span aria-hidden=\"true\" className=\"bg-border1 h-px flex-1\" />\n </div>\n );\n}\n","import type { EnvironmentVariablesEditorMessagesProps } from './environment-variables-editor.types';\nimport { Notice } from '@/ds/components/Notice';\n\nexport function EnvironmentVariablesEditorMessages({\n error,\n children,\n variant = 'destructive',\n ...props\n}: EnvironmentVariablesEditorMessagesProps) {\n const message = children ?? error;\n\n if (!message) return null;\n\n return (\n <Notice variant={variant} {...props}>\n <Notice.Message>{message}</Notice.Message>\n </Notice>\n );\n}\n","import { useEnvironmentVariablesEditorContext } from './environment-variables-editor-context';\nimport { EnvironmentVariablesEditorMessages } from './environment-variables-editor-messages';\nimport type { EnvironmentVariablesEditorDuplicateKeysErrorProps } from './environment-variables-editor.types';\nimport { DUPLICATE_ENVIRONMENT_VARIABLE_MESSAGE } from '@/lib/env-file';\n\nexport function EnvironmentVariablesEditorDuplicateKeysError({\n message = DUPLICATE_ENVIRONMENT_VARIABLE_MESSAGE,\n ...props\n}: EnvironmentVariablesEditorDuplicateKeysErrorProps) {\n const { editor } = useEnvironmentVariablesEditorContext('EnvironmentVariablesEditor.DuplicateKeysError');\n\n if (!editor.hasDuplicateKeys) return null;\n\n return <EnvironmentVariablesEditorMessages error={message} {...props} />;\n}\n","import { useEnvironmentVariablesEditorContext } from './environment-variables-editor-context';\nimport type { EnvironmentVariablesEditorPasteHintProps } from './environment-variables-editor.types';\nimport { Txt } from '@/ds/components/Txt';\nimport { cn } from '@/lib/utils';\n\nexport const DEFAULT_ENVIRONMENT_VARIABLE_PASTE_HINT = 'Tip: paste a .env file into any field to import it';\n\nexport function EnvironmentVariablesEditorPasteHint({\n className,\n children,\n ...props\n}: EnvironmentVariablesEditorPasteHintProps) {\n const { readOnly } = useEnvironmentVariablesEditorContext('EnvironmentVariablesEditor.PasteHint');\n\n if (readOnly) return null;\n\n return (\n <Txt as=\"p\" variant=\"ui-xs\" className={cn('text-right text-neutral4', className)} {...props}>\n {children ?? DEFAULT_ENVIRONMENT_VARIABLE_PASTE_HINT}\n </Txt>\n );\n}\n","import type { EnvironmentVariablesEditorReadOnlyEmptyProps } from './environment-variables-editor.types';\nimport { DataList } from '@/ds/components/DataList/data-list';\n\nexport function EnvironmentVariablesEditorReadOnlyEmpty({\n message = 'No environment variables found',\n ...props\n}: EnvironmentVariablesEditorReadOnlyEmptyProps) {\n return <DataList.NoMatch message={message} {...props} />;\n}\n","import { use } from 'react';\n\nimport { EnvironmentVariablesEditorReadOnlyListContext } from './environment-variables-editor-context';\nimport type { EnvironmentVariablesEditorReadOnlyHeaderProps } from './environment-variables-editor.types';\nimport { DataList } from '@/ds/components/DataList/data-list';\n\nexport function EnvironmentVariablesEditorReadOnlyHeader({\n className,\n nameLabel = 'Key',\n valueLabel = 'Value',\n updatedAtLabel = 'Last Updated',\n ...props\n}: EnvironmentVariablesEditorReadOnlyHeaderProps) {\n const { showIcon } = use(EnvironmentVariablesEditorReadOnlyListContext);\n\n return (\n <DataList.Top className={className} {...props}>\n {showIcon && (\n <DataList.TopCell aria-hidden=\"true\" className=\"justify-center\">\n <span />\n </DataList.TopCell>\n )}\n <DataList.TopCell>{nameLabel}</DataList.TopCell>\n <DataList.TopCell>{valueLabel}</DataList.TopCell>\n <DataList.TopCell className=\"justify-end\">{updatedAtLabel}</DataList.TopCell>\n </DataList.Top>\n );\n}\n","import { CheckIcon, Code2Icon, CopyIcon, EyeIcon, EyeOffIcon } from 'lucide-react';\nimport { use, useState } from 'react';\nimport type { ReactNode } from 'react';\n\nimport { EnvironmentVariablesEditorReadOnlyListContext } from './environment-variables-editor-context';\nimport type { EnvironmentVariablesEditorReadOnlyItemProps } from './environment-variables-editor.types';\nimport { Button } from '@/ds/components/Button';\nimport { DataList } from '@/ds/components/DataList/data-list';\nimport { useCopyToClipboard } from '@/hooks/use-copy-to-clipboard';\nimport { cn } from '@/lib/utils';\n\nexport function EnvironmentVariablesEditorReadOnlyItem({\n className,\n name,\n value,\n copyValue,\n copyLabel = 'Copy value',\n updatedAt,\n revealed,\n defaultRevealed,\n onRevealedChange,\n actor,\n icon,\n ...props\n}: EnvironmentVariablesEditorReadOnlyItemProps) {\n const { showIcon } = use(EnvironmentVariablesEditorReadOnlyListContext);\n const [uncontrolledRevealed, setUncontrolledRevealed] = useState(defaultRevealed ?? false);\n const { isCopied, copyToClipboard } = useCopyToClipboard({ copiedDuration: 1500, showToast: false });\n const isRevealed = revealed ?? uncontrolledRevealed;\n const displayedValue = isRevealed ? value : '************';\n const leadingIcon = icon ?? <Code2Icon />;\n const resolvedCopyValue = copyValue ?? getCopyableReadOnlyValue(value);\n const canCopyValue = isRevealed && Boolean(resolvedCopyValue);\n\n function toggleRevealed() {\n const nextRevealed = !isRevealed;\n\n if (revealed === undefined) {\n setUncontrolledRevealed(nextRevealed);\n }\n\n onRevealedChange?.(nextRevealed);\n }\n\n function handleCopyValue() {\n if (!resolvedCopyValue) return;\n\n copyToClipboard(resolvedCopyValue);\n }\n\n return (\n <DataList.RowStatic className={cn('min-h-14', className)} {...props}>\n {showIcon && (\n <DataList.Cell className=\"justify-items-center overflow-visible\">\n <span className=\"border-border1 text-neutral3 flex size-7 items-center justify-center rounded-full border [&>svg]:size-3.5\">\n {leadingIcon}\n </span>\n </DataList.Cell>\n )}\n\n <DataList.TextCell font=\"mono\" className=\"text-ui-sm text-neutral6\">\n {name}\n </DataList.TextCell>\n\n <DataList.Cell className=\"min-w-0\">\n {value !== undefined && (\n <span className=\"flex min-w-0 items-center gap-2\">\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon-xs\"\n aria-label={isRevealed ? 'Hide value' : 'Show value'}\n onClick={toggleRevealed}\n >\n {isRevealed ? <EyeOffIcon aria-hidden /> : <EyeIcon aria-hidden />}\n </Button>\n <span className=\"group relative flex min-w-0 flex-1 items-center\">\n <span\n className={cn(\n 'block min-w-0 flex-1 truncate font-mono text-ui-xs text-neutral4',\n canCopyValue && 'pr-7',\n )}\n >\n {displayedValue}\n </span>\n {canCopyValue && (\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon-xs\"\n aria-label={isCopied ? 'Copied value' : copyLabel}\n tooltip={isCopied ? 'Copied' : copyLabel}\n className=\"absolute right-0 opacity-0 transition-opacity group-hover:opacity-100 focus:opacity-100 focus-visible:opacity-100\"\n onClick={handleCopyValue}\n >\n {isCopied ? <CheckIcon aria-hidden /> : <CopyIcon aria-hidden />}\n </Button>\n )}\n </span>\n </span>\n )}\n </DataList.Cell>\n\n <DataList.Cell className=\"text-ui-xs text-neutral3 min-w-0 justify-items-end\">\n {(updatedAt || actor) && (\n <span className=\"flex min-w-0 items-center gap-2\">\n <span className=\"truncate\">{updatedAt}</span>\n {actor}\n </span>\n )}\n </DataList.Cell>\n </DataList.RowStatic>\n );\n}\n\nfunction getCopyableReadOnlyValue(value: ReactNode) {\n if (typeof value === 'string' || typeof value === 'number') {\n return String(value);\n }\n\n return undefined;\n}\n","import { useMemo } from 'react';\n\nimport { EnvironmentVariablesEditorReadOnlyListContext } from './environment-variables-editor-context';\nimport { EnvironmentVariablesEditorReadOnlyHeader } from './environment-variables-editor-read-only-header';\nimport type { EnvironmentVariablesEditorReadOnlyListProps } from './environment-variables-editor.types';\nimport { DataList } from '@/ds/components/DataList/data-list';\nimport { cn } from '@/lib/utils';\n\nconst READ_ONLY_COLUMNS = 'minmax(12rem,1.4fr) minmax(8rem,0.9fr) minmax(8rem,auto)';\nconst READ_ONLY_COLUMNS_WITH_ICON = `auto ${READ_ONLY_COLUMNS}`;\n\nexport function EnvironmentVariablesEditorReadOnlyList({\n className,\n children,\n columns,\n header,\n showHeader = true,\n showIcon = false,\n nameLabel,\n valueLabel,\n updatedAtLabel,\n scrollRef,\n ...props\n}: EnvironmentVariablesEditorReadOnlyListProps) {\n const resolvedColumns = columns ?? (showIcon ? READ_ONLY_COLUMNS_WITH_ICON : READ_ONLY_COLUMNS);\n const contextValue = useMemo(() => ({ showIcon }), [showIcon]);\n\n return (\n <EnvironmentVariablesEditorReadOnlyListContext.Provider value={contextValue}>\n <DataList columns={resolvedColumns} scrollRef={scrollRef} className={cn('min-h-0', className)} {...props}>\n {showHeader &&\n (header ?? (\n <EnvironmentVariablesEditorReadOnlyHeader\n nameLabel={nameLabel}\n valueLabel={valueLabel}\n updatedAtLabel={updatedAtLabel}\n />\n ))}\n {children}\n </DataList>\n </EnvironmentVariablesEditorReadOnlyListContext.Provider>\n );\n}\n","import { useMemo } from 'react';\n\nimport { EnvironmentVariablesEditorContext } from './environment-variables-editor-context';\nimport type { EnvironmentVariablesEditorContextValue } from './environment-variables-editor-context';\nimport { EnvironmentVariablesEditorPasteHint } from './environment-variables-editor-paste-hint';\nimport type { EnvironmentVariablesEditorRootProps } from './environment-variables-editor.types';\nimport type { EnvironmentVariableEntry } from '@/lib/env-file';\n\nexport function EnvironmentVariablesEditorRoot<TRow extends EnvironmentVariableEntry = EnvironmentVariableEntry>({\n editor,\n className,\n children,\n disabled,\n readOnly,\n rowErrors,\n hidePasteHint,\n ...props\n}: EnvironmentVariablesEditorRootProps<TRow>) {\n const contextValue = useMemo<EnvironmentVariablesEditorContextValue>(\n () => ({\n editor: {\n rows: editor.rows,\n uploadError: editor.uploadError,\n fileInputRef: editor.fileInputRef,\n hasDuplicateKeys: editor.hasDuplicateKeys,\n updateRow: editor.updateRow,\n removeRow: editor.removeRow,\n handleFileUpload: editor.handleFileUpload,\n handlePaste: editor.handlePaste,\n getRowId: editor.getRowId,\n isValueRevealed: editor.isValueRevealed,\n toggleValueVisibility: editor.toggleValueVisibility,\n rowHasDuplicateKey: editor.rowHasDuplicateKey,\n appendRow: () => editor.appendRow(),\n },\n disabled: Boolean(disabled),\n readOnly: Boolean(readOnly),\n rowErrors,\n }),\n [editor, disabled, readOnly, rowErrors],\n );\n\n return (\n <EnvironmentVariablesEditorContext.Provider value={contextValue}>\n <div className={className} {...props}>\n {children}\n {!readOnly && !hidePasteHint && <EnvironmentVariablesEditorPasteHint />}\n </div>\n </EnvironmentVariablesEditorContext.Provider>\n );\n}\n","import { EyeIcon, EyeOffIcon, TrashIcon } from 'lucide-react';\n\nimport { useEnvironmentVariablesEditorContext } from './environment-variables-editor-context';\nimport type { EnvironmentVariablesEditorRowProps } from './environment-variables-editor.types';\nimport { Button } from '@/ds/components/Button';\nimport { FieldBlock } from '@/ds/components/FormFieldBlocks';\nimport { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput } from '@/ds/components/InputGroup';\nimport { DUPLICATE_ENVIRONMENT_VARIABLE_MESSAGE } from '@/lib/env-file';\nimport { cn } from '@/lib/utils';\n\nexport function EnvironmentVariablesEditorRow({\n row,\n index,\n rowErrors,\n keyLabel = 'Key',\n valueLabel = 'Value',\n keyPlaceholder = 'e.g: OPEN_AI_KEY',\n valuePlaceholder = 'e.g: sk-xxxxxxxx',\n duplicateKeyMessage = DUPLICATE_ENVIRONMENT_VARIABLE_MESSAGE,\n className,\n ...props\n}: EnvironmentVariablesEditorRowProps) {\n const {\n editor,\n disabled,\n readOnly,\n rowErrors: contextRowErrors,\n } = useEnvironmentVariablesEditorContext('EnvironmentVariablesEditor.Row');\n const isDisabled = disabled || readOnly;\n const resolvedRowErrors = rowErrors ?? contextRowErrors;\n const keyError = resolvedRowErrors?.[index]?.key ?? (editor.rowHasDuplicateKey(index) ? duplicateKeyMessage : null);\n const valueError = resolvedRowErrors?.[index]?.value;\n const keyFieldName = `env-key-${index}`;\n const valueFieldName = `env-value-${index}`;\n const keyInputId = `input-${keyFieldName}`;\n const valueInputId = `input-${valueFieldName}`;\n const revealValueLabel = editor.isValueRevealed(index) ? 'Hide value' : 'Show value';\n const removeRowLabel = `Remove environment variable ${row.key.trim() || index + 1}`;\n\n function handlePaste(text: string) {\n return editor.handlePaste(index, text);\n }\n\n return (\n <div className={cn('flex flex-col items-stretch gap-2 sm:flex-row sm:items-start', className)} {...props}>\n <div className=\"flex-1\">\n <FieldBlock.Layout>\n <FieldBlock.Column>\n <FieldBlock.Label name={keyFieldName}>{keyLabel}</FieldBlock.Label>\n <InputGroup className=\"w-full\">\n <InputGroupInput\n id={keyInputId}\n placeholder={keyPlaceholder}\n className=\"font-mono\"\n value={row.key}\n disabled={isDisabled}\n error={Boolean(keyError)}\n onChange={event => editor.updateRow(index, { key: event.target.value })}\n onPaste={event => {\n if (handlePaste(event.clipboardData.getData('text'))) {\n event.preventDefault();\n }\n }}\n />\n </InputGroup>\n {keyError && <FieldBlock.ErrorMsg>{keyError}</FieldBlock.ErrorMsg>}\n </FieldBlock.Column>\n </FieldBlock.Layout>\n </div>\n\n <div className=\"flex-1\">\n <FieldBlock.Layout>\n <FieldBlock.Column>\n <FieldBlock.Label name={valueFieldName}>{valueLabel}</FieldBlock.Label>\n <InputGroup className=\"w-full\">\n <InputGroupInput\n id={valueInputId}\n placeholder={valuePlaceholder}\n className=\"font-mono\"\n type={editor.isValueRevealed(index) ? 'text' : 'password'}\n value={row.value}\n disabled={isDisabled}\n error={Boolean(valueError)}\n onChange={event => editor.updateRow(index, { value: event.target.value })}\n onPaste={event => {\n if (handlePaste(event.clipboardData.getData('text'))) {\n event.preventDefault();\n }\n }}\n />\n <InputGroupAddon align=\"inline-end\">\n <InputGroupButton\n type=\"button\"\n variant=\"ghost\"\n size=\"icon-sm\"\n disabled={isDisabled}\n aria-label={revealValueLabel}\n tooltip={revealValueLabel}\n onClick={() => editor.toggleValueVisibility(index)}\n >\n {editor.isValueRevealed(index) ? <EyeOffIcon aria-hidden /> : <EyeIcon aria-hidden />}\n </InputGroupButton>\n </InputGroupAddon>\n </InputGroup>\n {valueError && <FieldBlock.ErrorMsg>{valueError}</FieldBlock.ErrorMsg>}\n </FieldBlock.Column>\n </FieldBlock.Layout>\n </div>\n\n {!readOnly && (\n <div className=\"flex items-center gap-2 self-end sm:self-auto sm:pt-7\">\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon-md\"\n disabled={disabled}\n aria-label={removeRowLabel}\n tooltip=\"Remove variable\"\n onClick={() => editor.removeRow(index)}\n >\n <TrashIcon />\n </Button>\n </div>\n )}\n </div>\n );\n}\n","import { useEnvironmentVariablesEditorContext } from './environment-variables-editor-context';\nimport { EnvironmentVariablesEditorRow } from './environment-variables-editor-row';\nimport type { EnvironmentVariablesEditorRowsProps } from './environment-variables-editor.types';\nimport { cn } from '@/lib/utils';\n\nexport function EnvironmentVariablesEditorRows({\n className,\n rowErrors,\n keyLabel,\n valueLabel,\n keyPlaceholder,\n valuePlaceholder,\n duplicateKeyMessage,\n ...props\n}: EnvironmentVariablesEditorRowsProps) {\n const { editor, rowErrors: contextRowErrors } = useEnvironmentVariablesEditorContext(\n 'EnvironmentVariablesEditor.Rows',\n );\n const resolvedRowErrors = rowErrors ?? contextRowErrors;\n\n return (\n <div className={cn('space-y-2', className)} {...props}>\n {editor.rows.map((row, index) => (\n <EnvironmentVariablesEditorRow\n key={editor.getRowId(index)}\n row={row}\n index={index}\n rowErrors={resolvedRowErrors}\n keyLabel={keyLabel}\n valueLabel={valueLabel}\n keyPlaceholder={keyPlaceholder}\n valuePlaceholder={valuePlaceholder}\n duplicateKeyMessage={duplicateKeyMessage}\n />\n ))}\n </div>\n );\n}\n","import { UploadIcon } from 'lucide-react';\n\nimport { useEnvironmentVariablesEditorContext } from './environment-variables-editor-context';\nimport type { EnvironmentVariablesEditorUploadButtonProps } from './environment-variables-editor.types';\nimport { Button } from '@/ds/components/Button';\n\nexport function EnvironmentVariablesEditorUploadButton({\n children = 'Import .env',\n inputLabel = 'Import .env file',\n disabled,\n onClick,\n type = 'button',\n variant = 'ghost',\n size = 'sm',\n ...props\n}: EnvironmentVariablesEditorUploadButtonProps) {\n const {\n editor,\n disabled: contextDisabled,\n readOnly,\n } = useEnvironmentVariablesEditorContext('EnvironmentVariablesEditor.UploadButton');\n const isDisabled = contextDisabled || disabled;\n\n if (readOnly) return null;\n\n return (\n <>\n <input\n ref={editor.fileInputRef}\n type=\"file\"\n accept=\".env,text/plain\"\n aria-label={inputLabel}\n className=\"hidden\"\n disabled={isDisabled}\n onChange={editor.handleFileUpload}\n />\n <Button\n type={type}\n variant={variant}\n size={size}\n disabled={isDisabled}\n onClick={event => {\n onClick?.(event);\n if (!event.defaultPrevented) {\n editor.fileInputRef.current?.click();\n }\n }}\n {...props}\n >\n <UploadIcon />\n {children}\n </Button>\n </>\n );\n}\n","import { useEnvironmentVariablesEditorContext } from './environment-variables-editor-context';\nimport { EnvironmentVariablesEditorUploadButton } from './environment-variables-editor-upload-button';\nimport type { EnvironmentVariablesEditorUploadProps } from './environment-variables-editor.types';\nimport { cn } from '@/lib/utils';\n\nexport function EnvironmentVariablesEditorUpload({\n className,\n children,\n ...props\n}: EnvironmentVariablesEditorUploadProps) {\n const { readOnly } = useEnvironmentVariablesEditorContext('EnvironmentVariablesEditor.Upload');\n\n if (readOnly) return null;\n\n return (\n <div className={cn('flex flex-wrap items-center justify-end gap-2', className)} {...props}>\n {children ?? <EnvironmentVariablesEditorUploadButton />}\n </div>\n );\n}\n","import { useEnvironmentVariablesEditorContext } from './environment-variables-editor-context';\nimport { EnvironmentVariablesEditorMessages } from './environment-variables-editor-messages';\nimport type { EnvironmentVariablesEditorUploadErrorProps } from './environment-variables-editor.types';\n\nexport function EnvironmentVariablesEditorUploadError(props: EnvironmentVariablesEditorUploadErrorProps) {\n const { editor } = useEnvironmentVariablesEditorContext('EnvironmentVariablesEditor.UploadError');\n\n if (!editor.uploadError) return null;\n\n return <EnvironmentVariablesEditorMessages error={editor.uploadError} {...props} />;\n}\n","import { EnvironmentVariablesEditorActions } from './environment-variables-editor-actions';\nimport { EnvironmentVariablesEditorAddButton } from './environment-variables-editor-add-button';\nimport { EnvironmentVariablesEditorDuplicateKeysError } from './environment-variables-editor-duplicate-keys-error';\nimport { EnvironmentVariablesEditorMessages } from './environment-variables-editor-messages';\nimport { EnvironmentVariablesEditorPasteHint } from './environment-variables-editor-paste-hint';\nimport { EnvironmentVariablesEditorReadOnlyEmpty } from './environment-variables-editor-read-only-empty';\nimport { EnvironmentVariablesEditorReadOnlyHeader } from './environment-variables-editor-read-only-header';\nimport { EnvironmentVariablesEditorReadOnlyItem } from './environment-variables-editor-read-only-item';\nimport { EnvironmentVariablesEditorReadOnlyList } from './environment-variables-editor-read-only-list';\nimport { EnvironmentVariablesEditorRoot } from './environment-variables-editor-root';\nimport { EnvironmentVariablesEditorRow } from './environment-variables-editor-row';\nimport { EnvironmentVariablesEditorRows } from './environment-variables-editor-rows';\nimport { EnvironmentVariablesEditorUpload } from './environment-variables-editor-upload';\nimport { EnvironmentVariablesEditorUploadButton } from './environment-variables-editor-upload-button';\nimport { EnvironmentVariablesEditorUploadError } from './environment-variables-editor-upload-error';\nimport type { EnvironmentVariablesEditorProps } from './environment-variables-editor.types';\nimport type { EnvironmentVariableEntry } from '@/lib/env-file';\nimport { DUPLICATE_ENVIRONMENT_VARIABLE_MESSAGE } from '@/lib/env-file';\nimport { cn } from '@/lib/utils';\n\nconst renderEnvironmentVariablesEditor = <TRow extends EnvironmentVariableEntry = EnvironmentVariableEntry>({\n className,\n children,\n addLabel = 'Add Variable',\n keyLabel = 'Key',\n valueLabel = 'Value',\n keyPlaceholder = 'e.g: OPEN_AI_KEY',\n valuePlaceholder = 'e.g: sk-xxxxxxxx',\n duplicateKeyMessage = DUPLICATE_ENVIRONMENT_VARIABLE_MESSAGE,\n rowErrors,\n error,\n actions,\n ...props\n}: EnvironmentVariablesEditorProps<TRow>) => {\n return (\n <EnvironmentVariablesEditorRoot\n className={cn(!children && 'space-y-3', className)}\n rowErrors={rowErrors}\n {...props}\n >\n {children ?? (\n <>\n <EnvironmentVariablesEditorUpload>\n <EnvironmentVariablesEditorUploadButton />\n </EnvironmentVariablesEditorUpload>\n <EnvironmentVariablesEditorUploadError />\n <EnvironmentVariablesEditorRows\n rowErrors={rowErrors}\n keyLabel={keyLabel}\n valueLabel={valueLabel}\n keyPlaceholder={keyPlaceholder}\n valuePlaceholder={valuePlaceholder}\n duplicateKeyMessage={duplicateKeyMessage}\n />\n <EnvironmentVariablesEditorAddButton>{addLabel}</EnvironmentVariablesEditorAddButton>\n <EnvironmentVariablesEditorDuplicateKeysError message={duplicateKeyMessage} />\n <EnvironmentVariablesEditorMessages error={error} />\n {actions && <EnvironmentVariablesEditorActions>{actions}</EnvironmentVariablesEditorActions>}\n </>\n )}\n </EnvironmentVariablesEditorRoot>\n );\n};\n\nexport const EnvironmentVariablesEditor = Object.assign(renderEnvironmentVariablesEditor, {\n Root: EnvironmentVariablesEditorRoot,\n Upload: EnvironmentVariablesEditorUpload,\n UploadButton: EnvironmentVariablesEditorUploadButton,\n UploadError: EnvironmentVariablesEditorUploadError,\n Rows: EnvironmentVariablesEditorRows,\n Row: EnvironmentVariablesEditorRow,\n AddButton: EnvironmentVariablesEditorAddButton,\n PasteHint: EnvironmentVariablesEditorPasteHint,\n Messages: EnvironmentVariablesEditorMessages,\n DuplicateKeysError: EnvironmentVariablesEditorDuplicateKeysError,\n Actions: EnvironmentVariablesEditorActions,\n ReadOnlyList: EnvironmentVariablesEditorReadOnlyList,\n ReadOnlyHeader: EnvironmentVariablesEditorReadOnlyHeader,\n ReadOnlyEmpty: EnvironmentVariablesEditorReadOnlyEmpty,\n ReadOnlyItem: EnvironmentVariablesEditorReadOnlyItem,\n});\n\nexport type {\n EnvironmentVariablesEditorActionsProps,\n EnvironmentVariablesEditorAddButtonProps,\n EnvironmentVariablesEditorDuplicateKeysErrorProps,\n EnvironmentVariablesEditorMessagesProps,\n EnvironmentVariablesEditorPasteHintProps,\n EnvironmentVariablesEditorProps,\n EnvironmentVariablesEditorReadOnlyEmptyProps,\n EnvironmentVariablesEditorReadOnlyHeaderProps,\n EnvironmentVariablesEditorReadOnlyItemProps,\n EnvironmentVariablesEditorReadOnlyListProps,\n EnvironmentVariablesEditorRootProps,\n EnvironmentVariablesEditorRowErrors,\n EnvironmentVariablesEditorRowProps,\n EnvironmentVariablesEditorRowsProps,\n EnvironmentVariablesEditorUploadButtonProps,\n EnvironmentVariablesEditorUploadErrorProps,\n EnvironmentVariablesEditorUploadProps,\n} from './environment-variables-editor.types';\n"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
- const horizontalBars = require('../horizontal-bars-CV2XRu4w.cjs');
5
+ const horizontalBars = require('../horizontal-bars-CE1O-Y6G.cjs');
6
6
 
7
7
 
8
8
 
@@ -1,2 +1,2 @@
1
- export { H as HorizontalBars } from '../horizontal-bars-3vH3FLj3.js';
1
+ export { H as HorizontalBars } from '../horizontal-bars-DZ5J4TKv.js';
2
2
  //# sourceMappingURL=HorizontalBars.es.js.map
@@ -2,8 +2,8 @@
2
2
 
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
- const logsDataList = require('../logs-data-list-CTnwPG40.cjs');
6
- const dataListSkeleton = require('../data-list-skeleton-hTX1b2Au.cjs');
5
+ const logsDataList = require('../logs-data-list-PExVAYf3.cjs');
6
+ const dataListSkeleton = require('../data-list-skeleton-BZR_Hkvj.cjs');
7
7
 
8
8
 
9
9
 
@@ -1,3 +1,3 @@
1
- export { L as LogsDataList } from '../logs-data-list-btJapa0s.js';
2
- export { D as LogsDataListSkeleton } from '../data-list-skeleton-C2R2CO9G.js';
1
+ export { L as LogsDataList } from '../logs-data-list-VCTqogr3.js';
2
+ export { D as LogsDataListSkeleton } from '../data-list-skeleton-BoaQlbOY.js';
3
3
  //# sourceMappingURL=LogsDataList.es.js.map
@@ -6,7 +6,7 @@ const jsxRuntime = require('react/jsx-runtime');
6
6
  const utils_cn = require('../cn-DCPcv4xv.cjs');
7
7
  const lucideReact = require('lucide-react');
8
8
  const React = require('react');
9
- const scrollArea = require('../scroll-area-D_-TyC0c.cjs');
9
+ const scrollArea = require('../scroll-area-B1vdOFuC.cjs');
10
10
  const reactVisuallyHidden = require('@radix-ui/react-visually-hidden');
11
11
  const index = require('../index-BRtrE4oe.cjs');
12
12
  const tooltip = require('../tooltip-DIi_oOxO.cjs');
@@ -2,7 +2,7 @@ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
2
  import { c as cn } from '../cn-B4oPhFx9.js';
3
3
  import { MenuIcon, PanelRightIcon } from 'lucide-react';
4
4
  import React__default, { useRef, useEffect, useCallback, useId } from 'react';
5
- import { S as ScrollArea } from '../scroll-area-DVSQTnjk.js';
5
+ import { S as ScrollArea } from '../scroll-area-BiHnOfzg.js';
6
6
  import { VisuallyHidden } from '@radix-ui/react-visually-hidden';
7
7
  import { c as cva } from '../index-DsNrjFJd.js';
8
8
  import { T as Tooltip, c as TooltipTrigger, a as TooltipContent } from '../tooltip-Bi0pDO5P.js';
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
- const noDataPageLayout = require('../no-data-page-layout-CBJ50ULk.cjs');
5
+ const noDataPageLayout = require('../no-data-page-layout-DxgToazD.cjs');
6
6
  const pageHeadingContext = require('../page-heading-context-Du-CpxAx.cjs');
7
7
 
8
8