@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.
- package/dist/components/BalanceListView/BalanceListView.examples.d.ts +38 -0
- package/dist/components/BalanceListView/BalanceListView.examples.d.ts.map +1 -0
- package/dist/components/BalanceListView/BalanceListView.stories.d.ts +8 -0
- package/dist/components/BalanceListView/BalanceListView.stories.d.ts.map +1 -0
- package/dist/components/ButtonArrow/ButtonArrow.d.ts +3 -3
- package/dist/components/ButtonArrow/ButtonArrow.d.ts.map +1 -1
- package/dist/components/ButtonArrow/ButtonArrow.js +25 -24
- package/dist/components/CarouselSection/CarouselSection.examples.d.ts.map +1 -1
- package/dist/components/Dialog/Dialog.d.ts +12 -6
- package/dist/components/Dialog/Dialog.d.ts.map +1 -1
- package/dist/components/Dialog/Dialog.js +116 -120
- package/dist/components/Dialog/Dialog.stories.d.ts +1 -0
- package/dist/components/Dialog/Dialog.stories.d.ts.map +1 -1
- package/dist/components/DropdownMenu/DropdownMenu.d.ts.map +1 -1
- package/dist/components/DropdownMenu/DropdownMenu.js +13 -13
- package/dist/components/EdgeButton/EdgeButton.d.ts.map +1 -1
- package/dist/components/EdgeButton/EdgeButton.js +10 -11
- package/dist/components/EmptyState/EmptyState.js +19 -19
- package/dist/components/FileUpload/FileItem.d.ts.map +1 -1
- package/dist/components/FileUpload/FileItem.js +8 -9
- package/dist/components/FileUpload/FileUpload.js +3 -3
- package/dist/components/InputOTP/InputOTP.d.ts +95 -0
- package/dist/components/InputOTP/InputOTP.d.ts.map +1 -0
- package/dist/components/InputOTP/InputOTP.js +187 -0
- package/dist/components/InputOTP/InputOTP.stories.d.ts +18 -0
- package/dist/components/InputOTP/InputOTP.stories.d.ts.map +1 -0
- package/dist/components/InputOTP/index.d.ts +3 -0
- package/dist/components/InputOTP/index.d.ts.map +1 -0
- package/dist/components/InputOTP/useWebOtpAutofill.d.ts +33 -0
- package/dist/components/InputOTP/useWebOtpAutofill.d.ts.map +1 -0
- package/dist/components/InputOTP/useWebOtpAutofill.js +25 -0
- package/dist/components/MarketNav/MarketNav.examples.d.ts +60 -0
- package/dist/components/MarketNav/MarketNav.examples.d.ts.map +1 -0
- package/dist/components/MarketNav/MarketNav.stories.d.ts +9 -0
- package/dist/components/MarketNav/MarketNav.stories.d.ts.map +1 -0
- package/dist/components/PageContainer/PageContainer.d.ts +53 -0
- package/dist/components/PageContainer/PageContainer.d.ts.map +1 -0
- package/dist/components/PageContainer/PageContainer.js +49 -0
- package/dist/components/PageContainer/PageContainer.stories.d.ts +14 -0
- package/dist/components/PageContainer/PageContainer.stories.d.ts.map +1 -0
- package/dist/components/PageContainer/index.d.ts +2 -0
- package/dist/components/PageContainer/index.d.ts.map +1 -0
- package/dist/components/ReorderableTable/ReorderableTable.stories.d.ts.map +1 -1
- package/dist/components/SegmentedControl/SegmentedControl.js +11 -11
- package/dist/components/Tag/Tag.js +1 -1
- package/dist/components/UniversalFooter/UniversalFooter.d.ts +6 -5
- package/dist/components/UniversalFooter/UniversalFooter.d.ts.map +1 -1
- package/dist/components/UniversalFooter/UniversalFooter.js +186 -177
- package/dist/components/UniversalFooter/UniversalFooter.stories.d.ts.map +1 -1
- package/dist/components/index.d.ts +2 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/index.js +257 -249
- package/dist/muza-ui.css +1 -1
- package/dist/styles/token-colors.css +1 -0
- package/dist/styles/token-sizes.css +36 -16
- package/dist/utils/cn.d.ts.map +1 -1
- package/dist/utils/cn.js +9 -4
- 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 @@
|
|
|
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;
|
|
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
|
|
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
|
|
4
|
+
import { cn as n } from "../../utils/cn.js";
|
|
5
5
|
import { Typography as i } from "../Typography/Typography.js";
|
|
6
|
-
const
|
|
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:
|
|
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
|
-
),
|
|
23
|
+
), d = ({
|
|
24
24
|
className: t,
|
|
25
25
|
children: o,
|
|
26
26
|
...e
|
|
27
|
-
}) => /* @__PURE__ */
|
|
27
|
+
}) => /* @__PURE__ */ a(
|
|
28
28
|
s.Item,
|
|
29
29
|
{
|
|
30
30
|
"data-slot": "toggle-group-item",
|
|
31
|
-
className:
|
|
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-
|
|
34
|
-
"
|
|
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
|
-
|
|
59
|
-
|
|
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-
|
|
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
|
|
8
|
-
*
|
|
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`
|
|
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;
|
|
1
|
+
{"version":3,"file":"UniversalFooter.d.ts","sourceRoot":"","sources":["../../../src/components/UniversalFooter/UniversalFooter.tsx"],"names":[],"mappings":"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"}
|