@grafana/plugin-ui 0.15.1 → 0.16.0-dsconfig.a155abe

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 (90) hide show
  1. package/dist/cjs/index.cjs +11687 -2012
  2. package/dist/cjs/index.cjs.map +1 -1
  3. package/dist/cjs/index.d.cts +719 -2
  4. package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/DatasourceConfigWizard.js +217 -0
  5. package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/DatasourceConfigWizard.js.map +1 -0
  6. package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/DatasourceErrorBoundary.js +27 -0
  7. package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/DatasourceErrorBoundary.js.map +1 -0
  8. package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/FieldInput.js +135 -0
  9. package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/FieldInput.js.map +1 -0
  10. package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/SchemaField.js +80 -0
  11. package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/SchemaField.js.map +1 -0
  12. package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/SidebarNav.js +54 -0
  13. package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/SidebarNav.js.map +1 -0
  14. package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/TabLayout.js +155 -0
  15. package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/TabLayout.js.map +1 -0
  16. package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/cel.js +75 -0
  17. package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/cel.js.map +1 -0
  18. package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/config.js +262 -0
  19. package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/config.js.map +1 -0
  20. package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/datasource.js +354 -0
  21. package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/datasource.js.map +1 -0
  22. package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/fieldUtils.js +138 -0
  23. package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/fieldUtils.js.map +1 -0
  24. package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/hooks/formInterpreter.js +93 -0
  25. package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/hooks/formInterpreter.js.map +1 -0
  26. package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/hooks/useDatasourceConfigForm.js +253 -0
  27. package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/hooks/useDatasourceConfigForm.js.map +1 -0
  28. package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/hooks/useHealthChecks.js +106 -0
  29. package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/hooks/useHealthChecks.js.map +1 -0
  30. package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/inputs/AuthorizationHeaderField.js +52 -0
  31. package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/inputs/AuthorizationHeaderField.js.map +1 -0
  32. package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/inputs/ComplexFieldNote.js +26 -0
  33. package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/inputs/ComplexFieldNote.js.map +1 -0
  34. package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/inputs/FileUploadField.js +106 -0
  35. package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/inputs/FileUploadField.js.map +1 -0
  36. package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/inputs/IndexedPairEditor.js +124 -0
  37. package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/inputs/IndexedPairEditor.js.map +1 -0
  38. package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/inputs/ObjectArrayEditor.js +190 -0
  39. package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/inputs/ObjectArrayEditor.js.map +1 -0
  40. package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/inputs/PdcFieldNote.js +31 -0
  41. package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/inputs/PdcFieldNote.js.map +1 -0
  42. package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/inputs/PrimitiveInputs.js +103 -0
  43. package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/inputs/PrimitiveInputs.js.map +1 -0
  44. package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/inputs/SecureFieldInput.js +59 -0
  45. package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/inputs/SecureFieldInput.js.map +1 -0
  46. package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/inputs/StringArrayInput.js +80 -0
  47. package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/inputs/StringArrayInput.js.map +1 -0
  48. package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/layoutParts.js +82 -0
  49. package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/layoutParts.js.map +1 -0
  50. package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/resolvePluginName.js +30 -0
  51. package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/resolvePluginName.js.map +1 -0
  52. package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/styles.js +340 -0
  53. package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/styles.js.map +1 -0
  54. package/dist/esm/index.d.ts +719 -2
  55. package/dist/esm/index.js +11 -0
  56. package/dist/esm/index.js.map +1 -1
  57. package/dist/esm/node_modules/js-yaml/dist/js-yaml.js +3043 -0
  58. package/dist/esm/node_modules/js-yaml/dist/js-yaml.js.map +1 -0
  59. package/dist/esm/node_modules/react-hook-form/dist/index.esm.js +2766 -0
  60. package/dist/esm/node_modules/react-hook-form/dist/index.esm.js.map +1 -0
  61. package/dist/esm/node_modules/semver/classes/range.js +24 -4
  62. package/dist/esm/node_modules/semver/classes/range.js.map +1 -1
  63. package/dist/esm/node_modules/semver/classes/semver.js +19 -2
  64. package/dist/esm/node_modules/semver/classes/semver.js.map +1 -1
  65. package/dist/esm/node_modules/semver/functions/diff.js +1 -1
  66. package/dist/esm/node_modules/semver/functions/diff.js.map +1 -1
  67. package/dist/esm/node_modules/semver/functions/truncate.js +62 -0
  68. package/dist/esm/node_modules/semver/functions/truncate.js.map +1 -0
  69. package/dist/esm/node_modules/semver/index.js +3 -0
  70. package/dist/esm/node_modules/semver/index.js.map +1 -1
  71. package/dist/esm/node_modules/semver/internal/re.js +3 -3
  72. package/dist/esm/node_modules/semver/internal/re.js.map +1 -1
  73. package/dist/esm/node_modules/semver/ranges/subset.js +3 -3
  74. package/dist/esm/node_modules/semver/ranges/subset.js.map +1 -1
  75. package/dist/esm/node_modules/tslib/tslib.es6.js.map +1 -1
  76. package/dist/esm/schema/utils/constants.js +4 -0
  77. package/dist/esm/schema/utils/constants.js.map +1 -0
  78. package/dist/esm/schema/utils/dsconfig.js +97 -0
  79. package/dist/esm/schema/utils/dsconfig.js.map +1 -0
  80. package/dist/esm/schema/utils/llm.js +54 -0
  81. package/dist/esm/schema/utils/llm.js.map +1 -0
  82. package/dist/esm/schema/utils/packs.js +113 -0
  83. package/dist/esm/schema/utils/packs.js.map +1 -0
  84. package/dist/esm/schema/utils/provisioning.js +434 -0
  85. package/dist/esm/schema/utils/provisioning.js.map +1 -0
  86. package/dist/esm/schema/utils/registry.js +30 -0
  87. package/dist/esm/schema/utils/registry.js.map +1 -0
  88. package/dist/esm/schema/utils/useDatasourceSchema.js +39 -0
  89. package/dist/esm/schema/utils/useDatasourceSchema.js.map +1 -0
  90. package/package.json +12 -9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.js","sources":["../../../../../src/components/ConfigEditor/DatasourceConfigWizard/styles.ts"],"sourcesContent":["import { css } from '@emotion/css';\nimport type { GrafanaTheme2 } from '@grafana/data';\n\n// ── Shared style objects ──\n// Returned as plain objects (not css() results, which are unmergeable class\n// strings) so callers can spread + tweak them. `as const` narrows string\n// literals (e.g. 'absolute') into the CSS property unions css() expects.\n\n/** Centered saving/loading overlay. Identical in tab and wizard layouts. */\nconst overlayStyle = (theme: GrafanaTheme2) =>\n ({\n position: 'absolute',\n inset: 0,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n gap: theme.spacing(1),\n background: theme.colors.background.secondary,\n borderRadius: theme.shape.radius.default,\n zIndex: 1,\n fontSize: theme.typography.bodySmall.fontSize,\n color: theme.colors.text.primary,\n opacity: 0.95,\n }) as const;\n\n/** \"Read-only — managed externally\" banner. Tab layout adds a marginBottom. */\nconst readOnlyBannerStyle = (theme: GrafanaTheme2) =>\n ({\n display: 'inline-flex',\n alignItems: 'center',\n gap: theme.spacing(0.5),\n padding: `${theme.spacing(0.25)} ${theme.spacing(0.75)}`,\n fontSize: theme.typography.bodySmall.fontSize,\n color: theme.colors.text.secondary,\n backgroundColor: theme.colors.background.secondary,\n borderRadius: theme.shape.radius.default,\n border: `1px solid ${theme.colors.border.weak}`,\n }) as const;\n\nexport const getTabStyles = (theme: GrafanaTheme2) => ({\n root: css({\n display: 'flex',\n gap: theme.spacing(3),\n position: 'relative',\n background: theme.colors.background.canvas,\n padding: theme.spacing(2),\n }),\n\n // Sidebar\n sidebar: css({\n width: 250,\n flexShrink: 0,\n position: 'sticky',\n top: theme.spacing(2),\n alignSelf: 'flex-start',\n [theme.breakpoints.down('sm')]: { display: 'none' },\n }),\n sidebarTitle: css({\n fontSize: theme.typography.body.fontSize,\n fontWeight: theme.typography.fontWeightMedium,\n color: theme.colors.text.primary,\n padding: `${theme.spacing(1)} 0`,\n marginBottom: theme.spacing(1),\n }),\n navList: css({\n listStyle: 'none',\n margin: 0,\n padding: 0,\n position: 'relative',\n }),\n navItem: css({\n display: 'flex',\n alignItems: 'flex-start',\n gap: theme.spacing(1.5),\n padding: `${theme.spacing(1)} 0`,\n cursor: 'pointer',\n position: 'relative',\n }),\n navItemActive: css({}),\n // Dot container: positions the dot and the connector line\n navDotWrap: css({\n position: 'relative',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: 12,\n flexShrink: 0,\n alignSelf: 'flex-start',\n paddingTop: theme.spacing(0.5),\n }),\n navDot: css({\n width: 10,\n height: 10,\n borderRadius: '50%',\n border: `2px solid ${theme.colors.text.disabled}`,\n background: theme.colors.background.canvas,\n position: 'relative',\n zIndex: 1,\n }),\n navDotOptional: css({\n borderStyle: 'dashed',\n }),\n navDotActive: css({\n background: theme.colors.primary.main,\n borderColor: theme.colors.primary.main,\n borderStyle: 'solid',\n }),\n navDotValidated: css({\n background: theme.colors.success.main,\n borderColor: theme.colors.success.main,\n borderStyle: 'solid',\n }),\n navDotError: css({\n background: theme.colors.error.main,\n borderColor: theme.colors.error.main,\n borderStyle: 'solid',\n }),\n // Connector line running from dot center downward to next item\n navConnector: css({\n position: 'absolute',\n left: 5,\n top: 16,\n bottom: -16,\n width: 2,\n background: theme.colors.border.medium,\n zIndex: 0,\n }),\n navConnectorDashed: css({\n background: 'none',\n borderLeft: `2px dashed ${theme.colors.border.weak}`,\n width: 0,\n }),\n navLabel: css({\n fontSize: theme.typography.body.fontSize,\n color: theme.colors.text.secondary,\n lineHeight: 1.4,\n }),\n navLabelActive: css({\n fontWeight: theme.typography.fontWeightMedium,\n color: theme.colors.text.primary,\n }),\n\n // Main content\n main: css({\n flex: 1,\n minWidth: 0,\n width: 0, // forces flex child to respect flex-grow and fill remaining space\n display: 'flex',\n flexDirection: 'column',\n gap: theme.spacing(2),\n }),\n form: css({\n display: 'flex',\n flexDirection: 'column',\n gap: theme.spacing(2),\n }),\n requiredNotice: css({\n fontSize: theme.typography.bodySmall.fontSize,\n color: theme.colors.text.secondary,\n marginBottom: theme.spacing(0.5),\n }),\n\n // Section wrapper — card container around CollapsableSection\n section: css({\n border: `1px solid ${theme.colors.border.weak}`,\n borderRadius: theme.shape.radius.default,\n background: theme.colors.background.secondary,\n overflow: 'hidden',\n }),\n // Override Collapse component styling\n collapseHeader: css({\n borderRadius: theme.shape.radius.default,\n background: 'none',\n border: 'none',\n marginBottom: 0,\n // Collapse header button: make label fill remaining space\n '& > button': {\n padding: `${theme.spacing(1.5)} ${theme.spacing(2)}`,\n width: '100%',\n justifyContent: 'flex-start',\n },\n '& > button > div': {\n flex: 1,\n fontSize: theme.typography.h4.fontSize,\n fontWeight: theme.typography.fontWeightMedium,\n textAlign: 'left',\n },\n }),\n sectionLabel: css({\n display: 'flex',\n alignItems: 'center',\n flex: 1,\n }),\n sectionLabelText: css({\n flex: 1,\n }),\n sectionHeader: css({\n display: 'flex',\n alignItems: 'center',\n gap: theme.spacing(1),\n padding: `${theme.spacing(1.5)} ${theme.spacing(2)}`,\n cursor: 'pointer',\n userSelect: 'none',\n }),\n sectionChevron: css({\n transition: 'transform 0.2s ease',\n }),\n sectionChevronOpen: css({\n transform: 'rotate(90deg)',\n }),\n sectionTitle: css({\n fontSize: theme.typography.h4.fontSize,\n fontWeight: theme.typography.fontWeightMedium,\n flex: 1,\n textAlign: 'left',\n }),\n sectionBadge: css({\n fontSize: theme.typography.bodySmall.fontSize,\n fontWeight: theme.typography.fontWeightRegular,\n color: theme.colors.text.disabled,\n border: `1px solid ${theme.colors.border.weak}`,\n borderRadius: theme.shape.radius.pill,\n padding: `1px ${theme.spacing(0.75)}`,\n whiteSpace: 'nowrap',\n }),\n sectionDescription: css({\n fontSize: theme.typography.bodySmall.fontSize,\n color: theme.colors.text.secondary,\n marginBottom: theme.spacing(1.5),\n }),\n sectionBody: css({\n padding: `0 ${theme.spacing(2)} ${theme.spacing(2)}`,\n display: 'flex',\n flexDirection: 'column',\n gap: theme.spacing(0.75),\n }),\n\n // Form bottom\n formButtons: css({\n display: 'flex',\n gap: theme.spacing(1),\n paddingTop: theme.spacing(0.5),\n }),\n\n // Loading / error states\n loadingContainer: css({\n display: 'flex',\n alignItems: 'center',\n gap: theme.spacing(1),\n padding: theme.spacing(3),\n color: theme.colors.text.secondary,\n }),\n overlay: css(overlayStyle(theme)),\n readOnlyBanner: css({ ...readOnlyBannerStyle(theme), marginBottom: theme.spacing(1) }),\n});\n\nexport const getWizardStyles = (theme: GrafanaTheme2) => ({\n container: css({\n position: 'relative',\n display: 'flex',\n flexDirection: 'column',\n gap: theme.spacing(1),\n padding: theme.spacing(1.5),\n backgroundColor: theme.colors.background.secondary,\n borderRadius: theme.shape.radius.default,\n border: `1px solid ${theme.colors.border.weak}`,\n overflow: 'hidden',\n }),\n overlay: css(overlayStyle(theme)),\n readOnlyBanner: css(readOnlyBannerStyle(theme)),\n navBar: css({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n }),\n navTitle: css({\n display: 'inline-flex',\n alignItems: 'center',\n gap: theme.spacing(0.5),\n fontSize: theme.typography.body.fontSize,\n fontWeight: theme.typography.fontWeightBold,\n color: theme.colors.text.primary,\n }),\n stepCount: css({\n fontSize: theme.typography.bodySmall.fontSize,\n fontWeight: theme.typography.fontWeightRegular,\n color: theme.colors.text.secondary,\n }),\n navActions: css({\n display: 'flex',\n alignItems: 'center',\n gap: theme.spacing(0.25),\n }),\n form: css({\n display: 'flex',\n flexDirection: 'column',\n gap: theme.spacing(0.75),\n }),\n buttons: css({\n display: 'flex',\n gap: theme.spacing(1),\n paddingTop: theme.spacing(0.25),\n }),\n});\n\n// Field-level styles shared by SchemaField and AuthorizationHeaderField, which\n// render in both the tab and wizard layouts (hence not tied to either one).\nexport const getFieldStyles = (theme: GrafanaTheme2) => ({\n fieldRow: css({\n display: 'grid',\n gridTemplateColumns: 'minmax(80px, 1fr) minmax(0, 2fr)',\n gap: theme.spacing(0.75),\n alignItems: 'start',\n }),\n fieldRowCenter: css({\n display: 'grid',\n gridTemplateColumns: 'minmax(80px, 1fr) minmax(0, 2fr)',\n gap: theme.spacing(0.75),\n alignItems: 'center',\n padding: `${theme.spacing(0.5)} 0`,\n }),\n fieldLabelRow: css({\n display: 'flex',\n alignItems: 'center',\n gap: theme.spacing(0.5),\n paddingTop: theme.spacing(0.5),\n }),\n fieldLabelRowCompact: css({\n display: 'flex',\n alignItems: 'center',\n gap: theme.spacing(0.5),\n }),\n fieldLabel: css({\n fontSize: theme.typography.bodySmall.fontSize,\n fontWeight: theme.typography.fontWeightMedium,\n color: theme.colors.text.primary,\n }),\n fieldRequired: css({\n color: theme.colors.error.text,\n marginLeft: 2,\n }),\n fieldInfoIcon: css({\n color: theme.colors.text.disabled,\n cursor: 'help',\n flexShrink: 0,\n }),\n fieldInputCol: css({\n display: 'flex',\n flexDirection: 'column',\n gap: theme.spacing(0.25),\n minWidth: 0,\n }),\n fieldError: css({\n fontSize: theme.typography.bodySmall.fontSize,\n color: theme.colors.error.text,\n }),\n});\n"],"names":[],"mappings":"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"}