periplo-ui 3.47.0 → 3.48.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.
@@ -63,7 +63,7 @@ declare const BreadcrumbEllipsis: {
63
63
  */
64
64
  declare const NavigationBreadcrumb: ({ pathname, pathMappings, translation, basePath, textTransform, endSlash, }: {
65
65
  pathname: string;
66
- pathMappings?: Record<string, string>;
66
+ pathMappings?: Record<string, string | null>;
67
67
  translation?: (key: string) => string;
68
68
  basePath?: string;
69
69
  textTransform?: TextTransformOption;
@@ -97,8 +97,11 @@ const getRoutes = (pathname, pathMappings, translation, basePath) => {
97
97
  }
98
98
  const baseRoutes = processedPathname.split("/").filter(Boolean);
99
99
  const routes = baseRoutes.map((route, index) => {
100
+ if (pathMappings && route in pathMappings && pathMappings[route] === null) {
101
+ return null;
102
+ }
100
103
  let displayName = route;
101
- if (pathMappings && pathMappings[route]) {
104
+ if (pathMappings && pathMappings[route] != null) {
102
105
  displayName = pathMappings[route];
103
106
  } else if (translation) {
104
107
  const translationKey = routeToTranslationKey(route);
@@ -115,12 +118,14 @@ const getRoutes = (pathname, pathMappings, translation, basePath) => {
115
118
  };
116
119
  });
117
120
  const homeKey = "home";
118
- const homeHref = basePath ?? "/";
119
- routes.unshift({
120
- name: pathMappings?.[homeKey] ?? translation?.(homeKey) ?? "Home",
121
- href: homeHref
122
- });
123
- return routes;
121
+ if (!(pathMappings && homeKey in pathMappings && pathMappings[homeKey] === null)) {
122
+ const homeHref = basePath ?? "/";
123
+ routes.unshift({
124
+ name: pathMappings?.[homeKey] ?? translation?.(homeKey) ?? "Home",
125
+ href: homeHref
126
+ });
127
+ }
128
+ return routes.filter(Boolean);
124
129
  };
125
130
  const NavigationBreadcrumb = ({
126
131
  pathname,
@@ -1 +1 @@
1
- {"version":3,"file":"Breadcrumb.js","sources":["../../../src/components/Breadcrumb/Breadcrumb.tsx"],"sourcesContent":["import { CaretRight, DotsThree } from '@phosphor-icons/react'\nimport { Slot } from '@radix-ui/react-slot'\nimport * as React from 'react'\n\nimport { Typography } from '../Typography'\n\nimport { cn } from '@/lib/utils'\n\n/**\n * Root container for the breadcrumb navigation.\n * Provides the overall context and ARIA labeling.\n */\nconst BreadcrumbRoot = React.forwardRef<\n HTMLElement,\n React.ComponentPropsWithoutRef<'nav'> & {\n /** Custom separator element to use between breadcrumb items */\n separator?: React.ReactNode\n }\n>(({ ...props }, ref) => <nav ref={ref} aria-label=\"breadcrumb\" {...props} />)\nBreadcrumbRoot.displayName = 'BreadcrumbRoot'\n\n/**\n * Container for breadcrumb items.\n * Handles layout and spacing of the breadcrumb navigation.\n */\nconst BreadcrumbList = React.forwardRef<HTMLOListElement, React.ComponentPropsWithoutRef<'ol'>>(\n ({ className, ...props }, ref) => (\n <ol\n ref={ref}\n className={cn(\n 'text-muted-foreground flex flex-wrap items-center gap-1.5 text-sm break-words sm:gap-2.5',\n className,\n )}\n {...props}\n />\n ),\n)\nBreadcrumbList.displayName = 'BreadcrumbList'\n\n/**\n * Individual breadcrumb item container.\n * Wraps a link or the current page indicator.\n */\nconst BreadcrumbItem = React.forwardRef<HTMLLIElement, React.ComponentPropsWithoutRef<'li'>>(\n ({ className, ...props }, ref) => (\n <li ref={ref} className={cn('inline-flex items-center gap-1.5', className)} {...props} />\n ),\n)\nBreadcrumbItem.displayName = 'BreadcrumbItem'\n\n/** Text transform options for breadcrumb links */\ntype TextTransformOption = 'capitalize' | 'capitalize-first' | 'uppercase' | 'none'\n\n/** Get class names for text transform styling */\nconst getTextTransformClass = (transform: TextTransformOption): string => {\n switch (transform) {\n case 'capitalize-first':\n return '[&]:has-[::first-letter]:uppercase'\n case 'capitalize':\n return 'capitalize'\n case 'uppercase':\n return 'uppercase'\n default:\n return ''\n }\n}\n\n/**\n * Interactive link element for breadcrumb navigation.\n * Can be rendered as a custom element using asChild.\n */\nconst BreadcrumbLink = React.forwardRef<\n HTMLAnchorElement,\n React.ComponentPropsWithoutRef<'a'> & {\n /** When true, the component will render its children directly instead of wrapping them in an anchor tag */\n asChild?: boolean\n /** The text transformation to apply to the link text */\n textTransform?: TextTransformOption\n }\n>(({ asChild, className, textTransform = 'capitalize-first', children, ...props }, ref) => {\n const Comp = asChild ? Slot : 'a'\n\n // Simplify the capitalization logic using a direct string transformation\n const content =\n textTransform === 'capitalize-first' && typeof children === 'string'\n ? children.charAt(0).toUpperCase() + children.slice(1)\n : children\n\n return (\n <Typography variant=\"title-sm\" weight={'medium'}>\n <Comp\n ref={ref}\n className={cn(\n 'text-neutral-500 transition-colors hover:text-neutral-950',\n textTransform !== 'capitalize-first' && getTextTransformClass(textTransform),\n className,\n )}\n {...props}\n >\n {content}\n </Comp>\n </Typography>\n )\n})\nBreadcrumbLink.displayName = 'BreadcrumbLink'\n\n/**\n * Current page indicator in the breadcrumb.\n * Non-interactive element showing the current location.\n */\nconst BreadcrumbPage = React.forwardRef<\n HTMLSpanElement,\n React.ComponentPropsWithoutRef<'span'> & {\n textTransform?: TextTransformOption\n }\n>(({ className, textTransform = 'capitalize-first', children, ...props }, ref) => {\n const content =\n textTransform === 'capitalize-first' && typeof children === 'string'\n ? children.charAt(0).toUpperCase() + children.slice(1)\n : children\n\n return (\n <Typography variant=\"title-sm\">\n <span\n ref={ref}\n aria-disabled=\"true\"\n aria-current=\"page\"\n className={cn(\n 'font-medium text-neutral-950',\n textTransform !== 'capitalize-first' && getTextTransformClass(textTransform),\n className,\n )}\n {...props}\n >\n {content}\n </span>\n </Typography>\n )\n})\nBreadcrumbPage.displayName = 'BreadcrumbPage'\n\n/**\n * Separator element between breadcrumb items.\n * Can be customized with different icons or characters.\n */\nconst BreadcrumbSeparator = ({ children, className, ...props }: React.ComponentProps<'span'>) => (\n <span aria-hidden=\"true\" className={cn('text-neutral-500 [&>svg]:size-3.5', className)} {...props}>\n {children ?? <CaretRight />}\n </span>\n)\nBreadcrumbSeparator.displayName = 'BreadcrumbSeparator'\n\n/**\n * Ellipsis indicator for truncated breadcrumb paths.\n * Used to show that there are hidden items in the path.\n */\nconst BreadcrumbEllipsis = ({ className, ...props }: React.ComponentProps<'span'>) => (\n <span aria-hidden=\"true\" className={cn('flex h-9 w-9 items-center justify-center', className)} {...props}>\n <DotsThree className=\"h-4 w-4\" />\n <span className=\"sr-only\">More</span>\n </span>\n)\nBreadcrumbEllipsis.displayName = 'BreadcrumbEllipsis'\n\n/**\n * Sanitizes a route string by replacing hyphens with spaces.\n * @param route - The route string to sanitize.\n * @returns The sanitized route string.\n */\nconst sanitizeRoute = (route: string) => {\n return route.replace(/-/g, ' ')\n}\n\n/**\n * Transforms a kebab-case route to a camelCase translation key\n * @param route - The route segment in kebab-case\n * @returns The translation key in camelCase\n */\nconst routeToTranslationKey = (route: string): string => {\n return route\n .split('-')\n .map((word, index) => (index === 0 ? word : word.charAt(0).toUpperCase() + word.slice(1)))\n .join('')\n}\n\n/**\n * Gets the routes for the breadcrumb navigation.\n * @param pathname - The current pathname.\n * @param pathMappings - Optional object containing custom path mappings.\n * @param translation - Optional translation function.\n * @param basePath - Optional base path to strip from pathname and use as home route.\n * @returns The routes for the breadcrumb navigation.\n */\nconst getRoutes = (\n pathname: string,\n pathMappings?: Record<string, string>,\n translation?: (key: string) => string,\n basePath?: string,\n) => {\n // Strip the base path from pathname if it exists\n let processedPathname = pathname\n if (basePath && pathname.startsWith(basePath)) {\n processedPathname = pathname.slice(basePath.length)\n // Ensure we don't start with a slash after stripping\n if (processedPathname.startsWith('/')) {\n processedPathname = processedPathname.slice(1)\n }\n }\n\n const baseRoutes = processedPathname.split('/').filter(Boolean)\n\n const routes = baseRoutes.map((route, index) => {\n let displayName = route\n\n // Check if there's a custom mapping for this route\n if (pathMappings && pathMappings[route]) {\n displayName = pathMappings[route]\n }\n // If there's a translation function, convert route to translation key\n else if (translation) {\n const translationKey = routeToTranslationKey(route)\n displayName = translation(translationKey)\n }\n // If no mapping or translation function, sanitize the route\n else {\n displayName = sanitizeRoute(route)\n }\n\n const routeSegments = baseRoutes.slice(0, index + 1)\n const routePath = routeSegments.join('/')\n const fullHref = basePath ? `${basePath}/${routePath}` : `/${routePath}`\n\n return {\n name: displayName,\n href: fullHref,\n }\n })\n\n // Handle home translation\n const homeKey = 'home'\n const homeHref = basePath ?? '/'\n routes.unshift({\n name: pathMappings?.[homeKey] ?? translation?.(homeKey) ?? 'Home',\n href: homeHref,\n })\n\n return routes\n}\n\n/**\n * Navigation breadcrumb component.\n * Displays a breadcrumb navigation for the current path.\n * @param pathname - The current pathname\n * @param pathMappings - Optional object containing custom path mappings\n * @param translation - Optional translation function\n * @param basePath - Optional base path to strip from pathname and use as home route\n * @param textTransform - Optional text transformation to apply to breadcrumb text\n */\nconst NavigationBreadcrumb = ({\n pathname,\n pathMappings,\n translation,\n basePath,\n textTransform,\n endSlash = true,\n}: {\n pathname: string\n pathMappings?: Record<string, string>\n translation?: (key: string) => string\n basePath?: string\n textTransform?: TextTransformOption\n endSlash?: boolean\n}) => {\n return (\n <BreadcrumbRoot>\n <BreadcrumbList>\n {getRoutes(pathname, pathMappings, translation, basePath).map((route, index, array) => (\n <React.Fragment key={index}>\n <BreadcrumbItem>\n {index === array.length - 1 ? (\n <BreadcrumbPage textTransform={textTransform}>{route.name}</BreadcrumbPage>\n ) : (\n <BreadcrumbLink href={route.href + (endSlash ? '/' : '')} textTransform={textTransform}>\n {route.name}\n </BreadcrumbLink>\n )}\n </BreadcrumbItem>\n {index < array.length - 1 && <BreadcrumbSeparator />}\n </React.Fragment>\n ))}\n </BreadcrumbList>\n </BreadcrumbRoot>\n )\n}\n\nconst PagesBreadcrumb = ({\n pages,\n currentPage,\n}: {\n pages: Array<{ link: string; text: string }>\n currentPage: string\n}) => {\n return (\n <BreadcrumbRoot>\n <BreadcrumbList>\n {pages.map((page) => (\n <BreadcrumbItem key={pages.indexOf(page)}>\n <BreadcrumbLink href={page.link}>{page.text}</BreadcrumbLink>\n <BreadcrumbSeparator />\n </BreadcrumbItem>\n ))}\n <BreadcrumbItem>\n <BreadcrumbPage>{currentPage}</BreadcrumbPage>\n </BreadcrumbItem>\n </BreadcrumbList>\n </BreadcrumbRoot>\n )\n}\n\nexport {\n BreadcrumbRoot,\n BreadcrumbList,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbPage,\n BreadcrumbSeparator,\n BreadcrumbEllipsis,\n NavigationBreadcrumb,\n PagesBreadcrumb,\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Breadcrumb.js","sources":["../../../src/components/Breadcrumb/Breadcrumb.tsx"],"sourcesContent":["import { CaretRight, DotsThree } from '@phosphor-icons/react'\nimport { Slot } from '@radix-ui/react-slot'\nimport * as React from 'react'\n\nimport { Typography } from '../Typography'\n\nimport { cn } from '@/lib/utils'\n\n/**\n * Root container for the breadcrumb navigation.\n * Provides the overall context and ARIA labeling.\n */\nconst BreadcrumbRoot = React.forwardRef<\n HTMLElement,\n React.ComponentPropsWithoutRef<'nav'> & {\n /** Custom separator element to use between breadcrumb items */\n separator?: React.ReactNode\n }\n>(({ ...props }, ref) => <nav ref={ref} aria-label=\"breadcrumb\" {...props} />)\nBreadcrumbRoot.displayName = 'BreadcrumbRoot'\n\n/**\n * Container for breadcrumb items.\n * Handles layout and spacing of the breadcrumb navigation.\n */\nconst BreadcrumbList = React.forwardRef<HTMLOListElement, React.ComponentPropsWithoutRef<'ol'>>(\n ({ className, ...props }, ref) => (\n <ol\n ref={ref}\n className={cn(\n 'text-muted-foreground flex flex-wrap items-center gap-1.5 text-sm break-words sm:gap-2.5',\n className,\n )}\n {...props}\n />\n ),\n)\nBreadcrumbList.displayName = 'BreadcrumbList'\n\n/**\n * Individual breadcrumb item container.\n * Wraps a link or the current page indicator.\n */\nconst BreadcrumbItem = React.forwardRef<HTMLLIElement, React.ComponentPropsWithoutRef<'li'>>(\n ({ className, ...props }, ref) => (\n <li ref={ref} className={cn('inline-flex items-center gap-1.5', className)} {...props} />\n ),\n)\nBreadcrumbItem.displayName = 'BreadcrumbItem'\n\n/** Text transform options for breadcrumb links */\ntype TextTransformOption = 'capitalize' | 'capitalize-first' | 'uppercase' | 'none'\n\n/** Get class names for text transform styling */\nconst getTextTransformClass = (transform: TextTransformOption): string => {\n switch (transform) {\n case 'capitalize-first':\n return '[&]:has-[::first-letter]:uppercase'\n case 'capitalize':\n return 'capitalize'\n case 'uppercase':\n return 'uppercase'\n default:\n return ''\n }\n}\n\n/**\n * Interactive link element for breadcrumb navigation.\n * Can be rendered as a custom element using asChild.\n */\nconst BreadcrumbLink = React.forwardRef<\n HTMLAnchorElement,\n React.ComponentPropsWithoutRef<'a'> & {\n /** When true, the component will render its children directly instead of wrapping them in an anchor tag */\n asChild?: boolean\n /** The text transformation to apply to the link text */\n textTransform?: TextTransformOption\n }\n>(({ asChild, className, textTransform = 'capitalize-first', children, ...props }, ref) => {\n const Comp = asChild ? Slot : 'a'\n\n // Simplify the capitalization logic using a direct string transformation\n const content =\n textTransform === 'capitalize-first' && typeof children === 'string'\n ? children.charAt(0).toUpperCase() + children.slice(1)\n : children\n\n return (\n <Typography variant=\"title-sm\" weight={'medium'}>\n <Comp\n ref={ref}\n className={cn(\n 'text-neutral-500 transition-colors hover:text-neutral-950',\n textTransform !== 'capitalize-first' && getTextTransformClass(textTransform),\n className,\n )}\n {...props}\n >\n {content}\n </Comp>\n </Typography>\n )\n})\nBreadcrumbLink.displayName = 'BreadcrumbLink'\n\n/**\n * Current page indicator in the breadcrumb.\n * Non-interactive element showing the current location.\n */\nconst BreadcrumbPage = React.forwardRef<\n HTMLSpanElement,\n React.ComponentPropsWithoutRef<'span'> & {\n textTransform?: TextTransformOption\n }\n>(({ className, textTransform = 'capitalize-first', children, ...props }, ref) => {\n const content =\n textTransform === 'capitalize-first' && typeof children === 'string'\n ? children.charAt(0).toUpperCase() + children.slice(1)\n : children\n\n return (\n <Typography variant=\"title-sm\">\n <span\n ref={ref}\n aria-disabled=\"true\"\n aria-current=\"page\"\n className={cn(\n 'font-medium text-neutral-950',\n textTransform !== 'capitalize-first' && getTextTransformClass(textTransform),\n className,\n )}\n {...props}\n >\n {content}\n </span>\n </Typography>\n )\n})\nBreadcrumbPage.displayName = 'BreadcrumbPage'\n\n/**\n * Separator element between breadcrumb items.\n * Can be customized with different icons or characters.\n */\nconst BreadcrumbSeparator = ({ children, className, ...props }: React.ComponentProps<'span'>) => (\n <span aria-hidden=\"true\" className={cn('text-neutral-500 [&>svg]:size-3.5', className)} {...props}>\n {children ?? <CaretRight />}\n </span>\n)\nBreadcrumbSeparator.displayName = 'BreadcrumbSeparator'\n\n/**\n * Ellipsis indicator for truncated breadcrumb paths.\n * Used to show that there are hidden items in the path.\n */\nconst BreadcrumbEllipsis = ({ className, ...props }: React.ComponentProps<'span'>) => (\n <span aria-hidden=\"true\" className={cn('flex h-9 w-9 items-center justify-center', className)} {...props}>\n <DotsThree className=\"h-4 w-4\" />\n <span className=\"sr-only\">More</span>\n </span>\n)\nBreadcrumbEllipsis.displayName = 'BreadcrumbEllipsis'\n\n/**\n * Sanitizes a route string by replacing hyphens with spaces.\n * @param route - The route string to sanitize.\n * @returns The sanitized route string.\n */\nconst sanitizeRoute = (route: string) => {\n return route.replace(/-/g, ' ')\n}\n\n/**\n * Transforms a kebab-case route to a camelCase translation key\n * @param route - The route segment in kebab-case\n * @returns The translation key in camelCase\n */\nconst routeToTranslationKey = (route: string): string => {\n return route\n .split('-')\n .map((word, index) => (index === 0 ? word : word.charAt(0).toUpperCase() + word.slice(1)))\n .join('')\n}\n\n/**\n * Gets the routes for the breadcrumb navigation.\n * @param pathname - The current pathname.\n * @param pathMappings - Optional object containing custom path mappings.\n * @param translation - Optional translation function.\n * @param basePath - Optional base path to strip from pathname and use as home route.\n * @returns The routes for the breadcrumb navigation.\n */\nconst getRoutes = (\n pathname: string,\n pathMappings?: Record<string, string | null>,\n translation?: (key: string) => string,\n basePath?: string,\n) => {\n // Strip the base path from pathname if it exists\n let processedPathname = pathname\n if (basePath && pathname.startsWith(basePath)) {\n processedPathname = pathname.slice(basePath.length)\n // Ensure we don't start with a slash after stripping\n if (processedPathname.startsWith('/')) {\n processedPathname = processedPathname.slice(1)\n }\n }\n\n const baseRoutes = processedPathname.split('/').filter(Boolean)\n\n const routes = baseRoutes.map((route, index) => {\n if (pathMappings && route in pathMappings && pathMappings[route] === null) {\n return null\n }\n\n let displayName = route\n\n // Check if there's a custom mapping for this route\n if (pathMappings && pathMappings[route] != null) {\n displayName = pathMappings[route]\n }\n // If there's a translation function, convert route to translation key\n else if (translation) {\n const translationKey = routeToTranslationKey(route)\n displayName = translation(translationKey)\n }\n // If no mapping or translation function, sanitize the route\n else {\n displayName = sanitizeRoute(route)\n }\n\n const routeSegments = baseRoutes.slice(0, index + 1)\n const routePath = routeSegments.join('/')\n const fullHref = basePath ? `${basePath}/${routePath}` : `/${routePath}`\n\n return {\n name: displayName,\n href: fullHref,\n }\n })\n\n // Handle home translation — hide if mapped to null\n const homeKey = 'home'\n if (!(pathMappings && homeKey in pathMappings && pathMappings[homeKey] === null)) {\n const homeHref = basePath ?? '/'\n routes.unshift({\n name: pathMappings?.[homeKey] ?? translation?.(homeKey) ?? 'Home',\n href: homeHref,\n })\n }\n\n return routes.filter(Boolean) as Array<{ name: string; href: string }>\n}\n\n/**\n * Navigation breadcrumb component.\n * Displays a breadcrumb navigation for the current path.\n * @param pathname - The current pathname\n * @param pathMappings - Optional object containing custom path mappings\n * @param translation - Optional translation function\n * @param basePath - Optional base path to strip from pathname and use as home route\n * @param textTransform - Optional text transformation to apply to breadcrumb text\n */\nconst NavigationBreadcrumb = ({\n pathname,\n pathMappings,\n translation,\n basePath,\n textTransform,\n endSlash = true,\n}: {\n pathname: string\n pathMappings?: Record<string, string | null>\n translation?: (key: string) => string\n basePath?: string\n textTransform?: TextTransformOption\n endSlash?: boolean\n}) => {\n return (\n <BreadcrumbRoot>\n <BreadcrumbList>\n {getRoutes(pathname, pathMappings, translation, basePath).map((route, index, array) => (\n <React.Fragment key={index}>\n <BreadcrumbItem>\n {index === array.length - 1 ? (\n <BreadcrumbPage textTransform={textTransform}>{route.name}</BreadcrumbPage>\n ) : (\n <BreadcrumbLink href={route.href + (endSlash ? '/' : '')} textTransform={textTransform}>\n {route.name}\n </BreadcrumbLink>\n )}\n </BreadcrumbItem>\n {index < array.length - 1 && <BreadcrumbSeparator />}\n </React.Fragment>\n ))}\n </BreadcrumbList>\n </BreadcrumbRoot>\n )\n}\n\nconst PagesBreadcrumb = ({\n pages,\n currentPage,\n}: {\n pages: Array<{ link: string; text: string }>\n currentPage: string\n}) => {\n return (\n <BreadcrumbRoot>\n <BreadcrumbList>\n {pages.map((page) => (\n <BreadcrumbItem key={pages.indexOf(page)}>\n <BreadcrumbLink href={page.link}>{page.text}</BreadcrumbLink>\n <BreadcrumbSeparator />\n </BreadcrumbItem>\n ))}\n <BreadcrumbItem>\n <BreadcrumbPage>{currentPage}</BreadcrumbPage>\n </BreadcrumbItem>\n </BreadcrumbList>\n </BreadcrumbRoot>\n )\n}\n\nexport {\n BreadcrumbRoot,\n BreadcrumbList,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbPage,\n BreadcrumbSeparator,\n BreadcrumbEllipsis,\n NavigationBreadcrumb,\n PagesBreadcrumb,\n}\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "periplo-ui",
3
3
  "description": "IATI UI library",
4
4
  "private": false,
5
- "version": "3.47.0",
5
+ "version": "3.48.0",
6
6
  "type": "module",
7
7
  "main": "dist/index.js",
8
8
  "types": "dist/index.d.ts",