fds-vue-core 2.0.88 → 2.1.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 (331) hide show
  1. package/README.md +1 -0
  2. package/configs/eslint.config.base.js +262 -0
  3. package/configs/prettier.config.js +13 -0
  4. package/configs/tsconfig.base.json +17 -0
  5. package/configs/vscode-settings.json +74 -0
  6. package/dist/fds-vue-core.cjs.js +5367 -5374
  7. package/dist/fds-vue-core.cjs.js.map +1 -1
  8. package/dist/fds-vue-core.es.js +5368 -5375
  9. package/dist/fds-vue-core.es.js.map +1 -1
  10. package/dist/global-components.d.ts +36 -36
  11. package/dist/index.d.ts +2 -80
  12. package/dist/slot-styles.css +1 -1
  13. package/dist/tokens.css +0 -1
  14. package/package.json +15 -6
  15. package/src/.DS_Store +0 -0
  16. package/src/App.vue +133 -0
  17. package/src/apply.css +60 -0
  18. package/src/assets/icons.ts +517 -0
  19. package/src/components/Blocks/FdsBlockAlert/FdsBlockAlert.stories.ts +94 -0
  20. package/src/components/Blocks/FdsBlockAlert/FdsBlockAlert.vue +112 -0
  21. package/src/components/Blocks/FdsBlockAlert/types.ts +12 -0
  22. package/src/components/Blocks/FdsBlockContent/FdsBlockContent.stories.ts +110 -0
  23. package/src/components/Blocks/FdsBlockContent/FdsBlockContent.vue +66 -0
  24. package/src/components/Blocks/FdsBlockContent/types.ts +6 -0
  25. package/src/components/Blocks/FdsBlockExpander/FdsBlockExpander.stories.ts +123 -0
  26. package/src/components/Blocks/FdsBlockExpander/FdsBlockExpander.vue +87 -0
  27. package/src/components/Blocks/FdsBlockExpander/types.ts +8 -0
  28. package/src/components/Blocks/FdsBlockInfo/FdsBlockInfo.stories.ts +110 -0
  29. package/src/components/Blocks/FdsBlockInfo/FdsBlockInfo.vue +98 -0
  30. package/src/components/Blocks/FdsBlockInfo/types.ts +8 -0
  31. package/src/components/Blocks/FdsBlockLink/FdsBlockLink.css +9 -0
  32. package/src/components/Blocks/FdsBlockLink/FdsBlockLink.stories.ts +179 -0
  33. package/src/components/Blocks/FdsBlockLink/FdsBlockLink.vue +149 -0
  34. package/src/components/Blocks/FdsBlockLink/types.ts +14 -0
  35. package/src/components/Buttons/ButtonBaseProps.ts +18 -0
  36. package/src/components/Buttons/FdsButtonCopy/FdsButtonCopy.stories.ts +53 -0
  37. package/src/components/Buttons/FdsButtonCopy/FdsButtonCopy.vue +87 -0
  38. package/src/components/Buttons/FdsButtonCopy/types.ts +8 -0
  39. package/src/components/Buttons/FdsButtonDownload/FdsButtonDownload.stories.ts +111 -0
  40. package/src/components/Buttons/FdsButtonDownload/FdsButtonDownload.vue +187 -0
  41. package/src/components/Buttons/FdsButtonIcon/FdsButtonIcon.stories.ts +55 -0
  42. package/src/components/Buttons/FdsButtonIcon/FdsButtonIcon.vue +57 -0
  43. package/src/components/Buttons/FdsButtonIcon/types.ts +12 -0
  44. package/src/components/Buttons/FdsButtonMinor/FdsButtonMinor.stories.ts +68 -0
  45. package/src/components/Buttons/FdsButtonMinor/FdsButtonMinor.vue +126 -0
  46. package/src/components/Buttons/FdsButtonPrimary/FdsButtonPrimary.stories.ts +86 -0
  47. package/src/components/Buttons/FdsButtonPrimary/FdsButtonPrimary.vue +107 -0
  48. package/src/components/Buttons/FdsButtonSecondary/FdsButtonSecondary.stories.ts +68 -0
  49. package/src/components/Buttons/FdsButtonSecondary/FdsButtonSecondary.vue +107 -0
  50. package/src/components/FdsIcon/FdsIcon.stories.ts +69 -0
  51. package/src/components/FdsIcon/FdsIcon.vue +34 -0
  52. package/src/components/FdsIcon/types.ts +9 -0
  53. package/src/components/FdsModal/FdsModal.stories.ts +241 -0
  54. package/src/components/FdsModal/FdsModal.vue +261 -0
  55. package/src/components/FdsModal/types.ts +12 -0
  56. package/src/components/FdsPagination/FdsPagination.stories.ts +109 -0
  57. package/src/components/FdsPagination/FdsPagination.vue +193 -0
  58. package/src/components/FdsPagination/types.ts +6 -0
  59. package/src/components/FdsSearchSelect/FdsSearchSelect.stories.ts +428 -0
  60. package/src/components/FdsSearchSelect/FdsSearchSelect.vue +610 -0
  61. package/src/components/FdsSearchSelect/types.ts +25 -0
  62. package/src/components/FdsSpinner/FdsSpinner.stories.ts +31 -0
  63. package/src/components/FdsSpinner/FdsSpinner.vue +90 -0
  64. package/src/components/FdsSpinner/types.ts +6 -0
  65. package/src/components/FdsSticker/FdsSticker.stories.ts +148 -0
  66. package/src/components/FdsSticker/FdsSticker.vue +44 -0
  67. package/src/components/FdsSticker/types.ts +4 -0
  68. package/src/components/FdsTreeView/FdsTreeView.stories.ts +136 -0
  69. package/src/components/FdsTreeView/FdsTreeView.vue +162 -0
  70. package/src/components/FdsTreeView/TreeNode.vue +383 -0
  71. package/src/components/FdsTreeView/types.ts +141 -0
  72. package/src/components/FdsTreeView/useTreeState.ts +607 -0
  73. package/src/components/FdsTreeView/utils.ts +65 -0
  74. package/src/components/FdsTruncatedText/FdsTruncatedText.stories.ts +78 -0
  75. package/src/components/FdsTruncatedText/FdsTruncatedText.vue +85 -0
  76. package/src/components/FdsTruncatedText/types.ts +6 -0
  77. package/src/components/Form/FdsCheckbox/FdsCheckbox.stories.ts +275 -0
  78. package/src/components/Form/FdsCheckbox/FdsCheckbox.vue +155 -0
  79. package/src/components/Form/FdsCheckbox/types.ts +10 -0
  80. package/src/components/Form/FdsInput/FdsInput.stories.ts +319 -0
  81. package/src/components/Form/FdsInput/FdsInput.vue +233 -0
  82. package/src/components/Form/FdsInput/types.ts +25 -0
  83. package/src/components/Form/FdsRadio/FdsRadio.stories.ts +63 -0
  84. package/src/components/Form/FdsRadio/FdsRadio.vue +88 -0
  85. package/src/components/Form/FdsRadio/types.ts +12 -0
  86. package/src/components/Form/FdsSelect/FdsSelect.stories.ts +78 -0
  87. package/src/components/Form/FdsSelect/FdsSelect.vue +136 -0
  88. package/src/components/Form/FdsSelect/types.ts +13 -0
  89. package/src/components/Form/FdsTextarea/FdsTextarea.stories.ts +52 -0
  90. package/src/components/Form/FdsTextarea/FdsTextarea.vue +110 -0
  91. package/src/components/Form/FdsTextarea/types.ts +12 -0
  92. package/src/components/Table/FdsTable/FdsTable.stories.ts +221 -0
  93. package/src/components/Table/FdsTable/FdsTable.vue +25 -0
  94. package/src/components/Table/FdsTable/types.ts +4 -0
  95. package/src/components/Table/FdsTableHead/FdsTableHead.stories.ts +151 -0
  96. package/src/components/Table/FdsTableHead/FdsTableHead.vue +54 -0
  97. package/src/components/Table/FdsTableHead/types.ts +5 -0
  98. package/src/components/Tabs/FdsTabs/FdsTabs.stories.ts +247 -0
  99. package/src/components/Tabs/FdsTabs/FdsTabs.vue +27 -0
  100. package/src/components/Tabs/FdsTabs/types.ts +4 -0
  101. package/src/components/Tabs/FdsTabsItem/FdsTabsItem.vue +125 -0
  102. package/src/components/Tabs/FdsTabsItem/types.ts +16 -0
  103. package/src/components/Typography/FdsHeading/FdsHeading.stories.ts +93 -0
  104. package/src/components/Typography/FdsHeading/FdsHeading.vue +51 -0
  105. package/src/components/Typography/FdsHeading/types.ts +5 -0
  106. package/src/components/Typography/FdsListHeading/FdsListHeading.stories.ts +58 -0
  107. package/src/components/Typography/FdsListHeading/FdsListHeading.vue +62 -0
  108. package/src/components/Typography/FdsListHeading/types.ts +8 -0
  109. package/src/components/Typography/FdsSeparator/FdsSeparator.stories.ts +31 -0
  110. package/src/components/Typography/FdsSeparator/FdsSeparator.vue +5 -0
  111. package/src/components/Typography/FdsText/FdsText.stories.ts +66 -0
  112. package/src/components/Typography/FdsText/FdsText.vue +28 -0
  113. package/src/components/Typography/FdsText/types.ts +3 -0
  114. package/src/composables/useBoldQuery.ts +29 -0
  115. package/src/composables/useElementFinalSize.ts +24 -0
  116. package/src/composables/useHasSlots.ts +17 -0
  117. package/src/composables/useIsPid.ts +48 -0
  118. package/src/docs/Start/Start.mdx +12 -0
  119. package/src/docs/Usage.md +117 -0
  120. package/src/fonts.css +28 -0
  121. package/src/global-components.ts +38 -0
  122. package/src/index.ts +180 -0
  123. package/src/main.ts +7 -0
  124. package/src/slot-styles.css +93 -0
  125. package/src/style.css +89 -0
  126. package/src/tokens.css +252 -0
  127. package/tsconfig.base.json +4 -0
  128. package/dist/App.vue.d.ts +0 -3
  129. package/dist/App.vue.d.ts.map +0 -1
  130. package/dist/assets/icons.d.ts +0 -5
  131. package/dist/assets/icons.d.ts.map +0 -1
  132. package/dist/components/Blocks/FdsBlockAlert/FdsBlockAlert.stories.d.ts +0 -9
  133. package/dist/components/Blocks/FdsBlockAlert/FdsBlockAlert.stories.d.ts.map +0 -1
  134. package/dist/components/Blocks/FdsBlockAlert/FdsBlockAlert.vue.d.ts +0 -30
  135. package/dist/components/Blocks/FdsBlockAlert/FdsBlockAlert.vue.d.ts.map +0 -1
  136. package/dist/components/Blocks/FdsBlockAlert/types.d.ts +0 -12
  137. package/dist/components/Blocks/FdsBlockAlert/types.d.ts.map +0 -1
  138. package/dist/components/Blocks/FdsBlockContent/FdsBlockContent.stories.d.ts +0 -9
  139. package/dist/components/Blocks/FdsBlockContent/FdsBlockContent.stories.d.ts.map +0 -1
  140. package/dist/components/Blocks/FdsBlockContent/FdsBlockContent.vue.d.ts +0 -19
  141. package/dist/components/Blocks/FdsBlockContent/FdsBlockContent.vue.d.ts.map +0 -1
  142. package/dist/components/Blocks/FdsBlockContent/types.d.ts +0 -7
  143. package/dist/components/Blocks/FdsBlockContent/types.d.ts.map +0 -1
  144. package/dist/components/Blocks/FdsBlockExpander/FdsBlockExpander.stories.d.ts +0 -11
  145. package/dist/components/Blocks/FdsBlockExpander/FdsBlockExpander.stories.d.ts.map +0 -1
  146. package/dist/components/Blocks/FdsBlockExpander/FdsBlockExpander.vue.d.ts +0 -23
  147. package/dist/components/Blocks/FdsBlockExpander/FdsBlockExpander.vue.d.ts.map +0 -1
  148. package/dist/components/Blocks/FdsBlockExpander/types.d.ts +0 -8
  149. package/dist/components/Blocks/FdsBlockExpander/types.d.ts.map +0 -1
  150. package/dist/components/Blocks/FdsBlockInfo/FdsBlockInfo.stories.d.ts +0 -9
  151. package/dist/components/Blocks/FdsBlockInfo/FdsBlockInfo.stories.d.ts.map +0 -1
  152. package/dist/components/Blocks/FdsBlockInfo/FdsBlockInfo.vue.d.ts +0 -20
  153. package/dist/components/Blocks/FdsBlockInfo/FdsBlockInfo.vue.d.ts.map +0 -1
  154. package/dist/components/Blocks/FdsBlockInfo/types.d.ts +0 -8
  155. package/dist/components/Blocks/FdsBlockInfo/types.d.ts.map +0 -1
  156. package/dist/components/Blocks/FdsBlockLink/FdsBlockLink.stories.d.ts +0 -14
  157. package/dist/components/Blocks/FdsBlockLink/FdsBlockLink.stories.d.ts.map +0 -1
  158. package/dist/components/Blocks/FdsBlockLink/FdsBlockLink.vue.d.ts +0 -30
  159. package/dist/components/Blocks/FdsBlockLink/FdsBlockLink.vue.d.ts.map +0 -1
  160. package/dist/components/Blocks/FdsBlockLink/types.d.ts +0 -14
  161. package/dist/components/Blocks/FdsBlockLink/types.d.ts.map +0 -1
  162. package/dist/components/Buttons/ButtonBaseProps.d.ts +0 -18
  163. package/dist/components/Buttons/ButtonBaseProps.d.ts.map +0 -1
  164. package/dist/components/Buttons/FdsButtonCopy/FdsButtonCopy.stories.d.ts +0 -7
  165. package/dist/components/Buttons/FdsButtonCopy/FdsButtonCopy.stories.d.ts.map +0 -1
  166. package/dist/components/Buttons/FdsButtonCopy/FdsButtonCopy.vue.d.ts +0 -14
  167. package/dist/components/Buttons/FdsButtonCopy/FdsButtonCopy.vue.d.ts.map +0 -1
  168. package/dist/components/Buttons/FdsButtonCopy/types.d.ts +0 -9
  169. package/dist/components/Buttons/FdsButtonCopy/types.d.ts.map +0 -1
  170. package/dist/components/Buttons/FdsButtonDownload/FdsButtonDownload.stories.d.ts +0 -10
  171. package/dist/components/Buttons/FdsButtonDownload/FdsButtonDownload.stories.d.ts.map +0 -1
  172. package/dist/components/Buttons/FdsButtonDownload/FdsButtonDownload.vue.d.ts +0 -25
  173. package/dist/components/Buttons/FdsButtonDownload/FdsButtonDownload.vue.d.ts.map +0 -1
  174. package/dist/components/Buttons/FdsButtonIcon/FdsButtonIcon.stories.d.ts +0 -7
  175. package/dist/components/Buttons/FdsButtonIcon/FdsButtonIcon.stories.d.ts.map +0 -1
  176. package/dist/components/Buttons/FdsButtonIcon/FdsButtonIcon.vue.d.ts +0 -14
  177. package/dist/components/Buttons/FdsButtonIcon/FdsButtonIcon.vue.d.ts.map +0 -1
  178. package/dist/components/Buttons/FdsButtonIcon/types.d.ts +0 -12
  179. package/dist/components/Buttons/FdsButtonIcon/types.d.ts.map +0 -1
  180. package/dist/components/Buttons/FdsButtonMinor/FdsButtonMinor.stories.d.ts +0 -7
  181. package/dist/components/Buttons/FdsButtonMinor/FdsButtonMinor.stories.d.ts.map +0 -1
  182. package/dist/components/Buttons/FdsButtonMinor/FdsButtonMinor.vue.d.ts +0 -25
  183. package/dist/components/Buttons/FdsButtonMinor/FdsButtonMinor.vue.d.ts.map +0 -1
  184. package/dist/components/Buttons/FdsButtonPrimary/FdsButtonPrimary.stories.d.ts +0 -9
  185. package/dist/components/Buttons/FdsButtonPrimary/FdsButtonPrimary.stories.d.ts.map +0 -1
  186. package/dist/components/Buttons/FdsButtonPrimary/FdsButtonPrimary.vue.d.ts +0 -20
  187. package/dist/components/Buttons/FdsButtonPrimary/FdsButtonPrimary.vue.d.ts.map +0 -1
  188. package/dist/components/Buttons/FdsButtonSecondary/FdsButtonSecondary.stories.d.ts +0 -7
  189. package/dist/components/Buttons/FdsButtonSecondary/FdsButtonSecondary.stories.d.ts.map +0 -1
  190. package/dist/components/Buttons/FdsButtonSecondary/FdsButtonSecondary.vue.d.ts +0 -20
  191. package/dist/components/Buttons/FdsButtonSecondary/FdsButtonSecondary.vue.d.ts.map +0 -1
  192. package/dist/components/FdsIcon/FdsIcon.stories.d.ts +0 -8
  193. package/dist/components/FdsIcon/FdsIcon.stories.d.ts.map +0 -1
  194. package/dist/components/FdsIcon/FdsIcon.vue.d.ts +0 -7
  195. package/dist/components/FdsIcon/FdsIcon.vue.d.ts.map +0 -1
  196. package/dist/components/FdsIcon/types.d.ts +0 -8
  197. package/dist/components/FdsIcon/types.d.ts.map +0 -1
  198. package/dist/components/FdsModal/FdsModal.stories.d.ts +0 -13
  199. package/dist/components/FdsModal/FdsModal.stories.d.ts.map +0 -1
  200. package/dist/components/FdsModal/FdsModal.vue.d.ts +0 -33
  201. package/dist/components/FdsModal/FdsModal.vue.d.ts.map +0 -1
  202. package/dist/components/FdsModal/types.d.ts +0 -13
  203. package/dist/components/FdsModal/types.d.ts.map +0 -1
  204. package/dist/components/FdsPagination/FdsPagination.stories.d.ts +0 -11
  205. package/dist/components/FdsPagination/FdsPagination.stories.d.ts.map +0 -1
  206. package/dist/components/FdsPagination/FdsPagination.vue.d.ts +0 -21
  207. package/dist/components/FdsPagination/FdsPagination.vue.d.ts.map +0 -1
  208. package/dist/components/FdsPagination/types.d.ts +0 -7
  209. package/dist/components/FdsPagination/types.d.ts.map +0 -1
  210. package/dist/components/FdsSearchSelect/FdsSearchSelect.stories.d.ts +0 -15
  211. package/dist/components/FdsSearchSelect/FdsSearchSelect.stories.d.ts.map +0 -1
  212. package/dist/components/FdsSearchSelect/FdsSearchSelect.vue.d.ts +0 -41
  213. package/dist/components/FdsSearchSelect/FdsSearchSelect.vue.d.ts.map +0 -1
  214. package/dist/components/FdsSearchSelect/types.d.ts +0 -29
  215. package/dist/components/FdsSearchSelect/types.d.ts.map +0 -1
  216. package/dist/components/FdsSpinner/FdsSpinner.stories.d.ts +0 -7
  217. package/dist/components/FdsSpinner/FdsSpinner.stories.d.ts.map +0 -1
  218. package/dist/components/FdsSpinner/FdsSpinner.vue.d.ts +0 -15
  219. package/dist/components/FdsSpinner/FdsSpinner.vue.d.ts.map +0 -1
  220. package/dist/components/FdsSpinner/types.d.ts +0 -7
  221. package/dist/components/FdsSpinner/types.d.ts.map +0 -1
  222. package/dist/components/FdsSticker/FdsSticker.stories.d.ts +0 -15
  223. package/dist/components/FdsSticker/FdsSticker.stories.d.ts.map +0 -1
  224. package/dist/components/FdsSticker/FdsSticker.vue.d.ts +0 -17
  225. package/dist/components/FdsSticker/FdsSticker.vue.d.ts.map +0 -1
  226. package/dist/components/FdsSticker/types.d.ts +0 -5
  227. package/dist/components/FdsSticker/types.d.ts.map +0 -1
  228. package/dist/components/FdsTreeView/FdsTreeView.stories.d.ts +0 -7
  229. package/dist/components/FdsTreeView/FdsTreeView.stories.d.ts.map +0 -1
  230. package/dist/components/FdsTreeView/FdsTreeView.vue.d.ts +0 -29
  231. package/dist/components/FdsTreeView/FdsTreeView.vue.d.ts.map +0 -1
  232. package/dist/components/FdsTreeView/TreeNode.vue.d.ts +0 -21
  233. package/dist/components/FdsTreeView/TreeNode.vue.d.ts.map +0 -1
  234. package/dist/components/FdsTreeView/types.d.ts +0 -122
  235. package/dist/components/FdsTreeView/types.d.ts.map +0 -1
  236. package/dist/components/FdsTreeView/useTreeState.d.ts +0 -48
  237. package/dist/components/FdsTreeView/useTreeState.d.ts.map +0 -1
  238. package/dist/components/FdsTreeView/utils.d.ts +0 -4
  239. package/dist/components/FdsTreeView/utils.d.ts.map +0 -1
  240. package/dist/components/FdsTruncatedText/FdsTruncatedText.stories.d.ts +0 -9
  241. package/dist/components/FdsTruncatedText/FdsTruncatedText.stories.d.ts.map +0 -1
  242. package/dist/components/FdsTruncatedText/FdsTruncatedText.vue.d.ts +0 -26
  243. package/dist/components/FdsTruncatedText/FdsTruncatedText.vue.d.ts.map +0 -1
  244. package/dist/components/FdsTruncatedText/types.d.ts +0 -7
  245. package/dist/components/FdsTruncatedText/types.d.ts.map +0 -1
  246. package/dist/components/Form/FdsCheckbox/FdsCheckbox.stories.d.ts +0 -12
  247. package/dist/components/Form/FdsCheckbox/FdsCheckbox.stories.d.ts.map +0 -1
  248. package/dist/components/Form/FdsCheckbox/FdsCheckbox.vue.d.ts +0 -38
  249. package/dist/components/Form/FdsCheckbox/FdsCheckbox.vue.d.ts.map +0 -1
  250. package/dist/components/Form/FdsCheckbox/types.d.ts +0 -11
  251. package/dist/components/Form/FdsCheckbox/types.d.ts.map +0 -1
  252. package/dist/components/Form/FdsInput/FdsInput.stories.d.ts +0 -18
  253. package/dist/components/Form/FdsInput/FdsInput.stories.d.ts.map +0 -1
  254. package/dist/components/Form/FdsInput/FdsInput.vue.d.ts +0 -39
  255. package/dist/components/Form/FdsInput/FdsInput.vue.d.ts.map +0 -1
  256. package/dist/components/Form/FdsInput/types.d.ts +0 -26
  257. package/dist/components/Form/FdsInput/types.d.ts.map +0 -1
  258. package/dist/components/Form/FdsRadio/FdsRadio.stories.d.ts +0 -8
  259. package/dist/components/Form/FdsRadio/FdsRadio.stories.d.ts.map +0 -1
  260. package/dist/components/Form/FdsRadio/FdsRadio.vue.d.ts +0 -36
  261. package/dist/components/Form/FdsRadio/FdsRadio.vue.d.ts.map +0 -1
  262. package/dist/components/Form/FdsRadio/types.d.ts +0 -13
  263. package/dist/components/Form/FdsRadio/types.d.ts.map +0 -1
  264. package/dist/components/Form/FdsSelect/FdsSelect.stories.d.ts +0 -10
  265. package/dist/components/Form/FdsSelect/FdsSelect.stories.d.ts.map +0 -1
  266. package/dist/components/Form/FdsSelect/FdsSelect.vue.d.ts +0 -45
  267. package/dist/components/Form/FdsSelect/FdsSelect.vue.d.ts.map +0 -1
  268. package/dist/components/Form/FdsSelect/types.d.ts +0 -18
  269. package/dist/components/Form/FdsSelect/types.d.ts.map +0 -1
  270. package/dist/components/Form/FdsTextarea/FdsTextarea.stories.d.ts +0 -8
  271. package/dist/components/Form/FdsTextarea/FdsTextarea.stories.d.ts.map +0 -1
  272. package/dist/components/Form/FdsTextarea/FdsTextarea.vue.d.ts +0 -27
  273. package/dist/components/Form/FdsTextarea/FdsTextarea.vue.d.ts.map +0 -1
  274. package/dist/components/Form/FdsTextarea/types.d.ts +0 -13
  275. package/dist/components/Form/FdsTextarea/types.d.ts.map +0 -1
  276. package/dist/components/Table/FdsTable/FdsTable.stories.d.ts +0 -10
  277. package/dist/components/Table/FdsTable/FdsTable.stories.d.ts.map +0 -1
  278. package/dist/components/Table/FdsTable/FdsTable.vue.d.ts +0 -16
  279. package/dist/components/Table/FdsTable/FdsTable.vue.d.ts.map +0 -1
  280. package/dist/components/Table/FdsTable/types.d.ts +0 -5
  281. package/dist/components/Table/FdsTable/types.d.ts.map +0 -1
  282. package/dist/components/Table/FdsTableHead/FdsTableHead.stories.d.ts +0 -12
  283. package/dist/components/Table/FdsTableHead/FdsTableHead.stories.d.ts.map +0 -1
  284. package/dist/components/Table/FdsTableHead/FdsTableHead.vue.d.ts +0 -24
  285. package/dist/components/Table/FdsTableHead/FdsTableHead.vue.d.ts.map +0 -1
  286. package/dist/components/Table/FdsTableHead/types.d.ts +0 -6
  287. package/dist/components/Table/FdsTableHead/types.d.ts.map +0 -1
  288. package/dist/components/Tabs/FdsTabs/FdsTabs.stories.d.ts +0 -14
  289. package/dist/components/Tabs/FdsTabs/FdsTabs.stories.d.ts.map +0 -1
  290. package/dist/components/Tabs/FdsTabs/FdsTabs.vue.d.ts +0 -17
  291. package/dist/components/Tabs/FdsTabs/FdsTabs.vue.d.ts.map +0 -1
  292. package/dist/components/Tabs/FdsTabs/types.d.ts +0 -5
  293. package/dist/components/Tabs/FdsTabs/types.d.ts.map +0 -1
  294. package/dist/components/Tabs/FdsTabsItem/FdsTabsItem.vue.d.ts +0 -22
  295. package/dist/components/Tabs/FdsTabsItem/FdsTabsItem.vue.d.ts.map +0 -1
  296. package/dist/components/Tabs/FdsTabsItem/types.d.ts +0 -17
  297. package/dist/components/Tabs/FdsTabsItem/types.d.ts.map +0 -1
  298. package/dist/components/Typography/FdsHeading/FdsHeading.stories.d.ts +0 -11
  299. package/dist/components/Typography/FdsHeading/FdsHeading.stories.d.ts.map +0 -1
  300. package/dist/components/Typography/FdsHeading/FdsHeading.vue.d.ts +0 -6
  301. package/dist/components/Typography/FdsHeading/FdsHeading.vue.d.ts.map +0 -1
  302. package/dist/components/Typography/FdsHeading/types.d.ts +0 -6
  303. package/dist/components/Typography/FdsHeading/types.d.ts.map +0 -1
  304. package/dist/components/Typography/FdsListHeading/FdsListHeading.stories.d.ts +0 -11
  305. package/dist/components/Typography/FdsListHeading/FdsListHeading.stories.d.ts.map +0 -1
  306. package/dist/components/Typography/FdsListHeading/FdsListHeading.vue.d.ts +0 -7
  307. package/dist/components/Typography/FdsListHeading/FdsListHeading.vue.d.ts.map +0 -1
  308. package/dist/components/Typography/FdsListHeading/types.d.ts +0 -9
  309. package/dist/components/Typography/FdsListHeading/types.d.ts.map +0 -1
  310. package/dist/components/Typography/FdsSeparator/FdsSeparator.stories.d.ts +0 -7
  311. package/dist/components/Typography/FdsSeparator/FdsSeparator.stories.d.ts.map +0 -1
  312. package/dist/components/Typography/FdsSeparator/FdsSeparator.vue.d.ts +0 -3
  313. package/dist/components/Typography/FdsSeparator/FdsSeparator.vue.d.ts.map +0 -1
  314. package/dist/components/Typography/FdsText/FdsText.stories.d.ts +0 -9
  315. package/dist/components/Typography/FdsText/FdsText.stories.d.ts.map +0 -1
  316. package/dist/components/Typography/FdsText/FdsText.vue.d.ts +0 -16
  317. package/dist/components/Typography/FdsText/FdsText.vue.d.ts.map +0 -1
  318. package/dist/components/Typography/FdsText/types.d.ts +0 -4
  319. package/dist/components/Typography/FdsText/types.d.ts.map +0 -1
  320. package/dist/composables/useBoldQuery.d.ts +0 -10
  321. package/dist/composables/useBoldQuery.d.ts.map +0 -1
  322. package/dist/composables/useElementFinalSize.d.ts +0 -3
  323. package/dist/composables/useElementFinalSize.d.ts.map +0 -1
  324. package/dist/composables/useHasSlots.d.ts +0 -6
  325. package/dist/composables/useHasSlots.d.ts.map +0 -1
  326. package/dist/composables/useIsPid.d.ts +0 -16
  327. package/dist/composables/useIsPid.d.ts.map +0 -1
  328. package/dist/global-components.d.ts.map +0 -1
  329. package/dist/index.d.ts.map +0 -1
  330. package/dist/main.d.ts +0 -2
  331. package/dist/main.d.ts.map +0 -1
@@ -0,0 +1,31 @@
1
+ import type { Meta, StoryObj } from '@storybook/vue3'
2
+ import FdsSeparator from './FdsSeparator.vue'
3
+
4
+ const meta: Meta<typeof FdsSeparator> = {
5
+ title: 'FDS/Typography/FdsSeparator',
6
+ component: FdsSeparator,
7
+ tags: ['autodocs'],
8
+ }
9
+
10
+ export default meta
11
+ type Story = StoryObj<typeof meta>
12
+
13
+ export const Default: Story = {
14
+ render: () => ({
15
+ components: { FdsSeparator },
16
+ template: `
17
+ <div>
18
+ <p>Text above separator</p>
19
+ <FdsSeparator />
20
+ <p>Text below separator</p>
21
+ </div>
22
+ `,
23
+ }),
24
+ parameters: {
25
+ docs: {
26
+ source: {
27
+ code: `<FdsSeparator />`,
28
+ },
29
+ },
30
+ },
31
+ }
@@ -0,0 +1,5 @@
1
+ <script setup lang="ts"></script>
2
+
3
+ <template>
4
+ <hr class="block border-0 h-px w-full bg-black/12 my-4" />
5
+ </template>
@@ -0,0 +1,66 @@
1
+ import type { Meta, StoryObj } from '@storybook/vue3'
2
+ import FdsText from './FdsText.vue'
3
+
4
+ const meta: Meta<typeof FdsText> = {
5
+ title: 'FDS/Typography/FdsText',
6
+ component: FdsText,
7
+ tags: ['autodocs'],
8
+ argTypes: {
9
+ type: { control: { type: 'radio' }, options: ['default', 'lead', 'meta'] },
10
+ },
11
+ args: {
12
+ type: 'default',
13
+ },
14
+ }
15
+
16
+ export default meta
17
+ type Story = StoryObj<typeof meta>
18
+
19
+ const textTransform = (storyContext: { args?: { type?: string } }) => {
20
+ const args = storyContext?.args || {}
21
+ const attrsStr = args.type && args.type !== 'default' ? ` type="${args.type}"` : ''
22
+ return `<FdsText${attrsStr}>Text content</FdsText>`
23
+ }
24
+
25
+ export const Default: Story = {
26
+ render: (args) => ({
27
+ components: { FdsText },
28
+ setup: () => ({ args }),
29
+ template: `<FdsText :type="args.type">Text content</FdsText>`,
30
+ }),
31
+ parameters: {
32
+ docs: {
33
+ source: {
34
+ transform: textTransform,
35
+ },
36
+ },
37
+ },
38
+ }
39
+
40
+ export const Lead: Story = {
41
+ render: () => ({
42
+ components: { FdsText },
43
+ template: `<FdsText type="lead">Lead text with larger font size and lighter weight</FdsText>`,
44
+ }),
45
+ parameters: {
46
+ docs: {
47
+ source: {
48
+ code: `<FdsText type="lead">Lead text with larger font size and lighter weight</FdsText>`,
49
+ },
50
+ },
51
+ },
52
+ }
53
+
54
+ export const MetaType: Story = {
55
+ render: () => ({
56
+ components: { FdsText },
57
+ template: `<FdsText type="meta">Meta text with lighter font weight</FdsText>`,
58
+ }),
59
+ parameters: {
60
+ docs: {
61
+ source: {
62
+ code: `<FdsText type="meta">Meta text with lighter font weight</FdsText>`,
63
+ },
64
+ },
65
+ },
66
+ }
@@ -0,0 +1,28 @@
1
+ <script setup lang="ts">
2
+ import { computed } from 'vue'
3
+ import type { FdsTextProps } from './types'
4
+
5
+ const props = withDefaults(defineProps<FdsTextProps>(), {
6
+ type: 'default',
7
+ })
8
+
9
+ const textClasses = computed(() => {
10
+ const baseClasses = 'inline-block'
11
+
12
+ if (props.type === 'lead') {
13
+ return `${baseClasses} font-light text-lg`
14
+ }
15
+
16
+ if (props.type === 'meta') {
17
+ return `${baseClasses} font-light`
18
+ }
19
+
20
+ return baseClasses
21
+ })
22
+ </script>
23
+
24
+ <template>
25
+ <span :class="textClasses">
26
+ <slot />
27
+ </span>
28
+ </template>
@@ -0,0 +1,3 @@
1
+ export interface FdsTextProps {
2
+ type?: 'default' | 'lead' | 'meta'
3
+ }
@@ -0,0 +1,29 @@
1
+ import type { Ref } from 'vue'
2
+
3
+ /**
4
+ * Composable for bolding search query matches in text
5
+ * @param searchTerm - Reactive search term (Ref<string>)
6
+ * @returns Function that takes text and returns HTML with matched query bolded
7
+ */
8
+ export function useBoldQuery(searchTerm: Ref<string>) {
9
+ const boldQuery = (text: string): string => {
10
+ const query = searchTerm.value.trim()
11
+ if (!query) return text
12
+
13
+ const lowerText = text.toLowerCase()
14
+ const lowerQuery = query.toLowerCase()
15
+ const matchIndex = lowerText.indexOf(lowerQuery)
16
+
17
+ if (matchIndex === -1) return text
18
+
19
+ const beforeMatch = text.substring(0, matchIndex)
20
+ const match = text.substring(matchIndex, matchIndex + query.length)
21
+ const afterMatch = text.substring(matchIndex + query.length)
22
+
23
+ return `${beforeMatch}<b>${match}</b>${afterMatch}`
24
+ }
25
+
26
+ return {
27
+ boldQuery,
28
+ }
29
+ }
@@ -0,0 +1,24 @@
1
+ import { watchEffect, type Ref } from 'vue'
2
+
3
+ export function useElementFinalSize(
4
+ elementRef: Ref<HTMLElement | null>,
5
+ onFinalSize: (height: number) => void,
6
+ delay = 100,
7
+ ) {
8
+ watchEffect((onCleanup) => {
9
+ const { value: element } = elementRef
10
+ if (!element) return
11
+
12
+ // Wait for next frame after a short delay, then measure
13
+ const timeoutId = setTimeout(() => {
14
+ requestAnimationFrame(() => {
15
+ const { height } = element.getBoundingClientRect()
16
+ if (height > 0) {
17
+ onFinalSize(height)
18
+ }
19
+ })
20
+ }, delay)
21
+
22
+ onCleanup(() => clearTimeout(timeoutId))
23
+ })
24
+ }
@@ -0,0 +1,17 @@
1
+ import { Comment, computed, useSlots, type VNode } from 'vue'
2
+
3
+ /**
4
+ * Check if a slot has any real content (ignores comment nodes)
5
+ * @param name Slot name, default is "default"
6
+ */
7
+ export function useHasSlot(name: string = 'default') {
8
+ const slots = useSlots()
9
+
10
+ return computed(() => {
11
+ const slotFn = slots[name]
12
+ if (!slotFn) return false
13
+
14
+ const vnodes: VNode[] = slotFn()
15
+ return vnodes.some((vnode) => vnode.type !== Comment)
16
+ })
17
+ }
@@ -0,0 +1,48 @@
1
+ import { computed, type Ref } from 'vue'
2
+
3
+ /**
4
+ * Check if a string looks like a personnummer (Swedish personal identity number)
5
+ * @param value - String value to check
6
+ * @returns Boolean indicating if the value looks like a personnummer
7
+ */
8
+ export function isPidString(value: string): boolean {
9
+ const digitsOnly = value.replace(/\D/g, '')
10
+
11
+ // Personnummer has 12 digits total (8 digits before dash, 4 after)
12
+ // Activate detection when user has typed 6+ digits (likely a date yyyymmdd)
13
+ // This avoids detecting phone numbers which typically start with +46, 0, or have different patterns
14
+ if (digitsOnly.length < 6) {
15
+ return false
16
+ }
17
+
18
+ // Check if it looks like a date (first 6 digits should be reasonable year + month)
19
+ // Years are typically 19xx-20xx, months 01-12
20
+ const firstSix = digitsOnly.substring(0, 6)
21
+ const year = parseInt(firstSix.substring(0, 4))
22
+ const month = parseInt(firstSix.substring(4, 6))
23
+
24
+ // Valid year range (1900-2099) and valid month (01-12)
25
+ if (year >= 1900 && year <= 2099 && month >= 1 && month <= 12) {
26
+ return true
27
+ }
28
+
29
+ // If user has typed 8+ digits, assume it's a personnummer
30
+ if (digitsOnly.length >= 8) {
31
+ return true
32
+ }
33
+
34
+ return false
35
+ }
36
+
37
+ /**
38
+ * Composable for detecting if a string looks like a personnummer (Swedish personal identity number)
39
+ * @param value - Reactive string value to check (Ref<string>)
40
+ * @returns Computed boolean indicating if the value looks like a personnummer
41
+ */
42
+ export function useIsPid(value: Ref<string>) {
43
+ const isPid = computed(() => isPidString(value.value))
44
+
45
+ return {
46
+ isPid,
47
+ }
48
+ }
@@ -0,0 +1,12 @@
1
+ import { Meta, Typeset } from '@storybook/addon-docs/blocks'
2
+
3
+ <Meta title="Start" />
4
+
5
+ <div className="sb-container">
6
+ <div className="sb-section-title">
7
+ <h1>Welcome to Feelgood Design System</h1>
8
+ <fds-text type="lead">
9
+ Everything you'll eventually need to build great and accessible solutions for Feelgood.
10
+ </fds-text>
11
+ </div>
12
+ </div>
@@ -0,0 +1,117 @@
1
+ # FDS Vue Core - Usage Guide
2
+
3
+ ## Installation
4
+
5
+ ### From npm
6
+
7
+ Install the package from npm:
8
+
9
+ ```bash
10
+ yarn add fds-vue-core
11
+ ```
12
+
13
+ ### Local Development with yarn link
14
+
15
+ For local development, you can link the package to your project:
16
+
17
+ 1. In the `fds-vue-core` directory, create a global link:
18
+
19
+ ```bash
20
+ yarn link
21
+ ```
22
+
23
+ 2. In your consuming project, link to the local package:
24
+
25
+ ```bash
26
+ yarn link fds-vue-core
27
+ ```
28
+
29
+ 3. To unlink when you're done:
30
+
31
+ ```bash
32
+ # In your consuming project
33
+ yarn unlink fds-vue-core
34
+
35
+ # In the fds-vue-core directory
36
+ yarn unlink
37
+ ```
38
+
39
+ **Note:** After making changes to `fds-vue-core`, you may need to rebuild the package for changes to take effect:
40
+
41
+ ```bash
42
+ yarn build
43
+ ```
44
+
45
+ ## Basic Usage
46
+
47
+ ### Global Registration
48
+
49
+ Import and register all components globally in your Vue app:
50
+
51
+ ```javascript
52
+ import { createApp } from 'vue'
53
+ import App from './App.vue'
54
+ import FDS from 'fds-vue-core'
55
+
56
+ const app = createApp(App)
57
+ app.use(FDS)
58
+ app.mount('#app')
59
+ ```
60
+
61
+ ### Individual Component Import
62
+
63
+ Import specific components as needed:
64
+
65
+ ```javascript
66
+ import { FdsButton, FdsInput, FdsModal } from 'fds-vue-core'
67
+ ```
68
+
69
+ Register them locally:
70
+
71
+ ```javascript
72
+ export default {
73
+ components: {
74
+ FdsButton,
75
+ FdsInput,
76
+ FdsModal,
77
+ },
78
+ }
79
+ ```
80
+
81
+ ## Tailwind CSS Configuration
82
+
83
+ All components use Tailwind CSS classes. Make sure your Tailwind configuration includes the necessary utilities.
84
+
85
+ ### tailwind.config.js
86
+
87
+ ```javascript
88
+ import preset from 'fds-vue-core/tailwind.preset.cjs'
89
+
90
+ export default {
91
+ presets: [preset],
92
+ // Your other Tailwind configuration
93
+ }
94
+ ```
95
+
96
+ ### style.css
97
+
98
+ ```css
99
+ @import 'fds-vue-core/tokens.css';
100
+ @import 'tailwindcss';
101
+ @source '../node_modules/fds-vue-core';
102
+ @import 'fds-vue-core/slot-styles.css';
103
+ @import 'fds-vue-core/apply.css';
104
+ @import 'fds-vue-core/fonts.css';
105
+ ```
106
+
107
+ ## TypeScript Support
108
+
109
+ All components are fully typed. Type definitions are included in the package.
110
+
111
+ ## Further Documentation
112
+
113
+ For detailed component API documentation and examples, see Storybook:
114
+
115
+ ```bash
116
+ yarn storybook
117
+ ```
package/src/fonts.css ADDED
@@ -0,0 +1,28 @@
1
+ @font-face {
2
+ font-family: 'IBM-Plex-Sans';
3
+ src:
4
+ url('assets/fonts/IBMPlexSans-Light.woff2') format('woff2'),
5
+ url('assets/fonts/IBMPlexSans-Light.woff') format('woff');
6
+ font-weight: 100 399;
7
+ }
8
+ @font-face {
9
+ font-family: 'IBM-Plex-Sans';
10
+ src:
11
+ url('assets/fonts/IBMPlexSans-Regular.woff2') format('woff2'),
12
+ url('assets/fonts/IBMPlexSans-Regular.woff') format('woff');
13
+ font-weight: 400 599;
14
+ }
15
+ @font-face {
16
+ font-family: 'IBM-Plex-Sans';
17
+ src:
18
+ url('assets/fonts/IBMPlexSans-Bold.woff2') format('woff2'),
19
+ url('assets/fonts/IBMPlexSans-Bold.woff') format('woff');
20
+ font-weight: 600 800;
21
+ }
22
+ @font-face {
23
+ font-family: 'Raleway';
24
+ src:
25
+ url('assets/fonts/Raleway-ExtraBold.woff2') format('woff2'),
26
+ url('assets/fonts/Raleway-ExtraBold.woff') format('woff');
27
+ font-weight: 100 800;
28
+ }
@@ -0,0 +1,38 @@
1
+ declare module '@vue/runtime-core' {
2
+ export interface GlobalComponents {
3
+ FdsTreeView: (typeof import('./components/FdsTreeView/FdsTreeView.vue'))['default']
4
+ FdsButtonPrimary: (typeof import('./components/Buttons/FdsButtonPrimary/FdsButtonPrimary.vue'))['default']
5
+ FdsButtonSecondary: (typeof import('./components/Buttons/FdsButtonSecondary/FdsButtonSecondary.vue'))['default']
6
+ FdsButtonMinor: (typeof import('./components/Buttons/FdsButtonMinor/FdsButtonMinor.vue'))['default']
7
+ FdsButtonIcon: (typeof import('./components/Buttons/FdsButtonIcon/FdsButtonIcon.vue'))['default']
8
+ FdsButtonCopy: (typeof import('./components/Buttons/FdsButtonCopy/FdsButtonCopy.vue'))['default']
9
+ FdsButtonDownload: (typeof import('./components/Buttons/FdsButtonDownload/FdsButtonDownload.vue'))['default']
10
+ FdsIcon: (typeof import('./components/FdsIcon/FdsIcon.vue'))['default']
11
+ FdsSpinner: (typeof import('./components/FdsSpinner/FdsSpinner.vue'))['default']
12
+ FdsRadio: (typeof import('./components/Form/FdsRadio/FdsRadio.vue'))['default']
13
+ FdsInput: (typeof import('./components/Form/FdsInput/FdsInput.vue'))['default']
14
+ FdsCheckbox: (typeof import('./components/Form/FdsCheckbox/FdsCheckbox.vue'))['default']
15
+ FdsTextarea: (typeof import('./components/Form/FdsTextarea/FdsTextarea.vue'))['default']
16
+ FdsSelect: (typeof import('./components/Form/FdsSelect/FdsSelect.vue'))['default']
17
+ FdsTable: (typeof import('./components/Table/FdsTable/FdsTable.vue'))['default']
18
+ FdsTableHead: (typeof import('./components/Table/FdsTableHead/FdsTableHead.vue'))['default']
19
+ FdsBlockContent: (typeof import('./components/Blocks/FdsBlockContent/FdsBlockContent.vue'))['default']
20
+ FdsBlockInfo: (typeof import('./components/Blocks/FdsBlockInfo/FdsBlockInfo.vue'))['default']
21
+ FdsBlockAlert: (typeof import('./components/Blocks/FdsBlockAlert/FdsBlockAlert.vue'))['default']
22
+ FdsBlockExpander: (typeof import('./components/Blocks/FdsBlockExpander/FdsBlockExpander.vue'))['default']
23
+ FdsBlockLink: (typeof import('./components/Blocks/FdsBlockLink/FdsBlockLink.vue'))['default']
24
+ FdsSticker: (typeof import('./components/FdsSticker/FdsSticker.vue'))['default']
25
+ FdsTabs: (typeof import('./components/Tabs/FdsTabs/FdsTabs.vue'))['default']
26
+ FdsTabsItem: (typeof import('./components/Tabs/FdsTabsItem/FdsTabsItem.vue'))['default']
27
+ FdsModal: (typeof import('./components/FdsModal/FdsModal.vue'))['default']
28
+ FdsPagination: (typeof import('./components/FdsPagination/FdsPagination.vue'))['default']
29
+ FdsSearchSelect: (typeof import('./components/FdsSearchSelect/FdsSearchSelect.vue'))['default']
30
+ FdsTruncatedText: (typeof import('./components/FdsTruncatedText/FdsTruncatedText.vue'))['default']
31
+ FdsHeading: (typeof import('./components/Typography/FdsHeading/FdsHeading.vue'))['default']
32
+ FdsSeparator: (typeof import('./components/Typography/FdsSeparator/FdsSeparator.vue'))['default']
33
+ FdsText: (typeof import('./components/Typography/FdsText/FdsText.vue'))['default']
34
+ FdsListHeading: (typeof import('./components/Typography/FdsListHeading/FdsListHeading.vue'))['default']
35
+ }
36
+ }
37
+
38
+ export {}
package/src/index.ts ADDED
@@ -0,0 +1,180 @@
1
+ // App type imported inline below to avoid TS plugin issues in some environments
2
+
3
+ // Import styles
4
+ import './global-components'
5
+ import './style.css'
6
+
7
+ // Import all components
8
+ import FdsButtonCopy from '@/components/Buttons/FdsButtonCopy/FdsButtonCopy.vue'
9
+ import FdsButtonDownload from '@/components/Buttons/FdsButtonDownload/FdsButtonDownload.vue'
10
+ import FdsButtonIcon from '@/components/Buttons/FdsButtonIcon/FdsButtonIcon.vue'
11
+ import FdsButtonMinor from '@/components/Buttons/FdsButtonMinor/FdsButtonMinor.vue'
12
+ import FdsButtonPrimary from '@/components/Buttons/FdsButtonPrimary/FdsButtonPrimary.vue'
13
+ import FdsButtonSecondary from '@/components/Buttons/FdsButtonSecondary/FdsButtonSecondary.vue'
14
+ import FdsIcon from '@/components/FdsIcon/FdsIcon.vue'
15
+ import FdsSpinner from '@/components/FdsSpinner/FdsSpinner.vue'
16
+ import FdsTreeView from '@/components/FdsTreeView/FdsTreeView.vue'
17
+ import FdsCheckbox from '@/components/Form/FdsCheckbox/FdsCheckbox.vue'
18
+ import FdsInput from '@/components/Form/FdsInput/FdsInput.vue'
19
+ import FdsRadio from '@/components/Form/FdsRadio/FdsRadio.vue'
20
+ import FdsSelect from '@/components/Form/FdsSelect/FdsSelect.vue'
21
+ import FdsTextarea from '@/components/Form/FdsTextarea/FdsTextarea.vue'
22
+ import FdsTable from '@/components/Table/FdsTable/FdsTable.vue'
23
+ import FdsTableHead from '@/components/Table/FdsTableHead/FdsTableHead.vue'
24
+ // Block components
25
+ import FdsBlockAlert from '@/components/Blocks/FdsBlockAlert/FdsBlockAlert.vue'
26
+ import FdsBlockContent from '@/components/Blocks/FdsBlockContent/FdsBlockContent.vue'
27
+ import FdsBlockExpander from '@/components/Blocks/FdsBlockExpander/FdsBlockExpander.vue'
28
+ import FdsBlockInfo from '@/components/Blocks/FdsBlockInfo/FdsBlockInfo.vue'
29
+ import FdsBlockLink from '@/components/Blocks/FdsBlockLink/FdsBlockLink.vue'
30
+ import FdsModal from '@/components/FdsModal/FdsModal.vue'
31
+ import FdsPagination from '@/components/FdsPagination/FdsPagination.vue'
32
+ import FdsSearchSelect from '@/components/FdsSearchSelect/FdsSearchSelect.vue'
33
+ import FdsSticker from '@/components/FdsSticker/FdsSticker.vue'
34
+ import FdsTruncatedText from '@/components/FdsTruncatedText/FdsTruncatedText.vue'
35
+ import FdsTabs from '@/components/Tabs/FdsTabs/FdsTabs.vue'
36
+ import FdsTabsItem from '@/components/Tabs/FdsTabsItem/FdsTabsItem.vue'
37
+ import FdsHeading from '@/components/Typography/FdsHeading/FdsHeading.vue'
38
+ import FdsListHeading from '@/components/Typography/FdsListHeading/FdsListHeading.vue'
39
+ import FdsSeparator from '@/components/Typography/FdsSeparator/FdsSeparator.vue'
40
+ import FdsText from '@/components/Typography/FdsText/FdsText.vue'
41
+
42
+ // Import composables
43
+ import useTreeState from '@/components/FdsTreeView/useTreeState'
44
+ import { useBoldQuery } from '@/composables/useBoldQuery'
45
+ import { isPidString, useIsPid } from '@/composables/useIsPid'
46
+
47
+ // Export individual components
48
+ export {
49
+ FdsBlockAlert,
50
+ FdsBlockContent,
51
+ FdsBlockExpander,
52
+ FdsBlockInfo,
53
+ FdsBlockLink,
54
+ FdsButtonCopy,
55
+ FdsButtonDownload,
56
+ FdsButtonIcon,
57
+ FdsButtonMinor,
58
+ FdsButtonPrimary,
59
+ FdsButtonSecondary,
60
+ FdsCheckbox,
61
+ FdsHeading,
62
+ FdsIcon,
63
+ FdsInput,
64
+ FdsListHeading,
65
+ FdsModal,
66
+ FdsPagination,
67
+ FdsRadio,
68
+ FdsSearchSelect,
69
+ FdsSelect,
70
+ FdsSeparator,
71
+ FdsSpinner,
72
+ FdsSticker,
73
+ FdsTable,
74
+ FdsTableHead,
75
+ FdsTabs,
76
+ FdsTabsItem,
77
+ FdsText,
78
+ FdsTextarea,
79
+ FdsTreeView,
80
+ FdsTruncatedText,
81
+ }
82
+
83
+ // Export composables
84
+ export { isPidString, useBoldQuery, useIsPid, useTreeState }
85
+
86
+ // Export component library plugin
87
+ type AppLike = { component: (name: string, comp: unknown) => unknown }
88
+
89
+ const FdsVueCorePlugin = {
90
+ install(app: AppLike) {
91
+ // Register all components globally
92
+ app.component('FdsTreeView', FdsTreeView)
93
+ // Register button variants with direct names
94
+ app.component('FdsButtonPrimary', FdsButtonPrimary)
95
+ app.component('FdsButtonSecondary', FdsButtonSecondary)
96
+ app.component('FdsButtonMinor', FdsButtonMinor)
97
+ app.component('FdsButtonIcon', FdsButtonIcon)
98
+ app.component('FdsButtonCopy', FdsButtonCopy)
99
+ app.component('FdsButtonDownload', FdsButtonDownload)
100
+ app.component('FdsIcon', FdsIcon)
101
+ app.component('FdsSpinner', FdsSpinner)
102
+ app.component('FdsRadio', FdsRadio)
103
+ app.component('FdsCheckbox', FdsCheckbox)
104
+ app.component('FdsTextarea', FdsTextarea)
105
+ app.component('FdsSelect', FdsSelect)
106
+ app.component('FdsTable', FdsTable)
107
+ app.component('FdsTableHead', FdsTableHead)
108
+ app.component('FdsInput', FdsInput)
109
+ app.component('FdsBlockContent', FdsBlockContent)
110
+ app.component('FdsBlockInfo', FdsBlockInfo)
111
+ app.component('FdsBlockAlert', FdsBlockAlert)
112
+ app.component('FdsBlockExpander', FdsBlockExpander)
113
+ app.component('FdsBlockLink', FdsBlockLink)
114
+ app.component('FdsSticker', FdsSticker)
115
+ app.component('FdsTabs', FdsTabs)
116
+ app.component('FdsTabsItem', FdsTabsItem)
117
+ app.component('FdsModal', FdsModal)
118
+ app.component('FdsPagination', FdsPagination)
119
+ app.component('FdsSearchSelect', FdsSearchSelect)
120
+ app.component('FdsTruncatedText', FdsTruncatedText)
121
+ app.component('FdsHeading', FdsHeading)
122
+ app.component('FdsSeparator', FdsSeparator)
123
+ app.component('FdsText', FdsText)
124
+ app.component('FdsListHeading', FdsListHeading)
125
+ },
126
+ }
127
+
128
+ export default FdsVueCorePlugin
129
+
130
+ // Export all component types
131
+ // TreeView types (only consumer-facing types)
132
+ export type { FdsNodeShape, FdsTreeNode, FdsTreeViewProps, FdsTreeViewStyles } from '@/components/FdsTreeView/types'
133
+
134
+ // Button component types
135
+ export type { FdsButtonBaseProps } from '@/components/Buttons/ButtonBaseProps'
136
+ export type { FdsCopyButtonProps } from '@/components/Buttons/FdsButtonCopy/types'
137
+ export type { FdsIconButtonProps } from '@/components/Buttons/FdsButtonIcon/types'
138
+
139
+ // Button components that use FdsButtonBaseProps
140
+ import type { FdsButtonBaseProps } from '@/components/Buttons/ButtonBaseProps'
141
+ export type FdsButtonPrimaryProps = FdsButtonBaseProps
142
+ export type FdsButtonSecondaryProps = FdsButtonBaseProps
143
+ export type FdsButtonMinorProps = FdsButtonBaseProps
144
+ export type FdsButtonDownloadProps = FdsButtonBaseProps
145
+
146
+ // Form component types
147
+ export type { FdsCheckboxProps } from '@/components/Form/FdsCheckbox/types'
148
+ export type { FdsInputProps } from '@/components/Form/FdsInput/types'
149
+ export type { FdsRadioProps } from '@/components/Form/FdsRadio/types'
150
+ export type { FdsSelectProps } from '@/components/Form/FdsSelect/types'
151
+ export type { FdsTextareaProps } from '@/components/Form/FdsTextarea/types'
152
+
153
+ // Table component types
154
+ export type { FdsTableProps } from '@/components/Table/FdsTable/types'
155
+ export type { FdsTableHeadProps } from '@/components/Table/FdsTableHead/types'
156
+
157
+ // Block component types
158
+ export type { FdsAlertBlockProps } from '@/components/Blocks/FdsBlockAlert/types'
159
+ export type { FdsContentBlockProps } from '@/components/Blocks/FdsBlockContent/types'
160
+ export type { FdsExpanderBlockProps } from '@/components/Blocks/FdsBlockExpander/types'
161
+ export type { FdsBlockInfoProps } from '@/components/Blocks/FdsBlockInfo/types'
162
+ export type { FdsInteractionBlockProps } from '@/components/Blocks/FdsBlockLink/types'
163
+
164
+ // Tab component types
165
+ export type { FdsTabsProps } from '@/components/Tabs/FdsTabs/types'
166
+ export type { FdsTabsItemProps } from '@/components/Tabs/FdsTabsItem/types'
167
+
168
+ // Typography component types
169
+ export type { FdsHeadingProps } from '@/components/Typography/FdsHeading/types'
170
+ export type { FdsListHeadingProps } from '@/components/Typography/FdsListHeading/types'
171
+ export type { FdsTextProps } from '@/components/Typography/FdsText/types'
172
+
173
+ // Other component types
174
+ export type { FdsIconName, FdsIconProps } from '@/components/FdsIcon/types'
175
+ export type { FdsModalProps } from '@/components/FdsModal/types'
176
+ export type { FdsPaginationProps } from '@/components/FdsPagination/types'
177
+ export type { FdsSearchSelectProps } from '@/components/FdsSearchSelect/types'
178
+ export type { FdsSpinnerProps } from '@/components/FdsSpinner/types'
179
+ export type { FdsStickerProps } from '@/components/FdsSticker/types'
180
+ export type { FdsTruncatedTextProps } from '@/components/FdsTruncatedText/types'
package/src/main.ts ADDED
@@ -0,0 +1,7 @@
1
+ import { createApp } from 'vue'
2
+ import App from './App.vue'
3
+ import './style.css'
4
+
5
+ // Create and mount the Vue app
6
+ const app = createApp(App)
7
+ app.mount('#app')