@k8o/arte-odyssey 10.0.1 → 10.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/README.md +3 -3
  2. package/dist/components/data-display/card/card.d.mts +6 -2
  3. package/dist/components/data-display/card/card.mjs +2 -2
  4. package/dist/components/data-display/card/index.d.mts +1 -2
  5. package/dist/components/data-display/card/index.mjs +1 -2
  6. package/dist/components/data-display/table/table.mjs +1 -1
  7. package/dist/components/form/checkbox-group/index.d.mts +3 -3
  8. package/dist/components/index.d.mts +1 -2
  9. package/dist/components/index.mjs +1 -2
  10. package/dist/components/layout/_shared/padding.d.mts +11 -0
  11. package/dist/components/layout/_shared/padding.mjs +10 -0
  12. package/dist/components/layout/stack/stack.d.mts +3 -1
  13. package/dist/components/layout/stack/stack.mjs +3 -2
  14. package/dist/index.d.mts +1 -2
  15. package/dist/index.mjs +1 -2
  16. package/dist/integrations/_shared/renderers.d.mts +2 -3
  17. package/dist/integrations/_shared/renderers.mjs +12 -10
  18. package/dist/integrations/_shared/schemas.d.mts +18 -16
  19. package/dist/integrations/_shared/schemas.mjs +15 -3
  20. package/dist/integrations/json-render/catalog.d.mts +18 -19
  21. package/dist/integrations/json-render/catalog.mjs +3 -8
  22. package/dist/integrations/json-render/registry.mjs +1 -2
  23. package/dist/integrations/openui/library.mjs +3 -9
  24. package/dist/styles/index.css +4 -0
  25. package/dist/styles/tokens.css +2 -2
  26. package/dist/styles/tokens.generated.d.mts +6 -6
  27. package/dist/styles/tokens.generated.mjs +6 -6
  28. package/docs/GUIDE.md +5 -5
  29. package/docs/references/components.md +6 -6
  30. package/package.json +1 -1
  31. package/dist/components/data-display/card/interactive-card.d.mts +0 -7
  32. package/dist/components/data-display/card/interactive-card.mjs +0 -10
  33. package/dist/components/data-display/card/type.d.mts +0 -9
  34. package/dist/components/data-display/card/type.mjs +0 -1
package/README.md CHANGED
@@ -109,7 +109,7 @@ ArteOdyssey includes design system documentation in `docs/` directory. When inst
109
109
  - **Avatar** - User/entity avatar
110
110
  - **Badge** - Status/label indicator
111
111
  - **BaselineStatus** - Web standard support indicator
112
- - **Card** / **InteractiveCard** - Flexible content container (with hover interaction)
112
+ - **Card** - Flexible content container (hover interaction via `interactive`)
113
113
  - **Code** - Formatted code display
114
114
  - **Heading** - Typography heading component
115
115
  - **Table** - Tabular data display
@@ -243,9 +243,9 @@ pnpm add @json-render/core @json-render/react zod
243
243
  pnpm add @openuidev/react-lang zod
244
244
  ```
245
245
 
246
- Supported components (**all 47**, both frameworks):
246
+ Supported components (**all 46**, both frameworks):
247
247
 
248
- - **Layout / containers**: `Stack`, `Card`, `InteractiveCard`, `Form`
248
+ - **Layout / containers**: `Stack`, `Card`, `Form`
249
249
  - **Buttons / nav**: `Button`, `IconButton`, `Anchor`, `Breadcrumb`, `Pagination`
250
250
  - **Display**: `Badge`, `Heading`, `Avatar`, `Code`, `Icon`, `Alert`, `Spinner`, `Progress`, `Skeleton`, `Separator`, `Tabs`, `Accordion`, `Table`, `BaselineStatus`, `ScrollLinked`
251
251
  - **Overlays (self-contained widgets)**: `Modal`, `Dialog`, `Drawer`, `Popover`, `Tooltip`, `DropdownMenu`, `Toast`
@@ -1,7 +1,11 @@
1
- import { CardProps } from "./type.mjs";
2
- import { FC } from "react";
1
+ import { FC, HTMLAttributes } from "react";
3
2
 
4
3
  //#region src/components/data-display/card/card.d.ts
4
+ type CardProps = {
5
+ width?: 'full' | 'fit';
6
+ appearance?: 'shadow' | 'bordered';
7
+ interactive?: boolean;
8
+ } & Omit<HTMLAttributes<HTMLDivElement>, 'className' | 'style'>;
5
9
  declare const Card: FC<CardProps>;
6
10
  //#endregion
7
11
  export { Card };
@@ -1,9 +1,9 @@
1
1
  import { cn } from "../../../helpers/cn.mjs";
2
2
  import { jsx } from "react/jsx-runtime";
3
3
  //#region src/components/data-display/card/card.tsx
4
- const Card = ({ children, width = "full", appearance = "shadow", ...rest }) => /* @__PURE__ */ jsx("div", {
4
+ const Card = ({ children, width = "full", appearance = "shadow", interactive = false, ...rest }) => /* @__PURE__ */ jsx("div", {
5
5
  ...rest,
6
- className: cn("rounded-xl", appearance === "shadow" && "shadow-sm border border-transparent dark:border-border-subtle", appearance === "bordered" && "border border-border-mute", width === "full" && "w-full", width === "fit" && "w-fit", "bg-bg-base"),
6
+ className: cn("rounded-xl", appearance === "shadow" && "shadow-sm", appearance === "bordered" && "border border-border-mute", width === "full" && "w-full", width === "fit" && "w-fit", interactive && "motion-safe:transition-transform hover:motion-safe:scale-[1.02] active:motion-safe:scale-[0.98]", "bg-bg-base"),
7
7
  children
8
8
  });
9
9
  //#endregion
@@ -1,3 +1,2 @@
1
1
  import { Card } from "./card.mjs";
2
- import { InteractiveCard } from "./interactive-card.mjs";
3
- export { Card, InteractiveCard };
2
+ export { Card };
@@ -1,3 +1,2 @@
1
1
  import { Card } from "./card.mjs";
2
- import { InteractiveCard } from "./interactive-card.mjs";
3
- export { Card, InteractiveCard };
2
+ export { Card };
@@ -2,7 +2,7 @@ import { cn } from "../../../helpers/cn.mjs";
2
2
  import { jsx } from "react/jsx-runtime";
3
3
  //#region src/components/data-display/table/table.tsx
4
4
  const Root = ({ children }) => /* @__PURE__ */ jsx("div", {
5
- className: "border-border-mute bg-bg-base vertical:writing-sideways-rl vertical:h-fit vertical:w-fit w-full overflow-x-auto rounded-lg border",
5
+ className: "border-border-mute bg-bg-base vertical:writing-sideways-rl vertical:size-fit w-full overflow-x-auto rounded-lg border",
6
6
  children: /* @__PURE__ */ jsx("table", {
7
7
  className: "min-w-full border-collapse text-left text-sm",
8
8
  children
@@ -3,7 +3,7 @@ declare const CheckboxGroup: import("react").FC<{
3
3
  invalid?: boolean;
4
4
  required?: boolean;
5
5
  name: string;
6
- } & Omit<import("react").FieldsetHTMLAttributes<HTMLFieldSetElement>, "defaultValue" | "onChange" | "className" | "style" | "name"> & {
6
+ } & Omit<import("react").FieldsetHTMLAttributes<HTMLFieldSetElement>, "className" | "style" | "onChange" | "name" | "defaultValue"> & {
7
7
  children?: import("react").ReactNode | undefined;
8
8
  } & ({
9
9
  value: string[];
@@ -18,7 +18,7 @@ declare const CheckboxGroup: import("react").FC<{
18
18
  invalid?: boolean;
19
19
  required?: boolean;
20
20
  name: string;
21
- } & Omit<import("react").FieldsetHTMLAttributes<HTMLFieldSetElement>, "defaultValue" | "onChange" | "className" | "style" | "name"> & {
21
+ } & Omit<import("react").FieldsetHTMLAttributes<HTMLFieldSetElement>, "className" | "style" | "onChange" | "name" | "defaultValue"> & {
22
22
  children?: import("react").ReactNode | undefined;
23
23
  } & ({
24
24
  value: string[];
@@ -33,7 +33,7 @@ declare const CheckboxGroup: import("react").FC<{
33
33
  Item: import("react").FC<{
34
34
  itemValue?: string;
35
35
  label: string;
36
- } & Omit<import("react").InputHTMLAttributes<HTMLInputElement>, "value" | "onChange" | "type" | "className" | "style" | "children" | "checked" | "defaultChecked"> & ({
36
+ } & Omit<import("react").InputHTMLAttributes<HTMLInputElement>, "type" | "className" | "style" | "value" | "onChange" | "defaultChecked" | "checked" | "children"> & ({
37
37
  value: boolean;
38
38
  onChange: (checked: boolean, event: import("react").ChangeEvent<HTMLInputElement>) => void;
39
39
  defaultChecked?: never;
@@ -6,7 +6,6 @@ import { Avatar } from "./data-display/avatar/avatar.mjs";
6
6
  import { Badge } from "./data-display/badge/badge.mjs";
7
7
  import { BaselineStatus } from "./data-display/baseline-status/baseline-status.mjs";
8
8
  import { Card } from "./data-display/card/card.mjs";
9
- import { InteractiveCard } from "./data-display/card/interactive-card.mjs";
10
9
  import { Code } from "./data-display/code/code.mjs";
11
10
  import { Heading } from "./data-display/heading/heading.mjs";
12
11
  import { Table } from "./data-display/table/table.mjs";
@@ -56,4 +55,4 @@ import { useOpenContext } from "./overlays/popover/hooks.mjs";
56
55
  import { Popover } from "./overlays/popover/popover.mjs";
57
56
  import { ArteOdysseyProvider } from "./providers/arte-odyssey-provider.mjs";
58
57
  import { PortalRootProvider, usePortalRoot } from "./providers/portal-root.mjs";
59
- export { AIIcon, AccessibilityIcon, Accordion, Alert, AlertIcon, Anchor, ArteOdyssey, ArteOdysseyProvider, AtomIcon, Autocomplete, Avatar, BadIcon, Badge, BaselineStatus, BlogIcon, BoringIcon, Breadcrumb, Button, Card, CheckIcon, Checkbox, CheckboxCard, CheckboxGroup, ChevronIcon, CloseIcon, Code, ColorContrastIcon, ColorInfoIcon, CopyIcon, DarkModeIcon, Dialog, DifficultIcon, Drawer, DropdownMenu, EasyIcon, ExternalLinkIcon, FileField, Form, FormControl, FormIcon, GitHubIcon, GoodIcon, Grid, type GridProps, Heading, HistoryIcon, HorizontalWritingIcon, IconButton, InformativeIcon, InteractiveCard, InterestingIcon, LightModeIcon, LinkIcon, ListBox, ListIcon, LocationIcon, Logo, LogoIcon, MailIcon, MinusIcon, MixedColorIcon, Modal, NavigationMenuIcon, NewsIcon, NumberField, Pagination, PaletteIcon, PasswordInput, PlusIcon, Popover, PortalRootProvider, PrepareIcon, Progress, PublishDateIcon, QiitaIcon, RSSIcon, Radio, RadioCard, ScrollLinked, Select, SendIcon, Separator, ShallowIcon, ShieldCheckIcon, Skeleton, SlideIcon, Slider, SparklesIcon, Spinner, Stack, type StackProps, SubscribeIcon, Switch, Table, TableIcon, Tabs, TagIcon, TextField, Textarea, ToastProvider, Tooltip, TwitterIcon, UpdateDateIcon, VerticalWritingIcon, ViewIcon, ViewOffIcon, useOpenContext, usePortalRoot, useToast };
58
+ export { AIIcon, AccessibilityIcon, Accordion, Alert, AlertIcon, Anchor, ArteOdyssey, ArteOdysseyProvider, AtomIcon, Autocomplete, Avatar, BadIcon, Badge, BaselineStatus, BlogIcon, BoringIcon, Breadcrumb, Button, Card, CheckIcon, Checkbox, CheckboxCard, CheckboxGroup, ChevronIcon, CloseIcon, Code, ColorContrastIcon, ColorInfoIcon, CopyIcon, DarkModeIcon, Dialog, DifficultIcon, Drawer, DropdownMenu, EasyIcon, ExternalLinkIcon, FileField, Form, FormControl, FormIcon, GitHubIcon, GoodIcon, Grid, type GridProps, Heading, HistoryIcon, HorizontalWritingIcon, IconButton, InformativeIcon, InterestingIcon, LightModeIcon, LinkIcon, ListBox, ListIcon, LocationIcon, Logo, LogoIcon, MailIcon, MinusIcon, MixedColorIcon, Modal, NavigationMenuIcon, NewsIcon, NumberField, Pagination, PaletteIcon, PasswordInput, PlusIcon, Popover, PortalRootProvider, PrepareIcon, Progress, PublishDateIcon, QiitaIcon, RSSIcon, Radio, RadioCard, ScrollLinked, Select, SendIcon, Separator, ShallowIcon, ShieldCheckIcon, Skeleton, SlideIcon, Slider, SparklesIcon, Spinner, Stack, type StackProps, SubscribeIcon, Switch, Table, TableIcon, Tabs, TagIcon, TextField, Textarea, ToastProvider, Tooltip, TwitterIcon, UpdateDateIcon, VerticalWritingIcon, ViewIcon, ViewOffIcon, useOpenContext, usePortalRoot, useToast };
@@ -21,7 +21,6 @@ import { Avatar } from "./data-display/avatar/avatar.mjs";
21
21
  import { Badge } from "./data-display/badge/badge.mjs";
22
22
  import { BaselineStatus } from "./data-display/baseline-status/baseline-status.mjs";
23
23
  import { Card } from "./data-display/card/card.mjs";
24
- import { InteractiveCard } from "./data-display/card/interactive-card.mjs";
25
24
  import { Code } from "./data-display/code/code.mjs";
26
25
  import { Heading } from "./data-display/heading/heading.mjs";
27
26
  import { Table } from "./data-display/table/table.mjs";
@@ -56,4 +55,4 @@ import { Modal } from "./overlays/modal/modal.mjs";
56
55
  import { Drawer } from "./overlays/drawer/drawer.mjs";
57
56
  import { DropdownMenu } from "./overlays/dropdown-menu/dropdown-menu.mjs";
58
57
  import { ListBox } from "./overlays/list-box/list-box.mjs";
59
- export { AIIcon, AccessibilityIcon, Accordion, Alert, AlertIcon, Anchor, ArteOdyssey, ArteOdysseyProvider, AtomIcon, Autocomplete, Avatar, BadIcon, Badge, BaselineStatus, BlogIcon, BoringIcon, Breadcrumb, Button, Card, CheckIcon, Checkbox, CheckboxCard, CheckboxGroup, ChevronIcon, CloseIcon, Code, ColorContrastIcon, ColorInfoIcon, CopyIcon, DarkModeIcon, Dialog, DifficultIcon, Drawer, DropdownMenu, EasyIcon, ExternalLinkIcon, FileField, Form, FormControl, FormIcon, GitHubIcon, GoodIcon, Grid, Heading, HistoryIcon, HorizontalWritingIcon, IconButton, InformativeIcon, InteractiveCard, InterestingIcon, LightModeIcon, LinkIcon, ListBox, ListIcon, LocationIcon, Logo, LogoIcon, MailIcon, MinusIcon, MixedColorIcon, Modal, NavigationMenuIcon, NewsIcon, NumberField, Pagination, PaletteIcon, PasswordInput, PlusIcon, Popover, PortalRootProvider, PrepareIcon, Progress, PublishDateIcon, QiitaIcon, RSSIcon, Radio, RadioCard, ScrollLinked, Select, SendIcon, Separator, ShallowIcon, ShieldCheckIcon, Skeleton, SlideIcon, Slider, SparklesIcon, Spinner, Stack, SubscribeIcon, Switch, Table, TableIcon, Tabs, TagIcon, TextField, Textarea, ToastProvider, Tooltip, TwitterIcon, UpdateDateIcon, VerticalWritingIcon, ViewIcon, ViewOffIcon, useOpenContext, usePortalRoot, useToast };
58
+ export { AIIcon, AccessibilityIcon, Accordion, Alert, AlertIcon, Anchor, ArteOdyssey, ArteOdysseyProvider, AtomIcon, Autocomplete, Avatar, BadIcon, Badge, BaselineStatus, BlogIcon, BoringIcon, Breadcrumb, Button, Card, CheckIcon, Checkbox, CheckboxCard, CheckboxGroup, ChevronIcon, CloseIcon, Code, ColorContrastIcon, ColorInfoIcon, CopyIcon, DarkModeIcon, Dialog, DifficultIcon, Drawer, DropdownMenu, EasyIcon, ExternalLinkIcon, FileField, Form, FormControl, FormIcon, GitHubIcon, GoodIcon, Grid, Heading, HistoryIcon, HorizontalWritingIcon, IconButton, InformativeIcon, InterestingIcon, LightModeIcon, LinkIcon, ListBox, ListIcon, LocationIcon, Logo, LogoIcon, MailIcon, MinusIcon, MixedColorIcon, Modal, NavigationMenuIcon, NewsIcon, NumberField, Pagination, PaletteIcon, PasswordInput, PlusIcon, Popover, PortalRootProvider, PrepareIcon, Progress, PublishDateIcon, QiitaIcon, RSSIcon, Radio, RadioCard, ScrollLinked, Select, SendIcon, Separator, ShallowIcon, ShieldCheckIcon, Skeleton, SlideIcon, Slider, SparklesIcon, Spinner, Stack, SubscribeIcon, Switch, Table, TableIcon, Tabs, TagIcon, TextField, Textarea, ToastProvider, Tooltip, TwitterIcon, UpdateDateIcon, VerticalWritingIcon, ViewIcon, ViewOffIcon, useOpenContext, usePortalRoot, useToast };
@@ -0,0 +1,11 @@
1
+ //#region src/components/layout/_shared/padding.d.ts
2
+ type PaddingSize = 'none' | 'sm' | 'md' | 'lg' | 'xl';
3
+ declare const PADDING_CLASS: {
4
+ readonly none: "p-0";
5
+ readonly sm: "p-2";
6
+ readonly md: "p-4";
7
+ readonly lg: "p-6";
8
+ readonly xl: "p-8";
9
+ };
10
+ //#endregion
11
+ export { PADDING_CLASS, PaddingSize };
@@ -0,0 +1,10 @@
1
+ //#region src/components/layout/_shared/padding.ts
2
+ const PADDING_CLASS = {
3
+ none: "p-0",
4
+ sm: "p-2",
5
+ md: "p-4",
6
+ lg: "p-6",
7
+ xl: "p-8"
8
+ };
9
+ //#endregion
10
+ export { PADDING_CLASS };
@@ -1,10 +1,12 @@
1
1
  import { GapSize } from "../_shared/gap.mjs";
2
+ import { PaddingSize } from "../_shared/padding.mjs";
2
3
  import { FC, HTMLAttributes, PropsWithChildren } from "react";
3
4
 
4
5
  //#region src/components/layout/stack/stack.d.ts
5
6
  type StackProps = PropsWithChildren<{
6
7
  direction?: 'row' | 'column';
7
- gap?: GapSize;
8
+ gap?: GapSize; /** Inner padding on all sides. Stack has no padding by default. */
9
+ padding?: PaddingSize;
8
10
  align?: 'start' | 'center' | 'end' | 'stretch';
9
11
  justify?: 'start' | 'center' | 'end' | 'between';
10
12
  } & Omit<HTMLAttributes<HTMLDivElement>, 'className' | 'style'>>;
@@ -1,5 +1,6 @@
1
1
  import { cn } from "../../../helpers/cn.mjs";
2
2
  import { GAP_CLASS } from "../_shared/gap.mjs";
3
+ import { PADDING_CLASS } from "../_shared/padding.mjs";
3
4
  import { jsx } from "react/jsx-runtime";
4
5
  //#region src/components/layout/stack/stack.tsx
5
6
  const ALIGN_CLASS = {
@@ -14,9 +15,9 @@ const JUSTIFY_CLASS = {
14
15
  end: "justify-end",
15
16
  between: "justify-between"
16
17
  };
17
- const Stack = ({ direction = "column", gap = "md", align, justify, children, ...rest }) => /* @__PURE__ */ jsx("div", {
18
+ const Stack = ({ direction = "column", gap = "md", padding, align, justify, children, ...rest }) => /* @__PURE__ */ jsx("div", {
18
19
  ...rest,
19
- className: cn("flex", direction === "row" ? "flex-row" : "flex-col", GAP_CLASS[gap], align && ALIGN_CLASS[align], justify && JUSTIFY_CLASS[justify]),
20
+ className: cn("flex", direction === "row" ? "flex-row" : "flex-col", GAP_CLASS[gap], padding && PADDING_CLASS[padding], align && ALIGN_CLASS[align], justify && JUSTIFY_CLASS[justify]),
20
21
  children
21
22
  });
22
23
  //#endregion
package/dist/index.d.mts CHANGED
@@ -6,7 +6,6 @@ import { Avatar } from "./components/data-display/avatar/avatar.mjs";
6
6
  import { Badge } from "./components/data-display/badge/badge.mjs";
7
7
  import { BaselineStatus } from "./components/data-display/baseline-status/baseline-status.mjs";
8
8
  import { Card } from "./components/data-display/card/card.mjs";
9
- import { InteractiveCard } from "./components/data-display/card/interactive-card.mjs";
10
9
  import { Code } from "./components/data-display/code/code.mjs";
11
10
  import { Heading } from "./components/data-display/heading/heading.mjs";
12
11
  import { Table } from "./components/data-display/table/table.mjs";
@@ -85,4 +84,4 @@ import { useTimeout } from "./hooks/timeout/index.mjs";
85
84
  import { useWindowResize } from "./hooks/window-resize/index.mjs";
86
85
  import { useWindowSize } from "./hooks/window-size/index.mjs";
87
86
  import { WritingMode, useWritingMode } from "./hooks/writing-mode/index.mjs";
88
- export { AIIcon, AccessibilityIcon, Accordion, Alert, AlertIcon, Anchor, ArteOdyssey, ArteOdysseyProvider, AtomIcon, Autocomplete, Avatar, BadIcon, Badge, BaselineStatus, BlogIcon, BoringIcon, Breadcrumb, Button, Card, CheckIcon, Checkbox, CheckboxCard, CheckboxGroup, ChevronIcon, CloseIcon, Code, ColorContrastIcon, ColorInfoIcon, CopyIcon, DarkModeIcon, type DebouncedAction, Dialog, DifficultIcon, type Direction, Drawer, DropdownMenu, EasyIcon, ExternalLinkIcon, FileField, Form, FormControl, FormIcon, GitHubIcon, GoodIcon, Grid, type GridProps, Heading, HistoryIcon, HorizontalWritingIcon, IconButton, InformativeIcon, InteractiveCard, InterestingIcon, LightModeIcon, LinkIcon, ListBox, ListIcon, LocationIcon, Logo, LogoIcon, MailIcon, MinusIcon, MixedColorIcon, Modal, NavigationMenuIcon, NewsIcon, NumberField, type Option, Pagination, PaletteIcon, PasswordInput, PlusIcon, Popover, PortalRootProvider, PrepareIcon, Progress, PublishDateIcon, QiitaIcon, RSSIcon, Radio, RadioCard, ScrollLinked, Select, SendIcon, Separator, ShallowIcon, ShieldCheckIcon, Skeleton, SlideIcon, Slider, SparklesIcon, Spinner, Stack, type StackProps, type Status, SubscribeIcon, Switch, Table, TableIcon, Tabs, TagIcon, TextField, Textarea, ToastProvider, Tooltip, TwitterIcon, UpdateDateIcon, VerticalWritingIcon, ViewIcon, ViewOffIcon, type WritingMode, chain, cn, createSafeContext, mergeProps, mergeRefs, useBreakpoint, useClickAway, useClient, useClipboard, useControllableState, useDebouncedTransition, useDeferredDebounce, useDisclosure, useHash, useHover, useInView, useIntersectionObserver, useInterval, useLocalStorage, useOpenContext, usePortalRoot, useResize, useScrollDirection, useScrollLock, useSessionStorage, useStep, useTimeout, useToast, useWindowResize, useWindowSize, useWritingMode };
87
+ export { AIIcon, AccessibilityIcon, Accordion, Alert, AlertIcon, Anchor, ArteOdyssey, ArteOdysseyProvider, AtomIcon, Autocomplete, Avatar, BadIcon, Badge, BaselineStatus, BlogIcon, BoringIcon, Breadcrumb, Button, Card, CheckIcon, Checkbox, CheckboxCard, CheckboxGroup, ChevronIcon, CloseIcon, Code, ColorContrastIcon, ColorInfoIcon, CopyIcon, DarkModeIcon, type DebouncedAction, Dialog, DifficultIcon, type Direction, Drawer, DropdownMenu, EasyIcon, ExternalLinkIcon, FileField, Form, FormControl, FormIcon, GitHubIcon, GoodIcon, Grid, type GridProps, Heading, HistoryIcon, HorizontalWritingIcon, IconButton, InformativeIcon, InterestingIcon, LightModeIcon, LinkIcon, ListBox, ListIcon, LocationIcon, Logo, LogoIcon, MailIcon, MinusIcon, MixedColorIcon, Modal, NavigationMenuIcon, NewsIcon, NumberField, type Option, Pagination, PaletteIcon, PasswordInput, PlusIcon, Popover, PortalRootProvider, PrepareIcon, Progress, PublishDateIcon, QiitaIcon, RSSIcon, Radio, RadioCard, ScrollLinked, Select, SendIcon, Separator, ShallowIcon, ShieldCheckIcon, Skeleton, SlideIcon, Slider, SparklesIcon, Spinner, Stack, type StackProps, type Status, SubscribeIcon, Switch, Table, TableIcon, Tabs, TagIcon, TextField, Textarea, ToastProvider, Tooltip, TwitterIcon, UpdateDateIcon, VerticalWritingIcon, ViewIcon, ViewOffIcon, type WritingMode, chain, cn, createSafeContext, mergeProps, mergeRefs, useBreakpoint, useClickAway, useClient, useClipboard, useControllableState, useDebouncedTransition, useDeferredDebounce, useDisclosure, useHash, useHover, useInView, useIntersectionObserver, useInterval, useLocalStorage, useOpenContext, usePortalRoot, useResize, useScrollDirection, useScrollLock, useSessionStorage, useStep, useTimeout, useToast, useWindowResize, useWindowSize, useWritingMode };
package/dist/index.mjs CHANGED
@@ -31,7 +31,6 @@ import { Badge } from "./components/data-display/badge/badge.mjs";
31
31
  import { useClient } from "./hooks/client/index.mjs";
32
32
  import { BaselineStatus } from "./components/data-display/baseline-status/baseline-status.mjs";
33
33
  import { Card } from "./components/data-display/card/card.mjs";
34
- import { InteractiveCard } from "./components/data-display/card/interactive-card.mjs";
35
34
  import { Code } from "./components/data-display/code/code.mjs";
36
35
  import { Heading } from "./components/data-display/heading/heading.mjs";
37
36
  import { Table } from "./components/data-display/table/table.mjs";
@@ -84,4 +83,4 @@ import { Drawer } from "./components/overlays/drawer/drawer.mjs";
84
83
  import { DropdownMenu } from "./components/overlays/dropdown-menu/dropdown-menu.mjs";
85
84
  import { ListBox } from "./components/overlays/list-box/list-box.mjs";
86
85
  import { mergeProps } from "./helpers/merge-props.mjs";
87
- export { AIIcon, AccessibilityIcon, Accordion, Alert, AlertIcon, Anchor, ArteOdyssey, ArteOdysseyProvider, AtomIcon, Autocomplete, Avatar, BadIcon, Badge, BaselineStatus, BlogIcon, BoringIcon, Breadcrumb, Button, Card, CheckIcon, Checkbox, CheckboxCard, CheckboxGroup, ChevronIcon, CloseIcon, Code, ColorContrastIcon, ColorInfoIcon, CopyIcon, DarkModeIcon, Dialog, DifficultIcon, Drawer, DropdownMenu, EasyIcon, ExternalLinkIcon, FileField, Form, FormControl, FormIcon, GitHubIcon, GoodIcon, Grid, Heading, HistoryIcon, HorizontalWritingIcon, IconButton, InformativeIcon, InteractiveCard, InterestingIcon, LightModeIcon, LinkIcon, ListBox, ListIcon, LocationIcon, Logo, LogoIcon, MailIcon, MinusIcon, MixedColorIcon, Modal, NavigationMenuIcon, NewsIcon, NumberField, Pagination, PaletteIcon, PasswordInput, PlusIcon, Popover, PortalRootProvider, PrepareIcon, Progress, PublishDateIcon, QiitaIcon, RSSIcon, Radio, RadioCard, ScrollLinked, Select, SendIcon, Separator, ShallowIcon, ShieldCheckIcon, Skeleton, SlideIcon, Slider, SparklesIcon, Spinner, Stack, SubscribeIcon, Switch, Table, TableIcon, Tabs, TagIcon, TextField, Textarea, ToastProvider, Tooltip, TwitterIcon, UpdateDateIcon, VerticalWritingIcon, ViewIcon, ViewOffIcon, chain, cn, createSafeContext, mergeProps, mergeRefs, useBreakpoint, useClickAway, useClient, useClipboard, useControllableState, useDebouncedTransition, useDeferredDebounce, useDisclosure, useHash, useHover, useInView, useIntersectionObserver, useInterval, useLocalStorage, useOpenContext, usePortalRoot, useResize, useScrollDirection, useScrollLock, useSessionStorage, useStep, useTimeout, useToast, useWindowResize, useWindowSize, useWritingMode };
86
+ export { AIIcon, AccessibilityIcon, Accordion, Alert, AlertIcon, Anchor, ArteOdyssey, ArteOdysseyProvider, AtomIcon, Autocomplete, Avatar, BadIcon, Badge, BaselineStatus, BlogIcon, BoringIcon, Breadcrumb, Button, Card, CheckIcon, Checkbox, CheckboxCard, CheckboxGroup, ChevronIcon, CloseIcon, Code, ColorContrastIcon, ColorInfoIcon, CopyIcon, DarkModeIcon, Dialog, DifficultIcon, Drawer, DropdownMenu, EasyIcon, ExternalLinkIcon, FileField, Form, FormControl, FormIcon, GitHubIcon, GoodIcon, Grid, Heading, HistoryIcon, HorizontalWritingIcon, IconButton, InformativeIcon, InterestingIcon, LightModeIcon, LinkIcon, ListBox, ListIcon, LocationIcon, Logo, LogoIcon, MailIcon, MinusIcon, MixedColorIcon, Modal, NavigationMenuIcon, NewsIcon, NumberField, Pagination, PaletteIcon, PasswordInput, PlusIcon, Popover, PortalRootProvider, PrepareIcon, Progress, PublishDateIcon, QiitaIcon, RSSIcon, Radio, RadioCard, ScrollLinked, Select, SendIcon, Separator, ShallowIcon, ShieldCheckIcon, Skeleton, SlideIcon, Slider, SparklesIcon, Spinner, Stack, SubscribeIcon, Switch, Table, TableIcon, Tabs, TagIcon, TextField, Textarea, ToastProvider, Tooltip, TwitterIcon, UpdateDateIcon, VerticalWritingIcon, ViewIcon, ViewOffIcon, chain, cn, createSafeContext, mergeProps, mergeRefs, useBreakpoint, useClickAway, useClient, useClipboard, useControllableState, useDebouncedTransition, useDeferredDebounce, useDisclosure, useHash, useHover, useInView, useIntersectionObserver, useInterval, useLocalStorage, useOpenContext, usePortalRoot, useResize, useScrollDirection, useScrollLock, useSessionStorage, useStep, useTimeout, useToast, useWindowResize, useWindowSize, useWritingMode };
@@ -1,4 +1,4 @@
1
- import { AccordionProps, AlertProps, AnchorProps, AutocompleteProps, AvatarProps, BadgeProps, BaselineStatusProps, BreadcrumbProps, ButtonProps, CardProps, CheckboxCardProps, CheckboxGroupProps, CheckboxProps, ChevronIconProps, CodeProps, DialogProps, DrawerProps, DropdownMenuProps, FileFieldProps, FormControlProps, FormProps, GridProps, HeadingProps, IconButtonProps, IconProps, InteractiveCardProps, ListBoxProps, ModalProps, NumberFieldProps, PaginationProps, PasswordInputProps, PopoverProps, ProgressProps, RadioCardProps, RadioProps, ScrollLinkedProps, SelectProps, SeparatorProps, SkeletonProps, SliderProps, SpinnerProps, StackProps, StatusIconProps, SwitchProps, TableProps, TabsProps, TextFieldProps, TextareaProps, ToastProps, TooltipProps } from "./schemas.mjs";
1
+ import { AccordionProps, AlertProps, AnchorProps, AutocompleteProps, AvatarProps, BadgeProps, BaselineStatusProps, BreadcrumbProps, ButtonProps, CardProps, CheckboxCardProps, CheckboxGroupProps, CheckboxProps, ChevronIconProps, CodeProps, DialogProps, DrawerProps, DropdownMenuProps, FileFieldProps, FormControlProps, FormProps, GridProps, HeadingProps, IconButtonProps, IconProps, ListBoxProps, ModalProps, NumberFieldProps, PaginationProps, PasswordInputProps, PopoverProps, ProgressProps, RadioCardProps, RadioProps, ScrollLinkedProps, SelectProps, SeparatorProps, SkeletonProps, SliderProps, SpinnerProps, StackProps, StatusIconProps, SwitchProps, TableProps, TabsProps, TextFieldProps, TextareaProps, ToastProps, TooltipProps } from "./schemas.mjs";
2
2
  import { FC, ReactNode } from "react";
3
3
 
4
4
  //#region src/integrations/_shared/renderers.d.ts
@@ -39,7 +39,6 @@ declare function renderSkeleton(props: SkeletonProps): ReactNode;
39
39
  declare function renderAccordion(props: AccordionProps): ReactNode;
40
40
  declare function renderBreadcrumb(props: BreadcrumbProps): ReactNode;
41
41
  declare function renderTable(props: TableProps): ReactNode;
42
- declare function renderInteractiveCard(props: InteractiveCardProps, children: ReactNode): ReactNode;
43
42
  declare function renderForm(props: FormProps, children: ReactNode): ReactNode;
44
43
  declare const ModalWidget: FC<{
45
44
  props: ModalProps;
@@ -71,4 +70,4 @@ declare const FormControlWidget: FC<{
71
70
  props: FormControlProps;
72
71
  }>;
73
72
  //#endregion
74
- export { DialogWidget, DrawerWidget, FileFieldWidget, FormControlWidget, ModalWidget, TabsView, ToastWidget, renderAccordion, renderAlert, renderAnchor, renderAutocomplete, renderAvatar, renderBadge, renderBaselineStatus, renderBreadcrumb, renderButton, renderCard, renderCheckbox, renderCheckboxCard, renderCheckboxGroup, renderChevronIcon, renderCode, renderDropdownMenu, renderForm, renderGrid, renderHeading, renderIcon, renderIconButton, renderInteractiveCard, renderListBox, renderNumberField, renderPagination, renderPasswordInput, renderPopover, renderProgress, renderRadio, renderRadioCard, renderScrollLinked, renderSelect, renderSeparator, renderSkeleton, renderSlider, renderSpinner, renderStack, renderStatusIcon, renderSwitch, renderTable, renderTabs, renderTextField, renderTextarea, renderTooltip };
73
+ export { DialogWidget, DrawerWidget, FileFieldWidget, FormControlWidget, ModalWidget, TabsView, ToastWidget, renderAccordion, renderAlert, renderAnchor, renderAutocomplete, renderAvatar, renderBadge, renderBaselineStatus, renderBreadcrumb, renderButton, renderCard, renderCheckbox, renderCheckboxCard, renderCheckboxGroup, renderChevronIcon, renderCode, renderDropdownMenu, renderForm, renderGrid, renderHeading, renderIcon, renderIconButton, renderListBox, renderNumberField, renderPagination, renderPasswordInput, renderPopover, renderProgress, renderRadio, renderRadioCard, renderScrollLinked, renderSelect, renderSeparator, renderSkeleton, renderSlider, renderSpinner, renderStack, renderStatusIcon, renderSwitch, renderTable, renderTabs, renderTextField, renderTextarea, renderTooltip };
@@ -19,7 +19,6 @@ import { Avatar } from "../../components/data-display/avatar/avatar.mjs";
19
19
  import { Badge } from "../../components/data-display/badge/badge.mjs";
20
20
  import { BaselineStatus } from "../../components/data-display/baseline-status/baseline-status.mjs";
21
21
  import { Card } from "../../components/data-display/card/card.mjs";
22
- import { InteractiveCard } from "../../components/data-display/card/interactive-card.mjs";
23
22
  import { Code } from "../../components/data-display/code/code.mjs";
24
23
  import { Heading } from "../../components/data-display/heading/heading.mjs";
25
24
  import { Table } from "../../components/data-display/table/table.mjs";
@@ -170,11 +169,20 @@ function renderSeparator(props) {
170
169
  orientation: u(props.orientation)
171
170
  });
172
171
  }
172
+ const CARD_PADDING_CLASS = {
173
+ sm: "p-4",
174
+ md: "p-6",
175
+ lg: "p-8"
176
+ };
173
177
  function renderCard(props, children) {
174
178
  return /* @__PURE__ */ jsx(Card, {
175
179
  appearance: u(props.appearance),
180
+ interactive: u(props.interactive),
176
181
  width: u(props.width),
177
- children
182
+ children: /* @__PURE__ */ jsx("div", {
183
+ className: CARD_PADDING_CLASS[props.size ?? "md"],
184
+ children
185
+ })
178
186
  });
179
187
  }
180
188
  const TabsView = ({ props }) => {
@@ -203,6 +211,7 @@ function renderStack(props, children) {
203
211
  direction: u(props.direction),
204
212
  gap: u(props.gap),
205
213
  justify: u(props.justify),
214
+ padding: u(props.padding),
206
215
  children
207
216
  });
208
217
  }
@@ -464,13 +473,6 @@ function renderTable(props) {
464
473
  }, cellIndex)) }, rowIndex)) })
465
474
  ] });
466
475
  }
467
- function renderInteractiveCard(props, children) {
468
- return /* @__PURE__ */ jsx(InteractiveCard, {
469
- appearance: u(props.appearance),
470
- width: u(props.width),
471
- children
472
- });
473
- }
474
476
  function renderForm(props, children) {
475
477
  return /* @__PURE__ */ jsx(Form, {
476
478
  action: u(props.action),
@@ -664,4 +666,4 @@ const FormControlWidget = ({ props }) => {
664
666
  });
665
667
  };
666
668
  //#endregion
667
- export { DialogWidget, DrawerWidget, FileFieldWidget, FormControlWidget, ModalWidget, TabsView, ToastWidget, renderAccordion, renderAlert, renderAnchor, renderAutocomplete, renderAvatar, renderBadge, renderBaselineStatus, renderBreadcrumb, renderButton, renderCard, renderCheckbox, renderCheckboxCard, renderCheckboxGroup, renderChevronIcon, renderCode, renderDropdownMenu, renderForm, renderGrid, renderHeading, renderIcon, renderIconButton, renderInteractiveCard, renderListBox, renderNumberField, renderPagination, renderPasswordInput, renderPopover, renderProgress, renderRadio, renderRadioCard, renderScrollLinked, renderSelect, renderSeparator, renderSkeleton, renderSlider, renderSpinner, renderStack, renderStatusIcon, renderSwitch, renderTable, renderTabs, renderTextField, renderTextarea, renderTooltip };
669
+ export { DialogWidget, DrawerWidget, FileFieldWidget, FormControlWidget, ModalWidget, TabsView, ToastWidget, renderAccordion, renderAlert, renderAnchor, renderAutocomplete, renderAvatar, renderBadge, renderBaselineStatus, renderBreadcrumb, renderButton, renderCard, renderCheckbox, renderCheckboxCard, renderCheckboxGroup, renderChevronIcon, renderCode, renderDropdownMenu, renderForm, renderGrid, renderHeading, renderIcon, renderIconButton, renderListBox, renderNumberField, renderPagination, renderPasswordInput, renderPopover, renderProgress, renderRadio, renderRadioCard, renderScrollLinked, renderSelect, renderSeparator, renderSkeleton, renderSlider, renderSpinner, renderStack, renderStatusIcon, renderSwitch, renderTable, renderTabs, renderTextField, renderTextarea, renderTooltip };
@@ -237,9 +237,9 @@ declare const chevronIconProps: z.ZodObject<{
237
237
  declare const statusIconProps: z.ZodObject<{
238
238
  status: z.ZodEnum<{
239
239
  success: "success";
240
- error: "error";
241
240
  info: "info";
242
241
  warning: "warning";
242
+ error: "error";
243
243
  }>;
244
244
  size: z.ZodOptional<z.ZodEnum<{
245
245
  sm: "sm";
@@ -251,9 +251,9 @@ declare const badgeProps: z.ZodObject<{
251
251
  text: z.ZodString;
252
252
  tone: z.ZodOptional<z.ZodEnum<{
253
253
  success: "success";
254
- error: "error";
255
254
  info: "info";
256
255
  warning: "warning";
256
+ error: "error";
257
257
  neutral: "neutral";
258
258
  }>>;
259
259
  variant: z.ZodOptional<z.ZodEnum<{
@@ -320,23 +320,19 @@ declare const cardProps: z.ZodObject<{
320
320
  shadow: "shadow";
321
321
  bordered: "bordered";
322
322
  }>>;
323
- }, z.core.$strip>;
324
- declare const interactiveCardProps: z.ZodObject<{
325
- width: z.ZodOptional<z.ZodEnum<{
326
- full: "full";
327
- fit: "fit";
328
- }>>;
329
- appearance: z.ZodOptional<z.ZodEnum<{
330
- shadow: "shadow";
331
- bordered: "bordered";
323
+ interactive: z.ZodOptional<z.ZodBoolean>;
324
+ size: z.ZodOptional<z.ZodEnum<{
325
+ sm: "sm";
326
+ md: "md";
327
+ lg: "lg";
332
328
  }>>;
333
329
  }, z.core.$strip>;
334
330
  declare const alertProps: z.ZodObject<{
335
331
  tone: z.ZodEnum<{
336
332
  success: "success";
337
- error: "error";
338
333
  info: "info";
339
334
  warning: "warning";
335
+ error: "error";
340
336
  }>;
341
337
  message: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>;
342
338
  }, z.core.$strip>;
@@ -370,9 +366,9 @@ declare const toastProps: z.ZodObject<{
370
366
  triggerLabel: z.ZodString;
371
367
  tone: z.ZodEnum<{
372
368
  success: "success";
373
- error: "error";
374
369
  info: "info";
375
370
  warning: "warning";
371
+ error: "error";
376
372
  }>;
377
373
  message: z.ZodString;
378
374
  }, z.core.$strip>;
@@ -396,8 +392,15 @@ declare const stackProps: z.ZodObject<{
396
392
  sm: "sm";
397
393
  md: "md";
398
394
  lg: "lg";
395
+ none: "none";
399
396
  xl: "xl";
397
+ }>>;
398
+ padding: z.ZodOptional<z.ZodEnum<{
399
+ sm: "sm";
400
+ md: "md";
401
+ lg: "lg";
400
402
  none: "none";
403
+ xl: "xl";
401
404
  }>>;
402
405
  align: z.ZodOptional<z.ZodEnum<{
403
406
  start: "start";
@@ -419,8 +422,8 @@ declare const gridProps: z.ZodObject<{
419
422
  sm: "sm";
420
423
  md: "md";
421
424
  lg: "lg";
422
- xl: "xl";
423
425
  none: "none";
426
+ xl: "xl";
424
427
  }>>;
425
428
  }, z.core.$strip>;
426
429
  declare const scrollLinkedProps: z.ZodObject<{}, z.core.$strip>;
@@ -679,7 +682,6 @@ type PaginationProps = z.infer<typeof paginationProps>;
679
682
  type GridProps = z.infer<typeof gridProps>;
680
683
  type ChevronIconProps = z.infer<typeof chevronIconProps>;
681
684
  type StatusIconProps = z.infer<typeof statusIconProps>;
682
- type InteractiveCardProps = z.infer<typeof interactiveCardProps>;
683
685
  type FormProps = z.infer<typeof formProps>;
684
686
  type ModalProps = z.infer<typeof modalProps>;
685
687
  type DialogProps = z.infer<typeof dialogProps>;
@@ -701,4 +703,4 @@ type CoversComponent<Component, Zod> = [Exclude<NonNullable<Component>, Zod>] ex
701
703
  type AssertCovered<T extends true> = T;
702
704
  type _EnumCoverage = [AssertCovered<CoversComponent<ComponentProps<typeof Button>['variant'], ButtonProps['variant']>>, AssertCovered<CoversComponent<ComponentProps<typeof Button>['color'], ButtonProps['color']>>, AssertCovered<CoversComponent<ComponentProps<typeof Button>['size'], ButtonProps['size']>>, AssertCovered<CoversComponent<ComponentProps<typeof Badge>['tone'], BadgeProps['tone']>>, AssertCovered<CoversComponent<ComponentProps<typeof Badge>['variant'], BadgeProps['variant']>>, AssertCovered<CoversComponent<ComponentProps<typeof Badge>['size'], BadgeProps['size']>>, AssertCovered<CoversComponent<ComponentProps<typeof Card>['width'], CardProps['width']>>, AssertCovered<CoversComponent<ComponentProps<typeof Card>['appearance'], CardProps['appearance']>>, AssertCovered<CoversComponent<ComponentProps<typeof Alert>['tone'], AlertProps['tone']>>, AssertCovered<CoversComponent<ComponentProps<typeof Separator>['orientation'], SeparatorProps['orientation']>>, AssertCovered<CoversComponent<ComponentProps<typeof Separator>['color'], SeparatorProps['color']>>, AssertCovered<CoversComponent<ComponentProps<typeof Modal>['type'], ModalProps['type']>>, AssertCovered<CoversComponent<ComponentProps<typeof Drawer>['side'], DrawerProps['side']>>, AssertCovered<CoversComponent<ComponentProps<typeof Heading>['type'], HeadingProps['level']>>, AssertCovered<CoversComponent<ComponentProps<typeof Avatar>['size'], AvatarProps['size']>>, AssertCovered<CoversComponent<ComponentProps<typeof Spinner>['size'], SpinnerProps['size']>>, AssertCovered<CoversComponent<ComponentProps<typeof Skeleton>['shape'], SkeletonProps['shape']>>, AssertCovered<CoversComponent<ComponentProps<typeof Skeleton>['size'], SkeletonProps['size']>>, AssertCovered<CoversComponent<ComponentProps<typeof IconButton>['size'], IconButtonProps['size']>>, AssertCovered<CoversComponent<ComponentProps<typeof IconButton>['color'], IconButtonProps['color']>>, AssertCovered<CoversComponent<ComponentProps<typeof ChevronIcon>['direction'], ChevronIconProps['direction']>>, AssertCovered<CoversComponent<ComponentProps<typeof AlertIcon>['status'], StatusIconProps['status']>>, AssertCovered<CoversComponent<ComponentProps<typeof Stack>['direction'], StackProps['direction']>>, AssertCovered<CoversComponent<ComponentProps<typeof Stack>['gap'], StackProps['gap']>>, AssertCovered<CoversComponent<ComponentProps<typeof Stack>['align'], StackProps['align']>>, AssertCovered<CoversComponent<ComponentProps<typeof Stack>['justify'], StackProps['justify']>>, AssertCovered<CoversComponent<ComponentProps<typeof Grid>['cols'], GridProps['cols']>>, AssertCovered<CoversComponent<ComponentProps<typeof Grid>['minItemSize'], GridProps['minItemSize']>>, AssertCovered<CoversComponent<ComponentProps<typeof Grid>['gap'], GridProps['gap']>>, AssertCovered<CoversComponent<ComponentProps<typeof Breadcrumb.List>['size'], BreadcrumbProps['size']>>];
703
705
  //#endregion
704
- export { AccordionProps, AlertProps, AnchorProps, AutocompleteProps, AvatarProps, BadgeProps, BaselineStatusProps, BreadcrumbProps, ButtonProps, CardProps, CheckboxCardProps, CheckboxGroupProps, CheckboxProps, ChevronIconProps, CodeProps, DialogProps, DrawerProps, DropdownMenuProps, FileFieldProps, FormControlProps, FormProps, GridProps, HeadingProps, IconButtonProps, IconName, IconProps, InteractiveCardProps, ListBoxProps, ModalProps, NumberFieldProps, PaginationProps, PasswordInputProps, PopoverProps, ProgressProps, RadioCardProps, RadioProps, ScrollLinkedProps, SelectProps, SeparatorProps, SkeletonProps, SliderProps, SpinnerProps, StackProps, StatusIconProps, SwitchProps, TableProps, TabsProps, TextFieldProps, TextareaProps, ToastProps, TooltipProps, _EnumCoverage, accordionProps, alertProps, anchorProps, autocompleteProps, avatarProps, badgeProps, baselineStatusProps, breadcrumbProps, buttonProps, cardProps, checkboxCardProps, checkboxGroupProps, checkboxProps, chevronIconProps, codeProps, dialogProps, drawerProps, dropdownMenuProps, fileFieldProps, formControlProps, formProps, gridProps, headingProps, iconButtonProps, iconName, iconProps, interactiveCardProps, listBoxProps, modalProps, numberFieldProps, paginationProps, passwordInputProps, popoverProps, progressProps, radioCardProps, radioProps, scrollLinkedProps, selectProps, separatorProps, skeletonProps, sliderProps, spinnerProps, stackProps, statusIconProps, switchProps, tableProps, tabsProps, textFieldProps, textareaProps, toastProps, tooltipProps };
706
+ export { AccordionProps, AlertProps, AnchorProps, AutocompleteProps, AvatarProps, BadgeProps, BaselineStatusProps, BreadcrumbProps, ButtonProps, CardProps, CheckboxCardProps, CheckboxGroupProps, CheckboxProps, ChevronIconProps, CodeProps, DialogProps, DrawerProps, DropdownMenuProps, FileFieldProps, FormControlProps, FormProps, GridProps, HeadingProps, IconButtonProps, IconName, IconProps, ListBoxProps, ModalProps, NumberFieldProps, PaginationProps, PasswordInputProps, PopoverProps, ProgressProps, RadioCardProps, RadioProps, ScrollLinkedProps, SelectProps, SeparatorProps, SkeletonProps, SliderProps, SpinnerProps, StackProps, StatusIconProps, SwitchProps, TableProps, TabsProps, TextFieldProps, TextareaProps, ToastProps, TooltipProps, _EnumCoverage, accordionProps, alertProps, anchorProps, autocompleteProps, avatarProps, badgeProps, baselineStatusProps, breadcrumbProps, buttonProps, cardProps, checkboxCardProps, checkboxGroupProps, checkboxProps, chevronIconProps, codeProps, dialogProps, drawerProps, dropdownMenuProps, fileFieldProps, formControlProps, formProps, gridProps, headingProps, iconButtonProps, iconName, iconProps, listBoxProps, modalProps, numberFieldProps, paginationProps, passwordInputProps, popoverProps, progressProps, radioCardProps, radioProps, scrollLinkedProps, selectProps, separatorProps, skeletonProps, sliderProps, spinnerProps, stackProps, statusIconProps, switchProps, tableProps, tabsProps, textFieldProps, textareaProps, toastProps, tooltipProps };
@@ -212,9 +212,14 @@ const tableProps = z.object({
212
212
  });
213
213
  const cardProps = z.object({
214
214
  width: z.enum(["full", "fit"]).optional(),
215
- appearance: z.enum(["shadow", "bordered"]).optional()
215
+ appearance: z.enum(["shadow", "bordered"]).optional(),
216
+ interactive: z.boolean().optional(),
217
+ size: z.enum([
218
+ "sm",
219
+ "md",
220
+ "lg"
221
+ ]).optional()
216
222
  });
217
- const interactiveCardProps = cardProps;
218
223
  const alertProps = z.object({
219
224
  tone: z.enum([
220
225
  "success",
@@ -274,6 +279,13 @@ const stackProps = z.object({
274
279
  "lg",
275
280
  "xl"
276
281
  ]).optional(),
282
+ padding: z.enum([
283
+ "none",
284
+ "sm",
285
+ "md",
286
+ "lg",
287
+ "xl"
288
+ ]).optional(),
277
289
  align: z.enum([
278
290
  "start",
279
291
  "center",
@@ -493,4 +505,4 @@ const dropdownMenuProps = z.object({
493
505
  items: z.array(z.object({ label: z.string() })).min(1).describe("メニュー項目")
494
506
  });
495
507
  //#endregion
496
- export { accordionProps, alertProps, anchorProps, autocompleteProps, avatarProps, badgeProps, baselineStatusProps, breadcrumbProps, buttonProps, cardProps, checkboxCardProps, checkboxGroupProps, checkboxProps, chevronIconProps, codeProps, dialogProps, drawerProps, dropdownMenuProps, fileFieldProps, formControlProps, formProps, gridProps, headingProps, iconButtonProps, iconName, iconProps, interactiveCardProps, listBoxProps, modalProps, numberFieldProps, paginationProps, passwordInputProps, popoverProps, progressProps, radioCardProps, radioProps, scrollLinkedProps, selectProps, separatorProps, skeletonProps, sliderProps, spinnerProps, stackProps, statusIconProps, switchProps, tableProps, tabsProps, textFieldProps, textareaProps, toastProps, tooltipProps };
508
+ export { accordionProps, alertProps, anchorProps, autocompleteProps, avatarProps, badgeProps, baselineStatusProps, breadcrumbProps, buttonProps, cardProps, checkboxCardProps, checkboxGroupProps, checkboxProps, chevronIconProps, codeProps, dialogProps, drawerProps, dropdownMenuProps, fileFieldProps, formControlProps, formProps, gridProps, headingProps, iconButtonProps, iconName, iconProps, listBoxProps, modalProps, numberFieldProps, paginationProps, passwordInputProps, popoverProps, progressProps, radioCardProps, radioProps, scrollLinkedProps, selectProps, separatorProps, skeletonProps, sliderProps, spinnerProps, stackProps, statusIconProps, switchProps, tableProps, tabsProps, textFieldProps, textareaProps, toastProps, tooltipProps };
@@ -42,8 +42,15 @@ declare const catalog: import("@json-render/core").Catalog<{
42
42
  sm: "sm";
43
43
  md: "md";
44
44
  lg: "lg";
45
+ none: "none";
45
46
  xl: "xl";
47
+ }>>;
48
+ padding: import("zod").ZodOptional<import("zod").ZodEnum<{
49
+ sm: "sm";
50
+ md: "md";
51
+ lg: "lg";
46
52
  none: "none";
53
+ xl: "xl";
47
54
  }>>;
48
55
  align: import("zod").ZodOptional<import("zod").ZodEnum<{
49
56
  start: "start";
@@ -69,8 +76,8 @@ declare const catalog: import("@json-render/core").Catalog<{
69
76
  sm: "sm";
70
77
  md: "md";
71
78
  lg: "lg";
72
- xl: "xl";
73
79
  none: "none";
80
+ xl: "xl";
74
81
  }>>;
75
82
  }, import("zod/v4/core").$strip>;
76
83
  slots: string[];
@@ -109,6 +116,12 @@ declare const catalog: import("@json-render/core").Catalog<{
109
116
  shadow: "shadow";
110
117
  bordered: "bordered";
111
118
  }>>;
119
+ interactive: import("zod").ZodOptional<import("zod").ZodBoolean>;
120
+ size: import("zod").ZodOptional<import("zod").ZodEnum<{
121
+ sm: "sm";
122
+ md: "md";
123
+ lg: "lg";
124
+ }>>;
112
125
  }, import("zod/v4/core").$strip>;
113
126
  slots: string[];
114
127
  description: string;
@@ -118,9 +131,9 @@ declare const catalog: import("@json-render/core").Catalog<{
118
131
  text: import("zod").ZodString;
119
132
  tone: import("zod").ZodOptional<import("zod").ZodEnum<{
120
133
  success: "success";
121
- error: "error";
122
134
  info: "info";
123
135
  warning: "warning";
136
+ error: "error";
124
137
  neutral: "neutral";
125
138
  }>>;
126
139
  variant: import("zod").ZodOptional<import("zod").ZodEnum<{
@@ -154,9 +167,9 @@ declare const catalog: import("@json-render/core").Catalog<{
154
167
  props: import("zod").ZodObject<{
155
168
  tone: import("zod").ZodEnum<{
156
169
  success: "success";
157
- error: "error";
158
170
  info: "info";
159
171
  warning: "warning";
172
+ error: "error";
160
173
  }>;
161
174
  message: import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodArray<import("zod").ZodString>]>;
162
175
  }, import("zod/v4/core").$strip>;
@@ -417,9 +430,9 @@ declare const catalog: import("@json-render/core").Catalog<{
417
430
  props: import("zod").ZodObject<{
418
431
  status: import("zod").ZodEnum<{
419
432
  success: "success";
420
- error: "error";
421
433
  info: "info";
422
434
  warning: "warning";
435
+ error: "error";
423
436
  }>;
424
437
  size: import("zod").ZodOptional<import("zod").ZodEnum<{
425
438
  sm: "sm";
@@ -600,20 +613,6 @@ declare const catalog: import("@json-render/core").Catalog<{
600
613
  }, import("zod/v4/core").$strip>;
601
614
  description: string;
602
615
  };
603
- InteractiveCard: {
604
- props: import("zod").ZodObject<{
605
- width: import("zod").ZodOptional<import("zod").ZodEnum<{
606
- full: "full";
607
- fit: "fit";
608
- }>>;
609
- appearance: import("zod").ZodOptional<import("zod").ZodEnum<{
610
- shadow: "shadow";
611
- bordered: "bordered";
612
- }>>;
613
- }, import("zod/v4/core").$strip>;
614
- slots: string[];
615
- description: string;
616
- };
617
616
  Form: {
618
617
  props: import("zod").ZodObject<{
619
618
  action: import("zod").ZodOptional<import("zod").ZodString>;
@@ -683,9 +682,9 @@ declare const catalog: import("@json-render/core").Catalog<{
683
682
  triggerLabel: import("zod").ZodString;
684
683
  tone: import("zod").ZodEnum<{
685
684
  success: "success";
686
- error: "error";
687
685
  info: "info";
688
686
  warning: "warning";
687
+ error: "error";
689
688
  }>;
690
689
  message: import("zod").ZodString;
691
690
  }, import("zod/v4/core").$strip>;
@@ -1,4 +1,4 @@
1
- import { accordionProps, alertProps, anchorProps, autocompleteProps, avatarProps, badgeProps, baselineStatusProps, breadcrumbProps, buttonProps, cardProps, checkboxCardProps, checkboxGroupProps, checkboxProps, chevronIconProps, codeProps, dialogProps, drawerProps, dropdownMenuProps, fileFieldProps, formControlProps, formProps, gridProps, headingProps, iconButtonProps, iconProps, interactiveCardProps, listBoxProps, modalProps, numberFieldProps, paginationProps, passwordInputProps, popoverProps, progressProps, radioCardProps, radioProps, scrollLinkedProps, selectProps, separatorProps, skeletonProps, sliderProps, spinnerProps, stackProps, statusIconProps, switchProps, tableProps, tabsProps, textFieldProps, textareaProps, toastProps, tooltipProps } from "../_shared/schemas.mjs";
1
+ import { accordionProps, alertProps, anchorProps, autocompleteProps, avatarProps, badgeProps, baselineStatusProps, breadcrumbProps, buttonProps, cardProps, checkboxCardProps, checkboxGroupProps, checkboxProps, chevronIconProps, codeProps, dialogProps, drawerProps, dropdownMenuProps, fileFieldProps, formControlProps, formProps, gridProps, headingProps, iconButtonProps, iconProps, listBoxProps, modalProps, numberFieldProps, paginationProps, passwordInputProps, popoverProps, progressProps, radioCardProps, radioProps, scrollLinkedProps, selectProps, separatorProps, skeletonProps, sliderProps, spinnerProps, stackProps, statusIconProps, switchProps, tableProps, tabsProps, textFieldProps, textareaProps, toastProps, tooltipProps } from "../_shared/schemas.mjs";
2
2
  import { defineCatalog } from "@json-render/core";
3
3
  import { schema } from "@json-render/react/schema";
4
4
  //#region src/integrations/json-render/catalog.ts
@@ -16,7 +16,7 @@ const catalog = defineCatalog(schema, {
16
16
  Stack: {
17
17
  props: stackProps,
18
18
  slots: ["default"],
19
- description: "子要素を縦/横に等間隔で並べるレイアウトコンテナ。"
19
+ description: "子要素を縦/横に等間隔で並べるレイアウトコンテナ。gap で子要素間の間隔、padding(none〜xl)で内側の余白を付ける。セクションに余白が欲しいときは padding を指定する。"
20
20
  },
21
21
  Grid: {
22
22
  props: gridProps,
@@ -30,7 +30,7 @@ const catalog = defineCatalog(schema, {
30
30
  Card: {
31
31
  props: cardProps,
32
32
  slots: ["default"],
33
- description: "コンテンツをまとめるカード(コンテナ)。"
33
+ description: "コンテンツをまとめるカード(コンテナ)。内側 padding は size(sm/md/lg、デフォルト md)で決まる。中身を Stack で囲む場合に重ねて padding を指定する必要はない。interactive を付けるとホバー時にスケールする。"
34
34
  },
35
35
  Badge: {
36
36
  props: badgeProps,
@@ -152,11 +152,6 @@ const catalog = defineCatalog(schema, {
152
152
  props: paginationProps,
153
153
  description: "ページネーション。defaultPage を $bindState で束縛できる。"
154
154
  },
155
- InteractiveCard: {
156
- props: interactiveCardProps,
157
- slots: ["default"],
158
- description: "ホバーアニメーション付きのカード。"
159
- },
160
155
  Form: {
161
156
  props: formProps,
162
157
  slots: ["default"],
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { DialogWidget, DrawerWidget, FileFieldWidget, FormControlWidget, ModalWidget, ToastWidget, renderAccordion, renderAlert, renderAnchor, renderAutocomplete, renderAvatar, renderBadge, renderBaselineStatus, renderBreadcrumb, renderButton, renderCard, renderCheckbox, renderCheckboxCard, renderCheckboxGroup, renderChevronIcon, renderCode, renderDropdownMenu, renderForm, renderGrid, renderHeading, renderIcon, renderIconButton, renderInteractiveCard, renderListBox, renderNumberField, renderPagination, renderPasswordInput, renderPopover, renderProgress, renderRadio, renderRadioCard, renderScrollLinked, renderSelect, renderSeparator, renderSkeleton, renderSlider, renderSpinner, renderStack, renderStatusIcon, renderSwitch, renderTable, renderTabs, renderTextField, renderTextarea, renderTooltip } from "../_shared/renderers.mjs";
2
+ import { DialogWidget, DrawerWidget, FileFieldWidget, FormControlWidget, ModalWidget, ToastWidget, renderAccordion, renderAlert, renderAnchor, renderAutocomplete, renderAvatar, renderBadge, renderBaselineStatus, renderBreadcrumb, renderButton, renderCard, renderCheckbox, renderCheckboxCard, renderCheckboxGroup, renderChevronIcon, renderCode, renderDropdownMenu, renderForm, renderGrid, renderHeading, renderIcon, renderIconButton, renderListBox, renderNumberField, renderPagination, renderPasswordInput, renderPopover, renderProgress, renderRadio, renderRadioCard, renderScrollLinked, renderSelect, renderSeparator, renderSkeleton, renderSlider, renderSpinner, renderStack, renderStatusIcon, renderSwitch, renderTable, renderTabs, renderTextField, renderTextarea, renderTooltip } from "../_shared/renderers.mjs";
3
3
  import { catalog } from "./catalog.mjs";
4
4
  import { useState } from "react";
5
5
  import { jsx } from "react/jsx-runtime";
@@ -89,7 +89,6 @@ const { registry } = defineRegistry(catalog, { components: {
89
89
  const [page, setPage] = useBoundOrLocal(props.defaultPage, bindings?.defaultPage, 1);
90
90
  return renderPagination(props, page, setPage);
91
91
  },
92
- InteractiveCard: ({ props, children }) => renderInteractiveCard(props, children),
93
92
  Form: ({ props, children }) => renderForm(props, children),
94
93
  Modal: ({ props, children }) => /* @__PURE__ */ jsx(ModalWidget, {
95
94
  props,
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- import { DialogWidget, DrawerWidget, FileFieldWidget, FormControlWidget, ModalWidget, ToastWidget, renderAccordion, renderAlert, renderAnchor, renderAvatar, renderBadge, renderBaselineStatus, renderBreadcrumb, renderButton, renderCard, renderChevronIcon, renderCode, renderDropdownMenu, renderForm, renderGrid, renderHeading, renderIcon, renderIconButton, renderInteractiveCard, renderPopover, renderProgress, renderScrollLinked, renderSeparator, renderSkeleton, renderSpinner, renderStack, renderStatusIcon, renderTable, renderTabs, renderTooltip } from "../_shared/renderers.mjs";
3
- import { accordionProps, alertProps, anchorProps, autocompleteProps, avatarProps, badgeProps, baselineStatusProps, breadcrumbProps, buttonProps, cardProps, checkboxCardProps, checkboxGroupProps, checkboxProps, chevronIconProps, codeProps, dialogProps, drawerProps, dropdownMenuProps, fileFieldProps, formControlProps, formProps, gridProps, headingProps, iconButtonProps, iconProps, interactiveCardProps, listBoxProps, modalProps, numberFieldProps, paginationProps, passwordInputProps, popoverProps, progressProps, radioCardProps, radioProps, scrollLinkedProps, selectProps, separatorProps, skeletonProps, sliderProps, spinnerProps, stackProps, statusIconProps, switchProps, tableProps, tabsProps, textFieldProps, textareaProps, toastProps, tooltipProps } from "../_shared/schemas.mjs";
2
+ import { DialogWidget, DrawerWidget, FileFieldWidget, FormControlWidget, ModalWidget, ToastWidget, renderAccordion, renderAlert, renderAnchor, renderAvatar, renderBadge, renderBaselineStatus, renderBreadcrumb, renderButton, renderCard, renderChevronIcon, renderCode, renderDropdownMenu, renderForm, renderGrid, renderHeading, renderIcon, renderIconButton, renderPopover, renderProgress, renderScrollLinked, renderSeparator, renderSkeleton, renderSpinner, renderStack, renderStatusIcon, renderTable, renderTabs, renderTooltip } from "../_shared/renderers.mjs";
3
+ import { accordionProps, alertProps, anchorProps, autocompleteProps, avatarProps, badgeProps, baselineStatusProps, breadcrumbProps, buttonProps, cardProps, checkboxCardProps, checkboxGroupProps, checkboxProps, chevronIconProps, codeProps, dialogProps, drawerProps, dropdownMenuProps, fileFieldProps, formControlProps, formProps, gridProps, headingProps, iconButtonProps, iconProps, listBoxProps, modalProps, numberFieldProps, paginationProps, passwordInputProps, popoverProps, progressProps, radioCardProps, radioProps, scrollLinkedProps, selectProps, separatorProps, skeletonProps, sliderProps, spinnerProps, stackProps, statusIconProps, switchProps, tableProps, tabsProps, textFieldProps, textareaProps, toastProps, tooltipProps } from "../_shared/schemas.mjs";
4
4
  import { AutocompleteView, CheckboxCardView, CheckboxGroupView, CheckboxView, ListBoxView, NumberFieldView, PaginationView, PasswordInputView, RadioCardView, RadioView, SelectView, SliderView, SwitchView, TextFieldView, TextareaView } from "./form-views.mjs";
5
5
  import { Fragment } from "react";
6
6
  import { jsx } from "react/jsx-runtime";
@@ -335,16 +335,10 @@ const library = createLibrary({
335
335
  Grid,
336
336
  defineComponent({
337
337
  name: "Card",
338
- description: "コンテンツをまとめるカード(コンテナ)。Stack も入れられる。",
338
+ description: "コンテンツをまとめるカード(コンテナ)。Stack も入れられる。interactive を付けるとホバー時にスケールする。",
339
339
  props: cardProps.extend({ children: z.array(z.union(containerChildRefs)).describe("カード内の子要素") }),
340
340
  component: ({ props, renderNode }) => renderCard(props, renderChildren(props.children, renderNode))
341
341
  }),
342
- defineComponent({
343
- name: "InteractiveCard",
344
- description: "ホバーアニメーション付きのカード。",
345
- props: interactiveCardProps.extend({ children: z.array(z.union(containerChildRefs)).describe("カード内の子要素") }),
346
- component: ({ props, renderNode }) => renderInteractiveCard(props, renderChildren(props.children, renderNode))
347
- }),
348
342
  defineComponent({
349
343
  name: "Form",
350
344
  description: "フォーム要素のラッパー(縦並びレイアウト)。",
@@ -16,3 +16,7 @@
16
16
  @import './tokens.css';
17
17
  @import './utilities.css';
18
18
  @source '../components';
19
+ /* The json-render / openui integrations' renderers emit utility classes too
20
+ (e.g. card padding), so they must be scanned alongside components — else a
21
+ class only used in a renderer (not in any component) is never generated. */
22
+ @source '../integrations';
@@ -208,8 +208,8 @@
208
208
 
209
209
  --bg-base: var(--gray-800);
210
210
  --bg-raised: var(--gray-700);
211
- --bg-surface: var(--gray-900);
212
- --bg-subtle: var(--gray-800);
211
+ --bg-surface: var(--gray-950);
212
+ --bg-subtle: var(--gray-900);
213
213
  --bg-mute: var(--gray-700);
214
214
  --bg-emphasize: var(--gray-600);
215
215
  --bg-inverse: var(--white);
@@ -70,11 +70,11 @@ declare const tokens: {
70
70
  };
71
71
  readonly 'bg-surface': {
72
72
  readonly light: "oklch(0.975 0.001 235)";
73
- readonly dark: "oklch(0.25 0.0015 235)";
73
+ readonly dark: "oklch(0.18 0.001 235)";
74
74
  };
75
75
  readonly 'bg-subtle': {
76
76
  readonly light: "oklch(0.945 0.0015 235)";
77
- readonly dark: "oklch(0.3 0.002 235)";
77
+ readonly dark: "oklch(0.25 0.0015 235)";
78
78
  };
79
79
  readonly 'bg-mute': {
80
80
  readonly light: "oklch(0.9 0.003 235)";
@@ -498,11 +498,11 @@ declare const tokens: {
498
498
  };
499
499
  readonly 'bg-surface': {
500
500
  readonly light: "oklch(0.975 0.001 235)";
501
- readonly dark: "oklch(0.25 0.0015 235)";
501
+ readonly dark: "oklch(0.18 0.001 235)";
502
502
  };
503
503
  readonly 'bg-subtle': {
504
504
  readonly light: "oklch(0.945 0.0015 235)";
505
- readonly dark: "oklch(0.3 0.002 235)";
505
+ readonly dark: "oklch(0.25 0.0015 235)";
506
506
  };
507
507
  readonly 'bg-mute': {
508
508
  readonly light: "oklch(0.9 0.003 235)";
@@ -671,11 +671,11 @@ declare const tokens: {
671
671
  };
672
672
  readonly 'bg-surface': {
673
673
  readonly light: "gray-50";
674
- readonly dark: "gray-900";
674
+ readonly dark: "gray-950";
675
675
  };
676
676
  readonly 'bg-subtle': {
677
677
  readonly light: "gray-100";
678
- readonly dark: "gray-800";
678
+ readonly dark: "gray-900";
679
679
  };
680
680
  readonly 'bg-mute': {
681
681
  readonly light: "gray-200";
@@ -68,11 +68,11 @@ const tokens = {
68
68
  },
69
69
  "bg-surface": {
70
70
  light: "oklch(0.975 0.001 235)",
71
- dark: "oklch(0.25 0.0015 235)"
71
+ dark: "oklch(0.18 0.001 235)"
72
72
  },
73
73
  "bg-subtle": {
74
74
  light: "oklch(0.945 0.0015 235)",
75
- dark: "oklch(0.3 0.002 235)"
75
+ dark: "oklch(0.25 0.0015 235)"
76
76
  },
77
77
  "bg-mute": {
78
78
  light: "oklch(0.9 0.003 235)",
@@ -494,11 +494,11 @@ const tokens = {
494
494
  },
495
495
  "bg-surface": {
496
496
  light: "oklch(0.975 0.001 235)",
497
- dark: "oklch(0.25 0.0015 235)"
497
+ dark: "oklch(0.18 0.001 235)"
498
498
  },
499
499
  "bg-subtle": {
500
500
  light: "oklch(0.945 0.0015 235)",
501
- dark: "oklch(0.3 0.002 235)"
501
+ dark: "oklch(0.25 0.0015 235)"
502
502
  },
503
503
  "bg-mute": {
504
504
  light: "oklch(0.9 0.003 235)",
@@ -667,11 +667,11 @@ const tokens = {
667
667
  },
668
668
  "bg-surface": {
669
669
  light: "gray-50",
670
- dark: "gray-900"
670
+ dark: "gray-950"
671
671
  },
672
672
  "bg-subtle": {
673
673
  light: "gray-100",
674
- dark: "gray-800"
674
+ dark: "gray-900"
675
675
  },
676
676
  "bg-mute": {
677
677
  light: "gray-200",
package/docs/GUIDE.md CHANGED
@@ -188,22 +188,22 @@ import { IconButton } from '@k8o/arte-odyssey';
188
188
  </IconButton>
189
189
  ```
190
190
 
191
- ### Card / InteractiveCard
191
+ ### Card
192
192
 
193
193
  シャドウで浮かせるのが基本。ページ背景 `bg-subtle` の上に白カード。
194
194
 
195
195
  ```tsx
196
- import { Card, InteractiveCard } from '@k8o/arte-odyssey';
196
+ import { Card } from '@k8o/arte-odyssey';
197
197
 
198
198
  // 静的カード(シャドウで浮かせる)
199
199
  <Card appearance="shadow">
200
200
  <div className="p-8">カードのコンテンツ</div>
201
201
  </Card>
202
202
 
203
- // クリック可能なカード(ホバーでスケールアップ)
204
- <InteractiveCard appearance="shadow">
203
+ // クリック可能なカード(interactive でホバー時にスケールアップ)
204
+ <Card appearance="shadow" interactive>
205
205
  <div className="p-8">コンテンツ</div>
206
- </InteractiveCard>
206
+ </Card>
207
207
  ```
208
208
 
209
209
  ### フォーム
@@ -185,29 +185,29 @@ Props (Tabs.Root):
185
185
  - `ids`: `[string, ...string[]]`(必須)
186
186
  - `defaultSelectedId`: string | null
187
187
 
188
- ### Card / InteractiveCard
188
+ ### Card
189
189
 
190
190
  コンテンツをグループ化するカード。
191
191
 
192
192
  ```tsx
193
- import { Card, InteractiveCard } from '@k8o/arte-odyssey';
193
+ import { Card } from '@k8o/arte-odyssey';
194
194
 
195
195
  // 静的カード
196
- <Card variant="primary" width="full" appearance="shadow">
196
+ <Card width="full" appearance="shadow">
197
197
  <div className="p-6">コンテンツ</div>
198
198
  </Card>
199
199
 
200
200
  // クリック可能なカード(hover:scale-[1.02], active:scale-[0.98])
201
- <InteractiveCard appearance="bordered">
201
+ <Card appearance="bordered" interactive>
202
202
  <div className="p-6">コンテンツ</div>
203
- </InteractiveCard>
203
+ </Card>
204
204
  ```
205
205
 
206
206
  Props:
207
207
 
208
- - `variant`: `'primary'` | `'secondary'`
209
208
  - `width`: `'full'` | `'fit'`
210
209
  - `appearance`: `'shadow'` | `'bordered'`
210
+ - `interactive`: boolean
211
211
 
212
212
  ### Separator
213
213
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@k8o/arte-odyssey",
3
- "version": "10.0.1",
3
+ "version": "10.1.1",
4
4
  "description": "k8o's react ui library",
5
5
  "keywords": [
6
6
  "components",
@@ -1,7 +0,0 @@
1
- import { CardProps } from "./type.mjs";
2
- import { FC } from "react";
3
-
4
- //#region src/components/data-display/card/interactive-card.d.ts
5
- declare const InteractiveCard: FC<CardProps>;
6
- //#endregion
7
- export { InteractiveCard };
@@ -1,10 +0,0 @@
1
- import { cn } from "../../../helpers/cn.mjs";
2
- import { jsx } from "react/jsx-runtime";
3
- //#region src/components/data-display/card/interactive-card.tsx
4
- const InteractiveCard = ({ children, width = "full", appearance = "shadow", ...rest }) => /* @__PURE__ */ jsx("div", {
5
- ...rest,
6
- className: cn("rounded-xl transition-transform hover:scale-[1.02] active:scale-[0.98]", appearance === "shadow" && "shadow-sm border border-transparent dark:border-border-subtle", appearance === "bordered" && "border border-border-mute", width === "full" && "w-full", width === "fit" && "w-fit", "bg-bg-base"),
7
- children
8
- });
9
- //#endregion
10
- export { InteractiveCard };
@@ -1,9 +0,0 @@
1
- import { HTMLAttributes } from "react";
2
-
3
- //#region src/components/data-display/card/type.d.ts
4
- type CardProps = {
5
- width?: 'full' | 'fit';
6
- appearance?: 'shadow' | 'bordered';
7
- } & Omit<HTMLAttributes<HTMLDivElement>, 'className' | 'style'>;
8
- //#endregion
9
- export { CardProps };
@@ -1 +0,0 @@
1
- export {};