@inzumer/ui-library 1.5.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/dist/{chunk-BKPP4D3Q.js → chunk-27HTTVFO.js} +2 -2
  2. package/dist/{chunk-BKPP4D3Q.js.map → chunk-27HTTVFO.js.map} +1 -1
  3. package/dist/chunk-4TPQTZSR.js +76 -0
  4. package/dist/chunk-4TPQTZSR.js.map +1 -0
  5. package/dist/{chunk-D4I5OF3C.js → chunk-5LKLTY55.js} +2 -2
  6. package/dist/{chunk-D4I5OF3C.js.map → chunk-5LKLTY55.js.map} +1 -1
  7. package/dist/{chunk-YYNW2PXL.js → chunk-DIA7L6IA.js} +3 -3
  8. package/dist/{chunk-YYNW2PXL.js.map → chunk-DIA7L6IA.js.map} +1 -1
  9. package/dist/{chunk-DP274HDM.js → chunk-IY452YEX.js} +14 -4
  10. package/dist/chunk-IY452YEX.js.map +1 -0
  11. package/dist/{chunk-4CY55XM3.js → chunk-J7X6NLSR.js} +29 -11
  12. package/dist/chunk-J7X6NLSR.js.map +1 -0
  13. package/dist/{chunk-5IHM2545.js → chunk-KAU7S3D4.js} +2 -2
  14. package/dist/{chunk-5IHM2545.js.map → chunk-KAU7S3D4.js.map} +1 -1
  15. package/dist/{chunk-ZABQF65Z.js → chunk-KSNAVEJP.js} +3 -3
  16. package/dist/{chunk-ZABQF65Z.js.map → chunk-KSNAVEJP.js.map} +1 -1
  17. package/dist/chunk-LLJXVAR6.js +184 -0
  18. package/dist/chunk-LLJXVAR6.js.map +1 -0
  19. package/dist/{chunk-7HQFLM4A.js → chunk-NA7YKEO4.js} +2 -2
  20. package/dist/{chunk-7HQFLM4A.js.map → chunk-NA7YKEO4.js.map} +1 -1
  21. package/dist/{chunk-L4BPQAXU.js → chunk-NTXFFBL6.js} +3 -3
  22. package/dist/{chunk-L4BPQAXU.js.map → chunk-NTXFFBL6.js.map} +1 -1
  23. package/dist/{chunk-P4CV2EPR.js → chunk-SPDOYFCU.js} +2 -2
  24. package/dist/{chunk-P4CV2EPR.js.map → chunk-SPDOYFCU.js.map} +1 -1
  25. package/dist/{chunk-42G4RRCZ.js → chunk-TO3FF6FR.js} +3 -3
  26. package/dist/{chunk-42G4RRCZ.js.map → chunk-TO3FF6FR.js.map} +1 -1
  27. package/dist/{chunk-UL33H4AD.js → chunk-TRLFK626.js} +24 -4
  28. package/dist/chunk-TRLFK626.js.map +1 -0
  29. package/dist/{chunk-3YRDRHO3.js → chunk-UUW7L2AV.js} +3 -3
  30. package/dist/{chunk-3YRDRHO3.js.map → chunk-UUW7L2AV.js.map} +1 -1
  31. package/dist/{chunk-PE6XEC7Y.js → chunk-VCJN4FS2.js} +4 -4
  32. package/dist/{chunk-PE6XEC7Y.js.map → chunk-VCJN4FS2.js.map} +1 -1
  33. package/dist/chunk-VK24YOIC.js +184 -0
  34. package/dist/chunk-VK24YOIC.js.map +1 -0
  35. package/dist/{chunk-BGUNAALU.js → chunk-XUGSIK2P.js} +3 -3
  36. package/dist/{chunk-BGUNAALU.js.map → chunk-XUGSIK2P.js.map} +1 -1
  37. package/dist/{chunk-N5CLCKR3.js → chunk-ZH2EDGW6.js} +3 -3
  38. package/dist/{chunk-N5CLCKR3.js.map → chunk-ZH2EDGW6.js.map} +1 -1
  39. package/dist/components/atoms/Icon/index.js +1 -1
  40. package/dist/components/atoms/Image/index.js +1 -1
  41. package/dist/components/atoms/Input/index.js +2 -2
  42. package/dist/components/atoms/Link/index.js +1 -1
  43. package/dist/components/atoms/RichText/index.js +1 -1
  44. package/dist/components/atoms/Select/index.js +2 -2
  45. package/dist/components/atoms/Switch/index.js +2 -2
  46. package/dist/components/atoms/Textarea/index.js +2 -2
  47. package/dist/components/molecules/BottomSheet/index.js +2 -2
  48. package/dist/components/molecules/Breadcrumbs/index.js +3 -3
  49. package/dist/components/molecules/Card/index.js +2 -2
  50. package/dist/components/molecules/Carousel/index.d.ts +61 -0
  51. package/dist/components/molecules/{CookieBanner → Carousel}/index.js +2 -2
  52. package/dist/components/molecules/Drawer/index.js +2 -2
  53. package/dist/components/molecules/Dropdown/index.js +2 -2
  54. package/dist/components/molecules/MediaCard/index.d.ts +56 -0
  55. package/dist/components/molecules/MediaCard/index.js +6 -0
  56. package/dist/components/molecules/Modal/index.d.ts +4 -0
  57. package/dist/components/molecules/Modal/index.js +2 -2
  58. package/dist/components/molecules/Snackbar/index.js +1 -1
  59. package/dist/components/molecules/Timeline/index.d.ts +7 -0
  60. package/dist/components/molecules/Timeline/index.js +3 -2
  61. package/dist/components/organisms/CookieConsent/index.d.ts +59 -0
  62. package/dist/components/{molecules/CookiePreferences → organisms/CookieConsent}/index.js +4 -4
  63. package/dist/components/organisms/CookieConsent/index.js.map +1 -0
  64. package/dist/index.d.ts +3 -2
  65. package/dist/index.js +20 -19
  66. package/package.json +13 -9
  67. package/dist/chunk-4CY55XM3.js.map +0 -1
  68. package/dist/chunk-DP274HDM.js.map +0 -1
  69. package/dist/chunk-LSWJBAM6.js +0 -79
  70. package/dist/chunk-LSWJBAM6.js.map +0 -1
  71. package/dist/chunk-TR7XKJCO.js +0 -85
  72. package/dist/chunk-TR7XKJCO.js.map +0 -1
  73. package/dist/chunk-UL33H4AD.js.map +0 -1
  74. package/dist/components/molecules/CookieBanner/index.d.ts +0 -46
  75. package/dist/components/molecules/CookiePreferences/index.d.ts +0 -34
  76. /package/dist/components/molecules/{CookieBanner → Carousel}/index.js.map +0 -0
  77. /package/dist/components/molecules/{CookiePreferences → MediaCard}/index.js.map +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/molecules/Dropdown/Dropdown.styles.ts","../src/components/molecules/Dropdown/Dropdown.tsx"],"names":[],"mappings":"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","file":"chunk-BGUNAALU.js","sourcesContent":["import { cva } from 'class-variance-authority';\n\nexport const dropdownTriggerStyles = 'items-center text-left';\n\nexport const dropdownValueStyles = 'truncate';\n\nexport const dropdownChevronStyles = 'transition-transform duration-150 ease-out';\n\nexport const dropdownListStyles = [\n 'absolute left-0 right-0 top-full z-50 mt-1 max-h-60 overflow-y-auto p-1',\n 'rounded-md border border-[var(--input-border)] bg-[var(--input-bg)] shadow-lg',\n 'focus:outline-none',\n].join(' ');\n\nexport const dropdownOptionStyles = cva(\n 'flex min-h-10 cursor-pointer items-center justify-between gap-3 rounded px-3 text-[var(--input-text)]',\n {\n variants: {\n active: {\n true: 'bg-[var(--btn-primary-bg)] text-[var(--btn-primary-text)]',\n false: '',\n },\n selected: {\n true: 'font-semibold',\n false: '',\n },\n },\n defaultVariants: {\n active: false,\n selected: false,\n },\n },\n);\n\nexport const dropdownCheckStyles = 'size-4 shrink-0';\n","import { RichText } from '@components';\nimport { useDismissableLayer } from '@hooks';\nimport { cn } from '@utils';\nimport type { VariantProps } from 'class-variance-authority';\nimport {\n forwardRef,\n useCallback,\n useEffect,\n useId,\n useRef,\n useState,\n type KeyboardEvent,\n} from 'react';\nimport {\n inputErrorStyles,\n inputHintStyles,\n inputLabelStyles,\n} from '@components/atoms/Input/Input.styles';\nimport { selectChevronStyles, selectStyles } from '@components/atoms/Select/Select.styles';\nimport {\n dropdownCheckStyles,\n dropdownChevronStyles,\n dropdownListStyles,\n dropdownOptionStyles,\n dropdownTriggerStyles,\n dropdownValueStyles,\n} from './Dropdown.styles';\n\nexport interface DropdownOption {\n value: string;\n label: string;\n}\n\nexport type DropdownProps = VariantProps<typeof selectStyles> & {\n label: string;\n options: DropdownOption[];\n value: string;\n onChange: (value: string) => void;\n hint?: string;\n error?: string;\n disabled?: boolean;\n id?: string;\n name?: string;\n className?: string;\n};\n\n/**\n * A select whose list is drawn with the theme (a native `<select>` opens the platform picker).\n * WAI-ARIA \"select-only combobox\": focus stays on the trigger and the active option is announced\n * through `aria-activedescendant`; arrows, Home/End, Enter/Space, Escape and typing a letter behave\n * like a native select.\n */\nexport const Dropdown = forwardRef<HTMLButtonElement, DropdownProps>(\n (\n {\n label,\n options,\n value,\n onChange,\n hint,\n error,\n disabled,\n id: idProp,\n name,\n inputSize,\n state,\n className,\n },\n ref,\n ) => {\n const generatedId = useId();\n const id = idProp ?? generatedId;\n const labelId = `${id}-label`;\n const listId = `${id}-listbox`;\n const containerRef = useRef<HTMLDivElement>(null);\n const listRef = useRef<HTMLUListElement>(null);\n const [open, setOpen] = useState(false);\n const selectedIndex = Math.max(\n 0,\n options.findIndex((option) => option.value === value),\n );\n const [activeIndex, setActiveIndex] = useState(selectedIndex);\n const last = options.length - 1;\n const resolvedState = error ? 'error' : state;\n\n const close = useCallback(() => setOpen(false), []);\n useDismissableLayer(open, close, containerRef);\n\n useEffect(() => {\n if (open) {\n listRef.current?.children[activeIndex]?.scrollIntoView?.({ block: 'nearest' });\n }\n }, [open, activeIndex]);\n\n const openAt = (index: number) => {\n setActiveIndex(index);\n setOpen(true);\n };\n\n const choose = (index: number) => {\n const option = options[index];\n if (option && option.value !== value) {\n onChange(option.value);\n }\n setOpen(false);\n };\n\n const indexForLetter = (key: string) => {\n const start = (open ? activeIndex : selectedIndex) + 1;\n const ordered = [...options.slice(start), ...options.slice(0, start)];\n const match = ordered.find((option) =>\n option.label.toLowerCase().startsWith(key.toLowerCase()),\n );\n return match ? options.indexOf(match) : -1;\n };\n\n const openKeys: Record<string, () => void> = {\n ArrowDown: () => setActiveIndex((index) => Math.min(last, index + 1)),\n ArrowUp: () => setActiveIndex((index) => Math.max(0, index - 1)),\n Home: () => setActiveIndex(0),\n End: () => setActiveIndex(last),\n Enter: () => choose(activeIndex),\n ' ': () => choose(activeIndex),\n Escape: close,\n };\n\n const closedKeys: Record<string, () => void> = {\n ArrowDown: () => openAt(selectedIndex),\n ArrowUp: () => openAt(selectedIndex),\n Home: () => openAt(0),\n End: () => openAt(last),\n Enter: () => openAt(selectedIndex),\n ' ': () => openAt(selectedIndex),\n };\n\n const handleKeyDown = (event: KeyboardEvent<HTMLButtonElement>) => {\n if (event.key === 'Tab') {\n close();\n return;\n }\n const action = (open ? openKeys : closedKeys)[event.key];\n if (action) {\n event.preventDefault();\n action();\n return;\n }\n if (event.key.length === 1 && event.key.trim() !== '') {\n const index = indexForLetter(event.key);\n if (index >= 0 && open) {\n setActiveIndex(index);\n } else if (index >= 0) {\n choose(index);\n }\n }\n };\n\n return (\n <div className={cn('flex flex-col gap-1.5', className)}>\n <RichText as=\"span\" id={labelId} variant=\"p3\" className={inputLabelStyles}>\n {label}\n </RichText>\n <div ref={containerRef} className=\"relative\">\n <button\n ref={ref}\n id={id}\n type=\"button\"\n role=\"combobox\"\n aria-haspopup=\"listbox\"\n aria-expanded={open}\n aria-controls={listId}\n aria-labelledby={`${labelId} ${id}`}\n aria-activedescendant={open ? `${id}-option-${activeIndex}` : undefined}\n aria-describedby={error ? `${id}-error` : hint ? `${id}-hint` : undefined}\n aria-invalid={error ? 'true' : undefined}\n disabled={disabled}\n onClick={() => (open ? close() : openAt(selectedIndex))}\n onKeyDown={handleKeyDown}\n className={cn(selectStyles({ state: resolvedState, inputSize }), dropdownTriggerStyles)}\n >\n <RichText as=\"span\" variant=\"s3\" className={cn(dropdownValueStyles, 'text-inherit')}>\n {options[selectedIndex]?.label}\n </RichText>\n </button>\n <svg\n aria-hidden\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={2}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={cn(selectChevronStyles, dropdownChevronStyles, open && 'rotate-180')}\n >\n <path d=\"m6 9 6 6 6-6\" />\n </svg>\n {name && <input type=\"hidden\" name={name} value={value} />}\n <ul\n ref={listRef}\n id={listId}\n role=\"listbox\"\n aria-labelledby={labelId}\n tabIndex={-1}\n hidden={!open}\n className={dropdownListStyles}\n >\n {options.map((option, index) => {\n const selected = index === selectedIndex;\n return (\n // Options never take focus (APG select-only combobox): the trigger handles the keys.\n // eslint-disable-next-line jsx-a11y/click-events-have-key-events\n <li\n key={option.value}\n id={`${id}-option-${index}`}\n role=\"option\"\n aria-selected={selected}\n onPointerDown={(event) => event.preventDefault()}\n onPointerEnter={() => setActiveIndex(index)}\n onClick={() => choose(index)}\n className={dropdownOptionStyles({ active: index === activeIndex, selected })}\n >\n <RichText as=\"span\" variant=\"s3\" className=\"text-inherit\">\n {option.label}\n </RichText>\n {selected && (\n <svg\n aria-hidden\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={2.5}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={dropdownCheckStyles}\n >\n <path d=\"M5 12l5 5 9-10\" />\n </svg>\n )}\n </li>\n );\n })}\n </ul>\n </div>\n {error && (\n <RichText\n as=\"p\"\n id={`${id}-error`}\n role=\"alert\"\n variant=\"p4\"\n className={inputErrorStyles}\n >\n {error}\n </RichText>\n )}\n {!error && hint && (\n <RichText as=\"p\" id={`${id}-hint`} variant=\"p4\" className={inputHintStyles}>\n {hint}\n </RichText>\n )}\n </div>\n );\n },\n);\n\nDropdown.displayName = 'Dropdown';\n"]}
1
+ {"version":3,"sources":["../src/components/molecules/Dropdown/Dropdown.styles.ts","../src/components/molecules/Dropdown/Dropdown.tsx"],"names":[],"mappings":"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","file":"chunk-XUGSIK2P.js","sourcesContent":["import { cva } from 'class-variance-authority';\n\nexport const dropdownTriggerStyles = 'items-center text-left';\n\nexport const dropdownValueStyles = 'truncate';\n\nexport const dropdownChevronStyles = 'transition-transform duration-150 ease-out';\n\nexport const dropdownListStyles = [\n 'absolute left-0 right-0 top-full z-50 mt-1 max-h-60 overflow-y-auto p-1',\n 'rounded-md border border-[var(--input-border)] bg-[var(--input-bg)] shadow-lg',\n 'focus:outline-none',\n].join(' ');\n\nexport const dropdownOptionStyles = cva(\n 'flex min-h-10 cursor-pointer items-center justify-between gap-3 rounded px-3 text-[var(--input-text)]',\n {\n variants: {\n active: {\n true: 'bg-[var(--btn-primary-bg)] text-[var(--btn-primary-text)]',\n false: '',\n },\n selected: {\n true: 'font-semibold',\n false: '',\n },\n },\n defaultVariants: {\n active: false,\n selected: false,\n },\n },\n);\n\nexport const dropdownCheckStyles = 'size-4 shrink-0';\n","import { RichText } from '@components';\nimport { useDismissableLayer } from '@hooks';\nimport { cn } from '@utils';\nimport type { VariantProps } from 'class-variance-authority';\nimport {\n forwardRef,\n useCallback,\n useEffect,\n useId,\n useRef,\n useState,\n type KeyboardEvent,\n} from 'react';\nimport {\n inputErrorStyles,\n inputHintStyles,\n inputLabelStyles,\n} from '@components/atoms/Input/Input.styles';\nimport { selectChevronStyles, selectStyles } from '@components/atoms/Select/Select.styles';\nimport {\n dropdownCheckStyles,\n dropdownChevronStyles,\n dropdownListStyles,\n dropdownOptionStyles,\n dropdownTriggerStyles,\n dropdownValueStyles,\n} from './Dropdown.styles';\n\nexport interface DropdownOption {\n value: string;\n label: string;\n}\n\nexport type DropdownProps = VariantProps<typeof selectStyles> & {\n label: string;\n options: DropdownOption[];\n value: string;\n onChange: (value: string) => void;\n hint?: string;\n error?: string;\n disabled?: boolean;\n id?: string;\n name?: string;\n className?: string;\n};\n\n/**\n * A select whose list is drawn with the theme (a native `<select>` opens the platform picker).\n * WAI-ARIA \"select-only combobox\": focus stays on the trigger and the active option is announced\n * through `aria-activedescendant`; arrows, Home/End, Enter/Space, Escape and typing a letter behave\n * like a native select.\n */\nexport const Dropdown = forwardRef<HTMLButtonElement, DropdownProps>(\n (\n {\n label,\n options,\n value,\n onChange,\n hint,\n error,\n disabled,\n id: idProp,\n name,\n inputSize,\n state,\n className,\n },\n ref,\n ) => {\n const generatedId = useId();\n const id = idProp ?? generatedId;\n const labelId = `${id}-label`;\n const listId = `${id}-listbox`;\n const containerRef = useRef<HTMLDivElement>(null);\n const listRef = useRef<HTMLUListElement>(null);\n const [open, setOpen] = useState(false);\n const selectedIndex = Math.max(\n 0,\n options.findIndex((option) => option.value === value),\n );\n const [activeIndex, setActiveIndex] = useState(selectedIndex);\n const last = options.length - 1;\n const resolvedState = error ? 'error' : state;\n\n const close = useCallback(() => setOpen(false), []);\n useDismissableLayer(open, close, containerRef);\n\n useEffect(() => {\n if (open) {\n listRef.current?.children[activeIndex]?.scrollIntoView?.({ block: 'nearest' });\n }\n }, [open, activeIndex]);\n\n const openAt = (index: number) => {\n setActiveIndex(index);\n setOpen(true);\n };\n\n const choose = (index: number) => {\n const option = options[index];\n if (option && option.value !== value) {\n onChange(option.value);\n }\n setOpen(false);\n };\n\n const indexForLetter = (key: string) => {\n const start = (open ? activeIndex : selectedIndex) + 1;\n const ordered = [...options.slice(start), ...options.slice(0, start)];\n const match = ordered.find((option) =>\n option.label.toLowerCase().startsWith(key.toLowerCase()),\n );\n return match ? options.indexOf(match) : -1;\n };\n\n const openKeys: Record<string, () => void> = {\n ArrowDown: () => setActiveIndex((index) => Math.min(last, index + 1)),\n ArrowUp: () => setActiveIndex((index) => Math.max(0, index - 1)),\n Home: () => setActiveIndex(0),\n End: () => setActiveIndex(last),\n Enter: () => choose(activeIndex),\n ' ': () => choose(activeIndex),\n Escape: close,\n };\n\n const closedKeys: Record<string, () => void> = {\n ArrowDown: () => openAt(selectedIndex),\n ArrowUp: () => openAt(selectedIndex),\n Home: () => openAt(0),\n End: () => openAt(last),\n Enter: () => openAt(selectedIndex),\n ' ': () => openAt(selectedIndex),\n };\n\n const handleKeyDown = (event: KeyboardEvent<HTMLButtonElement>) => {\n if (event.key === 'Tab') {\n close();\n return;\n }\n const action = (open ? openKeys : closedKeys)[event.key];\n if (action) {\n event.preventDefault();\n action();\n return;\n }\n if (event.key.length === 1 && event.key.trim() !== '') {\n const index = indexForLetter(event.key);\n if (index >= 0 && open) {\n setActiveIndex(index);\n } else if (index >= 0) {\n choose(index);\n }\n }\n };\n\n return (\n <div className={cn('flex flex-col gap-1.5', className)}>\n <RichText as=\"span\" id={labelId} variant=\"p3\" className={inputLabelStyles}>\n {label}\n </RichText>\n <div ref={containerRef} className=\"relative\">\n <button\n ref={ref}\n id={id}\n type=\"button\"\n role=\"combobox\"\n aria-haspopup=\"listbox\"\n aria-expanded={open}\n aria-controls={listId}\n aria-labelledby={`${labelId} ${id}`}\n aria-activedescendant={open ? `${id}-option-${activeIndex}` : undefined}\n aria-describedby={error ? `${id}-error` : hint ? `${id}-hint` : undefined}\n aria-invalid={error ? 'true' : undefined}\n disabled={disabled}\n onClick={() => (open ? close() : openAt(selectedIndex))}\n onKeyDown={handleKeyDown}\n className={cn(selectStyles({ state: resolvedState, inputSize }), dropdownTriggerStyles)}\n >\n <RichText as=\"span\" variant=\"s3\" className={cn(dropdownValueStyles, 'text-inherit')}>\n {options[selectedIndex]?.label}\n </RichText>\n </button>\n <svg\n aria-hidden\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={2}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={cn(selectChevronStyles, dropdownChevronStyles, open && 'rotate-180')}\n >\n <path d=\"m6 9 6 6 6-6\" />\n </svg>\n {name && <input type=\"hidden\" name={name} value={value} />}\n <ul\n ref={listRef}\n id={listId}\n role=\"listbox\"\n aria-labelledby={labelId}\n tabIndex={-1}\n hidden={!open}\n className={dropdownListStyles}\n >\n {options.map((option, index) => {\n const selected = index === selectedIndex;\n return (\n // Options never take focus (APG select-only combobox): the trigger handles the keys.\n // eslint-disable-next-line jsx-a11y/click-events-have-key-events\n <li\n key={option.value}\n id={`${id}-option-${index}`}\n role=\"option\"\n aria-selected={selected}\n onPointerDown={(event) => event.preventDefault()}\n onPointerEnter={() => setActiveIndex(index)}\n onClick={() => choose(index)}\n className={dropdownOptionStyles({ active: index === activeIndex, selected })}\n >\n <RichText as=\"span\" variant=\"s3\" className=\"text-inherit\">\n {option.label}\n </RichText>\n {selected && (\n <svg\n aria-hidden\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={2.5}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={dropdownCheckStyles}\n >\n <path d=\"M5 12l5 5 9-10\" />\n </svg>\n )}\n </li>\n );\n })}\n </ul>\n </div>\n {error && (\n <RichText\n as=\"p\"\n id={`${id}-error`}\n role=\"alert\"\n variant=\"p4\"\n className={inputErrorStyles}\n >\n {error}\n </RichText>\n )}\n {!error && hint && (\n <RichText as=\"p\" id={`${id}-hint`} variant=\"p4\" className={inputHintStyles}>\n {hint}\n </RichText>\n )}\n </div>\n );\n },\n);\n\nDropdown.displayName = 'Dropdown';\n"]}
@@ -1,4 +1,4 @@
1
- import { RichText } from './chunk-P4CV2EPR.js';
1
+ import { RichText } from './chunk-SPDOYFCU.js';
2
2
  import { cn } from './chunk-6LLGTBM6.js';
3
3
  import { forwardRef } from 'react';
4
4
  import { cva } from 'class-variance-authority';
@@ -67,5 +67,5 @@ var CardFooter = forwardRef(
67
67
  CardFooter.displayName = "CardFooter";
68
68
 
69
69
  export { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle };
70
- //# sourceMappingURL=chunk-N5CLCKR3.js.map
71
- //# sourceMappingURL=chunk-N5CLCKR3.js.map
70
+ //# sourceMappingURL=chunk-ZH2EDGW6.js.map
71
+ //# sourceMappingURL=chunk-ZH2EDGW6.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/molecules/Card/Card.styles.ts","../src/components/molecules/Card/Card.tsx"],"names":[],"mappings":";;;;;;AAEO,IAAM,UAAA,GAAa,GAAA;AAAA,EACxB,CAAC,kFAAkF,WAAW,CAAA;AAAA,EAC9F;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,IAAA,EAAM,KAAA;AAAA,QACN,KAAA,EAAO;AAAA;AACT,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS;AAAA;AACX;AAEJ,CAAA;AAEO,IAAM,gBAAA,GAAmB,2BAAA;AAEzB,IAAM,eAAA,GAAkB,+DAAA;AAExB,IAAM,qBAAA,GAAwB,sCAAA;AAE9B,IAAM,iBAAA,GAAoB,WAAA;AAE1B,IAAM,gBAAA,GAAmB,6BAAA;ACTzB,IAAM,IAAA,GAAO,UAAA;AAAA,EAClB,CAAC,EAAE,SAAA,EAAW,SAAA,GAAY,KAAA,EAAO,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC3C,GAAA,CAAC,KAAA,EAAA,EAAI,GAAA,EAAU,WAAW,EAAA,CAAG,UAAA,CAAW,EAAE,OAAA,EAAS,CAAC,SAAA,EAAW,CAAA,EAAG,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO;AAE7F;AACA,IAAA,CAAK,WAAA,GAAc,MAAA;AAIZ,IAAM,UAAA,GAAa,UAAA;AAAA,EACxB,CAAC,EAAE,SAAA,EAAW,GAAG,KAAA,IAAS,GAAA,qBACxB,GAAA,CAAC,KAAA,EAAA,EAAI,GAAA,EAAU,WAAW,EAAA,CAAG,gBAAA,EAAkB,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO;AAE1E;AACA,UAAA,CAAW,WAAA,GAAc,YAAA;AAMlB,IAAM,SAAA,GAAY,UAAA;AAAA,EACvB,CAAC,EAAE,SAAA,EAAW,EAAA,GAAK,MAAM,GAAG,KAAA,IAAS,GAAA,qBACnC,GAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,EAAA;AAAA,MACA,OAAA,EAAQ,IAAA;AAAA,MACR,SAAA,EAAW,EAAA,CAAG,eAAA,EAAiB,SAAS,CAAA;AAAA,MACvC,GAAG;AAAA;AAAA;AAGV;AACA,SAAA,CAAU,WAAA,GAAc,WAAA;AAIjB,IAAM,eAAA,GAAkB,UAAA;AAAA,EAC7B,CAAC,EAAE,SAAA,EAAW,GAAG,KAAA,IAAS,GAAA,qBACxB,GAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,EAAA,EAAG,GAAA;AAAA,MACH,OAAA,EAAQ,IAAA;AAAA,MACR,SAAA,EAAW,EAAA,CAAG,qBAAA,EAAuB,SAAS,CAAA;AAAA,MAC7C,GAAG;AAAA;AAAA;AAGV;AACA,eAAA,CAAgB,WAAA,GAAc,iBAAA;AAIvB,IAAM,WAAA,GAAc,UAAA;AAAA,EACzB,CAAC,EAAE,SAAA,EAAW,GAAG,KAAA,IAAS,GAAA,qBACxB,GAAA,CAAC,KAAA,EAAA,EAAI,GAAA,EAAU,WAAW,EAAA,CAAG,iBAAA,EAAmB,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO;AAE3E;AACA,WAAA,CAAY,WAAA,GAAc,aAAA;AAInB,IAAM,UAAA,GAAa,UAAA;AAAA,EACxB,CAAC,EAAE,SAAA,EAAW,GAAG,KAAA,IAAS,GAAA,qBACxB,GAAA,CAAC,KAAA,EAAA,EAAI,GAAA,EAAU,WAAW,EAAA,CAAG,gBAAA,EAAkB,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO;AAE1E;AACA,UAAA,CAAW,WAAA,GAAc,YAAA","file":"chunk-N5CLCKR3.js","sourcesContent":["import { cva } from 'class-variance-authority';\n\nexport const cardStyles = cva(\n ['rounded-xl border border-[var(--border-default)] bg-[var(--surface-secondary)]', 'shadow-sm'],\n {\n variants: {\n padding: {\n true: 'p-6',\n false: '',\n },\n },\n defaultVariants: {\n padding: true,\n },\n },\n);\n\nexport const cardHeaderStyles = 'flex flex-col gap-1.5 p-6';\n\nexport const cardTitleStyles = 'text-lg font-semibold leading-none text-[var(--text-primary)]';\n\nexport const cardDescriptionStyles = 'text-sm text-[var(--text-secondary)]';\n\nexport const cardContentStyles = 'px-6 pb-6';\n\nexport const cardFooterStyles = 'flex items-center px-6 pb-6';\n","import { forwardRef, type ForwardedRef, type HTMLAttributes } from 'react';\nimport { RichText } from '@components';\nimport { cn } from '@utils';\nimport {\n cardContentStyles,\n cardDescriptionStyles,\n cardFooterStyles,\n cardHeaderStyles,\n cardStyles,\n cardTitleStyles,\n} from './Card.styles';\n\nexport type CardProps = HTMLAttributes<HTMLDivElement> & {\n noPadding?: boolean;\n};\n\nexport const Card = forwardRef<HTMLDivElement, CardProps>(\n ({ className, noPadding = false, ...props }, ref) => (\n <div ref={ref} className={cn(cardStyles({ padding: !noPadding }), className)} {...props} />\n ),\n);\nCard.displayName = 'Card';\n\nexport type CardHeaderProps = HTMLAttributes<HTMLDivElement>;\n\nexport const CardHeader = forwardRef<HTMLDivElement, CardHeaderProps>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn(cardHeaderStyles, className)} {...props} />\n ),\n);\nCardHeader.displayName = 'CardHeader';\n\nexport type CardTitleProps = HTMLAttributes<HTMLHeadingElement> & {\n as?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';\n};\n\nexport const CardTitle = forwardRef<HTMLHeadingElement, CardTitleProps>(\n ({ className, as = 'h3', ...props }, ref) => (\n <RichText\n ref={ref as ForwardedRef<HTMLElement>}\n as={as}\n variant=\"s1\"\n className={cn(cardTitleStyles, className)}\n {...props}\n />\n ),\n);\nCardTitle.displayName = 'CardTitle';\n\nexport type CardDescriptionProps = HTMLAttributes<HTMLParagraphElement>;\n\nexport const CardDescription = forwardRef<HTMLParagraphElement, CardDescriptionProps>(\n ({ className, ...props }, ref) => (\n <RichText\n ref={ref as ForwardedRef<HTMLElement>}\n as=\"p\"\n variant=\"p3\"\n className={cn(cardDescriptionStyles, className)}\n {...props}\n />\n ),\n);\nCardDescription.displayName = 'CardDescription';\n\nexport type CardContentProps = HTMLAttributes<HTMLDivElement>;\n\nexport const CardContent = forwardRef<HTMLDivElement, CardContentProps>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn(cardContentStyles, className)} {...props} />\n ),\n);\nCardContent.displayName = 'CardContent';\n\nexport type CardFooterProps = HTMLAttributes<HTMLDivElement>;\n\nexport const CardFooter = forwardRef<HTMLDivElement, CardFooterProps>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn(cardFooterStyles, className)} {...props} />\n ),\n);\nCardFooter.displayName = 'CardFooter';\n"]}
1
+ {"version":3,"sources":["../src/components/molecules/Card/Card.styles.ts","../src/components/molecules/Card/Card.tsx"],"names":[],"mappings":";;;;;;AAEO,IAAM,UAAA,GAAa,GAAA;AAAA,EACxB,CAAC,kFAAkF,WAAW,CAAA;AAAA,EAC9F;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,IAAA,EAAM,KAAA;AAAA,QACN,KAAA,EAAO;AAAA;AACT,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS;AAAA;AACX;AAEJ,CAAA;AAEO,IAAM,gBAAA,GAAmB,2BAAA;AAEzB,IAAM,eAAA,GAAkB,+DAAA;AAExB,IAAM,qBAAA,GAAwB,sCAAA;AAE9B,IAAM,iBAAA,GAAoB,WAAA;AAE1B,IAAM,gBAAA,GAAmB,6BAAA;ACTzB,IAAM,IAAA,GAAO,UAAA;AAAA,EAClB,CAAC,EAAE,SAAA,EAAW,SAAA,GAAY,KAAA,EAAO,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC3C,GAAA,CAAC,KAAA,EAAA,EAAI,GAAA,EAAU,WAAW,EAAA,CAAG,UAAA,CAAW,EAAE,OAAA,EAAS,CAAC,SAAA,EAAW,CAAA,EAAG,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO;AAE7F;AACA,IAAA,CAAK,WAAA,GAAc,MAAA;AAIZ,IAAM,UAAA,GAAa,UAAA;AAAA,EACxB,CAAC,EAAE,SAAA,EAAW,GAAG,KAAA,IAAS,GAAA,qBACxB,GAAA,CAAC,KAAA,EAAA,EAAI,GAAA,EAAU,WAAW,EAAA,CAAG,gBAAA,EAAkB,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO;AAE1E;AACA,UAAA,CAAW,WAAA,GAAc,YAAA;AAMlB,IAAM,SAAA,GAAY,UAAA;AAAA,EACvB,CAAC,EAAE,SAAA,EAAW,EAAA,GAAK,MAAM,GAAG,KAAA,IAAS,GAAA,qBACnC,GAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,EAAA;AAAA,MACA,OAAA,EAAQ,IAAA;AAAA,MACR,SAAA,EAAW,EAAA,CAAG,eAAA,EAAiB,SAAS,CAAA;AAAA,MACvC,GAAG;AAAA;AAAA;AAGV;AACA,SAAA,CAAU,WAAA,GAAc,WAAA;AAIjB,IAAM,eAAA,GAAkB,UAAA;AAAA,EAC7B,CAAC,EAAE,SAAA,EAAW,GAAG,KAAA,IAAS,GAAA,qBACxB,GAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,EAAA,EAAG,GAAA;AAAA,MACH,OAAA,EAAQ,IAAA;AAAA,MACR,SAAA,EAAW,EAAA,CAAG,qBAAA,EAAuB,SAAS,CAAA;AAAA,MAC7C,GAAG;AAAA;AAAA;AAGV;AACA,eAAA,CAAgB,WAAA,GAAc,iBAAA;AAIvB,IAAM,WAAA,GAAc,UAAA;AAAA,EACzB,CAAC,EAAE,SAAA,EAAW,GAAG,KAAA,IAAS,GAAA,qBACxB,GAAA,CAAC,KAAA,EAAA,EAAI,GAAA,EAAU,WAAW,EAAA,CAAG,iBAAA,EAAmB,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO;AAE3E;AACA,WAAA,CAAY,WAAA,GAAc,aAAA;AAInB,IAAM,UAAA,GAAa,UAAA;AAAA,EACxB,CAAC,EAAE,SAAA,EAAW,GAAG,KAAA,IAAS,GAAA,qBACxB,GAAA,CAAC,KAAA,EAAA,EAAI,GAAA,EAAU,WAAW,EAAA,CAAG,gBAAA,EAAkB,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO;AAE1E;AACA,UAAA,CAAW,WAAA,GAAc,YAAA","file":"chunk-ZH2EDGW6.js","sourcesContent":["import { cva } from 'class-variance-authority';\n\nexport const cardStyles = cva(\n ['rounded-xl border border-[var(--border-default)] bg-[var(--surface-secondary)]', 'shadow-sm'],\n {\n variants: {\n padding: {\n true: 'p-6',\n false: '',\n },\n },\n defaultVariants: {\n padding: true,\n },\n },\n);\n\nexport const cardHeaderStyles = 'flex flex-col gap-1.5 p-6';\n\nexport const cardTitleStyles = 'text-lg font-semibold leading-none text-[var(--text-primary)]';\n\nexport const cardDescriptionStyles = 'text-sm text-[var(--text-secondary)]';\n\nexport const cardContentStyles = 'px-6 pb-6';\n\nexport const cardFooterStyles = 'flex items-center px-6 pb-6';\n","import { RichText } from '@components';\nimport { cn } from '@utils';\nimport { forwardRef, type ForwardedRef, type HTMLAttributes } from 'react';\nimport {\n cardContentStyles,\n cardDescriptionStyles,\n cardFooterStyles,\n cardHeaderStyles,\n cardStyles,\n cardTitleStyles,\n} from './Card.styles';\n\nexport type CardProps = HTMLAttributes<HTMLDivElement> & {\n noPadding?: boolean;\n};\n\nexport const Card = forwardRef<HTMLDivElement, CardProps>(\n ({ className, noPadding = false, ...props }, ref) => (\n <div ref={ref} className={cn(cardStyles({ padding: !noPadding }), className)} {...props} />\n ),\n);\nCard.displayName = 'Card';\n\nexport type CardHeaderProps = HTMLAttributes<HTMLDivElement>;\n\nexport const CardHeader = forwardRef<HTMLDivElement, CardHeaderProps>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn(cardHeaderStyles, className)} {...props} />\n ),\n);\nCardHeader.displayName = 'CardHeader';\n\nexport type CardTitleProps = HTMLAttributes<HTMLHeadingElement> & {\n as?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';\n};\n\nexport const CardTitle = forwardRef<HTMLHeadingElement, CardTitleProps>(\n ({ className, as = 'h3', ...props }, ref) => (\n <RichText\n ref={ref as ForwardedRef<HTMLElement>}\n as={as}\n variant=\"s1\"\n className={cn(cardTitleStyles, className)}\n {...props}\n />\n ),\n);\nCardTitle.displayName = 'CardTitle';\n\nexport type CardDescriptionProps = HTMLAttributes<HTMLParagraphElement>;\n\nexport const CardDescription = forwardRef<HTMLParagraphElement, CardDescriptionProps>(\n ({ className, ...props }, ref) => (\n <RichText\n ref={ref as ForwardedRef<HTMLElement>}\n as=\"p\"\n variant=\"p3\"\n className={cn(cardDescriptionStyles, className)}\n {...props}\n />\n ),\n);\nCardDescription.displayName = 'CardDescription';\n\nexport type CardContentProps = HTMLAttributes<HTMLDivElement>;\n\nexport const CardContent = forwardRef<HTMLDivElement, CardContentProps>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn(cardContentStyles, className)} {...props} />\n ),\n);\nCardContent.displayName = 'CardContent';\n\nexport type CardFooterProps = HTMLAttributes<HTMLDivElement>;\n\nexport const CardFooter = forwardRef<HTMLDivElement, CardFooterProps>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn(cardFooterStyles, className)} {...props} />\n ),\n);\nCardFooter.displayName = 'CardFooter';\n"]}
@@ -1,4 +1,4 @@
1
- export { Icon } from '../../../chunk-7HQFLM4A.js';
1
+ export { Icon } from '../../../chunk-NA7YKEO4.js';
2
2
  import '../../../chunk-6LLGTBM6.js';
3
3
  //# sourceMappingURL=index.js.map
4
4
  //# sourceMappingURL=index.js.map
@@ -1,4 +1,4 @@
1
- export { Image } from '../../../chunk-5IHM2545.js';
1
+ export { Image } from '../../../chunk-KAU7S3D4.js';
2
2
  import '../../../chunk-6LLGTBM6.js';
3
3
  //# sourceMappingURL=index.js.map
4
4
  //# sourceMappingURL=index.js.map
@@ -1,6 +1,6 @@
1
- export { Input } from '../../../chunk-DP274HDM.js';
1
+ export { Input } from '../../../chunk-IY452YEX.js';
2
2
  import '../../../chunk-FFKHEBQ7.js';
3
- import '../../../chunk-P4CV2EPR.js';
3
+ import '../../../chunk-SPDOYFCU.js';
4
4
  import '../../../chunk-6LLGTBM6.js';
5
5
  //# sourceMappingURL=index.js.map
6
6
  //# sourceMappingURL=index.js.map
@@ -1,4 +1,4 @@
1
- export { Link } from '../../../chunk-D4I5OF3C.js';
1
+ export { Link } from '../../../chunk-5LKLTY55.js';
2
2
  import '../../../chunk-6LLGTBM6.js';
3
3
  //# sourceMappingURL=index.js.map
4
4
  //# sourceMappingURL=index.js.map
@@ -1,4 +1,4 @@
1
- export { RichText, elementByVariant } from '../../../chunk-P4CV2EPR.js';
1
+ export { RichText, elementByVariant } from '../../../chunk-SPDOYFCU.js';
2
2
  import '../../../chunk-6LLGTBM6.js';
3
3
  //# sourceMappingURL=index.js.map
4
4
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
- export { Select } from '../../../chunk-YYNW2PXL.js';
1
+ export { Select } from '../../../chunk-DIA7L6IA.js';
2
2
  import '../../../chunk-4H6VER5P.js';
3
3
  import '../../../chunk-FFKHEBQ7.js';
4
- import '../../../chunk-P4CV2EPR.js';
4
+ import '../../../chunk-SPDOYFCU.js';
5
5
  import '../../../chunk-6LLGTBM6.js';
6
6
  //# sourceMappingURL=index.js.map
7
7
  //# sourceMappingURL=index.js.map
@@ -1,5 +1,5 @@
1
- export { Switch } from '../../../chunk-ZABQF65Z.js';
2
- import '../../../chunk-P4CV2EPR.js';
1
+ export { Switch } from '../../../chunk-KSNAVEJP.js';
2
+ import '../../../chunk-SPDOYFCU.js';
3
3
  import '../../../chunk-6LLGTBM6.js';
4
4
  //# sourceMappingURL=index.js.map
5
5
  //# sourceMappingURL=index.js.map
@@ -1,6 +1,6 @@
1
- export { Textarea } from '../../../chunk-3YRDRHO3.js';
1
+ export { Textarea } from '../../../chunk-UUW7L2AV.js';
2
2
  import '../../../chunk-FFKHEBQ7.js';
3
- import '../../../chunk-P4CV2EPR.js';
3
+ import '../../../chunk-SPDOYFCU.js';
4
4
  import '../../../chunk-6LLGTBM6.js';
5
5
  //# sourceMappingURL=index.js.map
6
6
  //# sourceMappingURL=index.js.map
@@ -1,10 +1,10 @@
1
- export { BottomSheet } from '../../../chunk-L4BPQAXU.js';
1
+ export { BottomSheet } from '../../../chunk-NTXFFBL6.js';
2
2
  import '../../../chunk-QT62VC36.js';
3
3
  import '../../../chunk-53YMHM24.js';
4
4
  import '../../../chunk-JCJP427C.js';
5
5
  import '../../../chunk-BNEEI7S5.js';
6
6
  import '../../../chunk-P4Z7HH66.js';
7
- import '../../../chunk-P4CV2EPR.js';
7
+ import '../../../chunk-SPDOYFCU.js';
8
8
  import '../../../chunk-6LLGTBM6.js';
9
9
  //# sourceMappingURL=index.js.map
10
10
  //# sourceMappingURL=index.js.map
@@ -1,6 +1,6 @@
1
- export { Breadcrumbs } from '../../../chunk-PE6XEC7Y.js';
2
- import '../../../chunk-D4I5OF3C.js';
3
- import '../../../chunk-P4CV2EPR.js';
1
+ export { Breadcrumbs } from '../../../chunk-VCJN4FS2.js';
2
+ import '../../../chunk-5LKLTY55.js';
3
+ import '../../../chunk-SPDOYFCU.js';
4
4
  import '../../../chunk-6LLGTBM6.js';
5
5
  //# sourceMappingURL=index.js.map
6
6
  //# sourceMappingURL=index.js.map
@@ -1,5 +1,5 @@
1
- export { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from '../../../chunk-N5CLCKR3.js';
2
- import '../../../chunk-P4CV2EPR.js';
1
+ export { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from '../../../chunk-ZH2EDGW6.js';
2
+ import '../../../chunk-SPDOYFCU.js';
3
3
  import '../../../chunk-6LLGTBM6.js';
4
4
  //# sourceMappingURL=index.js.map
5
5
  //# sourceMappingURL=index.js.map
@@ -0,0 +1,61 @@
1
+ import * as react from 'react';
2
+ import { HTMLAttributes, ReactNode } from 'react';
3
+
4
+ type CarouselProps = Omit<HTMLAttributes<HTMLElement>, 'children'> & {
5
+ /** Accessible name of the carousel, e.g. "Featured recipes". */
6
+ label: string;
7
+ /** One child per slide. */
8
+ children: ReactNode;
9
+ previousLabel: string;
10
+ nextLabel: string;
11
+ /** Accessible name of each slide; defaults to "1 / 6". */
12
+ slideLabel?: (index: number, total: number) => string;
13
+ /** Accessible name of each indicator; defaults to "Go to slide 3". */
14
+ goToLabel?: (index: number, total: number) => string;
15
+ /** Accessible name of the indicators group, e.g. "Choose a recipe". */
16
+ indicatorsLabel?: string;
17
+ /** Show the indicators between the buttons (default `true`). */
18
+ indicators?: boolean;
19
+ /** Optional visible heading or "See all" link above the cards. */
20
+ header?: ReactNode;
21
+ /** Width classes for each slide (defaults: 80% mobile, 45% tablet, 31% desktop). */
22
+ slideClassName?: string;
23
+ /** Stable ids for the buttons, e.g. for analytics click triggers. */
24
+ buttonIds?: {
25
+ previous?: string;
26
+ next?: string;
27
+ };
28
+ };
29
+ /**
30
+ * Horizontal carousel of cards: native scroll with snap (touch and trackpad drag work as usual),
31
+ * and below the cards previous/next buttons around indicators that show the current card and jump
32
+ * to any of them. Tabbing to a card scrolls it into view. No autoplay; the smooth scroll is turned
33
+ * off when the person prefers reduced motion.
34
+ */
35
+ declare const Carousel: react.ForwardRefExoticComponent<Omit<HTMLAttributes<HTMLElement>, "children"> & {
36
+ /** Accessible name of the carousel, e.g. "Featured recipes". */
37
+ label: string;
38
+ /** One child per slide. */
39
+ children: ReactNode;
40
+ previousLabel: string;
41
+ nextLabel: string;
42
+ /** Accessible name of each slide; defaults to "1 / 6". */
43
+ slideLabel?: (index: number, total: number) => string;
44
+ /** Accessible name of each indicator; defaults to "Go to slide 3". */
45
+ goToLabel?: (index: number, total: number) => string;
46
+ /** Accessible name of the indicators group, e.g. "Choose a recipe". */
47
+ indicatorsLabel?: string;
48
+ /** Show the indicators between the buttons (default `true`). */
49
+ indicators?: boolean;
50
+ /** Optional visible heading or "See all" link above the cards. */
51
+ header?: ReactNode;
52
+ /** Width classes for each slide (defaults: 80% mobile, 45% tablet, 31% desktop). */
53
+ slideClassName?: string;
54
+ /** Stable ids for the buttons, e.g. for analytics click triggers. */
55
+ buttonIds?: {
56
+ previous?: string;
57
+ next?: string;
58
+ };
59
+ } & react.RefAttributes<HTMLElement>>;
60
+
61
+ export { Carousel, type CarouselProps };
@@ -1,7 +1,7 @@
1
- export { CookieBanner } from '../../../chunk-TR7XKJCO.js';
1
+ export { Carousel } from '../../../chunk-LLJXVAR6.js';
2
+ import '../../../chunk-2HCMNEIQ.js';
2
3
  import '../../../chunk-KL6I2JFC.js';
3
4
  import '../../../chunk-P4Z7HH66.js';
4
- import '../../../chunk-P4CV2EPR.js';
5
5
  import '../../../chunk-6LLGTBM6.js';
6
6
  //# sourceMappingURL=index.js.map
7
7
  //# sourceMappingURL=index.js.map
@@ -1,11 +1,11 @@
1
- export { Drawer } from '../../../chunk-42G4RRCZ.js';
1
+ export { Drawer } from '../../../chunk-TO3FF6FR.js';
2
2
  import '../../../chunk-QT62VC36.js';
3
3
  import '../../../chunk-53YMHM24.js';
4
4
  import '../../../chunk-JCJP427C.js';
5
5
  import '../../../chunk-BNEEI7S5.js';
6
6
  import '../../../chunk-KL6I2JFC.js';
7
7
  import '../../../chunk-P4Z7HH66.js';
8
- import '../../../chunk-P4CV2EPR.js';
8
+ import '../../../chunk-SPDOYFCU.js';
9
9
  import '../../../chunk-6LLGTBM6.js';
10
10
  //# sourceMappingURL=index.js.map
11
11
  //# sourceMappingURL=index.js.map
@@ -1,8 +1,8 @@
1
- export { Dropdown } from '../../../chunk-BGUNAALU.js';
1
+ export { Dropdown } from '../../../chunk-XUGSIK2P.js';
2
2
  import '../../../chunk-JCJP427C.js';
3
3
  import '../../../chunk-4H6VER5P.js';
4
4
  import '../../../chunk-FFKHEBQ7.js';
5
- import '../../../chunk-P4CV2EPR.js';
5
+ import '../../../chunk-SPDOYFCU.js';
6
6
  import '../../../chunk-6LLGTBM6.js';
7
7
  //# sourceMappingURL=index.js.map
8
8
  //# sourceMappingURL=index.js.map
@@ -0,0 +1,56 @@
1
+ import * as react from 'react';
2
+ import { HTMLAttributes, ReactNode } from 'react';
3
+ import * as class_variance_authority_types from 'class-variance-authority/types';
4
+ import { VariantProps } from 'class-variance-authority';
5
+
6
+ declare const mediaCardStyles: (props?: ({
7
+ aspect?: "square" | "portrait" | "landscape" | null | undefined;
8
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
9
+
10
+ type MediaCardProps = Omit<HTMLAttributes<HTMLElement>, 'title'> & VariantProps<typeof mediaCardStyles> & {
11
+ /** Image URL; or pass your own element (e.g. an optimized `<picture>`) in `media`. */
12
+ src?: string;
13
+ /** Describes the photo; use `''` if it is only decorative. */
14
+ alt?: string;
15
+ media?: ReactNode;
16
+ title: ReactNode;
17
+ /** One short line under the title (time, category, cost per serving…). */
18
+ subtitle?: ReactNode;
19
+ /** Heading level of the title in the page outline. */
20
+ headingLevel?: 'h2' | 'h3' | 'h4';
21
+ /** Makes the whole card a link, named by the title. */
22
+ href?: string;
23
+ linkId?: string;
24
+ /** Small label on the top-left corner ("New", "Featured"). */
25
+ badge?: ReactNode;
26
+ /** Floating buttons on the top-right corner (save, share); they stay above the link. */
27
+ actions?: ReactNode;
28
+ };
29
+ /**
30
+ * Vertical card with a full-bleed photo, a dark gradient from the bottom for the title and
31
+ * subtitle, an optional badge and floating actions. For recipes, articles and guides; pair it with
32
+ * `Carousel` for rows of cards.
33
+ */
34
+ declare const MediaCard: react.ForwardRefExoticComponent<Omit<HTMLAttributes<HTMLElement>, "title"> & VariantProps<(props?: ({
35
+ aspect?: "square" | "portrait" | "landscape" | null | undefined;
36
+ } & class_variance_authority_types.ClassProp) | undefined) => string> & {
37
+ /** Image URL; or pass your own element (e.g. an optimized `<picture>`) in `media`. */
38
+ src?: string;
39
+ /** Describes the photo; use `''` if it is only decorative. */
40
+ alt?: string;
41
+ media?: ReactNode;
42
+ title: ReactNode;
43
+ /** One short line under the title (time, category, cost per serving…). */
44
+ subtitle?: ReactNode;
45
+ /** Heading level of the title in the page outline. */
46
+ headingLevel?: "h2" | "h3" | "h4";
47
+ /** Makes the whole card a link, named by the title. */
48
+ href?: string;
49
+ linkId?: string;
50
+ /** Small label on the top-left corner ("New", "Featured"). */
51
+ badge?: ReactNode;
52
+ /** Floating buttons on the top-right corner (save, share); they stay above the link. */
53
+ actions?: ReactNode;
54
+ } & react.RefAttributes<HTMLElement>>;
55
+
56
+ export { MediaCard, type MediaCardProps };
@@ -0,0 +1,6 @@
1
+ export { MediaCard } from '../../../chunk-4TPQTZSR.js';
2
+ import '../../../chunk-KAU7S3D4.js';
3
+ import '../../../chunk-SPDOYFCU.js';
4
+ import '../../../chunk-6LLGTBM6.js';
5
+ //# sourceMappingURL=index.js.map
6
+ //# sourceMappingURL=index.js.map
@@ -7,6 +7,8 @@ type ModalProps = Omit<HTMLAttributes<HTMLDivElement>, 'title'> & {
7
7
  title?: ReactNode;
8
8
  footer?: ReactNode;
9
9
  closeOnBackdropClick?: boolean;
10
+ /** Height limit before the body scrolls: 80% of the viewport (`default`) or 90% (`tall`). */
11
+ maxHeight?: 'default' | 'tall';
10
12
  };
11
13
  declare const Modal: react.ForwardRefExoticComponent<Omit<HTMLAttributes<HTMLDivElement>, "title"> & {
12
14
  open: boolean;
@@ -14,6 +16,8 @@ declare const Modal: react.ForwardRefExoticComponent<Omit<HTMLAttributes<HTMLDiv
14
16
  title?: ReactNode;
15
17
  footer?: ReactNode;
16
18
  closeOnBackdropClick?: boolean;
19
+ /** Height limit before the body scrolls: 80% of the viewport (`default`) or 90% (`tall`). */
20
+ maxHeight?: "default" | "tall";
17
21
  } & react.RefAttributes<HTMLDivElement>>;
18
22
 
19
23
  export { Modal, type ModalProps };
@@ -1,10 +1,10 @@
1
- export { Modal } from '../../../chunk-4CY55XM3.js';
1
+ export { Modal } from '../../../chunk-J7X6NLSR.js';
2
2
  import '../../../chunk-QT62VC36.js';
3
3
  import '../../../chunk-53YMHM24.js';
4
4
  import '../../../chunk-JCJP427C.js';
5
5
  import '../../../chunk-BNEEI7S5.js';
6
6
  import '../../../chunk-P4Z7HH66.js';
7
- import '../../../chunk-P4CV2EPR.js';
7
+ import '../../../chunk-SPDOYFCU.js';
8
8
  import '../../../chunk-6LLGTBM6.js';
9
9
  //# sourceMappingURL=index.js.map
10
10
  //# sourceMappingURL=index.js.map
@@ -1,4 +1,4 @@
1
- export { Snackbar } from '../../../chunk-BKPP4D3Q.js';
1
+ export { Snackbar } from '../../../chunk-27HTTVFO.js';
2
2
  import '../../../chunk-BNEEI7S5.js';
3
3
  import '../../../chunk-6LLGTBM6.js';
4
4
  //# sourceMappingURL=index.js.map
@@ -5,6 +5,13 @@ interface TimelineItem {
5
5
  id?: string;
6
6
  title: ReactNode;
7
7
  description: ReactNode[];
8
+ /** Optional photo of the entry, shown under its text (lazy loaded). */
9
+ image?: {
10
+ src: string;
11
+ alt: string;
12
+ };
13
+ /** Your own media element instead of `image` (e.g. an optimized `<picture>`). */
14
+ media?: ReactNode;
8
15
  }
9
16
  type TimelineProps = HTMLAttributes<HTMLUListElement> & {
10
17
  items: TimelineItem[];
@@ -1,5 +1,6 @@
1
- export { Timeline } from '../../../chunk-UL33H4AD.js';
2
- import '../../../chunk-P4CV2EPR.js';
1
+ export { Timeline } from '../../../chunk-TRLFK626.js';
2
+ import '../../../chunk-KAU7S3D4.js';
3
+ import '../../../chunk-SPDOYFCU.js';
3
4
  import '../../../chunk-6LLGTBM6.js';
4
5
  //# sourceMappingURL=index.js.map
5
6
  //# sourceMappingURL=index.js.map
@@ -0,0 +1,59 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { ReactNode } from 'react';
3
+
4
+ interface CookieCategory {
5
+ id: string;
6
+ title: string;
7
+ description: ReactNode;
8
+ /** Strictly necessary cookies can't be turned off; they show `labels.required` instead of a switch. */
9
+ required?: boolean;
10
+ }
11
+ /** Whether each optional category is allowed, by id. */
12
+ type CookieChoices = Record<string, boolean>;
13
+ /**
14
+ * - `banner`: bar at the bottom while there is no answer (`value === null`), with accept, reject
15
+ * and customize; customize opens the preferences dialog.
16
+ * - `modal`: only the preferences dialog, opened with `open` / `onOpenChange`.
17
+ * - `inline`: the categories with switches inside a page (privacy, settings); every change is
18
+ * saved at once, there is no save button.
19
+ */
20
+ type CookieConsentMode = 'banner' | 'modal' | 'inline';
21
+ interface CookieConsentLabels {
22
+ /** Banner title. */
23
+ title: ReactNode;
24
+ /** Banner text; usually ends with a link to the privacy policy. */
25
+ description: ReactNode;
26
+ accept: string;
27
+ reject: string;
28
+ customize: string;
29
+ preferencesTitle: ReactNode;
30
+ preferencesDescription?: ReactNode;
31
+ save: string;
32
+ cancel: string;
33
+ /** Shown instead of a switch on required categories, e.g. "Always on". */
34
+ required: string;
35
+ }
36
+ interface CookieConsentProps {
37
+ mode: CookieConsentMode;
38
+ categories: CookieCategory[];
39
+ /** The saved answer, or `null` while the person hasn't answered. */
40
+ value: CookieChoices | null;
41
+ /** Called with the full answer: accept or reject all, the saved preferences, or a switch (inline). */
42
+ onChange: (value: CookieChoices) => void;
43
+ labels: CookieConsentLabels;
44
+ /** Preferences dialog visibility, to open it from outside (e.g. a footer link). Optional in `banner`. */
45
+ open?: boolean;
46
+ onOpenChange?: (open: boolean) => void;
47
+ /** Stable ids for buttons and switches, e.g. for analytics click triggers. */
48
+ getId?: (kind: 'button' | 'switch', name: string) => string;
49
+ className?: string;
50
+ }
51
+ /**
52
+ * Cookie consent in one component: the banner, the preferences dialog and the inline settings,
53
+ * chosen with `mode`. Controlled: the consumer stores `value` and loads non-essential scripts only
54
+ * after the person allows them. Accept and reject weigh the same, so rejecting is as easy as
55
+ * accepting (GDPR / ePrivacy).
56
+ */
57
+ declare const CookieConsent: ({ mode, categories, value, onChange, labels, open, onOpenChange, getId, className, }: CookieConsentProps) => react_jsx_runtime.JSX.Element;
58
+
59
+ export { type CookieCategory, type CookieChoices, CookieConsent, type CookieConsentLabels, type CookieConsentMode, type CookieConsentProps };
@@ -1,13 +1,13 @@
1
- export { CookiePreferences } from '../../../chunk-LSWJBAM6.js';
2
- import '../../../chunk-4CY55XM3.js';
3
- import '../../../chunk-ZABQF65Z.js';
1
+ export { CookieConsent } from '../../../chunk-VK24YOIC.js';
2
+ import '../../../chunk-J7X6NLSR.js';
3
+ import '../../../chunk-KSNAVEJP.js';
4
4
  import '../../../chunk-QT62VC36.js';
5
5
  import '../../../chunk-53YMHM24.js';
6
6
  import '../../../chunk-JCJP427C.js';
7
7
  import '../../../chunk-BNEEI7S5.js';
8
8
  import '../../../chunk-KL6I2JFC.js';
9
9
  import '../../../chunk-P4Z7HH66.js';
10
- import '../../../chunk-P4CV2EPR.js';
10
+ import '../../../chunk-SPDOYFCU.js';
11
11
  import '../../../chunk-6LLGTBM6.js';
12
12
  //# sourceMappingURL=index.js.map
13
13
  //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"index.js"}
package/dist/index.d.ts CHANGED
@@ -11,15 +11,16 @@ export { Accordion, AccordionProps } from './components/molecules/Accordion/inde
11
11
  export { BottomSheet, BottomSheetProps } from './components/molecules/BottomSheet/index.js';
12
12
  export { BreadcrumbItem, Breadcrumbs, BreadcrumbsProps } from './components/molecules/Breadcrumbs/index.js';
13
13
  export { Card, CardContent, CardContentProps, CardDescription, CardDescriptionProps, CardFooter, CardFooterProps, CardHeader, CardHeaderProps, CardProps, CardTitle, CardTitleProps } from './components/molecules/Card/index.js';
14
- export { CookieBanner, CookieBannerProps } from './components/molecules/CookieBanner/index.js';
15
- export { CookieCategory, CookiePreferences, CookiePreferencesProps } from './components/molecules/CookiePreferences/index.js';
14
+ export { Carousel, CarouselProps } from './components/molecules/Carousel/index.js';
16
15
  export { Drawer, DrawerProps } from './components/molecules/Drawer/index.js';
17
16
  export { Dropdown, DropdownOption, DropdownProps } from './components/molecules/Dropdown/index.js';
18
17
  export { Language, LanguageOption, LanguageProps } from './components/molecules/Language/index.js';
18
+ export { MediaCard, MediaCardProps } from './components/molecules/MediaCard/index.js';
19
19
  export { Modal, ModalProps } from './components/molecules/Modal/index.js';
20
20
  export { Snackbar, SnackbarProps } from './components/molecules/Snackbar/index.js';
21
21
  export { Table, TableBody, TableCell, TableCellProps, TableHead, TableHeaderCell, TableHeaderCellProps, TableProps, TableRow } from './components/molecules/Table/index.js';
22
22
  export { Timeline, TimelineItem, TimelineProps } from './components/molecules/Timeline/index.js';
23
+ export { CookieCategory, CookieChoices, CookieConsent, CookieConsentLabels, CookieConsentMode, CookieConsentProps } from './components/organisms/CookieConsent/index.js';
23
24
  export { useDelayedUnmount } from './hooks/useDelayedUnmount/index.js';
24
25
  export { useDismissableLayer } from './hooks/useDismissableLayer/index.js';
25
26
  export { useFocusTrap } from './hooks/useFocusTrap/index.js';