@prokodo/ui 0.1.12 → 0.1.13

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 (55) hide show
  1. package/README.md +4 -1
  2. package/dist/components/accordion/Accordion.css +46 -0
  3. package/dist/components/accordion/Accordion.module.css +46 -0
  4. package/dist/components/accordion/Accordion.module.scss.js +4 -0
  5. package/dist/components/accordion/Accordion.view.js +25 -5
  6. package/dist/components/autocomplete/Autocomplete.client.js +132 -0
  7. package/dist/components/autocomplete/Autocomplete.css +317 -0
  8. package/dist/components/autocomplete/Autocomplete.js +12 -0
  9. package/dist/components/autocomplete/Autocomplete.lazy.js +12 -0
  10. package/dist/components/autocomplete/Autocomplete.module.css +317 -0
  11. package/dist/components/autocomplete/Autocomplete.module.scss.js +21 -0
  12. package/dist/components/autocomplete/Autocomplete.server.js +11 -0
  13. package/dist/components/autocomplete/Autocomplete.view.js +142 -0
  14. package/dist/components/autocomplete/index.js +4 -0
  15. package/dist/components/dynamic-list/DynamicList.view.js +1 -1
  16. package/dist/components/input/Input.css +2 -2
  17. package/dist/components/input/Input.module.css +2 -2
  18. package/dist/components/rich-text/RichText.css +0 -1
  19. package/dist/components/rich-text/RichText.module.css +0 -1
  20. package/dist/components/tabs/Tabs.client.js +182 -0
  21. package/dist/components/tabs/Tabs.css +330 -0
  22. package/dist/components/tabs/Tabs.js +13 -0
  23. package/dist/components/tabs/Tabs.lazy.js +15 -0
  24. package/dist/components/tabs/Tabs.module.css +330 -0
  25. package/dist/components/tabs/Tabs.module.scss.js +19 -0
  26. package/dist/components/tabs/Tabs.server.js +11 -0
  27. package/dist/components/tabs/Tabs.view.js +157 -0
  28. package/dist/components/tabs/index.js +4 -0
  29. package/dist/components/tooltip/Tooltip.client.js +10 -1
  30. package/dist/components/tooltip/Tooltip.css +1 -0
  31. package/dist/components/tooltip/Tooltip.module.css +1 -0
  32. package/dist/constants/project.js +1 -1
  33. package/dist/index.js +4 -0
  34. package/dist/theme.css +445 -3
  35. package/dist/tsconfig.build.tsbuildinfo +1 -1
  36. package/dist/types/components/accordion/Accordion.d.ts +3 -0
  37. package/dist/types/components/accordion/Accordion.lazy.d.ts +3 -0
  38. package/dist/types/components/accordion/Accordion.model.d.ts +3 -0
  39. package/dist/types/components/accordion/Accordion.view.d.ts +1 -1
  40. package/dist/types/components/autocomplete/Autocomplete.client.d.ts +5 -0
  41. package/dist/types/components/autocomplete/Autocomplete.d.ts +4 -0
  42. package/dist/types/components/autocomplete/Autocomplete.lazy.d.ts +5 -0
  43. package/dist/types/components/autocomplete/Autocomplete.model.d.ts +58 -0
  44. package/dist/types/components/autocomplete/Autocomplete.server.d.ts +3 -0
  45. package/dist/types/components/autocomplete/Autocomplete.view.d.ts +3 -0
  46. package/dist/types/components/autocomplete/index.d.ts +2 -0
  47. package/dist/types/components/tabs/Tabs.client.d.ts +5 -0
  48. package/dist/types/components/tabs/Tabs.d.ts +4 -0
  49. package/dist/types/components/tabs/Tabs.lazy.d.ts +5 -0
  50. package/dist/types/components/tabs/Tabs.model.d.ts +43 -0
  51. package/dist/types/components/tabs/Tabs.server.d.ts +3 -0
  52. package/dist/types/components/tabs/Tabs.view.d.ts +3 -0
  53. package/dist/types/components/tabs/index.d.ts +2 -0
  54. package/dist/types/index.d.ts +2 -0
  55. package/package.json +11 -1
@@ -1,5 +1,8 @@
1
1
  export declare const Accordion: import("react").ComponentType<{
2
2
  id: string;
3
+ type?: "card" | "panel";
4
+ headerWrapperClassName?: string;
5
+ headerToggleClassName?: string;
3
6
  expanded?: number | null;
4
7
  className?: string;
5
8
  variant?: import("../../types/variants").Variants;
@@ -1,5 +1,8 @@
1
1
  declare const _default: import("react").ComponentType<{
2
2
  id: string;
3
+ type?: "card" | "panel";
4
+ headerWrapperClassName?: string;
5
+ headerToggleClassName?: string;
3
6
  expanded?: number | null;
4
7
  className?: string;
5
8
  variant?: import("../../types/variants").Variants;
@@ -18,6 +18,9 @@ export type AccordionItem = {
18
18
  };
19
19
  export type AccordionProps = {
20
20
  id: string;
21
+ type?: "card" | "panel";
22
+ headerWrapperClassName?: string;
23
+ headerToggleClassName?: string;
21
24
  expanded?: number | null;
22
25
  className?: string;
23
26
  variant?: Variants;
@@ -1,3 +1,3 @@
1
1
  import type { AccordionViewProps } from "./Accordion.model";
2
2
  import type { JSX } from "react";
3
- export declare function AccordionView({ id, variant, className, items, expandedIndex, onToggle, titleOptions, iconProps, ...domRest }: AccordionViewProps): JSX.Element;
3
+ export declare function AccordionView({ id, type, headerWrapperClassName, headerToggleClassName, variant, className, items, expandedIndex, onToggle, titleOptions, iconProps, ...domRest }: AccordionViewProps): JSX.Element;
@@ -0,0 +1,5 @@
1
+ import { type JSX } from "react";
2
+ import type { AutocompleteProps } from "./Autocomplete.model";
3
+ declare function AutocompleteClient({ name, value, items, minQueryLength, onChange, onSelect, ...rest }: AutocompleteProps): JSX.Element;
4
+ declare const _default: import("react").MemoExoticComponent<typeof AutocompleteClient>;
5
+ export default _default;
@@ -0,0 +1,4 @@
1
+ import type { AutocompleteProps } from "./Autocomplete.model";
2
+ export declare const Autocomplete: import("react").ComponentType<AutocompleteProps & {
3
+ priority?: boolean;
4
+ }>;
@@ -0,0 +1,5 @@
1
+ import type { AutocompleteProps } from "./Autocomplete.model";
2
+ declare const _default: import("react").ComponentType<AutocompleteProps & {
3
+ priority?: boolean;
4
+ }>;
5
+ export default _default;
@@ -0,0 +1,58 @@
1
+ import type { InputProps } from "../input";
2
+ import type { KeyboardEventHandler } from "react";
3
+ type AutocompleteInputProps = Omit<Extract<InputProps, {
4
+ multiline?: false;
5
+ }>, "id" | "name" | "value" | "onChange" | "onFocus" | "onKeyDown" | "label" | "disabled" | "required" | "fullWidth" | "readOnly" | "autoComplete" | "aria-describedby" | "aria-labelledby" | "placeholder">;
6
+ export type AutocompleteItem = {
7
+ value: string;
8
+ label: string;
9
+ description?: string;
10
+ };
11
+ export type AutocompleteChangeEvent = {
12
+ query: string;
13
+ };
14
+ export type AutocompleteClientState = {
15
+ open: boolean;
16
+ listTop?: number;
17
+ activeIndex: number;
18
+ onInputChange: (query: string) => void;
19
+ onInputFocus: () => void;
20
+ onInputKeyDown: KeyboardEventHandler<HTMLInputElement | HTMLTextAreaElement>;
21
+ onSelectItem: (item: AutocompleteItem) => void;
22
+ };
23
+ export type AutocompleteProps = {
24
+ id?: string;
25
+ name: string;
26
+ label?: string;
27
+ placeholder?: string;
28
+ required?: boolean;
29
+ disabled?: boolean;
30
+ fullWidth?: boolean;
31
+ readOnly?: boolean;
32
+ autoComplete?: string;
33
+ "aria-describedby"?: string;
34
+ "aria-labelledby"?: string;
35
+ value?: string;
36
+ items?: AutocompleteItem[];
37
+ loading?: boolean;
38
+ loadingText?: string;
39
+ emptyText?: string;
40
+ minQueryLength?: number;
41
+ minQueryLengthText?: string;
42
+ className?: string;
43
+ inputClassName?: string;
44
+ listClassName?: string;
45
+ itemClassName?: string;
46
+ inputProps?: AutocompleteInputProps & {
47
+ hideLabel?: boolean;
48
+ };
49
+ onChange?: (event: AutocompleteChangeEvent) => void;
50
+ onSelect?: (item: AutocompleteItem) => void;
51
+ };
52
+ export type AutocompleteViewProps = Omit<AutocompleteProps, "onChange" | "onSelect"> & {
53
+ open?: boolean;
54
+ _clientState?: AutocompleteClientState;
55
+ onChange?: (event: AutocompleteChangeEvent) => void;
56
+ onSelect?: (item: AutocompleteItem) => void;
57
+ };
58
+ export {};
@@ -0,0 +1,3 @@
1
+ import type { AutocompleteProps } from "./Autocomplete.model";
2
+ import type { JSX } from "react";
3
+ export default function AutocompleteServer(props: AutocompleteProps): JSX.Element;
@@ -0,0 +1,3 @@
1
+ import type { AutocompleteViewProps } from "./Autocomplete.model";
2
+ import type { JSX } from "react";
3
+ export declare function AutocompleteView({ id, name, label, placeholder, required, disabled, fullWidth, readOnly, autoComplete, "aria-describedby": ariaDescribedBy, "aria-labelledby": ariaLabelledBy, value, items, loading, loadingText, emptyText, minQueryLength, minQueryLengthText, className, inputClassName, listClassName, itemClassName, inputProps, _clientState, onChange, onSelect, }: AutocompleteViewProps): JSX.Element;
@@ -0,0 +1,2 @@
1
+ export * from "./Autocomplete";
2
+ export type { AutocompleteProps, AutocompleteItem, AutocompleteChangeEvent, } from "./Autocomplete.model";
@@ -0,0 +1,5 @@
1
+ import { type JSX } from "react";
2
+ import type { TabsProps } from "./Tabs.model";
3
+ declare function TabsClient<Value extends string = string>({ items, value, defaultValue, activationMode, disabled, onChange, ...rest }: TabsProps<Value>): JSX.Element;
4
+ declare const _default: import("react").MemoExoticComponent<typeof TabsClient>;
5
+ export default _default;
@@ -0,0 +1,4 @@
1
+ import type { TabsProps } from "./Tabs.model";
2
+ export declare const Tabs: import("react").ComponentType<TabsProps & {
3
+ priority?: boolean;
4
+ }>;
@@ -0,0 +1,5 @@
1
+ import type { TabsProps } from "./Tabs.model";
2
+ declare const _default: import("react").ComponentType<TabsProps & {
3
+ priority?: boolean;
4
+ }>;
5
+ export default _default;
@@ -0,0 +1,43 @@
1
+ import type { ChipProps } from "../chip";
2
+ import type { KeyboardEvent, MouseEvent, ReactNode, RefObject } from "react";
3
+ export type TabsBadgeChipProps = Omit<ChipProps, "label">;
4
+ export type TabsItem<Value extends string = string> = {
5
+ value: Value;
6
+ label: ReactNode;
7
+ badge?: ReactNode;
8
+ badgeChipProps?: TabsBadgeChipProps;
9
+ disabled?: boolean;
10
+ className?: string;
11
+ content: ReactNode;
12
+ };
13
+ export type TabsChangeEvent<Value extends string = string> = {
14
+ value: Value;
15
+ index: number;
16
+ };
17
+ export type TabsProps<Value extends string = string> = {
18
+ id: string;
19
+ ariaLabel?: string;
20
+ items: TabsItem<Value>[];
21
+ value?: Value;
22
+ defaultValue?: Value;
23
+ activationMode?: "automatic" | "manual";
24
+ orientation?: "horizontal" | "vertical";
25
+ disabled?: boolean;
26
+ fullWidth?: boolean;
27
+ className?: string;
28
+ listClassName?: string;
29
+ tabClassName?: string;
30
+ panelsClassName?: string;
31
+ badgeChipProps?: TabsBadgeChipProps;
32
+ onChange?: (event: TabsChangeEvent<Value>) => void;
33
+ };
34
+ export type TabsClientState<Value extends string = string> = {
35
+ activeValue: Value;
36
+ focusIndex: number;
37
+ tabsRef: RefObject<Array<HTMLButtonElement | null>>;
38
+ onTabClick: (index: number, event: MouseEvent<HTMLButtonElement>) => void;
39
+ onTabKeyDown: (index: number, event: KeyboardEvent<HTMLButtonElement>) => void;
40
+ };
41
+ export type TabsViewProps<Value extends string = string> = TabsProps<Value> & {
42
+ _clientState?: TabsClientState<Value>;
43
+ };
@@ -0,0 +1,3 @@
1
+ import type { TabsProps } from "./Tabs.model";
2
+ import type { JSX } from "react";
3
+ export default function TabsServer<Value extends string = string>(props: TabsProps<Value>): JSX.Element;
@@ -0,0 +1,3 @@
1
+ import type { TabsViewProps } from "./Tabs.model";
2
+ import type { JSX } from "react";
3
+ export declare function TabsView<Value extends string = string>({ id, ariaLabel, items, value, defaultValue, orientation, disabled, fullWidth, className, listClassName, tabClassName, panelsClassName, badgeChipProps, _clientState, }: TabsViewProps<Value>): JSX.Element | null;
@@ -0,0 +1,2 @@
1
+ export * from "./Tabs";
2
+ export type { TabsChangeEvent, TabsItem, TabsProps } from "./Tabs.model";
@@ -1,6 +1,7 @@
1
1
  export { Accordion } from "./components/accordion";
2
2
  export { Animated } from "./components/animated";
3
3
  export { AnimatedText } from "./components/animatedText";
4
+ export { Autocomplete } from "./components/autocomplete";
4
5
  export { Avatar } from "./components/avatar";
5
6
  export { BaseLink } from "./components/base-link";
6
7
  export { Button } from "./components/button";
@@ -44,6 +45,7 @@ export { Snackbar } from "./components/snackbar";
44
45
  export { Stepper } from "./components/stepper";
45
46
  export { Switch } from "./components/switch";
46
47
  export { Table } from "./components/table";
48
+ export { Tabs } from "./components/tabs";
47
49
  export { Teaser } from "./components/teaser";
48
50
  export { Tooltip } from "./components/tooltip";
49
51
  export { UIRuntimeProvider, useUIRuntime } from "./helpers/runtime.client";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prokodo/ui",
3
- "version": "0.1.12",
3
+ "version": "0.1.13",
4
4
  "type": "module",
5
5
  "description": "UI components for production-grade Next.js + Headless CMS (Strapi, Contentful, Headless WordPress) websites by prokodo – built for Core Web Vitals & SEO.",
6
6
  "sideEffects": [
@@ -46,6 +46,11 @@
46
46
  "import": "./dist/components/animatedText/index.js",
47
47
  "types": "./dist/types/components/animatedText/index.d.ts"
48
48
  },
49
+ "./autocomplete": {
50
+ "import": "./dist/components/autocomplete/index.js",
51
+ "types": "./dist/types/components/autocomplete/index.d.ts"
52
+ },
53
+ "./autocomplete.css": "./dist/components/autocomplete/Autocomplete.css",
49
54
  "./avatar": {
50
55
  "import": "./dist/components/avatar/index.js",
51
56
  "types": "./dist/types/components/avatar/index.d.ts"
@@ -251,6 +256,11 @@
251
256
  "types": "./dist/types/components/table/index.d.ts"
252
257
  },
253
258
  "./table.css": "./dist/components/table/Table.css",
259
+ "./tabs": {
260
+ "import": "./dist/components/tabs/index.js",
261
+ "types": "./dist/types/components/tabs/index.d.ts"
262
+ },
263
+ "./tabs.css": "./dist/components/tabs/Tabs.css",
254
264
  "./teaser": {
255
265
  "import": "./dist/components/teaser/index.js",
256
266
  "types": "./dist/types/components/teaser/index.d.ts"