@fremtind/jokul 0.27.6 → 0.28.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 (93) hide show
  1. package/build/build-stats.html +1 -1
  2. package/build/cjs/components/file-input/File.cjs +2 -0
  3. package/build/cjs/components/file-input/File.cjs.map +1 -0
  4. package/build/cjs/components/file-input/File.d.cts +15 -0
  5. package/build/cjs/components/file-input/FileInput.cjs +2 -0
  6. package/build/cjs/components/file-input/FileInput.cjs.map +1 -0
  7. package/build/cjs/components/file-input/FileInput.d.cts +26 -0
  8. package/build/cjs/components/file-input/index.cjs +2 -0
  9. package/build/cjs/components/file-input/index.cjs.map +1 -0
  10. package/build/cjs/components/file-input/index.d.cts +4 -0
  11. package/build/cjs/components/file-input/internal/Dropzone.cjs +2 -0
  12. package/build/cjs/components/file-input/internal/Dropzone.cjs.map +1 -0
  13. package/build/cjs/components/file-input/internal/Dropzone.d.cts +6 -0
  14. package/build/cjs/components/file-input/internal/Input.cjs +2 -0
  15. package/build/cjs/components/file-input/internal/Input.cjs.map +1 -0
  16. package/build/cjs/components/file-input/internal/Input.d.cts +8 -0
  17. package/build/cjs/components/file-input/internal/Thumbnail.cjs +2 -0
  18. package/build/cjs/components/file-input/internal/Thumbnail.cjs.map +1 -0
  19. package/build/cjs/components/file-input/internal/Thumbnail.d.cts +11 -0
  20. package/build/cjs/components/file-input/internal/fileInputContext.cjs +2 -0
  21. package/build/cjs/components/file-input/internal/fileInputContext.cjs.map +1 -0
  22. package/build/cjs/components/file-input/internal/fileInputContext.d.cts +15 -0
  23. package/build/cjs/components/file-input/internal/validateFile.cjs +2 -0
  24. package/build/cjs/components/file-input/internal/validateFile.cjs.map +1 -0
  25. package/build/cjs/components/file-input/internal/validateFile.d.cts +2 -0
  26. package/build/cjs/components/file-input/types.cjs +2 -0
  27. package/build/cjs/components/file-input/types.cjs.map +1 -0
  28. package/build/cjs/components/file-input/types.d.cts +11 -0
  29. package/build/cjs/components/file-input/utils.cjs +2 -0
  30. package/build/cjs/components/file-input/utils.cjs.map +1 -0
  31. package/build/cjs/components/file-input/utils.d.cts +11 -0
  32. package/build/es/components/file-input/File.d.ts +15 -0
  33. package/build/es/components/file-input/File.js +2 -0
  34. package/build/es/components/file-input/File.js.map +1 -0
  35. package/build/es/components/file-input/FileInput.d.ts +26 -0
  36. package/build/es/components/file-input/FileInput.js +2 -0
  37. package/build/es/components/file-input/FileInput.js.map +1 -0
  38. package/build/es/components/file-input/index.d.ts +4 -0
  39. package/build/es/components/file-input/index.js +2 -0
  40. package/build/es/components/file-input/index.js.map +1 -0
  41. package/build/es/components/file-input/internal/Dropzone.d.ts +6 -0
  42. package/build/es/components/file-input/internal/Dropzone.js +2 -0
  43. package/build/es/components/file-input/internal/Dropzone.js.map +1 -0
  44. package/build/es/components/file-input/internal/Input.d.ts +8 -0
  45. package/build/es/components/file-input/internal/Input.js +2 -0
  46. package/build/es/components/file-input/internal/Input.js.map +1 -0
  47. package/build/es/components/file-input/internal/Thumbnail.d.ts +11 -0
  48. package/build/es/components/file-input/internal/Thumbnail.js +2 -0
  49. package/build/es/components/file-input/internal/Thumbnail.js.map +1 -0
  50. package/build/es/components/file-input/internal/fileInputContext.d.ts +15 -0
  51. package/build/es/components/file-input/internal/fileInputContext.js +2 -0
  52. package/build/es/components/file-input/internal/fileInputContext.js.map +1 -0
  53. package/build/es/components/file-input/internal/validateFile.d.ts +2 -0
  54. package/build/es/components/file-input/internal/validateFile.js +2 -0
  55. package/build/es/components/file-input/internal/validateFile.js.map +1 -0
  56. package/build/es/components/file-input/types.d.ts +11 -0
  57. package/build/es/components/file-input/types.js +2 -0
  58. package/build/es/components/file-input/types.js.map +1 -0
  59. package/build/es/components/file-input/utils.d.ts +11 -0
  60. package/build/es/components/file-input/utils.js +2 -0
  61. package/build/es/components/file-input/utils.js.map +1 -0
  62. package/package.json +12 -2
  63. package/styles/components/button/button.css +2 -2
  64. package/styles/components/button/button.min.css +1 -1
  65. package/styles/components/checkbox/checkbox.css +4 -4
  66. package/styles/components/checkbox/checkbox.min.css +1 -1
  67. package/styles/components/feedback/feedback.css +2 -2
  68. package/styles/components/feedback/feedback.min.css +1 -1
  69. package/styles/components/file-input/_file.scss +172 -0
  70. package/styles/components/file-input/_index.scss +1 -0
  71. package/styles/components/file-input/file-input.css +290 -0
  72. package/styles/components/file-input/file-input.min.css +1 -0
  73. package/styles/components/file-input/file-input.scss +119 -0
  74. package/styles/components/input-group/input-group.css +2 -2
  75. package/styles/components/input-group/input-group.min.css +1 -1
  76. package/styles/components/loader/loader.css +6 -6
  77. package/styles/components/loader/loader.min.css +1 -1
  78. package/styles/components/loader/skeleton-loader.css +5 -5
  79. package/styles/components/loader/skeleton-loader.min.css +1 -1
  80. package/styles/components/message/message.css +2 -2
  81. package/styles/components/message/message.min.css +1 -1
  82. package/styles/components/progress-bar/progress-bar.css +2 -2
  83. package/styles/components/progress-bar/progress-bar.min.css +1 -1
  84. package/styles/components/radio-button/radio-button.css +2 -2
  85. package/styles/components/radio-button/radio-button.min.css +1 -1
  86. package/styles/components/radio-panel/radio-panel.css +2 -2
  87. package/styles/components/radio-panel/radio-panel.min.css +1 -1
  88. package/styles/components/system-message/system-message.css +2 -2
  89. package/styles/components/system-message/system-message.min.css +1 -1
  90. package/styles/components/toast/toast.css +4 -4
  91. package/styles/components/toast/toast.min.css +1 -1
  92. package/styles/styles.css +35 -35
  93. package/styles/styles.min.css +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sources":["../../../../src/components/file-input/utils.ts"],"sourcesContent":["/**\n * Hjelpefunksjon for å laste opp filer med progress-bar\n *\n * @param {string} url Endepunktet som skal lastes opp til\n * @param {FormData} data FormData med filen som skal lastes opp\n * @param progress Callback som blir kalt med oppdatert progresjon\n * @param {Record<string, string>} headers Eventuelle headers som skal sendes\n * med opplasingen. Her kan du f.eks. sende med CSRF-verdier.\n * @returns {T} Svaret fra endepunktet\n */\nexport async function upload<T>(\n url: string,\n data: FormData,\n progress: (progress: number) => void,\n headers?: Record<string, string>,\n): Promise<T> {\n // I skrivende stund er det ikke mulig å hente progress med fetch. Derfor bruker vi XMLHttpRequest.\n const xhr = new XMLHttpRequest();\n const request = new Promise<ProgressEvent<XMLHttpRequestEventTarget>>(\n (resolve, reject) => {\n xhr.upload.addEventListener(\"progress\", (e) => {\n if (e.lengthComputable && progress) {\n progress((e.loaded / e.total) * 100);\n }\n });\n\n xhr.addEventListener(\"load\", (e) => {\n if (xhr.status >= 400) {\n reject(e);\n }\n resolve(e);\n });\n\n xhr.addEventListener(\"error\", (e) => {\n reject(e);\n });\n\n xhr.addEventListener(\"abort\", (e) => {\n reject(e);\n });\n\n xhr.open(\"POST\", url);\n\n Object.entries(headers || {}).forEach(([header, value]) => {\n xhr.setRequestHeader(header, value);\n });\n\n xhr.send(data);\n },\n ).then(\n (e) => {\n const response: T = JSON.parse(xhr.responseText);\n return response;\n },\n () => {\n throw new Error(xhr.statusText);\n },\n );\n\n return request;\n}\n"],"names":["async","upload","url","data","progress","headers","xhr","XMLHttpRequest","Promise","resolve","reject","addEventListener","e","lengthComputable","loaded","total","status","open","Object","entries","forEach","header","value","setRequestHeader","send","then","JSON","parse","responseText","Error","statusText"],"mappings":"AAUAA,eAAsBC,EAClBC,EACAC,EACAC,EACAC,GAGMC,MAAAA,EAAM,IAAIC,eA0CT,OAzCS,IAAIC,SAChB,CAACC,EAASC,KACNJ,EAAIL,OAAOU,iBAAiB,YAAaC,IACjCA,EAAEC,kBAAoBT,GACtBA,EAAUQ,EAAEE,OAASF,EAAEG,MAAS,IAAG,IAIvCT,EAAAK,iBAAiB,QAASC,IACtBN,EAAIU,QAAU,KACdN,EAAOE,GAEXH,EAAQG,EAAC,IAGTN,EAAAK,iBAAiB,SAAUC,IAC3BF,EAAOE,EAAC,IAGRN,EAAAK,iBAAiB,SAAUC,IAC3BF,EAAOE,EAAC,IAGRN,EAAAW,KAAK,OAAQf,GAEVgB,OAAAC,QAAQd,GAAW,CAAE,GAAEe,SAAQ,EAAEC,EAAQC,MACxChB,EAAAiB,iBAAiBF,EAAQC,EAAK,IAGtChB,EAAIkB,KAAKrB,EAAI,IAEnBsB,MACGb,GACuBc,KAAKC,MAAMrB,EAAIsB,gBAGvC,KACU,MAAA,IAAIC,MAAMvB,EAAIwB,WAAU,GAK1C"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fremtind/jokul",
3
- "version": "0.27.6",
3
+ "version": "0.28.0",
4
4
  "type": "module",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -182,6 +182,16 @@
182
182
  "types": "./build/cjs/components/feedback/index.d.cts"
183
183
  }
184
184
  },
185
+ "./components/file-input": {
186
+ "import": {
187
+ "default": "./build/es/components/file-input/index.js",
188
+ "types": "./build/es/components/file-input/index.d.ts"
189
+ },
190
+ "require": {
191
+ "default": "./build/cjs/components/file-input/index.cjs",
192
+ "types": "./build/cjs/components/file-input/index.d.cts"
193
+ }
194
+ },
185
195
  "./components/flex": {
186
196
  "import": {
187
197
  "default": "./build/es/components/flex/index.js",
@@ -511,5 +521,5 @@
511
521
  "@babel/preset-react"
512
522
  ]
513
523
  },
514
- "gitHead": "0a6c7761bf277ab4720d6b0c1189107175f56f69"
524
+ "gitHead": "3d17387263c76595c6684e761f08e3d3bd6e1bb2"
515
525
  }
@@ -136,7 +136,7 @@
136
136
  height: 1rem;
137
137
  }
138
138
  html[data-touchnavigation] .jkl-button.jkl-button--pressed::before {
139
- animation: cubic-bezier(0.6, 0.2, 0.35, 1) 250ms jkl-tertiary-flash-ut8mrj0;
139
+ animation: cubic-bezier(0.6, 0.2, 0.35, 1) 250ms jkl-tertiary-flash-u7jdowt;
140
140
  }
141
141
  :not([data-touchnavigation]) .jkl-button--primary:hover, :not([data-touchnavigation]) .jkl-button--secondary:hover, :not([data-touchnavigation]) .jkl-button--tertiary:hover {
142
142
  scale: 1.05;
@@ -180,7 +180,7 @@ html[data-touchnavigation] .jkl-button.jkl-button--pressed::before {
180
180
  --background-color: var(--jkl-color-background-interactive-hover);
181
181
  }
182
182
 
183
- @keyframes jkl-tertiary-flash-ut8mrj0 {
183
+ @keyframes jkl-tertiary-flash-u7jdowt {
184
184
  0% {
185
185
  opacity: 0.5;
186
186
  scale: 1;
@@ -1 +1 @@
1
- .jkl .jkl-button,.jkl-button[data-density=comfortable],.jkl-button[data-layout-density=comfortable],[data-density=comfortable] .jkl-button,[data-layout-density=comfortable] .jkl-button{--padding-block:0.5rem;--padding-text:1.5rem;--padding-icon:1rem;--padding-icon-button:0.5rem;--padding-tertiary-inline:0.25rem;--padding-ghost-inline:0.5rem}.jkl-button[data-density=compact],.jkl-button[data-layout-density=compact],[data-density=compact] .jkl-button,[data-layout-density=compact] .jkl-button{--padding-block:0.25rem;--padding-text:0.75rem;--padding-icon:0.5rem;--padding-icon-button:0.25rem;--padding-tertiary-inline:0.125rem;--padding-ghost-inline:0.25rem;font-size:1rem;font-weight:400;line-height:1.5rem;--jkl-icon-weight:300;--jkl-icon-size:1.25rem;--jkl-icon-opsz:20;--jkl-icon-weight:500;font-weight:700}.jkl-button{--text-color:var(--jkl-color-text-default);--background-color:transparent;--border-radius:0;--border-width:0.0625rem;background-color:var(--background-color);border:unset;color:var(--text-color);cursor:pointer;text-decoration:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;border-radius:var(--border-radius);font-size:1.125rem;font-weight:400;line-height:1.75rem;max-width:100%;overflow:hidden;padding-block:var(--padding-block);padding-inline:var(--padding-text);position:relative;transition-duration:.15s;transition-property:scale;transition-timing-function:ease;--jkl-icon-weight:300;--jkl-icon-weight:500;font-weight:700}@media (min-width:680px){.jkl-button{font-size:1.25rem;font-weight:400;line-height:2rem;--jkl-icon-weight:300;--jkl-icon-weight:500;font-weight:700}}.jkl-button:has(.jkl-icon:first-child){padding-inline-start:var(--padding-icon)}.jkl-button:has(.jkl-icon:last-child){padding-inline-end:var(--padding-icon)}.jkl-button:has(.jkl-icon:first-child):has(.jkl-icon:last-child){padding-inline:var(--padding-icon-button)}.jkl-button__label{align-items:center;display:flex;flex-direction:row;gap:.125rem;pointer-events:none;transition-duration:.25s;transition-property:translate;transition-timing-function:ease}.jkl-button__loader{left:50%;opacity:0;pointer-events:none;position:absolute;top:50%;transition-duration:.25s;transition-property:opacity,translate;transition-timing-function:ease;translate:-50% 350%}.jkl-button__text{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.jkl-button[data-loading=true] .jkl-button__label{translate:0 -120%}.jkl-button[data-loading=true] .jkl-button__loader{opacity:1;translate:-50% -50%}.jkl-button:focus-visible{outline:2px solid var(--jkl-color-border-action);outline-offset:2px}.jkl-button:before{background-color:var(--text-color);border-radius:9999px;content:"";display:block;height:1rem;left:var(--jkl-touch-xcoord,50%);opacity:0;pointer-events:none;position:absolute;top:var(--jkl-touch-ycoord,50%);transform-origin:center;translate:-100%,-100%;width:1rem}html[data-touchnavigation] .jkl-button.jkl-button--pressed:before{animation:jkl-tertiary-flash-ut8mrj0 .25s cubic-bezier(.6,.2,.35,1)}:not([data-touchnavigation]) .jkl-button--primary:hover,:not([data-touchnavigation]) .jkl-button--secondary:hover,:not([data-touchnavigation]) .jkl-button--tertiary:hover{scale:1.05;transform-origin:center}.jkl-button--primary,.jkl-button--secondary{--border-radius:999px}.jkl-button--primary{--background-color:var(--jkl-color-background-action);--text-color:var(--jkl-color-text-on-action)}.jkl-button--secondary:after{border:var(--border-width) solid var(--text-color);border-radius:var(--border-radius);content:"";inset:0;position:absolute}.jkl-button--tertiary,.jkl-button--tertiary:has(.jkl-icon:first-child),.jkl-button--tertiary:has(.jkl-icon:last-child){padding-inline:var(--padding-tertiary-inline)}.jkl-button--tertiary:after,.jkl-button--tertiary:has(.jkl-icon:first-child):after,.jkl-button--tertiary:has(.jkl-icon:last-child):after{border-bottom:var(--border-width) solid var(--text-color);border-radius:var(--border-radius);content:"";inset:0;position:absolute}.jkl-button--tertiary:focus-visible,.jkl-button--tertiary:has(.jkl-icon:first-child):focus-visible,.jkl-button--tertiary:has(.jkl-icon:first-child):hover,.jkl-button--tertiary:has(.jkl-icon:last-child):focus-visible,.jkl-button--tertiary:has(.jkl-icon:last-child):hover,.jkl-button--tertiary:hover{--border-width:0.125rem}.jkl-button--ghost,.jkl-button--ghost:has(.jkl-icon:first-child),.jkl-button--ghost:has(.jkl-icon:last-child){border-radius:.25rem;padding-inline:var(--padding-ghost-inline);transition-duration:.15s;transition-property:background-color;transition-timing-function:ease}.jkl-button--ghost:has(.jkl-icon:first-child):hover,.jkl-button--ghost:has(.jkl-icon:last-child):hover,.jkl-button--ghost:hover{--background-color:var(--jkl-color-background-interactive-hover)}@keyframes jkl-tertiary-flash-ut8mrj0{0%{opacity:.5;scale:1}to{opacity:0;scale:8}}
1
+ .jkl .jkl-button,.jkl-button[data-density=comfortable],.jkl-button[data-layout-density=comfortable],[data-density=comfortable] .jkl-button,[data-layout-density=comfortable] .jkl-button{--padding-block:0.5rem;--padding-text:1.5rem;--padding-icon:1rem;--padding-icon-button:0.5rem;--padding-tertiary-inline:0.25rem;--padding-ghost-inline:0.5rem}.jkl-button[data-density=compact],.jkl-button[data-layout-density=compact],[data-density=compact] .jkl-button,[data-layout-density=compact] .jkl-button{--padding-block:0.25rem;--padding-text:0.75rem;--padding-icon:0.5rem;--padding-icon-button:0.25rem;--padding-tertiary-inline:0.125rem;--padding-ghost-inline:0.25rem;font-size:1rem;font-weight:400;line-height:1.5rem;--jkl-icon-weight:300;--jkl-icon-size:1.25rem;--jkl-icon-opsz:20;--jkl-icon-weight:500;font-weight:700}.jkl-button{--text-color:var(--jkl-color-text-default);--background-color:transparent;--border-radius:0;--border-width:0.0625rem;background-color:var(--background-color);border:unset;color:var(--text-color);cursor:pointer;text-decoration:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;border-radius:var(--border-radius);font-size:1.125rem;font-weight:400;line-height:1.75rem;max-width:100%;overflow:hidden;padding-block:var(--padding-block);padding-inline:var(--padding-text);position:relative;transition-duration:.15s;transition-property:scale;transition-timing-function:ease;--jkl-icon-weight:300;--jkl-icon-weight:500;font-weight:700}@media (min-width:680px){.jkl-button{font-size:1.25rem;font-weight:400;line-height:2rem;--jkl-icon-weight:300;--jkl-icon-weight:500;font-weight:700}}.jkl-button:has(.jkl-icon:first-child){padding-inline-start:var(--padding-icon)}.jkl-button:has(.jkl-icon:last-child){padding-inline-end:var(--padding-icon)}.jkl-button:has(.jkl-icon:first-child):has(.jkl-icon:last-child){padding-inline:var(--padding-icon-button)}.jkl-button__label{align-items:center;display:flex;flex-direction:row;gap:.125rem;pointer-events:none;transition-duration:.25s;transition-property:translate;transition-timing-function:ease}.jkl-button__loader{left:50%;opacity:0;pointer-events:none;position:absolute;top:50%;transition-duration:.25s;transition-property:opacity,translate;transition-timing-function:ease;translate:-50% 350%}.jkl-button__text{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.jkl-button[data-loading=true] .jkl-button__label{translate:0 -120%}.jkl-button[data-loading=true] .jkl-button__loader{opacity:1;translate:-50% -50%}.jkl-button:focus-visible{outline:2px solid var(--jkl-color-border-action);outline-offset:2px}.jkl-button:before{background-color:var(--text-color);border-radius:9999px;content:"";display:block;height:1rem;left:var(--jkl-touch-xcoord,50%);opacity:0;pointer-events:none;position:absolute;top:var(--jkl-touch-ycoord,50%);transform-origin:center;translate:-100%,-100%;width:1rem}html[data-touchnavigation] .jkl-button.jkl-button--pressed:before{animation:jkl-tertiary-flash-u7jdowt .25s cubic-bezier(.6,.2,.35,1)}:not([data-touchnavigation]) .jkl-button--primary:hover,:not([data-touchnavigation]) .jkl-button--secondary:hover,:not([data-touchnavigation]) .jkl-button--tertiary:hover{scale:1.05;transform-origin:center}.jkl-button--primary,.jkl-button--secondary{--border-radius:999px}.jkl-button--primary{--background-color:var(--jkl-color-background-action);--text-color:var(--jkl-color-text-on-action)}.jkl-button--secondary:after{border:var(--border-width) solid var(--text-color);border-radius:var(--border-radius);content:"";inset:0;position:absolute}.jkl-button--tertiary,.jkl-button--tertiary:has(.jkl-icon:first-child),.jkl-button--tertiary:has(.jkl-icon:last-child){padding-inline:var(--padding-tertiary-inline)}.jkl-button--tertiary:after,.jkl-button--tertiary:has(.jkl-icon:first-child):after,.jkl-button--tertiary:has(.jkl-icon:last-child):after{border-bottom:var(--border-width) solid var(--text-color);border-radius:var(--border-radius);content:"";inset:0;position:absolute}.jkl-button--tertiary:focus-visible,.jkl-button--tertiary:has(.jkl-icon:first-child):focus-visible,.jkl-button--tertiary:has(.jkl-icon:first-child):hover,.jkl-button--tertiary:has(.jkl-icon:last-child):focus-visible,.jkl-button--tertiary:has(.jkl-icon:last-child):hover,.jkl-button--tertiary:hover{--border-width:0.125rem}.jkl-button--ghost,.jkl-button--ghost:has(.jkl-icon:first-child),.jkl-button--ghost:has(.jkl-icon:last-child){border-radius:.25rem;padding-inline:var(--padding-ghost-inline);transition-duration:.15s;transition-property:background-color;transition-timing-function:ease}.jkl-button--ghost:has(.jkl-icon:first-child):hover,.jkl-button--ghost:has(.jkl-icon:last-child):hover,.jkl-button--ghost:hover{--background-color:var(--jkl-color-background-interactive-hover)}@keyframes jkl-tertiary-flash-u7jdowt{0%{opacity:.5;scale:1}to{opacity:0;scale:8}}
@@ -32,7 +32,7 @@
32
32
  --jkl-checkbox-line-height: 1.5rem;
33
33
  }
34
34
 
35
- @keyframes jkl-checkbox-checked-uhhecsi {
35
+ @keyframes jkl-checkbox-checked-u5vfaj4 {
36
36
  0% {
37
37
  width: 0;
38
38
  height: 0;
@@ -46,7 +46,7 @@
46
46
  height: 58%;
47
47
  }
48
48
  }
49
- @keyframes jkl-checkbox-indeterminate-uhhecta {
49
+ @keyframes jkl-checkbox-indeterminate-u5vfajs {
50
50
  0% {
51
51
  width: 0;
52
52
  }
@@ -74,11 +74,11 @@
74
74
  top: -6px;
75
75
  }
76
76
  .jkl-checkbox__input:checked + .jkl-checkbox__label .jkl-checkbox__check-mark::after {
77
- animation: jkl-checkbox-checked-uhhecsi 150ms ease-in-out forwards;
77
+ animation: jkl-checkbox-checked-u5vfaj4 150ms ease-in-out forwards;
78
78
  opacity: 1;
79
79
  }
80
80
  .jkl-checkbox__input:indeterminate:not(:checked) + .jkl-checkbox__label .jkl-checkbox__indeterminate-mark::after {
81
- animation: jkl-checkbox-indeterminate-uhhecta 150ms ease-in-out forwards;
81
+ animation: jkl-checkbox-indeterminate-u5vfajs 150ms ease-in-out forwards;
82
82
  opacity: 1;
83
83
  }
84
84
  .jkl-checkbox__input:focus-visible + .jkl-checkbox__label {
@@ -1 +1 @@
1
- :root,[data-density=comfortable],[data-layout-density=comfortable]{--jkl-checkbox-font-size:var(--jkl-body-font-size);--jkl-checkbox-line-height:var(--jkl-body-line-height);--jkl-checkbox-font-weight:var(--jkl-body-font-weight);--jkl-checkbox-height:3rem;--jkl-checkbox-box-size:1.5rem;--jkl-checkbox-line-height:2rem}@media (width >= 0) and (max-width:679px){:root,[data-density=comfortable],[data-layout-density=comfortable]{--jkl-checkbox-height:2.5rem;--jkl-checkbox-box-size:1.5rem;--jkl-checkbox-line-height:1.75rem}}[data-density=compact],[data-layout-density=compact]{--jkl-checkbox-font-size:var(--jkl-small-font-size);--jkl-checkbox-line-height:var(--jkl-small-line-height);--jkl-checkbox-font-weight:var(--jkl-small-font-weight);--jkl-checkbox-height:1.75rem;--jkl-checkbox-box-size:1.125rem;--jkl-checkbox-line-height:1.5rem}@keyframes jkl-checkbox-checked-uhhecsi{0%{height:0;width:0}40%{height:0;width:18%}to{height:58%;width:18%}}@keyframes jkl-checkbox-indeterminate-uhhecta{0%{width:0}to{width:66%}}.jkl-checkbox{--box-color:var(--jkl-color-border-action);--check-color:var(--jkl-color-border-action);--text-color:var(--jkl-color-text-default);--background-color:transparent;color:var(--text-color);display:flex;flex-wrap:wrap;font-size:var(--jkl-checkbox-font-size);font-weight:var(--jkl-checkbox-font-weight);line-height:var(--jkl-checkbox-line-height);min-height:var(--jkl-checkbox-height);position:relative}.jkl-checkbox__input{opacity:0;position:absolute;top:-6px}.jkl-checkbox__input:checked+.jkl-checkbox__label .jkl-checkbox__check-mark:after{animation:jkl-checkbox-checked-uhhecsi .15s ease-in-out forwards;opacity:1}.jkl-checkbox__input:indeterminate:not(:checked)+.jkl-checkbox__label .jkl-checkbox__indeterminate-mark:after{animation:jkl-checkbox-indeterminate-uhhecta .15s ease-in-out forwards;opacity:1}.jkl-checkbox__input:focus-visible+.jkl-checkbox__label{color:var(--jkl-checkbox-focus-color)}.jkl-checkbox__input:focus-visible+.jkl-checkbox__label>.jkl-checkbox__mark{--background-color:var(--jkl-color-background-input-focus);outline:2px solid var(--jkl-color-border-action);outline-offset:2px}.jkl-checkbox__input:disabled+.jkl-checkbox__label{color:var(--jkl-checkbox-disabled-color)}.jkl-checkbox__label{cursor:pointer;display:flex;flex-shrink:0;max-width:100%;min-width:0}.jkl-checkbox__label:active .jkl-checkbox__mark,.jkl-checkbox__label:hover .jkl-checkbox__mark{outline:1px solid var(--box-color)}.jkl-checkbox__label:active{--background-color:var(--jkl-color-background-input-focus)}.jkl-checkbox__text{margin:calc((var(--jkl-checkbox-height) - var(--jkl-checkbox-line-height))*.5) 0;transition-duration:.15s;transition-property:color;transition-timing-function:ease;translate:0 .0625rem}.jkl-checkbox__mark{align-self:flex-start;background-color:var(--background-color);border:1px solid;border-color:var(--box-color);border-radius:0;box-sizing:border-box;flex-shrink:0;height:var(--jkl-checkbox-box-size);margin-block:calc((var(--jkl-checkbox-height) - var(--jkl-checkbox-box-size))*.5);margin-inline-end:var(--jkl-spacing-8);outline:none;position:relative;transition-duration:.15s;transition-property:background-color;transition-timing-function:ease;width:var(--jkl-checkbox-box-size)}@media screen and (forced-colors:active){.jkl-checkbox__mark{border:1px solid ButtonText;outline:revert}}.jkl-checkbox__check-mark:after{border-bottom:.125rem solid var(--check-color);border-left-width:.125rem;border-left:0 solid var(--check-color);border-right:.125rem solid var(--check-color);border-top-width:.125rem;border-top:0 solid var(--check-color);bottom:42%;content:"";display:block;height:58%;left:18%;opacity:0;position:absolute;transform:rotate(45deg);transform-origin:bottom left;transition-duration:.15s;transition-property:opacity,border-color;transition-timing-function:ease;width:18%}@media screen and (forced-colors:active){.jkl-checkbox__check-mark:after{border-color:ButtonText}}.jkl-checkbox__indeterminate-mark:after{--width:66%;--thickness:0.125rem;border-bottom:solid var(--thickness) var(--check-color);bottom:calc(50% - var(--thickness)/2);content:"";display:block;left:calc((100% - var(--width))/2);opacity:0;position:absolute;transition-duration:.15s;transition-property:opacity,border-color;transition-timing-function:ease;width:var(--width)}@media screen and (forced-colors:active){.jkl-checkbox__indeterminate-mark:after{border-color:ButtonText}}.jkl-checkbox--inline{display:inline-flex}.jkl-checkbox--inline:not(:last-of-type){margin-right:1.5rem}.jkl-checkbox--error{--background-color:var(--jkl-color-background-alert-error);--check-color:var(--jkl-color-text-on-alert)}
1
+ :root,[data-density=comfortable],[data-layout-density=comfortable]{--jkl-checkbox-font-size:var(--jkl-body-font-size);--jkl-checkbox-line-height:var(--jkl-body-line-height);--jkl-checkbox-font-weight:var(--jkl-body-font-weight);--jkl-checkbox-height:3rem;--jkl-checkbox-box-size:1.5rem;--jkl-checkbox-line-height:2rem}@media (width >= 0) and (max-width:679px){:root,[data-density=comfortable],[data-layout-density=comfortable]{--jkl-checkbox-height:2.5rem;--jkl-checkbox-box-size:1.5rem;--jkl-checkbox-line-height:1.75rem}}[data-density=compact],[data-layout-density=compact]{--jkl-checkbox-font-size:var(--jkl-small-font-size);--jkl-checkbox-line-height:var(--jkl-small-line-height);--jkl-checkbox-font-weight:var(--jkl-small-font-weight);--jkl-checkbox-height:1.75rem;--jkl-checkbox-box-size:1.125rem;--jkl-checkbox-line-height:1.5rem}@keyframes jkl-checkbox-checked-u5vfaj4{0%{height:0;width:0}40%{height:0;width:18%}to{height:58%;width:18%}}@keyframes jkl-checkbox-indeterminate-u5vfajs{0%{width:0}to{width:66%}}.jkl-checkbox{--box-color:var(--jkl-color-border-action);--check-color:var(--jkl-color-border-action);--text-color:var(--jkl-color-text-default);--background-color:transparent;color:var(--text-color);display:flex;flex-wrap:wrap;font-size:var(--jkl-checkbox-font-size);font-weight:var(--jkl-checkbox-font-weight);line-height:var(--jkl-checkbox-line-height);min-height:var(--jkl-checkbox-height);position:relative}.jkl-checkbox__input{opacity:0;position:absolute;top:-6px}.jkl-checkbox__input:checked+.jkl-checkbox__label .jkl-checkbox__check-mark:after{animation:jkl-checkbox-checked-u5vfaj4 .15s ease-in-out forwards;opacity:1}.jkl-checkbox__input:indeterminate:not(:checked)+.jkl-checkbox__label .jkl-checkbox__indeterminate-mark:after{animation:jkl-checkbox-indeterminate-u5vfajs .15s ease-in-out forwards;opacity:1}.jkl-checkbox__input:focus-visible+.jkl-checkbox__label{color:var(--jkl-checkbox-focus-color)}.jkl-checkbox__input:focus-visible+.jkl-checkbox__label>.jkl-checkbox__mark{--background-color:var(--jkl-color-background-input-focus);outline:2px solid var(--jkl-color-border-action);outline-offset:2px}.jkl-checkbox__input:disabled+.jkl-checkbox__label{color:var(--jkl-checkbox-disabled-color)}.jkl-checkbox__label{cursor:pointer;display:flex;flex-shrink:0;max-width:100%;min-width:0}.jkl-checkbox__label:active .jkl-checkbox__mark,.jkl-checkbox__label:hover .jkl-checkbox__mark{outline:1px solid var(--box-color)}.jkl-checkbox__label:active{--background-color:var(--jkl-color-background-input-focus)}.jkl-checkbox__text{margin:calc((var(--jkl-checkbox-height) - var(--jkl-checkbox-line-height))*.5) 0;transition-duration:.15s;transition-property:color;transition-timing-function:ease;translate:0 .0625rem}.jkl-checkbox__mark{align-self:flex-start;background-color:var(--background-color);border:1px solid;border-color:var(--box-color);border-radius:0;box-sizing:border-box;flex-shrink:0;height:var(--jkl-checkbox-box-size);margin-block:calc((var(--jkl-checkbox-height) - var(--jkl-checkbox-box-size))*.5);margin-inline-end:var(--jkl-spacing-8);outline:none;position:relative;transition-duration:.15s;transition-property:background-color;transition-timing-function:ease;width:var(--jkl-checkbox-box-size)}@media screen and (forced-colors:active){.jkl-checkbox__mark{border:1px solid ButtonText;outline:revert}}.jkl-checkbox__check-mark:after{border-bottom:.125rem solid var(--check-color);border-left-width:.125rem;border-left:0 solid var(--check-color);border-right:.125rem solid var(--check-color);border-top-width:.125rem;border-top:0 solid var(--check-color);bottom:42%;content:"";display:block;height:58%;left:18%;opacity:0;position:absolute;transform:rotate(45deg);transform-origin:bottom left;transition-duration:.15s;transition-property:opacity,border-color;transition-timing-function:ease;width:18%}@media screen and (forced-colors:active){.jkl-checkbox__check-mark:after{border-color:ButtonText}}.jkl-checkbox__indeterminate-mark:after{--width:66%;--thickness:0.125rem;border-bottom:solid var(--thickness) var(--check-color);bottom:calc(50% - var(--thickness)/2);content:"";display:block;left:calc((100% - var(--width))/2);opacity:0;position:absolute;transition-duration:.15s;transition-property:opacity,border-color;transition-timing-function:ease;width:var(--width)}@media screen and (forced-colors:active){.jkl-checkbox__indeterminate-mark:after{border-color:ButtonText}}.jkl-checkbox--inline{display:inline-flex}.jkl-checkbox--inline:not(:last-of-type){margin-right:1.5rem}.jkl-checkbox--error{--background-color:var(--jkl-color-background-alert-error);--check-color:var(--jkl-color-text-on-alert)}
@@ -2,7 +2,7 @@
2
2
  * Do not edit directly
3
3
  * Generated on Mon, 23 Sep 2024 08:51:40 GMT
4
4
  */
5
- @keyframes jkl-show-uchg0me {
5
+ @keyframes jkl-show-uv34wu9 {
6
6
  from {
7
7
  transform: translate3d(0, 0.5rem, 0);
8
8
  opacity: 0;
@@ -37,7 +37,7 @@
37
37
  }
38
38
  }
39
39
  .jkl-feedback__fade-in {
40
- animation: jkl-show-uchg0me 0.25s ease-out;
40
+ animation: jkl-show-uv34wu9 0.25s ease-out;
41
41
  }
42
42
 
43
43
  .jkl-feedback-smileys {
@@ -1 +1 @@
1
- @keyframes jkl-show-uchg0me{0%{opacity:0;transform:translate3d(0,.5rem,0)}}.jkl-feedback{max-width:34.375rem}.jkl-feedback__submit-wrapper{transition-duration:.25s;transition-property:height;transition-timing-function:ease;width:100%}.jkl-feedback__submit-wrapper--hidden{display:none}.jkl-feedback__step-counter{color:var(--jkl-color-text-subdued);font-size:1.125rem;font-weight:400;line-height:1.75rem;margin-bottom:1rem;--jkl-icon-weight:300}@media (min-width:680px){.jkl-feedback__step-counter{font-size:1.25rem;font-weight:400;line-height:2rem;--jkl-icon-weight:300}}.jkl-feedback__fade-in{animation:jkl-show-uchg0me .25s ease-out}.jkl-feedback-smileys{display:flex;flex-wrap:nowrap;gap:.75rem;justify-content:space-between;margin-top:.5rem;max-width:22.5rem;width:100%}.jkl-feedback-smiley-option{color:var(--jkl-color-text-subdued);cursor:pointer;display:inline-block;height:2.5rem;position:relative;transform:translateZ(0);transition-duration:.15s;transition-property:transform,color;transition-timing-function:ease;width:2.5rem}@media screen and (forced-colors:active){.jkl-feedback-smiley-option,.jkl-feedback-smiley-option path,.jkl-feedback-smiley-option svg{stroke:ButtonFace;fill:ButtonText}}.jkl-feedback-smiley-option:after,.jkl-feedback-smiley-option:before{border-radius:50%;content:"";opacity:0;position:absolute;transition-duration:.15s;transition-property:opacity;transition-timing-function:ease}.jkl-feedback-smiley-option:after{box-shadow:0 0 0 .125rem currentColor;inset:-.125rem -.125rem -.125rem -.125rem}.jkl-feedback-smiley-option:before{box-shadow:0 .125rem 1.875rem rgba(0,0,0,.1);inset:0}.jkl-feedback-smiley-option:hover{color:var(--jkl-color-text-default)}input:checked+.jkl-feedback-smiley-option{color:var(--jkl-color-text-default);transform:translate3d(0,-20%,0)}input:checked+.jkl-feedback-smiley-option:before{opacity:1}html:not([data-mousenavigation]):not([data-touchnavigation]) input:focus+.jkl-feedback-smiley-option:after{opacity:1}
1
+ @keyframes jkl-show-uv34wu9{0%{opacity:0;transform:translate3d(0,.5rem,0)}}.jkl-feedback{max-width:34.375rem}.jkl-feedback__submit-wrapper{transition-duration:.25s;transition-property:height;transition-timing-function:ease;width:100%}.jkl-feedback__submit-wrapper--hidden{display:none}.jkl-feedback__step-counter{color:var(--jkl-color-text-subdued);font-size:1.125rem;font-weight:400;line-height:1.75rem;margin-bottom:1rem;--jkl-icon-weight:300}@media (min-width:680px){.jkl-feedback__step-counter{font-size:1.25rem;font-weight:400;line-height:2rem;--jkl-icon-weight:300}}.jkl-feedback__fade-in{animation:jkl-show-uv34wu9 .25s ease-out}.jkl-feedback-smileys{display:flex;flex-wrap:nowrap;gap:.75rem;justify-content:space-between;margin-top:.5rem;max-width:22.5rem;width:100%}.jkl-feedback-smiley-option{color:var(--jkl-color-text-subdued);cursor:pointer;display:inline-block;height:2.5rem;position:relative;transform:translateZ(0);transition-duration:.15s;transition-property:transform,color;transition-timing-function:ease;width:2.5rem}@media screen and (forced-colors:active){.jkl-feedback-smiley-option,.jkl-feedback-smiley-option path,.jkl-feedback-smiley-option svg{stroke:ButtonFace;fill:ButtonText}}.jkl-feedback-smiley-option:after,.jkl-feedback-smiley-option:before{border-radius:50%;content:"";opacity:0;position:absolute;transition-duration:.15s;transition-property:opacity;transition-timing-function:ease}.jkl-feedback-smiley-option:after{box-shadow:0 0 0 .125rem currentColor;inset:-.125rem -.125rem -.125rem -.125rem}.jkl-feedback-smiley-option:before{box-shadow:0 .125rem 1.875rem rgba(0,0,0,.1);inset:0}.jkl-feedback-smiley-option:hover{color:var(--jkl-color-text-default)}input:checked+.jkl-feedback-smiley-option{color:var(--jkl-color-text-default);transform:translate3d(0,-20%,0)}input:checked+.jkl-feedback-smiley-option:before{opacity:1}html:not([data-mousenavigation]):not([data-touchnavigation]) input:focus+.jkl-feedback-smiley-option:after{opacity:1}
@@ -0,0 +1,172 @@
1
+ @use "../../core/jkl";
2
+ @use "../../core/jkl/colors";
3
+
4
+ .jkl-file {
5
+ --text-color: var(--jkl-color-text-default);
6
+
7
+ @include jkl.motion(
8
+ "standard",
9
+ "snappy",
10
+ background-color,
11
+ border-color,
12
+ color
13
+ );
14
+
15
+ color: var(--jkl-color-text-default);
16
+ margin: 0;
17
+ min-width: jkl.rem(240px);
18
+
19
+ display: flex;
20
+ flex-flow: nowrap row;
21
+
22
+ @include jkl.text-style("small");
23
+ @include jkl.reset-outline;
24
+
25
+ @include jkl.comfortable-density {
26
+ --jkl-file-padding: #{jkl.$spacing-24};
27
+ --jkl-file-thumbnail-size: #{jkl.rem(64px)};
28
+ --jkl-file-gap: #{jkl.$spacing-16};
29
+ --jkl-file-font-size: #{jkl.rem(20px)};
30
+ --jkl-file-line-height: #{jkl.rem(32px)};
31
+ }
32
+
33
+ @include jkl.compact-density {
34
+ --jkl-file-padding: #{jkl.$spacing-12};
35
+ --jkl-file-thumbnail-size: #{jkl.rem(44px)};
36
+ --jkl-file-gap: #{jkl.$spacing-8};
37
+ --jkl-file-font-size: #{jkl.rem(16px)};
38
+ --jkl-file-line-height: #{jkl.rem(24px)};
39
+ }
40
+
41
+ &__content {
42
+ display: flex;
43
+ flex-basis: 100%;
44
+ gap: 1em;
45
+ background-color: var(--jkl-color-background-container-high);
46
+ padding: var(--jkl-file-padding);
47
+ border-radius: jkl.rem(2px);
48
+ box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.05);
49
+ color: var(--text-color);
50
+
51
+ &--error {
52
+ background-color: var(--jkl-color-background-alert-error);
53
+ }
54
+
55
+ &--warning {
56
+ background-color: var(--jkl-color-background-alert-warning);
57
+ }
58
+
59
+ &--error,
60
+ &--warning {
61
+ --text-color: var(--jkl-color-text-on-alert);
62
+
63
+ .jkl-form-support-label {
64
+ --color: var(--jkl-color-text-on-alert);
65
+ }
66
+ }
67
+ }
68
+
69
+ &__content:not(div) {
70
+ cursor: pointer;
71
+ text-decoration: none;
72
+ color: var(--jkl-color-text-default);
73
+
74
+ &:hover ~ .jkl-file__description {
75
+ @include jkl.no-grow-bold;
76
+ }
77
+
78
+ @include jkl.keyboard-navigation {
79
+ &:focus {
80
+ outline: jkl.rem(2px) solid var(--jkl-color-border-input-focus);
81
+ }
82
+ }
83
+
84
+ @include jkl.forced-colors-mode {
85
+ outline: revert;
86
+ border: jkl.rem(2px) solid LinkText;
87
+ }
88
+ }
89
+
90
+ &__delete {
91
+ padding: 0 var(--jkl-spacing-24);
92
+ align-items: stretch;
93
+
94
+ &:hover {
95
+ background-color: var(--jkl-color-background-interactive-hover);
96
+ }
97
+ }
98
+
99
+ &__thumbnail-wrapper {
100
+ position: relative;
101
+
102
+ & > :nth-child(2) {
103
+ position: absolute;
104
+ inset: 0;
105
+ margin: auto;
106
+ width: 80%;
107
+ }
108
+ }
109
+
110
+ &__thumbnail {
111
+ width: var(--jkl-file-thumbnail-size);
112
+ height: var(--jkl-file-thumbnail-size);
113
+ flex: 0 0 var(--jkl-file-thumbnail-size);
114
+ display: flex;
115
+ justify-content: center;
116
+ align-items: center;
117
+ object-fit: contain;
118
+ opacity: 1;
119
+ border-radius: jkl.rem(4px);
120
+ color: var(--jkl-color-text-subdued);
121
+
122
+ @include jkl.motion;
123
+ transition-property: opacity;
124
+
125
+ &--selected {
126
+ opacity: 0.7;
127
+ }
128
+
129
+ &--uploading {
130
+ opacity: 0.4;
131
+ }
132
+ }
133
+
134
+ &__thumbnail:not(img) {
135
+ background: var(--jkl-color-background-container-low);
136
+ }
137
+
138
+ &__file-info {
139
+ display: flex;
140
+ flex-direction: column;
141
+ flex: 1 1 auto;
142
+ overflow-wrap: break-word;
143
+ gap: var(--jkl-spacing-8);
144
+ }
145
+
146
+ &__title {
147
+ @include jkl.text-style("heading-5");
148
+ overflow-wrap: anywhere;
149
+ }
150
+
151
+ &__name,
152
+ &__description {
153
+ font-size: var(--jkl-file-font-size);
154
+ line-height: var(--jkl-file-line-height);
155
+ }
156
+
157
+ &__name {
158
+ font-weight: #{jkl.$typography-weight-bold};
159
+ }
160
+
161
+ &__description {
162
+ display: flex;
163
+ flex-wrap: nowrap;
164
+ gap: jkl.$spacing-12;
165
+ align-items: center;
166
+ justify-content: flex-start;
167
+ }
168
+
169
+ &__support-label {
170
+ margin: 0;
171
+ }
172
+ }
@@ -0,0 +1 @@
1
+ @forward "file-input";
@@ -0,0 +1,290 @@
1
+ /**
2
+ * Do not edit directly
3
+ * Generated on Mon, 23 Sep 2024 08:51:40 GMT
4
+ */
5
+ .jkl-file {
6
+ --text-color: var(--jkl-color-text-default);
7
+ transition-timing-function: ease;
8
+ transition-duration: 100ms;
9
+ transition-property: background-color, border-color, color;
10
+ color: var(--jkl-color-text-default);
11
+ margin: 0;
12
+ min-width: 15rem;
13
+ display: flex;
14
+ flex-flow: nowrap row;
15
+ font-size: 1rem;
16
+ line-height: 1.5rem;
17
+ font-weight: 400;
18
+ --jkl-icon-weight: 300;
19
+ --jkl-icon-size: 1.25rem;
20
+ --jkl-icon-opsz: 20;
21
+ outline: 0;
22
+ border-style: none;
23
+ outline-style: none;
24
+ }
25
+ .jkl-file:active, .jkl-file:hover, .jkl-file:focus {
26
+ outline: 0;
27
+ outline-style: none;
28
+ }
29
+ @media screen and (forced-colors: active) {
30
+ .jkl-file {
31
+ outline: revert;
32
+ border-style: revert;
33
+ outline-style: revert;
34
+ }
35
+ .jkl-file:active, .jkl-file:hover, .jkl-file:focus {
36
+ outline: revert;
37
+ outline-style: revert;
38
+ }
39
+ }
40
+ .jkl .jkl-file, .jkl-file[data-layout-density=comfortable], .jkl-file[data-density=comfortable], [data-layout-density=comfortable] .jkl-file, [data-density=comfortable] .jkl-file {
41
+ --jkl-file-padding: 1.5rem;
42
+ --jkl-file-thumbnail-size: 4rem;
43
+ --jkl-file-gap: 1rem;
44
+ --jkl-file-font-size: 1.25rem;
45
+ --jkl-file-line-height: 2rem;
46
+ }
47
+ .jkl-file[data-layout-density=compact], .jkl-file[data-density=compact], [data-layout-density=compact] .jkl-file, [data-density=compact] .jkl-file {
48
+ --jkl-file-padding: 0.75rem;
49
+ --jkl-file-thumbnail-size: 2.75rem;
50
+ --jkl-file-gap: 0.5rem;
51
+ --jkl-file-font-size: 1rem;
52
+ --jkl-file-line-height: 1.5rem;
53
+ }
54
+ .jkl-file__content {
55
+ display: flex;
56
+ flex-basis: 100%;
57
+ gap: 1em;
58
+ background-color: var(--jkl-color-background-container-high);
59
+ padding: var(--jkl-file-padding);
60
+ border-radius: 0.125rem;
61
+ box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.05);
62
+ color: var(--text-color);
63
+ }
64
+ .jkl-file__content--error {
65
+ background-color: var(--jkl-color-background-alert-error);
66
+ }
67
+ .jkl-file__content--warning {
68
+ background-color: var(--jkl-color-background-alert-warning);
69
+ }
70
+ .jkl-file__content--error, .jkl-file__content--warning {
71
+ --text-color: var(--jkl-color-text-on-alert);
72
+ }
73
+ .jkl-file__content--error .jkl-form-support-label, .jkl-file__content--warning .jkl-form-support-label {
74
+ --color: var(--jkl-color-text-on-alert);
75
+ }
76
+ .jkl-file__content:not(div) {
77
+ cursor: pointer;
78
+ text-decoration: none;
79
+ color: var(--jkl-color-text-default);
80
+ }
81
+ .jkl-file__content:not(div):hover ~ .jkl-file__description {
82
+ --jkl-icon-weight: 500;
83
+ font-weight: 700;
84
+ letter-spacing: -0.014em;
85
+ }
86
+ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-file__content:not(div):focus {
87
+ outline: 0.125rem solid var(--jkl-color-border-input-focus);
88
+ }
89
+
90
+ @media screen and (forced-colors: active) {
91
+ .jkl-file__content:not(div) {
92
+ outline: revert;
93
+ border: 0.125rem solid LinkText;
94
+ }
95
+ }
96
+ .jkl-file__delete {
97
+ padding: 0 var(--jkl-spacing-24);
98
+ align-items: stretch;
99
+ }
100
+ .jkl-file__delete:hover {
101
+ background-color: var(--jkl-color-background-interactive-hover);
102
+ }
103
+ .jkl-file__thumbnail-wrapper {
104
+ position: relative;
105
+ }
106
+ .jkl-file__thumbnail-wrapper > :nth-child(2) {
107
+ position: absolute;
108
+ inset: 0;
109
+ margin: auto;
110
+ width: 80%;
111
+ }
112
+ .jkl-file__thumbnail {
113
+ width: var(--jkl-file-thumbnail-size);
114
+ height: var(--jkl-file-thumbnail-size);
115
+ flex: 0 0 var(--jkl-file-thumbnail-size);
116
+ display: flex;
117
+ justify-content: center;
118
+ align-items: center;
119
+ object-fit: contain;
120
+ opacity: 1;
121
+ border-radius: 0.25rem;
122
+ color: var(--jkl-color-text-subdued);
123
+ transition-timing-function: ease;
124
+ transition-duration: 150ms;
125
+ transition-property: opacity;
126
+ }
127
+ .jkl-file__thumbnail--selected {
128
+ opacity: 0.7;
129
+ }
130
+ .jkl-file__thumbnail--uploading {
131
+ opacity: 0.4;
132
+ }
133
+ .jkl-file__thumbnail:not(img) {
134
+ background: var(--jkl-color-background-container-low);
135
+ }
136
+ .jkl-file__file-info {
137
+ display: flex;
138
+ flex-direction: column;
139
+ flex: 1 1 auto;
140
+ overflow-wrap: break-word;
141
+ gap: var(--jkl-spacing-8);
142
+ }
143
+ .jkl-file__title {
144
+ font-size: 1rem;
145
+ line-height: 1.5rem;
146
+ font-weight: 700;
147
+ --jkl-icon-weight: 500;
148
+ --jkl-icon-size: 1.25rem;
149
+ --jkl-icon-opsz: 20;
150
+ overflow-wrap: anywhere;
151
+ }
152
+ .jkl-file__name, .jkl-file__description {
153
+ font-size: var(--jkl-file-font-size);
154
+ line-height: var(--jkl-file-line-height);
155
+ }
156
+ .jkl-file__name {
157
+ font-weight: 700;
158
+ }
159
+ .jkl-file__description {
160
+ display: flex;
161
+ flex-wrap: nowrap;
162
+ gap: 0.75rem;
163
+ align-items: center;
164
+ justify-content: flex-start;
165
+ }
166
+ .jkl-file__support-label {
167
+ margin: 0;
168
+ }
169
+
170
+ :root,
171
+ [data-layout-density=comfortable],
172
+ [data-density=comfortable] {
173
+ --jkl-file-input-drag-font-size: var(--jkl-heading-2-font-size);
174
+ --jkl-file-input-drag-line-height: var(--jkl-heading-2-line-height);
175
+ --jkl-file-input-drag-font-weight: var(--jkl-heading-2-font-weight);
176
+ --jkl-file-size-hint-font-size: var(--jkl-small-font-size);
177
+ --jkl-file-size-hint-line-height: var(--jkl-small-line-height);
178
+ --jkl-file-size-hint-font-weight: var(--jkl-small-font-weight);
179
+ --jkl-file-input-dropzone-padding: 1.5rem;
180
+ --jkl-file-input-dropzone-gap: 1.5rem;
181
+ --jkl-file-cta-gap: 1.5rem;
182
+ --jkl-file-cta-with-files-gap: 0.75rem;
183
+ --jkl-file-list-gap: 1rem;
184
+ }
185
+
186
+ [data-layout-density=compact],
187
+ [data-density=compact] {
188
+ --jkl-file-input-drag-font-size: var(--jkl-body-font-size);
189
+ --jkl-file-input-drag-line-height: var(--jkl-body-line-height);
190
+ --jkl-file-input-drag-font-weight: var(--jkl-body-font-weight);
191
+ --jkl-file-input-dropzone-padding: 1rem;
192
+ --jkl-file-input-dropzone-gap: 1rem;
193
+ --jkl-file-cta-gap: 0.75rem;
194
+ --jkl-file-cta-with-files-gap: 0.25rem;
195
+ --jkl-file-list-gap: 0.5rem;
196
+ }
197
+
198
+ .jkl-file-input__dropzone {
199
+ --border-color: var(--jkl-color-border-input);
200
+ --background-color: transparent;
201
+ border: var(--border-color) 1px dashed;
202
+ border-radius: 0.25rem;
203
+ padding: var(--jkl-file-input-dropzone-padding);
204
+ display: flex;
205
+ justify-content: center;
206
+ align-items: center;
207
+ flex-direction: column;
208
+ flex-wrap: nowrap;
209
+ gap: var(--jkl-file-input-dropzone-gap);
210
+ transition-timing-function: ease;
211
+ transition-duration: 150ms;
212
+ transition-property: background-color;
213
+ background-color: var(--background-color);
214
+ }
215
+ .jkl-file-input__dropzone--enter {
216
+ --border-color: var(--jkl-color-border-input-focus);
217
+ --background-color: var(--jkl-color-background-container-high);
218
+ border-style: solid;
219
+ }
220
+ .jkl-file-input__dropzone__drag-text {
221
+ font-size: var(--jkl-file-input-drag-font-size);
222
+ line-height: var(--jkl-file-input-drag-line-height);
223
+ font-weight: var(--jkl-file-input-drag-font-weight);
224
+ }
225
+ @media (width >= 0) and (max-width: 679px) {
226
+ .jkl-file-input__dropzone__drag-text {
227
+ display: none;
228
+ }
229
+ }
230
+ .jkl-file-input__call-to-action {
231
+ gap: var(--jkl-file-cta-gap);
232
+ display: flex;
233
+ justify-content: center;
234
+ align-items: center;
235
+ flex-direction: column;
236
+ flex-wrap: nowrap;
237
+ }
238
+ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-file-input__call-to-action:focus-within .jkl-button {
239
+ transform: scale(1.05);
240
+ outline: 2px solid var(--jkl-color-border-action);
241
+ outline-offset: 2px;
242
+ }
243
+ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-file-input__call-to-action:focus-within .jkl-button:active {
244
+ transform: scale(1);
245
+ }
246
+ .jkl-file-input--has-files .jkl-file-input__call-to-action {
247
+ gap: var(--jkl-file-cta-with-files-gap);
248
+ }
249
+ .jkl-file-input__max-size-text {
250
+ font-size: var(--jkl-file-size-hint-font-size);
251
+ line-height: var(--jkl-file-size-hint-line-height);
252
+ font-weight: var(--jkl-file-size-hint-font-weight);
253
+ color: var(--jkl-color-text-subdued);
254
+ }
255
+ .jkl-file-input__files {
256
+ list-style: none;
257
+ margin: 0;
258
+ padding: 0;
259
+ display: flex;
260
+ flex-direction: column;
261
+ gap: var(--jkl-file-list-gap);
262
+ }
263
+ .jkl-file-input--small .jkl-file-input__dropzone {
264
+ padding: 1rem;
265
+ gap: 1rem;
266
+ margin-bottom: 1rem;
267
+ justify-content: flex-start;
268
+ flex-direction: row;
269
+ max-width: fit-content;
270
+ }
271
+ .jkl-file-input--small .jkl-file-input__call-to-action {
272
+ font-size: var(--jkl-file-size-hint-font-size);
273
+ line-height: var(--jkl-file-size-hint-line-height);
274
+ font-weight: var(--jkl-file-size-hint-font-weight);
275
+ gap: 0.75rem;
276
+ flex-direction: row;
277
+ justify-content: flex-start;
278
+ }
279
+ .jkl-file-input--small .jkl-file-input__max-size-text {
280
+ border: 0 !important;
281
+ clip: rect(1px, 1px, 1px, 1px) !important; /* 1 */
282
+ clip-path: inset(50%) !important; /* 2 */
283
+ height: 1px !important;
284
+ margin: -1px !important;
285
+ overflow: hidden !important;
286
+ padding: 0 !important;
287
+ position: absolute !important;
288
+ width: 1px !important;
289
+ white-space: nowrap !important; /* 3 */
290
+ }
@@ -0,0 +1 @@
1
+ .jkl-file{--text-color:var(--jkl-color-text-default);color:var(--jkl-color-text-default);display:flex;flex-flow:row nowrap;font-size:1rem;font-weight:400;line-height:1.5rem;margin:0;min-width:15rem;transition-duration:.1s;transition-property:background-color,border-color,color;transition-timing-function:ease;--jkl-icon-weight:300;--jkl-icon-size:1.25rem;--jkl-icon-opsz:20;border-style:none;outline:0;outline-style:none}.jkl-file:active,.jkl-file:focus,.jkl-file:hover{outline:0;outline-style:none}@media screen and (forced-colors:active){.jkl-file{border-style:revert;outline:revert;outline-style:revert}.jkl-file:active,.jkl-file:focus,.jkl-file:hover{outline:revert;outline-style:revert}}.jkl .jkl-file,.jkl-file[data-density=comfortable],.jkl-file[data-layout-density=comfortable],[data-density=comfortable] .jkl-file,[data-layout-density=comfortable] .jkl-file{--jkl-file-padding:1.5rem;--jkl-file-thumbnail-size:4rem;--jkl-file-gap:1rem;--jkl-file-font-size:1.25rem;--jkl-file-line-height:2rem}.jkl-file[data-density=compact],.jkl-file[data-layout-density=compact],[data-density=compact] .jkl-file,[data-layout-density=compact] .jkl-file{--jkl-file-padding:0.75rem;--jkl-file-thumbnail-size:2.75rem;--jkl-file-gap:0.5rem;--jkl-file-font-size:1rem;--jkl-file-line-height:1.5rem}.jkl-file__content{background-color:var(--jkl-color-background-container-high);border-radius:.125rem;box-shadow:0 0 5px 0 rgba(0,0,0,.05);color:var(--text-color);display:flex;flex-basis:100%;gap:1em;padding:var(--jkl-file-padding)}.jkl-file__content--error{background-color:var(--jkl-color-background-alert-error)}.jkl-file__content--warning{background-color:var(--jkl-color-background-alert-warning)}.jkl-file__content--error,.jkl-file__content--warning{--text-color:var(--jkl-color-text-on-alert)}.jkl-file__content--error .jkl-form-support-label,.jkl-file__content--warning .jkl-form-support-label{--color:var(--jkl-color-text-on-alert)}.jkl-file__content:not(div){color:var(--jkl-color-text-default);cursor:pointer;text-decoration:none}.jkl-file__content:not(div):hover~.jkl-file__description{--jkl-icon-weight:500;font-weight:700;letter-spacing:-.014em}html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-file__content:not(div):focus{outline:.125rem solid var(--jkl-color-border-input-focus)}@media screen and (forced-colors:active){.jkl-file__content:not(div){border:.125rem solid LinkText;outline:revert}}.jkl-file__delete{align-items:stretch;padding:0 var(--jkl-spacing-24)}.jkl-file__delete:hover{background-color:var(--jkl-color-background-interactive-hover)}.jkl-file__thumbnail-wrapper{position:relative}.jkl-file__thumbnail-wrapper>:nth-child(2){inset:0;margin:auto;position:absolute;width:80%}.jkl-file__thumbnail{align-items:center;border-radius:.25rem;color:var(--jkl-color-text-subdued);display:flex;flex:0 0 var(--jkl-file-thumbnail-size);height:var(--jkl-file-thumbnail-size);justify-content:center;object-fit:contain;opacity:1;transition-duration:.15s;transition-property:opacity;transition-timing-function:ease;width:var(--jkl-file-thumbnail-size)}.jkl-file__thumbnail--selected{opacity:.7}.jkl-file__thumbnail--uploading{opacity:.4}.jkl-file__thumbnail:not(img){background:var(--jkl-color-background-container-low)}.jkl-file__file-info{display:flex;flex:1 1 auto;flex-direction:column;gap:var(--jkl-spacing-8);overflow-wrap:break-word}.jkl-file__title{font-size:1rem;font-weight:700;line-height:1.5rem;--jkl-icon-weight:500;--jkl-icon-size:1.25rem;--jkl-icon-opsz:20;overflow-wrap:anywhere}.jkl-file__description,.jkl-file__name{font-size:var(--jkl-file-font-size);line-height:var(--jkl-file-line-height)}.jkl-file__name{font-weight:700}.jkl-file__description{align-items:center;display:flex;flex-wrap:nowrap;gap:.75rem;justify-content:flex-start}.jkl-file__support-label{margin:0}:root,[data-density=comfortable],[data-layout-density=comfortable]{--jkl-file-input-drag-font-size:var(--jkl-heading-2-font-size);--jkl-file-input-drag-line-height:var(--jkl-heading-2-line-height);--jkl-file-input-drag-font-weight:var(--jkl-heading-2-font-weight);--jkl-file-size-hint-font-size:var(--jkl-small-font-size);--jkl-file-size-hint-line-height:var(--jkl-small-line-height);--jkl-file-size-hint-font-weight:var(--jkl-small-font-weight);--jkl-file-input-dropzone-padding:1.5rem;--jkl-file-input-dropzone-gap:1.5rem;--jkl-file-cta-gap:1.5rem;--jkl-file-cta-with-files-gap:0.75rem;--jkl-file-list-gap:1rem}[data-density=compact],[data-layout-density=compact]{--jkl-file-input-drag-font-size:var(--jkl-body-font-size);--jkl-file-input-drag-line-height:var(--jkl-body-line-height);--jkl-file-input-drag-font-weight:var(--jkl-body-font-weight);--jkl-file-input-dropzone-padding:1rem;--jkl-file-input-dropzone-gap:1rem;--jkl-file-cta-gap:0.75rem;--jkl-file-cta-with-files-gap:0.25rem;--jkl-file-list-gap:0.5rem}.jkl-file-input__dropzone{--border-color:var(--jkl-color-border-input);--background-color:transparent;align-items:center;background-color:var(--background-color);border:1px dashed var(--border-color);border-radius:.25rem;display:flex;flex-direction:column;flex-wrap:nowrap;gap:var(--jkl-file-input-dropzone-gap);justify-content:center;padding:var(--jkl-file-input-dropzone-padding);transition-duration:.15s;transition-property:background-color;transition-timing-function:ease}.jkl-file-input__dropzone--enter{--border-color:var(--jkl-color-border-input-focus);--background-color:var(--jkl-color-background-container-high);border-style:solid}.jkl-file-input__dropzone__drag-text{font-size:var(--jkl-file-input-drag-font-size);font-weight:var(--jkl-file-input-drag-font-weight);line-height:var(--jkl-file-input-drag-line-height)}@media (width >= 0) and (max-width:679px){.jkl-file-input__dropzone__drag-text{display:none}}.jkl-file-input__call-to-action{align-items:center;display:flex;flex-direction:column;flex-wrap:nowrap;gap:var(--jkl-file-cta-gap);justify-content:center}html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-file-input__call-to-action:focus-within .jkl-button{outline:2px solid var(--jkl-color-border-action);outline-offset:2px;transform:scale(1.05)}html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-file-input__call-to-action:focus-within .jkl-button:active{transform:scale(1)}.jkl-file-input--has-files .jkl-file-input__call-to-action{gap:var(--jkl-file-cta-with-files-gap)}.jkl-file-input__max-size-text{color:var(--jkl-color-text-subdued);font-size:var(--jkl-file-size-hint-font-size);font-weight:var(--jkl-file-size-hint-font-weight);line-height:var(--jkl-file-size-hint-line-height)}.jkl-file-input__files{display:flex;flex-direction:column;gap:var(--jkl-file-list-gap);list-style:none;margin:0;padding:0}.jkl-file-input--small .jkl-file-input__dropzone{flex-direction:row;gap:1rem;justify-content:flex-start;margin-bottom:1rem;max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;padding:1rem}.jkl-file-input--small .jkl-file-input__call-to-action{flex-direction:row;font-size:var(--jkl-file-size-hint-font-size);font-weight:var(--jkl-file-size-hint-font-weight);gap:.75rem;justify-content:flex-start;line-height:var(--jkl-file-size-hint-line-height)}.jkl-file-input--small .jkl-file-input__max-size-text{border:0!important;clip:rect(1px,1px,1px,1px)!important;-webkit-clip-path:inset(50%)!important;clip-path:inset(50%)!important;height:1px!important;margin:-1px!important;overflow:hidden!important;padding:0!important;position:absolute!important;white-space:nowrap!important;width:1px!important}