@vkzstudio/muza-ui 1.3.0 → 1.4.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 (58) hide show
  1. package/dist/components/BalanceListView/BalanceListView.examples.d.ts +38 -0
  2. package/dist/components/BalanceListView/BalanceListView.examples.d.ts.map +1 -0
  3. package/dist/components/BalanceListView/BalanceListView.stories.d.ts +8 -0
  4. package/dist/components/BalanceListView/BalanceListView.stories.d.ts.map +1 -0
  5. package/dist/components/ButtonArrow/ButtonArrow.d.ts +3 -3
  6. package/dist/components/ButtonArrow/ButtonArrow.d.ts.map +1 -1
  7. package/dist/components/ButtonArrow/ButtonArrow.js +25 -24
  8. package/dist/components/CarouselSection/CarouselSection.examples.d.ts.map +1 -1
  9. package/dist/components/Dialog/Dialog.d.ts +12 -6
  10. package/dist/components/Dialog/Dialog.d.ts.map +1 -1
  11. package/dist/components/Dialog/Dialog.js +116 -120
  12. package/dist/components/Dialog/Dialog.stories.d.ts +1 -0
  13. package/dist/components/Dialog/Dialog.stories.d.ts.map +1 -1
  14. package/dist/components/DropdownMenu/DropdownMenu.d.ts.map +1 -1
  15. package/dist/components/DropdownMenu/DropdownMenu.js +13 -13
  16. package/dist/components/EdgeButton/EdgeButton.d.ts.map +1 -1
  17. package/dist/components/EdgeButton/EdgeButton.js +10 -11
  18. package/dist/components/EmptyState/EmptyState.js +19 -19
  19. package/dist/components/FileUpload/FileItem.d.ts.map +1 -1
  20. package/dist/components/FileUpload/FileItem.js +8 -9
  21. package/dist/components/FileUpload/FileUpload.js +3 -3
  22. package/dist/components/InputOTP/InputOTP.d.ts +95 -0
  23. package/dist/components/InputOTP/InputOTP.d.ts.map +1 -0
  24. package/dist/components/InputOTP/InputOTP.js +187 -0
  25. package/dist/components/InputOTP/InputOTP.stories.d.ts +18 -0
  26. package/dist/components/InputOTP/InputOTP.stories.d.ts.map +1 -0
  27. package/dist/components/InputOTP/index.d.ts +3 -0
  28. package/dist/components/InputOTP/index.d.ts.map +1 -0
  29. package/dist/components/InputOTP/useWebOtpAutofill.d.ts +33 -0
  30. package/dist/components/InputOTP/useWebOtpAutofill.d.ts.map +1 -0
  31. package/dist/components/InputOTP/useWebOtpAutofill.js +25 -0
  32. package/dist/components/MarketNav/MarketNav.examples.d.ts +60 -0
  33. package/dist/components/MarketNav/MarketNav.examples.d.ts.map +1 -0
  34. package/dist/components/MarketNav/MarketNav.stories.d.ts +9 -0
  35. package/dist/components/MarketNav/MarketNav.stories.d.ts.map +1 -0
  36. package/dist/components/PageContainer/PageContainer.d.ts +53 -0
  37. package/dist/components/PageContainer/PageContainer.d.ts.map +1 -0
  38. package/dist/components/PageContainer/PageContainer.js +49 -0
  39. package/dist/components/PageContainer/PageContainer.stories.d.ts +14 -0
  40. package/dist/components/PageContainer/PageContainer.stories.d.ts.map +1 -0
  41. package/dist/components/PageContainer/index.d.ts +2 -0
  42. package/dist/components/PageContainer/index.d.ts.map +1 -0
  43. package/dist/components/ReorderableTable/ReorderableTable.stories.d.ts.map +1 -1
  44. package/dist/components/SegmentedControl/SegmentedControl.js +11 -11
  45. package/dist/components/Tag/Tag.js +1 -1
  46. package/dist/components/UniversalFooter/UniversalFooter.d.ts +6 -5
  47. package/dist/components/UniversalFooter/UniversalFooter.d.ts.map +1 -1
  48. package/dist/components/UniversalFooter/UniversalFooter.js +186 -177
  49. package/dist/components/UniversalFooter/UniversalFooter.stories.d.ts.map +1 -1
  50. package/dist/components/index.d.ts +2 -0
  51. package/dist/components/index.d.ts.map +1 -1
  52. package/dist/index.js +257 -249
  53. package/dist/muza-ui.css +1 -1
  54. package/dist/styles/token-colors.css +1 -0
  55. package/dist/styles/token-sizes.css +36 -16
  56. package/dist/utils/cn.d.ts.map +1 -1
  57. package/dist/utils/cn.js +9 -4
  58. package/package.json +4 -3
@@ -0,0 +1,33 @@
1
+ export interface UseWebOtpAutofillOptions {
2
+ /**
3
+ * Enables the WebOTP listener. Keep it `false` until the OTP screen is
4
+ * actually shown so the browser prompt appears at the right moment.
5
+ */
6
+ enabled: boolean;
7
+ /**
8
+ * Called with the code parsed from the incoming SMS. Receives the raw string
9
+ * exactly as the browser extracted it; the caller is responsible for
10
+ * truncating/validating it against the expected length.
11
+ */
12
+ onReceive: (code: string) => void;
13
+ }
14
+ /**
15
+ * Progressive-enhancement hook for automatic SMS OTP retrieval via the
16
+ * [WebOTP API](https://developer.mozilla.org/en-US/docs/Web/API/WebOTP_API).
17
+ *
18
+ * When enabled on a supporting browser (Android Chrome), it asks the browser
19
+ * to surface the one-time code from an incoming, origin-bound SMS and hands it
20
+ * to `onReceive`. On unsupported browsers (notably iOS Safari and desktop) it
21
+ * is a no-op — there the native `autocomplete="one-time-code"` keyboard
22
+ * suggestion handled by the input element covers autofill instead.
23
+ *
24
+ * The listener is aborted automatically on unmount or when `enabled` becomes
25
+ * `false`, satisfying the API's single-in-flight-request constraint.
26
+ *
27
+ * Requirements for the automatic Android flow to trigger:
28
+ * - Page served over HTTPS (or `localhost`).
29
+ * - The SMS body ends with an origin-bound line, e.g. `@example.com #123456`.
30
+ * - Called after a user gesture that reveals the OTP field.
31
+ */
32
+ export declare const useWebOtpAutofill: ({ enabled, onReceive, }: UseWebOtpAutofillOptions) => void;
33
+ //# sourceMappingURL=useWebOtpAutofill.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useWebOtpAutofill.d.ts","sourceRoot":"","sources":["../../../src/components/InputOTP/useWebOtpAutofill.ts"],"names":[],"mappings":"AAeA,MAAM,WAAW,wBAAwB;IACvC;;;OAGG;IACH,OAAO,EAAE,OAAO,CAAA;IAChB;;;;OAIG;IACH,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CAClC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,iBAAiB,GAAI,yBAG/B,wBAAwB,KAAG,IAkC7B,CAAA"}
@@ -0,0 +1,25 @@
1
+ import { useRef as u, useEffect as f } from "react";
2
+ const c = ({
3
+ enabled: o,
4
+ onReceive: t
5
+ }) => {
6
+ const n = u(t);
7
+ f(() => {
8
+ n.current = t;
9
+ }, [t]), f(() => {
10
+ if (!o || typeof window > "u" || !("OTPCredential" in window)) return;
11
+ const e = new AbortController();
12
+ return navigator.credentials.get({
13
+ // `otp` is not yet part of the standard lib.dom CredentialRequestOptions.
14
+ otp: { transport: ["sms"] },
15
+ signal: e.signal
16
+ }).then((r) => {
17
+ const s = r == null ? void 0 : r.code;
18
+ s && n.current(s);
19
+ }).catch(() => {
20
+ }), () => e.abort();
21
+ }, [o]);
22
+ };
23
+ export {
24
+ c as useWebOtpAutofill
25
+ };
@@ -0,0 +1,60 @@
1
+ import { ReactNode } from 'react';
2
+ /** A single category link shown in the category bar, dropdowns and mobile menu. */
3
+ export interface CategoryItem {
4
+ /** Stable identifier used for the active-item comparison. */
5
+ value: string;
6
+ /** Visible category label. */
7
+ label: string;
8
+ /** Leading icon (rendered at 20px). */
9
+ icon: ReactNode;
10
+ /** Disables the category link. */
11
+ disabled?: boolean;
12
+ }
13
+ /** A single wallet balance — label + pre-formatted amount, optionally interactive. */
14
+ export interface Balance {
15
+ /** Balance label, e.g. "Benefity". */
16
+ label: string;
17
+ /** Pre-formatted balance amount, e.g. "1 200,00 Kč". */
18
+ value: string;
19
+ /**
20
+ * Optional handler — when provided the balance becomes an interactive
21
+ * "credits" link (Figma `State=Hover`); otherwise it renders as static text.
22
+ */
23
+ onSelect?: () => void;
24
+ }
25
+ /** A single account-menu action, shared by the desktop/tablet dropdown and the phone drawer. */
26
+ export interface AccountAction {
27
+ /** Stable identifier. */
28
+ key: string;
29
+ /** Visible label. */
30
+ label: string;
31
+ /** Optional leading icon. */
32
+ icon?: ReactNode;
33
+ /** Greys out the item and blocks interaction. */
34
+ disabled?: boolean;
35
+ /**
36
+ * Invoked when the action is selected. Defined once here so the desktop /
37
+ * tablet dropdown and the phone drawer stay in sync — both call this.
38
+ */
39
+ onSelect?: () => void;
40
+ }
41
+ /** Props for the MarketNav example composition. */
42
+ export interface MarketNavProps {
43
+ /** Category links rendered in the secondary bar / mobile menu. */
44
+ categories: CategoryItem[];
45
+ /** One or more wallet balances shown next to the user controls. */
46
+ balances: Balance[];
47
+ /** Logged-in user's name shown on the account trigger. */
48
+ userName: string;
49
+ /** Number shown on the favourites badge / account menu. Hidden when `0`/omitted. */
50
+ favouritesCount?: number;
51
+ /** Hide the secondary category bar (e.g. on a checkout page). @default true */
52
+ showCategories?: boolean;
53
+ /** Start with the balances masked. @default false */
54
+ defaultBalancesHidden?: boolean;
55
+ }
56
+ export declare const categories: CategoryItem[];
57
+ export declare const balances: Balance[];
58
+ export declare const userName = "Anna Novotn\u00E1";
59
+ export declare const MarketNav: ({ categories, balances, userName, favouritesCount, showCategories, defaultBalancesHidden, }: MarketNavProps) => import("react/jsx-runtime").JSX.Element;
60
+ //# sourceMappingURL=MarketNav.examples.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MarketNav.examples.d.ts","sourceRoot":"","sources":["../../../src/components/MarketNav/MarketNav.examples.tsx"],"names":[],"mappings":"AAWA,OAAO,EAAE,KAAK,SAAS,EAAuB,MAAM,OAAO,CAAA;AAiD3D,mFAAmF;AACnF,MAAM,WAAW,YAAY;IAC3B,6DAA6D;IAC7D,KAAK,EAAE,MAAM,CAAA;IACb,8BAA8B;IAC9B,KAAK,EAAE,MAAM,CAAA;IACb,uCAAuC;IACvC,IAAI,EAAE,SAAS,CAAA;IACf,kCAAkC;IAClC,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,sFAAsF;AACtF,MAAM,WAAW,OAAO;IACtB,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAA;IACb,wDAAwD;IACxD,KAAK,EAAE,MAAM,CAAA;IACb;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;CACtB;AAED,gGAAgG;AAChG,MAAM,WAAW,aAAa;IAC5B,yBAAyB;IACzB,GAAG,EAAE,MAAM,CAAA;IACX,qBAAqB;IACrB,KAAK,EAAE,MAAM,CAAA;IACb,6BAA6B;IAC7B,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,iDAAiD;IACjD,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;CACtB;AAED,mDAAmD;AACnD,MAAM,WAAW,cAAc;IAC7B,kEAAkE;IAClE,UAAU,EAAE,YAAY,EAAE,CAAA;IAC1B,mEAAmE;IACnE,QAAQ,EAAE,OAAO,EAAE,CAAA;IACnB,0DAA0D;IAC1D,QAAQ,EAAE,MAAM,CAAA;IAChB,oFAAoF;IACpF,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,+EAA+E;IAC/E,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,qDAAqD;IACrD,qBAAqB,CAAC,EAAE,OAAO,CAAA;CAChC;AAID,eAAO,MAAM,UAAU,EAAE,YAAY,EAcpC,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,OAAO,EAAkD,CAAA;AAEhF,eAAO,MAAM,QAAQ,sBAAiB,CAAA;AAwUtC,eAAO,MAAM,SAAS,GAAI,6FAOvB,cAAc,4CA4fhB,CAAA"}
@@ -0,0 +1,9 @@
1
+ import { Meta, StoryObj } from '@storybook/react-vite';
2
+ import { MarketNavProps } from './MarketNav.examples';
3
+ declare const meta: Meta<MarketNavProps>;
4
+ export default meta;
5
+ type Story = StoryObj<MarketNavProps>;
6
+ export declare const Responsive: Story;
7
+ export declare const BenefitsHidden: Story;
8
+ export declare const NoCategories: Story;
9
+ //# sourceMappingURL=MarketNav.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MarketNav.stories.d.ts","sourceRoot":"","sources":["../../../src/components/MarketNav/MarketNav.stories.tsx"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAEL,KAAK,cAAc,EAIpB,MAAM,sBAAsB,CAAA;AAG7B,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,cAAc,CA6C9B,CAAA;AAED,eAAe,IAAI,CAAA;AACnB,KAAK,KAAK,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAA;AAErC,eAAO,MAAM,UAAU,EAAE,KAUxB,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,KAc5B,CAAA;AAED,eAAO,MAAM,YAAY,EAAE,KAc1B,CAAA"}
@@ -0,0 +1,53 @@
1
+ import { VariantProps } from 'class-variance-authority';
2
+ import * as React from 'react';
3
+ /**
4
+ * Stepped responsive widths for the shared page column, matching
5
+ * `UniversalFooter`:
6
+ * - `< lg` (mobile/tablet): gutters to the standard page padding so the column
7
+ * never touches the viewport edge.
8
+ * - `< xl` (small desktop): 936px (`58.5rem`)
9
+ * - `< 2xl` (desktop): 1200px (`75rem`)
10
+ * - `≥ 2xl` (wide): 1500px (`93.75rem`)
11
+ *
12
+ * `spacingType` decides *how* the column is realised:
13
+ * - `margin` (default) — a centered, capped column (`max-w-*` + `mx-auto`).
14
+ * Nest it inside a separate full-width band whose background/border spans the
15
+ * viewport.
16
+ * - `padding` — the element spans full width itself and insets its content to
17
+ * the same column via symmetric horizontal padding. Use it when one element
18
+ * must be *both* the full-width band and the column — e.g. a header bar that
19
+ * draws its own bottom border — instead of nesting a centered column inside a
20
+ * separate wrapper.
21
+ *
22
+ * Each variant spells every utility out literally: Tailwind 4's scanner only
23
+ * emits utilities it sees verbatim in source, so the widths can't be factored
24
+ * into shared constants — keep the two `spacingType`s' steps in sync by hand.
25
+ */
26
+ export declare const pageContainerVariants: (props?: ({
27
+ spacingType?: "padding" | "margin" | null | undefined;
28
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
29
+ /**
30
+ * Props for {@link PageContainer} — the shared stepped-width page column.
31
+ * Extends the native `div` attributes (forwarded to the rendered element) and
32
+ * the `spacingType` cva variant documented on {@link pageContainerVariants}.
33
+ */
34
+ export interface PageContainerProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof pageContainerVariants> {
35
+ /**
36
+ * Element to render. Use a semantic element (`header`, `nav`, `main`) when
37
+ * the container *is* a page landmark — especially with `spacingType="padding"`,
38
+ * where the container is the band itself.
39
+ *
40
+ * @default 'div'
41
+ */
42
+ component?: 'div' | 'main' | 'header' | 'nav' | 'section' | 'footer';
43
+ }
44
+ /**
45
+ * Aligns content to the shared stepped-width page column so every page band
46
+ * (header nav, coloured sections, footer) lines up to the same gutters at every
47
+ * breakpoint. Pick `spacingType` by whether the element is nested inside a
48
+ * full-width band (`margin`) or *is* the band itself (`padding`). Add layout
49
+ * utilities (e.g. `flex`, `gap-*`) via `className`.
50
+ */
51
+ declare const PageContainer: React.ForwardRefExoticComponent<PageContainerProps & React.RefAttributes<HTMLElement>>;
52
+ export { PageContainer };
53
+ //# sourceMappingURL=PageContainer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PageContainer.d.ts","sourceRoot":"","sources":["../../../src/components/PageContainer/PageContainer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,KAAK,YAAY,EAAO,MAAM,0BAA0B,CAAA;AAGjE;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,qBAAqB;;8EAuBhC,CAAA;AAEF;;;;GAIG;AACH,MAAM,WAAW,kBACf,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAC1C,YAAY,CAAC,OAAO,qBAAqB,CAAC;IAC5C;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,GAAG,SAAS,GAAG,QAAQ,CAAA;CACrE;AAED;;;;;;GAMG;AACH,QAAA,MAAM,aAAa,wFASlB,CAAA;AAGD,OAAO,EAAE,aAAa,EAAE,CAAA"}
@@ -0,0 +1,49 @@
1
+ import * as a from "react";
2
+ import { cva as o } from "class-variance-authority";
3
+ import { cn as c } from "../../utils/cn.js";
4
+ const p = o("", {
5
+ variants: {
6
+ spacingType: {
7
+ // Centered, capped column — one `max-w` step per breakpoint.
8
+ margin: [
9
+ "mx-auto w-full",
10
+ "max-lg:max-w-[calc(100%-2*var(--spacing-layout-p-standard))]",
11
+ // < lg: gutter
12
+ "max-xl:max-w-[58.5rem]",
13
+ // < xl: 936px
14
+ "max-w-[75rem]",
15
+ // < 2xl: 1200px
16
+ "2xl:max-w-[93.75rem]"
17
+ // ≥ 2xl: 1500px
18
+ ],
19
+ // Full-width band that pads its content to the same column — one
20
+ // symmetric `px` step per breakpoint, mirroring the `margin` widths.
21
+ padding: [
22
+ "w-full overflow-x-hidden",
23
+ "max-lg:px-layout-p-standard",
24
+ // < lg: gutter
25
+ "max-xl:px-[calc((100%-58.5rem)/2)]",
26
+ // < xl: 936px centered
27
+ "px-[calc((100%-75rem)/2)]",
28
+ // < 2xl: 1200px centered
29
+ "2xl:px-[calc((100%-93.75rem)/2)]"
30
+ // ≥ 2xl: 1500px centered
31
+ ]
32
+ }
33
+ },
34
+ defaultVariants: { spacingType: "margin" }
35
+ }), x = a.forwardRef(
36
+ ({ className: r, spacingType: e, component: m, ...n }, t) => {
37
+ const l = m ?? "div";
38
+ return a.createElement(l, {
39
+ ref: t,
40
+ className: c(p({ spacingType: e }), r),
41
+ ...n
42
+ });
43
+ }
44
+ );
45
+ x.displayName = "PageContainer";
46
+ export {
47
+ x as PageContainer,
48
+ p as pageContainerVariants
49
+ };
@@ -0,0 +1,14 @@
1
+ import { Meta, StoryObj } from '@storybook/react-vite';
2
+ import { PageContainer } from './PageContainer';
3
+ declare const meta: Meta<typeof PageContainer>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof PageContainer>;
6
+ export declare const Aligned: Story;
7
+ /**
8
+ * Full storefront page — the `MarketNav` and `CarouselSection` examples plus the
9
+ * library `UniversalFooter`, stacked. All three route their content through the
10
+ * shared stepped-width column, so the nav logo, the section heading and the
11
+ * footer content all line up to the same gutters at every breakpoint.
12
+ */
13
+ export declare const FullPage: Story;
14
+ //# sourceMappingURL=PageContainer.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PageContainer.stories.d.ts","sourceRoot":"","sources":["../../../src/components/PageContainer/PageContainer.stories.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAwC3D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAE/C,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,aAAa,CA6BpC,CAAA;AAED,eAAe,IAAI,CAAA;AACnB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,aAAa,CAAC,CAAA;AAE3C,eAAO,MAAM,OAAO,EAAE,KAarB,CAAA;AAuHD;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,EAAE,KA+BtB,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * from './PageContainer';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/PageContainer/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"ReorderableTable.stories.d.ts","sourceRoot":"","sources":["../../../src/components/ReorderableTable/ReorderableTable.stories.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAc3D,OAAO,EACL,gBAAgB,EAEjB,MAAM,oBAAoB,CAAA;AAE3B,UAAU,QAAQ;IAChB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,QAAQ,GAAG,UAAU,CAAA;CAC9B;AAyCD,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,gBAAgB,CA0EvC,CAAA;AAED,eAAe,IAAI,CAAA;AACnB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAA;AAExD,eAAO,MAAM,OAAO,EAAE,KAkHrB,CAAA;AAMD,eAAO,MAAM,YAAY,EAAE,KAuL1B,CAAA;AAED,eAAO,MAAM,aAAa,EAAE,KAsG3B,CAAA;AAED,eAAO,MAAM,eAAe,EAAE,KA2G7B,CAAA;AAED,eAAO,MAAM,YAAY,EAAE,KA0H1B,CAAA;AAED,eAAO,MAAM,aAAa,EAAE,KAkG3B,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,KA4FtB,CAAA"}
1
+ {"version":3,"file":"ReorderableTable.stories.d.ts","sourceRoot":"","sources":["../../../src/components/ReorderableTable/ReorderableTable.stories.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAe3D,OAAO,EACL,gBAAgB,EAEjB,MAAM,oBAAoB,CAAA;AAE3B,UAAU,QAAQ;IAChB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,QAAQ,GAAG,UAAU,CAAA;CAC9B;AAyCD,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,gBAAgB,CA0EvC,CAAA;AAED,eAAe,IAAI,CAAA;AACnB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAA;AAExD,eAAO,MAAM,OAAO,EAAE,KAgHrB,CAAA;AAMD,eAAO,MAAM,YAAY,EAAE,KAoL1B,CAAA;AAED,eAAO,MAAM,aAAa,EAAE,KAqG3B,CAAA;AAED,eAAO,MAAM,eAAe,EAAE,KA2G7B,CAAA;AAED,eAAO,MAAM,YAAY,EAAE,KA0H1B,CAAA;AAED,eAAO,MAAM,aAAa,EAAE,KAkG3B,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,KA4FtB,CAAA"}
@@ -1,9 +1,9 @@
1
- import { jsx as r, jsxs as n } from "react/jsx-runtime";
1
+ import { jsx as r, jsxs as a } from "react/jsx-runtime";
2
2
  import "react";
3
3
  import * as s from "@radix-ui/react-toggle-group";
4
- import { cn as a } from "../../utils/cn.js";
4
+ import { cn as n } from "../../utils/cn.js";
5
5
  import { Typography as i } from "../Typography/Typography.js";
6
- const g = ({
6
+ const l = ({
7
7
  className: t,
8
8
  children: o,
9
9
  ...e
@@ -11,7 +11,7 @@ const g = ({
11
11
  s.Root,
12
12
  {
13
13
  "data-slot": "toggle-group",
14
- className: a(
14
+ className: n(
15
15
  "group/toggle-group relative flex gap-2xs p-2xs",
16
16
  "max-w-comp-segmentedControl-max-width w-fit",
17
17
  "rounded-md bg-surface-state-bg-info",
@@ -20,18 +20,18 @@ const g = ({
20
20
  ...e,
21
21
  children: o
22
22
  }
23
- ), l = ({
23
+ ), d = ({
24
24
  className: t,
25
25
  children: o,
26
26
  ...e
27
- }) => /* @__PURE__ */ n(
27
+ }) => /* @__PURE__ */ a(
28
28
  s.Item,
29
29
  {
30
30
  "data-slot": "toggle-group-item",
31
- className: a(
31
+ className: n(
32
32
  "max-w-comp-segmentedControl-max-width-item flex items-center justify-center rounded-sm px-xl pt-sm pb-xs",
33
- "transition-200 bg-transparent text-text-brand-def transition-colors",
34
- "hover:text-comp-button-text-brand-def cursor-pointer hover:bg-surface-base-primary-hover",
33
+ "transition-200 bg-transparent text-comp-segmented-control-text-def transition-colors",
34
+ "cursor-pointer hover:bg-surface-base-primary-hover hover:text-comp-segmented-control-text-hover",
35
35
  "focus-visible-default focus-visible:ring-offset-0",
36
36
  "data-[state=on]:bg-surface-base-secondary",
37
37
  "disabled:pointer-events-none disabled:opacity-50",
@@ -55,6 +55,6 @@ const g = ({
55
55
  }
56
56
  );
57
57
  export {
58
- g as SegmentedControl,
59
- l as SegmentedControlItem
58
+ l as SegmentedControl,
59
+ d as SegmentedControlItem
60
60
  };
@@ -16,7 +16,7 @@ const u = d(
16
16
  success: "bg-surface-state-bg-success text-comp-alert-text-success",
17
17
  error: "bg-surface-state-bg-error text-comp-alert-text-error",
18
18
  info: "bg-surface-state-bg-info text-comp-alert-text-info",
19
- invert: "border border-stroke-base-disabled bg-surface-icon-bg-light text-text-invert-def backdrop-blur-[7.5px]"
19
+ invert: "border border-stroke-base-disabled bg-surface-icon-bg-light text-text-invert-fixed backdrop-blur-[7.5px]"
20
20
  },
21
21
  size: {
22
22
  small: "px-sm py-2xs",
@@ -4,8 +4,8 @@ import * as React from 'react';
4
4
  * Props for the UniversalFooter root component.
5
5
  *
6
6
  * Renders a `<footer>` landmark with the dark surface background and an
7
- * inner content container whose width steps with the breakpoint scale
8
- * (matching the project-wide `Container` pattern). Children compose the
7
+ * inner [[PageContainer]] whose width steps with the breakpoint scale, so the
8
+ * footer content aligns with every other page band. Children compose the
9
9
  * footer's vertical sections — typically a [[UniversalFooterTop]] row, a
10
10
  * [[UniversalFooterSections]] block, a [[UniversalFooterBottom]] row, and
11
11
  * a [[UniversalFooterCopyright]] line, each separated by
@@ -152,7 +152,7 @@ declare const UniversalFooterAppBadges: {
152
152
  /** Props for the [[UniversalFooterBottom]] row that pairs meta blocks like the language switcher and an employer link. */
153
153
  export type UniversalFooterBottomProps = React.ComponentProps<'div'>;
154
154
  declare const UniversalFooterBottom: {
155
- ({ className, ...props }: UniversalFooterBottomProps): import("react/jsx-runtime").JSX.Element;
155
+ ({ className, children, ...props }: UniversalFooterBottomProps): import("react/jsx-runtime").JSX.Element;
156
156
  displayName: string;
157
157
  };
158
158
  /**
@@ -165,11 +165,12 @@ export interface UniversalFooterBottomGroupProps extends React.ComponentProps<'d
165
165
  label?: React.ReactNode;
166
166
  /**
167
167
  * Horizontal alignment of the group within the bottom row at `md`+.
168
- * Below `md` both groups stack and align to the start regardless.
168
+ * Below `md` the group's items stack to the start — unless it's the only
169
+ * group in the `UniversalFooterBottom`, in which case they center.
169
170
  *
170
171
  * @default 'start'
171
172
  */
172
- align?: 'start' | 'end';
173
+ align?: 'start' | 'end' | 'center';
173
174
  /**
174
175
  * Typography size of the label. Defaults to `sm` (14px from `text/xs`)
175
176
  * for the language label and should be set to `base` (16px) for the
@@ -1 +1 @@
1
- {"version":3,"file":"UniversalFooter.d.ts","sourceRoot":"","sources":["../../../src/components/UniversalFooter/UniversalFooter.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B,OAAO,EAAkB,KAAK,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAsD5E;;;;;;;;;;GAUG;AACH,MAAM,WAAW,oBAAqB,SAAQ,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC;IAC1E;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B;AAED,QAAA,MAAM,eAAe,uGA2BpB,CAAA;AAGD,gFAAgF;AAChF,MAAM,MAAM,wBAAwB,GAAG,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;AAElE,QAAA,MAAM,mBAAmB;8BAGtB,wBAAwB;;CAa1B,CAAA;AAGD,4FAA4F;AAC5F,MAAM,MAAM,uBAAuB,GAAG,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;AAEjE,QAAA,MAAM,kBAAkB;8BAGrB,uBAAuB;;CAqBzB,CAAA;AAGD;;;;;;GAMG;AACH,MAAM,MAAM,wBAAwB,GAAG,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;AAElE,QAAA,MAAM,mBAAmB;8BAGtB,wBAAwB;;CAc1B,CAAA;AAGD,oFAAoF;AACpF,MAAM,MAAM,8BAA8B,GAAG,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;AAEvE,QAAA,MAAM,yBAAyB;8BAG5B,8BAA8B;;CAkBhC,CAAA;AAGD;;;;;GAKG;AACH,MAAM,WAAW,8BACf,SAAQ,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC;IACjC;;;OAGG;IACH,YAAY,EAAE,MAAM,CAAA;CACrB;AAED,QAAA,MAAM,yBAAyB,uHA6B7B,CAAA;AAGF;;;;GAIG;AACH,MAAM,MAAM,6BAA6B,GAAG,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;AAEtE,QAAA,MAAM,wBAAwB;8BAG3B,6BAA6B;;CAgB/B,CAAA;AAGD,sEAAsE;AACtE,MAAM,MAAM,4BAA4B,GAAG,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;AAEtE;;;;;;;;;;;GAWG;AACH,QAAA,MAAM,uBAAuB;8BAG1B,4BAA4B;;CAoB9B,CAAA;AAGD;;;;;GAKG;AACH,MAAM,WAAW,2BACf,SAAQ,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC;IACnC;;;OAGG;IACH,OAAO,EAAE,KAAK,CAAC,SAAS,CAAA;IACxB;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;CACpB;AAcD,QAAA,MAAM,sBAAsB;0DAMzB,2BAA2B;;CAuD7B,CAAA;AAGD;;;;;GAKG;AACH,MAAM,MAAM,wBAAwB,GAAG,mBAAmB,CAAA;AAE1D,QAAA,MAAM,mBAAmB,+FAcvB,CAAA;AAGF;;;;GAIG;AACH,MAAM,MAAM,+BAA+B,GAAG,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;AAEzE,QAAA,MAAM,0BAA0B;8BAG7B,+BAA+B;;CAgBjC,CAAA;AAGD;;;;;GAKG;AACH,MAAM,MAAM,6BAA6B,GAAG,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;AAEvE,QAAA,MAAM,wBAAwB;8BAG3B,6BAA6B;;CAe/B,CAAA;AAGD,0HAA0H;AAC1H,MAAM,MAAM,0BAA0B,GAAG,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;AAEpE,QAAA,MAAM,qBAAqB;8BAGxB,0BAA0B;;CAqB5B,CAAA;AAGD;;;;GAIG;AACH,MAAM,WAAW,+BACf,SAAQ,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC;IACnC,wFAAwF;IACxF,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACvB;;;;;OAKG;IACH,KAAK,CAAC,EAAE,OAAO,GAAG,KAAK,CAAA;IACvB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,IAAI,GAAG,MAAM,CAAA;CAC1B;AAED,QAAA,MAAM,0BAA0B;iEAO7B,+BAA+B;;CA8BjC,CAAA;AAGD;;;;;GAKG;AACH,MAAM,MAAM,6BAA6B,GAAG,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,CAAA;AAErE,QAAA,MAAM,wBAAwB;8BAG3B,6BAA6B;;CAqB/B,CAAA;AAGD,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,yBAAyB,EACzB,yBAAyB,EACzB,wBAAwB,EACxB,uBAAuB,EACvB,sBAAsB,EACtB,mBAAmB,EACnB,0BAA0B,EAC1B,wBAAwB,EACxB,qBAAqB,EACrB,0BAA0B,EAC1B,wBAAwB,GACzB,CAAA"}
1
+ {"version":3,"file":"UniversalFooter.d.ts","sourceRoot":"","sources":["../../../src/components/UniversalFooter/UniversalFooter.tsx"],"names":[],"mappings":"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"}