@folkehelseinstituttet/designsystem 0.40.0 → 0.40.2

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 (271) hide show
  1. package/decorate-DFXIek-k.js +611 -0
  2. package/decorate-DFXIek-k.js.map +1 -0
  3. package/fhi-body.js +23 -32
  4. package/fhi-body.js.map +1 -1
  5. package/fhi-button.js +90 -112
  6. package/fhi-button.js.map +1 -1
  7. package/fhi-checkbox.js +53 -66
  8. package/fhi-checkbox.js.map +1 -1
  9. package/fhi-data-table-cell.js +23 -29
  10. package/fhi-data-table-cell.js.map +1 -1
  11. package/fhi-data-table-row.js +40 -65
  12. package/fhi-data-table-row.js.map +1 -1
  13. package/fhi-data-table.js +30 -36
  14. package/fhi-data-table.js.map +1 -1
  15. package/fhi-date-input.component-Bus7CeKM.js +278 -0
  16. package/fhi-date-input.component-Bus7CeKM.js.map +1 -0
  17. package/fhi-date-input.js +2 -305
  18. package/fhi-display.js +29 -46
  19. package/fhi-display.js.map +1 -1
  20. package/fhi-flex.js +40 -50
  21. package/fhi-flex.js.map +1 -1
  22. package/fhi-grid.js +30 -46
  23. package/fhi-grid.js.map +1 -1
  24. package/fhi-headline.js +29 -46
  25. package/fhi-headline.js.map +1 -1
  26. package/fhi-icon-arrow-down-left.js +26 -43
  27. package/fhi-icon-arrow-down-left.js.map +1 -1
  28. package/fhi-icon-arrow-down-right.js +26 -43
  29. package/fhi-icon-arrow-down-right.js.map +1 -1
  30. package/fhi-icon-arrow-down.js +26 -43
  31. package/fhi-icon-arrow-down.js.map +1 -1
  32. package/fhi-icon-arrow-left.js +26 -43
  33. package/fhi-icon-arrow-left.js.map +1 -1
  34. package/fhi-icon-arrow-right-left.js +26 -43
  35. package/fhi-icon-arrow-right-left.js.map +1 -1
  36. package/fhi-icon-arrow-right.js +26 -43
  37. package/fhi-icon-arrow-right.js.map +1 -1
  38. package/fhi-icon-arrow-up-down.js +26 -43
  39. package/fhi-icon-arrow-up-down.js.map +1 -1
  40. package/fhi-icon-arrow-up-left.js +26 -43
  41. package/fhi-icon-arrow-up-left.js.map +1 -1
  42. package/fhi-icon-arrow-up-right.js +26 -43
  43. package/fhi-icon-arrow-up-right.js.map +1 -1
  44. package/fhi-icon-arrow-up.js +26 -43
  45. package/fhi-icon-arrow-up.js.map +1 -1
  46. package/fhi-icon-bell.js +26 -43
  47. package/fhi-icon-bell.js.map +1 -1
  48. package/fhi-icon-calendar-clock.js +26 -43
  49. package/fhi-icon-calendar-clock.js.map +1 -1
  50. package/fhi-icon-calendar.js +26 -43
  51. package/fhi-icon-calendar.js.map +1 -1
  52. package/fhi-icon-chart-bar-stacked.js +26 -43
  53. package/fhi-icon-chart-bar-stacked.js.map +1 -1
  54. package/fhi-icon-chart-bar.js +26 -43
  55. package/fhi-icon-chart-bar.js.map +1 -1
  56. package/fhi-icon-chart-column-stacked.js +26 -43
  57. package/fhi-icon-chart-column-stacked.js.map +1 -1
  58. package/fhi-icon-chart-column.js +26 -43
  59. package/fhi-icon-chart-column.js.map +1 -1
  60. package/fhi-icon-chart-line.js +26 -43
  61. package/fhi-icon-chart-line.js.map +1 -1
  62. package/fhi-icon-chart-no-axes-combined.js +26 -43
  63. package/fhi-icon-chart-no-axes-combined.js.map +1 -1
  64. package/fhi-icon-chart-pie.js +26 -43
  65. package/fhi-icon-chart-pie.js.map +1 -1
  66. package/fhi-icon-check.js +26 -43
  67. package/fhi-icon-check.js.map +1 -1
  68. package/fhi-icon-chevron-down.js +26 -43
  69. package/fhi-icon-chevron-down.js.map +1 -1
  70. package/fhi-icon-chevron-left.js +26 -43
  71. package/fhi-icon-chevron-left.js.map +1 -1
  72. package/fhi-icon-chevron-right.js +26 -43
  73. package/fhi-icon-chevron-right.js.map +1 -1
  74. package/fhi-icon-chevron-up.js +26 -43
  75. package/fhi-icon-chevron-up.js.map +1 -1
  76. package/fhi-icon-chevrons-down.js +26 -43
  77. package/fhi-icon-chevrons-down.js.map +1 -1
  78. package/fhi-icon-chevrons-left.js +26 -43
  79. package/fhi-icon-chevrons-left.js.map +1 -1
  80. package/fhi-icon-chevrons-right.js +26 -43
  81. package/fhi-icon-chevrons-right.js.map +1 -1
  82. package/fhi-icon-chevrons-up.js +26 -43
  83. package/fhi-icon-chevrons-up.js.map +1 -1
  84. package/fhi-icon-circle-arrow-down.js +26 -43
  85. package/fhi-icon-circle-arrow-down.js.map +1 -1
  86. package/fhi-icon-circle-arrow-left.js +26 -43
  87. package/fhi-icon-circle-arrow-left.js.map +1 -1
  88. package/fhi-icon-circle-arrow-right.js +26 -43
  89. package/fhi-icon-circle-arrow-right.js.map +1 -1
  90. package/fhi-icon-circle-arrow-up.js +26 -43
  91. package/fhi-icon-circle-arrow-up.js.map +1 -1
  92. package/fhi-icon-circle-check-big.js +26 -43
  93. package/fhi-icon-circle-check-big.js.map +1 -1
  94. package/fhi-icon-circle-check.js +26 -43
  95. package/fhi-icon-circle-check.js.map +1 -1
  96. package/fhi-icon-circle-chevron-down.js +26 -43
  97. package/fhi-icon-circle-chevron-down.js.map +1 -1
  98. package/fhi-icon-circle-chevron-left.js +26 -43
  99. package/fhi-icon-circle-chevron-left.js.map +1 -1
  100. package/fhi-icon-circle-chevron-right.js +26 -43
  101. package/fhi-icon-circle-chevron-right.js.map +1 -1
  102. package/fhi-icon-circle-chevron-up.js +26 -43
  103. package/fhi-icon-circle-chevron-up.js.map +1 -1
  104. package/fhi-icon-circle-exclamation.js +26 -43
  105. package/fhi-icon-circle-exclamation.js.map +1 -1
  106. package/fhi-icon-circle-info.js +26 -43
  107. package/fhi-icon-circle-info.js.map +1 -1
  108. package/fhi-icon-circle-minus.js +26 -43
  109. package/fhi-icon-circle-minus.js.map +1 -1
  110. package/fhi-icon-circle-plus.js +26 -43
  111. package/fhi-icon-circle-plus.js.map +1 -1
  112. package/fhi-icon-circle-question.js +26 -43
  113. package/fhi-icon-circle-question.js.map +1 -1
  114. package/fhi-icon-circle-x.js +26 -43
  115. package/fhi-icon-circle-x.js.map +1 -1
  116. package/fhi-icon-circle.js +26 -43
  117. package/fhi-icon-circle.js.map +1 -1
  118. package/fhi-icon-clock.js +26 -43
  119. package/fhi-icon-clock.js.map +1 -1
  120. package/fhi-icon-copy.js +26 -43
  121. package/fhi-icon-copy.js.map +1 -1
  122. package/fhi-icon-download.js +26 -43
  123. package/fhi-icon-download.js.map +1 -1
  124. package/fhi-icon-ellipsis-vertical.js +26 -43
  125. package/fhi-icon-ellipsis-vertical.js.map +1 -1
  126. package/fhi-icon-ellipsis.js +26 -43
  127. package/fhi-icon-ellipsis.js.map +1 -1
  128. package/fhi-icon-exclamation.js +26 -43
  129. package/fhi-icon-exclamation.js.map +1 -1
  130. package/fhi-icon-expand.js +26 -43
  131. package/fhi-icon-expand.js.map +1 -1
  132. package/fhi-icon-external-link.js +26 -43
  133. package/fhi-icon-external-link.js.map +1 -1
  134. package/fhi-icon-eye-off.js +26 -43
  135. package/fhi-icon-eye-off.js.map +1 -1
  136. package/fhi-icon-eye.js +26 -43
  137. package/fhi-icon-eye.js.map +1 -1
  138. package/fhi-icon-file-text.js +26 -43
  139. package/fhi-icon-file-text.js.map +1 -1
  140. package/fhi-icon-file.js +26 -43
  141. package/fhi-icon-file.js.map +1 -1
  142. package/fhi-icon-filter.js +26 -43
  143. package/fhi-icon-filter.js.map +1 -1
  144. package/fhi-icon-folder.js +26 -43
  145. package/fhi-icon-folder.js.map +1 -1
  146. package/fhi-icon-gear.js +26 -43
  147. package/fhi-icon-gear.js.map +1 -1
  148. package/fhi-icon-grid-9-dots.js +26 -43
  149. package/fhi-icon-grid-9-dots.js.map +1 -1
  150. package/fhi-icon-grip-horizontal.js +26 -43
  151. package/fhi-icon-grip-horizontal.js.map +1 -1
  152. package/fhi-icon-grip-vertical.js +26 -43
  153. package/fhi-icon-grip-vertical.js.map +1 -1
  154. package/fhi-icon-history.js +26 -43
  155. package/fhi-icon-history.js.map +1 -1
  156. package/fhi-icon-info.js +26 -43
  157. package/fhi-icon-info.js.map +1 -1
  158. package/fhi-icon-link-2-off.js +26 -43
  159. package/fhi-icon-link-2-off.js.map +1 -1
  160. package/fhi-icon-link-2.js +26 -43
  161. package/fhi-icon-link-2.js.map +1 -1
  162. package/fhi-icon-link.js +26 -43
  163. package/fhi-icon-link.js.map +1 -1
  164. package/fhi-icon-lock-open.js +26 -43
  165. package/fhi-icon-lock-open.js.map +1 -1
  166. package/fhi-icon-lock.js +26 -43
  167. package/fhi-icon-lock.js.map +1 -1
  168. package/fhi-icon-log-in.js +26 -43
  169. package/fhi-icon-log-in.js.map +1 -1
  170. package/fhi-icon-log-out.js +26 -43
  171. package/fhi-icon-log-out.js.map +1 -1
  172. package/fhi-icon-mail.js +26 -43
  173. package/fhi-icon-mail.js.map +1 -1
  174. package/fhi-icon-map-pin.js +26 -43
  175. package/fhi-icon-map-pin.js.map +1 -1
  176. package/fhi-icon-menu.js +26 -43
  177. package/fhi-icon-menu.js.map +1 -1
  178. package/fhi-icon-message.js +26 -43
  179. package/fhi-icon-message.js.map +1 -1
  180. package/fhi-icon-minus.js +26 -43
  181. package/fhi-icon-minus.js.map +1 -1
  182. package/fhi-icon-octagon-alert.js +26 -43
  183. package/fhi-icon-octagon-alert.js.map +1 -1
  184. package/fhi-icon-paperclip.js +26 -43
  185. package/fhi-icon-paperclip.js.map +1 -1
  186. package/fhi-icon-pencil.js +26 -43
  187. package/fhi-icon-pencil.js.map +1 -1
  188. package/fhi-icon-phone.js +26 -43
  189. package/fhi-icon-phone.js.map +1 -1
  190. package/fhi-icon-pin-off.js +26 -43
  191. package/fhi-icon-pin-off.js.map +1 -1
  192. package/fhi-icon-pin.js +26 -43
  193. package/fhi-icon-pin.js.map +1 -1
  194. package/fhi-icon-plus.js +26 -43
  195. package/fhi-icon-plus.js.map +1 -1
  196. package/fhi-icon-printer.js +26 -43
  197. package/fhi-icon-printer.js.map +1 -1
  198. package/fhi-icon-question.js +26 -43
  199. package/fhi-icon-question.js.map +1 -1
  200. package/fhi-icon-refresh.js +26 -43
  201. package/fhi-icon-refresh.js.map +1 -1
  202. package/fhi-icon-rotate-left.js +26 -43
  203. package/fhi-icon-rotate-left.js.map +1 -1
  204. package/fhi-icon-rotate-right.js +26 -43
  205. package/fhi-icon-rotate-right.js.map +1 -1
  206. package/fhi-icon-search.js +26 -43
  207. package/fhi-icon-search.js.map +1 -1
  208. package/fhi-icon-send.js +26 -43
  209. package/fhi-icon-send.js.map +1 -1
  210. package/fhi-icon-share.js +26 -43
  211. package/fhi-icon-share.js.map +1 -1
  212. package/fhi-icon-sheet.js +26 -43
  213. package/fhi-icon-sheet.js.map +1 -1
  214. package/fhi-icon-square-check-big.js +26 -43
  215. package/fhi-icon-square-check-big.js.map +1 -1
  216. package/fhi-icon-square-check.js +26 -43
  217. package/fhi-icon-square-check.js.map +1 -1
  218. package/fhi-icon-square-pen.js +26 -43
  219. package/fhi-icon-square-pen.js.map +1 -1
  220. package/fhi-icon-square-x.js +26 -43
  221. package/fhi-icon-square-x.js.map +1 -1
  222. package/fhi-icon-square.js +26 -43
  223. package/fhi-icon-square.js.map +1 -1
  224. package/fhi-icon-trash.js +26 -43
  225. package/fhi-icon-trash.js.map +1 -1
  226. package/fhi-icon-triangle-alert.js +26 -43
  227. package/fhi-icon-triangle-alert.js.map +1 -1
  228. package/fhi-icon-upload.js +26 -43
  229. package/fhi-icon-upload.js.map +1 -1
  230. package/fhi-icon-user.js +26 -43
  231. package/fhi-icon-user.js.map +1 -1
  232. package/fhi-icon-x.js +26 -43
  233. package/fhi-icon-x.js.map +1 -1
  234. package/fhi-label.js +23 -32
  235. package/fhi-label.js.map +1 -1
  236. package/fhi-modal-dialog.js +76 -111
  237. package/fhi-modal-dialog.js.map +1 -1
  238. package/fhi-radio.js +91 -109
  239. package/fhi-radio.js.map +1 -1
  240. package/fhi-tag.js +32 -44
  241. package/fhi-tag.js.map +1 -1
  242. package/fhi-text-input.js +96 -126
  243. package/fhi-text-input.js.map +1 -1
  244. package/fhi-title.js +29 -46
  245. package/fhi-title.js.map +1 -1
  246. package/fhi-tooltip.component-DJNDfrHK.js +919 -0
  247. package/fhi-tooltip.component-DJNDfrHK.js.map +1 -0
  248. package/fhi-tooltip.js +2 -1162
  249. package/fonts/RobotoFlex.ttf +0 -0
  250. package/if-defined-Dl-W5B5_.js +7 -0
  251. package/if-defined-Dl-W5B5_.js.map +1 -0
  252. package/index.js +123 -369
  253. package/package.json +1 -1
  254. package/theme/default.css +480 -1
  255. package/unsafe-html-CBTN3162.js +50 -0
  256. package/unsafe-html-CBTN3162.js.map +1 -0
  257. package/web-types.json +1 -1
  258. package/base-D76d76ww.js +0 -10
  259. package/base-D76d76ww.js.map +0 -1
  260. package/fhi-date-input.js.map +0 -1
  261. package/fhi-tooltip.js.map +0 -1
  262. package/fonts/RobotoFlex.ttf.js.map +0 -1
  263. package/if-defined-B_sR6Mtk.js +0 -11
  264. package/if-defined-B_sR6Mtk.js.map +0 -1
  265. package/index.js.map +0 -1
  266. package/property-B2Ico5CW.js +0 -605
  267. package/property-B2Ico5CW.js.map +0 -1
  268. package/query-Ddbd72Um.js +0 -21
  269. package/query-Ddbd72Um.js.map +0 -1
  270. package/unsafe-html-DfuTUjUu.js +0 -48
  271. package/unsafe-html-DfuTUjUu.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"fhi-data-table-row.js","sources":["../../../../node_modules/.pnpm/@lit+reactive-element@2.1.2/node_modules/@lit/reactive-element/decorators/query-assigned-elements.js","../../src/components/data-table/fhi-data-table-row/fhi-data-table-row.component.ts"],"sourcesContent":["import{desc as t}from\"./base.js\";\n/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function o(o){return(e,n)=>{const{slot:r,selector:s}=o??{},c=\"slot\"+(r?`[name=${r}]`:\":not([name])\");return t(e,n,{get(){const t=this.renderRoot?.querySelector(c),e=t?.assignedElements(o)??[];return void 0===s?e:e.filter(t=>t.matches(s))}})}}export{o as queryAssignedElements};\n//# sourceMappingURL=query-assigned-elements.js.map\n","import { html, css, LitElement, PropertyValues } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { queryAssignedElements } from 'lit/decorators.js';\nimport { FhiDataTableCell } from '../fhi-data-table-cell/fhi-data-table-cell.component';\n\nexport const FhiDataTableRowSelector = 'fhi-data-table-row';\n\n/**\n * ## FHI Table Row\n *\n * {@link https://designsystem.fhi.no/?path=/docs/komponenter-data-table-row--docs}\n *\n * The `<fhi-data-table-row>` component is an implementation of a table row according to the FHI Design System guidelines.\n * It allows users to properly display data within a `<fhi-data-table>` using `<fhi-data-table-cell>` components.\n *\n * For various reasons, the `<fhi-data-table-row>` component does not use the native HTML `<tr>` element. Instead, it relies on CSS `display: table-row` to achieve the desired layout and styling.\n *\n * @tag fhi-data-table-row\n * @element fhi-data-table-row\n *\n * @slot - The content of the table row, consisting of `<fhi-data-table-cell>` elements which represent individual cells within the row.\n */\n@customElement(FhiDataTableRowSelector)\nexport class FhiDataTableRow extends LitElement {\n /**\n * Defines the variant of the table row, which can be either 'header' or 'body'. This determines the styling and role of the row within the table.\n * If the variant is set to 'header', all child `<fhi-data-table-cell>` elements will also be set to the 'header' variant to ensure consistent styling.\n * @type {'header' | 'body'}\n */\n @property({ type: String, reflect: true })\n variant: 'header' | 'body' = 'body';\n\n @queryAssignedElements()\n slotElements!: Array<HTMLElement>;\n\n connectedCallback(): void {\n super.connectedCallback();\n this.role = 'row';\n }\n\n protected update(changedProperties: PropertyValues): void {\n if (changedProperties.has('variant')) {\n if (this.variant !== 'body' && this.variant !== 'header') {\n this.variant = 'body';\n }\n }\n\n super.update(changedProperties);\n }\n\n protected updated(changedProperties: PropertyValues): void {\n if (changedProperties.has('variant')) {\n this.setCellVariants();\n }\n\n super.updated(changedProperties);\n }\n\n private handleSlotChange() {\n this.setCellVariants();\n }\n\n private setCellVariants() {\n this.slotElements.forEach(element => {\n if (element.tagName.toLowerCase() === 'fhi-data-table-cell') {\n const tableCell = element as FhiDataTableCell;\n\n if (tableCell.variant !== this.variant) {\n tableCell.variant = this.variant;\n }\n }\n });\n }\n\n render() {\n return html`<slot @slotchange=${this.handleSlotChange}></slot>`;\n }\n\n static styles = css`\n :host {\n --fhi-data-table-row-border-style: unset;\n --fhi-data-table-row-border-width: unset;\n --fhi-data-table-row-border-color: unset;\n\n --fhi-data-table-row-background: unset;\n }\n\n :host {\n display: table-row;\n background: var(--fhi-data-table-row-background);\n\n --fhi-data-table-row-border-style: none none solid none;\n --fhi-data-table-row-border-width: var(--fhi-dimension-border-width);\n --fhi-data-table-row-border-color: var(\n --fhi-color-neutral-surface-active\n );\n\n ::slotted(fhi-data-table-cell) {\n --fhi-data-table-cell-background: var(--fhi-data-table-row-background);\n --fhi-data-table-cell-border-style: var(\n --fhi-data-table-row-border-style\n );\n --fhi-data-table-cell-border-width: var(\n --fhi-data-table-row-border-width\n );\n --fhi-data-table-cell-border-color: var(\n --fhi-data-table-row-border-color\n );\n }\n }\n `;\n}\n"],"names":["o","e","n","s","c","t","_a","FhiDataTableRowSelector","FhiDataTableRow","LitElement","changedProperties","element","tableCell","html","css","__decorateClass","property","queryAssignedElements","customElement"],"mappings":";;AACA;AAAA;AAAA;AAAA;AAAA;AAIG,SAASA,EAAEA,GAAE;AAAC,SAAM,CAACC,GAAEC,MAAI;AAAC,UAAK,EAAC,MAAK,GAAE,UAASC,EAAC,IAAK,IAAGC,IAAE,UAAQ,IAAE,SAAS,CAAC,MAAI;AAAgB,WAAOC,EAAEJ,GAAEC,GAAE,EAAC,MAAK;;AAAC,YAAMG,KAAEC,IAAA,KAAK,eAAL,gBAAAA,EAAiB,cAAcF,IAAGH,KAAEI,KAAA,gBAAAA,EAAG,iBAAiBL,OAAI,CAAA;AAAG,aAAgBG,MAAT,SAAWF,IAAEA,EAAE,OAAO,CAAAI,MAAGA,EAAE,QAAQF,CAAC,CAAC;AAAA,IAAC,EAAC,CAAC;AAAA,EAAC;AAAC;;;;;;ACA7O,MAAMI,IAA0B;AAkBhC,IAAMC,IAAN,cAA8BC,EAAW;AAAA,EAAzC,cAAA;AAAA,UAAA,GAAA,SAAA,GAOL,KAAA,UAA6B;AAAA,EAAA;AAAA,EAK7B,oBAA0B;AACxB,UAAM,kBAAA,GACN,KAAK,OAAO;AAAA,EACd;AAAA,EAEU,OAAOC,GAAyC;AACxD,IAAIA,EAAkB,IAAI,SAAS,KAC7B,KAAK,YAAY,UAAU,KAAK,YAAY,aAC9C,KAAK,UAAU,SAInB,MAAM,OAAOA,CAAiB;AAAA,EAChC;AAAA,EAEU,QAAQA,GAAyC;AACzD,IAAIA,EAAkB,IAAI,SAAS,KACjC,KAAK,gBAAA,GAGP,MAAM,QAAQA,CAAiB;AAAA,EACjC;AAAA,EAEQ,mBAAmB;AACzB,SAAK,gBAAA;AAAA,EACP;AAAA,EAEQ,kBAAkB;AACxB,SAAK,aAAa,QAAQ,CAAAC,MAAW;AACnC,UAAIA,EAAQ,QAAQ,YAAA,MAAkB,uBAAuB;AAC3D,cAAMC,IAAYD;AAElB,QAAIC,EAAU,YAAY,KAAK,YAC7BA,EAAU,UAAU,KAAK;AAAA,MAE7B;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAEA,SAAS;AACP,WAAOC,sBAAyB,KAAK,gBAAgB;AAAA,EACvD;AAmCF;AAxFaL,EAuDJ,SAASM;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAhDhBC,EAAA;AAAA,EADCC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GAN9BR,EAOX,WAAA,WAAA,CAAA;AAGAO,EAAA;AAAA,EADCE,EAAA;AAAsB,GATZT,EAUX,WAAA,gBAAA,CAAA;AAVWA,IAANO,EAAA;AAAA,EADNG,EAAcX,CAAuB;AAAA,GACzBC,CAAA;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"fhi-data-table-row.js","names":[],"sources":["../../src/components/data-table/fhi-data-table-row/fhi-data-table-row.component.ts"],"sourcesContent":["import { html, css, LitElement, PropertyValues } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { queryAssignedElements } from 'lit/decorators.js';\nimport { FhiDataTableCell } from '../fhi-data-table-cell/fhi-data-table-cell.component';\n\nexport const FhiDataTableRowSelector = 'fhi-data-table-row';\n\n/**\n * ## FHI Table Row\n *\n * {@link https://designsystem.fhi.no/?path=/docs/komponenter-data-table-row--docs}\n *\n * The `<fhi-data-table-row>` component is an implementation of a table row according to the FHI Design System guidelines.\n * It allows users to properly display data within a `<fhi-data-table>` using `<fhi-data-table-cell>` components.\n *\n * For various reasons, the `<fhi-data-table-row>` component does not use the native HTML `<tr>` element. Instead, it relies on CSS `display: table-row` to achieve the desired layout and styling.\n *\n * @tag fhi-data-table-row\n * @element fhi-data-table-row\n *\n * @slot - The content of the table row, consisting of `<fhi-data-table-cell>` elements which represent individual cells within the row.\n */\n@customElement(FhiDataTableRowSelector)\nexport class FhiDataTableRow extends LitElement {\n /**\n * Defines the variant of the table row, which can be either 'header' or 'body'. This determines the styling and role of the row within the table.\n * If the variant is set to 'header', all child `<fhi-data-table-cell>` elements will also be set to the 'header' variant to ensure consistent styling.\n * @type {'header' | 'body'}\n */\n @property({ type: String, reflect: true })\n variant: 'header' | 'body' = 'body';\n\n @queryAssignedElements()\n slotElements!: Array<HTMLElement>;\n\n connectedCallback(): void {\n super.connectedCallback();\n this.role = 'row';\n }\n\n protected update(changedProperties: PropertyValues): void {\n if (changedProperties.has('variant')) {\n if (this.variant !== 'body' && this.variant !== 'header') {\n this.variant = 'body';\n }\n }\n\n super.update(changedProperties);\n }\n\n protected updated(changedProperties: PropertyValues): void {\n if (changedProperties.has('variant')) {\n this.setCellVariants();\n }\n\n super.updated(changedProperties);\n }\n\n private handleSlotChange() {\n this.setCellVariants();\n }\n\n private setCellVariants() {\n this.slotElements.forEach(element => {\n if (element.tagName.toLowerCase() === 'fhi-data-table-cell') {\n const tableCell = element as FhiDataTableCell;\n\n if (tableCell.variant !== this.variant) {\n tableCell.variant = this.variant;\n }\n }\n });\n }\n\n render() {\n return html`<slot @slotchange=${this.handleSlotChange}></slot>`;\n }\n\n static styles = css`\n :host {\n --fhi-data-table-row-border-style: unset;\n --fhi-data-table-row-border-width: unset;\n --fhi-data-table-row-border-color: unset;\n\n --fhi-data-table-row-background: unset;\n }\n\n :host {\n display: table-row;\n background: var(--fhi-data-table-row-background);\n\n --fhi-data-table-row-border-style: none none solid none;\n --fhi-data-table-row-border-width: var(--fhi-dimension-border-width);\n --fhi-data-table-row-border-color: var(\n --fhi-color-neutral-surface-active\n );\n\n ::slotted(fhi-data-table-cell) {\n --fhi-data-table-cell-background: var(--fhi-data-table-row-background);\n --fhi-data-table-cell-border-style: var(\n --fhi-data-table-row-border-style\n );\n --fhi-data-table-cell-border-width: var(\n --fhi-data-table-row-border-width\n );\n --fhi-data-table-cell-border-color: var(\n --fhi-data-table-row-border-color\n );\n }\n }\n `;\n}\n"],"mappings":";;AAKA,IAAa,IAA0B,sBAkBhC,IAAA,cAA8B,EAAW;;8BAOjB;;CAK7B,oBAA0B;EAExB,AADA,MAAM,kBAAkB,GACxB,KAAK,OAAO;CACd;CAEA,OAAiB,GAAyC;EAOxD,AANI,EAAkB,IAAI,SAAS,KAC7B,KAAK,YAAY,UAAU,KAAK,YAAY,aAC9C,KAAK,UAAU,SAInB,MAAM,OAAO,CAAiB;CAChC;CAEA,QAAkB,GAAyC;EAKzD,AAJI,EAAkB,IAAI,SAAS,KACjC,KAAK,gBAAgB,GAGvB,MAAM,QAAQ,CAAiB;CACjC;CAEA,mBAA2B;EACzB,KAAK,gBAAgB;CACvB;CAEA,kBAA0B;EACxB,KAAK,aAAa,SAAQ,MAAW;GACnC,IAAI,EAAQ,QAAQ,YAAY,MAAM,uBAAuB;IAC3D,IAAM,IAAY;IAElB,AAAI,EAAU,YAAY,KAAK,YAC7B,EAAU,UAAU,KAAK;GAE7B;EACF,CAAC;CACH;CAEA,SAAS;EACP,OAAO,CAAI,qBAAqB,KAAK,iBAAiB;CACxD;;gBAEgB,CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiCrB;GAlFG,EAAS;CAAE,MAAM;CAAQ,SAAS;AAAK,CAAC,CAAA,GAAA,EAAA,WAAA,WAAA,KAAA,CAAA,MAGxC,EAAsB,CAAA,GAAA,EAAA,WAAA,gBAAA,KAAA,CAAA,UAVxB,EAAc,CAAuB,CAAA,GAAA,CAAA"}
package/fhi-data-table.js CHANGED
@@ -1,34 +1,29 @@
1
- import { i as h, n as b, a as c, b as n, t as f } from "./property-B2Ico5CW.js";
1
+ import { a as e, d as t, o as n, s as r, t as i, u as a } from "./decorate-DFXIek-k.js";
2
2
  import "./fhi-grid.js";
3
3
  import "./fhi-body.js";
4
- var u = Object.defineProperty, p = Object.getOwnPropertyDescriptor, s = (t, r, l, o) => {
5
- for (var a = o > 1 ? void 0 : o ? p(r, l) : r, i = t.length - 1, d; i >= 0; i--)
6
- (d = t[i]) && (a = (o ? d(r, l, a) : d(a)) || a);
7
- return o && a && u(r, l, a), a;
8
- };
9
- const v = "fhi-data-table";
10
- let e = class extends c {
11
- connectedCallback() {
12
- super.connectedCallback(), this.role = "table";
13
- }
14
- update(t) {
15
- super.update(t);
16
- }
17
- updated(t) {
18
- super.updated(t), t.has("caption") && (this.caption ? this.setAttribute("aria-label", this.caption) : this.removeAttribute("aria-label"));
19
- }
20
- render() {
21
- return n`
4
+ //#region src/components/data-table/fhi-data-table/fhi-data-table.component.ts
5
+ var o = "fhi-data-table", s = class extends r {
6
+ connectedCallback() {
7
+ super.connectedCallback(), this.role = "table";
8
+ }
9
+ update(e) {
10
+ super.update(e);
11
+ }
12
+ updated(e) {
13
+ super.updated(e), e.has("caption") && (this.caption ? this.setAttribute("aria-label", this.caption) : this.removeAttribute("aria-label"));
14
+ }
15
+ render() {
16
+ return a`
22
17
  <div class="table-content">
23
18
  <slot></slot>
24
19
  </div>
25
- ${this.caption ? n`<fhi-body class="caption" size="small"
20
+ ${this.caption ? a`<fhi-body class="caption" size="small"
26
21
  >${this.caption}</fhi-body
27
22
  >` : null}
28
23
  `;
29
- }
30
- };
31
- e.styles = h`
24
+ }
25
+ static {
26
+ this.styles = t`
32
27
  :host {
33
28
  --fhi-data-table-border-color: unset;
34
29
  --fhi-data-table-border-radius: unset;
@@ -78,17 +73,16 @@ e.styles = h`
78
73
  }
79
74
  }
80
75
  `;
81
- s([
82
- b({ type: String, reflect: !0 })
83
- ], e.prototype, "caption", 2);
84
- s([
85
- b({ type: Boolean, reflect: !0 })
86
- ], e.prototype, "striped", 2);
87
- e = s([
88
- f(v)
89
- ], e);
90
- export {
91
- e as FhiDataTable,
92
- v as FhiDataTableSelector
76
+ }
93
77
  };
94
- //# sourceMappingURL=fhi-data-table.js.map
78
+ i([e({
79
+ type: String,
80
+ reflect: !0
81
+ })], s.prototype, "caption", void 0), i([e({
82
+ type: Boolean,
83
+ reflect: !0
84
+ })], s.prototype, "striped", void 0), s = i([n(o)], s);
85
+ //#endregion
86
+ export { s as FhiDataTable, o as FhiDataTableSelector };
87
+
88
+ //# sourceMappingURL=fhi-data-table.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fhi-data-table.js","sources":["../../src/components/data-table/fhi-data-table/fhi-data-table.component.ts"],"sourcesContent":["import { html, css, LitElement, PropertyValues } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\n\nimport '../../fhi-grid/fhi-grid.component';\nimport '../../typography/fhi-body/fhi-body.component';\n\nexport const FhiDataTableSelector = 'fhi-data-table';\n\n/**\n * ## FHI Table\n *\n * {@link https://designsystem.fhi.no/?path=/docs/komponenter-data-table--docs}\n *\n * The `<fhi-data-table>` component is an implementation of a table according to the FHI Design System guidelines.\n * It allows users to display tabular data in a structured format using `<fhi-data-table-row>` and `<fhi-data-table-cell>` components.\n *\n * The `<fhi-data-table>` component does not use the native HTML `<table>` element. Instead, it relies on CSS `display: table` to achieve the desired layout and styling.\n *\n * Example usage:\n * ```html\n * <fhi-data-table caption=\"Example Table\">\n * <fhi-data-table-row variant=\"header\">\n * <fhi-data-table-cell>Header 1</fhi-data-table-cell>\n * <fhi-data-table-cell>Header 2</fhi-data-table-cell>\n * <fhi-data-table-cell>Header 3</fhi-data-table-cell>\n * </fhi-data-table-row>\n * <fhi-data-table-row>\n * <fhi-data-table-cell>Data 1</fhi-data-table-cell>\n * <fhi-data-table-cell>Data 2</fhi-data-table-cell>\n * <fhi-data-table-cell>Data 3</fhi-data-table-cell>\n * </fhi-data-table-row>\n * </fhi-data-table>\n * ```\n *\n * @tag fhi-data-table\n * @element fhi-data-table\n *\n * @slot - The content of the table, consisting of `<fhi-data-table-row>` elements which in turn contain `<fhi-data-table-cell>` elements.\n *\n */\n@customElement(FhiDataTableSelector)\nexport class FhiDataTable extends LitElement {\n /**\n * The caption of the table. This should provide a brief description of the table's content.\n * @type {string}\n */\n @property({ type: String, reflect: true })\n caption?: string;\n\n /**\n * If set to true, the table will have alternating row colors (striped effect) for better readability.\n * @type {boolean}\n */\n @property({ type: Boolean, reflect: true })\n striped?: boolean;\n\n connectedCallback(): void {\n super.connectedCallback();\n\n this.role = 'table';\n }\n\n protected update(changedProperties: PropertyValues): void {\n super.update(changedProperties);\n }\n\n protected updated(changedProperties: PropertyValues): void {\n super.updated(changedProperties);\n\n if (changedProperties.has('caption')) {\n if (this.caption) {\n this.setAttribute('aria-label', this.caption);\n } else {\n this.removeAttribute('aria-label');\n }\n }\n }\n\n render() {\n return html`\n <div class=\"table-content\">\n <slot></slot>\n </div>\n ${this.caption\n ? html`<fhi-body class=\"caption\" size=\"small\"\n >${this.caption}</fhi-body\n >`\n : null}\n `;\n }\n\n static styles = css`\n :host {\n --fhi-data-table-border-color: unset;\n --fhi-data-table-border-radius: unset;\n\n --fhi-data-table-background: unset;\n }\n\n :host {\n --fhi-data-table-border-color: var(--fhi-color-neutral-surface-active);\n --fhi-data-table-border-radius: var(--fhi-border-radius-100);\n\n color: var(--fhi-color-neutral-text-default);\n\n .caption {\n display: block;\n padding: var(--fhi-spacing-150);\n }\n\n .table-content {\n display: table;\n width: 100%;\n overflow: hidden;\n border: var(--fhi-dimension-border-width) solid\n var(--fhi-data-table-border-color);\n border-radius: var(--fhi-data-table-border-radius);\n background: var(--fhi-data-table-background);\n }\n\n ::slotted(fhi-data-table-row:last-child) {\n --fhi-data-table-row-border-style: none none none none;\n --fhi-data-table-row-border-width: unset;\n --fhi-data-table-row-border-color: unset;\n }\n }\n\n :host([striped]) {\n ::slotted(fhi-data-table-row:nth-child(even)) {\n --fhi-data-table-row-background: var(\n --fhi-color-neutral-background-subtle\n );\n }\n\n ::slotted(fhi-data-table-row:nth-child(odd)) {\n --fhi-data-table-row-background: var(\n --fhi-color-neutral-background-default\n );\n }\n }\n `;\n}\n"],"names":["FhiDataTableSelector","FhiDataTable","LitElement","changedProperties","html","css","__decorateClass","property","customElement"],"mappings":";;;;;;;;AAMO,MAAMA,IAAuB;AAmC7B,IAAMC,IAAN,cAA2BC,EAAW;AAAA,EAe3C,oBAA0B;AACxB,UAAM,kBAAA,GAEN,KAAK,OAAO;AAAA,EACd;AAAA,EAEU,OAAOC,GAAyC;AACxD,UAAM,OAAOA,CAAiB;AAAA,EAChC;AAAA,EAEU,QAAQA,GAAyC;AACzD,UAAM,QAAQA,CAAiB,GAE3BA,EAAkB,IAAI,SAAS,MAC7B,KAAK,UACP,KAAK,aAAa,cAAc,KAAK,OAAO,IAE5C,KAAK,gBAAgB,YAAY;AAAA,EAGvC;AAAA,EAEA,SAAS;AACP,WAAOC;AAAAA;AAAAA;AAAAA;AAAAA,QAIH,KAAK,UACHA;AAAAA,eACK,KAAK,OAAO;AAAA,eAEjB,IAAI;AAAA;AAAA,EAEZ;AAoDF;AApGaH,EAkDJ,SAASI;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AA5ChBC,EAAA;AAAA,EADCC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GAL9BN,EAMX,WAAA,WAAA,CAAA;AAOAK,EAAA;AAAA,EADCC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAZ/BN,EAaX,WAAA,WAAA,CAAA;AAbWA,IAANK,EAAA;AAAA,EADNE,EAAcR,CAAoB;AAAA,GACtBC,CAAA;"}
1
+ {"version":3,"file":"fhi-data-table.js","names":[],"sources":["../../src/components/data-table/fhi-data-table/fhi-data-table.component.ts"],"sourcesContent":["import { html, css, LitElement, PropertyValues } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\n\nimport '../../fhi-grid/fhi-grid.component';\nimport '../../typography/fhi-body/fhi-body.component';\n\nexport const FhiDataTableSelector = 'fhi-data-table';\n\n/**\n * ## FHI Table\n *\n * {@link https://designsystem.fhi.no/?path=/docs/komponenter-data-table--docs}\n *\n * The `<fhi-data-table>` component is an implementation of a table according to the FHI Design System guidelines.\n * It allows users to display tabular data in a structured format using `<fhi-data-table-row>` and `<fhi-data-table-cell>` components.\n *\n * The `<fhi-data-table>` component does not use the native HTML `<table>` element. Instead, it relies on CSS `display: table` to achieve the desired layout and styling.\n *\n * Example usage:\n * ```html\n * <fhi-data-table caption=\"Example Table\">\n * <fhi-data-table-row variant=\"header\">\n * <fhi-data-table-cell>Header 1</fhi-data-table-cell>\n * <fhi-data-table-cell>Header 2</fhi-data-table-cell>\n * <fhi-data-table-cell>Header 3</fhi-data-table-cell>\n * </fhi-data-table-row>\n * <fhi-data-table-row>\n * <fhi-data-table-cell>Data 1</fhi-data-table-cell>\n * <fhi-data-table-cell>Data 2</fhi-data-table-cell>\n * <fhi-data-table-cell>Data 3</fhi-data-table-cell>\n * </fhi-data-table-row>\n * </fhi-data-table>\n * ```\n *\n * @tag fhi-data-table\n * @element fhi-data-table\n *\n * @slot - The content of the table, consisting of `<fhi-data-table-row>` elements which in turn contain `<fhi-data-table-cell>` elements.\n *\n */\n@customElement(FhiDataTableSelector)\nexport class FhiDataTable extends LitElement {\n /**\n * The caption of the table. This should provide a brief description of the table's content.\n * @type {string}\n */\n @property({ type: String, reflect: true })\n caption?: string;\n\n /**\n * If set to true, the table will have alternating row colors (striped effect) for better readability.\n * @type {boolean}\n */\n @property({ type: Boolean, reflect: true })\n striped?: boolean;\n\n connectedCallback(): void {\n super.connectedCallback();\n\n this.role = 'table';\n }\n\n protected update(changedProperties: PropertyValues): void {\n super.update(changedProperties);\n }\n\n protected updated(changedProperties: PropertyValues): void {\n super.updated(changedProperties);\n\n if (changedProperties.has('caption')) {\n if (this.caption) {\n this.setAttribute('aria-label', this.caption);\n } else {\n this.removeAttribute('aria-label');\n }\n }\n }\n\n render() {\n return html`\n <div class=\"table-content\">\n <slot></slot>\n </div>\n ${this.caption\n ? html`<fhi-body class=\"caption\" size=\"small\"\n >${this.caption}</fhi-body\n >`\n : null}\n `;\n }\n\n static styles = css`\n :host {\n --fhi-data-table-border-color: unset;\n --fhi-data-table-border-radius: unset;\n\n --fhi-data-table-background: unset;\n }\n\n :host {\n --fhi-data-table-border-color: var(--fhi-color-neutral-surface-active);\n --fhi-data-table-border-radius: var(--fhi-border-radius-100);\n\n color: var(--fhi-color-neutral-text-default);\n\n .caption {\n display: block;\n padding: var(--fhi-spacing-150);\n }\n\n .table-content {\n display: table;\n width: 100%;\n overflow: hidden;\n border: var(--fhi-dimension-border-width) solid\n var(--fhi-data-table-border-color);\n border-radius: var(--fhi-data-table-border-radius);\n background: var(--fhi-data-table-background);\n }\n\n ::slotted(fhi-data-table-row:last-child) {\n --fhi-data-table-row-border-style: none none none none;\n --fhi-data-table-row-border-width: unset;\n --fhi-data-table-row-border-color: unset;\n }\n }\n\n :host([striped]) {\n ::slotted(fhi-data-table-row:nth-child(even)) {\n --fhi-data-table-row-background: var(\n --fhi-color-neutral-background-subtle\n );\n }\n\n ::slotted(fhi-data-table-row:nth-child(odd)) {\n --fhi-data-table-row-background: var(\n --fhi-color-neutral-background-default\n );\n }\n }\n `;\n}\n"],"mappings":";;;;AAMA,IAAa,IAAuB,kBAmC7B,IAAA,cAA2B,EAAW;CAe3C,oBAA0B;EAGxB,AAFA,MAAM,kBAAkB,GAExB,KAAK,OAAO;CACd;CAEA,OAAiB,GAAyC;EACxD,MAAM,OAAO,CAAiB;CAChC;CAEA,QAAkB,GAAyC;EAGzD,AAFA,MAAM,QAAQ,CAAiB,GAE3B,EAAkB,IAAI,SAAS,MAC7B,KAAK,UACP,KAAK,aAAa,cAAc,KAAK,OAAO,IAE5C,KAAK,gBAAgB,YAAY;CAGvC;CAEA,SAAS;EACP,OAAO,CAAI;;;;QAIP,KAAK,UACH,CAAI;eACC,KAAK,QAAQ;eAElB,KAAK;;CAEb;;gBAEgB,CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkDrB;GA/FG,EAAS;CAAE,MAAM;CAAQ,SAAS;AAAK,CAAC,CAAA,GAAA,EAAA,WAAA,WAAA,KAAA,CAAA,MAOxC,EAAS;CAAE,MAAM;CAAS,SAAS;AAAK,CAAC,CAAA,GAAA,EAAA,WAAA,WAAA,KAAA,CAAA,UAb3C,EAAc,CAAoB,CAAA,GAAA,CAAA"}
@@ -0,0 +1,278 @@
1
+ import { a as e, d as t, o as n, r, s as i, t as a, u as o } from "./decorate-DFXIek-k.js";
2
+ import { t as s } from "./if-defined-Dl-W5B5_.js";
3
+ import "./fhi-icon-calendar.js";
4
+ //#region src/utils/browser.ts
5
+ var c = () => /^((?!chrome|android).)*safari/i.test(navigator.userAgent), l = "fhi-date-input", u = class extends i {
6
+ static {
7
+ this.formAssociated = !0;
8
+ }
9
+ get name() {
10
+ return this._name;
11
+ }
12
+ set name(e) {
13
+ let t = this._name;
14
+ this._name = e, this.requestUpdate("name", t), this._internals.setFormValue(this.value ?? null);
15
+ }
16
+ get value() {
17
+ return this._value;
18
+ }
19
+ set value(e) {
20
+ let t = this._value;
21
+ this._value = e, this.requestUpdate("value", t), this._internals.setFormValue(this._value ?? null);
22
+ }
23
+ constructor() {
24
+ super(), this.label = void 0, this.message = void 0, this.helpText = void 0, this.min = void 0, this.max = void 0, this.status = void 0, this.readonly = !1, this.disabled = !1, this._name = void 0, this._value = "", this._internals = this.attachInternals();
25
+ }
26
+ connectedCallback() {
27
+ super.connectedCallback(), this._internals.setFormValue(this.value ?? null);
28
+ }
29
+ _handleChange() {
30
+ this._dispatchChangeEvent();
31
+ }
32
+ _dispatchChangeEvent() {
33
+ this.dispatchEvent(new Event("change", {
34
+ bubbles: !0,
35
+ composed: !0
36
+ }));
37
+ }
38
+ _handleInput(e) {
39
+ this.value = this._input.value, this._internals.setFormValue(this.value ?? null), e.stopPropagation(), this._dispatchInputEvent();
40
+ }
41
+ _dispatchInputEvent() {
42
+ this.dispatchEvent(new Event("input", {
43
+ bubbles: !0,
44
+ composed: !0
45
+ }));
46
+ }
47
+ _handleKeyDown(e) {
48
+ e.key === "Enter" && this._internals.form && this._internals.form.requestSubmit();
49
+ }
50
+ formResetCallback() {
51
+ this.value = this.getAttribute("value"), this._internals.setFormValue(this.value ?? null);
52
+ }
53
+ _showDate(e) {
54
+ e && e.type == "keydown" && e.key !== "Enter" && e.code !== "Space" || this._input.showPicker();
55
+ }
56
+ render() {
57
+ return o`
58
+ ${this.label && o`<label for="input-element">${this.label}</label>`}
59
+ ${this.helpText && o`<p class="help-text">${this.helpText}</p>`}
60
+ <div class="input-container">
61
+ <input
62
+ type="date"
63
+ id="input-element"
64
+ name=${s(this.name)}
65
+ min=${s(this.min)}
66
+ max=${s(this.max)}
67
+ .value=${this.value ?? ""}
68
+ ?readonly=${this.readonly}
69
+ ?disabled=${this.disabled}
70
+ @change=${this._handleChange}
71
+ @input=${this._handleInput}
72
+ @keydown=${this._handleKeyDown}
73
+ />
74
+ <span
75
+ class="date-icon"
76
+ @click=${this._showDate}
77
+ @keydown=${this._showDate}
78
+ tabindex=${c() ? "-1" : "0"}
79
+ role="button"
80
+ aria-label="Vis datovelger"
81
+ aria-haspopup="true"
82
+ ><fhi-icon-calendar></fhi-icon-calendar
83
+ ></span>
84
+ </div>
85
+ ${this.message && o`<p class="message">${this.message}</p>`}
86
+ `;
87
+ }
88
+ static {
89
+ this.styles = t`
90
+ :host {
91
+ display: flex;
92
+ flex-direction: column;
93
+ font-family: var(--fhi-font-family-default);
94
+ -webkit-font-smoothing: antialiased;
95
+ width: calc(var(--fhi-spacing-1000) * 2);
96
+
97
+ label {
98
+ font-weight: var(--fhi-typography-label-small-font-weight);
99
+ font-size: var(--fhi-typography-label-small-font-size);
100
+ line-height: var(--fhi-typography-label-small-line-height);
101
+ letter-spacing: var(--fhi-typography-label-small-letter-spacing);
102
+ color: var(--fhi-color-neutral-text-default);
103
+ margin: 0 0 var(--fhi-spacing-050) 0;
104
+ }
105
+ label:has(+ p) {
106
+ margin: 0 0 0 0;
107
+ }
108
+
109
+ input[type='date'] {
110
+ font-family: var(--fhi-font-family-default);
111
+ font-weight: var(--fhi-typography-body-medium-font-weight);
112
+ font-size: var(--fhi-typography-body-medium-font-size);
113
+ line-height: var(--fhi-typography-body-medium-line-height);
114
+ letter-spacing: var(--fhi-typography-body-medium-letter-spacing);
115
+ box-sizing: border-box;
116
+ height: var(--fhi-spacing-500);
117
+ border: var(--fhi-dimension-border-width) solid
118
+ var(--fhi-color-neutral-border-default);
119
+ border-radius: var(--fhi-border-radius-050);
120
+ padding: 0 var(--fhi-spacing-150) 0 var(--fhi-spacing-150);
121
+
122
+ color: var(--fhi-color-neutral-text-default);
123
+ background-color: var(--fhi-color-neutral-background-default);
124
+ transition: all var(--fhi-motion-ease-default)
125
+ var(--fhi-motion-duration-quick);
126
+ appearance: none;
127
+ -moz-appearance: none;
128
+ -webkit-appearance: none;
129
+ width: 100%;
130
+ &:hover {
131
+ border-color: var(--fhi-color-accent-border-default);
132
+ background-color: var(--fhi-color-accent-background-subtle);
133
+ }
134
+ &:focus {
135
+ border-color: var(--fhi-color-accent-border-strong);
136
+ background-color: var(--fhi-color-accent-background-default);
137
+ }
138
+ }
139
+ .message {
140
+ margin: var(--fhi-spacing-050) 0 0 0;
141
+ color: var(--fhi-color-neutral-text-default);
142
+ font-weight: var(--fhi-typography-body-small-font-weight);
143
+ font-size: var(--fhi-typography-body-small-font-size);
144
+ line-height: var(--fhi-typography-body-small-line-height);
145
+ letter-spacing: var(--fhi-typography-body-small-letter-spacing);
146
+ }
147
+
148
+ .help-text {
149
+ color: var(--fhi-color-neutral-text-subtle);
150
+ font-weight: var(--fhi-typography-body-small-font-weight);
151
+ font-size: var(--fhi-typography-body-small-font-size);
152
+ line-height: var(--fhi-typography-body-small-line-height);
153
+ letter-spacing: var(--fhi-typography-body-small-letter-spacing);
154
+ margin: 0 0 var(--fhi-spacing-050) 0;
155
+ }
156
+ [type='date']::-webkit-inner-spin-button {
157
+ opacity: 0;
158
+ }
159
+ [type='date']::-webkit-calendar-picker-indicator {
160
+ opacity: 0;
161
+ -webkit-appearance: none;
162
+ display: none;
163
+ visibility: hidden;
164
+
165
+ &:target {
166
+ outline: solid;
167
+ font-size: 5rem;
168
+ }
169
+ }
170
+ .input-container {
171
+ height: var(--fhi-spacing-500);
172
+ position: relative;
173
+ }
174
+ .date-icon {
175
+ position: absolute;
176
+ right: 0;
177
+ top: 50%;
178
+ transform: translateY(-50%);
179
+ margin-right: var(--fhi-spacing-100);
180
+ height: fit-content;
181
+ transition: all var(--fhi-motion-ease-default)
182
+ var(--fhi-motion-duration-quick);
183
+ border-radius: var(--fhi-border-radius-050);
184
+ &:focus {
185
+ outline: solid var(--fhi-color-accent-border-default);
186
+ }
187
+ }
188
+ }
189
+
190
+ :host([disabled]) {
191
+ opacity: var(--fhi-opacity-disabled);
192
+ cursor: not-allowed;
193
+ * {
194
+ cursor: not-allowed;
195
+ }
196
+ input[type='date'] {
197
+ &:hover {
198
+ border-color: var(--fhi-color-neutral-border-default);
199
+ background-color: var(--fhi-color-neutral-background-default);
200
+ }
201
+ }
202
+ .date-icon {
203
+ background-color: unset;
204
+ &:focus {
205
+ outline: none;
206
+ }
207
+ }
208
+ }
209
+
210
+ :host([readonly]:not([disabled])) {
211
+ input[type='date'] {
212
+ border: unset;
213
+ border-radius: unset;
214
+ background-color: unset;
215
+ border-left: var(--fhi-dimension-border-width) solid
216
+ var(--fhi-color-neutral-border-default);
217
+ &:hover + .date-icon {
218
+ background-color: unset;
219
+ }
220
+ }
221
+ .date-icon {
222
+ background-color: unset;
223
+ display: none;
224
+ }
225
+ }
226
+
227
+ :host([status='error']:not([disabled]):not([readonly])) {
228
+ label {
229
+ color: var(--fhi-color-danger-text-default);
230
+ }
231
+ input[type='date'] {
232
+ border-color: var(--fhi-color-danger-border-strong);
233
+ background-color: var(--fhi-color-danger-background-default);
234
+ color: var(--fhi-color-danger-text-default);
235
+ }
236
+ .message {
237
+ color: var(--fhi-color-danger-text-subtle);
238
+ }
239
+ .help-text {
240
+ color: var(--fhi-color-danger-text-default);
241
+ }
242
+ .date-icon {
243
+ background-color: var(--fhi-color-danger-background-default);
244
+ color: var(--fhi-color-danger-text-default);
245
+ }
246
+ }
247
+
248
+ @-moz-document url-prefix() {
249
+ :host {
250
+ .date-icon {
251
+ display: none;
252
+ visibility: hidden;
253
+ }
254
+ }
255
+ }
256
+ `;
257
+ }
258
+ };
259
+ a([e({ type: String })], u.prototype, "label", void 0), a([e({ type: String })], u.prototype, "message", void 0), a([e({
260
+ type: String,
261
+ attribute: "help-text"
262
+ })], u.prototype, "helpText", void 0), a([e({ type: String })], u.prototype, "min", void 0), a([e({ type: String })], u.prototype, "max", void 0), a([e({
263
+ type: String,
264
+ reflect: !0
265
+ })], u.prototype, "status", void 0), a([e({
266
+ type: Boolean,
267
+ reflect: !0
268
+ })], u.prototype, "readonly", void 0), a([e({
269
+ type: Boolean,
270
+ reflect: !0
271
+ })], u.prototype, "disabled", void 0), a([r("#input-element")], u.prototype, "_input", void 0), a([e({
272
+ type: String,
273
+ reflect: !0
274
+ })], u.prototype, "name", null), a([e({ type: String })], u.prototype, "value", null), u = a([n(l)], u);
275
+ //#endregion
276
+ export { l as n, u as t };
277
+
278
+ //# sourceMappingURL=fhi-date-input.component-Bus7CeKM.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fhi-date-input.component-Bus7CeKM.js","names":[],"sources":["../../src/utils/browser.ts","../../src/components/fhi-date-input/fhi-date-input.component.ts"],"sourcesContent":["/**\n * Check if the browser is Safari\n * @returns `true` if the browser is Safari\n */\nconst isSafari = () => {\n return /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n};\n\nexport { isSafari };\n","import { html, css, LitElement } from 'lit';\nimport { customElement, property, query } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport '../icons/fhi-icon-calendar.component.js';\n\nimport { isSafari } from '../../utils/browser';\n\nexport const FhiDateInputSelector = 'fhi-date-input';\n\nexport type FhiDateValue = `${number}-${number}-${number}` | undefined; // YYYY-MM-DD\n\n/**\n * ## FHI Date input\n *\n * {@link https://designsystemet.dhi.no/?path=/docs/komponenter-date-input--docs}\n *\n * The `<fhi-date-input>` component represents a date input field styled and implemented according to the FHI Design System guidelines.\n * It allows users to select or input a date.\n *\n * @tag fhi-date-input\n * @element fhi-date-input\n *\n */\n@customElement(FhiDateInputSelector)\nexport class FhiDateInput extends LitElement {\n /** @internal */\n static readonly formAssociated = true;\n\n /**\n * The text that labels the input field.\n * An input field should always have a label to ensure accessibility.\n * @type {string}\n */\n @property({ type: String }) label?: string = undefined;\n\n /**\n * The message shown beneath the input field.\n * This is often used to provide additional information or feedback to the user.\n * @type {string}\n */\n @property({ type: String }) message?: string = undefined;\n\n /**\n * The help-text shown above the input field.\n * This is often used to provide additional information to the user.\n * @type {string}\n */\n @property({ type: String, attribute: 'help-text' }) helpText?: string =\n undefined;\n\n /**\n * Sets minium date available for selection in the input field. Format `YYYY-MM-DD`.\n * @type {string}\n */\n @property({ type: String }) min?: FhiDateValue = undefined;\n\n /**\n * Sets maximum date available for selection in the input field. Format `YYYY-MM-DD`.\n * @type {string}\n */\n @property({ type: String }) max?: FhiDateValue = undefined;\n\n /**\n * Sets the visual status of the input. There is currently only one status available: `error`.\n *\n * The `error` status is used to indicate that there is an issue with the input, such as invalid or missing data.\n * @reflect\n * @type {'error'}\n */\n @property({ type: String, reflect: true }) status?: 'error' = undefined;\n\n /**\n * Sets the input to read-only. A read-only field cannot be modified by the user but may be submitted with the form.\n * @reflect\n * @type {boolean}\n */\n @property({ type: Boolean, reflect: true }) readonly? = false;\n\n /**\n * Disables the input. This changes its appearance and makes it non-interactive.\n * @reflect\n * @type {boolean}\n */\n @property({ type: Boolean, reflect: true }) disabled? = false;\n\n @query('#input-element')\n private _input!: HTMLInputElement;\n\n private _name?: string | undefined = undefined;\n\n /**\n * The name of the input. This is submitted with the form data as a `key`.\n *\n * This attribute conforms with the standard HTML `name` attribute for input fields.\n * See: {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#name}\n *\n * @reflect\n * @type {string}\n */\n @property({ type: String, reflect: true })\n get name(): string | undefined {\n return this._name;\n }\n\n set name(newName: string | undefined) {\n const oldName = this._name;\n this._name = newName;\n this.requestUpdate('name', oldName);\n this._internals.setFormValue(this.value ?? null);\n }\n\n private _value?: string = '';\n\n /**\n * The default value of the input field, formatted as `YYYY-MM-DD`.\n *\n * You can fetch the current value of the date input by accessing this property directly on the component instance, or by listening for the `change` or `input` events which are dispatched whenever the value changes.\n *\n * This attribute conforms with the standard HTML `value` attribute for input fields.\n * See: {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#value}\n *\n * @type {string}\n */\n @property({ type: String })\n get value(): FhiDateValue {\n return this._value as FhiDateValue;\n }\n\n set value(newValue: FhiDateValue) {\n const oldValue = this._value;\n this._value = newValue;\n this.requestUpdate('value', oldValue);\n this._internals.setFormValue(this._value ?? null);\n }\n\n private _internals: ElementInternals;\n\n constructor() {\n super();\n this._internals = this.attachInternals();\n }\n\n public connectedCallback(): void {\n super.connectedCallback();\n this._internals.setFormValue(this.value ?? null);\n }\n\n private _handleChange(): void {\n this._dispatchChangeEvent();\n }\n\n private _dispatchChangeEvent(): void {\n /**\n * @type {Event} - Standard DOM event with the type `change`.\n * This event is dispatched when the value of the input changes.\n */\n this.dispatchEvent(\n new Event('change', {\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n private _handleInput(event: Event): void {\n this.value = this._input.value as FhiDateValue;\n this._internals.setFormValue(this.value ?? null);\n event.stopPropagation();\n this._dispatchInputEvent();\n }\n\n private _dispatchInputEvent(): void {\n /**\n * @type {Event} - Standard DOM event with the type `input`.\n * This event is dispatched when the value of the input changes.\n */\n this.dispatchEvent(\n new Event('input', {\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n private _handleKeyDown(event: KeyboardEvent): void {\n if (event.key === 'Enter' && this._internals.form) {\n this._internals.form!.requestSubmit();\n }\n }\n\n public formResetCallback(): void {\n this.value = this.getAttribute('value') as FhiDateValue;\n this._internals.setFormValue(this.value ?? null);\n }\n\n private _showDate(event?: KeyboardEvent) {\n if (\n event &&\n event.type == 'keydown' &&\n event.key !== 'Enter' &&\n event.code !== 'Space'\n ) {\n return;\n }\n this._input.showPicker();\n }\n\n render() {\n return html`\n ${this.label && html`<label for=\"input-element\">${this.label}</label>`}\n ${this.helpText && html`<p class=\"help-text\">${this.helpText}</p>`}\n <div class=\"input-container\">\n <input\n type=\"date\"\n id=\"input-element\"\n name=${ifDefined(this.name)}\n min=${ifDefined(this.min)}\n max=${ifDefined(this.max)}\n .value=${this.value ?? ''}\n ?readonly=${this.readonly}\n ?disabled=${this.disabled}\n @change=${this._handleChange}\n @input=${this._handleInput}\n @keydown=${this._handleKeyDown}\n />\n <span\n class=\"date-icon\"\n @click=${this._showDate}\n @keydown=${this._showDate}\n tabindex=${isSafari() ? '-1' : '0'}\n role=\"button\"\n aria-label=\"Vis datovelger\"\n aria-haspopup=\"true\"\n ><fhi-icon-calendar></fhi-icon-calendar\n ></span>\n </div>\n ${this.message && html`<p class=\"message\">${this.message}</p>`}\n `;\n }\n\n static styles = css`\n :host {\n display: flex;\n flex-direction: column;\n font-family: var(--fhi-font-family-default);\n -webkit-font-smoothing: antialiased;\n width: calc(var(--fhi-spacing-1000) * 2);\n\n label {\n font-weight: var(--fhi-typography-label-small-font-weight);\n font-size: var(--fhi-typography-label-small-font-size);\n line-height: var(--fhi-typography-label-small-line-height);\n letter-spacing: var(--fhi-typography-label-small-letter-spacing);\n color: var(--fhi-color-neutral-text-default);\n margin: 0 0 var(--fhi-spacing-050) 0;\n }\n label:has(+ p) {\n margin: 0 0 0 0;\n }\n\n input[type='date'] {\n font-family: var(--fhi-font-family-default);\n font-weight: var(--fhi-typography-body-medium-font-weight);\n font-size: var(--fhi-typography-body-medium-font-size);\n line-height: var(--fhi-typography-body-medium-line-height);\n letter-spacing: var(--fhi-typography-body-medium-letter-spacing);\n box-sizing: border-box;\n height: var(--fhi-spacing-500);\n border: var(--fhi-dimension-border-width) solid\n var(--fhi-color-neutral-border-default);\n border-radius: var(--fhi-border-radius-050);\n padding: 0 var(--fhi-spacing-150) 0 var(--fhi-spacing-150);\n\n color: var(--fhi-color-neutral-text-default);\n background-color: var(--fhi-color-neutral-background-default);\n transition: all var(--fhi-motion-ease-default)\n var(--fhi-motion-duration-quick);\n appearance: none;\n -moz-appearance: none;\n -webkit-appearance: none;\n width: 100%;\n &:hover {\n border-color: var(--fhi-color-accent-border-default);\n background-color: var(--fhi-color-accent-background-subtle);\n }\n &:focus {\n border-color: var(--fhi-color-accent-border-strong);\n background-color: var(--fhi-color-accent-background-default);\n }\n }\n .message {\n margin: var(--fhi-spacing-050) 0 0 0;\n color: var(--fhi-color-neutral-text-default);\n font-weight: var(--fhi-typography-body-small-font-weight);\n font-size: var(--fhi-typography-body-small-font-size);\n line-height: var(--fhi-typography-body-small-line-height);\n letter-spacing: var(--fhi-typography-body-small-letter-spacing);\n }\n\n .help-text {\n color: var(--fhi-color-neutral-text-subtle);\n font-weight: var(--fhi-typography-body-small-font-weight);\n font-size: var(--fhi-typography-body-small-font-size);\n line-height: var(--fhi-typography-body-small-line-height);\n letter-spacing: var(--fhi-typography-body-small-letter-spacing);\n margin: 0 0 var(--fhi-spacing-050) 0;\n }\n [type='date']::-webkit-inner-spin-button {\n opacity: 0;\n }\n [type='date']::-webkit-calendar-picker-indicator {\n opacity: 0;\n -webkit-appearance: none;\n display: none;\n visibility: hidden;\n\n &:target {\n outline: solid;\n font-size: 5rem;\n }\n }\n .input-container {\n height: var(--fhi-spacing-500);\n position: relative;\n }\n .date-icon {\n position: absolute;\n right: 0;\n top: 50%;\n transform: translateY(-50%);\n margin-right: var(--fhi-spacing-100);\n height: fit-content;\n transition: all var(--fhi-motion-ease-default)\n var(--fhi-motion-duration-quick);\n border-radius: var(--fhi-border-radius-050);\n &:focus {\n outline: solid var(--fhi-color-accent-border-default);\n }\n }\n }\n\n :host([disabled]) {\n opacity: var(--fhi-opacity-disabled);\n cursor: not-allowed;\n * {\n cursor: not-allowed;\n }\n input[type='date'] {\n &:hover {\n border-color: var(--fhi-color-neutral-border-default);\n background-color: var(--fhi-color-neutral-background-default);\n }\n }\n .date-icon {\n background-color: unset;\n &:focus {\n outline: none;\n }\n }\n }\n\n :host([readonly]:not([disabled])) {\n input[type='date'] {\n border: unset;\n border-radius: unset;\n background-color: unset;\n border-left: var(--fhi-dimension-border-width) solid\n var(--fhi-color-neutral-border-default);\n &:hover + .date-icon {\n background-color: unset;\n }\n }\n .date-icon {\n background-color: unset;\n display: none;\n }\n }\n\n :host([status='error']:not([disabled]):not([readonly])) {\n label {\n color: var(--fhi-color-danger-text-default);\n }\n input[type='date'] {\n border-color: var(--fhi-color-danger-border-strong);\n background-color: var(--fhi-color-danger-background-default);\n color: var(--fhi-color-danger-text-default);\n }\n .message {\n color: var(--fhi-color-danger-text-subtle);\n }\n .help-text {\n color: var(--fhi-color-danger-text-default);\n }\n .date-icon {\n background-color: var(--fhi-color-danger-background-default);\n color: var(--fhi-color-danger-text-default);\n }\n }\n\n @-moz-document url-prefix() {\n :host {\n .date-icon {\n display: none;\n visibility: hidden;\n }\n }\n }\n `;\n}\n"],"mappings":"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"}