@pipe0/react 1.0.31 → 1.0.33

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 (89) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/dist/components/defaults/adapters/context-select-input.mjs +1 -0
  3. package/dist/components/defaults/adapters/context-select-input.mjs.map +1 -1
  4. package/dist/components/defaults/adapters/loose-object-input.mjs +2 -2
  5. package/dist/components/defaults/adapters/loose-object-input.mjs.map +1 -1
  6. package/dist/components/defaults/catalog/card-derived.d.mts +1 -1
  7. package/dist/components/defaults/catalog/card-derived.mjs +0 -1
  8. package/dist/components/defaults/catalog/card-derived.mjs.map +1 -1
  9. package/dist/components/defaults/catalog/card-primitives.d.mts +2 -2
  10. package/dist/components/defaults/catalog/card-primitives.mjs +2 -2
  11. package/dist/components/defaults/catalog/card-primitives.mjs.map +1 -1
  12. package/dist/components/internal/LiquidEditor/ChipEditPopover.mjs +60 -14
  13. package/dist/components/internal/LiquidEditor/ChipEditPopover.mjs.map +1 -1
  14. package/dist/context/catalog-card-context.mjs +3 -7
  15. package/dist/context/catalog-card-context.mjs.map +1 -1
  16. package/dist/context/catalog-config-context.d.mts +1 -1
  17. package/dist/context/catalog-config-context.mjs +1 -1
  18. package/dist/context/catalog-config-context.mjs.map +1 -1
  19. package/dist/hooks/catalog-table.d.mts.map +1 -1
  20. package/dist/hooks/catalog-table.mjs +13 -2
  21. package/dist/hooks/catalog-table.mjs.map +1 -1
  22. package/dist/hooks/use-pipe-catalog-table.d.mts +8 -8
  23. package/dist/index.d.mts +2 -17
  24. package/dist/index.mjs +1 -16
  25. package/dist/styles/pipe0-form.css +1 -1
  26. package/dist/types/catalog-adapters.d.mts +2 -19
  27. package/dist/types/catalog-adapters.d.mts.map +1 -1
  28. package/package.json +2 -2
  29. package/dist/components/compound/searches-catalog/active-filters.d.mts +0 -23
  30. package/dist/components/compound/searches-catalog/active-filters.d.mts.map +0 -1
  31. package/dist/components/compound/searches-catalog/active-filters.mjs +0 -50
  32. package/dist/components/compound/searches-catalog/active-filters.mjs.map +0 -1
  33. package/dist/components/compound/searches-catalog/card.d.mts +0 -22
  34. package/dist/components/compound/searches-catalog/card.d.mts.map +0 -1
  35. package/dist/components/compound/searches-catalog/card.mjs +0 -82
  36. package/dist/components/compound/searches-catalog/card.mjs.map +0 -1
  37. package/dist/components/compound/searches-catalog/category-filter.d.mts +0 -27
  38. package/dist/components/compound/searches-catalog/category-filter.d.mts.map +0 -1
  39. package/dist/components/compound/searches-catalog/category-filter.mjs +0 -61
  40. package/dist/components/compound/searches-catalog/category-filter.mjs.map +0 -1
  41. package/dist/components/compound/searches-catalog/column-filter.d.mts +0 -29
  42. package/dist/components/compound/searches-catalog/column-filter.d.mts.map +0 -1
  43. package/dist/components/compound/searches-catalog/column-filter.mjs +0 -64
  44. package/dist/components/compound/searches-catalog/column-filter.mjs.map +0 -1
  45. package/dist/components/compound/searches-catalog/column-filters.d.mts +0 -15
  46. package/dist/components/compound/searches-catalog/column-filters.d.mts.map +0 -1
  47. package/dist/components/compound/searches-catalog/column-filters.mjs +0 -16
  48. package/dist/components/compound/searches-catalog/column-filters.mjs.map +0 -1
  49. package/dist/components/compound/searches-catalog/empty.d.mts +0 -17
  50. package/dist/components/compound/searches-catalog/empty.d.mts.map +0 -1
  51. package/dist/components/compound/searches-catalog/empty.mjs +0 -29
  52. package/dist/components/compound/searches-catalog/empty.mjs.map +0 -1
  53. package/dist/components/compound/searches-catalog/index.d.mts +0 -12
  54. package/dist/components/compound/searches-catalog/list.d.mts +0 -19
  55. package/dist/components/compound/searches-catalog/list.d.mts.map +0 -1
  56. package/dist/components/compound/searches-catalog/list.mjs +0 -33
  57. package/dist/components/compound/searches-catalog/list.mjs.map +0 -1
  58. package/dist/components/compound/searches-catalog/output-field-filter.d.mts +0 -22
  59. package/dist/components/compound/searches-catalog/output-field-filter.d.mts.map +0 -1
  60. package/dist/components/compound/searches-catalog/output-field-filter.mjs +0 -22
  61. package/dist/components/compound/searches-catalog/output-field-filter.mjs.map +0 -1
  62. package/dist/components/compound/searches-catalog/provider-filter.d.mts +0 -22
  63. package/dist/components/compound/searches-catalog/provider-filter.d.mts.map +0 -1
  64. package/dist/components/compound/searches-catalog/provider-filter.mjs +0 -29
  65. package/dist/components/compound/searches-catalog/provider-filter.mjs.map +0 -1
  66. package/dist/components/compound/searches-catalog/root.d.mts +0 -33
  67. package/dist/components/compound/searches-catalog/root.d.mts.map +0 -1
  68. package/dist/components/compound/searches-catalog/root.mjs +0 -74
  69. package/dist/components/compound/searches-catalog/root.mjs.map +0 -1
  70. package/dist/components/compound/searches-catalog/search-filter.d.mts +0 -21
  71. package/dist/components/compound/searches-catalog/search-filter.d.mts.map +0 -1
  72. package/dist/components/compound/searches-catalog/search-filter.mjs +0 -47
  73. package/dist/components/compound/searches-catalog/search-filter.mjs.map +0 -1
  74. package/dist/components/compound/searches-catalog/tag-filter.d.mts +0 -22
  75. package/dist/components/compound/searches-catalog/tag-filter.d.mts.map +0 -1
  76. package/dist/components/compound/searches-catalog/tag-filter.mjs +0 -22
  77. package/dist/components/compound/searches-catalog/tag-filter.mjs.map +0 -1
  78. package/dist/context/searches-catalog-card-context.d.mts +0 -24
  79. package/dist/context/searches-catalog-card-context.d.mts.map +0 -1
  80. package/dist/context/searches-catalog-card-context.mjs +0 -13
  81. package/dist/context/searches-catalog-card-context.mjs.map +0 -1
  82. package/dist/context/searches-catalog-context.d.mts +0 -20
  83. package/dist/context/searches-catalog-context.d.mts.map +0 -1
  84. package/dist/context/searches-catalog-context.mjs +0 -13
  85. package/dist/context/searches-catalog-context.mjs.map +0 -1
  86. package/dist/hooks/use-searches-catalog-table.d.mts +0 -56
  87. package/dist/hooks/use-searches-catalog-table.d.mts.map +0 -1
  88. package/dist/hooks/use-searches-catalog-table.mjs +0 -159
  89. package/dist/hooks/use-searches-catalog-table.mjs.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-searches-catalog-table.mjs","names":[],"sources":["../../src/hooks/use-searches-catalog-table.ts"],"sourcesContent":["import {\n type CatalogFilter,\n filterSearchesEntries,\n getDefaultSearchesOutputFields,\n getInitialSearchesTableData,\n getLoweestSearchesCreditAmount,\n getSearchesSearchTarget,\n getSearchesTableDataAggregates,\n getStartingCostPerSearchesProvider,\n type SearchCategory,\n type SearchesCatalogEntry,\n type SearchesCatalogTableData,\n type SearchesId,\n} from \"@pipe0/base\";\nimport type { ColumnFilter } from \"@tanstack/react-table\";\nimport { useMemo, useState } from \"react\";\nimport type { CostMode, SearchesCardData } from \"../types/catalog-adapters.js\";\nimport { createCatalogColumnHelper, useCatalogTable } from \"./catalog-table.js\";\nimport { useDebounce } from \"./use-debounce.js\";\n\nexport type SearchesOutputFieldEntries = Record<string, SearchesId[]>;\n\nconst columnHelper = createCatalogColumnHelper<SearchesCatalogTableData>();\n\nconst columns = columnHelper.columns([\n columnHelper.accessor(\"searchId\", {\n filterFn: \"includesString\",\n enableGlobalFilter: false,\n }),\n columnHelper.accessor(\"description\", {\n enableGlobalFilter: false,\n }),\n columnHelper.accessor(\"label\", {\n filterFn: \"includesString\",\n enableGlobalFilter: false,\n }),\n columnHelper.accessor((row) => getDefaultSearchesOutputFields(row.searchId) || [], {\n id: \"outputFields\",\n filterFn: \"arrIncludes\",\n enableGlobalFilter: false,\n }),\n columnHelper.accessor((row) => row.tags || [], {\n id: \"tags\",\n filterFn: \"arrIncludes\",\n enableGlobalFilter: false,\n }),\n columnHelper.accessor((row) => row.provider, {\n id: \"providers\",\n enableGlobalFilter: false,\n }),\n // Hidden relevance column — the ONLY globally-filterable one, so the global\n // filter scores each row exactly once and catalogSearchSort can read the\n // score back from this column's filter meta.\n columnHelper.accessor((row) => getSearchesSearchTarget(row), {\n id: \"search\",\n enableGlobalFilter: true,\n enableSorting: true,\n sortFn: \"catalogSearch\",\n }),\n]);\n\nexport function useSearchesCatalogTable(\n config: { initialColumnFilters?: ColumnFilter[]; filter?: CatalogFilter } = {},\n) {\n const [category, setCategory] = useState<SearchCategory | null>(null);\n const { initialColumnFilters = [] as ColumnFilter[], filter } = config;\n\n const initialSearchTableData = useMemo(\n () => filterSearchesEntries(getInitialSearchesTableData(category), filter),\n [category, filter],\n );\n\n // Baseline (config.filter applied, but no category / column / global filter).\n // Drives the stable category-button counts so the row doesn't jump.\n const baselineTableData = useMemo(\n () => filterSearchesEntries(getInitialSearchesTableData(null), filter),\n [filter],\n );\n\n const table = useCatalogTable({\n columns,\n data: initialSearchTableData,\n initialState: { columnFilters: initialColumnFilters },\n });\n\n const columnFilters = table.state.columnFilters;\n\n const aggregates = useMemo(\n () => getSearchesTableDataAggregates(initialSearchTableData, category),\n [category, initialSearchTableData],\n );\n\n const [globalFilterInput, setGlobalFilterInput, setGlobalFilterImmediately] = useDebounce((v) => {\n if (v === table.atoms.globalFilter.get()) return;\n table.setGlobalFilter(v);\n // Relevance order only while a query is active; empty query restores\n // catalog order.\n table.setSorting(v ? [{ id: \"search\", desc: true }] : []);\n if (v) {\n setCategory(null);\n table.setColumnFilters([]);\n }\n });\n\n const addColumnFilter = (\n id: \"inputFields\" | \"outputFields\" | \"tags\" | \"providers\",\n value: string,\n ) => {\n setGlobalFilterImmediately(\"\");\n table.setColumnFilters([{ id, value }]);\n };\n\n const resetFilters = () => {\n setGlobalFilterImmediately(\"\");\n setCategory(null);\n };\n\n const removeColumnFilter = (id: \"inputFields\" | \"outputFields\" | \"tags\" | \"providers\") => {\n table.getColumn(id)?.setFilterValue(null);\n };\n\n const handleCategoryChange = (category: SearchCategory | null) => {\n setCategory(category);\n table.setColumnFilters([]);\n setGlobalFilterImmediately(\"\");\n };\n\n const getColumnFilterValue = (id: \"inputFields\" | \"outputFields\" | \"tags\" | \"providers\") => {\n const res = columnFilters.find((f) => f.id === id)?.value;\n return res as string;\n };\n\n const rows = table.getRowModel().rows;\n const cards = useMemo<SearchesCardData[]>(\n () =>\n rows.map((row) => {\n const entry = row.original;\n const latestEntry = (aggregates.searchEntriesByBaseSearch[entry.baseSearch]?.[0] ??\n entry) as SearchesCatalogEntry & { searchesId: SearchesId };\n return {\n searchesId: latestEntry.searchesId,\n baseSearches: entry.baseSearch,\n label: entry.label,\n description: entry.description,\n provider: entry.provider,\n providers: [entry.provider],\n startingCostPerProvider: getStartingCostPerSearchesProvider(latestEntry.searchesId),\n startingCreditAmount: getLoweestSearchesCreditAmount(latestEntry),\n costMode: latestEntry.cost.mode as CostMode,\n defaultOutputFields: getDefaultSearchesOutputFields(latestEntry.searchesId),\n docPath: latestEntry.docPath,\n entry: entry as SearchesCatalogTableData,\n latestEntry,\n };\n }),\n [rows, aggregates.searchEntriesByBaseSearch],\n );\n\n const cardsByCategory = useMemo<{ category: SearchCategory; cards: SearchesCardData[] }[]>(() => {\n const groups = new Map<SearchCategory, SearchesCardData[]>();\n for (const card of cards) {\n const cats = (card.entry.categories ?? []) as SearchCategory[];\n for (const cat of cats) {\n const arr = groups.get(cat);\n if (arr) arr.push(card);\n else groups.set(cat, [card]);\n }\n }\n return Array.from(groups, ([category, group]) => ({\n category,\n cards: group,\n }));\n }, [cards]);\n\n const categoryCounts = useMemo<Partial<Record<SearchCategory, number>>>(() => {\n const counts: Partial<Record<SearchCategory, number>> = {};\n for (const card of cards) {\n const cats = (card.entry.categories ?? []) as SearchCategory[];\n for (const cat of cats) {\n counts[cat] = (counts[cat] ?? 0) + 1;\n }\n }\n return counts;\n }, [cards]);\n\n // Stable counts based on the baseline (no category / column / global filter\n // applied).\n const baselineCardCount = baselineTableData.length;\n const baselineCategoryCounts = useMemo<Partial<Record<SearchCategory, number>>>(() => {\n const counts: Partial<Record<SearchCategory, number>> = {};\n for (const entry of baselineTableData) {\n const cats = (entry.categories ?? []) as SearchCategory[];\n for (const cat of cats) {\n counts[cat] = (counts[cat] ?? 0) + 1;\n }\n }\n return counts;\n }, [baselineTableData]);\n\n return {\n table,\n cards,\n cardsByCategory,\n categoryCounts,\n baselineCardCount,\n baselineCategoryCounts,\n\n category,\n setCategory: handleCategoryChange,\n globalFilterInput,\n setGlobalFilterInput,\n\n addColumnFilter,\n removeColumnFilter,\n resetFilters,\n getColumnFilterValue,\n\n sortedOutputFieldEntries: aggregates.sortedOutputFieldEntries,\n sortedTagEntries: aggregates.sortedTagEntries,\n sortedProviderEntries: aggregates.sortedProviderEntries,\n\n searchIdsByOutputField: aggregates.searchIdsByOutputField,\n searchIdsByProvider: aggregates.searchIdsByProvider,\n searchIdsByTag: aggregates.searchIdsByTag,\n };\n}\n\nexport type UseSearchesCatalogTableReturn = ReturnType<typeof useSearchesCatalogTable>;\n"],"mappings":"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"}