@parallelworks/ui 0.13.0 → 0.15.0

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 (33) hide show
  1. package/dist/chunks/{CodePreviewEditor-67A_SKgE.js → CodePreviewEditor-DuMZMA_k.js} +1 -1
  2. package/dist/chunks/{CreateModal-k_e1dI8c.js → CreateModal-B7smkHkv.js} +26 -10
  3. package/dist/chunks/{Monaco-H56KyEdb.js → Monaco-BXDH2jVj.js} +1 -1
  4. package/dist/chunks/{PageHeader-FhtphHGc.js → PageHeader-CoZWF0pJ.js} +22 -9
  5. package/dist/chunks/{StatusBadge-RRUI78iS.js → StatusBadge-zvEtK16a.js} +1 -1
  6. package/dist/chunks/{SwitchToggle-DbW0Q__L.js → SwitchToggle-3V836Cn7.js} +23 -15
  7. package/dist/chunks/{editor-BZ9Buwi4.js → editor-Ko3zX22Y.js} +2 -2
  8. package/dist/chunks/{lib-DyJvmbzj.js → lib-CUTRDpa6.js} +3 -5
  9. package/dist/chunks/{list-3jZW8rmM.js → list-CduoUsMW.js} +13 -10
  10. package/dist/components/CollapsiblePanel.d.ts +3 -1
  11. package/dist/components/CreateModal.d.ts +6 -0
  12. package/dist/components/PageHeader.d.ts +5 -1
  13. package/dist/components/dropdownUtils.d.ts +2 -0
  14. package/dist/editor/index.js +1 -1
  15. package/dist/file-explorer/FileExplorer.d.ts +19 -2
  16. package/dist/file-explorer/index.js +65 -35
  17. package/dist/form/Form.d.ts +12 -8
  18. package/dist/form/index.d.ts +1 -1
  19. package/dist/form/index.js +84 -32
  20. package/dist/icons.d.ts +3 -3
  21. package/dist/icons.js +4 -4
  22. package/dist/index.d.ts +1 -1
  23. package/dist/index.js +8 -8
  24. package/dist/list/HoverCard.d.ts +3 -1
  25. package/dist/list/ListPage.d.ts +2 -0
  26. package/dist/list/ListTable.d.ts +2 -1
  27. package/dist/list/RowContextMenu.d.ts +5 -0
  28. package/dist/list/index.js +2 -2
  29. package/dist/styles/theme.css +40 -0
  30. package/dist/styles.css +1 -1
  31. package/dist/workflow/index.js +50 -2
  32. package/dist/workflow/types.d.ts +2 -0
  33. package/package.json +2 -2
@@ -13,19 +13,24 @@ export declare function resolveMetaOverrides(options: {
13
13
  labelPosition: "left" | "top" | undefined;
14
14
  spaceCompact: boolean;
15
15
  };
16
+ /** Cheap signature of every list's length; gates the expensive collect walk. */
17
+ export declare function listLengthsSignature(options: Record<string, unknown>, values?: Record<string, unknown>, prefix?: string): string;
16
18
  /** Collects every field with a `default` for the form-level sync to track. */
17
19
  export declare function collectFieldsWithDefaults(options: Record<string, unknown>, values?: Record<string, unknown>, prefix?: string): Array<{
18
20
  name: string;
19
21
  defaultValue: unknown;
22
+ hasSecondary?: boolean;
20
23
  }>;
21
24
  export declare function defaultReferencesField(defaultValue: unknown, fieldPath: string): boolean;
22
25
  export declare function findSelfReferencingFieldNames(schema: Record<string, unknown>, values?: Record<string, unknown>): string[];
23
- /**
24
- * Re-syncs each field's value when its resolved default changes between
25
- * renders, unless `meta.touched` (this session) or a synth-touched marker
26
- * (cross-session, set on first-seen when saved ≠ default) is set. Must be
27
- * remounted via `key` when the run/config context changes.
28
- */
26
+ /** Resolves schema defaults into form values as dependencies change. Store-agnostic so the legacy
27
+ * form (Formik) and the cluster wizard (its own store) share one implementation. */
28
+ export declare function useDynamicDefaultsSync({ options, values, setValue, isTouched, }: {
29
+ options: Record<string, unknown>;
30
+ values: Record<string, unknown>;
31
+ setValue: (name: string, value: unknown) => void;
32
+ isTouched: (name: string) => boolean;
33
+ }): void;
29
34
  export declare function DynamicDefaultsSync({ options, }: {
30
35
  options: Record<string, unknown>;
31
36
  }): null;
@@ -104,8 +109,7 @@ export interface DynamicFormProps {
104
109
  onSubmit?: ((values: Record<string, unknown>) => void) | undefined;
105
110
  submitLabel?: string;
106
111
  className?: string;
107
- /** Prevents deletion of hidden+ignored field values (workflow forms filter at submit time).
108
- * Also gates the form-level DynamicDefaultsSync — it only runs for workflow forms. */
112
+ /** Prevents deletion of hidden+ignored field values (workflow forms filter at submit time). */
109
113
  workflowForm?: boolean;
110
114
  /** Identifier for the load context (e.g. rerun slug, configuration name). When this
111
115
  * changes, DynamicDefaultsSync remounts so it re-evaluates its prev-default tracking
@@ -1,4 +1,4 @@
1
- export { DynamicForm, DynamicDefaultsSync, FieldsFromOptions, GroupHeader, MultiSelectionDropdown, StatusBlock, collectFieldsWithDefaults, findSelfReferencingFieldNames, getInstanceTypesForForm, resolveMetaOverrides, type DynamicFormProps, type TSetFormDirty, } from './Form.js';
1
+ export { DynamicForm, DynamicDefaultsSync, FieldsFromOptions, GroupHeader, MultiSelectionDropdown, StatusBlock, collectFieldsWithDefaults, useDynamicDefaultsSync, findSelfReferencingFieldNames, getInstanceTypesForForm, resolveMetaOverrides, type DynamicFormProps, type TSetFormDirty, } from './Form.js';
2
2
  export { type FieldComponent, FieldRegistryContext, Registry, } from './fieldRegistry.js';
3
3
  export { FieldWrapper, type FieldLabelBinding } from './FieldWrapper.js';
4
4
  export { type FieldContextValue, FieldProvider, useFieldControlProps, useFieldLabelledByProps, useFieldRequired, } from './fieldContext.js';
@@ -1,11 +1,11 @@
1
1
  import { AngleRightIcon, EyeIcon, EyeOffIcon, SuccessCheckmark, TrashIcon } from "../icons.js";
2
2
  import { c as useStrings, s as useSlots } from "../chunks/Provider-CbFVFB7O.js";
3
3
  import { n as TOOLTIP_ID, r as TooltipInfo } from "../chunks/Tooltip-n9w7Tkt1.js";
4
- import { n as StatusDot, s as isCategory } from "../chunks/StatusBadge-RRUI78iS.js";
5
- import { a as UncontrolledCollapsiblePanel, c as Dropdown, n as SectionHeader, o as MultiSelectDropdown, r as ControlledCollapsiblePanel, s as CustomListbox, t as SwitchToggle } from "../chunks/SwitchToggle-DbW0Q__L.js";
4
+ import { n as StatusDot, s as isCategory } from "../chunks/StatusBadge-zvEtK16a.js";
5
+ import { a as UncontrolledCollapsiblePanel, c as Dropdown, n as SectionHeader, o as MultiSelectDropdown, r as ControlledCollapsiblePanel, s as CustomListbox, t as SwitchToggle } from "../chunks/SwitchToggle-3V836Cn7.js";
6
6
  import { t as Loader } from "../chunks/Loader-BXoXTZGc.js";
7
7
  import { n as Table } from "../chunks/Table-CutP1bRt.js";
8
- import { a as resolvedFlag, c as FieldWrapper, d as useFieldLabelledByProps, f as useFieldRequired, i as initializeValues, l as FieldProvider, n as flattenGroups, o as applySecondaryField, r as impureSetValueFromPath, s as findSecondaryOption, t as enforceOneMustBeTrue, u as useFieldControlProps } from "../chunks/lib-DyJvmbzj.js";
8
+ import { a as resolvedFlag, c as FieldWrapper, d as useFieldLabelledByProps, f as useFieldRequired, i as initializeValues, l as FieldProvider, n as flattenGroups, o as applySecondaryField, r as impureSetValueFromPath, s as findSecondaryOption, t as enforceOneMustBeTrue, u as useFieldControlProps } from "../chunks/lib-CUTRDpa6.js";
9
9
  import cx from "classnames";
10
10
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
11
11
  import React, { Suspense, createContext, memo, useCallback, useContext, useEffect, useId, useMemo, useRef, useState } from "react";
@@ -1130,7 +1130,7 @@ function RangeField(props) {
1130
1130
  children: ({ id, labelId }) => /* @__PURE__ */ jsxs("div", {
1131
1131
  className: "flex items-center",
1132
1132
  children: [/* @__PURE__ */ jsx(Field, {
1133
- className: cx("theme-input h-7 w-1/3 mr-5 text-center rounded border text-[14px]", disabled && "disabled"),
1133
+ className: cx("theme-input h-7 w-1/3 mr-5 text-center rounded border", disabled && "disabled"),
1134
1134
  id,
1135
1135
  type: "number",
1136
1136
  value: currentValue,
@@ -1347,7 +1347,7 @@ var DurationField_default = memo(function DurationField({ field, label, labelPos
1347
1347
  onChange: (e) => handleDisableToggle(e.target.checked),
1348
1348
  className: cx("h-4 w-4 accent-(--theme-link)", disabled ? "cursor-not-allowed" : "cursor-pointer")
1349
1349
  }), /* @__PURE__ */ jsx("span", {
1350
- className: "text-sm theme-text",
1350
+ className: "theme-text",
1351
1351
  children: field.disableLabel
1352
1352
  })]
1353
1353
  })
@@ -1432,7 +1432,7 @@ function ColorField(props) {
1432
1432
  labelPosition,
1433
1433
  spaceCompact,
1434
1434
  children: ({ id }) => /* @__PURE__ */ jsx(Field, {
1435
- className: "theme-input h-8 w-18 rounded border border-neutral-400 text-[14px] placeholder:text-xs",
1435
+ className: "theme-input h-8 w-18 rounded border border-neutral-400 placeholder:text-xs",
1436
1436
  id,
1437
1437
  name: field.name,
1438
1438
  value: fieldState.value || "#fbbf24",
@@ -1458,14 +1458,14 @@ function MultiDropdownField({ field, label, tooltipComponent, labelPosition, spa
1458
1458
  labelPosition,
1459
1459
  spaceCompact,
1460
1460
  children: ({ id }) => disabled ? /* @__PURE__ */ jsx(Field, {
1461
- className: "theme-input h-7 w-full rounded border text-[14px] placeholder:text-xs",
1461
+ className: "theme-input h-7 w-full rounded border placeholder:text-xs",
1462
1462
  id,
1463
1463
  type: "search",
1464
1464
  name: field.name,
1465
1465
  disabled: true,
1466
1466
  onChange
1467
1467
  }, field.name) : /* @__PURE__ */ jsx(MultiSelectionDropdown, {
1468
- className: "themee-input h-7 w-full rounded border text-[14px] flex items-center px-3 py-2",
1468
+ className: "themee-input h-7 w-full rounded border flex items-center px-3 py-2",
1469
1469
  name: field.name,
1470
1470
  label: field.label || label,
1471
1471
  options: Array.isArray(options) ? options : [],
@@ -1531,7 +1531,7 @@ function CheckboxGroupField({ field, label, labelPosition, missing, disabled, on
1531
1531
  }), /* @__PURE__ */ jsxs("div", {
1532
1532
  className: "flex min-w-0 flex-col",
1533
1533
  children: [/* @__PURE__ */ jsx("span", {
1534
- className: "text-sm font-medium leading-tight theme-text",
1534
+ className: "font-medium leading-tight theme-text",
1535
1535
  children: option.label
1536
1536
  }), option.description && /* @__PURE__ */ jsx("span", {
1537
1537
  className: "mt-0.5 text-xs leading-snug theme-muted-text",
@@ -1626,7 +1626,7 @@ function BucketReadOnlyField({ field, disabled, missing, labelPosition, setFormD
1626
1626
  yesLabel: t.readOnly,
1627
1627
  noLabel: t.readWrite
1628
1628
  }), /* @__PURE__ */ jsx("p", {
1629
- className: cx("text-sm theme-muted-text max-w-[65ch]", !forced && "hidden"),
1629
+ className: cx("theme-muted-text max-w-[65ch]", !forced && "hidden"),
1630
1630
  children: t.readOnlyForced
1631
1631
  })]
1632
1632
  })
@@ -1698,7 +1698,10 @@ function listLengthsSignature(options, values = {}, prefix = "") {
1698
1698
  parts.push(`${fullName}:${len}`);
1699
1699
  const template = field.template || field.options;
1700
1700
  if (template && Array.isArray(items)) for (let i = 0; i < items.length; i++) parts.push(listLengthsSignature(template, asRecord(items[i]), `${fullName}[${i}].`));
1701
- } else if (field.type === "group" || field.type === "object") {
1701
+ } else if (field.type === "group") {
1702
+ const groupItems = field.items || field.options;
1703
+ if (groupItems) parts.push(listLengthsSignature(groupItems, values, prefix));
1704
+ } else if (field.type === "object") {
1702
1705
  const groupItems = field.items || field.options;
1703
1706
  if (groupItems) {
1704
1707
  const nestedValues = asRecord(values?.[fieldName]);
@@ -1717,7 +1720,12 @@ function collectFieldsWithDefaults(options, values = {}, prefix = "") {
1717
1720
  if (!field) continue;
1718
1721
  if (fieldName === "$meta") continue;
1719
1722
  const fullName = prefix ? `${prefix}${fieldName}` : fieldName;
1720
- if (field.type === "group" || field.type === "object") {
1723
+ if (field.type === "group") {
1724
+ const groupItems = field.items || field.options;
1725
+ if (groupItems) result.push(...collectFieldsWithDefaults(groupItems, values, prefix));
1726
+ continue;
1727
+ }
1728
+ if (field.type === "object") {
1721
1729
  const groupItems = field.items || field.options;
1722
1730
  if (groupItems) {
1723
1731
  const nestedValues = asRecord(values?.[fieldName]);
@@ -1734,9 +1742,11 @@ function collectFieldsWithDefaults(options, values = {}, prefix = "") {
1734
1742
  }
1735
1743
  continue;
1736
1744
  }
1745
+ if (resolvedFlag(field.hidden) === true && field.ignore !== void 0 && resolvedFlag(field.ignore) !== false) continue;
1737
1746
  if (field.default !== void 0) result.push({
1738
1747
  name: fullName,
1739
- defaultValue: field.default
1748
+ defaultValue: field.default,
1749
+ ...field.secondaryField ? { hasSecondary: true } : {}
1740
1750
  });
1741
1751
  }
1742
1752
  return result;
@@ -1749,17 +1759,29 @@ function defaultReferencesField(defaultValue, fieldPath) {
1749
1759
  function findSelfReferencingFieldNames(schema, values = {}) {
1750
1760
  return collectFieldsWithDefaults(schema, values).filter(({ name, defaultValue }) => defaultReferencesField(defaultValue, name)).map(({ name }) => name);
1751
1761
  }
1752
- /**
1753
- * Re-syncs each field's value when its resolved default changes between
1754
- * renders, unless `meta.touched` (this session) or a synth-touched marker
1755
- * (cross-session, set on first-seen when saved ≠ default) is set. Must be
1756
- * remounted via `key` when the run/config context changes.
1757
- */
1758
- function DynamicDefaultsSync({ options }) {
1759
- const { setFieldValue, getFieldMeta, values } = useFormikContext();
1760
- const fieldsWithDefaults = useMemo(() => collectFieldsWithDefaults(options, values), [options, useMemo(() => listLengthsSignature(options, values), [options, values])]);
1762
+ /** Resolves schema defaults into form values as dependencies change. Store-agnostic so the legacy
1763
+ * form (Formik) and the cluster wizard (its own store) share one implementation. */
1764
+ function useDynamicDefaultsSync({ options, values, setValue, isTouched }) {
1765
+ const listSig = useMemo(() => listLengthsSignature(options, values), [options, values]);
1766
+ const fieldsWithDefaults = useMemo(() => collectFieldsWithDefaults(options, values).map((f) => {
1767
+ if (typeof f.defaultValue !== "string" || !f.defaultValue.includes("${{")) return f;
1768
+ const lastRowIndex = [...f.name.matchAll(/\[(\d+)\]/g)].at(-1)?.[1];
1769
+ const index = lastRowIndex === void 0 ? -1 : Number(lastRowIndex);
1770
+ const parsed = parseStringsOfObj({
1771
+ inputs: values,
1772
+ obj: { v: f.defaultValue },
1773
+ orgVars: {},
1774
+ index
1775
+ });
1776
+ const resolved = parsed && typeof parsed === "object" && "v" in parsed ? parsed.v : f.defaultValue;
1777
+ return {
1778
+ ...f,
1779
+ defaultValue: resolved
1780
+ };
1781
+ }), [options, listSig]);
1761
1782
  const prevDefaultsRef = useRef(/* @__PURE__ */ new Map());
1762
1783
  const synthTouchedRef = useRef(/* @__PURE__ */ new Set());
1784
+ const prevListLensRef = useRef(/* @__PURE__ */ new Map());
1763
1785
  const fieldsWithDefaultsRef = useRef(null);
1764
1786
  if (!deepEqual(fieldsWithDefaultsRef.current, fieldsWithDefaults)) {
1765
1787
  fieldsWithDefaultsRef.current = fieldsWithDefaults;
@@ -1768,23 +1790,53 @@ function DynamicDefaultsSync({ options }) {
1768
1790
  prevDefaultsRef.current.delete(name);
1769
1791
  synthTouchedRef.current.delete(name);
1770
1792
  }
1771
- for (const { name, defaultValue } of fieldsWithDefaults) {
1793
+ const listLens = /* @__PURE__ */ new Map();
1794
+ for (const part of listSig.split("|")) {
1795
+ const sep = part.lastIndexOf(":");
1796
+ if (sep > 0) listLens.set(part.slice(0, sep), Number(part.slice(sep + 1)));
1797
+ }
1798
+ for (const [list, prevLen] of prevListLensRef.current) {
1799
+ const nowLen = listLens.get(list);
1800
+ if (nowLen !== void 0 && nowLen < prevLen) {
1801
+ for (const name of [...prevDefaultsRef.current.keys()]) if (name.startsWith(`${list}[`)) prevDefaultsRef.current.delete(name);
1802
+ for (const name of [...synthTouchedRef.current]) if (name.startsWith(`${list}[`)) synthTouchedRef.current.delete(name);
1803
+ }
1804
+ }
1805
+ prevListLensRef.current = listLens;
1806
+ for (const { name, defaultValue, hasSecondary } of fieldsWithDefaults) {
1807
+ if (hasSecondary) continue;
1772
1808
  if (synthTouchedRef.current.has(name)) continue;
1773
- if (getFieldMeta(name).touched) continue;
1809
+ if (isTouched(name)) continue;
1810
+ if (typeof defaultValue === "string" && defaultValue.includes("${{")) continue;
1774
1811
  const wasSeen = prevDefaultsRef.current.has(name);
1775
1812
  const serializedDefault = JSON.stringify(defaultValue ?? null);
1776
1813
  const prevDefault = prevDefaultsRef.current.get(name);
1777
1814
  prevDefaultsRef.current.set(name, serializedDefault);
1778
1815
  if (!wasSeen) {
1779
- const currVal = JSON.stringify(getValueUsingPath(values, name));
1780
- if (currVal !== void 0 && currVal !== serializedDefault) synthTouchedRef.current.add(name);
1781
- continue;
1816
+ const rawValue = getValueUsingPath(values, name);
1817
+ const currVal = JSON.stringify(rawValue);
1818
+ const trimmedValue = typeof rawValue === "string" ? rawValue.trim() : "";
1819
+ const unresolvedValue = trimmedValue.startsWith("${{") && trimmedValue.endsWith("}}");
1820
+ if (!unresolvedValue && currVal !== void 0 && currVal !== serializedDefault) {
1821
+ synthTouchedRef.current.add(name);
1822
+ continue;
1823
+ }
1824
+ if (!unresolvedValue) continue;
1782
1825
  }
1783
1826
  if (prevDefault === serializedDefault) continue;
1784
1827
  if (defaultValue === null || defaultValue === void 0) continue;
1785
- if (JSON.stringify(getValueUsingPath(values, name)) !== serializedDefault) setFieldValue(name, defaultValue);
1828
+ if (JSON.stringify(getValueUsingPath(values, name)) !== serializedDefault) setValue(name, defaultValue);
1786
1829
  }
1787
1830
  }
1831
+ }
1832
+ function DynamicDefaultsSync({ options }) {
1833
+ const { setFieldValue, getFieldMeta, values } = useFormikContext();
1834
+ useDynamicDefaultsSync({
1835
+ options,
1836
+ values,
1837
+ setValue: setFieldValue,
1838
+ isTouched: (name) => getFieldMeta(name).touched
1839
+ });
1788
1840
  return null;
1789
1841
  }
1790
1842
  function GroupHeader({ children, open, setOpen, title }) {
@@ -1919,7 +1971,7 @@ var InputField = React.memo(function InputField({ label, field, setFormDirty, on
1919
1971
  return /* @__PURE__ */ jsx(TooltipInfo, {
1920
1972
  className: "pr-2",
1921
1973
  place: "top",
1922
- text: typeof fieldObj.tooltip === "string" ? fieldObj.tooltip.replace(/\r/g, "") : fieldObj.tooltip.join("\n")
1974
+ text: typeof fieldObj.tooltip === "string" ? fieldObj.tooltip.replace(/\r/g, "") : fieldObj.tooltip.filter(Boolean).join("\n")
1923
1975
  });
1924
1976
  }, [fieldObj.tooltip]);
1925
1977
  return /* @__PURE__ */ jsx(Registry, {
@@ -2167,7 +2219,7 @@ function DynamicFormContent({ options, setValues, setFormDirty, labelPosition, m
2167
2219
  return /* @__PURE__ */ jsxs(Fragment, { children: [
2168
2220
  /* @__PURE__ */ jsx(DirtyStateBridge, { setFormDirty }),
2169
2221
  /* @__PURE__ */ jsx(FormikStateBridge, { onChange: handleChange }),
2170
- workflowForm && /* @__PURE__ */ jsx(DynamicDefaultsSync, { options: opts }, contextKey ?? ""),
2222
+ /* @__PURE__ */ jsx(DynamicDefaultsSync, { options: opts }, contextKey ?? ""),
2171
2223
  wizardConfig !== null && wizardConfig ? /* @__PURE__ */ jsx(WizardContainer, {
2172
2224
  wizardConfig,
2173
2225
  values,
@@ -2224,7 +2276,7 @@ function DynamicForm({ formJSONs: options = {}, reinitialize = false, initialVal
2224
2276
  },
2225
2277
  ...formikRef ? { innerRef: formikRef } : {},
2226
2278
  children: ({ values }) => /* @__PURE__ */ jsx(Form, {
2227
- className: "w-full text-sm",
2279
+ className: "pw-form w-full text-[13px]",
2228
2280
  children: /* @__PURE__ */ jsx(DynamicFormContent, {
2229
2281
  values,
2230
2282
  options,
@@ -2388,4 +2440,4 @@ function ResourceOptionIcon({ imageUrl, fallbackIcon, alt, variant = "success",
2388
2440
  });
2389
2441
  }
2390
2442
  //#endregion
2391
- export { DropdownWrapper, DynamicDefaultsSync, DynamicForm, FLEX_MAX_DURATION_RANGE, FLEX_WAIT_TIME_RANGE, FieldProvider, FieldRegistryContext, FieldWrapper, FieldsFromOptions, FormikCustomDropdown_default as FormikCustomDropdown, FormikCustomInput, FormikMultiSelectDropdown, FormikNumericInput, GroupHeader, MultiSelectionDropdown, NumberField, Registry, ResourceOptionIcon, STANDARD_MAX_DURATION_RANGE, StatusBlock, applySecondaryField, collectFieldsWithDefaults, collectPartitionDurationIssues, enforceOneMustBeTrue, findSecondaryOption, findSelfReferencingFieldNames, flattenGroups, formatSecondsAsSlurmDuration, getInstanceTypesForForm, getInvalidDurationPaths, getPlaceholder, impureSetValueFromPath, initializeValues, parseSlurmDuration, resolveMetaOverrides, resolvePwString, resolvePwValue, resolvedFlag, setDurationValidity, useFieldControlProps, useFieldLabelledByProps, useFieldRequired, useParsedOpts };
2443
+ export { DropdownWrapper, DynamicDefaultsSync, DynamicForm, FLEX_MAX_DURATION_RANGE, FLEX_WAIT_TIME_RANGE, FieldProvider, FieldRegistryContext, FieldWrapper, FieldsFromOptions, FormikCustomDropdown_default as FormikCustomDropdown, FormikCustomInput, FormikMultiSelectDropdown, FormikNumericInput, GroupHeader, MultiSelectionDropdown, NumberField, Registry, ResourceOptionIcon, STANDARD_MAX_DURATION_RANGE, StatusBlock, applySecondaryField, collectFieldsWithDefaults, collectPartitionDurationIssues, enforceOneMustBeTrue, findSecondaryOption, findSelfReferencingFieldNames, flattenGroups, formatSecondsAsSlurmDuration, getInstanceTypesForForm, getInvalidDurationPaths, getPlaceholder, impureSetValueFromPath, initializeValues, parseSlurmDuration, resolveMetaOverrides, resolvePwString, resolvePwValue, resolvedFlag, setDurationValidity, useDynamicDefaultsSync, useFieldControlProps, useFieldLabelledByProps, useFieldRequired, useParsedOpts };
package/dist/icons.d.ts CHANGED
@@ -6,8 +6,8 @@ export type { IconType } from 'react-icons';
6
6
  export { AiOutlineRollback as RollbackIcon } from 'react-icons/ai';
7
7
  export { BiBell as UnmuteIcon, BiBellOff as MuteIcon, BiExpandVertical as ExpandVerticalIcon, BiBuildings as OrganizationIcon, BiPause as PauseIcon, BiSolidCheckShield as ShieldIcon, BiPlay as StartIcon, BiStop as StopIcon, BiSolidTrashAlt as TrashIcon, } from 'react-icons/bi';
8
8
  export { BsStar as PinIcon, BsStarFill as PinFilledIcon, BsGrid as GridIcon, BsBucket as BucketIcon, BsArrowsCollapse as CollapseIcon, BsThreeDotsVertical as MenuIcon, BsThreeDots as MoreIcon, BsSearch as SearchOutlineIcon, BsTerminalFill as UserWorkspaceFillIcon, BsTerminal as UserWorkspaceIcon, BsFileEarmarkZip as ZipIcon, BsMusicNoteBeamed as MusicIcon, } from 'react-icons/bs';
9
- export { FaAmazon as AmazonIcon, FaCentos as CentOSIcon, FaChrome as ChromeIcon, FaCog as CogIcon, FaEdge as EdgeIcon, FaFirefoxBrowser as FirefoxIcon, FaOpera as OperaIcon, FaSafari as SafariIcon, FaExclamationTriangle as WarningTriangleIcon, FaFile as FileSolidIcon, FaFilePdf as PdfSolidIcon, FaFolder as FolderSolidIcon, FaGithub as GitHubIcon, FaGitlab as GitLabIcon, FaImage as ImageSolidIcon, FaLinux as LinuxIcon, FaPaperclip as AttachmentIcon, FaRedhat as RedHatIcon, FaRobot as RobotIcon, FaShieldAlt as ShieldAltIcon, FaStop as StopSolidIcon, FaSuse as SuseIcon, FaUbuntu as UbuntuIcon, FaUsers as AccessIcon, FaPlus as AddIcon, FaAngleDown as AngleDownIcon, FaAngleLeft as AngleLeftIcon, FaAngleRight as AngleRightIcon, FaAngleUp as AngleUpIcon, FaArrowDown as ArrowDownIcon, FaArrowLeft as ArrowLeftIcon, FaArrowRight as ArrowRightIcon, FaArrowUp as ArrowUpIcon, FaCaretDown as CaretDownIcon, FaChartLine as ChartIcon, FaComments as ChatIcon, FaCheck as CheckIcon, FaChevronDown as ChevronDownIcon, FaChevronUp as ChevronUpIcon, FaCloud as CloudIcon, FaDollarSign as CostDashboardIcon, FaDocker as DockerIcon, FaCloudDownloadAlt as DownloadIcon, FaEdit as EditIcon, FaRunning as ExecuteWorkflow, FaExpand as ExpandIcon, FaFilter as FilterIcon, FaFlask as FlaskIcon, FaRegFolder as FolderIcon, FaCogs as GearsIcon, FaGlobe as GlobeIcon, FaEye as HiddenFalseIcon, FaEyeSlash as HiddenTrueIcon, FaRegFileImage as ImageIcon, FaKey as KeyIcon, FaLink as LinkIcon, FaLock as LockIcon, FaGlobeAmericas as MarketplaceIcon, FaRegCircle as NotRunningIcon, FaOpenid as OIDCIcon, FaRocket as PartnerIcon, FaKey as PasswordIcon, FaChartPie as PieChartIcon, FaPowerOff as PowerIcon, FaPrint as PrintIcon, FaGlobeAmericas as PublishIcon, FaQrcode as QRCodeIcon, FaLayerGroup as ResourceGroupIcon, FaUndoAlt as RetryIcon, FaSave as SaveIcon, FaList as SchedulerIcon, FaSearch as SearchIcon, FaUsers as SharingIcon, FaCompress as ShrinkIcon, FaDesktop as SnapshotIcon, FaSlack as SlackIcon, FaTerminal as TerminalIcon, FaTimes as TimesIcon, FaQuestionCircle as UserGuideIcon, FaStar as FeaturedIcon, FaUser as UserIcon, FaUsers as UsersIcon, FaWindows as WindowsIcon, } from 'react-icons/fa';
10
- export { FaApple as AppleIcon, FaArrowsRotate as RefreshArrowsIcon, FaDebian as DebianIcon, FaWandMagicSparkles as CustomizeIcon, FaFilterCircleXmark as FilterClearIcon, FaRegFolderOpen as FolderOpenIcon, FaLocationDot as IpAddressIcon, FaUpRightFromSquare as NewWindowIcon, FaInbox as NotificationInboxIcon, FaRegFilePdf as PdfIcon, } from 'react-icons/fa6';
9
+ export { FaAmazon as AmazonIcon, FaCentos as CentOSIcon, FaChrome as ChromeIcon, FaCog as CogIcon, FaEdge as EdgeIcon, FaFirefoxBrowser as FirefoxIcon, FaOpera as OperaIcon, FaSafari as SafariIcon, FaExclamationTriangle as WarningTriangleIcon, FaFile as FileSolidIcon, FaFilePdf as PdfSolidIcon, FaFolder as FolderSolidIcon, FaGithub as GitHubIcon, FaGitlab as GitLabIcon, FaLinkedin as LinkedInIcon, FaImage as ImageSolidIcon, FaLinux as LinuxIcon, FaPaperclip as AttachmentIcon, FaRedhat as RedHatIcon, FaRobot as RobotIcon, FaShieldAlt as ShieldAltIcon, FaStop as StopSolidIcon, FaSuse as SuseIcon, FaUbuntu as UbuntuIcon, FaUsers as AccessIcon, FaPlus as AddIcon, FaAngleDown as AngleDownIcon, FaAngleLeft as AngleLeftIcon, FaAngleRight as AngleRightIcon, FaAngleUp as AngleUpIcon, FaArrowDown as ArrowDownIcon, FaArrowLeft as ArrowLeftIcon, FaArrowRight as ArrowRightIcon, FaArrowUp as ArrowUpIcon, FaCaretDown as CaretDownIcon, FaChartLine as ChartIcon, FaComments as ChatIcon, FaCheck as CheckIcon, FaChevronDown as ChevronDownIcon, FaChevronUp as ChevronUpIcon, FaCloud as CloudIcon, FaDollarSign as CostDashboardIcon, FaDocker as DockerIcon, FaCloudDownloadAlt as DownloadIcon, FaEdit as EditIcon, FaRunning as ExecuteWorkflow, FaExpand as ExpandIcon, FaFilter as FilterIcon, FaFlask as FlaskIcon, FaRegFolder as FolderIcon, FaCogs as GearsIcon, FaGlobe as GlobeIcon, FaEye as HiddenFalseIcon, FaEyeSlash as HiddenTrueIcon, FaRegFileImage as ImageIcon, FaKey as KeyIcon, FaLink as LinkIcon, FaLock as LockIcon, FaGlobeAmericas as MarketplaceIcon, FaRegCircle as NotRunningIcon, FaOpenid as OIDCIcon, FaRocket as PartnerIcon, FaKey as PasswordIcon, FaChartPie as PieChartIcon, FaPowerOff as PowerIcon, FaPrint as PrintIcon, FaGlobeAmericas as PublishIcon, FaQrcode as QRCodeIcon, FaLayerGroup as ResourceGroupIcon, FaUndoAlt as RetryIcon, FaSave as SaveIcon, FaList as SchedulerIcon, FaSearch as SearchIcon, FaUsers as SharingIcon, FaCompress as ShrinkIcon, FaDesktop as SnapshotIcon, FaSlack as SlackIcon, FaTerminal as TerminalIcon, FaTimes as TimesIcon, FaQuestionCircle as UserGuideIcon, FaStar as FeaturedIcon, FaUser as UserIcon, FaUsers as UsersIcon, FaWindows as WindowsIcon, } from 'react-icons/fa';
10
+ export { FaApple as AppleIcon, FaArrowsRotate as RefreshArrowsIcon, FaDebian as DebianIcon, FaWandMagicSparkles as CustomizeIcon, FaFilterCircleXmark as FilterClearIcon, FaRegFolderOpen as FolderOpenIcon, FaLocationDot as IpAddressIcon, FaUpRightFromSquare as NewWindowIcon, FaXTwitter as XTwitterIcon, FaInbox as NotificationInboxIcon, FaRegFilePdf as PdfIcon, } from 'react-icons/fa6';
11
11
  export { FiAlertCircle as AlertCircleIcon, FiActivity as HealthMonitoringIcon, FiChevronDown as ChevronDownStrokeIcon, FiClock as ClockIcon, FiHardDrive as DiskIcon, FiDownload as DownloadFileIcon, FiFile as FileIcon, FiFileText as FileTextIcon, FiRotateCcw as HistoryIcon, FiUpload as UploadIcon, FiZap as ZapIcon, } from 'react-icons/fi';
12
12
  export { GiSpy as ImpersonateIcon } from 'react-icons/gi';
13
13
  export { GoPlus as PlusOutlineIcon, GoSkip as ForbiddenIcon, GoRepoForked as ForkIcon, GoSignOut as SignOutIcon, GoVideo as VideoIcon, } from 'react-icons/go';
@@ -19,7 +19,7 @@ export { HiMiniLanguage as LanguageIcon, HiMiniXCircle as FailIcon, HiMiniMinusC
19
19
  export { ImSpinner5 as RunningIcon } from 'react-icons/im';
20
20
  export { IoMdBuild as BuildWorkflowIcon, IoMdClose as CloseIcon, IoIosNotifications as NotificationFillIcon, } from 'react-icons/io';
21
21
  export { IoCloudUploadOutline as CloudUploadIcon, IoDocumentTextOutline as DocumentIcon, IoHeart as FavoriteIcon, IoHeartOutline as FavoriteOutlineIcon, IoFileTrayFullOutline as FilesystemIcon, IoInformationCircleOutline as InfoCircleIcon, IoSettingsOutline as SettingsIcon, IoHeartDislike as UnfavoriteIcon, IoWarningOutline as WarningIcon, } from 'react-icons/io5';
22
- export { LuArrowRight as ArrowRightStrokeIcon, LuBadgeCheck as LicenseIcon, LuCalendar as CalendarIcon, LuCheck as CheckStrokeIcon, LuChevronLeft as ChevronLeftIcon, LuChevronRight as ChevronRightIcon, LuLogs as EventsIcon, LuSettings2 as DisplayIcon, LuExternalLink as ExternalLink, LuEye as EyeIcon, LuEyeOff as EyeOffIcon, LuFolderTree as FolderTreeIcon, LuIdCard as IdCardIcon, LuMail as MailIcon, LuMoon as MoonIcon, LuBrainCircuit as MlIcon, LuShield as ShieldOutlineIcon, LuSheet as SpreadsheetIcon, LuSun as SunIcon, LuX as XStrokeIcon, LuZoomIn as ZoomInIcon, LuZoomOut as ZoomOutIcon, } from 'react-icons/lu';
22
+ export { LuArrowRight as ArrowRightStrokeIcon, LuBadgeCheck as LicenseIcon, LuCalendar as CalendarIcon, LuCheck as CheckStrokeIcon, LuChevronLeft as ChevronLeftIcon, LuChevronRight as ChevronRightIcon, LuLogs as EventsIcon, LuSettings2 as DisplayIcon, LuExternalLink as ExternalLink, LuEye as EyeIcon, LuEyeOff as EyeOffIcon, LuFolderTree as FolderTreeIcon, LuIdCard as IdCardIcon, LuMail as MailIcon, LuMegaphone as MegaphoneIcon, LuMoon as MoonIcon, LuBrainCircuit as MlIcon, LuShield as ShieldOutlineIcon, LuSheet as SpreadsheetIcon, LuSun as SunIcon, LuX as XStrokeIcon, LuZoomIn as ZoomInIcon, LuZoomOut as ZoomOutIcon, } from 'react-icons/lu';
23
23
  export { MdClear as ClearIcon, MdDragHandle as DragHandleIcon, MdInstallDesktop as InstallIcon, MdSmartphone as MFA, MdOutlineMoneyOff as DisableCostIcon, MdOutlineAttachMoney as EnableCostIcon, MdPieChart as QuotaIcon, MdRefresh as RefreshIcon, MdReplay as ReplayIcon, } from 'react-icons/md';
24
24
  export { PiArrowBendUpRightBold as OpenInNewGraphIcon, PiPlugsConnectedFill as ConnectIcon, PiRectangleDashed as KubernetesNamespaceIcon, PiShareBold as ShareIcon, } from 'react-icons/pi';
25
25
  export { SiAnthropic as AnthropicIcon, SiHelm as HelmIcon, SiKubernetes as KubernetesIcon, SiOpenai as OpenAIIcon, } from 'react-icons/si';
package/dist/icons.js CHANGED
@@ -1,10 +1,10 @@
1
1
  import cx from "classnames";
2
2
  import { BiBell as UnmuteIcon, BiBellOff as MuteIcon, BiBuildings as OrganizationIcon, BiError as ErrorIcon, BiExpandVertical as ExpandVerticalIcon, BiPause as PauseIcon, BiPlay as StartIcon, BiSolidCheckShield as ShieldIcon, BiSolidTrashAlt as TrashIcon, BiStop as StopIcon } from "react-icons/bi";
3
3
  import { BsArrowsCollapse as CollapseIcon, BsBucket as BucketIcon, BsCurrencyDollar as MoneyIcon, BsFileEarmarkZip as ZipIcon, BsGrid as GridIcon, BsLayers as InfrastructureLayersIcon, BsMusicNoteBeamed as MusicIcon, BsSearch as SearchOutlineIcon, BsStar as PinIcon, BsStarFill as PinFilledIcon, BsTerminal as UserWorkspaceIcon, BsTerminalFill as UserWorkspaceFillIcon, BsThreeDots as MoreIcon, BsThreeDotsVertical as MenuIcon, BsZoomIn as ChartZoomIcon } from "react-icons/bs";
4
- import { FaAmazon as AmazonIcon, FaAngleDown as AngleDownIcon, FaAngleLeft as AngleLeftIcon, FaAngleRight as AngleRightIcon, FaAngleUp as AngleUpIcon, FaArrowDown as ArrowDownIcon, FaArrowLeft as ArrowLeftIcon, FaArrowRight as ArrowRightIcon, FaArrowUp as ArrowUpIcon, FaCaretDown as CaretDownIcon, FaCentos as CentOSIcon, FaChartLine as ChartIcon, FaChartPie as PieChartIcon, FaCheck as CheckIcon, FaChevronDown as ChevronDownIcon, FaChevronUp as ChevronUpIcon, FaChrome as ChromeIcon, FaCircleNotch, FaCloud as CloudIcon, FaCloudDownloadAlt as DownloadIcon, FaCog as CogIcon, FaCogs as GearsIcon, FaComments as ChatIcon, FaCompress as ShrinkIcon, FaDesktop as SnapshotIcon, FaDocker as DockerIcon, FaDollarSign as CostDashboardIcon, FaEdge as EdgeIcon, FaEdit as EditIcon, FaExclamationTriangle as WarningTriangleIcon, FaExpand as ExpandIcon, FaEye as HiddenFalseIcon, FaEyeSlash as HiddenTrueIcon, FaFile as FileSolidIcon, FaFilePdf as PdfSolidIcon, FaFilter as FilterIcon, FaFirefoxBrowser as FirefoxIcon, FaFlask as FlaskIcon, FaFolder as FolderSolidIcon, FaGithub as GitHubIcon, FaGitlab as GitLabIcon, FaGlobe as GlobeIcon, FaGlobeAmericas as MarketplaceIcon, FaGlobeAmericas as PublishIcon, FaImage as ImageSolidIcon, FaInfoCircle as InfoIcon, FaKey as KeyIcon, FaKey as PasswordIcon, FaLayerGroup as ResourceGroupIcon, FaLink as LinkIcon, FaLinux as LinuxIcon, FaList as SchedulerIcon, FaLock as LockIcon, FaOpenid as OIDCIcon, FaOpera as OperaIcon, FaPaperclip as AttachmentIcon, FaPlus as AddIcon, FaPowerOff as PowerIcon, FaPrint as PrintIcon, FaQrcode as QRCodeIcon, FaQuestionCircle as UserGuideIcon, FaRedhat as RedHatIcon, FaRegCircle as NotRunningIcon, FaRegFileImage as ImageIcon, FaRegFolder as FolderIcon, FaRobot as RobotIcon, FaRocket as PartnerIcon, FaRunning as ExecuteWorkflow, FaSafari as SafariIcon, FaSave as SaveIcon, FaSearch as SearchIcon, FaShieldAlt as ShieldAltIcon, FaSlack as SlackIcon, FaStar as FeaturedIcon, FaStop as StopSolidIcon, FaSuse as SuseIcon, FaTerminal as TerminalIcon, FaTimes as TimesIcon, FaUbuntu as UbuntuIcon, FaUndoAlt as RetryIcon, FaUser as UserIcon, FaUsers as AccessIcon, FaUsers as SharingIcon, FaUsers as UsersIcon, FaWindows as WindowsIcon } from "react-icons/fa";
4
+ import { FaAmazon as AmazonIcon, FaAngleDown as AngleDownIcon, FaAngleLeft as AngleLeftIcon, FaAngleRight as AngleRightIcon, FaAngleUp as AngleUpIcon, FaArrowDown as ArrowDownIcon, FaArrowLeft as ArrowLeftIcon, FaArrowRight as ArrowRightIcon, FaArrowUp as ArrowUpIcon, FaCaretDown as CaretDownIcon, FaCentos as CentOSIcon, FaChartLine as ChartIcon, FaChartPie as PieChartIcon, FaCheck as CheckIcon, FaChevronDown as ChevronDownIcon, FaChevronUp as ChevronUpIcon, FaChrome as ChromeIcon, FaCircleNotch, FaCloud as CloudIcon, FaCloudDownloadAlt as DownloadIcon, FaCog as CogIcon, FaCogs as GearsIcon, FaComments as ChatIcon, FaCompress as ShrinkIcon, FaDesktop as SnapshotIcon, FaDocker as DockerIcon, FaDollarSign as CostDashboardIcon, FaEdge as EdgeIcon, FaEdit as EditIcon, FaExclamationTriangle as WarningTriangleIcon, FaExpand as ExpandIcon, FaEye as HiddenFalseIcon, FaEyeSlash as HiddenTrueIcon, FaFile as FileSolidIcon, FaFilePdf as PdfSolidIcon, FaFilter as FilterIcon, FaFirefoxBrowser as FirefoxIcon, FaFlask as FlaskIcon, FaFolder as FolderSolidIcon, FaGithub as GitHubIcon, FaGitlab as GitLabIcon, FaGlobe as GlobeIcon, FaGlobeAmericas as MarketplaceIcon, FaGlobeAmericas as PublishIcon, FaImage as ImageSolidIcon, FaInfoCircle as InfoIcon, FaKey as KeyIcon, FaKey as PasswordIcon, FaLayerGroup as ResourceGroupIcon, FaLink as LinkIcon, FaLinkedin as LinkedInIcon, FaLinux as LinuxIcon, FaList as SchedulerIcon, FaLock as LockIcon, FaOpenid as OIDCIcon, FaOpera as OperaIcon, FaPaperclip as AttachmentIcon, FaPlus as AddIcon, FaPowerOff as PowerIcon, FaPrint as PrintIcon, FaQrcode as QRCodeIcon, FaQuestionCircle as UserGuideIcon, FaRedhat as RedHatIcon, FaRegCircle as NotRunningIcon, FaRegFileImage as ImageIcon, FaRegFolder as FolderIcon, FaRobot as RobotIcon, FaRocket as PartnerIcon, FaRunning as ExecuteWorkflow, FaSafari as SafariIcon, FaSave as SaveIcon, FaSearch as SearchIcon, FaShieldAlt as ShieldAltIcon, FaSlack as SlackIcon, FaStar as FeaturedIcon, FaStop as StopSolidIcon, FaSuse as SuseIcon, FaTerminal as TerminalIcon, FaTimes as TimesIcon, FaUbuntu as UbuntuIcon, FaUndoAlt as RetryIcon, FaUser as UserIcon, FaUsers as AccessIcon, FaUsers as SharingIcon, FaUsers as UsersIcon, FaWindows as WindowsIcon } from "react-icons/fa";
5
5
  import { jsx } from "react/jsx-runtime";
6
6
  import { AiOutlineRollback as RollbackIcon } from "react-icons/ai";
7
- import { FaApple as AppleIcon, FaArrowsRotate as RefreshArrowsIcon, FaDebian as DebianIcon, FaFilterCircleXmark as FilterClearIcon, FaInbox as NotificationInboxIcon, FaLocationDot as IpAddressIcon, FaRegFilePdf as PdfIcon, FaRegFolderOpen as FolderOpenIcon, FaUpRightFromSquare as NewWindowIcon, FaWandMagicSparkles as CustomizeIcon } from "react-icons/fa6";
7
+ import { FaApple as AppleIcon, FaArrowsRotate as RefreshArrowsIcon, FaDebian as DebianIcon, FaFilterCircleXmark as FilterClearIcon, FaInbox as NotificationInboxIcon, FaLocationDot as IpAddressIcon, FaRegFilePdf as PdfIcon, FaRegFolderOpen as FolderOpenIcon, FaUpRightFromSquare as NewWindowIcon, FaWandMagicSparkles as CustomizeIcon, FaXTwitter as XTwitterIcon } from "react-icons/fa6";
8
8
  import { FiActivity as HealthMonitoringIcon, FiAlertCircle as AlertCircleIcon, FiChevronDown as ChevronDownStrokeIcon, FiClock as ClockIcon, FiCopy as CopyIcon, FiDownload as DownloadFileIcon, FiFile as FileIcon, FiFileText as FileTextIcon, FiHardDrive as DiskIcon, FiRotateCcw as HistoryIcon, FiUpload as UploadIcon, FiX as XIcon, FiZap as ZapIcon } from "react-icons/fi";
9
9
  import { GiSpy as ImpersonateIcon } from "react-icons/gi";
10
10
  import { GoPlus as PlusOutlineIcon, GoRepoForked as ForkIcon, GoSignOut as SignOutIcon, GoSkip as ForbiddenIcon, GoVideo as VideoIcon } from "react-icons/go";
@@ -14,7 +14,7 @@ import { HiMiniCheckCircle as SuccessIcon, HiMiniLanguage as LanguageIcon, HiMin
14
14
  import { ImSpinner5 as RunningIcon } from "react-icons/im";
15
15
  import { IoIosNotifications as NotificationFillIcon, IoMdBuild as BuildWorkflowIcon, IoMdClose as CloseIcon } from "react-icons/io";
16
16
  import { IoCloudUploadOutline as CloudUploadIcon, IoDocumentTextOutline as DocumentIcon, IoFileTrayFullOutline as FilesystemIcon, IoHeart as FavoriteIcon, IoHeartDislike as UnfavoriteIcon, IoHeartOutline as FavoriteOutlineIcon, IoInformationCircleOutline as InfoCircleIcon, IoSettingsOutline as SettingsIcon, IoWarningOutline as WarningIcon } from "react-icons/io5";
17
- import { LuArrowRight as ArrowRightStrokeIcon, LuBadgeCheck as LicenseIcon, LuBrainCircuit as MlIcon, LuCalendar as CalendarIcon, LuCheck as CheckStrokeIcon, LuChevronLeft as ChevronLeftIcon, LuChevronRight as ChevronRightIcon, LuExternalLink as ExternalLink, LuEye as EyeIcon, LuEyeOff as EyeOffIcon, LuFolderTree as FolderTreeIcon, LuIdCard as IdCardIcon, LuLogs as EventsIcon, LuMail as MailIcon, LuMoon as MoonIcon, LuSettings2 as DisplayIcon, LuSheet as SpreadsheetIcon, LuShield as ShieldOutlineIcon, LuSun as SunIcon, LuX as XStrokeIcon, LuZoomIn as ZoomInIcon, LuZoomOut as ZoomOutIcon } from "react-icons/lu";
17
+ import { LuArrowRight as ArrowRightStrokeIcon, LuBadgeCheck as LicenseIcon, LuBrainCircuit as MlIcon, LuCalendar as CalendarIcon, LuCheck as CheckStrokeIcon, LuChevronLeft as ChevronLeftIcon, LuChevronRight as ChevronRightIcon, LuExternalLink as ExternalLink, LuEye as EyeIcon, LuEyeOff as EyeOffIcon, LuFolderTree as FolderTreeIcon, LuIdCard as IdCardIcon, LuLogs as EventsIcon, LuMail as MailIcon, LuMegaphone as MegaphoneIcon, LuMoon as MoonIcon, LuSettings2 as DisplayIcon, LuSheet as SpreadsheetIcon, LuShield as ShieldOutlineIcon, LuSun as SunIcon, LuX as XStrokeIcon, LuZoomIn as ZoomInIcon, LuZoomOut as ZoomOutIcon } from "react-icons/lu";
18
18
  import { MdClear as ClearIcon, MdDragHandle as DragHandleIcon, MdInstallDesktop as InstallIcon, MdOutlineAttachMoney as EnableCostIcon, MdOutlineMoneyOff as DisableCostIcon, MdPieChart as QuotaIcon, MdRefresh as RefreshIcon, MdReplay as ReplayIcon, MdSmartphone as MFA } from "react-icons/md";
19
19
  import { PiArrowBendUpRightBold as OpenInNewGraphIcon, PiPlugsConnectedFill as ConnectIcon, PiRectangleDashed as KubernetesNamespaceIcon, PiShareBold as ShareIcon } from "react-icons/pi";
20
20
  import { SiAnthropic as AnthropicIcon, SiHelm as HelmIcon, SiKubernetes as KubernetesIcon, SiOpenai as OpenAIIcon } from "react-icons/si";
@@ -35,4 +35,4 @@ function LoaderIcon({ className, ...props }) {
35
35
  });
36
36
  }
37
37
  //#endregion
38
- export { APIIcon, AccessIcon, AddIcon, AlertCircleIcon, AlertFillIcon, AlertIcon, AmazonIcon, AngleDownIcon, AngleLeftIcon, AngleRightIcon, AngleUpIcon, AnthropicIcon, AppleIcon, ArchiveIcon, ArrowDownIcon, ArrowLeftIcon, ArrowRightIcon, ArrowRightStrokeIcon, ArrowUpIcon, AttachmentIcon, BucketIcon, BuildWorkflowIcon, CalendarIcon, CancelIcon, CaretDownIcon, CentOSIcon, ChartIcon, ChartZoomIcon, ChatIcon, CheckIcon, CheckMarkIcon, CheckStrokeIcon, ChevronDownIcon, ChevronDownStrokeIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, ChromeIcon, ClearIcon, ClipboardIcon, ClockIcon, CloseIcon, CloudIcon, CloudUploadIcon, ClusterIcon, CogIcon, CollapseIcon, ComputeIcon, ConnectIcon, CopyIcon, CostDashboardIcon, CustomizeIcon, DebianIcon, DisableCostIcon, DisableUserIcon, DiskIcon, DisplayIcon, DockerIcon, DocumentIcon, DownloadFileIcon, DownloadIcon, DragHandleIcon, DuplicateIcon, EdgeIcon, EditIcon, EditorIcon, EnableCostIcon, EnableUserIcon, EndpointIcon, ErrorCheckmark, ErrorIcon, EventsIcon, ExecuteWorkflow, ExpandIcon, ExpandVerticalIcon, ExternalLink, EyeIcon, EyeOffIcon, FailIcon, FavoriteIcon, FavoriteOutlineIcon, FeaturedIcon, FileIcon, FileSolidIcon, FileTextIcon, FilesystemIcon, FilterClearIcon, FilterIcon, FirefoxIcon, FlaskIcon, FolderIcon, FolderOpenIcon, FolderSolidIcon, FolderTreeIcon, ForbiddenIcon, ForkIcon, GearIcon, GearsIcon, GitHubIcon, GitLabIcon, GlobeIcon, GridIcon, HealthMonitoringIcon, HelmIcon, HiddenFalseIcon, HiddenTrueIcon, HistoryIcon, HomeIcon, IdCardIcon, ImageIcon, ImageSolidIcon, ImpersonateIcon, InboxIcon, InfoCircleIcon, InfoIcon, InfrastructureLayersIcon, InstallIcon, IpAddressIcon, JsonIcon, KeyIcon, KubernetesIcon, KubernetesNamespaceIcon, LanguageIcon, LicenseIcon, LinkIcon, LinuxIcon, LoaderIcon, LockIcon, MFA, MailIcon, MarketplaceIcon, MenuIcon, MinimizeIcon, MlIcon, MoneyIcon, MonitorIcon, MoonIcon, MoreIcon, MusicIcon, MuteIcon, NewChatIcon, NewWindowIcon, NotRunningIcon, NotificationFillIcon, NotificationInboxIcon, OIDCIcon, OpenAIIcon, OpenInNewGraphIcon, OperaIcon, OrganizationIcon, PartnerIcon, PasswordIcon, PauseIcon, PdfIcon, PdfSolidIcon, PieChartIcon, PinFilledIcon, PinIcon, PlusOutlineIcon, PowerIcon, PowershellIcon, PrintIcon, PublishIcon, QRCodeIcon, QuotaIcon, RedHatIcon, RefreshArrowsIcon, RefreshIcon, ReplayIcon, ResourceGroupIcon, RetryIcon, RobotIcon, RollbackIcon, RunWorkflowIcon, RunningIcon, SafariIcon, SaveIcon, SchedulerIcon, SearchIcon, SearchOutlineIcon, ServerIcon, SettingsIcon, ShareIcon, SharingIcon, ShieldAltIcon, ShieldIcon, ShieldOutlineIcon, ShrinkIcon, SidebarCloseIcon, SidebarIcon, SidebarOpenIcon, SignOutIcon, SkipIcon, SlackIcon, SnapshotIcon, SortDownIcon, SortUnsortedIcon, SortUpIcon, SparklesIcon, SplitIcon, SpreadsheetIcon, StartIcon, StopIcon, StopSolidIcon, StorageIcon, SubdomainIcon, SuccessCheckmark, SuccessIcon, SunIcon, SuseIcon, TerminalIcon, ThinkingIcon, TimesIcon, TooltipIcon, TrashIcon, TunnelIcon, UbuntuIcon, UnfavoriteIcon, UnmuteIcon, UploadIcon, UserGuideIcon, UserIcon, UserWorkspaceFillIcon, UserWorkspaceIcon, UsersIcon, VideoIcon, WarningIcon, WarningTriangleIcon, WindowsIcon, XIcon, XStrokeIcon, ZapIcon, ZipIcon, ZoomInIcon, ZoomOutIcon };
38
+ export { APIIcon, AccessIcon, AddIcon, AlertCircleIcon, AlertFillIcon, AlertIcon, AmazonIcon, AngleDownIcon, AngleLeftIcon, AngleRightIcon, AngleUpIcon, AnthropicIcon, AppleIcon, ArchiveIcon, ArrowDownIcon, ArrowLeftIcon, ArrowRightIcon, ArrowRightStrokeIcon, ArrowUpIcon, AttachmentIcon, BucketIcon, BuildWorkflowIcon, CalendarIcon, CancelIcon, CaretDownIcon, CentOSIcon, ChartIcon, ChartZoomIcon, ChatIcon, CheckIcon, CheckMarkIcon, CheckStrokeIcon, ChevronDownIcon, ChevronDownStrokeIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, ChromeIcon, ClearIcon, ClipboardIcon, ClockIcon, CloseIcon, CloudIcon, CloudUploadIcon, ClusterIcon, CogIcon, CollapseIcon, ComputeIcon, ConnectIcon, CopyIcon, CostDashboardIcon, CustomizeIcon, DebianIcon, DisableCostIcon, DisableUserIcon, DiskIcon, DisplayIcon, DockerIcon, DocumentIcon, DownloadFileIcon, DownloadIcon, DragHandleIcon, DuplicateIcon, EdgeIcon, EditIcon, EditorIcon, EnableCostIcon, EnableUserIcon, EndpointIcon, ErrorCheckmark, ErrorIcon, EventsIcon, ExecuteWorkflow, ExpandIcon, ExpandVerticalIcon, ExternalLink, EyeIcon, EyeOffIcon, FailIcon, FavoriteIcon, FavoriteOutlineIcon, FeaturedIcon, FileIcon, FileSolidIcon, FileTextIcon, FilesystemIcon, FilterClearIcon, FilterIcon, FirefoxIcon, FlaskIcon, FolderIcon, FolderOpenIcon, FolderSolidIcon, FolderTreeIcon, ForbiddenIcon, ForkIcon, GearIcon, GearsIcon, GitHubIcon, GitLabIcon, GlobeIcon, GridIcon, HealthMonitoringIcon, HelmIcon, HiddenFalseIcon, HiddenTrueIcon, HistoryIcon, HomeIcon, IdCardIcon, ImageIcon, ImageSolidIcon, ImpersonateIcon, InboxIcon, InfoCircleIcon, InfoIcon, InfrastructureLayersIcon, InstallIcon, IpAddressIcon, JsonIcon, KeyIcon, KubernetesIcon, KubernetesNamespaceIcon, LanguageIcon, LicenseIcon, LinkIcon, LinkedInIcon, LinuxIcon, LoaderIcon, LockIcon, MFA, MailIcon, MarketplaceIcon, MegaphoneIcon, MenuIcon, MinimizeIcon, MlIcon, MoneyIcon, MonitorIcon, MoonIcon, MoreIcon, MusicIcon, MuteIcon, NewChatIcon, NewWindowIcon, NotRunningIcon, NotificationFillIcon, NotificationInboxIcon, OIDCIcon, OpenAIIcon, OpenInNewGraphIcon, OperaIcon, OrganizationIcon, PartnerIcon, PasswordIcon, PauseIcon, PdfIcon, PdfSolidIcon, PieChartIcon, PinFilledIcon, PinIcon, PlusOutlineIcon, PowerIcon, PowershellIcon, PrintIcon, PublishIcon, QRCodeIcon, QuotaIcon, RedHatIcon, RefreshArrowsIcon, RefreshIcon, ReplayIcon, ResourceGroupIcon, RetryIcon, RobotIcon, RollbackIcon, RunWorkflowIcon, RunningIcon, SafariIcon, SaveIcon, SchedulerIcon, SearchIcon, SearchOutlineIcon, ServerIcon, SettingsIcon, ShareIcon, SharingIcon, ShieldAltIcon, ShieldIcon, ShieldOutlineIcon, ShrinkIcon, SidebarCloseIcon, SidebarIcon, SidebarOpenIcon, SignOutIcon, SkipIcon, SlackIcon, SnapshotIcon, SortDownIcon, SortUnsortedIcon, SortUpIcon, SparklesIcon, SplitIcon, SpreadsheetIcon, StartIcon, StopIcon, StopSolidIcon, StorageIcon, SubdomainIcon, SuccessCheckmark, SuccessIcon, SunIcon, SuseIcon, TerminalIcon, ThinkingIcon, TimesIcon, TooltipIcon, TrashIcon, TunnelIcon, UbuntuIcon, UnfavoriteIcon, UnmuteIcon, UploadIcon, UserGuideIcon, UserIcon, UserWorkspaceFillIcon, UserWorkspaceIcon, UsersIcon, VideoIcon, WarningIcon, WarningTriangleIcon, WindowsIcon, XIcon, XStrokeIcon, XTwitterIcon, ZapIcon, ZipIcon, ZoomInIcon, ZoomOutIcon };
package/dist/index.d.ts CHANGED
@@ -47,4 +47,4 @@ export { default as SettingsGroup } from './components/SettingsGroup.js';
47
47
  export { SettingRow, SettingSection } from './components/SettingRow.js';
48
48
  export { SettingModeOption } from './components/SettingModeOption.js';
49
49
  export { BreadcrumbProvider, useBreadcrumb, useClearBreadcrumbs, useHideBreadcrumbs, useSetBreadcrumbs, useSetDefaultBreadcrumbs, type IBreadcrumbItem, } from './components/Breadcrumbs.js';
50
- export { BreadcrumbsActionButton, BreadcrumbsRightAction, BreadcrumbsTitleAction, HeaderActionMenu, HeaderAddButton, HeaderEditButton, HeaderRowMenu, PageHeader, type PageHeaderBreadcrumb, type PageHeaderCrumb, } from './components/PageHeader.js';
50
+ export { BreadcrumbsActionButton, BreadcrumbsRightAction, BreadcrumbsTitleAction, HeaderActionMenu, HeaderAddButton, HeaderEditButton, HeaderRowMenu, headerActionButtonClasses, PageHeader, type PageHeaderBreadcrumb, type PageHeaderCrumb, } from './components/PageHeader.js';
package/dist/index.js CHANGED
@@ -1,13 +1,13 @@
1
1
  import { DEFAULT_PRESET, THEME_PRESETS, THEME_TOKENS, applyTheme, contrastRatio, deriveTheme, isDarkColor } from "./theme/index.js";
2
2
  import { AlertIcon, AngleRightIcon, EyeIcon, EyeOffIcon, FilterIcon, LoaderIcon, SortDownIcon, SortUnsortedIcon, SortUpIcon } from "./icons.js";
3
- import { a as CreateModalSelect, c as ConfirmModal, d as primaryButtonClasses, f as Markdown, h as Callout, i as CreateModalField, l as dangerButtonClasses, m as CopyToClipboard, n as CreateModal, o as CreateModalSwitch, p as CopyCodeBlock, r as CreateModalAutocompleteField, s as CreateModalTextarea, t as CREATE_MODAL_SELECT_FILTER_THRESHOLD, u as ghostButtonClasses } from "./chunks/CreateModal-k_e1dI8c.js";
3
+ import { a as CreateModalSelect, c as ConfirmModal, d as primaryButtonClasses, f as Markdown, h as Callout, i as CreateModalField, l as dangerButtonClasses, m as CopyToClipboard, n as CreateModal, o as CreateModalSwitch, p as CopyCodeBlock, r as CreateModalAutocompleteField, s as CreateModalTextarea, t as CREATE_MODAL_SELECT_FILTER_THRESHOLD, u as ghostButtonClasses } from "./chunks/CreateModal-B7smkHkv.js";
4
4
  import { a as useProvisionCorsRules, c as useStrings, i as useNotify, l as useWorkflowJsonResolver, n as useLink, o as useRunFile, r as useNavigation, s as useSlots, t as UIProvider } from "./chunks/Provider-CbFVFB7O.js";
5
5
  import { a as truncationTooltipProps, i as formatTooltipContent, n as TOOLTIP_ID, r as TooltipInfo, t as GlobalTooltip } from "./chunks/Tooltip-n9w7Tkt1.js";
6
- import { c as isOption, i as filterOption, l as toggleSetMember, n as StatusDot, o as flattenOptions, r as DropdownCaret, s as isCategory, t as StatusBadge } from "./chunks/StatusBadge-RRUI78iS.js";
7
- import { a as UncontrolledCollapsiblePanel, c as Dropdown, i as MaybeCollapsible, n as SectionHeader, o as MultiSelectDropdown, r as ControlledCollapsiblePanel, s as CustomListbox, t as SwitchToggle } from "./chunks/SwitchToggle-DbW0Q__L.js";
6
+ import { c as isOption, i as filterOption, l as toggleSetMember, n as StatusDot, o as flattenOptions, r as DropdownCaret, s as isCategory, t as StatusBadge } from "./chunks/StatusBadge-zvEtK16a.js";
7
+ import { a as UncontrolledCollapsiblePanel, c as Dropdown, i as MaybeCollapsible, n as SectionHeader, o as MultiSelectDropdown, r as ControlledCollapsiblePanel, s as CustomListbox, t as SwitchToggle } from "./chunks/SwitchToggle-3V836Cn7.js";
8
8
  import { t as Loader } from "./chunks/Loader-BXoXTZGc.js";
9
9
  import { n as modalPanelClasses, t as BareModal } from "./chunks/BareModal-BqroLbZ5.js";
10
- import { C as AddMenu, S as useSetDefaultBreadcrumbs, _ as BreadcrumbProvider, a as HeaderAddButton, b as useHideBreadcrumbs, c as PageHeader, i as HeaderActionMenu, n as BreadcrumbsRightAction, o as HeaderEditButton, r as BreadcrumbsTitleAction, s as HeaderRowMenu, t as BreadcrumbsActionButton, v as useBreadcrumb, x as useSetBreadcrumbs, y as useClearBreadcrumbs } from "./chunks/PageHeader-FhtphHGc.js";
10
+ import { C as useSetDefaultBreadcrumbs, S as useSetBreadcrumbs, a as HeaderAddButton, b as useClearBreadcrumbs, c as PageHeader, i as HeaderActionMenu, l as headerActionButtonClasses, n as BreadcrumbsRightAction, o as HeaderEditButton, r as BreadcrumbsTitleAction, s as HeaderRowMenu, t as BreadcrumbsActionButton, v as BreadcrumbProvider, w as AddMenu, x as useHideBreadcrumbs, y as useBreadcrumb } from "./chunks/PageHeader-CoZWF0pJ.js";
11
11
  import { t as useCssIsDark } from "./chunks/useCssIsDark-DHr05dG2.js";
12
12
  import { t as Indicator } from "./chunks/Indicator-hBSIxOPK.js";
13
13
  import { t as SwitchToggleSmall } from "./chunks/SwitchToggleSmall-FcsaYSTs.js";
@@ -20,7 +20,7 @@ import Skeleton from "react-loading-skeleton";
20
20
  //#region src/components/DescriptionList.tsx
21
21
  function DescriptionListItem({ label, children, tooltip, className, ...props }) {
22
22
  return /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsxs("dt", {
23
- className: cx("leading-6 col-span-1 font-normal flex gap-1", className),
23
+ className: cx("text-[13px] leading-6 col-span-1 font-normal flex gap-1", className),
24
24
  children: [/* @__PURE__ */ jsx("span", {
25
25
  className: "min-w-0 truncate",
26
26
  children: label
@@ -30,7 +30,7 @@ function DescriptionListItem({ label, children, tooltip, className, ...props })
30
30
  })]
31
31
  }), /* @__PURE__ */ jsx("dd", {
32
32
  ...props,
33
- className: "flex leading-6 col-span-4 font-light items-center overflow-auto",
33
+ className: "flex text-[13px] leading-6 col-span-4 font-light items-center overflow-auto",
34
34
  children
35
35
  })] });
36
36
  }
@@ -39,7 +39,7 @@ function DescriptionList({ children, title, separators = true, subtitle, classNa
39
39
  className: cx("w-full", wrapperClassName),
40
40
  children: [
41
41
  title && /* @__PURE__ */ jsx("h2", {
42
- className: "text-lg font-semibold w-full mb-1",
42
+ className: "text-sm font-semibold w-full mb-1",
43
43
  children: title
44
44
  }),
45
45
  subtitle && /* @__PURE__ */ jsx("div", {
@@ -566,4 +566,4 @@ function SettingModeOption({ name, checked, onSelect, label, description, isFirs
566
566
  });
567
567
  }
568
568
  //#endregion
569
- export { AddMenu, BareModal, BreadcrumbProvider, BreadcrumbsActionButton, BreadcrumbsRightAction, BreadcrumbsTitleAction, Button, CREATE_MODAL_SELECT_FILTER_THRESHOLD, Callout, Card, CardHeader, CompactTable, ConfirmModal, ControlledCollapsiblePanel, CopyCodeBlock, CopyToClipboard, CreateModal, CreateModalAutocompleteField, CreateModalField, CreateModalSelect, CreateModalSwitch, CreateModalTextarea, CustomListbox, DEFAULT_PRESET, DescriptionList, DescriptionListItem, Dropdown, DropdownCaret, EmptyState, Filter, FilterPill, GlobalTooltip, HeaderActionMenu, HeaderAddButton, HeaderEditButton, HeaderRowMenu, IconButton, Indicator, Input, LetterBadge, Loader, Markdown, MaybeCollapsible, MethodButton, MultiSelectDropdown, Overview, PageHeader, Pagination, RequiredMark, SectionHeader, SettingModeOption, SettingRow, SettingSection, SettingsCard, SettingsGroup, Sort, StatusBadge, StatusDot, SwitchToggle, SwitchToggleSmall, THEME_PRESETS, THEME_TOKENS, TOOLTIP_ID, Table, Textarea, Toggle, TooltipInfo, UIProvider, UncontrolledCollapsiblePanel, applyTheme, contrastRatio, dangerButtonClasses, deriveTheme, filterOption, flattenOptions, formatTooltipContent, ghostButtonClasses, inputClasses, isCategory, isDarkColor, isOption, modalPanelClasses, primaryButtonClasses, toggleSetMember, truncationTooltipProps, useBreadcrumb, useClearBreadcrumbs, useCssIsDark, useHideBreadcrumbs, useNavigation, useNotify, useProvisionCorsRules, useRunFile, useSetBreadcrumbs, useSetDefaultBreadcrumbs, useSlots, useStrings, useWorkflowJsonResolver };
569
+ export { AddMenu, BareModal, BreadcrumbProvider, BreadcrumbsActionButton, BreadcrumbsRightAction, BreadcrumbsTitleAction, Button, CREATE_MODAL_SELECT_FILTER_THRESHOLD, Callout, Card, CardHeader, CompactTable, ConfirmModal, ControlledCollapsiblePanel, CopyCodeBlock, CopyToClipboard, CreateModal, CreateModalAutocompleteField, CreateModalField, CreateModalSelect, CreateModalSwitch, CreateModalTextarea, CustomListbox, DEFAULT_PRESET, DescriptionList, DescriptionListItem, Dropdown, DropdownCaret, EmptyState, Filter, FilterPill, GlobalTooltip, HeaderActionMenu, HeaderAddButton, HeaderEditButton, HeaderRowMenu, IconButton, Indicator, Input, LetterBadge, Loader, Markdown, MaybeCollapsible, MethodButton, MultiSelectDropdown, Overview, PageHeader, Pagination, RequiredMark, SectionHeader, SettingModeOption, SettingRow, SettingSection, SettingsCard, SettingsGroup, Sort, StatusBadge, StatusDot, SwitchToggle, SwitchToggleSmall, THEME_PRESETS, THEME_TOKENS, TOOLTIP_ID, Table, Textarea, Toggle, TooltipInfo, UIProvider, UncontrolledCollapsiblePanel, applyTheme, contrastRatio, dangerButtonClasses, deriveTheme, filterOption, flattenOptions, formatTooltipContent, ghostButtonClasses, headerActionButtonClasses, inputClasses, isCategory, isDarkColor, isOption, modalPanelClasses, primaryButtonClasses, toggleSetMember, truncationTooltipProps, useBreadcrumb, useClearBreadcrumbs, useCssIsDark, useHideBreadcrumbs, useNavigation, useNotify, useProvisionCorsRules, useRunFile, useSetBreadcrumbs, useSetDefaultBreadcrumbs, useSlots, useStrings, useWorkflowJsonResolver };
@@ -10,10 +10,12 @@ export declare function useHoverCard<T extends HTMLElement>(): {
10
10
  scheduleClose: () => void;
11
11
  keepOpen: () => void;
12
12
  };
13
- export declare function HoverCardSurface({ x, y, widthClassName, relayoutKey, onKeepOpen, onLeave, children, }: {
13
+ export declare function HoverCardSurface({ x, y, widthClassName, padded, relayoutKey, onKeepOpen, onLeave, children, }: {
14
14
  x: number;
15
15
  y: number;
16
16
  widthClassName: string;
17
+ /** Pass false when the card paints its own edge-to-edge header. */
18
+ padded?: boolean;
17
19
  relayoutKey?: unknown;
18
20
  onKeepOpen: () => void;
19
21
  onLeave: () => void;
@@ -38,6 +38,8 @@ export interface PinnedRowAction {
38
38
  icon: ReactNode;
39
39
  onSelect: () => void;
40
40
  disabled?: boolean | undefined;
41
+ /** Replaces the label on hover when the action is disabled, explaining why. */
42
+ tooltip?: string | undefined;
41
43
  }
42
44
  export declare function ListRow({ href, items, goTo, openMenu, pinnedActions, selected, selectionActive, onRowSelect, leading, className, children, }: {
43
45
  href: string | null;
@@ -18,11 +18,12 @@ export declare const listTableFixedProps: {
18
18
  readonly tbodyClassName: 'divide-y border-b border-(--theme-border) divide-(--theme-border)';
19
19
  readonly className: string;
20
20
  };
21
- export declare function NameCell({ icon, name, subtitle, href, }: {
21
+ export declare function NameCell({ icon, name, subtitle, href, badge, }: {
22
22
  icon: ReactNode;
23
23
  name: string;
24
24
  subtitle?: string | undefined;
25
25
  href: string | null;
26
+ badge?: ReactNode;
26
27
  }): import("react").JSX.Element;
27
28
  export declare function GroupRow({ label, count, colSpan, }: {
28
29
  label: string;
@@ -12,6 +12,8 @@ export type RowMenuItem = {
12
12
  icon?: ReactNode;
13
13
  destructive?: boolean | undefined;
14
14
  disabled?: boolean | undefined;
15
+ /** Shown on hover when the item is disabled, explaining why. */
16
+ tooltip?: string | undefined;
15
17
  /** Trailing checkmark, e.g. the active option in a radio-style submenu. */
16
18
  selected?: boolean;
17
19
  /** Declarative clipboard copy: the menu performs it and notifies, so
@@ -39,6 +41,8 @@ export interface RowAction {
39
41
  to?: string | undefined;
40
42
  disabled?: boolean | undefined;
41
43
  destructive?: boolean | undefined;
44
+ /** Shown on hover when the action is disabled, explaining why. */
45
+ tooltip?: string | undefined;
42
46
  }
43
47
  /** Converts a single row action to a menu item: a `to` makes it a link, otherwise an action. */
44
48
  export declare function toRowMenuItem(action: RowAction): RowMenuItem;
@@ -54,6 +58,7 @@ export declare function toolbarActionToRowAction(action: {
54
58
  onClick?: (() => void) | undefined;
55
59
  href?: string | undefined;
56
60
  disabled?: boolean | undefined;
61
+ disabledTooltip?: string | undefined;
57
62
  }): RowAction;
58
63
  /** Assembles a row's context menu in the shared order: leading link(s) → middle
59
64
  * actions → extra items → Copy submenu → trailing (destructive) actions last. */
@@ -1,3 +1,3 @@
1
- import { d as copySubmenu, f as rowContextMenuProps, g as useRowMenuActive, h as useRowMenu, l as MoreButton, m as toolbarActionToRowAction, p as toRowMenuItem, u as assembleRowMenu } from "../chunks/PageHeader-FhtphHGc.js";
2
- import { A as ActionToolbar, C as ListSkeleton, D as actionsColumnWidth, E as RowSelectCheckbox, M as stickyTabsClasses, N as stickyTabsUnderHeaderClasses, O as listTableFixedProps, P as stickyToolbarClasses, S as ListError, T as NameCell, _ as ListRow, a as ListCount, b as GroupRow, c as ListDisplayMenu, d as isTextEntryContext, f as DEFAULT_ORDER, g as ListPage, h as ListColumns, i as ListPager, j as ToolbarButton, k as listTableProps, l as ListFilterMenu, m as useListView, n as useHoverCard, o as ListSearchControl, p as FAVORITE_ORDER, r as LIST_PAGE_SIZES, s as useListSearch, t as HoverCardSurface, u as listControlButtonClasses, v as ListRowActionsProvider, w as NAME_MIN_WIDTH_PX, x as ListActionsHeader, y as useListNavigate } from "../chunks/list-3jZW8rmM.js";
1
+ import { _ as useRowMenuActive, d as assembleRowMenu, f as copySubmenu, g as useRowMenu, h as toolbarActionToRowAction, m as toRowMenuItem, p as rowContextMenuProps, u as MoreButton } from "../chunks/PageHeader-CoZWF0pJ.js";
2
+ import { A as ActionToolbar, C as ListSkeleton, D as actionsColumnWidth, E as RowSelectCheckbox, M as stickyTabsClasses, N as stickyTabsUnderHeaderClasses, O as listTableFixedProps, P as stickyToolbarClasses, S as ListError, T as NameCell, _ as ListRow, a as ListCount, b as GroupRow, c as ListDisplayMenu, d as isTextEntryContext, f as DEFAULT_ORDER, g as ListPage, h as ListColumns, i as ListPager, j as ToolbarButton, k as listTableProps, l as ListFilterMenu, m as useListView, n as useHoverCard, o as ListSearchControl, p as FAVORITE_ORDER, r as LIST_PAGE_SIZES, s as useListSearch, t as HoverCardSurface, u as listControlButtonClasses, v as ListRowActionsProvider, w as NAME_MIN_WIDTH_PX, x as ListActionsHeader, y as useListNavigate } from "../chunks/list-CduoUsMW.js";
3
3
  export { ActionToolbar, DEFAULT_ORDER, FAVORITE_ORDER, GroupRow, HoverCardSurface, LIST_PAGE_SIZES, ListActionsHeader, ListColumns, ListCount, ListDisplayMenu, ListError, ListFilterMenu, ListPage, ListPager, ListRow, ListRowActionsProvider, ListSearchControl, ListSkeleton, MoreButton, NAME_MIN_WIDTH_PX, NameCell, RowSelectCheckbox, ToolbarButton, actionsColumnWidth, assembleRowMenu, copySubmenu, isTextEntryContext, listControlButtonClasses, listTableFixedProps, listTableProps, rowContextMenuProps, stickyTabsClasses, stickyTabsUnderHeaderClasses, stickyToolbarClasses, toRowMenuItem, toolbarActionToRowAction, useHoverCard, useListNavigate, useListSearch, useListView, useRowMenu, useRowMenuActive };
@@ -236,3 +236,43 @@
236
236
  opacity: 1;
237
237
  }
238
238
  }
239
+
240
+ /* Native controls and labels inside a DynamicForm. The ACTIVATE app declares the
241
+ * same rules globally; hosts that only import this package (docs, embeds) get
242
+ * unstyled inputs without them. Base layer so field utilities still win. */
243
+ @layer base {
244
+ .pw-form input,
245
+ .pw-form textarea {
246
+ border-radius: 0.25rem;
247
+ border: 1px solid var(--theme-border, #d1d5db);
248
+ padding: 0.25rem 0.5rem;
249
+ min-height: 1.25rem;
250
+ font-size: 14px;
251
+ background-color: var(--theme-input-bg, #f9fafb);
252
+ color: var(--theme-app, #000000);
253
+ }
254
+ .pw-form input:disabled,
255
+ .pw-form textarea:disabled {
256
+ cursor: not-allowed;
257
+ background-color: var(--theme-input-disabled-bg, #f3f4f6);
258
+ color: var(--theme-input-disabled-text, #9ca3af);
259
+ }
260
+ .pw-form .form-label,
261
+ .pw-form .form-label-compact,
262
+ .pw-form .form-label-top {
263
+ display: flex;
264
+ align-items: center;
265
+ gap: 0.25rem;
266
+ flex-shrink: 0;
267
+ font-weight: 300;
268
+ height: 34px;
269
+ width: 13rem;
270
+ }
271
+ .pw-form .form-label-compact {
272
+ width: fit-content;
273
+ margin-right: 0.5rem;
274
+ }
275
+ .pw-form .form-label-top {
276
+ height: 20px;
277
+ }
278
+ }