@3ddv/software-division-components 2.0.0 → 2.0.1

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 (379) hide show
  1. package/package.json +43 -67
  2. package/styles.css +2 -46
  3. package/.postcssrc.json +0 -5
  4. package/.storybook/main.ts +0 -78
  5. package/.storybook/manager-head.html +0 -1
  6. package/.storybook/preview.ts +0 -30
  7. package/.storybook/tsconfig.json +0 -25
  8. package/.storybook/typings.d.ts +0 -4
  9. package/CHANGELOG.md +0 -8
  10. package/LICENSE.md +0 -21
  11. package/backoffice/checkbox/checkbox.component.css +0 -193
  12. package/backoffice/checkbox/checkbox.component.html +0 -23
  13. package/backoffice/checkbox/checkbox.component.ts +0 -252
  14. package/backoffice/checkbox/index.ts +0 -1
  15. package/backoffice/checkbox/ng-package.json +0 -1
  16. package/backoffice/checkbox/public-api.ts +0 -1
  17. package/backoffice/checkbox/story/checkbox.stories.ts +0 -304
  18. package/backoffice/datepicker/datepicker.component.css +0 -262
  19. package/backoffice/datepicker/datepicker.component.html +0 -40
  20. package/backoffice/datepicker/datepicker.component.ts +0 -366
  21. package/backoffice/datepicker/index.ts +0 -1
  22. package/backoffice/datepicker/ng-package.json +0 -1
  23. package/backoffice/datepicker/public-api.ts +0 -2
  24. package/backoffice/datepicker/story/datepicker.stories.ts +0 -32
  25. package/backoffice/datepicker/ui/ui-calendar-helm/src/index.ts +0 -14
  26. package/backoffice/datepicker/ui/ui-calendar-helm/src/lib/hlm-calendar-multi.ts +0 -183
  27. package/backoffice/datepicker/ui/ui-calendar-helm/src/lib/hlm-calendar.ts +0 -171
  28. package/backoffice/datepicker/ui/ui-date-picker-helm/src/index.ts +0 -16
  29. package/backoffice/datepicker/ui/ui-date-picker-helm/src/lib/hlm-date-picker-multi.token.ts +0 -43
  30. package/backoffice/datepicker/ui/ui-date-picker-helm/src/lib/hlm-date-picker-multi.ts +0 -177
  31. package/backoffice/datepicker/ui/ui-date-picker-helm/src/lib/hlm-date-picker.token.ts +0 -43
  32. package/backoffice/datepicker/ui/ui-date-picker-helm/src/lib/hlm-date-picker.ts +0 -167
  33. package/backoffice/datepicker/ui/ui-icon-helm/src/index.ts +0 -11
  34. package/backoffice/datepicker/ui/ui-icon-helm/src/lib/hlm-icon.token.ts +0 -20
  35. package/backoffice/datepicker/ui/ui-icon-helm/src/lib/hlm-icon.ts +0 -35
  36. package/backoffice/datepicker/ui/ui-popover-helm/src/index.ts +0 -15
  37. package/backoffice/datepicker/ui/ui-popover-helm/src/lib/hlm-popover-close.ts +0 -19
  38. package/backoffice/datepicker/ui/ui-popover-helm/src/lib/hlm-popover-content.ts +0 -30
  39. package/backoffice/index.ts +0 -1
  40. package/backoffice/input/index.ts +0 -1
  41. package/backoffice/input/input.component.css +0 -319
  42. package/backoffice/input/input.component.html +0 -51
  43. package/backoffice/input/input.component.ts +0 -497
  44. package/backoffice/input/ng-package.json +0 -1
  45. package/backoffice/input/public-api.ts +0 -2
  46. package/backoffice/input/story/input.stories.ts +0 -243
  47. package/backoffice/radio/index.ts +0 -1
  48. package/backoffice/radio/ng-package.json +0 -1
  49. package/backoffice/radio/public-api.ts +0 -1
  50. package/backoffice/radio/radio.component.css +0 -143
  51. package/backoffice/radio/radio.component.html +0 -15
  52. package/backoffice/radio/radio.component.ts +0 -154
  53. package/backoffice/radio/story/radio.stories.ts +0 -287
  54. package/backoffice/table/_components/pagination/pagination.component.css +0 -117
  55. package/backoffice/table/_components/pagination/pagination.component.html +0 -55
  56. package/backoffice/table/_components/pagination/pagination.component.ts +0 -79
  57. package/backoffice/table/_components/selection-table-head/selection-table-head.component.css +0 -0
  58. package/backoffice/table/_components/selection-table-head/selection-table-head.component.html +0 -6
  59. package/backoffice/table/_components/selection-table-head/selection-table-head.component.ts +0 -36
  60. package/backoffice/table/_components/selection-table-row/selection-table-row.component.css +0 -0
  61. package/backoffice/table/_components/selection-table-row/selection-table-row.component.html +0 -5
  62. package/backoffice/table/_components/selection-table-row/selection-table-row.component.ts +0 -12
  63. package/backoffice/table/_components/sort-header-button/sort-header-button.component.css +0 -14
  64. package/backoffice/table/_components/sort-header-button/sort-header-button.component.html +0 -11
  65. package/backoffice/table/_components/sort-header-button/sort-header-button.component.ts +0 -55
  66. package/backoffice/table/index.ts +0 -1
  67. package/backoffice/table/ng-package.json +0 -1
  68. package/backoffice/table/public-api.ts +0 -6
  69. package/backoffice/table/story/table.stories.ts +0 -364
  70. package/backoffice/table/table.component.css +0 -172
  71. package/backoffice/table/table.component.html +0 -53
  72. package/backoffice/table/table.component.ts +0 -347
  73. package/backoffice/table/ui/ui-icon-helm/src/index.ts +0 -11
  74. package/backoffice/table/ui/ui-icon-helm/src/lib/hlm-icon.token.ts +0 -20
  75. package/backoffice/table/ui/ui-icon-helm/src/lib/hlm-icon.ts +0 -35
  76. package/backoffice/table/ui/ui-table-helm/src/index.ts +0 -13
  77. package/backoffice/table/ui/ui-table-helm/src/lib/hlm-table.ts +0 -220
  78. package/components.json +0 -3
  79. package/dist/styles.css +0 -2
  80. package/documentation.json +0 -30473
  81. package/dvm/cart/cart.component.css +0 -103
  82. package/dvm/cart/cart.component.html +0 -31
  83. package/dvm/cart/cart.component.ts +0 -49
  84. package/dvm/cart/cart.stories.ts +0 -370
  85. package/dvm/cart/cart.types.ts +0 -8
  86. package/dvm/cart/index.ts +0 -2
  87. package/dvm/cart/ng-package.json +0 -1
  88. package/dvm/cart/public-api.ts +0 -8
  89. package/dvm/cart/seat-list.component.css +0 -281
  90. package/dvm/cart/seat-list.component.html +0 -85
  91. package/dvm/cart/seat-list.component.ts +0 -76
  92. package/dvm/cart/seat-list.stories.ts +0 -337
  93. package/dvm/cart-item/cart-item.component.html +0 -1
  94. package/dvm/cart-item/cart-item.component.ts +0 -8
  95. package/dvm/cart-item/cart-item.service.ts +0 -8
  96. package/dvm/cart-item/cart.stories.ts +0 -31
  97. package/dvm/cart-item/index.ts +0 -1
  98. package/dvm/cart-item/ng-package.json +0 -1
  99. package/dvm/cart-item/public-api.ts +0 -6
  100. package/dvm/index.ts +0 -1
  101. package/dvm/legend/index.ts +0 -1
  102. package/dvm/legend/legend.component.css +0 -49
  103. package/dvm/legend/legend.component.html +0 -8
  104. package/dvm/legend/legend.component.ts +0 -41
  105. package/dvm/legend/legend.stories.ts +0 -16
  106. package/dvm/legend/ng-package.json +0 -1
  107. package/dvm/legend/public-api.ts +0 -7
  108. package/dvm/legend/types.ts +0 -6
  109. package/dvm/legend/ui/legend-elements/index.ts +0 -1
  110. package/dvm/legend/ui/legend-elements/legend-elements.component.css +0 -49
  111. package/dvm/legend/ui/legend-elements/legend-elements.component.html +0 -8
  112. package/dvm/legend/ui/legend-elements/legend-elements.component.ts +0 -41
  113. package/dvm/loader/index.ts +0 -1
  114. package/dvm/loader/loader.component.html +0 -1
  115. package/dvm/loader/loader.component.ts +0 -8
  116. package/dvm/loader/loader.service.ts +0 -8
  117. package/dvm/loader/loader.stories.ts +0 -31
  118. package/dvm/loader/ng-package.json +0 -1
  119. package/dvm/loader/public-api.ts +0 -6
  120. package/dvm/map-loader/index.ts +0 -1
  121. package/dvm/map-loader/map-loader.component.css +0 -91
  122. package/dvm/map-loader/map-loader.component.html +0 -23
  123. package/dvm/map-loader/map-loader.component.ts +0 -187
  124. package/dvm/map-loader/map-loader.stories.ts +0 -16
  125. package/dvm/map-loader/ng-package.json +0 -1
  126. package/dvm/map-loader/public-api.ts +0 -5
  127. package/dvm/neighbors/index.ts +0 -1
  128. package/dvm/neighbors/neighbors.component.css +0 -158
  129. package/dvm/neighbors/neighbors.component.html +0 -45
  130. package/dvm/neighbors/neighbors.component.ts +0 -218
  131. package/dvm/neighbors/ng-package.json +0 -1
  132. package/dvm/neighbors/public-api.ts +0 -2
  133. package/dvm/neighbors/story/arrow-left-black-icon.svg +0 -3
  134. package/dvm/neighbors/story/mock-data.ts +0 -15
  135. package/dvm/neighbors/story/neighbours.stories.css +0 -12
  136. package/dvm/neighbors/story/neighbours.stories.ts +0 -117
  137. package/dvm/neighbors/types.ts +0 -14
  138. package/dvm/popover/base-popover.component.ts +0 -70
  139. package/dvm/popover/index.ts +0 -1
  140. package/dvm/popover/ng-package.json +0 -1
  141. package/dvm/popover/popover.component.css +0 -227
  142. package/dvm/popover/popover.component.html +0 -27
  143. package/dvm/popover/popover.component.ts +0 -236
  144. package/dvm/popover/popover.config.ts +0 -30
  145. package/dvm/popover/popover.service.ts +0 -627
  146. package/dvm/popover/popover.stories.ts +0 -873
  147. package/dvm/popover/public-api.ts +0 -14
  148. package/dvm/popover/seat-popover/seat-popover.component.css +0 -89
  149. package/dvm/popover/seat-popover/seat-popover.component.html +0 -40
  150. package/dvm/popover/seat-popover/seat-popover.component.ts +0 -74
  151. package/dvm/popover/section-popover/section-popover.component.css +0 -157
  152. package/dvm/popover/section-popover/section-popover.component.html +0 -58
  153. package/dvm/popover/section-popover/section-popover.component.ts +0 -106
  154. package/dvm/popover/services/dvm-popover-positioner.service.ts +0 -73
  155. package/dvm/popover/services/popover-manager.service.ts +0 -88
  156. package/dvm/popover/transformers/base-popover-data-transformer.ts +0 -36
  157. package/dvm/popover/types.ts +0 -104
  158. package/dvm/stepper/index.ts +0 -1
  159. package/dvm/stepper/ng-package.json +0 -1
  160. package/dvm/stepper/public-api.ts +0 -5
  161. package/dvm/stepper/stepper.component.css +0 -142
  162. package/dvm/stepper/stepper.component.html +0 -9
  163. package/dvm/stepper/stepper.component.ts +0 -101
  164. package/dvm/stepper/types.ts +0 -6
  165. package/dvm/ticket-info-item/index.ts +0 -1
  166. package/dvm/ticket-info-item/ng-package.json +0 -1
  167. package/dvm/ticket-info-item/public-api.ts +0 -6
  168. package/dvm/ticket-info-item/ticket-info-item.component.html +0 -1
  169. package/dvm/ticket-info-item/ticket-info-item.component.ts +0 -8
  170. package/dvm/ticket-info-item/ticket-info-item.service.ts +0 -8
  171. package/dvm/ticket-info-item/ticket-info-item.stories.ts +0 -31
  172. package/generic/add-digital-wallet/add-digital-wallet.component.css +0 -76
  173. package/generic/add-digital-wallet/add-digital-wallet.component.html +0 -46
  174. package/generic/add-digital-wallet/add-digital-wallet.component.ts +0 -44
  175. package/generic/add-digital-wallet/index.ts +0 -1
  176. package/generic/add-digital-wallet/ng-package.json +0 -1
  177. package/generic/add-digital-wallet/public-api.ts +0 -1
  178. package/generic/braintree/braintree.component.css +0 -7
  179. package/generic/braintree/braintree.component.ts +0 -134
  180. package/generic/braintree/index.ts +0 -1
  181. package/generic/braintree/ng-package.json +0 -1
  182. package/generic/braintree/public-api.ts +0 -6
  183. package/generic/braintree/story/braintree.stories.css +0 -3
  184. package/generic/braintree/story/braintree.stories.ts +0 -27
  185. package/generic/braintree/types.ts +0 -28
  186. package/generic/button/button.component.css +0 -305
  187. package/generic/button/button.component.html +0 -10
  188. package/generic/button/button.component.ts +0 -353
  189. package/generic/button/index.ts +0 -1
  190. package/generic/button/ng-package.json +0 -1
  191. package/generic/button/public-api.ts +0 -6
  192. package/generic/button/story/button.stories.ts +0 -384
  193. package/generic/button/ui/ui-button-helm/src/index.ts +0 -10
  194. package/generic/button/ui/ui-button-helm/src/lib/hlm-button.token.ts +0 -22
  195. package/generic/button/ui/ui-button-helm/src/lib/hlm-button.ts +0 -62
  196. package/generic/carousel/carousel-item.component.ts +0 -15
  197. package/generic/carousel/carousel-item.directive.ts +0 -14
  198. package/generic/carousel/carousel.component.css +0 -90
  199. package/generic/carousel/carousel.component.html +0 -13
  200. package/generic/carousel/carousel.component.ts +0 -44
  201. package/generic/carousel/index.ts +0 -1
  202. package/generic/carousel/public-api.ts +0 -2
  203. package/generic/carousel/ui/ui-carousel-helm/src/index.ts +0 -29
  204. package/generic/carousel/ui/ui-carousel-helm/src/lib/hlm-carousel-content.ts +0 -23
  205. package/generic/carousel/ui/ui-carousel-helm/src/lib/hlm-carousel-item.ts +0 -25
  206. package/generic/carousel/ui/ui-carousel-helm/src/lib/hlm-carousel-next.ts +0 -58
  207. package/generic/carousel/ui/ui-carousel-helm/src/lib/hlm-carousel-previous.ts +0 -61
  208. package/generic/carousel/ui/ui-carousel-helm/src/lib/hlm-carousel-slide-display.ts +0 -36
  209. package/generic/carousel/ui/ui-carousel-helm/src/lib/hlm-carousel.ts +0 -105
  210. package/generic/dialog/dialog.component.css +0 -5
  211. package/generic/dialog/dialog.component.html +0 -3
  212. package/generic/dialog/dialog.component.ts +0 -20
  213. package/generic/dialog/dialog.stories.ts +0 -14
  214. package/generic/dialog/index.ts +0 -1
  215. package/generic/dialog/libs/ui-dialog-helm/src/index.ts +0 -37
  216. package/generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-close.ts +0 -20
  217. package/generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-content.ts +0 -56
  218. package/generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-description.ts +0 -17
  219. package/generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-footer.ts +0 -19
  220. package/generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-header.ts +0 -19
  221. package/generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-overlay.ts +0 -23
  222. package/generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-title.ts +0 -19
  223. package/generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog.service.ts +0 -59
  224. package/generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog.ts +0 -31
  225. package/generic/dialog/ng-package.json +0 -1
  226. package/generic/dialog/public-api.ts +0 -7
  227. package/generic/dialog/tsconfig.json +0 -7
  228. package/generic/dialog/ui/dialog-close-button/dialog-close-button.component.css +0 -0
  229. package/generic/dialog/ui/dialog-close-button/dialog-close-button.component.html +0 -1
  230. package/generic/dialog/ui/dialog-close-button/dialog-close-button.component.ts +0 -17
  231. package/generic/dialog/ui/dialog-footer/dialog-footer.component.css +0 -0
  232. package/generic/dialog/ui/dialog-footer/dialog-footer.component.html +0 -3
  233. package/generic/dialog/ui/dialog-footer/dialog-footer.component.ts +0 -11
  234. package/generic/dialog/ui/dialog-header/dialog-header.component.css +0 -0
  235. package/generic/dialog/ui/dialog-header/dialog-header.component.html +0 -8
  236. package/generic/dialog/ui/dialog-header/dialog-header.component.ts +0 -18
  237. package/generic/drawer/drawer.component.html +0 -1
  238. package/generic/drawer/drawer.component.ts +0 -8
  239. package/generic/drawer/drawer.service.ts +0 -8
  240. package/generic/drawer/drawer.stories.ts +0 -31
  241. package/generic/drawer/index.ts +0 -1
  242. package/generic/drawer/ng-package.json +0 -1
  243. package/generic/drawer/public-api.ts +0 -6
  244. package/generic/icon/icon.component.css +0 -7
  245. package/generic/icon/icon.component.html +0 -3
  246. package/generic/icon/icon.component.ts +0 -86
  247. package/generic/icon/icon.stories.ts +0 -16
  248. package/generic/icon/index.ts +0 -1
  249. package/generic/icon/lib/ui-icon-helm/src/index.ts +0 -11
  250. package/generic/icon/lib/ui-icon-helm/src/lib/hlm-icon.token.ts +0 -20
  251. package/generic/icon/lib/ui-icon-helm/src/lib/hlm-icon.ts +0 -36
  252. package/generic/icon/ng-package.json +0 -1
  253. package/generic/icon/public-api.ts +0 -6
  254. package/generic/icon/tsconfig.json +0 -7
  255. package/generic/index.ts +0 -1
  256. package/generic/select/index.ts +0 -1
  257. package/generic/select/lib/hlm-select-content.ts +0 -29
  258. package/generic/select/lib/hlm-select-group.ts +0 -17
  259. package/generic/select/lib/hlm-select-label.ts +0 -26
  260. package/generic/select/lib/hlm-select-option.ts +0 -37
  261. package/generic/select/lib/hlm-select-scroll-down.ts +0 -24
  262. package/generic/select/lib/hlm-select-scroll-up.ts +0 -23
  263. package/generic/select/lib/hlm-select-trigger.ts +0 -53
  264. package/generic/select/lib/hlm-select-value.ts +0 -17
  265. package/generic/select/lib/hlm-select.ts +0 -15
  266. package/generic/select/lib/index.ts +0 -38
  267. package/generic/select/ng-package.json +0 -1
  268. package/generic/select/public-api.ts +0 -3
  269. package/generic/select/select.component.css +0 -65
  270. package/generic/select/select.component.html +0 -19
  271. package/generic/select/select.component.ts +0 -25
  272. package/generic/select/types.ts +0 -4
  273. package/ng-package.json +0 -10
  274. package/public/3ddv-logo.jpg +0 -0
  275. package/public/neighbours-after.png +0 -0
  276. package/public/neighbours-before.png +0 -0
  277. package/shared/apply-theme-variables/apply-theme-variables.ts +0 -35
  278. package/shared/apply-theme-variables/index.ts +0 -1
  279. package/shared/format-value.pipe.ts +0 -23
  280. package/shared/index.ts +0 -1
  281. package/shared/lib-provider/config-token.ts +0 -4
  282. package/shared/lib-provider/index.ts +0 -1
  283. package/shared/lib-provider/provide-sdc.ts +0 -24
  284. package/shared/lib-provider/public-api.ts +0 -1
  285. package/shared/ng-package.json +0 -1
  286. package/shared/public-api.ts +0 -6
  287. package/shared/screen-observer/index.ts +0 -2
  288. package/shared/screen-observer/provide-screen-observer.ts +0 -17
  289. package/shared/screen-observer/screen-observer.ts +0 -56
  290. package/shared/screen-observer/sizable-base.ts +0 -70
  291. package/shared/theme-provider/generic-theme.ts +0 -1
  292. package/shared/theme-provider/index.ts +0 -1
  293. package/shared/theme-provider/public-api.ts +0 -1
  294. package/shared/theme-provider/theme-provider.directive.ts +0 -17
  295. package/shared/themes/sdc.css +0 -153
  296. package/shared/types.ts +0 -18
  297. package/src/private-exports.ts +0 -1
  298. package/src/public-api.ts +0 -20
  299. package/tsconfig.json +0 -50
  300. package/tsconfig.lib.prod.json +0 -6
  301. package/tsconfig.spec.json +0 -15
  302. package/tsconfig.temp.json +0 -1
  303. package/utils/index.ts +0 -1
  304. package/utils/ng-package.json +0 -1
  305. package/utils/public-api.ts +0 -1
  306. package/utils/validate-styles-for-component.ts +0 -39
  307. /package/{dist/README.md → README.md} +0 -0
  308. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-backoffice-checkbox.mjs +0 -0
  309. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-backoffice-checkbox.mjs.map +0 -0
  310. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-backoffice-datepicker.mjs +0 -0
  311. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-backoffice-datepicker.mjs.map +0 -0
  312. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-backoffice-input.mjs +0 -0
  313. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-backoffice-input.mjs.map +0 -0
  314. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-backoffice-radio.mjs +0 -0
  315. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-backoffice-radio.mjs.map +0 -0
  316. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-backoffice-table.mjs +0 -0
  317. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-backoffice-table.mjs.map +0 -0
  318. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-cart-item.mjs +0 -0
  319. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-cart-item.mjs.map +0 -0
  320. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-cart.mjs +0 -0
  321. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-cart.mjs.map +0 -0
  322. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-legend.mjs +0 -0
  323. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-legend.mjs.map +0 -0
  324. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-loader.mjs +0 -0
  325. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-loader.mjs.map +0 -0
  326. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-map-loader.mjs +0 -0
  327. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-map-loader.mjs.map +0 -0
  328. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-neighbors.mjs +0 -0
  329. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-neighbors.mjs.map +0 -0
  330. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-popover.mjs +0 -0
  331. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-popover.mjs.map +0 -0
  332. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-stepper.mjs +0 -0
  333. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-stepper.mjs.map +0 -0
  334. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-ticket-info-item.mjs +0 -0
  335. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-ticket-info-item.mjs.map +0 -0
  336. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-generic-add-digital-wallet.mjs +0 -0
  337. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-generic-add-digital-wallet.mjs.map +0 -0
  338. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-generic-braintree.mjs +0 -0
  339. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-generic-braintree.mjs.map +0 -0
  340. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-generic-button.mjs +0 -0
  341. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-generic-button.mjs.map +0 -0
  342. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-generic-dialog.mjs +0 -0
  343. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-generic-dialog.mjs.map +0 -0
  344. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-generic-drawer.mjs +0 -0
  345. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-generic-drawer.mjs.map +0 -0
  346. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-generic-icon.mjs +0 -0
  347. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-generic-icon.mjs.map +0 -0
  348. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-generic-select.mjs +0 -0
  349. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-generic-select.mjs.map +0 -0
  350. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-shared.mjs +0 -0
  351. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-shared.mjs.map +0 -0
  352. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-utils.mjs +0 -0
  353. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-utils.mjs.map +0 -0
  354. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components.mjs +0 -0
  355. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components.mjs.map +0 -0
  356. /package/{dist/types → types}/3ddv-software-division-components-backoffice-checkbox.d.ts +0 -0
  357. /package/{dist/types → types}/3ddv-software-division-components-backoffice-datepicker.d.ts +0 -0
  358. /package/{dist/types → types}/3ddv-software-division-components-backoffice-input.d.ts +0 -0
  359. /package/{dist/types → types}/3ddv-software-division-components-backoffice-radio.d.ts +0 -0
  360. /package/{dist/types → types}/3ddv-software-division-components-backoffice-table.d.ts +0 -0
  361. /package/{dist/types → types}/3ddv-software-division-components-dvm-cart-item.d.ts +0 -0
  362. /package/{dist/types → types}/3ddv-software-division-components-dvm-cart.d.ts +0 -0
  363. /package/{dist/types → types}/3ddv-software-division-components-dvm-legend.d.ts +0 -0
  364. /package/{dist/types → types}/3ddv-software-division-components-dvm-loader.d.ts +0 -0
  365. /package/{dist/types → types}/3ddv-software-division-components-dvm-map-loader.d.ts +0 -0
  366. /package/{dist/types → types}/3ddv-software-division-components-dvm-neighbors.d.ts +0 -0
  367. /package/{dist/types → types}/3ddv-software-division-components-dvm-popover.d.ts +0 -0
  368. /package/{dist/types → types}/3ddv-software-division-components-dvm-stepper.d.ts +0 -0
  369. /package/{dist/types → types}/3ddv-software-division-components-dvm-ticket-info-item.d.ts +0 -0
  370. /package/{dist/types → types}/3ddv-software-division-components-generic-add-digital-wallet.d.ts +0 -0
  371. /package/{dist/types → types}/3ddv-software-division-components-generic-braintree.d.ts +0 -0
  372. /package/{dist/types → types}/3ddv-software-division-components-generic-button.d.ts +0 -0
  373. /package/{dist/types → types}/3ddv-software-division-components-generic-dialog.d.ts +0 -0
  374. /package/{dist/types → types}/3ddv-software-division-components-generic-drawer.d.ts +0 -0
  375. /package/{dist/types → types}/3ddv-software-division-components-generic-icon.d.ts +0 -0
  376. /package/{dist/types → types}/3ddv-software-division-components-generic-select.d.ts +0 -0
  377. /package/{dist/types → types}/3ddv-software-division-components-shared.d.ts +0 -0
  378. /package/{dist/types → types}/3ddv-software-division-components-utils.d.ts +0 -0
  379. /package/{dist/types → types}/3ddv-software-division-components.d.ts +0 -0
@@ -1,53 +0,0 @@
1
- import { HlmIcon } from '@3ddv/software-division-components/generic/icon';
2
- import { ChangeDetectionStrategy, Component, computed, contentChild, inject, input } from '@angular/core';
3
- import { NgIcon, provideIcons } from '@ng-icons/core';
4
- import { lucideChevronDown } from '@ng-icons/lucide';
5
- import { hlm } from '@spartan-ng/brain/core';
6
- import { BrnSelect, BrnSelectTrigger } from '@spartan-ng/brain/select';
7
- import { cva } from 'class-variance-authority';
8
- import type { ClassValue } from 'clsx';
9
-
10
- export const selectTriggerVariants = cva(
11
- `border-input [&>ng-icon]:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 dark:bg-input/30 dark:hover:bg-input/50 flex w-full items-center justify-between gap-2 rounded-3xl border bg-transparent px-3 py-1.5 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-6 [&>ng-icon]:pointer-events-none [&>ng-icon]:shrink-0 [&>ng-icon]:size-4`,
12
- {
13
- variants: {
14
- error: {
15
- auto: '[&.ng-invalid.ng-touched]:text-destructive [&.ng-invalid.ng-touched]:border-destructive [&.ng-invalid.ng-touched]:focus-visible:ring-destructive/20 dark:[&.ng-invalid.ng-touched]:focus-visible:ring-destructive/40',
16
- true: 'text-destructive border-destructive focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40',
17
- },
18
- },
19
- defaultVariants: {
20
- error: 'auto',
21
- },
22
- }
23
- );
24
-
25
- @Component({
26
- selector: 'hlm-select-trigger',
27
- imports: [BrnSelectTrigger, NgIcon, HlmIcon],
28
- providers: [provideIcons({ lucideChevronDown })],
29
- template: `
30
- <button #button brnSelectTrigger hlmInput type="button" [attr.data-size]="size()" [class]="_computedClass()">
31
- <ng-content />
32
- @if (_icon()) {
33
- <ng-content select="ng-icon" />
34
- } @else {
35
- <ng-icon class="ml-2 flex-none" hlm name="lucideChevronDown" size="sm" />
36
- }
37
- </button>
38
- `,
39
- changeDetection: ChangeDetectionStrategy.OnPush,
40
- })
41
- export class HlmSelectTrigger {
42
- protected readonly _icon = contentChild(HlmIcon);
43
-
44
- protected readonly _brnSelect = inject(BrnSelect, { optional: true });
45
-
46
- public readonly userClass = input<ClassValue>('', { alias: 'class' });
47
-
48
- public readonly size = input<'default' | 'sm'>('default');
49
-
50
- protected readonly _computedClass = computed(() =>
51
- hlm(selectTriggerVariants({ error: this._brnSelect?.errorState() }), this.userClass())
52
- );
53
- }
@@ -1,17 +0,0 @@
1
- import { computed, Directive, input } from '@angular/core';
2
- import { hlm } from '@spartan-ng/brain/core';
3
- import type { ClassValue } from 'clsx';
4
-
5
- @Directive({
6
- selector: 'hlm-select-value,[hlmSelectValue], brn-select-value[hlm]',
7
-
8
- host: {
9
- '[class]': '_computedClass()',
10
- },
11
- })
12
- export class HlmSelectValue {
13
- public readonly userClass = input<ClassValue>('', { alias: 'class' });
14
- protected readonly _computedClass = computed(() =>
15
- hlm('line-clamp-1 flex items-center gap-2 overflow-hidden text-ellipsis', this.userClass())
16
- );
17
- }
@@ -1,15 +0,0 @@
1
- import { computed, Directive, input } from '@angular/core';
2
- import { hlm } from '@spartan-ng/brain/core';
3
- import type { ClassValue } from 'clsx';
4
-
5
- @Directive({
6
- selector: 'hlm-select, brn-select [hlm]',
7
-
8
- host: {
9
- '[class]': '_computedClass()',
10
- },
11
- })
12
- export class HlmSelect {
13
- public readonly userClass = input<ClassValue>('', { alias: 'class' });
14
- protected readonly _computedClass = computed(() => hlm(this.userClass()));
15
- }
@@ -1,38 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { HlmSelect } from './hlm-select';
3
- import { HlmSelectContent } from './hlm-select-content';
4
- import { HlmSelectGroup } from './hlm-select-group';
5
- import { HlmSelectLabel } from './hlm-select-label';
6
- import { HlmSelectOption } from './hlm-select-option';
7
- import { HlmSelectScrollDown } from './hlm-select-scroll-down';
8
- import { HlmSelectScrollUp } from './hlm-select-scroll-up';
9
- import { HlmSelectTrigger } from './hlm-select-trigger';
10
- import { HlmSelectValue } from './hlm-select-value';
11
-
12
- export * from './hlm-select';
13
- export * from './hlm-select-content';
14
- export * from './hlm-select-group';
15
- export * from './hlm-select-label';
16
- export * from './hlm-select-option';
17
- export * from './hlm-select-scroll-down';
18
- export * from './hlm-select-scroll-up';
19
- export * from './hlm-select-trigger';
20
- export * from './hlm-select-value';
21
-
22
- export const HlmSelectImports = [
23
- HlmSelectContent,
24
- HlmSelectTrigger,
25
- HlmSelectOption,
26
- HlmSelectValue,
27
- HlmSelect,
28
- HlmSelectScrollUp,
29
- HlmSelectScrollDown,
30
- HlmSelectLabel,
31
- HlmSelectGroup,
32
- ] as const;
33
-
34
- @NgModule({
35
- imports: [...HlmSelectImports],
36
- exports: [...HlmSelectImports],
37
- })
38
- export class HlmSelectModule {}
@@ -1 +0,0 @@
1
- { "lib": { "entryFile": "public-api.ts" } }
@@ -1,3 +0,0 @@
1
- export * from './lib';
2
- export * from './select.component';
3
- export * from './types';
@@ -1,65 +0,0 @@
1
- /* inline-block w-full */
2
- .select-root {
3
- display: inline-block;
4
- width: 100%;
5
- }
6
-
7
- /* shared between both triggers:
8
- flex justify-between items-center rounded-full focus:outline-none focus:ring-2 focus:ring-accent
9
- w-full overflow-hidden text-white text-xs text-center text-ellipsis whitespace-nowrap
10
- */
11
- .select-trigger {
12
- display: flex;
13
- justify-content: space-between;
14
- align-items: center;
15
- border-radius: 25px !important; /* rounded-full */
16
- outline: none; /* focus:outline-none */
17
- width: 100%; /* w-full */
18
- overflow: hidden; /* overflow-hidden */
19
- color: #ffffff; /* text-white */
20
- font-size: 0.75rem; /* text-xs */
21
- text-align: center; /* text-center */
22
- white-space: nowrap; /* whitespace-nowrap */
23
- text-overflow: ellipsis; /* text-ellipsis */
24
- }
25
-
26
- /* focus:ring-2 focus:ring-accent */
27
- .select-trigger:focus,
28
- .select-trigger:focus-visible {
29
- outline: none;
30
- /* Replace --accent (or --ring-accent) with your theme token if different */
31
- box-shadow: 0 0 0 2px var(--accent, var(--ring-accent, #0ea5e9));
32
- }
33
-
34
- /* FIRST trigger: lg:hidden + base flex */
35
- .select-trigger--sm {
36
- display: flex; /* visible by default (mobile) */
37
- }
38
-
39
- /* SECOND trigger: hidden + lg:flex */
40
- .select-trigger--lg {
41
- display: none; /* hidden on mobile */
42
- }
43
-
44
- /* lg breakpoint = 1024px (Tailwind's default) */
45
- @media (min-width: 1024px) {
46
- /* lg:hidden */
47
- .select-trigger--sm {
48
- display: none;
49
- /* the original also had lg:font-medium lg:text-sm, but it's hidden at lg */
50
- font-weight: 500; /* lg:font-medium (has no effect since hidden) */
51
- font-size: 0.875rem; /* lg:text-sm (has no effect since hidden) */
52
- }
53
-
54
- /* hidden lg:flex + lg:font-medium lg:text-sm */
55
- .select-trigger--lg {
56
- display: flex; /* lg:flex */
57
- font-weight: 500; /* lg:font-medium */
58
- font-size: 0.875rem; /* lg:text-sm */
59
- }
60
- }
61
-
62
- /* content full-width toggle */
63
- .full-width {
64
- width: 100%;
65
- }
@@ -1,19 +0,0 @@
1
- <hlm-select
2
- class="select-root"
3
- [value]="defaultValue()?.value"
4
- [placeholder]="placeholder()"
5
- (valueChange)="valueChange.emit($event)">
6
- <hlm-select-trigger class="select-trigger select-trigger--sm" size="sm" [ngClass]="variantClasses">
7
- <hlm-select-value [ngClass]="variantClasses" />
8
- </hlm-select-trigger>
9
-
10
- <hlm-select-trigger class="select-trigger select-trigger--lg" size="default" [ngClass]="variantClasses">
11
- <hlm-select-value [ngClass]="variantClasses" />
12
- </hlm-select-trigger>
13
-
14
- <hlm-select-content [class]="fullWidth() ? 'full-width' : ''" [ngClass]="variantClasses">
15
- @for (option of options(); track idx + option.label; let idx = $index) {
16
- <hlm-option [ngClass]="variantClasses" [value]="option.value">{{ option.label }}</hlm-option>
17
- }
18
- </hlm-select-content>
19
- </hlm-select>
@@ -1,25 +0,0 @@
1
- import { CommonModule } from '@angular/common';
2
- import { ChangeDetectionStrategy, Component, input, output } from '@angular/core';
3
- import { BrnSelectImports } from '@spartan-ng/brain/select';
4
- import { HlmSelectImports } from './lib';
5
- import { SelectOptions } from './types';
6
-
7
- @Component({
8
- changeDetection: ChangeDetectionStrategy.OnPush,
9
- selector: 'sdc-select',
10
- imports: [CommonModule, BrnSelectImports, HlmSelectImports],
11
- templateUrl: './select.component.html',
12
- styleUrls: ['./select.component.css'],
13
- })
14
- export class SelectComponent {
15
- public placeholder = input('');
16
- public variant = input('light');
17
- public options = input.required<SelectOptions[]>();
18
- public fullWidth = input(false);
19
- public defaultValue = input<SelectOptions[][number]>();
20
- public readonly valueChange = output<unknown>();
21
-
22
- protected get variantClasses(): string {
23
- return this.variant() === 'dark' ? 'bg-black text-white' : 'bg-white text-black';
24
- }
25
- }
@@ -1,4 +0,0 @@
1
- export interface SelectOptions {
2
- label: string;
3
- value: unknown;
4
- }
package/ng-package.json DELETED
@@ -1,10 +0,0 @@
1
- {
2
- "$schema": "../../node_modules/ng-packagr/ng-package.schema.json",
3
- "dest": "./dist",
4
- "deleteDestPath": true,
5
- "lib": {
6
- "entryFile": "src/public-api.ts"
7
- },
8
- "assets": ["./tailwind.config.js", "./styles.css"],
9
- "allowedNonPeerDependencies": ["rxjs-interop"]
10
- }
Binary file
Binary file
Binary file
@@ -1,35 +0,0 @@
1
- import { ApplicationRef } from '@angular/core';
2
- import { filter, first } from 'rxjs';
3
-
4
- /** * Declares CSS variables globally based on the 'theme' and 'dvmStyles' property of the configuration. */
5
- export function applyGlobalCssVariables(appRef: ApplicationRef, theme: Record<string, string>): void {
6
- // First application of the theme
7
- applyGlobalCssVariablesToNodes(theme);
8
-
9
- appRef.isStable
10
- .pipe(
11
- filter(stable => stable),
12
- first()
13
- )
14
- // Second application of the theme when the application is stable
15
- .subscribe(() => applyGlobalCssVariablesToNodes(theme));
16
- }
17
-
18
- function applyGlobalCssVariablesToNodes(theme: Record<string, string>) {
19
- // Grab elements from the DOM
20
- const documentElement = document.documentElement;
21
- const root: HTMLElement | null = document.querySelector(':root');
22
-
23
- if (root) {
24
- // Get theme in a new object
25
- const mergedStyles = Object.assign({}, theme);
26
-
27
- for (const [key, value] of Object.entries(mergedStyles)) {
28
- // For each of the styles, declare a new CSS variable on root element
29
- if (typeof value === 'string') {
30
- root.style.setProperty('--' + key, value);
31
- documentElement.style.setProperty('--' + key, value);
32
- }
33
- }
34
- }
35
- }
@@ -1 +0,0 @@
1
- export * from './apply-theme-variables';
@@ -1,23 +0,0 @@
1
- import { CurrencyPipe, DatePipe } from '@angular/common';
2
- import { inject, Pipe, PipeTransform } from '@angular/core';
3
-
4
- @Pipe({
5
- pure: true,
6
- standalone: true,
7
- name: 'formatValue',
8
- })
9
- export class FormatValuePipe implements PipeTransform {
10
- private currencyPipe = inject(CurrencyPipe);
11
- private datePipe = inject(DatePipe);
12
-
13
- public transform(value: string, pipe: any): string {
14
- switch (pipe) {
15
- case 'currency':
16
- return this.currencyPipe.transform(value) ?? '';
17
- case 'date':
18
- return this.datePipe.transform(value) ?? '';
19
- default:
20
- return value ?? '';
21
- }
22
- }
23
- }
package/shared/index.ts DELETED
@@ -1 +0,0 @@
1
- export * from './public-api';
@@ -1,4 +0,0 @@
1
- import { InjectionToken } from '@angular/core';
2
- import { NgSdComponentsConfig } from '../types';
3
-
4
- export const NG_SD_COMPONENTS_CONFIG = new InjectionToken<NgSdComponentsConfig>('NgSdComponentsConfig');
@@ -1 +0,0 @@
1
- export * from './public-api';
@@ -1,24 +0,0 @@
1
- import { CurrencyPipe, DatePipe } from '@angular/common';
2
- import { Provider } from '@angular/core';
3
- import { provideAnimationsAsync } from '@angular/platform-browser/animations/async';
4
- import { NgSdComponentsConfig } from '../types';
5
- import { NG_SD_COMPONENTS_CONFIG } from './config-token';
6
-
7
- /**
8
- * Provides all necessary dependencies for the library:
9
- * - Angular Pipes (`DatePipe`, `CurrencyPipe`)
10
- * - Animations
11
- * - CommonModule
12
- */
13
- export function provideSdc(config?: NgSdComponentsConfig): Provider[] {
14
- // const preset = config?.theme === 'generic' ? GenericTheme : Aura;
15
- // if config.theme is generic, pass a theme, otherwise, pass another theme
16
- const providers = [
17
- DatePipe,
18
- CurrencyPipe,
19
- { provide: NG_SD_COMPONENTS_CONFIG, useValue: config ?? 'generic' },
20
- provideAnimationsAsync() as unknown as Provider,
21
- ];
22
-
23
- return [...providers];
24
- }
@@ -1 +0,0 @@
1
- export { provideSdc } from './provide-sdc';
@@ -1 +0,0 @@
1
- { "lib": { "entryFile": "public-api.ts" } }
@@ -1,6 +0,0 @@
1
- export * from './apply-theme-variables';
2
- export * from './format-value.pipe';
3
- export * from './lib-provider';
4
- export * from './screen-observer';
5
- export * from './theme-provider';
6
- export * from './types';
@@ -1,2 +0,0 @@
1
- export * from './provide-screen-observer';
2
- export * from './screen-observer';
@@ -1,17 +0,0 @@
1
- // screen-helper.providers.ts
2
- import { InjectionToken, Provider } from '@angular/core';
3
- import { Size } from '../types';
4
- import { ScreenObserver } from './screen-observer';
5
-
6
- export const SCREENS_TOKEN = new InjectionToken<Record<Size, string>>('SCREENS_TOKEN');
7
-
8
- export function provideScreenObserver(screens: Record<Size, string>): Provider[] {
9
- return [
10
- { provide: SCREENS_TOKEN, useValue: screens },
11
- {
12
- provide: ScreenObserver,
13
- deps: [SCREENS_TOKEN],
14
- useFactory: (cfg: Record<Size, string>) => new ScreenObserver(cfg),
15
- },
16
- ];
17
- }
@@ -1,56 +0,0 @@
1
- import { computed, Signal, signal } from '@angular/core';
2
- import { toSignal } from '@angular/core/rxjs-interop';
3
- import { fromEvent, startWith } from 'rxjs';
4
- import { map } from 'rxjs/operators';
5
- import { Size, SIZE_ORDER } from '../types';
6
-
7
- export class ScreenObserver {
8
- // SIGNALS
9
- private readonly _size = signal<Size>('md');
10
-
11
- // CLASS PROPERTIES
12
- private readonly breakpoints: Record<Size, number>;
13
- public readonly size: Signal<Size> = this._size;
14
- public readonly index!: Signal<number>;
15
-
16
- public constructor(screens: Record<Partial<Size>, string>) {
17
- this.breakpoints = Object.fromEntries(
18
- Object.entries(screens).map(([k, v]) => [k, Number(v.replace('px', ''))])
19
- ) as Record<Size, number>;
20
-
21
- const resize$ = fromEvent(window, 'resize').pipe(
22
- startWith(null),
23
- map(() => this.getSize())
24
- );
25
-
26
- this.size = toSignal(resize$, { initialValue: this.getSize() });
27
- this.index = computed(() => SIZE_ORDER.indexOf(this.size()));
28
- }
29
-
30
- public getSize(): Size {
31
- const w = window.innerWidth;
32
- if (w >= this.breakpoints?.['2xl']) return '2xl';
33
- if (w >= this.breakpoints?.['xl']) return 'xl';
34
- if (w >= this.breakpoints?.['lg']) return 'lg';
35
- if (w >= this.breakpoints?.['md']) return 'md';
36
- if (w >= this.breakpoints?.['sm']) return 'sm';
37
- if (w >= this.breakpoints?.['xs']) return 'xs';
38
- return 'xxs';
39
- }
40
-
41
- public isBiggerThan(screen: Size): boolean {
42
- return window.innerWidth >= this.breakpoints?.[screen];
43
- }
44
-
45
- public isSmallerThan(screen: Size): boolean {
46
- return window.innerWidth < this.breakpoints?.[screen];
47
- }
48
-
49
- public isBiggerThan$(screen: Size): boolean {
50
- return this.index() >= SIZE_ORDER.indexOf(screen);
51
- }
52
-
53
- public isSmallerThan$(screen: Size): boolean {
54
- return this.index() < SIZE_ORDER.indexOf(screen);
55
- }
56
- }
@@ -1,70 +0,0 @@
1
- import { computed, Directive, input } from '@angular/core';
2
- import { Size, SIZE_ORDER } from '../types';
3
-
4
- @Directive()
5
- export abstract class SizableBase<TSupported extends Size> {
6
- // Inputs shared by sizable components
7
- public readonly size = input<Size>('md');
8
- public readonly styleClass = input<string[]>([]);
9
- public readonly className = input<string>('');
10
-
11
- /** Component-specific config */
12
- protected abstract readonly supportedSizes: readonly TSupported[];
13
- protected abstract readonly fallbackSize: TSupported;
14
-
15
- /** Floor any Size to the nearest supported size. */
16
- protected normalizeSize = (s: Size): TSupported => {
17
- const wantedIdx = SIZE_ORDER.indexOf(s);
18
- if (wantedIdx === -1) return this.fallbackSize;
19
- for (let i = wantedIdx; i >= 0; i--) {
20
- const candidate = SIZE_ORDER[i];
21
- if (this.supportedSizes.includes(candidate as TSupported)) {
22
- return candidate as TSupported;
23
- }
24
- }
25
- return this.fallbackSize;
26
- };
27
-
28
- /** Base validator: by default only allow universal size-* tokens. Subclasses widen this. */
29
- protected validateStyleClass(classes: readonly string[]): string[] {
30
- const allowedSizes = SIZE_ORDER.map(s => `size-${s}`);
31
- return (classes ?? []).filter(c => allowedSizes.includes(c));
32
- }
33
-
34
- /** Validated styleClass as a signal; logs dropped tokens (same behavior you had). */
35
- protected readonly _validatedStyleClass = computed(() => {
36
- const classes = this.styleClass() ?? [];
37
- const valid = this.validateStyleClass(classes);
38
- if (valid.length !== classes.length) {
39
- const invalid = classes.filter(c => !valid.includes(c));
40
- if (invalid.length) {
41
- console.warn(`${this.constructor.name}: Ignored invalid styleClass: ${invalid.join(', ')}`);
42
- }
43
- }
44
- return valid;
45
- });
46
-
47
- /** Effective size: last size-* override wins; else normalized [size] input. */
48
- protected readonly _effectiveSize = computed<TSupported>(() => {
49
- const sc = this._validatedStyleClass();
50
- const rawOverride = sc
51
- .filter(c => c.startsWith('size-'))
52
- .slice(-1)[0]
53
- ?.replace(/^size-/, '') as Size | undefined;
54
-
55
- if (rawOverride) return this.normalizeSize(rawOverride);
56
- return this.normalizeSize(this.size());
57
- });
58
-
59
- /**
60
- * Build final host classes:
61
- * - keep ALL validated non-size tokens (align/orientation etc.) — nothing dropped
62
- * - inject exactly one normalized `size-*` (matching your working code)
63
- * - append `className` unchanged
64
- */
65
- protected buildHostClass(baseClasses: readonly string[]): string {
66
- const nonSize = this._validatedStyleClass().filter(c => !c.startsWith('size-'));
67
- const normalized = this._effectiveSize();
68
- return [...baseClasses, `size-${normalized}`, ...nonSize, this.className()].filter(Boolean).join(' ');
69
- }
70
- }
@@ -1 +0,0 @@
1
- //
@@ -1 +0,0 @@
1
- export * from './public-api';
@@ -1 +0,0 @@
1
- export * from './theme-provider.directive';
@@ -1,17 +0,0 @@
1
- import { Directive, HostBinding, Inject } from '@angular/core';
2
- import { NG_SD_COMPONENTS_CONFIG } from '../lib-provider/config-token';
3
- import { type NgSdComponentsConfig } from '../types';
4
-
5
- @Directive({
6
- standalone: true,
7
- selector: '[themeProvider]',
8
- })
9
- export class ThemeProviderDirective {
10
- @HostBinding('class') class: string = '';
11
- theme: string = '';
12
-
13
- constructor(@Inject(NG_SD_COMPONENTS_CONFIG) private configuration: NgSdComponentsConfig) {
14
- this.theme = this.configuration.theme;
15
- this.class = `theme-${this.theme}`;
16
- }
17
- }