@ndla/primitives 0.0.16 → 0.0.18

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 (59) hide show
  1. package/dist/panda.buildinfo.json +18 -14
  2. package/dist/styles.css +333 -315
  3. package/es/Accordion.js +58 -30
  4. package/es/Button.js +3 -2
  5. package/es/Card/Card.js +77 -0
  6. package/es/Checkbox.js +12 -4
  7. package/es/Combobox.js +30 -10
  8. package/es/Dialog.js +9 -3
  9. package/es/Figure.js +21 -4
  10. package/es/Image.js +92 -0
  11. package/es/Input.js +1 -1
  12. package/es/Menu.js +21 -7
  13. package/es/Pagination.js +15 -5
  14. package/es/Popover.js +30 -10
  15. package/es/RadioGroup.js +12 -4
  16. package/es/Select.js +36 -12
  17. package/es/Slider.js +15 -5
  18. package/es/Switch.js +9 -3
  19. package/es/Tabs.js +15 -5
  20. package/es/TagsInput.js +27 -9
  21. package/es/Toast.js +9 -3
  22. package/es/Tooltip.js +15 -5
  23. package/es/createStyleContext.js +6 -12
  24. package/es/index.js +3 -1
  25. package/lib/Accordion.d.ts +41 -2
  26. package/lib/Accordion.js +58 -30
  27. package/lib/Badge.d.ts +1 -0
  28. package/lib/Button.d.ts +2 -2
  29. package/lib/Button.js +3 -2
  30. package/lib/Card/Card.d.ts +19 -0
  31. package/lib/Card/Card.js +83 -0
  32. package/lib/Checkbox.js +12 -4
  33. package/lib/Combobox.d.ts +45 -13
  34. package/lib/Combobox.js +30 -10
  35. package/lib/Dialog.js +9 -3
  36. package/lib/Figure.d.ts +3 -3
  37. package/lib/Figure.js +21 -4
  38. package/lib/Image.d.ts +49 -0
  39. package/lib/Image.js +100 -0
  40. package/lib/Input.js +1 -1
  41. package/lib/Menu.js +21 -7
  42. package/lib/Pagination.d.ts +6 -2
  43. package/lib/Pagination.js +15 -5
  44. package/lib/Popover.js +30 -10
  45. package/lib/RadioGroup.js +12 -4
  46. package/lib/Select.js +36 -12
  47. package/lib/Slider.js +15 -5
  48. package/lib/Switch.js +9 -3
  49. package/lib/Tabs.d.ts +4 -1
  50. package/lib/Tabs.js +15 -5
  51. package/lib/TagsInput.d.ts +15 -2
  52. package/lib/TagsInput.js +27 -9
  53. package/lib/Toast.js +9 -3
  54. package/lib/Tooltip.js +15 -5
  55. package/lib/createStyleContext.d.ts +5 -2
  56. package/lib/createStyleContext.js +6 -12
  57. package/lib/index.d.ts +8 -4
  58. package/lib/index.js +74 -0
  59. package/package.json +5 -5
package/es/Select.js CHANGED
@@ -132,7 +132,9 @@ const {
132
132
  withProvider,
133
133
  withContext
134
134
  } = createStyleContext(selectRecipe);
135
- const InternalSelectRoot = withProvider(Select.Root, "root");
135
+ const InternalSelectRoot = withProvider(Select.Root, "root", {
136
+ baseComponent: true
137
+ });
136
138
  export const SelectRoot = _ref => {
137
139
  let {
138
140
  lazyMount = true,
@@ -149,10 +151,18 @@ export const SelectRoot = _ref => {
149
151
  })
150
152
  );
151
153
  };
152
- export const SelectClearTrigger = withContext(Select.ClearTrigger, "clearTrigger");
153
- export const SelectContent = withContext(Select.Content, "content");
154
- export const SelectControl = withContext(Select.Control, "control");
155
- export const SelectIndicator = withContext(Select.Indicator, "indicator");
154
+ export const SelectClearTrigger = withContext(Select.ClearTrigger, "clearTrigger", {
155
+ baseComponent: true
156
+ });
157
+ export const SelectContent = withContext(Select.Content, "content", {
158
+ baseComponent: true
159
+ });
160
+ export const SelectControl = withContext(Select.Control, "control", {
161
+ baseComponent: true
162
+ });
163
+ export const SelectIndicator = withContext(Select.Indicator, "indicator", {
164
+ baseComponent: true
165
+ });
156
166
  export const SelectItemGroupLabel = /*#__PURE__*/forwardRef((_ref2, ref) => {
157
167
  let {
158
168
  children,
@@ -172,10 +182,18 @@ export const SelectItemGroupLabel = /*#__PURE__*/forwardRef((_ref2, ref) => {
172
182
  });
173
183
  });
174
184
  const InternalSelectItemGroupLabel = withContext(Select.ItemGroupLabel, "itemGroupLabel");
175
- export const SelectItemGroup = withContext(Select.ItemGroup, "itemGroup");
176
- export const SelectItemIndicator = withContext(Select.ItemIndicator, "itemIndicator");
177
- export const SelectItem = withContext(Select.Item, "item");
178
- export const SelectItemText = withContext(Select.ItemText, "itemText");
185
+ export const SelectItemGroup = withContext(Select.ItemGroup, "itemGroup", {
186
+ baseComponent: true
187
+ });
188
+ export const SelectItemIndicator = withContext(Select.ItemIndicator, "itemIndicator", {
189
+ baseComponent: true
190
+ });
191
+ export const SelectItem = withContext(Select.Item, "item", {
192
+ baseComponent: true
193
+ });
194
+ export const SelectItemText = withContext(Select.ItemText, "itemText", {
195
+ baseComponent: true
196
+ });
179
197
  const InternalSelectLabel = withContext(Select.Label, "label");
180
198
  export const SelectLabel = /*#__PURE__*/forwardRef((_ref3, ref) => {
181
199
  let {
@@ -191,6 +209,12 @@ export const SelectLabel = /*#__PURE__*/forwardRef((_ref3, ref) => {
191
209
  })
192
210
  });
193
211
  });
194
- export const SelectPositioner = withContext(Select.Positioner, "positioner");
195
- export const SelectTrigger = withContext(Select.Trigger, "trigger");
196
- export const SelectValueText = withContext(Select.ValueText, "valueText");
212
+ export const SelectPositioner = withContext(Select.Positioner, "positioner", {
213
+ baseComponent: true
214
+ });
215
+ export const SelectTrigger = withContext(Select.Trigger, "trigger", {
216
+ baseComponent: true
217
+ });
218
+ export const SelectValueText = withContext(Select.ValueText, "valueText", {
219
+ baseComponent: true
220
+ });
package/es/Slider.js CHANGED
@@ -79,11 +79,21 @@ const {
79
79
  withProvider,
80
80
  withContext
81
81
  } = createStyleContext(sliderRecipe);
82
- export const SliderRoot = withProvider(Slider.Root, "root");
83
- export const SliderControl = withContext(Slider.Control, "control");
84
- export const SliderTrack = withContext(Slider.Track, "track");
85
- export const SliderRange = withContext(Slider.Range, "range");
86
- export const SliderThumb = withContext(Slider.Thumb, "thumb");
82
+ export const SliderRoot = withProvider(Slider.Root, "root", {
83
+ baseComponent: true
84
+ });
85
+ export const SliderControl = withContext(Slider.Control, "control", {
86
+ baseComponent: true
87
+ });
88
+ export const SliderTrack = withContext(Slider.Track, "track", {
89
+ baseComponent: true
90
+ });
91
+ export const SliderRange = withContext(Slider.Range, "range", {
92
+ baseComponent: true
93
+ });
94
+ export const SliderThumb = withContext(Slider.Thumb, "thumb", {
95
+ baseComponent: true
96
+ });
87
97
  const InternalSliderLabel = withContext(Slider.Label, "label");
88
98
  export const SliderLabel = _ref => {
89
99
  let {
package/es/Switch.js CHANGED
@@ -97,9 +97,15 @@ const {
97
97
  withProvider,
98
98
  withContext
99
99
  } = createStyleContext(switchRecipe);
100
- export const SwitchRoot = withProvider(Switch.Root, "root");
101
- export const SwitchControl = withContext(Switch.Control, "control");
102
- export const SwitchThumb = withContext(Switch.Thumb, "thumb");
100
+ export const SwitchRoot = withProvider(Switch.Root, "root", {
101
+ baseComponent: true
102
+ });
103
+ export const SwitchControl = withContext(Switch.Control, "control", {
104
+ baseComponent: true
105
+ });
106
+ export const SwitchThumb = withContext(Switch.Thumb, "thumb", {
107
+ baseComponent: true
108
+ });
103
109
  const InternalSwitchLabel = withContext(Switch.Label, "label");
104
110
  export const SwitchLabel = _ref => {
105
111
  let {
package/es/Tabs.js CHANGED
@@ -201,7 +201,9 @@ const {
201
201
  withProvider,
202
202
  withContext
203
203
  } = createStyleContext(tabsRecipe);
204
- const InternalTabsRoot = withProvider(Tabs.Root, "root");
204
+ const InternalTabsRoot = withProvider(Tabs.Root, "root", {
205
+ baseComponent: true
206
+ });
205
207
  export const TabsRoot = _ref => {
206
208
  let {
207
209
  lazyMount = true,
@@ -214,10 +216,18 @@ export const TabsRoot = _ref => {
214
216
  ...props
215
217
  });
216
218
  };
217
- export const TabsContent = withContext(Tabs.Content, "content");
218
- export const TabsIndicator = withContext(Tabs.Indicator, "indicator");
219
- export const TabsList = withContext(Tabs.List, "list");
220
- const InternalTabsTrigger = withContext(Tabs.Trigger, "trigger");
219
+ export const TabsContent = withContext(Tabs.Content, "content", {
220
+ baseComponent: true
221
+ });
222
+ export const TabsIndicator = withContext(Tabs.Indicator, "indicator", {
223
+ baseComponent: true
224
+ });
225
+ export const TabsList = withContext(Tabs.List, "list", {
226
+ baseComponent: true
227
+ });
228
+ const InternalTabsTrigger = withContext(Tabs.Trigger, "trigger", {
229
+ baseComponent: true
230
+ });
221
231
  export const TabsTrigger = _ref2 => {
222
232
  let {
223
233
  className,
package/es/TagsInput.js CHANGED
@@ -94,15 +94,33 @@ const {
94
94
  withProvider,
95
95
  withContext
96
96
  } = createStyleContext(tagsInputRecipe);
97
- export const TagsInputRoot = withProvider(TagsInput.Root, "root");
98
- export const TagsInputClearTrigger = withContext(TagsInput.ClearTrigger, "clearTrigger");
99
- export const TagsInputControl = withContext(TagsInput.Control, "control");
100
- export const TagsInputInput = withContext(TagsInput.Input, "input");
101
- export const TagsInputItemDeleteTrigger = withContext(TagsInput.ItemDeleteTrigger, "itemDeleteTrigger");
102
- export const TagsInputItemInput = withContext(TagsInput.ItemInput, "itemInput");
103
- export const TagsInputItemPreview = withContext(TagsInput.ItemPreview, "itemPreview");
104
- export const TagsInputItem = withContext(TagsInput.Item, "item");
105
- export const TagsInputItemText = withContext(TagsInput.ItemText, "itemText");
97
+ export const TagsInputRoot = withProvider(TagsInput.Root, "root", {
98
+ baseComponent: true
99
+ });
100
+ export const TagsInputClearTrigger = withContext(TagsInput.ClearTrigger, "clearTrigger", {
101
+ baseComponent: true
102
+ });
103
+ export const TagsInputControl = withContext(TagsInput.Control, "control", {
104
+ baseComponent: true
105
+ });
106
+ export const TagsInputInput = withContext(TagsInput.Input, "input", {
107
+ baseComponent: true
108
+ });
109
+ export const TagsInputItemDeleteTrigger = withContext(TagsInput.ItemDeleteTrigger, "itemDeleteTrigger", {
110
+ baseComponent: true
111
+ });
112
+ export const TagsInputItemInput = withContext(TagsInput.ItemInput, "itemInput", {
113
+ baseComponent: true
114
+ });
115
+ export const TagsInputItemPreview = withContext(TagsInput.ItemPreview, "itemPreview", {
116
+ baseComponent: true
117
+ });
118
+ export const TagsInputItem = withContext(TagsInput.Item, "item", {
119
+ baseComponent: true
120
+ });
121
+ export const TagsInputItemText = withContext(TagsInput.ItemText, "itemText", {
122
+ baseComponent: true
123
+ });
106
124
  const InternalTagsInputLabel = withContext(TagsInput.Label, "label");
107
125
  export const TagsInputLabel = /*#__PURE__*/forwardRef((_ref, ref) => {
108
126
  let {
package/es/Toast.js CHANGED
@@ -44,9 +44,15 @@ const {
44
44
  withProvider,
45
45
  withContext
46
46
  } = createStyleContext(toastRecipe);
47
- export const ToastRoot = withProvider(Toast.Root, "root");
48
- export const ToastActionTrigger = withContext(Toast.ActionTrigger, "actionTrigger");
49
- export const ToastCloseTrigger = withContext(Toast.CloseTrigger, "closeTrigger");
47
+ export const ToastRoot = withProvider(Toast.Root, "root", {
48
+ baseComponent: true
49
+ });
50
+ export const ToastActionTrigger = withContext(Toast.ActionTrigger, "actionTrigger", {
51
+ baseComponent: true
52
+ });
53
+ export const ToastCloseTrigger = withContext(Toast.CloseTrigger, "closeTrigger", {
54
+ baseComponent: true
55
+ });
50
56
  const InternalToastDescription = withContext(Toast.Description, "description");
51
57
  export const ToastDescription = _ref => {
52
58
  let {
package/es/Tooltip.js CHANGED
@@ -36,9 +36,15 @@ const {
36
36
  withContext
37
37
  } = createStyleContext(tooltipRecipe);
38
38
  export const TooltipRoot = withRootProvider(Tooltip.Root);
39
- export const TooltipArrow = withContext(Tooltip.Arrow, "arrow");
40
- export const TooltipArrowTip = withContext(Tooltip.ArrowTip, "arrowTip");
41
- export const TooltipContentStandalone = withContext(Tooltip.Content, "content");
39
+ export const TooltipArrow = withContext(Tooltip.Arrow, "arrow", {
40
+ baseComponent: true
41
+ });
42
+ export const TooltipArrowTip = withContext(Tooltip.ArrowTip, "arrowTip", {
43
+ baseComponent: true
44
+ });
45
+ export const TooltipContentStandalone = withContext(Tooltip.Content, "content", {
46
+ baseComponent: true
47
+ });
42
48
  export const TooltipContent = /*#__PURE__*/forwardRef((_ref, ref) => {
43
49
  let {
44
50
  children,
@@ -54,5 +60,9 @@ export const TooltipContent = /*#__PURE__*/forwardRef((_ref, ref) => {
54
60
  })
55
61
  });
56
62
  });
57
- export const TooltipPositioner = withContext(Tooltip.Positioner, "positioner");
58
- export const TooltipTrigger = withContext(Tooltip.Trigger, "trigger");
63
+ export const TooltipPositioner = withContext(Tooltip.Positioner, "positioner", {
64
+ baseComponent: true
65
+ });
66
+ export const TooltipTrigger = withContext(Tooltip.Trigger, "trigger", {
67
+ baseComponent: true
68
+ });
@@ -29,11 +29,8 @@ export const createStyleContext = recipe => {
29
29
  };
30
30
  return StyledComponent;
31
31
  };
32
- const withProvider = (Component, slot) => {
33
- const opts = typeof Component === "string" ? undefined : {
34
- baseComponent: true
35
- };
36
- const StyledComponent = styled(Component, {}, opts);
32
+ const withProvider = (Component, slot, options) => {
33
+ const StyledComponent = styled(Component, {}, options);
37
34
  return /*#__PURE__*/forwardRef((_ref, ref) => {
38
35
  let {
39
36
  css: cssProp,
@@ -46,16 +43,13 @@ export const createStyleContext = recipe => {
46
43
  children: /*#__PURE__*/_jsx(StyledComponent, {
47
44
  ...otherProps,
48
45
  ref: ref,
49
- css: css.raw(slotStyles === null || slotStyles === void 0 ? void 0 : slotStyles[slot], cssProp)
46
+ css: css.raw(slotStyles?.[slot], cssProp)
50
47
  })
51
48
  });
52
49
  });
53
50
  };
54
- const withContext = (Component, slot) => {
55
- const opts = typeof Component === "string" ? undefined : {
56
- baseComponent: true
57
- };
58
- const StyledComponent = styled(Component, {}, opts);
51
+ const withContext = (Component, slot, options) => {
52
+ const StyledComponent = styled(Component, {}, options);
59
53
  return /*#__PURE__*/forwardRef((_ref2, ref) => {
60
54
  let {
61
55
  css: cssProp,
@@ -65,7 +59,7 @@ export const createStyleContext = recipe => {
65
59
  return /*#__PURE__*/_jsx(StyledComponent, {
66
60
  ...props,
67
61
  ref: ref,
68
- css: css.raw(slotStyles === null || slotStyles === void 0 ? void 0 : slotStyles[slot], cssProp)
62
+ css: css.raw(slotStyles?.[slot], cssProp)
69
63
  });
70
64
  });
71
65
  };
package/es/index.js CHANGED
@@ -10,7 +10,8 @@ export { AccordionRoot, AccordionItemContent, AccordionItemIndicator, AccordionI
10
10
  export { OrderedList, UnOrderedList, DefinitionList } from "./ArticleLists";
11
11
  export { Badge } from "./Badge";
12
12
  export { BlockQuote } from "./BlockQuote";
13
- export { Button, IconButton } from "./Button";
13
+ export { Button, IconButton, buttonBaseRecipe, buttonRecipe, iconButtonRecipe } from "./Button";
14
+ export { CardRoot, CardHeading, CardContent, CardImage } from "./Card/Card";
14
15
  export { CheckboxRoot, CheckboxIndicator, CheckboxLabel, CheckboxControl, CheckboxGroup, CheckboxHiddenInput } from "./Checkbox";
15
16
  export { ComboboxRoot, ComboboxClearTrigger, ComboboxContent, ComboboxControl, ComboboxInput, ComboboxItemGroupLabel, ComboboxItemGroup, ComboboxItemIndicator, ComboboxItem, ComboboxItemText, ComboboxLabel, ComboboxPositioner, ComboboxTrigger } from "./Combobox";
16
17
  export { DialogRoot, DialogBackdrop, DialogStandaloneContent, DialogPositioner, DialogContent, DialogDescription, DialogTitle, DialogTrigger, DialogCloseTrigger, DialogHeader, DialogBody } from "./Dialog";
@@ -20,6 +21,7 @@ export { FieldErrorMessage } from "./FieldErrorMessage";
20
21
  export { FieldHelper } from "./FieldHelper";
21
22
  export { Figure } from "./Figure";
22
23
  export { FramedContent } from "./FramedContent";
24
+ export { Picture, Img, Image, makeSrcQueryString, getSrcSet } from "./Image";
23
25
  export { Input, FieldInput, InputContainer, TextArea, FieldTextArea } from "./Input";
24
26
  export { Label, FieldLabel } from "./Label";
25
27
  export { MenuRoot, MenuContent, MenuItemGroupLabel, MenuItemGroup, MenuItem, MenuPositioner, MenuTriggerItem, MenuTrigger, MenuSeparator } from "./Menu";
@@ -6,10 +6,48 @@
6
6
  *
7
7
  */
8
8
  import { Accordion } from "@ark-ui/react";
9
- import { JsxStyleProps } from "@ndla/styled-system/types";
9
+ import { JsxStyleProps, RecipeVariantProps } from "@ndla/styled-system/types";
10
+ declare const accordionRecipe: import("@ndla/styled-system/types").SlotRecipeRuntimeFn<"root" | "item" | "itemTrigger" | "itemContent" | "itemIndicator", {
11
+ variant: {
12
+ clean: {};
13
+ bordered: {
14
+ itemTrigger: {
15
+ paddingInline: "medium";
16
+ paddingBlock: "medium";
17
+ width: "100%";
18
+ borderRadius: "xsmall";
19
+ boxShadowColor: "stroke.subtle";
20
+ boxShadow: "inset 0 0 0 1px var(--shadow-color)";
21
+ _hover: {
22
+ background: "surface.actionSubtle.hover";
23
+ boxShadowColor: "stroke.hover";
24
+ };
25
+ _open: {
26
+ backgroundColor: "surface.actionSubtle.active";
27
+ boxShadowColor: "stroke.default";
28
+ borderBottomRadius: "sharp";
29
+ };
30
+ _focusVisible: {
31
+ outline: "none";
32
+ boxShadowColor: "stroke.default";
33
+ boxShadow: "inset 0 0 0 2px var(--shadow-color)";
34
+ };
35
+ };
36
+ itemContent: {
37
+ borderBottomRadius: "xsmall";
38
+ borderWidth: "0 1px 1px";
39
+ borderStyle: "solid";
40
+ borderColor: "stroke.default";
41
+ };
42
+ };
43
+ };
44
+ }>;
45
+ export type AccordionVariantProps = RecipeVariantProps<typeof accordionRecipe>;
10
46
  export interface AccordionRootProps extends JsxStyleProps, Accordion.RootProps {
11
47
  }
12
- export declare const AccordionRoot: import("react").ForwardRefExoticComponent<AccordionRootProps & import("react").RefAttributes<HTMLDivElement>>;
48
+ export declare const AccordionRoot: import("react").ForwardRefExoticComponent<AccordionRootProps & {
49
+ variant?: "bordered" | "clean" | undefined;
50
+ } & import("react").RefAttributes<HTMLDivElement>>;
13
51
  export declare const AccordionItemContent: import("react").ForwardRefExoticComponent<{
14
52
  consumeCss?: boolean | undefined;
15
53
  } & import("@ndla/styled-system/types").WithCss & Accordion.ItemContentProps & import("react").RefAttributes<HTMLDivElement>>;
@@ -22,3 +60,4 @@ export declare const AccordionItem: import("react").ForwardRefExoticComponent<{
22
60
  export declare const AccordionItemTrigger: import("react").ForwardRefExoticComponent<{
23
61
  consumeCss?: boolean | undefined;
24
62
  } & import("@ndla/styled-system/types").WithCss & Accordion.ItemTriggerProps & import("react").RefAttributes<HTMLButtonElement>>;
63
+ export {};
package/lib/Accordion.js CHANGED
@@ -29,21 +29,15 @@ const accordionRecipe = (0, _css.sva)({
29
29
  justifyContent: "space-between",
30
30
  background: "surface.default",
31
31
  cursor: "pointer",
32
- paddingInline: "medium",
33
- paddingBlock: "medium",
34
- boxShadowColor: "stroke.subtle",
35
- boxShadow: "inset 0 0 0 1px var(--shadow-color)",
36
- borderRadius: "xsmall",
37
32
  transitionDuration: "fast",
38
33
  transitionTimingFunction: "default",
39
34
  transitionProperty: "background, border-color, border, border-radius",
40
- width: "100%",
41
35
  _closed: {
42
36
  transitionProperty: "background, border-color, border, border-radius"
43
37
  },
44
38
  _disabled: {
45
39
  cursor: "not-allowed",
46
- background: "surface..disabled.subtle",
40
+ background: "surface.disabled.subtle",
47
41
  boxShadowColor: "stroke.disabled",
48
42
  color: "text.disabled",
49
43
  _hover: {
@@ -51,20 +45,6 @@ const accordionRecipe = (0, _css.sva)({
51
45
  boxShadowColor: "stroke.disabled",
52
46
  color: "text.disabled"
53
47
  }
54
- },
55
- _hover: {
56
- background: "surface.actionSubtle.hover",
57
- boxShadowColor: "stroke.hover"
58
- },
59
- _open: {
60
- backgroundColor: "surface.actionSubtle.active",
61
- boxShadowColor: "stroke.default",
62
- borderBottomRadius: "sharp"
63
- },
64
- _focusVisible: {
65
- outline: "none",
66
- boxShadowColor: "stroke.default",
67
- boxShadow: "inset 0 0 0 2px var(--shadow-color)"
68
48
  }
69
49
  },
70
50
  itemIndicator: {
@@ -79,21 +59,59 @@ const accordionRecipe = (0, _css.sva)({
79
59
  },
80
60
  itemContent: {
81
61
  overflow: "hidden",
62
+ // TODO: Is this needed?
82
63
  transitionProperty: "padding-bottom",
83
64
  transitionDuration: "normal",
84
65
  transitionTimingFunction: "default",
85
66
  paddingBlock: "xsmall",
86
67
  paddingInline: "small",
87
- borderBottomRadius: "xsmall",
88
- borderWidth: "0 1px 1px",
89
- borderStyle: "solid",
90
- borderColor: "stroke.default",
91
68
  _open: {
92
69
  animation: "collapse-in"
93
70
  },
94
71
  _closed: {
95
72
  animation: "collapse-out"
96
73
  }
74
+ },
75
+ item: {
76
+ width: "100%"
77
+ }
78
+ },
79
+ defaultVariants: {
80
+ variant: "bordered"
81
+ },
82
+ variants: {
83
+ variant: {
84
+ clean: {},
85
+ bordered: {
86
+ itemTrigger: {
87
+ paddingInline: "medium",
88
+ paddingBlock: "medium",
89
+ width: "100%",
90
+ borderRadius: "xsmall",
91
+ boxShadowColor: "stroke.subtle",
92
+ boxShadow: "inset 0 0 0 1px var(--shadow-color)",
93
+ _hover: {
94
+ background: "surface.actionSubtle.hover",
95
+ boxShadowColor: "stroke.hover"
96
+ },
97
+ _open: {
98
+ backgroundColor: "surface.actionSubtle.active",
99
+ boxShadowColor: "stroke.default",
100
+ borderBottomRadius: "sharp"
101
+ },
102
+ _focusVisible: {
103
+ outline: "none",
104
+ boxShadowColor: "stroke.default",
105
+ boxShadow: "inset 0 0 0 2px var(--shadow-color)"
106
+ }
107
+ },
108
+ itemContent: {
109
+ borderBottomRadius: "xsmall",
110
+ borderWidth: "0 1px 1px",
111
+ borderStyle: "solid",
112
+ borderColor: "stroke.default"
113
+ }
114
+ }
97
115
  }
98
116
  }
99
117
  });
@@ -101,8 +119,18 @@ const {
101
119
  withProvider,
102
120
  withContext
103
121
  } = (0, _createStyleContext.createStyleContext)(accordionRecipe);
104
- const AccordionRoot = exports.AccordionRoot = withProvider(_react.Accordion.Root, "root");
105
- const AccordionItemContent = exports.AccordionItemContent = withContext(_react.Accordion.ItemContent, "itemContent");
106
- const AccordionItemIndicator = exports.AccordionItemIndicator = withContext(_react.Accordion.ItemIndicator, "itemIndicator");
107
- const AccordionItem = exports.AccordionItem = withContext(_react.Accordion.Item, "item");
108
- const AccordionItemTrigger = exports.AccordionItemTrigger = withContext(_react.Accordion.ItemTrigger, "itemTrigger");
122
+ const AccordionRoot = exports.AccordionRoot = withProvider(_react.Accordion.Root, "root", {
123
+ baseComponent: true
124
+ });
125
+ const AccordionItemContent = exports.AccordionItemContent = withContext(_react.Accordion.ItemContent, "itemContent", {
126
+ baseComponent: true
127
+ });
128
+ const AccordionItemIndicator = exports.AccordionItemIndicator = withContext(_react.Accordion.ItemIndicator, "itemIndicator", {
129
+ baseComponent: true
130
+ });
131
+ const AccordionItem = exports.AccordionItem = withContext(_react.Accordion.Item, "item", {
132
+ baseComponent: true
133
+ });
134
+ const AccordionItemTrigger = exports.AccordionItemTrigger = withContext(_react.Accordion.ItemTrigger, "itemTrigger", {
135
+ baseComponent: true
136
+ });
package/lib/Badge.d.ts CHANGED
@@ -29,6 +29,7 @@ declare const badgeRecipe: import("@ndla/styled-system/types").RecipeRuntimeFn<{
29
29
  };
30
30
  }>;
31
31
  export type BadgeVariantProps = RecipeVariantProps<typeof badgeRecipe>;
32
+ export type BadgeVariant = NonNullable<BadgeVariantProps>["colorTheme"];
32
33
  export type BadgeProps = HTMLArkProps<"div"> & JsxStyleProps & BadgeVariantProps;
33
34
  export declare const Badge: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & import("@ark-ui/react").PolymorphicProps & {
34
35
  consumeCss?: boolean | undefined;
package/lib/Button.d.ts CHANGED
@@ -27,7 +27,7 @@ export declare const buttonBaseRecipe: import("@ndla/styled-system/types").Recip
27
27
  };
28
28
  secondary: {
29
29
  color: "text.strong";
30
- background: "transparent";
30
+ background: "surface.default";
31
31
  boxShadow: "inset 0 0 0 1px var(--shadow-color)";
32
32
  _hover: {
33
33
  background: "surface.actionSubtle.hover";
@@ -107,7 +107,7 @@ export declare const buttonBaseRecipe: import("@ndla/styled-system/types").Recip
107
107
  export declare const buttonRecipe: import("@ndla/styled-system/types").RecipeRuntimeFn<{
108
108
  size: {
109
109
  default: {
110
- paddingInline: "medium";
110
+ paddingInline: "xsmall";
111
111
  paddingBlock: "xxsmall";
112
112
  minHeight: "24";
113
113
  };
package/lib/Button.js CHANGED
@@ -17,6 +17,7 @@ var _jsxRuntime = require("react/jsx-runtime");
17
17
  *
18
18
  */
19
19
 
20
+ // TODO: Consider if any of the backgrounds should actually be transparent
20
21
  const buttonBaseRecipe = exports.buttonBaseRecipe = (0, _css.cva)({
21
22
  base: {
22
23
  display: "inline-flex",
@@ -73,7 +74,7 @@ const buttonBaseRecipe = exports.buttonBaseRecipe = (0, _css.cva)({
73
74
  },
74
75
  secondary: {
75
76
  color: "text.strong",
76
- background: "transparent",
77
+ background: "surface.default",
77
78
  boxShadow: "inset 0 0 0 1px var(--shadow-color)",
78
79
  _hover: {
79
80
  background: "surface.actionSubtle.hover"
@@ -158,7 +159,7 @@ const buttonRecipe = exports.buttonRecipe = (0, _css.cva)({
158
159
  variants: {
159
160
  size: {
160
161
  default: {
161
- paddingInline: "medium",
162
+ paddingInline: "xsmall",
162
163
  paddingBlock: "xxsmall",
163
164
  minHeight: "24"
164
165
  },
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Copyright (c) 2024-present, NDLA.
3
+ *
4
+ * This source code is licensed under the GPLv3 license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ */
8
+ import { type ImageProps } from "../Image";
9
+ import { type TextProps } from "../Text";
10
+ export declare const CardRoot: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLElement>, HTMLElement>, "ref"> & import("@ark-ui/react").PolymorphicProps & {
11
+ consumeCss?: boolean | undefined;
12
+ } & import("@ndla/styled-system/types").WithCss & import("react").RefAttributes<HTMLElement>>;
13
+ export declare const CardHeading: import("react").ForwardRefExoticComponent<TextProps & Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLParagraphElement>, HTMLParagraphElement>, "ref"> & import("@ark-ui/react").PolymorphicProps & {
14
+ consumeCss?: boolean | undefined;
15
+ } & import("@ndla/styled-system/types").WithCss & import("react").RefAttributes<HTMLHeadingElement>>;
16
+ export declare const CardContent: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & import("@ark-ui/react").PolymorphicProps & {
17
+ consumeCss?: boolean | undefined;
18
+ } & import("@ndla/styled-system/types").WithCss & import("react").RefAttributes<HTMLDivElement>>;
19
+ export declare const CardImage: import("react").ForwardRefExoticComponent<Omit<ImageProps, "ref"> & import("react").RefAttributes<HTMLImageElement>>;
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.CardRoot = exports.CardImage = exports.CardHeading = exports.CardContent = void 0;
7
+ var _react = require("react");
8
+ var _react2 = require("@ark-ui/react");
9
+ var _css = require("@ndla/styled-system/css");
10
+ var _createStyleContext = require("../createStyleContext");
11
+ var _Image = require("../Image");
12
+ var _Text = require("../Text");
13
+ var _jsxRuntime = require("react/jsx-runtime");
14
+ /**
15
+ * Copyright (c) 2024-present, NDLA.
16
+ *
17
+ * This source code is licensed under the GPLv3 license found in the
18
+ * LICENSE file in the root directory of this source tree.
19
+ *
20
+ */
21
+
22
+ const cardRecipe = (0, _css.sva)({
23
+ slots: ["root", "title", "content", "image"],
24
+ base: {
25
+ root: {
26
+ position: "relative",
27
+ border: "1px solid",
28
+ borderRadius: "xsmall",
29
+ borderColor: "stroke.subtle",
30
+ transitionDuration: "fast",
31
+ transitionProperty: "background, color",
32
+ transitionTimingFunction: "default",
33
+ background: "surface.default",
34
+ _hover: {
35
+ background: "surface.actionSubtle.hover",
36
+ borderColor: "stroke.hover"
37
+ }
38
+ },
39
+ content: {
40
+ display: "flex",
41
+ flexDirection: "column",
42
+ gap: "xsmall",
43
+ paddingBlock: "xsmall",
44
+ paddingInline: "medium"
45
+ },
46
+ title: {
47
+ textDecoration: "underline",
48
+ _hover: {
49
+ textDecoration: "none"
50
+ }
51
+ },
52
+ image: {
53
+ height: "200px",
54
+ objectFit: "cover",
55
+ width: "100%"
56
+ }
57
+ }
58
+ });
59
+ const {
60
+ withProvider,
61
+ withContext
62
+ } = (0, _createStyleContext.createStyleContext)(cardRecipe);
63
+ const CardRoot = exports.CardRoot = withProvider(_react2.ark.article, "root", {
64
+ baseComponent: true
65
+ });
66
+ const InternalCardHeading = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
67
+ let {
68
+ textStyle = "label.large",
69
+ fontWeight = "bold",
70
+ ...props
71
+ } = _ref;
72
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Text.Heading, {
73
+ textStyle: textStyle,
74
+ fontWeight: fontWeight,
75
+ ...props,
76
+ ref: ref
77
+ });
78
+ });
79
+ const CardHeading = exports.CardHeading = withContext(InternalCardHeading, "title");
80
+ const CardContent = exports.CardContent = withContext(_react2.ark.div, "content", {
81
+ baseComponent: true
82
+ });
83
+ const CardImage = exports.CardImage = withContext(_Image.Image, "image");