@fremtind/jokul 0.14.1 → 0.16.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 (59) hide show
  1. package/build/build-stats.html +1 -1
  2. package/build/cjs/components/button/Button.js +1 -1
  3. package/build/cjs/components/button/Button.js.map +1 -1
  4. package/build/cjs/components/button/types.js.map +1 -1
  5. package/build/cjs/components/datepicker/DatePicker.js +1 -1
  6. package/build/cjs/components/datepicker/DatePicker.js.map +1 -1
  7. package/build/cjs/components/datepicker/internal/Calendar.js +1 -1
  8. package/build/cjs/components/datepicker/internal/Calendar.js.map +1 -1
  9. package/build/cjs/components/popover/Popover.js +1 -1
  10. package/build/cjs/components/popover/Popover.js.map +1 -1
  11. package/build/cjs/components/popover/utils.js.map +1 -1
  12. package/build/cjs/components/text-input/BaseTextInput.js +1 -1
  13. package/build/cjs/components/text-input/BaseTextInput.js.map +1 -1
  14. package/build/es/components/button/Button.js +1 -1
  15. package/build/es/components/button/Button.js.map +1 -1
  16. package/build/es/components/button/types.js.map +1 -1
  17. package/build/es/components/datepicker/DatePicker.js +1 -1
  18. package/build/es/components/datepicker/DatePicker.js.map +1 -1
  19. package/build/es/components/datepicker/internal/Calendar.js +1 -1
  20. package/build/es/components/datepicker/internal/Calendar.js.map +1 -1
  21. package/build/es/components/popover/Popover.js +1 -1
  22. package/build/es/components/popover/Popover.js.map +1 -1
  23. package/build/es/components/popover/utils.js.map +1 -1
  24. package/build/es/components/text-input/BaseTextInput.js +1 -1
  25. package/build/es/components/text-input/BaseTextInput.js.map +1 -1
  26. package/build/packages/jokul/src/components/button/types.d.ts +26 -2
  27. package/build/packages/jokul/src/components/datepicker/internal/Calendar.d.ts +0 -1
  28. package/build/packages/jokul/src/components/popover/Popover.d.ts +61 -21
  29. package/build/packages/jokul/src/components/popover/utils.d.ts +1 -1
  30. package/build/packages/jokul/src/components/text-input/BaseTextInput.d.ts +8 -0
  31. package/build/style.css +1 -1
  32. package/package.json +2 -2
  33. package/src/components/button/styles/button.css +126 -193
  34. package/src/components/button/styles/button.min.css +1 -1
  35. package/src/components/button/styles/button.scss +129 -220
  36. package/src/components/checkbox/styles/checkbox.css +4 -4
  37. package/src/components/checkbox/styles/checkbox.min.css +1 -1
  38. package/src/components/datepicker/styles/_calendar.scss +11 -32
  39. package/src/components/datepicker/styles/datepicker.css +8 -33
  40. package/src/components/datepicker/styles/datepicker.min.css +1 -1
  41. package/src/components/feedback/styles/feedback.css +2 -2
  42. package/src/components/feedback/styles/feedback.min.css +1 -1
  43. package/src/components/input-group/styles/input-group.css +2 -2
  44. package/src/components/input-group/styles/input-group.min.css +1 -1
  45. package/src/components/loader/styles/loader.css +6 -6
  46. package/src/components/loader/styles/loader.min.css +1 -1
  47. package/src/components/loader/styles/skeleton-loader.css +5 -5
  48. package/src/components/loader/styles/skeleton-loader.min.css +1 -1
  49. package/src/components/message/styles/message.css +2 -2
  50. package/src/components/message/styles/message.min.css +1 -1
  51. package/src/components/progress-bar/styles/progress-bar.css +2 -2
  52. package/src/components/progress-bar/styles/progress-bar.min.css +1 -1
  53. package/src/components/radio-button/styles/radio-button.css +2 -2
  54. package/src/components/radio-button/styles/radio-button.min.css +1 -1
  55. package/src/components/system-message/styles/system-message.css +2 -2
  56. package/src/components/system-message/styles/system-message.min.css +1 -1
  57. package/src/components/toast/styles/toast.css +4 -4
  58. package/src/components/toast/styles/toast.min.css +1 -1
  59. package/src/core/jkl/_theme.scss +32 -13
@@ -1,6 +1,23 @@
1
- import { Density, PolymorphicPropsWithRef } from '../..';
1
+ import { Density } from '../../core';
2
+ import { PolymorphicPropsWithRef } from '../../utilities';
2
3
  export declare const buttonVariants: readonly ["primary", "secondary", "tertiary", "ghost"];
3
4
  export type ButtonVariant = (typeof buttonVariants)[number];
5
+ export type IconPosition = "left" | "right";
6
+ type IconOptions<T extends React.ElementType> = {
7
+ iconPosition?: never;
8
+ icon?: never;
9
+ children: React.ComponentPropsWithoutRef<T>["children"];
10
+ } | {
11
+ /**
12
+ * Plasseringen av ikonet
13
+ * @default "left"
14
+ */
15
+ iconPosition?: IconPosition;
16
+ /**
17
+ * Hvilket ikon som skal vises i knappen
18
+ */
19
+ icon: React.ReactElement;
20
+ };
4
21
  export type ButtonProps<ElementType extends React.ElementType> = PolymorphicPropsWithRef<ElementType, {
5
22
  density?: Density;
6
23
  /**
@@ -13,7 +30,14 @@ export type ButtonProps<ElementType extends React.ElementType> = PolymorphicProp
13
30
  showLoader: boolean;
14
31
  textDescription: string;
15
32
  };
33
+ /**
34
+ * @deprecated Bruk `icon` i kombinasjon med `iconPosition="left"`
35
+ */
16
36
  iconLeft?: React.ReactNode;
37
+ /**
38
+ * @deprecated Bruk `icon` i kombinasjon med `iconPosition="right"`
39
+ */
17
40
  iconRight?: React.ReactNode;
18
- }>;
41
+ } & IconOptions<ElementType>>;
19
42
  export type ButtonComponent = <ElementType extends React.ElementType = "button">(props: ButtonProps<ElementType>) => React.ReactElement | null;
43
+ export {};
@@ -6,7 +6,6 @@ interface CalendarProps extends Omit<UseCalendarProps, "date" | "onOffsetChanged
6
6
  date: Date | null;
7
7
  density?: Density;
8
8
  defaultSelected?: Date;
9
- hidden?: boolean;
10
9
  days?: string[];
11
10
  months?: string[];
12
11
  monthLabel?: string;
@@ -1,4 +1,4 @@
1
- import { useFocus, useHover, useClick, useDismiss, useRole, UseFloatingOptions } from '@floating-ui/react';
1
+ import { useFocus, useHover, useClick, useDismiss, useRole, UseFloatingOptions, ReferenceType } from '@floating-ui/react';
2
2
  import * as React from "react";
3
3
  type ClickOptions = Parameters<typeof useClick>[1];
4
4
  type DismissOptions = Parameters<typeof useDismiss>[1];
@@ -8,72 +8,95 @@ type RoleOptions = Parameters<typeof useRole>[1];
8
8
  interface PopoverOptions {
9
9
  /**
10
10
  * Angir om popoveren er åpen eller lukket.
11
- * @see https://floating-ui.com/docs/useFloating#open
11
+ *
12
+ * @see https://floating-ui.com/docs/usefloating#open
12
13
  */
13
14
  open?: boolean;
14
15
  /**
15
16
  * Callback som trigges når popoveren åpnes eller lukkes.
16
- * @see https://floating-ui.com/docs/useFloating#onOpenChange
17
+ *
18
+ * @see https://floating-ui.com/docs/usefloating#onopenchange
17
19
  */
18
20
  onOpenChange?: UseFloatingOptions["onOpenChange"];
19
21
  /**
20
22
  * Bestemmer plasseringen av popoveren.
23
+ *
24
+ * @see https://floating-ui.com/docs/usefloating#placement
25
+ *
21
26
  * @default "bottom-start"
22
- * @see https://floating-ui.com/docs/useFloating#placement
23
27
  */
24
28
  placement?: UseFloatingOptions["placement"];
25
29
  /**
26
30
  * Definerer strategien for posisjonering av popoveren.
31
+ *
32
+ * @see https://floating-ui.com/docs/usefloating#strategy
33
+ *
27
34
  * @default "absolute"
28
- * @see https://floating-ui.com/docs/useFloating#strategy
29
35
  */
30
36
  strategy?: UseFloatingOptions["strategy"];
31
37
  /**
32
38
  * Angir om popoveren skal fungere som en modal, der fokus er låst til det flytende elementet
33
39
  * og innhold utenfor ikke kan interageres med.
40
+ *
41
+ * @see https://floating-ui.com/docs/usefloating#modal
42
+ *
34
43
  * @default true
35
- * @see https://floating-ui.com/docs/useFloating#modal
36
44
  */
37
45
  modal?: boolean;
38
- /**
39
- * Offset til det flytende elementet.
40
- * @see https://floating-ui.com/docs/offset
41
- * @default 4
42
- * */
43
46
  /**
44
47
  * Justerer avstanden mellom referanse-elementet og popoveren.
48
+ *
45
49
  * @see https://floating-ui.com/docs/offset
50
+ *
46
51
  * @default 4
47
52
  */
48
53
  offset?: number;
54
+ /**
55
+ * Referanse til elementet som popoveren skal posisjoneres i forhold til.
56
+ *
57
+ * @see https://floating-ui.com/docs/usefloating#setpositionreference
58
+ *
59
+ * @default Popover.Trigger
60
+ */
61
+ positionReference?: React.RefObject<ReferenceType>;
49
62
  /**
50
63
  * Options for hover-interaksjoner.
51
- * @see https://floating-ui.com/docs/useHover
64
+ *
65
+ * @see https://floating-ui.com/docs/usehover
66
+ *
52
67
  * @default { enabled: false }
53
68
  */
54
69
  hoverOptions?: HoverOptions;
55
70
  /**
56
71
  * Options for fokus-interaksjoner.
57
- * @see https://floating-ui.com/docs/useFocus
72
+ *
73
+ * @see https://floating-ui.com/docs/usefocus
74
+ *
58
75
  * @default { enabled: false }
59
76
  */
60
77
  focusOptions?: FocusOptions;
61
78
  /**
62
79
  * Options for klikk-interaksjoner.
63
- * @see https://floating-ui.com/docs/useClick
80
+ *
81
+ * @see https://floating-ui.com/docs/useclick
82
+ *
64
83
  * @default { enabled: false }
65
84
  */
66
85
  clickOptions?: ClickOptions;
67
86
  /**
68
87
  * Konfigurerer rollen for popoveren.
69
- * @see https://floating-ui.com/docs/useRole
88
+ *
89
+ * @see https://floating-ui.com/docs/userole
90
+ *
70
91
  * @default { enabled: true, role: "dialog" }
71
92
  */
72
93
  roleOptions?: RoleOptions;
73
94
  /**
74
95
  * Options for å lukke popoveren når en dismissal skjer,
75
96
  * som ved å klikke utenfor eller trykke på "Escape"-tasten.
76
- * @see https://floating-ui.com/docs/useDismiss
97
+ *
98
+ * @see https://floating-ui.com/docs/usedismiss
99
+ *
77
100
  * @default { enabled: true }
78
101
  */
79
102
  dismissOptions?: DismissOptions;
@@ -88,8 +111,10 @@ declare const Popover: {
88
111
  interface PopoverTriggerProps {
89
112
  children: React.ReactNode;
90
113
  /**
91
- * Rendrer komponenten som child-elementet sitt, og slår
92
- * sammen egenskaper og props.
114
+ * Rendrer komponenten som child-elementet sitt, og slår sammen egenskaper og props.
115
+ *
116
+ * Default er `false`.
117
+ *
93
118
  * @example
94
119
  * ```tsx
95
120
  * <Component asChild foo="bar">
@@ -99,16 +124,31 @@ interface PopoverTriggerProps {
99
124
  * // Rendrer følgende:
100
125
  * <Child foo="bar" baz="qux" />
101
126
  * ```
102
- *
103
- * @default false
104
127
  */
105
128
  asChild?: boolean;
106
129
  }
107
130
  interface PopoverContentProps {
108
131
  /**
109
132
  * Padding rundt innholdet i popoveren.
110
- * @default 0
133
+ *
134
+ * Default er `0`.
111
135
  */
112
136
  padding?: 0 | 8 | 16 | 24;
137
+ /**
138
+ *
139
+ * Angir hvilket element som skal motta fokus ved åpning.
140
+ * Kan være en tabbar index eller en referanse til et element."
141
+ *
142
+ * Default er `0`, som betyr at det første fokuserbare elementet i popoveren får fokus.
143
+ * @see https://floating-ui.com/docs/FloatingFocusManager#initialfocus
144
+ */
145
+ initialFocus?: number | React.RefObject<HTMLElement>;
146
+ /**
147
+ * Angir om fokus skal returneres til triggeren når popoveren lukkes.
148
+ *
149
+ * Default er `true`.
150
+ * @see https://floating-ui.com/docs/FloatingFocusManager#returnfocus
151
+ */
152
+ returnFocus?: boolean;
113
153
  }
114
154
  export default Popover;
@@ -1,4 +1,4 @@
1
- export declare const getThemeAndDensity: (element: HTMLElement | null) => {
1
+ export declare const getThemeAndDensity: (element: Element | undefined) => {
2
2
  theme?: string | undefined;
3
3
  density?: string | undefined;
4
4
  };
@@ -21,6 +21,10 @@ export interface BaseTextInputProps extends Omit<InputHTMLAttributes<HTMLInputEl
21
21
  * @default "left"
22
22
  */
23
23
  align?: "left" | "right";
24
+ /**
25
+ * @deprecated Bruk heller actionButton
26
+ *
27
+ */
24
28
  action?: Action;
25
29
  density?: Density;
26
30
  /**
@@ -29,6 +33,10 @@ export interface BaseTextInputProps extends Omit<InputHTMLAttributes<HTMLInputEl
29
33
  * */
30
34
  unit?: ReactNode;
31
35
  width?: string;
36
+ /**
37
+ * Element som vises til høyre for inputfeltet. Brukes typisk til å trigge en handling som f.eks. å vise/skjule passord.
38
+ */
39
+ actionButton?: React.ReactElement<IconProps>;
32
40
  }
33
41
  export declare const BaseTextInput: React.ForwardRefExoticComponent<BaseTextInputProps & React.RefAttributes<HTMLInputElement>>;
34
42
  export {};