@ndla/primitives 1.0.86-alpha.0 → 1.0.88-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (98) hide show
  1. package/README.md +104 -0
  2. package/dist/panda.buildinfo.json +12 -0
  3. package/dist/styles.css +48 -0
  4. package/lib/DatePicker.d.ts +88 -0
  5. package/lib/index.d.ts +2 -0
  6. package/package.json +4 -4
  7. package/es/Accordion.js +0 -140
  8. package/es/ArticleLists.js +0 -186
  9. package/es/Badge.js +0 -85
  10. package/es/BlockQuote.js +0 -55
  11. package/es/Button.js +0 -320
  12. package/es/Card/Card.js +0 -92
  13. package/es/Checkbox.js +0 -250
  14. package/es/Combobox.js +0 -258
  15. package/es/Dialog.js +0 -409
  16. package/es/ErrorMessage/ErrorMessage.js +0 -80
  17. package/es/ExpandableBox.js +0 -60
  18. package/es/Field.js +0 -25
  19. package/es/FieldErrorMessage.js +0 -68
  20. package/es/FieldHelper.js +0 -59
  21. package/es/Figure.js +0 -125
  22. package/es/FileUpload.js +0 -176
  23. package/es/FramedContent.js +0 -59
  24. package/es/Hero.js +0 -120
  25. package/es/Image.js +0 -165
  26. package/es/Input.js +0 -191
  27. package/es/Label.js +0 -102
  28. package/es/Layout/PageContainer.js +0 -48
  29. package/es/Layout/PageContent.js +0 -106
  30. package/es/ListItem/ListItem.js +0 -216
  31. package/es/Menu.js +0 -226
  32. package/es/MessageBox.js +0 -63
  33. package/es/NdlaLogo.js +0 -287
  34. package/es/Pagination.js +0 -48
  35. package/es/Popover.js +0 -125
  36. package/es/RadioGroup.js +0 -166
  37. package/es/Select.js +0 -239
  38. package/es/Skeleton.js +0 -30
  39. package/es/Slider.js +0 -115
  40. package/es/Spinner.js +0 -67
  41. package/es/Switch.js +0 -143
  42. package/es/Table.js +0 -81
  43. package/es/Tabs.js +0 -257
  44. package/es/TagsInput.js +0 -146
  45. package/es/Text.js +0 -59
  46. package/es/Toast.js +0 -125
  47. package/es/ToggleGroup.js +0 -31
  48. package/es/Tooltip.js +0 -74
  49. package/es/Tree/Tree.js +0 -219
  50. package/es/createStyleContext.js +0 -71
  51. package/es/index.js +0 -53
  52. package/es/storybookHelpers/data.js +0 -212
  53. package/lib/Accordion.js +0 -146
  54. package/lib/ArticleLists.js +0 -192
  55. package/lib/Badge.js +0 -91
  56. package/lib/BlockQuote.js +0 -61
  57. package/lib/Button.js +0 -326
  58. package/lib/Card/Card.js +0 -98
  59. package/lib/Checkbox.js +0 -257
  60. package/lib/Combobox.js +0 -268
  61. package/lib/Dialog.js +0 -418
  62. package/lib/ErrorMessage/ErrorMessage.js +0 -86
  63. package/lib/ExpandableBox.js +0 -66
  64. package/lib/Field.js +0 -31
  65. package/lib/FieldErrorMessage.js +0 -74
  66. package/lib/FieldHelper.js +0 -65
  67. package/lib/Figure.js +0 -131
  68. package/lib/FileUpload.js +0 -182
  69. package/lib/FramedContent.js +0 -65
  70. package/lib/Hero.js +0 -126
  71. package/lib/Image.js +0 -173
  72. package/lib/Input.js +0 -197
  73. package/lib/Label.js +0 -108
  74. package/lib/Layout/PageContainer.js +0 -54
  75. package/lib/Layout/PageContent.js +0 -112
  76. package/lib/ListItem/ListItem.js +0 -222
  77. package/lib/Menu.js +0 -234
  78. package/lib/MessageBox.js +0 -69
  79. package/lib/NdlaLogo.js +0 -296
  80. package/lib/Pagination.js +0 -54
  81. package/lib/Popover.js +0 -134
  82. package/lib/RadioGroup.js +0 -173
  83. package/lib/Select.js +0 -246
  84. package/lib/Skeleton.js +0 -36
  85. package/lib/Slider.js +0 -122
  86. package/lib/Spinner.js +0 -73
  87. package/lib/Switch.js +0 -150
  88. package/lib/Table.js +0 -87
  89. package/lib/Tabs.js +0 -265
  90. package/lib/TagsInput.js +0 -152
  91. package/lib/Text.js +0 -65
  92. package/lib/Toast.js +0 -133
  93. package/lib/ToggleGroup.js +0 -37
  94. package/lib/Tooltip.js +0 -80
  95. package/lib/Tree/Tree.js +0 -227
  96. package/lib/createStyleContext.js +0 -78
  97. package/lib/index.js +0 -1430
  98. package/lib/storybookHelpers/data.js +0 -218
package/README.md ADDED
@@ -0,0 +1,104 @@
1
+ # @ndla/primitives
2
+
3
+ A set of primitive components used throughout ndla packages and websites. Mostly styled versions of components from [ ark-ui ](https://ark-ui.com).
4
+
5
+ ## Installation
6
+
7
+ ```sh
8
+ yarn add @ndla/primitives
9
+ ```
10
+
11
+ This package relies on our styled system, which can be consumed through PandaCSS or plain css. Read about setting it up in [@ndla/preset-panda](../preset-panda/README.md).
12
+
13
+ ## Guidelines
14
+
15
+ ### Primitives should be multi-use
16
+
17
+ A primitive should be multi-purpose and low-level enough to be composed any which way a user wishes to. If you're creating a one-off component or a component witha limited set of capabilities, consider if it makes more sense in a different package.
18
+
19
+ ### Keep "global" dependencies to a minimum
20
+
21
+ We try not to impose any technological restrictions on consumers of the primitives; A consumer should for instance be able to choose their own translation or routing libraries.
22
+
23
+ ### Variant usage in primitives
24
+
25
+ This section does not apply to `sva` usage, as variant overriding is simple there :)
26
+
27
+ Variants are a blessing and a curse. They provide a clean and structured way of presenting a set of predefined options to users. At the same time, they're a nightmare to override when restyling a primitive.
28
+
29
+ ```tsx
30
+ const Button = styled("button", {
31
+ base: {
32
+ color: "text.default",
33
+ },
34
+ variants: {
35
+ primary: {
36
+ background: "suface.action",
37
+ _hover: {
38
+ background: "surface.action.hover",
39
+ },
40
+ },
41
+ subtle: {
42
+ background: "surface.actionSubtle",
43
+ _hover: {
44
+ background: "surface.actionSubtle.hover",
45
+ },
46
+ },
47
+ },
48
+ });
49
+
50
+ // You get the idea
51
+ const StyledButton = styled(Button, {
52
+ variants: {
53
+ primary: {
54
+ background: "stroke.default",
55
+ _hover: {
56
+ background: "stroke.default",
57
+ },
58
+ },
59
+ },
60
+ });
61
+ ```
62
+
63
+ Instead, define primitives with variants with the `cva` function. This allows us to invoke the `cva` function so we can merge the result with whatever value the restyled component has.
64
+
65
+ ```tsx
66
+ const buttonRecipe = cva({
67
+ base: {
68
+ color: "text.default",
69
+ },
70
+ variants: {
71
+ primary: {
72
+ background: "suface.action",
73
+ _hover: {
74
+ background: "surface.action.hover",
75
+ },
76
+ },
77
+ subtle: {
78
+ background: "surface.actionSubtle",
79
+ _hover: {
80
+ background: "surface.actionSubtle.hover",
81
+ },
82
+ },
83
+ },
84
+ });
85
+
86
+ // If you want it to support `asChild`
87
+ const StyledButton = styled(ark.button, {}, { baseComponent: true });
88
+
89
+ const Button = forwardRef<HTMLButtonElement, ComponentPropsWithRef<"button"> & RecipeVariantProps<typeof buttonRecipe>>(
90
+ // You need to extract the css prop and any variant props
91
+ ({ css: cssProp, variant, ...props }, ref) => {
92
+ return <StyledButton css={css.raw(buttonRecipe.raw({ variant }), cssProp)} {...props} ref={ref} />;
93
+ },
94
+ );
95
+
96
+ const RestyledButton = styled(Button, {
97
+ base: {
98
+ background: "stroke.default",
99
+ _hover: "stroke.default",
100
+ },
101
+ });
102
+ ```
103
+
104
+ This leads to slightly more code, but more intuitive styling options for the consumer
@@ -283,6 +283,18 @@
283
283
  "color]___[value:stroke.default",
284
284
  "textDecoration]___[value:underline]___[cond:_checked",
285
285
  "textDecoration]___[value:underline]___[cond:_highlighted",
286
+ "animation]___[value:fade-shift-in 0.25s ease-in-out]___[cond:_open",
287
+ "animation]___[value:fade-shift-out 0.25s ease-in-out]___[cond:_closed",
288
+ "gap]___[value:5xsmall",
289
+ "borderCollapse]___[value:separate",
290
+ "borderSpacing]___[value:5xsmall",
291
+ "margin]___[value:-5xsmall",
292
+ "content]___[value:'-']___[cond:&[data-today]<___>_before",
293
+ "color]___[value:stroke.default]___[cond:&[data-today]<___>_before",
294
+ "position]___[value:absolute]___[cond:&[data-today]<___>_before",
295
+ "marginBlockStart]___[value:medium]___[cond:&[data-today]<___>_before",
296
+ "color]___[value:text.subtle]___[cond:&[data-outside-range]",
297
+ "fontWeight]___[value:normal]___[cond:&[data-outside-range]",
286
298
  "position]___[value:fixed",
287
299
  "height]___[value:100vh",
288
300
  "width]___[value:100vw",
package/dist/styles.css CHANGED
@@ -392,6 +392,22 @@
392
392
  color: var(--colors-stroke-default);
393
393
  }
394
394
 
395
+ .gap_5xsmall {
396
+ gap: var(--spacing-5xsmall);
397
+ }
398
+
399
+ .bd-cl_separate {
400
+ border-collapse: separate;
401
+ }
402
+
403
+ .bd-sp_5xsmall {
404
+ border-spacing: var(--spacing-5xsmall);
405
+ }
406
+
407
+ .m_-5xsmall {
408
+ margin: calc(var(--spacing-5xsmall) * -1);
409
+ }
410
+
395
411
  .pos_fixed {
396
412
  position: fixed;
397
413
  }
@@ -1709,6 +1725,18 @@
1709
1725
  text-decoration: underline;
1710
1726
  }
1711
1727
 
1728
+ .open\:anim_fade-shift-in_0\.25s_ease-in-out:is([open], [data-open], [data-state="open"]) {
1729
+ animation: fade-shift-in 0.25s ease-in-out;
1730
+ }
1731
+
1732
+ .closed\:anim_fade-shift-out_0\.25s_ease-in-out:is([closed], [data-closed], [data-state="closed"]) {
1733
+ animation: fade-shift-out 0.25s ease-in-out;
1734
+ }
1735
+
1736
+ .\[\&\[data-outside-range\]\]\:c_text\.subtle[data-outside-range] {
1737
+ color: var(--colors-text-subtle);
1738
+ }
1739
+
1712
1740
  .open\:anim_backdrop-in:is([open], [data-open], [data-state="open"]) {
1713
1741
  animation: var(--animations-backdrop-in);
1714
1742
  }
@@ -2064,6 +2092,10 @@
2064
2092
  transition-timing-function: var(--easings-default);
2065
2093
  }
2066
2094
 
2095
+ .\[\&\[data-outside-range\]\]\:fw_normal[data-outside-range] {
2096
+ font-weight: var(--font-weights-normal);
2097
+ }
2098
+
2067
2099
  .\[\&_\>_\*\]\:grid-cs_2 > * {
2068
2100
  grid-column-start: 2;
2069
2101
  }
@@ -2602,6 +2634,18 @@
2602
2634
  transform: rotate(180deg);
2603
2635
  }
2604
2636
 
2637
+ .\[\&\[data-today\]\]\:before\:c_stroke\.default[data-today]::before {
2638
+ color: var(--colors-stroke-default);
2639
+ }
2640
+
2641
+ .\[\&\[data-today\]\]\:before\:pos_absolute[data-today]::before {
2642
+ position: absolute;
2643
+ }
2644
+
2645
+ .\[\&\[data-today\]\]\:before\:mbs_medium[data-today]::before {
2646
+ margin-block-start: var(--spacing-medium);
2647
+ }
2648
+
2605
2649
  .open\:\[\&_summary\,_\[data-embed-type\=\'expandable-box-summary\'\]\]\:mbe_-xxsmall:is([open], [data-open], [data-state="open"]) summary,.open\:\[\&_summary\,_\[data-embed-type\=\'expandable-box-summary\'\]\]\:mbe_-xxsmall:is([open], [data-open], [data-state="open"]) [data-embed-type='expandable-box-summary'] {
2606
2650
  margin-block-end: calc(var(--spacing-xxsmall) * -1);
2607
2651
  }
@@ -2748,6 +2792,10 @@
2748
2792
  background-color: var(--colors-surface-default);
2749
2793
  }
2750
2794
 
2795
+ .\[\&\[data-today\]\]\:before\:content_\'-\'[data-today]::before {
2796
+ content: '-';
2797
+ }
2798
+
2751
2799
  .first\:hover\:bd-bs-c_var\(--border-hover\):first-child:is(:hover, [data-hover]) {
2752
2800
  border-block-start-color: var(--border-hover);
2753
2801
  }
@@ -0,0 +1,88 @@
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 { DatePicker } from "@ark-ui/react";
9
+ import type { JsxStyleProps } from "@ndla/styled-system/types";
10
+ import type { TextProps } from "./Text";
11
+ export interface DatePickerRootProps extends DatePicker.RootProps, JsxStyleProps {
12
+ translations: DatePicker.RootProps["translations"];
13
+ locale: DatePicker.RootProps["locale"];
14
+ }
15
+ export declare const DatePickerRoot: import("react").ForwardRefExoticComponent<DatePickerRootProps & import("react").RefAttributes<HTMLDivElement>>;
16
+ interface ClearTriggerProps extends DatePicker.ClearTriggerProps, JsxStyleProps {
17
+ }
18
+ export declare const DatePickerClearTrigger: import("react").ForwardRefExoticComponent<ClearTriggerProps & import("react").RefAttributes<HTMLButtonElement>>;
19
+ export declare const DatePickerContent: import("react").ForwardRefExoticComponent<DatePicker.ContentProps & {
20
+ consumeCss?: boolean;
21
+ } & import("@ndla/styled-system/types").WithCss & import("react").RefAttributes<HTMLDivElement>>;
22
+ interface DatePickerContentProps extends DatePicker.ContentProps, JsxStyleProps {
23
+ }
24
+ export declare const DatePickerStandaloneContent: import("react").ForwardRefExoticComponent<DatePickerContentProps & import("react").RefAttributes<HTMLDivElement>>;
25
+ interface DatePickerControlProps extends DatePicker.ControlProps, JsxStyleProps {
26
+ }
27
+ export declare const DatePickerControl: import("react").ForwardRefExoticComponent<DatePickerControlProps & import("react").RefAttributes<HTMLDivElement>>;
28
+ interface DatePickerInputProps extends DatePicker.InputProps, JsxStyleProps {
29
+ }
30
+ export declare const DatePickerInput: import("react").ForwardRefExoticComponent<DatePickerInputProps & import("react").RefAttributes<HTMLInputElement>>;
31
+ interface DatePickerLabelProps extends DatePicker.LabelProps, JsxStyleProps {
32
+ }
33
+ export declare const DatePickerLabel: ({ textStyle, fontWeight, ...props }: DatePickerLabelProps & TextProps) => import("react/jsx-runtime").JSX.Element;
34
+ interface DatePickerMonthSelectProps extends DatePicker.MonthSelectProps, JsxStyleProps {
35
+ }
36
+ export declare const DatePickerMonthSelect: import("react").ForwardRefExoticComponent<DatePickerMonthSelectProps & import("react").RefAttributes<HTMLSelectElement>>;
37
+ interface DatePickerNextTrigger extends DatePicker.NextTriggerProps, JsxStyleProps {
38
+ }
39
+ export declare const DatePickerNextTrigger: import("react").ForwardRefExoticComponent<DatePickerNextTrigger & import("react").RefAttributes<HTMLButtonElement>>;
40
+ interface DatePickerPositionerProps extends DatePicker.PositionerProps, JsxStyleProps {
41
+ }
42
+ export declare const DatePickerPositioner: import("react").ForwardRefExoticComponent<DatePickerPositionerProps & import("react").RefAttributes<HTMLDivElement>>;
43
+ interface DatePickerPresetTriggerProps extends DatePicker.PresetTriggerProps, JsxStyleProps {
44
+ }
45
+ export declare const DatePickerPresetTrigger: import("react").ForwardRefExoticComponent<DatePickerPresetTriggerProps & import("react").RefAttributes<HTMLButtonElement>>;
46
+ interface DatePickerPrevTriggerProps extends DatePicker.PrevTriggerProps, JsxStyleProps {
47
+ }
48
+ export declare const DatePickerPrevTrigger: import("react").ForwardRefExoticComponent<DatePickerPrevTriggerProps & import("react").RefAttributes<HTMLButtonElement>>;
49
+ interface DatePickerRangeTextProps extends DatePicker.RangeTextProps, JsxStyleProps {
50
+ }
51
+ export declare const DatePickerRangeText: import("react").ForwardRefExoticComponent<DatePickerRangeTextProps & import("react").RefAttributes<HTMLDivElement>>;
52
+ interface DatePickerTableBodyProps extends DatePicker.TableBodyProps, JsxStyleProps {
53
+ }
54
+ export declare const DatePickerTableBody: import("react").ForwardRefExoticComponent<DatePickerTableBodyProps & import("react").RefAttributes<HTMLTableSectionElement>>;
55
+ interface DatePickerTableCellProps extends DatePicker.TableCellProps, JsxStyleProps {
56
+ }
57
+ export declare const DatePickerTableCell: import("react").ForwardRefExoticComponent<DatePickerTableCellProps & import("react").RefAttributes<HTMLTableCellElement>>;
58
+ interface DatePickerTableCellTriggerProps extends DatePicker.TableCellTriggerProps, JsxStyleProps {
59
+ }
60
+ export declare const DatePickerTableCellTrigger: import("react").ForwardRefExoticComponent<DatePickerTableCellTriggerProps & import("react").RefAttributes<HTMLDivElement>>;
61
+ interface DatePickerTableHeadProps extends DatePicker.TableHeadProps, JsxStyleProps {
62
+ }
63
+ export declare const DatePickerTableHead: import("react").ForwardRefExoticComponent<DatePickerTableHeadProps & import("react").RefAttributes<HTMLTableSectionElement>>;
64
+ interface DatePickerTableHeaderProps extends DatePicker.TableHeaderProps, JsxStyleProps {
65
+ }
66
+ export declare const DatePickerTableHeader: import("react").ForwardRefExoticComponent<DatePickerTableHeaderProps & import("react").RefAttributes<HTMLTableCellElement>>;
67
+ interface DatePickerTableProps extends DatePicker.TableProps, JsxStyleProps {
68
+ }
69
+ export declare const DatePickerTable: import("react").ForwardRefExoticComponent<DatePickerTableProps & import("react").RefAttributes<HTMLTableElement>>;
70
+ interface DatePickerTableRowProps extends DatePicker.TableRowProps, JsxStyleProps {
71
+ }
72
+ export declare const DatePickerTableRow: import("react").ForwardRefExoticComponent<DatePickerTableRowProps & import("react").RefAttributes<HTMLTableRowElement>>;
73
+ interface DatePickerTriggerProps extends DatePicker.TriggerProps, JsxStyleProps {
74
+ }
75
+ export declare const DatePickerTrigger: import("react").ForwardRefExoticComponent<DatePickerTriggerProps & import("react").RefAttributes<HTMLButtonElement>>;
76
+ interface DatePickerViewControlProps extends DatePicker.ViewControlProps, JsxStyleProps {
77
+ }
78
+ export declare const DatePickerViewControl: import("react").ForwardRefExoticComponent<DatePickerViewControlProps & import("react").RefAttributes<HTMLDivElement>>;
79
+ interface DatePickerViewProps extends DatePicker.ViewProps, JsxStyleProps {
80
+ }
81
+ export declare const DatePickerView: import("react").ForwardRefExoticComponent<DatePickerViewProps & import("react").RefAttributes<HTMLDivElement>>;
82
+ interface DatePickerViewTriggerProps extends DatePicker.ViewTriggerProps, JsxStyleProps {
83
+ }
84
+ export declare const DatePickerViewTrigger: import("react").ForwardRefExoticComponent<DatePickerViewTriggerProps & import("react").RefAttributes<HTMLButtonElement>>;
85
+ interface DatePickerYearSelectProps extends DatePicker.YearSelectProps, JsxStyleProps {
86
+ }
87
+ export declare const DatePickerYearSelect: import("react").ForwardRefExoticComponent<DatePickerYearSelectProps & import("react").RefAttributes<HTMLSelectElement>>;
88
+ export { DatePickerContext } from "@ark-ui/react";
package/lib/index.d.ts CHANGED
@@ -24,6 +24,8 @@ export type { CheckboxVariantProps, CheckboxRootProps } from "./Checkbox";
24
24
  export { CheckboxRoot, CheckboxIndicator, CheckboxLabel, CheckboxControl, CheckboxGroup, CheckboxHiddenInput, } from "./Checkbox";
25
25
  export type { ComboboxVariantProps, ComboboxRootProps, ComboboxClearTriggerProps, ComboboxContentProps, ComboboxControlProps, ComboboxInputProps, ComboboxItemGroupLabelProps, ComboboxItemGroupProps, ComboboxItemProps, ComboboxItemIndicatorProps, ComboboxItemTextProps, ComboboxLabelProps, ComboboxPositionerProps, ComboboxTriggerProps, ComboboxListProps, } from "./Combobox";
26
26
  export { ComboboxRoot, ComboboxClearTrigger, ComboboxContent, ComboboxContentStandalone, ComboboxControl, ComboboxInput, ComboboxItemGroupLabel, ComboboxItemGroup, ComboboxItemIndicator, ComboboxItem, ComboboxItemText, ComboboxLabel, ComboboxPositioner, ComboboxTrigger, ComboboxList, } from "./Combobox";
27
+ export type { DatePickerRootProps } from "./DatePicker";
28
+ export { DatePickerRoot, DatePickerClearTrigger, DatePickerContent, DatePickerStandaloneContent, DatePickerControl, DatePickerInput, DatePickerLabel, DatePickerMonthSelect, DatePickerNextTrigger, DatePickerPositioner, DatePickerPresetTrigger, DatePickerPrevTrigger, DatePickerRangeText, DatePickerTableBody, DatePickerTableCell, DatePickerTableCellTrigger, DatePickerTableHead, DatePickerTableHeader, DatePickerTable, DatePickerTableRow, DatePickerTrigger, DatePickerViewControl, DatePickerView, DatePickerViewTrigger, DatePickerYearSelect, DatePickerContext, } from "./DatePicker";
27
29
  export type { DialogVariantProps, DialogRootProps } from "./Dialog";
28
30
  export { DialogRoot, DialogBackdrop, DialogStandaloneContent, DialogPositioner, DialogContent, DialogDescription, DialogTitle, DialogTrigger, DialogCloseTrigger, DialogHeader, DialogBody, DialogFooter, useDialog, DialogRootProvider, } from "./Dialog";
29
31
  export type { ExpandableBoxProps, ExpandableBoxSummaryProps } from "./ExpandableBox";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ndla/primitives",
3
- "version": "1.0.86-alpha.0",
3
+ "version": "1.0.88-alpha.0",
4
4
  "description": "Primitive components for NDLA",
5
5
  "license": "GPL-3.0",
6
6
  "main": "lib/index.js",
@@ -30,10 +30,10 @@
30
30
  "dependencies": {
31
31
  "@ark-ui/react": "^5.9.0",
32
32
  "@ndla/styled-system": "^0.0.34",
33
- "@ndla/util": "^5.0.7-alpha.0"
33
+ "@ndla/util": "^5.0.8-alpha.0"
34
34
  },
35
35
  "devDependencies": {
36
- "@ndla/preset-panda": "^0.0.53",
36
+ "@ndla/preset-panda": "^0.0.54",
37
37
  "@pandacss/dev": "^0.53.6"
38
38
  },
39
39
  "peerDependencies": {
@@ -43,5 +43,5 @@
43
43
  "publishConfig": {
44
44
  "access": "public"
45
45
  },
46
- "gitHead": "c22b13dd82bf7fa206f87a6f48922b41d8eaec6a"
46
+ "gitHead": "52adafa4348c1c02ebc4da28317aa5270cbe2a80"
47
47
  }
package/es/Accordion.js DELETED
@@ -1,140 +0,0 @@
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
-
9
- import { Accordion, accordionAnatomy } from "@ark-ui/react";
10
- import { sva } from "@ndla/styled-system/css";
11
- import { createStyleContext } from "./createStyleContext";
12
- const accordionRecipe = sva({
13
- slots: accordionAnatomy.keys(),
14
- base: {
15
- root: {
16
- display: "flex",
17
- flexDirection: "column",
18
- gap: "3xsmall"
19
- },
20
- itemTrigger: {
21
- display: "flex",
22
- alignItems: "center",
23
- justifyContent: "space-between",
24
- background: "surface.default",
25
- cursor: "pointer",
26
- transitionDuration: "fast",
27
- transitionTimingFunction: "default",
28
- transitionProperty: "background, border-color, border, border-radius",
29
- _closed: {
30
- transitionProperty: "background, border-color, border, border-radius"
31
- },
32
- _disabled: {
33
- cursor: "not-allowed",
34
- background: "surface.disabled.subtle",
35
- boxShadowColor: "stroke.disabled",
36
- color: "text.disabled",
37
- _hover: {
38
- background: "surface.disabled.subtle",
39
- boxShadowColor: "stroke.disabled",
40
- color: "text.disabled"
41
- }
42
- }
43
- },
44
- itemIndicator: {
45
- color: "icon.strong",
46
- transformOrigin: "center",
47
- transitionDuration: "normal",
48
- transitionProperty: "transform",
49
- transitionTimingFunction: "default",
50
- _open: {
51
- transform: "rotate(180deg)"
52
- },
53
- _motionReduce: {
54
- transition: "none",
55
- transitionDuration: "0s"
56
- }
57
- },
58
- itemContent: {
59
- overflow: "hidden",
60
- // TODO: Is this needed?
61
- transitionProperty: "padding-bottom",
62
- transitionDuration: "normal",
63
- transitionTimingFunction: "default",
64
- paddingBlock: "xsmall",
65
- paddingInline: "small",
66
- _open: {
67
- animation: "collapse-in",
68
- _motionReduce: {
69
- animation: "none"
70
- }
71
- },
72
- _closed: {
73
- animation: "collapse-out",
74
- _motionReduce: {
75
- animation: "none"
76
- }
77
- }
78
- },
79
- item: {
80
- width: "100%"
81
- }
82
- },
83
- defaultVariants: {
84
- variant: "bordered"
85
- },
86
- variants: {
87
- variant: {
88
- clean: {},
89
- bordered: {
90
- itemTrigger: {
91
- paddingInline: "medium",
92
- paddingBlock: "medium",
93
- width: "100%",
94
- borderRadius: "xsmall",
95
- boxShadowColor: "stroke.subtle",
96
- boxShadow: "inset 0 0 0 1px var(--shadow-color)",
97
- _hover: {
98
- background: "surface.actionSubtle.hover",
99
- boxShadowColor: "stroke.hover"
100
- },
101
- _open: {
102
- background: "surface.actionSubtle.active",
103
- boxShadowColor: "stroke.default",
104
- borderBottomRadius: "sharp"
105
- },
106
- _focusVisible: {
107
- outline: "none",
108
- boxShadowColor: "stroke.default",
109
- boxShadow: "inset 0 0 0 3px var(--shadow-color)"
110
- }
111
- },
112
- itemContent: {
113
- borderBottomRadius: "xsmall",
114
- borderWidth: "0 1px 1px",
115
- borderStyle: "solid",
116
- borderColor: "stroke.default"
117
- }
118
- }
119
- }
120
- }
121
- });
122
- const {
123
- withProvider,
124
- withContext
125
- } = createStyleContext(accordionRecipe);
126
- export const AccordionRoot = withProvider(Accordion.Root, "root", {
127
- baseComponent: true
128
- });
129
- export const AccordionItemContent = withContext(Accordion.ItemContent, "itemContent", {
130
- baseComponent: true
131
- });
132
- export const AccordionItemIndicator = withContext(Accordion.ItemIndicator, "itemIndicator", {
133
- baseComponent: true
134
- });
135
- export const AccordionItem = withContext(Accordion.Item, "item", {
136
- baseComponent: true
137
- });
138
- export const AccordionItemTrigger = withContext(Accordion.ItemTrigger, "itemTrigger", {
139
- baseComponent: true
140
- });
@@ -1,186 +0,0 @@
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
-
9
- import { forwardRef, useMemo } from "react";
10
- import { ark } from "@ark-ui/react";
11
- import { css, cva } from "@ndla/styled-system/css";
12
- import { styled } from "@ndla/styled-system/jsx";
13
- import { jsx as _jsx } from "react/jsx-runtime";
14
- const LIST_ITEM = "& > li";
15
- const LETTER_LIST = "& > ol[data-variant='letters']";
16
- const NUMBER_LIST = "& > ol:not([data-variant='letters'])";
17
- const LETTER_LIST_ITEM = `${LETTER_LIST} > li`;
18
- const orderedListRecipe = cva({
19
- base: {
20
- marginInlineStart: "small",
21
- paddingInlineStart: "small",
22
- [LIST_ITEM]: {
23
- "& > ul": {
24
- marginInlineStart: "0 !important"
25
- },
26
- _before: {
27
- position: "absolute",
28
- transform: "translateX(calc(-100% + (token(spacing.small) * -1)))",
29
- fontVariantNumeric: "tabular-nums"
30
- }
31
- },
32
- "& li": {
33
- marginBlock: "small"
34
- }
35
- },
36
- defaultVariants: {
37
- variant: "numbers"
38
- },
39
- variants: {
40
- variant: {
41
- numbers: {
42
- [NUMBER_LIST]: {
43
- marginInlineStart: "0",
44
- paddingInlineStart: "0"
45
- },
46
- counterReset: "level1",
47
- "&[data-count='true']": {
48
- counterReset: "level1 var(--start, 0)"
49
- },
50
- [LIST_ITEM]: {
51
- counterIncrement: "level1",
52
- _before: {
53
- content: "counter(level1, decimal) '. '"
54
- },
55
- [NUMBER_LIST]: {
56
- counterReset: "level2",
57
- "&[data-count='true']": {
58
- counterReset: "level2 var(--start, 0)"
59
- },
60
- [LIST_ITEM]: {
61
- marginInlineStart: "small",
62
- counterIncrement: "level2",
63
- _before: {
64
- content: "counter(level1, decimal) '.' counter(level2, decimal) '. '"
65
- },
66
- [NUMBER_LIST]: {
67
- counterReset: "level3",
68
- "&[data-count='true']": {
69
- counterReset: "level3 var(--start, 0)"
70
- },
71
- [LIST_ITEM]: {
72
- marginInlineStart: "calc(1.5ch + token(spacing.small))",
73
- counterIncrement: "level3",
74
- _before: {
75
- content: "counter(level1, decimal) '.' counter(level2, decimal) '.' counter(level3, decimal) '. '"
76
- },
77
- [NUMBER_LIST]: {
78
- counterReset: "level4",
79
- "&[data-count='true']": {
80
- counterReset: "level4 var(--start, 0)"
81
- },
82
- [LIST_ITEM]: {
83
- marginInlineStart: "calc(3ch + token(spacing.small))",
84
- counterIncrement: "level4",
85
- _before: {
86
- content: "counter(level1, decimal) '.' counter(level2, decimal) '.' counter(level3, decimal) '.' counter(level4, decimal) '. '"
87
- }
88
- }
89
- }
90
- }
91
- }
92
- }
93
- }
94
- }
95
- },
96
- letters: {
97
- counterReset: "level1",
98
- "&[data-count='true']": {
99
- counterReset: "level1 var(--start, 0)"
100
- },
101
- [LETTER_LIST]: {
102
- marginInlineStart: "0",
103
- paddingInlineStart: "0"
104
- },
105
- [LIST_ITEM]: {
106
- counterIncrement: "level1",
107
- _before: {
108
- content: "counter(level1, upper-alpha) '. '"
109
- },
110
- [LETTER_LIST_ITEM]: {
111
- _before: {
112
- content: "counter(level1, lower-alpha) '. '"
113
- },
114
- [LETTER_LIST_ITEM]: {
115
- _before: {
116
- content: "counter(level1, lower-roman) '. '"
117
- }
118
- }
119
- }
120
- }
121
- }
122
- }
123
- }
124
- });
125
- const StyledOrderedList = styled(ark.ol, {}, {
126
- baseComponent: true
127
- });
128
- export const OrderedList = /*#__PURE__*/forwardRef((_ref, ref) => {
129
- let {
130
- variant,
131
- css: cssProp,
132
- start,
133
- ...props
134
- } = _ref;
135
- const style = useMemo(() => ({
136
- "--start": start ? start - 1 : undefined
137
- }), [start]);
138
- return /*#__PURE__*/_jsx(StyledOrderedList, {
139
- "data-embed-type": "ordered-list",
140
- "data-variant": variant,
141
- "data-count": start !== undefined,
142
- css: css.raw(orderedListRecipe.raw({
143
- variant
144
- }), cssProp),
145
- style: style,
146
- ref: ref,
147
- ...props
148
- });
149
- });
150
- export const UnOrderedList = styled("ul", {
151
- base: {
152
- listStyle: "revert",
153
- marginInlineStart: "medium",
154
- paddingInlineStart: "small",
155
- "& ul": {
156
- marginInlineStart: "0"
157
- },
158
- "& li": {
159
- marginBlock: "small",
160
- paddingInlineStart: "small",
161
- _marker: {
162
- color: "icon.strong"
163
- },
164
- "& > ol": {
165
- marginInlineStart: "0 !important"
166
- }
167
- },
168
- listStyleType: "disc",
169
- "& > li > ul": {
170
- listStyleType: "circle",
171
- "& > li > ul": {
172
- listStyleType: "square"
173
- }
174
- }
175
- }
176
- });
177
- export const DefinitionList = styled("dl", {
178
- base: {
179
- "& dt": {
180
- fontWeight: "bold"
181
- },
182
- "& dd": {
183
- marginInlineStart: "medium"
184
- }
185
- }
186
- });