@leabankab/component-library 8.8.0 → 8.9.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 (136) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/dist/component-library.es.js +1241 -1215
  3. package/dist/component-library.es.js.map +1 -1
  4. package/dist/component-library.umd.js +2 -2
  5. package/dist/component-library.umd.js.map +1 -1
  6. package/dist/components/buttons/{action-button.d.ts → action-button/action-button.d.ts} +1 -1
  7. package/dist/components/buttons/{button.d.ts → button/button.d.ts} +2 -2
  8. package/dist/components/buttons/{close-button.d.ts → close-button/close-button.d.ts} +1 -1
  9. package/dist/components/buttons/{download-trigger.d.ts → download-trigger/download-trigger.d.ts} +2 -2
  10. package/dist/components/buttons/{icon-button.d.ts → icon-button/icon-button.d.ts} +1 -1
  11. package/dist/components/buttons/index.d.ts +6 -6
  12. package/dist/components/buttons/{skip-link.d.ts → skip-link/skip-link.d.ts} +1 -1
  13. package/dist/components/data-display/{card.d.ts → card/card.d.ts} +1 -1
  14. package/dist/components/data-display/{chip.d.ts → chip/chip.d.ts} +1 -1
  15. package/dist/components/data-display/index.d.ts +17 -16
  16. package/dist/components/data-display/{link-card.d.ts → link-card/link-card.d.ts} +1 -1
  17. package/dist/components/data-display/{media-card.d.ts → media-card/media-card.d.ts} +1 -1
  18. package/dist/components/data-display/{service-card.d.ts → service-card/service-card.d.ts} +1 -1
  19. package/dist/components/feedback/{alert.d.ts → alert/alert.d.ts} +2 -2
  20. package/dist/components/feedback/{global-alert.d.ts → global-alert/global-alert.d.ts} +1 -1
  21. package/dist/components/feedback/index.d.ts +8 -8
  22. package/dist/components/feedback/{toast.d.ts → toast/toast.d.ts} +1 -1
  23. package/dist/components/form/{autocomplete.d.ts → autocomplete/autocomplete.d.ts} +2 -2
  24. package/dist/components/form/{email-input.d.ts → email-input/email-input.d.ts} +1 -1
  25. package/dist/components/form/index.d.ts +12 -12
  26. package/dist/components/form/{multi-select.d.ts → multi-select/multi-select.d.ts} +1 -1
  27. package/dist/components/form/{number-input-unit.d.ts → number-input/number-input-unit.d.ts} +2 -2
  28. package/dist/components/form/{radio.d.ts → radio/radio.d.ts} +2 -2
  29. package/dist/components/form/{radio-card.d.ts → radio-card/radio-card.d.ts} +3 -3
  30. package/dist/components/form/{select.d.ts → select/select.d.ts} +13 -3
  31. package/dist/components/form/select-field.d.ts +20 -1
  32. package/dist/components/form/{slider.d.ts → slider/slider.d.ts} +1 -1
  33. package/dist/components/index.d.ts +1 -2
  34. package/dist/components/layout/{container.d.ts → container/container.d.ts} +1 -1
  35. package/dist/components/layout/{grid.d.ts → grid/grid.d.ts} +2 -2
  36. package/dist/components/layout/index.d.ts +3 -3
  37. package/dist/components/layout/{stack.d.ts → stack/stack.d.ts} +2 -2
  38. package/dist/components/navigation/{form-stepper.d.ts → form-stepper/form-stepper.d.ts} +2 -2
  39. package/dist/components/navigation/index.d.ts +9 -8
  40. package/dist/components/navigation/{linear-form-stepper.d.ts → linear-form-stepper/linear-form-stepper.d.ts} +2 -2
  41. package/dist/components/navigation/{progress-circle.d.ts → progress-circle/progress-circle.d.ts} +1 -1
  42. package/dist/components/navigation/{tabs.d.ts → tabs/tabs.d.ts} +1 -1
  43. package/dist/components/surfaces/index.d.ts +3 -3
  44. package/dist/components/typography/index.d.ts +3 -3
  45. package/dist/components/typography/{link.d.ts → link/link.d.ts} +1 -1
  46. package/dist/components/typography/{text.d.ts → text/text.d.ts} +4 -4
  47. package/dist/cookie-consent-react.cjs.map +1 -1
  48. package/dist/cookie-consent-react.mjs +3 -3
  49. package/dist/cookie-consent-react.mjs.map +1 -1
  50. package/dist/index.css +1 -1
  51. package/dist/utils/{formatDecimalString.d.ts → format-decimal-string.d.ts} +1 -1
  52. package/dist/utils/index.d.ts +5 -5
  53. package/dist/website/alert-banner/alert-banner.d.ts +48 -0
  54. package/dist/website/arrow-reveal-link.d.ts +22 -0
  55. package/dist/website/{use-carousel.d.ts → carousel/use-carousel.d.ts} +3 -1
  56. package/dist/website/{expanding-cards-item.d.ts → expanding-cards/expanding-cards-item.d.ts} +1 -1
  57. package/dist/website/index.d.ts +25 -21
  58. package/dist/website/{payment-feature.d.ts → payment-feature/payment-feature.d.ts} +1 -1
  59. package/dist/website/{section.d.ts → section/section.d.ts} +1 -1
  60. package/dist/website/side-nav/side-nav.d.ts +57 -0
  61. package/dist/website/side-nav/use-side-nav-labels.d.ts +5 -0
  62. package/dist/website/site-footer/flags.d.ts +7 -0
  63. package/dist/website/site-footer/site-footer.d.ts +122 -0
  64. package/dist/website/site-footer/use-site-footer-labels.d.ts +7 -0
  65. package/dist/website/site-header/site-header-menu.d.ts +21 -0
  66. package/dist/website/site-header/site-header.d.ts +141 -0
  67. package/dist/website/site-header-link.d.ts +16 -0
  68. package/dist/website/use-site-header-labels.d.ts +7 -0
  69. package/dist/website.cjs +1 -1
  70. package/dist/website.cjs.map +1 -1
  71. package/dist/website.css +1 -1
  72. package/dist/website.mjs +1185 -433
  73. package/dist/website.mjs.map +1 -1
  74. package/package.json +1 -1
  75. package/dist/components/ui/index.d.ts +0 -2
  76. /package/dist/components/buttons/{use-download-labels.d.ts → download-trigger/use-download-labels.d.ts} +0 -0
  77. /package/dist/components/data-display/{article-card.d.ts → article-card/article-card.d.ts} +0 -0
  78. /package/dist/components/data-display/{avatar.d.ts → avatar/avatar.d.ts} +0 -0
  79. /package/dist/components/{ui → data-display/brand-divider}/brand-divider.d.ts +0 -0
  80. /package/dist/components/data-display/{use-chip-labels.d.ts → chip/use-chip-labels.d.ts} +0 -0
  81. /package/dist/components/data-display/{data-field.d.ts → data-field/data-field.d.ts} +0 -0
  82. /package/dist/components/data-display/{featured-image.d.ts → featured-image/featured-image.d.ts} +0 -0
  83. /package/dist/components/data-display/{arrow-circle.d.ts → link-card/arrow-circle.d.ts} +0 -0
  84. /package/dist/components/data-display/{partner-row.d.ts → partner-row/partner-row.d.ts} +0 -0
  85. /package/dist/components/data-display/{rich-text.d.ts → rich-text/rich-text.d.ts} +0 -0
  86. /package/dist/components/data-display/{star-rating.d.ts → star-rating/star-rating.d.ts} +0 -0
  87. /package/dist/components/data-display/{use-star-rating-labels.d.ts → star-rating/use-star-rating-labels.d.ts} +0 -0
  88. /package/dist/components/data-display/{table.d.ts → table/table.d.ts} +0 -0
  89. /package/dist/components/data-display/{testimonial-card.d.ts → testimonial-card/testimonial-card.d.ts} +0 -0
  90. /package/dist/components/data-display/{tooltip.d.ts → tooltip/tooltip.d.ts} +0 -0
  91. /package/dist/components/data-display/{use-video-player-labels.d.ts → video-player/use-video-player-labels.d.ts} +0 -0
  92. /package/dist/components/data-display/{video-player.d.ts → video-player/video-player.d.ts} +0 -0
  93. /package/dist/components/feedback/{dialog.d.ts → dialog/dialog.d.ts} +0 -0
  94. /package/dist/components/feedback/{simple-dialog.d.ts → dialog/simple-dialog.d.ts} +0 -0
  95. /package/dist/components/feedback/{drawer.d.ts → drawer/drawer.d.ts} +0 -0
  96. /package/dist/components/feedback/{simple-drawer.d.ts → drawer/simple-drawer.d.ts} +0 -0
  97. /package/dist/components/feedback/{skeleton.d.ts → skeleton/skeleton.d.ts} +0 -0
  98. /package/dist/components/form/{amount-slider.d.ts → amount-slider/amount-slider.d.ts} +0 -0
  99. /package/dist/components/form/{checkbox.d.ts → checkbox/checkbox.d.ts} +0 -0
  100. /package/dist/components/form/{input.d.ts → input/input.d.ts} +0 -0
  101. /package/dist/components/form/{number-input.d.ts → number-input/number-input.d.ts} +0 -0
  102. /package/dist/components/form/{switch.d.ts → switch/switch.d.ts} +0 -0
  103. /package/dist/components/{ui → navigation/app-header}/app-header.d.ts +0 -0
  104. /package/dist/components/navigation/{breadcrumbs.d.ts → breadcrumbs/breadcrumbs.d.ts} +0 -0
  105. /package/dist/components/navigation/{use-breadcrumbs-labels.d.ts → breadcrumbs/use-breadcrumbs-labels.d.ts} +0 -0
  106. /package/dist/components/navigation/{step-progress.d.ts → linear-form-stepper/step-progress.d.ts} +0 -0
  107. /package/dist/components/navigation/{pagination.d.ts → pagination/pagination.d.ts} +0 -0
  108. /package/dist/components/navigation/{pagination-dots.d.ts → pagination-dots/pagination-dots.d.ts} +0 -0
  109. /package/dist/components/surfaces/{accordion.d.ts → accordion/accordion.d.ts} +0 -0
  110. /package/dist/components/surfaces/{simple-accordion.d.ts → accordion/simple-accordion.d.ts} +0 -0
  111. /package/dist/components/surfaces/{panel.d.ts → panel/panel.d.ts} +0 -0
  112. /package/dist/components/typography/{lists.d.ts → lists/lists.d.ts} +0 -0
  113. /package/dist/utils/{downloadFile.d.ts → download-file.d.ts} +0 -0
  114. /package/dist/utils/{formatDecimal.d.ts → format-decimal.d.ts} +0 -0
  115. /package/dist/utils/{formatPercentage.d.ts → format-percentage.d.ts} +0 -0
  116. /package/dist/utils/{parseExpirationDate.d.ts → parse-expiration-date.d.ts} +0 -0
  117. /package/dist/website/{brand-letters.d.ts → brand-letters/brand-letters.d.ts} +0 -0
  118. /package/dist/website/{use-brand-letters-labels.d.ts → brand-letters/use-brand-letters-labels.d.ts} +0 -0
  119. /package/dist/website/{calculator.d.ts → calculator/calculator.d.ts} +0 -0
  120. /package/dist/website/{carousel.d.ts → carousel/carousel.d.ts} +0 -0
  121. /package/dist/website/{use-carousel-labels.d.ts → carousel/use-carousel-labels.d.ts} +0 -0
  122. /package/dist/website/{cta-banner.d.ts → cta-banner/cta-banner.d.ts} +0 -0
  123. /package/dist/website/{expanding-cards-context.d.ts → expanding-cards/expanding-cards-context.d.ts} +0 -0
  124. /package/dist/website/{expanding-cards.d.ts → expanding-cards/expanding-cards.d.ts} +0 -0
  125. /package/dist/website/{hero.d.ts → hero/hero.d.ts} +0 -0
  126. /package/dist/website/{hero-service-grid.d.ts → hero-service-grid/hero-service-grid.d.ts} +0 -0
  127. /package/dist/website/{navigation-grid.d.ts → navigation-grid/navigation-grid.d.ts} +0 -0
  128. /package/dist/website/{partner-list.d.ts → partner-list/partner-list.d.ts} +0 -0
  129. /package/dist/website/{use-partner-list-labels.d.ts → partner-list/use-partner-list-labels.d.ts} +0 -0
  130. /package/dist/website/{promo-grid.d.ts → promo-grid/promo-grid.d.ts} +0 -0
  131. /package/dist/website/{section-header.d.ts → section-header/section-header.d.ts} +0 -0
  132. /package/dist/website/{service-card-grid.d.ts → service-card-grid/service-card-grid.d.ts} +0 -0
  133. /package/dist/website/{split-content.d.ts → split-content/split-content.d.ts} +0 -0
  134. /package/dist/website/{stats.d.ts → stats/stats.d.ts} +0 -0
  135. /package/dist/website/{testimonials.d.ts → testimonials/testimonials.d.ts} +0 -0
  136. /package/dist/website/{use-testimonials-labels.d.ts → testimonials/use-testimonials-labels.d.ts} +0 -0
@@ -1,5 +1,5 @@
1
1
  import { ReactNode } from 'react';
2
- import { ButtonRootProps } from './button-base';
2
+ import { ButtonRootProps } from '../button-base';
3
3
  export type ActionButtonSize = "sm" | "lg";
4
4
  /**
5
5
  * With `iconOnly` the label is hidden but stays the accessible name, so it is
@@ -1,6 +1,6 @@
1
1
  import { ReactNode } from 'react';
2
- import { ButtonBaseProps } from './button-base';
3
- export type { ButtonColor, ButtonSize, ButtonVariant, } from './button-base';
2
+ import { ButtonBaseProps } from '../button-base';
3
+ export type { ButtonColor, ButtonSize, ButtonVariant, } from '../button-base';
4
4
  export type ButtonProps = ButtonBaseProps & {
5
5
  /** Icon before the label. Replaced by the spinner while `loading`. */
6
6
  startIcon?: ReactNode;
@@ -1,4 +1,4 @@
1
- import { ButtonBaseProps } from './button-base';
1
+ import { ButtonBaseProps } from '../button-base';
2
2
  export type CloseButtonProps = Omit<ButtonBaseProps, "children" | "aria-label" | "aria-labelledby"> & {
3
3
  /** Accessible name. Defaults to a translated "Close". */
4
4
  label?: string;
@@ -1,5 +1,5 @@
1
- import { DownloadDataSource } from '../../utils/downloadFile';
2
- import { ButtonProps } from './button';
1
+ import { DownloadDataSource } from '../../../utils/download-file';
2
+ import { ButtonProps } from '../button/button';
3
3
  type DownloadTriggerProps = Omit<ButtonProps, "onClick"> & {
4
4
  /** File contents, or a function/promise that resolves to them. */
5
5
  data: DownloadDataSource;
@@ -1,5 +1,5 @@
1
1
  import { ReactNode } from 'react';
2
- import { ButtonBaseProps, ButtonVariant } from './button-base';
2
+ import { ButtonBaseProps, ButtonVariant } from '../button-base';
3
3
  /**
4
4
  * The variants of `Button`, plus `"elevated"`: a white disc with the website's
5
5
  * soft shadow, for controls that float over a picture or a coloured section
@@ -1,6 +1,6 @@
1
- export * from './action-button';
2
- export * from './button';
3
- export * from './close-button';
4
- export * from './download-trigger';
5
- export * from './icon-button';
6
- export * from './skip-link';
1
+ export * from './action-button/action-button';
2
+ export * from './button/button';
3
+ export * from './close-button/close-button';
4
+ export * from './download-trigger/download-trigger';
5
+ export * from './icon-button/icon-button';
6
+ export * from './skip-link/skip-link';
@@ -1,5 +1,5 @@
1
1
  import { ReactNode } from 'react';
2
- import { ButtonBaseProps } from './button-base';
2
+ import { ButtonBaseProps } from '../button-base';
3
3
  export type SkipLinkProps = Pick<ButtonBaseProps, "className" | "style"> & {
4
4
  /** The id of the main content, as a fragment: `#main`. */
5
5
  href: string;
@@ -1,6 +1,6 @@
1
1
  import { useRender } from '@base-ui/react/use-render';
2
2
  import { Ref } from 'react';
3
- import { ColorRoles } from '../color-roles';
3
+ import { ColorRoles } from '../../color-roles';
4
4
  export type CardColor = ColorRoles<"primary" | "tertiary" | "neutral" | "success" | "info" | "warning" | "error">;
5
5
  export type CardVariant = "outlined" | "filled";
6
6
  export type CardProps = Omit<useRender.ComponentProps<"div">, "ref" | "color"> & {
@@ -1,5 +1,5 @@
1
1
  import { ComponentProps, MouseEvent, ReactNode } from 'react';
2
- import { ColorRoles } from '../color-roles';
2
+ import { ColorRoles } from '../../color-roles';
3
3
  export type ChipColor = ColorRoles<"primary" | "tertiary" | "neutral" | "muted" | "success" | "info" | "warning" | "error">;
4
4
  export type ChipVariant = "filled" | "outlined";
5
5
  export type ChipSize = "sm" | "md" | "lg";
@@ -1,16 +1,17 @@
1
- export * from './data-field';
2
- export * from './card';
3
- export * from './chip';
4
- export * from './tooltip';
5
- export * from './avatar';
6
- export * from './star-rating';
7
- export * from './table';
8
- export * from './rich-text';
9
- export * from './featured-image';
10
- export * from './video-player';
11
- export * from './link-card';
12
- export * from './media-card';
13
- export * from './service-card';
14
- export * from './testimonial-card';
15
- export * from './article-card';
16
- export * from './partner-row';
1
+ export * from './data-field/data-field';
2
+ export * from './card/card';
3
+ export * from './chip/chip';
4
+ export * from './tooltip/tooltip';
5
+ export * from './avatar/avatar';
6
+ export * from './star-rating/star-rating';
7
+ export * from './table/table';
8
+ export * from './rich-text/rich-text';
9
+ export * from './featured-image/featured-image';
10
+ export * from './video-player/video-player';
11
+ export * from './link-card/link-card';
12
+ export * from './media-card/media-card';
13
+ export * from './service-card/service-card';
14
+ export * from './testimonial-card/testimonial-card';
15
+ export * from './article-card/article-card';
16
+ export * from './partner-row/partner-row';
17
+ export * from './brand-divider/brand-divider';
@@ -1,6 +1,6 @@
1
1
  import { useRender } from '@base-ui/react/use-render';
2
2
  import { ReactElement, ReactNode, Ref } from 'react';
3
- import { SurfaceRoles } from '../color-roles';
3
+ import { SurfaceRoles } from '../../color-roles';
4
4
  export type LinkCardSurface = SurfaceRoles<"base" | "subtle" | "muted" | "contrast" | "contrast-accent">;
5
5
  /** A link card always leads somewhere: an `href`, or a router link. */
6
6
  type LinkCardTarget = {
@@ -1,6 +1,6 @@
1
1
  import { useRender } from '@base-ui/react/use-render';
2
2
  import { ReactElement, ReactNode, Ref } from 'react';
3
- import { SurfaceRoles } from '../color-roles';
3
+ import { SurfaceRoles } from '../../color-roles';
4
4
  export type MediaCardSurface = SurfaceRoles<"base" | "subtle" | "muted" | "contrast" | "contrast-accent">;
5
5
  export type MediaCardOrientation = "horizontal" | "vertical";
6
6
  export type MediaCardImagePosition = "start" | "end";
@@ -1,6 +1,6 @@
1
1
  import { useRender } from '@base-ui/react/use-render';
2
2
  import { ReactElement, ReactNode, Ref } from 'react';
3
- import { SurfaceRoles } from '../color-roles';
3
+ import { SurfaceRoles } from '../../color-roles';
4
4
  export type ServiceCardSurface = SurfaceRoles<"base" | "subtle" | "muted" | "contrast" | "contrast-accent">;
5
5
  export type ServiceCardLayout = "stacked" | "row";
6
6
  /** `alt` is required with a photo, `""` when it is decoration. */
@@ -1,6 +1,6 @@
1
1
  import { ComponentPropsWithRef } from 'react';
2
- import { AlertProps } from './alert-parts';
3
- export type { AlertColor, AlertProps, AlertSeverity, AlertSize, AlertVariant, } from './alert-parts';
2
+ import { AlertProps } from '../alert-parts';
3
+ export type { AlertColor, AlertProps, AlertSeverity, AlertSize, AlertVariant, } from '../alert-parts';
4
4
  /**
5
5
  * A message with Lea Bank's status colours. The ARIA `role` is derived from
6
6
  * `severity`: `error` / `warning` announce assertively (`role="alert"`) while
@@ -1,4 +1,4 @@
1
- import { AlertProps } from './alert-parts';
1
+ import { AlertProps } from '../alert-parts';
2
2
  export type GlobalAlertProps = AlertProps & {
3
3
  /**
4
4
  * Lets the content span the full width instead of stopping at the `lg`
@@ -1,8 +1,8 @@
1
- export * from './alert';
2
- export * as Dialog from './dialog';
3
- export * as Drawer from './drawer';
4
- export * from './global-alert';
5
- export * from './simple-dialog';
6
- export * from './simple-drawer';
7
- export * from './toast';
8
- export * from './skeleton';
1
+ export * from './alert/alert';
2
+ export * as Dialog from './dialog/dialog';
3
+ export * as Drawer from './drawer/drawer';
4
+ export * from './global-alert/global-alert';
5
+ export * from './dialog/simple-dialog';
6
+ export * from './drawer/simple-drawer';
7
+ export * from './toast/toast';
8
+ export * from './skeleton/skeleton';
@@ -1,5 +1,5 @@
1
1
  import { MouseEvent, ReactNode } from 'react';
2
- import { AlertColor, AlertSeverity } from './alert-parts';
2
+ import { AlertColor, AlertSeverity } from '../alert-parts';
3
3
  export type ToastSeverity = AlertSeverity;
4
4
  export type ToastColor = AlertColor;
5
5
  export type ToastOptions = {
@@ -1,6 +1,6 @@
1
1
  import { ReactElement, ReactNode } from 'react';
2
- import { ComboFieldBaseProps } from './combo-field';
3
- import { SelectOption } from './select-field';
2
+ import { ComboFieldBaseProps } from '../combo-field';
3
+ import { SelectOption } from '../select-field';
4
4
  type AutocompleteBaseProps<Value extends string> = ComboFieldBaseProps & {
5
5
  /** The choices. Typing filters them by their label. */
6
6
  options: readonly SelectOption<Value>[];
@@ -1,4 +1,4 @@
1
- import { ComboFieldBaseProps } from './combo-field';
1
+ import { ComboFieldBaseProps } from '../combo-field';
2
2
  export type EmailInputProps = ComboFieldBaseProps & {
3
3
  /** The address (controlled). Pair with `onValueChange`. */
4
4
  value?: string;
@@ -1,13 +1,13 @@
1
- export * from './amount-slider';
2
- export * from './autocomplete';
3
- export * from './checkbox';
4
- export * from './email-input';
5
- export * from './input';
6
- export * from './multi-select';
7
- export * from './number-input';
1
+ export * from './amount-slider/amount-slider';
2
+ export * from './autocomplete/autocomplete';
3
+ export * from './checkbox/checkbox';
4
+ export * from './email-input/email-input';
5
+ export * from './input/input';
6
+ export * from './multi-select/multi-select';
7
+ export * from './number-input/number-input';
8
8
  export * from './phone-number-input';
9
- export * as RadioGroup from './radio';
10
- export * as RadioCard from './radio-card';
11
- export * from './select';
12
- export * from './slider';
13
- export * from './switch';
9
+ export * as RadioGroup from './radio/radio';
10
+ export * as RadioCard from './radio-card/radio-card';
11
+ export * from './select/select';
12
+ export * from './slider/slider';
13
+ export * from './switch/switch';
@@ -1,5 +1,5 @@
1
1
  import { ReactNode } from 'react';
2
- import { SelectFieldBaseProps, SelectOption } from './select-field';
2
+ import { SelectFieldBaseProps, SelectOption } from '../select-field';
3
3
  export type MultiSelectProps<Value extends string = string> = SelectFieldBaseProps & {
4
4
  /** The choices, shown with a checkbox each. */
5
5
  options: readonly SelectOption<Value>[];
@@ -1,6 +1,6 @@
1
1
  import { ReactNode } from 'react';
2
- import { Currency } from '../../hooks/country/countries';
3
- import { Language } from '../../i18n';
2
+ import { Currency } from '../../../hooks/country/countries';
3
+ import { Language } from '../../../i18n';
4
4
  /**
5
5
  * A unit the library writes for you, in the language of `LeaProvider`:
6
6
  *
@@ -1,6 +1,6 @@
1
1
  import { CSSProperties, ReactNode, Ref } from 'react';
2
- import { RadioSize } from './radio-circle';
3
- import { RadioGroupBaseProps, RadioValue } from './radio-group-root';
2
+ import { RadioSize } from '../radio-circle';
3
+ import { RadioGroupBaseProps, RadioValue } from '../radio-group-root';
4
4
  export type { RadioSize as Size, RadioValue as Value };
5
5
  /**
6
6
  * One choice in the `options` list of a `RadioGroup.Root` or `RadioCard.Group`.
@@ -1,8 +1,8 @@
1
1
  import { LucideIcon } from 'lucide-react';
2
2
  import { CSSProperties, ReactNode, Ref } from 'react';
3
- import { Option } from './radio';
4
- import { RadioSize } from './radio-circle';
5
- import { RadioCardSize, RadioGroupBaseProps, RadioValue } from './radio-group-root';
3
+ import { Option } from '../radio/radio';
4
+ import { RadioSize } from '../radio-circle';
5
+ import { RadioCardSize, RadioGroupBaseProps, RadioValue } from '../radio-group-root';
6
6
  export type RootProps<T extends RadioValue = RadioValue> = {
7
7
  /** What `onValueChange` on the group is called with when this card is picked. */
8
8
  value: T;
@@ -1,5 +1,5 @@
1
- import { SelectFieldBaseProps, SelectOption } from './select-field';
2
- export type { SelectOption };
1
+ import { SelectFieldBaseProps, SelectOption, SelectSize } from '../select-field';
2
+ export type { SelectOption, SelectSize };
3
3
  export type SelectProps<Value extends string = string> = SelectFieldBaseProps & {
4
4
  /** The choices. */
5
5
  options: readonly SelectOption<Value>[];
@@ -9,6 +9,12 @@ export type SelectProps<Value extends string = string> = SelectFieldBaseProps &
9
9
  defaultValue?: Value | "";
10
10
  /** Called with the value of the option the user picks. */
11
11
  onValueChange?: (value: Value) => void;
12
+ /**
13
+ * `"sm"` is a compact 32px field for a narrow place, with the `label`
14
+ * as a line above it instead of floating inside.
15
+ * @default "md"
16
+ */
17
+ size?: SelectSize;
12
18
  };
13
19
  /**
14
20
  * Select on Base UI's `Select`, in the same box as `Input`. The label, the
@@ -30,5 +36,9 @@ export type SelectProps<Value extends string = string> = SelectFieldBaseProps &
30
36
  * Values are strings, and `""` means nothing is chosen. Written with
31
37
  * `as const`, the options give `value` and `onValueChange` their type:
32
38
  * `"no" | "se"` here.
39
+ *
40
+ * An option can carry an `icon` (a flag, a logo), shown before its label in
41
+ * the list and, once it is chosen, in the field. `size="sm"` is a compact
42
+ * 32px field with its label above it.
33
43
  */
34
- export declare function Select<Value extends string = string>({ options, value, defaultValue, onValueChange, ...rest }: SelectProps<Value>): import("react").JSX.Element;
44
+ export declare function Select<Value extends string = string>({ options, value, defaultValue, onValueChange, startAdornment, ...rest }: SelectProps<Value>): import("react").JSX.Element;
@@ -5,7 +5,20 @@ export type SelectOption<Value extends string = string> = {
5
5
  label: string;
6
6
  /** Shown, but not selectable. */
7
7
  disabled?: boolean;
8
+ /**
9
+ * A picture before the label, 20px: a flag, a logo. Decoration, hidden
10
+ * from assistive tech, so the label has to say it all. In a `Select` the
11
+ * chosen option's icon also shows in the field, unless `startAdornment`
12
+ * takes its place.
13
+ */
14
+ icon?: ReactNode;
8
15
  };
16
+ /**
17
+ * `"md"`: the 54px field with a floating label. `"sm"`: a compact 32px field
18
+ * for a narrow place (the country list in the website's footer), with its
19
+ * label as a line above it.
20
+ */
21
+ export type SelectSize = "sm" | "md";
9
22
  /** The props `Select` and `MultiSelect` have in common. */
10
23
  export type SelectFieldBaseProps = {
11
24
  /** Floating label, linked to the select for you. */
@@ -48,6 +61,8 @@ export type SelectFieldBaseProps = {
48
61
  ref?: Ref<HTMLElement>;
49
62
  };
50
63
  type SelectFieldProps = SelectFieldBaseProps & {
64
+ /** `Select` only; `MultiSelect` is always `md`. */
65
+ size?: SelectSize;
51
66
  multiple: boolean;
52
67
  /** The value as Base UI holds it: `null` or an array when empty. */
53
68
  value: string | string[] | null;
@@ -66,7 +81,7 @@ type SelectFieldProps = SelectFieldBaseProps & {
66
81
  /** The `SelectFieldItem`s. */
67
82
  children: ReactNode;
68
83
  };
69
- export declare function SelectField({ label, helperText, error, required, disabled, placeholder, startAdornment, endAdornment, open: openProp, onOpenChange, onBlur, name, id, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, "aria-describedby": ariaDescribedBy, className, style, ref, multiple, value, onValueChange, filled, display, displayHidden, valueText, children, }: SelectFieldProps): import("react").JSX.Element;
84
+ export declare function SelectField({ label, helperText, error, required, disabled, placeholder, startAdornment, endAdornment, open: openProp, onOpenChange, onBlur, name, id, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, "aria-describedby": ariaDescribedBy, className, style, ref, size, multiple, value, onValueChange, filled, display, displayHidden, valueText, children, }: SelectFieldProps): import("react").JSX.Element;
70
85
  type SelectFieldItemProps = {
71
86
  option: SelectOption;
72
87
  disabled?: boolean;
@@ -75,4 +90,8 @@ type SelectFieldItemProps = {
75
90
  };
76
91
  /** One option in the list. */
77
92
  export declare function SelectFieldItem({ option, disabled, children, }: SelectFieldItemProps): import("react").JSX.Element;
93
+ /** The icon of an option, in the list or in the field: 20px, decoration. */
94
+ export declare function OptionIcon({ children }: {
95
+ children: ReactNode;
96
+ }): import("react").JSX.Element;
78
97
  export {};
@@ -1,6 +1,6 @@
1
1
  import { Slider as BaseSlider } from '@base-ui/react/slider';
2
2
  import { ReactNode } from 'react';
3
- import { ColorRoles } from '../color-roles';
3
+ import { ColorRoles } from '../../color-roles';
4
4
  /**
5
5
  * Requires an accessible name so the slider is never nameless. Provide a
6
6
  * visible `label`, or an `aria-label` when the design has none.
@@ -7,5 +7,4 @@ export * from './layout';
7
7
  export * from './navigation';
8
8
  export * from './surfaces';
9
9
  export * from './typography';
10
- export * from './typography/text';
11
- export * from './ui';
10
+ export * from './typography/text/text';
@@ -1,5 +1,5 @@
1
1
  import { useRender } from '@base-ui/react/use-render';
2
- import { Breakpoint } from '../../theme/tokens/breakpoints';
2
+ import { Breakpoint } from '../../../theme/tokens/breakpoints';
3
3
  export type ContainerSize = Exclude<Breakpoint, "xs">;
4
4
  export type ContainerProps = Omit<useRender.ComponentProps<"div">, "ref"> & {
5
5
  /**
@@ -1,6 +1,6 @@
1
1
  import { useRender } from '@base-ui/react/use-render';
2
- import { SpacingFactor } from '../../theme/token-types';
3
- import { Responsive } from './responsive';
2
+ import { SpacingFactor } from '../../../theme/token-types';
3
+ import { Responsive } from '../responsive';
4
4
  export type GridProps = Omit<useRender.ComponentProps<"div">, "ref"> & {
5
5
  /**
6
6
  * Number of equal-width columns.
@@ -1,4 +1,4 @@
1
- export * from './container';
2
- export * from './grid';
1
+ export * from './container/container';
2
+ export * from './grid/grid';
3
3
  export type { Responsive, ResponsiveKey } from './responsive';
4
- export * from './stack';
4
+ export * from './stack/stack';
@@ -1,6 +1,6 @@
1
1
  import { useRender } from '@base-ui/react/use-render';
2
- import { SpacingFactor } from '../../theme/token-types';
3
- import { Responsive } from './responsive';
2
+ import { SpacingFactor } from '../../../theme/token-types';
3
+ import { Responsive } from '../responsive';
4
4
  export type StackDirection = "column" | "row";
5
5
  export type StackAlign = "start" | "center" | "end" | "stretch" | "baseline";
6
6
  export type StackJustify = "start" | "center" | "end" | "between" | "around" | "evenly";
@@ -1,6 +1,6 @@
1
1
  import { ReactNode } from 'react';
2
- import { ProgressCircleColor } from './progress-circle';
3
- import { StepperLabels } from './use-stepper-labels';
2
+ import { ProgressCircleColor } from '../progress-circle/progress-circle';
3
+ import { StepperLabels } from '../use-stepper-labels';
4
4
  export type FormStepperProps = {
5
5
  /** Active step (1-based). */
6
6
  currentStep: number;
@@ -1,9 +1,10 @@
1
- export * from './form-stepper';
2
- export * from './linear-form-stepper';
3
- export * from './progress-circle';
4
- export * from './step-progress';
5
- export * as Tabs from './tabs';
1
+ export * from './form-stepper/form-stepper';
2
+ export * from './linear-form-stepper/linear-form-stepper';
3
+ export * from './progress-circle/progress-circle';
4
+ export * from './linear-form-stepper/step-progress';
5
+ export * as Tabs from './tabs/tabs';
6
6
  export * from './use-stepper-labels';
7
- export * from './breadcrumbs';
8
- export * from './pagination';
9
- export * from './pagination-dots';
7
+ export * from './breadcrumbs/breadcrumbs';
8
+ export * from './pagination/pagination';
9
+ export * from './pagination-dots/pagination-dots';
10
+ export * from './app-header/app-header';
@@ -1,6 +1,6 @@
1
1
  import { ReactNode } from 'react';
2
- import { ProgressCircleColor } from './progress-circle';
3
- import { StepperLabels } from './use-stepper-labels';
2
+ import { ProgressCircleColor } from '../progress-circle/progress-circle';
3
+ import { StepperLabels } from '../use-stepper-labels';
4
4
  export type LinearFormStepperProps = {
5
5
  /** Active step (1-based). */
6
6
  currentStep: number;
@@ -1,4 +1,4 @@
1
- import { ColorRoles } from '../color-roles';
1
+ import { ColorRoles } from '../../color-roles';
2
2
  export type ProgressCircleColor = ColorRoles<"primary" | "tertiary">;
3
3
  export type ProgressCircleProps = {
4
4
  /** Current value, e.g. the active step (1-based). Clamped to `0..max`. */
@@ -1,5 +1,5 @@
1
1
  import { Tabs as BaseTabs } from '@base-ui/react/tabs';
2
- import { ColorRoles } from '../color-roles';
2
+ import { ColorRoles } from '../../color-roles';
3
3
  /** The colours of the active "pill". */
4
4
  export type Color = ColorRoles<"primary" | "secondary">;
5
5
  export type RootProps = Omit<BaseTabs.Root.Props, "color"> & {
@@ -1,3 +1,3 @@
1
- export * as Accordion from './accordion';
2
- export * from './simple-accordion';
3
- export * from './panel';
1
+ export * as Accordion from './accordion/accordion';
2
+ export * from './accordion/simple-accordion';
3
+ export * from './panel/panel';
@@ -1,3 +1,3 @@
1
- export * from './link';
2
- export * as List from './lists';
3
- export * from './text';
1
+ export * from './link/link';
2
+ export * as List from './lists/lists';
3
+ export * from './text/text';
@@ -1,6 +1,6 @@
1
1
  import { useRender } from '@base-ui/react/use-render';
2
2
  import { Ref } from 'react';
3
- import { ColorRoles } from '../color-roles';
3
+ import { ColorRoles } from '../../color-roles';
4
4
  export type LinkColor = ColorRoles<"secondary" | "primary" | "tertiary" | "contrast">;
5
5
  export type LinkProps = Omit<useRender.ComponentProps<"a">, "ref" | "color"> & {
6
6
  /**
@@ -1,9 +1,9 @@
1
1
  import { useRender } from '@base-ui/react/use-render';
2
2
  import { Ref } from 'react';
3
- import { ColorPath } from '../../theme/token-types';
4
- import { fontSizes } from '../../theme/tokens/font-sizes';
5
- import { fontWeights } from '../../theme/tokens/font-weights';
6
- import { TextStyleToken } from '../../theme/tokens/text-styles';
3
+ import { ColorPath } from '../../../theme/token-types';
4
+ import { fontSizes } from '../../../theme/tokens/font-sizes';
5
+ import { fontWeights } from '../../../theme/tokens/font-weights';
6
+ import { TextStyleToken } from '../../../theme/tokens/text-styles';
7
7
  type FontSizeToken = keyof typeof fontSizes;
8
8
  type FontWeightToken = keyof typeof fontWeights;
9
9
  /** A palette token such as `text.subtle`, or `inherit` for the parent's colour. */