@fristil/designsystem 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (314) hide show
  1. package/CHANGELOG.md +85 -0
  2. package/LICENSE +21 -0
  3. package/README.md +101 -0
  4. package/dist/cli.d.ts +31 -0
  5. package/dist/cli.d.ts.map +1 -0
  6. package/dist/cli.js +261 -0
  7. package/dist/cli.js.map +1 -0
  8. package/dist/components/css/accordion/accordion.d.ts +37 -0
  9. package/dist/components/css/accordion/accordion.d.ts.map +1 -0
  10. package/dist/components/css/accordion/accordion.js +31 -0
  11. package/dist/components/css/accordion/accordion.js.map +1 -0
  12. package/dist/components/css/alert/alert.d.ts +35 -0
  13. package/dist/components/css/alert/alert.d.ts.map +1 -0
  14. package/dist/components/css/alert/alert.js +29 -0
  15. package/dist/components/css/alert/alert.js.map +1 -0
  16. package/dist/components/css/avatar/avatar.d.ts +40 -0
  17. package/dist/components/css/avatar/avatar.d.ts.map +1 -0
  18. package/dist/components/css/avatar/avatar.js +30 -0
  19. package/dist/components/css/avatar/avatar.js.map +1 -0
  20. package/dist/components/css/badge/badge.d.ts +24 -0
  21. package/dist/components/css/badge/badge.d.ts.map +1 -0
  22. package/dist/components/css/badge/badge.js +24 -0
  23. package/dist/components/css/badge/badge.js.map +1 -0
  24. package/dist/components/css/breadcrumbs/breadcrumbs.d.ts +25 -0
  25. package/dist/components/css/breadcrumbs/breadcrumbs.d.ts.map +1 -0
  26. package/dist/components/css/breadcrumbs/breadcrumbs.js +23 -0
  27. package/dist/components/css/breadcrumbs/breadcrumbs.js.map +1 -0
  28. package/dist/components/css/button/button.d.ts +26 -0
  29. package/dist/components/css/button/button.d.ts.map +1 -0
  30. package/dist/components/css/button/button.js +25 -0
  31. package/dist/components/css/button/button.js.map +1 -0
  32. package/dist/components/css/card/card.d.ts +36 -0
  33. package/dist/components/css/card/card.d.ts.map +1 -0
  34. package/dist/components/css/card/card.js +28 -0
  35. package/dist/components/css/card/card.js.map +1 -0
  36. package/dist/components/css/checkbox/checkbox.d.ts +32 -0
  37. package/dist/components/css/checkbox/checkbox.d.ts.map +1 -0
  38. package/dist/components/css/checkbox/checkbox.js +27 -0
  39. package/dist/components/css/checkbox/checkbox.js.map +1 -0
  40. package/dist/components/css/dialog/dialog.d.ts +30 -0
  41. package/dist/components/css/dialog/dialog.d.ts.map +1 -0
  42. package/dist/components/css/dialog/dialog.js +28 -0
  43. package/dist/components/css/dialog/dialog.js.map +1 -0
  44. package/dist/components/css/divider/divider.d.ts +28 -0
  45. package/dist/components/css/divider/divider.d.ts.map +1 -0
  46. package/dist/components/css/divider/divider.js +22 -0
  47. package/dist/components/css/divider/divider.js.map +1 -0
  48. package/dist/components/css/error-text/error-text.d.ts +24 -0
  49. package/dist/components/css/error-text/error-text.d.ts.map +1 -0
  50. package/dist/components/css/error-text/error-text.js +18 -0
  51. package/dist/components/css/error-text/error-text.js.map +1 -0
  52. package/dist/components/css/fieldset/fieldset.d.ts +55 -0
  53. package/dist/components/css/fieldset/fieldset.d.ts.map +1 -0
  54. package/dist/components/css/fieldset/fieldset.js +39 -0
  55. package/dist/components/css/fieldset/fieldset.js.map +1 -0
  56. package/dist/components/css/file-upload/file-upload.d.ts +41 -0
  57. package/dist/components/css/file-upload/file-upload.d.ts.map +1 -0
  58. package/dist/components/css/file-upload/file-upload.js +32 -0
  59. package/dist/components/css/file-upload/file-upload.js.map +1 -0
  60. package/dist/components/css/heading/heading.d.ts +29 -0
  61. package/dist/components/css/heading/heading.d.ts.map +1 -0
  62. package/dist/components/css/heading/heading.js +23 -0
  63. package/dist/components/css/heading/heading.js.map +1 -0
  64. package/dist/components/css/help-text/help-text.d.ts +24 -0
  65. package/dist/components/css/help-text/help-text.d.ts.map +1 -0
  66. package/dist/components/css/help-text/help-text.js +23 -0
  67. package/dist/components/css/help-text/help-text.js.map +1 -0
  68. package/dist/components/css/input/input.d.ts +39 -0
  69. package/dist/components/css/input/input.d.ts.map +1 -0
  70. package/dist/components/css/input/input.js +44 -0
  71. package/dist/components/css/input/input.js.map +1 -0
  72. package/dist/components/css/label/label.d.ts +33 -0
  73. package/dist/components/css/label/label.d.ts.map +1 -0
  74. package/dist/components/css/label/label.js +23 -0
  75. package/dist/components/css/label/label.js.map +1 -0
  76. package/dist/components/css/link/link.d.ts +21 -0
  77. package/dist/components/css/link/link.d.ts.map +1 -0
  78. package/dist/components/css/link/link.js +14 -0
  79. package/dist/components/css/link/link.js.map +1 -0
  80. package/dist/components/css/list/list.d.ts +29 -0
  81. package/dist/components/css/list/list.d.ts.map +1 -0
  82. package/dist/components/css/list/list.js +23 -0
  83. package/dist/components/css/list/list.js.map +1 -0
  84. package/dist/components/css/pagination/pagination.d.ts +27 -0
  85. package/dist/components/css/pagination/pagination.d.ts.map +1 -0
  86. package/dist/components/css/pagination/pagination.js +25 -0
  87. package/dist/components/css/pagination/pagination.js.map +1 -0
  88. package/dist/components/css/paragraph/paragraph.d.ts +36 -0
  89. package/dist/components/css/paragraph/paragraph.d.ts.map +1 -0
  90. package/dist/components/css/paragraph/paragraph.js +26 -0
  91. package/dist/components/css/paragraph/paragraph.js.map +1 -0
  92. package/dist/components/css/radio/radio.d.ts +32 -0
  93. package/dist/components/css/radio/radio.d.ts.map +1 -0
  94. package/dist/components/css/radio/radio.js +27 -0
  95. package/dist/components/css/radio/radio.js.map +1 -0
  96. package/dist/components/css/search/search.d.ts +33 -0
  97. package/dist/components/css/search/search.d.ts.map +1 -0
  98. package/dist/components/css/search/search.js +31 -0
  99. package/dist/components/css/search/search.js.map +1 -0
  100. package/dist/components/css/select/select.d.ts +23 -0
  101. package/dist/components/css/select/select.d.ts.map +1 -0
  102. package/dist/components/css/select/select.js +18 -0
  103. package/dist/components/css/select/select.js.map +1 -0
  104. package/dist/components/css/shared.d.ts +26 -0
  105. package/dist/components/css/shared.d.ts.map +1 -0
  106. package/dist/components/css/shared.js +34 -0
  107. package/dist/components/css/shared.js.map +1 -0
  108. package/dist/components/css/skeleton/skeleton.d.ts +29 -0
  109. package/dist/components/css/skeleton/skeleton.d.ts.map +1 -0
  110. package/dist/components/css/skeleton/skeleton.js +23 -0
  111. package/dist/components/css/skeleton/skeleton.js.map +1 -0
  112. package/dist/components/css/skip-link/skip-link.d.ts +18 -0
  113. package/dist/components/css/skip-link/skip-link.d.ts.map +1 -0
  114. package/dist/components/css/skip-link/skip-link.js +16 -0
  115. package/dist/components/css/skip-link/skip-link.js.map +1 -0
  116. package/dist/components/css/spinner/spinner.d.ts +33 -0
  117. package/dist/components/css/spinner/spinner.d.ts.map +1 -0
  118. package/dist/components/css/spinner/spinner.js +25 -0
  119. package/dist/components/css/spinner/spinner.js.map +1 -0
  120. package/dist/components/css/sr-only/sr-only.d.ts +17 -0
  121. package/dist/components/css/sr-only/sr-only.d.ts.map +1 -0
  122. package/dist/components/css/sr-only/sr-only.js +14 -0
  123. package/dist/components/css/sr-only/sr-only.js.map +1 -0
  124. package/dist/components/css/switch/switch.d.ts +33 -0
  125. package/dist/components/css/switch/switch.d.ts.map +1 -0
  126. package/dist/components/css/switch/switch.js +29 -0
  127. package/dist/components/css/switch/switch.js.map +1 -0
  128. package/dist/components/css/table/table.d.ts +36 -0
  129. package/dist/components/css/table/table.d.ts.map +1 -0
  130. package/dist/components/css/table/table.js +28 -0
  131. package/dist/components/css/table/table.js.map +1 -0
  132. package/dist/components/css/tag/tag.d.ts +35 -0
  133. package/dist/components/css/tag/tag.d.ts.map +1 -0
  134. package/dist/components/css/tag/tag.js +27 -0
  135. package/dist/components/css/tag/tag.js.map +1 -0
  136. package/dist/components/css/textarea/textarea.d.ts +23 -0
  137. package/dist/components/css/textarea/textarea.d.ts.map +1 -0
  138. package/dist/components/css/textarea/textarea.js +18 -0
  139. package/dist/components/css/textarea/textarea.js.map +1 -0
  140. package/dist/components/css/toggle-group/toggle-group.d.ts +31 -0
  141. package/dist/components/css/toggle-group/toggle-group.d.ts.map +1 -0
  142. package/dist/components/css/toggle-group/toggle-group.js +29 -0
  143. package/dist/components/css/toggle-group/toggle-group.js.map +1 -0
  144. package/dist/components/css/tooltip/tooltip.d.ts +30 -0
  145. package/dist/components/css/tooltip/tooltip.d.ts.map +1 -0
  146. package/dist/components/css/tooltip/tooltip.js +28 -0
  147. package/dist/components/css/tooltip/tooltip.js.map +1 -0
  148. package/dist/components/frittstaende/calendar/fs-calendar.d.ts +52 -0
  149. package/dist/components/frittstaende/calendar/fs-calendar.d.ts.map +1 -0
  150. package/dist/components/frittstaende/calendar/fs-calendar.js +462 -0
  151. package/dist/components/frittstaende/calendar/fs-calendar.js.map +1 -0
  152. package/dist/components/frittstaende/date-field/fs-date-field.d.ts +110 -0
  153. package/dist/components/frittstaende/date-field/fs-date-field.d.ts.map +1 -0
  154. package/dist/components/frittstaende/date-field/fs-date-field.js +264 -0
  155. package/dist/components/frittstaende/date-field/fs-date-field.js.map +1 -0
  156. package/dist/components/frittstaende/suggestion/fs-suggestion.d.ts +133 -0
  157. package/dist/components/frittstaende/suggestion/fs-suggestion.d.ts.map +1 -0
  158. package/dist/components/frittstaende/suggestion/fs-suggestion.js +280 -0
  159. package/dist/components/frittstaende/suggestion/fs-suggestion.js.map +1 -0
  160. package/dist/components/frittstaende/toast/fs-toast.d.ts +67 -0
  161. package/dist/components/frittstaende/toast/fs-toast.d.ts.map +1 -0
  162. package/dist/components/frittstaende/toast/fs-toast.js +108 -0
  163. package/dist/components/frittstaende/toast/fs-toast.js.map +1 -0
  164. package/dist/components/ramme/error-summary/fs-error-summary.d.ts +70 -0
  165. package/dist/components/ramme/error-summary/fs-error-summary.d.ts.map +1 -0
  166. package/dist/components/ramme/error-summary/fs-error-summary.js +155 -0
  167. package/dist/components/ramme/error-summary/fs-error-summary.js.map +1 -0
  168. package/dist/components/ramme/field/field-core.d.ts +70 -0
  169. package/dist/components/ramme/field/field-core.d.ts.map +1 -0
  170. package/dist/components/ramme/field/field-core.js +60 -0
  171. package/dist/components/ramme/field/field-core.js.map +1 -0
  172. package/dist/components/ramme/field/fs-field.d.ts +49 -0
  173. package/dist/components/ramme/field/fs-field.d.ts.map +1 -0
  174. package/dist/components/ramme/field/fs-field.js +118 -0
  175. package/dist/components/ramme/field/fs-field.js.map +1 -0
  176. package/dist/components/ramme/popover/fs-popover.d.ts +68 -0
  177. package/dist/components/ramme/popover/fs-popover.d.ts.map +1 -0
  178. package/dist/components/ramme/popover/fs-popover.js +167 -0
  179. package/dist/components/ramme/popover/fs-popover.js.map +1 -0
  180. package/dist/components/ramme/tabs/fs-tabs.d.ts +61 -0
  181. package/dist/components/ramme/tabs/fs-tabs.d.ts.map +1 -0
  182. package/dist/components/ramme/tabs/fs-tabs.js +156 -0
  183. package/dist/components/ramme/tabs/fs-tabs.js.map +1 -0
  184. package/dist/dom.d.ts +33 -0
  185. package/dist/dom.d.ts.map +1 -0
  186. package/dist/dom.js +77 -0
  187. package/dist/dom.js.map +1 -0
  188. package/dist/fs.d.ts +199 -0
  189. package/dist/fs.d.ts.map +1 -0
  190. package/dist/fs.js +128 -0
  191. package/dist/fs.js.map +1 -0
  192. package/dist/index.d.ts +84 -0
  193. package/dist/index.d.ts.map +1 -0
  194. package/dist/index.js +48 -0
  195. package/dist/index.js.map +1 -0
  196. package/dist/jsx/react.d.ts +127 -0
  197. package/dist/jsx/react.d.ts.map +1 -0
  198. package/dist/jsx/react.js +2 -0
  199. package/dist/jsx/react.js.map +1 -0
  200. package/dist/react.d.ts +207 -0
  201. package/dist/react.d.ts.map +1 -0
  202. package/dist/react.js +109 -0
  203. package/dist/react.js.map +1 -0
  204. package/dist/tailwind/preset.d.ts +120 -0
  205. package/dist/tailwind/preset.d.ts.map +1 -0
  206. package/dist/tailwind/preset.js +107 -0
  207. package/dist/tailwind/preset.js.map +1 -0
  208. package/dist/takeover.d.ts +79 -0
  209. package/dist/takeover.d.ts.map +1 -0
  210. package/dist/takeover.js +119 -0
  211. package/dist/takeover.js.map +1 -0
  212. package/dist/tokens/color.d.ts +85 -0
  213. package/dist/tokens/color.d.ts.map +1 -0
  214. package/dist/tokens/color.js +212 -0
  215. package/dist/tokens/color.js.map +1 -0
  216. package/dist/tokens/theme.d.ts +52 -0
  217. package/dist/tokens/theme.d.ts.map +1 -0
  218. package/dist/tokens/theme.js +197 -0
  219. package/dist/tokens/theme.js.map +1 -0
  220. package/dist/tokens/tokens.d.ts +210 -0
  221. package/dist/tokens/tokens.d.ts.map +1 -0
  222. package/dist/tokens/tokens.js +238 -0
  223. package/dist/tokens/tokens.js.map +1 -0
  224. package/package.json +334 -0
  225. package/src/components/css/accordion/accordion.css +74 -0
  226. package/src/components/css/accordion/accordion.ts +50 -0
  227. package/src/components/css/alert/alert.css +50 -0
  228. package/src/components/css/alert/alert.ts +48 -0
  229. package/src/components/css/avatar/avatar.css +64 -0
  230. package/src/components/css/avatar/avatar.ts +57 -0
  231. package/src/components/css/badge/badge.css +42 -0
  232. package/src/components/css/badge/badge.ts +43 -0
  233. package/src/components/css/breadcrumbs/breadcrumbs.css +50 -0
  234. package/src/components/css/breadcrumbs/breadcrumbs.ts +29 -0
  235. package/src/components/css/button/button.css +101 -0
  236. package/src/components/css/button/button.ts +44 -0
  237. package/src/components/css/card/card.css +48 -0
  238. package/src/components/css/card/card.ts +50 -0
  239. package/src/components/css/checkbox/checkbox.css +96 -0
  240. package/src/components/css/checkbox/checkbox.ts +50 -0
  241. package/src/components/css/dialog/dialog.css +50 -0
  242. package/src/components/css/dialog/dialog.ts +36 -0
  243. package/src/components/css/divider/divider.css +18 -0
  244. package/src/components/css/divider/divider.ts +41 -0
  245. package/src/components/css/error-text/error-text.css +21 -0
  246. package/src/components/css/error-text/error-text.ts +37 -0
  247. package/src/components/css/fieldset/fieldset.css +57 -0
  248. package/src/components/css/fieldset/fieldset.ts +87 -0
  249. package/src/components/css/file-upload/file-upload.css +92 -0
  250. package/src/components/css/file-upload/file-upload.ts +65 -0
  251. package/src/components/css/heading/heading.css +33 -0
  252. package/src/components/css/heading/heading.ts +42 -0
  253. package/src/components/css/help-text/help-text.css +24 -0
  254. package/src/components/css/help-text/help-text.ts +42 -0
  255. package/src/components/css/input/input.css +131 -0
  256. package/src/components/css/input/input.ts +76 -0
  257. package/src/components/css/label/label.css +34 -0
  258. package/src/components/css/label/label.ts +51 -0
  259. package/src/components/css/link/link.css +36 -0
  260. package/src/components/css/link/link.ts +29 -0
  261. package/src/components/css/list/list.css +40 -0
  262. package/src/components/css/list/list.ts +42 -0
  263. package/src/components/css/pagination/pagination.css +77 -0
  264. package/src/components/css/pagination/pagination.ts +33 -0
  265. package/src/components/css/paragraph/paragraph.css +31 -0
  266. package/src/components/css/paragraph/paragraph.ts +53 -0
  267. package/src/components/css/radio/radio.css +76 -0
  268. package/src/components/css/radio/radio.ts +50 -0
  269. package/src/components/css/search/search.css +49 -0
  270. package/src/components/css/search/search.ts +52 -0
  271. package/src/components/css/select/select.css +95 -0
  272. package/src/components/css/select/select.ts +40 -0
  273. package/src/components/css/shared.ts +40 -0
  274. package/src/components/css/skeleton/skeleton.css +49 -0
  275. package/src/components/css/skeleton/skeleton.ts +43 -0
  276. package/src/components/css/skip-link/skip-link.css +36 -0
  277. package/src/components/css/skip-link/skip-link.ts +22 -0
  278. package/src/components/css/spinner/spinner.css +48 -0
  279. package/src/components/css/spinner/spinner.ts +48 -0
  280. package/src/components/css/sr-only/sr-only.css +16 -0
  281. package/src/components/css/sr-only/sr-only.ts +18 -0
  282. package/src/components/css/switch/switch.css +101 -0
  283. package/src/components/css/switch/switch.ts +46 -0
  284. package/src/components/css/table/table.css +63 -0
  285. package/src/components/css/table/table.ts +50 -0
  286. package/src/components/css/tag/tag.css +58 -0
  287. package/src/components/css/tag/tag.ts +49 -0
  288. package/src/components/css/textarea/textarea.css +71 -0
  289. package/src/components/css/textarea/textarea.ts +40 -0
  290. package/src/components/css/toggle-group/toggle-group.css +82 -0
  291. package/src/components/css/toggle-group/toggle-group.ts +37 -0
  292. package/src/components/css/tooltip/tooltip.css +47 -0
  293. package/src/components/css/tooltip/tooltip.ts +36 -0
  294. package/src/components/frittstaende/calendar/fs-calendar.ts +525 -0
  295. package/src/components/frittstaende/date-field/date-field.css +54 -0
  296. package/src/components/frittstaende/date-field/fs-date-field.ts +309 -0
  297. package/src/components/frittstaende/suggestion/fs-suggestion.ts +333 -0
  298. package/src/components/frittstaende/suggestion/suggestion.css +63 -0
  299. package/src/components/frittstaende/toast/fs-toast.ts +146 -0
  300. package/src/components/frittstaende/toast/toast.css +71 -0
  301. package/src/components/ramme/error-summary/error-summary.css +45 -0
  302. package/src/components/ramme/error-summary/fs-error-summary.ts +197 -0
  303. package/src/components/ramme/field/field-core.ts +132 -0
  304. package/src/components/ramme/field/field.css +6 -0
  305. package/src/components/ramme/field/fs-field.ts +154 -0
  306. package/src/components/ramme/popover/fs-popover.ts +205 -0
  307. package/src/components/ramme/popover/popover.css +34 -0
  308. package/src/components/ramme/tabs/fs-tabs.ts +182 -0
  309. package/src/components/ramme/tabs/tabs.css +68 -0
  310. package/src/tailwind/tailwind.css +134 -0
  311. package/src/tokens/color.ts +267 -0
  312. package/src/tokens/theme.ts +350 -0
  313. package/src/tokens/tokens.css +214 -0
  314. package/src/tokens/tokens.ts +293 -0
package/dist/fs.d.ts ADDED
@@ -0,0 +1,199 @@
1
+ import { computeFieldAttributes } from "./components/ramme/field/field-core.js";
2
+ import { setAttributes } from "./dom.js";
3
+ /**
4
+ * Hele komponent-API-et på ett sted.
5
+ *
6
+ * Hver komponent er en funksjon som tar et valgobjekt og returnerer
7
+ * attributtene du sprer inn i elementet:
8
+ *
9
+ * ```ts
10
+ * import { fs } from "@fristil/designsystem"
11
+ *
12
+ * <button {...fs.button({ variant: "secondary" })}>Lagre utkast</button>
13
+ * <input {...fs.input({ type: "email", state: "invalid" })} />
14
+ * <span {...fs.badge({ color: "success" })}>Innvilget</span>
15
+ * ```
16
+ *
17
+ * Formen er den samme for alle, så du lærer den én gang. Skriv `fs.` i
18
+ * editoren for å se hva som finnes; skriv `fs.button.` for å se de lovlige
19
+ * variantene og vakten som validerer verdier utenfra.
20
+ *
21
+ * Returverdiene er vanlige objekter. Det er grunnen til at det samme API-et
22
+ * virker i React, Vue, Svelte og ren HTML.
23
+ */
24
+ export declare const fs: {
25
+ readonly accordion: (({ variant }?: import("./index.js").AccordionOptions) => import("./index.js").AccordionAttributes) & {
26
+ content: "fs-accordion__content";
27
+ variants: readonly ["default", "plain"];
28
+ isVariant: (value: string) => value is "default" | "plain";
29
+ };
30
+ readonly alert: (({ color }?: import("./index.js").AlertOptions) => import("./index.js").AlertAttributes) & {
31
+ title: "fs-alert__title";
32
+ colors: readonly ["info", "success", "warning", "danger"];
33
+ isColor: (value: string) => value is "warning" | "info" | "danger" | "success";
34
+ };
35
+ readonly avatar: (({ size, variant, }?: import("./index.js").AvatarOptions) => import("./index.js").AvatarAttributes) & {
36
+ stack: "fs-avatar-stack";
37
+ sizes: readonly ["small", "medium", "large"];
38
+ isSize: (value: string) => value is "small" | "medium" | "large";
39
+ variants: readonly ["circle", "square"];
40
+ isVariant: (value: string) => value is "circle" | "square";
41
+ };
42
+ readonly badge: (({ color }?: import("./index.js").BadgeOptions) => import("./index.js").BadgeAttributes) & {
43
+ colors: readonly ["info", "success", "warning", "danger", "neutral"];
44
+ isColor: (value: string) => value is "warning" | "info" | "danger" | "success" | "neutral";
45
+ };
46
+ readonly breadcrumbs: () => import("./index.js").BreadcrumbsAttributes;
47
+ readonly button: (({ variant }?: import("./index.js").ButtonOptions) => import("./index.js").ButtonAttributes) & {
48
+ variants: readonly ["primary", "secondary", "ghost", "danger"];
49
+ isVariant: (value: string) => value is "danger" | "primary" | "secondary" | "ghost";
50
+ };
51
+ readonly card: (({ variant, interactive }?: import("./index.js").CardOptions) => import("./index.js").CardAttributes) & {
52
+ title: "fs-card__title";
53
+ variants: readonly ["outline", "filled"];
54
+ isVariant: (value: string) => value is "outline" | "filled";
55
+ };
56
+ readonly checkbox: (({ state }?: import("./index.js").CheckboxOptions) => import("./index.js").CheckboxAttributes) & {
57
+ row: "fs-checkbox-row";
58
+ states: readonly ["default", "invalid", "success"];
59
+ isState: (value: string) => value is "default" | "success" | "invalid";
60
+ };
61
+ readonly dialog: (() => import("./index.js").DialogAttributes) & {
62
+ title: "fs-dialog__title";
63
+ body: "fs-dialog__body";
64
+ footer: "fs-dialog__footer";
65
+ };
66
+ readonly divider: (({ variant }?: import("./index.js").DividerOptions) => import("./index.js").DividerAttributes) & {
67
+ variants: readonly ["default", "subtle", "strong"];
68
+ isVariant: (value: string) => value is "default" | "subtle" | "strong";
69
+ };
70
+ readonly errorText: (({ variant }?: import("./index.js").ErrorTextOptions) => import("./index.js").ErrorTextAttributes) & {
71
+ variants: readonly ["error", "warning"];
72
+ isVariant: (value: string) => value is "error" | "warning";
73
+ };
74
+ /**
75
+ * Kobler sammen ledetekst, felt, hjelpetekst og feilmelding.
76
+ *
77
+ * ```ts
78
+ * const felt = fs.field({ id: "epost", required: "text", help: true, error: true, invalid })
79
+ *
80
+ * <label {...felt.label}>E-postadresse</label>
81
+ * <input {...fs.input({ type: "email", state: felt.state })} {...felt.control} />
82
+ * <p {...fs.helpText()} {...felt.help}>Vi sender kvittering hit.</p>
83
+ * <p {...fs.errorText()} {...felt.error}>Skriv en gyldig adresse.</p>
84
+ * ```
85
+ *
86
+ * Samme utregning som `<fs-field>` gjør, men som data, så du kan eie
87
+ * markupen selv uten å registrere et custom element.
88
+ */
89
+ readonly field: typeof computeFieldAttributes;
90
+ /** Gruppe av kontroller som hører sammen. Ledeteksten er `fs.legend`. */
91
+ readonly fieldset: (({ state, disabled }?: import("./index.js").FieldsetOptions) => import("./index.js").FieldsetAttributes) & {
92
+ states: readonly ["default", "invalid", "success"];
93
+ isState: (value: string) => value is "default" | "success" | "invalid";
94
+ };
95
+ readonly heading: (({ size }?: import("./index.js").HeadingOptions) => import("./index.js").HeadingAttributes) & {
96
+ sizes: readonly ["xs", "s", "m", "l", "xl", "mega"];
97
+ isSize: (value: string) => value is "l" | "xs" | "s" | "m" | "xl" | "mega";
98
+ };
99
+ readonly fileUpload: (({ state, multiple, accept, }?: import("./index.js").FileUploadOptions) => import("./index.js").FileUploadAttributes) & {
100
+ list: "fs-file-upload-list";
101
+ states: readonly ["default", "invalid", "success"];
102
+ isState: (value: string) => value is "default" | "success" | "invalid";
103
+ };
104
+ readonly helpText: (({ variant }?: import("./index.js").HelpTextOptions) => import("./index.js").HelpTextAttributes) & {
105
+ variants: readonly ["muted", "default", "success", "warning"];
106
+ isVariant: (value: string) => value is "default" | "warning" | "success" | "muted";
107
+ };
108
+ readonly input: (({ type, state }?: import("./index.js").InputOptions) => import("./index.js").InputAttributes) & {
109
+ types: readonly ["text", "password", "email", "number", "date", "datetime-local", "week", "month", "tel", "url", "search", "time"];
110
+ isType: (value: string) => value is "number" | "date" | "search" | "url" | "text" | "password" | "email" | "datetime-local" | "week" | "month" | "tel" | "time";
111
+ states: readonly ["default", "invalid", "success"];
112
+ isState: (value: string) => value is "default" | "success" | "invalid";
113
+ };
114
+ readonly label: (({ required, optional, disabled }?: import("./index.js").LabelOptions) => import("./index.js").LabelAttributes) & {
115
+ markers: readonly ["symbol", "text"];
116
+ isMarker: (value: string) => value is "symbol" | "text";
117
+ };
118
+ readonly legend: (({ required, optional, disabled }?: import("./index.js").LegendOptions) => import("./index.js").LegendAttributes) & {
119
+ markers: readonly ["symbol", "text"];
120
+ isMarker: (value: string) => value is "symbol" | "text";
121
+ };
122
+ readonly link: ({ disabled }?: import("./index.js").LinkOptions) => import("./index.js").LinkAttributes;
123
+ readonly list: (({ variant }?: import("./index.js").ListOptions) => import("./index.js").ListAttributes) & {
124
+ variants: readonly ["default", "plain", "divided"];
125
+ isVariant: (value: string) => value is "default" | "plain" | "divided";
126
+ };
127
+ readonly pagination: (() => import("./index.js").PaginationAttributes) & {
128
+ gap: "fs-pagination__gap";
129
+ };
130
+ readonly paragraph: (({ size, variant, }?: import("./index.js").ParagraphOptions) => import("./index.js").ParagraphAttributes) & {
131
+ sizes: readonly ["small", "medium", "large"];
132
+ isSize: (value: string) => value is "small" | "medium" | "large";
133
+ variants: readonly ["default", "lead"];
134
+ isVariant: (value: string) => value is "default" | "lead";
135
+ };
136
+ readonly radio: (({ state }?: import("./index.js").RadioOptions) => import("./index.js").RadioAttributes) & {
137
+ row: "fs-radio-row";
138
+ states: readonly ["default", "invalid", "success"];
139
+ isState: (value: string) => value is "default" | "success" | "invalid";
140
+ };
141
+ readonly search: (({ state }?: import("./index.js").SearchOptions) => import("./index.js").SearchAttributes) & {
142
+ row: "fs-search-row";
143
+ states: readonly ["default", "invalid", "success"];
144
+ isState: (value: string) => value is "default" | "success" | "invalid";
145
+ };
146
+ readonly select: (({ state }?: import("./index.js").SelectOptions) => import("./index.js").SelectAttributes) & {
147
+ states: readonly ["default", "invalid", "success"];
148
+ isState: (value: string) => value is "default" | "success" | "invalid";
149
+ };
150
+ readonly skeleton: (({ variant }?: import("./index.js").SkeletonOptions) => import("./index.js").SkeletonAttributes) & {
151
+ variants: readonly ["block", "text", "circle"];
152
+ isVariant: (value: string) => value is "text" | "circle" | "block";
153
+ };
154
+ readonly skipLink: () => import("./index.js").SkipLinkAttributes;
155
+ readonly spinner: (({ size, label }?: import("./index.js").SpinnerOptions) => import("./index.js").SpinnerAttributes) & {
156
+ sizes: readonly ["small", "medium", "large"];
157
+ isSize: (value: string) => value is "small" | "medium" | "large";
158
+ };
159
+ /** Tekst bare skjermlesere skal få. Krever `sr-only.css`. */
160
+ readonly srOnly: () => import("./index.js").SrOnlyAttributes;
161
+ /** Av og på. Heter `switchControl` når du importerer den direkte. */
162
+ readonly switch: (({ disabled }?: import("./index.js").SwitchOptions) => import("./index.js").SwitchAttributes) & {
163
+ row: "fs-switch-row";
164
+ };
165
+ readonly toggleGroup: (() => import("./index.js").ToggleGroupAttributes) & {
166
+ option: "fs-toggle-group__option";
167
+ };
168
+ readonly tooltip: (() => import("./index.js").TooltipAttributes) & {
169
+ bubble: "fs-tooltip__bubble";
170
+ };
171
+ readonly table: (({ variant, hoverable }?: import("./index.js").TableOptions) => import("./index.js").TableAttributes) & {
172
+ scroll: "fs-table-scroll";
173
+ variants: readonly ["default", "striped"];
174
+ isVariant: (value: string) => value is "default" | "striped";
175
+ };
176
+ readonly tag: (({ variant, selectable }?: import("./index.js").TagOptions) => import("./index.js").TagAttributes) & {
177
+ variants: readonly ["outline", "filled"];
178
+ isVariant: (value: string) => value is "outline" | "filled";
179
+ };
180
+ readonly textarea: (({ state }?: import("./index.js").TextareaOptions) => import("./index.js").TextareaAttributes) & {
181
+ states: readonly ["default", "invalid", "success"];
182
+ isState: (value: string) => value is "default" | "success" | "invalid";
183
+ };
184
+ /**
185
+ * Bruker et attributtsett på et element i vanlig DOM.
186
+ *
187
+ * I JSX sprer du objektet. Uten JSX gjør denne jobben det, og rydder bort
188
+ * attributter fra forrige tilstand.
189
+ */
190
+ readonly setAttributes: typeof setAttributes;
191
+ /** Valideringstilstandene som deles av input, textarea og select. */
192
+ readonly states: readonly ["default", "invalid", "success"];
193
+ readonly isState: (value: string) => value is "default" | "success" | "invalid";
194
+ /** Måtene et påkrevd felt kan markeres på. */
195
+ readonly markers: readonly ["symbol", "text"];
196
+ readonly isMarker: (value: string) => value is "symbol" | "text";
197
+ };
198
+ export type Fs = typeof fs;
199
+ //# sourceMappingURL=fs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fs.d.ts","sourceRoot":"","sources":["../src/fs.ts"],"names":[],"mappings":"AAwCA,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAA;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAExC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAYb;;;;;;;;;;;;;;OAcG;;IAEH,yEAAyE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAkBzE,6DAA6D;;IAE7D,qEAAqE;;;;;;;;;;;;;;;;;;;;;;;IAQrE;;;;;OAKG;;IAGH,qEAAqE;;;IAGrE,8CAA8C;;;CAGtC,CAAA;AAEV,MAAM,MAAM,EAAE,GAAG,OAAO,EAAE,CAAA"}
package/dist/fs.js ADDED
@@ -0,0 +1,128 @@
1
+ import { accordion } from "./components/css/accordion/accordion.js";
2
+ import { alert } from "./components/css/alert/alert.js";
3
+ import { avatar } from "./components/css/avatar/avatar.js";
4
+ import { badge } from "./components/css/badge/badge.js";
5
+ import { breadcrumbs } from "./components/css/breadcrumbs/breadcrumbs.js";
6
+ import { button } from "./components/css/button/button.js";
7
+ import { card } from "./components/css/card/card.js";
8
+ import { checkbox } from "./components/css/checkbox/checkbox.js";
9
+ import { dialog } from "./components/css/dialog/dialog.js";
10
+ import { divider } from "./components/css/divider/divider.js";
11
+ import { errorText } from "./components/css/error-text/error-text.js";
12
+ import { fieldset, legend } from "./components/css/fieldset/fieldset.js";
13
+ import { fileUpload } from "./components/css/file-upload/file-upload.js";
14
+ import { heading } from "./components/css/heading/heading.js";
15
+ import { helpText } from "./components/css/help-text/help-text.js";
16
+ import { input } from "./components/css/input/input.js";
17
+ import { label } from "./components/css/label/label.js";
18
+ import { link } from "./components/css/link/link.js";
19
+ import { list } from "./components/css/list/list.js";
20
+ import { pagination } from "./components/css/pagination/pagination.js";
21
+ import { paragraph } from "./components/css/paragraph/paragraph.js";
22
+ import { radio } from "./components/css/radio/radio.js";
23
+ import { search } from "./components/css/search/search.js";
24
+ import { select } from "./components/css/select/select.js";
25
+ import { fieldStates, isFieldState, isRequiredMarker, requiredMarkers, } from "./components/css/shared.js";
26
+ import { skeleton } from "./components/css/skeleton/skeleton.js";
27
+ import { skipLink } from "./components/css/skip-link/skip-link.js";
28
+ import { spinner } from "./components/css/spinner/spinner.js";
29
+ import { srOnly } from "./components/css/sr-only/sr-only.js";
30
+ import { switchControl } from "./components/css/switch/switch.js";
31
+ import { table } from "./components/css/table/table.js";
32
+ import { tag } from "./components/css/tag/tag.js";
33
+ import { textarea } from "./components/css/textarea/textarea.js";
34
+ import { toggleGroup } from "./components/css/toggle-group/toggle-group.js";
35
+ import { tooltip } from "./components/css/tooltip/tooltip.js";
36
+ import { computeFieldAttributes } from "./components/ramme/field/field-core.js";
37
+ import { setAttributes } from "./dom.js";
38
+ /**
39
+ * Hele komponent-API-et på ett sted.
40
+ *
41
+ * Hver komponent er en funksjon som tar et valgobjekt og returnerer
42
+ * attributtene du sprer inn i elementet:
43
+ *
44
+ * ```ts
45
+ * import { fs } from "@fristil/designsystem"
46
+ *
47
+ * <button {...fs.button({ variant: "secondary" })}>Lagre utkast</button>
48
+ * <input {...fs.input({ type: "email", state: "invalid" })} />
49
+ * <span {...fs.badge({ color: "success" })}>Innvilget</span>
50
+ * ```
51
+ *
52
+ * Formen er den samme for alle, så du lærer den én gang. Skriv `fs.` i
53
+ * editoren for å se hva som finnes; skriv `fs.button.` for å se de lovlige
54
+ * variantene og vakten som validerer verdier utenfra.
55
+ *
56
+ * Returverdiene er vanlige objekter. Det er grunnen til at det samme API-et
57
+ * virker i React, Vue, Svelte og ren HTML.
58
+ */
59
+ export const fs = {
60
+ accordion,
61
+ alert,
62
+ avatar,
63
+ badge,
64
+ breadcrumbs,
65
+ button,
66
+ card,
67
+ checkbox,
68
+ dialog,
69
+ divider,
70
+ errorText,
71
+ /**
72
+ * Kobler sammen ledetekst, felt, hjelpetekst og feilmelding.
73
+ *
74
+ * ```ts
75
+ * const felt = fs.field({ id: "epost", required: "text", help: true, error: true, invalid })
76
+ *
77
+ * <label {...felt.label}>E-postadresse</label>
78
+ * <input {...fs.input({ type: "email", state: felt.state })} {...felt.control} />
79
+ * <p {...fs.helpText()} {...felt.help}>Vi sender kvittering hit.</p>
80
+ * <p {...fs.errorText()} {...felt.error}>Skriv en gyldig adresse.</p>
81
+ * ```
82
+ *
83
+ * Samme utregning som `<fs-field>` gjør, men som data, så du kan eie
84
+ * markupen selv uten å registrere et custom element.
85
+ */
86
+ field: computeFieldAttributes,
87
+ /** Gruppe av kontroller som hører sammen. Ledeteksten er `fs.legend`. */
88
+ fieldset,
89
+ heading,
90
+ fileUpload,
91
+ helpText,
92
+ input,
93
+ label,
94
+ legend,
95
+ link,
96
+ list,
97
+ pagination,
98
+ paragraph,
99
+ radio,
100
+ search,
101
+ select,
102
+ skeleton,
103
+ skipLink,
104
+ spinner,
105
+ /** Tekst bare skjermlesere skal få. Krever `sr-only.css`. */
106
+ srOnly,
107
+ /** Av og på. Heter `switchControl` når du importerer den direkte. */
108
+ switch: switchControl,
109
+ toggleGroup,
110
+ tooltip,
111
+ table,
112
+ tag,
113
+ textarea,
114
+ /**
115
+ * Bruker et attributtsett på et element i vanlig DOM.
116
+ *
117
+ * I JSX sprer du objektet. Uten JSX gjør denne jobben det, og rydder bort
118
+ * attributter fra forrige tilstand.
119
+ */
120
+ setAttributes,
121
+ /** Valideringstilstandene som deles av input, textarea og select. */
122
+ states: fieldStates,
123
+ isState: isFieldState,
124
+ /** Måtene et påkrevd felt kan markeres på. */
125
+ markers: requiredMarkers,
126
+ isMarker: isRequiredMarker,
127
+ };
128
+ //# sourceMappingURL=fs.js.map
package/dist/fs.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fs.js","sourceRoot":"","sources":["../src/fs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,84 @@
1
+ export type { AccordionAttributes, AccordionOptions, AccordionVariant, } from "./components/css/accordion/accordion.js";
2
+ export { accordion } from "./components/css/accordion/accordion.js";
3
+ export type { AlertAttributes, AlertColor, AlertOptions, } from "./components/css/alert/alert.js";
4
+ export { alert } from "./components/css/alert/alert.js";
5
+ export type { AvatarAttributes, AvatarOptions, AvatarSize, AvatarVariant, } from "./components/css/avatar/avatar.js";
6
+ export { avatar } from "./components/css/avatar/avatar.js";
7
+ export type { BadgeAttributes, BadgeColor, BadgeOptions, } from "./components/css/badge/badge.js";
8
+ export { badge } from "./components/css/badge/badge.js";
9
+ export type { BreadcrumbsAttributes } from "./components/css/breadcrumbs/breadcrumbs.js";
10
+ export { breadcrumbs } from "./components/css/breadcrumbs/breadcrumbs.js";
11
+ export type { ButtonAttributes, ButtonOptions, ButtonVariant, } from "./components/css/button/button.js";
12
+ export { button } from "./components/css/button/button.js";
13
+ export type { CardAttributes, CardOptions, CardVariant, } from "./components/css/card/card.js";
14
+ export { card } from "./components/css/card/card.js";
15
+ export type { CheckboxAttributes, CheckboxOptions, } from "./components/css/checkbox/checkbox.js";
16
+ export { checkbox } from "./components/css/checkbox/checkbox.js";
17
+ export type { DialogAttributes } from "./components/css/dialog/dialog.js";
18
+ export { dialog } from "./components/css/dialog/dialog.js";
19
+ export type { DividerAttributes, DividerOptions, DividerVariant, } from "./components/css/divider/divider.js";
20
+ export { divider } from "./components/css/divider/divider.js";
21
+ export type { ErrorTextAttributes, ErrorTextOptions, ErrorTextVariant, } from "./components/css/error-text/error-text.js";
22
+ export { errorText } from "./components/css/error-text/error-text.js";
23
+ export type { FieldsetAttributes, FieldsetOptions, LegendAttributes, LegendOptions, } from "./components/css/fieldset/fieldset.js";
24
+ export { fieldset, legend } from "./components/css/fieldset/fieldset.js";
25
+ export type { FileUploadAttributes, FileUploadOptions, } from "./components/css/file-upload/file-upload.js";
26
+ export { fileUpload } from "./components/css/file-upload/file-upload.js";
27
+ export type { HeadingAttributes, HeadingOptions, HeadingSize, } from "./components/css/heading/heading.js";
28
+ export { heading } from "./components/css/heading/heading.js";
29
+ export type { HelpTextAttributes, HelpTextOptions, HelpTextVariant, } from "./components/css/help-text/help-text.js";
30
+ export { helpText } from "./components/css/help-text/help-text.js";
31
+ export type { InputAttributes, InputOptions, InputType, } from "./components/css/input/input.js";
32
+ export { input } from "./components/css/input/input.js";
33
+ export type { LabelAttributes, LabelOptions, } from "./components/css/label/label.js";
34
+ export { label } from "./components/css/label/label.js";
35
+ export type { LinkAttributes, LinkOptions } from "./components/css/link/link.js";
36
+ export { link } from "./components/css/link/link.js";
37
+ export type { ListAttributes, ListOptions, ListVariant, } from "./components/css/list/list.js";
38
+ export { list } from "./components/css/list/list.js";
39
+ export type { PaginationAttributes } from "./components/css/pagination/pagination.js";
40
+ export { pagination } from "./components/css/pagination/pagination.js";
41
+ export type { ParagraphAttributes, ParagraphOptions, ParagraphSize, ParagraphVariant, } from "./components/css/paragraph/paragraph.js";
42
+ export { paragraph } from "./components/css/paragraph/paragraph.js";
43
+ export type { RadioAttributes, RadioOptions, } from "./components/css/radio/radio.js";
44
+ export { radio } from "./components/css/radio/radio.js";
45
+ export type { SearchAttributes, SearchOptions, } from "./components/css/search/search.js";
46
+ export { search } from "./components/css/search/search.js";
47
+ export type { SelectAttributes, SelectOptions, } from "./components/css/select/select.js";
48
+ export { select } from "./components/css/select/select.js";
49
+ export * from "./components/css/shared.js";
50
+ export type { SkeletonAttributes, SkeletonOptions, SkeletonVariant, } from "./components/css/skeleton/skeleton.js";
51
+ export { skeleton } from "./components/css/skeleton/skeleton.js";
52
+ export type { SkipLinkAttributes } from "./components/css/skip-link/skip-link.js";
53
+ export { skipLink } from "./components/css/skip-link/skip-link.js";
54
+ export type { SpinnerAttributes, SpinnerOptions, SpinnerSize, } from "./components/css/spinner/spinner.js";
55
+ export { spinner } from "./components/css/spinner/spinner.js";
56
+ export type { SrOnlyAttributes } from "./components/css/sr-only/sr-only.js";
57
+ export { srOnly } from "./components/css/sr-only/sr-only.js";
58
+ export type { SwitchAttributes, SwitchOptions, } from "./components/css/switch/switch.js";
59
+ export { switchControl } from "./components/css/switch/switch.js";
60
+ export type { TableAttributes, TableOptions, TableVariant, } from "./components/css/table/table.js";
61
+ export { table } from "./components/css/table/table.js";
62
+ export type { TagAttributes, TagOptions, TagVariant, } from "./components/css/tag/tag.js";
63
+ export { tag } from "./components/css/tag/tag.js";
64
+ export type { TextareaAttributes, TextareaOptions, } from "./components/css/textarea/textarea.js";
65
+ export { textarea } from "./components/css/textarea/textarea.js";
66
+ export type { ToggleGroupAttributes } from "./components/css/toggle-group/toggle-group.js";
67
+ export { toggleGroup } from "./components/css/toggle-group/toggle-group.js";
68
+ export type { TooltipAttributes } from "./components/css/tooltip/tooltip.js";
69
+ export { tooltip } from "./components/css/tooltip/tooltip.js";
70
+ export * from "./components/frittstaende/calendar/fs-calendar.js";
71
+ export * from "./components/frittstaende/date-field/fs-date-field.js";
72
+ export * from "./components/frittstaende/suggestion/fs-suggestion.js";
73
+ export * from "./components/frittstaende/toast/fs-toast.js";
74
+ export * from "./components/ramme/error-summary/fs-error-summary.js";
75
+ export * from "./components/ramme/field/field-core.js";
76
+ export * from "./components/ramme/field/fs-field.js";
77
+ export * from "./components/ramme/popover/fs-popover.js";
78
+ export * from "./components/ramme/tabs/fs-tabs.js";
79
+ export type { Attributes } from "./dom.js";
80
+ export { setAttributes } from "./dom.js";
81
+ export type { Fs } from "./fs.js";
82
+ export { fs } from "./fs.js";
83
+ export * from "./tokens/tokens.js";
84
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,yCAAyC,CAAA;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AACnE,YAAY,EACV,eAAe,EACf,UAAU,EACV,YAAY,GACb,MAAM,iCAAiC,CAAA;AACxC,OAAO,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAA;AACvD,YAAY,EACV,gBAAgB,EAChB,aAAa,EACb,UAAU,EACV,aAAa,GACd,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAA;AAC1D,YAAY,EACV,eAAe,EACf,UAAU,EACV,YAAY,GACb,MAAM,iCAAiC,CAAA;AACxC,OAAO,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAA;AACvD,YAAY,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAA;AACxF,OAAO,EAAE,WAAW,EAAE,MAAM,6CAA6C,CAAA;AACzE,YAAY,EACV,gBAAgB,EAChB,aAAa,EACb,aAAa,GACd,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAA;AAC1D,YAAY,EACV,cAAc,EACd,WAAW,EACX,WAAW,GACZ,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,+BAA+B,CAAA;AACpD,YAAY,EACV,kBAAkB,EAClB,eAAe,GAChB,MAAM,uCAAuC,CAAA;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAA;AAChE,YAAY,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAA;AACzE,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAA;AAC1D,YAAY,EACV,iBAAiB,EACjB,cAAc,EACd,cAAc,GACf,MAAM,qCAAqC,CAAA;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,qCAAqC,CAAA;AAC7D,YAAY,EACV,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,2CAA2C,CAAA;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,2CAA2C,CAAA;AACrE,YAAY,EACV,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,aAAa,GACd,MAAM,uCAAuC,CAAA;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,uCAAuC,CAAA;AACxE,YAAY,EACV,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,6CAA6C,CAAA;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,6CAA6C,CAAA;AACxE,YAAY,EACV,iBAAiB,EACjB,cAAc,EACd,WAAW,GACZ,MAAM,qCAAqC,CAAA;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,qCAAqC,CAAA;AAC7D,YAAY,EACV,kBAAkB,EAClB,eAAe,EACf,eAAe,GAChB,MAAM,yCAAyC,CAAA;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,yCAAyC,CAAA;AAClE,YAAY,EACV,eAAe,EACf,YAAY,EACZ,SAAS,GACV,MAAM,iCAAiC,CAAA;AACxC,OAAO,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAA;AACvD,YAAY,EACV,eAAe,EACf,YAAY,GACb,MAAM,iCAAiC,CAAA;AACxC,OAAO,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAA;AACvD,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAChF,OAAO,EAAE,IAAI,EAAE,MAAM,+BAA+B,CAAA;AACpD,YAAY,EACV,cAAc,EACd,WAAW,EACX,WAAW,GACZ,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,+BAA+B,CAAA;AACpD,YAAY,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAA;AACrF,OAAO,EAAE,UAAU,EAAE,MAAM,2CAA2C,CAAA;AACtE,YAAY,EACV,mBAAmB,EACnB,gBAAgB,EAChB,aAAa,EACb,gBAAgB,GACjB,MAAM,yCAAyC,CAAA;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AACnE,YAAY,EACV,eAAe,EACf,YAAY,GACb,MAAM,iCAAiC,CAAA;AACxC,OAAO,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAA;AACvD,YAAY,EACV,gBAAgB,EAChB,aAAa,GACd,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAA;AAC1D,YAAY,EACV,gBAAgB,EAChB,aAAa,GACd,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAA;AAC1D,cAAc,4BAA4B,CAAA;AAC1C,YAAY,EACV,kBAAkB,EAClB,eAAe,EACf,eAAe,GAChB,MAAM,uCAAuC,CAAA;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAA;AAChE,YAAY,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAA;AACjF,OAAO,EAAE,QAAQ,EAAE,MAAM,yCAAyC,CAAA;AAClE,YAAY,EACV,iBAAiB,EACjB,cAAc,EACd,WAAW,GACZ,MAAM,qCAAqC,CAAA;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,qCAAqC,CAAA;AAC7D,YAAY,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAA;AAC3E,OAAO,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAA;AAC5D,YAAY,EACV,gBAAgB,EAChB,aAAa,GACd,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAA;AACjE,YAAY,EACV,eAAe,EACf,YAAY,EACZ,YAAY,GACb,MAAM,iCAAiC,CAAA;AACxC,OAAO,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAA;AACvD,YAAY,EACV,aAAa,EACb,UAAU,EACV,UAAU,GACX,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAAE,GAAG,EAAE,MAAM,6BAA6B,CAAA;AACjD,YAAY,EACV,kBAAkB,EAClB,eAAe,GAChB,MAAM,uCAAuC,CAAA;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAA;AAChE,YAAY,EAAE,qBAAqB,EAAE,MAAM,+CAA+C,CAAA;AAC1F,OAAO,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAA;AAC3E,YAAY,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAA;AAC5E,OAAO,EAAE,OAAO,EAAE,MAAM,qCAAqC,CAAA;AAC7D,cAAc,mDAAmD,CAAA;AACjE,cAAc,uDAAuD,CAAA;AACrE,cAAc,uDAAuD,CAAA;AACrE,cAAc,6CAA6C,CAAA;AAC3D,cAAc,sDAAsD,CAAA;AACpE,cAAc,wCAAwC,CAAA;AACtD,cAAc,sCAAsC,CAAA;AACpD,cAAc,0CAA0C,CAAA;AACxD,cAAc,oCAAoC,CAAA;AAClD,YAAY,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,YAAY,EAAE,EAAE,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAA;AAC5B,cAAc,oBAAoB,CAAA"}
package/dist/index.js ADDED
@@ -0,0 +1,48 @@
1
+ export { accordion } from "./components/css/accordion/accordion.js";
2
+ export { alert } from "./components/css/alert/alert.js";
3
+ export { avatar } from "./components/css/avatar/avatar.js";
4
+ export { badge } from "./components/css/badge/badge.js";
5
+ export { breadcrumbs } from "./components/css/breadcrumbs/breadcrumbs.js";
6
+ export { button } from "./components/css/button/button.js";
7
+ export { card } from "./components/css/card/card.js";
8
+ export { checkbox } from "./components/css/checkbox/checkbox.js";
9
+ export { dialog } from "./components/css/dialog/dialog.js";
10
+ export { divider } from "./components/css/divider/divider.js";
11
+ export { errorText } from "./components/css/error-text/error-text.js";
12
+ export { fieldset, legend } from "./components/css/fieldset/fieldset.js";
13
+ export { fileUpload } from "./components/css/file-upload/file-upload.js";
14
+ export { heading } from "./components/css/heading/heading.js";
15
+ export { helpText } from "./components/css/help-text/help-text.js";
16
+ export { input } from "./components/css/input/input.js";
17
+ export { label } from "./components/css/label/label.js";
18
+ export { link } from "./components/css/link/link.js";
19
+ export { list } from "./components/css/list/list.js";
20
+ export { pagination } from "./components/css/pagination/pagination.js";
21
+ export { paragraph } from "./components/css/paragraph/paragraph.js";
22
+ export { radio } from "./components/css/radio/radio.js";
23
+ export { search } from "./components/css/search/search.js";
24
+ export { select } from "./components/css/select/select.js";
25
+ export * from "./components/css/shared.js";
26
+ export { skeleton } from "./components/css/skeleton/skeleton.js";
27
+ export { skipLink } from "./components/css/skip-link/skip-link.js";
28
+ export { spinner } from "./components/css/spinner/spinner.js";
29
+ export { srOnly } from "./components/css/sr-only/sr-only.js";
30
+ export { switchControl } from "./components/css/switch/switch.js";
31
+ export { table } from "./components/css/table/table.js";
32
+ export { tag } from "./components/css/tag/tag.js";
33
+ export { textarea } from "./components/css/textarea/textarea.js";
34
+ export { toggleGroup } from "./components/css/toggle-group/toggle-group.js";
35
+ export { tooltip } from "./components/css/tooltip/tooltip.js";
36
+ export * from "./components/frittstaende/calendar/fs-calendar.js";
37
+ export * from "./components/frittstaende/date-field/fs-date-field.js";
38
+ export * from "./components/frittstaende/suggestion/fs-suggestion.js";
39
+ export * from "./components/frittstaende/toast/fs-toast.js";
40
+ export * from "./components/ramme/error-summary/fs-error-summary.js";
41
+ export * from "./components/ramme/field/field-core.js";
42
+ export * from "./components/ramme/field/fs-field.js";
43
+ export * from "./components/ramme/popover/fs-popover.js";
44
+ export * from "./components/ramme/tabs/fs-tabs.js";
45
+ export { setAttributes } from "./dom.js";
46
+ export { fs } from "./fs.js";
47
+ export * from "./tokens/tokens.js";
48
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AAMnE,OAAO,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAA;AAOvD,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAA;AAM1D,OAAO,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAA;AAEvD,OAAO,EAAE,WAAW,EAAE,MAAM,6CAA6C,CAAA;AAMzE,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAA;AAM1D,OAAO,EAAE,IAAI,EAAE,MAAM,+BAA+B,CAAA;AAKpD,OAAO,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAA;AAEhE,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAA;AAM1D,OAAO,EAAE,OAAO,EAAE,MAAM,qCAAqC,CAAA;AAM7D,OAAO,EAAE,SAAS,EAAE,MAAM,2CAA2C,CAAA;AAOrE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,uCAAuC,CAAA;AAKxE,OAAO,EAAE,UAAU,EAAE,MAAM,6CAA6C,CAAA;AAMxE,OAAO,EAAE,OAAO,EAAE,MAAM,qCAAqC,CAAA;AAM7D,OAAO,EAAE,QAAQ,EAAE,MAAM,yCAAyC,CAAA;AAMlE,OAAO,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAA;AAKvD,OAAO,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAA;AAEvD,OAAO,EAAE,IAAI,EAAE,MAAM,+BAA+B,CAAA;AAMpD,OAAO,EAAE,IAAI,EAAE,MAAM,+BAA+B,CAAA;AAEpD,OAAO,EAAE,UAAU,EAAE,MAAM,2CAA2C,CAAA;AAOtE,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AAKnE,OAAO,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAA;AAKvD,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAA;AAK1D,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAA;AAC1D,cAAc,4BAA4B,CAAA;AAM1C,OAAO,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAA;AAEhE,OAAO,EAAE,QAAQ,EAAE,MAAM,yCAAyC,CAAA;AAMlE,OAAO,EAAE,OAAO,EAAE,MAAM,qCAAqC,CAAA;AAE7D,OAAO,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAA;AAK5D,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAA;AAMjE,OAAO,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAA;AAMvD,OAAO,EAAE,GAAG,EAAE,MAAM,6BAA6B,CAAA;AAKjD,OAAO,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAA;AAEhE,OAAO,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAA;AAE3E,OAAO,EAAE,OAAO,EAAE,MAAM,qCAAqC,CAAA;AAC7D,cAAc,mDAAmD,CAAA;AACjE,cAAc,uDAAuD,CAAA;AACrE,cAAc,uDAAuD,CAAA;AACrE,cAAc,6CAA6C,CAAA;AAC3D,cAAc,sDAAsD,CAAA;AACpE,cAAc,wCAAwC,CAAA;AACtD,cAAc,sCAAsC,CAAA;AACpD,cAAc,0CAA0C,CAAA;AACxD,cAAc,oCAAoC,CAAA;AAElD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAExC,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAA;AAC5B,cAAc,oBAAoB,CAAA"}
@@ -0,0 +1,127 @@
1
+ import type { HTMLAttributes } from "react";
2
+ /**
3
+ * Typer for Fristils egendefinerte elementer i JSX.
4
+ *
5
+ * Uten disse kjenner ikke TypeScript `<fs-field>` i det hele tatt, men sier
6
+ * «Property 'fs-field' does not exist on type JSX.IntrinsicElements». Og
7
+ * attributtene er bindestreksstrenger uten autofullføring, så `required-marker`
8
+ * og `help-text` er nettopp der en skrivefeil er lett å gjøre og vanskelig å
9
+ * få øye på.
10
+ *
11
+ * Importer én gang i prosjektet, helst fra en `.d.ts`-fil så det ikke havner
12
+ * i bygget:
13
+ *
14
+ * ```ts
15
+ * // src/fristil.d.ts
16
+ * import "@fristil/designsystem/react-jsx"
17
+ * ```
18
+ *
19
+ * Vue og Svelte trenger ikke dette. Vue godtar ukjente elementer når `fs-` er
20
+ * satt opp i `isCustomElement`, og Svelte klager ikke.
21
+ */
22
+ /**
23
+ * Boolske attributter på egendefinerte elementer.
24
+ *
25
+ * Typen er `true | undefined`, ikke `boolean`, og det er med vilje. React
26
+ * behandler egendefinerte elementer ulikt mellom versjoner, og bare ett
27
+ * mønster er riktig i begge:
28
+ *
29
+ * React 18 setter attributter React 19 setter egenskaper
30
+ * invalid="" virker aldri ugyldig
31
+ * invalid={true} virker virker
32
+ * invalid={false} ALLTID ugyldig virker
33
+ * invalid={undefined} virker virker
34
+ *
35
+ * React 18 stringifiserer til `invalid="false"`. Attributtet finnes da,
36
+ * og er dermed sant. React 19 setter egenskapen til `""`, som er usann.
37
+ *
38
+ * Skriv derfor `invalid={ugyldig || undefined}`. Typen her gjør at de to
39
+ * andre variantene blir kompileringsfeil i stedet for noe du må huske.
40
+ */
41
+ type Flag = true | undefined;
42
+ type FsFieldAttributes = HTMLAttributes<HTMLElement> & {
43
+ invalid?: Flag;
44
+ disabled?: Flag;
45
+ optional?: Flag;
46
+ "required-marker"?: "none" | "symbol" | "text";
47
+ "control-id"?: string;
48
+ "described-by"?: string;
49
+ };
50
+ type FsTabsAttributes = HTMLAttributes<HTMLElement> & {
51
+ /** Indeksen på fanen som er valgt. */
52
+ selected?: number;
53
+ /** Tekst som sier hva fanene velger mellom. */
54
+ label?: string;
55
+ };
56
+ type FsErrorSummaryAttributes = HTMLAttributes<HTMLElement> & {
57
+ /** Overskriften over lista med feil. */
58
+ heading?: string;
59
+ /** Flytt fokus hit når boksen kommer til syne. */
60
+ autofocus?: Flag;
61
+ };
62
+ type FsSuggestionAttributes = HTMLAttributes<HTMLElement> & {
63
+ label?: string;
64
+ value?: string;
65
+ name?: string;
66
+ placeholder?: string;
67
+ "help-text"?: string;
68
+ "error-text"?: string;
69
+ "control-id"?: string;
70
+ "described-by"?: string;
71
+ "no-results-text"?: string;
72
+ invalid?: Flag;
73
+ required?: Flag;
74
+ optional?: Flag;
75
+ disabled?: Flag;
76
+ open?: Flag;
77
+ };
78
+ type FsPopoverAttributes = HTMLAttributes<HTMLElement> & {
79
+ open?: Flag;
80
+ /** Hvilken kant panelet henger fra. */
81
+ placement?: "bottom-start" | "bottom-end" | "top-start" | "top-end";
82
+ };
83
+ type FsToastAttributes = HTMLAttributes<HTMLElement> & {
84
+ /** Millisekunder før meldingene forsvinner. */
85
+ duration?: number;
86
+ /** Tekst som sier hva regionen er. */
87
+ label?: string;
88
+ };
89
+ type FsCalendarAttributes = HTMLAttributes<HTMLElement> & {
90
+ /** Valgt dato som `ÅÅÅÅ-MM-DD`. */
91
+ value?: string;
92
+ open?: Flag;
93
+ disabled?: Flag;
94
+ "trigger-hidden"?: Flag;
95
+ };
96
+ type FsDateFieldAttributes = HTMLAttributes<HTMLElement> & {
97
+ label?: string;
98
+ /** Datoen som `ÅÅÅÅ-MM-DD`, alltid ISO. */
99
+ value?: string;
100
+ name?: string;
101
+ placeholder?: string;
102
+ "help-text"?: string;
103
+ "error-text"?: string;
104
+ "control-id"?: string;
105
+ "described-by"?: string;
106
+ invalid?: Flag;
107
+ required?: Flag;
108
+ optional?: Flag;
109
+ disabled?: Flag;
110
+ readonly?: Flag;
111
+ };
112
+ declare module "react" {
113
+ namespace JSX {
114
+ interface IntrinsicElements {
115
+ "fs-error-summary": FsErrorSummaryAttributes;
116
+ "fs-field": FsFieldAttributes;
117
+ "fs-popover": FsPopoverAttributes;
118
+ "fs-suggestion": FsSuggestionAttributes;
119
+ "fs-tabs": FsTabsAttributes;
120
+ "fs-toast": FsToastAttributes;
121
+ "fs-calendar": FsCalendarAttributes;
122
+ "fs-date-field": FsDateFieldAttributes;
123
+ }
124
+ }
125
+ }
126
+ export type { FsCalendarAttributes, FsDateFieldAttributes, FsErrorSummaryAttributes, FsFieldAttributes, FsPopoverAttributes, FsSuggestionAttributes, FsTabsAttributes, FsToastAttributes, };
127
+ //# sourceMappingURL=react.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../../src/jsx/react.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=react.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react.js","sourceRoot":"","sources":["../../src/jsx/react.ts"],"names":[],"mappings":""}