@fremtind/jokul 0.46.0 → 0.47.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. package/build/build-stats.html +1 -1
  2. package/build/cjs/components/feedback/Feedback.cjs.map +1 -1
  3. package/build/cjs/components/feedback/Feedback.d.cts +1 -1
  4. package/build/cjs/components/feedback/feedbackContext.cjs.map +1 -1
  5. package/build/cjs/components/feedback/feedbackContext.d.cts +1 -1
  6. package/build/cjs/components/feedback/questions/AddonQuestion.cjs +1 -1
  7. package/build/cjs/components/feedback/questions/AddonQuestion.cjs.map +1 -1
  8. package/build/cjs/components/feedback/questions/TextQuestion.cjs +1 -1
  9. package/build/cjs/components/feedback/questions/TextQuestion.cjs.map +1 -1
  10. package/build/cjs/components/feedback/utils.cjs +1 -1
  11. package/build/cjs/components/feedback/utils.cjs.map +1 -1
  12. package/build/cjs/components/index.cjs +1 -1
  13. package/build/cjs/components/index.d.cts +1 -0
  14. package/build/cjs/components/{text-input → text-area}/BaseTextArea.cjs +1 -1
  15. package/build/{es/components/text-input/BaseTextArea.js.map → cjs/components/text-area/BaseTextArea.cjs.map} +1 -1
  16. package/build/{es/components/text-input/TextArea.js.map → cjs/components/text-area/TextArea.cjs.map} +1 -1
  17. package/build/cjs/components/text-area/index.cjs +2 -0
  18. package/build/cjs/components/text-area/index.cjs.map +1 -0
  19. package/build/cjs/components/text-area/index.d.cts +3 -0
  20. package/build/cjs/components/text-area/types.cjs +2 -0
  21. package/build/cjs/components/text-area/types.cjs.map +1 -0
  22. package/build/cjs/components/text-area/types.d.cts +28 -0
  23. package/build/cjs/components/text-input/index.cjs +1 -1
  24. package/build/cjs/components/text-input/index.d.cts +1 -3
  25. package/build/cjs/components/text-input/types.d.cts +1 -27
  26. package/build/cjs/index.cjs +1 -1
  27. package/build/es/components/feedback/Feedback.d.ts +1 -1
  28. package/build/es/components/feedback/Feedback.js.map +1 -1
  29. package/build/es/components/feedback/feedbackContext.d.ts +1 -1
  30. package/build/es/components/feedback/feedbackContext.js.map +1 -1
  31. package/build/es/components/feedback/questions/AddonQuestion.js +1 -1
  32. package/build/es/components/feedback/questions/AddonQuestion.js.map +1 -1
  33. package/build/es/components/feedback/questions/TextQuestion.js +1 -1
  34. package/build/es/components/feedback/questions/TextQuestion.js.map +1 -1
  35. package/build/es/components/feedback/utils.js +1 -1
  36. package/build/es/components/feedback/utils.js.map +1 -1
  37. package/build/es/components/index.d.ts +1 -0
  38. package/build/es/components/index.js +1 -1
  39. package/build/es/components/{text-input → text-area}/BaseTextArea.js +1 -1
  40. package/build/es/components/text-area/BaseTextArea.js.map +1 -0
  41. package/build/es/components/text-area/TextArea.js.map +1 -0
  42. package/build/es/components/text-area/index.d.ts +3 -0
  43. package/build/es/components/text-area/index.js +2 -0
  44. package/build/es/components/text-area/index.js.map +1 -0
  45. package/build/es/components/text-area/types.d.ts +28 -0
  46. package/build/es/components/text-area/types.js +2 -0
  47. package/build/es/components/text-area/types.js.map +1 -0
  48. package/build/es/components/text-input/index.d.ts +1 -3
  49. package/build/es/components/text-input/index.js +1 -1
  50. package/build/es/components/text-input/types.d.ts +1 -27
  51. package/build/es/index.js +1 -1
  52. package/package.json +13 -2
  53. package/styles/components/button/button.css +2 -2
  54. package/styles/components/button/button.min.css +1 -1
  55. package/styles/components/checkbox/checkbox.css +4 -4
  56. package/styles/components/checkbox/checkbox.min.css +1 -1
  57. package/styles/components/checkbox-panel/checkbox-panel.css +2 -2
  58. package/styles/components/checkbox-panel/checkbox-panel.min.css +1 -1
  59. package/styles/components/countdown/countdown.css +2 -2
  60. package/styles/components/countdown/countdown.min.css +1 -1
  61. package/styles/components/feedback/feedback.css +2 -2
  62. package/styles/components/feedback/feedback.min.css +1 -1
  63. package/styles/components/input-group/input-group.css +2 -2
  64. package/styles/components/input-group/input-group.min.css +1 -1
  65. package/styles/components/loader/loader.css +6 -6
  66. package/styles/components/loader/loader.min.css +1 -1
  67. package/styles/components/loader/skeleton-loader.css +5 -5
  68. package/styles/components/loader/skeleton-loader.min.css +1 -1
  69. package/styles/components/message/message.css +2 -2
  70. package/styles/components/message/message.min.css +1 -1
  71. package/styles/components/progress-bar/progress-bar.css +1 -1
  72. package/styles/components/progress-bar/progress-bar.min.css +1 -1
  73. package/styles/components/radio-button/radio-button.css +2 -2
  74. package/styles/components/radio-button/radio-button.min.css +1 -1
  75. package/styles/components/radio-panel/radio-panel.css +2 -2
  76. package/styles/components/radio-panel/radio-panel.min.css +1 -1
  77. package/styles/components/system-message/system-message.css +2 -2
  78. package/styles/components/system-message/system-message.min.css +1 -1
  79. package/styles/components/text-area/_index.scss +5 -0
  80. package/styles/components/text-area/text-area.css +415 -0
  81. package/styles/components/text-area/text-area.min.css +1 -0
  82. package/styles/components/text-area/text-area.scss +123 -0
  83. package/styles/components/text-input/text-input.css +0 -232
  84. package/styles/components/text-input/text-input.min.css +1 -1
  85. package/styles/components/text-input/text-input.scss +3 -362
  86. package/styles/components/toast/toast.css +4 -4
  87. package/styles/components/toast/toast.min.css +1 -1
  88. package/styles/shared/input/shared-input-styles.css +106 -0
  89. package/styles/shared/input/shared-input-styles.min.css +1 -0
  90. package/styles/shared/input/shared-input-styles.scss +251 -0
  91. package/styles/styles.css +347 -270
  92. package/styles/styles.min.css +1 -1
  93. package/styles/styles.scss +1 -0
  94. package/build/cjs/components/text-input/BaseTextArea.cjs.map +0 -1
  95. package/build/cjs/components/text-input/TextArea.cjs.map +0 -1
  96. package/styles/components/text-input/development/index.css +0 -12
  97. package/styles/components/text-input/development/index.min.css +0 -1
  98. package/styles/components/text-input/development/index.scss +0 -16
  99. /package/build/cjs/components/{text-input → text-area}/BaseTextArea.d.cts +0 -0
  100. /package/build/cjs/components/{text-input → text-area}/TextArea.cjs +0 -0
  101. /package/build/cjs/components/{text-input → text-area}/TextArea.d.cts +0 -0
  102. /package/build/es/components/{text-input → text-area}/BaseTextArea.d.ts +0 -0
  103. /package/build/es/components/{text-input → text-area}/TextArea.d.ts +0 -0
  104. /package/build/es/components/{text-input → text-area}/TextArea.js +0 -0
@@ -37,6 +37,7 @@
37
37
  @use "components/table";
38
38
  @use "components/tabs";
39
39
  @use "components/tag";
40
+ @use "components/text-area";
40
41
  @use "components/text-input";
41
42
  @use "components/toast";
42
43
  @use "components/toggle-switch";
@@ -1 +0,0 @@
1
- {"version":3,"file":"BaseTextArea.cjs","sources":["../../../../src/components/text-input/BaseTextArea.tsx"],"sourcesContent":["import React, {\n ChangeEvent,\n type FocusEvent,\n forwardRef,\n type RefObject,\n useEffect,\n useRef,\n useState,\n} from \"react\";\nimport { BaseTextAreaProps } from \"./types.js\";\n\nexport const BaseTextArea = forwardRef<HTMLTextAreaElement, BaseTextAreaProps>(\n (props, ref) => {\n const {\n autoExpand,\n counter,\n onBlur,\n onFocus,\n rows = 7,\n placeholder = \" \", // This space intentionally left blank. Denne + rows trengs for å få den ekspanderende effekten.\n startOpen,\n style,\n value,\n \"aria-invalid\": ariaInvalid,\n onChange,\n ...rest\n } = props;\n\n const [counterCurrent, setCounterCurrent] = useState(() => {\n if (typeof value === \"undefined\") {\n return 0;\n } else if (typeof value === \"number\") {\n return String(value).length;\n } else {\n return value.length;\n }\n });\n const [textAreaFocused, setTextAreaFocused] = useState(false);\n const internalRef = useRef<HTMLTextAreaElement>(null);\n const textAreaRef =\n (ref as RefObject<HTMLTextAreaElement>) || internalRef;\n\n useEffect(() => {\n const textAreaElement = textAreaRef.current;\n if (textAreaElement) {\n if (!autoExpand) {\n textAreaElement.style.height = \"\";\n return;\n }\n\n if (textAreaFocused || value) {\n textAreaElement.style.height = \"auto\"; // Sett til auto før scrollhøyden leses, sånn at redusering av høyde ved sletting av tekst fungerer\n textAreaElement.style.height = `${textAreaElement.scrollHeight}px`;\n } else {\n textAreaElement.style.height = \"\";\n }\n }\n }, [autoExpand, textAreaRef, value, textAreaFocused]);\n\n function handleOnFocus(e: FocusEvent<HTMLTextAreaElement>) {\n setTextAreaFocused(true);\n if (onFocus) {\n onFocus(e);\n }\n }\n\n function handleOnBlur(e: FocusEvent<HTMLTextAreaElement>) {\n setTextAreaFocused(false);\n if (onBlur) {\n onBlur(e);\n }\n }\n\n function handleOnChange(e: ChangeEvent<HTMLTextAreaElement>) {\n setCounterCurrent(e.target.value.length);\n if (onChange) {\n onChange(e);\n }\n }\n\n const counterTotal: number = counter?.maxLength || 0;\n const progressCurrent: number = counterTotal - counterCurrent;\n function calculatePercentage(current: number, total: number): number {\n if (current <= 0) {\n return 0;\n }\n return total === 0 ? 0 : (current * 100) / total;\n }\n const counterLabel =\n counter && counterCurrent > counterTotal\n ? `Du har skrevet ${counterCurrent - counterTotal} tegn for mye`\n : undefined;\n\n const invalid = Boolean(ariaInvalid || counterLabel);\n\n const overflowStyle = {\n overflowX: autoExpand ? \"hidden\" : undefined, // Must set overflowX hidden for Firefox https://stackoverflow.com/a/22700700\n } as React.CSSProperties;\n\n return (\n <div\n className=\"jkl-text-input-wrapper\"\n data-invalid={invalid}\n data-has-content={counterCurrent > 0}\n >\n <textarea\n aria-invalid={invalid}\n className={`jkl-text-area__text-area jkl-text-area__text-area--${rows}-rows`}\n onBlur={handleOnBlur}\n onFocus={handleOnFocus}\n onChange={handleOnChange}\n ref={textAreaRef}\n style={{ ...style, ...overflowStyle }}\n placeholder={placeholder}\n value={value}\n {...rest}\n />\n {counter && (\n <div className=\"jkl-text-area__counter\" aria-hidden=\"true\">\n <div className=\"jkl-text-area__counter-count\">\n {counterCurrent}&nbsp;/&nbsp;{counterTotal}\n </div>\n {!counter.hideProgress && (\n <div\n className=\"jkl-text-area__counter-progress\"\n style={{\n [\"--progress-width\" as string]: `${calculatePercentage(\n progressCurrent,\n counterTotal,\n )}%`,\n }}\n />\n )}\n </div>\n )}\n </div>\n );\n },\n);\nBaseTextArea.displayName = \"BaseTextArea\";\n"],"names":["BaseTextArea","forwardRef","props","ref","autoExpand","counter","onBlur","onFocus","rows","placeholder","startOpen","style","value","ariaInvalid","onChange","rest","counterCurrent","setCounterCurrent","useState","String","length","textAreaFocused","setTextAreaFocused","internalRef","useRef","textAreaRef","useEffect","textAreaElement","current","height","scrollHeight","counterTotal","maxLength","progressCurrent","invalid","overflowStyle","overflowX","jsxs","className","children","jsx","e","target","hideProgress","total","displayName"],"mappings":"wIAWaA,EAAeC,EAAAA,YACxB,CAACC,EAAOC,KACE,MACFC,WAAAA,EACAC,QAAAA,EACAC,OAAAA,EACAC,QAAAA,EACAC,KAAAA,EAAO,EACPC,YAAAA,EAAc,IACdC,UAAAA,EACAC,MAAAA,EACAC,MAAAA,EACA,eAAgBC,EAChBC,SAAAA,KACGC,GACHb,GAEGc,EAAgBC,GAAqBC,YAAS,WACtCN,EAAU,IACV,EACiB,iBAAVA,EACPO,OAAOP,GAAOQ,OAEdR,EAAMQ,UAGdC,EAAiBC,GAAsBJ,YAAS,GACjDK,EAAcC,SAA4B,MAC1CC,EACDtB,GAA0CoB,EAE/CG,EAAAA,WAAU,KACN,MAAMC,EAAkBF,EAAYG,QACpC,GAAID,EAAiB,CACjB,IAAKvB,EAED,YADAuB,EAAgBhB,MAAMkB,OAAS,IAI/BR,GAAmBT,GACnBe,EAAgBhB,MAAMkB,OAAS,OAC/BF,EAAgBhB,MAAMkB,OAAS,GAAGF,EAAgBG,kBAElDH,EAAgBhB,MAAMkB,OAAS,EAEvC,IACD,CAACzB,EAAYqB,EAAab,EAAOS,IAuB9B,MAAAU,GAAuB,MAAA1B,SAAAA,EAAS2B,YAAa,EAC7CC,EAA0BF,EAAef,EAO/C,MAKMkB,KAAkBrB,KAJpBR,GAAWW,EAAiBe,EACtB,kBAAkBf,EAAiBe,sBACnC,IAIJI,EAAgB,CAClBC,UAAWhC,EAAa,cAAW,GAInC,OAAAiC,EAAAA,KAAC,MAAA,CACGC,UAAU,yBACV,eAAcJ,EACd,mBAAkBlB,EAAiB,EAEnCuB,SAAA,CAAAC,EAAAA,IAAC,WAAA,CACG,eAAcN,EACdI,UAAW,sDAAsD9B,SACjEF,OA1CZ,SAAsBmC,GAClBnB,GAAmB,GACfhB,GACAA,EAAOmC,EAEf,EAsCYlC,QAlDZ,SAAuBkC,GACnBnB,GAAmB,GACff,GACAA,EAAQkC,EAEhB,EA8CY3B,SArCZ,SAAwB2B,GACFxB,EAAAwB,EAAEC,OAAO9B,MAAMQ,QAC7BN,GACAA,EAAS2B,EAEjB,EAiCYtC,IAAKsB,EACLd,MAAO,IAAKA,KAAUwB,GACtB1B,YAAAA,EACAG,MAAAA,KACIG,IAEPV,GACIgC,EAAAA,KAAA,MAAA,CAAIC,UAAU,yBAAyB,cAAY,OAChDC,SAAA,CAACF,EAAAA,KAAA,MAAA,CAAIC,UAAU,+BACVC,SAAA,CAAAvB,EAAe,MAAce,MAEhC1B,EAAQsC,cACNH,EAAAA,IAAC,MAAA,CACGF,UAAU,kCACV3B,MAAO,CACF,oBA5CAiB,EA6CGK,EA7CcW,EA8Cdb,EA7CxBH,GAAW,GAGE,IAAVgB,EAFI,EAEyB,IAAVhB,EAAiBgB,GAwCa,aA5CnD,IAAoBhB,EAAiBgB,CAmDlC,IAMpB5C,EAAa6C,YAAc"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"TextArea.cjs","sources":["../../../../src/components/text-input/TextArea.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React, { forwardRef } from \"react\";\nimport { InputGroup } from \"../input-group/InputGroup.js\";\nimport { BaseTextArea } from \"./BaseTextArea.js\";\nimport { TextAreaProps } from \"./types.js\";\n\nexport const TextArea = forwardRef<HTMLTextAreaElement, TextAreaProps>(\n (props, ref) => {\n const {\n autoExpand,\n className,\n counter,\n density,\n errorLabel,\n helpLabel,\n inline,\n label,\n labelProps,\n startOpen,\n supportLabelProps,\n tooltip,\n ...rest\n } = props;\n const inputGroupProps = {\n label,\n density,\n errorLabel,\n helpLabel,\n labelProps,\n inline,\n supportLabelProps,\n tooltip,\n };\n const textAreaProps = { autoExpand, counter, startOpen };\n return (\n <InputGroup\n className={clsx(\"jkl-text-area\", className, {\n \"jkl-text-area--start-open\": startOpen,\n \"jkl-text-area--auto-expand\": autoExpand,\n })}\n data-testid=\"jkl-text-area\"\n {...inputGroupProps}\n >\n <BaseTextArea ref={ref} {...rest} {...textAreaProps} />\n </InputGroup>\n );\n },\n);\nTextArea.displayName = \"TextArea\";\n"],"names":["TextArea","forwardRef","props","ref","autoExpand","className","counter","density","errorLabel","helpLabel","inline","label","labelProps","startOpen","supportLabelProps","tooltip","rest","inputGroupProps","textAreaProps","jsx","InputGroup","clsx","children","BaseTextArea","displayName"],"mappings":"2PAMaA,EAAWC,EAAAA,YACpB,CAACC,EAAOC,KACE,MACFC,WAAAA,EACAC,UAAAA,EACAC,QAAAA,EACAC,QAAAA,EACAC,WAAAA,EACAC,UAAAA,EACAC,OAAAA,EACAC,MAAAA,EACAC,WAAAA,EACAC,UAAAA,EACAC,kBAAAA,EACAC,QAAAA,KACGC,GACHd,EACEe,EAAkB,CACpBN,MAAAA,EACAJ,QAAAA,EACAC,WAAAA,EACAC,UAAAA,EACAG,WAAAA,EACAF,OAAAA,EACAI,kBAAAA,EACAC,QAAAA,GAEEG,EAAgB,CAAEd,WAAAA,EAAYE,QAAAA,EAASO,UAAAA,GAEzC,OAAAM,EAAAA,IAACC,EAAAA,WAAA,CACGf,UAAWgB,EAAAA,KAAK,gBAAiBhB,EAAW,CACxC,4BAA6BQ,EAC7B,6BAA8BT,IAElC,cAAY,mBACRa,EAEJK,eAACC,eAAa,CAAApB,IAAAA,KAAca,KAAUE,KAAe,IAKrElB,EAASwB,YAAc"}
@@ -1,12 +0,0 @@
1
- .side-by-side {
2
- display: flex;
3
- justify-content: space-evenly;
4
- margin-top: 2.5rem;
5
- }
6
- .side-by-side > .jkl-text-area, .side-by-side > .jkl-text-field {
7
- margin-top: 0;
8
- max-width: 20rem;
9
- }
10
- .side-by-side > .jkl-text-area + .jkl-text-area, .side-by-side > .jkl-text-field + .jkl-text-field {
11
- margin-left: 2.5rem;
12
- }
@@ -1 +0,0 @@
1
- .side-by-side{display:flex;justify-content:space-evenly;margin-top:2.5rem}.side-by-side>.jkl-text-area,.side-by-side>.jkl-text-field{margin-top:0;max-width:20rem}.side-by-side>.jkl-text-area+.jkl-text-area,.side-by-side>.jkl-text-field+.jkl-text-field{margin-left:2.5rem}
@@ -1,16 +0,0 @@
1
- .side-by-side {
2
- display: flex;
3
- justify-content: space-evenly;
4
- margin-top: 2.5rem;
5
-
6
- & > .jkl-text-area,
7
- & > .jkl-text-field {
8
- margin-top: 0;
9
- max-width: 20rem;
10
- }
11
-
12
- & > .jkl-text-area + .jkl-text-area,
13
- & > .jkl-text-field + .jkl-text-field {
14
- margin-left: 2.5rem;
15
- }
16
- }