@nldd/design-system 0.8.69 → 0.8.70

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 (252) hide show
  1. package/custom-elements.json +29536 -0
  2. package/dist/components/actions/button/button.d.ts +2 -0
  3. package/dist/components/actions/button/button.d.ts.map +1 -1
  4. package/dist/components/actions/button/button.js +2 -0
  5. package/dist/components/actions/button/button.js.map +1 -1
  6. package/dist/components/actions/button/button.styles.d.ts.map +1 -1
  7. package/dist/components/actions/button/button.styles.js +1 -0
  8. package/dist/components/actions/button/button.styles.js.map +1 -1
  9. package/dist/components/actions/icon-button/icon-button.d.ts +2 -0
  10. package/dist/components/actions/icon-button/icon-button.d.ts.map +1 -1
  11. package/dist/components/actions/icon-button/icon-button.js +2 -0
  12. package/dist/components/actions/icon-button/icon-button.js.map +1 -1
  13. package/dist/components/actions/icon-button/icon-button.styles.d.ts.map +1 -1
  14. package/dist/components/actions/icon-button/icon-button.styles.js +1 -0
  15. package/dist/components/actions/icon-button/icon-button.styles.js.map +1 -1
  16. package/dist/components/actions/menu/menu.styles.d.ts.map +1 -1
  17. package/dist/components/actions/menu/menu.styles.js +1 -0
  18. package/dist/components/actions/menu/menu.styles.js.map +1 -1
  19. package/dist/components/actions/toolbar/toolbar.d.ts +4 -0
  20. package/dist/components/actions/toolbar/toolbar.d.ts.map +1 -1
  21. package/dist/components/actions/toolbar/toolbar.js +4 -0
  22. package/dist/components/actions/toolbar/toolbar.js.map +1 -1
  23. package/dist/components/components.js +85 -82
  24. package/dist/components/content/avatar/avatar.styles.d.ts.map +1 -1
  25. package/dist/components/content/avatar/avatar.styles.js +2 -1
  26. package/dist/components/content/avatar/avatar.styles.js.map +1 -1
  27. package/dist/components/content/code-viewer/code-viewer.d.ts.map +1 -1
  28. package/dist/components/content/code-viewer/code-viewer.js +2 -0
  29. package/dist/components/content/code-viewer/code-viewer.js.map +1 -1
  30. package/dist/components/content/icon/icon-aliases.d.ts.map +1 -1
  31. package/dist/components/content/icon/icon-aliases.js +19 -2
  32. package/dist/components/content/icon/icon-aliases.js.map +1 -1
  33. package/dist/components/content/icon/icon-registry.d.ts.map +1 -1
  34. package/dist/components/content/icon/icon-registry.js +34 -5
  35. package/dist/components/content/icon/icon-registry.js.map +1 -1
  36. package/dist/components/content/image/image.d.ts +2 -0
  37. package/dist/components/content/image/image.d.ts.map +1 -1
  38. package/dist/components/content/image/image.js +2 -0
  39. package/dist/components/content/image/image.js.map +1 -1
  40. package/dist/components/content/image/lqip-encoder-element.d.ts.map +1 -1
  41. package/dist/components/content/image/lqip-encoder-element.js +1 -0
  42. package/dist/components/content/image/lqip-encoder-element.js.map +1 -1
  43. package/dist/components/content/keyboard-shortcut/keyboard-shortcut.d.ts +4 -0
  44. package/dist/components/content/keyboard-shortcut/keyboard-shortcut.d.ts.map +1 -1
  45. package/dist/components/content/keyboard-shortcut/keyboard-shortcut.js +4 -0
  46. package/dist/components/content/keyboard-shortcut/keyboard-shortcut.js.map +1 -1
  47. package/dist/components/content/token/token.styles.d.ts.map +1 -1
  48. package/dist/components/content/token/token.styles.js +1 -0
  49. package/dist/components/content/token/token.styles.js.map +1 -1
  50. package/dist/components/{index-BfOpap4b.js → index-BP0XMTYa.js} +1 -1
  51. package/dist/components/{index-CXC-Objp.js → index-Bh_hMHn8.js} +1 -1
  52. package/dist/components/{index-VwuVCCal.js → index-BuLJAwiB.js} +7750 -5496
  53. package/dist/components/{index-CfvgUB5p.js → index-CTUlN5qN.js} +1 -1
  54. package/dist/components/{index-DZo3DrGQ.js → index-DS-RnHMu.js} +1 -1
  55. package/dist/components/{index-Bf4pa5Bp.js → index-Dgxr-sEe.js} +1 -1
  56. package/dist/components/{index-DB-i084x.js → index-sa60dMt-.js} +1 -1
  57. package/dist/components/index.d.ts +3 -0
  58. package/dist/components/index.d.ts.map +1 -1
  59. package/dist/components/index.js +3 -0
  60. package/dist/components/index.js.map +1 -1
  61. package/dist/components/inputs/checkbox/checkbox.styles.d.ts.map +1 -1
  62. package/dist/components/inputs/checkbox/checkbox.styles.js +1 -0
  63. package/dist/components/inputs/checkbox/checkbox.styles.js.map +1 -1
  64. package/dist/components/inputs/date-field/date-field.d.ts +226 -0
  65. package/dist/components/inputs/date-field/date-field.d.ts.map +1 -0
  66. package/dist/components/inputs/date-field/date-field.i18n.d.ts +11 -0
  67. package/dist/components/inputs/date-field/date-field.i18n.d.ts.map +1 -0
  68. package/dist/components/inputs/date-field/date-field.i18n.js +17 -0
  69. package/dist/components/inputs/date-field/date-field.i18n.js.map +1 -0
  70. package/dist/components/inputs/date-field/date-field.js +589 -0
  71. package/dist/components/inputs/date-field/date-field.js.map +1 -0
  72. package/dist/components/inputs/date-field/date-field.styles.d.ts +2 -0
  73. package/dist/components/inputs/date-field/date-field.styles.d.ts.map +1 -0
  74. package/dist/components/inputs/date-field/date-field.styles.js +246 -0
  75. package/dist/components/inputs/date-field/date-field.styles.js.map +1 -0
  76. package/dist/components/inputs/date-field/date-field.template.d.ts +17 -0
  77. package/dist/components/inputs/date-field/date-field.template.d.ts.map +1 -0
  78. package/dist/components/inputs/date-field/date-field.template.js +141 -0
  79. package/dist/components/inputs/date-field/date-field.template.js.map +1 -0
  80. package/dist/components/inputs/date-picker/date-picker.d.ts +268 -0
  81. package/dist/components/inputs/date-picker/date-picker.d.ts.map +1 -0
  82. package/dist/components/inputs/date-picker/date-picker.i18n.d.ts +64 -0
  83. package/dist/components/inputs/date-picker/date-picker.i18n.d.ts.map +1 -0
  84. package/dist/components/inputs/date-picker/date-picker.i18n.js +81 -0
  85. package/dist/components/inputs/date-picker/date-picker.i18n.js.map +1 -0
  86. package/dist/components/inputs/date-picker/date-picker.js +748 -0
  87. package/dist/components/inputs/date-picker/date-picker.js.map +1 -0
  88. package/dist/components/inputs/date-picker/date-picker.styles.d.ts +2 -0
  89. package/dist/components/inputs/date-picker/date-picker.styles.d.ts.map +1 -0
  90. package/dist/components/inputs/date-picker/date-picker.styles.js +353 -0
  91. package/dist/components/inputs/date-picker/date-picker.styles.js.map +1 -0
  92. package/dist/components/inputs/date-picker/date-picker.template.d.ts +8 -0
  93. package/dist/components/inputs/date-picker/date-picker.template.d.ts.map +1 -0
  94. package/dist/components/inputs/date-picker/date-picker.template.js +223 -0
  95. package/dist/components/inputs/date-picker/date-picker.template.js.map +1 -0
  96. package/dist/components/inputs/dropdown/dropdown.styles.d.ts.map +1 -1
  97. package/dist/components/inputs/dropdown/dropdown.styles.js +1 -0
  98. package/dist/components/inputs/dropdown/dropdown.styles.js.map +1 -1
  99. package/dist/components/inputs/multi-line-text-field/multi-line-text-field.d.ts +1 -0
  100. package/dist/components/inputs/multi-line-text-field/multi-line-text-field.d.ts.map +1 -1
  101. package/dist/components/inputs/multi-line-text-field/multi-line-text-field.js +1 -0
  102. package/dist/components/inputs/multi-line-text-field/multi-line-text-field.js.map +1 -1
  103. package/dist/components/inputs/password-field/password-field.d.ts +1 -0
  104. package/dist/components/inputs/password-field/password-field.d.ts.map +1 -1
  105. package/dist/components/inputs/password-field/password-field.js +1 -0
  106. package/dist/components/inputs/password-field/password-field.js.map +1 -1
  107. package/dist/components/inputs/radio-button/radio-button.d.ts +3 -0
  108. package/dist/components/inputs/radio-button/radio-button.d.ts.map +1 -1
  109. package/dist/components/inputs/radio-button/radio-button.js +3 -0
  110. package/dist/components/inputs/radio-button/radio-button.js.map +1 -1
  111. package/dist/components/inputs/radio-button/radio-button.styles.d.ts.map +1 -1
  112. package/dist/components/inputs/radio-button/radio-button.styles.js +1 -0
  113. package/dist/components/inputs/radio-button/radio-button.styles.js.map +1 -1
  114. package/dist/components/inputs/radio-button-field/radio-button-field.d.ts +2 -0
  115. package/dist/components/inputs/radio-button-field/radio-button-field.d.ts.map +1 -1
  116. package/dist/components/inputs/radio-button-field/radio-button-field.js +2 -0
  117. package/dist/components/inputs/radio-button-field/radio-button-field.js.map +1 -1
  118. package/dist/components/inputs/radio-button-group/radio-button-group.d.ts +1 -0
  119. package/dist/components/inputs/radio-button-group/radio-button-group.d.ts.map +1 -1
  120. package/dist/components/inputs/radio-button-group/radio-button-group.js +1 -0
  121. package/dist/components/inputs/radio-button-group/radio-button-group.js.map +1 -1
  122. package/dist/components/inputs/segmented-control/segmented-control.d.ts +10 -1
  123. package/dist/components/inputs/segmented-control/segmented-control.d.ts.map +1 -1
  124. package/dist/components/inputs/segmented-control/segmented-control.js +11 -2
  125. package/dist/components/inputs/segmented-control/segmented-control.js.map +1 -1
  126. package/dist/components/inputs/segmented-control/segmented-control.styles.d.ts.map +1 -1
  127. package/dist/components/inputs/segmented-control/segmented-control.styles.js +1 -0
  128. package/dist/components/inputs/segmented-control/segmented-control.styles.js.map +1 -1
  129. package/dist/components/inputs/stepper/stepper.d.ts +1 -0
  130. package/dist/components/inputs/stepper/stepper.d.ts.map +1 -1
  131. package/dist/components/inputs/stepper/stepper.js +1 -0
  132. package/dist/components/inputs/stepper/stepper.js.map +1 -1
  133. package/dist/components/inputs/stepper/stepper.styles.d.ts.map +1 -1
  134. package/dist/components/inputs/stepper/stepper.styles.js +1 -0
  135. package/dist/components/inputs/stepper/stepper.styles.js.map +1 -1
  136. package/dist/components/inputs/switch/switch.d.ts +2 -0
  137. package/dist/components/inputs/switch/switch.d.ts.map +1 -1
  138. package/dist/components/inputs/switch/switch.js +2 -0
  139. package/dist/components/inputs/switch/switch.js.map +1 -1
  140. package/dist/components/inputs/switch/switch.styles.d.ts.map +1 -1
  141. package/dist/components/inputs/switch/switch.styles.js +1 -0
  142. package/dist/components/inputs/switch/switch.styles.js.map +1 -1
  143. package/dist/components/inputs/text-field/text-field.d.ts +1 -0
  144. package/dist/components/inputs/text-field/text-field.d.ts.map +1 -1
  145. package/dist/components/inputs/text-field/text-field.js +1 -0
  146. package/dist/components/inputs/text-field/text-field.js.map +1 -1
  147. package/dist/components/inputs/toggle-button/toggle-button.styles.d.ts.map +1 -1
  148. package/dist/components/inputs/toggle-button/toggle-button.styles.js +1 -0
  149. package/dist/components/inputs/toggle-button/toggle-button.styles.js.map +1 -1
  150. package/dist/components/layout/container/container.d.ts +26 -3
  151. package/dist/components/layout/container/container.d.ts.map +1 -1
  152. package/dist/components/layout/container/container.js +26 -3
  153. package/dist/components/layout/container/container.js.map +1 -1
  154. package/dist/components/layout/page-sections/sidebar-section/sidebar-section.d.ts +2 -2
  155. package/dist/components/layout/page-sections/sidebar-section/sidebar-section.js +2 -2
  156. package/dist/components/layout/popover/popover.d.ts +17 -0
  157. package/dist/components/layout/popover/popover.d.ts.map +1 -1
  158. package/dist/components/layout/popover/popover.js +82 -5
  159. package/dist/components/layout/popover/popover.js.map +1 -1
  160. package/dist/components/layout/sheet/sheet.d.ts +12 -0
  161. package/dist/components/layout/sheet/sheet.d.ts.map +1 -1
  162. package/dist/components/layout/sheet/sheet.js +25 -2
  163. package/dist/components/layout/sheet/sheet.js.map +1 -1
  164. package/dist/components/layout/sheet/sheet.styles.d.ts.map +1 -1
  165. package/dist/components/layout/sheet/sheet.styles.js +6 -1
  166. package/dist/components/layout/sheet/sheet.styles.js.map +1 -1
  167. package/dist/components/layout/sheet/sheet.template.d.ts.map +1 -1
  168. package/dist/components/layout/sheet/sheet.template.js +1 -0
  169. package/dist/components/layout/sheet/sheet.template.js.map +1 -1
  170. package/dist/components/layout/split-views/side-by-side-split-view/side-by-side-split-view.d.ts +1 -0
  171. package/dist/components/layout/split-views/side-by-side-split-view/side-by-side-split-view.d.ts.map +1 -1
  172. package/dist/components/layout/split-views/side-by-side-split-view/side-by-side-split-view.js +5 -0
  173. package/dist/components/layout/split-views/side-by-side-split-view/side-by-side-split-view.js.map +1 -1
  174. package/dist/components/layout/split-views/side-by-side-split-view/side-by-side-split-view.styles.d.ts.map +1 -1
  175. package/dist/components/layout/split-views/side-by-side-split-view/side-by-side-split-view.styles.js +27 -0
  176. package/dist/components/layout/split-views/side-by-side-split-view/side-by-side-split-view.styles.js.map +1 -1
  177. package/dist/components/layout/split-views/stacked-split-view/stacked-split-view.d.ts +2 -0
  178. package/dist/components/layout/split-views/stacked-split-view/stacked-split-view.d.ts.map +1 -1
  179. package/dist/components/layout/split-views/stacked-split-view/stacked-split-view.js +3 -0
  180. package/dist/components/layout/split-views/stacked-split-view/stacked-split-view.js.map +1 -1
  181. package/dist/components/layout/split-views/stacked-split-view/stacked-split-view.styles.d.ts.map +1 -1
  182. package/dist/components/layout/split-views/stacked-split-view/stacked-split-view.styles.js +24 -0
  183. package/dist/components/layout/split-views/stacked-split-view/stacked-split-view.styles.js.map +1 -1
  184. package/dist/components/layout/window/window.d.ts +9 -0
  185. package/dist/components/layout/window/window.d.ts.map +1 -1
  186. package/dist/components/layout/window/window.js +19 -0
  187. package/dist/components/layout/window/window.js.map +1 -1
  188. package/dist/components/layout/window/window.styles.d.ts.map +1 -1
  189. package/dist/components/layout/window/window.styles.js +5 -1
  190. package/dist/components/layout/window/window.styles.js.map +1 -1
  191. package/dist/components/layout/window/window.template.d.ts.map +1 -1
  192. package/dist/components/layout/window/window.template.js +1 -0
  193. package/dist/components/layout/window/window.template.js.map +1 -1
  194. package/dist/components/lists-and-tables/cells/drag-handle-cell/drag-handle-cell.d.ts +1 -0
  195. package/dist/components/lists-and-tables/cells/drag-handle-cell/drag-handle-cell.d.ts.map +1 -1
  196. package/dist/components/lists-and-tables/cells/drag-handle-cell/drag-handle-cell.js +1 -0
  197. package/dist/components/lists-and-tables/cells/drag-handle-cell/drag-handle-cell.js.map +1 -1
  198. package/dist/components/lists-and-tables/list/list.d.ts +14 -0
  199. package/dist/components/lists-and-tables/list/list.d.ts.map +1 -1
  200. package/dist/components/lists-and-tables/list/list.js +14 -0
  201. package/dist/components/lists-and-tables/list/list.js.map +1 -1
  202. package/dist/components/lists-and-tables/list-item/list-item.d.ts +10 -0
  203. package/dist/components/lists-and-tables/list-item/list-item.d.ts.map +1 -1
  204. package/dist/components/lists-and-tables/list-item/list-item.js +10 -0
  205. package/dist/components/lists-and-tables/list-item/list-item.js.map +1 -1
  206. package/dist/components/navigation/document-tab-bar/document-tab-bar.styles.d.ts.map +1 -1
  207. package/dist/components/navigation/document-tab-bar/document-tab-bar.styles.js +1 -0
  208. package/dist/components/navigation/document-tab-bar/document-tab-bar.styles.js.map +1 -1
  209. package/dist/components/navigation/menu-bar/menu-bar.styles.d.ts.map +1 -1
  210. package/dist/components/navigation/menu-bar/menu-bar.styles.js +1 -0
  211. package/dist/components/navigation/menu-bar/menu-bar.styles.js.map +1 -1
  212. package/dist/components/navigation/menu-bar-item/menu-bar-item.d.ts +1 -0
  213. package/dist/components/navigation/menu-bar-item/menu-bar-item.d.ts.map +1 -1
  214. package/dist/components/navigation/menu-bar-item/menu-bar-item.js +1 -0
  215. package/dist/components/navigation/menu-bar-item/menu-bar-item.js.map +1 -1
  216. package/dist/components/navigation/menu-bar-item/menu-bar-item.styles.d.ts.map +1 -1
  217. package/dist/components/navigation/menu-bar-item/menu-bar-item.styles.js +1 -0
  218. package/dist/components/navigation/menu-bar-item/menu-bar-item.styles.js.map +1 -1
  219. package/dist/components/navigation/pagination/pagination.d.ts +1 -0
  220. package/dist/components/navigation/pagination/pagination.d.ts.map +1 -1
  221. package/dist/components/navigation/pagination/pagination.js +1 -0
  222. package/dist/components/navigation/pagination/pagination.js.map +1 -1
  223. package/dist/components/navigation/pagination/pagination.styles.d.ts.map +1 -1
  224. package/dist/components/navigation/pagination/pagination.styles.js +1 -0
  225. package/dist/components/navigation/pagination/pagination.styles.js.map +1 -1
  226. package/dist/components/navigation/tab-bar/tab-bar.d.ts +2 -0
  227. package/dist/components/navigation/tab-bar/tab-bar.d.ts.map +1 -1
  228. package/dist/components/navigation/tab-bar/tab-bar.js +2 -0
  229. package/dist/components/navigation/tab-bar/tab-bar.js.map +1 -1
  230. package/dist/components/navigation/tab-bar/tab-bar.styles.d.ts.map +1 -1
  231. package/dist/components/navigation/tab-bar/tab-bar.styles.js +1 -0
  232. package/dist/components/navigation/tab-bar/tab-bar.styles.js.map +1 -1
  233. package/dist/components/navigation/top-navigation-bar/top-navigation-bar.d.ts +22 -0
  234. package/dist/components/navigation/top-navigation-bar/top-navigation-bar.d.ts.map +1 -1
  235. package/dist/components/navigation/top-navigation-bar/top-navigation-bar.js +22 -0
  236. package/dist/components/navigation/top-navigation-bar/top-navigation-bar.js.map +1 -1
  237. package/dist/components/navigation/top-title-bar/top-title-bar.d.ts +10 -0
  238. package/dist/components/navigation/top-title-bar/top-title-bar.d.ts.map +1 -1
  239. package/dist/components/navigation/top-title-bar/top-title-bar.js +27 -2
  240. package/dist/components/navigation/top-title-bar/top-title-bar.js.map +1 -1
  241. package/dist/components/status-and-feedback/just-in-time-education/just-in-time-education.d.ts.map +1 -1
  242. package/dist/components/status-and-feedback/just-in-time-education/just-in-time-education.js +2 -0
  243. package/dist/components/status-and-feedback/just-in-time-education/just-in-time-education.js.map +1 -1
  244. package/dist/components/status-and-feedback/just-in-time-education/just-in-time-education.styles.d.ts.map +1 -1
  245. package/dist/components/status-and-feedback/just-in-time-education/just-in-time-education.styles.js +16 -0
  246. package/dist/components/status-and-feedback/just-in-time-education/just-in-time-education.styles.js.map +1 -1
  247. package/dist/types/vue.d.ts +3277 -0
  248. package/dist/utilities/resolve-date-bound.d.ts +21 -0
  249. package/dist/utilities/resolve-date-bound.d.ts.map +1 -0
  250. package/dist/utilities/resolve-date-bound.js +75 -0
  251. package/dist/utilities/resolve-date-bound.js.map +1 -0
  252. package/package.json +31 -7
@@ -0,0 +1,246 @@
1
+ import { css, unsafeCSS } from 'lit';
2
+ import { inheritedTextReset } from '../../../assets/styles/style-resets.js';
3
+ import { breakpoints } from '../../../assets/styles/breakpoints.js';
4
+ const mdMin = unsafeCSS(breakpoints.mdMin);
5
+ export const dateFieldStyles = css `
6
+ :host {
7
+ box-sizing: border-box;
8
+ }
9
+
10
+
11
+ /* # Host */
12
+
13
+ :host {
14
+ /* Ruimer dan de tekst meet. Niet om afkappen te voorkomen (de cijfers zijn
15
+ tabulair, dus elke datum meet hetzelfde), maar als lucht rond de datum en
16
+ als greep om te selecteren en te slepen. */
17
+ --_date-width: 10.5ch;
18
+ /* Ruimte gereserveerd voor het scheidingsteken. Het teken zelf krijgt zijn
19
+ eigen breedte, want het is vertaalbaar en zou in een vast vak afkappen; wat
20
+ die reservering misgokt, vangt het einddatumveld op. */
21
+ --_separator-width: 3.5ch;
22
+ --_separator-padding-right: var(--primitives-space-6);
23
+ /* Linkerkant van het veld: het is een border-box, en padding-left trekt er al
24
+ een rand vanaf, dus tellen beide randen samen voor één rand extra. */
25
+ --_edge-width: calc(var(--_inline-padding) + var(--semantics-input-fields-border-thickness));
26
+ /* Alles wat niet kan krimpen. Enkel het laatste datumveld rekt mee, dus dit is
27
+ tevens de ondergrens: eronder zou de kalenderknop het veld uit lopen. */
28
+ --_fixed-width: calc(var(--_edge-width) + var(--_trailing-width));
29
+ --_width: calc(var(--_fixed-width) + var(--_date-width));
30
+ --_corner-radius: var(--semantics-controls-md-corner-radius);
31
+ --_background-color: var(--semantics-input-fields-background-color);
32
+ --_min-size: var(--semantics-controls-md-min-size);
33
+ --_inline-padding: var(--semantics-controls-md-inline-padding);
34
+ --_text-font: var(--semantics-input-fields-md-text-font);
35
+ --_validation-icon-size: var(--semantics-input-fields-md-validation-icon-size);
36
+ /* Even veel lucht rechts van de knop als erboven en eronder, dus afgeleid van
37
+ het hoogteverschil tussen veld en knop in plaats van een vaste waarde. */
38
+ --_end-padding-right: calc((var(--_min-size) - var(--_button-size)) / 2 - var(--semantics-input-fields-border-thickness));
39
+ --_button-size: var(--semantics-controls-sm-min-size);
40
+ --_validation-icon-area-width: calc(var(--_min-size) - var(--semantics-input-fields-border-thickness) * 2);
41
+ --_trailing-width: calc(var(--_validation-icon-area-width) + var(--_button-size) + var(--_end-padding-right));
42
+
43
+ ${inheritedTextReset}
44
+ display: block;
45
+ width: var(--_width);
46
+ min-width: var(--_fixed-width);
47
+ max-width: 100%;
48
+ font: var(--_text-font);
49
+ -webkit-tap-highlight-color: transparent;
50
+ }
51
+
52
+ :host([hidden]) {
53
+ display: none;
54
+ }
55
+
56
+ /* The default width reserves a slot for both the picker button and the
57
+ validation icon, so the field never resizes when a validation state appears.
58
+ Without the button one slot is enough. */
59
+ :host([no-picker]) {
60
+ --_fixed-width: calc(var(--_edge-width) + var(--_inline-padding) + var(--_validation-icon-area-width));
61
+ }
62
+
63
+ :host([range]) {
64
+ --_fixed-width: calc(var(--_edge-width) + var(--_date-width) + var(--_separator-width) + var(--_trailing-width));
65
+ }
66
+
67
+ :host([range][no-picker]) {
68
+ --_fixed-width: calc(var(--_edge-width) + var(--_inline-padding) + var(--_date-width) + var(--_separator-width) + var(--_validation-icon-area-width));
69
+ }
70
+
71
+ :host([size="sm"]) {
72
+ --_corner-radius: var(--semantics-controls-sm-corner-radius);
73
+ --_min-size: var(--semantics-controls-sm-min-size);
74
+ --_inline-padding: var(--semantics-controls-sm-inline-padding);
75
+ --_text-font: var(--semantics-input-fields-sm-text-font);
76
+ --_validation-icon-size: var(--semantics-input-fields-sm-validation-icon-size);
77
+ --_button-size: var(--semantics-controls-xs-min-size);
78
+ }
79
+
80
+
81
+ /* # Block */
82
+
83
+ .date-field {
84
+ box-sizing: border-box;
85
+ display: flex;
86
+ border: var(--semantics-input-fields-border);
87
+ border-radius: var(--_corner-radius);
88
+ background-color: var(--_background-color);
89
+ min-height: var(--_min-size);
90
+ overflow: hidden;
91
+ padding-left: calc(var(--_inline-padding) - var(--semantics-input-fields-border-thickness));
92
+ flex-direction: row;
93
+ align-items: center;
94
+ }
95
+
96
+ :host([valid]) .date-field {
97
+ border-color: var(--semantics-input-fields-is-valid-border-color);
98
+ }
99
+
100
+ :host([invalid]) .date-field {
101
+ border-color: var(--semantics-input-fields-is-invalid-border-color);
102
+ }
103
+
104
+ :host([readonly]) .date-field {
105
+ --_background-color: var(--semantics-input-fields-is-read-only-background-color);
106
+ border-color: var(--semantics-input-fields-is-read-only-border-color);
107
+ }
108
+
109
+ :host([disabled]) .date-field {
110
+ opacity: var(--primitives-opacity-disabled);
111
+ }
112
+
113
+ .date-field:has(input:-webkit-autofill),
114
+ .date-field:has(input:autofill) {
115
+ --_background-color: var(--semantics-input-fields-is-autofill-background-color);
116
+ }
117
+
118
+ /* Keyed on the text input, not :focus-within: the calendar button and the
119
+ popover live inside this box too, so focus-within would draw a second ring
120
+ around the whole field while the button already has its own. */
121
+ .date-field:has(.date-field__input:focus) {
122
+ outline: var(--semantics-focus-ring-outline);
123
+ outline-offset: var(--semantics-focus-ring-outline-offset);
124
+ box-shadow: var(--semantics-focus-ring-box-shadow);
125
+ }
126
+
127
+
128
+ /* # Elements */
129
+
130
+ .date-field__input {
131
+ box-sizing: border-box;
132
+ margin: 0;
133
+ outline: none;
134
+ border: none;
135
+ background: transparent;
136
+ min-width: 0;
137
+ min-height: calc(var(--_min-size) - var(--semantics-input-fields-border-thickness) * 2);
138
+ overflow: hidden;
139
+ padding: 0;
140
+ flex-grow: 1;
141
+ color: var(--semantics-content-color);
142
+ font: var(--_text-font);
143
+ appearance: none;
144
+ }
145
+
146
+ :host([disabled]) .date-field__input {
147
+ pointer-events: none;
148
+ }
149
+
150
+ .date-field__input::placeholder {
151
+ color: var(--semantics-input-fields-placeholder-color);
152
+ }
153
+
154
+ .date-field__input:-webkit-autofill,
155
+ .date-field__input:autofill,
156
+ .date-field__input:-webkit-autofill:disabled,
157
+ .date-field__input:autofill:disabled {
158
+ box-shadow: 0 0 0 999px var(--_background-color) inset;
159
+ -webkit-text-fill-color: var(--semantics-input-fields-is-autofill-content-color);
160
+ }
161
+
162
+ /* Vaste maat: groeit of krimpt het startveld mee, dan verspringen het
163
+ scheidingsteken en de einddatum zodra het validatie-icoon zijn ruimte opeist
164
+ of het veld smaller wordt gezet. */
165
+ :host([range]) .date-field__input {
166
+ width: var(--_date-width);
167
+ flex-grow: 0;
168
+ flex-shrink: 0;
169
+ }
170
+
171
+ /* De einddatum rekt en krimpt wel mee, net als in een gewoon datumveld: hij
172
+ staat na de scheiding, dus daarvoor verschuift er niets. */
173
+ :host([range]) .date-field__input:last-of-type {
174
+ flex-grow: 1;
175
+ flex-shrink: 1;
176
+ }
177
+
178
+ /* Alleen ruimte erná: het startveld is iets ruimer dan zijn tekst, en die
179
+ speling levert de ruimte ervóór al. Aan beide kanten padding zetten maakt het
180
+ op het scherm juist scheef. */
181
+ .date-field__separator {
182
+ flex-shrink: 0;
183
+ padding-right: var(--_separator-padding-right);
184
+ color: var(--semantics-content-secondary-color);
185
+ }
186
+
187
+ .date-field__input-fade {
188
+ position: relative;
189
+ width: 0;
190
+ flex-shrink: 0;
191
+ align-self: stretch;
192
+ }
193
+
194
+ .date-field__input-fade::after {
195
+ content: '';
196
+ position: absolute;
197
+ top: 0;
198
+ right: 0;
199
+ bottom: 0;
200
+ border-radius: var(--_corner-radius);
201
+ background: linear-gradient(90deg, color-mix(in oklch, var(--_background-color) 0%, transparent) 0%, var(--_background-color) 100%);
202
+ pointer-events: none;
203
+ width: var(--primitives-space-8);
204
+ }
205
+
206
+ .date-field__validation-icon-area {
207
+ display: flex;
208
+ width: var(--_validation-icon-area-width);
209
+ height: 100%;
210
+ flex-shrink: 0;
211
+ align-items: center;
212
+ justify-content: center;
213
+ }
214
+
215
+ :host([valid]) .date-field__validation-icon-area {
216
+ color: var(--semantics-input-fields-is-valid-icon-color);
217
+ }
218
+
219
+ :host([invalid]) .date-field__validation-icon-area {
220
+ color: var(--semantics-input-fields-is-invalid-icon-color);
221
+ }
222
+
223
+ .date-field__validation-icon {
224
+ display: flex;
225
+ width: var(--_validation-icon-size);
226
+ height: var(--_validation-icon-size);
227
+ }
228
+
229
+ .date-field__picker-button {
230
+ position: relative;
231
+ flex-shrink: 0;
232
+ padding-right: var(--_end-padding-right);
233
+ display: flex;
234
+ align-items: center;
235
+ }
236
+
237
+
238
+ /* The sheet's title bar only makes sense on a small screen, where the popover
239
+ becomes a bottom sheet. It shows by default and is hidden from md up. */
240
+ @media (min-width: ${mdMin}) {
241
+ .date-field__picker-button nldd-top-title-bar {
242
+ display: none;
243
+ }
244
+ }
245
+ `;
246
+ //# sourceMappingURL=date-field.styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date-field.styles.js","sourceRoot":"","sources":["../../../../src/components/inputs/date-field/date-field.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AACrC,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAC;AAEpE,MAAM,KAAK,GAAG,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AAE3C,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAsC9B,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAqMA,KAAK;;;;;CAK1B,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { TemplateResult } from 'lit';
2
+ import type { NLDDDateField } from './date-field.js';
3
+ import './../../actions/icon-button/icon-button.js';
4
+ import './../../content/icon/icon.js';
5
+ import './../../layout/popover/popover.js';
6
+ import './../../layout/container/container.js';
7
+ import './../../navigation/top-title-bar/top-title-bar.js';
8
+ import './../date-picker/date-picker.js';
9
+ /**
10
+ * The popover pins both its left and right edge, so an `auto` width collapses to
11
+ * nothing and the calendar hangs outside a zero-wide box. Stated instead, from
12
+ * the same token the calendar sizes its columns with, plus the container padding
13
+ * on both sides - so the two stay in step if that token ever moves.
14
+ */
15
+ export declare const PICKER_POPOVER_WIDTH = "calc(var(--semantics-controls-md-min-size) * 7 + var(--primitives-space-16) * 2)";
16
+ export declare function dateFieldTemplate(component: NLDDDateField): TemplateResult;
17
+ //# sourceMappingURL=date-field.template.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date-field.template.d.ts","sourceRoot":"","sources":["../../../../src/components/inputs/date-field/date-field.template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,cAAc,EAAE,MAAM,KAAK,CAAC;AACpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,4CAA4C,CAAC;AACpD,OAAO,8BAA8B,CAAC;AACtC,OAAO,mCAAmC,CAAC;AAC3C,OAAO,uCAAuC,CAAC;AAC/C,OAAO,mDAAmD,CAAC;AAC3D,OAAO,iCAAiC,CAAC;AAEzC;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,qFAAqF,CAAC;AA4GvH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,aAAa,GAAG,cAAc,CAqB1E"}
@@ -0,0 +1,141 @@
1
+ import { html, nothing } from 'lit';
2
+ import './../../actions/icon-button/icon-button.js';
3
+ import './../../content/icon/icon.js';
4
+ import './../../layout/popover/popover.js';
5
+ import './../../layout/container/container.js';
6
+ import './../../navigation/top-title-bar/top-title-bar.js';
7
+ import './../date-picker/date-picker.js';
8
+ /**
9
+ * The popover pins both its left and right edge, so an `auto` width collapses to
10
+ * nothing and the calendar hangs outside a zero-wide box. Stated instead, from
11
+ * the same token the calendar sizes its columns with, plus the container padding
12
+ * on both sides - so the two stay in step if that token ever moves.
13
+ */
14
+ export const PICKER_POPOVER_WIDTH = 'calc(var(--semantics-controls-md-min-size) * 7 + var(--primitives-space-16) * 2)';
15
+ /** One branch for both states: two near-identical copies drifted apart before. */
16
+ function renderValidationIcon(component) {
17
+ const name = component.invalid ? 'invalid' : (component.valid ? 'valid' : '');
18
+ if (!name)
19
+ return nothing;
20
+ return html `
21
+ <div class="date-field__validation-icon-area">
22
+ <span class="date-field__validation-icon">
23
+ <nldd-icon
24
+ name=${name}
25
+ aria-hidden="true"
26
+ ></nldd-icon>
27
+ </span>
28
+ </div>
29
+ `;
30
+ }
31
+ /* eslint-disable lit-a11y/no-autofocus -- Not autofocus on page load: nldd-popover
32
+ reads this attribute to pick its focus target inside an overlay the user just
33
+ opened. Without it focus stops on the popover itself and the arrow keys do
34
+ nothing until you have tabbed into the grid yourself. */
35
+ /**
36
+ * The calendar is nldd-date-picker in a popover rather than the browser's own.
37
+ * The native one could not be closed in Safari: it ties dismissal to the input,
38
+ * and that input has to be invisible for the button beside it to be the only
39
+ * control.
40
+ */
41
+ function renderPicker(component) {
42
+ if (component.noPicker)
43
+ return nothing;
44
+ const buttonSize = component.size === 'sm' ? 'xs' : 'sm';
45
+ return html `
46
+ <div class="date-field__picker-button">
47
+ <nldd-icon-button
48
+ variant="neutral-tinted"
49
+ size=${buttonSize}
50
+ icon="calendar"
51
+ text=${component._t('components.date-field.to-pick-date-action')}
52
+ tooltip-timing="never"
53
+ ?disabled=${component.disabled || component.readonly}
54
+ @click=${component._handlePickerClick}
55
+ ></nldd-icon-button>
56
+ <nldd-popover
57
+ accessible-label=${component._pickerLabel}
58
+ width=${component._pickerPopoverWidth}
59
+ @toggle=${component._handlePopoverToggle}
60
+ >
61
+ <nldd-top-title-bar
62
+ text=${component._pickerLabel}
63
+ dismiss-text=${component._t('components.date-field.cancel-action')}
64
+ @dismiss=${component._handlePickerDismiss}
65
+ ></nldd-top-title-bar>
66
+ <nldd-container padding="16"
67
+ @change=${component._handlePickerChange}
68
+ >
69
+ <slot name="picker"
70
+ @slotchange=${component._handlePickerSlotChange}
71
+ ></slot>
72
+ ${component._hasSlottedPicker ? nothing : html `
73
+ <nldd-date-picker
74
+ autofocus
75
+ ?range=${component.range}
76
+ value=${!component.range ? (component.value || nothing) : nothing}
77
+ start=${component.range ? (component._startValue || nothing) : nothing}
78
+ end=${component.range ? (component._endValue || nothing) : nothing}
79
+ min=${component.min || nothing}
80
+ max=${component.max || nothing}
81
+ ></nldd-date-picker>
82
+ `}
83
+ </nldd-container>
84
+ </nldd-popover>
85
+ </div>
86
+ `;
87
+ }
88
+ /**
89
+ * One input per end. The field keeps a single accessible name for the group and
90
+ * distinguishes the two inputs itself ("Periode, van"), so nldd-form-field can
91
+ * go on setting one label and one id without knowing about periods.
92
+ */
93
+ function renderInput(component, end) {
94
+ const label = component.range
95
+ ? [component._fieldLabel, component._t(end
96
+ ? 'components.date-field.range-to-lowercase-label'
97
+ : 'components.date-field.range-from-lowercase-label')].join(', ')
98
+ : component._fieldLabel;
99
+ return html `
100
+ <input class="date-field__input"
101
+ id=${!end ? (component.inputId || nothing) : nothing}
102
+ type="text"
103
+ inputmode="numeric"
104
+ .value=${end ? component._displayEndValue : component._displayValue}
105
+ placeholder=${component.placeholder || nothing}
106
+ ?disabled=${component.disabled}
107
+ ?readonly=${component.readonly}
108
+ ?required=${component.required}
109
+ autocomplete=${!end ? (component.autocomplete || nothing) : nothing}
110
+ aria-label=${label || nothing}
111
+ aria-describedby=${component.errorMessageIds || nothing}
112
+ aria-invalid=${component.invalid ? 'true' : nothing}
113
+ @keydown=${(e) => component._handleInputKeydown(e, end)}
114
+ @input=${(e) => component._handleInput(e, end)}
115
+ @change=${(e) => component._handleChange(e, end)}
116
+ >
117
+ `;
118
+ }
119
+ export function dateFieldTemplate(component) {
120
+ return html `
121
+ <div class="date-field"
122
+ role=${component.range ? 'group' : nothing}
123
+ aria-label=${component.range ? component._fieldLabel : nothing}
124
+ @focusout=${component._handleFieldBlur}
125
+ >
126
+ ${renderInput(component, false)}
127
+ ${component.range ? html `
128
+ <span class="date-field__separator"
129
+ aria-hidden="true"
130
+ >
131
+ ${component._t('components.date-field.range-to-short-lowercase-label')}
132
+ </span>
133
+ ${renderInput(component, true)}
134
+ ` : nothing}
135
+ <div class="date-field__input-fade"></div>
136
+ ${renderValidationIcon(component)}
137
+ ${renderPicker(component)}
138
+ </div>
139
+ `;
140
+ }
141
+ //# sourceMappingURL=date-field.template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date-field.template.js","sourceRoot":"","sources":["../../../../src/components/inputs/date-field/date-field.template.ts"],"names":[],"mappings":"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"}