@lardexx/react 1.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 (86) hide show
  1. package/LICENSE +23 -0
  2. package/README.md +286 -0
  3. package/dist/icons-BbGGUHyX.cjs +2 -0
  4. package/dist/icons-BbGGUHyX.cjs.map +1 -0
  5. package/dist/icons-DQRCVyKi.js +126 -0
  6. package/dist/icons-DQRCVyKi.js.map +1 -0
  7. package/dist/icons.cjs +2 -0
  8. package/dist/icons.cjs.map +1 -0
  9. package/dist/icons.js +13620 -0
  10. package/dist/icons.js.map +1 -0
  11. package/dist/oneui-react.cjs +2 -0
  12. package/dist/oneui-react.cjs.map +1 -0
  13. package/dist/oneui-react.css +2 -0
  14. package/dist/oneui-react.js +1402 -0
  15. package/dist/oneui-react.js.map +1 -0
  16. package/dist/types/components/AppInfo.d.ts +35 -0
  17. package/dist/types/components/AppInfo.d.ts.map +1 -0
  18. package/dist/types/components/BottomNav.d.ts +25 -0
  19. package/dist/types/components/BottomNav.d.ts.map +1 -0
  20. package/dist/types/components/Button.d.ts +16 -0
  21. package/dist/types/components/Button.d.ts.map +1 -0
  22. package/dist/types/components/ColorPickerPreference.d.ts +19 -0
  23. package/dist/types/components/ColorPickerPreference.d.ts.map +1 -0
  24. package/dist/types/components/DescriptionPreference.d.ts +18 -0
  25. package/dist/types/components/DescriptionPreference.d.ts.map +1 -0
  26. package/dist/types/components/Dialog.d.ts +38 -0
  27. package/dist/types/components/Dialog.d.ts.map +1 -0
  28. package/dist/types/components/Drawer.d.ts +24 -0
  29. package/dist/types/components/Drawer.d.ts.map +1 -0
  30. package/dist/types/components/GridMenuDialog.d.ts +27 -0
  31. package/dist/types/components/GridMenuDialog.d.ts.map +1 -0
  32. package/dist/types/components/HorizontalRadioPreference.d.ts +26 -0
  33. package/dist/types/components/HorizontalRadioPreference.d.ts.map +1 -0
  34. package/dist/types/components/Page.d.ts +66 -0
  35. package/dist/types/components/Page.d.ts.map +1 -0
  36. package/dist/types/components/Preference.d.ts +23 -0
  37. package/dist/types/components/Preference.d.ts.map +1 -0
  38. package/dist/types/components/PreferenceGroup.d.ts +20 -0
  39. package/dist/types/components/PreferenceGroup.d.ts.map +1 -0
  40. package/dist/types/components/ProgressBar.d.ts +35 -0
  41. package/dist/types/components/ProgressBar.d.ts.map +1 -0
  42. package/dist/types/components/ProgressDialog.d.ts +23 -0
  43. package/dist/types/components/ProgressDialog.d.ts.map +1 -0
  44. package/dist/types/components/RelatedCard.d.ts +22 -0
  45. package/dist/types/components/RelatedCard.d.ts.map +1 -0
  46. package/dist/types/components/RoundBox.d.ts +31 -0
  47. package/dist/types/components/RoundBox.d.ts.map +1 -0
  48. package/dist/types/components/Separator.d.ts +13 -0
  49. package/dist/types/components/Separator.d.ts.map +1 -0
  50. package/dist/types/components/Slider.d.ts +39 -0
  51. package/dist/types/components/Slider.d.ts.map +1 -0
  52. package/dist/types/components/SliderPreference.d.ts +22 -0
  53. package/dist/types/components/SliderPreference.d.ts.map +1 -0
  54. package/dist/types/components/Splash.d.ts +21 -0
  55. package/dist/types/components/Splash.d.ts.map +1 -0
  56. package/dist/types/components/Switch.d.ts +15 -0
  57. package/dist/types/components/Switch.d.ts.map +1 -0
  58. package/dist/types/components/SwitchBar.d.ts +38 -0
  59. package/dist/types/components/SwitchBar.d.ts.map +1 -0
  60. package/dist/types/components/SwitchPreference.d.ts +9 -0
  61. package/dist/types/components/SwitchPreference.d.ts.map +1 -0
  62. package/dist/types/components/Tabs.d.ts +31 -0
  63. package/dist/types/components/Tabs.d.ts.map +1 -0
  64. package/dist/types/components/TipPopup.d.ts +27 -0
  65. package/dist/types/components/TipPopup.d.ts.map +1 -0
  66. package/dist/types/components/TipsCard.d.ts +25 -0
  67. package/dist/types/components/TipsCard.d.ts.map +1 -0
  68. package/dist/types/components/Toast.d.ts +28 -0
  69. package/dist/types/components/Toast.d.ts.map +1 -0
  70. package/dist/types/icons.d.ts +47 -0
  71. package/dist/types/icons.d.ts.map +1 -0
  72. package/dist/types/index.d.ts +36 -0
  73. package/dist/types/index.d.ts.map +1 -0
  74. package/dist/types/oneui-icons/OneIcon.d.ts +26 -0
  75. package/dist/types/oneui-icons/OneIcon.d.ts.map +1 -0
  76. package/dist/types/oneui-icons/generated.d.ts +2670 -0
  77. package/dist/types/oneui-icons/generated.d.ts.map +1 -0
  78. package/dist/types/oneui-icons/index.d.ts +18 -0
  79. package/dist/types/oneui-icons/index.d.ts.map +1 -0
  80. package/dist/types/strings.d.ts +44 -0
  81. package/dist/types/strings.d.ts.map +1 -0
  82. package/dist/types/theme.d.ts +47 -0
  83. package/dist/types/theme.d.ts.map +1 -0
  84. package/dist/types/utils.d.ts +19 -0
  85. package/dist/types/utils.d.ts.map +1 -0
  86. package/package.json +71 -0
@@ -0,0 +1,66 @@
1
+ import { type CSSProperties, type ReactNode } from 'react';
2
+ import './Page.css';
3
+ export interface PageActionMode {
4
+ /** Number of selected items. */
5
+ count: number;
6
+ /** Close (cancel) the action mode. */
7
+ onClose: () => void;
8
+ /** Show the "All" checkbox. @default true */
9
+ showAll?: boolean;
10
+ allChecked?: boolean;
11
+ onToggleAll?: (checked: boolean) => void;
12
+ /** Extra toolbar items rendered on the right. */
13
+ actions?: ReactNode;
14
+ }
15
+ export interface PageProps {
16
+ /** Toolbar (collapsed) title. */
17
+ title: string;
18
+ /** Large header title. Defaults to `title`. */
19
+ expandedTitle?: string;
20
+ subtitle?: string;
21
+ expandedSubtitle?: string;
22
+ /**
23
+ * Navigation icon behaviour (left side of the toolbar).
24
+ * Provide `onNavClick` alone for the default hamburger icon,
25
+ * or pass a custom `navIcon`.
26
+ */
27
+ onNavClick?: () => void;
28
+ navIcon?: ReactNode;
29
+ navLabel?: string;
30
+ /** "N" badge over the navigation icon (`setNavigationButtonBadge`). */
31
+ navBadge?: number | string;
32
+ /** Render the nav icon as a back arrow. */
33
+ navAsBack?: boolean;
34
+ /** Right-hand toolbar actions (48×48 icon buttons). */
35
+ actions?: ReactNode;
36
+ /** Collapse the big header on scroll. @default true */
37
+ expandable?: boolean;
38
+ /** Initial (uncontrolled) expansion state. @default true */
39
+ expanded?: boolean;
40
+ /** Called whenever the expansion state changes. */
41
+ onExpandedChange?: (expanded: boolean) => void;
42
+ /** Search mode replaces the toolbar content (`showSearchMode`). */
43
+ searchMode?: boolean;
44
+ searchQuery?: string;
45
+ searchPlaceholder?: string;
46
+ onSearchQueryChange?: (query: string) => void;
47
+ onSearchClose?: () => void;
48
+ /** Extra node rendered inside the search bar (e.g. a voice button). */
49
+ searchTrailing?: ReactNode;
50
+ /** Selection toolbar (`showActionMode`). */
51
+ actionMode?: PageActionMode | null;
52
+ /** Background of the header/toolbar area. Defaults to `--oui-bg`. */
53
+ headerBackground?: string;
54
+ /** Sticky footer, e.g. `<BottomNav …/>` (`toolbarlayout_footer`). */
55
+ footer?: ReactNode;
56
+ className?: string;
57
+ style?: CSSProperties;
58
+ children?: ReactNode;
59
+ }
60
+ /**
61
+ * `ToolbarLayout` port — One UI collapsing header with a pinned toolbar,
62
+ * big expanding title, search mode, action (selection) mode, rounded content
63
+ * surface and footer slot.
64
+ */
65
+ export declare function Page({ title, expandedTitle, subtitle, expandedSubtitle, onNavClick, navIcon, navLabel, navBadge, navAsBack, actions, expandable, expanded, onExpandedChange, searchMode, searchQuery, searchPlaceholder, onSearchQueryChange, onSearchClose, searchTrailing, actionMode, headerBackground, footer, className, style, children, }: PageProps): import("react").JSX.Element;
66
+ //# sourceMappingURL=Page.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Page.d.ts","sourceRoot":"","sources":["../../../src/components/Page.tsx"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,aAAa,EAClB,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAIf,OAAO,YAAY,CAAC;AAEpB,MAAM,WAAW,cAAc;IAC7B,gCAAgC;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,sCAAsC;IACtC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,6CAA6C;IAC7C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACzC,iDAAiD;IACjD,OAAO,CAAC,EAAE,SAAS,CAAC;CACrB;AAED,MAAM,WAAW,SAAS;IACxB,iCAAiC;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,+CAA+C;IAC/C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uEAAuE;IACvE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,2CAA2C;IAC3C,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,uDAAuD;IACvD,OAAO,CAAC,EAAE,SAAS,CAAC;IAEpB,uDAAuD;IACvD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,mDAAmD;IACnD,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IAE/C,mEAAmE;IACnE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,uEAAuE;IACvE,cAAc,CAAC,EAAE,SAAS,CAAC;IAE3B,4CAA4C;IAC5C,UAAU,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;IAEnC,qEAAqE;IACrE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,qEAAqE;IACrE,MAAM,CAAC,EAAE,SAAS,CAAC;IAEnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED;;;;GAIG;AACH,wBAAgB,IAAI,CAAC,EACnB,KAAK,EACL,aAAa,EACb,QAAQ,EACR,gBAAgB,EAChB,UAAU,EACV,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,SAAiB,EACjB,OAAO,EACP,UAAiB,EACjB,QAAe,EACf,gBAAgB,EAChB,UAAkB,EAClB,WAAgB,EAChB,iBAA4B,EAC5B,mBAAmB,EACnB,aAAa,EACb,cAAc,EACd,UAAiB,EACjB,gBAAgB,EAChB,MAAM,EACN,SAAS,EACT,KAAK,EACL,QAAQ,GACT,EAAE,SAAS,+BAgMX"}
@@ -0,0 +1,23 @@
1
+ import type { MouseEvent, ReactNode } from 'react';
2
+ import './Preference.css';
3
+ export interface PreferenceProps {
4
+ /** 24dp leading icon. */
5
+ icon?: ReactNode;
6
+ title: ReactNode;
7
+ summary?: ReactNode;
8
+ /** Trailing widget (value text, switch, radio…). */
9
+ end?: ReactNode;
10
+ /** Makes the row interactive. */
11
+ onClick?: (event: MouseEvent<HTMLDivElement>) => void;
12
+ disabled?: boolean;
13
+ /** Visually emphasise as the selected option. */
14
+ selected?: boolean;
15
+ className?: string;
16
+ children?: ReactNode;
17
+ }
18
+ /**
19
+ * Single preference row — title 16sp + summary 14sp, 24dp horizontal
20
+ * padding, inset dividers (`?attr/listPreferredItemHeight` family).
21
+ */
22
+ export declare function Preference({ icon, title, summary, end, onClick, disabled, selected, className, children, }: PreferenceProps): import("react").JSX.Element;
23
+ //# sourceMappingURL=Preference.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Preference.d.ts","sourceRoot":"","sources":["../../../src/components/Preference.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEnD,OAAO,kBAAkB,CAAC;AAE1B,MAAM,WAAW,eAAe;IAC9B,yBAAyB;IACzB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,KAAK,EAAE,SAAS,CAAC;IACjB,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,oDAAoD;IACpD,GAAG,CAAC,EAAE,SAAS,CAAC;IAChB,iCAAiC;IACjC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC;IACtD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iDAAiD;IACjD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,EACzB,IAAI,EACJ,KAAK,EACL,OAAO,EACP,GAAG,EACH,OAAO,EACP,QAAgB,EAChB,QAAgB,EAChB,SAAS,EACT,QAAQ,GACT,EAAE,eAAe,+BA6CjB"}
@@ -0,0 +1,20 @@
1
+ import type { ReactNode } from 'react';
2
+ import './Preference.css';
3
+ export interface PreferenceGroupProps {
4
+ /** Subheader above the group (13sp bold sesl subheader). */
5
+ title?: ReactNode;
6
+ /**
7
+ * Render the group as an inset rounded card (One UI 4 `InsetPreferenceCategory`
8
+ * look, radius 26). Default is the classic flat section.
9
+ */
10
+ variant?: 'flat' | 'card';
11
+ className?: string;
12
+ children?: ReactNode;
13
+ }
14
+ /**
15
+ * Preference section — `InsetPreferenceCategory` / category subheader.
16
+ * First/last children automatically receive the rounded corners
17
+ * (`positionMode` first_item behaviour).
18
+ */
19
+ export declare function PreferenceGroup({ title, variant, className, children, }: PreferenceGroupProps): import("react").JSX.Element;
20
+ //# sourceMappingURL=PreferenceGroup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PreferenceGroup.d.ts","sourceRoot":"","sources":["../../../src/components/PreferenceGroup.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,kBAAkB,CAAC;AAE1B,MAAM,WAAW,oBAAoB;IACnC,4DAA4D;IAC5D,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,EAC9B,KAAK,EACL,OAAgB,EAChB,SAAS,EACT,QAAQ,GACT,EAAE,oBAAoB,+BAiBtB"}
@@ -0,0 +1,35 @@
1
+ import './ProgressBar.css';
2
+ export interface CircularProgressProps {
3
+ /** Diameter in px. @default 40 (ProgressDialog uses ~56–60). */
4
+ size?: number;
5
+ /** Stroke width in px. @default 3.5 */
6
+ strokeWidth?: number;
7
+ /**
8
+ * Determinate value 0–100. Omit for the indeterminate spinner
9
+ * (`?android:attr/progressBarStyle`).
10
+ */
11
+ value?: number;
12
+ /** Small centered message (e.g. "45%") — circle dialog behaviour. */
13
+ message?: string;
14
+ className?: string;
15
+ 'aria-label'?: string;
16
+ }
17
+ /** SeslProgressBar circular indicator (indeterminate or determinate ring). */
18
+ export declare function CircularProgress({ size, strokeWidth, value, message, className, 'aria-label': ariaLabel, }: CircularProgressProps): import("react").JSX.Element;
19
+ export interface LinearProgressProps {
20
+ /** Determinate value 0–100. Omit for indeterminate. */
21
+ value?: number;
22
+ /** Row rendered under the bar: `{ number, percent }` (horizontal dialog). */
23
+ numberText?: string;
24
+ showPercent?: boolean;
25
+ className?: string;
26
+ 'aria-label'?: string;
27
+ }
28
+ /** SeslProgressBar horizontal indicator. */
29
+ export declare function LinearProgress({ value, numberText, showPercent, className, 'aria-label': ariaLabel, }: LinearProgressProps): import("react").JSX.Element;
30
+ export interface ProgressBarProps extends CircularProgressProps {
31
+ variant?: 'circular' | 'linear';
32
+ }
33
+ /** Convenience wrapper choosing the circular or horizontal indicator. */
34
+ export declare function ProgressBar({ variant, ...props }: ProgressBarProps): import("react").JSX.Element;
35
+ //# sourceMappingURL=ProgressBar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProgressBar.d.ts","sourceRoot":"","sources":["../../../src/components/ProgressBar.tsx"],"names":[],"mappings":"AACA,OAAO,mBAAmB,CAAC;AAE3B,MAAM,WAAW,qBAAqB;IACpC,gEAAgE;IAChE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uCAAuC;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qEAAqE;IACrE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,8EAA8E;AAC9E,wBAAgB,gBAAgB,CAAC,EAC/B,IAAS,EACT,WAAiB,EACjB,KAAK,EACL,OAAO,EACP,SAAS,EACT,YAAY,EAAE,SAAS,GACxB,EAAE,qBAAqB,+BA6CvB;AAED,MAAM,WAAW,mBAAmB;IAClC,uDAAuD;IACvD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6EAA6E;IAC7E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,4CAA4C;AAC5C,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,UAAU,EACV,WAAmB,EACnB,SAAS,EACT,YAAY,EAAE,SAAS,GACxB,EAAE,mBAAmB,+BA8BrB;AAED,MAAM,WAAW,gBAAiB,SAAQ,qBAAqB;IAC7D,OAAO,CAAC,EAAE,UAAU,GAAG,QAAQ,CAAC;CACjC;AAED,yEAAyE;AACzE,wBAAgB,WAAW,CAAC,EAC1B,OAAoB,EACpB,GAAG,KAAK,EACT,EAAE,gBAAgB,+BAMlB"}
@@ -0,0 +1,23 @@
1
+ import type { ReactNode } from 'react';
2
+ import { type DialogProps } from './Dialog';
3
+ import './ProgressDialog.css';
4
+ export interface ProgressDialogProps extends Omit<DialogProps, 'title' | 'actions' | 'children'> {
5
+ /**
6
+ * - `circle` — 55–60dp spinner with optional centered % (`oui_dialog_progress_dialog_circle`)
7
+ * - `spinner` — horizontal spinner + message row (`oui_dialog_progress_dialog_spinner`)
8
+ * - `horizontal` — message + determinate bar with number/percent
9
+ * (`oui_dialog_progress_dialog_horizontal`)
10
+ * @default 'circle'
11
+ */
12
+ variant?: 'circle' | 'spinner' | 'horizontal';
13
+ message?: ReactNode;
14
+ /** `horizontal` variant: determinate value 0–100. */
15
+ value?: number;
16
+ /** `horizontal` variant: left-side counter, e.g. "34/100". */
17
+ numberText?: string;
18
+ /** `circle` variant: show the value as a % inside the spinner. */
19
+ percentText?: string;
20
+ }
21
+ /** ProgressDialog port (circle / spinner / horizontal layouts). */
22
+ export declare function ProgressDialog({ open, onClose, variant, message, value, numberText, percentText, disableDismiss, className, maxWidth, 'aria-label': ariaLabel, }: ProgressDialogProps): import("react").JSX.Element;
23
+ //# sourceMappingURL=ProgressDialog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProgressDialog.d.ts","sourceRoot":"","sources":["../../../src/components/ProgressDialog.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,EAAU,KAAK,WAAW,EAAE,MAAM,UAAU,CAAC;AAEpD,OAAO,sBAAsB,CAAC;AAE9B,MAAM,WAAW,mBACf,SAAQ,IAAI,CAAC,WAAW,EAAE,OAAO,GAAG,SAAS,GAAG,UAAU,CAAC;IAC3D;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,YAAY,CAAC;IAC9C,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,qDAAqD;IACrD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8DAA8D;IAC9D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kEAAkE;IAClE,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,mEAAmE;AACnE,wBAAgB,cAAc,CAAC,EAC7B,IAAI,EACJ,OAAO,EACP,OAAkB,EAClB,OAAO,EACP,KAAK,EACL,UAAU,EACV,WAAW,EACX,cAAqB,EACrB,SAAS,EACT,QAAQ,EACR,YAAY,EAAE,SAAS,GACxB,EAAE,mBAAmB,+BAwDrB"}
@@ -0,0 +1,22 @@
1
+ import type { ReactNode } from 'react';
2
+ import './RelatedCard.css';
3
+ export interface RelatedLink {
4
+ key?: string;
5
+ label: string;
6
+ onClick?: () => void;
7
+ href?: string;
8
+ }
9
+ export interface RelatedCardProps {
10
+ /** Defaults to "Looking for something else?" (`oui_relative_description`). */
11
+ title?: ReactNode;
12
+ links: RelatedLink[];
13
+ onLinkClick?: (link: RelatedLink, index: number) => void;
14
+ className?: string;
15
+ }
16
+ /**
17
+ * RelatedCard / "Related links" — `oui_view_relative_link.xml`:
18
+ * tinted 26dp-radius card, 18sp bold title, stacked bold accent links
19
+ * (16sp, padding 16/6, pressed ripple).
20
+ */
21
+ export declare function RelatedCard({ title, links, onLinkClick, className, }: RelatedCardProps): import("react").JSX.Element;
22
+ //# sourceMappingURL=RelatedCard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RelatedCard.d.ts","sourceRoot":"","sources":["../../../src/components/RelatedCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,OAAO,mBAAmB,CAAC;AAE3B,MAAM,WAAW,WAAW;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,gBAAgB;IAC/B,8EAA8E;IAC9E,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACzD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,KAAK,EACL,WAAW,EACX,SAAS,GACV,EAAE,gBAAgB,+BA0ClB"}
@@ -0,0 +1,31 @@
1
+ import './RoundBox.css';
2
+ /** Corner bit flags, matching `roundedCorners` in attrs.xml. */
3
+ export declare const ROUND_NONE = 0;
4
+ export declare const ROUND_TOP_LEFT = 1;
5
+ export declare const ROUND_TOP_RIGHT = 2;
6
+ export declare const ROUND_BOTTOM_LEFT = 4;
7
+ export declare const ROUND_BOTTOM_RIGHT = 8;
8
+ export declare const ROUND_ALL = 15;
9
+ export declare const ROUND_TOP: number;
10
+ export declare const ROUND_BOTTOM: number;
11
+ export type CornerFlags = 'all' | 'none' | 'top' | 'bottom' | 'topLeft' | 'topRight' | 'bottomLeft' | 'bottomRight';
12
+ export interface RoundBoxProps extends React.HTMLAttributes<HTMLDivElement> {
13
+ /**
14
+ * Rounded corners as an Android-style bit mask
15
+ * (`ROUND_ALL`, `ROUND_TOP`, …) or a friendly alias.
16
+ * @default ROUND_ALL
17
+ */
18
+ roundedCorners?: number | CornerFlags;
19
+ /** Corner radius in px (defaults to `--oui-radius-xl` = 26px). */
20
+ radius?: number;
21
+ /** Fill color; defaults to `--oui-bg` (the `roundedCornerColor` analogue). */
22
+ color?: string;
23
+ as?: 'div' | 'section' | 'aside' | 'main' | 'header' | 'footer' | 'article';
24
+ children?: React.ReactNode;
25
+ }
26
+ /**
27
+ * Container with selective rounded corners — the web equivalent of
28
+ * `RoundFrameLayout` / `RoundLinearLayout`.
29
+ */
30
+ export declare function RoundBox({ roundedCorners, radius, color, as: Tag, className, style, children, ...props }: RoundBoxProps): import("react").JSX.Element;
31
+ //# sourceMappingURL=RoundBox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RoundBox.d.ts","sourceRoot":"","sources":["../../../src/components/RoundBox.tsx"],"names":[],"mappings":"AACA,OAAO,gBAAgB,CAAC;AAExB,gEAAgE;AAChE,eAAO,MAAM,UAAU,IAAO,CAAC;AAC/B,eAAO,MAAM,cAAc,IAAO,CAAC;AACnC,eAAO,MAAM,eAAe,IAAO,CAAC;AACpC,eAAO,MAAM,iBAAiB,IAAO,CAAC;AACtC,eAAO,MAAM,kBAAkB,IAAO,CAAC;AACvC,eAAO,MAAM,SAAS,KAAO,CAAC;AAC9B,eAAO,MAAM,SAAS,QAAmC,CAAC;AAC1D,eAAO,MAAM,YAAY,QAAyC,CAAC;AAEnE,MAAM,MAAM,WAAW,GACnB,KAAK,GACL,MAAM,GACN,KAAK,GACL,QAAQ,GACR,SAAS,GACT,UAAU,GACV,YAAY,GACZ,aAAa,CAAC;AAElB,MAAM,WAAW,aACf,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IAC5C;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC;IACtC,kEAAkE;IAClE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8EAA8E;IAC9E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,EAAE,CAAC,EAAE,KAAK,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;IAC5E,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAwBD;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,EACvB,cAA0B,EAC1B,MAAM,EACN,KAAK,EACL,EAAE,EAAE,GAAW,EACf,SAAS,EACT,KAAK,EACL,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,aAAa,+BAqBf"}
@@ -0,0 +1,13 @@
1
+ import type { HTMLAttributes, ReactNode } from 'react';
2
+ import './Separator.css';
3
+ export interface SeparatorProps extends HTMLAttributes<HTMLDivElement> {
4
+ /**
5
+ * With text: renders a bold list-separator label
6
+ * (`Widget.AppCompat.Light.TextView.ListSeparator`, 13sp bold,
7
+ * `sesl_list_subheader_text_color`).
8
+ * Without text: renders a hairline divider.
9
+ */
10
+ children?: ReactNode;
11
+ }
12
+ export declare function Separator({ children, className, ...props }: SeparatorProps): import("react").JSX.Element;
13
+ //# sourceMappingURL=Separator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Separator.d.ts","sourceRoot":"","sources":["../../../src/components/Separator.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvD,OAAO,iBAAiB,CAAC;AAEzB,MAAM,WAAW,cAAe,SAAQ,cAAc,CAAC,cAAc,CAAC;IACpE;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,wBAAgB,SAAS,CAAC,EACxB,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACT,EAAE,cAAc,+BAehB"}
@@ -0,0 +1,39 @@
1
+ import { type CSSProperties } from 'react';
2
+ import './Slider.css';
3
+ export type SliderValue = number | [number, number];
4
+ export interface SliderProps {
5
+ /** Single value, or `[low, high]` for the dual/overlap mode. */
6
+ value: SliderValue;
7
+ onChange?: (value: SliderValue) => void;
8
+ /** Called once at the end of an interaction. */
9
+ onCommit?: (value: SliderValue) => void;
10
+ min?: number;
11
+ max?: number;
12
+ /** @default 1 */
13
+ step?: number;
14
+ disabled?: boolean;
15
+ /**
16
+ * Show the discrete tick dots (`oui_seekbar_tick_mark`, 7dp ovals
17
+ * in `oui_seekbar_circle_marker_color`).
18
+ */
19
+ ticks?: boolean;
20
+ /** Show the −/+ stepper buttons (`SeekBarPreferencePro` adjustable mode). */
21
+ stepper?: boolean;
22
+ /** Centered value readout under the track (`seekbar_value`, colorPrimaryDark). */
23
+ showValue?: boolean;
24
+ /** Suffix appended to the readout, e.g. `%`. */
25
+ units?: string;
26
+ /** Custom readout formatter. */
27
+ formatValue?: (value: number) => string;
28
+ /** Accessible name. */
29
+ label?: string;
30
+ className?: string;
31
+ style?: CSSProperties;
32
+ }
33
+ /**
34
+ * Slider — port of `HapticSeekBar` / `SeekBarPreferencePro`.
35
+ * Supports tick marks, ± steppers, value readout and the dual-thumb
36
+ * overlap mode (orange `sesl_seekbar_overlap_color_activated`).
37
+ */
38
+ export declare function Slider({ value, onChange, onCommit, min, max, step, disabled, ticks, stepper, showValue, units, formatValue, label, className, style, }: SliderProps): import("react").JSX.Element;
39
+ //# sourceMappingURL=Slider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Slider.d.ts","sourceRoot":"","sources":["../../../src/components/Slider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,aAAa,EAEnB,MAAM,OAAO,CAAC;AAGf,OAAO,cAAc,CAAC;AAEtB,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAEpD,MAAM,WAAW,WAAW;IAC1B,gEAAgE;IAChE,KAAK,EAAE,WAAW,CAAC;IACnB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IACxC,gDAAgD;IAChD,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IACxC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,iBAAiB;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,6EAA6E;IAC7E,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,kFAAkF;IAClF,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,gDAAgD;IAChD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gCAAgC;IAChC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACxC,uBAAuB;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB;AAaD;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,EACrB,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,GAAO,EACP,GAAS,EACT,IAAQ,EACR,QAAgB,EAChB,KAAa,EACb,OAAe,EACf,SAAiB,EACjB,KAAU,EACV,WAAW,EACX,KAAK,EACL,SAAS,EACT,KAAK,GACN,EAAE,WAAW,+BAuOb"}
@@ -0,0 +1,22 @@
1
+ import { type PreferenceProps } from './Preference';
2
+ import { type SliderValue } from './Slider';
3
+ export interface SliderPreferenceProps extends Omit<PreferenceProps, 'end' | 'onClick' | 'children'> {
4
+ value: SliderValue;
5
+ onChange?: (value: SliderValue) => void;
6
+ min?: number;
7
+ max?: number;
8
+ step?: number;
9
+ /** Show the centered value readout (colorPrimaryDark). @default true */
10
+ showValue?: boolean;
11
+ units?: string;
12
+ formatValue?: (value: number) => string;
13
+ /** Show the −/+ stepper buttons. */
14
+ stepper?: boolean;
15
+ ticks?: boolean;
16
+ }
17
+ /**
18
+ * `SeekBarPreferencePro` — preference header with an inline slider,
19
+ * optional value readout, units and steppers.
20
+ */
21
+ export declare function SliderPreference({ value, onChange, min, max, step, showValue, units, formatValue, stepper, ticks, title, summary, disabled, className, ...rest }: SliderPreferenceProps): import("react").JSX.Element;
22
+ //# sourceMappingURL=SliderPreference.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SliderPreference.d.ts","sourceRoot":"","sources":["../../../src/components/SliderPreference.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAU,KAAK,WAAW,EAAE,MAAM,UAAU,CAAC;AAEpD,MAAM,WAAW,qBACf,SAAQ,IAAI,CAAC,eAAe,EAAE,KAAK,GAAG,SAAS,GAAG,UAAU,CAAC;IAC7D,KAAK,EAAE,WAAW,CAAC;IACnB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IACxC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,wEAAwE;IACxE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACxC,oCAAoC;IACpC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,EACL,QAAQ,EACR,GAAG,EACH,GAAG,EACH,IAAI,EACJ,SAAgB,EAChB,KAAK,EACL,WAAW,EACX,OAAe,EACf,KAAa,EACb,KAAK,EACL,OAAO,EACP,QAAQ,EACR,SAAS,EACT,GAAG,IAAI,EACR,EAAE,qBAAqB,+BA2BvB"}
@@ -0,0 +1,21 @@
1
+ import type { CSSProperties, ReactNode } from 'react';
2
+ import './Splash.css';
3
+ export interface SplashProps {
4
+ /** Logo / illustration rendered at 80×80dp. */
5
+ image?: ReactNode;
6
+ /** App title under the logo (30dp, expanded-collapsing appearance). */
7
+ title?: string;
8
+ /**
9
+ * Play the wiggle intro from `anim/oui_splash_animation.xml`
10
+ * (rotate 0→25→−45→35→−25→10 ≈ 560ms).
11
+ * @default false
12
+ */
13
+ animated?: boolean;
14
+ /** Repeat the animation while the splash is visible. @default false */
15
+ loop?: boolean;
16
+ className?: string;
17
+ style?: CSSProperties;
18
+ }
19
+ /** `SplashLayout` — centered logo + title splash screen. */
20
+ export declare function Splash({ image, title, animated, loop, className, style, }: SplashProps): import("react").JSX.Element;
21
+ //# sourceMappingURL=Splash.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Splash.d.ts","sourceRoot":"","sources":["../../../src/components/Splash.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEtD,OAAO,cAAc,CAAC;AAEtB,MAAM,WAAW,WAAW;IAC1B,+CAA+C;IAC/C,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,uEAAuE;IACvE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,uEAAuE;IACvE,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB;AAED,4DAA4D;AAC5D,wBAAgB,MAAM,CAAC,EACrB,KAAK,EACL,KAAK,EACL,QAAgB,EAChB,IAAY,EACZ,SAAS,EACT,KAAK,GACN,EAAE,WAAW,+BAiBb"}
@@ -0,0 +1,15 @@
1
+ import { type ButtonHTMLAttributes } from 'react';
2
+ import './Switch.css';
3
+ export interface SwitchProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'onChange' | 'value'> {
4
+ checked?: boolean;
5
+ defaultChecked?: boolean;
6
+ onChange?: (checked: boolean) => void;
7
+ /** Accessible label (falls back to the button's aria-label). */
8
+ label?: string;
9
+ }
10
+ /**
11
+ * One UI switch — ported from `SeslSwitch`
12
+ * (sesl_switch_track/thumb colors from oneui-core).
13
+ */
14
+ export declare const Switch: import("react").ForwardRefExoticComponent<SwitchProps & import("react").RefAttributes<HTMLButtonElement>>;
15
+ //# sourceMappingURL=Switch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Switch.d.ts","sourceRoot":"","sources":["../../../src/components/Switch.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAE9D,OAAO,cAAc,CAAC;AAEtB,MAAM,WAAW,WACf,SAAQ,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC;IAC3E,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,gEAAgE;IAChE,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,eAAO,MAAM,MAAM,2GAsClB,CAAC"}
@@ -0,0 +1,38 @@
1
+ import type { ReactNode } from 'react';
2
+ import { IconClose } from '../icons';
3
+ import './SwitchBar.css';
4
+ export interface SwitchBarProps {
5
+ /** Whether the switch is on. */
6
+ checked?: boolean;
7
+ defaultChecked?: boolean;
8
+ onChange?: (checked: boolean) => void;
9
+ /** Bar label. */
10
+ label?: string;
11
+ /** Show a small spinner next to the label while an operation is running. */
12
+ loading?: boolean;
13
+ /**
14
+ * Render the page content under the bar inside a top-rounded container
15
+ * (the `SwitchBarLayout` behaviour). Set `false` when embedding
16
+ * the bar standalone.
17
+ * @default true
18
+ */
19
+ wrapContent?: boolean;
20
+ className?: string;
21
+ contentClassName?: string;
22
+ children?: ReactNode;
23
+ }
24
+ /**
25
+ * Switch bar + rounded content area — port of `SwitchBarLayout`
26
+ * (sesl_switchbar_height = 64dp, 20dp margin, top-rounded container).
27
+ */
28
+ export declare function SwitchBar({ checked, defaultChecked, onChange, label, loading, wrapContent, className, contentClassName, children, }: SwitchBarProps): import("react").JSX.Element;
29
+ export interface SwitchBarActionProps {
30
+ label?: string;
31
+ onClick?: () => void;
32
+ className?: string;
33
+ }
34
+ /** Convenience right-aligned text action shown inside the switch bar. */
35
+ export declare function SwitchBarAction({ label, onClick, className, }: SwitchBarActionProps): import("react").JSX.Element;
36
+ /** Close icon re-export for switch-bar toolbars. */
37
+ export declare const SwitchBarCloseIcon: typeof IconClose;
38
+ //# sourceMappingURL=SwitchBar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SwitchBar.d.ts","sourceRoot":"","sources":["../../../src/components/SwitchBar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIvC,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,iBAAiB,CAAC;AAEzB,MAAM,WAAW,cAAc;IAC7B,gCAAgC;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,iBAAiB;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4EAA4E;IAC5E,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,EACxB,OAAO,EACP,cAAc,EACd,QAAQ,EACR,KAAK,EACL,OAAe,EACf,WAAkB,EAClB,SAAS,EACT,gBAAgB,EAChB,QAAQ,GACT,EAAE,cAAc,+BA6BhB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,yEAAyE;AACzE,wBAAgB,eAAe,CAAC,EAC9B,KAAK,EACL,OAAO,EACP,SAAS,GACV,EAAE,oBAAoB,+BAUtB;AAED,oDAAoD;AACpD,eAAO,MAAM,kBAAkB,kBAAY,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { type PreferenceProps } from './Preference';
2
+ export interface SwitchPreferenceProps extends Omit<PreferenceProps, 'end' | 'onClick' | 'children'> {
3
+ checked?: boolean;
4
+ defaultChecked?: boolean;
5
+ onChange?: (checked: boolean) => void;
6
+ }
7
+ /** Preference row with a trailing One UI switch. */
8
+ export declare function SwitchPreference({ checked, defaultChecked, onChange, disabled, title, ...rest }: SwitchPreferenceProps): import("react").JSX.Element;
9
+ //# sourceMappingURL=SwitchPreference.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SwitchPreference.d.ts","sourceRoot":"","sources":["../../../src/components/SwitchPreference.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAGhE,MAAM,WAAW,qBACf,SAAQ,IAAI,CAAC,eAAe,EAAE,KAAK,GAAG,SAAS,GAAG,UAAU,CAAC;IAC7D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;CACvC;AAED,oDAAoD;AACpD,wBAAgB,gBAAgB,CAAC,EAC/B,OAAO,EACP,cAAc,EACd,QAAQ,EACR,QAAQ,EACR,KAAK,EACL,GAAG,IAAI,EACR,EAAE,qBAAqB,+BAoBvB"}
@@ -0,0 +1,31 @@
1
+ import { type ReactNode } from 'react';
2
+ import './Tabs.css';
3
+ export interface TabItem {
4
+ key: string;
5
+ label: string;
6
+ icon?: ReactNode;
7
+ badge?: number | string;
8
+ disabled?: boolean;
9
+ }
10
+ export interface TabsProps {
11
+ items: TabItem[];
12
+ value: string;
13
+ onChange?: (key: string) => void;
14
+ /**
15
+ * `underline` — Material/One UI scrolling tabs with an indicator
16
+ * (MarginsTabLayout, 24dp side padding).
17
+ * `pill` — segmented pill tabs (Start/End style).
18
+ * @default 'underline'
19
+ */
20
+ variant?: 'underline' | 'pill';
21
+ /** Horizontal padding around the tab strip. @default 24 */
22
+ inset?: number;
23
+ className?: string;
24
+ 'aria-label'?: string;
25
+ }
26
+ /**
27
+ * Tab strip — port of `MarginsTabLayout`
28
+ * (`oui_tab_layout_default_padding` = 24dp).
29
+ */
30
+ export declare function Tabs({ items, value, onChange, variant, inset, className, 'aria-label': ariaLabel, }: TabsProps): import("react").JSX.Element;
31
+ //# sourceMappingURL=Tabs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tabs.d.ts","sourceRoot":"","sources":["../../../src/components/Tabs.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAE/C,OAAO,YAAY,CAAC;AAEpB,MAAM,WAAW,OAAO;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC;;;;;OAKG;IACH,OAAO,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC;IAC/B,2DAA2D;IAC3D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;GAGG;AACH,wBAAgB,IAAI,CAAC,EACnB,KAAK,EACL,KAAK,EACL,QAAQ,EACR,OAAqB,EACrB,KAAU,EACV,SAAS,EACT,YAAY,EAAE,SAAS,GACxB,EAAE,SAAS,+BAwDX"}
@@ -0,0 +1,27 @@
1
+ import { type ReactNode } from 'react';
2
+ import { type AnchorLike } from '../utils';
3
+ import './TipPopup.css';
4
+ export interface TipPopupProps {
5
+ open: boolean;
6
+ /** Anchor element / ref / rect the balloon points at. */
7
+ anchor: AnchorLike;
8
+ onClose?: () => void;
9
+ /** Balloon message (defaults to the `sem_tip_popup_hint_string`). */
10
+ children?: ReactNode;
11
+ /** Optional action button rendered under the message. */
12
+ action?: {
13
+ label: string;
14
+ onClick?: () => void;
15
+ };
16
+ /** @default 'top' */
17
+ placement?: 'top' | 'bottom';
18
+ /** Hide the default close-on-outside-click / Escape behaviour. */
19
+ disableDismiss?: boolean;
20
+ className?: string;
21
+ }
22
+ /**
23
+ * TipPopup — dark balloon tooltip (`sem_tip_popup_*`: #474747 background,
24
+ * 15sp message, optional 36dp-min action button, 16×12 arrow).
25
+ */
26
+ export declare function TipPopup({ open, anchor, onClose, children, action, placement, disableDismiss, className, }: TipPopupProps): import("react").ReactPortal | null;
27
+ //# sourceMappingURL=TipPopup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TipPopup.d.ts","sourceRoot":"","sources":["../../../src/components/TipPopup.tsx"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAEf,OAAO,EAAqD,KAAK,UAAU,EAAE,MAAM,UAAU,CAAC;AAC9F,OAAO,gBAAgB,CAAC;AAExB,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,OAAO,CAAC;IACd,yDAAyD;IACzD,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,qEAAqE;IACrE,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,yDAAyD;IACzD,MAAM,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;KAAE,CAAC;IACjD,qBAAqB;IACrB,SAAS,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC;IAC7B,kEAAkE;IAClE,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,EACvB,IAAI,EACJ,MAAM,EACN,OAAO,EACP,QAAQ,EACR,MAAM,EACN,SAAiB,EACjB,cAAsB,EACtB,SAAS,GACV,EAAE,aAAa,sCAqGf"}
@@ -0,0 +1,25 @@
1
+ import type { ReactNode } from 'react';
2
+ import './Preference.css';
3
+ export interface TipsCardAction {
4
+ label: string;
5
+ onClick?: () => void;
6
+ }
7
+ export interface TipsCardProps {
8
+ /** 19sp bold title. */
9
+ title?: ReactNode;
10
+ /** 15sp summary (+4sp line spacing). */
11
+ summary?: ReactNode;
12
+ /** Extra content between summary and actions. */
13
+ children?: ReactNode;
14
+ /** Bottom text buttons (17sp bold pills). */
15
+ actions?: TipsCardAction[];
16
+ /** Show the 22dp close button; called when pressed. */
17
+ onClose?: () => void;
18
+ className?: string;
19
+ }
20
+ /**
21
+ * `TipsCardPreference` — highlight card (bg #fcfcfc/#252525) with a title,
22
+ * close button and bold pill text actions.
23
+ */
24
+ export declare function TipsCard({ title, summary, children, actions, onClose, className, }: TipsCardProps): import("react").JSX.Element;
25
+ //# sourceMappingURL=TipsCard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TipsCard.d.ts","sourceRoot":"","sources":["../../../src/components/TipsCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,OAAO,kBAAkB,CAAC;AAE1B,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,uBAAuB;IACvB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,wCAAwC;IACxC,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,iDAAiD;IACjD,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,6CAA6C;IAC7C,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC;IAC3B,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,EACvB,KAAK,EACL,OAAO,EACP,QAAQ,EACR,OAAO,EACP,OAAO,EACP,SAAS,GACV,EAAE,aAAa,+BA2Cf"}
@@ -0,0 +1,28 @@
1
+ import { type ReactNode } from 'react';
2
+ import './Toast.css';
3
+ export interface ToastOptions {
4
+ /** Milliseconds before auto-dismiss. `0` keeps it until `dismissToast`. @default 2200 */
5
+ duration?: number;
6
+ /** @default 'bottom' */
7
+ position?: 'bottom' | 'top' | 'center';
8
+ }
9
+ /**
10
+ * Show a One UI toast (`Toast.makeText` analogue — translucent dark pill,
11
+ * 22dp radius, 16sp text).
12
+ *
13
+ * ```ts
14
+ * toast('Saved');
15
+ * toast('Copied to clipboard', { duration: 1000 });
16
+ * ```
17
+ */
18
+ export declare function toast(message: ReactNode, options?: ToastOptions): number;
19
+ export declare function dismissToast(id: number): void;
20
+ export declare function clearToasts(): void;
21
+ export interface ToastProps extends ToastOptions {
22
+ open: boolean;
23
+ onClose?: () => void;
24
+ children?: ReactNode;
25
+ }
26
+ /** Declarative alternative to `toast()`. */
27
+ export declare function Toast({ open, onClose, duration, position, children, }: ToastProps): import("react").ReactPortal | null;
28
+ //# sourceMappingURL=Toast.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Toast.d.ts","sourceRoot":"","sources":["../../../src/components/Toast.tsx"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAIf,OAAO,aAAa,CAAC;AAErB,MAAM,WAAW,YAAY;IAC3B,yFAAyF;IACzF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wBAAwB;IACxB,QAAQ,CAAC,EAAE,QAAQ,GAAG,KAAK,GAAG,QAAQ,CAAC;CACxC;AA0CD;;;;;;;;GAQG;AACH,wBAAgB,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,GAAE,YAAiB,GAAG,MAAM,CAa5E;AAED,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAG7C;AAED,wBAAgB,WAAW,IAAI,IAAI,CAGlC;AAqCD,MAAM,WAAW,UAAW,SAAQ,YAAY;IAC9C,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,4CAA4C;AAC5C,wBAAgB,KAAK,CAAC,EACpB,IAAI,EACJ,OAAO,EACP,QAAe,EACf,QAAmB,EACnB,QAAQ,GACT,EAAE,UAAU,sCA2BZ"}