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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (382) hide show
  1. package/fesm2022/3ddv-software-division-components-generic-carousel.mjs +354 -0
  2. package/fesm2022/3ddv-software-division-components-generic-carousel.mjs.map +1 -0
  3. package/package.json +47 -67
  4. package/styles.css +2 -46
  5. package/types/3ddv-software-division-components-generic-carousel.d.ts +53 -0
  6. package/.postcssrc.json +0 -5
  7. package/.storybook/main.ts +0 -78
  8. package/.storybook/manager-head.html +0 -1
  9. package/.storybook/preview.ts +0 -30
  10. package/.storybook/tsconfig.json +0 -25
  11. package/.storybook/typings.d.ts +0 -4
  12. package/CHANGELOG.md +0 -8
  13. package/LICENSE.md +0 -21
  14. package/backoffice/checkbox/checkbox.component.css +0 -193
  15. package/backoffice/checkbox/checkbox.component.html +0 -23
  16. package/backoffice/checkbox/checkbox.component.ts +0 -252
  17. package/backoffice/checkbox/index.ts +0 -1
  18. package/backoffice/checkbox/ng-package.json +0 -1
  19. package/backoffice/checkbox/public-api.ts +0 -1
  20. package/backoffice/checkbox/story/checkbox.stories.ts +0 -304
  21. package/backoffice/datepicker/datepicker.component.css +0 -262
  22. package/backoffice/datepicker/datepicker.component.html +0 -40
  23. package/backoffice/datepicker/datepicker.component.ts +0 -366
  24. package/backoffice/datepicker/index.ts +0 -1
  25. package/backoffice/datepicker/ng-package.json +0 -1
  26. package/backoffice/datepicker/public-api.ts +0 -2
  27. package/backoffice/datepicker/story/datepicker.stories.ts +0 -32
  28. package/backoffice/datepicker/ui/ui-calendar-helm/src/index.ts +0 -14
  29. package/backoffice/datepicker/ui/ui-calendar-helm/src/lib/hlm-calendar-multi.ts +0 -183
  30. package/backoffice/datepicker/ui/ui-calendar-helm/src/lib/hlm-calendar.ts +0 -171
  31. package/backoffice/datepicker/ui/ui-date-picker-helm/src/index.ts +0 -16
  32. package/backoffice/datepicker/ui/ui-date-picker-helm/src/lib/hlm-date-picker-multi.token.ts +0 -43
  33. package/backoffice/datepicker/ui/ui-date-picker-helm/src/lib/hlm-date-picker-multi.ts +0 -177
  34. package/backoffice/datepicker/ui/ui-date-picker-helm/src/lib/hlm-date-picker.token.ts +0 -43
  35. package/backoffice/datepicker/ui/ui-date-picker-helm/src/lib/hlm-date-picker.ts +0 -167
  36. package/backoffice/datepicker/ui/ui-icon-helm/src/index.ts +0 -11
  37. package/backoffice/datepicker/ui/ui-icon-helm/src/lib/hlm-icon.token.ts +0 -20
  38. package/backoffice/datepicker/ui/ui-icon-helm/src/lib/hlm-icon.ts +0 -35
  39. package/backoffice/datepicker/ui/ui-popover-helm/src/index.ts +0 -15
  40. package/backoffice/datepicker/ui/ui-popover-helm/src/lib/hlm-popover-close.ts +0 -19
  41. package/backoffice/datepicker/ui/ui-popover-helm/src/lib/hlm-popover-content.ts +0 -30
  42. package/backoffice/index.ts +0 -1
  43. package/backoffice/input/index.ts +0 -1
  44. package/backoffice/input/input.component.css +0 -319
  45. package/backoffice/input/input.component.html +0 -51
  46. package/backoffice/input/input.component.ts +0 -497
  47. package/backoffice/input/ng-package.json +0 -1
  48. package/backoffice/input/public-api.ts +0 -2
  49. package/backoffice/input/story/input.stories.ts +0 -243
  50. package/backoffice/radio/index.ts +0 -1
  51. package/backoffice/radio/ng-package.json +0 -1
  52. package/backoffice/radio/public-api.ts +0 -1
  53. package/backoffice/radio/radio.component.css +0 -143
  54. package/backoffice/radio/radio.component.html +0 -15
  55. package/backoffice/radio/radio.component.ts +0 -154
  56. package/backoffice/radio/story/radio.stories.ts +0 -287
  57. package/backoffice/table/_components/pagination/pagination.component.css +0 -117
  58. package/backoffice/table/_components/pagination/pagination.component.html +0 -55
  59. package/backoffice/table/_components/pagination/pagination.component.ts +0 -79
  60. package/backoffice/table/_components/selection-table-head/selection-table-head.component.css +0 -0
  61. package/backoffice/table/_components/selection-table-head/selection-table-head.component.html +0 -6
  62. package/backoffice/table/_components/selection-table-head/selection-table-head.component.ts +0 -36
  63. package/backoffice/table/_components/selection-table-row/selection-table-row.component.css +0 -0
  64. package/backoffice/table/_components/selection-table-row/selection-table-row.component.html +0 -5
  65. package/backoffice/table/_components/selection-table-row/selection-table-row.component.ts +0 -12
  66. package/backoffice/table/_components/sort-header-button/sort-header-button.component.css +0 -14
  67. package/backoffice/table/_components/sort-header-button/sort-header-button.component.html +0 -11
  68. package/backoffice/table/_components/sort-header-button/sort-header-button.component.ts +0 -55
  69. package/backoffice/table/index.ts +0 -1
  70. package/backoffice/table/ng-package.json +0 -1
  71. package/backoffice/table/public-api.ts +0 -6
  72. package/backoffice/table/story/table.stories.ts +0 -364
  73. package/backoffice/table/table.component.css +0 -172
  74. package/backoffice/table/table.component.html +0 -53
  75. package/backoffice/table/table.component.ts +0 -347
  76. package/backoffice/table/ui/ui-icon-helm/src/index.ts +0 -11
  77. package/backoffice/table/ui/ui-icon-helm/src/lib/hlm-icon.token.ts +0 -20
  78. package/backoffice/table/ui/ui-icon-helm/src/lib/hlm-icon.ts +0 -35
  79. package/backoffice/table/ui/ui-table-helm/src/index.ts +0 -13
  80. package/backoffice/table/ui/ui-table-helm/src/lib/hlm-table.ts +0 -220
  81. package/components.json +0 -3
  82. package/dist/styles.css +0 -2
  83. package/documentation.json +0 -30473
  84. package/dvm/cart/cart.component.css +0 -103
  85. package/dvm/cart/cart.component.html +0 -31
  86. package/dvm/cart/cart.component.ts +0 -49
  87. package/dvm/cart/cart.stories.ts +0 -370
  88. package/dvm/cart/cart.types.ts +0 -8
  89. package/dvm/cart/index.ts +0 -2
  90. package/dvm/cart/ng-package.json +0 -1
  91. package/dvm/cart/public-api.ts +0 -8
  92. package/dvm/cart/seat-list.component.css +0 -281
  93. package/dvm/cart/seat-list.component.html +0 -85
  94. package/dvm/cart/seat-list.component.ts +0 -76
  95. package/dvm/cart/seat-list.stories.ts +0 -337
  96. package/dvm/cart-item/cart-item.component.html +0 -1
  97. package/dvm/cart-item/cart-item.component.ts +0 -8
  98. package/dvm/cart-item/cart-item.service.ts +0 -8
  99. package/dvm/cart-item/cart.stories.ts +0 -31
  100. package/dvm/cart-item/index.ts +0 -1
  101. package/dvm/cart-item/ng-package.json +0 -1
  102. package/dvm/cart-item/public-api.ts +0 -6
  103. package/dvm/index.ts +0 -1
  104. package/dvm/legend/index.ts +0 -1
  105. package/dvm/legend/legend.component.css +0 -49
  106. package/dvm/legend/legend.component.html +0 -8
  107. package/dvm/legend/legend.component.ts +0 -41
  108. package/dvm/legend/legend.stories.ts +0 -16
  109. package/dvm/legend/ng-package.json +0 -1
  110. package/dvm/legend/public-api.ts +0 -7
  111. package/dvm/legend/types.ts +0 -6
  112. package/dvm/legend/ui/legend-elements/index.ts +0 -1
  113. package/dvm/legend/ui/legend-elements/legend-elements.component.css +0 -49
  114. package/dvm/legend/ui/legend-elements/legend-elements.component.html +0 -8
  115. package/dvm/legend/ui/legend-elements/legend-elements.component.ts +0 -41
  116. package/dvm/loader/index.ts +0 -1
  117. package/dvm/loader/loader.component.html +0 -1
  118. package/dvm/loader/loader.component.ts +0 -8
  119. package/dvm/loader/loader.service.ts +0 -8
  120. package/dvm/loader/loader.stories.ts +0 -31
  121. package/dvm/loader/ng-package.json +0 -1
  122. package/dvm/loader/public-api.ts +0 -6
  123. package/dvm/map-loader/index.ts +0 -1
  124. package/dvm/map-loader/map-loader.component.css +0 -91
  125. package/dvm/map-loader/map-loader.component.html +0 -23
  126. package/dvm/map-loader/map-loader.component.ts +0 -187
  127. package/dvm/map-loader/map-loader.stories.ts +0 -16
  128. package/dvm/map-loader/ng-package.json +0 -1
  129. package/dvm/map-loader/public-api.ts +0 -5
  130. package/dvm/neighbors/index.ts +0 -1
  131. package/dvm/neighbors/neighbors.component.css +0 -158
  132. package/dvm/neighbors/neighbors.component.html +0 -45
  133. package/dvm/neighbors/neighbors.component.ts +0 -218
  134. package/dvm/neighbors/ng-package.json +0 -1
  135. package/dvm/neighbors/public-api.ts +0 -2
  136. package/dvm/neighbors/story/arrow-left-black-icon.svg +0 -3
  137. package/dvm/neighbors/story/mock-data.ts +0 -15
  138. package/dvm/neighbors/story/neighbours.stories.css +0 -12
  139. package/dvm/neighbors/story/neighbours.stories.ts +0 -117
  140. package/dvm/neighbors/types.ts +0 -14
  141. package/dvm/popover/base-popover.component.ts +0 -70
  142. package/dvm/popover/index.ts +0 -1
  143. package/dvm/popover/ng-package.json +0 -1
  144. package/dvm/popover/popover.component.css +0 -227
  145. package/dvm/popover/popover.component.html +0 -27
  146. package/dvm/popover/popover.component.ts +0 -236
  147. package/dvm/popover/popover.config.ts +0 -30
  148. package/dvm/popover/popover.service.ts +0 -627
  149. package/dvm/popover/popover.stories.ts +0 -873
  150. package/dvm/popover/public-api.ts +0 -14
  151. package/dvm/popover/seat-popover/seat-popover.component.css +0 -89
  152. package/dvm/popover/seat-popover/seat-popover.component.html +0 -40
  153. package/dvm/popover/seat-popover/seat-popover.component.ts +0 -74
  154. package/dvm/popover/section-popover/section-popover.component.css +0 -157
  155. package/dvm/popover/section-popover/section-popover.component.html +0 -58
  156. package/dvm/popover/section-popover/section-popover.component.ts +0 -106
  157. package/dvm/popover/services/dvm-popover-positioner.service.ts +0 -73
  158. package/dvm/popover/services/popover-manager.service.ts +0 -88
  159. package/dvm/popover/transformers/base-popover-data-transformer.ts +0 -36
  160. package/dvm/popover/types.ts +0 -104
  161. package/dvm/stepper/index.ts +0 -1
  162. package/dvm/stepper/ng-package.json +0 -1
  163. package/dvm/stepper/public-api.ts +0 -5
  164. package/dvm/stepper/stepper.component.css +0 -142
  165. package/dvm/stepper/stepper.component.html +0 -9
  166. package/dvm/stepper/stepper.component.ts +0 -101
  167. package/dvm/stepper/types.ts +0 -6
  168. package/dvm/ticket-info-item/index.ts +0 -1
  169. package/dvm/ticket-info-item/ng-package.json +0 -1
  170. package/dvm/ticket-info-item/public-api.ts +0 -6
  171. package/dvm/ticket-info-item/ticket-info-item.component.html +0 -1
  172. package/dvm/ticket-info-item/ticket-info-item.component.ts +0 -8
  173. package/dvm/ticket-info-item/ticket-info-item.service.ts +0 -8
  174. package/dvm/ticket-info-item/ticket-info-item.stories.ts +0 -31
  175. package/generic/add-digital-wallet/add-digital-wallet.component.css +0 -76
  176. package/generic/add-digital-wallet/add-digital-wallet.component.html +0 -46
  177. package/generic/add-digital-wallet/add-digital-wallet.component.ts +0 -44
  178. package/generic/add-digital-wallet/index.ts +0 -1
  179. package/generic/add-digital-wallet/ng-package.json +0 -1
  180. package/generic/add-digital-wallet/public-api.ts +0 -1
  181. package/generic/braintree/braintree.component.css +0 -7
  182. package/generic/braintree/braintree.component.ts +0 -134
  183. package/generic/braintree/index.ts +0 -1
  184. package/generic/braintree/ng-package.json +0 -1
  185. package/generic/braintree/public-api.ts +0 -6
  186. package/generic/braintree/story/braintree.stories.css +0 -3
  187. package/generic/braintree/story/braintree.stories.ts +0 -27
  188. package/generic/braintree/types.ts +0 -28
  189. package/generic/button/button.component.css +0 -305
  190. package/generic/button/button.component.html +0 -10
  191. package/generic/button/button.component.ts +0 -353
  192. package/generic/button/index.ts +0 -1
  193. package/generic/button/ng-package.json +0 -1
  194. package/generic/button/public-api.ts +0 -6
  195. package/generic/button/story/button.stories.ts +0 -384
  196. package/generic/button/ui/ui-button-helm/src/index.ts +0 -10
  197. package/generic/button/ui/ui-button-helm/src/lib/hlm-button.token.ts +0 -22
  198. package/generic/button/ui/ui-button-helm/src/lib/hlm-button.ts +0 -62
  199. package/generic/carousel/carousel-item.component.ts +0 -15
  200. package/generic/carousel/carousel-item.directive.ts +0 -14
  201. package/generic/carousel/carousel.component.css +0 -90
  202. package/generic/carousel/carousel.component.html +0 -13
  203. package/generic/carousel/carousel.component.ts +0 -44
  204. package/generic/carousel/index.ts +0 -1
  205. package/generic/carousel/public-api.ts +0 -2
  206. package/generic/carousel/ui/ui-carousel-helm/src/index.ts +0 -29
  207. package/generic/carousel/ui/ui-carousel-helm/src/lib/hlm-carousel-content.ts +0 -23
  208. package/generic/carousel/ui/ui-carousel-helm/src/lib/hlm-carousel-item.ts +0 -25
  209. package/generic/carousel/ui/ui-carousel-helm/src/lib/hlm-carousel-next.ts +0 -58
  210. package/generic/carousel/ui/ui-carousel-helm/src/lib/hlm-carousel-previous.ts +0 -61
  211. package/generic/carousel/ui/ui-carousel-helm/src/lib/hlm-carousel-slide-display.ts +0 -36
  212. package/generic/carousel/ui/ui-carousel-helm/src/lib/hlm-carousel.ts +0 -105
  213. package/generic/dialog/dialog.component.css +0 -5
  214. package/generic/dialog/dialog.component.html +0 -3
  215. package/generic/dialog/dialog.component.ts +0 -20
  216. package/generic/dialog/dialog.stories.ts +0 -14
  217. package/generic/dialog/index.ts +0 -1
  218. package/generic/dialog/libs/ui-dialog-helm/src/index.ts +0 -37
  219. package/generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-close.ts +0 -20
  220. package/generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-content.ts +0 -56
  221. package/generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-description.ts +0 -17
  222. package/generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-footer.ts +0 -19
  223. package/generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-header.ts +0 -19
  224. package/generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-overlay.ts +0 -23
  225. package/generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-title.ts +0 -19
  226. package/generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog.service.ts +0 -59
  227. package/generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog.ts +0 -31
  228. package/generic/dialog/ng-package.json +0 -1
  229. package/generic/dialog/public-api.ts +0 -7
  230. package/generic/dialog/tsconfig.json +0 -7
  231. package/generic/dialog/ui/dialog-close-button/dialog-close-button.component.css +0 -0
  232. package/generic/dialog/ui/dialog-close-button/dialog-close-button.component.html +0 -1
  233. package/generic/dialog/ui/dialog-close-button/dialog-close-button.component.ts +0 -17
  234. package/generic/dialog/ui/dialog-footer/dialog-footer.component.css +0 -0
  235. package/generic/dialog/ui/dialog-footer/dialog-footer.component.html +0 -3
  236. package/generic/dialog/ui/dialog-footer/dialog-footer.component.ts +0 -11
  237. package/generic/dialog/ui/dialog-header/dialog-header.component.css +0 -0
  238. package/generic/dialog/ui/dialog-header/dialog-header.component.html +0 -8
  239. package/generic/dialog/ui/dialog-header/dialog-header.component.ts +0 -18
  240. package/generic/drawer/drawer.component.html +0 -1
  241. package/generic/drawer/drawer.component.ts +0 -8
  242. package/generic/drawer/drawer.service.ts +0 -8
  243. package/generic/drawer/drawer.stories.ts +0 -31
  244. package/generic/drawer/index.ts +0 -1
  245. package/generic/drawer/ng-package.json +0 -1
  246. package/generic/drawer/public-api.ts +0 -6
  247. package/generic/icon/icon.component.css +0 -7
  248. package/generic/icon/icon.component.html +0 -3
  249. package/generic/icon/icon.component.ts +0 -86
  250. package/generic/icon/icon.stories.ts +0 -16
  251. package/generic/icon/index.ts +0 -1
  252. package/generic/icon/lib/ui-icon-helm/src/index.ts +0 -11
  253. package/generic/icon/lib/ui-icon-helm/src/lib/hlm-icon.token.ts +0 -20
  254. package/generic/icon/lib/ui-icon-helm/src/lib/hlm-icon.ts +0 -36
  255. package/generic/icon/ng-package.json +0 -1
  256. package/generic/icon/public-api.ts +0 -6
  257. package/generic/icon/tsconfig.json +0 -7
  258. package/generic/index.ts +0 -1
  259. package/generic/select/index.ts +0 -1
  260. package/generic/select/lib/hlm-select-content.ts +0 -29
  261. package/generic/select/lib/hlm-select-group.ts +0 -17
  262. package/generic/select/lib/hlm-select-label.ts +0 -26
  263. package/generic/select/lib/hlm-select-option.ts +0 -37
  264. package/generic/select/lib/hlm-select-scroll-down.ts +0 -24
  265. package/generic/select/lib/hlm-select-scroll-up.ts +0 -23
  266. package/generic/select/lib/hlm-select-trigger.ts +0 -53
  267. package/generic/select/lib/hlm-select-value.ts +0 -17
  268. package/generic/select/lib/hlm-select.ts +0 -15
  269. package/generic/select/lib/index.ts +0 -38
  270. package/generic/select/ng-package.json +0 -1
  271. package/generic/select/public-api.ts +0 -3
  272. package/generic/select/select.component.css +0 -65
  273. package/generic/select/select.component.html +0 -19
  274. package/generic/select/select.component.ts +0 -25
  275. package/generic/select/types.ts +0 -4
  276. package/ng-package.json +0 -10
  277. package/public/3ddv-logo.jpg +0 -0
  278. package/public/neighbours-after.png +0 -0
  279. package/public/neighbours-before.png +0 -0
  280. package/shared/apply-theme-variables/apply-theme-variables.ts +0 -35
  281. package/shared/apply-theme-variables/index.ts +0 -1
  282. package/shared/format-value.pipe.ts +0 -23
  283. package/shared/index.ts +0 -1
  284. package/shared/lib-provider/config-token.ts +0 -4
  285. package/shared/lib-provider/index.ts +0 -1
  286. package/shared/lib-provider/provide-sdc.ts +0 -24
  287. package/shared/lib-provider/public-api.ts +0 -1
  288. package/shared/ng-package.json +0 -1
  289. package/shared/public-api.ts +0 -6
  290. package/shared/screen-observer/index.ts +0 -2
  291. package/shared/screen-observer/provide-screen-observer.ts +0 -17
  292. package/shared/screen-observer/screen-observer.ts +0 -56
  293. package/shared/screen-observer/sizable-base.ts +0 -70
  294. package/shared/theme-provider/generic-theme.ts +0 -1
  295. package/shared/theme-provider/index.ts +0 -1
  296. package/shared/theme-provider/public-api.ts +0 -1
  297. package/shared/theme-provider/theme-provider.directive.ts +0 -17
  298. package/shared/themes/sdc.css +0 -153
  299. package/shared/types.ts +0 -18
  300. package/src/private-exports.ts +0 -1
  301. package/src/public-api.ts +0 -20
  302. package/tsconfig.json +0 -50
  303. package/tsconfig.lib.prod.json +0 -6
  304. package/tsconfig.spec.json +0 -15
  305. package/tsconfig.temp.json +0 -1
  306. package/utils/index.ts +0 -1
  307. package/utils/ng-package.json +0 -1
  308. package/utils/public-api.ts +0 -1
  309. package/utils/validate-styles-for-component.ts +0 -39
  310. /package/{dist/README.md → README.md} +0 -0
  311. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-backoffice-checkbox.mjs +0 -0
  312. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-backoffice-checkbox.mjs.map +0 -0
  313. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-backoffice-datepicker.mjs +0 -0
  314. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-backoffice-datepicker.mjs.map +0 -0
  315. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-backoffice-input.mjs +0 -0
  316. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-backoffice-input.mjs.map +0 -0
  317. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-backoffice-radio.mjs +0 -0
  318. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-backoffice-radio.mjs.map +0 -0
  319. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-backoffice-table.mjs +0 -0
  320. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-backoffice-table.mjs.map +0 -0
  321. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-cart-item.mjs +0 -0
  322. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-cart-item.mjs.map +0 -0
  323. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-cart.mjs +0 -0
  324. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-cart.mjs.map +0 -0
  325. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-legend.mjs +0 -0
  326. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-legend.mjs.map +0 -0
  327. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-loader.mjs +0 -0
  328. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-loader.mjs.map +0 -0
  329. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-map-loader.mjs +0 -0
  330. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-map-loader.mjs.map +0 -0
  331. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-neighbors.mjs +0 -0
  332. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-neighbors.mjs.map +0 -0
  333. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-popover.mjs +0 -0
  334. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-popover.mjs.map +0 -0
  335. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-stepper.mjs +0 -0
  336. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-stepper.mjs.map +0 -0
  337. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-ticket-info-item.mjs +0 -0
  338. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-ticket-info-item.mjs.map +0 -0
  339. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-generic-add-digital-wallet.mjs +0 -0
  340. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-generic-add-digital-wallet.mjs.map +0 -0
  341. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-generic-braintree.mjs +0 -0
  342. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-generic-braintree.mjs.map +0 -0
  343. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-generic-button.mjs +0 -0
  344. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-generic-button.mjs.map +0 -0
  345. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-generic-dialog.mjs +0 -0
  346. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-generic-dialog.mjs.map +0 -0
  347. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-generic-drawer.mjs +0 -0
  348. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-generic-drawer.mjs.map +0 -0
  349. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-generic-icon.mjs +0 -0
  350. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-generic-icon.mjs.map +0 -0
  351. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-generic-select.mjs +0 -0
  352. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-generic-select.mjs.map +0 -0
  353. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-shared.mjs +0 -0
  354. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-shared.mjs.map +0 -0
  355. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-utils.mjs +0 -0
  356. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-utils.mjs.map +0 -0
  357. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components.mjs +0 -0
  358. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components.mjs.map +0 -0
  359. /package/{dist/types → types}/3ddv-software-division-components-backoffice-checkbox.d.ts +0 -0
  360. /package/{dist/types → types}/3ddv-software-division-components-backoffice-datepicker.d.ts +0 -0
  361. /package/{dist/types → types}/3ddv-software-division-components-backoffice-input.d.ts +0 -0
  362. /package/{dist/types → types}/3ddv-software-division-components-backoffice-radio.d.ts +0 -0
  363. /package/{dist/types → types}/3ddv-software-division-components-backoffice-table.d.ts +0 -0
  364. /package/{dist/types → types}/3ddv-software-division-components-dvm-cart-item.d.ts +0 -0
  365. /package/{dist/types → types}/3ddv-software-division-components-dvm-cart.d.ts +0 -0
  366. /package/{dist/types → types}/3ddv-software-division-components-dvm-legend.d.ts +0 -0
  367. /package/{dist/types → types}/3ddv-software-division-components-dvm-loader.d.ts +0 -0
  368. /package/{dist/types → types}/3ddv-software-division-components-dvm-map-loader.d.ts +0 -0
  369. /package/{dist/types → types}/3ddv-software-division-components-dvm-neighbors.d.ts +0 -0
  370. /package/{dist/types → types}/3ddv-software-division-components-dvm-popover.d.ts +0 -0
  371. /package/{dist/types → types}/3ddv-software-division-components-dvm-stepper.d.ts +0 -0
  372. /package/{dist/types → types}/3ddv-software-division-components-dvm-ticket-info-item.d.ts +0 -0
  373. /package/{dist/types → types}/3ddv-software-division-components-generic-add-digital-wallet.d.ts +0 -0
  374. /package/{dist/types → types}/3ddv-software-division-components-generic-braintree.d.ts +0 -0
  375. /package/{dist/types → types}/3ddv-software-division-components-generic-button.d.ts +0 -0
  376. /package/{dist/types → types}/3ddv-software-division-components-generic-dialog.d.ts +0 -0
  377. /package/{dist/types → types}/3ddv-software-division-components-generic-drawer.d.ts +0 -0
  378. /package/{dist/types → types}/3ddv-software-division-components-generic-icon.d.ts +0 -0
  379. /package/{dist/types → types}/3ddv-software-division-components-generic-select.d.ts +0 -0
  380. /package/{dist/types → types}/3ddv-software-division-components-shared.d.ts +0 -0
  381. /package/{dist/types → types}/3ddv-software-division-components-utils.d.ts +0 -0
  382. /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
- }