@helsenorge/designsystem-react 5.0.0-beta.1 → 5.0.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.
- package/AnchorLink.js +1 -1
- package/AnchorLink.js.map +1 -1
- package/Button.js.map +1 -1
- package/CHANGELOG.md +28 -0
- package/Checkbox.js +1 -1
- package/FormGroup.js +1 -1
- package/FormGroup.js.map +1 -1
- package/FormLayout.js.map +1 -1
- package/HighlightBox.js.map +1 -1
- package/Input.js +1 -1
- package/Input.js.map +1 -1
- package/ListHeader.js +1 -1
- package/ListHeader.js.map +1 -1
- package/ListHeaderText.js +1 -1
- package/ListHeaderText.js.map +1 -1
- package/MaxCharacters.js.map +1 -1
- package/Modal.js +1 -1
- package/Modal.js.map +1 -1
- package/Panel.js.map +1 -1
- package/RadioButton.js +1 -1
- package/Select.js.map +1 -1
- package/StatusDot.js +1 -1
- package/StatusDot.js.map +1 -1
- package/Table.js.map +1 -1
- package/TableBody.js.map +1 -1
- package/TableExpandedRow.js +1 -1
- package/TableExpandedRow.js.map +1 -1
- package/TableHead.js.map +1 -1
- package/TableRow.js.map +1 -1
- package/Textarea.js +1 -1
- package/Textarea.js.map +1 -1
- package/Title.js.map +1 -1
- package/Trigger.js +2 -0
- package/Trigger.js.map +1 -0
- package/__mocks__/useHover.d.ts +2 -0
- package/__mocks__/useHover.d.ts.map +1 -0
- package/__mocks__/useHover.js +2 -0
- package/__mocks__/useHover.js.map +1 -0
- package/__mocks__/useOutsideEvent.d.ts +2 -0
- package/__mocks__/useOutsideEvent.d.ts.map +1 -0
- package/__mocks__/useOutsideEvent.js +2 -0
- package/__mocks__/useOutsideEvent.js.map +1 -0
- package/__mocks__/useSize.d.ts +2 -0
- package/__mocks__/useSize.d.ts.map +1 -0
- package/__mocks__/useSize.js +2 -0
- package/__mocks__/useSize.js.map +1 -0
- package/__mocks__/uuid.js +1 -1
- package/__mocks__/uuid.js.map +1 -1
- package/components/AnchorLink/index.js +1 -1
- package/components/Button/index.js +1 -1
- package/components/ButtonWithModal/index.js +1 -1
- package/components/ButtonWithModal/index.js.map +1 -1
- package/components/Close/index.js +1 -1
- package/components/Dropdown/index.js +1 -1
- package/components/Dropdown/index.js.map +1 -1
- package/components/Dropdown/styles.module.scss +1 -0
- package/components/Duolist/index.js.map +1 -1
- package/components/Expander/index.js +1 -1
- package/components/Expander/index.js.map +1 -1
- package/components/ExpanderHierarchy/index.js +1 -1
- package/components/ExpanderHierarchy/index.js.map +1 -1
- package/components/ExpanderList/index.js +1 -1
- package/components/ExpanderList/index.js.map +1 -1
- package/components/FormExample/index.js +3 -3
- package/components/FormExample/index.js.map +1 -1
- package/components/FormGroup/FormGroup.d.ts +3 -1
- package/components/FormGroup/FormGroup.d.ts.map +1 -1
- package/components/FormGroup/componentdata.json +1 -1
- package/components/HelpBubble/index.js +1 -1
- package/components/HelpBubbleExample/index.js +1 -1
- package/components/HelpBubbleExample/index.js.map +1 -1
- package/components/HelpQuestion/HelpQuestion.d.ts +22 -0
- package/components/HelpQuestion/HelpQuestion.d.ts.map +1 -0
- package/components/HelpQuestion/componentdata.json +1 -0
- package/components/HelpQuestion/index.d.ts +4 -0
- package/components/HelpQuestion/index.d.ts.map +1 -0
- package/components/HelpQuestion/index.js +2 -0
- package/components/HelpQuestion/index.js.map +1 -0
- package/components/HelpQuestion/styles.module.scss +49 -0
- package/components/HelpQuestion/styles.module.scss.d.ts +10 -0
- package/components/Label/componentdata.json +1 -1
- package/components/LinkList/index.js +1 -1
- package/components/List/index.js.map +1 -1
- package/components/ListHeader/ListHeader.d.ts +1 -0
- package/components/ListHeader/ListHeader.d.ts.map +1 -1
- package/components/ListHeader/ListHeaderText/ListHeaderText.d.ts.map +1 -1
- package/components/Loader/index.js +1 -1
- package/components/Logo/Logo.d.ts +2 -2
- package/components/Logo/Logo.d.ts.map +1 -1
- package/components/Logo/componentdata.json +1 -1
- package/components/Logo/index.js +1 -1
- package/components/Logo/index.js.map +1 -1
- package/components/Modal/index.js +1 -1
- package/components/Modal/styles.module.scss +1 -0
- package/components/NotificationPanel/NotificationPanel.d.ts +1 -1
- package/components/NotificationPanel/NotificationPanel.d.ts.map +1 -1
- package/components/NotificationPanel/componentdata.json +1 -1
- package/components/NotificationPanel/index.js +1 -1
- package/components/NotificationPanel/index.js.map +1 -1
- package/components/Panel/index.js +1 -1
- package/components/PanelList/index.js +1 -1
- package/components/PanelList/index.js.map +1 -1
- package/components/PopMenu/index.js +1 -1
- package/components/PopMenu/index.js.map +1 -1
- package/components/ServiceMessage/index.js +1 -1
- package/components/ServiceMessage/index.js.map +1 -1
- package/components/Slider/index.js.map +1 -1
- package/components/Step/Step.d.ts +2 -0
- package/components/Step/Step.d.ts.map +1 -1
- package/components/Step/componentdata.json +1 -1
- package/components/Step/index.js +1 -1
- package/components/Step/index.js.map +1 -1
- package/components/Step/styles.module.scss +23 -1
- package/components/Step/styles.module.scss.d.ts +5 -1
- package/components/Stepper/index.js.map +1 -1
- package/components/Table/TableExpandedRow/TableExpandedRow.d.ts +3 -1
- package/components/Table/TableExpandedRow/TableExpandedRow.d.ts.map +1 -1
- package/components/Table/TableExpandedRow/componentdata.json +1 -1
- package/components/Table/TableExpandedRow/index.js +1 -1
- package/components/Table/TableExpanderCell/index.js +1 -1
- package/components/Table/TableRow/index.js +1 -1
- package/components/Table/index.js +1 -1
- package/components/Tag/index.js +1 -1
- package/components/Tag/index.js.map +1 -1
- package/components/Tile/Tile.d.ts +1 -7
- package/components/Tile/Tile.d.ts.map +1 -1
- package/components/Tile/componentdata.json +1 -1
- package/components/Tile/index.js +1 -1
- package/components/Tile/index.js.map +1 -1
- package/components/Tile/styles.module.scss +0 -4
- package/components/Tile/styles.module.scss.d.ts +0 -1
- package/components/Tooltip/index.js +1 -1
- package/components/TooltipExample/index.js +1 -1
- package/components/TooltipExample/index.js.map +1 -1
- package/components/Trigger/Trigger.d.ts +9 -0
- package/components/Trigger/Trigger.d.ts.map +1 -1
- package/components/Trigger/componentdata.json +1 -1
- package/components/Trigger/index.js +1 -1
- package/components/Trigger/index.js.map +1 -1
- package/components/Trigger/styles.module.scss +23 -20
- package/components/Trigger/styles.module.scss.d.ts +2 -0
- package/constants.d.ts +4 -3
- package/constants.d.ts.map +1 -1
- package/constants.js +1 -1
- package/constants.js.map +1 -1
- package/hooks/useFocusToggle.js.map +1 -1
- package/hooks/useFocusTrap.js.map +1 -1
- package/hooks/useHover.d.ts.map +1 -1
- package/hooks/useHover.js +1 -1
- package/hooks/useHover.js.map +1 -1
- package/hooks/useSize.js.map +1 -1
- package/hooks/useSticky.d.ts +5 -4
- package/hooks/useSticky.d.ts.map +1 -1
- package/hooks/useSticky.js +1 -1
- package/hooks/useSticky.js.map +1 -1
- package/hooks/useUuid.js +1 -1
- package/hooks/useUuid.js.map +1 -1
- package/index.js +1 -1
- package/package.json +1 -1
- package/theme/currys/color.js.map +1 -1
- package/theme/currys/spacing.js.map +1 -1
- package/theme/grid.js.map +1 -1
- package/utils/focus.js.map +1 -1
- package/utils/uuid.js +1 -1
- package/uuid.js +1 -1
package/components/Step/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import
|
|
1
|
+
import t,{useRef as d}from"react";import s from"classnames";import{useSticky as h}from"../../hooks/useSticky.js";import e from"./styles.module.scss";import"../../hooks/useLayoutEvent.js";import"../../utils/debounce.js";const y=({stepper:m,children:f,backButton:n,forwardButton:i,additionalButtons:o,cancelButton:l,stickyButtons:a=!1})=>{const p=d(null),c=d(null),{isOutsideWindow:g,offsetHeight:r,contentWidth:_}=h(p,c,"bottom"),N=a&&g,v=n||i||o||l,E=s(!v&&e["step__content--no-navigation"]),b=s(e.step__navigation,!v&&e["step__navigation--hidden"],a&&e["step__navigation--has-sticky-buttons"],N&&e["step__navigation--is-sticky"]);return t.createElement("div",{className:s(a&&e["step--has-sticky-buttons"])},m&&t.createElement("div",{className:e.step__stepper},m),t.createElement("div",{className:E,ref:p,style:{paddingBottom:a&&r?`${r}px`:void 0}},f),t.createElement("div",{className:b,ref:c,style:{width:a&&_?`${_}px`:void 0}},(n||i)&&t.createElement("div",{className:s(e.step__buttons,e["step__buttons--navigation"])},n&&t.cloneElement(n,{variant:"outline",wrapperClassName:s(e["step__button--back"])}),i&&t.cloneElement(i,{variant:"fill",wrapperClassName:s(e["step__button--forward"])})),o&&t.createElement("div",{className:s(e.step__buttons,e["step__buttons--additional"])},o),l&&t.createElement("div",{className:e.step__buttons},t.cloneElement(l,{variant:"borderless"}))))},w=y;export{w as default};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/components/Step/Step.tsx"],"sourcesContent":["import React from 'react';\n\nimport classNames from 'classnames';\n\nimport { ButtonProps } from '../Button';\nimport { StepperProps } from '../Stepper';\n\nimport styles from './styles.module.scss';\n\ninterface StepProps {\n /** Stepper viser fremdriften */\n stepper?: React.ReactElement<StepperProps>;\n /** Innhold i steget */\n children: React.ReactNode;\n /** Knapp for å gå tilbake. Vises med \"outline\" variant. */\n backButton?: React.ReactElement<ButtonProps>;\n /** Knapp for å gå videre. Vises med \"fill\" variant. */\n forwardButton?: React.ReactElement<ButtonProps>;\n /** Ekstra knapper. Valgfritt utseende. */\n additionalButtons?: React.ReactElement<ButtonProps>[];\n /** Knapp for å avbryte eller fortsette senere. Vises med \"borderless\" variant. */\n cancelButton?: React.ReactElement<ButtonProps>;\n}\n\nconst Step: React.FC<StepProps> = ({
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/components/Step/Step.tsx"],"sourcesContent":["import React, { useRef } from 'react';\n\nimport classNames from 'classnames';\n\nimport { useSticky } from '../../hooks/useSticky';\nimport { ButtonProps } from '../Button';\nimport { StepperProps } from '../Stepper';\n\nimport styles from './styles.module.scss';\n\ninterface StepProps {\n /** Stepper viser fremdriften */\n stepper?: React.ReactElement<StepperProps>;\n /** Innhold i steget */\n children: React.ReactNode;\n /** Knapp for å gå tilbake. Vises med \"outline\" variant. */\n backButton?: React.ReactElement<ButtonProps>;\n /** Knapp for å gå videre. Vises med \"fill\" variant. */\n forwardButton?: React.ReactElement<ButtonProps>;\n /** Ekstra knapper. Valgfritt utseende. */\n additionalButtons?: React.ReactElement<ButtonProps>[];\n /** Knapp for å avbryte eller fortsette senere. Vises med \"borderless\" variant. */\n cancelButton?: React.ReactElement<ButtonProps>;\n /** Knappene vil vises sticky nederst på skjermen dersom innholdet i Step tar mer plass enn vinduet. Default: false */\n stickyButtons?: boolean;\n}\n\nconst Step: React.FC<StepProps> = ({\n stepper,\n children,\n backButton,\n forwardButton,\n additionalButtons,\n cancelButton,\n stickyButtons = false,\n}) => {\n const contentRef = useRef<HTMLDivElement>(null);\n const navigationRef = useRef<HTMLDivElement>(null);\n const { isOutsideWindow, offsetHeight, contentWidth } = useSticky(contentRef, navigationRef, 'bottom');\n\n const isSticky = stickyButtons && isOutsideWindow;\n const hasNavigation = backButton || forwardButton || additionalButtons || cancelButton;\n\n const contentClasses = classNames(!hasNavigation && styles['step__content--no-navigation']);\n const navigationClasses = classNames(\n styles.step__navigation,\n !hasNavigation && styles['step__navigation--hidden'],\n stickyButtons && styles['step__navigation--has-sticky-buttons'],\n isSticky && styles['step__navigation--is-sticky']\n );\n\n return (\n <div className={classNames(stickyButtons && styles['step--has-sticky-buttons'])}>\n {stepper && <div className={styles.step__stepper}>{stepper}</div>}\n <div\n className={contentClasses}\n ref={contentRef}\n style={{ paddingBottom: stickyButtons && offsetHeight ? `${offsetHeight}px` : undefined }}\n >\n {children}\n </div>\n <div\n className={navigationClasses}\n ref={navigationRef}\n style={{\n width: stickyButtons && contentWidth ? `${contentWidth}px` : undefined,\n }}\n >\n {(backButton || forwardButton) && (\n <div className={classNames(styles.step__buttons, styles['step__buttons--navigation'])}>\n {backButton &&\n React.cloneElement(backButton, {\n variant: 'outline',\n wrapperClassName: classNames(styles['step__button--back']),\n })}\n {forwardButton &&\n React.cloneElement(forwardButton, {\n variant: 'fill',\n wrapperClassName: classNames(styles['step__button--forward']),\n })}\n </div>\n )}\n {additionalButtons && (\n <div className={classNames(styles.step__buttons, styles['step__buttons--additional'])}>{additionalButtons}</div>\n )}\n {cancelButton && (\n <div className={styles.step__buttons}>\n {React.cloneElement(cancelButton, {\n variant: 'borderless',\n })}\n </div>\n )}\n </div>\n </div>\n );\n};\n\nexport default Step;\n"],"names":["Step","stepper","children","backButton","forwardButton","additionalButtons","cancelButton","stickyButtons","contentRef","useRef","navigationRef","isOutsideWindow","offsetHeight","contentWidth","useSticky","isSticky","hasNavigation","contentClasses","classNames","styles","navigationClasses","React","Step$1"],"mappings":"2NA2BA,MAAMA,EAA4B,CAAC,CACjC,QAAAC,EACA,SAAAC,EACA,WAAAC,EACA,cAAAC,EACA,kBAAAC,EACA,aAAAC,EACA,cAAAC,EAAgB,EAClB,IAAM,CACE,MAAAC,EAAaC,EAAuB,IAAI,EACxCC,EAAgBD,EAAuB,IAAI,EAC3C,CAAE,gBAAAE,EAAiB,aAAAC,EAAc,aAAAC,CAAA,EAAiBC,EAAUN,EAAYE,EAAe,QAAQ,EAE/FK,EAAWR,GAAiBI,EAC5BK,EAAgBb,GAAcC,GAAiBC,GAAqBC,EAEpEW,EAAiBC,EAAW,CAACF,GAAiBG,EAAO,8BAA8B,CAAC,EACpFC,EAAoBF,EACxBC,EAAO,iBACP,CAACH,GAAiBG,EAAO,0BAA0B,EACnDZ,GAAiBY,EAAO,sCAAsC,EAC9DJ,GAAYI,EAAO,6BAA6B,CAAA,EAGlD,uBACG,MAAI,CAAA,UAAWD,EAAWX,GAAiBY,EAAO,0BAA0B,CAAC,CAC3E,EAAAlB,mBAAY,MAAI,CAAA,UAAWkB,EAAO,eAAgBlB,CAAQ,EAC3DoB,EAAA,cAAC,MAAA,CACC,UAAWJ,EACX,IAAKT,EACL,MAAO,CAAE,cAAeD,GAAiBK,EAAe,GAAGA,CAAY,KAAO,MAAU,CAAA,EAEvFV,CAEH,EAAAmB,EAAA,cAAC,MAAA,CACC,UAAWD,EACX,IAAKV,EACL,MAAO,CACL,MAAOH,GAAiBM,EAAe,GAAGA,CAAY,KAAO,MAC/D,CAAA,GAEEV,GAAcC,IACbiB,EAAA,cAAA,MAAA,CAAI,UAAWH,EAAWC,EAAO,cAAeA,EAAO,2BAA2B,CAAC,CAAA,EACjFhB,GACCkB,EAAM,aAAalB,EAAY,CAC7B,QAAS,UACT,iBAAkBe,EAAWC,EAAO,oBAAoB,CAAC,CAC1D,CAAA,EACFf,GACCiB,EAAM,aAAajB,EAAe,CAChC,QAAS,OACT,iBAAkBc,EAAWC,EAAO,uBAAuB,CAAC,CAAA,CAC7D,CACL,EAEDd,GACEgB,EAAA,cAAA,MAAA,CAAI,UAAWH,EAAWC,EAAO,cAAeA,EAAO,2BAA2B,CAAC,CAAA,EAAId,CAAkB,EAE3GC,mBACE,MAAI,CAAA,UAAWa,EAAO,aACpB,EAAAE,EAAM,aAAaf,EAAc,CAChC,QAAS,YAAA,CACV,CACH,CAAA,CAGN,CAEJ,EAEAgB,EAAetB"}
|
|
@@ -6,19 +6,41 @@
|
|
|
6
6
|
@import '../../scss/screen-reader';
|
|
7
7
|
|
|
8
8
|
.step {
|
|
9
|
+
&--has-sticky-buttons {
|
|
10
|
+
position: relative;
|
|
11
|
+
}
|
|
12
|
+
|
|
9
13
|
&__stepper {
|
|
10
14
|
margin-bottom: getSpacer(m);
|
|
11
15
|
}
|
|
12
16
|
|
|
13
17
|
&__content {
|
|
14
|
-
|
|
18
|
+
&--no-navigation {
|
|
19
|
+
margin-bottom: getSpacer(m);
|
|
20
|
+
}
|
|
15
21
|
}
|
|
16
22
|
|
|
17
23
|
&__navigation {
|
|
24
|
+
padding-top: getSpacer(m);
|
|
25
|
+
padding-bottom: getSpacer(s);
|
|
18
26
|
display: flex;
|
|
19
27
|
flex-wrap: wrap;
|
|
20
28
|
column-gap: getSpacer(l);
|
|
21
29
|
row-gap: getSpacer(m);
|
|
30
|
+
|
|
31
|
+
&--hidden {
|
|
32
|
+
display: none;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
&--has-sticky-buttons {
|
|
36
|
+
position: absolute;
|
|
37
|
+
bottom: 0;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
&--is-sticky {
|
|
41
|
+
background-color: $white;
|
|
42
|
+
position: fixed;
|
|
43
|
+
}
|
|
22
44
|
}
|
|
23
45
|
|
|
24
46
|
&__buttons {
|
|
@@ -3,9 +3,13 @@ export type Styles = {
|
|
|
3
3
|
'step__button--forward': string;
|
|
4
4
|
step__buttons: string;
|
|
5
5
|
'step__buttons--additional': string;
|
|
6
|
-
step__content: string;
|
|
6
|
+
'step__content--no-navigation': string;
|
|
7
7
|
step__navigation: string;
|
|
8
|
+
'step__navigation--has-sticky-buttons': string;
|
|
9
|
+
'step__navigation--hidden': string;
|
|
10
|
+
'step__navigation--is-sticky': string;
|
|
8
11
|
step__stepper: string;
|
|
12
|
+
'step--has-sticky-buttons': string;
|
|
9
13
|
};
|
|
10
14
|
|
|
11
15
|
export type ClassNames = keyof Styles;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/components/Stepper/utils.ts","../../../src/components/Stepper/Dot.tsx","../../../src/components/Stepper/DotList.tsx","../../../src/components/Stepper/Stepper.tsx"],"sourcesContent":["/**\n * Minimum avstand fra markør til prikk\n */\nconst MARKER_DOT_MIN_DISTANCE_PX = 4;\n\n/**\n * Bredde på markør\n */\nconst MARKER_WIDTH_PX = 24;\n\n/**\n * Horisontal padding på stepper\n */\nexport const STEPPER_PADDING_X_PX = 8;\n\n/**\n * Valider at minimum-verdi er innenfor gyldig område\n * @param min Mimimum-verdi\n * @param max Maksimum-verdi\n * @returns Mimimum-verdi, ikke større enn eller lik maksimum-verdi\n */\nexport const getValidatedMin = (min: number, max: number): number => (min < max ? min : max - 1);\n\n/**\n * Valider at maksimum-verdi er innenfor gyldig område\n * @param min Mimimum-verdi\n * @param max Maksimum-verdi\n * @returns Maksimum-verdi, ikke mindre enn minimum-verdi\n */\nexport const getValidatedMax = (min: number, max: number): number => (max < min ? min : max);\n\n/**\n * Valider at verdi er innenfor gyldig område\n * @param value Nåværende verdi\n * @param min Mimimum-verdi\n * @param max Maksimum-verdi\n * @returns Verdi, ikke mindre enn 0, ikke mer enn max\n */\nexport const getValidatedValue = (value: number | undefined, min: number, max: number): number => {\n if (typeof value === 'undefined' || value < min) {\n return min;\n }\n\n return value > max ? max : value;\n};\n\n/**\n * Finn antall prikker det er plass til\n * @param stepperWidth Bredde på stepper\n * @returns Antall prikker\n */\nexport const getMaximumDots = (stepperWidth: number): number => Math.floor(stepperWidth / (MARKER_WIDTH_PX + MARKER_DOT_MIN_DISTANCE_PX));\n\n/**\n * Beregn riktig distance mellom prikker\n * @param stepperWidth Bredde på stepper\n * @param dots Antall prikker som skal vises\n * @returns Distanse mellom prikker\n */\nexport const getDistanceBetweenDots = (stepperWidth: number, dots: number): number => (stepperWidth - MARKER_WIDTH_PX) / (dots - 1);\n\n/**\n * Beregn riktig plassering av markør\n * @param distanceBetweenDots Distanse mellom prikker\n * @param index Nåværende verdi i stepper\n * @returns Plassering til markør fra venstre\n */\nexport const getMarkerPosition = (distanceBetweenDots: number, index: number): number => distanceBetweenDots * index;\n\n/**\n * Lag liste med tillate verdier fra min til maks\n * @param min Mimimum-verdi\n * @param max Maksimum-verdi\n * @returns Liste med verdier\n */\nexport const getAllowedValues = (min: number, max: number): number[] => Array.from(Array(max - min + 1), (_, index) => index + min);\n\n/**\n * Valider props som skal brukes til beregning av posisjon m.m.\n * @param value Nåværende verdi\n * @param min Mimimum-verdi\n * @param max Maksimum-verdi\n * @returns Objekt med gyldige verdier\n */\nexport const getValidatedProps = (\n value: number | undefined,\n min: number,\n max: number\n): { validatedValue: number; validatedMin: number; validatedMax: number } => {\n const validatedMin = getValidatedMin(min, max);\n const validatedMax = getValidatedMax(validatedMin, max);\n const validatedValue = getValidatedValue(value, validatedMin, validatedMax);\n\n return { validatedValue, validatedMin, validatedMax };\n};\n","import React from 'react';\n\nimport classNames from 'classnames';\n\nimport { STEPPER_PADDING_X_PX } from './utils';\n\nimport styles from './styles.module.scss';\n\ninterface DotProps {\n index?: number;\n completed: boolean;\n distanceBetweenDots?: number;\n position?: 'left' | 'right';\n}\n\nconst Dot: React.FC<DotProps> = ({ index, completed, distanceBetweenDots, position }) => {\n const classes = classNames(\n styles.stepper__dot,\n completed && styles['stepper__dot--completed'],\n position && styles[`stepper__dot--${position}`]\n );\n const positionWithStyle = !position && typeof index !== 'undefined' && typeof distanceBetweenDots !== 'undefined';\n const style: React.HTMLAttributes<HTMLSpanElement>['style'] = positionWithStyle\n ? { left: `${index * distanceBetweenDots + STEPPER_PADDING_X_PX}px` }\n : undefined;\n\n return <span className={classes} style={style} data-testid=\"dot\" />;\n};\n\nexport default Dot;\n","import React from 'react';\n\nimport Dot from './Dot';\n\ninterface DotListProps {\n allowedValues: number[];\n currentValue: number;\n distanceBetweenDots: number;\n}\n\nconst Dots: React.FC<DotListProps> = ({ allowedValues, currentValue, distanceBetweenDots }) => (\n <>\n {allowedValues.map((value, index) => (\n <Dot index={index} key={value} completed={value < currentValue} distanceBetweenDots={distanceBetweenDots} />\n ))}\n </>\n);\n\nexport default Dots;\n","import React, { useRef } from 'react';\n\nimport Dot from './Dot';\nimport DotList from './DotList';\nimport { getMaximumDots, getDistanceBetweenDots, getMarkerPosition, getAllowedValues, getValidatedProps } from './utils';\nimport { AnalyticsId } from '../../constants';\nimport { useSize } from '../../hooks/useSize';\nimport { getAriaLabelAttributes } from '../../utils/accessibility';\n\nimport styles from './styles.module.scss';\n\nexport interface StepperProps {\n /**\n * Sets aria-label of the stepper. ariaLabel or ariaLabelledById MUST be set!\n */\n ariaLabel?: string;\n /**\n * Sets aria-labelledby of the stepper. ariaLabel or ariaLabelledById MUST be set!\n */\n ariaLabelledById?: string;\n /**\n * Current value. Must be between min and max\n */\n value?: number;\n /**\n * Minimum value\n */\n min?: number;\n /**\n * Maximum value\n */\n max?: number;\n /** Sets the data-testid attribute. */\n testId?: string;\n}\n\nconst Stepper: React.FC<StepperProps> = ({ ariaLabelledById, ariaLabel, value, min = 0, max = 2, testId }) => {\n const wrapperRef = useRef<HTMLDivElement>(null);\n const ref = useRef<HTMLSpanElement>(null);\n const { width: wrapperWidth = 0 } = useSize(wrapperRef) || {};\n const { width: stepperWidth = 0 } = useSize(ref) || {};\n\n const { validatedValue, validatedMin, validatedMax } = getValidatedProps(value, min, max);\n const allowedValues = getAllowedValues(validatedMin, validatedMax);\n const index = allowedValues.indexOf(validatedValue);\n const maximumDots = getMaximumDots(wrapperWidth);\n const distanceBetweenDots = getDistanceBetweenDots(stepperWidth, allowedValues.length);\n const markerPosition = getMarkerPosition(distanceBetweenDots, index);\n\n const showAllDots = allowedValues.length <= maximumDots;\n const isCompleted = validatedValue === validatedMax;\n\n const ariaLabelAttributes = getAriaLabelAttributes({ label: ariaLabel, id: ariaLabelledById });\n\n return (\n <div className={styles['stepper-wrapper']} ref={wrapperRef}>\n <span\n role=\"progressbar\"\n {...ariaLabelAttributes}\n aria-valuenow={validatedValue}\n aria-valuemin={validatedMin}\n aria-valuemax={validatedMax}\n className={styles.stepper}\n style={{\n backgroundPositionX: `${isCompleted ? stepperWidth : markerPosition}px`,\n }}\n ref={ref}\n data-testid={testId}\n data-analyticsid={AnalyticsId.Stepper}\n >\n {showAllDots && <DotList allowedValues={allowedValues} currentValue={validatedValue} distanceBetweenDots={distanceBetweenDots} />}\n {!showAllDots && (\n <>\n <Dot completed={validatedValue > validatedMin} position=\"left\" />\n <Dot completed={validatedValue === validatedMax} position=\"right\" />\n </>\n )}\n <span className={styles.stepper__marker} style={{ left: `${markerPosition}px` }} />\n </span>\n {!showAllDots && <span className={styles.stepper__number}>{`${validatedValue}/${validatedMax}`}</span>}\n </div>\n );\n};\n\nexport default Stepper;\n"],"names":["MARKER_DOT_MIN_DISTANCE_PX","MARKER_WIDTH_PX","STEPPER_PADDING_X_PX","getValidatedMin","min","max","getValidatedMax","getValidatedValue","value","getMaximumDots","stepperWidth","getDistanceBetweenDots","dots","getMarkerPosition","distanceBetweenDots","index","getAllowedValues","_","getValidatedProps","validatedMin","validatedMax","Dot","completed","position","classes","classNames","styles","style","Dot$1","Dots","allowedValues","currentValue","React","DotList","Stepper","ariaLabelledById","ariaLabel","testId","wrapperRef","useRef","ref","wrapperWidth","useSize","validatedValue","maximumDots","markerPosition","showAllDots","isCompleted","ariaLabelAttributes","getAriaLabelAttributes","AnalyticsId","Stepper$1"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/components/Stepper/utils.ts","../../../src/components/Stepper/Dot.tsx","../../../src/components/Stepper/DotList.tsx","../../../src/components/Stepper/Stepper.tsx"],"sourcesContent":["/**\n * Minimum avstand fra markør til prikk\n */\nconst MARKER_DOT_MIN_DISTANCE_PX = 4;\n\n/**\n * Bredde på markør\n */\nconst MARKER_WIDTH_PX = 24;\n\n/**\n * Horisontal padding på stepper\n */\nexport const STEPPER_PADDING_X_PX = 8;\n\n/**\n * Valider at minimum-verdi er innenfor gyldig område\n * @param min Mimimum-verdi\n * @param max Maksimum-verdi\n * @returns Mimimum-verdi, ikke større enn eller lik maksimum-verdi\n */\nexport const getValidatedMin = (min: number, max: number): number => (min < max ? min : max - 1);\n\n/**\n * Valider at maksimum-verdi er innenfor gyldig område\n * @param min Mimimum-verdi\n * @param max Maksimum-verdi\n * @returns Maksimum-verdi, ikke mindre enn minimum-verdi\n */\nexport const getValidatedMax = (min: number, max: number): number => (max < min ? min : max);\n\n/**\n * Valider at verdi er innenfor gyldig område\n * @param value Nåværende verdi\n * @param min Mimimum-verdi\n * @param max Maksimum-verdi\n * @returns Verdi, ikke mindre enn 0, ikke mer enn max\n */\nexport const getValidatedValue = (value: number | undefined, min: number, max: number): number => {\n if (typeof value === 'undefined' || value < min) {\n return min;\n }\n\n return value > max ? max : value;\n};\n\n/**\n * Finn antall prikker det er plass til\n * @param stepperWidth Bredde på stepper\n * @returns Antall prikker\n */\nexport const getMaximumDots = (stepperWidth: number): number => Math.floor(stepperWidth / (MARKER_WIDTH_PX + MARKER_DOT_MIN_DISTANCE_PX));\n\n/**\n * Beregn riktig distance mellom prikker\n * @param stepperWidth Bredde på stepper\n * @param dots Antall prikker som skal vises\n * @returns Distanse mellom prikker\n */\nexport const getDistanceBetweenDots = (stepperWidth: number, dots: number): number => (stepperWidth - MARKER_WIDTH_PX) / (dots - 1);\n\n/**\n * Beregn riktig plassering av markør\n * @param distanceBetweenDots Distanse mellom prikker\n * @param index Nåværende verdi i stepper\n * @returns Plassering til markør fra venstre\n */\nexport const getMarkerPosition = (distanceBetweenDots: number, index: number): number => distanceBetweenDots * index;\n\n/**\n * Lag liste med tillate verdier fra min til maks\n * @param min Mimimum-verdi\n * @param max Maksimum-verdi\n * @returns Liste med verdier\n */\nexport const getAllowedValues = (min: number, max: number): number[] => Array.from(Array(max - min + 1), (_, index) => index + min);\n\n/**\n * Valider props som skal brukes til beregning av posisjon m.m.\n * @param value Nåværende verdi\n * @param min Mimimum-verdi\n * @param max Maksimum-verdi\n * @returns Objekt med gyldige verdier\n */\nexport const getValidatedProps = (\n value: number | undefined,\n min: number,\n max: number\n): { validatedValue: number; validatedMin: number; validatedMax: number } => {\n const validatedMin = getValidatedMin(min, max);\n const validatedMax = getValidatedMax(validatedMin, max);\n const validatedValue = getValidatedValue(value, validatedMin, validatedMax);\n\n return { validatedValue, validatedMin, validatedMax };\n};\n","import React from 'react';\n\nimport classNames from 'classnames';\n\nimport { STEPPER_PADDING_X_PX } from './utils';\n\nimport styles from './styles.module.scss';\n\ninterface DotProps {\n index?: number;\n completed: boolean;\n distanceBetweenDots?: number;\n position?: 'left' | 'right';\n}\n\nconst Dot: React.FC<DotProps> = ({ index, completed, distanceBetweenDots, position }) => {\n const classes = classNames(\n styles.stepper__dot,\n completed && styles['stepper__dot--completed'],\n position && styles[`stepper__dot--${position}`]\n );\n const positionWithStyle = !position && typeof index !== 'undefined' && typeof distanceBetweenDots !== 'undefined';\n const style: React.HTMLAttributes<HTMLSpanElement>['style'] = positionWithStyle\n ? { left: `${index * distanceBetweenDots + STEPPER_PADDING_X_PX}px` }\n : undefined;\n\n return <span className={classes} style={style} data-testid=\"dot\" />;\n};\n\nexport default Dot;\n","import React from 'react';\n\nimport Dot from './Dot';\n\ninterface DotListProps {\n allowedValues: number[];\n currentValue: number;\n distanceBetweenDots: number;\n}\n\nconst Dots: React.FC<DotListProps> = ({ allowedValues, currentValue, distanceBetweenDots }) => (\n <>\n {allowedValues.map((value, index) => (\n <Dot index={index} key={value} completed={value < currentValue} distanceBetweenDots={distanceBetweenDots} />\n ))}\n </>\n);\n\nexport default Dots;\n","import React, { useRef } from 'react';\n\nimport Dot from './Dot';\nimport DotList from './DotList';\nimport { getMaximumDots, getDistanceBetweenDots, getMarkerPosition, getAllowedValues, getValidatedProps } from './utils';\nimport { AnalyticsId } from '../../constants';\nimport { useSize } from '../../hooks/useSize';\nimport { getAriaLabelAttributes } from '../../utils/accessibility';\n\nimport styles from './styles.module.scss';\n\nexport interface StepperProps {\n /**\n * Sets aria-label of the stepper. ariaLabel or ariaLabelledById MUST be set!\n */\n ariaLabel?: string;\n /**\n * Sets aria-labelledby of the stepper. ariaLabel or ariaLabelledById MUST be set!\n */\n ariaLabelledById?: string;\n /**\n * Current value. Must be between min and max\n */\n value?: number;\n /**\n * Minimum value\n */\n min?: number;\n /**\n * Maximum value\n */\n max?: number;\n /** Sets the data-testid attribute. */\n testId?: string;\n}\n\nconst Stepper: React.FC<StepperProps> = ({ ariaLabelledById, ariaLabel, value, min = 0, max = 2, testId }) => {\n const wrapperRef = useRef<HTMLDivElement>(null);\n const ref = useRef<HTMLSpanElement>(null);\n const { width: wrapperWidth = 0 } = useSize(wrapperRef) || {};\n const { width: stepperWidth = 0 } = useSize(ref) || {};\n\n const { validatedValue, validatedMin, validatedMax } = getValidatedProps(value, min, max);\n const allowedValues = getAllowedValues(validatedMin, validatedMax);\n const index = allowedValues.indexOf(validatedValue);\n const maximumDots = getMaximumDots(wrapperWidth);\n const distanceBetweenDots = getDistanceBetweenDots(stepperWidth, allowedValues.length);\n const markerPosition = getMarkerPosition(distanceBetweenDots, index);\n\n const showAllDots = allowedValues.length <= maximumDots;\n const isCompleted = validatedValue === validatedMax;\n\n const ariaLabelAttributes = getAriaLabelAttributes({ label: ariaLabel, id: ariaLabelledById });\n\n return (\n <div className={styles['stepper-wrapper']} ref={wrapperRef}>\n <span\n role=\"progressbar\"\n {...ariaLabelAttributes}\n aria-valuenow={validatedValue}\n aria-valuemin={validatedMin}\n aria-valuemax={validatedMax}\n className={styles.stepper}\n style={{\n backgroundPositionX: `${isCompleted ? stepperWidth : markerPosition}px`,\n }}\n ref={ref}\n data-testid={testId}\n data-analyticsid={AnalyticsId.Stepper}\n >\n {showAllDots && <DotList allowedValues={allowedValues} currentValue={validatedValue} distanceBetweenDots={distanceBetweenDots} />}\n {!showAllDots && (\n <>\n <Dot completed={validatedValue > validatedMin} position=\"left\" />\n <Dot completed={validatedValue === validatedMax} position=\"right\" />\n </>\n )}\n <span className={styles.stepper__marker} style={{ left: `${markerPosition}px` }} />\n </span>\n {!showAllDots && <span className={styles.stepper__number}>{`${validatedValue}/${validatedMax}`}</span>}\n </div>\n );\n};\n\nexport default Stepper;\n"],"names":["MARKER_DOT_MIN_DISTANCE_PX","MARKER_WIDTH_PX","STEPPER_PADDING_X_PX","getValidatedMin","min","max","getValidatedMax","getValidatedValue","value","getMaximumDots","stepperWidth","getDistanceBetweenDots","dots","getMarkerPosition","distanceBetweenDots","index","getAllowedValues","_","getValidatedProps","validatedMin","validatedMax","Dot","completed","position","classes","classNames","styles","style","Dot$1","Dots","allowedValues","currentValue","React","DotList","Stepper","ariaLabelledById","ariaLabel","testId","wrapperRef","useRef","ref","wrapperWidth","useSize","validatedValue","maximumDots","markerPosition","showAllDots","isCompleted","ariaLabelAttributes","getAriaLabelAttributes","AnalyticsId","Stepper$1"],"mappings":"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"}
|
|
@@ -15,7 +15,9 @@ export interface Props {
|
|
|
15
15
|
children: React.ReactNode;
|
|
16
16
|
/** For display with less space. Discouraged to use together with interactive elements. */
|
|
17
17
|
mode?: ModeType;
|
|
18
|
+
/** Row id. For use with aria-controls. */
|
|
19
|
+
id?: string;
|
|
18
20
|
}
|
|
19
|
-
export declare const TableExpandedRow: ({ numberOfColumns, expanded, hideDetailsText, toggleClick, children, className, mode, }: Props) => React.JSX.Element;
|
|
21
|
+
export declare const TableExpandedRow: ({ numberOfColumns, expanded, hideDetailsText, toggleClick, children, className, mode, id, }: Props) => React.JSX.Element;
|
|
20
22
|
export default TableExpandedRow;
|
|
21
23
|
//# sourceMappingURL=TableExpandedRow.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableExpandedRow.d.ts","sourceRoot":"","sources":["../../../../src/components/Table/TableExpandedRow/TableExpandedRow.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAQ1B,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEpC,MAAM,WAAW,KAAK;IACpB,uBAAuB;IACvB,QAAQ,EAAE,OAAO,CAAC;IAClB,kCAAkC;IAClC,eAAe,EAAE,MAAM,CAAC;IACxB,4BAA4B;IAC5B,eAAe,EAAE,MAAM,CAAC;IACxB,uDAAuD;IACvD,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,0CAA0C;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6CAA6C;IAC7C,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,0FAA0F;IAC1F,IAAI,CAAC,EAAE,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"TableExpandedRow.d.ts","sourceRoot":"","sources":["../../../../src/components/Table/TableExpandedRow/TableExpandedRow.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAQ1B,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEpC,MAAM,WAAW,KAAK;IACpB,uBAAuB;IACvB,QAAQ,EAAE,OAAO,CAAC;IAClB,kCAAkC;IAClC,eAAe,EAAE,MAAM,CAAC;IACxB,4BAA4B;IAC5B,eAAe,EAAE,MAAM,CAAC;IACxB,uDAAuD;IACvD,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,0CAA0C;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6CAA6C;IAC7C,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,0FAA0F;IAC1F,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,0CAA0C;IAC1C,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED,eAAO,MAAM,gBAAgB,gGAS1B,KAAK,KAAG,SAAS,QA2BnB,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"props":{"expanded":{"defaultValue":null,"description":"Row is expanded.","name":"expanded","parent":{"fileName":"src/components/Table/TableExpandedRow/TableExpandedRow.tsx","name":"Props"},"declarations":[{"fileName":"src/components/Table/TableExpandedRow/TableExpandedRow.tsx","name":"Props"}],"required":true,"type":{"name":"boolean"}},"numberOfColumns":{"defaultValue":null,"description":"Number of columns in table.","name":"numberOfColumns","parent":{"fileName":"src/components/Table/TableExpandedRow/TableExpandedRow.tsx","name":"Props"},"declarations":[{"fileName":"src/components/Table/TableExpandedRow/TableExpandedRow.tsx","name":"Props"}],"required":true,"type":{"name":"number"}},"hideDetailsText":{"defaultValue":null,"description":"Text for hide button.","name":"hideDetailsText","parent":{"fileName":"src/components/Table/TableExpandedRow/TableExpandedRow.tsx","name":"Props"},"declarations":[{"fileName":"src/components/Table/TableExpandedRow/TableExpandedRow.tsx","name":"Props"}],"required":true,"type":{"name":"string"}},"toggleClick":{"defaultValue":null,"description":"When hide button inside expanded row is clicked.","name":"toggleClick","parent":{"fileName":"src/components/Table/TableExpandedRow/TableExpandedRow.tsx","name":"Props"},"declarations":[{"fileName":"src/components/Table/TableExpandedRow/TableExpandedRow.tsx","name":"Props"}],"required":true,"type":{"name":"() => void"}},"className":{"defaultValue":null,"description":"Adds custom classes to the element.","name":"className","parent":{"fileName":"src/components/Table/TableExpandedRow/TableExpandedRow.tsx","name":"Props"},"declarations":[{"fileName":"src/components/Table/TableExpandedRow/TableExpandedRow.tsx","name":"Props"}],"required":false,"type":{"name":"string"}},"children":{"defaultValue":null,"description":"Sets the content of the expanded row.","name":"children","parent":{"fileName":"src/components/Table/TableExpandedRow/TableExpandedRow.tsx","name":"Props"},"declarations":[{"fileName":"src/components/Table/TableExpandedRow/TableExpandedRow.tsx","name":"Props"}],"required":true,"type":{"name":"ReactNode"}},"mode":{"defaultValue":{"value":"ModeType.normal"},"description":"For display with less space. Discouraged to use together with interactive elements.","name":"mode","parent":{"fileName":"src/components/Table/TableExpandedRow/TableExpandedRow.tsx","name":"Props"},"declarations":[{"fileName":"src/components/Table/TableExpandedRow/TableExpandedRow.tsx","name":"Props"}],"required":false,"type":{"name":"enum","raw":"ModeType","value":[{"value":"\"compact\"","description":"","fullComment":"","tags":{}},{"value":"\"normal\"","description":"","fullComment":"","tags":{}}]}}}}
|
|
1
|
+
{"props":{"expanded":{"defaultValue":null,"description":"Row is expanded.","name":"expanded","parent":{"fileName":"src/components/Table/TableExpandedRow/TableExpandedRow.tsx","name":"Props"},"declarations":[{"fileName":"src/components/Table/TableExpandedRow/TableExpandedRow.tsx","name":"Props"}],"required":true,"type":{"name":"boolean"}},"numberOfColumns":{"defaultValue":null,"description":"Number of columns in table.","name":"numberOfColumns","parent":{"fileName":"src/components/Table/TableExpandedRow/TableExpandedRow.tsx","name":"Props"},"declarations":[{"fileName":"src/components/Table/TableExpandedRow/TableExpandedRow.tsx","name":"Props"}],"required":true,"type":{"name":"number"}},"hideDetailsText":{"defaultValue":null,"description":"Text for hide button.","name":"hideDetailsText","parent":{"fileName":"src/components/Table/TableExpandedRow/TableExpandedRow.tsx","name":"Props"},"declarations":[{"fileName":"src/components/Table/TableExpandedRow/TableExpandedRow.tsx","name":"Props"}],"required":true,"type":{"name":"string"}},"toggleClick":{"defaultValue":null,"description":"When hide button inside expanded row is clicked.","name":"toggleClick","parent":{"fileName":"src/components/Table/TableExpandedRow/TableExpandedRow.tsx","name":"Props"},"declarations":[{"fileName":"src/components/Table/TableExpandedRow/TableExpandedRow.tsx","name":"Props"}],"required":true,"type":{"name":"() => void"}},"className":{"defaultValue":null,"description":"Adds custom classes to the element.","name":"className","parent":{"fileName":"src/components/Table/TableExpandedRow/TableExpandedRow.tsx","name":"Props"},"declarations":[{"fileName":"src/components/Table/TableExpandedRow/TableExpandedRow.tsx","name":"Props"}],"required":false,"type":{"name":"string"}},"children":{"defaultValue":null,"description":"Sets the content of the expanded row.","name":"children","parent":{"fileName":"src/components/Table/TableExpandedRow/TableExpandedRow.tsx","name":"Props"},"declarations":[{"fileName":"src/components/Table/TableExpandedRow/TableExpandedRow.tsx","name":"Props"}],"required":true,"type":{"name":"ReactNode"}},"mode":{"defaultValue":{"value":"ModeType.normal"},"description":"For display with less space. Discouraged to use together with interactive elements.","name":"mode","parent":{"fileName":"src/components/Table/TableExpandedRow/TableExpandedRow.tsx","name":"Props"},"declarations":[{"fileName":"src/components/Table/TableExpandedRow/TableExpandedRow.tsx","name":"Props"}],"required":false,"type":{"name":"enum","raw":"ModeType","value":[{"value":"\"compact\"","description":"","fullComment":"","tags":{}},{"value":"\"normal\"","description":"","fullComment":"","tags":{}}]}},"id":{"defaultValue":null,"description":"Row id. For use with aria-controls.","name":"id","parent":{"fileName":"src/components/Table/TableExpandedRow/TableExpandedRow.tsx","name":"Props"},"declarations":[{"fileName":"src/components/Table/TableExpandedRow/TableExpandedRow.tsx","name":"Props"}],"required":false,"type":{"name":"string"}}}}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as p}from"../../../TableExpandedRow.js";import{T as
|
|
1
|
+
import{a as p}from"../../../TableExpandedRow.js";import{T as G}from"../../../TableExpandedRow.js";import"react";import"classnames";import"../../../Button.js";import"../../Icons/Icon.js";import"../../../constants.js";import"../../../hooks/useUuid.js";import"../../../uuid.js";import"../../../utils/environment.js";import"../../../hooks/useBreakpoint.js";import"../../../theme/grid.js";import"../../../hooks/useHover.js";import"../../../hooks/usePseudoClasses.js";import"../../../hooks/useIcons.js";import"../../../hooks/useSize.js";import"../../../utils/debounce.js";import"../../../theme/currys/color.js";import"../../../theme/index.js";import"../../../theme/palette.js";import"../../../theme/spacers.js";import"../../Icons/ArrowRight.js";import"../../Button/styles.module.scss";import"../../Icons/ChevronUp.js";import"../styles.module.scss";import"../../../Table.js";import"../../../hooks/useLayoutEvent.js";import"../../../HorizontalScroll.js";import"../../../hooks/useIsVisible.js";import"../../../hooks/useIntersectionObserver.js";import"../../HorizontalScroll/styles.module.scss";import"../../../utils/device.js";export{G as TableExpandedRow,p as default};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as o}from"../../../TableExpanderCell.js";import{T as
|
|
1
|
+
import{a as o}from"../../../TableExpanderCell.js";import{T as I}from"../../../TableExpanderCell.js";import"react";import"classnames";import"../../../Button.js";import"../../Icons/Icon.js";import"../../../constants.js";import"../../../hooks/useUuid.js";import"../../../uuid.js";import"../../../utils/environment.js";import"../../../hooks/useBreakpoint.js";import"../../../theme/grid.js";import"../../../hooks/useHover.js";import"../../../hooks/usePseudoClasses.js";import"../../../hooks/useIcons.js";import"../../../hooks/useSize.js";import"../../../utils/debounce.js";import"../../../theme/currys/color.js";import"../../../theme/index.js";import"../../../theme/palette.js";import"../../../theme/spacers.js";import"../../Icons/ArrowRight.js";import"../../Button/styles.module.scss";import"../../Icons/ChevronDown.js";import"../../Icons/ChevronUp.js";import"../styles.module.scss";import"../../../Table.js";import"../../../hooks/useLayoutEvent.js";import"../../../HorizontalScroll.js";import"../../../hooks/useIsVisible.js";import"../../../hooks/useIntersectionObserver.js";import"../../HorizontalScroll/styles.module.scss";import"../../../utils/device.js";export{I as TableExpanderCell,o as default};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as r}from"../../../TableRow.js";import{T as
|
|
1
|
+
import{a as r}from"../../../TableRow.js";import{T as H}from"../../../TableRow.js";import"react";import"classnames";import"../styles.module.scss";import"../../../Table.js";import"../../../constants.js";import"../../../hooks/useBreakpoint.js";import"../../../theme/grid.js";import"../../../hooks/useLayoutEvent.js";import"../../../utils/debounce.js";import"../../../HorizontalScroll.js";import"../../../hooks/useIsVisible.js";import"../../../hooks/useIntersectionObserver.js";import"../../../hooks/useSize.js";import"../../HorizontalScroll/styles.module.scss";import"../../../utils/device.js";import"../../../Button.js";import"../../Icons/Icon.js";import"../../../hooks/useUuid.js";import"../../../uuid.js";import"../../../utils/environment.js";import"../../../hooks/useHover.js";import"../../../hooks/usePseudoClasses.js";import"../../../hooks/useIcons.js";import"../../../theme/currys/color.js";import"../../../theme/index.js";import"../../../theme/palette.js";import"../../../theme/spacers.js";import"../../Icons/ArrowRight.js";import"../../Button/styles.module.scss";import"../../Icons/ChevronDown.js";import"../../Icons/ChevronUp.js";export{H as TableRow,r as default};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{T as r}from"../../Table.js";import{M as
|
|
1
|
+
import{T as r}from"../../Table.js";import{M as z,R as F,d as G,s as I}from"../../Table.js";import{T as K}from"../../TableBody.js";import{T as N,a as O}from"../../TableCell.js";import{T as Q}from"../../TableExpandedRow.js";import{T as W}from"../../TableExpanderCell.js";import{H as Y,T as Z}from"../../TableHead.js";import{S as $,T as oo}from"../../TableHeadCell.js";import{T as to}from"../../TableRow.js";import"react";import"classnames";import"../../constants.js";import"../../hooks/useBreakpoint.js";import"../../theme/grid.js";import"../../hooks/useLayoutEvent.js";import"../../utils/debounce.js";import"../../HorizontalScroll.js";import"../../hooks/useIsVisible.js";import"../../hooks/useIntersectionObserver.js";import"../../hooks/useSize.js";import"../HorizontalScroll/styles.module.scss";import"./styles.module.scss";import"../../utils/device.js";import"../../Button.js";import"../Icons/Icon.js";import"../../hooks/useUuid.js";import"../../uuid.js";import"../../utils/environment.js";import"../../hooks/useHover.js";import"../../hooks/usePseudoClasses.js";import"../../hooks/useIcons.js";import"../../theme/currys/color.js";import"../../theme/index.js";import"../../theme/palette.js";import"../../theme/spacers.js";import"../Icons/ArrowRight.js";import"../Button/styles.module.scss";import"../Icons/ChevronUp.js";import"../Icons/ChevronDown.js";import"../Icons/ArrowDown.js";import"../Icons/ArrowUp.js";export{Y as HeaderCategory,z as ModeType,F as ResponsiveTableVariant,$ as SortDirection,r as Table,K as TableBody,N as TableCell,Q as TableExpandedRow,W as TableExpanderCell,Z as TableHead,oo as TableHeadCell,to as TableRow,O as TextAlign,r as default,G as defaultConfig,I as simpleConfig};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/components/Tag/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import n from"react";import u from"classnames";import{AnalyticsId as g,IconSize as p}from"../../constants.js";import{useHover as I}from"../../hooks/useHover.js";import{palette as v}from"../../theme/palette.js";import{Icon as f}from"../Icons/Icon.js";import y from"../Icons/Undo.js";import b from"../Icons/X.js";import e from"./styles.module.scss";import"../../hooks/useUuid.js";import"../../uuid.js";import"../../utils/environment.js";var E=(t=>(t.medium="medium",t.large="large",t))(E||{}),X=(t=>(t.remove="remove",t.undo="undo",t))(X||{}),z=(t=>(t.normal="normal",t.oncolor="oncolor",t.emphasised="emphasised",t))(z||{});const C=t=>{const{children:s,size:m,color:r,variant:a,action:o,onClick:c,testId:i}=t,{hoverRef:l,isHovered:d}=I(),$=u(e.tag,e[`tag--${m}`],e[`tag--${o}`],e["tag--has-action"],o==="remove"&&[e[`tag--${r}`],e[`tag--${a}`]]),h=()=>{switch(o){case"remove":return b;case"undo":return y}};return n.createElement("button",{className:$,onClick:c,ref:l,type:"button","data-testid":i,"data-analyticsid":g.Tag},s,n.createElement(f,{svgIcon:h(),size:p.XXSmall,color:v[`${o==="undo"?"blueberry":r}800`],isHovered:d}))},N=t=>{const{children:s,size:m="medium",color:r="blueberry",svgIcon:a,variant:o="normal",action:c,onClick:i,testId:l}=t,d=u(e.tag,e[`tag--${m}`],e[`tag--${r}`],e[`tag--${o}`],{[e["tag--has-icon"]]:a});return c&&i?n.createElement(C,{size:m,color:r,variant:o,action:c,onClick:i,testId:l},s):n.createElement("span",{className:d,"data-testid":l,"data-analyticsid":g.Tag},a&&n.createElement(f,{svgIcon:a,size:p.XXSmall,color:v[`${r}800`],className:e.tag__icon}),s)},
|
|
1
|
+
import n from"react";import u from"classnames";import{AnalyticsId as g,IconSize as p}from"../../constants.js";import{useHover as I}from"../../hooks/useHover.js";import{palette as v}from"../../theme/palette.js";import{Icon as f}from"../Icons/Icon.js";import y from"../Icons/Undo.js";import b from"../Icons/X.js";import e from"./styles.module.scss";import"../../hooks/usePseudoClasses.js";import"../../hooks/useUuid.js";import"../../uuid.js";import"../../utils/environment.js";var E=(t=>(t.medium="medium",t.large="large",t))(E||{}),X=(t=>(t.remove="remove",t.undo="undo",t))(X||{}),z=(t=>(t.normal="normal",t.oncolor="oncolor",t.emphasised="emphasised",t))(z||{});const C=t=>{const{children:s,size:m,color:r,variant:a,action:o,onClick:c,testId:i}=t,{hoverRef:l,isHovered:d}=I(),$=u(e.tag,e[`tag--${m}`],e[`tag--${o}`],e["tag--has-action"],o==="remove"&&[e[`tag--${r}`],e[`tag--${a}`]]),h=()=>{switch(o){case"remove":return b;case"undo":return y}};return n.createElement("button",{className:$,onClick:c,ref:l,type:"button","data-testid":i,"data-analyticsid":g.Tag},s,n.createElement(f,{svgIcon:h(),size:p.XXSmall,color:v[`${o==="undo"?"blueberry":r}800`],isHovered:d}))},N=t=>{const{children:s,size:m="medium",color:r="blueberry",svgIcon:a,variant:o="normal",action:c,onClick:i,testId:l}=t,d=u(e.tag,e[`tag--${m}`],e[`tag--${r}`],e[`tag--${o}`],{[e["tag--has-icon"]]:a});return c&&i?n.createElement(C,{size:m,color:r,variant:o,action:c,onClick:i,testId:l},s):n.createElement("span",{className:d,"data-testid":l,"data-analyticsid":g.Tag},a&&n.createElement(f,{svgIcon:a,size:p.XXSmall,color:v[`${r}800`],className:e.tag__icon}),s)},D=N;export{X as TagAction,E as TagSize,z as TagVariant,D as default};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/components/Tag/Tag.tsx"],"sourcesContent":["import React from 'react';\n\nimport cn from 'classnames';\n\nimport { AnalyticsId } from '../../constants';\nimport { useHover } from '../../hooks/useHover';\nimport { palette, PaletteNames } from '../../theme/palette';\nimport Icon, { IconSize, SvgIcon } from '../Icons';\nimport Undo from '../Icons/Undo';\nimport X from '../Icons/X';\n\nimport styles from './styles.module.scss';\n\nexport enum TagSize {\n medium = 'medium',\n large = 'large',\n}\n\nexport enum TagAction {\n remove = 'remove',\n undo = 'undo',\n}\n\nexport enum TagVariant {\n normal = 'normal',\n oncolor = 'oncolor',\n emphasised = 'emphasised',\n}\n\nexport type TagColors = Extract<PaletteNames, 'blueberry' | 'neutral' | 'cherry' | 'banana' | 'kiwi' | 'plum'>;\n\ninterface TagProps {\n /** Sets the text of the tag */\n children: string;\n /** Sets the size of the tag. Default: small */\n size?: keyof typeof TagSize;\n /** Sets the background of the tag. Not used if action is \"undo\". Default: blueberry */\n color?: TagColors;\n /** Adds an icon to the tag. Not shown if action is set. */\n svgIcon?: SvgIcon;\n /* Changes the appearance of the tag. Not used if action is \"undo\". Default: normal */\n variant?: keyof typeof TagVariant;\n /* Makes the tag a clickable button that performs an action. onClick must also be set. */\n action?: keyof typeof TagAction;\n /* Called when action is set and the tag is clicked on. action must also be set. */\n onClick?: () => void;\n /** Sets the data-testid attribute on the expander button. */\n testId?: string;\n}\n\ntype ActionTagProps = Required<Pick<TagProps, 'children' | 'size' | 'color' | 'variant' | 'action' | 'onClick'>> & Pick<TagProps, 'testId'>;\n\nconst ActionTag: React.FC<ActionTagProps> = props => {\n const { children, size, color, variant, action, onClick, testId } = props;\n\n const { hoverRef, isHovered } = useHover<HTMLButtonElement>();\n\n const tagClasses = cn(\n styles.tag,\n styles[`tag--${size}`],\n styles[`tag--${action}`],\n styles['tag--has-action'],\n action === 'remove' && [styles[`tag--${color}`], styles[`tag--${variant}`]]\n );\n\n const getActionIcon = (): SvgIcon => {\n switch (action) {\n case 'remove':\n return X;\n case 'undo':\n return Undo;\n }\n };\n\n return (\n <button className={tagClasses} onClick={onClick} ref={hoverRef} type=\"button\" data-testid={testId} data-analyticsid={AnalyticsId.Tag}>\n {children}\n <Icon\n svgIcon={getActionIcon()}\n size={IconSize.XXSmall}\n color={palette[`${action === 'undo' ? 'blueberry' : color}800`]}\n isHovered={isHovered}\n />\n </button>\n );\n};\n\nconst Tag: React.FC<TagProps> = props => {\n const { children, size = TagSize.medium, color = 'blueberry', svgIcon, variant = 'normal', action, onClick, testId } = props;\n\n const tagClasses = cn(styles.tag, styles[`tag--${size}`], styles[`tag--${color}`], styles[`tag--${variant}`], {\n [styles['tag--has-icon']]: svgIcon,\n });\n\n if (action && onClick) {\n return (\n <ActionTag size={size} color={color} variant={variant} action={action} onClick={onClick} testId={testId}>\n {children}\n </ActionTag>\n );\n }\n\n return (\n <span className={tagClasses} data-testid={testId} data-analyticsid={AnalyticsId.Tag}>\n {svgIcon && <Icon svgIcon={svgIcon} size={IconSize.XXSmall} color={palette[`${color}800`]} className={styles.tag__icon} />}\n {children}\n </span>\n );\n};\n\nexport default Tag;\n"],"names":["TagSize","TagAction","TagVariant","ActionTag","props","children","size","color","variant","action","onClick","testId","hoverRef","isHovered","useHover","tagClasses","cn","styles","getActionIcon","X","Undo","React","AnalyticsId","Icon","IconSize","palette","Tag","svgIcon","Tag$1"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/components/Tag/Tag.tsx"],"sourcesContent":["import React from 'react';\n\nimport cn from 'classnames';\n\nimport { AnalyticsId } from '../../constants';\nimport { useHover } from '../../hooks/useHover';\nimport { palette, PaletteNames } from '../../theme/palette';\nimport Icon, { IconSize, SvgIcon } from '../Icons';\nimport Undo from '../Icons/Undo';\nimport X from '../Icons/X';\n\nimport styles from './styles.module.scss';\n\nexport enum TagSize {\n medium = 'medium',\n large = 'large',\n}\n\nexport enum TagAction {\n remove = 'remove',\n undo = 'undo',\n}\n\nexport enum TagVariant {\n normal = 'normal',\n oncolor = 'oncolor',\n emphasised = 'emphasised',\n}\n\nexport type TagColors = Extract<PaletteNames, 'blueberry' | 'neutral' | 'cherry' | 'banana' | 'kiwi' | 'plum'>;\n\ninterface TagProps {\n /** Sets the text of the tag */\n children: string;\n /** Sets the size of the tag. Default: small */\n size?: keyof typeof TagSize;\n /** Sets the background of the tag. Not used if action is \"undo\". Default: blueberry */\n color?: TagColors;\n /** Adds an icon to the tag. Not shown if action is set. */\n svgIcon?: SvgIcon;\n /* Changes the appearance of the tag. Not used if action is \"undo\". Default: normal */\n variant?: keyof typeof TagVariant;\n /* Makes the tag a clickable button that performs an action. onClick must also be set. */\n action?: keyof typeof TagAction;\n /* Called when action is set and the tag is clicked on. action must also be set. */\n onClick?: () => void;\n /** Sets the data-testid attribute on the expander button. */\n testId?: string;\n}\n\ntype ActionTagProps = Required<Pick<TagProps, 'children' | 'size' | 'color' | 'variant' | 'action' | 'onClick'>> & Pick<TagProps, 'testId'>;\n\nconst ActionTag: React.FC<ActionTagProps> = props => {\n const { children, size, color, variant, action, onClick, testId } = props;\n\n const { hoverRef, isHovered } = useHover<HTMLButtonElement>();\n\n const tagClasses = cn(\n styles.tag,\n styles[`tag--${size}`],\n styles[`tag--${action}`],\n styles['tag--has-action'],\n action === 'remove' && [styles[`tag--${color}`], styles[`tag--${variant}`]]\n );\n\n const getActionIcon = (): SvgIcon => {\n switch (action) {\n case 'remove':\n return X;\n case 'undo':\n return Undo;\n }\n };\n\n return (\n <button className={tagClasses} onClick={onClick} ref={hoverRef} type=\"button\" data-testid={testId} data-analyticsid={AnalyticsId.Tag}>\n {children}\n <Icon\n svgIcon={getActionIcon()}\n size={IconSize.XXSmall}\n color={palette[`${action === 'undo' ? 'blueberry' : color}800`]}\n isHovered={isHovered}\n />\n </button>\n );\n};\n\nconst Tag: React.FC<TagProps> = props => {\n const { children, size = TagSize.medium, color = 'blueberry', svgIcon, variant = 'normal', action, onClick, testId } = props;\n\n const tagClasses = cn(styles.tag, styles[`tag--${size}`], styles[`tag--${color}`], styles[`tag--${variant}`], {\n [styles['tag--has-icon']]: svgIcon,\n });\n\n if (action && onClick) {\n return (\n <ActionTag size={size} color={color} variant={variant} action={action} onClick={onClick} testId={testId}>\n {children}\n </ActionTag>\n );\n }\n\n return (\n <span className={tagClasses} data-testid={testId} data-analyticsid={AnalyticsId.Tag}>\n {svgIcon && <Icon svgIcon={svgIcon} size={IconSize.XXSmall} color={palette[`${color}800`]} className={styles.tag__icon} />}\n {children}\n </span>\n );\n};\n\nexport default Tag;\n"],"names":["TagSize","TagAction","TagVariant","ActionTag","props","children","size","color","variant","action","onClick","testId","hoverRef","isHovered","useHover","tagClasses","cn","styles","getActionIcon","X","Undo","React","AnalyticsId","Icon","IconSize","palette","Tag","svgIcon","Tag$1"],"mappings":"2dAaY,IAAAA,GAAAA,IACVA,EAAA,OAAS,SACTA,EAAA,MAAQ,QAFEA,IAAAA,GAAA,CAAA,CAAA,EAKAC,GAAAA,IACVA,EAAA,OAAS,SACTA,EAAA,KAAO,OAFGA,IAAAA,GAAA,CAAA,CAAA,EAKAC,GAAAA,IACVA,EAAA,OAAS,SACTA,EAAA,QAAU,UACVA,EAAA,WAAa,aAHHA,IAAAA,GAAA,CAAA,CAAA,EA6BZ,MAAMC,EAA+CC,GAAA,CAC7C,KAAA,CAAE,SAAAC,EAAU,KAAAC,EAAM,MAAAC,EAAO,QAAAC,EAAS,OAAAC,EAAQ,QAAAC,EAAS,OAAAC,CAAW,EAAAP,EAE9D,CAAE,SAAAQ,EAAU,UAAAC,CAAU,EAAIC,EAA4B,EAEtDC,EAAaC,EACjBC,EAAO,IACPA,EAAO,QAAQX,CAAI,EAAE,EACrBW,EAAO,QAAQR,CAAM,EAAE,EACvBQ,EAAO,iBAAiB,EACxBR,IAAW,UAAY,CAACQ,EAAO,QAAQV,CAAK,EAAE,EAAGU,EAAO,QAAQT,CAAO,EAAE,CAAC,CAAA,EAGtEU,EAAgB,IAAe,CACnC,OAAQT,EAAQ,CACd,IAAK,SACI,OAAAU,EACT,IAAK,OACI,OAAAC,CACX,CAAA,EAGF,OACGC,EAAA,cAAA,SAAA,CAAO,UAAWN,EAAY,QAAAL,EAAkB,IAAKE,EAAU,KAAK,SAAS,cAAaD,EAAQ,mBAAkBW,EAAY,KAC9HjB,EACDgB,EAAA,cAACE,EAAA,CACC,QAASL,EAAc,EACvB,KAAMM,EAAS,QACf,MAAOC,EAAQ,GAAGhB,IAAW,OAAS,YAAcF,CAAK,KAAK,EAC9D,UAAAM,CAAA,CAAA,CAEJ,CAEJ,EAEMa,EAAmCtB,GAAA,CACvC,KAAM,CAAE,SAAAC,EAAU,KAAAC,EAAO,SAAgB,MAAAC,EAAQ,YAAa,QAAAoB,EAAS,QAAAnB,EAAU,SAAU,OAAAC,EAAQ,QAAAC,EAAS,OAAAC,CAAA,EAAWP,EAEjHW,EAAaC,EAAGC,EAAO,IAAKA,EAAO,QAAQX,CAAI,EAAE,EAAGW,EAAO,QAAQV,CAAK,EAAE,EAAGU,EAAO,QAAQT,CAAO,EAAE,EAAG,CAC5G,CAACS,EAAO,eAAe,CAAC,EAAGU,CAAA,CAC5B,EAED,OAAIlB,GAAUC,EAEVW,EAAA,cAAClB,GAAU,KAAAG,EAAY,MAAAC,EAAc,QAAAC,EAAkB,OAAAC,EAAgB,QAAAC,EAAkB,OAAAC,GACtFN,CACH,EAKFgB,EAAA,cAAC,OAAK,CAAA,UAAWN,EAAY,cAAaJ,EAAQ,mBAAkBW,EAAY,GAAA,EAC7EK,GAAWN,EAAA,cAACE,EAAK,CAAA,QAAAI,EAAkB,KAAMH,EAAS,QAAS,MAAOC,EAAQ,GAAGlB,CAAK,KAAK,EAAG,UAAWU,EAAO,SAAW,CAAA,EACvHZ,CACH,CAEJ,EAEAuB,EAAeF"}
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { TitleTags } from './../Title/Title';
|
|
3
|
-
|
|
4
|
-
export type TileTags = 'button' | 'a';
|
|
5
|
-
interface TileProps extends HTMLAnchorProps {
|
|
3
|
+
interface TileProps extends Pick<React.AnchorHTMLAttributes<HTMLAnchorElement>, 'href' | 'target' | 'onClick' | 'rel'> {
|
|
6
4
|
/** Adds custom classes to the element. */
|
|
7
5
|
className?: string;
|
|
8
6
|
/** Sets the icon to be displayed inside the tile. */
|
|
@@ -15,10 +13,6 @@ interface TileProps extends HTMLAnchorProps {
|
|
|
15
13
|
description?: string;
|
|
16
14
|
/** Sets a fixed max and min width for the tile. */
|
|
17
15
|
fixed?: boolean;
|
|
18
|
-
/** Called when the tile is clicked on. */
|
|
19
|
-
onClick?: (e?: React.MouseEvent<HTMLElement, MouseEvent>) => void;
|
|
20
|
-
/** HTML markup for tile. Default: a */
|
|
21
|
-
htmlMarkup?: TileTags;
|
|
22
16
|
/** Sets the data-testid attribute. */
|
|
23
17
|
testId?: string;
|
|
24
18
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tile.d.ts","sourceRoot":"","sources":["../../../src/components/Tile/Tile.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"Tile.d.ts","sourceRoot":"","sources":["../../../src/components/Tile/Tile.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAQ7C,UAAU,SAAU,SAAQ,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,KAAK,CAAC;IACpH,0CAA0C;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qDAAqD;IACrD,IAAI,EAAE,KAAK,CAAC,YAAY,CAAC;IACzB,sDAAsD;IACtD,KAAK,EAAE,KAAK,CAAC,YAAY,CAAC;IAC1B,iDAAiD;IACjD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,4DAA4D;IAC5D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mDAAmD;IACnD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,sCAAsC;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,cAAc;IACtB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,YAAa,SAAQ,KAAK,CAAC,yBAAyB,CAAC,SAAS,GAAG,KAAK,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC;IACvH,KAAK,EAAE,KAAK,CAAC,yBAAyB,CAAC,cAAc,GAAG,KAAK,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC,CAAC;CAClG;AAuBD,eAAO,MAAM,IAAI,cAmCC,CAAC;AAKnB,eAAe,IAAI,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"props":{"className":{"defaultValue":null,"description":"Adds custom classes to the element.","name":"className","parent":{"fileName":"src/components/Tile/Tile.tsx","name":"TileProps"},"declarations":[{"fileName":"src/components/Tile/Tile.tsx","name":"TileProps"}],"required":false,"type":{"name":"string"}},"icon":{"defaultValue":null,"description":"Sets the icon to be displayed inside the tile.","name":"icon","parent":{"fileName":"src/components/Tile/Tile.tsx","name":"TileProps"},"declarations":[{"fileName":"src/components/Tile/Tile.tsx","name":"TileProps"}],"required":true,"type":{"name":"ReactElement<any, string | JSXElementConstructor<any>>"}},"title":{"defaultValue":null,"description":"Sets the title to be displayed inside the tile.","name":"title","parent":{"fileName":"src/components/Tile/Tile.tsx","name":"TileProps"},"declarations":[{"fileName":"src/components/Tile/Tile.tsx","name":"TileProps"}],"required":true,"type":{"name":"ReactElement<any, string | JSXElementConstructor<any>>"}},"highlighted":{"defaultValue":null,"description":"Toggles the highlighted style of the tile.","name":"highlighted","parent":{"fileName":"src/components/Tile/Tile.tsx","name":"TileProps"},"declarations":[{"fileName":"src/components/Tile/Tile.tsx","name":"TileProps"}],"required":false,"type":{"name":"boolean"}},"description":{"defaultValue":null,"description":"Sets the description to be displayed inside the tile.","name":"description","parent":{"fileName":"src/components/Tile/Tile.tsx","name":"TileProps"},"declarations":[{"fileName":"src/components/Tile/Tile.tsx","name":"TileProps"}],"required":false,"type":{"name":"string"}},"fixed":{"defaultValue":null,"description":"Sets a fixed max and min width for the tile.","name":"fixed","parent":{"fileName":"src/components/Tile/Tile.tsx","name":"TileProps"},"declarations":[{"fileName":"src/components/Tile/Tile.tsx","name":"TileProps"}],"required":false,"type":{"name":"boolean"}},"
|
|
1
|
+
{"props":{"className":{"defaultValue":null,"description":"Adds custom classes to the element.","name":"className","parent":{"fileName":"src/components/Tile/Tile.tsx","name":"TileProps"},"declarations":[{"fileName":"src/components/Tile/Tile.tsx","name":"TileProps"}],"required":false,"type":{"name":"string"}},"icon":{"defaultValue":null,"description":"Sets the icon to be displayed inside the tile.","name":"icon","parent":{"fileName":"src/components/Tile/Tile.tsx","name":"TileProps"},"declarations":[{"fileName":"src/components/Tile/Tile.tsx","name":"TileProps"}],"required":true,"type":{"name":"ReactElement<any, string | JSXElementConstructor<any>>"}},"title":{"defaultValue":null,"description":"Sets the title to be displayed inside the tile.","name":"title","parent":{"fileName":"src/components/Tile/Tile.tsx","name":"TileProps"},"declarations":[{"fileName":"src/components/Tile/Tile.tsx","name":"TileProps"}],"required":true,"type":{"name":"ReactElement<any, string | JSXElementConstructor<any>>"}},"highlighted":{"defaultValue":null,"description":"Toggles the highlighted style of the tile.","name":"highlighted","parent":{"fileName":"src/components/Tile/Tile.tsx","name":"TileProps"},"declarations":[{"fileName":"src/components/Tile/Tile.tsx","name":"TileProps"}],"required":false,"type":{"name":"boolean"}},"description":{"defaultValue":null,"description":"Sets the description to be displayed inside the tile.","name":"description","parent":{"fileName":"src/components/Tile/Tile.tsx","name":"TileProps"},"declarations":[{"fileName":"src/components/Tile/Tile.tsx","name":"TileProps"}],"required":false,"type":{"name":"string"}},"fixed":{"defaultValue":null,"description":"Sets a fixed max and min width for the tile.","name":"fixed","parent":{"fileName":"src/components/Tile/Tile.tsx","name":"TileProps"},"declarations":[{"fileName":"src/components/Tile/Tile.tsx","name":"TileProps"}],"required":false,"type":{"name":"boolean"}},"testId":{"defaultValue":null,"description":"Sets the data-testid attribute.","name":"testId","parent":{"fileName":"src/components/Tile/Tile.tsx","name":"TileProps"},"declarations":[{"fileName":"src/components/Tile/Tile.tsx","name":"TileProps"}],"required":false,"type":{"name":"string"}},"href":{"defaultValue":null,"description":"","name":"href","parent":{"fileName":"designsystem/node_modules/@types/react/index.d.ts","name":"AnchorHTMLAttributes"},"declarations":[{"fileName":"designsystem/node_modules/@types/react/index.d.ts","name":"AnchorHTMLAttributes"}],"required":false,"type":{"name":"string"}},"target":{"defaultValue":null,"description":"","name":"target","parent":{"fileName":"designsystem/node_modules/@types/react/index.d.ts","name":"AnchorHTMLAttributes"},"declarations":[{"fileName":"designsystem/node_modules/@types/react/index.d.ts","name":"AnchorHTMLAttributes"}],"required":false,"type":{"name":"HTMLAttributeAnchorTarget"}},"onClick":{"defaultValue":null,"description":"","name":"onClick","parent":{"fileName":"designsystem/node_modules/@types/react/index.d.ts","name":"DOMAttributes"},"declarations":[{"fileName":"designsystem/node_modules/@types/react/index.d.ts","name":"DOMAttributes"}],"required":false,"type":{"name":"MouseEventHandler<HTMLAnchorElement>"}},"rel":{"defaultValue":null,"description":"","name":"rel","parent":{"fileName":"designsystem/node_modules/@types/react/index.d.ts","name":"HTMLAttributes"},"declarations":[{"fileName":"designsystem/node_modules/@types/react/index.d.ts","name":"HTMLAttributes"}],"required":false,"type":{"name":"string"}}}}
|
package/components/Tile/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import
|
|
1
|
+
import t from"react";import d from"classnames";import{AnalyticsId as C,IconSize as R}from"../../constants.js";import{useHover as k}from"../../hooks/useHover.js";import{mergeRefs as v}from"../../utils/refs.js";import"../Icons/Icon.js";import e from"./styles.module.scss";import"../../hooks/usePseudoClasses.js";import"../../hooks/useUuid.js";import"../../uuid.js";import"../../utils/environment.js";const g=t.forwardRef((r,a)=>{const{children:s,className:o,htmlMarkup:c="span",highlighted:i,compact:m}=r,l=d(e.tile__title,{[e["tile__title--highlighted"]]:i,[e["tile__title--compact"]]:m},o),n=c;return t.createElement(n,{className:l,ref:a},s)});g.displayName="Title";const f=t.forwardRef((r,a)=>{const{icon:s,title:o,className:c="",description:i,fixed:m=!1,highlighted:l=!1,testId:n,target:h,rel:N,href:T,onClick:_}=r,{hoverRef:u,isHovered:E}=k(),p=!i,w=d(e.tile,{[e["tile--fixed"]]:m,[e["tile--compact"]]:p,[e["tile--highlighted"]]:l},c),y=d(e["title-wrapper"],{[e["title-wrapper--compact"]]:p});return t.createElement("a",{ref:v([a,u]),href:T,target:h,rel:h==="_blank"?"noopener noreferrer":N,className:w,"data-testid":n,"data-analyticsid":C.Tile,onClick:_},t.createElement("div",{className:y},t.cloneElement(s,{size:R.Medium,isHovered:E,color:l?"white":"black"}),t.cloneElement(o,{highlighted:l,compact:p})),i&&t.createElement("p",{className:e.tile__description},i))});f.displayName="Tile";f.Title=g;const q=f;export{f as Tile,q as default};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/components/Tile/Tile.tsx"],"sourcesContent":["import React from 'react';\n\nimport classNames from 'classnames';\n\nimport { TitleTags } from './../Title/Title';\nimport { AnalyticsId
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/components/Tile/Tile.tsx"],"sourcesContent":["import React from 'react';\n\nimport classNames from 'classnames';\n\nimport { TitleTags } from './../Title/Title';\nimport { AnalyticsId } from '../../constants';\nimport { useHover } from '../../hooks/useHover';\nimport { mergeRefs } from '../../utils/refs';\nimport { IconSize } from '../Icons';\n\nimport tileStyles from './styles.module.scss';\n\ninterface TileProps extends Pick<React.AnchorHTMLAttributes<HTMLAnchorElement>, 'href' | 'target' | 'onClick' | 'rel'> {\n /** Adds custom classes to the element. */\n className?: string;\n /**\tSets the icon to be displayed inside the tile. */\n icon: React.ReactElement;\n /**\tSets the title to be displayed inside the tile. */\n title: React.ReactElement;\n /** Toggles the highlighted style of the tile. */\n highlighted?: boolean;\n /** Sets the description to be displayed inside the tile. */\n description?: string;\n /** Sets a fixed max and min width for the tile. */\n fixed?: boolean;\n /** Sets the data-testid attribute. */\n testId?: string;\n}\n\ninterface TileTitleProps {\n children: React.ReactNode;\n className?: string;\n htmlMarkup?: TitleTags;\n highlighted?: boolean;\n compact?: boolean;\n}\n\nexport interface TileCompound extends React.ForwardRefExoticComponent<TileProps & React.RefAttributes<HTMLAnchorElement>> {\n Title: React.ForwardRefExoticComponent<TileTitleProps & React.RefAttributes<HTMLHeadingElement>>;\n}\n\nconst Title = React.forwardRef<HTMLHeadingElement, TileTitleProps>((props, ref) => {\n const { children, className, htmlMarkup = 'span', highlighted, compact } = props;\n const titleClasses = classNames(\n tileStyles['tile__title'],\n {\n [tileStyles['tile__title--highlighted']]: highlighted,\n [tileStyles['tile__title--compact']]: compact,\n },\n className\n );\n const CustomTag = htmlMarkup;\n\n return (\n <CustomTag className={titleClasses} ref={ref}>\n {children}\n </CustomTag>\n );\n});\n\nTitle.displayName = 'Title';\n\nexport const Tile = React.forwardRef<HTMLAnchorElement, TileProps>((props, ref) => {\n const { icon, title, className = '', description, fixed = false, highlighted = false, testId, target, rel, href, onClick } = props;\n const { hoverRef, isHovered } = useHover<HTMLAnchorElement>();\n const compact = !description;\n const tileClasses = classNames(\n tileStyles.tile,\n {\n [tileStyles['tile--fixed']]: fixed,\n [tileStyles['tile--compact']]: compact,\n [tileStyles['tile--highlighted']]: highlighted,\n },\n className\n );\n const tileTitleWrapperClasses = classNames(tileStyles['title-wrapper'], {\n [tileStyles['title-wrapper--compact']]: compact,\n });\n\n return (\n <a\n ref={mergeRefs([ref, hoverRef])}\n href={href}\n target={target}\n rel={target === '_blank' ? 'noopener noreferrer' : rel}\n className={tileClasses}\n data-testid={testId}\n data-analyticsid={AnalyticsId.Tile}\n onClick={onClick}\n >\n <div className={tileTitleWrapperClasses}>\n {React.cloneElement(icon, { size: IconSize.Medium, isHovered, color: highlighted ? 'white' : 'black' })}\n {React.cloneElement(title, { highlighted: highlighted, compact: compact })}\n </div>\n {description && <p className={tileStyles.tile__description}>{description}</p>}\n </a>\n );\n}) as TileCompound;\n\nTile.displayName = 'Tile';\nTile.Title = Title;\n\nexport default Tile;\n"],"names":["Title","React","props","ref","children","className","htmlMarkup","highlighted","compact","titleClasses","classNames","tileStyles","CustomTag","Tile","icon","title","description","fixed","testId","target","rel","href","onClick","hoverRef","isHovered","useHover","tileClasses","tileTitleWrapperClasses","mergeRefs","AnalyticsId","IconSize","Tile$1"],"mappings":"8YAyCA,MAAMA,EAAQC,EAAM,WAA+C,CAACC,EAAOC,IAAQ,CACjF,KAAM,CAAE,SAAAC,EAAU,UAAAC,EAAW,WAAAC,EAAa,OAAQ,YAAAC,EAAa,QAAAC,CAAY,EAAAN,EACrEO,EAAeC,EACnBC,EAAW,YACX,CACE,CAACA,EAAW,0BAA0B,CAAC,EAAGJ,EAC1C,CAACI,EAAW,sBAAsB,CAAC,EAAGH,CACxC,EACAH,CAAA,EAEIO,EAAYN,EAElB,OACGL,EAAA,cAAAW,EAAA,CAAU,UAAWH,EAAc,IAAAN,GACjCC,CACH,CAEJ,CAAC,EAEDJ,EAAM,YAAc,QAEb,MAAMa,EAAOZ,EAAM,WAAyC,CAACC,EAAOC,IAAQ,CACjF,KAAM,CAAE,KAAAW,EAAM,MAAAC,EAAO,UAAAV,EAAY,GAAI,YAAAW,EAAa,MAAAC,EAAQ,GAAO,YAAAV,EAAc,GAAO,OAAAW,EAAQ,OAAAC,EAAQ,IAAAC,EAAK,KAAAC,EAAM,QAAAC,CAAY,EAAApB,EACvH,CAAE,SAAAqB,EAAU,UAAAC,CAAU,EAAIC,EAA4B,EACtDjB,EAAU,CAACQ,EACXU,EAAchB,EAClBC,EAAW,KACX,CACE,CAACA,EAAW,aAAa,CAAC,EAAGM,EAC7B,CAACN,EAAW,eAAe,CAAC,EAAGH,EAC/B,CAACG,EAAW,mBAAmB,CAAC,EAAGJ,CACrC,EACAF,CAAA,EAEIsB,EAA0BjB,EAAWC,EAAW,eAAe,EAAG,CACtE,CAACA,EAAW,wBAAwB,CAAC,EAAGH,CAAA,CACzC,EAGC,OAAAP,EAAA,cAAC,IAAA,CACC,IAAK2B,EAAU,CAACzB,EAAKoB,CAAQ,CAAC,EAC9B,KAAAF,EACA,OAAAF,EACA,IAAKA,IAAW,SAAW,sBAAwBC,EACnD,UAAWM,EACX,cAAaR,EACb,mBAAkBW,EAAY,KAC9B,QAAAP,CAAA,EAEArB,EAAA,cAAC,MAAI,CAAA,UAAW0B,CACb,EAAA1B,EAAM,aAAaa,EAAM,CAAE,KAAMgB,EAAS,OAAQ,UAAAN,EAAW,MAAOjB,EAAc,QAAU,OAAQ,CAAC,EACrGN,EAAM,aAAac,EAAO,CAAE,YAAAR,EAA0B,QAAAC,CAAkB,CAAA,CAC3E,EACCQ,GAAgBf,EAAA,cAAA,IAAA,CAAE,UAAWU,EAAW,mBAAoBK,CAAY,CAAA,CAG/E,CAAC,EAEDH,EAAK,YAAc,OACnBA,EAAK,MAAQb,EAEb,MAAA+B,EAAelB"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{T as p}from"../../Tooltip.js";import{a as
|
|
1
|
+
import{T as p}from"../../Tooltip.js";import{a as K,b as L}from"../../Tooltip.js";import"react";import"../../TooltipWord.js";import"../../constants.js";import"./TooltipWord/styles.module.scss";import"../../hooks/useDelayedState.js";import"../../hooks/useUuid.js";import"../../uuid.js";import"../../utils/environment.js";import"../../HelpBubble.js";import"classnames";import"../../AnchorLink.js";import"../../hooks/useHover.js";import"../../hooks/usePseudoClasses.js";import"../../theme/currys/color.js";import"../../theme/index.js";import"../../theme/grid.js";import"../../theme/palette.js";import"../../theme/spacers.js";import"../Icons/Icon.js";import"../Icons/ArrowUpRight.js";import"../AnchorLink/styles.module.scss";import"../../Close.js";import"../../hooks/useBreakpoint.js";import"../../utils/refs.js";import"../Icons/X.js";import"../Close/styles.module.scss";import"../../PopOver.js";import"../../hooks/useInterval.js";import"../../hooks/useIsVisible.js";import"../../hooks/useIntersectionObserver.js";import"../../hooks/useLayoutEvent.js";import"../../utils/debounce.js";import"../../hooks/useSize.js";import"../PopOver/styles.module.scss";import"../HelpBubble/styles.module.scss";export{K as Tooltip,L as TooltipOpenProvider,p as default};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import t from"react";import{longLoremText as m}from"../../utils/loremtext.js";import{b as i,T as r}from"../../Tooltip.js";import"../../TooltipWord.js";import"../../constants.js";import"../Tooltip/TooltipWord/styles.module.scss";import"../../hooks/useDelayedState.js";import"../../hooks/useUuid.js";import"../../uuid.js";import"../../utils/environment.js";import"../../HelpBubble.js";import"classnames";import"../../AnchorLink.js";import"../../hooks/useHover.js";import"../../theme/currys/color.js";import"../../theme/index.js";import"../../theme/grid.js";import"../../theme/palette.js";import"../../theme/spacers.js";import"../Icons/Icon.js";import"../Icons/ArrowUpRight.js";import"../AnchorLink/styles.module.scss";import"../../Close.js";import"../../hooks/useBreakpoint.js";import"../../utils/refs.js";import"../Icons/X.js";import"../Close/styles.module.scss";import"../../PopOver.js";import"../../hooks/useInterval.js";import"../../hooks/useIsVisible.js";import"../../hooks/useIntersectionObserver.js";import"../../hooks/useLayoutEvent.js";import"../../utils/debounce.js";import"../../hooks/useSize.js";import"../PopOver/styles.module.scss";import"../HelpBubble/styles.module.scss";const e=o=>t.createElement(i,null,t.createElement(t.Fragment,null,t.createElement(r,{...o},"Et tooltip her.")," "+m,t.createElement("button",null,"Knapp"),"Dette er ",t.createElement(r,{...o},o.children)," som skal ha nærmere forklaring.",m,t.createElement(r,{...o},"Enda et tooltip her."))),
|
|
1
|
+
import t from"react";import{longLoremText as m}from"../../utils/loremtext.js";import{b as i,T as r}from"../../Tooltip.js";import"../../TooltipWord.js";import"../../constants.js";import"../Tooltip/TooltipWord/styles.module.scss";import"../../hooks/useDelayedState.js";import"../../hooks/useUuid.js";import"../../uuid.js";import"../../utils/environment.js";import"../../HelpBubble.js";import"classnames";import"../../AnchorLink.js";import"../../hooks/useHover.js";import"../../hooks/usePseudoClasses.js";import"../../theme/currys/color.js";import"../../theme/index.js";import"../../theme/grid.js";import"../../theme/palette.js";import"../../theme/spacers.js";import"../Icons/Icon.js";import"../Icons/ArrowUpRight.js";import"../AnchorLink/styles.module.scss";import"../../Close.js";import"../../hooks/useBreakpoint.js";import"../../utils/refs.js";import"../Icons/X.js";import"../Close/styles.module.scss";import"../../PopOver.js";import"../../hooks/useInterval.js";import"../../hooks/useIsVisible.js";import"../../hooks/useIntersectionObserver.js";import"../../hooks/useLayoutEvent.js";import"../../utils/debounce.js";import"../../hooks/useSize.js";import"../PopOver/styles.module.scss";import"../HelpBubble/styles.module.scss";const e=o=>t.createElement(i,null,t.createElement(t.Fragment,null,t.createElement(r,{...o},"Et tooltip her.")," "+m,t.createElement("button",null,"Knapp"),"Dette er ",t.createElement(r,{...o},o.children)," som skal ha nærmere forklaring.",m,t.createElement(r,{...o},"Enda et tooltip her."))),M=e;export{M as default};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/components/TooltipExample/TooltipExample.tsx"],"sourcesContent":["import React from 'react';\n\nimport longLoremText from '../../utils/loremtext';\nimport Tooltip, { TooltipProps, TooltipOpenProvider } from '../Tooltip';\n\nconst TooltipExample: React.FC<TooltipProps> = props => {\n return (\n <TooltipOpenProvider>\n <>\n <Tooltip {...props}>{'Et tooltip her.'}</Tooltip>\n {' ' + longLoremText}\n <button>{'Knapp'}</button>\n {'Dette er '}\n <Tooltip {...props}>{props.children}</Tooltip>\n {' som skal ha nærmere forklaring.'}\n {longLoremText}\n <Tooltip {...props}>{'Enda et tooltip her.'}</Tooltip>\n </>\n </TooltipOpenProvider>\n );\n};\n\nexport default TooltipExample;\n"],"names":["TooltipExample","props","React","TooltipOpenProvider","Tooltip","longLoremText","TooltipExample$1"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/components/TooltipExample/TooltipExample.tsx"],"sourcesContent":["import React from 'react';\n\nimport longLoremText from '../../utils/loremtext';\nimport Tooltip, { TooltipProps, TooltipOpenProvider } from '../Tooltip';\n\nconst TooltipExample: React.FC<TooltipProps> = props => {\n return (\n <TooltipOpenProvider>\n <>\n <Tooltip {...props}>{'Et tooltip her.'}</Tooltip>\n {' ' + longLoremText}\n <button>{'Knapp'}</button>\n {'Dette er '}\n <Tooltip {...props}>{props.children}</Tooltip>\n {' som skal ha nærmere forklaring.'}\n {longLoremText}\n <Tooltip {...props}>{'Enda et tooltip her.'}</Tooltip>\n </>\n </TooltipOpenProvider>\n );\n};\n\nexport default TooltipExample;\n"],"names":["TooltipExample","props","React","TooltipOpenProvider","Tooltip","longLoremText","TooltipExample$1"],"mappings":"ysCAKA,MAAMA,EAAkDC,GAEnDC,EAAA,cAAAC,EAAA,KAEGD,EAAA,cAAAA,EAAA,SAAA,KAAAA,EAAA,cAACE,EAAS,CAAA,GAAGH,GAAQ,iBAAkB,EACtC,IAAMI,EACPH,EAAA,cAAC,cAAQ,OAAQ,EAChB,YACDA,EAAA,cAACE,EAAS,CAAA,GAAGH,CAAQ,EAAAA,EAAM,QAAS,EACnC,mCACAI,EACDH,EAAA,cAACE,EAAS,CAAA,GAAGH,CAAQ,EAAA,sBAAuB,CAC9C,CACF,EAIJK,EAAeN"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
export type TriggerTags = 'button' | 'span';
|
|
2
3
|
export type TriggerVariant = 'help';
|
|
3
4
|
export type TriggerSize = 'medium' | 'large';
|
|
4
5
|
export type TriggerMode = 'onlight' | 'ondark';
|
|
@@ -27,6 +28,14 @@ export interface TriggerProps extends Pick<React.InputHTMLAttributes<HTMLButtonE
|
|
|
27
28
|
* Indicates that the trigger is in use.
|
|
28
29
|
*/
|
|
29
30
|
selected?: boolean;
|
|
31
|
+
/**
|
|
32
|
+
* Indicates that the trigger is hovered. Used in combination with htmlMarkup=span to force visual hover state.
|
|
33
|
+
*/
|
|
34
|
+
isHovered?: boolean;
|
|
35
|
+
/**
|
|
36
|
+
* Changes the underlying element of the trigger. If set to span, the trigger will be a non-interactive icon. Default: button
|
|
37
|
+
*/
|
|
38
|
+
htmlMarkup?: TriggerTags;
|
|
30
39
|
/**
|
|
31
40
|
* Classname will be applied to the button element.
|
|
32
41
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Trigger.d.ts","sourceRoot":"","sources":["../../../src/components/Trigger/Trigger.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAc1B,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC;AAEpC,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE7C,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE/C,MAAM,WAAW,YAAa,SAAQ,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,EAAE,SAAS,GAAG,eAAe,GAAG,eAAe,CAAC;IACrI;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;OAEG;IACH,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB;;OAEG;IACH,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB;;OAEG;IACH,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AA4BD,QAAA,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"Trigger.d.ts","sourceRoot":"","sources":["../../../src/components/Trigger/Trigger.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAc1B,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE5C,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC;AAEpC,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE7C,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE/C,MAAM,WAAW,YAAa,SAAQ,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,EAAE,SAAS,GAAG,eAAe,GAAG,eAAe,CAAC;IACrI;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;OAEG;IACH,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB;;OAEG;IACH,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB;;OAEG;IACH,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,UAAU,CAAC,EAAE,WAAW,CAAC;IACzB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AA4BD,QAAA,MAAM,OAAO,wFA2DZ,CAAC;AAIF,eAAe,OAAO,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"props":{"ariaLabel":{"defaultValue":null,"description":"Sets aria-label of the trigger. ariaLabel or ariaLabelledById MUST be set!","name":"ariaLabel","parent":{"fileName":"src/components/Trigger/Trigger.tsx","name":"TriggerProps"},"declarations":[{"fileName":"src/components/Trigger/Trigger.tsx","name":"TriggerProps"}],"required":false,"type":{"name":"string"}},"ariaLabelledById":{"defaultValue":null,"description":"Sets aria-labelledby of the trigger. ariaLabel or ariaLabelledById MUST be set!","name":"ariaLabelledById","parent":{"fileName":"src/components/Trigger/Trigger.tsx","name":"TriggerProps"},"declarations":[{"fileName":"src/components/Trigger/Trigger.tsx","name":"TriggerProps"}],"required":false,"type":{"name":"string"}},"variant":{"defaultValue":{"value":"help"},"description":"Controls the icon and color. Default: help.","name":"variant","parent":{"fileName":"src/components/Trigger/Trigger.tsx","name":"TriggerProps"},"declarations":[{"fileName":"src/components/Trigger/Trigger.tsx","name":"TriggerProps"}],"required":false,"type":{"name":"enum","raw":"\"help\"","value":[{"value":"\"help\""}]}},"mode":{"defaultValue":{"value":"onlight"},"description":"Changes the design based on the background the trigger is placed on. Default: onlight.","name":"mode","parent":{"fileName":"src/components/Trigger/Trigger.tsx","name":"TriggerProps"},"declarations":[{"fileName":"src/components/Trigger/Trigger.tsx","name":"TriggerProps"}],"required":false,"type":{"name":"enum","raw":"TriggerMode","value":[{"value":"\"onlight\""},{"value":"\"ondark\""}]}},"size":{"defaultValue":{"value":"medium"},"description":"Size of the trigger. Default: medium.","name":"size","parent":{"fileName":"src/components/Trigger/Trigger.tsx","name":"TriggerProps"},"declarations":[{"fileName":"src/components/Trigger/Trigger.tsx","name":"TriggerProps"}],"required":false,"type":{"name":"enum","raw":"TriggerSize","value":[{"value":"\"medium\""},{"value":"\"large\""}]}},"selected":{"defaultValue":{"value":"false"},"description":"Indicates that the trigger is in use.","name":"selected","parent":{"fileName":"src/components/Trigger/Trigger.tsx","name":"TriggerProps"},"declarations":[{"fileName":"src/components/Trigger/Trigger.tsx","name":"TriggerProps"}],"required":false,"type":{"name":"boolean"}},"className":{"defaultValue":null,"description":"Classname will be applied to the button element.","name":"className","parent":{"fileName":"src/components/Trigger/Trigger.tsx","name":"TriggerProps"},"declarations":[{"fileName":"src/components/Trigger/Trigger.tsx","name":"TriggerProps"}],"required":false,"type":{"name":"string"}},"testId":{"defaultValue":null,"description":"Optional test id.","name":"testId","parent":{"fileName":"src/components/Trigger/Trigger.tsx","name":"TriggerProps"},"declarations":[{"fileName":"src/components/Trigger/Trigger.tsx","name":"TriggerProps"}],"required":false,"type":{"name":"string"}},"onClick":{"defaultValue":null,"description":"","name":"onClick","parent":{"fileName":"designsystem/node_modules/@types/react/index.d.ts","name":"DOMAttributes"},"declarations":[{"fileName":"designsystem/node_modules/@types/react/index.d.ts","name":"DOMAttributes"}],"required":false,"type":{"name":"MouseEventHandler<HTMLButtonElement>"}},"aria-haspopup":{"defaultValue":null,"description":"Indicates the availability and type of interactive popup element, such as menu or dialog, that can be triggered by an element.","name":"aria-haspopup","parent":{"fileName":"designsystem/node_modules/@types/react/index.d.ts","name":"AriaAttributes"},"declarations":[{"fileName":"designsystem/node_modules/@types/react/index.d.ts","name":"AriaAttributes"}],"required":false,"type":{"name":"boolean | \"false\" | \"true\" | \"menu\" | \"listbox\" | \"tree\" | \"grid\" | \"dialog\""}},"aria-controls":{"defaultValue":null,"description":"Identifies the element (or elements) whose contents or presence are controlled by the current element.\n@see aria-owns.","name":"aria-controls","parent":{"fileName":"designsystem/node_modules/@types/react/index.d.ts","name":"AriaAttributes"},"declarations":[{"fileName":"designsystem/node_modules/@types/react/index.d.ts","name":"AriaAttributes"}],"required":false,"type":{"name":"string"}}}}
|
|
1
|
+
{"props":{"ariaLabel":{"defaultValue":null,"description":"Sets aria-label of the trigger. ariaLabel or ariaLabelledById MUST be set!","name":"ariaLabel","parent":{"fileName":"src/components/Trigger/Trigger.tsx","name":"TriggerProps"},"declarations":[{"fileName":"src/components/Trigger/Trigger.tsx","name":"TriggerProps"}],"required":false,"type":{"name":"string"}},"ariaLabelledById":{"defaultValue":null,"description":"Sets aria-labelledby of the trigger. ariaLabel or ariaLabelledById MUST be set!","name":"ariaLabelledById","parent":{"fileName":"src/components/Trigger/Trigger.tsx","name":"TriggerProps"},"declarations":[{"fileName":"src/components/Trigger/Trigger.tsx","name":"TriggerProps"}],"required":false,"type":{"name":"string"}},"variant":{"defaultValue":{"value":"help"},"description":"Controls the icon and color. Default: help.","name":"variant","parent":{"fileName":"src/components/Trigger/Trigger.tsx","name":"TriggerProps"},"declarations":[{"fileName":"src/components/Trigger/Trigger.tsx","name":"TriggerProps"}],"required":false,"type":{"name":"enum","raw":"\"help\"","value":[{"value":"\"help\""}]}},"mode":{"defaultValue":{"value":"onlight"},"description":"Changes the design based on the background the trigger is placed on. Default: onlight.","name":"mode","parent":{"fileName":"src/components/Trigger/Trigger.tsx","name":"TriggerProps"},"declarations":[{"fileName":"src/components/Trigger/Trigger.tsx","name":"TriggerProps"}],"required":false,"type":{"name":"enum","raw":"TriggerMode","value":[{"value":"\"onlight\""},{"value":"\"ondark\""}]}},"size":{"defaultValue":{"value":"medium"},"description":"Size of the trigger. Default: medium.","name":"size","parent":{"fileName":"src/components/Trigger/Trigger.tsx","name":"TriggerProps"},"declarations":[{"fileName":"src/components/Trigger/Trigger.tsx","name":"TriggerProps"}],"required":false,"type":{"name":"enum","raw":"TriggerSize","value":[{"value":"\"medium\""},{"value":"\"large\""}]}},"selected":{"defaultValue":{"value":"false"},"description":"Indicates that the trigger is in use.","name":"selected","parent":{"fileName":"src/components/Trigger/Trigger.tsx","name":"TriggerProps"},"declarations":[{"fileName":"src/components/Trigger/Trigger.tsx","name":"TriggerProps"}],"required":false,"type":{"name":"boolean"}},"isHovered":{"defaultValue":null,"description":"Indicates that the trigger is hovered. Used in combination with htmlMarkup=span to force visual hover state.","name":"isHovered","parent":{"fileName":"src/components/Trigger/Trigger.tsx","name":"TriggerProps"},"declarations":[{"fileName":"src/components/Trigger/Trigger.tsx","name":"TriggerProps"}],"required":false,"type":{"name":"boolean"}},"htmlMarkup":{"defaultValue":{"value":"button"},"description":"Changes the underlying element of the trigger. If set to span, the trigger will be a non-interactive icon. Default: button","name":"htmlMarkup","parent":{"fileName":"src/components/Trigger/Trigger.tsx","name":"TriggerProps"},"declarations":[{"fileName":"src/components/Trigger/Trigger.tsx","name":"TriggerProps"}],"required":false,"type":{"name":"enum","raw":"TriggerTags","value":[{"value":"\"button\""},{"value":"\"span\""}]}},"className":{"defaultValue":null,"description":"Classname will be applied to the button element.","name":"className","parent":{"fileName":"src/components/Trigger/Trigger.tsx","name":"TriggerProps"},"declarations":[{"fileName":"src/components/Trigger/Trigger.tsx","name":"TriggerProps"}],"required":false,"type":{"name":"string"}},"testId":{"defaultValue":null,"description":"Optional test id.","name":"testId","parent":{"fileName":"src/components/Trigger/Trigger.tsx","name":"TriggerProps"},"declarations":[{"fileName":"src/components/Trigger/Trigger.tsx","name":"TriggerProps"}],"required":false,"type":{"name":"string"}},"onClick":{"defaultValue":null,"description":"","name":"onClick","parent":{"fileName":"designsystem/node_modules/@types/react/index.d.ts","name":"DOMAttributes"},"declarations":[{"fileName":"designsystem/node_modules/@types/react/index.d.ts","name":"DOMAttributes"}],"required":false,"type":{"name":"MouseEventHandler<HTMLButtonElement>"}},"aria-haspopup":{"defaultValue":null,"description":"Indicates the availability and type of interactive popup element, such as menu or dialog, that can be triggered by an element.","name":"aria-haspopup","parent":{"fileName":"designsystem/node_modules/@types/react/index.d.ts","name":"AriaAttributes"},"declarations":[{"fileName":"designsystem/node_modules/@types/react/index.d.ts","name":"AriaAttributes"}],"required":false,"type":{"name":"boolean | \"false\" | \"true\" | \"menu\" | \"listbox\" | \"tree\" | \"grid\" | \"dialog\""}},"aria-controls":{"defaultValue":null,"description":"Identifies the element (or elements) whose contents or presence are controlled by the current element.\n@see aria-owns.","name":"aria-controls","parent":{"fileName":"designsystem/node_modules/@types/react/index.d.ts","name":"AriaAttributes"},"declarations":[{"fileName":"designsystem/node_modules/@types/react/index.d.ts","name":"AriaAttributes"}],"required":false,"type":{"name":"string"}}}}
|