@pipe0/react 0.1.7 → 0.2.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 (162) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/dist/components/compound/effect-catalog/card.d.mts +22 -0
  3. package/dist/components/compound/effect-catalog/card.d.mts.map +1 -0
  4. package/dist/components/compound/effect-catalog/card.mjs +82 -0
  5. package/dist/components/compound/effect-catalog/card.mjs.map +1 -0
  6. package/dist/components/compound/effect-catalog/category-filter.d.mts +27 -0
  7. package/dist/components/compound/effect-catalog/category-filter.d.mts.map +1 -0
  8. package/dist/components/compound/effect-catalog/category-filter.mjs +61 -0
  9. package/dist/components/compound/effect-catalog/category-filter.mjs.map +1 -0
  10. package/dist/components/compound/effect-catalog/empty.d.mts +17 -0
  11. package/dist/components/compound/effect-catalog/empty.d.mts.map +1 -0
  12. package/dist/components/compound/effect-catalog/empty.mjs +29 -0
  13. package/dist/components/compound/effect-catalog/empty.mjs.map +1 -0
  14. package/dist/components/compound/effect-catalog/index.d.mts +6 -0
  15. package/dist/components/compound/effect-catalog/list.d.mts +19 -0
  16. package/dist/components/compound/effect-catalog/list.d.mts.map +1 -0
  17. package/dist/components/compound/effect-catalog/list.mjs +33 -0
  18. package/dist/components/compound/effect-catalog/list.mjs.map +1 -0
  19. package/dist/components/compound/effect-catalog/root.d.mts +31 -0
  20. package/dist/components/compound/effect-catalog/root.d.mts.map +1 -0
  21. package/dist/components/compound/effect-catalog/root.mjs +67 -0
  22. package/dist/components/compound/effect-catalog/root.mjs.map +1 -0
  23. package/dist/components/compound/effect-catalog/search-filter.d.mts +21 -0
  24. package/dist/components/compound/effect-catalog/search-filter.d.mts.map +1 -0
  25. package/dist/components/compound/effect-catalog/search-filter.mjs +47 -0
  26. package/dist/components/compound/effect-catalog/search-filter.mjs.map +1 -0
  27. package/dist/components/compound/pipe-catalog/card.mjs +1 -1
  28. package/dist/components/compound/pipe-catalog/category-filter.mjs +1 -1
  29. package/dist/components/compound/pipe-catalog/provider-filter.mjs +1 -1
  30. package/dist/components/compound/pipe-catalog/root.mjs +1 -1
  31. package/dist/components/compound/pipe-form/content.d.mts +6 -1
  32. package/dist/components/compound/pipe-form/content.d.mts.map +1 -1
  33. package/dist/components/compound/pipe-form/content.mjs +3 -2
  34. package/dist/components/compound/pipe-form/content.mjs.map +1 -1
  35. package/dist/components/compound/pipe-form/errors.d.mts.map +1 -1
  36. package/dist/components/compound/pipe-form/errors.mjs +5 -4
  37. package/dist/components/compound/pipe-form/errors.mjs.map +1 -1
  38. package/dist/components/compound/pipe-form/root.d.mts +3 -1
  39. package/dist/components/compound/pipe-form/root.d.mts.map +1 -1
  40. package/dist/components/compound/pipe-form/root.mjs +5 -3
  41. package/dist/components/compound/pipe-form/root.mjs.map +1 -1
  42. package/dist/components/compound/search-catalog/active-filters.mjs +1 -1
  43. package/dist/components/compound/search-catalog/category-filter.mjs +1 -1
  44. package/dist/components/compound/search-catalog/provider-filter.mjs +1 -1
  45. package/dist/components/compound/search-form/content.d.mts +6 -1
  46. package/dist/components/compound/search-form/content.d.mts.map +1 -1
  47. package/dist/components/compound/search-form/content.mjs +3 -2
  48. package/dist/components/compound/search-form/content.mjs.map +1 -1
  49. package/dist/components/compound/search-form/errors.d.mts.map +1 -1
  50. package/dist/components/compound/search-form/errors.mjs +5 -4
  51. package/dist/components/compound/search-form/errors.mjs.map +1 -1
  52. package/dist/components/compound/search-form/root.d.mts +3 -1
  53. package/dist/components/compound/search-form/root.d.mts.map +1 -1
  54. package/dist/components/compound/search-form/root.mjs +5 -3
  55. package/dist/components/compound/search-form/root.mjs.map +1 -1
  56. package/dist/components/compound/searches-catalog/active-filters.mjs +1 -1
  57. package/dist/components/compound/searches-catalog/category-filter.mjs +1 -1
  58. package/dist/components/compound/searches-catalog/provider-filter.mjs +1 -1
  59. package/dist/components/defaults/adapters/context-select-input.mjs +1 -1
  60. package/dist/components/defaults/adapters/context-select-input.mjs.map +1 -1
  61. package/dist/components/defaults/adapters/exact-range-input.mjs +1 -1
  62. package/dist/components/defaults/adapters/index.d.mts.map +1 -1
  63. package/dist/components/defaults/adapters/index.mjs +8 -5
  64. package/dist/components/defaults/adapters/index.mjs.map +1 -1
  65. package/dist/components/defaults/adapters/int-input.mjs.map +1 -1
  66. package/dist/components/defaults/adapters/json-extraction-input.mjs +1 -1
  67. package/dist/components/defaults/adapters/loose-object-input.mjs +111 -0
  68. package/dist/components/defaults/adapters/loose-object-input.mjs.map +1 -0
  69. package/dist/components/defaults/adapters/pipes-run-if-input.mjs +69 -56
  70. package/dist/components/defaults/adapters/pipes-run-if-input.mjs.map +1 -1
  71. package/dist/components/defaults/adapters/providers-input.mjs.map +1 -1
  72. package/dist/components/defaults/adapters/search-payload-input.mjs +18 -0
  73. package/dist/components/defaults/adapters/search-payload-input.mjs.map +1 -0
  74. package/dist/components/defaults/adapters/select-input.mjs +46 -27
  75. package/dist/components/defaults/adapters/select-input.mjs.map +1 -1
  76. package/dist/components/defaults/catalog/card-derived.d.mts +1 -1
  77. package/dist/components/defaults/catalog/card-derived.d.mts.map +1 -1
  78. package/dist/components/defaults/catalog/card-derived.mjs +12 -6
  79. package/dist/components/defaults/catalog/card-derived.mjs.map +1 -1
  80. package/dist/components/defaults/catalog/provider-avatars.mjs +3 -3
  81. package/dist/components/defaults/catalog/provider-avatars.mjs.map +1 -1
  82. package/dist/components/defaults/form/form-empty-state.mjs +23 -0
  83. package/dist/components/defaults/form/form-empty-state.mjs.map +1 -0
  84. package/dist/components/defaults/layout/field-wrapper.d.mts.map +1 -1
  85. package/dist/components/defaults/layout/field-wrapper.mjs +11 -5
  86. package/dist/components/defaults/layout/field-wrapper.mjs.map +1 -1
  87. package/dist/components/defaults/layout/group.mjs +1 -1
  88. package/dist/components/internal/LiquidEditor/LiquidEditor.mjs +2 -2
  89. package/dist/components/internal/LiquidEditor/LiquidEditor.mjs.map +1 -1
  90. package/dist/components/internal/form-level-errors.mjs +4 -3
  91. package/dist/components/internal/form-level-errors.mjs.map +1 -1
  92. package/dist/components/internal/icons.mjs +27 -1
  93. package/dist/components/internal/icons.mjs.map +1 -1
  94. package/dist/components/ui/alert.d.mts +47 -0
  95. package/dist/components/ui/alert.d.mts.map +1 -0
  96. package/dist/components/ui/alert.mjs +66 -0
  97. package/dist/components/ui/alert.mjs.map +1 -0
  98. package/dist/context/catalog-card-context.mjs +4 -2
  99. package/dist/context/catalog-card-context.mjs.map +1 -1
  100. package/dist/context/effect-catalog-card-context.d.mts +20 -0
  101. package/dist/context/effect-catalog-card-context.d.mts.map +1 -0
  102. package/dist/context/effect-catalog-card-context.mjs +13 -0
  103. package/dist/context/effect-catalog-card-context.mjs.map +1 -0
  104. package/dist/context/effect-catalog-context.d.mts +20 -0
  105. package/dist/context/effect-catalog-context.d.mts.map +1 -0
  106. package/dist/context/effect-catalog-context.mjs +13 -0
  107. package/dist/context/effect-catalog-context.mjs.map +1 -0
  108. package/dist/context/form-context.d.mts +21 -0
  109. package/dist/context/form-context.d.mts.map +1 -0
  110. package/dist/context/form-context.mjs +11 -1
  111. package/dist/context/form-context.mjs.map +1 -1
  112. package/dist/context/form-provider.d.mts +3 -1
  113. package/dist/context/form-provider.d.mts.map +1 -1
  114. package/dist/context/form-provider.mjs +8 -2
  115. package/dist/context/form-provider.mjs.map +1 -1
  116. package/dist/hooks/use-effect-catalog-table.d.mts +33 -0
  117. package/dist/hooks/use-effect-catalog-table.d.mts.map +1 -0
  118. package/dist/hooks/use-effect-catalog-table.mjs +104 -0
  119. package/dist/hooks/use-effect-catalog-table.mjs.map +1 -0
  120. package/dist/hooks/use-form-core.mjs +8 -5
  121. package/dist/hooks/use-form-core.mjs.map +1 -1
  122. package/dist/hooks/use-pipe-catalog-table.d.mts +8 -8
  123. package/dist/hooks/use-pipe-catalog-table.d.mts.map +1 -1
  124. package/dist/hooks/use-pipe-catalog-table.mjs +2 -2
  125. package/dist/hooks/use-pipe-catalog-table.mjs.map +1 -1
  126. package/dist/hooks/use-pipe-form.d.mts.map +1 -1
  127. package/dist/hooks/use-pipe-form.mjs +18 -19
  128. package/dist/hooks/use-pipe-form.mjs.map +1 -1
  129. package/dist/hooks/use-search-catalog-table.d.mts +6 -6
  130. package/dist/hooks/use-search-form.d.mts.map +1 -1
  131. package/dist/hooks/use-search-form.mjs +18 -18
  132. package/dist/hooks/use-search-form.mjs.map +1 -1
  133. package/dist/hooks/use-sheet-effect-form.d.mts +35 -0
  134. package/dist/hooks/use-sheet-effect-form.d.mts.map +1 -0
  135. package/dist/hooks/use-sheet-effect-form.mjs +103 -0
  136. package/dist/hooks/use-sheet-effect-form.mjs.map +1 -0
  137. package/dist/index.d.mts +15 -3
  138. package/dist/index.mjs +16 -4
  139. package/dist/styles/pipe0-form.css +1 -1
  140. package/dist/types/adapters.d.mts +22 -1
  141. package/dist/types/adapters.d.mts.map +1 -1
  142. package/dist/types/catalog-adapters.d.mts +23 -3
  143. package/dist/types/catalog-adapters.d.mts.map +1 -1
  144. package/dist/types/field-props.d.mts +15 -13
  145. package/dist/types/field-props.d.mts.map +1 -1
  146. package/dist/types/form-customization.d.mts +2 -25
  147. package/dist/utils/build-section-handlers.mjs +9 -75
  148. package/dist/utils/build-section-handlers.mjs.map +1 -1
  149. package/dist/utils/catalog-helpers.d.mts +1 -1
  150. package/dist/widgets/token-pricing-badge.d.mts +1 -0
  151. package/dist/widgets/token-pricing-badge.mjs +55 -0
  152. package/dist/widgets/token-pricing-badge.mjs.map +1 -0
  153. package/dist/widgets/widget-strip.d.mts.map +1 -1
  154. package/dist/widgets/widget-strip.mjs +1 -0
  155. package/dist/widgets/widget-strip.mjs.map +1 -1
  156. package/dist/widgets/widget-view.d.mts.map +1 -1
  157. package/dist/widgets/widget-view.mjs +6 -0
  158. package/dist/widgets/widget-view.mjs.map +1 -1
  159. package/package.json +15 -25
  160. package/dist/components/defaults/adapters/key-value-list-input.mjs +0 -102
  161. package/dist/components/defaults/adapters/key-value-list-input.mjs.map +0 -1
  162. package/dist/types/form-customization.d.mts.map +0 -1
@@ -1,3 +1,4 @@
1
+ import { useFormAlert } from "../../context/form-context.mjs";
1
2
  import { jsx, jsxs } from "react/jsx-runtime";
2
3
  import { useFormState } from "react-hook-form";
3
4
 
@@ -43,6 +44,7 @@ function collectErrors(errors, prefix = "") {
43
44
  */
44
45
  function FormLevelErrors({ control, fieldPaths }) {
45
46
  const { errors, isSubmitted } = useFormState({ control });
47
+ const Alert = useFormAlert();
46
48
  if (!isSubmitted) return null;
47
49
  const rootMessage = typeof errors?.root === "object" && errors.root && "message" in errors.root && typeof errors.root.message === "string" ? errors.root.message : void 0;
48
50
  const isOwnedByField = (path) => {
@@ -52,10 +54,9 @@ function FormLevelErrors({ control, fieldPaths }) {
52
54
  };
53
55
  const others = collectErrors(errors).filter((e) => !isOwnedByField(e.path));
54
56
  if (!rootMessage && others.length === 0) return null;
55
- return /* @__PURE__ */ jsxs("div", {
57
+ return /* @__PURE__ */ jsxs(Alert, {
58
+ variant: "error",
56
59
  "data-p0": "form-errors",
57
- role: "alert",
58
- className: "pz:flex pz:flex-col pz:gap-1 pz:rounded-md pz:border pz:border-destructive/50 pz:bg-destructive/5 pz:px-3 pz:py-2 pz:text-destructive pz:text-xs pz:font-medium",
59
60
  children: [rootMessage && /* @__PURE__ */ jsx("span", {
60
61
  "data-p0-error-path": "root",
61
62
  children: rootMessage
@@ -1 +1 @@
1
- {"version":3,"file":"form-level-errors.mjs","names":[],"sources":["../../../src/components/internal/form-level-errors.tsx"],"sourcesContent":["import { type Control, type FieldErrors, useFormState } from \"react-hook-form\";\n\ntype CollectedError = { path: string; message: string };\n\nfunction isFieldErrorNode(node: unknown): node is { message: string; type: string } {\n return (\n !!node &&\n typeof node === \"object\" &&\n typeof (node as { message?: unknown }).message === \"string\" &&\n typeof (node as { type?: unknown }).type === \"string\"\n );\n}\n\nconst FIELD_ERROR_KEYS = new Set([\"message\", \"type\", \"ref\", \"types\", \"root\"]);\n\nfunction collectErrors(\n errors: FieldErrors | Record<string, unknown> | undefined,\n prefix = \"\",\n): CollectedError[] {\n if (!errors || typeof errors !== \"object\") return [];\n const out: CollectedError[] = [];\n for (const key of Object.keys(errors)) {\n const node = (errors as Record<string, unknown>)[key];\n if (!node) continue;\n const path = prefix ? `${prefix}.${key}` : key;\n if (isFieldErrorNode(node)) {\n out.push({ path, message: node.message });\n }\n if (node && typeof node === \"object\") {\n const nested: Record<string, unknown> = {};\n for (const childKey of Object.keys(node as Record<string, unknown>)) {\n if (FIELD_ERROR_KEYS.has(childKey)) continue;\n nested[childKey] = (node as Record<string, unknown>)[childKey];\n }\n out.push(...collectErrors(nested, path));\n }\n }\n return out;\n}\n\n/**\n * Renders any errors set on the form that are not attached to a rendered\n * field. This surfaces:\n * - root errors (e.g. `errors.root`)\n * - container-level errors set on non-leaf paths (e.g. a Zod custom check\n * on `config.filters` that says \"You must set at least one filter.\")\n */\nexport function FormLevelErrors({\n control,\n fieldPaths,\n}: {\n control: Control<any>;\n fieldPaths: Set<string>;\n}) {\n const { errors, isSubmitted } = useFormState({ control });\n\n // Match `useFieldError`: only surface errors after the form has been\n // submitted at least once. Otherwise merely focusing a field triggers\n // live validation and makes the form feel immediately \"broken\".\n if (!isSubmitted) return null;\n\n const rootMessage =\n typeof errors?.root === \"object\" &&\n errors.root &&\n \"message\" in errors.root &&\n typeof (errors.root as { message?: unknown }).message === \"string\"\n ? (errors.root as { message: string }).message\n : undefined;\n\n // Errors on any rendered field — or on any descendant of a rendered field —\n // belong to that field's adapter, not the global banner. Complex adapters\n // like json_extraction / pipes_trigger register a single path at the top\n // level and render their own inline errors for nested paths underneath.\n const isOwnedByField = (path: string) => {\n if (fieldPaths.has(path)) return true;\n for (const p of fieldPaths) {\n if (path.startsWith(`${p}.`)) return true;\n }\n return false;\n };\n\n const others = collectErrors(errors).filter((e) => !isOwnedByField(e.path));\n\n if (!rootMessage && others.length === 0) return null;\n\n return (\n <div\n data-p0=\"form-errors\"\n role=\"alert\"\n className=\"pz:flex pz:flex-col pz:gap-1 pz:rounded-md pz:border pz:border-destructive/50 pz:bg-destructive/5 pz:px-3 pz:py-2 pz:text-destructive pz:text-xs pz:font-medium\"\n >\n {rootMessage && <span data-p0-error-path=\"root\">{rootMessage}</span>}\n {others.map((e) => (\n <span key={e.path} data-p0-error-path={e.path}>\n {e.message}\n </span>\n ))}\n </div>\n );\n}\n"],"mappings":";;;;AAIA,SAAS,iBAAiB,MAA0D;AAClF,QACE,CAAC,CAAC,QACF,OAAO,SAAS,YAChB,OAAQ,KAA+B,YAAY,YACnD,OAAQ,KAA4B,SAAS;;AAIjD,MAAM,mBAAmB,IAAI,IAAI;CAAC;CAAW;CAAQ;CAAO;CAAS;CAAO,CAAC;AAE7E,SAAS,cACP,QACA,SAAS,IACS;AAClB,KAAI,CAAC,UAAU,OAAO,WAAW,SAAU,QAAO,EAAE;CACpD,MAAM,MAAwB,EAAE;AAChC,MAAK,MAAM,OAAO,OAAO,KAAK,OAAO,EAAE;EACrC,MAAM,OAAQ,OAAmC;AACjD,MAAI,CAAC,KAAM;EACX,MAAM,OAAO,SAAS,GAAG,OAAO,GAAG,QAAQ;AAC3C,MAAI,iBAAiB,KAAK,CACxB,KAAI,KAAK;GAAE;GAAM,SAAS,KAAK;GAAS,CAAC;AAE3C,MAAI,QAAQ,OAAO,SAAS,UAAU;GACpC,MAAM,SAAkC,EAAE;AAC1C,QAAK,MAAM,YAAY,OAAO,KAAK,KAAgC,EAAE;AACnE,QAAI,iBAAiB,IAAI,SAAS,CAAE;AACpC,WAAO,YAAa,KAAiC;;AAEvD,OAAI,KAAK,GAAG,cAAc,QAAQ,KAAK,CAAC;;;AAG5C,QAAO;;;;;;;;;AAUT,SAAgB,gBAAgB,EAC9B,SACA,cAIC;CACD,MAAM,EAAE,QAAQ,gBAAgB,aAAa,EAAE,SAAS,CAAC;AAKzD,KAAI,CAAC,YAAa,QAAO;CAEzB,MAAM,cACJ,OAAO,QAAQ,SAAS,YACxB,OAAO,QACP,aAAa,OAAO,QACpB,OAAQ,OAAO,KAA+B,YAAY,WACrD,OAAO,KAA6B,UACrC;CAMN,MAAM,kBAAkB,SAAiB;AACvC,MAAI,WAAW,IAAI,KAAK,CAAE,QAAO;AACjC,OAAK,MAAM,KAAK,WACd,KAAI,KAAK,WAAW,GAAG,EAAE,GAAG,CAAE,QAAO;AAEvC,SAAO;;CAGT,MAAM,SAAS,cAAc,OAAO,CAAC,QAAQ,MAAM,CAAC,eAAe,EAAE,KAAK,CAAC;AAE3E,KAAI,CAAC,eAAe,OAAO,WAAW,EAAG,QAAO;AAEhD,QACE,qBAAC,OAAD;EACE,WAAQ;EACR,MAAK;EACL,WAAU;YAHZ,CAKG,eAAe,oBAAC,QAAD;GAAM,sBAAmB;aAAQ;GAAmB,GACnE,OAAO,KAAK,MACX,oBAAC,QAAD;GAAmB,sBAAoB,EAAE;aACtC,EAAE;GACE,EAFI,EAAE,KAEN,CACP,CACE"}
1
+ {"version":3,"file":"form-level-errors.mjs","names":[],"sources":["../../../src/components/internal/form-level-errors.tsx"],"sourcesContent":["import { type Control, type FieldErrors, useFormState } from \"react-hook-form\";\nimport { useFormAlert } from \"../../context/form-context.js\";\n\ntype CollectedError = { path: string; message: string };\n\nfunction isFieldErrorNode(node: unknown): node is { message: string; type: string } {\n return (\n !!node &&\n typeof node === \"object\" &&\n typeof (node as { message?: unknown }).message === \"string\" &&\n typeof (node as { type?: unknown }).type === \"string\"\n );\n}\n\nconst FIELD_ERROR_KEYS = new Set([\"message\", \"type\", \"ref\", \"types\", \"root\"]);\n\nfunction collectErrors(\n errors: FieldErrors | Record<string, unknown> | undefined,\n prefix = \"\",\n): CollectedError[] {\n if (!errors || typeof errors !== \"object\") return [];\n const out: CollectedError[] = [];\n for (const key of Object.keys(errors)) {\n const node = (errors as Record<string, unknown>)[key];\n if (!node) continue;\n const path = prefix ? `${prefix}.${key}` : key;\n if (isFieldErrorNode(node)) {\n out.push({ path, message: node.message });\n }\n if (node && typeof node === \"object\") {\n const nested: Record<string, unknown> = {};\n for (const childKey of Object.keys(node as Record<string, unknown>)) {\n if (FIELD_ERROR_KEYS.has(childKey)) continue;\n nested[childKey] = (node as Record<string, unknown>)[childKey];\n }\n out.push(...collectErrors(nested, path));\n }\n }\n return out;\n}\n\n/**\n * Renders any errors set on the form that are not attached to a rendered\n * field. This surfaces:\n * - root errors (e.g. `errors.root`)\n * - container-level errors set on non-leaf paths (e.g. a Zod custom check\n * on `config.filters` that says \"You must set at least one filter.\")\n */\nexport function FormLevelErrors({\n control,\n fieldPaths,\n}: {\n control: Control<any>;\n fieldPaths: Set<string>;\n}) {\n const { errors, isSubmitted } = useFormState({ control });\n const Alert = useFormAlert();\n\n // Match `useFieldError`: only surface errors after the form has been\n // submitted at least once. Otherwise merely focusing a field triggers\n // live validation and makes the form feel immediately \"broken\".\n if (!isSubmitted) return null;\n\n const rootMessage =\n typeof errors?.root === \"object\" &&\n errors.root &&\n \"message\" in errors.root &&\n typeof (errors.root as { message?: unknown }).message === \"string\"\n ? (errors.root as { message: string }).message\n : undefined;\n\n // Errors on any rendered field — or on any descendant of a rendered field —\n // belong to that field's adapter, not the global banner. Complex adapters\n // like json_extraction / pipes_trigger register a single path at the top\n // level and render their own inline errors for nested paths underneath.\n const isOwnedByField = (path: string) => {\n if (fieldPaths.has(path)) return true;\n for (const p of fieldPaths) {\n if (path.startsWith(`${p}.`)) return true;\n }\n return false;\n };\n\n const others = collectErrors(errors).filter((e) => !isOwnedByField(e.path));\n\n if (!rootMessage && others.length === 0) return null;\n\n return (\n <Alert variant=\"error\" data-p0=\"form-errors\">\n {rootMessage && <span data-p0-error-path=\"root\">{rootMessage}</span>}\n {others.map((e) => (\n <span key={e.path} data-p0-error-path={e.path}>\n {e.message}\n </span>\n ))}\n </Alert>\n );\n}\n"],"mappings":";;;;;AAKA,SAAS,iBAAiB,MAA0D;AAClF,QACE,CAAC,CAAC,QACF,OAAO,SAAS,YAChB,OAAQ,KAA+B,YAAY,YACnD,OAAQ,KAA4B,SAAS;;AAIjD,MAAM,mBAAmB,IAAI,IAAI;CAAC;CAAW;CAAQ;CAAO;CAAS;CAAO,CAAC;AAE7E,SAAS,cACP,QACA,SAAS,IACS;AAClB,KAAI,CAAC,UAAU,OAAO,WAAW,SAAU,QAAO,EAAE;CACpD,MAAM,MAAwB,EAAE;AAChC,MAAK,MAAM,OAAO,OAAO,KAAK,OAAO,EAAE;EACrC,MAAM,OAAQ,OAAmC;AACjD,MAAI,CAAC,KAAM;EACX,MAAM,OAAO,SAAS,GAAG,OAAO,GAAG,QAAQ;AAC3C,MAAI,iBAAiB,KAAK,CACxB,KAAI,KAAK;GAAE;GAAM,SAAS,KAAK;GAAS,CAAC;AAE3C,MAAI,QAAQ,OAAO,SAAS,UAAU;GACpC,MAAM,SAAkC,EAAE;AAC1C,QAAK,MAAM,YAAY,OAAO,KAAK,KAAgC,EAAE;AACnE,QAAI,iBAAiB,IAAI,SAAS,CAAE;AACpC,WAAO,YAAa,KAAiC;;AAEvD,OAAI,KAAK,GAAG,cAAc,QAAQ,KAAK,CAAC;;;AAG5C,QAAO;;;;;;;;;AAUT,SAAgB,gBAAgB,EAC9B,SACA,cAIC;CACD,MAAM,EAAE,QAAQ,gBAAgB,aAAa,EAAE,SAAS,CAAC;CACzD,MAAM,QAAQ,cAAc;AAK5B,KAAI,CAAC,YAAa,QAAO;CAEzB,MAAM,cACJ,OAAO,QAAQ,SAAS,YACxB,OAAO,QACP,aAAa,OAAO,QACpB,OAAQ,OAAO,KAA+B,YAAY,WACrD,OAAO,KAA6B,UACrC;CAMN,MAAM,kBAAkB,SAAiB;AACvC,MAAI,WAAW,IAAI,KAAK,CAAE,QAAO;AACjC,OAAK,MAAM,KAAK,WACd,KAAI,KAAK,WAAW,GAAG,EAAE,GAAG,CAAE,QAAO;AAEvC,SAAO;;CAGT,MAAM,SAAS,cAAc,OAAO,CAAC,QAAQ,MAAM,CAAC,eAAe,EAAE,KAAK,CAAC;AAE3E,KAAI,CAAC,eAAe,OAAO,WAAW,EAAG,QAAO;AAEhD,QACE,qBAAC,OAAD;EAAO,SAAQ;EAAQ,WAAQ;YAA/B,CACG,eAAe,oBAAC,QAAD;GAAM,sBAAmB;aAAQ;GAAmB,GACnE,OAAO,KAAK,MACX,oBAAC,QAAD;GAAmB,sBAAoB,EAAE;aACtC,EAAE;GACE,EAFI,EAAE,KAEN,CACP,CACI"}
@@ -41,6 +41,32 @@ function IconInfo(props) {
41
41
  ]
42
42
  });
43
43
  }
44
+ function IconWarning(props) {
45
+ return /* @__PURE__ */ jsxs("svg", {
46
+ ...defaults,
47
+ ...props,
48
+ children: [
49
+ /* @__PURE__ */ jsx("path", { d: "m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3" }),
50
+ /* @__PURE__ */ jsx("path", { d: "M12 9v4" }),
51
+ /* @__PURE__ */ jsx("path", { d: "M12 17h.01" })
52
+ ]
53
+ });
54
+ }
55
+ function IconError(props) {
56
+ return /* @__PURE__ */ jsxs("svg", {
57
+ ...defaults,
58
+ ...props,
59
+ children: [
60
+ /* @__PURE__ */ jsx("circle", {
61
+ cx: "12",
62
+ cy: "12",
63
+ r: "10"
64
+ }),
65
+ /* @__PURE__ */ jsx("path", { d: "m15 9-6 6" }),
66
+ /* @__PURE__ */ jsx("path", { d: "m9 9 6 6" })
67
+ ]
68
+ });
69
+ }
44
70
  function IconPencil(props) {
45
71
  return /* @__PURE__ */ jsx("svg", {
46
72
  ...defaults,
@@ -162,5 +188,5 @@ function IconRefresh(props) {
162
188
  }
163
189
 
164
190
  //#endregion
165
- export { IconCheck, IconChevronDown, IconEye, IconEyeOff, IconGripVertical, IconInfo, IconLock, IconMinus, IconPencil, IconPlus, IconRefresh, IconTrash };
191
+ export { IconCheck, IconChevronDown, IconError, IconEye, IconEyeOff, IconGripVertical, IconInfo, IconLock, IconMinus, IconPencil, IconPlus, IconRefresh, IconTrash, IconWarning };
166
192
  //# sourceMappingURL=icons.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"icons.mjs","names":[],"sources":["../../../src/components/internal/icons.tsx"],"sourcesContent":["import type { SVGProps } from \"react\";\n\ntype IconProps = SVGProps<SVGSVGElement>;\n\nconst defaults: IconProps = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 16,\n height: 16,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: 2,\n strokeLinecap: \"round\" as const,\n strokeLinejoin: \"round\" as const,\n};\n\nexport function IconPlus(props: IconProps) {\n return (\n <svg {...defaults} {...props}>\n <path d=\"M5 12h14\" />\n <path d=\"M12 5v14\" />\n </svg>\n );\n}\n\nexport function IconMinus(props: IconProps) {\n return (\n <svg {...defaults} {...props}>\n <path d=\"M5 12h14\" />\n </svg>\n );\n}\n\nexport function IconX(props: IconProps) {\n return (\n <svg {...defaults} {...props}>\n <path d=\"M18 6 6 18\" />\n <path d=\"m6 6 12 12\" />\n </svg>\n );\n}\n\nexport function IconInfo(props: IconProps) {\n return (\n <svg {...defaults} {...props}>\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <path d=\"M12 16v-4\" />\n <path d=\"M12 8h.01\" />\n </svg>\n );\n}\n\nexport function IconPencil(props: IconProps) {\n return (\n <svg {...defaults} {...props}>\n <path d=\"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z\" />\n </svg>\n );\n}\n\nexport function IconTrash(props: IconProps) {\n return (\n <svg {...defaults} {...props}>\n <path d=\"M3 6h18\" />\n <path d=\"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6\" />\n <path d=\"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2\" />\n </svg>\n );\n}\n\nexport function IconChevronDown(props: IconProps) {\n return (\n <svg {...defaults} {...props}>\n <path d=\"m6 9 6 6 6-6\" />\n </svg>\n );\n}\n\nexport function IconLock(props: IconProps) {\n return (\n <svg {...defaults} {...props}>\n <rect width=\"18\" height=\"11\" x=\"3\" y=\"11\" rx=\"2\" ry=\"2\" />\n <path d=\"M7 11V7a5 5 0 0 1 10 0v4\" />\n </svg>\n );\n}\n\nexport function IconGripVertical(props: IconProps) {\n return (\n <svg {...defaults} {...props}>\n <circle cx=\"9\" cy=\"12\" r=\"1\" />\n <circle cx=\"9\" cy=\"5\" r=\"1\" />\n <circle cx=\"9\" cy=\"19\" r=\"1\" />\n <circle cx=\"15\" cy=\"12\" r=\"1\" />\n <circle cx=\"15\" cy=\"5\" r=\"1\" />\n <circle cx=\"15\" cy=\"19\" r=\"1\" />\n </svg>\n );\n}\n\nexport function IconMoreHorizontal(props: IconProps) {\n return (\n <svg {...defaults} {...props}>\n <circle cx=\"12\" cy=\"12\" r=\"1\" />\n <circle cx=\"19\" cy=\"12\" r=\"1\" />\n <circle cx=\"5\" cy=\"12\" r=\"1\" />\n </svg>\n );\n}\n\nexport function IconPlay(props: IconProps) {\n return (\n <svg {...defaults} {...props}>\n <polygon points=\"6 3 20 12 6 21 6 3\" fill=\"currentColor\" />\n </svg>\n );\n}\n\nexport function IconCheck(props: IconProps) {\n return (\n <svg {...defaults} {...props}>\n <path d=\"M20 6 9 17l-5-5\" />\n </svg>\n );\n}\n\nexport function IconChevronRight(props: IconProps) {\n return (\n <svg {...defaults} {...props}>\n <path d=\"m9 18 6-6-6-6\" />\n </svg>\n );\n}\n\nexport function IconEye(props: IconProps) {\n return (\n <svg {...defaults} {...props}>\n <path d=\"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0\" />\n <circle cx=\"12\" cy=\"12\" r=\"3\" />\n </svg>\n );\n}\n\nexport function IconEyeOff(props: IconProps) {\n return (\n <svg {...defaults} {...props}>\n <path d=\"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49\" />\n <path d=\"M14.084 14.158a3 3 0 0 1-4.242-4.242\" />\n <path d=\"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143\" />\n <path d=\"m2 2 20 20\" />\n </svg>\n );\n}\n\nexport function IconRefresh(props: IconProps) {\n return (\n <svg {...defaults} {...props}>\n <path d=\"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8\" />\n <path d=\"M21 3v5h-5\" />\n <path d=\"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16\" />\n <path d=\"M8 16H3v5\" />\n </svg>\n );\n}\n\nexport function IconBraces(props: IconProps) {\n return (\n <svg {...defaults} {...props}>\n <path d=\"M8 3H7a2 2 0 0 0-2 2v5a2 2 0 0 1-2 2 2 2 0 0 1 2 2v5a2 2 0 0 0 2 2h1\" />\n <path d=\"M16 21h1a2 2 0 0 0 2-2v-5a2 2 0 0 1 2-2 2 2 0 0 1-2-2V5a2 2 0 0 0-2-2h-1\" />\n </svg>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"icons.mjs","names":[],"sources":["../../../src/components/internal/icons.tsx"],"sourcesContent":["import type { SVGProps } from \"react\";\n\ntype IconProps = SVGProps<SVGSVGElement>;\n\nconst defaults: IconProps = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 16,\n height: 16,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: 2,\n strokeLinecap: \"round\" as const,\n strokeLinejoin: \"round\" as const,\n};\n\nexport function IconPlus(props: IconProps) {\n return (\n <svg {...defaults} {...props}>\n <path d=\"M5 12h14\" />\n <path d=\"M12 5v14\" />\n </svg>\n );\n}\n\nexport function IconMinus(props: IconProps) {\n return (\n <svg {...defaults} {...props}>\n <path d=\"M5 12h14\" />\n </svg>\n );\n}\n\nexport function IconX(props: IconProps) {\n return (\n <svg {...defaults} {...props}>\n <path d=\"M18 6 6 18\" />\n <path d=\"m6 6 12 12\" />\n </svg>\n );\n}\n\nexport function IconInfo(props: IconProps) {\n return (\n <svg {...defaults} {...props}>\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <path d=\"M12 16v-4\" />\n <path d=\"M12 8h.01\" />\n </svg>\n );\n}\n\nexport function IconWarning(props: IconProps) {\n return (\n <svg {...defaults} {...props}>\n <path d=\"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3\" />\n <path d=\"M12 9v4\" />\n <path d=\"M12 17h.01\" />\n </svg>\n );\n}\n\nexport function IconError(props: IconProps) {\n return (\n <svg {...defaults} {...props}>\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <path d=\"m15 9-6 6\" />\n <path d=\"m9 9 6 6\" />\n </svg>\n );\n}\n\nexport function IconPencil(props: IconProps) {\n return (\n <svg {...defaults} {...props}>\n <path d=\"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z\" />\n </svg>\n );\n}\n\nexport function IconTrash(props: IconProps) {\n return (\n <svg {...defaults} {...props}>\n <path d=\"M3 6h18\" />\n <path d=\"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6\" />\n <path d=\"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2\" />\n </svg>\n );\n}\n\nexport function IconChevronDown(props: IconProps) {\n return (\n <svg {...defaults} {...props}>\n <path d=\"m6 9 6 6 6-6\" />\n </svg>\n );\n}\n\nexport function IconLock(props: IconProps) {\n return (\n <svg {...defaults} {...props}>\n <rect width=\"18\" height=\"11\" x=\"3\" y=\"11\" rx=\"2\" ry=\"2\" />\n <path d=\"M7 11V7a5 5 0 0 1 10 0v4\" />\n </svg>\n );\n}\n\nexport function IconGripVertical(props: IconProps) {\n return (\n <svg {...defaults} {...props}>\n <circle cx=\"9\" cy=\"12\" r=\"1\" />\n <circle cx=\"9\" cy=\"5\" r=\"1\" />\n <circle cx=\"9\" cy=\"19\" r=\"1\" />\n <circle cx=\"15\" cy=\"12\" r=\"1\" />\n <circle cx=\"15\" cy=\"5\" r=\"1\" />\n <circle cx=\"15\" cy=\"19\" r=\"1\" />\n </svg>\n );\n}\n\nexport function IconMoreHorizontal(props: IconProps) {\n return (\n <svg {...defaults} {...props}>\n <circle cx=\"12\" cy=\"12\" r=\"1\" />\n <circle cx=\"19\" cy=\"12\" r=\"1\" />\n <circle cx=\"5\" cy=\"12\" r=\"1\" />\n </svg>\n );\n}\n\nexport function IconPlay(props: IconProps) {\n return (\n <svg {...defaults} {...props}>\n <polygon points=\"6 3 20 12 6 21 6 3\" fill=\"currentColor\" />\n </svg>\n );\n}\n\nexport function IconCheck(props: IconProps) {\n return (\n <svg {...defaults} {...props}>\n <path d=\"M20 6 9 17l-5-5\" />\n </svg>\n );\n}\n\nexport function IconChevronRight(props: IconProps) {\n return (\n <svg {...defaults} {...props}>\n <path d=\"m9 18 6-6-6-6\" />\n </svg>\n );\n}\n\nexport function IconEye(props: IconProps) {\n return (\n <svg {...defaults} {...props}>\n <path d=\"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0\" />\n <circle cx=\"12\" cy=\"12\" r=\"3\" />\n </svg>\n );\n}\n\nexport function IconEyeOff(props: IconProps) {\n return (\n <svg {...defaults} {...props}>\n <path d=\"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49\" />\n <path d=\"M14.084 14.158a3 3 0 0 1-4.242-4.242\" />\n <path d=\"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143\" />\n <path d=\"m2 2 20 20\" />\n </svg>\n );\n}\n\nexport function IconRefresh(props: IconProps) {\n return (\n <svg {...defaults} {...props}>\n <path d=\"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8\" />\n <path d=\"M21 3v5h-5\" />\n <path d=\"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16\" />\n <path d=\"M8 16H3v5\" />\n </svg>\n );\n}\n\nexport function IconBraces(props: IconProps) {\n return (\n <svg {...defaults} {...props}>\n <path d=\"M8 3H7a2 2 0 0 0-2 2v5a2 2 0 0 1-2 2 2 2 0 0 1 2 2v5a2 2 0 0 0 2 2h1\" />\n <path d=\"M16 21h1a2 2 0 0 0 2-2v-5a2 2 0 0 1 2-2 2 2 0 0 1-2-2V5a2 2 0 0 0-2-2h-1\" />\n </svg>\n );\n}\n"],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ import { ComponentProps } from "react";
2
+ import * as _$react_jsx_runtime0 from "react/jsx-runtime";
3
+ import { VariantProps } from "class-variance-authority";
4
+ import * as _$class_variance_authority_types0 from "class-variance-authority/types";
5
+
6
+ //#region src/components/ui/alert.d.ts
7
+ /**
8
+ * Notice box used across the form library (a field's disabled-reason, form-level
9
+ * validation / loader errors, …). Severity drives the left accent bar + icon
10
+ * colour. Children render in the body column with muted "description" styling by
11
+ * default; wrap a heading in {@link AlertTitle} for the bold title + muted body
12
+ * layout.
13
+ *
14
+ * The whole component is overridable per form via
15
+ * `<FormProvider components={{ alert: MyAlert }}>` — see `FormComponents`. The
16
+ * override receives `variant` + `children`, so one component can style every
17
+ * severity.
18
+ */
19
+ declare const alertVariants: (props?: ({
20
+ variant?: "info" | "error" | "warning" | null | undefined;
21
+ } & _$class_variance_authority_types0.ClassProp) | undefined) => string;
22
+ type AlertVariant = NonNullable<VariantProps<typeof alertVariants>["variant"]>;
23
+ interface AlertProps extends Omit<ComponentProps<"div">, "title"> {
24
+ variant?: AlertVariant;
25
+ /** Set `false` to hide the leading severity icon. */
26
+ icon?: boolean;
27
+ }
28
+ declare function Alert({
29
+ variant,
30
+ icon,
31
+ className,
32
+ children,
33
+ ...props
34
+ }: AlertProps): _$react_jsx_runtime0.JSX.Element;
35
+ /** Bold, foreground-coloured heading line inside an {@link Alert}. */
36
+ declare function AlertTitle({
37
+ className,
38
+ ...props
39
+ }: ComponentProps<"div">): _$react_jsx_runtime0.JSX.Element;
40
+ /** Muted body text inside an {@link Alert} (the default child styling). */
41
+ declare function AlertDescription({
42
+ className,
43
+ ...props
44
+ }: ComponentProps<"div">): _$react_jsx_runtime0.JSX.Element;
45
+ //#endregion
46
+ export { Alert, AlertDescription, AlertProps, AlertTitle, AlertVariant, alertVariants };
47
+ //# sourceMappingURL=alert.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alert.d.mts","names":[],"sources":["../../../src/components/ui/alert.tsx"],"mappings":";;;;;;;;;;AAC4C;;;;;;;;cAgBtC,aAAA,GAAa,KAAA;;IAYlB,iCAAA,CAAA,SAAA;AAAA,KAIW,YAAA,GAAe,WAAA,CAAY,YAAA,QAAoB,aAAA;AAAA,UAE1C,UAAA,SAAmB,IAAA,CAAK,cAAA;EACvC,OAAA,GAAU,YAAA;EAHe;EAKzB,IAAA;AAAA;AAAA,iBAGc,KAAA,CAAA;EACd,OAAA;EACA,IAAA;EACA,SAAA;EACA,QAAA;EAAA,GACG;AAAA,GACF,UAAA,GAAU,oBAAA,CAAA,GAAA,CAAA,OAAA;;iBAsBG,UAAA,CAAA;EAAa,SAAA;EAAA,GAAc;AAAA,GAAS,cAAA,UAAqB,oBAAA,CAAA,GAAA,CAAA,OAAA;;iBAWzD,gBAAA,CAAA;EAAmB,SAAA;EAAA,GAAc;AAAA,GAAS,cAAA,UAAqB,oBAAA,CAAA,GAAA,CAAA,OAAA"}
@@ -0,0 +1,66 @@
1
+ import { cn } from "../../lib/utils.mjs";
2
+ import { IconError, IconInfo, IconWarning } from "../internal/icons.mjs";
3
+ import { jsx, jsxs } from "react/jsx-runtime";
4
+ import { cva } from "class-variance-authority";
5
+
6
+ //#region src/components/ui/alert.tsx
7
+ /**
8
+ * Notice box used across the form library (a field's disabled-reason, form-level
9
+ * validation / loader errors, …). Severity drives the left accent bar + icon
10
+ * colour. Children render in the body column with muted "description" styling by
11
+ * default; wrap a heading in {@link AlertTitle} for the bold title + muted body
12
+ * layout.
13
+ *
14
+ * The whole component is overridable per form via
15
+ * `<FormProvider components={{ alert: MyAlert }}>` — see `FormComponents`. The
16
+ * override receives `variant` + `children`, so one component can style every
17
+ * severity.
18
+ */
19
+ const alertVariants = cva("pz:group/alert pz:relative pz:flex pz:w-full pz:items-start pz:gap-2 pz:rounded-lg pz:border pz:bg-card pz:py-2.5 pz:pr-3 pz:pl-5 pz:text-left pz:text-sm pz:before:absolute pz:before:inset-y-2.5 pz:before:left-2 pz:before:w-0.5 pz:before:rounded-full pz:[&>svg]:size-4 pz:[&>svg]:shrink-0 pz:[&>svg]:translate-y-px", {
20
+ variants: { variant: {
21
+ info: "pz:before:bg-blue-500 pz:[&>svg]:text-blue-500",
22
+ warning: "pz:before:bg-amber-500 pz:[&>svg]:text-amber-500",
23
+ error: "pz:before:bg-destructive pz:[&>svg]:text-destructive"
24
+ } },
25
+ defaultVariants: { variant: "info" }
26
+ });
27
+ const VARIANT_ICON = {
28
+ info: IconInfo,
29
+ warning: IconWarning,
30
+ error: IconError
31
+ };
32
+ function Alert({ variant = "info", icon = true, className, children, ...props }) {
33
+ const Icon = VARIANT_ICON[variant];
34
+ return /* @__PURE__ */ jsxs("div", {
35
+ "data-slot": "alert",
36
+ "data-p0": "alert",
37
+ role: "alert",
38
+ className: cn(alertVariants({ variant }), className),
39
+ ...props,
40
+ children: [icon && /* @__PURE__ */ jsx(Icon, { "aria-hidden": "true" }), /* @__PURE__ */ jsx("div", {
41
+ "data-slot": "alert-body",
42
+ className: "pz:flex pz:min-w-0 pz:flex-col pz:gap-0.5 pz:text-muted-foreground pz:text-xs",
43
+ children
44
+ })]
45
+ });
46
+ }
47
+ /** Bold, foreground-coloured heading line inside an {@link Alert}. */
48
+ function AlertTitle({ className, ...props }) {
49
+ return /* @__PURE__ */ jsx("div", {
50
+ "data-slot": "alert-title",
51
+ className: cn("pz:font-medium pz:text-foreground pz:text-sm pz:leading-tight", className),
52
+ ...props
53
+ });
54
+ }
55
+ /** Muted body text inside an {@link Alert} (the default child styling). */
56
+ function AlertDescription({ className, ...props }) {
57
+ return /* @__PURE__ */ jsx("div", {
58
+ "data-slot": "alert-description",
59
+ className: cn("pz:flex pz:flex-col pz:gap-1 pz:text-muted-foreground pz:text-xs", className),
60
+ ...props
61
+ });
62
+ }
63
+
64
+ //#endregion
65
+ export { Alert, AlertDescription, AlertTitle, alertVariants };
66
+ //# sourceMappingURL=alert.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alert.mjs","names":[],"sources":["../../../src/components/ui/alert.tsx"],"sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\";\nimport type { ComponentProps } from \"react\";\nimport { cn } from \"../../lib/utils.js\";\nimport { IconError, IconInfo, IconWarning } from \"../internal/icons.js\";\n\n/**\n * Notice box used across the form library (a field's disabled-reason, form-level\n * validation / loader errors, …). Severity drives the left accent bar + icon\n * colour. Children render in the body column with muted \"description\" styling by\n * default; wrap a heading in {@link AlertTitle} for the bold title + muted body\n * layout.\n *\n * The whole component is overridable per form via\n * `<FormProvider components={{ alert: MyAlert }}>` — see `FormComponents`. The\n * override receives `variant` + `children`, so one component can style every\n * severity.\n */\nconst alertVariants = cva(\n \"pz:group/alert pz:relative pz:flex pz:w-full pz:items-start pz:gap-2 pz:rounded-lg pz:border pz:bg-card pz:py-2.5 pz:pr-3 pz:pl-5 pz:text-left pz:text-sm pz:before:absolute pz:before:inset-y-2.5 pz:before:left-2 pz:before:w-0.5 pz:before:rounded-full pz:[&>svg]:size-4 pz:[&>svg]:shrink-0 pz:[&>svg]:translate-y-px\",\n {\n variants: {\n variant: {\n info: \"pz:before:bg-blue-500 pz:[&>svg]:text-blue-500\",\n warning: \"pz:before:bg-amber-500 pz:[&>svg]:text-amber-500\",\n error: \"pz:before:bg-destructive pz:[&>svg]:text-destructive\",\n },\n },\n defaultVariants: { variant: \"info\" },\n },\n);\n\nconst VARIANT_ICON = { info: IconInfo, warning: IconWarning, error: IconError } as const;\n\nexport type AlertVariant = NonNullable<VariantProps<typeof alertVariants>[\"variant\"]>;\n\nexport interface AlertProps extends Omit<ComponentProps<\"div\">, \"title\"> {\n variant?: AlertVariant;\n /** Set `false` to hide the leading severity icon. */\n icon?: boolean;\n}\n\nexport function Alert({\n variant = \"info\",\n icon = true,\n className,\n children,\n ...props\n}: AlertProps) {\n const Icon = VARIANT_ICON[variant];\n return (\n <div\n data-slot=\"alert\"\n data-p0=\"alert\"\n role=\"alert\"\n className={cn(alertVariants({ variant }), className)}\n {...props}\n >\n {icon && <Icon aria-hidden=\"true\" />}\n <div\n data-slot=\"alert-body\"\n className=\"pz:flex pz:min-w-0 pz:flex-col pz:gap-0.5 pz:text-muted-foreground pz:text-xs\"\n >\n {children}\n </div>\n </div>\n );\n}\n\n/** Bold, foreground-coloured heading line inside an {@link Alert}. */\nexport function AlertTitle({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-title\"\n className={cn(\"pz:font-medium pz:text-foreground pz:text-sm pz:leading-tight\", className)}\n {...props}\n />\n );\n}\n\n/** Muted body text inside an {@link Alert} (the default child styling). */\nexport function AlertDescription({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-description\"\n className={cn(\"pz:flex pz:flex-col pz:gap-1 pz:text-muted-foreground pz:text-xs\", className)}\n {...props}\n />\n );\n}\n\nexport { alertVariants };\n"],"mappings":";;;;;;;;;;;;;;;;;;AAiBA,MAAM,gBAAgB,IACpB,8TACA;CACE,UAAU,EACR,SAAS;EACP,MAAM;EACN,SAAS;EACT,OAAO;EACR,EACF;CACD,iBAAiB,EAAE,SAAS,QAAQ;CACrC,CACF;AAED,MAAM,eAAe;CAAE,MAAM;CAAU,SAAS;CAAa,OAAO;CAAW;AAU/E,SAAgB,MAAM,EACpB,UAAU,QACV,OAAO,MACP,WACA,UACA,GAAG,SACU;CACb,MAAM,OAAO,aAAa;AAC1B,QACE,qBAAC,OAAD;EACE,aAAU;EACV,WAAQ;EACR,MAAK;EACL,WAAW,GAAG,cAAc,EAAE,SAAS,CAAC,EAAE,UAAU;EACpD,GAAI;YALN,CAOG,QAAQ,oBAAC,MAAD,EAAM,eAAY,QAAS,GACpC,oBAAC,OAAD;GACE,aAAU;GACV,WAAU;GAET;GACG,EACF;;;;AAKV,SAAgB,WAAW,EAAE,WAAW,GAAG,SAAgC;AACzE,QACE,oBAAC,OAAD;EACE,aAAU;EACV,WAAW,GAAG,iEAAiE,UAAU;EACzF,GAAI;EACJ;;;AAKN,SAAgB,iBAAiB,EAAE,WAAW,GAAG,SAAgC;AAC/E,QACE,oBAAC,OAAD;EACE,aAAU;EACV,WAAW,GAAG,oEAAoE,UAAU;EAC5F,GAAI;EACJ"}
@@ -1,5 +1,6 @@
1
- import { PipeCatalogContext } from "./pipe-catalog-context.mjs";
1
+ import { EffectCatalogCardContext } from "./effect-catalog-card-context.mjs";
2
2
  import { PipeCatalogCardContext } from "./pipe-catalog-card-context.mjs";
3
+ import { PipeCatalogContext } from "./pipe-catalog-context.mjs";
3
4
  import { SearchCatalogCardContext } from "./search-catalog-card-context.mjs";
4
5
  import { SearchCatalogContext } from "./search-catalog-context.mjs";
5
6
  import { SearchesCatalogCardContext } from "./searches-catalog-card-context.mjs";
@@ -12,7 +13,8 @@ function useAnyCatalogCardOptional() {
12
13
  const pipe = useContext(PipeCatalogCardContext);
13
14
  const search = useContext(SearchCatalogCardContext);
14
15
  const searches = useContext(SearchesCatalogCardContext);
15
- return pipe ?? search ?? searches;
16
+ const effect = useContext(EffectCatalogCardContext);
17
+ return pipe ?? search ?? searches ?? effect;
16
18
  }
17
19
  /**
18
20
  * Returns whichever catalog root context is set (pipe / search / searches),
@@ -1 +1 @@
1
- {"version":3,"file":"catalog-card-context.mjs","names":[],"sources":["../../src/context/catalog-card-context.ts"],"sourcesContent":["import type { SyntheticEvent } from \"react\";\nimport { useContext } from \"react\";\nimport type { PipeCardData, SearchCardData, SearchesCardData } from \"../types/catalog-adapters.js\";\nimport { PipeCatalogCardContext } from \"./pipe-catalog-card-context.js\";\nimport { PipeCatalogContext } from \"./pipe-catalog-context.js\";\nimport { SearchCatalogCardContext } from \"./search-catalog-card-context.js\";\nimport { SearchCatalogContext } from \"./search-catalog-context.js\";\nimport { SearchesCatalogCardContext } from \"./searches-catalog-card-context.js\";\nimport { SearchesCatalogContext } from \"./searches-catalog-context.js\";\n\nexport type AnyCardData = PipeCardData | SearchCardData | SearchesCardData;\n\nexport interface AnyCardContextValue {\n card: AnyCardData;\n index: number;\n selected: boolean;\n onSelect: (e: SyntheticEvent) => void;\n}\n\n/**\n * Internal hook used by shared catalog card primitives. Reads whichever of the\n * three sibling card contexts is set; throws if rendered outside any catalog\n * card. The returned `card` is the union of the three variants — primitives\n * narrow via the discriminator (`pipeId` / `searchId` / `searchesId`).\n */\nexport function useAnyCatalogCard(): AnyCardContextValue {\n const pipe = useContext(PipeCatalogCardContext);\n const search = useContext(SearchCatalogCardContext);\n const searches = useContext(SearchesCatalogCardContext);\n const ctx = pipe ?? search ?? searches;\n if (ctx == null) {\n throw new Error(\n \"Catalog card primitives must be rendered inside a <PipeCatalogCard>, <SearchCatalogCard>, or <SearchesCatalogCard>.\",\n );\n }\n return ctx as AnyCardContextValue;\n}\n\n/** Like {@link useAnyCatalogCard} but returns null when outside a card. */\nexport function useAnyCatalogCardOptional(): AnyCardContextValue | null {\n const pipe = useContext(PipeCatalogCardContext);\n const search = useContext(SearchCatalogCardContext);\n const searches = useContext(SearchesCatalogCardContext);\n return (pipe ?? search ?? searches) as AnyCardContextValue | null;\n}\n\n/**\n * Returns whichever catalog root context is set (pipe / search / searches),\n * or null. Used by self-binding primitives that need access to mutators\n * (`addColumnFilter`) or reverse indexes from the catalog hook.\n */\nexport function useAnyCatalogContextOptional() {\n const pipe = useContext(PipeCatalogContext);\n const search = useContext(SearchCatalogContext);\n const searches = useContext(SearchesCatalogContext);\n return pipe ?? search ?? searches;\n}\n"],"mappings":";;;;;;;;;;AAuCA,SAAgB,4BAAwD;CACtE,MAAM,OAAO,WAAW,uBAAuB;CAC/C,MAAM,SAAS,WAAW,yBAAyB;CACnD,MAAM,WAAW,WAAW,2BAA2B;AACvD,QAAQ,QAAQ,UAAU;;;;;;;AAQ5B,SAAgB,+BAA+B;CAC7C,MAAM,OAAO,WAAW,mBAAmB;CAC3C,MAAM,SAAS,WAAW,qBAAqB;CAC/C,MAAM,WAAW,WAAW,uBAAuB;AACnD,QAAO,QAAQ,UAAU"}
1
+ {"version":3,"file":"catalog-card-context.mjs","names":[],"sources":["../../src/context/catalog-card-context.ts"],"sourcesContent":["import type { SyntheticEvent } from \"react\";\nimport { useContext } from \"react\";\nimport type {\n EffectCardData,\n PipeCardData,\n SearchCardData,\n SearchesCardData,\n} from \"../types/catalog-adapters.js\";\nimport { EffectCatalogCardContext } from \"./effect-catalog-card-context.js\";\nimport { PipeCatalogCardContext } from \"./pipe-catalog-card-context.js\";\nimport { PipeCatalogContext } from \"./pipe-catalog-context.js\";\nimport { SearchCatalogCardContext } from \"./search-catalog-card-context.js\";\nimport { SearchCatalogContext } from \"./search-catalog-context.js\";\nimport { SearchesCatalogCardContext } from \"./searches-catalog-card-context.js\";\nimport { SearchesCatalogContext } from \"./searches-catalog-context.js\";\n\nexport type AnyCardData = PipeCardData | SearchCardData | SearchesCardData | EffectCardData;\n\nexport interface AnyCardContextValue {\n card: AnyCardData;\n index: number;\n selected: boolean;\n onSelect: (e: SyntheticEvent) => void;\n}\n\n/**\n * Internal hook used by shared catalog card primitives. Reads whichever of the\n * three sibling card contexts is set; throws if rendered outside any catalog\n * card. The returned `card` is the union of the three variants — primitives\n * narrow via the discriminator (`pipeId` / `searchId` / `searchesId`).\n */\nexport function useAnyCatalogCard(): AnyCardContextValue {\n const pipe = useContext(PipeCatalogCardContext);\n const search = useContext(SearchCatalogCardContext);\n const searches = useContext(SearchesCatalogCardContext);\n const effect = useContext(EffectCatalogCardContext);\n const ctx = pipe ?? search ?? searches ?? effect;\n if (ctx == null) {\n throw new Error(\n \"Catalog card primitives must be rendered inside a <PipeCatalogCard>, <SearchCatalogCard>, <SearchesCatalogCard>, or <EffectCatalogCard>.\",\n );\n }\n return ctx as AnyCardContextValue;\n}\n\n/** Like {@link useAnyCatalogCard} but returns null when outside a card. */\nexport function useAnyCatalogCardOptional(): AnyCardContextValue | null {\n const pipe = useContext(PipeCatalogCardContext);\n const search = useContext(SearchCatalogCardContext);\n const searches = useContext(SearchesCatalogCardContext);\n const effect = useContext(EffectCatalogCardContext);\n return (pipe ?? search ?? searches ?? effect) as AnyCardContextValue | null;\n}\n\n/**\n * Returns whichever catalog root context is set (pipe / search / searches),\n * or null. Used by self-binding primitives that need access to mutators\n * (`addColumnFilter`) or reverse indexes from the catalog hook.\n */\nexport function useAnyCatalogContextOptional() {\n const pipe = useContext(PipeCatalogContext);\n const search = useContext(SearchCatalogContext);\n const searches = useContext(SearchesCatalogContext);\n return pipe ?? search ?? searches;\n}\n"],"mappings":";;;;;;;;;;;AA8CA,SAAgB,4BAAwD;CACtE,MAAM,OAAO,WAAW,uBAAuB;CAC/C,MAAM,SAAS,WAAW,yBAAyB;CACnD,MAAM,WAAW,WAAW,2BAA2B;CACvD,MAAM,SAAS,WAAW,yBAAyB;AACnD,QAAQ,QAAQ,UAAU,YAAY;;;;;;;AAQxC,SAAgB,+BAA+B;CAC7C,MAAM,OAAO,WAAW,mBAAmB;CAC3C,MAAM,SAAS,WAAW,qBAAqB;CAC/C,MAAM,WAAW,WAAW,uBAAuB;AACnD,QAAO,QAAQ,UAAU"}
@@ -0,0 +1,20 @@
1
+ import { EffectCardData } from "../types/catalog-adapters.mjs";
2
+ import * as _$react from "react";
3
+ import { SyntheticEvent } from "react";
4
+
5
+ //#region src/context/effect-catalog-card-context.d.ts
6
+ interface EffectCatalogCardContextValue {
7
+ card: EffectCardData;
8
+ index: number;
9
+ selected: boolean;
10
+ expanded: boolean;
11
+ /** Selection handler — fires the catalog root's `onSelectCard`. */
12
+ onSelect: (e: SyntheticEvent) => void;
13
+ /** Kept for parity with the other card variants; effect cards don't expand. */
14
+ setExpanded: (open: boolean) => void;
15
+ }
16
+ declare const EffectCatalogCardContext: _$react.Context<EffectCatalogCardContextValue | null>;
17
+ declare function useEffectCatalogCard(): EffectCatalogCardContextValue;
18
+ //#endregion
19
+ export { EffectCatalogCardContext, EffectCatalogCardContextValue, useEffectCatalogCard };
20
+ //# sourceMappingURL=effect-catalog-card-context.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"effect-catalog-card-context.d.mts","names":[],"sources":["../../src/context/effect-catalog-card-context.ts"],"mappings":";;;;;UAIiB,6BAAA;EACf,IAAA,EAAM,cAAA;EACN,KAAA;EACA,QAAA;EACA,QAAA;;EAEA,QAAA,GAAW,CAAA,EAAG,cAAA;EALd;EAOA,WAAA,GAAc,IAAA;AAAA;AAAA,cAGH,wBAAA,EAAwB,OAAA,CAAA,OAAA,CAAA,6BAAA;AAAA,iBAErB,oBAAA,CAAA,GAAwB,6BAAA"}
@@ -0,0 +1,13 @@
1
+ import { createContext, useContext } from "react";
2
+
3
+ //#region src/context/effect-catalog-card-context.ts
4
+ const EffectCatalogCardContext = createContext(null);
5
+ function useEffectCatalogCard() {
6
+ const value = useContext(EffectCatalogCardContext);
7
+ if (value == null) throw new Error("useEffectCatalogCard must be used inside <EffectCatalogCard>.");
8
+ return value;
9
+ }
10
+
11
+ //#endregion
12
+ export { EffectCatalogCardContext, useEffectCatalogCard };
13
+ //# sourceMappingURL=effect-catalog-card-context.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"effect-catalog-card-context.mjs","names":[],"sources":["../../src/context/effect-catalog-card-context.ts"],"sourcesContent":["import type { SyntheticEvent } from \"react\";\nimport { createContext, useContext } from \"react\";\nimport type { EffectCardData } from \"../types/catalog-adapters.js\";\n\nexport interface EffectCatalogCardContextValue {\n card: EffectCardData;\n index: number;\n selected: boolean;\n expanded: boolean;\n /** Selection handler — fires the catalog root's `onSelectCard`. */\n onSelect: (e: SyntheticEvent) => void;\n /** Kept for parity with the other card variants; effect cards don't expand. */\n setExpanded: (open: boolean) => void;\n}\n\nexport const EffectCatalogCardContext = createContext<EffectCatalogCardContextValue | null>(null);\n\nexport function useEffectCatalogCard(): EffectCatalogCardContextValue {\n const value = useContext(EffectCatalogCardContext);\n if (value == null) {\n throw new Error(\"useEffectCatalogCard must be used inside <EffectCatalogCard>.\");\n }\n return value;\n}\n"],"mappings":";;;AAeA,MAAa,2BAA2B,cAAoD,KAAK;AAEjG,SAAgB,uBAAsD;CACpE,MAAM,QAAQ,WAAW,yBAAyB;AAClD,KAAI,SAAS,KACX,OAAM,IAAI,MAAM,gEAAgE;AAElF,QAAO"}
@@ -0,0 +1,20 @@
1
+ import { EffectCardData } from "../types/catalog-adapters.mjs";
2
+ import { UseEffectCatalogTableReturn } from "../hooks/use-effect-catalog-table.mjs";
3
+ import * as _$react from "react";
4
+ import { SyntheticEvent } from "react";
5
+
6
+ //#region src/context/effect-catalog-context.d.ts
7
+ type EffectCatalogContextValue = UseEffectCatalogTableReturn & {
8
+ onSelectCard?: (card: EffectCardData, e: SyntheticEvent) => void;
9
+ /**
10
+ * Id of the currently expanded card row (drawer open), or `null`. Kept for
11
+ * parity with the other catalog variants; effect cards are not expandable.
12
+ */
13
+ expandedCardId: string | null;
14
+ setExpandedCardId: (id: string | null) => void;
15
+ };
16
+ declare const EffectCatalogContext: _$react.Context<EffectCatalogContextValue | null>;
17
+ declare function useEffectCatalogContext(): EffectCatalogContextValue;
18
+ //#endregion
19
+ export { EffectCatalogContext, EffectCatalogContextValue, useEffectCatalogContext };
20
+ //# sourceMappingURL=effect-catalog-context.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"effect-catalog-context.d.mts","names":[],"sources":["../../src/context/effect-catalog-context.ts"],"mappings":";;;;;;KAKY,yBAAA,GAA4B,2BAAA;EACtC,YAAA,IAAgB,IAAA,EAAM,cAAA,EAAgB,CAAA,EAAG,cAAA;;AAD3C;;;EAME,cAAA;EACA,iBAAA,GAAoB,EAAA;AAAA;AAAA,cAGT,oBAAA,EAAoB,OAAA,CAAA,OAAA,CAAA,yBAAA;AAAA,iBAEjB,uBAAA,CAAA,GAA2B,yBAAA"}
@@ -0,0 +1,13 @@
1
+ import { createContext, useContext } from "react";
2
+
3
+ //#region src/context/effect-catalog-context.ts
4
+ const EffectCatalogContext = createContext(null);
5
+ function useEffectCatalogContext() {
6
+ const value = useContext(EffectCatalogContext);
7
+ if (value == null) throw new Error("useEffectCatalogContext must be used inside <EffectCatalog>. Either render <EffectCatalog>...</EffectCatalog> or pass `context={useEffectCatalogTable()}`.");
8
+ return value;
9
+ }
10
+
11
+ //#endregion
12
+ export { EffectCatalogContext, useEffectCatalogContext };
13
+ //# sourceMappingURL=effect-catalog-context.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"effect-catalog-context.mjs","names":[],"sources":["../../src/context/effect-catalog-context.ts"],"sourcesContent":["import type { SyntheticEvent } from \"react\";\nimport { createContext, useContext } from \"react\";\nimport type { UseEffectCatalogTableReturn } from \"../hooks/use-effect-catalog-table.js\";\nimport type { EffectCardData } from \"../types/catalog-adapters.js\";\n\nexport type EffectCatalogContextValue = UseEffectCatalogTableReturn & {\n onSelectCard?: (card: EffectCardData, e: SyntheticEvent) => void;\n /**\n * Id of the currently expanded card row (drawer open), or `null`. Kept for\n * parity with the other catalog variants; effect cards are not expandable.\n */\n expandedCardId: string | null;\n setExpandedCardId: (id: string | null) => void;\n};\n\nexport const EffectCatalogContext = createContext<EffectCatalogContextValue | null>(null);\n\nexport function useEffectCatalogContext(): EffectCatalogContextValue {\n const value = useContext(EffectCatalogContext);\n if (value == null) {\n throw new Error(\n \"useEffectCatalogContext must be used inside <EffectCatalog>. \" +\n \"Either render <EffectCatalog>...</EffectCatalog> or pass `context={useEffectCatalogTable()}`.\",\n );\n }\n return value;\n}\n"],"mappings":";;;AAeA,MAAa,uBAAuB,cAAgD,KAAK;AAEzF,SAAgB,0BAAqD;CACnE,MAAM,QAAQ,WAAW,qBAAqB;AAC9C,KAAI,SAAS,KACX,OAAM,IAAI,MACR,6JAED;AAEH,QAAO"}
@@ -0,0 +1,21 @@
1
+ import { AlertProps } from "../components/ui/alert.mjs";
2
+ import { FieldAdapterMap, FormClassNames, FormComponents } from "../types/adapters.mjs";
3
+ import { ComponentType } from "react";
4
+
5
+ //#region src/context/form-context.d.ts
6
+ interface FormConfig {
7
+ adapters?: FieldAdapterMap;
8
+ classNames?: FormClassNames;
9
+ components?: FormComponents;
10
+ }
11
+ declare function useFormConfig(): FormConfig;
12
+ /**
13
+ * The Alert component the form chrome should render — the consumer's override
14
+ * from `<FormProvider components={{ alert }}>` if present, else the library
15
+ * default. Use this everywhere instead of importing `Alert` directly so notices
16
+ * stay customizable.
17
+ */
18
+ declare function useFormAlert(): ComponentType<AlertProps>;
19
+ //#endregion
20
+ export { FormConfig, useFormAlert, useFormConfig };
21
+ //# sourceMappingURL=form-context.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-context.d.mts","names":[],"sources":["../../src/context/form-context.ts"],"mappings":";;;;;UAIiB,UAAA;EACf,QAAA,GAAW,eAAA;EACX,UAAA,GAAa,cAAA;EACb,UAAA,GAAa,cAAA;AAAA;AAAA,iBAKC,aAAA,CAAA,GAAiB,UAAA;;;;;;;iBAUjB,YAAA,CAAA,GAAgB,aAAA,CAAc,UAAA"}
@@ -1,3 +1,4 @@
1
+ import { Alert } from "../components/ui/alert.mjs";
1
2
  import { createContext, useContext } from "react";
2
3
 
3
4
  //#region src/context/form-context.ts
@@ -5,7 +6,16 @@ const FormConfigContext = createContext({});
5
6
  function useFormConfig() {
6
7
  return useContext(FormConfigContext);
7
8
  }
9
+ /**
10
+ * The Alert component the form chrome should render — the consumer's override
11
+ * from `<FormProvider components={{ alert }}>` if present, else the library
12
+ * default. Use this everywhere instead of importing `Alert` directly so notices
13
+ * stay customizable.
14
+ */
15
+ function useFormAlert() {
16
+ return useFormConfig().components?.alert ?? Alert;
17
+ }
8
18
 
9
19
  //#endregion
10
- export { FormConfigContext, useFormConfig };
20
+ export { FormConfigContext, useFormAlert, useFormConfig };
11
21
  //# sourceMappingURL=form-context.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"form-context.mjs","names":[],"sources":["../../src/context/form-context.ts"],"sourcesContent":["import { createContext, useContext } from \"react\";\nimport type { FieldAdapterMap, FormClassNames } from \"../types/adapters.js\";\n\nexport interface FormConfig {\n adapters?: FieldAdapterMap;\n classNames?: FormClassNames;\n}\n\nexport const FormConfigContext = createContext<FormConfig>({});\n\nexport function useFormConfig(): FormConfig {\n return useContext(FormConfigContext);\n}\n"],"mappings":";;;AAQA,MAAa,oBAAoB,cAA0B,EAAE,CAAC;AAE9D,SAAgB,gBAA4B;AAC1C,QAAO,WAAW,kBAAkB"}
1
+ {"version":3,"file":"form-context.mjs","names":[],"sources":["../../src/context/form-context.ts"],"sourcesContent":["import { type ComponentType, createContext, useContext } from \"react\";\nimport { Alert, type AlertProps } from \"../components/ui/alert.js\";\nimport type { FieldAdapterMap, FormClassNames, FormComponents } from \"../types/adapters.js\";\n\nexport interface FormConfig {\n adapters?: FieldAdapterMap;\n classNames?: FormClassNames;\n components?: FormComponents;\n}\n\nexport const FormConfigContext = createContext<FormConfig>({});\n\nexport function useFormConfig(): FormConfig {\n return useContext(FormConfigContext);\n}\n\n/**\n * The Alert component the form chrome should render — the consumer's override\n * from `<FormProvider components={{ alert }}>` if present, else the library\n * default. Use this everywhere instead of importing `Alert` directly so notices\n * stay customizable.\n */\nexport function useFormAlert(): ComponentType<AlertProps> {\n return useFormConfig().components?.alert ?? Alert;\n}\n"],"mappings":";;;;AAUA,MAAa,oBAAoB,cAA0B,EAAE,CAAC;AAE9D,SAAgB,gBAA4B;AAC1C,QAAO,WAAW,kBAAkB;;;;;;;;AAStC,SAAgB,eAA0C;AACxD,QAAO,eAAe,CAAC,YAAY,SAAS"}
@@ -1,4 +1,4 @@
1
- import { FieldAdapterMap, FormClassNames } from "../types/adapters.mjs";
1
+ import { FieldAdapterMap, FormClassNames, FormComponents } from "../types/adapters.mjs";
2
2
  import { ReactNode } from "react";
3
3
  import * as _$react_jsx_runtime0 from "react/jsx-runtime";
4
4
 
@@ -16,6 +16,7 @@ declare function FormRoot({
16
16
  interface FormProviderProps {
17
17
  classNames?: FormClassNames;
18
18
  adapters?: FieldAdapterMap;
19
+ components?: FormComponents;
19
20
  children: ReactNode;
20
21
  }
21
22
  /**
@@ -34,6 +35,7 @@ interface FormProviderProps {
34
35
  declare function FormProvider({
35
36
  classNames,
36
37
  adapters,
38
+ components,
37
39
  children
38
40
  }: FormProviderProps): _$react_jsx_runtime0.JSX.Element;
39
41
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"form-provider.d.mts","names":[],"sources":["../../src/context/form-provider.tsx"],"mappings":";;;;;;;;AAUA;;iBAAgB,QAAA,CAAA;EAAW;AAAA;EAAc,QAAA,EAAU,SAAA;AAAA,IAAW,oBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,UAI7C,iBAAA;EACf,UAAA,GAAa,cAAA;EACb,QAAA,GAAW,eAAA;EACX,QAAA,EAAU,SAAA;AAAA;;;;;;;AAHZ;;;;;;;iBAmBgB,YAAA,CAAA;EAAe,UAAA;EAAY,QAAA;EAAU;AAAA,GAAY,iBAAA,GAAiB,oBAAA,CAAA,GAAA,CAAA,OAAA"}
1
+ {"version":3,"file":"form-provider.d.mts","names":[],"sources":["../../src/context/form-provider.tsx"],"mappings":";;;;;;;;AAUA;;iBAAgB,QAAA,CAAA;EAAW;AAAA;EAAc,QAAA,EAAU,SAAA;AAAA,IAAW,oBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,UAI7C,iBAAA;EACf,UAAA,GAAa,cAAA;EACb,QAAA,GAAW,eAAA;EACX,UAAA,GAAa,cAAA;EACb,QAAA,EAAU,SAAA;AAAA;;;;;;AAJZ;;;;;;;;iBAoBgB,YAAA,CAAA;EAAe,UAAA;EAAY,QAAA;EAAU,UAAA;EAAY;AAAA,GAAY,iBAAA,GAAiB,oBAAA,CAAA,GAAA,CAAA,OAAA"}
@@ -25,7 +25,7 @@ function FormRoot({ children }) {
25
25
  * </FormProvider>
26
26
  * ```
27
27
  */
28
- function FormProvider({ classNames, adapters, children }) {
28
+ function FormProvider({ classNames, adapters, components, children }) {
29
29
  const parent = useFormConfig();
30
30
  const merged = useMemo(() => ({
31
31
  classNames: {
@@ -35,12 +35,18 @@ function FormProvider({ classNames, adapters, children }) {
35
35
  adapters: {
36
36
  ...parent.adapters,
37
37
  ...adapters
38
+ },
39
+ components: {
40
+ ...parent.components,
41
+ ...components
38
42
  }
39
43
  }), [
40
44
  parent.classNames,
41
45
  parent.adapters,
46
+ parent.components,
42
47
  classNames,
43
- adapters
48
+ adapters,
49
+ components
44
50
  ]);
45
51
  return /* @__PURE__ */ jsx(FormConfigContext.Provider, {
46
52
  value: merged,
@@ -1 +1 @@
1
- {"version":3,"file":"form-provider.mjs","names":[],"sources":["../../src/context/form-provider.tsx"],"sourcesContent":["import { type ReactNode, useMemo } from \"react\";\nimport { TooltipProvider } from \"../components/ui/tooltip.js\";\nimport type { FieldAdapterMap, FormClassNames } from \"../types/adapters.js\";\nimport { FormConfigContext, useFormConfig } from \"./form-context.js\";\n\n/**\n * Root-level providers required by any form component tree (tooltips, etc.).\n * Always mounted by `<PipeForm>` and `<SearchForm>` at the outermost layer,\n * independent of the optional customization `FormProvider`.\n */\nexport function FormRoot({ children }: { children: ReactNode }) {\n return <TooltipProvider>{children}</TooltipProvider>;\n}\n\nexport interface FormProviderProps {\n classNames?: FormClassNames;\n adapters?: FieldAdapterMap;\n children: ReactNode;\n}\n\n/**\n * Provides customization context to `<PipeForm>` and `<SearchForm>`.\n * Providers nest — inner overrides outer.\n *\n * ```tsx\n * <FormProvider\n * classNames={{ label: \"font-bold\" }}\n * adapters={{ text_input: (f) => <MyInput {...f.inputProps} /> }}\n * >\n * <PipeForm ... />\n * </FormProvider>\n * ```\n */\nexport function FormProvider({ classNames, adapters, children }: FormProviderProps) {\n const parent = useFormConfig();\n\n const merged = useMemo(\n () => ({\n classNames: { ...parent.classNames, ...classNames },\n adapters: { ...parent.adapters, ...adapters },\n }),\n [parent.classNames, parent.adapters, classNames, adapters],\n );\n\n return <FormConfigContext.Provider value={merged}>{children}</FormConfigContext.Provider>;\n}\n"],"mappings":";;;;;;;;;;;AAUA,SAAgB,SAAS,EAAE,YAAqC;AAC9D,QAAO,oBAAC,iBAAD,EAAkB,UAA2B;;;;;;;;;;;;;;;AAsBtD,SAAgB,aAAa,EAAE,YAAY,UAAU,YAA+B;CAClF,MAAM,SAAS,eAAe;CAE9B,MAAM,SAAS,eACN;EACL,YAAY;GAAE,GAAG,OAAO;GAAY,GAAG;GAAY;EACnD,UAAU;GAAE,GAAG,OAAO;GAAU,GAAG;GAAU;EAC9C,GACD;EAAC,OAAO;EAAY,OAAO;EAAU;EAAY;EAAS,CAC3D;AAED,QAAO,oBAAC,kBAAkB,UAAnB;EAA4B,OAAO;EAAS;EAAsC"}
1
+ {"version":3,"file":"form-provider.mjs","names":[],"sources":["../../src/context/form-provider.tsx"],"sourcesContent":["import { type ReactNode, useMemo } from \"react\";\nimport { TooltipProvider } from \"../components/ui/tooltip.js\";\nimport type { FieldAdapterMap, FormClassNames, FormComponents } from \"../types/adapters.js\";\nimport { FormConfigContext, useFormConfig } from \"./form-context.js\";\n\n/**\n * Root-level providers required by any form component tree (tooltips, etc.).\n * Always mounted by `<PipeForm>` and `<SearchForm>` at the outermost layer,\n * independent of the optional customization `FormProvider`.\n */\nexport function FormRoot({ children }: { children: ReactNode }) {\n return <TooltipProvider>{children}</TooltipProvider>;\n}\n\nexport interface FormProviderProps {\n classNames?: FormClassNames;\n adapters?: FieldAdapterMap;\n components?: FormComponents;\n children: ReactNode;\n}\n\n/**\n * Provides customization context to `<PipeForm>` and `<SearchForm>`.\n * Providers nest — inner overrides outer.\n *\n * ```tsx\n * <FormProvider\n * classNames={{ label: \"font-bold\" }}\n * adapters={{ text_input: (f) => <MyInput {...f.inputProps} /> }}\n * >\n * <PipeForm ... />\n * </FormProvider>\n * ```\n */\nexport function FormProvider({ classNames, adapters, components, children }: FormProviderProps) {\n const parent = useFormConfig();\n\n const merged = useMemo(\n () => ({\n classNames: { ...parent.classNames, ...classNames },\n adapters: { ...parent.adapters, ...adapters },\n components: { ...parent.components, ...components },\n }),\n [parent.classNames, parent.adapters, parent.components, classNames, adapters, components],\n );\n\n return <FormConfigContext.Provider value={merged}>{children}</FormConfigContext.Provider>;\n}\n"],"mappings":";;;;;;;;;;;AAUA,SAAgB,SAAS,EAAE,YAAqC;AAC9D,QAAO,oBAAC,iBAAD,EAAkB,UAA2B;;;;;;;;;;;;;;;AAuBtD,SAAgB,aAAa,EAAE,YAAY,UAAU,YAAY,YAA+B;CAC9F,MAAM,SAAS,eAAe;CAE9B,MAAM,SAAS,eACN;EACL,YAAY;GAAE,GAAG,OAAO;GAAY,GAAG;GAAY;EACnD,UAAU;GAAE,GAAG,OAAO;GAAU,GAAG;GAAU;EAC7C,YAAY;GAAE,GAAG,OAAO;GAAY,GAAG;GAAY;EACpD,GACD;EAAC,OAAO;EAAY,OAAO;EAAU,OAAO;EAAY;EAAY;EAAU;EAAW,CAC1F;AAED,QAAO,oBAAC,kBAAkB,UAAnB;EAA4B,OAAO;EAAS;EAAsC"}
@@ -0,0 +1,33 @@
1
+ import { EffectCardData } from "../types/catalog-adapters.mjs";
2
+ import * as _$react from "react";
3
+ import { SheetEffectCatalogTableData, SheetEffectCategory } from "@pipe0/base";
4
+ import * as _$_tanstack_react_table0 from "@tanstack/react-table";
5
+ import { ColumnFilter } from "@tanstack/react-table";
6
+
7
+ //#region src/hooks/use-effect-catalog-table.d.ts
8
+ declare function useEffectCatalogTable(config?: {
9
+ initialColumnFilters?: ColumnFilter[];
10
+ /**
11
+ * Optional predicate to pre-filter the catalog (e.g. by `selectionMode`
12
+ * for the current row selection). Memoize it to keep the table stable.
13
+ */
14
+ filter?: (entry: SheetEffectCatalogTableData) => boolean;
15
+ }): {
16
+ table: _$_tanstack_react_table0.Table<SheetEffectCatalogTableData>;
17
+ cards: EffectCardData[];
18
+ cardsByCategory: {
19
+ category: SheetEffectCategory;
20
+ cards: EffectCardData[];
21
+ }[];
22
+ categoryCounts: Partial<Record<SheetEffectCategory, number>>;
23
+ baselineCardCount: number;
24
+ baselineCategoryCounts: Partial<Record<SheetEffectCategory, number>>;
25
+ category: SheetEffectCategory | null;
26
+ setCategory: (next: SheetEffectCategory | null) => void;
27
+ globalFilterInput: string;
28
+ setGlobalFilterInput: _$react.Dispatch<_$react.SetStateAction<string>>;
29
+ };
30
+ type UseEffectCatalogTableReturn = ReturnType<typeof useEffectCatalogTable>;
31
+ //#endregion
32
+ export { UseEffectCatalogTableReturn, useEffectCatalogTable };
33
+ //# sourceMappingURL=use-effect-catalog-table.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-effect-catalog-table.d.mts","names":[],"sources":["../../src/hooks/use-effect-catalog-table.ts"],"mappings":";;;;;;;iBAqCgB,qBAAA,CACd,MAAA;EACE,oBAAA,GAAuB,YAAA;;;AAF3B;;EAOI,MAAA,IAAU,KAAA,EAAO,2BAAA;AAAA;;;;cA+EL,mBAAA;WAA4B,cAAA;EAAA;;;;;sBAhCjC,mBAAA;;yCAAmB,OAAA,CAAA,cAAA;AAAA;AAAA,KAmFlB,2BAAA,GAA8B,UAAA,QAAkB,qBAAA"}